salt.7 7.7 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001120002120003120004120005120006120007120008120009120010120011120012120013120014120015120016120017120018120019120020120021120022120023120024120025120026120027120028120029120030120031120032120033120034120035120036120037120038120039120040120041120042120043120044120045120046120047120048120049120050120051120052120053120054120055120056120057120058120059120060120061120062120063120064120065120066120067120068120069120070120071120072120073120074120075120076120077120078120079120080120081120082120083120084120085120086120087120088120089120090120091120092120093120094120095120096120097120098120099120100120101120102120103120104120105120106120107120108120109120110120111120112120113120114120115120116120117120118120119120120120121120122120123120124120125120126120127120128120129120130120131120132120133120134120135120136120137120138120139120140120141120142120143120144120145120146120147120148120149120150120151120152120153120154120155120156120157120158120159120160120161120162120163120164120165120166120167120168120169120170120171120172120173120174120175120176120177120178120179120180120181120182120183120184120185120186120187120188120189120190120191120192120193120194120195120196120197120198120199120200120201120202120203120204120205120206120207120208120209120210120211120212120213120214120215120216120217120218120219120220120221120222120223120224120225120226120227120228120229120230120231120232120233120234120235120236120237120238120239120240120241120242120243120244120245120246120247120248120249120250120251120252120253120254120255120256120257120258120259120260120261120262120263120264120265120266120267120268120269120270120271120272120273120274120275120276120277120278120279120280120281120282120283120284120285120286120287120288120289120290120291120292120293120294120295120296120297120298120299120300120301120302120303120304120305120306120307120308120309120310120311120312120313120314120315120316120317120318120319120320120321120322120323120324120325120326120327120328120329120330120331120332120333120334120335120336120337120338120339120340120341120342120343120344120345120346120347120348120349120350120351120352120353120354120355120356120357120358120359120360120361120362120363120364120365120366120367120368120369120370120371120372120373120374120375120376120377120378120379120380120381120382120383120384120385120386120387120388120389120390120391120392120393120394120395120396120397120398120399120400120401120402120403120404120405120406120407120408120409120410120411120412120413120414120415120416120417120418120419120420120421120422120423120424120425120426120427120428120429120430120431120432120433120434120435120436120437120438120439120440120441120442120443120444120445120446120447120448120449120450120451120452120453120454120455120456120457120458120459120460120461120462120463120464120465120466120467120468120469120470120471120472120473120474120475120476120477120478120479120480120481120482120483120484120485120486120487120488120489120490120491120492120493120494120495120496120497120498120499120500120501120502120503120504120505120506120507120508120509120510120511120512120513120514120515120516120517120518120519120520120521120522120523120524120525120526120527120528120529120530120531120532120533120534120535120536120537120538120539120540120541120542120543120544120545120546120547120548120549120550120551120552120553120554120555120556120557120558120559120560120561120562120563120564120565120566120567120568120569120570120571120572120573120574120575120576120577120578120579120580120581120582120583120584120585120586120587120588120589120590120591120592120593120594120595120596120597120598120599120600120601120602120603120604120605120606120607120608120609120610120611120612120613120614120615120616120617120618120619120620120621120622120623120624120625120626120627120628120629120630120631120632120633120634120635120636120637120638120639120640120641120642120643120644120645120646120647120648120649120650120651120652120653120654120655120656120657120658120659120660120661120662120663120664120665120666120667120668120669120670120671120672120673120674120675120676120677120678120679120680120681120682120683120684120685120686120687120688120689120690120691120692120693120694120695120696120697120698120699120700120701120702120703120704120705120706120707120708120709120710120711120712120713120714120715120716120717120718120719120720120721120722120723120724120725120726120727120728120729120730120731120732120733120734120735120736120737120738120739120740120741120742120743120744120745120746120747120748120749120750120751120752120753120754120755120756120757120758120759120760120761120762120763120764120765120766120767120768120769120770120771120772120773120774120775120776120777120778120779120780120781120782120783120784120785120786120787120788120789120790120791120792120793120794120795120796120797120798120799120800120801120802120803120804120805120806120807120808120809120810120811120812120813120814120815120816120817120818120819120820120821120822120823120824120825120826120827120828120829120830120831120832120833120834120835120836120837120838120839120840120841120842120843120844120845120846120847120848120849120850120851120852120853120854120855120856120857120858120859120860120861120862120863120864120865120866120867120868120869120870120871120872120873120874120875120876120877120878120879120880120881120882120883120884120885120886120887120888120889120890120891120892120893120894120895120896120897120898120899120900120901120902120903120904120905120906120907120908120909120910120911120912120913120914120915120916120917120918120919120920120921120922120923120924120925120926120927120928120929120930120931120932120933120934120935120936120937120938120939120940120941120942120943120944120945120946120947120948120949120950120951120952120953120954120955120956120957120958120959120960120961120962120963120964120965120966120967120968120969120970120971120972120973120974120975120976120977120978120979120980120981120982120983120984120985120986120987120988120989120990120991120992120993120994120995120996120997120998120999121000121001121002121003121004121005121006121007121008121009121010121011121012121013121014121015121016121017121018121019121020121021121022121023121024121025121026121027121028121029121030121031121032121033121034121035121036121037121038121039121040121041121042121043121044121045121046121047121048121049121050121051121052121053121054121055121056121057121058121059121060121061121062121063121064121065121066121067121068121069121070121071121072121073121074121075121076121077121078121079121080121081121082121083121084121085121086121087121088121089121090121091121092121093121094121095121096121097121098121099121100121101121102121103121104121105121106121107121108121109121110121111121112121113121114121115121116121117121118121119121120121121121122121123121124121125121126121127121128121129121130121131121132121133121134121135121136121137121138121139121140121141121142121143121144121145121146121147121148121149121150121151121152121153121154121155121156121157121158121159121160121161121162121163121164121165121166121167121168121169121170121171121172121173121174121175121176121177121178121179121180121181121182121183121184121185121186121187121188121189121190121191121192121193121194121195121196121197121198121199121200121201121202121203121204121205121206121207121208121209121210121211121212121213121214121215121216121217121218121219121220121221121222121223121224121225121226121227121228121229121230121231121232121233121234121235121236121237121238121239121240121241121242121243121244121245121246121247121248121249121250121251121252121253121254121255121256121257121258121259121260121261121262121263121264121265121266121267121268121269121270121271121272121273121274121275121276121277121278121279121280121281121282121283121284121285121286121287121288121289121290121291121292121293121294121295121296121297121298121299121300121301121302121303121304121305121306121307121308121309121310121311121312121313121314121315121316121317121318121319121320121321121322121323121324121325121326121327121328121329121330121331121332121333121334121335121336121337121338121339121340121341121342121343121344121345121346121347121348121349121350121351121352121353121354121355121356121357121358121359121360121361121362121363121364121365121366121367121368121369121370121371121372121373121374121375121376121377121378121379121380121381121382121383121384121385121386121387121388121389121390121391121392121393121394121395121396121397121398121399121400121401121402121403121404121405121406121407121408121409121410121411121412121413121414121415121416121417121418121419121420121421121422121423121424121425121426121427121428121429121430121431121432121433121434121435121436121437121438121439121440121441121442121443121444121445121446121447121448121449121450121451121452121453121454121455121456121457121458121459121460121461121462121463121464121465121466121467121468121469121470121471121472121473121474121475121476121477121478121479121480121481121482121483121484121485121486121487121488121489121490121491121492121493121494121495121496121497121498121499121500121501121502121503121504121505121506121507121508121509121510121511121512121513121514121515121516121517121518121519121520121521121522121523121524121525121526121527121528121529121530121531121532121533121534121535121536121537121538121539121540121541121542121543121544121545121546121547121548121549121550121551121552121553121554121555121556121557121558121559121560121561121562121563121564121565121566121567121568121569121570121571121572121573121574121575121576121577121578121579121580121581121582121583121584121585121586121587121588121589121590121591121592121593121594121595121596121597121598121599121600121601121602121603121604121605121606121607121608121609121610121611121612121613121614121615121616121617121618121619121620121621121622121623121624121625121626121627121628121629121630121631121632121633121634121635121636121637121638121639121640121641121642121643121644121645121646121647121648121649121650121651121652121653121654121655121656121657121658121659121660121661121662121663121664121665121666121667121668121669121670121671121672121673121674121675121676121677121678121679121680121681121682121683121684121685121686121687121688121689121690121691121692121693121694121695121696121697121698121699121700121701121702121703121704121705121706121707121708121709121710121711121712121713121714121715121716121717121718121719121720121721121722121723121724121725121726121727121728121729121730121731121732121733121734121735121736121737121738121739121740121741121742121743121744121745121746121747121748121749121750121751121752121753121754121755121756121757121758121759121760121761121762121763121764121765121766121767121768121769121770121771121772121773121774121775121776121777121778121779121780121781121782121783121784121785121786121787121788121789121790121791121792121793121794121795121796121797121798121799121800121801121802121803121804121805121806121807121808121809121810121811121812121813121814121815121816121817121818121819121820121821121822121823121824121825121826121827121828121829121830121831121832121833121834121835121836121837121838121839121840121841121842121843121844121845121846121847121848121849121850121851121852121853121854121855121856121857121858121859121860121861121862121863121864121865121866121867121868121869121870121871121872121873121874121875121876121877121878121879121880121881121882121883121884121885121886121887121888121889121890121891121892121893121894121895121896121897121898121899121900121901121902121903121904121905121906121907121908121909121910121911121912121913121914121915121916121917121918121919121920121921121922121923121924121925121926121927121928121929121930121931121932121933121934121935121936121937121938121939121940121941121942121943121944121945121946121947121948121949121950121951121952121953121954121955121956121957121958121959121960121961121962121963121964121965121966121967121968121969121970121971121972121973121974121975121976121977121978121979121980121981121982121983121984121985121986121987121988121989121990121991121992121993121994121995121996121997121998121999122000122001122002122003122004122005122006122007122008122009122010122011122012122013122014122015122016122017122018122019122020122021122022122023122024122025122026122027122028122029122030122031122032122033122034122035122036122037122038122039122040122041122042122043122044122045122046122047122048122049122050122051122052122053122054122055122056122057122058122059122060122061122062122063122064122065122066122067122068122069122070122071122072122073122074122075122076122077122078122079122080122081122082122083122084122085122086122087122088122089122090122091122092122093122094122095122096122097122098122099122100122101122102122103122104122105122106122107122108122109122110122111122112122113122114122115122116122117122118122119122120122121122122122123122124122125122126122127122128122129122130122131122132122133122134122135122136122137122138122139122140122141122142122143122144122145122146122147122148122149122150122151122152122153122154122155122156122157122158122159122160122161122162122163122164122165122166122167122168122169122170122171122172122173122174122175122176122177122178122179122180122181122182122183122184122185122186122187122188122189122190122191122192122193122194122195122196122197122198122199122200122201122202122203122204122205122206122207122208122209122210122211122212122213122214122215122216122217122218122219122220122221122222122223122224122225122226122227122228122229122230122231122232122233122234122235122236122237122238122239122240122241122242122243122244122245122246122247122248122249122250122251122252122253122254122255122256122257122258122259122260122261122262122263122264122265122266122267122268122269122270122271122272122273122274122275122276122277122278122279122280122281122282122283122284122285122286122287122288122289122290122291122292122293122294122295122296122297122298122299122300122301122302122303122304122305122306122307122308122309122310122311122312122313122314122315122316122317122318122319122320122321122322122323122324122325122326122327122328122329122330122331122332122333122334122335122336122337122338122339122340122341122342122343122344122345122346122347122348122349122350122351122352122353122354122355122356122357122358122359122360122361122362122363122364122365122366122367122368122369122370122371122372122373122374122375122376122377122378122379122380122381122382122383122384122385122386122387122388122389122390122391122392122393122394122395122396122397122398122399122400122401122402122403122404122405122406122407122408122409122410122411122412122413122414122415122416122417122418122419122420122421122422122423122424122425122426122427122428122429122430122431122432122433122434122435122436122437122438122439122440122441122442122443122444122445122446122447122448122449122450122451122452122453122454122455122456122457122458122459122460122461122462122463122464122465122466122467122468122469122470122471122472122473122474122475122476122477122478122479122480122481122482122483122484122485122486122487122488122489122490122491122492122493122494122495122496122497122498122499122500122501122502122503122504122505122506122507122508122509122510122511122512122513122514122515122516122517122518122519122520122521122522122523122524122525122526122527122528122529122530122531122532122533122534122535122536122537122538122539122540122541122542122543122544122545122546122547122548122549122550122551122552122553122554122555122556122557122558122559122560122561122562122563122564122565122566122567122568122569122570122571122572122573122574122575122576122577122578122579122580122581122582122583122584122585122586122587122588122589122590122591122592122593122594122595122596122597122598122599122600122601122602122603122604122605122606122607122608122609122610122611122612122613122614122615122616122617122618122619122620122621122622122623122624122625122626122627122628122629122630122631122632122633122634122635122636122637122638122639122640122641122642122643122644122645122646122647122648122649122650122651122652122653122654122655122656122657122658122659122660122661122662122663122664122665122666122667122668122669122670122671122672122673122674122675122676122677122678122679122680122681122682122683122684122685122686122687122688122689122690122691122692122693122694122695122696122697122698122699122700122701122702122703122704122705122706122707122708122709122710122711122712122713122714122715122716122717122718122719122720122721122722122723122724122725122726122727122728122729122730122731122732122733122734122735122736122737122738122739122740122741122742122743122744122745122746122747122748122749122750122751122752122753122754122755122756122757122758122759122760122761122762122763122764122765122766122767122768122769122770122771122772122773122774122775122776122777122778122779122780122781122782122783122784122785122786122787122788122789122790122791122792122793122794122795122796122797122798122799122800122801122802122803122804122805122806122807122808122809122810122811122812122813122814122815122816122817122818122819122820122821122822122823122824122825122826122827122828122829122830122831122832122833122834122835122836122837122838122839122840122841122842122843122844122845122846122847122848122849122850122851122852122853122854122855122856122857122858122859122860122861122862122863122864122865122866122867122868122869122870122871122872122873122874122875122876122877122878122879122880122881122882122883122884122885122886122887122888122889122890122891122892122893122894122895122896122897122898122899122900122901122902122903122904122905122906122907122908122909122910122911122912122913122914122915122916122917122918122919122920122921122922122923122924122925122926122927122928122929122930122931122932122933122934122935122936122937122938122939122940122941122942122943122944122945122946122947122948122949122950122951122952122953122954122955122956122957122958122959122960122961122962122963122964122965122966122967122968122969122970122971122972122973122974122975122976122977122978122979122980122981122982122983122984122985122986122987122988122989122990122991122992122993122994122995122996122997122998122999123000123001123002123003123004123005123006123007123008123009123010123011123012123013123014123015123016123017123018123019123020123021123022123023123024123025123026123027123028123029123030123031123032123033123034123035123036123037123038123039123040123041123042123043123044123045123046123047123048123049123050123051123052123053123054123055123056123057123058123059123060123061123062123063123064123065123066123067123068123069123070123071123072123073123074123075123076123077123078123079123080123081123082123083123084123085123086123087123088123089123090123091123092123093123094123095123096123097123098123099123100123101123102123103123104123105123106123107123108123109123110123111123112123113123114123115123116123117123118123119123120123121123122123123123124123125123126123127123128123129123130123131123132123133123134123135123136123137123138123139123140123141123142123143123144123145123146123147123148123149123150123151123152123153123154123155123156123157123158123159123160123161123162123163123164123165123166123167123168123169123170123171123172123173123174123175123176123177123178123179123180123181123182123183123184123185123186123187123188123189123190123191123192123193123194123195123196123197123198123199123200123201123202123203123204123205123206123207123208123209123210123211123212123213123214123215123216123217123218123219123220123221123222123223123224123225123226123227123228123229123230123231123232123233123234123235123236123237123238123239123240123241123242123243123244123245123246123247123248123249123250123251123252123253123254123255123256123257123258123259123260123261123262123263123264123265123266123267123268123269123270123271123272123273123274123275123276123277123278123279123280123281123282123283123284123285123286123287123288123289123290123291123292123293123294123295123296123297123298123299123300123301123302123303123304123305123306123307123308123309123310123311123312123313123314123315123316123317123318123319123320123321123322123323123324123325123326123327123328123329123330123331123332123333123334123335123336123337123338123339123340123341123342123343123344123345123346123347123348123349123350123351123352123353123354123355123356123357123358123359123360123361123362123363123364123365123366123367123368123369123370123371123372123373123374123375123376123377123378123379123380123381123382123383123384123385123386123387123388123389123390123391123392123393123394123395123396123397123398123399123400123401123402123403123404123405123406123407123408123409123410123411123412123413123414123415123416123417123418123419123420123421123422123423123424123425123426123427123428123429123430123431123432123433123434123435123436123437123438123439123440123441123442123443123444123445123446123447123448123449123450123451123452123453123454123455123456123457123458123459123460123461123462123463123464123465123466123467123468123469123470123471123472123473123474123475123476123477123478123479123480123481123482123483123484123485123486123487123488123489123490123491123492123493123494123495123496123497123498123499123500123501123502123503123504123505123506123507123508123509123510123511123512123513123514123515123516123517123518123519123520123521123522123523123524123525123526123527123528123529123530123531123532123533123534123535123536123537123538123539123540123541123542123543123544123545123546123547123548123549123550123551123552123553123554123555123556123557123558123559123560123561123562123563123564123565123566123567123568123569123570123571123572123573123574123575123576123577123578123579123580123581123582123583123584123585123586123587123588123589123590123591123592123593123594123595123596123597123598123599123600123601123602123603123604123605123606123607123608123609123610123611123612123613123614123615123616123617123618123619123620123621123622123623123624123625123626123627123628123629123630123631123632123633123634123635123636123637123638123639123640123641123642123643123644123645123646123647123648123649123650123651123652123653123654123655123656123657123658123659123660123661123662123663123664123665123666123667123668123669123670123671123672123673123674123675123676123677123678123679123680123681123682123683123684123685123686123687123688123689123690123691123692123693123694123695123696123697123698123699123700123701123702123703123704123705123706123707123708123709123710123711123712123713123714123715123716123717123718123719123720123721123722123723123724123725123726123727123728123729123730123731123732123733123734123735123736123737123738123739123740123741123742123743123744123745123746123747123748123749123750123751123752123753123754123755123756123757123758123759123760123761123762123763123764123765123766123767123768123769123770123771123772123773123774123775123776123777123778123779123780123781123782123783123784123785123786123787123788123789123790123791123792123793123794123795123796123797123798123799123800123801123802123803123804123805123806123807123808123809123810123811123812123813123814123815123816123817123818123819123820123821123822123823123824123825123826123827123828123829123830123831123832123833123834123835123836123837123838123839123840123841123842123843123844123845123846123847123848123849123850123851123852123853123854123855123856123857123858123859123860123861123862123863123864123865123866123867123868123869123870123871123872123873123874123875123876123877123878123879123880123881123882123883123884123885123886123887123888123889123890123891123892123893123894123895123896123897123898123899123900123901123902123903123904123905123906123907123908123909123910123911123912123913123914123915123916123917123918123919123920123921123922123923123924123925123926123927123928123929123930123931123932123933123934123935123936123937123938123939123940123941123942123943123944123945123946123947123948123949123950123951123952123953123954123955123956123957123958123959123960123961123962123963123964123965123966123967123968123969123970123971123972123973123974123975123976123977123978123979123980123981123982123983123984123985123986123987123988123989123990123991123992123993123994123995123996123997123998123999124000124001124002124003124004124005124006124007124008124009124010124011124012124013124014124015124016124017124018124019124020124021124022124023124024124025124026124027124028124029124030124031124032124033124034124035124036124037124038124039124040124041124042124043124044124045124046124047124048124049124050124051124052124053124054124055124056124057124058124059124060124061124062124063124064124065124066124067124068124069124070124071124072124073124074124075124076124077124078124079124080124081124082124083124084124085124086124087124088124089124090124091124092124093124094124095124096124097124098124099124100124101124102124103124104124105124106124107124108124109124110124111124112124113124114124115124116124117124118124119124120124121124122124123124124124125124126124127124128124129124130124131124132124133124134124135124136124137124138124139124140124141124142124143124144124145124146124147124148124149124150124151124152124153124154124155124156124157124158124159124160124161124162124163124164124165124166124167124168124169124170124171124172124173124174124175124176124177124178124179124180124181124182124183124184124185124186124187124188124189124190124191124192124193124194124195124196124197124198124199124200124201124202124203124204124205124206124207124208124209124210124211124212124213124214124215124216124217124218124219124220124221124222124223124224124225124226124227124228124229124230124231124232124233124234124235124236124237124238124239124240124241124242124243124244124245124246124247124248124249124250124251124252124253124254124255124256124257124258124259124260124261124262124263124264124265124266124267124268124269124270124271124272124273124274124275124276124277124278124279124280124281124282124283124284124285124286124287124288124289124290124291124292124293124294124295124296124297124298124299124300124301124302124303124304124305124306124307124308124309124310124311124312124313124314124315124316124317124318124319124320124321124322124323124324124325124326124327124328124329124330124331124332124333124334124335124336124337124338124339124340124341124342124343124344124345124346124347124348124349124350124351124352124353124354124355124356124357124358124359124360124361124362124363124364124365124366124367124368124369124370124371124372124373124374124375124376124377124378124379124380124381124382124383124384124385124386124387124388124389124390124391124392124393124394124395124396124397124398124399124400124401124402124403124404124405124406124407124408124409124410124411124412124413124414124415124416124417124418124419124420124421124422124423124424124425124426124427124428124429124430124431124432124433124434124435124436124437124438124439124440124441124442124443124444124445124446124447124448124449124450124451124452124453124454124455124456124457124458124459124460124461124462124463124464124465124466124467124468124469124470124471124472124473124474124475124476124477124478124479124480124481124482124483124484124485124486124487124488124489124490124491124492124493124494124495124496124497124498124499124500124501124502124503124504124505124506124507124508124509124510124511124512124513124514124515124516124517124518124519124520124521124522124523124524124525124526124527124528124529124530124531124532124533124534124535124536124537124538124539124540124541124542124543124544124545124546124547124548124549124550124551124552124553124554124555124556124557124558124559124560124561124562124563124564124565124566124567124568124569124570124571124572124573124574124575124576124577124578124579124580124581124582124583124584124585124586124587124588124589124590124591124592124593124594124595124596124597124598124599124600124601124602124603124604124605124606124607124608124609124610124611124612124613124614124615124616124617124618124619124620124621124622124623124624124625124626124627124628124629124630124631124632124633124634124635124636124637124638124639124640124641124642124643124644124645124646124647124648124649124650124651124652124653124654124655124656124657124658124659124660124661124662124663124664124665124666124667124668124669124670124671124672124673124674124675124676124677124678124679124680124681124682124683124684124685124686124687124688124689124690124691124692124693124694124695124696124697124698124699124700124701124702124703124704124705124706124707124708124709124710124711124712124713124714124715124716124717124718124719124720124721124722124723124724124725124726124727124728124729124730124731124732124733124734124735124736124737124738124739124740124741124742124743124744124745124746124747124748124749124750124751124752124753124754124755124756124757124758124759124760124761124762124763124764124765124766124767124768124769124770124771124772124773124774124775124776124777124778124779124780124781124782124783124784124785124786124787124788124789124790124791124792124793124794124795124796124797124798124799124800124801124802124803124804124805124806124807124808124809124810124811124812124813124814124815124816124817124818124819124820124821124822124823124824124825124826124827124828124829124830124831124832124833124834124835124836124837124838124839124840124841124842124843124844124845124846124847124848124849124850124851124852124853124854124855124856124857124858124859124860124861124862124863124864124865124866124867124868124869124870124871124872124873124874124875124876124877124878124879124880124881124882124883124884124885124886124887124888124889124890124891124892124893124894124895124896124897124898124899124900124901124902124903124904124905124906124907124908124909124910124911124912124913124914124915124916124917124918124919124920124921124922124923124924124925124926124927124928124929124930124931124932124933124934124935124936124937124938124939124940124941124942124943124944124945124946124947124948124949124950124951124952124953124954124955124956124957124958124959124960124961124962124963124964124965124966124967124968124969124970124971124972124973124974124975124976124977124978124979124980124981124982124983124984124985124986124987124988124989124990124991124992124993124994124995124996124997124998124999125000125001125002125003125004125005125006125007125008125009125010125011125012125013125014125015125016125017125018125019125020125021125022125023125024125025125026125027125028125029125030125031125032125033125034125035125036125037125038125039125040125041125042125043125044125045125046125047125048125049125050125051125052125053125054125055125056125057125058125059125060125061125062125063125064125065125066125067125068125069125070125071125072125073125074125075125076125077125078125079125080125081125082125083125084125085125086125087125088125089125090125091125092125093125094125095125096125097125098125099125100125101125102125103125104125105125106125107125108125109125110125111125112125113125114125115125116125117125118125119125120125121125122125123125124125125125126125127125128125129125130125131125132125133125134125135125136125137125138125139125140125141125142125143125144125145125146125147125148125149125150125151125152125153125154125155125156125157125158125159125160125161125162125163125164125165125166125167125168125169125170125171125172125173125174125175125176125177125178125179125180125181125182125183125184125185125186125187125188125189125190125191125192125193125194125195125196125197125198125199125200125201125202125203125204125205125206125207125208125209125210125211125212125213125214125215125216125217125218125219125220125221125222125223125224125225125226125227125228125229125230125231125232125233125234125235125236125237125238125239125240125241125242125243125244125245125246125247125248125249125250125251125252125253125254125255125256125257125258125259125260125261125262125263125264125265125266125267125268125269125270125271125272125273125274125275125276125277125278125279125280125281125282125283125284125285125286125287125288125289125290125291125292125293125294125295125296125297125298125299125300125301125302125303125304125305125306125307125308125309125310125311125312125313125314125315125316125317125318125319125320125321125322125323125324125325125326125327125328125329125330125331125332125333125334125335125336125337125338125339125340125341125342125343125344125345125346125347125348125349125350125351125352125353125354125355125356125357125358125359125360125361125362125363125364125365125366125367125368125369125370125371125372125373125374125375125376125377125378125379125380125381125382125383125384125385125386125387125388125389125390125391125392125393125394125395125396125397125398125399125400125401125402125403125404125405125406125407125408125409125410125411125412125413125414125415125416125417125418125419125420125421125422125423125424125425125426125427125428125429125430125431125432125433125434125435125436125437125438125439125440125441125442125443125444125445125446125447125448125449125450125451125452125453125454125455125456125457125458125459125460125461125462125463125464125465125466125467125468125469125470125471125472125473125474125475125476125477125478125479125480125481125482125483125484125485125486125487125488125489125490125491125492125493125494125495125496125497125498125499125500125501125502125503125504125505125506125507125508125509125510125511125512125513125514125515125516125517125518125519125520125521125522125523125524125525125526125527125528125529125530125531125532125533125534125535125536125537125538125539125540125541125542125543125544125545125546125547125548125549125550125551125552125553125554125555125556125557125558125559125560125561125562125563125564125565125566125567125568125569125570125571125572125573125574125575125576125577125578125579125580125581125582125583125584125585125586125587125588125589125590125591125592125593125594125595125596125597125598125599125600125601125602125603125604125605125606125607125608125609125610125611125612125613125614125615125616125617125618125619125620125621125622125623125624125625125626125627125628125629125630125631125632125633125634125635125636125637125638125639125640125641125642125643125644125645125646125647125648125649125650125651125652125653125654125655125656125657125658125659125660125661125662125663125664125665125666125667125668125669125670125671125672125673125674125675125676125677125678125679125680125681125682125683125684125685125686125687125688125689125690125691125692125693125694125695125696125697125698125699125700125701125702125703125704125705125706125707125708125709125710125711125712125713125714125715125716125717125718125719125720125721125722125723125724125725125726125727125728125729125730125731125732125733125734125735125736125737125738125739125740125741125742125743125744125745125746125747125748125749125750125751125752125753125754125755125756125757125758125759125760125761125762125763125764125765125766125767125768125769125770125771125772125773125774125775125776125777125778125779125780125781125782125783125784125785125786125787125788125789125790125791125792125793125794125795125796125797125798125799125800125801125802125803125804125805125806125807125808125809125810125811125812125813125814125815125816125817125818125819125820125821125822125823125824125825125826125827125828125829125830125831125832125833125834125835125836125837125838125839125840125841125842125843125844125845125846125847125848125849125850125851125852125853125854125855125856125857125858125859125860125861125862125863125864125865125866125867125868125869125870125871125872125873125874125875125876125877125878125879125880125881125882125883125884125885125886125887125888125889125890125891125892125893125894125895125896125897125898125899125900125901125902125903125904125905125906125907125908125909125910125911125912125913125914125915125916125917125918125919125920125921125922125923125924125925125926125927125928125929125930125931125932125933125934125935125936125937125938125939125940125941125942125943125944125945125946125947125948125949125950125951125952125953125954125955125956125957125958125959125960125961125962125963125964125965125966125967125968125969125970125971125972125973125974125975125976125977125978125979125980125981125982125983125984125985125986125987125988125989125990125991125992125993125994125995125996125997125998125999126000126001126002126003126004126005126006126007126008126009126010126011126012126013126014126015126016126017126018126019126020126021126022126023126024126025126026126027126028126029126030126031126032126033126034126035126036126037126038126039126040126041126042126043126044126045126046126047126048126049126050126051126052126053126054126055126056126057126058126059126060126061126062126063126064126065126066126067126068126069126070126071126072126073126074126075126076126077126078126079126080126081126082126083126084126085126086126087126088126089126090126091126092126093126094126095126096126097126098126099126100126101126102126103126104126105126106126107126108126109126110126111126112126113126114126115126116126117126118126119126120126121126122126123126124126125126126126127126128126129126130126131126132126133126134126135126136126137126138126139126140126141126142126143126144126145126146126147126148126149126150126151126152126153126154126155126156126157126158126159126160126161126162126163126164126165126166126167126168126169126170126171126172126173126174126175126176126177126178126179126180126181126182126183126184126185126186126187126188126189126190126191126192126193126194126195126196126197126198126199126200126201126202126203126204126205126206126207126208126209126210126211126212126213126214126215126216126217126218126219126220126221126222126223126224126225126226126227126228126229126230126231126232126233126234126235126236126237126238126239126240126241126242126243126244126245126246126247126248126249126250126251126252126253126254126255126256126257126258126259126260126261126262126263126264126265126266126267126268126269126270126271126272126273126274126275126276126277126278126279126280126281126282126283126284126285126286126287126288126289126290126291126292126293126294126295126296126297126298126299126300126301126302126303126304126305126306126307126308126309126310126311126312126313126314126315126316126317126318126319126320126321126322126323126324126325126326126327126328126329126330126331126332126333126334126335126336126337126338126339126340126341126342126343126344126345126346126347126348126349126350126351126352126353126354126355126356126357126358126359126360126361126362126363126364126365126366126367126368126369126370126371126372126373126374126375126376126377126378126379126380126381126382126383126384126385126386126387126388126389126390126391126392126393126394126395126396126397126398126399126400126401126402126403126404126405126406126407126408126409126410126411126412126413126414126415126416126417126418126419126420126421126422126423126424126425126426126427126428126429126430126431126432126433126434126435126436126437126438126439126440126441126442126443126444126445126446126447126448126449126450126451126452126453126454126455126456126457126458126459126460126461126462126463126464126465126466126467126468126469126470126471126472126473126474126475126476126477126478126479126480126481126482126483126484126485126486126487126488126489126490126491126492126493126494126495126496126497126498126499126500126501126502126503126504126505126506126507126508126509126510126511126512126513126514126515126516126517126518126519126520126521126522126523126524126525126526126527126528126529126530126531126532126533126534126535126536126537126538126539126540126541126542126543126544126545126546126547126548126549126550126551126552126553126554126555126556126557126558126559126560126561126562126563126564126565126566126567126568126569126570126571126572126573126574126575126576126577126578126579126580126581126582126583126584126585126586126587126588126589126590126591126592126593126594126595126596126597126598126599126600126601126602126603126604126605126606126607126608126609126610126611126612126613126614126615126616126617126618126619126620126621126622126623126624126625126626126627126628126629126630126631126632126633126634126635126636126637126638126639126640126641126642126643126644126645126646126647126648126649126650126651126652126653126654126655126656126657126658126659126660126661126662126663126664126665126666126667126668126669126670126671126672126673126674126675126676126677126678126679126680126681126682126683126684126685126686126687126688126689126690126691126692126693126694126695126696126697126698126699126700126701126702126703126704126705126706126707126708126709126710126711126712126713126714126715126716126717126718126719126720126721126722126723126724126725126726126727126728126729126730126731126732126733126734126735126736126737126738126739126740126741126742126743126744126745126746126747126748126749126750126751126752126753126754126755126756126757126758126759126760126761126762126763126764126765126766126767126768126769126770126771126772126773126774126775126776126777126778126779126780126781126782126783126784126785126786126787126788126789126790126791126792126793126794126795126796126797126798126799126800126801126802126803126804126805126806126807126808126809126810126811126812126813126814126815126816126817126818126819126820126821126822126823126824126825126826126827126828126829126830126831126832126833126834126835126836126837126838126839126840126841126842126843126844126845126846126847126848126849126850126851126852126853126854126855126856126857126858126859126860126861126862126863126864126865126866126867126868126869126870126871126872126873126874126875126876126877126878126879126880126881126882126883126884126885126886126887126888126889126890126891126892126893126894126895126896126897126898126899126900126901126902126903126904126905126906126907126908126909126910126911126912126913126914126915126916126917126918126919126920126921126922126923126924126925126926126927126928126929126930126931126932126933126934126935126936126937126938126939126940126941126942126943126944126945126946126947126948126949126950126951126952126953126954126955126956126957126958126959126960126961126962126963126964126965126966126967126968126969126970126971126972126973126974126975126976126977126978126979126980126981126982126983126984126985126986126987126988126989126990126991126992126993126994126995126996126997126998126999127000127001127002127003127004127005127006127007127008127009127010127011127012127013127014127015127016127017127018127019127020127021127022127023127024127025127026127027127028127029127030127031127032127033127034127035127036127037127038127039127040127041127042127043127044127045127046127047127048127049127050127051127052127053127054127055127056127057127058127059127060127061127062127063127064127065127066127067127068127069127070127071127072127073127074127075127076127077127078127079127080127081127082127083127084127085127086127087127088127089127090127091127092127093127094127095127096127097127098127099127100127101127102127103127104127105127106127107127108127109127110127111127112127113127114127115127116127117127118127119127120127121127122127123127124127125127126127127127128127129127130127131127132127133127134127135127136127137127138127139127140127141127142127143127144127145127146127147127148127149127150127151127152127153127154127155127156127157127158127159127160127161127162127163127164127165127166127167127168127169127170127171127172127173127174127175127176127177127178127179127180127181127182127183127184127185127186127187127188127189127190127191127192127193127194127195127196127197127198127199127200127201127202127203127204127205127206127207127208127209127210127211127212127213127214127215127216127217127218127219127220127221127222127223127224127225127226127227127228127229127230127231127232127233127234127235127236127237127238127239127240127241127242127243127244127245127246127247127248127249127250127251127252127253127254127255127256127257127258127259127260127261127262127263127264127265127266127267127268127269127270127271127272127273127274127275127276127277127278127279127280127281127282127283127284127285127286127287127288127289127290127291127292127293127294127295127296127297127298127299127300127301127302127303127304127305127306127307127308127309127310127311127312127313127314127315127316127317127318127319127320127321127322127323127324127325127326127327127328127329127330127331127332127333127334127335127336127337127338127339127340127341127342127343127344127345127346127347127348127349127350127351127352127353127354127355127356127357127358127359127360127361127362127363127364127365127366127367127368127369127370127371127372127373127374127375127376127377127378127379127380127381127382127383127384127385127386127387127388127389127390127391127392127393127394127395127396127397127398127399127400127401127402127403127404127405127406127407127408127409127410127411127412127413127414127415127416127417127418127419127420127421127422127423127424127425127426127427127428127429127430127431127432127433127434127435127436127437127438127439127440127441127442127443127444127445127446127447127448127449127450127451127452127453127454127455127456127457127458127459127460127461127462127463127464127465127466127467127468127469127470127471127472127473127474127475127476127477127478127479127480127481127482127483127484127485127486127487127488127489127490127491127492127493127494127495127496127497127498127499127500127501127502127503127504127505127506127507127508127509127510127511127512127513127514127515127516127517127518127519127520127521127522127523127524127525127526127527127528127529127530127531127532127533127534127535127536127537127538127539127540127541127542127543127544127545127546127547127548127549127550127551127552127553127554127555127556127557127558127559127560127561127562127563127564127565127566127567127568127569127570127571127572127573127574127575127576127577127578127579127580127581127582127583127584127585127586127587127588127589127590127591127592127593127594127595127596127597127598127599127600127601127602127603127604127605127606127607127608127609127610127611127612127613127614127615127616127617127618127619127620127621127622127623127624127625127626127627127628127629127630127631127632127633127634127635127636127637127638127639127640127641127642127643127644127645127646127647127648127649127650127651127652127653127654127655127656127657127658127659127660127661127662127663127664127665127666127667127668127669127670127671127672127673127674127675127676127677127678127679127680127681127682127683127684127685127686127687127688127689127690127691127692127693127694127695127696127697127698127699127700127701127702127703127704127705127706127707127708127709127710127711127712127713127714127715127716127717127718127719127720127721127722127723127724127725127726127727127728127729127730127731127732127733127734127735127736127737127738127739127740127741127742127743127744127745127746127747127748127749127750127751127752127753127754127755127756127757127758127759127760127761127762127763127764127765127766127767127768127769127770127771127772127773127774127775127776127777127778127779127780127781127782127783127784127785127786127787127788127789127790127791127792127793127794127795127796127797127798127799127800127801127802127803127804127805127806127807127808127809127810127811127812127813127814127815127816127817127818127819127820127821127822127823127824127825127826127827127828127829127830127831127832127833127834127835127836127837127838127839127840127841127842127843127844127845127846127847127848127849127850127851127852127853127854127855127856127857127858127859127860127861127862127863127864127865127866127867127868127869127870127871127872127873127874127875127876127877127878127879127880127881127882127883127884127885127886127887127888127889127890127891127892127893127894127895127896127897127898127899127900127901127902127903127904127905127906127907127908127909127910127911127912127913127914127915127916127917127918127919127920127921127922127923127924127925127926127927127928127929127930127931127932127933127934127935127936127937127938127939127940127941127942127943127944127945127946127947127948127949127950127951127952127953127954127955127956127957127958127959127960127961127962127963127964127965127966127967127968127969127970127971127972127973127974127975127976127977127978127979127980127981127982127983127984127985127986127987127988127989127990127991127992127993127994127995127996127997127998127999128000128001128002128003128004128005128006128007128008128009128010128011128012128013128014128015128016128017128018128019128020128021128022128023128024128025128026128027128028128029128030128031128032128033128034128035128036128037128038128039128040128041128042128043128044128045128046128047128048128049128050128051128052128053128054128055128056128057128058128059128060128061128062128063128064128065128066128067128068128069128070128071128072128073128074128075128076128077128078128079128080128081128082128083128084128085128086128087128088128089128090128091128092128093128094128095128096128097128098128099128100128101128102128103128104128105128106128107128108128109128110128111128112128113128114128115128116128117128118128119128120128121128122128123128124128125128126128127128128128129128130128131128132128133128134128135128136128137128138128139128140128141128142128143128144128145128146128147128148128149128150128151128152128153128154128155128156128157128158128159128160128161128162128163128164128165128166128167128168128169128170128171128172128173128174128175128176128177128178128179128180128181128182128183128184128185128186128187128188128189128190128191128192128193128194128195128196128197128198128199128200128201128202128203128204128205128206128207128208128209128210128211128212128213128214128215128216128217128218128219128220128221128222128223128224128225128226128227128228128229128230128231128232128233128234128235128236128237128238128239128240128241128242128243128244128245128246128247128248128249128250128251128252128253128254128255128256128257128258128259128260128261128262128263128264128265128266128267128268128269128270128271128272128273128274128275128276128277128278128279128280128281128282128283128284128285128286128287128288128289128290128291128292128293128294128295128296128297128298128299128300128301128302128303128304128305128306128307128308128309128310128311128312128313128314128315128316128317128318128319128320128321128322128323128324128325128326128327128328128329128330128331128332128333128334128335128336128337128338128339128340128341128342128343128344128345128346128347128348128349128350128351128352128353128354128355128356128357128358128359128360128361128362128363128364128365128366128367128368128369128370128371128372128373128374128375128376128377128378128379128380128381128382128383128384128385128386128387128388128389128390128391128392128393128394128395128396128397128398128399128400128401128402128403128404128405128406128407128408128409128410128411128412128413128414128415128416128417128418128419128420128421128422128423128424128425128426128427128428128429128430128431128432128433128434128435128436128437128438128439128440128441128442128443128444128445128446128447128448128449128450128451128452128453128454128455128456128457128458128459128460128461128462128463128464128465128466128467128468128469128470128471128472128473128474128475128476128477128478128479128480128481128482128483128484128485128486128487128488128489128490128491128492128493128494128495128496128497128498128499128500128501128502128503128504128505128506128507128508128509128510128511128512128513128514128515128516128517128518128519128520128521128522128523128524128525128526128527128528128529128530128531128532128533128534128535128536128537128538128539128540128541128542128543128544128545128546128547128548128549128550128551128552128553128554128555128556128557128558128559128560128561128562128563128564128565128566128567128568128569128570128571128572128573128574128575128576128577128578128579128580128581128582128583128584128585128586128587128588128589128590128591128592128593128594128595128596128597128598128599128600128601128602128603128604128605128606128607128608128609128610128611128612128613128614128615128616128617128618128619128620128621128622128623128624128625128626128627128628128629128630128631128632128633128634128635128636128637128638128639128640128641128642128643128644128645128646128647128648128649128650128651128652128653128654128655128656128657128658128659128660128661128662128663128664128665128666128667128668128669128670128671128672128673128674128675128676128677128678128679128680128681128682128683128684128685128686128687128688128689128690128691128692128693128694128695128696128697128698128699128700128701128702128703128704128705128706128707128708128709128710128711128712128713128714128715128716128717128718128719128720128721128722128723128724128725128726128727128728128729128730128731128732128733128734128735128736128737128738128739128740128741128742128743128744128745128746128747128748128749128750128751128752128753128754128755128756128757128758128759128760128761128762128763128764128765128766128767128768128769128770128771128772128773128774128775128776128777128778128779128780128781128782128783128784128785128786128787128788128789128790128791128792128793128794128795128796128797128798128799128800128801128802128803128804128805128806128807128808128809128810128811128812128813128814128815128816128817128818128819128820128821128822128823128824128825128826128827128828128829128830128831128832128833128834128835128836128837128838128839128840128841128842128843128844128845128846128847128848128849128850128851128852128853128854128855128856128857128858128859128860128861128862128863128864128865128866128867128868128869128870128871128872128873128874128875128876128877128878128879128880128881128882128883128884128885128886128887128888128889128890128891128892128893128894128895128896128897128898128899128900128901128902128903128904128905128906128907128908128909128910128911128912128913128914128915128916128917128918128919128920128921128922128923128924128925128926128927128928128929128930128931128932128933128934128935128936128937128938128939128940128941128942128943128944128945128946128947128948128949128950128951128952128953128954128955128956128957128958128959128960128961128962128963128964128965128966128967128968128969128970128971128972128973128974128975128976128977128978128979128980128981128982128983128984128985128986128987128988128989128990128991128992128993128994128995128996128997128998128999129000129001129002129003129004129005129006129007129008129009129010129011129012129013129014129015129016129017129018129019129020129021129022129023129024129025129026129027129028129029129030129031129032129033129034129035129036129037129038129039129040129041129042129043129044129045129046129047129048129049129050129051129052129053129054129055129056129057129058129059129060129061129062129063129064129065129066129067129068129069129070129071129072129073129074129075129076129077129078129079129080129081129082129083129084129085129086129087129088129089129090129091129092129093129094129095129096129097129098129099129100129101129102129103129104129105129106129107129108129109129110129111129112129113129114129115129116129117129118129119129120129121129122129123129124129125129126129127129128129129129130129131129132129133129134129135129136129137129138129139129140129141129142129143129144129145129146129147129148129149129150129151129152129153129154129155129156129157129158129159129160129161129162129163129164129165129166129167129168129169129170129171129172129173129174129175129176129177129178129179129180129181129182129183129184129185129186129187129188129189129190129191129192129193129194129195129196129197129198129199129200129201129202129203129204129205129206129207129208129209129210129211129212129213129214129215129216129217129218129219129220129221129222129223129224129225129226129227129228129229129230129231129232129233129234129235129236129237129238129239129240129241129242129243129244129245129246129247129248129249129250129251129252129253129254129255129256129257129258129259129260129261129262129263129264129265129266129267129268129269129270129271129272129273129274129275129276129277129278129279129280129281129282129283129284129285129286129287129288129289129290129291129292129293129294129295129296129297129298129299129300129301129302129303129304129305129306129307129308129309129310129311129312129313129314129315129316129317129318129319129320129321129322129323129324129325129326129327129328129329129330129331129332129333129334129335129336129337129338129339129340129341129342129343129344129345129346129347129348129349129350129351129352129353129354129355129356129357129358129359129360129361129362129363129364129365129366129367129368129369129370129371129372129373129374129375129376129377129378129379129380129381129382129383129384129385129386129387129388129389129390129391129392129393129394129395129396129397129398129399129400129401129402129403129404129405129406129407129408129409129410129411129412129413129414129415129416129417129418129419129420129421129422129423129424129425129426129427129428129429129430129431129432129433129434129435129436129437129438129439129440129441129442129443129444129445129446129447129448129449129450129451129452129453129454129455129456129457129458129459129460129461129462129463129464129465129466129467129468129469129470129471129472129473129474129475129476129477129478129479129480129481129482129483129484129485129486129487129488129489129490129491129492129493129494129495129496129497129498129499129500129501129502129503129504129505129506129507129508129509129510129511129512129513129514129515129516129517129518129519129520129521129522129523129524129525129526129527129528129529129530129531129532129533129534129535129536129537129538129539129540129541129542129543129544129545129546129547129548129549129550129551129552129553129554129555129556129557129558129559129560129561129562129563129564129565129566129567129568129569129570129571129572129573129574129575129576129577129578129579129580129581129582129583129584129585129586129587129588129589129590129591129592129593129594129595129596129597129598129599129600129601129602129603129604129605129606129607129608129609129610129611129612129613129614129615129616129617129618129619129620129621129622129623129624129625129626129627129628129629129630129631129632129633129634129635129636129637129638129639129640129641129642129643129644129645129646129647129648129649129650129651129652129653129654129655129656129657129658129659129660129661129662129663129664129665129666129667129668129669129670129671129672129673129674129675129676129677129678129679129680129681129682129683129684129685129686129687129688129689129690129691129692129693129694129695129696129697129698129699129700129701129702129703129704129705129706129707129708129709129710129711129712129713129714129715129716129717129718129719129720129721129722129723129724129725129726129727129728129729129730129731129732129733129734129735129736129737129738129739129740129741129742129743129744129745129746129747129748129749129750129751129752129753129754129755129756129757129758129759129760129761129762129763129764129765129766129767129768129769129770129771129772129773129774129775129776129777129778129779129780129781129782129783129784129785129786129787129788129789129790129791129792129793129794129795129796129797129798129799129800129801129802129803129804129805129806129807129808129809129810129811129812129813129814129815129816129817129818129819129820129821129822129823129824129825129826129827129828129829129830129831129832129833129834129835129836129837129838129839129840129841129842129843129844129845129846129847129848129849129850129851129852129853129854129855129856129857129858129859129860129861129862129863129864129865129866129867129868129869129870129871129872129873129874129875129876129877129878129879129880129881129882129883129884129885129886129887129888129889129890129891129892129893129894129895129896129897129898129899129900129901129902129903129904129905129906129907129908129909129910129911129912129913129914129915129916129917129918129919129920129921129922129923129924129925129926129927129928129929129930129931129932129933129934129935129936129937129938129939129940129941129942129943129944129945129946129947129948129949129950129951129952129953129954129955129956129957129958129959129960129961129962129963129964129965129966129967129968129969129970129971129972129973129974129975129976129977129978129979129980129981129982129983129984129985129986129987129988129989129990129991129992129993129994129995129996129997129998129999130000130001130002130003130004130005130006130007130008130009130010130011130012130013130014130015130016130017130018130019130020130021130022130023130024130025130026130027130028130029130030130031130032130033130034130035130036130037130038130039130040130041130042130043130044130045130046130047130048130049130050130051130052130053130054130055130056130057130058130059130060130061130062130063130064130065130066130067130068130069130070130071130072130073130074130075130076130077130078130079130080130081130082130083130084130085130086130087130088130089130090130091130092130093130094130095130096130097130098130099130100130101130102130103130104130105130106130107130108130109130110130111130112130113130114130115130116130117130118130119130120130121130122130123130124130125130126130127130128130129130130130131130132130133130134130135130136130137130138130139130140130141130142130143130144130145130146130147130148130149130150130151130152130153130154130155130156130157130158130159130160130161130162130163130164130165130166130167130168130169130170130171130172130173130174130175130176130177130178130179130180130181130182130183130184130185130186130187130188130189130190130191130192130193130194130195130196130197130198130199130200130201130202130203130204130205130206130207130208130209130210130211130212130213130214130215130216130217130218130219130220130221130222130223130224130225130226130227130228130229130230130231130232130233130234130235130236130237130238130239130240130241130242130243130244130245130246130247130248130249130250130251130252130253130254130255130256130257130258130259130260130261130262130263130264130265130266130267130268130269130270130271130272130273130274130275130276130277130278130279130280130281130282130283130284130285130286130287130288130289130290130291130292130293130294130295130296130297130298130299130300130301130302130303130304130305130306130307130308130309130310130311130312130313130314130315130316130317130318130319130320130321130322130323130324130325130326130327130328130329130330130331130332130333130334130335130336130337130338130339130340130341130342130343130344130345130346130347130348130349130350130351130352130353130354130355130356130357130358130359130360130361130362130363130364130365130366130367130368130369130370130371130372130373130374130375130376130377130378130379130380130381130382130383130384130385130386130387130388130389130390130391130392130393130394130395130396130397130398130399130400130401130402130403130404130405130406130407130408130409130410130411130412130413130414130415130416130417130418130419130420130421130422130423130424130425130426130427130428130429130430130431130432130433130434130435130436130437130438130439130440130441130442130443130444130445130446130447130448130449130450130451130452130453130454130455130456130457130458130459130460130461130462130463130464130465130466130467130468130469130470130471130472130473130474130475130476130477130478130479130480130481130482130483130484130485130486130487130488130489130490130491130492130493130494130495130496130497130498130499130500130501130502130503130504130505130506130507130508130509130510130511130512130513130514130515130516130517130518130519130520130521130522130523130524130525130526130527130528130529130530130531130532130533130534130535130536130537130538130539130540130541130542130543130544130545130546130547130548130549130550130551130552130553130554130555130556130557130558130559130560130561130562130563130564130565130566130567130568130569130570130571130572130573130574130575130576130577130578130579130580130581130582130583130584130585130586130587130588130589130590130591130592130593130594130595130596130597130598130599130600130601130602130603130604130605130606130607130608130609130610130611130612130613130614130615130616130617130618130619130620130621130622130623130624130625130626130627130628130629130630130631130632130633130634130635130636130637130638130639130640130641130642130643130644130645130646130647130648130649130650130651130652130653130654130655130656130657130658130659130660130661130662130663130664130665130666130667130668130669130670130671130672130673130674130675130676130677130678130679130680130681130682130683130684130685130686130687130688130689130690130691130692130693130694130695130696130697130698130699130700130701130702130703130704130705130706130707130708130709130710130711130712130713130714130715130716130717130718130719130720130721130722130723130724130725130726130727130728130729130730130731130732130733130734130735130736130737130738130739130740130741130742130743130744130745130746130747130748130749130750130751130752130753130754130755130756130757130758130759130760130761130762130763130764130765130766130767130768130769130770130771130772130773130774130775130776130777130778130779130780130781130782130783130784130785130786130787130788130789130790130791130792130793130794130795130796130797130798130799130800130801130802130803130804130805130806130807130808130809130810130811130812130813130814130815130816130817130818130819130820130821130822130823130824130825130826130827130828130829130830130831130832130833130834130835130836130837130838130839130840130841130842130843130844130845130846130847130848130849130850130851130852130853130854130855130856130857130858130859130860130861130862130863130864130865130866130867130868130869130870130871130872130873130874130875130876130877130878130879130880130881130882130883130884130885130886130887130888130889130890130891130892130893130894130895130896130897130898130899130900130901130902130903130904130905130906130907130908130909130910130911130912130913130914130915130916130917130918130919130920130921130922130923130924130925130926130927130928130929130930130931130932130933130934130935130936130937130938130939130940130941130942130943130944130945130946130947130948130949130950130951130952130953130954130955130956130957130958130959130960130961130962130963130964130965130966130967130968130969130970130971130972130973130974130975130976130977130978130979130980130981130982130983130984130985130986130987130988130989130990130991130992130993130994130995130996130997130998130999131000131001131002131003131004131005131006131007131008131009131010131011131012131013131014131015131016131017131018131019131020131021131022131023131024131025131026131027131028131029131030131031131032131033131034131035131036131037131038131039131040131041131042131043131044131045131046131047131048131049131050131051131052131053131054131055131056131057131058131059131060131061131062131063131064131065131066131067131068131069131070131071131072131073131074131075131076131077131078131079131080131081131082131083131084131085131086131087131088131089131090131091131092131093131094131095131096131097131098131099131100131101131102131103131104131105131106131107131108131109131110131111131112131113131114131115131116131117131118131119131120131121131122131123131124131125131126131127131128131129131130131131131132131133131134131135131136131137131138131139131140131141131142131143131144131145131146131147131148131149131150131151131152131153131154131155131156131157131158131159131160131161131162131163131164131165131166131167131168131169131170131171131172131173131174131175131176131177131178131179131180131181131182131183131184131185131186131187131188131189131190131191131192131193131194131195131196131197131198131199131200131201131202131203131204131205131206131207131208131209131210131211131212131213131214131215131216131217131218131219131220131221131222131223131224131225131226131227131228131229131230131231131232131233131234131235131236131237131238131239131240131241131242131243131244131245131246131247131248131249131250131251131252131253131254131255131256131257131258131259131260131261131262131263131264131265131266131267131268131269131270131271131272131273131274131275131276131277131278131279131280131281131282131283131284131285131286131287131288131289131290131291131292131293131294131295131296131297131298131299131300131301131302131303131304131305131306131307131308131309131310131311131312131313131314131315131316131317131318131319131320131321131322131323131324131325131326131327131328131329131330131331131332131333131334131335131336131337131338131339131340131341131342131343131344131345131346131347131348131349131350131351131352131353131354131355131356131357131358131359131360131361131362131363131364131365131366131367131368131369131370131371131372131373131374131375131376131377131378131379131380131381131382131383131384131385131386131387131388131389131390131391131392131393131394131395131396131397131398131399131400131401131402131403131404131405131406131407131408131409131410131411131412131413131414131415131416131417131418131419131420131421131422131423131424131425131426131427131428131429131430131431131432131433131434131435131436131437131438131439131440131441131442131443131444131445131446131447131448131449131450131451131452131453131454131455131456131457131458131459131460131461131462131463131464131465131466131467131468131469131470131471131472131473131474131475131476131477131478131479131480131481131482131483131484131485131486131487131488131489131490131491131492131493131494131495131496131497131498131499131500131501131502131503131504131505131506131507131508131509131510131511131512131513131514131515131516131517131518131519131520131521131522131523131524131525131526131527131528131529131530131531131532131533131534131535131536131537131538131539131540131541131542131543131544131545131546131547131548131549131550131551131552131553131554131555131556131557131558131559131560131561131562131563131564131565131566131567131568131569131570131571131572131573131574131575131576131577131578131579131580131581131582131583131584131585131586131587131588131589131590131591131592131593131594131595131596131597131598131599131600131601131602131603131604131605131606131607131608131609131610131611131612131613131614131615131616131617131618131619131620131621131622131623131624131625131626131627131628131629131630131631131632131633131634131635131636131637131638131639131640131641131642131643131644131645131646131647131648131649131650131651131652131653131654131655131656131657131658131659131660131661131662131663131664131665131666131667131668131669131670131671131672131673131674131675131676131677131678131679131680131681131682131683131684131685131686131687131688131689131690131691131692131693131694131695131696131697131698131699131700131701131702131703131704131705131706131707131708131709131710131711131712131713131714131715131716131717131718131719131720131721131722131723131724131725131726131727131728131729131730131731131732131733131734131735131736131737131738131739131740131741131742131743131744131745131746131747131748131749131750131751131752131753131754131755131756131757131758131759131760131761131762131763131764131765131766131767131768131769131770131771131772131773131774131775131776131777131778131779131780131781131782131783131784131785131786131787131788131789131790131791131792131793131794131795131796131797131798131799131800131801131802131803131804131805131806131807131808131809131810131811131812131813131814131815131816131817131818131819131820131821131822131823131824131825131826131827131828131829131830131831131832131833131834131835131836131837131838131839131840131841131842131843131844131845131846131847131848131849131850131851131852131853131854131855131856131857131858131859131860131861131862131863131864131865131866131867131868131869131870131871131872131873131874131875131876131877131878131879131880131881131882131883131884131885131886131887131888131889131890131891131892131893131894131895131896131897131898131899131900131901131902131903131904131905131906131907131908131909131910131911131912131913131914131915131916131917131918131919131920131921131922131923131924131925131926131927131928131929131930131931131932131933131934131935131936131937131938131939131940131941131942131943131944131945131946131947131948131949131950131951131952131953131954131955131956131957131958131959131960131961131962131963131964131965131966131967131968131969131970131971131972131973131974131975131976131977131978131979131980131981131982131983131984131985131986131987131988131989131990131991131992131993131994131995131996131997131998131999132000132001132002132003132004132005132006132007132008132009132010132011132012132013132014132015132016132017132018132019132020132021132022132023132024132025132026132027132028132029132030132031132032132033132034132035132036132037132038132039132040132041132042132043132044132045132046132047132048132049132050132051132052132053132054132055132056132057132058132059132060132061132062132063132064132065132066132067132068132069132070132071132072132073132074132075132076132077132078132079132080132081132082132083132084132085132086132087132088132089132090132091132092132093132094132095132096132097132098132099132100132101132102132103132104132105132106132107132108132109132110132111132112132113132114132115132116132117132118132119132120132121132122132123132124132125132126132127132128132129132130132131132132132133132134132135132136132137132138132139132140132141132142132143132144132145132146132147132148132149132150132151132152132153132154132155132156132157132158132159132160132161132162132163132164132165132166132167132168132169132170132171132172132173132174132175132176132177132178132179132180132181132182132183132184132185132186132187132188132189132190132191132192132193132194132195132196132197132198132199132200132201132202132203132204132205132206132207132208132209132210132211132212132213132214132215132216132217132218132219132220132221132222132223132224132225132226132227132228132229132230132231132232132233132234132235132236132237132238132239132240132241132242132243132244132245132246132247132248132249132250132251132252132253132254132255132256132257132258132259132260132261132262132263132264132265132266132267132268132269132270132271132272132273132274132275132276132277132278132279132280132281132282132283132284132285132286132287132288132289132290132291132292132293132294132295132296132297132298132299132300132301132302132303132304132305132306132307132308132309132310132311132312132313132314132315132316132317132318132319132320132321132322132323132324132325132326132327132328132329132330132331132332132333132334132335132336132337132338132339132340132341132342132343132344132345132346132347132348132349132350132351132352132353132354132355132356132357132358132359132360132361132362132363132364132365132366132367132368132369132370132371132372132373132374132375132376132377132378132379132380132381132382132383132384132385132386132387132388132389132390132391132392132393132394132395132396132397132398132399132400132401132402132403132404132405132406132407132408132409132410132411132412132413132414132415132416132417132418132419132420132421132422132423132424132425132426132427132428132429132430132431132432132433132434132435132436132437132438132439132440132441132442132443132444132445132446132447132448132449132450132451132452132453132454132455132456132457132458132459132460132461132462132463132464132465132466132467132468132469132470132471132472132473132474132475132476132477132478132479132480132481132482132483132484132485132486132487132488132489132490132491132492132493132494132495132496132497132498132499132500132501132502132503132504132505132506132507132508132509132510132511132512132513132514132515132516132517132518132519132520132521132522132523132524132525132526132527132528132529132530132531132532132533132534132535132536132537132538132539132540132541132542132543132544132545132546132547132548132549132550132551132552132553132554132555132556132557132558132559132560132561132562132563132564132565132566132567132568132569132570132571132572132573132574132575132576132577132578132579132580132581132582132583132584132585132586132587132588132589132590132591132592132593132594132595132596132597132598132599132600132601132602132603132604132605132606132607132608132609132610132611132612132613132614132615132616132617132618132619132620132621132622132623132624132625132626132627132628132629132630132631132632132633132634132635132636132637132638132639132640132641132642132643132644132645132646132647132648132649132650132651132652132653132654132655132656132657132658132659132660132661132662132663132664132665132666132667132668132669132670132671132672132673132674132675132676132677132678132679132680132681132682132683132684132685132686132687132688132689132690132691132692132693132694132695132696132697132698132699132700132701132702132703132704132705132706132707132708132709132710132711132712132713132714132715132716132717132718132719132720132721132722132723132724132725132726132727132728132729132730132731132732132733132734132735132736132737132738132739132740132741132742132743132744132745132746132747132748132749132750132751132752132753132754132755132756132757132758132759132760132761132762132763132764132765132766132767132768132769132770132771132772132773132774132775132776132777132778132779132780132781132782132783132784132785132786132787132788132789132790132791132792132793132794132795132796132797132798132799132800132801132802132803132804132805132806132807132808132809132810132811132812132813132814132815132816132817132818132819132820132821132822132823132824132825132826132827132828132829132830132831132832132833132834132835132836132837132838132839132840132841132842132843132844132845132846132847132848132849132850132851132852132853132854132855132856132857132858132859132860132861132862132863132864132865132866132867132868132869132870132871132872132873132874132875132876132877132878132879132880132881132882132883132884132885132886132887132888132889132890132891132892132893132894132895132896132897132898132899132900132901132902132903132904132905132906132907132908132909132910132911132912132913132914132915132916132917132918132919132920132921132922132923132924132925132926132927132928132929132930132931132932132933132934132935132936132937132938132939132940132941132942132943132944132945132946132947132948132949132950132951132952132953132954132955132956132957132958132959132960132961132962132963132964132965132966132967132968132969132970132971132972132973132974132975132976132977132978132979132980132981132982132983132984132985132986132987132988132989132990132991132992132993132994132995132996132997132998132999133000133001133002133003133004133005133006133007133008133009133010133011133012133013133014133015133016133017133018133019133020133021133022133023133024133025133026133027133028133029133030133031133032133033133034133035133036133037133038133039133040133041133042133043133044133045133046133047133048133049133050133051133052133053133054133055133056133057133058133059133060133061133062133063133064133065133066133067133068133069133070133071133072133073133074133075133076133077133078133079133080133081133082133083133084133085133086133087133088133089133090133091133092133093133094133095133096133097133098133099133100133101133102133103133104133105133106133107133108133109133110133111133112133113133114133115133116133117133118133119133120133121133122133123133124133125133126133127133128133129133130133131133132133133133134133135133136133137133138133139133140133141133142133143133144133145133146133147133148133149133150133151133152133153133154133155133156133157133158133159133160133161133162133163133164133165133166133167133168133169133170133171133172133173133174133175133176133177133178133179133180133181133182133183133184133185133186133187133188133189133190133191133192133193133194133195133196133197133198133199133200133201133202133203133204133205133206133207133208133209133210133211133212133213133214133215133216133217133218133219133220133221133222133223133224133225133226133227133228133229133230133231133232133233133234133235133236133237133238133239133240133241133242133243133244133245133246133247133248133249133250133251133252133253133254133255133256133257133258133259133260133261133262133263133264133265133266133267133268133269133270133271133272133273133274133275133276133277133278133279133280133281133282133283133284133285133286133287133288133289133290133291133292133293133294133295133296133297133298133299133300133301133302133303133304133305133306133307133308133309133310133311133312133313133314133315133316133317133318133319133320133321133322133323133324133325133326133327133328133329133330133331133332133333133334133335133336133337133338133339133340133341133342133343133344133345133346133347133348133349133350133351133352133353133354133355133356133357133358133359133360133361133362133363133364133365133366133367133368133369133370133371133372133373133374133375133376133377133378133379133380133381133382133383133384133385133386133387133388133389133390133391133392133393133394133395133396133397133398133399133400133401133402133403133404133405133406133407133408133409133410133411133412133413133414133415133416133417133418133419133420133421133422133423133424133425133426133427133428133429133430133431133432133433133434133435133436133437133438133439133440133441133442133443133444133445133446133447133448133449133450133451133452133453133454133455133456133457133458133459133460133461133462133463133464133465133466133467133468133469133470133471133472133473133474133475133476133477133478133479133480133481133482133483133484133485133486133487133488133489133490133491133492133493133494133495133496133497133498133499133500133501133502133503133504133505133506133507133508133509133510133511133512133513133514133515133516133517133518133519133520133521133522133523133524133525133526133527133528133529133530133531133532133533133534133535133536133537133538133539133540133541133542133543133544133545133546133547133548133549133550133551133552133553133554133555133556133557133558133559133560133561133562133563133564133565133566133567133568133569133570133571133572133573133574133575133576133577133578133579133580133581133582133583133584133585133586133587133588133589133590133591133592133593133594133595133596133597133598133599133600133601133602133603133604133605133606133607133608133609133610133611133612133613133614133615133616133617133618133619133620133621133622133623133624133625133626133627133628133629133630133631133632133633133634133635133636133637133638133639133640133641133642133643133644133645133646133647133648133649133650133651133652133653133654133655133656133657133658133659133660133661133662133663133664133665133666133667133668133669133670133671133672133673133674133675133676133677133678133679133680133681133682133683133684133685133686133687133688133689133690133691133692133693133694133695133696133697133698133699133700133701133702133703133704133705133706133707133708133709133710133711133712133713133714133715133716133717133718133719133720133721133722133723133724133725133726133727133728133729133730133731133732133733133734133735133736133737133738133739133740133741133742133743133744133745133746133747133748133749133750133751133752133753133754133755133756133757133758133759133760133761133762133763133764133765133766133767133768133769133770133771133772133773133774133775133776133777133778133779133780133781133782133783133784133785133786133787133788133789133790133791133792133793133794133795133796133797133798133799133800133801133802133803133804133805133806133807133808133809133810133811133812133813133814133815133816133817133818133819133820133821133822133823133824133825133826133827133828133829133830133831133832133833133834133835133836133837133838133839133840133841133842133843133844133845133846133847133848133849133850133851133852133853133854133855133856133857133858133859133860133861133862133863133864133865133866133867133868133869133870133871133872133873133874133875133876133877133878133879133880133881133882133883133884133885133886133887133888133889133890133891133892133893133894133895133896133897133898133899133900133901133902133903133904133905133906133907133908133909133910133911133912133913133914133915133916133917133918133919133920133921133922133923133924133925133926133927133928133929133930133931133932133933133934133935133936133937133938133939133940133941133942133943133944133945133946133947133948133949133950133951133952133953133954133955133956133957133958133959133960133961133962133963133964133965133966133967133968133969133970133971133972133973133974133975133976133977133978133979133980133981133982133983133984133985133986133987133988133989133990133991133992133993133994133995133996133997133998133999134000134001134002134003134004134005134006134007134008134009134010134011134012134013134014134015134016134017134018134019134020134021134022134023134024134025134026134027134028134029134030134031134032134033134034134035134036134037134038134039134040134041134042134043134044134045134046134047134048134049134050134051134052134053134054134055134056134057134058134059134060134061134062134063134064134065134066134067134068134069134070134071134072134073134074134075134076134077134078134079134080134081134082134083134084134085134086134087134088134089134090134091134092134093134094134095134096134097134098134099134100134101134102134103134104134105134106134107134108134109134110134111134112134113134114134115134116134117134118134119134120134121134122134123134124134125134126134127134128134129134130134131134132134133134134134135134136134137134138134139134140134141134142134143134144134145134146134147134148134149134150134151134152134153134154134155134156134157134158134159134160134161134162134163134164134165134166134167134168134169134170134171134172134173134174134175134176134177134178134179134180134181134182134183134184134185134186134187134188134189134190134191134192134193134194134195134196134197134198134199134200134201134202134203134204134205134206134207134208134209134210134211134212134213134214134215134216134217134218134219134220134221134222134223134224134225134226134227134228134229134230134231134232134233134234134235134236134237134238134239134240134241134242134243134244134245134246134247134248134249134250134251134252134253134254134255134256134257134258134259134260134261134262134263134264134265134266134267134268134269134270134271134272134273134274134275134276134277134278134279134280134281134282134283134284134285134286134287134288134289134290134291134292134293134294134295134296134297134298134299134300134301134302134303134304134305134306134307134308134309134310134311134312134313134314134315134316134317134318134319134320134321134322134323134324134325134326134327134328134329134330134331134332134333134334134335134336134337134338134339134340134341134342134343134344134345134346134347134348134349134350134351134352134353134354134355134356134357134358134359134360134361134362134363134364134365134366134367134368134369134370134371134372134373134374134375134376134377134378134379134380134381134382134383134384134385134386134387134388134389134390134391134392134393134394134395134396134397134398134399134400134401134402134403134404134405134406134407134408134409134410134411134412134413134414134415134416134417134418134419134420134421134422134423134424134425134426134427134428134429134430134431134432134433134434134435134436134437134438134439134440134441134442134443134444134445134446134447134448134449134450134451134452134453134454134455134456134457134458134459134460134461134462134463134464134465134466134467134468134469134470134471134472134473134474134475134476134477134478134479134480134481134482134483134484134485134486134487134488134489134490134491134492134493134494134495134496134497134498134499134500134501134502134503134504134505134506134507134508134509134510134511134512134513134514134515134516134517134518134519134520134521134522134523134524134525134526134527134528134529134530134531134532134533134534134535134536134537134538134539134540134541134542134543134544134545134546134547134548134549134550134551134552134553134554134555134556134557134558134559134560134561134562134563134564134565134566134567134568134569134570134571134572134573134574134575134576134577134578134579134580134581134582134583134584134585134586134587134588134589134590134591134592134593134594134595134596134597134598134599134600134601134602134603134604134605134606134607134608134609134610134611134612134613134614134615134616134617134618134619134620134621134622134623134624134625134626134627134628134629134630134631134632134633134634134635134636134637134638134639134640134641134642134643134644134645134646134647134648134649134650134651134652134653134654134655134656134657134658134659134660134661134662134663134664134665134666134667134668134669134670134671134672134673134674134675134676134677134678134679134680134681134682134683134684134685134686134687134688134689134690134691134692134693134694134695134696134697134698134699134700134701134702134703134704134705134706134707134708134709134710134711134712134713134714134715134716134717134718134719134720134721134722134723134724134725134726134727134728134729134730134731134732134733134734134735134736134737134738134739134740134741134742134743134744134745134746134747134748134749134750134751134752134753134754134755134756134757134758134759134760134761134762134763134764134765134766134767134768134769134770134771134772134773134774134775134776134777134778134779134780134781134782134783134784134785134786134787134788134789134790134791134792134793134794134795134796134797134798134799134800134801134802134803134804134805134806134807134808134809134810134811134812134813134814134815134816134817134818134819134820134821134822134823134824134825134826134827134828134829134830134831134832134833134834134835134836134837134838134839134840134841134842134843134844134845134846134847134848134849134850134851134852134853134854134855134856134857134858134859134860134861134862134863134864134865134866134867134868134869134870134871134872134873134874134875134876134877134878134879134880134881134882134883134884134885134886134887134888134889134890134891134892134893134894134895134896134897134898134899134900134901134902134903134904134905134906134907134908134909134910134911134912134913134914134915134916134917134918134919134920134921134922134923134924134925134926134927134928134929134930134931134932134933134934134935134936134937134938134939134940134941134942134943134944134945134946134947134948134949134950134951134952134953134954134955134956134957134958134959134960134961134962134963134964134965134966134967134968134969134970134971134972134973134974134975134976134977134978134979134980134981134982134983134984134985134986134987134988134989134990134991134992134993134994134995134996134997134998134999135000135001135002135003135004135005135006135007135008135009135010135011135012135013135014135015135016135017135018135019135020135021135022135023135024135025135026135027135028135029135030135031135032135033135034135035135036135037135038135039135040135041135042135043135044135045135046135047135048135049135050135051135052135053135054135055135056135057135058135059135060135061135062135063135064135065135066135067135068135069135070135071135072135073135074135075135076135077135078135079135080135081135082135083135084135085135086135087135088135089135090135091135092135093135094135095135096135097135098135099135100135101135102135103135104135105135106135107135108135109135110135111135112135113135114135115135116135117135118135119135120135121135122135123135124135125135126135127135128135129135130135131135132135133135134135135135136135137135138135139135140135141135142135143135144135145135146135147135148135149135150135151135152135153135154135155135156135157135158135159135160135161135162135163135164135165135166135167135168135169135170135171135172135173135174135175135176135177135178135179135180135181135182135183135184135185135186135187135188135189135190135191135192135193135194135195135196135197135198135199135200135201135202135203135204135205135206135207135208135209135210135211135212135213135214135215135216135217135218135219135220135221135222135223135224135225135226135227135228135229135230135231135232135233135234135235135236135237135238135239135240135241135242135243135244135245135246135247135248135249135250135251135252135253135254135255135256135257135258135259135260135261135262135263135264135265135266135267135268135269135270135271135272135273135274135275135276135277135278135279135280135281135282135283135284135285135286135287135288135289135290135291135292135293135294135295135296135297135298135299135300135301135302135303135304135305135306135307135308135309135310135311135312135313135314135315135316135317135318135319135320135321135322135323135324135325135326135327135328135329135330135331135332135333135334135335135336135337135338135339135340135341135342135343135344135345135346135347135348135349135350135351135352135353135354135355135356135357135358135359135360135361135362135363135364135365135366135367135368135369135370135371135372135373135374135375135376135377135378135379135380135381135382135383135384135385135386135387135388135389135390135391135392135393135394135395135396135397135398135399135400135401135402135403135404135405135406135407135408135409135410135411135412135413135414135415135416135417135418135419135420135421135422135423135424135425135426135427135428135429135430135431135432135433135434135435135436135437135438135439135440135441135442135443135444135445135446135447135448135449135450135451135452135453135454135455135456135457135458135459135460135461135462135463135464135465135466135467135468135469135470135471135472135473135474135475135476135477135478135479135480135481135482135483135484135485135486135487135488135489135490135491135492135493135494135495135496135497135498135499135500135501135502135503135504135505135506135507135508135509135510135511135512135513135514135515135516135517135518135519135520135521135522135523135524135525135526135527135528135529135530135531135532135533135534135535135536135537135538135539135540135541135542135543135544135545135546135547135548135549135550135551135552135553135554135555135556135557135558135559135560135561135562135563135564135565135566135567135568135569135570135571135572135573135574135575135576135577135578135579135580135581135582135583135584135585135586135587135588135589135590135591135592135593135594135595135596135597135598135599135600135601135602135603135604135605135606135607135608135609135610135611135612135613135614135615135616135617135618135619135620135621135622135623135624135625135626135627135628135629135630135631135632135633135634135635135636135637135638135639135640135641135642135643135644135645135646135647135648135649135650135651135652135653135654135655135656135657135658135659135660135661135662135663135664135665135666135667135668135669135670135671135672135673135674135675135676135677135678135679135680135681135682135683135684135685135686135687135688135689135690135691135692135693135694135695135696135697135698135699135700135701135702135703135704135705135706135707135708135709135710135711135712135713135714135715135716135717135718135719135720135721135722135723135724135725135726135727135728135729135730135731135732135733135734135735135736135737135738135739135740135741135742135743135744135745135746135747135748135749135750135751135752135753135754135755135756135757135758135759135760135761135762135763135764135765135766135767135768135769135770135771135772135773135774135775135776135777135778135779135780135781135782135783135784135785135786135787135788135789135790135791135792135793135794135795135796135797135798135799135800135801135802135803135804135805135806135807135808135809135810135811135812135813135814135815135816135817135818135819135820135821135822135823135824135825135826135827135828135829135830135831135832135833135834135835135836135837135838135839135840135841135842135843135844135845135846135847135848135849135850135851135852135853135854135855135856135857135858135859135860135861135862135863135864135865135866135867135868135869135870135871135872135873135874135875135876135877135878135879135880135881135882135883135884135885135886135887135888135889135890135891135892135893135894135895135896135897135898135899135900135901135902135903135904135905135906135907135908135909135910135911135912135913135914135915135916135917135918135919135920135921135922135923135924135925135926135927135928135929135930135931135932135933135934135935135936135937135938135939135940135941135942135943135944135945135946135947135948135949135950135951135952135953135954135955135956135957135958135959135960135961135962135963135964135965135966135967135968135969135970135971135972135973135974135975135976135977135978135979135980135981135982135983135984135985135986135987135988135989135990135991135992135993135994135995135996135997135998135999136000136001136002136003136004136005136006136007136008136009136010136011136012136013136014136015136016136017136018136019136020136021136022136023136024136025136026136027136028136029136030136031136032136033136034136035136036136037136038136039136040136041136042136043136044136045136046136047136048136049136050136051136052136053136054136055136056136057136058136059136060136061136062136063136064136065136066136067136068136069136070136071136072136073136074136075136076136077136078136079136080136081136082136083136084136085136086136087136088136089136090136091136092136093136094136095136096136097136098136099136100136101136102136103136104136105136106136107136108136109136110136111136112136113136114136115136116136117136118136119136120136121136122136123136124136125136126136127136128136129136130136131136132136133136134136135136136136137136138136139136140136141136142136143136144136145136146136147136148136149136150136151136152136153136154136155136156136157136158136159136160136161136162136163136164136165136166136167136168136169136170136171136172136173136174136175136176136177136178136179136180136181136182136183136184136185136186136187136188136189136190136191136192136193136194136195136196136197136198136199136200136201136202136203136204136205136206136207136208136209136210136211136212136213136214136215136216136217136218136219136220136221136222136223136224136225136226136227136228136229136230136231136232136233136234136235136236136237136238136239136240136241136242136243136244136245136246136247136248136249136250136251136252136253136254136255136256136257136258136259136260136261136262136263136264136265136266136267136268136269136270136271136272136273136274136275136276136277136278136279136280136281136282136283136284136285136286136287136288136289136290136291136292136293136294136295136296136297136298136299136300136301136302136303136304136305136306136307136308136309136310136311136312136313136314136315136316136317136318136319136320136321136322136323136324136325136326136327136328136329136330136331136332136333136334136335136336136337136338136339136340136341136342136343136344136345136346136347136348136349136350136351136352136353136354136355136356136357136358136359136360136361136362136363136364136365136366136367136368136369136370136371136372136373136374136375136376136377136378136379136380136381136382136383136384136385136386136387136388136389136390136391136392136393136394136395136396136397136398136399136400136401136402136403136404136405136406136407136408136409136410136411136412136413136414136415136416136417136418136419136420136421136422136423136424136425136426136427136428136429136430136431136432136433136434136435136436136437136438136439136440136441136442136443136444136445136446136447136448136449136450136451136452136453136454136455136456136457136458136459136460136461136462136463136464136465136466136467136468136469136470136471136472136473136474136475136476136477136478136479136480136481136482136483136484136485136486136487136488136489136490136491136492136493136494136495136496136497136498136499136500136501136502136503136504136505136506136507136508136509136510136511136512136513136514136515136516136517136518136519136520136521136522136523136524136525136526136527136528136529136530136531136532136533136534136535136536136537136538136539136540136541136542136543136544136545136546136547136548136549136550136551136552136553136554136555136556136557136558136559136560136561136562136563136564136565136566136567136568136569136570136571136572136573136574136575136576136577136578136579136580136581136582136583136584136585136586136587136588136589136590136591136592136593136594136595136596136597136598136599136600136601136602136603136604136605136606136607136608136609136610136611136612136613136614136615136616136617136618136619136620136621136622136623136624136625136626136627136628136629136630136631136632136633136634136635136636136637136638136639136640136641136642136643136644136645136646136647136648136649136650136651136652136653136654136655136656136657136658136659136660136661136662136663136664136665136666136667136668136669136670136671136672136673136674136675136676136677136678136679136680136681136682136683136684136685136686136687136688136689136690136691136692136693136694136695136696136697136698136699136700136701136702136703136704136705136706136707136708136709136710136711136712136713136714136715136716136717136718136719136720136721136722136723136724136725136726136727136728136729136730136731136732136733136734136735136736136737136738136739136740136741136742136743136744136745136746136747136748136749136750136751136752136753136754136755136756136757136758136759136760136761136762136763136764136765136766136767136768136769136770136771136772136773136774136775136776136777136778136779136780136781136782136783136784136785136786136787136788136789136790136791136792136793136794136795136796136797136798136799136800136801136802136803136804136805136806136807136808136809136810136811136812136813136814136815136816136817136818136819136820136821136822136823136824136825136826136827136828136829136830136831136832136833136834136835136836136837136838136839136840136841136842136843136844136845136846136847136848136849136850136851136852136853136854136855136856136857136858136859136860136861136862136863136864136865136866136867136868136869136870136871136872136873136874136875136876136877136878136879136880136881136882136883136884136885136886136887136888136889136890136891136892136893136894136895136896136897136898136899136900136901136902136903136904136905136906136907136908136909136910136911136912136913136914136915136916136917136918136919136920136921136922136923136924136925136926136927136928136929136930136931136932136933136934136935136936136937136938136939136940136941136942136943136944136945136946136947136948136949136950136951136952136953136954136955136956136957136958136959136960136961136962136963136964136965136966136967136968136969136970136971136972136973136974136975136976136977136978136979136980136981136982136983136984136985136986136987136988136989136990136991136992136993136994136995136996136997136998136999137000137001137002137003137004137005137006137007137008137009137010137011137012137013137014137015137016137017137018137019137020137021137022137023137024137025137026137027137028137029137030137031137032137033137034137035137036137037137038137039137040137041137042137043137044137045137046137047137048137049137050137051137052137053137054137055137056137057137058137059137060137061137062137063137064137065137066137067137068137069137070137071137072137073137074137075137076137077137078137079137080137081137082137083137084137085137086137087137088137089137090137091137092137093137094137095137096137097137098137099137100137101137102137103137104137105137106137107137108137109137110137111137112137113137114137115137116137117137118137119137120137121137122137123137124137125137126137127137128137129137130137131137132137133137134137135137136137137137138137139137140137141137142137143137144137145137146137147137148137149137150137151137152137153137154137155137156137157137158137159137160137161137162137163137164137165137166137167137168137169137170137171137172137173137174137175137176137177137178137179137180137181137182137183137184137185137186137187137188137189137190137191137192137193137194137195137196137197137198137199137200137201137202137203137204137205137206137207137208137209137210137211137212137213137214137215137216137217137218137219137220137221137222137223137224137225137226137227137228137229137230137231137232137233137234137235137236137237137238137239137240137241137242137243137244137245137246137247137248137249137250137251137252137253137254137255137256137257137258137259137260137261137262137263137264137265137266137267137268137269137270137271137272137273137274137275137276137277137278137279137280137281137282137283137284137285137286137287137288137289137290137291137292137293137294137295137296137297137298137299137300137301137302137303137304137305137306137307137308137309137310137311137312137313137314137315137316137317137318137319137320137321137322137323137324137325137326137327137328137329137330137331137332137333137334137335137336137337137338137339137340137341137342137343137344137345137346137347137348137349137350137351137352137353137354137355137356137357137358137359137360137361137362137363137364137365137366137367137368137369137370137371137372137373137374137375137376137377137378137379137380137381137382137383137384137385137386137387137388137389137390137391137392137393137394137395137396137397137398137399137400137401137402137403137404137405137406137407137408137409137410137411137412137413137414137415137416137417137418137419137420137421137422137423137424137425137426137427137428137429137430137431137432137433137434137435137436137437137438137439137440137441137442137443137444137445137446137447137448137449137450137451137452137453137454137455137456137457137458137459137460137461137462137463137464137465137466137467137468137469137470137471137472137473137474137475137476137477137478137479137480137481137482137483137484137485137486137487137488137489137490137491137492137493137494137495137496137497137498137499137500137501137502137503137504137505137506137507137508137509137510137511137512137513137514137515137516137517137518137519137520137521137522137523137524137525137526137527137528137529137530137531137532137533137534137535137536137537137538137539137540137541137542137543137544137545137546137547137548137549137550137551137552137553137554137555137556137557137558137559137560137561137562137563137564137565137566137567137568137569137570137571137572137573137574137575137576137577137578137579137580137581137582137583137584137585137586137587137588137589137590137591137592137593137594137595137596137597137598137599137600137601137602137603137604137605137606137607137608137609137610137611137612137613137614137615137616137617137618137619137620137621137622137623137624137625137626137627137628137629137630137631137632137633137634137635137636137637137638137639137640137641137642137643137644137645137646137647137648137649137650137651137652137653137654137655137656137657137658137659137660137661137662137663137664137665137666137667137668137669137670137671137672137673137674137675137676137677137678137679137680137681137682137683137684137685137686137687137688137689137690137691137692137693137694137695137696137697137698137699137700137701137702137703137704137705137706137707137708137709137710137711137712137713137714137715137716137717137718137719137720137721137722137723137724137725137726137727137728137729137730137731137732137733137734137735137736137737137738137739137740137741137742137743137744137745137746137747137748137749137750137751137752137753137754137755137756137757137758137759137760137761137762137763137764137765137766137767137768137769137770137771137772137773137774137775137776137777137778137779137780137781137782137783137784137785137786137787137788137789137790137791137792137793137794137795137796137797137798137799137800137801137802137803137804137805137806137807137808137809137810137811137812137813137814137815137816137817137818137819137820137821137822137823137824137825137826137827137828137829137830137831137832137833137834137835137836137837137838137839137840137841137842137843137844137845137846137847137848137849137850137851137852137853137854137855137856137857137858137859137860137861137862137863137864137865137866137867137868137869137870137871137872137873137874137875137876137877137878137879137880137881137882137883137884137885137886137887137888137889137890137891137892137893137894137895137896137897137898137899137900137901137902137903137904137905137906137907137908137909137910137911137912137913137914137915137916137917137918137919137920137921137922137923137924137925137926137927137928137929137930137931137932137933137934137935137936137937137938137939137940137941137942137943137944137945137946137947137948137949137950137951137952137953137954137955137956137957137958137959137960137961137962137963137964137965137966137967137968137969137970137971137972137973137974137975137976137977137978137979137980137981137982137983137984137985137986137987137988137989137990137991137992137993137994137995137996137997137998137999138000138001138002138003138004138005138006138007138008138009138010138011138012138013138014138015138016138017138018138019138020138021138022138023138024138025138026138027138028138029138030138031138032138033138034138035138036138037138038138039138040138041138042138043138044138045138046138047138048138049138050138051138052138053138054138055138056138057138058138059138060138061138062138063138064138065138066138067138068138069138070138071138072138073138074138075138076138077138078138079138080138081138082138083138084138085138086138087138088138089138090138091138092138093138094138095138096138097138098138099138100138101138102138103138104138105138106138107138108138109138110138111138112138113138114138115138116138117138118138119138120138121138122138123138124138125138126138127138128138129138130138131138132138133138134138135138136138137138138138139138140138141138142138143138144138145138146138147138148138149138150138151138152138153138154138155138156138157138158138159138160138161138162138163138164138165138166138167138168138169138170138171138172138173138174138175138176138177138178138179138180138181138182138183138184138185138186138187138188138189138190138191138192138193138194138195138196138197138198138199138200138201138202138203138204138205138206138207138208138209138210138211138212138213138214138215138216138217138218138219138220138221138222138223138224138225138226138227138228138229138230138231138232138233138234138235138236138237138238138239138240138241138242138243138244138245138246138247138248138249138250138251138252138253138254138255138256138257138258138259138260138261138262138263138264138265138266138267138268138269138270138271138272138273138274138275138276138277138278138279138280138281138282138283138284138285138286138287138288138289138290138291138292138293138294138295138296138297138298138299138300138301138302138303138304138305138306138307138308138309138310138311138312138313138314138315138316138317138318138319138320138321138322138323138324138325138326138327138328138329138330138331138332138333138334138335138336138337138338138339138340138341138342138343138344138345138346138347138348138349138350138351138352138353138354138355138356138357138358138359138360138361138362138363138364138365138366138367138368138369138370138371138372138373138374138375138376138377138378138379138380138381138382138383138384138385138386138387138388138389138390138391138392138393138394138395138396138397138398138399138400138401138402138403138404138405138406138407138408138409138410138411138412138413138414138415138416138417138418138419138420138421138422138423138424138425138426138427138428138429138430138431138432138433138434138435138436138437138438138439138440138441138442138443138444138445138446138447138448138449138450138451138452138453138454138455138456138457138458138459138460138461138462138463138464138465138466138467138468138469138470138471138472138473138474138475138476138477138478138479138480138481138482138483138484138485138486138487138488138489138490138491138492138493138494138495138496138497138498138499138500138501138502138503138504138505138506138507138508138509138510138511138512138513138514138515138516138517138518138519138520138521138522138523138524138525138526138527138528138529138530138531138532138533138534138535138536138537138538138539138540138541138542138543138544138545138546138547138548138549138550138551138552138553138554138555138556138557138558138559138560138561138562138563138564138565138566138567138568138569138570138571138572138573138574138575138576138577138578138579138580138581138582138583138584138585138586138587138588138589138590138591138592138593138594138595138596138597138598138599138600138601138602138603138604138605138606138607138608138609138610138611138612138613138614138615138616138617138618138619138620138621138622138623138624138625138626138627138628138629138630138631138632138633138634138635138636138637138638138639138640138641138642138643138644138645138646138647138648138649138650138651138652138653138654138655138656138657138658138659138660138661138662138663138664138665138666138667138668138669138670138671138672138673138674138675138676138677138678138679138680138681138682138683138684138685138686138687138688138689138690138691138692138693138694138695138696138697138698138699138700138701138702138703138704138705138706138707138708138709138710138711138712138713138714138715138716138717138718138719138720138721138722138723138724138725138726138727138728138729138730138731138732138733138734138735138736138737138738138739138740138741138742138743138744138745138746138747138748138749138750138751138752138753138754138755138756138757138758138759138760138761138762138763138764138765138766138767138768138769138770138771138772138773138774138775138776138777138778138779138780138781138782138783138784138785138786138787138788138789138790138791138792138793138794138795138796138797138798138799138800138801138802138803138804138805138806138807138808138809138810138811138812138813138814138815138816138817138818138819138820138821138822138823138824138825138826138827138828138829138830138831138832138833138834138835138836138837138838138839138840138841138842138843138844138845138846138847138848138849138850138851138852138853138854138855138856138857138858138859138860138861138862138863138864138865138866138867138868138869138870138871138872138873138874138875138876138877138878138879138880138881138882138883138884138885138886138887138888138889138890138891138892138893138894138895138896138897138898138899138900138901138902138903138904138905138906138907138908138909138910138911138912138913138914138915138916138917138918138919138920138921138922138923138924138925138926138927138928138929138930138931138932138933138934138935138936138937138938138939138940138941138942138943138944138945138946138947138948138949138950138951138952138953138954138955138956138957138958138959138960138961138962138963138964138965138966138967138968138969138970138971138972138973138974138975138976138977138978138979138980138981138982138983138984138985138986138987138988138989138990138991138992138993138994138995138996138997138998138999139000139001139002139003139004139005139006139007139008139009139010139011139012139013139014139015139016139017139018139019139020139021139022139023139024139025139026139027139028139029139030139031139032139033139034139035139036139037139038139039139040139041139042139043139044139045139046139047139048139049139050139051139052139053139054139055139056139057139058139059139060139061139062139063139064139065139066139067139068139069139070139071139072139073139074139075139076139077139078139079139080139081139082139083139084139085139086139087139088139089139090139091139092139093139094139095139096139097139098139099139100139101139102139103139104139105139106139107139108139109139110139111139112139113139114139115139116139117139118139119139120139121139122139123139124139125139126139127139128139129139130139131139132139133139134139135139136139137139138139139139140139141139142139143139144139145139146139147139148139149139150139151139152139153139154139155139156139157139158139159139160139161139162139163139164139165139166139167139168139169139170139171139172139173139174139175139176139177139178139179139180139181139182139183139184139185139186139187139188139189139190139191139192139193139194139195139196139197139198139199139200139201139202139203139204139205139206139207139208139209139210139211139212139213139214139215139216139217139218139219139220139221139222139223139224139225139226139227139228139229139230139231139232139233139234139235139236139237139238139239139240139241139242139243139244139245139246139247139248139249139250139251139252139253139254139255139256139257139258139259139260139261139262139263139264139265139266139267139268139269139270139271139272139273139274139275139276139277139278139279139280139281139282139283139284139285139286139287139288139289139290139291139292139293139294139295139296139297139298139299139300139301139302139303139304139305139306139307139308139309139310139311139312139313139314139315139316139317139318139319139320139321139322139323139324139325139326139327139328139329139330139331139332139333139334139335139336139337139338139339139340139341139342139343139344139345139346139347139348139349139350139351139352139353139354139355139356139357139358139359139360139361139362139363139364139365139366139367139368139369139370139371139372139373139374139375139376139377139378139379139380139381139382139383139384139385139386139387139388139389139390139391139392139393139394139395139396139397139398139399139400139401139402139403139404139405139406139407139408139409139410139411139412139413139414139415139416139417139418139419139420139421139422139423139424139425139426139427139428139429139430139431139432139433139434139435139436139437139438139439139440139441139442139443139444139445139446139447139448139449139450139451139452139453139454139455139456139457139458139459139460139461139462139463139464139465139466139467139468139469139470139471139472139473139474139475139476139477139478139479139480139481139482139483139484139485139486139487139488139489139490139491139492139493139494139495139496139497139498139499139500139501139502139503139504139505139506139507139508139509139510139511139512139513139514139515139516139517139518139519139520139521139522139523139524139525139526139527139528139529139530139531139532139533139534139535139536139537139538139539139540139541139542139543139544139545139546139547139548139549139550139551139552139553139554139555139556139557139558139559139560139561139562139563139564139565139566139567139568139569139570139571139572139573139574139575139576139577139578139579139580139581139582139583139584139585139586139587139588139589139590139591139592139593139594139595139596139597139598139599139600139601139602139603139604139605139606139607139608139609139610139611139612139613139614139615139616139617139618139619139620139621139622139623139624139625139626139627139628139629139630139631139632139633139634139635139636139637139638139639139640139641139642139643139644139645139646139647139648139649139650139651139652139653139654139655139656139657139658139659139660139661139662139663139664139665139666139667139668139669139670139671139672139673139674139675139676139677139678139679139680139681139682139683139684139685139686139687139688139689139690139691139692139693139694139695139696139697139698139699139700139701139702139703139704139705139706139707139708139709139710139711139712139713139714139715139716139717139718139719139720139721139722139723139724139725139726139727139728139729139730139731139732139733139734139735139736139737139738139739139740139741139742139743139744139745139746139747139748139749139750139751139752139753139754139755139756139757139758139759139760139761139762139763139764139765139766139767139768139769139770139771139772139773139774139775139776139777139778139779139780139781139782139783139784139785139786139787139788139789139790139791139792139793139794139795139796139797139798139799139800139801139802139803139804139805139806139807139808139809139810139811139812139813139814139815139816139817139818139819139820139821139822139823139824139825139826139827139828139829139830139831139832139833139834139835139836139837139838139839139840139841139842139843139844139845139846139847139848139849139850139851139852139853139854139855139856139857139858139859139860139861139862139863139864139865139866139867139868139869139870139871139872139873139874139875139876139877139878139879139880139881139882139883139884139885139886139887139888139889139890139891139892139893139894139895139896139897139898139899139900139901139902139903139904139905139906139907139908139909139910139911139912139913139914139915139916139917139918139919139920139921139922139923139924139925139926139927139928139929139930139931139932139933139934139935139936139937139938139939139940139941139942139943139944139945139946139947139948139949139950139951139952139953139954139955139956139957139958139959139960139961139962139963139964139965139966139967139968139969139970139971139972139973139974139975139976139977139978139979139980139981139982139983139984139985139986139987139988139989139990139991139992139993139994139995139996139997139998139999140000140001140002140003140004140005140006140007140008140009140010140011140012140013140014140015140016140017140018140019140020140021140022140023140024140025140026140027140028140029140030140031140032140033140034140035140036140037140038140039140040140041140042140043140044140045140046140047140048140049140050140051140052140053140054140055140056140057140058140059140060140061140062140063140064140065140066140067140068140069140070140071140072140073140074140075140076140077140078140079140080140081140082140083140084140085140086140087140088140089140090140091140092140093140094140095140096140097140098140099140100140101140102140103140104140105140106140107140108140109140110140111140112140113140114140115140116140117140118140119140120140121140122140123140124140125140126140127140128140129140130140131140132140133140134140135140136140137140138140139140140140141140142140143140144140145140146140147140148140149140150140151140152140153140154140155140156140157140158140159140160140161140162140163140164140165140166140167140168140169140170140171140172140173140174140175140176140177140178140179140180140181140182140183140184140185140186140187140188140189140190140191140192140193140194140195140196140197140198140199140200140201140202140203140204140205140206140207140208140209140210140211140212140213140214140215140216140217140218140219140220140221140222140223140224140225140226140227140228140229140230140231140232140233140234140235140236140237140238140239140240140241140242140243140244140245140246140247140248140249140250140251140252140253140254140255140256140257140258140259140260140261140262140263140264140265140266140267140268140269140270140271140272140273140274140275140276140277140278140279140280140281140282140283140284140285140286140287140288140289140290140291140292140293140294140295140296140297140298140299140300140301140302140303140304140305140306140307140308140309140310140311140312140313140314140315140316140317140318140319140320140321140322140323140324140325140326140327140328140329140330140331140332140333140334140335140336140337140338140339140340140341140342140343140344140345140346140347140348140349140350140351140352140353140354140355140356140357140358140359140360140361140362140363140364140365140366140367140368140369140370140371140372140373140374140375140376140377140378140379140380140381140382140383140384140385140386140387140388140389140390140391140392140393140394140395140396140397140398140399140400140401140402140403140404140405140406140407140408140409140410140411140412140413140414140415140416140417140418140419140420140421140422140423140424140425140426140427140428140429140430140431140432140433140434140435140436140437140438140439140440140441140442140443140444140445140446140447140448140449140450140451140452140453140454140455140456140457140458140459140460140461140462140463140464140465140466140467140468140469140470140471140472140473140474140475140476140477140478140479140480140481140482140483140484140485140486140487140488140489140490140491140492140493140494140495140496140497140498140499140500140501140502140503140504140505140506140507140508140509140510140511140512140513140514140515140516140517140518140519140520140521140522140523140524140525140526140527140528140529140530140531140532140533140534140535140536140537140538140539140540140541140542140543140544140545140546140547140548140549140550140551140552140553140554140555140556140557140558140559140560140561140562140563140564140565140566140567140568140569140570140571140572140573140574140575140576140577140578140579140580140581140582140583140584140585140586140587140588140589140590140591140592140593140594140595140596140597140598140599140600140601140602140603140604140605140606140607140608140609140610140611140612140613140614140615140616140617140618140619140620140621140622140623140624140625140626140627140628140629140630140631140632140633140634140635140636140637140638140639140640140641140642140643140644140645140646140647140648140649140650140651140652140653140654140655140656140657140658140659140660140661140662140663140664140665140666140667140668140669140670140671140672140673140674140675140676140677140678140679140680140681140682140683140684140685140686140687140688140689140690140691140692140693140694140695140696140697140698140699140700140701140702140703140704140705140706140707140708140709140710140711140712140713140714140715140716140717140718140719140720140721140722140723140724140725140726140727140728140729140730140731140732140733140734140735140736140737140738140739140740140741140742140743140744140745140746140747140748140749140750140751140752140753140754140755140756140757140758140759140760140761140762140763140764140765140766140767140768140769140770140771140772140773140774140775140776140777140778140779140780140781140782140783140784140785140786140787140788140789140790140791140792140793140794140795140796140797140798140799140800140801140802140803140804140805140806140807140808140809140810140811140812140813140814140815140816140817140818140819140820140821140822140823140824140825140826140827140828140829140830140831140832140833140834140835140836140837140838140839140840140841140842140843140844140845140846140847140848140849140850140851140852140853140854140855140856140857140858140859140860140861140862140863140864140865140866140867140868140869140870140871140872140873140874140875140876140877140878140879140880140881140882140883140884140885140886140887140888140889140890140891140892140893140894140895140896140897140898140899140900140901140902140903140904140905140906140907140908140909140910140911140912140913140914140915140916140917140918140919140920140921140922140923140924140925140926140927140928140929140930140931140932140933140934140935140936140937140938140939140940140941140942140943140944140945140946140947140948140949140950140951140952140953140954140955140956140957140958140959140960140961140962140963140964140965140966140967140968140969140970140971140972140973140974140975140976140977140978140979140980140981140982140983140984140985140986140987140988140989140990140991140992140993140994140995140996140997140998140999141000141001141002141003141004141005141006141007141008141009141010141011141012141013141014141015141016141017141018141019141020141021141022141023141024141025141026141027141028141029141030141031141032141033141034141035141036141037141038141039141040141041141042141043141044141045141046141047141048141049141050141051141052141053141054141055141056141057141058141059141060141061141062141063141064141065141066141067141068141069141070141071141072141073141074141075141076141077141078141079141080141081141082141083141084141085141086141087141088141089141090141091141092141093141094141095141096141097141098141099141100141101141102141103141104141105141106141107141108141109141110141111141112141113141114141115141116141117141118141119141120141121141122141123141124141125141126141127141128141129141130141131141132141133141134141135141136141137141138141139141140141141141142141143141144141145141146141147141148141149141150141151141152141153141154141155141156141157141158141159141160141161141162141163141164141165141166141167141168141169141170141171141172141173141174141175141176141177141178141179141180141181141182141183141184141185141186141187141188141189141190141191141192141193141194141195141196141197141198141199141200141201141202141203141204141205141206141207141208141209141210141211141212141213141214141215141216141217141218141219141220141221141222141223141224141225141226141227141228141229141230141231141232141233141234141235141236141237141238141239141240141241141242141243141244141245141246141247141248141249141250141251141252141253141254141255141256141257141258141259141260141261141262141263141264141265141266141267141268141269141270141271141272141273141274141275141276141277141278141279141280141281141282141283141284141285141286141287141288141289141290141291141292141293141294141295141296141297141298141299141300141301141302141303141304141305141306141307141308141309141310141311141312141313141314141315141316141317141318141319141320141321141322141323141324141325141326141327141328141329141330141331141332141333141334141335141336141337141338141339141340141341141342141343141344141345141346141347141348141349141350141351141352141353141354141355141356141357141358141359141360141361141362141363141364141365141366141367141368141369141370141371141372141373141374141375141376141377141378141379141380141381141382141383141384141385141386141387141388141389141390141391141392141393141394141395141396141397141398141399141400141401141402141403141404141405141406141407141408141409141410141411141412141413141414141415141416141417141418141419141420141421141422141423141424141425141426141427141428141429141430141431141432141433141434141435141436141437141438141439141440141441141442141443141444141445141446141447141448141449141450141451141452141453141454141455141456141457141458141459141460141461141462141463141464141465141466141467141468141469141470141471141472141473141474141475141476141477141478141479141480141481141482141483141484141485141486141487141488141489141490141491141492141493141494141495141496141497141498141499141500141501141502141503141504141505141506141507141508141509141510141511141512141513141514141515141516141517141518141519141520141521141522141523141524141525141526141527141528141529141530141531141532141533141534141535141536141537141538141539141540141541141542141543141544141545141546141547141548141549141550141551141552141553141554141555141556141557141558141559141560141561141562141563141564141565141566141567141568141569141570141571141572141573141574141575141576141577141578141579141580141581141582141583141584141585141586141587141588141589141590141591141592141593141594141595141596141597141598141599141600141601141602141603141604141605141606141607141608141609141610141611141612141613141614141615141616141617141618141619141620141621141622141623141624141625141626141627141628141629141630141631141632141633141634141635141636141637141638141639141640141641141642141643141644141645141646141647141648141649141650141651141652141653141654141655141656141657141658141659141660141661141662141663141664141665141666141667141668141669141670141671141672141673141674141675141676141677141678141679141680141681141682141683141684141685141686141687141688141689141690141691141692141693141694141695141696141697141698141699141700141701141702141703141704141705141706141707141708141709141710141711141712141713141714141715141716141717141718141719141720141721141722141723141724141725141726141727141728141729141730141731141732141733141734141735141736141737141738141739141740141741141742141743141744141745141746141747141748141749141750141751141752141753141754141755141756141757141758141759141760141761141762141763141764141765141766141767141768141769141770141771141772141773141774141775141776141777141778141779141780141781141782141783141784141785141786141787141788141789141790141791141792141793141794141795141796141797141798141799141800141801141802141803141804141805141806141807141808141809141810141811141812141813141814141815141816141817141818141819141820141821141822141823141824141825141826141827141828141829141830141831141832141833141834141835141836141837141838141839141840141841141842141843141844141845141846141847141848141849141850141851141852141853141854141855141856141857141858141859141860141861141862141863141864141865141866141867141868141869141870141871141872141873141874141875141876141877141878141879141880141881141882141883141884141885141886141887141888141889141890141891141892141893141894141895141896141897141898141899141900141901141902141903141904141905141906141907141908141909141910141911141912141913141914141915141916141917141918141919141920141921141922141923141924141925141926141927141928141929141930141931141932141933141934141935141936141937141938141939141940141941141942141943141944141945141946141947141948141949141950141951141952141953141954141955141956141957141958141959141960141961141962141963141964141965141966141967141968141969141970141971141972141973141974141975141976141977141978141979141980141981141982141983141984141985141986141987141988141989141990141991141992141993141994141995141996141997141998141999142000142001142002142003142004142005142006142007142008142009142010142011142012142013142014142015142016142017142018142019142020142021142022142023142024142025142026142027142028142029142030142031142032142033142034142035142036142037142038142039142040142041142042142043142044142045142046142047142048142049142050142051142052142053142054142055142056142057142058142059142060142061142062142063142064142065142066142067142068142069142070142071142072142073142074142075142076142077142078142079142080142081142082142083142084142085142086142087142088142089142090142091142092142093142094142095142096142097142098142099142100142101142102142103142104142105142106142107142108142109142110142111142112142113142114142115142116142117142118142119142120142121142122142123142124142125142126142127142128142129142130142131142132142133142134142135142136142137142138142139142140142141142142142143142144142145142146142147142148142149142150142151142152142153142154142155142156142157142158142159142160142161142162142163142164142165142166142167142168142169142170142171142172142173142174142175142176142177142178142179142180142181142182142183142184142185142186142187142188142189142190142191142192142193142194142195142196142197142198142199142200142201142202142203142204142205142206142207142208142209142210142211142212142213142214142215142216142217142218142219142220142221142222142223142224142225142226142227142228142229142230142231142232142233142234142235142236142237142238142239142240142241142242142243142244142245142246142247142248142249142250142251142252142253142254142255142256142257142258142259142260142261142262142263142264142265142266142267142268142269142270142271142272142273142274142275142276142277142278142279142280142281142282142283142284142285142286142287142288142289142290142291142292142293142294142295142296142297142298142299142300142301142302142303142304142305142306142307142308142309142310142311142312142313142314142315142316142317142318142319142320142321142322142323142324142325142326142327142328142329142330142331142332142333142334142335142336142337142338142339142340142341142342142343142344142345142346142347142348142349142350142351142352142353142354142355142356142357142358142359142360142361142362142363142364142365142366142367142368142369142370142371142372142373142374142375142376142377142378142379142380142381142382142383142384142385142386142387142388142389142390142391142392142393142394142395142396142397142398142399142400142401142402142403142404142405142406142407142408142409142410142411142412142413142414142415142416142417142418142419142420142421142422142423142424142425142426142427142428142429142430142431142432142433142434142435142436142437142438142439142440142441142442142443142444142445142446142447142448142449142450142451142452142453142454142455142456142457142458142459142460142461142462142463142464142465142466142467142468142469142470142471142472142473142474142475142476142477142478142479142480142481142482142483142484142485142486142487142488142489142490142491142492142493142494142495142496142497142498142499142500142501142502142503142504142505142506142507142508142509142510142511142512142513142514142515142516142517142518142519142520142521142522142523142524142525142526142527142528142529142530142531142532142533142534142535142536142537142538142539142540142541142542142543142544142545142546142547142548142549142550142551142552142553142554142555142556142557142558142559142560142561142562142563142564142565142566142567142568142569142570142571142572142573142574142575142576142577142578142579142580142581142582142583142584142585142586142587142588142589142590142591142592142593142594142595142596142597142598142599142600142601142602142603142604142605142606142607142608142609142610142611142612142613142614142615142616142617142618142619142620142621142622142623142624142625142626142627142628142629142630142631142632142633142634142635142636142637142638142639142640142641142642142643142644142645142646142647142648142649142650142651142652142653142654142655142656142657142658142659142660142661142662142663142664142665142666142667142668142669142670142671142672142673142674142675142676142677142678142679142680142681142682142683142684142685142686142687142688142689142690142691142692142693142694142695142696142697142698142699142700142701142702142703142704142705142706142707142708142709142710142711142712142713142714142715142716142717142718142719142720142721142722142723142724142725142726142727142728142729142730142731142732142733142734142735142736142737142738142739142740142741142742142743142744142745142746142747142748142749142750142751142752142753142754142755142756142757142758142759142760142761142762142763142764142765142766142767142768142769142770142771142772142773142774142775142776142777142778142779142780142781142782142783142784142785142786142787142788142789142790142791142792142793142794142795142796142797142798142799142800142801142802142803142804142805142806142807142808142809142810142811142812142813142814142815142816142817142818142819142820142821142822142823142824142825142826142827142828142829142830142831142832142833142834142835142836142837142838142839142840142841142842142843142844142845142846142847142848142849142850142851142852142853142854142855142856142857142858142859142860142861142862142863142864142865142866142867142868142869142870142871142872142873142874142875142876142877142878142879142880142881142882142883142884142885142886142887142888142889142890142891142892142893142894142895142896142897142898142899142900142901142902142903142904142905142906142907142908142909142910142911142912142913142914142915142916142917142918142919142920142921142922142923142924142925142926142927142928142929142930142931142932142933142934142935142936142937142938142939142940142941142942142943142944142945142946142947142948142949142950142951142952142953142954142955142956142957142958142959142960142961142962142963142964142965142966142967142968142969142970142971142972142973142974142975142976142977142978142979142980142981142982142983142984142985142986142987142988142989142990142991142992142993142994142995142996142997142998142999143000143001143002143003143004143005143006143007143008143009143010143011143012143013143014143015143016143017143018143019143020143021143022143023143024143025143026143027143028143029143030143031143032143033143034143035143036143037143038143039143040143041143042143043143044143045143046143047143048143049143050143051143052143053143054143055143056143057143058143059143060143061143062143063143064143065143066143067143068143069143070143071143072143073143074143075143076143077143078143079143080143081143082143083143084143085143086143087143088143089143090143091143092143093143094143095143096143097143098143099143100143101143102143103143104143105143106143107143108143109143110143111143112143113143114143115143116143117143118143119143120143121143122143123143124143125143126143127143128143129143130143131143132143133143134143135143136143137143138143139143140143141143142143143143144143145143146143147143148143149143150143151143152143153143154143155143156143157143158143159143160143161143162143163143164143165143166143167143168143169143170143171143172143173143174143175143176143177143178143179143180143181143182143183143184143185143186143187143188143189143190143191143192143193143194143195143196143197143198143199143200143201143202143203143204143205143206143207143208143209143210143211143212143213143214143215143216143217143218143219143220143221143222143223143224143225143226143227143228143229143230143231143232143233143234143235143236143237143238143239143240143241143242143243143244143245143246143247143248143249143250143251143252143253143254143255143256143257143258143259143260143261143262143263143264143265143266143267143268143269143270143271143272143273143274143275143276143277143278143279143280143281143282143283143284143285143286143287143288143289143290143291143292143293143294143295143296143297143298143299143300143301143302143303143304143305143306143307143308143309143310143311143312143313143314143315143316143317143318143319143320143321143322143323143324143325143326143327143328143329143330143331143332143333143334143335143336143337143338143339143340143341143342143343143344143345143346143347143348143349143350143351143352143353143354143355143356143357143358143359143360143361143362143363143364143365143366143367143368143369143370143371143372143373143374143375143376143377143378143379143380143381143382143383143384143385143386143387143388143389143390143391143392143393143394143395143396143397143398143399143400143401143402143403143404143405143406143407143408143409143410143411143412143413143414143415143416143417143418143419143420143421143422143423143424143425143426143427143428143429143430143431143432143433143434143435143436143437143438143439143440143441143442143443143444143445143446143447143448143449143450143451143452143453143454143455143456143457143458143459143460143461143462143463143464143465143466143467143468143469143470143471143472143473143474143475143476143477143478143479143480143481143482143483143484143485143486143487143488143489143490143491143492143493143494143495143496143497143498143499143500143501143502143503143504143505143506143507143508143509143510143511143512143513143514143515143516143517143518143519143520143521143522143523143524143525143526143527143528143529143530143531143532143533143534143535143536143537143538143539143540143541143542143543143544143545143546143547143548143549143550143551143552143553143554143555143556143557143558143559143560143561143562143563143564143565143566143567143568143569143570143571143572143573143574143575143576143577143578143579143580143581143582143583143584143585143586143587143588143589143590143591143592143593143594143595143596143597143598143599143600143601143602143603143604143605143606143607143608143609143610143611143612143613143614143615143616143617143618143619143620143621143622143623143624143625143626143627143628143629143630143631143632143633143634143635143636143637143638143639143640143641143642143643143644143645143646143647143648143649143650143651143652143653143654143655143656143657143658143659143660143661143662143663143664143665143666143667143668143669143670143671143672143673143674143675143676143677143678143679143680143681143682143683143684143685143686143687143688143689143690143691143692143693143694143695143696143697143698143699143700143701143702143703143704143705143706143707143708143709143710143711143712143713143714143715143716143717143718143719143720143721143722143723143724143725143726143727143728143729143730143731143732143733143734143735143736143737143738143739143740143741143742143743143744143745143746143747143748143749143750143751143752143753143754143755143756143757143758143759143760143761143762143763143764143765143766143767143768143769143770143771143772143773143774143775143776143777143778143779143780143781143782143783143784143785143786143787143788143789143790143791143792143793143794143795143796143797143798143799143800143801143802143803143804143805143806143807143808143809143810143811143812143813143814143815143816143817143818143819143820143821143822143823143824143825143826143827143828143829143830143831143832143833143834143835143836143837143838143839143840143841143842143843143844143845143846143847143848143849143850143851143852143853143854143855143856143857143858143859143860143861143862143863143864143865143866143867143868143869143870143871143872143873143874143875143876143877143878143879143880143881143882143883143884143885143886143887143888143889143890143891143892143893143894143895143896143897143898143899143900143901143902143903143904143905143906143907143908143909143910143911143912143913143914143915143916143917143918143919143920143921143922143923143924143925143926143927143928143929143930143931143932143933143934143935143936143937143938143939143940143941143942143943143944143945143946143947143948143949143950143951143952143953143954143955143956143957143958143959143960143961143962143963143964143965143966143967143968143969143970143971143972143973143974143975143976143977143978143979143980143981143982143983143984143985143986143987143988143989143990143991143992143993143994143995143996143997143998143999144000144001144002144003144004144005144006144007144008144009144010144011144012144013144014144015144016144017144018144019144020144021144022144023144024144025144026144027144028144029144030144031144032144033144034144035144036144037144038144039144040144041144042144043144044144045144046144047144048144049144050144051144052144053144054144055144056144057144058144059144060144061144062144063144064144065144066144067144068144069144070144071144072144073144074144075144076144077144078144079144080144081144082144083144084144085144086144087144088144089144090144091144092144093144094144095144096144097144098144099144100144101144102144103144104144105144106144107144108144109144110144111144112144113144114144115144116144117144118144119144120144121144122144123144124144125144126144127144128144129144130144131144132144133144134144135144136144137144138144139144140144141144142144143144144144145144146144147144148144149144150144151144152144153144154144155144156144157144158144159144160144161144162144163144164144165144166144167144168144169144170144171144172144173144174144175144176144177144178144179144180144181144182144183144184144185144186144187144188144189144190144191144192144193144194144195144196144197144198144199144200144201144202144203144204144205144206144207144208144209144210144211144212144213144214144215144216144217144218144219144220144221144222144223144224144225144226144227144228144229144230144231144232144233144234144235144236144237144238144239144240144241144242144243144244144245144246144247144248144249144250144251144252144253144254144255144256144257144258144259144260144261144262144263144264144265144266144267144268144269144270144271144272144273144274144275144276144277144278144279144280144281144282144283144284144285144286144287144288144289144290144291144292144293144294144295144296144297144298144299144300144301144302144303144304144305144306144307144308144309144310144311144312144313144314144315144316144317144318144319144320144321144322144323144324144325144326144327144328144329144330144331144332144333144334144335144336144337144338144339144340144341144342144343144344144345144346144347144348144349144350144351144352144353144354144355144356144357144358144359144360144361144362144363144364144365144366144367144368144369144370144371144372144373144374144375144376144377144378144379144380144381144382144383144384144385144386144387144388144389144390144391144392144393144394144395144396144397144398144399144400144401144402144403144404144405144406144407144408144409144410144411144412144413144414144415144416144417144418144419144420144421144422144423144424144425144426144427144428144429144430144431144432144433144434144435144436144437144438144439144440144441144442144443144444144445144446144447144448144449144450144451144452144453144454144455144456144457144458144459144460144461144462144463144464144465144466144467144468144469144470144471144472144473144474144475144476144477144478144479144480144481144482144483144484144485144486144487144488144489144490144491144492144493144494144495144496144497144498144499144500144501144502144503144504144505144506144507144508144509144510144511144512144513144514144515144516144517144518144519144520144521144522144523144524144525144526144527144528144529144530144531144532144533144534144535144536144537144538144539144540144541144542144543144544144545144546144547144548144549144550144551144552144553144554144555144556144557144558144559144560144561144562144563144564144565144566144567144568144569144570144571144572144573144574144575144576144577144578144579144580144581144582144583144584144585144586144587144588144589144590144591144592144593144594144595144596144597144598144599144600144601144602144603144604144605144606144607144608144609144610144611144612144613144614144615144616144617144618144619144620144621144622144623144624144625144626144627144628144629144630144631144632144633144634144635144636144637144638144639144640144641144642144643144644144645144646144647144648144649144650144651144652144653144654144655144656144657144658144659144660144661144662144663144664144665144666144667144668144669144670144671144672144673144674144675144676144677144678144679144680144681144682144683144684144685144686144687144688144689144690144691144692144693144694144695144696144697144698144699144700144701144702144703144704144705144706144707144708144709144710144711144712144713144714144715144716144717144718144719144720144721144722144723144724144725144726144727144728144729144730144731144732144733144734144735144736144737144738144739144740144741144742144743144744144745144746144747144748144749144750144751144752144753144754144755144756144757144758144759144760144761144762144763144764144765144766144767144768144769144770144771144772144773144774144775144776144777144778144779144780144781144782144783144784144785144786144787144788144789144790144791144792144793144794144795144796144797144798144799144800144801144802144803144804144805144806144807144808144809144810144811144812144813144814144815144816144817144818144819144820144821144822144823144824144825144826144827144828144829144830144831144832144833144834144835144836144837144838144839144840144841144842144843144844144845144846144847144848144849144850144851144852144853144854144855144856144857144858144859144860144861144862144863144864144865144866144867144868144869144870144871144872144873144874144875144876144877144878144879144880144881144882144883144884144885144886144887144888144889144890144891144892144893144894144895144896144897144898144899144900144901144902144903144904144905144906144907144908144909144910144911144912144913144914144915144916144917144918144919144920144921144922144923144924144925144926144927144928144929144930144931144932144933144934144935144936144937144938144939144940144941144942144943144944144945144946144947144948144949144950144951144952144953144954144955144956144957144958144959144960144961144962144963144964144965144966144967144968144969144970144971144972144973144974144975144976144977144978144979144980144981144982144983144984144985144986144987144988144989144990144991144992144993144994144995144996144997144998144999145000145001145002145003145004145005145006145007145008145009145010145011145012145013145014145015145016145017145018145019145020145021145022145023145024145025145026145027145028145029145030145031145032145033145034145035145036145037145038145039145040145041145042145043145044145045145046145047145048145049145050145051145052145053145054145055145056145057145058145059145060145061145062145063145064145065145066145067145068145069145070145071145072145073145074145075145076145077145078145079145080145081145082145083145084145085145086145087145088145089145090145091145092145093145094145095145096145097145098145099145100145101145102145103145104145105145106145107145108145109145110145111145112145113145114145115145116145117145118145119145120145121145122145123145124145125145126145127145128145129145130145131145132145133145134145135145136145137145138145139145140145141145142145143145144145145145146145147145148145149145150145151145152145153145154145155145156145157145158145159145160145161145162145163145164145165145166145167145168145169145170145171145172145173145174145175145176145177145178145179145180145181145182145183145184145185145186145187145188145189145190145191145192145193145194145195145196145197145198145199145200145201145202145203145204145205145206145207145208145209145210145211145212145213145214145215145216145217145218145219145220145221145222145223145224145225145226145227145228145229145230145231145232145233145234145235145236145237145238145239145240145241145242145243145244145245145246145247145248145249145250145251145252145253145254145255145256145257145258145259145260145261145262145263145264145265145266145267145268145269145270145271145272145273145274145275145276145277145278145279145280145281145282145283145284145285145286145287145288145289145290145291145292145293145294145295145296145297145298145299145300145301145302145303145304145305145306145307145308145309145310145311145312145313145314145315145316145317145318145319145320145321145322145323145324145325145326145327145328145329145330145331145332145333145334145335145336145337145338145339145340145341145342145343145344145345145346145347145348145349145350145351145352145353145354145355145356145357145358145359145360145361145362145363145364145365145366145367145368145369145370145371145372145373145374145375145376145377145378145379145380145381145382145383145384145385145386145387145388145389145390145391145392145393145394145395145396145397145398145399145400145401145402145403145404145405145406145407145408145409145410145411145412145413145414145415145416145417145418145419145420145421145422145423145424145425145426145427145428145429145430145431145432145433145434145435145436145437145438145439145440145441145442145443145444145445145446145447145448145449145450145451145452145453145454145455145456145457145458145459145460145461145462145463145464145465145466145467145468145469145470145471145472145473145474145475145476145477145478145479145480145481145482145483145484145485145486145487145488145489145490145491145492145493145494145495145496145497145498145499145500145501145502145503145504145505145506145507145508145509145510145511145512145513145514145515145516145517145518145519145520145521145522145523145524145525145526145527145528145529145530145531145532145533145534145535145536145537145538145539145540145541145542145543145544145545145546145547145548145549145550145551145552145553145554145555145556145557145558145559145560145561145562145563145564145565145566145567145568145569145570145571145572145573145574145575145576145577145578145579145580145581145582145583145584145585145586145587145588145589145590145591145592145593145594145595145596145597145598145599145600145601145602145603145604145605145606145607145608145609145610145611145612145613145614145615145616145617145618145619145620145621145622145623145624145625145626145627145628145629145630145631145632145633145634145635145636145637145638145639145640145641145642145643145644145645145646145647145648145649145650145651145652145653145654145655145656145657145658145659145660145661145662145663145664145665145666145667145668145669145670145671145672145673145674145675145676145677145678145679145680145681145682145683145684145685145686145687145688145689145690145691145692145693145694145695145696145697145698145699145700145701145702145703145704145705145706145707145708145709145710145711145712145713145714145715145716145717145718145719145720145721145722145723145724145725145726145727145728145729145730145731145732145733145734145735145736145737145738145739145740145741145742145743145744145745145746145747145748145749145750145751145752145753145754145755145756145757145758145759145760145761145762145763145764145765145766145767145768145769145770145771145772145773145774145775145776145777145778145779145780145781145782145783145784145785145786145787145788145789145790145791145792145793145794145795145796145797145798145799145800145801145802145803145804145805145806145807145808145809145810145811145812145813145814145815145816145817145818145819145820145821145822145823145824145825145826145827145828145829145830145831145832145833145834145835145836145837145838145839145840145841145842145843145844145845145846145847145848145849145850145851145852145853145854145855145856145857145858145859145860145861145862145863145864145865145866145867145868145869145870145871145872145873145874145875145876145877145878145879145880145881145882145883145884145885145886145887145888145889145890145891145892145893145894145895145896145897145898145899145900145901145902145903145904145905145906145907145908145909145910145911145912145913145914145915145916145917145918145919145920145921145922145923145924145925145926145927145928145929145930145931145932145933145934145935145936145937145938145939145940145941145942145943145944145945145946145947145948145949145950145951145952145953145954145955145956145957145958145959145960145961145962145963145964145965145966145967145968145969145970145971145972145973145974145975145976145977145978145979145980145981145982145983145984145985145986145987145988145989145990145991145992145993145994145995145996145997145998145999146000146001146002146003146004146005146006146007146008146009146010146011146012146013146014146015146016146017146018146019146020146021146022146023146024146025146026146027146028146029146030146031146032146033146034146035146036146037146038146039146040146041146042146043146044146045146046146047146048146049146050146051146052146053146054146055146056146057146058146059146060146061146062146063146064146065146066146067146068146069146070146071146072146073146074146075146076146077146078146079146080146081146082146083146084146085146086146087146088146089146090146091146092146093146094146095146096146097146098146099146100146101146102146103146104146105146106146107146108146109146110146111146112146113146114146115146116146117146118146119146120146121146122146123146124146125146126146127146128146129146130146131146132146133146134146135146136146137146138146139146140146141146142146143146144146145146146146147146148146149146150146151146152146153146154146155146156146157146158146159146160146161146162146163146164146165146166146167146168146169146170146171146172146173146174146175146176146177146178146179146180146181146182146183146184146185146186146187146188146189146190146191146192146193146194146195146196146197146198146199146200146201146202146203146204146205146206146207146208146209146210146211146212146213146214146215146216146217146218146219146220146221146222146223146224146225146226146227146228146229146230146231146232146233146234146235146236146237146238146239146240146241146242146243146244146245146246146247146248146249146250146251146252146253146254146255146256146257146258146259146260146261146262146263146264146265146266146267146268146269146270146271146272146273146274146275146276146277146278146279146280146281146282146283146284146285146286146287146288146289146290146291146292146293146294146295146296146297146298146299146300146301146302146303146304146305146306146307146308146309146310146311146312146313146314146315146316146317146318146319146320146321146322146323146324146325146326146327146328146329146330146331146332146333146334146335146336146337146338146339146340146341146342146343146344146345146346146347146348146349146350146351146352146353146354146355146356146357146358146359146360146361146362146363146364146365146366146367146368146369146370146371146372146373146374146375146376146377146378146379146380146381146382146383146384146385146386146387146388146389146390146391146392146393146394146395146396146397146398146399146400146401146402146403146404146405146406146407146408146409146410146411146412146413146414146415146416146417146418146419146420146421146422146423146424146425146426146427146428146429146430146431146432146433146434146435146436146437146438146439146440146441146442146443146444146445146446146447146448146449146450146451146452146453146454146455146456146457146458146459146460146461146462146463146464146465146466146467146468146469146470146471146472146473146474146475146476146477146478146479146480146481146482146483146484146485146486146487146488146489146490146491146492146493146494146495146496146497146498146499146500146501146502146503146504146505146506146507146508146509146510146511146512146513146514146515146516146517146518146519146520146521146522146523146524146525146526146527146528146529146530146531146532146533146534146535146536146537146538146539146540146541146542146543146544146545146546146547146548146549146550146551146552146553146554146555146556146557146558146559146560146561146562146563146564146565146566146567146568146569146570146571146572146573146574146575146576146577146578146579146580146581146582146583146584146585146586146587146588146589146590146591146592146593146594146595146596146597146598146599146600146601146602146603146604146605146606146607146608146609146610146611146612146613146614146615146616146617146618146619146620146621146622146623146624146625146626146627146628146629146630146631146632146633146634146635146636146637146638146639146640146641146642146643146644146645146646146647146648146649146650146651146652146653146654146655146656146657146658146659146660146661146662146663146664146665146666146667146668146669146670146671146672146673146674146675146676146677146678146679146680146681146682146683146684146685146686146687146688146689146690146691146692146693146694146695146696146697146698146699146700146701146702146703146704146705146706146707146708146709146710146711146712146713146714146715146716146717146718146719146720146721146722146723146724146725146726146727146728146729146730146731146732146733146734146735146736146737146738146739146740146741146742146743146744146745146746146747146748146749146750146751146752146753146754146755146756146757146758146759146760146761146762146763146764146765146766146767146768146769146770146771146772146773146774146775146776146777146778146779146780146781146782146783146784146785146786146787146788146789146790146791146792146793146794146795146796146797146798146799146800146801146802146803146804146805146806146807146808146809146810146811146812146813146814146815146816146817146818146819146820146821146822146823146824146825146826146827146828146829146830146831146832146833146834146835146836146837146838146839146840146841146842146843146844146845146846146847146848146849146850146851146852146853146854146855146856146857146858146859146860146861146862146863146864146865146866146867146868146869146870146871146872146873146874146875146876146877146878146879146880146881146882146883146884146885146886146887146888146889146890146891146892146893146894146895146896146897146898146899146900146901146902146903146904146905146906146907146908146909146910146911146912146913146914146915146916146917146918146919146920146921146922146923146924146925146926146927146928146929146930146931146932146933146934146935146936146937146938146939146940146941146942146943146944146945146946146947146948146949146950146951146952146953146954146955146956146957146958146959146960146961146962146963146964146965146966146967146968146969146970146971146972146973146974146975146976146977146978146979146980146981146982146983146984146985146986146987146988146989146990146991146992146993146994146995146996146997146998146999147000147001147002147003147004147005147006147007147008147009147010147011147012147013147014147015147016147017147018147019147020147021147022147023147024147025147026147027147028147029147030147031147032147033147034147035147036147037147038147039147040147041147042147043147044147045147046147047147048147049147050147051147052147053147054147055147056147057147058147059147060147061147062147063147064147065147066147067147068147069147070147071147072147073147074147075147076147077147078147079147080147081147082147083147084147085147086147087147088147089147090147091147092147093147094147095147096147097147098147099147100147101147102147103147104147105147106147107147108147109147110147111147112147113147114147115147116147117147118147119147120147121147122147123147124147125147126147127147128147129147130147131147132147133147134147135147136147137147138147139147140147141147142147143147144147145147146147147147148147149147150147151147152147153147154147155147156147157147158147159147160147161147162147163147164147165147166147167147168147169147170147171147172147173147174147175147176147177147178147179147180147181147182147183147184147185147186147187147188147189147190147191147192147193147194147195147196147197147198147199147200147201147202147203147204147205147206147207147208147209147210147211147212147213147214147215147216147217147218147219147220147221147222147223147224147225147226147227147228147229147230147231147232147233147234147235147236147237147238147239147240147241147242147243147244147245147246147247147248147249147250147251147252147253147254147255147256147257147258147259147260147261147262147263147264147265147266147267147268147269147270147271147272147273147274147275147276147277147278147279147280147281147282147283147284147285147286147287147288147289147290147291147292147293147294147295147296147297147298147299147300147301147302147303147304147305147306147307147308147309147310147311147312147313147314147315147316147317147318147319147320147321147322147323147324147325147326147327147328147329147330147331147332147333147334147335147336147337147338147339147340147341147342147343147344147345147346147347147348147349147350147351147352147353147354147355147356147357147358147359147360147361147362147363147364147365147366147367147368147369147370147371147372147373147374147375147376147377147378147379147380147381147382147383147384147385147386147387147388147389147390147391147392147393147394147395147396147397147398147399147400147401147402147403147404147405147406147407147408147409147410147411147412147413147414147415147416147417147418147419147420147421147422147423147424147425147426147427147428147429147430147431147432147433147434147435147436147437147438147439147440147441147442147443147444147445147446147447147448147449147450147451147452147453147454147455147456147457147458147459147460147461147462147463147464147465147466147467147468147469147470147471147472147473147474147475147476147477147478147479147480147481147482147483147484147485147486147487147488147489147490147491147492147493147494147495147496147497147498147499147500147501147502147503147504147505147506147507147508147509147510147511147512147513147514147515147516147517147518147519147520147521147522147523147524147525147526147527147528147529147530147531147532147533147534147535147536147537147538147539147540147541147542147543147544147545147546147547147548147549147550147551147552147553147554147555147556147557147558147559147560147561147562147563147564147565147566147567147568147569147570147571147572147573147574147575147576147577147578147579147580147581147582147583147584147585147586147587147588147589147590147591147592147593147594147595147596147597147598147599147600147601147602147603147604147605147606147607147608147609147610147611147612147613147614147615147616147617147618147619147620147621147622147623147624147625147626147627147628147629147630147631147632147633147634147635147636147637147638147639147640147641147642147643147644147645147646147647147648147649147650147651147652147653147654147655147656147657147658147659147660147661147662147663147664147665147666147667147668147669147670147671147672147673147674147675147676147677147678147679147680147681147682147683147684147685147686147687147688147689147690147691147692147693147694147695147696147697147698147699147700147701147702147703147704147705147706147707147708147709147710147711147712147713147714147715147716147717147718147719147720147721147722147723147724147725147726147727147728147729147730147731147732147733147734147735147736147737147738147739147740147741147742147743147744147745147746147747147748147749147750147751147752147753147754147755147756147757147758147759147760147761147762147763147764147765147766147767147768147769147770147771147772147773147774147775147776147777147778147779147780147781147782147783147784147785147786147787147788147789147790147791147792147793147794147795147796147797147798147799147800147801147802147803147804147805147806147807147808147809147810147811147812147813147814147815147816147817147818147819147820147821147822147823147824147825147826147827147828147829147830147831147832147833147834147835147836147837147838147839147840147841147842147843147844147845147846147847147848147849147850147851147852147853147854147855147856147857147858147859147860147861147862147863147864147865147866147867147868147869147870147871147872147873147874147875147876147877147878147879147880147881147882147883147884147885147886147887147888147889147890147891147892147893147894147895147896147897147898147899147900147901147902147903147904147905147906147907147908147909147910147911147912147913147914147915147916147917147918147919147920147921147922147923147924147925147926147927147928147929147930147931147932147933147934147935147936147937147938147939147940147941147942147943147944147945147946147947147948147949147950147951147952147953147954147955147956147957147958147959147960147961147962147963147964147965147966147967147968147969147970147971147972147973147974147975147976147977147978147979147980147981147982147983147984147985147986147987147988147989147990147991147992147993147994147995147996147997147998147999148000148001148002148003148004148005148006148007148008148009148010148011148012148013148014148015148016148017148018148019148020148021148022148023148024148025148026148027148028148029148030148031148032148033148034148035148036148037148038148039148040148041148042148043148044148045148046148047148048148049148050148051148052148053148054148055148056148057148058148059148060148061148062148063148064148065148066148067148068148069148070148071148072148073148074148075148076148077148078148079148080148081148082148083148084148085148086148087148088148089148090148091148092148093148094148095148096148097148098148099148100148101148102148103148104148105148106148107148108148109148110148111148112148113148114148115148116148117148118148119148120148121148122148123148124148125148126148127148128148129148130148131148132148133148134148135148136148137148138148139148140148141148142148143148144148145148146148147148148148149148150148151148152148153148154148155148156148157148158148159148160148161148162148163148164148165148166148167148168148169148170148171148172148173148174148175148176148177148178148179148180148181148182148183148184148185148186148187148188148189148190148191148192148193148194148195148196148197148198148199148200148201148202148203148204148205148206148207148208148209148210148211148212148213148214148215148216148217148218148219148220148221148222148223148224148225148226148227148228148229148230148231148232148233148234148235148236148237148238148239148240148241148242148243148244148245148246148247148248148249148250148251148252148253148254148255148256148257148258148259148260148261148262148263148264148265148266148267148268148269148270148271148272148273148274148275148276148277148278148279148280148281148282148283148284148285148286148287148288148289148290148291148292148293148294148295148296148297148298148299148300148301148302148303148304148305148306148307148308148309148310148311148312148313148314148315148316148317148318148319148320148321148322148323148324148325148326148327148328148329148330148331148332148333148334148335148336148337148338148339148340148341148342148343148344148345148346148347148348148349148350148351148352148353148354148355148356148357148358148359148360148361148362148363148364148365148366148367148368148369148370148371148372148373148374148375148376148377148378148379148380148381148382148383148384148385148386148387148388148389148390148391148392148393148394148395148396148397148398148399148400148401148402148403148404148405148406148407148408148409148410148411148412148413148414148415148416148417148418148419148420148421148422148423148424148425148426148427148428148429148430148431148432148433148434148435148436148437148438148439148440148441148442148443148444148445148446148447148448148449148450148451148452148453148454148455148456148457148458148459148460148461148462148463148464148465148466148467148468148469148470148471148472148473148474148475148476148477148478148479148480148481148482148483148484148485148486148487148488148489148490148491148492148493148494148495148496148497148498148499148500148501148502148503148504148505148506148507148508148509148510148511148512148513148514148515148516148517148518148519148520148521148522148523148524148525148526148527148528148529148530148531148532148533148534148535148536148537148538148539148540148541148542148543148544148545148546148547148548148549148550148551148552148553148554148555148556148557148558148559148560148561148562148563148564148565148566148567148568148569148570148571148572148573148574148575148576148577148578148579148580148581148582148583148584148585148586148587148588148589148590148591148592148593148594148595148596148597148598148599148600148601148602148603148604148605148606148607148608148609148610148611148612148613148614148615148616148617148618148619148620148621148622148623148624148625148626148627148628148629148630148631148632148633148634148635148636148637148638148639148640148641148642148643148644148645148646148647148648148649148650148651148652148653148654148655148656148657148658148659148660148661148662148663148664148665148666148667148668148669148670148671148672148673148674148675148676148677148678148679148680148681148682148683148684148685148686148687148688148689148690148691148692148693148694148695148696148697148698148699148700148701148702148703148704148705148706148707148708148709148710148711148712148713148714148715148716148717148718148719148720148721148722148723148724148725148726148727148728148729148730148731148732148733148734148735148736148737148738148739148740148741148742148743148744148745148746148747148748148749148750148751148752148753148754148755148756148757148758148759148760148761148762148763148764148765148766148767148768148769148770148771148772148773148774148775148776148777148778148779148780148781148782148783148784148785148786148787148788148789148790148791148792148793148794148795148796148797148798148799148800148801148802148803148804148805148806148807148808148809148810148811148812148813148814148815148816148817148818148819148820148821148822148823148824148825148826148827148828148829148830148831148832148833148834148835148836148837148838148839148840148841148842148843148844148845148846148847148848148849148850148851148852148853148854148855148856148857148858148859148860148861148862148863148864148865148866148867148868148869148870148871148872148873148874148875148876148877148878148879148880148881148882148883148884148885148886148887148888148889148890148891148892148893148894148895148896148897148898148899148900148901148902148903148904148905148906148907148908148909148910148911148912148913148914148915148916148917148918148919148920148921148922148923148924148925148926148927148928148929148930148931148932148933148934148935148936148937148938148939148940148941148942148943148944148945148946148947148948148949148950148951148952148953148954148955148956148957148958148959148960148961148962148963148964148965148966148967148968148969148970148971148972148973148974148975148976148977148978148979148980148981148982148983148984148985148986148987148988148989148990148991148992148993148994148995148996148997148998148999149000149001149002149003149004149005149006149007149008149009149010149011149012149013149014149015149016149017149018149019149020149021149022149023149024149025149026149027149028149029149030149031149032149033149034149035149036149037149038149039149040149041149042149043149044149045149046149047149048149049149050149051149052149053149054149055149056149057149058149059149060149061149062149063149064149065149066149067149068149069149070149071149072149073149074149075149076149077149078149079149080149081149082149083149084149085149086149087149088149089149090149091149092149093149094149095149096149097149098149099149100149101149102149103149104149105149106149107149108149109149110149111149112149113149114149115149116149117149118149119149120149121149122149123149124149125149126149127149128149129149130149131149132149133149134149135149136149137149138149139149140149141149142149143149144149145149146149147149148149149149150149151149152149153149154149155149156149157149158149159149160149161149162149163149164149165149166149167149168149169149170149171149172149173149174149175149176149177149178149179149180149181149182149183149184149185149186149187149188149189149190149191149192149193149194149195149196149197149198149199149200149201149202149203149204149205149206149207149208149209149210149211149212149213149214149215149216149217149218149219149220149221149222149223149224149225149226149227149228149229149230149231149232149233149234149235149236149237149238149239149240149241149242149243149244149245149246149247149248149249149250149251149252149253149254149255149256149257149258149259149260149261149262149263149264149265149266149267149268149269149270149271149272149273149274149275149276149277149278149279149280149281149282149283149284149285149286149287149288149289149290149291149292149293149294149295149296149297149298149299149300149301149302149303149304149305149306149307149308149309149310149311149312149313149314149315149316149317149318149319149320149321149322149323149324149325149326149327149328149329149330149331149332149333149334149335149336149337149338149339149340149341149342149343149344149345149346149347149348149349149350149351149352149353149354149355149356149357149358149359149360149361149362149363149364149365149366149367149368149369149370149371149372149373149374149375149376149377149378149379149380149381149382149383149384149385149386149387149388149389149390149391149392149393149394149395149396149397149398149399149400149401149402149403149404149405149406149407149408149409149410149411149412149413149414149415149416149417149418149419149420149421149422149423149424149425149426149427149428149429149430149431149432149433149434149435149436149437149438149439149440149441149442149443149444149445149446149447149448149449149450149451149452149453149454149455149456149457149458149459149460149461149462149463149464149465149466149467149468149469149470149471149472149473149474149475149476149477149478149479149480149481149482149483149484149485149486149487149488149489149490149491149492149493149494149495149496149497149498149499149500149501149502149503149504149505149506149507149508149509149510149511149512149513149514149515149516149517149518149519149520149521149522149523149524149525149526149527149528149529149530149531149532149533149534149535149536149537149538149539149540149541149542149543149544149545149546149547149548149549149550149551149552149553149554149555149556149557149558149559149560149561149562149563149564149565149566149567149568149569149570149571149572149573149574149575149576149577149578149579149580149581149582149583149584149585149586149587149588149589149590149591149592149593149594149595149596149597149598149599149600149601149602149603149604149605149606149607149608149609149610149611149612149613149614149615149616149617149618149619149620149621149622149623149624149625149626149627149628149629149630149631149632149633149634149635149636149637149638149639149640149641149642149643149644149645149646149647149648149649149650149651149652149653149654149655149656149657149658149659149660149661149662149663149664149665149666149667149668149669149670149671149672149673149674149675149676149677149678149679149680149681149682149683149684149685149686149687149688149689149690149691149692149693149694149695149696149697149698149699149700149701149702149703149704149705149706149707149708149709149710149711149712149713149714149715149716149717149718149719149720149721149722149723149724149725149726149727149728149729149730149731149732149733149734149735149736149737149738149739149740149741149742149743149744149745149746149747149748149749149750149751149752149753149754149755149756149757149758149759149760149761149762149763149764149765149766149767149768149769149770149771149772149773149774149775149776149777149778149779149780149781149782149783149784149785149786149787149788149789149790149791149792149793149794149795149796149797149798149799149800149801149802149803149804149805149806149807149808149809149810149811149812149813149814149815149816149817149818149819149820149821149822149823149824149825149826149827149828149829149830149831149832149833149834149835149836149837149838149839149840149841149842149843149844149845149846149847149848149849149850149851149852149853149854149855149856149857149858149859149860149861149862149863149864149865149866149867149868149869149870149871149872149873149874149875149876149877149878149879149880149881149882149883149884149885149886149887149888149889149890149891149892149893149894149895149896149897149898149899149900149901149902149903149904149905149906149907149908149909149910149911149912149913149914149915149916149917149918149919149920149921149922149923149924149925149926149927149928149929149930149931149932149933149934149935149936149937149938149939149940149941149942149943149944149945149946149947149948149949149950149951149952149953149954149955149956149957149958149959149960149961149962149963149964149965149966149967149968149969149970149971149972149973149974149975149976149977149978149979149980149981149982149983149984149985149986149987149988149989149990149991149992149993149994149995149996149997149998149999150000150001150002150003150004150005150006150007150008150009150010150011150012150013150014150015150016150017150018150019150020150021150022150023150024150025150026150027150028150029150030150031150032150033150034150035150036150037150038150039150040150041150042150043150044150045150046150047150048150049150050150051150052150053150054150055150056150057150058150059150060150061150062150063150064150065150066150067150068150069150070150071150072150073150074150075150076150077150078150079150080150081150082150083150084150085150086150087150088150089150090150091150092150093150094150095150096150097150098150099150100150101150102150103150104150105150106150107150108150109150110150111150112150113150114150115150116150117150118150119150120150121150122150123150124150125150126150127150128150129150130150131150132150133150134150135150136150137150138150139150140150141150142150143150144150145150146150147150148150149150150150151150152150153150154150155150156150157150158150159150160150161150162150163150164150165150166150167150168150169150170150171150172150173150174150175150176150177150178150179150180150181150182150183150184150185150186150187150188150189150190150191150192150193150194150195150196150197150198150199150200150201150202150203150204150205150206150207150208150209150210150211150212150213150214150215150216150217150218150219150220150221150222150223150224150225150226150227150228150229150230150231150232150233150234150235150236150237150238150239150240150241150242150243150244150245150246150247150248150249150250150251150252150253150254150255150256150257150258150259150260150261150262150263150264150265150266150267150268150269150270150271150272150273150274150275150276150277150278150279150280150281150282150283150284150285150286150287150288150289150290150291150292150293150294150295150296150297150298150299150300150301150302150303150304150305150306150307150308150309150310150311150312150313150314150315150316150317150318150319150320150321150322150323150324150325150326150327150328150329150330150331150332150333150334150335150336150337150338150339150340150341150342150343150344150345150346150347150348150349150350150351150352150353150354150355150356150357150358150359150360150361150362150363150364150365150366150367150368150369150370150371150372150373150374150375150376150377150378150379150380150381150382150383150384150385150386150387150388150389150390150391150392150393150394150395150396150397150398150399150400150401150402150403150404150405150406150407150408150409150410150411150412150413150414150415150416150417150418150419150420150421150422150423150424150425150426150427150428150429150430150431150432150433150434150435150436150437150438150439150440150441150442150443150444150445150446150447150448150449150450150451150452150453150454150455150456150457150458150459150460150461150462150463150464150465150466150467150468150469150470150471150472150473150474150475150476150477150478150479150480150481150482150483150484150485150486150487150488150489150490150491150492150493150494150495150496150497150498150499150500150501150502150503150504150505150506150507150508150509150510150511150512150513150514150515150516150517150518150519150520150521150522150523150524150525150526150527150528150529150530150531150532150533150534150535150536150537150538150539150540150541150542150543150544150545150546150547150548150549150550150551150552150553150554150555150556150557150558150559150560150561150562150563150564150565150566150567150568150569150570150571150572150573150574150575150576150577150578150579150580150581150582150583150584150585150586150587150588150589150590150591150592150593150594150595150596150597150598150599150600150601150602150603150604150605150606150607150608150609150610150611150612150613150614150615150616150617150618150619150620150621150622150623150624150625150626150627150628150629150630150631150632150633150634150635150636150637150638150639150640150641150642150643150644150645150646150647150648150649150650150651150652150653150654150655150656150657150658150659150660150661150662150663150664150665150666150667150668150669150670150671150672150673150674150675150676150677150678150679150680150681150682150683150684150685150686150687150688150689150690150691150692150693150694150695150696150697150698150699150700150701150702150703150704150705150706150707150708150709150710150711150712150713150714150715150716150717150718150719150720150721150722150723150724150725150726150727150728150729150730150731150732150733150734150735150736150737150738150739150740150741150742150743150744150745150746150747150748150749150750150751150752150753150754150755150756150757150758150759150760150761150762150763150764150765150766150767150768150769150770150771150772150773150774150775150776150777150778150779150780150781150782150783150784150785150786150787150788150789150790150791150792150793150794150795150796150797150798150799150800150801150802150803150804150805150806150807150808150809150810150811150812150813150814150815150816150817150818150819150820150821150822150823150824150825150826150827150828150829150830150831150832150833150834150835150836150837150838150839150840150841150842150843150844150845150846150847150848150849150850150851150852150853150854150855150856150857150858150859150860150861150862150863150864150865150866150867150868150869150870150871150872150873150874150875150876150877150878150879150880150881150882150883150884150885150886150887150888150889150890150891150892150893150894150895150896150897150898150899150900150901150902150903150904150905150906150907150908150909150910150911150912150913150914150915150916150917150918150919150920150921150922150923150924150925150926150927150928150929150930150931150932150933150934150935150936150937150938150939150940150941150942150943150944150945150946150947150948150949150950150951150952150953150954150955150956150957150958150959150960150961150962150963150964150965150966150967150968150969150970150971150972150973150974150975150976150977150978150979150980150981150982150983150984150985150986150987150988150989150990150991150992150993150994150995150996150997150998150999151000151001151002151003151004151005151006151007151008151009151010151011151012151013151014151015151016151017151018151019151020151021151022151023151024151025151026151027151028151029151030151031151032151033151034151035151036151037151038151039151040151041151042151043151044151045151046151047151048151049151050151051151052151053151054151055151056151057151058151059151060151061151062151063151064151065151066151067151068151069151070151071151072151073151074151075151076151077151078151079151080151081151082151083151084151085151086151087151088151089151090151091151092151093151094151095151096151097151098151099151100151101151102151103151104151105151106151107151108151109151110151111151112151113151114151115151116151117151118151119151120151121151122151123151124151125151126151127151128151129151130151131151132151133151134151135151136151137151138151139151140151141151142151143151144151145151146151147151148151149151150151151151152151153151154151155151156151157151158151159151160151161151162151163151164151165151166151167151168151169151170151171151172151173151174151175151176151177151178151179151180151181151182151183151184151185151186151187151188151189151190151191151192151193151194151195151196151197151198151199151200151201151202151203151204151205151206151207151208151209151210151211151212151213151214151215151216151217151218151219151220151221151222151223151224151225151226151227151228151229151230151231151232151233151234151235151236151237151238151239151240151241151242151243151244151245151246151247151248151249151250151251151252151253151254151255151256151257151258151259151260151261151262151263151264151265151266151267151268151269151270151271151272151273151274151275151276151277151278151279151280151281151282151283151284151285151286151287151288151289151290151291151292151293151294151295151296151297151298151299151300151301151302151303151304151305151306151307151308151309151310151311151312151313151314151315151316151317151318151319151320151321151322151323151324151325151326151327151328151329151330151331151332151333151334151335151336151337151338151339151340151341151342151343151344151345151346151347151348151349151350151351151352151353151354151355151356151357151358151359151360151361151362151363151364151365151366151367151368151369151370151371151372151373151374151375151376151377151378151379151380151381151382151383151384151385151386151387151388151389151390151391151392151393151394151395151396151397151398151399151400151401151402151403151404151405151406151407151408151409151410151411151412151413151414151415151416151417151418151419151420151421151422151423151424151425151426151427151428151429151430151431151432151433151434151435151436151437151438151439151440151441151442151443151444151445151446151447151448151449151450151451151452151453151454151455151456151457151458151459151460151461151462151463151464151465151466151467151468151469151470151471151472151473151474151475151476151477151478151479151480151481151482151483151484151485151486151487151488151489151490151491151492151493151494151495151496151497151498151499151500151501151502151503151504151505151506151507151508151509151510151511151512151513151514151515151516151517151518151519151520151521151522151523151524151525151526151527151528151529151530151531151532151533151534151535151536151537151538151539151540151541151542151543151544151545151546151547151548151549151550151551151552151553151554151555151556151557151558151559151560151561151562151563151564151565151566151567151568151569151570151571151572151573151574151575151576151577151578151579151580151581151582151583151584151585151586151587151588151589151590151591151592151593151594151595151596151597151598151599151600151601151602151603151604151605151606151607151608151609151610151611151612151613151614151615151616151617151618151619151620151621151622151623151624151625151626151627151628151629151630151631151632151633151634151635151636151637151638151639151640151641151642151643151644151645151646151647151648151649151650151651151652151653151654151655151656151657151658151659151660151661151662151663151664151665151666151667151668151669151670151671151672151673151674151675151676151677151678151679151680151681151682151683151684151685151686151687151688151689151690151691151692151693151694151695151696151697151698151699151700151701151702151703151704151705151706151707151708151709151710151711151712151713151714151715151716151717151718151719151720151721151722151723151724151725151726151727151728151729151730151731151732151733151734151735151736151737151738151739151740151741151742151743151744151745151746151747151748151749151750151751151752151753151754151755151756151757151758151759151760151761151762151763151764151765151766151767151768151769151770151771151772151773151774151775151776151777151778151779151780151781151782151783151784151785151786151787151788151789151790151791151792151793151794151795151796151797151798151799151800151801151802151803151804151805151806151807151808151809151810151811151812151813151814151815151816151817151818151819151820151821151822151823151824151825151826151827151828151829151830151831151832151833151834151835151836151837151838151839151840151841151842151843151844151845151846151847151848151849151850151851151852151853151854151855151856151857151858151859151860151861151862151863151864151865151866151867151868151869151870151871151872151873151874151875151876151877151878151879151880151881151882151883151884151885151886151887151888151889151890151891151892151893151894151895151896151897151898151899151900151901151902151903151904151905151906151907151908151909151910151911151912151913151914151915151916151917151918151919151920151921151922151923151924151925151926151927151928151929151930151931151932151933151934151935151936151937151938151939151940151941151942151943151944151945151946151947151948151949151950151951151952151953151954151955151956151957151958151959151960151961151962151963151964151965151966151967151968151969151970151971151972151973151974151975151976151977151978151979151980151981151982151983151984151985151986151987151988151989151990151991151992151993151994151995151996151997151998151999152000152001152002152003152004152005152006152007152008152009152010152011152012152013152014152015152016152017152018152019152020152021152022152023152024152025152026152027152028152029152030152031152032152033152034152035152036152037152038152039152040152041152042152043152044152045152046152047152048152049152050152051152052152053152054152055152056152057152058152059152060152061152062152063152064152065152066152067152068152069152070152071152072152073152074152075152076152077152078152079152080152081152082152083152084152085152086152087152088152089152090152091152092152093152094152095152096152097152098152099152100152101152102152103152104152105152106152107152108152109152110152111152112152113152114152115152116152117152118152119152120152121152122152123152124152125152126152127152128152129152130152131152132152133152134152135152136152137152138152139152140152141152142152143152144152145152146152147152148152149152150152151152152152153152154152155152156152157152158152159152160152161152162152163152164152165152166152167152168152169152170152171152172152173152174152175152176152177152178152179152180152181152182152183152184152185152186152187152188152189152190152191152192152193152194152195152196152197152198152199152200152201152202152203152204152205152206152207152208152209152210152211152212152213152214152215152216152217152218152219152220152221152222152223152224152225152226152227152228152229152230152231152232152233152234152235152236152237152238152239152240152241152242152243152244152245152246152247152248152249152250152251152252152253152254152255152256152257152258152259152260152261152262152263152264152265152266152267152268152269152270152271152272152273152274152275152276152277152278152279152280152281152282152283152284152285152286152287152288152289152290152291152292152293152294152295152296152297152298152299152300152301152302152303152304152305152306152307152308152309152310152311152312152313152314152315152316152317152318152319152320152321152322152323152324152325152326152327152328152329152330152331152332152333152334152335152336152337152338152339152340152341152342152343152344152345152346152347152348152349152350152351152352152353152354152355152356152357152358152359152360152361152362152363152364152365152366152367152368152369152370152371152372152373152374152375152376152377152378152379152380152381152382152383152384152385152386152387152388152389152390152391152392152393152394152395152396152397152398152399152400152401152402152403152404152405152406152407152408152409152410152411152412152413152414152415152416152417152418152419152420152421152422152423152424152425152426152427152428152429152430152431152432152433152434152435152436152437152438152439152440152441152442152443152444152445152446152447152448152449152450152451152452152453152454152455152456152457152458152459152460152461152462152463152464152465152466152467152468152469152470152471152472152473152474152475152476152477152478152479152480152481152482152483152484152485152486152487152488152489152490152491152492152493152494152495152496152497152498152499152500152501152502152503152504152505152506152507152508152509152510152511152512152513152514152515152516152517152518152519152520152521152522152523152524152525152526152527152528152529152530152531152532152533152534152535152536152537152538152539152540152541152542152543152544152545152546152547152548152549152550152551152552152553152554152555152556152557152558152559152560152561152562152563152564152565152566152567152568152569152570152571152572152573152574152575152576152577152578152579152580152581152582152583152584152585152586152587152588152589152590152591152592152593152594152595152596152597152598152599152600152601152602152603152604152605152606152607152608152609152610152611152612152613152614152615152616152617152618152619152620152621152622152623152624152625152626152627152628152629152630152631152632152633152634152635152636152637152638152639152640152641152642152643152644152645152646152647152648152649152650152651152652152653152654152655152656152657152658152659152660152661152662152663152664152665152666152667152668152669152670152671152672152673152674152675152676152677152678152679152680152681152682152683152684152685152686152687152688152689152690152691152692152693152694152695152696152697152698152699152700152701152702152703152704152705152706152707152708152709152710152711152712152713152714152715152716152717152718152719152720152721152722152723152724152725152726152727152728152729152730152731152732152733152734152735152736152737152738152739152740152741152742152743152744152745152746152747152748152749152750152751152752152753152754152755152756152757152758152759152760152761152762152763152764152765152766152767152768152769152770152771152772152773152774152775152776152777152778152779152780152781152782152783152784152785152786152787152788152789152790152791152792152793152794152795152796152797152798152799152800152801152802152803152804152805152806152807152808152809152810152811152812152813152814152815152816152817152818152819152820152821152822152823152824152825152826152827152828152829152830152831152832152833152834152835152836152837152838152839152840152841152842152843152844152845152846152847152848152849152850152851152852152853152854152855152856152857152858152859152860152861152862152863152864152865152866152867152868152869152870152871152872152873152874152875152876152877152878152879152880152881152882152883152884152885152886152887152888152889152890152891152892152893152894152895152896152897152898152899152900152901152902152903152904152905152906152907152908152909152910152911152912152913152914152915152916152917152918152919152920152921152922152923152924152925152926152927152928152929152930152931152932152933152934152935152936152937152938152939152940152941152942152943152944152945152946152947152948152949152950152951152952152953152954152955152956152957152958152959152960152961152962152963152964152965152966152967152968152969152970152971152972152973152974152975152976152977152978152979152980152981152982152983152984152985152986152987152988152989152990152991152992152993152994152995152996152997152998152999153000153001153002153003153004153005153006153007153008153009153010153011153012153013153014153015153016153017153018153019153020153021153022153023153024153025153026153027153028153029153030153031153032153033153034153035153036153037153038153039153040153041153042153043153044153045153046153047153048153049153050153051153052153053153054153055153056153057153058153059153060153061153062153063153064153065153066153067153068153069153070153071153072153073153074153075153076153077153078153079153080153081153082153083153084153085153086153087153088153089153090153091153092153093153094153095153096153097153098153099153100153101153102153103153104153105153106153107153108153109153110153111153112153113153114153115153116153117153118153119153120153121153122153123153124153125153126153127153128153129153130153131153132153133153134153135153136153137153138153139153140153141153142153143153144153145153146153147153148153149153150153151153152153153153154153155153156153157153158153159153160153161153162153163153164153165153166153167153168153169153170153171153172153173153174153175153176153177153178153179153180153181153182153183153184153185153186153187153188153189153190153191153192153193153194153195153196153197153198153199153200153201153202153203153204153205153206153207153208153209153210153211153212153213153214153215153216153217153218153219153220153221153222153223153224153225153226153227153228153229153230153231153232153233153234153235153236153237153238153239153240153241153242153243153244153245153246153247153248153249153250153251153252153253153254153255153256153257153258153259153260153261153262153263153264153265153266153267153268153269153270153271153272153273153274153275153276153277153278153279153280153281153282153283153284153285153286153287153288153289153290153291153292153293153294153295153296153297153298153299153300153301153302153303153304153305153306153307153308153309153310153311153312153313153314153315153316153317153318153319153320153321153322153323153324153325153326153327153328153329153330153331153332153333153334153335153336153337153338153339153340153341153342153343153344153345153346153347153348153349153350153351153352153353153354153355153356153357153358153359153360153361153362153363153364153365153366153367153368153369153370153371153372153373153374153375153376153377153378153379153380153381153382153383153384153385153386153387153388153389153390153391153392153393153394153395153396153397153398153399153400153401153402153403153404153405153406153407153408153409153410153411153412153413153414153415153416153417153418153419153420153421153422153423153424153425153426153427153428153429153430153431153432153433153434153435153436153437153438153439153440153441153442153443153444153445153446153447153448153449153450153451153452153453153454153455153456153457153458153459153460153461153462153463153464153465153466153467153468153469153470153471153472153473153474153475153476153477153478153479153480153481153482153483153484153485153486153487153488153489153490153491153492153493153494153495153496153497153498153499153500153501153502153503153504153505153506153507153508153509153510153511153512153513153514153515153516153517153518153519153520153521153522153523153524153525153526153527153528153529153530153531153532153533153534153535153536153537153538153539153540153541153542153543153544153545153546153547153548153549153550153551153552153553153554153555153556153557153558153559153560153561153562153563153564153565153566153567153568153569153570153571153572153573153574153575153576153577153578153579153580153581153582153583153584153585153586153587153588153589153590153591153592153593153594153595153596153597153598153599153600153601153602153603153604153605153606153607153608153609153610153611153612153613153614153615153616153617153618153619153620153621153622153623153624153625153626153627153628153629153630153631153632153633153634153635153636153637153638153639153640153641153642153643153644153645153646153647153648153649153650153651153652153653153654153655153656153657153658153659153660153661153662153663153664153665153666153667153668153669153670153671153672153673153674153675153676153677153678153679153680153681153682153683153684153685153686153687153688153689153690153691153692153693153694153695153696153697153698153699153700153701153702153703153704153705153706153707153708153709153710153711153712153713153714153715153716153717153718153719153720153721153722153723153724153725153726153727153728153729153730153731153732153733153734153735153736153737153738153739153740153741153742153743153744153745153746153747153748153749153750153751153752153753153754153755153756153757153758153759153760153761153762153763153764153765153766153767153768153769153770153771153772153773153774153775153776153777153778153779153780153781153782153783153784153785153786153787153788153789153790153791153792153793153794153795153796153797153798153799153800153801153802153803153804153805153806153807153808153809153810153811153812153813153814153815153816153817153818153819153820153821153822153823153824153825153826153827153828153829153830153831153832153833153834153835153836153837153838153839153840153841153842153843153844153845153846153847153848153849153850153851153852153853153854153855153856153857153858153859153860153861153862153863153864153865153866153867153868153869153870153871153872153873153874153875153876153877153878153879153880153881153882153883153884153885153886153887153888153889153890153891153892153893153894153895153896153897153898153899153900153901153902153903153904153905153906153907153908153909153910153911153912153913153914153915153916153917153918153919153920153921153922153923153924153925153926153927153928153929153930153931153932153933153934153935153936153937153938153939153940153941153942153943153944153945153946153947153948153949153950153951153952153953153954153955153956153957153958153959153960153961153962153963153964153965153966153967153968153969153970153971153972153973153974153975153976153977153978153979153980153981153982153983153984153985153986153987153988153989153990153991153992153993153994153995153996153997153998153999154000154001154002154003154004154005154006154007154008154009154010154011154012154013154014154015154016154017154018154019154020154021154022154023154024154025154026154027154028154029154030154031154032154033154034154035154036154037154038154039154040154041154042154043154044154045154046154047154048154049154050154051154052154053154054154055154056154057154058154059154060154061154062154063154064154065154066154067154068154069154070154071154072154073154074154075154076154077154078154079154080154081154082154083154084154085154086154087154088154089154090154091154092154093154094154095154096154097154098154099154100154101154102154103154104154105154106154107154108154109154110154111154112154113154114154115154116154117154118154119154120154121154122154123154124154125154126154127154128154129154130154131154132154133154134154135154136154137154138154139154140154141154142154143154144154145154146154147154148154149154150154151154152154153154154154155154156154157154158154159154160154161154162154163154164154165154166154167154168154169154170154171154172154173154174154175154176154177154178154179154180154181154182154183154184154185154186154187154188154189154190154191154192154193154194154195154196154197154198154199154200154201154202154203154204154205154206154207154208154209154210154211154212154213154214154215154216154217154218154219154220154221154222154223154224154225154226154227154228154229154230154231154232154233154234154235154236154237154238154239154240154241154242154243154244154245154246154247154248154249154250154251154252154253154254154255154256154257154258154259154260154261154262154263154264154265154266154267154268154269154270154271154272154273154274154275154276154277154278154279154280154281154282154283154284154285154286154287154288154289154290154291154292154293154294154295154296154297154298154299154300154301154302154303154304154305154306154307154308154309154310154311154312154313154314154315154316154317154318154319154320154321154322154323154324154325154326154327154328154329154330154331154332154333154334154335154336154337154338154339154340154341154342154343154344154345154346154347154348154349154350154351154352154353154354154355154356154357154358154359154360154361154362154363154364154365154366154367154368154369154370154371154372154373154374154375154376154377154378154379154380154381154382154383154384154385154386154387154388154389154390154391154392154393154394154395154396154397154398154399154400154401154402154403154404154405154406154407154408154409154410154411154412154413154414154415154416154417154418154419154420154421154422154423154424154425154426154427154428154429154430154431154432154433154434154435154436154437154438154439154440154441154442154443154444154445154446154447154448154449154450154451154452154453154454154455154456154457154458154459154460154461154462154463154464154465154466154467154468154469154470154471154472154473154474154475154476154477154478154479154480154481154482154483154484154485154486154487154488154489154490154491154492154493154494154495154496154497154498154499154500154501154502154503154504154505154506154507154508154509154510154511154512154513154514154515154516154517154518154519154520154521154522154523154524154525154526154527154528154529154530154531154532154533154534154535154536154537154538154539154540154541154542154543154544154545154546154547154548154549154550154551154552154553154554154555154556154557154558154559154560154561154562154563154564154565154566154567154568154569154570154571154572154573154574154575154576154577154578154579154580154581154582154583154584154585154586154587154588154589154590154591154592154593154594154595154596154597154598154599154600154601154602154603154604154605154606154607154608154609154610154611154612154613154614154615154616154617154618154619154620154621154622154623154624154625154626154627154628154629154630154631154632154633154634154635154636154637154638154639154640154641154642154643154644154645154646154647154648154649154650154651154652154653154654154655154656154657154658154659154660154661154662154663154664154665154666154667154668154669154670154671154672154673154674154675154676154677154678154679154680154681154682154683154684154685154686154687154688154689154690154691154692154693154694154695154696154697154698154699154700154701154702154703154704154705154706154707154708154709154710154711154712154713154714154715154716154717154718154719154720154721154722154723154724154725154726154727154728154729154730154731154732154733154734154735154736154737154738154739154740154741154742154743154744154745154746154747154748154749154750154751154752154753154754154755154756154757154758154759154760154761154762154763154764154765154766154767154768154769154770154771154772154773154774154775154776154777154778154779154780154781154782154783154784154785154786154787154788154789154790154791154792154793154794154795154796154797154798154799154800154801154802154803154804154805154806154807154808154809154810154811154812154813154814154815154816154817154818154819154820154821154822154823154824154825154826154827154828154829154830154831154832154833154834154835154836154837154838154839154840154841154842154843154844154845154846154847154848154849154850154851154852154853154854154855154856154857154858154859154860154861154862154863154864154865154866154867154868154869154870154871154872154873154874154875154876154877154878154879154880154881154882154883154884154885154886154887154888154889154890154891154892154893154894154895154896154897154898154899154900154901154902154903154904154905154906154907154908154909154910154911154912154913154914154915154916154917154918154919154920154921154922154923154924154925154926154927154928154929154930154931154932154933154934154935154936154937154938154939154940154941154942154943154944154945154946154947154948154949154950154951154952154953154954154955154956154957154958154959154960154961154962154963154964154965154966154967154968154969154970154971154972154973154974154975154976154977154978154979154980154981154982154983154984154985154986154987154988154989154990154991154992154993154994154995154996154997154998154999155000155001155002155003155004155005155006155007155008155009155010155011155012155013155014155015155016155017155018155019155020155021155022155023155024155025155026155027155028155029155030155031155032155033155034155035155036155037155038155039155040155041155042155043155044155045155046155047155048155049155050155051155052155053155054155055155056155057155058155059155060155061155062155063155064155065155066155067155068155069155070155071155072155073155074155075155076155077155078155079155080155081155082155083155084155085155086155087155088155089155090155091155092155093155094155095155096155097155098155099155100155101155102155103155104155105155106155107155108155109155110155111155112155113155114155115155116155117155118155119155120155121155122155123155124155125155126155127155128155129155130155131155132155133155134155135155136155137155138155139155140155141155142155143155144155145155146155147155148155149155150155151155152155153155154155155155156155157155158155159155160155161155162155163155164155165155166155167155168155169155170155171155172155173155174155175155176155177155178155179155180155181155182155183155184155185155186155187155188155189155190155191155192155193155194155195155196155197155198155199155200155201155202155203155204155205155206155207155208155209155210155211155212155213155214155215155216155217155218155219155220155221155222155223155224155225155226155227155228155229155230155231155232155233155234155235155236155237155238155239155240155241155242155243155244155245155246155247155248155249155250155251155252155253155254155255155256155257155258155259155260155261155262155263155264155265155266155267155268155269155270155271155272155273155274155275155276155277155278155279155280155281155282155283155284155285155286155287155288155289155290155291155292155293155294155295155296155297155298155299155300155301155302155303155304155305155306155307155308155309155310155311155312155313155314155315155316155317155318155319155320155321155322155323155324155325155326155327155328155329155330155331155332155333155334155335155336155337155338155339155340155341155342155343155344155345155346155347155348155349155350155351155352155353155354155355155356155357155358155359155360155361155362155363155364155365155366155367155368155369155370155371155372155373155374155375155376155377155378155379155380155381155382155383155384155385155386155387155388155389155390155391155392155393155394155395155396155397155398155399155400155401155402155403155404155405155406155407155408155409155410155411155412155413155414155415155416155417155418155419155420155421155422155423155424155425155426155427155428155429155430155431155432155433155434155435155436155437155438155439155440155441155442155443155444155445155446155447155448155449155450155451155452155453155454155455155456155457155458155459155460155461155462155463155464155465155466155467155468155469155470155471155472155473155474155475155476155477155478155479155480155481155482155483155484155485155486155487155488155489155490155491155492155493155494155495155496155497155498155499155500155501155502155503155504155505155506155507155508155509155510155511155512155513155514155515155516155517155518155519155520155521155522155523155524155525155526155527155528155529155530155531155532155533155534155535155536155537155538155539155540155541155542155543155544155545155546155547155548155549155550155551155552155553155554155555155556155557155558155559155560155561155562155563155564155565155566155567155568155569155570155571155572155573155574155575155576155577155578155579155580155581155582155583155584155585155586155587155588155589155590155591155592155593155594155595155596155597155598155599155600155601155602155603155604155605155606155607155608155609155610155611155612155613155614155615155616155617155618155619155620155621155622155623155624155625155626155627155628155629155630155631155632155633155634155635155636155637155638155639155640155641155642155643155644155645155646155647155648155649155650155651155652155653155654155655155656155657155658155659155660155661155662155663155664155665155666155667155668155669155670155671155672155673155674155675155676155677155678155679155680155681155682155683155684155685155686155687155688155689155690155691155692155693155694155695155696155697155698155699155700155701155702155703155704155705155706155707155708155709155710155711155712155713155714155715155716155717155718155719155720155721155722155723155724155725155726155727155728155729155730155731155732155733155734155735155736155737155738155739155740155741155742155743155744155745155746155747155748155749155750155751155752155753155754155755155756155757155758155759155760155761155762155763155764155765155766155767155768155769155770155771155772155773155774155775155776155777155778155779155780155781155782155783155784155785155786155787155788155789155790155791155792155793155794155795155796155797155798155799155800155801155802155803155804155805155806155807155808155809155810155811155812155813155814155815155816155817155818155819155820155821155822155823155824155825155826155827155828155829155830155831155832155833155834155835155836155837155838155839155840155841155842155843155844155845155846155847155848155849155850155851155852155853155854155855155856155857155858155859155860155861155862155863155864155865155866155867155868155869155870155871155872155873155874155875155876155877155878155879155880155881155882155883155884155885155886155887155888155889155890155891155892155893155894155895155896155897155898155899155900155901155902155903155904155905155906155907155908155909155910155911155912155913155914155915155916155917155918155919155920155921155922155923155924155925155926155927155928155929155930155931155932155933155934155935155936155937155938155939155940155941155942155943155944155945155946155947155948155949155950155951155952155953155954155955155956155957155958155959155960155961155962155963155964155965155966155967155968155969155970155971155972155973155974155975155976155977155978155979155980155981155982155983155984155985155986155987155988155989155990155991155992155993155994155995155996155997155998155999156000156001156002156003156004156005156006156007156008156009156010156011156012156013156014156015156016156017156018156019156020156021156022156023156024156025156026156027156028156029156030156031156032156033156034156035156036156037156038156039156040156041156042156043156044156045156046156047156048156049156050156051156052156053156054156055156056156057156058156059156060156061156062156063156064156065156066156067156068156069156070156071156072156073156074156075156076156077156078156079156080156081156082156083156084156085156086156087156088156089156090156091156092156093156094156095156096156097156098156099156100156101156102156103156104156105156106156107156108156109156110156111156112156113156114156115156116156117156118156119156120156121156122156123156124156125156126156127156128156129156130156131156132156133156134156135156136156137156138156139156140156141156142156143156144156145156146156147156148156149156150156151156152156153156154156155156156156157156158156159156160156161156162156163156164156165156166156167156168156169156170156171156172156173156174156175156176156177156178156179156180156181156182156183156184156185156186156187156188156189156190156191156192156193156194156195156196156197156198156199156200156201156202156203156204156205156206156207156208156209156210156211156212156213156214156215156216156217156218156219156220156221156222156223156224156225156226156227156228156229156230156231156232156233156234156235156236156237156238156239156240156241156242156243156244156245156246156247156248156249156250156251156252156253156254156255156256156257156258156259156260156261156262156263156264156265156266156267156268156269156270156271156272156273156274156275156276156277156278156279156280156281156282156283156284156285156286156287156288156289156290156291156292156293156294156295156296156297156298156299156300156301156302156303156304156305156306156307156308156309156310156311156312156313156314156315156316156317156318156319156320156321156322156323156324156325156326156327156328156329156330156331156332156333156334156335156336156337156338156339156340156341156342156343156344156345156346156347156348156349156350156351156352156353156354156355156356156357156358156359156360156361156362156363156364156365156366156367156368156369156370156371156372156373156374156375156376156377156378156379156380156381156382156383156384156385156386156387156388156389156390156391156392156393156394156395156396156397156398156399156400156401156402156403156404156405156406156407156408156409156410156411156412156413156414156415156416156417156418156419156420156421156422156423156424156425156426156427156428156429156430156431156432156433156434156435156436156437156438156439156440156441156442156443156444156445156446156447156448156449156450156451156452156453156454156455156456156457156458156459156460156461156462156463156464156465156466156467156468156469156470156471156472156473156474156475156476156477156478156479156480156481156482156483156484156485156486156487156488156489156490156491156492156493156494156495156496156497156498156499156500156501156502156503156504156505156506156507156508156509156510156511156512156513156514156515156516156517156518156519156520156521156522156523156524156525156526156527156528156529156530156531156532156533156534156535156536156537156538156539156540156541156542156543156544156545156546156547156548156549156550156551156552156553156554156555156556156557156558156559156560156561156562156563156564156565156566156567156568156569156570156571156572156573156574156575156576156577156578156579156580156581156582156583156584156585156586156587156588156589156590156591156592156593156594156595156596156597156598156599156600156601156602156603156604156605156606156607156608156609156610156611156612156613156614156615156616156617156618156619156620156621156622156623156624156625156626156627156628156629156630156631156632156633156634156635156636156637156638156639156640156641156642156643156644156645156646156647156648156649156650156651156652156653156654156655156656156657156658156659156660156661156662156663156664156665156666156667156668156669156670156671156672156673156674156675156676156677156678156679156680156681156682156683156684156685156686156687156688156689156690156691156692156693156694156695156696156697156698156699156700156701156702156703156704156705156706156707156708156709156710156711156712156713156714156715156716156717156718156719156720156721156722156723156724156725156726156727156728156729156730156731156732156733156734156735156736156737156738156739156740156741156742156743156744156745156746156747156748156749156750156751156752156753156754156755156756156757156758156759156760156761156762156763156764156765156766156767156768156769156770156771156772156773156774156775156776156777156778156779156780156781156782156783156784156785156786156787156788156789156790156791156792156793156794156795156796156797156798156799156800156801156802156803156804156805156806156807156808156809156810156811156812156813156814156815156816156817156818156819156820156821156822156823156824156825156826156827156828156829156830156831156832156833156834156835156836156837156838156839156840156841156842156843156844156845156846156847156848156849156850156851156852156853156854156855156856156857156858156859156860156861156862156863156864156865156866156867156868156869156870156871156872156873156874156875156876156877156878156879156880156881156882156883156884156885156886156887156888156889156890156891156892156893156894156895156896156897156898156899156900156901156902156903156904156905156906156907156908156909156910156911156912156913156914156915156916156917156918156919156920156921156922156923156924156925156926156927156928156929156930156931156932156933156934156935156936156937156938156939156940156941156942156943156944156945156946156947156948156949156950156951156952156953156954156955156956156957156958156959156960156961156962156963156964156965156966156967156968156969156970156971156972156973156974156975156976156977156978156979156980156981156982156983156984156985156986156987156988156989156990156991156992156993156994156995156996156997156998156999157000157001157002157003157004157005157006157007157008157009157010157011157012157013157014157015157016157017157018157019157020157021157022157023157024157025157026157027157028157029157030157031157032157033157034157035157036157037157038157039157040157041157042157043157044157045157046157047157048157049157050157051157052157053157054157055157056157057157058157059157060157061157062157063157064157065157066157067157068157069157070157071157072157073157074157075157076157077157078157079157080157081157082157083157084157085157086157087157088157089157090157091157092157093157094157095157096157097157098157099157100157101157102157103157104157105157106157107157108157109157110157111157112157113157114157115157116157117157118157119157120157121157122157123157124157125157126157127157128157129157130157131157132157133157134157135157136157137157138157139157140157141157142157143157144157145157146157147157148157149157150157151157152157153157154157155157156157157157158157159157160157161157162157163157164157165157166157167157168157169157170157171157172157173157174157175157176157177157178157179157180157181157182157183157184157185157186157187157188157189157190157191157192157193157194157195157196157197157198157199157200157201157202157203157204157205157206157207157208157209157210157211157212157213157214157215157216157217157218157219157220157221157222157223157224157225157226157227157228157229157230157231157232157233157234157235157236157237157238157239157240157241157242157243157244157245157246157247157248157249157250157251157252157253157254157255157256157257157258157259157260157261157262157263157264157265157266157267157268157269157270157271157272157273157274157275157276157277157278157279157280157281157282157283157284157285157286157287157288157289157290157291157292157293157294157295157296157297157298157299157300157301157302157303157304157305157306157307157308157309157310157311157312157313157314157315157316157317157318157319157320157321157322157323157324157325157326157327157328157329157330157331157332157333157334157335157336157337157338157339157340157341157342157343157344157345157346157347157348157349157350157351157352157353157354157355157356157357157358157359157360157361157362157363157364157365157366157367157368157369157370157371157372157373157374157375157376157377157378157379157380157381157382157383157384157385157386157387157388157389157390157391157392157393157394157395157396157397157398157399157400157401157402157403157404157405157406157407157408157409157410157411157412157413157414157415157416157417157418157419157420157421157422157423157424157425157426157427157428157429157430157431157432157433157434157435157436157437157438157439157440157441157442157443157444157445157446157447157448157449157450157451157452157453157454157455157456157457157458157459157460157461157462157463157464157465157466157467157468157469157470157471157472157473157474157475157476157477157478157479157480157481157482157483157484157485157486157487157488157489157490157491157492157493157494157495157496157497157498157499157500157501157502157503157504157505157506157507157508157509157510157511157512157513157514157515157516157517157518157519157520157521157522157523157524157525157526157527157528157529157530157531157532157533157534157535157536157537157538157539157540157541157542157543157544157545157546157547157548157549157550157551157552157553157554157555157556157557157558157559157560157561157562157563157564157565157566157567157568157569157570157571157572157573157574157575157576157577157578157579157580157581157582157583157584157585157586157587157588157589157590157591157592157593157594157595157596157597157598157599157600157601157602157603157604157605157606157607157608157609157610157611157612157613157614157615157616157617157618157619157620157621157622157623157624157625157626157627157628157629157630157631157632157633157634157635157636157637157638157639157640157641157642157643157644157645157646157647157648157649157650157651157652157653157654157655157656157657157658157659157660157661157662157663157664157665157666157667157668157669157670157671157672157673157674157675157676157677157678157679157680157681157682157683157684157685157686157687157688157689157690157691157692157693157694157695157696157697157698157699157700157701157702157703157704157705157706157707157708157709157710157711157712157713157714157715157716157717157718157719157720157721157722157723157724157725157726157727157728157729157730157731157732157733157734157735157736157737157738157739157740157741157742157743157744157745157746157747157748157749157750157751157752157753157754157755157756157757157758157759157760157761157762157763157764157765157766157767157768157769157770157771157772157773157774157775157776157777157778157779157780157781157782157783157784157785157786157787157788157789157790157791157792157793157794157795157796157797157798157799157800157801157802157803157804157805157806157807157808157809157810157811157812157813157814157815157816157817157818157819157820157821157822157823157824157825157826157827157828157829157830157831157832157833157834157835157836157837157838157839157840157841157842157843157844157845157846157847157848157849157850157851157852157853157854157855157856157857157858157859157860157861157862157863157864157865157866157867157868157869157870157871157872157873157874157875157876157877157878157879157880157881157882157883157884157885157886157887157888157889157890157891157892157893157894157895157896157897157898157899157900157901157902157903157904157905157906157907157908157909157910157911157912157913157914157915157916157917157918157919157920157921157922157923157924157925157926157927157928157929157930157931157932157933157934157935157936157937157938157939157940157941157942157943157944157945157946157947157948157949157950157951157952157953157954157955157956157957157958157959157960157961157962157963157964157965157966157967157968157969157970157971157972157973157974157975157976157977157978157979157980157981157982157983157984157985157986157987157988157989157990157991157992157993157994157995157996157997157998157999158000158001158002158003158004158005158006158007158008158009158010158011158012158013158014158015158016158017158018158019158020158021158022158023158024158025158026158027158028158029158030158031158032158033158034158035158036158037158038158039158040158041158042158043158044158045158046158047158048158049158050158051158052158053158054158055158056158057158058158059158060158061158062158063158064158065158066158067158068158069158070158071158072158073158074158075158076158077158078158079158080158081158082158083158084158085158086158087158088158089158090158091158092158093158094158095158096158097158098158099158100158101158102158103158104158105158106158107158108158109158110158111158112158113158114158115158116158117158118158119158120158121158122158123158124158125158126158127158128158129158130158131158132158133158134158135158136158137158138158139158140158141158142158143158144158145158146158147158148158149158150158151158152158153158154158155158156158157158158158159158160158161158162158163158164158165158166158167158168158169158170158171158172158173158174158175158176158177158178158179158180158181158182158183158184158185158186158187158188158189158190158191158192158193158194158195158196158197158198158199158200158201158202158203158204158205158206158207158208158209158210158211158212158213158214158215158216158217158218158219158220158221158222158223158224158225158226158227158228158229158230158231158232158233158234158235158236158237158238158239158240158241158242158243158244158245158246158247158248158249158250158251158252158253158254158255158256158257158258158259158260158261158262158263158264158265158266158267158268158269158270158271158272158273158274158275158276158277158278158279158280158281158282158283158284158285158286158287158288158289158290158291158292158293158294158295158296158297158298158299158300158301158302158303158304158305158306158307158308158309158310158311158312158313158314158315158316158317158318158319158320158321158322158323158324158325158326158327158328158329158330158331158332158333158334158335158336158337158338158339158340158341158342158343158344158345158346158347158348158349158350158351158352158353158354158355158356158357158358158359158360158361158362158363158364158365158366158367158368158369158370158371158372158373158374158375158376158377158378158379158380158381158382158383158384158385158386158387158388158389158390158391158392158393158394158395158396158397158398158399158400158401158402158403158404158405158406158407158408158409158410158411158412158413158414158415158416158417158418158419158420158421158422158423158424158425158426158427158428158429158430158431158432158433158434158435158436158437158438158439158440158441158442158443158444158445158446158447158448158449158450158451158452158453158454158455158456158457158458158459158460158461158462158463158464158465158466158467158468158469158470158471158472158473158474158475158476158477158478158479158480158481158482158483158484158485158486158487158488158489158490158491158492158493158494158495158496158497158498158499158500158501158502158503158504158505158506158507158508158509158510158511158512158513158514158515158516158517158518158519158520158521158522158523158524158525158526158527158528158529158530158531158532158533158534158535158536158537158538158539158540158541158542158543158544158545158546158547158548158549158550158551158552158553158554158555158556158557158558158559158560158561158562158563158564158565158566158567158568158569158570158571158572158573158574158575158576158577158578158579158580158581158582158583158584158585158586158587158588158589158590158591158592158593158594158595158596158597158598158599158600158601158602158603158604158605158606158607158608158609158610158611158612158613158614158615158616158617158618158619158620158621158622158623158624158625158626158627158628158629158630158631158632158633158634158635158636158637158638158639158640158641158642158643158644158645158646158647158648158649158650158651158652158653158654158655158656158657158658158659158660158661158662158663158664158665158666158667158668158669158670158671158672158673158674158675158676158677158678158679158680158681158682158683158684158685158686158687158688158689158690158691158692158693158694158695158696158697158698158699158700158701158702158703158704158705158706158707158708158709158710158711158712158713158714158715158716158717158718158719158720158721158722158723158724158725158726158727158728158729158730158731158732158733158734158735158736158737158738158739158740158741158742158743158744158745158746158747158748158749158750158751158752158753158754158755158756158757158758158759158760158761158762158763158764158765158766158767158768158769158770158771158772158773158774158775158776158777158778158779158780158781158782158783158784158785158786158787158788158789158790158791158792158793158794158795158796158797158798158799158800158801158802158803158804158805158806158807158808158809158810158811158812158813158814158815158816158817158818158819158820158821158822158823158824158825158826158827158828158829158830158831158832158833158834158835158836158837158838158839158840158841158842158843158844158845158846158847158848158849158850158851158852158853158854158855158856158857158858158859158860158861158862158863158864158865158866158867158868158869158870158871158872158873158874158875158876158877158878158879158880158881158882158883158884158885158886158887158888158889158890158891158892158893158894158895158896158897158898158899158900158901158902158903158904158905158906158907158908158909158910158911158912158913158914158915158916158917158918158919158920158921158922158923158924158925158926158927158928158929158930158931158932158933158934158935158936158937158938158939158940158941158942158943158944158945158946158947158948158949158950158951158952158953158954158955158956158957158958158959158960158961158962158963158964158965158966158967158968158969158970158971158972158973158974158975158976158977158978158979158980158981158982158983158984158985158986158987158988158989158990158991158992158993158994158995158996158997158998158999159000159001159002159003159004159005159006159007159008159009159010159011159012159013159014159015159016159017159018159019159020159021159022159023159024159025159026159027159028159029159030159031159032159033159034159035159036159037159038159039159040159041159042159043159044159045159046159047159048159049159050159051159052159053159054159055159056159057159058159059159060159061159062159063159064159065159066159067159068159069159070159071159072159073159074159075159076159077159078159079159080159081159082159083159084159085159086159087159088159089159090159091159092159093159094159095159096159097159098159099159100159101159102159103159104159105159106159107159108159109159110159111159112159113159114159115159116159117159118159119159120159121159122159123159124159125159126159127159128159129159130159131159132159133159134159135159136159137159138159139159140159141159142159143159144159145159146159147159148159149159150159151159152159153159154159155159156159157159158159159159160159161159162159163159164159165159166159167159168159169159170159171159172159173159174159175159176159177159178159179159180159181159182159183159184159185159186159187159188159189159190159191159192159193159194159195159196159197159198159199159200159201159202159203159204159205159206159207159208159209159210159211159212159213159214159215159216159217159218159219159220159221159222159223159224159225159226159227159228159229159230159231159232159233159234159235159236159237159238159239159240159241159242159243159244159245159246159247159248159249159250159251159252159253159254159255159256159257159258159259159260159261159262159263159264159265159266159267159268159269159270159271159272159273159274159275159276159277159278159279159280159281159282159283159284159285159286159287159288159289159290159291159292159293159294159295159296159297159298159299159300159301159302159303159304159305159306159307159308159309159310159311159312159313159314159315159316159317159318159319159320159321159322159323159324159325159326159327159328159329159330159331159332159333159334159335159336159337159338159339159340159341159342159343159344159345159346159347159348159349159350159351159352159353159354159355159356159357159358159359159360159361159362159363159364159365159366159367159368159369159370159371159372159373159374159375159376159377159378159379159380159381159382159383159384159385159386159387159388159389159390159391159392159393159394159395159396159397159398159399159400159401159402159403159404159405159406159407159408159409159410159411159412159413159414159415159416159417159418159419159420159421159422159423159424159425159426159427159428159429159430159431159432159433159434159435159436159437159438159439159440159441159442159443159444159445159446159447159448159449159450159451159452159453159454159455159456159457159458159459159460159461159462159463159464159465159466159467159468159469159470159471159472159473159474159475159476159477159478159479159480159481159482159483159484159485159486159487159488159489159490159491159492159493159494159495159496159497159498159499159500159501159502159503159504159505159506159507159508159509159510159511159512159513159514159515159516159517159518159519159520159521159522159523159524159525159526159527159528159529159530159531159532159533159534159535159536159537159538159539159540159541159542159543159544159545159546159547159548159549159550159551159552159553159554159555159556159557159558159559159560159561159562159563159564159565159566159567159568159569159570159571159572159573159574159575159576159577159578159579159580159581159582159583159584159585159586159587159588159589159590159591159592159593159594159595159596159597159598159599159600159601159602159603159604159605159606159607159608159609159610159611159612159613159614159615159616159617159618159619159620159621159622159623159624159625159626159627159628159629159630159631159632159633159634159635159636159637159638159639159640159641159642159643159644159645159646159647159648159649159650159651159652159653159654159655159656159657159658159659159660159661159662159663159664159665159666159667159668159669159670159671159672159673159674159675159676159677159678159679159680159681159682159683159684159685159686159687159688159689159690159691159692159693159694159695159696159697159698159699159700159701159702159703159704159705159706159707159708159709159710159711159712159713159714159715159716159717159718159719159720159721159722159723159724159725159726159727159728159729159730159731159732159733159734159735159736159737159738159739159740159741159742159743159744159745159746159747159748159749159750159751159752159753159754159755159756159757159758159759159760159761159762159763159764159765159766159767159768159769159770159771159772159773159774159775159776159777159778159779159780159781159782159783159784159785159786159787159788159789159790159791159792159793159794159795159796159797159798159799159800159801159802159803159804159805159806159807159808159809159810159811159812159813159814159815159816159817159818159819159820159821159822159823159824159825159826159827159828159829159830159831159832159833159834159835159836159837159838159839159840159841159842159843159844159845159846159847159848159849159850159851159852159853159854159855159856159857159858159859159860159861159862159863159864159865159866159867159868159869159870159871159872159873159874159875159876159877159878159879159880159881159882159883159884159885159886159887159888159889159890159891159892159893159894159895159896159897159898159899159900159901159902159903159904159905159906159907159908159909159910159911159912159913159914159915159916159917159918159919159920159921159922159923159924159925159926159927159928159929159930159931159932159933159934159935159936159937159938159939159940159941159942159943159944159945159946159947159948159949159950159951159952159953159954159955159956159957159958159959159960159961159962159963159964159965159966159967159968159969159970159971159972159973159974159975159976159977159978159979159980159981159982159983159984159985159986159987159988159989159990159991159992159993159994159995159996159997159998159999160000160001160002160003160004160005160006160007160008160009160010160011160012160013160014160015160016160017160018160019160020160021160022160023160024160025160026160027160028160029160030160031160032160033160034160035160036160037160038160039160040160041160042160043160044160045160046160047160048160049160050160051160052160053160054160055160056160057160058160059160060160061160062160063160064160065160066160067160068160069160070160071160072160073160074160075160076160077160078160079160080160081160082160083160084160085160086160087160088160089160090160091160092160093160094160095160096160097160098160099160100160101160102160103160104160105160106160107160108160109160110160111160112160113160114160115160116160117160118160119160120160121160122160123160124160125160126160127160128160129160130160131160132160133160134160135160136160137160138160139160140160141160142160143160144160145160146160147160148160149160150160151160152160153160154160155160156160157160158160159160160160161160162160163160164160165160166160167160168160169160170160171160172160173160174160175160176160177160178160179160180160181160182160183160184160185160186160187160188160189160190160191160192160193160194160195160196160197160198160199160200160201160202160203160204160205160206160207160208160209160210160211160212160213160214160215160216160217160218160219160220160221160222160223160224160225160226160227160228160229160230160231160232160233160234160235160236160237160238160239160240160241160242160243160244160245160246160247160248160249160250160251160252160253160254160255160256160257160258160259160260160261160262160263160264160265160266160267160268160269160270160271160272160273160274160275160276160277160278160279160280160281160282160283160284160285160286160287160288160289160290160291160292160293160294160295160296160297160298160299160300160301160302160303160304160305160306160307160308160309160310160311160312160313160314160315160316160317160318160319160320160321160322160323160324160325160326160327160328160329160330160331160332160333160334160335160336160337160338160339160340160341160342160343160344160345160346160347160348160349160350160351160352160353160354160355160356160357160358160359160360160361160362160363160364160365160366160367160368160369160370160371160372160373160374160375160376160377160378160379160380160381160382160383160384160385160386160387160388160389160390160391160392160393160394160395160396160397160398160399160400160401160402160403160404160405160406160407160408160409160410160411160412160413160414160415160416160417160418160419160420160421160422160423160424160425160426160427160428160429160430160431160432160433160434160435160436160437160438160439160440160441160442160443160444160445160446160447160448160449160450160451160452160453160454160455160456160457160458160459160460160461160462160463160464160465160466160467160468160469160470160471160472160473160474160475160476160477160478160479160480160481160482160483160484160485160486160487160488160489160490160491160492160493160494160495160496160497160498160499160500160501160502160503160504160505160506160507160508160509160510160511160512160513160514160515160516160517160518160519160520160521160522160523160524160525160526160527160528160529160530160531160532160533160534160535160536160537160538160539160540160541160542160543160544160545160546160547160548160549160550160551160552160553160554160555160556160557160558160559160560160561160562160563160564160565160566160567160568160569160570160571160572160573160574160575160576160577160578160579160580160581160582160583160584160585160586160587160588160589160590160591160592160593160594160595160596160597160598160599160600160601160602160603160604160605160606160607160608160609160610160611160612160613160614160615160616160617160618160619160620160621160622160623160624160625160626160627160628160629160630160631160632160633160634160635160636160637160638160639160640160641160642160643160644160645160646160647160648160649160650160651160652160653160654160655160656160657160658160659160660160661160662160663160664160665160666160667160668160669160670160671160672160673160674160675160676160677160678160679160680160681160682160683160684160685160686160687160688160689160690160691160692160693160694160695160696160697160698160699160700160701160702160703160704160705160706160707160708160709160710160711160712160713160714160715160716160717160718160719160720160721160722160723160724160725160726160727160728160729160730160731160732160733160734160735160736160737160738160739160740160741160742160743160744160745160746160747160748160749160750160751160752160753160754160755160756160757160758160759160760160761160762160763160764160765160766160767160768160769160770160771160772160773160774160775160776160777160778160779160780160781160782160783160784160785160786160787160788160789160790160791160792160793160794160795160796160797160798160799160800160801160802160803160804160805160806160807160808160809160810160811160812160813160814160815160816160817160818160819160820160821160822160823160824160825160826160827160828160829160830160831160832160833160834160835160836160837160838160839160840160841160842160843160844160845160846160847160848160849160850160851160852160853160854160855160856160857160858160859160860160861160862160863160864160865160866160867160868160869160870160871160872160873160874160875160876160877160878160879160880160881160882160883160884160885160886160887160888160889160890160891160892160893160894160895160896160897160898160899160900160901160902160903160904160905160906160907160908160909160910160911160912160913160914160915160916160917160918160919160920160921160922160923160924160925160926160927160928160929160930160931160932160933160934160935160936160937160938160939160940160941160942160943160944160945160946160947160948160949160950160951160952160953160954160955160956160957160958160959160960160961160962160963160964160965160966160967160968160969160970160971160972160973160974160975160976160977160978160979160980160981160982160983160984160985160986160987160988160989160990160991160992160993160994160995160996160997160998160999161000161001161002161003161004161005161006161007161008161009161010161011161012161013161014161015161016161017161018161019161020161021161022161023161024161025161026161027161028161029161030161031161032161033161034161035161036161037161038161039161040161041161042161043161044161045161046161047161048161049161050161051161052161053161054161055161056161057161058161059161060161061161062161063161064161065161066161067161068161069161070161071161072161073161074161075161076161077161078161079161080161081161082161083161084161085161086161087161088161089161090161091161092161093161094161095161096161097161098161099161100161101161102161103161104161105161106161107161108161109161110161111161112161113161114161115161116161117161118161119161120161121161122161123161124161125161126161127161128161129161130161131161132161133161134161135161136161137161138161139161140161141161142161143161144161145161146161147161148161149161150161151161152161153161154161155161156161157161158161159161160161161161162161163161164161165161166161167161168161169161170161171161172161173161174161175161176161177161178161179161180161181161182161183161184161185161186161187161188161189161190161191161192161193161194161195161196161197161198161199161200161201161202161203161204161205161206161207161208161209161210161211161212161213161214161215161216161217161218161219161220161221161222161223161224161225161226161227161228161229161230161231161232161233161234161235161236161237161238161239161240161241161242161243161244161245161246161247161248161249161250161251161252161253161254161255161256161257161258161259161260161261161262161263161264161265161266161267161268161269161270161271161272161273161274161275161276161277161278161279161280161281161282161283161284161285161286161287161288161289161290161291161292161293161294161295161296161297161298161299161300161301161302161303161304161305161306161307161308161309161310161311161312161313161314161315161316161317161318161319161320161321161322161323161324161325161326161327161328161329161330161331161332161333161334161335161336161337161338161339161340161341161342161343161344161345161346161347161348161349161350161351161352161353161354161355161356161357161358161359161360161361161362161363161364161365161366161367161368161369161370161371161372161373161374161375161376161377161378161379161380161381161382161383161384161385161386161387161388161389161390161391161392161393161394161395161396161397161398161399161400161401161402161403161404161405161406161407161408161409161410161411161412161413161414161415161416161417161418161419161420161421161422161423161424161425161426161427161428161429161430161431161432161433161434161435161436161437161438161439161440161441161442161443161444161445161446161447161448161449161450161451161452161453161454161455161456161457161458161459161460161461161462161463161464161465161466161467161468161469161470161471161472161473161474161475161476161477161478161479161480161481161482161483161484161485161486161487161488161489161490161491161492161493161494161495161496161497161498161499161500161501161502161503161504161505161506161507161508161509161510161511161512161513161514161515161516161517161518161519161520161521161522161523161524161525161526161527161528161529161530161531161532161533161534161535161536161537161538161539161540161541161542161543161544161545161546161547161548161549161550161551161552161553161554161555161556161557161558161559161560161561161562161563161564161565161566161567161568161569161570161571161572161573161574161575161576161577161578161579161580161581161582161583161584161585161586161587161588161589161590161591161592161593161594161595161596161597161598161599161600161601161602161603161604161605161606161607161608161609161610161611161612161613161614161615161616161617161618161619161620161621161622161623161624161625161626161627161628161629161630161631161632161633161634161635161636161637161638161639161640161641161642161643161644161645161646161647161648161649161650161651161652161653161654161655161656161657161658161659161660161661161662161663161664161665161666161667161668161669161670161671161672161673161674161675161676161677161678161679161680161681161682161683161684161685161686161687161688161689161690161691161692161693161694161695161696161697161698161699161700161701161702161703161704161705161706161707161708161709161710161711161712161713161714161715161716161717161718161719161720161721161722161723161724161725161726161727161728161729161730161731161732161733161734161735161736161737161738161739161740161741161742161743161744161745161746161747161748161749161750161751161752161753161754161755161756161757161758161759161760161761161762161763161764161765161766161767161768161769161770161771161772161773161774161775161776161777161778161779161780161781161782161783161784161785161786161787161788161789161790161791161792161793161794161795161796161797161798161799161800161801161802161803161804161805161806161807161808161809161810161811161812161813161814161815161816161817161818161819161820161821161822161823161824161825161826161827161828161829161830161831161832161833161834161835161836161837161838161839161840161841161842161843161844161845161846161847161848161849161850161851161852161853161854161855161856161857161858161859161860161861161862161863161864161865161866161867161868161869161870161871161872161873161874161875161876161877161878161879161880161881161882161883161884161885161886161887161888161889161890161891161892161893161894161895161896161897161898161899161900161901161902161903161904161905161906161907161908161909161910161911161912161913161914161915161916161917161918161919161920161921161922161923161924161925161926161927161928161929161930161931161932161933161934161935161936161937161938161939161940161941161942161943161944161945161946161947161948161949161950161951161952161953161954161955161956161957161958161959161960161961161962161963161964161965161966161967161968161969161970161971161972161973161974161975161976161977161978161979161980161981161982161983161984161985161986161987161988161989161990161991161992161993161994161995161996161997161998161999162000162001162002162003162004162005162006162007162008162009162010162011162012162013162014162015162016162017162018162019162020162021162022162023162024162025162026162027162028162029162030162031162032162033162034162035162036162037162038162039162040162041162042162043162044162045162046162047162048162049162050162051162052162053162054162055162056162057162058162059162060162061162062162063162064162065162066162067162068162069162070162071162072162073162074162075162076162077162078162079162080162081162082162083162084162085162086162087162088162089162090162091162092162093162094162095162096162097162098162099162100162101162102162103162104162105162106162107162108162109162110162111162112162113162114162115162116162117162118162119162120162121162122162123162124162125162126162127162128162129162130162131162132162133162134162135162136162137162138162139162140162141162142162143162144162145162146162147162148162149162150162151162152162153162154162155162156162157162158162159162160162161162162162163162164162165162166162167162168162169162170162171162172162173162174162175162176162177162178162179162180162181162182162183162184162185162186162187162188162189162190162191162192162193162194162195162196162197162198162199162200162201162202162203162204162205162206162207162208162209162210162211162212162213162214162215162216162217162218162219162220162221162222162223162224162225162226162227162228162229162230162231162232162233162234162235162236162237162238162239162240162241162242162243162244162245162246162247162248162249162250162251162252162253162254162255162256162257162258162259162260162261162262162263162264162265162266162267162268162269162270162271162272162273162274162275162276162277162278162279162280162281162282162283162284162285162286162287162288162289162290162291162292162293162294162295162296162297162298162299162300162301162302162303162304162305162306162307162308162309162310162311162312162313162314162315162316162317162318162319162320162321162322162323162324162325162326162327162328162329162330162331162332162333162334162335162336162337162338162339162340162341162342162343162344162345162346162347162348162349162350162351162352162353162354162355162356162357162358162359162360162361162362162363162364162365162366162367162368162369162370162371162372162373162374162375162376162377162378162379162380162381162382162383162384162385162386162387162388162389162390162391162392162393162394162395162396162397162398162399162400162401162402162403162404162405162406162407162408162409162410162411162412162413162414162415162416162417162418162419162420162421162422162423162424162425162426162427162428162429162430162431162432162433162434162435162436162437162438162439162440162441162442162443162444162445162446162447162448162449162450162451162452162453162454162455162456162457162458162459162460162461162462162463162464162465162466162467162468162469162470162471162472162473162474162475162476162477162478162479162480162481162482162483162484162485162486162487162488162489162490162491162492162493162494162495162496162497162498162499162500162501162502162503162504162505162506162507162508162509162510162511162512162513162514162515162516162517162518162519162520162521162522162523162524162525162526162527162528162529162530162531162532162533162534162535162536162537162538162539162540162541162542162543162544162545162546162547162548162549162550162551162552162553162554162555162556162557162558162559162560162561162562162563162564162565162566162567162568162569162570162571162572162573162574162575162576162577162578162579162580162581162582162583162584162585162586162587162588162589162590162591162592162593162594162595162596162597162598162599162600162601162602162603162604162605162606162607162608162609162610162611162612162613162614162615162616162617162618162619162620162621162622162623162624162625162626162627162628162629162630162631162632162633162634162635162636162637162638162639162640162641162642162643162644162645162646162647162648162649162650162651162652162653162654162655162656162657162658162659162660162661162662162663162664162665162666162667162668162669162670162671162672162673162674162675162676162677162678162679162680162681162682162683162684162685162686162687162688162689162690162691162692162693162694162695162696162697162698162699162700162701162702162703162704162705162706162707162708162709162710162711162712162713162714162715162716162717162718162719162720162721162722162723162724162725162726162727162728162729162730162731162732162733162734162735162736162737162738162739162740162741162742162743162744162745162746162747162748162749162750162751162752162753162754162755162756162757162758162759162760162761162762162763162764162765162766162767162768162769162770162771162772162773162774162775162776162777162778162779162780162781162782162783162784162785162786162787162788162789162790162791162792162793162794162795162796162797162798162799162800162801162802162803162804162805162806162807162808162809162810162811162812162813162814162815162816162817162818162819162820162821162822162823162824162825162826162827162828162829162830162831162832162833162834162835162836162837162838162839162840162841162842162843162844162845162846162847162848162849162850162851162852162853162854162855162856162857162858162859162860162861162862162863162864162865162866162867162868162869162870162871162872162873162874162875162876162877162878162879162880162881162882162883162884162885162886162887162888162889162890162891162892162893162894162895162896162897162898162899162900162901162902162903162904162905162906162907162908162909162910162911162912162913162914162915162916162917162918162919162920162921162922162923162924162925162926162927162928162929162930162931162932162933162934162935162936162937162938162939162940162941162942162943162944162945162946162947162948162949162950162951162952162953162954162955162956162957162958162959162960162961162962162963162964162965162966162967162968162969162970162971162972162973162974162975162976162977162978162979162980162981162982162983162984162985162986162987162988162989162990162991162992162993162994162995162996162997162998162999163000163001163002163003163004163005163006163007163008163009163010163011163012163013163014163015163016163017163018163019163020163021163022163023163024163025163026163027163028163029163030163031163032163033163034163035163036163037163038163039163040163041163042163043163044163045163046163047163048163049163050163051163052163053163054163055163056163057163058163059163060163061163062163063163064163065163066163067163068163069163070163071163072163073163074163075163076163077163078163079163080163081163082163083163084163085163086163087163088163089163090163091163092163093163094163095163096163097163098163099163100163101163102163103163104163105163106163107163108163109163110163111163112163113163114163115163116163117163118163119163120163121163122163123163124163125163126163127163128163129163130163131163132163133163134163135163136163137163138163139163140163141163142163143163144163145163146163147163148163149163150163151163152163153163154163155163156163157163158163159163160163161163162163163163164163165163166163167163168163169163170163171163172163173163174163175163176163177163178163179163180163181163182163183163184163185163186163187163188163189163190163191163192163193163194163195163196163197163198163199163200163201163202163203163204163205163206163207163208163209163210163211163212163213163214163215163216163217163218163219163220163221163222163223163224163225163226163227163228163229163230163231163232163233163234163235163236163237163238163239163240163241163242163243163244163245163246163247163248163249163250163251163252163253163254163255163256163257163258163259163260163261163262163263163264163265163266163267163268163269163270163271163272163273163274163275163276163277163278163279163280163281163282163283163284163285163286163287163288163289163290163291163292163293163294163295163296163297163298163299163300163301163302163303163304163305163306163307163308163309163310163311163312163313163314163315163316163317163318163319163320163321163322163323163324163325163326163327163328163329163330163331163332163333163334163335163336163337163338163339163340163341163342163343163344163345163346163347163348163349163350163351163352163353163354163355163356163357163358163359163360163361163362163363163364163365163366163367163368163369163370163371163372163373163374163375163376163377163378163379163380163381163382163383163384163385163386163387163388163389163390163391163392163393163394163395163396163397163398163399163400163401163402163403163404163405163406163407163408163409163410163411163412163413163414163415163416163417163418163419163420163421163422163423163424163425163426163427163428163429163430163431163432163433163434163435163436163437163438163439163440163441163442163443163444163445163446163447163448163449163450163451163452163453163454163455163456163457163458163459163460163461163462163463163464163465163466163467163468163469163470163471163472163473163474163475163476163477163478163479163480163481163482163483163484163485163486163487163488163489163490163491163492163493163494163495163496163497163498163499163500163501163502163503163504163505163506163507163508163509163510163511163512163513163514163515163516163517163518163519163520163521163522163523163524163525163526163527163528163529163530163531163532163533163534163535163536163537163538163539163540163541163542163543163544163545163546163547163548163549163550163551163552163553163554163555163556163557163558163559163560163561163562163563163564163565163566163567163568163569163570163571163572163573163574163575163576163577163578163579163580163581163582163583163584163585163586163587163588163589163590163591163592163593163594163595163596163597163598163599163600163601163602163603163604163605163606163607163608163609163610163611163612163613163614163615163616163617163618163619163620163621163622163623163624163625163626163627163628163629163630163631163632163633163634163635163636163637163638163639163640163641163642163643163644163645163646163647163648163649163650163651163652163653163654163655163656163657163658163659163660163661163662163663163664163665163666163667163668163669163670163671163672163673163674163675163676163677163678163679163680163681163682163683163684163685163686163687163688163689163690163691163692163693163694163695163696163697163698163699163700163701163702163703163704163705163706163707163708163709163710163711163712163713163714163715163716163717163718163719163720163721163722163723163724163725163726163727163728163729163730163731163732163733163734163735163736163737163738163739163740163741163742163743163744163745163746163747163748163749163750163751163752163753163754163755163756163757163758163759163760163761163762163763163764163765163766163767163768163769163770163771163772163773163774163775163776163777163778163779163780163781163782163783163784163785163786163787163788163789163790163791163792163793163794163795163796163797163798163799163800163801163802163803163804163805163806163807163808163809163810163811163812163813163814163815163816163817163818163819163820163821163822163823163824163825163826163827163828163829163830163831163832163833163834163835163836163837163838163839163840163841163842163843163844163845163846163847163848163849163850163851163852163853163854163855163856163857163858163859163860163861163862163863163864163865163866163867163868163869163870163871163872163873163874163875163876163877163878163879163880163881163882163883163884163885163886163887163888163889163890163891163892163893163894163895163896163897163898163899163900163901163902163903163904163905163906163907163908163909163910163911163912163913163914163915163916163917163918163919163920163921163922163923163924163925163926163927163928163929163930163931163932163933163934163935163936163937163938163939163940163941163942163943163944163945163946163947163948163949163950163951163952163953163954163955163956163957163958163959163960163961163962163963163964163965163966163967163968163969163970163971163972163973163974163975163976163977163978163979163980163981163982163983163984163985163986163987163988163989163990163991163992163993163994163995163996163997163998163999164000164001164002164003164004164005164006164007164008164009164010164011164012164013164014164015164016164017164018164019164020164021164022164023164024164025164026164027164028164029164030164031164032164033164034164035164036164037164038164039164040164041164042164043164044164045164046164047164048164049164050164051164052164053164054164055164056164057164058164059164060164061164062164063164064164065164066164067164068164069164070164071164072164073164074164075164076164077164078164079164080164081164082164083164084164085164086164087164088164089164090164091164092164093164094164095164096164097164098164099164100164101164102164103164104164105164106164107164108164109164110164111164112164113164114164115164116164117164118164119164120164121164122164123164124164125164126164127164128164129164130164131164132164133164134164135164136164137164138164139164140164141164142164143164144164145164146164147164148164149164150164151164152164153164154164155164156164157164158164159164160164161164162164163164164164165164166164167164168164169164170164171164172164173164174164175164176164177164178164179164180164181164182164183164184164185164186164187164188164189164190164191164192164193164194164195164196164197164198164199164200164201164202164203164204164205164206164207164208164209164210164211164212164213164214164215164216164217164218164219164220164221164222164223164224164225164226164227164228164229164230164231164232164233164234164235164236164237164238164239164240164241164242164243164244164245164246164247164248164249164250164251164252164253164254164255164256164257164258164259164260164261164262164263164264164265164266164267164268164269164270164271164272164273164274164275164276164277164278164279164280164281164282164283164284164285164286164287164288164289164290164291164292164293164294164295164296164297164298164299164300164301164302164303164304164305164306164307164308164309164310164311164312164313164314164315164316164317164318164319164320164321164322164323164324164325164326164327164328164329164330164331164332164333164334164335164336164337164338164339164340164341164342164343164344164345164346164347164348164349164350164351164352164353164354164355164356164357164358164359164360164361164362164363164364164365164366164367164368164369164370164371164372164373164374164375164376164377164378164379164380164381164382164383164384164385164386164387164388164389164390164391164392164393164394164395164396164397164398164399164400164401164402164403164404164405164406164407164408164409164410164411164412164413164414164415164416164417164418164419164420164421164422164423164424164425164426164427164428164429164430164431164432164433164434164435164436164437164438164439164440164441164442164443164444164445164446164447164448164449164450164451164452164453164454164455164456164457164458164459164460164461164462164463164464164465164466164467164468164469164470164471164472164473164474164475164476164477164478164479164480164481164482164483164484164485164486164487164488164489164490164491164492164493164494164495164496164497164498164499164500164501164502164503164504164505164506164507164508164509164510164511164512164513164514164515164516164517164518164519164520164521164522164523164524164525164526164527164528164529164530164531164532164533164534164535164536164537164538164539164540164541164542164543164544164545164546164547164548164549164550164551164552164553164554164555164556164557164558164559164560164561164562164563164564164565164566164567164568164569164570164571164572164573164574164575164576164577164578164579164580164581164582164583164584164585164586164587164588164589164590164591164592164593164594164595164596164597164598164599164600164601164602164603164604164605164606164607164608164609164610164611164612164613164614164615164616164617164618164619164620164621164622164623164624164625164626164627164628164629164630164631164632164633164634164635164636164637164638164639164640164641164642164643164644164645164646164647164648164649164650164651164652164653164654164655164656164657164658164659164660164661164662164663164664164665164666164667164668164669164670164671164672164673164674164675164676164677164678164679164680164681164682164683164684164685164686164687164688164689164690164691164692164693164694164695164696164697164698164699164700164701164702164703164704164705164706164707164708164709164710164711164712164713164714164715164716164717164718164719164720164721164722164723164724164725164726164727164728164729164730164731164732164733164734164735164736164737164738164739164740164741164742164743164744164745164746164747164748164749164750164751164752164753164754164755164756164757164758164759164760164761164762164763164764164765164766164767164768164769164770164771164772164773164774164775164776164777164778164779164780164781164782164783164784164785164786164787164788164789164790164791164792164793164794164795164796164797164798164799164800164801164802164803164804164805164806164807164808164809164810164811164812164813164814164815164816164817164818164819164820164821164822164823164824164825164826164827164828164829164830164831164832164833164834164835164836164837164838164839164840164841164842164843164844164845164846164847164848164849164850164851164852164853164854164855164856164857164858164859164860164861164862164863164864164865164866164867164868164869164870164871164872164873164874164875164876164877164878164879164880164881164882164883164884164885164886164887164888164889164890164891164892164893164894164895164896164897164898164899164900164901164902164903164904164905164906164907164908164909164910164911164912164913164914164915164916164917164918164919164920164921164922164923164924164925164926164927164928164929164930164931164932164933164934164935164936164937164938164939164940164941164942164943164944164945164946164947164948164949164950164951164952164953164954164955164956164957164958164959164960164961164962164963164964164965164966164967164968164969164970164971164972164973164974164975164976164977164978164979164980164981164982164983164984164985164986164987164988164989164990164991164992164993164994164995164996164997164998164999165000165001165002165003165004165005165006165007165008165009165010165011165012165013165014165015165016165017165018165019165020165021165022165023165024165025165026165027165028165029165030165031165032165033165034165035165036165037165038165039165040165041165042165043165044165045165046165047165048165049165050165051165052165053165054165055165056165057165058165059165060165061165062165063165064165065165066165067165068165069165070165071165072165073165074165075165076165077165078165079165080165081165082165083165084165085165086165087165088165089165090165091165092165093165094165095165096165097165098165099165100165101165102165103165104165105165106165107165108165109165110165111165112165113165114165115165116165117165118165119165120165121165122165123165124165125165126165127165128165129165130165131165132165133165134165135165136165137165138165139165140165141165142165143165144165145165146165147165148165149165150165151165152165153165154165155165156165157165158165159165160165161165162165163165164165165165166165167165168165169165170165171165172165173165174165175165176165177165178165179165180165181165182165183165184165185165186165187165188165189165190165191165192165193165194165195165196165197165198165199165200165201165202165203165204165205165206165207165208165209165210165211165212165213165214165215165216165217165218165219165220165221165222165223165224165225165226165227165228165229165230165231165232165233165234165235165236165237165238165239165240165241165242165243165244165245165246165247165248165249165250165251165252165253165254165255165256165257165258165259165260165261165262165263165264165265165266165267165268165269165270165271165272165273165274165275165276165277165278165279165280165281165282165283165284165285165286165287165288165289165290165291165292165293165294165295165296165297165298165299165300165301165302165303165304165305165306165307165308165309165310165311165312165313165314165315165316165317165318165319165320165321165322165323165324165325165326165327165328165329165330165331165332165333165334165335165336165337165338165339165340165341165342165343165344165345165346165347165348165349165350165351165352165353165354165355165356165357165358165359165360165361165362165363165364165365165366165367165368165369165370165371165372165373165374165375165376165377165378165379165380165381165382165383165384165385165386165387165388165389165390165391165392165393165394165395165396165397165398165399165400165401165402165403165404165405165406165407165408165409165410165411165412165413165414165415165416165417165418165419165420165421165422165423165424165425165426165427165428165429165430165431165432165433165434165435165436165437165438165439165440165441165442165443165444165445165446165447165448165449165450165451165452165453165454165455165456165457165458165459165460165461165462165463165464165465165466165467165468165469165470165471165472165473165474165475165476165477165478165479165480165481165482165483165484165485165486165487165488165489165490165491165492165493165494165495165496165497165498165499165500165501165502165503165504165505165506165507165508165509165510165511165512165513165514165515165516165517165518165519165520165521165522165523165524165525165526165527165528165529165530165531165532165533165534165535165536165537165538165539165540165541165542165543165544165545165546165547165548165549165550165551165552165553165554165555165556165557165558165559165560165561165562165563165564165565165566165567165568165569165570165571165572165573165574165575165576165577165578165579165580165581165582165583165584165585165586165587165588165589165590165591165592165593165594165595165596165597165598165599165600165601165602165603165604165605165606165607165608165609165610165611165612165613165614165615165616165617165618165619165620165621165622165623165624165625165626165627165628165629165630165631165632165633165634165635165636165637165638165639165640165641165642165643165644165645165646165647165648165649165650165651165652165653165654165655165656165657165658165659165660165661165662165663165664165665165666165667165668165669165670165671165672165673165674165675165676165677165678165679165680165681165682165683165684165685165686165687165688165689165690165691165692165693165694165695165696165697165698165699165700165701165702165703165704165705165706165707165708165709165710165711165712165713165714165715165716165717165718165719165720165721165722165723165724165725165726165727165728165729165730165731165732165733165734165735165736165737165738165739165740165741165742165743165744165745165746165747165748165749165750165751165752165753165754165755165756165757165758165759165760165761165762165763165764165765165766165767165768165769165770165771165772165773165774165775165776165777165778165779165780165781165782165783165784165785165786165787165788165789165790165791165792165793165794165795165796165797165798165799165800165801165802165803165804165805165806165807165808165809165810165811165812165813165814165815165816165817165818165819165820165821165822165823165824165825165826165827165828165829165830165831165832165833165834165835165836165837165838165839165840165841165842165843165844165845165846165847165848165849165850165851165852165853165854165855165856165857165858165859165860165861165862165863165864165865165866165867165868165869165870165871165872165873165874165875165876165877165878165879165880165881165882165883165884165885165886165887165888165889165890165891165892165893165894165895165896165897165898165899165900165901165902165903165904165905165906165907165908165909165910165911165912165913165914165915165916165917165918165919165920165921165922165923165924165925165926165927165928165929165930165931165932165933165934165935165936165937165938165939165940165941165942165943165944165945165946165947165948165949165950165951165952165953165954165955165956165957165958165959165960165961165962165963165964165965165966165967165968165969165970165971165972165973165974165975165976165977165978165979165980165981165982165983165984165985165986165987165988165989165990165991165992165993165994165995165996165997165998165999166000166001166002166003166004166005166006166007166008166009166010166011166012166013166014166015166016166017166018166019166020166021166022166023166024166025166026166027166028166029166030166031166032166033166034166035166036166037166038166039166040166041166042166043166044166045166046166047166048166049166050166051166052166053166054166055166056166057166058166059166060166061166062166063166064166065166066166067166068166069166070166071166072166073166074166075166076166077166078166079166080166081166082166083166084166085166086166087166088166089166090166091166092166093166094166095166096166097166098166099166100166101166102166103166104166105166106166107166108166109166110166111166112166113166114166115166116166117166118166119166120166121166122166123166124166125166126166127166128166129166130166131166132166133166134166135166136166137166138166139166140166141166142166143166144166145166146166147166148166149166150166151166152166153166154166155166156166157166158166159166160166161166162166163166164166165166166166167166168166169166170166171166172166173166174166175166176166177166178166179166180166181166182166183166184166185166186166187166188166189166190166191166192166193166194166195166196166197166198166199166200166201166202166203166204166205166206166207166208166209166210166211166212166213166214166215166216166217166218166219166220166221166222166223166224166225166226166227166228166229166230166231166232166233166234166235166236166237166238166239166240166241166242166243166244166245166246166247166248166249166250166251166252166253166254166255166256166257166258166259166260166261166262166263166264166265166266166267166268166269166270166271166272166273166274166275166276166277166278166279166280166281166282166283166284166285166286166287166288166289166290166291166292166293166294166295166296166297166298166299166300166301166302166303166304166305166306166307166308166309166310166311166312166313166314166315166316166317166318166319166320166321166322166323166324166325166326166327166328166329166330166331166332166333166334166335166336166337166338166339166340166341166342166343166344166345166346166347166348166349166350166351166352166353166354166355166356166357166358166359166360166361166362166363166364166365166366166367166368166369166370166371166372166373166374166375166376166377166378166379166380166381166382166383166384166385166386166387166388166389166390166391166392166393166394166395166396166397166398166399166400166401166402166403166404166405166406166407166408166409166410166411166412166413166414166415166416166417166418166419166420166421166422166423166424166425166426166427166428166429166430166431166432166433166434166435166436166437166438166439166440166441166442166443166444166445166446166447166448166449166450166451166452166453166454166455166456166457166458166459166460166461166462166463166464166465166466166467166468166469166470166471166472166473166474166475166476166477166478166479166480166481166482166483166484166485166486166487166488166489166490166491166492166493166494166495166496166497166498166499166500166501166502166503166504166505166506166507166508166509166510166511166512166513166514166515166516166517166518166519166520166521166522166523166524166525166526166527166528166529166530166531166532166533166534166535166536166537166538166539166540166541166542166543166544166545166546166547166548166549166550166551166552166553166554166555166556166557166558166559166560166561166562166563166564166565166566166567166568166569166570166571166572166573166574166575166576166577166578166579166580166581166582166583166584166585166586166587166588166589166590166591166592166593166594166595166596166597166598166599166600166601166602166603166604166605166606166607166608166609166610166611166612166613166614166615166616166617166618166619166620166621166622166623166624166625166626166627166628166629166630166631166632166633166634166635166636166637166638166639166640166641166642166643166644166645166646166647166648166649166650166651166652166653166654166655166656166657166658166659166660166661166662166663166664166665166666166667166668166669166670166671166672166673166674166675166676166677166678166679166680166681166682166683166684166685166686166687166688166689166690166691166692166693166694166695166696166697166698166699166700166701166702166703166704166705166706166707166708166709166710166711166712166713166714166715166716166717166718166719166720166721166722166723166724166725166726166727166728166729166730166731166732166733166734166735166736166737166738166739166740166741166742166743166744166745166746166747166748166749166750166751166752166753166754166755166756166757166758166759166760166761166762166763166764166765166766166767166768166769166770166771166772166773166774166775166776166777166778166779166780166781166782166783166784166785166786166787166788166789166790166791166792166793166794166795166796166797166798166799166800166801166802166803166804166805166806166807166808166809166810166811166812166813166814166815166816166817166818166819166820166821166822166823166824166825166826166827166828166829166830166831166832166833166834166835166836166837166838166839166840166841166842166843166844166845166846166847166848166849166850166851166852166853166854166855166856166857166858166859166860166861166862166863166864166865166866166867166868166869166870166871166872166873166874166875166876166877166878166879166880166881166882166883166884166885166886166887166888166889166890166891166892166893166894166895166896166897166898166899166900166901166902166903166904166905166906166907166908166909166910166911166912166913166914166915166916166917166918166919166920166921166922166923166924166925166926166927166928166929166930166931166932166933166934166935166936166937166938166939166940166941166942166943166944166945166946166947166948166949166950166951166952166953166954166955166956166957166958166959166960166961166962166963166964166965166966166967166968166969166970166971166972166973166974166975166976166977166978166979166980166981166982166983166984166985166986166987166988166989166990166991166992166993166994166995166996166997166998166999167000167001167002167003167004167005167006167007167008167009167010167011167012167013167014167015167016167017167018167019167020167021167022167023167024167025167026167027167028167029167030167031167032167033167034167035167036167037167038167039167040167041167042167043167044167045167046167047167048167049167050167051167052167053167054167055167056167057167058167059167060167061167062167063167064167065167066167067167068167069167070167071167072167073167074167075167076167077167078167079167080167081167082167083167084167085167086167087167088167089167090167091167092167093167094167095167096167097167098167099167100167101167102167103167104167105167106167107167108167109167110167111167112167113167114167115167116167117167118167119167120167121167122167123167124167125167126167127167128167129167130167131167132167133167134167135167136167137167138167139167140167141167142167143167144167145167146167147167148167149167150167151167152167153167154167155167156167157167158167159167160167161167162167163167164167165167166167167167168167169167170167171167172167173167174167175167176167177167178167179167180167181167182167183167184167185167186167187167188167189167190167191167192167193167194167195167196167197167198167199167200167201167202167203167204167205167206167207167208167209167210167211167212167213167214167215167216167217167218167219167220167221167222167223167224167225167226167227167228167229167230167231167232167233167234167235167236167237167238167239167240167241167242167243167244167245167246167247167248167249167250167251167252167253167254167255167256167257167258167259167260167261167262167263167264167265167266167267167268167269167270167271167272167273167274167275167276167277167278167279167280167281167282167283167284167285167286167287167288167289167290167291167292167293167294167295167296167297167298167299167300167301167302167303167304167305167306167307167308167309167310167311167312167313167314167315167316167317167318167319167320167321167322167323167324167325167326167327167328167329167330167331167332167333167334167335167336167337167338167339167340167341167342167343167344167345167346167347167348167349167350167351167352167353167354167355167356167357167358167359167360167361167362167363167364167365167366167367167368167369167370167371167372167373167374167375167376167377167378167379167380167381167382167383167384167385167386167387167388167389167390167391167392167393167394167395167396167397167398167399167400167401167402167403167404167405167406167407167408167409167410167411167412167413167414167415167416167417167418167419167420167421167422167423167424167425167426167427167428167429167430167431167432167433167434167435167436167437167438167439167440167441167442167443167444167445167446167447167448167449167450167451167452167453167454167455167456167457167458167459167460167461167462167463167464167465167466167467167468167469167470167471167472167473167474167475167476167477167478167479167480167481167482167483167484167485167486167487167488167489167490167491167492167493167494167495167496167497167498167499167500167501167502167503167504167505167506167507167508167509167510167511167512167513167514167515167516167517167518167519167520167521167522167523167524167525167526167527167528167529167530167531167532167533167534167535167536167537167538167539167540167541167542167543167544167545167546167547167548167549167550167551167552167553167554167555167556167557167558167559167560167561167562167563167564167565167566167567167568167569167570167571167572167573167574167575167576167577167578167579167580167581167582167583167584167585167586167587167588167589167590167591167592167593167594167595167596167597167598167599167600167601167602167603167604167605167606167607167608167609167610167611167612167613167614167615167616167617167618167619167620167621167622167623167624167625167626167627167628167629167630167631167632167633167634167635167636167637167638167639167640167641167642167643167644167645167646167647167648167649167650167651167652167653167654167655167656167657167658167659167660167661167662167663167664167665167666167667167668167669167670167671167672167673167674167675167676167677167678167679167680167681167682167683167684167685167686167687167688167689167690167691167692167693167694167695167696167697167698167699167700167701167702167703167704167705167706167707167708167709167710167711167712167713167714167715167716167717167718167719167720167721167722167723167724167725167726167727167728167729167730167731167732167733167734167735167736167737167738167739167740167741167742167743167744167745167746167747167748167749167750167751167752167753167754167755167756167757167758167759167760167761167762167763167764167765167766167767167768167769167770167771167772167773167774167775167776167777167778167779167780167781167782167783167784167785167786167787167788167789167790167791167792167793167794167795167796167797167798167799167800167801167802167803167804167805167806167807167808167809167810167811167812167813167814167815167816167817167818167819167820167821167822167823167824167825167826167827167828167829167830167831167832167833167834167835167836167837167838167839167840167841167842167843167844167845167846167847167848167849167850167851167852167853167854167855167856167857167858167859167860167861167862167863167864167865167866167867167868167869167870167871167872167873167874167875167876167877167878167879167880167881167882167883167884167885167886167887167888167889167890167891167892167893167894167895167896167897167898167899167900167901167902167903167904167905167906167907167908167909167910167911167912167913167914167915167916167917167918167919167920167921167922167923167924167925167926167927167928167929167930167931167932167933167934167935167936167937167938167939167940167941167942167943167944167945167946167947167948167949167950167951167952167953167954167955167956167957167958167959167960167961167962167963167964167965167966167967167968167969167970167971167972167973167974167975167976167977167978167979167980167981167982167983167984167985167986167987167988167989167990167991167992167993167994167995167996167997167998167999168000168001168002168003168004168005168006168007168008168009168010168011168012168013168014168015168016168017168018168019168020168021168022168023168024168025168026168027168028168029168030168031168032168033168034168035168036168037168038168039168040168041168042168043168044168045168046168047168048168049168050168051168052168053168054168055168056168057168058168059168060168061168062168063168064168065168066168067168068168069168070168071168072168073168074168075168076168077168078168079168080168081168082168083168084168085168086168087168088168089168090168091168092168093168094168095168096168097168098168099168100168101168102168103168104168105168106168107168108168109168110168111168112168113168114168115168116168117168118168119168120168121168122168123168124168125168126168127168128168129168130168131168132168133168134168135168136168137168138168139168140168141168142168143168144168145168146168147168148168149168150168151168152168153168154168155168156168157168158168159168160168161168162168163168164168165168166168167168168168169168170168171168172168173168174168175168176168177168178168179168180168181168182168183168184168185168186168187168188168189168190168191168192168193168194168195168196168197168198168199168200168201168202168203168204168205168206168207168208168209168210168211168212168213168214168215168216168217168218168219168220168221168222168223168224168225168226168227168228168229168230168231168232168233168234168235168236168237168238168239168240168241168242168243168244168245168246168247168248168249168250168251168252168253168254168255168256168257168258168259168260168261168262168263168264168265168266168267168268168269168270168271168272168273168274168275168276168277168278168279168280168281168282168283168284168285168286168287168288168289168290168291168292168293168294168295168296168297168298168299168300168301168302168303168304168305168306168307168308168309168310168311168312168313168314168315168316168317168318168319168320168321168322168323168324168325168326168327168328168329168330168331168332168333168334168335168336168337168338168339168340168341168342168343168344168345168346168347168348168349168350168351168352168353168354168355168356168357168358168359168360168361168362168363168364168365168366168367168368168369168370168371168372168373168374168375168376168377168378168379168380168381168382168383168384168385168386168387168388168389168390168391168392168393168394168395168396168397168398168399168400168401168402168403168404168405168406168407168408168409168410168411168412168413168414168415168416168417168418168419168420168421168422168423168424168425168426168427168428168429168430168431168432168433168434168435168436168437168438168439168440168441168442168443168444168445168446168447168448168449168450168451168452168453168454168455168456168457168458168459168460168461168462168463168464168465168466168467168468168469168470168471168472168473168474168475168476168477168478168479168480168481168482168483168484168485168486168487168488168489168490168491168492168493168494168495168496168497168498168499168500168501168502168503168504168505168506168507168508168509168510168511168512168513168514168515168516168517168518168519168520168521168522168523168524168525168526168527168528168529168530168531168532168533168534168535168536168537168538168539168540168541168542168543168544168545168546168547168548168549168550168551168552168553168554168555168556168557168558168559168560168561168562168563168564168565168566168567168568168569168570168571168572168573168574168575168576168577168578168579168580168581168582168583168584168585168586168587168588168589168590168591168592168593168594168595168596168597168598168599168600168601168602168603168604168605168606168607168608168609168610168611168612168613168614168615168616168617168618168619168620168621168622168623168624168625168626168627168628168629168630168631168632168633168634168635168636168637168638168639168640168641168642168643168644168645168646168647168648168649168650168651168652168653168654168655168656168657168658168659168660168661168662168663168664168665168666168667168668168669168670168671168672168673168674168675168676168677168678168679168680168681168682168683168684168685168686168687168688168689168690168691168692168693168694168695168696168697168698168699168700168701168702168703168704168705168706168707168708168709168710168711168712168713168714168715168716168717168718168719168720168721168722168723168724168725168726168727168728168729168730168731168732168733168734168735168736168737168738168739168740168741168742168743168744168745168746168747168748168749168750168751168752168753168754168755168756168757168758168759168760168761168762168763168764168765168766168767168768168769168770168771168772168773168774168775168776168777168778168779168780168781168782168783168784168785168786168787168788168789168790168791168792168793168794168795168796168797168798168799168800168801168802168803168804168805168806168807168808168809168810168811168812168813168814168815168816168817168818168819168820168821168822168823168824168825168826168827168828168829168830168831168832168833168834168835168836168837168838168839168840168841168842168843168844168845168846168847168848168849168850168851168852168853168854168855168856168857168858168859168860168861168862168863168864168865168866168867168868168869168870168871168872168873168874168875168876168877168878168879168880168881168882168883168884168885168886168887168888168889168890168891168892168893168894168895168896168897168898168899168900168901168902168903168904168905168906168907168908168909168910168911168912168913168914168915168916168917168918168919168920168921168922168923168924168925168926168927168928168929168930168931168932168933168934168935168936168937168938168939168940168941168942168943168944168945168946168947168948168949168950168951168952168953168954168955168956168957168958168959168960168961168962168963168964168965168966168967168968168969168970168971168972168973168974168975168976168977168978168979168980168981168982168983168984168985168986168987168988168989168990168991168992168993168994168995168996168997168998168999169000169001169002169003169004169005169006169007169008169009169010169011169012169013169014169015169016169017169018169019169020169021169022169023169024169025169026169027169028169029169030169031169032169033169034169035169036169037169038169039169040169041169042169043169044169045169046169047169048169049169050169051169052169053169054169055169056169057169058169059169060169061169062169063169064169065169066169067169068169069169070169071169072169073169074169075169076169077169078169079169080169081169082169083169084169085169086169087169088169089169090169091169092169093169094169095169096169097169098169099169100169101169102169103169104169105169106169107169108169109169110169111169112169113169114169115169116169117169118169119169120169121169122169123169124169125169126169127169128169129169130169131169132169133169134169135169136169137169138169139169140169141169142169143169144169145169146169147169148169149169150169151169152169153169154169155169156169157169158169159169160169161169162169163169164169165169166169167169168169169169170169171169172169173169174169175169176169177169178169179169180169181169182169183169184169185169186169187169188169189169190169191169192169193169194169195169196169197169198169199169200169201169202169203169204169205169206169207169208169209169210169211169212169213169214169215169216169217169218169219169220169221169222169223169224169225169226169227169228169229169230169231169232169233169234169235169236169237169238169239169240169241169242169243169244169245169246169247169248169249169250169251169252169253169254169255169256169257169258169259169260169261169262169263169264169265169266169267169268169269169270169271169272169273169274169275169276169277169278169279169280169281169282169283169284169285169286169287169288169289169290169291169292169293169294169295169296169297169298169299169300169301169302169303169304169305169306169307169308169309169310169311169312169313169314169315169316169317169318169319169320169321169322169323169324169325169326169327169328169329169330169331169332169333169334169335169336169337169338169339169340169341169342169343169344169345169346169347169348169349169350169351169352169353169354169355169356169357169358169359169360169361169362169363169364169365169366169367169368169369169370169371169372169373169374169375169376169377169378169379169380169381169382169383169384169385169386169387169388169389169390169391169392169393169394169395169396169397169398169399169400169401169402169403169404169405169406169407169408169409169410169411169412169413169414169415169416169417169418169419169420169421169422169423169424169425169426169427169428169429169430169431169432169433169434169435169436169437169438169439169440169441169442169443169444169445169446169447169448169449169450169451169452169453169454169455169456169457169458169459169460169461169462169463169464169465169466169467169468169469169470169471169472169473169474169475169476169477169478169479169480169481169482169483169484169485169486169487169488169489169490169491169492169493169494169495169496169497169498169499169500169501169502169503169504169505169506169507169508169509169510169511169512169513169514169515169516169517169518169519169520169521169522169523169524169525169526169527169528169529169530169531169532169533169534169535169536169537169538169539169540169541169542169543169544169545169546169547169548169549169550169551169552169553169554169555169556169557169558169559169560169561169562169563169564169565169566169567169568169569169570169571169572169573169574169575169576169577169578169579169580169581169582169583169584169585169586169587169588169589169590169591169592169593169594169595169596169597169598169599169600169601169602169603169604169605169606169607169608169609169610169611169612169613169614169615169616169617169618169619169620169621169622169623169624169625169626169627169628169629169630169631169632169633169634169635169636169637169638169639169640169641169642169643169644169645169646169647169648169649169650169651169652169653169654169655169656169657169658169659169660169661169662169663169664169665169666169667169668169669169670169671169672169673169674169675169676169677169678169679169680169681169682169683169684169685169686169687169688169689169690169691169692169693169694169695169696169697169698169699169700169701169702169703169704169705169706169707169708169709169710169711169712169713169714169715169716169717169718169719169720169721169722169723169724169725169726169727169728169729169730169731169732169733169734169735169736169737169738169739169740169741169742169743169744169745169746169747169748169749169750169751169752169753169754169755169756169757169758169759169760169761169762169763169764169765169766169767169768169769169770169771169772169773169774169775169776169777169778169779169780169781169782169783169784169785169786169787169788169789169790169791169792169793169794169795169796169797169798169799169800169801169802169803169804169805169806169807169808169809169810169811169812169813169814169815169816169817169818169819169820169821169822169823169824169825169826169827169828169829169830169831169832169833169834169835169836169837169838169839169840169841169842169843169844169845169846169847169848169849169850169851169852169853169854169855169856169857169858169859169860169861169862169863169864169865169866169867169868169869169870169871169872169873169874169875169876169877169878169879169880169881169882169883169884169885169886169887169888169889169890169891169892169893169894169895169896169897169898169899169900169901169902169903169904169905169906169907169908169909169910169911169912169913169914169915169916169917169918169919169920169921169922169923169924169925169926169927169928169929169930169931169932169933169934169935169936169937169938169939169940169941169942169943169944169945169946169947169948169949169950169951169952169953169954169955169956169957169958169959169960169961169962169963169964169965169966169967169968169969169970169971169972169973169974169975169976169977169978169979169980169981169982169983169984169985169986169987169988169989169990169991169992169993169994169995169996169997169998169999170000170001170002170003170004170005170006170007170008170009170010170011170012170013170014170015170016170017170018170019170020170021170022170023170024170025170026170027170028170029170030170031170032170033170034170035170036170037170038170039170040170041170042170043170044170045170046170047170048170049170050170051170052170053170054170055170056170057170058170059170060170061170062170063170064170065170066170067170068170069170070170071170072170073170074170075170076170077170078170079170080170081170082170083170084170085170086170087170088170089170090170091170092170093170094170095170096170097170098170099170100170101170102170103170104170105170106170107170108170109170110170111170112170113170114170115170116170117170118170119170120170121170122170123170124170125170126170127170128170129170130170131170132170133170134170135170136170137170138170139170140170141170142170143170144170145170146170147170148170149170150170151170152170153170154170155170156170157170158170159170160170161170162170163170164170165170166170167170168170169170170170171170172170173170174170175170176170177170178170179170180170181170182170183170184170185170186170187170188170189170190170191170192170193170194170195170196170197170198170199170200170201170202170203170204170205170206170207170208170209170210170211170212170213170214170215170216170217170218170219170220170221170222170223170224170225170226170227170228170229170230170231170232170233170234170235170236170237170238170239170240170241170242170243170244170245170246170247170248170249170250170251170252170253170254170255170256170257170258170259170260170261170262170263170264170265170266170267170268170269170270170271170272170273170274170275170276170277170278170279170280170281170282170283170284170285170286170287170288170289170290170291170292170293170294170295170296170297170298170299170300170301170302170303170304170305170306170307170308170309170310170311170312170313170314170315170316170317170318170319170320170321170322170323170324170325170326170327170328170329170330170331170332170333170334170335170336170337170338170339170340170341170342170343170344170345170346170347170348170349170350170351170352170353170354170355170356170357170358170359170360170361170362170363170364170365170366170367170368170369170370170371170372170373170374170375170376170377170378170379170380170381170382170383170384170385170386170387170388170389170390170391170392170393170394170395170396170397170398170399170400170401170402170403170404170405170406170407170408170409170410170411170412170413170414170415170416170417170418170419170420170421170422170423170424170425170426170427170428170429170430170431170432170433170434170435170436170437170438170439170440170441170442170443170444170445170446170447170448170449170450170451170452170453170454170455170456170457170458170459170460170461170462170463170464170465170466170467170468170469170470170471170472170473170474170475170476170477170478170479170480170481170482170483170484170485170486170487170488170489170490170491170492170493170494170495170496170497170498170499170500170501170502170503170504170505170506170507170508170509170510170511170512170513170514170515170516170517170518170519170520170521170522170523170524170525170526170527170528170529170530170531170532170533170534170535170536170537170538170539170540170541170542170543170544170545170546170547170548170549170550170551170552170553170554170555170556170557170558170559170560170561170562170563170564170565170566170567170568170569170570170571170572170573170574170575170576170577170578170579170580170581170582170583170584170585170586170587170588170589170590170591170592170593170594170595170596170597170598170599170600170601170602170603170604170605170606170607170608170609170610170611170612170613170614170615170616170617170618170619170620170621170622170623170624170625170626170627170628170629170630170631170632170633170634170635170636170637170638170639170640170641170642170643170644170645170646170647170648170649170650170651170652170653170654170655170656170657170658170659170660170661170662170663170664170665170666170667170668170669170670170671170672170673170674170675170676170677170678170679170680170681170682170683170684170685170686170687170688170689170690170691170692170693170694170695170696170697170698170699170700170701170702170703170704170705170706170707170708170709170710170711170712170713170714170715170716170717170718170719170720170721170722170723170724170725170726170727170728170729170730170731170732170733170734170735170736170737170738170739170740170741170742170743170744170745170746170747170748170749170750170751170752170753170754170755170756170757170758170759170760170761170762170763170764170765170766170767170768170769170770170771170772170773170774170775170776170777170778170779170780170781170782170783170784170785170786170787170788170789170790170791170792170793170794170795170796170797170798170799170800170801170802170803170804170805170806170807170808170809170810170811170812170813170814170815170816170817170818170819170820170821170822170823170824170825170826170827170828170829170830170831170832170833170834170835170836170837170838170839170840170841170842170843170844170845170846170847170848170849170850170851170852170853170854170855170856170857170858170859170860170861170862170863170864170865170866170867170868170869170870170871170872170873170874170875170876170877170878170879170880170881170882170883170884170885170886170887170888170889170890170891170892170893170894170895170896170897170898170899170900170901170902170903170904170905170906170907170908170909170910170911170912170913170914170915170916170917170918170919170920170921170922170923170924170925170926170927170928170929170930170931170932170933170934170935170936170937170938170939170940170941170942170943170944170945170946170947170948170949170950170951170952170953170954170955170956170957170958170959170960170961170962170963170964170965170966170967170968170969170970170971170972170973170974170975170976170977170978170979170980170981170982170983170984170985170986170987170988170989170990170991170992170993170994170995170996170997170998170999171000171001171002171003171004171005171006171007171008171009171010171011171012171013171014171015171016171017171018171019171020171021171022171023171024171025171026171027171028171029171030171031171032171033171034171035171036171037171038171039171040171041171042171043171044171045171046171047171048171049171050171051171052171053171054171055171056171057171058171059171060171061171062171063171064171065171066171067171068171069171070171071171072171073171074171075171076171077171078171079171080171081171082171083171084171085171086171087171088171089171090171091171092171093171094171095171096171097171098171099171100171101171102171103171104171105171106171107171108171109171110171111171112171113171114171115171116171117171118171119171120171121171122171123171124171125171126171127171128171129171130171131171132171133171134171135171136171137171138171139171140171141171142171143171144171145171146171147171148171149171150171151171152171153171154171155171156171157171158171159171160171161171162171163171164171165171166171167171168171169171170171171171172171173171174171175171176171177171178171179171180171181171182171183171184171185171186171187171188171189171190171191171192171193171194171195171196171197171198171199171200171201171202171203171204171205171206171207171208171209171210171211171212171213171214171215171216171217171218171219171220171221171222171223171224171225171226171227171228171229171230171231171232171233171234171235171236171237171238171239171240171241171242171243171244171245171246171247171248171249171250171251171252171253171254171255171256171257171258171259171260171261171262171263171264171265171266171267171268171269171270171271171272171273171274171275171276171277171278171279171280171281171282171283171284171285171286171287171288171289171290171291171292171293171294171295171296171297171298171299171300171301171302171303171304171305171306171307171308171309171310171311171312171313171314171315171316171317171318171319171320171321171322171323171324171325171326171327171328171329171330171331171332171333171334171335171336171337171338171339171340171341171342171343171344171345171346171347171348171349171350171351171352171353171354171355171356171357171358171359171360171361171362171363171364171365171366171367171368171369171370171371171372171373171374171375171376171377171378171379171380171381171382171383171384171385171386171387171388171389171390171391171392171393171394171395171396171397171398171399171400171401171402171403171404171405171406171407171408171409171410171411171412171413171414171415171416171417171418171419171420171421171422171423171424171425171426171427171428171429171430171431171432171433171434171435171436171437171438171439171440171441171442171443171444171445171446171447171448171449171450171451171452171453171454171455171456171457171458171459171460171461171462171463171464171465171466171467171468171469171470171471171472171473171474171475171476171477171478171479171480171481171482171483171484171485171486171487171488171489171490171491171492171493171494171495171496171497171498171499171500171501171502171503171504171505171506171507171508171509171510171511171512171513171514171515171516171517171518171519171520171521171522171523171524171525171526171527171528171529171530171531171532171533171534171535171536171537171538171539171540171541171542171543171544171545171546171547171548171549171550171551171552171553171554171555171556171557171558171559171560171561171562171563171564171565171566171567171568171569171570171571171572171573171574171575171576171577171578171579171580171581171582171583171584171585171586171587171588171589171590171591171592171593171594171595171596171597171598171599171600171601171602171603171604171605171606171607171608171609171610171611171612171613171614171615171616171617171618171619171620171621171622171623171624171625171626171627171628171629171630171631171632171633171634171635171636171637171638171639171640171641171642171643171644171645171646171647171648171649171650171651171652171653171654171655171656171657171658171659171660171661171662171663171664171665171666171667171668171669171670171671171672171673171674171675171676171677171678171679171680171681171682171683171684171685171686171687171688171689171690171691171692171693171694171695171696171697171698171699171700171701171702171703171704171705171706171707171708171709171710171711171712171713171714171715171716171717171718171719171720171721171722171723171724171725171726171727171728171729171730171731171732171733171734171735171736171737171738171739171740171741171742171743171744171745171746171747171748171749171750171751171752171753171754171755171756171757171758171759171760171761171762171763171764171765171766171767171768171769171770171771171772171773171774171775171776171777171778171779171780171781171782171783171784171785171786171787171788171789171790171791171792171793171794171795171796171797171798171799171800171801171802171803171804171805171806171807171808171809171810171811171812171813171814171815171816171817171818171819171820171821171822171823171824171825171826171827171828171829171830171831171832171833171834171835171836171837171838171839171840171841171842171843171844171845171846171847171848171849171850171851171852171853171854171855171856171857171858171859171860171861171862171863171864171865171866171867171868171869171870171871171872171873171874171875171876171877171878171879171880171881171882171883171884171885171886171887171888171889171890171891171892171893171894171895171896171897171898171899171900171901171902171903171904171905171906171907171908171909171910171911171912171913171914171915171916171917171918171919171920171921171922171923171924171925171926171927171928171929171930171931171932171933171934171935171936171937171938171939171940171941171942171943171944171945171946171947171948171949171950171951171952171953171954171955171956171957171958171959171960171961171962171963171964171965171966171967171968171969171970171971171972171973171974171975171976171977171978171979171980171981171982171983171984171985171986171987171988171989171990171991171992171993171994171995171996171997171998171999172000172001172002172003172004172005172006172007172008172009172010172011172012172013172014172015172016172017172018172019172020172021172022172023172024172025172026172027172028172029172030172031172032172033172034172035172036172037172038172039172040172041172042172043172044172045172046172047172048172049172050172051172052172053172054172055172056172057172058172059172060172061172062172063172064172065172066172067172068172069172070172071172072172073172074172075172076172077172078172079172080172081172082172083172084172085172086172087172088172089172090172091172092172093172094172095172096172097172098172099172100172101172102172103172104172105172106172107172108172109172110172111172112172113172114172115172116172117172118172119172120172121172122172123172124172125172126172127172128172129172130172131172132172133172134172135172136172137172138172139172140172141172142172143172144172145172146172147172148172149172150172151172152172153172154172155172156172157172158172159172160172161172162172163172164172165172166172167172168172169172170172171172172172173172174172175172176172177172178172179172180172181172182172183172184172185172186172187172188172189172190172191172192172193172194172195172196172197172198172199172200172201172202172203172204172205172206172207172208172209172210172211172212172213172214172215172216172217172218172219172220172221172222172223172224172225172226172227172228172229172230172231172232172233172234172235172236172237172238172239172240172241172242172243172244172245172246172247172248172249172250172251172252172253172254172255172256172257172258172259172260172261172262172263172264172265172266172267172268172269172270172271172272172273172274172275172276172277172278172279172280172281172282172283172284172285172286172287172288172289172290172291172292172293172294172295172296172297172298172299172300172301172302172303172304172305172306172307172308172309172310172311172312172313172314172315172316172317172318172319172320172321172322172323172324172325172326172327172328172329172330172331172332172333172334172335172336172337172338172339172340172341172342172343172344172345172346172347172348172349172350172351172352172353172354172355172356172357172358172359172360172361172362172363172364172365172366172367172368172369172370172371172372172373172374172375172376172377172378172379172380172381172382172383172384172385172386172387172388172389172390172391172392172393172394172395172396172397172398172399172400172401172402172403172404172405172406172407172408172409172410172411172412172413172414172415172416172417172418172419172420172421172422172423172424172425172426172427172428172429172430172431172432172433172434172435172436172437172438172439172440172441172442172443172444172445172446172447172448172449172450172451172452172453172454172455172456172457172458172459172460172461172462172463172464172465172466172467172468172469172470172471172472172473172474172475172476172477172478172479172480172481172482172483172484172485172486172487172488172489172490172491172492172493172494172495172496172497172498172499172500172501172502172503172504172505172506172507172508172509172510172511172512172513172514172515172516172517172518172519172520172521172522172523172524172525172526172527172528172529172530172531172532172533172534172535172536172537172538172539172540172541172542172543172544172545172546172547172548172549172550172551172552172553172554172555172556172557172558172559172560172561172562172563172564172565172566172567172568172569172570172571172572172573172574172575172576172577172578172579172580172581172582172583172584172585172586172587172588172589172590172591172592172593172594172595172596172597172598172599172600172601172602172603172604172605172606172607172608172609172610172611172612172613172614172615172616172617172618172619172620172621172622172623172624172625172626172627172628172629172630172631172632172633172634172635172636172637172638172639172640172641172642172643172644172645172646172647172648172649172650172651172652172653172654172655172656172657172658172659172660172661172662172663172664172665172666172667172668172669172670172671172672172673172674172675172676172677172678172679172680172681172682172683172684172685172686172687172688172689172690172691172692172693172694172695172696172697172698172699172700172701172702172703172704172705172706172707172708172709172710172711172712172713172714172715172716172717172718172719172720172721172722172723172724172725172726172727172728172729172730172731172732172733172734172735172736172737172738172739172740172741172742172743172744172745172746172747172748172749172750172751172752172753172754172755172756172757172758172759172760172761172762172763172764172765172766172767172768172769172770172771172772172773172774172775172776172777172778172779172780172781172782172783172784172785172786172787172788172789172790172791172792172793172794172795172796172797172798172799172800172801172802172803172804172805172806172807172808172809172810172811172812172813172814172815172816172817172818172819172820172821172822172823172824172825172826172827172828172829172830172831172832172833172834172835172836172837172838172839172840172841172842172843172844172845172846172847172848172849172850172851172852172853172854172855172856172857172858172859172860172861172862172863172864172865172866172867172868172869172870172871172872172873172874172875172876172877172878172879172880172881172882172883172884172885172886172887172888172889172890172891172892172893172894172895172896172897172898172899172900172901172902172903172904172905172906172907172908172909172910172911172912172913172914172915172916172917172918172919172920172921172922172923172924172925172926172927172928172929172930172931172932172933172934172935172936172937172938172939172940172941172942172943172944172945172946172947172948172949172950172951172952172953172954172955172956172957172958172959172960172961172962172963172964172965172966172967172968172969172970172971172972172973172974172975172976172977172978172979172980172981172982172983172984172985172986172987172988172989172990172991172992172993172994172995172996172997172998172999173000173001173002173003173004173005173006173007173008173009173010173011173012173013173014173015173016173017173018173019173020173021173022173023173024173025173026173027173028173029173030173031173032173033173034173035173036173037173038173039173040173041173042173043173044173045173046173047173048173049173050173051173052173053173054173055173056173057173058173059173060173061173062173063173064173065173066173067173068173069173070173071173072173073173074173075173076173077173078173079173080173081173082173083173084173085173086173087173088173089173090173091173092173093173094173095173096173097173098173099173100173101173102173103173104173105173106173107173108173109173110173111173112173113173114173115173116173117173118173119173120173121173122173123173124173125173126173127173128173129173130173131173132173133173134173135173136173137173138173139173140173141173142173143173144173145173146173147173148173149173150173151173152173153173154173155173156173157173158173159173160173161173162173163173164173165173166173167173168173169173170173171173172173173173174173175173176173177173178173179173180173181173182173183173184173185173186173187173188173189173190173191173192173193173194173195173196173197173198173199173200173201173202173203173204173205173206173207173208173209173210173211173212173213173214173215173216173217173218173219173220173221173222173223173224173225173226173227173228173229173230173231173232173233173234173235173236173237173238173239173240173241173242173243173244173245173246173247173248173249173250173251173252173253173254173255173256173257173258173259173260173261173262173263173264173265173266173267173268173269173270173271173272173273173274173275173276173277173278173279173280173281173282173283173284173285173286173287173288173289173290173291173292173293173294173295173296173297173298173299173300173301173302173303173304173305173306173307173308173309173310173311173312173313173314173315173316173317173318173319173320173321173322173323173324173325173326173327173328173329173330173331173332173333173334173335173336173337173338173339173340173341173342173343173344173345173346173347173348173349173350173351173352173353173354173355173356173357173358173359173360173361173362173363173364173365173366173367173368173369173370173371173372173373173374173375173376173377173378173379173380173381173382173383173384173385173386173387173388173389173390173391173392173393173394173395173396173397173398173399173400173401173402173403173404173405173406173407173408173409173410173411173412173413173414173415173416173417173418173419173420173421173422173423173424173425173426173427173428173429173430173431173432173433173434173435173436173437173438173439173440173441173442173443173444173445173446173447173448173449173450173451173452173453173454173455173456173457173458173459173460173461173462173463173464173465173466173467173468173469173470173471173472173473173474173475173476173477173478173479173480173481173482173483173484173485173486173487173488173489173490173491173492173493173494173495173496173497173498173499173500173501173502173503173504173505173506173507173508173509173510173511173512173513173514173515173516173517173518173519173520173521173522173523173524173525173526173527173528173529173530173531173532173533173534173535173536173537173538173539173540173541173542173543173544173545173546173547173548173549173550173551173552173553173554173555173556173557173558173559173560173561173562173563173564173565173566173567173568173569173570173571173572173573173574173575173576173577173578173579173580173581173582173583173584173585173586173587173588173589173590173591173592173593173594173595173596173597173598173599173600173601173602173603173604173605173606173607173608173609173610173611173612173613173614173615173616173617173618173619173620173621173622173623173624173625173626173627173628173629173630173631173632173633173634173635173636173637173638173639173640173641173642173643173644173645173646173647173648173649173650173651173652173653173654173655173656173657173658173659173660173661173662173663173664173665173666173667173668173669173670173671173672173673173674173675173676173677173678173679173680173681173682173683173684173685173686173687173688173689173690173691173692173693173694173695173696173697173698173699173700173701173702173703173704173705173706173707173708173709173710173711173712173713173714173715173716173717173718173719173720173721173722173723173724173725173726173727173728173729173730173731173732173733173734173735173736173737173738173739173740173741173742173743173744173745173746173747173748173749173750173751173752173753173754173755173756173757173758173759173760173761173762173763173764173765173766173767173768173769173770173771173772173773173774173775173776173777173778173779173780173781173782173783173784173785173786173787173788173789173790173791173792173793173794173795173796173797173798173799173800173801173802173803173804173805173806173807173808173809173810173811173812173813173814173815173816173817173818173819173820173821173822173823173824173825173826173827173828173829173830173831173832173833173834173835173836173837173838173839173840173841173842173843173844173845173846173847173848173849173850173851173852173853173854173855173856173857173858173859173860173861173862173863173864173865173866173867173868173869173870173871173872173873173874173875173876173877173878173879173880173881173882173883173884173885173886173887173888173889173890173891173892173893173894173895173896173897173898173899173900173901173902173903173904173905173906173907173908173909173910173911173912173913173914173915173916173917173918173919173920173921173922173923173924173925173926173927173928173929173930173931173932173933173934173935173936173937173938173939173940173941173942173943173944173945173946173947173948173949173950173951173952173953173954173955173956173957173958173959173960173961173962173963173964173965173966173967173968173969173970173971173972173973173974173975173976173977173978173979173980173981173982173983173984173985173986173987173988173989173990173991173992173993173994173995173996173997173998173999174000174001174002174003174004174005174006174007174008174009174010174011174012174013174014174015174016174017174018174019174020174021174022174023174024174025174026174027174028174029174030174031174032174033174034174035174036174037174038174039174040174041174042174043174044174045174046174047174048174049174050174051174052174053174054174055174056174057174058174059174060174061174062174063174064174065174066174067174068174069174070174071174072174073174074174075174076174077174078174079174080174081174082174083174084174085174086174087174088174089174090174091174092174093174094174095174096174097174098174099174100174101174102174103174104174105174106174107174108174109174110174111174112174113174114174115174116174117174118174119174120174121174122174123174124174125174126174127174128174129174130174131174132174133174134174135174136174137174138174139174140174141174142174143174144174145174146174147174148174149174150174151174152174153174154174155174156174157174158174159174160174161174162174163174164174165174166174167174168174169174170174171174172174173174174174175174176174177174178174179174180174181174182174183174184174185174186174187174188174189174190174191174192174193174194174195174196174197174198174199174200174201174202174203174204174205174206174207174208174209174210174211174212174213174214174215174216174217174218174219174220174221174222174223174224174225174226174227174228174229174230174231174232174233174234174235174236174237174238174239174240174241174242174243174244174245174246174247174248174249174250174251174252174253174254174255174256174257174258174259174260174261174262174263174264174265174266174267174268174269174270174271174272174273174274174275174276174277174278174279174280174281174282174283174284174285174286174287174288174289174290174291174292174293174294174295174296174297174298174299174300174301174302174303174304174305174306174307174308174309174310174311174312174313174314174315174316174317174318174319174320174321174322174323174324174325174326174327174328174329174330174331174332174333174334174335174336174337174338174339174340174341174342174343174344174345174346174347174348174349174350174351174352174353174354174355174356174357174358174359174360174361174362174363174364174365174366174367174368174369174370174371174372174373174374174375174376174377174378174379174380174381174382174383174384174385174386174387174388174389174390174391174392174393174394174395174396174397174398174399174400174401174402174403174404174405174406174407174408174409174410174411174412174413174414174415174416174417174418174419174420174421174422174423174424174425174426174427174428174429174430174431174432174433174434174435174436174437174438174439174440174441174442174443174444174445174446174447174448174449174450174451174452174453174454174455174456174457174458174459174460174461174462174463174464174465174466174467174468174469174470174471174472174473174474174475174476174477174478174479174480174481174482174483174484174485174486174487174488174489174490174491174492174493174494174495174496174497174498174499174500174501174502174503174504174505174506174507174508174509174510174511174512174513174514174515174516174517174518174519174520174521174522174523174524174525174526174527174528174529174530174531174532174533174534174535174536174537174538174539174540174541174542174543174544174545174546174547174548174549174550174551174552174553174554174555174556174557174558174559174560174561174562174563174564174565174566174567174568174569174570174571174572174573174574174575174576174577174578174579174580174581174582174583174584174585174586174587174588174589174590174591174592174593174594174595174596174597174598174599174600174601174602174603174604174605174606174607174608174609174610174611174612174613174614174615174616174617174618174619174620174621174622174623174624174625174626174627174628174629174630174631174632174633174634174635174636174637174638174639174640174641174642174643174644174645174646174647174648174649174650174651174652174653174654174655174656174657174658174659174660174661174662174663174664174665174666174667174668174669174670174671174672174673174674174675174676174677174678174679174680174681174682174683174684174685174686174687174688174689174690174691174692174693174694174695174696174697174698174699174700174701174702174703174704174705174706174707174708174709174710174711174712174713174714174715174716174717174718174719174720174721174722174723174724174725174726174727174728174729174730174731174732174733174734174735174736174737174738174739174740174741174742174743174744174745174746174747174748174749174750174751174752174753174754174755174756174757174758174759174760174761174762174763174764174765174766174767174768174769174770174771174772174773174774174775174776174777174778174779174780174781174782174783174784174785174786174787174788174789174790174791174792174793174794174795174796174797174798174799174800174801174802174803174804174805174806174807174808174809174810174811174812174813174814174815174816174817174818174819174820174821174822174823174824174825174826174827174828174829174830174831174832174833174834174835174836174837174838174839174840174841174842174843174844174845174846174847174848174849174850174851174852174853174854174855174856174857174858174859174860174861174862174863174864174865174866174867174868174869174870174871174872174873174874174875174876174877174878174879174880174881174882174883174884174885174886174887174888174889174890174891174892174893174894174895174896174897174898174899174900174901174902174903174904174905174906174907174908174909174910174911174912174913174914174915174916174917174918174919174920174921174922174923174924174925174926174927174928174929174930174931174932174933174934174935174936174937174938174939174940174941174942174943174944174945174946174947174948174949174950174951174952174953174954174955174956174957174958174959174960174961174962174963174964174965174966174967174968174969174970174971174972174973174974174975174976174977174978174979174980174981174982174983174984174985174986174987174988174989174990174991174992174993174994174995174996174997174998174999175000175001175002175003175004175005175006175007175008175009175010175011175012175013175014175015175016175017175018175019175020175021175022175023175024175025175026175027175028175029175030175031175032175033175034175035175036175037175038175039175040175041175042175043175044175045175046175047175048175049175050175051175052175053175054175055175056175057175058175059175060175061175062175063175064175065175066175067175068175069175070175071175072175073175074175075175076175077175078175079175080175081175082175083175084175085175086175087175088175089175090175091175092175093175094175095175096175097175098175099175100175101175102175103175104175105175106175107175108175109175110175111175112175113175114175115175116175117175118175119175120175121175122175123175124175125175126175127175128175129175130175131175132175133175134175135175136175137175138175139175140175141175142175143175144175145175146175147175148175149175150175151175152175153175154175155175156175157175158175159175160175161175162175163175164175165175166175167175168175169175170175171175172175173175174175175175176175177175178175179175180175181175182175183175184175185175186175187175188175189175190175191175192175193175194175195175196175197175198175199175200175201175202175203175204175205175206175207175208175209175210175211175212175213175214175215175216175217175218175219175220175221175222175223175224175225175226175227175228175229175230175231175232175233175234175235175236175237175238175239175240175241175242175243175244175245175246175247175248175249175250175251175252175253175254175255175256175257175258175259175260175261175262175263175264175265175266175267175268175269175270175271175272175273175274175275175276175277175278175279175280175281175282175283175284175285175286175287175288175289175290175291175292175293175294175295175296175297175298175299175300175301175302175303175304175305175306175307175308175309175310175311175312175313175314175315175316175317175318175319175320175321175322175323175324175325175326175327175328175329175330175331175332175333175334175335175336175337175338175339175340175341175342175343175344175345175346175347175348175349175350175351175352175353175354175355175356175357175358175359175360175361175362175363175364175365175366175367175368175369175370175371175372175373175374175375175376175377175378175379175380175381175382175383175384175385175386175387175388175389175390175391175392175393175394175395175396175397175398175399175400175401175402175403175404175405175406175407175408175409175410175411175412175413175414175415175416175417175418175419175420175421175422175423175424175425175426175427175428175429175430175431175432175433175434175435175436175437175438175439175440175441175442175443175444175445175446175447175448175449175450175451175452175453175454175455175456175457175458175459175460175461175462175463175464175465175466175467175468175469175470175471175472175473175474175475175476175477175478175479175480175481175482175483175484175485175486175487175488175489175490175491175492175493175494175495175496175497175498175499175500175501175502175503175504175505175506175507175508175509175510175511175512175513175514175515175516175517175518175519175520175521175522175523175524175525175526175527175528175529175530175531175532175533175534175535175536175537175538175539175540175541175542175543175544175545175546175547175548175549175550175551175552175553175554175555175556175557175558175559175560175561175562175563175564175565175566175567175568175569175570175571175572175573175574175575175576175577175578175579175580175581175582175583175584175585175586175587175588175589175590175591175592175593175594175595175596175597175598175599175600175601175602175603175604175605175606175607175608175609175610175611175612175613175614175615175616175617175618175619175620175621175622175623175624175625175626175627175628175629175630175631175632175633175634175635175636175637175638175639175640175641175642175643175644175645175646175647175648175649175650175651175652175653175654175655175656175657175658175659175660175661175662175663175664175665175666175667175668175669175670175671175672175673175674175675175676175677175678175679175680175681175682175683175684175685175686175687175688175689175690175691175692175693175694175695175696175697175698175699175700175701175702175703175704175705175706175707175708175709175710175711175712175713175714175715175716175717175718175719175720175721175722175723175724175725175726175727175728175729175730175731175732175733175734175735175736175737175738175739175740175741175742175743175744175745175746175747175748175749175750175751175752175753175754175755175756175757175758175759175760175761175762175763175764175765175766175767175768175769175770175771175772175773175774175775175776175777175778175779175780175781175782175783175784175785175786175787175788175789175790175791175792175793175794175795175796175797175798175799175800175801175802175803175804175805175806175807175808175809175810175811175812175813175814175815175816175817175818175819175820175821175822175823175824175825175826175827175828175829175830175831175832175833175834175835175836175837175838175839175840175841175842175843175844175845175846175847175848175849175850175851175852175853175854175855175856175857175858175859175860175861175862175863175864175865175866175867175868175869175870175871175872175873175874175875175876175877175878175879175880175881175882175883175884175885175886175887175888175889175890175891175892175893175894175895175896175897175898175899175900175901175902175903175904175905175906175907175908175909175910175911175912175913175914175915175916175917175918175919175920175921175922175923175924175925175926175927175928175929175930175931175932175933175934175935175936175937175938175939175940175941175942175943175944175945175946175947175948175949175950175951175952175953175954175955175956175957175958175959175960175961175962175963175964175965175966175967175968175969175970175971175972175973175974175975175976175977175978175979175980175981175982175983175984175985175986175987175988175989175990175991175992175993175994175995175996175997175998175999176000176001176002176003176004176005176006176007176008176009176010176011176012176013176014176015176016176017176018176019176020176021176022176023176024176025176026176027176028176029176030176031176032176033176034176035176036176037176038176039176040176041176042176043176044176045176046176047176048176049176050176051176052176053176054176055176056176057176058176059176060176061176062176063176064176065176066176067176068176069176070176071176072176073176074176075176076176077176078176079176080176081176082176083176084176085176086176087176088176089176090176091176092176093176094176095176096176097176098176099176100176101176102176103176104176105176106176107176108176109176110176111176112176113176114176115176116176117176118176119176120176121176122176123176124176125176126176127176128176129176130176131176132176133176134176135176136176137176138176139176140176141176142176143176144176145176146176147176148176149176150176151176152176153176154176155176156176157176158176159176160176161176162176163176164176165176166176167176168176169176170176171176172176173176174176175176176176177176178176179176180176181176182176183176184176185176186176187176188176189176190176191176192176193176194176195176196176197176198176199176200176201176202176203176204176205176206176207176208176209176210176211176212176213176214176215176216176217176218176219176220176221176222176223176224176225176226176227176228176229176230176231176232176233176234176235176236176237176238176239176240176241176242176243176244176245176246176247176248176249176250176251176252176253176254176255176256176257176258176259176260176261176262176263176264176265176266176267176268176269176270176271176272176273176274176275176276176277176278176279176280176281176282176283176284176285176286176287176288176289176290176291176292176293176294176295176296176297176298176299176300176301176302176303176304176305176306176307176308176309176310176311176312176313176314176315176316176317176318176319176320176321176322176323176324176325176326176327176328176329176330176331176332176333176334176335176336176337176338176339176340176341176342176343176344176345176346176347176348176349176350176351176352176353176354176355176356176357176358176359176360176361176362176363176364176365176366176367176368176369176370176371176372176373176374176375176376176377176378176379176380176381176382176383176384176385176386176387176388176389176390176391176392176393176394176395176396176397176398176399176400176401176402176403176404176405176406176407176408176409176410176411176412176413176414176415176416176417176418176419176420176421176422176423176424176425176426176427176428176429176430176431176432176433176434176435176436176437176438176439176440176441176442176443176444176445176446176447176448176449176450176451176452176453176454176455176456176457176458176459176460176461176462176463176464176465176466176467176468176469176470176471176472176473176474176475176476176477176478176479176480176481176482176483176484176485176486176487176488176489176490176491176492176493176494176495176496176497176498176499176500176501176502176503176504176505176506176507176508176509176510176511176512176513176514176515176516176517176518176519176520176521176522176523176524176525176526176527176528176529176530176531176532176533176534176535176536176537176538176539176540176541176542176543176544176545176546176547176548176549176550176551176552176553176554176555176556176557176558176559176560176561176562176563176564176565176566176567176568176569176570176571176572176573176574176575176576176577176578176579176580176581176582176583176584176585176586176587176588176589176590176591176592176593176594176595176596176597176598176599176600176601176602176603176604176605176606176607176608176609176610176611176612176613176614176615176616176617176618176619176620176621176622176623176624176625176626176627176628176629176630176631176632176633176634176635176636176637176638176639176640176641176642176643176644176645176646176647176648176649176650176651176652176653176654176655176656176657176658176659176660176661176662176663176664176665176666176667176668176669176670176671176672176673176674176675176676176677176678176679176680176681176682176683176684176685176686176687176688176689176690176691176692176693176694176695176696176697176698176699176700176701176702176703176704176705176706176707176708176709176710176711176712176713176714176715176716176717176718176719176720176721176722176723176724176725176726176727176728176729176730176731176732176733176734176735176736176737176738176739176740176741176742176743176744176745176746176747176748176749176750176751176752176753176754176755176756176757176758176759176760176761176762176763176764176765176766176767176768176769176770176771176772176773176774176775176776176777176778176779176780176781176782176783176784176785176786176787176788176789176790176791176792176793176794176795176796176797176798176799176800176801176802176803176804176805176806176807176808176809176810176811176812176813176814176815176816176817176818176819176820176821176822176823176824176825176826176827176828176829176830176831176832176833176834176835176836176837176838176839176840176841176842176843176844176845176846176847176848176849176850176851176852176853176854176855176856176857176858176859176860176861176862176863176864176865176866176867176868176869176870176871176872176873176874176875176876176877176878176879176880176881176882176883176884176885176886176887176888176889176890176891176892176893176894176895176896176897176898176899176900176901176902176903176904176905176906176907176908176909176910176911176912176913176914176915176916176917176918176919176920176921176922176923176924176925176926176927176928176929176930176931176932176933176934176935176936176937176938176939176940176941176942176943176944176945176946176947176948176949176950176951176952176953176954176955176956176957176958176959176960176961176962176963176964176965176966176967176968176969176970176971176972176973176974176975176976176977176978176979176980176981176982176983176984176985176986176987176988176989176990176991176992176993176994176995176996176997176998176999177000177001177002177003177004177005177006177007177008177009177010177011177012177013177014177015177016177017177018177019177020177021177022177023177024177025177026177027177028177029177030177031177032177033177034177035177036177037177038177039177040177041177042177043177044177045177046177047177048177049177050177051177052177053177054177055177056177057177058177059177060177061177062177063177064177065177066177067177068177069177070177071177072177073177074177075177076177077177078177079177080177081177082177083177084177085177086177087177088177089177090177091177092177093177094177095177096177097177098177099177100177101177102177103177104177105177106177107177108177109177110177111177112177113177114177115177116177117177118177119177120177121177122177123177124177125177126177127177128177129177130177131177132177133177134177135177136177137177138177139177140177141177142177143177144177145177146177147177148177149177150177151177152177153177154177155177156177157177158177159177160177161177162177163177164177165177166177167177168177169177170177171177172177173177174177175177176177177177178177179177180177181177182177183177184177185177186177187177188177189177190177191177192177193177194177195177196177197177198177199177200177201177202177203177204177205177206177207177208177209177210177211177212177213177214177215177216177217177218177219177220177221177222177223177224177225177226177227177228177229177230177231177232177233177234177235177236177237177238177239177240177241177242177243177244177245177246177247177248177249177250177251177252177253177254177255177256177257177258177259177260177261177262177263177264177265177266177267177268177269177270177271177272177273177274177275177276177277177278177279177280177281177282177283177284177285177286177287177288177289177290177291177292177293177294177295177296177297177298177299177300177301177302177303177304177305177306177307177308177309177310177311177312177313177314177315177316177317177318177319177320177321177322177323177324177325177326177327177328177329177330177331177332177333177334177335177336177337177338177339177340177341177342177343177344177345177346177347177348177349177350177351177352177353177354177355177356177357177358177359177360177361177362177363177364177365177366177367177368177369177370177371177372177373177374177375177376177377177378177379177380177381177382177383177384177385177386177387177388177389177390177391177392177393177394177395177396177397177398177399177400177401177402177403177404177405177406177407177408177409177410177411177412177413177414177415177416177417177418177419177420177421177422177423177424177425177426177427177428177429177430177431177432177433177434177435177436177437177438177439177440177441177442177443177444177445177446177447177448177449177450177451177452177453177454177455177456177457177458177459177460177461177462177463177464177465177466177467177468177469177470177471177472177473177474177475177476177477177478177479177480177481177482177483177484177485177486177487177488177489177490177491177492177493177494177495177496177497177498177499177500177501177502177503177504177505177506177507177508177509177510177511177512177513177514177515177516177517177518177519177520177521177522177523177524177525177526177527177528177529177530177531177532177533177534177535177536177537177538177539177540177541177542177543177544177545177546177547177548177549177550177551177552177553177554177555177556177557177558177559177560177561177562177563177564177565177566177567177568177569177570177571177572177573177574177575177576177577177578177579177580177581177582177583177584177585177586177587177588177589177590177591177592177593177594177595177596177597177598177599177600177601177602177603177604177605177606177607177608177609177610177611177612177613177614177615177616177617177618177619177620177621177622177623177624177625177626177627177628177629177630177631177632177633177634177635177636177637177638177639177640177641177642177643177644177645177646177647177648177649177650177651177652177653177654177655177656177657177658177659177660177661177662177663177664177665177666177667177668177669177670177671177672177673177674177675177676177677177678177679177680177681177682177683177684177685177686177687177688177689177690177691177692177693177694177695177696177697177698177699177700177701177702177703177704177705177706177707177708177709177710177711177712177713177714177715177716177717177718177719177720177721177722177723177724177725177726177727177728177729177730177731177732177733177734177735177736177737177738177739177740177741177742177743177744177745177746177747177748177749177750177751177752177753177754177755177756177757177758177759177760177761177762177763177764177765177766177767177768177769177770177771177772177773177774177775177776177777177778177779177780177781177782177783177784177785177786177787177788177789177790177791177792177793177794177795177796177797177798177799177800177801177802177803177804177805177806177807177808177809177810177811177812177813177814177815177816177817177818177819177820177821177822177823177824177825177826177827177828177829177830177831177832177833177834177835177836177837177838177839177840177841177842177843177844177845177846177847177848177849177850177851177852177853177854177855177856177857177858177859177860177861177862177863177864177865177866177867177868177869177870177871177872177873177874177875177876177877177878177879177880177881177882177883177884177885177886177887177888177889177890177891177892177893177894177895177896177897177898177899177900177901177902177903177904177905177906177907177908177909177910177911177912177913177914177915177916177917177918177919177920177921177922177923177924177925177926177927177928177929177930177931177932177933177934177935177936177937177938177939177940177941177942177943177944177945177946177947177948177949177950177951177952177953177954177955177956177957177958177959177960177961177962177963177964177965177966177967177968177969177970177971177972177973177974177975177976177977177978177979177980177981177982177983177984177985177986177987177988177989177990177991177992177993177994177995177996177997177998177999178000178001178002178003178004178005178006178007178008178009178010178011178012178013178014178015178016178017178018178019178020178021178022178023178024178025178026178027178028178029178030178031178032178033178034178035178036178037178038178039178040178041178042178043178044178045178046178047178048178049178050178051178052178053178054178055178056178057178058178059178060178061178062178063178064178065178066178067178068178069178070178071178072178073178074178075178076178077178078178079178080178081178082178083178084178085178086178087178088178089178090178091178092178093178094178095178096178097178098178099178100178101178102178103178104178105178106178107178108178109178110178111178112178113178114178115178116178117178118178119178120178121178122178123178124178125178126178127178128178129178130178131178132178133178134178135178136178137178138178139178140178141178142178143178144178145178146178147178148178149178150178151178152178153178154178155178156178157178158178159178160178161178162178163178164178165178166178167178168178169178170178171178172178173178174178175178176178177178178178179178180178181178182178183178184178185178186178187178188178189178190178191178192178193178194178195178196178197178198178199178200178201178202178203178204178205178206178207178208178209178210178211178212178213178214178215178216178217178218178219178220178221178222178223178224178225178226178227178228178229178230178231178232178233178234178235178236178237178238178239178240178241178242178243178244178245178246178247178248178249178250178251178252178253178254178255178256178257178258178259178260178261178262178263178264178265178266178267178268178269178270178271178272178273178274178275178276178277178278178279178280178281178282178283178284178285178286178287178288178289178290178291178292178293178294178295178296178297178298178299178300178301178302178303178304178305178306178307178308178309178310178311178312178313178314178315178316178317178318178319178320178321178322178323178324178325178326178327178328178329178330178331178332178333178334178335178336178337178338178339178340178341178342178343178344178345178346178347178348178349178350178351178352178353178354178355178356178357178358178359178360178361178362178363178364178365178366178367178368178369178370178371178372178373178374178375178376178377178378178379178380178381178382178383178384178385178386178387178388178389178390178391178392178393178394178395178396178397178398178399178400178401178402178403178404178405178406178407178408178409178410178411178412178413178414178415178416178417178418178419178420178421178422178423178424178425178426178427178428178429178430178431178432178433178434178435178436178437178438178439178440178441178442178443178444178445178446178447178448178449178450178451178452178453178454178455178456178457178458178459178460178461178462178463178464178465178466178467178468178469178470178471178472178473178474178475178476178477178478178479178480178481178482178483178484178485178486178487178488178489178490178491178492178493178494178495178496178497178498178499178500178501178502178503178504178505178506178507178508178509178510178511178512178513178514178515178516178517178518178519178520178521178522178523178524178525178526178527178528178529178530178531178532178533178534178535178536178537178538178539178540178541178542178543178544178545178546178547178548178549178550178551178552178553178554178555178556178557178558178559178560178561178562178563178564178565178566178567178568178569178570178571178572178573178574178575178576178577178578178579178580178581178582178583178584178585178586178587178588178589178590178591178592178593178594178595178596178597178598178599178600178601178602178603178604178605178606178607178608178609178610178611178612178613178614178615178616178617178618178619178620178621178622178623178624178625178626178627178628178629178630178631178632178633178634178635178636178637178638178639178640178641178642178643178644178645178646178647178648178649178650178651178652178653178654178655178656178657178658178659178660178661178662178663178664178665178666178667178668178669178670178671178672178673178674178675178676178677178678178679178680178681178682178683178684178685178686178687178688178689178690178691178692178693178694178695178696178697178698178699178700178701178702178703178704178705178706178707178708178709178710178711178712178713178714178715178716178717178718178719178720178721178722178723178724178725178726178727178728178729178730178731178732178733178734178735178736178737178738178739178740178741178742178743178744178745178746178747178748178749178750178751178752178753178754178755178756178757178758178759178760178761178762178763178764178765178766178767178768178769178770178771178772178773178774178775178776178777178778178779178780178781178782178783178784178785178786178787178788178789178790178791178792178793178794178795178796178797178798178799178800178801178802178803178804178805178806178807178808178809178810178811178812178813178814178815178816178817178818178819178820178821178822178823178824178825178826178827178828178829178830178831178832178833178834178835178836178837178838178839178840178841178842178843178844178845178846178847178848178849178850178851178852178853178854178855178856178857178858178859178860178861178862178863178864178865178866178867178868178869178870178871178872178873178874178875178876178877178878178879178880178881178882178883178884178885178886178887178888178889178890178891178892178893178894178895178896178897178898178899178900178901178902178903178904178905178906178907178908178909178910178911178912178913178914178915178916178917178918178919178920178921178922178923178924178925178926178927178928178929178930178931178932178933178934178935178936178937178938178939178940178941178942178943178944178945178946178947178948178949178950178951178952178953178954178955178956178957178958178959178960178961178962178963178964178965178966178967178968178969178970178971178972178973178974178975178976178977178978178979178980178981178982178983178984178985178986178987178988178989178990178991178992178993178994178995178996178997178998178999179000179001179002179003179004179005179006179007179008179009179010179011179012179013179014179015179016179017179018179019179020179021179022179023179024179025179026179027179028179029179030179031179032179033179034179035179036179037179038179039179040179041179042179043179044179045179046179047179048179049179050179051179052179053179054179055179056179057179058179059179060179061179062179063179064179065179066179067179068179069179070179071179072179073179074179075179076179077179078179079179080179081179082179083179084179085179086179087179088179089179090179091179092179093179094179095179096179097179098179099179100179101179102179103179104179105179106179107179108179109179110179111179112179113179114179115179116179117179118179119179120179121179122179123179124179125179126179127179128179129179130179131179132179133179134179135179136179137179138179139179140179141179142179143179144179145179146179147179148179149179150179151179152179153179154179155179156179157179158179159179160179161179162179163179164179165179166179167179168179169179170179171179172179173179174179175179176179177179178179179179180179181179182179183179184179185179186179187179188179189179190179191179192179193179194179195179196179197179198179199179200179201179202179203179204179205179206179207179208179209179210179211179212179213179214179215179216179217179218179219179220179221179222179223179224179225179226179227179228179229179230179231179232179233179234179235179236179237179238179239179240179241179242179243179244179245179246179247179248179249179250179251179252179253179254179255179256179257179258179259179260179261179262179263179264179265179266179267179268179269179270179271179272179273179274179275179276179277179278179279179280179281179282179283179284179285179286179287179288179289179290179291179292179293179294179295179296179297179298179299179300179301179302179303179304179305179306179307179308179309179310179311179312179313179314179315179316179317179318179319179320179321179322179323179324179325179326179327179328179329179330179331179332179333179334179335179336179337179338179339179340179341179342179343179344179345179346179347179348179349179350179351179352179353179354179355179356179357179358179359179360179361179362179363179364179365179366179367179368179369179370179371179372179373179374179375179376179377179378179379179380179381179382179383179384179385179386179387179388179389179390179391179392179393179394179395179396179397179398179399179400179401179402179403179404179405179406179407179408179409179410179411179412179413179414179415179416179417179418179419179420179421179422179423179424179425179426179427179428179429179430179431179432179433179434179435179436179437179438179439179440179441179442179443179444179445179446179447179448179449179450179451179452179453179454179455179456179457179458179459179460179461179462179463179464179465179466179467179468179469179470179471179472179473179474179475179476179477179478179479179480179481179482179483179484179485179486179487179488179489179490179491179492179493179494179495179496179497179498179499179500179501179502179503179504179505179506179507179508179509179510179511179512179513179514179515179516179517179518179519179520179521179522179523179524179525179526179527179528179529179530179531179532179533179534179535179536179537179538179539179540179541179542179543179544179545179546179547179548179549179550179551179552179553179554179555179556179557179558179559179560179561179562179563179564179565179566179567179568179569179570179571179572179573179574179575179576179577179578179579179580179581179582179583179584179585179586179587179588179589179590179591179592179593179594179595179596179597179598179599179600179601179602179603179604179605179606179607179608179609179610179611179612179613179614179615179616179617179618179619179620179621179622179623179624179625179626179627179628179629179630179631179632179633179634179635179636179637179638179639179640179641179642179643179644179645179646179647179648179649179650179651179652179653179654179655179656179657179658179659179660179661179662179663179664179665179666179667179668179669179670179671179672179673179674179675179676179677179678179679179680179681179682179683179684179685179686179687179688179689179690179691179692179693179694179695179696179697179698179699179700179701179702179703179704179705179706179707179708179709179710179711179712179713179714179715179716179717179718179719179720179721179722179723179724179725179726179727179728179729179730179731179732179733179734179735179736179737179738179739179740179741179742179743179744179745179746179747179748179749179750179751179752179753179754179755179756179757179758179759179760179761179762179763179764179765179766179767179768179769179770179771179772179773179774179775179776179777179778179779179780179781179782179783179784179785179786179787179788179789179790179791179792179793179794179795179796179797179798179799179800179801179802179803179804179805179806179807179808179809179810179811179812179813179814179815179816179817179818179819179820179821179822179823179824179825179826179827179828179829179830179831179832179833179834179835179836179837179838179839179840179841179842179843179844179845179846179847179848179849179850179851179852179853179854179855179856179857179858179859179860179861179862179863179864179865179866179867179868179869179870179871179872179873179874179875179876179877179878179879179880179881179882179883179884179885179886179887179888179889179890179891179892179893179894179895179896179897179898179899179900179901179902179903179904179905179906179907179908179909179910179911179912179913179914179915179916179917179918179919179920179921179922179923179924179925179926179927179928179929179930179931179932179933179934179935179936179937179938179939179940179941179942179943179944179945179946179947179948179949179950179951179952179953179954179955179956179957179958179959179960179961179962179963179964179965179966179967179968179969179970179971179972179973179974179975179976179977179978179979179980179981179982179983179984179985179986179987179988179989179990179991179992179993179994179995179996179997179998179999180000180001180002180003180004180005180006180007180008180009180010180011180012180013180014180015180016180017180018180019180020180021180022180023180024180025180026180027180028180029180030180031180032180033180034180035180036180037180038180039180040180041180042180043180044180045180046180047180048180049180050180051180052180053180054180055180056180057180058180059180060180061180062180063180064180065180066180067180068180069180070180071180072180073180074180075180076180077180078180079180080180081180082180083180084180085180086180087180088180089180090180091180092180093180094180095180096180097180098180099180100180101180102180103180104180105180106180107180108180109180110180111180112180113180114180115180116180117180118180119180120180121180122180123180124180125180126180127180128180129180130180131180132180133180134180135180136180137180138180139180140180141180142180143180144180145180146180147180148180149180150180151180152180153180154180155180156180157180158180159180160180161180162180163180164180165180166180167180168180169180170180171180172180173180174180175180176180177180178180179180180180181180182180183180184180185180186180187180188180189180190180191180192180193180194180195180196180197180198180199180200180201180202180203180204180205180206180207180208180209180210180211180212180213180214180215180216180217180218180219180220180221180222180223180224180225180226180227180228180229180230180231180232180233180234180235180236180237180238180239180240180241180242180243180244180245180246180247180248180249180250180251180252180253180254180255180256180257180258180259180260180261180262180263180264180265180266180267180268180269180270180271180272180273180274180275180276180277180278180279180280180281180282180283180284180285180286180287180288180289180290180291180292180293180294180295180296180297180298180299180300180301180302180303180304180305180306180307180308180309180310180311180312180313180314180315180316180317180318180319180320180321180322180323180324180325180326180327180328180329180330180331180332180333180334180335180336180337180338180339180340180341180342180343180344180345180346180347180348180349180350180351180352180353180354180355180356180357180358180359180360180361180362180363180364180365180366180367180368180369180370180371180372180373180374180375180376180377180378180379180380180381180382180383180384180385180386180387180388180389180390180391180392180393180394180395180396180397180398180399180400180401180402180403180404180405180406180407180408180409180410180411180412180413180414180415180416180417180418180419180420180421180422180423180424180425180426180427180428180429180430180431180432180433180434180435180436180437180438180439180440180441180442180443180444180445180446180447180448180449180450180451180452180453180454180455180456180457180458180459180460180461180462180463180464180465180466180467180468180469180470180471180472180473180474180475180476180477180478180479180480180481180482180483180484180485180486180487180488180489180490180491180492180493180494180495180496180497180498180499180500180501180502180503180504180505180506180507180508180509180510180511180512180513180514180515180516180517180518180519180520180521180522180523180524180525180526180527180528180529180530180531180532180533180534180535180536180537180538180539180540180541180542180543180544180545180546180547180548180549180550180551180552180553180554180555180556180557180558180559180560180561180562180563180564180565180566180567180568180569180570180571180572180573180574180575180576180577180578180579180580180581180582180583180584180585180586180587180588180589180590180591180592180593180594180595180596180597180598180599180600180601180602180603180604180605180606180607180608180609180610180611180612180613180614180615180616180617180618180619180620180621180622180623180624180625180626180627180628180629180630180631180632180633180634180635180636180637180638180639180640180641180642180643180644180645180646180647180648180649180650180651180652180653180654180655180656180657180658180659180660180661180662180663180664180665180666180667180668180669180670180671180672180673180674180675180676180677180678180679180680180681180682180683180684180685180686180687180688180689180690180691180692180693180694180695180696180697180698180699180700180701180702180703180704180705180706180707180708180709180710180711180712180713180714180715180716180717180718180719180720180721180722180723180724180725180726180727180728180729180730180731180732180733180734180735180736180737180738180739180740180741180742180743180744180745180746180747180748180749180750180751180752180753180754180755180756180757180758180759180760180761180762180763180764180765180766180767180768180769180770180771180772180773180774180775180776180777180778180779180780180781180782180783180784180785180786180787180788180789180790180791180792180793180794180795180796180797180798180799180800180801180802180803180804180805180806180807180808180809180810180811180812180813180814180815180816180817180818180819180820180821180822180823180824180825180826180827180828180829180830180831180832180833180834180835180836180837180838180839180840180841180842180843180844180845180846180847180848180849180850180851180852180853180854180855180856180857180858180859180860180861180862180863180864180865180866180867180868180869180870180871180872180873180874180875180876180877180878180879180880180881180882180883180884180885180886180887180888180889180890180891180892180893180894180895180896180897180898180899180900180901180902180903180904180905180906180907180908180909180910180911180912180913180914180915180916180917180918180919180920180921180922180923180924180925180926180927180928180929180930180931180932180933180934180935180936180937180938180939180940180941180942180943180944180945180946180947180948180949180950180951180952180953180954180955180956180957180958180959180960180961180962180963180964180965180966180967180968180969180970180971180972180973180974180975180976180977180978180979180980180981180982180983180984180985180986180987180988180989180990180991180992180993180994180995180996180997180998180999181000181001181002181003181004181005181006181007181008181009181010181011181012181013181014181015181016181017181018181019181020181021181022181023181024181025181026181027181028181029181030181031181032181033181034181035181036181037181038181039181040181041181042181043181044181045181046181047181048181049181050181051181052181053181054181055181056181057181058181059181060181061181062181063181064181065181066181067181068181069181070181071181072181073181074181075181076181077181078181079181080181081181082181083181084181085181086181087181088181089181090181091181092181093181094181095181096181097181098181099181100181101181102181103181104181105181106181107181108181109181110181111181112181113181114181115181116181117181118181119181120181121181122181123181124181125181126181127181128181129181130181131181132181133181134181135181136181137181138181139181140181141181142181143181144181145181146181147181148181149181150181151181152181153181154181155181156181157181158181159181160181161181162181163181164181165181166181167181168181169181170181171181172181173181174181175181176181177181178181179181180181181181182181183181184181185181186181187181188181189181190181191181192181193181194181195181196181197181198181199181200181201181202181203181204181205181206181207181208181209181210181211181212181213181214181215181216181217181218181219181220181221181222181223181224181225181226181227181228181229181230181231181232181233181234181235181236181237181238181239181240181241181242181243181244181245181246181247181248181249181250181251181252181253181254181255181256181257181258181259181260181261181262181263181264181265181266181267181268181269181270181271181272181273181274181275181276181277181278181279181280181281181282181283181284181285181286181287181288181289181290181291181292181293181294181295181296181297181298181299181300181301181302181303181304181305181306181307181308181309181310181311181312181313181314181315181316181317181318181319181320181321181322181323181324181325181326181327181328181329181330181331181332181333181334181335181336181337181338181339181340181341181342181343181344181345181346181347181348181349181350181351181352181353181354181355181356181357181358181359181360181361181362181363181364181365181366181367181368181369181370181371181372181373181374181375181376181377181378181379181380181381181382181383181384181385181386181387181388181389181390181391181392181393181394181395181396181397181398181399181400181401181402181403181404181405181406181407181408181409181410181411181412181413181414181415181416181417181418181419181420181421181422181423181424181425181426181427181428181429181430181431181432181433181434181435181436181437181438181439181440181441181442181443181444181445181446181447181448181449181450181451181452181453181454181455181456181457181458181459181460181461181462181463181464181465181466181467181468181469181470181471181472181473181474181475181476181477181478181479181480181481181482181483181484181485181486181487181488181489181490181491181492181493181494181495181496181497181498181499181500181501181502181503181504181505181506181507181508181509181510181511181512181513181514181515181516181517181518181519181520181521181522181523181524181525181526181527181528181529181530181531181532181533181534181535181536181537181538181539181540181541181542181543181544181545181546181547181548181549181550181551181552181553181554181555181556181557181558181559181560181561181562181563181564181565181566181567181568181569181570181571181572181573181574181575181576181577181578181579181580181581181582181583181584181585181586181587181588181589181590181591181592181593181594181595181596181597181598181599181600181601181602181603181604181605181606181607181608181609181610181611181612181613181614181615181616181617181618181619181620181621181622181623181624181625181626181627181628181629181630181631181632181633181634181635181636181637181638181639181640181641181642181643181644181645181646181647181648181649181650181651181652181653181654181655181656181657181658181659181660181661181662181663181664181665181666181667181668181669181670181671181672181673181674181675181676181677181678181679181680181681181682181683181684181685181686181687181688181689181690181691181692181693181694181695181696181697181698181699181700181701181702181703181704181705181706181707181708181709181710181711181712181713181714181715181716181717181718181719181720181721181722181723181724181725181726181727181728181729181730181731181732181733181734181735181736181737181738181739181740181741181742181743181744181745181746181747181748181749181750181751181752181753181754181755181756181757181758181759181760181761181762181763181764181765181766181767181768181769181770181771181772181773181774181775181776181777181778181779181780181781181782181783181784181785181786181787181788181789181790181791181792181793181794181795181796181797181798181799181800181801181802181803181804181805181806181807181808181809181810181811181812181813181814181815181816181817181818181819181820181821181822181823181824181825181826181827181828181829181830181831181832181833181834181835181836181837181838181839181840181841181842181843181844181845181846181847181848181849181850181851181852181853181854181855181856181857181858181859181860181861181862181863181864181865181866181867181868181869181870181871181872181873181874181875181876181877181878181879181880181881181882181883181884181885181886181887181888181889181890181891181892181893181894181895181896181897181898181899181900181901181902181903181904181905181906181907181908181909181910181911181912181913181914181915181916181917181918181919181920181921181922181923181924181925181926181927181928181929181930181931181932181933181934181935181936181937181938181939181940181941181942181943181944181945181946181947181948181949181950181951181952181953181954181955181956181957181958181959181960181961181962181963181964181965181966181967181968181969181970181971181972181973181974181975181976181977181978181979181980181981181982181983181984181985181986181987181988181989181990181991181992181993181994181995181996181997181998181999182000182001182002182003182004182005182006182007182008182009182010182011182012182013182014182015182016182017182018182019182020182021182022182023182024182025182026182027182028182029182030182031182032182033182034182035182036182037182038182039182040182041182042182043182044182045182046182047182048182049182050182051182052182053182054182055182056182057182058182059182060182061182062182063182064182065182066182067182068182069182070182071182072182073182074182075182076182077182078182079182080182081182082182083182084182085182086182087182088182089182090182091182092182093182094182095182096182097182098182099182100182101182102182103182104182105182106182107182108182109182110182111182112182113182114182115182116182117182118182119182120182121182122182123182124182125182126182127182128182129182130182131182132182133182134182135182136182137182138182139182140182141182142182143182144182145182146182147182148182149182150182151182152182153182154182155182156182157182158182159182160182161182162182163182164182165182166182167182168182169182170182171182172182173182174182175182176182177182178182179182180182181182182182183182184182185182186182187182188182189182190182191182192182193182194182195182196182197182198182199182200182201182202182203182204182205182206182207182208182209182210182211182212182213182214182215182216182217182218182219182220182221182222182223182224182225182226182227182228182229182230182231182232182233182234182235182236182237182238182239182240182241182242182243182244182245182246182247182248182249182250182251182252182253182254182255182256182257182258182259182260182261182262182263182264182265182266182267182268182269182270182271182272182273182274182275182276182277182278182279182280182281182282182283182284182285182286182287182288182289182290182291182292182293182294182295182296182297182298182299182300182301182302182303182304182305182306182307182308182309182310182311182312182313182314182315182316182317182318182319182320182321182322182323182324182325182326182327182328182329182330182331182332182333182334182335182336182337182338182339182340182341182342182343182344182345182346182347182348182349182350182351182352182353182354182355182356182357182358182359182360182361182362182363182364182365182366182367182368182369182370182371182372182373182374182375182376182377182378182379182380182381182382182383182384182385182386182387182388182389182390182391182392182393182394182395182396182397182398182399182400182401182402182403182404182405182406182407182408182409182410182411182412182413182414182415182416182417182418182419182420182421182422182423182424182425182426182427182428182429182430182431182432182433182434182435182436182437182438182439182440182441182442182443182444182445182446182447182448182449182450182451182452182453182454182455182456182457182458182459182460182461182462182463182464182465182466182467182468182469182470182471182472182473182474182475182476182477182478182479182480182481182482182483182484182485182486182487182488182489182490182491182492182493182494182495182496182497182498182499182500182501182502182503182504182505182506182507182508182509182510182511182512182513182514182515182516182517182518182519182520182521182522182523182524182525182526182527182528182529182530182531182532182533182534182535182536182537182538182539182540182541182542182543182544182545182546182547182548182549182550182551182552182553182554182555182556182557182558182559182560182561182562182563182564182565182566182567182568182569182570182571182572182573182574182575182576182577182578182579182580182581182582182583182584182585182586182587182588182589182590182591182592182593182594182595182596182597182598182599182600182601182602182603182604182605182606182607182608182609182610182611182612182613182614182615182616182617182618182619182620182621182622182623182624182625182626182627182628182629182630182631182632182633182634182635182636182637182638182639182640182641182642182643182644182645182646182647182648182649182650182651182652182653182654182655182656182657182658182659182660182661182662182663182664182665182666182667182668182669182670182671182672182673182674182675182676182677182678182679182680182681182682182683182684182685182686182687182688182689182690182691182692182693182694182695182696182697182698182699182700182701182702182703182704182705182706182707182708182709182710182711182712182713182714182715182716182717182718182719182720182721182722182723182724182725182726182727182728182729182730182731182732182733182734182735182736182737182738182739182740182741182742182743182744182745182746182747182748182749182750182751182752182753182754182755182756182757182758182759182760182761182762182763182764182765182766182767182768182769182770182771182772182773182774182775182776182777182778182779182780182781182782182783182784182785182786182787182788182789182790182791182792182793182794182795182796182797182798182799182800182801182802182803182804182805182806182807182808182809182810182811182812182813182814182815182816182817182818182819182820182821182822182823182824182825182826182827182828182829182830182831182832182833182834182835182836182837182838182839182840182841182842182843182844182845182846182847182848182849182850182851182852182853182854182855182856182857182858182859182860182861182862182863182864182865182866182867182868182869182870182871182872182873182874182875182876182877182878182879182880182881182882182883182884182885182886182887182888182889182890182891182892182893182894182895182896182897182898182899182900182901182902182903182904182905182906182907182908182909182910182911182912182913182914182915182916182917182918182919182920182921182922182923182924182925182926182927182928182929182930182931182932182933182934182935182936182937182938182939182940182941182942182943182944182945182946182947182948182949182950182951182952182953182954182955182956182957182958182959182960182961182962182963182964182965182966182967182968182969182970182971182972182973182974182975182976182977182978182979182980182981182982182983182984182985182986182987182988182989182990182991182992182993182994182995182996182997182998182999183000183001183002183003183004183005183006183007183008183009183010183011183012183013183014183015183016183017183018183019183020183021183022183023183024183025183026183027183028183029183030183031183032183033183034183035183036183037183038183039183040183041183042183043183044183045183046183047183048183049183050183051183052183053183054183055183056183057183058183059183060183061183062183063183064183065183066183067183068183069183070183071183072183073183074183075183076183077183078183079183080183081183082183083183084183085183086183087183088183089183090183091183092183093183094183095183096183097183098183099183100183101183102183103183104183105183106183107183108183109183110183111183112183113183114183115183116183117183118183119183120183121183122183123183124183125183126183127183128183129183130183131183132183133183134183135183136183137183138183139183140183141183142183143183144183145183146183147183148183149183150183151183152183153183154183155183156183157183158183159183160183161183162183163183164183165183166183167183168183169183170183171183172183173183174183175183176183177183178183179183180183181183182183183183184183185183186183187183188183189183190183191183192183193183194183195183196183197183198183199183200183201183202183203183204183205183206183207183208183209183210183211183212183213183214183215183216183217183218183219183220183221183222183223183224183225183226183227183228183229183230183231183232183233183234183235183236183237183238183239183240183241183242183243183244183245183246183247183248183249183250183251183252183253183254183255183256183257183258183259183260183261183262183263183264183265183266183267183268183269183270183271183272183273183274183275183276183277183278183279183280183281183282183283183284183285183286183287183288183289183290183291183292183293183294183295183296183297183298183299183300183301183302183303183304183305183306183307183308183309183310183311183312183313183314183315183316183317183318183319183320183321183322183323183324183325183326183327183328183329183330183331183332183333183334183335183336183337183338183339183340183341183342183343183344183345183346183347183348183349183350183351183352183353183354183355183356183357183358183359183360183361183362183363183364183365183366183367183368183369183370183371183372183373183374183375183376183377183378183379183380183381183382183383183384183385183386183387183388183389183390183391183392183393183394183395183396183397183398183399183400183401183402183403183404183405183406183407183408183409183410183411183412183413183414183415183416183417183418183419183420183421183422183423183424183425183426183427183428183429183430183431183432183433183434183435183436183437183438183439183440183441183442183443183444183445183446183447183448183449183450183451183452183453183454183455183456183457183458183459183460183461183462183463183464183465183466183467183468183469183470183471183472183473183474183475183476183477183478183479183480183481183482183483183484183485183486183487183488183489183490183491183492183493183494183495183496183497183498183499183500183501183502183503183504183505183506183507183508183509183510183511183512183513183514183515183516183517183518183519183520183521183522183523183524183525183526183527183528183529183530183531183532183533183534183535183536183537183538183539183540183541183542183543183544183545183546183547183548183549183550183551183552183553183554183555183556183557183558183559183560183561183562183563183564183565183566183567183568183569183570183571183572183573183574183575183576183577183578183579183580183581183582183583183584183585183586183587183588183589183590183591183592183593183594183595183596183597183598183599183600183601183602183603183604183605183606183607183608183609183610183611183612183613183614183615183616183617183618183619183620183621183622183623183624183625183626183627183628183629183630183631183632183633183634183635183636183637183638183639183640183641183642183643183644183645183646183647183648183649183650183651183652183653183654183655183656183657183658183659183660183661183662183663183664183665183666183667183668183669183670183671183672183673183674183675183676183677183678183679183680183681183682183683183684183685183686183687183688183689183690183691183692183693183694183695183696183697183698183699183700183701183702183703183704183705183706183707183708183709183710183711183712183713183714183715183716183717183718183719183720183721183722183723183724183725183726183727183728183729183730183731183732183733183734183735183736183737183738183739183740183741183742183743183744183745183746183747183748183749183750183751183752183753183754183755183756183757183758183759183760183761183762183763183764183765183766183767183768183769183770183771183772183773183774183775183776183777183778183779183780183781183782183783183784183785183786183787183788183789183790183791183792183793183794183795183796183797183798183799183800183801183802183803183804183805183806183807183808183809183810183811183812183813183814183815183816183817183818183819183820183821183822183823183824183825183826183827183828183829183830183831183832183833183834183835183836183837183838183839183840183841183842183843183844183845183846183847183848183849183850183851183852183853183854183855183856183857183858183859183860183861183862183863183864183865183866183867183868183869183870183871183872183873183874183875183876183877183878183879183880183881183882183883183884183885183886183887183888183889183890183891183892183893183894183895183896183897183898183899183900183901183902183903183904183905183906183907183908183909183910183911183912183913183914183915183916183917183918183919183920183921183922183923183924183925183926183927183928183929183930183931183932183933183934183935183936183937183938183939183940183941183942183943183944183945183946183947183948183949183950183951183952183953183954183955183956183957183958183959183960183961183962183963183964183965183966183967183968183969183970183971183972183973183974183975183976183977183978183979183980183981183982183983183984183985183986183987183988183989183990183991183992183993183994183995183996183997183998183999184000184001184002184003184004184005184006184007184008184009184010184011184012184013184014184015184016184017184018184019184020184021184022184023184024184025184026184027184028184029184030184031184032184033184034184035184036184037184038184039184040184041184042184043184044184045184046184047184048184049184050184051184052184053184054184055184056184057184058184059184060184061184062184063184064184065184066184067184068184069184070184071184072184073184074184075184076184077184078184079184080184081184082184083184084184085184086184087184088184089184090184091184092184093184094184095184096184097184098184099184100184101184102184103184104184105184106184107184108184109184110184111184112184113184114184115184116184117184118184119184120184121184122184123184124184125184126184127184128184129184130184131184132184133184134184135184136184137184138184139184140184141184142184143184144184145184146184147184148184149184150184151184152184153184154184155184156184157184158184159184160184161184162184163184164184165184166184167184168184169184170184171184172184173184174184175184176184177184178184179184180184181184182184183184184184185184186184187184188184189184190184191184192184193184194184195184196184197184198184199184200184201184202184203184204184205184206184207184208184209184210184211184212184213184214184215184216184217184218184219184220184221184222184223184224184225184226184227184228184229184230184231184232184233184234184235184236184237184238184239184240184241184242184243184244184245184246184247184248184249184250184251184252184253184254184255184256184257184258184259184260184261184262184263184264184265184266184267184268184269184270184271184272184273184274184275184276184277184278184279184280184281184282184283184284184285184286184287184288184289184290184291184292184293184294184295184296184297184298184299184300184301184302184303184304184305184306184307184308184309184310184311184312184313184314184315184316184317184318184319184320184321184322184323184324184325184326184327184328184329184330184331184332184333184334184335184336184337184338184339184340184341184342184343184344184345184346184347184348184349184350184351184352184353184354184355184356184357184358184359184360184361184362184363184364184365184366184367184368184369184370184371184372184373184374184375184376184377184378184379184380184381184382184383184384184385184386184387184388184389184390184391184392184393184394184395184396184397184398184399184400184401184402184403184404184405184406184407184408184409184410184411184412184413184414184415184416184417184418184419184420184421184422184423184424184425184426184427184428184429184430184431184432184433184434184435184436184437184438184439184440184441184442184443184444184445184446184447184448184449184450184451184452184453184454184455184456184457184458184459184460184461184462184463184464184465184466184467184468184469184470184471184472184473184474184475184476184477184478184479184480184481184482184483184484184485184486184487184488184489184490184491184492184493184494184495184496184497184498184499184500184501184502184503184504184505184506184507184508184509184510184511184512184513184514184515184516184517184518184519184520184521184522184523184524184525184526184527184528184529184530184531184532184533184534184535184536184537184538184539184540184541184542184543184544184545184546184547184548184549184550184551184552184553184554184555184556184557184558184559184560184561184562184563184564184565184566184567184568184569184570184571184572184573184574184575184576184577184578184579184580184581184582184583184584184585184586184587184588184589184590184591184592184593184594184595184596184597184598184599184600184601184602184603184604184605184606184607184608184609184610184611184612184613184614184615184616184617184618184619184620184621184622184623184624184625184626184627184628184629184630184631184632184633184634184635184636184637184638184639184640184641184642184643184644184645184646184647184648184649184650184651184652184653184654184655184656184657184658184659184660184661184662184663184664184665184666184667184668184669184670184671184672184673184674184675184676184677184678184679184680184681184682184683184684184685184686184687184688184689184690184691184692184693184694184695184696184697184698184699184700184701184702184703184704184705184706184707184708184709184710184711184712184713184714184715184716184717184718184719184720184721184722184723184724184725184726184727184728184729184730184731184732184733184734184735184736184737184738184739184740184741184742184743184744184745184746184747184748184749184750184751184752184753184754184755184756184757184758184759184760184761184762184763184764184765184766184767184768184769184770184771184772184773184774184775184776184777184778184779184780184781184782184783184784184785184786184787184788184789184790184791184792184793184794184795184796184797184798184799184800184801184802184803184804184805184806184807184808184809184810184811184812184813184814184815184816184817184818184819184820184821184822184823184824184825184826184827184828184829184830184831184832184833184834184835184836184837184838184839184840184841184842184843184844184845184846184847184848184849184850184851184852184853184854184855184856184857184858184859184860184861184862184863184864184865184866184867184868184869184870184871184872184873184874184875184876184877184878184879184880184881184882184883184884184885184886184887184888184889184890184891184892184893184894184895184896184897184898184899184900184901184902184903184904184905184906184907184908184909184910184911184912184913184914184915184916184917184918184919184920184921184922184923184924184925184926184927184928184929184930184931184932184933184934184935184936184937184938184939184940184941184942184943184944184945184946184947184948184949184950184951184952184953184954184955184956184957184958184959184960184961184962184963184964184965184966184967184968184969184970184971184972184973184974184975184976184977184978184979184980184981184982184983184984184985184986184987184988184989184990184991184992184993184994184995184996184997184998184999185000185001185002185003185004185005185006185007185008185009185010185011185012185013185014185015185016185017185018185019185020185021185022185023185024185025185026185027185028185029185030185031185032185033185034185035185036185037185038185039185040185041185042185043185044185045185046185047185048185049185050185051185052185053185054185055185056185057185058185059185060185061185062185063185064185065185066185067185068185069185070185071185072185073185074185075185076185077185078185079185080185081185082185083185084185085185086185087185088185089185090185091185092185093185094185095185096185097185098185099185100185101185102185103185104185105185106185107185108185109185110185111185112185113185114185115185116185117185118185119185120185121185122185123185124185125185126185127185128185129185130185131185132185133185134185135185136185137185138185139185140185141185142185143185144185145185146185147185148185149185150185151185152185153185154185155185156185157185158185159185160185161185162185163185164185165185166185167185168185169185170185171185172185173185174185175185176185177185178185179185180185181185182185183185184185185185186185187185188185189185190185191185192185193185194185195185196185197185198185199185200185201185202185203185204185205185206185207185208185209185210185211185212185213185214185215185216185217185218185219185220185221185222185223185224185225185226185227185228185229185230185231185232185233185234185235185236185237185238185239185240185241185242185243185244185245185246185247185248185249185250185251185252185253185254185255185256185257185258185259185260185261185262185263185264185265185266185267185268185269185270185271185272185273185274185275185276185277185278185279185280185281185282185283185284185285185286185287185288185289185290185291185292185293185294185295185296185297185298185299185300185301185302185303185304185305185306185307185308185309185310185311185312185313185314185315185316185317185318185319185320185321185322185323185324185325185326185327185328185329185330185331185332185333185334185335185336185337185338185339185340185341185342185343185344185345185346185347185348185349185350185351185352185353185354185355185356185357185358185359185360185361185362185363185364185365185366185367185368185369185370185371185372185373185374185375185376185377185378185379185380185381185382185383185384185385185386185387185388185389185390185391185392185393185394185395185396185397185398185399185400185401185402185403185404185405185406185407185408185409185410185411185412185413185414185415185416185417185418185419185420185421185422185423185424185425185426185427185428185429185430185431185432185433185434185435185436185437185438185439185440185441185442185443185444185445185446185447185448185449185450185451185452185453185454185455185456185457185458185459185460185461185462185463185464185465185466185467185468185469185470185471185472185473185474185475185476185477185478185479185480185481185482185483185484185485185486185487185488185489185490185491185492185493185494185495185496185497185498185499185500185501185502185503185504185505185506185507185508185509185510185511185512185513185514185515185516185517185518185519185520185521185522185523185524185525185526185527185528185529185530185531185532185533185534185535185536185537185538185539185540185541185542185543185544185545185546185547185548185549185550185551185552185553185554185555185556185557185558185559185560185561185562185563185564185565185566185567185568185569185570185571185572185573185574185575185576185577185578185579185580185581185582185583185584185585185586185587185588185589185590185591185592185593185594185595185596185597185598185599185600185601185602185603185604185605185606185607185608185609185610185611185612185613185614185615185616185617185618185619185620185621185622185623185624185625185626185627185628185629185630185631185632185633185634185635185636185637185638185639185640185641185642185643185644185645185646185647185648185649185650185651185652185653185654185655185656185657185658185659185660185661185662185663185664185665185666185667185668185669185670185671185672185673185674185675185676185677185678185679185680185681185682185683185684185685185686185687185688185689185690185691185692185693185694185695185696185697185698185699185700185701185702185703185704185705185706185707185708185709185710185711185712185713185714185715185716185717185718185719185720185721185722185723185724185725185726185727185728185729185730185731185732185733185734185735185736185737185738185739185740185741185742185743185744185745185746185747185748185749185750185751185752185753185754185755185756185757185758185759185760185761185762185763185764185765185766185767185768185769185770185771185772185773185774185775185776185777185778185779185780185781185782185783185784185785185786185787185788185789185790185791185792185793185794185795185796185797185798185799185800185801185802185803185804185805185806185807185808185809185810185811185812185813185814185815185816185817185818185819185820185821185822185823185824185825185826185827185828185829185830185831185832185833185834185835185836185837185838185839185840185841185842185843185844185845185846185847185848185849185850185851185852185853185854185855185856185857185858185859185860185861185862185863185864185865185866185867185868185869185870185871185872185873185874185875185876185877185878185879185880185881185882185883185884185885185886185887185888185889185890185891185892185893185894185895185896185897185898185899185900185901185902185903185904185905185906185907185908185909185910185911185912185913185914185915185916185917185918185919185920185921185922185923185924185925185926185927185928185929185930185931185932185933185934185935185936185937185938185939185940185941185942185943185944185945185946185947185948185949185950185951185952185953185954185955185956185957185958185959185960185961185962185963185964185965185966185967185968185969185970185971185972185973185974185975185976185977185978185979185980185981185982185983185984185985185986185987185988185989185990185991185992185993185994185995185996185997185998185999186000186001186002186003186004186005186006186007186008186009186010186011186012186013186014186015186016186017186018186019186020186021186022186023186024186025186026186027186028186029186030186031186032186033186034186035186036186037186038186039186040186041186042186043186044186045186046186047186048186049186050186051186052186053186054186055186056186057186058186059186060186061186062186063186064186065186066186067186068186069186070186071186072186073186074186075186076186077186078186079186080186081186082186083186084186085186086186087186088186089186090186091186092186093186094186095186096186097186098186099186100186101186102186103186104186105186106186107186108186109186110186111186112186113186114186115186116186117186118186119186120186121186122186123186124186125186126186127186128186129186130186131186132186133186134186135186136186137186138186139186140186141186142186143186144186145186146186147186148186149186150186151186152186153186154186155186156186157186158186159186160186161186162186163186164186165186166186167186168186169186170186171186172186173186174186175186176186177186178186179186180186181186182186183186184186185186186186187186188186189186190186191186192186193186194186195186196186197186198186199186200186201186202186203186204186205186206186207186208186209186210186211186212186213186214186215186216186217186218186219186220186221186222186223186224186225186226186227186228186229186230186231186232186233186234186235186236186237186238186239186240186241186242186243186244186245186246186247186248186249186250186251186252186253186254186255186256186257186258186259186260186261186262186263186264186265186266186267186268186269186270186271186272186273186274186275186276186277186278186279186280186281186282186283186284186285186286186287186288186289186290186291186292186293186294186295186296186297186298186299186300186301186302186303186304186305186306186307186308186309186310186311186312186313186314186315186316186317186318186319186320186321186322186323186324186325186326186327186328186329186330186331186332186333186334186335186336186337186338186339186340186341186342186343186344186345186346186347186348186349186350186351186352186353186354186355186356186357186358186359186360186361186362186363186364186365186366186367186368186369186370186371186372186373186374186375186376186377186378186379186380186381186382186383186384186385186386186387186388186389186390186391186392186393186394186395186396186397186398186399186400186401186402186403186404186405186406186407186408186409186410186411186412186413186414186415186416186417186418186419186420186421186422186423186424186425186426186427186428186429186430186431186432186433186434186435186436186437186438186439186440186441186442186443186444186445186446186447186448186449186450186451186452186453186454186455186456186457186458186459186460186461186462186463186464186465186466186467186468186469186470186471186472186473186474186475186476186477186478186479186480186481186482186483186484186485186486186487186488186489186490186491186492186493186494186495186496186497186498186499186500186501186502186503186504186505186506186507186508186509186510186511186512186513186514186515186516186517186518186519186520186521186522186523186524186525186526186527186528186529186530186531186532186533186534186535186536186537186538186539186540186541186542186543186544186545186546186547186548186549186550186551186552186553186554186555186556186557186558186559186560186561186562186563186564186565186566186567186568186569186570186571186572186573186574186575186576186577186578186579186580186581186582186583186584186585186586186587186588186589186590186591186592186593186594186595186596186597186598186599186600186601186602186603186604186605186606186607186608186609186610186611186612186613186614186615186616186617186618186619186620186621186622186623186624186625186626186627186628186629186630186631186632186633186634186635186636186637186638186639186640186641186642186643186644186645186646186647186648186649186650186651186652186653186654186655186656186657186658186659186660186661186662186663186664186665186666186667186668186669186670186671186672186673186674186675186676186677186678186679186680186681186682186683186684186685186686186687186688186689186690186691186692186693186694186695186696186697186698186699186700186701186702186703186704186705186706186707186708186709186710186711186712186713186714186715186716186717186718186719186720186721186722186723186724186725186726186727186728186729186730186731186732186733186734186735186736186737186738186739186740186741186742186743186744186745186746186747186748186749186750186751186752186753186754186755186756186757186758186759186760186761186762186763186764186765186766186767186768186769186770186771186772186773186774186775186776186777186778186779186780186781186782186783186784186785186786186787186788186789186790186791186792186793186794186795186796186797186798186799186800186801186802186803186804186805186806186807186808186809186810186811186812186813186814186815186816186817186818186819186820186821186822186823186824186825186826186827186828186829186830186831186832186833186834186835186836186837186838186839186840186841186842186843186844186845186846186847186848186849186850186851186852186853186854186855186856186857186858186859186860186861186862186863186864186865186866186867186868186869186870186871186872186873186874186875186876186877186878186879186880186881186882186883186884186885186886186887186888186889186890186891186892186893186894186895186896186897186898186899186900186901186902186903186904186905186906186907186908186909186910186911186912186913186914186915186916186917186918186919186920186921186922186923186924186925186926186927186928186929186930186931186932186933186934186935186936186937186938186939186940186941186942186943186944186945186946186947186948186949186950186951186952186953186954186955186956186957186958186959186960186961186962186963186964186965186966186967186968186969186970186971186972186973186974186975186976186977186978186979186980186981186982186983186984186985186986186987186988186989186990186991186992186993186994186995186996186997186998186999187000187001187002187003187004187005187006187007187008187009187010187011187012187013187014187015187016187017187018187019187020187021187022187023187024187025187026187027187028187029187030187031187032187033187034187035187036187037187038187039187040187041187042187043187044187045187046187047187048187049187050187051187052187053187054187055187056187057187058187059187060187061187062187063187064187065187066187067187068187069187070187071187072187073187074187075187076187077187078187079187080187081187082187083187084187085187086187087187088187089187090187091187092187093187094187095187096187097187098187099187100187101187102187103187104187105187106187107187108187109187110187111187112187113187114187115187116187117187118187119187120187121187122187123187124187125187126187127187128187129187130187131187132187133187134187135187136187137187138187139187140187141187142187143187144187145187146187147187148187149187150187151187152187153187154187155187156187157187158187159187160187161187162187163187164187165187166187167187168187169187170187171187172187173187174187175187176187177187178187179187180187181187182187183187184187185187186187187187188187189187190187191187192187193187194187195187196187197187198187199187200187201187202187203187204187205187206187207187208187209187210187211187212187213187214187215187216187217187218187219187220187221187222187223187224187225187226187227187228187229187230187231187232187233187234187235187236187237187238187239187240187241187242187243187244187245187246187247187248187249187250187251187252187253187254187255187256187257187258187259187260187261187262187263187264187265187266187267187268187269187270187271187272187273187274187275187276187277187278187279187280187281187282187283187284187285187286187287187288187289187290187291187292187293187294187295187296187297187298187299187300187301187302187303187304187305187306187307187308187309187310187311187312187313187314187315187316187317187318187319187320187321187322187323187324187325187326187327187328187329187330187331187332187333187334187335187336187337187338187339187340187341187342187343187344187345187346187347187348187349187350187351187352187353187354187355187356187357187358187359187360187361187362187363187364187365187366187367187368187369187370187371187372187373187374187375187376187377187378187379187380187381187382187383187384187385187386187387187388187389187390187391187392187393187394187395187396187397187398187399187400187401187402187403187404187405187406187407187408187409187410187411187412187413187414187415187416187417187418187419187420187421187422187423187424187425187426187427187428187429187430187431187432187433187434187435187436187437187438187439187440187441187442187443187444187445187446187447187448187449187450187451187452187453187454187455187456187457187458187459187460187461187462187463187464187465187466187467187468187469187470187471187472187473187474187475187476187477187478187479187480187481187482187483187484187485187486187487187488187489187490187491187492187493187494187495187496187497187498187499187500187501187502187503187504187505187506187507187508187509187510187511187512187513187514187515187516187517187518187519187520187521187522187523187524187525187526187527187528187529187530187531187532187533187534187535187536187537187538187539187540187541187542187543187544187545187546187547187548187549187550187551187552187553187554187555187556187557187558187559187560187561187562187563187564187565187566187567187568187569187570187571187572187573187574187575187576187577187578187579187580187581187582187583187584187585187586187587187588187589187590187591187592187593187594187595187596187597187598187599187600187601187602187603187604187605187606187607187608187609187610187611187612187613187614187615187616187617187618187619187620187621187622187623187624187625187626187627187628187629187630187631187632187633187634187635187636187637187638187639187640187641187642187643187644187645187646187647187648187649187650187651187652187653187654187655187656187657187658187659187660187661187662187663187664187665187666187667187668187669187670187671187672187673187674187675187676187677187678187679187680187681187682187683187684187685187686187687187688187689187690187691187692187693187694187695187696187697187698187699187700187701187702187703187704187705187706187707187708187709187710187711187712187713187714187715187716187717187718187719187720187721187722187723187724187725187726187727187728187729187730187731187732187733187734187735187736187737187738187739187740187741187742187743187744187745187746187747187748187749187750187751187752187753187754187755187756187757187758187759187760187761187762187763187764187765187766187767187768187769187770187771187772187773187774187775187776187777187778187779187780187781187782187783187784187785187786187787187788187789187790187791187792187793187794187795187796187797187798187799187800187801187802187803187804187805187806187807187808187809187810187811187812187813187814187815187816187817187818187819187820187821187822187823187824187825187826187827187828187829187830187831187832187833187834187835187836187837187838187839187840187841187842187843187844187845187846187847187848187849187850187851187852187853187854187855187856187857187858187859187860187861187862187863187864187865187866187867187868187869187870187871187872187873187874187875187876187877187878187879187880187881187882187883187884187885187886187887187888187889187890187891187892187893187894187895187896187897187898187899187900187901187902187903187904187905187906187907187908187909187910187911187912187913187914187915187916187917187918187919187920187921187922187923187924187925187926187927187928187929187930187931187932187933187934187935187936187937187938187939187940187941187942187943187944187945187946187947187948187949187950187951187952187953187954187955187956187957187958187959187960187961187962187963187964187965187966187967187968187969187970187971187972187973187974187975187976187977187978187979187980187981187982187983187984187985187986187987187988187989187990187991187992187993187994187995187996187997187998187999188000188001188002188003188004188005188006188007188008188009188010188011188012188013188014188015188016188017188018188019188020188021188022188023188024188025188026188027188028188029188030188031188032188033188034188035188036188037188038188039188040188041188042188043188044188045188046188047188048188049188050188051188052188053188054188055188056188057188058188059188060188061188062188063188064188065188066188067188068188069188070188071188072188073188074188075188076188077188078188079188080188081188082188083188084188085188086188087188088188089188090188091188092188093188094188095188096188097188098188099188100188101188102188103188104188105188106188107188108188109188110188111188112188113188114188115188116188117188118188119188120188121188122188123188124188125188126188127188128188129188130188131188132188133188134188135188136188137188138188139188140188141188142188143188144188145188146188147188148188149188150188151188152188153188154188155188156188157188158188159188160188161188162188163188164188165188166188167188168188169188170188171188172188173188174188175188176188177188178188179188180188181188182188183188184188185188186188187188188188189188190188191188192188193188194188195188196188197188198188199188200188201188202188203188204188205188206188207188208188209188210188211188212188213188214188215188216188217188218188219188220188221188222188223188224188225188226188227188228188229188230188231188232188233188234188235188236188237188238188239188240188241188242188243188244188245188246188247188248188249188250188251188252188253188254188255188256188257188258188259188260188261188262188263188264188265188266188267188268188269188270188271188272188273188274188275188276188277188278188279188280188281188282188283188284188285188286188287188288188289188290188291188292188293188294188295188296188297188298188299188300188301188302188303188304188305188306188307188308188309188310188311188312188313188314188315188316188317188318188319188320188321188322188323188324188325188326188327188328188329188330188331188332188333188334188335188336188337188338188339188340188341188342188343188344188345188346188347188348188349188350188351188352188353188354188355188356188357188358188359188360188361188362188363188364188365188366188367188368188369188370188371188372188373188374188375188376188377188378188379188380188381188382188383188384188385188386188387188388188389188390188391188392188393188394188395188396188397188398188399188400188401188402188403188404188405188406188407188408188409188410188411188412188413188414188415188416188417188418188419188420188421188422188423188424188425188426188427188428188429188430188431188432188433188434188435188436188437188438188439188440188441188442188443188444188445188446188447188448188449188450188451188452188453188454188455188456188457188458188459188460188461188462188463188464188465188466188467188468188469188470188471188472188473188474188475188476188477188478188479188480188481188482188483188484188485188486188487188488188489188490188491188492188493188494188495188496188497188498188499188500188501188502188503188504188505188506188507188508188509188510188511188512188513188514188515188516188517188518188519188520188521188522188523188524188525188526188527188528188529188530188531188532188533188534188535188536188537188538188539188540188541188542188543188544188545188546188547188548188549188550188551188552188553188554188555188556188557188558188559188560188561188562188563188564188565188566188567188568188569188570188571188572188573188574188575188576188577188578188579188580188581188582188583188584188585188586188587188588188589188590188591188592188593188594188595188596188597188598188599188600188601188602188603188604188605188606188607188608188609188610188611188612188613188614188615188616188617188618188619188620188621188622188623188624188625188626188627188628188629188630188631188632188633188634188635188636188637188638188639188640188641188642188643188644188645188646188647188648188649188650188651188652188653188654188655188656188657188658188659188660188661188662188663188664188665188666188667188668188669188670188671188672188673188674188675188676188677188678188679188680188681188682188683188684188685188686188687188688188689188690188691188692188693188694188695188696188697188698188699188700188701188702188703188704188705188706188707188708188709188710188711188712188713188714188715188716188717188718188719188720188721188722188723188724188725188726188727188728188729188730188731188732188733188734188735188736188737188738188739188740188741188742188743188744188745188746188747188748188749188750188751188752188753188754188755188756188757188758188759188760188761188762188763188764188765188766188767188768188769188770188771188772188773188774188775188776188777188778188779188780188781188782188783188784188785188786188787188788188789188790188791188792188793188794188795188796188797188798188799188800188801188802188803188804188805188806188807188808188809188810188811188812188813188814188815188816188817188818188819188820188821188822188823188824188825188826188827188828188829188830188831188832188833188834188835188836188837188838188839188840188841188842188843188844188845188846188847188848188849188850188851188852188853188854188855188856188857188858188859188860188861188862188863188864188865188866188867188868188869188870188871188872188873188874188875188876188877188878188879188880188881188882188883188884188885188886188887188888188889188890188891188892188893188894188895188896188897188898188899188900188901188902188903188904188905188906188907188908188909188910188911188912188913188914188915188916188917188918188919188920188921188922188923188924188925188926188927188928188929188930188931188932188933188934188935188936188937188938188939188940188941188942188943188944188945188946188947188948188949188950188951188952188953188954188955188956188957188958188959188960188961188962188963188964188965188966188967188968188969188970188971188972188973188974188975188976188977188978188979188980188981188982188983188984188985188986188987188988188989188990188991188992188993188994188995188996188997188998188999189000189001189002189003189004189005189006189007189008189009189010189011189012189013189014189015189016189017189018189019189020189021189022189023189024189025189026189027189028189029189030189031189032189033189034189035189036189037189038189039189040189041189042189043189044189045189046189047189048189049189050189051189052189053189054189055189056189057189058189059189060189061189062189063189064189065189066189067189068189069189070189071189072189073189074189075189076189077189078189079189080189081189082189083189084189085189086189087189088189089189090189091189092189093189094189095189096189097189098189099189100189101189102189103189104189105189106189107189108189109189110189111189112189113189114189115189116189117189118189119189120189121189122189123189124189125189126189127189128189129189130189131189132189133189134189135189136189137189138189139189140189141189142189143189144189145189146189147189148189149189150189151189152189153189154189155189156189157189158189159189160189161189162189163189164189165189166189167189168189169189170189171189172189173189174189175189176189177189178189179189180189181189182189183189184189185189186189187189188189189189190189191189192189193189194189195189196189197189198189199189200189201189202189203189204189205189206189207189208189209189210189211189212189213189214189215189216189217189218189219189220189221189222189223189224189225189226189227189228189229189230189231189232189233189234189235189236189237189238189239189240189241189242189243189244189245189246189247189248189249189250189251189252189253189254189255189256189257189258189259189260189261189262189263189264189265189266189267189268189269189270189271189272189273189274189275189276189277189278189279189280189281189282189283189284189285189286189287189288189289189290189291189292189293189294189295189296189297189298189299189300189301189302189303189304189305189306189307189308189309189310189311189312189313189314189315189316189317189318189319189320189321189322189323189324189325189326189327189328189329189330189331189332189333189334189335189336189337189338189339189340189341189342189343189344189345189346189347189348189349189350189351189352189353189354189355189356189357189358189359189360189361189362189363189364189365189366189367189368189369189370189371189372189373189374189375189376189377189378189379189380189381189382189383189384189385189386189387189388189389189390189391189392189393189394189395189396189397189398189399189400189401189402189403189404189405189406189407189408189409189410189411189412189413189414189415189416189417189418189419189420189421189422189423189424189425189426189427189428189429189430189431189432189433189434189435189436189437189438189439189440189441189442189443189444189445189446189447189448189449189450189451189452189453189454189455189456189457189458189459189460189461189462189463189464189465189466189467189468189469189470189471189472189473189474189475189476189477189478189479189480189481189482189483189484189485189486189487189488189489189490189491189492189493189494189495189496189497189498189499189500189501189502189503189504189505189506189507189508189509189510189511189512189513189514189515189516189517189518189519189520189521189522189523189524189525189526189527189528189529189530189531189532189533189534189535189536189537189538189539189540189541189542189543189544189545189546189547189548189549189550189551189552189553189554189555189556189557189558189559189560189561189562189563189564189565189566189567189568189569189570189571189572189573189574189575189576189577189578189579189580189581189582189583189584189585189586189587189588189589189590189591189592189593189594189595189596189597189598189599189600189601189602189603189604189605189606189607189608189609189610189611189612189613189614189615189616189617189618189619189620189621189622189623189624189625189626189627189628189629189630189631189632189633189634189635189636189637189638189639189640189641189642189643189644189645189646189647189648189649189650189651189652189653189654189655189656189657189658189659189660189661189662189663189664189665189666189667189668189669189670189671189672189673189674189675189676189677189678189679189680189681189682189683189684189685189686189687189688189689189690189691189692189693189694189695189696189697189698189699189700189701189702189703189704189705189706189707189708189709189710189711189712189713189714189715189716189717189718189719189720189721189722189723189724189725189726189727189728189729189730189731189732189733189734189735189736189737189738189739189740189741189742189743189744189745189746189747189748189749189750189751189752189753189754189755189756189757189758189759189760189761189762189763189764189765189766189767189768189769189770189771189772189773189774189775189776189777189778189779189780189781189782189783189784189785189786189787189788189789189790189791189792189793189794189795189796189797189798189799189800189801189802189803189804189805189806189807189808189809189810189811189812189813189814189815189816189817189818189819189820189821189822189823189824189825189826189827189828189829189830189831189832189833189834189835189836189837189838189839189840189841189842189843189844189845189846189847189848189849189850189851189852189853189854189855189856189857189858189859189860189861189862189863189864189865189866189867189868189869189870189871189872189873189874189875189876189877189878189879189880189881189882189883189884189885189886189887189888189889189890189891189892189893189894189895189896189897189898189899189900189901189902189903189904189905189906189907189908189909189910189911189912189913189914189915189916189917189918189919189920189921189922189923189924189925189926189927189928189929189930189931189932189933189934189935189936189937189938189939189940189941189942189943189944189945189946189947189948189949189950189951189952189953189954189955189956189957189958189959189960189961189962189963189964189965189966189967189968189969189970189971189972189973189974189975189976189977189978189979189980189981189982189983189984189985189986189987189988189989189990189991189992189993189994189995189996189997189998189999190000190001190002190003190004190005190006190007190008190009190010190011190012190013190014190015190016190017190018190019190020190021190022190023190024190025190026190027190028190029190030190031190032190033190034190035190036190037190038190039190040190041190042190043190044190045190046190047190048190049190050190051190052190053190054190055190056190057190058190059190060190061190062190063190064190065190066190067190068190069190070190071190072190073190074190075190076190077190078190079190080190081190082190083190084190085190086190087190088190089190090190091190092190093190094190095190096190097190098190099190100190101190102190103190104190105190106190107190108190109190110190111190112190113190114190115190116190117190118190119190120190121190122190123190124190125190126190127190128190129190130190131190132190133190134190135190136190137190138190139190140190141190142190143190144190145190146190147190148190149190150190151190152190153190154190155190156190157190158190159190160190161190162190163190164190165190166190167190168190169190170190171190172190173190174190175190176190177190178190179190180190181190182190183190184190185190186190187190188190189190190190191190192190193190194190195190196190197190198190199190200190201190202190203190204190205190206190207190208190209190210190211190212190213190214190215190216190217190218190219190220190221190222190223190224190225190226190227190228190229190230190231190232190233190234190235190236190237190238190239190240190241190242190243190244190245190246190247190248190249190250190251190252190253190254190255190256190257190258190259190260190261190262190263190264190265190266190267190268190269190270190271190272190273190274190275190276190277190278190279190280190281190282190283190284190285190286190287190288190289190290190291190292190293190294190295190296190297190298190299190300190301190302190303190304190305190306190307190308190309190310190311190312190313190314190315190316190317190318190319190320190321190322190323190324190325190326190327190328190329190330190331190332190333190334190335190336190337190338190339190340190341190342190343190344190345190346190347190348190349190350190351190352190353190354190355190356190357190358190359190360190361190362190363190364190365190366190367190368190369190370190371190372190373190374190375190376190377190378190379190380190381190382190383190384190385190386190387190388190389190390190391190392190393190394190395190396190397190398190399190400190401190402190403190404190405190406190407190408190409190410190411190412190413190414190415190416190417190418190419190420190421190422190423190424190425190426190427190428190429190430190431190432190433190434190435190436190437190438190439190440190441190442190443190444190445190446190447190448190449190450190451190452190453190454190455190456190457190458190459190460190461190462190463190464190465190466190467190468190469190470190471190472190473190474190475190476190477190478190479190480190481190482190483190484190485190486190487190488190489190490190491190492190493190494190495190496190497190498190499190500190501190502190503190504190505190506190507190508190509190510190511190512190513190514190515190516190517190518190519190520190521190522190523190524190525190526190527190528190529190530190531190532190533190534190535190536190537190538190539190540190541190542190543190544190545190546190547190548190549190550190551190552190553190554190555190556190557190558190559190560190561190562190563190564190565190566190567190568190569190570190571190572190573190574190575190576190577190578190579190580190581190582190583190584190585190586190587190588190589190590190591190592190593190594190595190596190597190598190599190600190601190602190603190604190605190606190607190608190609190610190611190612190613190614190615190616190617190618190619190620190621190622190623190624190625190626190627190628190629190630190631190632190633190634190635190636190637190638190639190640190641190642190643190644190645190646190647190648190649190650190651190652190653190654190655190656190657190658190659190660190661190662190663190664190665190666190667190668190669190670190671190672190673190674190675190676190677190678190679190680190681190682190683190684190685190686190687190688190689190690190691190692190693190694190695190696190697190698190699190700190701190702190703190704190705190706190707190708190709190710190711190712190713190714190715190716190717190718190719190720190721190722190723190724190725190726190727190728190729190730190731190732190733190734190735190736190737190738190739190740190741190742190743190744190745190746190747190748190749190750190751190752190753190754190755190756190757190758190759190760190761190762190763190764190765190766190767190768190769190770190771190772190773190774190775190776190777190778190779190780190781190782190783190784190785190786190787190788190789190790190791190792190793190794190795190796190797190798190799190800190801190802190803190804190805190806190807190808190809190810190811190812190813190814190815190816190817190818190819190820190821190822190823190824190825190826190827190828190829190830190831190832190833190834190835190836190837190838190839190840190841190842190843190844190845190846190847190848190849190850190851190852190853190854190855190856190857190858190859190860190861190862190863190864190865190866190867190868190869190870190871190872190873190874190875190876190877190878190879190880190881190882190883190884190885190886190887190888190889190890190891190892190893190894190895190896190897190898190899190900190901190902190903190904190905190906190907190908190909190910190911190912190913190914190915190916190917190918190919190920190921190922190923190924190925190926190927190928190929190930190931190932190933190934190935190936190937190938190939190940190941190942190943190944190945190946190947190948190949190950190951190952190953190954190955190956190957190958190959190960190961190962190963190964190965190966190967190968190969190970190971190972190973190974190975190976190977190978190979190980190981190982190983190984190985190986190987190988190989190990190991190992190993190994190995190996190997190998190999191000191001191002191003191004191005191006191007191008191009191010191011191012191013191014191015191016191017191018191019191020191021191022191023191024191025191026191027191028191029191030191031191032191033191034191035191036191037191038191039191040191041191042191043191044191045191046191047191048191049191050191051191052191053191054191055191056191057191058191059191060191061191062191063191064191065191066191067191068191069191070191071191072191073191074191075191076191077191078191079191080191081191082191083191084191085191086191087191088191089191090191091191092191093191094191095191096191097191098191099191100191101191102191103191104191105191106191107191108191109191110191111191112191113191114191115191116191117191118191119191120191121191122191123191124191125191126191127191128191129191130191131191132191133191134191135191136191137191138191139191140191141191142191143191144191145191146191147191148191149191150191151191152191153191154191155191156191157191158191159191160191161191162191163191164191165191166191167191168191169191170191171191172191173191174191175191176191177191178191179191180191181191182191183191184191185191186191187191188191189191190191191191192191193191194191195191196191197191198191199191200191201191202191203191204191205191206191207191208191209191210191211191212191213191214191215191216191217191218191219191220191221191222191223191224191225191226191227191228191229191230191231191232191233191234191235191236191237191238191239191240191241191242191243191244191245191246191247191248191249191250191251191252191253191254191255191256191257191258191259191260191261191262191263191264191265191266191267191268191269191270191271191272191273191274191275191276191277191278191279191280191281191282191283191284191285191286191287191288191289191290191291191292191293191294191295191296191297191298191299191300191301191302191303191304191305191306191307191308191309191310191311191312191313191314191315191316191317191318191319191320191321191322191323191324191325191326191327191328191329191330191331191332191333191334191335191336191337191338191339191340191341191342191343191344191345191346191347191348191349191350191351191352191353191354191355191356191357191358191359191360191361191362191363191364191365191366191367191368191369191370191371191372191373191374191375191376191377191378191379191380191381191382191383191384191385191386191387191388191389191390191391191392191393191394191395191396191397191398191399191400191401191402191403191404191405191406191407191408191409191410191411191412191413191414191415191416191417191418191419191420191421191422191423191424191425191426191427191428191429191430191431191432191433191434191435191436191437191438191439191440191441191442191443191444191445191446191447191448191449191450191451191452191453191454191455191456191457191458191459191460191461191462191463191464191465191466191467191468191469191470191471191472191473191474191475191476191477191478191479191480191481191482191483191484191485191486191487191488191489191490191491191492191493191494191495191496191497191498191499191500191501191502191503191504191505191506191507191508191509191510191511191512191513191514191515191516191517191518191519191520191521191522191523191524191525191526191527191528191529191530191531191532191533191534191535191536191537191538191539191540191541191542191543191544191545191546191547191548191549191550191551191552191553191554191555191556191557191558191559191560191561191562191563191564191565191566191567191568191569191570191571191572191573191574191575191576191577191578191579191580191581191582191583191584191585191586191587191588191589191590191591191592191593191594191595191596191597191598191599191600191601191602191603191604191605191606191607191608191609191610191611191612191613191614191615191616191617191618191619191620191621191622191623191624191625191626191627191628191629191630191631191632191633191634191635191636191637191638191639191640191641191642191643191644191645191646191647191648191649191650191651191652191653191654191655191656191657191658191659191660191661191662191663191664191665191666191667191668191669191670191671191672191673191674191675191676191677191678191679191680191681191682191683191684191685191686191687191688191689191690191691191692191693191694191695191696191697191698191699191700191701191702191703191704191705191706191707191708191709191710191711191712191713191714191715191716191717191718191719191720191721191722191723191724191725191726191727191728191729191730191731191732191733191734191735191736191737191738191739191740191741191742191743191744191745191746191747191748191749191750191751191752191753191754191755191756191757191758191759191760191761191762191763191764191765191766191767191768191769191770191771191772191773191774191775191776191777191778191779191780191781191782191783191784191785191786191787191788191789191790191791191792191793191794191795191796191797191798191799191800191801191802191803191804191805191806191807191808191809191810191811191812191813191814191815191816191817191818191819191820191821191822191823191824191825191826191827191828191829191830191831191832191833191834191835191836191837191838191839191840191841191842191843191844191845191846191847191848191849191850191851191852191853191854191855191856191857191858191859191860191861191862191863191864191865191866191867191868191869191870191871191872191873191874191875191876191877191878191879191880191881191882191883191884191885191886191887191888191889191890191891191892191893191894191895191896191897191898191899191900191901191902191903191904191905191906191907191908191909191910191911191912191913191914191915191916191917191918191919191920191921191922191923191924191925191926191927191928191929191930191931191932191933191934191935191936191937191938191939191940191941191942191943191944191945191946191947191948191949191950191951191952191953191954191955191956191957191958191959191960191961191962191963191964191965191966191967191968191969191970191971191972191973191974191975191976191977191978191979191980191981191982191983191984191985191986191987191988191989191990191991191992191993191994191995191996191997191998191999192000192001192002192003192004192005192006192007192008192009192010192011192012192013192014192015192016192017192018192019192020192021192022192023192024192025192026192027192028192029192030192031192032192033192034192035192036192037192038192039192040192041192042192043192044192045192046192047192048192049192050192051192052192053192054192055192056192057192058192059192060192061192062192063192064192065192066192067192068192069192070192071192072192073192074192075192076192077192078192079192080192081192082192083192084192085192086192087192088192089192090192091192092192093192094192095192096192097192098192099192100192101192102192103192104192105192106192107192108192109192110192111192112192113192114192115192116192117192118192119192120192121192122192123192124192125192126192127192128192129192130192131192132192133192134192135192136192137192138192139192140192141192142192143192144192145192146192147192148192149192150192151192152192153192154192155192156192157192158192159192160192161192162192163192164192165192166192167192168192169192170192171192172192173192174192175192176192177192178192179192180192181192182192183192184192185192186192187192188192189192190192191192192192193192194192195192196192197192198192199192200192201192202192203192204192205192206192207192208192209192210192211192212192213192214192215192216192217192218192219192220192221192222192223192224192225192226192227192228192229192230192231192232192233192234192235192236192237192238192239192240192241192242192243192244192245192246192247192248192249192250192251192252192253192254192255192256192257192258192259192260192261192262192263192264192265192266192267192268192269192270192271192272192273192274192275192276192277192278192279192280192281192282192283192284192285192286192287192288192289192290192291192292192293192294192295192296192297192298192299192300192301192302192303192304192305192306192307192308192309192310192311192312192313192314192315192316192317192318192319192320192321192322192323192324192325192326192327192328192329192330192331192332192333192334192335192336192337192338192339192340192341192342192343192344192345192346192347192348192349192350192351192352192353192354192355192356192357192358192359192360192361192362192363192364192365192366192367192368192369192370192371192372192373192374192375192376192377192378192379192380192381192382192383192384192385192386192387192388192389192390192391192392192393192394192395192396192397192398192399192400192401192402192403192404192405192406192407192408192409192410192411192412192413192414192415192416192417192418192419192420192421192422192423192424192425192426192427192428192429192430192431192432192433192434192435192436192437192438192439192440192441192442192443192444192445192446192447192448192449192450192451192452192453192454192455192456192457192458192459192460192461192462192463192464192465192466192467192468192469192470192471192472192473192474192475192476192477192478192479192480192481192482192483192484192485192486192487192488192489192490192491192492192493192494192495192496192497192498192499192500192501192502192503192504192505192506192507192508192509192510192511192512192513192514192515192516192517192518192519192520192521192522192523192524192525192526192527192528192529192530192531192532192533192534192535192536192537192538192539192540192541192542192543192544192545192546192547192548192549192550192551192552192553192554192555192556192557192558192559192560192561192562192563192564192565192566192567192568192569192570192571192572192573192574192575192576192577192578192579192580192581192582192583192584192585192586192587192588192589192590192591192592192593192594192595192596192597192598192599192600192601192602192603192604192605192606192607192608192609192610192611192612192613192614192615192616192617192618192619192620192621192622192623192624192625192626192627192628192629192630192631192632192633192634192635192636192637192638192639192640192641192642192643192644192645192646192647192648192649192650192651192652192653192654192655192656192657192658192659192660192661192662192663192664192665192666192667192668192669192670192671192672192673192674192675192676192677192678192679192680192681192682192683192684192685192686192687192688192689192690192691192692192693192694192695192696192697192698192699192700192701192702192703192704192705192706192707192708192709192710192711192712192713192714192715192716192717192718192719192720192721192722192723192724192725192726192727192728192729192730192731192732192733192734192735192736192737192738192739192740192741192742192743192744192745192746192747192748192749192750192751192752192753192754192755192756192757192758192759192760192761192762192763192764192765192766192767192768192769192770192771192772192773192774192775192776192777192778192779192780192781192782192783192784192785192786192787192788192789192790192791192792192793192794192795192796192797192798192799192800192801192802192803192804192805192806192807192808192809192810192811192812192813192814192815192816192817192818192819192820192821192822192823192824192825192826192827192828192829192830192831192832192833192834192835192836192837192838192839192840192841192842192843192844192845192846192847192848192849192850192851192852192853192854192855192856192857192858192859192860192861192862192863192864192865192866192867192868192869192870192871192872192873192874192875192876192877192878192879192880192881192882192883192884192885192886192887192888192889192890192891192892192893192894192895192896192897192898192899192900192901192902192903192904192905192906192907192908192909192910192911192912192913192914192915192916192917192918192919192920192921192922192923192924192925192926192927192928192929192930192931192932192933192934192935192936192937192938192939192940192941192942192943192944192945192946192947192948192949192950192951192952192953192954192955192956192957192958192959192960192961192962192963192964192965192966192967192968192969192970192971192972192973192974192975192976192977192978192979192980192981192982192983192984192985192986192987192988192989192990192991192992192993192994192995192996192997192998192999193000193001193002193003193004193005193006193007193008193009193010193011193012193013193014193015193016193017193018193019193020193021193022193023193024193025193026193027193028193029193030193031193032193033193034193035193036193037193038193039193040193041193042193043193044193045193046193047193048193049193050193051193052193053193054193055193056193057193058193059193060193061193062193063193064193065193066193067193068193069193070193071193072193073193074193075193076193077193078193079193080193081193082193083193084193085193086193087193088193089193090193091193092193093193094193095193096193097193098193099193100193101193102193103193104193105193106193107193108193109193110193111193112193113193114193115193116193117193118193119193120193121193122193123193124193125193126193127193128193129193130193131193132193133193134193135193136193137193138193139193140193141193142193143193144193145193146193147193148193149193150193151193152193153193154193155193156193157193158193159193160193161193162193163193164193165193166193167193168193169193170193171193172193173193174193175193176193177193178193179193180193181193182193183193184193185193186193187193188193189193190193191193192193193193194193195193196193197193198193199193200193201193202193203193204193205193206193207193208193209193210193211193212193213193214193215193216193217193218193219193220193221193222193223193224193225193226193227193228193229193230193231193232193233193234193235193236193237193238193239193240193241193242193243193244193245193246193247193248193249193250193251193252193253193254193255193256193257193258193259193260193261193262193263193264193265193266193267193268193269193270193271193272193273193274193275193276193277193278193279193280193281193282193283193284193285193286193287193288193289193290193291193292193293193294193295193296193297193298193299193300193301193302193303193304193305193306193307193308193309193310193311193312193313193314193315193316193317193318193319193320193321193322193323193324193325193326193327193328193329193330193331193332193333193334193335193336193337193338193339193340193341193342193343193344193345193346193347193348193349193350193351193352193353193354193355193356193357193358193359193360193361193362193363193364193365193366193367193368193369193370193371193372193373193374193375193376193377193378193379193380193381193382193383193384193385193386193387193388193389193390193391193392193393193394193395193396193397193398193399193400193401193402193403193404193405193406193407193408193409193410193411193412193413193414193415193416193417193418193419193420193421193422193423193424193425193426193427193428193429193430193431193432193433193434193435193436193437193438193439193440193441193442193443193444193445193446193447193448193449193450193451193452193453193454193455193456193457193458193459193460193461193462193463193464193465193466193467193468193469193470193471193472193473193474193475193476193477193478193479193480193481193482193483193484193485193486193487193488193489193490193491193492193493193494193495193496193497193498193499193500193501193502193503193504193505193506193507193508193509193510193511193512193513193514193515193516193517193518193519193520193521193522193523193524193525193526193527193528193529193530193531193532193533193534193535193536193537193538193539193540193541193542193543193544193545193546193547193548193549193550193551193552193553193554193555193556193557193558193559193560193561193562193563193564193565193566193567193568193569193570193571193572193573193574193575193576193577193578193579193580193581193582193583193584193585193586193587193588193589193590193591193592193593193594193595193596193597193598193599193600193601193602193603193604193605193606193607193608193609193610193611193612193613193614193615193616193617193618193619193620193621193622193623193624193625193626193627193628193629193630193631193632193633193634193635193636193637193638193639193640193641193642193643193644193645193646193647193648193649193650193651193652193653193654193655193656193657193658193659193660193661193662193663193664193665193666193667193668193669193670193671193672193673193674193675193676193677193678193679193680193681193682193683193684193685193686193687193688193689193690193691193692193693193694193695193696193697193698193699193700193701193702193703193704193705193706193707193708193709193710193711193712193713193714193715193716193717193718193719193720193721193722193723193724193725193726193727193728193729193730193731193732193733193734193735193736193737193738193739193740193741193742193743193744193745193746193747193748193749193750193751193752193753193754193755193756193757193758193759193760193761193762193763193764193765193766193767193768193769193770193771193772193773193774193775193776193777193778193779193780193781193782193783193784193785193786193787193788193789193790193791193792193793193794193795193796193797193798193799193800193801193802193803193804193805193806193807193808193809193810193811193812193813193814193815193816193817193818193819193820193821193822193823193824193825193826193827193828193829193830193831193832193833193834193835193836193837193838193839193840193841193842193843193844193845193846193847193848193849193850193851193852193853193854193855193856193857193858193859193860193861193862193863193864193865193866193867193868193869193870193871193872193873193874193875193876193877193878193879193880193881193882193883193884193885193886193887193888193889193890193891193892193893193894193895193896193897193898193899193900193901193902193903193904193905193906193907193908193909193910193911193912193913193914193915193916193917193918193919193920193921193922193923193924193925193926193927193928193929193930193931193932193933193934193935193936193937193938193939193940193941193942193943193944193945193946193947193948193949193950193951193952193953193954193955193956193957193958193959193960193961193962193963193964193965193966193967193968193969193970193971193972193973193974193975193976193977193978193979193980193981193982193983193984193985193986193987193988193989193990193991193992193993193994193995193996193997193998193999194000194001194002194003194004194005194006194007194008194009194010194011194012194013194014194015194016194017194018194019194020194021194022194023194024194025194026194027194028194029194030194031194032194033194034194035194036194037194038194039194040194041194042194043194044194045194046194047194048194049194050194051194052194053194054194055194056194057194058194059194060194061194062194063194064194065194066194067194068194069194070194071194072194073194074194075194076194077194078194079194080194081194082194083194084194085194086194087194088194089194090194091194092194093194094194095194096194097194098194099194100194101194102194103194104194105194106194107194108194109194110194111194112194113194114194115194116194117194118194119194120194121194122194123194124194125194126194127194128194129194130194131194132194133194134194135194136194137194138194139194140194141194142194143194144194145194146194147194148194149194150194151194152194153194154194155194156194157194158194159194160194161194162194163194164194165194166194167194168194169194170194171194172194173194174194175194176194177194178194179194180194181194182194183194184194185194186194187194188194189194190194191194192194193194194194195194196194197194198194199194200194201194202194203194204194205194206194207194208194209194210194211194212194213194214194215194216194217194218194219194220194221194222194223194224194225194226194227194228194229194230194231194232194233194234194235194236194237194238194239194240194241194242194243194244194245194246194247194248194249194250194251194252194253194254194255194256194257194258194259194260194261194262194263194264194265194266194267194268194269194270194271194272194273194274194275194276194277194278194279194280194281194282194283194284194285194286194287194288194289194290194291194292194293194294194295194296194297194298194299194300194301194302194303194304194305194306194307194308194309194310194311194312194313194314194315194316194317194318194319194320194321194322194323194324194325194326194327194328194329194330194331194332194333194334194335194336194337194338194339194340194341194342194343194344194345194346194347194348194349194350194351194352194353194354194355194356194357194358194359194360194361194362194363194364194365194366194367194368194369194370194371194372194373194374194375194376194377194378194379194380194381194382194383194384194385194386194387194388194389194390194391194392194393194394194395194396194397194398194399194400194401194402194403194404194405194406194407194408194409194410194411194412194413194414194415194416194417194418194419194420194421194422194423194424194425194426194427194428194429194430194431194432194433194434194435194436194437194438194439194440194441194442194443194444194445194446194447194448194449194450194451194452194453194454194455194456194457194458194459194460194461194462194463194464194465194466194467194468194469194470194471194472194473194474194475194476194477194478194479194480194481194482194483194484194485194486194487194488194489194490194491194492194493194494194495194496194497194498194499194500194501194502194503194504194505194506194507194508194509194510194511194512194513194514194515194516194517194518194519194520194521194522194523194524194525194526194527194528194529194530194531194532194533194534194535194536194537194538194539194540194541194542194543194544194545194546194547194548194549194550194551194552194553194554194555194556194557194558194559194560194561194562194563194564194565194566194567194568194569194570194571194572194573194574194575194576194577194578194579194580194581194582194583194584194585194586194587194588194589194590194591194592194593194594194595194596194597194598194599194600194601194602194603194604194605194606194607194608194609194610194611194612194613194614194615194616194617194618194619194620194621194622194623194624194625194626194627194628194629194630194631194632194633194634194635194636194637194638194639194640194641194642194643194644194645194646194647194648194649194650194651194652194653194654194655194656194657194658194659194660194661194662194663194664194665194666194667194668194669194670194671194672194673194674194675194676194677194678194679194680194681194682194683194684194685194686194687194688194689194690194691194692194693194694194695194696194697194698194699194700194701194702194703194704194705194706194707194708194709194710194711194712194713194714194715194716194717194718194719194720194721194722194723194724194725194726194727194728194729194730194731194732194733194734194735194736194737194738194739194740194741194742194743194744194745194746194747194748194749194750194751194752194753194754194755194756194757194758194759194760194761194762194763194764194765194766194767194768194769194770194771194772194773194774194775194776194777194778194779194780194781194782194783194784194785194786194787194788194789194790194791194792194793194794194795194796194797194798194799194800194801194802194803194804194805194806194807194808194809194810194811194812194813194814194815194816194817194818194819194820194821194822194823194824194825194826194827194828194829194830194831194832194833194834194835194836194837194838194839194840194841194842194843194844194845194846194847194848194849194850194851194852194853194854194855194856194857194858194859194860194861194862194863194864194865194866194867194868194869194870194871194872194873194874194875194876194877194878194879194880194881194882194883194884194885194886194887194888194889194890194891194892194893194894194895194896194897194898194899194900194901194902194903194904194905194906194907194908194909194910194911194912194913194914194915194916194917194918194919194920194921194922194923194924194925194926194927194928194929194930194931194932194933194934194935194936194937194938194939194940194941194942194943194944194945194946194947194948194949194950194951194952194953194954194955194956194957194958194959194960194961194962194963194964194965194966194967194968194969194970194971194972194973194974194975194976194977194978194979194980194981194982194983194984194985194986194987194988194989194990194991194992194993194994194995194996194997194998194999195000195001195002195003195004195005195006195007195008195009195010195011195012195013195014195015195016195017195018195019195020195021195022195023195024195025195026195027195028195029195030195031195032195033195034195035195036195037195038195039195040195041195042195043195044195045195046195047195048195049195050195051195052195053195054195055195056195057195058195059195060195061195062195063195064195065195066195067195068195069195070195071195072195073195074195075195076195077195078195079195080195081195082195083195084195085195086195087195088195089195090195091195092195093195094195095195096195097195098195099195100195101195102195103195104195105195106195107195108195109195110195111195112195113195114195115195116195117195118195119195120195121195122195123195124195125195126195127195128195129195130195131195132195133195134195135195136195137195138195139195140195141195142195143195144195145195146195147195148195149195150195151195152195153195154195155195156195157195158195159195160195161195162195163195164195165195166195167195168195169195170195171195172195173195174195175195176195177195178195179195180195181195182195183195184195185195186195187195188195189195190195191195192195193195194195195195196195197195198195199195200195201195202195203195204195205195206195207195208195209195210195211195212195213195214195215195216195217195218195219195220195221195222195223195224195225195226195227195228195229195230195231195232195233195234195235195236195237195238195239195240195241195242195243195244195245195246195247195248195249195250195251195252195253195254195255195256195257195258195259195260195261195262195263195264195265195266195267195268195269195270195271195272195273195274195275195276195277195278195279195280195281195282195283195284195285195286195287195288195289195290195291195292195293195294195295195296195297195298195299195300195301195302195303195304195305195306195307195308195309195310195311195312195313195314195315195316195317195318195319195320195321195322195323195324195325195326195327195328195329195330195331195332195333195334195335195336195337195338195339195340195341195342195343195344195345195346195347195348195349195350195351195352195353195354195355195356195357195358195359195360195361195362195363195364195365195366195367195368195369195370195371195372195373195374195375195376195377195378195379195380195381195382195383195384195385195386195387195388195389195390195391195392195393195394195395195396195397195398195399195400195401195402195403195404195405195406195407195408195409195410195411195412195413195414195415195416195417195418195419195420195421195422195423195424195425195426195427195428195429195430195431195432195433195434195435195436195437195438195439195440195441195442195443195444195445195446195447195448195449195450195451195452195453195454195455195456195457195458195459195460195461195462195463195464195465195466195467195468195469195470195471195472195473195474195475195476195477195478195479195480195481195482195483195484195485195486195487195488195489195490195491195492195493195494195495195496195497195498195499195500195501195502195503195504195505195506195507195508195509195510195511195512195513195514195515195516195517195518195519195520195521195522195523195524195525195526195527195528195529195530195531195532195533195534195535195536195537195538195539195540195541195542195543195544195545195546195547195548195549195550195551195552195553195554195555195556195557195558195559195560195561195562195563195564195565195566195567195568195569195570195571195572195573195574195575195576195577195578195579195580195581195582195583195584195585195586195587195588195589195590195591195592195593195594195595195596195597195598195599195600195601195602195603195604195605195606195607195608195609195610195611195612195613195614195615195616195617195618195619195620195621195622195623195624195625195626195627195628195629195630195631195632195633195634195635195636195637195638195639195640195641195642195643195644195645195646195647195648195649195650195651195652195653195654195655195656195657195658195659195660195661195662195663195664195665195666195667195668195669195670195671195672195673195674195675195676195677195678195679195680195681195682195683195684195685195686195687195688195689195690195691195692195693195694195695195696195697195698195699195700195701195702195703195704195705195706195707195708195709195710195711195712195713195714195715195716195717195718195719195720195721195722195723195724195725195726195727195728195729195730195731195732195733195734195735195736195737195738195739195740195741195742195743195744195745195746195747195748195749195750195751195752195753195754195755195756195757195758195759195760195761195762195763195764195765195766195767195768195769195770195771195772195773195774195775195776195777195778195779195780195781195782195783195784195785195786195787195788195789195790195791195792195793195794195795195796195797195798195799195800195801195802195803195804195805195806195807195808195809195810195811195812195813195814195815195816195817195818195819195820195821195822195823195824195825195826195827195828195829195830195831195832195833195834195835195836195837195838195839195840195841195842195843195844195845195846195847195848195849195850195851195852195853195854195855195856195857195858195859195860195861195862195863195864195865195866195867195868195869195870195871195872195873195874195875195876195877195878195879195880195881195882195883195884195885195886195887195888195889195890195891195892195893195894195895195896195897195898195899195900195901195902195903195904195905195906195907195908195909195910195911195912195913195914195915195916195917195918195919195920195921195922195923195924195925195926195927195928195929195930195931195932195933195934195935195936195937195938195939195940195941195942195943195944195945195946195947195948195949195950195951195952195953195954195955195956195957195958195959195960195961195962195963195964195965195966195967195968195969195970195971195972195973195974195975195976195977195978195979195980195981195982195983195984195985195986195987195988195989195990195991195992195993195994195995195996195997195998195999196000196001196002196003196004196005196006196007196008196009196010196011196012196013196014196015196016196017196018196019196020196021196022196023196024196025196026196027196028196029196030196031196032196033196034196035196036196037196038196039196040196041196042196043196044196045196046196047196048196049196050196051196052196053196054196055196056196057196058196059196060196061196062196063196064196065196066196067196068196069196070196071196072196073196074196075196076196077196078196079196080196081196082196083196084196085196086196087196088196089196090196091196092196093196094196095196096196097196098196099196100196101196102196103196104196105196106196107196108196109196110196111196112196113196114196115196116196117196118196119196120196121196122196123196124196125196126196127196128196129196130196131196132196133196134196135196136196137196138196139196140196141196142196143196144196145196146196147196148196149196150196151196152196153196154196155196156196157196158196159196160196161196162196163196164196165196166196167196168196169196170196171196172196173196174196175196176196177196178196179196180196181196182196183196184196185196186196187196188196189196190196191196192196193196194196195196196196197196198196199196200196201196202196203196204196205196206196207196208196209196210196211196212196213196214196215196216196217196218196219196220196221196222196223196224196225196226196227196228196229196230196231196232196233196234196235196236196237196238196239196240196241196242196243196244196245196246196247196248196249196250196251196252196253196254196255196256196257196258196259196260196261196262196263196264196265196266196267196268196269196270196271196272196273196274196275196276196277196278196279196280196281196282196283196284196285196286196287196288196289196290196291196292196293196294196295196296196297196298196299196300196301196302196303196304196305196306196307196308196309196310196311196312196313196314196315196316196317196318196319196320196321196322196323196324196325196326196327196328196329196330196331196332196333196334196335196336196337196338196339196340196341196342196343196344196345196346196347196348196349196350196351196352196353196354196355196356196357196358196359196360196361196362196363196364196365196366196367196368196369196370196371196372196373196374196375196376196377196378196379196380196381196382196383196384196385196386196387196388196389196390196391196392196393196394196395196396196397196398196399196400196401196402196403196404196405196406196407196408196409196410196411196412196413196414196415196416196417196418196419196420196421196422196423196424196425196426196427196428196429196430196431196432196433196434196435196436196437196438196439196440196441196442196443196444196445196446196447196448196449196450196451196452196453196454196455196456196457196458196459196460196461196462196463196464196465196466196467196468196469196470196471196472196473196474196475196476196477196478196479196480196481196482196483196484196485196486196487196488196489196490196491196492196493196494196495196496196497196498196499196500196501196502196503196504196505196506196507196508196509196510196511196512196513196514196515196516196517196518196519196520196521196522196523196524196525196526196527196528196529196530196531196532196533196534196535196536196537196538196539196540196541196542196543196544196545196546196547196548196549196550196551196552196553196554196555196556196557196558196559196560196561196562196563196564196565196566196567196568196569196570196571196572196573196574196575196576196577196578196579196580196581196582196583196584196585196586196587196588196589196590196591196592196593196594196595196596196597196598196599196600196601196602196603196604196605196606196607196608196609196610196611196612196613196614196615196616196617196618196619196620196621196622196623196624196625196626196627196628196629196630196631196632196633196634196635196636196637196638196639196640196641196642196643196644196645196646196647196648196649196650196651196652196653196654196655196656196657196658196659196660196661196662196663196664196665196666196667196668196669196670196671196672196673196674196675196676196677196678196679196680196681196682196683196684196685196686196687196688196689196690196691196692196693196694196695196696196697196698196699196700196701196702196703196704196705196706196707196708196709196710196711196712196713196714196715196716196717196718196719196720196721196722196723196724196725196726196727196728196729196730196731196732196733196734196735196736196737196738196739196740196741196742196743196744196745196746196747196748196749196750196751196752196753196754196755196756196757196758196759196760196761196762196763196764196765196766196767196768196769196770196771196772196773196774196775196776196777196778196779196780196781196782196783196784196785196786196787196788196789196790196791196792196793196794196795196796196797196798196799196800196801196802196803196804196805196806196807196808196809196810196811196812196813196814196815196816196817196818196819196820196821196822196823196824196825196826196827196828196829196830196831196832196833196834196835196836196837196838196839196840196841196842196843196844196845196846196847196848196849196850196851196852196853196854196855196856196857196858196859196860196861196862196863196864196865196866196867196868196869196870196871196872196873196874196875196876196877196878196879196880196881196882196883196884196885196886196887196888196889196890196891196892196893196894196895196896196897196898196899196900196901196902196903196904196905196906196907196908196909196910196911196912196913196914196915196916196917196918196919196920196921196922196923196924196925196926196927196928196929196930196931196932196933196934196935196936196937196938196939196940196941196942196943196944196945196946196947196948196949196950196951196952196953196954196955196956196957196958196959196960196961196962196963196964196965196966196967196968196969196970196971196972196973196974196975196976196977196978196979196980196981196982196983196984196985196986196987196988196989196990196991196992196993196994196995196996196997196998196999197000197001197002197003197004197005197006197007197008197009197010197011197012197013197014197015197016197017197018197019197020197021197022197023197024197025197026197027197028197029197030197031197032197033197034197035197036197037197038197039197040197041197042197043197044197045197046197047197048197049197050197051197052197053197054197055197056197057197058197059197060197061197062197063197064197065197066197067197068197069197070197071197072197073197074197075197076197077197078197079197080197081197082197083197084197085197086197087197088197089197090197091197092197093197094197095197096197097197098197099197100197101197102197103197104197105197106197107197108197109197110197111197112197113197114197115197116197117197118197119197120197121197122197123197124197125197126197127197128197129197130197131197132197133197134197135197136197137197138197139197140197141197142197143197144197145197146197147197148197149197150197151197152197153197154197155197156197157197158197159197160197161197162197163197164197165197166197167197168197169197170197171197172197173197174197175197176197177197178197179197180197181197182197183197184197185197186197187197188197189197190197191197192197193197194197195197196197197197198197199197200197201197202197203197204197205197206197207197208197209197210197211197212197213197214197215197216197217197218197219197220197221197222197223197224197225197226197227197228197229197230197231197232197233197234197235197236197237197238197239197240197241197242197243197244197245197246197247197248197249197250197251197252197253197254197255197256197257197258197259197260197261197262197263197264197265197266197267197268197269197270197271197272197273197274197275197276197277197278197279197280197281197282197283197284197285197286197287197288197289197290197291197292197293197294197295197296197297197298197299197300197301197302197303197304197305197306197307197308197309197310197311197312197313197314197315197316197317197318197319197320197321197322197323197324197325197326197327197328197329197330197331197332197333197334197335197336197337197338197339197340197341197342197343197344197345197346197347197348197349197350197351197352197353197354197355197356197357197358197359197360197361197362197363197364197365197366197367197368197369197370197371197372197373197374197375197376197377197378197379197380197381197382197383197384197385197386197387197388197389197390197391197392197393197394197395197396197397197398197399197400197401197402197403197404197405197406197407197408197409197410197411197412197413197414197415197416197417197418197419197420197421197422197423197424197425197426197427197428197429197430197431197432197433197434197435197436197437197438197439197440197441197442197443197444197445197446197447197448197449197450197451197452197453197454197455197456197457197458197459197460197461197462197463197464197465197466197467197468197469197470197471197472197473197474197475197476197477197478197479197480197481197482197483197484197485197486197487197488197489197490197491197492197493197494197495197496197497197498197499197500197501197502197503197504197505197506197507197508197509197510197511197512197513197514197515197516197517197518197519197520197521197522197523197524197525197526197527197528197529197530197531197532197533197534197535197536197537197538197539197540197541197542197543197544197545197546197547197548197549197550197551197552197553197554197555197556197557197558197559197560197561197562197563197564197565197566197567197568197569197570197571197572197573197574197575197576197577197578197579197580197581197582197583197584197585197586197587197588197589197590197591197592197593197594197595197596197597197598197599197600197601197602197603197604197605197606197607197608197609197610197611197612197613197614197615197616197617197618197619197620197621197622197623197624197625197626197627197628197629197630197631197632197633197634197635197636197637197638197639197640197641197642197643197644197645197646197647197648197649197650197651197652197653197654197655197656197657197658197659197660197661197662197663197664197665197666197667197668197669197670197671197672197673197674197675197676197677197678197679197680197681197682197683197684197685197686197687197688197689197690197691197692197693197694197695197696197697197698197699197700197701197702197703197704197705197706197707197708197709197710197711197712197713197714197715197716197717197718197719197720197721197722197723197724197725197726197727197728197729197730197731197732197733197734197735197736197737197738197739197740197741197742197743197744197745197746197747197748197749197750197751197752197753197754197755197756197757197758197759197760197761197762197763197764197765197766197767197768197769197770197771197772197773197774197775197776197777197778197779197780197781197782197783197784197785197786197787197788197789197790197791197792197793197794197795197796197797197798197799197800197801197802197803197804197805197806197807197808197809197810197811197812197813197814197815197816197817197818197819197820197821197822197823197824197825197826197827197828197829197830197831197832197833197834197835197836197837197838197839197840197841197842197843197844197845197846197847197848197849197850197851197852197853197854197855197856197857197858197859197860197861197862197863197864197865197866197867197868197869197870197871197872197873197874197875197876197877197878197879197880197881197882197883197884197885197886197887197888197889197890197891197892197893197894197895197896197897197898197899197900197901197902197903197904197905197906197907197908197909197910197911197912197913197914197915197916197917197918197919197920197921197922197923197924197925197926197927197928197929197930197931197932197933197934197935197936197937197938197939197940197941197942197943197944197945197946197947197948197949197950197951197952197953197954197955197956197957197958197959197960197961197962197963197964197965197966197967197968197969197970197971197972197973197974197975197976197977197978197979197980197981197982197983197984197985197986197987197988197989197990197991197992197993197994197995197996197997197998197999198000198001198002198003198004198005198006198007198008198009198010198011198012198013198014198015198016198017198018198019198020198021198022198023198024198025198026198027198028198029198030198031198032198033198034198035198036198037198038198039198040198041198042198043198044198045198046198047198048198049198050198051198052198053198054198055198056198057198058198059198060198061198062198063198064198065198066198067198068198069198070198071198072198073198074198075198076198077198078198079198080198081198082198083198084198085198086198087198088198089198090198091198092198093198094198095198096198097198098198099198100198101198102198103198104198105198106198107198108198109198110198111198112198113198114198115198116198117198118198119198120198121198122198123198124198125198126198127198128198129198130198131198132198133198134198135198136198137198138198139198140198141198142198143198144198145198146198147198148198149198150198151198152198153198154198155198156198157198158198159198160198161198162198163198164198165198166198167198168198169198170198171198172198173198174198175198176198177198178198179198180198181198182198183198184198185198186198187198188198189198190198191198192198193198194198195198196198197198198198199198200198201198202198203198204198205198206198207198208198209198210198211198212198213198214198215198216198217198218198219198220198221198222198223198224198225198226198227198228198229198230198231198232198233198234198235198236198237198238198239198240198241198242198243198244198245198246198247198248198249198250198251198252198253198254198255198256198257198258198259198260198261198262198263198264198265198266198267198268198269198270198271198272198273198274198275198276198277198278198279198280198281198282198283198284198285198286198287198288198289198290198291198292198293198294198295198296198297198298198299198300198301198302198303198304198305198306198307198308198309198310198311198312198313198314198315198316198317198318198319198320198321198322198323198324198325198326198327198328198329198330198331198332198333198334198335198336198337198338198339198340198341198342198343198344198345198346198347198348198349198350198351198352198353198354198355198356198357198358198359198360198361198362198363198364198365198366198367198368198369198370198371198372198373198374198375198376198377198378198379198380198381198382198383198384198385198386198387198388198389198390198391198392198393198394198395198396198397198398198399198400198401198402198403198404198405198406198407198408198409198410198411198412198413198414198415198416198417198418198419198420198421198422198423198424198425198426198427198428198429198430198431198432198433198434198435198436198437198438198439198440198441198442198443198444198445198446198447198448198449198450198451198452198453198454198455198456198457198458198459198460198461198462198463198464198465198466198467198468198469198470198471198472198473198474198475198476198477198478198479198480198481198482198483198484198485198486198487198488198489198490198491198492198493198494198495198496198497198498198499198500198501198502198503198504198505198506198507198508198509198510198511198512198513198514198515198516198517198518198519198520198521198522198523198524198525198526198527198528198529198530198531198532198533198534198535198536198537198538198539198540198541198542198543198544198545198546198547198548198549198550198551198552198553198554198555198556198557198558198559198560198561198562198563198564198565198566198567198568198569198570198571198572198573198574198575198576198577198578198579198580198581198582198583198584198585198586198587198588198589198590198591198592198593198594198595198596198597198598198599198600198601198602198603198604198605198606198607198608198609198610198611198612198613198614198615198616198617198618198619198620198621198622198623198624198625198626198627198628198629198630198631198632198633198634198635198636198637198638198639198640198641198642198643198644198645198646198647198648198649198650198651198652198653198654198655198656198657198658198659198660198661198662198663198664198665198666198667198668198669198670198671198672198673198674198675198676198677198678198679198680198681198682198683198684198685198686198687198688198689198690198691198692198693198694198695198696198697198698198699198700198701198702198703198704198705198706198707198708198709198710198711198712198713198714198715198716198717198718198719198720198721198722198723198724198725198726198727198728198729198730198731198732198733198734198735198736198737198738198739198740198741198742198743198744198745198746198747198748198749198750198751198752198753198754198755198756198757198758198759198760198761198762198763198764198765198766198767198768198769198770198771198772198773198774198775198776198777198778198779198780198781198782198783198784198785198786198787198788198789198790198791198792198793198794198795198796198797198798198799198800198801198802198803198804198805198806198807198808198809198810198811198812198813198814198815198816198817198818198819198820198821198822198823198824198825198826198827198828198829198830198831198832198833198834198835198836198837198838198839198840198841198842198843198844198845198846198847198848198849198850198851198852198853198854198855198856198857198858198859198860198861198862198863198864198865198866198867198868198869198870198871198872198873198874198875198876198877198878198879198880198881198882198883198884198885198886198887198888198889198890198891198892198893198894198895198896198897198898198899198900198901198902198903198904198905198906198907198908198909198910198911198912198913198914198915198916198917198918198919198920198921198922198923198924198925198926198927198928198929198930198931198932198933198934198935198936198937198938198939198940198941198942198943198944198945198946198947198948198949198950198951198952198953198954198955198956198957198958198959198960198961198962198963198964198965198966198967198968198969198970198971198972198973198974198975198976198977198978198979198980198981198982198983198984198985198986198987198988198989198990198991198992198993198994198995198996198997198998198999199000199001199002199003199004199005199006199007199008199009199010199011199012199013199014199015199016199017199018199019199020199021199022199023199024199025199026199027199028199029199030199031199032199033199034199035199036199037199038199039199040199041199042199043199044199045199046199047199048199049199050199051199052199053199054199055199056199057199058199059199060199061199062199063199064199065199066199067199068199069199070199071199072199073199074199075199076199077199078199079199080199081199082199083199084199085199086199087199088199089199090199091199092199093199094199095199096199097199098199099199100199101199102199103199104199105199106199107199108199109199110199111199112199113199114199115199116199117199118199119199120199121199122199123199124199125199126199127199128199129199130199131199132199133199134199135199136199137199138199139199140199141199142199143199144199145199146199147199148199149199150199151199152199153199154199155199156199157199158199159199160199161199162199163199164199165199166199167199168199169199170199171199172199173199174199175199176199177199178199179199180199181199182199183199184199185199186199187199188199189199190199191199192199193199194199195199196199197199198199199199200199201199202199203199204199205199206199207199208199209199210199211199212199213199214199215199216199217199218199219199220199221199222199223199224199225199226199227199228199229199230199231199232199233199234199235199236199237199238199239199240199241199242199243199244199245199246199247199248199249199250199251199252199253199254199255199256199257199258199259199260199261199262199263199264199265199266199267199268199269199270199271199272199273199274199275199276199277199278199279199280199281199282199283199284199285199286199287199288199289199290199291199292199293199294199295199296199297199298199299199300199301199302199303199304199305199306199307199308199309199310199311199312199313199314199315199316199317199318199319199320199321199322199323199324199325199326199327199328199329199330199331199332199333199334199335199336199337199338199339199340199341199342199343199344199345199346199347199348199349199350199351199352199353199354199355199356199357199358199359199360199361199362199363199364199365199366199367199368199369199370199371199372199373199374199375199376199377199378199379199380199381199382199383199384199385199386199387199388199389199390199391199392199393199394199395199396199397199398199399199400199401199402199403199404199405199406199407199408199409199410199411199412199413199414199415199416199417199418199419199420199421199422199423199424199425199426199427199428199429199430199431199432199433199434199435199436199437199438199439199440199441199442199443199444199445199446199447199448199449199450199451199452199453199454199455199456199457199458199459199460199461199462199463199464199465199466199467199468199469199470199471199472199473199474199475199476199477199478199479199480199481199482199483199484199485199486199487199488199489199490199491199492199493199494199495199496199497199498199499199500199501199502199503199504199505199506199507199508199509199510199511199512199513199514199515199516199517199518199519199520199521199522199523199524199525199526199527199528199529199530199531199532199533199534199535199536199537199538199539199540199541199542199543199544199545199546199547199548199549199550199551199552199553199554199555199556199557199558199559199560199561199562199563199564199565199566199567199568199569199570199571199572199573199574199575199576199577199578199579199580199581199582199583199584199585199586199587199588199589199590199591199592199593199594199595199596199597199598199599199600199601199602199603199604199605199606199607199608199609199610199611199612199613199614199615199616199617199618199619199620199621199622199623199624199625199626199627199628199629199630199631199632199633199634199635199636199637199638199639199640199641199642199643199644199645199646199647199648199649199650199651199652199653199654199655199656199657199658199659199660199661199662199663199664199665199666199667199668199669199670199671199672199673199674199675199676199677199678199679199680199681199682199683199684199685199686199687199688199689199690199691199692199693199694199695199696199697199698199699199700199701199702199703199704199705199706199707199708199709199710199711199712199713199714199715199716199717199718199719199720199721199722199723199724199725199726199727199728199729199730199731199732199733199734199735199736199737199738199739199740199741199742199743199744199745199746199747199748199749199750199751199752199753199754199755199756199757199758199759199760199761199762199763199764199765199766199767199768199769199770199771199772199773199774199775199776199777199778199779199780199781199782199783199784199785199786199787199788199789199790199791199792199793199794199795199796199797199798199799199800199801199802199803199804199805199806199807199808199809199810199811199812199813199814199815199816199817199818199819199820199821199822199823199824199825199826199827199828199829199830199831199832199833199834199835199836199837199838199839199840199841199842199843199844199845199846199847199848199849199850199851199852199853199854199855199856199857199858199859199860199861199862199863199864199865199866199867199868199869199870199871199872199873199874199875199876199877199878199879199880199881199882199883199884199885199886199887199888199889199890199891199892199893199894199895199896199897199898199899199900199901199902199903199904199905199906199907199908199909199910199911199912199913199914199915199916199917199918199919199920199921199922199923199924199925199926199927199928199929199930199931199932199933199934199935199936199937199938199939199940199941199942199943199944199945199946199947199948199949199950199951199952199953199954199955199956199957199958199959199960199961199962199963199964199965199966199967199968199969199970199971199972199973199974199975199976199977199978199979199980199981199982199983199984199985199986199987199988199989199990199991199992199993199994199995199996199997199998199999200000200001200002200003200004200005200006200007200008200009200010200011200012200013200014200015200016200017200018200019200020200021200022200023200024200025200026200027200028200029200030200031200032200033200034200035200036200037200038200039200040200041200042200043200044200045200046200047200048200049200050200051200052200053200054200055200056200057200058200059200060200061200062200063200064200065200066200067200068200069200070200071200072200073200074200075200076200077200078200079200080200081200082200083200084200085200086200087200088200089200090200091200092200093200094200095200096200097200098200099200100200101200102200103200104200105200106200107200108200109200110200111200112200113200114200115200116200117200118200119200120200121200122200123200124200125200126200127200128200129200130200131200132200133200134200135200136200137200138200139200140200141200142200143200144200145200146200147200148200149200150200151200152200153200154200155200156200157200158200159200160200161200162200163200164200165200166200167200168200169200170200171200172200173200174200175200176200177200178200179200180200181200182200183200184200185200186200187200188200189200190200191200192200193200194200195200196200197200198200199200200200201200202200203200204200205200206200207200208200209200210200211200212200213200214200215200216200217200218200219200220200221200222200223200224200225200226200227200228200229200230200231200232200233200234200235200236200237200238200239200240200241200242200243200244200245200246200247200248200249200250200251200252200253200254200255200256200257200258200259200260200261200262200263200264200265200266200267200268200269200270200271200272200273200274200275200276200277200278200279200280200281200282200283200284200285200286200287200288200289200290200291200292200293200294200295200296200297200298200299200300200301200302200303200304200305200306200307200308200309200310200311200312200313200314200315200316200317200318200319200320200321200322200323200324200325200326200327200328200329200330200331200332200333200334200335200336200337200338200339200340200341200342200343200344200345200346200347200348200349200350200351200352200353200354200355200356200357200358200359200360200361200362200363200364200365200366200367200368200369200370200371200372200373200374200375200376200377200378200379200380200381200382200383200384200385200386200387200388200389200390200391200392200393200394200395200396200397200398200399200400200401200402200403200404200405200406200407200408200409200410200411200412200413200414200415200416200417200418200419200420200421200422200423200424200425200426200427200428200429200430200431200432200433200434200435200436200437200438200439200440200441200442200443200444200445200446200447200448200449200450200451200452200453200454200455200456200457200458200459200460200461200462200463200464200465200466200467200468200469200470200471200472200473200474200475200476200477200478200479200480200481200482200483200484200485200486200487200488200489200490200491200492200493200494200495200496200497200498200499200500200501200502200503200504200505200506200507200508200509200510200511200512200513200514200515200516200517200518200519200520200521200522200523200524200525200526200527200528200529200530200531200532200533200534200535200536200537200538200539200540200541200542200543200544200545200546200547200548200549200550200551200552200553200554200555200556200557200558200559200560200561200562200563200564200565200566200567200568200569200570200571200572200573200574200575200576200577200578200579200580200581200582200583200584200585200586200587200588200589200590200591200592200593200594200595200596200597200598200599200600200601200602200603200604200605200606200607200608200609200610200611200612200613200614200615200616200617200618200619200620200621200622200623200624200625200626200627200628200629200630200631200632200633200634200635200636200637200638200639200640200641200642200643200644200645200646200647200648200649200650200651200652200653200654200655200656200657200658200659200660200661200662200663200664200665200666200667200668200669200670200671200672200673200674200675200676200677200678200679200680200681200682200683200684200685200686200687200688200689200690200691200692200693200694200695200696200697200698200699200700200701200702200703200704200705200706200707200708200709200710200711200712200713200714200715200716200717200718200719200720200721200722200723200724200725200726200727200728200729200730200731200732200733200734200735200736200737200738200739200740200741200742200743200744200745200746200747200748200749200750200751200752200753200754200755200756200757200758200759200760200761200762200763200764200765200766200767200768200769200770200771200772200773200774200775200776200777200778200779200780200781200782200783200784200785200786200787200788200789200790200791200792200793200794200795200796200797200798200799200800200801200802200803200804200805200806200807200808200809200810200811200812200813200814200815200816200817200818200819200820200821200822200823200824200825200826200827200828200829200830200831200832200833200834200835200836200837200838200839200840200841200842200843200844200845200846200847200848200849200850200851200852200853200854200855200856200857200858200859200860200861200862200863200864200865200866200867200868200869200870200871200872200873200874200875200876200877200878200879200880200881200882200883200884200885200886200887200888200889200890200891200892200893200894200895200896200897200898200899200900200901200902200903200904200905200906200907200908200909200910200911200912200913200914200915200916200917200918200919200920200921200922200923200924200925200926200927200928200929200930200931200932200933200934200935200936200937200938200939200940200941200942200943200944200945200946200947200948200949200950200951200952200953200954200955200956200957200958200959200960200961200962200963200964200965200966200967200968200969200970200971200972200973200974200975200976200977200978200979200980200981200982200983200984200985200986200987200988200989200990200991200992200993200994200995200996200997200998200999201000201001201002201003201004201005201006201007201008201009201010201011201012201013201014201015201016201017201018201019201020201021201022201023201024201025201026201027201028201029201030201031201032201033201034201035201036201037201038201039201040201041201042201043201044201045201046201047201048201049201050201051201052201053201054201055201056201057201058201059201060201061201062201063201064201065201066201067201068201069201070201071201072201073201074201075201076201077201078201079201080201081201082201083201084201085201086201087201088201089201090201091201092201093201094201095201096201097201098201099201100201101201102201103201104201105201106201107201108201109201110201111201112201113201114201115201116201117201118201119201120201121201122201123201124201125201126201127201128201129201130201131201132201133201134201135201136201137201138201139201140201141201142201143201144201145201146201147201148201149201150201151201152201153201154201155201156201157201158201159201160201161201162201163201164201165201166201167201168201169201170201171201172201173201174201175201176201177201178201179201180201181201182201183201184201185201186201187201188201189201190201191201192201193201194201195201196201197201198201199201200201201201202201203201204201205201206201207201208201209201210201211201212201213201214201215201216201217201218201219201220201221201222201223201224201225201226201227201228201229201230201231201232201233201234201235201236201237201238201239201240201241201242201243201244201245201246201247201248201249201250201251201252201253201254201255201256201257201258201259201260201261201262201263201264201265201266201267201268201269201270201271201272201273201274201275201276201277201278201279201280201281201282201283201284201285201286201287201288201289201290201291201292201293201294201295201296201297201298201299201300201301201302201303201304201305201306201307201308201309201310201311201312201313201314201315201316201317201318201319201320201321201322201323201324201325201326201327201328201329201330201331201332201333201334201335201336201337201338201339201340201341201342201343201344201345201346201347201348201349201350201351201352201353201354201355201356201357201358201359201360201361201362201363201364201365201366201367201368201369201370201371201372201373201374201375201376201377201378201379201380201381201382201383201384201385201386201387201388201389201390201391201392201393201394201395201396201397201398201399201400201401201402201403201404201405201406201407201408201409201410201411201412201413201414201415201416201417201418201419201420201421201422201423201424201425201426201427201428201429201430201431201432201433201434201435201436201437201438201439201440201441201442201443201444201445201446201447201448201449201450201451201452201453201454201455201456201457201458201459201460201461201462201463201464201465201466201467201468201469201470201471201472201473201474201475201476201477201478201479201480201481201482201483201484201485201486201487201488201489201490201491201492201493201494201495201496201497201498201499201500201501201502201503201504201505201506201507201508201509201510201511201512201513201514201515201516201517201518201519201520201521201522201523201524201525201526201527201528201529201530201531201532201533201534201535201536201537201538201539201540201541201542201543201544201545201546201547201548201549201550201551201552201553201554201555201556201557201558201559201560201561201562201563201564201565201566201567201568201569201570201571201572201573201574201575201576201577201578201579201580201581201582201583201584201585201586201587201588201589201590201591201592201593201594201595201596201597201598201599201600201601201602201603201604201605201606201607201608201609201610201611201612201613201614201615201616201617201618201619201620201621201622201623201624201625201626201627201628201629201630201631201632201633201634201635201636201637201638201639201640201641201642201643201644201645201646201647201648201649201650201651201652201653201654201655201656201657201658201659201660201661201662201663201664201665201666201667201668201669201670201671201672201673201674201675201676201677201678201679201680201681201682201683201684201685201686201687201688201689201690201691201692201693201694201695201696201697201698201699201700201701201702201703201704201705201706201707201708201709201710201711201712201713201714201715201716201717201718201719201720201721201722201723201724201725201726201727201728201729201730201731201732201733201734201735201736201737201738201739201740201741201742201743201744201745201746201747201748201749201750201751201752201753201754201755201756201757201758201759201760201761201762201763201764201765201766201767201768201769201770201771201772201773201774201775201776201777201778201779201780201781201782201783201784201785201786201787201788201789201790201791201792201793201794201795201796201797201798201799201800201801201802201803201804201805201806201807201808201809201810201811201812201813201814201815201816201817201818201819201820201821201822201823201824201825201826201827201828201829201830201831201832201833201834201835201836201837201838201839201840201841201842201843201844201845201846201847201848201849201850201851201852201853201854201855201856201857201858201859201860201861201862201863201864201865201866201867201868201869201870201871201872201873201874201875201876201877201878201879201880201881201882201883201884201885201886201887201888201889201890201891201892201893201894201895201896201897201898201899201900201901201902201903201904201905201906201907201908201909201910201911201912201913201914201915201916201917201918201919201920201921201922201923201924201925201926201927201928201929201930201931201932201933201934201935201936201937201938201939201940201941201942201943201944201945201946201947201948201949201950201951201952201953201954201955201956201957201958201959201960201961201962201963201964201965201966201967201968201969201970201971201972201973201974201975201976201977201978201979201980201981201982201983201984201985201986201987201988201989201990201991201992201993201994201995201996201997201998201999202000202001202002202003202004202005202006202007202008202009202010202011202012202013202014202015202016202017202018202019202020202021202022202023202024202025202026202027202028202029202030202031202032202033202034202035202036202037202038202039202040202041202042202043202044202045202046202047202048202049202050202051202052202053202054202055202056202057202058202059202060202061202062202063202064202065202066202067202068202069202070202071202072202073202074202075202076202077202078202079202080202081202082202083202084202085202086202087202088202089202090202091202092202093202094202095202096202097202098202099202100202101202102202103202104202105202106202107202108202109202110202111202112202113202114202115202116202117202118202119202120202121202122202123202124202125202126202127202128202129202130202131202132202133202134202135202136202137202138202139202140202141202142202143202144202145202146202147202148202149202150202151202152202153202154202155202156202157202158202159202160202161202162202163202164202165202166202167202168202169202170202171202172202173202174202175202176202177202178202179202180202181202182202183202184202185202186202187202188202189202190202191202192202193202194202195202196202197202198202199202200202201202202202203202204202205202206202207202208202209202210202211202212202213202214202215202216202217202218202219202220202221202222202223202224202225202226202227202228202229202230202231202232202233202234202235202236202237202238202239202240202241202242202243202244202245202246202247202248202249202250202251202252202253202254202255202256202257202258202259202260202261202262202263202264202265202266202267202268202269202270202271202272202273202274202275202276202277202278202279202280202281202282202283202284202285202286202287202288202289202290202291202292202293202294202295202296202297202298202299202300202301202302202303202304202305202306202307202308202309202310202311202312202313202314202315202316202317202318202319202320202321202322202323202324202325202326202327202328202329202330202331202332202333202334202335202336202337202338202339202340202341202342202343202344202345202346202347202348202349202350202351202352202353202354202355202356202357202358202359202360202361202362202363202364202365202366202367202368202369202370202371202372202373202374202375202376202377202378202379202380202381202382202383202384202385202386202387202388202389202390202391202392202393202394202395202396202397202398202399202400202401202402202403202404202405202406202407202408202409202410202411202412202413202414202415202416202417202418202419202420202421202422202423202424202425202426202427202428202429202430202431202432202433202434202435202436202437202438202439202440202441202442202443202444202445202446202447202448202449202450202451202452202453202454202455202456202457202458202459202460202461202462202463202464202465202466202467202468202469202470202471202472202473202474202475202476202477202478202479202480202481202482202483202484202485202486202487202488202489202490202491202492202493202494202495202496202497202498202499202500202501202502202503202504202505202506202507202508202509202510202511202512202513202514202515202516202517202518202519202520202521202522202523202524202525202526202527202528202529202530202531202532202533202534202535202536202537202538202539202540202541202542202543202544202545202546202547202548202549202550202551202552202553202554202555202556202557202558202559202560202561202562202563202564202565202566202567202568202569202570202571202572202573202574202575202576202577202578202579202580202581202582202583202584202585202586202587202588202589202590202591202592202593202594202595202596202597202598202599202600202601202602202603202604202605202606202607202608202609202610202611202612202613202614202615202616202617202618202619202620202621202622202623202624202625202626202627202628202629202630202631202632202633202634202635202636202637202638202639202640202641202642202643202644202645202646202647202648202649202650202651202652202653202654202655202656202657202658202659202660202661202662202663202664202665202666202667202668202669202670202671202672202673202674202675202676202677202678202679202680202681202682202683202684202685202686202687202688202689202690202691202692202693202694202695202696202697202698202699202700202701202702202703202704202705202706202707202708202709202710202711202712202713202714202715202716202717202718202719202720202721202722202723202724202725202726202727202728202729202730202731202732202733202734202735202736202737202738202739202740202741202742202743202744202745202746202747202748202749202750202751202752202753202754202755202756202757202758202759202760202761202762202763202764202765202766202767202768202769202770202771202772202773202774202775202776202777202778202779202780202781202782202783202784202785202786202787202788202789202790202791202792202793202794202795202796202797202798202799202800202801202802202803202804202805202806202807202808202809202810202811202812202813202814202815202816202817202818202819202820202821202822202823202824202825202826202827202828202829202830202831202832202833202834202835202836202837202838202839202840202841202842202843202844202845202846202847202848202849202850202851202852202853202854202855202856202857202858202859202860202861202862202863202864202865202866202867202868202869202870202871202872202873202874202875202876202877202878202879202880202881202882202883202884202885202886202887202888202889202890202891202892202893202894202895202896202897202898202899202900202901202902202903202904202905202906202907202908202909202910202911202912202913202914202915202916202917202918202919202920202921202922202923202924202925202926202927202928202929202930202931202932202933202934202935202936202937202938202939202940202941202942202943202944202945202946202947202948202949202950202951202952202953202954202955202956202957202958202959202960202961202962202963202964202965202966202967202968202969202970202971202972202973202974202975202976202977202978202979202980202981202982202983202984202985202986202987202988202989202990202991202992202993202994202995202996202997202998202999203000203001203002203003203004203005203006203007203008203009203010203011203012203013203014203015203016203017203018203019203020203021203022203023203024203025203026203027203028203029203030203031203032203033203034203035203036203037203038203039203040203041203042203043203044203045203046203047203048203049203050203051203052203053203054203055203056203057203058203059203060203061203062203063203064203065203066203067203068203069203070203071203072203073203074203075203076203077203078203079203080203081203082203083203084203085203086203087203088203089203090203091203092203093203094203095203096203097203098203099203100203101203102203103203104203105203106203107203108203109203110203111203112203113203114203115203116203117203118203119203120203121203122203123203124203125203126203127203128203129203130203131203132203133203134203135203136203137203138203139203140203141203142203143203144203145203146203147203148203149203150203151203152203153203154203155203156203157203158203159203160203161203162203163203164203165203166203167203168203169203170203171203172203173203174203175203176203177203178203179203180203181203182203183203184203185203186203187203188203189203190203191203192203193203194203195203196203197203198203199203200203201203202203203203204203205203206203207203208203209203210203211203212203213203214203215203216203217203218203219203220203221203222203223203224203225203226203227203228203229203230203231203232203233203234203235203236203237203238203239203240203241203242203243203244203245203246203247203248203249203250203251203252203253203254203255203256203257203258203259203260203261203262203263203264203265203266203267203268203269203270203271203272203273203274203275203276203277203278203279203280203281203282203283203284203285203286203287203288203289203290203291203292203293203294203295203296203297203298203299203300203301203302203303203304203305203306203307203308203309203310203311203312203313203314203315203316203317203318203319203320203321203322203323203324203325203326203327203328203329203330203331203332203333203334203335203336203337203338203339203340203341203342203343203344203345203346203347203348203349203350203351203352203353203354203355203356203357203358203359203360203361203362203363203364203365203366203367203368203369203370203371203372203373203374203375203376203377203378203379203380203381203382203383203384203385203386203387203388203389203390203391203392203393203394203395203396203397203398203399203400203401203402203403203404203405203406203407203408203409203410203411203412203413203414203415203416203417203418203419203420203421203422203423203424203425203426203427203428203429203430203431203432203433203434203435203436203437203438203439203440203441203442203443203444203445203446203447203448203449203450203451203452203453203454203455203456203457203458203459203460203461203462203463203464203465203466203467203468203469203470203471203472203473203474203475203476203477203478203479203480203481203482203483203484203485203486203487203488203489203490203491203492203493203494203495203496203497203498203499203500203501203502203503203504203505203506203507203508203509203510203511203512203513203514203515203516203517203518203519203520203521203522203523203524203525203526203527203528203529203530203531203532203533203534203535203536203537203538203539203540203541203542203543203544203545203546203547203548203549203550203551203552203553203554203555203556203557203558203559203560203561203562203563203564203565203566203567203568203569203570203571203572203573203574203575203576203577203578203579203580203581203582203583203584203585203586203587203588203589203590203591203592203593203594203595203596203597203598203599203600203601203602203603203604203605203606203607203608203609203610203611203612203613203614203615203616203617203618203619203620203621203622203623203624203625203626203627203628203629203630203631203632203633203634203635203636203637203638203639203640203641203642203643203644203645203646203647203648203649203650203651203652203653203654203655203656203657203658203659203660203661203662203663203664203665203666203667203668203669203670203671203672203673203674203675203676203677203678203679203680203681203682203683203684203685203686203687203688203689203690203691203692203693203694203695203696203697203698203699203700203701203702203703203704203705203706203707203708203709203710203711203712203713203714203715203716203717203718203719203720203721203722203723203724203725203726203727203728203729203730203731203732203733203734203735203736203737203738203739203740203741203742203743203744203745203746203747203748203749203750203751203752203753203754203755203756203757203758203759203760203761203762203763203764203765203766203767203768203769203770203771203772203773203774203775203776203777203778203779203780203781203782203783203784203785203786203787203788203789203790203791203792203793203794203795203796203797203798203799203800203801203802203803203804203805203806203807203808203809203810203811203812203813203814203815203816203817203818203819203820203821203822203823203824203825203826203827203828203829203830203831203832203833203834203835203836203837203838203839203840203841203842203843203844203845203846203847203848203849203850203851203852203853203854203855203856203857203858203859203860203861203862203863203864203865203866203867203868203869203870203871203872203873203874203875203876203877203878203879203880203881203882203883203884203885203886203887203888203889203890203891203892203893203894203895203896203897203898203899203900203901203902203903203904203905203906203907203908203909203910203911203912203913203914203915203916203917203918203919203920203921203922203923203924203925203926203927203928203929203930203931203932203933203934203935203936203937203938203939203940203941203942203943203944203945203946203947203948203949203950203951203952203953203954203955203956203957203958203959203960203961203962203963203964203965203966203967203968203969203970203971203972203973203974203975203976203977203978203979203980203981203982203983203984203985203986203987203988203989203990203991203992203993203994203995203996203997203998203999204000204001204002204003204004204005204006204007204008204009204010204011204012204013204014204015204016204017204018204019204020204021204022204023204024204025204026204027204028204029204030204031204032204033204034204035204036204037204038204039204040204041204042204043204044204045204046204047204048204049204050204051204052204053204054204055204056204057204058204059204060204061204062204063204064204065204066204067204068204069204070204071204072204073204074204075204076204077204078204079204080204081204082204083204084204085204086204087204088204089204090204091204092204093204094204095204096204097204098204099204100204101204102204103204104204105204106204107204108204109204110204111204112204113204114204115204116204117204118204119204120204121204122204123204124204125204126204127204128204129204130204131204132204133204134204135204136204137204138204139204140204141204142204143204144204145204146204147204148204149204150204151204152204153204154204155204156204157204158204159204160204161204162204163204164204165204166204167204168204169204170204171204172204173204174204175204176204177204178204179204180204181204182204183204184204185204186204187204188204189204190204191204192204193204194204195204196204197204198204199204200204201204202204203204204204205204206204207204208204209204210204211204212204213204214204215204216204217204218204219204220204221204222204223204224204225204226204227204228204229204230204231204232204233204234204235204236204237204238204239204240204241204242204243204244204245204246204247204248204249204250204251204252204253204254204255204256204257204258204259204260204261204262204263204264204265204266204267204268204269204270204271204272204273204274204275204276204277204278204279204280204281204282204283204284204285204286204287204288204289204290204291204292204293204294204295204296204297204298204299204300204301204302204303204304204305204306204307204308204309204310204311204312204313204314204315204316204317204318204319204320204321204322204323204324204325204326204327204328204329204330204331204332204333204334204335204336204337204338204339204340204341204342204343204344204345204346204347204348204349204350204351204352204353204354204355204356204357204358204359204360204361204362204363204364204365204366204367204368204369204370204371204372204373204374204375204376204377204378204379204380204381204382204383204384204385204386204387204388204389204390204391204392204393204394204395204396204397204398204399204400204401204402204403204404204405204406204407204408204409204410204411204412204413204414204415204416204417204418204419204420204421204422204423204424204425204426204427204428204429204430204431204432204433204434204435204436204437204438204439204440204441204442204443204444204445204446204447204448204449204450204451204452204453204454204455204456204457204458204459204460204461204462204463204464204465204466204467204468204469204470204471204472204473204474204475204476204477204478204479204480204481204482204483204484204485204486204487204488204489204490204491204492204493204494204495204496204497204498204499204500204501204502204503204504204505204506204507204508204509204510204511204512204513204514204515204516204517204518204519204520204521204522204523204524204525204526204527204528204529204530204531204532204533204534204535204536204537204538204539204540204541204542204543204544204545204546204547204548204549204550204551204552204553204554204555204556204557204558204559204560204561204562204563204564204565204566204567204568204569204570204571204572204573204574204575204576204577204578204579204580204581204582204583204584204585204586204587204588204589204590204591204592204593204594204595204596204597204598204599204600204601204602204603204604204605204606204607204608204609204610204611204612204613204614204615204616204617204618204619204620204621204622204623204624204625204626204627204628204629204630204631204632204633204634204635204636204637204638204639204640204641204642204643204644204645204646204647204648204649204650204651204652204653204654204655204656204657204658204659204660204661204662204663204664204665204666204667204668204669204670204671204672204673204674204675204676204677204678204679204680204681204682204683204684204685204686204687204688204689204690204691204692204693204694204695204696204697204698204699204700204701204702204703204704204705204706204707204708204709204710204711204712204713204714204715204716204717204718204719204720204721204722204723204724204725204726204727204728204729204730204731204732204733204734204735204736204737204738204739204740204741204742204743204744204745204746204747204748204749204750204751204752204753204754204755204756204757204758204759204760204761204762204763204764204765204766204767204768204769204770204771204772204773204774204775204776204777204778204779204780204781204782204783204784204785204786204787204788204789204790204791204792204793204794204795204796204797204798204799204800204801204802204803204804204805204806204807204808204809204810204811204812204813204814204815204816204817204818204819204820204821204822204823204824204825204826204827204828204829204830204831204832204833204834204835204836204837204838204839204840204841204842204843204844204845204846204847204848204849204850204851204852204853204854204855204856204857204858204859204860204861204862204863204864204865204866204867204868204869204870204871204872204873204874204875204876204877204878204879204880204881204882204883204884204885204886204887204888204889204890204891204892204893204894204895204896204897204898204899204900204901204902204903204904204905204906204907204908204909204910204911204912204913204914204915204916204917204918204919204920204921204922204923204924204925204926204927204928204929204930204931204932204933204934204935204936204937204938204939204940204941204942204943204944204945204946204947204948204949204950204951204952204953204954204955204956204957204958204959204960204961204962204963204964204965204966204967204968204969204970204971204972204973204974204975204976204977204978204979204980204981204982204983204984204985204986204987204988204989204990204991204992204993204994204995204996204997204998204999205000205001205002205003205004205005205006205007205008205009205010205011205012205013205014205015205016205017205018205019205020205021205022205023205024205025205026205027205028205029205030205031205032205033205034205035205036205037205038205039205040205041205042205043205044205045205046205047205048205049205050205051205052205053205054205055205056205057205058205059205060205061205062205063205064205065205066205067205068205069205070205071205072205073205074205075205076205077205078205079205080205081205082205083205084205085205086205087205088205089205090205091205092205093205094205095205096205097205098205099205100205101205102205103205104205105205106205107205108205109205110205111205112205113205114205115205116205117205118205119205120205121205122205123205124205125205126205127205128205129205130205131205132205133205134205135205136205137205138205139205140205141205142205143205144205145205146205147205148205149205150205151205152205153205154205155205156205157205158205159205160205161205162205163205164205165205166205167205168205169205170205171205172205173205174205175205176205177205178205179205180205181205182205183205184205185205186205187205188205189205190205191205192205193205194205195205196205197205198205199205200205201205202205203205204205205205206205207205208205209205210205211205212205213205214205215205216205217205218205219205220205221205222205223205224205225205226205227205228205229205230205231205232205233205234205235205236205237205238205239205240205241205242205243205244205245205246205247205248205249205250205251205252205253205254205255205256205257205258205259205260205261205262205263205264205265205266205267205268205269205270205271205272205273205274205275205276205277205278205279205280205281205282205283205284205285205286205287205288205289205290205291205292205293205294205295205296205297205298205299205300205301205302205303205304205305205306205307205308205309205310205311205312205313205314205315205316205317205318205319205320205321205322205323205324205325205326205327205328205329205330205331205332205333205334205335205336205337205338205339205340205341205342205343205344205345205346205347205348205349205350205351205352205353205354205355205356205357205358205359205360205361205362205363205364205365205366205367205368205369205370205371205372205373205374205375205376205377205378205379205380205381205382205383205384205385205386205387205388205389205390205391205392205393205394205395205396205397205398205399205400205401205402205403205404205405205406205407205408205409205410205411205412205413205414205415205416205417205418205419205420205421205422205423205424205425205426205427205428205429205430205431205432205433205434205435205436205437205438205439205440205441205442205443205444205445205446205447205448205449205450205451205452205453205454205455205456205457205458205459205460205461205462205463205464205465205466205467205468205469205470205471205472205473205474205475205476205477205478205479205480205481205482205483205484205485205486205487205488205489205490205491205492205493205494205495205496205497205498205499205500205501205502205503205504205505205506205507205508205509205510205511205512205513205514205515205516205517205518205519205520205521205522205523205524205525205526205527205528205529205530205531205532205533205534205535205536205537205538205539205540205541205542205543205544205545205546205547205548205549205550205551205552205553205554205555205556205557205558205559205560205561205562205563205564205565205566205567205568205569205570205571205572205573205574205575205576205577205578205579205580205581205582205583205584205585205586205587205588205589205590205591205592205593205594205595205596205597205598205599205600205601205602205603205604205605205606205607205608205609205610205611205612205613205614205615205616205617205618205619205620205621205622205623205624205625205626205627205628205629205630205631205632205633205634205635205636205637205638205639205640205641205642205643205644205645205646205647205648205649205650205651205652205653205654205655205656205657205658205659205660205661205662205663205664205665205666205667205668205669205670205671205672205673205674205675205676205677205678205679205680205681205682205683205684205685205686205687205688205689205690205691205692205693205694205695205696205697205698205699205700205701205702205703205704205705205706205707205708205709205710205711205712205713205714205715205716205717205718205719205720205721205722205723205724205725205726205727205728205729205730205731205732205733205734205735205736205737205738205739205740205741205742205743205744205745205746205747205748205749205750205751205752205753205754205755205756205757205758205759205760205761205762205763205764205765205766205767205768205769205770205771205772205773205774205775205776205777205778205779205780205781205782205783205784205785205786205787205788205789205790205791205792205793205794205795205796205797205798205799205800205801205802205803205804205805205806205807205808205809205810205811205812205813205814205815205816205817205818205819205820205821205822205823205824205825205826205827205828205829205830205831205832205833205834205835205836205837205838205839205840205841205842205843205844205845205846205847205848205849205850205851205852205853205854205855205856205857205858205859205860205861205862205863205864205865205866205867205868205869205870205871205872205873205874205875205876205877205878205879205880205881205882205883205884205885205886205887205888205889205890205891205892205893205894205895205896205897205898205899205900205901205902205903205904205905205906205907205908205909205910205911205912205913205914205915205916205917205918205919205920205921205922205923205924205925205926205927205928205929205930205931205932205933205934205935205936205937205938205939205940205941205942205943205944205945205946205947205948205949205950205951205952205953205954205955205956205957205958205959205960205961205962205963205964205965205966205967205968205969205970205971205972205973205974205975205976205977205978205979205980205981205982205983205984205985205986205987205988205989205990205991205992205993205994205995205996205997205998205999206000206001206002206003206004206005206006206007206008206009206010206011206012206013206014206015206016206017206018206019206020206021206022206023206024206025206026206027206028206029206030206031206032206033206034206035206036206037206038206039206040206041206042206043206044206045206046206047206048206049206050206051206052206053206054206055206056206057206058206059206060206061206062206063206064206065206066206067206068206069206070206071206072206073206074206075206076206077206078206079206080206081206082206083206084206085206086206087206088206089206090206091206092206093206094206095206096206097206098206099206100206101206102206103206104206105206106206107206108206109206110206111206112206113206114206115206116206117206118206119206120206121206122206123206124206125206126206127206128206129206130206131206132206133206134206135206136206137206138206139206140206141206142206143206144206145206146206147206148206149206150206151206152206153206154206155206156206157206158206159206160206161206162206163206164206165206166206167206168206169206170206171206172206173206174206175206176206177206178206179206180206181206182206183206184206185206186206187206188206189206190206191206192206193206194206195206196206197206198206199206200206201206202206203206204206205206206206207206208206209206210206211206212206213206214206215206216206217206218206219206220206221206222206223206224206225206226206227206228206229206230206231206232206233206234206235206236206237206238206239206240206241206242206243206244206245206246206247206248206249206250206251206252206253206254206255206256206257206258206259206260206261206262206263206264206265206266206267206268206269206270206271206272206273206274206275206276206277206278206279206280206281206282206283206284206285206286206287206288206289206290206291206292206293206294206295206296206297206298206299206300206301206302206303206304206305206306206307206308206309206310206311206312206313206314206315206316206317206318206319206320206321206322206323206324206325206326206327206328206329206330206331206332206333206334206335206336206337206338206339206340206341206342206343206344206345206346206347206348206349206350206351206352206353206354206355206356206357206358206359206360206361206362206363206364206365206366206367206368206369206370206371206372206373206374206375206376206377206378206379206380206381206382206383206384206385206386206387206388206389206390206391206392206393206394206395206396206397206398206399206400206401206402206403206404206405206406206407206408206409206410206411206412206413206414206415206416206417206418206419206420206421206422206423206424206425206426206427206428206429206430206431206432206433206434206435206436206437206438206439206440206441206442206443206444206445206446206447206448206449206450206451206452206453206454206455206456206457206458206459206460206461206462206463206464206465206466206467206468206469206470206471206472206473206474206475206476206477206478206479206480206481206482206483206484206485206486206487206488206489206490206491206492206493206494206495206496206497206498206499206500206501206502206503206504206505206506206507206508206509206510206511206512206513206514206515206516206517206518206519206520206521206522206523206524206525206526206527206528206529206530206531206532206533206534206535206536206537206538206539206540206541206542206543206544206545206546206547206548206549206550206551206552206553206554206555206556206557206558206559206560206561206562206563206564206565206566206567206568206569206570206571206572206573206574206575206576206577206578206579206580206581206582206583206584206585206586206587206588206589206590206591206592206593206594206595206596206597206598206599206600206601206602206603206604206605206606206607206608206609206610206611206612206613206614206615206616206617206618206619206620206621206622206623206624206625206626206627206628206629206630206631206632206633206634206635206636206637206638206639206640206641206642206643206644206645206646206647206648206649206650206651206652206653206654206655206656206657206658206659206660206661206662206663206664206665206666206667206668206669206670206671206672206673206674206675206676206677206678206679206680206681206682206683206684206685206686206687206688206689206690206691206692206693206694206695206696206697206698206699206700206701206702206703206704206705206706206707206708206709206710206711206712206713206714206715206716206717206718206719206720206721206722206723206724206725206726206727206728206729206730206731206732206733206734206735206736206737206738206739206740206741206742206743206744206745206746206747206748206749206750206751206752206753206754206755206756206757206758206759206760206761206762206763206764206765206766206767206768206769206770206771206772206773206774206775206776206777206778206779206780206781206782206783206784206785206786206787206788206789206790206791206792206793206794206795206796206797206798206799206800206801206802206803206804206805206806206807206808206809206810206811206812206813206814206815206816206817206818206819206820206821206822206823206824206825206826206827206828206829206830206831206832206833206834206835206836206837206838206839206840206841206842206843206844206845206846206847206848206849206850206851206852206853206854206855206856206857206858206859206860206861206862206863206864206865206866206867206868206869206870206871206872206873206874206875206876206877206878206879206880206881206882206883206884206885206886206887206888206889206890206891206892206893206894206895206896206897206898206899206900206901206902206903206904206905206906206907206908206909206910206911206912206913206914206915206916206917206918206919206920206921206922206923206924206925206926206927206928206929206930206931206932206933206934206935206936206937206938206939206940206941206942206943206944206945206946206947206948206949206950206951206952206953206954206955206956206957206958206959206960206961206962206963206964206965206966206967206968206969206970206971206972206973206974206975206976206977206978206979206980206981206982206983206984206985206986206987206988206989206990206991206992206993206994206995206996206997206998206999207000207001207002207003207004207005207006207007207008207009207010207011207012207013207014207015207016207017207018207019207020207021207022207023207024207025207026207027207028207029207030207031207032207033207034207035207036207037207038207039207040207041207042207043207044207045207046207047207048207049207050207051207052207053207054207055207056207057207058207059207060207061207062207063207064207065207066207067207068207069207070207071207072207073207074207075207076207077207078207079207080207081207082207083207084207085207086207087207088207089207090207091207092207093207094207095207096207097207098207099207100207101207102207103207104207105207106207107207108207109207110207111207112207113207114207115207116207117207118207119207120207121207122207123207124207125207126207127207128207129207130207131207132207133207134207135207136207137207138207139207140207141207142207143207144207145207146207147207148207149207150207151207152207153207154207155207156207157207158207159207160207161207162207163207164207165207166207167207168207169207170207171207172207173207174207175207176207177207178207179207180207181207182207183207184207185207186207187207188207189207190207191207192207193207194207195207196207197207198207199207200207201207202207203207204207205207206207207207208207209207210207211207212207213207214207215207216207217207218207219207220207221207222207223207224207225207226207227207228207229207230207231207232207233207234207235207236207237207238207239207240207241207242207243207244207245207246207247207248207249207250207251207252207253207254207255207256207257207258207259207260207261207262207263207264207265207266207267207268207269207270207271207272207273207274207275207276207277207278207279207280207281207282207283207284207285207286207287207288207289207290207291207292207293207294207295207296207297207298207299207300207301207302207303207304207305207306207307207308207309207310207311207312207313207314207315207316207317207318207319207320207321207322207323207324207325207326207327207328207329207330207331207332207333207334207335207336207337207338207339207340207341207342207343207344207345207346207347207348207349207350207351207352207353207354207355207356207357207358207359207360207361207362207363207364207365207366207367207368207369207370207371207372207373207374207375207376207377207378207379207380207381207382207383207384207385207386207387207388207389207390207391207392207393207394207395207396207397207398207399207400207401207402207403207404207405207406207407207408207409207410207411207412207413207414207415207416207417207418207419207420207421207422207423207424207425207426207427207428207429207430207431207432207433207434207435207436207437207438207439207440207441207442207443207444207445207446207447207448207449207450207451207452207453207454207455207456207457207458207459207460207461207462207463207464207465207466207467207468207469207470207471207472207473207474207475207476207477207478207479207480207481207482207483207484207485207486207487207488207489207490207491207492207493207494207495207496207497207498207499207500207501207502207503207504207505207506207507207508207509207510207511207512207513207514207515207516207517207518207519207520207521207522207523207524207525207526207527207528207529207530207531207532207533207534207535207536207537207538207539207540207541207542207543207544207545207546207547207548207549207550207551207552207553207554207555207556207557207558207559207560207561207562207563207564207565207566207567207568207569207570207571207572207573207574207575207576207577207578207579207580207581207582207583207584207585207586207587207588207589207590207591207592207593207594207595207596207597207598207599207600207601207602207603207604207605207606207607207608207609207610207611207612207613207614207615207616207617207618207619207620207621207622207623207624207625207626207627207628207629207630207631207632207633207634207635207636207637207638207639207640207641207642207643207644207645207646207647207648207649207650207651207652207653207654207655207656207657207658207659207660207661207662207663207664207665207666207667207668207669207670207671207672207673207674207675207676207677207678207679207680207681207682207683207684207685207686207687207688207689207690207691207692207693207694207695207696207697207698207699207700207701207702207703207704207705207706207707207708207709207710207711207712207713207714207715207716207717207718207719207720207721207722207723207724207725207726207727207728207729207730207731207732207733207734207735207736207737207738207739207740207741207742207743207744207745207746207747207748207749207750207751207752207753207754207755207756207757207758207759207760207761207762207763207764207765207766207767207768207769207770207771207772207773207774207775207776207777207778207779207780207781207782207783207784207785207786207787207788207789207790207791207792207793207794207795207796207797207798207799207800207801207802207803207804207805207806207807207808207809207810207811207812207813207814207815207816207817207818207819207820207821207822207823207824207825207826207827207828207829207830207831207832207833207834207835207836207837207838207839207840207841207842207843207844207845207846207847207848207849207850207851207852207853207854207855207856207857207858207859207860207861207862207863207864207865207866207867207868207869207870207871207872207873207874207875207876207877207878207879207880207881207882207883207884207885207886207887207888207889207890207891207892207893207894207895207896207897207898207899207900207901207902207903207904207905207906207907207908207909207910207911207912207913207914207915207916207917207918207919207920207921207922207923207924207925207926207927207928207929207930207931207932207933207934207935207936207937207938207939207940207941207942207943207944207945207946207947207948207949207950207951207952207953207954207955207956207957207958207959207960207961207962207963207964207965207966207967207968207969207970207971207972207973207974207975207976207977207978207979207980207981207982207983207984207985207986207987207988207989207990207991207992207993207994207995207996207997207998207999208000208001208002208003208004208005208006208007208008208009208010208011208012208013208014208015208016208017208018208019208020208021208022208023208024208025208026208027208028208029208030208031208032208033208034208035208036208037208038208039208040208041208042208043208044208045208046208047208048208049208050208051208052208053208054208055208056208057208058208059208060208061208062208063208064208065208066208067208068208069208070208071208072208073208074208075208076208077208078208079208080208081208082208083208084208085208086208087208088208089208090208091208092208093208094208095208096208097208098208099208100208101208102208103208104208105208106208107208108208109208110208111208112208113208114208115208116208117208118208119208120208121208122208123208124208125208126208127208128208129208130208131208132208133208134208135208136208137208138208139208140208141208142208143208144208145208146208147208148208149208150208151208152208153208154208155208156208157208158208159208160208161208162208163208164208165208166208167208168208169208170208171208172208173208174208175208176208177208178208179208180208181208182208183208184208185208186208187208188208189208190208191208192208193208194208195208196208197208198208199208200208201208202208203208204208205208206208207208208208209208210208211208212208213208214208215208216208217208218208219208220208221208222208223208224208225208226208227208228208229208230208231208232208233208234208235208236208237208238208239208240208241208242208243208244208245208246208247208248208249208250208251208252208253208254208255208256208257208258208259208260208261208262208263208264208265208266208267208268208269208270208271208272208273208274208275208276208277208278208279208280208281208282208283208284208285208286208287208288208289208290208291208292208293208294208295208296208297208298208299208300208301208302208303208304208305208306208307208308208309208310208311208312208313208314208315208316208317208318208319208320208321208322208323208324208325208326208327208328208329208330208331208332208333208334208335208336208337208338208339208340208341208342208343208344208345208346208347208348208349208350208351208352208353208354208355208356208357208358208359208360208361208362208363208364208365208366208367208368208369208370208371208372208373208374208375208376208377208378208379208380208381208382208383208384208385208386208387208388208389208390208391208392208393208394208395208396208397208398208399208400208401208402208403208404208405208406208407208408208409208410208411208412208413208414208415208416208417208418208419208420208421208422208423208424208425208426208427208428208429208430208431208432208433208434208435208436208437208438208439208440208441208442208443208444208445208446208447208448208449208450208451208452208453208454208455208456208457208458208459208460208461208462208463208464208465208466208467208468208469208470208471208472208473208474208475208476208477208478208479208480208481208482208483208484208485208486208487208488208489208490208491208492208493208494208495208496208497208498208499208500208501208502208503208504208505208506208507208508208509208510208511208512208513208514208515208516208517208518208519208520208521208522208523208524208525208526208527208528208529208530208531208532208533208534208535208536208537208538208539208540208541208542208543208544208545208546208547208548208549208550208551208552208553208554208555208556208557208558208559208560208561208562208563208564208565208566208567208568208569208570208571208572208573208574208575208576208577208578208579208580208581208582208583208584208585208586208587208588208589208590208591208592208593208594208595208596208597208598208599208600208601208602208603208604208605208606208607208608208609208610208611208612208613208614208615208616208617208618208619208620208621208622208623208624208625208626208627208628208629208630208631208632208633208634208635208636208637208638208639208640208641208642208643208644208645208646208647208648208649208650208651208652208653208654208655208656208657208658208659208660208661208662208663208664208665208666208667208668208669208670208671208672208673208674208675208676208677208678208679208680208681208682208683208684208685208686208687208688208689208690208691208692208693208694208695208696208697208698208699208700208701208702208703208704208705208706208707208708208709208710208711208712208713208714208715208716208717208718208719208720208721208722208723208724208725208726208727208728208729208730208731208732208733208734208735208736208737208738208739208740208741208742208743208744208745208746208747208748208749208750208751208752208753208754208755208756208757208758208759208760208761208762208763208764208765208766208767208768208769208770208771208772208773208774208775208776208777208778208779208780208781208782208783208784208785208786208787208788208789208790208791208792208793208794208795208796208797208798208799208800208801208802208803208804208805208806208807208808208809208810208811208812208813208814208815208816208817208818208819208820208821208822208823208824208825208826208827208828208829208830208831208832208833208834208835208836208837208838208839208840208841208842208843208844208845208846208847208848208849208850208851208852208853208854208855208856208857208858208859208860208861208862208863208864208865208866208867208868208869208870208871208872208873208874208875208876208877208878208879208880208881208882208883208884208885208886208887208888208889208890208891208892208893208894208895208896208897208898208899208900208901208902208903208904208905208906208907208908208909208910208911208912208913208914208915208916208917208918208919208920208921208922208923208924208925208926208927208928208929208930208931208932208933208934208935208936208937208938208939208940208941208942208943208944208945208946208947208948208949208950208951208952208953208954208955208956208957208958208959208960208961208962208963208964208965208966208967208968208969208970208971208972208973208974208975208976208977208978208979208980208981208982208983208984208985208986208987208988208989208990208991208992208993208994208995208996208997208998208999209000209001209002209003209004209005209006209007209008209009209010209011209012209013209014209015209016209017209018209019209020209021209022209023209024209025209026209027209028209029209030209031209032209033209034209035209036209037209038209039209040209041209042209043209044209045209046209047209048209049209050209051209052209053209054209055209056209057209058209059209060209061209062209063209064209065209066209067209068209069209070209071209072209073209074209075209076209077209078209079209080209081209082209083209084209085209086209087209088209089209090209091209092209093209094209095209096209097209098209099209100209101209102209103209104209105209106209107209108209109209110209111209112209113209114209115209116209117209118209119209120209121209122209123209124209125209126209127209128209129209130209131209132209133209134209135209136209137209138209139209140209141209142209143209144209145209146209147209148209149209150209151209152209153209154209155209156209157209158209159209160209161209162209163209164209165209166209167209168209169209170209171209172209173209174209175209176209177209178209179209180209181209182209183209184209185209186209187209188209189209190209191209192209193209194209195209196209197209198209199209200209201209202209203209204209205209206209207209208209209209210209211209212209213209214209215209216209217209218209219209220209221209222209223209224209225209226209227209228209229209230209231209232209233209234209235209236209237209238209239209240209241209242209243209244209245209246209247209248209249209250209251209252209253209254209255209256209257209258209259209260209261209262209263209264209265209266209267209268209269209270209271209272209273209274209275209276209277209278209279209280209281209282209283209284209285209286209287209288209289209290209291209292209293209294209295209296209297209298209299209300209301209302209303209304209305209306209307209308209309209310209311209312209313209314209315209316209317209318209319209320209321209322209323209324209325209326209327209328209329209330209331209332209333209334209335209336209337209338209339209340209341209342209343209344209345209346209347209348209349209350209351209352209353209354209355209356209357209358209359209360209361209362209363209364209365209366209367209368209369209370209371209372209373209374209375209376209377209378209379209380209381209382209383209384209385209386209387209388209389209390209391209392209393209394209395209396209397209398209399209400209401209402209403209404209405209406209407209408209409209410209411209412209413209414209415209416209417209418209419209420209421209422209423209424209425209426209427209428209429209430209431209432209433209434209435209436209437209438209439209440209441209442209443209444209445209446209447209448209449209450209451209452209453209454209455209456209457209458209459209460209461209462209463209464209465209466209467209468209469209470209471209472209473209474209475209476209477209478209479209480209481209482209483209484209485209486209487209488209489209490209491209492209493209494209495209496209497209498209499209500209501209502209503209504209505209506209507209508209509209510209511209512209513209514209515209516209517209518209519209520209521209522209523209524209525209526209527209528209529209530209531209532209533209534209535209536209537209538209539209540209541209542209543209544209545209546209547209548209549209550209551209552209553209554209555209556209557209558209559209560209561209562209563209564209565209566209567209568209569209570209571209572209573209574209575209576209577209578209579209580209581209582209583209584209585209586209587209588209589209590209591209592209593209594209595209596209597209598209599209600209601209602209603209604209605209606209607209608209609209610209611209612209613209614209615209616209617209618209619209620209621209622209623209624209625209626209627209628209629209630209631209632209633209634209635209636209637209638209639209640209641209642209643209644209645209646209647209648209649209650209651209652209653209654209655209656209657209658209659209660209661209662209663209664209665209666209667209668209669209670209671209672209673209674209675209676209677209678209679209680209681209682209683209684209685209686209687209688209689209690209691209692209693209694209695209696209697209698209699209700209701209702209703209704209705209706209707209708209709209710209711209712209713209714209715209716209717209718209719209720209721209722209723209724209725209726209727209728209729209730209731209732209733209734209735209736209737209738209739209740209741209742209743209744209745209746209747209748209749209750209751209752209753209754209755209756209757209758209759209760209761209762209763209764209765209766209767209768209769209770209771209772209773209774209775209776209777209778209779209780209781209782209783209784209785209786209787209788209789209790209791209792209793209794209795209796209797209798209799209800209801209802209803209804209805209806209807209808209809209810209811209812209813209814209815209816209817209818209819209820209821209822209823209824209825209826209827209828209829209830209831209832209833209834209835209836209837209838209839209840209841209842209843209844209845209846209847209848209849209850209851209852209853209854209855209856209857209858209859209860209861209862209863209864209865209866209867209868209869209870209871209872209873209874209875209876209877209878209879209880209881209882209883209884209885209886209887209888209889209890209891209892209893209894209895209896209897209898209899209900209901209902209903209904209905209906209907209908209909209910209911209912209913209914209915209916209917209918209919209920209921209922209923209924209925209926209927209928209929209930209931209932209933209934209935209936209937209938209939209940209941209942209943209944209945209946209947209948209949209950209951209952209953209954209955209956209957209958209959209960209961209962209963209964209965209966209967209968209969209970209971209972209973209974209975209976209977209978209979209980209981209982209983209984209985209986209987209988209989209990209991209992209993209994209995209996209997209998209999210000210001210002210003210004210005210006210007210008210009210010210011210012210013210014210015210016210017210018210019210020210021210022210023210024210025210026210027210028210029210030210031210032210033210034210035210036210037210038210039210040210041210042210043210044210045210046210047210048210049210050210051210052210053210054210055210056210057210058210059210060210061210062210063210064210065210066210067210068210069210070210071210072210073210074210075210076210077210078210079210080210081210082210083210084210085210086210087210088210089210090210091210092210093210094210095210096210097210098210099210100210101210102210103210104210105210106210107210108210109210110210111210112210113210114210115210116210117210118210119210120210121210122210123210124210125210126210127210128210129210130210131210132210133210134210135210136210137210138210139210140210141210142210143210144210145210146210147210148210149210150210151210152210153210154210155210156210157210158210159210160210161210162210163210164210165210166210167210168210169210170210171210172210173210174210175210176210177210178210179210180210181210182210183210184210185210186210187210188210189210190210191210192210193210194210195210196210197210198210199210200210201210202210203210204210205210206210207210208210209210210210211210212210213210214210215210216210217210218210219210220210221210222210223210224210225210226210227210228210229210230210231210232210233210234210235210236210237210238210239210240210241210242210243210244210245210246210247210248210249210250210251210252210253210254210255210256210257210258210259210260210261210262210263210264210265210266210267210268210269210270210271210272210273210274210275210276210277210278210279210280210281210282210283210284210285210286210287210288210289210290210291210292210293210294210295210296210297210298210299210300210301210302210303210304210305210306210307210308210309210310210311210312210313210314210315210316210317210318210319210320210321210322210323210324210325210326210327210328210329210330210331210332210333210334210335210336210337210338210339210340210341210342210343210344210345210346210347210348210349210350210351210352210353210354210355210356210357210358210359210360210361210362210363210364210365210366210367210368210369210370210371210372210373210374210375210376210377210378210379210380210381210382210383210384210385210386210387210388210389210390210391210392210393210394210395210396210397210398210399210400210401210402210403210404210405210406210407210408210409210410210411210412210413210414210415210416210417210418210419210420210421210422210423210424210425210426210427210428210429210430210431210432210433210434210435210436210437210438210439210440210441210442210443210444210445210446210447210448210449210450210451210452210453210454210455210456210457210458210459210460210461210462210463210464210465210466210467210468210469210470210471210472210473210474210475210476210477210478210479210480210481210482210483210484210485210486210487210488210489210490210491210492210493210494210495210496210497210498210499210500210501210502210503210504210505210506210507210508210509210510210511210512210513210514210515210516210517210518210519210520210521210522210523210524210525210526210527210528210529210530210531210532210533210534210535210536210537210538210539210540210541210542210543210544210545210546210547210548210549210550210551210552210553210554210555210556210557210558210559210560210561210562210563210564210565210566210567210568210569210570210571210572210573210574210575210576210577210578210579210580210581210582210583210584210585210586210587210588210589210590210591210592210593210594210595210596210597210598210599210600210601210602210603210604210605210606210607210608210609210610210611210612210613210614210615210616210617210618210619210620210621210622210623210624210625210626210627210628210629210630210631210632210633210634210635210636210637210638210639210640210641210642210643210644210645210646210647210648210649210650210651210652210653210654210655210656210657210658210659210660210661210662210663210664210665210666210667210668210669210670210671210672210673210674210675210676210677210678210679210680210681210682210683210684210685210686210687210688210689210690210691210692210693210694210695210696210697210698210699210700210701210702210703210704210705210706210707210708210709210710210711210712210713210714210715210716210717210718210719210720210721210722210723210724210725210726210727210728210729210730210731210732210733210734210735210736210737210738210739210740210741210742210743210744210745210746210747210748210749210750210751210752210753210754210755210756210757210758210759210760210761210762210763210764210765210766210767210768210769210770210771210772210773210774210775210776210777210778210779210780210781210782210783210784210785210786210787210788210789210790210791210792210793210794210795210796210797210798210799210800210801210802210803210804210805210806210807210808210809210810210811210812210813210814210815210816210817210818210819210820210821210822210823210824210825210826210827210828210829210830210831210832210833210834210835210836210837210838210839210840210841210842210843210844210845210846210847210848210849210850210851210852210853210854210855210856210857210858210859210860210861210862210863210864210865210866210867210868210869210870210871210872210873210874210875210876210877210878210879210880210881210882210883210884210885210886210887210888210889210890210891210892210893210894210895210896210897210898210899210900210901210902210903210904210905210906210907210908210909210910210911210912210913210914210915210916210917210918210919210920210921210922210923210924210925210926210927210928210929210930210931210932210933210934210935210936210937210938210939210940210941210942210943210944210945210946210947210948210949210950210951210952210953210954210955210956210957210958210959210960210961210962210963210964210965210966210967210968210969210970210971210972210973210974210975210976210977210978210979210980210981210982210983210984210985210986210987210988210989210990210991210992210993210994210995210996210997210998210999211000211001211002211003211004211005211006211007211008211009211010211011211012211013211014211015211016211017211018211019211020211021211022211023211024211025211026211027211028211029211030211031211032211033211034211035211036211037211038211039211040211041211042211043211044211045211046211047211048211049211050211051211052211053211054211055211056211057211058211059211060211061211062211063211064211065211066211067211068211069211070211071211072211073211074211075211076211077211078211079211080211081211082211083211084211085211086211087211088211089211090211091211092211093211094211095211096211097211098211099211100211101211102211103211104211105211106211107211108211109211110211111211112211113211114211115211116211117211118211119211120211121211122211123211124211125211126211127211128211129211130211131211132211133211134211135211136211137211138211139211140211141211142211143211144211145211146211147211148211149211150211151211152211153211154211155211156211157211158211159211160211161211162211163211164211165211166211167211168211169211170211171211172211173211174211175211176211177211178211179211180211181211182211183211184211185211186211187211188211189211190211191211192211193211194211195211196211197211198211199211200211201211202211203211204211205211206211207211208211209211210211211211212211213211214211215211216211217211218211219211220211221211222211223211224211225211226211227211228211229211230211231211232211233211234211235211236211237211238211239211240211241211242211243211244211245211246211247211248211249211250211251211252211253211254211255211256211257211258211259211260211261211262211263211264211265211266211267211268211269211270211271211272211273211274211275211276211277211278211279211280211281211282211283211284211285211286211287211288211289211290211291211292211293211294211295211296211297211298211299211300211301211302211303211304211305211306211307211308211309211310211311211312211313211314211315211316211317211318211319211320211321211322211323211324211325211326211327211328211329211330211331211332211333211334211335211336211337211338211339211340211341211342211343211344211345211346211347211348211349211350211351211352211353211354211355211356211357211358211359211360211361211362211363211364211365211366211367211368211369211370211371211372211373211374211375211376211377211378211379211380211381211382211383211384211385211386211387211388211389211390211391211392211393211394211395211396211397211398211399211400211401211402211403211404211405211406211407211408211409211410211411211412211413211414211415211416211417211418211419211420211421211422211423211424211425211426211427211428211429211430211431211432211433211434211435211436211437211438211439211440211441211442211443211444211445211446211447211448211449211450211451211452211453211454211455211456211457211458211459211460211461211462211463211464211465211466211467211468211469211470211471211472211473211474211475211476211477211478211479211480211481211482211483211484211485211486211487211488211489211490211491211492211493211494211495211496211497211498211499211500211501211502211503211504211505211506211507211508211509211510211511211512211513211514211515211516211517211518211519211520211521211522211523211524211525211526211527211528211529211530211531211532211533211534211535211536211537211538211539211540211541211542211543211544211545211546211547211548211549211550211551211552211553211554211555211556211557211558211559211560211561211562211563211564211565211566211567211568211569211570211571211572211573211574211575211576211577211578211579211580211581211582211583211584211585211586211587211588211589211590211591211592211593211594211595211596211597211598211599211600211601211602211603211604211605211606211607211608211609211610211611211612211613211614211615211616211617211618211619211620211621211622211623211624211625211626211627211628211629211630211631211632211633211634211635211636211637211638211639211640211641211642211643211644211645211646211647211648211649211650211651211652211653211654211655211656211657211658211659211660211661211662211663211664211665211666211667211668211669211670211671211672211673211674211675211676211677211678211679211680211681211682211683211684211685211686211687211688211689211690211691211692211693211694211695211696211697211698211699211700211701211702211703211704211705211706211707211708211709211710211711211712211713211714211715211716211717211718211719211720211721211722211723211724211725211726211727211728211729211730211731211732211733211734211735211736211737211738211739211740211741211742211743211744211745211746211747211748211749211750211751211752211753211754211755211756211757211758211759211760211761211762211763211764211765211766211767211768211769211770211771211772211773211774211775211776211777211778211779211780211781211782211783211784211785211786211787211788211789211790211791211792211793211794211795211796211797211798211799211800211801211802211803211804211805211806211807211808211809211810211811211812211813211814211815211816211817211818211819211820211821211822211823211824211825211826211827211828211829211830211831211832211833211834211835211836211837211838211839211840211841211842211843211844211845211846211847211848211849211850211851211852211853211854211855211856211857211858211859211860211861211862211863211864211865211866211867211868211869211870211871211872211873211874211875211876211877211878211879211880211881211882211883211884211885211886211887211888211889211890211891211892211893211894211895211896211897211898211899211900211901211902211903211904211905211906211907211908211909211910211911211912211913211914211915211916211917211918211919211920211921211922211923211924211925211926211927211928211929211930211931211932211933211934211935211936211937211938211939211940211941211942211943211944211945211946211947211948211949211950211951211952211953211954211955211956211957211958211959211960211961211962211963211964211965211966211967211968211969211970211971211972211973211974211975211976211977211978211979211980211981211982211983211984211985211986211987211988211989211990211991211992211993211994211995211996211997211998211999212000212001212002212003212004212005212006212007212008212009212010212011212012212013212014212015212016212017212018212019212020212021212022212023212024212025212026212027212028212029212030212031212032212033212034212035212036212037212038212039212040212041212042212043212044212045212046212047212048212049212050212051212052212053212054212055212056212057212058212059212060212061212062212063212064212065212066212067212068212069212070212071212072212073212074212075212076212077212078212079212080212081212082212083212084212085212086212087212088212089212090212091212092212093212094212095212096212097212098212099212100212101212102212103212104212105212106212107212108212109212110212111212112212113212114212115212116212117212118212119212120212121212122212123212124212125212126212127212128212129212130212131212132212133212134212135212136212137212138212139212140212141212142212143212144212145212146212147212148212149212150212151212152212153212154212155212156212157212158212159212160212161212162212163212164212165212166212167212168212169212170212171212172212173212174212175212176212177212178212179212180212181212182212183212184212185212186212187212188212189212190212191212192212193212194212195212196212197212198212199212200212201212202212203212204212205212206212207212208212209212210212211212212212213212214212215212216212217212218212219212220212221212222212223212224212225212226212227212228212229212230212231212232212233212234212235212236212237212238212239212240212241212242212243212244212245212246212247212248212249212250212251212252212253212254212255212256212257212258212259212260212261212262212263212264212265212266212267212268212269212270212271212272212273212274212275212276212277212278212279212280212281212282212283212284212285212286212287212288212289212290212291212292212293212294212295212296212297212298212299212300212301212302212303212304212305212306212307212308212309212310212311212312212313212314212315212316212317212318212319212320212321212322212323212324212325212326212327212328212329212330212331212332212333212334212335212336212337212338212339212340212341212342212343212344212345212346212347212348212349212350212351212352212353212354212355212356212357212358212359212360212361212362212363212364212365212366212367212368212369212370212371212372212373212374212375212376212377212378212379212380212381212382212383212384212385212386212387212388212389212390212391212392212393212394212395212396212397212398212399212400212401212402212403212404212405212406212407212408212409212410212411212412212413212414212415212416212417212418212419212420212421212422212423212424212425212426212427212428212429212430212431212432212433212434212435212436212437212438212439212440212441212442212443212444212445212446212447212448212449212450212451212452212453212454212455212456212457212458212459212460212461212462212463212464212465212466212467212468212469212470212471212472212473212474212475212476212477212478212479212480212481212482212483212484212485212486212487212488212489212490212491212492212493212494212495212496212497212498212499212500212501212502212503212504212505212506212507212508212509212510212511212512212513212514212515212516212517212518212519212520212521212522212523212524212525212526212527212528212529212530212531212532212533212534212535212536212537212538212539212540212541212542212543212544212545212546212547212548212549212550212551212552212553212554212555212556212557212558212559212560212561212562212563212564212565212566212567212568212569212570212571212572212573212574212575212576212577212578212579212580212581212582212583212584212585212586212587212588212589212590212591212592212593212594212595212596212597212598212599212600212601212602212603212604212605212606212607212608212609212610212611212612212613212614212615212616212617212618212619212620212621212622212623212624212625212626212627212628212629212630212631212632212633212634212635212636212637212638212639212640212641212642212643212644212645212646212647212648212649212650212651212652212653212654212655212656212657212658212659212660212661212662212663212664212665212666212667212668212669212670212671212672212673212674212675212676212677212678212679212680212681212682212683212684212685212686212687212688212689212690212691212692212693212694212695212696212697212698212699212700212701212702212703212704212705212706212707212708212709212710212711212712212713212714212715212716212717212718212719212720212721212722212723212724212725212726212727212728212729212730212731212732212733212734212735212736212737212738212739212740212741212742212743212744212745212746212747212748212749212750212751212752212753212754212755212756212757212758212759212760212761212762212763212764212765212766212767212768212769212770212771212772212773212774212775212776212777212778212779212780212781212782212783212784212785212786212787212788212789212790212791212792212793212794212795212796212797212798212799212800212801212802212803212804212805212806212807212808212809212810212811212812212813212814212815212816212817212818212819212820212821212822212823212824212825212826212827212828212829212830212831212832212833212834212835212836212837212838212839212840212841212842212843212844212845212846212847212848212849212850212851212852212853212854212855212856212857212858212859212860212861212862212863212864212865212866212867212868212869212870212871212872212873212874212875212876212877212878212879212880212881212882212883212884212885212886212887212888212889212890212891212892212893212894212895212896212897212898212899212900212901212902212903212904212905212906212907212908212909212910212911212912212913212914212915212916212917212918212919212920212921212922212923212924212925212926212927212928212929212930212931212932212933212934212935212936212937212938212939212940212941212942212943212944212945212946212947212948212949212950212951212952212953212954212955212956212957212958212959212960212961212962212963212964212965212966212967212968212969212970212971212972212973212974212975212976212977212978212979212980212981212982212983212984212985212986212987212988212989212990212991212992212993212994212995212996212997212998212999213000213001213002213003213004213005213006213007213008213009213010213011213012213013213014213015213016213017213018213019213020213021213022213023213024213025213026213027213028213029213030213031213032213033213034213035213036213037213038213039213040213041213042213043213044213045213046213047213048213049213050213051213052213053213054213055213056213057213058213059213060213061213062213063213064213065213066213067213068213069213070213071213072213073213074213075213076213077213078213079213080213081213082213083213084213085213086213087213088213089213090213091213092213093213094213095213096213097213098213099213100213101213102213103213104213105213106213107213108213109213110213111213112213113213114213115213116213117213118213119213120213121213122213123213124213125213126213127213128213129213130213131213132213133213134213135213136213137213138213139213140213141213142213143213144213145213146213147213148213149213150213151213152213153213154213155213156213157213158213159213160213161213162213163213164213165213166213167213168213169213170213171213172213173213174213175213176213177213178213179213180213181213182213183213184213185213186213187213188213189213190213191213192213193213194213195213196213197213198213199213200213201213202213203213204213205213206213207213208213209213210213211213212213213213214213215213216213217213218213219213220213221213222213223213224213225213226213227213228213229213230213231213232213233213234213235213236213237213238213239213240213241213242213243213244213245213246213247213248213249213250213251213252213253213254213255213256213257213258213259213260213261213262213263213264213265213266213267213268213269213270213271213272213273213274213275213276213277213278213279213280213281213282213283213284213285213286213287213288213289213290213291213292213293213294213295213296213297213298213299213300213301213302213303213304213305213306213307213308213309213310213311213312213313213314213315213316213317213318213319213320213321213322213323213324213325213326213327213328213329213330213331213332213333213334213335213336213337213338213339213340213341213342213343213344213345213346213347213348213349213350213351213352213353213354213355213356213357213358213359213360213361213362213363213364213365213366213367213368213369213370213371213372213373213374213375213376213377213378213379213380213381213382213383213384213385213386213387213388213389213390213391213392213393213394213395213396213397213398213399213400213401213402213403213404213405213406213407213408213409213410213411213412213413213414213415213416213417213418213419213420213421213422213423213424213425213426213427213428213429213430213431213432213433213434213435213436213437213438213439213440213441213442213443213444213445213446213447213448213449213450213451213452213453213454213455213456213457213458213459213460213461213462213463213464213465213466213467213468213469213470213471213472213473213474213475213476213477213478213479213480213481213482213483213484213485213486213487213488213489213490213491213492213493213494213495213496213497213498213499213500213501213502213503213504213505213506213507213508213509213510213511213512213513213514213515213516213517213518213519213520213521213522213523213524213525213526213527213528213529213530213531213532213533213534213535213536213537213538213539213540213541213542213543213544213545213546213547213548213549213550213551213552213553213554213555213556213557213558213559213560213561213562213563213564213565213566213567213568213569213570213571213572213573213574213575213576213577213578213579213580213581213582213583213584213585213586213587213588213589213590213591213592213593213594213595213596213597213598213599213600213601213602213603213604213605213606213607213608213609213610213611213612213613213614213615213616213617213618213619213620213621213622213623213624213625213626213627213628213629213630213631213632213633213634213635213636213637213638213639213640213641213642213643213644213645213646213647213648213649213650213651213652213653213654213655213656213657213658213659213660213661213662213663213664213665213666213667213668213669213670213671213672213673213674213675213676213677213678213679213680213681213682213683213684213685213686213687213688213689213690213691213692213693213694213695213696213697213698213699213700213701213702213703213704213705213706213707213708213709213710213711213712213713213714213715213716213717213718213719213720213721213722213723213724213725213726213727213728213729213730213731213732213733213734213735213736213737213738213739213740213741213742213743213744213745213746213747213748213749213750213751213752213753213754213755213756213757213758213759213760213761213762213763213764213765213766213767213768213769213770213771213772213773213774213775213776213777213778213779213780213781213782213783213784213785213786213787213788213789213790213791213792213793213794213795213796213797213798213799213800213801213802213803213804213805213806213807213808213809213810213811213812213813213814213815213816213817213818213819213820213821213822213823213824213825213826213827213828213829213830213831213832213833213834213835213836213837213838213839213840213841213842213843213844213845213846213847213848213849213850213851213852213853213854213855213856213857213858213859213860213861213862213863213864213865213866213867213868213869213870213871213872213873213874213875213876213877213878213879213880213881213882213883213884213885213886213887213888213889213890213891213892213893213894213895213896213897213898213899213900213901213902213903213904213905213906213907213908213909213910213911213912213913213914213915213916213917213918213919213920213921213922213923213924213925213926213927213928213929213930213931213932213933213934213935213936213937213938213939213940213941213942213943213944213945213946213947213948213949213950213951213952213953213954213955213956213957213958213959213960213961213962213963213964213965213966213967213968213969213970213971213972213973213974213975213976213977213978213979213980213981213982213983213984213985213986213987213988213989213990213991213992213993213994213995213996213997213998213999214000214001214002214003214004214005214006214007214008214009214010214011214012214013214014214015214016214017214018214019214020214021214022214023214024214025214026214027214028214029214030214031214032214033214034214035214036214037214038214039214040214041214042214043214044214045214046214047214048214049214050214051214052214053214054214055214056214057214058214059214060214061214062214063214064214065214066214067214068214069214070214071214072214073214074214075214076214077214078214079214080214081214082214083214084214085214086214087214088214089214090214091214092214093214094214095214096214097214098214099214100214101214102214103214104214105214106214107214108214109214110214111214112214113214114214115214116214117214118214119214120214121214122214123214124214125214126214127214128214129214130214131214132214133214134214135214136214137214138214139214140214141214142214143214144214145214146214147214148214149214150214151214152214153214154214155214156214157214158214159214160214161214162214163214164214165214166214167214168214169214170214171214172214173214174214175214176214177214178214179214180214181214182214183214184214185214186214187214188214189214190214191214192214193214194214195214196214197214198214199214200214201214202214203214204214205214206214207214208214209214210214211214212214213214214214215214216214217214218214219214220214221214222214223214224214225214226214227214228214229214230214231214232214233214234214235214236214237214238214239214240214241214242214243214244214245214246214247214248214249214250214251214252214253214254214255214256214257214258214259214260214261214262214263214264214265214266214267214268214269214270214271214272214273214274214275214276214277214278214279214280214281214282214283214284214285214286214287214288214289214290214291214292214293214294214295214296214297214298214299214300214301214302214303214304214305214306214307214308214309214310214311214312214313214314214315214316214317214318214319214320214321214322214323214324214325214326214327214328214329214330214331214332214333214334214335214336214337214338214339214340214341214342214343214344214345214346214347214348214349214350214351214352214353214354214355214356214357214358214359214360214361214362214363214364214365214366214367214368214369214370214371214372214373214374214375214376214377214378214379214380214381214382214383214384214385214386214387214388214389214390214391214392214393214394214395214396214397214398214399214400214401214402214403214404214405214406214407214408214409214410214411214412214413214414214415214416214417214418214419214420214421214422214423214424214425214426214427214428214429214430214431214432214433214434214435214436214437214438214439214440214441214442214443214444214445214446214447214448214449214450214451214452214453214454214455214456214457214458214459214460214461214462214463214464214465214466214467214468214469214470214471214472214473214474214475214476214477214478214479214480214481214482214483214484214485214486214487214488214489214490214491214492214493214494214495214496214497214498214499214500214501214502214503214504214505214506214507214508214509214510214511214512214513214514214515214516214517214518214519214520214521214522214523214524214525214526214527214528214529214530214531214532214533214534214535214536214537214538214539214540214541214542214543214544214545214546214547214548214549214550214551214552214553214554214555214556214557214558214559214560214561214562214563214564214565214566214567214568214569214570214571214572214573214574214575214576214577214578214579214580214581214582214583214584214585214586214587214588214589214590214591214592214593214594214595214596214597214598214599214600214601214602214603214604214605214606214607214608214609214610214611214612214613214614214615214616214617214618214619214620214621214622214623214624214625214626214627214628214629214630214631214632214633214634214635214636214637214638214639214640214641214642214643214644214645214646214647214648214649214650214651214652214653214654214655214656214657214658214659214660214661214662214663214664214665214666214667214668214669214670214671214672214673214674214675214676214677214678214679214680214681214682214683214684214685214686214687214688214689214690214691214692214693214694214695214696214697214698214699214700214701214702214703214704214705214706214707214708214709214710214711214712214713214714214715214716214717214718214719214720214721214722214723214724214725214726214727214728214729214730214731214732214733214734214735214736214737214738214739214740214741214742214743214744214745214746214747214748214749214750214751214752214753214754214755214756214757214758214759214760214761214762214763214764214765214766214767214768214769214770214771214772214773214774214775214776214777214778214779214780214781214782214783214784214785214786214787214788214789214790214791214792214793214794214795214796214797214798214799214800214801214802214803214804214805214806214807214808214809214810214811214812214813214814214815214816214817214818214819214820214821214822214823214824214825214826214827214828214829214830214831214832214833214834214835214836214837214838214839214840214841214842214843214844214845214846214847214848214849214850214851214852214853214854214855214856214857214858214859214860214861214862214863214864214865214866214867214868214869214870214871214872214873214874214875214876214877214878214879214880214881214882214883214884214885214886214887214888214889214890214891214892214893214894214895214896214897214898214899214900214901214902214903214904214905214906214907214908214909214910214911214912214913214914214915214916214917214918214919214920214921214922214923214924214925214926214927214928214929214930214931214932214933214934214935214936214937214938214939214940214941214942214943214944214945214946214947214948214949214950214951214952214953214954214955214956214957214958214959214960214961214962214963214964214965214966214967214968214969214970214971214972214973214974214975214976214977214978214979214980214981214982214983214984214985214986214987214988214989214990214991214992214993214994214995214996214997214998214999215000215001215002215003215004215005215006215007215008215009215010215011215012215013215014215015215016215017215018215019215020215021215022215023215024215025215026215027215028215029215030215031215032215033215034215035215036215037215038215039215040215041215042215043215044215045215046215047215048215049215050215051215052215053215054215055215056215057215058215059215060215061215062215063215064215065215066215067215068215069215070215071215072215073215074215075215076215077215078215079215080215081215082215083215084215085215086215087215088215089215090215091215092215093215094215095215096215097215098215099215100215101215102215103215104215105215106215107215108215109215110215111215112215113215114215115215116215117215118215119215120215121215122215123215124215125215126215127215128215129215130215131215132215133215134215135215136215137215138215139215140215141215142215143215144215145215146215147215148215149215150215151215152215153215154215155215156215157215158215159215160215161215162215163215164215165215166215167215168215169215170215171215172215173215174215175215176215177215178215179215180215181215182215183215184215185215186215187215188215189215190215191215192215193215194215195215196215197215198215199215200215201215202215203215204215205215206215207215208215209215210215211215212215213215214215215215216215217215218215219215220215221215222215223215224215225215226215227215228215229215230215231215232215233215234215235215236215237215238215239215240215241215242215243215244215245215246215247215248215249215250215251215252215253215254215255215256215257215258215259215260215261215262215263215264215265215266215267215268215269215270215271215272215273215274215275215276215277215278215279215280215281215282215283215284215285215286215287215288215289215290215291215292215293215294215295215296215297215298215299215300215301215302215303215304215305215306215307215308215309215310215311215312215313215314215315215316215317215318215319215320215321215322215323215324215325215326215327215328215329215330215331215332215333215334215335215336215337215338215339215340215341215342215343215344215345215346215347215348215349215350215351215352215353215354215355215356215357215358215359215360215361215362215363215364215365215366215367215368215369215370215371215372215373215374215375215376215377215378215379215380215381215382215383215384215385215386215387215388215389215390215391215392215393215394215395215396215397215398215399215400215401215402215403215404215405215406215407215408215409215410215411215412215413215414215415215416215417215418215419215420215421215422215423215424215425215426215427215428215429215430215431215432215433215434215435215436215437215438215439215440215441215442215443215444215445215446215447215448215449215450215451215452215453215454215455215456215457215458215459215460215461215462215463215464215465215466215467215468215469215470215471215472215473215474215475215476215477215478215479215480215481215482215483215484215485215486215487215488215489215490215491215492215493215494215495215496215497215498215499215500215501215502215503215504215505215506215507215508215509215510215511215512215513215514215515215516215517215518215519215520215521215522215523215524215525215526215527215528215529215530215531215532215533215534215535215536215537215538215539215540215541215542215543215544215545215546215547215548215549215550215551215552215553215554215555215556215557215558215559215560215561215562215563215564215565215566215567215568215569215570215571215572215573215574215575215576215577215578215579215580215581215582215583215584215585215586215587215588215589215590215591215592215593215594215595215596215597215598215599215600215601215602215603215604215605215606215607215608215609215610215611215612215613215614215615215616215617215618215619215620215621215622215623215624215625215626215627215628215629215630215631215632215633215634215635215636215637215638215639215640215641215642215643215644215645215646215647215648215649215650215651215652215653215654215655215656215657215658215659215660215661215662215663215664215665215666215667215668215669215670215671215672215673215674215675215676215677215678215679215680215681215682215683215684215685215686215687215688215689215690215691215692215693215694215695215696215697215698215699215700215701215702215703215704215705215706215707215708215709215710215711215712215713215714215715215716215717215718215719215720215721215722215723215724215725215726215727215728215729215730215731215732215733215734215735215736215737215738215739215740215741215742215743215744215745215746215747215748215749215750215751215752215753215754215755215756215757215758215759215760215761215762215763215764215765215766215767215768215769215770215771215772215773215774215775215776215777215778215779215780215781215782215783215784215785215786215787215788215789215790215791215792215793215794215795215796215797215798215799215800215801215802215803215804215805215806215807215808215809215810215811215812215813215814215815215816215817215818215819215820215821215822215823215824215825215826215827215828215829215830215831215832215833215834215835215836215837215838215839215840215841215842215843215844215845215846215847215848215849215850215851215852215853215854215855215856215857215858215859215860215861215862215863215864215865215866215867215868215869215870215871215872215873215874215875215876215877215878215879215880215881215882215883215884215885215886215887215888215889215890215891215892215893215894215895215896215897215898215899215900215901215902215903215904215905215906215907215908215909215910215911215912215913215914215915215916215917215918215919215920215921215922215923215924215925215926215927215928215929215930215931215932215933215934215935215936215937215938215939215940215941215942215943215944215945215946215947215948215949215950215951215952215953215954215955215956215957215958215959215960215961215962215963215964215965215966215967215968215969215970215971215972215973215974215975215976215977215978215979215980215981215982215983215984215985215986215987215988215989215990215991215992215993215994215995215996215997215998215999216000216001216002216003216004216005216006216007216008216009216010216011216012216013216014216015216016216017216018216019216020216021216022216023216024216025216026216027216028216029216030216031216032216033216034216035216036216037216038216039216040216041216042216043216044216045216046216047216048216049216050216051216052216053216054216055216056216057216058216059216060216061216062216063216064216065216066216067216068216069216070216071216072216073216074216075216076216077216078216079216080216081216082216083216084216085216086216087216088216089216090216091216092216093216094216095216096216097216098216099216100216101216102216103216104216105216106216107216108216109216110216111216112216113216114216115216116216117216118216119216120216121216122216123216124216125216126216127216128216129216130216131216132216133216134216135216136216137216138216139216140216141216142216143216144216145216146216147216148216149216150216151216152216153216154216155216156216157216158216159216160216161216162216163216164216165216166216167216168216169216170216171216172216173216174216175216176216177216178216179216180216181216182216183216184216185216186216187216188216189216190216191216192216193216194216195216196216197216198216199216200216201216202216203216204216205216206216207216208216209216210216211216212216213216214216215216216216217216218216219216220216221216222216223216224216225216226216227216228216229216230216231216232216233216234216235216236216237216238216239216240216241216242216243216244216245216246216247216248216249216250216251216252216253216254216255216256216257216258216259216260216261216262216263216264216265216266216267216268216269216270216271216272216273216274216275216276216277216278216279216280216281216282216283216284216285216286216287216288216289216290216291216292216293216294216295216296216297216298216299216300216301216302216303216304216305216306216307216308216309216310216311216312216313216314216315216316216317216318216319216320216321216322216323216324216325216326216327216328216329216330216331216332216333216334216335216336216337216338216339216340216341216342216343216344216345216346216347216348216349216350216351216352216353216354216355216356216357216358216359216360216361216362216363216364216365216366216367216368216369216370216371216372216373216374216375216376216377216378216379216380216381216382216383216384216385216386216387216388216389216390216391216392216393216394216395216396216397216398216399216400216401216402216403216404216405216406216407216408216409216410216411216412216413216414216415216416216417216418216419216420216421216422216423216424216425216426216427216428216429216430216431216432216433216434216435216436216437216438216439216440216441216442216443216444216445216446216447216448216449216450216451216452216453216454216455216456216457216458216459216460216461216462216463216464216465216466216467216468216469216470216471216472216473216474216475216476216477216478216479216480216481216482216483216484216485216486216487216488216489216490216491216492216493216494216495216496216497216498216499216500216501216502216503216504216505216506216507216508216509216510216511216512216513216514216515216516216517216518216519216520216521216522216523216524216525216526216527216528216529216530216531216532216533216534216535216536216537216538216539216540216541216542216543216544216545216546216547216548216549216550216551216552216553216554216555216556216557216558216559216560216561216562216563216564216565216566216567216568216569216570216571216572216573216574216575216576216577216578216579216580216581216582216583216584216585216586216587216588216589216590216591216592216593216594216595216596216597216598216599216600216601216602216603216604216605216606216607216608216609216610216611216612216613216614216615216616216617216618216619216620216621216622216623216624216625216626216627216628216629216630216631216632216633216634216635216636216637216638216639216640216641216642216643216644216645216646216647216648216649216650216651216652216653216654216655216656216657216658216659216660216661216662216663216664216665216666216667216668216669216670216671216672216673216674216675216676216677216678216679216680216681216682216683216684216685216686216687216688216689216690216691216692216693216694216695216696216697216698216699216700216701216702216703216704216705216706216707216708216709216710216711216712216713216714216715216716216717216718216719216720216721216722216723216724216725216726216727216728216729216730216731216732216733216734216735216736216737216738216739216740216741216742216743216744216745216746216747216748216749216750216751216752216753216754216755216756216757216758216759216760216761216762216763216764216765216766216767216768216769216770216771216772216773216774216775216776216777216778216779216780216781216782216783216784216785216786216787216788216789216790216791216792216793216794216795216796216797216798216799216800216801216802216803216804216805216806216807216808216809216810216811216812216813216814216815216816216817216818216819216820216821216822216823216824216825216826216827216828216829216830216831216832216833216834216835216836216837216838216839216840216841216842216843216844216845216846216847216848216849216850216851216852216853216854216855216856216857216858216859216860216861216862216863216864216865216866216867216868216869216870216871216872216873216874216875216876216877216878216879216880216881216882216883216884216885216886216887216888216889216890216891216892216893216894216895216896216897216898216899216900216901216902216903216904216905216906216907216908216909216910216911216912216913216914216915216916216917216918216919216920216921216922216923216924216925216926216927216928216929216930216931216932216933216934216935216936216937216938216939216940216941216942216943216944216945216946216947216948216949216950216951216952216953216954216955216956216957216958216959216960216961216962216963216964216965216966216967216968216969216970216971216972216973216974216975216976216977216978216979216980216981216982216983216984216985216986216987216988216989216990216991216992216993216994216995216996216997216998216999217000217001217002217003217004217005217006217007217008217009217010217011217012217013217014217015217016217017217018217019217020217021217022217023217024217025217026217027217028217029217030217031217032217033217034217035217036217037217038217039217040217041217042217043217044217045217046217047217048217049217050217051217052217053217054217055217056217057217058217059217060217061217062217063217064217065217066217067217068217069217070217071217072217073217074217075217076217077217078217079217080217081217082217083217084217085217086217087217088217089217090217091217092217093217094217095217096217097217098217099217100217101217102217103217104217105217106217107217108217109217110217111217112217113217114217115217116217117217118217119217120217121217122217123217124217125217126217127217128217129217130217131217132217133217134217135217136217137217138217139217140217141217142217143217144217145217146217147217148217149217150217151217152217153217154217155217156217157217158217159217160217161217162217163217164217165217166217167217168217169217170217171217172217173217174217175217176217177217178217179217180217181217182217183217184217185217186217187217188217189217190217191217192217193217194217195217196217197217198217199217200217201217202217203217204217205217206217207217208217209217210217211217212217213217214217215217216217217217218217219217220217221217222217223217224217225217226217227217228217229217230217231217232217233217234217235217236217237217238217239217240217241217242217243217244217245217246217247217248217249217250217251217252217253217254217255217256217257217258217259217260217261217262217263217264217265217266217267217268217269217270217271217272217273217274217275217276217277217278217279217280217281217282217283217284217285217286217287217288217289217290217291217292217293217294217295217296217297217298217299217300217301217302217303217304217305217306217307217308217309217310217311217312217313217314217315217316217317217318217319217320217321217322217323217324217325217326217327217328217329217330217331217332217333217334217335217336217337217338217339217340217341217342217343217344217345217346217347217348217349217350217351217352217353217354217355217356217357217358217359217360217361217362217363217364217365217366217367217368217369217370217371217372217373217374217375217376217377217378217379217380217381217382217383217384217385217386217387217388217389217390217391217392217393217394217395217396217397217398217399217400217401217402217403217404217405217406217407217408217409217410217411217412217413217414217415217416217417217418217419217420217421217422217423217424217425217426217427217428217429217430217431217432217433217434217435217436217437217438217439217440217441217442217443217444217445217446217447217448217449217450217451217452217453217454217455217456217457217458217459217460217461217462217463217464217465217466217467217468217469217470217471217472217473217474217475217476217477217478217479217480217481217482217483217484217485217486217487217488217489217490217491217492217493217494217495217496217497217498217499217500217501217502217503217504217505217506217507217508217509217510217511217512217513217514217515217516217517217518217519217520217521217522217523217524217525217526217527217528217529217530217531217532217533217534217535217536217537217538217539217540217541217542217543217544217545217546217547217548217549217550217551217552217553217554217555217556217557217558217559217560217561217562217563217564217565217566217567217568217569217570217571217572217573217574217575217576217577217578217579217580217581217582217583217584217585217586217587217588217589217590217591217592217593217594217595217596217597217598217599217600217601217602217603217604217605217606217607217608217609217610217611217612217613217614217615217616217617217618217619217620217621217622217623217624217625217626217627217628217629217630217631217632217633217634217635217636217637217638217639217640217641217642217643217644217645217646217647217648217649217650217651217652217653217654217655217656217657217658217659217660217661217662217663217664217665217666217667217668217669217670217671217672217673217674217675217676217677217678217679217680217681217682217683217684217685217686217687217688217689217690217691217692217693217694217695217696217697217698217699217700217701217702217703217704217705217706217707217708217709217710217711217712217713217714217715217716217717217718217719217720217721217722217723217724217725217726217727217728217729217730217731217732217733217734217735217736217737217738217739217740217741217742217743217744217745217746217747217748217749217750217751217752217753217754217755217756217757217758217759217760217761217762217763217764217765217766217767217768217769217770217771217772217773217774217775217776217777217778217779217780217781217782217783217784217785217786217787217788217789217790217791217792217793217794217795217796217797217798217799217800217801217802217803217804217805217806217807217808217809217810217811217812217813217814217815217816217817217818217819217820217821217822217823217824217825217826217827217828217829217830217831217832217833217834217835217836217837217838217839217840217841217842217843217844217845217846217847217848217849217850217851217852217853217854217855217856217857217858217859217860217861217862217863217864217865217866217867217868217869217870217871217872217873217874217875217876217877217878217879217880217881217882217883217884217885217886217887217888217889217890217891217892217893217894217895217896217897217898217899217900217901217902217903217904217905217906217907217908217909217910217911217912217913217914217915217916217917217918217919217920217921217922217923217924217925217926217927217928217929217930217931217932217933217934217935217936217937217938217939217940217941217942217943217944217945217946217947217948217949217950217951217952217953217954217955217956217957217958217959217960217961217962217963217964217965217966217967217968217969217970217971217972217973217974217975217976217977217978217979217980217981217982217983217984217985217986217987217988217989217990217991217992217993217994217995217996217997217998217999218000218001218002218003218004218005218006218007218008218009218010218011218012218013218014218015218016218017218018218019218020218021218022218023218024218025218026218027218028218029218030218031218032218033218034218035218036218037218038218039218040218041218042218043218044218045218046218047218048218049218050218051218052218053218054218055218056218057218058218059218060218061218062218063218064218065218066218067218068218069218070218071218072218073218074218075218076218077218078218079218080218081218082218083218084218085218086218087218088218089218090218091218092218093218094218095218096218097218098218099218100218101218102218103218104218105218106218107218108218109218110218111218112218113218114218115218116218117218118218119218120218121218122218123218124218125218126218127218128218129218130218131218132218133218134218135218136218137218138218139218140218141218142218143218144218145218146218147218148218149218150218151218152218153218154218155218156218157218158218159218160218161218162218163218164218165218166218167218168218169218170218171218172218173218174218175218176218177218178218179218180218181218182218183218184218185218186218187218188218189218190218191218192218193218194218195218196218197218198218199218200218201218202218203218204218205218206218207218208218209218210218211218212218213218214218215218216218217218218218219218220218221218222218223218224218225218226218227218228218229218230218231218232218233218234218235218236218237218238218239218240218241218242218243218244218245218246218247218248218249218250218251218252218253218254218255218256218257218258218259218260218261218262218263218264218265218266218267218268218269218270218271218272218273218274218275218276218277218278218279218280218281218282218283218284218285218286218287218288218289218290218291218292218293218294218295218296218297218298218299218300218301218302218303218304218305218306218307218308218309218310218311218312218313218314218315218316218317218318218319218320218321218322218323218324218325218326218327218328218329218330218331218332218333218334218335218336218337218338218339218340218341218342218343218344218345218346218347218348218349218350218351218352218353218354218355218356218357218358218359218360218361218362218363218364218365218366218367218368218369218370218371218372218373218374218375218376218377218378218379218380218381218382218383218384218385218386218387218388218389218390218391218392218393218394218395218396218397218398218399218400218401218402218403218404218405218406218407218408218409218410218411218412218413218414218415218416218417218418218419218420218421218422218423218424218425218426218427218428218429218430218431218432218433218434218435218436218437218438218439218440218441218442218443218444218445218446218447218448218449218450218451218452218453218454218455218456218457218458218459218460218461218462218463218464218465218466218467218468218469218470218471218472218473218474218475218476218477218478218479218480218481218482218483218484218485218486218487218488218489218490218491218492218493218494218495218496218497218498218499218500218501218502218503218504218505218506218507218508218509218510218511218512218513218514218515218516218517218518218519218520218521218522218523218524218525218526218527218528218529218530218531218532218533218534218535218536218537218538218539218540218541218542218543218544218545218546218547218548218549218550218551218552218553218554218555218556218557218558218559218560218561218562218563218564218565218566218567218568218569218570218571218572218573218574218575218576218577218578218579218580218581218582218583218584218585218586218587218588218589218590218591218592218593218594218595218596218597218598218599218600218601218602218603218604218605218606218607218608218609218610218611218612218613218614218615218616218617218618218619218620218621218622218623218624218625218626218627218628218629218630218631218632218633218634218635218636218637218638218639218640218641218642218643218644218645218646218647218648218649218650218651218652218653218654218655218656218657218658218659218660218661218662218663218664218665218666218667218668218669218670218671218672218673218674218675218676218677218678218679218680218681218682218683218684218685218686218687218688218689218690218691218692218693218694218695218696218697218698218699218700218701218702218703218704218705218706218707218708218709218710218711218712218713218714218715218716218717218718218719218720218721218722218723218724218725218726218727218728218729218730218731218732218733218734218735218736218737218738218739218740218741218742218743218744218745218746218747218748218749218750218751218752218753218754218755218756218757218758218759218760218761218762218763218764218765218766218767218768218769218770218771218772218773218774218775218776218777218778218779218780218781218782218783218784218785218786218787218788218789218790218791218792218793218794218795218796218797218798218799218800218801218802218803218804218805218806218807218808218809218810218811218812218813218814218815218816218817218818218819218820218821218822218823218824218825218826218827218828218829218830218831218832218833218834218835218836218837218838218839218840218841218842218843218844218845218846218847218848218849218850218851218852218853218854218855218856218857218858218859218860218861218862218863218864218865218866218867218868218869218870218871218872218873218874218875218876218877218878218879218880218881218882218883218884218885218886218887218888218889218890218891218892218893218894218895218896218897218898218899218900218901218902218903218904218905218906218907218908218909218910218911218912218913218914218915218916218917218918218919218920218921218922218923218924218925218926218927218928218929218930218931218932218933218934218935218936218937218938218939218940218941218942218943218944218945218946218947218948218949218950218951218952218953218954218955218956218957218958218959218960218961218962218963218964218965218966218967218968218969218970218971218972218973218974218975218976218977218978218979218980218981218982218983218984218985218986218987218988218989218990218991218992218993218994218995218996218997218998218999219000219001219002219003219004219005219006219007219008219009219010219011219012219013219014219015219016219017219018219019219020219021219022219023219024219025219026219027219028219029219030219031219032219033219034219035219036219037219038219039219040219041219042219043219044219045219046219047219048219049219050219051219052219053219054219055219056219057219058219059219060219061219062219063219064219065219066219067219068219069219070219071219072219073219074219075219076219077219078219079219080219081219082219083219084219085219086219087219088219089219090219091219092219093219094219095219096219097219098219099219100219101219102219103219104219105219106219107219108219109219110219111219112219113219114219115219116219117219118219119219120219121219122219123219124219125219126219127219128219129219130219131219132219133219134219135219136219137219138219139219140219141219142219143219144219145219146219147219148219149219150219151219152219153219154219155219156219157219158219159219160219161219162219163219164219165219166219167219168219169219170219171219172219173219174219175219176219177219178219179219180219181219182219183219184219185219186219187219188219189219190219191219192219193219194219195219196219197219198219199219200219201219202219203219204219205219206219207219208219209219210219211219212219213219214219215219216219217219218219219219220219221219222219223219224219225219226219227219228219229219230219231219232219233219234219235219236219237219238219239219240219241219242219243219244219245219246219247219248219249219250219251219252219253219254219255219256219257219258219259219260219261219262219263219264219265219266219267219268219269219270219271219272219273219274219275219276219277219278219279219280219281219282219283219284219285219286219287219288219289219290219291219292219293219294219295219296219297219298219299219300219301219302219303219304219305219306219307219308219309219310219311219312219313219314219315219316219317219318219319219320219321219322219323219324219325219326219327219328219329219330219331219332219333219334219335219336219337219338219339219340219341219342219343219344219345219346219347219348219349219350219351219352219353219354219355219356219357219358219359219360219361219362219363219364219365219366219367219368219369219370219371219372219373219374219375219376219377219378219379219380219381219382219383219384219385219386219387219388219389219390219391219392219393219394219395219396219397219398219399219400219401219402219403219404219405219406219407219408219409219410219411219412219413219414219415219416219417219418219419219420219421219422219423219424219425219426219427219428219429219430219431219432219433219434219435219436219437219438219439219440219441219442219443219444219445219446219447219448219449219450219451219452219453219454219455219456219457219458219459219460219461219462219463219464219465219466219467219468219469219470219471219472219473219474219475219476219477219478219479219480219481219482219483219484219485219486219487219488219489219490219491219492219493219494219495219496219497219498219499219500219501219502219503219504219505219506219507219508219509219510219511219512219513219514219515219516219517219518219519219520219521219522219523219524219525219526219527219528219529219530219531219532219533219534219535219536219537219538219539219540219541219542219543219544219545219546219547219548219549219550219551219552219553219554219555219556219557219558219559219560219561219562219563219564219565219566219567219568219569219570219571219572219573219574219575219576219577219578219579219580219581219582219583219584219585219586219587219588219589219590219591219592219593219594219595219596219597219598219599219600219601219602219603219604219605219606219607219608219609219610219611219612219613219614219615219616219617219618219619219620219621219622219623219624219625219626219627219628219629219630219631219632219633219634219635219636219637219638219639219640219641219642219643219644219645219646219647219648219649219650219651219652219653219654219655219656219657219658219659219660219661219662219663219664219665219666219667219668219669219670219671219672219673219674219675219676219677219678219679219680219681219682219683219684219685219686219687219688219689219690219691219692219693219694219695219696219697219698219699219700219701219702219703219704219705219706219707219708219709219710219711219712219713219714219715219716219717219718219719219720219721219722219723219724219725219726219727219728219729219730219731219732219733219734219735219736219737219738219739219740219741219742219743219744219745219746219747219748219749219750219751219752219753219754219755219756219757219758219759219760219761219762219763219764219765219766219767219768219769219770219771219772219773219774219775219776219777219778219779219780219781219782219783219784219785219786219787219788219789219790219791219792219793219794219795219796219797219798219799219800219801219802219803219804219805219806219807219808219809219810219811219812219813219814219815219816219817219818219819219820219821219822219823219824219825219826219827219828219829219830219831219832219833219834219835219836219837219838219839219840219841219842219843219844219845219846219847219848219849219850219851219852219853219854219855219856219857219858219859219860219861219862219863219864219865219866219867219868219869219870219871219872219873219874219875219876219877219878219879219880219881219882219883219884219885219886219887219888219889219890219891219892219893219894219895219896219897219898219899219900219901219902219903219904219905219906219907219908219909219910219911219912219913219914219915219916219917219918219919219920219921219922219923219924219925219926219927219928219929219930219931219932219933219934219935219936219937219938219939219940219941219942219943219944219945219946219947219948219949219950219951219952219953219954219955219956219957219958219959219960219961219962219963219964219965219966219967219968219969219970219971219972219973219974219975219976219977219978219979219980219981219982219983219984219985219986219987219988219989219990219991219992219993219994219995219996219997219998219999220000220001220002220003220004220005220006220007220008220009220010220011220012220013220014220015220016220017220018220019220020220021220022220023220024220025220026220027220028220029220030220031220032220033220034220035220036220037220038220039220040220041220042220043220044220045220046220047220048220049220050220051220052220053220054220055220056220057220058220059220060220061220062220063220064220065220066220067220068220069220070220071220072220073220074220075220076220077220078220079220080220081220082220083220084220085220086220087220088220089220090220091220092220093220094220095220096220097220098220099220100220101220102220103220104220105220106220107220108220109220110220111220112220113220114220115220116220117220118220119220120220121220122220123220124220125220126220127220128220129220130220131220132220133220134220135220136220137220138220139220140220141220142220143220144220145220146220147220148220149220150220151220152220153220154220155220156220157220158220159220160220161220162220163220164220165220166220167220168220169220170220171220172220173220174220175220176220177220178220179220180220181220182220183220184220185220186220187220188220189220190220191220192220193220194220195220196220197220198220199220200220201220202220203220204220205220206220207220208220209220210220211220212220213220214220215220216220217220218220219220220220221220222220223220224220225220226220227220228220229220230220231220232220233220234220235220236220237220238220239220240220241220242220243220244220245220246220247220248220249220250220251220252220253220254220255220256220257220258220259220260220261220262220263220264220265220266220267220268220269220270220271220272220273220274220275220276220277220278220279220280220281220282220283220284220285220286220287220288220289220290220291220292220293220294220295220296220297220298220299220300220301220302220303220304220305220306220307220308220309220310220311220312220313220314220315220316220317220318220319220320220321220322220323220324220325220326220327220328220329220330220331220332220333220334220335220336220337220338220339220340220341220342220343220344220345220346220347220348220349220350220351220352220353220354220355220356220357220358220359220360220361220362220363220364220365220366220367220368220369220370220371220372220373220374220375220376220377220378220379220380220381220382220383220384220385220386220387220388220389220390220391220392220393220394220395220396220397220398220399220400220401220402220403220404220405220406220407220408220409220410220411220412220413220414220415220416220417220418220419220420220421220422220423220424220425220426220427220428220429220430220431220432220433220434220435220436220437220438220439220440220441220442220443220444220445220446220447220448220449220450220451220452220453220454220455220456220457220458220459220460220461220462220463220464220465220466220467220468220469220470220471220472220473220474220475220476220477220478220479220480220481220482220483220484220485220486220487220488220489220490220491220492220493220494220495220496220497220498220499220500220501220502220503220504220505220506220507220508220509220510220511220512220513220514220515220516220517220518220519220520220521220522220523220524220525220526220527220528220529220530220531220532220533220534220535220536220537220538220539220540220541220542220543220544220545220546220547220548220549220550220551220552220553220554220555220556220557220558220559220560220561220562220563220564220565220566220567220568220569220570220571220572220573220574220575220576220577220578220579220580220581220582220583220584220585220586220587220588220589220590220591220592220593220594220595220596220597220598220599220600220601220602220603220604220605220606220607220608220609220610220611220612220613220614220615220616220617220618220619220620220621220622220623220624220625220626220627220628220629220630220631220632220633220634220635220636220637220638220639220640220641220642220643220644220645220646220647220648220649220650220651220652220653220654220655220656220657220658220659220660220661220662220663220664220665220666220667220668220669220670220671220672220673220674220675220676220677220678220679220680220681220682220683220684220685220686220687220688220689220690220691220692220693220694220695220696220697220698220699220700220701220702220703220704220705220706220707220708220709220710220711220712220713220714220715220716220717220718220719220720220721220722220723220724220725220726220727220728220729220730220731220732220733220734220735220736220737220738220739220740220741220742220743220744220745220746220747220748220749220750220751220752220753220754220755220756220757220758220759220760220761220762220763220764220765220766220767220768220769220770220771220772220773220774220775220776220777220778220779220780220781220782220783220784220785220786220787220788220789220790220791220792220793220794220795220796220797220798220799220800220801220802220803220804220805220806220807220808220809220810220811220812220813220814220815220816220817220818220819220820220821220822220823220824220825220826220827220828220829220830220831220832220833220834220835220836220837220838220839220840220841220842220843220844220845220846220847220848220849220850220851220852220853220854220855220856220857220858220859220860220861220862220863220864220865220866220867220868220869220870220871220872220873220874220875220876220877220878220879220880220881220882220883220884220885220886220887220888220889220890220891220892220893220894220895220896220897220898220899220900220901220902220903220904220905220906220907220908220909220910220911220912220913220914220915220916220917220918220919220920220921220922220923220924220925220926220927220928220929220930220931220932220933220934220935220936220937220938220939220940220941220942220943220944220945220946220947220948220949220950220951220952220953220954220955220956220957220958220959220960220961220962220963220964220965220966220967220968220969220970220971220972220973220974220975220976220977220978220979220980220981220982220983220984220985220986220987220988220989220990220991220992220993220994220995220996220997220998220999221000221001221002221003221004221005221006221007221008221009221010221011221012221013221014221015221016221017221018221019221020221021221022221023221024221025221026221027221028221029221030221031221032221033221034221035221036221037221038221039221040221041221042221043221044221045221046221047221048221049221050221051221052221053221054221055221056221057221058221059221060221061221062221063221064221065221066221067221068221069221070221071221072221073221074221075221076221077221078221079221080221081221082221083221084221085221086221087221088221089221090221091221092221093221094221095221096221097221098221099221100221101221102221103221104221105221106221107221108221109221110221111221112221113221114221115221116221117221118221119221120221121221122221123221124221125221126221127221128221129221130221131221132221133221134221135221136221137221138221139221140221141221142221143221144221145221146221147221148221149221150221151221152221153221154221155221156221157221158221159221160221161221162221163221164221165221166221167221168221169221170221171221172221173221174221175221176221177221178221179221180221181221182221183221184221185221186221187221188221189221190221191221192221193221194221195221196221197221198221199221200221201221202221203221204221205221206221207221208221209221210221211221212221213221214221215221216221217221218221219221220221221221222221223221224221225221226221227221228221229221230221231221232221233221234221235221236221237221238221239221240221241221242221243221244221245221246221247221248221249221250221251221252221253221254221255221256221257221258221259221260221261221262221263221264221265221266221267221268221269221270221271221272221273221274221275221276221277221278221279221280221281221282221283221284221285221286221287221288221289221290221291221292221293221294221295221296221297221298221299221300221301221302221303221304221305221306221307221308221309221310221311221312221313221314221315221316221317221318221319221320221321221322221323221324221325221326221327221328221329221330221331221332221333221334221335221336221337221338221339221340221341221342221343221344221345221346221347221348221349221350221351221352221353221354221355221356221357221358221359221360221361221362221363221364221365221366221367221368221369221370221371221372221373221374221375221376221377221378221379221380221381221382221383221384221385221386221387221388221389221390221391221392221393221394221395221396221397221398221399221400221401221402221403221404221405221406221407221408221409221410221411221412221413221414221415221416221417221418221419221420221421221422221423221424221425221426221427221428221429221430221431221432221433221434221435221436221437221438221439221440221441221442221443221444221445221446221447221448221449221450221451221452221453221454221455221456221457221458221459221460221461221462221463221464221465221466221467221468221469221470221471221472221473221474221475221476221477221478221479221480221481221482221483221484221485221486221487221488221489221490221491221492221493221494221495221496221497221498221499221500221501221502221503221504221505221506221507221508221509221510221511221512221513221514221515221516221517221518221519221520221521221522221523221524221525221526221527221528221529221530221531221532221533221534221535221536221537221538221539221540221541221542221543221544221545221546221547221548221549221550221551221552221553221554221555221556221557221558221559221560221561221562221563221564221565221566221567221568221569221570221571221572221573221574221575221576221577221578221579221580221581221582221583221584221585221586221587221588221589221590221591221592221593221594221595221596221597221598221599221600221601221602221603221604221605221606221607221608221609221610221611221612221613221614221615221616221617221618221619221620221621221622221623221624221625221626221627221628221629221630221631221632221633221634221635221636221637221638221639221640221641221642221643221644221645221646221647221648221649221650221651221652221653221654221655221656221657221658221659221660221661221662221663221664221665221666221667221668221669221670221671221672221673221674221675221676221677221678221679221680221681221682221683221684221685221686221687221688221689221690221691221692221693221694221695221696221697221698221699221700221701221702221703221704221705221706221707221708221709221710221711221712221713221714221715221716221717221718221719221720221721221722221723221724221725221726221727221728221729221730221731221732221733221734221735221736221737221738221739221740221741221742221743221744221745221746221747221748221749221750221751221752221753221754221755221756221757221758221759221760221761221762221763221764221765221766221767221768221769221770221771221772221773221774221775221776221777221778221779221780221781221782221783221784221785221786221787221788221789221790221791221792221793221794221795221796221797221798221799221800221801221802221803221804221805221806221807221808221809221810221811221812221813221814221815221816221817221818221819221820221821221822221823221824221825221826221827221828221829221830221831221832221833221834221835221836221837221838221839221840221841221842221843221844221845221846221847221848221849221850221851221852221853221854221855221856221857221858221859221860221861221862221863221864221865221866221867221868221869221870221871221872221873221874221875221876221877221878221879221880221881221882221883221884221885221886221887221888221889221890221891221892221893221894221895221896221897221898221899221900221901221902221903221904221905221906221907221908221909221910221911221912221913221914221915221916221917221918221919221920221921221922221923221924221925221926221927221928221929221930221931221932221933221934221935221936221937221938221939221940221941221942221943221944221945221946221947221948221949221950221951221952221953221954221955221956221957221958221959221960221961221962221963221964221965221966221967221968221969221970221971221972221973221974221975221976221977221978221979221980221981221982221983221984221985221986221987221988221989221990221991221992221993221994221995221996221997221998221999222000222001222002222003222004222005222006222007222008222009222010222011222012222013222014222015222016222017222018222019222020222021222022222023222024222025222026222027222028222029222030222031222032222033222034222035222036222037222038222039222040222041222042222043222044222045222046222047222048222049222050222051222052222053222054222055222056222057222058222059222060222061222062222063222064222065222066222067222068222069222070222071222072222073222074222075222076222077222078222079222080222081222082222083222084222085222086222087222088222089222090222091222092222093222094222095222096222097222098222099222100222101222102222103222104222105222106222107222108222109222110222111222112222113222114222115222116222117222118222119222120222121222122222123222124222125222126222127222128222129222130222131222132222133222134222135222136222137222138222139222140222141222142222143222144222145222146222147222148222149222150222151222152222153222154222155222156222157222158222159222160222161222162222163222164222165222166222167222168222169222170222171222172222173222174222175222176222177222178222179222180222181222182222183222184222185222186222187222188222189222190222191222192222193222194222195222196222197222198222199222200222201222202222203222204222205222206222207222208222209222210222211222212222213222214222215222216222217222218222219222220222221222222222223222224222225222226222227222228222229222230222231222232222233222234222235222236222237222238222239222240222241222242222243222244222245222246222247222248222249222250222251222252222253222254222255222256222257222258222259222260222261222262222263222264222265222266222267222268222269222270222271222272222273222274222275222276222277222278222279222280222281222282222283222284222285222286222287222288222289222290222291222292222293222294222295222296222297222298222299222300222301222302222303222304222305222306222307222308222309222310222311222312222313222314222315222316222317222318222319222320222321222322222323222324222325222326222327222328222329222330222331222332222333222334222335222336222337222338222339222340222341222342222343222344222345222346222347222348222349222350222351222352222353222354222355222356222357222358222359222360222361222362222363222364222365222366222367222368222369222370222371222372222373222374222375222376222377222378222379222380222381222382222383222384222385222386222387222388222389222390222391222392222393222394222395222396222397222398222399222400222401222402222403222404222405222406222407222408222409222410222411222412222413222414222415222416222417222418222419222420222421222422222423222424222425222426222427222428222429222430222431222432222433222434222435222436222437222438222439222440222441222442222443222444222445222446222447222448222449222450222451222452222453222454222455222456222457222458222459222460222461222462222463222464222465222466222467222468222469222470222471222472222473222474222475222476222477222478222479222480222481222482222483222484222485222486222487222488222489222490222491222492222493222494222495222496222497222498222499222500222501222502222503222504222505222506222507222508222509222510222511222512222513222514222515222516222517222518222519222520222521222522222523222524222525222526222527222528222529222530222531222532222533222534222535222536222537222538222539222540222541222542222543222544222545222546222547222548222549222550222551222552222553222554222555222556222557222558222559222560222561222562222563222564222565222566222567222568222569222570222571222572222573222574222575222576222577222578222579222580222581222582222583222584222585222586222587222588222589222590222591222592222593222594222595222596222597222598222599222600222601222602222603222604222605222606222607222608222609222610222611222612222613222614222615222616222617222618222619222620222621222622222623222624222625222626222627222628222629222630222631222632222633222634222635222636222637222638222639222640222641222642222643222644222645222646222647222648222649222650222651222652222653222654222655222656222657222658222659222660222661222662222663222664222665222666222667222668222669222670222671222672222673222674222675222676222677222678222679222680222681222682222683222684222685222686222687222688222689222690222691222692222693222694222695222696222697222698222699222700222701222702222703222704222705222706222707222708222709222710222711222712222713222714222715222716222717222718222719222720222721222722222723222724222725222726222727222728222729222730222731222732222733222734222735222736222737222738222739222740222741222742222743222744222745222746222747222748222749222750222751222752222753222754222755222756222757222758222759222760222761222762222763222764222765222766222767222768222769222770222771222772222773222774222775222776222777222778222779222780222781222782222783222784222785222786222787222788222789222790222791222792222793222794222795222796222797222798222799222800222801222802222803222804222805222806222807222808222809222810222811222812222813222814222815222816222817222818222819222820222821222822222823222824222825222826222827222828222829222830222831222832222833222834222835222836222837222838222839222840222841222842222843222844222845222846222847222848222849222850222851222852222853222854222855222856222857222858222859222860222861222862222863222864222865222866222867222868222869222870222871222872222873222874222875222876222877222878222879222880222881222882222883222884222885222886222887222888222889222890222891222892222893222894222895222896222897222898222899222900222901222902222903222904222905222906222907222908222909222910222911222912222913222914222915222916222917222918222919222920222921222922222923222924222925222926222927222928222929222930222931222932222933222934222935222936222937222938222939222940222941222942222943222944222945222946222947222948222949222950222951222952222953222954222955222956222957222958222959222960222961222962222963222964222965222966222967222968222969222970222971222972222973222974222975222976222977222978222979222980222981222982222983222984222985222986222987222988222989222990222991222992222993222994222995222996222997222998222999223000223001223002223003223004223005223006223007223008223009223010223011223012223013223014223015223016223017223018223019223020223021223022223023223024223025223026223027223028223029223030223031223032223033223034223035223036223037223038223039223040223041223042223043223044223045223046223047223048223049223050223051223052223053223054223055223056223057223058223059223060223061223062223063223064223065223066223067223068223069223070223071223072223073223074223075223076223077223078223079223080223081223082223083223084223085223086223087223088223089223090223091223092223093223094223095223096223097223098223099223100223101223102223103223104223105223106223107223108223109223110223111223112223113223114223115223116223117223118223119223120223121223122223123223124223125223126223127223128223129223130223131223132223133223134223135223136223137223138223139223140223141223142223143223144223145223146223147223148223149223150223151223152223153223154223155223156223157223158223159223160223161223162223163223164223165223166223167223168223169223170223171223172223173223174223175223176223177223178223179223180223181223182223183223184223185223186223187223188223189223190223191223192223193223194223195223196223197223198223199223200223201223202223203223204223205223206223207223208223209223210223211223212223213223214223215223216223217223218223219223220223221223222223223223224223225223226223227223228223229223230223231223232223233223234223235223236223237223238223239223240223241223242223243223244223245223246223247223248223249223250223251223252223253223254223255223256223257223258223259223260223261223262223263223264223265223266223267223268223269223270223271223272223273223274223275223276223277223278223279223280223281223282223283223284223285223286223287223288223289223290223291223292223293223294223295223296223297223298223299223300223301223302223303223304223305223306223307223308223309223310223311223312223313223314223315223316223317223318223319223320223321223322223323223324223325223326223327223328223329223330223331223332223333223334223335223336223337223338223339223340223341223342223343223344223345223346223347223348223349223350223351223352223353223354223355223356223357223358223359223360223361223362223363223364223365223366223367223368223369223370223371223372223373223374223375223376223377223378223379223380223381223382223383223384223385223386223387223388223389223390223391223392223393223394223395223396223397223398223399223400223401223402223403223404223405223406223407223408223409223410223411223412223413223414223415223416223417223418223419223420223421223422223423223424223425223426223427223428223429223430223431223432223433223434223435223436223437223438223439223440223441223442223443223444223445223446223447223448223449223450223451223452223453223454223455223456223457223458223459223460223461223462223463223464223465223466223467223468223469223470223471223472223473223474223475223476223477223478223479223480223481223482223483223484223485223486223487223488223489223490223491223492223493223494223495223496223497223498223499223500223501223502223503223504223505223506223507223508223509223510223511223512223513223514223515223516223517223518223519223520223521223522223523223524223525223526223527223528223529223530223531223532223533223534223535223536223537223538223539223540223541223542223543223544223545223546223547223548223549223550223551223552223553223554223555223556223557223558223559223560223561223562223563223564223565223566223567223568223569223570223571223572223573223574223575223576223577223578223579223580223581223582223583223584223585223586223587223588223589223590223591223592223593223594223595223596223597223598223599223600223601223602223603223604223605223606223607223608223609223610223611223612223613223614223615223616223617223618223619223620223621223622223623223624223625223626223627223628223629223630223631223632223633223634223635223636223637223638223639223640223641223642223643223644223645223646223647223648223649223650223651223652223653223654223655223656223657223658223659223660223661223662223663223664223665223666223667223668223669223670223671223672223673223674223675223676223677223678223679223680223681223682223683223684223685223686223687223688223689223690223691223692223693223694223695223696223697223698223699223700223701223702223703223704223705223706223707223708223709223710223711223712223713223714223715223716223717223718223719223720223721223722223723223724223725223726223727223728223729223730223731223732223733223734223735223736223737223738223739223740223741223742223743223744223745223746223747223748223749223750223751223752223753223754223755223756223757223758223759223760223761223762223763223764223765223766223767223768223769223770223771223772223773223774223775223776223777223778223779223780223781223782223783223784223785223786223787223788223789223790223791223792223793223794223795223796223797223798223799223800223801223802223803223804223805223806223807223808223809223810223811223812223813223814223815223816223817223818223819223820223821223822223823223824223825223826223827223828223829223830223831223832223833223834223835223836223837223838223839223840223841223842223843223844223845223846223847223848223849223850223851223852223853223854223855223856223857223858223859223860223861223862223863223864223865223866223867223868223869223870223871223872223873223874223875223876223877223878223879223880223881223882223883223884223885223886223887223888223889223890223891223892223893223894223895223896223897223898223899223900223901223902223903223904223905223906223907223908223909223910223911223912223913223914223915223916223917223918223919223920223921223922223923223924223925223926223927223928223929223930223931223932223933223934223935223936223937223938223939223940223941223942223943223944223945223946223947223948223949223950223951223952223953223954223955223956223957223958223959223960223961223962223963223964223965223966223967223968223969223970223971223972223973223974223975223976223977223978223979223980223981223982223983223984223985223986223987223988223989223990223991223992223993223994223995223996223997223998223999224000224001224002224003224004224005224006224007224008224009224010224011224012224013224014224015224016224017224018224019224020224021224022224023224024224025224026224027224028224029224030224031224032224033224034224035224036224037224038224039224040224041224042224043224044224045224046224047224048224049224050224051224052224053224054224055224056224057224058224059224060224061224062224063224064224065224066224067224068224069224070224071224072224073224074224075224076224077224078224079224080224081224082224083224084224085224086224087224088224089224090224091224092224093224094224095224096224097224098224099224100224101224102224103224104224105224106224107224108224109224110224111224112224113224114224115224116224117224118224119224120224121224122224123224124224125224126224127224128224129224130224131224132224133224134224135224136224137224138224139224140224141224142224143224144224145224146224147224148224149224150224151224152224153224154224155224156224157224158224159224160224161224162224163224164224165224166224167224168224169224170224171224172224173224174224175224176224177224178224179224180224181224182224183224184224185224186224187224188224189224190224191224192224193224194224195224196224197224198224199224200224201224202224203224204224205224206224207224208224209224210224211224212224213224214224215224216224217224218224219224220224221224222224223224224224225224226224227224228224229224230224231224232224233224234224235224236224237224238224239224240224241224242224243224244224245224246224247224248224249224250224251224252224253224254224255224256224257224258224259224260224261224262224263224264224265224266224267224268224269224270224271224272224273224274224275224276224277224278224279224280224281224282224283224284224285224286224287224288224289224290224291224292224293224294224295224296224297224298224299224300224301224302224303224304224305224306224307224308224309224310224311224312224313224314224315224316224317224318224319224320224321224322224323224324224325224326224327224328224329224330224331224332224333224334224335224336224337224338224339224340224341224342224343224344224345224346224347224348224349224350224351224352224353224354224355224356224357224358224359224360224361224362224363224364224365224366224367224368224369224370224371224372224373224374224375224376224377224378224379224380224381224382224383224384224385224386224387224388224389224390224391224392224393224394224395224396224397224398224399224400224401224402224403224404224405224406224407224408224409224410224411224412224413224414224415224416224417224418224419224420224421224422224423224424224425224426224427224428224429224430224431224432224433224434224435224436224437224438224439224440224441224442224443224444224445224446224447224448224449224450224451224452224453224454224455224456224457224458224459224460224461224462224463224464224465224466224467224468224469224470224471224472224473224474224475224476224477224478224479224480224481224482224483224484224485224486224487224488224489224490224491224492224493224494224495224496224497224498224499224500224501224502224503224504224505224506224507224508224509224510224511224512224513224514224515224516224517224518224519224520224521224522224523224524224525224526224527224528224529224530224531224532224533224534224535224536224537224538224539224540224541224542224543224544224545224546224547224548224549224550224551224552224553224554224555224556224557224558224559224560224561224562224563224564224565224566224567224568224569224570224571224572224573224574224575224576224577224578224579224580224581224582224583224584224585224586224587224588224589224590224591224592224593224594224595224596224597224598224599224600224601224602224603224604224605224606224607224608224609224610224611224612224613224614224615224616224617224618224619224620224621224622224623224624224625224626224627224628224629224630224631224632224633224634224635224636224637224638224639224640224641224642224643224644224645224646224647224648224649224650224651224652224653224654224655224656224657224658224659224660224661224662224663224664224665224666224667224668224669224670224671224672224673224674224675224676224677224678224679224680224681224682224683224684224685224686224687224688224689224690224691224692224693224694224695224696224697224698224699224700224701224702224703224704224705224706224707224708224709224710224711224712224713224714224715224716224717224718224719224720224721224722224723224724224725224726224727224728224729224730224731224732224733224734224735224736224737224738224739224740224741224742224743224744224745224746224747224748224749224750224751224752224753224754224755224756224757224758224759224760224761224762224763224764224765224766224767224768224769224770224771224772224773224774224775224776224777224778224779224780224781224782224783224784224785224786224787224788224789224790224791224792224793224794224795224796224797224798224799224800224801224802224803224804224805224806224807224808224809224810224811224812224813224814224815224816224817224818224819224820224821224822224823224824224825224826224827224828224829224830224831224832224833224834224835224836224837224838224839224840224841224842224843224844224845224846224847224848224849224850224851224852224853224854224855224856224857224858224859224860224861224862224863224864224865224866224867224868224869224870224871224872224873224874224875224876224877224878224879224880224881224882224883224884224885224886224887224888224889224890224891224892224893224894224895224896224897224898224899224900224901224902224903224904224905224906224907224908224909224910224911224912224913224914224915224916224917224918224919224920224921224922224923224924224925224926224927224928224929224930224931224932224933224934224935224936224937224938224939224940224941224942224943224944224945224946224947224948224949224950224951224952224953224954224955224956224957224958224959224960224961224962224963224964224965224966224967224968224969224970224971224972224973224974224975224976224977224978224979224980224981224982224983224984224985224986224987224988224989224990224991224992224993224994224995224996224997224998224999225000225001225002225003225004225005225006225007225008225009225010225011225012225013225014225015225016225017225018225019225020225021225022225023225024225025225026225027225028225029225030225031225032225033225034225035225036225037225038225039225040225041225042225043225044225045225046225047225048225049225050225051225052225053225054225055225056225057225058225059225060225061225062225063225064225065225066225067225068225069225070225071225072225073225074225075225076225077225078225079225080225081225082225083225084225085225086225087225088225089225090225091225092225093225094225095225096225097225098225099225100225101225102225103225104225105225106225107225108225109225110225111225112225113225114225115225116225117225118225119225120225121225122225123225124225125225126225127225128225129225130225131225132225133225134225135225136225137225138225139225140225141225142225143225144225145225146225147225148225149225150225151225152225153225154225155225156225157225158225159225160225161225162225163225164225165225166225167225168225169225170225171225172225173225174225175225176225177225178225179225180225181225182225183225184225185225186225187225188225189225190225191225192225193225194225195225196225197225198225199225200225201225202225203225204225205225206225207225208225209225210225211225212225213225214225215225216225217225218225219225220225221225222225223225224225225225226225227225228225229225230225231225232225233225234225235225236225237225238225239225240225241225242225243225244225245225246225247225248225249225250225251225252225253225254225255225256225257225258225259225260225261225262225263225264225265225266225267225268225269225270225271225272225273225274225275225276225277225278225279225280225281225282225283225284225285225286225287225288225289225290225291225292225293225294225295225296225297225298225299225300225301225302225303225304225305225306225307225308225309225310225311225312225313225314225315225316225317225318225319225320225321225322225323225324225325225326225327225328225329225330225331225332225333225334225335225336225337225338225339225340225341225342225343225344225345225346225347225348225349225350225351225352225353225354225355225356225357225358225359225360225361225362225363225364225365225366225367225368225369225370225371225372225373225374225375225376225377225378225379225380225381225382225383225384225385225386225387225388225389225390225391225392225393225394225395225396225397225398225399225400225401225402225403225404225405225406225407225408225409225410225411225412225413225414225415225416225417225418225419225420225421225422225423225424225425225426225427225428225429225430225431225432225433225434225435225436225437225438225439225440225441225442225443225444225445225446225447225448225449225450225451225452225453225454225455225456225457225458225459225460225461225462225463225464225465225466225467225468225469225470225471225472225473225474225475225476225477225478225479225480225481225482225483225484225485225486225487225488225489225490225491225492225493225494225495225496225497225498225499225500225501225502225503225504225505225506225507225508225509225510225511225512225513225514225515225516225517225518225519225520225521225522225523225524225525225526225527225528225529225530225531225532225533225534225535225536225537225538225539225540225541225542225543225544225545225546225547225548225549225550225551225552225553225554225555225556225557225558225559225560225561225562225563225564225565225566225567225568225569225570225571225572225573225574225575225576225577225578225579225580225581225582225583225584225585225586225587225588225589225590225591225592225593225594225595225596225597225598225599225600225601225602225603225604225605225606225607225608225609225610225611225612225613225614225615225616225617225618225619225620225621225622225623225624225625225626225627225628225629225630225631225632225633225634225635225636225637225638225639225640225641225642225643225644225645225646225647225648225649225650225651225652225653225654225655225656225657225658225659225660225661225662225663225664225665225666225667225668225669225670225671225672225673225674225675225676225677225678225679225680225681225682225683225684225685225686225687225688225689225690225691225692225693225694225695225696225697225698225699225700225701225702225703225704225705225706225707225708225709225710225711225712225713225714225715225716225717225718225719225720225721225722225723225724225725225726225727225728225729225730225731225732225733225734225735225736225737225738225739225740225741225742225743225744225745225746225747225748225749225750225751225752225753225754225755225756225757225758225759225760225761225762225763225764225765225766225767225768225769225770225771225772225773225774225775225776225777225778225779225780225781225782225783225784225785225786225787225788225789225790225791225792225793225794225795225796225797225798225799225800225801225802225803225804225805225806225807225808225809225810225811225812225813225814225815225816225817225818225819225820225821225822225823225824225825225826225827225828225829225830225831225832225833225834225835225836225837225838225839225840225841225842225843225844225845225846225847225848225849225850225851225852225853225854225855225856225857225858225859225860225861225862225863225864225865225866225867225868225869225870225871225872225873225874225875225876225877225878225879225880225881225882225883225884225885225886225887225888225889225890225891225892225893225894225895225896225897225898225899225900225901225902225903225904225905225906225907225908225909225910225911225912225913225914225915225916225917225918225919225920225921225922225923225924225925225926225927225928225929225930225931225932225933225934225935225936225937225938225939225940225941225942225943225944225945225946225947225948225949225950225951225952225953225954225955225956225957225958225959225960225961225962225963225964225965225966225967225968225969225970225971225972225973225974225975225976225977225978225979225980225981225982225983225984225985225986225987225988225989225990225991225992225993225994225995225996225997225998225999226000226001226002226003226004226005226006226007226008226009226010226011226012226013226014226015226016226017226018226019226020226021226022226023226024226025226026226027226028226029226030226031226032226033226034226035226036226037226038226039226040226041226042226043226044226045226046226047226048226049226050226051226052226053226054226055226056226057226058226059226060226061226062226063226064226065226066226067226068226069226070226071226072226073226074226075226076226077226078226079226080226081226082226083226084226085226086226087226088226089226090226091226092226093226094226095226096226097226098226099226100226101226102226103226104226105226106226107226108226109226110226111226112226113226114226115226116226117226118226119226120226121226122226123226124226125226126226127226128226129226130226131226132226133226134226135226136226137226138226139226140226141226142226143226144226145226146226147226148226149226150226151226152226153226154226155226156226157226158226159226160226161226162226163226164226165226166226167226168226169226170226171226172226173226174226175226176226177226178226179226180226181226182226183226184226185226186226187226188226189226190226191226192226193226194226195226196226197226198226199226200226201226202226203226204226205226206226207226208226209226210226211226212226213226214226215226216226217226218226219226220226221226222226223226224226225226226226227226228226229226230226231226232226233226234226235226236226237226238226239226240226241226242226243226244226245226246226247226248226249226250226251226252226253226254226255226256226257226258226259226260226261226262226263226264226265226266226267226268226269226270226271226272226273226274226275226276226277226278226279226280226281226282226283226284226285226286226287226288226289226290226291226292226293226294226295226296226297226298226299226300226301226302226303226304226305226306226307226308226309226310226311226312226313226314226315226316226317226318226319226320226321226322226323226324226325226326226327226328226329226330226331226332226333226334226335226336226337226338226339226340226341226342226343226344226345226346226347226348226349226350226351226352226353226354226355226356226357226358226359226360226361226362226363226364226365226366226367226368226369226370226371226372226373226374226375226376226377226378226379226380226381226382226383226384226385226386226387226388226389226390226391226392226393226394226395226396226397226398226399226400226401226402226403226404226405226406226407226408226409226410226411226412226413226414226415226416226417226418226419226420226421226422226423226424226425226426226427226428226429226430226431226432226433226434226435226436226437226438226439226440226441226442226443226444226445226446226447226448226449226450226451226452226453226454226455226456226457226458226459226460226461226462226463226464226465226466226467226468226469226470226471226472226473226474226475226476226477226478226479226480226481226482226483226484226485226486226487226488226489226490226491226492226493226494226495226496226497226498226499226500226501226502226503226504226505226506226507226508226509226510226511226512226513226514226515226516226517226518226519226520226521226522226523226524226525226526226527226528226529226530226531226532226533226534226535226536226537226538226539226540226541226542226543226544226545226546226547226548226549226550226551226552226553226554226555226556226557226558226559226560226561226562226563226564226565226566226567226568226569226570226571226572226573226574226575226576226577226578226579226580226581226582226583226584226585226586226587226588226589226590226591226592226593226594226595226596226597226598226599226600226601226602226603226604226605226606226607226608226609226610226611226612226613226614226615226616226617226618226619226620226621226622226623226624226625226626226627226628226629226630226631226632226633226634226635226636226637226638226639226640226641226642226643226644226645226646226647226648226649226650226651226652226653226654226655226656226657226658226659226660226661226662226663226664226665226666226667226668226669226670226671226672226673226674226675226676226677226678226679226680226681226682226683226684226685226686226687226688226689226690226691226692226693226694226695226696226697226698226699226700226701226702226703226704226705226706226707226708226709226710226711226712226713226714226715226716226717226718226719226720226721226722226723226724226725226726226727226728226729226730226731226732226733226734226735226736226737226738226739226740226741226742226743226744226745226746226747226748226749226750226751226752226753226754226755226756226757226758226759226760226761226762226763226764226765226766226767226768226769226770226771226772226773226774226775226776226777226778226779226780226781226782226783226784226785226786226787226788226789226790226791226792226793226794226795226796226797226798226799226800226801226802226803226804226805226806226807226808226809226810226811226812226813226814226815226816226817226818226819226820226821226822226823226824226825226826226827226828226829226830226831226832226833226834226835226836226837226838226839226840226841226842226843226844226845226846226847226848226849226850226851226852226853226854226855226856226857226858226859226860226861226862226863226864226865226866226867226868226869226870226871226872226873226874226875226876226877226878226879226880226881226882226883226884226885226886226887226888226889226890226891226892226893226894226895226896226897226898226899226900226901226902226903226904226905226906226907226908226909226910226911226912226913226914226915226916226917226918226919226920226921226922226923226924226925226926226927226928226929226930226931226932226933226934226935226936226937226938226939226940226941226942226943226944226945226946226947226948226949226950226951226952226953226954226955226956226957226958226959226960226961226962226963226964226965226966226967226968226969226970226971226972226973226974226975226976226977226978226979226980226981226982226983226984226985226986226987226988226989226990226991226992226993226994226995226996226997226998226999227000227001227002227003227004227005227006227007227008227009227010227011227012227013227014227015227016227017227018227019227020227021227022227023227024227025227026227027227028227029227030227031227032227033227034227035227036227037227038227039227040227041227042227043227044227045227046227047227048227049227050227051227052227053227054227055227056227057227058227059227060227061227062227063227064227065227066227067227068227069227070227071227072227073227074227075227076227077227078227079227080227081227082227083227084227085227086227087227088227089227090227091227092227093227094227095227096227097227098227099227100227101227102227103227104227105227106227107227108227109227110227111227112227113227114227115227116227117227118227119227120227121227122227123227124227125227126227127227128227129227130227131227132227133227134227135227136227137227138227139227140227141227142227143227144227145227146227147227148227149227150227151227152227153227154227155227156227157227158227159227160227161227162227163227164227165227166227167227168227169227170227171227172227173227174227175227176227177227178227179227180227181227182227183227184227185227186227187227188227189227190227191227192227193227194227195227196227197227198227199227200227201227202227203227204227205227206227207227208227209227210227211227212227213227214227215227216227217227218227219227220227221227222227223227224227225227226227227227228227229227230227231227232227233227234227235227236227237227238227239227240227241227242227243227244227245227246227247227248227249227250227251227252227253227254227255227256227257227258227259227260227261227262227263227264227265227266227267227268227269227270227271227272227273227274227275227276227277227278227279227280227281227282227283227284227285227286227287227288227289227290227291227292227293227294227295227296227297227298227299227300227301227302227303227304227305227306227307227308227309227310227311227312227313227314227315227316227317227318227319227320227321227322227323227324227325227326227327227328227329227330227331227332227333227334227335227336227337227338227339227340227341227342227343227344227345227346227347227348227349227350227351227352227353227354227355227356227357227358227359227360227361227362227363227364227365227366227367227368227369227370227371227372227373227374227375227376227377227378227379227380227381227382227383227384227385227386227387227388227389227390227391227392227393227394227395227396227397227398227399227400227401227402227403227404227405227406227407227408227409227410227411227412227413227414227415227416227417227418227419227420227421227422227423227424227425227426227427227428227429227430227431227432227433227434227435227436227437227438227439227440227441227442227443227444227445227446227447227448227449227450227451227452227453227454227455227456227457227458227459227460227461227462227463227464227465227466227467227468227469227470227471227472227473227474227475227476227477227478227479227480227481227482227483227484227485227486227487227488227489227490227491227492227493227494227495227496227497227498227499227500227501227502227503227504227505227506227507227508227509227510227511227512227513227514227515227516227517227518227519227520227521227522227523227524227525227526227527227528227529227530227531227532227533227534227535227536227537227538227539227540227541227542227543227544227545227546227547227548227549227550227551227552227553227554227555227556227557227558227559227560227561227562227563227564227565227566227567227568227569227570227571227572227573227574227575227576227577227578227579227580227581227582227583227584227585227586227587227588227589227590227591227592227593227594227595227596227597227598227599227600227601227602227603227604227605227606227607227608227609227610227611227612227613227614227615227616227617227618227619227620227621227622227623227624227625227626227627227628227629227630227631227632227633227634227635227636227637227638227639227640227641227642227643227644227645227646227647227648227649227650227651227652227653227654227655227656227657227658227659227660227661227662227663227664227665227666227667227668227669227670227671227672227673227674227675227676227677227678227679227680227681227682227683227684227685227686227687227688227689227690227691227692227693227694227695227696227697227698227699227700227701227702227703227704227705227706227707227708227709227710227711227712227713227714227715227716227717227718227719227720227721227722227723227724227725227726227727227728227729227730227731227732227733227734227735227736227737227738227739227740227741227742227743227744227745227746227747227748227749227750227751227752227753227754227755227756227757227758227759227760227761227762227763227764227765227766227767227768227769227770227771227772227773227774227775227776227777227778227779227780227781227782227783227784227785227786227787227788227789227790227791227792227793227794227795227796227797227798227799227800227801227802227803227804227805227806227807227808227809227810227811227812227813227814227815227816227817227818227819227820227821227822227823227824227825227826227827227828227829227830227831227832227833227834227835227836227837227838227839227840227841227842227843227844227845227846227847227848227849227850227851227852227853227854227855227856227857227858227859227860227861227862227863227864227865227866227867227868227869227870227871227872227873227874227875227876227877227878227879227880227881227882227883227884227885227886227887227888227889227890227891227892227893227894227895227896227897227898227899227900227901227902227903227904227905227906227907227908227909227910227911227912227913227914227915227916227917227918227919227920227921227922227923227924227925227926227927227928227929227930227931227932227933227934227935227936227937227938227939227940227941227942227943227944227945227946227947227948227949227950227951227952227953227954227955227956227957227958227959227960227961227962227963227964227965227966227967227968227969227970227971227972227973227974227975227976227977227978227979227980227981227982227983227984227985227986227987227988227989227990227991227992227993227994227995227996227997227998227999228000228001228002228003228004228005228006228007228008228009228010228011228012228013228014228015228016228017228018228019228020228021228022228023228024228025228026228027228028228029228030228031228032228033228034228035228036228037228038228039228040228041228042228043228044228045228046228047228048228049228050228051228052228053228054228055228056228057228058228059228060228061228062228063228064228065228066228067228068228069228070228071228072228073228074228075228076228077228078228079228080228081228082228083228084228085228086228087228088228089228090228091228092228093228094228095228096228097228098228099228100228101228102228103228104228105228106228107228108228109228110228111228112228113228114228115228116228117228118228119228120228121228122228123228124228125228126228127228128228129228130228131228132228133228134228135228136228137228138228139228140228141228142228143228144228145228146228147228148228149228150228151228152228153228154228155228156228157228158228159228160228161228162228163228164228165228166228167228168228169228170228171228172228173228174228175228176228177228178228179228180228181228182228183228184228185228186228187228188228189228190228191228192228193228194228195228196228197228198228199228200228201228202228203228204228205228206228207228208228209228210228211228212228213228214228215228216228217228218228219228220228221228222228223228224228225228226228227228228228229228230228231228232228233228234228235228236228237228238228239228240228241228242228243228244228245228246228247228248228249228250228251228252228253228254228255228256228257228258228259228260228261228262228263228264228265228266228267228268228269228270228271228272228273228274228275228276228277228278228279228280228281228282228283228284228285228286228287228288228289228290228291228292228293228294228295228296228297228298228299228300228301228302228303228304228305228306228307228308228309228310228311228312228313228314228315228316228317228318228319228320228321228322228323228324228325228326228327228328228329228330228331228332228333228334228335228336228337228338228339228340228341228342228343228344228345228346228347228348228349228350228351228352228353228354228355228356228357228358228359228360228361228362228363228364228365228366228367228368228369228370228371228372228373228374228375228376228377228378228379228380228381228382228383228384228385228386228387228388228389228390228391228392228393228394228395228396228397228398228399228400228401228402228403228404228405228406228407228408228409228410228411228412228413228414228415228416228417228418228419228420228421228422228423228424228425228426228427228428228429228430228431228432228433228434228435228436228437228438228439228440228441228442228443228444228445228446228447228448228449228450228451228452228453228454228455228456228457228458228459228460228461228462228463228464228465228466228467228468228469228470228471228472228473228474228475228476228477228478228479228480228481228482228483228484228485228486228487228488228489228490228491228492228493228494228495228496228497228498228499228500228501228502228503228504228505228506228507228508228509228510228511228512228513228514228515228516228517228518228519228520228521228522228523228524228525228526228527228528228529228530228531228532228533228534228535228536228537228538228539228540228541228542228543228544228545228546228547228548228549228550228551228552228553228554228555228556228557228558228559228560228561228562228563228564228565228566228567228568228569228570228571228572228573228574228575228576228577228578228579228580228581228582228583228584228585228586228587228588228589228590228591228592228593228594228595228596228597228598228599228600228601228602228603228604228605228606228607228608228609228610228611228612228613228614228615228616228617228618228619228620228621228622228623228624228625228626228627228628228629228630228631228632228633228634228635228636228637228638228639228640228641228642228643228644228645228646228647228648228649228650228651228652228653228654228655228656228657228658228659228660228661228662228663228664228665228666228667228668228669228670228671228672228673228674228675228676228677228678228679228680228681228682228683228684228685228686228687228688228689228690228691228692228693228694228695228696228697228698228699228700228701228702228703228704228705228706228707228708228709228710228711228712228713228714228715228716228717228718228719228720228721228722228723228724228725228726228727228728228729228730228731228732228733228734228735228736228737228738228739228740228741228742228743228744228745228746228747228748228749228750228751228752228753228754228755228756228757228758228759228760228761228762228763228764228765228766228767228768228769228770228771228772228773228774228775228776228777228778228779228780228781228782228783228784228785228786228787228788228789228790228791228792228793228794228795228796228797228798228799228800228801228802228803228804228805228806228807228808228809228810228811228812228813228814228815228816228817228818228819228820228821228822228823228824228825228826228827228828228829228830228831228832228833228834228835228836228837228838228839228840228841228842228843228844228845228846228847228848228849228850228851228852228853228854228855228856228857228858228859228860228861228862228863228864228865228866228867228868228869228870228871228872228873228874228875228876228877228878228879228880228881228882228883228884228885228886228887228888228889228890228891228892228893228894228895228896228897228898228899228900228901228902228903228904228905228906228907228908228909228910228911228912228913228914228915228916228917228918228919228920228921228922228923228924228925228926228927228928228929228930228931228932228933228934228935228936228937228938228939228940228941228942228943228944228945228946228947228948228949228950228951228952228953228954228955228956228957228958228959228960228961228962228963228964228965228966228967228968228969228970228971228972228973228974228975228976228977228978228979228980228981228982228983228984228985228986228987228988228989228990228991228992228993228994228995228996228997228998228999229000229001229002229003229004229005229006229007229008229009229010229011229012229013229014229015229016229017229018229019229020229021229022229023229024229025229026229027229028229029229030229031229032229033229034229035229036229037229038229039229040229041229042229043229044229045229046229047229048229049229050229051229052229053229054229055229056229057229058229059229060229061229062229063229064229065229066229067229068229069229070229071229072229073229074229075229076229077229078229079229080229081229082229083229084229085229086229087229088229089229090229091229092229093229094229095229096229097229098229099229100229101229102229103229104229105229106229107229108229109229110229111229112229113229114229115229116229117229118229119229120229121229122229123229124229125229126229127229128229129229130229131229132229133229134229135229136229137229138229139229140229141229142229143229144229145229146229147229148229149229150229151229152229153229154229155229156229157229158229159229160229161229162229163229164229165229166229167229168229169229170229171229172229173229174229175229176229177229178229179229180229181229182229183229184229185229186229187229188229189229190229191229192229193229194229195229196229197229198229199229200229201229202229203229204229205229206229207229208229209229210229211229212229213229214229215229216229217229218229219229220229221229222229223229224229225229226229227229228229229229230229231229232229233229234229235229236229237229238229239229240229241229242229243229244229245229246229247229248229249229250229251229252229253229254229255229256229257229258229259229260229261229262229263229264229265229266229267229268229269229270229271229272229273229274229275229276229277229278229279229280229281229282229283229284229285229286229287229288229289229290229291229292229293229294229295229296229297229298229299229300229301229302229303229304229305229306229307229308229309229310229311229312229313229314229315229316229317229318229319229320229321229322229323229324229325229326229327229328229329229330229331229332229333229334229335229336229337229338229339229340229341229342229343229344229345229346229347229348229349229350229351229352229353229354229355229356229357229358229359229360229361229362229363229364229365229366229367229368229369229370229371229372229373229374229375229376229377229378229379229380229381229382229383229384229385229386229387229388229389229390229391229392229393229394229395229396229397229398229399229400229401229402229403229404229405229406229407229408229409229410229411229412229413229414229415229416229417229418229419229420229421229422229423229424229425229426229427229428229429229430229431229432229433229434229435229436229437229438229439229440229441229442229443229444229445229446229447229448229449229450229451229452229453229454229455229456229457229458229459229460229461229462229463229464229465229466229467229468229469229470229471229472229473229474229475229476229477229478229479229480229481229482229483229484229485229486229487229488229489229490229491229492229493229494229495229496229497229498229499229500229501229502229503229504229505229506229507229508229509229510229511229512229513229514229515229516229517229518229519229520229521229522229523229524229525229526229527229528229529229530229531229532229533229534229535229536229537229538229539229540229541229542229543229544229545229546229547229548229549229550229551229552229553229554229555229556229557229558229559229560229561229562229563229564229565229566229567229568229569229570229571229572229573229574229575229576229577229578229579229580229581229582229583229584229585229586229587229588229589229590229591229592229593229594229595229596229597229598229599229600229601229602229603229604229605229606229607229608229609229610229611229612229613229614229615229616229617229618229619229620229621229622229623229624229625229626229627229628229629229630229631229632229633229634229635229636229637229638229639229640229641229642229643229644229645229646229647229648229649229650229651229652229653229654229655229656229657229658229659229660229661229662229663229664229665229666229667229668229669229670229671229672229673229674229675229676229677229678229679229680229681229682229683229684229685229686229687229688229689229690229691229692229693229694229695229696229697229698229699229700229701229702229703229704229705229706229707229708229709229710229711229712229713229714229715229716229717229718229719229720229721229722229723229724229725229726229727229728229729229730229731229732229733229734229735229736229737229738229739229740229741229742229743229744229745229746229747229748229749229750229751229752229753229754229755229756229757229758229759229760229761229762229763229764229765229766229767229768229769229770229771229772229773229774229775229776229777229778229779229780229781229782229783229784229785229786229787229788229789229790229791229792229793229794229795229796229797229798229799229800229801229802229803229804229805229806229807229808229809229810229811229812229813229814229815229816229817229818229819229820229821229822229823229824229825229826229827229828229829229830229831229832229833229834229835229836229837229838229839229840229841229842229843229844229845229846229847229848229849229850229851229852229853229854229855229856229857229858229859229860229861229862229863229864229865229866229867229868229869229870229871229872229873229874229875229876229877229878229879229880229881229882229883229884229885229886229887229888229889229890229891229892229893229894229895229896229897229898229899229900229901229902229903229904229905229906229907229908229909229910229911229912229913229914229915229916229917229918229919229920229921229922229923229924229925229926229927229928229929229930229931229932229933229934229935229936229937229938229939229940229941229942229943229944229945229946229947229948229949229950229951229952229953229954229955229956229957229958229959229960229961229962229963229964229965229966229967229968229969229970229971229972229973229974229975229976229977229978229979229980229981229982229983229984229985229986229987229988229989229990229991229992229993229994229995229996229997229998229999230000230001230002230003230004230005230006230007230008230009230010230011230012230013230014230015230016230017230018230019230020230021230022230023230024230025230026230027230028230029230030230031230032230033230034230035230036230037230038230039230040230041230042230043230044230045230046230047230048230049230050230051230052230053230054230055230056230057230058230059230060230061230062230063230064230065230066230067230068230069230070230071230072230073230074230075230076230077230078230079230080230081230082230083230084230085230086230087230088230089230090230091230092230093230094230095230096230097230098230099230100230101230102230103230104230105230106230107230108230109230110230111230112230113230114230115230116230117230118230119230120230121230122230123230124230125230126230127230128230129230130230131230132230133230134230135230136230137230138230139230140230141230142230143230144230145230146230147230148230149230150230151230152230153230154230155230156230157230158230159230160230161230162230163230164230165230166230167230168230169230170230171230172230173230174230175230176230177230178230179230180230181230182230183230184230185230186230187230188230189230190230191230192230193230194230195230196230197230198230199230200230201230202230203230204230205230206230207230208230209230210230211230212230213230214230215230216230217230218230219230220230221230222230223230224230225230226230227230228230229230230230231230232230233230234230235230236230237230238230239230240230241230242230243230244230245230246230247230248230249230250230251230252230253230254230255230256230257230258230259230260230261230262230263230264230265230266230267230268230269230270230271230272230273230274230275230276230277230278230279230280230281230282230283230284230285230286230287230288230289230290230291230292230293230294230295230296230297230298230299230300230301230302230303230304230305230306230307230308230309230310230311230312230313230314230315230316230317230318230319230320230321230322230323230324230325230326230327230328230329230330230331230332230333230334230335230336230337230338230339230340230341230342230343230344230345230346230347230348230349230350230351230352230353230354230355230356230357230358230359230360230361230362230363230364230365230366230367230368230369230370230371230372230373230374230375230376230377230378230379230380230381230382230383230384230385230386230387230388230389230390230391230392230393230394230395230396230397230398230399230400230401230402230403230404230405230406230407230408230409230410230411230412230413230414230415230416230417230418230419230420230421230422230423230424230425230426230427230428230429230430230431230432230433230434230435230436230437230438230439230440230441230442230443230444230445230446230447230448230449230450230451230452230453230454230455230456230457230458230459230460230461230462230463230464230465230466230467230468230469230470230471230472230473230474230475230476230477230478230479230480230481230482230483230484230485230486230487230488230489230490230491230492230493230494230495230496230497230498230499230500230501230502230503230504230505230506230507230508230509230510230511230512230513230514230515230516230517230518230519230520230521230522230523230524230525230526230527230528230529230530230531230532230533230534230535230536230537230538230539230540230541230542230543230544230545230546230547230548230549230550230551230552230553230554230555230556230557230558230559230560230561230562230563230564230565230566230567230568230569230570230571230572230573230574230575230576230577230578230579230580230581230582230583230584230585230586230587230588230589230590230591230592230593230594230595230596230597230598230599230600230601230602230603230604230605230606230607230608230609230610230611230612230613230614230615230616230617230618230619230620230621230622230623230624230625230626230627230628230629230630230631230632230633230634230635230636230637230638230639230640230641230642230643230644230645230646230647230648230649230650230651230652230653230654230655230656230657230658230659230660230661230662230663230664230665230666230667230668230669230670230671230672230673230674230675230676230677230678230679230680230681230682230683230684230685230686230687230688230689230690230691230692230693230694230695230696230697230698230699230700230701230702230703230704230705230706230707230708230709230710230711230712230713230714230715230716230717230718230719230720230721230722230723230724230725230726230727230728230729230730230731230732230733230734230735230736230737230738230739230740230741230742230743230744230745230746230747230748230749230750230751230752230753230754230755230756230757230758230759230760230761230762230763230764230765230766230767230768230769230770230771230772230773230774230775230776230777230778230779230780230781230782230783230784230785230786230787230788230789230790230791230792230793230794230795230796230797230798230799230800230801230802230803230804230805230806230807230808230809230810230811230812230813230814230815230816230817230818230819230820230821230822230823230824230825230826230827230828230829230830230831230832230833230834230835230836230837230838230839230840230841230842230843230844230845230846230847230848230849230850230851230852230853230854230855230856230857230858230859230860230861230862230863230864230865230866230867230868230869230870230871230872230873230874230875230876230877230878230879230880230881230882230883230884230885230886230887230888230889230890230891230892230893230894230895230896230897230898230899230900230901230902230903230904230905230906230907230908230909230910230911230912230913230914230915230916230917230918230919230920230921230922230923230924230925230926230927230928230929230930230931230932230933230934230935230936230937230938230939230940230941230942230943230944230945230946230947230948230949230950230951230952230953230954230955230956230957230958230959230960230961230962230963230964230965230966230967230968230969230970230971230972230973230974230975230976230977230978230979230980230981230982230983230984230985230986230987230988230989230990230991230992230993230994230995230996230997230998230999231000231001231002231003231004231005231006231007231008231009231010231011231012231013231014231015231016231017231018231019231020231021231022231023231024231025231026231027231028231029231030231031231032231033231034231035231036231037231038231039231040231041231042231043231044231045231046231047231048231049231050231051231052231053231054231055231056231057231058231059231060231061231062231063231064231065231066231067231068231069231070231071231072231073231074231075231076231077231078231079231080231081231082231083231084231085231086231087231088231089231090231091231092231093231094231095231096231097231098231099231100231101231102231103231104231105231106231107231108231109231110231111231112231113231114231115231116231117231118231119231120231121231122231123231124231125231126231127231128231129231130231131231132231133231134231135231136231137231138231139231140231141231142231143231144231145231146231147231148231149231150231151231152231153231154231155231156231157231158231159231160231161231162231163231164231165231166231167231168231169231170231171231172231173231174231175231176231177231178231179231180231181231182231183231184231185231186231187231188231189231190231191231192231193231194231195231196231197231198231199231200231201231202231203231204231205231206231207231208231209231210231211231212231213231214231215231216231217231218231219231220231221231222231223231224231225231226231227231228231229231230231231231232231233231234231235231236231237231238231239231240231241231242231243231244231245231246231247231248231249231250231251231252231253231254231255231256231257231258231259231260231261231262231263231264231265231266231267231268231269231270231271231272231273231274231275231276231277231278231279231280231281231282231283231284231285231286231287231288231289231290231291231292231293231294231295231296231297231298231299231300231301231302231303231304231305231306231307231308231309231310231311231312231313231314231315231316231317231318231319231320231321231322231323231324231325231326231327231328231329231330231331231332231333231334231335231336231337231338231339231340231341231342231343231344231345231346231347231348231349231350231351231352231353231354231355231356231357231358231359231360231361231362231363231364231365231366231367231368231369231370231371231372231373231374231375231376231377231378231379231380231381231382231383231384231385231386231387231388231389231390231391231392231393231394231395231396231397231398231399231400231401231402231403231404231405231406231407231408231409231410231411231412231413231414231415231416231417231418231419231420231421231422231423231424231425231426231427231428231429231430231431231432231433231434231435231436231437231438231439231440231441231442231443231444231445231446231447231448231449231450231451231452231453231454231455231456231457231458231459231460231461231462231463231464231465231466231467231468231469231470231471231472231473231474231475231476231477231478231479231480231481231482231483231484231485231486231487231488231489231490231491231492231493231494231495231496231497231498231499231500231501231502231503231504231505231506231507231508231509231510231511231512231513231514231515231516231517231518231519231520231521231522231523231524231525231526231527231528231529231530231531231532231533231534231535231536231537231538231539231540231541231542231543231544231545231546231547231548231549231550231551231552231553231554231555231556231557231558231559231560231561231562231563231564231565231566231567231568231569231570231571231572231573231574231575231576231577231578231579231580231581231582231583231584231585231586231587231588231589231590231591231592231593231594231595231596231597231598231599231600231601231602231603231604231605231606231607231608231609231610231611231612231613231614231615231616231617231618231619231620231621231622231623231624231625231626231627231628231629231630231631231632231633231634231635231636231637231638231639231640231641231642231643231644231645231646231647231648231649231650231651231652231653231654231655231656231657231658231659231660231661231662231663231664231665231666231667231668231669231670231671231672231673231674231675231676231677231678231679231680231681231682231683231684231685231686231687231688231689231690231691231692231693231694231695231696231697231698231699231700231701231702231703231704231705231706231707231708231709231710231711231712231713231714231715231716231717231718231719231720231721231722231723231724231725231726231727231728231729231730231731231732231733231734231735231736231737231738231739231740231741231742231743231744231745231746231747231748231749231750231751231752231753231754231755231756231757231758231759231760231761231762231763231764231765231766231767231768231769231770231771231772231773231774231775231776231777231778231779231780231781231782231783231784231785231786231787231788231789231790231791231792231793231794231795231796231797231798231799231800231801231802231803231804231805231806231807231808231809231810231811231812231813231814231815231816231817231818231819231820231821231822231823231824231825231826231827231828231829231830231831231832231833231834231835231836231837231838231839231840231841231842231843231844231845231846231847231848231849231850231851231852231853231854231855231856231857231858231859231860231861231862231863231864231865231866231867231868231869231870231871231872231873231874231875231876231877231878231879231880231881231882231883231884231885231886231887231888231889231890231891231892231893231894231895231896231897231898231899231900231901231902231903231904231905231906231907231908231909231910231911231912231913231914231915231916231917231918231919231920231921231922231923231924231925231926231927231928231929231930231931231932231933231934231935231936231937231938231939231940231941231942231943231944231945231946231947231948231949231950231951231952231953231954231955231956231957231958231959231960231961231962231963231964231965231966231967231968231969231970231971231972231973231974231975231976231977231978231979231980231981231982231983231984231985231986231987231988231989231990231991231992231993231994231995231996231997231998231999232000232001232002232003232004232005232006232007232008232009232010232011232012232013232014232015232016232017232018232019232020232021232022232023232024232025232026232027232028232029232030232031232032232033232034232035232036232037232038232039232040232041232042232043232044232045232046232047232048232049232050232051232052232053232054232055232056232057232058232059232060232061232062232063232064232065232066232067232068232069232070232071232072232073232074232075232076232077232078232079232080232081232082232083232084232085232086232087232088232089232090232091232092232093232094232095232096232097232098232099232100232101232102232103232104232105232106232107232108232109232110232111232112232113232114232115232116232117232118232119232120232121232122232123232124232125232126232127232128232129232130232131232132232133232134232135232136232137232138232139232140232141232142232143232144232145232146232147232148232149232150232151232152232153232154232155232156232157232158232159232160232161232162232163232164232165232166232167232168232169232170232171232172232173232174232175232176232177232178232179232180232181232182232183232184232185232186232187232188232189232190232191232192232193232194232195232196232197232198232199232200232201232202232203232204232205232206232207232208232209232210232211232212232213232214232215232216232217232218232219232220232221232222232223232224232225232226232227232228232229232230232231232232232233232234232235232236232237232238232239232240232241232242232243232244232245232246232247232248232249232250232251232252232253232254232255232256232257232258232259232260232261232262232263232264232265232266232267232268232269232270232271232272232273232274232275232276232277232278232279232280232281232282232283232284232285232286232287232288232289232290232291232292232293232294232295232296232297232298232299232300232301232302232303232304232305232306232307232308232309232310232311232312232313232314232315232316232317232318232319232320232321232322232323232324232325232326232327232328232329232330232331232332232333232334232335232336232337232338232339232340232341232342232343232344232345232346232347232348232349232350232351232352232353232354232355232356232357232358232359232360232361232362232363232364232365232366232367232368232369232370232371232372232373232374232375232376232377232378232379232380232381232382232383232384232385232386232387232388232389232390232391232392232393232394232395232396232397232398232399232400232401232402232403232404232405232406232407232408232409232410232411232412232413232414232415232416232417232418232419232420232421232422232423232424232425232426232427232428232429232430232431232432232433232434232435232436232437232438232439232440232441232442232443232444232445232446232447232448232449232450232451232452232453232454232455232456232457232458232459232460232461232462232463232464232465232466232467232468232469232470232471232472232473232474232475232476232477232478232479232480232481232482232483232484232485232486232487232488232489232490232491232492232493232494232495232496232497232498232499232500232501232502232503232504232505232506232507232508232509232510232511232512232513232514232515232516232517232518232519232520232521232522232523232524232525232526232527232528232529232530232531232532232533232534232535232536232537232538232539232540232541232542232543232544232545232546232547232548232549232550232551232552232553232554232555232556232557232558232559232560232561232562232563232564232565232566232567232568232569232570232571232572232573232574232575232576232577232578232579232580232581232582232583232584232585232586232587232588232589232590232591232592232593232594232595232596232597232598232599232600232601232602232603232604232605232606232607232608232609232610232611232612232613232614232615232616232617232618232619232620232621232622232623232624232625232626232627232628232629232630232631232632232633232634232635232636232637232638232639232640232641232642232643232644232645232646232647232648232649232650232651232652232653232654232655232656232657232658232659232660232661232662232663232664232665232666232667232668232669232670232671232672232673232674232675232676232677232678232679232680232681232682232683232684232685232686232687232688232689232690232691232692232693232694232695232696232697232698232699232700232701232702232703232704232705232706232707232708232709232710232711232712232713232714232715232716232717232718232719232720232721232722232723232724232725232726232727232728232729232730232731232732232733232734232735232736232737232738232739232740232741232742232743232744232745232746232747232748232749232750232751232752232753232754232755232756232757232758232759232760232761232762232763232764232765232766232767232768232769232770232771232772232773232774232775232776232777232778232779232780232781232782232783232784232785232786232787232788232789232790232791232792232793232794232795232796232797232798232799232800232801232802232803232804232805232806232807232808232809232810232811232812232813232814232815232816232817232818232819232820232821232822232823232824232825232826232827232828232829232830232831232832232833232834232835232836232837232838232839232840232841232842232843232844232845232846232847232848232849232850232851232852232853232854232855232856232857232858232859232860232861232862232863232864232865232866232867232868232869232870232871232872232873232874232875232876232877232878232879232880232881232882232883232884232885232886232887232888232889232890232891232892232893232894232895232896232897232898232899232900232901232902232903232904232905232906232907232908232909232910232911232912232913232914232915232916232917232918232919232920232921232922232923232924232925232926232927232928232929232930232931232932232933232934232935232936232937232938232939232940232941232942232943232944232945232946232947232948232949232950232951232952232953232954232955232956232957232958232959232960232961232962232963232964232965232966232967232968232969232970232971232972232973232974232975232976232977232978232979232980232981232982232983232984232985232986232987232988232989232990232991232992232993232994232995232996232997232998232999233000233001233002233003233004233005233006233007233008233009233010233011233012233013233014233015233016233017233018233019233020233021233022233023233024233025233026233027233028233029233030233031233032233033233034233035233036233037233038233039233040233041233042233043233044233045233046233047233048233049233050233051233052233053233054233055233056233057233058233059233060233061233062233063233064233065233066233067233068233069233070233071233072233073233074233075233076233077233078233079233080233081233082233083233084233085233086233087233088233089233090233091233092233093233094233095233096233097233098233099233100233101233102233103233104233105233106233107233108233109233110233111233112233113233114233115233116233117233118233119233120233121233122233123233124233125233126233127233128233129233130233131233132233133233134233135233136233137233138233139233140233141233142233143233144233145233146233147233148233149233150233151233152233153233154233155233156233157233158233159233160233161233162233163233164233165233166233167233168233169233170233171233172233173233174233175233176233177233178233179233180233181233182233183233184233185233186233187233188233189233190233191233192233193233194233195233196233197233198233199233200233201233202233203233204233205233206233207233208233209233210233211233212233213233214233215233216233217233218233219233220233221233222233223233224233225233226233227233228233229233230233231233232233233233234233235233236233237233238233239233240233241233242233243233244233245233246233247233248233249233250233251233252233253233254233255233256233257233258233259233260233261233262233263233264233265233266233267233268233269233270233271233272233273233274233275233276233277233278233279233280233281233282233283233284233285233286233287233288233289233290233291233292233293233294233295233296233297233298233299233300233301233302233303233304233305233306233307233308233309233310233311233312233313233314233315233316233317233318233319233320233321233322233323233324233325233326233327233328233329233330233331233332233333233334233335233336233337233338233339233340233341233342233343233344233345233346233347233348233349233350233351233352233353233354233355233356233357233358233359233360233361233362233363233364233365233366233367233368233369233370233371233372233373233374233375233376233377233378233379233380233381233382233383233384233385233386233387233388233389233390233391233392233393233394233395233396233397233398233399233400233401233402233403233404233405233406233407233408233409233410233411233412233413233414233415233416233417233418233419233420233421233422233423233424233425233426233427233428233429233430233431233432233433233434233435233436233437233438233439233440233441233442233443233444233445233446233447233448233449233450233451233452233453233454233455233456233457233458233459233460233461233462233463233464233465233466233467233468233469233470233471233472233473233474233475233476233477233478233479233480233481233482233483233484233485233486233487233488233489233490233491233492233493233494233495233496233497233498233499233500233501233502233503233504233505233506233507233508233509233510233511233512233513233514233515233516233517233518233519233520233521233522233523233524233525233526233527233528233529233530233531233532233533233534233535233536233537233538233539233540233541233542233543233544233545233546233547233548233549233550233551233552233553233554233555233556233557233558233559233560233561233562233563233564233565233566233567233568233569233570233571233572233573233574233575233576233577233578233579233580233581233582233583233584233585233586233587233588233589233590233591233592233593233594233595233596233597233598233599233600233601233602233603233604233605233606233607233608233609233610233611233612233613233614233615233616233617233618233619233620233621233622233623233624233625233626233627233628233629233630233631233632233633233634233635233636233637233638233639233640233641233642233643233644233645233646233647233648233649233650233651233652233653233654233655233656233657233658233659233660233661233662233663233664233665233666233667233668233669233670233671233672233673233674233675233676233677233678233679233680233681233682233683233684233685233686233687233688233689233690233691233692233693233694233695233696233697233698233699233700233701233702233703233704233705233706233707233708233709233710233711233712233713233714233715233716233717233718233719233720233721233722233723233724233725233726233727233728233729233730233731233732233733233734233735233736233737233738233739233740233741233742233743233744233745233746233747233748233749233750233751233752233753233754233755233756233757233758233759233760233761233762233763233764233765233766233767233768233769233770233771233772233773233774233775233776233777233778233779233780233781233782233783233784233785233786233787233788233789233790233791233792233793233794233795233796233797233798233799233800233801233802233803233804233805233806233807233808233809233810233811233812233813233814233815233816233817233818233819233820233821233822233823233824233825233826233827233828233829233830233831233832233833233834233835233836233837233838233839233840233841233842233843233844233845233846233847233848233849233850233851233852233853233854233855233856233857233858233859233860233861233862233863233864233865233866233867233868233869233870233871233872233873233874233875233876233877233878233879233880233881233882233883233884233885233886233887233888233889233890233891233892233893233894233895233896233897233898233899233900233901233902233903233904233905233906233907233908233909233910233911233912233913233914233915233916233917233918233919233920233921233922233923233924233925233926233927233928233929233930233931233932233933233934233935233936233937233938233939233940233941233942233943233944233945233946233947233948233949233950233951233952233953233954233955233956233957233958233959233960233961233962233963233964233965233966233967233968233969233970233971233972233973233974233975233976233977233978233979233980233981233982233983233984233985233986233987233988233989233990233991233992233993233994233995233996233997233998233999234000234001234002234003234004234005234006234007234008234009234010234011234012234013234014234015234016234017234018234019234020234021234022234023234024234025234026234027234028234029234030234031234032234033234034234035234036234037234038234039234040234041234042234043234044234045234046234047234048234049234050234051234052234053234054234055234056234057234058234059234060234061234062234063234064234065234066234067234068234069234070234071234072234073234074234075234076234077234078234079234080234081234082234083234084234085234086234087234088234089234090234091234092234093234094234095234096234097234098234099234100234101234102234103234104234105234106234107234108234109234110234111234112234113234114234115234116234117234118234119234120234121234122234123234124234125234126234127234128234129234130234131234132234133234134234135234136234137234138234139234140234141234142234143234144234145234146234147234148234149234150234151234152234153234154234155234156234157234158234159234160234161234162234163234164234165234166234167234168234169234170234171234172234173234174234175234176234177234178234179234180234181234182234183234184234185234186234187234188234189234190234191234192234193234194234195234196234197234198234199234200234201234202234203234204234205234206234207234208234209234210234211234212234213234214234215234216234217234218234219234220234221234222234223234224234225234226234227234228234229234230234231234232234233234234234235234236234237234238234239234240234241234242234243234244234245234246234247234248234249234250234251234252234253234254234255234256234257234258234259234260234261234262234263234264234265234266234267234268234269234270234271234272234273234274234275234276234277234278234279234280234281234282234283234284234285234286234287234288234289234290234291234292234293234294234295234296234297234298234299234300234301234302234303234304234305234306234307234308234309234310234311234312234313234314234315234316234317234318234319234320234321234322234323234324234325234326234327234328234329234330234331234332234333234334234335234336234337234338234339234340234341234342234343234344234345234346234347234348234349234350234351234352234353234354234355234356234357234358234359234360234361234362234363234364234365234366234367234368234369234370234371234372234373234374234375234376234377234378234379234380234381234382234383234384234385234386234387234388234389234390234391234392234393234394234395234396234397234398234399234400234401234402234403234404234405234406234407234408234409234410234411234412234413234414234415234416234417234418234419234420234421234422234423234424234425234426234427234428234429234430234431234432234433234434234435234436234437234438234439234440234441234442234443234444234445234446234447234448234449234450234451234452234453234454234455234456234457234458234459234460234461234462234463234464234465234466234467234468234469234470234471234472234473234474234475234476234477234478234479234480234481234482234483234484234485234486234487234488234489234490234491234492234493234494234495234496234497234498234499234500234501234502234503234504234505234506234507234508234509234510234511234512234513234514234515234516234517234518234519234520234521234522234523234524234525234526234527234528234529234530234531234532234533234534234535234536234537234538234539234540234541234542234543234544234545234546234547234548234549234550234551234552234553234554234555234556234557234558234559234560234561234562234563234564234565234566234567234568234569234570234571234572234573234574234575234576234577234578234579234580234581234582234583234584234585234586234587234588234589234590234591234592234593234594234595234596234597234598234599234600234601234602234603234604234605234606234607234608234609234610234611234612234613234614234615234616234617234618234619234620234621234622234623234624234625234626234627234628234629234630234631234632234633234634234635234636234637234638234639234640234641234642234643234644234645234646234647234648234649234650234651234652234653234654234655234656234657234658234659234660234661234662234663234664234665234666234667234668234669234670234671234672234673234674234675234676234677234678234679234680234681234682234683234684234685234686234687234688234689234690234691234692234693234694234695234696234697234698234699234700234701234702234703234704234705234706234707234708234709234710234711234712234713234714234715234716234717234718234719234720234721234722234723234724234725234726234727234728234729234730234731234732234733234734234735234736234737234738234739234740234741234742234743234744234745234746234747234748234749234750234751234752234753234754234755234756234757234758234759234760234761234762234763234764234765234766234767234768234769234770234771234772234773234774234775234776234777234778234779234780234781234782234783234784234785234786234787234788234789234790234791234792234793234794234795234796234797234798234799234800234801234802234803234804234805234806234807234808234809234810234811234812234813234814234815234816234817234818234819234820234821234822234823234824234825234826234827234828234829234830234831234832234833234834234835234836234837234838234839234840234841234842234843234844234845234846234847234848234849234850234851234852234853234854234855234856234857234858234859234860234861234862234863234864234865234866234867234868234869234870234871234872234873234874234875234876234877234878234879234880234881234882234883234884234885234886234887234888234889234890234891234892234893234894234895234896234897234898234899234900234901234902234903234904234905234906234907234908234909234910234911234912234913234914234915234916234917234918234919234920234921234922234923234924234925234926234927234928234929234930234931234932234933234934234935234936234937234938234939234940234941234942234943234944234945234946234947234948234949234950234951234952234953234954234955234956234957234958234959234960234961234962234963234964234965234966234967234968234969234970234971234972234973234974234975234976234977234978234979234980234981234982234983234984234985234986234987234988234989234990234991234992234993234994234995234996234997234998234999235000235001235002235003235004235005235006235007235008235009235010235011235012235013235014235015235016235017235018235019235020235021235022235023235024235025235026235027235028235029235030235031235032235033235034235035235036235037235038235039235040235041235042235043235044235045235046235047235048235049235050235051235052235053235054235055235056235057235058235059235060235061235062235063235064235065235066235067235068235069235070235071235072235073235074235075235076235077235078235079235080235081235082235083235084235085235086235087235088235089235090235091235092235093235094235095235096235097235098235099235100235101235102235103235104235105235106235107235108235109235110235111235112235113235114235115235116235117235118235119235120235121235122235123235124235125235126235127235128235129235130235131235132235133235134235135235136235137235138235139235140235141235142235143235144235145235146235147235148235149235150235151235152235153235154235155235156235157235158235159235160235161235162235163235164235165235166235167235168235169235170235171235172235173235174235175235176235177235178235179235180235181235182235183235184235185235186235187235188235189235190235191235192235193235194235195235196235197235198235199235200235201235202235203235204235205235206235207235208235209235210235211235212235213235214235215235216235217235218235219235220235221235222235223235224235225235226235227235228235229235230235231235232235233235234235235235236235237235238235239235240235241235242235243235244235245235246235247235248235249235250235251235252235253235254235255235256235257235258235259235260235261235262235263235264235265235266235267235268235269235270235271235272235273235274235275235276235277235278235279235280235281235282235283235284235285235286235287235288235289235290235291235292235293235294235295235296235297235298235299235300235301235302235303235304235305235306235307235308235309235310235311235312235313235314235315235316235317235318235319235320235321235322235323235324235325235326235327235328235329235330235331235332235333235334235335235336235337235338235339235340235341235342235343235344235345235346235347235348235349235350235351235352235353235354235355235356235357235358235359235360235361235362235363235364235365235366235367235368235369235370235371235372235373235374235375235376235377235378235379235380235381235382235383235384235385235386235387235388235389235390235391235392235393235394235395235396235397235398235399235400235401235402235403235404235405235406235407235408235409235410235411235412235413235414235415235416235417235418235419235420235421235422235423235424235425235426235427235428235429235430235431235432235433235434235435235436235437235438235439235440235441235442235443235444235445235446235447235448235449235450235451235452235453235454235455235456235457235458235459235460235461235462235463235464235465235466235467235468235469235470235471235472235473235474235475235476235477235478235479235480235481235482235483235484235485235486235487235488235489235490235491235492235493235494235495235496235497235498235499235500235501235502235503235504235505235506235507235508235509235510235511235512235513235514235515235516235517235518235519235520235521235522235523235524235525235526235527235528235529235530235531235532235533235534235535235536235537235538235539235540235541235542235543235544235545235546235547235548235549235550235551235552235553235554235555235556235557235558235559235560235561235562235563235564235565235566235567235568235569235570235571235572235573235574235575235576235577235578235579235580235581235582235583235584235585235586235587235588235589235590235591235592235593235594235595235596235597235598235599235600235601235602235603235604235605235606235607235608235609235610235611235612235613235614235615235616235617235618235619235620235621235622235623235624235625235626235627235628235629235630235631235632235633235634235635235636235637235638235639235640235641235642235643235644235645235646235647235648235649235650235651235652235653235654235655235656235657235658235659235660235661235662235663235664235665235666235667235668235669235670235671235672235673235674235675235676235677235678235679235680235681235682235683235684235685235686235687235688235689235690235691235692235693235694235695235696235697235698235699235700235701235702235703235704235705235706235707235708235709235710235711235712235713235714235715235716235717235718235719235720235721235722235723235724235725235726235727235728235729235730235731235732235733235734235735235736235737235738235739235740235741235742235743235744235745235746235747235748235749235750235751235752235753235754235755235756235757235758235759235760235761235762235763235764235765235766235767235768235769235770235771235772235773235774235775235776235777235778235779235780235781235782235783235784235785235786235787235788235789235790235791235792235793235794235795235796235797235798235799235800235801235802235803235804235805235806235807235808235809235810235811235812235813235814235815235816235817235818235819235820235821235822235823235824235825235826235827235828235829235830235831235832235833235834235835235836235837235838235839235840235841235842235843235844235845235846235847235848235849235850235851235852235853235854235855235856235857235858235859235860235861235862235863235864235865235866235867235868235869235870235871235872235873235874235875235876235877235878235879235880235881235882235883235884235885235886235887235888235889235890235891235892235893235894235895235896235897235898235899235900235901235902235903235904235905235906235907235908235909235910235911235912235913235914235915235916235917235918235919235920235921235922235923235924235925235926235927235928235929235930235931235932235933235934235935235936235937235938235939235940235941235942235943235944235945235946235947235948235949235950235951235952235953235954235955235956235957235958235959235960235961235962235963235964235965235966235967235968235969235970235971235972235973235974235975235976235977235978235979235980235981235982235983235984235985235986235987235988235989235990235991235992235993235994235995235996235997235998235999236000236001236002236003236004236005236006236007236008236009236010236011236012236013236014236015236016236017236018236019236020236021236022236023236024236025236026236027236028236029236030236031236032236033236034236035236036236037236038236039236040236041236042236043236044236045236046236047236048236049236050236051236052236053236054236055236056236057236058236059236060236061236062236063236064236065236066236067236068236069236070236071236072236073236074236075236076236077236078236079236080236081236082236083236084236085236086236087236088236089236090236091236092236093236094236095236096236097236098236099236100236101236102236103236104236105236106236107236108236109236110236111236112236113236114236115236116236117236118236119236120236121236122236123236124236125236126236127236128236129236130236131236132236133236134236135236136236137236138236139236140236141236142236143236144236145236146236147236148236149236150236151236152236153236154236155236156236157236158236159236160236161236162236163236164236165236166236167236168236169236170236171236172236173236174236175236176236177236178236179236180236181236182236183236184236185236186236187236188236189236190236191236192236193236194236195236196236197236198236199236200236201236202236203236204236205236206236207236208236209236210236211236212236213236214236215236216236217236218236219236220236221236222236223236224236225236226236227236228236229236230236231236232236233236234236235236236236237236238236239236240236241236242236243236244236245236246236247236248236249236250236251236252236253236254236255236256236257236258236259236260236261236262236263236264236265236266236267236268236269236270236271236272236273236274236275236276236277236278236279236280236281236282236283236284236285236286236287236288236289236290236291236292236293236294236295236296236297236298236299236300236301236302236303236304236305236306236307236308236309236310236311236312236313236314236315236316236317236318236319236320236321236322236323236324236325236326236327236328236329236330236331236332236333236334236335236336236337236338236339236340236341236342236343236344236345236346236347236348236349236350236351236352236353236354236355236356236357236358236359236360236361236362236363236364236365236366236367236368236369236370236371236372236373236374236375236376236377236378236379236380236381236382236383236384236385236386236387236388236389236390236391236392236393236394236395236396236397236398236399236400236401236402236403236404236405236406236407236408236409236410236411236412236413236414236415236416236417236418236419236420236421236422236423236424236425236426236427236428236429236430236431236432236433236434236435236436236437236438236439236440236441236442236443236444236445236446236447236448236449236450236451236452236453236454236455236456236457236458236459236460236461236462236463236464236465236466236467236468236469236470236471236472236473236474236475236476236477236478236479236480236481236482236483236484236485236486236487236488236489236490236491236492236493236494236495236496236497236498236499236500236501236502236503236504236505236506236507236508236509236510236511236512236513236514236515236516236517236518236519236520236521236522236523236524236525236526236527236528236529236530236531236532236533236534236535236536236537236538236539236540236541236542236543236544236545236546236547236548236549236550236551236552236553236554236555236556236557236558236559236560236561236562236563236564236565236566236567236568236569236570236571236572236573236574236575236576236577236578236579236580236581236582236583236584236585236586236587236588236589236590236591236592236593236594236595236596236597236598236599236600236601236602236603236604236605236606236607236608236609236610236611236612236613236614236615236616236617236618236619236620236621236622236623236624236625236626236627236628236629236630236631236632236633236634236635236636236637236638236639236640236641236642236643236644236645236646236647236648236649236650236651236652236653236654236655236656236657236658236659236660236661236662236663236664236665236666236667236668236669236670236671236672236673236674236675236676236677236678236679236680236681236682236683236684236685236686236687236688236689236690236691236692236693236694236695236696236697236698236699236700236701236702236703236704236705236706236707236708236709236710236711236712236713236714236715236716236717236718236719236720236721236722236723236724236725236726236727236728236729236730236731236732236733236734236735236736236737236738236739236740236741236742236743236744236745236746236747236748236749236750236751236752236753236754236755236756236757236758236759236760236761236762236763236764236765236766236767236768236769236770236771236772236773236774236775236776236777236778236779236780236781236782236783236784236785236786236787236788236789236790236791236792236793236794236795236796236797236798236799236800236801236802236803236804236805236806236807236808236809236810236811236812236813236814236815236816236817236818236819236820236821236822236823236824236825236826236827236828236829236830236831236832236833236834236835236836236837236838236839236840236841236842236843236844236845236846236847236848236849236850236851236852236853236854236855236856236857236858236859236860236861236862236863236864236865236866236867236868236869236870236871236872236873236874236875236876236877236878236879236880236881236882236883236884236885236886236887236888236889236890236891236892236893236894236895236896236897236898236899236900236901236902236903236904236905236906236907236908236909236910236911236912236913236914236915236916236917236918236919236920236921236922236923236924236925236926236927236928236929236930236931236932236933236934236935236936236937236938236939236940236941236942236943236944236945236946236947236948236949236950236951236952236953236954236955236956236957236958236959236960236961236962236963236964236965236966236967236968236969236970236971236972236973236974236975236976236977236978236979236980236981236982236983236984236985236986236987236988236989236990236991236992236993236994236995236996236997236998236999237000237001237002237003237004237005237006237007237008237009237010237011237012237013237014237015237016237017237018237019237020237021237022237023237024237025237026237027237028237029237030237031237032237033237034237035237036237037237038237039237040237041237042237043237044237045237046237047237048237049237050237051237052237053237054237055237056237057237058237059237060237061237062237063237064237065237066237067237068237069237070237071237072237073237074237075237076237077237078237079237080237081237082237083237084237085237086237087237088237089237090237091237092237093237094237095237096237097237098237099237100237101237102237103237104237105237106237107237108237109237110237111237112237113237114237115237116237117237118237119237120237121237122237123237124237125237126237127237128237129237130237131237132237133237134237135237136237137237138237139237140237141237142237143237144237145237146237147237148237149237150237151237152237153237154237155237156237157237158237159237160237161237162237163237164237165237166237167237168237169237170237171237172237173237174237175237176237177237178237179237180237181237182237183237184237185237186237187237188237189237190237191237192237193237194237195237196237197237198237199237200237201237202237203237204237205237206237207237208237209237210237211237212237213237214237215237216237217237218237219237220237221237222237223237224237225237226237227237228237229237230237231237232237233237234237235237236237237237238237239237240237241237242237243237244237245237246237247237248237249237250237251237252237253237254237255237256237257237258237259237260237261237262237263237264237265237266237267237268237269237270237271237272237273237274237275237276237277237278237279237280237281237282237283237284237285237286237287237288237289237290237291237292237293237294237295237296237297237298237299237300237301237302237303237304237305237306237307237308237309237310237311237312237313237314237315237316237317237318237319237320237321237322237323237324237325237326237327237328237329237330237331237332237333237334237335237336237337237338237339237340237341237342237343237344237345237346237347237348237349237350237351237352237353237354237355237356237357237358237359237360237361237362237363237364237365237366237367237368237369237370237371237372237373237374237375237376237377237378237379237380237381237382237383237384237385237386237387237388237389237390237391237392237393237394237395237396237397237398237399237400237401237402237403237404237405237406237407237408237409237410237411237412237413237414237415237416237417237418237419237420237421237422237423237424237425237426237427237428237429237430237431237432237433237434237435237436237437237438237439237440237441237442237443237444237445237446237447237448237449237450237451237452237453237454237455237456237457237458237459237460237461237462237463237464237465237466237467237468237469237470237471237472237473237474237475237476237477237478237479237480237481237482237483237484237485237486237487237488237489237490237491237492237493237494237495237496237497237498237499237500237501237502237503237504237505237506237507237508237509237510237511237512237513237514237515237516237517237518237519237520237521237522237523237524237525237526237527237528237529237530237531237532237533237534237535237536237537237538237539237540237541237542237543237544237545237546237547237548237549237550237551237552237553237554237555237556237557237558237559237560237561237562237563237564237565237566237567237568237569237570237571237572237573237574237575237576237577237578237579237580237581237582237583237584237585237586237587237588237589237590237591237592237593237594237595237596237597237598237599237600237601237602237603237604237605237606237607237608237609237610237611237612237613237614237615237616237617237618237619237620237621237622237623237624237625237626237627237628237629237630237631237632237633237634237635237636237637237638237639237640237641237642237643237644237645237646237647237648237649237650237651237652237653237654237655237656237657237658237659237660237661237662237663237664237665237666237667237668237669237670237671237672237673237674237675237676237677237678237679237680237681237682237683237684237685237686237687237688237689237690237691237692237693237694237695237696237697237698237699237700237701237702237703237704237705237706237707237708237709237710237711237712237713237714237715237716237717237718237719237720237721237722237723237724237725237726237727237728237729237730237731237732237733237734237735237736237737237738237739237740237741237742237743237744237745237746237747237748237749237750237751237752237753237754237755237756237757237758237759237760237761237762237763237764237765237766237767237768237769237770237771237772237773237774237775237776237777237778237779237780237781237782237783237784237785237786237787237788237789237790237791237792237793237794237795237796237797237798237799237800237801237802237803237804237805237806237807237808237809237810237811237812237813237814237815237816237817237818237819237820237821237822237823237824237825237826237827237828237829237830237831237832237833237834237835237836237837237838237839237840237841237842237843237844237845237846237847237848237849237850237851237852237853237854237855237856237857237858237859237860237861237862237863237864237865237866237867237868237869237870237871237872237873237874237875237876237877237878237879237880237881237882237883237884237885237886237887237888237889237890237891237892237893237894237895237896237897237898237899237900237901237902237903237904237905237906237907237908237909237910237911237912237913237914237915237916237917237918237919237920237921237922237923237924237925237926237927237928237929237930237931237932237933237934237935237936237937237938237939237940237941237942237943237944237945237946237947237948237949237950237951237952237953237954237955237956237957237958237959237960237961237962237963237964237965237966237967237968237969237970237971237972237973237974237975237976237977237978237979237980237981237982237983237984237985237986237987237988237989237990237991237992237993237994237995237996237997237998237999238000238001238002238003238004238005238006238007238008238009238010238011238012238013238014238015238016238017238018238019238020238021238022238023238024238025238026238027238028238029238030238031238032238033238034238035238036238037238038238039238040238041238042238043238044238045238046238047238048238049238050238051238052238053238054238055238056238057238058238059238060238061238062238063238064238065238066238067238068238069238070238071238072238073238074238075238076238077238078238079238080238081238082238083238084238085238086238087238088238089238090238091238092238093238094238095238096238097238098238099238100238101238102238103238104238105238106238107238108238109238110238111238112238113238114238115238116238117238118238119238120238121238122238123238124238125238126238127238128238129238130238131238132238133238134238135238136238137238138238139238140238141238142238143238144238145238146238147238148238149238150238151238152238153238154238155238156238157238158238159238160238161238162238163238164238165238166238167238168238169238170238171238172238173238174238175238176238177238178238179238180238181238182238183238184238185238186238187238188238189238190238191238192238193238194238195238196238197238198238199238200238201238202238203238204238205238206238207238208238209238210238211238212238213238214238215238216238217238218238219238220238221238222238223238224238225238226238227238228238229238230238231238232238233238234238235238236238237238238238239238240238241238242238243238244238245238246238247238248238249238250238251238252238253238254238255238256238257238258238259238260238261238262238263238264238265238266238267238268238269238270238271238272238273238274238275238276238277238278238279238280238281238282238283238284238285238286238287238288238289238290238291238292238293238294238295238296238297238298238299238300238301238302238303238304238305238306238307238308238309238310238311238312238313238314238315238316238317238318238319238320238321238322238323238324238325238326238327238328238329238330238331238332238333238334238335238336238337238338238339238340238341238342238343238344238345238346238347238348238349238350238351238352238353238354238355238356238357238358238359238360238361238362238363238364238365238366238367238368238369238370238371238372238373238374238375238376238377238378238379238380238381238382238383238384238385238386238387238388238389238390238391238392238393238394238395238396238397238398238399238400238401238402238403238404238405238406238407238408238409238410238411238412238413238414238415238416238417238418238419238420238421238422238423238424238425238426238427238428238429238430238431238432238433238434238435238436238437238438238439238440238441238442238443238444238445238446238447238448238449238450238451238452238453238454238455238456238457238458238459238460238461238462238463238464238465238466238467238468238469238470238471238472238473238474238475238476238477238478238479238480238481238482238483238484238485238486238487238488238489238490238491238492238493238494238495238496238497238498238499238500238501238502238503238504238505238506238507238508238509238510238511238512238513238514238515238516238517238518238519238520238521238522238523238524238525238526238527238528238529238530238531238532238533238534238535238536238537238538238539238540238541238542238543238544238545238546238547238548238549238550238551238552238553238554238555238556238557238558238559238560238561238562238563238564238565238566238567238568238569238570238571238572238573238574238575238576238577238578238579238580238581238582238583238584238585238586238587238588238589238590238591238592238593238594238595238596238597238598238599238600238601238602238603238604238605238606238607238608238609238610238611238612238613238614238615238616238617238618238619238620238621238622238623238624238625238626238627238628238629238630238631238632238633238634238635238636238637238638238639238640238641238642238643238644238645238646238647238648238649238650238651238652238653238654238655238656238657238658238659238660238661238662238663238664238665238666238667238668238669238670238671238672238673238674238675238676238677238678238679238680238681238682238683238684238685238686238687238688238689238690238691238692238693238694238695238696238697238698238699238700238701238702238703238704238705238706238707238708238709238710238711238712238713238714238715238716238717238718238719238720238721238722238723238724238725238726238727238728238729238730238731238732238733238734238735238736238737238738238739238740238741238742238743238744238745238746238747238748238749238750238751238752238753238754238755238756238757238758238759238760238761238762238763238764238765238766238767238768238769238770238771238772238773238774238775238776238777238778238779238780238781238782238783238784238785238786238787238788238789238790238791238792238793238794238795238796238797238798238799238800238801238802238803238804238805238806238807238808238809238810238811238812238813238814238815238816238817238818238819238820238821238822238823238824238825238826238827238828238829238830238831238832238833238834238835238836238837238838238839238840238841238842238843238844238845238846238847238848238849238850238851238852238853238854238855238856238857238858238859238860238861238862238863238864238865238866238867238868238869238870238871238872238873238874238875238876238877238878238879238880238881238882238883238884238885238886238887238888238889238890238891238892238893238894238895238896238897238898238899238900238901238902238903238904238905238906238907238908238909238910238911238912238913238914238915238916238917238918238919238920238921238922238923238924238925238926238927238928238929238930238931238932238933238934238935238936238937238938238939238940238941238942238943238944238945238946238947238948238949238950238951238952238953238954238955238956238957238958238959238960238961238962238963238964238965238966238967238968238969238970238971238972238973238974238975238976238977238978238979238980238981238982238983238984238985238986238987238988238989238990238991238992238993238994238995238996238997238998238999239000239001239002239003239004239005239006239007239008239009239010239011239012239013239014239015239016239017239018239019239020239021239022239023239024239025239026239027239028239029239030239031239032239033239034239035239036239037239038239039239040239041239042239043239044239045239046239047239048239049239050239051239052239053239054239055239056239057239058239059239060239061239062239063239064239065239066239067239068239069239070239071239072239073239074239075239076239077239078239079239080239081239082239083239084239085239086239087239088239089239090239091239092239093239094239095239096239097239098239099239100239101239102239103239104239105239106239107239108239109239110239111239112239113239114239115239116239117239118239119239120239121239122239123239124239125239126239127239128239129239130239131239132239133239134239135239136239137239138239139239140239141239142239143239144239145239146239147239148239149239150239151239152239153239154239155239156239157239158239159239160239161239162239163239164239165239166239167239168239169239170239171239172239173239174239175239176239177239178239179239180239181239182239183239184239185239186239187239188239189239190239191239192239193239194239195239196239197239198239199239200239201239202239203239204239205239206239207239208239209239210239211239212239213239214239215239216239217239218239219239220239221239222239223239224239225239226239227239228239229239230239231239232239233239234239235239236239237239238239239239240239241239242239243239244239245239246239247239248239249239250239251239252239253239254239255239256239257239258239259239260239261239262239263239264239265239266239267239268239269239270239271239272239273239274239275239276239277239278239279239280239281239282239283239284239285239286239287239288239289239290239291239292239293239294239295239296239297239298239299239300239301239302239303239304239305239306239307239308239309239310239311239312239313239314239315239316239317239318239319239320239321239322239323239324239325239326239327239328239329239330239331239332239333239334239335239336239337239338239339239340239341239342239343239344239345239346239347239348239349239350239351239352239353239354239355239356239357239358239359239360239361239362239363239364239365239366239367239368239369239370239371239372239373239374239375239376239377239378239379239380239381239382239383239384239385239386239387239388239389239390239391239392239393239394239395239396239397239398239399239400239401239402239403239404239405239406239407239408239409239410239411239412239413239414239415239416239417239418239419239420239421239422239423239424239425239426239427239428239429239430239431239432239433239434239435239436239437239438239439239440239441239442239443239444239445239446239447239448239449239450239451239452239453239454239455239456239457239458239459239460239461239462239463239464239465239466239467239468239469239470239471239472239473239474239475239476239477239478239479239480239481239482239483239484239485239486239487239488239489239490239491239492239493239494239495239496239497239498239499239500239501239502239503239504239505239506239507239508239509239510239511239512239513239514239515239516239517239518239519239520239521239522239523239524239525239526239527239528239529239530239531239532239533239534239535239536239537239538239539239540239541239542239543239544239545239546239547239548239549239550239551239552239553239554239555239556239557239558239559239560239561239562239563239564239565239566239567239568239569239570239571239572239573239574239575239576239577239578239579239580239581239582239583239584239585239586239587239588239589239590239591239592239593239594239595239596239597239598239599239600239601239602239603239604239605239606239607239608239609239610239611239612239613239614239615239616239617239618239619239620239621239622239623239624239625239626239627239628239629239630239631239632239633239634239635239636239637239638239639239640239641239642239643239644239645239646239647239648239649239650239651239652239653239654239655239656239657239658239659239660239661239662239663239664239665239666239667239668239669239670239671239672239673239674239675239676239677239678239679239680239681239682239683239684239685239686239687239688239689239690239691239692239693239694239695239696239697239698239699239700239701239702239703239704239705239706239707239708239709239710239711239712239713239714239715239716239717239718239719239720239721239722239723239724239725239726239727239728239729239730239731239732239733239734239735239736239737239738239739239740239741239742239743239744239745239746239747239748239749239750239751239752239753239754239755239756239757239758239759239760239761239762239763239764239765239766239767239768239769239770239771239772239773239774239775239776239777239778239779239780239781239782239783239784239785239786239787239788239789239790239791239792239793239794239795239796239797239798239799239800239801239802239803239804239805239806239807239808239809239810239811239812239813239814239815239816239817239818239819239820239821239822239823239824239825239826239827239828239829239830239831239832239833239834239835239836239837239838239839239840239841239842239843239844239845239846239847239848239849239850239851239852239853239854239855239856239857239858239859239860239861239862239863239864239865239866239867239868239869239870239871239872239873239874239875239876239877239878239879239880239881239882239883239884239885239886239887239888239889239890239891239892239893239894239895239896239897239898239899239900239901239902239903239904239905239906239907239908239909239910239911239912239913239914239915239916239917239918239919239920239921239922239923239924239925239926239927239928239929239930239931239932239933239934239935239936239937239938239939239940239941239942239943239944239945239946239947239948239949239950239951239952239953239954239955239956239957239958239959239960239961239962239963239964239965239966239967239968239969239970239971239972239973239974239975239976239977239978239979239980239981239982239983239984239985239986239987239988239989239990239991239992239993239994239995239996239997239998239999240000240001240002240003240004240005240006240007240008240009240010240011240012240013240014240015240016240017240018240019240020240021240022240023240024240025240026240027240028240029240030240031240032240033240034240035240036240037240038240039240040240041240042240043240044240045240046240047240048240049240050240051240052240053240054240055240056240057240058240059240060240061240062240063240064240065240066240067240068240069240070240071240072240073240074240075240076240077240078240079240080240081240082240083240084240085240086240087240088240089240090240091240092240093240094240095240096240097240098240099240100240101240102240103240104240105240106240107240108240109240110240111240112240113240114240115240116240117240118240119240120240121240122240123240124240125240126240127240128240129240130240131240132240133240134240135240136240137240138240139240140240141240142240143240144240145240146240147240148240149240150240151240152240153240154240155240156240157240158240159240160240161240162240163240164240165240166240167240168240169240170240171240172240173240174240175240176240177240178240179240180240181240182240183240184240185240186240187240188240189240190240191240192240193240194240195240196240197240198240199240200240201240202240203240204240205240206240207240208240209240210240211240212240213240214240215240216240217240218240219240220240221240222240223240224240225240226240227240228240229240230240231240232240233240234240235240236240237240238240239240240240241240242240243240244240245240246240247240248240249240250240251240252240253240254240255240256240257240258240259240260240261240262240263240264240265240266240267240268240269240270240271240272240273240274240275240276240277240278240279240280240281240282240283240284240285240286240287240288240289240290240291240292240293240294240295240296240297240298240299240300240301240302240303240304240305240306240307240308240309240310240311240312240313240314240315240316240317240318240319240320240321240322240323240324240325240326240327240328240329240330240331240332240333240334240335240336240337240338240339240340240341240342240343240344240345240346240347240348240349240350240351240352240353240354240355240356240357240358240359240360240361240362240363240364240365240366240367240368240369240370240371240372240373240374240375240376240377240378240379240380240381240382240383240384240385240386240387240388240389240390240391240392240393240394240395240396240397240398240399240400240401240402240403240404240405240406240407240408240409240410240411240412240413240414240415240416240417240418240419240420240421240422240423240424240425240426240427240428240429240430240431240432240433240434240435240436240437240438240439240440240441240442240443240444240445240446240447240448240449240450240451240452240453240454240455240456240457240458240459240460240461240462240463240464240465240466240467240468240469240470240471240472240473240474240475240476240477240478240479240480240481240482240483240484240485240486240487240488240489240490240491240492240493240494240495240496240497240498240499240500240501240502240503240504240505240506240507240508240509240510240511240512240513240514240515240516240517240518240519240520240521240522240523240524240525240526240527240528240529240530240531240532240533240534240535240536240537240538240539240540240541240542240543240544240545240546240547240548240549240550240551240552240553240554240555240556240557240558240559240560240561240562240563240564240565240566240567240568240569240570240571240572240573240574240575240576240577240578240579240580240581240582240583240584240585240586240587240588240589240590240591240592240593240594240595240596240597240598240599240600240601240602240603240604240605240606240607240608240609240610240611240612240613240614240615240616240617240618240619240620240621240622240623240624240625240626240627240628240629240630240631240632240633240634240635240636240637240638240639240640240641240642240643240644240645240646240647240648240649240650240651240652240653240654240655240656240657240658240659240660240661240662240663240664240665240666240667240668240669240670240671240672240673240674240675240676240677240678240679240680240681240682240683240684240685240686240687240688240689240690240691240692240693240694240695240696240697240698240699240700240701240702240703240704240705240706240707240708240709240710240711240712240713240714240715240716240717240718240719240720240721240722240723240724240725240726240727240728240729240730240731240732240733240734240735240736240737240738240739240740240741240742240743240744240745240746240747240748240749240750240751240752240753240754240755240756240757240758240759240760240761240762240763240764240765240766240767240768240769240770240771240772240773240774240775240776240777240778240779240780240781240782240783240784240785240786240787240788240789240790240791240792240793240794240795240796240797240798240799240800240801240802240803240804240805240806240807240808240809240810240811240812240813240814240815240816240817240818240819240820240821240822240823240824240825240826240827240828240829240830240831240832240833240834240835240836240837240838240839240840240841240842240843240844240845240846240847240848240849240850240851240852240853240854240855240856240857240858240859240860240861240862240863240864240865240866240867240868240869240870240871240872240873240874240875240876240877240878240879240880240881240882240883240884240885240886240887240888240889240890240891240892240893240894240895240896240897240898240899240900240901240902240903240904240905240906240907240908240909240910240911240912240913240914240915240916240917240918240919240920240921240922240923240924240925240926240927240928240929240930240931240932240933240934240935240936240937240938240939240940240941240942240943240944240945240946240947240948240949240950240951240952240953240954240955240956240957240958240959240960240961240962240963240964240965240966240967240968240969240970240971240972240973240974240975240976240977240978240979240980240981240982240983240984240985240986240987240988240989240990240991240992240993240994240995240996240997240998240999241000241001241002241003241004241005241006241007241008241009241010241011241012241013241014241015241016241017241018241019241020241021241022241023241024241025241026241027241028241029241030241031241032241033241034241035241036241037241038241039241040241041241042241043241044241045241046241047241048241049241050241051241052241053241054241055241056241057241058241059241060241061241062241063241064241065241066241067241068241069241070241071241072241073241074241075241076241077241078241079241080241081241082241083241084241085241086241087241088241089241090241091241092241093241094241095241096241097241098241099241100241101241102241103241104241105241106241107241108241109241110241111241112241113241114241115241116241117241118241119241120241121241122241123241124241125241126241127241128241129241130241131241132241133241134241135241136241137241138241139241140241141241142241143241144241145241146241147241148241149241150241151241152241153241154241155241156241157241158241159241160241161241162241163241164241165241166241167241168241169241170241171241172241173241174241175241176241177241178241179241180241181241182241183241184241185241186241187241188241189241190241191241192241193241194241195241196241197241198241199241200241201241202241203241204241205241206241207241208241209241210241211241212241213241214241215241216241217241218241219241220241221241222241223241224241225241226241227241228241229241230241231241232241233241234241235241236241237241238241239241240241241241242241243241244241245241246241247241248241249241250241251241252241253241254241255241256241257241258241259241260241261241262241263241264241265241266241267241268241269241270241271241272241273241274241275241276241277241278241279241280241281241282241283241284241285241286241287241288241289241290241291241292241293241294241295241296241297241298241299241300241301241302241303241304241305241306241307241308241309241310241311241312241313241314241315241316241317241318241319241320241321241322241323241324241325241326241327241328241329241330241331241332241333241334241335241336241337241338241339241340241341241342241343241344241345241346241347241348241349241350241351241352241353241354241355241356241357241358241359241360241361241362241363241364241365241366241367241368241369241370241371241372241373241374241375241376241377241378241379241380241381241382241383241384241385241386241387241388241389241390241391241392241393241394241395241396241397241398241399241400241401241402241403241404241405241406241407241408241409241410241411241412241413241414241415241416241417241418241419241420241421241422241423241424241425241426241427241428241429241430241431241432241433241434241435241436241437241438241439241440241441241442241443241444241445241446241447241448241449241450241451241452241453241454241455241456241457241458241459241460241461241462241463241464241465241466241467241468241469241470241471241472241473241474241475241476241477241478241479241480241481241482241483241484241485241486241487241488241489241490241491241492241493241494241495241496241497241498241499241500241501241502241503241504241505241506241507241508241509241510241511241512241513241514241515241516241517241518241519241520241521241522241523241524241525241526241527241528241529241530241531241532241533241534241535241536241537241538241539241540241541241542241543241544241545241546241547241548241549241550241551241552241553241554241555241556241557241558241559241560241561241562241563241564241565241566241567241568241569241570241571241572241573241574241575241576241577241578241579241580241581241582241583241584241585241586241587241588241589241590241591241592241593241594241595241596241597241598241599241600241601241602241603241604241605241606241607241608241609241610241611241612241613241614241615241616241617241618241619241620241621241622241623241624241625241626241627241628241629241630241631241632241633241634241635241636241637241638241639241640241641241642241643241644241645241646241647241648241649241650241651241652241653241654241655241656241657241658241659241660241661241662241663241664241665241666241667241668241669241670241671241672241673241674241675241676241677241678241679241680241681241682241683241684241685241686241687241688241689241690241691241692241693241694241695241696241697241698241699241700241701241702241703241704241705241706241707241708241709241710241711241712241713241714241715241716241717241718241719241720241721241722241723241724241725241726241727241728241729241730241731241732241733241734241735241736241737241738241739241740241741241742241743241744241745241746241747241748241749241750241751241752241753241754241755241756241757241758241759241760241761241762241763241764241765241766241767241768241769241770241771241772241773241774241775241776241777241778241779241780241781241782241783241784241785241786241787241788241789241790241791241792241793241794241795241796241797241798241799241800241801241802241803241804241805241806241807241808241809241810241811241812241813241814241815241816241817241818241819241820241821241822241823241824241825241826241827241828241829241830241831241832241833241834241835241836241837241838241839241840241841241842241843241844241845241846241847241848241849241850241851241852241853241854241855241856241857241858241859241860241861241862241863241864241865241866241867241868241869241870241871241872241873241874241875241876241877241878241879241880241881241882241883241884241885241886241887241888241889241890241891241892241893241894241895241896241897241898241899241900241901241902241903241904241905241906241907241908241909241910241911241912241913241914241915241916241917241918241919241920241921241922241923241924241925241926241927241928241929241930241931241932241933241934241935241936241937241938241939241940241941241942241943241944241945241946241947241948241949241950241951241952241953241954241955241956241957241958241959241960241961241962241963241964241965241966241967241968241969241970241971241972241973241974241975241976241977241978241979241980241981241982241983241984241985241986241987241988241989241990241991241992241993241994241995241996241997241998241999242000242001242002242003242004242005242006242007242008242009242010242011242012242013242014242015242016242017242018242019242020242021242022242023242024242025242026242027242028242029242030242031242032242033242034242035242036242037242038242039242040242041242042242043242044242045242046242047242048242049242050242051242052242053242054242055242056242057242058242059242060242061242062242063242064242065242066242067242068242069242070242071242072242073242074242075242076242077242078242079242080242081242082242083242084242085242086242087242088242089242090242091242092242093242094242095242096242097242098242099242100242101242102242103242104242105242106242107242108242109242110242111242112242113242114242115242116242117242118242119242120242121242122242123242124242125242126242127242128242129242130242131242132242133242134242135242136242137242138242139242140242141242142242143242144242145242146242147242148242149242150242151242152242153242154242155242156242157242158242159242160242161242162242163242164242165242166242167242168242169242170242171242172242173242174242175242176242177242178242179242180242181242182242183242184242185242186242187242188242189242190242191242192242193242194242195242196242197242198242199242200242201242202242203242204242205242206242207242208242209242210242211242212242213242214242215242216242217242218242219242220242221242222242223242224242225242226242227242228242229242230242231242232242233242234242235242236242237242238242239242240242241242242242243242244242245242246242247242248242249242250242251242252242253242254242255242256242257242258242259242260242261242262242263242264242265242266242267242268242269242270242271242272242273242274242275242276242277242278242279242280242281242282242283242284242285242286242287242288242289242290242291242292242293242294242295242296242297242298242299242300242301242302242303242304242305242306242307242308242309242310242311242312242313242314242315242316242317242318242319242320242321242322242323242324242325242326242327242328242329242330242331242332242333242334242335242336242337242338242339242340242341242342242343242344242345242346242347242348242349242350242351242352242353242354242355242356242357242358242359242360242361242362242363242364242365242366242367242368242369242370242371242372242373242374242375242376242377242378242379242380242381242382242383242384242385242386242387242388242389242390242391242392242393242394242395242396242397242398242399242400242401242402242403242404242405242406242407242408242409242410242411242412242413242414242415242416242417242418242419242420242421242422242423242424242425242426242427242428242429242430242431242432242433242434242435242436242437242438242439242440242441242442242443242444242445242446242447242448242449242450242451242452242453242454242455242456242457242458242459242460242461242462242463242464242465242466242467242468242469242470242471242472242473242474242475242476242477242478242479242480242481242482242483242484242485242486242487242488242489242490242491242492242493242494242495242496242497242498242499242500242501242502242503242504242505242506242507242508242509242510242511242512242513242514242515242516242517242518242519242520242521242522242523242524242525242526242527242528242529242530242531242532242533242534242535242536242537242538242539242540242541242542242543242544242545242546242547242548242549242550242551242552242553242554242555242556242557242558242559242560242561242562242563242564242565242566242567242568242569242570242571242572242573242574242575242576242577242578242579242580242581242582242583242584242585242586242587242588242589242590242591242592242593242594242595242596242597242598242599242600242601242602242603242604242605242606242607242608242609242610242611242612242613242614242615242616242617242618242619242620242621242622242623242624242625242626242627242628242629242630242631242632242633242634242635242636242637242638242639242640242641242642242643242644242645242646242647242648242649242650242651242652242653242654242655242656242657242658242659242660242661242662242663242664242665242666242667242668242669242670242671242672242673242674242675242676242677242678242679242680242681242682242683242684242685242686242687242688242689242690242691242692242693242694242695242696242697242698242699242700242701242702242703242704242705242706242707242708242709242710242711242712242713242714242715242716242717242718242719242720242721242722242723242724242725242726242727242728242729242730242731242732242733242734242735242736242737242738242739242740242741242742242743242744242745242746242747242748242749242750242751242752242753242754242755242756242757242758242759242760242761242762242763242764242765242766242767242768242769242770242771242772242773242774242775242776242777242778242779242780242781242782242783242784242785242786242787242788242789242790242791242792242793242794242795242796242797242798242799242800242801242802242803242804242805242806242807242808242809242810242811242812242813242814242815242816242817242818242819242820242821242822242823242824242825242826242827242828242829242830242831242832242833242834242835242836242837242838242839242840242841242842242843242844242845242846242847242848242849242850242851242852242853242854242855242856242857242858242859242860242861242862242863242864242865242866242867242868242869242870242871242872242873242874242875242876242877242878242879242880242881242882242883242884242885242886242887242888242889242890242891242892242893242894242895242896242897242898242899242900242901242902242903242904242905242906242907242908242909242910242911242912242913242914242915242916242917242918242919242920242921242922242923242924242925242926242927242928242929242930242931242932242933242934242935242936242937242938242939242940242941242942242943242944242945242946242947242948242949242950242951242952242953242954242955242956242957242958242959242960242961242962242963242964242965242966242967242968242969242970242971242972242973242974242975242976242977242978242979242980242981242982242983242984242985242986242987242988242989242990242991242992242993242994242995242996242997242998242999243000243001243002243003243004243005243006243007243008243009243010243011243012243013243014243015243016243017243018243019243020243021243022243023243024243025243026243027243028243029243030243031243032243033243034243035243036243037243038243039243040243041243042243043243044243045243046243047243048243049243050243051243052243053243054243055243056243057243058243059243060243061243062243063243064243065243066243067243068243069243070243071243072243073243074243075243076243077243078243079243080243081243082243083243084243085243086243087243088243089243090243091243092243093243094243095243096243097243098243099243100243101243102243103243104243105243106243107243108243109243110243111243112243113243114243115243116243117243118243119243120243121243122243123243124243125243126243127243128243129243130243131243132243133243134243135243136243137243138243139243140243141243142243143243144243145243146243147243148243149243150243151243152243153243154243155243156243157243158243159243160243161243162243163243164243165243166243167243168243169243170243171243172243173243174243175243176243177243178243179243180243181243182243183243184243185243186243187243188243189243190243191243192243193243194243195243196243197243198243199243200243201243202243203243204243205243206243207243208243209243210243211243212243213243214243215243216243217243218243219243220243221243222243223243224243225243226243227243228243229243230243231243232243233243234243235243236243237243238243239243240243241243242243243243244243245243246243247243248243249243250243251243252243253243254243255243256243257243258243259243260243261243262243263243264243265243266243267243268243269243270243271243272243273243274243275243276243277243278243279243280243281243282243283243284243285243286243287243288243289243290243291243292243293243294243295243296243297243298243299243300243301243302243303243304243305243306243307243308243309243310243311243312243313243314243315243316243317243318243319243320243321243322243323243324243325243326243327243328243329243330243331243332243333243334243335243336243337243338243339243340243341243342243343243344243345243346243347243348243349243350243351243352243353243354243355243356243357243358243359243360243361243362243363243364243365243366243367243368243369243370243371243372243373243374243375243376243377243378243379243380243381243382243383243384243385243386243387243388243389243390243391243392243393243394243395243396243397243398243399243400243401243402243403243404243405243406243407243408243409243410243411243412243413243414243415243416243417243418243419243420243421243422243423243424243425243426243427243428243429243430243431243432243433243434243435243436243437243438243439243440243441243442243443243444243445243446243447243448243449243450243451243452243453243454243455243456243457243458243459243460243461243462243463243464243465243466243467243468243469243470243471243472243473243474243475243476243477243478243479243480243481243482243483243484243485243486243487243488243489243490243491243492243493243494243495243496243497243498243499243500243501243502243503243504243505243506243507243508243509243510243511243512243513243514243515243516243517243518243519243520243521243522243523243524243525243526243527243528243529243530243531243532243533243534243535243536243537243538243539243540243541243542243543243544243545243546243547243548243549243550243551243552243553243554243555243556243557243558243559243560243561243562243563243564243565243566243567243568243569243570243571243572243573243574243575243576243577243578243579243580243581243582243583243584243585243586243587243588243589243590243591243592243593243594243595243596243597243598243599243600243601243602243603243604243605243606243607243608243609243610243611243612243613243614243615243616243617243618243619243620243621243622243623243624243625243626243627243628243629243630243631243632243633243634243635243636243637243638243639243640243641243642243643243644243645243646243647243648243649243650243651243652243653243654243655243656243657243658243659243660243661243662243663243664243665243666243667243668243669243670243671243672243673243674243675243676243677243678243679243680243681243682243683243684243685243686243687243688243689243690243691243692243693243694243695243696243697243698243699243700243701243702243703243704243705243706243707243708243709243710243711243712243713243714243715243716243717243718243719243720243721243722243723243724243725243726243727243728243729243730243731243732243733243734243735243736243737243738243739243740243741243742243743243744243745243746243747243748243749243750243751243752243753243754243755243756243757243758243759243760243761243762243763243764243765243766243767243768243769243770243771243772243773243774243775243776243777243778243779243780243781243782243783243784243785243786243787243788243789243790243791243792243793243794243795243796243797243798243799243800243801243802243803243804243805243806243807243808243809243810243811243812243813243814243815243816243817243818243819243820243821243822243823243824243825243826243827243828243829243830243831243832243833243834243835243836243837243838243839243840243841243842243843243844243845243846243847243848243849243850243851243852243853243854243855243856243857243858243859243860243861243862243863243864243865243866243867243868243869243870243871243872243873243874243875243876243877243878243879243880243881243882243883243884243885243886243887243888243889243890243891243892243893243894243895243896243897243898243899243900243901243902243903243904243905243906243907243908243909243910243911243912243913243914243915243916243917243918243919243920243921243922243923243924243925243926243927243928243929243930243931243932243933243934243935243936243937243938243939243940243941243942243943243944243945243946243947243948243949243950243951243952243953243954243955243956243957243958243959243960243961243962243963243964243965243966243967243968243969243970243971243972243973243974243975243976243977243978243979243980243981243982243983243984243985243986243987243988243989243990243991243992243993243994243995243996243997243998243999244000244001244002244003244004244005244006244007244008244009244010244011244012244013244014244015244016244017244018244019244020244021244022244023244024244025244026244027244028244029244030244031244032244033244034244035244036244037244038244039244040244041244042244043244044244045244046244047244048244049244050244051244052244053244054244055244056244057244058244059244060244061244062244063244064244065244066244067244068244069244070244071244072244073244074244075244076244077244078244079244080244081244082244083244084244085244086244087244088244089244090244091244092244093244094244095244096244097244098244099244100244101244102244103244104244105244106244107244108244109244110244111244112244113244114244115244116244117244118244119244120244121244122244123244124244125244126244127244128244129244130244131244132244133244134244135244136244137244138244139244140244141244142244143244144244145244146244147244148244149244150244151244152244153244154244155244156244157244158244159244160244161244162244163244164244165244166244167244168244169244170244171244172244173244174244175244176244177244178244179244180244181244182244183244184244185244186244187244188244189244190244191244192244193244194244195244196244197244198244199244200244201244202244203244204244205244206244207244208244209244210244211244212244213244214244215244216244217244218244219244220244221244222244223244224244225244226244227244228244229244230244231244232244233244234244235244236244237244238244239244240244241244242244243244244244245244246244247244248244249244250244251244252244253244254244255244256244257244258244259244260244261244262244263244264244265244266244267244268244269244270244271244272244273244274244275244276244277244278244279244280244281244282244283244284244285244286244287244288244289244290244291244292244293244294244295244296244297244298244299244300244301244302244303244304244305244306244307244308244309244310244311244312244313244314244315244316244317244318244319244320244321244322244323244324244325244326244327244328244329244330244331244332244333244334244335244336244337244338244339244340244341244342244343244344244345244346244347244348244349244350244351244352244353244354244355244356244357244358244359244360244361244362244363244364244365244366244367244368244369244370244371244372244373244374244375244376244377244378244379244380244381244382244383244384244385244386244387244388244389244390244391244392244393244394244395244396244397244398244399244400244401244402244403244404244405244406244407244408244409244410244411244412244413244414244415244416244417244418244419244420244421244422244423244424244425244426244427244428244429244430244431244432244433244434244435244436244437244438244439244440244441244442244443244444244445244446244447244448244449244450244451244452244453244454244455244456244457244458244459244460244461244462244463244464244465244466244467244468244469244470244471244472244473244474244475244476244477244478244479244480244481244482244483244484244485244486244487244488244489244490244491244492244493244494244495244496244497244498244499244500244501244502244503244504244505244506244507244508244509244510244511244512244513244514244515244516244517244518244519244520244521244522244523244524244525244526244527244528244529244530244531244532244533244534244535244536244537244538244539244540244541244542244543244544244545244546244547244548244549244550244551244552244553244554244555244556244557244558244559244560244561244562244563244564244565244566244567244568244569244570244571244572244573244574244575244576244577244578244579244580244581244582244583244584244585244586244587244588244589244590244591244592244593244594244595244596244597244598244599244600244601244602244603244604244605244606244607244608244609244610244611244612244613244614244615244616244617244618244619244620244621244622244623244624244625244626244627244628244629244630244631244632244633244634244635244636244637244638244639244640244641244642244643244644244645244646244647244648244649244650244651244652244653244654244655244656244657244658244659244660244661244662244663244664244665244666244667244668244669244670244671244672244673244674244675244676244677244678244679244680244681244682244683244684244685244686244687244688244689244690244691244692244693244694244695244696244697244698244699244700244701244702244703244704244705244706244707244708244709244710244711244712244713244714244715244716244717244718244719244720244721244722244723244724244725244726244727244728244729244730244731244732244733244734244735244736244737244738244739244740244741244742244743244744244745244746244747244748244749244750244751244752244753244754244755244756244757244758244759244760244761244762244763244764244765244766244767244768244769244770244771244772244773244774244775244776244777244778244779244780244781244782244783244784244785244786244787244788244789244790244791244792244793244794244795244796244797244798244799244800244801244802244803244804244805244806244807244808244809244810244811244812244813244814244815244816244817244818244819244820244821244822244823244824244825244826244827244828244829244830244831244832244833244834244835244836244837244838244839244840244841244842244843244844244845244846244847244848244849244850244851244852244853244854244855244856244857244858244859244860244861244862244863244864244865244866244867244868244869244870244871244872244873244874244875244876244877244878244879244880244881244882244883244884244885244886244887244888244889244890244891244892244893244894244895244896244897244898244899244900244901244902244903244904244905244906244907244908244909244910244911244912244913244914244915244916244917244918244919244920244921244922244923244924244925244926244927244928244929244930244931244932244933244934244935244936244937244938244939244940244941244942244943244944244945244946244947244948244949244950244951244952244953244954244955244956244957244958244959244960244961244962244963244964244965244966244967244968244969244970244971244972244973244974244975244976244977244978244979244980244981244982244983244984244985244986244987244988244989244990244991244992244993244994244995244996244997244998244999245000245001245002245003245004245005245006245007245008245009245010245011245012245013245014245015245016245017245018245019245020245021245022245023245024245025245026245027245028245029245030245031245032245033245034245035245036245037245038245039245040245041245042245043245044245045245046245047245048245049245050245051245052245053245054245055245056245057245058245059245060245061245062245063245064245065245066245067245068245069245070245071245072245073245074245075245076245077245078245079245080245081245082245083245084245085245086245087245088245089245090245091245092245093245094245095245096245097245098245099245100245101245102245103245104245105245106245107245108245109245110245111245112245113245114245115245116245117245118245119245120245121245122245123245124245125245126245127245128245129245130245131245132245133245134245135245136245137245138245139245140245141245142245143245144245145245146245147245148245149245150245151245152245153245154245155245156245157245158245159245160245161245162245163245164245165245166245167245168245169245170245171245172245173245174245175245176245177245178245179245180245181245182245183245184245185245186245187245188245189245190245191245192245193245194245195245196245197245198245199245200245201245202245203245204245205245206245207245208245209245210245211245212245213245214245215245216245217245218245219245220245221245222245223245224245225245226245227245228245229245230245231245232245233245234245235245236245237245238245239245240245241245242245243245244245245245246245247245248245249245250245251245252245253245254245255245256245257245258245259245260245261245262245263245264245265245266245267245268245269245270245271245272245273245274245275245276245277245278245279245280245281245282245283245284245285245286245287245288245289245290245291245292245293245294245295245296245297245298245299245300245301245302245303245304245305245306245307245308245309245310245311245312245313245314245315245316245317245318245319245320245321245322245323245324245325245326245327245328245329245330245331245332245333245334245335245336245337245338245339245340245341245342245343245344245345245346245347245348245349245350245351245352245353245354245355245356245357245358245359245360245361245362245363245364245365245366245367245368245369245370245371245372245373245374245375245376245377245378245379245380245381245382245383245384245385245386245387245388245389245390245391245392245393245394245395245396245397245398245399245400245401245402245403245404245405245406245407245408245409245410245411245412245413245414245415245416245417245418245419245420245421245422245423245424245425245426245427245428245429245430245431245432245433245434245435245436245437245438245439245440245441245442245443245444245445245446245447245448245449245450245451245452245453245454245455245456245457245458245459245460245461245462245463245464245465245466245467245468245469245470245471245472245473245474245475245476245477245478245479245480245481245482245483245484245485245486245487245488245489245490245491245492245493245494245495245496245497245498245499245500245501245502245503245504245505245506245507245508245509245510245511245512245513245514245515245516245517245518245519245520245521245522245523245524245525245526245527245528245529245530245531245532245533245534245535245536245537245538245539245540245541245542245543245544245545245546245547245548245549245550245551245552245553245554245555245556245557245558245559245560245561245562245563245564245565245566245567245568245569245570245571245572245573245574245575245576245577245578245579245580245581245582245583245584245585245586245587245588245589245590245591245592245593245594245595245596245597245598245599245600245601245602245603245604245605245606245607245608245609245610245611245612245613245614245615245616245617245618245619245620245621245622245623245624245625245626245627245628245629245630245631245632245633245634245635245636245637245638245639245640245641245642245643245644245645245646245647245648245649245650245651245652245653245654245655245656245657245658245659245660245661245662245663245664245665245666245667245668245669245670245671245672245673245674245675245676245677245678245679245680245681245682245683245684245685245686245687245688245689245690245691245692245693245694245695245696245697245698245699245700245701245702245703245704245705245706245707245708245709245710245711245712245713245714245715245716245717245718245719245720245721245722245723245724245725245726245727245728245729245730245731245732245733245734245735245736245737245738245739245740245741245742245743245744245745245746245747245748245749245750245751245752245753245754245755245756245757245758245759245760245761245762245763245764245765245766245767245768245769245770245771245772245773245774245775245776245777245778245779245780245781245782245783245784245785245786245787245788245789245790245791245792245793245794245795245796245797245798245799245800245801245802245803245804245805245806245807245808245809245810245811245812245813245814245815245816245817245818245819245820245821245822245823245824245825245826245827245828245829245830245831245832245833245834245835245836245837245838245839245840245841245842245843245844245845245846245847245848245849245850245851245852245853245854245855245856245857245858245859245860245861245862245863245864245865245866245867245868245869245870245871245872245873245874245875245876245877245878245879245880245881245882245883245884245885245886245887245888245889245890245891245892245893245894245895245896245897245898245899245900245901245902245903245904245905245906245907245908245909245910245911245912245913245914245915245916245917245918245919245920245921245922245923245924245925245926245927245928245929245930245931245932245933245934245935245936245937245938245939245940245941245942245943245944245945245946245947245948245949245950245951245952245953245954245955245956245957245958245959245960245961245962245963245964245965245966245967245968245969245970245971245972245973245974245975245976245977245978245979245980245981245982245983245984245985245986245987245988245989245990245991245992245993245994245995245996245997245998245999246000246001246002246003246004246005246006246007246008246009246010246011246012246013246014246015246016246017246018246019246020246021246022246023246024246025246026246027246028246029246030246031246032246033246034246035246036246037246038246039246040246041246042246043246044246045246046246047246048246049246050246051246052246053246054246055246056246057246058246059246060246061246062246063246064246065246066246067246068246069246070246071246072246073246074246075246076246077246078246079246080246081246082246083246084246085246086246087246088246089246090246091246092246093246094246095246096246097246098246099246100246101246102246103246104246105246106246107246108246109246110246111246112246113246114246115246116246117246118246119246120246121246122246123246124246125246126246127246128246129246130246131246132246133246134246135246136246137246138246139246140246141246142246143246144246145246146246147246148246149246150246151246152246153246154246155246156246157246158246159246160246161246162246163246164246165246166246167246168246169246170246171246172246173246174246175246176246177246178246179246180246181246182246183246184246185246186246187246188246189246190246191246192246193246194246195246196246197246198246199246200246201246202246203246204246205246206246207246208246209246210246211246212246213246214246215246216246217246218246219246220246221246222246223246224246225246226246227246228246229246230246231246232246233246234246235246236246237246238246239246240246241246242246243246244246245246246246247246248246249246250246251246252246253246254246255246256246257246258246259246260246261246262246263246264246265246266246267246268246269246270246271246272246273246274246275246276246277246278246279246280246281246282246283246284246285246286246287246288246289246290246291246292246293246294246295246296246297246298246299246300246301246302246303246304246305246306246307246308246309246310246311246312246313246314246315246316246317246318246319246320246321246322246323246324246325246326246327246328246329246330246331246332246333246334246335246336246337246338246339246340246341246342246343246344246345246346246347246348246349246350246351246352246353246354246355246356246357246358246359246360246361246362246363246364246365246366246367246368246369246370246371246372246373246374246375246376246377246378246379246380246381246382246383246384246385246386246387246388246389246390246391246392246393246394246395246396246397246398246399246400246401246402246403246404246405246406246407246408246409246410246411246412246413246414246415246416246417246418246419246420246421246422246423246424246425246426246427246428246429246430246431246432246433246434246435246436246437246438246439246440246441246442246443246444246445246446246447246448246449246450246451246452246453246454246455246456246457246458246459246460246461246462246463246464246465246466246467246468246469246470246471246472246473246474246475246476246477246478246479246480246481246482246483246484246485246486246487246488246489246490246491246492246493246494246495246496246497246498246499246500246501246502246503246504246505246506246507246508246509246510246511246512246513246514246515246516246517246518246519246520246521246522246523246524246525246526246527246528246529246530246531246532246533246534246535246536246537246538246539246540246541246542246543246544246545246546246547246548246549246550246551246552246553246554246555246556246557246558246559246560246561246562246563246564246565246566246567246568246569246570246571246572246573246574246575246576246577246578246579246580246581246582246583246584246585246586246587246588246589246590246591246592246593246594246595246596246597246598246599246600246601246602246603246604246605246606246607246608246609246610246611246612246613246614246615246616246617246618246619246620246621246622246623246624246625246626246627246628246629246630246631246632246633246634246635246636246637246638246639246640246641246642246643246644246645246646246647246648246649246650246651246652246653246654246655246656246657246658246659246660246661246662246663246664246665246666246667246668246669246670246671246672246673246674246675246676246677246678246679246680246681246682246683246684246685246686246687246688246689246690246691246692246693246694246695246696246697246698246699246700246701246702246703246704246705246706246707246708246709246710246711246712246713246714246715246716246717246718246719246720246721246722246723246724246725246726246727246728246729246730246731246732246733246734246735246736246737246738246739246740246741246742246743246744246745246746246747246748246749246750246751246752246753246754246755246756246757246758246759246760246761246762246763246764246765246766246767246768246769246770246771246772246773246774246775246776246777246778246779246780246781246782246783246784246785246786246787246788246789246790246791246792246793246794246795246796246797246798246799246800246801246802246803246804246805246806246807246808246809246810246811246812246813246814246815246816246817246818246819246820246821246822246823246824246825246826246827246828246829246830246831246832246833246834246835246836246837246838246839246840246841246842246843246844246845246846246847246848246849246850246851246852246853246854246855246856246857246858246859246860246861246862246863246864246865246866246867246868246869246870246871246872246873246874246875246876246877246878246879246880246881246882246883246884246885246886246887246888246889246890246891246892246893246894246895246896246897246898246899246900246901246902246903246904246905246906246907246908246909246910246911246912246913246914246915246916246917246918246919246920246921246922246923246924246925246926246927246928246929246930246931246932246933246934246935246936246937246938246939246940246941246942246943246944246945246946246947246948246949246950246951246952246953246954246955246956246957246958246959246960246961246962246963246964246965246966246967246968246969246970246971246972246973246974246975246976246977246978246979246980246981246982246983246984246985246986246987246988246989246990246991246992246993246994246995246996246997246998246999247000247001247002247003247004247005247006247007247008247009247010247011247012247013247014247015247016247017247018247019247020247021247022247023247024247025247026247027247028247029247030247031247032247033247034247035247036247037247038247039247040247041247042247043247044247045247046247047247048247049247050247051247052247053247054247055247056247057247058247059247060247061247062247063247064247065247066247067247068247069247070247071247072247073247074247075247076247077247078247079247080247081247082247083247084247085247086247087247088247089247090247091247092247093247094247095247096247097247098247099247100247101247102247103247104247105247106247107247108247109247110247111247112247113247114247115247116247117247118247119247120247121247122247123247124247125247126247127247128247129247130247131247132247133247134247135247136247137247138247139247140247141247142247143247144247145247146247147247148247149247150247151247152247153247154247155247156247157247158247159247160247161247162247163247164247165247166247167247168247169247170247171247172247173247174247175247176247177247178247179247180247181247182247183247184247185247186247187247188247189247190247191247192247193247194247195247196247197247198247199247200247201247202247203247204247205247206247207247208247209247210247211247212247213247214247215247216247217247218247219247220247221247222247223247224247225247226247227247228247229247230247231247232247233247234247235247236247237247238247239247240247241247242247243247244247245247246247247247248247249247250247251247252247253247254247255247256247257247258247259247260247261247262247263247264247265247266247267247268247269247270247271247272247273247274247275247276247277247278247279247280247281247282247283247284247285247286247287247288247289247290247291247292247293247294247295247296247297247298247299247300247301247302247303247304247305247306247307247308247309247310247311247312247313247314247315247316247317247318247319247320247321247322247323247324247325247326247327247328247329247330247331247332247333247334247335247336247337247338247339247340247341247342247343247344247345247346247347247348247349247350247351247352247353247354247355247356247357247358247359247360247361247362247363247364247365247366247367247368247369247370247371247372247373247374247375247376247377247378247379247380247381247382247383247384247385247386247387247388247389247390247391247392247393247394247395247396247397247398247399247400247401247402247403247404247405247406247407247408247409247410247411247412247413247414247415247416247417247418247419247420247421247422247423247424247425247426247427247428247429247430247431247432247433247434247435247436247437247438247439247440247441247442247443247444247445247446247447247448247449247450247451247452247453247454247455247456247457247458247459247460247461247462247463247464247465247466247467247468247469247470247471247472247473247474247475247476247477247478247479247480247481247482247483247484247485247486247487247488247489247490247491247492247493247494247495247496247497247498247499247500247501247502247503247504247505247506247507247508247509247510247511247512247513247514247515247516247517247518247519247520247521247522247523247524247525247526247527247528247529247530247531247532247533247534247535247536247537247538247539247540247541247542247543247544247545247546247547247548247549247550247551247552247553247554247555247556247557247558247559247560247561247562247563247564247565247566247567247568247569247570247571247572247573247574247575247576247577247578247579247580247581247582247583247584247585247586247587247588247589247590247591247592247593247594247595247596247597247598247599247600247601247602247603247604247605247606247607247608247609247610247611247612247613247614247615247616247617247618247619247620247621247622247623247624247625247626247627247628247629247630247631247632247633247634247635247636247637247638247639247640247641247642247643247644247645247646247647247648247649247650247651247652247653247654247655247656247657247658247659247660247661247662247663247664247665247666247667247668247669247670247671247672247673247674247675247676247677247678247679247680247681247682247683247684247685247686247687247688247689247690247691247692247693247694247695247696247697247698247699247700247701247702247703247704247705247706247707247708247709247710247711247712247713247714247715247716247717247718247719247720247721247722247723247724247725247726247727247728247729247730247731247732247733247734247735247736247737247738247739247740247741247742247743247744247745247746247747247748247749247750247751247752247753247754247755247756247757247758247759247760247761247762247763247764247765247766247767247768247769247770247771247772247773247774247775247776247777247778247779247780247781247782247783247784247785247786247787247788247789247790247791247792247793247794247795247796247797247798247799247800247801247802247803247804247805247806247807247808247809247810247811247812247813247814247815247816247817247818247819247820247821247822247823247824247825247826247827247828247829247830247831247832247833247834247835247836247837247838247839247840247841247842247843247844247845247846247847247848247849247850247851247852247853247854247855247856247857247858247859247860247861247862247863247864247865247866247867247868247869247870247871247872247873247874247875247876247877247878247879247880247881247882247883247884247885247886247887247888247889247890247891247892247893247894247895247896247897247898247899247900247901247902247903247904247905247906247907247908247909247910247911247912247913247914247915247916247917247918247919247920247921247922247923247924247925247926247927247928247929247930247931247932247933247934247935247936247937247938247939247940247941247942247943247944247945247946247947247948247949247950247951247952247953247954247955247956247957247958247959247960247961247962247963247964247965247966247967247968247969247970247971247972247973247974247975247976247977247978247979247980247981247982247983247984247985247986247987247988247989247990247991247992247993247994247995247996247997247998247999248000248001248002248003248004248005248006248007248008248009248010248011248012248013248014248015248016248017248018248019248020248021248022248023248024248025248026248027248028248029248030248031248032248033248034248035248036248037248038248039248040248041248042248043248044248045248046248047248048248049248050248051248052248053248054248055248056248057248058248059248060248061248062248063248064248065248066248067248068248069248070248071248072248073248074248075248076248077248078248079248080248081248082248083248084248085248086248087248088248089248090248091248092248093248094248095248096248097248098248099248100248101248102248103248104248105248106248107248108248109248110248111248112248113248114248115248116248117248118248119248120248121248122248123248124248125248126248127248128248129248130248131248132248133248134248135248136248137248138248139248140248141248142248143248144248145248146248147248148248149248150248151248152248153248154248155248156248157248158248159248160248161248162248163248164248165248166248167248168248169248170248171248172248173248174248175248176248177248178248179248180248181248182248183248184248185248186248187248188248189248190248191248192248193248194248195248196248197248198248199248200248201248202248203248204248205248206248207248208248209248210248211248212248213248214248215248216248217248218248219248220248221248222248223248224248225248226248227248228248229248230248231248232248233248234248235248236248237248238248239248240248241248242248243248244248245248246248247248248248249248250248251248252248253248254248255248256248257248258248259248260248261248262248263248264248265248266248267248268248269248270248271248272248273248274248275248276248277248278248279248280248281248282248283248284248285248286248287248288248289248290248291248292248293248294248295248296248297248298248299248300248301248302248303248304248305248306248307248308248309248310248311248312248313248314248315248316248317248318248319248320248321248322248323248324248325248326248327248328248329248330248331248332248333248334248335248336248337248338248339248340248341248342248343248344248345248346248347248348248349248350248351248352248353248354248355248356248357248358248359248360248361248362248363248364248365248366248367248368248369248370248371248372248373248374248375248376248377248378248379248380248381248382248383248384248385248386248387248388248389248390248391248392248393248394248395248396248397248398248399248400248401248402248403248404248405248406248407248408248409248410248411248412248413248414248415248416248417248418248419248420248421248422248423248424248425248426248427248428248429248430248431248432248433248434248435248436248437248438248439248440248441248442248443248444248445248446248447248448248449248450248451248452248453248454248455248456248457248458248459248460248461248462248463248464248465248466248467248468248469248470248471248472248473248474248475248476248477248478248479248480248481248482248483248484248485248486248487248488248489248490248491248492248493248494248495248496248497248498248499248500248501248502248503248504248505248506248507248508248509248510248511248512248513248514248515248516248517248518248519248520248521248522248523248524248525248526248527248528248529248530248531248532248533248534248535248536248537248538248539248540248541248542248543248544248545248546248547248548248549248550248551248552248553248554248555248556248557248558248559248560248561248562248563248564248565248566248567248568248569248570248571248572248573248574248575248576248577248578248579248580248581248582248583248584248585248586248587248588248589248590248591248592248593248594248595248596248597248598248599248600248601248602248603248604248605248606248607248608248609248610248611248612248613248614248615248616248617248618248619248620248621248622248623248624248625248626248627248628248629248630248631248632248633248634248635248636248637248638248639248640248641248642248643248644248645248646248647248648248649248650248651248652248653248654248655248656248657248658248659248660248661248662248663248664248665248666248667248668248669248670248671248672248673248674248675248676248677248678248679248680248681248682248683248684248685248686248687248688248689248690248691248692248693248694248695248696248697248698248699248700248701248702248703248704248705248706248707248708248709248710248711248712248713248714248715248716248717248718248719248720248721248722248723248724248725248726248727248728248729248730248731248732248733248734248735248736248737248738248739248740248741248742248743248744248745248746248747248748248749248750248751248752248753248754248755248756248757248758248759248760248761248762248763248764248765248766248767248768248769248770248771248772248773248774248775248776248777248778248779248780248781248782248783248784248785248786248787248788248789248790248791248792248793248794248795248796248797248798248799248800248801248802248803248804248805248806248807248808248809248810248811248812248813248814248815248816248817248818248819248820248821248822248823248824248825248826248827248828248829248830248831248832248833248834248835248836248837248838248839248840248841248842248843248844248845248846248847248848248849248850248851248852248853248854248855248856248857248858248859248860248861248862248863248864248865248866248867248868248869248870248871248872248873248874248875248876248877248878248879248880248881248882248883248884248885248886248887248888248889248890248891248892248893248894248895248896248897248898248899248900248901248902248903248904248905248906248907248908248909248910248911248912248913248914248915248916248917248918248919248920248921248922248923248924248925248926248927248928248929248930248931248932248933248934248935248936248937248938248939248940248941248942248943248944248945248946248947248948248949248950248951248952248953248954248955248956248957248958248959248960248961248962248963248964248965248966248967248968248969248970248971248972248973248974248975248976248977248978248979248980248981248982248983248984248985248986248987248988248989248990248991248992248993248994248995248996248997248998248999249000249001249002249003249004249005249006249007249008249009249010249011249012249013249014249015249016249017249018249019249020249021249022249023249024249025249026249027249028249029249030249031249032249033249034249035249036249037249038249039249040249041249042249043249044249045249046249047249048249049249050249051249052249053249054249055249056249057249058249059249060249061249062249063249064249065249066249067249068249069249070249071249072249073249074249075249076249077249078249079249080249081249082249083249084249085249086249087249088249089249090249091249092249093249094249095249096249097249098249099249100249101249102249103249104249105249106249107249108249109249110249111249112249113249114249115249116249117249118249119249120249121249122249123249124249125249126249127249128249129249130249131249132249133249134249135249136249137249138249139249140249141249142249143249144249145249146249147249148249149249150249151249152249153249154249155249156249157249158249159249160249161249162249163249164249165249166249167249168249169249170249171249172249173249174249175249176249177249178249179249180249181249182249183249184249185249186249187249188249189249190249191249192249193249194249195249196249197249198249199249200249201249202249203249204249205249206249207249208249209249210249211249212249213249214249215249216249217249218249219249220249221249222249223249224249225249226249227249228249229249230249231249232249233249234249235249236249237249238249239249240249241249242249243249244249245249246249247249248249249249250249251249252249253249254249255249256249257249258249259249260249261249262249263249264249265249266249267249268249269249270249271249272249273249274249275249276249277249278249279249280249281249282249283249284249285249286249287249288249289249290249291249292249293249294249295249296249297249298249299249300249301249302249303249304249305249306249307249308249309249310249311249312249313249314249315249316249317249318249319249320249321249322249323249324249325249326249327249328249329249330249331249332249333249334249335249336249337249338249339249340249341249342249343249344249345249346249347249348249349249350249351249352249353249354249355249356249357249358249359249360249361249362249363249364249365249366249367249368249369249370249371249372249373249374249375249376249377249378249379249380249381249382249383249384249385249386249387249388249389249390249391249392249393249394249395249396249397249398249399249400249401249402249403249404249405249406249407249408249409249410249411249412249413249414249415249416249417249418249419249420249421249422249423249424249425249426249427249428249429249430249431249432249433249434249435249436249437249438249439249440249441249442249443249444249445249446249447249448249449249450249451249452249453249454249455249456249457249458249459249460249461249462249463249464249465249466249467249468249469249470249471249472249473249474249475249476249477249478249479249480249481249482249483249484249485249486249487249488249489249490249491249492249493249494249495249496249497249498249499249500249501249502249503249504249505249506249507249508249509249510249511249512249513249514249515249516249517249518249519249520249521249522249523249524249525249526249527249528249529249530249531249532249533249534249535249536249537249538249539249540249541249542249543249544249545249546249547249548249549249550249551249552249553249554249555249556249557249558249559249560249561249562249563249564249565249566249567249568249569249570249571249572249573249574249575249576249577249578249579249580249581249582249583249584249585249586249587249588249589249590249591249592249593249594249595249596249597249598249599249600249601249602249603249604249605249606249607249608249609249610249611249612249613249614249615249616249617249618249619249620249621249622249623249624249625249626249627249628249629249630249631249632249633249634249635249636249637249638249639249640249641249642249643249644249645249646249647249648249649249650249651249652249653249654249655249656249657249658249659249660249661249662249663249664249665249666249667249668249669249670249671249672249673249674249675249676249677249678249679249680249681249682249683249684249685249686249687249688249689249690249691249692249693249694249695249696249697249698249699249700249701249702249703249704249705249706249707249708249709249710249711249712249713249714249715249716249717249718249719249720249721249722249723249724249725249726249727249728249729249730249731249732249733249734249735249736249737249738249739249740249741249742249743249744249745249746249747249748249749249750249751249752249753249754249755249756249757249758249759249760249761249762249763249764249765249766249767249768249769249770249771249772249773249774249775249776249777249778249779249780249781249782249783249784249785249786249787249788249789249790249791249792249793249794249795249796249797249798249799249800249801249802249803249804249805249806249807249808249809249810249811249812249813249814249815249816249817249818249819249820249821249822249823249824249825249826249827249828249829249830249831249832249833249834249835249836249837249838249839249840249841249842249843249844249845249846249847249848249849249850249851249852249853249854249855249856249857249858249859249860249861249862249863249864249865249866249867249868249869249870249871249872249873249874249875249876249877249878249879249880249881249882249883249884249885249886249887249888249889249890249891249892249893249894249895249896249897249898249899249900249901249902249903249904249905249906249907249908249909249910249911249912249913249914249915249916249917249918249919249920249921249922249923249924249925249926249927249928249929249930249931249932249933249934249935249936249937249938249939249940249941249942249943249944249945249946249947249948249949249950249951249952249953249954249955249956249957249958249959249960249961249962249963249964249965249966249967249968249969249970249971249972249973249974249975249976249977249978249979249980249981249982249983249984249985249986249987249988249989249990249991249992249993249994249995249996249997249998249999250000250001250002250003250004250005250006250007250008250009250010250011250012250013250014250015250016250017250018250019250020250021250022250023250024250025250026250027250028250029250030250031250032250033250034250035250036250037250038250039250040250041250042250043250044250045250046250047250048250049250050250051250052250053250054250055250056250057250058250059250060250061250062250063250064250065250066250067250068250069250070250071250072250073250074250075250076250077250078250079250080250081250082250083250084250085250086250087250088250089250090250091250092250093250094250095250096250097250098250099250100250101250102250103250104250105250106250107250108250109250110250111250112250113250114250115250116250117250118250119250120250121250122250123250124250125250126250127250128250129250130250131250132250133250134250135250136250137250138250139250140250141250142250143250144250145250146250147250148250149250150250151250152250153250154250155250156250157250158250159250160250161250162250163250164250165250166250167250168250169250170250171250172250173250174250175250176250177250178250179250180250181250182250183250184250185250186250187250188250189250190250191250192250193250194250195250196250197250198250199250200250201250202250203250204250205250206250207250208250209250210250211250212250213250214250215250216250217250218250219250220250221250222250223250224250225250226250227250228250229250230250231250232250233250234250235250236250237250238250239250240250241250242250243250244250245250246250247250248250249250250250251250252250253250254250255250256250257250258250259250260250261250262250263250264250265250266250267250268250269250270250271250272250273250274250275250276250277250278250279250280250281250282250283250284250285250286250287250288250289250290250291250292250293250294250295250296250297250298250299250300250301250302250303250304250305250306250307250308250309250310250311250312250313250314250315250316250317250318250319250320250321250322250323250324250325250326250327250328250329250330250331250332250333250334250335250336250337250338250339250340250341250342250343250344250345250346250347250348250349250350250351250352250353250354250355250356250357250358250359250360250361250362250363250364250365250366250367250368250369250370250371250372250373250374250375250376250377250378250379250380250381250382250383250384250385250386250387250388250389250390250391250392250393250394250395250396250397250398250399250400250401250402250403250404250405250406250407250408250409250410250411250412250413250414250415250416250417250418250419250420250421250422250423250424250425250426250427250428250429250430250431250432250433250434250435250436250437250438250439250440250441250442250443250444250445250446250447250448250449250450250451250452250453250454250455250456250457250458250459250460250461250462250463250464250465250466250467250468250469250470250471250472250473250474250475250476250477250478250479250480250481250482250483250484250485250486250487250488250489250490250491250492250493250494250495250496250497250498250499250500250501250502250503250504250505250506250507250508250509250510250511250512250513250514250515250516250517250518250519250520250521250522250523250524250525250526250527250528250529250530250531250532250533250534250535250536250537250538250539250540250541250542250543250544250545250546250547250548250549250550250551250552250553250554250555250556250557250558250559250560250561250562250563250564250565250566250567250568250569250570250571250572250573250574250575250576250577250578250579250580250581250582250583250584250585250586250587250588250589250590250591250592250593250594250595250596250597250598250599250600250601250602250603250604250605250606250607250608250609250610250611250612250613250614250615250616250617250618250619250620250621250622250623250624250625250626250627250628250629250630250631250632250633250634250635250636250637250638250639250640250641250642250643250644250645250646250647250648250649250650250651250652250653250654250655250656250657250658250659250660250661250662250663250664250665250666250667250668250669250670250671250672250673250674250675250676250677250678250679250680250681250682250683250684250685250686250687250688250689250690250691250692250693250694250695250696250697250698250699250700250701250702250703250704250705250706250707250708250709250710250711250712250713250714250715250716250717250718250719250720250721250722250723250724250725250726250727250728250729250730250731250732250733250734250735250736250737250738250739250740250741250742250743250744250745250746250747250748250749250750250751250752250753250754250755250756250757250758250759250760250761250762250763250764250765250766250767250768250769250770250771250772250773250774250775250776250777250778250779250780250781250782250783250784250785250786250787250788250789250790250791250792250793250794250795250796250797250798250799250800250801250802250803250804250805250806250807250808250809250810250811250812250813250814250815250816250817250818250819250820250821250822250823250824250825250826250827250828250829250830250831250832250833250834250835250836250837250838250839250840250841250842250843250844250845250846250847250848250849250850250851250852250853250854250855250856250857250858250859250860250861250862250863250864250865250866250867250868250869250870250871250872250873250874250875250876250877250878250879250880250881250882250883250884250885250886250887250888250889250890250891250892250893250894250895250896250897250898250899250900250901250902250903250904250905250906250907250908250909250910250911250912250913250914250915250916250917250918250919250920250921250922250923250924250925250926250927250928250929250930250931250932250933250934250935250936250937250938250939250940250941250942250943250944250945250946250947250948250949250950250951250952250953250954250955250956250957250958250959250960250961250962250963250964250965250966250967250968250969250970250971250972250973250974250975250976250977250978250979250980250981250982250983250984250985250986250987250988250989250990250991250992250993250994250995250996250997250998250999251000251001251002251003251004251005251006251007251008251009251010251011251012251013251014251015251016251017251018251019251020251021251022251023251024251025251026251027251028251029251030251031251032251033251034251035251036251037251038251039251040251041251042251043251044251045251046251047251048251049251050251051251052251053251054251055251056251057251058251059251060251061251062251063251064251065251066251067251068251069251070251071251072251073251074251075251076251077251078251079251080251081251082251083251084251085251086251087251088251089251090251091251092251093251094251095251096251097251098251099251100251101251102251103251104251105251106251107251108251109251110251111251112251113251114251115251116251117251118251119251120251121251122251123251124251125251126251127251128251129251130251131251132251133251134251135251136251137251138251139251140251141251142251143251144251145251146251147251148251149251150251151251152251153251154251155251156251157251158251159251160251161251162251163251164251165251166251167251168251169251170251171251172251173251174251175251176251177251178251179251180251181251182251183251184251185251186251187251188251189251190251191251192251193251194251195251196251197251198251199251200251201251202251203251204251205251206251207251208251209251210251211251212251213251214251215251216251217251218251219251220251221251222251223251224251225251226251227251228251229251230251231251232251233251234251235251236251237251238251239251240251241251242251243251244251245251246251247251248251249251250251251251252251253251254251255251256251257251258251259251260251261251262251263251264251265251266251267251268251269251270251271251272251273251274251275251276251277251278251279251280251281251282251283251284251285251286251287251288251289251290251291251292251293251294251295251296251297251298251299251300251301251302251303251304251305251306251307251308251309251310251311251312251313251314251315251316251317251318251319251320251321251322251323251324251325251326251327251328251329251330251331251332251333251334251335251336251337251338251339251340251341251342251343251344251345251346251347251348251349251350251351251352251353251354251355251356251357251358251359251360251361251362251363251364251365251366251367251368251369251370251371251372251373251374251375251376251377251378251379251380251381251382251383251384251385251386251387251388251389251390251391251392251393251394251395251396251397251398251399251400251401251402251403251404251405251406251407251408251409251410251411251412251413251414251415251416251417251418251419251420251421251422251423251424251425251426251427251428251429251430251431251432251433251434251435251436251437251438251439251440251441251442251443251444251445251446251447251448251449251450251451251452251453251454251455251456251457251458251459251460251461251462251463251464251465251466251467251468251469251470251471251472251473251474251475251476251477251478251479251480251481251482251483251484251485251486251487251488251489251490251491251492251493251494251495251496251497251498251499251500251501251502251503251504251505251506251507251508251509251510251511251512251513251514251515251516251517251518251519251520251521251522251523251524251525251526251527251528251529251530251531251532251533251534251535251536251537251538251539251540251541251542251543251544251545251546251547251548251549251550251551251552251553251554251555251556251557251558251559251560251561251562251563251564251565251566251567251568251569251570251571251572251573251574251575251576251577251578251579251580251581251582251583251584251585251586251587251588251589251590251591251592251593251594251595251596251597251598251599251600251601251602251603251604251605251606251607251608251609251610251611251612251613251614251615251616251617251618251619251620251621251622251623251624251625251626251627251628251629251630251631251632251633251634251635251636251637251638251639251640251641251642251643251644251645251646251647251648251649251650251651251652251653251654251655251656251657251658251659251660251661251662251663251664251665251666251667251668251669251670251671251672251673251674251675251676251677251678251679251680251681251682251683251684251685251686251687251688251689251690251691251692251693251694251695251696251697251698251699251700251701251702251703251704251705251706251707251708251709251710251711251712251713251714251715251716251717251718251719251720251721251722251723251724251725251726251727251728251729251730251731251732251733251734251735251736251737251738251739251740251741251742251743251744251745251746251747251748251749251750251751251752251753251754251755251756251757251758251759251760251761251762251763251764251765251766251767251768251769251770251771251772251773251774251775251776251777251778251779251780251781251782251783251784251785251786251787251788251789251790251791251792251793251794251795251796251797251798251799251800251801251802251803251804251805251806251807251808251809251810251811251812251813251814251815251816251817251818251819251820251821251822251823251824251825251826251827251828251829251830251831251832251833251834251835251836251837251838251839251840251841251842251843251844251845251846251847251848251849251850251851251852251853251854251855251856251857251858251859251860251861251862251863251864251865251866251867251868251869251870251871251872251873251874251875251876251877251878251879251880251881251882251883251884251885251886251887251888251889251890251891251892251893251894251895251896251897251898251899251900251901251902251903251904251905251906251907251908251909251910251911251912251913251914251915251916251917251918251919251920251921251922251923251924251925251926251927251928251929251930251931251932251933251934251935251936251937251938251939251940251941251942251943251944251945251946251947251948251949251950251951251952251953251954251955251956251957251958251959251960251961251962251963251964251965251966251967251968251969251970251971251972251973251974251975251976251977251978251979251980251981251982251983251984251985251986251987251988251989251990251991251992251993251994251995251996251997251998251999252000252001252002252003252004252005252006252007252008252009252010252011252012252013252014252015252016252017252018252019252020252021252022252023252024252025252026252027252028252029252030252031252032252033252034252035252036252037252038252039252040252041252042252043252044252045252046252047252048252049252050252051252052252053252054252055252056252057252058252059252060252061252062252063252064252065252066252067252068252069252070252071252072252073252074252075252076252077252078252079252080252081252082252083252084252085252086252087252088252089252090252091252092252093252094252095252096252097252098252099252100252101252102252103252104252105252106252107252108252109252110252111252112252113252114252115252116252117252118252119252120252121252122252123252124252125252126252127252128252129252130252131252132252133252134252135252136252137252138252139252140252141252142252143252144252145252146252147252148252149252150252151252152252153252154252155252156252157252158252159252160252161252162252163252164252165252166252167252168252169252170252171252172252173252174252175252176252177252178252179252180252181252182252183252184252185252186252187252188252189252190252191252192252193252194252195252196252197252198252199252200252201252202252203252204252205252206252207252208252209252210252211252212252213252214252215252216252217252218252219252220252221252222252223252224252225252226252227252228252229252230252231252232252233252234252235252236252237252238252239252240252241252242252243252244252245252246252247252248252249252250252251252252252253252254252255252256252257252258252259252260252261252262252263252264252265252266252267252268252269252270252271252272252273252274252275252276252277252278252279252280252281252282252283252284252285252286252287252288252289252290252291252292252293252294252295252296252297252298252299252300252301252302252303252304252305252306252307252308252309252310252311252312252313252314252315252316252317252318252319252320252321252322252323252324252325252326252327252328252329252330252331252332252333252334252335252336252337252338252339252340252341252342252343252344252345252346252347252348252349252350252351252352252353252354252355252356252357252358252359252360252361252362252363252364252365252366252367252368252369252370252371252372252373252374252375252376252377252378252379252380252381252382252383252384252385252386252387252388252389252390252391252392252393252394252395252396252397252398252399252400252401252402252403252404252405252406252407252408252409252410252411252412252413252414252415252416252417252418252419252420252421252422252423252424252425252426252427252428252429252430252431252432252433252434252435252436252437252438252439252440252441252442252443252444252445252446252447252448252449252450252451252452252453252454252455252456252457252458252459252460252461252462252463252464252465252466252467252468252469252470252471252472252473252474252475252476252477252478252479252480252481252482252483252484252485252486252487252488252489252490252491252492252493252494252495252496252497252498252499252500252501252502252503252504252505252506252507252508252509252510252511252512252513252514252515252516252517252518252519252520252521252522252523252524252525252526252527252528252529252530252531252532252533252534252535252536252537252538252539252540252541252542252543252544252545252546252547252548252549252550252551252552252553252554252555252556252557252558252559252560252561252562252563252564252565252566252567252568252569252570252571252572252573252574252575252576252577252578252579252580252581252582252583252584252585252586252587252588252589252590252591252592252593252594252595252596252597252598252599252600252601252602252603252604252605252606252607252608252609252610252611252612252613252614252615252616252617252618252619252620252621252622252623252624252625252626252627252628252629252630252631252632252633252634252635252636252637252638252639252640252641252642252643252644252645252646252647252648252649252650252651252652252653252654252655252656252657252658252659252660252661252662252663252664252665252666252667252668252669252670252671252672252673252674252675252676252677252678252679252680252681252682252683252684252685252686252687252688252689252690252691252692252693252694252695252696252697252698252699252700252701252702252703252704252705252706252707252708252709252710252711252712252713252714252715252716252717252718252719252720252721252722252723252724252725252726252727252728252729252730252731252732252733252734252735252736252737252738252739252740252741252742252743252744252745252746252747252748252749252750252751252752252753252754252755252756252757252758252759252760252761252762252763252764252765252766252767252768252769252770252771252772252773252774252775252776252777252778252779252780252781252782252783252784252785252786252787252788252789252790252791252792252793252794252795252796252797252798252799252800252801252802252803252804252805252806252807252808252809252810252811252812252813252814252815252816252817252818252819252820252821252822252823252824252825252826252827252828252829252830252831252832252833252834252835252836252837252838252839252840252841252842252843252844252845252846252847252848252849252850252851252852252853252854252855252856252857252858252859252860252861252862252863252864252865252866252867252868252869252870252871252872252873252874252875252876252877252878252879252880252881252882252883252884252885252886252887252888252889252890252891252892252893252894252895252896252897252898252899252900252901252902252903252904252905252906252907252908252909252910252911252912252913252914252915252916252917252918252919252920252921252922252923252924252925252926252927252928252929252930252931252932252933252934252935252936252937252938252939252940252941252942252943252944252945252946252947252948252949252950252951252952252953252954252955252956252957252958252959252960252961252962252963252964252965252966252967252968252969252970252971252972252973252974252975252976252977252978252979252980252981252982252983252984252985252986252987252988252989252990252991252992252993252994252995252996252997252998252999253000253001253002253003253004253005253006253007253008253009253010253011253012253013253014253015253016253017253018253019253020253021253022253023253024253025253026253027253028253029253030253031253032253033253034253035253036253037253038253039253040253041253042253043253044253045253046253047253048253049253050253051253052253053253054253055253056253057253058253059253060253061253062253063253064253065253066253067253068253069253070253071253072253073253074253075253076253077253078253079253080253081253082253083253084253085253086253087253088253089253090253091253092253093253094253095253096253097253098253099253100253101253102253103253104253105253106253107253108253109253110253111253112253113253114253115253116253117253118253119253120253121253122253123253124253125253126253127253128253129253130253131253132253133253134253135253136253137253138253139253140253141253142253143253144253145253146253147253148253149253150253151253152253153253154253155253156253157253158253159253160253161253162253163253164253165253166253167253168253169253170253171253172253173253174253175253176253177253178253179253180253181253182253183253184253185253186253187253188253189253190253191253192253193253194253195253196253197253198253199253200253201253202253203253204253205253206253207253208253209253210253211253212253213253214253215253216253217253218253219253220253221253222253223253224253225253226253227253228253229253230253231253232253233253234253235253236253237253238253239253240253241253242253243253244253245253246253247253248253249253250253251253252253253253254253255253256253257253258253259253260253261253262253263253264253265253266253267253268253269253270253271253272253273253274253275253276253277253278253279253280253281253282253283253284253285253286253287253288253289253290253291253292253293253294253295253296253297253298253299253300253301253302253303253304253305253306253307253308253309253310253311253312253313253314253315253316253317253318253319253320253321253322253323253324253325253326253327253328253329253330253331253332253333253334253335253336253337253338253339253340253341253342253343253344253345253346253347253348253349253350253351253352253353253354253355253356253357253358253359253360253361253362253363253364253365253366253367253368253369253370253371253372253373253374253375253376253377253378253379253380253381253382253383253384253385253386253387253388253389253390253391253392253393253394253395253396253397253398253399253400253401253402253403253404253405253406253407253408253409253410253411253412253413253414253415253416253417253418253419253420253421253422253423253424253425253426253427253428253429253430253431253432253433253434253435253436253437253438253439253440253441253442253443253444253445253446253447253448253449253450253451253452253453253454253455253456253457253458253459253460253461253462253463253464253465253466253467253468253469253470253471253472253473253474253475253476253477253478253479253480253481253482253483253484253485253486253487253488253489253490253491253492253493253494253495253496253497253498253499253500253501253502253503253504253505253506253507253508253509253510253511253512253513253514253515253516253517253518253519253520253521253522253523253524253525253526253527253528253529253530253531253532253533253534253535253536253537253538253539253540253541253542253543253544253545253546253547253548253549253550253551253552253553253554253555253556253557253558253559253560253561253562253563253564253565253566253567253568253569253570253571253572253573253574253575253576253577253578253579253580253581253582253583253584253585253586253587253588253589253590253591253592253593253594253595253596253597253598253599253600253601253602253603253604253605253606253607253608253609253610253611253612253613253614253615253616253617253618253619253620253621253622253623253624253625253626253627253628253629253630253631253632253633253634253635253636253637253638253639253640253641253642253643253644253645253646253647253648253649253650253651253652253653253654253655253656253657253658253659253660253661253662253663253664253665253666253667253668253669253670253671253672253673253674253675253676253677253678253679253680253681253682253683253684253685253686253687253688253689253690253691253692253693253694253695253696253697253698253699253700253701253702253703253704253705253706253707253708253709253710253711253712253713253714253715253716253717253718253719253720253721253722253723253724253725253726253727253728253729253730253731253732253733253734253735253736253737253738253739253740253741253742253743253744253745253746253747253748253749253750253751253752253753253754253755253756253757253758253759253760253761253762253763253764253765253766253767253768253769253770253771253772253773253774253775253776253777253778253779253780253781253782253783253784253785253786253787253788253789253790253791253792253793253794253795253796253797253798253799253800253801253802253803253804253805253806253807253808253809253810253811253812253813253814253815253816253817253818253819253820253821253822253823253824253825253826253827253828253829253830253831253832253833253834253835253836253837253838253839253840253841253842253843253844253845253846253847253848253849253850253851253852253853253854253855253856253857253858253859253860253861253862253863253864253865253866253867253868253869253870253871253872253873253874253875253876253877253878253879253880253881253882253883253884253885253886253887253888253889253890253891253892253893253894253895253896253897253898253899253900253901253902253903253904253905253906253907253908253909253910253911253912253913253914253915253916253917253918253919253920253921253922253923253924253925253926253927253928253929253930253931253932253933253934253935253936253937253938253939253940253941253942253943253944253945253946253947253948253949253950253951253952253953253954253955253956253957253958253959253960253961253962253963253964253965253966253967253968253969253970253971253972253973253974253975253976253977253978253979253980253981253982253983253984253985253986253987253988253989253990253991253992253993253994253995253996253997253998253999254000254001254002254003254004254005254006254007254008254009254010254011254012254013254014254015254016254017254018254019254020254021254022254023254024254025254026254027254028254029254030254031254032254033254034254035254036254037254038254039254040254041254042254043254044254045254046254047254048254049254050254051254052254053254054254055254056254057254058254059254060254061254062254063254064254065254066254067254068254069254070254071254072254073254074254075254076254077254078254079254080254081254082254083254084254085254086254087254088254089254090254091254092254093254094254095254096254097254098254099254100254101254102254103254104254105254106254107254108254109254110254111254112254113254114254115254116254117254118254119254120254121254122254123254124254125254126254127254128254129254130254131254132254133254134254135254136254137254138254139254140254141254142254143254144254145254146254147254148254149254150254151254152254153254154254155254156254157254158254159254160254161254162254163254164254165254166254167254168254169254170254171254172254173254174254175254176254177254178254179254180254181254182254183254184254185254186254187254188254189254190254191254192254193254194254195254196254197254198254199254200254201254202254203254204254205254206254207254208254209254210254211254212254213254214254215254216254217254218254219254220254221254222254223254224254225254226254227254228254229254230254231254232254233254234254235254236254237254238254239254240254241254242254243254244254245254246254247254248254249254250254251254252254253254254254255254256254257254258254259254260254261254262254263254264254265254266254267254268254269254270254271254272254273254274254275254276254277254278254279254280254281254282254283254284254285254286254287254288254289254290254291254292254293254294254295254296254297254298254299254300254301254302254303254304254305254306254307254308254309254310254311254312254313254314254315254316254317254318254319254320254321254322254323254324254325254326254327254328254329254330254331254332254333254334254335254336254337254338254339254340254341254342254343254344254345254346254347254348254349254350254351254352254353254354254355254356254357254358254359254360254361254362254363254364254365254366254367254368254369254370254371254372254373254374254375254376254377254378254379254380254381254382254383254384254385254386254387254388254389254390254391254392254393254394254395254396254397254398254399254400254401254402254403254404254405254406254407254408254409254410254411254412254413254414254415254416254417254418254419254420254421254422254423254424254425254426254427254428254429254430254431254432254433254434254435254436254437254438254439254440254441254442254443254444254445254446254447254448254449254450254451254452254453254454254455254456254457254458254459254460254461254462254463254464254465254466254467254468254469254470254471254472254473254474254475254476254477254478254479254480254481254482254483254484254485254486254487254488254489254490254491254492254493254494254495254496254497254498254499254500254501254502254503254504254505254506254507254508254509254510254511254512254513254514254515254516254517254518254519254520254521254522254523254524254525254526254527254528254529254530254531254532254533254534254535254536254537254538254539254540254541254542254543254544254545254546254547254548254549254550254551254552254553254554254555254556254557254558254559254560254561254562254563254564254565254566254567254568254569254570254571254572254573254574254575254576254577254578254579254580254581254582254583254584254585254586254587254588254589254590254591254592254593254594254595254596254597254598254599254600254601254602254603254604254605254606254607254608254609254610254611254612254613254614254615254616254617254618254619254620254621254622254623254624254625254626254627254628254629254630254631254632254633254634254635254636254637254638254639254640254641254642254643254644254645254646254647254648254649254650254651254652254653254654254655254656254657254658254659254660254661254662254663254664254665254666254667254668254669254670254671254672254673254674254675254676254677254678254679254680254681254682254683254684254685254686254687254688254689254690254691254692254693254694254695254696254697254698254699254700254701254702254703254704254705254706254707254708254709254710254711254712254713254714254715254716254717254718254719254720254721254722254723254724254725254726254727254728254729254730254731254732254733254734254735254736254737254738254739254740254741254742254743254744254745254746254747254748254749254750254751254752254753254754254755254756254757254758254759254760254761254762254763254764254765254766254767254768254769254770254771254772254773254774254775254776254777254778254779254780254781254782254783254784254785254786254787254788254789254790254791254792254793254794254795254796254797254798254799254800254801254802254803254804254805254806254807254808254809254810254811254812254813254814254815254816254817254818254819254820254821254822254823254824254825254826254827254828254829254830254831254832254833254834254835254836254837254838254839254840254841254842254843254844254845254846254847254848254849254850254851254852254853254854254855254856254857254858254859254860254861254862254863254864254865254866254867254868254869254870254871254872254873254874254875254876254877254878254879254880254881254882254883254884254885254886254887254888254889254890254891254892254893254894254895254896254897254898254899254900254901254902254903254904254905254906254907254908254909254910254911254912254913254914254915254916254917254918254919254920254921254922254923254924254925254926254927254928254929254930254931254932254933254934254935254936254937254938254939254940254941254942254943254944254945254946254947254948254949254950254951254952254953254954254955254956254957254958254959254960254961254962254963254964254965254966254967254968254969254970254971254972254973254974254975254976254977254978254979254980254981254982254983254984254985254986254987254988254989254990254991254992254993254994254995254996254997254998254999255000255001255002255003255004255005255006255007255008255009255010255011255012255013255014255015255016255017255018255019255020255021255022255023255024255025255026255027255028255029255030255031255032255033255034255035255036255037255038255039255040255041255042255043255044255045255046255047255048255049255050255051255052255053255054255055255056255057255058255059255060255061255062255063255064255065255066255067255068255069255070255071255072255073255074255075255076255077255078255079255080255081255082255083255084255085255086255087255088255089255090255091255092255093255094255095255096255097255098255099255100255101255102255103255104255105255106255107255108255109255110255111255112255113255114255115255116255117255118255119255120255121255122255123255124255125255126255127255128255129255130255131255132255133255134255135255136255137255138255139255140255141255142255143255144255145255146255147255148255149255150255151255152255153255154255155255156255157255158255159255160255161255162255163255164255165255166255167255168255169255170255171255172255173255174255175255176255177255178255179255180255181255182255183255184255185255186255187255188255189255190255191255192255193255194255195255196255197255198255199255200255201255202255203255204255205255206255207255208255209255210255211255212255213255214255215255216255217255218255219255220255221255222255223255224255225255226255227255228255229255230255231255232255233255234255235255236255237255238255239255240255241255242255243255244255245255246255247255248255249255250255251255252255253255254255255255256255257255258255259255260255261255262255263255264255265255266255267255268255269255270255271255272255273255274255275255276255277255278255279255280255281255282255283255284255285255286255287255288255289255290255291255292255293255294255295255296255297255298255299255300255301255302255303255304255305255306255307255308255309255310255311255312255313255314255315255316255317255318255319255320255321255322255323255324255325255326255327255328255329255330255331255332255333255334255335255336255337255338255339255340255341255342255343255344255345255346255347255348255349255350255351255352255353255354255355255356255357255358255359255360255361255362255363255364255365255366255367255368255369255370255371255372255373255374255375255376255377255378255379255380255381255382255383255384255385255386255387255388255389255390255391255392255393255394255395255396255397255398255399255400255401255402255403255404255405255406255407255408255409255410255411255412255413255414255415255416255417255418255419255420255421255422255423255424255425255426255427255428255429255430255431255432255433255434255435255436255437255438255439255440255441255442255443255444255445255446255447255448255449255450255451255452255453255454255455255456255457255458255459255460255461255462255463255464255465255466255467255468255469255470255471255472255473255474255475255476255477255478255479255480255481255482255483255484255485255486255487255488255489255490255491255492255493255494255495255496255497255498255499255500255501255502255503255504255505255506255507255508255509255510255511255512255513255514255515255516255517255518255519255520255521255522255523255524255525255526255527255528255529255530255531255532255533255534255535255536255537255538255539255540255541255542255543255544255545255546255547255548255549255550255551255552255553255554255555255556255557255558255559255560255561255562255563255564255565255566255567255568255569255570255571255572255573255574255575255576255577255578255579255580255581255582255583255584255585255586255587255588255589255590255591255592255593255594255595255596255597255598255599255600255601255602255603255604255605255606255607255608255609255610255611255612255613255614255615255616255617255618255619255620255621255622255623255624255625255626255627255628255629255630255631255632255633255634255635255636255637255638255639255640255641255642255643255644255645255646255647255648255649255650255651255652255653255654255655255656255657255658255659255660255661255662255663255664255665255666255667255668255669255670255671255672255673255674255675255676255677255678255679255680255681255682255683255684255685255686255687255688255689255690255691255692255693255694255695255696255697255698255699255700255701255702255703255704255705255706255707255708255709255710255711255712255713255714255715255716255717255718255719255720255721255722255723255724255725255726255727255728255729255730255731255732255733255734255735255736255737255738255739255740255741255742255743255744255745255746255747255748255749255750255751255752255753255754255755255756255757255758255759255760255761255762255763255764255765255766255767255768255769255770255771255772255773255774255775255776255777255778255779255780255781255782255783255784255785255786255787255788255789255790255791255792255793255794255795255796255797255798255799255800255801255802255803255804255805255806255807255808255809255810255811255812255813255814255815255816255817255818255819255820255821255822255823255824255825255826255827255828255829255830255831255832255833255834255835255836255837255838255839255840255841255842255843255844255845255846255847255848255849255850255851255852255853255854255855255856255857255858255859255860255861255862255863255864255865255866255867255868255869255870255871255872255873255874255875255876255877255878255879255880255881255882255883255884255885255886255887255888255889255890255891255892255893255894255895255896255897255898255899255900255901255902255903255904255905255906255907255908255909255910255911255912255913255914255915255916255917255918255919255920255921255922255923255924255925255926255927255928255929255930255931255932255933255934255935255936255937255938255939255940255941255942255943255944255945255946255947255948255949255950255951255952255953255954255955255956255957255958255959255960255961255962255963255964255965255966255967255968255969255970255971255972255973255974255975255976255977255978255979255980255981255982255983255984255985255986255987255988255989255990255991255992255993255994255995255996255997255998255999256000256001256002256003256004256005256006256007256008256009256010256011256012256013256014256015256016256017256018256019256020256021256022256023256024256025256026256027256028256029256030256031256032256033256034256035256036256037256038256039256040256041256042256043256044256045256046256047256048256049256050256051256052256053256054256055256056256057256058256059256060256061256062256063256064256065256066256067256068256069256070256071256072256073256074256075256076256077256078256079256080256081256082256083256084256085256086256087256088256089256090256091256092256093256094256095256096256097256098256099256100256101256102256103256104256105256106256107256108256109256110256111256112256113256114256115256116256117256118256119256120256121256122256123256124256125256126256127256128256129256130256131256132256133256134256135256136256137256138256139256140256141256142256143256144256145256146256147256148256149256150256151256152256153256154256155256156256157256158256159256160256161256162256163256164256165256166256167256168256169256170256171256172256173256174256175256176256177256178256179256180256181256182256183256184256185256186256187256188256189256190256191256192256193256194256195256196256197256198256199256200256201256202256203256204256205256206256207256208256209256210256211256212256213256214256215256216256217256218256219256220256221256222256223256224256225256226256227256228256229256230256231256232256233256234256235256236256237256238256239256240256241256242256243256244256245256246256247256248256249256250256251256252256253256254256255256256256257256258256259256260256261256262256263256264256265256266256267256268256269256270256271256272256273256274256275256276256277256278256279256280256281256282256283256284256285256286256287256288256289256290256291256292256293256294256295256296256297256298256299256300256301256302256303256304256305256306256307256308256309256310256311256312256313256314256315256316256317256318256319256320256321256322256323256324256325256326256327256328256329256330256331256332256333256334256335256336256337256338256339256340256341256342256343256344256345256346256347256348256349256350256351256352256353256354256355256356256357256358256359256360256361256362256363256364256365256366256367256368256369256370256371256372256373256374256375256376256377256378256379256380256381256382256383256384256385256386256387256388256389256390256391256392256393256394256395256396256397256398256399256400256401256402256403256404256405256406256407256408256409256410256411256412256413256414256415256416256417256418256419256420256421256422256423256424256425256426256427256428256429256430256431256432256433256434256435256436256437256438256439256440256441256442256443256444256445256446256447256448256449256450256451256452256453256454256455256456256457256458256459256460256461256462256463256464256465256466256467256468256469256470256471256472256473256474256475256476256477256478256479256480256481256482256483256484256485256486256487256488256489256490256491256492256493256494256495256496256497256498256499256500256501256502256503256504256505256506256507256508256509256510256511256512256513256514256515256516256517256518256519256520256521256522256523256524256525256526256527256528256529256530256531256532256533256534256535256536256537256538256539256540256541256542256543256544256545256546256547256548256549256550256551256552256553256554256555256556256557256558256559256560256561256562256563256564256565256566256567256568256569256570256571256572256573256574256575256576256577256578256579256580256581256582256583256584256585256586256587256588256589256590256591256592256593256594256595256596256597256598256599256600256601256602256603256604256605256606256607256608256609256610256611256612256613256614256615256616256617256618256619256620256621256622256623256624256625256626256627256628256629256630256631256632256633256634256635256636256637256638256639256640256641256642256643256644256645256646256647256648256649256650256651256652256653256654256655256656256657256658256659256660256661256662256663256664256665256666256667256668256669256670256671256672256673256674256675256676256677256678256679256680256681256682256683256684256685256686256687256688256689256690256691256692256693256694256695256696256697256698256699256700256701256702256703256704256705256706256707256708256709256710256711256712256713256714256715256716256717256718256719256720256721256722256723256724256725256726256727256728256729256730256731256732256733256734256735256736256737256738256739256740256741256742256743256744256745256746256747256748256749256750256751256752256753256754256755256756256757256758256759256760256761256762256763256764256765256766256767256768256769256770256771256772256773256774256775256776256777256778256779256780256781256782256783256784256785256786256787256788256789256790256791256792256793256794256795256796256797256798256799256800256801256802256803256804256805256806256807256808256809256810256811256812256813256814256815256816256817256818256819256820256821256822256823256824256825256826256827256828256829256830256831256832256833256834256835256836256837256838256839256840256841256842256843256844256845256846256847256848256849256850256851256852256853256854256855256856256857256858256859256860256861256862256863256864256865256866256867256868256869256870256871256872256873256874256875256876256877256878256879256880256881256882256883256884256885256886256887256888256889256890256891256892256893256894256895256896256897256898256899256900256901256902256903256904256905256906256907256908256909256910256911256912256913256914256915256916256917256918256919256920256921256922256923256924256925256926256927256928256929256930256931256932256933256934256935256936256937256938256939256940256941256942256943256944256945256946256947256948256949256950256951256952256953256954256955256956256957256958256959256960256961256962256963256964256965256966256967256968256969256970256971256972256973256974256975256976256977256978256979256980256981256982256983256984256985256986256987256988256989256990256991256992256993256994256995256996256997256998256999257000257001257002257003257004257005257006257007257008257009257010257011257012257013257014257015257016257017257018257019257020257021257022257023257024257025257026257027257028257029257030257031257032257033257034257035257036257037257038257039257040257041257042257043257044257045257046257047257048257049257050257051257052257053257054257055257056257057257058257059257060257061257062257063257064257065257066257067257068257069257070257071257072257073257074257075257076257077257078257079257080257081257082257083257084257085257086257087257088257089257090257091257092257093257094257095257096257097257098257099257100257101257102257103257104257105257106257107257108257109257110257111257112257113257114257115257116257117257118257119257120257121257122257123257124257125257126257127257128257129257130257131257132257133257134257135257136257137257138257139257140257141257142257143257144257145257146257147257148257149257150257151257152257153257154257155257156257157257158257159257160257161257162257163257164257165257166257167257168257169257170257171257172257173257174257175257176257177257178257179257180257181257182257183257184257185257186257187257188257189257190257191257192257193257194257195257196257197257198257199257200257201257202257203257204257205257206257207257208257209257210257211257212257213257214257215257216257217257218257219257220257221257222257223257224257225257226257227257228257229257230257231257232257233257234257235257236257237257238257239257240257241257242257243257244257245257246257247257248257249257250257251257252257253257254257255257256257257257258257259257260257261257262257263257264257265257266257267257268257269257270257271257272257273257274257275257276257277257278257279257280257281257282257283257284257285257286257287257288257289257290257291257292257293257294257295257296257297257298257299257300257301257302257303257304257305257306257307257308257309257310257311257312257313257314257315257316257317257318257319257320257321257322257323257324257325257326257327257328257329257330257331257332257333257334257335257336257337257338257339257340257341257342257343257344257345257346257347257348257349257350257351257352257353257354257355257356257357257358257359257360257361257362257363257364257365257366257367257368257369257370257371257372257373257374257375257376257377257378257379257380257381257382257383257384257385257386257387257388257389257390257391257392257393257394257395257396257397257398257399257400257401257402257403257404257405257406257407257408257409257410257411257412257413257414257415257416257417257418257419257420257421257422257423257424257425257426257427257428257429257430257431257432257433257434257435257436257437257438257439257440257441257442257443257444257445257446257447257448257449257450257451257452257453257454257455257456257457257458257459257460257461257462257463257464257465257466257467257468257469257470257471257472257473257474257475257476257477257478257479257480257481257482257483257484257485257486257487257488257489257490257491257492257493257494257495257496257497257498257499257500257501257502257503257504257505257506257507257508257509257510257511257512257513257514257515257516257517257518257519257520257521257522257523257524257525257526257527257528257529257530257531257532257533257534257535257536257537257538257539257540257541257542257543257544257545257546257547257548257549257550257551257552257553257554257555257556257557257558257559257560257561257562257563257564257565257566257567257568257569257570257571257572257573257574257575257576257577257578257579257580257581257582257583257584257585257586257587257588257589257590257591257592257593257594257595257596257597257598257599257600257601257602257603257604257605257606257607257608257609257610257611257612257613257614257615257616257617257618257619257620257621257622257623257624257625257626257627257628257629257630257631257632257633257634257635257636257637257638257639257640257641257642257643257644257645257646257647257648257649257650257651257652257653257654257655257656257657257658257659257660257661257662257663257664257665257666257667257668257669257670257671257672257673257674257675257676257677257678257679257680257681257682257683257684257685257686257687257688257689257690257691257692257693257694257695257696257697257698257699257700257701257702257703257704257705257706257707257708257709257710257711257712257713257714257715257716257717257718257719257720257721257722257723257724257725257726257727257728257729257730257731257732257733257734257735257736257737257738257739257740257741257742257743257744257745257746257747257748257749257750257751257752257753257754257755257756257757257758257759257760257761257762257763257764257765257766257767257768257769257770257771257772257773257774257775257776257777257778257779257780257781257782257783257784257785257786257787257788257789257790257791257792257793257794257795257796257797257798257799257800257801257802257803257804257805257806257807257808257809257810257811257812257813257814257815257816257817257818257819257820257821257822257823257824257825257826257827257828257829257830257831257832257833257834257835257836257837257838257839257840257841257842257843257844257845257846257847257848257849257850257851257852257853257854257855257856257857257858257859257860257861257862257863257864257865257866257867257868257869257870257871257872257873257874257875257876257877257878257879257880257881257882257883257884257885257886257887257888257889257890257891257892257893257894257895257896257897257898257899257900257901257902257903257904257905257906257907257908257909257910257911257912257913257914257915257916257917257918257919257920257921257922257923257924257925257926257927257928257929257930257931257932257933257934257935257936257937257938257939257940257941257942257943257944257945257946257947257948257949257950257951257952257953257954257955257956257957257958257959257960257961257962257963257964257965257966257967257968257969257970257971257972257973257974257975257976257977257978257979257980257981257982257983257984257985257986257987257988257989257990257991257992257993257994257995257996257997257998257999258000258001258002258003258004258005258006258007258008258009258010258011258012258013258014258015258016258017258018258019258020258021258022258023258024258025258026258027258028258029258030258031258032258033258034258035258036258037258038258039258040258041258042258043258044258045258046258047258048258049258050258051258052258053258054258055258056258057258058258059258060258061258062258063258064258065258066258067258068258069258070258071258072258073258074258075258076258077258078258079258080258081258082258083258084258085258086258087258088258089258090258091258092258093258094258095258096258097258098258099258100258101258102258103258104258105258106258107258108258109258110258111258112258113258114258115258116258117258118258119258120258121258122258123258124258125258126258127258128258129258130258131258132258133258134258135258136258137258138258139258140258141258142258143258144258145258146258147258148258149258150258151258152258153258154258155258156258157258158258159258160258161258162258163258164258165258166258167258168258169258170258171258172258173258174258175258176258177258178258179258180258181258182258183258184258185258186258187258188258189258190258191258192258193258194258195258196258197258198258199258200258201258202258203258204258205258206258207258208258209258210258211258212258213258214258215258216258217258218258219258220258221258222258223258224258225258226258227258228258229258230258231258232258233258234258235258236258237258238258239258240258241258242258243258244258245258246258247258248258249258250258251258252258253258254258255258256258257258258258259258260258261258262258263258264258265258266258267258268258269258270258271258272258273258274258275258276258277258278258279258280258281258282258283258284258285258286258287258288258289258290258291258292258293258294258295258296258297258298258299258300258301258302258303258304258305258306258307258308258309258310258311258312258313258314258315258316258317258318258319258320258321258322258323258324258325258326258327258328258329258330258331258332258333258334258335258336258337258338258339258340258341258342258343258344258345258346258347258348258349258350258351258352258353258354258355258356258357258358258359258360258361258362258363258364258365258366258367258368258369258370258371258372258373258374258375258376258377258378258379258380258381258382258383258384258385258386258387258388258389258390258391258392258393258394258395258396258397258398258399258400258401258402258403258404258405258406258407258408258409258410258411258412258413258414258415258416258417258418258419258420258421258422258423258424258425258426258427258428258429258430258431258432258433258434258435258436258437258438258439258440258441258442258443258444258445258446258447258448258449258450258451258452258453258454258455258456258457258458258459258460258461258462258463258464258465258466258467258468258469258470258471258472258473258474258475258476258477258478258479258480258481258482258483258484258485258486258487258488258489258490258491258492258493258494258495258496258497258498258499258500258501258502258503258504258505258506258507258508258509258510258511258512258513258514258515258516258517258518258519258520258521258522258523258524258525258526258527258528258529258530258531258532258533258534258535258536258537258538258539258540258541258542258543258544258545258546258547258548258549258550258551258552258553258554258555258556258557258558258559258560258561258562258563258564258565258566258567258568258569258570258571258572258573258574258575258576258577258578258579258580258581258582258583258584258585258586258587258588258589258590258591258592258593258594258595258596258597258598258599258600258601258602258603258604258605258606258607258608258609258610258611258612258613258614258615258616258617258618258619258620258621258622258623258624258625258626258627258628258629258630258631258632258633258634258635258636258637258638258639258640258641258642258643258644258645258646258647258648258649258650258651258652258653258654258655258656258657258658258659258660258661258662258663258664258665258666258667258668258669258670258671258672258673258674258675258676258677258678258679258680258681258682258683258684258685258686258687258688258689258690258691258692258693258694258695258696258697258698258699258700258701258702258703258704258705258706258707258708258709258710258711258712258713258714258715258716258717258718258719258720258721258722258723258724258725258726258727258728258729258730258731258732258733258734258735258736258737258738258739258740258741258742258743258744258745258746258747258748258749258750258751258752258753258754258755258756258757258758258759258760258761258762258763258764258765258766258767258768258769258770258771258772258773258774258775258776258777258778258779258780258781258782258783258784258785258786258787258788258789258790258791258792258793258794258795258796258797258798258799258800258801258802258803258804258805258806258807258808258809258810258811258812258813258814258815258816258817258818258819258820258821258822258823258824258825258826258827258828258829258830258831258832258833258834258835258836258837258838258839258840258841258842258843258844258845258846258847258848258849258850258851258852258853258854258855258856258857258858258859258860258861258862258863258864258865258866258867258868258869258870258871258872258873258874258875258876258877258878258879258880258881258882258883258884258885258886258887258888258889258890258891258892258893258894258895258896258897258898258899258900258901258902258903258904258905258906258907258908258909258910258911258912258913258914258915258916258917258918258919258920258921258922258923258924258925258926258927258928258929258930258931258932258933258934258935258936258937258938258939258940258941258942258943258944258945258946258947258948258949258950258951258952258953258954258955258956258957258958258959258960258961258962258963258964258965258966258967258968258969258970258971258972258973258974258975258976258977258978258979258980258981258982258983258984258985258986258987258988258989258990258991258992258993258994258995258996258997258998258999259000259001259002259003259004259005259006259007259008259009259010259011259012259013259014259015259016259017259018259019259020259021259022259023259024259025259026259027259028259029259030259031259032259033259034259035259036259037259038259039259040259041259042259043259044259045259046259047259048259049259050259051259052259053259054259055259056259057259058259059259060259061259062259063259064259065259066259067259068259069259070259071259072259073259074259075259076259077259078259079259080259081259082259083259084259085259086259087259088259089259090259091259092259093259094259095259096259097259098259099259100259101259102259103259104259105259106259107259108259109259110259111259112259113259114259115259116259117259118259119259120259121259122259123259124259125259126259127259128259129259130259131259132259133259134259135259136259137259138259139259140259141259142259143259144259145259146259147259148259149259150259151259152259153259154259155259156259157259158259159259160259161259162259163259164259165259166259167259168259169259170259171259172259173259174259175259176259177259178259179259180259181259182259183259184259185259186259187259188259189259190259191259192259193259194259195259196259197259198259199259200259201259202259203259204259205259206259207259208259209259210259211259212259213259214259215259216259217259218259219259220259221259222259223259224259225259226259227259228259229259230259231259232259233259234259235259236259237259238259239259240259241259242259243259244259245259246259247259248259249259250259251259252259253259254259255259256259257259258259259259260259261259262259263259264259265259266259267259268259269259270259271259272259273259274259275259276259277259278259279259280259281259282259283259284259285259286259287259288259289259290259291259292259293259294259295259296259297259298259299259300259301259302259303259304259305259306259307259308259309259310259311259312259313259314259315259316259317259318259319259320259321259322259323259324259325259326259327259328259329259330259331259332259333259334259335259336259337259338259339259340259341259342259343259344259345259346259347259348259349259350259351259352259353259354259355259356259357259358259359259360259361259362259363259364259365259366259367259368259369259370259371259372259373259374259375259376259377259378259379259380259381259382259383259384259385259386259387259388259389259390259391259392259393259394259395259396259397259398259399259400259401259402259403259404259405259406259407259408259409259410259411259412259413259414259415259416259417259418259419259420259421259422259423259424259425259426259427259428259429259430259431259432259433259434259435259436259437259438259439259440259441259442259443259444259445259446259447259448259449259450259451259452259453259454259455259456259457259458259459259460259461259462259463259464259465259466259467259468259469259470259471259472259473259474259475259476259477259478259479259480259481259482259483259484259485259486259487259488259489259490259491259492259493259494259495259496259497259498259499259500259501259502259503259504259505259506259507259508259509259510259511259512259513259514259515259516259517259518259519259520259521259522259523259524259525259526259527259528259529259530259531259532259533259534259535259536259537259538259539259540259541259542259543259544259545259546259547259548259549259550259551259552259553259554259555259556259557259558259559259560259561259562259563259564259565259566259567259568259569259570259571259572259573259574259575259576259577259578259579259580259581259582259583259584259585259586259587259588259589259590259591259592259593259594259595259596259597259598259599259600259601259602259603259604259605259606259607259608259609259610259611259612259613259614259615259616259617259618259619259620259621259622259623259624259625259626259627259628259629259630259631259632259633259634259635259636259637259638259639259640259641259642259643259644259645259646259647259648259649259650259651259652259653259654259655259656259657259658259659259660259661259662259663259664259665259666259667259668259669259670259671259672259673259674259675259676259677259678259679259680259681259682259683259684259685259686259687259688259689259690259691259692259693259694259695259696259697259698259699259700259701259702259703259704259705259706259707259708259709259710259711259712259713259714259715259716259717259718259719259720259721259722259723259724259725259726259727259728259729259730259731259732259733259734259735259736259737259738259739259740259741259742259743259744259745259746259747259748259749259750259751259752259753259754259755259756259757259758259759259760259761259762259763259764259765259766259767259768259769259770259771259772259773259774259775259776259777259778259779259780259781259782259783259784259785259786259787259788259789259790259791259792259793259794259795259796259797259798259799259800259801259802259803259804259805259806259807259808259809259810259811259812259813259814259815259816259817259818259819259820259821259822259823259824259825259826259827259828259829259830259831259832259833259834259835259836259837259838259839259840259841259842259843259844259845259846259847259848259849259850259851259852259853259854259855259856259857259858259859259860259861259862259863259864259865259866259867259868259869259870259871259872259873259874259875259876259877259878259879259880259881259882259883259884259885259886259887259888259889259890259891259892259893259894259895259896259897259898259899259900259901259902259903259904259905259906259907259908259909259910259911259912259913259914259915259916259917259918259919259920259921259922259923259924259925259926259927259928259929259930259931259932259933259934259935259936259937259938259939259940259941259942259943259944259945259946259947259948259949259950259951259952259953259954259955259956259957259958259959259960259961259962259963259964259965259966259967259968259969259970259971259972259973259974259975259976259977259978259979259980259981259982259983259984259985259986259987259988259989259990259991259992259993259994259995259996259997259998259999260000260001260002260003260004260005260006260007260008260009260010260011260012260013260014260015260016260017260018260019260020260021260022260023260024260025260026260027260028260029260030260031260032260033260034260035260036260037260038260039260040260041260042260043260044260045260046260047260048260049260050260051260052260053260054260055260056260057260058260059260060260061260062260063260064260065260066260067260068260069260070260071260072260073260074260075260076260077260078260079260080260081260082260083260084260085260086260087260088260089260090260091260092260093260094260095260096260097260098260099260100260101260102260103260104260105260106260107260108260109260110260111260112260113260114260115260116260117260118260119260120260121260122260123260124260125260126260127260128260129260130260131260132260133260134260135260136260137260138260139260140260141260142260143260144260145260146260147260148260149260150260151260152260153260154260155260156260157260158260159260160260161260162260163260164260165260166260167260168260169260170260171260172260173260174260175260176260177260178260179260180260181260182260183260184260185260186260187260188260189260190260191260192260193260194260195260196260197260198260199260200260201260202260203260204260205260206260207260208260209260210260211260212260213260214260215260216260217260218260219260220260221260222260223260224260225260226260227260228260229260230260231260232260233260234260235260236260237260238260239260240260241260242260243260244260245260246260247260248260249260250260251260252260253260254260255260256260257260258260259260260260261260262260263260264260265260266260267260268260269260270260271260272260273260274260275260276260277260278260279260280260281260282260283260284260285260286260287260288260289260290260291260292260293260294260295260296260297260298260299260300260301260302260303260304260305260306260307260308260309260310260311260312260313260314260315260316260317260318260319260320260321260322260323260324260325260326260327260328260329260330260331260332260333260334260335260336260337260338260339260340260341260342260343260344260345260346260347260348260349260350260351260352260353260354260355260356260357260358260359260360260361260362260363260364260365260366260367260368260369260370260371260372260373260374260375260376260377260378260379260380260381260382260383260384260385260386260387260388260389260390260391260392260393260394260395260396260397260398260399260400260401260402260403260404260405260406260407260408260409260410260411260412260413260414260415260416260417260418260419260420260421260422260423260424260425260426260427260428260429260430260431260432260433260434260435260436260437260438260439260440260441260442260443260444260445260446260447260448260449260450260451260452260453260454260455260456260457260458260459260460260461260462260463260464260465260466260467260468260469260470260471260472260473260474260475260476260477260478260479260480260481260482260483260484260485260486260487260488260489260490260491260492260493260494260495260496260497260498260499260500260501260502260503260504260505260506260507260508260509260510260511260512260513260514260515260516260517260518260519260520260521260522260523260524260525260526260527260528260529260530260531260532260533260534260535260536260537260538260539260540260541260542260543260544260545260546260547260548260549260550260551260552260553260554260555260556260557260558260559260560260561260562260563260564260565260566260567260568260569260570260571260572260573260574260575260576260577260578260579260580260581260582260583260584260585260586260587260588260589260590260591260592260593260594260595260596260597260598260599260600260601260602260603260604260605260606260607260608260609260610260611260612260613260614260615260616260617260618260619260620260621260622260623260624260625260626260627260628260629260630260631260632260633260634260635260636260637260638260639260640260641260642260643260644260645260646260647260648260649260650260651260652260653260654260655260656260657260658260659260660260661260662260663260664260665260666260667260668260669260670260671260672260673260674260675260676260677260678260679260680260681260682260683260684260685260686260687260688260689260690260691260692260693260694260695260696260697260698260699260700260701260702260703260704260705260706260707260708260709260710260711260712260713260714260715260716260717260718260719260720260721260722260723260724260725260726260727260728260729260730260731260732260733260734260735260736260737260738260739260740260741260742260743260744260745260746260747260748260749260750260751260752260753260754260755260756260757260758260759260760260761260762260763260764260765260766260767260768260769260770260771260772260773260774260775260776260777260778260779260780260781260782260783260784260785260786260787260788260789260790260791260792260793260794260795260796260797260798260799260800260801260802260803260804260805260806260807260808260809260810260811260812260813260814260815260816260817260818260819260820260821260822260823260824260825260826260827260828260829260830260831260832260833260834260835260836260837260838260839260840260841260842260843260844260845260846260847260848260849260850260851260852260853260854260855260856260857260858260859260860260861260862260863260864260865260866260867260868260869260870260871260872260873260874260875260876260877260878260879260880260881260882260883260884260885260886260887260888260889260890260891260892260893260894260895260896260897260898260899260900260901260902260903260904260905260906260907260908260909260910260911260912260913260914260915260916260917260918260919260920260921260922260923260924260925260926260927260928260929260930260931260932260933260934260935260936260937260938260939260940260941260942260943260944260945260946260947260948260949260950260951260952260953260954260955260956260957260958260959260960260961260962260963260964260965260966260967260968260969260970260971260972260973260974260975260976260977260978260979260980260981260982260983260984260985260986260987260988260989260990260991260992260993260994260995260996260997260998260999261000261001261002261003261004261005261006261007261008261009261010261011261012261013261014261015261016261017261018261019261020261021261022261023261024261025261026261027261028261029261030261031261032261033261034261035261036261037261038261039261040261041261042261043261044261045261046261047261048261049261050261051261052261053261054261055261056261057261058261059261060261061261062261063261064261065261066261067261068261069261070261071261072261073261074261075261076261077261078261079261080261081261082261083261084261085261086261087261088261089261090261091261092261093261094261095261096261097261098261099261100261101261102261103261104261105261106261107261108261109261110261111261112261113261114261115261116261117261118261119261120261121261122261123261124261125261126261127261128261129261130261131261132261133261134261135261136261137261138261139261140261141261142261143261144261145261146261147261148261149261150261151261152261153261154261155261156261157261158261159261160261161261162261163261164261165261166261167261168261169261170261171261172261173261174261175261176261177261178261179261180261181261182261183261184261185261186261187261188261189261190261191261192261193261194261195261196261197261198261199261200261201261202261203261204261205261206261207261208261209261210261211261212261213261214261215261216261217261218261219261220261221261222261223261224261225261226261227261228261229261230261231261232261233261234261235261236261237261238261239261240261241261242261243261244261245261246261247261248261249261250261251261252261253261254261255261256261257261258261259261260261261261262261263261264261265261266261267261268261269261270261271261272261273261274261275261276261277261278261279261280261281261282261283261284261285261286261287261288261289261290261291261292261293261294261295261296261297261298261299261300261301261302261303261304261305261306261307261308261309261310261311261312261313261314261315261316261317261318261319261320261321261322261323261324261325261326261327261328261329261330261331261332261333261334261335261336261337261338261339261340261341261342261343261344261345261346261347261348261349261350261351261352261353261354261355261356261357261358261359261360261361261362261363261364261365261366261367261368261369261370261371261372261373261374261375261376261377261378261379261380261381261382261383261384261385261386261387261388261389261390261391261392261393261394261395261396261397261398261399261400261401261402261403261404261405261406261407261408261409261410261411261412261413261414261415261416261417261418261419261420261421261422261423261424261425261426261427261428261429261430261431261432261433261434261435261436261437261438261439261440261441261442261443261444261445261446261447261448261449261450261451261452261453261454261455261456261457261458261459261460261461261462261463261464261465261466261467261468261469261470261471261472261473261474261475261476261477261478261479261480261481261482261483261484261485261486261487261488261489261490261491261492261493261494261495261496261497261498261499261500261501261502261503261504261505261506261507261508261509261510261511261512261513261514261515261516261517261518261519261520261521261522261523261524261525261526261527261528261529261530261531261532261533261534261535261536261537261538261539261540261541261542261543261544261545261546261547261548261549261550261551261552261553261554261555261556261557261558261559261560261561261562261563261564261565261566261567261568261569261570261571261572261573261574261575261576261577261578261579261580261581261582261583261584261585261586261587261588261589261590261591261592261593261594261595261596261597261598261599261600261601261602261603261604261605261606261607261608261609261610261611261612261613261614261615261616261617261618261619261620261621261622261623261624261625261626261627261628261629261630261631261632261633261634261635261636261637261638261639261640261641261642261643261644261645261646261647261648261649261650261651261652261653261654261655261656261657261658261659261660261661261662261663261664261665261666261667261668261669261670261671261672261673261674261675261676261677261678261679261680261681261682261683261684261685261686261687261688261689261690261691261692261693261694261695261696261697261698261699261700261701261702261703261704261705261706261707261708261709261710261711261712261713261714261715261716261717261718261719261720261721261722261723261724261725261726261727261728261729261730261731261732261733261734261735261736261737261738261739261740261741261742261743261744261745261746261747261748261749261750261751261752261753261754261755261756261757261758261759261760261761261762261763261764261765261766261767261768261769261770261771261772261773261774261775261776261777261778261779261780261781261782261783261784261785261786261787261788261789261790261791261792261793261794261795261796261797261798261799261800261801261802261803261804261805261806261807261808261809261810261811261812261813261814261815261816261817261818261819261820261821261822261823261824261825261826261827261828261829261830261831261832261833261834261835261836261837261838261839261840261841261842261843261844261845261846261847261848261849261850261851261852261853261854261855261856261857261858261859261860261861261862261863261864261865261866261867261868261869261870261871261872261873261874261875261876261877261878261879261880261881261882261883261884261885261886261887261888261889261890261891261892261893261894261895261896261897261898261899261900261901261902261903261904261905261906261907261908261909261910261911261912261913261914261915261916261917261918261919261920261921261922261923261924261925261926261927261928261929261930261931261932261933261934261935261936261937261938261939261940261941261942261943261944261945261946261947261948261949261950261951261952261953261954261955261956261957261958261959261960261961261962261963261964261965261966261967261968261969261970261971261972261973261974261975261976261977261978261979261980261981261982261983261984261985261986261987261988261989261990261991261992261993261994261995261996261997261998261999262000262001262002262003262004262005262006262007262008262009262010262011262012262013262014262015262016262017262018262019262020262021262022262023262024262025262026262027262028262029262030262031262032262033262034262035262036262037262038262039262040262041262042262043262044262045262046262047262048262049262050262051262052262053262054262055262056262057262058262059262060262061262062262063262064262065262066262067262068262069262070262071262072262073262074262075262076262077262078262079262080262081262082262083262084262085262086262087262088262089262090262091262092262093262094262095262096262097262098262099262100262101262102262103262104262105262106262107262108262109262110262111262112262113262114262115262116262117262118262119262120262121262122262123262124262125262126262127262128262129262130262131262132262133262134262135262136262137262138262139262140262141262142262143262144262145262146262147262148262149262150262151262152262153262154262155262156262157262158262159262160262161262162262163262164262165262166262167262168262169262170262171262172262173262174262175262176262177262178262179262180262181262182262183262184262185262186262187262188262189262190262191262192262193262194262195262196262197262198262199262200262201262202262203262204262205262206262207262208262209262210262211262212262213262214262215262216262217262218262219262220262221262222262223262224262225262226262227262228262229262230262231262232262233262234262235262236262237262238262239262240262241262242262243262244262245262246262247262248262249262250262251262252262253262254262255262256262257262258262259262260262261262262262263262264262265262266262267262268262269262270262271262272262273262274262275262276262277262278262279262280262281262282262283262284262285262286262287262288262289262290262291262292262293262294262295262296262297262298262299262300262301262302262303262304262305262306262307262308262309262310262311262312262313262314262315262316262317262318262319262320262321262322262323262324262325262326262327262328262329262330262331262332262333262334262335262336262337262338262339262340262341262342262343262344262345262346262347262348262349262350262351262352262353262354262355262356262357262358262359262360262361262362262363262364262365262366262367262368262369262370262371262372262373262374262375262376262377262378262379262380262381262382262383262384262385262386262387262388262389262390262391262392262393262394262395262396262397262398262399262400262401262402262403262404262405262406262407262408262409262410262411262412262413262414262415262416262417262418262419262420262421262422262423262424262425262426262427262428262429262430262431262432262433262434262435262436262437262438262439262440262441262442262443262444262445262446262447262448262449262450262451262452262453262454262455262456262457262458262459262460262461262462262463262464262465262466262467262468262469262470262471262472262473262474262475262476262477262478262479262480262481262482262483262484262485262486262487262488262489262490262491262492262493262494262495262496262497262498262499262500262501262502262503262504262505262506262507262508262509262510262511262512262513262514262515262516262517262518262519262520262521262522262523262524262525262526262527262528262529262530262531262532262533262534262535262536262537262538262539262540262541262542262543262544262545262546262547262548262549262550262551262552262553262554262555262556262557262558262559262560262561262562262563262564262565262566262567262568262569262570262571262572262573262574262575262576262577262578262579262580262581262582262583262584262585262586262587262588262589262590262591262592262593262594262595262596262597262598262599262600262601262602262603262604262605262606262607262608262609262610262611262612262613262614262615262616262617262618262619262620262621262622262623262624262625262626262627262628262629262630262631262632262633262634262635262636262637262638262639262640262641262642262643262644262645262646262647262648262649262650262651262652262653262654262655262656262657262658262659262660262661262662262663262664262665262666262667262668262669262670262671262672262673262674262675262676262677262678262679262680262681262682262683262684262685262686262687262688262689262690262691262692262693262694262695262696262697262698262699262700262701262702262703262704262705262706262707262708262709262710262711262712262713262714262715262716262717262718262719262720262721262722262723262724262725262726262727262728262729262730262731262732262733262734262735262736262737262738262739262740262741262742262743262744262745262746262747262748262749262750262751262752262753262754262755262756262757262758262759262760262761262762262763262764262765262766262767262768262769262770262771262772262773262774262775262776262777262778262779262780262781262782262783262784262785262786262787262788262789262790262791262792262793262794262795262796262797262798262799262800262801262802262803262804262805262806262807262808262809262810262811262812262813262814262815262816262817262818262819262820262821262822262823262824262825262826262827262828262829262830262831262832262833262834262835262836262837262838262839262840262841262842262843262844262845262846262847262848262849262850262851262852262853262854262855262856262857262858262859262860262861262862262863262864262865262866262867262868262869262870262871262872262873262874262875262876262877262878262879262880262881262882262883262884262885262886262887262888262889262890262891262892262893262894262895262896262897262898262899262900262901262902262903262904262905262906262907262908262909262910262911262912262913262914262915262916262917262918262919262920262921262922262923262924262925262926262927262928262929262930262931262932262933262934262935262936262937262938262939262940262941262942262943262944262945262946262947262948262949262950262951262952262953262954262955262956262957262958262959262960262961262962262963262964262965262966262967262968262969262970262971262972262973262974262975262976262977262978262979262980262981262982262983262984262985262986262987262988262989262990262991262992262993262994262995262996262997262998262999263000263001263002263003263004263005263006263007263008263009263010263011263012263013263014263015263016263017263018263019263020263021263022263023263024263025263026263027263028263029263030263031263032263033263034263035263036263037263038263039263040263041263042263043263044263045263046263047263048263049263050263051263052263053263054263055263056263057263058263059263060263061263062263063263064263065263066263067263068263069263070263071263072263073263074263075263076263077263078263079263080263081263082263083263084263085263086263087263088263089263090263091263092263093263094263095263096263097263098263099263100263101263102263103263104263105263106263107263108263109263110263111263112263113263114263115263116263117263118263119263120263121263122263123263124263125263126263127263128263129263130263131263132263133263134263135263136263137263138263139263140263141263142263143263144263145263146263147263148263149263150263151263152263153263154263155263156263157263158263159263160263161263162263163263164263165263166263167263168263169263170263171263172263173263174263175263176263177263178263179263180263181263182263183263184263185263186263187263188263189263190263191263192263193263194263195263196263197263198263199263200263201263202263203263204263205263206263207263208263209263210263211263212263213263214263215263216263217263218263219263220263221263222263223263224263225263226263227263228263229263230263231263232263233263234263235263236263237263238263239263240263241263242263243263244263245263246263247263248263249263250263251263252263253263254263255263256263257263258263259263260263261263262263263263264263265263266263267263268263269263270263271263272263273263274263275263276263277263278263279263280263281263282263283263284263285263286263287263288263289263290263291263292263293263294263295263296263297263298263299263300263301263302263303263304263305263306263307263308263309263310263311263312263313263314263315263316263317263318263319263320263321263322263323263324263325263326263327263328263329263330263331263332263333263334263335263336263337263338263339263340263341263342263343263344263345263346263347263348263349263350263351263352263353263354263355263356263357263358263359263360263361263362263363263364263365263366263367263368263369263370263371263372263373263374263375263376263377263378263379263380263381263382263383263384263385263386263387263388263389263390263391263392263393263394263395263396263397263398263399263400263401263402263403263404263405263406263407263408263409263410263411263412263413263414263415263416263417263418263419263420263421263422263423263424263425263426263427263428263429263430263431263432263433263434263435263436263437263438263439263440263441263442263443263444263445263446263447263448263449263450263451263452263453263454263455263456263457263458263459263460263461263462263463263464263465263466263467263468263469263470263471263472263473263474263475263476263477263478263479263480263481263482263483263484263485263486263487263488263489263490263491263492263493263494263495263496263497263498263499263500263501263502263503263504263505263506263507263508263509263510263511263512263513263514263515263516263517263518263519263520263521263522263523263524263525263526263527263528263529263530263531263532263533263534263535263536263537263538263539263540263541263542263543263544263545263546263547263548263549263550263551263552263553263554263555263556263557263558263559263560263561263562263563263564263565263566263567263568263569263570263571263572263573263574263575263576263577263578263579263580263581263582263583263584263585263586263587263588263589263590263591263592263593263594263595263596263597263598263599263600263601263602263603263604263605263606263607263608263609263610263611263612263613263614263615263616263617263618263619263620263621263622263623263624263625263626263627263628263629263630263631263632263633263634263635263636263637263638263639263640263641263642263643263644263645263646263647263648263649263650263651263652263653263654263655263656263657263658263659263660263661263662263663263664263665263666263667263668263669263670263671263672263673263674263675263676263677263678263679263680263681263682263683263684263685263686263687263688263689263690263691263692263693263694263695263696263697263698263699263700263701263702263703263704263705263706263707263708263709263710263711263712263713263714263715263716263717263718263719263720263721263722263723263724263725263726263727263728263729263730263731263732263733263734263735263736263737263738263739263740263741263742263743263744263745263746263747263748263749263750263751263752263753263754263755263756263757263758263759263760263761263762263763263764263765263766263767263768263769263770263771263772263773263774263775263776263777263778263779263780263781263782263783263784263785263786263787263788263789263790263791263792263793263794263795263796263797263798263799263800263801263802263803263804263805263806263807263808263809263810263811263812263813263814263815263816263817263818263819263820263821263822263823263824263825263826263827263828263829263830263831263832263833263834263835263836263837263838263839263840263841263842263843263844263845263846263847263848263849263850263851263852263853263854263855263856263857263858263859263860263861263862263863263864263865263866263867263868263869263870263871263872263873263874263875263876263877263878263879263880263881263882263883263884263885263886263887263888263889263890263891263892263893263894263895263896263897263898263899263900263901263902263903263904263905263906263907263908263909263910263911263912263913263914263915263916263917263918263919263920263921263922263923263924263925263926263927263928263929263930263931263932263933263934263935263936263937263938263939263940263941263942263943263944263945263946263947263948263949263950263951263952263953263954263955263956263957263958263959263960263961263962263963263964263965263966263967263968263969263970263971263972263973263974263975263976263977263978263979263980263981263982263983263984263985263986263987263988263989263990263991263992263993263994263995263996263997263998263999264000264001264002264003264004264005264006264007264008264009264010264011264012264013264014264015264016264017264018264019264020264021264022264023264024264025264026264027264028264029264030264031264032264033264034264035264036264037264038264039264040264041264042264043264044264045264046264047264048264049264050264051264052264053264054264055264056264057264058264059264060264061264062264063264064264065264066264067264068264069264070264071264072264073264074264075264076264077264078264079264080264081264082264083264084264085264086264087264088264089264090264091264092264093264094264095264096264097264098264099264100264101264102264103264104264105264106264107264108264109264110264111264112264113264114264115264116264117264118264119264120264121264122264123264124264125264126264127264128264129264130264131264132264133264134264135264136264137264138264139264140264141264142264143264144264145264146264147264148264149264150264151264152264153264154264155264156264157264158264159264160264161264162264163264164264165264166264167264168264169264170264171264172264173264174264175264176264177264178264179264180264181264182264183264184264185264186264187264188264189264190264191264192264193264194264195264196264197264198264199264200264201264202264203264204264205264206264207264208264209264210264211264212264213264214264215264216264217264218264219264220264221264222264223264224264225264226264227264228264229264230264231264232264233264234264235264236264237264238264239264240264241264242264243264244264245264246264247264248264249264250264251264252264253264254264255264256264257264258264259264260264261264262264263264264264265264266264267264268264269264270264271264272264273264274264275264276264277264278264279264280264281264282264283264284264285264286264287264288264289264290264291264292264293264294264295264296264297264298264299264300264301264302264303264304264305264306264307264308264309264310264311264312264313264314264315264316264317264318264319264320264321264322264323264324264325264326264327264328264329264330264331264332264333264334264335264336264337264338264339264340264341264342264343264344264345264346264347264348264349264350264351264352264353264354264355264356264357264358264359264360264361264362264363264364264365264366264367264368264369264370264371264372264373264374264375264376264377264378264379264380264381264382264383264384264385264386264387264388264389264390264391264392264393264394264395264396264397264398264399264400264401264402264403264404264405264406264407264408264409264410264411264412264413264414264415264416264417264418264419264420264421264422264423264424264425264426264427264428264429264430264431264432264433264434264435264436264437264438264439264440264441264442264443264444264445264446264447264448264449264450264451264452264453264454264455264456264457264458264459264460264461264462264463264464264465264466264467264468264469264470264471264472264473264474264475264476264477264478264479264480264481264482264483264484264485264486264487264488264489264490264491264492264493264494264495264496264497264498264499264500264501264502264503264504264505264506264507264508264509264510264511264512264513264514264515264516264517264518264519264520264521264522264523264524264525264526264527264528264529264530264531264532264533264534264535264536264537264538264539264540264541264542264543264544264545264546264547264548264549264550264551264552264553264554264555264556264557264558264559264560264561264562264563264564264565264566264567264568264569264570264571264572264573264574264575264576264577264578264579264580264581264582264583264584264585264586264587264588264589264590264591264592264593264594264595264596264597264598264599264600264601264602264603264604264605264606264607264608264609264610264611264612264613264614264615264616264617264618264619264620264621264622264623264624264625264626264627264628264629264630264631264632264633264634264635264636264637264638264639264640264641264642264643264644264645264646264647264648264649264650264651264652264653264654264655264656264657264658264659264660264661264662264663264664264665264666264667264668264669264670264671264672264673264674264675264676264677264678264679264680264681264682264683264684264685264686264687264688264689264690264691264692264693264694264695264696264697264698264699264700264701264702264703264704264705264706264707264708264709264710264711264712264713264714264715264716264717264718264719264720264721264722264723264724264725264726264727264728264729264730264731264732264733264734264735264736264737264738264739264740264741264742264743264744264745264746264747264748264749264750264751264752264753264754264755264756264757264758264759264760264761264762264763264764264765264766264767264768264769264770264771264772264773264774264775264776264777264778264779264780264781264782264783264784264785264786264787264788264789264790264791264792264793264794264795264796264797264798264799264800264801264802264803264804264805264806264807264808264809264810264811264812264813264814264815264816264817264818264819264820264821264822264823264824264825264826264827264828264829264830264831264832264833264834264835264836264837264838264839264840264841264842264843264844264845264846264847264848264849264850264851264852264853264854264855264856264857264858264859264860264861264862264863264864264865264866264867264868264869264870264871264872264873264874264875264876264877264878264879264880264881264882264883264884264885264886264887264888264889264890264891264892264893264894264895264896264897264898264899264900264901264902264903264904264905264906264907264908264909264910264911264912264913264914264915264916264917264918264919264920264921264922264923264924264925264926264927264928264929264930264931264932264933264934264935264936264937264938264939264940264941264942264943264944264945264946264947264948264949264950264951264952264953264954264955264956264957264958264959264960264961264962264963264964264965264966264967264968264969264970264971264972264973264974264975264976264977264978264979264980264981264982264983264984264985264986264987264988264989264990264991264992264993264994264995264996264997264998264999265000265001265002265003265004265005265006265007265008265009265010265011265012265013265014265015265016265017265018265019265020265021265022265023265024265025265026265027265028265029265030265031265032265033265034265035265036265037265038265039265040265041265042265043265044265045265046265047265048265049265050265051265052265053265054265055265056265057265058265059265060265061265062265063265064265065265066265067265068265069265070265071265072265073265074265075265076265077265078265079265080265081265082265083265084265085265086265087265088265089265090265091265092265093265094265095265096265097265098265099265100265101265102265103265104265105265106265107265108265109265110265111265112265113265114265115265116265117265118265119265120265121265122265123265124265125265126265127265128265129265130265131265132265133265134265135265136265137265138265139265140265141265142265143265144265145265146265147265148265149265150265151265152265153265154265155265156265157265158265159265160265161265162265163265164265165265166265167265168265169265170265171265172265173265174265175265176265177265178265179265180265181265182265183265184265185265186265187265188265189265190265191265192265193265194265195265196265197265198265199265200265201265202265203265204265205265206265207265208265209265210265211265212265213265214265215265216265217265218265219265220265221265222265223265224265225265226265227265228265229265230265231265232265233265234265235265236265237265238265239265240265241265242265243265244265245265246265247265248265249265250265251265252265253265254265255265256265257265258265259265260265261265262265263265264265265265266265267265268265269265270265271265272265273265274265275265276265277265278265279265280265281265282265283265284265285265286265287265288265289265290265291265292265293265294265295265296265297265298265299265300265301265302265303265304265305265306265307265308265309265310265311265312265313265314265315265316265317265318265319265320265321265322265323265324265325265326265327265328265329265330265331265332265333265334265335265336265337265338265339265340265341265342265343265344265345265346265347265348265349265350265351265352265353265354265355265356265357265358265359265360265361265362265363265364265365265366265367265368265369265370265371265372265373265374265375265376265377265378265379265380265381265382265383265384265385265386265387265388265389265390265391265392265393265394265395265396265397265398265399265400265401265402265403265404265405265406265407265408265409265410265411265412265413265414265415265416265417265418265419265420265421265422265423265424265425265426265427265428265429265430265431265432265433265434265435265436265437265438265439265440265441265442265443265444265445265446265447265448265449265450265451265452265453265454265455265456265457265458265459265460265461265462265463265464265465265466265467265468265469265470265471265472265473265474265475265476265477265478265479265480265481265482265483265484265485265486265487265488265489265490265491265492265493265494265495265496265497265498265499265500265501265502265503265504265505265506265507265508265509265510265511265512265513265514265515265516265517265518265519265520265521265522265523265524265525265526265527265528265529265530265531265532265533265534265535265536265537265538265539265540265541265542265543265544265545265546265547265548265549265550265551265552265553265554265555265556265557265558265559265560265561265562265563265564265565265566265567265568265569265570265571265572265573265574265575265576265577265578265579265580265581265582265583265584265585265586265587265588265589265590265591265592265593265594265595265596265597265598265599265600265601265602265603265604265605265606265607265608265609265610265611265612265613265614265615265616265617265618265619265620265621265622265623265624265625265626265627265628265629265630265631265632265633265634265635265636265637265638265639265640265641265642265643265644265645265646265647265648265649265650265651265652265653265654265655265656265657265658265659265660265661265662265663265664265665265666265667265668265669265670265671265672265673265674265675265676265677265678265679265680265681265682265683265684265685265686265687265688265689265690265691265692265693265694265695265696265697265698265699265700265701265702265703265704265705265706265707265708265709265710265711265712265713265714265715265716265717265718265719265720265721265722265723265724265725265726265727265728265729265730265731265732265733265734265735265736265737265738265739265740265741265742265743265744265745265746265747265748265749265750265751265752265753265754265755265756265757265758265759265760265761265762265763265764265765265766265767265768265769265770265771265772265773265774265775265776265777265778265779265780265781265782265783265784265785265786265787265788265789265790265791265792265793265794265795265796265797265798265799265800265801265802265803265804265805265806265807265808265809265810265811265812265813265814265815265816265817265818265819265820265821265822265823265824265825265826265827265828265829265830265831265832265833265834265835265836265837265838265839265840265841265842265843265844265845265846265847265848265849265850265851265852265853265854265855265856265857265858265859265860265861265862265863265864265865265866265867265868265869265870265871265872265873265874265875265876265877265878265879265880265881265882265883265884265885265886265887265888265889265890265891265892265893265894265895265896265897265898265899265900265901265902265903265904265905265906265907265908265909265910265911265912265913265914265915265916265917265918265919265920265921265922265923265924265925265926265927265928265929265930265931265932265933265934265935265936265937265938265939265940265941265942265943265944265945265946265947265948265949265950265951265952265953265954265955265956265957265958265959265960265961265962265963265964265965265966265967265968265969265970265971265972265973265974265975265976265977265978265979265980265981265982265983265984265985265986265987265988265989265990265991265992265993265994265995265996265997265998265999266000266001266002266003266004266005266006266007266008266009266010266011266012266013266014266015266016266017266018266019266020266021266022266023266024266025266026266027266028266029266030266031266032266033266034266035266036266037266038266039266040266041266042266043266044266045266046266047266048266049266050266051266052266053266054266055266056266057266058266059266060266061266062266063266064266065266066266067266068266069266070266071266072266073266074266075266076266077266078266079266080266081266082266083266084266085266086266087266088266089266090266091266092266093266094266095266096266097266098266099266100266101266102266103266104266105266106266107266108266109266110266111266112266113266114266115266116266117266118266119266120266121266122266123266124266125266126266127266128266129266130266131266132266133266134266135266136266137266138266139266140266141266142266143266144266145266146266147266148266149266150266151266152266153266154266155266156266157266158266159266160266161266162266163266164266165266166266167266168266169266170266171266172266173266174266175266176266177266178266179266180266181266182266183266184266185266186266187266188266189266190266191266192266193266194266195266196266197266198266199266200266201266202266203266204266205266206266207266208266209266210266211266212266213266214266215266216266217266218266219266220266221266222266223266224266225266226266227266228266229266230266231266232266233266234266235266236266237266238266239266240266241266242266243266244266245266246266247266248266249266250266251266252266253266254266255266256266257266258266259266260266261266262266263266264266265266266266267266268266269266270266271266272266273266274266275266276266277266278266279266280266281266282266283266284266285266286266287266288266289266290266291266292266293266294266295266296266297266298266299266300266301266302266303266304266305266306266307266308266309266310266311266312266313266314266315266316266317266318266319266320266321266322266323266324266325266326266327266328266329266330266331266332266333266334266335266336266337266338266339266340266341266342266343266344266345266346266347266348266349266350266351266352266353266354266355266356266357266358266359266360266361266362266363266364266365266366266367266368266369266370266371266372266373266374266375266376266377266378266379266380266381266382266383266384266385266386266387266388266389266390266391266392266393266394266395266396266397266398266399266400266401266402266403266404266405266406266407266408266409266410266411266412266413266414266415266416266417266418266419266420266421266422266423266424266425266426266427266428266429266430266431266432266433266434266435266436266437266438266439266440266441266442266443266444266445266446266447266448266449266450266451266452266453266454266455266456266457266458266459266460266461266462266463266464266465266466266467266468266469266470266471266472266473266474266475266476266477266478266479266480266481266482266483266484266485266486266487266488266489266490266491266492266493266494266495266496266497266498266499266500266501266502266503266504266505266506266507266508266509266510266511266512266513266514266515266516266517266518266519266520266521266522266523266524266525266526266527266528266529266530266531266532266533266534266535266536266537266538266539266540266541266542266543266544266545266546266547266548266549266550266551266552266553266554266555266556266557266558266559266560266561266562266563266564266565266566266567266568266569266570266571266572266573266574266575266576266577266578266579266580266581266582266583266584266585266586266587266588266589266590266591266592266593266594266595266596266597266598266599266600266601266602266603266604266605266606266607266608266609266610266611266612266613266614266615266616266617266618266619266620266621266622266623266624266625266626266627266628266629266630266631266632266633266634266635266636266637266638266639266640266641266642266643266644266645266646266647266648266649266650266651266652266653266654266655266656266657266658266659266660266661266662266663266664266665266666266667266668266669266670266671266672266673266674266675266676266677266678266679266680266681266682266683266684266685266686266687266688266689266690266691266692266693266694266695266696266697266698266699266700266701266702266703266704266705266706266707266708266709266710266711266712266713266714266715266716266717266718266719266720266721266722266723266724266725266726266727266728266729266730266731266732266733266734266735266736266737266738266739266740266741266742266743266744266745266746266747266748266749266750266751266752266753266754266755266756266757266758266759266760266761266762266763266764266765266766266767266768266769266770266771266772266773266774266775266776266777266778266779266780266781266782266783266784266785266786266787266788266789266790266791266792266793266794266795266796266797266798266799266800266801266802266803266804266805266806266807266808266809266810266811266812266813266814266815266816266817266818266819266820266821266822266823266824266825266826266827266828266829266830266831266832266833266834266835266836266837266838266839266840266841266842266843266844266845266846266847266848266849266850266851266852266853266854266855266856266857266858266859266860266861266862266863266864266865266866266867266868266869266870266871266872266873266874266875266876266877266878266879266880266881266882266883266884266885266886266887266888266889266890266891266892266893266894266895266896266897266898266899266900266901266902266903266904266905266906266907266908266909266910266911266912266913266914266915266916266917266918266919266920266921266922266923266924266925266926266927266928266929266930266931266932266933266934266935266936266937266938266939266940266941266942266943266944266945266946266947266948266949266950266951266952266953266954266955266956266957266958266959266960266961266962266963266964266965266966266967266968266969266970266971266972266973266974266975266976266977266978266979266980266981266982266983266984266985266986266987266988266989266990266991266992266993266994266995266996266997266998266999267000267001267002267003267004267005267006267007267008267009267010267011267012267013267014267015267016267017267018267019267020267021267022267023267024267025267026267027267028267029267030267031267032267033267034267035267036267037267038267039267040267041267042267043267044267045267046267047267048267049267050267051267052267053267054267055267056267057267058267059267060267061267062267063267064267065267066267067267068267069267070267071267072267073267074267075267076267077267078267079267080267081267082267083267084267085267086267087267088267089267090267091267092267093267094267095267096267097267098267099267100267101267102267103267104267105267106267107267108267109267110267111267112267113267114267115267116267117267118267119267120267121267122267123267124267125267126267127267128267129267130267131267132267133267134267135267136267137267138267139267140267141267142267143267144267145267146267147267148267149267150267151267152267153267154267155267156267157267158267159267160267161267162267163267164267165267166267167267168267169267170267171267172267173267174267175267176267177267178267179267180267181267182267183267184267185267186267187267188267189267190267191267192267193267194267195267196267197267198267199267200267201267202267203267204267205267206267207267208267209267210267211267212267213267214267215267216267217267218267219267220267221267222267223267224267225267226267227267228267229267230267231267232267233267234267235267236267237267238267239267240267241267242267243267244267245267246267247267248267249267250267251267252267253267254267255267256267257267258267259267260267261267262267263267264267265267266267267267268267269267270267271267272267273267274267275267276267277267278267279267280267281267282267283267284267285267286267287267288267289267290267291267292267293267294267295267296267297267298267299267300267301267302267303267304267305267306267307267308267309267310267311267312267313267314267315267316267317267318267319267320267321267322267323267324267325267326267327267328267329267330267331267332267333267334267335267336267337267338267339267340267341267342267343267344267345267346267347267348267349267350267351267352267353267354267355267356267357267358267359267360267361267362267363267364267365267366267367267368267369267370267371267372267373267374267375267376267377267378267379267380267381267382267383267384267385267386267387267388267389267390267391267392267393267394267395267396267397267398267399267400267401267402267403267404267405267406267407267408267409267410267411267412267413267414267415267416267417267418267419267420267421267422267423267424267425267426267427267428267429267430267431267432267433267434267435267436267437267438267439267440267441267442267443267444267445267446267447267448267449267450267451267452267453267454267455267456267457267458267459267460267461267462267463267464267465267466267467267468267469267470267471267472267473267474267475267476267477267478267479267480267481267482267483267484267485267486267487267488267489267490267491267492267493267494267495267496267497267498267499267500267501267502267503267504267505267506267507267508267509267510267511267512267513267514267515267516267517267518267519267520267521267522267523267524267525267526267527267528267529267530267531267532267533267534267535267536267537267538267539267540267541267542267543267544267545267546267547267548267549267550267551267552267553267554267555267556267557267558267559267560267561267562267563267564267565267566267567267568267569267570267571267572267573267574267575267576267577267578267579267580267581267582267583267584267585267586267587267588267589267590267591267592267593267594267595267596267597267598267599267600267601267602267603267604267605267606267607267608267609267610267611267612267613267614267615267616267617267618267619267620267621267622267623267624267625267626267627267628267629267630267631267632267633267634267635267636267637267638267639267640267641267642267643267644267645267646267647267648267649267650267651267652267653267654267655267656267657267658267659267660267661267662267663267664267665267666267667267668267669267670267671267672267673267674267675267676267677267678267679267680267681267682267683267684267685267686267687267688267689267690267691267692267693267694267695267696267697267698267699267700267701267702267703267704267705267706267707267708267709267710267711267712267713267714267715267716267717267718267719267720267721267722267723267724267725267726267727267728267729267730267731267732267733267734267735267736267737267738267739267740267741267742267743267744267745267746267747267748267749267750267751267752267753267754267755267756267757267758267759267760267761267762267763267764267765267766267767267768267769267770267771267772267773267774267775267776267777267778267779267780267781267782267783267784267785267786267787267788267789267790267791267792267793267794267795267796267797267798267799267800267801267802267803267804267805267806267807267808267809267810267811267812267813267814267815267816267817267818267819267820267821267822267823267824267825267826267827267828267829267830267831267832267833267834267835267836267837267838267839267840267841267842267843267844267845267846267847267848267849267850267851267852267853267854267855267856267857267858267859267860267861267862267863267864267865267866267867267868267869267870267871267872267873267874267875267876267877267878267879267880267881267882267883267884267885267886267887267888267889267890267891267892267893267894267895267896267897267898267899267900267901267902267903267904267905267906267907267908267909267910267911267912267913267914267915267916267917267918267919267920267921267922267923267924267925267926267927267928267929267930267931267932267933267934267935267936267937267938267939267940267941267942267943267944267945267946267947267948267949267950267951267952267953267954267955267956267957267958267959267960267961267962267963267964267965267966267967267968267969267970267971267972267973267974267975267976267977267978267979267980267981267982267983267984267985267986267987267988267989267990267991267992267993267994267995267996267997267998267999268000268001268002268003268004268005268006268007268008268009268010268011268012268013268014268015268016268017268018268019268020268021268022268023268024268025268026268027268028268029268030268031268032268033268034268035268036268037268038268039268040268041268042268043268044268045268046268047268048268049268050268051268052268053268054268055268056268057268058268059268060268061268062268063268064268065268066268067268068268069268070268071268072268073268074268075268076268077268078268079268080268081268082268083268084268085268086268087268088268089268090268091268092268093268094268095268096268097268098268099268100268101268102268103268104268105268106268107268108268109268110268111268112268113268114268115268116268117268118268119268120268121268122268123268124268125268126268127268128268129268130268131268132268133268134268135268136268137268138268139268140268141268142268143268144268145268146268147268148268149268150268151268152268153268154268155268156268157268158268159268160268161268162268163268164268165268166268167268168268169268170268171268172268173268174268175268176268177268178268179268180268181268182268183268184268185268186268187268188268189268190268191268192268193268194268195268196268197268198268199268200268201268202268203268204268205268206268207268208268209268210268211268212268213268214268215268216268217268218268219268220268221268222268223268224268225268226268227268228268229268230268231268232268233268234268235268236268237268238268239268240268241268242268243268244268245268246268247268248268249268250268251268252268253268254268255268256268257268258268259268260268261268262268263268264268265268266268267268268268269268270268271268272268273268274268275268276268277268278268279268280268281268282268283268284268285268286268287268288268289268290268291268292268293268294268295268296268297268298268299268300268301268302268303268304268305268306268307268308268309268310268311268312268313268314268315268316268317268318268319268320268321268322268323268324268325268326268327268328268329268330268331268332268333268334268335268336268337268338268339268340268341268342268343268344268345268346268347268348268349268350268351268352268353268354268355268356268357268358268359268360268361268362268363268364268365268366268367268368268369268370268371268372268373268374268375268376268377268378268379268380268381268382268383268384268385268386268387268388268389268390268391268392268393268394268395268396268397268398268399268400268401268402268403268404268405268406268407268408268409268410268411268412268413268414268415268416268417268418268419268420268421268422268423268424268425268426268427268428268429268430268431268432268433268434268435268436268437268438268439268440268441268442268443268444268445268446268447268448268449268450268451268452268453268454268455268456268457268458268459268460268461268462268463268464268465268466268467268468268469268470268471268472268473268474268475268476268477268478268479268480268481268482268483268484268485268486268487268488268489268490268491268492268493268494268495268496268497268498268499268500268501268502268503268504268505268506268507268508268509268510268511268512268513268514268515268516268517268518268519268520268521268522268523268524268525268526268527268528268529268530268531268532268533268534268535268536268537268538268539268540268541268542268543268544268545268546268547268548268549268550268551268552268553268554268555268556268557268558268559268560268561268562268563268564268565268566268567268568268569268570268571268572268573268574268575268576268577268578268579268580268581268582268583268584268585268586268587268588268589268590268591268592268593268594268595268596268597268598268599268600268601268602268603268604268605268606268607268608268609268610268611268612268613268614268615268616268617268618268619268620268621268622268623268624268625268626268627268628268629268630268631268632268633268634268635268636268637268638268639268640268641268642268643268644268645268646268647268648268649268650268651268652268653268654268655268656268657268658268659268660268661268662268663268664268665268666268667268668268669268670268671268672268673268674268675268676268677268678268679268680268681268682268683268684268685268686268687268688268689268690268691268692268693268694268695268696268697268698268699268700268701268702268703268704268705268706268707268708268709268710268711268712268713268714268715268716268717268718268719268720268721268722268723268724268725268726268727268728268729268730268731268732268733268734268735268736268737268738268739268740268741268742268743268744268745268746268747268748268749268750268751268752268753268754268755268756268757268758268759268760268761268762268763268764268765268766268767268768268769268770268771268772268773268774268775268776268777268778268779268780268781268782268783268784268785268786268787268788268789268790268791268792268793268794268795268796268797268798268799268800268801268802268803268804268805268806268807268808268809268810268811268812268813268814268815268816268817268818268819268820268821268822268823268824268825268826268827268828268829268830268831268832268833268834268835268836268837268838268839268840268841268842268843268844268845268846268847268848268849268850268851268852268853268854268855268856268857268858268859268860268861268862268863268864268865268866268867268868268869268870268871268872268873268874268875268876268877268878268879268880268881268882268883268884268885268886268887268888268889268890268891268892268893268894268895268896268897268898268899268900268901268902268903268904268905268906268907268908268909268910268911268912268913268914268915268916268917268918268919268920268921268922268923268924268925268926268927268928268929268930268931268932268933268934268935268936268937268938268939268940268941268942268943268944268945268946268947268948268949268950268951268952268953268954268955268956268957268958268959268960268961268962268963268964268965268966268967268968268969268970268971268972268973268974268975268976268977268978268979268980268981268982268983268984268985268986268987268988268989268990268991268992268993268994268995268996268997268998268999269000269001269002269003269004269005269006269007269008269009269010269011269012269013269014269015269016269017269018269019269020269021269022269023269024269025269026269027269028269029269030269031269032269033269034269035269036269037269038269039269040269041269042269043269044269045269046269047269048269049269050269051269052269053269054269055269056269057269058269059269060269061269062269063269064269065269066269067269068269069269070269071269072269073269074269075269076269077269078269079269080269081269082269083269084269085269086269087269088269089269090269091269092269093269094269095269096269097269098269099269100269101269102269103269104269105269106269107269108269109269110269111269112269113269114269115269116269117269118269119269120269121269122269123269124269125269126269127269128269129269130269131269132269133269134269135269136269137269138269139269140269141269142269143269144269145269146269147269148269149269150269151269152269153269154269155269156269157269158269159269160269161269162269163269164269165269166269167269168269169269170269171269172269173269174269175269176269177269178269179269180269181269182269183269184269185269186269187269188269189269190269191269192269193269194269195269196269197269198269199269200269201269202269203269204269205269206269207269208269209269210269211269212269213269214269215269216269217269218269219269220269221269222269223269224269225269226269227269228269229269230269231269232269233269234269235269236269237269238269239269240269241269242269243269244269245269246269247269248269249269250269251269252269253269254269255269256269257269258269259269260269261269262269263269264269265269266269267269268269269269270269271269272269273269274269275269276269277269278269279269280269281269282269283269284269285269286269287269288269289269290269291269292269293269294269295269296269297269298269299269300269301269302269303269304269305269306269307269308269309269310269311269312269313269314269315269316269317269318269319269320269321269322269323269324269325269326269327269328269329269330269331269332269333269334269335269336269337269338269339269340269341269342269343269344269345269346269347269348269349269350269351269352269353269354269355269356269357269358269359269360269361269362269363269364269365269366269367269368269369269370269371269372269373269374269375269376269377269378269379269380269381269382269383269384269385269386269387269388269389269390269391269392269393269394269395269396269397269398269399269400269401269402269403269404269405269406269407269408269409269410269411269412269413269414269415269416269417269418269419269420269421269422269423269424269425269426269427269428269429269430269431269432269433269434269435269436269437269438269439269440269441269442269443269444269445269446269447269448269449269450269451269452269453269454269455269456269457269458269459269460269461269462269463269464269465269466269467269468269469269470269471269472269473269474269475269476269477269478269479269480269481269482269483269484269485269486269487269488269489269490269491269492269493269494269495269496269497269498269499269500269501269502269503269504269505269506269507269508269509269510269511269512269513269514269515269516269517269518269519269520269521269522269523269524269525269526269527269528269529269530269531269532269533269534269535269536269537269538269539269540269541269542269543269544269545269546269547269548269549269550269551269552269553269554269555269556269557269558269559269560269561269562269563269564269565269566269567269568269569269570269571269572269573269574269575269576269577269578269579269580269581269582269583269584269585269586269587269588269589269590269591269592269593269594269595269596269597269598269599269600269601269602269603269604269605269606269607269608269609269610269611269612269613269614269615269616269617269618269619269620269621269622269623269624269625269626269627269628269629269630269631269632269633269634269635269636269637269638269639269640269641269642269643269644269645269646269647269648269649269650269651269652269653269654269655269656269657269658269659269660269661269662269663269664269665269666269667269668269669269670269671269672269673269674269675269676269677269678269679269680269681269682269683269684269685269686269687269688269689269690269691269692269693269694269695269696269697269698269699269700269701269702269703269704269705269706269707269708269709269710269711269712269713269714269715269716269717269718269719269720269721269722269723269724269725269726269727269728269729269730269731269732269733269734269735269736269737269738269739269740269741269742269743269744269745269746269747269748269749269750269751269752269753269754269755269756269757269758269759269760269761269762269763269764269765269766269767269768269769269770269771269772269773269774269775269776269777269778269779269780269781269782269783269784269785269786269787269788269789269790269791269792269793269794269795269796269797269798269799269800269801269802269803269804269805269806269807269808269809269810269811269812269813269814269815269816269817269818269819269820269821269822269823269824269825269826269827269828269829269830269831269832269833269834269835269836269837269838269839269840269841269842269843269844269845269846269847269848269849269850269851269852269853269854269855269856269857269858269859269860269861269862269863269864269865269866269867269868269869269870269871269872269873269874269875269876269877269878269879269880269881269882269883269884269885269886269887269888269889269890269891269892269893269894269895269896269897269898269899269900269901269902269903269904269905269906269907269908269909269910269911269912269913269914269915269916269917269918269919269920269921269922269923269924269925269926269927269928269929269930269931269932269933269934269935269936269937269938269939269940269941269942269943269944269945269946269947269948269949269950269951269952269953269954269955269956269957269958269959269960269961269962269963269964269965269966269967269968269969269970269971269972269973269974269975269976269977269978269979269980269981269982269983269984269985269986269987269988269989269990269991269992269993269994269995269996269997269998269999270000270001270002270003270004270005270006270007270008270009270010270011270012270013270014270015270016270017270018270019270020270021270022270023270024270025270026270027270028270029270030270031270032270033270034270035270036270037270038270039270040270041270042270043270044270045270046270047270048270049270050270051270052270053270054270055270056270057270058270059270060270061270062270063270064270065270066270067270068270069270070270071270072270073270074270075270076270077270078270079270080270081270082270083270084270085270086270087270088270089270090270091270092270093270094270095270096270097270098270099270100270101270102270103270104270105270106270107270108270109270110270111270112270113270114270115270116270117270118270119270120270121270122270123270124270125270126270127270128270129270130270131270132270133270134270135270136270137270138270139270140270141270142270143270144270145270146270147270148270149270150270151270152270153270154270155270156270157270158270159270160270161270162270163270164270165270166270167270168270169270170270171270172270173270174270175270176270177270178270179270180270181270182270183270184270185270186270187270188270189270190270191270192270193270194270195270196270197270198270199270200270201270202270203270204270205270206270207270208270209270210270211270212270213270214270215270216270217270218270219270220270221270222270223270224270225270226270227270228270229270230270231270232270233270234270235270236270237270238270239270240270241270242270243270244270245270246270247270248270249270250270251270252270253270254270255270256270257270258270259270260270261270262270263270264270265270266270267270268270269270270270271270272270273270274270275270276270277270278270279270280270281270282270283270284270285270286270287270288270289270290270291270292270293270294270295270296270297270298270299270300270301270302270303270304270305270306270307270308270309270310270311270312270313270314270315270316270317270318270319270320270321270322270323270324270325270326270327270328270329270330270331270332270333270334270335270336270337270338270339270340270341270342270343270344270345270346270347270348270349270350270351270352270353270354270355270356270357270358270359270360270361270362270363270364270365270366270367270368270369270370270371270372270373270374270375270376270377270378270379270380270381270382270383270384270385270386270387270388270389270390270391270392270393270394270395270396270397270398270399270400270401270402270403270404270405270406270407270408270409270410270411270412270413270414270415270416270417270418270419270420270421270422270423270424270425270426270427270428270429270430270431270432270433270434270435270436270437270438270439270440270441270442270443270444270445270446270447270448270449270450270451270452270453270454270455270456270457270458270459270460270461270462270463270464270465270466270467270468270469270470270471270472270473270474270475270476270477270478270479270480270481270482270483270484270485270486270487270488270489270490270491270492270493270494270495270496270497270498270499270500270501270502270503270504270505270506270507270508270509270510270511270512270513270514270515270516270517270518270519270520270521270522270523270524270525270526270527270528270529270530270531270532270533270534270535270536270537270538270539270540270541270542270543270544270545270546270547270548270549270550270551270552270553270554270555270556270557270558270559270560270561270562270563270564270565270566270567270568270569270570270571270572270573270574270575270576270577270578270579270580270581270582270583270584270585270586270587270588270589270590270591270592270593270594270595270596270597270598270599270600270601270602270603270604270605270606270607270608270609270610270611270612270613270614270615270616270617270618270619270620270621270622270623270624270625270626270627270628270629270630270631270632270633270634270635270636270637270638270639270640270641270642270643270644270645270646270647270648270649270650270651270652270653270654270655270656270657270658270659270660270661270662270663270664270665270666270667270668270669270670270671270672270673270674270675270676270677270678270679270680270681270682270683270684270685270686270687270688270689270690270691270692270693270694270695270696270697270698270699270700270701270702270703270704270705270706270707270708270709270710270711270712270713270714270715270716270717270718270719270720270721270722270723270724270725270726270727270728270729270730270731270732270733270734270735270736270737270738270739270740270741270742270743270744270745270746270747270748270749270750270751270752270753270754270755270756270757270758270759270760270761270762270763270764270765270766270767270768270769270770270771270772270773270774270775270776270777270778270779270780270781270782270783270784270785270786270787270788270789270790270791270792270793270794270795270796270797270798270799270800270801270802270803270804270805270806270807270808270809270810270811270812270813270814270815270816270817270818270819270820270821270822270823270824270825270826270827270828270829270830270831270832270833270834270835270836270837270838270839270840270841270842270843270844270845270846270847270848270849270850270851270852270853270854270855270856270857270858270859270860270861270862270863270864270865270866270867270868270869270870270871270872270873270874270875270876270877270878270879270880270881270882270883270884270885270886270887270888270889270890270891270892270893270894270895270896270897270898270899270900270901270902270903270904270905270906270907270908270909270910270911270912270913270914270915270916270917270918270919270920270921270922270923270924270925270926270927270928270929270930270931270932270933270934270935270936270937270938270939270940270941270942270943270944270945270946270947270948270949270950270951270952270953270954270955270956270957270958270959270960270961270962270963270964270965270966270967270968270969270970270971270972270973270974270975270976270977270978270979270980270981270982270983270984270985270986270987270988270989270990270991270992270993270994270995270996270997270998270999271000271001271002271003271004271005271006271007271008271009271010271011271012271013271014271015271016271017271018271019271020271021271022271023271024271025271026271027271028271029271030271031271032271033271034271035271036271037271038271039271040271041271042271043271044271045271046271047271048271049271050271051271052271053271054271055271056271057271058271059271060271061271062271063271064271065271066271067271068271069271070271071271072271073271074271075271076271077271078271079271080271081271082271083271084271085271086271087271088271089271090271091271092271093271094271095271096271097271098271099271100271101271102271103271104271105271106271107271108271109271110271111271112271113271114271115271116271117271118271119271120271121271122271123271124271125271126271127271128271129271130271131271132271133271134271135271136271137271138271139271140271141271142271143271144271145271146271147271148271149271150271151271152271153271154271155271156271157271158271159271160271161271162271163271164271165271166271167271168271169271170271171271172271173271174271175271176271177271178271179271180271181271182271183271184271185271186271187271188271189271190271191271192271193271194271195271196271197271198271199271200271201271202271203271204271205271206271207271208271209271210271211271212271213271214271215271216271217271218271219271220271221271222271223271224271225271226271227271228271229271230271231271232271233271234271235271236271237271238271239271240271241271242271243271244271245271246271247271248271249271250271251271252271253271254271255271256271257271258271259271260271261271262271263271264271265271266271267271268271269271270271271271272271273271274271275271276271277271278271279271280271281271282271283271284271285271286271287271288271289271290271291271292271293271294271295271296271297271298271299271300271301271302271303271304271305271306271307271308271309271310271311271312271313271314271315271316271317271318271319271320271321271322271323271324271325271326271327271328271329271330271331271332271333271334271335271336271337271338271339271340271341271342271343271344271345271346271347271348271349271350271351271352271353271354271355271356271357271358271359271360271361271362271363271364271365271366271367271368271369271370271371271372271373271374271375271376271377271378271379271380271381271382271383271384271385271386271387271388271389271390271391271392271393271394271395271396271397271398271399271400271401271402271403271404271405271406271407271408271409271410271411271412271413271414271415271416271417271418271419271420271421271422271423271424271425271426271427271428271429271430271431271432271433271434271435271436271437271438271439271440271441271442271443271444271445271446271447271448271449271450271451271452271453271454271455271456271457271458271459271460271461271462271463271464271465271466271467271468271469271470271471271472271473271474271475271476271477271478271479271480271481271482271483271484271485271486271487271488271489271490271491271492271493271494271495271496271497271498271499271500271501271502271503271504271505271506271507271508271509271510271511271512271513271514271515271516271517271518271519271520271521271522271523271524271525271526271527271528271529271530271531271532271533271534271535271536271537271538271539271540271541271542271543271544271545271546271547271548271549271550271551271552271553271554271555271556271557271558271559271560271561271562271563271564271565271566271567271568271569271570271571271572271573271574271575271576271577271578271579271580271581271582271583271584271585271586271587271588271589271590271591271592271593271594271595271596271597271598271599271600271601271602271603271604271605271606271607271608271609271610271611271612271613271614271615271616271617271618271619271620271621271622271623271624271625271626271627271628271629271630271631271632271633271634271635271636271637271638271639271640271641271642271643271644271645271646271647271648271649271650271651271652271653271654271655271656271657271658271659271660271661271662271663271664271665271666271667271668271669271670271671271672271673271674271675271676271677271678271679271680271681271682271683271684271685271686271687271688271689271690271691271692271693271694271695271696271697271698271699271700271701271702271703271704271705271706271707271708271709271710271711271712271713271714271715271716271717271718271719271720271721271722271723271724271725271726271727271728271729271730271731271732271733271734271735271736271737271738271739271740271741271742271743271744271745271746271747271748271749271750271751271752271753271754271755271756271757271758271759271760271761271762271763271764271765271766271767271768271769271770271771271772271773271774271775271776271777271778271779271780271781271782271783271784271785271786271787271788271789271790271791271792271793271794271795271796271797271798271799271800271801271802271803271804271805271806271807271808271809271810271811271812271813271814271815271816271817271818271819271820271821271822271823271824271825271826271827271828271829271830271831271832271833271834271835271836271837271838271839271840271841271842271843271844271845271846271847271848271849271850271851271852271853271854271855271856271857271858271859271860271861271862271863271864271865271866271867271868271869271870271871271872271873271874271875271876271877271878271879271880271881271882271883271884271885271886271887271888271889271890271891271892271893271894271895271896271897271898271899271900271901271902271903271904271905271906271907271908271909271910271911271912271913271914271915271916271917271918271919271920271921271922271923271924271925271926271927271928271929271930271931271932271933271934271935271936271937271938271939271940271941271942271943271944271945271946271947271948271949271950271951271952271953271954271955271956271957271958271959271960271961271962271963271964271965271966271967271968271969271970271971271972271973271974271975271976271977271978271979271980271981271982271983271984271985271986271987271988271989271990271991271992271993271994271995271996271997271998271999272000272001272002272003272004272005272006272007272008272009272010272011272012272013272014272015272016272017272018272019272020272021272022272023272024272025272026272027272028272029272030272031272032272033272034272035272036272037272038272039272040272041272042272043272044272045272046272047272048272049272050272051272052272053272054272055272056272057272058272059272060272061272062272063272064272065272066272067272068272069272070272071272072272073272074272075272076272077272078272079272080272081272082272083272084272085272086272087272088272089272090272091272092272093272094272095272096272097272098272099272100272101272102272103272104272105272106272107272108272109272110272111272112272113272114272115272116272117272118272119272120272121272122272123272124272125272126272127272128272129272130272131272132272133272134272135272136272137272138272139272140272141272142272143272144272145272146272147272148272149272150272151272152272153272154272155272156272157272158272159272160272161272162272163272164272165272166272167272168272169272170272171272172272173272174272175272176272177272178272179272180272181272182272183272184272185272186272187272188272189272190272191272192272193272194272195272196272197272198272199272200272201272202272203272204272205272206272207272208272209272210272211272212272213272214272215272216272217272218272219272220272221272222272223272224272225272226272227272228272229272230272231272232272233272234272235272236272237272238272239272240272241272242272243272244272245272246272247272248272249272250272251272252272253272254272255272256272257272258272259272260272261272262272263272264272265272266272267272268272269272270272271272272272273272274272275272276272277272278272279272280272281272282272283272284272285272286272287272288272289272290272291272292272293272294272295272296272297272298272299272300272301272302272303272304272305272306272307272308272309272310272311272312272313272314272315272316272317272318272319272320272321272322272323272324272325272326272327272328272329272330272331272332272333272334272335272336272337272338272339272340272341272342272343272344272345272346272347272348272349272350272351272352272353272354272355272356272357272358272359272360272361272362272363272364272365272366272367272368272369272370272371272372272373272374272375272376272377272378272379272380272381272382272383272384272385272386272387272388272389272390272391272392272393272394272395272396272397272398272399272400272401272402272403272404272405272406272407272408272409272410272411272412272413272414272415272416272417272418272419272420272421272422272423272424272425272426272427272428272429272430272431272432272433272434272435272436272437272438272439272440272441272442272443272444272445272446272447272448272449272450272451272452272453272454272455272456272457272458272459272460272461272462272463272464272465272466272467272468272469272470272471272472272473272474272475272476272477272478272479272480272481272482272483272484272485272486272487272488272489272490272491272492272493272494272495272496272497272498272499272500272501272502272503272504272505272506272507272508272509272510272511272512272513272514272515272516272517272518272519272520272521272522272523272524272525272526272527272528272529272530272531272532272533272534272535272536272537272538272539272540272541272542272543272544272545272546272547272548272549272550272551272552272553272554272555272556272557272558272559272560272561272562272563272564272565272566272567272568272569272570272571272572272573272574272575272576272577272578272579272580272581272582272583272584272585272586272587272588272589272590272591272592272593272594272595272596272597272598272599272600272601272602272603272604272605272606272607272608272609272610272611272612272613272614272615272616272617272618272619272620272621272622272623272624272625272626272627272628272629272630272631272632272633272634272635272636272637272638272639272640272641272642272643272644272645272646272647272648272649272650272651272652272653272654272655272656272657272658272659272660272661272662272663272664272665272666272667272668272669272670272671272672272673272674272675272676272677272678272679272680272681272682272683272684272685272686272687272688272689272690272691272692272693272694272695272696272697272698272699272700272701272702272703272704272705272706272707272708272709272710272711272712272713272714272715272716272717272718272719272720272721272722272723272724272725272726272727272728272729272730272731272732272733272734272735272736272737272738272739272740272741272742272743272744272745272746272747272748272749272750272751272752272753272754272755272756272757272758272759272760272761272762272763272764272765272766272767272768272769272770272771272772272773272774272775272776272777272778272779272780272781272782272783272784272785272786272787272788272789272790272791272792272793272794272795272796272797272798272799272800272801272802272803272804272805272806272807272808272809272810272811272812272813272814272815272816272817272818272819272820272821272822272823272824272825272826272827272828272829272830272831272832272833272834272835272836272837272838272839272840272841272842272843272844272845272846272847272848272849272850272851272852272853272854272855272856272857272858272859272860272861272862272863272864272865272866272867272868272869272870272871272872272873272874272875272876272877272878272879272880272881272882272883272884272885272886272887272888272889272890272891272892272893272894272895272896272897272898272899272900272901272902272903272904272905272906272907272908272909272910272911272912272913272914272915272916272917272918272919272920272921272922272923272924272925272926272927272928272929272930272931272932272933272934272935272936272937272938272939272940272941272942272943272944272945272946272947272948272949272950272951272952272953272954272955272956272957272958272959272960272961272962272963272964272965272966272967272968272969272970272971272972272973272974272975272976272977272978272979272980272981272982272983272984272985272986272987272988272989272990272991272992272993272994272995272996272997272998272999273000273001273002273003273004273005273006273007273008273009273010273011273012273013273014273015273016273017273018273019273020273021273022273023273024273025273026273027273028273029273030273031273032273033273034273035273036273037273038273039273040273041273042273043273044273045273046273047273048273049273050273051273052273053273054273055273056273057273058273059273060273061273062273063273064273065273066273067273068273069273070273071273072273073273074273075273076273077273078273079273080273081273082273083273084273085273086273087273088273089273090273091273092273093273094273095273096273097273098273099273100273101273102273103273104273105273106273107273108273109273110273111273112273113273114273115273116273117273118273119273120273121273122273123273124273125273126273127273128273129273130273131273132273133273134273135273136273137273138273139273140273141273142273143273144273145273146273147273148273149273150273151273152273153273154273155273156273157273158273159273160273161273162273163273164273165273166273167273168273169273170273171273172273173273174273175273176273177273178273179273180273181273182273183273184273185273186273187273188273189273190273191273192273193273194273195273196273197273198273199273200273201273202273203273204273205273206273207273208273209273210273211273212273213273214273215273216273217273218273219273220273221273222273223273224273225273226273227273228273229273230273231273232273233273234273235273236273237273238273239273240273241273242273243273244273245273246273247273248273249273250273251273252273253273254273255273256273257273258273259273260273261273262273263273264273265273266273267273268273269273270273271273272273273273274273275273276273277273278273279273280273281273282273283273284273285273286273287273288273289273290273291273292273293273294273295273296273297273298273299273300273301273302273303273304273305273306273307273308273309273310273311273312273313273314273315273316273317273318273319273320273321273322273323273324273325273326273327273328273329273330273331273332273333273334273335273336273337273338273339273340273341273342273343273344273345273346273347273348273349273350273351273352273353273354273355273356273357273358273359273360273361273362273363273364273365273366273367273368273369273370273371273372273373273374273375273376273377273378273379273380273381273382273383273384273385273386273387273388273389273390273391273392273393273394273395273396273397273398273399273400273401273402273403273404273405273406273407273408273409273410273411273412273413273414273415273416273417273418273419273420273421273422273423273424273425273426273427273428273429273430273431273432273433273434273435273436273437273438273439273440273441273442273443273444273445273446273447273448273449273450273451273452273453273454273455273456273457273458273459273460273461273462273463273464273465273466273467273468273469273470273471273472273473273474273475273476273477273478273479273480273481273482273483273484273485273486273487273488273489273490273491273492273493273494273495273496273497273498273499273500273501273502273503273504273505273506273507273508273509273510273511273512273513273514273515273516273517273518273519273520273521273522273523273524273525273526273527273528273529273530273531273532273533273534273535273536273537273538273539273540273541273542273543273544273545273546273547273548273549273550273551273552273553273554273555273556273557273558273559273560273561273562273563273564273565273566273567273568273569273570273571273572273573273574273575273576273577273578273579273580273581273582273583273584273585273586273587273588273589273590273591273592273593273594273595273596273597273598273599273600273601273602273603273604273605273606273607273608273609273610273611273612273613273614273615273616273617273618273619273620273621273622273623273624273625273626273627273628273629273630273631273632273633273634273635273636273637273638273639273640273641273642273643273644273645273646273647273648273649273650273651273652273653273654273655273656273657273658273659273660273661273662273663273664273665273666273667273668273669273670273671273672273673273674273675273676273677273678273679273680273681273682273683273684273685273686273687273688273689273690273691273692273693273694273695273696273697273698273699273700273701273702273703273704273705273706273707273708273709273710273711273712273713273714273715273716273717273718273719273720273721273722273723273724273725273726273727273728273729273730273731273732273733273734273735273736273737273738273739273740273741273742273743273744273745273746273747273748273749273750273751273752273753273754273755273756273757273758273759273760273761273762273763273764273765273766273767273768273769273770273771273772273773273774273775273776273777273778273779273780273781273782273783273784273785273786273787273788273789273790273791273792273793273794273795273796273797273798273799273800273801273802273803273804273805273806273807273808273809273810273811273812273813273814273815273816273817273818273819273820273821273822273823273824273825273826273827273828273829273830273831273832273833273834273835273836273837273838273839273840273841273842273843273844273845273846273847273848273849273850273851273852273853273854273855273856273857273858273859273860273861273862273863273864273865273866273867273868273869273870273871273872273873273874273875273876273877273878273879273880273881273882273883273884273885273886273887273888273889273890273891273892273893273894273895273896273897273898273899273900273901273902273903273904273905273906273907273908273909273910273911273912273913273914273915273916273917273918273919273920273921273922273923273924273925273926273927273928273929273930273931273932273933273934273935273936273937273938273939273940273941273942273943273944273945273946273947273948273949273950273951273952273953273954273955273956273957273958273959273960273961273962273963273964273965273966273967273968273969273970273971273972273973273974273975273976273977273978273979273980273981273982273983273984273985273986273987273988273989273990273991273992273993273994273995273996273997273998273999274000274001274002274003274004274005274006274007274008274009274010274011274012274013274014274015274016274017274018274019274020274021274022274023274024274025274026274027274028274029274030274031274032274033274034274035274036274037274038274039274040274041274042274043274044274045274046274047274048274049274050274051274052274053274054274055274056274057274058274059274060274061274062274063274064274065274066274067274068274069274070274071274072274073274074274075274076274077274078274079274080274081274082274083274084274085274086274087274088274089274090274091274092274093274094274095274096274097274098274099274100274101274102274103274104274105274106274107274108274109274110274111274112274113274114274115274116274117274118274119274120274121274122274123274124274125274126274127274128274129274130274131274132274133274134274135274136274137274138274139274140274141274142274143274144274145274146274147274148274149274150274151274152274153274154274155274156274157274158274159274160274161274162274163274164274165274166274167274168274169274170274171274172274173274174274175274176274177274178274179274180274181274182274183274184274185274186274187274188274189274190274191274192274193274194274195274196274197274198274199274200274201274202274203274204274205274206274207274208274209274210274211274212274213274214274215274216274217274218274219274220274221274222274223274224274225274226274227274228274229274230274231274232274233274234274235274236274237274238274239274240274241274242274243274244274245274246274247274248274249274250274251274252274253274254274255274256274257274258274259274260274261274262274263274264274265274266274267274268274269274270274271274272274273274274274275274276274277274278274279274280274281274282274283274284274285274286274287274288274289274290274291274292274293274294274295274296274297274298274299274300274301274302274303274304274305274306274307274308274309274310274311274312274313274314274315274316274317274318274319274320274321274322274323274324274325274326274327274328274329274330274331274332274333274334274335274336274337274338274339274340274341274342274343274344274345274346274347274348274349274350274351274352274353274354274355274356274357274358274359274360274361274362274363274364274365274366274367274368274369274370274371274372274373274374274375274376274377274378274379274380274381274382274383274384274385274386274387274388274389274390274391274392274393274394274395274396274397274398274399274400274401274402274403274404274405274406274407274408274409274410274411274412274413274414274415274416274417274418274419274420274421274422274423274424274425274426274427274428274429274430274431274432274433274434274435274436274437274438274439274440274441274442274443274444274445274446274447274448274449274450274451274452274453274454274455274456274457274458274459274460274461274462274463274464274465274466274467274468274469274470274471274472274473274474274475274476274477274478274479274480274481274482274483274484274485274486274487274488274489274490274491274492274493274494274495274496274497274498274499274500274501274502274503274504274505274506274507274508274509274510274511274512274513274514274515274516274517274518274519274520274521274522274523274524274525274526274527274528274529274530274531274532274533274534274535274536274537274538274539274540274541274542274543274544274545274546274547274548274549274550274551274552274553274554274555274556274557274558274559274560274561274562274563274564274565274566274567274568274569274570274571274572274573274574274575274576274577274578274579274580274581274582274583274584274585274586274587274588274589274590274591274592274593274594274595274596274597274598274599274600274601274602274603274604274605274606274607274608274609274610274611274612274613274614274615274616274617274618274619274620274621274622274623274624274625274626274627274628274629274630274631274632274633274634274635274636274637274638274639274640274641274642274643274644274645274646274647274648274649274650274651274652274653274654274655274656274657274658274659274660274661274662274663274664274665274666274667274668274669274670274671274672274673274674274675274676274677274678274679274680274681274682274683274684274685274686274687274688274689274690274691274692274693274694274695274696274697274698274699274700274701274702274703274704274705274706274707274708274709274710274711274712274713274714274715274716274717274718274719274720274721274722274723274724274725274726274727274728274729274730274731274732274733274734274735274736274737274738274739274740274741274742274743274744274745274746274747274748274749274750274751274752274753274754274755274756274757274758274759274760274761274762274763274764274765274766274767274768274769274770274771274772274773274774274775274776274777274778274779274780274781274782274783274784274785274786274787274788274789274790274791274792274793274794274795274796274797274798274799274800274801274802274803274804274805274806274807274808274809274810274811274812274813274814274815274816274817274818274819274820274821274822274823274824274825274826274827274828274829274830274831274832274833274834274835274836274837274838274839274840274841274842274843274844274845274846274847274848274849274850274851274852274853274854274855274856274857274858274859274860274861274862274863274864274865274866274867274868274869274870274871274872274873274874274875274876274877274878274879274880274881274882274883274884274885274886274887274888274889274890274891274892274893274894274895274896274897274898274899274900274901274902274903274904274905274906274907274908274909274910274911274912274913274914274915274916274917274918274919274920274921274922274923274924274925274926274927274928274929274930274931274932274933274934274935274936274937274938274939274940274941274942274943274944274945274946274947274948274949274950274951274952274953274954274955274956274957274958274959274960274961274962274963274964274965274966274967274968274969274970274971274972274973274974274975274976274977274978274979274980274981274982274983274984274985274986274987274988274989274990274991274992274993274994274995274996274997274998274999275000275001275002275003275004275005275006275007275008275009275010275011275012275013275014275015275016275017275018275019275020275021275022275023275024275025275026275027275028275029275030275031275032275033275034275035275036275037275038275039275040275041275042275043275044275045275046275047275048275049275050275051275052275053275054275055275056275057275058275059275060275061275062275063275064275065275066275067275068275069275070275071275072275073275074275075275076275077275078275079275080275081275082275083275084275085275086275087275088275089275090275091275092275093275094275095275096275097275098275099275100275101275102275103275104275105275106275107275108275109275110275111275112275113275114275115275116275117275118275119275120275121275122275123275124275125275126275127275128275129275130275131275132275133275134275135275136275137275138275139275140275141275142275143275144275145275146275147275148275149275150275151275152275153275154275155275156275157275158275159275160275161275162275163275164275165275166275167275168275169275170275171275172275173275174275175275176275177275178275179275180275181275182275183275184275185275186275187275188275189275190275191275192275193275194275195275196275197275198275199275200275201275202275203275204275205275206275207275208275209275210275211275212275213275214275215275216275217275218275219275220275221275222275223275224275225275226275227275228275229275230275231275232275233275234275235275236275237275238275239275240275241275242275243275244275245275246
  1. .\" Man page generated from reStructuredText.
  2. .
  3. .TH "SALT" "7" "Jul 07, 2020" "3001.1" "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. _your_current_dir_ = ...
  4582. ROOT_DIR = _your_current_dir_ + "/salt/root"
  4583. # you need to edit this
  4584. _location_of_source_code_ = ...
  4585. INSTALL_DIR = _location_of_source_code_
  4586. CONFIG_DIR = ROOT_DIR + "/etc/salt"
  4587. CACHE_DIR = ROOT_DIR + "/var/cache/salt"
  4588. SOCK_DIR = ROOT_DIR + "/var/run/salt"
  4589. SRV_ROOT_DIR = ROOT_DIR + "/srv"
  4590. BASE_FILE_ROOTS_DIR = ROOT_DIR + "/srv/salt"
  4591. BASE_PILLAR_ROOTS_DIR = ROOT_DIR + "/srv/pillar"
  4592. BASE_MASTER_ROOTS_DIR = ROOT_DIR + "/srv/salt\-master"
  4593. LOGS_DIR = ROOT_DIR + "/var/log/salt"
  4594. PIDFILE_DIR = ROOT_DIR + "/var/run"
  4595. CLOUD_DIR = INSTALL_DIR + "/cloud"
  4596. BOOTSTRAP = CLOUD_DIR + "/deploy/bootstrap\-salt.sh"
  4597. .ft P
  4598. .fi
  4599. .UNINDENT
  4600. .UNINDENT
  4601. .sp
  4602. Create the directory structure
  4603. .INDENT 0.0
  4604. .INDENT 3.5
  4605. .sp
  4606. .nf
  4607. .ft C
  4608. mkdir \-p root/etc/salt root/var/cache/run root/run/salt root/srv
  4609. root/srv/salt root/srv/pillar root/srv/salt\-master root/var/log/salt root/var/run
  4610. .ft P
  4611. .fi
  4612. .UNINDENT
  4613. .UNINDENT
  4614. .sp
  4615. Populate the configuration files:
  4616. .INDENT 0.0
  4617. .INDENT 3.5
  4618. .sp
  4619. .nf
  4620. .ft C
  4621. cp \-r conf/* root/etc/salt/
  4622. .ft P
  4623. .fi
  4624. .UNINDENT
  4625. .UNINDENT
  4626. .sp
  4627. Edit your \fBroot/etc/salt/master\fP configuration that is used by salt\-cloud:
  4628. .INDENT 0.0
  4629. .INDENT 3.5
  4630. .sp
  4631. .nf
  4632. .ft C
  4633. user: *your user name*
  4634. .ft P
  4635. .fi
  4636. .UNINDENT
  4637. .UNINDENT
  4638. .sp
  4639. Run like this:
  4640. .INDENT 0.0
  4641. .INDENT 3.5
  4642. .sp
  4643. .nf
  4644. .ft C
  4645. PYTHONPATH=\(gapwd\(ga scripts/salt\-cloud
  4646. .ft P
  4647. .fi
  4648. .UNINDENT
  4649. .UNINDENT
  4650. .SS Standalone Minion
  4651. .sp
  4652. Since the Salt minion contains such extensive functionality it can be useful
  4653. to run it standalone. A standalone minion can be used to do a number of
  4654. things:
  4655. .INDENT 0.0
  4656. .IP \(bu 2
  4657. Use salt\-call commands on a system without connectivity to a master
  4658. .IP \(bu 2
  4659. Masterless States, run states entirely from files local to the minion
  4660. .UNINDENT
  4661. .sp
  4662. \fBNOTE:\fP
  4663. .INDENT 0.0
  4664. .INDENT 3.5
  4665. When running Salt in masterless mode, do not run the salt\-minion daemon.
  4666. Otherwise, it will attempt to connect to a master and fail. The salt\-call
  4667. command stands on its own and does not need the salt\-minion daemon.
  4668. .UNINDENT
  4669. .UNINDENT
  4670. .SS Minion Configuration
  4671. .sp
  4672. Throughout this document there are several references to setting different
  4673. options to configure a masterless Minion. Salt Minions are easy to configure
  4674. via a configuration file that is located, by default, in \fB/etc/salt/minion\fP\&.
  4675. Note, however, that on FreeBSD systems, the minion configuration file is located
  4676. in \fB/usr/local/etc/salt/minion\fP\&.
  4677. .sp
  4678. You can learn more about minion configuration options in the
  4679. Configuring the Salt Minion docs.
  4680. .SS Telling Salt Call to Run Masterless
  4681. .sp
  4682. The salt\-call command is used to run module functions locally on a minion
  4683. instead of executing them from the master. Normally the salt\-call command
  4684. checks into the master to retrieve file server and pillar data, but when
  4685. running standalone salt\-call needs to be instructed to not check the master for
  4686. this data. To instruct the minion to not look for a master when running
  4687. salt\-call the \fBfile_client\fP configuration option needs to be set.
  4688. By default the \fBfile_client\fP is set to \fBremote\fP so that the
  4689. minion knows that file server and pillar data are to be gathered from the
  4690. master. When setting the \fBfile_client\fP option to \fBlocal\fP the
  4691. minion is configured to not gather this data from the master.
  4692. .INDENT 0.0
  4693. .INDENT 3.5
  4694. .sp
  4695. .nf
  4696. .ft C
  4697. file_client: local
  4698. .ft P
  4699. .fi
  4700. .UNINDENT
  4701. .UNINDENT
  4702. .sp
  4703. Now the salt\-call command will not look for a master and will assume that the
  4704. local system has all of the file and pillar resources.
  4705. .SS Running States Masterless
  4706. .sp
  4707. The state system can be easily run without a Salt master, with all needed files
  4708. local to the minion. To do this the minion configuration file needs to be set
  4709. up to know how to return file_roots information like the master. The file_roots
  4710. setting defaults to /srv/salt for the base environment just like on the master:
  4711. .INDENT 0.0
  4712. .INDENT 3.5
  4713. .sp
  4714. .nf
  4715. .ft C
  4716. file_roots:
  4717. base:
  4718. \- /srv/salt
  4719. .ft P
  4720. .fi
  4721. .UNINDENT
  4722. .UNINDENT
  4723. .sp
  4724. Now set up the Salt State Tree, top file, and SLS modules in the same way that
  4725. they would be set up on a master. Now, with the \fBfile_client\fP
  4726. option set to \fBlocal\fP and an available state tree then calls to functions in
  4727. the state module will use the information in the file_roots on the minion
  4728. instead of checking in with the master.
  4729. .sp
  4730. Remember that when creating a state tree on a minion there are no syntax or
  4731. path changes needed, SLS modules written to be used from a master do not need
  4732. to be modified in any way to work with a minion.
  4733. .sp
  4734. This makes it easy to "script" deployments with Salt states without having to
  4735. set up a master, and allows for these SLS modules to be easily moved into a
  4736. Salt master as the deployment grows.
  4737. .sp
  4738. The declared state can now be executed with:
  4739. .INDENT 0.0
  4740. .INDENT 3.5
  4741. .sp
  4742. .nf
  4743. .ft C
  4744. salt\-call state.apply
  4745. .ft P
  4746. .fi
  4747. .UNINDENT
  4748. .UNINDENT
  4749. .sp
  4750. Or the salt\-call command can be executed with the \fB\-\-local\fP flag, this makes
  4751. it unnecessary to change the configuration file:
  4752. .INDENT 0.0
  4753. .INDENT 3.5
  4754. .sp
  4755. .nf
  4756. .ft C
  4757. salt\-call state.apply \-\-local
  4758. .ft P
  4759. .fi
  4760. .UNINDENT
  4761. .UNINDENT
  4762. .SS External Pillars
  4763. .sp
  4764. External pillars are supported when running in masterless mode.
  4765. .SS Salt Masterless Quickstart
  4766. .sp
  4767. Running a masterless salt\-minion lets you use Salt\(aqs configuration management
  4768. for a single machine without calling out to a Salt master on another machine.
  4769. .sp
  4770. Since the Salt minion contains such extensive functionality it can be useful
  4771. to run it standalone. A standalone minion can be used to do a number of
  4772. things:
  4773. .INDENT 0.0
  4774. .IP \(bu 2
  4775. Stand up a master server via States (Salting a Salt Master)
  4776. .IP \(bu 2
  4777. Use salt\-call commands on a system without connectivity to a master
  4778. .IP \(bu 2
  4779. Masterless States, run states entirely from files local to the minion
  4780. .UNINDENT
  4781. .sp
  4782. It is also useful for testing out state trees before deploying to a production setup.
  4783. .SS Bootstrap Salt Minion
  4784. .sp
  4785. The \fI\%salt\-bootstrap\fP script makes bootstrapping a server with Salt simple
  4786. for any OS with a Bourne shell:
  4787. .INDENT 0.0
  4788. .INDENT 3.5
  4789. .sp
  4790. .nf
  4791. .ft C
  4792. curl \-L https://bootstrap.saltstack.com \-o bootstrap_salt.sh
  4793. sudo sh bootstrap_salt.sh
  4794. .ft P
  4795. .fi
  4796. .UNINDENT
  4797. .UNINDENT
  4798. .sp
  4799. See the \fI\%salt\-bootstrap\fP documentation for other one liners. When using \fI\%Vagrant\fP
  4800. to test out salt, the \fI\%Vagrant salt provisioner\fP will provision the VM for you.
  4801. .SS Telling Salt to Run Masterless
  4802. .sp
  4803. To instruct the minion to not look for a master, the \fBfile_client\fP
  4804. configuration option needs to be set in the minion configuration file.
  4805. By default the \fBfile_client\fP is set to \fBremote\fP so that the
  4806. minion gathers file server and pillar data from the salt master.
  4807. When setting the \fBfile_client\fP option to \fBlocal\fP the
  4808. minion is configured to not gather this data from the master.
  4809. .INDENT 0.0
  4810. .INDENT 3.5
  4811. .sp
  4812. .nf
  4813. .ft C
  4814. file_client: local
  4815. .ft P
  4816. .fi
  4817. .UNINDENT
  4818. .UNINDENT
  4819. .sp
  4820. Now the salt minion will not look for a master and will assume that the local
  4821. system has all of the file and pillar resources.
  4822. .sp
  4823. Configuration which resided in the
  4824. master configuration (e.g. \fB/etc/salt/master\fP)
  4825. should be moved to the minion configuration
  4826. since the minion does not read the master configuration.
  4827. .sp
  4828. \fBNOTE:\fP
  4829. .INDENT 0.0
  4830. .INDENT 3.5
  4831. When running Salt in masterless mode, do not run the salt\-minion daemon.
  4832. Otherwise, it will attempt to connect to a master and fail. The salt\-call
  4833. command stands on its own and does not need the salt\-minion daemon.
  4834. .UNINDENT
  4835. .UNINDENT
  4836. .SS Create State Tree
  4837. .sp
  4838. Following the successful installation of a salt\-minion, the next step is to create
  4839. a state tree, which is where the SLS files that comprise the possible states of the
  4840. minion are stored.
  4841. .sp
  4842. The following example walks through the steps necessary to create a state tree that
  4843. ensures that the server has the Apache webserver installed.
  4844. .sp
  4845. \fBNOTE:\fP
  4846. .INDENT 0.0
  4847. .INDENT 3.5
  4848. For a complete explanation on Salt States, see the \fI\%tutorial\fP\&.
  4849. .UNINDENT
  4850. .UNINDENT
  4851. .INDENT 0.0
  4852. .IP 1. 3
  4853. Create the \fBtop.sls\fP file:
  4854. .UNINDENT
  4855. .sp
  4856. \fB/srv/salt/top.sls:\fP
  4857. .INDENT 0.0
  4858. .INDENT 3.5
  4859. .sp
  4860. .nf
  4861. .ft C
  4862. base:
  4863. \(aq*\(aq:
  4864. \- webserver
  4865. .ft P
  4866. .fi
  4867. .UNINDENT
  4868. .UNINDENT
  4869. .INDENT 0.0
  4870. .IP 2. 3
  4871. Create the webserver state tree:
  4872. .UNINDENT
  4873. .sp
  4874. \fB/srv/salt/webserver.sls:\fP
  4875. .INDENT 0.0
  4876. .INDENT 3.5
  4877. .sp
  4878. .nf
  4879. .ft C
  4880. apache: # ID declaration
  4881. pkg: # state declaration
  4882. \- installed # function declaration
  4883. .ft P
  4884. .fi
  4885. .UNINDENT
  4886. .UNINDENT
  4887. .sp
  4888. \fBNOTE:\fP
  4889. .INDENT 0.0
  4890. .INDENT 3.5
  4891. The apache package has different names on different platforms, for
  4892. instance on Debian/Ubuntu it is apache2, on Fedora/RHEL it is httpd
  4893. and on Arch it is apache
  4894. .UNINDENT
  4895. .UNINDENT
  4896. .sp
  4897. The only thing left is to provision our minion using \fBsalt\-call\fP\&.
  4898. .SS Salt\-call
  4899. .sp
  4900. The salt\-call command is used to run remote execution functions locally on a
  4901. minion instead of executing them from the master. Normally the salt\-call
  4902. command checks into the master to retrieve file server and pillar data, but
  4903. when running standalone salt\-call needs to be instructed to not check the
  4904. master for this data:
  4905. .INDENT 0.0
  4906. .INDENT 3.5
  4907. .sp
  4908. .nf
  4909. .ft C
  4910. salt\-call \-\-local state.apply
  4911. .ft P
  4912. .fi
  4913. .UNINDENT
  4914. .UNINDENT
  4915. .sp
  4916. The \fB\-\-local\fP flag tells the salt\-minion to look for the state tree in the
  4917. local file system and not to contact a Salt Master for instructions.
  4918. .sp
  4919. To provide verbose output, use \fB\-l debug\fP:
  4920. .INDENT 0.0
  4921. .INDENT 3.5
  4922. .sp
  4923. .nf
  4924. .ft C
  4925. salt\-call \-\-local state.apply \-l debug
  4926. .ft P
  4927. .fi
  4928. .UNINDENT
  4929. .UNINDENT
  4930. .sp
  4931. The minion first examines the \fBtop.sls\fP file and determines that it is a part
  4932. of the group matched by \fB*\fP glob and that the \fBwebserver\fP SLS should be applied.
  4933. .sp
  4934. It then examines the \fBwebserver.sls\fP file and finds the \fBapache\fP state, which
  4935. installs the Apache package.
  4936. .sp
  4937. The minion should now have Apache installed, and the next step is to begin
  4938. learning how to write more complex states\&.
  4939. .SS Dependencies
  4940. .sp
  4941. Salt should run on any Unix\-like platform so long as the dependencies are met.
  4942. .INDENT 0.0
  4943. .IP \(bu 2
  4944. \fI\%Python\fP \- Python2 >= 2.7, Python3 >= 3.4
  4945. .IP \(bu 2
  4946. \fI\%msgpack\-python\fP \- High\-performance message interchange format
  4947. .IP \(bu 2
  4948. \fI\%YAML\fP \- Python YAML bindings
  4949. .IP \(bu 2
  4950. \fI\%Jinja2\fP \- parsing Salt States (configurable in the master settings)
  4951. .IP \(bu 2
  4952. \fI\%MarkupSafe\fP \- Implements a XML/HTML/XHTML Markup safe string for Python
  4953. .IP \(bu 2
  4954. \fI\%apache\-libcloud\fP \- Python lib for interacting with many of the popular
  4955. cloud service providers using a unified API
  4956. .IP \(bu 2
  4957. \fI\%Requests\fP \- HTTP library
  4958. .IP \(bu 2
  4959. \fI\%Tornado\fP \- Web framework and asynchronous networking library
  4960. .IP \(bu 2
  4961. \fI\%futures\fP \- Python2 only dependency. Backport of the concurrent.futures package from Python 3.2
  4962. .IP \(bu 2
  4963. ZeroMQ:
  4964. .INDENT 2.0
  4965. .IP \(bu 2
  4966. \fI\%ZeroMQ\fP >= 3.2.0
  4967. .IP \(bu 2
  4968. \fI\%pyzmq\fP >= 2.2.0 \- ZeroMQ Python bindings
  4969. .IP \(bu 2
  4970. \fI\%PyCrypto\fP \- The Python cryptography toolkit
  4971. .UNINDENT
  4972. .UNINDENT
  4973. .sp
  4974. \fBWARNING:\fP
  4975. .INDENT 0.0
  4976. .INDENT 3.5
  4977. For historical reasons, Salt requires PyCrypto as a "lowest common
  4978. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  4979. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  4980. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  4981. .UNINDENT
  4982. .UNINDENT
  4983. .sp
  4984. Salt defaults to the \fI\%ZeroMQ\fP transport. The \fB\-\-salt\-transport\fP installation
  4985. option is available, but currently only supports the \fBzeromq\fP option. This
  4986. may be expanded in the future.
  4987. .INDENT 0.0
  4988. .INDENT 3.5
  4989. .sp
  4990. .nf
  4991. .ft C
  4992. python setup.py \-\-salt\-transport=zeromq install
  4993. .ft P
  4994. .fi
  4995. .UNINDENT
  4996. .UNINDENT
  4997. .sp
  4998. This way, only the required dependencies are pulled by the setup script if need
  4999. be.
  5000. .sp
  5001. If installing using pip, the \fB\-\-salt\-transport\fP install option can be
  5002. provided like:
  5003. .INDENT 0.0
  5004. .INDENT 3.5
  5005. .sp
  5006. .nf
  5007. .ft C
  5008. pip install \-\-install\-option="\-\-salt\-transport=zeromq" salt
  5009. .ft P
  5010. .fi
  5011. .UNINDENT
  5012. .UNINDENT
  5013. .sp
  5014. \fBNOTE:\fP
  5015. .INDENT 0.0
  5016. .INDENT 3.5
  5017. Salt does not bundle dependencies that are typically distributed as part of
  5018. the base OS. If you have unmet dependencies and are using a custom or
  5019. minimal installation, you might need to install some additional packages
  5020. from your OS vendor.
  5021. .UNINDENT
  5022. .UNINDENT
  5023. .SS Optional Dependencies
  5024. .INDENT 0.0
  5025. .IP \(bu 2
  5026. \fI\%mako\fP \- an optional parser for Salt States (configurable in the master
  5027. settings)
  5028. .IP \(bu 2
  5029. gcc \- dynamic \fI\%Cython\fP module compiling
  5030. .UNINDENT
  5031. .SS Upgrading Salt
  5032. .sp
  5033. When upgrading Salt, the master(s) should always be upgraded first. Backward
  5034. compatibility for minions running newer versions of salt than their masters is
  5035. not guaranteed.
  5036. .sp
  5037. Whenever possible, backward compatibility between new masters and old minions
  5038. will be preserved. Generally, the only exception to this policy is in case of
  5039. a security vulnerability.
  5040. .sp
  5041. \fBSEE ALSO:\fP
  5042. .INDENT 0.0
  5043. .INDENT 3.5
  5044. Installing Salt for development and
  5045. contributing to the project.
  5046. .UNINDENT
  5047. .UNINDENT
  5048. .SS Building Packages using Salt Pack
  5049. .sp
  5050. Salt\-pack is an open\-source package builder for most commonly used Linux
  5051. platforms, for example: Redhat/CentOS and Debian/Ubuntu families, utilizing
  5052. SaltStack states and execution modules to build Salt and a specified set of
  5053. dependencies, from which a platform specific repository can be built.
  5054. .sp
  5055. \fI\%https://github.com/saltstack/salt\-pack\fP
  5056. .SH CONFIGURING SALT
  5057. .sp
  5058. This section explains how to configure user access, view and store job results,
  5059. secure and troubleshoot, and how to perform many other administrative tasks.
  5060. .SS Configuring the Salt Master
  5061. .sp
  5062. The Salt system is amazingly simple and easy to configure, the two components
  5063. of the Salt system each have a respective configuration file. The
  5064. \fBsalt\-master\fP is configured via the master configuration file, and the
  5065. \fBsalt\-minion\fP is configured via the minion configuration file.
  5066. .sp
  5067. \fBSEE ALSO:\fP
  5068. .INDENT 0.0
  5069. .INDENT 3.5
  5070. Example master configuration file\&.
  5071. .UNINDENT
  5072. .UNINDENT
  5073. .sp
  5074. The configuration file for the salt\-master is located at \fB/etc/salt/master\fP
  5075. by default. Atomic included configuration files can be placed in
  5076. \fB/etc/salt/master.d/*.conf\fP\&. Warning: files with other suffixes than .conf will
  5077. not be included. A notable exception is FreeBSD, where the configuration file is
  5078. located at \fB/usr/local/etc/salt\fP\&. The available options are as follows:
  5079. .SS Primary Master Configuration
  5080. .SS \fBinterface\fP
  5081. .sp
  5082. Default: \fB0.0.0.0\fP (all interfaces)
  5083. .sp
  5084. The local interface to bind to, must be an IP address.
  5085. .INDENT 0.0
  5086. .INDENT 3.5
  5087. .sp
  5088. .nf
  5089. .ft C
  5090. interface: 192.168.0.1
  5091. .ft P
  5092. .fi
  5093. .UNINDENT
  5094. .UNINDENT
  5095. .SS \fBipv6\fP
  5096. .sp
  5097. Default: \fBFalse\fP
  5098. .sp
  5099. Whether the master should listen for IPv6 connections. If this is set to True,
  5100. the interface option must be adjusted too (for example: \fBinterface: \(aq::\(aq\fP)
  5101. .INDENT 0.0
  5102. .INDENT 3.5
  5103. .sp
  5104. .nf
  5105. .ft C
  5106. ipv6: True
  5107. .ft P
  5108. .fi
  5109. .UNINDENT
  5110. .UNINDENT
  5111. .SS \fBpublish_port\fP
  5112. .sp
  5113. Default: \fB4505\fP
  5114. .sp
  5115. The network port to set up the publication interface.
  5116. .INDENT 0.0
  5117. .INDENT 3.5
  5118. .sp
  5119. .nf
  5120. .ft C
  5121. publish_port: 4505
  5122. .ft P
  5123. .fi
  5124. .UNINDENT
  5125. .UNINDENT
  5126. .SS \fBmaster_id\fP
  5127. .sp
  5128. Default: \fBNone\fP
  5129. .sp
  5130. The id to be passed in the publish job to minions. This is used for MultiSyndics
  5131. to return the job to the requesting master.
  5132. .sp
  5133. \fBNOTE:\fP
  5134. .INDENT 0.0
  5135. .INDENT 3.5
  5136. This must be the same string as the syndic is configured with.
  5137. .UNINDENT
  5138. .UNINDENT
  5139. .INDENT 0.0
  5140. .INDENT 3.5
  5141. .sp
  5142. .nf
  5143. .ft C
  5144. master_id: MasterOfMaster
  5145. .ft P
  5146. .fi
  5147. .UNINDENT
  5148. .UNINDENT
  5149. .SS \fBuser\fP
  5150. .sp
  5151. Default: \fBroot\fP
  5152. .sp
  5153. The user to run the Salt processes
  5154. .INDENT 0.0
  5155. .INDENT 3.5
  5156. .sp
  5157. .nf
  5158. .ft C
  5159. user: root
  5160. .ft P
  5161. .fi
  5162. .UNINDENT
  5163. .UNINDENT
  5164. .SS \fBenable_ssh_minions\fP
  5165. .sp
  5166. Default: \fBFalse\fP
  5167. .sp
  5168. Tell the master to also use salt\-ssh when running commands against minions.
  5169. .INDENT 0.0
  5170. .INDENT 3.5
  5171. .sp
  5172. .nf
  5173. .ft C
  5174. enable_ssh_minions: True
  5175. .ft P
  5176. .fi
  5177. .UNINDENT
  5178. .UNINDENT
  5179. .sp
  5180. \fBNOTE:\fP
  5181. .INDENT 0.0
  5182. .INDENT 3.5
  5183. Cross\-minion communication is still not possible. The Salt mine and
  5184. publish.publish do not work between minion types.
  5185. .UNINDENT
  5186. .UNINDENT
  5187. .SS \fBret_port\fP
  5188. .sp
  5189. Default: \fB4506\fP
  5190. .sp
  5191. The port used by the return server, this is the server used by Salt to receive
  5192. execution returns and command executions.
  5193. .INDENT 0.0
  5194. .INDENT 3.5
  5195. .sp
  5196. .nf
  5197. .ft C
  5198. ret_port: 4506
  5199. .ft P
  5200. .fi
  5201. .UNINDENT
  5202. .UNINDENT
  5203. .SS \fBpidfile\fP
  5204. .sp
  5205. Default: \fB/var/run/salt\-master.pid\fP
  5206. .sp
  5207. Specify the location of the master pidfile.
  5208. .INDENT 0.0
  5209. .INDENT 3.5
  5210. .sp
  5211. .nf
  5212. .ft C
  5213. pidfile: /var/run/salt\-master.pid
  5214. .ft P
  5215. .fi
  5216. .UNINDENT
  5217. .UNINDENT
  5218. .SS \fBroot_dir\fP
  5219. .sp
  5220. Default: \fB/\fP
  5221. .sp
  5222. The system root directory to operate from, change this to make Salt run from
  5223. an alternative root.
  5224. .INDENT 0.0
  5225. .INDENT 3.5
  5226. .sp
  5227. .nf
  5228. .ft C
  5229. root_dir: /
  5230. .ft P
  5231. .fi
  5232. .UNINDENT
  5233. .UNINDENT
  5234. .sp
  5235. \fBNOTE:\fP
  5236. .INDENT 0.0
  5237. .INDENT 3.5
  5238. This directory is prepended to the following options:
  5239. \fI\%pki_dir\fP, \fI\%cachedir\fP, \fI\%sock_dir\fP,
  5240. \fI\%log_file\fP, \fI\%autosign_file\fP,
  5241. \fI\%autoreject_file\fP, \fI\%pidfile\fP,
  5242. \fI\%autosign_grains_dir\fP\&.
  5243. .UNINDENT
  5244. .UNINDENT
  5245. .SS \fBconf_file\fP
  5246. .sp
  5247. Default: \fB/etc/salt/master\fP
  5248. .sp
  5249. The path to the master\(aqs configuration file.
  5250. .INDENT 0.0
  5251. .INDENT 3.5
  5252. .sp
  5253. .nf
  5254. .ft C
  5255. conf_file: /etc/salt/master
  5256. .ft P
  5257. .fi
  5258. .UNINDENT
  5259. .UNINDENT
  5260. .SS \fBpki_dir\fP
  5261. .sp
  5262. Default: \fB/etc/salt/pki/master\fP
  5263. .sp
  5264. The directory to store the pki authentication keys.
  5265. .INDENT 0.0
  5266. .INDENT 3.5
  5267. .sp
  5268. .nf
  5269. .ft C
  5270. pki_dir: /etc/salt/pki/master
  5271. .ft P
  5272. .fi
  5273. .UNINDENT
  5274. .UNINDENT
  5275. .SS \fBextension_modules\fP
  5276. .sp
  5277. Changed in version 2016.3.0: The default location for this directory has been moved. Prior to this
  5278. version, the location was a directory named \fBextmods\fP in the Salt
  5279. cachedir (on most platforms, \fB/var/cache/salt/extmods\fP). It has been
  5280. moved into the master cachedir (on most platforms,
  5281. \fB/var/cache/salt/master/extmods\fP).
  5282. .sp
  5283. Directory for custom modules. This directory can contain subdirectories for
  5284. each of Salt\(aqs module types such as \fBrunners\fP, \fBoutput\fP, \fBwheel\fP,
  5285. \fBmodules\fP, \fBstates\fP, \fBreturners\fP, \fBengines\fP, \fButils\fP, etc.
  5286. This path is appended to \fI\%root_dir\fP\&.
  5287. .INDENT 0.0
  5288. .INDENT 3.5
  5289. .sp
  5290. .nf
  5291. .ft C
  5292. extension_modules: /root/salt_extmods
  5293. .ft P
  5294. .fi
  5295. .UNINDENT
  5296. .UNINDENT
  5297. .SS \fBextmod_whitelist/extmod_blacklist\fP
  5298. .sp
  5299. New in version 2017.7.0.
  5300. .sp
  5301. By using this dictionary, the modules that are synced to the master\(aqs extmod cache using \fIsaltutil.sync_*\fP can be
  5302. limited. If nothing is set to a specific type, then all modules are accepted. To block all modules of a specific type,
  5303. whitelist an empty list.
  5304. .INDENT 0.0
  5305. .INDENT 3.5
  5306. .sp
  5307. .nf
  5308. .ft C
  5309. extmod_whitelist:
  5310. modules:
  5311. \- custom_module
  5312. engines:
  5313. \- custom_engine
  5314. pillars: []
  5315. extmod_blacklist:
  5316. modules:
  5317. \- specific_module
  5318. .ft P
  5319. .fi
  5320. .UNINDENT
  5321. .UNINDENT
  5322. .INDENT 0.0
  5323. .TP
  5324. .B Valid options:
  5325. .INDENT 7.0
  5326. .IP \(bu 2
  5327. modules
  5328. .IP \(bu 2
  5329. states
  5330. .IP \(bu 2
  5331. grains
  5332. .IP \(bu 2
  5333. renderers
  5334. .IP \(bu 2
  5335. returners
  5336. .IP \(bu 2
  5337. output
  5338. .IP \(bu 2
  5339. proxy
  5340. .IP \(bu 2
  5341. runners
  5342. .IP \(bu 2
  5343. wheel
  5344. .IP \(bu 2
  5345. engines
  5346. .IP \(bu 2
  5347. queues
  5348. .IP \(bu 2
  5349. pillar
  5350. .IP \(bu 2
  5351. utils
  5352. .IP \(bu 2
  5353. sdb
  5354. .IP \(bu 2
  5355. cache
  5356. .IP \(bu 2
  5357. clouds
  5358. .IP \(bu 2
  5359. tops
  5360. .IP \(bu 2
  5361. roster
  5362. .IP \(bu 2
  5363. tokens
  5364. .UNINDENT
  5365. .UNINDENT
  5366. .SS \fBmodule_dirs\fP
  5367. .sp
  5368. Default: \fB[]\fP
  5369. .sp
  5370. Like \fBextension_modules\fP, but a list of extra directories to search
  5371. for Salt modules.
  5372. .INDENT 0.0
  5373. .INDENT 3.5
  5374. .sp
  5375. .nf
  5376. .ft C
  5377. module_dirs:
  5378. \- /var/cache/salt/minion/extmods
  5379. .ft P
  5380. .fi
  5381. .UNINDENT
  5382. .UNINDENT
  5383. .SS \fBcachedir\fP
  5384. .sp
  5385. Default: \fB/var/cache/salt/master\fP
  5386. .sp
  5387. The location used to store cache information, particularly the job information
  5388. for executed salt commands.
  5389. .sp
  5390. This directory may contain sensitive data and should be protected accordingly.
  5391. .INDENT 0.0
  5392. .INDENT 3.5
  5393. .sp
  5394. .nf
  5395. .ft C
  5396. cachedir: /var/cache/salt/master
  5397. .ft P
  5398. .fi
  5399. .UNINDENT
  5400. .UNINDENT
  5401. .SS \fBverify_env\fP
  5402. .sp
  5403. Default: \fBTrue\fP
  5404. .sp
  5405. Verify and set permissions on configuration directories at startup.
  5406. .INDENT 0.0
  5407. .INDENT 3.5
  5408. .sp
  5409. .nf
  5410. .ft C
  5411. verify_env: True
  5412. .ft P
  5413. .fi
  5414. .UNINDENT
  5415. .UNINDENT
  5416. .SS \fBkeep_jobs\fP
  5417. .sp
  5418. Default: \fB24\fP
  5419. .sp
  5420. Set the number of hours to keep old job information. Note that setting this option
  5421. to \fB0\fP disables the cache cleaner.
  5422. .INDENT 0.0
  5423. .INDENT 3.5
  5424. .sp
  5425. .nf
  5426. .ft C
  5427. keep_jobs: 24
  5428. .ft P
  5429. .fi
  5430. .UNINDENT
  5431. .UNINDENT
  5432. .SS \fBgather_job_timeout\fP
  5433. .sp
  5434. New in version 2014.7.0.
  5435. .sp
  5436. Default: \fB10\fP
  5437. .sp
  5438. The number of seconds to wait when the client is requesting information
  5439. about running jobs.
  5440. .INDENT 0.0
  5441. .INDENT 3.5
  5442. .sp
  5443. .nf
  5444. .ft C
  5445. gather_job_timeout: 10
  5446. .ft P
  5447. .fi
  5448. .UNINDENT
  5449. .UNINDENT
  5450. .SS \fBtimeout\fP
  5451. .sp
  5452. Default: \fB5\fP
  5453. .sp
  5454. Set the default timeout for the salt command and api.
  5455. .SS \fBloop_interval\fP
  5456. .sp
  5457. Default: \fB60\fP
  5458. .sp
  5459. The loop_interval option controls the seconds for the master\(aqs maintenance
  5460. process check cycle. This process updates file server backends, cleans the
  5461. job cache and executes the scheduler.
  5462. .SS \fBoutput\fP
  5463. .sp
  5464. Default: \fBnested\fP
  5465. .sp
  5466. Set the default outputter used by the salt command.
  5467. .SS \fBoutputter_dirs\fP
  5468. .sp
  5469. Default: \fB[]\fP
  5470. .sp
  5471. A list of additional directories to search for salt outputters in.
  5472. .INDENT 0.0
  5473. .INDENT 3.5
  5474. .sp
  5475. .nf
  5476. .ft C
  5477. outputter_dirs: []
  5478. .ft P
  5479. .fi
  5480. .UNINDENT
  5481. .UNINDENT
  5482. .SS \fBoutput_file\fP
  5483. .sp
  5484. Default: None
  5485. .sp
  5486. Set the default output file used by the salt command. Default is to output
  5487. to the CLI and not to a file. Functions the same way as the "\-\-out\-file"
  5488. CLI option, only sets this to a single file for all salt commands.
  5489. .INDENT 0.0
  5490. .INDENT 3.5
  5491. .sp
  5492. .nf
  5493. .ft C
  5494. output_file: /path/output/file
  5495. .ft P
  5496. .fi
  5497. .UNINDENT
  5498. .UNINDENT
  5499. .SS \fBshow_timeout\fP
  5500. .sp
  5501. Default: \fBTrue\fP
  5502. .sp
  5503. Tell the client to show minions that have timed out.
  5504. .INDENT 0.0
  5505. .INDENT 3.5
  5506. .sp
  5507. .nf
  5508. .ft C
  5509. show_timeout: True
  5510. .ft P
  5511. .fi
  5512. .UNINDENT
  5513. .UNINDENT
  5514. .SS \fBshow_jid\fP
  5515. .sp
  5516. Default: \fBFalse\fP
  5517. .sp
  5518. Tell the client to display the jid when a job is published.
  5519. .INDENT 0.0
  5520. .INDENT 3.5
  5521. .sp
  5522. .nf
  5523. .ft C
  5524. show_jid: False
  5525. .ft P
  5526. .fi
  5527. .UNINDENT
  5528. .UNINDENT
  5529. .SS \fBcolor\fP
  5530. .sp
  5531. Default: \fBTrue\fP
  5532. .sp
  5533. By default output is colored, to disable colored output set the color value
  5534. to False.
  5535. .INDENT 0.0
  5536. .INDENT 3.5
  5537. .sp
  5538. .nf
  5539. .ft C
  5540. color: False
  5541. .ft P
  5542. .fi
  5543. .UNINDENT
  5544. .UNINDENT
  5545. .SS \fBcolor_theme\fP
  5546. .sp
  5547. Default: \fB""\fP
  5548. .sp
  5549. Specifies a path to the color theme to use for colored command line output.
  5550. .INDENT 0.0
  5551. .INDENT 3.5
  5552. .sp
  5553. .nf
  5554. .ft C
  5555. color_theme: /etc/salt/color_theme
  5556. .ft P
  5557. .fi
  5558. .UNINDENT
  5559. .UNINDENT
  5560. .SS \fBcli_summary\fP
  5561. .sp
  5562. Default: \fBFalse\fP
  5563. .sp
  5564. When set to \fBTrue\fP, displays a summary of the number of minions targeted,
  5565. the number of minions returned, and the number of minions that did not
  5566. return.
  5567. .INDENT 0.0
  5568. .INDENT 3.5
  5569. .sp
  5570. .nf
  5571. .ft C
  5572. cli_summary: False
  5573. .ft P
  5574. .fi
  5575. .UNINDENT
  5576. .UNINDENT
  5577. .SS \fBsock_dir\fP
  5578. .sp
  5579. Default: \fB/var/run/salt/master\fP
  5580. .sp
  5581. Set the location to use for creating Unix sockets for master process
  5582. communication.
  5583. .INDENT 0.0
  5584. .INDENT 3.5
  5585. .sp
  5586. .nf
  5587. .ft C
  5588. sock_dir: /var/run/salt/master
  5589. .ft P
  5590. .fi
  5591. .UNINDENT
  5592. .UNINDENT
  5593. .SS \fBenable_gpu_grains\fP
  5594. .sp
  5595. Default: \fBFalse\fP
  5596. .sp
  5597. Enable GPU hardware data for your master. Be aware that the master can
  5598. take a while to start up when lspci and/or dmidecode is used to populate the
  5599. grains for the master.
  5600. .INDENT 0.0
  5601. .INDENT 3.5
  5602. .sp
  5603. .nf
  5604. .ft C
  5605. enable_gpu_grains: True
  5606. .ft P
  5607. .fi
  5608. .UNINDENT
  5609. .UNINDENT
  5610. .SS \fBskip_grains\fP
  5611. .sp
  5612. Default: \fBFalse\fP
  5613. .sp
  5614. MasterMinions should omit grains. A MasterMinion is "a minion function object
  5615. for generic use on the master" that omit pillar. A RunnerClient creates a
  5616. MasterMinion omitting states and renderer. Setting to True can improve master
  5617. performance.
  5618. .INDENT 0.0
  5619. .INDENT 3.5
  5620. .sp
  5621. .nf
  5622. .ft C
  5623. skip_grains: True
  5624. .ft P
  5625. .fi
  5626. .UNINDENT
  5627. .UNINDENT
  5628. .SS \fBjob_cache\fP
  5629. .sp
  5630. Default: \fBTrue\fP
  5631. .sp
  5632. The master maintains a temporary job cache. While this is a great addition, it
  5633. can be a burden on the master for larger deployments (over 5000 minions).
  5634. Disabling the job cache will make previously executed jobs unavailable to
  5635. the jobs system and is not generally recommended. Normally it is wise to make
  5636. sure the master has access to a faster IO system or a tmpfs is mounted to the
  5637. jobs dir.
  5638. .INDENT 0.0
  5639. .INDENT 3.5
  5640. .sp
  5641. .nf
  5642. .ft C
  5643. job_cache: True
  5644. .ft P
  5645. .fi
  5646. .UNINDENT
  5647. .UNINDENT
  5648. .sp
  5649. \fBNOTE:\fP
  5650. .INDENT 0.0
  5651. .INDENT 3.5
  5652. Setting the \fBjob_cache\fP to \fBFalse\fP will not cache minion returns, but
  5653. the JID directory for each job is still created. The creation of the JID
  5654. directories is necessary because Salt uses those directories to check for
  5655. JID collisions. By setting this option to \fBFalse\fP, the job cache
  5656. directory, which is \fB/var/cache/salt/master/jobs/\fP by default, will be
  5657. smaller, but the JID directories will still be present.
  5658. .sp
  5659. Note that the \fI\%keep_jobs\fP option can be set to a lower value,
  5660. such as \fB1\fP, to limit the number of hours jobs are stored in the job
  5661. cache. (The default is 24 hours.)
  5662. .sp
  5663. Please see the Managing the Job Cache
  5664. documentation for more information.
  5665. .UNINDENT
  5666. .UNINDENT
  5667. .SS \fBminion_data_cache\fP
  5668. .sp
  5669. Default: \fBTrue\fP
  5670. .sp
  5671. The minion data cache is a cache of information about the minions stored on the
  5672. master, this information is primarily the pillar, grains and mine data. The data
  5673. is cached via the cache subsystem in the Master cachedir under the name of the
  5674. minion or in a supported database. The data is used to predetermine what minions
  5675. are expected to reply from executions.
  5676. .INDENT 0.0
  5677. .INDENT 3.5
  5678. .sp
  5679. .nf
  5680. .ft C
  5681. minion_data_cache: True
  5682. .ft P
  5683. .fi
  5684. .UNINDENT
  5685. .UNINDENT
  5686. .SS \fBcache\fP
  5687. .sp
  5688. Default: \fBlocalfs\fP
  5689. .sp
  5690. Cache subsystem module to use for minion data cache.
  5691. .INDENT 0.0
  5692. .INDENT 3.5
  5693. .sp
  5694. .nf
  5695. .ft C
  5696. cache: consul
  5697. .ft P
  5698. .fi
  5699. .UNINDENT
  5700. .UNINDENT
  5701. .SS \fBmemcache_expire_seconds\fP
  5702. .sp
  5703. Default: \fB0\fP
  5704. .sp
  5705. Memcache is an additional cache layer that keeps a limited amount of data
  5706. fetched from the minion data cache for a limited period of time in memory that
  5707. makes cache operations faster. It doesn\(aqt make much sense for the \fBlocalfs\fP
  5708. cache driver but helps for more complex drivers like \fBconsul\fP\&.
  5709. .sp
  5710. This option sets the memcache items expiration time. By default is set to \fB0\fP
  5711. that disables the memcache.
  5712. .INDENT 0.0
  5713. .INDENT 3.5
  5714. .sp
  5715. .nf
  5716. .ft C
  5717. memcache_expire_seconds: 30
  5718. .ft P
  5719. .fi
  5720. .UNINDENT
  5721. .UNINDENT
  5722. .SS \fBmemcache_max_items\fP
  5723. .sp
  5724. Default: \fB1024\fP
  5725. .sp
  5726. Set memcache limit in items that are bank\-key pairs. I.e the list of
  5727. minion_0/data, minion_0/mine, minion_1/data contains 3 items. This value depends
  5728. on the count of minions usually targeted in your environment. The best one could
  5729. be found by analyzing the cache log with \fBmemcache_debug\fP enabled.
  5730. .INDENT 0.0
  5731. .INDENT 3.5
  5732. .sp
  5733. .nf
  5734. .ft C
  5735. memcache_max_items: 1024
  5736. .ft P
  5737. .fi
  5738. .UNINDENT
  5739. .UNINDENT
  5740. .SS \fBmemcache_full_cleanup\fP
  5741. .sp
  5742. Default: \fBFalse\fP
  5743. .sp
  5744. If cache storage got full, i.e. the items count exceeds the
  5745. \fBmemcache_max_items\fP value, memcache cleans up its storage. If this option
  5746. set to \fBFalse\fP memcache removes the only one oldest value from its storage.
  5747. If this set set to \fBTrue\fP memcache removes all the expired items and also
  5748. removes the oldest one if there are no expired items.
  5749. .INDENT 0.0
  5750. .INDENT 3.5
  5751. .sp
  5752. .nf
  5753. .ft C
  5754. memcache_full_cleanup: True
  5755. .ft P
  5756. .fi
  5757. .UNINDENT
  5758. .UNINDENT
  5759. .SS \fBmemcache_debug\fP
  5760. .sp
  5761. Default: \fBFalse\fP
  5762. .sp
  5763. Enable collecting the memcache stats and log it on \fIdebug\fP log level. If enabled
  5764. memcache collect information about how many \fBfetch\fP calls has been done and
  5765. how many of them has been hit by memcache. Also it outputs the rate value that
  5766. is the result of division of the first two values. This should help to choose
  5767. right values for the expiration time and the cache size.
  5768. .INDENT 0.0
  5769. .INDENT 3.5
  5770. .sp
  5771. .nf
  5772. .ft C
  5773. memcache_debug: True
  5774. .ft P
  5775. .fi
  5776. .UNINDENT
  5777. .UNINDENT
  5778. .SS \fBext_job_cache\fP
  5779. .sp
  5780. Default: \fB\(aq\(aq\fP
  5781. .sp
  5782. Used to specify a default returner for all minions. When this option is set,
  5783. the specified returner needs to be properly configured and the minions will
  5784. always default to sending returns to this returner. This will also disable the
  5785. local job cache on the master.
  5786. .INDENT 0.0
  5787. .INDENT 3.5
  5788. .sp
  5789. .nf
  5790. .ft C
  5791. ext_job_cache: redis
  5792. .ft P
  5793. .fi
  5794. .UNINDENT
  5795. .UNINDENT
  5796. .SS \fBevent_return\fP
  5797. .sp
  5798. New in version 2015.5.0.
  5799. .sp
  5800. Default: \fB\(aq\(aq\fP
  5801. .sp
  5802. Specify the returner(s) to use to log events. Each returner may have
  5803. installation and configuration requirements. Read the returner\(aqs
  5804. documentation.
  5805. .sp
  5806. \fBNOTE:\fP
  5807. .INDENT 0.0
  5808. .INDENT 3.5
  5809. Not all returners support event returns. Verify that a returner has an
  5810. \fBevent_return()\fP function before configuring this option with a returner.
  5811. .UNINDENT
  5812. .UNINDENT
  5813. .INDENT 0.0
  5814. .INDENT 3.5
  5815. .sp
  5816. .nf
  5817. .ft C
  5818. event_return:
  5819. \- syslog
  5820. \- splunk
  5821. .ft P
  5822. .fi
  5823. .UNINDENT
  5824. .UNINDENT
  5825. .SS \fBevent_return_queue\fP
  5826. .sp
  5827. New in version 2015.5.0.
  5828. .sp
  5829. Default: \fB0\fP
  5830. .sp
  5831. On busy systems, enabling event_returns can cause a considerable load on
  5832. the storage system for returners. Events can be queued on the master and
  5833. stored in a batched fashion using a single transaction for multiple events.
  5834. By default, events are not queued.
  5835. .INDENT 0.0
  5836. .INDENT 3.5
  5837. .sp
  5838. .nf
  5839. .ft C
  5840. event_return_queue: 0
  5841. .ft P
  5842. .fi
  5843. .UNINDENT
  5844. .UNINDENT
  5845. .SS \fBevent_return_whitelist\fP
  5846. .sp
  5847. New in version 2015.5.0.
  5848. .sp
  5849. Default: \fB[]\fP
  5850. .sp
  5851. Only return events matching tags in a whitelist.
  5852. .sp
  5853. Changed in version 2016.11.0: Supports glob matching patterns.
  5854. .INDENT 0.0
  5855. .INDENT 3.5
  5856. .sp
  5857. .nf
  5858. .ft C
  5859. event_return_whitelist:
  5860. \- salt/master/a_tag
  5861. \- salt/run/*/ret
  5862. .ft P
  5863. .fi
  5864. .UNINDENT
  5865. .UNINDENT
  5866. .SS \fBevent_return_blacklist\fP
  5867. .sp
  5868. New in version 2015.5.0.
  5869. .sp
  5870. Default: \fB[]\fP
  5871. .sp
  5872. Store all event returns _except_ the tags in a blacklist.
  5873. .sp
  5874. Changed in version 2016.11.0: Supports glob matching patterns.
  5875. .INDENT 0.0
  5876. .INDENT 3.5
  5877. .sp
  5878. .nf
  5879. .ft C
  5880. event_return_blacklist:
  5881. \- salt/master/not_this_tag
  5882. \- salt/wheel/*/ret
  5883. .ft P
  5884. .fi
  5885. .UNINDENT
  5886. .UNINDENT
  5887. .SS \fBmax_event_size\fP
  5888. .sp
  5889. New in version 2014.7.0.
  5890. .sp
  5891. Default: \fB1048576\fP
  5892. .sp
  5893. Passing very large events can cause the minion to consume large amounts of
  5894. memory. This value tunes the maximum size of a message allowed onto the
  5895. master event bus. The value is expressed in bytes.
  5896. .INDENT 0.0
  5897. .INDENT 3.5
  5898. .sp
  5899. .nf
  5900. .ft C
  5901. max_event_size: 1048576
  5902. .ft P
  5903. .fi
  5904. .UNINDENT
  5905. .UNINDENT
  5906. .SS \fBmaster_job_cache\fP
  5907. .sp
  5908. New in version 2014.7.0.
  5909. .sp
  5910. Default: \fBlocal_cache\fP
  5911. .sp
  5912. Specify the returner to use for the job cache. The job cache will only be
  5913. interacted with from the salt master and therefore does not need to be
  5914. accessible from the minions.
  5915. .INDENT 0.0
  5916. .INDENT 3.5
  5917. .sp
  5918. .nf
  5919. .ft C
  5920. master_job_cache: redis
  5921. .ft P
  5922. .fi
  5923. .UNINDENT
  5924. .UNINDENT
  5925. .SS \fBjob_cache_store_endtime\fP
  5926. .sp
  5927. New in version 2015.8.0.
  5928. .sp
  5929. Default: \fBFalse\fP
  5930. .sp
  5931. Specify whether the Salt Master should store end times for jobs as returns
  5932. come in.
  5933. .INDENT 0.0
  5934. .INDENT 3.5
  5935. .sp
  5936. .nf
  5937. .ft C
  5938. job_cache_store_endtime: False
  5939. .ft P
  5940. .fi
  5941. .UNINDENT
  5942. .UNINDENT
  5943. .SS \fBenforce_mine_cache\fP
  5944. .sp
  5945. Default: False
  5946. .sp
  5947. By\-default when disabling the minion_data_cache mine will stop working since
  5948. it is based on cached data, by enabling this option we explicitly enabling
  5949. only the cache for the mine system.
  5950. .INDENT 0.0
  5951. .INDENT 3.5
  5952. .sp
  5953. .nf
  5954. .ft C
  5955. enforce_mine_cache: False
  5956. .ft P
  5957. .fi
  5958. .UNINDENT
  5959. .UNINDENT
  5960. .SS \fBmax_minions\fP
  5961. .sp
  5962. Default: 0
  5963. .sp
  5964. The maximum number of minion connections allowed by the master. Use this to
  5965. accommodate the number of minions per master if you have different types of
  5966. hardware serving your minions. The default of \fB0\fP means unlimited connections.
  5967. Please note that this can slow down the authentication process a bit in large
  5968. setups.
  5969. .INDENT 0.0
  5970. .INDENT 3.5
  5971. .sp
  5972. .nf
  5973. .ft C
  5974. max_minions: 100
  5975. .ft P
  5976. .fi
  5977. .UNINDENT
  5978. .UNINDENT
  5979. .SS \fBcon_cache\fP
  5980. .sp
  5981. Default: False
  5982. .sp
  5983. If max_minions is used in large installations, the master might experience
  5984. high\-load situations because of having to check the number of connected
  5985. minions for every authentication. This cache provides the minion\-ids of
  5986. all connected minions to all MWorker\-processes and greatly improves the
  5987. performance of max_minions.
  5988. .INDENT 0.0
  5989. .INDENT 3.5
  5990. .sp
  5991. .nf
  5992. .ft C
  5993. con_cache: True
  5994. .ft P
  5995. .fi
  5996. .UNINDENT
  5997. .UNINDENT
  5998. .SS \fBpresence_events\fP
  5999. .sp
  6000. Default: False
  6001. .sp
  6002. Causes the master to periodically look for actively connected minions.
  6003. Presence events are fired on the event bus on a
  6004. regular interval with a list of connected minions, as well as events with lists
  6005. of newly connected or disconnected minions. This is a master\-only operation
  6006. that does not send executions to minions.
  6007. .INDENT 0.0
  6008. .INDENT 3.5
  6009. .sp
  6010. .nf
  6011. .ft C
  6012. presence_events: False
  6013. .ft P
  6014. .fi
  6015. .UNINDENT
  6016. .UNINDENT
  6017. .SS \fBping_on_rotate\fP
  6018. .sp
  6019. New in version 2014.7.0.
  6020. .sp
  6021. Default: \fBFalse\fP
  6022. .sp
  6023. By default, the master AES key rotates every 24 hours. The next command
  6024. following a key rotation will trigger a key refresh from the minion which may
  6025. result in minions which do not respond to the first command after a key refresh.
  6026. .sp
  6027. To tell the master to ping all minions immediately after an AES key refresh,
  6028. set \fBping_on_rotate\fP to \fBTrue\fP\&. This should mitigate the issue where a
  6029. minion does not appear to initially respond after a key is rotated.
  6030. .sp
  6031. Note that enabling this may cause high load on the master immediately after the
  6032. key rotation event as minions reconnect. Consider this carefully if this salt
  6033. master is managing a large number of minions.
  6034. .sp
  6035. If disabled, it is recommended to handle this event by listening for the
  6036. \fBaes_key_rotate\fP event with the \fBkey\fP tag and acting appropriately.
  6037. .INDENT 0.0
  6038. .INDENT 3.5
  6039. .sp
  6040. .nf
  6041. .ft C
  6042. ping_on_rotate: False
  6043. .ft P
  6044. .fi
  6045. .UNINDENT
  6046. .UNINDENT
  6047. .SS \fBtransport\fP
  6048. .sp
  6049. Default: \fBzeromq\fP
  6050. .sp
  6051. Changes the underlying transport layer. ZeroMQ is the recommended transport
  6052. while additional transport layers are under development. Supported values are
  6053. \fBzeromq\fP and \fBtcp\fP (experimental). This setting has a significant impact on
  6054. performance and should not be changed unless you know what you are doing!
  6055. .INDENT 0.0
  6056. .INDENT 3.5
  6057. .sp
  6058. .nf
  6059. .ft C
  6060. transport: zeromq
  6061. .ft P
  6062. .fi
  6063. .UNINDENT
  6064. .UNINDENT
  6065. .SS \fBtransport_opts\fP
  6066. .sp
  6067. Default: \fB{}\fP
  6068. .sp
  6069. (experimental) Starts multiple transports and overrides options for each
  6070. transport with the provided dictionary This setting has a significant impact on
  6071. performance and should not be changed unless you know what you are doing! The
  6072. following example shows how to start a TCP transport alongside a ZMQ transport.
  6073. .INDENT 0.0
  6074. .INDENT 3.5
  6075. .sp
  6076. .nf
  6077. .ft C
  6078. transport_opts:
  6079. tcp:
  6080. publish_port: 4605
  6081. ret_port: 4606
  6082. zeromq: []
  6083. .ft P
  6084. .fi
  6085. .UNINDENT
  6086. .UNINDENT
  6087. .SS \fBmaster_stats\fP
  6088. .sp
  6089. Default: False
  6090. .sp
  6091. Turning on the master stats enables runtime throughput and statistics events
  6092. to be fired from the master event bus. These events will report on what
  6093. functions have been run on the master and how long these runs have, on
  6094. average, taken over a given period of time.
  6095. .SS \fBmaster_stats_event_iter\fP
  6096. .sp
  6097. Default: 60
  6098. .sp
  6099. The time in seconds to fire master_stats events. This will only fire in
  6100. conjunction with receiving a request to the master, idle masters will not
  6101. fire these events.
  6102. .SS \fBsock_pool_size\fP
  6103. .sp
  6104. Default: 1
  6105. .sp
  6106. To avoid blocking waiting while writing a data to a socket, we support
  6107. socket pool for Salt applications. For example, a job with a large number
  6108. of target host list can cause long period blocking waiting. The option
  6109. is used by ZMQ and TCP transports, and the other transport methods don\(aqt
  6110. need the socket pool by definition. Most of Salt tools, including CLI,
  6111. are enough to use a single bucket of socket pool. On the other hands,
  6112. it is highly recommended to set the size of socket pool larger than 1
  6113. for other Salt applications, especially Salt API, which must write data
  6114. to socket concurrently.
  6115. .INDENT 0.0
  6116. .INDENT 3.5
  6117. .sp
  6118. .nf
  6119. .ft C
  6120. sock_pool_size: 15
  6121. .ft P
  6122. .fi
  6123. .UNINDENT
  6124. .UNINDENT
  6125. .SS \fBipc_mode\fP
  6126. .sp
  6127. Default: \fBipc\fP
  6128. .sp
  6129. The ipc strategy. (i.e., sockets versus tcp, etc.) Windows platforms lack
  6130. POSIX IPC and must rely on TCP based inter\-process communications. \fBipc_mode\fP
  6131. is set to \fBtcp\fP by default on Windows.
  6132. .INDENT 0.0
  6133. .INDENT 3.5
  6134. .sp
  6135. .nf
  6136. .ft C
  6137. ipc_mode: ipc
  6138. .ft P
  6139. .fi
  6140. .UNINDENT
  6141. .UNINDENT
  6142. .SS \fBtcp_master_pub_port\fP
  6143. .sp
  6144. Default: \fB4512\fP
  6145. .sp
  6146. The TCP port on which events for the master should be published if \fBipc_mode\fP is TCP.
  6147. .INDENT 0.0
  6148. .INDENT 3.5
  6149. .sp
  6150. .nf
  6151. .ft C
  6152. tcp_master_pub_port: 4512
  6153. .ft P
  6154. .fi
  6155. .UNINDENT
  6156. .UNINDENT
  6157. .SS \fBtcp_master_pull_port\fP
  6158. .sp
  6159. Default: \fB4513\fP
  6160. .sp
  6161. The TCP port on which events for the master should be pulled if \fBipc_mode\fP is TCP.
  6162. .INDENT 0.0
  6163. .INDENT 3.5
  6164. .sp
  6165. .nf
  6166. .ft C
  6167. tcp_master_pull_port: 4513
  6168. .ft P
  6169. .fi
  6170. .UNINDENT
  6171. .UNINDENT
  6172. .SS \fBtcp_master_publish_pull\fP
  6173. .sp
  6174. Default: \fB4514\fP
  6175. .sp
  6176. The TCP port on which events for the master should be pulled fom and then republished onto
  6177. the event bus on the master.
  6178. .INDENT 0.0
  6179. .INDENT 3.5
  6180. .sp
  6181. .nf
  6182. .ft C
  6183. tcp_master_publish_pull: 4514
  6184. .ft P
  6185. .fi
  6186. .UNINDENT
  6187. .UNINDENT
  6188. .SS \fBtcp_master_workers\fP
  6189. .sp
  6190. Default: \fB4515\fP
  6191. .sp
  6192. The TCP port for \fBmworkers\fP to connect to on the master.
  6193. .INDENT 0.0
  6194. .INDENT 3.5
  6195. .sp
  6196. .nf
  6197. .ft C
  6198. tcp_master_workers: 4515
  6199. .ft P
  6200. .fi
  6201. .UNINDENT
  6202. .UNINDENT
  6203. .SS \fBauth_events\fP
  6204. .sp
  6205. New in version 2017.7.3.
  6206. .sp
  6207. Default: \fBTrue\fP
  6208. .sp
  6209. Determines whether the master will fire authentication events.
  6210. Authentication events are fired when
  6211. a minion performs an authentication check with the master.
  6212. .INDENT 0.0
  6213. .INDENT 3.5
  6214. .sp
  6215. .nf
  6216. .ft C
  6217. auth_events: True
  6218. .ft P
  6219. .fi
  6220. .UNINDENT
  6221. .UNINDENT
  6222. .SS \fBminion_data_cache_events\fP
  6223. .sp
  6224. New in version 2017.7.3.
  6225. .sp
  6226. Default: \fBTrue\fP
  6227. .sp
  6228. Determines whether the master will fire minion data cache events. Minion data
  6229. cache events are fired when a minion requests a minion data cache refresh.
  6230. .INDENT 0.0
  6231. .INDENT 3.5
  6232. .sp
  6233. .nf
  6234. .ft C
  6235. minion_data_cache_events: True
  6236. .ft P
  6237. .fi
  6238. .UNINDENT
  6239. .UNINDENT
  6240. .SS \fBhttp_connect_timeout\fP
  6241. .sp
  6242. New in version 2019.2.0.
  6243. .sp
  6244. Default: \fB20\fP
  6245. .sp
  6246. HTTP connection timeout in seconds.
  6247. Applied when fetching files using tornado back\-end.
  6248. Should be greater than overall download time.
  6249. .INDENT 0.0
  6250. .INDENT 3.5
  6251. .sp
  6252. .nf
  6253. .ft C
  6254. http_connect_timeout: 20
  6255. .ft P
  6256. .fi
  6257. .UNINDENT
  6258. .UNINDENT
  6259. .SS \fBhttp_request_timeout\fP
  6260. .sp
  6261. New in version 2015.8.0.
  6262. .sp
  6263. Default: \fB3600\fP
  6264. .sp
  6265. HTTP request timeout in seconds.
  6266. Applied when fetching files using tornado back\-end.
  6267. Should be greater than overall download time.
  6268. .INDENT 0.0
  6269. .INDENT 3.5
  6270. .sp
  6271. .nf
  6272. .ft C
  6273. http_request_timeout: 3600
  6274. .ft P
  6275. .fi
  6276. .UNINDENT
  6277. .UNINDENT
  6278. .SS \fBuse_yamlloader_old\fP
  6279. .sp
  6280. New in version 2019.2.1.
  6281. .sp
  6282. Default: \fBFalse\fP
  6283. .sp
  6284. Use the pre\-2019.2 YAML renderer.
  6285. Uses legacy YAML rendering to support some legacy inline data structures.
  6286. See the 2019.2.1 release notes for more details.
  6287. .INDENT 0.0
  6288. .INDENT 3.5
  6289. .sp
  6290. .nf
  6291. .ft C
  6292. use_yamlloader_old: False
  6293. .ft P
  6294. .fi
  6295. .UNINDENT
  6296. .UNINDENT
  6297. .SS \fBreq_server_niceness\fP
  6298. .sp
  6299. New in version Sodium.
  6300. .sp
  6301. Default: \fBNone\fP
  6302. .sp
  6303. Process priority level of the ReqServer subprocess of the master.
  6304. Supported on POSIX platforms only.
  6305. .INDENT 0.0
  6306. .INDENT 3.5
  6307. .sp
  6308. .nf
  6309. .ft C
  6310. req_server_niceness: 9
  6311. .ft P
  6312. .fi
  6313. .UNINDENT
  6314. .UNINDENT
  6315. .SS \fBpub_server_niceness\fP
  6316. .sp
  6317. New in version Sodium.
  6318. .sp
  6319. Default: \fBNone\fP
  6320. .sp
  6321. Process priority level of the PubServer subprocess of the master.
  6322. Supported on POSIX platforms only.
  6323. .INDENT 0.0
  6324. .INDENT 3.5
  6325. .sp
  6326. .nf
  6327. .ft C
  6328. pub_server_niceness: 9
  6329. .ft P
  6330. .fi
  6331. .UNINDENT
  6332. .UNINDENT
  6333. .SS \fBfileserver_update_niceness\fP
  6334. .sp
  6335. New in version Sodium.
  6336. .sp
  6337. Default: \fBNone\fP
  6338. .sp
  6339. Process priority level of the FileServerUpdate subprocess of the master.
  6340. Supported on POSIX platforms only.
  6341. .INDENT 0.0
  6342. .INDENT 3.5
  6343. .sp
  6344. .nf
  6345. .ft C
  6346. fileserver_update_niceness: 9
  6347. .ft P
  6348. .fi
  6349. .UNINDENT
  6350. .UNINDENT
  6351. .SS \fBmaintenance_niceness\fP
  6352. .sp
  6353. New in version Sodium.
  6354. .sp
  6355. Default: \fBNone\fP
  6356. .sp
  6357. Process priority level of the Maintenance subprocess of the master.
  6358. Supported on POSIX platforms only.
  6359. .INDENT 0.0
  6360. .INDENT 3.5
  6361. .sp
  6362. .nf
  6363. .ft C
  6364. maintenance_niceness: 9
  6365. .ft P
  6366. .fi
  6367. .UNINDENT
  6368. .UNINDENT
  6369. .SS \fBmworker_niceness\fP
  6370. .sp
  6371. New in version Sodium.
  6372. .sp
  6373. Default: \fBNone\fP
  6374. .sp
  6375. Process priority level of the MWorker subprocess of the master.
  6376. Supported on POSIX platforms only.
  6377. .INDENT 0.0
  6378. .INDENT 3.5
  6379. .sp
  6380. .nf
  6381. .ft C
  6382. mworker_niceness: 9
  6383. .ft P
  6384. .fi
  6385. .UNINDENT
  6386. .UNINDENT
  6387. .SS \fBmworker_queue_niceness\fP
  6388. .sp
  6389. New in version Sodium.
  6390. .sp
  6391. default: \fBNone\fP
  6392. .sp
  6393. process priority level of the MWorkerQueue subprocess of the master.
  6394. supported on POSIX platforms only.
  6395. .INDENT 0.0
  6396. .INDENT 3.5
  6397. .sp
  6398. .nf
  6399. .ft C
  6400. mworker_queue_niceness: 9
  6401. .ft P
  6402. .fi
  6403. .UNINDENT
  6404. .UNINDENT
  6405. .SS \fBevent_return_niceness\fP
  6406. .sp
  6407. New in version Sodium.
  6408. .sp
  6409. default: \fBNone\fP
  6410. .sp
  6411. process priority level of the EventReturn subprocess of the master.
  6412. supported on POSIX platforms only.
  6413. .INDENT 0.0
  6414. .INDENT 3.5
  6415. .sp
  6416. .nf
  6417. .ft C
  6418. event_return_niceness: 9
  6419. .ft P
  6420. .fi
  6421. .UNINDENT
  6422. .UNINDENT
  6423. .SS \fBevent_publisher_niceness\fP
  6424. .sp
  6425. New in version Sodium.
  6426. .sp
  6427. default: \fBnone\fP
  6428. .sp
  6429. process priority level of the EventPublisher subprocess of the master.
  6430. supported on POSIX platforms only.
  6431. .INDENT 0.0
  6432. .INDENT 3.5
  6433. .sp
  6434. .nf
  6435. .ft C
  6436. event_publisher_niceness: 9
  6437. .ft P
  6438. .fi
  6439. .UNINDENT
  6440. .UNINDENT
  6441. .SS \fBreactor_niceness\fP
  6442. .sp
  6443. New in version Sodium.
  6444. .sp
  6445. default: \fBNone\fP
  6446. .sp
  6447. process priority level of the Reactor subprocess of the master.
  6448. supported on POSIX platforms only.
  6449. .INDENT 0.0
  6450. .INDENT 3.5
  6451. .sp
  6452. .nf
  6453. .ft C
  6454. reactor_niceness: 9
  6455. .ft P
  6456. .fi
  6457. .UNINDENT
  6458. .UNINDENT
  6459. .SS Salt\-SSH Configuration
  6460. .SS \fBroster\fP
  6461. .sp
  6462. Default: \fBflat\fP
  6463. .sp
  6464. Define the default salt\-ssh roster module to use
  6465. .INDENT 0.0
  6466. .INDENT 3.5
  6467. .sp
  6468. .nf
  6469. .ft C
  6470. roster: cache
  6471. .ft P
  6472. .fi
  6473. .UNINDENT
  6474. .UNINDENT
  6475. .SS \fBroster_defaults\fP
  6476. .sp
  6477. New in version 2017.7.0.
  6478. .sp
  6479. Default settings which will be inherited by all rosters.
  6480. .INDENT 0.0
  6481. .INDENT 3.5
  6482. .sp
  6483. .nf
  6484. .ft C
  6485. roster_defaults:
  6486. user: daniel
  6487. sudo: True
  6488. priv: /root/.ssh/id_rsa
  6489. tty: True
  6490. .ft P
  6491. .fi
  6492. .UNINDENT
  6493. .UNINDENT
  6494. .SS \fBroster_file\fP
  6495. .sp
  6496. Default: \fB/etc/salt/roster\fP
  6497. .sp
  6498. Pass in an alternative location for the salt\-ssh \fBflat\fP roster file.
  6499. .INDENT 0.0
  6500. .INDENT 3.5
  6501. .sp
  6502. .nf
  6503. .ft C
  6504. roster_file: /root/roster
  6505. .ft P
  6506. .fi
  6507. .UNINDENT
  6508. .UNINDENT
  6509. .SS \fBrosters\fP
  6510. .sp
  6511. Default: \fBNone\fP
  6512. .sp
  6513. Define locations for \fBflat\fP roster files so they can
  6514. be chosen when using Salt API. An administrator can place roster files into
  6515. these locations. Then, when calling Salt API, the \fI\%roster_file\fP
  6516. parameter should contain a relative path to these locations. That is,
  6517. \fBroster_file=/foo/roster\fP will be resolved as
  6518. \fB/etc/salt/roster.d/foo/roster\fP etc. This feature prevents passing insecure
  6519. custom rosters through the Salt API.
  6520. .INDENT 0.0
  6521. .INDENT 3.5
  6522. .sp
  6523. .nf
  6524. .ft C
  6525. rosters:
  6526. \- /etc/salt/roster.d
  6527. \- /opt/salt/some/more/rosters
  6528. .ft P
  6529. .fi
  6530. .UNINDENT
  6531. .UNINDENT
  6532. .SS \fBssh_passwd\fP
  6533. .sp
  6534. Default: \fB\(aq\(aq\fP
  6535. .sp
  6536. The ssh password to log in with.
  6537. .INDENT 0.0
  6538. .INDENT 3.5
  6539. .sp
  6540. .nf
  6541. .ft C
  6542. ssh_passwd: \(aq\(aq
  6543. .ft P
  6544. .fi
  6545. .UNINDENT
  6546. .UNINDENT
  6547. .SS \fBssh_priv_passwd\fP
  6548. .sp
  6549. Default: \fB\(aq\(aq\fP
  6550. .sp
  6551. Passphrase for ssh private key file.
  6552. .INDENT 0.0
  6553. .INDENT 3.5
  6554. .sp
  6555. .nf
  6556. .ft C
  6557. ssh_priv_passwd: \(aq\(aq
  6558. .ft P
  6559. .fi
  6560. .UNINDENT
  6561. .UNINDENT
  6562. .SS \fBssh_port\fP
  6563. .sp
  6564. Default: \fB22\fP
  6565. .sp
  6566. The target system\(aqs ssh port number.
  6567. .INDENT 0.0
  6568. .INDENT 3.5
  6569. .sp
  6570. .nf
  6571. .ft C
  6572. ssh_port: 22
  6573. .ft P
  6574. .fi
  6575. .UNINDENT
  6576. .UNINDENT
  6577. .SS \fBssh_scan_ports\fP
  6578. .sp
  6579. Default: \fB22\fP
  6580. .sp
  6581. Comma\-separated list of ports to scan.
  6582. .INDENT 0.0
  6583. .INDENT 3.5
  6584. .sp
  6585. .nf
  6586. .ft C
  6587. ssh_scan_ports: 22
  6588. .ft P
  6589. .fi
  6590. .UNINDENT
  6591. .UNINDENT
  6592. .SS \fBssh_scan_timeout\fP
  6593. .sp
  6594. Default: \fB0.01\fP
  6595. .sp
  6596. Scanning socket timeout for salt\-ssh.
  6597. .INDENT 0.0
  6598. .INDENT 3.5
  6599. .sp
  6600. .nf
  6601. .ft C
  6602. ssh_scan_timeout: 0.01
  6603. .ft P
  6604. .fi
  6605. .UNINDENT
  6606. .UNINDENT
  6607. .SS \fBssh_sudo\fP
  6608. .sp
  6609. Default: \fBFalse\fP
  6610. .sp
  6611. Boolean to run command via sudo.
  6612. .INDENT 0.0
  6613. .INDENT 3.5
  6614. .sp
  6615. .nf
  6616. .ft C
  6617. ssh_sudo: False
  6618. .ft P
  6619. .fi
  6620. .UNINDENT
  6621. .UNINDENT
  6622. .SS \fBssh_timeout\fP
  6623. .sp
  6624. Default: \fB60\fP
  6625. .sp
  6626. Number of seconds to wait for a response when establishing an SSH connection.
  6627. .INDENT 0.0
  6628. .INDENT 3.5
  6629. .sp
  6630. .nf
  6631. .ft C
  6632. ssh_timeout: 60
  6633. .ft P
  6634. .fi
  6635. .UNINDENT
  6636. .UNINDENT
  6637. .SS \fBssh_user\fP
  6638. .sp
  6639. Default: \fBroot\fP
  6640. .sp
  6641. The user to log in as.
  6642. .INDENT 0.0
  6643. .INDENT 3.5
  6644. .sp
  6645. .nf
  6646. .ft C
  6647. ssh_user: root
  6648. .ft P
  6649. .fi
  6650. .UNINDENT
  6651. .UNINDENT
  6652. .SS \fBssh_log_file\fP
  6653. .sp
  6654. New in version 2016.3.5.
  6655. .sp
  6656. Default: \fB/var/log/salt/ssh\fP
  6657. .sp
  6658. Specify the log file of the \fBsalt\-ssh\fP command.
  6659. .INDENT 0.0
  6660. .INDENT 3.5
  6661. .sp
  6662. .nf
  6663. .ft C
  6664. ssh_log_file: /var/log/salt/ssh
  6665. .ft P
  6666. .fi
  6667. .UNINDENT
  6668. .UNINDENT
  6669. .SS \fBssh_minion_opts\fP
  6670. .sp
  6671. Default: None
  6672. .sp
  6673. Pass in minion option overrides that will be inserted into the SHIM for
  6674. salt\-ssh calls. The local minion config is not used for salt\-ssh. Can be
  6675. overridden on a per\-minion basis in the roster (\fBminion_opts\fP)
  6676. .INDENT 0.0
  6677. .INDENT 3.5
  6678. .sp
  6679. .nf
  6680. .ft C
  6681. ssh_minion_opts:
  6682. gpg_keydir: /root/gpg
  6683. .ft P
  6684. .fi
  6685. .UNINDENT
  6686. .UNINDENT
  6687. .SS \fBssh_use_home_key\fP
  6688. .sp
  6689. Default: False
  6690. .sp
  6691. Set this to True to default to using \fB~/.ssh/id_rsa\fP for salt\-ssh
  6692. authentication with minions
  6693. .INDENT 0.0
  6694. .INDENT 3.5
  6695. .sp
  6696. .nf
  6697. .ft C
  6698. ssh_use_home_key: False
  6699. .ft P
  6700. .fi
  6701. .UNINDENT
  6702. .UNINDENT
  6703. .SS \fBssh_identities_only\fP
  6704. .sp
  6705. Default: \fBFalse\fP
  6706. .sp
  6707. Set this to \fBTrue\fP to default salt\-ssh to run with \fB\-o IdentitiesOnly=yes\fP\&. This
  6708. option is intended for situations where the ssh\-agent offers many different identities
  6709. and allows ssh to ignore those identities and use the only one specified in options.
  6710. .INDENT 0.0
  6711. .INDENT 3.5
  6712. .sp
  6713. .nf
  6714. .ft C
  6715. ssh_identities_only: False
  6716. .ft P
  6717. .fi
  6718. .UNINDENT
  6719. .UNINDENT
  6720. .SS \fBssh_list_nodegroups\fP
  6721. .sp
  6722. Default: \fB{}\fP
  6723. .sp
  6724. List\-only nodegroups for salt\-ssh. Each group must be formed as either a comma\-separated
  6725. list, or a YAML list. This option is useful to group minions into easy\-to\-target groups
  6726. when using salt\-ssh. These groups can then be targeted with the normal \-N argument to
  6727. salt\-ssh.
  6728. .INDENT 0.0
  6729. .INDENT 3.5
  6730. .sp
  6731. .nf
  6732. .ft C
  6733. ssh_list_nodegroups:
  6734. groupA: minion1,minion2
  6735. groupB: minion1,minion3
  6736. .ft P
  6737. .fi
  6738. .UNINDENT
  6739. .UNINDENT
  6740. .sp
  6741. Default: False
  6742. .sp
  6743. Run the ssh_pre_flight script defined in the salt\-ssh roster. By default
  6744. the script will only run when the thin dir does not exist on the targeted
  6745. minion. This will force the script to run and not check if the thin dir
  6746. exists first.
  6747. .SS \fBthin_extra_mods\fP
  6748. .sp
  6749. Default: None
  6750. .sp
  6751. List of additional modules, needed to be included into the Salt Thin.
  6752. Pass a list of importable Python modules that are typically located in
  6753. the \fIsite\-packages\fP Python directory so they will be also always included
  6754. into the Salt Thin, once generated.
  6755. .SS \fBmin_extra_mods\fP
  6756. .sp
  6757. Default: None
  6758. .sp
  6759. Identical as \fIthin_extra_mods\fP, only applied to the Salt Minimal.
  6760. .SS Master Security Settings
  6761. .SS \fBopen_mode\fP
  6762. .sp
  6763. Default: \fBFalse\fP
  6764. .sp
  6765. Open mode is a dangerous security feature. One problem encountered with pki
  6766. authentication systems is that keys can become "mixed up" and authentication
  6767. begins to fail. Open mode turns off authentication and tells the master to
  6768. accept all authentication. This will clean up the pki keys received from the
  6769. minions. Open mode should not be turned on for general use. Open mode should
  6770. only be used for a short period of time to clean up pki keys. To turn on open
  6771. mode set this value to \fBTrue\fP\&.
  6772. .INDENT 0.0
  6773. .INDENT 3.5
  6774. .sp
  6775. .nf
  6776. .ft C
  6777. open_mode: False
  6778. .ft P
  6779. .fi
  6780. .UNINDENT
  6781. .UNINDENT
  6782. .SS \fBauto_accept\fP
  6783. .sp
  6784. Default: \fBFalse\fP
  6785. .sp
  6786. Enable auto_accept. This setting will automatically accept all incoming
  6787. public keys from minions.
  6788. .INDENT 0.0
  6789. .INDENT 3.5
  6790. .sp
  6791. .nf
  6792. .ft C
  6793. auto_accept: False
  6794. .ft P
  6795. .fi
  6796. .UNINDENT
  6797. .UNINDENT
  6798. .SS \fBkeysize\fP
  6799. .sp
  6800. Default: \fB2048\fP
  6801. .sp
  6802. The size of key that should be generated when creating new keys.
  6803. .INDENT 0.0
  6804. .INDENT 3.5
  6805. .sp
  6806. .nf
  6807. .ft C
  6808. keysize: 2048
  6809. .ft P
  6810. .fi
  6811. .UNINDENT
  6812. .UNINDENT
  6813. .SS \fBautosign_timeout\fP
  6814. .sp
  6815. New in version 2014.7.0.
  6816. .sp
  6817. Default: \fB120\fP
  6818. .sp
  6819. Time in minutes that a incoming public key with a matching name found in
  6820. pki_dir/minion_autosign/keyid is automatically accepted. Expired autosign keys
  6821. are removed when the master checks the minion_autosign directory. This method
  6822. to auto accept minions can be safer than an autosign_file because the
  6823. keyid record can expire and is limited to being an exact name match.
  6824. This should still be considered a less than secure option, due to the fact
  6825. that trust is based on just the requesting minion id.
  6826. .SS \fBautosign_file\fP
  6827. .sp
  6828. Default: \fBnot defined\fP
  6829. .sp
  6830. If the \fBautosign_file\fP is specified incoming keys specified in the autosign_file
  6831. will be automatically accepted. Matches will be searched for first by string
  6832. comparison, then by globbing, then by full\-string regex matching.
  6833. This should still be considered a less than secure option, due to the fact
  6834. that trust is based on just the requesting minion id.
  6835. .sp
  6836. Changed in version 2018.3.0: For security reasons the file must be readonly except for its owner.
  6837. If \fI\%permissive_pki_access\fP is \fBTrue\fP the owning group can also
  6838. have write access, but if Salt is running as \fBroot\fP it must be a member of that group.
  6839. A less strict requirement also existed in previous version.
  6840. .SS \fBautoreject_file\fP
  6841. .sp
  6842. New in version 2014.1.0.
  6843. .sp
  6844. Default: \fBnot defined\fP
  6845. .sp
  6846. Works like \fI\%autosign_file\fP, but instead allows you to specify
  6847. minion IDs for which keys will automatically be rejected. Will override both
  6848. membership in the \fI\%autosign_file\fP and the
  6849. \fI\%auto_accept\fP setting.
  6850. .SS \fBautosign_grains_dir\fP
  6851. .sp
  6852. New in version 2018.3.0.
  6853. .sp
  6854. Default: \fBnot defined\fP
  6855. .sp
  6856. If the \fBautosign_grains_dir\fP is specified, incoming keys from minions with
  6857. grain values that match those defined in files in the autosign_grains_dir
  6858. will be accepted automatically. Grain values that should be accepted automatically
  6859. can be defined by creating a file named like the corresponding grain in the
  6860. autosign_grains_dir and writing the values into that file, one value per line.
  6861. Lines starting with a \fB#\fP will be ignored.
  6862. Minion must be configured to send the corresponding grains on authentication.
  6863. This should still be considered a less than secure option, due to the fact
  6864. that trust is based on just the requesting minion.
  6865. .sp
  6866. Please see the Autoaccept Minions from Grains
  6867. documentation for more information.
  6868. .INDENT 0.0
  6869. .INDENT 3.5
  6870. .sp
  6871. .nf
  6872. .ft C
  6873. autosign_grains_dir: /etc/salt/autosign_grains
  6874. .ft P
  6875. .fi
  6876. .UNINDENT
  6877. .UNINDENT
  6878. .SS \fBpermissive_pki_access\fP
  6879. .sp
  6880. Default: \fBFalse\fP
  6881. .sp
  6882. Enable permissive access to the salt keys. This allows you to run the
  6883. master or minion as root, but have a non\-root group be given access to
  6884. your pki_dir. To make the access explicit, root must belong to the group
  6885. you\(aqve given access to. This is potentially quite insecure. If an autosign_file
  6886. is specified, enabling permissive_pki_access will allow group access to that
  6887. specific file.
  6888. .INDENT 0.0
  6889. .INDENT 3.5
  6890. .sp
  6891. .nf
  6892. .ft C
  6893. permissive_pki_access: False
  6894. .ft P
  6895. .fi
  6896. .UNINDENT
  6897. .UNINDENT
  6898. .SS \fBpublisher_acl\fP
  6899. .sp
  6900. Default: \fB{}\fP
  6901. .sp
  6902. Enable user accounts on the master to execute specific modules. These modules
  6903. can be expressed as regular expressions.
  6904. .INDENT 0.0
  6905. .INDENT 3.5
  6906. .sp
  6907. .nf
  6908. .ft C
  6909. publisher_acl:
  6910. fred:
  6911. \- test.ping
  6912. \- pkg.*
  6913. .ft P
  6914. .fi
  6915. .UNINDENT
  6916. .UNINDENT
  6917. .SS \fBpublisher_acl_blacklist\fP
  6918. .sp
  6919. Default: \fB{}\fP
  6920. .sp
  6921. Blacklist users or modules
  6922. .sp
  6923. This example would blacklist all non sudo users, including root from
  6924. running any commands. It would also blacklist any use of the "cmd"
  6925. module.
  6926. .sp
  6927. This is completely disabled by default.
  6928. .INDENT 0.0
  6929. .INDENT 3.5
  6930. .sp
  6931. .nf
  6932. .ft C
  6933. publisher_acl_blacklist:
  6934. users:
  6935. \- root
  6936. \- \(aq^(?!sudo_).*$\(aq # all non sudo users
  6937. modules:
  6938. \- cmd.*
  6939. \- test.echo
  6940. .ft P
  6941. .fi
  6942. .UNINDENT
  6943. .UNINDENT
  6944. .SS \fBsudo_acl\fP
  6945. .sp
  6946. Default: \fBFalse\fP
  6947. .sp
  6948. Enforce \fBpublisher_acl\fP and \fBpublisher_acl_blacklist\fP when users have sudo
  6949. access to the salt command.
  6950. .INDENT 0.0
  6951. .INDENT 3.5
  6952. .sp
  6953. .nf
  6954. .ft C
  6955. sudo_acl: False
  6956. .ft P
  6957. .fi
  6958. .UNINDENT
  6959. .UNINDENT
  6960. .SS \fBexternal_auth\fP
  6961. .sp
  6962. Default: \fB{}\fP
  6963. .sp
  6964. The external auth system uses the Salt auth modules to authenticate and
  6965. validate users to access areas of the Salt system.
  6966. .INDENT 0.0
  6967. .INDENT 3.5
  6968. .sp
  6969. .nf
  6970. .ft C
  6971. external_auth:
  6972. pam:
  6973. fred:
  6974. \- test.*
  6975. .ft P
  6976. .fi
  6977. .UNINDENT
  6978. .UNINDENT
  6979. .SS \fBtoken_expire\fP
  6980. .sp
  6981. Default: \fB43200\fP
  6982. .sp
  6983. Time (in seconds) for a newly generated token to live.
  6984. .sp
  6985. Default: 12 hours
  6986. .INDENT 0.0
  6987. .INDENT 3.5
  6988. .sp
  6989. .nf
  6990. .ft C
  6991. token_expire: 43200
  6992. .ft P
  6993. .fi
  6994. .UNINDENT
  6995. .UNINDENT
  6996. .SS \fBtoken_expire_user_override\fP
  6997. .sp
  6998. Default: \fBFalse\fP
  6999. .sp
  7000. Allow eauth users to specify the expiry time of the tokens they generate.
  7001. .sp
  7002. A boolean applies to all users or a dictionary of whitelisted eauth backends
  7003. and usernames may be given:
  7004. .INDENT 0.0
  7005. .INDENT 3.5
  7006. .sp
  7007. .nf
  7008. .ft C
  7009. token_expire_user_override:
  7010. pam:
  7011. \- fred
  7012. \- tom
  7013. ldap:
  7014. \- gary
  7015. .ft P
  7016. .fi
  7017. .UNINDENT
  7018. .UNINDENT
  7019. .SS \fBkeep_acl_in_token\fP
  7020. .sp
  7021. Default: \fBFalse\fP
  7022. .sp
  7023. Set to True to enable keeping the calculated user\(aqs auth list in the token
  7024. file. This is disabled by default and the auth list is calculated or requested
  7025. from the eauth driver each time.
  7026. .INDENT 0.0
  7027. .INDENT 3.5
  7028. .sp
  7029. .nf
  7030. .ft C
  7031. keep_acl_in_token: False
  7032. .ft P
  7033. .fi
  7034. .UNINDENT
  7035. .UNINDENT
  7036. .SS \fBeauth_acl_module\fP
  7037. .sp
  7038. Default: \fB\(aq\(aq\fP
  7039. .sp
  7040. Auth subsystem module to use to get authorized access list for a user. By default it\(aqs
  7041. the same module used for external authentication.
  7042. .INDENT 0.0
  7043. .INDENT 3.5
  7044. .sp
  7045. .nf
  7046. .ft C
  7047. eauth_acl_module: django
  7048. .ft P
  7049. .fi
  7050. .UNINDENT
  7051. .UNINDENT
  7052. .SS \fBfile_recv\fP
  7053. .sp
  7054. Default: \fBFalse\fP
  7055. .sp
  7056. Allow minions to push files to the master. This is disabled by default, for
  7057. security purposes.
  7058. .INDENT 0.0
  7059. .INDENT 3.5
  7060. .sp
  7061. .nf
  7062. .ft C
  7063. file_recv: False
  7064. .ft P
  7065. .fi
  7066. .UNINDENT
  7067. .UNINDENT
  7068. .SS \fBfile_recv_max_size\fP
  7069. .sp
  7070. New in version 2014.7.0.
  7071. .sp
  7072. Default: \fB100\fP
  7073. .sp
  7074. Set a hard\-limit on the size of the files that can be pushed to the master.
  7075. It will be interpreted as megabytes.
  7076. .INDENT 0.0
  7077. .INDENT 3.5
  7078. .sp
  7079. .nf
  7080. .ft C
  7081. file_recv_max_size: 100
  7082. .ft P
  7083. .fi
  7084. .UNINDENT
  7085. .UNINDENT
  7086. .SS \fBmaster_sign_pubkey\fP
  7087. .sp
  7088. Default: \fBFalse\fP
  7089. .sp
  7090. Sign the master auth\-replies with a cryptographic signature of the master\(aqs
  7091. public key. Please see the tutorial how to use these settings in the
  7092. \fI\%Multimaster\-PKI with Failover Tutorial\fP
  7093. .INDENT 0.0
  7094. .INDENT 3.5
  7095. .sp
  7096. .nf
  7097. .ft C
  7098. master_sign_pubkey: True
  7099. .ft P
  7100. .fi
  7101. .UNINDENT
  7102. .UNINDENT
  7103. .SS \fBmaster_sign_key_name\fP
  7104. .sp
  7105. Default: \fBmaster_sign\fP
  7106. .sp
  7107. The customizable name of the signing\-key\-pair without suffix.
  7108. .INDENT 0.0
  7109. .INDENT 3.5
  7110. .sp
  7111. .nf
  7112. .ft C
  7113. master_sign_key_name: <filename_without_suffix>
  7114. .ft P
  7115. .fi
  7116. .UNINDENT
  7117. .UNINDENT
  7118. .SS \fBmaster_pubkey_signature\fP
  7119. .sp
  7120. Default: \fBmaster_pubkey_signature\fP
  7121. .sp
  7122. The name of the file in the master\(aqs pki\-directory that holds the pre\-calculated
  7123. signature of the master\(aqs public\-key.
  7124. .INDENT 0.0
  7125. .INDENT 3.5
  7126. .sp
  7127. .nf
  7128. .ft C
  7129. master_pubkey_signature: <filename>
  7130. .ft P
  7131. .fi
  7132. .UNINDENT
  7133. .UNINDENT
  7134. .SS \fBmaster_use_pubkey_signature\fP
  7135. .sp
  7136. Default: \fBFalse\fP
  7137. .sp
  7138. Instead of computing the signature for each auth\-reply, use a pre\-calculated
  7139. signature. The \fI\%master_pubkey_signature\fP must also be set for this.
  7140. .INDENT 0.0
  7141. .INDENT 3.5
  7142. .sp
  7143. .nf
  7144. .ft C
  7145. master_use_pubkey_signature: True
  7146. .ft P
  7147. .fi
  7148. .UNINDENT
  7149. .UNINDENT
  7150. .SS \fBrotate_aes_key\fP
  7151. .sp
  7152. Default: \fBTrue\fP
  7153. .sp
  7154. Rotate the salt\-masters AES\-key when a minion\-public is deleted with salt\-key.
  7155. This is a very important security\-setting. Disabling it will enable deleted
  7156. minions to still listen in on the messages published by the salt\-master.
  7157. Do not disable this unless it is absolutely clear what this does.
  7158. .INDENT 0.0
  7159. .INDENT 3.5
  7160. .sp
  7161. .nf
  7162. .ft C
  7163. rotate_aes_key: True
  7164. .ft P
  7165. .fi
  7166. .UNINDENT
  7167. .UNINDENT
  7168. .SS \fBpublish_session\fP
  7169. .sp
  7170. Default: \fB86400\fP
  7171. .sp
  7172. The number of seconds between AES key rotations on the master.
  7173. .INDENT 0.0
  7174. .INDENT 3.5
  7175. .sp
  7176. .nf
  7177. .ft C
  7178. publish_session: Default: 86400
  7179. .ft P
  7180. .fi
  7181. .UNINDENT
  7182. .UNINDENT
  7183. .SS \fBssl\fP
  7184. .sp
  7185. New in version 2016.11.0.
  7186. .sp
  7187. Default: \fBNone\fP
  7188. .sp
  7189. TLS/SSL connection options. This could be set to a dictionary containing
  7190. arguments corresponding to python \fBssl.wrap_socket\fP method. For details see
  7191. \fI\%Tornado\fP
  7192. and \fI\%Python\fP
  7193. documentation.
  7194. .sp
  7195. Note: to set enum arguments values like \fBcert_reqs\fP and \fBssl_version\fP use
  7196. constant names without ssl module prefix: \fBCERT_REQUIRED\fP or \fBPROTOCOL_SSLv23\fP\&.
  7197. .INDENT 0.0
  7198. .INDENT 3.5
  7199. .sp
  7200. .nf
  7201. .ft C
  7202. ssl:
  7203. keyfile: <path_to_keyfile>
  7204. certfile: <path_to_certfile>
  7205. ssl_version: PROTOCOL_TLSv1_2
  7206. .ft P
  7207. .fi
  7208. .UNINDENT
  7209. .UNINDENT
  7210. .SS \fBpreserve_minion_cache\fP
  7211. .sp
  7212. Default: \fBFalse\fP
  7213. .sp
  7214. By default, the master deletes its cache of minion data when the key for that
  7215. minion is removed. To preserve the cache after key deletion, set
  7216. \fBpreserve_minion_cache\fP to True.
  7217. .sp
  7218. WARNING: This may have security implications if compromised minions auth with
  7219. a previous deleted minion ID.
  7220. .INDENT 0.0
  7221. .INDENT 3.5
  7222. .sp
  7223. .nf
  7224. .ft C
  7225. preserve_minion_cache: False
  7226. .ft P
  7227. .fi
  7228. .UNINDENT
  7229. .UNINDENT
  7230. .SS \fBallow_minion_key_revoke\fP
  7231. .sp
  7232. Default: \fBTrue\fP
  7233. .sp
  7234. Controls whether a minion can request its own key revocation. When True
  7235. the master will honor the minion\(aqs request and revoke its key. When False,
  7236. the master will drop the request and the minion\(aqs key will remain accepted.
  7237. .INDENT 0.0
  7238. .INDENT 3.5
  7239. .sp
  7240. .nf
  7241. .ft C
  7242. allow_minion_key_revoke: False
  7243. .ft P
  7244. .fi
  7245. .UNINDENT
  7246. .UNINDENT
  7247. .SS \fBoptimization_order\fP
  7248. .sp
  7249. Default: \fB[0, 1, 2]\fP
  7250. .sp
  7251. In cases where Salt is distributed without .py files, this option determines
  7252. the priority of optimization level(s) Salt\(aqs module loader should prefer.
  7253. .sp
  7254. \fBNOTE:\fP
  7255. .INDENT 0.0
  7256. .INDENT 3.5
  7257. This option is only supported on Python 3.5+.
  7258. .UNINDENT
  7259. .UNINDENT
  7260. .INDENT 0.0
  7261. .INDENT 3.5
  7262. .sp
  7263. .nf
  7264. .ft C
  7265. optimization_order:
  7266. \- 2
  7267. \- 0
  7268. \- 1
  7269. .ft P
  7270. .fi
  7271. .UNINDENT
  7272. .UNINDENT
  7273. .SS Master Large Scale Tuning Settings
  7274. .SS \fBmax_open_files\fP
  7275. .sp
  7276. Default: \fB100000\fP
  7277. .sp
  7278. Each minion connecting to the master uses AT LEAST one file descriptor, the
  7279. master subscription connection. If enough minions connect you might start
  7280. seeing on the console(and then salt\-master crashes):
  7281. .INDENT 0.0
  7282. .INDENT 3.5
  7283. .sp
  7284. .nf
  7285. .ft C
  7286. Too many open files (tcp_listener.cpp:335)
  7287. Aborted (core dumped)
  7288. .ft P
  7289. .fi
  7290. .UNINDENT
  7291. .UNINDENT
  7292. .INDENT 0.0
  7293. .INDENT 3.5
  7294. .sp
  7295. .nf
  7296. .ft C
  7297. max_open_files: 100000
  7298. .ft P
  7299. .fi
  7300. .UNINDENT
  7301. .UNINDENT
  7302. .sp
  7303. By default this value will be the one of \fIulimit \-Hn\fP, i.e., the hard limit for
  7304. max open files.
  7305. .sp
  7306. To set a different value than the default one, uncomment, and configure this
  7307. setting. Remember that this value CANNOT be higher than the hard limit. Raising
  7308. the hard limit depends on the OS and/or distribution, a good way to find the
  7309. limit is to search the internet for something like this:
  7310. .INDENT 0.0
  7311. .INDENT 3.5
  7312. .sp
  7313. .nf
  7314. .ft C
  7315. raise max open files hard limit debian
  7316. .ft P
  7317. .fi
  7318. .UNINDENT
  7319. .UNINDENT
  7320. .SS \fBworker_threads\fP
  7321. .sp
  7322. Default: \fB5\fP
  7323. .sp
  7324. The number of threads to start for receiving commands and replies from minions.
  7325. If minions are stalling on replies because you have many minions, raise the
  7326. worker_threads value.
  7327. .sp
  7328. Worker threads should not be put below 3 when using the peer system, but can
  7329. drop down to 1 worker otherwise.
  7330. .sp
  7331. \fBNOTE:\fP
  7332. .INDENT 0.0
  7333. .INDENT 3.5
  7334. When the master daemon starts, it is expected behaviour to see
  7335. multiple salt\-master processes, even if \(aqworker_threads\(aq is set to \(aq1\(aq. At
  7336. a minimum, a controlling process will start along with a Publisher, an
  7337. EventPublisher, and a number of MWorker processes will be started. The
  7338. number of MWorker processes is tuneable by the \(aqworker_threads\(aq
  7339. configuration value while the others are not.
  7340. .UNINDENT
  7341. .UNINDENT
  7342. .INDENT 0.0
  7343. .INDENT 3.5
  7344. .sp
  7345. .nf
  7346. .ft C
  7347. worker_threads: 5
  7348. .ft P
  7349. .fi
  7350. .UNINDENT
  7351. .UNINDENT
  7352. .SS \fBpub_hwm\fP
  7353. .sp
  7354. Default: \fB1000\fP
  7355. .sp
  7356. The zeromq high water mark on the publisher interface.
  7357. .INDENT 0.0
  7358. .INDENT 3.5
  7359. .sp
  7360. .nf
  7361. .ft C
  7362. pub_hwm: 1000
  7363. .ft P
  7364. .fi
  7365. .UNINDENT
  7366. .UNINDENT
  7367. .SS \fBzmq_backlog\fP
  7368. .sp
  7369. Default: \fB1000\fP
  7370. .sp
  7371. The listen queue size of the ZeroMQ backlog.
  7372. .INDENT 0.0
  7373. .INDENT 3.5
  7374. .sp
  7375. .nf
  7376. .ft C
  7377. zmq_backlog: 1000
  7378. .ft P
  7379. .fi
  7380. .UNINDENT
  7381. .UNINDENT
  7382. .SS Master Module Management
  7383. .SS \fBrunner_dirs\fP
  7384. .sp
  7385. Default: \fB[]\fP
  7386. .sp
  7387. Set additional directories to search for runner modules.
  7388. .INDENT 0.0
  7389. .INDENT 3.5
  7390. .sp
  7391. .nf
  7392. .ft C
  7393. runner_dirs:
  7394. \- /var/lib/salt/runners
  7395. .ft P
  7396. .fi
  7397. .UNINDENT
  7398. .UNINDENT
  7399. .SS \fButils_dirs\fP
  7400. .sp
  7401. New in version 2018.3.0.
  7402. .sp
  7403. Default: \fB[]\fP
  7404. .sp
  7405. Set additional directories to search for util modules.
  7406. .INDENT 0.0
  7407. .INDENT 3.5
  7408. .sp
  7409. .nf
  7410. .ft C
  7411. utils_dirs:
  7412. \- /var/lib/salt/utils
  7413. .ft P
  7414. .fi
  7415. .UNINDENT
  7416. .UNINDENT
  7417. .SS \fBcython_enable\fP
  7418. .sp
  7419. Default: \fBFalse\fP
  7420. .sp
  7421. Set to true to enable Cython modules (.pyx files) to be compiled on the fly on
  7422. the Salt master.
  7423. .INDENT 0.0
  7424. .INDENT 3.5
  7425. .sp
  7426. .nf
  7427. .ft C
  7428. cython_enable: False
  7429. .ft P
  7430. .fi
  7431. .UNINDENT
  7432. .UNINDENT
  7433. .SS Master State System Settings
  7434. .SS \fBstate_top\fP
  7435. .sp
  7436. Default: \fBtop.sls\fP
  7437. .sp
  7438. The state system uses a "top" file to tell the minions what environment to
  7439. use and what modules to use. The state_top file is defined relative to the
  7440. root of the base environment. The value of "state_top" is also used for the
  7441. pillar top file
  7442. .INDENT 0.0
  7443. .INDENT 3.5
  7444. .sp
  7445. .nf
  7446. .ft C
  7447. state_top: top.sls
  7448. .ft P
  7449. .fi
  7450. .UNINDENT
  7451. .UNINDENT
  7452. .SS \fBstate_top_saltenv\fP
  7453. .sp
  7454. This option has no default value. Set it to an environment name to ensure that
  7455. \fIonly\fP the top file from that environment is considered during a
  7456. highstate\&.
  7457. .sp
  7458. \fBNOTE:\fP
  7459. .INDENT 0.0
  7460. .INDENT 3.5
  7461. Using this value does not change the merging strategy. For instance, if
  7462. \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and
  7463. \fI\%state_top_saltenv\fP is set to \fBfoo\fP, then any sections for
  7464. environments other than \fBfoo\fP in the top file for the \fBfoo\fP environment
  7465. will be ignored. With \fI\%state_top_saltenv\fP set to \fBbase\fP, all
  7466. states from all environments in the \fBbase\fP top file will be applied,
  7467. while all other top files are ignored. The only way to set
  7468. \fI\%state_top_saltenv\fP to something other than \fBbase\fP and not
  7469. have the other environments in the targeted top file ignored, would be to
  7470. set \fI\%top_file_merging_strategy\fP to \fBmerge_all\fP\&.
  7471. .UNINDENT
  7472. .UNINDENT
  7473. .INDENT 0.0
  7474. .INDENT 3.5
  7475. .sp
  7476. .nf
  7477. .ft C
  7478. state_top_saltenv: dev
  7479. .ft P
  7480. .fi
  7481. .UNINDENT
  7482. .UNINDENT
  7483. .SS \fBtop_file_merging_strategy\fP
  7484. .sp
  7485. Changed in version 2016.11.0: A \fBmerge_all\fP strategy has been added.
  7486. .sp
  7487. Default: \fBmerge\fP
  7488. .sp
  7489. When no specific fileserver environment (a.k.a. \fBsaltenv\fP) has been specified
  7490. for a highstate, all environments\(aq top files are
  7491. inspected. This config option determines how the SLS targets in those top files
  7492. are handled.
  7493. .sp
  7494. When set to \fBmerge\fP, the \fBbase\fP environment\(aqs top file is evaluated first,
  7495. followed by the other environments\(aq top files. The first target expression
  7496. (e.g. \fB\(aq*\(aq\fP) for a given environment is kept, and when the same target
  7497. expression is used in a different top file evaluated later, it is ignored.
  7498. Because \fBbase\fP is evaluated first, it is authoritative. For example, if there
  7499. is a target for \fB\(aq*\(aq\fP for the \fBfoo\fP environment in both the \fBbase\fP and
  7500. \fBfoo\fP environment\(aqs top files, the one in the \fBfoo\fP environment would be
  7501. ignored. The environments will be evaluated in no specific order (aside from
  7502. \fBbase\fP coming first). For greater control over the order in which the
  7503. environments are evaluated, use \fI\%env_order\fP\&. Note that, aside from
  7504. the \fBbase\fP environment\(aqs top file, any sections in top files that do not
  7505. match that top file\(aqs environment will be ignored. So, for example, a section
  7506. for the \fBqa\fP environment would be ignored if it appears in the \fBdev\fP
  7507. environment\(aqs top file. To keep use cases like this from being ignored, use the
  7508. \fBmerge_all\fP strategy.
  7509. .sp
  7510. When set to \fBsame\fP, then for each environment, only that environment\(aqs top
  7511. file is processed, with the others being ignored. For example, only the \fBdev\fP
  7512. environment\(aqs top file will be processed for the \fBdev\fP environment, and any
  7513. SLS targets defined for \fBdev\fP in the \fBbase\fP environment\(aqs (or any other
  7514. environment\(aqs) top file will be ignored. If an environment does not have a top
  7515. file, then the top file from the \fBdefault_top\fP config parameter
  7516. will be used as a fallback.
  7517. .sp
  7518. When set to \fBmerge_all\fP, then all states in all environments in all top files
  7519. will be applied. The order in which individual SLS files will be executed will
  7520. depend on the order in which the top files were evaluated, and the environments
  7521. will be evaluated in no specific order. For greater control over the order in
  7522. which the environments are evaluated, use \fI\%env_order\fP\&.
  7523. .INDENT 0.0
  7524. .INDENT 3.5
  7525. .sp
  7526. .nf
  7527. .ft C
  7528. top_file_merging_strategy: same
  7529. .ft P
  7530. .fi
  7531. .UNINDENT
  7532. .UNINDENT
  7533. .SS \fBenv_order\fP
  7534. .sp
  7535. Default: \fB[]\fP
  7536. .sp
  7537. When \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and no
  7538. environment is specified for a highstate, this
  7539. config option allows for the order in which top files are evaluated to be
  7540. explicitly defined.
  7541. .INDENT 0.0
  7542. .INDENT 3.5
  7543. .sp
  7544. .nf
  7545. .ft C
  7546. env_order:
  7547. \- base
  7548. \- dev
  7549. \- qa
  7550. .ft P
  7551. .fi
  7552. .UNINDENT
  7553. .UNINDENT
  7554. .SS \fBmaster_tops\fP
  7555. .sp
  7556. Default: \fB{}\fP
  7557. .sp
  7558. The master_tops option replaces the external_nodes option by creating
  7559. a pluggable system for the generation of external top data. The external_nodes
  7560. option is deprecated by the master_tops option.
  7561. To gain the capabilities of the classic external_nodes system, use the
  7562. following configuration:
  7563. .INDENT 0.0
  7564. .INDENT 3.5
  7565. .sp
  7566. .nf
  7567. .ft C
  7568. master_tops:
  7569. ext_nodes: <Shell command which returns yaml>
  7570. .ft P
  7571. .fi
  7572. .UNINDENT
  7573. .UNINDENT
  7574. .SS \fBrenderer\fP
  7575. .sp
  7576. Default: \fBjinja|yaml\fP
  7577. .sp
  7578. The renderer to use on the minions to render the state data.
  7579. .INDENT 0.0
  7580. .INDENT 3.5
  7581. .sp
  7582. .nf
  7583. .ft C
  7584. renderer: jinja|json
  7585. .ft P
  7586. .fi
  7587. .UNINDENT
  7588. .UNINDENT
  7589. .SS \fBuserdata_template\fP
  7590. .sp
  7591. New in version 2016.11.4.
  7592. .sp
  7593. Default: \fBNone\fP
  7594. .sp
  7595. The renderer to use for templating userdata files in salt\-cloud, if the
  7596. \fBuserdata_template\fP is not set in the cloud profile. If no value is set in
  7597. the cloud profile or master config file, no templating will be performed.
  7598. .INDENT 0.0
  7599. .INDENT 3.5
  7600. .sp
  7601. .nf
  7602. .ft C
  7603. userdata_template: jinja
  7604. .ft P
  7605. .fi
  7606. .UNINDENT
  7607. .UNINDENT
  7608. .SS \fBjinja_env\fP
  7609. .sp
  7610. New in version 2018.3.0.
  7611. .sp
  7612. Default: \fB{}\fP
  7613. .sp
  7614. jinja_env overrides the default Jinja environment options for
  7615. \fBall templates except sls templates\fP\&.
  7616. To set the options for sls templates use \fI\%jinja_sls_env\fP\&.
  7617. .sp
  7618. \fBNOTE:\fP
  7619. .INDENT 0.0
  7620. .INDENT 3.5
  7621. The \fI\%Jinja2 Environment documentation\fP is the official source for the default values.
  7622. Not all the options listed in the jinja documentation can be overridden using \fI\%jinja_env\fP or \fI\%jinja_sls_env\fP\&.
  7623. .UNINDENT
  7624. .UNINDENT
  7625. .sp
  7626. The default options are:
  7627. .INDENT 0.0
  7628. .INDENT 3.5
  7629. .sp
  7630. .nf
  7631. .ft C
  7632. jinja_env:
  7633. block_start_string: \(aq{%\(aq
  7634. block_end_string: \(aq%}\(aq
  7635. variable_start_string: \(aq{{\(aq
  7636. variable_end_string: \(aq}}\(aq
  7637. comment_start_string: \(aq{#\(aq
  7638. comment_end_string: \(aq#}\(aq
  7639. line_statement_prefix:
  7640. line_comment_prefix:
  7641. trim_blocks: False
  7642. lstrip_blocks: False
  7643. newline_sequence: \(aq\en\(aq
  7644. keep_trailing_newline: False
  7645. .ft P
  7646. .fi
  7647. .UNINDENT
  7648. .UNINDENT
  7649. .SS \fBjinja_sls_env\fP
  7650. .sp
  7651. New in version 2018.3.0.
  7652. .sp
  7653. Default: \fB{}\fP
  7654. .sp
  7655. jinja_sls_env sets the Jinja environment options for \fBsls templates\fP\&.
  7656. The defaults and accepted options are exactly the same as they are
  7657. for \fI\%jinja_env\fP\&.
  7658. .sp
  7659. The default options are:
  7660. .INDENT 0.0
  7661. .INDENT 3.5
  7662. .sp
  7663. .nf
  7664. .ft C
  7665. jinja_sls_env:
  7666. block_start_string: \(aq{%\(aq
  7667. block_end_string: \(aq%}\(aq
  7668. variable_start_string: \(aq{{\(aq
  7669. variable_end_string: \(aq}}\(aq
  7670. comment_start_string: \(aq{#\(aq
  7671. comment_end_string: \(aq#}\(aq
  7672. line_statement_prefix:
  7673. line_comment_prefix:
  7674. trim_blocks: False
  7675. lstrip_blocks: False
  7676. newline_sequence: \(aq\en\(aq
  7677. keep_trailing_newline: False
  7678. .ft P
  7679. .fi
  7680. .UNINDENT
  7681. .UNINDENT
  7682. .sp
  7683. Example using line statements and line comments to increase ease of use:
  7684. .sp
  7685. If your configuration options are
  7686. .INDENT 0.0
  7687. .INDENT 3.5
  7688. .sp
  7689. .nf
  7690. .ft C
  7691. jinja_sls_env:
  7692. line_statement_prefix: \(aq%\(aq
  7693. line_comment_prefix: \(aq##\(aq
  7694. .ft P
  7695. .fi
  7696. .UNINDENT
  7697. .UNINDENT
  7698. .sp
  7699. With these options jinja will interpret anything after a \fB%\fP at the start of a line (ignoreing whitespace)
  7700. as a jinja statement and will interpret anything after a \fB##\fP as a comment.
  7701. .sp
  7702. This allows the following more convenient syntax to be used:
  7703. .INDENT 0.0
  7704. .INDENT 3.5
  7705. .sp
  7706. .nf
  7707. .ft C
  7708. ## (this comment will not stay once rendered)
  7709. # (this comment remains in the rendered template)
  7710. ## ensure all the formula services are running
  7711. % for service in formula_services:
  7712. enable_service_{{ service }}:
  7713. service.running:
  7714. name: {{ service }}
  7715. % endfor
  7716. .ft P
  7717. .fi
  7718. .UNINDENT
  7719. .UNINDENT
  7720. .sp
  7721. The following less convenient but equivalent syntax would have to
  7722. be used if you had not set the line_statement and line_comment options:
  7723. .INDENT 0.0
  7724. .INDENT 3.5
  7725. .sp
  7726. .nf
  7727. .ft C
  7728. {# (this comment will not stay once rendered) #}
  7729. # (this comment remains in the rendered template)
  7730. {# ensure all the formula services are running #}
  7731. {% for service in formula_services %}
  7732. enable_service_{{ service }}:
  7733. service.running:
  7734. name: {{ service }}
  7735. {% endfor %}
  7736. .ft P
  7737. .fi
  7738. .UNINDENT
  7739. .UNINDENT
  7740. .SS \fBjinja_trim_blocks\fP
  7741. .sp
  7742. Deprecated since version 2018.3.0: Replaced by \fI\%jinja_env\fP and \fI\%jinja_sls_env\fP
  7743. .sp
  7744. New in version 2014.1.0.
  7745. .sp
  7746. Default: \fBFalse\fP
  7747. .sp
  7748. If this is set to \fBTrue\fP, the first newline after a Jinja block is
  7749. removed (block, not variable tag!). Defaults to \fBFalse\fP and corresponds
  7750. to the Jinja environment init variable \fBtrim_blocks\fP\&.
  7751. .INDENT 0.0
  7752. .INDENT 3.5
  7753. .sp
  7754. .nf
  7755. .ft C
  7756. jinja_trim_blocks: False
  7757. .ft P
  7758. .fi
  7759. .UNINDENT
  7760. .UNINDENT
  7761. .SS \fBjinja_lstrip_blocks\fP
  7762. .sp
  7763. Deprecated since version 2018.3.0: Replaced by \fI\%jinja_env\fP and \fI\%jinja_sls_env\fP
  7764. .sp
  7765. New in version 2014.1.0.
  7766. .sp
  7767. Default: \fBFalse\fP
  7768. .sp
  7769. If this is set to \fBTrue\fP, leading spaces and tabs are stripped from the
  7770. start of a line to a block. Defaults to \fBFalse\fP and corresponds to the
  7771. Jinja environment init variable \fBlstrip_blocks\fP\&.
  7772. .INDENT 0.0
  7773. .INDENT 3.5
  7774. .sp
  7775. .nf
  7776. .ft C
  7777. jinja_lstrip_blocks: False
  7778. .ft P
  7779. .fi
  7780. .UNINDENT
  7781. .UNINDENT
  7782. .SS \fBfailhard\fP
  7783. .sp
  7784. Default: \fBFalse\fP
  7785. .sp
  7786. Set the global failhard flag. This informs all states to stop running states
  7787. at the moment a single state fails.
  7788. .INDENT 0.0
  7789. .INDENT 3.5
  7790. .sp
  7791. .nf
  7792. .ft C
  7793. failhard: False
  7794. .ft P
  7795. .fi
  7796. .UNINDENT
  7797. .UNINDENT
  7798. .SS \fBstate_verbose\fP
  7799. .sp
  7800. Default: \fBTrue\fP
  7801. .sp
  7802. Controls the verbosity of state runs. By default, the results of all states are
  7803. returned, but setting this value to \fBFalse\fP will cause salt to only display
  7804. output for states that failed or states that have changes.
  7805. .INDENT 0.0
  7806. .INDENT 3.5
  7807. .sp
  7808. .nf
  7809. .ft C
  7810. state_verbose: False
  7811. .ft P
  7812. .fi
  7813. .UNINDENT
  7814. .UNINDENT
  7815. .SS \fBstate_output\fP
  7816. .sp
  7817. Default: \fBfull\fP
  7818. .sp
  7819. The state_output setting controls which results will be output full multi line:
  7820. .INDENT 0.0
  7821. .IP \(bu 2
  7822. \fBfull\fP, \fBterse\fP \- each state will be full/terse
  7823. .IP \(bu 2
  7824. \fBmixed\fP \- only states with errors will be full
  7825. .IP \(bu 2
  7826. \fBchanges\fP \- states with changes and errors will be full
  7827. .UNINDENT
  7828. .sp
  7829. \fBfull_id\fP, \fBmixed_id\fP, \fBchanges_id\fP and \fBterse_id\fP are also allowed;
  7830. when set, the state ID will be used as name in the output.
  7831. .INDENT 0.0
  7832. .INDENT 3.5
  7833. .sp
  7834. .nf
  7835. .ft C
  7836. state_output: full
  7837. .ft P
  7838. .fi
  7839. .UNINDENT
  7840. .UNINDENT
  7841. .SS \fBstate_output_diff\fP
  7842. .sp
  7843. Default: \fBFalse\fP
  7844. .sp
  7845. The state_output_diff setting changes whether or not the output from
  7846. successful states is returned. Useful when even the terse output of these
  7847. states is cluttering the logs. Set it to True to ignore them.
  7848. .INDENT 0.0
  7849. .INDENT 3.5
  7850. .sp
  7851. .nf
  7852. .ft C
  7853. state_output_diff: False
  7854. .ft P
  7855. .fi
  7856. .UNINDENT
  7857. .UNINDENT
  7858. .SS \fBstate_aggregate\fP
  7859. .sp
  7860. Default: \fBFalse\fP
  7861. .sp
  7862. Automatically aggregate all states that have support for mod_aggregate by
  7863. setting to \fBTrue\fP\&. Or pass a list of state module names to automatically
  7864. aggregate just those types.
  7865. .INDENT 0.0
  7866. .INDENT 3.5
  7867. .sp
  7868. .nf
  7869. .ft C
  7870. state_aggregate:
  7871. \- pkg
  7872. .ft P
  7873. .fi
  7874. .UNINDENT
  7875. .UNINDENT
  7876. .INDENT 0.0
  7877. .INDENT 3.5
  7878. .sp
  7879. .nf
  7880. .ft C
  7881. state_aggregate: True
  7882. .ft P
  7883. .fi
  7884. .UNINDENT
  7885. .UNINDENT
  7886. .SS \fBstate_events\fP
  7887. .sp
  7888. Default: \fBFalse\fP
  7889. .sp
  7890. Send progress events as each function in a state run completes execution
  7891. by setting to \fBTrue\fP\&. Progress events are in the format
  7892. \fBsalt/job/<JID>/prog/<MID>/<RUN NUM>\fP\&.
  7893. .INDENT 0.0
  7894. .INDENT 3.5
  7895. .sp
  7896. .nf
  7897. .ft C
  7898. state_events: True
  7899. .ft P
  7900. .fi
  7901. .UNINDENT
  7902. .UNINDENT
  7903. .SS \fByaml_utf8\fP
  7904. .sp
  7905. Default: \fBFalse\fP
  7906. .sp
  7907. Enable extra routines for YAML renderer used states containing UTF characters.
  7908. .INDENT 0.0
  7909. .INDENT 3.5
  7910. .sp
  7911. .nf
  7912. .ft C
  7913. yaml_utf8: False
  7914. .ft P
  7915. .fi
  7916. .UNINDENT
  7917. .UNINDENT
  7918. .SS \fBrunner_returns\fP
  7919. .sp
  7920. Default: \fBFalse\fP
  7921. .sp
  7922. If set to \fBTrue\fP, runner jobs will be saved to job cache (defined by
  7923. \fI\%master_job_cache\fP).
  7924. .INDENT 0.0
  7925. .INDENT 3.5
  7926. .sp
  7927. .nf
  7928. .ft C
  7929. runner_returns: True
  7930. .ft P
  7931. .fi
  7932. .UNINDENT
  7933. .UNINDENT
  7934. .SS Master File Server Settings
  7935. .SS \fBfileserver_backend\fP
  7936. .sp
  7937. Default: \fB[\(aqroots\(aq]\fP
  7938. .sp
  7939. Salt supports a modular fileserver backend system, this system allows the salt
  7940. master to link directly to third party systems to gather and manage the files
  7941. available to minions. Multiple backends can be configured and will be searched
  7942. for the requested file in the order in which they are defined here. The default
  7943. setting only enables the standard backend \fBroots\fP, which is configured using
  7944. the \fI\%file_roots\fP option.
  7945. .sp
  7946. Example:
  7947. .INDENT 0.0
  7948. .INDENT 3.5
  7949. .sp
  7950. .nf
  7951. .ft C
  7952. fileserver_backend:
  7953. \- roots
  7954. \- gitfs
  7955. .ft P
  7956. .fi
  7957. .UNINDENT
  7958. .UNINDENT
  7959. .sp
  7960. \fBNOTE:\fP
  7961. .INDENT 0.0
  7962. .INDENT 3.5
  7963. For masterless Salt, this parameter must be specified in the minion config
  7964. file.
  7965. .UNINDENT
  7966. .UNINDENT
  7967. .SS \fBfileserver_followsymlinks\fP
  7968. .sp
  7969. New in version 2014.1.0.
  7970. .sp
  7971. Default: \fBTrue\fP
  7972. .sp
  7973. By default, the file_server follows symlinks when walking the filesystem tree.
  7974. Currently this only applies to the default roots fileserver_backend.
  7975. .INDENT 0.0
  7976. .INDENT 3.5
  7977. .sp
  7978. .nf
  7979. .ft C
  7980. fileserver_followsymlinks: True
  7981. .ft P
  7982. .fi
  7983. .UNINDENT
  7984. .UNINDENT
  7985. .SS \fBfileserver_ignoresymlinks\fP
  7986. .sp
  7987. New in version 2014.1.0.
  7988. .sp
  7989. Default: \fBFalse\fP
  7990. .sp
  7991. If you do not want symlinks to be treated as the files they are pointing to,
  7992. set \fBfileserver_ignoresymlinks\fP to \fBTrue\fP\&. By default this is set to
  7993. False. When set to \fBTrue\fP, any detected symlink while listing files on the
  7994. Master will not be returned to the Minion.
  7995. .INDENT 0.0
  7996. .INDENT 3.5
  7997. .sp
  7998. .nf
  7999. .ft C
  8000. fileserver_ignoresymlinks: False
  8001. .ft P
  8002. .fi
  8003. .UNINDENT
  8004. .UNINDENT
  8005. .SS \fBfileserver_limit_traversal\fP
  8006. .sp
  8007. New in version 2014.1.0.
  8008. .sp
  8009. Deprecated since version 2018.3.4: This option is now ignored. Firstly, it only traversed
  8010. \fI\%file_roots\fP, which means it did not work for the other
  8011. fileserver backends. Secondly, since this option was added we have added
  8012. caching to the code that traverses the file_roots (and gitfs, etc.), which
  8013. greatly reduces the amount of traversal that is done.
  8014. .sp
  8015. Default: \fBFalse\fP
  8016. .sp
  8017. By default, the Salt fileserver recurses fully into all defined environments
  8018. to attempt to find files. To limit this behavior so that the fileserver only
  8019. traverses directories with SLS files and special Salt directories like _modules,
  8020. set \fBfileserver_limit_traversal\fP to \fBTrue\fP\&. This might be useful for
  8021. installations where a file root has a very large number of files and performance
  8022. is impacted.
  8023. .INDENT 0.0
  8024. .INDENT 3.5
  8025. .sp
  8026. .nf
  8027. .ft C
  8028. fileserver_limit_traversal: False
  8029. .ft P
  8030. .fi
  8031. .UNINDENT
  8032. .UNINDENT
  8033. .SS \fBfileserver_list_cache_time\fP
  8034. .sp
  8035. New in version 2014.1.0.
  8036. .sp
  8037. Changed in version 2016.11.0: The default was changed from \fB30\fP seconds to \fB20\fP\&.
  8038. .sp
  8039. Default: \fB20\fP
  8040. .sp
  8041. Salt caches the list of files/symlinks/directories for each fileserver backend
  8042. and environment as they are requested, to guard against a performance
  8043. bottleneck at scale when many minions all ask the fileserver which files are
  8044. available simultaneously. This configuration parameter allows for the max age
  8045. of that cache to be altered.
  8046. .sp
  8047. Set this value to \fB0\fP to disable use of this cache altogether, but keep in
  8048. mind that this may increase the CPU load on the master when running a highstate
  8049. on a large number of minions.
  8050. .sp
  8051. \fBNOTE:\fP
  8052. .INDENT 0.0
  8053. .INDENT 3.5
  8054. Rather than altering this configuration parameter, it may be advisable to
  8055. use the \fBfileserver.clear_file_list_cache\fP runner to clear these
  8056. caches.
  8057. .UNINDENT
  8058. .UNINDENT
  8059. .INDENT 0.0
  8060. .INDENT 3.5
  8061. .sp
  8062. .nf
  8063. .ft C
  8064. fileserver_list_cache_time: 5
  8065. .ft P
  8066. .fi
  8067. .UNINDENT
  8068. .UNINDENT
  8069. .SS \fBfileserver_verify_config\fP
  8070. .sp
  8071. New in version 2017.7.0.
  8072. .sp
  8073. Default: \fBTrue\fP
  8074. .sp
  8075. By default, as the master starts it performs some sanity checks on the
  8076. configured fileserver backends. If any of these sanity checks fail (such as
  8077. when an invalid configuration is used), the master daemon will abort.
  8078. .sp
  8079. To skip these sanity checks, set this option to \fBFalse\fP\&.
  8080. .INDENT 0.0
  8081. .INDENT 3.5
  8082. .sp
  8083. .nf
  8084. .ft C
  8085. fileserver_verify_config: False
  8086. .ft P
  8087. .fi
  8088. .UNINDENT
  8089. .UNINDENT
  8090. .SS \fBhash_type\fP
  8091. .sp
  8092. Default: \fBsha256\fP
  8093. .sp
  8094. The hash_type is the hash to use when discovering the hash of a file on
  8095. the master server. The default is sha256, but md5, sha1, sha224, sha384, and
  8096. sha512 are also supported.
  8097. .INDENT 0.0
  8098. .INDENT 3.5
  8099. .sp
  8100. .nf
  8101. .ft C
  8102. hash_type: sha256
  8103. .ft P
  8104. .fi
  8105. .UNINDENT
  8106. .UNINDENT
  8107. .SS \fBfile_buffer_size\fP
  8108. .sp
  8109. Default: \fB1048576\fP
  8110. .sp
  8111. The buffer size in the file server in bytes.
  8112. .INDENT 0.0
  8113. .INDENT 3.5
  8114. .sp
  8115. .nf
  8116. .ft C
  8117. file_buffer_size: 1048576
  8118. .ft P
  8119. .fi
  8120. .UNINDENT
  8121. .UNINDENT
  8122. .SS \fBfile_ignore_regex\fP
  8123. .sp
  8124. Default: \fB\(aq\(aq\fP
  8125. .sp
  8126. A regular expression (or a list of expressions) that will be matched
  8127. against the file path before syncing the modules and states to the minions.
  8128. This includes files affected by the file.recurse state.
  8129. For example, if you manage your custom modules and states in subversion
  8130. and don\(aqt want all the \(aq.svn\(aq folders and content synced to your minions,
  8131. you could set this to \(aq/.svn($|/)\(aq. By default nothing is ignored.
  8132. .INDENT 0.0
  8133. .INDENT 3.5
  8134. .sp
  8135. .nf
  8136. .ft C
  8137. file_ignore_regex:
  8138. \- \(aq/\e.svn($|/)\(aq
  8139. \- \(aq/\e.git($|/)\(aq
  8140. .ft P
  8141. .fi
  8142. .UNINDENT
  8143. .UNINDENT
  8144. .SS \fBfile_ignore_glob\fP
  8145. .sp
  8146. Default \fB\(aq\(aq\fP
  8147. .sp
  8148. A file glob (or list of file globs) that will be matched against the file
  8149. path before syncing the modules and states to the minions. This is similar
  8150. to file_ignore_regex above, but works on globs instead of regex. By default
  8151. nothing is ignored.
  8152. .INDENT 0.0
  8153. .INDENT 3.5
  8154. .sp
  8155. .nf
  8156. .ft C
  8157. file_ignore_glob:
  8158. \- \(aq\e*.pyc\(aq
  8159. \- \(aq\e*/somefolder/\e*.bak\(aq
  8160. \- \(aq\e*.swp\(aq
  8161. .ft P
  8162. .fi
  8163. .UNINDENT
  8164. .UNINDENT
  8165. .sp
  8166. \fBNOTE:\fP
  8167. .INDENT 0.0
  8168. .INDENT 3.5
  8169. Vim\(aqs .swp files are a common cause of Unicode errors in
  8170. \fBfile.recurse\fP states which use
  8171. templating. Unless there is a good reason to distribute them via the
  8172. fileserver, it is good practice to include \fB\(aq\e*.swp\(aq\fP in the
  8173. \fI\%file_ignore_glob\fP\&.
  8174. .UNINDENT
  8175. .UNINDENT
  8176. .SS \fBmaster_roots\fP
  8177. .sp
  8178. Default: \fB\(aq\(aq\fP
  8179. .sp
  8180. A master\-only copy of the \fI\%file_roots\fP dictionary, used by the
  8181. state compiler.
  8182. .sp
  8183. Example:
  8184. .INDENT 0.0
  8185. .INDENT 3.5
  8186. .sp
  8187. .nf
  8188. .ft C
  8189. master_roots:
  8190. base:
  8191. \- /srv/salt\-master
  8192. .ft P
  8193. .fi
  8194. .UNINDENT
  8195. .UNINDENT
  8196. .SS roots: Master\(aqs Local File Server
  8197. .SS \fBfile_roots\fP
  8198. .sp
  8199. Default:
  8200. .INDENT 0.0
  8201. .INDENT 3.5
  8202. .sp
  8203. .nf
  8204. .ft C
  8205. base:
  8206. \- /srv/salt
  8207. .ft P
  8208. .fi
  8209. .UNINDENT
  8210. .UNINDENT
  8211. .sp
  8212. Salt runs a lightweight file server written in ZeroMQ to deliver files to
  8213. minions. This file server is built into the master daemon and does not
  8214. require a dedicated port.
  8215. .sp
  8216. The file server works on environments passed to the master. Each environment
  8217. can have multiple root directories. The subdirectories in the multiple file
  8218. roots cannot match, otherwise the downloaded files will not be able to be
  8219. reliably ensured. A base environment is required to house the top file.
  8220. .sp
  8221. As of 2018.3.5 and 2019.2.1, it is possible to have \fI__env__\fP as a catch\-all environment.
  8222. .sp
  8223. Example:
  8224. .INDENT 0.0
  8225. .INDENT 3.5
  8226. .sp
  8227. .nf
  8228. .ft C
  8229. file_roots:
  8230. base:
  8231. \- /srv/salt
  8232. dev:
  8233. \- /srv/salt/dev/services
  8234. \- /srv/salt/dev/states
  8235. prod:
  8236. \- /srv/salt/prod/services
  8237. \- /srv/salt/prod/states
  8238. __env__:
  8239. \- /srv/salt/default
  8240. .ft P
  8241. .fi
  8242. .UNINDENT
  8243. .UNINDENT
  8244. .sp
  8245. \fBNOTE:\fP
  8246. .INDENT 0.0
  8247. .INDENT 3.5
  8248. For masterless Salt, this parameter must be specified in the minion config
  8249. file.
  8250. .UNINDENT
  8251. .UNINDENT
  8252. .SS \fBroots_update_interval\fP
  8253. .sp
  8254. New in version 2018.3.0.
  8255. .sp
  8256. Default: \fB60\fP
  8257. .sp
  8258. This option defines the update interval (in seconds) for
  8259. \fI\%file_roots\fP\&.
  8260. .sp
  8261. \fBNOTE:\fP
  8262. .INDENT 0.0
  8263. .INDENT 3.5
  8264. Since \fBfile_roots\fP consists of files local to the minion, the update
  8265. process for this fileserver backend just reaps the cache for this backend.
  8266. .UNINDENT
  8267. .UNINDENT
  8268. .INDENT 0.0
  8269. .INDENT 3.5
  8270. .sp
  8271. .nf
  8272. .ft C
  8273. roots_update_interval: 120
  8274. .ft P
  8275. .fi
  8276. .UNINDENT
  8277. .UNINDENT
  8278. .SS gitfs: Git Remote File Server Backend
  8279. .SS \fBgitfs_remotes\fP
  8280. .sp
  8281. Default: \fB[]\fP
  8282. .sp
  8283. When using the \fBgit\fP fileserver backend at least one git remote needs to be
  8284. defined. The user running the salt master will need read access to the repo.
  8285. .sp
  8286. The repos will be searched in order to find the file requested by a client and
  8287. the first repo to have the file will return it. Branches and tags are
  8288. translated into salt environments.
  8289. .INDENT 0.0
  8290. .INDENT 3.5
  8291. .sp
  8292. .nf
  8293. .ft C
  8294. gitfs_remotes:
  8295. \- git://github.com/saltstack/salt\-states.git
  8296. \- file:///var/git/saltmaster
  8297. .ft P
  8298. .fi
  8299. .UNINDENT
  8300. .UNINDENT
  8301. .sp
  8302. \fBNOTE:\fP
  8303. .INDENT 0.0
  8304. .INDENT 3.5
  8305. \fBfile://\fP repos will be treated as a remote and copied into the master\(aqs
  8306. gitfs cache, so only the \fIlocal\fP refs for those repos will be exposed as
  8307. fileserver environments.
  8308. .UNINDENT
  8309. .UNINDENT
  8310. .sp
  8311. As of 2014.7.0, it is possible to have per\-repo versions of several of the
  8312. gitfs configuration parameters. For more information, see the GitFS
  8313. Walkthrough\&.
  8314. .SS \fBgitfs_provider\fP
  8315. .sp
  8316. New in version 2014.7.0.
  8317. .sp
  8318. Optional parameter used to specify the provider to be used for gitfs. More
  8319. information can be found in the GitFS Walkthrough\&.
  8320. .sp
  8321. Must be either \fBpygit2\fP or \fBgitpython\fP\&. If unset, then each will be tried
  8322. in that same order, and the first one with a compatible version installed will
  8323. be the provider that is used.
  8324. .INDENT 0.0
  8325. .INDENT 3.5
  8326. .sp
  8327. .nf
  8328. .ft C
  8329. gitfs_provider: gitpython
  8330. .ft P
  8331. .fi
  8332. .UNINDENT
  8333. .UNINDENT
  8334. .SS \fBgitfs_ssl_verify\fP
  8335. .sp
  8336. Default: \fBTrue\fP
  8337. .sp
  8338. Specifies whether or not to ignore SSL certificate errors when fetching from
  8339. the repositories configured in \fI\%gitfs_remotes\fP\&. The \fBFalse\fP
  8340. setting is useful if you\(aqre using a git repo that uses a self\-signed
  8341. certificate. However, keep in mind that setting this to anything other \fBTrue\fP
  8342. is a considered insecure, and using an SSH\-based transport (if available) may
  8343. be a better option.
  8344. .INDENT 0.0
  8345. .INDENT 3.5
  8346. .sp
  8347. .nf
  8348. .ft C
  8349. gitfs_ssl_verify: False
  8350. .ft P
  8351. .fi
  8352. .UNINDENT
  8353. .UNINDENT
  8354. .sp
  8355. \fBNOTE:\fP
  8356. .INDENT 0.0
  8357. .INDENT 3.5
  8358. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  8359. newer.
  8360. .UNINDENT
  8361. .UNINDENT
  8362. .sp
  8363. Changed in version 2015.8.0: This option can now be configured on individual repositories as well. See
  8364. here for more info.
  8365. .sp
  8366. Changed in version 2016.11.0: The default config value changed from \fBFalse\fP to \fBTrue\fP\&.
  8367. .SS \fBgitfs_mountpoint\fP
  8368. .sp
  8369. New in version 2014.7.0.
  8370. .sp
  8371. Default: \fB\(aq\(aq\fP
  8372. .sp
  8373. Specifies a path on the salt fileserver which will be prepended to all files
  8374. served by gitfs. This option can be used in conjunction with
  8375. \fI\%gitfs_root\fP\&. It can also be configured for an individual
  8376. repository, see here for more info.
  8377. .INDENT 0.0
  8378. .INDENT 3.5
  8379. .sp
  8380. .nf
  8381. .ft C
  8382. gitfs_mountpoint: salt://foo/bar
  8383. .ft P
  8384. .fi
  8385. .UNINDENT
  8386. .UNINDENT
  8387. .sp
  8388. \fBNOTE:\fP
  8389. .INDENT 0.0
  8390. .INDENT 3.5
  8391. The \fBsalt://\fP protocol designation can be left off (in other words,
  8392. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  8393. \fBbaz.sh\fP in the root of a gitfs remote, and the above example mountpoint,
  8394. this file would be served up via \fBsalt://foo/bar/baz.sh\fP\&.
  8395. .UNINDENT
  8396. .UNINDENT
  8397. .SS \fBgitfs_root\fP
  8398. .sp
  8399. Default: \fB\(aq\(aq\fP
  8400. .sp
  8401. Relative path to a subdirectory within the repository from which Salt should
  8402. begin to serve files. This is useful when there are files in the repository
  8403. that should not be available to the Salt fileserver. Can be used in conjunction
  8404. with \fI\%gitfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  8405. directories above the one specified will be ignored and the relative path will
  8406. (for the purposes of gitfs) be considered as the root of the repo.
  8407. .INDENT 0.0
  8408. .INDENT 3.5
  8409. .sp
  8410. .nf
  8411. .ft C
  8412. gitfs_root: somefolder/otherfolder
  8413. .ft P
  8414. .fi
  8415. .UNINDENT
  8416. .UNINDENT
  8417. .sp
  8418. Changed in version 2014.7.0: This option can now be configured on individual repositories as well. See
  8419. here for more info.
  8420. .SS \fBgitfs_base\fP
  8421. .sp
  8422. Default: \fBmaster\fP
  8423. .sp
  8424. Defines which branch/tag should be used as the \fBbase\fP environment.
  8425. .INDENT 0.0
  8426. .INDENT 3.5
  8427. .sp
  8428. .nf
  8429. .ft C
  8430. gitfs_base: salt
  8431. .ft P
  8432. .fi
  8433. .UNINDENT
  8434. .UNINDENT
  8435. .sp
  8436. Changed in version 2014.7.0: This option can now be configured on individual repositories as well. See
  8437. here for more info.
  8438. .SS \fBgitfs_saltenv\fP
  8439. .sp
  8440. New in version 2016.11.0.
  8441. .sp
  8442. Default: \fB[]\fP
  8443. .sp
  8444. Global settings for per\-saltenv configuration parameters\&. Though per\-saltenv configuration parameters are
  8445. typically one\-off changes specific to a single gitfs remote, and thus more
  8446. often configured on a per\-remote basis, this parameter can be used to specify
  8447. per\-saltenv changes which should apply to all remotes. For example, the below
  8448. configuration will map the \fBdevelop\fP branch to the \fBdev\fP saltenv for all
  8449. gitfs remotes.
  8450. .INDENT 0.0
  8451. .INDENT 3.5
  8452. .sp
  8453. .nf
  8454. .ft C
  8455. gitfs_saltenv:
  8456. \- dev:
  8457. \- ref: develop
  8458. .ft P
  8459. .fi
  8460. .UNINDENT
  8461. .UNINDENT
  8462. .SS \fBgitfs_disable_saltenv_mapping\fP
  8463. .sp
  8464. New in version 2018.3.0.
  8465. .sp
  8466. Default: \fBFalse\fP
  8467. .sp
  8468. When set to \fBTrue\fP, all saltenv mapping logic is disregarded (aside from
  8469. which branch/tag is mapped to the \fBbase\fP saltenv). To use any other
  8470. environments, they must then be defined using per\-saltenv configuration
  8471. parameters\&.
  8472. .INDENT 0.0
  8473. .INDENT 3.5
  8474. .sp
  8475. .nf
  8476. .ft C
  8477. gitfs_disable_saltenv_mapping: True
  8478. .ft P
  8479. .fi
  8480. .UNINDENT
  8481. .UNINDENT
  8482. .sp
  8483. \fBNOTE:\fP
  8484. .INDENT 0.0
  8485. .INDENT 3.5
  8486. This is is a global configuration option, see here for examples of configuring it for individual
  8487. repositories.
  8488. .UNINDENT
  8489. .UNINDENT
  8490. .SS \fBgitfs_ref_types\fP
  8491. .sp
  8492. New in version 2018.3.0.
  8493. .sp
  8494. Default: \fB[\(aqbranch\(aq, \(aqtag\(aq, \(aqsha\(aq]\fP
  8495. .sp
  8496. This option defines what types of refs are mapped to fileserver environments
  8497. (i.e. saltenvs). It also sets the order of preference when there are
  8498. ambiguously\-named refs (i.e. when a branch and tag both have the same name).
  8499. The below example disables mapping of both tags and SHAs, so that only branches
  8500. are mapped as saltenvs:
  8501. .INDENT 0.0
  8502. .INDENT 3.5
  8503. .sp
  8504. .nf
  8505. .ft C
  8506. gitfs_ref_types:
  8507. \- branch
  8508. .ft P
  8509. .fi
  8510. .UNINDENT
  8511. .UNINDENT
  8512. .sp
  8513. \fBNOTE:\fP
  8514. .INDENT 0.0
  8515. .INDENT 3.5
  8516. This is is a global configuration option, see here for examples of configuring it for individual
  8517. repositories.
  8518. .UNINDENT
  8519. .UNINDENT
  8520. .sp
  8521. \fBNOTE:\fP
  8522. .INDENT 0.0
  8523. .INDENT 3.5
  8524. \fBsha\fP is special in that it will not show up when listing saltenvs (e.g.
  8525. with the \fBfileserver.envs\fP runner),
  8526. but works within states and with \fBcp.cache_file\fP to retrieve a file from a specific git SHA.
  8527. .UNINDENT
  8528. .UNINDENT
  8529. .SS \fBgitfs_saltenv_whitelist\fP
  8530. .sp
  8531. New in version 2014.7.0.
  8532. .sp
  8533. Changed in version 2018.3.0: Renamed from \fBgitfs_env_whitelist\fP to \fBgitfs_saltenv_whitelist\fP
  8534. .sp
  8535. Default: \fB[]\fP
  8536. .sp
  8537. Used to restrict which environments are made available. Can speed up state runs
  8538. if the repos in \fI\%gitfs_remotes\fP contain many branches/tags. More
  8539. information can be found in the GitFS Walkthrough\&.
  8540. .INDENT 0.0
  8541. .INDENT 3.5
  8542. .sp
  8543. .nf
  8544. .ft C
  8545. gitfs_saltenv_whitelist:
  8546. \- base
  8547. \- v1.*
  8548. \- \(aqmybranch\ed+\(aq
  8549. .ft P
  8550. .fi
  8551. .UNINDENT
  8552. .UNINDENT
  8553. .SS \fBgitfs_saltenv_blacklist\fP
  8554. .sp
  8555. New in version 2014.7.0.
  8556. .sp
  8557. Changed in version 2018.3.0: Renamed from \fBgitfs_env_blacklist\fP to \fBgitfs_saltenv_blacklist\fP
  8558. .sp
  8559. Default: \fB[]\fP
  8560. .sp
  8561. Used to restrict which environments are made available. Can speed up state runs
  8562. if the repos in \fI\%gitfs_remotes\fP contain many branches/tags. More
  8563. information can be found in the GitFS Walkthrough\&.
  8564. .INDENT 0.0
  8565. .INDENT 3.5
  8566. .sp
  8567. .nf
  8568. .ft C
  8569. gitfs_saltenv_blacklist:
  8570. \- base
  8571. \- v1.*
  8572. \- \(aqmybranch\ed+\(aq
  8573. .ft P
  8574. .fi
  8575. .UNINDENT
  8576. .UNINDENT
  8577. .SS \fBgitfs_global_lock\fP
  8578. .sp
  8579. New in version 2015.8.9.
  8580. .sp
  8581. Default: \fBTrue\fP
  8582. .sp
  8583. When set to \fBFalse\fP, if there is an update lock for a gitfs remote and the
  8584. pid written to it is not running on the master, the lock file will be
  8585. automatically cleared and a new lock will be obtained. When set to \fBTrue\fP,
  8586. Salt will simply log a warning when there is an update lock present.
  8587. .sp
  8588. On single\-master deployments, disabling this option can help automatically deal
  8589. with instances where the master was shutdown/restarted during the middle of a
  8590. gitfs update, leaving a update lock in place.
  8591. .sp
  8592. However, on multi\-master deployments with the gitfs cachedir shared via
  8593. \fI\%GlusterFS\fP, nfs, or another network filesystem, it is strongly recommended
  8594. not to disable this option as doing so will cause lock files to be removed if
  8595. they were created by a different master.
  8596. .INDENT 0.0
  8597. .INDENT 3.5
  8598. .sp
  8599. .nf
  8600. .ft C
  8601. # Disable global lock
  8602. gitfs_global_lock: False
  8603. .ft P
  8604. .fi
  8605. .UNINDENT
  8606. .UNINDENT
  8607. .SS \fBgitfs_update_interval\fP
  8608. .sp
  8609. New in version 2018.3.0.
  8610. .sp
  8611. Default: \fB60\fP
  8612. .sp
  8613. This option defines the default update interval (in seconds) for gitfs remotes.
  8614. The update interval can also be set for a single repository via a
  8615. per\-remote config option
  8616. .INDENT 0.0
  8617. .INDENT 3.5
  8618. .sp
  8619. .nf
  8620. .ft C
  8621. gitfs_update_interval: 120
  8622. .ft P
  8623. .fi
  8624. .UNINDENT
  8625. .UNINDENT
  8626. .SS GitFS Authentication Options
  8627. .sp
  8628. These parameters only currently apply to the pygit2 gitfs provider. Examples of
  8629. how to use these can be found in the GitFS Walkthrough\&.
  8630. .SS \fBgitfs_user\fP
  8631. .sp
  8632. New in version 2014.7.0.
  8633. .sp
  8634. Default: \fB\(aq\(aq\fP
  8635. .sp
  8636. Along with \fI\%gitfs_password\fP, is used to authenticate to HTTPS
  8637. remotes.
  8638. .INDENT 0.0
  8639. .INDENT 3.5
  8640. .sp
  8641. .nf
  8642. .ft C
  8643. gitfs_user: git
  8644. .ft P
  8645. .fi
  8646. .UNINDENT
  8647. .UNINDENT
  8648. .sp
  8649. \fBNOTE:\fP
  8650. .INDENT 0.0
  8651. .INDENT 3.5
  8652. This is is a global configuration option, see here for examples of configuring it for individual
  8653. repositories.
  8654. .UNINDENT
  8655. .UNINDENT
  8656. .SS \fBgitfs_password\fP
  8657. .sp
  8658. New in version 2014.7.0.
  8659. .sp
  8660. Default: \fB\(aq\(aq\fP
  8661. .sp
  8662. Along with \fI\%gitfs_user\fP, is used to authenticate to HTTPS remotes.
  8663. This parameter is not required if the repository does not use authentication.
  8664. .INDENT 0.0
  8665. .INDENT 3.5
  8666. .sp
  8667. .nf
  8668. .ft C
  8669. gitfs_password: mypassword
  8670. .ft P
  8671. .fi
  8672. .UNINDENT
  8673. .UNINDENT
  8674. .sp
  8675. \fBNOTE:\fP
  8676. .INDENT 0.0
  8677. .INDENT 3.5
  8678. This is is a global configuration option, see here for examples of configuring it for individual
  8679. repositories.
  8680. .UNINDENT
  8681. .UNINDENT
  8682. .SS \fBgitfs_insecure_auth\fP
  8683. .sp
  8684. New in version 2014.7.0.
  8685. .sp
  8686. Default: \fBFalse\fP
  8687. .sp
  8688. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  8689. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  8690. .INDENT 0.0
  8691. .INDENT 3.5
  8692. .sp
  8693. .nf
  8694. .ft C
  8695. gitfs_insecure_auth: True
  8696. .ft P
  8697. .fi
  8698. .UNINDENT
  8699. .UNINDENT
  8700. .sp
  8701. \fBNOTE:\fP
  8702. .INDENT 0.0
  8703. .INDENT 3.5
  8704. This is is a global configuration option, see here for examples of configuring it for individual
  8705. repositories.
  8706. .UNINDENT
  8707. .UNINDENT
  8708. .SS \fBgitfs_pubkey\fP
  8709. .sp
  8710. New in version 2014.7.0.
  8711. .sp
  8712. Default: \fB\(aq\(aq\fP
  8713. .sp
  8714. Along with \fI\%gitfs_privkey\fP (and optionally
  8715. \fI\%gitfs_passphrase\fP), is used to authenticate to SSH remotes.
  8716. Required for SSH remotes.
  8717. .INDENT 0.0
  8718. .INDENT 3.5
  8719. .sp
  8720. .nf
  8721. .ft C
  8722. gitfs_pubkey: /path/to/key.pub
  8723. .ft P
  8724. .fi
  8725. .UNINDENT
  8726. .UNINDENT
  8727. .sp
  8728. \fBNOTE:\fP
  8729. .INDENT 0.0
  8730. .INDENT 3.5
  8731. This is is a global configuration option, see here for examples of configuring it for individual
  8732. repositories.
  8733. .UNINDENT
  8734. .UNINDENT
  8735. .SS \fBgitfs_privkey\fP
  8736. .sp
  8737. New in version 2014.7.0.
  8738. .sp
  8739. Default: \fB\(aq\(aq\fP
  8740. .sp
  8741. Along with \fI\%gitfs_pubkey\fP (and optionally
  8742. \fI\%gitfs_passphrase\fP), is used to authenticate to SSH remotes.
  8743. Required for SSH remotes.
  8744. .INDENT 0.0
  8745. .INDENT 3.5
  8746. .sp
  8747. .nf
  8748. .ft C
  8749. gitfs_privkey: /path/to/key
  8750. .ft P
  8751. .fi
  8752. .UNINDENT
  8753. .UNINDENT
  8754. .sp
  8755. \fBNOTE:\fP
  8756. .INDENT 0.0
  8757. .INDENT 3.5
  8758. This is is a global configuration option, see here for examples of configuring it for individual
  8759. repositories.
  8760. .UNINDENT
  8761. .UNINDENT
  8762. .SS \fBgitfs_passphrase\fP
  8763. .sp
  8764. New in version 2014.7.0.
  8765. .sp
  8766. Default: \fB\(aq\(aq\fP
  8767. .sp
  8768. This parameter is optional, required only when the SSH key being used to
  8769. authenticate is protected by a passphrase.
  8770. .INDENT 0.0
  8771. .INDENT 3.5
  8772. .sp
  8773. .nf
  8774. .ft C
  8775. gitfs_passphrase: mypassphrase
  8776. .ft P
  8777. .fi
  8778. .UNINDENT
  8779. .UNINDENT
  8780. .sp
  8781. \fBNOTE:\fP
  8782. .INDENT 0.0
  8783. .INDENT 3.5
  8784. This is is a global configuration option, see here for examples of configuring it for individual
  8785. repositories.
  8786. .UNINDENT
  8787. .UNINDENT
  8788. .SS \fBgitfs_refspecs\fP
  8789. .sp
  8790. New in version 2017.7.0.
  8791. .sp
  8792. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  8793. .sp
  8794. When fetching from remote repositories, by default Salt will fetch branches and
  8795. tags. This parameter can be used to override the default and specify
  8796. alternate refspecs to be fetched. More information on how this feature works
  8797. can be found in the GitFS Walkthrough\&.
  8798. .INDENT 0.0
  8799. .INDENT 3.5
  8800. .sp
  8801. .nf
  8802. .ft C
  8803. gitfs_refspecs:
  8804. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  8805. \- \(aq+refs/tags/*:refs/tags/*\(aq
  8806. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  8807. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  8808. .ft P
  8809. .fi
  8810. .UNINDENT
  8811. .UNINDENT
  8812. .SS hgfs: Mercurial Remote File Server Backend
  8813. .SS \fBhgfs_remotes\fP
  8814. .sp
  8815. New in version 0.17.0.
  8816. .sp
  8817. Default: \fB[]\fP
  8818. .sp
  8819. When using the \fBhg\fP fileserver backend at least one mercurial remote needs to
  8820. be defined. The user running the salt master will need read access to the repo.
  8821. .sp
  8822. The repos will be searched in order to find the file requested by a client and
  8823. the first repo to have the file will return it. Branches and/or bookmarks are
  8824. translated into salt environments, as defined by the
  8825. \fI\%hgfs_branch_method\fP parameter.
  8826. .INDENT 0.0
  8827. .INDENT 3.5
  8828. .sp
  8829. .nf
  8830. .ft C
  8831. hgfs_remotes:
  8832. \- https://username@bitbucket.org/username/reponame
  8833. .ft P
  8834. .fi
  8835. .UNINDENT
  8836. .UNINDENT
  8837. .sp
  8838. \fBNOTE:\fP
  8839. .INDENT 0.0
  8840. .INDENT 3.5
  8841. As of 2014.7.0, it is possible to have per\-repo versions of the
  8842. \fI\%hgfs_root\fP, \fI\%hgfs_mountpoint\fP,
  8843. \fI\%hgfs_base\fP, and \fI\%hgfs_branch_method\fP parameters.
  8844. For example:
  8845. .INDENT 0.0
  8846. .INDENT 3.5
  8847. .sp
  8848. .nf
  8849. .ft C
  8850. hgfs_remotes:
  8851. \- https://username@bitbucket.org/username/repo1
  8852. \- base: saltstates
  8853. \- https://username@bitbucket.org/username/repo2:
  8854. \- root: salt
  8855. \- mountpoint: salt://foo/bar/baz
  8856. \- https://username@bitbucket.org/username/repo3:
  8857. \- root: salt/states
  8858. \- branch_method: mixed
  8859. .ft P
  8860. .fi
  8861. .UNINDENT
  8862. .UNINDENT
  8863. .UNINDENT
  8864. .UNINDENT
  8865. .SS \fBhgfs_branch_method\fP
  8866. .sp
  8867. New in version 0.17.0.
  8868. .sp
  8869. Default: \fBbranches\fP
  8870. .sp
  8871. Defines the objects that will be used as fileserver environments.
  8872. .INDENT 0.0
  8873. .IP \(bu 2
  8874. \fBbranches\fP \- Only branches and tags will be used
  8875. .IP \(bu 2
  8876. \fBbookmarks\fP \- Only bookmarks and tags will be used
  8877. .IP \(bu 2
  8878. \fBmixed\fP \- Branches, bookmarks, and tags will be used
  8879. .UNINDENT
  8880. .INDENT 0.0
  8881. .INDENT 3.5
  8882. .sp
  8883. .nf
  8884. .ft C
  8885. hgfs_branch_method: mixed
  8886. .ft P
  8887. .fi
  8888. .UNINDENT
  8889. .UNINDENT
  8890. .sp
  8891. \fBNOTE:\fP
  8892. .INDENT 0.0
  8893. .INDENT 3.5
  8894. Starting in version 2014.1.0, the value of the \fI\%hgfs_base\fP
  8895. parameter defines which branch is used as the \fBbase\fP environment,
  8896. allowing for a \fBbase\fP environment to be used with an
  8897. \fI\%hgfs_branch_method\fP of \fBbookmarks\fP\&.
  8898. .sp
  8899. Prior to this release, the \fBdefault\fP branch will be used as the \fBbase\fP
  8900. environment.
  8901. .UNINDENT
  8902. .UNINDENT
  8903. .SS \fBhgfs_mountpoint\fP
  8904. .sp
  8905. New in version 2014.7.0.
  8906. .sp
  8907. Default: \fB\(aq\(aq\fP
  8908. .sp
  8909. Specifies a path on the salt fileserver which will be prepended to all files
  8910. served by hgfs. This option can be used in conjunction with
  8911. \fI\%hgfs_root\fP\&. It can also be configured on a per\-remote basis, see
  8912. \fI\%here\fP for more info.
  8913. .INDENT 0.0
  8914. .INDENT 3.5
  8915. .sp
  8916. .nf
  8917. .ft C
  8918. hgfs_mountpoint: salt://foo/bar
  8919. .ft P
  8920. .fi
  8921. .UNINDENT
  8922. .UNINDENT
  8923. .sp
  8924. \fBNOTE:\fP
  8925. .INDENT 0.0
  8926. .INDENT 3.5
  8927. The \fBsalt://\fP protocol designation can be left off (in other words,
  8928. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  8929. \fBbaz.sh\fP in the root of an hgfs remote, this file would be served up via
  8930. \fBsalt://foo/bar/baz.sh\fP\&.
  8931. .UNINDENT
  8932. .UNINDENT
  8933. .SS \fBhgfs_root\fP
  8934. .sp
  8935. New in version 0.17.0.
  8936. .sp
  8937. Default: \fB\(aq\(aq\fP
  8938. .sp
  8939. Relative path to a subdirectory within the repository from which Salt should
  8940. begin to serve files. This is useful when there are files in the repository
  8941. that should not be available to the Salt fileserver. Can be used in conjunction
  8942. with \fI\%hgfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  8943. directories above the one specified will be ignored and the relative path will
  8944. (for the purposes of hgfs) be considered as the root of the repo.
  8945. .INDENT 0.0
  8946. .INDENT 3.5
  8947. .sp
  8948. .nf
  8949. .ft C
  8950. hgfs_root: somefolder/otherfolder
  8951. .ft P
  8952. .fi
  8953. .UNINDENT
  8954. .UNINDENT
  8955. .sp
  8956. Changed in version 2014.7.0: Ability to specify hgfs roots on a per\-remote basis was added. See
  8957. \fI\%here\fP for more info.
  8958. .SS \fBhgfs_base\fP
  8959. .sp
  8960. New in version 2014.1.0.
  8961. .sp
  8962. Default: \fBdefault\fP
  8963. .sp
  8964. Defines which branch should be used as the \fBbase\fP environment. Change this if
  8965. \fI\%hgfs_branch_method\fP is set to \fBbookmarks\fP to specify which
  8966. bookmark should be used as the \fBbase\fP environment.
  8967. .INDENT 0.0
  8968. .INDENT 3.5
  8969. .sp
  8970. .nf
  8971. .ft C
  8972. hgfs_base: salt
  8973. .ft P
  8974. .fi
  8975. .UNINDENT
  8976. .UNINDENT
  8977. .SS \fBhgfs_saltenv_whitelist\fP
  8978. .sp
  8979. New in version 2014.7.0.
  8980. .sp
  8981. Changed in version 2018.3.0: Renamed from \fBhgfs_env_whitelist\fP to \fBhgfs_saltenv_whitelist\fP
  8982. .sp
  8983. Default: \fB[]\fP
  8984. .sp
  8985. Used to restrict which environments are made available. Can speed up state runs
  8986. if your hgfs remotes contain many branches/bookmarks/tags. Full names, globs,
  8987. and regular expressions are supported. If using a regular expression, the
  8988. expression must match the entire minion ID.
  8989. .sp
  8990. If used, only branches/bookmarks/tags which match one of the specified
  8991. expressions will be exposed as fileserver environments.
  8992. .sp
  8993. If used in conjunction with \fI\%hgfs_saltenv_blacklist\fP, then the subset
  8994. of branches/bookmarks/tags which match the whitelist but do \fInot\fP match the
  8995. blacklist will be exposed as fileserver environments.
  8996. .INDENT 0.0
  8997. .INDENT 3.5
  8998. .sp
  8999. .nf
  9000. .ft C
  9001. hgfs_saltenv_whitelist:
  9002. \- base
  9003. \- v1.*
  9004. \- \(aqmybranch\ed+\(aq
  9005. .ft P
  9006. .fi
  9007. .UNINDENT
  9008. .UNINDENT
  9009. .SS \fBhgfs_saltenv_blacklist\fP
  9010. .sp
  9011. New in version 2014.7.0.
  9012. .sp
  9013. Changed in version 2018.3.0: Renamed from \fBhgfs_env_blacklist\fP to \fBhgfs_saltenv_blacklist\fP
  9014. .sp
  9015. Default: \fB[]\fP
  9016. .sp
  9017. Used to restrict which environments are made available. Can speed up state runs
  9018. if your hgfs remotes contain many branches/bookmarks/tags. Full names, globs,
  9019. and regular expressions are supported. If using a regular expression, the
  9020. expression must match the entire minion ID.
  9021. .sp
  9022. If used, branches/bookmarks/tags which match one of the specified expressions
  9023. will \fInot\fP be exposed as fileserver environments.
  9024. .sp
  9025. If used in conjunction with \fI\%hgfs_saltenv_whitelist\fP, then the subset
  9026. of branches/bookmarks/tags which match the whitelist but do \fInot\fP match the
  9027. blacklist will be exposed as fileserver environments.
  9028. .INDENT 0.0
  9029. .INDENT 3.5
  9030. .sp
  9031. .nf
  9032. .ft C
  9033. hgfs_saltenv_blacklist:
  9034. \- base
  9035. \- v1.*
  9036. \- \(aqmybranch\ed+\(aq
  9037. .ft P
  9038. .fi
  9039. .UNINDENT
  9040. .UNINDENT
  9041. .SS \fBhgfs_update_interval\fP
  9042. .sp
  9043. New in version 2018.3.0.
  9044. .sp
  9045. Default: \fB60\fP
  9046. .sp
  9047. This option defines the update interval (in seconds) for
  9048. \fI\%hgfs_remotes\fP\&.
  9049. .INDENT 0.0
  9050. .INDENT 3.5
  9051. .sp
  9052. .nf
  9053. .ft C
  9054. hgfs_update_interval: 120
  9055. .ft P
  9056. .fi
  9057. .UNINDENT
  9058. .UNINDENT
  9059. .SS svnfs: Subversion Remote File Server Backend
  9060. .SS \fBsvnfs_remotes\fP
  9061. .sp
  9062. New in version 0.17.0.
  9063. .sp
  9064. Default: \fB[]\fP
  9065. .sp
  9066. When using the \fBsvn\fP fileserver backend at least one subversion remote needs
  9067. to be defined. The user running the salt master will need read access to the
  9068. repo.
  9069. .sp
  9070. The repos will be searched in order to find the file requested by a client and
  9071. the first repo to have the file will return it. The trunk, branches, and tags
  9072. become environments, with the trunk being the \fBbase\fP environment.
  9073. .INDENT 0.0
  9074. .INDENT 3.5
  9075. .sp
  9076. .nf
  9077. .ft C
  9078. svnfs_remotes:
  9079. \- svn://foo.com/svn/myproject
  9080. .ft P
  9081. .fi
  9082. .UNINDENT
  9083. .UNINDENT
  9084. .sp
  9085. \fBNOTE:\fP
  9086. .INDENT 0.0
  9087. .INDENT 3.5
  9088. As of 2014.7.0, it is possible to have per\-repo versions of the following
  9089. configuration parameters:
  9090. .INDENT 0.0
  9091. .IP \(bu 2
  9092. \fI\%svnfs_root\fP
  9093. .IP \(bu 2
  9094. \fI\%svnfs_mountpoint\fP
  9095. .IP \(bu 2
  9096. \fI\%svnfs_trunk\fP
  9097. .IP \(bu 2
  9098. \fI\%svnfs_branches\fP
  9099. .IP \(bu 2
  9100. \fI\%svnfs_tags\fP
  9101. .UNINDENT
  9102. .sp
  9103. For example:
  9104. .INDENT 0.0
  9105. .INDENT 3.5
  9106. .sp
  9107. .nf
  9108. .ft C
  9109. svnfs_remotes:
  9110. \- svn://foo.com/svn/project1
  9111. \- svn://foo.com/svn/project2:
  9112. \- root: salt
  9113. \- mountpoint: salt://foo/bar/baz
  9114. \- svn//foo.com/svn/project3:
  9115. \- root: salt/states
  9116. \- branches: branch
  9117. \- tags: tag
  9118. .ft P
  9119. .fi
  9120. .UNINDENT
  9121. .UNINDENT
  9122. .UNINDENT
  9123. .UNINDENT
  9124. .SS \fBsvnfs_mountpoint\fP
  9125. .sp
  9126. New in version 2014.7.0.
  9127. .sp
  9128. Default: \fB\(aq\(aq\fP
  9129. .sp
  9130. Specifies a path on the salt fileserver which will be prepended to all files
  9131. served by hgfs. This option can be used in conjunction with
  9132. \fI\%svnfs_root\fP\&. It can also be configured on a per\-remote basis, see
  9133. \fI\%here\fP for more info.
  9134. .INDENT 0.0
  9135. .INDENT 3.5
  9136. .sp
  9137. .nf
  9138. .ft C
  9139. svnfs_mountpoint: salt://foo/bar
  9140. .ft P
  9141. .fi
  9142. .UNINDENT
  9143. .UNINDENT
  9144. .sp
  9145. \fBNOTE:\fP
  9146. .INDENT 0.0
  9147. .INDENT 3.5
  9148. The \fBsalt://\fP protocol designation can be left off (in other words,
  9149. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  9150. \fBbaz.sh\fP in the root of an svnfs remote, this file would be served up via
  9151. \fBsalt://foo/bar/baz.sh\fP\&.
  9152. .UNINDENT
  9153. .UNINDENT
  9154. .SS \fBsvnfs_root\fP
  9155. .sp
  9156. New in version 0.17.0.
  9157. .sp
  9158. Default: \fB\(aq\(aq\fP
  9159. .sp
  9160. Relative path to a subdirectory within the repository from which Salt should
  9161. begin to serve files. This is useful when there are files in the repository
  9162. that should not be available to the Salt fileserver. Can be used in conjunction
  9163. with \fI\%svnfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  9164. directories above the one specified will be ignored and the relative path will
  9165. (for the purposes of svnfs) be considered as the root of the repo.
  9166. .INDENT 0.0
  9167. .INDENT 3.5
  9168. .sp
  9169. .nf
  9170. .ft C
  9171. svnfs_root: somefolder/otherfolder
  9172. .ft P
  9173. .fi
  9174. .UNINDENT
  9175. .UNINDENT
  9176. .sp
  9177. Changed in version 2014.7.0: Ability to specify svnfs roots on a per\-remote basis was added. See
  9178. \fI\%here\fP for more info.
  9179. .SS \fBsvnfs_trunk\fP
  9180. .sp
  9181. New in version 2014.7.0.
  9182. .sp
  9183. Default: \fBtrunk\fP
  9184. .sp
  9185. Path relative to the root of the repository where the trunk is located. Can
  9186. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9187. .INDENT 0.0
  9188. .INDENT 3.5
  9189. .sp
  9190. .nf
  9191. .ft C
  9192. svnfs_trunk: trunk
  9193. .ft P
  9194. .fi
  9195. .UNINDENT
  9196. .UNINDENT
  9197. .SS \fBsvnfs_branches\fP
  9198. .sp
  9199. New in version 2014.7.0.
  9200. .sp
  9201. Default: \fBbranches\fP
  9202. .sp
  9203. Path relative to the root of the repository where the branches are located. Can
  9204. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9205. .INDENT 0.0
  9206. .INDENT 3.5
  9207. .sp
  9208. .nf
  9209. .ft C
  9210. svnfs_branches: branches
  9211. .ft P
  9212. .fi
  9213. .UNINDENT
  9214. .UNINDENT
  9215. .SS \fBsvnfs_tags\fP
  9216. .sp
  9217. New in version 2014.7.0.
  9218. .sp
  9219. Default: \fBtags\fP
  9220. .sp
  9221. Path relative to the root of the repository where the tags are located. Can
  9222. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9223. .INDENT 0.0
  9224. .INDENT 3.5
  9225. .sp
  9226. .nf
  9227. .ft C
  9228. svnfs_tags: tags
  9229. .ft P
  9230. .fi
  9231. .UNINDENT
  9232. .UNINDENT
  9233. .SS \fBsvnfs_saltenv_whitelist\fP
  9234. .sp
  9235. New in version 2014.7.0.
  9236. .sp
  9237. Changed in version 2018.3.0: Renamed from \fBsvnfs_env_whitelist\fP to \fBsvnfs_saltenv_whitelist\fP
  9238. .sp
  9239. Default: \fB[]\fP
  9240. .sp
  9241. Used to restrict which environments are made available. Can speed up state runs
  9242. if your svnfs remotes contain many branches/tags. Full names, globs, and
  9243. regular expressions are supported. If using a regular expression, the expression
  9244. must match the entire minion ID.
  9245. .sp
  9246. If used, only branches/tags which match one of the specified expressions will
  9247. be exposed as fileserver environments.
  9248. .sp
  9249. If used in conjunction with \fI\%svnfs_saltenv_blacklist\fP, then the subset
  9250. of branches/tags which match the whitelist but do \fInot\fP match the blacklist
  9251. will be exposed as fileserver environments.
  9252. .INDENT 0.0
  9253. .INDENT 3.5
  9254. .sp
  9255. .nf
  9256. .ft C
  9257. svnfs_saltenv_whitelist:
  9258. \- base
  9259. \- v1.*
  9260. \- \(aqmybranch\ed+\(aq
  9261. .ft P
  9262. .fi
  9263. .UNINDENT
  9264. .UNINDENT
  9265. .SS \fBsvnfs_saltenv_blacklist\fP
  9266. .sp
  9267. New in version 2014.7.0.
  9268. .sp
  9269. Changed in version 2018.3.0: Renamed from \fBsvnfs_env_blacklist\fP to \fBsvnfs_saltenv_blacklist\fP
  9270. .sp
  9271. Default: \fB[]\fP
  9272. .sp
  9273. Used to restrict which environments are made available. Can speed up state runs
  9274. if your svnfs remotes contain many branches/tags. Full names, globs, and
  9275. regular expressions are supported. If using a regular expression, the
  9276. expression must match the entire minion ID.
  9277. .sp
  9278. If used, branches/tags which match one of the specified expressions will \fInot\fP
  9279. be exposed as fileserver environments.
  9280. .sp
  9281. If used in conjunction with \fI\%svnfs_saltenv_whitelist\fP, then the subset
  9282. of branches/tags which match the whitelist but do \fInot\fP match the blacklist
  9283. will be exposed as fileserver environments.
  9284. .INDENT 0.0
  9285. .INDENT 3.5
  9286. .sp
  9287. .nf
  9288. .ft C
  9289. svnfs_saltenv_blacklist:
  9290. \- base
  9291. \- v1.*
  9292. \- \(aqmybranch\ed+\(aq
  9293. .ft P
  9294. .fi
  9295. .UNINDENT
  9296. .UNINDENT
  9297. .SS \fBsvnfs_update_interval\fP
  9298. .sp
  9299. New in version 2018.3.0.
  9300. .sp
  9301. Default: \fB60\fP
  9302. .sp
  9303. This option defines the update interval (in seconds) for
  9304. \fI\%svnfs_remotes\fP\&.
  9305. .INDENT 0.0
  9306. .INDENT 3.5
  9307. .sp
  9308. .nf
  9309. .ft C
  9310. svnfs_update_interval: 120
  9311. .ft P
  9312. .fi
  9313. .UNINDENT
  9314. .UNINDENT
  9315. .SS minionfs: MinionFS Remote File Server Backend
  9316. .SS \fBminionfs_env\fP
  9317. .sp
  9318. New in version 2014.7.0.
  9319. .sp
  9320. Default: \fBbase\fP
  9321. .sp
  9322. Environment from which MinionFS files are made available.
  9323. .INDENT 0.0
  9324. .INDENT 3.5
  9325. .sp
  9326. .nf
  9327. .ft C
  9328. minionfs_env: minionfs
  9329. .ft P
  9330. .fi
  9331. .UNINDENT
  9332. .UNINDENT
  9333. .SS \fBminionfs_mountpoint\fP
  9334. .sp
  9335. New in version 2014.7.0.
  9336. .sp
  9337. Default: \fB\(aq\(aq\fP
  9338. .sp
  9339. Specifies a path on the salt fileserver from which minionfs files are served.
  9340. .INDENT 0.0
  9341. .INDENT 3.5
  9342. .sp
  9343. .nf
  9344. .ft C
  9345. minionfs_mountpoint: salt://foo/bar
  9346. .ft P
  9347. .fi
  9348. .UNINDENT
  9349. .UNINDENT
  9350. .sp
  9351. \fBNOTE:\fP
  9352. .INDENT 0.0
  9353. .INDENT 3.5
  9354. The \fBsalt://\fP protocol designation can be left off (in other words,
  9355. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent).
  9356. .UNINDENT
  9357. .UNINDENT
  9358. .SS \fBminionfs_whitelist\fP
  9359. .sp
  9360. New in version 2014.7.0.
  9361. .sp
  9362. Default: \fB[]\fP
  9363. .sp
  9364. Used to restrict which minions\(aq pushed files are exposed via minionfs. If using
  9365. a regular expression, the expression must match the entire minion ID.
  9366. .sp
  9367. If used, only the pushed files from minions which match one of the specified
  9368. expressions will be exposed.
  9369. .sp
  9370. If used in conjunction with \fI\%minionfs_blacklist\fP, then the subset
  9371. of hosts which match the whitelist but do \fInot\fP match the blacklist will be
  9372. exposed.
  9373. .INDENT 0.0
  9374. .INDENT 3.5
  9375. .sp
  9376. .nf
  9377. .ft C
  9378. minionfs_whitelist:
  9379. \- server01
  9380. \- dev*
  9381. \- \(aqmail\ed+.mydomain.tld\(aq
  9382. .ft P
  9383. .fi
  9384. .UNINDENT
  9385. .UNINDENT
  9386. .SS \fBminionfs_blacklist\fP
  9387. .sp
  9388. New in version 2014.7.0.
  9389. .sp
  9390. Default: \fB[]\fP
  9391. .sp
  9392. Used to restrict which minions\(aq pushed files are exposed via minionfs. If using
  9393. a regular expression, the expression must match the entire minion ID.
  9394. .sp
  9395. If used, only the pushed files from minions which match one of the specified
  9396. expressions will \fInot\fP be exposed.
  9397. .sp
  9398. If used in conjunction with \fI\%minionfs_whitelist\fP, then the subset
  9399. of hosts which match the whitelist but do \fInot\fP match the blacklist will be
  9400. exposed.
  9401. .INDENT 0.0
  9402. .INDENT 3.5
  9403. .sp
  9404. .nf
  9405. .ft C
  9406. minionfs_blacklist:
  9407. \- server01
  9408. \- dev*
  9409. \- \(aqmail\ed+.mydomain.tld\(aq
  9410. .ft P
  9411. .fi
  9412. .UNINDENT
  9413. .UNINDENT
  9414. .SS \fBminionfs_update_interval\fP
  9415. .sp
  9416. New in version 2018.3.0.
  9417. .sp
  9418. Default: \fB60\fP
  9419. .sp
  9420. This option defines the update interval (in seconds) for MinionFS\&.
  9421. .sp
  9422. \fBNOTE:\fP
  9423. .INDENT 0.0
  9424. .INDENT 3.5
  9425. Since MinionFS consists of files local to the
  9426. master, the update process for this fileserver backend just reaps the cache
  9427. for this backend.
  9428. .UNINDENT
  9429. .UNINDENT
  9430. .INDENT 0.0
  9431. .INDENT 3.5
  9432. .sp
  9433. .nf
  9434. .ft C
  9435. minionfs_update_interval: 120
  9436. .ft P
  9437. .fi
  9438. .UNINDENT
  9439. .UNINDENT
  9440. .SS azurefs: Azure File Server Backend
  9441. .sp
  9442. New in version 2015.8.0.
  9443. .sp
  9444. See the \fBazurefs documentation\fP for usage
  9445. examples.
  9446. .SS \fBazurefs_update_interval\fP
  9447. .sp
  9448. New in version 2018.3.0.
  9449. .sp
  9450. Default: \fB60\fP
  9451. .sp
  9452. This option defines the update interval (in seconds) for azurefs.
  9453. .INDENT 0.0
  9454. .INDENT 3.5
  9455. .sp
  9456. .nf
  9457. .ft C
  9458. azurefs_update_interval: 120
  9459. .ft P
  9460. .fi
  9461. .UNINDENT
  9462. .UNINDENT
  9463. .SS s3fs: S3 File Server Backend
  9464. .sp
  9465. New in version 0.16.0.
  9466. .sp
  9467. See the \fBs3fs documentation\fP for usage examples.
  9468. .SS \fBs3fs_update_interval\fP
  9469. .sp
  9470. New in version 2018.3.0.
  9471. .sp
  9472. Default: \fB60\fP
  9473. .sp
  9474. This option defines the update interval (in seconds) for s3fs.
  9475. .INDENT 0.0
  9476. .INDENT 3.5
  9477. .sp
  9478. .nf
  9479. .ft C
  9480. s3fs_update_interval: 120
  9481. .ft P
  9482. .fi
  9483. .UNINDENT
  9484. .UNINDENT
  9485. .SS Pillar Configuration
  9486. .SS \fBpillar_roots\fP
  9487. .sp
  9488. Default:
  9489. .INDENT 0.0
  9490. .INDENT 3.5
  9491. .sp
  9492. .nf
  9493. .ft C
  9494. base:
  9495. \- /srv/pillar
  9496. .ft P
  9497. .fi
  9498. .UNINDENT
  9499. .UNINDENT
  9500. .sp
  9501. Set the environments and directories used to hold pillar sls data. This
  9502. configuration is the same as \fI\%file_roots\fP:
  9503. .sp
  9504. As of 2017.7.5 and 2018.3.1, it is possible to have \fI__env__\fP as a catch\-all environment.
  9505. .sp
  9506. Example:
  9507. .INDENT 0.0
  9508. .INDENT 3.5
  9509. .sp
  9510. .nf
  9511. .ft C
  9512. pillar_roots:
  9513. base:
  9514. \- /srv/pillar
  9515. dev:
  9516. \- /srv/pillar/dev
  9517. prod:
  9518. \- /srv/pillar/prod
  9519. __env__:
  9520. \- /srv/pillar/others
  9521. .ft P
  9522. .fi
  9523. .UNINDENT
  9524. .UNINDENT
  9525. .SS \fBon_demand_ext_pillar\fP
  9526. .sp
  9527. New in version 2016.3.6,2016.11.3,2017.7.0.
  9528. .sp
  9529. Default: \fB[\(aqlibvirt\(aq, \(aqvirtkey\(aq]\fP
  9530. .sp
  9531. The external pillars permitted to be used on\-demand using \fBpillar.ext\fP\&.
  9532. .INDENT 0.0
  9533. .INDENT 3.5
  9534. .sp
  9535. .nf
  9536. .ft C
  9537. on_demand_ext_pillar:
  9538. \- libvirt
  9539. \- virtkey
  9540. \- git
  9541. .ft P
  9542. .fi
  9543. .UNINDENT
  9544. .UNINDENT
  9545. .sp
  9546. \fBWARNING:\fP
  9547. .INDENT 0.0
  9548. .INDENT 3.5
  9549. This will allow minions to request specific pillar data via
  9550. \fBpillar.ext\fP, and may be considered a
  9551. security risk. However, pillar data generated in this way will not affect
  9552. the in\-memory pillar data, so this risk is
  9553. limited to instances in which states/modules/etc. (built\-in or custom) rely
  9554. upon pillar data generated by \fBpillar.ext\fP\&.
  9555. .UNINDENT
  9556. .UNINDENT
  9557. .SS \fBdecrypt_pillar\fP
  9558. .sp
  9559. New in version 2017.7.0.
  9560. .sp
  9561. Default: \fB[]\fP
  9562. .sp
  9563. A list of paths to be recursively decrypted during pillar compilation.
  9564. .INDENT 0.0
  9565. .INDENT 3.5
  9566. .sp
  9567. .nf
  9568. .ft C
  9569. decrypt_pillar:
  9570. \- \(aqfoo:bar\(aq: gpg
  9571. \- \(aqlorem:ipsum:dolor\(aq
  9572. .ft P
  9573. .fi
  9574. .UNINDENT
  9575. .UNINDENT
  9576. .sp
  9577. Entries in this list can be formatted either as a simple string, or as a
  9578. key/value pair, with the key being the pillar location, and the value being the
  9579. renderer to use for pillar decryption. If the former is used, the renderer
  9580. specified by \fI\%decrypt_pillar_default\fP will be used.
  9581. .SS \fBdecrypt_pillar_delimiter\fP
  9582. .sp
  9583. New in version 2017.7.0.
  9584. .sp
  9585. Default: \fB:\fP
  9586. .sp
  9587. The delimiter used to distinguish nested data structures in the
  9588. \fI\%decrypt_pillar\fP option.
  9589. .INDENT 0.0
  9590. .INDENT 3.5
  9591. .sp
  9592. .nf
  9593. .ft C
  9594. decrypt_pillar_delimiter: \(aq|\(aq
  9595. decrypt_pillar:
  9596. \- \(aqfoo|bar\(aq: gpg
  9597. \- \(aqlorem|ipsum|dolor\(aq
  9598. .ft P
  9599. .fi
  9600. .UNINDENT
  9601. .UNINDENT
  9602. .SS \fBdecrypt_pillar_default\fP
  9603. .sp
  9604. New in version 2017.7.0.
  9605. .sp
  9606. Default: \fBgpg\fP
  9607. .sp
  9608. The default renderer used for decryption, if one is not specified for a given
  9609. pillar key in \fI\%decrypt_pillar\fP\&.
  9610. .INDENT 0.0
  9611. .INDENT 3.5
  9612. .sp
  9613. .nf
  9614. .ft C
  9615. decrypt_pillar_default: my_custom_renderer
  9616. .ft P
  9617. .fi
  9618. .UNINDENT
  9619. .UNINDENT
  9620. .SS \fBdecrypt_pillar_renderers\fP
  9621. .sp
  9622. New in version 2017.7.0.
  9623. .sp
  9624. Default: \fB[\(aqgpg\(aq]\fP
  9625. .sp
  9626. List of renderers which are permitted to be used for pillar decryption.
  9627. .INDENT 0.0
  9628. .INDENT 3.5
  9629. .sp
  9630. .nf
  9631. .ft C
  9632. decrypt_pillar_renderers:
  9633. \- gpg
  9634. \- my_custom_renderer
  9635. .ft P
  9636. .fi
  9637. .UNINDENT
  9638. .UNINDENT
  9639. .SS \fBpillar_opts\fP
  9640. .sp
  9641. Default: \fBFalse\fP
  9642. .sp
  9643. The \fBpillar_opts\fP option adds the master configuration file data to a dict in
  9644. the pillar called \fBmaster\fP\&. This can be used to set simple configurations in
  9645. the master config file that can then be used on minions.
  9646. .sp
  9647. Note that setting this option to \fBTrue\fP means the master config file will be
  9648. included in all minion\(aqs pillars. While this makes global configuration of services
  9649. and systems easy, it may not be desired if sensitive data is stored in the master
  9650. configuration.
  9651. .INDENT 0.0
  9652. .INDENT 3.5
  9653. .sp
  9654. .nf
  9655. .ft C
  9656. pillar_opts: False
  9657. .ft P
  9658. .fi
  9659. .UNINDENT
  9660. .UNINDENT
  9661. .SS \fBpillar_safe_render_error\fP
  9662. .sp
  9663. Default: \fBTrue\fP
  9664. .sp
  9665. The pillar_safe_render_error option prevents the master from passing pillar
  9666. render errors to the minion. This is set on by default because the error could
  9667. contain templating data which would give that minion information it shouldn\(aqt
  9668. have, like a password! When set \fBTrue\fP the error message will only show:
  9669. .INDENT 0.0
  9670. .INDENT 3.5
  9671. .sp
  9672. .nf
  9673. .ft C
  9674. Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  9675. .ft P
  9676. .fi
  9677. .UNINDENT
  9678. .UNINDENT
  9679. .INDENT 0.0
  9680. .INDENT 3.5
  9681. .sp
  9682. .nf
  9683. .ft C
  9684. pillar_safe_render_error: True
  9685. .ft P
  9686. .fi
  9687. .UNINDENT
  9688. .UNINDENT
  9689. .SS \fBext_pillar\fP
  9690. .sp
  9691. The ext_pillar option allows for any number of external pillar interfaces to be
  9692. called when populating pillar data. The configuration is based on ext_pillar
  9693. functions. The available ext_pillar functions can be found herein:
  9694. .sp
  9695. \fI\%https://github.com/saltstack/salt/blob/master/salt/pillar\fP
  9696. .sp
  9697. By default, the ext_pillar interface is not configured to run.
  9698. .sp
  9699. Default: \fB[]\fP
  9700. .INDENT 0.0
  9701. .INDENT 3.5
  9702. .sp
  9703. .nf
  9704. .ft C
  9705. ext_pillar:
  9706. \- hiera: /etc/hiera.yaml
  9707. \- cmd_yaml: cat /etc/salt/yaml
  9708. \- reclass:
  9709. inventory_base_uri: /etc/reclass
  9710. .ft P
  9711. .fi
  9712. .UNINDENT
  9713. .UNINDENT
  9714. .sp
  9715. There are additional details at salt\-pillars
  9716. .SS \fBext_pillar_first\fP
  9717. .sp
  9718. New in version 2015.5.0.
  9719. .sp
  9720. Default: \fBFalse\fP
  9721. .sp
  9722. This option allows for external pillar sources to be evaluated before
  9723. \fI\%pillar_roots\fP\&. External pillar data is evaluated separately from
  9724. \fI\%pillar_roots\fP pillar data, and then both sets of pillar data are
  9725. merged into a single pillar dictionary, so the value of this config option will
  9726. have an impact on which key "wins" when there is one of the same name in both
  9727. the external pillar data and \fI\%pillar_roots\fP pillar data. By
  9728. setting this option to \fBTrue\fP, ext_pillar keys will be overridden by
  9729. \fI\%pillar_roots\fP, while leaving it as \fBFalse\fP will allow
  9730. ext_pillar keys to override those from \fI\%pillar_roots\fP\&.
  9731. .sp
  9732. \fBNOTE:\fP
  9733. .INDENT 0.0
  9734. .INDENT 3.5
  9735. For a while, this config option did not work as specified above, because of
  9736. a bug in Pillar compilation. This bug has been resolved in version 2016.3.4
  9737. and later.
  9738. .UNINDENT
  9739. .UNINDENT
  9740. .INDENT 0.0
  9741. .INDENT 3.5
  9742. .sp
  9743. .nf
  9744. .ft C
  9745. ext_pillar_first: False
  9746. .ft P
  9747. .fi
  9748. .UNINDENT
  9749. .UNINDENT
  9750. .SS \fBpillarenv_from_saltenv\fP
  9751. .sp
  9752. Default: \fBFalse\fP
  9753. .sp
  9754. When set to \fBTrue\fP, the \fBpillarenv\fP value will assume the value
  9755. of the effective saltenv when running states. This essentially makes \fBsalt\-run
  9756. pillar.show_pillar saltenv=dev\fP equivalent to \fBsalt\-run pillar.show_pillar
  9757. saltenv=dev pillarenv=dev\fP\&. If \fBpillarenv\fP is set on the CLI, it
  9758. will override this option.
  9759. .INDENT 0.0
  9760. .INDENT 3.5
  9761. .sp
  9762. .nf
  9763. .ft C
  9764. pillarenv_from_saltenv: True
  9765. .ft P
  9766. .fi
  9767. .UNINDENT
  9768. .UNINDENT
  9769. .sp
  9770. \fBNOTE:\fP
  9771. .INDENT 0.0
  9772. .INDENT 3.5
  9773. For salt remote execution commands this option should be set in the Minion
  9774. configuration instead.
  9775. .UNINDENT
  9776. .UNINDENT
  9777. .SS \fBpillar_raise_on_missing\fP
  9778. .sp
  9779. New in version 2015.5.0.
  9780. .sp
  9781. Default: \fBFalse\fP
  9782. .sp
  9783. Set this option to \fBTrue\fP to force a \fBKeyError\fP to be raised whenever an
  9784. attempt to retrieve a named value from pillar fails. When this option is set
  9785. to \fBFalse\fP, the failed attempt returns an empty string.
  9786. .SS Git External Pillar (git_pillar) Configuration Options
  9787. .SS \fBgit_pillar_provider\fP
  9788. .sp
  9789. New in version 2015.8.0.
  9790. .sp
  9791. Specify the provider to be used for git_pillar. Must be either \fBpygit2\fP or
  9792. \fBgitpython\fP\&. If unset, then both will be tried in that same order, and the
  9793. first one with a compatible version installed will be the provider that is
  9794. used.
  9795. .INDENT 0.0
  9796. .INDENT 3.5
  9797. .sp
  9798. .nf
  9799. .ft C
  9800. git_pillar_provider: gitpython
  9801. .ft P
  9802. .fi
  9803. .UNINDENT
  9804. .UNINDENT
  9805. .SS \fBgit_pillar_base\fP
  9806. .sp
  9807. New in version 2015.8.0.
  9808. .sp
  9809. Default: \fBmaster\fP
  9810. .sp
  9811. If the desired branch matches this value, and the environment is omitted from
  9812. the git_pillar configuration, then the environment for that git_pillar remote
  9813. will be \fBbase\fP\&. For example, in the configuration below, the \fBfoo\fP
  9814. branch/tag would be assigned to the \fBbase\fP environment, while \fBbar\fP would
  9815. be mapped to the \fBbar\fP environment.
  9816. .INDENT 0.0
  9817. .INDENT 3.5
  9818. .sp
  9819. .nf
  9820. .ft C
  9821. git_pillar_base: foo
  9822. ext_pillar:
  9823. \- git:
  9824. \- foo https://mygitserver/git\-pillar.git
  9825. \- bar https://mygitserver/git\-pillar.git
  9826. .ft P
  9827. .fi
  9828. .UNINDENT
  9829. .UNINDENT
  9830. .SS \fBgit_pillar_branch\fP
  9831. .sp
  9832. New in version 2015.8.0.
  9833. .sp
  9834. Default: \fBmaster\fP
  9835. .sp
  9836. If the branch is omitted from a git_pillar remote, then this branch will be
  9837. used instead. For example, in the configuration below, the first two remotes
  9838. would use the \fBpillardata\fP branch/tag, while the third would use the \fBfoo\fP
  9839. branch/tag.
  9840. .INDENT 0.0
  9841. .INDENT 3.5
  9842. .sp
  9843. .nf
  9844. .ft C
  9845. git_pillar_branch: pillardata
  9846. ext_pillar:
  9847. \- git:
  9848. \- https://mygitserver/pillar1.git
  9849. \- https://mygitserver/pillar2.git:
  9850. \- root: pillar
  9851. \- foo https://mygitserver/pillar3.git
  9852. .ft P
  9853. .fi
  9854. .UNINDENT
  9855. .UNINDENT
  9856. .SS \fBgit_pillar_env\fP
  9857. .sp
  9858. New in version 2015.8.0.
  9859. .sp
  9860. Default: \fB\(aq\(aq\fP (unset)
  9861. .sp
  9862. Environment to use for git_pillar remotes. This is normally derived from the
  9863. branch/tag (or from a per\-remote \fBenv\fP parameter), but if set this will
  9864. override the process of deriving the env from the branch/tag name. For example,
  9865. in the configuration below the \fBfoo\fP branch would be assigned to the \fBbase\fP
  9866. environment, while the \fBbar\fP branch would need to explicitly have \fBbar\fP
  9867. configured as its environment to keep it from also being mapped to the
  9868. \fBbase\fP environment.
  9869. .INDENT 0.0
  9870. .INDENT 3.5
  9871. .sp
  9872. .nf
  9873. .ft C
  9874. git_pillar_env: base
  9875. ext_pillar:
  9876. \- git:
  9877. \- foo https://mygitserver/git\-pillar.git
  9878. \- bar https://mygitserver/git\-pillar.git:
  9879. \- env: bar
  9880. .ft P
  9881. .fi
  9882. .UNINDENT
  9883. .UNINDENT
  9884. .sp
  9885. For this reason, this option is recommended to be left unset, unless the use
  9886. case calls for all (or almost all) of the git_pillar remotes to use the same
  9887. environment irrespective of the branch/tag being used.
  9888. .SS \fBgit_pillar_root\fP
  9889. .sp
  9890. New in version 2015.8.0.
  9891. .sp
  9892. Default: \fB\(aq\(aq\fP
  9893. .sp
  9894. Path relative to the root of the repository where the git_pillar top file and
  9895. SLS files are located. In the below configuration, the pillar top file and SLS
  9896. files would be looked for in a subdirectory called \fBpillar\fP\&.
  9897. .INDENT 0.0
  9898. .INDENT 3.5
  9899. .sp
  9900. .nf
  9901. .ft C
  9902. git_pillar_root: pillar
  9903. ext_pillar:
  9904. \- git:
  9905. \- master https://mygitserver/pillar1.git
  9906. \- master https://mygitserver/pillar2.git
  9907. .ft P
  9908. .fi
  9909. .UNINDENT
  9910. .UNINDENT
  9911. .sp
  9912. \fBNOTE:\fP
  9913. .INDENT 0.0
  9914. .INDENT 3.5
  9915. This is a global option. If only one or two repos need to have their files
  9916. sourced from a subdirectory, then \fI\%git_pillar_root\fP can be
  9917. omitted and the root can be specified on a per\-remote basis, like so:
  9918. .INDENT 0.0
  9919. .INDENT 3.5
  9920. .sp
  9921. .nf
  9922. .ft C
  9923. ext_pillar:
  9924. \- git:
  9925. \- master https://mygitserver/pillar1.git
  9926. \- master https://mygitserver/pillar2.git:
  9927. \- root: pillar
  9928. .ft P
  9929. .fi
  9930. .UNINDENT
  9931. .UNINDENT
  9932. .sp
  9933. In this example, for the first remote the top file and SLS files would be
  9934. looked for in the root of the repository, while in the second remote the
  9935. pillar data would be retrieved from the \fBpillar\fP subdirectory.
  9936. .UNINDENT
  9937. .UNINDENT
  9938. .SS \fBgit_pillar_ssl_verify\fP
  9939. .sp
  9940. New in version 2015.8.0.
  9941. .sp
  9942. Changed in version 2016.11.0.
  9943. .sp
  9944. Default: \fBFalse\fP
  9945. .sp
  9946. Specifies whether or not to ignore SSL certificate errors when contacting the
  9947. remote repository. The \fBFalse\fP setting is useful if you\(aqre using a
  9948. git repo that uses a self\-signed certificate. However, keep in mind that
  9949. setting this to anything other \fBTrue\fP is a considered insecure, and using an
  9950. SSH\-based transport (if available) may be a better option.
  9951. .sp
  9952. In the 2016.11.0 release, the default config value changed from \fBFalse\fP to
  9953. \fBTrue\fP\&.
  9954. .INDENT 0.0
  9955. .INDENT 3.5
  9956. .sp
  9957. .nf
  9958. .ft C
  9959. git_pillar_ssl_verify: True
  9960. .ft P
  9961. .fi
  9962. .UNINDENT
  9963. .UNINDENT
  9964. .sp
  9965. \fBNOTE:\fP
  9966. .INDENT 0.0
  9967. .INDENT 3.5
  9968. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  9969. newer.
  9970. .UNINDENT
  9971. .UNINDENT
  9972. .SS \fBgit_pillar_global_lock\fP
  9973. .sp
  9974. New in version 2015.8.9.
  9975. .sp
  9976. Default: \fBTrue\fP
  9977. .sp
  9978. When set to \fBFalse\fP, if there is an update/checkout lock for a git_pillar
  9979. remote and the pid written to it is not running on the master, the lock file
  9980. will be automatically cleared and a new lock will be obtained. When set to
  9981. \fBTrue\fP, Salt will simply log a warning when there is an lock present.
  9982. .sp
  9983. On single\-master deployments, disabling this option can help automatically deal
  9984. with instances where the master was shutdown/restarted during the middle of a
  9985. git_pillar update/checkout, leaving a lock in place.
  9986. .sp
  9987. However, on multi\-master deployments with the git_pillar cachedir shared via
  9988. \fI\%GlusterFS\fP, nfs, or another network filesystem, it is strongly recommended
  9989. not to disable this option as doing so will cause lock files to be removed if
  9990. they were created by a different master.
  9991. .INDENT 0.0
  9992. .INDENT 3.5
  9993. .sp
  9994. .nf
  9995. .ft C
  9996. # Disable global lock
  9997. git_pillar_global_lock: False
  9998. .ft P
  9999. .fi
  10000. .UNINDENT
  10001. .UNINDENT
  10002. .SS \fBgit_pillar_includes\fP
  10003. .sp
  10004. New in version 2017.7.0.
  10005. .sp
  10006. Default: \fBTrue\fP
  10007. .sp
  10008. Normally, when processing git_pillar remotes, if more than one repo under the same \fBgit\fP
  10009. section in the \fBext_pillar\fP configuration refers to the same pillar
  10010. environment, then each repo in a given environment will have access to the
  10011. other repos\(aq files to be referenced in their top files. However, it may be
  10012. desirable to disable this behavior. If so, set this value to \fBFalse\fP\&.
  10013. .sp
  10014. For a more detailed examination of how includes work, see this
  10015. explanation from the git_pillar documentation.
  10016. .INDENT 0.0
  10017. .INDENT 3.5
  10018. .sp
  10019. .nf
  10020. .ft C
  10021. git_pillar_includes: False
  10022. .ft P
  10023. .fi
  10024. .UNINDENT
  10025. .UNINDENT
  10026. .SS \fBgit_pillar_update_interval\fP
  10027. .sp
  10028. New in version 3000.
  10029. .sp
  10030. Default: \fB60\fP
  10031. .sp
  10032. This option defines the default update interval (in seconds) for git_pillar
  10033. remotes. The update is handled within the global loop, hence
  10034. \fBgit_pillar_update_interval\fP should be a multiple of \fBloop_interval\fP\&.
  10035. .INDENT 0.0
  10036. .INDENT 3.5
  10037. .sp
  10038. .nf
  10039. .ft C
  10040. git_pillar_update_interval: 120
  10041. .ft P
  10042. .fi
  10043. .UNINDENT
  10044. .UNINDENT
  10045. .SS Git External Pillar Authentication Options
  10046. .sp
  10047. These parameters only currently apply to the \fBpygit2\fP
  10048. \fI\%git_pillar_provider\fP\&. Authentication works the same as it does
  10049. in gitfs, as outlined in the GitFS Walkthrough,
  10050. though the global configuration options are named differently to reflect that
  10051. they are for git_pillar instead of gitfs.
  10052. .SS \fBgit_pillar_user\fP
  10053. .sp
  10054. New in version 2015.8.0.
  10055. .sp
  10056. Default: \fB\(aq\(aq\fP
  10057. .sp
  10058. Along with \fI\%git_pillar_password\fP, is used to authenticate to HTTPS
  10059. remotes.
  10060. .INDENT 0.0
  10061. .INDENT 3.5
  10062. .sp
  10063. .nf
  10064. .ft C
  10065. git_pillar_user: git
  10066. .ft P
  10067. .fi
  10068. .UNINDENT
  10069. .UNINDENT
  10070. .SS \fBgit_pillar_password\fP
  10071. .sp
  10072. New in version 2015.8.0.
  10073. .sp
  10074. Default: \fB\(aq\(aq\fP
  10075. .sp
  10076. Along with \fI\%git_pillar_user\fP, is used to authenticate to HTTPS
  10077. remotes. This parameter is not required if the repository does not use
  10078. authentication.
  10079. .INDENT 0.0
  10080. .INDENT 3.5
  10081. .sp
  10082. .nf
  10083. .ft C
  10084. git_pillar_password: mypassword
  10085. .ft P
  10086. .fi
  10087. .UNINDENT
  10088. .UNINDENT
  10089. .SS \fBgit_pillar_insecure_auth\fP
  10090. .sp
  10091. New in version 2015.8.0.
  10092. .sp
  10093. Default: \fBFalse\fP
  10094. .sp
  10095. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  10096. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  10097. .INDENT 0.0
  10098. .INDENT 3.5
  10099. .sp
  10100. .nf
  10101. .ft C
  10102. git_pillar_insecure_auth: True
  10103. .ft P
  10104. .fi
  10105. .UNINDENT
  10106. .UNINDENT
  10107. .SS \fBgit_pillar_pubkey\fP
  10108. .sp
  10109. New in version 2015.8.0.
  10110. .sp
  10111. Default: \fB\(aq\(aq\fP
  10112. .sp
  10113. Along with \fI\%git_pillar_privkey\fP (and optionally
  10114. \fI\%git_pillar_passphrase\fP), is used to authenticate to SSH remotes.
  10115. .INDENT 0.0
  10116. .INDENT 3.5
  10117. .sp
  10118. .nf
  10119. .ft C
  10120. git_pillar_pubkey: /path/to/key.pub
  10121. .ft P
  10122. .fi
  10123. .UNINDENT
  10124. .UNINDENT
  10125. .SS \fBgit_pillar_privkey\fP
  10126. .sp
  10127. New in version 2015.8.0.
  10128. .sp
  10129. Default: \fB\(aq\(aq\fP
  10130. .sp
  10131. Along with \fI\%git_pillar_pubkey\fP (and optionally
  10132. \fI\%git_pillar_passphrase\fP), is used to authenticate to SSH remotes.
  10133. .INDENT 0.0
  10134. .INDENT 3.5
  10135. .sp
  10136. .nf
  10137. .ft C
  10138. git_pillar_privkey: /path/to/key
  10139. .ft P
  10140. .fi
  10141. .UNINDENT
  10142. .UNINDENT
  10143. .SS \fBgit_pillar_passphrase\fP
  10144. .sp
  10145. New in version 2015.8.0.
  10146. .sp
  10147. Default: \fB\(aq\(aq\fP
  10148. .sp
  10149. This parameter is optional, required only when the SSH key being used to
  10150. authenticate is protected by a passphrase.
  10151. .INDENT 0.0
  10152. .INDENT 3.5
  10153. .sp
  10154. .nf
  10155. .ft C
  10156. git_pillar_passphrase: mypassphrase
  10157. .ft P
  10158. .fi
  10159. .UNINDENT
  10160. .UNINDENT
  10161. .SS \fBgit_pillar_refspecs\fP
  10162. .sp
  10163. New in version 2017.7.0.
  10164. .sp
  10165. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  10166. .sp
  10167. When fetching from remote repositories, by default Salt will fetch branches and
  10168. tags. This parameter can be used to override the default and specify
  10169. alternate refspecs to be fetched. This parameter works similarly to its
  10170. GitFS counterpart, in that it can be
  10171. configured both globally and for individual remotes.
  10172. .INDENT 0.0
  10173. .INDENT 3.5
  10174. .sp
  10175. .nf
  10176. .ft C
  10177. git_pillar_refspecs:
  10178. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  10179. \- \(aq+refs/tags/*:refs/tags/*\(aq
  10180. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  10181. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  10182. .ft P
  10183. .fi
  10184. .UNINDENT
  10185. .UNINDENT
  10186. .SS \fBgit_pillar_verify_config\fP
  10187. .sp
  10188. New in version 2017.7.0.
  10189. .sp
  10190. Default: \fBTrue\fP
  10191. .sp
  10192. By default, as the master starts it performs some sanity checks on the
  10193. configured git_pillar repositories. If any of these sanity checks fail (such as
  10194. when an invalid configuration is used), the master daemon will abort.
  10195. .sp
  10196. To skip these sanity checks, set this option to \fBFalse\fP\&.
  10197. .INDENT 0.0
  10198. .INDENT 3.5
  10199. .sp
  10200. .nf
  10201. .ft C
  10202. git_pillar_verify_config: False
  10203. .ft P
  10204. .fi
  10205. .UNINDENT
  10206. .UNINDENT
  10207. .SS Pillar Merging Options
  10208. .SS \fBpillar_source_merging_strategy\fP
  10209. .sp
  10210. New in version 2014.7.0.
  10211. .sp
  10212. Default: \fBsmart\fP
  10213. .sp
  10214. The pillar_source_merging_strategy option allows you to configure merging
  10215. strategy between different sources. It accepts 5 values:
  10216. .INDENT 0.0
  10217. .IP \(bu 2
  10218. \fBnone\fP:
  10219. .sp
  10220. 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.
  10221. .sp
  10222. New in version 2016.3.4.
  10223. .IP \(bu 2
  10224. \fBrecurse\fP:
  10225. .sp
  10226. It will recursively merge data. For example, theses 2 sources:
  10227. .INDENT 2.0
  10228. .INDENT 3.5
  10229. .sp
  10230. .nf
  10231. .ft C
  10232. foo: 42
  10233. bar:
  10234. element1: True
  10235. .ft P
  10236. .fi
  10237. .UNINDENT
  10238. .UNINDENT
  10239. .INDENT 2.0
  10240. .INDENT 3.5
  10241. .sp
  10242. .nf
  10243. .ft C
  10244. bar:
  10245. element2: True
  10246. baz: quux
  10247. .ft P
  10248. .fi
  10249. .UNINDENT
  10250. .UNINDENT
  10251. .sp
  10252. will be merged as:
  10253. .INDENT 2.0
  10254. .INDENT 3.5
  10255. .sp
  10256. .nf
  10257. .ft C
  10258. foo: 42
  10259. bar:
  10260. element1: True
  10261. element2: True
  10262. baz: quux
  10263. .ft P
  10264. .fi
  10265. .UNINDENT
  10266. .UNINDENT
  10267. .IP \(bu 2
  10268. \fBaggregate\fP:
  10269. .sp
  10270. instructs aggregation of elements between sources that use the #!yamlex renderer.
  10271. .sp
  10272. For example, these two documents:
  10273. .INDENT 2.0
  10274. .INDENT 3.5
  10275. .sp
  10276. .nf
  10277. .ft C
  10278. #!yamlex
  10279. foo: 42
  10280. bar: !aggregate {
  10281. element1: True
  10282. }
  10283. baz: !aggregate quux
  10284. .ft P
  10285. .fi
  10286. .UNINDENT
  10287. .UNINDENT
  10288. .INDENT 2.0
  10289. .INDENT 3.5
  10290. .sp
  10291. .nf
  10292. .ft C
  10293. #!yamlex
  10294. bar: !aggregate {
  10295. element2: True
  10296. }
  10297. baz: !aggregate quux2
  10298. .ft P
  10299. .fi
  10300. .UNINDENT
  10301. .UNINDENT
  10302. .sp
  10303. will be merged as:
  10304. .INDENT 2.0
  10305. .INDENT 3.5
  10306. .sp
  10307. .nf
  10308. .ft C
  10309. foo: 42
  10310. bar:
  10311. element1: True
  10312. element2: True
  10313. baz:
  10314. \- quux
  10315. \- quux2
  10316. .ft P
  10317. .fi
  10318. .UNINDENT
  10319. .UNINDENT
  10320. .IP \(bu 2
  10321. \fBoverwrite\fP:
  10322. .sp
  10323. Will use the behaviour of the 2014.1 branch and earlier.
  10324. .sp
  10325. Overwrites elements according the order in which they are processed.
  10326. .sp
  10327. First pillar processed:
  10328. .INDENT 2.0
  10329. .INDENT 3.5
  10330. .sp
  10331. .nf
  10332. .ft C
  10333. A:
  10334. first_key: blah
  10335. second_key: blah
  10336. .ft P
  10337. .fi
  10338. .UNINDENT
  10339. .UNINDENT
  10340. .sp
  10341. Second pillar processed:
  10342. .INDENT 2.0
  10343. .INDENT 3.5
  10344. .sp
  10345. .nf
  10346. .ft C
  10347. A:
  10348. third_key: blah
  10349. fourth_key: blah
  10350. .ft P
  10351. .fi
  10352. .UNINDENT
  10353. .UNINDENT
  10354. .sp
  10355. will be merged as:
  10356. .INDENT 2.0
  10357. .INDENT 3.5
  10358. .sp
  10359. .nf
  10360. .ft C
  10361. A:
  10362. third_key: blah
  10363. fourth_key: blah
  10364. .ft P
  10365. .fi
  10366. .UNINDENT
  10367. .UNINDENT
  10368. .IP \(bu 2
  10369. \fBsmart\fP (default):
  10370. .sp
  10371. Guesses the best strategy based on the "renderer" setting.
  10372. .UNINDENT
  10373. .sp
  10374. \fBNOTE:\fP
  10375. .INDENT 0.0
  10376. .INDENT 3.5
  10377. In order for yamlex based features such as \fB!aggregate\fP to work as expected
  10378. across documents using the default \fBsmart\fP merge strategy, the \fI\%renderer\fP
  10379. config option must be set to \fBjinja|yamlex\fP or similar.
  10380. .UNINDENT
  10381. .UNINDENT
  10382. .SS \fBpillar_merge_lists\fP
  10383. .sp
  10384. New in version 2015.8.0.
  10385. .sp
  10386. Default: \fBFalse\fP
  10387. .sp
  10388. Recursively merge lists by aggregating them instead of replacing them.
  10389. .INDENT 0.0
  10390. .INDENT 3.5
  10391. .sp
  10392. .nf
  10393. .ft C
  10394. pillar_merge_lists: False
  10395. .ft P
  10396. .fi
  10397. .UNINDENT
  10398. .UNINDENT
  10399. .SS \fBpillar_includes_override_sls\fP
  10400. .sp
  10401. New in version 2017.7.6,2018.3.1.
  10402. .sp
  10403. Default: \fBFalse\fP
  10404. .sp
  10405. Prior to version 2017.7.3, keys from pillar includes
  10406. would be merged on top of the pillar SLS. Since 2017.7.3, the includes are
  10407. merged together and then the pillar SLS is merged on top of that.
  10408. .sp
  10409. Set this option to \fBTrue\fP to return to the old behavior.
  10410. .INDENT 0.0
  10411. .INDENT 3.5
  10412. .sp
  10413. .nf
  10414. .ft C
  10415. pillar_includes_override_sls: True
  10416. .ft P
  10417. .fi
  10418. .UNINDENT
  10419. .UNINDENT
  10420. .SS Pillar Cache Options
  10421. .SS \fBpillar_cache\fP
  10422. .sp
  10423. New in version 2015.8.8.
  10424. .sp
  10425. Default: \fBFalse\fP
  10426. .sp
  10427. A master can cache pillars locally to bypass the expense of having to render them
  10428. for each minion on every request. This feature should only be enabled in cases
  10429. where pillar rendering time is known to be unsatisfactory and any attendant security
  10430. concerns about storing pillars in a master cache have been addressed.
  10431. .sp
  10432. When enabling this feature, be certain to read through the additional \fBpillar_cache_*\fP
  10433. configuration options to fully understand the tunable parameters and their implications.
  10434. .INDENT 0.0
  10435. .INDENT 3.5
  10436. .sp
  10437. .nf
  10438. .ft C
  10439. pillar_cache: False
  10440. .ft P
  10441. .fi
  10442. .UNINDENT
  10443. .UNINDENT
  10444. .sp
  10445. \fBNOTE:\fP
  10446. .INDENT 0.0
  10447. .INDENT 3.5
  10448. Setting \fBpillar_cache: True\fP has no effect on
  10449. targeting minions with pillar\&.
  10450. .UNINDENT
  10451. .UNINDENT
  10452. .SS \fBpillar_cache_ttl\fP
  10453. .sp
  10454. New in version 2015.8.8.
  10455. .sp
  10456. Default: \fB3600\fP
  10457. .sp
  10458. If and only if a master has set \fBpillar_cache: True\fP, the cache TTL controls the amount
  10459. of time, in seconds, before the cache is considered invalid by a master and a fresh
  10460. pillar is recompiled and stored.
  10461. .SS \fBpillar_cache_backend\fP
  10462. .sp
  10463. New in version 2015.8.8.
  10464. .sp
  10465. Default: \fBdisk\fP
  10466. .sp
  10467. If an only if a master has set \fBpillar_cache: True\fP, one of several storage providers
  10468. can be utilized:
  10469. .INDENT 0.0
  10470. .IP \(bu 2
  10471. \fBdisk\fP (default):
  10472. .sp
  10473. The default storage backend. This caches rendered pillars to the master cache.
  10474. Rendered pillars are serialized and deserialized as \fBmsgpack\fP structures for speed.
  10475. Note that pillars are stored UNENCRYPTED. Ensure that the master cache has permissions
  10476. set appropriately (sane defaults are provided).
  10477. .IP \(bu 2
  10478. \fBmemory\fP [EXPERIMENTAL]:
  10479. .sp
  10480. An optional backend for pillar caches which uses a pure\-Python
  10481. in\-memory data structure for maximal performance. There are several caveats,
  10482. however. First, because each master worker contains its own in\-memory cache,
  10483. there is no guarantee of cache consistency between minion requests. This
  10484. works best in situations where the pillar rarely if ever changes. Secondly,
  10485. and perhaps more importantly, this means that unencrypted pillars will
  10486. be accessible to any process which can examine the memory of the \fBsalt\-master\fP!
  10487. This may represent a substantial security risk.
  10488. .UNINDENT
  10489. .INDENT 0.0
  10490. .INDENT 3.5
  10491. .sp
  10492. .nf
  10493. .ft C
  10494. pillar_cache_backend: disk
  10495. .ft P
  10496. .fi
  10497. .UNINDENT
  10498. .UNINDENT
  10499. .SS Master Reactor Settings
  10500. .SS \fBreactor\fP
  10501. .sp
  10502. Default: \fB[]\fP
  10503. .sp
  10504. Defines a salt reactor. See the Reactor documentation for more
  10505. information.
  10506. .INDENT 0.0
  10507. .INDENT 3.5
  10508. .sp
  10509. .nf
  10510. .ft C
  10511. reactor:
  10512. \- \(aqsalt/minion/*/start\(aq:
  10513. \- salt://reactor/startup_tasks.sls
  10514. .ft P
  10515. .fi
  10516. .UNINDENT
  10517. .UNINDENT
  10518. .SS \fBreactor_refresh_interval\fP
  10519. .sp
  10520. Default: \fB60\fP
  10521. .sp
  10522. The TTL for the cache of the reactor configuration.
  10523. .INDENT 0.0
  10524. .INDENT 3.5
  10525. .sp
  10526. .nf
  10527. .ft C
  10528. reactor_refresh_interval: 60
  10529. .ft P
  10530. .fi
  10531. .UNINDENT
  10532. .UNINDENT
  10533. .SS \fBreactor_worker_threads\fP
  10534. .sp
  10535. Default: \fB10\fP
  10536. .sp
  10537. The number of workers for the runner/wheel in the reactor.
  10538. .INDENT 0.0
  10539. .INDENT 3.5
  10540. .sp
  10541. .nf
  10542. .ft C
  10543. reactor_worker_threads: 10
  10544. .ft P
  10545. .fi
  10546. .UNINDENT
  10547. .UNINDENT
  10548. .SS \fBreactor_worker_hwm\fP
  10549. .sp
  10550. Default: \fB10000\fP
  10551. .sp
  10552. The queue size for workers in the reactor.
  10553. .INDENT 0.0
  10554. .INDENT 3.5
  10555. .sp
  10556. .nf
  10557. .ft C
  10558. reactor_worker_hwm: 10000
  10559. .ft P
  10560. .fi
  10561. .UNINDENT
  10562. .UNINDENT
  10563. .SS Salt\-API Master Settings
  10564. .sp
  10565. There are some settings for salt\-api that can be
  10566. configured on the Salt Master.
  10567. .SS \fBapi_logfile\fP
  10568. .sp
  10569. Default: \fB/var/log/salt/api\fP
  10570. .sp
  10571. The logfile location for \fBsalt\-api\fP\&.
  10572. .INDENT 0.0
  10573. .INDENT 3.5
  10574. .sp
  10575. .nf
  10576. .ft C
  10577. api_logfile: /var/log/salt/api
  10578. .ft P
  10579. .fi
  10580. .UNINDENT
  10581. .UNINDENT
  10582. .SS \fBapi_pidfile\fP
  10583. .sp
  10584. Default: /var/run/salt\-api.pid
  10585. .sp
  10586. If this master will be running \fBsalt\-api\fP, specify the pidfile of the
  10587. \fBsalt\-api\fP daemon.
  10588. .INDENT 0.0
  10589. .INDENT 3.5
  10590. .sp
  10591. .nf
  10592. .ft C
  10593. api_pidfile: /var/run/salt\-api.pid
  10594. .ft P
  10595. .fi
  10596. .UNINDENT
  10597. .UNINDENT
  10598. .SS \fBrest_timeout\fP
  10599. .sp
  10600. Default: \fB300\fP
  10601. .sp
  10602. Used by \fBsalt\-api\fP for the master requests timeout.
  10603. .INDENT 0.0
  10604. .INDENT 3.5
  10605. .sp
  10606. .nf
  10607. .ft C
  10608. rest_timeout: 300
  10609. .ft P
  10610. .fi
  10611. .UNINDENT
  10612. .UNINDENT
  10613. .SS Syndic Server Settings
  10614. .sp
  10615. A Salt syndic is a Salt master used to pass commands from a higher Salt master
  10616. to minions below the syndic. Using the syndic is simple. If this is a master
  10617. that will have syndic servers(s) below it, set the \fBorder_masters\fP setting to
  10618. \fBTrue\fP\&.
  10619. .sp
  10620. If this is a master that will be running a syndic daemon for passthrough the
  10621. \fBsyndic_master\fP setting needs to be set to the location of the master server.
  10622. .sp
  10623. Do not forget that, in other words, it means that it shares with the local minion
  10624. its ID and PKI directory.
  10625. .SS \fBorder_masters\fP
  10626. .sp
  10627. Default: \fBFalse\fP
  10628. .sp
  10629. Extra data needs to be sent with publications if the master is controlling a
  10630. lower level master via a syndic minion. If this is the case the order_masters
  10631. value must be set to True
  10632. .INDENT 0.0
  10633. .INDENT 3.5
  10634. .sp
  10635. .nf
  10636. .ft C
  10637. order_masters: False
  10638. .ft P
  10639. .fi
  10640. .UNINDENT
  10641. .UNINDENT
  10642. .SS \fBsyndic_master\fP
  10643. .sp
  10644. Changed in version 2016.3.5,2016.11.1: Set default higher level master address.
  10645. .sp
  10646. Default: \fBmasterofmasters\fP
  10647. .sp
  10648. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10649. master, specify the higher level master with this configuration value.
  10650. .INDENT 0.0
  10651. .INDENT 3.5
  10652. .sp
  10653. .nf
  10654. .ft C
  10655. syndic_master: masterofmasters
  10656. .ft P
  10657. .fi
  10658. .UNINDENT
  10659. .UNINDENT
  10660. .sp
  10661. You can optionally connect a syndic to multiple higher level masters by
  10662. setting the \fBsyndic_master\fP value to a list:
  10663. .INDENT 0.0
  10664. .INDENT 3.5
  10665. .sp
  10666. .nf
  10667. .ft C
  10668. syndic_master:
  10669. \- masterofmasters1
  10670. \- masterofmasters2
  10671. .ft P
  10672. .fi
  10673. .UNINDENT
  10674. .UNINDENT
  10675. .sp
  10676. Each higher level master must be set up in a multi\-master configuration.
  10677. .SS \fBsyndic_master_port\fP
  10678. .sp
  10679. Default: \fB4506\fP
  10680. .sp
  10681. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10682. master, specify the higher level master port with this configuration value.
  10683. .INDENT 0.0
  10684. .INDENT 3.5
  10685. .sp
  10686. .nf
  10687. .ft C
  10688. syndic_master_port: 4506
  10689. .ft P
  10690. .fi
  10691. .UNINDENT
  10692. .UNINDENT
  10693. .SS \fBsyndic_pidfile\fP
  10694. .sp
  10695. Default: \fB/var/run/salt\-syndic.pid\fP
  10696. .sp
  10697. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10698. master, specify the pidfile of the syndic daemon.
  10699. .INDENT 0.0
  10700. .INDENT 3.5
  10701. .sp
  10702. .nf
  10703. .ft C
  10704. syndic_pidfile: /var/run/syndic.pid
  10705. .ft P
  10706. .fi
  10707. .UNINDENT
  10708. .UNINDENT
  10709. .SS \fBsyndic_log_file\fP
  10710. .sp
  10711. Default: \fB/var/log/salt/syndic\fP
  10712. .sp
  10713. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10714. master, specify the log file of the syndic daemon.
  10715. .INDENT 0.0
  10716. .INDENT 3.5
  10717. .sp
  10718. .nf
  10719. .ft C
  10720. syndic_log_file: /var/log/salt\-syndic.log
  10721. .ft P
  10722. .fi
  10723. .UNINDENT
  10724. .UNINDENT
  10725. .SS \fBsyndic_failover\fP
  10726. .sp
  10727. New in version 2016.3.0.
  10728. .sp
  10729. Default: \fBrandom\fP
  10730. .sp
  10731. The behaviour of the multi\-syndic when connection to a master of masters failed.
  10732. Can specify \fBrandom\fP (default) or \fBordered\fP\&. If set to \fBrandom\fP, masters
  10733. will be iterated in random order. If \fBordered\fP is specified, the configured
  10734. order will be used.
  10735. .INDENT 0.0
  10736. .INDENT 3.5
  10737. .sp
  10738. .nf
  10739. .ft C
  10740. syndic_failover: random
  10741. .ft P
  10742. .fi
  10743. .UNINDENT
  10744. .UNINDENT
  10745. .SS \fBsyndic_wait\fP
  10746. .sp
  10747. Default: \fB5\fP
  10748. .sp
  10749. The number of seconds for the salt client to wait for additional syndics to
  10750. check in with their lists of expected minions before giving up.
  10751. .INDENT 0.0
  10752. .INDENT 3.5
  10753. .sp
  10754. .nf
  10755. .ft C
  10756. syndic_wait: 5
  10757. .ft P
  10758. .fi
  10759. .UNINDENT
  10760. .UNINDENT
  10761. .SS \fBsyndic_forward_all_events\fP
  10762. .sp
  10763. New in version 2017.7.0.
  10764. .sp
  10765. Default: \fBFalse\fP
  10766. .sp
  10767. Option on multi\-syndic or single when connected to multiple masters to be able to
  10768. send events to all connected masters.
  10769. .INDENT 0.0
  10770. .INDENT 3.5
  10771. .sp
  10772. .nf
  10773. .ft C
  10774. syndic_forward_all_events: False
  10775. .ft P
  10776. .fi
  10777. .UNINDENT
  10778. .UNINDENT
  10779. .SS Peer Publish Settings
  10780. .sp
  10781. Salt minions can send commands to other minions, but only if the minion is
  10782. allowed to. By default "Peer Publication" is disabled, and when enabled it
  10783. is enabled for specific minions and specific commands. This allows secure
  10784. compartmentalization of commands based on individual minions.
  10785. .SS \fBpeer\fP
  10786. .sp
  10787. Default: \fB{}\fP
  10788. .sp
  10789. The configuration uses regular expressions to match minions and then a list
  10790. of regular expressions to match functions. The following will allow the
  10791. minion authenticated as foo.example.com to execute functions from the test
  10792. and pkg modules.
  10793. .INDENT 0.0
  10794. .INDENT 3.5
  10795. .sp
  10796. .nf
  10797. .ft C
  10798. peer:
  10799. foo.example.com:
  10800. \- test.*
  10801. \- pkg.*
  10802. .ft P
  10803. .fi
  10804. .UNINDENT
  10805. .UNINDENT
  10806. .sp
  10807. This will allow all minions to execute all commands:
  10808. .INDENT 0.0
  10809. .INDENT 3.5
  10810. .sp
  10811. .nf
  10812. .ft C
  10813. peer:
  10814. .*:
  10815. \- .*
  10816. .ft P
  10817. .fi
  10818. .UNINDENT
  10819. .UNINDENT
  10820. .sp
  10821. This is not recommended, since it would allow anyone who gets root on any
  10822. single minion to instantly have root on all of the minions!
  10823. .sp
  10824. By adding an additional layer you can limit the target hosts in addition to the
  10825. accessible commands:
  10826. .INDENT 0.0
  10827. .INDENT 3.5
  10828. .sp
  10829. .nf
  10830. .ft C
  10831. peer:
  10832. foo.example.com:
  10833. \(aqdb*\(aq:
  10834. \- test.*
  10835. \- pkg.*
  10836. .ft P
  10837. .fi
  10838. .UNINDENT
  10839. .UNINDENT
  10840. .SS \fBpeer_run\fP
  10841. .sp
  10842. Default: \fB{}\fP
  10843. .sp
  10844. The peer_run option is used to open up runners on the master to access from the
  10845. minions. The peer_run configuration matches the format of the peer
  10846. configuration.
  10847. .sp
  10848. The following example would allow foo.example.com to execute the manage.up
  10849. runner:
  10850. .INDENT 0.0
  10851. .INDENT 3.5
  10852. .sp
  10853. .nf
  10854. .ft C
  10855. peer_run:
  10856. foo.example.com:
  10857. \- manage.up
  10858. .ft P
  10859. .fi
  10860. .UNINDENT
  10861. .UNINDENT
  10862. .SS Master Logging Settings
  10863. .SS \fBlog_file\fP
  10864. .sp
  10865. Default: \fB/var/log/salt/master\fP
  10866. .sp
  10867. The master log can be sent to a regular file, local path name, or network
  10868. location. See also \fBlog_file\fP\&.
  10869. .sp
  10870. Examples:
  10871. .INDENT 0.0
  10872. .INDENT 3.5
  10873. .sp
  10874. .nf
  10875. .ft C
  10876. log_file: /var/log/salt/master
  10877. .ft P
  10878. .fi
  10879. .UNINDENT
  10880. .UNINDENT
  10881. .INDENT 0.0
  10882. .INDENT 3.5
  10883. .sp
  10884. .nf
  10885. .ft C
  10886. log_file: file:///dev/log
  10887. .ft P
  10888. .fi
  10889. .UNINDENT
  10890. .UNINDENT
  10891. .INDENT 0.0
  10892. .INDENT 3.5
  10893. .sp
  10894. .nf
  10895. .ft C
  10896. log_file: udp://loghost:10514
  10897. .ft P
  10898. .fi
  10899. .UNINDENT
  10900. .UNINDENT
  10901. .SS \fBlog_level\fP
  10902. .sp
  10903. Default: \fBwarning\fP
  10904. .sp
  10905. The level of messages to send to the console. See also \fBlog_level\fP\&.
  10906. .INDENT 0.0
  10907. .INDENT 3.5
  10908. .sp
  10909. .nf
  10910. .ft C
  10911. log_level: warning
  10912. .ft P
  10913. .fi
  10914. .UNINDENT
  10915. .UNINDENT
  10916. .SS \fBlog_level_logfile\fP
  10917. .sp
  10918. Default: \fBwarning\fP
  10919. .sp
  10920. The level of messages to send to the log file. See also
  10921. \fBlog_level_logfile\fP\&. When it is not set explicitly
  10922. it will inherit the level set by \fBlog_level\fP option.
  10923. .INDENT 0.0
  10924. .INDENT 3.5
  10925. .sp
  10926. .nf
  10927. .ft C
  10928. log_level_logfile: warning
  10929. .ft P
  10930. .fi
  10931. .UNINDENT
  10932. .UNINDENT
  10933. .SS \fBlog_datefmt\fP
  10934. .sp
  10935. Default: \fB%H:%M:%S\fP
  10936. .sp
  10937. The date and time format used in console log messages. See also
  10938. \fBlog_datefmt\fP\&.
  10939. .INDENT 0.0
  10940. .INDENT 3.5
  10941. .sp
  10942. .nf
  10943. .ft C
  10944. log_datefmt: \(aq%H:%M:%S\(aq
  10945. .ft P
  10946. .fi
  10947. .UNINDENT
  10948. .UNINDENT
  10949. .SS \fBlog_datefmt_logfile\fP
  10950. .sp
  10951. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  10952. .sp
  10953. The date and time format used in log file messages. See also
  10954. \fBlog_datefmt_logfile\fP\&.
  10955. .INDENT 0.0
  10956. .INDENT 3.5
  10957. .sp
  10958. .nf
  10959. .ft C
  10960. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  10961. .ft P
  10962. .fi
  10963. .UNINDENT
  10964. .UNINDENT
  10965. .SS \fBlog_fmt_console\fP
  10966. .sp
  10967. Default: \fB[%(levelname)\-8s] %(message)s\fP
  10968. .sp
  10969. The format of the console logging messages. See also
  10970. \fBlog_fmt_console\fP\&.
  10971. .sp
  10972. \fBNOTE:\fP
  10973. .INDENT 0.0
  10974. .INDENT 3.5
  10975. Log colors are enabled in \fBlog_fmt_console\fP rather than the
  10976. \fI\%color\fP config since the logging system is loaded before the
  10977. master config.
  10978. .sp
  10979. Console log colors are specified by these additional formatters:
  10980. .sp
  10981. %(colorlevel)s
  10982. %(colorname)s
  10983. %(colorprocess)s
  10984. %(colormsg)s
  10985. .sp
  10986. Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  10987. the coloring of the messages, these color formatters also include padding
  10988. as well. Color LogRecord attributes are only available for console
  10989. logging.
  10990. .UNINDENT
  10991. .UNINDENT
  10992. .INDENT 0.0
  10993. .INDENT 3.5
  10994. .sp
  10995. .nf
  10996. .ft C
  10997. log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  10998. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  10999. .ft P
  11000. .fi
  11001. .UNINDENT
  11002. .UNINDENT
  11003. .SS \fBlog_fmt_logfile\fP
  11004. .sp
  11005. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  11006. .sp
  11007. The format of the log file logging messages. See also
  11008. \fBlog_fmt_logfile\fP\&.
  11009. .INDENT 0.0
  11010. .INDENT 3.5
  11011. .sp
  11012. .nf
  11013. .ft C
  11014. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  11015. .ft P
  11016. .fi
  11017. .UNINDENT
  11018. .UNINDENT
  11019. .SS \fBlog_granular_levels\fP
  11020. .sp
  11021. Default: \fB{}\fP
  11022. .sp
  11023. This can be used to control logging levels more specifically. See also
  11024. \fBlog_granular_levels\fP\&.
  11025. .SS \fBlog_rotate_max_bytes\fP
  11026. .sp
  11027. Default: \fB0\fP
  11028. .sp
  11029. The maximum number of bytes a single log file may contain before it is rotated.
  11030. A value of 0 disables this feature. Currently only supported on Windows. On
  11031. other platforms, use an external tool such as \(aqlogrotate\(aq to manage log files.
  11032. \fBlog_rotate_max_bytes\fP
  11033. .SS \fBlog_rotate_backup_count\fP
  11034. .sp
  11035. Default: \fB0\fP
  11036. .sp
  11037. The number of backup files to keep when rotating log files. Only used if
  11038. \fI\%log_rotate_max_bytes\fP is greater than 0. Currently only supported
  11039. on Windows. On other platforms, use an external tool such as \(aqlogrotate\(aq to
  11040. manage log files.
  11041. \fBlog_rotate_backup_count\fP
  11042. .SS Node Groups
  11043. .SS \fBnodegroups\fP
  11044. .sp
  11045. Default: \fB{}\fP
  11046. .sp
  11047. Node groups allow for logical groupings of minion nodes.
  11048. A group consists of a group name and a compound target.
  11049. .INDENT 0.0
  11050. .INDENT 3.5
  11051. .sp
  11052. .nf
  11053. .ft C
  11054. nodegroups:
  11055. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  11056. group2: \(aqG@os:Debian and foo.domain.com\(aq
  11057. group3: \(aqG@os:Debian and N@group1\(aq
  11058. group4:
  11059. \- \(aqG@foo:bar\(aq
  11060. \- \(aqor\(aq
  11061. \- \(aqG@foo:baz\(aq
  11062. .ft P
  11063. .fi
  11064. .UNINDENT
  11065. .UNINDENT
  11066. .sp
  11067. More information on using nodegroups can be found here\&.
  11068. .SS Range Cluster Settings
  11069. .SS \fBrange_server\fP
  11070. .sp
  11071. Default: \fB\(aqrange:80\(aq\fP
  11072. .sp
  11073. The range server (and optional port) that serves your cluster information
  11074. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  11075. .INDENT 0.0
  11076. .INDENT 3.5
  11077. .sp
  11078. .nf
  11079. .ft C
  11080. range_server: range:80
  11081. .ft P
  11082. .fi
  11083. .UNINDENT
  11084. .UNINDENT
  11085. .SS Include Configuration
  11086. .sp
  11087. Configuration can be loaded from multiple files. The order in which this is
  11088. done is:
  11089. .INDENT 0.0
  11090. .IP 1. 3
  11091. The master config file itself
  11092. .IP 2. 3
  11093. The files matching the glob in \fI\%default_include\fP
  11094. .IP 3. 3
  11095. The files matching the glob in \fI\%include\fP (if defined)
  11096. .UNINDENT
  11097. .sp
  11098. Each successive step overrides any values defined in the previous steps.
  11099. Therefore, any config options defined in one of the
  11100. \fI\%default_include\fP files would override the same value in the
  11101. master config file, and any options defined in \fI\%include\fP would
  11102. override both.
  11103. .SS \fBdefault_include\fP
  11104. .sp
  11105. Default: \fBmaster.d/*.conf\fP
  11106. .sp
  11107. The master can include configuration from other files. Per default the
  11108. master will automatically include all config files from \fBmaster.d/*.conf\fP
  11109. where \fBmaster.d\fP is relative to the directory of the master configuration
  11110. file.
  11111. .sp
  11112. \fBNOTE:\fP
  11113. .INDENT 0.0
  11114. .INDENT 3.5
  11115. Salt creates files in the \fBmaster.d\fP directory for its own use. These
  11116. files are prefixed with an underscore. A common example of this is the
  11117. \fB_schedule.conf\fP file.
  11118. .UNINDENT
  11119. .UNINDENT
  11120. .SS \fBinclude\fP
  11121. .sp
  11122. Default: \fBnot defined\fP
  11123. .sp
  11124. The master can include configuration from other files. To enable this,
  11125. pass a list of paths to this option. The paths can be either relative or
  11126. absolute; if relative, they are considered to be relative to the directory
  11127. the main minion configuration file lives in. Paths can make use of
  11128. shell\-style globbing. If no files are matched by a path passed to this
  11129. option then the master will log a warning message.
  11130. .INDENT 0.0
  11131. .INDENT 3.5
  11132. .sp
  11133. .nf
  11134. .ft C
  11135. # Include files from a master.d directory in the same
  11136. # directory as the master config file
  11137. include: master.d/*
  11138. # Include a single extra file into the configuration
  11139. include: /etc/roles/webserver
  11140. # Include several files and the master.d directory
  11141. include:
  11142. \- extra_config
  11143. \- master.d/*
  11144. \- /etc/roles/webserver
  11145. .ft P
  11146. .fi
  11147. .UNINDENT
  11148. .UNINDENT
  11149. .SS Keepalive Settings
  11150. .SS \fBtcp_keepalive\fP
  11151. .sp
  11152. Default: \fBTrue\fP
  11153. .sp
  11154. The tcp keepalive interval to set on TCP ports. This setting can be used to tune Salt
  11155. connectivity issues in messy network environments with misbehaving firewalls.
  11156. .INDENT 0.0
  11157. .INDENT 3.5
  11158. .sp
  11159. .nf
  11160. .ft C
  11161. tcp_keepalive: True
  11162. .ft P
  11163. .fi
  11164. .UNINDENT
  11165. .UNINDENT
  11166. .SS \fBtcp_keepalive_cnt\fP
  11167. .sp
  11168. Default: \fB\-1\fP
  11169. .sp
  11170. Sets the ZeroMQ TCP keepalive count. May be used to tune issues with minion disconnects.
  11171. .INDENT 0.0
  11172. .INDENT 3.5
  11173. .sp
  11174. .nf
  11175. .ft C
  11176. tcp_keepalive_cnt: \-1
  11177. .ft P
  11178. .fi
  11179. .UNINDENT
  11180. .UNINDENT
  11181. .SS \fBtcp_keepalive_idle\fP
  11182. .sp
  11183. Default: \fB300\fP
  11184. .sp
  11185. Sets ZeroMQ TCP keepalive idle. May be used to tune issues with minion disconnects.
  11186. .INDENT 0.0
  11187. .INDENT 3.5
  11188. .sp
  11189. .nf
  11190. .ft C
  11191. tcp_keepalive_idle: 300
  11192. .ft P
  11193. .fi
  11194. .UNINDENT
  11195. .UNINDENT
  11196. .SS \fBtcp_keepalive_intvl\fP
  11197. .sp
  11198. Default: \fB\-1\fP
  11199. .sp
  11200. Sets ZeroMQ TCP keepalive interval. May be used to tune issues with minion disconnects.
  11201. .INDENT 0.0
  11202. .INDENT 3.5
  11203. .sp
  11204. .nf
  11205. .ft C
  11206. tcp_keepalive_intvl\(aq: \-1
  11207. .ft P
  11208. .fi
  11209. .UNINDENT
  11210. .UNINDENT
  11211. .SS Windows Software Repo Settings
  11212. .SS \fBwinrepo_provider\fP
  11213. .sp
  11214. New in version 2015.8.0.
  11215. .sp
  11216. Specify the provider to be used for winrepo. Must be either \fBpygit2\fP or
  11217. \fBgitpython\fP\&. If unset, then both will be tried in that same order, and the
  11218. first one with a compatible version installed will be the provider that is
  11219. used.
  11220. .INDENT 0.0
  11221. .INDENT 3.5
  11222. .sp
  11223. .nf
  11224. .ft C
  11225. winrepo_provider: gitpython
  11226. .ft P
  11227. .fi
  11228. .UNINDENT
  11229. .UNINDENT
  11230. .SS \fBwinrepo_dir\fP
  11231. .sp
  11232. Changed in version 2015.8.0: Renamed from \fBwin_repo\fP to \fBwinrepo_dir\fP\&.
  11233. .sp
  11234. Default: \fB/srv/salt/win/repo\fP
  11235. .sp
  11236. Location on the master where the \fI\%winrepo_remotes\fP are checked out
  11237. for pre\-2015.8.0 minions. 2015.8.0 and later minions use
  11238. \fI\%winrepo_remotes_ng\fP instead.
  11239. .INDENT 0.0
  11240. .INDENT 3.5
  11241. .sp
  11242. .nf
  11243. .ft C
  11244. winrepo_dir: /srv/salt/win/repo
  11245. .ft P
  11246. .fi
  11247. .UNINDENT
  11248. .UNINDENT
  11249. .SS \fBwinrepo_dir_ng\fP
  11250. .sp
  11251. New in version 2015.8.0: A new ng repo was added.
  11252. .sp
  11253. Default: \fB/srv/salt/win/repo\-ng\fP
  11254. .sp
  11255. Location on the master where the \fI\%winrepo_remotes_ng\fP are checked
  11256. out for 2015.8.0 and later minions.
  11257. .INDENT 0.0
  11258. .INDENT 3.5
  11259. .sp
  11260. .nf
  11261. .ft C
  11262. winrepo_dir_ng: /srv/salt/win/repo\-ng
  11263. .ft P
  11264. .fi
  11265. .UNINDENT
  11266. .UNINDENT
  11267. .SS \fBwinrepo_cachefile\fP
  11268. .sp
  11269. Changed in version 2015.8.0: Renamed from \fBwin_repo_mastercachefile\fP to \fBwinrepo_cachefile\fP
  11270. .sp
  11271. \fBNOTE:\fP
  11272. .INDENT 0.0
  11273. .INDENT 3.5
  11274. 2015.8.0 and later minions do not use this setting since the cachefile
  11275. is now generated by the minion.
  11276. .UNINDENT
  11277. .UNINDENT
  11278. .sp
  11279. Default: \fBwinrepo.p\fP
  11280. .sp
  11281. Path relative to \fI\%winrepo_dir\fP where the winrepo cache should be
  11282. created.
  11283. .INDENT 0.0
  11284. .INDENT 3.5
  11285. .sp
  11286. .nf
  11287. .ft C
  11288. winrepo_cachefile: winrepo.p
  11289. .ft P
  11290. .fi
  11291. .UNINDENT
  11292. .UNINDENT
  11293. .SS \fBwinrepo_remotes\fP
  11294. .sp
  11295. Changed in version 2015.8.0: Renamed from \fBwin_gitrepos\fP to \fBwinrepo_remotes\fP\&.
  11296. .sp
  11297. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq]\fP
  11298. .sp
  11299. List of git repositories to checkout and include in the winrepo for
  11300. pre\-2015.8.0 minions. 2015.8.0 and later minions use
  11301. \fI\%winrepo_remotes_ng\fP instead.
  11302. .INDENT 0.0
  11303. .INDENT 3.5
  11304. .sp
  11305. .nf
  11306. .ft C
  11307. winrepo_remotes:
  11308. \- https://github.com/saltstack/salt\-winrepo.git
  11309. .ft P
  11310. .fi
  11311. .UNINDENT
  11312. .UNINDENT
  11313. .sp
  11314. To specify a specific revision of the repository, prepend a commit ID to the
  11315. URL of the repository:
  11316. .INDENT 0.0
  11317. .INDENT 3.5
  11318. .sp
  11319. .nf
  11320. .ft C
  11321. winrepo_remotes:
  11322. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo.git\(aq
  11323. .ft P
  11324. .fi
  11325. .UNINDENT
  11326. .UNINDENT
  11327. .sp
  11328. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  11329. ID is useful in that it allows one to revert back to a previous version in the
  11330. event that an error is introduced in the latest revision of the repo.
  11331. .SS \fBwinrepo_remotes_ng\fP
  11332. .sp
  11333. New in version 2015.8.0: A new ng repo was added.
  11334. .sp
  11335. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq]\fP
  11336. .sp
  11337. List of git repositories to checkout and include in the winrepo for
  11338. 2015.8.0 and later minions.
  11339. .INDENT 0.0
  11340. .INDENT 3.5
  11341. .sp
  11342. .nf
  11343. .ft C
  11344. winrepo_remotes_ng:
  11345. \- https://github.com/saltstack/salt\-winrepo\-ng.git
  11346. .ft P
  11347. .fi
  11348. .UNINDENT
  11349. .UNINDENT
  11350. .sp
  11351. To specify a specific revision of the repository, prepend a commit ID to the
  11352. URL of the repository:
  11353. .INDENT 0.0
  11354. .INDENT 3.5
  11355. .sp
  11356. .nf
  11357. .ft C
  11358. winrepo_remotes_ng:
  11359. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  11360. .ft P
  11361. .fi
  11362. .UNINDENT
  11363. .UNINDENT
  11364. .sp
  11365. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  11366. ID is useful in that it allows one to revert back to a previous version in the
  11367. event that an error is introduced in the latest revision of the repo.
  11368. .SS \fBwinrepo_branch\fP
  11369. .sp
  11370. New in version 2015.8.0.
  11371. .sp
  11372. Default: \fBmaster\fP
  11373. .sp
  11374. If the branch is omitted from a winrepo remote, then this branch will be
  11375. used instead. For example, in the configuration below, the first two remotes
  11376. would use the \fBwinrepo\fP branch/tag, while the third would use the \fBfoo\fP
  11377. branch/tag.
  11378. .INDENT 0.0
  11379. .INDENT 3.5
  11380. .sp
  11381. .nf
  11382. .ft C
  11383. winrepo_branch: winrepo
  11384. winrepo_remotes:
  11385. \- https://mygitserver/winrepo1.git
  11386. \- https://mygitserver/winrepo2.git:
  11387. \- foo https://mygitserver/winrepo3.git
  11388. .ft P
  11389. .fi
  11390. .UNINDENT
  11391. .UNINDENT
  11392. .SS \fBwinrepo_ssl_verify\fP
  11393. .sp
  11394. New in version 2015.8.0.
  11395. .sp
  11396. Changed in version 2016.11.0.
  11397. .sp
  11398. Default: \fBFalse\fP
  11399. .sp
  11400. Specifies whether or not to ignore SSL certificate errors when contacting the
  11401. remote repository. The \fBFalse\fP setting is useful if you\(aqre using a
  11402. git repo that uses a self\-signed certificate. However, keep in mind that
  11403. setting this to anything other \fBTrue\fP is a considered insecure, and using an
  11404. SSH\-based transport (if available) may be a better option.
  11405. .sp
  11406. In the 2016.11.0 release, the default config value changed from \fBFalse\fP to
  11407. \fBTrue\fP\&.
  11408. .INDENT 0.0
  11409. .INDENT 3.5
  11410. .sp
  11411. .nf
  11412. .ft C
  11413. winrepo_ssl_verify: True
  11414. .ft P
  11415. .fi
  11416. .UNINDENT
  11417. .UNINDENT
  11418. .SS Winrepo Authentication Options
  11419. .sp
  11420. These parameters only currently apply to the \fBpygit2\fP
  11421. \fI\%winrepo_provider\fP\&. Authentication works the same as it does in
  11422. gitfs, as outlined in the GitFS Walkthrough,
  11423. though the global configuration options are named differently to reflect that
  11424. they are for winrepo instead of gitfs.
  11425. .SS \fBwinrepo_user\fP
  11426. .sp
  11427. New in version 2015.8.0.
  11428. .sp
  11429. Default: \fB\(aq\(aq\fP
  11430. .sp
  11431. Along with \fI\%winrepo_password\fP, is used to authenticate to HTTPS
  11432. remotes.
  11433. .INDENT 0.0
  11434. .INDENT 3.5
  11435. .sp
  11436. .nf
  11437. .ft C
  11438. winrepo_user: git
  11439. .ft P
  11440. .fi
  11441. .UNINDENT
  11442. .UNINDENT
  11443. .SS \fBwinrepo_password\fP
  11444. .sp
  11445. New in version 2015.8.0.
  11446. .sp
  11447. Default: \fB\(aq\(aq\fP
  11448. .sp
  11449. Along with \fI\%winrepo_user\fP, is used to authenticate to HTTPS
  11450. remotes. This parameter is not required if the repository does not use
  11451. authentication.
  11452. .INDENT 0.0
  11453. .INDENT 3.5
  11454. .sp
  11455. .nf
  11456. .ft C
  11457. winrepo_password: mypassword
  11458. .ft P
  11459. .fi
  11460. .UNINDENT
  11461. .UNINDENT
  11462. .SS \fBwinrepo_insecure_auth\fP
  11463. .sp
  11464. New in version 2015.8.0.
  11465. .sp
  11466. Default: \fBFalse\fP
  11467. .sp
  11468. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  11469. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  11470. .INDENT 0.0
  11471. .INDENT 3.5
  11472. .sp
  11473. .nf
  11474. .ft C
  11475. winrepo_insecure_auth: True
  11476. .ft P
  11477. .fi
  11478. .UNINDENT
  11479. .UNINDENT
  11480. .SS \fBwinrepo_pubkey\fP
  11481. .sp
  11482. New in version 2015.8.0.
  11483. .sp
  11484. Default: \fB\(aq\(aq\fP
  11485. .sp
  11486. Along with \fI\%winrepo_privkey\fP (and optionally
  11487. \fI\%winrepo_passphrase\fP), is used to authenticate to SSH remotes.
  11488. .INDENT 0.0
  11489. .INDENT 3.5
  11490. .sp
  11491. .nf
  11492. .ft C
  11493. winrepo_pubkey: /path/to/key.pub
  11494. .ft P
  11495. .fi
  11496. .UNINDENT
  11497. .UNINDENT
  11498. .SS \fBwinrepo_privkey\fP
  11499. .sp
  11500. New in version 2015.8.0.
  11501. .sp
  11502. Default: \fB\(aq\(aq\fP
  11503. .sp
  11504. Along with \fI\%winrepo_pubkey\fP (and optionally
  11505. \fI\%winrepo_passphrase\fP), is used to authenticate to SSH remotes.
  11506. .INDENT 0.0
  11507. .INDENT 3.5
  11508. .sp
  11509. .nf
  11510. .ft C
  11511. winrepo_privkey: /path/to/key
  11512. .ft P
  11513. .fi
  11514. .UNINDENT
  11515. .UNINDENT
  11516. .SS \fBwinrepo_passphrase\fP
  11517. .sp
  11518. New in version 2015.8.0.
  11519. .sp
  11520. Default: \fB\(aq\(aq\fP
  11521. .sp
  11522. This parameter is optional, required only when the SSH key being used to
  11523. authenticate is protected by a passphrase.
  11524. .INDENT 0.0
  11525. .INDENT 3.5
  11526. .sp
  11527. .nf
  11528. .ft C
  11529. winrepo_passphrase: mypassphrase
  11530. .ft P
  11531. .fi
  11532. .UNINDENT
  11533. .UNINDENT
  11534. .SS \fBwinrepo_refspecs\fP
  11535. .sp
  11536. New in version 2017.7.0.
  11537. .sp
  11538. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  11539. .sp
  11540. When fetching from remote repositories, by default Salt will fetch branches and
  11541. tags. This parameter can be used to override the default and specify
  11542. alternate refspecs to be fetched. This parameter works similarly to its
  11543. GitFS counterpart, in that it can be
  11544. configured both globally and for individual remotes.
  11545. .INDENT 0.0
  11546. .INDENT 3.5
  11547. .sp
  11548. .nf
  11549. .ft C
  11550. winrepo_refspecs:
  11551. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  11552. \- \(aq+refs/tags/*:refs/tags/*\(aq
  11553. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  11554. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  11555. .ft P
  11556. .fi
  11557. .UNINDENT
  11558. .UNINDENT
  11559. .SS Configure Master on Windows
  11560. .sp
  11561. The master on Windows requires no additional configuration. You can modify the
  11562. master configuration by creating/editing the master config file located at
  11563. \fBc:\esalt\econf\emaster\fP\&. The same configuration options available on Linux are
  11564. available in Windows, as long as they apply. For example, SSH options wouldn\(aqt
  11565. apply in Windows. The main differences are the file paths. If you are familiar
  11566. with common salt paths, the following table may be useful:
  11567. .TS
  11568. center;
  11569. |l|l|l|.
  11570. _
  11571. T{
  11572. linux Paths
  11573. T} T{
  11574. T} T{
  11575. Windows Paths
  11576. T}
  11577. _
  11578. T{
  11579. \fB/etc/salt\fP
  11580. T} T{
  11581. \fB<\-\-\->\fP
  11582. T} T{
  11583. \fBc:\esalt\econf\fP
  11584. T}
  11585. _
  11586. T{
  11587. \fB/\fP
  11588. T} T{
  11589. \fB<\-\-\->\fP
  11590. T} T{
  11591. \fBc:\esalt\fP
  11592. T}
  11593. _
  11594. .TE
  11595. .sp
  11596. So, for example, the master config file in Linux is \fB/etc/salt/master\fP\&. In
  11597. Windows the master config file is \fBc:\esalt\econf\emaster\fP\&. The Linux path
  11598. \fB/etc/salt\fP becomes \fBc:\esalt\econf\fP in Windows.
  11599. .SS Common File Locations
  11600. .TS
  11601. center;
  11602. |l|l|.
  11603. _
  11604. T{
  11605. Linux Paths
  11606. T} T{
  11607. Windows Paths
  11608. T}
  11609. _
  11610. T{
  11611. \fBconf_file: /etc/salt/master\fP
  11612. T} T{
  11613. \fBconf_file: c:\esalt\econf\emaster\fP
  11614. T}
  11615. _
  11616. T{
  11617. \fBlog_file: /var/log/salt/master\fP
  11618. T} T{
  11619. \fBlog_file: c:\esalt\evar\elog\esalt\emaster\fP
  11620. T}
  11621. _
  11622. T{
  11623. \fBpidfile: /var/run/salt\-master.pid\fP
  11624. T} T{
  11625. \fBpidfile: c:\esalt\evar\erun\esalt\-master.pid\fP
  11626. T}
  11627. _
  11628. .TE
  11629. .SS Common Directories
  11630. .TS
  11631. center;
  11632. |l|l|.
  11633. _
  11634. T{
  11635. Linux Paths
  11636. T} T{
  11637. Windows Paths
  11638. T}
  11639. _
  11640. T{
  11641. \fBcachedir: /var/cache/salt/master\fP
  11642. T} T{
  11643. \fBcachedir: c:\esalt\evar\ecache\esalt\emaster\fP
  11644. T}
  11645. _
  11646. T{
  11647. \fBextension_modules: /var/cache/salt/master/extmods\fP
  11648. T} T{
  11649. \fBc:\esalt\evar\ecache\esalt\emaster\eextmods\fP
  11650. T}
  11651. _
  11652. T{
  11653. \fBpki_dir: /etc/salt/pki/master\fP
  11654. T} T{
  11655. \fBpki_dir: c:\esalt\econf\epki\emaster\fP
  11656. T}
  11657. _
  11658. T{
  11659. \fBroot_dir: /\fP
  11660. T} T{
  11661. \fBroot_dir: c:\esalt\fP
  11662. T}
  11663. _
  11664. T{
  11665. \fBsock_dir: /var/run/salt/master\fP
  11666. T} T{
  11667. \fBsock_dir: c:\esalt\evar\erun\esalt\emaster\fP
  11668. T}
  11669. _
  11670. .TE
  11671. .SS Roots
  11672. .sp
  11673. \fBfile_roots\fP
  11674. .TS
  11675. center;
  11676. |l|l|.
  11677. _
  11678. T{
  11679. Linux Paths
  11680. T} T{
  11681. Windows Paths
  11682. T}
  11683. _
  11684. T{
  11685. \fB/srv/salt\fP
  11686. T} T{
  11687. \fBc:\esalt\esrv\esalt\fP
  11688. T}
  11689. _
  11690. T{
  11691. \fB/srv/spm/salt\fP
  11692. T} T{
  11693. \fBc:\esalt\esrv\espm\esalt\fP
  11694. T}
  11695. _
  11696. .TE
  11697. .sp
  11698. \fBpillar_roots\fP
  11699. .TS
  11700. center;
  11701. |l|l|.
  11702. _
  11703. T{
  11704. Linux Paths
  11705. T} T{
  11706. Windows Paths
  11707. T}
  11708. _
  11709. T{
  11710. \fB/srv/pillar\fP
  11711. T} T{
  11712. \fBc:\esalt\esrv\epillar\fP
  11713. T}
  11714. _
  11715. T{
  11716. \fB/srv/spm/pillar\fP
  11717. T} T{
  11718. \fBc:\esalt\esrv\espm\epillar\fP
  11719. T}
  11720. _
  11721. .TE
  11722. .SS Win Repo Settings
  11723. .TS
  11724. center;
  11725. |l|l|.
  11726. _
  11727. T{
  11728. Linux Paths
  11729. T} T{
  11730. Windows Paths
  11731. T}
  11732. _
  11733. T{
  11734. \fBwinrepo_dir: /srv/salt/win/repo\fP
  11735. T} T{
  11736. \fBwinrepo_dir: c:\esalt\esrv\esalt\ewin\erepo\fP
  11737. T}
  11738. _
  11739. T{
  11740. \fBwinrepo_dir_ng: /srv/salt/win/repo\-ng\fP
  11741. T} T{
  11742. \fBwinrepo_dir_ng: c:\esalt\esrv\esalt\ewin\erepo\-ng\fP
  11743. T}
  11744. _
  11745. .TE
  11746. .SS Configuring the Salt Minion
  11747. .sp
  11748. The Salt system is amazingly simple and easy to configure. The two components
  11749. of the Salt system each have a respective configuration file. The
  11750. \fBsalt\-master\fP is configured via the master configuration file, and the
  11751. \fBsalt\-minion\fP is configured via the minion configuration file.
  11752. .sp
  11753. \fBSEE ALSO:\fP
  11754. .INDENT 0.0
  11755. .INDENT 3.5
  11756. example minion configuration file
  11757. .UNINDENT
  11758. .UNINDENT
  11759. .sp
  11760. The Salt Minion configuration is very simple. Typically, the only value that
  11761. needs to be set is the master value so the minion knows where to locate its master.
  11762. .sp
  11763. By default, the salt\-minion configuration will be in \fB/etc/salt/minion\fP\&.
  11764. A notable exception is FreeBSD, where the configuration will be in
  11765. \fB/usr/local/etc/salt/minion\fP\&.
  11766. .SS Minion Primary Configuration
  11767. .SS \fBmaster\fP
  11768. .sp
  11769. Default: \fBsalt\fP
  11770. .sp
  11771. The hostname or IP address of the master. See \fI\%ipv6\fP for IPv6
  11772. connections to the master.
  11773. .sp
  11774. Default: \fBsalt\fP
  11775. .INDENT 0.0
  11776. .INDENT 3.5
  11777. .sp
  11778. .nf
  11779. .ft C
  11780. master: salt
  11781. .ft P
  11782. .fi
  11783. .UNINDENT
  11784. .UNINDENT
  11785. .SS master:port Syntax
  11786. .sp
  11787. New in version 2015.8.0.
  11788. .sp
  11789. The \fBmaster\fP config option can also be set to use the master\(aqs IP in
  11790. conjunction with a port number by default.
  11791. .INDENT 0.0
  11792. .INDENT 3.5
  11793. .sp
  11794. .nf
  11795. .ft C
  11796. master: localhost:1234
  11797. .ft P
  11798. .fi
  11799. .UNINDENT
  11800. .UNINDENT
  11801. .sp
  11802. For IPv6 formatting with a port, remember to add brackets around the IP address
  11803. before adding the port and enclose the line in single quotes to make it a string:
  11804. .INDENT 0.0
  11805. .INDENT 3.5
  11806. .sp
  11807. .nf
  11808. .ft C
  11809. master: \(aq[2001:db8:85a3:8d3:1319:8a2e:370:7348]:1234\(aq
  11810. .ft P
  11811. .fi
  11812. .UNINDENT
  11813. .UNINDENT
  11814. .sp
  11815. \fBNOTE:\fP
  11816. .INDENT 0.0
  11817. .INDENT 3.5
  11818. If a port is specified in the \fBmaster\fP as well as \fI\%master_port\fP,
  11819. the \fBmaster_port\fP setting will be overridden by the \fBmaster\fP configuration.
  11820. .UNINDENT
  11821. .UNINDENT
  11822. .SS List of Masters Syntax
  11823. .sp
  11824. The option can also be set to a list of masters, enabling
  11825. multi\-master mode.
  11826. .INDENT 0.0
  11827. .INDENT 3.5
  11828. .sp
  11829. .nf
  11830. .ft C
  11831. master:
  11832. \- address1
  11833. \- address2
  11834. .ft P
  11835. .fi
  11836. .UNINDENT
  11837. .UNINDENT
  11838. .sp
  11839. Changed in version 2014.7.0: The master can be dynamically configured. The \fI\%master\fP value
  11840. can be set to an module function which will be executed and will assume
  11841. that the returning value is the ip or hostname of the desired master. If a
  11842. function is being specified, then the \fI\%master_type\fP option
  11843. must be set to \fBfunc\fP, to tell the minion that the value is a function to
  11844. be run and not a fully\-qualified domain name.
  11845. .INDENT 0.0
  11846. .INDENT 3.5
  11847. .sp
  11848. .nf
  11849. .ft C
  11850. master: module.function
  11851. master_type: func
  11852. .ft P
  11853. .fi
  11854. .UNINDENT
  11855. .UNINDENT
  11856. .sp
  11857. In addition, instead of using multi\-master mode, the minion can be
  11858. configured to use the list of master addresses as a failover list, trying
  11859. the first address, then the second, etc. until the minion successfully
  11860. connects. To enable this behavior, set \fI\%master_type\fP to
  11861. \fBfailover\fP:
  11862. .INDENT 0.0
  11863. .INDENT 3.5
  11864. .sp
  11865. .nf
  11866. .ft C
  11867. master:
  11868. \- address1
  11869. \- address2
  11870. master_type: failover
  11871. .ft P
  11872. .fi
  11873. .UNINDENT
  11874. .UNINDENT
  11875. .SS \fBipv6\fP
  11876. .sp
  11877. Default: \fBNone\fP
  11878. .sp
  11879. Whether the master should be connected over IPv6. By default salt minion
  11880. will try to automatically detect IPv6 connectivity to master.
  11881. .INDENT 0.0
  11882. .INDENT 3.5
  11883. .sp
  11884. .nf
  11885. .ft C
  11886. ipv6: True
  11887. .ft P
  11888. .fi
  11889. .UNINDENT
  11890. .UNINDENT
  11891. .SS \fBmaster_uri_format\fP
  11892. .sp
  11893. New in version 2015.8.0.
  11894. .sp
  11895. Specify the format in which the master address will be evaluated. Valid options
  11896. are \fBdefault\fP or \fBip_only\fP\&. If \fBip_only\fP is specified, then the master
  11897. address will not be split into IP and PORT, so be sure that only an IP (or domain
  11898. name) is set in the \fI\%master\fP configuration setting.
  11899. .INDENT 0.0
  11900. .INDENT 3.5
  11901. .sp
  11902. .nf
  11903. .ft C
  11904. master_uri_format: ip_only
  11905. .ft P
  11906. .fi
  11907. .UNINDENT
  11908. .UNINDENT
  11909. .SS \fBmaster_tops_first\fP
  11910. .sp
  11911. New in version 2018.3.0.
  11912. .sp
  11913. Default: \fBFalse\fP
  11914. .sp
  11915. SLS targets defined using the Master Tops system
  11916. are normally executed \fIafter\fP any matches defined in the Top File\&. Set this option to \fBTrue\fP to have the minion execute the
  11917. Master Tops states first.
  11918. .INDENT 0.0
  11919. .INDENT 3.5
  11920. .sp
  11921. .nf
  11922. .ft C
  11923. master_tops_first: True
  11924. .ft P
  11925. .fi
  11926. .UNINDENT
  11927. .UNINDENT
  11928. .SS \fBmaster_type\fP
  11929. .sp
  11930. New in version 2014.7.0.
  11931. .sp
  11932. Default: \fBstr\fP
  11933. .sp
  11934. The type of the \fI\%master\fP variable. Can be \fBstr\fP, \fBfailover\fP,
  11935. \fBfunc\fP or \fBdisable\fP\&.
  11936. .INDENT 0.0
  11937. .INDENT 3.5
  11938. .sp
  11939. .nf
  11940. .ft C
  11941. master_type: failover
  11942. .ft P
  11943. .fi
  11944. .UNINDENT
  11945. .UNINDENT
  11946. .sp
  11947. If this option is set to \fBfailover\fP, \fI\%master\fP must be a list of
  11948. master addresses. The minion will then try each master in the order specified
  11949. in the list until it successfully connects. \fI\%master_alive_interval\fP
  11950. must also be set, this determines how often the minion will verify the presence
  11951. of the master.
  11952. .INDENT 0.0
  11953. .INDENT 3.5
  11954. .sp
  11955. .nf
  11956. .ft C
  11957. master_type: func
  11958. .ft P
  11959. .fi
  11960. .UNINDENT
  11961. .UNINDENT
  11962. .sp
  11963. If the master needs to be dynamically assigned by executing a function instead
  11964. of reading in the static master value, set this to \fBfunc\fP\&. This can be used
  11965. to manage the minion\(aqs master setting from an execution module. By simply
  11966. changing the algorithm in the module to return a new master ip/fqdn, restart
  11967. the minion and it will connect to the new master.
  11968. .sp
  11969. As of version 2016.11.0 this option can be set to \fBdisable\fP and the minion
  11970. will never attempt to talk to the master. This is useful for running a
  11971. masterless minion daemon.
  11972. .INDENT 0.0
  11973. .INDENT 3.5
  11974. .sp
  11975. .nf
  11976. .ft C
  11977. master_type: disable
  11978. .ft P
  11979. .fi
  11980. .UNINDENT
  11981. .UNINDENT
  11982. .SS \fBmax_event_size\fP
  11983. .sp
  11984. New in version 2014.7.0.
  11985. .sp
  11986. Default: \fB1048576\fP
  11987. .sp
  11988. Passing very large events can cause the minion to consume large amounts of
  11989. memory. This value tunes the maximum size of a message allowed onto the
  11990. minion event bus. The value is expressed in bytes.
  11991. .INDENT 0.0
  11992. .INDENT 3.5
  11993. .sp
  11994. .nf
  11995. .ft C
  11996. max_event_size: 1048576
  11997. .ft P
  11998. .fi
  11999. .UNINDENT
  12000. .UNINDENT
  12001. .SS \fBenable_legacy_startup_events\fP
  12002. .sp
  12003. New in version 2019.2.0.
  12004. .sp
  12005. Default: \fBTrue\fP
  12006. .sp
  12007. When a minion starts up it sends a notification on the event bus with a tag
  12008. that looks like this: \fBsalt/minion/<minion_id>/start\fP\&. For historical reasons
  12009. the minion also sends a similar event with an event tag like this:
  12010. \fBminion_start\fP\&. This duplication can cause a lot of clutter on the event bus
  12011. when there are many minions. Set \fBenable_legacy_startup_events: False\fP in the
  12012. minion config to ensure only the \fBsalt/minion/<minion_id>/start\fP events are
  12013. sent. Beginning with the \fB3001\fP Salt release this option will default to
  12014. \fBFalse\fP\&.
  12015. .INDENT 0.0
  12016. .INDENT 3.5
  12017. .sp
  12018. .nf
  12019. .ft C
  12020. enable_legacy_startup_events: True
  12021. .ft P
  12022. .fi
  12023. .UNINDENT
  12024. .UNINDENT
  12025. .SS \fBmaster_failback\fP
  12026. .sp
  12027. New in version 2016.3.0.
  12028. .sp
  12029. Default: \fBFalse\fP
  12030. .sp
  12031. If the minion is in multi\-master mode and the :conf_minion\(gamaster_type\(ga
  12032. configuration option is set to \fBfailover\fP, this setting can be set to \fBTrue\fP
  12033. to force the minion to fail back to the first master in the list if the first
  12034. master is back online.
  12035. .INDENT 0.0
  12036. .INDENT 3.5
  12037. .sp
  12038. .nf
  12039. .ft C
  12040. master_failback: False
  12041. .ft P
  12042. .fi
  12043. .UNINDENT
  12044. .UNINDENT
  12045. .SS \fBmaster_failback_interval\fP
  12046. .sp
  12047. New in version 2016.3.0.
  12048. .sp
  12049. Default: \fB0\fP
  12050. .sp
  12051. If the minion is in multi\-master mode, the :conf_minion\(gamaster_type\(ga configuration
  12052. is set to \fBfailover\fP, and the \fBmaster_failback\fP option is enabled, the master
  12053. failback interval can be set to ping the top master with this interval, in seconds.
  12054. .INDENT 0.0
  12055. .INDENT 3.5
  12056. .sp
  12057. .nf
  12058. .ft C
  12059. master_failback_interval: 0
  12060. .ft P
  12061. .fi
  12062. .UNINDENT
  12063. .UNINDENT
  12064. .SS \fBmaster_alive_interval\fP
  12065. .sp
  12066. Default: \fB0\fP
  12067. .sp
  12068. Configures how often, in seconds, the minion will verify that the current
  12069. master is alive and responding. The minion will try to establish a connection
  12070. to the next master in the list if it finds the existing one is dead.
  12071. .INDENT 0.0
  12072. .INDENT 3.5
  12073. .sp
  12074. .nf
  12075. .ft C
  12076. master_alive_interval: 30
  12077. .ft P
  12078. .fi
  12079. .UNINDENT
  12080. .UNINDENT
  12081. .SS \fBmaster_shuffle\fP
  12082. .sp
  12083. New in version 2014.7.0.
  12084. .sp
  12085. Deprecated since version 2019.2.0.
  12086. .sp
  12087. Default: \fBFalse\fP
  12088. .sp
  12089. \fBWARNING:\fP
  12090. .INDENT 0.0
  12091. .INDENT 3.5
  12092. This option has been deprecated in Salt \fB2019.2.0\fP\&. Please use
  12093. \fI\%random_master\fP instead.
  12094. .UNINDENT
  12095. .UNINDENT
  12096. .INDENT 0.0
  12097. .INDENT 3.5
  12098. .sp
  12099. .nf
  12100. .ft C
  12101. master_shuffle: True
  12102. .ft P
  12103. .fi
  12104. .UNINDENT
  12105. .UNINDENT
  12106. .SS \fBrandom_master\fP
  12107. .sp
  12108. New in version 2014.7.0.
  12109. .sp
  12110. Changed in version 2019.2.0: The \fI\%master_failback\fP option can be used in conjunction with
  12111. \fBrandom_master\fP to force the minion to fail back to the first master in the
  12112. list if the first master is back online. Note that \fI\%master_type\fP
  12113. must be set to \fBfailover\fP in order for the \fBmaster_failback\fP setting to
  12114. work.
  12115. .sp
  12116. Default: \fBFalse\fP
  12117. .sp
  12118. If \fI\%master\fP is a list of addresses, shuffle them before trying to
  12119. connect to distribute the minions over all available masters. This uses Python\(aqs
  12120. \fBrandom.shuffle\fP method.
  12121. .sp
  12122. If multiple masters are specified in the \(aqmaster\(aq setting as a list, the default
  12123. behavior is to always try to connect to them in the order they are listed. If
  12124. \fBrandom_master\fP is set to True, the order will be randomized instead upon Minion
  12125. startup. This can be helpful in distributing the load of many minions executing
  12126. \fBsalt\-call\fP requests, for example, from a cron job. If only one master is listed,
  12127. this setting is ignored and a warning is logged.
  12128. .INDENT 0.0
  12129. .INDENT 3.5
  12130. .sp
  12131. .nf
  12132. .ft C
  12133. random_master: True
  12134. .ft P
  12135. .fi
  12136. .UNINDENT
  12137. .UNINDENT
  12138. .sp
  12139. \fBNOTE:\fP
  12140. .INDENT 0.0
  12141. .INDENT 3.5
  12142. When the \fBfailover\fP, \fBmaster_failback\fP, and \fBrandom_master\fP options are
  12143. used together, only the "secondary masters" will be shuffled. The first master
  12144. in the list is ignored in the \fBrandom.shuffle\fP
  12145. call. See \fI\%master_failback\fP for more information.
  12146. .UNINDENT
  12147. .UNINDENT
  12148. .SS \fBretry_dns\fP
  12149. .sp
  12150. Default: \fB30\fP
  12151. .sp
  12152. Set the number of seconds to wait before attempting to resolve
  12153. the master hostname if name resolution fails. Defaults to 30 seconds.
  12154. Set to zero if the minion should shutdown and not retry.
  12155. .INDENT 0.0
  12156. .INDENT 3.5
  12157. .sp
  12158. .nf
  12159. .ft C
  12160. retry_dns: 30
  12161. .ft P
  12162. .fi
  12163. .UNINDENT
  12164. .UNINDENT
  12165. .SS \fBretry_dns_count\fP
  12166. .sp
  12167. New in version 2018.3.4.
  12168. .sp
  12169. Default: \fBNone\fP
  12170. .sp
  12171. Set the number of attempts to perform when resolving
  12172. the master hostname if name resolution fails.
  12173. By default the minion will retry indefinitely.
  12174. .INDENT 0.0
  12175. .INDENT 3.5
  12176. .sp
  12177. .nf
  12178. .ft C
  12179. retry_dns_count: 3
  12180. .ft P
  12181. .fi
  12182. .UNINDENT
  12183. .UNINDENT
  12184. .SS \fBmaster_port\fP
  12185. .sp
  12186. Default: \fB4506\fP
  12187. .sp
  12188. The port of the master ret server, this needs to coincide with the ret_port
  12189. option on the Salt master.
  12190. .INDENT 0.0
  12191. .INDENT 3.5
  12192. .sp
  12193. .nf
  12194. .ft C
  12195. master_port: 4506
  12196. .ft P
  12197. .fi
  12198. .UNINDENT
  12199. .UNINDENT
  12200. .SS \fBpublish_port\fP
  12201. .sp
  12202. Default: \fB4505\fP
  12203. .sp
  12204. The port of the master publish server, this needs to coincide with the publish_port
  12205. option on the Salt master.
  12206. .INDENT 0.0
  12207. .INDENT 3.5
  12208. .sp
  12209. .nf
  12210. .ft C
  12211. publish_port: 4505
  12212. .ft P
  12213. .fi
  12214. .UNINDENT
  12215. .UNINDENT
  12216. .SS \fBsource_interface_name\fP
  12217. .sp
  12218. New in version 2018.3.0.
  12219. .sp
  12220. The name of the interface to use when establishing the connection to the Master.
  12221. .sp
  12222. \fBNOTE:\fP
  12223. .INDENT 0.0
  12224. .INDENT 3.5
  12225. If multiple IP addresses are configured on the named interface,
  12226. the first one will be selected. In that case, for a better selection,
  12227. consider using the \fI\%source_address\fP option.
  12228. .UNINDENT
  12229. .UNINDENT
  12230. .sp
  12231. \fBNOTE:\fP
  12232. .INDENT 0.0
  12233. .INDENT 3.5
  12234. To use an IPv6 address from the named interface, make sure the option
  12235. \fI\%ipv6\fP is enabled, i.e., \fBipv6: true\fP\&.
  12236. .UNINDENT
  12237. .UNINDENT
  12238. .sp
  12239. \fBNOTE:\fP
  12240. .INDENT 0.0
  12241. .INDENT 3.5
  12242. If the interface is down, it will avoid using it, and the Minion
  12243. will bind to \fB0.0.0.0\fP (all interfaces).
  12244. .UNINDENT
  12245. .UNINDENT
  12246. .sp
  12247. \fBWARNING:\fP
  12248. .INDENT 0.0
  12249. .INDENT 3.5
  12250. This option requires modern version of the underlying libraries used by
  12251. the selected transport:
  12252. .INDENT 0.0
  12253. .IP \(bu 2
  12254. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12255. .IP \(bu 2
  12256. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12257. .UNINDENT
  12258. .UNINDENT
  12259. .UNINDENT
  12260. .sp
  12261. Configuration example:
  12262. .INDENT 0.0
  12263. .INDENT 3.5
  12264. .sp
  12265. .nf
  12266. .ft C
  12267. source_interface_name: bond0.1234
  12268. .ft P
  12269. .fi
  12270. .UNINDENT
  12271. .UNINDENT
  12272. .SS \fBsource_address\fP
  12273. .sp
  12274. New in version 2018.3.0.
  12275. .sp
  12276. The source IP address or the domain name to be used when connecting the Minion
  12277. to the Master.
  12278. See \fI\%ipv6\fP for IPv6 connections to the Master.
  12279. .sp
  12280. \fBWARNING:\fP
  12281. .INDENT 0.0
  12282. .INDENT 3.5
  12283. This option requires modern version of the underlying libraries used by
  12284. the selected transport:
  12285. .INDENT 0.0
  12286. .IP \(bu 2
  12287. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12288. .IP \(bu 2
  12289. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12290. .UNINDENT
  12291. .UNINDENT
  12292. .UNINDENT
  12293. .sp
  12294. Configuration example:
  12295. .INDENT 0.0
  12296. .INDENT 3.5
  12297. .sp
  12298. .nf
  12299. .ft C
  12300. source_address: if\-bond0\-1234.sjc.us\-west.internal
  12301. .ft P
  12302. .fi
  12303. .UNINDENT
  12304. .UNINDENT
  12305. .SS \fBsource_ret_port\fP
  12306. .sp
  12307. New in version 2018.3.0.
  12308. .sp
  12309. The source port to be used when connecting the Minion to the Master ret server.
  12310. .sp
  12311. \fBWARNING:\fP
  12312. .INDENT 0.0
  12313. .INDENT 3.5
  12314. This option requires modern version of the underlying libraries used by
  12315. the selected transport:
  12316. .INDENT 0.0
  12317. .IP \(bu 2
  12318. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12319. .IP \(bu 2
  12320. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12321. .UNINDENT
  12322. .UNINDENT
  12323. .UNINDENT
  12324. .sp
  12325. Configuration example:
  12326. .INDENT 0.0
  12327. .INDENT 3.5
  12328. .sp
  12329. .nf
  12330. .ft C
  12331. source_ret_port: 49017
  12332. .ft P
  12333. .fi
  12334. .UNINDENT
  12335. .UNINDENT
  12336. .SS \fBsource_publish_port\fP
  12337. .sp
  12338. New in version 2018.3.0.
  12339. .sp
  12340. The source port to be used when connecting the Minion to the Master publish
  12341. server.
  12342. .sp
  12343. \fBWARNING:\fP
  12344. .INDENT 0.0
  12345. .INDENT 3.5
  12346. This option requires modern version of the underlying libraries used by
  12347. the selected transport:
  12348. .INDENT 0.0
  12349. .IP \(bu 2
  12350. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12351. .IP \(bu 2
  12352. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12353. .UNINDENT
  12354. .UNINDENT
  12355. .UNINDENT
  12356. .sp
  12357. Configuration example:
  12358. .INDENT 0.0
  12359. .INDENT 3.5
  12360. .sp
  12361. .nf
  12362. .ft C
  12363. source_publish_port: 49018
  12364. .ft P
  12365. .fi
  12366. .UNINDENT
  12367. .UNINDENT
  12368. .SS \fBuser\fP
  12369. .sp
  12370. Default: \fBroot\fP
  12371. .sp
  12372. The user to run the Salt processes
  12373. .INDENT 0.0
  12374. .INDENT 3.5
  12375. .sp
  12376. .nf
  12377. .ft C
  12378. user: root
  12379. .ft P
  12380. .fi
  12381. .UNINDENT
  12382. .UNINDENT
  12383. .SS \fBsudo_user\fP
  12384. .sp
  12385. Default: \fB\(aq\(aq\fP
  12386. .sp
  12387. The user to run salt remote execution commands as via sudo. If this option is
  12388. enabled then sudo will be used to change the active user executing the remote
  12389. command. If enabled the user will need to be allowed access via the sudoers file
  12390. for the user that the salt minion is configured to run as. The most common
  12391. option would be to use the root user. If this option is set the \fBuser\fP option
  12392. should also be set to a non\-root user. If migrating from a root minion to a non
  12393. root minion the minion cache should be cleared and the minion pki directory will
  12394. need to be changed to the ownership of the new user.
  12395. .INDENT 0.0
  12396. .INDENT 3.5
  12397. .sp
  12398. .nf
  12399. .ft C
  12400. sudo_user: root
  12401. .ft P
  12402. .fi
  12403. .UNINDENT
  12404. .UNINDENT
  12405. .SS \fBpidfile\fP
  12406. .sp
  12407. Default: \fB/var/run/salt\-minion.pid\fP
  12408. .sp
  12409. The location of the daemon\(aqs process ID file
  12410. .INDENT 0.0
  12411. .INDENT 3.5
  12412. .sp
  12413. .nf
  12414. .ft C
  12415. pidfile: /var/run/salt\-minion.pid
  12416. .ft P
  12417. .fi
  12418. .UNINDENT
  12419. .UNINDENT
  12420. .SS \fBroot_dir\fP
  12421. .sp
  12422. Default: \fB/\fP
  12423. .sp
  12424. This directory is prepended to the following options: \fI\%pki_dir\fP,
  12425. \fI\%cachedir\fP, \fI\%log_file\fP, \fI\%sock_dir\fP, and
  12426. \fBpidfile\fP\&.
  12427. .INDENT 0.0
  12428. .INDENT 3.5
  12429. .sp
  12430. .nf
  12431. .ft C
  12432. root_dir: /
  12433. .ft P
  12434. .fi
  12435. .UNINDENT
  12436. .UNINDENT
  12437. .SS \fBconf_file\fP
  12438. .sp
  12439. Default: \fB/etc/salt/minion\fP
  12440. .sp
  12441. The path to the minion\(aqs configuration file.
  12442. .INDENT 0.0
  12443. .INDENT 3.5
  12444. .sp
  12445. .nf
  12446. .ft C
  12447. conf_file: /etc/salt/minion
  12448. .ft P
  12449. .fi
  12450. .UNINDENT
  12451. .UNINDENT
  12452. .SS \fBpki_dir\fP
  12453. .sp
  12454. Default: \fB/etc/salt/pki/minion\fP
  12455. .sp
  12456. The directory used to store the minion\(aqs public and private keys.
  12457. .INDENT 0.0
  12458. .INDENT 3.5
  12459. .sp
  12460. .nf
  12461. .ft C
  12462. pki_dir: /etc/salt/pki/minion
  12463. .ft P
  12464. .fi
  12465. .UNINDENT
  12466. .UNINDENT
  12467. .SS \fBid\fP
  12468. .sp
  12469. Default: the system\(aqs hostname
  12470. .sp
  12471. \fBSEE ALSO:\fP
  12472. .INDENT 0.0
  12473. .INDENT 3.5
  12474. Salt Walkthrough
  12475. .sp
  12476. The \fBSetting up a Salt Minion\fP section contains detailed
  12477. information on how the hostname is determined.
  12478. .UNINDENT
  12479. .UNINDENT
  12480. .sp
  12481. Explicitly declare the id for this minion to use. Since Salt uses detached ids
  12482. it is possible to run multiple minions on the same machine but with different
  12483. ids.
  12484. .INDENT 0.0
  12485. .INDENT 3.5
  12486. .sp
  12487. .nf
  12488. .ft C
  12489. id: foo.bar.com
  12490. .ft P
  12491. .fi
  12492. .UNINDENT
  12493. .UNINDENT
  12494. .SS \fBminion_id_caching\fP
  12495. .sp
  12496. New in version 0.17.2.
  12497. .sp
  12498. Default: \fBTrue\fP
  12499. .sp
  12500. Caches the minion id to a file when the minion\(aqs \fI\%id\fP is not
  12501. statically defined in the minion config. This setting prevents potential
  12502. problems when automatic minion id resolution changes, which can cause the
  12503. minion to lose connection with the master. To turn off minion id caching,
  12504. set this config to \fBFalse\fP\&.
  12505. .sp
  12506. For more information, please see \fI\%Issue #7558\fP and \fI\%Pull Request #8488\fP\&.
  12507. .INDENT 0.0
  12508. .INDENT 3.5
  12509. .sp
  12510. .nf
  12511. .ft C
  12512. minion_id_caching: True
  12513. .ft P
  12514. .fi
  12515. .UNINDENT
  12516. .UNINDENT
  12517. .SS \fBappend_domain\fP
  12518. .sp
  12519. Default: \fBNone\fP
  12520. .sp
  12521. Append a domain to a hostname in the event that it does not exist. This is
  12522. useful for systems where \fBsocket.getfqdn()\fP does not actually result in a
  12523. FQDN (for instance, Solaris).
  12524. .INDENT 0.0
  12525. .INDENT 3.5
  12526. .sp
  12527. .nf
  12528. .ft C
  12529. append_domain: foo.org
  12530. .ft P
  12531. .fi
  12532. .UNINDENT
  12533. .UNINDENT
  12534. .SS \fBminion_id_remove_domain\fP
  12535. .sp
  12536. New in version 3000.
  12537. .sp
  12538. Default: \fBFalse\fP
  12539. .sp
  12540. Remove a domain when the minion id is generated as a fully qualified domain
  12541. name (either by the user provided \fBid_function\fP, or by Salt). This is useful
  12542. when the minions shall be named like hostnames. Can be a single domain (to
  12543. prevent name clashes), or True, to remove all domains.
  12544. .INDENT 0.0
  12545. .TP
  12546. .B Examples:
  12547. .INDENT 7.0
  12548. .IP \(bu 2
  12549. minion_id_remove_domain = foo.org
  12550. \- FQDN = king_bob.foo.org \-\-> minion_id = king_bob
  12551. \- FQDN = king_bob.bar.org \-\-> minion_id = king_bob.bar.org
  12552. .IP \(bu 2
  12553. minion_id_remove_domain = True
  12554. \- FQDN = king_bob.foo.org \-\-> minion_id = king_bob
  12555. \- FQDN = king_bob.bar.org \-\-> minion_id = king_bob
  12556. .UNINDENT
  12557. .UNINDENT
  12558. .sp
  12559. For more information, please see \fI\%issue #49212\fP and \fI\%PR #49378\fP\&.
  12560. .INDENT 0.0
  12561. .INDENT 3.5
  12562. .sp
  12563. .nf
  12564. .ft C
  12565. minion_id_remove_domain: foo.org
  12566. .ft P
  12567. .fi
  12568. .UNINDENT
  12569. .UNINDENT
  12570. .SS \fBminion_id_lowercase\fP
  12571. .sp
  12572. Default: \fBFalse\fP
  12573. .sp
  12574. Convert minion id to lowercase when it is being generated. Helpful when some hosts
  12575. get the minion id in uppercase. Cached ids will remain the same and not converted.
  12576. .INDENT 0.0
  12577. .INDENT 3.5
  12578. .sp
  12579. .nf
  12580. .ft C
  12581. minion_id_lowercase: True
  12582. .ft P
  12583. .fi
  12584. .UNINDENT
  12585. .UNINDENT
  12586. .SS \fBcachedir\fP
  12587. .sp
  12588. Default: \fB/var/cache/salt/minion\fP
  12589. .sp
  12590. The location for minion cache data.
  12591. .sp
  12592. This directory may contain sensitive data and should be protected accordingly.
  12593. .INDENT 0.0
  12594. .INDENT 3.5
  12595. .sp
  12596. .nf
  12597. .ft C
  12598. cachedir: /var/cache/salt/minion
  12599. .ft P
  12600. .fi
  12601. .UNINDENT
  12602. .UNINDENT
  12603. .SS \fBcolor_theme\fP
  12604. .sp
  12605. Default: \fB""\fP
  12606. .sp
  12607. Specifies a path to the color theme to use for colored command line output.
  12608. .INDENT 0.0
  12609. .INDENT 3.5
  12610. .sp
  12611. .nf
  12612. .ft C
  12613. color_theme: /etc/salt/color_theme
  12614. .ft P
  12615. .fi
  12616. .UNINDENT
  12617. .UNINDENT
  12618. .SS \fBappend_minionid_config_dirs\fP
  12619. .sp
  12620. Default: \fB[]\fP (the empty list) for regular minions, \fB[\(aqcachedir\(aq]\fP for proxy minions.
  12621. .sp
  12622. Append minion_id to these configuration directories. Helps with multiple proxies
  12623. and minions running on the same machine. Allowed elements in the list:
  12624. \fBpki_dir\fP, \fBcachedir\fP, \fBextension_modules\fP\&.
  12625. Normally not needed unless running several proxies and/or minions on the same machine.
  12626. .INDENT 0.0
  12627. .INDENT 3.5
  12628. .sp
  12629. .nf
  12630. .ft C
  12631. append_minionid_config_dirs:
  12632. \- pki_dir
  12633. \- cachedir
  12634. .ft P
  12635. .fi
  12636. .UNINDENT
  12637. .UNINDENT
  12638. .SS \fBverify_env\fP
  12639. .sp
  12640. Default: \fBTrue\fP
  12641. .sp
  12642. Verify and set permissions on configuration directories at startup.
  12643. .INDENT 0.0
  12644. .INDENT 3.5
  12645. .sp
  12646. .nf
  12647. .ft C
  12648. verify_env: True
  12649. .ft P
  12650. .fi
  12651. .UNINDENT
  12652. .UNINDENT
  12653. .sp
  12654. \fBNOTE:\fP
  12655. .INDENT 0.0
  12656. .INDENT 3.5
  12657. When set to \fBTrue\fP the verify_env option requires WRITE access to the
  12658. configuration directory (/etc/salt/). In certain situations such as
  12659. mounting /etc/salt/ as read\-only for templating this will create a stack
  12660. trace when \fBstate.apply\fP is called.
  12661. .UNINDENT
  12662. .UNINDENT
  12663. .SS \fBcache_jobs\fP
  12664. .sp
  12665. Default: \fBFalse\fP
  12666. .sp
  12667. The minion can locally cache the return data from jobs sent to it, this can be
  12668. a good way to keep track of the minion side of the jobs the minion has
  12669. executed. By default this feature is disabled, to enable set cache_jobs to
  12670. \fBTrue\fP\&.
  12671. .INDENT 0.0
  12672. .INDENT 3.5
  12673. .sp
  12674. .nf
  12675. .ft C
  12676. cache_jobs: False
  12677. .ft P
  12678. .fi
  12679. .UNINDENT
  12680. .UNINDENT
  12681. .SS \fBgrains\fP
  12682. .sp
  12683. Default: (empty)
  12684. .sp
  12685. \fBSEE ALSO:\fP
  12686. .INDENT 0.0
  12687. .INDENT 3.5
  12688. static\-custom\-grains
  12689. .UNINDENT
  12690. .UNINDENT
  12691. .sp
  12692. Statically assigns grains to the minion.
  12693. .INDENT 0.0
  12694. .INDENT 3.5
  12695. .sp
  12696. .nf
  12697. .ft C
  12698. grains:
  12699. roles:
  12700. \- webserver
  12701. \- memcache
  12702. deployment: datacenter4
  12703. cabinet: 13
  12704. cab_u: 14\-15
  12705. .ft P
  12706. .fi
  12707. .UNINDENT
  12708. .UNINDENT
  12709. .SS \fBgrains_blacklist\fP
  12710. .sp
  12711. Default: \fB[]\fP
  12712. .sp
  12713. Each grains key will be compared against each of the expressions in this list.
  12714. Any keys which match will be filtered from the grains. Exact matches, glob
  12715. matches, and regular expressions are supported.
  12716. .sp
  12717. \fBNOTE:\fP
  12718. .INDENT 0.0
  12719. .INDENT 3.5
  12720. Some states and execution modules depend on grains. Filtering may cause
  12721. them to be unavailable or run unreliably.
  12722. .UNINDENT
  12723. .UNINDENT
  12724. .sp
  12725. New in version 3000.
  12726. .INDENT 0.0
  12727. .INDENT 3.5
  12728. .sp
  12729. .nf
  12730. .ft C
  12731. grains_blacklist:
  12732. \- cpu_flags
  12733. \- zmq*
  12734. \- ipv[46]
  12735. .ft P
  12736. .fi
  12737. .UNINDENT
  12738. .UNINDENT
  12739. .SS \fBgrains_cache\fP
  12740. .sp
  12741. Default: \fBFalse\fP
  12742. .sp
  12743. The minion can locally cache grain data instead of refreshing the data
  12744. each time the grain is referenced. By default this feature is disabled,
  12745. to enable set \fBgrains_cache\fP to \fBTrue\fP\&.
  12746. .INDENT 0.0
  12747. .INDENT 3.5
  12748. .sp
  12749. .nf
  12750. .ft C
  12751. grains_cache: False
  12752. .ft P
  12753. .fi
  12754. .UNINDENT
  12755. .UNINDENT
  12756. .SS \fBgrains_cache_expiration\fP
  12757. .sp
  12758. Default: \fB300\fP
  12759. .sp
  12760. Grains cache expiration, in seconds. If the cache file is older than this number
  12761. of seconds then the grains cache will be dumped and fully re\-populated with
  12762. fresh data. Defaults to 5 minutes. Will have no effect if
  12763. \fI\%grains_cache\fP is not enabled.
  12764. .INDENT 0.0
  12765. .INDENT 3.5
  12766. .sp
  12767. .nf
  12768. .ft C
  12769. grains_cache_expiration: 300
  12770. .ft P
  12771. .fi
  12772. .UNINDENT
  12773. .UNINDENT
  12774. .SS \fBgrains_deep_merge\fP
  12775. .sp
  12776. New in version 2016.3.0.
  12777. .sp
  12778. Default: \fBFalse\fP
  12779. .sp
  12780. The grains can be merged, instead of overridden, using this option.
  12781. This allows custom grains to defined different subvalues of a dictionary
  12782. grain. By default this feature is disabled, to enable set grains_deep_merge
  12783. to \fBTrue\fP\&.
  12784. .INDENT 0.0
  12785. .INDENT 3.5
  12786. .sp
  12787. .nf
  12788. .ft C
  12789. grains_deep_merge: False
  12790. .ft P
  12791. .fi
  12792. .UNINDENT
  12793. .UNINDENT
  12794. .sp
  12795. For example, with these custom grains functions:
  12796. .INDENT 0.0
  12797. .INDENT 3.5
  12798. .sp
  12799. .nf
  12800. .ft C
  12801. def custom1_k1():
  12802. return {"custom1": {"k1": "v1"}}
  12803. def custom1_k2():
  12804. return {"custom1": {"k2": "v2"}}
  12805. .ft P
  12806. .fi
  12807. .UNINDENT
  12808. .UNINDENT
  12809. .sp
  12810. Without \fBgrains_deep_merge\fP, the result would be:
  12811. .INDENT 0.0
  12812. .INDENT 3.5
  12813. .sp
  12814. .nf
  12815. .ft C
  12816. custom1:
  12817. k1: v1
  12818. .ft P
  12819. .fi
  12820. .UNINDENT
  12821. .UNINDENT
  12822. .sp
  12823. With \fBgrains_deep_merge\fP, the result will be:
  12824. .INDENT 0.0
  12825. .INDENT 3.5
  12826. .sp
  12827. .nf
  12828. .ft C
  12829. custom1:
  12830. k1: v1
  12831. k2: v2
  12832. .ft P
  12833. .fi
  12834. .UNINDENT
  12835. .UNINDENT
  12836. .SS \fBgrains_refresh_every\fP
  12837. .sp
  12838. Default: \fB0\fP
  12839. .sp
  12840. The \fBgrains_refresh_every\fP setting allows for a minion to periodically
  12841. check its grains to see if they have changed and, if so, to inform the master
  12842. of the new grains. This operation is moderately expensive, therefore care
  12843. should be taken not to set this value too low.
  12844. .sp
  12845. Note: This value is expressed in minutes.
  12846. .sp
  12847. A value of 10 minutes is a reasonable default.
  12848. .INDENT 0.0
  12849. .INDENT 3.5
  12850. .sp
  12851. .nf
  12852. .ft C
  12853. grains_refresh_every: 0
  12854. .ft P
  12855. .fi
  12856. .UNINDENT
  12857. .UNINDENT
  12858. .SS \fBmetadata_server_grains\fP
  12859. .sp
  12860. New in version 2017.7.0.
  12861. .sp
  12862. Default: \fBFalse\fP
  12863. .sp
  12864. Set this option to enable gathering of cloud metadata from
  12865. \fBhttp://169.254.169.254/latest\fP for use in grains (see \fBhere\fP for more information).
  12866. .INDENT 0.0
  12867. .INDENT 3.5
  12868. .sp
  12869. .nf
  12870. .ft C
  12871. metadata_server_grains: True
  12872. .ft P
  12873. .fi
  12874. .UNINDENT
  12875. .UNINDENT
  12876. .SS \fBfibre_channel_grains\fP
  12877. .sp
  12878. Default: \fBFalse\fP
  12879. .sp
  12880. The \fBfibre_channel_grains\fP setting will enable the \fBfc_wwn\fP grain for
  12881. Fibre Channel WWN\(aqs on the minion. Since this grain is expensive, it is
  12882. disabled by default.
  12883. .INDENT 0.0
  12884. .INDENT 3.5
  12885. .sp
  12886. .nf
  12887. .ft C
  12888. fibre_channel_grains: True
  12889. .ft P
  12890. .fi
  12891. .UNINDENT
  12892. .UNINDENT
  12893. .SS \fBiscsi_grains\fP
  12894. .sp
  12895. Default: \fBFalse\fP
  12896. .sp
  12897. The \fBiscsi_grains\fP setting will enable the \fBiscsi_iqn\fP grain on the
  12898. minion. Since this grain is expensive, it is disabled by default.
  12899. .INDENT 0.0
  12900. .INDENT 3.5
  12901. .sp
  12902. .nf
  12903. .ft C
  12904. iscsi_grains: True
  12905. .ft P
  12906. .fi
  12907. .UNINDENT
  12908. .UNINDENT
  12909. .SS \fBnvme_grains\fP
  12910. .sp
  12911. Default: \fBFalse\fP
  12912. .sp
  12913. The \fBnvme_grains\fP setting will enable the \fBnvme_nqn\fP grain on the
  12914. minion. Since this grain is expensive, it is disabled by default.
  12915. .INDENT 0.0
  12916. .INDENT 3.5
  12917. .sp
  12918. .nf
  12919. .ft C
  12920. nvme_grains: True
  12921. .ft P
  12922. .fi
  12923. .UNINDENT
  12924. .UNINDENT
  12925. .SS \fBmine_enabled\fP
  12926. .sp
  12927. New in version 2015.8.10.
  12928. .sp
  12929. Default: \fBTrue\fP
  12930. .sp
  12931. Determines whether or not the salt minion should run scheduled mine updates. If this is set to
  12932. False then the mine update function will not get added to the scheduler for the minion.
  12933. .INDENT 0.0
  12934. .INDENT 3.5
  12935. .sp
  12936. .nf
  12937. .ft C
  12938. mine_enabled: True
  12939. .ft P
  12940. .fi
  12941. .UNINDENT
  12942. .UNINDENT
  12943. .SS \fBmine_return_job\fP
  12944. .sp
  12945. New in version 2015.8.10.
  12946. .sp
  12947. Default: \fBFalse\fP
  12948. .sp
  12949. Determines whether or not scheduled mine updates should be accompanied by a job
  12950. return for the job cache.
  12951. .INDENT 0.0
  12952. .INDENT 3.5
  12953. .sp
  12954. .nf
  12955. .ft C
  12956. mine_return_job: False
  12957. .ft P
  12958. .fi
  12959. .UNINDENT
  12960. .UNINDENT
  12961. .SS \fBmine_functions\fP
  12962. .sp
  12963. Default: Empty
  12964. .sp
  12965. Designate which functions should be executed at mine_interval intervals on each minion.
  12966. See this documentation on the Salt Mine for more information.
  12967. Note these can be defined in the pillar for a minion as well.
  12968. .INDENT 0.0
  12969. .INDENT 3.5
  12970. example minion configuration file
  12971. .UNINDENT
  12972. .UNINDENT
  12973. .INDENT 0.0
  12974. .INDENT 3.5
  12975. .sp
  12976. .nf
  12977. .ft C
  12978. mine_functions:
  12979. test.ping: []
  12980. network.ip_addrs:
  12981. interface: eth0
  12982. cidr: \(aq10.0.0.0/8\(aq
  12983. .ft P
  12984. .fi
  12985. .UNINDENT
  12986. .UNINDENT
  12987. .SS \fBmine_interval\fP
  12988. .sp
  12989. Default: \fB60\fP
  12990. .sp
  12991. The number of minutes between mine updates.
  12992. .INDENT 0.0
  12993. .INDENT 3.5
  12994. .sp
  12995. .nf
  12996. .ft C
  12997. mine_interval: 60
  12998. .ft P
  12999. .fi
  13000. .UNINDENT
  13001. .UNINDENT
  13002. .SS \fBsock_dir\fP
  13003. .sp
  13004. Default: \fB/var/run/salt/minion\fP
  13005. .sp
  13006. The directory where Unix sockets will be kept.
  13007. .INDENT 0.0
  13008. .INDENT 3.5
  13009. .sp
  13010. .nf
  13011. .ft C
  13012. sock_dir: /var/run/salt/minion
  13013. .ft P
  13014. .fi
  13015. .UNINDENT
  13016. .UNINDENT
  13017. .SS \fBenable_fqdns_grains\fP
  13018. .sp
  13019. Default: \fBTrue\fP
  13020. .sp
  13021. In order to calculate the fqdns grain, all the IP addresses from the minion are
  13022. processed with underlying calls to \fBsocket.gethostbyaddr\fP which can take 5 seconds
  13023. to be released (after reaching \fBsocket.timeout\fP) when there is no fqdn for that IP.
  13024. These calls to \fBsocket.gethostbyaddr\fP are processed asynchronously, however, it still
  13025. adds 5 seconds every time grains are generated if an IP does not resolve. In Windows
  13026. grains are regenerated each time a new process is spawned. Therefore, the default for
  13027. Windows is \fBFalse\fP\&. All other OSes default to \fBTrue\fP\&. This options was
  13028. added \fI\%here\fP\&.
  13029. .INDENT 0.0
  13030. .INDENT 3.5
  13031. .sp
  13032. .nf
  13033. .ft C
  13034. enable_fqdns_grains: False
  13035. .ft P
  13036. .fi
  13037. .UNINDENT
  13038. .UNINDENT
  13039. .SS \fBenable_gpu_grains\fP
  13040. .sp
  13041. Default: \fBTrue\fP
  13042. .sp
  13043. Enable GPU hardware data for your master. Be aware that the minion can
  13044. take a while to start up when lspci and/or dmidecode is used to populate the
  13045. grains for the minion, so this can be set to \fBFalse\fP if you do not need these
  13046. grains.
  13047. .INDENT 0.0
  13048. .INDENT 3.5
  13049. .sp
  13050. .nf
  13051. .ft C
  13052. enable_gpu_grains: False
  13053. .ft P
  13054. .fi
  13055. .UNINDENT
  13056. .UNINDENT
  13057. .SS \fBoutputter_dirs\fP
  13058. .sp
  13059. Default: \fB[]\fP
  13060. .sp
  13061. A list of additional directories to search for salt outputters in.
  13062. .INDENT 0.0
  13063. .INDENT 3.5
  13064. .sp
  13065. .nf
  13066. .ft C
  13067. outputter_dirs: []
  13068. .ft P
  13069. .fi
  13070. .UNINDENT
  13071. .UNINDENT
  13072. .SS \fBbackup_mode\fP
  13073. .sp
  13074. Default: \fB\(aq\(aq\fP
  13075. .sp
  13076. Make backups of files replaced by \fBfile.managed\fP and \fBfile.recurse\fP state modules under
  13077. \fI\%cachedir\fP in \fBfile_backup\fP subdirectory preserving original paths.
  13078. Refer to File State Backups documentation for more details.
  13079. .INDENT 0.0
  13080. .INDENT 3.5
  13081. .sp
  13082. .nf
  13083. .ft C
  13084. backup_mode: minion
  13085. .ft P
  13086. .fi
  13087. .UNINDENT
  13088. .UNINDENT
  13089. .SS \fBacceptance_wait_time\fP
  13090. .sp
  13091. Default: \fB10\fP
  13092. .sp
  13093. The number of seconds to wait until attempting to re\-authenticate with the
  13094. master.
  13095. .INDENT 0.0
  13096. .INDENT 3.5
  13097. .sp
  13098. .nf
  13099. .ft C
  13100. acceptance_wait_time: 10
  13101. .ft P
  13102. .fi
  13103. .UNINDENT
  13104. .UNINDENT
  13105. .SS \fBacceptance_wait_time_max\fP
  13106. .sp
  13107. Default: \fB0\fP
  13108. .sp
  13109. The maximum number of seconds to wait until attempting to re\-authenticate
  13110. with the master. If set, the wait will increase by \fI\%acceptance_wait_time\fP
  13111. seconds each iteration.
  13112. .INDENT 0.0
  13113. .INDENT 3.5
  13114. .sp
  13115. .nf
  13116. .ft C
  13117. acceptance_wait_time_max: 0
  13118. .ft P
  13119. .fi
  13120. .UNINDENT
  13121. .UNINDENT
  13122. .SS \fBrejected_retry\fP
  13123. .sp
  13124. Default: \fBFalse\fP
  13125. .sp
  13126. If the master rejects the minion\(aqs public key, retry instead of exiting.
  13127. Rejected keys will be handled the same as waiting on acceptance.
  13128. .INDENT 0.0
  13129. .INDENT 3.5
  13130. .sp
  13131. .nf
  13132. .ft C
  13133. rejected_retry: False
  13134. .ft P
  13135. .fi
  13136. .UNINDENT
  13137. .UNINDENT
  13138. .SS \fBrandom_reauth_delay\fP
  13139. .sp
  13140. Default: \fB10\fP
  13141. .sp
  13142. When the master key changes, the minion will try to re\-auth itself to
  13143. receive the new master key. In larger environments this can cause a syn\-flood
  13144. on the master because all minions try to re\-auth immediately. To prevent this
  13145. and have a minion wait for a random amount of time, use this optional
  13146. parameter. The wait\-time will be a random number of seconds between
  13147. 0 and the defined value.
  13148. .INDENT 0.0
  13149. .INDENT 3.5
  13150. .sp
  13151. .nf
  13152. .ft C
  13153. random_reauth_delay: 60
  13154. .ft P
  13155. .fi
  13156. .UNINDENT
  13157. .UNINDENT
  13158. .SS \fBmaster_tries\fP
  13159. .sp
  13160. New in version 2016.3.0.
  13161. .sp
  13162. Default: \fB1\fP
  13163. .sp
  13164. The number of attempts to connect to a master before giving up. Set this to
  13165. \fB\-1\fP for unlimited attempts. This allows for a master to have downtime and the
  13166. minion to reconnect to it later when it comes back up. In \(aqfailover\(aq mode, which
  13167. is set in the \fI\%master_type\fP configuration, this value is the number
  13168. of attempts for each set of masters. In this mode, it will cycle through the list
  13169. of masters for each attempt.
  13170. .sp
  13171. \fBmaster_tries\fP is different than \fI\%auth_tries\fP because \fBauth_tries\fP
  13172. attempts to retry auth attempts with a single master. \fBauth_tries\fP is under the
  13173. assumption that you can connect to the master but not gain authorization from it.
  13174. \fBmaster_tries\fP will still cycle through all of the masters in a given try, so it
  13175. is appropriate if you expect occasional downtime from the master(s).
  13176. .INDENT 0.0
  13177. .INDENT 3.5
  13178. .sp
  13179. .nf
  13180. .ft C
  13181. master_tries: 1
  13182. .ft P
  13183. .fi
  13184. .UNINDENT
  13185. .UNINDENT
  13186. .SS \fBauth_tries\fP
  13187. .sp
  13188. New in version 2014.7.0.
  13189. .sp
  13190. Default: \fB7\fP
  13191. .sp
  13192. The number of attempts to authenticate to a master before giving up. Or, more
  13193. technically, the number of consecutive SaltReqTimeoutErrors that are acceptable
  13194. when trying to authenticate to the master.
  13195. .INDENT 0.0
  13196. .INDENT 3.5
  13197. .sp
  13198. .nf
  13199. .ft C
  13200. auth_tries: 7
  13201. .ft P
  13202. .fi
  13203. .UNINDENT
  13204. .UNINDENT
  13205. .SS \fBauth_timeout\fP
  13206. .sp
  13207. New in version 2014.7.0.
  13208. .sp
  13209. Default: \fB60\fP
  13210. .sp
  13211. When waiting for a master to accept the minion\(aqs public key, salt will
  13212. continuously attempt to reconnect until successful. This is the timeout value,
  13213. in seconds, for each individual attempt. After this timeout expires, the minion
  13214. will wait for \fI\%acceptance_wait_time\fP seconds before trying again.
  13215. Unless your master is under unusually heavy load, this should be left at the
  13216. default.
  13217. .INDENT 0.0
  13218. .INDENT 3.5
  13219. .sp
  13220. .nf
  13221. .ft C
  13222. auth_timeout: 60
  13223. .ft P
  13224. .fi
  13225. .UNINDENT
  13226. .UNINDENT
  13227. .SS \fBauth_safemode\fP
  13228. .sp
  13229. New in version 2014.7.0.
  13230. .sp
  13231. Default: \fBFalse\fP
  13232. .sp
  13233. If authentication fails due to SaltReqTimeoutError during a ping_interval,
  13234. this setting, when set to \fBTrue\fP, will cause a sub\-minion process to
  13235. restart.
  13236. .INDENT 0.0
  13237. .INDENT 3.5
  13238. .sp
  13239. .nf
  13240. .ft C
  13241. auth_safemode: False
  13242. .ft P
  13243. .fi
  13244. .UNINDENT
  13245. .UNINDENT
  13246. .SS \fBping_interval\fP
  13247. .sp
  13248. Default: \fB0\fP
  13249. .sp
  13250. Instructs the minion to ping its master(s) every n number of minutes. Used
  13251. primarily as a mitigation technique against minion disconnects.
  13252. .INDENT 0.0
  13253. .INDENT 3.5
  13254. .sp
  13255. .nf
  13256. .ft C
  13257. ping_interval: 0
  13258. .ft P
  13259. .fi
  13260. .UNINDENT
  13261. .UNINDENT
  13262. .SS \fBrandom_startup_delay\fP
  13263. .sp
  13264. Default: \fB0\fP
  13265. .sp
  13266. The maximum bound for an interval in which a minion will randomly sleep upon starting
  13267. up prior to attempting to connect to a master. This can be used to splay connection attempts
  13268. for cases where many minions starting up at once may place undue load on a master.
  13269. .sp
  13270. For example, setting this to \fB5\fP will tell a minion to sleep for a value between \fB0\fP
  13271. and \fB5\fP seconds.
  13272. .INDENT 0.0
  13273. .INDENT 3.5
  13274. .sp
  13275. .nf
  13276. .ft C
  13277. random_startup_delay: 5
  13278. .ft P
  13279. .fi
  13280. .UNINDENT
  13281. .UNINDENT
  13282. .SS \fBrecon_default\fP
  13283. .sp
  13284. Default: \fB1000\fP
  13285. .sp
  13286. The interval in milliseconds that the socket should wait before trying to
  13287. reconnect to the master (1000ms = 1 second).
  13288. .INDENT 0.0
  13289. .INDENT 3.5
  13290. .sp
  13291. .nf
  13292. .ft C
  13293. recon_default: 1000
  13294. .ft P
  13295. .fi
  13296. .UNINDENT
  13297. .UNINDENT
  13298. .SS \fBrecon_max\fP
  13299. .sp
  13300. Default: \fB10000\fP
  13301. .sp
  13302. The maximum time a socket should wait. Each interval the time to wait is calculated
  13303. by doubling the previous time. If recon_max is reached, it starts again at
  13304. the recon_default.
  13305. .INDENT 0.0
  13306. .TP
  13307. .B Short example:
  13308. .INDENT 7.0
  13309. .IP \(bu 2
  13310. reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  13311. .IP \(bu 2
  13312. reconnect 2: \(aqrecon_default\(aq * 2
  13313. .IP \(bu 2
  13314. reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  13315. .IP \(bu 2
  13316. reconnect 4: value from previous interval * 2
  13317. .IP \(bu 2
  13318. reconnect 5: value from previous interval * 2
  13319. .IP \(bu 2
  13320. reconnect x: if value >= recon_max, it starts again with recon_default
  13321. .UNINDENT
  13322. .UNINDENT
  13323. .INDENT 0.0
  13324. .INDENT 3.5
  13325. .sp
  13326. .nf
  13327. .ft C
  13328. recon_max: 10000
  13329. .ft P
  13330. .fi
  13331. .UNINDENT
  13332. .UNINDENT
  13333. .SS \fBrecon_randomize\fP
  13334. .sp
  13335. Default: \fBTrue\fP
  13336. .sp
  13337. Generate a random wait time on minion start. The wait time will be a random value
  13338. between recon_default and recon_default + recon_max. Having all minions reconnect
  13339. with the same recon_default and recon_max value kind of defeats the purpose of being
  13340. able to change these settings. If all minions have the same values and the setup is
  13341. quite large (several thousand minions), they will still flood the master. The desired
  13342. behavior is to have time\-frame within all minions try to reconnect.
  13343. .INDENT 0.0
  13344. .INDENT 3.5
  13345. .sp
  13346. .nf
  13347. .ft C
  13348. recon_randomize: True
  13349. .ft P
  13350. .fi
  13351. .UNINDENT
  13352. .UNINDENT
  13353. .SS \fBloop_interval\fP
  13354. .sp
  13355. Default: \fB1\fP
  13356. .sp
  13357. The loop_interval sets how long in seconds the minion will wait between
  13358. evaluating the scheduler and running cleanup tasks. This defaults to 1
  13359. second on the minion scheduler.
  13360. .INDENT 0.0
  13361. .INDENT 3.5
  13362. .sp
  13363. .nf
  13364. .ft C
  13365. loop_interval: 1
  13366. .ft P
  13367. .fi
  13368. .UNINDENT
  13369. .UNINDENT
  13370. .SS \fBpub_ret\fP
  13371. .sp
  13372. Default: True
  13373. .sp
  13374. Some installations choose to start all job returns in a cache or a returner
  13375. and forgo sending the results back to a master. In this workflow, jobs
  13376. are most often executed with \-\-async from the Salt CLI and then results
  13377. are evaluated by examining job caches on the minions or any configured returners.
  13378. WARNING: Setting this to False will \fBdisable\fP returns back to the master.
  13379. .INDENT 0.0
  13380. .INDENT 3.5
  13381. .sp
  13382. .nf
  13383. .ft C
  13384. pub_ret: True
  13385. .ft P
  13386. .fi
  13387. .UNINDENT
  13388. .UNINDENT
  13389. .SS \fBreturn_retry_timer\fP
  13390. .sp
  13391. Default: \fB5\fP
  13392. .sp
  13393. The default timeout for a minion return attempt.
  13394. .INDENT 0.0
  13395. .INDENT 3.5
  13396. .sp
  13397. .nf
  13398. .ft C
  13399. return_retry_timer: 5
  13400. .ft P
  13401. .fi
  13402. .UNINDENT
  13403. .UNINDENT
  13404. .SS \fBreturn_retry_timer_max\fP
  13405. .sp
  13406. Default: \fB10\fP
  13407. .sp
  13408. The maximum timeout for a minion return attempt. If non\-zero the minion return
  13409. retry timeout will be a random int between \fBreturn_retry_timer\fP and
  13410. \fBreturn_retry_timer_max\fP
  13411. .INDENT 0.0
  13412. .INDENT 3.5
  13413. .sp
  13414. .nf
  13415. .ft C
  13416. return_retry_timer_max: 10
  13417. .ft P
  13418. .fi
  13419. .UNINDENT
  13420. .UNINDENT
  13421. .SS \fBcache_sreqs\fP
  13422. .sp
  13423. Default: \fBTrue\fP
  13424. .sp
  13425. The connection to the master ret_port is kept open. When set to False, the minion
  13426. creates a new connection for every return to the master.
  13427. .INDENT 0.0
  13428. .INDENT 3.5
  13429. .sp
  13430. .nf
  13431. .ft C
  13432. cache_sreqs: True
  13433. .ft P
  13434. .fi
  13435. .UNINDENT
  13436. .UNINDENT
  13437. .SS \fBipc_mode\fP
  13438. .sp
  13439. Default: \fBipc\fP
  13440. .sp
  13441. Windows platforms lack POSIX IPC and must rely on slower TCP based inter\-
  13442. process communications. \fBipc_mode\fP is set to \fBtcp\fP on such systems.
  13443. .INDENT 0.0
  13444. .INDENT 3.5
  13445. .sp
  13446. .nf
  13447. .ft C
  13448. ipc_mode: ipc
  13449. .ft P
  13450. .fi
  13451. .UNINDENT
  13452. .UNINDENT
  13453. .SS \fBtcp_pub_port\fP
  13454. .sp
  13455. Default: \fB4510\fP
  13456. .sp
  13457. Publish port used when \fI\%ipc_mode\fP is set to \fBtcp\fP\&.
  13458. .INDENT 0.0
  13459. .INDENT 3.5
  13460. .sp
  13461. .nf
  13462. .ft C
  13463. tcp_pub_port: 4510
  13464. .ft P
  13465. .fi
  13466. .UNINDENT
  13467. .UNINDENT
  13468. .SS \fBtcp_pull_port\fP
  13469. .sp
  13470. Default: \fB4511\fP
  13471. .sp
  13472. Pull port used when \fI\%ipc_mode\fP is set to \fBtcp\fP\&.
  13473. .INDENT 0.0
  13474. .INDENT 3.5
  13475. .sp
  13476. .nf
  13477. .ft C
  13478. tcp_pull_port: 4511
  13479. .ft P
  13480. .fi
  13481. .UNINDENT
  13482. .UNINDENT
  13483. .SS \fBtransport\fP
  13484. .sp
  13485. Default: \fBzeromq\fP
  13486. .sp
  13487. Changes the underlying transport layer. ZeroMQ is the recommended transport
  13488. while additional transport layers are under development. Supported values are
  13489. \fBzeromq\fP and \fBtcp\fP (experimental). This setting has a significant impact
  13490. on performance and should not be changed unless you know what you are doing!
  13491. .INDENT 0.0
  13492. .INDENT 3.5
  13493. .sp
  13494. .nf
  13495. .ft C
  13496. transport: zeromq
  13497. .ft P
  13498. .fi
  13499. .UNINDENT
  13500. .UNINDENT
  13501. .SS \fBsyndic_finger\fP
  13502. .sp
  13503. Default: \fB\(aq\(aq\fP
  13504. .sp
  13505. The key fingerprint of the higher\-level master for the syndic to verify it is
  13506. talking to the intended master.
  13507. .INDENT 0.0
  13508. .INDENT 3.5
  13509. .sp
  13510. .nf
  13511. .ft C
  13512. syndic_finger: \(aqab:30:65:2a:d6:9e:20:4f:d8:b2:f3:a7:d4:65:50:10\(aq
  13513. .ft P
  13514. .fi
  13515. .UNINDENT
  13516. .UNINDENT
  13517. .SS \fBhttp_connect_timeout\fP
  13518. .sp
  13519. New in version 2019.2.0.
  13520. .sp
  13521. Default: \fB20\fP
  13522. .sp
  13523. HTTP connection timeout in seconds.
  13524. Applied when fetching files using tornado back\-end.
  13525. Should be greater than overall download time.
  13526. .INDENT 0.0
  13527. .INDENT 3.5
  13528. .sp
  13529. .nf
  13530. .ft C
  13531. http_connect_timeout: 20
  13532. .ft P
  13533. .fi
  13534. .UNINDENT
  13535. .UNINDENT
  13536. .SS \fBhttp_request_timeout\fP
  13537. .sp
  13538. New in version 2015.8.0.
  13539. .sp
  13540. Default: \fB3600\fP
  13541. .sp
  13542. HTTP request timeout in seconds.
  13543. Applied when fetching files using tornado back\-end.
  13544. Should be greater than overall download time.
  13545. .INDENT 0.0
  13546. .INDENT 3.5
  13547. .sp
  13548. .nf
  13549. .ft C
  13550. http_request_timeout: 3600
  13551. .ft P
  13552. .fi
  13553. .UNINDENT
  13554. .UNINDENT
  13555. .SS \fBproxy_host\fP
  13556. .sp
  13557. Default: \fB\(aq\(aq\fP
  13558. .sp
  13559. The hostname used for HTTP proxy access.
  13560. .INDENT 0.0
  13561. .INDENT 3.5
  13562. .sp
  13563. .nf
  13564. .ft C
  13565. proxy_host: proxy.my\-domain
  13566. .ft P
  13567. .fi
  13568. .UNINDENT
  13569. .UNINDENT
  13570. .SS \fBproxy_port\fP
  13571. .sp
  13572. Default: \fB0\fP
  13573. .sp
  13574. The port number used for HTTP proxy access.
  13575. .INDENT 0.0
  13576. .INDENT 3.5
  13577. .sp
  13578. .nf
  13579. .ft C
  13580. proxy_port: 31337
  13581. .ft P
  13582. .fi
  13583. .UNINDENT
  13584. .UNINDENT
  13585. .SS \fBproxy_username\fP
  13586. .sp
  13587. Default: \fB\(aq\(aq\fP
  13588. .sp
  13589. The username used for HTTP proxy access.
  13590. .INDENT 0.0
  13591. .INDENT 3.5
  13592. .sp
  13593. .nf
  13594. .ft C
  13595. proxy_username: charon
  13596. .ft P
  13597. .fi
  13598. .UNINDENT
  13599. .UNINDENT
  13600. .SS \fBproxy_password\fP
  13601. .sp
  13602. Default: \fB\(aq\(aq\fP
  13603. .sp
  13604. The password used for HTTP proxy access.
  13605. .INDENT 0.0
  13606. .INDENT 3.5
  13607. .sp
  13608. .nf
  13609. .ft C
  13610. proxy_password: obolus
  13611. .ft P
  13612. .fi
  13613. .UNINDENT
  13614. .UNINDENT
  13615. .SS \fBno_proxy\fP
  13616. .sp
  13617. New in version 2019.2.0.
  13618. .sp
  13619. Default: \fB[]\fP
  13620. .sp
  13621. List of hosts to bypass HTTP proxy
  13622. .sp
  13623. \fBNOTE:\fP
  13624. .INDENT 0.0
  13625. .INDENT 3.5
  13626. This key does nothing unless proxy_host etc is configured, it does not
  13627. support any kind of wildcards.
  13628. .UNINDENT
  13629. .UNINDENT
  13630. .INDENT 0.0
  13631. .INDENT 3.5
  13632. .sp
  13633. .nf
  13634. .ft C
  13635. no_proxy: [ \(aq127.0.0.1\(aq, \(aqfoo.tld\(aq ]
  13636. .ft P
  13637. .fi
  13638. .UNINDENT
  13639. .UNINDENT
  13640. .SS \fBuse_yamlloader_old\fP
  13641. .sp
  13642. New in version 2019.2.1.
  13643. .sp
  13644. Default: \fBFalse\fP
  13645. .sp
  13646. Use the pre\-2019.2 YAML renderer.
  13647. Uses legacy YAML rendering to support some legacy inline data structures.
  13648. See the 2019.2.1 release notes for more details.
  13649. .INDENT 0.0
  13650. .INDENT 3.5
  13651. .sp
  13652. .nf
  13653. .ft C
  13654. use_yamlloader_old: False
  13655. .ft P
  13656. .fi
  13657. .UNINDENT
  13658. .UNINDENT
  13659. .SS Docker Configuration
  13660. .SS \fBdocker.update_mine\fP
  13661. .sp
  13662. New in version 2017.7.8,2018.3.3.
  13663. .sp
  13664. Changed in version 2019.2.0: The default value is now \fBFalse\fP
  13665. .sp
  13666. Default: \fBTrue\fP
  13667. .sp
  13668. If enabled, when containers are added, removed, stopped, started, etc., the
  13669. mine will be updated with the results of \fBdocker.ps
  13670. verbose=True all=True host=True\fP\&. This mine data is
  13671. used by \fBmine.get_docker\fP\&. Set this
  13672. option to \fBFalse\fP to keep Salt from updating the mine with this information.
  13673. .sp
  13674. \fBNOTE:\fP
  13675. .INDENT 0.0
  13676. .INDENT 3.5
  13677. This option can also be set in Grains or Pillar data, with Grains
  13678. overriding Pillar and the minion config file overriding Grains.
  13679. .UNINDENT
  13680. .UNINDENT
  13681. .sp
  13682. \fBNOTE:\fP
  13683. .INDENT 0.0
  13684. .INDENT 3.5
  13685. Disabling this will of course keep \fBmine.get_docker\fP from returning any information for a given
  13686. minion.
  13687. .UNINDENT
  13688. .UNINDENT
  13689. .INDENT 0.0
  13690. .INDENT 3.5
  13691. .sp
  13692. .nf
  13693. .ft C
  13694. docker.update_mine: False
  13695. .ft P
  13696. .fi
  13697. .UNINDENT
  13698. .UNINDENT
  13699. .SS \fBdocker.compare_container_networks\fP
  13700. .sp
  13701. New in version 2018.3.0.
  13702. .sp
  13703. Default: \fB{\(aqstatic\(aq: [\(aqAliases\(aq, \(aqLinks\(aq, \(aqIPAMConfig\(aq], \(aqautomatic\(aq: [\(aqIPAddress\(aq, \(aqGateway\(aq, \(aqGlobalIPv6Address\(aq, \(aqIPv6Gateway\(aq]}\fP
  13704. .sp
  13705. Specifies which keys are examined by
  13706. \fBdocker.compare_container_networks\fP\&.
  13707. .sp
  13708. \fBNOTE:\fP
  13709. .INDENT 0.0
  13710. .INDENT 3.5
  13711. This should not need to be modified unless new features added to Docker
  13712. result in new keys added to the network configuration which must be
  13713. compared to determine if two containers have different network configs.
  13714. This config option exists solely as a way to allow users to continue using
  13715. Salt to manage their containers after an API change, without waiting for a
  13716. new Salt release to catch up to the changes in the Docker API.
  13717. .UNINDENT
  13718. .UNINDENT
  13719. .INDENT 0.0
  13720. .INDENT 3.5
  13721. .sp
  13722. .nf
  13723. .ft C
  13724. docker.compare_container_networks:
  13725. static:
  13726. \- Aliases
  13727. \- Links
  13728. \- IPAMConfig
  13729. automatic:
  13730. \- IPAddress
  13731. \- Gateway
  13732. \- GlobalIPv6Address
  13733. \- IPv6Gateway
  13734. .ft P
  13735. .fi
  13736. .UNINDENT
  13737. .UNINDENT
  13738. .SS \fBoptimization_order\fP
  13739. .sp
  13740. Default: \fB[0, 1, 2]\fP
  13741. .sp
  13742. In cases where Salt is distributed without .py files, this option determines
  13743. the priority of optimization level(s) Salt\(aqs module loader should prefer.
  13744. .sp
  13745. \fBNOTE:\fP
  13746. .INDENT 0.0
  13747. .INDENT 3.5
  13748. This option is only supported on Python 3.5+.
  13749. .UNINDENT
  13750. .UNINDENT
  13751. .INDENT 0.0
  13752. .INDENT 3.5
  13753. .sp
  13754. .nf
  13755. .ft C
  13756. optimization_order:
  13757. \- 2
  13758. \- 0
  13759. \- 1
  13760. .ft P
  13761. .fi
  13762. .UNINDENT
  13763. .UNINDENT
  13764. .SS Minion Execution Module Management
  13765. .SS \fBdisable_modules\fP
  13766. .sp
  13767. Default: \fB[]\fP (all execution modules are enabled by default)
  13768. .sp
  13769. The event may occur in which the administrator desires that a minion should not
  13770. be able to execute a certain module.
  13771. .sp
  13772. However, the \fBsys\fP module is built into the minion and cannot be disabled.
  13773. .sp
  13774. This setting can also tune the minion. Because all modules are loaded into system
  13775. memory, disabling modules will lower the minion\(aqs memory footprint.
  13776. .sp
  13777. Modules should be specified according to their file name on the system and not by
  13778. their virtual name. For example, to disable \fBcmd\fP, use the string \fBcmdmod\fP which
  13779. corresponds to \fBsalt.modules.cmdmod\fP\&.
  13780. .INDENT 0.0
  13781. .INDENT 3.5
  13782. .sp
  13783. .nf
  13784. .ft C
  13785. disable_modules:
  13786. \- test
  13787. \- solr
  13788. .ft P
  13789. .fi
  13790. .UNINDENT
  13791. .UNINDENT
  13792. .SS \fBdisable_returners\fP
  13793. .sp
  13794. Default: \fB[]\fP (all returners are enabled by default)
  13795. .sp
  13796. If certain returners should be disabled, this is the place
  13797. .INDENT 0.0
  13798. .INDENT 3.5
  13799. .sp
  13800. .nf
  13801. .ft C
  13802. disable_returners:
  13803. \- mongo_return
  13804. .ft P
  13805. .fi
  13806. .UNINDENT
  13807. .UNINDENT
  13808. .SS \fBwhitelist_modules\fP
  13809. .sp
  13810. Default: \fB[]\fP (Module whitelisting is disabled. Adding anything to the config option
  13811. will cause only the listed modules to be enabled. Modules not in the list will
  13812. not be loaded.)
  13813. .sp
  13814. This option is the reverse of disable_modules. If enabled, only execution modules in this
  13815. list will be loaded and executed on the minion.
  13816. .sp
  13817. Note that this is a very large hammer and it can be quite difficult to keep the minion working
  13818. the way you think it should since Salt uses many modules internally itself. At a bare minimum
  13819. you need the following enabled or else the minion won\(aqt start.
  13820. .INDENT 0.0
  13821. .INDENT 3.5
  13822. .sp
  13823. .nf
  13824. .ft C
  13825. whitelist_modules:
  13826. \- cmdmod
  13827. \- test
  13828. \- config
  13829. .ft P
  13830. .fi
  13831. .UNINDENT
  13832. .UNINDENT
  13833. .SS \fBmodule_dirs\fP
  13834. .sp
  13835. Default: \fB[]\fP
  13836. .sp
  13837. A list of extra directories to search for Salt modules
  13838. .INDENT 0.0
  13839. .INDENT 3.5
  13840. .sp
  13841. .nf
  13842. .ft C
  13843. module_dirs:
  13844. \- /var/lib/salt/modules
  13845. .ft P
  13846. .fi
  13847. .UNINDENT
  13848. .UNINDENT
  13849. .SS \fBreturner_dirs\fP
  13850. .sp
  13851. Default: \fB[]\fP
  13852. .sp
  13853. A list of extra directories to search for Salt returners
  13854. .INDENT 0.0
  13855. .INDENT 3.5
  13856. .sp
  13857. .nf
  13858. .ft C
  13859. returner_dirs:
  13860. \- /var/lib/salt/returners
  13861. .ft P
  13862. .fi
  13863. .UNINDENT
  13864. .UNINDENT
  13865. .SS \fBstates_dirs\fP
  13866. .sp
  13867. Default: \fB[]\fP
  13868. .sp
  13869. A list of extra directories to search for Salt states
  13870. .INDENT 0.0
  13871. .INDENT 3.5
  13872. .sp
  13873. .nf
  13874. .ft C
  13875. states_dirs:
  13876. \- /var/lib/salt/states
  13877. .ft P
  13878. .fi
  13879. .UNINDENT
  13880. .UNINDENT
  13881. .SS \fBgrains_dirs\fP
  13882. .sp
  13883. Default: \fB[]\fP
  13884. .sp
  13885. A list of extra directories to search for Salt grains
  13886. .INDENT 0.0
  13887. .INDENT 3.5
  13888. .sp
  13889. .nf
  13890. .ft C
  13891. grains_dirs:
  13892. \- /var/lib/salt/grains
  13893. .ft P
  13894. .fi
  13895. .UNINDENT
  13896. .UNINDENT
  13897. .SS \fBrender_dirs\fP
  13898. .sp
  13899. Default: \fB[]\fP
  13900. .sp
  13901. A list of extra directories to search for Salt renderers
  13902. .INDENT 0.0
  13903. .INDENT 3.5
  13904. .sp
  13905. .nf
  13906. .ft C
  13907. render_dirs:
  13908. \- /var/lib/salt/renderers
  13909. .ft P
  13910. .fi
  13911. .UNINDENT
  13912. .UNINDENT
  13913. .SS \fButils_dirs\fP
  13914. .sp
  13915. Default: \fB[]\fP
  13916. .sp
  13917. A list of extra directories to search for Salt utilities
  13918. .INDENT 0.0
  13919. .INDENT 3.5
  13920. .sp
  13921. .nf
  13922. .ft C
  13923. utils_dirs:
  13924. \- /var/lib/salt/utils
  13925. .ft P
  13926. .fi
  13927. .UNINDENT
  13928. .UNINDENT
  13929. .SS \fBcython_enable\fP
  13930. .sp
  13931. Default: \fBFalse\fP
  13932. .sp
  13933. Set this value to true to enable auto\-loading and compiling of \fB\&.pyx\fP modules,
  13934. This setting requires that \fBgcc\fP and \fBcython\fP are installed on the minion.
  13935. .INDENT 0.0
  13936. .INDENT 3.5
  13937. .sp
  13938. .nf
  13939. .ft C
  13940. cython_enable: False
  13941. .ft P
  13942. .fi
  13943. .UNINDENT
  13944. .UNINDENT
  13945. .SS \fBenable_zip_modules\fP
  13946. .sp
  13947. New in version 2015.8.0.
  13948. .sp
  13949. Default: \fBFalse\fP
  13950. .sp
  13951. Set this value to true to enable loading of zip archives as extension modules.
  13952. This allows for packing module code with specific dependencies to avoid conflicts
  13953. and/or having to install specific modules\(aq dependencies in system libraries.
  13954. .INDENT 0.0
  13955. .INDENT 3.5
  13956. .sp
  13957. .nf
  13958. .ft C
  13959. enable_zip_modules: False
  13960. .ft P
  13961. .fi
  13962. .UNINDENT
  13963. .UNINDENT
  13964. .SS \fBproviders\fP
  13965. .sp
  13966. Default: (empty)
  13967. .sp
  13968. A module provider can be statically overwritten or extended for the minion via
  13969. the \fBproviders\fP option. This can be done on an individual basis in an
  13970. SLS file, or globally here in the minion config, like
  13971. below.
  13972. .INDENT 0.0
  13973. .INDENT 3.5
  13974. .sp
  13975. .nf
  13976. .ft C
  13977. providers:
  13978. service: systemd
  13979. .ft P
  13980. .fi
  13981. .UNINDENT
  13982. .UNINDENT
  13983. .SS \fBmodules_max_memory\fP
  13984. .sp
  13985. Default: \fB\-1\fP
  13986. .sp
  13987. Specify a max size (in bytes) for modules on import. This feature is currently
  13988. only supported on *NIX operating systems and requires psutil.
  13989. .INDENT 0.0
  13990. .INDENT 3.5
  13991. .sp
  13992. .nf
  13993. .ft C
  13994. modules_max_memory: \-1
  13995. .ft P
  13996. .fi
  13997. .UNINDENT
  13998. .UNINDENT
  13999. .SS \fBextmod_whitelist/extmod_blacklist\fP
  14000. .sp
  14001. New in version 2017.7.0.
  14002. .sp
  14003. By using this dictionary, the modules that are synced to the minion\(aqs extmod cache using \fIsaltutil.sync_*\fP can be
  14004. limited. If nothing is set to a specific type, then all modules are accepted. To block all modules of a specific type,
  14005. whitelist an empty list.
  14006. .INDENT 0.0
  14007. .INDENT 3.5
  14008. .sp
  14009. .nf
  14010. .ft C
  14011. extmod_whitelist:
  14012. modules:
  14013. \- custom_module
  14014. engines:
  14015. \- custom_engine
  14016. pillars: []
  14017. extmod_blacklist:
  14018. modules:
  14019. \- specific_module
  14020. .ft P
  14021. .fi
  14022. .UNINDENT
  14023. .UNINDENT
  14024. .sp
  14025. Valid options:
  14026. .INDENT 0.0
  14027. .INDENT 3.5
  14028. .INDENT 0.0
  14029. .IP \(bu 2
  14030. beacons
  14031. .IP \(bu 2
  14032. clouds
  14033. .IP \(bu 2
  14034. sdb
  14035. .IP \(bu 2
  14036. modules
  14037. .IP \(bu 2
  14038. states
  14039. .IP \(bu 2
  14040. grains
  14041. .IP \(bu 2
  14042. renderers
  14043. .IP \(bu 2
  14044. returners
  14045. .IP \(bu 2
  14046. proxy
  14047. .IP \(bu 2
  14048. engines
  14049. .IP \(bu 2
  14050. output
  14051. .IP \(bu 2
  14052. utils
  14053. .IP \(bu 2
  14054. pillar
  14055. .UNINDENT
  14056. .UNINDENT
  14057. .UNINDENT
  14058. .SS Top File Settings
  14059. .sp
  14060. These parameters only have an effect if running a masterless minion.
  14061. .SS \fBstate_top\fP
  14062. .sp
  14063. Default: \fBtop.sls\fP
  14064. .sp
  14065. The state system uses a "top" file to tell the minions what environment to
  14066. use and what modules to use. The state_top file is defined relative to the
  14067. root of the base environment.
  14068. .INDENT 0.0
  14069. .INDENT 3.5
  14070. .sp
  14071. .nf
  14072. .ft C
  14073. state_top: top.sls
  14074. .ft P
  14075. .fi
  14076. .UNINDENT
  14077. .UNINDENT
  14078. .SS \fBstate_top_saltenv\fP
  14079. .sp
  14080. This option has no default value. Set it to an environment name to ensure that
  14081. \fIonly\fP the top file from that environment is considered during a
  14082. highstate\&.
  14083. .sp
  14084. \fBNOTE:\fP
  14085. .INDENT 0.0
  14086. .INDENT 3.5
  14087. Using this value does not change the merging strategy. For instance, if
  14088. \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and
  14089. \fI\%state_top_saltenv\fP is set to \fBfoo\fP, then any sections for
  14090. environments other than \fBfoo\fP in the top file for the \fBfoo\fP environment
  14091. will be ignored. With \fI\%state_top_saltenv\fP set to \fBbase\fP, all
  14092. states from all environments in the \fBbase\fP top file will be applied,
  14093. while all other top files are ignored. The only way to set
  14094. \fI\%state_top_saltenv\fP to something other than \fBbase\fP and not
  14095. have the other environments in the targeted top file ignored, would be to
  14096. set \fI\%top_file_merging_strategy\fP to \fBmerge_all\fP\&.
  14097. .UNINDENT
  14098. .UNINDENT
  14099. .INDENT 0.0
  14100. .INDENT 3.5
  14101. .sp
  14102. .nf
  14103. .ft C
  14104. state_top_saltenv: dev
  14105. .ft P
  14106. .fi
  14107. .UNINDENT
  14108. .UNINDENT
  14109. .SS \fBtop_file_merging_strategy\fP
  14110. .sp
  14111. Changed in version 2016.11.0: A \fBmerge_all\fP strategy has been added.
  14112. .sp
  14113. Default: \fBmerge\fP
  14114. .sp
  14115. When no specific fileserver environment (a.k.a. \fBsaltenv\fP) has been specified
  14116. for a highstate, all environments\(aq top files are
  14117. inspected. This config option determines how the SLS targets in those top files
  14118. are handled.
  14119. .sp
  14120. When set to \fBmerge\fP, the \fBbase\fP environment\(aqs top file is evaluated first,
  14121. followed by the other environments\(aq top files. The first target expression
  14122. (e.g. \fB\(aq*\(aq\fP) for a given environment is kept, and when the same target
  14123. expression is used in a different top file evaluated later, it is ignored.
  14124. Because \fBbase\fP is evaluated first, it is authoritative. For example, if there
  14125. is a target for \fB\(aq*\(aq\fP for the \fBfoo\fP environment in both the \fBbase\fP and
  14126. \fBfoo\fP environment\(aqs top files, the one in the \fBfoo\fP environment would be
  14127. ignored. The environments will be evaluated in no specific order (aside from
  14128. \fBbase\fP coming first). For greater control over the order in which the
  14129. environments are evaluated, use \fI\%env_order\fP\&. Note that, aside from
  14130. the \fBbase\fP environment\(aqs top file, any sections in top files that do not
  14131. match that top file\(aqs environment will be ignored. So, for example, a section
  14132. for the \fBqa\fP environment would be ignored if it appears in the \fBdev\fP
  14133. environment\(aqs top file. To keep use cases like this from being ignored, use the
  14134. \fBmerge_all\fP strategy.
  14135. .sp
  14136. When set to \fBsame\fP, then for each environment, only that environment\(aqs top
  14137. file is processed, with the others being ignored. For example, only the \fBdev\fP
  14138. environment\(aqs top file will be processed for the \fBdev\fP environment, and any
  14139. SLS targets defined for \fBdev\fP in the \fBbase\fP environment\(aqs (or any other
  14140. environment\(aqs) top file will be ignored. If an environment does not have a top
  14141. file, then the top file from the \fI\%default_top\fP config parameter
  14142. will be used as a fallback.
  14143. .sp
  14144. When set to \fBmerge_all\fP, then all states in all environments in all top files
  14145. will be applied. The order in which individual SLS files will be executed will
  14146. depend on the order in which the top files were evaluated, and the environments
  14147. will be evaluated in no specific order. For greater control over the order in
  14148. which the environments are evaluated, use \fI\%env_order\fP\&.
  14149. .INDENT 0.0
  14150. .INDENT 3.5
  14151. .sp
  14152. .nf
  14153. .ft C
  14154. top_file_merging_strategy: same
  14155. .ft P
  14156. .fi
  14157. .UNINDENT
  14158. .UNINDENT
  14159. .SS \fBenv_order\fP
  14160. .sp
  14161. Default: \fB[]\fP
  14162. .sp
  14163. When \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and no
  14164. environment is specified for a highstate, this
  14165. config option allows for the order in which top files are evaluated to be
  14166. explicitly defined.
  14167. .INDENT 0.0
  14168. .INDENT 3.5
  14169. .sp
  14170. .nf
  14171. .ft C
  14172. env_order:
  14173. \- base
  14174. \- dev
  14175. \- qa
  14176. .ft P
  14177. .fi
  14178. .UNINDENT
  14179. .UNINDENT
  14180. .SS \fBdefault_top\fP
  14181. .sp
  14182. Default: \fBbase\fP
  14183. .sp
  14184. When \fI\%top_file_merging_strategy\fP is set to \fBsame\fP, and no
  14185. environment is specified for a highstate (i.e.
  14186. \fI\%environment\fP is not set for the minion), this config option
  14187. specifies a fallback environment in which to look for a top file if an
  14188. environment lacks one.
  14189. .INDENT 0.0
  14190. .INDENT 3.5
  14191. .sp
  14192. .nf
  14193. .ft C
  14194. default_top: dev
  14195. .ft P
  14196. .fi
  14197. .UNINDENT
  14198. .UNINDENT
  14199. .SS \fBstartup_states\fP
  14200. .sp
  14201. Default: \fB\(aq\(aq\fP
  14202. .sp
  14203. States to run when the minion daemon starts. To enable, set \fBstartup_states\fP to:
  14204. .INDENT 0.0
  14205. .IP \(bu 2
  14206. \fBhighstate\fP: Execute state.highstate
  14207. .IP \(bu 2
  14208. \fBsls\fP: Read in the sls_list option and execute the named sls files
  14209. .IP \(bu 2
  14210. \fBtop\fP: Read top_file option and execute based on that file on the Master
  14211. .UNINDENT
  14212. .INDENT 0.0
  14213. .INDENT 3.5
  14214. .sp
  14215. .nf
  14216. .ft C
  14217. startup_states: \(aq\(aq
  14218. .ft P
  14219. .fi
  14220. .UNINDENT
  14221. .UNINDENT
  14222. .SS \fBsls_list\fP
  14223. .sp
  14224. Default: \fB[]\fP
  14225. .sp
  14226. List of states to run when the minion starts up if \fBstartup_states\fP is set to \fBsls\fP\&.
  14227. .INDENT 0.0
  14228. .INDENT 3.5
  14229. .sp
  14230. .nf
  14231. .ft C
  14232. sls_list:
  14233. \- edit.vim
  14234. \- hyper
  14235. .ft P
  14236. .fi
  14237. .UNINDENT
  14238. .UNINDENT
  14239. .SS \fBstart_event_grains\fP
  14240. .sp
  14241. Default: \fB[]\fP
  14242. .sp
  14243. List of grains to pass in start event when minion starts up.
  14244. .INDENT 0.0
  14245. .INDENT 3.5
  14246. .sp
  14247. .nf
  14248. .ft C
  14249. start_event_grains:
  14250. \- machine_id
  14251. \- uuid
  14252. .ft P
  14253. .fi
  14254. .UNINDENT
  14255. .UNINDENT
  14256. .SS \fBtop_file\fP
  14257. .sp
  14258. Default: \fB\(aq\(aq\fP
  14259. .sp
  14260. Top file to execute if \fBstartup_states\fP is set to \fBtop\fP\&.
  14261. .INDENT 0.0
  14262. .INDENT 3.5
  14263. .sp
  14264. .nf
  14265. .ft C
  14266. top_file: \(aq\(aq
  14267. .ft P
  14268. .fi
  14269. .UNINDENT
  14270. .UNINDENT
  14271. .SS State Management Settings
  14272. .SS \fBrenderer\fP
  14273. .sp
  14274. Default: \fBjinja|yaml\fP
  14275. .sp
  14276. The default renderer used for local state executions
  14277. .INDENT 0.0
  14278. .INDENT 3.5
  14279. .sp
  14280. .nf
  14281. .ft C
  14282. renderer: jinja|json
  14283. .ft P
  14284. .fi
  14285. .UNINDENT
  14286. .UNINDENT
  14287. .SS \fBtest\fP
  14288. .sp
  14289. Default: \fBFalse\fP
  14290. .sp
  14291. Set all state calls to only test if they are going to actually make changes
  14292. or just post what changes are going to be made.
  14293. .INDENT 0.0
  14294. .INDENT 3.5
  14295. .sp
  14296. .nf
  14297. .ft C
  14298. test: False
  14299. .ft P
  14300. .fi
  14301. .UNINDENT
  14302. .UNINDENT
  14303. .SS \fBstate_verbose\fP
  14304. .sp
  14305. Default: \fBTrue\fP
  14306. .sp
  14307. Controls the verbosity of state runs. By default, the results of all states are
  14308. returned, but setting this value to \fBFalse\fP will cause salt to only display
  14309. output for states that failed or states that have changes.
  14310. .INDENT 0.0
  14311. .INDENT 3.5
  14312. .sp
  14313. .nf
  14314. .ft C
  14315. state_verbose: True
  14316. .ft P
  14317. .fi
  14318. .UNINDENT
  14319. .UNINDENT
  14320. .SS \fBstate_output\fP
  14321. .sp
  14322. Default: \fBfull\fP
  14323. .sp
  14324. The state_output setting controls which results will be output full multi line:
  14325. .INDENT 0.0
  14326. .IP \(bu 2
  14327. \fBfull\fP, \fBterse\fP \- each state will be full/terse
  14328. .IP \(bu 2
  14329. \fBmixed\fP \- only states with errors will be full
  14330. .IP \(bu 2
  14331. \fBchanges\fP \- states with changes and errors will be full
  14332. .UNINDENT
  14333. .sp
  14334. \fBfull_id\fP, \fBmixed_id\fP, \fBchanges_id\fP and \fBterse_id\fP are also allowed;
  14335. when set, the state ID will be used as name in the output.
  14336. .INDENT 0.0
  14337. .INDENT 3.5
  14338. .sp
  14339. .nf
  14340. .ft C
  14341. state_output: full
  14342. .ft P
  14343. .fi
  14344. .UNINDENT
  14345. .UNINDENT
  14346. .SS \fBstate_output_diff\fP
  14347. .sp
  14348. Default: \fBFalse\fP
  14349. .sp
  14350. The state_output_diff setting changes whether or not the output from
  14351. successful states is returned. Useful when even the terse output of these
  14352. states is cluttering the logs. Set it to True to ignore them.
  14353. .INDENT 0.0
  14354. .INDENT 3.5
  14355. .sp
  14356. .nf
  14357. .ft C
  14358. state_output_diff: False
  14359. .ft P
  14360. .fi
  14361. .UNINDENT
  14362. .UNINDENT
  14363. .SS \fBautoload_dynamic_modules\fP
  14364. .sp
  14365. Default: \fBTrue\fP
  14366. .sp
  14367. autoload_dynamic_modules turns on automatic loading of modules found in the
  14368. environments on the master. This is turned on by default. To turn off
  14369. auto\-loading modules when states run, set this value to \fBFalse\fP\&.
  14370. .INDENT 0.0
  14371. .INDENT 3.5
  14372. .sp
  14373. .nf
  14374. .ft C
  14375. autoload_dynamic_modules: True
  14376. .ft P
  14377. .fi
  14378. .UNINDENT
  14379. .UNINDENT
  14380. .SS \fBclean_dynamic_modules\fP
  14381. .sp
  14382. Default: \fBTrue\fP
  14383. .sp
  14384. clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  14385. the dynamic modules on the master. This means that if a dynamic module is
  14386. not on the master it will be deleted from the minion. By default this is
  14387. enabled and can be disabled by changing this value to \fBFalse\fP\&.
  14388. .INDENT 0.0
  14389. .INDENT 3.5
  14390. .sp
  14391. .nf
  14392. .ft C
  14393. clean_dynamic_modules: True
  14394. .ft P
  14395. .fi
  14396. .UNINDENT
  14397. .UNINDENT
  14398. .sp
  14399. \fBNOTE:\fP
  14400. .INDENT 0.0
  14401. .INDENT 3.5
  14402. If \fBextmod_whitelist\fP is specified, modules which are not whitelisted will also be cleaned here.
  14403. .UNINDENT
  14404. .UNINDENT
  14405. .SS \fBsaltenv\fP
  14406. .sp
  14407. Changed in version 2018.3.0: Renamed from \fBenvironment\fP to \fBsaltenv\fP\&. If \fBenvironment\fP is used,
  14408. \fBsaltenv\fP will take its value. If both are used, \fBenvironment\fP will be
  14409. ignored and \fBsaltenv\fP will be used.
  14410. .sp
  14411. Normally the minion is not isolated to any single environment on the master
  14412. when running states, but the environment can be isolated on the minion side
  14413. by statically setting it. Remember that the recommended way to manage
  14414. environments is to isolate via the top file.
  14415. .INDENT 0.0
  14416. .INDENT 3.5
  14417. .sp
  14418. .nf
  14419. .ft C
  14420. saltenv: dev
  14421. .ft P
  14422. .fi
  14423. .UNINDENT
  14424. .UNINDENT
  14425. .SS \fBlock_saltenv\fP
  14426. .sp
  14427. New in version 2018.3.0.
  14428. .sp
  14429. Default: \fBFalse\fP
  14430. .sp
  14431. For purposes of running states, this option prevents using the \fBsaltenv\fP
  14432. argument to manually set the environment. This is useful to keep a minion which
  14433. has the \fI\%saltenv\fP option set to \fBdev\fP from running states from
  14434. an environment other than \fBdev\fP\&.
  14435. .INDENT 0.0
  14436. .INDENT 3.5
  14437. .sp
  14438. .nf
  14439. .ft C
  14440. lock_saltenv: True
  14441. .ft P
  14442. .fi
  14443. .UNINDENT
  14444. .UNINDENT
  14445. .SS \fBsnapper_states\fP
  14446. .sp
  14447. Default: False
  14448. .sp
  14449. The \fIsnapper_states\fP value is used to enable taking snapper snapshots before
  14450. and after salt state runs. This allows for state runs to be rolled back.
  14451. .sp
  14452. For snapper states to function properly snapper needs to be installed and
  14453. enabled.
  14454. .INDENT 0.0
  14455. .INDENT 3.5
  14456. .sp
  14457. .nf
  14458. .ft C
  14459. snapper_states: True
  14460. .ft P
  14461. .fi
  14462. .UNINDENT
  14463. .UNINDENT
  14464. .SS \fBsnapper_states_config\fP
  14465. .sp
  14466. Default: \fBroot\fP
  14467. .sp
  14468. Snapper can execute based on a snapper configuration. The configuration
  14469. needs to be set up before snapper can use it. The default configuration
  14470. is \fBroot\fP, this default makes snapper run on SUSE systems using the
  14471. default configuration set up at install time.
  14472. .INDENT 0.0
  14473. .INDENT 3.5
  14474. .sp
  14475. .nf
  14476. .ft C
  14477. snapper_states_config: root
  14478. .ft P
  14479. .fi
  14480. .UNINDENT
  14481. .UNINDENT
  14482. .SS File Directory Settings
  14483. .SS \fBfile_client\fP
  14484. .sp
  14485. Default: \fBremote\fP
  14486. .sp
  14487. The client defaults to looking on the master server for files, but can be
  14488. directed to look on the minion by setting this parameter to \fBlocal\fP\&.
  14489. .INDENT 0.0
  14490. .INDENT 3.5
  14491. .sp
  14492. .nf
  14493. .ft C
  14494. file_client: remote
  14495. .ft P
  14496. .fi
  14497. .UNINDENT
  14498. .UNINDENT
  14499. .SS \fBuse_master_when_local\fP
  14500. .sp
  14501. Default: \fBFalse\fP
  14502. .sp
  14503. When using a local \fI\%file_client\fP, this parameter is used to allow
  14504. the client to connect to a master for remote execution.
  14505. .INDENT 0.0
  14506. .INDENT 3.5
  14507. .sp
  14508. .nf
  14509. .ft C
  14510. use_master_when_local: False
  14511. .ft P
  14512. .fi
  14513. .UNINDENT
  14514. .UNINDENT
  14515. .SS \fBfile_roots\fP
  14516. .sp
  14517. Default:
  14518. .INDENT 0.0
  14519. .INDENT 3.5
  14520. .sp
  14521. .nf
  14522. .ft C
  14523. base:
  14524. \- /srv/salt
  14525. .ft P
  14526. .fi
  14527. .UNINDENT
  14528. .UNINDENT
  14529. .sp
  14530. When using a local \fI\%file_client\fP, this parameter is used to setup
  14531. the fileserver\(aqs environments. This parameter operates identically to the
  14532. \fBmaster config parameter\fP of the same name.
  14533. .INDENT 0.0
  14534. .INDENT 3.5
  14535. .sp
  14536. .nf
  14537. .ft C
  14538. file_roots:
  14539. base:
  14540. \- /srv/salt
  14541. dev:
  14542. \- /srv/salt/dev/services
  14543. \- /srv/salt/dev/states
  14544. prod:
  14545. \- /srv/salt/prod/services
  14546. \- /srv/salt/prod/states
  14547. .ft P
  14548. .fi
  14549. .UNINDENT
  14550. .UNINDENT
  14551. .SS \fBfileserver_followsymlinks\fP
  14552. .sp
  14553. New in version 2014.1.0.
  14554. .sp
  14555. Default: \fBTrue\fP
  14556. .sp
  14557. By default, the file_server follows symlinks when walking the filesystem tree.
  14558. Currently this only applies to the default roots fileserver_backend.
  14559. .INDENT 0.0
  14560. .INDENT 3.5
  14561. .sp
  14562. .nf
  14563. .ft C
  14564. fileserver_followsymlinks: True
  14565. .ft P
  14566. .fi
  14567. .UNINDENT
  14568. .UNINDENT
  14569. .SS \fBfileserver_ignoresymlinks\fP
  14570. .sp
  14571. New in version 2014.1.0.
  14572. .sp
  14573. Default: \fBFalse\fP
  14574. .sp
  14575. If you do not want symlinks to be treated as the files they are pointing to,
  14576. set \fBfileserver_ignoresymlinks\fP to \fBTrue\fP\&. By default this is set to
  14577. False. When set to \fBTrue\fP, any detected symlink while listing files on the
  14578. Master will not be returned to the Minion.
  14579. .INDENT 0.0
  14580. .INDENT 3.5
  14581. .sp
  14582. .nf
  14583. .ft C
  14584. fileserver_ignoresymlinks: False
  14585. .ft P
  14586. .fi
  14587. .UNINDENT
  14588. .UNINDENT
  14589. .SS \fBfileserver_limit_traversal\fP
  14590. .sp
  14591. New in version 2014.1.0.
  14592. .sp
  14593. Default: \fBFalse\fP
  14594. .sp
  14595. By default, the Salt fileserver recurses fully into all defined environments
  14596. to attempt to find files. To limit this behavior so that the fileserver only
  14597. traverses directories with SLS files and special Salt directories like _modules,
  14598. set \fBfileserver_limit_traversal\fP to \fBTrue\fP\&. This might be useful for
  14599. installations where a file root has a very large number of files and performance
  14600. is impacted.
  14601. .INDENT 0.0
  14602. .INDENT 3.5
  14603. .sp
  14604. .nf
  14605. .ft C
  14606. fileserver_limit_traversal: False
  14607. .ft P
  14608. .fi
  14609. .UNINDENT
  14610. .UNINDENT
  14611. .SS \fBhash_type\fP
  14612. .sp
  14613. Default: \fBsha256\fP
  14614. .sp
  14615. The hash_type is the hash to use when discovering the hash of a file on the
  14616. local fileserver. The default is sha256, but md5, sha1, sha224, sha384, and
  14617. sha512 are also supported.
  14618. .INDENT 0.0
  14619. .INDENT 3.5
  14620. .sp
  14621. .nf
  14622. .ft C
  14623. hash_type: sha256
  14624. .ft P
  14625. .fi
  14626. .UNINDENT
  14627. .UNINDENT
  14628. .SS Pillar Configuration
  14629. .SS \fBpillar_roots\fP
  14630. .sp
  14631. Default:
  14632. .INDENT 0.0
  14633. .INDENT 3.5
  14634. .sp
  14635. .nf
  14636. .ft C
  14637. base:
  14638. \- /srv/pillar
  14639. .ft P
  14640. .fi
  14641. .UNINDENT
  14642. .UNINDENT
  14643. .sp
  14644. When using a local \fI\%file_client\fP, this parameter is used to setup
  14645. the pillar environments.
  14646. .INDENT 0.0
  14647. .INDENT 3.5
  14648. .sp
  14649. .nf
  14650. .ft C
  14651. pillar_roots:
  14652. base:
  14653. \- /srv/pillar
  14654. dev:
  14655. \- /srv/pillar/dev
  14656. prod:
  14657. \- /srv/pillar/prod
  14658. .ft P
  14659. .fi
  14660. .UNINDENT
  14661. .UNINDENT
  14662. .SS \fBon_demand_ext_pillar\fP
  14663. .sp
  14664. New in version 2016.3.6,2016.11.3,2017.7.0.
  14665. .sp
  14666. Default: \fB[\(aqlibvirt\(aq, \(aqvirtkey\(aq]\fP
  14667. .sp
  14668. When using a local \fI\%file_client\fP, this option controls which
  14669. external pillars are permitted to be used on\-demand using \fBpillar.ext\fP\&.
  14670. .INDENT 0.0
  14671. .INDENT 3.5
  14672. .sp
  14673. .nf
  14674. .ft C
  14675. on_demand_ext_pillar:
  14676. \- libvirt
  14677. \- virtkey
  14678. \- git
  14679. .ft P
  14680. .fi
  14681. .UNINDENT
  14682. .UNINDENT
  14683. .sp
  14684. \fBWARNING:\fP
  14685. .INDENT 0.0
  14686. .INDENT 3.5
  14687. This will allow a masterless minion to request specific pillar data via
  14688. \fBpillar.ext\fP, and may be considered a
  14689. security risk. However, pillar data generated in this way will not affect
  14690. the in\-memory pillar data, so this risk is
  14691. limited to instances in which states/modules/etc. (built\-in or custom) rely
  14692. upon pillar data generated by \fBpillar.ext\fP\&.
  14693. .UNINDENT
  14694. .UNINDENT
  14695. .SS \fBdecrypt_pillar\fP
  14696. .sp
  14697. New in version 2017.7.0.
  14698. .sp
  14699. Default: \fB[]\fP
  14700. .sp
  14701. A list of paths to be recursively decrypted during pillar compilation.
  14702. .INDENT 0.0
  14703. .INDENT 3.5
  14704. .sp
  14705. .nf
  14706. .ft C
  14707. decrypt_pillar:
  14708. \- \(aqfoo:bar\(aq: gpg
  14709. \- \(aqlorem:ipsum:dolor\(aq
  14710. .ft P
  14711. .fi
  14712. .UNINDENT
  14713. .UNINDENT
  14714. .sp
  14715. Entries in this list can be formatted either as a simple string, or as a
  14716. key/value pair, with the key being the pillar location, and the value being the
  14717. renderer to use for pillar decryption. If the former is used, the renderer
  14718. specified by \fI\%decrypt_pillar_default\fP will be used.
  14719. .SS \fBdecrypt_pillar_delimiter\fP
  14720. .sp
  14721. New in version 2017.7.0.
  14722. .sp
  14723. Default: \fB:\fP
  14724. .sp
  14725. The delimiter used to distinguish nested data structures in the
  14726. \fI\%decrypt_pillar\fP option.
  14727. .INDENT 0.0
  14728. .INDENT 3.5
  14729. .sp
  14730. .nf
  14731. .ft C
  14732. decrypt_pillar_delimiter: \(aq|\(aq
  14733. decrypt_pillar:
  14734. \- \(aqfoo|bar\(aq: gpg
  14735. \- \(aqlorem|ipsum|dolor\(aq
  14736. .ft P
  14737. .fi
  14738. .UNINDENT
  14739. .UNINDENT
  14740. .SS \fBdecrypt_pillar_default\fP
  14741. .sp
  14742. New in version 2017.7.0.
  14743. .sp
  14744. Default: \fBgpg\fP
  14745. .sp
  14746. The default renderer used for decryption, if one is not specified for a given
  14747. pillar key in \fI\%decrypt_pillar\fP\&.
  14748. .INDENT 0.0
  14749. .INDENT 3.5
  14750. .sp
  14751. .nf
  14752. .ft C
  14753. decrypt_pillar_default: my_custom_renderer
  14754. .ft P
  14755. .fi
  14756. .UNINDENT
  14757. .UNINDENT
  14758. .SS \fBdecrypt_pillar_renderers\fP
  14759. .sp
  14760. New in version 2017.7.0.
  14761. .sp
  14762. Default: \fB[\(aqgpg\(aq]\fP
  14763. .sp
  14764. List of renderers which are permitted to be used for pillar decryption.
  14765. .INDENT 0.0
  14766. .INDENT 3.5
  14767. .sp
  14768. .nf
  14769. .ft C
  14770. decrypt_pillar_renderers:
  14771. \- gpg
  14772. \- my_custom_renderer
  14773. .ft P
  14774. .fi
  14775. .UNINDENT
  14776. .UNINDENT
  14777. .SS \fBpillarenv\fP
  14778. .sp
  14779. Default: \fBNone\fP
  14780. .sp
  14781. Isolates the pillar environment on the minion side. This functions the same as
  14782. the environment setting, but for pillar instead of states.
  14783. .INDENT 0.0
  14784. .INDENT 3.5
  14785. .sp
  14786. .nf
  14787. .ft C
  14788. pillarenv: dev
  14789. .ft P
  14790. .fi
  14791. .UNINDENT
  14792. .UNINDENT
  14793. .SS \fBpillarenv_from_saltenv\fP
  14794. .sp
  14795. New in version 2017.7.0.
  14796. .sp
  14797. Default: \fBFalse\fP
  14798. .sp
  14799. When set to \fBTrue\fP, the \fI\%pillarenv\fP value will assume the value
  14800. of the effective saltenv when running states. This essentially makes \fBsalt \(aq*\(aq
  14801. state.sls mysls saltenv=dev\fP equivalent to \fBsalt \(aq*\(aq state.sls mysls
  14802. saltenv=dev pillarenv=dev\fP\&. If \fI\%pillarenv\fP is set, either in the
  14803. minion config file or via the CLI, it will override this option.
  14804. .INDENT 0.0
  14805. .INDENT 3.5
  14806. .sp
  14807. .nf
  14808. .ft C
  14809. pillarenv_from_saltenv: True
  14810. .ft P
  14811. .fi
  14812. .UNINDENT
  14813. .UNINDENT
  14814. .SS \fBpillar_raise_on_missing\fP
  14815. .sp
  14816. New in version 2015.5.0.
  14817. .sp
  14818. Default: \fBFalse\fP
  14819. .sp
  14820. Set this option to \fBTrue\fP to force a \fBKeyError\fP to be raised whenever an
  14821. attempt to retrieve a named value from pillar fails. When this option is set
  14822. to \fBFalse\fP, the failed attempt returns an empty string.
  14823. .SS \fBminion_pillar_cache\fP
  14824. .sp
  14825. New in version 2016.3.0.
  14826. .sp
  14827. Default: \fBFalse\fP
  14828. .sp
  14829. The minion can locally cache rendered pillar data under
  14830. \fI\%cachedir\fP/pillar. This allows a temporarily disconnected minion
  14831. to access previously cached pillar data by invoking salt\-call with the \-\-local
  14832. and \-\-pillar_root=:conf_minion:\fIcachedir\fP/pillar options. Before enabling this
  14833. setting consider that the rendered pillar may contain security sensitive data.
  14834. Appropriate access restrictions should be in place. By default the saved pillar
  14835. data will be readable only by the user account running salt. By default this
  14836. feature is disabled, to enable set minion_pillar_cache to \fBTrue\fP\&.
  14837. .INDENT 0.0
  14838. .INDENT 3.5
  14839. .sp
  14840. .nf
  14841. .ft C
  14842. minion_pillar_cache: False
  14843. .ft P
  14844. .fi
  14845. .UNINDENT
  14846. .UNINDENT
  14847. .SS \fBfile_recv_max_size\fP
  14848. .sp
  14849. New in version 2014.7.0.
  14850. .sp
  14851. Default: \fB100\fP
  14852. .sp
  14853. Set a hard\-limit on the size of the files that can be pushed to the master.
  14854. It will be interpreted as megabytes.
  14855. .INDENT 0.0
  14856. .INDENT 3.5
  14857. .sp
  14858. .nf
  14859. .ft C
  14860. file_recv_max_size: 100
  14861. .ft P
  14862. .fi
  14863. .UNINDENT
  14864. .UNINDENT
  14865. .SS \fBpass_to_ext_pillars\fP
  14866. .sp
  14867. Specify a list of configuration keys whose values are to be passed to
  14868. external pillar functions.
  14869. .sp
  14870. Suboptions can be specified using the \(aq:\(aq notation (i.e. \fBoption:suboption\fP)
  14871. .sp
  14872. The values are merged and included in the \fBextra_minion_data\fP optional
  14873. parameter of the external pillar function. The \fBextra_minion_data\fP parameter
  14874. is passed only to the external pillar functions that have it explicitly
  14875. specified in their definition.
  14876. .sp
  14877. If the config contains
  14878. .INDENT 0.0
  14879. .INDENT 3.5
  14880. .sp
  14881. .nf
  14882. .ft C
  14883. opt1: value1
  14884. opt2:
  14885. subopt1: value2
  14886. subopt2: value3
  14887. pass_to_ext_pillars:
  14888. \- opt1
  14889. \- opt2: subopt1
  14890. .ft P
  14891. .fi
  14892. .UNINDENT
  14893. .UNINDENT
  14894. .sp
  14895. the \fBextra_minion_data\fP parameter will be
  14896. .INDENT 0.0
  14897. .INDENT 3.5
  14898. .sp
  14899. .nf
  14900. .ft C
  14901. {"opt1": "value1", "opt2": {"subopt1": "value2"}}
  14902. .ft P
  14903. .fi
  14904. .UNINDENT
  14905. .UNINDENT
  14906. .SS Security Settings
  14907. .SS \fBopen_mode\fP
  14908. .sp
  14909. Default: \fBFalse\fP
  14910. .sp
  14911. Open mode can be used to clean out the PKI key received from the Salt master,
  14912. turn on open mode, restart the minion, then turn off open mode and restart the
  14913. minion to clean the keys.
  14914. .INDENT 0.0
  14915. .INDENT 3.5
  14916. .sp
  14917. .nf
  14918. .ft C
  14919. open_mode: False
  14920. .ft P
  14921. .fi
  14922. .UNINDENT
  14923. .UNINDENT
  14924. .SS \fBmaster_finger\fP
  14925. .sp
  14926. Default: \fB\(aq\(aq\fP
  14927. .sp
  14928. Fingerprint of the master public key to validate the identity of your Salt master
  14929. before the initial key exchange. The master fingerprint can be found as \fBmaster.pub\fP by running
  14930. "salt\-key \-F master" on the Salt master.
  14931. .INDENT 0.0
  14932. .INDENT 3.5
  14933. .sp
  14934. .nf
  14935. .ft C
  14936. master_finger: \(aqba:30:65:2a:d6:9e:20:4f:d8:b2:f3:a7:d4:65:11:13\(aq
  14937. .ft P
  14938. .fi
  14939. .UNINDENT
  14940. .UNINDENT
  14941. .SS \fBkeysize\fP
  14942. .sp
  14943. Default: \fB2048\fP
  14944. .sp
  14945. The size of key that should be generated when creating new keys.
  14946. .INDENT 0.0
  14947. .INDENT 3.5
  14948. .sp
  14949. .nf
  14950. .ft C
  14951. keysize: 2048
  14952. .ft P
  14953. .fi
  14954. .UNINDENT
  14955. .UNINDENT
  14956. .SS \fBpermissive_pki_access\fP
  14957. .sp
  14958. Default: \fBFalse\fP
  14959. .sp
  14960. Enable permissive access to the salt keys. This allows you to run the
  14961. master or minion as root, but have a non\-root group be given access to
  14962. your pki_dir. To make the access explicit, root must belong to the group
  14963. you\(aqve given access to. This is potentially quite insecure.
  14964. .INDENT 0.0
  14965. .INDENT 3.5
  14966. .sp
  14967. .nf
  14968. .ft C
  14969. permissive_pki_access: False
  14970. .ft P
  14971. .fi
  14972. .UNINDENT
  14973. .UNINDENT
  14974. .SS \fBverify_master_pubkey_sign\fP
  14975. .sp
  14976. Default: \fBFalse\fP
  14977. .sp
  14978. Enables verification of the master\-public\-signature returned by the master in
  14979. auth\-replies. Please see the tutorial on how to configure this properly
  14980. \fI\%Multimaster\-PKI with Failover Tutorial\fP
  14981. .sp
  14982. New in version 2014.7.0.
  14983. .INDENT 0.0
  14984. .INDENT 3.5
  14985. .sp
  14986. .nf
  14987. .ft C
  14988. verify_master_pubkey_sign: True
  14989. .ft P
  14990. .fi
  14991. .UNINDENT
  14992. .UNINDENT
  14993. .sp
  14994. If this is set to \fBTrue\fP, \fBmaster_sign_pubkey\fP must be also set
  14995. to \fBTrue\fP in the master configuration file.
  14996. .SS \fBmaster_sign_key_name\fP
  14997. .sp
  14998. Default: \fBmaster_sign\fP
  14999. .sp
  15000. The filename without the \fI\&.pub\fP suffix of the public key that should be used
  15001. for verifying the signature from the master. The file must be located in the
  15002. minion\(aqs pki directory.
  15003. .sp
  15004. New in version 2014.7.0.
  15005. .INDENT 0.0
  15006. .INDENT 3.5
  15007. .sp
  15008. .nf
  15009. .ft C
  15010. master_sign_key_name: <filename_without_suffix>
  15011. .ft P
  15012. .fi
  15013. .UNINDENT
  15014. .UNINDENT
  15015. .SS \fBautosign_grains\fP
  15016. .sp
  15017. New in version 2018.3.0.
  15018. .sp
  15019. Default: \fBnot defined\fP
  15020. .sp
  15021. The grains that should be sent to the master on authentication to decide if
  15022. the minion\(aqs key should be accepted automatically.
  15023. .sp
  15024. Please see the Autoaccept Minions from Grains
  15025. documentation for more information.
  15026. .INDENT 0.0
  15027. .INDENT 3.5
  15028. .sp
  15029. .nf
  15030. .ft C
  15031. autosign_grains:
  15032. \- uuid
  15033. \- server_id
  15034. .ft P
  15035. .fi
  15036. .UNINDENT
  15037. .UNINDENT
  15038. .SS \fBalways_verify_signature\fP
  15039. .sp
  15040. Default: \fBFalse\fP
  15041. .sp
  15042. If \fI\%verify_master_pubkey_sign\fP is enabled, the signature is only verified
  15043. if the public\-key of the master changes. If the signature should always be verified,
  15044. this can be set to \fBTrue\fP\&.
  15045. .sp
  15046. New in version 2014.7.0.
  15047. .INDENT 0.0
  15048. .INDENT 3.5
  15049. .sp
  15050. .nf
  15051. .ft C
  15052. always_verify_signature: True
  15053. .ft P
  15054. .fi
  15055. .UNINDENT
  15056. .UNINDENT
  15057. .SS \fBcmd_blacklist_glob\fP
  15058. .sp
  15059. Default: \fB[]\fP
  15060. .sp
  15061. If \fI\%cmd_blacklist_glob\fP is enabled then any shell command called over
  15062. remote execution or via salt\-call will be checked against the glob matches found in
  15063. the \fIcmd_blacklist_glob\fP list and any matched shell command will be blocked.
  15064. .sp
  15065. \fBNOTE:\fP
  15066. .INDENT 0.0
  15067. .INDENT 3.5
  15068. This blacklist is only applied to direct executions made by the \fIsalt\fP and
  15069. \fIsalt\-call\fP commands. This does NOT blacklist commands called from states
  15070. or shell commands executed from other modules.
  15071. .UNINDENT
  15072. .UNINDENT
  15073. .sp
  15074. New in version 2016.11.0.
  15075. .INDENT 0.0
  15076. .INDENT 3.5
  15077. .sp
  15078. .nf
  15079. .ft C
  15080. cmd_blacklist_glob:
  15081. \- \(aqrm * \(aq
  15082. \- \(aqcat /etc/* \(aq
  15083. .ft P
  15084. .fi
  15085. .UNINDENT
  15086. .UNINDENT
  15087. .SS \fBcmd_whitelist_glob\fP
  15088. .sp
  15089. Default: \fB[]\fP
  15090. .sp
  15091. If \fI\%cmd_whitelist_glob\fP is enabled then any shell command called over
  15092. remote execution or via salt\-call will be checked against the glob matches found in
  15093. the \fIcmd_whitelist_glob\fP list and any shell command NOT found in the list will be
  15094. blocked. If \fIcmd_whitelist_glob\fP is NOT SET, then all shell commands are permitted.
  15095. .sp
  15096. \fBNOTE:\fP
  15097. .INDENT 0.0
  15098. .INDENT 3.5
  15099. This whitelist is only applied to direct executions made by the \fIsalt\fP and
  15100. \fIsalt\-call\fP commands. This does NOT restrict commands called from states
  15101. or shell commands executed from other modules.
  15102. .UNINDENT
  15103. .UNINDENT
  15104. .sp
  15105. New in version 2016.11.0.
  15106. .INDENT 0.0
  15107. .INDENT 3.5
  15108. .sp
  15109. .nf
  15110. .ft C
  15111. cmd_whitelist_glob:
  15112. \- \(aqls * \(aq
  15113. \- \(aqcat /etc/fstab\(aq
  15114. .ft P
  15115. .fi
  15116. .UNINDENT
  15117. .UNINDENT
  15118. .SS \fBssl\fP
  15119. .sp
  15120. New in version 2016.11.0.
  15121. .sp
  15122. Default: \fBNone\fP
  15123. .sp
  15124. TLS/SSL connection options. This could be set to a dictionary containing
  15125. arguments corresponding to python \fBssl.wrap_socket\fP method. For details see
  15126. \fI\%Tornado\fP
  15127. and \fI\%Python\fP
  15128. documentation.
  15129. .sp
  15130. Note: to set enum arguments values like \fBcert_reqs\fP and \fBssl_version\fP use
  15131. constant names without ssl module prefix: \fBCERT_REQUIRED\fP or \fBPROTOCOL_SSLv23\fP\&.
  15132. .INDENT 0.0
  15133. .INDENT 3.5
  15134. .sp
  15135. .nf
  15136. .ft C
  15137. ssl:
  15138. keyfile: <path_to_keyfile>
  15139. certfile: <path_to_certfile>
  15140. ssl_version: PROTOCOL_TLSv1_2
  15141. .ft P
  15142. .fi
  15143. .UNINDENT
  15144. .UNINDENT
  15145. .SS Reactor Settings
  15146. .SS \fBreactor\fP
  15147. .sp
  15148. Default: \fB[]\fP
  15149. .sp
  15150. Defines a salt reactor. See the Reactor documentation for more
  15151. information.
  15152. .INDENT 0.0
  15153. .INDENT 3.5
  15154. .sp
  15155. .nf
  15156. .ft C
  15157. reactor: []
  15158. .ft P
  15159. .fi
  15160. .UNINDENT
  15161. .UNINDENT
  15162. .SS \fBreactor_refresh_interval\fP
  15163. .sp
  15164. Default: \fB60\fP
  15165. .sp
  15166. The TTL for the cache of the reactor configuration.
  15167. .INDENT 0.0
  15168. .INDENT 3.5
  15169. .sp
  15170. .nf
  15171. .ft C
  15172. reactor_refresh_interval: 60
  15173. .ft P
  15174. .fi
  15175. .UNINDENT
  15176. .UNINDENT
  15177. .SS \fBreactor_worker_threads\fP
  15178. .sp
  15179. Default: \fB10\fP
  15180. .sp
  15181. The number of workers for the runner/wheel in the reactor.
  15182. .INDENT 0.0
  15183. .INDENT 3.5
  15184. .sp
  15185. .nf
  15186. .ft C
  15187. reactor_worker_threads: 10
  15188. .ft P
  15189. .fi
  15190. .UNINDENT
  15191. .UNINDENT
  15192. .SS \fBreactor_worker_hwm\fP
  15193. .sp
  15194. Default: \fB10000\fP
  15195. .sp
  15196. The queue size for workers in the reactor.
  15197. .INDENT 0.0
  15198. .INDENT 3.5
  15199. .sp
  15200. .nf
  15201. .ft C
  15202. reactor_worker_hwm: 10000
  15203. .ft P
  15204. .fi
  15205. .UNINDENT
  15206. .UNINDENT
  15207. .SS Thread Settings
  15208. .SS \fBmultiprocessing\fP
  15209. .sp
  15210. Default: \fBTrue\fP
  15211. .sp
  15212. If \fBmultiprocessing\fP is enabled when a minion receives a
  15213. publication a new process is spawned and the command is executed therein.
  15214. Conversely, if \fBmultiprocessing\fP is disabled the new publication will be run
  15215. executed in a thread.
  15216. .INDENT 0.0
  15217. .INDENT 3.5
  15218. .sp
  15219. .nf
  15220. .ft C
  15221. multiprocessing: True
  15222. .ft P
  15223. .fi
  15224. .UNINDENT
  15225. .UNINDENT
  15226. .SS \fBprocess_count_max\fP
  15227. .sp
  15228. New in version 2018.3.0.
  15229. .sp
  15230. Default: \fB\-1\fP
  15231. .sp
  15232. Limit the maximum amount of processes or threads created by \fBsalt\-minion\fP\&.
  15233. This is useful to avoid resource exhaustion in case the minion receives more
  15234. publications than it is able to handle, as it limits the number of spawned
  15235. processes or threads. \fB\-1\fP is the default and disables the limit.
  15236. .INDENT 0.0
  15237. .INDENT 3.5
  15238. .sp
  15239. .nf
  15240. .ft C
  15241. process_count_max: \-1
  15242. .ft P
  15243. .fi
  15244. .UNINDENT
  15245. .UNINDENT
  15246. .SS Minion Logging Settings
  15247. .SS \fBlog_file\fP
  15248. .sp
  15249. Default: \fB/var/log/salt/minion\fP
  15250. .sp
  15251. The minion log can be sent to a regular file, local path name, or network
  15252. location. See also \fBlog_file\fP\&.
  15253. .sp
  15254. Examples:
  15255. .INDENT 0.0
  15256. .INDENT 3.5
  15257. .sp
  15258. .nf
  15259. .ft C
  15260. log_file: /var/log/salt/minion
  15261. .ft P
  15262. .fi
  15263. .UNINDENT
  15264. .UNINDENT
  15265. .INDENT 0.0
  15266. .INDENT 3.5
  15267. .sp
  15268. .nf
  15269. .ft C
  15270. log_file: file:///dev/log
  15271. .ft P
  15272. .fi
  15273. .UNINDENT
  15274. .UNINDENT
  15275. .INDENT 0.0
  15276. .INDENT 3.5
  15277. .sp
  15278. .nf
  15279. .ft C
  15280. log_file: udp://loghost:10514
  15281. .ft P
  15282. .fi
  15283. .UNINDENT
  15284. .UNINDENT
  15285. .SS \fBlog_level\fP
  15286. .sp
  15287. Default: \fBwarning\fP
  15288. .sp
  15289. The level of messages to send to the console. See also \fBlog_level\fP\&.
  15290. .INDENT 0.0
  15291. .INDENT 3.5
  15292. .sp
  15293. .nf
  15294. .ft C
  15295. log_level: warning
  15296. .ft P
  15297. .fi
  15298. .UNINDENT
  15299. .UNINDENT
  15300. .SS \fBlog_level_logfile\fP
  15301. .sp
  15302. Default: \fBwarning\fP
  15303. .sp
  15304. The level of messages to send to the log file. See also
  15305. \fBlog_level_logfile\fP\&. When it is not set explicitly
  15306. it will inherit the level set by \fBlog_level\fP option.
  15307. .INDENT 0.0
  15308. .INDENT 3.5
  15309. .sp
  15310. .nf
  15311. .ft C
  15312. log_level_logfile: warning
  15313. .ft P
  15314. .fi
  15315. .UNINDENT
  15316. .UNINDENT
  15317. .SS \fBlog_datefmt\fP
  15318. .sp
  15319. Default: \fB%H:%M:%S\fP
  15320. .sp
  15321. The date and time format used in console log messages. See also
  15322. \fBlog_datefmt\fP\&.
  15323. .INDENT 0.0
  15324. .INDENT 3.5
  15325. .sp
  15326. .nf
  15327. .ft C
  15328. log_datefmt: \(aq%H:%M:%S\(aq
  15329. .ft P
  15330. .fi
  15331. .UNINDENT
  15332. .UNINDENT
  15333. .SS \fBlog_datefmt_logfile\fP
  15334. .sp
  15335. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  15336. .sp
  15337. The date and time format used in log file messages. See also
  15338. \fBlog_datefmt_logfile\fP\&.
  15339. .INDENT 0.0
  15340. .INDENT 3.5
  15341. .sp
  15342. .nf
  15343. .ft C
  15344. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  15345. .ft P
  15346. .fi
  15347. .UNINDENT
  15348. .UNINDENT
  15349. .SS \fBlog_fmt_console\fP
  15350. .sp
  15351. Default: \fB[%(levelname)\-8s] %(message)s\fP
  15352. .sp
  15353. The format of the console logging messages. See also
  15354. \fBlog_fmt_console\fP\&.
  15355. .sp
  15356. \fBNOTE:\fP
  15357. .INDENT 0.0
  15358. .INDENT 3.5
  15359. Log colors are enabled in \fBlog_fmt_console\fP rather than the
  15360. \fBcolor\fP config since the logging system is loaded before the
  15361. minion config.
  15362. .sp
  15363. Console log colors are specified by these additional formatters:
  15364. .sp
  15365. %(colorlevel)s
  15366. %(colorname)s
  15367. %(colorprocess)s
  15368. %(colormsg)s
  15369. .sp
  15370. Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  15371. the coloring of the messages, these color formatters also include padding
  15372. as well. Color LogRecord attributes are only available for console
  15373. logging.
  15374. .UNINDENT
  15375. .UNINDENT
  15376. .INDENT 0.0
  15377. .INDENT 3.5
  15378. .sp
  15379. .nf
  15380. .ft C
  15381. log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  15382. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  15383. .ft P
  15384. .fi
  15385. .UNINDENT
  15386. .UNINDENT
  15387. .SS \fBlog_fmt_logfile\fP
  15388. .sp
  15389. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  15390. .sp
  15391. The format of the log file logging messages. See also
  15392. \fBlog_fmt_logfile\fP\&.
  15393. .INDENT 0.0
  15394. .INDENT 3.5
  15395. .sp
  15396. .nf
  15397. .ft C
  15398. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  15399. .ft P
  15400. .fi
  15401. .UNINDENT
  15402. .UNINDENT
  15403. .SS \fBlog_granular_levels\fP
  15404. .sp
  15405. Default: \fB{}\fP
  15406. .sp
  15407. This can be used to control logging levels more specifically. See also
  15408. \fBlog_granular_levels\fP\&.
  15409. .SS \fBlog_rotate_max_bytes\fP
  15410. .sp
  15411. Default: \fB0\fP
  15412. .sp
  15413. The maximum number of bytes a single log file may contain before it is rotated.
  15414. A value of 0 disables this feature. Currently only supported on Windows. On
  15415. other platforms, use an external tool such as \(aqlogrotate\(aq to manage log files.
  15416. \fBlog_rotate_max_bytes\fP
  15417. .SS \fBlog_rotate_backup_count\fP
  15418. .sp
  15419. Default: \fB0\fP
  15420. .sp
  15421. The number of backup files to keep when rotating log files. Only used if
  15422. \fI\%log_rotate_max_bytes\fP is greater than 0. Currently only supported
  15423. on Windows. On other platforms, use an external tool such as \(aqlogrotate\(aq to
  15424. manage log files.
  15425. \fBlog_rotate_backup_count\fP
  15426. .SS \fBzmq_monitor\fP
  15427. .sp
  15428. Default: \fBFalse\fP
  15429. .sp
  15430. To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  15431. supports the use of monitor sockets to log connection events. This
  15432. feature requires ZeroMQ 4.0 or higher.
  15433. .sp
  15434. To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  15435. debug level or higher.
  15436. .sp
  15437. A sample log event is as follows:
  15438. .INDENT 0.0
  15439. .INDENT 3.5
  15440. .sp
  15441. .nf
  15442. .ft C
  15443. [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  15444. \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  15445. .ft P
  15446. .fi
  15447. .UNINDENT
  15448. .UNINDENT
  15449. .sp
  15450. All events logged will include the string \fBZeroMQ event\fP\&. A connection event
  15451. should be logged as the minion starts up and initially connects to the
  15452. master. If not, check for debug log level and that the necessary version of
  15453. ZeroMQ is installed.
  15454. .SS \fBtcp_authentication_retries\fP
  15455. .sp
  15456. Default: \fB5\fP
  15457. .sp
  15458. The number of times to retry authenticating with the salt master when it comes
  15459. back online.
  15460. .sp
  15461. Zeromq does a lot to make sure when connections come back online that they
  15462. reauthenticate. The tcp transport should try to connect with a new connection
  15463. if the old one times out on reauthenticating.
  15464. .sp
  15465. \fI\-1\fP for infinite tries.
  15466. .SS \fBfailhard\fP
  15467. .sp
  15468. Default: \fBFalse\fP
  15469. .sp
  15470. Set the global failhard flag. This informs all states to stop running states
  15471. at the moment a single state fails
  15472. .INDENT 0.0
  15473. .INDENT 3.5
  15474. .sp
  15475. .nf
  15476. .ft C
  15477. failhard: False
  15478. .ft P
  15479. .fi
  15480. .UNINDENT
  15481. .UNINDENT
  15482. .SS Include Configuration
  15483. .sp
  15484. Configuration can be loaded from multiple files. The order in which this is
  15485. done is:
  15486. .INDENT 0.0
  15487. .IP 1. 3
  15488. The minion config file itself
  15489. .IP 2. 3
  15490. The files matching the glob in \fI\%default_include\fP
  15491. .IP 3. 3
  15492. The files matching the glob in \fI\%include\fP (if defined)
  15493. .UNINDENT
  15494. .sp
  15495. Each successive step overrides any values defined in the previous steps.
  15496. Therefore, any config options defined in one of the
  15497. \fI\%default_include\fP files would override the same value in the
  15498. minion config file, and any options defined in \fI\%include\fP would
  15499. override both.
  15500. .SS \fBdefault_include\fP
  15501. .sp
  15502. Default: \fBminion.d/*.conf\fP
  15503. .sp
  15504. The minion can include configuration from other files. Per default the
  15505. minion will automatically include all config files from \fIminion.d/*.conf\fP
  15506. where minion.d is relative to the directory of the minion configuration
  15507. file.
  15508. .sp
  15509. \fBNOTE:\fP
  15510. .INDENT 0.0
  15511. .INDENT 3.5
  15512. Salt creates files in the \fBminion.d\fP directory for its own use. These
  15513. files are prefixed with an underscore. A common example of this is the
  15514. \fB_schedule.conf\fP file.
  15515. .UNINDENT
  15516. .UNINDENT
  15517. .SS \fBinclude\fP
  15518. .sp
  15519. Default: \fBnot defined\fP
  15520. .sp
  15521. The minion can include configuration from other files. To enable this,
  15522. pass a list of paths to this option. The paths can be either relative or
  15523. absolute; if relative, they are considered to be relative to the directory
  15524. the main minion configuration file lives in. Paths can make use of
  15525. shell\-style globbing. If no files are matched by a path passed to this
  15526. option then the minion will log a warning message.
  15527. .INDENT 0.0
  15528. .INDENT 3.5
  15529. .sp
  15530. .nf
  15531. .ft C
  15532. # Include files from a minion.d directory in the same
  15533. # directory as the minion config file
  15534. include: minion.d/*.conf
  15535. # Include a single extra file into the configuration
  15536. include: /etc/roles/webserver
  15537. # Include several files and the minion.d directory
  15538. include:
  15539. \- extra_config
  15540. \- minion.d/*
  15541. \- /etc/roles/webserver
  15542. .ft P
  15543. .fi
  15544. .UNINDENT
  15545. .UNINDENT
  15546. .SS Keepalive Settings
  15547. .SS \fBtcp_keepalive\fP
  15548. .sp
  15549. Default: \fBTrue\fP
  15550. .sp
  15551. The tcp keepalive interval to set on TCP ports. This setting can be used to tune Salt
  15552. connectivity issues in messy network environments with misbehaving firewalls.
  15553. .INDENT 0.0
  15554. .INDENT 3.5
  15555. .sp
  15556. .nf
  15557. .ft C
  15558. tcp_keepalive: True
  15559. .ft P
  15560. .fi
  15561. .UNINDENT
  15562. .UNINDENT
  15563. .SS \fBtcp_keepalive_cnt\fP
  15564. .sp
  15565. Default: \fB\-1\fP
  15566. .sp
  15567. Sets the ZeroMQ TCP keepalive count. May be used to tune issues with minion disconnects.
  15568. .INDENT 0.0
  15569. .INDENT 3.5
  15570. .sp
  15571. .nf
  15572. .ft C
  15573. tcp_keepalive_cnt: \-1
  15574. .ft P
  15575. .fi
  15576. .UNINDENT
  15577. .UNINDENT
  15578. .SS \fBtcp_keepalive_idle\fP
  15579. .sp
  15580. Default: \fB300\fP
  15581. .sp
  15582. Sets ZeroMQ TCP keepalive idle. May be used to tune issues with minion disconnects.
  15583. .INDENT 0.0
  15584. .INDENT 3.5
  15585. .sp
  15586. .nf
  15587. .ft C
  15588. tcp_keepalive_idle: 300
  15589. .ft P
  15590. .fi
  15591. .UNINDENT
  15592. .UNINDENT
  15593. .SS \fBtcp_keepalive_intvl\fP
  15594. .sp
  15595. Default: \fB\-1\fP
  15596. .sp
  15597. Sets ZeroMQ TCP keepalive interval. May be used to tune issues with minion disconnects.
  15598. .INDENT 0.0
  15599. .INDENT 3.5
  15600. .sp
  15601. .nf
  15602. .ft C
  15603. tcp_keepalive_intvl\(aq: \-1
  15604. .ft P
  15605. .fi
  15606. .UNINDENT
  15607. .UNINDENT
  15608. .SS Frozen Build Update Settings
  15609. .sp
  15610. These options control how \fBsalt.modules.saltutil.update()\fP works with esky
  15611. frozen apps. For more information look at \fI\%https://github.com/cloudmatrix/esky/\fP\&.
  15612. .SS \fBupdate_url\fP
  15613. .sp
  15614. Default: \fBFalse\fP (Update feature is disabled)
  15615. .sp
  15616. The url to use when looking for application updates. Esky depends on directory
  15617. listings to search for new versions. A webserver running on your Master is a
  15618. good starting point for most setups.
  15619. .INDENT 0.0
  15620. .INDENT 3.5
  15621. .sp
  15622. .nf
  15623. .ft C
  15624. update_url: \(aqhttp://salt.example.com/minion\-updates\(aq
  15625. .ft P
  15626. .fi
  15627. .UNINDENT
  15628. .UNINDENT
  15629. .SS \fBupdate_restart_services\fP
  15630. .sp
  15631. Default: \fB[]\fP (service restarting on update is disabled)
  15632. .sp
  15633. A list of services to restart when the minion software is updated. This would
  15634. typically just be a list containing the minion\(aqs service name, but you may
  15635. have other services that need to go with it.
  15636. .INDENT 0.0
  15637. .INDENT 3.5
  15638. .sp
  15639. .nf
  15640. .ft C
  15641. update_restart_services: [\(aqsalt\-minion\(aq]
  15642. .ft P
  15643. .fi
  15644. .UNINDENT
  15645. .UNINDENT
  15646. .SS \fBwinrepo_cache_expire_min\fP
  15647. .sp
  15648. New in version 2016.11.0.
  15649. .sp
  15650. Default: \fB1800\fP
  15651. .sp
  15652. If set to a nonzero integer, then passing \fBrefresh=True\fP to functions in the
  15653. \fBwindows pkg module\fP will not refresh the windows
  15654. repo metadata if the age of the metadata is less than this value. The exception
  15655. to this is \fBpkg.refresh_db\fP, which
  15656. will always refresh the metadata, regardless of age.
  15657. .INDENT 0.0
  15658. .INDENT 3.5
  15659. .sp
  15660. .nf
  15661. .ft C
  15662. winrepo_cache_expire_min: 1800
  15663. .ft P
  15664. .fi
  15665. .UNINDENT
  15666. .UNINDENT
  15667. .SS \fBwinrepo_cache_expire_max\fP
  15668. .sp
  15669. New in version 2016.11.0.
  15670. .sp
  15671. Default: \fB21600\fP
  15672. .sp
  15673. If the windows repo metadata is older than this value, and the metadata is
  15674. needed by a function in the \fBwindows pkg module\fP,
  15675. the metadata will be refreshed.
  15676. .INDENT 0.0
  15677. .INDENT 3.5
  15678. .sp
  15679. .nf
  15680. .ft C
  15681. winrepo_cache_expire_max: 86400
  15682. .ft P
  15683. .fi
  15684. .UNINDENT
  15685. .UNINDENT
  15686. .SS Minion Windows Software Repo Settings
  15687. .sp
  15688. \fBIMPORTANT:\fP
  15689. .INDENT 0.0
  15690. .INDENT 3.5
  15691. To use these config options, the minion can be running in master\-minion or
  15692. masterless mode.
  15693. .UNINDENT
  15694. .UNINDENT
  15695. .SS \fBwinrepo_source_dir\fP
  15696. .sp
  15697. Default: \fBsalt://win/repo\-ng/\fP
  15698. .sp
  15699. The source location for the winrepo sls files.
  15700. .INDENT 0.0
  15701. .INDENT 3.5
  15702. .sp
  15703. .nf
  15704. .ft C
  15705. winrepo_source_dir: salt://win/repo\-ng/
  15706. .ft P
  15707. .fi
  15708. .UNINDENT
  15709. .UNINDENT
  15710. .SS Standalone Minion Windows Software Repo Settings
  15711. .sp
  15712. \fBIMPORTANT:\fP
  15713. .INDENT 0.0
  15714. .INDENT 3.5
  15715. To use these config options, the minion must be running in masterless mode
  15716. (set \fI\%file_client\fP to \fBlocal\fP).
  15717. .UNINDENT
  15718. .UNINDENT
  15719. .SS \fBwinrepo_dir\fP
  15720. .sp
  15721. Changed in version 2015.8.0: Renamed from \fBwin_repo\fP to \fBwinrepo_dir\fP\&. Also, this option did not
  15722. have a default value until this version.
  15723. .sp
  15724. Default: \fBC:\esalt\esrv\esalt\ewin\erepo\fP
  15725. .sp
  15726. Location on the minion where the \fI\%winrepo_remotes\fP are checked
  15727. out.
  15728. .INDENT 0.0
  15729. .INDENT 3.5
  15730. .sp
  15731. .nf
  15732. .ft C
  15733. winrepo_dir: \(aqD:\ewinrepo\(aq
  15734. .ft P
  15735. .fi
  15736. .UNINDENT
  15737. .UNINDENT
  15738. .SS \fBwinrepo_dir_ng\fP
  15739. .sp
  15740. New in version 2015.8.0: A new ng repo was added.
  15741. .sp
  15742. Default: \fB/srv/salt/win/repo\-ng\fP
  15743. .sp
  15744. Location on the minion where the \fI\%winrepo_remotes_ng\fP are checked
  15745. out for 2015.8.0 and later minions.
  15746. .INDENT 0.0
  15747. .INDENT 3.5
  15748. .sp
  15749. .nf
  15750. .ft C
  15751. winrepo_dir_ng: /srv/salt/win/repo\-ng
  15752. .ft P
  15753. .fi
  15754. .UNINDENT
  15755. .UNINDENT
  15756. .SS \fBwinrepo_cachefile\fP
  15757. .sp
  15758. Changed in version 2015.8.0: Renamed from \fBwin_repo_cachefile\fP to \fBwinrepo_cachefile\fP\&. Also,
  15759. this option did not have a default value until this version.
  15760. .sp
  15761. Default: \fBwinrepo.p\fP
  15762. .sp
  15763. Path relative to \fI\%winrepo_dir\fP where the winrepo cache should be
  15764. created.
  15765. .INDENT 0.0
  15766. .INDENT 3.5
  15767. .sp
  15768. .nf
  15769. .ft C
  15770. winrepo_cachefile: winrepo.p
  15771. .ft P
  15772. .fi
  15773. .UNINDENT
  15774. .UNINDENT
  15775. .SS \fBwinrepo_remotes\fP
  15776. .sp
  15777. Changed in version 2015.8.0: Renamed from \fBwin_gitrepos\fP to \fBwinrepo_remotes\fP\&. Also, this option did
  15778. not have a default value until this version.
  15779. .sp
  15780. New in version 2015.8.0.
  15781. .sp
  15782. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq]\fP
  15783. .sp
  15784. List of git repositories to checkout and include in the winrepo
  15785. .INDENT 0.0
  15786. .INDENT 3.5
  15787. .sp
  15788. .nf
  15789. .ft C
  15790. winrepo_remotes:
  15791. \- https://github.com/saltstack/salt\-winrepo.git
  15792. .ft P
  15793. .fi
  15794. .UNINDENT
  15795. .UNINDENT
  15796. .sp
  15797. To specify a specific revision of the repository, prepend a commit ID to the
  15798. URL of the repository:
  15799. .INDENT 0.0
  15800. .INDENT 3.5
  15801. .sp
  15802. .nf
  15803. .ft C
  15804. winrepo_remotes:
  15805. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo.git\(aq
  15806. .ft P
  15807. .fi
  15808. .UNINDENT
  15809. .UNINDENT
  15810. .sp
  15811. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  15812. ID is useful in that it allows one to revert back to a previous version in the
  15813. event that an error is introduced in the latest revision of the repo.
  15814. .SS \fBwinrepo_remotes_ng\fP
  15815. .sp
  15816. New in version 2015.8.0: A new ng repo was added.
  15817. .sp
  15818. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq]\fP
  15819. .sp
  15820. List of git repositories to checkout and include in the winrepo for
  15821. 2015.8.0 and later minions.
  15822. .INDENT 0.0
  15823. .INDENT 3.5
  15824. .sp
  15825. .nf
  15826. .ft C
  15827. winrepo_remotes_ng:
  15828. \- https://github.com/saltstack/salt\-winrepo\-ng.git
  15829. .ft P
  15830. .fi
  15831. .UNINDENT
  15832. .UNINDENT
  15833. .sp
  15834. To specify a specific revision of the repository, prepend a commit ID to the
  15835. URL of the repository:
  15836. .INDENT 0.0
  15837. .INDENT 3.5
  15838. .sp
  15839. .nf
  15840. .ft C
  15841. winrepo_remotes_ng:
  15842. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  15843. .ft P
  15844. .fi
  15845. .UNINDENT
  15846. .UNINDENT
  15847. .sp
  15848. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  15849. ID is useful in that it allows one to revert back to a previous version in the
  15850. event that an error is introduced in the latest revision of the repo.
  15851. .SS \fBssh_merge_pillar\fP
  15852. .sp
  15853. New in version 2018.3.2.
  15854. .sp
  15855. Default: \fBTrue\fP
  15856. .sp
  15857. Merges the compiled pillar data with the pillar data already available globally.
  15858. This is useful when using \fBsalt\-ssh\fP or \fBsalt\-call \-\-local\fP and overriding the pillar
  15859. data in a state file:
  15860. .INDENT 0.0
  15861. .INDENT 3.5
  15862. .sp
  15863. .nf
  15864. .ft C
  15865. apply_showpillar:
  15866. module.run:
  15867. \- name: state.apply
  15868. \- mods:
  15869. \- showpillar
  15870. \- kwargs:
  15871. pillar:
  15872. test: "foo bar"
  15873. .ft P
  15874. .fi
  15875. .UNINDENT
  15876. .UNINDENT
  15877. .sp
  15878. If set to \fBTrue\fP the \fBshowpillar\fP state will have access to the
  15879. global pillar data.
  15880. .sp
  15881. If set to \fBFalse\fP only the overriding pillar data will be available
  15882. to the \fBshowpillar\fP state.
  15883. .SS Configuring the Salt Proxy Minion
  15884. .sp
  15885. The Salt system is amazingly simple and easy to configure. The two components
  15886. of the Salt system each have a respective configuration file. The
  15887. \fBsalt\-master\fP is configured via the master configuration file, and the
  15888. \fBsalt\-proxy\fP is configured via the proxy configuration file.
  15889. .sp
  15890. \fBSEE ALSO:\fP
  15891. .INDENT 0.0
  15892. .INDENT 3.5
  15893. example proxy minion configuration file
  15894. .UNINDENT
  15895. .UNINDENT
  15896. .sp
  15897. The Salt Minion configuration is very simple. Typically, the only value that
  15898. needs to be set is the master value so the proxy knows where to locate its master.
  15899. .sp
  15900. By default, the salt\-proxy configuration will be in \fB/etc/salt/proxy\fP\&.
  15901. A notable exception is FreeBSD, where the configuration will be in
  15902. \fB/usr/local/etc/salt/proxy\fP\&.
  15903. .SS Proxy\-specific Configuration Options
  15904. .SS \fBadd_proxymodule_to_opts\fP
  15905. .sp
  15906. New in version 2015.8.2.
  15907. .sp
  15908. Changed in version 2016.3.0.
  15909. .sp
  15910. Default: \fBFalse\fP
  15911. .sp
  15912. Add the proxymodule LazyLoader object to opts.
  15913. .INDENT 0.0
  15914. .INDENT 3.5
  15915. .sp
  15916. .nf
  15917. .ft C
  15918. add_proxymodule_to_opts: True
  15919. .ft P
  15920. .fi
  15921. .UNINDENT
  15922. .UNINDENT
  15923. .SS \fBproxy_merge_grains_in_module\fP
  15924. .sp
  15925. New in version 2016.3.0.
  15926. .sp
  15927. Changed in version 2017.7.0.
  15928. .sp
  15929. Default: \fBTrue\fP
  15930. .sp
  15931. If a proxymodule has a function called \fBgrains\fP, then call it during
  15932. regular grains loading and merge the results with the proxy\(aqs grains
  15933. dictionary. Otherwise it is assumed that the module calls the grains
  15934. function in a custom way and returns the data elsewhere.
  15935. .INDENT 0.0
  15936. .INDENT 3.5
  15937. .sp
  15938. .nf
  15939. .ft C
  15940. proxy_merge_grains_in_module: False
  15941. .ft P
  15942. .fi
  15943. .UNINDENT
  15944. .UNINDENT
  15945. .SS \fBproxy_keep_alive\fP
  15946. .sp
  15947. New in version 2017.7.0.
  15948. .sp
  15949. Default: \fBTrue\fP
  15950. .sp
  15951. Whether the connection with the remote device should be restarted
  15952. when dead. The proxy module must implement the \fBalive\fP function,
  15953. otherwise the connection is considered alive.
  15954. .INDENT 0.0
  15955. .INDENT 3.5
  15956. .sp
  15957. .nf
  15958. .ft C
  15959. proxy_keep_alive: False
  15960. .ft P
  15961. .fi
  15962. .UNINDENT
  15963. .UNINDENT
  15964. .SS \fBproxy_keep_alive_interval\fP
  15965. .sp
  15966. New in version 2017.7.0.
  15967. .sp
  15968. Default: \fB1\fP
  15969. .sp
  15970. The frequency of keepalive checks, in minutes. It requires the
  15971. \fI\%proxy_keep_alive\fP option to be enabled
  15972. (and the proxy module to implement the \fBalive\fP function).
  15973. .INDENT 0.0
  15974. .INDENT 3.5
  15975. .sp
  15976. .nf
  15977. .ft C
  15978. proxy_keep_alive_interval: 5
  15979. .ft P
  15980. .fi
  15981. .UNINDENT
  15982. .UNINDENT
  15983. .SS \fBproxy_always_alive\fP
  15984. .sp
  15985. New in version 2017.7.0.
  15986. .sp
  15987. Default: \fBTrue\fP
  15988. .sp
  15989. Whether the proxy should maintain the connection with the remote
  15990. device. Similarly to \fI\%proxy_keep_alive\fP, this option
  15991. is very specific to the design of the proxy module.
  15992. When \fI\%proxy_always_alive\fP is set to \fBFalse\fP,
  15993. the connection with the remote device is not maintained and
  15994. has to be closed after every command.
  15995. .INDENT 0.0
  15996. .INDENT 3.5
  15997. .sp
  15998. .nf
  15999. .ft C
  16000. proxy_always_alive: False
  16001. .ft P
  16002. .fi
  16003. .UNINDENT
  16004. .UNINDENT
  16005. .SS \fBproxy_merge_pillar_in_opts\fP
  16006. .sp
  16007. New in version 2017.7.3.
  16008. .sp
  16009. Default: \fBFalse\fP\&.
  16010. .sp
  16011. Whether the pillar data to be merged into the proxy configuration options.
  16012. As multiple proxies can run on the same server, we may need different
  16013. configuration options for each, while there\(aqs one single configuration file.
  16014. The solution is merging the pillar data of each proxy minion into the opts.
  16015. .INDENT 0.0
  16016. .INDENT 3.5
  16017. .sp
  16018. .nf
  16019. .ft C
  16020. proxy_merge_pillar_in_opts: True
  16021. .ft P
  16022. .fi
  16023. .UNINDENT
  16024. .UNINDENT
  16025. .SS \fBproxy_deep_merge_pillar_in_opts\fP
  16026. .sp
  16027. New in version 2017.7.3.
  16028. .sp
  16029. Default: \fBFalse\fP\&.
  16030. .sp
  16031. Deep merge of pillar data into configuration opts.
  16032. This option is evaluated only when \fBproxy_merge_pillar_in_opts\fP is
  16033. enabled.
  16034. .SS \fBproxy_merge_pillar_in_opts_strategy\fP
  16035. .sp
  16036. New in version 2017.7.3.
  16037. .sp
  16038. Default: \fBsmart\fP\&.
  16039. .sp
  16040. The strategy used when merging pillar configuration into opts.
  16041. This option is evaluated only when \fBproxy_merge_pillar_in_opts\fP is
  16042. enabled.
  16043. .SS \fBproxy_mines_pillar\fP
  16044. .sp
  16045. New in version 2017.7.3.
  16046. .sp
  16047. Default: \fBTrue\fP\&.
  16048. .sp
  16049. Allow enabling mine details using pillar data. This evaluates the mine
  16050. configuration under the pillar, for the following regular minion options that
  16051. are also equally available on the proxy minion: \fBmine_interval\fP,
  16052. and \fBmine_functions\fP\&.
  16053. .SS Configuration file examples
  16054. .INDENT 0.0
  16055. .IP \(bu 2
  16056. \fI\%Example master configuration file\fP
  16057. .IP \(bu 2
  16058. \fI\%Example minion configuration file\fP
  16059. .IP \(bu 2
  16060. \fI\%Example proxy minion configuration file\fP
  16061. .UNINDENT
  16062. .SS Example master configuration file
  16063. .INDENT 0.0
  16064. .INDENT 3.5
  16065. .sp
  16066. .nf
  16067. .ft C
  16068. ##### Primary configuration settings #####
  16069. ##########################################
  16070. # This configuration file is used to manage the behavior of the Salt Master.
  16071. # Values that are commented out but have an empty line after the comment are
  16072. # defaults that do not need to be set in the config. If there is no blank line
  16073. # after the comment then the value is presented as an example and is not the
  16074. # default.
  16075. # Per default, the master will automatically include all config files
  16076. # from master.d/*.conf (master.d is a directory in the same directory
  16077. # as the main master config file).
  16078. #default_include: master.d/*.conf
  16079. # The address of the interface to bind to:
  16080. #interface: 0.0.0.0
  16081. # Whether the master should listen for IPv6 connections. If this is set to True,
  16082. # the interface option must be adjusted, too. (For example: "interface: \(aq::\(aq")
  16083. #ipv6: False
  16084. # The tcp port used by the publisher:
  16085. #publish_port: 4505
  16086. # The user under which the salt master will run. Salt will update all
  16087. # permissions to allow the specified user to run the master. The exception is
  16088. # the job cache, which must be deleted if this user is changed. If the
  16089. # modified files cause conflicts, set verify_env to False.
  16090. #user: root
  16091. # Tell the master to also use salt\-ssh when running commands against minions.
  16092. #enable_ssh_minions: False
  16093. # The port used by the communication interface. The ret (return) port is the
  16094. # interface used for the file server, authentication, job returns, etc.
  16095. #ret_port: 4506
  16096. # Specify the location of the daemon process ID file:
  16097. #pidfile: /var/run/salt\-master.pid
  16098. # The root directory prepended to these options: pki_dir, cachedir,
  16099. # sock_dir, log_file, autosign_file, autoreject_file, extension_modules,
  16100. # key_logfile, pidfile, autosign_grains_dir:
  16101. #root_dir: /
  16102. # The path to the master\(aqs configuration file.
  16103. #conf_file: /etc/salt/master
  16104. # Directory used to store public key data:
  16105. #pki_dir: /etc/salt/pki/master
  16106. # Key cache. Increases master speed for large numbers of accepted
  16107. # keys. Available options: \(aqsched\(aq. (Updates on a fixed schedule.)
  16108. # Note that enabling this feature means that minions will not be
  16109. # available to target for up to the length of the maintanence loop
  16110. # which by default is 60s.
  16111. #key_cache: \(aq\(aq
  16112. # Directory to store job and cache data:
  16113. # This directory may contain sensitive data and should be protected accordingly.
  16114. #
  16115. #cachedir: /var/cache/salt/master
  16116. # Directory for custom modules. This directory can contain subdirectories for
  16117. # each of Salt\(aqs module types such as "runners", "output", "wheel", "modules",
  16118. # "states", "returners", "engines", "utils", etc.
  16119. #extension_modules: /var/cache/salt/master/extmods
  16120. # Directory for custom modules. This directory can contain subdirectories for
  16121. # each of Salt\(aqs module types such as "runners", "output", "wheel", "modules",
  16122. # "states", "returners", "engines", "utils", etc.
  16123. # Like \(aqextension_modules\(aq but can take an array of paths
  16124. #module_dirs: []
  16125. # Verify and set permissions on configuration directories at startup:
  16126. #verify_env: True
  16127. # Set the number of hours to keep old job information in the job cache:
  16128. #keep_jobs: 24
  16129. # The number of seconds to wait when the client is requesting information
  16130. # about running jobs.
  16131. #gather_job_timeout: 10
  16132. # Set the default timeout for the salt command and api. The default is 5
  16133. # seconds.
  16134. #timeout: 5
  16135. # The loop_interval option controls the seconds for the master\(aqs maintenance
  16136. # process check cycle. This process updates file server backends, cleans the
  16137. # job cache and executes the scheduler.
  16138. #loop_interval: 60
  16139. # Set the default outputter used by the salt command. The default is "nested".
  16140. #output: nested
  16141. # To set a list of additional directories to search for salt outputters, set the
  16142. # outputter_dirs option.
  16143. #outputter_dirs: []
  16144. # Set the default output file used by the salt command. Default is to output
  16145. # to the CLI and not to a file. Functions the same way as the "\-\-out\-file"
  16146. # CLI option, only sets this to a single file for all salt commands.
  16147. #output_file: None
  16148. # Return minions that timeout when running commands like test.ping
  16149. #show_timeout: True
  16150. # Tell the client to display the jid when a job is published.
  16151. #show_jid: False
  16152. # By default, output is colored. To disable colored output, set the color value
  16153. # to False.
  16154. #color: True
  16155. # Do not strip off the colored output from nested results and state outputs
  16156. # (true by default).
  16157. # strip_colors: False
  16158. # To display a summary of the number of minions targeted, the number of
  16159. # minions returned, and the number of minions that did not return, set the
  16160. # cli_summary value to True. (False by default.)
  16161. #
  16162. #cli_summary: False
  16163. # Set the directory used to hold unix sockets:
  16164. #sock_dir: /var/run/salt/master
  16165. # The master can take a while to start up when lspci and/or dmidecode is used
  16166. # to populate the grains for the master. Enable if you want to see GPU hardware
  16167. # data for your master.
  16168. # enable_gpu_grains: False
  16169. # The master maintains a job cache. While this is a great addition, it can be
  16170. # a burden on the master for larger deployments (over 5000 minions).
  16171. # Disabling the job cache will make previously executed jobs unavailable to
  16172. # the jobs system and is not generally recommended.
  16173. #job_cache: True
  16174. # Cache minion grains, pillar and mine data via the cache subsystem in the
  16175. # cachedir or a database.
  16176. #minion_data_cache: True
  16177. # Cache subsystem module to use for minion data cache.
  16178. #cache: localfs
  16179. # Enables a fast in\-memory cache booster and sets the expiration time.
  16180. #memcache_expire_seconds: 0
  16181. # Set a memcache limit in items (bank + key) per cache storage (driver + driver_opts).
  16182. #memcache_max_items: 1024
  16183. # Each time a cache storage got full cleanup all the expired items not just the oldest one.
  16184. #memcache_full_cleanup: False
  16185. # Enable collecting the memcache stats and log it on \(gadebug\(ga log level.
  16186. #memcache_debug: False
  16187. # Store all returns in the given returner.
  16188. # Setting this option requires that any returner\-specific configuration also
  16189. # be set. See various returners in salt/returners for details on required
  16190. # configuration values. (See also, event_return_queue, and event_return_queue_max_seconds below.)
  16191. #
  16192. #event_return: mysql
  16193. # On busy systems, enabling event_returns can cause a considerable load on
  16194. # the storage system for returners. Events can be queued on the master and
  16195. # stored in a batched fashion using a single transaction for multiple events.
  16196. # By default, events are not queued.
  16197. #event_return_queue: 0
  16198. # In some cases enabling event return queueing can be very helpful, but the bus
  16199. # may not busy enough to flush the queue consistently. Setting this to a reasonable
  16200. # value (1\-30 seconds) will cause the queue to be flushed when the oldest event is older
  16201. # than \(gaevent_return_queue_max_seconds\(ga regardless of how many events are in the queue.
  16202. #event_return_queue_max_seconds: 0
  16203. # Only return events matching tags in a whitelist, supports glob matches.
  16204. #event_return_whitelist:
  16205. # \- salt/master/a_tag
  16206. # \- salt/run/*/ret
  16207. # Store all event returns **except** the tags in a blacklist, supports globs.
  16208. #event_return_blacklist:
  16209. # \- salt/master/not_this_tag
  16210. # \- salt/wheel/*/ret
  16211. # Passing very large events can cause the minion to consume large amounts of
  16212. # memory. This value tunes the maximum size of a message allowed onto the
  16213. # master event bus. The value is expressed in bytes.
  16214. #max_event_size: 1048576
  16215. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  16216. # process communications. Set ipc_mode to \(aqtcp\(aq on such systems
  16217. #ipc_mode: ipc
  16218. # Overwrite the default tcp ports used by the minion when ipc_mode is set to \(aqtcp\(aq
  16219. #tcp_master_pub_port: 4510
  16220. #tcp_master_pull_port: 4511
  16221. # By default, the master AES key rotates every 24 hours. The next command
  16222. # following a key rotation will trigger a key refresh from the minion which may
  16223. # result in minions which do not respond to the first command after a key refresh.
  16224. #
  16225. # To tell the master to ping all minions immediately after an AES key refresh, set
  16226. # ping_on_rotate to True. This should mitigate the issue where a minion does not
  16227. # appear to initially respond after a key is rotated.
  16228. #
  16229. # Note that ping_on_rotate may cause high load on the master immediately after
  16230. # the key rotation event as minions reconnect. Consider this carefully if this
  16231. # salt master is managing a large number of minions.
  16232. #
  16233. # If disabled, it is recommended to handle this event by listening for the
  16234. # \(aqaes_key_rotate\(aq event with the \(aqkey\(aq tag and acting appropriately.
  16235. # ping_on_rotate: False
  16236. # By default, the master deletes its cache of minion data when the key for that
  16237. # minion is removed. To preserve the cache after key deletion, set
  16238. # \(aqpreserve_minion_cache\(aq to True.
  16239. #
  16240. # WARNING: This may have security implications if compromised minions auth with
  16241. # a previous deleted minion ID.
  16242. #preserve_minion_cache: False
  16243. # Allow or deny minions from requesting their own key revocation
  16244. #allow_minion_key_revoke: True
  16245. # If max_minions is used in large installations, the master might experience
  16246. # high\-load situations because of having to check the number of connected
  16247. # minions for every authentication. This cache provides the minion\-ids of
  16248. # all connected minions to all MWorker\-processes and greatly improves the
  16249. # performance of max_minions.
  16250. # con_cache: False
  16251. # The master can include configuration from other files. To enable this,
  16252. # pass a list of paths to this option. The paths can be either relative or
  16253. # absolute; if relative, they are considered to be relative to the directory
  16254. # the main master configuration file lives in (this file). Paths can make use
  16255. # of shell\-style globbing. If no files are matched by a path passed to this
  16256. # option, then the master will log a warning message.
  16257. #
  16258. # Include a config file from some other path:
  16259. # include: /etc/salt/extra_config
  16260. #
  16261. # Include config from several files and directories:
  16262. # include:
  16263. # \- /etc/salt/extra_config
  16264. ##### Large\-scale tuning settings #####
  16265. ##########################################
  16266. # Max open files
  16267. #
  16268. # Each minion connecting to the master uses AT LEAST one file descriptor, the
  16269. # master subscription connection. If enough minions connect you might start
  16270. # seeing on the console (and then salt\-master crashes):
  16271. # Too many open files (tcp_listener.cpp:335)
  16272. # Aborted (core dumped)
  16273. #
  16274. # By default this value will be the one of \(gaulimit \-Hn\(ga, ie, the hard limit for
  16275. # max open files.
  16276. #
  16277. # If you wish to set a different value than the default one, uncomment and
  16278. # configure this setting. Remember that this value CANNOT be higher than the
  16279. # hard limit. Raising the hard limit depends on your OS and/or distribution,
  16280. # a good way to find the limit is to search the internet. For example:
  16281. # raise max open files hard limit debian
  16282. #
  16283. #max_open_files: 100000
  16284. # The number of worker threads to start. These threads are used to manage
  16285. # return calls made from minions to the master. If the master seems to be
  16286. # running slowly, increase the number of threads. This setting can not be
  16287. # set lower than 3.
  16288. #worker_threads: 5
  16289. # Set the ZeroMQ high water marks
  16290. # http://api.zeromq.org/3\-2:zmq\-setsockopt
  16291. # The listen queue size / backlog
  16292. #zmq_backlog: 1000
  16293. # The publisher interface ZeroMQPubServerChannel
  16294. #pub_hwm: 1000
  16295. # The master may allocate memory per\-event and not
  16296. # reclaim it.
  16297. # To set a high\-water mark for memory allocation, use
  16298. # ipc_write_buffer to set a high\-water mark for message
  16299. # buffering.
  16300. # Value: In bytes. Set to \(aqdynamic\(aq to have Salt select
  16301. # a value for you. Default is disabled.
  16302. # ipc_write_buffer: \(aqdynamic\(aq
  16303. # These two batch settings, batch_safe_limit and batch_safe_size, are used to
  16304. # automatically switch to a batch mode execution. If a command would have been
  16305. # sent to more than <batch_safe_limit> minions, then run the command in
  16306. # batches of <batch_safe_size>. If no batch_safe_size is specified, a default
  16307. # of 8 will be used. If no batch_safe_limit is specified, then no automatic
  16308. # batching will occur.
  16309. #batch_safe_limit: 100
  16310. #batch_safe_size: 8
  16311. # Master stats enables stats events to be fired from the master at close
  16312. # to the defined interval
  16313. #master_stats: False
  16314. #master_stats_event_iter: 60
  16315. ##### Security settings #####
  16316. ##########################################
  16317. # Enable passphrase protection of Master private key. Although a string value
  16318. # is acceptable; passwords should be stored in an external vaulting mechanism
  16319. # and retrieved via sdb. See https://docs.saltstack.com/en/latest/topics/sdb/.
  16320. # Passphrase protection is off by default but an example of an sdb profile and
  16321. # query is as follows.
  16322. # masterkeyring:
  16323. # driver: keyring
  16324. # service: system
  16325. #
  16326. # key_pass: sdb://masterkeyring/key_pass
  16327. # Enable passphrase protection of the Master signing_key. This only applies if
  16328. # master_sign_pubkey is set to True. This is disabled by default.
  16329. # master_sign_pubkey: True
  16330. # signing_key_pass: sdb://masterkeyring/signing_pass
  16331. # Enable "open mode", this mode still maintains encryption, but turns off
  16332. # authentication, this is only intended for highly secure environments or for
  16333. # the situation where your keys end up in a bad state. If you run in open mode
  16334. # you do so at your own risk!
  16335. #open_mode: False
  16336. # Enable auto_accept, this setting will automatically accept all incoming
  16337. # public keys from the minions. Note that this is insecure.
  16338. #auto_accept: False
  16339. # The size of key that should be generated when creating new keys.
  16340. #keysize: 2048
  16341. # Time in minutes that an incoming public key with a matching name found in
  16342. # pki_dir/minion_autosign/keyid is automatically accepted. Expired autosign keys
  16343. # are removed when the master checks the minion_autosign directory.
  16344. # 0 equals no timeout
  16345. # autosign_timeout: 120
  16346. # If the autosign_file is specified, incoming keys specified in the
  16347. # autosign_file will be automatically accepted. This is insecure. Regular
  16348. # expressions as well as globing lines are supported. The file must be readonly
  16349. # except for the owner. Use permissive_pki_access to allow the group write access.
  16350. #autosign_file: /etc/salt/autosign.conf
  16351. # Works like autosign_file, but instead allows you to specify minion IDs for
  16352. # which keys will automatically be rejected. Will override both membership in
  16353. # the autosign_file and the auto_accept setting.
  16354. #autoreject_file: /etc/salt/autoreject.conf
  16355. # If the autosign_grains_dir is specified, incoming keys from minions with grain
  16356. # values matching those defined in files in this directory will be accepted
  16357. # automatically. This is insecure. Minions need to be configured to send the grains.
  16358. #autosign_grains_dir: /etc/salt/autosign_grains
  16359. # Enable permissive access to the salt keys. This allows you to run the
  16360. # master or minion as root, but have a non\-root group be given access to
  16361. # your pki_dir. To make the access explicit, root must belong to the group
  16362. # you\(aqve given access to. This is potentially quite insecure. If an autosign_file
  16363. # is specified, enabling permissive_pki_access will allow group access to that
  16364. # specific file.
  16365. #permissive_pki_access: False
  16366. # Allow users on the master access to execute specific commands on minions.
  16367. # This setting should be treated with care since it opens up execution
  16368. # capabilities to non root users. By default this capability is completely
  16369. # disabled.
  16370. #publisher_acl:
  16371. # larry:
  16372. # \- test.ping
  16373. # \- network.*
  16374. #
  16375. # Blacklist any of the following users or modules
  16376. #
  16377. # This example would blacklist all non sudo users, including root from
  16378. # running any commands. It would also blacklist any use of the "cmd"
  16379. # module. This is completely disabled by default.
  16380. #
  16381. #
  16382. # Check the list of configured users in client ACL against users on the
  16383. # system and throw errors if they do not exist.
  16384. #client_acl_verify: True
  16385. #
  16386. #publisher_acl_blacklist:
  16387. # users:
  16388. # \- root
  16389. # \- \(aq^(?!sudo_).*$\(aq # all non sudo users
  16390. # modules:
  16391. # \- cmd
  16392. # Enforce publisher_acl & publisher_acl_blacklist when users have sudo
  16393. # access to the salt command.
  16394. #
  16395. #sudo_acl: False
  16396. # The external auth system uses the Salt auth modules to authenticate and
  16397. # validate users to access areas of the Salt system.
  16398. #external_auth:
  16399. # pam:
  16400. # fred:
  16401. # \- test.*
  16402. #
  16403. # Time (in seconds) for a newly generated token to live. Default: 12 hours
  16404. #token_expire: 43200
  16405. #
  16406. # Allow eauth users to specify the expiry time of the tokens they generate.
  16407. # A boolean applies to all users or a dictionary of whitelisted eauth backends
  16408. # and usernames may be given.
  16409. # token_expire_user_override:
  16410. # pam:
  16411. # \- fred
  16412. # \- tom
  16413. # ldap:
  16414. # \- gary
  16415. #
  16416. #token_expire_user_override: False
  16417. # Set to True to enable keeping the calculated user\(aqs auth list in the token
  16418. # file. This is disabled by default and the auth list is calculated or requested
  16419. # from the eauth driver each time.
  16420. #keep_acl_in_token: False
  16421. # Auth subsystem module to use to get authorized access list for a user. By default it\(aqs
  16422. # the same module used for external authentication.
  16423. #eauth_acl_module: django
  16424. # Allow minions to push files to the master. This is disabled by default, for
  16425. # security purposes.
  16426. #file_recv: False
  16427. # Set a hard\-limit on the size of the files that can be pushed to the master.
  16428. # It will be interpreted as megabytes. Default: 100
  16429. #file_recv_max_size: 100
  16430. # Signature verification on messages published from the master.
  16431. # This causes the master to cryptographically sign all messages published to its event
  16432. # bus, and minions then verify that signature before acting on the message.
  16433. #
  16434. # This is False by default.
  16435. #
  16436. # Note that to facilitate interoperability with masters and minions that are different
  16437. # versions, if sign_pub_messages is True but a message is received by a minion with
  16438. # no signature, it will still be accepted, and a warning message will be logged.
  16439. # Conversely, if sign_pub_messages is False, but a minion receives a signed
  16440. # message it will be accepted, the signature will not be checked, and a warning message
  16441. # will be logged. This behavior went away in Salt 2014.1.0 and these two situations
  16442. # will cause minion to throw an exception and drop the message.
  16443. # sign_pub_messages: False
  16444. # Signature verification on messages published from minions
  16445. # This requires that minions cryptographically sign the messages they
  16446. # publish to the master. If minions are not signing, then log this information
  16447. # at loglevel \(aqINFO\(aq and drop the message without acting on it.
  16448. # require_minion_sign_messages: False
  16449. # The below will drop messages when their signatures do not validate.
  16450. # Note that when this option is False but \(garequire_minion_sign_messages\(ga is True
  16451. # minions MUST sign their messages but the validity of their signatures
  16452. # is ignored.
  16453. # These two config options exist so a Salt infrastructure can be moved
  16454. # to signing minion messages gradually.
  16455. # drop_messages_signature_fail: False
  16456. # Use TLS/SSL encrypted connection between master and minion.
  16457. # Can be set to a dictionary containing keyword arguments corresponding to Python\(aqs
  16458. # \(aqssl.wrap_socket\(aq method.
  16459. # Default is None.
  16460. #ssl:
  16461. # keyfile: <path_to_keyfile>
  16462. # certfile: <path_to_certfile>
  16463. # ssl_version: PROTOCOL_TLSv1_2
  16464. ##### Salt\-SSH Configuration #####
  16465. ##########################################
  16466. # Define the default salt\-ssh roster module to use
  16467. #roster: flat
  16468. # Pass in an alternative location for the salt\-ssh \(gaflat\(ga roster file
  16469. #roster_file: /etc/salt/roster
  16470. # Define locations for \(gaflat\(ga roster files so they can be chosen when using Salt API.
  16471. # An administrator can place roster files into these locations. Then when
  16472. # calling Salt API, parameter \(aqroster_file\(aq should contain a relative path to
  16473. # these locations. That is, "roster_file=/foo/roster" will be resolved as
  16474. # "/etc/salt/roster.d/foo/roster" etc. This feature prevents passing insecure
  16475. # custom rosters through the Salt API.
  16476. #
  16477. #rosters:
  16478. # \- /etc/salt/roster.d
  16479. # \- /opt/salt/some/more/rosters
  16480. # The ssh password to log in with.
  16481. #ssh_passwd: \(aq\(aq
  16482. #The target system\(aqs ssh port number.
  16483. #ssh_port: 22
  16484. # Comma\-separated list of ports to scan.
  16485. #ssh_scan_ports: 22
  16486. # Scanning socket timeout for salt\-ssh.
  16487. #ssh_scan_timeout: 0.01
  16488. # Boolean to run command via sudo.
  16489. #ssh_sudo: False
  16490. # Boolean to run ssh_pre_flight script defined in roster. By default
  16491. # the script will only run if the thin_dir does not exist on the targeted
  16492. # minion. This forces the script to run regardless of the thin dir existing
  16493. # or not.
  16494. #ssh_run_pre_flight: True
  16495. # Number of seconds to wait for a response when establishing an SSH connection.
  16496. #ssh_timeout: 60
  16497. # The user to log in as.
  16498. #ssh_user: root
  16499. # The log file of the salt\-ssh command:
  16500. #ssh_log_file: /var/log/salt/ssh
  16501. # Pass in minion option overrides that will be inserted into the SHIM for
  16502. # salt\-ssh calls. The local minion config is not used for salt\-ssh. Can be
  16503. # overridden on a per\-minion basis in the roster (\(gaminion_opts\(ga)
  16504. #ssh_minion_opts:
  16505. # gpg_keydir: /root/gpg
  16506. # Set this to True to default to using ~/.ssh/id_rsa for salt\-ssh
  16507. # authentication with minions
  16508. #ssh_use_home_key: False
  16509. # Set this to True to default salt\-ssh to run with \(ga\(ga\-o IdentitiesOnly=yes\(ga\(ga.
  16510. # This option is intended for situations where the ssh\-agent offers many
  16511. # different identities and allows ssh to ignore those identities and use the
  16512. # only one specified in options.
  16513. #ssh_identities_only: False
  16514. # List\-only nodegroups for salt\-ssh. Each group must be formed as either a
  16515. # comma\-separated list, or a YAML list. This option is useful to group minions
  16516. # into easy\-to\-target groups when using salt\-ssh. These groups can then be
  16517. # targeted with the normal \-N argument to salt\-ssh.
  16518. #ssh_list_nodegroups: {}
  16519. # salt\-ssh has the ability to update the flat roster file if a minion is not
  16520. # found in the roster. Set this to True to enable it.
  16521. #ssh_update_roster: False
  16522. ##### Master Module Management #####
  16523. ##########################################
  16524. # Manage how master side modules are loaded.
  16525. # Add any additional locations to look for master runners:
  16526. #runner_dirs: []
  16527. # Add any additional locations to look for master utils:
  16528. #utils_dirs: []
  16529. # Enable Cython for master side modules:
  16530. #cython_enable: False
  16531. ##### State System settings #####
  16532. ##########################################
  16533. # The state system uses a "top" file to tell the minions what environment to
  16534. # use and what modules to use. The state_top file is defined relative to the
  16535. # root of the base environment as defined in "File Server settings" below.
  16536. #state_top: top.sls
  16537. # The master_tops option replaces the external_nodes option by creating
  16538. # a plugable system for the generation of external top data. The external_nodes
  16539. # option is deprecated by the master_tops option.
  16540. #
  16541. # To gain the capabilities of the classic external_nodes system, use the
  16542. # following configuration:
  16543. # master_tops:
  16544. # ext_nodes: <Shell command which returns yaml>
  16545. #
  16546. #master_tops: {}
  16547. # The renderer to use on the minions to render the state data
  16548. #renderer: jinja|yaml
  16549. # Default Jinja environment options for all templates except sls templates
  16550. #jinja_env:
  16551. # block_start_string: \(aq{%\(aq
  16552. # block_end_string: \(aq%}\(aq
  16553. # variable_start_string: \(aq{{\(aq
  16554. # variable_end_string: \(aq}}\(aq
  16555. # comment_start_string: \(aq{#\(aq
  16556. # comment_end_string: \(aq#}\(aq
  16557. # line_statement_prefix:
  16558. # line_comment_prefix:
  16559. # trim_blocks: False
  16560. # lstrip_blocks: False
  16561. # newline_sequence: \(aq\en\(aq
  16562. # keep_trailing_newline: False
  16563. # Jinja environment options for sls templates
  16564. #jinja_sls_env:
  16565. # block_start_string: \(aq{%\(aq
  16566. # block_end_string: \(aq%}\(aq
  16567. # variable_start_string: \(aq{{\(aq
  16568. # variable_end_string: \(aq}}\(aq
  16569. # comment_start_string: \(aq{#\(aq
  16570. # comment_end_string: \(aq#}\(aq
  16571. # line_statement_prefix:
  16572. # line_comment_prefix:
  16573. # trim_blocks: False
  16574. # lstrip_blocks: False
  16575. # newline_sequence: \(aq\en\(aq
  16576. # keep_trailing_newline: False
  16577. # The failhard option tells the minions to stop immediately after the first
  16578. # failure detected in the state execution, defaults to False
  16579. #failhard: False
  16580. # The state_verbose and state_output settings can be used to change the way
  16581. # state system data is printed to the display. By default all data is printed.
  16582. # The state_verbose setting can be set to True or False, when set to False
  16583. # all data that has a result of True and no changes will be suppressed.
  16584. #state_verbose: True
  16585. # The state_output setting controls which results will be output full multi line
  16586. # full, terse \- each state will be full/terse
  16587. # mixed \- only states with errors will be full
  16588. # changes \- states with changes and errors will be full
  16589. # full_id, mixed_id, changes_id and terse_id are also allowed;
  16590. # when set, the state ID will be used as name in the output
  16591. #state_output: full
  16592. # The state_output_diff setting changes whether or not the output from
  16593. # successful states is returned. Useful when even the terse output of these
  16594. # states is cluttering the logs. Set it to True to ignore them.
  16595. #state_output_diff: False
  16596. # Automatically aggregate all states that have support for mod_aggregate by
  16597. # setting to \(aqTrue\(aq. Or pass a list of state module names to automatically
  16598. # aggregate just those types.
  16599. #
  16600. # state_aggregate:
  16601. # \- pkg
  16602. #
  16603. #state_aggregate: False
  16604. # Send progress events as each function in a state run completes execution
  16605. # by setting to \(aqTrue\(aq. Progress events are in the format
  16606. # \(aqsalt/job/<JID>/prog/<MID>/<RUN NUM>\(aq.
  16607. #state_events: False
  16608. ##### File Server settings #####
  16609. ##########################################
  16610. # Salt runs a lightweight file server written in zeromq to deliver files to
  16611. # minions. This file server is built into the master daemon and does not
  16612. # require a dedicated port.
  16613. # The file server works on environments passed to the master, each environment
  16614. # can have multiple root directories, the subdirectories in the multiple file
  16615. # roots cannot match, otherwise the downloaded files will not be able to be
  16616. # reliably ensured. A base environment is required to house the top file.
  16617. # Example:
  16618. # file_roots:
  16619. # base:
  16620. # \- /srv/salt/
  16621. # dev:
  16622. # \- /srv/salt/dev/services
  16623. # \- /srv/salt/dev/states
  16624. # prod:
  16625. # \- /srv/salt/prod/services
  16626. # \- /srv/salt/prod/states
  16627. #
  16628. #file_roots:
  16629. # base:
  16630. # \- /srv/salt
  16631. #
  16632. # The master_roots setting configures a master\-only copy of the file_roots dictionary,
  16633. # used by the state compiler.
  16634. #master_roots:
  16635. # base:
  16636. # \- /srv/salt\-master
  16637. # When using multiple environments, each with their own top file, the
  16638. # default behaviour is an unordered merge. To prevent top files from
  16639. # being merged together and instead to only use the top file from the
  16640. # requested environment, set this value to \(aqsame\(aq.
  16641. #top_file_merging_strategy: merge
  16642. # To specify the order in which environments are merged, set the ordering
  16643. # in the env_order option. Given a conflict, the last matching value will
  16644. # win.
  16645. #env_order: [\(aqbase\(aq, \(aqdev\(aq, \(aqprod\(aq]
  16646. # If top_file_merging_strategy is set to \(aqsame\(aq and an environment does not
  16647. # contain a top file, the top file in the environment specified by default_top
  16648. # will be used instead.
  16649. #default_top: base
  16650. # The hash_type is the hash to use when discovering the hash of a file on
  16651. # the master server. The default is sha256, but md5, sha1, sha224, sha384 and
  16652. # sha512 are also supported.
  16653. #
  16654. # WARNING: While md5 and sha1 are also supported, do not use them due to the
  16655. # high chance of possible collisions and thus security breach.
  16656. #
  16657. # Prior to changing this value, the master should be stopped and all Salt
  16658. # caches should be cleared.
  16659. #hash_type: sha256
  16660. # The buffer size in the file server can be adjusted here:
  16661. #file_buffer_size: 1048576
  16662. # A regular expression (or a list of expressions) that will be matched
  16663. # against the file path before syncing the modules and states to the minions.
  16664. # This includes files affected by the file.recurse state.
  16665. # For example, if you manage your custom modules and states in subversion
  16666. # and don\(aqt want all the \(aq.svn\(aq folders and content synced to your minions,
  16667. # you could set this to \(aq/\e.svn($|/)\(aq. By default nothing is ignored.
  16668. #file_ignore_regex:
  16669. # \- \(aq/\e.svn($|/)\(aq
  16670. # \- \(aq/\e.git($|/)\(aq
  16671. # A file glob (or list of file globs) that will be matched against the file
  16672. # path before syncing the modules and states to the minions. This is similar
  16673. # to file_ignore_regex above, but works on globs instead of regex. By default
  16674. # nothing is ignored.
  16675. # file_ignore_glob:
  16676. # \- \(aq*.pyc\(aq
  16677. # \- \(aq*/somefolder/*.bak\(aq
  16678. # \- \(aq*.swp\(aq
  16679. # File Server Backend
  16680. #
  16681. # Salt supports a modular fileserver backend system, this system allows
  16682. # the salt master to link directly to third party systems to gather and
  16683. # manage the files available to minions. Multiple backends can be
  16684. # configured and will be searched for the requested file in the order in which
  16685. # they are defined here. The default setting only enables the standard backend
  16686. # "roots" which uses the "file_roots" option.
  16687. #fileserver_backend:
  16688. # \- roots
  16689. #
  16690. # To use multiple backends list them in the order they are searched:
  16691. #fileserver_backend:
  16692. # \- git
  16693. # \- roots
  16694. #
  16695. # Uncomment the line below if you do not want the file_server to follow
  16696. # symlinks when walking the filesystem tree. This is set to True
  16697. # by default. Currently this only applies to the default roots
  16698. # fileserver_backend.
  16699. #fileserver_followsymlinks: False
  16700. #
  16701. # Uncomment the line below if you do not want symlinks to be
  16702. # treated as the files they are pointing to. By default this is set to
  16703. # False. By uncommenting the line below, any detected symlink while listing
  16704. # files on the Master will not be returned to the Minion.
  16705. #fileserver_ignoresymlinks: True
  16706. #
  16707. # By default, the Salt fileserver recurses fully into all defined environments
  16708. # to attempt to find files. To limit this behavior so that the fileserver only
  16709. # traverses directories with SLS files and special Salt directories like _modules,
  16710. # enable the option below. This might be useful for installations where a file root
  16711. # has a very large number of files and performance is impacted. Default is False.
  16712. # fileserver_limit_traversal: False
  16713. #
  16714. # The fileserver can fire events off every time the fileserver is updated,
  16715. # these are disabled by default, but can be easily turned on by setting this
  16716. # flag to True
  16717. #fileserver_events: False
  16718. # Git File Server Backend Configuration
  16719. #
  16720. # Optional parameter used to specify the provider to be used for gitfs. Must be
  16721. # either pygit2 or gitpython. If unset, then both will be tried (in that
  16722. # order), and the first one with a compatible version installed will be the
  16723. # provider that is used.
  16724. #
  16725. #gitfs_provider: pygit2
  16726. # Along with gitfs_password, is used to authenticate to HTTPS remotes.
  16727. # gitfs_user: \(aq\(aq
  16728. # Along with gitfs_user, is used to authenticate to HTTPS remotes.
  16729. # This parameter is not required if the repository does not use authentication.
  16730. #gitfs_password: \(aq\(aq
  16731. # By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote.
  16732. # This parameter enables authentication over HTTP. Enable this at your own risk.
  16733. #gitfs_insecure_auth: False
  16734. # Along with gitfs_privkey (and optionally gitfs_passphrase), is used to
  16735. # authenticate to SSH remotes. This parameter (or its per\-remote counterpart)
  16736. # is required for SSH remotes.
  16737. #gitfs_pubkey: \(aq\(aq
  16738. # Along with gitfs_pubkey (and optionally gitfs_passphrase), is used to
  16739. # authenticate to SSH remotes. This parameter (or its per\-remote counterpart)
  16740. # is required for SSH remotes.
  16741. #gitfs_privkey: \(aq\(aq
  16742. # This parameter is optional, required only when the SSH key being used to
  16743. # authenticate is protected by a passphrase.
  16744. #gitfs_passphrase: \(aq\(aq
  16745. # When using the git fileserver backend at least one git remote needs to be
  16746. # defined. The user running the salt master will need read access to the repo.
  16747. #
  16748. # The repos will be searched in order to find the file requested by a client
  16749. # and the first repo to have the file will return it.
  16750. # When using the git backend branches and tags are translated into salt
  16751. # environments.
  16752. # Note: file:// repos will be treated as a remote, so refs you want used must
  16753. # exist in that repo as *local* refs.
  16754. #gitfs_remotes:
  16755. # \- git://github.com/saltstack/salt\-states.git
  16756. # \- file:///var/git/saltmaster
  16757. #
  16758. # The gitfs_ssl_verify option specifies whether to ignore ssl certificate
  16759. # errors when contacting the gitfs backend. You might want to set this to
  16760. # false if you\(aqre using a git backend that uses a self\-signed certificate but
  16761. # keep in mind that setting this flag to anything other than the default of True
  16762. # is a security concern, you may want to try using the ssh transport.
  16763. #gitfs_ssl_verify: True
  16764. #
  16765. # The gitfs_root option gives the ability to serve files from a subdirectory
  16766. # within the repository. The path is defined relative to the root of the
  16767. # repository and defaults to the repository root.
  16768. #gitfs_root: somefolder/otherfolder
  16769. #
  16770. # The refspecs fetched by gitfs remotes
  16771. #gitfs_refspecs:
  16772. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  16773. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  16774. #
  16775. #
  16776. ##### Pillar settings #####
  16777. ##########################################
  16778. # Salt Pillars allow for the building of global data that can be made selectively
  16779. # available to different minions based on minion grain filtering. The Salt
  16780. # Pillar is laid out in the same fashion as the file server, with environments,
  16781. # a top file and sls files. However, pillar data does not need to be in the
  16782. # highstate format, and is generally just key/value pairs.
  16783. #pillar_roots:
  16784. # base:
  16785. # \- /srv/pillar
  16786. #
  16787. #ext_pillar:
  16788. # \- hiera: /etc/hiera.yaml
  16789. # \- cmd_yaml: cat /etc/salt/yaml
  16790. # A list of paths to be recursively decrypted during pillar compilation.
  16791. # Entries in this list can be formatted either as a simple string, or as a
  16792. # key/value pair, with the key being the pillar location, and the value being
  16793. # the renderer to use for pillar decryption. If the former is used, the
  16794. # renderer specified by decrypt_pillar_default will be used.
  16795. #decrypt_pillar:
  16796. # \- \(aqfoo:bar\(aq: gpg
  16797. # \- \(aqlorem:ipsum:dolor\(aq
  16798. # The delimiter used to distinguish nested data structures in the
  16799. # decrypt_pillar option.
  16800. #decrypt_pillar_delimiter: \(aq:\(aq
  16801. # The default renderer used for decryption, if one is not specified for a given
  16802. # pillar key in decrypt_pillar.
  16803. #decrypt_pillar_default: gpg
  16804. # List of renderers which are permitted to be used for pillar decryption.
  16805. #decrypt_pillar_renderers:
  16806. # \- gpg
  16807. # The ext_pillar_first option allows for external pillar sources to populate
  16808. # before file system pillar. This allows for targeting file system pillar from
  16809. # ext_pillar.
  16810. #ext_pillar_first: False
  16811. # The external pillars permitted to be used on\-demand using pillar.ext
  16812. #on_demand_ext_pillar:
  16813. # \- libvirt
  16814. # \- virtkey
  16815. # The pillar_gitfs_ssl_verify option specifies whether to ignore ssl certificate
  16816. # errors when contacting the pillar gitfs backend. You might want to set this to
  16817. # false if you\(aqre using a git backend that uses a self\-signed certificate but
  16818. # keep in mind that setting this flag to anything other than the default of True
  16819. # is a security concern, you may want to try using the ssh transport.
  16820. #pillar_gitfs_ssl_verify: True
  16821. # The pillar_opts option adds the master configuration file data to a dict in
  16822. # the pillar called "master". This is used to set simple configurations in the
  16823. # master config file that can then be used on minions.
  16824. #pillar_opts: False
  16825. # The pillar_safe_render_error option prevents the master from passing pillar
  16826. # render errors to the minion. This is set on by default because the error could
  16827. # contain templating data which would give that minion information it shouldn\(aqt
  16828. # have, like a password! When set true the error message will only show:
  16829. # Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  16830. #pillar_safe_render_error: True
  16831. # The pillar_source_merging_strategy option allows you to configure merging strategy
  16832. # between different sources. It accepts five values: none, recurse, aggregate, overwrite,
  16833. # or smart. None will not do any merging at all. Recurse will merge recursively mapping of data.
  16834. # Aggregate instructs aggregation of elements between sources that use the #!yamlex renderer. Overwrite
  16835. # will overwrite elements according the order in which they are processed. This is
  16836. # behavior of the 2014.1 branch and earlier. Smart guesses the best strategy based
  16837. # on the "renderer" setting and is the default value.
  16838. #pillar_source_merging_strategy: smart
  16839. # Recursively merge lists by aggregating them instead of replacing them.
  16840. #pillar_merge_lists: False
  16841. # Set this option to True to force the pillarenv to be the same as the effective
  16842. # saltenv when running states. If pillarenv is specified this option will be
  16843. # ignored.
  16844. #pillarenv_from_saltenv: False
  16845. # Set this option to \(aqTrue\(aq to force a \(aqKeyError\(aq to be raised whenever an
  16846. # attempt to retrieve a named value from pillar fails. When this option is set
  16847. # to \(aqFalse\(aq, the failed attempt returns an empty string. Default is \(aqFalse\(aq.
  16848. #pillar_raise_on_missing: False
  16849. # Git External Pillar (git_pillar) Configuration Options
  16850. #
  16851. # Specify the provider to be used for git_pillar. Must be either pygit2 or
  16852. # gitpython. If unset, then both will be tried in that same order, and the
  16853. # first one with a compatible version installed will be the provider that
  16854. # is used.
  16855. #git_pillar_provider: pygit2
  16856. # If the desired branch matches this value, and the environment is omitted
  16857. # from the git_pillar configuration, then the environment for that git_pillar
  16858. # remote will be base.
  16859. #git_pillar_base: master
  16860. # If the branch is omitted from a git_pillar remote, then this branch will
  16861. # be used instead
  16862. #git_pillar_branch: master
  16863. # Environment to use for git_pillar remotes. This is normally derived from
  16864. # the branch/tag (or from a per\-remote env parameter), but if set this will
  16865. # override the process of deriving the env from the branch/tag name.
  16866. #git_pillar_env: \(aq\(aq
  16867. # Path relative to the root of the repository where the git_pillar top file
  16868. # and SLS files are located.
  16869. #git_pillar_root: \(aq\(aq
  16870. # Specifies whether or not to ignore SSL certificate errors when contacting
  16871. # the remote repository.
  16872. #git_pillar_ssl_verify: False
  16873. # When set to False, if there is an update/checkout lock for a git_pillar
  16874. # remote and the pid written to it is not running on the master, the lock
  16875. # file will be automatically cleared and a new lock will be obtained.
  16876. #git_pillar_global_lock: True
  16877. # Git External Pillar Authentication Options
  16878. #
  16879. # Along with git_pillar_password, is used to authenticate to HTTPS remotes.
  16880. #git_pillar_user: \(aq\(aq
  16881. # Along with git_pillar_user, is used to authenticate to HTTPS remotes.
  16882. # This parameter is not required if the repository does not use authentication.
  16883. #git_pillar_password: \(aq\(aq
  16884. # By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote.
  16885. # This parameter enables authentication over HTTP.
  16886. #git_pillar_insecure_auth: False
  16887. # Along with git_pillar_privkey (and optionally git_pillar_passphrase),
  16888. # is used to authenticate to SSH remotes.
  16889. #git_pillar_pubkey: \(aq\(aq
  16890. # Along with git_pillar_pubkey (and optionally git_pillar_passphrase),
  16891. # is used to authenticate to SSH remotes.
  16892. #git_pillar_privkey: \(aq\(aq
  16893. # This parameter is optional, required only when the SSH key being used
  16894. # to authenticate is protected by a passphrase.
  16895. #git_pillar_passphrase: \(aq\(aq
  16896. # The refspecs fetched by git_pillar remotes
  16897. #git_pillar_refspecs:
  16898. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  16899. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  16900. # A master can cache pillars locally to bypass the expense of having to render them
  16901. # for each minion on every request. This feature should only be enabled in cases
  16902. # where pillar rendering time is known to be unsatisfactory and any attendant security
  16903. # concerns about storing pillars in a master cache have been addressed.
  16904. #
  16905. # When enabling this feature, be certain to read through the additional \(ga\(gapillar_cache_*\(ga\(ga
  16906. # configuration options to fully understand the tunable parameters and their implications.
  16907. #
  16908. # Note: setting \(ga\(gapillar_cache: True\(ga\(ga has no effect on targeting Minions with Pillars.
  16909. # See https://docs.saltstack.com/en/latest/topics/targeting/pillar.html
  16910. #pillar_cache: False
  16911. # If and only if a master has set \(ga\(gapillar_cache: True\(ga\(ga, the cache TTL controls the amount
  16912. # of time, in seconds, before the cache is considered invalid by a master and a fresh
  16913. # pillar is recompiled and stored.
  16914. #pillar_cache_ttl: 3600
  16915. # If and only if a master has set \(gapillar_cache: True\(ga, one of several storage providers
  16916. # can be utilized.
  16917. #
  16918. # \(gadisk\(ga: The default storage backend. This caches rendered pillars to the master cache.
  16919. # Rendered pillars are serialized and deserialized as msgpack structures for speed.
  16920. # Note that pillars are stored UNENCRYPTED. Ensure that the master cache
  16921. # has permissions set appropriately. (Same defaults are provided.)
  16922. #
  16923. # memory: [EXPERIMENTAL] An optional backend for pillar caches which uses a pure\-Python
  16924. # in\-memory data structure for maximal performance. There are several caveats,
  16925. # however. First, because each master worker contains its own in\-memory cache,
  16926. # there is no guarantee of cache consistency between minion requests. This
  16927. # works best in situations where the pillar rarely if ever changes. Secondly,
  16928. # and perhaps more importantly, this means that unencrypted pillars will
  16929. # be accessible to any process which can examine the memory of the \(ga\(gasalt\-master\(ga\(ga!
  16930. # This may represent a substantial security risk.
  16931. #
  16932. #pillar_cache_backend: disk
  16933. # A master can also cache GPG data locally to bypass the expense of having to render them
  16934. # for each minion on every request. This feature should only be enabled in cases
  16935. # where pillar rendering time is known to be unsatisfactory and any attendant security
  16936. # concerns about storing decrypted GPG data in a master cache have been addressed.
  16937. #
  16938. # When enabling this feature, be certain to read through the additional \(ga\(gagpg_cache_*\(ga\(ga
  16939. # configuration options to fully understand the tunable parameters and their implications.
  16940. #gpg_cache: False
  16941. # If and only if a master has set \(ga\(gagpg_cache: True\(ga\(ga, the cache TTL controls the amount
  16942. # of time, in seconds, before the cache is considered invalid by a master and a fresh
  16943. # pillar is recompiled and stored.
  16944. #gpg_cache_ttl: 86400
  16945. # If and only if a master has set \(gagpg_cache: True\(ga, one of several storage providers
  16946. # can be utilized. Available options are the same as \(ga\(gapillar_cache_backend\(ga\(ga.
  16947. #gpg_cache_backend: disk
  16948. ###### Reactor Settings #####
  16949. ###########################################
  16950. # Define a salt reactor. See https://docs.saltstack.com/en/latest/topics/reactor/
  16951. #reactor: []
  16952. #Set the TTL for the cache of the reactor configuration.
  16953. #reactor_refresh_interval: 60
  16954. #Configure the number of workers for the runner/wheel in the reactor.
  16955. #reactor_worker_threads: 10
  16956. #Define the queue size for workers in the reactor.
  16957. #reactor_worker_hwm: 10000
  16958. ##### Syndic settings #####
  16959. ##########################################
  16960. # The Salt syndic is used to pass commands through a master from a higher
  16961. # master. Using the syndic is simple. If this is a master that will have
  16962. # syndic servers(s) below it, then set the "order_masters" setting to True.
  16963. #
  16964. # If this is a master that will be running a syndic daemon for passthrough, then
  16965. # the "syndic_master" setting needs to be set to the location of the master server
  16966. # to receive commands from.
  16967. # Set the order_masters setting to True if this master will command lower
  16968. # masters\(aq syndic interfaces.
  16969. #order_masters: False
  16970. # If this master will be running a salt syndic daemon, syndic_master tells
  16971. # this master where to receive commands from.
  16972. #syndic_master: masterofmasters
  16973. # This is the \(aqret_port\(aq of the MasterOfMaster:
  16974. #syndic_master_port: 4506
  16975. # PID file of the syndic daemon:
  16976. #syndic_pidfile: /var/run/salt\-syndic.pid
  16977. # The log file of the salt\-syndic daemon:
  16978. #syndic_log_file: /var/log/salt/syndic
  16979. # The behaviour of the multi\-syndic when connection to a master of masters failed.
  16980. # Can specify \(ga\(garandom\(ga\(ga (default) or \(ga\(gaordered\(ga\(ga. If set to \(ga\(garandom\(ga\(ga, masters
  16981. # will be iterated in random order. If \(ga\(gaordered\(ga\(ga is specified, the configured
  16982. # order will be used.
  16983. #syndic_failover: random
  16984. # The number of seconds for the salt client to wait for additional syndics to
  16985. # check in with their lists of expected minions before giving up.
  16986. #syndic_wait: 5
  16987. ##### Peer Publish settings #####
  16988. ##########################################
  16989. # Salt minions can send commands to other minions, but only if the minion is
  16990. # allowed to. By default "Peer Publication" is disabled, and when enabled it
  16991. # is enabled for specific minions and specific commands. This allows secure
  16992. # compartmentalization of commands based on individual minions.
  16993. # The configuration uses regular expressions to match minions and then a list
  16994. # of regular expressions to match functions. The following will allow the
  16995. # minion authenticated as foo.example.com to execute functions from the test
  16996. # and pkg modules.
  16997. #peer:
  16998. # foo.example.com:
  16999. # \- test.*
  17000. # \- pkg.*
  17001. #
  17002. # This will allow all minions to execute all commands:
  17003. #peer:
  17004. # .*:
  17005. # \- .*
  17006. #
  17007. # This is not recommended, since it would allow anyone who gets root on any
  17008. # single minion to instantly have root on all of the minions!
  17009. # Minions can also be allowed to execute runners from the salt master.
  17010. # Since executing a runner from the minion could be considered a security risk,
  17011. # it needs to be enabled. This setting functions just like the peer setting
  17012. # except that it opens up runners instead of module functions.
  17013. #
  17014. # All peer runner support is turned off by default and must be enabled before
  17015. # using. This will enable all peer runners for all minions:
  17016. #peer_run:
  17017. # .*:
  17018. # \- .*
  17019. #
  17020. # To enable just the manage.up runner for the minion foo.example.com:
  17021. #peer_run:
  17022. # foo.example.com:
  17023. # \- manage.up
  17024. #
  17025. #
  17026. ##### Mine settings #####
  17027. #####################################
  17028. # Restrict mine.get access from minions. By default any minion has a full access
  17029. # to get all mine data from master cache. In acl definion below, only pcre matches
  17030. # are allowed.
  17031. # mine_get:
  17032. # .*:
  17033. # \- .*
  17034. #
  17035. # The example below enables minion foo.example.com to get \(aqnetwork.interfaces\(aq mine
  17036. # data only, minions web* to get all network.* and disk.* mine data and all other
  17037. # minions won\(aqt get any mine data.
  17038. # mine_get:
  17039. # foo.example.com:
  17040. # \- network.interfaces
  17041. # web.*:
  17042. # \- network.*
  17043. # \- disk.*
  17044. ##### Logging settings #####
  17045. ##########################################
  17046. # The location of the master log file
  17047. # The master log can be sent to a regular file, local path name, or network
  17048. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  17049. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  17050. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  17051. #log_file: /var/log/salt/master
  17052. #log_file: file:///dev/log
  17053. #log_file: udp://loghost:10514
  17054. #log_file: /var/log/salt/master
  17055. #key_logfile: /var/log/salt/key
  17056. # The level of messages to send to the console.
  17057. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17058. #
  17059. # The following log levels are considered INSECURE and may log sensitive data:
  17060. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  17061. #
  17062. #log_level: warning
  17063. # The level of messages to send to the log file.
  17064. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17065. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  17066. #log_level_logfile: warning
  17067. # The date and time format used in log messages. Allowed date/time formatting
  17068. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  17069. #log_datefmt: \(aq%H:%M:%S\(aq
  17070. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  17071. # The format of the console logging messages. Allowed formatting options can
  17072. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  17073. #
  17074. # Console log colors are specified by these additional formatters:
  17075. #
  17076. # %(colorlevel)s
  17077. # %(colorname)s
  17078. # %(colorprocess)s
  17079. # %(colormsg)s
  17080. #
  17081. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  17082. # the coloring of the messages, these color formatters also include padding as
  17083. # well. Color LogRecord attributes are only available for console logging.
  17084. #
  17085. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  17086. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  17087. #
  17088. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  17089. # This can be used to control logging levels more specificically. This
  17090. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  17091. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  17092. # log_granular_levels:
  17093. # \(aqsalt\(aq: \(aqwarning\(aq
  17094. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  17095. #
  17096. #log_granular_levels: {}
  17097. ##### Node Groups ######
  17098. ##########################################
  17099. # Node groups allow for logical groupings of minion nodes. A group consists of
  17100. # a group name and a compound target. Nodgroups can reference other nodegroups
  17101. # with \(aqN@\(aq classifier. Ensure that you do not have circular references.
  17102. #
  17103. #nodegroups:
  17104. # group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  17105. # group2: \(aqG@os:Debian and foo.domain.com\(aq
  17106. # group3: \(aqG@os:Debian and N@group1\(aq
  17107. # group4:
  17108. # \- \(aqG@foo:bar\(aq
  17109. # \- \(aqor\(aq
  17110. # \- \(aqG@foo:baz\(aq
  17111. ##### Range Cluster settings #####
  17112. ##########################################
  17113. # The range server (and optional port) that serves your cluster information
  17114. # https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec
  17115. #
  17116. #range_server: range:80
  17117. ##### Windows Software Repo settings #####
  17118. ###########################################
  17119. # Location of the repo on the master:
  17120. #winrepo_dir_ng: \(aq/srv/salt/win/repo\-ng\(aq
  17121. #
  17122. # List of git repositories to include with the local repo:
  17123. #winrepo_remotes_ng:
  17124. # \- \(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  17125. ##### Windows Software Repo settings \- Pre 2015.8 #####
  17126. ########################################################
  17127. # Legacy repo settings for pre\-2015.8 Windows minions.
  17128. #
  17129. # Location of the repo on the master:
  17130. #winrepo_dir: \(aq/srv/salt/win/repo\(aq
  17131. #
  17132. # Location of the master\(aqs repo cache file:
  17133. #winrepo_mastercachefile: \(aq/srv/salt/win/repo/winrepo.p\(aq
  17134. #
  17135. # List of git repositories to include with the local repo:
  17136. #winrepo_remotes:
  17137. # \- \(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq
  17138. # The refspecs fetched by winrepo remotes
  17139. #winrepo_refspecs:
  17140. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  17141. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  17142. #
  17143. ##### Returner settings ######
  17144. ############################################
  17145. # Which returner(s) will be used for minion\(aqs result:
  17146. #return: mysql
  17147. ###### Miscellaneous settings ######
  17148. ############################################
  17149. # Default match type for filtering events tags: startswith, endswith, find, regex, fnmatch
  17150. #event_match_type: startswith
  17151. # Save runner returns to the job cache
  17152. #runner_returns: True
  17153. # Permanently include any available Python 3rd party modules into thin and minimal Salt
  17154. # when they are generated for Salt\-SSH or other purposes.
  17155. # The modules should be named by the names they are actually imported inside the Python.
  17156. # The value of the parameters can be either one module or a comma separated list of them.
  17157. #thin_extra_mods: foo,bar
  17158. #min_extra_mods: foo,bar,baz
  17159. ###### Keepalive settings ######
  17160. ############################################
  17161. # Warning: Failure to set TCP keepalives on the salt\-master can result in
  17162. # not detecting the loss of a minion when the connection is lost or when
  17163. # its host has been terminated without first closing the socket.
  17164. # Salt\(aqs Presence System depends on this connection status to know if a minion
  17165. # is "present".
  17166. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  17167. # the OS. If connections between the minion and the master pass through
  17168. # a state tracking device such as a firewall or VPN gateway, there is
  17169. # the risk that it could tear down the connection the master and minion
  17170. # without informing either party that their connection has been taken away.
  17171. # Enabling TCP Keepalives prevents this from happening.
  17172. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  17173. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  17174. #tcp_keepalive: True
  17175. # How long before the first keepalive should be sent in seconds. Default 300
  17176. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  17177. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  17178. #tcp_keepalive_idle: 300
  17179. # How many lost probes are needed to consider the connection lost. Default \-1
  17180. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  17181. #tcp_keepalive_cnt: \-1
  17182. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  17183. # use OS defaults, typically 75 seconds on Linux, see
  17184. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  17185. #tcp_keepalive_intvl: \-1
  17186. ##### NetAPI settings #####
  17187. ############################################
  17188. # Allow the raw_shell parameter to be used when calling Salt SSH client via API
  17189. #netapi_allow_raw_shell: True
  17190. .ft P
  17191. .fi
  17192. .UNINDENT
  17193. .UNINDENT
  17194. .SS Example minion configuration file
  17195. .INDENT 0.0
  17196. .INDENT 3.5
  17197. .sp
  17198. .nf
  17199. .ft C
  17200. ##### Primary configuration settings #####
  17201. ##########################################
  17202. # This configuration file is used to manage the behavior of the Salt Minion.
  17203. # With the exception of the location of the Salt Master Server, values that are
  17204. # commented out but have an empty line after the comment are defaults that need
  17205. # not be set in the config. If there is no blank line after the comment, the
  17206. # value is presented as an example and is not the default.
  17207. # Per default the minion will automatically include all config files
  17208. # from minion.d/*.conf (minion.d is a directory in the same directory
  17209. # as the main minion config file).
  17210. #default_include: minion.d/*.conf
  17211. # Set the location of the salt master server. If the master server cannot be
  17212. # resolved, then the minion will fail to start.
  17213. #master: salt
  17214. # Set http proxy information for the minion when doing requests
  17215. #proxy_host:
  17216. #proxy_port:
  17217. #proxy_username:
  17218. #proxy_password:
  17219. # List of hosts to bypass HTTP proxy. This key does nothing unless proxy_host etc is
  17220. # configured, it does not support any kind of wildcards.
  17221. #no_proxy: []
  17222. # If multiple masters are specified in the \(aqmaster\(aq setting, the default behavior
  17223. # is to always try to connect to them in the order they are listed. If random_master
  17224. # is set to True, the order will be randomized upon Minion startup instead. This can
  17225. # be helpful in distributing the load of many minions executing salt\-call requests,
  17226. # for example, from a cron job. If only one master is listed, this setting is ignored
  17227. # and a warning will be logged.
  17228. #random_master: False
  17229. # NOTE: Deprecated in Salt 2019.2.0. Use \(aqrandom_master\(aq instead.
  17230. #master_shuffle: False
  17231. # Minions can connect to multiple masters simultaneously (all masters
  17232. # are "hot"), or can be configured to failover if a master becomes
  17233. # unavailable. Multiple hot masters are configured by setting this
  17234. # value to "str". Failover masters can be requested by setting
  17235. # to "failover". MAKE SURE TO SET master_alive_interval if you are
  17236. # using failover.
  17237. # Setting master_type to \(aqdisable\(aq let\(aqs you have a running minion (with engines and
  17238. # beacons) without a master connection
  17239. # master_type: str
  17240. # Poll interval in seconds for checking if the master is still there. Only
  17241. # respected if master_type above is "failover". To disable the interval entirely,
  17242. # set the value to \-1. (This may be necessary on machines which have high numbers
  17243. # of TCP connections, such as load balancers.)
  17244. # master_alive_interval: 30
  17245. # If the minion is in multi\-master mode and the master_type configuration option
  17246. # is set to "failover", this setting can be set to "True" to force the minion
  17247. # to fail back to the first master in the list if the first master is back online.
  17248. #master_failback: False
  17249. # If the minion is in multi\-master mode, the "master_type" configuration is set to
  17250. # "failover", and the "master_failback" option is enabled, the master failback
  17251. # interval can be set to ping the top master with this interval, in seconds.
  17252. #master_failback_interval: 0
  17253. # Set whether the minion should connect to the master via IPv6:
  17254. #ipv6: False
  17255. # Set the number of seconds to wait before attempting to resolve
  17256. # the master hostname if name resolution fails. Defaults to 30 seconds.
  17257. # Set to zero if the minion should shutdown and not retry.
  17258. # retry_dns: 30
  17259. # Set the number of times to attempt to resolve
  17260. # the master hostname if name resolution fails. Defaults to None,
  17261. # which will attempt the resolution indefinitely.
  17262. # retry_dns_count: 3
  17263. # Set the port used by the master reply and authentication server.
  17264. #master_port: 4506
  17265. # The user to run salt.
  17266. #user: root
  17267. # The user to run salt remote execution commands as via sudo. If this option is
  17268. # enabled then sudo will be used to change the active user executing the remote
  17269. # command. If enabled the user will need to be allowed access via the sudoers
  17270. # file for the user that the salt minion is configured to run as. The most
  17271. # common option would be to use the root user. If this option is set the user
  17272. # option should also be set to a non\-root user. If migrating from a root minion
  17273. # to a non root minion the minion cache should be cleared and the minion pki
  17274. # directory will need to be changed to the ownership of the new user.
  17275. #sudo_user: root
  17276. # Specify the location of the daemon process ID file.
  17277. #pidfile: /var/run/salt\-minion.pid
  17278. # The root directory prepended to these options: pki_dir, cachedir, log_file,
  17279. # sock_dir, pidfile.
  17280. #root_dir: /
  17281. # The path to the minion\(aqs configuration file.
  17282. #conf_file: /etc/salt/minion
  17283. # The directory to store the pki information in
  17284. #pki_dir: /etc/salt/pki/minion
  17285. # Explicitly declare the id for this minion to use, if left commented the id
  17286. # will be the hostname as returned by the python call: socket.getfqdn()
  17287. # Since salt uses detached ids it is possible to run multiple minions on the
  17288. # same machine but with different ids, this can be useful for salt compute
  17289. # clusters.
  17290. #id:
  17291. # Cache the minion id to a file when the minion\(aqs id is not statically defined
  17292. # in the minion config. Defaults to "True". This setting prevents potential
  17293. # problems when automatic minion id resolution changes, which can cause the
  17294. # minion to lose connection with the master. To turn off minion id caching,
  17295. # set this config to \(ga\(gaFalse\(ga\(ga.
  17296. #minion_id_caching: True
  17297. # Append a domain to a hostname in the event that it does not exist. This is
  17298. # useful for systems where socket.getfqdn() does not actually result in a
  17299. # FQDN (for instance, Solaris).
  17300. #append_domain:
  17301. # Custom static grains for this minion can be specified here and used in SLS
  17302. # files just like all other grains. This example sets 4 custom grains, with
  17303. # the \(aqroles\(aq grain having two values that can be matched against.
  17304. #grains:
  17305. # roles:
  17306. # \- webserver
  17307. # \- memcache
  17308. # deployment: datacenter4
  17309. # cabinet: 13
  17310. # cab_u: 14\-15
  17311. #
  17312. # Where cache data goes.
  17313. # This data may contain sensitive data and should be protected accordingly.
  17314. #cachedir: /var/cache/salt/minion
  17315. # Append minion_id to these directories. Helps with
  17316. # multiple proxies and minions running on the same machine.
  17317. # Allowed elements in the list: pki_dir, cachedir, extension_modules
  17318. # Normally not needed unless running several proxies and/or minions on the same machine
  17319. # Defaults to [\(aqcachedir\(aq] for proxies, [] (empty list) for regular minions
  17320. #append_minionid_config_dirs:
  17321. # Verify and set permissions on configuration directories at startup.
  17322. #verify_env: True
  17323. # The minion can locally cache the return data from jobs sent to it, this
  17324. # can be a good way to keep track of jobs the minion has executed
  17325. # (on the minion side). By default this feature is disabled, to enable, set
  17326. # cache_jobs to True.
  17327. #cache_jobs: False
  17328. # Set the directory used to hold unix sockets.
  17329. #sock_dir: /var/run/salt/minion
  17330. # In order to calculate the fqdns grain, all the IP addresses from the minion
  17331. # are processed with underlying calls to \(gasocket.gethostbyaddr\(ga which can take
  17332. # 5 seconds to be released (after reaching \(gasocket.timeout\(ga) when there is no
  17333. # fqdn for that IP. These calls to \(gasocket.gethostbyaddr\(ga are processed
  17334. # asynchronously, however, it still adds 5 seconds every time grains are
  17335. # generated if an IP does not resolve. In Windows grains are regenerated each
  17336. # time a new process is spawned. Therefore, the default for Windows is \(gaFalse\(ga.
  17337. # All other OSes default to \(gaTrue\(ga
  17338. # enable_fqdn_grains: True
  17339. # The minion can take a while to start up when lspci and/or dmidecode is used
  17340. # to populate the grains for the minion. Set this to False if you do not need
  17341. # GPU hardware grains for your minion.
  17342. # enable_gpu_grains: True
  17343. # Set the default outputter used by the salt\-call command. The default is
  17344. # "nested".
  17345. #output: nested
  17346. # To set a list of additional directories to search for salt outputters, set the
  17347. # outputter_dirs option.
  17348. #outputter_dirs: []
  17349. # By default output is colored. To disable colored output, set the color value
  17350. # to False.
  17351. #color: True
  17352. # Do not strip off the colored output from nested results and state outputs
  17353. # (true by default).
  17354. # strip_colors: False
  17355. # Backup files that are replaced by file.managed and file.recurse under
  17356. # \(aqcachedir\(aq/file_backup relative to their original location and appended
  17357. # with a timestamp. The only valid setting is "minion". Disabled by default.
  17358. #
  17359. # Alternatively this can be specified for each file in state files:
  17360. # /etc/ssh/sshd_config:
  17361. # file.managed:
  17362. # \- source: salt://ssh/sshd_config
  17363. # \- backup: minion
  17364. #
  17365. #backup_mode: minion
  17366. # When waiting for a master to accept the minion\(aqs public key, salt will
  17367. # continuously attempt to reconnect until successful. This is the time, in
  17368. # seconds, between those reconnection attempts.
  17369. #acceptance_wait_time: 10
  17370. # If this is nonzero, the time between reconnection attempts will increase by
  17371. # acceptance_wait_time seconds per iteration, up to this maximum. If this is
  17372. # set to zero, the time between reconnection attempts will stay constant.
  17373. #acceptance_wait_time_max: 0
  17374. # If the master rejects the minion\(aqs public key, retry instead of exiting.
  17375. # Rejected keys will be handled the same as waiting on acceptance.
  17376. #rejected_retry: False
  17377. # When the master key changes, the minion will try to re\-auth itself to receive
  17378. # the new master key. In larger environments this can cause a SYN flood on the
  17379. # master because all minions try to re\-auth immediately. To prevent this and
  17380. # have a minion wait for a random amount of time, use this optional parameter.
  17381. # The wait\-time will be a random number of seconds between 0 and the defined value.
  17382. #random_reauth_delay: 60
  17383. # To avoid overloading a master when many minions startup at once, a randomized
  17384. # delay may be set to tell the minions to wait before connecting to the master.
  17385. # This value is the number of seconds to choose from for a random number. For
  17386. # example, setting this value to 60 will choose a random number of seconds to delay
  17387. # on startup between zero seconds and sixty seconds. Setting to \(aq0\(aq will disable
  17388. # this feature.
  17389. #random_startup_delay: 0
  17390. # When waiting for a master to accept the minion\(aqs public key, salt will
  17391. # continuously attempt to reconnect until successful. This is the timeout value,
  17392. # in seconds, for each individual attempt. After this timeout expires, the minion
  17393. # will wait for acceptance_wait_time seconds before trying again. Unless your master
  17394. # is under unusually heavy load, this should be left at the default.
  17395. #auth_timeout: 60
  17396. # Number of consecutive SaltReqTimeoutError that are acceptable when trying to
  17397. # authenticate.
  17398. #auth_tries: 7
  17399. # The number of attempts to connect to a master before giving up.
  17400. # Set this to \-1 for unlimited attempts. This allows for a master to have
  17401. # downtime and the minion to reconnect to it later when it comes back up.
  17402. # In \(aqfailover\(aq mode, it is the number of attempts for each set of masters.
  17403. # In this mode, it will cycle through the list of masters for each attempt.
  17404. #
  17405. # This is different than auth_tries because auth_tries attempts to
  17406. # retry auth attempts with a single master. auth_tries is under the
  17407. # assumption that you can connect to the master but not gain
  17408. # authorization from it. master_tries will still cycle through all
  17409. # the masters in a given try, so it is appropriate if you expect
  17410. # occasional downtime from the master(s).
  17411. #master_tries: 1
  17412. # If authentication fails due to SaltReqTimeoutError during a ping_interval,
  17413. # cause sub minion process to restart.
  17414. #auth_safemode: False
  17415. # Ping Master to ensure connection is alive (minutes).
  17416. #ping_interval: 0
  17417. # To auto recover minions if master changes IP address (DDNS)
  17418. # auth_tries: 10
  17419. # auth_safemode: False
  17420. # ping_interval: 2
  17421. #
  17422. # Minions won\(aqt know master is missing until a ping fails. After the ping fail,
  17423. # the minion will attempt authentication and likely fails out and cause a restart.
  17424. # When the minion restarts it will resolve the masters IP and attempt to reconnect.
  17425. # If you don\(aqt have any problems with syn\-floods, don\(aqt bother with the
  17426. # three recon_* settings described below, just leave the defaults!
  17427. #
  17428. # The ZeroMQ pull\-socket that binds to the masters publishing interface tries
  17429. # to reconnect immediately, if the socket is disconnected (for example if
  17430. # the master processes are restarted). In large setups this will have all
  17431. # minions reconnect immediately which might flood the master (the ZeroMQ\-default
  17432. # is usually a 100ms delay). To prevent this, these three recon_* settings
  17433. # can be used.
  17434. # recon_default: the interval in milliseconds that the socket should wait before
  17435. # trying to reconnect to the master (1000ms = 1 second)
  17436. #
  17437. # recon_max: the maximum time a socket should wait. each interval the time to wait
  17438. # is calculated by doubling the previous time. if recon_max is reached,
  17439. # it starts again at recon_default. Short example:
  17440. #
  17441. # reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  17442. # reconnect 2: \(aqrecon_default\(aq * 2
  17443. # reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  17444. # reconnect 4: value from previous interval * 2
  17445. # reconnect 5: value from previous interval * 2
  17446. # reconnect x: if value >= recon_max, it starts again with recon_default
  17447. #
  17448. # recon_randomize: generate a random wait time on minion start. The wait time will
  17449. # be a random value between recon_default and recon_default +
  17450. # recon_max. Having all minions reconnect with the same recon_default
  17451. # and recon_max value kind of defeats the purpose of being able to
  17452. # change these settings. If all minions have the same values and your
  17453. # setup is quite large (several thousand minions), they will still
  17454. # flood the master. The desired behavior is to have timeframe within
  17455. # all minions try to reconnect.
  17456. #
  17457. # Example on how to use these settings. The goal: have all minions reconnect within a
  17458. # 60 second timeframe on a disconnect.
  17459. # recon_default: 1000
  17460. # recon_max: 59000
  17461. # recon_randomize: True
  17462. #
  17463. # Each minion will have a randomized reconnect value between \(aqrecon_default\(aq
  17464. # and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  17465. # 60000ms (or between 1 and 60 seconds). The generated random\-value will be
  17466. # doubled after each attempt to reconnect. Lets say the generated random
  17467. # value is 11 seconds (or 11000ms).
  17468. # reconnect 1: wait 11 seconds
  17469. # reconnect 2: wait 22 seconds
  17470. # reconnect 3: wait 33 seconds
  17471. # reconnect 4: wait 44 seconds
  17472. # reconnect 5: wait 55 seconds
  17473. # reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  17474. # reconnect 7: wait 11 seconds
  17475. # reconnect 8: wait 22 seconds
  17476. # reconnect 9: wait 33 seconds
  17477. # reconnect x: etc.
  17478. #
  17479. # In a setup with ~6000 thousand hosts these settings would average the reconnects
  17480. # to about 100 per second and all hosts would be reconnected within 60 seconds.
  17481. # recon_default: 100
  17482. # recon_max: 5000
  17483. # recon_randomize: False
  17484. #
  17485. #
  17486. # The loop_interval sets how long in seconds the minion will wait between
  17487. # evaluating the scheduler and running cleanup tasks. This defaults to 1
  17488. # second on the minion scheduler.
  17489. #loop_interval: 1
  17490. # Some installations choose to start all job returns in a cache or a returner
  17491. # and forgo sending the results back to a master. In this workflow, jobs
  17492. # are most often executed with \-\-async from the Salt CLI and then results
  17493. # are evaluated by examining job caches on the minions or any configured returners.
  17494. # WARNING: Setting this to False will **disable** returns back to the master.
  17495. #pub_ret: True
  17496. # The grains can be merged, instead of overridden, using this option.
  17497. # This allows custom grains to defined different subvalues of a dictionary
  17498. # grain. By default this feature is disabled, to enable set grains_deep_merge
  17499. # to \(ga\(gaTrue\(ga\(ga.
  17500. #grains_deep_merge: False
  17501. # The grains_refresh_every setting allows for a minion to periodically check
  17502. # its grains to see if they have changed and, if so, to inform the master
  17503. # of the new grains. This operation is moderately expensive, therefore
  17504. # care should be taken not to set this value too low.
  17505. #
  17506. # Note: This value is expressed in __minutes__!
  17507. #
  17508. # A value of 10 minutes is a reasonable default.
  17509. #
  17510. # If the value is set to zero, this check is disabled.
  17511. #grains_refresh_every: 1
  17512. # Cache grains on the minion. Default is False.
  17513. #grains_cache: False
  17514. # Cache rendered pillar data on the minion. Default is False.
  17515. # This may cause \(aqcachedir\(aq/pillar to contain sensitive data that should be
  17516. # protected accordingly.
  17517. #minion_pillar_cache: False
  17518. # Grains cache expiration, in seconds. If the cache file is older than this
  17519. # number of seconds then the grains cache will be dumped and fully re\-populated
  17520. # with fresh data. Defaults to 5 minutes. Will have no effect if \(aqgrains_cache\(aq
  17521. # is not enabled.
  17522. # grains_cache_expiration: 300
  17523. # Determines whether or not the salt minion should run scheduled mine updates.
  17524. # Defaults to "True". Set to "False" to disable the scheduled mine updates
  17525. # (this essentially just does not add the mine update function to the minion\(aqs
  17526. # scheduler).
  17527. #mine_enabled: True
  17528. # Determines whether or not scheduled mine updates should be accompanied by a job
  17529. # return for the job cache. Defaults to "False". Set to "True" to include job
  17530. # returns in the job cache for mine updates.
  17531. #mine_return_job: False
  17532. # Example functions that can be run via the mine facility
  17533. # NO mine functions are established by default.
  17534. # Note these can be defined in the minion\(aqs pillar as well.
  17535. #mine_functions:
  17536. # test.ping: []
  17537. # network.ip_addrs:
  17538. # interface: eth0
  17539. # cidr: \(aq10.0.0.0/8\(aq
  17540. # The number of minutes between mine updates.
  17541. #mine_interval: 60
  17542. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  17543. # process communications. ipc_mode is set to \(aqtcp\(aq on such systems.
  17544. #ipc_mode: ipc
  17545. # Overwrite the default tcp ports used by the minion when ipc_mode is set to \(aqtcp\(aq
  17546. #tcp_pub_port: 4510
  17547. #tcp_pull_port: 4511
  17548. # Passing very large events can cause the minion to consume large amounts of
  17549. # memory. This value tunes the maximum size of a message allowed onto the
  17550. # minion event bus. The value is expressed in bytes.
  17551. #max_event_size: 1048576
  17552. # When a minion starts up it sends a notification on the event bus with a tag
  17553. # that looks like this: \(gasalt/minion/<minion_id>/start\(ga. For historical reasons
  17554. # the minion also sends a similar event with an event tag like this:
  17555. # \(gaminion_start\(ga. This duplication can cause a lot of clutter on the event bus
  17556. # when there are many minions. Set \(gaenable_legacy_startup_events: False\(ga in the
  17557. # minion config to ensure only the \(gasalt/minion/<minion_id>/start\(ga events are
  17558. # sent. Beginning with the \(gaSodium\(ga Salt release this option will default to
  17559. # \(gaFalse\(ga
  17560. #enable_legacy_startup_events: True
  17561. # To detect failed master(s) and fire events on connect/disconnect, set
  17562. # master_alive_interval to the number of seconds to poll the masters for
  17563. # connection events.
  17564. #
  17565. #master_alive_interval: 30
  17566. # The minion can include configuration from other files. To enable this,
  17567. # pass a list of paths to this option. The paths can be either relative or
  17568. # absolute; if relative, they are considered to be relative to the directory
  17569. # the main minion configuration file lives in (this file). Paths can make use
  17570. # of shell\-style globbing. If no files are matched by a path passed to this
  17571. # option then the minion will log a warning message.
  17572. #
  17573. # Include a config file from some other path:
  17574. # include: /etc/salt/extra_config
  17575. #
  17576. # Include config from several files and directories:
  17577. #include:
  17578. # \- /etc/salt/extra_config
  17579. # \- /etc/roles/webserver
  17580. # The syndic minion can verify that it is talking to the correct master via the
  17581. # key fingerprint of the higher\-level master with the "syndic_finger" config.
  17582. #syndic_finger: \(aq\(aq
  17583. #
  17584. #
  17585. #
  17586. ##### Minion module management #####
  17587. ##########################################
  17588. # Disable specific modules. This allows the admin to limit the level of
  17589. # access the master has to the minion. The default here is the empty list,
  17590. # below is an example of how this needs to be formatted in the config file
  17591. #disable_modules:
  17592. # \- cmdmod
  17593. # \- test
  17594. #disable_returners: []
  17595. # This is the reverse of disable_modules. The default, like disable_modules, is the empty list,
  17596. # but if this option is set to *anything* then *only* those modules will load.
  17597. # Note that this is a very large hammer and it can be quite difficult to keep the minion working
  17598. # the way you think it should since Salt uses many modules internally itself. At a bare minimum
  17599. # you need the following enabled or else the minion won\(aqt start.
  17600. #whitelist_modules:
  17601. # \- cmdmod
  17602. # \- test
  17603. # \- config
  17604. # Modules can be loaded from arbitrary paths. This enables the easy deployment
  17605. # of third party modules. Modules for returners and minions can be loaded.
  17606. # Specify a list of extra directories to search for minion modules and
  17607. # returners. These paths must be fully qualified!
  17608. #module_dirs: []
  17609. #returner_dirs: []
  17610. #states_dirs: []
  17611. #render_dirs: []
  17612. #utils_dirs: []
  17613. #
  17614. # A module provider can be statically overwritten or extended for the minion
  17615. # via the providers option, in this case the default module will be
  17616. # overwritten by the specified module. In this example the pkg module will
  17617. # be provided by the yumpkg5 module instead of the system default.
  17618. #providers:
  17619. # pkg: yumpkg5
  17620. #
  17621. # Enable Cython modules searching and loading. (Default: False)
  17622. #cython_enable: False
  17623. #
  17624. # Specify a max size (in bytes) for modules on import. This feature is currently
  17625. # only supported on *nix operating systems and requires psutil.
  17626. # modules_max_memory: \-1
  17627. ##### State Management Settings #####
  17628. ###########################################
  17629. # The default renderer to use in SLS files. This is configured as a
  17630. # pipe\-delimited expression. For example, jinja|yaml will first run jinja
  17631. # templating on the SLS file, and then load the result as YAML. This syntax is
  17632. # documented in further depth at the following URL:
  17633. #
  17634. # https://docs.saltstack.com/en/latest/ref/renderers/#composing\-renderers
  17635. #
  17636. # NOTE: The "shebang" prefix (e.g. "#!jinja|yaml") described in the
  17637. # documentation linked above is for use in an SLS file to override the default
  17638. # renderer, it should not be used when configuring the renderer here.
  17639. #
  17640. #renderer: jinja|yaml
  17641. #
  17642. # The failhard option tells the minions to stop immediately after the first
  17643. # failure detected in the state execution. Defaults to False.
  17644. #failhard: False
  17645. #
  17646. # Reload the modules prior to a highstate run.
  17647. #autoload_dynamic_modules: True
  17648. #
  17649. # clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  17650. # the dynamic modules on the master, this means that if a dynamic module is
  17651. # not on the master it will be deleted from the minion. By default, this is
  17652. # enabled and can be disabled by changing this value to False.
  17653. #clean_dynamic_modules: True
  17654. #
  17655. # Normally, the minion is not isolated to any single environment on the master
  17656. # when running states, but the environment can be isolated on the minion side
  17657. # by statically setting it. Remember that the recommended way to manage
  17658. # environments is to isolate via the top file.
  17659. #environment: None
  17660. #
  17661. # Isolates the pillar environment on the minion side. This functions the same
  17662. # as the environment setting, but for pillar instead of states.
  17663. #pillarenv: None
  17664. #
  17665. # Set this option to True to force the pillarenv to be the same as the
  17666. # effective saltenv when running states. Note that if pillarenv is specified,
  17667. # this option will be ignored.
  17668. #pillarenv_from_saltenv: False
  17669. #
  17670. # Set this option to \(aqTrue\(aq to force a \(aqKeyError\(aq to be raised whenever an
  17671. # attempt to retrieve a named value from pillar fails. When this option is set
  17672. # to \(aqFalse\(aq, the failed attempt returns an empty string. Default is \(aqFalse\(aq.
  17673. #pillar_raise_on_missing: False
  17674. #
  17675. # If using the local file directory, then the state top file name needs to be
  17676. # defined, by default this is top.sls.
  17677. #state_top: top.sls
  17678. #
  17679. # Run states when the minion daemon starts. To enable, set startup_states to:
  17680. # \(aqhighstate\(aq \-\- Execute state.highstate
  17681. # \(aqsls\(aq \-\- Read in the sls_list option and execute the named sls files
  17682. # \(aqtop\(aq \-\- Read top_file option and execute based on that file on the Master
  17683. #startup_states: \(aq\(aq
  17684. #
  17685. # List of states to run when the minion starts up if startup_states is \(aqsls\(aq:
  17686. #sls_list:
  17687. # \- edit.vim
  17688. # \- hyper
  17689. #
  17690. # List of grains to pass in start event when minion starts up:
  17691. #start_event_grains:
  17692. # \- machine_id
  17693. # \- uuid
  17694. #
  17695. # Top file to execute if startup_states is \(aqtop\(aq:
  17696. #top_file: \(aq\(aq
  17697. # Automatically aggregate all states that have support for mod_aggregate by
  17698. # setting to True. Or pass a list of state module names to automatically
  17699. # aggregate just those types.
  17700. #
  17701. # state_aggregate:
  17702. # \- pkg
  17703. #
  17704. #state_aggregate: False
  17705. # Disable requisites during state runs by specifying a single requisite
  17706. # or a list of requisites to disable.
  17707. #
  17708. # disabled_requisites: require_in
  17709. #
  17710. # disabled_requisites:
  17711. # \- require
  17712. # \- require_in
  17713. ##### File Directory Settings #####
  17714. ##########################################
  17715. # The Salt Minion can redirect all file server operations to a local directory,
  17716. # this allows for the same state tree that is on the master to be used if
  17717. # copied completely onto the minion. This is a literal copy of the settings on
  17718. # the master but used to reference a local directory on the minion.
  17719. # Set the file client. The client defaults to looking on the master server for
  17720. # files, but can be directed to look at the local file directory setting
  17721. # defined below by setting it to "local". Setting a local file_client runs the
  17722. # minion in masterless mode.
  17723. #file_client: remote
  17724. # The file directory works on environments passed to the minion, each environment
  17725. # can have multiple root directories, the subdirectories in the multiple file
  17726. # roots cannot match, otherwise the downloaded files will not be able to be
  17727. # reliably ensured. A base environment is required to house the top file.
  17728. # Example:
  17729. # file_roots:
  17730. # base:
  17731. # \- /srv/salt/
  17732. # dev:
  17733. # \- /srv/salt/dev/services
  17734. # \- /srv/salt/dev/states
  17735. # prod:
  17736. # \- /srv/salt/prod/services
  17737. # \- /srv/salt/prod/states
  17738. #
  17739. #file_roots:
  17740. # base:
  17741. # \- /srv/salt
  17742. # Uncomment the line below if you do not want the file_server to follow
  17743. # symlinks when walking the filesystem tree. This is set to True
  17744. # by default. Currently this only applies to the default roots
  17745. # fileserver_backend.
  17746. #fileserver_followsymlinks: False
  17747. #
  17748. # Uncomment the line below if you do not want symlinks to be
  17749. # treated as the files they are pointing to. By default this is set to
  17750. # False. By uncommenting the line below, any detected symlink while listing
  17751. # files on the Master will not be returned to the Minion.
  17752. #fileserver_ignoresymlinks: True
  17753. #
  17754. # By default, the Salt fileserver recurses fully into all defined environments
  17755. # to attempt to find files. To limit this behavior so that the fileserver only
  17756. # traverses directories with SLS files and special Salt directories like _modules,
  17757. # enable the option below. This might be useful for installations where a file root
  17758. # has a very large number of files and performance is negatively impacted. Default
  17759. # is False.
  17760. #fileserver_limit_traversal: False
  17761. # The hash_type is the hash to use when discovering the hash of a file on
  17762. # the local fileserver. The default is sha256, but md5, sha1, sha224, sha384
  17763. # and sha512 are also supported.
  17764. #
  17765. # WARNING: While md5 and sha1 are also supported, do not use them due to the
  17766. # high chance of possible collisions and thus security breach.
  17767. #
  17768. # Warning: Prior to changing this value, the minion should be stopped and all
  17769. # Salt caches should be cleared.
  17770. #hash_type: sha256
  17771. # The Salt pillar is searched for locally if file_client is set to local. If
  17772. # this is the case, and pillar data is defined, then the pillar_roots need to
  17773. # also be configured on the minion:
  17774. #pillar_roots:
  17775. # base:
  17776. # \- /srv/pillar
  17777. # Set a hard\-limit on the size of the files that can be pushed to the master.
  17778. # It will be interpreted as megabytes. Default: 100
  17779. #file_recv_max_size: 100
  17780. #
  17781. #
  17782. ###### Security settings #####
  17783. ###########################################
  17784. # Enable "open mode", this mode still maintains encryption, but turns off
  17785. # authentication, this is only intended for highly secure environments or for
  17786. # the situation where your keys end up in a bad state. If you run in open mode
  17787. # you do so at your own risk!
  17788. #open_mode: False
  17789. # The size of key that should be generated when creating new keys.
  17790. #keysize: 2048
  17791. # Enable permissive access to the salt keys. This allows you to run the
  17792. # master or minion as root, but have a non\-root group be given access to
  17793. # your pki_dir. To make the access explicit, root must belong to the group
  17794. # you\(aqve given access to. This is potentially quite insecure.
  17795. #permissive_pki_access: False
  17796. # The state_verbose and state_output settings can be used to change the way
  17797. # state system data is printed to the display. By default all data is printed.
  17798. # The state_verbose setting can be set to True or False, when set to False
  17799. # all data that has a result of True and no changes will be suppressed.
  17800. #state_verbose: True
  17801. # The state_output setting controls which results will be output full multi line
  17802. # full, terse \- each state will be full/terse
  17803. # mixed \- only states with errors will be full
  17804. # changes \- states with changes and errors will be full
  17805. # full_id, mixed_id, changes_id and terse_id are also allowed;
  17806. # when set, the state ID will be used as name in the output
  17807. #state_output: full
  17808. # The state_output_diff setting changes whether or not the output from
  17809. # successful states is returned. Useful when even the terse output of these
  17810. # states is cluttering the logs. Set it to True to ignore them.
  17811. #state_output_diff: False
  17812. # The state_output_profile setting changes whether profile information
  17813. # will be shown for each state run.
  17814. #state_output_profile: True
  17815. # Fingerprint of the master public key to validate the identity of your Salt master
  17816. # before the initial key exchange. The master fingerprint can be found by running
  17817. # "salt\-key \-f master.pub" on the Salt master.
  17818. #master_finger: \(aq\(aq
  17819. # Use TLS/SSL encrypted connection between master and minion.
  17820. # Can be set to a dictionary containing keyword arguments corresponding to Python\(aqs
  17821. # \(aqssl.wrap_socket\(aq method.
  17822. # Default is None.
  17823. #ssl:
  17824. # keyfile: <path_to_keyfile>
  17825. # certfile: <path_to_certfile>
  17826. # ssl_version: PROTOCOL_TLSv1_2
  17827. # Grains to be sent to the master on authentication to check if the minion\(aqs key
  17828. # will be accepted automatically. Needs to be configured on the master.
  17829. #autosign_grains:
  17830. # \- uuid
  17831. # \- server_id
  17832. ###### Reactor Settings #####
  17833. ###########################################
  17834. # Define a salt reactor. See https://docs.saltstack.com/en/latest/topics/reactor/
  17835. #reactor: []
  17836. #Set the TTL for the cache of the reactor configuration.
  17837. #reactor_refresh_interval: 60
  17838. #Configure the number of workers for the runner/wheel in the reactor.
  17839. #reactor_worker_threads: 10
  17840. #Define the queue size for workers in the reactor.
  17841. #reactor_worker_hwm: 10000
  17842. ###### Thread settings #####
  17843. ###########################################
  17844. # Disable multiprocessing support, by default when a minion receives a
  17845. # publication a new process is spawned and the command is executed therein.
  17846. #
  17847. # WARNING: Disabling multiprocessing may result in substantial slowdowns
  17848. # when processing large pillars. See https://github.com/saltstack/salt/issues/38758
  17849. # for a full explanation.
  17850. #multiprocessing: True
  17851. # Limit the maximum amount of processes or threads created by salt\-minion.
  17852. # This is useful to avoid resource exhaustion in case the minion receives more
  17853. # publications than it is able to handle, as it limits the number of spawned
  17854. # processes or threads. \-1 is the default and disables the limit.
  17855. #process_count_max: \-1
  17856. ##### Logging settings #####
  17857. ##########################################
  17858. # The location of the minion log file
  17859. # The minion log can be sent to a regular file, local path name, or network
  17860. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  17861. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  17862. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  17863. #log_file: /var/log/salt/minion
  17864. #log_file: file:///dev/log
  17865. #log_file: udp://loghost:10514
  17866. #
  17867. #log_file: /var/log/salt/minion
  17868. #key_logfile: /var/log/salt/key
  17869. # The level of messages to send to the console.
  17870. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17871. #
  17872. # The following log levels are considered INSECURE and may log sensitive data:
  17873. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  17874. #
  17875. # Default: \(aqwarning\(aq
  17876. #log_level: warning
  17877. # The level of messages to send to the log file.
  17878. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17879. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  17880. # Default: \(aqwarning\(aq
  17881. #log_level_logfile:
  17882. # The date and time format used in log messages. Allowed date/time formatting
  17883. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  17884. #log_datefmt: \(aq%H:%M:%S\(aq
  17885. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  17886. # The format of the console logging messages. Allowed formatting options can
  17887. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  17888. #
  17889. # Console log colors are specified by these additional formatters:
  17890. #
  17891. # %(colorlevel)s
  17892. # %(colorname)s
  17893. # %(colorprocess)s
  17894. # %(colormsg)s
  17895. #
  17896. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  17897. # the coloring of the messages, these color formatters also include padding as
  17898. # well. Color LogRecord attributes are only available for console logging.
  17899. #
  17900. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  17901. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  17902. #
  17903. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  17904. # This can be used to control logging levels more specificically. This
  17905. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  17906. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  17907. # log_granular_levels:
  17908. # \(aqsalt\(aq: \(aqwarning\(aq
  17909. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  17910. #
  17911. #log_granular_levels: {}
  17912. # To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  17913. # supports the use of monitor sockets to log connection events. This
  17914. # feature requires ZeroMQ 4.0 or higher.
  17915. #
  17916. # To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  17917. # debug level or higher.
  17918. #
  17919. # A sample log event is as follows:
  17920. #
  17921. # [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  17922. # \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  17923. #
  17924. # All events logged will include the string \(aqZeroMQ event\(aq. A connection event
  17925. # should be logged as the minion starts up and initially connects to the
  17926. # master. If not, check for debug log level and that the necessary version of
  17927. # ZeroMQ is installed.
  17928. #
  17929. #zmq_monitor: False
  17930. # Number of times to try to authenticate with the salt master when reconnecting
  17931. # to the master
  17932. #tcp_authentication_retries: 5
  17933. ###### Module configuration #####
  17934. ###########################################
  17935. # Salt allows for modules to be passed arbitrary configuration data, any data
  17936. # passed here in valid yaml format will be passed on to the salt minion modules
  17937. # for use. It is STRONGLY recommended that a naming convention be used in which
  17938. # the module name is followed by a . and then the value. Also, all top level
  17939. # data must be applied via the yaml dict construct, some examples:
  17940. #
  17941. # You can specify that all modules should run in test mode:
  17942. #test: True
  17943. #
  17944. # A simple value for the test module:
  17945. #test.foo: foo
  17946. #
  17947. # A list for the test module:
  17948. #test.bar: [baz,quo]
  17949. #
  17950. # A dict for the test module:
  17951. #test.baz: {spam: sausage, cheese: bread}
  17952. #
  17953. #
  17954. ###### Update settings ######
  17955. ###########################################
  17956. # Using the features in Esky, a salt minion can both run as a frozen app and
  17957. # be updated on the fly. These options control how the update process
  17958. # (saltutil.update()) behaves.
  17959. #
  17960. # The url for finding and downloading updates. Disabled by default.
  17961. #update_url: False
  17962. #
  17963. # The list of services to restart after a successful update. Empty by default.
  17964. #update_restart_services: []
  17965. ###### Keepalive settings ######
  17966. ############################################
  17967. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  17968. # the OS. If connections between the minion and the master pass through
  17969. # a state tracking device such as a firewall or VPN gateway, there is
  17970. # the risk that it could tear down the connection the master and minion
  17971. # without informing either party that their connection has been taken away.
  17972. # Enabling TCP Keepalives prevents this from happening.
  17973. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  17974. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  17975. #tcp_keepalive: True
  17976. # How long before the first keepalive should be sent in seconds. Default 300
  17977. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  17978. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  17979. #tcp_keepalive_idle: 300
  17980. # How many lost probes are needed to consider the connection lost. Default \-1
  17981. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  17982. #tcp_keepalive_cnt: \-1
  17983. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  17984. # use OS defaults, typically 75 seconds on Linux, see
  17985. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  17986. #tcp_keepalive_intvl: \-1
  17987. ###### Windows Software settings ######
  17988. ############################################
  17989. # Location of the repository cache file on the master:
  17990. #win_repo_cachefile: \(aqsalt://win/repo/winrepo.p\(aq
  17991. ###### Returner settings ######
  17992. ############################################
  17993. # Default Minion returners. Can be a comma delimited string or a list:
  17994. #
  17995. #return: mysql
  17996. #
  17997. #return: mysql,slack,redis
  17998. #
  17999. #return:
  18000. # \- mysql
  18001. # \- hipchat
  18002. # \- slack
  18003. ###### Miscellaneous settings ######
  18004. ############################################
  18005. # Default match type for filtering events tags: startswith, endswith, find, regex, fnmatch
  18006. #event_match_type: startswith
  18007. .ft P
  18008. .fi
  18009. .UNINDENT
  18010. .UNINDENT
  18011. .SS Example proxy minion configuration file
  18012. .INDENT 0.0
  18013. .INDENT 3.5
  18014. .sp
  18015. .nf
  18016. .ft C
  18017. ##### Primary configuration settings #####
  18018. ##########################################
  18019. # This configuration file is used to manage the behavior of all Salt Proxy
  18020. # Minions on this host.
  18021. # With the exception of the location of the Salt Master Server, values that are
  18022. # commented out but have an empty line after the comment are defaults that need
  18023. # not be set in the config. If there is no blank line after the comment, the
  18024. # value is presented as an example and is not the default.
  18025. # Per default the minion will automatically include all config files
  18026. # from minion.d/*.conf (minion.d is a directory in the same directory
  18027. # as the main minion config file).
  18028. #default_include: minion.d/*.conf
  18029. # Backwards compatibility option for proxymodules created before 2015.8.2
  18030. # This setting will default to \(aqFalse\(aq in the 2016.3.0 release
  18031. # Setting this to True adds proxymodules to the __opts__ dictionary.
  18032. # This breaks several Salt features (basically anything that serializes
  18033. # __opts__ over the wire) but retains backwards compatibility.
  18034. #add_proxymodule_to_opts: True
  18035. # Set the location of the salt master server. If the master server cannot be
  18036. # resolved, then the minion will fail to start.
  18037. #master: salt
  18038. # If a proxymodule has a function called \(aqgrains\(aq, then call it during
  18039. # regular grains loading and merge the results with the proxy\(aqs grains
  18040. # dictionary. Otherwise it is assumed that the module calls the grains
  18041. # function in a custom way and returns the data elsewhere
  18042. #
  18043. # Default to False for 2016.3 and 2016.11. Switch to True for 2017.7.0.
  18044. # proxy_merge_grains_in_module: True
  18045. # If a proxymodule has a function called \(aqalive\(aq returning a boolean
  18046. # flag reflecting the state of the connection with the remove device,
  18047. # when this option is set as True, a scheduled job on the proxy will
  18048. # try restarting the connection. The polling frequency depends on the
  18049. # next option, \(aqproxy_keep_alive_interval\(aq. Added in 2017.7.0.
  18050. # proxy_keep_alive: True
  18051. # The polling interval (in minutes) to check if the underlying connection
  18052. # with the remote device is still alive. This option requires
  18053. # \(aqproxy_keep_alive\(aq to be configured as True and the proxymodule to
  18054. # implement the \(aqalive\(aq function. Added in 2017.7.0.
  18055. # proxy_keep_alive_interval: 1
  18056. # By default, any proxy opens the connection with the remote device when
  18057. # initialized. Some proxymodules allow through this option to open/close
  18058. # the session per command. This requires the proxymodule to have this
  18059. # capability. Please consult the documentation to see if the proxy type
  18060. # used can be that flexible. Added in 2017.7.0.
  18061. # proxy_always_alive: True
  18062. # If multiple masters are specified in the \(aqmaster\(aq setting, the default behavior
  18063. # is to always try to connect to them in the order they are listed. If random_master is
  18064. # set to True, the order will be randomized instead. This can be helpful in distributing
  18065. # the load of many minions executing salt\-call requests, for example, from a cron job.
  18066. # If only one master is listed, this setting is ignored and a warning will be logged.
  18067. #random_master: False
  18068. # Minions can connect to multiple masters simultaneously (all masters
  18069. # are "hot"), or can be configured to failover if a master becomes
  18070. # unavailable. Multiple hot masters are configured by setting this
  18071. # value to "str". Failover masters can be requested by setting
  18072. # to "failover". MAKE SURE TO SET master_alive_interval if you are
  18073. # using failover.
  18074. # master_type: str
  18075. # Poll interval in seconds for checking if the master is still there. Only
  18076. # respected if master_type above is "failover".
  18077. # master_alive_interval: 30
  18078. # Set whether the minion should connect to the master via IPv6:
  18079. #ipv6: False
  18080. # Set the number of seconds to wait before attempting to resolve
  18081. # the master hostname if name resolution fails. Defaults to 30 seconds.
  18082. # Set to zero if the minion should shutdown and not retry.
  18083. # retry_dns: 30
  18084. # Set the port used by the master reply and authentication server.
  18085. #master_port: 4506
  18086. # The user to run salt.
  18087. #user: root
  18088. # Setting sudo_user will cause salt to run all execution modules under an sudo
  18089. # to the user given in sudo_user. The user under which the salt minion process
  18090. # itself runs will still be that provided in the user config above, but all
  18091. # execution modules run by the minion will be rerouted through sudo.
  18092. #sudo_user: saltdev
  18093. # Specify the location of the daemon process ID file.
  18094. #pidfile: /var/run/salt\-minion.pid
  18095. # The root directory prepended to these options: pki_dir, cachedir, log_file,
  18096. # sock_dir, pidfile.
  18097. #root_dir: /
  18098. # The directory to store the pki information in
  18099. #pki_dir: /etc/salt/pki/minion
  18100. # Where cache data goes.
  18101. # This data may contain sensitive data and should be protected accordingly.
  18102. #cachedir: /var/cache/salt/minion
  18103. # Append minion_id to these directories. Helps with
  18104. # multiple proxies and minions running on the same machine.
  18105. # Allowed elements in the list: pki_dir, cachedir, extension_modules
  18106. # Normally not needed unless running several proxies and/or minions on the same machine
  18107. # Defaults to [\(aqcachedir\(aq] for proxies, [] (empty list) for regular minions
  18108. # append_minionid_config_dirs:
  18109. # \- cachedir
  18110. # Verify and set permissions on configuration directories at startup.
  18111. #verify_env: True
  18112. # The minion can locally cache the return data from jobs sent to it, this
  18113. # can be a good way to keep track of jobs the minion has executed
  18114. # (on the minion side). By default this feature is disabled, to enable, set
  18115. # cache_jobs to True.
  18116. #cache_jobs: False
  18117. # Set the directory used to hold unix sockets.
  18118. #sock_dir: /var/run/salt/minion
  18119. # Set the default outputter used by the salt\-call command. The default is
  18120. # "nested".
  18121. #output: nested
  18122. #
  18123. # By default output is colored. To disable colored output, set the color value
  18124. # to False.
  18125. #color: True
  18126. # Do not strip off the colored output from nested results and state outputs
  18127. # (true by default).
  18128. # strip_colors: False
  18129. # Backup files that are replaced by file.managed and file.recurse under
  18130. # \(aqcachedir\(aq/file_backup relative to their original location and appended
  18131. # with a timestamp. The only valid setting is "minion". Disabled by default.
  18132. #
  18133. # Alternatively this can be specified for each file in state files:
  18134. # /etc/ssh/sshd_config:
  18135. # file.managed:
  18136. # \- source: salt://ssh/sshd_config
  18137. # \- backup: minion
  18138. #
  18139. #backup_mode: minion
  18140. # When waiting for a master to accept the minion\(aqs public key, salt will
  18141. # continuously attempt to reconnect until successful. This is the time, in
  18142. # seconds, between those reconnection attempts.
  18143. #acceptance_wait_time: 10
  18144. # If this is nonzero, the time between reconnection attempts will increase by
  18145. # acceptance_wait_time seconds per iteration, up to this maximum. If this is
  18146. # set to zero, the time between reconnection attempts will stay constant.
  18147. #acceptance_wait_time_max: 0
  18148. # If the master rejects the minion\(aqs public key, retry instead of exiting.
  18149. # Rejected keys will be handled the same as waiting on acceptance.
  18150. #rejected_retry: False
  18151. # When the master key changes, the minion will try to re\-auth itself to receive
  18152. # the new master key. In larger environments this can cause a SYN flood on the
  18153. # master because all minions try to re\-auth immediately. To prevent this and
  18154. # have a minion wait for a random amount of time, use this optional parameter.
  18155. # The wait\-time will be a random number of seconds between 0 and the defined value.
  18156. #random_reauth_delay: 60
  18157. # When waiting for a master to accept the minion\(aqs public key, salt will
  18158. # continuously attempt to reconnect until successful. This is the timeout value,
  18159. # in seconds, for each individual attempt. After this timeout expires, the minion
  18160. # will wait for acceptance_wait_time seconds before trying again. Unless your master
  18161. # is under unusually heavy load, this should be left at the default.
  18162. #auth_timeout: 60
  18163. # Number of consecutive SaltReqTimeoutError that are acceptable when trying to
  18164. # authenticate.
  18165. #auth_tries: 7
  18166. # If authentication fails due to SaltReqTimeoutError during a ping_interval,
  18167. # cause sub minion process to restart.
  18168. #auth_safemode: False
  18169. # Ping Master to ensure connection is alive (minutes).
  18170. #ping_interval: 0
  18171. # To auto recover minions if master changes IP address (DDNS)
  18172. # auth_tries: 10
  18173. # auth_safemode: False
  18174. # ping_interval: 90
  18175. #
  18176. # Minions won\(aqt know master is missing until a ping fails. After the ping fail,
  18177. # the minion will attempt authentication and likely fails out and cause a restart.
  18178. # When the minion restarts it will resolve the masters IP and attempt to reconnect.
  18179. # If you don\(aqt have any problems with syn\-floods, don\(aqt bother with the
  18180. # three recon_* settings described below, just leave the defaults!
  18181. #
  18182. # The ZeroMQ pull\-socket that binds to the masters publishing interface tries
  18183. # to reconnect immediately, if the socket is disconnected (for example if
  18184. # the master processes are restarted). In large setups this will have all
  18185. # minions reconnect immediately which might flood the master (the ZeroMQ\-default
  18186. # is usually a 100ms delay). To prevent this, these three recon_* settings
  18187. # can be used.
  18188. # recon_default: the interval in milliseconds that the socket should wait before
  18189. # trying to reconnect to the master (1000ms = 1 second)
  18190. #
  18191. # recon_max: the maximum time a socket should wait. each interval the time to wait
  18192. # is calculated by doubling the previous time. if recon_max is reached,
  18193. # it starts again at recon_default. Short example:
  18194. #
  18195. # reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  18196. # reconnect 2: \(aqrecon_default\(aq * 2
  18197. # reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  18198. # reconnect 4: value from previous interval * 2
  18199. # reconnect 5: value from previous interval * 2
  18200. # reconnect x: if value >= recon_max, it starts again with recon_default
  18201. #
  18202. # recon_randomize: generate a random wait time on minion start. The wait time will
  18203. # be a random value between recon_default and recon_default +
  18204. # recon_max. Having all minions reconnect with the same recon_default
  18205. # and recon_max value kind of defeats the purpose of being able to
  18206. # change these settings. If all minions have the same values and your
  18207. # setup is quite large (several thousand minions), they will still
  18208. # flood the master. The desired behavior is to have timeframe within
  18209. # all minions try to reconnect.
  18210. #
  18211. # Example on how to use these settings. The goal: have all minions reconnect within a
  18212. # 60 second timeframe on a disconnect.
  18213. # recon_default: 1000
  18214. # recon_max: 59000
  18215. # recon_randomize: True
  18216. #
  18217. # Each minion will have a randomized reconnect value between \(aqrecon_default\(aq
  18218. # and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  18219. # 60000ms (or between 1 and 60 seconds). The generated random\-value will be
  18220. # doubled after each attempt to reconnect. Lets say the generated random
  18221. # value is 11 seconds (or 11000ms).
  18222. # reconnect 1: wait 11 seconds
  18223. # reconnect 2: wait 22 seconds
  18224. # reconnect 3: wait 33 seconds
  18225. # reconnect 4: wait 44 seconds
  18226. # reconnect 5: wait 55 seconds
  18227. # reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  18228. # reconnect 7: wait 11 seconds
  18229. # reconnect 8: wait 22 seconds
  18230. # reconnect 9: wait 33 seconds
  18231. # reconnect x: etc.
  18232. #
  18233. # In a setup with ~6000 thousand hosts these settings would average the reconnects
  18234. # to about 100 per second and all hosts would be reconnected within 60 seconds.
  18235. # recon_default: 100
  18236. # recon_max: 5000
  18237. # recon_randomize: False
  18238. #
  18239. #
  18240. # The loop_interval sets how long in seconds the minion will wait between
  18241. # evaluating the scheduler and running cleanup tasks. This defaults to a
  18242. # sane 60 seconds, but if the minion scheduler needs to be evaluated more
  18243. # often lower this value
  18244. #loop_interval: 60
  18245. # The grains_refresh_every setting allows for a minion to periodically check
  18246. # its grains to see if they have changed and, if so, to inform the master
  18247. # of the new grains. This operation is moderately expensive, therefore
  18248. # care should be taken not to set this value too low.
  18249. #
  18250. # Note: This value is expressed in __minutes__!
  18251. #
  18252. # A value of 10 minutes is a reasonable default.
  18253. #
  18254. # If the value is set to zero, this check is disabled.
  18255. #grains_refresh_every: 1
  18256. # Cache grains on the minion. Default is False.
  18257. #grains_cache: False
  18258. # Grains cache expiration, in seconds. If the cache file is older than this
  18259. # number of seconds then the grains cache will be dumped and fully re\-populated
  18260. # with fresh data. Defaults to 5 minutes. Will have no effect if \(aqgrains_cache\(aq
  18261. # is not enabled.
  18262. # grains_cache_expiration: 300
  18263. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  18264. # process communications. Set ipc_mode to \(aqtcp\(aq on such systems
  18265. #ipc_mode: ipc
  18266. # Overwrite the default tcp ports used by the minion when in tcp mode
  18267. #tcp_pub_port: 4510
  18268. #tcp_pull_port: 4511
  18269. # Passing very large events can cause the minion to consume large amounts of
  18270. # memory. This value tunes the maximum size of a message allowed onto the
  18271. # minion event bus. The value is expressed in bytes.
  18272. #max_event_size: 1048576
  18273. # To detect failed master(s) and fire events on connect/disconnect, set
  18274. # master_alive_interval to the number of seconds to poll the masters for
  18275. # connection events.
  18276. #
  18277. #master_alive_interval: 30
  18278. # The minion can include configuration from other files. To enable this,
  18279. # pass a list of paths to this option. The paths can be either relative or
  18280. # absolute; if relative, they are considered to be relative to the directory
  18281. # the main minion configuration file lives in (this file). Paths can make use
  18282. # of shell\-style globbing. If no files are matched by a path passed to this
  18283. # option then the minion will log a warning message.
  18284. #
  18285. # Include a config file from some other path:
  18286. # include: /etc/salt/extra_config
  18287. #
  18288. # Include config from several files and directories:
  18289. #include:
  18290. # \- /etc/salt/extra_config
  18291. # \- /etc/roles/webserver
  18292. #
  18293. #
  18294. #
  18295. ##### Minion module management #####
  18296. ##########################################
  18297. # Disable specific modules. This allows the admin to limit the level of
  18298. # access the master has to the minion.
  18299. #disable_modules: [cmd,test]
  18300. #disable_returners: []
  18301. #
  18302. # Modules can be loaded from arbitrary paths. This enables the easy deployment
  18303. # of third party modules. Modules for returners and minions can be loaded.
  18304. # Specify a list of extra directories to search for minion modules and
  18305. # returners. These paths must be fully qualified!
  18306. #module_dirs: []
  18307. #returner_dirs: []
  18308. #states_dirs: []
  18309. #render_dirs: []
  18310. #utils_dirs: []
  18311. #
  18312. # A module provider can be statically overwritten or extended for the minion
  18313. # via the providers option, in this case the default module will be
  18314. # overwritten by the specified module. In this example the pkg module will
  18315. # be provided by the yumpkg5 module instead of the system default.
  18316. #providers:
  18317. # pkg: yumpkg5
  18318. #
  18319. # Enable Cython modules searching and loading. (Default: False)
  18320. #cython_enable: False
  18321. #
  18322. # Specify a max size (in bytes) for modules on import. This feature is currently
  18323. # only supported on *nix operating systems and requires psutil.
  18324. # modules_max_memory: \-1
  18325. ##### State Management Settings #####
  18326. ###########################################
  18327. # The default renderer to use in SLS files. This is configured as a
  18328. # pipe\-delimited expression. For example, jinja|yaml will first run jinja
  18329. # templating on the SLS file, and then load the result as YAML. This syntax is
  18330. # documented in further depth at the following URL:
  18331. #
  18332. # https://docs.saltstack.com/en/latest/ref/renderers/#composing\-renderers
  18333. #
  18334. # NOTE: The "shebang" prefix (e.g. "#!jinja|yaml") described in the
  18335. # documentation linked above is for use in an SLS file to override the default
  18336. # renderer, it should not be used when configuring the renderer here.
  18337. #
  18338. #renderer: jinja|yaml
  18339. #
  18340. # The failhard option tells the minions to stop immediately after the first
  18341. # failure detected in the state execution. Defaults to False.
  18342. #failhard: False
  18343. #
  18344. # Reload the modules prior to a highstate run.
  18345. #autoload_dynamic_modules: True
  18346. #
  18347. # clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  18348. # the dynamic modules on the master, this means that if a dynamic module is
  18349. # not on the master it will be deleted from the minion. By default, this is
  18350. # enabled and can be disabled by changing this value to False.
  18351. #clean_dynamic_modules: True
  18352. #
  18353. # Normally, the minion is not isolated to any single environment on the master
  18354. # when running states, but the environment can be isolated on the minion side
  18355. # by statically setting it. Remember that the recommended way to manage
  18356. # environments is to isolate via the top file.
  18357. #environment: None
  18358. #
  18359. # If using the local file directory, then the state top file name needs to be
  18360. # defined, by default this is top.sls.
  18361. #state_top: top.sls
  18362. #
  18363. # Run states when the minion daemon starts. To enable, set startup_states to:
  18364. # \(aqhighstate\(aq \-\- Execute state.highstate
  18365. # \(aqsls\(aq \-\- Read in the sls_list option and execute the named sls files
  18366. # \(aqtop\(aq \-\- Read top_file option and execute based on that file on the Master
  18367. #startup_states: \(aq\(aq
  18368. #
  18369. # List of states to run when the minion starts up if startup_states is \(aqsls\(aq:
  18370. #sls_list:
  18371. # \- edit.vim
  18372. # \- hyper
  18373. #
  18374. # Top file to execute if startup_states is \(aqtop\(aq:
  18375. #top_file: \(aq\(aq
  18376. # Automatically aggregate all states that have support for mod_aggregate by
  18377. # setting to True. Or pass a list of state module names to automatically
  18378. # aggregate just those types.
  18379. #
  18380. # state_aggregate:
  18381. # \- pkg
  18382. #
  18383. #state_aggregate: False
  18384. ##### File Directory Settings #####
  18385. ##########################################
  18386. # The Salt Minion can redirect all file server operations to a local directory,
  18387. # this allows for the same state tree that is on the master to be used if
  18388. # copied completely onto the minion. This is a literal copy of the settings on
  18389. # the master but used to reference a local directory on the minion.
  18390. # Set the file client. The client defaults to looking on the master server for
  18391. # files, but can be directed to look at the local file directory setting
  18392. # defined below by setting it to "local". Setting a local file_client runs the
  18393. # minion in masterless mode.
  18394. #file_client: remote
  18395. # The file directory works on environments passed to the minion, each environment
  18396. # can have multiple root directories, the subdirectories in the multiple file
  18397. # roots cannot match, otherwise the downloaded files will not be able to be
  18398. # reliably ensured. A base environment is required to house the top file.
  18399. # Example:
  18400. # file_roots:
  18401. # base:
  18402. # \- /srv/salt/
  18403. # dev:
  18404. # \- /srv/salt/dev/services
  18405. # \- /srv/salt/dev/states
  18406. # prod:
  18407. # \- /srv/salt/prod/services
  18408. # \- /srv/salt/prod/states
  18409. #
  18410. #file_roots:
  18411. # base:
  18412. # \- /srv/salt
  18413. # By default, the Salt fileserver recurses fully into all defined environments
  18414. # to attempt to find files. To limit this behavior so that the fileserver only
  18415. # traverses directories with SLS files and special Salt directories like _modules,
  18416. # enable the option below. This might be useful for installations where a file root
  18417. # has a very large number of files and performance is negatively impacted. Default
  18418. # is False.
  18419. #fileserver_limit_traversal: False
  18420. # The hash_type is the hash to use when discovering the hash of a file in
  18421. # the local fileserver. The default is sha256 but sha224, sha384 and sha512
  18422. # are also supported.
  18423. #
  18424. # WARNING: While md5 and sha1 are also supported, do not use it due to the high chance
  18425. # of possible collisions and thus security breach.
  18426. #
  18427. # WARNING: While md5 is also supported, do not use it due to the high chance
  18428. # of possible collisions and thus security breach.
  18429. #
  18430. # Warning: Prior to changing this value, the minion should be stopped and all
  18431. # Salt caches should be cleared.
  18432. #hash_type: sha256
  18433. # The Salt pillar is searched for locally if file_client is set to local. If
  18434. # this is the case, and pillar data is defined, then the pillar_roots need to
  18435. # also be configured on the minion:
  18436. #pillar_roots:
  18437. # base:
  18438. # \- /srv/pillar
  18439. #
  18440. #
  18441. ###### Security settings #####
  18442. ###########################################
  18443. # Enable "open mode", this mode still maintains encryption, but turns off
  18444. # authentication, this is only intended for highly secure environments or for
  18445. # the situation where your keys end up in a bad state. If you run in open mode
  18446. # you do so at your own risk!
  18447. #open_mode: False
  18448. # Enable permissive access to the salt keys. This allows you to run the
  18449. # master or minion as root, but have a non\-root group be given access to
  18450. # your pki_dir. To make the access explicit, root must belong to the group
  18451. # you\(aqve given access to. This is potentially quite insecure.
  18452. #permissive_pki_access: False
  18453. # The state_verbose and state_output settings can be used to change the way
  18454. # state system data is printed to the display. By default all data is printed.
  18455. # The state_verbose setting can be set to True or False, when set to False
  18456. # all data that has a result of True and no changes will be suppressed.
  18457. #state_verbose: True
  18458. # The state_output setting controls which results will be output full multi line
  18459. # full, terse \- each state will be full/terse
  18460. # mixed \- only states with errors will be full
  18461. # changes \- states with changes and errors will be full
  18462. # full_id, mixed_id, changes_id and terse_id are also allowed;
  18463. # when set, the state ID will be used as name in the output
  18464. #state_output: full
  18465. # The state_output_diff setting changes whether or not the output from
  18466. # successful states is returned. Useful when even the terse output of these
  18467. # states is cluttering the logs. Set it to True to ignore them.
  18468. #state_output_diff: False
  18469. # The state_output_profile setting changes whether profile information
  18470. # will be shown for each state run.
  18471. #state_output_profile: True
  18472. # Fingerprint of the master public key to validate the identity of your Salt master
  18473. # before the initial key exchange. The master fingerprint can be found by running
  18474. # "salt\-key \-F master" on the Salt master.
  18475. #master_finger: \(aq\(aq
  18476. ###### Thread settings #####
  18477. ###########################################
  18478. # Disable multiprocessing support, by default when a minion receives a
  18479. # publication a new process is spawned and the command is executed therein.
  18480. #multiprocessing: True
  18481. ##### Logging settings #####
  18482. ##########################################
  18483. # The location of the minion log file
  18484. # The minion log can be sent to a regular file, local path name, or network
  18485. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  18486. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  18487. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  18488. #log_file: /var/log/salt/minion
  18489. #log_file: file:///dev/log
  18490. #log_file: udp://loghost:10514
  18491. #
  18492. #log_file: /var/log/salt/minion
  18493. #key_logfile: /var/log/salt/key
  18494. # The level of messages to send to the console.
  18495. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  18496. #
  18497. # The following log levels are considered INSECURE and may log sensitive data:
  18498. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  18499. #
  18500. # Default: \(aqwarning\(aq
  18501. #log_level: warning
  18502. # The level of messages to send to the log file.
  18503. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  18504. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  18505. # Default: \(aqwarning\(aq
  18506. #log_level_logfile:
  18507. # The date and time format used in log messages. Allowed date/time formatting
  18508. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  18509. #log_datefmt: \(aq%H:%M:%S\(aq
  18510. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  18511. # The format of the console logging messages. Allowed formatting options can
  18512. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  18513. #
  18514. # Console log colors are specified by these additional formatters:
  18515. #
  18516. # %(colorlevel)s
  18517. # %(colorname)s
  18518. # %(colorprocess)s
  18519. # %(colormsg)s
  18520. #
  18521. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  18522. # the coloring of the messages, these color formatters also include padding as
  18523. # well. Color LogRecord attributes are only available for console logging.
  18524. #
  18525. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  18526. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  18527. #
  18528. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  18529. # This can be used to control logging levels more specificically. This
  18530. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  18531. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  18532. # log_granular_levels:
  18533. # \(aqsalt\(aq: \(aqwarning\(aq
  18534. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  18535. #
  18536. #log_granular_levels: {}
  18537. # To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  18538. # supports the use of monitor sockets # to log connection events. This
  18539. # feature requires ZeroMQ 4.0 or higher.
  18540. #
  18541. # To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  18542. # debug level or higher.
  18543. #
  18544. # A sample log event is as follows:
  18545. #
  18546. # [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  18547. # \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  18548. #
  18549. # All events logged will include the string \(aqZeroMQ event\(aq. A connection event
  18550. # should be logged on the as the minion starts up and initially connects to the
  18551. # master. If not, check for debug log level and that the necessary version of
  18552. # ZeroMQ is installed.
  18553. #
  18554. #zmq_monitor: False
  18555. ###### Module configuration #####
  18556. ###########################################
  18557. # Salt allows for modules to be passed arbitrary configuration data, any data
  18558. # passed here in valid yaml format will be passed on to the salt minion modules
  18559. # for use. It is STRONGLY recommended that a naming convention be used in which
  18560. # the module name is followed by a . and then the value. Also, all top level
  18561. # data must be applied via the yaml dict construct, some examples:
  18562. #
  18563. # You can specify that all modules should run in test mode:
  18564. #test: True
  18565. #
  18566. # A simple value for the test module:
  18567. #test.foo: foo
  18568. #
  18569. # A list for the test module:
  18570. #test.bar: [baz,quo]
  18571. #
  18572. # A dict for the test module:
  18573. #test.baz: {spam: sausage, cheese: bread}
  18574. #
  18575. #
  18576. ###### Update settings ######
  18577. ###########################################
  18578. # Using the features in Esky, a salt minion can both run as a frozen app and
  18579. # be updated on the fly. These options control how the update process
  18580. # (saltutil.update()) behaves.
  18581. #
  18582. # The url for finding and downloading updates. Disabled by default.
  18583. #update_url: False
  18584. #
  18585. # The list of services to restart after a successful update. Empty by default.
  18586. #update_restart_services: []
  18587. ###### Keepalive settings ######
  18588. ############################################
  18589. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  18590. # the OS. If connections between the minion and the master pass through
  18591. # a state tracking device such as a firewall or VPN gateway, there is
  18592. # the risk that it could tear down the connection the master and minion
  18593. # without informing either party that their connection has been taken away.
  18594. # Enabling TCP Keepalives prevents this from happening.
  18595. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  18596. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  18597. #tcp_keepalive: True
  18598. # How long before the first keepalive should be sent in seconds. Default 300
  18599. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  18600. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  18601. #tcp_keepalive_idle: 300
  18602. # How many lost probes are needed to consider the connection lost. Default \-1
  18603. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  18604. #tcp_keepalive_cnt: \-1
  18605. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  18606. # use OS defaults, typically 75 seconds on Linux, see
  18607. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  18608. #tcp_keepalive_intvl: \-1
  18609. ###### Windows Software settings ######
  18610. ############################################
  18611. # Location of the repository cache file on the master:
  18612. #win_repo_cachefile: \(aqsalt://win/repo/winrepo.p\(aq
  18613. ###### Returner settings ######
  18614. ############################################
  18615. # Which returner(s) will be used for minion\(aqs result:
  18616. #return: mysql
  18617. .ft P
  18618. .fi
  18619. .UNINDENT
  18620. .UNINDENT
  18621. .SS Minion Blackout Configuration
  18622. .sp
  18623. New in version 2016.3.0.
  18624. .sp
  18625. Salt supports minion blackouts. When a minion is in blackout mode, all remote
  18626. execution commands are disabled. This allows production minions to be put
  18627. "on hold", eliminating the risk of an untimely configuration change.
  18628. .sp
  18629. Minion blackouts are configured via a special pillar key, \fBminion_blackout\fP\&.
  18630. If this key is set to \fBTrue\fP, then the minion will reject all incoming
  18631. commands, except for \fBsaltutil.refresh_pillar\fP\&. (The exception is important,
  18632. so minions can be brought out of blackout mode)
  18633. .sp
  18634. Salt also supports an explicit whitelist of additional functions that will be
  18635. allowed during blackout. This is configured with the special pillar key
  18636. \fBminion_blackout_whitelist\fP, which is formed as a list:
  18637. .INDENT 0.0
  18638. .INDENT 3.5
  18639. .sp
  18640. .nf
  18641. .ft C
  18642. minion_blackout_whitelist:
  18643. \- test.version
  18644. \- pillar.get
  18645. .ft P
  18646. .fi
  18647. .UNINDENT
  18648. .UNINDENT
  18649. .SS Access Control System
  18650. .sp
  18651. New in version 0.10.4.
  18652. .sp
  18653. Salt maintains a standard system used to open granular control to non
  18654. administrative users to execute Salt commands. The access control system
  18655. has been applied to all systems used to configure access to non administrative
  18656. control interfaces in Salt.
  18657. .sp
  18658. These interfaces include, the \fBpeer\fP system, the
  18659. \fBexternal auth\fP system and the \fBpublisher acl\fP system.
  18660. .sp
  18661. The access control system mandated a standard configuration syntax used in
  18662. all of the three aforementioned systems. While this adds functionality to the
  18663. configuration in 0.10.4, it does not negate the old configuration.
  18664. .sp
  18665. Now specific functions can be opened up to specific minions from specific users
  18666. in the case of external auth and publisher ACLs, and for specific minions in the
  18667. case of the peer system.
  18668. .SS Publisher ACL system
  18669. .sp
  18670. The salt publisher ACL system is a means to allow system users other than root
  18671. to have access to execute select salt commands on minions from the master.
  18672. .sp
  18673. \fBNOTE:\fP
  18674. .INDENT 0.0
  18675. .INDENT 3.5
  18676. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  18677. commands without giving them root access. If you can log into the Salt
  18678. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  18679. root privileges. If the local system is configured to authenticate against
  18680. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  18681. interact with the remote system transparently.
  18682. .sp
  18683. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  18684. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  18685. flag) but it is more cumbersome as there are more steps involved. The only
  18686. time it is useful at the CLI is when the local system is \fInot\fP configured
  18687. to authenticate against an external service \fIbut\fP you still want Salt to
  18688. authenticate against an external service.
  18689. .sp
  18690. For more information and examples, see this Access Control System section.
  18691. .UNINDENT
  18692. .UNINDENT
  18693. .sp
  18694. The publisher ACL system is configured in the master configuration file via the
  18695. \fBpublisher_acl\fP configuration option. Under the \fBpublisher_acl\fP
  18696. configuration option the users open to send commands are specified and then a
  18697. list of the minion functions which will be made available to specified user.
  18698. Both users and functions could be specified by exact match, shell glob or
  18699. regular expression. This configuration is much like the external_auth configuration:
  18700. .INDENT 0.0
  18701. .INDENT 3.5
  18702. .sp
  18703. .nf
  18704. .ft C
  18705. publisher_acl:
  18706. # Allow thatch to execute anything.
  18707. thatch:
  18708. \- .*
  18709. # Allow fred to use test and pkg, but only on "web*" minions.
  18710. fred:
  18711. \- web*:
  18712. \- test.*
  18713. \- pkg.*
  18714. # Allow admin and managers to use saltutil module functions
  18715. admin|manager_.*:
  18716. \- saltutil.*
  18717. # Allow users to use only my_mod functions on "web*" minions with specific arguments.
  18718. user_.*:
  18719. \- web*:
  18720. \- \(aqmy_mod.*\(aq:
  18721. args:
  18722. \- \(aqa.*\(aq
  18723. \- \(aqb.*\(aq
  18724. kwargs:
  18725. \(aqkwa\(aq: \(aqkwa.*\(aq
  18726. \(aqkwb\(aq: \(aqkwb\(aq
  18727. .ft P
  18728. .fi
  18729. .UNINDENT
  18730. .UNINDENT
  18731. .SS Permission Issues
  18732. .sp
  18733. Directories required for \fBpublisher_acl\fP must be modified to be readable by
  18734. the users specified:
  18735. .INDENT 0.0
  18736. .INDENT 3.5
  18737. .sp
  18738. .nf
  18739. .ft C
  18740. chmod 755 /var/cache/salt /var/cache/salt/master /var/cache/salt/master/jobs /var/run/salt /var/run/salt/master
  18741. .ft P
  18742. .fi
  18743. .UNINDENT
  18744. .UNINDENT
  18745. .sp
  18746. \fBNOTE:\fP
  18747. .INDENT 0.0
  18748. .INDENT 3.5
  18749. In addition to the changes above you will also need to modify the
  18750. permissions of /var/log/salt and the existing log file to be writable by
  18751. the user(s) which will be running the commands. If you do not wish to do
  18752. this then you must disable logging or Salt will generate errors as it
  18753. cannot write to the logs as the system users.
  18754. .UNINDENT
  18755. .UNINDENT
  18756. .sp
  18757. If you are upgrading from earlier versions of salt you must also remove any
  18758. existing user keys and re\-start the Salt master:
  18759. .INDENT 0.0
  18760. .INDENT 3.5
  18761. .sp
  18762. .nf
  18763. .ft C
  18764. rm /var/cache/salt/.*key
  18765. service salt\-master restart
  18766. .ft P
  18767. .fi
  18768. .UNINDENT
  18769. .UNINDENT
  18770. .SS Whitelist and Blacklist
  18771. .sp
  18772. Salt\(aqs authentication systems can be configured by specifying what is allowed
  18773. using a whitelist, or by specifying what is disallowed using a blacklist. If
  18774. you specify a whitelist, only specified operations are allowed. If you specify
  18775. a blacklist, all operations are allowed except those that are blacklisted.
  18776. .sp
  18777. See \fBpublisher_acl\fP and \fBpublisher_acl_blacklist\fP\&.
  18778. .SS External Authentication System
  18779. .sp
  18780. Salt\(aqs External Authentication System (eAuth) allows for Salt to pass through
  18781. command authorization to any external authentication system, such as PAM or LDAP.
  18782. .sp
  18783. \fBNOTE:\fP
  18784. .INDENT 0.0
  18785. .INDENT 3.5
  18786. eAuth using the PAM external auth system requires salt\-master to be run as
  18787. root as this system needs root access to check authentication.
  18788. .UNINDENT
  18789. .UNINDENT
  18790. .sp
  18791. \fBNOTE:\fP
  18792. .INDENT 0.0
  18793. .INDENT 3.5
  18794. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  18795. commands without giving them root access. If you can log into the Salt
  18796. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  18797. root privileges. If the local system is configured to authenticate against
  18798. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  18799. interact with the remote system transparently.
  18800. .sp
  18801. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  18802. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  18803. flag) but it is more cumbersome as there are more steps involved. The only
  18804. time it is useful at the CLI is when the local system is \fInot\fP configured
  18805. to authenticate against an external service \fIbut\fP you still want Salt to
  18806. authenticate against an external service.
  18807. .sp
  18808. For more information and examples, see this Access Control System section.
  18809. .UNINDENT
  18810. .UNINDENT
  18811. .SS External Authentication System Configuration
  18812. .sp
  18813. The external authentication system allows for specific users to be granted
  18814. access to execute specific functions on specific minions. Access is configured
  18815. in the master configuration file and uses the access control system:
  18816. .INDENT 0.0
  18817. .INDENT 3.5
  18818. .sp
  18819. .nf
  18820. .ft C
  18821. external_auth:
  18822. pam:
  18823. thatch:
  18824. \- \(aqweb*\(aq:
  18825. \- test.*
  18826. \- network.*
  18827. steve|admin.*:
  18828. \- .*
  18829. .ft P
  18830. .fi
  18831. .UNINDENT
  18832. .UNINDENT
  18833. .sp
  18834. The above configuration allows the user \fBthatch\fP to execute functions in the
  18835. test and network modules on the minions that match the web* target. User
  18836. \fBsteve\fP and the users whose logins start with \fBadmin\fP, are granted
  18837. unrestricted access to minion commands.
  18838. .sp
  18839. Salt respects the current PAM configuration in place, and uses the \(aqlogin\(aq
  18840. service to authenticate.
  18841. .sp
  18842. \fBNOTE:\fP
  18843. .INDENT 0.0
  18844. .INDENT 3.5
  18845. The PAM module does not allow authenticating as \fBroot\fP\&.
  18846. .UNINDENT
  18847. .UNINDENT
  18848. .sp
  18849. \fBNOTE:\fP
  18850. .INDENT 0.0
  18851. .INDENT 3.5
  18852. state.sls and state.highstate will return "Failed to authenticate!"
  18853. if the request timeout is reached. Use \-t flag to increase the timeout
  18854. .UNINDENT
  18855. .UNINDENT
  18856. .sp
  18857. To allow access to wheel modules or runner
  18858. modules the following \fB@\fP syntax must be used:
  18859. .INDENT 0.0
  18860. .INDENT 3.5
  18861. .sp
  18862. .nf
  18863. .ft C
  18864. external_auth:
  18865. pam:
  18866. thatch:
  18867. \- \(aq@wheel\(aq # to allow access to all wheel modules
  18868. \- \(aq@runner\(aq # to allow access to all runner modules
  18869. \- \(aq@jobs\(aq # to allow access to the jobs runner and/or wheel module
  18870. .ft P
  18871. .fi
  18872. .UNINDENT
  18873. .UNINDENT
  18874. .sp
  18875. \fBNOTE:\fP
  18876. .INDENT 0.0
  18877. .INDENT 3.5
  18878. The runner/wheel markup is different, since there are no minions to scope the
  18879. acl to.
  18880. .UNINDENT
  18881. .UNINDENT
  18882. .sp
  18883. \fBNOTE:\fP
  18884. .INDENT 0.0
  18885. .INDENT 3.5
  18886. Globs will not match wheel or runners! They must be explicitly
  18887. allowed with @wheel or @runner.
  18888. .UNINDENT
  18889. .UNINDENT
  18890. .sp
  18891. \fBWARNING:\fP
  18892. .INDENT 0.0
  18893. .INDENT 3.5
  18894. All users that have external authentication privileges are allowed to run
  18895. \fBsaltutil.findjob\fP\&. Be aware
  18896. that this could inadvertently expose some data such as minion IDs.
  18897. .UNINDENT
  18898. .UNINDENT
  18899. .SS Matching syntax
  18900. .sp
  18901. The structure of the \fBexternal_auth\fP dictionary can take the following
  18902. shapes. User and function matches are exact matches, shell glob patterns or
  18903. regular expressions; minion matches are compound targets.
  18904. .sp
  18905. By user:
  18906. .INDENT 0.0
  18907. .INDENT 3.5
  18908. .sp
  18909. .nf
  18910. .ft C
  18911. external_auth:
  18912. <eauth backend>:
  18913. <user or group%>:
  18914. \- <regex to match function>
  18915. .ft P
  18916. .fi
  18917. .UNINDENT
  18918. .UNINDENT
  18919. .sp
  18920. By user, by minion:
  18921. .INDENT 0.0
  18922. .INDENT 3.5
  18923. .sp
  18924. .nf
  18925. .ft C
  18926. external_auth:
  18927. <eauth backend>:
  18928. <user or group%>:
  18929. <minion compound target>:
  18930. \- <regex to match function>
  18931. .ft P
  18932. .fi
  18933. .UNINDENT
  18934. .UNINDENT
  18935. .sp
  18936. By user, by runner/wheel:
  18937. .INDENT 0.0
  18938. .INDENT 3.5
  18939. .sp
  18940. .nf
  18941. .ft C
  18942. external_auth:
  18943. <eauth backend>:
  18944. <user or group%>:
  18945. <@runner or @wheel>:
  18946. \- <regex to match function>
  18947. .ft P
  18948. .fi
  18949. .UNINDENT
  18950. .UNINDENT
  18951. .sp
  18952. By user, by runner+wheel module:
  18953. .INDENT 0.0
  18954. .INDENT 3.5
  18955. .sp
  18956. .nf
  18957. .ft C
  18958. external_auth:
  18959. <eauth backend>:
  18960. <user or group%>:
  18961. <@module_name>:
  18962. \- <regex to match function without module_name>
  18963. .ft P
  18964. .fi
  18965. .UNINDENT
  18966. .UNINDENT
  18967. .SS Groups
  18968. .sp
  18969. To apply permissions to a group of users in an external authentication system,
  18970. append a \fB%\fP to the ID:
  18971. .INDENT 0.0
  18972. .INDENT 3.5
  18973. .sp
  18974. .nf
  18975. .ft C
  18976. external_auth:
  18977. pam:
  18978. admins%:
  18979. \- \(aq*\(aq:
  18980. \- \(aqpkg.*\(aq
  18981. .ft P
  18982. .fi
  18983. .UNINDENT
  18984. .UNINDENT
  18985. .SS Limiting by function arguments
  18986. .sp
  18987. Positional arguments or keyword arguments to functions can also be whitelisted.
  18988. .sp
  18989. New in version 2016.3.0.
  18990. .INDENT 0.0
  18991. .INDENT 3.5
  18992. .sp
  18993. .nf
  18994. .ft C
  18995. external_auth:
  18996. pam:
  18997. my_user:
  18998. \- \(aq*\(aq:
  18999. \- \(aqmy_mod.*\(aq:
  19000. args:
  19001. \- \(aqa.*\(aq
  19002. \- \(aqb.*\(aq
  19003. kwargs:
  19004. \(aqkwa\(aq: \(aqkwa.*\(aq
  19005. \(aqkwb\(aq: \(aqkwb\(aq
  19006. \- \(aq@runner\(aq:
  19007. \- \(aqrunner_mod.*\(aq:
  19008. args:
  19009. \- \(aqa.*\(aq
  19010. \- \(aqb.*\(aq
  19011. kwargs:
  19012. \(aqkwa\(aq: \(aqkwa.*\(aq
  19013. \(aqkwb\(aq: \(aqkwb\(aq
  19014. .ft P
  19015. .fi
  19016. .UNINDENT
  19017. .UNINDENT
  19018. .sp
  19019. The rules:
  19020. .INDENT 0.0
  19021. .IP 1. 3
  19022. The arguments values are matched as regexp.
  19023. .IP 2. 3
  19024. If arguments restrictions are specified the only matched are allowed.
  19025. .IP 3. 3
  19026. If an argument isn\(aqt specified any value is allowed.
  19027. .IP 4. 3
  19028. To skip an arg use "everything" regexp \fB\&.*\fP\&. I.e. if \fBarg0\fP and \fBarg2\fP
  19029. should be limited but \fBarg1\fP and other arguments could have any value use:
  19030. .INDENT 3.0
  19031. .INDENT 3.5
  19032. .sp
  19033. .nf
  19034. .ft C
  19035. args:
  19036. \- \(aqvalue0\(aq
  19037. \- \(aq.*\(aq
  19038. \- \(aqvalue2\(aq
  19039. .ft P
  19040. .fi
  19041. .UNINDENT
  19042. .UNINDENT
  19043. .UNINDENT
  19044. .SS Usage
  19045. .sp
  19046. The external authentication system can then be used from the command\-line by
  19047. any user on the same system as the master with the \fB\-a\fP option:
  19048. .INDENT 0.0
  19049. .INDENT 3.5
  19050. .sp
  19051. .nf
  19052. .ft C
  19053. $ salt \-a pam web\e* test.version
  19054. .ft P
  19055. .fi
  19056. .UNINDENT
  19057. .UNINDENT
  19058. .sp
  19059. The system will ask the user for the credentials required by the
  19060. authentication system and then publish the command.
  19061. .SS Tokens
  19062. .sp
  19063. With external authentication alone, the authentication credentials will be
  19064. required with every call to Salt. This can be alleviated with Salt tokens.
  19065. .sp
  19066. Tokens are short term authorizations and can be easily created by just
  19067. adding a \fB\-T\fP option when authenticating:
  19068. .INDENT 0.0
  19069. .INDENT 3.5
  19070. .sp
  19071. .nf
  19072. .ft C
  19073. $ salt \-T \-a pam web\e* test.version
  19074. .ft P
  19075. .fi
  19076. .UNINDENT
  19077. .UNINDENT
  19078. .sp
  19079. Now a token will be created that has an expiration of 12 hours (by default).
  19080. This token is stored in a file named \fBsalt_token\fP in the active user\(aqs home
  19081. directory.
  19082. .sp
  19083. Once the token is created, it is sent with all subsequent communications.
  19084. User authentication does not need to be entered again until the token expires.
  19085. .sp
  19086. Token expiration time can be set in the Salt master config file.
  19087. .SS LDAP and Active Directory
  19088. .sp
  19089. \fBNOTE:\fP
  19090. .INDENT 0.0
  19091. .INDENT 3.5
  19092. LDAP usage requires that you have installed python\-ldap.
  19093. .UNINDENT
  19094. .UNINDENT
  19095. .sp
  19096. Salt supports both user and group authentication for LDAP (and Active Directory
  19097. accessed via its LDAP interface)
  19098. .SS OpenLDAP and similar systems
  19099. .sp
  19100. LDAP configuration happens in the Salt master configuration file.
  19101. .sp
  19102. Server configuration values and their defaults:
  19103. .INDENT 0.0
  19104. .INDENT 3.5
  19105. .sp
  19106. .nf
  19107. .ft C
  19108. # Server to auth against
  19109. auth.ldap.server: localhost
  19110. # Port to connect via
  19111. auth.ldap.port: 389
  19112. # Use TLS when connecting
  19113. auth.ldap.tls: False
  19114. # Use STARTTLS when connecting
  19115. auth.ldap.starttls: False
  19116. # LDAP scope level, almost always 2
  19117. auth.ldap.scope: 2
  19118. # Server specified in URI format
  19119. auth.ldap.uri: \(aq\(aq # Overrides .ldap.server, .ldap.port, .ldap.tls above
  19120. # Verify server\(aqs TLS certificate
  19121. auth.ldap.no_verify: False
  19122. # Bind to LDAP anonymously to determine group membership
  19123. # Active Directory does not allow anonymous binds without special configuration
  19124. # In addition, if auth.ldap.anonymous is True, empty bind passwords are not permitted.
  19125. auth.ldap.anonymous: False
  19126. # FOR TESTING ONLY, this is a VERY insecure setting.
  19127. # If this is True, the LDAP bind password will be ignored and
  19128. # access will be determined by group membership alone with
  19129. # the group memberships being retrieved via anonymous bind
  19130. auth.ldap.auth_by_group_membership_only: False
  19131. # Require authenticating user to be part of this Organizational Unit
  19132. # This can be blank if your LDAP schema does not use this kind of OU
  19133. auth.ldap.groupou: \(aqGroups\(aq
  19134. # Object Class for groups. An LDAP search will be done to find all groups of this
  19135. # class to which the authenticating user belongs.
  19136. auth.ldap.groupclass: \(aqposixGroup\(aq
  19137. # Unique ID attribute name for the user
  19138. auth.ldap.accountattributename: \(aqmemberUid\(aq
  19139. # These are only for Active Directory
  19140. auth.ldap.activedirectory: False
  19141. auth.ldap.persontype: \(aqperson\(aq
  19142. auth.ldap.minion_stripdomains: []
  19143. # Redhat Identity Policy Audit
  19144. auth.ldap.freeipa: False
  19145. .ft P
  19146. .fi
  19147. .UNINDENT
  19148. .UNINDENT
  19149. .SS Authenticating to the LDAP Server
  19150. .sp
  19151. There are two phases to LDAP authentication. First, Salt authenticates to search for a users\(aq Distinguished Name
  19152. and group membership. The user it authenticates as in this phase is often a special LDAP system user with
  19153. read\-only access to the LDAP directory. After Salt searches the directory to determine the actual user\(aqs DN
  19154. and groups, it re\-authenticates as the user running the Salt commands.
  19155. .sp
  19156. If you are already aware of the structure of your DNs and permissions in your LDAP store are set such that
  19157. users can look up their own group memberships, then the first and second users can be the same. To tell Salt this is
  19158. the case, omit the \fBauth.ldap.bindpw\fP parameter. Note this is not the same thing as using an anonymous bind.
  19159. Most LDAP servers will not permit anonymous bind, and as mentioned above, if \fIauth.ldap.anonymous\fP is False you
  19160. cannot use an empty password.
  19161. .sp
  19162. You can template the \fBbinddn\fP like this:
  19163. .INDENT 0.0
  19164. .INDENT 3.5
  19165. .sp
  19166. .nf
  19167. .ft C
  19168. auth.ldap.basedn: dc=saltstack,dc=com
  19169. auth.ldap.binddn: uid={{ username }},cn=users,cn=accounts,dc=saltstack,dc=com
  19170. .ft P
  19171. .fi
  19172. .UNINDENT
  19173. .UNINDENT
  19174. .sp
  19175. Salt will use the password entered on the salt command line in place of the bindpw.
  19176. .sp
  19177. To use two separate users, specify the LDAP lookup user in the binddn directive, and include a bindpw like so
  19178. .INDENT 0.0
  19179. .INDENT 3.5
  19180. .sp
  19181. .nf
  19182. .ft C
  19183. auth.ldap.binddn: uid=ldaplookup,cn=sysaccounts,cn=etc,dc=saltstack,dc=com
  19184. auth.ldap.bindpw: mypassword
  19185. .ft P
  19186. .fi
  19187. .UNINDENT
  19188. .UNINDENT
  19189. .sp
  19190. As mentioned before, Salt uses a filter to find the DN associated with a user. Salt
  19191. substitutes the \fB{{ username }}\fP value for the username when querying LDAP
  19192. .INDENT 0.0
  19193. .INDENT 3.5
  19194. .sp
  19195. .nf
  19196. .ft C
  19197. auth.ldap.filter: uid={{ username }}
  19198. .ft P
  19199. .fi
  19200. .UNINDENT
  19201. .UNINDENT
  19202. .SS Determining Group Memberships (OpenLDAP / non\-Active Directory)
  19203. .sp
  19204. For OpenLDAP, to determine group membership, one can specify an OU that contains
  19205. group data. This is prepended to the basedn to create a search path. Then
  19206. the results are filtered against \fBauth.ldap.groupclass\fP, default
  19207. \fBposixGroup\fP, and the account\(aqs \(aqname\(aq attribute, \fBmemberUid\fP by default.
  19208. .INDENT 0.0
  19209. .INDENT 3.5
  19210. .sp
  19211. .nf
  19212. .ft C
  19213. auth.ldap.groupou: Groups
  19214. .ft P
  19215. .fi
  19216. .UNINDENT
  19217. .UNINDENT
  19218. .sp
  19219. Note that as of 2017.7, auth.ldap.groupclass can refer to either a groupclass or an objectClass.
  19220. For some LDAP servers (notably OpenLDAP without the \fBmemberOf\fP overlay enabled) to determine group
  19221. membership we need to know both the \fBobjectClass\fP and the \fBmemberUid\fP attributes. Usually for these
  19222. servers you will want a \fBauth.ldap.groupclass\fP of \fBposixGroup\fP and an \fBauth.ldap.groupattribute\fP of
  19223. \fBmemberUid\fP\&.
  19224. .sp
  19225. LDAP servers with the \fBmemberOf\fP overlay will have entries similar to \fBauth.ldap.groupclass: person\fP and
  19226. \fBauth.ldap.groupattribute: memberOf\fP\&.
  19227. .sp
  19228. When using the \fBldap(\(aqDC=domain,DC=com\(aq)\fP eauth operator, sometimes the records returned
  19229. from LDAP or Active Directory have fully\-qualified domain names attached, while minion IDs
  19230. instead are simple hostnames. The parameter below allows the administrator to strip
  19231. off a certain set of domain names so the hostnames looked up in the directory service
  19232. can match the minion IDs.
  19233. .INDENT 0.0
  19234. .INDENT 3.5
  19235. .sp
  19236. .nf
  19237. .ft C
  19238. auth.ldap.minion_stripdomains: [\(aq.external.bigcorp.com\(aq, \(aq.internal.bigcorp.com\(aq]
  19239. .ft P
  19240. .fi
  19241. .UNINDENT
  19242. .UNINDENT
  19243. .SS Determining Group Memberships (Active Directory)
  19244. .sp
  19245. Active Directory handles group membership differently, and does not utilize the
  19246. \fBgroupou\fP configuration variable. AD needs the following options in
  19247. the master config:
  19248. .INDENT 0.0
  19249. .INDENT 3.5
  19250. .sp
  19251. .nf
  19252. .ft C
  19253. auth.ldap.activedirectory: True
  19254. auth.ldap.filter: sAMAccountName={{username}}
  19255. auth.ldap.accountattributename: sAMAccountName
  19256. auth.ldap.groupclass: group
  19257. auth.ldap.persontype: person
  19258. .ft P
  19259. .fi
  19260. .UNINDENT
  19261. .UNINDENT
  19262. .sp
  19263. To determine group membership in AD, the username and password that is entered
  19264. when LDAP is requested as the eAuth mechanism on the command line is used to
  19265. bind to AD\(aqs LDAP interface. If this fails, then it doesn\(aqt matter what groups
  19266. the user belongs to, he or she is denied access. Next, the \fBdistinguishedName\fP
  19267. of the user is looked up with the following LDAP search:
  19268. .INDENT 0.0
  19269. .INDENT 3.5
  19270. .sp
  19271. .nf
  19272. .ft C
  19273. (&(<value of auth.ldap.accountattributename>={{username}})
  19274. (objectClass=<value of auth.ldap.persontype>)
  19275. )
  19276. .ft P
  19277. .fi
  19278. .UNINDENT
  19279. .UNINDENT
  19280. .sp
  19281. This should return a distinguishedName that we can use to filter for group
  19282. membership. Then the following LDAP query is executed:
  19283. .INDENT 0.0
  19284. .INDENT 3.5
  19285. .sp
  19286. .nf
  19287. .ft C
  19288. (&(member=<distinguishedName from search above>)
  19289. (objectClass=<value of auth.ldap.groupclass>)
  19290. )
  19291. .ft P
  19292. .fi
  19293. .UNINDENT
  19294. .UNINDENT
  19295. .INDENT 0.0
  19296. .INDENT 3.5
  19297. .sp
  19298. .nf
  19299. .ft C
  19300. external_auth:
  19301. ldap:
  19302. test_ldap_user:
  19303. \- \(aq*\(aq:
  19304. \- test.ping
  19305. .ft P
  19306. .fi
  19307. .UNINDENT
  19308. .UNINDENT
  19309. .sp
  19310. To configure a LDAP group, append a \fB%\fP to the ID:
  19311. .INDENT 0.0
  19312. .INDENT 3.5
  19313. .sp
  19314. .nf
  19315. .ft C
  19316. external_auth:
  19317. ldap:
  19318. test_ldap_group%:
  19319. \- \(aq*\(aq:
  19320. \- test.echo
  19321. .ft P
  19322. .fi
  19323. .UNINDENT
  19324. .UNINDENT
  19325. .sp
  19326. In addition, if there are a set of computers in the directory service that should
  19327. be part of the eAuth definition, they can be specified like this:
  19328. .INDENT 0.0
  19329. .INDENT 3.5
  19330. .sp
  19331. .nf
  19332. .ft C
  19333. external_auth:
  19334. ldap:
  19335. test_ldap_group%:
  19336. \- ldap(\(aqDC=corp,DC=example,DC=com\(aq):
  19337. \- test.echo
  19338. .ft P
  19339. .fi
  19340. .UNINDENT
  19341. .UNINDENT
  19342. .sp
  19343. The string inside \fBldap()\fP above is any valid LDAP/AD tree limiter. \fBOU=\fP in
  19344. particular is permitted as long as it would return a list of computer objects.
  19345. .SS Peer Communication
  19346. .sp
  19347. Salt 0.9.0 introduced the capability for Salt minions to publish commands. The
  19348. intent of this feature is not for Salt minions to act as independent brokers
  19349. one with another, but to allow Salt minions to pass commands to each other.
  19350. .sp
  19351. In Salt 0.10.0 the ability to execute runners from the master was added. This
  19352. allows for the master to return collective data from runners back to the
  19353. minions via the peer interface.
  19354. .sp
  19355. The peer interface is configured through two options in the master
  19356. configuration file. For minions to send commands from the master the \fBpeer\fP
  19357. configuration is used. To allow for minions to execute runners from the master
  19358. the \fBpeer_run\fP configuration is used.
  19359. .sp
  19360. Since this presents a viable security risk by allowing minions access to the
  19361. master publisher the capability is turned off by default. The minions can be
  19362. allowed access to the master publisher on a per minion basis based on regular
  19363. expressions. Minions with specific ids can be allowed access to certain Salt
  19364. modules and functions.
  19365. .SS Peer Configuration
  19366. .sp
  19367. The configuration is done under the \fBpeer\fP setting in the Salt master
  19368. configuration file, here are a number of configuration possibilities.
  19369. .sp
  19370. The simplest approach is to enable all communication for all minions, this is
  19371. only recommended for very secure environments.
  19372. .INDENT 0.0
  19373. .INDENT 3.5
  19374. .sp
  19375. .nf
  19376. .ft C
  19377. peer:
  19378. .*:
  19379. \- .*
  19380. .ft P
  19381. .fi
  19382. .UNINDENT
  19383. .UNINDENT
  19384. .sp
  19385. This configuration will allow minions with IDs ending in example.com access
  19386. to the test, ps, and pkg module functions.
  19387. .INDENT 0.0
  19388. .INDENT 3.5
  19389. .sp
  19390. .nf
  19391. .ft C
  19392. peer:
  19393. .*example.com:
  19394. \- test.*
  19395. \- ps.*
  19396. \- pkg.*
  19397. .ft P
  19398. .fi
  19399. .UNINDENT
  19400. .UNINDENT
  19401. .sp
  19402. The configuration logic is simple, a regular expression is passed for matching
  19403. minion ids, and then a list of expressions matching minion functions is
  19404. associated with the named minion. For instance, this configuration will also
  19405. allow minions ending with foo.org access to the publisher.
  19406. .INDENT 0.0
  19407. .INDENT 3.5
  19408. .sp
  19409. .nf
  19410. .ft C
  19411. peer:
  19412. .*example.com:
  19413. \- test.*
  19414. \- ps.*
  19415. \- pkg.*
  19416. .*foo.org:
  19417. \- test.*
  19418. \- ps.*
  19419. \- pkg.*
  19420. .ft P
  19421. .fi
  19422. .UNINDENT
  19423. .UNINDENT
  19424. .sp
  19425. \fBNOTE:\fP
  19426. .INDENT 0.0
  19427. .INDENT 3.5
  19428. Functions are matched using regular expressions.
  19429. .UNINDENT
  19430. .UNINDENT
  19431. .SS Peer Runner Communication
  19432. .sp
  19433. Configuration to allow minions to execute runners from the master is done via
  19434. the \fBpeer_run\fP option on the master. The \fBpeer_run\fP configuration follows
  19435. the same logic as the \fBpeer\fP option. The only difference is that access is
  19436. granted to runner modules.
  19437. .sp
  19438. To open up access to all minions to all runners:
  19439. .INDENT 0.0
  19440. .INDENT 3.5
  19441. .sp
  19442. .nf
  19443. .ft C
  19444. peer_run:
  19445. .*:
  19446. \- .*
  19447. .ft P
  19448. .fi
  19449. .UNINDENT
  19450. .UNINDENT
  19451. .sp
  19452. This configuration will allow minions with IDs ending in example.com access
  19453. to the manage and jobs runner functions.
  19454. .INDENT 0.0
  19455. .INDENT 3.5
  19456. .sp
  19457. .nf
  19458. .ft C
  19459. peer_run:
  19460. .*example.com:
  19461. \- manage.*
  19462. \- jobs.*
  19463. .ft P
  19464. .fi
  19465. .UNINDENT
  19466. .UNINDENT
  19467. .sp
  19468. \fBNOTE:\fP
  19469. .INDENT 0.0
  19470. .INDENT 3.5
  19471. Functions are matched using regular expressions.
  19472. .UNINDENT
  19473. .UNINDENT
  19474. .SS Using Peer Communication
  19475. .sp
  19476. The publish module was created to manage peer communication. The publish module
  19477. comes with a number of functions to execute peer communication in different
  19478. ways. Currently there are three functions in the publish module. These examples
  19479. will show how to test the peer system via the salt\-call command.
  19480. .sp
  19481. To execute test.version on all minions:
  19482. .INDENT 0.0
  19483. .INDENT 3.5
  19484. .sp
  19485. .nf
  19486. .ft C
  19487. # salt\-call publish.publish \e* test.version
  19488. .ft P
  19489. .fi
  19490. .UNINDENT
  19491. .UNINDENT
  19492. .sp
  19493. To execute the manage.up runner:
  19494. .INDENT 0.0
  19495. .INDENT 3.5
  19496. .sp
  19497. .nf
  19498. .ft C
  19499. # salt\-call publish.runner manage.up
  19500. .ft P
  19501. .fi
  19502. .UNINDENT
  19503. .UNINDENT
  19504. .sp
  19505. To match minions using other matchers, use \fBtgt_type\fP:
  19506. .INDENT 0.0
  19507. .INDENT 3.5
  19508. .sp
  19509. .nf
  19510. .ft C
  19511. # salt\-call publish.publish \(aqwebserv* and not G@os:Ubuntu\(aq test.version tgt_type=\(aqcompound\(aq
  19512. .ft P
  19513. .fi
  19514. .UNINDENT
  19515. .UNINDENT
  19516. .sp
  19517. \fBNOTE:\fP
  19518. .INDENT 0.0
  19519. .INDENT 3.5
  19520. In pre\-2017.7.0 releases, use \fBexpr_form\fP instead of \fBtgt_type\fP\&.
  19521. .UNINDENT
  19522. .UNINDENT
  19523. .SS When to Use Each Authentication System
  19524. .sp
  19525. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  19526. commands without giving them root access. If you can log into the Salt
  19527. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  19528. root privileges. If the local system is configured to authenticate against
  19529. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  19530. interact with the remote system transparently.
  19531. .sp
  19532. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  19533. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  19534. flag) but it is more cumbersome as there are more steps involved. The only
  19535. time it is useful at the CLI is when the local system is \fInot\fP configured
  19536. to authenticate against an external service \fIbut\fP you still want Salt to
  19537. authenticate against an external service.
  19538. .SS Examples
  19539. .sp
  19540. The access controls are manifested using matchers in these configurations:
  19541. .INDENT 0.0
  19542. .INDENT 3.5
  19543. .sp
  19544. .nf
  19545. .ft C
  19546. publisher_acl:
  19547. fred:
  19548. \- web\e*:
  19549. \- pkg.list_pkgs
  19550. \- test.*
  19551. \- apache.*
  19552. .ft P
  19553. .fi
  19554. .UNINDENT
  19555. .UNINDENT
  19556. .sp
  19557. In the above example, fred is able to send commands only to minions which match
  19558. the specified glob target. This can be expanded to include other functions for
  19559. other minions based on standard targets (all matchers are supported except the compound one).
  19560. .INDENT 0.0
  19561. .INDENT 3.5
  19562. .sp
  19563. .nf
  19564. .ft C
  19565. external_auth:
  19566. pam:
  19567. dave:
  19568. \- test.version
  19569. \- mongo\e*:
  19570. \- network.*
  19571. \- log\e*:
  19572. \- network.*
  19573. \- pkg.*
  19574. \- \(aqG@os:RedHat\(aq:
  19575. \- kmod.*
  19576. steve:
  19577. \- .*
  19578. .ft P
  19579. .fi
  19580. .UNINDENT
  19581. .UNINDENT
  19582. .sp
  19583. The above allows for all minions to be hit by test.version by dave, and adds a
  19584. few functions that dave can execute on other minions. It also allows steve
  19585. unrestricted access to salt commands.
  19586. .sp
  19587. \fBNOTE:\fP
  19588. .INDENT 0.0
  19589. .INDENT 3.5
  19590. Functions are matched using regular expressions.
  19591. .UNINDENT
  19592. .UNINDENT
  19593. .SS Job Management
  19594. .sp
  19595. New in version 0.9.7.
  19596. .sp
  19597. Since Salt executes jobs running on many systems, Salt needs to be able to
  19598. manage jobs running on many systems.
  19599. .SS The Minion proc System
  19600. .sp
  19601. Salt Minions maintain a \fIproc\fP directory in the Salt \fBcachedir\fP\&. The \fIproc\fP
  19602. directory maintains files named after the executed job ID. These files contain
  19603. the information about the current running jobs on the minion and allow for
  19604. jobs to be looked up. This is located in the \fIproc\fP directory under the
  19605. cachedir, with a default configuration it is under \fB/var/cache/salt/{master|minion}/proc\fP\&.
  19606. .SS Functions in the saltutil Module
  19607. .sp
  19608. Salt 0.9.7 introduced a few new functions to the
  19609. \fBsaltutil\fP module for managing
  19610. jobs. These functions are:
  19611. .INDENT 0.0
  19612. .IP 1. 3
  19613. \fBrunning\fP
  19614. Returns the data of all running jobs that are found in the \fIproc\fP directory.
  19615. .IP 2. 3
  19616. \fBfind_job\fP
  19617. Returns specific data about a certain job based on job id.
  19618. .IP 3. 3
  19619. \fBsignal_job\fP
  19620. Allows for a given jid to be sent a signal.
  19621. .IP 4. 3
  19622. \fBterm_job\fP
  19623. Sends a termination signal (SIGTERM, 15) to the process controlling the
  19624. specified job.
  19625. .IP 5. 3
  19626. \fBkill_job\fP
  19627. Sends a kill signal (SIGKILL, 9) to the process controlling the
  19628. specified job.
  19629. .UNINDENT
  19630. .sp
  19631. These functions make up the core of the back end used to manage jobs at the
  19632. minion level.
  19633. .SS The jobs Runner
  19634. .sp
  19635. A convenience runner front end and reporting system has been added as well.
  19636. The jobs runner contains functions to make viewing data easier and cleaner.
  19637. .sp
  19638. The jobs runner contains a number of functions...
  19639. .SS active
  19640. .sp
  19641. The active function runs saltutil.running on all minions and formats the
  19642. return data about all running jobs in a much more usable and compact format.
  19643. The active function will also compare jobs that have returned and jobs that
  19644. are still running, making it easier to see what systems have completed a job
  19645. and what systems are still being waited on.
  19646. .INDENT 0.0
  19647. .INDENT 3.5
  19648. .sp
  19649. .nf
  19650. .ft C
  19651. # salt\-run jobs.active
  19652. .ft P
  19653. .fi
  19654. .UNINDENT
  19655. .UNINDENT
  19656. .SS lookup_jid
  19657. .sp
  19658. When jobs are executed the return data is sent back to the master and cached.
  19659. By default it is cached for 24 hours, but this can be configured via the
  19660. \fBkeep_jobs\fP option in the master configuration.
  19661. Using the lookup_jid runner will display the same return data that the initial
  19662. job invocation with the salt command would display.
  19663. .INDENT 0.0
  19664. .INDENT 3.5
  19665. .sp
  19666. .nf
  19667. .ft C
  19668. # salt\-run jobs.lookup_jid <job id number>
  19669. .ft P
  19670. .fi
  19671. .UNINDENT
  19672. .UNINDENT
  19673. .SS list_jobs
  19674. .sp
  19675. Before finding a historic job, it may be required to find the job id. \fBlist_jobs\fP
  19676. will parse the cached execution data and display all of the job data for jobs
  19677. that have already, or partially returned.
  19678. .INDENT 0.0
  19679. .INDENT 3.5
  19680. .sp
  19681. .nf
  19682. .ft C
  19683. # salt\-run jobs.list_jobs
  19684. .ft P
  19685. .fi
  19686. .UNINDENT
  19687. .UNINDENT
  19688. .SS Scheduling Jobs
  19689. .sp
  19690. Salt\(aqs scheduling system allows incremental executions on minions or the
  19691. master. The schedule system exposes the execution of any execution function on
  19692. minions or any runner on the master.
  19693. .sp
  19694. Scheduling can be enabled by multiple methods:
  19695. .INDENT 0.0
  19696. .IP \(bu 2
  19697. \fBschedule\fP option in either the master or minion config files. These
  19698. require the master or minion application to be restarted in order for the
  19699. schedule to be implemented.
  19700. .IP \(bu 2
  19701. Minion pillar data. Schedule is implemented by refreshing the minion\(aqs pillar data,
  19702. for example by using \fBsaltutil.refresh_pillar\fP\&.
  19703. .IP \(bu 2
  19704. The \fBschedule state\fP or
  19705. \fBschedule module\fP
  19706. .UNINDENT
  19707. .sp
  19708. \fBNOTE:\fP
  19709. .INDENT 0.0
  19710. .INDENT 3.5
  19711. The scheduler executes different functions on the master and minions. When
  19712. running on the master the functions reference runner functions, when
  19713. running on the minion the functions specify execution functions.
  19714. .UNINDENT
  19715. .UNINDENT
  19716. .sp
  19717. A scheduled run has no output on the minion unless the config is set to info level
  19718. or higher. Refer to \fBminion\-logging\-settings\fP\&.
  19719. .sp
  19720. States are executed on the minion, as all states are. You can pass positional
  19721. arguments and provide a YAML dict of named arguments.
  19722. .INDENT 0.0
  19723. .INDENT 3.5
  19724. .sp
  19725. .nf
  19726. .ft C
  19727. schedule:
  19728. job1:
  19729. function: state.sls
  19730. seconds: 3600
  19731. args:
  19732. \- httpd
  19733. kwargs:
  19734. test: True
  19735. .ft P
  19736. .fi
  19737. .UNINDENT
  19738. .UNINDENT
  19739. .sp
  19740. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19741. (every hour).
  19742. .INDENT 0.0
  19743. .INDENT 3.5
  19744. .sp
  19745. .nf
  19746. .ft C
  19747. schedule:
  19748. job1:
  19749. function: state.sls
  19750. seconds: 3600
  19751. args:
  19752. \- httpd
  19753. kwargs:
  19754. test: True
  19755. splay: 15
  19756. .ft P
  19757. .fi
  19758. .UNINDENT
  19759. .UNINDENT
  19760. .sp
  19761. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19762. (every hour) splaying the time between 0 and 15 seconds.
  19763. .INDENT 0.0
  19764. .INDENT 3.5
  19765. .sp
  19766. .nf
  19767. .ft C
  19768. schedule:
  19769. job1:
  19770. function: state.sls
  19771. seconds: 3600
  19772. args:
  19773. \- httpd
  19774. kwargs:
  19775. test: True
  19776. splay:
  19777. start: 10
  19778. end: 15
  19779. .ft P
  19780. .fi
  19781. .UNINDENT
  19782. .UNINDENT
  19783. .sp
  19784. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19785. (every hour) splaying the time between 10 and 15 seconds.
  19786. .SS Schedule by Date and Time
  19787. .sp
  19788. New in version 2014.7.0.
  19789. .sp
  19790. Frequency of jobs can also be specified using date strings supported by
  19791. the Python \fBdateutil\fP library. This requires the Python \fBdateutil\fP library
  19792. to be installed.
  19793. .INDENT 0.0
  19794. .INDENT 3.5
  19795. .sp
  19796. .nf
  19797. .ft C
  19798. schedule:
  19799. job1:
  19800. function: state.sls
  19801. args:
  19802. \- httpd
  19803. kwargs:
  19804. test: True
  19805. when: 5:00pm
  19806. .ft P
  19807. .fi
  19808. .UNINDENT
  19809. .UNINDENT
  19810. .sp
  19811. This will schedule the command: \fBstate.sls httpd test=True\fP at 5:00 PM minion
  19812. localtime.
  19813. .INDENT 0.0
  19814. .INDENT 3.5
  19815. .sp
  19816. .nf
  19817. .ft C
  19818. schedule:
  19819. job1:
  19820. function: state.sls
  19821. args:
  19822. \- httpd
  19823. kwargs:
  19824. test: True
  19825. when:
  19826. \- Monday 5:00pm
  19827. \- Tuesday 3:00pm
  19828. \- Wednesday 5:00pm
  19829. \- Thursday 3:00pm
  19830. \- Friday 5:00pm
  19831. .ft P
  19832. .fi
  19833. .UNINDENT
  19834. .UNINDENT
  19835. .sp
  19836. This will schedule the command: \fBstate.sls httpd test=True\fP at 5:00 PM on
  19837. Monday, Wednesday and Friday, and 3:00 PM on Tuesday and Thursday.
  19838. .INDENT 0.0
  19839. .INDENT 3.5
  19840. .sp
  19841. .nf
  19842. .ft C
  19843. schedule:
  19844. job1:
  19845. function: state.sls
  19846. args:
  19847. \- httpd
  19848. kwargs:
  19849. test: True
  19850. when:
  19851. \- \(aqtea time\(aq
  19852. .ft P
  19853. .fi
  19854. .UNINDENT
  19855. .UNINDENT
  19856. .INDENT 0.0
  19857. .INDENT 3.5
  19858. .sp
  19859. .nf
  19860. .ft C
  19861. whens:
  19862. tea time: 1:40pm
  19863. deployment time: Friday 5:00pm
  19864. .ft P
  19865. .fi
  19866. .UNINDENT
  19867. .UNINDENT
  19868. .sp
  19869. The Salt scheduler also allows custom phrases to be used for the \fIwhen\fP
  19870. parameter. These \fIwhens\fP can be stored as either pillar values or
  19871. grain values.
  19872. .INDENT 0.0
  19873. .INDENT 3.5
  19874. .sp
  19875. .nf
  19876. .ft C
  19877. schedule:
  19878. job1:
  19879. function: state.sls
  19880. seconds: 3600
  19881. args:
  19882. \- httpd
  19883. kwargs:
  19884. test: True
  19885. range:
  19886. start: 8:00am
  19887. end: 5:00pm
  19888. .ft P
  19889. .fi
  19890. .UNINDENT
  19891. .UNINDENT
  19892. .sp
  19893. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19894. (every hour) between the hours of 8:00 AM and 5:00 PM. The range parameter must
  19895. be a dictionary with the date strings using the \fBdateutil\fP format.
  19896. .INDENT 0.0
  19897. .INDENT 3.5
  19898. .sp
  19899. .nf
  19900. .ft C
  19901. schedule:
  19902. job1:
  19903. function: state.sls
  19904. seconds: 3600
  19905. args:
  19906. \- httpd
  19907. kwargs:
  19908. test: True
  19909. range:
  19910. invert: True
  19911. start: 8:00am
  19912. end: 5:00pm
  19913. .ft P
  19914. .fi
  19915. .UNINDENT
  19916. .UNINDENT
  19917. .sp
  19918. Using the invert option for range, this will schedule the command
  19919. \fBstate.sls httpd test=True\fP every 3600 seconds (every hour) until the current
  19920. time is between the hours of 8:00 AM and 5:00 PM. The range parameter must be
  19921. a dictionary with the date strings using the \fBdateutil\fP format.
  19922. .INDENT 0.0
  19923. .INDENT 3.5
  19924. .sp
  19925. .nf
  19926. .ft C
  19927. schedule:
  19928. job1:
  19929. function: pkg.install
  19930. kwargs:
  19931. pkgs: [{\(aqbar\(aq: \(aq>1.2.3\(aq}]
  19932. refresh: true
  19933. once: \(aq2016\-01\-07T14:30:00\(aq
  19934. .ft P
  19935. .fi
  19936. .UNINDENT
  19937. .UNINDENT
  19938. .sp
  19939. This will schedule the function \fBpkg.install\fP to be executed once at the
  19940. specified time. The schedule entry \fBjob1\fP will not be removed after the job
  19941. completes, therefore use \fBschedule.delete\fP to manually remove it afterwards.
  19942. .sp
  19943. The default date format is ISO 8601 but can be overridden by also specifying the
  19944. \fBonce_fmt\fP option, like this:
  19945. .INDENT 0.0
  19946. .INDENT 3.5
  19947. .sp
  19948. .nf
  19949. .ft C
  19950. schedule:
  19951. job1:
  19952. function: test.ping
  19953. once: 2015\-04\-22T20:21:00
  19954. once_fmt: \(aq%Y\-%m\-%dT%H:%M:%S\(aq
  19955. .ft P
  19956. .fi
  19957. .UNINDENT
  19958. .UNINDENT
  19959. .SS Maximum Parallel Jobs Running
  19960. .sp
  19961. New in version 2014.7.0.
  19962. .sp
  19963. The scheduler also supports ensuring that there are no more than N copies of
  19964. a particular routine running. Use this for jobs that may be long\-running
  19965. and could step on each other or pile up in case of infrastructure outage.
  19966. .sp
  19967. The default for \fBmaxrunning\fP is 1.
  19968. .INDENT 0.0
  19969. .INDENT 3.5
  19970. .sp
  19971. .nf
  19972. .ft C
  19973. schedule:
  19974. long_running_job:
  19975. function: big_file_transfer
  19976. jid_include: True
  19977. maxrunning: 1
  19978. .ft P
  19979. .fi
  19980. .UNINDENT
  19981. .UNINDENT
  19982. .SS Cron\-like Schedule
  19983. .sp
  19984. New in version 2014.7.0.
  19985. .INDENT 0.0
  19986. .INDENT 3.5
  19987. .sp
  19988. .nf
  19989. .ft C
  19990. schedule:
  19991. job1:
  19992. function: state.sls
  19993. cron: \(aq*/15 * * * *\(aq
  19994. args:
  19995. \- httpd
  19996. kwargs:
  19997. test: True
  19998. .ft P
  19999. .fi
  20000. .UNINDENT
  20001. .UNINDENT
  20002. .sp
  20003. The scheduler also supports scheduling jobs using a cron like format.
  20004. This requires the Python \fBcroniter\fP library.
  20005. .SS Job Data Return
  20006. .sp
  20007. New in version 2015.5.0.
  20008. .sp
  20009. By default, data about jobs runs from the Salt scheduler is returned to the
  20010. master. Setting the \fBreturn_job\fP parameter to False will prevent the data
  20011. from being sent back to the Salt master.
  20012. .INDENT 0.0
  20013. .INDENT 3.5
  20014. .sp
  20015. .nf
  20016. .ft C
  20017. schedule:
  20018. job1:
  20019. function: scheduled_job_function
  20020. return_job: False
  20021. .ft P
  20022. .fi
  20023. .UNINDENT
  20024. .UNINDENT
  20025. .SS Job Metadata
  20026. .sp
  20027. New in version 2015.5.0.
  20028. .sp
  20029. It can be useful to include specific data to differentiate a job from other
  20030. jobs. Using the metadata parameter special values can be associated with
  20031. a scheduled job. These values are not used in the execution of the job,
  20032. but can be used to search for specific jobs later if combined with the
  20033. \fBreturn_job\fP parameter. The metadata parameter must be specified as a
  20034. dictionary, othewise it will be ignored.
  20035. .INDENT 0.0
  20036. .INDENT 3.5
  20037. .sp
  20038. .nf
  20039. .ft C
  20040. schedule:
  20041. job1:
  20042. function: scheduled_job_function
  20043. metadata:
  20044. foo: bar
  20045. .ft P
  20046. .fi
  20047. .UNINDENT
  20048. .UNINDENT
  20049. .SS Run on Start
  20050. .sp
  20051. New in version 2015.5.0.
  20052. .sp
  20053. By default, any job scheduled based on the startup time of the minion will run
  20054. the scheduled job when the minion starts up. Sometimes this is not the desired
  20055. situation. Using the \fBrun_on_start\fP parameter set to \fBFalse\fP will cause the
  20056. scheduler to skip this first run and wait until the next scheduled run:
  20057. .INDENT 0.0
  20058. .INDENT 3.5
  20059. .sp
  20060. .nf
  20061. .ft C
  20062. schedule:
  20063. job1:
  20064. function: state.sls
  20065. seconds: 3600
  20066. run_on_start: False
  20067. args:
  20068. \- httpd
  20069. kwargs:
  20070. test: True
  20071. .ft P
  20072. .fi
  20073. .UNINDENT
  20074. .UNINDENT
  20075. .SS Until and After
  20076. .sp
  20077. New in version 2015.8.0.
  20078. .INDENT 0.0
  20079. .INDENT 3.5
  20080. .sp
  20081. .nf
  20082. .ft C
  20083. schedule:
  20084. job1:
  20085. function: state.sls
  20086. seconds: 15
  20087. until: \(aq12/31/2015 11:59pm\(aq
  20088. args:
  20089. \- httpd
  20090. kwargs:
  20091. test: True
  20092. .ft P
  20093. .fi
  20094. .UNINDENT
  20095. .UNINDENT
  20096. .sp
  20097. Using the until argument, the Salt scheduler allows you to specify
  20098. an end time for a scheduled job. If this argument is specified, jobs
  20099. will not run once the specified time has passed. Time should be specified
  20100. in a format supported by the \fBdateutil\fP library.
  20101. This requires the Python \fBdateutil\fP library to be installed.
  20102. .sp
  20103. New in version 2015.8.0.
  20104. .INDENT 0.0
  20105. .INDENT 3.5
  20106. .sp
  20107. .nf
  20108. .ft C
  20109. schedule:
  20110. job1:
  20111. function: state.sls
  20112. seconds: 15
  20113. after: \(aq12/31/2015 11:59pm\(aq
  20114. args:
  20115. \- httpd
  20116. kwargs:
  20117. test: True
  20118. .ft P
  20119. .fi
  20120. .UNINDENT
  20121. .UNINDENT
  20122. .sp
  20123. Using the after argument, the Salt scheduler allows you to specify
  20124. an start time for a scheduled job. If this argument is specified, jobs
  20125. will not run until the specified time has passed. Time should be specified
  20126. in a format supported by the \fBdateutil\fP library.
  20127. This requires the Python \fBdateutil\fP library to be installed.
  20128. .SS Scheduling States
  20129. .INDENT 0.0
  20130. .INDENT 3.5
  20131. .sp
  20132. .nf
  20133. .ft C
  20134. schedule:
  20135. log\-loadavg:
  20136. function: cmd.run
  20137. seconds: 3660
  20138. args:
  20139. \- \(aqlogger \-t salt < /proc/loadavg\(aq
  20140. kwargs:
  20141. stateful: False
  20142. shell: /bin/sh
  20143. .ft P
  20144. .fi
  20145. .UNINDENT
  20146. .UNINDENT
  20147. .SS Scheduling Highstates
  20148. .sp
  20149. To set up a highstate to run on a minion every 60 minutes set this in the
  20150. minion config or pillar:
  20151. .INDENT 0.0
  20152. .INDENT 3.5
  20153. .sp
  20154. .nf
  20155. .ft C
  20156. schedule:
  20157. highstate:
  20158. function: state.highstate
  20159. minutes: 60
  20160. .ft P
  20161. .fi
  20162. .UNINDENT
  20163. .UNINDENT
  20164. .sp
  20165. Time intervals can be specified as seconds, minutes, hours, or days.
  20166. .SS Scheduling Runners
  20167. .sp
  20168. Runner executions can also be specified on the master within the master
  20169. configuration file:
  20170. .INDENT 0.0
  20171. .INDENT 3.5
  20172. .sp
  20173. .nf
  20174. .ft C
  20175. schedule:
  20176. run_my_orch:
  20177. function: state.orchestrate
  20178. hours: 6
  20179. splay: 600
  20180. args:
  20181. \- orchestration.my_orch
  20182. .ft P
  20183. .fi
  20184. .UNINDENT
  20185. .UNINDENT
  20186. .sp
  20187. The above configuration is analogous to running
  20188. \fBsalt\-run state.orch orchestration.my_orch\fP every 6 hours.
  20189. .SS Scheduler With Returner
  20190. .sp
  20191. The scheduler is also useful for tasks like gathering monitoring data about
  20192. a minion, this schedule option will gather status data and send it to a MySQL
  20193. returner database:
  20194. .INDENT 0.0
  20195. .INDENT 3.5
  20196. .sp
  20197. .nf
  20198. .ft C
  20199. schedule:
  20200. uptime:
  20201. function: status.uptime
  20202. seconds: 60
  20203. returner: mysql
  20204. meminfo:
  20205. function: status.meminfo
  20206. minutes: 5
  20207. returner: mysql
  20208. .ft P
  20209. .fi
  20210. .UNINDENT
  20211. .UNINDENT
  20212. .sp
  20213. Since specifying the returner repeatedly can be tiresome, the
  20214. \fBschedule_returner\fP option is available to specify one or a list of global
  20215. returners to be used by the minions when scheduling.
  20216. .SS Managing the Job Cache
  20217. .sp
  20218. The Salt Master maintains a job cache of all job executions which can be
  20219. queried via the jobs runner. This job cache is called the Default Job Cache.
  20220. .SS Default Job Cache
  20221. .sp
  20222. A number of options are available when configuring the job cache. The default
  20223. caching system uses local storage on the Salt Master and can be found in the
  20224. job cache directory (on Linux systems this is typically
  20225. \fB/var/cache/salt/master/jobs\fP). The default caching system is suitable for most
  20226. deployments as it does not typically require any further configuration or
  20227. management.
  20228. .sp
  20229. The default job cache is a temporary cache and jobs will be stored for 24
  20230. hours. If the default cache needs to store jobs for a different period the
  20231. time can be easily adjusted by changing the \fBkeep_jobs\fP parameter in the
  20232. Salt Master configuration file. The value passed in is measured via hours:
  20233. .INDENT 0.0
  20234. .INDENT 3.5
  20235. .sp
  20236. .nf
  20237. .ft C
  20238. keep_jobs: 24
  20239. .ft P
  20240. .fi
  20241. .UNINDENT
  20242. .UNINDENT
  20243. .SS Reducing the Size of the Default Job Cache
  20244. .sp
  20245. The Default Job Cache can sometimes be a burden on larger deployments (over 5000
  20246. minions). Disabling the job cache will make previously executed jobs unavailable
  20247. to the jobs system and is not generally recommended. Normally it is wise to make
  20248. sure the master has access to a faster IO system or a tmpfs is mounted to the
  20249. jobs dir.
  20250. .sp
  20251. However, you can disable the \fBjob_cache\fP by setting it to \fBFalse\fP
  20252. in the Salt Master configuration file. Setting this value to \fBFalse\fP means that
  20253. the Salt Master will no longer cache minion returns, but a JID directory and \fBjid\fP
  20254. file for each job will still be created. This JID directory is necessary for
  20255. checking for and preventing JID collisions.
  20256. .sp
  20257. The default location for the job cache is in the \fB/var/cache/salt/master/jobs/\fP
  20258. directory.
  20259. .sp
  20260. Setting the \fBjob_cache\fP to \fBFalse\fP in addition to setting
  20261. the \fBkeep_jobs\fP option to a smaller value, such as \fB1\fP, in the Salt
  20262. Master configuration file will reduce the size of the Default Job Cache, and thus
  20263. the burden on the Salt Master.
  20264. .sp
  20265. \fBNOTE:\fP
  20266. .INDENT 0.0
  20267. .INDENT 3.5
  20268. Changing the \fBkeep_jobs\fP option sets the number of hours to keep old job
  20269. information and defaults to \fB24\fP hours. Do not set this value to \fB0\fP when
  20270. trying to make the cache cleaner run more frequently, as this means the cache
  20271. cleaner will never run.
  20272. .UNINDENT
  20273. .UNINDENT
  20274. .SS Additional Job Cache Options
  20275. .sp
  20276. Many deployments may wish to use an external database to maintain a long term
  20277. register of executed jobs. Salt comes with two main mechanisms to do this, the
  20278. master job cache and the external job cache.
  20279. .sp
  20280. See Storing Job Results in an External System\&.
  20281. .SS Storing Job Results in an External System
  20282. .sp
  20283. After a job executes, job results are returned
  20284. to the Salt Master by each Salt Minion. These results are stored in the
  20285. Default Job Cache\&.
  20286. .sp
  20287. In addition to the Default Job Cache, Salt provides two additional
  20288. mechanisms to send job results to other systems (databases, local syslog,
  20289. and others):
  20290. .INDENT 0.0
  20291. .IP \(bu 2
  20292. External Job Cache
  20293. .IP \(bu 2
  20294. Master Job Cache
  20295. .UNINDENT
  20296. .sp
  20297. The major difference between these two mechanism is from where results are
  20298. returned (from the Salt Master or Salt Minion). Configuring either of these
  20299. options will also make the \fBJobs Runner functions\fP
  20300. to automatically query the remote stores for information.
  20301. .SS External Job Cache \- Minion\-Side Returner
  20302. .sp
  20303. When an External Job Cache is configured, data is returned to the Default Job
  20304. Cache on the Salt Master like usual, and then results are also sent to an
  20305. External Job Cache using a Salt returner module running on the Salt Minion.
  20306. [image]
  20307. .INDENT 0.0
  20308. .IP \(bu 2
  20309. Advantages: Data is stored without placing additional load on the Salt Master.
  20310. .IP \(bu 2
  20311. Disadvantages: Each Salt Minion connects to the external job cache, which can
  20312. result in a large number of connections. Also requires additional configuration to
  20313. get returner module settings on all Salt Minions.
  20314. .UNINDENT
  20315. .SS Master Job Cache \- Master\-Side Returner
  20316. .sp
  20317. New in version 2014.7.0.
  20318. .sp
  20319. Instead of configuring an External Job Cache on each Salt Minion, you can
  20320. configure the Master Job Cache to send job results from the Salt Master
  20321. instead. In this configuration, Salt Minions send data to the Default Job Cache
  20322. as usual, and then the Salt Master sends the data to the external system using
  20323. a Salt returner module running on the Salt Master.
  20324. [image]
  20325. .INDENT 0.0
  20326. .IP \(bu 2
  20327. Advantages: A single connection is required to the external system. This is
  20328. preferred for databases and similar systems.
  20329. .IP \(bu 2
  20330. Disadvantages: Places additional load on your Salt Master.
  20331. .UNINDENT
  20332. .SS Configure an External or Master Job Cache
  20333. .SS Step 1: Understand Salt Returners
  20334. .sp
  20335. Before you configure a job cache, it is essential to understand Salt returner
  20336. modules ("returners"). Returners are pluggable Salt Modules that take the data
  20337. returned by jobs, and then perform any necessary steps to send the data to an
  20338. external system. For example, a returner might establish a connection,
  20339. authenticate, and then format and transfer data.
  20340. .sp
  20341. The Salt Returner system provides the core functionality used by the External
  20342. and Master Job Cache systems, and the same returners are used by both systems.
  20343. .sp
  20344. Salt currently provides many different returners that let you connect to a
  20345. wide variety of systems. A complete list is available at
  20346. all Salt returners\&.
  20347. Each returner is configured differently, so make sure you read and follow the
  20348. instructions linked from that page.
  20349. .sp
  20350. For example, the MySQL returner requires:
  20351. .INDENT 0.0
  20352. .IP \(bu 2
  20353. A database created using provided schema (structure is available at
  20354. \fBMySQL returner\fP)
  20355. .IP \(bu 2
  20356. A user created with privileges to the database
  20357. .IP \(bu 2
  20358. Optional SSL configuration
  20359. .UNINDENT
  20360. .sp
  20361. A simpler returner, such as Slack or HipChat, requires:
  20362. .INDENT 0.0
  20363. .IP \(bu 2
  20364. An API key/version
  20365. .IP \(bu 2
  20366. The target channel/room
  20367. .IP \(bu 2
  20368. The username that should be used to send the message
  20369. .UNINDENT
  20370. .SS Step 2: Configure the Returner
  20371. .sp
  20372. After you understand the configuration and have the external system ready, the
  20373. configuration requirements must be declared.
  20374. .SS External Job Cache
  20375. .sp
  20376. The returner configuration settings can be declared in the Salt Minion
  20377. configuration file, the Minion\(aqs pillar data, or the Minion\(aqs grains.
  20378. .sp
  20379. If \fBexternal_job_cache\fP configuration settings are specified in more than
  20380. one place, the options are retrieved in the following order. The first
  20381. configuration location that is found is the one that will be used.
  20382. .INDENT 0.0
  20383. .IP \(bu 2
  20384. Minion configuration file
  20385. .IP \(bu 2
  20386. Minion\(aqs grains
  20387. .IP \(bu 2
  20388. Minion\(aqs pillar data
  20389. .UNINDENT
  20390. .SS Master Job Cache
  20391. .sp
  20392. The returner configuration settings for the Master Job Cache should be
  20393. declared in the Salt Master\(aqs configuration file.
  20394. .SS Configuration File Examples
  20395. .sp
  20396. MySQL requires:
  20397. .INDENT 0.0
  20398. .INDENT 3.5
  20399. .sp
  20400. .nf
  20401. .ft C
  20402. mysql.host: \(aqsalt\(aq
  20403. mysql.user: \(aqsalt\(aq
  20404. mysql.pass: \(aqsalt\(aq
  20405. mysql.db: \(aqsalt\(aq
  20406. mysql.port: 3306
  20407. .ft P
  20408. .fi
  20409. .UNINDENT
  20410. .UNINDENT
  20411. .sp
  20412. Slack requires:
  20413. .INDENT 0.0
  20414. .INDENT 3.5
  20415. .sp
  20416. .nf
  20417. .ft C
  20418. slack.channel: \(aqchannel\(aq
  20419. slack.api_key: \(aqkey\(aq
  20420. slack.from_name: \(aqname\(aq
  20421. .ft P
  20422. .fi
  20423. .UNINDENT
  20424. .UNINDENT
  20425. .sp
  20426. After you have configured the returner and added settings to the configuration
  20427. file, you can enable the External or Master Job Cache.
  20428. .SS Step 3: Enable the External or Master Job Cache
  20429. .sp
  20430. Configuration is a single line that specifies an
  20431. already\-configured returner to use to send all job data to an external system.
  20432. .SS External Job Cache
  20433. .sp
  20434. To enable a returner as the External Job Cache (Minion\-side), add the following
  20435. line to the Salt Master configuration file:
  20436. .INDENT 0.0
  20437. .INDENT 3.5
  20438. .sp
  20439. .nf
  20440. .ft C
  20441. ext_job_cache: <returner>
  20442. .ft P
  20443. .fi
  20444. .UNINDENT
  20445. .UNINDENT
  20446. .sp
  20447. For example:
  20448. .INDENT 0.0
  20449. .INDENT 3.5
  20450. .sp
  20451. .nf
  20452. .ft C
  20453. ext_job_cache: mysql
  20454. .ft P
  20455. .fi
  20456. .UNINDENT
  20457. .UNINDENT
  20458. .sp
  20459. \fBNOTE:\fP
  20460. .INDENT 0.0
  20461. .INDENT 3.5
  20462. When configuring an External Job Cache (Minion\-side), the returner settings are
  20463. added to the Minion configuration file, but the External Job Cache setting
  20464. is configured in the Master configuration file.
  20465. .UNINDENT
  20466. .UNINDENT
  20467. .SS Master Job Cache
  20468. .sp
  20469. To enable a returner as a Master Job Cache (Master\-side), add the following
  20470. line to the Salt Master configuration file:
  20471. .INDENT 0.0
  20472. .INDENT 3.5
  20473. .sp
  20474. .nf
  20475. .ft C
  20476. master_job_cache: <returner>
  20477. .ft P
  20478. .fi
  20479. .UNINDENT
  20480. .UNINDENT
  20481. .sp
  20482. For example:
  20483. .INDENT 0.0
  20484. .INDENT 3.5
  20485. .sp
  20486. .nf
  20487. .ft C
  20488. master_job_cache: mysql
  20489. .ft P
  20490. .fi
  20491. .UNINDENT
  20492. .UNINDENT
  20493. .sp
  20494. Verify that the returner configuration settings are in the Master configuration
  20495. file, and be sure to restart the salt\-master service after you make
  20496. configuration changes. (\fBservice salt\-master restart\fP).
  20497. .SS Logging
  20498. .sp
  20499. The salt project tries to get the logging to work for you and help us solve any
  20500. issues you might find along the way.
  20501. .sp
  20502. If you want to get some more information on the nitty\-gritty of salt\(aqs logging
  20503. system, please head over to the logging development
  20504. document, if all you\(aqre after is salt\(aqs logging
  20505. configurations, please continue reading.
  20506. .SS Log Levels
  20507. .sp
  20508. The log levels are ordered numerically such that setting the log level to a
  20509. specific level will record all log statements at that level and higher. For
  20510. example, setting \fBlog_level: error\fP will log statements at \fBerror\fP,
  20511. \fBcritical\fP, and \fBquiet\fP levels, although nothing \fIshould\fP be logged at
  20512. \fBquiet\fP level.
  20513. .sp
  20514. Most of the logging levels are defined by default in Python\(aqs logging library
  20515. and can be found in the official \fI\%Python documentation\fP\&.
  20516. Salt uses some more levels in addition to the standard levels. All levels
  20517. available in salt are shown in the table below.
  20518. .sp
  20519. \fBNOTE:\fP
  20520. .INDENT 0.0
  20521. .INDENT 3.5
  20522. Python dependencies used by salt may define and use additional logging
  20523. levels. For example, the Python 2 version of the \fBmultiprocessing\fP
  20524. standard Python library \fI\%uses the levels\fP
  20525. \fBsubwarning\fP, 25 and \fBsubdebug\fP, 5.
  20526. .UNINDENT
  20527. .UNINDENT
  20528. .TS
  20529. center;
  20530. |l|l|l|.
  20531. _
  20532. T{
  20533. Level
  20534. T} T{
  20535. Numeric value
  20536. T} T{
  20537. Description
  20538. T}
  20539. _
  20540. T{
  20541. quiet
  20542. T} T{
  20543. 1000
  20544. T} T{
  20545. Nothing should be logged at this level
  20546. T}
  20547. _
  20548. T{
  20549. critical
  20550. T} T{
  20551. 50
  20552. T} T{
  20553. Critical errors
  20554. T}
  20555. _
  20556. T{
  20557. error
  20558. T} T{
  20559. 40
  20560. T} T{
  20561. Errors
  20562. T}
  20563. _
  20564. T{
  20565. warning
  20566. T} T{
  20567. 30
  20568. T} T{
  20569. Warnings
  20570. T}
  20571. _
  20572. T{
  20573. info
  20574. T} T{
  20575. 20
  20576. T} T{
  20577. Normal log information
  20578. T}
  20579. _
  20580. T{
  20581. profile
  20582. T} T{
  20583. 15
  20584. T} T{
  20585. Profiling information on salt performance
  20586. T}
  20587. _
  20588. T{
  20589. debug
  20590. T} T{
  20591. 10
  20592. T} T{
  20593. Information useful for debugging both salt implementations and salt code
  20594. T}
  20595. _
  20596. T{
  20597. trace
  20598. T} T{
  20599. 5
  20600. T} T{
  20601. More detailed code debugging information
  20602. T}
  20603. _
  20604. T{
  20605. garbage
  20606. T} T{
  20607. 1
  20608. T} T{
  20609. Even more debugging information
  20610. T}
  20611. _
  20612. T{
  20613. all
  20614. T} T{
  20615. 0
  20616. T} T{
  20617. Everything
  20618. T}
  20619. _
  20620. .TE
  20621. .SS Available Configuration Settings
  20622. .SS \fBlog_file\fP
  20623. .sp
  20624. The log records can be sent to a regular file, local path name, or network
  20625. location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  20626. \fBfile:///dev/log\fP), with rsyslogd(8) configured for network logging. The
  20627. format for remote addresses is:
  20628. .INDENT 0.0
  20629. .INDENT 3.5
  20630. .sp
  20631. .nf
  20632. .ft C
  20633. <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  20634. .ft P
  20635. .fi
  20636. .UNINDENT
  20637. .UNINDENT
  20638. .sp
  20639. Where \fBlog\-facility\fP is the symbolic name of a syslog facility as defined in
  20640. the \fI\%SysLogHandler documentation\fP\&. It defaults to \fBLOG_USER\fP\&.
  20641. .sp
  20642. Default: Dependent of the binary being executed, for example, for
  20643. \fBsalt\-master\fP, \fB/var/log/salt/master\fP\&.
  20644. .sp
  20645. Examples:
  20646. .INDENT 0.0
  20647. .INDENT 3.5
  20648. .sp
  20649. .nf
  20650. .ft C
  20651. log_file: /var/log/salt/master
  20652. .ft P
  20653. .fi
  20654. .UNINDENT
  20655. .UNINDENT
  20656. .INDENT 0.0
  20657. .INDENT 3.5
  20658. .sp
  20659. .nf
  20660. .ft C
  20661. log_file: /var/log/salt/minion
  20662. .ft P
  20663. .fi
  20664. .UNINDENT
  20665. .UNINDENT
  20666. .INDENT 0.0
  20667. .INDENT 3.5
  20668. .sp
  20669. .nf
  20670. .ft C
  20671. log_file: file:///dev/log
  20672. .ft P
  20673. .fi
  20674. .UNINDENT
  20675. .UNINDENT
  20676. .INDENT 0.0
  20677. .INDENT 3.5
  20678. .sp
  20679. .nf
  20680. .ft C
  20681. log_file: file:///dev/log/LOG_DAEMON
  20682. .ft P
  20683. .fi
  20684. .UNINDENT
  20685. .UNINDENT
  20686. .INDENT 0.0
  20687. .INDENT 3.5
  20688. .sp
  20689. .nf
  20690. .ft C
  20691. log_file: udp://loghost:10514
  20692. .ft P
  20693. .fi
  20694. .UNINDENT
  20695. .UNINDENT
  20696. .SS \fBlog_level\fP
  20697. .sp
  20698. Default: \fBwarning\fP
  20699. .sp
  20700. The level of log record messages to send to the console. One of \fBall\fP,
  20701. \fBgarbage\fP, \fBtrace\fP, \fBdebug\fP, \fBprofile\fP, \fBinfo\fP, \fBwarning\fP,
  20702. \fBerror\fP, \fBcritical\fP, \fBquiet\fP\&.
  20703. .INDENT 0.0
  20704. .INDENT 3.5
  20705. .sp
  20706. .nf
  20707. .ft C
  20708. log_level: warning
  20709. .ft P
  20710. .fi
  20711. .UNINDENT
  20712. .UNINDENT
  20713. .sp
  20714. \fBNOTE:\fP
  20715. .INDENT 0.0
  20716. .INDENT 3.5
  20717. Add \fBlog_level: quiet\fP in salt configuration file to completely disable
  20718. logging. In case of running salt in command line use \fB\-\-log\-level=quiet\fP
  20719. instead.
  20720. .UNINDENT
  20721. .UNINDENT
  20722. .SS \fBlog_level_logfile\fP
  20723. .sp
  20724. Default: \fBinfo\fP
  20725. .sp
  20726. The level of messages to send to the log file. One of \fBall\fP, \fBgarbage\fP,
  20727. \fBtrace\fP, \fBdebug\fP, \fBprofile\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP,
  20728. \fBcritical\fP, \fBquiet\fP\&.
  20729. .INDENT 0.0
  20730. .INDENT 3.5
  20731. .sp
  20732. .nf
  20733. .ft C
  20734. log_level_logfile: warning
  20735. .ft P
  20736. .fi
  20737. .UNINDENT
  20738. .UNINDENT
  20739. .SS \fBlog_datefmt\fP
  20740. .sp
  20741. Default: \fB%H:%M:%S\fP
  20742. .sp
  20743. The date and time format used in console log messages. Allowed date/time
  20744. formatting matches those used in \fI\%time.strftime()\fP\&.
  20745. .INDENT 0.0
  20746. .INDENT 3.5
  20747. .sp
  20748. .nf
  20749. .ft C
  20750. log_datefmt: \(aq%H:%M:%S\(aq
  20751. .ft P
  20752. .fi
  20753. .UNINDENT
  20754. .UNINDENT
  20755. .SS \fBlog_datefmt_logfile\fP
  20756. .sp
  20757. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  20758. .sp
  20759. The date and time format used in log file messages. Allowed date/time
  20760. formatting matches those used in \fI\%time.strftime()\fP\&.
  20761. .INDENT 0.0
  20762. .INDENT 3.5
  20763. .sp
  20764. .nf
  20765. .ft C
  20766. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  20767. .ft P
  20768. .fi
  20769. .UNINDENT
  20770. .UNINDENT
  20771. .SS \fBlog_fmt_console\fP
  20772. .sp
  20773. Default: \fB[%(levelname)\-8s] %(message)s\fP
  20774. .sp
  20775. The format of the console logging messages. All standard python logging
  20776. \fI\%LogRecord\fP attributes can be used. Salt also provides these
  20777. custom LogRecord attributes to colorize console log output:
  20778. .INDENT 0.0
  20779. .INDENT 3.5
  20780. .sp
  20781. .nf
  20782. .ft C
  20783. "%(colorlevel)s" # log level name colorized by level
  20784. "%(colorname)s" # colorized module name
  20785. "%(colorprocess)s" # colorized process number
  20786. "%(colormsg)s" # log message colorized by level
  20787. .ft P
  20788. .fi
  20789. .UNINDENT
  20790. .UNINDENT
  20791. .sp
  20792. \fBNOTE:\fP
  20793. .INDENT 0.0
  20794. .INDENT 3.5
  20795. The \fB%(colorlevel)s\fP, \fB%(colorname)s\fP, and \fB%(colorprocess)\fP
  20796. LogRecord attributes also include padding and enclosing brackets, \fB[\fP and
  20797. \fB]\fP to match the default values of their collateral non\-colorized
  20798. LogRecord attributes.
  20799. .UNINDENT
  20800. .UNINDENT
  20801. .INDENT 0.0
  20802. .INDENT 3.5
  20803. .sp
  20804. .nf
  20805. .ft C
  20806. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  20807. .ft P
  20808. .fi
  20809. .UNINDENT
  20810. .UNINDENT
  20811. .SS \fBlog_fmt_logfile\fP
  20812. .sp
  20813. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  20814. .sp
  20815. The format of the log file logging messages. All standard python logging
  20816. \fI\%LogRecord\fP attributes can be used. Salt also provides
  20817. these custom LogRecord attributes that include padding and enclosing brackets
  20818. \fB[\fP and \fB]\fP:
  20819. .INDENT 0.0
  20820. .INDENT 3.5
  20821. .sp
  20822. .nf
  20823. .ft C
  20824. "%(bracketlevel)s" # equivalent to [%(levelname)\-8s]
  20825. "%(bracketname)s" # equivalent to [%(name)\-17s]
  20826. "%(bracketprocess)s" # equivalent to [%(process)5s]
  20827. .ft P
  20828. .fi
  20829. .UNINDENT
  20830. .UNINDENT
  20831. .INDENT 0.0
  20832. .INDENT 3.5
  20833. .sp
  20834. .nf
  20835. .ft C
  20836. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  20837. .ft P
  20838. .fi
  20839. .UNINDENT
  20840. .UNINDENT
  20841. .SS \fBlog_granular_levels\fP
  20842. .sp
  20843. Default: \fB{}\fP
  20844. .sp
  20845. This can be used to control logging levels more specifically, based on log call name. The example sets
  20846. the main salt library at the \(aqwarning\(aq level, sets \fBsalt.modules\fP to log
  20847. at the \fBdebug\fP level, and sets a custom module to the \fBall\fP level:
  20848. .INDENT 0.0
  20849. .INDENT 3.5
  20850. .sp
  20851. .nf
  20852. .ft C
  20853. log_granular_levels:
  20854. \(aqsalt\(aq: \(aqwarning\(aq
  20855. \(aqsalt.modules\(aq: \(aqdebug\(aq
  20856. \(aqsalt.loader.saltmaster.ext.module.custom_module\(aq: \(aqall\(aq
  20857. .ft P
  20858. .fi
  20859. .UNINDENT
  20860. .UNINDENT
  20861. .SS \fBlog_fmt_jid\fP
  20862. .sp
  20863. Default: \fB[JID: %(jid)s]\fP
  20864. .sp
  20865. The format of the JID when added to logging messages.
  20866. .INDENT 0.0
  20867. .INDENT 3.5
  20868. .sp
  20869. .nf
  20870. .ft C
  20871. log_fmt_jid: \(aq[JID: %(jid)s]\(aq
  20872. .ft P
  20873. .fi
  20874. .UNINDENT
  20875. .UNINDENT
  20876. .SS External Logging Handlers
  20877. .sp
  20878. Besides the internal logging handlers used by salt, there are some external
  20879. which can be used, see the external logging handlers
  20880. document.
  20881. .SS External Logging Handlers
  20882. .TS
  20883. center;
  20884. |l|l|.
  20885. _
  20886. T{
  20887. \fBfluent_mod\fP
  20888. T} T{
  20889. T}
  20890. _
  20891. T{
  20892. \fBlog4mongo_mod\fP
  20893. T} T{
  20894. Log4Mongo Logging Handler
  20895. T}
  20896. _
  20897. T{
  20898. \fBlogstash_mod\fP
  20899. T} T{
  20900. T}
  20901. _
  20902. T{
  20903. \fBsentry_mod\fP
  20904. T} T{
  20905. T}
  20906. _
  20907. .TE
  20908. .SS salt.log.handlers.log4mongo_mod
  20909. .SS Log4Mongo Logging Handler
  20910. .sp
  20911. This module provides a logging handler for sending salt logs to MongoDB
  20912. .SS Configuration
  20913. .sp
  20914. In the salt configuration file (e.g. /etc/salt/{master,minion}):
  20915. .INDENT 0.0
  20916. .INDENT 3.5
  20917. .sp
  20918. .nf
  20919. .ft C
  20920. log4mongo_handler:
  20921. host: mongodb_host
  20922. port: 27017
  20923. database_name: logs
  20924. collection: salt_logs
  20925. username: logging
  20926. password: reindeerflotilla
  20927. write_concern: 0
  20928. log_level: warning
  20929. .ft P
  20930. .fi
  20931. .UNINDENT
  20932. .UNINDENT
  20933. .SS Log Level
  20934. .sp
  20935. If not set, the log_level will be set to the level defined in the global
  20936. configuration file setting.
  20937. .INDENT 0.0
  20938. .INDENT 3.5
  20939. .IP "Inspiration"
  20940. .sp
  20941. This work was inspired by the Salt logging handlers for LogStash and
  20942. Sentry and by the log4mongo Python implementation.
  20943. .UNINDENT
  20944. .UNINDENT
  20945. .SS salt.log.handlers.fluent_mod
  20946. .SS salt.log.handlers.logstash_mod
  20947. .SS salt.log.handlers.sentry_mod
  20948. .SS Salt File Server
  20949. .sp
  20950. Salt comes with a simple file server suitable for distributing files to the
  20951. Salt minions. The file server is a stateless ZeroMQ server that is built into
  20952. the Salt master.
  20953. .sp
  20954. The main intent of the Salt file server is to present files for use in the
  20955. Salt state system. With this said, the Salt file server can be used for any
  20956. general file transfer from the master to the minions.
  20957. .SS File Server Backends
  20958. .sp
  20959. In Salt 0.12.0, the modular fileserver was introduced. This feature added the
  20960. ability for the Salt Master to integrate different file server backends. File
  20961. server backends allow the Salt file server to act as a transparent bridge to
  20962. external resources. A good example of this is the \fBgit\fP backend, which allows Salt to serve files sourced from
  20963. one or more git repositories, but there are several others as well. Click
  20964. here for a full list of Salt\(aqs fileserver
  20965. backends.
  20966. .SS Enabling a Fileserver Backend
  20967. .sp
  20968. Fileserver backends can be enabled with the \fBfileserver_backend\fP
  20969. option.
  20970. .INDENT 0.0
  20971. .INDENT 3.5
  20972. .sp
  20973. .nf
  20974. .ft C
  20975. fileserver_backend:
  20976. \- git
  20977. .ft P
  20978. .fi
  20979. .UNINDENT
  20980. .UNINDENT
  20981. .sp
  20982. See the documentation for each backend to find the
  20983. correct value to add to \fBfileserver_backend\fP in order to enable
  20984. them.
  20985. .SS Using Multiple Backends
  20986. .sp
  20987. If \fBfileserver_backend\fP is not defined in the Master config file,
  20988. Salt will use the \fBroots\fP backend, but the
  20989. \fBfileserver_backend\fP option supports multiple backends. When more
  20990. than one backend is in use, the files from the enabled backends are merged into a
  20991. single virtual filesystem. When a file is requested, the backends will be
  20992. searched in order for that file, and the first backend to match will be the one
  20993. which returns the file.
  20994. .INDENT 0.0
  20995. .INDENT 3.5
  20996. .sp
  20997. .nf
  20998. .ft C
  20999. fileserver_backend:
  21000. \- roots
  21001. \- git
  21002. .ft P
  21003. .fi
  21004. .UNINDENT
  21005. .UNINDENT
  21006. .sp
  21007. With this configuration, the environments and files defined in the
  21008. \fBfile_roots\fP parameter will be searched first, and if the file is
  21009. not found then the git repositories defined in \fBgitfs_remotes\fP
  21010. will be searched.
  21011. .SS Defining Environments
  21012. .sp
  21013. Just as the order of the values in \fBfileserver_backend\fP matters,
  21014. so too does the order in which different sources are defined within a
  21015. fileserver environment. For example, given the below \fBfile_roots\fP
  21016. configuration, if both \fB/srv/salt/dev/foo.txt\fP and \fB/srv/salt/prod/foo.txt\fP
  21017. exist on the Master, then \fBsalt://foo.txt\fP would point to
  21018. \fB/srv/salt/dev/foo.txt\fP in the \fBdev\fP environment, but it would point to
  21019. \fB/srv/salt/prod/foo.txt\fP in the \fBbase\fP environment.
  21020. .INDENT 0.0
  21021. .INDENT 3.5
  21022. .sp
  21023. .nf
  21024. .ft C
  21025. file_roots:
  21026. base:
  21027. \- /srv/salt/prod
  21028. qa:
  21029. \- /srv/salt/qa
  21030. \- /srv/salt/prod
  21031. dev:
  21032. \- /srv/salt/dev
  21033. \- /srv/salt/qa
  21034. \- /srv/salt/prod
  21035. .ft P
  21036. .fi
  21037. .UNINDENT
  21038. .UNINDENT
  21039. .sp
  21040. Similarly, when using the \fBgit\fP backend, if both
  21041. repositories defined below have a \fBhotfix23\fP branch/tag, and both of them
  21042. also contain the file \fBbar.txt\fP in the root of the repository at that
  21043. branch/tag, then \fBsalt://bar.txt\fP in the \fBhotfix23\fP environment would be
  21044. served from the \fBfirst\fP repository.
  21045. .INDENT 0.0
  21046. .INDENT 3.5
  21047. .sp
  21048. .nf
  21049. .ft C
  21050. gitfs_remotes:
  21051. \- https://mydomain.tld/repos/first.git
  21052. \- https://mydomain.tld/repos/second.git
  21053. .ft P
  21054. .fi
  21055. .UNINDENT
  21056. .UNINDENT
  21057. .sp
  21058. \fBNOTE:\fP
  21059. .INDENT 0.0
  21060. .INDENT 3.5
  21061. Environments map differently based on the fileserver backend. For instance,
  21062. the mappings are explicitly defined in \fBroots\fP
  21063. backend, while in the VCS backends (\fBgit\fP,
  21064. \fBhg\fP, \fBsvn\fP) the
  21065. environments are created from branches/tags/bookmarks/etc. For the
  21066. \fBminion\fP backend, the files are all in a
  21067. single environment, which is specified by the \fBminionfs_env\fP
  21068. option.
  21069. .sp
  21070. See the documentation for each backend for a more detailed explanation of
  21071. how environments are mapped.
  21072. .UNINDENT
  21073. .UNINDENT
  21074. .SS Requesting Files from Specific Environments
  21075. .sp
  21076. The Salt fileserver supports multiple environments, allowing for SLS files and
  21077. other files to be isolated for better organization.
  21078. .sp
  21079. For the default backend (called \fBroots\fP),
  21080. environments are defined using the \fBroots\fP option.
  21081. Other backends (such as \fBgitfs\fP) define
  21082. environments in their own ways. For a list of available fileserver backends,
  21083. see here\&.
  21084. .SS Querystring Syntax
  21085. .sp
  21086. Any \fBsalt://\fP file URL can specify its fileserver environment using a
  21087. querystring syntax, like so:
  21088. .INDENT 0.0
  21089. .INDENT 3.5
  21090. .sp
  21091. .nf
  21092. .ft C
  21093. salt://path/to/file?saltenv=foo
  21094. .ft P
  21095. .fi
  21096. .UNINDENT
  21097. .UNINDENT
  21098. .sp
  21099. In Reactor configurations, this method must be used to pull
  21100. files from an environment other than \fBbase\fP\&.
  21101. .SS In States
  21102. .sp
  21103. Minions can be instructed which environment to use both globally, and for a
  21104. single state, and multiple methods for each are available:
  21105. .SS Globally
  21106. .sp
  21107. A minion can be pinned to an environment using the \fBenvironment\fP
  21108. option in the minion config file.
  21109. .sp
  21110. Additionally, the environment can be set for a single call to the following
  21111. functions:
  21112. .INDENT 0.0
  21113. .IP \(bu 2
  21114. \fBstate.apply\fP
  21115. .IP \(bu 2
  21116. \fBstate.highstate\fP
  21117. .IP \(bu 2
  21118. \fBstate.sls\fP
  21119. .IP \(bu 2
  21120. \fBstate.top\fP
  21121. .UNINDENT
  21122. .sp
  21123. \fBNOTE:\fP
  21124. .INDENT 0.0
  21125. .INDENT 3.5
  21126. 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
  21127. applied.
  21128. .UNINDENT
  21129. .UNINDENT
  21130. .SS On a Per\-State Basis
  21131. .sp
  21132. Within an individual state, there are two ways of specifying the environment.
  21133. The first is to add a \fBsaltenv\fP argument to the state. This example will pull
  21134. the file from the \fBconfig\fP environment:
  21135. .INDENT 0.0
  21136. .INDENT 3.5
  21137. .sp
  21138. .nf
  21139. .ft C
  21140. /etc/foo/bar.conf:
  21141. file.managed:
  21142. \- source: salt://foo/bar.conf
  21143. \- user: foo
  21144. \- mode: 600
  21145. \- saltenv: config
  21146. .ft P
  21147. .fi
  21148. .UNINDENT
  21149. .UNINDENT
  21150. .sp
  21151. Another way of doing the same thing is to use the \fI\%querystring syntax\fP described above:
  21152. .INDENT 0.0
  21153. .INDENT 3.5
  21154. .sp
  21155. .nf
  21156. .ft C
  21157. /etc/foo/bar.conf:
  21158. file.managed:
  21159. \- source: salt://foo/bar.conf?saltenv=config
  21160. \- user: foo
  21161. \- mode: 600
  21162. .ft P
  21163. .fi
  21164. .UNINDENT
  21165. .UNINDENT
  21166. .sp
  21167. \fBNOTE:\fP
  21168. .INDENT 0.0
  21169. .INDENT 3.5
  21170. Specifying the environment using either of the above methods is only
  21171. necessary in cases where a state from one environment needs to access files
  21172. from another environment. If the SLS file containing this state was in the
  21173. \fBconfig\fP environment, then it would look in that environment by default.
  21174. .UNINDENT
  21175. .UNINDENT
  21176. .SS File Server Configuration
  21177. .sp
  21178. The Salt file server is a high performance file server written in ZeroMQ. It
  21179. manages large files quickly and with little overhead, and has been optimized
  21180. to handle small files in an extremely efficient manner.
  21181. .sp
  21182. The Salt file server is an environment aware file server. This means that
  21183. files can be allocated within many root directories and accessed by
  21184. specifying both the file path and the environment to search. The
  21185. individual environments can span across multiple directory roots
  21186. to create overlays and to allow for files to be organized in many flexible
  21187. ways.
  21188. .SS Environments
  21189. .sp
  21190. The Salt file server defaults to the mandatory \fBbase\fP environment. This
  21191. environment \fBMUST\fP be defined and is used to download files when no
  21192. environment is specified.
  21193. .sp
  21194. Environments allow for files and sls data to be logically separated, but
  21195. environments are not isolated from each other. This allows for logical
  21196. isolation of environments by the engineer using Salt, but also allows
  21197. for information to be used in multiple environments.
  21198. .SS Directory Overlay
  21199. .sp
  21200. The \fBenvironment\fP setting is a list of directories to publish files from.
  21201. These directories are searched in order to find the specified file and the
  21202. first file found is returned.
  21203. .sp
  21204. This means that directory data is prioritized based on the order in which they
  21205. are listed. In the case of this \fBfile_roots\fP configuration:
  21206. .INDENT 0.0
  21207. .INDENT 3.5
  21208. .sp
  21209. .nf
  21210. .ft C
  21211. file_roots:
  21212. base:
  21213. \- /srv/salt/base
  21214. \- /srv/salt/failover
  21215. .ft P
  21216. .fi
  21217. .UNINDENT
  21218. .UNINDENT
  21219. .sp
  21220. If a file\(aqs URI is \fBsalt://httpd/httpd.conf\fP, it will first search for the
  21221. file at \fB/srv/salt/base/httpd/httpd.conf\fP\&. If the file is found there it
  21222. will be returned. If the file is not found there, then
  21223. \fB/srv/salt/failover/httpd/httpd.conf\fP will be used for the source.
  21224. .sp
  21225. This allows for directories to be overlaid and prioritized based on the order
  21226. they are defined in the configuration.
  21227. .sp
  21228. It is also possible to have \fBfile_roots\fP which supports multiple
  21229. environments:
  21230. .INDENT 0.0
  21231. .INDENT 3.5
  21232. .sp
  21233. .nf
  21234. .ft C
  21235. file_roots:
  21236. base:
  21237. \- /srv/salt/base
  21238. dev:
  21239. \- /srv/salt/dev
  21240. \- /srv/salt/base
  21241. prod:
  21242. \- /srv/salt/prod
  21243. \- /srv/salt/base
  21244. .ft P
  21245. .fi
  21246. .UNINDENT
  21247. .UNINDENT
  21248. .sp
  21249. This example ensures that each environment will check the associated
  21250. environment directory for files first. If a file is not found in the
  21251. appropriate directory, the system will default to using the base directory.
  21252. .SS Local File Server
  21253. .sp
  21254. New in version 0.9.8.
  21255. .sp
  21256. The file server can be rerouted to run from the minion. This is primarily to
  21257. enable running Salt states without a Salt master. To use the local file server
  21258. interface, copy the file server data to the minion and set the file_roots
  21259. option on the minion to point to the directories copied from the master.
  21260. Once the minion \fBfile_roots\fP option has been set, change the \fBfile_client\fP
  21261. option to local to make sure that the local file server interface is used.
  21262. .SS The cp Module
  21263. .sp
  21264. The cp module is the home of minion side file server operations. The cp module
  21265. is used by the Salt state system, salt\-cp, and can be used to distribute files
  21266. presented by the Salt file server.
  21267. .SS Escaping Special Characters
  21268. .sp
  21269. The \fBsalt://\fP url format can potentially contain a query string, for example
  21270. \fBsalt://dir/file.txt?saltenv=base\fP\&. You can prevent the fileclient/fileserver from
  21271. interpreting \fB?\fP as the initial token of a query string by referencing the file
  21272. with \fBsalt://|\fP rather than \fBsalt://\fP\&.
  21273. .INDENT 0.0
  21274. .INDENT 3.5
  21275. .sp
  21276. .nf
  21277. .ft C
  21278. /etc/marathon/conf/?checkpoint:
  21279. file.managed:
  21280. \- source: salt://|hw/config/?checkpoint
  21281. \- makedirs: True
  21282. .ft P
  21283. .fi
  21284. .UNINDENT
  21285. .UNINDENT
  21286. .SS Environments
  21287. .sp
  21288. Since the file server is made to work with the Salt state system, it supports
  21289. environments. The environments are defined in the master config file and
  21290. when referencing an environment the file specified will be based on the root
  21291. directory of the environment.
  21292. .SS get_file
  21293. .sp
  21294. The cp.get_file function can be used on the minion to download a file from
  21295. the master, the syntax looks like this:
  21296. .INDENT 0.0
  21297. .INDENT 3.5
  21298. .sp
  21299. .nf
  21300. .ft C
  21301. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc
  21302. .ft P
  21303. .fi
  21304. .UNINDENT
  21305. .UNINDENT
  21306. .sp
  21307. This will instruct all Salt minions to download the vimrc file and copy it
  21308. to /etc/vimrc
  21309. .sp
  21310. Template rendering can be enabled on both the source and destination file names
  21311. like so:
  21312. .INDENT 0.0
  21313. .INDENT 3.5
  21314. .sp
  21315. .nf
  21316. .ft C
  21317. # salt \(aq*\(aq cp.get_file "salt://{{grains.os}}/vimrc" /etc/vimrc template=jinja
  21318. .ft P
  21319. .fi
  21320. .UNINDENT
  21321. .UNINDENT
  21322. .sp
  21323. This example would instruct all Salt minions to download the vimrc from a
  21324. directory with the same name as their OS grain and copy it to /etc/vimrc
  21325. .sp
  21326. For larger files, the cp.get_file module also supports gzip compression.
  21327. Because gzip is CPU\-intensive, this should only be used in
  21328. scenarios where the compression ratio is very high (e.g. pretty\-printed JSON
  21329. or YAML files).
  21330. .sp
  21331. To use compression, use the \fBgzip\fP named argument. Valid values are integers
  21332. from 1 to 9, where 1 is the lightest compression and 9 the heaviest. In other
  21333. words, 1 uses the least CPU on the master (and minion), while 9 uses the most.
  21334. .INDENT 0.0
  21335. .INDENT 3.5
  21336. .sp
  21337. .nf
  21338. .ft C
  21339. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc gzip=5
  21340. .ft P
  21341. .fi
  21342. .UNINDENT
  21343. .UNINDENT
  21344. .sp
  21345. Finally, note that by default cp.get_file does \fInot\fP create new destination
  21346. directories if they do not exist. To change this, use the \fBmakedirs\fP
  21347. argument:
  21348. .INDENT 0.0
  21349. .INDENT 3.5
  21350. .sp
  21351. .nf
  21352. .ft C
  21353. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True
  21354. .ft P
  21355. .fi
  21356. .UNINDENT
  21357. .UNINDENT
  21358. .sp
  21359. In this example, /etc/vim/ would be created if it didn\(aqt already exist.
  21360. .SS get_dir
  21361. .sp
  21362. The cp.get_dir function can be used on the minion to download an entire
  21363. directory from the master. The syntax is very similar to get_file:
  21364. .INDENT 0.0
  21365. .INDENT 3.5
  21366. .sp
  21367. .nf
  21368. .ft C
  21369. # salt \(aq*\(aq cp.get_dir salt://etc/apache2 /etc
  21370. .ft P
  21371. .fi
  21372. .UNINDENT
  21373. .UNINDENT
  21374. .sp
  21375. cp.get_dir supports template rendering and gzip compression arguments just like
  21376. get_file:
  21377. .INDENT 0.0
  21378. .INDENT 3.5
  21379. .sp
  21380. .nf
  21381. .ft C
  21382. # salt \(aq*\(aq cp.get_dir salt://etc/{{pillar.webserver}} /etc gzip=5 template=jinja
  21383. .ft P
  21384. .fi
  21385. .UNINDENT
  21386. .UNINDENT
  21387. .SS File Server Client Instance
  21388. .sp
  21389. A client instance is available which allows for modules and applications to be
  21390. written which make use of the Salt file server.
  21391. .sp
  21392. The file server uses the same authentication and encryption used by the rest
  21393. of the Salt system for network communication.
  21394. .SS fileclient Module
  21395. .sp
  21396. The \fBsalt/fileclient.py\fP module is used to set up the communication from the
  21397. minion to the master. When creating a client instance using the fileclient module,
  21398. the minion configuration needs to be passed in. When using the fileclient module
  21399. from within a minion module the built in \fB__opts__\fP data can be passed:
  21400. .INDENT 0.0
  21401. .INDENT 3.5
  21402. .sp
  21403. .nf
  21404. .ft C
  21405. import salt.minion
  21406. import salt.fileclient
  21407. def get_file(path, dest, saltenv="base"):
  21408. """
  21409. Used to get a single file from the Salt master
  21410. CLI Example:
  21411. salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc
  21412. """
  21413. # Get the fileclient object
  21414. client = salt.fileclient.get_file_client(__opts__)
  21415. # Call get_file
  21416. return client.get_file(path, dest, False, saltenv)
  21417. .ft P
  21418. .fi
  21419. .UNINDENT
  21420. .UNINDENT
  21421. .sp
  21422. Creating a fileclient instance outside of a minion module where the \fB__opts__\fP
  21423. data is not available, it needs to be generated:
  21424. .INDENT 0.0
  21425. .INDENT 3.5
  21426. .sp
  21427. .nf
  21428. .ft C
  21429. import salt.fileclient
  21430. import salt.config
  21431. def get_file(path, dest, saltenv="base"):
  21432. """
  21433. Used to get a single file from the Salt master
  21434. """
  21435. # Get the configuration data
  21436. opts = salt.config.minion_config("/etc/salt/minion")
  21437. # Get the fileclient object
  21438. client = salt.fileclient.get_file_client(opts)
  21439. # Call get_file
  21440. return client.get_file(path, dest, False, saltenv)
  21441. .ft P
  21442. .fi
  21443. .UNINDENT
  21444. .UNINDENT
  21445. .SS Git Fileserver Backend Walkthrough
  21446. .sp
  21447. \fBNOTE:\fP
  21448. .INDENT 0.0
  21449. .INDENT 3.5
  21450. This walkthrough assumes basic knowledge of Salt. To get up to speed, check
  21451. out the Salt Walkthrough\&.
  21452. .UNINDENT
  21453. .UNINDENT
  21454. .sp
  21455. The gitfs backend allows Salt to serve files from git repositories. It can be
  21456. enabled by adding \fBgit\fP to the \fBfileserver_backend\fP list, and
  21457. configuring one or more repositories in \fBgitfs_remotes\fP\&.
  21458. .sp
  21459. Branches and tags become Salt fileserver environments.
  21460. .sp
  21461. \fBNOTE:\fP
  21462. .INDENT 0.0
  21463. .INDENT 3.5
  21464. Branching and tagging can result in a lot of potentially\-conflicting
  21465. top files, for this reason it may be useful to set
  21466. \fBtop_file_merging_strategy\fP to \fBsame\fP in the minions\(aq config
  21467. files if the top files are being managed in a GitFS repo.
  21468. .UNINDENT
  21469. .UNINDENT
  21470. .SS Installing Dependencies
  21471. .sp
  21472. Both \fI\%pygit2\fP and \fI\%GitPython\fP are supported Python interfaces to git. If
  21473. compatible versions of both are installed, \fI\%pygit2\fP will be preferred. In these
  21474. cases, \fI\%GitPython\fP can be forced using the \fBgitfs_provider\fP
  21475. parameter in the master config file.
  21476. .sp
  21477. \fBNOTE:\fP
  21478. .INDENT 0.0
  21479. .INDENT 3.5
  21480. It is recommended to always run the most recent version of any the below
  21481. dependencies. Certain features of GitFS may not be available without
  21482. the most recent version of the chosen library.
  21483. .UNINDENT
  21484. .UNINDENT
  21485. .SS pygit2
  21486. .sp
  21487. The minimum supported version of \fI\%pygit2\fP is 0.20.3. Availability for this
  21488. version of \fI\%pygit2\fP is still limited, though the SaltStack team is working to
  21489. get compatible versions available for as many platforms as possible.
  21490. .sp
  21491. For the Fedora/EPEL versions which have a new enough version packaged, the
  21492. following command would be used to install \fI\%pygit2\fP:
  21493. .INDENT 0.0
  21494. .INDENT 3.5
  21495. .sp
  21496. .nf
  21497. .ft C
  21498. # yum install python\-pygit2
  21499. .ft P
  21500. .fi
  21501. .UNINDENT
  21502. .UNINDENT
  21503. .sp
  21504. Provided a valid version is packaged for Debian/Ubuntu (which is not currently
  21505. the case), the package name would be the same, and the following command would
  21506. be used to install it:
  21507. .INDENT 0.0
  21508. .INDENT 3.5
  21509. .sp
  21510. .nf
  21511. .ft C
  21512. # apt\-get install python\-pygit2
  21513. .ft P
  21514. .fi
  21515. .UNINDENT
  21516. .UNINDENT
  21517. .sp
  21518. If \fI\%pygit2\fP is not packaged for the platform on which the Master is running, the
  21519. \fI\%pygit2\fP website has installation instructions
  21520. \fI\%here\fP\&. Keep in mind however that
  21521. following these instructions will install \fI\%libgit2\fP and \fI\%pygit2\fP without system
  21522. packages. Additionally, keep in mind that \fI\%SSH authentication in pygit2\fP requires \fI\%libssh2\fP (\fInot\fP libssh) development
  21523. libraries to be present before \fI\%libgit2\fP is built. On some Debian\-based distros
  21524. \fBpkg\-config\fP is also required to link \fI\%libgit2\fP with libssh2.
  21525. .sp
  21526. \fBNOTE:\fP
  21527. .INDENT 0.0
  21528. .INDENT 3.5
  21529. If you are receiving the error "Unsupported URL Protocol" in the Salt Master
  21530. log when making a connection using SSH, review the libssh2 details listed
  21531. above.
  21532. .UNINDENT
  21533. .UNINDENT
  21534. .sp
  21535. Additionally, version 0.21.0 of pygit2 introduced a dependency on \fI\%python\-cffi\fP,
  21536. which in turn depends on newer releases of \fI\%libffi\fP\&. Upgrading \fI\%libffi\fP is not
  21537. advisable as several other applications depend on it, so on older LTS linux
  21538. releases \fI\%pygit2\fP 0.20.3 and \fI\%libgit2\fP 0.20.0 is the recommended combination.
  21539. .sp
  21540. \fBWARNING:\fP
  21541. .INDENT 0.0
  21542. .INDENT 3.5
  21543. \fI\%pygit2\fP is actively developed and \fI\%frequently makes
  21544. non\-backwards\-compatible API changes\fP, even in
  21545. minor releases. It is not uncommon for \fI\%pygit2\fP upgrades to result in errors
  21546. in Salt. Please take care when upgrading \fI\%pygit2\fP, and pay close attention
  21547. to the \fI\%changelog\fP, keeping an eye out for API changes. Errors can be
  21548. reported on the \fI\%SaltStack issue tracker\fP\&.
  21549. .UNINDENT
  21550. .UNINDENT
  21551. .SS RedHat Pygit2 Issues
  21552. .sp
  21553. The release of RedHat/CentOS 7.3 upgraded both \fBpython\-cffi\fP and
  21554. \fBhttp\-parser\fP, both of which are dependencies for \fI\%pygit2\fP/\fI\%libgit2\fP\&. Both
  21555. \fBpygit2\fP and \fBlibgit2\fP packages (which are from the EPEL repository) should
  21556. be upgraded to the most recent versions, at least to \fB0.24.2\fP\&.
  21557. .sp
  21558. The below errors will show up in the master log if an incompatible
  21559. \fBpython\-pygit2\fP package is installed:
  21560. .INDENT 0.0
  21561. .INDENT 3.5
  21562. .sp
  21563. .nf
  21564. .ft C
  21565. 2017\-02\-10 09:07:34,892 [salt.utils.gitfs ][ERROR ][11211] Import pygit2 failed: CompileError: command \(aqgcc\(aq failed with exit status 1
  21566. 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?
  21567. 2017\-02\-10 09:07:34,907 [salt.utils.gitfs ][CRITICAL][11211] No suitable gitfs provider module is installed.
  21568. 2017\-02\-10 09:07:34,912 [salt.master ][CRITICAL][11211] Master failed pre flight checks, exiting
  21569. .ft P
  21570. .fi
  21571. .UNINDENT
  21572. .UNINDENT
  21573. .sp
  21574. The below errors will show up in the master log if an incompatible \fBlibgit2\fP
  21575. package is installed:
  21576. .INDENT 0.0
  21577. .INDENT 3.5
  21578. .sp
  21579. .nf
  21580. .ft C
  21581. 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
  21582. .ft P
  21583. .fi
  21584. .UNINDENT
  21585. .UNINDENT
  21586. .sp
  21587. A restart of the \fBsalt\-master\fP daemon and gitfs cache directory clean up may
  21588. be required to allow http(s) repositories to continue to be fetched.
  21589. .SS GitPython
  21590. .sp
  21591. \fI\%GitPython\fP 0.3.0 or newer is required to use GitPython for gitfs. For
  21592. RHEL\-based Linux distros, a compatible version is available in EPEL, and can be
  21593. easily installed on the master using yum:
  21594. .INDENT 0.0
  21595. .INDENT 3.5
  21596. .sp
  21597. .nf
  21598. .ft C
  21599. # yum install GitPython
  21600. .ft P
  21601. .fi
  21602. .UNINDENT
  21603. .UNINDENT
  21604. .sp
  21605. Ubuntu 14.04 LTS and Debian Wheezy (7.x) also have a compatible version packaged:
  21606. .INDENT 0.0
  21607. .INDENT 3.5
  21608. .sp
  21609. .nf
  21610. .ft C
  21611. # apt\-get install python\-git
  21612. .ft P
  21613. .fi
  21614. .UNINDENT
  21615. .UNINDENT
  21616. .sp
  21617. \fI\%GitPython\fP requires the \fBgit\fP CLI utility to work. If installed from a system
  21618. package, then git should already be installed, but if installed via \fI\%pip\fP then
  21619. it may still be necessary to install git separately. For MacOS users,
  21620. \fI\%GitPython\fP comes bundled in with the Salt installer, but git must still be
  21621. installed for it to work properly. Git can be installed in several ways,
  21622. including by installing \fI\%XCode\fP\&.
  21623. .sp
  21624. \fBWARNING:\fP
  21625. .INDENT 0.0
  21626. .INDENT 3.5
  21627. GitPython advises against the use of its library for long\-running processes
  21628. (such as a salt\-master or salt\-minion). Please see their warning on potential
  21629. leaks of system resources:
  21630. \fI\%https://github.com/gitpython\-developers/GitPython#leakage\-of\-system\-resources\fP\&.
  21631. .UNINDENT
  21632. .UNINDENT
  21633. .sp
  21634. \fBWARNING:\fP
  21635. .INDENT 0.0
  21636. .INDENT 3.5
  21637. Keep in mind that if GitPython has been previously installed on the master
  21638. using pip (even if it was subsequently uninstalled), then it may still
  21639. exist in the build cache (typically \fB/tmp/pip\-build\-root/GitPython\fP) if
  21640. the cache is not cleared after installation. The package in the build cache
  21641. will override any requirement specifiers, so if you try upgrading to
  21642. version 0.3.2.RC1 by running \fBpip install \(aqGitPython==0.3.2.RC1\(aq\fP then it
  21643. will ignore this and simply install the version from the cache directory.
  21644. Therefore, it may be necessary to delete the GitPython directory from the
  21645. build cache in order to ensure that the specified version is installed.
  21646. .UNINDENT
  21647. .UNINDENT
  21648. .sp
  21649. \fBWARNING:\fP
  21650. .INDENT 0.0
  21651. .INDENT 3.5
  21652. \fI\%GitPython\fP 2.0.9 and newer is not compatible with Python 2.6. If installing
  21653. \fI\%GitPython\fP using pip on a machine running Python 2.6, make sure that a
  21654. version earlier than 2.0.9 is installed. This can be done on the CLI by
  21655. running \fBpip install \(aqGitPython<2.0.9\(aq\fP, or in a \fBpip.installed\fP state using the following SLS:
  21656. .INDENT 0.0
  21657. .INDENT 3.5
  21658. .sp
  21659. .nf
  21660. .ft C
  21661. GitPython:
  21662. pip.installed:
  21663. \- name: \(aqGitPython < 2.0.9\(aq
  21664. .ft P
  21665. .fi
  21666. .UNINDENT
  21667. .UNINDENT
  21668. .UNINDENT
  21669. .UNINDENT
  21670. .SS Simple Configuration
  21671. .sp
  21672. To use the gitfs backend, only two configuration changes are required on the
  21673. master:
  21674. .INDENT 0.0
  21675. .IP 1. 3
  21676. Include \fBgitfs\fP in the \fBfileserver_backend\fP list in the
  21677. master config file:
  21678. .INDENT 3.0
  21679. .INDENT 3.5
  21680. .sp
  21681. .nf
  21682. .ft C
  21683. fileserver_backend:
  21684. \- gitfs
  21685. .ft P
  21686. .fi
  21687. .UNINDENT
  21688. .UNINDENT
  21689. .sp
  21690. \fBNOTE:\fP
  21691. .INDENT 3.0
  21692. .INDENT 3.5
  21693. \fBgit\fP also works here. Prior to the 2018.3.0 release, \fIonly\fP \fBgit\fP
  21694. would work.
  21695. .UNINDENT
  21696. .UNINDENT
  21697. .IP 2. 3
  21698. Specify one or more \fBgit://\fP, \fBhttps://\fP, \fBfile://\fP, or \fBssh://\fP
  21699. URLs in \fBgitfs_remotes\fP to configure which repositories to
  21700. cache and search for requested files:
  21701. .INDENT 3.0
  21702. .INDENT 3.5
  21703. .sp
  21704. .nf
  21705. .ft C
  21706. gitfs_remotes:
  21707. \- https://github.com/saltstack\-formulas/salt\-formula.git
  21708. .ft P
  21709. .fi
  21710. .UNINDENT
  21711. .UNINDENT
  21712. .sp
  21713. SSH remotes can also be configured using scp\-like syntax:
  21714. .INDENT 3.0
  21715. .INDENT 3.5
  21716. .sp
  21717. .nf
  21718. .ft C
  21719. gitfs_remotes:
  21720. \- git@github.com:user/repo.git
  21721. \- ssh://user@domain.tld/path/to/repo.git
  21722. .ft P
  21723. .fi
  21724. .UNINDENT
  21725. .UNINDENT
  21726. .sp
  21727. Information on how to authenticate to SSH remotes can be found \fI\%here\fP\&.
  21728. .IP 3. 3
  21729. Restart the master to load the new configuration.
  21730. .UNINDENT
  21731. .sp
  21732. \fBNOTE:\fP
  21733. .INDENT 0.0
  21734. .INDENT 3.5
  21735. In a master/minion setup, files from a gitfs remote are cached once by the
  21736. master, so minions do not need direct access to the git repository.
  21737. .UNINDENT
  21738. .UNINDENT
  21739. .SS Multiple Remotes
  21740. .sp
  21741. The \fBgitfs_remotes\fP option accepts an ordered list of git remotes to
  21742. cache and search, in listed order, for requested files.
  21743. .sp
  21744. A simple scenario illustrates this cascading lookup behavior:
  21745. .sp
  21746. If the \fBgitfs_remotes\fP option specifies three remotes:
  21747. .INDENT 0.0
  21748. .INDENT 3.5
  21749. .sp
  21750. .nf
  21751. .ft C
  21752. gitfs_remotes:
  21753. \- git://github.com/example/first.git
  21754. \- https://github.com/example/second.git
  21755. \- file:///root/third
  21756. .ft P
  21757. .fi
  21758. .UNINDENT
  21759. .UNINDENT
  21760. .sp
  21761. And each repository contains some files:
  21762. .INDENT 0.0
  21763. .INDENT 3.5
  21764. .sp
  21765. .nf
  21766. .ft C
  21767. first.git:
  21768. top.sls
  21769. edit/vim.sls
  21770. edit/vimrc
  21771. nginx/init.sls
  21772. second.git:
  21773. edit/dev_vimrc
  21774. haproxy/init.sls
  21775. third:
  21776. haproxy/haproxy.conf
  21777. edit/dev_vimrc
  21778. .ft P
  21779. .fi
  21780. .UNINDENT
  21781. .UNINDENT
  21782. .sp
  21783. Salt will attempt to lookup the requested file from each gitfs remote
  21784. repository in the order in which they are defined in the configuration. The
  21785. \fBgit://github.com/example/first.git\fP remote will be searched first.
  21786. If the requested file is found, then it is served and no further searching
  21787. is executed. For example:
  21788. .INDENT 0.0
  21789. .IP \(bu 2
  21790. A request for the file \fBsalt://haproxy/init.sls\fP will be served from
  21791. the \fBhttps://github.com/example/second.git\fP git repo.
  21792. .IP \(bu 2
  21793. A request for the file \fBsalt://haproxy/haproxy.conf\fP will be served from the
  21794. \fBfile:///root/third\fP repo.
  21795. .UNINDENT
  21796. .sp
  21797. \fBNOTE:\fP
  21798. .INDENT 0.0
  21799. .INDENT 3.5
  21800. This example is purposefully contrived to illustrate the behavior of the
  21801. gitfs backend. This example should not be read as a recommended way to lay
  21802. out files and git repos.
  21803. .sp
  21804. The \fBfile://\fP prefix denotes a git repository in a local directory.
  21805. However, it will still use the given \fBfile://\fP URL as a remote,
  21806. rather than copying the git repo to the salt cache. This means that any
  21807. refs you want accessible must exist as \fIlocal\fP refs in the specified repo.
  21808. .UNINDENT
  21809. .UNINDENT
  21810. .sp
  21811. \fBWARNING:\fP
  21812. .INDENT 0.0
  21813. .INDENT 3.5
  21814. Salt versions prior to 2014.1.0 are not tolerant of changing the
  21815. order of remotes or modifying the URI of existing remotes. In those
  21816. versions, when modifying remotes it is a good idea to remove the gitfs
  21817. cache directory (\fB/var/cache/salt/master/gitfs\fP) before restarting the
  21818. salt\-master service.
  21819. .UNINDENT
  21820. .UNINDENT
  21821. .SS Per\-remote Configuration Parameters
  21822. .sp
  21823. New in version 2014.7.0.
  21824. .sp
  21825. The following master config parameters are global (that is, they apply to all
  21826. configured gitfs remotes):
  21827. .INDENT 0.0
  21828. .IP \(bu 2
  21829. \fBgitfs_base\fP
  21830. .IP \(bu 2
  21831. \fBgitfs_root\fP
  21832. .IP \(bu 2
  21833. \fBgitfs_ssl_verify\fP
  21834. .IP \(bu 2
  21835. \fBgitfs_mountpoint\fP (new in 2014.7.0)
  21836. .IP \(bu 2
  21837. \fBgitfs_user\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21838. .IP \(bu 2
  21839. \fBgitfs_password\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21840. .IP \(bu 2
  21841. \fBgitfs_insecure_auth\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21842. .IP \(bu 2
  21843. \fBgitfs_pubkey\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21844. .IP \(bu 2
  21845. \fBgitfs_privkey\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21846. .IP \(bu 2
  21847. \fBgitfs_passphrase\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21848. .IP \(bu 2
  21849. \fBgitfs_refspecs\fP (new in 2017.7.0)
  21850. .IP \(bu 2
  21851. \fBgitfs_disable_saltenv_mapping\fP (new in 2018.3.0)
  21852. .IP \(bu 2
  21853. \fBgitfs_ref_types\fP (new in 2018.3.0)
  21854. .IP \(bu 2
  21855. \fBgitfs_update_interval\fP (new in 2018.3.0)
  21856. .UNINDENT
  21857. .sp
  21858. \fBNOTE:\fP
  21859. .INDENT 0.0
  21860. .INDENT 3.5
  21861. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  21862. newer.
  21863. .UNINDENT
  21864. .UNINDENT
  21865. .sp
  21866. These parameters can now be overridden on a per\-remote basis. This allows for a
  21867. tremendous amount of customization. Here\(aqs some example usage:
  21868. .INDENT 0.0
  21869. .INDENT 3.5
  21870. .sp
  21871. .nf
  21872. .ft C
  21873. gitfs_provider: pygit2
  21874. gitfs_base: develop
  21875. gitfs_remotes:
  21876. \- https://foo.com/foo.git
  21877. \- https://foo.com/bar.git:
  21878. \- root: salt
  21879. \- mountpoint: salt://bar
  21880. \- base: salt\-base
  21881. \- ssl_verify: False
  21882. \- update_interval: 120
  21883. \- https://foo.com/bar.git:
  21884. \- name: second_bar_repo
  21885. \- root: other/salt
  21886. \- mountpoint: salt://other/bar
  21887. \- base: salt\-base
  21888. \- ref_types:
  21889. \- branch
  21890. \- http://foo.com/baz.git:
  21891. \- root: salt/states
  21892. \- user: joe
  21893. \- password: mysupersecretpassword
  21894. \- insecure_auth: True
  21895. \- disable_saltenv_mapping: True
  21896. \- saltenv:
  21897. \- foo:
  21898. \- ref: foo
  21899. \- http://foo.com/quux.git:
  21900. \- all_saltenvs: master
  21901. .ft P
  21902. .fi
  21903. .UNINDENT
  21904. .UNINDENT
  21905. .sp
  21906. \fBIMPORTANT:\fP
  21907. .INDENT 0.0
  21908. .INDENT 3.5
  21909. There are two important distinctions which should be noted for per\-remote
  21910. configuration:
  21911. .INDENT 0.0
  21912. .IP 1. 3
  21913. The URL of a remote which has per\-remote configuration must be suffixed
  21914. with a colon.
  21915. .IP 2. 3
  21916. Per\-remote configuration parameters are named like the global versions,
  21917. with the \fBgitfs_\fP removed from the beginning. The exception being the
  21918. \fBname\fP, \fBsaltenv\fP, and \fBall_saltenvs\fP parameters, which are only
  21919. available to per\-remote configurations.
  21920. .UNINDENT
  21921. .sp
  21922. The \fBall_saltenvs\fP parameter is new in the 2018.3.0 release.
  21923. .UNINDENT
  21924. .UNINDENT
  21925. .sp
  21926. In the example configuration above, the following is true:
  21927. .INDENT 0.0
  21928. .IP 1. 3
  21929. The first and fourth gitfs remotes will use the \fBdevelop\fP branch/tag as the
  21930. \fBbase\fP environment, while the second and third will use the \fBsalt\-base\fP
  21931. branch/tag as the \fBbase\fP environment.
  21932. .IP 2. 3
  21933. The first remote will serve all files in the repository. The second
  21934. remote will only serve files from the \fBsalt\fP directory (and its
  21935. subdirectories). The third remote will only server files from the
  21936. \fBother/salt\fP directory (and its subdirectories), while the fourth remote
  21937. will only serve files from the \fBsalt/states\fP directory (and its
  21938. subdirectories).
  21939. .IP 3. 3
  21940. The third remote will only serve files from branches, and not from tags or
  21941. SHAs.
  21942. .IP 4. 3
  21943. The fourth remote will only have two saltenvs available: \fBbase\fP (pointed
  21944. at \fBdevelop\fP), and \fBfoo\fP (pointed at \fBfoo\fP).
  21945. .IP 5. 3
  21946. The first and fourth remotes will have files located under the root of the
  21947. Salt fileserver namespace (\fBsalt://\fP). The files from the second remote
  21948. will be located under \fBsalt://bar\fP, while the files from the third remote
  21949. will be located under \fBsalt://other/bar\fP\&.
  21950. .IP 6. 3
  21951. The second and third remotes reference the same repository and unique names
  21952. need to be declared for duplicate gitfs remotes.
  21953. .IP 7. 3
  21954. The fourth remote overrides the default behavior of \fI\%not authenticating
  21955. to insecure (non\-HTTPS) remotes\fP\&.
  21956. .IP 8. 3
  21957. Because \fBall_saltenvs\fP is configured for the fifth remote, files from the
  21958. branch/tag \fBmaster\fP will appear in every fileserver environment.
  21959. .sp
  21960. \fBNOTE:\fP
  21961. .INDENT 3.0
  21962. .INDENT 3.5
  21963. The use of \fBhttp://\fP (instead of \fBhttps://\fP) is permitted here
  21964. \fIonly\fP because authentication is not being used. Otherwise, the
  21965. \fBinsecure_auth\fP parameter must be used (as in the fourth remote) to
  21966. force Salt to authenticate to an \fBhttp://\fP remote.
  21967. .UNINDENT
  21968. .UNINDENT
  21969. .IP 9. 3
  21970. The first remote will wait 120 seconds between updates instead of 60.
  21971. .UNINDENT
  21972. .SS Per\-Saltenv Configuration Parameters
  21973. .sp
  21974. New in version 2016.11.0.
  21975. .sp
  21976. For more granular control, Salt allows the following three things to be
  21977. overridden for individual saltenvs within a given repo:
  21978. .INDENT 0.0
  21979. .IP \(bu 2
  21980. The \fI\%mountpoint\fP
  21981. .IP \(bu 2
  21982. The \fI\%root\fP
  21983. .IP \(bu 2
  21984. The branch/tag to be used for a given saltenv
  21985. .UNINDENT
  21986. .sp
  21987. Here is an example:
  21988. .INDENT 0.0
  21989. .INDENT 3.5
  21990. .sp
  21991. .nf
  21992. .ft C
  21993. gitfs_root: salt
  21994. gitfs_saltenv:
  21995. \- dev:
  21996. \- mountpoint: salt://gitfs\-dev
  21997. \- ref: develop
  21998. gitfs_remotes:
  21999. \- https://foo.com/bar.git:
  22000. \- saltenv:
  22001. \- staging:
  22002. \- ref: qa
  22003. \- mountpoint: salt://bar\-staging
  22004. \- dev:
  22005. \- ref: development
  22006. \- https://foo.com/baz.git:
  22007. \- saltenv:
  22008. \- staging:
  22009. \- mountpoint: salt://baz\-staging
  22010. .ft P
  22011. .fi
  22012. .UNINDENT
  22013. .UNINDENT
  22014. .sp
  22015. Given the above configuration, the following is true:
  22016. .INDENT 0.0
  22017. .IP 1. 3
  22018. For all gitfs remotes, files for the \fBdev\fP saltenv will be located under
  22019. \fBsalt://gitfs\-dev\fP\&.
  22020. .IP 2. 3
  22021. For the \fBdev\fP saltenv, files from the first remote will be sourced from
  22022. the \fBdevelopment\fP branch, while files from the second remote will be
  22023. sourced from the \fBdevelop\fP branch.
  22024. .IP 3. 3
  22025. For the \fBstaging\fP saltenv, files from the first remote will be located
  22026. under \fBsalt://bar\-staging\fP, while files from the second remote will be
  22027. located under \fBsalt://baz\-staging\fP\&.
  22028. .IP 4. 3
  22029. For all gitfs remotes, and in all saltenvs, files will be served from the
  22030. \fBsalt\fP directory (and its subdirectories).
  22031. .UNINDENT
  22032. .SS Custom Refspecs
  22033. .sp
  22034. New in version 2017.7.0.
  22035. .sp
  22036. GitFS will by default fetch remote branches and tags. However, sometimes it can
  22037. be useful to fetch custom refs (such as those created for \fI\%GitHub pull
  22038. requests\fP). To change the refspecs GitFS fetches, use the
  22039. \fBgitfs_refspecs\fP config option:
  22040. .INDENT 0.0
  22041. .INDENT 3.5
  22042. .sp
  22043. .nf
  22044. .ft C
  22045. gitfs_refspecs:
  22046. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  22047. \- \(aq+refs/tags/*:refs/tags/*\(aq
  22048. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  22049. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  22050. .ft P
  22051. .fi
  22052. .UNINDENT
  22053. .UNINDENT
  22054. .sp
  22055. In the above example, in addition to fetching remote branches and tags,
  22056. GitHub\(aqs custom refs for pull requests and merged pull requests will also be
  22057. fetched. These special \fBhead\fP refs represent the head of the branch which is
  22058. requesting to be merged, and the \fBmerge\fP refs represent the result of the
  22059. base branch after the merge.
  22060. .sp
  22061. \fBIMPORTANT:\fP
  22062. .INDENT 0.0
  22063. .INDENT 3.5
  22064. When using custom refspecs, the destination of the fetched refs \fImust\fP be
  22065. under \fBrefs/remotes/origin/\fP, preferably in a subdirectory like in the
  22066. example above. These custom refspecs will map as environment names using
  22067. their relative path underneath \fBrefs/remotes/origin/\fP\&. For example,
  22068. assuming the configuration above, the head branch for pull request 12345
  22069. would map to fileserver environment \fBpr/12345\fP (slash included).
  22070. .UNINDENT
  22071. .UNINDENT
  22072. .sp
  22073. Refspecs can be configured on a \fI\%per\-remote basis\fP\&. For example, the below configuration would only
  22074. alter the default refspecs for the \fIsecond\fP GitFS remote. The first remote
  22075. would only fetch branches and tags (the default).
  22076. .INDENT 0.0
  22077. .INDENT 3.5
  22078. .sp
  22079. .nf
  22080. .ft C
  22081. gitfs_remotes:
  22082. \- https://domain.tld/foo.git
  22083. \- https://domain.tld/bar.git:
  22084. \- refspecs:
  22085. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  22086. \- \(aq+refs/tags/*:refs/tags/*\(aq
  22087. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  22088. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  22089. .ft P
  22090. .fi
  22091. .UNINDENT
  22092. .UNINDENT
  22093. .SS Global Remotes
  22094. .sp
  22095. New in version 2018.3.0: for all_saltenvs, 3001 for fallback
  22096. .sp
  22097. The \fBall_saltenvs\fP per\-remote configuration parameter overrides the logic
  22098. Salt uses to map branches/tags to fileserver environments (i.e. saltenvs). This
  22099. allows a single branch/tag to appear in \fIall\fP GitFS saltenvs.
  22100. .sp
  22101. \fBNOTE:\fP
  22102. .INDENT 0.0
  22103. .INDENT 3.5
  22104. \fBall_saltenvs\fP only works \fIwithin\fP GitFS. That is, files in a branch
  22105. configured using \fBall_saltenvs\fP will \fInot\fP show up in a fileserver
  22106. environment defined via some other fileserver backend (e.g.
  22107. \fBfile_roots\fP).
  22108. .UNINDENT
  22109. .UNINDENT
  22110. .sp
  22111. The \fBfallback\fP global or per\-remote configuration can also be used.
  22112. .sp
  22113. This is very useful in particular when working with salt formulas\&. Prior to the addition of this feature, it was necessary
  22114. to push a branch/tag to the remote repo for each saltenv in which that formula
  22115. was to be used. If the formula needed to be updated, this update would need to
  22116. be reflected in all of the other branches/tags. This is both inconvenient and
  22117. not scalable.
  22118. .sp
  22119. With \fBall_saltenvs\fP, it is now possible to define your formula once, in a
  22120. single branch.
  22121. .INDENT 0.0
  22122. .INDENT 3.5
  22123. .sp
  22124. .nf
  22125. .ft C
  22126. gitfs_remotes:
  22127. \- http://foo.com/quux.git:
  22128. \- all_saltenvs: anything
  22129. .ft P
  22130. .fi
  22131. .UNINDENT
  22132. .UNINDENT
  22133. .sp
  22134. If you want to also test working branches of the formula repository, use
  22135. \fBfallback\fP:
  22136. .INDENT 0.0
  22137. .INDENT 3.5
  22138. .sp
  22139. .nf
  22140. .ft C
  22141. gitfs_remotes:
  22142. \- http://foo.com/quux.git:
  22143. \- fallback: anything
  22144. .ft P
  22145. .fi
  22146. .UNINDENT
  22147. .UNINDENT
  22148. .SS Update Intervals
  22149. .sp
  22150. Prior to the 2018.3.0 release, GitFS would update its fileserver backends as part
  22151. of a dedicated "maintenance" process, in which various routine maintenance
  22152. tasks were performed. This tied the update interval to the
  22153. \fBloop_interval\fP config option, and also forced all fileservers to
  22154. update at the same interval.
  22155. .sp
  22156. Now it is possible to make GitFS update at its own interval, using
  22157. \fBgitfs_update_interval\fP:
  22158. .INDENT 0.0
  22159. .INDENT 3.5
  22160. .sp
  22161. .nf
  22162. .ft C
  22163. gitfs_update_interval: 180
  22164. gitfs_remotes:
  22165. \- https://foo.com/foo.git
  22166. \- https://foo.com/bar.git:
  22167. \- update_interval: 120
  22168. .ft P
  22169. .fi
  22170. .UNINDENT
  22171. .UNINDENT
  22172. .sp
  22173. Using the above configuration, the first remote would update every three
  22174. minutes, while the second remote would update every two minutes.
  22175. .SS Configuration Order of Precedence
  22176. .sp
  22177. The order of precedence for GitFS configuration is as follows (each level
  22178. overrides all levels below it):
  22179. .INDENT 0.0
  22180. .IP 1. 3
  22181. Per\-saltenv configuration (defined under a per\-remote \fBsaltenv\fP
  22182. param)
  22183. .INDENT 3.0
  22184. .INDENT 3.5
  22185. .sp
  22186. .nf
  22187. .ft C
  22188. gitfs_remotes:
  22189. \- https://foo.com/bar.git:
  22190. \- saltenv:
  22191. \- dev:
  22192. \- mountpoint: salt://bar
  22193. .ft P
  22194. .fi
  22195. .UNINDENT
  22196. .UNINDENT
  22197. .IP 2. 3
  22198. Global per\-saltenv configuration (defined in \fBgitfs_saltenv\fP)
  22199. .INDENT 3.0
  22200. .INDENT 3.5
  22201. .sp
  22202. .nf
  22203. .ft C
  22204. gitfs_saltenv:
  22205. \- dev:
  22206. \- mountpoint: salt://bar
  22207. .ft P
  22208. .fi
  22209. .UNINDENT
  22210. .UNINDENT
  22211. .IP 3. 3
  22212. Per\-remote configuration parameter
  22213. .INDENT 3.0
  22214. .INDENT 3.5
  22215. .sp
  22216. .nf
  22217. .ft C
  22218. gitfs_remotes:
  22219. \- https://foo.com/bar.git:
  22220. \- mountpoint: salt://bar
  22221. .ft P
  22222. .fi
  22223. .UNINDENT
  22224. .UNINDENT
  22225. .IP 4. 3
  22226. Global configuration parameter
  22227. .INDENT 3.0
  22228. .INDENT 3.5
  22229. .sp
  22230. .nf
  22231. .ft C
  22232. gitfs_mountpoint: salt://bar
  22233. .ft P
  22234. .fi
  22235. .UNINDENT
  22236. .UNINDENT
  22237. .UNINDENT
  22238. .sp
  22239. \fBNOTE:\fP
  22240. .INDENT 0.0
  22241. .INDENT 3.5
  22242. The one exception to the above is when \fI\%all_saltenvs\fP is used. This value overrides all logic for mapping
  22243. branches/tags to fileserver environments. So, even if
  22244. \fBgitfs_saltenv\fP is used to globally override the mapping for a
  22245. given saltenv, \fI\%all_saltenvs\fP would take
  22246. precedence for any remote which uses it.
  22247. .sp
  22248. It\(aqs important to note however that any \fBroot\fP and \fBmountpoint\fP values
  22249. configured in \fBgitfs_saltenv\fP (or \fI\%per\-saltenv
  22250. configuration\fP) would be unaffected by this.
  22251. .UNINDENT
  22252. .UNINDENT
  22253. .SS Serving from a Subdirectory
  22254. .sp
  22255. The \fBgitfs_root\fP parameter allows files to be served from a
  22256. subdirectory within the repository. This allows for only part of a repository
  22257. to be exposed to the Salt fileserver.
  22258. .sp
  22259. Assume the below layout:
  22260. .INDENT 0.0
  22261. .INDENT 3.5
  22262. .sp
  22263. .nf
  22264. .ft C
  22265. \&.gitignore
  22266. README.txt
  22267. foo/
  22268. foo/bar/
  22269. foo/bar/one.txt
  22270. foo/bar/two.txt
  22271. foo/bar/three.txt
  22272. foo/baz/
  22273. foo/baz/top.sls
  22274. foo/baz/edit/vim.sls
  22275. foo/baz/edit/vimrc
  22276. foo/baz/nginx/init.sls
  22277. .ft P
  22278. .fi
  22279. .UNINDENT
  22280. .UNINDENT
  22281. .sp
  22282. The below configuration would serve only the files under \fBfoo/baz\fP, ignoring
  22283. the other files in the repository:
  22284. .INDENT 0.0
  22285. .INDENT 3.5
  22286. .sp
  22287. .nf
  22288. .ft C
  22289. gitfs_remotes:
  22290. \- git://mydomain.com/stuff.git
  22291. gitfs_root: foo/baz
  22292. .ft P
  22293. .fi
  22294. .UNINDENT
  22295. .UNINDENT
  22296. .sp
  22297. The root can also be configured on a \fI\%per\-remote basis\fP\&.
  22298. .SS Mountpoints
  22299. .sp
  22300. New in version 2014.7.0.
  22301. .sp
  22302. The \fBgitfs_mountpoint\fP parameter will prepend the specified path
  22303. to the files served from gitfs. This allows an existing repository to be used,
  22304. rather than needing to reorganize a repository or design it around the layout
  22305. of the Salt fileserver.
  22306. .sp
  22307. Before the addition of this feature, if a file being served up via gitfs was
  22308. deeply nested within the root directory (for example,
  22309. \fBsalt://webapps/foo/files/foo.conf\fP, it would be necessary to ensure that the
  22310. file was properly located in the remote repository, and that all of the
  22311. parent directories were present (for example, the directories
  22312. \fBwebapps/foo/files/\fP would need to exist at the root of the repository).
  22313. .sp
  22314. The below example would allow for a file \fBfoo.conf\fP at the root of the
  22315. repository to be served up from the Salt fileserver path
  22316. \fBsalt://webapps/foo/files/foo.conf\fP\&.
  22317. .INDENT 0.0
  22318. .INDENT 3.5
  22319. .sp
  22320. .nf
  22321. .ft C
  22322. gitfs_remotes:
  22323. \- https://mydomain.com/stuff.git
  22324. gitfs_mountpoint: salt://webapps/foo/files
  22325. .ft P
  22326. .fi
  22327. .UNINDENT
  22328. .UNINDENT
  22329. .sp
  22330. Mountpoints can also be configured on a \fI\%per\-remote basis\fP\&.
  22331. .SS Using gitfs in Masterless Mode
  22332. .sp
  22333. Since 2014.7.0, gitfs can be used in masterless mode. To do so, simply add the
  22334. gitfs configuration parameters (and set \fBfileserver_backend\fP) in
  22335. the _minion_ config file instead of the master config file.
  22336. .SS Using gitfs Alongside Other Backends
  22337. .sp
  22338. Sometimes it may make sense to use multiple backends; for instance, if \fBsls\fP
  22339. files are stored in git but larger files are stored directly on the master.
  22340. .sp
  22341. The cascading lookup logic used for multiple remotes is also used with multiple
  22342. backends. If the \fBfileserver_backend\fP option contains multiple
  22343. backends:
  22344. .INDENT 0.0
  22345. .INDENT 3.5
  22346. .sp
  22347. .nf
  22348. .ft C
  22349. fileserver_backend:
  22350. \- roots
  22351. \- git
  22352. .ft P
  22353. .fi
  22354. .UNINDENT
  22355. .UNINDENT
  22356. .sp
  22357. Then the \fBroots\fP backend (the default backend of files in \fB/srv/salt\fP) will
  22358. be searched first for the requested file; then, if it is not found on the
  22359. master, each configured git remote will be searched.
  22360. .sp
  22361. \fBNOTE:\fP
  22362. .INDENT 0.0
  22363. .INDENT 3.5
  22364. This can be used together with \fIfile_roots\fP accepting \fI__env__\fP as a catch\-all
  22365. environment, since 2018.3.5 and 2019.2.1:
  22366. .INDENT 0.0
  22367. .INDENT 3.5
  22368. .sp
  22369. .nf
  22370. .ft C
  22371. file_roots:
  22372. base:
  22373. \- /srv/salt
  22374. __env__:
  22375. \- /srv/salt
  22376. .ft P
  22377. .fi
  22378. .UNINDENT
  22379. .UNINDENT
  22380. .UNINDENT
  22381. .UNINDENT
  22382. .SS Branches, Environments, and Top Files
  22383. .sp
  22384. When using the GitFS backend, branches, and tags will be mapped to environments
  22385. using the branch/tag name as an identifier.
  22386. .sp
  22387. There is one exception to this rule: the \fBmaster\fP branch is implicitly mapped
  22388. to the \fBbase\fP environment.
  22389. .sp
  22390. So, for a typical \fBbase\fP, \fBqa\fP, \fBdev\fP setup, the following branches could
  22391. be used:
  22392. .INDENT 0.0
  22393. .INDENT 3.5
  22394. .sp
  22395. .nf
  22396. .ft C
  22397. master
  22398. qa
  22399. dev
  22400. .ft P
  22401. .fi
  22402. .UNINDENT
  22403. .UNINDENT
  22404. .sp
  22405. \fBtop.sls\fP files from different branches will be merged into one at runtime.
  22406. Since this can lead to overly complex configurations, the recommended setup is
  22407. to have a separate repository, containing only the \fBtop.sls\fP file with just
  22408. one single \fBmaster\fP branch.
  22409. .sp
  22410. To map a branch other than \fBmaster\fP as the \fBbase\fP environment, use the
  22411. \fBgitfs_base\fP parameter.
  22412. .INDENT 0.0
  22413. .INDENT 3.5
  22414. .sp
  22415. .nf
  22416. .ft C
  22417. gitfs_base: salt\-base
  22418. .ft P
  22419. .fi
  22420. .UNINDENT
  22421. .UNINDENT
  22422. .sp
  22423. The base can also be configured on a \fI\%per\-remote basis\fP\&.
  22424. .SS Environment Whitelist/Blacklist
  22425. .sp
  22426. New in version 2014.7.0.
  22427. .sp
  22428. The \fBgitfs_saltenv_whitelist\fP and
  22429. \fBgitfs_saltenv_blacklist\fP parameters allow for greater control
  22430. over which branches/tags are exposed as fileserver environments. Exact matches,
  22431. globs, and regular expressions are supported, and are evaluated in that order.
  22432. If using a regular expression, \fB^\fP and \fB$\fP must be omitted, and the
  22433. expression must match the entire branch/tag.
  22434. .INDENT 0.0
  22435. .INDENT 3.5
  22436. .sp
  22437. .nf
  22438. .ft C
  22439. gitfs_saltenv_whitelist:
  22440. \- base
  22441. \- v1.*
  22442. \- \(aqmybranch\ed+\(aq
  22443. .ft P
  22444. .fi
  22445. .UNINDENT
  22446. .UNINDENT
  22447. .sp
  22448. \fBNOTE:\fP
  22449. .INDENT 0.0
  22450. .INDENT 3.5
  22451. \fBv1.*\fP, in this example, will match as both a glob and a regular
  22452. expression (though it will have been matched as a glob, since globs are
  22453. evaluated before regular expressions).
  22454. .UNINDENT
  22455. .UNINDENT
  22456. .sp
  22457. The behavior of the blacklist/whitelist will differ depending on which
  22458. combination of the two options is used:
  22459. .INDENT 0.0
  22460. .IP \(bu 2
  22461. If only \fBgitfs_saltenv_whitelist\fP is used, then \fBonly\fP
  22462. branches/tags which match the whitelist will be available as environments
  22463. .IP \(bu 2
  22464. If only \fBgitfs_saltenv_blacklist\fP is used, then the
  22465. branches/tags which match the blacklist will \fBnot\fP be available as
  22466. environments
  22467. .IP \(bu 2
  22468. If both are used, then the branches/tags which match the whitelist, but do
  22469. \fBnot\fP match the blacklist, will be available as environments.
  22470. .UNINDENT
  22471. .SS Authentication
  22472. .SS pygit2
  22473. .sp
  22474. New in version 2014.7.0.
  22475. .sp
  22476. Both HTTPS and SSH authentication are supported as of version 0.20.3, which is
  22477. the earliest version of \fI\%pygit2\fP supported by Salt for gitfs.
  22478. .sp
  22479. \fBNOTE:\fP
  22480. .INDENT 0.0
  22481. .INDENT 3.5
  22482. The examples below make use of per\-remote configuration parameters, a
  22483. feature new to Salt 2014.7.0. More information on these can be found
  22484. \fI\%here\fP\&.
  22485. .UNINDENT
  22486. .UNINDENT
  22487. .SS HTTPS
  22488. .sp
  22489. For HTTPS repositories which require authentication, the username and password
  22490. can be provided like so:
  22491. .INDENT 0.0
  22492. .INDENT 3.5
  22493. .sp
  22494. .nf
  22495. .ft C
  22496. gitfs_remotes:
  22497. \- https://domain.tld/myrepo.git:
  22498. \- user: git
  22499. \- password: mypassword
  22500. .ft P
  22501. .fi
  22502. .UNINDENT
  22503. .UNINDENT
  22504. .sp
  22505. If the repository is served over HTTP instead of HTTPS, then Salt will by
  22506. default refuse to authenticate to it. This behavior can be overridden by adding
  22507. an \fBinsecure_auth\fP parameter:
  22508. .INDENT 0.0
  22509. .INDENT 3.5
  22510. .sp
  22511. .nf
  22512. .ft C
  22513. gitfs_remotes:
  22514. \- http://domain.tld/insecure_repo.git:
  22515. \- user: git
  22516. \- password: mypassword
  22517. \- insecure_auth: True
  22518. .ft P
  22519. .fi
  22520. .UNINDENT
  22521. .UNINDENT
  22522. .SS SSH
  22523. .sp
  22524. SSH repositories can be configured using the \fBssh://\fP protocol designation,
  22525. or using scp\-like syntax. So, the following two configurations are equivalent:
  22526. .INDENT 0.0
  22527. .IP \(bu 2
  22528. \fBssh://git@github.com/user/repo.git\fP
  22529. .IP \(bu 2
  22530. \fBgit@github.com:user/repo.git\fP
  22531. .UNINDENT
  22532. .sp
  22533. Both \fBgitfs_pubkey\fP and \fBgitfs_privkey\fP (or their
  22534. \fI\%per\-remote counterparts\fP) must be configured in
  22535. order to authenticate to SSH\-based repos. If the private key is protected with
  22536. a passphrase, it can be configured using \fBgitfs_passphrase\fP (or
  22537. simply \fBpassphrase\fP if being configured \fI\%per\-remote\fP). For example:
  22538. .INDENT 0.0
  22539. .INDENT 3.5
  22540. .sp
  22541. .nf
  22542. .ft C
  22543. gitfs_remotes:
  22544. \- git@github.com:user/repo.git:
  22545. \- pubkey: /root/.ssh/id_rsa.pub
  22546. \- privkey: /root/.ssh/id_rsa
  22547. \- passphrase: myawesomepassphrase
  22548. .ft P
  22549. .fi
  22550. .UNINDENT
  22551. .UNINDENT
  22552. .sp
  22553. Finally, the SSH host key must be \fI\%added to the known_hosts file\fP\&.
  22554. .sp
  22555. \fBNOTE:\fP
  22556. .INDENT 0.0
  22557. .INDENT 3.5
  22558. There is a known issue with public\-key SSH authentication to Microsoft
  22559. Visual Studio (VSTS) with pygit2. This is due to a bug or lack of support
  22560. for VSTS in older libssh2 releases. Known working releases include libssh2
  22561. 1.7.0 and later, and known incompatible releases include 1.5.0 and older.
  22562. At the time of this writing, 1.6.0 has not been tested.
  22563. .sp
  22564. Since upgrading libssh2 would require rebuilding many other packages (curl,
  22565. etc.), followed by a rebuild of libgit2 and a reinstall of pygit2, an
  22566. easier workaround for systems with older libssh2 is to use GitPython with a
  22567. passphraseless key for authentication.
  22568. .UNINDENT
  22569. .UNINDENT
  22570. .SS GitPython
  22571. .SS HTTPS
  22572. .sp
  22573. For HTTPS repositories which require authentication, the username and password
  22574. can be configured in one of two ways. The first way is to include them in the
  22575. URL using the format \fBhttps://<user>:<password>@<url>\fP, like so:
  22576. .INDENT 0.0
  22577. .INDENT 3.5
  22578. .sp
  22579. .nf
  22580. .ft C
  22581. gitfs_remotes:
  22582. \- https://git:mypassword@domain.tld/myrepo.git
  22583. .ft P
  22584. .fi
  22585. .UNINDENT
  22586. .UNINDENT
  22587. .sp
  22588. The other way would be to configure the authentication in \fB~/.netrc\fP:
  22589. .INDENT 0.0
  22590. .INDENT 3.5
  22591. .sp
  22592. .nf
  22593. .ft C
  22594. machine domain.tld
  22595. login git
  22596. password mypassword
  22597. .ft P
  22598. .fi
  22599. .UNINDENT
  22600. .UNINDENT
  22601. .sp
  22602. If the repository is served over HTTP instead of HTTPS, then Salt will by
  22603. default refuse to authenticate to it. This behavior can be overridden by adding
  22604. an \fBinsecure_auth\fP parameter:
  22605. .INDENT 0.0
  22606. .INDENT 3.5
  22607. .sp
  22608. .nf
  22609. .ft C
  22610. gitfs_remotes:
  22611. \- http://git:mypassword@domain.tld/insecure_repo.git:
  22612. \- insecure_auth: True
  22613. .ft P
  22614. .fi
  22615. .UNINDENT
  22616. .UNINDENT
  22617. .SS SSH
  22618. .sp
  22619. Only passphrase\-less SSH public key authentication is supported using
  22620. GitPython. \fBThe auth parameters (pubkey, privkey, etc.) shown in the pygit2
  22621. authentication examples above do not work with GitPython.\fP
  22622. .INDENT 0.0
  22623. .INDENT 3.5
  22624. .sp
  22625. .nf
  22626. .ft C
  22627. gitfs_remotes:
  22628. \- ssh://git@github.com/example/salt\-states.git
  22629. .ft P
  22630. .fi
  22631. .UNINDENT
  22632. .UNINDENT
  22633. .sp
  22634. Since \fI\%GitPython\fP wraps the git CLI, the private key must be located in
  22635. \fB~/.ssh/id_rsa\fP for the user under which the Master is running, and should
  22636. have permissions of \fB0600\fP\&. Also, in the absence of a user in the repo URL,
  22637. \fI\%GitPython\fP will (just as SSH does) attempt to login as the current user (in
  22638. other words, the user under which the Master is running, usually \fBroot\fP).
  22639. .sp
  22640. If a key needs to be used, then \fB~/.ssh/config\fP can be configured to use
  22641. the desired key. Information on how to do this can be found by viewing the
  22642. manpage for \fBssh_config\fP\&. Here\(aqs an example entry which can be added to the
  22643. \fB~/.ssh/config\fP to use an alternate key for gitfs:
  22644. .INDENT 0.0
  22645. .INDENT 3.5
  22646. .sp
  22647. .nf
  22648. .ft C
  22649. Host github.com
  22650. IdentityFile /root/.ssh/id_rsa_gitfs
  22651. .ft P
  22652. .fi
  22653. .UNINDENT
  22654. .UNINDENT
  22655. .sp
  22656. The \fBHost\fP parameter should be a hostname (or hostname glob) that matches the
  22657. domain name of the git repository.
  22658. .sp
  22659. 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
  22660. checking is disabled, which can be done by adding \fBStrictHostKeyChecking no\fP
  22661. to the entry in \fB~/.ssh/config\fP
  22662. .INDENT 0.0
  22663. .INDENT 3.5
  22664. .sp
  22665. .nf
  22666. .ft C
  22667. Host github.com
  22668. IdentityFile /root/.ssh/id_rsa_gitfs
  22669. StrictHostKeyChecking no
  22670. .ft P
  22671. .fi
  22672. .UNINDENT
  22673. .UNINDENT
  22674. .sp
  22675. However, this is generally regarded as insecure, and is not recommended.
  22676. .SS Adding the SSH Host Key to the known_hosts File
  22677. .sp
  22678. To use SSH authentication, it is necessary to have the remote repository\(aqs SSH
  22679. host key in the \fB~/.ssh/known_hosts\fP file. If the master is also a minion,
  22680. this can be done using the \fBssh.set_known_host\fP function:
  22681. .INDENT 0.0
  22682. .INDENT 3.5
  22683. .sp
  22684. .nf
  22685. .ft C
  22686. # salt mymaster ssh.set_known_host user=root hostname=github.com
  22687. mymaster:
  22688. \-\-\-\-\-\-\-\-\-\-
  22689. new:
  22690. \-\-\-\-\-\-\-\-\-\-
  22691. enc:
  22692. ssh\-rsa
  22693. fingerprint:
  22694. 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
  22695. hostname:
  22696. |1|OiefWWqOD4kwO3BhoIGa0loR5AA=|BIXVtmcTbPER+68HvXmceodDcfI=
  22697. key:
  22698. AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
  22699. old:
  22700. None
  22701. status:
  22702. updated
  22703. .ft P
  22704. .fi
  22705. .UNINDENT
  22706. .UNINDENT
  22707. .sp
  22708. If not, then the easiest way to add the key is to su to the user (usually
  22709. \fBroot\fP) under which the salt\-master runs and attempt to login to the
  22710. server via SSH:
  22711. .INDENT 0.0
  22712. .INDENT 3.5
  22713. .sp
  22714. .nf
  22715. .ft C
  22716. $ su \-
  22717. Password:
  22718. # ssh github.com
  22719. The authenticity of host \(aqgithub.com (192.30.252.128)\(aq can\(aqt be established.
  22720. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
  22721. Are you sure you want to continue connecting (yes/no)? yes
  22722. Warning: Permanently added \(aqgithub.com,192.30.252.128\(aq (RSA) to the list of known hosts.
  22723. Permission denied (publickey).
  22724. .ft P
  22725. .fi
  22726. .UNINDENT
  22727. .UNINDENT
  22728. .sp
  22729. It doesn\(aqt matter if the login was successful, as answering \fByes\fP will write
  22730. the fingerprint to the known_hosts file.
  22731. .SS Verifying the Fingerprint
  22732. .sp
  22733. To verify that the correct fingerprint was added, it is a good idea to look it
  22734. up. One way to do this is to use \fBnmap\fP:
  22735. .INDENT 0.0
  22736. .INDENT 3.5
  22737. .sp
  22738. .nf
  22739. .ft C
  22740. $ nmap \-p 22 github.com \-\-script ssh\-hostkey
  22741. Starting Nmap 5.51 ( http://nmap.org ) at 2014\-08\-18 17:47 CDT
  22742. Nmap scan report for github.com (192.30.252.129)
  22743. Host is up (0.17s latency).
  22744. Not shown: 996 filtered ports
  22745. PORT STATE SERVICE
  22746. 22/tcp open ssh
  22747. | ssh\-hostkey: 1024 ad:1c:08:a4:40:e3:6f:9c:f5:66:26:5d:4b:33:5d:8c (DSA)
  22748. |_2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 (RSA)
  22749. 80/tcp open http
  22750. 443/tcp open https
  22751. 9418/tcp open git
  22752. Nmap done: 1 IP address (1 host up) scanned in 28.78 seconds
  22753. .ft P
  22754. .fi
  22755. .UNINDENT
  22756. .UNINDENT
  22757. .sp
  22758. Another way is to check one\(aqs own \fBknown_hosts\fP file, using this one\-liner:
  22759. .INDENT 0.0
  22760. .INDENT 3.5
  22761. .sp
  22762. .nf
  22763. .ft C
  22764. $ ssh\-keygen \-l \-f /dev/stdin <<<\(gassh\-keyscan github.com 2>/dev/null\(ga | awk \(aq{print $2}\(aq
  22765. 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
  22766. .ft P
  22767. .fi
  22768. .UNINDENT
  22769. .UNINDENT
  22770. .sp
  22771. \fBWARNING:\fP
  22772. .INDENT 0.0
  22773. .INDENT 3.5
  22774. AWS tracks usage of nmap and may flag it as abuse. On AWS hosts, the
  22775. \fBssh\-keygen\fP method is recommended for host key verification.
  22776. .UNINDENT
  22777. .UNINDENT
  22778. .sp
  22779. \fBNOTE:\fP
  22780. .INDENT 0.0
  22781. .INDENT 3.5
  22782. As of \fI\%OpenSSH 6.8\fP the SSH fingerprint is now shown as a base64\-encoded
  22783. SHA256 checksum of the host key. So, instead of the fingerprint looking
  22784. like \fB16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48\fP, it would look
  22785. like \fBSHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8\fP\&.
  22786. .UNINDENT
  22787. .UNINDENT
  22788. .SS Refreshing gitfs Upon Push
  22789. .sp
  22790. By default, Salt updates the remote fileserver backends every 60 seconds.
  22791. However, if it is desirable to refresh quicker than that, the Reactor
  22792. System can be used to signal the master to update the fileserver on
  22793. each push, provided that the git server is also a Salt minion. There are three
  22794. steps to this process:
  22795. .INDENT 0.0
  22796. .IP 1. 3
  22797. On the master, create a file \fB/srv/reactor/update_fileserver.sls\fP, with
  22798. the following contents:
  22799. .INDENT 3.0
  22800. .INDENT 3.5
  22801. .sp
  22802. .nf
  22803. .ft C
  22804. update_fileserver:
  22805. runner.fileserver.update
  22806. .ft P
  22807. .fi
  22808. .UNINDENT
  22809. .UNINDENT
  22810. .IP 2. 3
  22811. Add the following reactor configuration to the master config file:
  22812. .INDENT 3.0
  22813. .INDENT 3.5
  22814. .sp
  22815. .nf
  22816. .ft C
  22817. reactor:
  22818. \- \(aqsalt/fileserver/gitfs/update\(aq:
  22819. \- /srv/reactor/update_fileserver.sls
  22820. .ft P
  22821. .fi
  22822. .UNINDENT
  22823. .UNINDENT
  22824. .IP 3. 3
  22825. On the git server, add a \fI\%post\-receive hook\fP
  22826. .INDENT 3.0
  22827. .IP a. 3
  22828. If the user executing \fIgit push\fP is the same as the minion user, use the following hook:
  22829. .UNINDENT
  22830. .INDENT 3.0
  22831. .INDENT 3.5
  22832. .INDENT 0.0
  22833. .INDENT 3.5
  22834. .sp
  22835. .nf
  22836. .ft C
  22837. #!/usr/bin/env sh
  22838. salt\-call event.fire_master update salt/fileserver/gitfs/update
  22839. .ft P
  22840. .fi
  22841. .UNINDENT
  22842. .UNINDENT
  22843. .UNINDENT
  22844. .UNINDENT
  22845. .INDENT 3.0
  22846. .IP b. 3
  22847. To enable other git users to run the hook after a \fIpush\fP, use sudo in the hook script:
  22848. .UNINDENT
  22849. .INDENT 3.0
  22850. .INDENT 3.5
  22851. .INDENT 0.0
  22852. .INDENT 3.5
  22853. .sp
  22854. .nf
  22855. .ft C
  22856. #!/usr/bin/env sh
  22857. sudo \-u root salt\-call event.fire_master update salt/fileserver/gitfs/update
  22858. .ft P
  22859. .fi
  22860. .UNINDENT
  22861. .UNINDENT
  22862. .UNINDENT
  22863. .UNINDENT
  22864. .IP 4. 3
  22865. If using sudo in the git hook (above), the policy must be changed to permit
  22866. all users to fire the event. Add the following policy to the sudoers file
  22867. on the git server.
  22868. .INDENT 3.0
  22869. .INDENT 3.5
  22870. .sp
  22871. .nf
  22872. .ft C
  22873. Cmnd_Alias SALT_GIT_HOOK = /bin/salt\-call event.fire_master update salt/fileserver/gitfs/update
  22874. Defaults!SALT_GIT_HOOK !requiretty
  22875. ALL ALL=(root) NOPASSWD: SALT_GIT_HOOK
  22876. .ft P
  22877. .fi
  22878. .UNINDENT
  22879. .UNINDENT
  22880. .UNINDENT
  22881. .sp
  22882. The \fBupdate\fP argument right after \fBevent.fire_master\fP in this example can really be anything, as it
  22883. represents the data being passed in the event, and the passed data is ignored
  22884. by this reactor.
  22885. .sp
  22886. Similarly, the tag name \fBsalt/fileserver/gitfs/update\fP can be replaced by
  22887. anything, so long as the usage is consistent.
  22888. .sp
  22889. The \fBroot\fP user name in the hook script and sudo policy should be changed to
  22890. match the user under which the minion is running.
  22891. .SS Using Git as an External Pillar Source
  22892. .sp
  22893. The git external pillar (a.k.a. git_pillar) has been rewritten for the 2015.8.0
  22894. release. This rewrite brings with it \fI\%pygit2\fP support (allowing for access to
  22895. authenticated repositories), as well as more granular support for per\-remote
  22896. configuration. This configuration schema is detailed here\&.
  22897. .SS Why aren\(aqt my custom modules/states/etc. syncing to my Minions?
  22898. .sp
  22899. In versions 0.16.3 and older, when using the \fBgit fileserver backend\fP, certain versions of GitPython may generate errors
  22900. when fetching, which Salt fails to catch. While not fatal to the fetch process,
  22901. these interrupt the fileserver update that takes place before custom types are
  22902. synced, and thus interrupt the sync itself. Try disabling the git fileserver
  22903. backend in the master config, restarting the master, and attempting the sync
  22904. again.
  22905. .sp
  22906. This issue is worked around in Salt 0.16.4 and newer.
  22907. .SS MinionFS Backend Walkthrough
  22908. .sp
  22909. New in version 2014.1.0.
  22910. .sp
  22911. \fBNOTE:\fP
  22912. .INDENT 0.0
  22913. .INDENT 3.5
  22914. This walkthrough assumes basic knowledge of Salt and \fBcp.push\fP\&. To get up to speed, check out the
  22915. Salt Walkthrough\&.
  22916. .UNINDENT
  22917. .UNINDENT
  22918. .sp
  22919. Sometimes it is desirable to deploy a file located on one minion to one or more
  22920. other minions. This is supported in Salt, and can be accomplished in two parts:
  22921. .INDENT 0.0
  22922. .IP 1. 3
  22923. Minion support for pushing files to the master (using \fBcp.push\fP)
  22924. .IP 2. 3
  22925. The \fBminionfs\fP fileserver backend
  22926. .UNINDENT
  22927. .sp
  22928. This walkthrough will show how to use both of these features.
  22929. .SS Enabling File Push
  22930. .sp
  22931. To set the master to accept files pushed from minions, the
  22932. \fBfile_recv\fP option in the master config file must be set to
  22933. \fBTrue\fP (the default is \fBFalse\fP).
  22934. .INDENT 0.0
  22935. .INDENT 3.5
  22936. .sp
  22937. .nf
  22938. .ft C
  22939. file_recv: True
  22940. .ft P
  22941. .fi
  22942. .UNINDENT
  22943. .UNINDENT
  22944. .sp
  22945. \fBNOTE:\fP
  22946. .INDENT 0.0
  22947. .INDENT 3.5
  22948. This change requires a restart of the salt\-master service.
  22949. .UNINDENT
  22950. .UNINDENT
  22951. .SS Pushing Files
  22952. .sp
  22953. Once this has been done, files can be pushed to the master using the
  22954. \fBcp.push\fP function:
  22955. .INDENT 0.0
  22956. .INDENT 3.5
  22957. .sp
  22958. .nf
  22959. .ft C
  22960. salt \(aqminion\-id\(aq cp.push /path/to/the/file
  22961. .ft P
  22962. .fi
  22963. .UNINDENT
  22964. .UNINDENT
  22965. .sp
  22966. This command will store the file in a subdirectory named \fBminions\fP under the
  22967. master\(aqs \fBcachedir\fP\&. On most masters, this path will be
  22968. \fB/var/cache/salt/master/minions\fP\&. Within this directory will be one directory
  22969. for each minion which has pushed a file to the master, and underneath that the
  22970. full path to the file on the minion. So, for example, if a minion with an ID of
  22971. \fBdev1\fP pushed a file \fB/var/log/myapp.log\fP to the master, it would be saved
  22972. to \fB/var/cache/salt/master/minions/dev1/var/log/myapp.log\fP\&.
  22973. .SS Serving Pushed Files Using MinionFS
  22974. .sp
  22975. While it is certainly possible to add \fB/var/cache/salt/master/minions\fP to the
  22976. master\(aqs \fBfile_roots\fP and serve these files, it may only be
  22977. desirable to expose files pushed from certain minions. Adding
  22978. \fB/var/cache/salt/master/minions/<minion\-id>\fP for each minion that needs to be
  22979. exposed can be cumbersome and prone to errors.
  22980. .sp
  22981. Enter \fBminionfs\fP\&. This fileserver backend will
  22982. make files pushed using \fBcp.push\fP available to
  22983. the Salt fileserver, and provides an easy mechanism to restrict which minions\(aq
  22984. pushed files are made available.
  22985. .SS Simple Configuration
  22986. .sp
  22987. To use the \fBminionfs\fP backend, add \fBminionfs\fP
  22988. to the list of backends in the \fBfileserver_backend\fP configuration
  22989. option on the master:
  22990. .INDENT 0.0
  22991. .INDENT 3.5
  22992. .sp
  22993. .nf
  22994. .ft C
  22995. file_recv: True
  22996. fileserver_backend:
  22997. \- roots
  22998. \- minionfs
  22999. .ft P
  23000. .fi
  23001. .UNINDENT
  23002. .UNINDENT
  23003. .sp
  23004. \fBNOTE:\fP
  23005. .INDENT 0.0
  23006. .INDENT 3.5
  23007. \fBminion\fP also works here. Prior to the 2018.3.0 release, \fIonly\fP
  23008. \fBminion\fP would work.
  23009. .sp
  23010. Also, as described earlier, \fBfile_recv: True\fP is needed to enable the
  23011. master to receive files pushed from minions. As always, changes to the
  23012. master configuration require a restart of the \fBsalt\-master\fP service.
  23013. .UNINDENT
  23014. .UNINDENT
  23015. .sp
  23016. Files made available via \fBminionfs\fP are by
  23017. default located at \fBsalt://<minion\-id>/path/to/file\fP\&. Think back to the
  23018. earlier example, in which \fBdev1\fP pushed a file \fB/var/log/myapp.log\fP to the
  23019. master. With \fBminionfs\fP enabled, this file
  23020. would be addressable in Salt at \fBsalt://dev1/var/log/myapp.log\fP\&.
  23021. .sp
  23022. If many minions have pushed to the master, this will result in many directories
  23023. in the root of the Salt fileserver. For this reason, it is recommended to use
  23024. the \fBminionfs_mountpoint\fP config option to organize these files
  23025. underneath a subdirectory:
  23026. .INDENT 0.0
  23027. .INDENT 3.5
  23028. .sp
  23029. .nf
  23030. .ft C
  23031. minionfs_mountpoint: salt://minionfs
  23032. .ft P
  23033. .fi
  23034. .UNINDENT
  23035. .UNINDENT
  23036. .sp
  23037. Using the above mountpoint, the file in the example would be located at
  23038. \fBsalt://minionfs/dev1/var/log/myapp.log\fP\&.
  23039. .SS Restricting Certain Minions\(aq Files from Being Available Via MinionFS
  23040. .sp
  23041. A whitelist and blacklist can be used to restrict the minions whose pushed
  23042. files are available via \fBminionfs\fP\&. These lists
  23043. can be managed using the \fBminionfs_whitelist\fP and
  23044. \fBminionfs_blacklist\fP config options. Click the links for both of
  23045. them for a detailed explanation of how to use them.
  23046. .sp
  23047. A more complex configuration example, which uses both a whitelist and
  23048. blacklist, can be found below:
  23049. .INDENT 0.0
  23050. .INDENT 3.5
  23051. .sp
  23052. .nf
  23053. .ft C
  23054. file_recv: True
  23055. fileserver_backend:
  23056. \- roots
  23057. \- minionfs
  23058. minionfs_mountpoint: salt://minionfs
  23059. minionfs_whitelist:
  23060. \- host04
  23061. \- web*
  23062. \- \(aqmail\ed+\e.domain\e.tld\(aq
  23063. minionfs_blacklist:
  23064. \- web21
  23065. .ft P
  23066. .fi
  23067. .UNINDENT
  23068. .UNINDENT
  23069. .SS Potential Concerns
  23070. .INDENT 0.0
  23071. .IP \(bu 2
  23072. There is no access control in place to restrict which minions have access to
  23073. files served up by \fBminionfs\fP\&. All minions
  23074. will have access to these files.
  23075. .IP \(bu 2
  23076. Unless the \fBminionfs_whitelist\fP and/or
  23077. \fBminionfs_blacklist\fP config options are used, all minions which
  23078. push files to the master will have their files made available via
  23079. \fBminionfs\fP\&.
  23080. .UNINDENT
  23081. .SS Salt Package Manager
  23082. .sp
  23083. The Salt Package Manager, or SPM, enables Salt formulas to be packaged to simplify
  23084. distribution to Salt masters. The design of SPM was influenced by other existing packaging
  23085. systems including RPM, Yum, and Pacman.
  23086. [image]
  23087. .sp
  23088. \fBNOTE:\fP
  23089. .INDENT 0.0
  23090. .INDENT 3.5
  23091. The previous diagram shows each SPM component as a different system, but this
  23092. is not required. You can build packages and host the SPM repo on
  23093. a single Salt master if you\(aqd like.
  23094. .UNINDENT
  23095. .UNINDENT
  23096. .sp
  23097. \fBPackaging System\fP
  23098. .sp
  23099. The packaging system is used to package the state, pillar, file templates, and other
  23100. files used by your formula into a single file. After a formula package is
  23101. created, it is copied to the Repository System where it is made available to
  23102. Salt masters.
  23103. .sp
  23104. See Building SPM Packages
  23105. .sp
  23106. \fBRepo System\fP
  23107. .sp
  23108. The Repo system stores the SPM package and metadata files and makes them
  23109. available to Salt masters via http(s), ftp, or file URLs. SPM repositories can be
  23110. hosted on a Salt Master, a Salt Minion, or on another system.
  23111. .sp
  23112. See Distributing SPM Packages
  23113. .sp
  23114. \fBSalt Master\fP
  23115. .sp
  23116. SPM provides Salt master settings that let you configure the URL of one or more
  23117. SPM repos. You can then quickly install packages that contain entire formulas
  23118. to your Salt masters using SPM.
  23119. .sp
  23120. See Installing SPM Packages
  23121. .sp
  23122. \fBContents\fP
  23123. .SS Building SPM Packages
  23124. .sp
  23125. The first step when using Salt Package Manager is to build packages for each of
  23126. of the formulas that you want to distribute. Packages can be built on any
  23127. system where you can install Salt.
  23128. .SS Package Build Overview
  23129. .sp
  23130. To build a package, all state, pillar, jinja, and file templates used by your
  23131. formula are assembled into a folder on the build system. These files can be
  23132. cloned from a Git repository, such as those found at the \fI\%saltstack\-formulas\fP organization on GitHub, or copied
  23133. directly to the folder.
  23134. .sp
  23135. The following diagram demonstrates
  23136. a typical formula layout on the build system:
  23137. [image]
  23138. .sp
  23139. In this example, all formula files are placed in a \fBmyapp\-formula\fP folder.
  23140. This is the folder that is targeted by the \fBspm build\fP command when this
  23141. package is built.
  23142. .sp
  23143. Within this folder, pillar data is placed in
  23144. a \fBpillar.example\fP file at the root, and all state, jinja, and template files
  23145. are placed within a subfolder that is named after the application being
  23146. packaged. State files are typically contained within a subfolder, similar to
  23147. how state files are organized in the state tree. Any non\-pillar files
  23148. in your package that are not contained in a subfolder are placed at the root
  23149. of the spm state tree.
  23150. .sp
  23151. Additionally, a FORMULA file is created and placed in the
  23152. root of the folder. This file contains package metadata that is used by SPM.
  23153. .SS Package Installation Overview
  23154. .sp
  23155. When building packages, it is useful to know where files are installed on the
  23156. Salt master. During installation, all files except \fBpillar.example\fP and \fBFORMULA\fP are copied
  23157. directly to the spm state tree on the Salt master (located at
  23158. \fB\esrv\espm\esalt\fP).
  23159. .sp
  23160. If a \fBpillar.example\fP file is present in the root, it is renamed to
  23161. \fB<formula name>.sls.orig\fP and placed in the \fBpillar_path\fP\&.
  23162. [image]
  23163. .sp
  23164. \fBNOTE:\fP
  23165. .INDENT 0.0
  23166. .INDENT 3.5
  23167. Even though the pillar data file is copied to the pillar root, you still
  23168. need to manually assign this pillar data to systems using the pillar top
  23169. file. This file can also be duplicated and renamed so the \fB\&.orig\fP
  23170. version is left intact in case you need to restore it later.
  23171. .UNINDENT
  23172. .UNINDENT
  23173. .SS Building an SPM Formula Package
  23174. .INDENT 0.0
  23175. .IP 1. 3
  23176. Assemble formula files in a folder on the build system.
  23177. .IP 2. 3
  23178. Create a FORMULA file and place it in the root of the package folder.
  23179. .IP 3. 3
  23180. Run \fBspm build <folder name>\fP\&. The package is built and placed in the \fB/srv/spm_build\fP folder.
  23181. .INDENT 3.0
  23182. .INDENT 3.5
  23183. .sp
  23184. .nf
  23185. .ft C
  23186. spm build /path/to/salt\-packages\-source/myapp\-formula
  23187. .ft P
  23188. .fi
  23189. .UNINDENT
  23190. .UNINDENT
  23191. .IP 4. 3
  23192. Copy the \fB\&.spm\fP file to a folder on the repository system\&.
  23193. .UNINDENT
  23194. .SS Types of Packages
  23195. .sp
  23196. SPM supports different types of packages. The function of each package
  23197. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23198. considered to be Salt States (the most common type of formula). Packages which
  23199. end in \fB\-conf\fP contain configuration which is to be placed in the
  23200. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23201. treated as if they have a \fB\-formula\fP name.
  23202. .SS formula
  23203. .sp
  23204. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23205. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23206. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23207. by default).
  23208. .SS reactor
  23209. .sp
  23210. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23211. directory.
  23212. .SS conf
  23213. .sp
  23214. The files in this type of package are configuration files for Salt, which
  23215. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23216. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23217. type of package).
  23218. .SS Technical Information
  23219. .sp
  23220. Packages are built using BZ2\-compressed tarballs. By default, the package
  23221. database is stored using the \fBsqlite3\fP driver (see Loader Modules below).
  23222. .sp
  23223. Support for these are built into Python, and so no external dependencies are
  23224. needed.
  23225. .sp
  23226. All other files belonging to SPM use YAML, for portability and ease of use and
  23227. maintainability.
  23228. .SS SPM\-Specific Loader Modules
  23229. .sp
  23230. SPM was designed to behave like traditional package managers, which apply files
  23231. to the filesystem and store package metadata in a local database. However,
  23232. because modern infrastructures often extend beyond those use cases, certain
  23233. parts of SPM have been broken out into their own set of modules.
  23234. .SS Package Database
  23235. .sp
  23236. By default, the package database is stored using the \fBsqlite3\fP module. This
  23237. module was chosen because support for SQLite3 is built into Python itself.
  23238. .sp
  23239. Please see the SPM Development Guide for information on creating new modules
  23240. for package database management.
  23241. .SS Package Files
  23242. .sp
  23243. By default, package files are installed using the \fBlocal\fP module. This module
  23244. applies files to the local filesystem, on the machine that the package is
  23245. installed on.
  23246. .sp
  23247. Please see the SPM Development Guide for information
  23248. on creating new modules for package file management.
  23249. .SS Distributing SPM Packages
  23250. .sp
  23251. SPM packages can be distributed to Salt masters over HTTP(S), FTP, or through the
  23252. file system. The SPM repo can be hosted on any system where you can install
  23253. Salt. Salt is installed so you can run the \fBspm create_repo\fP command when you
  23254. update or add a package to the repo. SPM repos do not require the salt\-master,
  23255. salt\-minion, or any other process running on the system.
  23256. .sp
  23257. \fBNOTE:\fP
  23258. .INDENT 0.0
  23259. .INDENT 3.5
  23260. If you are hosting the SPM repo on a system where you can not or do not
  23261. want to install Salt, you can run the \fBspm create_repo\fP command on the
  23262. build system and then copy the packages and the generated \fBSPM\-METADATA\fP
  23263. file to the repo. You can also install SPM files directly on a Salt
  23264. master, bypassing the repository completely.
  23265. .UNINDENT
  23266. .UNINDENT
  23267. .SS Setting up a Package Repository
  23268. .sp
  23269. After packages are built, the generated SPM files are placed in the
  23270. \fBsrv/spm_build\fP folder.
  23271. .sp
  23272. Where you place the built SPM files on your repository server depends on how
  23273. you plan to make them available to your Salt masters.
  23274. .sp
  23275. You can share the \fBsrv/spm_build\fP folder on the network, or copy the files to
  23276. your FTP or Web server.
  23277. .SS Adding a Package to the repository
  23278. .sp
  23279. New packages are added by simply copying the SPM file to the repo folder, and then
  23280. generating repo metadata.
  23281. .SS Generate Repo Metadata
  23282. .sp
  23283. Each time you update or add an SPM package to your repository, issue an \fBspm
  23284. create_repo\fP command:
  23285. .INDENT 0.0
  23286. .INDENT 3.5
  23287. .sp
  23288. .nf
  23289. .ft C
  23290. spm create_repo /srv/spm_build
  23291. .ft P
  23292. .fi
  23293. .UNINDENT
  23294. .UNINDENT
  23295. .sp
  23296. SPM generates the repository metadata for all of the packages in that directory
  23297. and places it in an \fBSPM\-METADATA\fP file at the folder root. This command is
  23298. used even if repository metadata already exists in that directory.
  23299. .SS Installing SPM Packages
  23300. .sp
  23301. SPM packages are installed to your Salt master, where they are available to Salt minions
  23302. using all of Salt\(aqs package management functions.
  23303. .SS Configuring Remote Repositories
  23304. .sp
  23305. Before SPM can use a repository, two things need to happen. First, the Salt master needs to
  23306. know where the repository is through a configuration process. Then it needs to pull down the repository
  23307. metadata.
  23308. .SS Repository Configuration Files
  23309. .sp
  23310. Repositories are configured by adding each of them to the
  23311. \fB/etc/salt/spm.repos.d/spm.repo\fP file on each Salt master. This file contains
  23312. the name of the repository, and the link to the repository:
  23313. .INDENT 0.0
  23314. .INDENT 3.5
  23315. .sp
  23316. .nf
  23317. .ft C
  23318. my_repo:
  23319. url: https://spm.example.com/
  23320. .ft P
  23321. .fi
  23322. .UNINDENT
  23323. .UNINDENT
  23324. .sp
  23325. For HTTP/HTTPS Basic authorization you can define credentials:
  23326. .INDENT 0.0
  23327. .INDENT 3.5
  23328. .sp
  23329. .nf
  23330. .ft C
  23331. my_repo:
  23332. url: https://spm.example.com/
  23333. username: user
  23334. password: pass
  23335. .ft P
  23336. .fi
  23337. .UNINDENT
  23338. .UNINDENT
  23339. .sp
  23340. Beware of unauthorized access to this file, please set at least 0640 permissions for this configuration file:
  23341. .sp
  23342. The URL can use \fBhttp\fP, \fBhttps\fP, \fBftp\fP, or \fBfile\fP\&.
  23343. .INDENT 0.0
  23344. .INDENT 3.5
  23345. .sp
  23346. .nf
  23347. .ft C
  23348. my_repo:
  23349. url: file:///srv/spm_build
  23350. .ft P
  23351. .fi
  23352. .UNINDENT
  23353. .UNINDENT
  23354. .SS Updating Local Repository Metadata
  23355. .sp
  23356. After the repository is configured on the Salt master, repository metadata is
  23357. downloaded using the \fBspm update_repo\fP command:
  23358. .INDENT 0.0
  23359. .INDENT 3.5
  23360. .sp
  23361. .nf
  23362. .ft C
  23363. spm update_repo
  23364. .ft P
  23365. .fi
  23366. .UNINDENT
  23367. .UNINDENT
  23368. .sp
  23369. \fBNOTE:\fP
  23370. .INDENT 0.0
  23371. .INDENT 3.5
  23372. A file for each repo is placed in \fB/var/cache/salt/spm\fP on the Salt master
  23373. after you run the \fIupdate_repo\fP command. If you add a repository and it
  23374. does not seem to be showing up, check this path to verify that the
  23375. repository was found.
  23376. .UNINDENT
  23377. .UNINDENT
  23378. .SS Update File Roots
  23379. .sp
  23380. SPM packages are installed to the \fBsrv/spm/salt\fP folder on your Salt master.
  23381. This path needs to be added to the file roots on your Salt master
  23382. manually.
  23383. .INDENT 0.0
  23384. .INDENT 3.5
  23385. .sp
  23386. .nf
  23387. .ft C
  23388. file_roots:
  23389. base:
  23390. 1. /srv/salt
  23391. 2. /srv/spm/salt
  23392. .ft P
  23393. .fi
  23394. .UNINDENT
  23395. .UNINDENT
  23396. .sp
  23397. Restart the salt\-master service after updating the \fBfile_roots\fP setting.
  23398. .SS Installing Packages
  23399. .sp
  23400. To install a package, use the \fBspm install\fP command:
  23401. .INDENT 0.0
  23402. .INDENT 3.5
  23403. .sp
  23404. .nf
  23405. .ft C
  23406. spm install apache
  23407. .ft P
  23408. .fi
  23409. .UNINDENT
  23410. .UNINDENT
  23411. .sp
  23412. \fBWARNING:\fP
  23413. .INDENT 0.0
  23414. .INDENT 3.5
  23415. Currently, SPM does not check to see if files are already in place before
  23416. installing them. That means that existing files will be overwritten without
  23417. warning.
  23418. .UNINDENT
  23419. .UNINDENT
  23420. .SS Installing directly from an SPM file
  23421. .sp
  23422. You can also install SPM packages using a local SPM file using the \fBspm local
  23423. install\fP command:
  23424. .INDENT 0.0
  23425. .INDENT 3.5
  23426. .sp
  23427. .nf
  23428. .ft C
  23429. spm local install /srv/spm/apache\-201506\-1.spm
  23430. .ft P
  23431. .fi
  23432. .UNINDENT
  23433. .UNINDENT
  23434. .sp
  23435. An SPM repository is not required when using \fIspm local install\fP\&.
  23436. .SS Pillars
  23437. .sp
  23438. If an installed package includes Pillar data, be sure to target the installed
  23439. pillar to the necessary systems using the pillar Top file.
  23440. .SS Removing Packages
  23441. .sp
  23442. Packages may be removed after they are installed using the \fBspm remove\fP
  23443. command.
  23444. .INDENT 0.0
  23445. .INDENT 3.5
  23446. .sp
  23447. .nf
  23448. .ft C
  23449. spm remove apache
  23450. .ft P
  23451. .fi
  23452. .UNINDENT
  23453. .UNINDENT
  23454. .sp
  23455. If files have been modified, they will not be removed. Empty directories will
  23456. also be removed.
  23457. .SS SPM Configuration
  23458. .sp
  23459. There are a number of options that are specific to SPM. They may be configured
  23460. in the \fBmaster\fP configuration file, or in SPM\(aqs own \fBspm\fP configuration
  23461. file (normally located at \fB/etc/salt/spm\fP). If configured in both places, the
  23462. \fBspm\fP file takes precedence. In general, these values will not need to be
  23463. changed from the defaults.
  23464. .SS spm_logfile
  23465. .sp
  23466. Default: \fB/var/log/salt/spm\fP
  23467. .sp
  23468. Where SPM logs messages.
  23469. .SS spm_repos_config
  23470. .sp
  23471. Default: \fB/etc/salt/spm.repos\fP
  23472. .sp
  23473. SPM repositories are configured with this file. There is also a directory which
  23474. corresponds to it, which ends in \fB\&.d\fP\&. For instance, if the filename is
  23475. \fB/etc/salt/spm.repos\fP, the directory will be \fB/etc/salt/spm.repos.d/\fP\&.
  23476. .SS spm_cache_dir
  23477. .sp
  23478. Default: \fB/var/cache/salt/spm\fP
  23479. .sp
  23480. When SPM updates package repository metadata and downloads packaged, they will
  23481. be placed in this directory. The package database, normally called
  23482. \fBpackages.db\fP, also lives in this directory.
  23483. .SS spm_db
  23484. .sp
  23485. Default: \fB/var/cache/salt/spm/packages.db\fP
  23486. .sp
  23487. The location and name of the package database. This database stores the names of
  23488. all of the SPM packages installed on the system, the files that belong to them,
  23489. and the metadata for those files.
  23490. .SS spm_build_dir
  23491. .sp
  23492. Default: \fB/srv/spm_build\fP
  23493. .sp
  23494. When packages are built, they will be placed in this directory.
  23495. .SS spm_build_exclude
  23496. .sp
  23497. Default: \fB[\(aq.git\(aq]\fP
  23498. .sp
  23499. When SPM builds a package, it normally adds all files in the formula directory
  23500. to the package. Files listed here will be excluded from that package. This
  23501. option requires a list to be specified.
  23502. .INDENT 0.0
  23503. .INDENT 3.5
  23504. .sp
  23505. .nf
  23506. .ft C
  23507. spm_build_exclude:
  23508. \- .git
  23509. \- .svn
  23510. .ft P
  23511. .fi
  23512. .UNINDENT
  23513. .UNINDENT
  23514. .SS Types of Packages
  23515. .sp
  23516. SPM supports different types of formula packages. The function of each package
  23517. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23518. considered to be Salt States (the most common type of formula). Packages which
  23519. end in \fB\-conf\fP contain configuration which is to be placed in the
  23520. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23521. treated as if they have a \fB\-formula\fP name.
  23522. .SS formula
  23523. .sp
  23524. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23525. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23526. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23527. by default).
  23528. .SS reactor
  23529. .sp
  23530. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23531. directory.
  23532. .SS conf
  23533. .sp
  23534. The files in this type of package are configuration files for Salt, which
  23535. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23536. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23537. type of package).
  23538. .SS FORMULA File
  23539. .sp
  23540. In addition to the formula itself, a \fBFORMULA\fP file must exist which
  23541. describes the package. An example of this file is:
  23542. .INDENT 0.0
  23543. .INDENT 3.5
  23544. .sp
  23545. .nf
  23546. .ft C
  23547. name: apache
  23548. os: RedHat, Debian, Ubuntu, SUSE, FreeBSD
  23549. os_family: RedHat, Debian, Suse, FreeBSD
  23550. version: 201506
  23551. release: 2
  23552. summary: Formula for installing Apache
  23553. description: Formula for installing Apache
  23554. .ft P
  23555. .fi
  23556. .UNINDENT
  23557. .UNINDENT
  23558. .SS Required Fields
  23559. .sp
  23560. This file must contain at least the following fields:
  23561. .SS name
  23562. .sp
  23563. The name of the package, as it will appear in the package filename, in the
  23564. repository metadata, and the package database. Even if the source formula has
  23565. \fB\-formula\fP in its name, this name should probably not include that. For
  23566. instance, when packaging the \fBapache\-formula\fP, the name should be set to
  23567. \fBapache\fP\&.
  23568. .SS os
  23569. .sp
  23570. The value of the \fBos\fP grain that this formula supports. This is used to
  23571. help users know which operating systems can support this package.
  23572. .SS os_family
  23573. .sp
  23574. The value of the \fBos_family\fP grain that this formula supports. This is used to
  23575. help users know which operating system families can support this package.
  23576. .SS version
  23577. .sp
  23578. The version of the package. While it is up to the organization that manages this
  23579. package, it is suggested that this version is specified in a \fBYYYYMM\fP format.
  23580. For instance, if this version was released in June 2015, the package version
  23581. should be \fB201506\fP\&. If multiple releases are made in a month, the \fBrelease\fP
  23582. field should be used.
  23583. .SS minimum_version
  23584. .sp
  23585. Minimum recommended version of Salt to use this formula. Not currently enforced.
  23586. .SS release
  23587. .sp
  23588. This field refers primarily to a release of a version, but also to multiple
  23589. versions within a month. In general, if a version has been made public, and
  23590. immediate updates need to be made to it, this field should also be updated.
  23591. .SS summary
  23592. .sp
  23593. A one\-line description of the package.
  23594. .SS description
  23595. .sp
  23596. A more detailed description of the package which can contain more than one line.
  23597. .SS Optional Fields
  23598. .sp
  23599. The following fields may also be present.
  23600. .SS top_level_dir
  23601. .sp
  23602. This field is optional, but highly recommended. If it is not specified, the
  23603. package name will be used.
  23604. .sp
  23605. Formula repositories typically do not store \fB\&.sls\fP files in the root of the
  23606. repository; instead they are stored in a subdirectory. For instance, an
  23607. \fBapache\-formula\fP repository would contain a directory called \fBapache\fP, which
  23608. would contain an \fBinit.sls\fP, plus a number of other related files. In this
  23609. instance, the \fBtop_level_dir\fP should be set to \fBapache\fP\&.
  23610. .sp
  23611. Files outside the \fBtop_level_dir\fP, such as \fBREADME.rst\fP, \fBFORMULA\fP, and
  23612. \fBLICENSE\fP will not be installed. The exceptions to this rule are files that
  23613. are already treated specially, such as \fBpillar.example\fP and \fB_modules/\fP\&.
  23614. .SS dependencies
  23615. .sp
  23616. A comma\-separated list of packages that must be installed along with this
  23617. package. When this package is installed, SPM will attempt to discover and
  23618. install these packages as well. If it is unable to, then it will refuse to
  23619. install this package.
  23620. .sp
  23621. This is useful for creating packages which tie together other packages. For
  23622. instance, a package called wordpress\-mariadb\-apache would depend upon
  23623. wordpress, mariadb, and apache.
  23624. .SS optional
  23625. .sp
  23626. A comma\-separated list of packages which are related to this package, but are
  23627. neither required nor necessarily recommended. This list is displayed in an
  23628. informational message when the package is installed to SPM.
  23629. .SS recommended
  23630. .sp
  23631. A comma\-separated list of optional packages that are recommended to be
  23632. installed with the package. This list is displayed in an informational message
  23633. when the package is installed to SPM.
  23634. .SS files
  23635. .sp
  23636. A files section can be added, to specify a list of files to add to the SPM.
  23637. Such a section might look like:
  23638. .INDENT 0.0
  23639. .INDENT 3.5
  23640. .sp
  23641. .nf
  23642. .ft C
  23643. files:
  23644. \- _pillar
  23645. \- FORMULA
  23646. \- _runners
  23647. \- d|mymodule/index.rst
  23648. \- r|README.rst
  23649. .ft P
  23650. .fi
  23651. .UNINDENT
  23652. .UNINDENT
  23653. .sp
  23654. When \fBfiles\fP are specified, then only those files will be added to the SPM,
  23655. regardless of what other files exist in the directory. They will also be added
  23656. in the order specified, which is useful if you have a need to lay down files in
  23657. a specific order.
  23658. .sp
  23659. As can be seen in the example above, you may also tag files as being a specific
  23660. type. This is done by pre\-pending a filename with its type, followed by a pipe
  23661. (\fB|\fP) character. The above example contains a document file and a readme. The
  23662. available file types are:
  23663. .INDENT 0.0
  23664. .IP \(bu 2
  23665. \fBc\fP: config file
  23666. .IP \(bu 2
  23667. \fBd\fP: documentation file
  23668. .IP \(bu 2
  23669. \fBg\fP: ghost file (i.e. the file contents are not included in the package payload)
  23670. .IP \(bu 2
  23671. \fBl\fP: license file
  23672. .IP \(bu 2
  23673. \fBr\fP: readme file
  23674. .IP \(bu 2
  23675. \fBs\fP: SLS file
  23676. .IP \(bu 2
  23677. \fBm\fP: Salt module
  23678. .UNINDENT
  23679. .sp
  23680. The first 5 of these types (\fBc\fP, \fBd\fP, \fBg\fP, \fBl\fP, \fBr\fP) will be placed in
  23681. \fB/usr/share/salt/spm/\fP by default. This can be changed by setting an
  23682. \fBspm_share_dir\fP value in your \fB/etc/salt/spm\fP configuration file.
  23683. .sp
  23684. The last two types (\fBs\fP and \fBm\fP) are currently ignored, but they are
  23685. reserved for future use.
  23686. .SS Pre and Post States
  23687. .sp
  23688. It is possible to run Salt states before and after installing a package by
  23689. using pre and post states. The following sections may be declared in a
  23690. \fBFORMULA\fP:
  23691. .INDENT 0.0
  23692. .IP \(bu 2
  23693. \fBpre_local_state\fP
  23694. .IP \(bu 2
  23695. \fBpre_tgt_state\fP
  23696. .IP \(bu 2
  23697. \fBpost_local_state\fP
  23698. .IP \(bu 2
  23699. \fBpost_tgt_state\fP
  23700. .UNINDENT
  23701. .sp
  23702. Sections with \fBpre\fP in their name are evaluated before a package is installed
  23703. and sections with \fBpost\fP are evaluated after a package is installed. \fBlocal\fP
  23704. states are evaluated before \fBtgt\fP states.
  23705. .sp
  23706. Each of these sections needs to be evaluated as text, rather than as YAML.
  23707. Consider the following block:
  23708. .INDENT 0.0
  23709. .INDENT 3.5
  23710. .sp
  23711. .nf
  23712. .ft C
  23713. pre_local_state: >
  23714. echo test > /tmp/spmtest:
  23715. cmd:
  23716. \- run
  23717. .ft P
  23718. .fi
  23719. .UNINDENT
  23720. .UNINDENT
  23721. .sp
  23722. Note that this declaration uses \fB>\fP after \fBpre_local_state\fP\&. This is a YAML
  23723. marker that marks the next multi\-line block as text, including newlines. It is
  23724. important to use this marker whenever declaring \fBpre\fP or \fBpost\fP states, so
  23725. that the text following it can be evaluated properly.
  23726. .SS local States
  23727. .sp
  23728. \fBlocal\fP states are evaluated locally; this is analogous to issuing a state
  23729. run using a \fBsalt\-call \-\-local\fP command. These commands will be issued on the
  23730. local machine running the \fBspm\fP command, whether that machine is a master or
  23731. a minion.
  23732. .sp
  23733. \fBlocal\fP states do not require any special arguments, but they must still use
  23734. the \fB>\fP marker to denote that the state is evaluated as text, not a data
  23735. structure.
  23736. .INDENT 0.0
  23737. .INDENT 3.5
  23738. .sp
  23739. .nf
  23740. .ft C
  23741. pre_local_state: >
  23742. echo test > /tmp/spmtest:
  23743. cmd:
  23744. \- run
  23745. .ft P
  23746. .fi
  23747. .UNINDENT
  23748. .UNINDENT
  23749. .SS tgt States
  23750. .sp
  23751. \fBtgt\fP states are issued against a remote target. This is analogous to issuing
  23752. a state using the \fBsalt\fP command. As such it requires that the machine that
  23753. the \fBspm\fP command is running on is a master.
  23754. .sp
  23755. Because \fBtgt\fP states require that a target be specified, their code blocks
  23756. are a little different. Consider the following state:
  23757. .INDENT 0.0
  23758. .INDENT 3.5
  23759. .sp
  23760. .nf
  23761. .ft C
  23762. pre_tgt_state:
  23763. tgt: \(aq*\(aq
  23764. data: >
  23765. echo test > /tmp/spmtest:
  23766. cmd:
  23767. \- run
  23768. .ft P
  23769. .fi
  23770. .UNINDENT
  23771. .UNINDENT
  23772. .sp
  23773. With \fBtgt\fP states, the state data is placed under a \fBdata\fP section, inside
  23774. the \fB*_tgt_state\fP code block. The target is of course specified as a \fBtgt\fP
  23775. and you may also optionally specify a \fBtgt_type\fP (the default is \fBglob\fP).
  23776. .sp
  23777. You still need to use the \fB>\fP marker, but this time it follows the \fBdata\fP
  23778. line, rather than the \fB*_tgt_state\fP line.
  23779. .SS Templating States
  23780. .sp
  23781. The reason that state data must be evaluated as text rather than a data
  23782. structure is because that state data is first processed through the rendering
  23783. engine, as it would be with a standard state run.
  23784. .sp
  23785. This means that you can use Jinja or any other supported renderer inside of
  23786. Salt. All formula variables are available to the renderer, so you can reference
  23787. \fBFORMULA\fP data inside your state if you need to:
  23788. .INDENT 0.0
  23789. .INDENT 3.5
  23790. .sp
  23791. .nf
  23792. .ft C
  23793. pre_tgt_state:
  23794. tgt: \(aq*\(aq
  23795. data: >
  23796. echo {{ name }} > /tmp/spmtest:
  23797. cmd:
  23798. \- run
  23799. .ft P
  23800. .fi
  23801. .UNINDENT
  23802. .UNINDENT
  23803. .sp
  23804. You may also declare your own variables inside the \fBFORMULA\fP\&. If SPM doesn\(aqt
  23805. recognize them then it will ignore them, so there are no restrictions on
  23806. variable names, outside of avoiding reserved words.
  23807. .sp
  23808. By default the renderer is set to \fBjinja|yaml\fP\&. You may change this by
  23809. changing the \fBrenderer\fP setting in the \fBFORMULA\fP itself.
  23810. .SS Building a Package
  23811. .sp
  23812. Once a \fBFORMULA\fP file has been created, it is placed into the root of the
  23813. formula that is to be turned into a package. The \fBspm build\fP command is
  23814. used to turn that formula into a package:
  23815. .INDENT 0.0
  23816. .INDENT 3.5
  23817. .sp
  23818. .nf
  23819. .ft C
  23820. spm build /path/to/saltstack\-formulas/apache\-formula
  23821. .ft P
  23822. .fi
  23823. .UNINDENT
  23824. .UNINDENT
  23825. .sp
  23826. The resulting file will be placed in the build directory. By default this
  23827. directory is located at \fB/srv/spm/\fP\&.
  23828. .SS Loader Modules
  23829. .sp
  23830. When an execution module is placed in \fB<file_roots>/_modules/\fP on the master,
  23831. it will automatically be synced to minions, the next time a sync operation takes
  23832. place. Other modules are also propagated this way: state modules can be placed
  23833. in \fB_states/\fP, and so on.
  23834. .sp
  23835. When SPM detects a file in a package which resides in one of these directories,
  23836. that directory will be placed in \fB<file_roots>\fP instead of in the formula
  23837. directory with the rest of the files.
  23838. .SS Removing Packages
  23839. .sp
  23840. Packages may be removed once they are installed using the \fBspm remove\fP
  23841. command.
  23842. .INDENT 0.0
  23843. .INDENT 3.5
  23844. .sp
  23845. .nf
  23846. .ft C
  23847. spm remove apache
  23848. .ft P
  23849. .fi
  23850. .UNINDENT
  23851. .UNINDENT
  23852. .sp
  23853. If files have been modified, they will not be removed. Empty directories will
  23854. also be removed.
  23855. .SS Technical Information
  23856. .sp
  23857. Packages are built using BZ2\-compressed tarballs. By default, the package
  23858. database is stored using the \fBsqlite3\fP driver (see Loader Modules below).
  23859. .sp
  23860. Support for these are built into Python, and so no external dependencies are
  23861. needed.
  23862. .sp
  23863. All other files belonging to SPM use YAML, for portability and ease of use and
  23864. maintainability.
  23865. .SS SPM\-Specific Loader Modules
  23866. .sp
  23867. SPM was designed to behave like traditional package managers, which apply files
  23868. to the filesystem and store package metadata in a local database. However,
  23869. because modern infrastructures often extend beyond those use cases, certain
  23870. parts of SPM have been broken out into their own set of modules.
  23871. .SS Package Database
  23872. .sp
  23873. By default, the package database is stored using the \fBsqlite3\fP module. This
  23874. module was chosen because support for SQLite3 is built into Python itself.
  23875. .sp
  23876. Please see the SPM Development Guide for information on creating new modules
  23877. for package database management.
  23878. .SS Package Files
  23879. .sp
  23880. By default, package files are installed using the \fBlocal\fP module. This module
  23881. applies files to the local filesystem, on the machine that the package is
  23882. installed on.
  23883. .sp
  23884. Please see the SPM Development Guide for information
  23885. on creating new modules for package file management.
  23886. .SS Types of Packages
  23887. .sp
  23888. SPM supports different types of formula packages. The function of each package
  23889. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23890. considered to be Salt States (the most common type of formula). Packages which
  23891. end in \fB\-conf\fP contain configuration which is to be placed in the
  23892. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23893. treated as if they have a \fB\-formula\fP name.
  23894. .SS formula
  23895. .sp
  23896. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23897. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23898. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23899. by default).
  23900. .SS reactor
  23901. .sp
  23902. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23903. directory.
  23904. .SS conf
  23905. .sp
  23906. The files in this type of package are configuration files for Salt, which
  23907. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23908. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23909. type of package).
  23910. .SS SPM Development Guide
  23911. .sp
  23912. This document discusses developing additional code for SPM.
  23913. .SS SPM\-Specific Loader Modules
  23914. .sp
  23915. SPM was designed to behave like traditional package managers, which apply files
  23916. to the filesystem and store package metadata in a local database. However,
  23917. because modern infrastructures often extend beyond those use cases, certain
  23918. parts of SPM have been broken out into their own set of modules.
  23919. .sp
  23920. Each function that accepts arguments has a set of required and optional
  23921. arguments. Take note that SPM will pass all arguments in, and therefore each
  23922. function must accept each of those arguments. However, arguments that are
  23923. marked as required are crucial to SPM\(aqs core functionality, while arguments that
  23924. are marked as optional are provided as a benefit to the module, if it needs to
  23925. use them.
  23926. .SS Package Database
  23927. .sp
  23928. By default, the package database is stored using the \fBsqlite3\fP module. This
  23929. module was chosen because support for SQLite3 is built into Python itself.
  23930. .sp
  23931. Modules for managing the package database are stored in the \fBsalt/spm/pkgdb/\fP
  23932. directory. A number of functions must exist to support database management.
  23933. .SS init()
  23934. .sp
  23935. Get a database connection, and initialize the package database if necessary.
  23936. .sp
  23937. This function accepts no arguments. If a database is used which supports a
  23938. connection object, then that connection object is returned. For instance, the
  23939. \fBsqlite3\fP module returns a \fBconnect()\fP object from the \fBsqlite3\fP library:
  23940. .INDENT 0.0
  23941. .INDENT 3.5
  23942. .sp
  23943. .nf
  23944. .ft C
  23945. conn = sqlite3.connect(__opts__["spm_db"], isolation_level=None)
  23946. \&...
  23947. return conn
  23948. .ft P
  23949. .fi
  23950. .UNINDENT
  23951. .UNINDENT
  23952. .sp
  23953. SPM itself will not use this connection object; it will be passed in as\-is to
  23954. the other functions in the module. Therefore, when you set up this object, make
  23955. sure to do so in a way that is easily usable throughout the module.
  23956. .SS info()
  23957. .sp
  23958. Return information for a package. This generally consists of the information
  23959. that is stored in the \fBFORMULA\fP file in the package.
  23960. .sp
  23961. The arguments that are passed in, in order, are \fBpackage\fP (required) and
  23962. \fBconn\fP (optional).
  23963. .sp
  23964. \fBpackage\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23965. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23966. .SS list_files()
  23967. .sp
  23968. Return a list of files for an installed package. Only the filename should be
  23969. returned, and no other information.
  23970. .sp
  23971. The arguments that are passed in, in order, are \fBpackage\fP (required) and
  23972. \fBconn\fP (optional).
  23973. .sp
  23974. \fBpackage\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23975. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23976. .SS register_pkg()
  23977. .sp
  23978. Register a package in the package database. Nothing is expected to be returned
  23979. from this function.
  23980. .sp
  23981. The arguments that are passed in, in order, are \fBname\fP (required),
  23982. \fBformula_def\fP (required), and \fBconn\fP (optional).
  23983. .sp
  23984. \fBname\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23985. \fBformula_def\fP is the contents of the \fBFORMULA\fP file, as a \fBdict\fP\&. \fBconn\fP
  23986. is the connection object returned from \fBinit()\fP\&.
  23987. .SS register_file()
  23988. .sp
  23989. Register a file in the package database. Nothing is expected to be returned
  23990. from this function.
  23991. .sp
  23992. The arguments that are passed in are \fBname\fP (required), \fBmember\fP (required),
  23993. \fBpath\fP (required), \fBdigest\fP (optional), and \fBconn\fP (optional).
  23994. .sp
  23995. \fBname\fP is the name of the package.
  23996. .sp
  23997. \fBmember\fP is a \fBtarfile\fP object for the
  23998. package file. It is included, because it contains most of the information for
  23999. the file.
  24000. .sp
  24001. \fBpath\fP is the location of the file on the local filesystem.
  24002. .sp
  24003. \fBdigest\fP is the SHA1 checksum of the file.
  24004. .sp
  24005. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  24006. .SS unregister_pkg()
  24007. .sp
  24008. Unregister a package from the package database. This usually only involves
  24009. removing the package\(aqs record from the database. Nothing is expected to be
  24010. returned from this function.
  24011. .sp
  24012. The arguments that are passed in, in order, are \fBname\fP (required) and
  24013. \fBconn\fP (optional).
  24014. .sp
  24015. \fBname\fP is the name of the package, as specified in the \fBFORMULA\fP\&. \fBconn\fP
  24016. is the connection object returned from \fBinit()\fP\&.
  24017. .SS unregister_file()
  24018. .sp
  24019. Unregister a package from the package database. This usually only involves
  24020. removing the package\(aqs record from the database. Nothing is expected to be
  24021. returned from this function.
  24022. .sp
  24023. The arguments that are passed in, in order, are \fBname\fP (required), \fBpkg\fP
  24024. (optional) and \fBconn\fP (optional).
  24025. .sp
  24026. \fBname\fP is the path of the file, as it was installed on the filesystem.
  24027. .sp
  24028. \fBpkg\fP is the name of the package that the file belongs to.
  24029. .sp
  24030. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  24031. .SS db_exists()
  24032. .sp
  24033. Check to see whether the package database already exists. This is the path to
  24034. the package database file. This function will return \fBTrue\fP or \fBFalse\fP\&.
  24035. .sp
  24036. The only argument that is expected is \fBdb_\fP, which is the package database
  24037. file.
  24038. .SS Package Files
  24039. .sp
  24040. By default, package files are installed using the \fBlocal\fP module. This module
  24041. applies files to the local filesystem, on the machine that the package is
  24042. installed on.
  24043. .sp
  24044. Modules for managing the package database are stored in the
  24045. \fBsalt/spm/pkgfiles/\fP directory. A number of functions must exist to support
  24046. file management.
  24047. .SS init()
  24048. .sp
  24049. Initialize the installation location for the package files. Normally these will
  24050. be directory paths, but other external destinations such as databases can be
  24051. used. For this reason, this function will return a connection object, which can
  24052. be a database object. However, in the default \fBlocal\fP module, this object is a
  24053. dict containing the paths. This object will be passed into all other functions.
  24054. .sp
  24055. Three directories are used for the destinations: \fBformula_path\fP,
  24056. \fBpillar_path\fP, and \fBreactor_path\fP\&.
  24057. .sp
  24058. \fBformula_path\fP is the location of most of the files that will be installed.
  24059. The default is specific to the operating system, but is normally \fB/srv/salt/\fP\&.
  24060. .sp
  24061. \fBpillar_path\fP is the location that the \fBpillar.example\fP file will be
  24062. installed to. The default is specific to the operating system, but is normally
  24063. \fB/srv/pillar/\fP\&.
  24064. .sp
  24065. \fBreactor_path\fP is the location that reactor files will be installed to. The
  24066. default is specific to the operating system, but is normally \fB/srv/reactor/\fP\&.
  24067. .SS check_existing()
  24068. .sp
  24069. Check the filesystem for existing files. All files for the package will be
  24070. checked, and if any are existing, then this function will normally state that
  24071. SPM will refuse to install the package.
  24072. .sp
  24073. This function returns a list of the files that exist on the system.
  24074. .sp
  24075. The arguments that are passed into this function are, in order: \fBpackage\fP
  24076. (required), \fBpkg_files\fP (required), \fBformula_def\fP (formula_def), and
  24077. \fBconn\fP (optional).
  24078. .sp
  24079. \fBpackage\fP is the name of the package that is to be installed.
  24080. .sp
  24081. \fBpkg_files\fP is a list of the files to be checked.
  24082. .sp
  24083. \fBformula_def\fP is a copy of the information that is stored in the \fBFORMULA\fP
  24084. file.
  24085. .sp
  24086. \fBconn\fP is the file connection object.
  24087. .SS install_file()
  24088. .sp
  24089. Install a single file to the destination (normally on the filesystem). Nothing
  24090. is expected to be returned from this function.
  24091. .sp
  24092. This function returns the final location that the file was installed to.
  24093. .sp
  24094. The arguments that are passed into this function are, in order, \fBpackage\fP
  24095. (required), \fBformula_tar\fP (required), \fBmember\fP (required), \fBformula_def\fP
  24096. (required), and \fBconn\fP (optional).
  24097. .sp
  24098. \fBpackage\fP is the name of the package that is to be installed.
  24099. .sp
  24100. \fBformula_tar\fP is the tarfile object for the package. This is passed in so that
  24101. the function can call \fBformula_tar.extract()\fP for the file.
  24102. .sp
  24103. \fBmember\fP is the tarfile object which represents the individual file. This may
  24104. be modified as necessary, before being passed into \fBformula_tar.extract()\fP\&.
  24105. .sp
  24106. \fBformula_def\fP is a copy of the information from the \fBFORMULA\fP file.
  24107. .sp
  24108. \fBconn\fP is the file connection object.
  24109. .SS remove_file()
  24110. .sp
  24111. Remove a single file from file system. Normally this will be little more than an
  24112. \fBos.remove()\fP\&. Nothing is expected to be returned from this function.
  24113. .sp
  24114. The arguments that are passed into this function are, in order, \fBpath\fP
  24115. (required) and \fBconn\fP (optional).
  24116. .sp
  24117. \fBpath\fP is the absolute path to the file to be removed.
  24118. .sp
  24119. \fBconn\fP is the file connection object.
  24120. .SS hash_file()
  24121. .sp
  24122. Returns the hexdigest hash value of a file.
  24123. .sp
  24124. The arguments that are passed into this function are, in order, \fBpath\fP
  24125. (required), \fBhashobj\fP (required), and \fBconn\fP (optional).
  24126. .sp
  24127. \fBpath\fP is the absolute path to the file.
  24128. .sp
  24129. \fBhashobj\fP is a reference to \fBhashlib.sha1()\fP, which is used to pull the
  24130. \fBhexdigest()\fP for the file.
  24131. .sp
  24132. \fBconn\fP is the file connection object.
  24133. .sp
  24134. This function will not generally be more complex than:
  24135. .INDENT 0.0
  24136. .INDENT 3.5
  24137. .sp
  24138. .nf
  24139. .ft C
  24140. def hash_file(path, hashobj, conn=None):
  24141. with salt.utils.files.fopen(path, "r") as f:
  24142. hashobj.update(f.read())
  24143. return hashobj.hexdigest()
  24144. .ft P
  24145. .fi
  24146. .UNINDENT
  24147. .UNINDENT
  24148. .SS path_exists()
  24149. .sp
  24150. Check to see whether the file already exists on the filesystem. Returns \fBTrue\fP
  24151. or \fBFalse\fP\&.
  24152. .sp
  24153. This function expects a \fBpath\fP argument, which is the absolute path to the
  24154. file to be checked.
  24155. .SS path_isdir()
  24156. .sp
  24157. Check to see whether the path specified is a directory. Returns \fBTrue\fP or
  24158. \fBFalse\fP\&.
  24159. .sp
  24160. This function expects a \fBpath\fP argument, which is the absolute path to be
  24161. checked.
  24162. .SS Storing Data in Other Databases
  24163. .sp
  24164. The SDB interface is designed to store and retrieve data that, unlike pillars
  24165. and grains, is not necessarily minion\-specific. The initial design goal was to
  24166. allow passwords to be stored in a secure database, such as one managed by the
  24167. keyring package, rather than as plain\-text files. However, as a generic database
  24168. interface, it could conceptually be used for a number of other purposes.
  24169. .sp
  24170. SDB was added to Salt in version 2014.7.0.
  24171. .SS SDB Configuration
  24172. .sp
  24173. In order to use the SDB interface, a configuration profile must be set up.
  24174. To be available for master commands, such as runners, it needs to be
  24175. configured in the master configuration. For modules executed on a minion, it
  24176. can be set either in the minion configuration file, or as a pillar. The
  24177. configuration stanza includes the name/ID that the profile will be referred to
  24178. as, a \fBdriver\fP setting, and any other arguments that are necessary for the SDB
  24179. module that will be used. For instance, a profile called \fBmykeyring\fP, which
  24180. uses the \fBsystem\fP service in the \fBkeyring\fP module would look like:
  24181. .INDENT 0.0
  24182. .INDENT 3.5
  24183. .sp
  24184. .nf
  24185. .ft C
  24186. mykeyring:
  24187. driver: keyring
  24188. service: system
  24189. .ft P
  24190. .fi
  24191. .UNINDENT
  24192. .UNINDENT
  24193. .sp
  24194. It is recommended to keep the name of the profile simple, as it is used in the
  24195. SDB URI as well.
  24196. .SS SDB URIs
  24197. .sp
  24198. SDB is designed to make small database queries (hence the name, SDB) using a
  24199. compact URL. This allows users to reference a database value quickly inside
  24200. a number of Salt configuration areas, without a lot of overhead. The basic
  24201. format of an SDB URI is:
  24202. .INDENT 0.0
  24203. .INDENT 3.5
  24204. .sp
  24205. .nf
  24206. .ft C
  24207. sdb://<profile>/<args>
  24208. .ft P
  24209. .fi
  24210. .UNINDENT
  24211. .UNINDENT
  24212. .sp
  24213. The profile refers to the configuration profile defined in either the master or
  24214. the minion configuration file. The args are specific to the module referred to
  24215. in the profile, but will typically only need to refer to the key of a
  24216. key/value pair inside the database. This is because the profile itself should
  24217. define as many other parameters as possible.
  24218. .sp
  24219. For example, a profile might be set up to reference credentials for a specific
  24220. OpenStack account. The profile might look like:
  24221. .INDENT 0.0
  24222. .INDENT 3.5
  24223. .sp
  24224. .nf
  24225. .ft C
  24226. kevinopenstack:
  24227. driver: keyring
  24228. service: salt.cloud.openstack.kevin
  24229. .ft P
  24230. .fi
  24231. .UNINDENT
  24232. .UNINDENT
  24233. .sp
  24234. And the URI used to reference the password might look like:
  24235. .INDENT 0.0
  24236. .INDENT 3.5
  24237. .sp
  24238. .nf
  24239. .ft C
  24240. sdb://kevinopenstack/password
  24241. .ft P
  24242. .fi
  24243. .UNINDENT
  24244. .UNINDENT
  24245. .SS Getting, Setting and Deleting SDB Values
  24246. .sp
  24247. Once an SDB driver is configured, you can use the \fBsdb\fP execution module to
  24248. get, set and delete values from it. There are two functions that may appear in
  24249. most SDB modules: \fBget\fP, \fBset\fP and \fBdelete\fP\&.
  24250. .sp
  24251. Getting a value requires only the SDB URI to be specified. To retrieve a value
  24252. from the \fBkevinopenstack\fP profile above, you would use:
  24253. .INDENT 0.0
  24254. .INDENT 3.5
  24255. .sp
  24256. .nf
  24257. .ft C
  24258. salt\-call sdb.get sdb://kevinopenstack/password
  24259. .ft P
  24260. .fi
  24261. .UNINDENT
  24262. .UNINDENT
  24263. .sp
  24264. \fBWARNING:\fP
  24265. .INDENT 0.0
  24266. .INDENT 3.5
  24267. The \fBvault\fP driver previously only supported splitting the path and key with
  24268. a question mark. This has since been deprecated in favor of using the standard
  24269. / to split the path and key. The use of the questions mark will still be supported
  24270. to ensure backwards compatibility, but please use the preferred method using /.
  24271. The deprecated approach required the full path to where the key is stored,
  24272. followed by a question mark, followed by the key to be retrieved. If you were
  24273. using a profile called \fBmyvault\fP, you would use a URI that looks like:
  24274. .INDENT 0.0
  24275. .INDENT 3.5
  24276. .sp
  24277. .nf
  24278. .ft C
  24279. salt\-call sdb.get \(aqsdb://myvault/secret/salt?saltstack\(aq
  24280. .ft P
  24281. .fi
  24282. .UNINDENT
  24283. .UNINDENT
  24284. .sp
  24285. Instead of the above please use the preferred URI using / instead:
  24286. .INDENT 0.0
  24287. .INDENT 3.5
  24288. .sp
  24289. .nf
  24290. .ft C
  24291. salt\-call sdb.get \(aqsdb://myvault/secret/salt/saltstack\(aq
  24292. .ft P
  24293. .fi
  24294. .UNINDENT
  24295. .UNINDENT
  24296. .UNINDENT
  24297. .UNINDENT
  24298. .sp
  24299. Setting a value uses the same URI as would be used to retrieve it, followed
  24300. by the value as another argument.
  24301. .INDENT 0.0
  24302. .INDENT 3.5
  24303. .sp
  24304. .nf
  24305. .ft C
  24306. salt\-call sdb.set \(aqsdb://myvault/secret/salt/saltstack\(aq \(aqsuper awesome\(aq
  24307. .ft P
  24308. .fi
  24309. .UNINDENT
  24310. .UNINDENT
  24311. .sp
  24312. Deleting values (if supported by the driver) is done pretty much the same way as
  24313. getting them. Provided that you have a profile called \fBmykvstore\fP that uses
  24314. a driver allowing to delete values you would delete a value as shown below:
  24315. .INDENT 0.0
  24316. .INDENT 3.5
  24317. .sp
  24318. .nf
  24319. .ft C
  24320. salt\-call sdb.delete \(aqsdb://mykvstore/foobar\(aq
  24321. .ft P
  24322. .fi
  24323. .UNINDENT
  24324. .UNINDENT
  24325. .sp
  24326. The \fBsdb.get\fP, \fBsdb.set\fP and \fBsdb.delete\fP functions are also available in
  24327. the runner system:
  24328. .INDENT 0.0
  24329. .INDENT 3.5
  24330. .sp
  24331. .nf
  24332. .ft C
  24333. salt\-run sdb.get \(aqsdb://myvault/secret/salt/saltstack\(aq
  24334. salt\-run sdb.set \(aqsdb://myvault/secret/salt/saltstack\(aq \(aqsuper awesome\(aq
  24335. salt\-run sdb.delete \(aqsdb://mykvstore/foobar\(aq
  24336. .ft P
  24337. .fi
  24338. .UNINDENT
  24339. .UNINDENT
  24340. .SS Using SDB URIs in Files
  24341. .sp
  24342. SDB URIs can be used in both configuration files, and files that are processed
  24343. by the renderer system (jinja, mako, etc.). In a configuration file (such as
  24344. \fB/etc/salt/master\fP, \fB/etc/salt/minion\fP, \fB/etc/salt/cloud\fP, etc.), make an
  24345. entry as usual, and set the value to the SDB URI. For instance:
  24346. .INDENT 0.0
  24347. .INDENT 3.5
  24348. .sp
  24349. .nf
  24350. .ft C
  24351. mykey: sdb://myetcd/mykey
  24352. .ft P
  24353. .fi
  24354. .UNINDENT
  24355. .UNINDENT
  24356. .sp
  24357. To retrieve this value using a module, the module in question must use the
  24358. \fBconfig.get\fP function to retrieve configuration values. This would look
  24359. something like:
  24360. .INDENT 0.0
  24361. .INDENT 3.5
  24362. .sp
  24363. .nf
  24364. .ft C
  24365. mykey = __salt__["config.get"]("mykey")
  24366. .ft P
  24367. .fi
  24368. .UNINDENT
  24369. .UNINDENT
  24370. .sp
  24371. Templating renderers use a similar construct. To get the \fBmykey\fP value from
  24372. above in Jinja, you would use:
  24373. .INDENT 0.0
  24374. .INDENT 3.5
  24375. .sp
  24376. .nf
  24377. .ft C
  24378. {{ salt[\(aqconfig.get\(aq](\(aqmykey\(aq) }}
  24379. .ft P
  24380. .fi
  24381. .UNINDENT
  24382. .UNINDENT
  24383. .sp
  24384. When retrieving data from configuration files using \fBconfig.get\fP, the SDB
  24385. URI need only appear in the configuration file itself.
  24386. .sp
  24387. If you would like to retrieve a key directly from SDB, you would call the
  24388. \fBsdb.get\fP function directly, using the SDB URI. For instance, in Jinja:
  24389. .INDENT 0.0
  24390. .INDENT 3.5
  24391. .sp
  24392. .nf
  24393. .ft C
  24394. {{ salt[\(aqsdb.get\(aq](\(aqsdb://myetcd/mykey\(aq) }}
  24395. .ft P
  24396. .fi
  24397. .UNINDENT
  24398. .UNINDENT
  24399. .sp
  24400. When writing Salt modules, it is not recommended to call \fBsdb.get\fP directly,
  24401. as it requires the user to provide values in SDB, using a specific URI. Use
  24402. \fBconfig.get\fP instead.
  24403. .SS Writing SDB Modules
  24404. .sp
  24405. There is currently one function that MUST exist in any SDB module (\fBget()\fP),
  24406. one that SHOULD exist (\fBset_()\fP) and one that MAY exist (\fBdelete()\fP). If
  24407. using a (\fBset_()\fP) function, a \fB__func_alias__\fP dictionary MUST be declared
  24408. in the module as well:
  24409. .INDENT 0.0
  24410. .INDENT 3.5
  24411. .sp
  24412. .nf
  24413. .ft C
  24414. __func_alias__ = {
  24415. "set_": "set",
  24416. }
  24417. .ft P
  24418. .fi
  24419. .UNINDENT
  24420. .UNINDENT
  24421. .sp
  24422. This is because \fBset\fP is a Python built\-in, and therefore functions should not
  24423. be created which are called \fBset()\fP\&. The \fB__func_alias__\fP functionality is
  24424. provided via Salt\(aqs loader interfaces, and allows legally\-named functions to be
  24425. referred to using names that would otherwise be unwise to use.
  24426. .sp
  24427. The \fBget()\fP function is required, as it will be called via functions in other
  24428. areas of the code which make use of the \fBsdb://\fP URI. For example, the
  24429. \fBconfig.get\fP function in the \fBconfig\fP execution module uses this function.
  24430. .sp
  24431. The \fBset_()\fP function may be provided, but is not required, as some sources
  24432. may be read\-only, or may be otherwise unwise to access via a URI (for instance,
  24433. because of SQL injection attacks).
  24434. .sp
  24435. The \fBdelete()\fP function may be provided as well, but is not required, as many
  24436. sources may be read\-only or restrict such operations.
  24437. .sp
  24438. A simple example of an SDB module is \fBsalt/sdb/keyring_db.py\fP, as it provides
  24439. basic examples of most, if not all, of the types of functionality that are
  24440. available not only for SDB modules, but for Salt modules in general.
  24441. .SS Running the Salt Master/Minion as an Unprivileged User
  24442. .sp
  24443. While the default setup runs the master and minion as the root user, some
  24444. may consider it an extra measure of security to run the master as a non\-root
  24445. user. Keep in mind that doing so does not change the master\(aqs capability
  24446. to access minions as the user they are running as. Due to this many feel that
  24447. running the master as a non\-root user does not grant any real security advantage
  24448. which is why the master has remained as root by default.
  24449. .sp
  24450. \fBNOTE:\fP
  24451. .INDENT 0.0
  24452. .INDENT 3.5
  24453. Some of Salt\(aqs operations cannot execute correctly when the master is not
  24454. running as root, specifically the pam external auth system, as this system
  24455. needs root access to check authentication.
  24456. .UNINDENT
  24457. .UNINDENT
  24458. .sp
  24459. As of Salt 0.9.10 it is possible to run Salt as a non\-root user. This can be
  24460. done by setting the \fBuser\fP parameter in the master configuration
  24461. file. and restarting the \fBsalt\-master\fP service.
  24462. .sp
  24463. The minion has its own \fBuser\fP parameter as well, but running the
  24464. minion as an unprivileged user will keep it from making changes to things like
  24465. users, installed packages, etc. unless access controls (sudo, etc.) are setup
  24466. on the minion to permit the non\-root user to make the needed changes.
  24467. .sp
  24468. In order to allow Salt to successfully run as a non\-root user, ownership, and
  24469. permissions need to be set such that the desired user can read from and write
  24470. to the following directories (and their subdirectories, where applicable):
  24471. .INDENT 0.0
  24472. .IP \(bu 2
  24473. /etc/salt
  24474. .IP \(bu 2
  24475. /var/cache/salt
  24476. .IP \(bu 2
  24477. /var/log/salt
  24478. .IP \(bu 2
  24479. /var/run/salt
  24480. .UNINDENT
  24481. .sp
  24482. Ownership can be easily changed with \fBchown\fP, like so:
  24483. .INDENT 0.0
  24484. .INDENT 3.5
  24485. .sp
  24486. .nf
  24487. .ft C
  24488. # chown \-R user /etc/salt /var/cache/salt /var/log/salt /var/run/salt
  24489. .ft P
  24490. .fi
  24491. .UNINDENT
  24492. .UNINDENT
  24493. .sp
  24494. \fBWARNING:\fP
  24495. .INDENT 0.0
  24496. .INDENT 3.5
  24497. Running either the master or minion with the \fBroot_dir\fP
  24498. parameter specified will affect these paths, as will setting options like
  24499. \fBpki_dir\fP, \fBcachedir\fP, \fBlog_file\fP,
  24500. and other options that normally live in the above directories.
  24501. .UNINDENT
  24502. .UNINDENT
  24503. .SS Using cron with Salt
  24504. .sp
  24505. The Salt Minion can initiate its own highstate using
  24506. the \fBsalt\-call\fP command.
  24507. .INDENT 0.0
  24508. .INDENT 3.5
  24509. .sp
  24510. .nf
  24511. .ft C
  24512. $ salt\-call state.apply
  24513. .ft P
  24514. .fi
  24515. .UNINDENT
  24516. .UNINDENT
  24517. .sp
  24518. This will cause the minion to check in with the master and ensure it is in the
  24519. correct "state".
  24520. .SS Use cron to initiate a highstate
  24521. .sp
  24522. If you would like the Salt Minion to regularly check in with the master you can
  24523. use cron to run the \fBsalt\-call\fP command:
  24524. .INDENT 0.0
  24525. .INDENT 3.5
  24526. .sp
  24527. .nf
  24528. .ft C
  24529. 0 0 * * * salt\-call state.apply
  24530. .ft P
  24531. .fi
  24532. .UNINDENT
  24533. .UNINDENT
  24534. .sp
  24535. The above cron entry will run a highstate every day
  24536. at midnight.
  24537. .sp
  24538. \fBNOTE:\fP
  24539. .INDENT 0.0
  24540. .INDENT 3.5
  24541. When executing Salt using cron, keep in mind that the default PATH for cron
  24542. may not include the path for any scripts or commands used by Salt, and it
  24543. may be necessary to set the PATH accordingly in the crontab:
  24544. .INDENT 0.0
  24545. .INDENT 3.5
  24546. .sp
  24547. .nf
  24548. .ft C
  24549. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin
  24550. 0 0 * * * salt\-call state.apply
  24551. .ft P
  24552. .fi
  24553. .UNINDENT
  24554. .UNINDENT
  24555. .UNINDENT
  24556. .UNINDENT
  24557. .SS Hardening Salt
  24558. .sp
  24559. This topic contains tips you can use to secure and harden your Salt
  24560. environment. How you best secure and harden your Salt environment depends
  24561. heavily on how you use Salt, where you use Salt, how your team is structured,
  24562. where you get data from, and what kinds of access (internal and external) you
  24563. require.
  24564. .sp
  24565. \fBWARNING:\fP
  24566. .INDENT 0.0
  24567. .INDENT 3.5
  24568. For historical reasons, Salt requires PyCrypto as a "lowest common
  24569. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  24570. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  24571. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  24572. .UNINDENT
  24573. .UNINDENT
  24574. .SS General hardening tips
  24575. .INDENT 0.0
  24576. .IP \(bu 2
  24577. Restrict who can directly log into your Salt master system.
  24578. .IP \(bu 2
  24579. Use SSH keys secured with a passphrase to gain access to the Salt master system.
  24580. .IP \(bu 2
  24581. Track and secure SSH keys and any other login credentials you and your team
  24582. need to gain access to the Salt master system.
  24583. .IP \(bu 2
  24584. Use a hardened bastion server or a VPN to restrict direct access to the Salt
  24585. master from the internet.
  24586. .IP \(bu 2
  24587. Don\(aqt expose the Salt master any more than what is required.
  24588. .IP \(bu 2
  24589. Harden the system as you would with any high\-priority target.
  24590. .IP \(bu 2
  24591. Keep the system patched and up\-to\-date.
  24592. .IP \(bu 2
  24593. Use tight firewall rules. Pay particular attention to TCP/4505 and TCP/4506
  24594. on the salt master and avoid exposing these ports unnecessarily.
  24595. .UNINDENT
  24596. .SS Salt hardening tips
  24597. .INDENT 0.0
  24598. .IP \(bu 2
  24599. Subscribe to \fI\%salt\-users\fP or \fI\%salt\-announce\fP so you know when new Salt
  24600. releases are available. Keep your systems up\-to\-date with the latest patches.
  24601. .IP \(bu 2
  24602. Use Salt\(aqs Client ACL system to avoid having to give out root
  24603. access in order to run Salt commands.
  24604. .IP \(bu 2
  24605. Use Salt\(aqs Client ACL system to restrict which users can run what commands.
  24606. .IP \(bu 2
  24607. Use external Pillar to pull data into Salt from
  24608. external sources so that non\-sysadmins (other teams, junior admins,
  24609. developers, etc) can provide configuration data without needing access to the
  24610. Salt master.
  24611. .IP \(bu 2
  24612. Make heavy use of SLS files that are version\-controlled and go through
  24613. a peer\-review/code\-review process before they\(aqre deployed and run in
  24614. production. This is good advice even for "one\-off" CLI commands because it
  24615. helps mitigate typos and mistakes.
  24616. .IP \(bu 2
  24617. Use salt\-api, SSL, and restrict authentication with the external auth system if you need to expose your Salt master to external
  24618. services.
  24619. .IP \(bu 2
  24620. Make use of Salt\(aqs event system and reactor to allow minions
  24621. to signal the Salt master without requiring direct access.
  24622. .IP \(bu 2
  24623. Run the \fBsalt\-master\fP daemon as non\-root.
  24624. .IP \(bu 2
  24625. Disable which modules are loaded onto minions with the
  24626. \fBdisable_modules\fP setting. (for example, disable the \fBcmd\fP
  24627. module if it makes sense in your environment.)
  24628. .IP \(bu 2
  24629. Look through the fully\-commented sample master and minion config files. There are many options for
  24630. securing an installation.
  24631. .IP \(bu 2
  24632. Run masterless\-mode minions on
  24633. particularly sensitive minions. There is also salt\-ssh or the
  24634. \fBmodules.sudo\fP if you need to further restrict
  24635. a minion.
  24636. .IP \(bu 2
  24637. Monitor specific security releated log messages. Salt \fBsalt\-master\fP logs
  24638. attempts to access methods which are not exposed to network clients. These log
  24639. messages are logged at the \fBerror\fP log level and start with \fBRequested
  24640. method not exposed\fP\&.
  24641. .UNINDENT
  24642. .SS Security disclosure policy
  24643. .INDENT 0.0
  24644. .TP
  24645. .B email
  24646. \fI\%security@saltstack.com\fP
  24647. .TP
  24648. .B gpg key ID
  24649. 4EA0793D
  24650. .TP
  24651. .B gpg key fingerprint
  24652. \fB8ABE 4EFC F0F4 B24B FF2A AF90 D570 F2D3 4EA0 793D\fP
  24653. .UNINDENT
  24654. .sp
  24655. \fBgpg public key:\fP
  24656. .INDENT 0.0
  24657. .INDENT 3.5
  24658. .sp
  24659. .nf
  24660. .ft C
  24661. \-\-\-\-\-BEGIN PGP PUBLIC KEY BLOCK\-\-\-\-\-
  24662. mQINBFO15mMBEADa3CfQwk5ED9wAQ8fFDku277CegG3U1hVGdcxqKNvucblwoKCb
  24663. hRK6u9ihgaO9V9duV2glwgjytiBI/z6lyWqdaD37YXG/gTL+9Md+qdSDeaOa/9eg
  24664. 7y+g4P+FvU9HWUlujRVlofUn5Dj/IZgUywbxwEybutuzvvFVTzsn+DFVwTH34Qoh
  24665. QIuNzQCSEz3Lhh8zq9LqkNy91ZZQO1ZIUrypafspH6GBHHcE8msBFgYiNBnVcUFH
  24666. u0r4j1Rav+621EtD5GZsOt05+NJI8pkaC/dDKjURcuiV6bhmeSpNzLaXUhwx6f29
  24667. Vhag5JhVGGNQxlRTxNEM86HEFp+4zJQ8m/wRDrGX5IAHsdESdhP+ljDVlAAX/ttP
  24668. /Ucl2fgpTnDKVHOA00E515Q87ZHv6awJ3GL1veqi8zfsLaag7rw1TuuHyGLOPkDt
  24669. t5PAjsS9R3KI7pGnhqI6bTOi591odUdgzUhZChWUUX1VStiIDi2jCvyoOOLMOGS5
  24670. AEYXuWYP7KgujZCDRaTNqRDdgPd93Mh9JI8UmkzXDUgijdzVpzPjYgFaWtyK8lsc
  24671. Fizqe3/Yzf9RCVX/lmRbiEH+ql/zSxcWlBQd17PKaL+TisQFXcmQzccYgAxFbj2r
  24672. QHp5ABEu9YjFme2Jzun7Mv9V4qo3JF5dmnUk31yupZeAOGZkirIsaWC3hwARAQAB
  24673. tDBTYWx0U3RhY2sgU2VjdXJpdHkgVGVhbSA8c2VjdXJpdHlAc2FsdHN0YWNrLmNv
  24674. bT6JAj4EEwECACgFAlO15mMCGwMFCQeGH4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
  24675. AheAAAoJENVw8tNOoHk9z/MP/2vzY27fmVxU5X8joiiturjlgEqQw41IYEmWv1Bw
  24676. 4WVXYCHP1yu/1MC1uuvOmOd5BlI8YO2C2oyW7d1B0NorguPtz55b7jabCElekVCh
  24677. h/H4ZVThiwqgPpthRv/2npXjIm7SLSs/kuaXo6Qy2JpszwDVFw+xCRVL0tH9KJxz
  24678. HuNBeVq7abWD5fzIWkmGM9hicG/R2D0RIlco1Q0VNKy8klG+pOFOW886KnwkSPc7
  24679. JUYp1oUlHsSlhTmkLEG54cyVzrTP/XuZuyMTdtyTc3mfgW0adneAL6MARtC5UB/h
  24680. q+v9dqMf4iD3wY6ctu8KWE8Vo5MUEsNNO9EA2dUR88LwFZ3ZnnXdQkizgR/Aa515
  24681. dm17vlNkSoomYCo84eN7GOTfxWcq+iXYSWcKWT4X+h/ra+LmNndQWQBRebVUtbKE
  24682. ZDwKmiQz/5LY5EhlWcuU4lVmMSFpWXt5FR/PtzgTdZAo9QKkBjcv97LYbXvsPI69
  24683. El1BLAg+m+1UpE1L7zJT1il6PqVyEFAWBxW46wXCCkGssFsvz2yRp0PDX8A6u4yq
  24684. rTkt09uYht1is61joLDJ/kq3+6k8gJWkDOW+2NMrmf+/qcdYCMYXmrtOpg/wF27W
  24685. GMNAkbdyzgeX/MbUBCGCMdzhevRuivOI5bu4vT5s3KdshG+yhzV45bapKRd5VN+1
  24686. mZRqiQJVBBMBCAA/AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBIq+Tvzw
  24687. 9LJL/yqvkNVw8tNOoHk9BQJe1uRXBQkPoTz0AAoJENVw8tNOoHk9akAQANKIDIBY
  24688. J3DmWH3g6rWURdREQcBVfMkw6j5MHlIEwlGrN3whSaPv2KR3tatRccBCQ0olQeYb
  24689. ZeFtPuf0Du+LqGaAePo5DkPNU7GHoba2+ZE/sJ4wZ4CzAQM6+LvH2iLHeLZ1VLlu
  24690. ZEftxD1RFKTqpnav8KiyYGkeFuEn4eMSIhbudp/8wkN40sCWL22D141EhVSRvLlO
  24691. BMUpTWdtSYTg0F2pgQL5U2A56syuiwUwPXzQb45JEJILmG8zkeJB9s8kGtErypIH
  24692. P+qxJXq24woGUFeJjiLdiOhI6/YoVBACUkKmig36CGf/DH5NAeQECeZq3YBNp7XK
  24693. tsF1dPitxuTM/UkOHoHUnGhDlBcQMWe9WuBK4rA+7GH9NT8o7M6+2OKhk181tJ+s
  24694. Y2kP7RSXOV162thRsNvVImXajAIFTR3ksEDFGVq/4jh85jFoIbNH3x27NxOu6e2p
  24695. OIkXNXmSFXLUmwbfEfIk06gqP3xzkaj+eWHcLDkn9bUKblBJhHdhf9Vsy/N2NRW2
  24696. 23c64qDutw1NX7msDuN3KXisim+isBzPVVzymkkhkXK+UpjrRR0ePvph3fnGf1bc
  24697. NipVtn1KKM7kurSrSjFVLwLi52SGnEHKJnbbhh+AKV09SNYi6IaKL8yw8c1d0K80
  24698. PlBaJEvkC6myzaaRtYcna4pbiIysBaZtwDOOuQINBFO15mMBEAC5UuLii9ZLz6qH
  24699. fIJp35IOW9U8SOf7QFhzXR7NZ3DmJsd3f6Nb/habQFIHjm3K9wbpj+FvaW2oWRlF
  24700. VvYdzjUq6c82GUUjW1dnqgUvFwdmM8351n0YQ2TonmyaF882RvsRZrbJ65uvy7SQ
  24701. xlouXaAYOdqwLsPxBEOyOnMPSktW5V2UIWyxsNP3sADchWIGq9p5D3Y/loyIMsS1
  24702. dj+TjoQZOKSj7CuRT98+8yhGAY8YBEXu9r3I9o6mDkuPpAljuMc8r09Im6az2egt
  24703. K/szKt4Hy1bpSSBZU4W/XR7XwQNywmb3wxjmYT6Od3Mwj0jtzc3gQiH8hcEy3+BO
  24704. +NNmyzFVyIwOLziwjmEcw62S57wYKUVnHD2nglMsQa8Ve0e6ABBMEY7zGEGStva5
  24705. 9rfgeh0jUMJiccGiUDTMs0tdkC6knYKbu/fdRqNYFoNuDcSeLEw4DdCuP01l2W4y
  24706. Y+fiK6hAcL25amjzc+yYo9eaaqTn6RATbzdhHQZdpAMxY+vNT0+NhP1Zo5gYBMR6
  24707. 5Zp/VhFsf67ijb03FUtdw9N8dHwiR2m8vVA8kO/gCD6wS2p9RdXqrJ9JhnHYWjiV
  24708. uXR+f755ZAndyQfRtowMdQIoiXuJEXYw6XN+/BX81gJaynJYc0uw0MnxWQX+A5m8
  24709. HqEsbIFUXBYXPgbwXTm7c4IHGgXXdwARAQABiQI8BBgBCAAmAhsMFiEEir5O/PD0
  24710. skv/Kq+Q1XDy006geT0FAl7W5K0FCQ+hPUoACgkQ1XDy006geT1Q0Q//atnw1D4J
  24711. 13nL8Mygk+ANY4Xljub/TeZqKtzmnWGso843XysErLH1adCu1KDX1Dj4/o3WoPOt
  24712. 0O78uSS81N428ocOPKx+fA63n7q1mRqHHy6pLLVKoT66tmvE1ZN0ObaiPK9IxZkB
  24713. ThGlHJk9VaUg0vzAaRznogWeBh1dyZktVrtbUO5u4xDX9iql/unVmCWm+U1R7t4q
  24714. fqPEbk8ZnWc7x4bAZf8/vSQ93mAbpnRRuJdDK9tsiuhl8pRz7OyzvMS81rVF75ja
  24715. 7CcShPofrW4yZ7FqAUMwTbfrvsAraWmDjW17Ao7C2dUA9ViwSKJ6u6Pd5no/hwbm
  24716. jVoxtO2RvjGOBxKneD36uENAUMBExjDTkSHmOxUYSknrEKUy7P1OL2ZHLG8/rouN
  24717. 5ZvIxHiMkz12ukSt29IHvCngn1UB4/7+tvDHqug4ZAZPuwH7TC5Hk6WO0OoK8Eb2
  24718. sQa2QoehQjwK0IakGd5kFEqKgbrwYPPa3my7l58nOZmPHdMcTOzgKvUEYAITjsT4
  24719. oOtocs9Nj+cfCfp6YUn6JeYfiHs+Xhze5igdWIl0ZO5rTmbqcD8A1URKBds0WA+G
  24720. FLP9shPC0rS/L3Y1fKhqAc0h+znWBU6xjipTkmzh3FdM8gGT6g9YwGQNbi/x47k5
  24721. vtBIWO4LPeGEvb2Gs65PL2eouOqU6yvBr5Y=
  24722. =F/97
  24723. \-\-\-\-\-END PGP PUBLIC KEY BLOCK\-\-\-\-\-
  24724. .ft P
  24725. .fi
  24726. .UNINDENT
  24727. .UNINDENT
  24728. .sp
  24729. The SaltStack Security Team is available at \fI\%security@saltstack.com\fP for
  24730. security\-related bug reports or questions.
  24731. .sp
  24732. We request the disclosure of any security\-related bugs or issues be reported
  24733. non\-publicly until such time as the issue can be resolved and a security\-fix
  24734. release can be prepared. At that time we will release the fix and make a public
  24735. announcement with upgrade instructions and download locations.
  24736. .SS Security response procedure
  24737. .sp
  24738. SaltStack takes security and the trust of our customers and users very
  24739. seriously. Our disclosure policy is intended to resolve security issues as
  24740. quickly and safely as is possible.
  24741. .INDENT 0.0
  24742. .IP 1. 3
  24743. A security report sent to \fI\%security@saltstack.com\fP is assigned to a team
  24744. member. This person is the primary contact for questions and will
  24745. coordinate the fix, release, and announcement.
  24746. .IP 2. 3
  24747. The reported issue is reproduced and confirmed. A list of affected projects
  24748. and releases is made.
  24749. .IP 3. 3
  24750. Fixes are implemented for all affected projects and releases that are
  24751. actively supported. Back\-ports of the fix are made to any old releases that
  24752. are actively supported.
  24753. .IP 4. 3
  24754. Packagers are notified via the \fI\%salt\-packagers\fP mailing list that an issue
  24755. was reported and resolved, and that an announcement is incoming.
  24756. .IP 5. 3
  24757. A new release is created and pushed to all affected repositories. The
  24758. release documentation provides a full description of the issue, plus any
  24759. upgrade instructions or other relevant details.
  24760. .IP 6. 3
  24761. An announcement is made to the \fI\%salt\-users\fP and \fI\%salt\-announce\fP mailing
  24762. lists. The announcement contains a description of the issue and a link to
  24763. the full release documentation and download locations.
  24764. .UNINDENT
  24765. .SS Receiving security announcements
  24766. .sp
  24767. The fastest place to receive security announcements is via the \fI\%salt\-announce\fP
  24768. mailing list. This list is low\-traffic.
  24769. .SS Salt Transport
  24770. .sp
  24771. One of fundamental features of Salt is remote execution. Salt has two basic
  24772. "channels" for communicating with minions. Each channel requires a
  24773. client (minion) and a server (master) implementation to work within Salt. These
  24774. pairs of channels will work together to implement the specific message passing
  24775. required by the channel interface.
  24776. .SS Pub Channel
  24777. .sp
  24778. The pub channel, or publish channel, is how a master sends a job (payload) to a
  24779. minion. This is a basic pub/sub paradigm, which has specific targeting semantics.
  24780. All data which goes across the publish system should be encrypted such that only
  24781. members of the Salt cluster can decrypt the publishes.
  24782. .SS Req Channel
  24783. .sp
  24784. The req channel is how the minions send data to the master. This interface is
  24785. primarily used for fetching files and returning job returns. The req channels
  24786. have two basic interfaces when talking to the master. \fBsend\fP is the basic
  24787. method that guarantees the message is encrypted at least so that only minions
  24788. attached to the same master can read it\-\- but no guarantee of minion\-master
  24789. confidentiality, whereas the \fBcrypted_transfer_decode_dictentry\fP method does
  24790. guarantee minion\-master confidentiality.
  24791. .SS Zeromq Transport
  24792. .sp
  24793. \fBNOTE:\fP
  24794. .INDENT 0.0
  24795. .INDENT 3.5
  24796. Zeromq is the current default transport within Salt
  24797. .UNINDENT
  24798. .UNINDENT
  24799. .sp
  24800. Zeromq is a messaging library with bindings into many languages. Zeromq implements
  24801. a socket interface for message passing, with specific semantics for the socket type.
  24802. .SS Pub Channel
  24803. .sp
  24804. The pub channel is implemented using zeromq\(aqs pub/sub sockets. By default we don\(aqt
  24805. use zeromq\(aqs filtering, which means that all publish jobs are sent to all minions
  24806. and filtered minion side. Zeromq does have publisher side filtering which can be
  24807. enabled in salt using \fBzmq_filtering\fP\&.
  24808. .SS Req Channel
  24809. .sp
  24810. The req channel is implemented using zeromq\(aqs req/rep sockets. These sockets
  24811. enforce a send/recv pattern, which forces salt to serialize messages through these
  24812. socket pairs. This means that although the interface is asynchronous on the minion
  24813. we cannot send a second message until we have received the reply of the first message.
  24814. .SS TCP Transport
  24815. .sp
  24816. The tcp transport is an implementation of Salt\(aqs channels using raw tcp sockets.
  24817. Since this isn\(aqt using a pre\-defined messaging library we will describe the wire
  24818. protocol, message semantics, etc. in this document.
  24819. .sp
  24820. The tcp transport is enabled by changing the \fBtransport\fP setting
  24821. to \fBtcp\fP on each Salt minion and Salt master.
  24822. .INDENT 0.0
  24823. .INDENT 3.5
  24824. .sp
  24825. .nf
  24826. .ft C
  24827. transport: tcp
  24828. .ft P
  24829. .fi
  24830. .UNINDENT
  24831. .UNINDENT
  24832. .sp
  24833. \fBWARNING:\fP
  24834. .INDENT 0.0
  24835. .INDENT 3.5
  24836. We currently recommend that when using Syndics that all Masters and Minions
  24837. use the same transport. We\(aqre investigating a report of an error when using
  24838. mixed transport types at very heavy loads.
  24839. .UNINDENT
  24840. .UNINDENT
  24841. .SS Wire Protocol
  24842. .sp
  24843. This implementation over TCP focuses on flexibility over absolute efficiency.
  24844. This means we are okay to spend a couple of bytes of wire space for flexibility
  24845. in the future. That being said, the wire framing is quite efficient and looks
  24846. like:
  24847. .INDENT 0.0
  24848. .INDENT 3.5
  24849. .sp
  24850. .nf
  24851. .ft C
  24852. msgpack({\(aqhead\(aq: SOMEHEADER, \(aqbody\(aq: SOMEBODY})
  24853. .ft P
  24854. .fi
  24855. .UNINDENT
  24856. .UNINDENT
  24857. .sp
  24858. Since msgpack is an iterably parsed serialization, we can simply write the serialized
  24859. payload to the wire. Within that payload we have two items "head" and "body".
  24860. Head contains header information (such as "message id"). The Body contains the
  24861. actual message that we are sending. With this flexible wire protocol we can
  24862. implement any message semantics that we\(aqd like\-\- including multiplexed message
  24863. passing on a single socket.
  24864. .SS TLS Support
  24865. .sp
  24866. New in version 2016.11.1.
  24867. .sp
  24868. The TCP transport allows for the master/minion communication to be optionally
  24869. wrapped in a TLS connection. Enabling this is simple, the master and minion need
  24870. to be using the tcp connection, then the \fIssl\fP option is enabled. The \fIssl\fP
  24871. option is passed as a dict and corresponds to the options passed to the
  24872. Python \fIssl.wrap_socket <https://docs.python.org/2/library/ssl.html#ssl.wrap_socket>\fP
  24873. function.
  24874. .sp
  24875. A simple setup looks like this, on the Salt Master add the \fIssl\fP option to the
  24876. master configuration file:
  24877. .INDENT 0.0
  24878. .INDENT 3.5
  24879. .sp
  24880. .nf
  24881. .ft C
  24882. ssl:
  24883. keyfile: <path_to_keyfile>
  24884. certfile: <path_to_certfile>
  24885. ssl_version: PROTOCOL_TLSv1_2
  24886. .ft P
  24887. .fi
  24888. .UNINDENT
  24889. .UNINDENT
  24890. .sp
  24891. The minimal \fIssl\fP option in the minion configuration file looks like this:
  24892. .INDENT 0.0
  24893. .INDENT 3.5
  24894. .sp
  24895. .nf
  24896. .ft C
  24897. ssl: True
  24898. # Versions below 2016.11.4:
  24899. ssl: {}
  24900. .ft P
  24901. .fi
  24902. .UNINDENT
  24903. .UNINDENT
  24904. .sp
  24905. Specific options can be sent to the minion also, as defined in the Python
  24906. \fIssl.wrap_socket\fP function.
  24907. .sp
  24908. \fBNOTE:\fP
  24909. .INDENT 0.0
  24910. .INDENT 3.5
  24911. While setting the ssl_version is not required, we recommend it. Some older
  24912. versions of python do not support the latest TLS protocol and if this is
  24913. the case for your version of python we strongly recommend upgrading your
  24914. version of Python.
  24915. .UNINDENT
  24916. .UNINDENT
  24917. .SS Crypto
  24918. .sp
  24919. The current implementation uses the same crypto as the \fBzeromq\fP transport.
  24920. .SS Pub Channel
  24921. .sp
  24922. For the pub channel we send messages without "message ids" which the remote end
  24923. interprets as a one\-way send.
  24924. .sp
  24925. \fBNOTE:\fP
  24926. .INDENT 0.0
  24927. .INDENT 3.5
  24928. As of today we send all publishes to all minions and rely on minion\-side filtering.
  24929. .UNINDENT
  24930. .UNINDENT
  24931. .SS Req Channel
  24932. .sp
  24933. For the req channel we send messages with a "message id". This "message id" allows
  24934. us to multiplex messages across the socket.
  24935. .SS Master Tops System
  24936. .sp
  24937. In 0.10.4 the \fIexternal_nodes\fP system was upgraded to allow for modular
  24938. subsystems to be used to generate the top file data for a highstate run on the master.
  24939. .sp
  24940. The old \fIexternal_nodes\fP option has been removed. The master tops system
  24941. provides a pluggable and extendable replacement for it, allowing for multiple
  24942. different subsystems to provide top file data.
  24943. .sp
  24944. Using the new \fImaster_tops\fP option is simple:
  24945. .INDENT 0.0
  24946. .INDENT 3.5
  24947. .sp
  24948. .nf
  24949. .ft C
  24950. master_tops:
  24951. ext_nodes: cobbler\-external\-nodes
  24952. .ft P
  24953. .fi
  24954. .UNINDENT
  24955. .UNINDENT
  24956. .sp
  24957. for \fBCobbler\fP or:
  24958. .INDENT 0.0
  24959. .INDENT 3.5
  24960. .sp
  24961. .nf
  24962. .ft C
  24963. master_tops:
  24964. reclass:
  24965. inventory_base_uri: /etc/reclass
  24966. classes_uri: roles
  24967. .ft P
  24968. .fi
  24969. .UNINDENT
  24970. .UNINDENT
  24971. .sp
  24972. for \fBReclass\fP\&.
  24973. .INDENT 0.0
  24974. .INDENT 3.5
  24975. .sp
  24976. .nf
  24977. .ft C
  24978. master_tops:
  24979. varstack: /path/to/the/config/file/varstack.yaml
  24980. .ft P
  24981. .fi
  24982. .UNINDENT
  24983. .UNINDENT
  24984. .sp
  24985. for \fBVarstack\fP\&.
  24986. .sp
  24987. It\(aqs also possible to create custom master_tops modules. Simply place them into
  24988. \fBsalt://_tops\fP in the Salt fileserver and use the
  24989. \fBsaltutil.sync_tops\fP runner to sync
  24990. them. If this runner function is not available, they can manually be placed
  24991. into \fBextmods/tops\fP, relative to the master cachedir (in most cases the full
  24992. path will be \fB/var/cache/salt/master/extmods/tops\fP).
  24993. .sp
  24994. Custom tops modules are written like any other execution module, see the source
  24995. for the two modules above for examples of fully functional ones. Below is a
  24996. bare\-bones example:
  24997. .sp
  24998. \fB/etc/salt/master:\fP
  24999. .INDENT 0.0
  25000. .INDENT 3.5
  25001. .sp
  25002. .nf
  25003. .ft C
  25004. master_tops:
  25005. customtop: True
  25006. .ft P
  25007. .fi
  25008. .UNINDENT
  25009. .UNINDENT
  25010. .sp
  25011. \fBcustomtop.py:\fP (custom master_tops module)
  25012. .INDENT 0.0
  25013. .INDENT 3.5
  25014. .sp
  25015. .nf
  25016. .ft C
  25017. import logging
  25018. import sys
  25019. # Define the module\(aqs virtual name
  25020. __virtualname__ = "customtop"
  25021. log = logging.getLogger(__name__)
  25022. def __virtual__():
  25023. return __virtualname__
  25024. def top(**kwargs):
  25025. log.debug("Calling top in customtop")
  25026. return {"base": ["test"]}
  25027. .ft P
  25028. .fi
  25029. .UNINDENT
  25030. .UNINDENT
  25031. .sp
  25032. \fIsalt minion state.show_top\fP should then display something like:
  25033. .INDENT 0.0
  25034. .INDENT 3.5
  25035. .sp
  25036. .nf
  25037. .ft C
  25038. $ salt minion state.show_top
  25039. minion
  25040. \-\-\-\-\-\-\-\-\-\-
  25041. base:
  25042. \- test
  25043. .ft P
  25044. .fi
  25045. .UNINDENT
  25046. .UNINDENT
  25047. .sp
  25048. \fBNOTE:\fP
  25049. .INDENT 0.0
  25050. .INDENT 3.5
  25051. If a master_tops module returns top file data for a
  25052. given minion, it will be added to the states configured in the top file. It
  25053. will \fInot\fP replace it altogether. The 2018.3.0 release adds additional
  25054. functionality allowing a minion to treat master_tops as the single source
  25055. of truth, irrespective of the top file.
  25056. .UNINDENT
  25057. .UNINDENT
  25058. .SS Returners
  25059. .sp
  25060. By default the return values of the commands sent to the Salt minions are
  25061. returned to the Salt master, however anything at all can be done with the results
  25062. data.
  25063. .sp
  25064. By using a Salt returner, results data can be redirected to external data\-stores
  25065. for analysis and archival.
  25066. .sp
  25067. Returners pull their configuration values from the Salt minions. Returners are only
  25068. configured once, which is generally at load time.
  25069. .sp
  25070. The returner interface allows the return data to be sent to any system that
  25071. can receive data. This means that return data can be sent to a Redis server,
  25072. a MongoDB server, a MySQL server, or any system.
  25073. .sp
  25074. \fBSEE ALSO:\fP
  25075. .INDENT 0.0
  25076. .INDENT 3.5
  25077. Full list of builtin returners
  25078. .UNINDENT
  25079. .UNINDENT
  25080. .SS Using Returners
  25081. .sp
  25082. All Salt commands will return the command data back to the master. Specifying
  25083. returners will ensure that the data is _also_ sent to the specified returner
  25084. interfaces.
  25085. .sp
  25086. Specifying what returners to use is done when the command is invoked:
  25087. .INDENT 0.0
  25088. .INDENT 3.5
  25089. .sp
  25090. .nf
  25091. .ft C
  25092. salt \(aq*\(aq test.version \-\-return redis_return
  25093. .ft P
  25094. .fi
  25095. .UNINDENT
  25096. .UNINDENT
  25097. .sp
  25098. This command will ensure that the redis_return returner is used.
  25099. .sp
  25100. It is also possible to specify multiple returners:
  25101. .INDENT 0.0
  25102. .INDENT 3.5
  25103. .sp
  25104. .nf
  25105. .ft C
  25106. salt \(aq*\(aq test.version \-\-return mongo_return,redis_return,cassandra_return
  25107. .ft P
  25108. .fi
  25109. .UNINDENT
  25110. .UNINDENT
  25111. .sp
  25112. In this scenario all three returners will be called and the data from the
  25113. test.version command will be sent out to the three named returners.
  25114. .SS Writing a Returner
  25115. .sp
  25116. Returners are Salt modules that allow the redirection of results data to targets other than the Salt Master.
  25117. .SS Returners Are Easy To Write!
  25118. .sp
  25119. Writing a Salt returner is straightforward.
  25120. .sp
  25121. A returner is a Python module containing at minimum a \fBreturner\fP function.
  25122. Other optional functions can be included to add support for
  25123. \fBmaster_job_cache\fP, external\-job\-cache, and \fI\%Event Returners\fP\&.
  25124. .INDENT 0.0
  25125. .TP
  25126. .B \fBreturner\fP
  25127. The \fBreturner\fP function must accept a single argument. The argument
  25128. contains return data from the called minion function. If the minion
  25129. function \fBtest.version\fP is called, the value of the argument will be a
  25130. dictionary. Run the following command from a Salt master to get a sample
  25131. of the dictionary:
  25132. .UNINDENT
  25133. .INDENT 0.0
  25134. .INDENT 3.5
  25135. .sp
  25136. .nf
  25137. .ft C
  25138. salt\-call \-\-local \-\-metadata test.version \-\-out=pprint
  25139. .ft P
  25140. .fi
  25141. .UNINDENT
  25142. .UNINDENT
  25143. .INDENT 0.0
  25144. .INDENT 3.5
  25145. .sp
  25146. .nf
  25147. .ft C
  25148. import redis
  25149. import salt.utils.json
  25150. def returner(ret):
  25151. """
  25152. Return information to a redis server
  25153. """
  25154. # Get a redis connection
  25155. serv = redis.Redis(host="redis\-serv.example.com", port=6379, db="0")
  25156. serv.sadd("%(id)s:jobs" % ret, ret["jid"])
  25157. serv.set("%(jid)s:%(id)s" % ret, salt.utils.json.dumps(ret["return"]))
  25158. serv.sadd("jobs", ret["jid"])
  25159. serv.sadd(ret["jid"], ret["id"])
  25160. .ft P
  25161. .fi
  25162. .UNINDENT
  25163. .UNINDENT
  25164. .sp
  25165. The above example of a returner set to send the data to a Redis server
  25166. serializes the data as JSON and sets it in redis.
  25167. .SS Using Custom Returner Modules
  25168. .sp
  25169. Place custom returners in a \fB_returners/\fP directory within the
  25170. \fBfile_roots\fP specified by the master config file.
  25171. .sp
  25172. Custom returners are distributed when any of the following are called:
  25173. .INDENT 0.0
  25174. .IP \(bu 2
  25175. \fBstate.apply\fP
  25176. .IP \(bu 2
  25177. \fBsaltutil.sync_returners\fP
  25178. .IP \(bu 2
  25179. \fBsaltutil.sync_all\fP
  25180. .UNINDENT
  25181. .sp
  25182. Any custom returners which have been synced to a minion that are named the
  25183. same as one of Salt\(aqs default set of returners will take the place of the
  25184. default returner with the same name.
  25185. .SS Naming the Returner
  25186. .sp
  25187. Note that a returner\(aqs default name is its filename (i.e. \fBfoo.py\fP becomes
  25188. returner \fBfoo\fP), but that its name can be overridden by using a
  25189. __virtual__ function\&. A good example of this can be
  25190. found in the \fI\%redis\fP returner, which is named \fBredis_return.py\fP but is
  25191. loaded as simply \fBredis\fP:
  25192. .INDENT 0.0
  25193. .INDENT 3.5
  25194. .sp
  25195. .nf
  25196. .ft C
  25197. try:
  25198. import redis
  25199. HAS_REDIS = True
  25200. except ImportError:
  25201. HAS_REDIS = False
  25202. __virtualname__ = "redis"
  25203. def __virtual__():
  25204. if not HAS_REDIS:
  25205. return False
  25206. return __virtualname__
  25207. .ft P
  25208. .fi
  25209. .UNINDENT
  25210. .UNINDENT
  25211. .SS Master Job Cache Support
  25212. .sp
  25213. \fBmaster_job_cache\fP, external\-job\-cache, and \fI\%Event Returners\fP\&.
  25214. Salt\(aqs \fBmaster_job_cache\fP allows returners to be used as a pluggable
  25215. replacement for the default_job_cache\&. In order to do so, a returner
  25216. must implement the following functions:
  25217. .sp
  25218. \fBNOTE:\fP
  25219. .INDENT 0.0
  25220. .INDENT 3.5
  25221. The code samples contained in this section were taken from the cassandra_cql
  25222. returner.
  25223. .UNINDENT
  25224. .UNINDENT
  25225. .INDENT 0.0
  25226. .TP
  25227. .B \fBprep_jid\fP
  25228. Ensures that job ids (jid) don\(aqt collide, unless passed_jid is provided.
  25229. .sp
  25230. \fBnocache\fP is an optional boolean that indicates if return data
  25231. should be cached. \fBpassed_jid\fP is a caller provided jid which should be
  25232. returned unconditionally.
  25233. .UNINDENT
  25234. .INDENT 0.0
  25235. .INDENT 3.5
  25236. .sp
  25237. .nf
  25238. .ft C
  25239. def prep_jid(nocache, passed_jid=None): # pylint: disable=unused\-argument
  25240. """
  25241. Do any work necessary to prepare a JID, including sending a custom id
  25242. """
  25243. return passed_jid if passed_jid is not None else salt.utils.jid.gen_jid()
  25244. .ft P
  25245. .fi
  25246. .UNINDENT
  25247. .UNINDENT
  25248. .INDENT 0.0
  25249. .TP
  25250. .B \fBsave_load\fP
  25251. Save job information. The \fBjid\fP is generated by \fBprep_jid\fP and should
  25252. be considered a unique identifier for the job. The jid, for example, could
  25253. be used as the primary/unique key in a database. The \fBload\fP is what is
  25254. returned to a Salt master by a minion. \fBminions\fP is a list of minions
  25255. that the job was run against. The following code example stores the load as
  25256. a JSON string in the salt.jids table.
  25257. .UNINDENT
  25258. .INDENT 0.0
  25259. .INDENT 3.5
  25260. .sp
  25261. .nf
  25262. .ft C
  25263. import salt.utils.json
  25264. def save_load(jid, load, minions=None):
  25265. """
  25266. Save the load to the specified jid id
  25267. """
  25268. query = """INSERT INTO salt.jids (
  25269. jid, load
  25270. ) VALUES (
  25271. \(aq{0}\(aq, \(aq{1}\(aq
  25272. );""".format(
  25273. jid, salt.utils.json.dumps(load)
  25274. )
  25275. # cassandra_cql.cql_query may raise a CommandExecutionError
  25276. try:
  25277. __salt__["cassandra_cql.cql_query"](query)
  25278. except CommandExecutionError:
  25279. log.critical("Could not save load in jids table.")
  25280. raise
  25281. except Exception as e:
  25282. log.critical("Unexpected error while inserting into jids: {0}".format(e))
  25283. raise
  25284. .ft P
  25285. .fi
  25286. .UNINDENT
  25287. .UNINDENT
  25288. .INDENT 0.0
  25289. .TP
  25290. .B \fBget_load\fP
  25291. must accept a job id (jid) and return the job load stored by \fBsave_load\fP,
  25292. or an empty dictionary when not found.
  25293. .UNINDENT
  25294. .INDENT 0.0
  25295. .INDENT 3.5
  25296. .sp
  25297. .nf
  25298. .ft C
  25299. def get_load(jid):
  25300. """
  25301. Return the load data that marks a specified jid
  25302. """
  25303. query = """SELECT load FROM salt.jids WHERE jid = \(aq{0}\(aq;""".format(jid)
  25304. ret = {}
  25305. # cassandra_cql.cql_query may raise a CommandExecutionError
  25306. try:
  25307. data = __salt__["cassandra_cql.cql_query"](query)
  25308. if data:
  25309. load = data[0].get("load")
  25310. if load:
  25311. ret = json.loads(load)
  25312. except CommandExecutionError:
  25313. log.critical("Could not get load from jids table.")
  25314. raise
  25315. except Exception as e:
  25316. log.critical(
  25317. """Unexpected error while getting load from
  25318. jids: {0}""".format(
  25319. str(e)
  25320. )
  25321. )
  25322. raise
  25323. return ret
  25324. .ft P
  25325. .fi
  25326. .UNINDENT
  25327. .UNINDENT
  25328. .SS External Job Cache Support
  25329. .sp
  25330. Salt\(aqs external\-job\-cache extends the \fBmaster_job_cache\fP\&. External
  25331. Job Cache support requires the following functions in addition to what is
  25332. required for Master Job Cache support:
  25333. .INDENT 0.0
  25334. .TP
  25335. .B \fBget_jid\fP
  25336. Return a dictionary containing the information (load) returned by each
  25337. minion when the specified job id was executed.
  25338. .UNINDENT
  25339. .sp
  25340. Sample:
  25341. .INDENT 0.0
  25342. .INDENT 3.5
  25343. .sp
  25344. .nf
  25345. .ft C
  25346. {
  25347. "local": {
  25348. "master_minion": {
  25349. "fun_args": [],
  25350. "jid": "20150330121011408195",
  25351. "return": "2018.3.4",
  25352. "retcode": 0,
  25353. "success": true,
  25354. "cmd": "_return",
  25355. "_stamp": "2015\-03\-30T12:10:12.708663",
  25356. "fun": "test.version",
  25357. "id": "master_minion"
  25358. }
  25359. }
  25360. }
  25361. .ft P
  25362. .fi
  25363. .UNINDENT
  25364. .UNINDENT
  25365. .INDENT 0.0
  25366. .TP
  25367. .B \fBget_fun\fP
  25368. Return a dictionary of minions that called a given Salt function as their
  25369. last function call.
  25370. .UNINDENT
  25371. .sp
  25372. Sample:
  25373. .INDENT 0.0
  25374. .INDENT 3.5
  25375. .sp
  25376. .nf
  25377. .ft C
  25378. {
  25379. "local": {
  25380. "minion1": "test.version",
  25381. "minion3": "test.version",
  25382. "minion2": "test.version"
  25383. }
  25384. }
  25385. .ft P
  25386. .fi
  25387. .UNINDENT
  25388. .UNINDENT
  25389. .INDENT 0.0
  25390. .TP
  25391. .B \fBget_jids\fP
  25392. Return a list of all job ids.
  25393. .UNINDENT
  25394. .sp
  25395. Sample:
  25396. .INDENT 0.0
  25397. .INDENT 3.5
  25398. .sp
  25399. .nf
  25400. .ft C
  25401. {
  25402. "local": [
  25403. "20150330121011408195",
  25404. "20150330195922139916"
  25405. ]
  25406. }
  25407. .ft P
  25408. .fi
  25409. .UNINDENT
  25410. .UNINDENT
  25411. .INDENT 0.0
  25412. .TP
  25413. .B \fBget_minions\fP
  25414. Returns a list of minions
  25415. .UNINDENT
  25416. .sp
  25417. Sample:
  25418. .INDENT 0.0
  25419. .INDENT 3.5
  25420. .sp
  25421. .nf
  25422. .ft C
  25423. {
  25424. "local": [
  25425. "minion3",
  25426. "minion2",
  25427. "minion1",
  25428. "master_minion"
  25429. ]
  25430. }
  25431. .ft P
  25432. .fi
  25433. .UNINDENT
  25434. .UNINDENT
  25435. .sp
  25436. Please refer to one or more of the existing returners (i.e. mysql,
  25437. cassandra_cql) if you need further clarification.
  25438. .SS Event Support
  25439. .sp
  25440. An \fBevent_return\fP function must be added to the returner module to allow
  25441. events to be logged from a master via the returner. A list of events are passed
  25442. to the function by the master.
  25443. .sp
  25444. The following example was taken from the MySQL returner. In this example, each
  25445. event is inserted into the salt_events table keyed on the event tag. The tag
  25446. contains the jid and therefore is guaranteed to be unique.
  25447. .INDENT 0.0
  25448. .INDENT 3.5
  25449. .sp
  25450. .nf
  25451. .ft C
  25452. import salt.utils.json
  25453. def event_return(events):
  25454. """
  25455. Return event to mysql server
  25456. Requires that configuration be enabled via \(aqevent_return\(aq
  25457. option in master config.
  25458. """
  25459. with _get_serv(events, commit=True) as cur:
  25460. for event in events:
  25461. tag = event.get("tag", "")
  25462. data = event.get("data", "")
  25463. sql = """INSERT INTO \(gasalt_events\(ga (\(gatag\(ga, \(gadata\(ga, \(gamaster_id\(ga )
  25464. VALUES (%s, %s, %s)"""
  25465. cur.execute(sql, (tag, salt.utils.json.dumps(data), __opts__["id"]))
  25466. .ft P
  25467. .fi
  25468. .UNINDENT
  25469. .UNINDENT
  25470. .SS Testing the Returner
  25471. .sp
  25472. The \fBreturner\fP, \fBprep_jid\fP, \fBsave_load\fP, \fBget_load\fP, and
  25473. \fBevent_return\fP functions can be tested by configuring the
  25474. \fBmaster_job_cache\fP and \fI\%Event Returners\fP in the master config
  25475. file and submitting a job to \fBtest.version\fP each minion from the master.
  25476. .sp
  25477. Once you have successfully exercised the Master Job Cache functions, test the
  25478. External Job Cache functions using the \fBret\fP execution module.
  25479. .INDENT 0.0
  25480. .INDENT 3.5
  25481. .sp
  25482. .nf
  25483. .ft C
  25484. salt\-call ret.get_jids cassandra_cql \-\-output=json
  25485. salt\-call ret.get_fun cassandra_cql test.version \-\-output=json
  25486. salt\-call ret.get_minions cassandra_cql \-\-output=json
  25487. salt\-call ret.get_jid cassandra_cql 20150330121011408195 \-\-output=json
  25488. .ft P
  25489. .fi
  25490. .UNINDENT
  25491. .UNINDENT
  25492. .SS Event Returners
  25493. .sp
  25494. For maximum visibility into the history of events across a Salt
  25495. infrastructure, all events seen by a salt master may be logged to one or
  25496. more returners.
  25497. .sp
  25498. To enable event logging, set the \fBevent_return\fP configuration option in the
  25499. master config to the returner(s) which should be designated as the handler
  25500. for event returns.
  25501. .sp
  25502. \fBNOTE:\fP
  25503. .INDENT 0.0
  25504. .INDENT 3.5
  25505. Not all returners support event returns. Verify a returner has an
  25506. \fBevent_return()\fP function before using.
  25507. .UNINDENT
  25508. .UNINDENT
  25509. .sp
  25510. \fBNOTE:\fP
  25511. .INDENT 0.0
  25512. .INDENT 3.5
  25513. On larger installations, many hundreds of events may be generated on a
  25514. busy master every second. Be certain to closely monitor the storage of
  25515. a given returner as Salt can easily overwhelm an underpowered server
  25516. with thousands of returns.
  25517. .UNINDENT
  25518. .UNINDENT
  25519. .SS Full List of Returners
  25520. .SS returner modules
  25521. .TS
  25522. center;
  25523. |l|l|.
  25524. _
  25525. T{
  25526. \fBappoptics_return\fP
  25527. T} T{
  25528. T}
  25529. _
  25530. T{
  25531. \fBcarbon_return\fP
  25532. T} T{
  25533. T}
  25534. _
  25535. T{
  25536. \fBcassandra_cql_return\fP
  25537. T} T{
  25538. T}
  25539. _
  25540. T{
  25541. \fBcassandra_return\fP
  25542. T} T{
  25543. T}
  25544. _
  25545. T{
  25546. \fBcouchbase_return\fP
  25547. T} T{
  25548. T}
  25549. _
  25550. T{
  25551. \fBcouchdb_return\fP
  25552. T} T{
  25553. T}
  25554. _
  25555. T{
  25556. \fBdjango_return\fP
  25557. T} T{
  25558. T}
  25559. _
  25560. T{
  25561. \fBelasticsearch_return\fP
  25562. T} T{
  25563. T}
  25564. _
  25565. T{
  25566. \fBetcd_return\fP
  25567. T} T{
  25568. T}
  25569. _
  25570. T{
  25571. \fBhighstate_return\fP
  25572. T} T{
  25573. T}
  25574. _
  25575. T{
  25576. \fBinfluxdb_return\fP
  25577. T} T{
  25578. T}
  25579. _
  25580. T{
  25581. \fBkafka_return\fP
  25582. T} T{
  25583. T}
  25584. _
  25585. T{
  25586. \fBlibrato_return\fP
  25587. T} T{
  25588. T}
  25589. _
  25590. T{
  25591. \fBlocal\fP
  25592. T} T{
  25593. 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
  25594. T}
  25595. _
  25596. T{
  25597. \fBlocal_cache\fP
  25598. T} T{
  25599. T}
  25600. _
  25601. T{
  25602. \fBmattermost_returner\fP
  25603. T} T{
  25604. T}
  25605. _
  25606. T{
  25607. \fBmemcache_return\fP
  25608. T} T{
  25609. T}
  25610. _
  25611. T{
  25612. \fBmongo_future_return\fP
  25613. T} T{
  25614. T}
  25615. _
  25616. T{
  25617. \fBmongo_return\fP
  25618. T} T{
  25619. T}
  25620. _
  25621. T{
  25622. \fBmulti_returner\fP
  25623. T} T{
  25624. T}
  25625. _
  25626. T{
  25627. \fBmysql\fP
  25628. T} T{
  25629. T}
  25630. _
  25631. T{
  25632. \fBnagios_nrdp_return\fP
  25633. T} T{
  25634. Return salt data to Nagios
  25635. T}
  25636. _
  25637. T{
  25638. \fBodbc\fP
  25639. T} T{
  25640. T}
  25641. _
  25642. T{
  25643. \fBpgjsonb\fP
  25644. T} T{
  25645. T}
  25646. _
  25647. T{
  25648. \fBpostgres\fP
  25649. T} T{
  25650. T}
  25651. _
  25652. T{
  25653. \fBpostgres_local_cache\fP
  25654. T} T{
  25655. T}
  25656. _
  25657. T{
  25658. \fBpushover_returner\fP
  25659. T} T{
  25660. Return salt data via pushover (\fI\%http://www.pushover.net\fP)
  25661. T}
  25662. _
  25663. T{
  25664. \fBrawfile_json\fP
  25665. T} T{
  25666. T}
  25667. _
  25668. T{
  25669. \fBredis_return\fP
  25670. T} T{
  25671. T}
  25672. _
  25673. T{
  25674. \fBsentry_return\fP
  25675. T} T{
  25676. T}
  25677. _
  25678. T{
  25679. \fBslack_returner\fP
  25680. T} T{
  25681. T}
  25682. _
  25683. T{
  25684. \fBslack_webhook_return\fP
  25685. T} T{
  25686. T}
  25687. _
  25688. T{
  25689. \fBsms_return\fP
  25690. T} T{
  25691. Return data by SMS.
  25692. T}
  25693. _
  25694. T{
  25695. \fBsmtp_return\fP
  25696. T} T{
  25697. T}
  25698. _
  25699. T{
  25700. \fBsplunk\fP
  25701. T} T{
  25702. T}
  25703. _
  25704. T{
  25705. \fBsqlite3_return\fP
  25706. T} T{
  25707. T}
  25708. _
  25709. T{
  25710. \fBsyslog_return\fP
  25711. T} T{
  25712. T}
  25713. _
  25714. T{
  25715. \fBtelegram_return\fP
  25716. T} T{
  25717. Return salt data via Telegram.
  25718. T}
  25719. _
  25720. T{
  25721. \fBxmpp_return\fP
  25722. T} T{
  25723. Return salt data via xmpp
  25724. T}
  25725. _
  25726. T{
  25727. \fBzabbix_return\fP
  25728. T} T{
  25729. Return salt data to Zabbix
  25730. T}
  25731. _
  25732. .TE
  25733. .SS salt.returners.local
  25734. .sp
  25735. The local returner is used to test the returner interface, it just prints the
  25736. return data to the console to verify that it is being passed properly
  25737. .sp
  25738. To use the local returner, append \(aq\-\-return local\(aq to the salt command. ex:
  25739. .INDENT 0.0
  25740. .INDENT 3.5
  25741. .sp
  25742. .nf
  25743. .ft C
  25744. salt \(aq*\(aq test.ping \-\-return local
  25745. .ft P
  25746. .fi
  25747. .UNINDENT
  25748. .UNINDENT
  25749. .INDENT 0.0
  25750. .TP
  25751. .B salt.returners.local.event_return(event)
  25752. Print event return data to the terminal to verify functionality
  25753. .UNINDENT
  25754. .INDENT 0.0
  25755. .TP
  25756. .B salt.returners.local.returner(ret)
  25757. Print the return data to the terminal to verify functionality
  25758. .UNINDENT
  25759. .SS salt.returners.nagios_nrdp_return
  25760. .sp
  25761. Return salt data to Nagios
  25762. .sp
  25763. The following fields can be set in the minion conf file:
  25764. .INDENT 0.0
  25765. .INDENT 3.5
  25766. .sp
  25767. .nf
  25768. .ft C
  25769. nagios.url (required)
  25770. nagios.token (required)
  25771. nagios.service (optional)
  25772. nagios.check_type (optional)
  25773. .ft P
  25774. .fi
  25775. .UNINDENT
  25776. .UNINDENT
  25777. .sp
  25778. Alternative configuration values can be used by prefacing the configuration.
  25779. Any values not found in the alternative configuration will be pulled from
  25780. the default location:
  25781. .INDENT 0.0
  25782. .INDENT 3.5
  25783. .sp
  25784. .nf
  25785. .ft C
  25786. nagios.url
  25787. nagios.token
  25788. nagios.service
  25789. .ft P
  25790. .fi
  25791. .UNINDENT
  25792. .UNINDENT
  25793. .sp
  25794. Nagios settings may also be configured as:
  25795. .INDENT 0.0
  25796. .INDENT 3.5
  25797. .sp
  25798. .nf
  25799. .ft C
  25800. nagios:
  25801. url: http://localhost/nrdp
  25802. token: r4nd0mt0k3n
  25803. service: service\-check
  25804. alternative.nagios:
  25805. url: http://localhost/nrdp
  25806. token: r4nd0mt0k3n
  25807. service: another\-service\-check
  25808. To use the Nagios returner, append \(aq\-\-return nagios\(aq to the salt command. ex:
  25809. \&.. code\-block:: bash
  25810. salt \(aq*\(aq test.ping \-\-return nagios
  25811. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command. ex:
  25812. salt \(aq*\(aq test.ping \-\-return nagios \-\-return_config alternative
  25813. .ft P
  25814. .fi
  25815. .UNINDENT
  25816. .UNINDENT
  25817. .sp
  25818. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  25819. .sp
  25820. New in version 2016.3.0.
  25821. .INDENT 0.0
  25822. .INDENT 3.5
  25823. .sp
  25824. .nf
  25825. .ft C
  25826. salt \(aq*\(aq test.ping \-\-return nagios \-\-return_kwargs \(aq{"service": "service\-name"}\(aq
  25827. .ft P
  25828. .fi
  25829. .UNINDENT
  25830. .UNINDENT
  25831. .INDENT 0.0
  25832. .TP
  25833. .B salt.returners.nagios_nrdp_return.returner(ret)
  25834. Send a message to Nagios with the data
  25835. .UNINDENT
  25836. .SS salt.returners.pushover_returner
  25837. .sp
  25838. Return salt data via pushover (\fI\%http://www.pushover.net\fP)
  25839. .sp
  25840. New in version 2016.3.0.
  25841. .sp
  25842. The following fields can be set in the minion conf file:
  25843. .INDENT 0.0
  25844. .INDENT 3.5
  25845. .sp
  25846. .nf
  25847. .ft C
  25848. pushover.user (required)
  25849. pushover.token (required)
  25850. pushover.title (optional)
  25851. pushover.device (optional)
  25852. pushover.priority (optional)
  25853. pushover.expire (optional)
  25854. pushover.retry (optional)
  25855. pushover.profile (optional)
  25856. .ft P
  25857. .fi
  25858. .UNINDENT
  25859. .UNINDENT
  25860. .sp
  25861. Alternative configuration values can be used by prefacing the configuration.
  25862. Any values not found in the alternative configuration will be pulled from
  25863. the default location:
  25864. .INDENT 0.0
  25865. .INDENT 3.5
  25866. .sp
  25867. .nf
  25868. .ft C
  25869. alternative.pushover.user
  25870. alternative.pushover.token
  25871. alternative.pushover.title
  25872. alternative.pushover.device
  25873. alternative.pushover.priority
  25874. alternative.pushover.expire
  25875. alternative.pushover.retry
  25876. .ft P
  25877. .fi
  25878. .UNINDENT
  25879. .UNINDENT
  25880. .sp
  25881. PushOver settings may also be configured as:
  25882. .INDENT 0.0
  25883. .INDENT 3.5
  25884. .sp
  25885. .nf
  25886. .ft C
  25887. pushover:
  25888. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25889. token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25890. title: Salt Returner
  25891. device: phone
  25892. priority: \-1
  25893. expire: 3600
  25894. retry: 5
  25895. alternative.pushover:
  25896. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25897. token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25898. title: Salt Returner
  25899. device: phone
  25900. priority: 1
  25901. expire: 4800
  25902. retry: 2
  25903. pushover_profile:
  25904. pushover.token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25905. pushover:
  25906. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25907. profile: pushover_profile
  25908. alternative.pushover:
  25909. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25910. profile: pushover_profile
  25911. To use the PushOver returner, append \(aq\-\-return pushover\(aq to the salt command. ex:
  25912. \&.. code\-block:: bash
  25913. salt \(aq*\(aq test.ping \-\-return pushover
  25914. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command. ex:
  25915. salt \(aq*\(aq test.ping \-\-return pushover \-\-return_config alternative
  25916. .ft P
  25917. .fi
  25918. .UNINDENT
  25919. .UNINDENT
  25920. .sp
  25921. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  25922. .INDENT 0.0
  25923. .INDENT 3.5
  25924. .sp
  25925. .nf
  25926. .ft C
  25927. salt \(aq*\(aq test.ping \-\-return pushover \-\-return_kwargs \(aq{"title": "Salt is awesome!"}\(aq
  25928. .ft P
  25929. .fi
  25930. .UNINDENT
  25931. .UNINDENT
  25932. .INDENT 0.0
  25933. .TP
  25934. .B salt.returners.pushover_returner.returner(ret)
  25935. Send an PushOver message with the data
  25936. .UNINDENT
  25937. .SS salt.returners.sms_return
  25938. .sp
  25939. Return data by SMS.
  25940. .sp
  25941. New in version 2015.5.0.
  25942. .INDENT 0.0
  25943. .TP
  25944. .B maintainer
  25945. Damian Myerscough
  25946. .TP
  25947. .B maturity
  25948. new
  25949. .TP
  25950. .B depends
  25951. twilio
  25952. .TP
  25953. .B platform
  25954. all
  25955. .UNINDENT
  25956. .sp
  25957. To enable this returner the minion will need the python twilio library
  25958. installed and the following values configured in the minion or master
  25959. config:
  25960. .INDENT 0.0
  25961. .INDENT 3.5
  25962. .sp
  25963. .nf
  25964. .ft C
  25965. twilio.sid: \(aqXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\(aq
  25966. twilio.token: \(aqXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\(aq
  25967. twilio.to: \(aq+1415XXXXXXX\(aq
  25968. twilio.from: \(aq+1650XXXXXXX\(aq
  25969. .ft P
  25970. .fi
  25971. .UNINDENT
  25972. .UNINDENT
  25973. .sp
  25974. To use the sms returner, append \(aq\-\-return sms\(aq to the salt command.
  25975. .INDENT 0.0
  25976. .INDENT 3.5
  25977. .sp
  25978. .nf
  25979. .ft C
  25980. salt \(aq*\(aq test.ping \-\-return sms
  25981. .ft P
  25982. .fi
  25983. .UNINDENT
  25984. .UNINDENT
  25985. .INDENT 0.0
  25986. .TP
  25987. .B salt.returners.sms_return.returner(ret)
  25988. Return a response in an SMS message
  25989. .UNINDENT
  25990. .SS salt.returners.telegram_return
  25991. .sp
  25992. Return salt data via Telegram.
  25993. .sp
  25994. The following fields can be set in the minion conf file:
  25995. .INDENT 0.0
  25996. .INDENT 3.5
  25997. .sp
  25998. .nf
  25999. .ft C
  26000. telegram.chat_id (required)
  26001. telegram.token (required)
  26002. .ft P
  26003. .fi
  26004. .UNINDENT
  26005. .UNINDENT
  26006. .sp
  26007. Telegram settings may also be configured as:
  26008. .INDENT 0.0
  26009. .INDENT 3.5
  26010. .sp
  26011. .nf
  26012. .ft C
  26013. telegram:
  26014. chat_id: 000000000
  26015. token: 000000000:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  26016. .ft P
  26017. .fi
  26018. .UNINDENT
  26019. .UNINDENT
  26020. .sp
  26021. To use the Telegram return, append \(aq\-\-return telegram\(aq to the salt command.
  26022. .INDENT 0.0
  26023. .INDENT 3.5
  26024. .sp
  26025. .nf
  26026. .ft C
  26027. salt \(aq*\(aq test.ping \-\-return telegram
  26028. .ft P
  26029. .fi
  26030. .UNINDENT
  26031. .UNINDENT
  26032. .INDENT 0.0
  26033. .TP
  26034. .B salt.returners.telegram_return.returner(ret)
  26035. Send a Telegram message with the data.
  26036. .INDENT 7.0
  26037. .TP
  26038. .B Parameters
  26039. \fBret\fP \-\- The data to be sent.
  26040. .TP
  26041. .B Returns
  26042. Boolean if message was sent successfully.
  26043. .UNINDENT
  26044. .UNINDENT
  26045. .SS salt.returners.xmpp_return
  26046. .sp
  26047. Return salt data via xmpp
  26048. .INDENT 0.0
  26049. .TP
  26050. .B depends
  26051. sleekxmpp >= 1.3.1
  26052. .UNINDENT
  26053. .sp
  26054. The following fields can be set in the minion conf file:
  26055. .INDENT 0.0
  26056. .INDENT 3.5
  26057. .sp
  26058. .nf
  26059. .ft C
  26060. xmpp.jid (required)
  26061. xmpp.password (required)
  26062. xmpp.recipient (required)
  26063. xmpp.profile (optional)
  26064. .ft P
  26065. .fi
  26066. .UNINDENT
  26067. .UNINDENT
  26068. .sp
  26069. Alternative configuration values can be used by prefacing the configuration.
  26070. Any values not found in the alternative configuration will be pulled from
  26071. the default location:
  26072. .INDENT 0.0
  26073. .INDENT 3.5
  26074. .sp
  26075. .nf
  26076. .ft C
  26077. xmpp.jid
  26078. xmpp.password
  26079. xmpp.recipient
  26080. xmpp.profile
  26081. .ft P
  26082. .fi
  26083. .UNINDENT
  26084. .UNINDENT
  26085. .sp
  26086. XMPP settings may also be configured as:
  26087. .INDENT 0.0
  26088. .INDENT 3.5
  26089. .sp
  26090. .nf
  26091. .ft C
  26092. xmpp:
  26093. jid: user@xmpp.domain.com/resource
  26094. password: password
  26095. recipient: user@xmpp.example.com
  26096. alternative.xmpp:
  26097. jid: user@xmpp.domain.com/resource
  26098. password: password
  26099. recipient: someone@xmpp.example.com
  26100. xmpp_profile:
  26101. xmpp.jid: user@xmpp.domain.com/resource
  26102. xmpp.password: password
  26103. xmpp:
  26104. profile: xmpp_profile
  26105. recipient: user@xmpp.example.com
  26106. alternative.xmpp:
  26107. profile: xmpp_profile
  26108. recipient: someone\-else@xmpp.example.com
  26109. .ft P
  26110. .fi
  26111. .UNINDENT
  26112. .UNINDENT
  26113. .sp
  26114. To use the XMPP returner, append \(aq\-\-return xmpp\(aq to the salt command.
  26115. .INDENT 0.0
  26116. .INDENT 3.5
  26117. .sp
  26118. .nf
  26119. .ft C
  26120. salt \(aq*\(aq test.ping \-\-return xmpp
  26121. .ft P
  26122. .fi
  26123. .UNINDENT
  26124. .UNINDENT
  26125. .sp
  26126. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command.
  26127. .sp
  26128. New in version 2015.5.0.
  26129. .INDENT 0.0
  26130. .INDENT 3.5
  26131. .sp
  26132. .nf
  26133. .ft C
  26134. salt \(aq*\(aq test.ping \-\-return xmpp \-\-return_config alternative
  26135. .ft P
  26136. .fi
  26137. .UNINDENT
  26138. .UNINDENT
  26139. .sp
  26140. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  26141. .sp
  26142. New in version 2016.3.0.
  26143. .INDENT 0.0
  26144. .INDENT 3.5
  26145. .sp
  26146. .nf
  26147. .ft C
  26148. salt \(aq*\(aq test.ping \-\-return xmpp \-\-return_kwargs \(aq{"recipient": "someone\-else@xmpp.example.com"}\(aq
  26149. .ft P
  26150. .fi
  26151. .UNINDENT
  26152. .UNINDENT
  26153. .INDENT 0.0
  26154. .TP
  26155. .B class salt.returners.xmpp_return.SendMsgBot(jid, password, recipient, msg)
  26156. .INDENT 7.0
  26157. .TP
  26158. .B start(event)
  26159. .UNINDENT
  26160. .UNINDENT
  26161. .INDENT 0.0
  26162. .TP
  26163. .B salt.returners.xmpp_return.returner(ret)
  26164. Send an xmpp message with the data
  26165. .UNINDENT
  26166. .SS salt.returners.zabbix_return module
  26167. .sp
  26168. Return salt data to Zabbix
  26169. .sp
  26170. The following Type: "Zabbix trapper" with "Type of information" Text items are required:
  26171. .INDENT 0.0
  26172. .INDENT 3.5
  26173. .sp
  26174. .nf
  26175. .ft C
  26176. Key: salt.trap.info
  26177. Key: salt.trap.warning
  26178. Key: salt.trap.high
  26179. .ft P
  26180. .fi
  26181. .UNINDENT
  26182. .UNINDENT
  26183. .sp
  26184. To use the Zabbix returner, append \(aq\-\-return zabbix\(aq to the salt command. ex:
  26185. .INDENT 0.0
  26186. .INDENT 3.5
  26187. .sp
  26188. .nf
  26189. .ft C
  26190. salt \(aq*\(aq test.ping \-\-return zabbix
  26191. .ft P
  26192. .fi
  26193. .UNINDENT
  26194. .UNINDENT
  26195. .INDENT 0.0
  26196. .TP
  26197. .B salt.returners.zabbix_return.returner(ret)
  26198. .UNINDENT
  26199. .INDENT 0.0
  26200. .TP
  26201. .B salt.returners.zabbix_return.save_load(jid, load, minions=None)
  26202. Included for API consistency
  26203. .UNINDENT
  26204. .INDENT 0.0
  26205. .TP
  26206. .B salt.returners.zabbix_return.zabbix_send(key, output)
  26207. .UNINDENT
  26208. .INDENT 0.0
  26209. .TP
  26210. .B salt.returners.zabbix_return.zbx()
  26211. .UNINDENT
  26212. .SS Renderers
  26213. .sp
  26214. The Salt state system operates by gathering information from common data types
  26215. such as lists, dictionaries, and strings that would be familiar to any
  26216. developer.
  26217. .sp
  26218. Salt Renderers translate input from the format in which it is written into
  26219. Python data structures.
  26220. .sp
  26221. The default renderer is set in the master/minion configuration file using the
  26222. \fBrenderer\fP config option, which defaults to \fBjinja|yaml\fP\&.
  26223. .SS Two Kinds of Renderers
  26224. .sp
  26225. Renderers fall into one of two categories, based on what they output: text or
  26226. data. The one exception to this would be the \fBpure python\fP renderer, which can be used in either capacity.
  26227. .SS Text Renderers
  26228. .sp
  26229. A text renderer returns text. These include templating engines such as
  26230. \fBjinja\fP, \fBmako\fP, and
  26231. \fBgenshi\fP, as well as the \fBgpg\fP renderer. The following are all text renderers:
  26232. .INDENT 0.0
  26233. .IP \(bu 2
  26234. \fBaws_kms\fP
  26235. .IP \(bu 2
  26236. \fBcheetah\fP
  26237. .IP \(bu 2
  26238. \fBgenshi\fP
  26239. .IP \(bu 2
  26240. \fBgpg\fP
  26241. .IP \(bu 2
  26242. \fBjinja\fP
  26243. .IP \(bu 2
  26244. \fBmako\fP
  26245. .IP \(bu 2
  26246. \fBnacl\fP
  26247. .IP \(bu 2
  26248. \fBpass\fP
  26249. .IP \(bu 2
  26250. \fBpy\fP
  26251. .IP \(bu 2
  26252. \fBwempy\fP
  26253. .UNINDENT
  26254. .SS Data Renderers
  26255. .sp
  26256. A data renderer returns a Python data structure (typically a dictionary). The
  26257. following are all data renderers:
  26258. .INDENT 0.0
  26259. .IP \(bu 2
  26260. \fBdson\fP
  26261. .IP \(bu 2
  26262. \fBhjson\fP
  26263. .IP \(bu 2
  26264. \fBjson5\fP
  26265. .IP \(bu 2
  26266. \fBjson\fP
  26267. .IP \(bu 2
  26268. \fBpydsl\fP
  26269. .IP \(bu 2
  26270. \fBpyobjects\fP
  26271. .IP \(bu 2
  26272. \fBpy\fP
  26273. .IP \(bu 2
  26274. \fBstateconf\fP
  26275. .IP \(bu 2
  26276. \fByamlex\fP
  26277. .IP \(bu 2
  26278. \fByaml\fP
  26279. .UNINDENT
  26280. .SS Overriding the Default Renderer
  26281. .sp
  26282. It can sometimes be beneficial to write an SLS file using a renderer other than
  26283. the default one. This can be done by using a "shebang"\-like syntax on the first
  26284. line of the SLS file:
  26285. .sp
  26286. Here is an example of using the \fBpure python\fP renderer
  26287. to install a package:
  26288. .INDENT 0.0
  26289. .INDENT 3.5
  26290. .sp
  26291. .nf
  26292. .ft C
  26293. #!py
  26294. def run():
  26295. """
  26296. Install version 1.5\-1.el7 of package "python\-foo"
  26297. """
  26298. return {
  26299. "include": ["python"],
  26300. "python\-foo": {"pkg.installed": [{"version": "1.5\-1.el7"},]},
  26301. }
  26302. .ft P
  26303. .fi
  26304. .UNINDENT
  26305. .UNINDENT
  26306. .sp
  26307. This would be equivalent to the following:
  26308. .INDENT 0.0
  26309. .INDENT 3.5
  26310. .sp
  26311. .nf
  26312. .ft C
  26313. include:
  26314. \- python
  26315. python\-foo:
  26316. pkg.installed:
  26317. \- version: \(aq1.5\-1.el7\(aq
  26318. .ft P
  26319. .fi
  26320. .UNINDENT
  26321. .UNINDENT
  26322. .SS Composing Renderers (a.k.a. The "Render Pipeline")
  26323. .sp
  26324. A render pipeline can be composed from other renderers by connecting them in a
  26325. series of "pipes" (i.e. \fB|\fP). The renderers will be evaluated from left to
  26326. right, with each renderer receiving the result of the previous renderer\(aqs
  26327. execution.
  26328. .sp
  26329. Take for example the default renderer (\fBjinja|yaml\fP). The file is evaluated
  26330. first a jinja template, and the result of that template is evaluated as a YAML
  26331. document.
  26332. .sp
  26333. Other render pipeline combinations include:
  26334. .INDENT 0.0
  26335. .INDENT 3.5
  26336. .INDENT 0.0
  26337. .TP
  26338. .B \fByaml\fP
  26339. Just YAML, no templating.
  26340. .TP
  26341. .B \fBmako|yaml\fP
  26342. This passes the input to the \fBmako\fP renderer, with its output fed into
  26343. the \fByaml\fP renderer.
  26344. .TP
  26345. .B \fBjinja|mako|yaml\fP
  26346. This one allows you to use both jinja and mako templating syntax in the
  26347. input and then parse the final rendered output as YAML.
  26348. .UNINDENT
  26349. .UNINDENT
  26350. .UNINDENT
  26351. .sp
  26352. The following is a contrived example SLS file using the \fBjinja|mako|yaml\fP
  26353. render pipeline:
  26354. .INDENT 0.0
  26355. .INDENT 3.5
  26356. .sp
  26357. .nf
  26358. .ft C
  26359. #!jinja|mako|yaml
  26360. An_Example:
  26361. cmd.run:
  26362. \- name: |
  26363. echo "Using Salt ${grains[\(aqsaltversion\(aq]}" \e
  26364. "from path {{grains[\(aqsaltpath\(aq]}}."
  26365. \- cwd: /
  26366. <%doc> ${...} is Mako\(aqs notation, and so is this comment. </%doc>
  26367. {# Similarly, {{...}} is Jinja\(aqs notation, and so is this comment. #}
  26368. .ft P
  26369. .fi
  26370. .UNINDENT
  26371. .UNINDENT
  26372. .sp
  26373. \fBIMPORTANT:\fP
  26374. .INDENT 0.0
  26375. .INDENT 3.5
  26376. Keep in mind that not all renderers can be used alone or with any other
  26377. renderers. For example, text renderers shouldn\(aqt be used alone as their
  26378. outputs are just strings, which still need to be parsed by another renderer
  26379. to turn them into Python data structures.
  26380. .sp
  26381. For example, it would not make sense to use \fByaml|jinja\fP because the
  26382. output of the \fByaml\fP renderer is a Python data
  26383. structure, and the \fBjinja\fP renderer only
  26384. accepts text as input.
  26385. .sp
  26386. Therefore, when combining renderers, you should know what each renderer
  26387. accepts as input and what it returns as output. One way of thinking about
  26388. it is that you can chain together multiple text renderers, but the pipeline
  26389. \fImust\fP end in a data renderer. Similarly, since the text renderers in Salt
  26390. don\(aqt accept data structures as input, a text renderer should usually not
  26391. come after a data renderer. It\(aqs technically \fIpossible\fP to write a renderer
  26392. that takes a data structure as input and returns a string, but no such
  26393. renderer is distributed with Salt.
  26394. .UNINDENT
  26395. .UNINDENT
  26396. .SS Writing Renderers
  26397. .sp
  26398. A custom renderer must be a Python module which implements a \fBrender\fP
  26399. function. This function must implement three positional arguments:
  26400. .INDENT 0.0
  26401. .IP 1. 3
  26402. \fBdata\fP \- Can be called whatever you like. This is the input to be
  26403. rendered.
  26404. .IP 2. 3
  26405. \fBsaltenv\fP
  26406. .IP 3. 3
  26407. \fBsls\fP
  26408. .UNINDENT
  26409. .sp
  26410. The first is the important one, and the 2nd and 3rd must be included since Salt
  26411. needs to pass this info to each render, even though it is only used by template
  26412. renderers.
  26413. .sp
  26414. Renderers should be written so that the \fBdata\fP argument can accept either
  26415. strings or file\-like objects as input. For example:
  26416. .INDENT 0.0
  26417. .INDENT 3.5
  26418. .sp
  26419. .nf
  26420. .ft C
  26421. import mycoolmodule
  26422. from salt.ext import six
  26423. def render(data, saltenv="base", sls="", **kwargs):
  26424. if not isinstance(data, six.string_types):
  26425. # Read from file\-like object
  26426. data = data.read()
  26427. return mycoolmodule.do_something(data)
  26428. .ft P
  26429. .fi
  26430. .UNINDENT
  26431. .UNINDENT
  26432. .sp
  26433. Custom renderers should be placed within \fBsalt://_renderers/\fP, so that they
  26434. can be synced to minions. They are synced when any of the following are run:
  26435. .INDENT 0.0
  26436. .IP \(bu 2
  26437. \fBstate.apply\fP
  26438. .IP \(bu 2
  26439. \fBsaltutil.sync_renderers\fP
  26440. .IP \(bu 2
  26441. \fBsaltutil.sync_all\fP
  26442. .UNINDENT
  26443. .sp
  26444. Any custom renderers which have been synced to a minion, that are named the
  26445. same as one of Salt\(aqs default set of renderers, will take the place of the
  26446. default renderer with the same name.
  26447. .sp
  26448. \fBNOTE:\fP
  26449. .INDENT 0.0
  26450. .INDENT 3.5
  26451. Renderers can also be synced from \fBsalt://_renderers/\fP to the Master
  26452. using either the \fBsaltutil.sync_renderers\fP or \fBsaltutil.sync_all\fP runner function.
  26453. .UNINDENT
  26454. .UNINDENT
  26455. .SS Examples
  26456. .sp
  26457. The best place to find examples of renderers is in the Salt source code.
  26458. .sp
  26459. Documentation for renderers included with Salt can be found here:
  26460. .sp
  26461. \fI\%https://github.com/saltstack/salt/blob/master/salt/renderers\fP
  26462. .sp
  26463. Here is a simple YAML renderer example:
  26464. .INDENT 0.0
  26465. .INDENT 3.5
  26466. .sp
  26467. .nf
  26468. .ft C
  26469. import salt.utils.yaml
  26470. from salt.utils.yamlloader import SaltYamlSafeLoader
  26471. from salt.ext import six
  26472. def render(yaml_data, saltenv="", sls="", **kws):
  26473. if not isinstance(yaml_data, six.string_types):
  26474. yaml_data = yaml_data.read()
  26475. data = salt.utils.yaml.safe_load(yaml_data)
  26476. return data if data else {}
  26477. .ft P
  26478. .fi
  26479. .UNINDENT
  26480. .UNINDENT
  26481. .SS Full List of Renderers
  26482. .SS renderer modules
  26483. .TS
  26484. center;
  26485. |l|l|.
  26486. _
  26487. T{
  26488. \fBaws_kms\fP
  26489. T} T{
  26490. T}
  26491. _
  26492. T{
  26493. \fBcheetah\fP
  26494. T} T{
  26495. Cheetah Renderer for Salt
  26496. T}
  26497. _
  26498. T{
  26499. \fBdson\fP
  26500. T} T{
  26501. DSON Renderer for Salt
  26502. T}
  26503. _
  26504. T{
  26505. \fBgenshi\fP
  26506. T} T{
  26507. Genshi Renderer for Salt
  26508. T}
  26509. _
  26510. T{
  26511. \fBgpg\fP
  26512. T} T{
  26513. T}
  26514. _
  26515. T{
  26516. \fBhjson\fP
  26517. T} T{
  26518. hjson renderer for Salt
  26519. T}
  26520. _
  26521. T{
  26522. \fBjinja\fP
  26523. T} T{
  26524. T}
  26525. _
  26526. T{
  26527. \fI\%json\fP
  26528. T} T{
  26529. 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.
  26530. T}
  26531. _
  26532. T{
  26533. \fBjson5\fP
  26534. T} T{
  26535. JSON5 Renderer for Salt
  26536. T}
  26537. _
  26538. T{
  26539. \fBmako\fP
  26540. T} T{
  26541. T}
  26542. _
  26543. T{
  26544. \fBmsgpack\fP
  26545. T} T{
  26546. T}
  26547. _
  26548. T{
  26549. \fBnacl\fP
  26550. T} T{
  26551. Renderer that will decrypt NACL ciphers
  26552. T}
  26553. _
  26554. T{
  26555. \fBpass\fP
  26556. T} T{
  26557. T}
  26558. _
  26559. T{
  26560. \fBpy\fP
  26561. T} T{
  26562. pylib: rapid testing and development utils
  26563. T}
  26564. _
  26565. T{
  26566. \fBpydsl\fP
  26567. T} T{
  26568. T}
  26569. _
  26570. T{
  26571. \fBpyobjects\fP
  26572. T} T{
  26573. T}
  26574. _
  26575. T{
  26576. \fBstateconf\fP
  26577. T} T{
  26578. T}
  26579. _
  26580. T{
  26581. \fBtoml\fP
  26582. T} T{
  26583. Python module which parses and emits TOML.
  26584. T}
  26585. _
  26586. T{
  26587. \fBwempy\fP
  26588. T} T{
  26589. T}
  26590. _
  26591. T{
  26592. \fByaml\fP
  26593. T} T{
  26594. T}
  26595. _
  26596. T{
  26597. \fByamlex\fP
  26598. T} T{
  26599. T}
  26600. _
  26601. .TE
  26602. .SS salt.renderers.aws_kms
  26603. .sp
  26604. Renderer that will decrypt ciphers encrypted using \fI\%AWS KMS Envelope Encryption\fP\&.
  26605. .sp
  26606. Any key in the data to be rendered can be a urlsafe_b64encoded string, and this renderer will attempt
  26607. to decrypt it before passing it off to Salt. This allows you to safely store secrets in
  26608. source control, in such a way that only your Salt master can decrypt them and
  26609. distribute them only to the minions that need them.
  26610. .sp
  26611. The typical use\-case would be to use ciphers in your pillar data, and keep the encrypted
  26612. data key on your master. This way developers with appropriate AWS IAM privileges can add new secrets
  26613. quickly and easily.
  26614. .sp
  26615. This renderer requires the \fI\%boto3\fP Python library.
  26616. .SS Setup
  26617. .sp
  26618. First, set up your AWS client. For complete instructions on configuration the AWS client,
  26619. please read the \fI\%boto3 configuration documentation\fP\&. By default, this renderer will use
  26620. the default AWS profile. You can override the profile name in salt configuration.
  26621. For example, if you have a profile in your aws client configuration named "salt",
  26622. you can add the following salt configuration:
  26623. .INDENT 0.0
  26624. .INDENT 3.5
  26625. .sp
  26626. .nf
  26627. .ft C
  26628. aws_kms:
  26629. profile_name: salt
  26630. .ft P
  26631. .fi
  26632. .UNINDENT
  26633. .UNINDENT
  26634. .sp
  26635. The rest of these instructions assume that you will use the default profile for key generation
  26636. and setup. If not, export AWS_PROFILE and set it to the desired value.
  26637. .sp
  26638. Once the aws client is configured, generate a KMS customer master key and use that to generate
  26639. a local data key.
  26640. .INDENT 0.0
  26641. .INDENT 3.5
  26642. .sp
  26643. .nf
  26644. .ft C
  26645. # data_key=$(aws kms generate\-data\-key \-\-key\-id your\-key\-id \-\-key\-spec AES_256
  26646. \-\-query \(aqCiphertextBlob\(aq \-\-output text)
  26647. # echo \(aqaws_kms:\(aq
  26648. # echo \(aq data_key: !!binary "%s"\en\(aq "$data_key" >> config/master
  26649. .ft P
  26650. .fi
  26651. .UNINDENT
  26652. .UNINDENT
  26653. .sp
  26654. To apply the renderer on a file\-by\-file basis add the following line to the
  26655. top of any pillar with gpg data in it:
  26656. .INDENT 0.0
  26657. .INDENT 3.5
  26658. .sp
  26659. .nf
  26660. .ft C
  26661. #!yaml|aws_kms
  26662. .ft P
  26663. .fi
  26664. .UNINDENT
  26665. .UNINDENT
  26666. .sp
  26667. Now with your renderer configured, you can include your ciphers in your pillar
  26668. data like so:
  26669. .INDENT 0.0
  26670. .INDENT 3.5
  26671. .sp
  26672. .nf
  26673. .ft C
  26674. #!yaml|aws_kms
  26675. a\-secret: gAAAAABaj5uzShPI3PEz6nL5Vhk2eEHxGXSZj8g71B84CZsVjAAtDFY1mfjNRl\-1Su9YVvkUzNjI4lHCJJfXqdcTvwczBYtKy0Pa7Ri02s10Wn1tF0tbRwk=
  26676. .ft P
  26677. .fi
  26678. .UNINDENT
  26679. .UNINDENT
  26680. .INDENT 0.0
  26681. .TP
  26682. .B salt.renderers.aws_kms.render(data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, argline=u\(aq\(aq, **kwargs)
  26683. Decrypt the data to be rendered that was encrypted using AWS KMS envelope encryption.
  26684. .UNINDENT
  26685. .SS salt.renderers.cheetah
  26686. .sp
  26687. Cheetah Renderer for Salt
  26688. .INDENT 0.0
  26689. .TP
  26690. .B salt.renderers.cheetah.render(cheetah_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, method=u\(aqxml\(aq, **kws)
  26691. Render a Cheetah template.
  26692. .INDENT 7.0
  26693. .TP
  26694. .B Return type
  26695. A Python data structure
  26696. .UNINDENT
  26697. .UNINDENT
  26698. .SS salt.renderers.dson
  26699. .sp
  26700. DSON Renderer for Salt
  26701. .sp
  26702. This renderer is intended for demonstration purposes. Information on the DSON
  26703. spec can be found \fI\%here\fP\&.
  26704. .sp
  26705. This renderer requires \fI\%Dogeon\fP (installable via pip)
  26706. .INDENT 0.0
  26707. .TP
  26708. .B salt.renderers.dson.render(dson_input, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kwargs)
  26709. Accepts DSON data as a string or as a file object and runs it through the
  26710. JSON parser.
  26711. .INDENT 7.0
  26712. .TP
  26713. .B Return type
  26714. A Python data structure
  26715. .UNINDENT
  26716. .UNINDENT
  26717. .SS salt.renderers.genshi
  26718. .sp
  26719. Genshi Renderer for Salt
  26720. .INDENT 0.0
  26721. .TP
  26722. .B salt.renderers.genshi.render(genshi_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, method=u\(aqxml\(aq, **kws)
  26723. Render a Genshi template. A method should be passed in as part of the
  26724. kwargs. If no method is passed in, xml is assumed. Valid methods are:
  26725. .sp
  26726. Note that the \fBtext\fP method will call \fBNewTextTemplate\fP\&. If \fBoldtext\fP
  26727. is desired, it must be called explicitly
  26728. .INDENT 7.0
  26729. .TP
  26730. .B Return type
  26731. A Python data structure
  26732. .UNINDENT
  26733. .UNINDENT
  26734. .SS salt.renderers.hjson
  26735. .sp
  26736. hjson renderer for Salt
  26737. .sp
  26738. See the \fI\%hjson\fP documentation for more information
  26739. .INDENT 0.0
  26740. .TP
  26741. .B salt.renderers.hjson.render(hjson_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26742. Accepts HJSON as a string or as a file object and runs it through the HJSON
  26743. parser.
  26744. .INDENT 7.0
  26745. .TP
  26746. .B Return type
  26747. A Python data structure
  26748. .UNINDENT
  26749. .UNINDENT
  26750. .SS salt.renderers.json5
  26751. .sp
  26752. JSON5 Renderer for Salt
  26753. .sp
  26754. New in version 2016.3.0.
  26755. .sp
  26756. JSON5 is an unofficial extension to JSON. See \fI\%http://json5.org/\fP for more
  26757. information.
  26758. .sp
  26759. This renderer requires the \fI\%json5 python bindings\fP, installable via pip.
  26760. .INDENT 0.0
  26761. .TP
  26762. .B salt.renderers.json5.render(json_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26763. Accepts JSON as a string or as a file object and runs it through the JSON
  26764. parser.
  26765. .INDENT 7.0
  26766. .TP
  26767. .B Return type
  26768. A Python data structure
  26769. .UNINDENT
  26770. .UNINDENT
  26771. .SS salt.renderers.msgpack
  26772. .INDENT 0.0
  26773. .TP
  26774. .B salt.renderers.msgpack.render(msgpack_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26775. Accepts a message pack string or a file object, renders said data back to
  26776. a python dict.
  26777. .INDENT 7.0
  26778. .TP
  26779. .B Return type
  26780. A Python data structure
  26781. .UNINDENT
  26782. .UNINDENT
  26783. .SS salt.renderers.nacl
  26784. .sp
  26785. Renderer that will decrypt NACL ciphers
  26786. .sp
  26787. Any key in the SLS file can be an NACL cipher, and this renderer will decrypt it
  26788. before passing it off to Salt. This allows you to safely store secrets in
  26789. source control, in such a way that only your Salt master can decrypt them and
  26790. distribute them only to the minions that need them.
  26791. .sp
  26792. The typical use\-case would be to use ciphers in your pillar data, and keep a
  26793. secret key on your master. You can put the public key in source control so that
  26794. developers can add new secrets quickly and easily.
  26795. .sp
  26796. This renderer requires the libsodium library binary and libnacl >= 1.5.1
  26797. python package (support for sealed boxes came in 1.5.1 version).
  26798. .SS Setup
  26799. .sp
  26800. To set things up, first generate a keypair. On the master, run the following:
  26801. .INDENT 0.0
  26802. .INDENT 3.5
  26803. .sp
  26804. .nf
  26805. .ft C
  26806. # salt\-call \-\-local nacl.keygen sk_file=/root/.nacl
  26807. .ft P
  26808. .fi
  26809. .UNINDENT
  26810. .UNINDENT
  26811. .SS Using encrypted pillar
  26812. .sp
  26813. To encrypt secrets, copy the public key to your local machine and run:
  26814. .INDENT 0.0
  26815. .INDENT 3.5
  26816. .sp
  26817. .nf
  26818. .ft C
  26819. $ salt\-call \-\-local nacl.enc datatoenc pk_file=/root/.nacl.pub
  26820. .ft P
  26821. .fi
  26822. .UNINDENT
  26823. .UNINDENT
  26824. .sp
  26825. To apply the renderer on a file\-by\-file basis add the following line to the
  26826. top of any pillar with nacl encrypted data in it:
  26827. .INDENT 0.0
  26828. .INDENT 3.5
  26829. .sp
  26830. .nf
  26831. .ft C
  26832. #!yaml|nacl
  26833. .ft P
  26834. .fi
  26835. .UNINDENT
  26836. .UNINDENT
  26837. .sp
  26838. Now with your renderer configured, you can include your ciphers in your pillar
  26839. data like so:
  26840. .INDENT 0.0
  26841. .INDENT 3.5
  26842. .sp
  26843. .nf
  26844. .ft C
  26845. #!yaml|nacl
  26846. a\-secret: "NACL[MRN3cc+fmdxyQbz6WMF+jq1hKdU5X5BBI7OjK+atvHo1ll+w1gZ7XyWtZVfq9gK9rQaMfkDxmidJKwE0Mw==]"
  26847. .ft P
  26848. .fi
  26849. .UNINDENT
  26850. .UNINDENT
  26851. .INDENT 0.0
  26852. .TP
  26853. .B salt.renderers.nacl.render(nacl_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, argline=u\(aq\(aq, **kwargs)
  26854. Decrypt the data to be rendered using the given nacl key or the one given
  26855. in config
  26856. .UNINDENT
  26857. .SH USING SALT
  26858. .sp
  26859. This section describes the fundamental components and concepts that you need to understand to use Salt.
  26860. .SS Grains
  26861. .sp
  26862. Salt comes with an interface to derive information about the underlying system.
  26863. This is called the grains interface, because it presents salt with grains of
  26864. information. Grains are collected for the operating system, domain name,
  26865. IP address, kernel, OS type, memory, and many other system properties.
  26866. .sp
  26867. The grains interface is made available to Salt modules and components so that
  26868. the right salt minion commands are automatically available on the right
  26869. systems.
  26870. .sp
  26871. Grain data is relatively static, though if system information changes
  26872. (for example, if network settings are changed), or if a new value is assigned
  26873. to a custom grain, grain data is refreshed.
  26874. .sp
  26875. \fBNOTE:\fP
  26876. .INDENT 0.0
  26877. .INDENT 3.5
  26878. Grains resolve to lowercase letters. For example, \fBFOO\fP, and \fBfoo\fP
  26879. target the same grain.
  26880. .UNINDENT
  26881. .UNINDENT
  26882. .SS Listing Grains
  26883. .sp
  26884. Available grains can be listed by using the \(aqgrains.ls\(aq module:
  26885. .INDENT 0.0
  26886. .INDENT 3.5
  26887. .sp
  26888. .nf
  26889. .ft C
  26890. salt \(aq*\(aq grains.ls
  26891. .ft P
  26892. .fi
  26893. .UNINDENT
  26894. .UNINDENT
  26895. .sp
  26896. Grains data can be listed by using the \(aqgrains.items\(aq module:
  26897. .INDENT 0.0
  26898. .INDENT 3.5
  26899. .sp
  26900. .nf
  26901. .ft C
  26902. salt \(aq*\(aq grains.items
  26903. .ft P
  26904. .fi
  26905. .UNINDENT
  26906. .UNINDENT
  26907. .SS Using grains in a state
  26908. .sp
  26909. To use a grain in a state you can access it via \fI{{ grains[\(aqkey\(aq] }}\fP\&.
  26910. .SS Grains in the Minion Config
  26911. .sp
  26912. Grains can also be statically assigned within the minion configuration file.
  26913. Just add the option \fBgrains\fP and pass options to it:
  26914. .INDENT 0.0
  26915. .INDENT 3.5
  26916. .sp
  26917. .nf
  26918. .ft C
  26919. grains:
  26920. roles:
  26921. \- webserver
  26922. \- memcache
  26923. deployment: datacenter4
  26924. cabinet: 13
  26925. cab_u: 14\-15
  26926. .ft P
  26927. .fi
  26928. .UNINDENT
  26929. .UNINDENT
  26930. .sp
  26931. Then status data specific to your servers can be retrieved via Salt, or used
  26932. 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.
  26933. .SS Grains in /etc/salt/grains
  26934. .sp
  26935. If you do not want to place your custom static grains in the minion config
  26936. file, you can also put them in \fB/etc/salt/grains\fP on the minion. They are configured in the
  26937. same way as in the above example, only without a top\-level \fBgrains:\fP key:
  26938. .INDENT 0.0
  26939. .INDENT 3.5
  26940. .sp
  26941. .nf
  26942. .ft C
  26943. roles:
  26944. \- webserver
  26945. \- memcache
  26946. deployment: datacenter4
  26947. cabinet: 13
  26948. cab_u: 14\-15
  26949. .ft P
  26950. .fi
  26951. .UNINDENT
  26952. .UNINDENT
  26953. .sp
  26954. \fBNOTE:\fP
  26955. .INDENT 0.0
  26956. .INDENT 3.5
  26957. Grains in \fB/etc/salt/grains\fP are ignored if you specify the same grains in the minion config.
  26958. .UNINDENT
  26959. .UNINDENT
  26960. .sp
  26961. \fBNOTE:\fP
  26962. .INDENT 0.0
  26963. .INDENT 3.5
  26964. 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
  26965. .UNINDENT
  26966. .UNINDENT
  26967. .sp
  26968. \fBNOTE:\fP
  26969. .INDENT 0.0
  26970. .INDENT 3.5
  26971. You can equally configure static grains for Proxy Minions.
  26972. As multiple Proxy Minion processes can run on the same machine, you need
  26973. to index the files using the Minion ID, under \fB/etc/salt/proxy.d/<minion ID>/grains\fP\&.
  26974. For example, the grains for the Proxy Minion \fBrouter1\fP can be defined
  26975. under \fB/etc/salt/proxy.d/router1/grains\fP, while the grains for the
  26976. Proxy Minion \fBswitch7\fP can be put in \fB/etc/salt/proxy.d/switch7/grains\fP\&.
  26977. .UNINDENT
  26978. .UNINDENT
  26979. .SS Matching Grains in the Top File
  26980. .sp
  26981. With correctly configured grains on the Minion, the top file used in
  26982. Pillar or during Highstate can be made very efficient. For example, consider
  26983. the following configuration:
  26984. .INDENT 0.0
  26985. .INDENT 3.5
  26986. .sp
  26987. .nf
  26988. .ft C
  26989. \(aqroles:webserver\(aq:
  26990. \- match: grain
  26991. \- state0
  26992. \(aqroles:memcache\(aq:
  26993. \- match: grain
  26994. \- state1
  26995. \- state2
  26996. .ft P
  26997. .fi
  26998. .UNINDENT
  26999. .UNINDENT
  27000. .sp
  27001. For this example to work, you would need to have defined the grain
  27002. \fBrole\fP for the minions you wish to match.
  27003. .SS Writing Grains
  27004. .sp
  27005. The grains are derived by executing all of the "public" functions (i.e. those
  27006. which do not begin with an underscore) found in the modules located in the
  27007. Salt\(aqs core grains code, followed by those in any custom grains modules. The
  27008. functions in a grains module must return a \fI\%Python dictionary\fP, where the dictionary keys are the names of grains, and
  27009. each key\(aqs value is that value for that grain.
  27010. .sp
  27011. Custom grains modules should be placed in a subdirectory named \fB_grains\fP
  27012. located under the \fBfile_roots\fP specified by the master config
  27013. file. The default path would be \fB/srv/salt/_grains\fP\&. Custom grains modules
  27014. will be distributed to the minions when \fBstate.highstate\fP is run, or by executing the
  27015. \fBsaltutil.sync_grains\fP or
  27016. \fBsaltutil.sync_all\fP functions.
  27017. .sp
  27018. Grains modules are easy to write, and (as noted above) only need to return a
  27019. dictionary. For example:
  27020. .INDENT 0.0
  27021. .INDENT 3.5
  27022. .sp
  27023. .nf
  27024. .ft C
  27025. def yourfunction():
  27026. # initialize a grains dictionary
  27027. grains = {}
  27028. # Some code for logic that sets grains like
  27029. grains["yourcustomgrain"] = True
  27030. grains["anothergrain"] = "somevalue"
  27031. return grains
  27032. .ft P
  27033. .fi
  27034. .UNINDENT
  27035. .UNINDENT
  27036. .sp
  27037. The name of the function does not matter and will not factor into the grains
  27038. data at all; only the keys/values returned become part of the grains.
  27039. .SS When to Use a Custom Grain
  27040. .sp
  27041. Before adding new grains, consider what the data is and remember that grains
  27042. should (for the most part) be static data.
  27043. .sp
  27044. 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
  27045. key/value pairs, pillar is a good match. If compiling the information requires
  27046. that system commands be run, then putting this information in an execution
  27047. module is likely a better idea.
  27048. .sp
  27049. Good candidates for grains are data that is useful for targeting minions in the
  27050. top file or the Salt CLI. The name and data structure of
  27051. the grain should be designed to support many platforms, operating systems or
  27052. applications. Also, keep in mind that Jinja templating in Salt supports
  27053. referencing pillar data as well as invoking functions from execution modules,
  27054. so there\(aqs no need to place information in grains to make it available to Jinja
  27055. templates. For example:
  27056. .INDENT 0.0
  27057. .INDENT 3.5
  27058. .sp
  27059. .nf
  27060. .ft C
  27061. \&...
  27062. \&...
  27063. {{ salt[\(aqmodule.function_name\(aq](\(aqargument_1\(aq, \(aqargument_2\(aq) }}
  27064. {{ pillar[\(aqmy_pillar_key\(aq] }}
  27065. \&...
  27066. \&...
  27067. .ft P
  27068. .fi
  27069. .UNINDENT
  27070. .UNINDENT
  27071. .sp
  27072. \fBWARNING:\fP
  27073. .INDENT 0.0
  27074. .INDENT 3.5
  27075. Custom grains will not be available in the top file until after the first
  27076. highstate\&. To make custom grains available on a
  27077. minion\(aqs first highstate, it is recommended to use this example to ensure that the custom grains are synced when
  27078. the minion starts.
  27079. .UNINDENT
  27080. .UNINDENT
  27081. .SS Loading Custom Grains
  27082. .sp
  27083. If you have multiple functions specifying grains that are called from a \fBmain\fP
  27084. function, be sure to prepend grain function names with an underscore. This prevents
  27085. Salt from including the loaded grains from the grain functions in the final
  27086. grain data structure. For example, consider this custom grain file:
  27087. .INDENT 0.0
  27088. .INDENT 3.5
  27089. .sp
  27090. .nf
  27091. .ft C
  27092. #!/usr/bin/env python
  27093. def _my_custom_grain():
  27094. my_grain = {"foo": "bar", "hello": "world"}
  27095. return my_grain
  27096. def main():
  27097. # initialize a grains dictionary
  27098. grains = {}
  27099. grains["my_grains"] = _my_custom_grain()
  27100. return grains
  27101. .ft P
  27102. .fi
  27103. .UNINDENT
  27104. .UNINDENT
  27105. .sp
  27106. The output of this example renders like so:
  27107. .INDENT 0.0
  27108. .INDENT 3.5
  27109. .sp
  27110. .nf
  27111. .ft C
  27112. # salt\-call \-\-local grains.items
  27113. local:
  27114. \-\-\-\-\-\-\-\-\-\-
  27115. <Snipped for brevity>
  27116. my_grains:
  27117. \-\-\-\-\-\-\-\-\-\-
  27118. foo:
  27119. bar
  27120. hello:
  27121. world
  27122. .ft P
  27123. .fi
  27124. .UNINDENT
  27125. .UNINDENT
  27126. .sp
  27127. However, if you don\(aqt prepend the \fBmy_custom_grain\fP function with an underscore,
  27128. the function will be rendered twice by Salt in the items output: once for the
  27129. \fBmy_custom_grain\fP call itself, and again when it is called in the \fBmain\fP
  27130. function:
  27131. .INDENT 0.0
  27132. .INDENT 3.5
  27133. .sp
  27134. .nf
  27135. .ft C
  27136. # salt\-call \-\-local grains.items
  27137. local:
  27138. \-\-\-\-\-\-\-\-\-\-
  27139. <Snipped for brevity>
  27140. foo:
  27141. bar
  27142. <Snipped for brevity>
  27143. hello:
  27144. world
  27145. <Snipped for brevity>
  27146. my_grains:
  27147. \-\-\-\-\-\-\-\-\-\-
  27148. foo:
  27149. bar
  27150. hello:
  27151. world
  27152. .ft P
  27153. .fi
  27154. .UNINDENT
  27155. .UNINDENT
  27156. .SS Precedence
  27157. .sp
  27158. Core grains can be overridden by custom grains. As there are several ways of
  27159. defining custom grains, there is an order of precedence which should be kept in
  27160. mind when defining them. The order of evaluation is as follows:
  27161. .INDENT 0.0
  27162. .IP 1. 3
  27163. Core grains.
  27164. .IP 2. 3
  27165. Custom grains in \fB/etc/salt/grains\fP\&.
  27166. .IP 3. 3
  27167. Custom grains in \fB/etc/salt/minion\fP\&.
  27168. .IP 4. 3
  27169. Custom grain modules in \fB_grains\fP directory, synced to minions.
  27170. .UNINDENT
  27171. .sp
  27172. Each successive evaluation overrides the previous ones, so any grains defined
  27173. by custom grains modules synced to minions that have the same name as a core
  27174. grain will override that core grain. Similarly, grains from
  27175. \fB/etc/salt/minion\fP override both core grains and custom grain modules, and
  27176. grains in \fB_grains\fP will override \fIany\fP grains of the same name.
  27177. .sp
  27178. For custom grains, if the function takes an argument \fBgrains\fP, then the
  27179. previously rendered grains will be passed in. Because the rest of the grains
  27180. could be rendered in any order, the only grains that can be relied upon to be
  27181. passed in are \fBcore\fP grains. This was added in the 2019.2.0 release.
  27182. .SS Examples of Grains
  27183. .sp
  27184. The core module in the grains package is where the main grains are loaded by
  27185. the Salt minion and provides the principal example of how to write grains:
  27186. .sp
  27187. \fI\%https://github.com/saltstack/salt/blob/master/salt/grains/core.py\fP
  27188. .SS Syncing Grains
  27189. .sp
  27190. Syncing grains can be done a number of ways. They are automatically synced when
  27191. \fBstate.highstate\fP is called, or (as noted
  27192. above) the grains can be manually synced and reloaded by calling the
  27193. \fBsaltutil.sync_grains\fP or
  27194. \fBsaltutil.sync_all\fP functions.
  27195. .sp
  27196. \fBNOTE:\fP
  27197. .INDENT 0.0
  27198. .INDENT 3.5
  27199. When the \fBgrains_cache\fP is set to False, the grains dictionary is built
  27200. and stored in memory on the minion. Every time the minion restarts or
  27201. \fBsaltutil.refresh_grains\fP is run, the grain dictionary is rebuilt from scratch.
  27202. .UNINDENT
  27203. .UNINDENT
  27204. .SS Storing Static Data in the Pillar
  27205. .sp
  27206. Pillar is an interface for Salt designed to offer global values that can be
  27207. distributed to minions. Pillar data is managed in a similar way as
  27208. the Salt State Tree.
  27209. .sp
  27210. Pillar was added to Salt in version 0.9.8
  27211. .sp
  27212. \fBNOTE:\fP
  27213. .INDENT 0.0
  27214. .INDENT 3.5
  27215. Storing sensitive data
  27216. .sp
  27217. Pillar data is compiled on the master. Additionally, pillar data for a
  27218. given minion is only accessible by the minion for which it is targeted in
  27219. the pillar configuration. This makes pillar useful for storing sensitive
  27220. data specific to a particular minion.
  27221. .UNINDENT
  27222. .UNINDENT
  27223. .SS Declaring the Master Pillar
  27224. .sp
  27225. The Salt Master server maintains a \fBpillar_roots\fP setup that
  27226. matches the structure of the \fBfile_roots\fP used in the Salt file
  27227. server. Like \fBfile_roots\fP, the \fBpillar_roots\fP option
  27228. maps environments to directories. The pillar data is then mapped to minions
  27229. based on matchers in a top file which is laid out in the same way as the state
  27230. top file. Salt pillars can use the same matcher types as the standard top
  27231. file\&.
  27232. .sp
  27233. conf_master:\fIpillar_roots\fP is configured just like \fBfile_roots\fP\&.
  27234. For example:
  27235. .INDENT 0.0
  27236. .INDENT 3.5
  27237. .sp
  27238. .nf
  27239. .ft C
  27240. pillar_roots:
  27241. base:
  27242. \- /srv/pillar
  27243. .ft P
  27244. .fi
  27245. .UNINDENT
  27246. .UNINDENT
  27247. .sp
  27248. This example configuration declares that the base environment will be located
  27249. in the \fB/srv/pillar\fP directory. It must not be in a subdirectory of the
  27250. state tree.
  27251. .sp
  27252. The top file used matches the name of the top file used for States,
  27253. and has the same structure:
  27254. .sp
  27255. \fB/srv/pillar/top.sls\fP
  27256. .INDENT 0.0
  27257. .INDENT 3.5
  27258. .sp
  27259. .nf
  27260. .ft C
  27261. base:
  27262. \(aq*\(aq:
  27263. \- packages
  27264. .ft P
  27265. .fi
  27266. .UNINDENT
  27267. .UNINDENT
  27268. .sp
  27269. In the above top file, it is declared that in the \fBbase\fP environment, the
  27270. glob matching all minions will have the pillar data found in the \fBpackages\fP
  27271. pillar available to it. Assuming the \fBpillar_roots\fP value of \fB/srv/pillar\fP
  27272. taken from above, the \fBpackages\fP pillar would be located at
  27273. \fB/srv/pillar/packages.sls\fP\&.
  27274. .sp
  27275. Any number of matchers can be added to the base environment. For example, here
  27276. is an expanded version of the Pillar top file stated above:
  27277. .sp
  27278. /srv/pillar/top.sls:
  27279. .INDENT 0.0
  27280. .INDENT 3.5
  27281. .sp
  27282. .nf
  27283. .ft C
  27284. base:
  27285. \(aq*\(aq:
  27286. \- packages
  27287. \(aqweb*\(aq:
  27288. \- vim
  27289. .ft P
  27290. .fi
  27291. .UNINDENT
  27292. .UNINDENT
  27293. .sp
  27294. In this expanded top file, minions that match \fBweb*\fP will have access to the
  27295. \fB/srv/pillar/packages.sls\fP file, as well as the \fB/srv/pillar/vim.sls\fP file.
  27296. .sp
  27297. Another example shows how to use other standard top matching types
  27298. to deliver specific salt pillar data to minions with different properties.
  27299. .sp
  27300. Here is an example using the \fBgrains\fP matcher to target pillars to minions
  27301. by their \fBos\fP grain:
  27302. .INDENT 0.0
  27303. .INDENT 3.5
  27304. .sp
  27305. .nf
  27306. .ft C
  27307. dev:
  27308. \(aqos:Debian\(aq:
  27309. \- match: grain
  27310. \- servers
  27311. .ft P
  27312. .fi
  27313. .UNINDENT
  27314. .UNINDENT
  27315. .sp
  27316. Pillar definitions can also take a keyword argument \fBignore_missing\fP\&.
  27317. When the value of \fBignore_missing\fP is \fBTrue\fP, all errors for missing
  27318. pillar files are ignored. The default value for \fBignore_missing\fP is
  27319. \fBFalse\fP\&.
  27320. .sp
  27321. Here is an example using the \fBignore_missing\fP keyword parameter to ignore
  27322. errors for missing pillar files:
  27323. .INDENT 0.0
  27324. .INDENT 3.5
  27325. .sp
  27326. .nf
  27327. .ft C
  27328. base:
  27329. \(aq*\(aq:
  27330. \- servers
  27331. \- systems
  27332. \- ignore_missing: True
  27333. .ft P
  27334. .fi
  27335. .UNINDENT
  27336. .UNINDENT
  27337. .sp
  27338. Assuming that the pillar \fBservers\fP exists in the fileserver backend
  27339. and the pillar \fBsystems\fP doesn\(aqt, all pillar data from \fBservers\fP
  27340. pillar is delivered to minions and no error for the missing pillar
  27341. \fBsystems\fP is noted under the key \fB_errors\fP in the pillar data
  27342. delivered to minions.
  27343. .sp
  27344. Should the \fBignore_missing\fP keyword parameter have the value \fBFalse\fP,
  27345. an error for the missing pillar \fBsystems\fP would produce the value
  27346. \fBSpecified SLS \(aqservers\(aq in environment \(aqbase\(aq is not available on the salt master\fP
  27347. under the key \fB_errors\fP in the pillar data delivered to minions.
  27348. .sp
  27349. \fB/srv/pillar/packages.sls\fP
  27350. .INDENT 0.0
  27351. .INDENT 3.5
  27352. .sp
  27353. .nf
  27354. .ft C
  27355. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq %}
  27356. apache: httpd
  27357. git: git
  27358. {% elif grains[\(aqos\(aq] == \(aqDebian\(aq %}
  27359. apache: apache2
  27360. git: git\-core
  27361. {% endif %}
  27362. company: Foo Industries
  27363. .ft P
  27364. .fi
  27365. .UNINDENT
  27366. .UNINDENT
  27367. .sp
  27368. \fBIMPORTANT:\fP
  27369. .INDENT 0.0
  27370. .INDENT 3.5
  27371. See Is Targeting using Grain Data Secure? for
  27372. important security information.
  27373. .UNINDENT
  27374. .UNINDENT
  27375. .sp
  27376. The above pillar sets two key/value pairs. If a minion is running RedHat, then
  27377. the \fBapache\fP key is set to \fBhttpd\fP and the \fBgit\fP key is set to the value
  27378. of \fBgit\fP\&. If the minion is running Debian, those values are changed to
  27379. \fBapache2\fP and \fBgit\-core\fP respectively. All minions that have this pillar
  27380. targeting to them via a top file will have the key of \fBcompany\fP with a value
  27381. of \fBFoo Industries\fP\&.
  27382. .sp
  27383. Consequently this data can be used from within modules, renderers, State SLS
  27384. files, and more via the shared pillar dictionary:
  27385. .INDENT 0.0
  27386. .INDENT 3.5
  27387. .sp
  27388. .nf
  27389. .ft C
  27390. apache:
  27391. pkg.installed:
  27392. \- name: {{ pillar[\(aqapache\(aq] }}
  27393. .ft P
  27394. .fi
  27395. .UNINDENT
  27396. .UNINDENT
  27397. .INDENT 0.0
  27398. .INDENT 3.5
  27399. .sp
  27400. .nf
  27401. .ft C
  27402. git:
  27403. pkg.installed:
  27404. \- name: {{ pillar[\(aqgit\(aq] }}
  27405. .ft P
  27406. .fi
  27407. .UNINDENT
  27408. .UNINDENT
  27409. .sp
  27410. Finally, the above states can utilize the values provided to them via Pillar.
  27411. All pillar values targeted to a minion are available via the \(aqpillar\(aq
  27412. dictionary. As seen in the above example, Jinja substitution can then be
  27413. utilized to access the keys and values in the Pillar dictionary.
  27414. .sp
  27415. Note that you cannot just list key/value\-information in \fBtop.sls\fP\&. Instead,
  27416. target a minion to a pillar file and then list the keys and values in the
  27417. pillar. Here is an example top file that illustrates this point:
  27418. .INDENT 0.0
  27419. .INDENT 3.5
  27420. .sp
  27421. .nf
  27422. .ft C
  27423. base:
  27424. \(aq*\(aq:
  27425. \- common_pillar
  27426. .ft P
  27427. .fi
  27428. .UNINDENT
  27429. .UNINDENT
  27430. .sp
  27431. And the actual pillar file at \(aq/srv/pillar/common_pillar.sls\(aq:
  27432. .INDENT 0.0
  27433. .INDENT 3.5
  27434. .sp
  27435. .nf
  27436. .ft C
  27437. foo: bar
  27438. boo: baz
  27439. .ft P
  27440. .fi
  27441. .UNINDENT
  27442. .UNINDENT
  27443. .sp
  27444. \fBNOTE:\fP
  27445. .INDENT 0.0
  27446. .INDENT 3.5
  27447. When working with multiple pillar environments, assuming that each pillar
  27448. environment has its own top file, the jinja placeholder \fB{{ saltenv }}\fP
  27449. can be used in place of the environment name:
  27450. .INDENT 0.0
  27451. .INDENT 3.5
  27452. .sp
  27453. .nf
  27454. .ft C
  27455. {{ saltenv }}:
  27456. \(aq*\(aq:
  27457. \- common_pillar
  27458. .ft P
  27459. .fi
  27460. .UNINDENT
  27461. .UNINDENT
  27462. .sp
  27463. Yes, this is \fB{{ saltenv }}\fP, and not \fB{{ pillarenv }}\fP\&. The reason for
  27464. this is because the Pillar top files are parsed using some of the same code
  27465. which parses top files when running states, so
  27466. the pillar environment takes the place of \fB{{ saltenv }}\fP in the jinja
  27467. context.
  27468. .UNINDENT
  27469. .UNINDENT
  27470. .SS Dynamic Pillar Environments
  27471. .sp
  27472. If environment \fB__env__\fP is specified in \fBpillar_roots\fP, all
  27473. environments that are not explicitly specified in \fBpillar_roots\fP
  27474. will map to the directories from \fB__env__\fP\&. This allows one to use dynamic
  27475. git branch based environments for state/pillar files with the same file\-based
  27476. pillar applying to all environments. For example:
  27477. .INDENT 0.0
  27478. .INDENT 3.5
  27479. .sp
  27480. .nf
  27481. .ft C
  27482. pillar_roots:
  27483. __env__:
  27484. \- /srv/pillar
  27485. ext_pillar:
  27486. \- git:
  27487. \- __env__ https://example.com/git\-pillar.git
  27488. .ft P
  27489. .fi
  27490. .UNINDENT
  27491. .UNINDENT
  27492. .sp
  27493. New in version 2017.7.5,2018.3.1.
  27494. .SS Pillar Namespace Flattening
  27495. .sp
  27496. The separate pillar SLS files all merge down into a single dictionary of
  27497. key\-value pairs. When the same key is defined in multiple SLS files, this can
  27498. result in unexpected behavior if care is not taken to how the pillar SLS files
  27499. are laid out.
  27500. .sp
  27501. For example, given a \fBtop.sls\fP containing the following:
  27502. .INDENT 0.0
  27503. .INDENT 3.5
  27504. .sp
  27505. .nf
  27506. .ft C
  27507. base:
  27508. \(aq*\(aq:
  27509. \- packages
  27510. \- services
  27511. .ft P
  27512. .fi
  27513. .UNINDENT
  27514. .UNINDENT
  27515. .sp
  27516. with \fBpackages.sls\fP containing:
  27517. .INDENT 0.0
  27518. .INDENT 3.5
  27519. .sp
  27520. .nf
  27521. .ft C
  27522. bind: bind9
  27523. .ft P
  27524. .fi
  27525. .UNINDENT
  27526. .UNINDENT
  27527. .sp
  27528. and \fBservices.sls\fP containing:
  27529. .INDENT 0.0
  27530. .INDENT 3.5
  27531. .sp
  27532. .nf
  27533. .ft C
  27534. bind: named
  27535. .ft P
  27536. .fi
  27537. .UNINDENT
  27538. .UNINDENT
  27539. .sp
  27540. Then a request for the \fBbind\fP pillar key will only return \fBnamed\fP\&. The
  27541. \fBbind9\fP value will be lost, because \fBservices.sls\fP was evaluated later.
  27542. .sp
  27543. \fBNOTE:\fP
  27544. .INDENT 0.0
  27545. .INDENT 3.5
  27546. Pillar files are applied in the order they are listed in the top file.
  27547. Therefore conflicting keys will be overwritten in a \(aqlast one wins\(aq manner!
  27548. For example, in the above scenario conflicting key values in \fBservices\fP
  27549. will overwrite those in \fBpackages\fP because it\(aqs at the bottom of the list.
  27550. .UNINDENT
  27551. .UNINDENT
  27552. .sp
  27553. It can be better to structure your pillar files with more hierarchy. For
  27554. example the \fBpackage.sls\fP file could be configured like so:
  27555. .INDENT 0.0
  27556. .INDENT 3.5
  27557. .sp
  27558. .nf
  27559. .ft C
  27560. packages:
  27561. bind: bind9
  27562. .ft P
  27563. .fi
  27564. .UNINDENT
  27565. .UNINDENT
  27566. .sp
  27567. This would make the \fBpackages\fP pillar key a nested dictionary containing a
  27568. \fBbind\fP key.
  27569. .SS Pillar Dictionary Merging
  27570. .sp
  27571. If the same pillar key is defined in multiple pillar SLS files, and the keys in
  27572. both files refer to nested dictionaries, then the content from these
  27573. dictionaries will be recursively merged.
  27574. .sp
  27575. For example, keeping the \fBtop.sls\fP the same, assume the following
  27576. modifications to the pillar SLS files:
  27577. .sp
  27578. \fBpackages.sls\fP:
  27579. .INDENT 0.0
  27580. .INDENT 3.5
  27581. .sp
  27582. .nf
  27583. .ft C
  27584. bind:
  27585. package\-name: bind9
  27586. version: 9.9.5
  27587. .ft P
  27588. .fi
  27589. .UNINDENT
  27590. .UNINDENT
  27591. .sp
  27592. \fBservices.sls\fP:
  27593. .INDENT 0.0
  27594. .INDENT 3.5
  27595. .sp
  27596. .nf
  27597. .ft C
  27598. bind:
  27599. port: 53
  27600. listen\-on: any
  27601. .ft P
  27602. .fi
  27603. .UNINDENT
  27604. .UNINDENT
  27605. .sp
  27606. The resulting pillar dictionary will be:
  27607. .INDENT 0.0
  27608. .INDENT 3.5
  27609. .sp
  27610. .nf
  27611. .ft C
  27612. $ salt\-call pillar.get bind
  27613. local:
  27614. \-\-\-\-\-\-\-\-\-\-
  27615. listen\-on:
  27616. any
  27617. package\-name:
  27618. bind9
  27619. port:
  27620. 53
  27621. version:
  27622. 9.9.5
  27623. .ft P
  27624. .fi
  27625. .UNINDENT
  27626. .UNINDENT
  27627. .sp
  27628. Since both pillar SLS files contained a \fBbind\fP key which contained a nested
  27629. dictionary, the pillar dictionary\(aqs \fBbind\fP key contains the combined contents
  27630. of both SLS files\(aq \fBbind\fP keys.
  27631. .SS Including Other Pillars
  27632. .sp
  27633. New in version 0.16.0.
  27634. .sp
  27635. Pillar SLS files may include other pillar files, similar to State files. Two
  27636. syntaxes are available for this purpose. The simple form simply includes the
  27637. additional pillar as if it were part of the same file:
  27638. .INDENT 0.0
  27639. .INDENT 3.5
  27640. .sp
  27641. .nf
  27642. .ft C
  27643. include:
  27644. \- users
  27645. .ft P
  27646. .fi
  27647. .UNINDENT
  27648. .UNINDENT
  27649. .sp
  27650. The full include form allows two additional options \-\- passing default values
  27651. to the templating engine for the included pillar file as well as an optional
  27652. key under which to nest the results of the included pillar:
  27653. .INDENT 0.0
  27654. .INDENT 3.5
  27655. .sp
  27656. .nf
  27657. .ft C
  27658. include:
  27659. \- users:
  27660. defaults:
  27661. sudo: [\(aqbob\(aq, \(aqpaul\(aq]
  27662. key: users
  27663. .ft P
  27664. .fi
  27665. .UNINDENT
  27666. .UNINDENT
  27667. .sp
  27668. With this form, the included file (users.sls) will be nested within the \(aqusers\(aq
  27669. key of the compiled pillar. Additionally, the \(aqsudo\(aq value will be available
  27670. as a template variable to users.sls.
  27671. .SS In\-Memory Pillar Data vs. On\-Demand Pillar Data
  27672. .sp
  27673. Since compiling pillar data is computationally expensive, the minion will
  27674. maintain a copy of the pillar data in memory to avoid needing to ask the master
  27675. to recompile and send it a copy of the pillar data each time pillar data is
  27676. requested. This in\-memory pillar data is what is returned by the
  27677. \fBpillar.item\fP, \fBpillar.get\fP, and \fBpillar.raw\fP
  27678. functions.
  27679. .sp
  27680. Also, for those writing custom execution modules, or contributing to Salt\(aqs
  27681. existing execution modules, the in\-memory pillar data is available as the
  27682. \fB__pillar__\fP dunder dictionary.
  27683. .sp
  27684. The in\-memory pillar data is generated on minion start, and can be refreshed
  27685. using the \fBsaltutil.refresh_pillar\fP function:
  27686. .INDENT 0.0
  27687. .INDENT 3.5
  27688. .sp
  27689. .nf
  27690. .ft C
  27691. salt \(aq*\(aq saltutil.refresh_pillar
  27692. .ft P
  27693. .fi
  27694. .UNINDENT
  27695. .UNINDENT
  27696. .sp
  27697. This function triggers the minion to asynchronously refresh the in\-memory
  27698. pillar data and will always return \fBNone\fP\&.
  27699. .sp
  27700. In contrast to in\-memory pillar data, certain actions trigger pillar data to be
  27701. compiled to ensure that the most up\-to\-date pillar data is available. These
  27702. actions include:
  27703. .INDENT 0.0
  27704. .IP \(bu 2
  27705. Running states
  27706. .IP \(bu 2
  27707. Running \fBpillar.items\fP
  27708. .UNINDENT
  27709. .sp
  27710. Performing these actions will \fInot\fP refresh the in\-memory pillar data. So, if
  27711. pillar data is modified, and then states are run, the states will see the
  27712. updated pillar data, but \fBpillar.item\fP,
  27713. \fBpillar.get\fP, and \fBpillar.raw\fP will not see this data unless refreshed using
  27714. \fBsaltutil.refresh_pillar\fP\&.
  27715. .SS How Pillar Environments Are Handled
  27716. .sp
  27717. When multiple pillar environments are used, the default behavior is for the
  27718. pillar data from all environments to be merged together. The pillar dictionary
  27719. will therefore contain keys from all configured environments.
  27720. .sp
  27721. The \fBpillarenv\fP minion config option can be used to force the
  27722. minion to only consider pillar configuration from a single environment. This
  27723. can be useful in cases where one needs to run states with alternate pillar
  27724. data, either in a testing/QA environment or to test changes to the pillar data
  27725. before pushing them live.
  27726. .sp
  27727. For example, assume that the following is set in the minion config file:
  27728. .INDENT 0.0
  27729. .INDENT 3.5
  27730. .sp
  27731. .nf
  27732. .ft C
  27733. pillarenv: base
  27734. .ft P
  27735. .fi
  27736. .UNINDENT
  27737. .UNINDENT
  27738. .sp
  27739. This would cause that minion to ignore all other pillar environments besides
  27740. \fBbase\fP when compiling the in\-memory pillar data. Then, when running states,
  27741. the \fBpillarenv\fP CLI argument can be used to override the minion\(aqs
  27742. \fBpillarenv\fP config value:
  27743. .INDENT 0.0
  27744. .INDENT 3.5
  27745. .sp
  27746. .nf
  27747. .ft C
  27748. salt \(aq*\(aq state.apply mystates pillarenv=testing
  27749. .ft P
  27750. .fi
  27751. .UNINDENT
  27752. .UNINDENT
  27753. .sp
  27754. The above command will run the states with pillar data sourced exclusively from
  27755. the \fBtesting\fP environment, without modifying the in\-memory pillar data.
  27756. .sp
  27757. \fBNOTE:\fP
  27758. .INDENT 0.0
  27759. .INDENT 3.5
  27760. When running states, the \fBpillarenv\fP CLI option does not require a
  27761. \fBpillarenv\fP option to be set in the minion config file. When
  27762. \fBpillarenv\fP is left unset, as mentioned above all configured
  27763. environments will be combined. Running states with \fBpillarenv=testing\fP in
  27764. this case would still restrict the states\(aq pillar data to just that of the
  27765. \fBtesting\fP pillar environment.
  27766. .UNINDENT
  27767. .UNINDENT
  27768. .sp
  27769. Starting in the 2017.7.0 release, it is possible to pin the pillarenv to the
  27770. effective saltenv, using the \fBpillarenv_from_saltenv\fP minion
  27771. config option. When this is set to \fBTrue\fP, if a specific saltenv is specified
  27772. when running states, the \fBpillarenv\fP will be the same. This essentially makes
  27773. the following two commands equivalent:
  27774. .INDENT 0.0
  27775. .INDENT 3.5
  27776. .sp
  27777. .nf
  27778. .ft C
  27779. salt \(aq*\(aq state.apply mystates saltenv=dev
  27780. salt \(aq*\(aq state.apply mystates saltenv=dev pillarenv=dev
  27781. .ft P
  27782. .fi
  27783. .UNINDENT
  27784. .UNINDENT
  27785. .sp
  27786. However, if a pillarenv is specified, it will override this behavior. So, the
  27787. following command will use the \fBqa\fP pillar environment but source the SLS
  27788. files from the \fBdev\fP saltenv:
  27789. .INDENT 0.0
  27790. .INDENT 3.5
  27791. .sp
  27792. .nf
  27793. .ft C
  27794. salt \(aq*\(aq state.apply mystates saltenv=dev pillarenv=qa
  27795. .ft P
  27796. .fi
  27797. .UNINDENT
  27798. .UNINDENT
  27799. .sp
  27800. So, if a \fBpillarenv\fP is set in the minion config file,
  27801. \fBpillarenv_from_saltenv\fP will be ignored, and passing a
  27802. \fBpillarenv\fP on the CLI will temporarily override
  27803. \fBpillarenv_from_saltenv\fP\&.
  27804. .SS Viewing Pillar Data
  27805. .sp
  27806. To view pillar data, use the \fBpillar\fP execution
  27807. module. This module includes several functions, each of them with their own
  27808. use. These functions include:
  27809. .INDENT 0.0
  27810. .IP \(bu 2
  27811. \fBpillar.item\fP \- Retrieves the value of
  27812. one or more keys from the \fI\%in\-memory pillar data\fP\&.
  27813. .IP \(bu 2
  27814. \fBpillar.items\fP \- Compiles a fresh pillar
  27815. dictionary and returns it, leaving the \fI\%in\-memory pillar data\fP untouched. If pillar keys are passed to this function
  27816. however, this function acts like \fBpillar.item\fP and returns their values from the \fI\%in\-memory
  27817. pillar data\fP\&.
  27818. .IP \(bu 2
  27819. \fBpillar.raw\fP \- Like \fBpillar.items\fP, it returns the entire pillar dictionary, but
  27820. from the \fI\%in\-memory pillar data\fP instead of compiling
  27821. fresh pillar data.
  27822. .IP \(bu 2
  27823. \fBpillar.get\fP \- Described in detail below.
  27824. .UNINDENT
  27825. .SS The \fBpillar.get\fP Function
  27826. .sp
  27827. New in version 0.14.0.
  27828. .sp
  27829. The \fBpillar.get\fP function works much in the same
  27830. way as the \fBget\fP method in a python dict, but with an enhancement: nested
  27831. dictonaries can be traversed using a colon as a delimiter.
  27832. .sp
  27833. If a structure like this is in pillar:
  27834. .INDENT 0.0
  27835. .INDENT 3.5
  27836. .sp
  27837. .nf
  27838. .ft C
  27839. foo:
  27840. bar:
  27841. baz: qux
  27842. .ft P
  27843. .fi
  27844. .UNINDENT
  27845. .UNINDENT
  27846. .sp
  27847. Extracting it from the raw pillar in an sls formula or file template is done
  27848. this way:
  27849. .INDENT 0.0
  27850. .INDENT 3.5
  27851. .sp
  27852. .nf
  27853. .ft C
  27854. {{ pillar[\(aqfoo\(aq][\(aqbar\(aq][\(aqbaz\(aq] }}
  27855. .ft P
  27856. .fi
  27857. .UNINDENT
  27858. .UNINDENT
  27859. .sp
  27860. Now, with the new \fBpillar.get\fP function the data
  27861. can be safely gathered and a default can be set, allowing the template to fall
  27862. back if the value is not available:
  27863. .INDENT 0.0
  27864. .INDENT 3.5
  27865. .sp
  27866. .nf
  27867. .ft C
  27868. {{ salt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq, \(aqqux\(aq) }}
  27869. .ft P
  27870. .fi
  27871. .UNINDENT
  27872. .UNINDENT
  27873. .sp
  27874. This makes handling nested structures much easier.
  27875. .sp
  27876. \fBNOTE:\fP
  27877. .INDENT 0.0
  27878. .INDENT 3.5
  27879. \fBpillar.get()\fP vs \fBsalt[\(aqpillar.get\(aq]()\fP
  27880. .sp
  27881. It should be noted that within templating, the \fBpillar\fP variable is just
  27882. a dictionary. This means that calling \fBpillar.get()\fP inside of a
  27883. template will just use the default dictionary \fB\&.get()\fP function which
  27884. does not include the extra \fB:\fP delimiter functionality. It must be
  27885. called using the above syntax (\fBsalt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq,
  27886. \(aqqux\(aq)\fP) to get the salt function, instead of the default dictionary
  27887. behavior.
  27888. .UNINDENT
  27889. .UNINDENT
  27890. .SS Setting Pillar Data at the Command Line
  27891. .sp
  27892. Pillar data can be set at the command line like the following example:
  27893. .INDENT 0.0
  27894. .INDENT 3.5
  27895. .sp
  27896. .nf
  27897. .ft C
  27898. salt \(aq*\(aq state.apply pillar=\(aq{"cheese": "spam"}\(aq
  27899. .ft P
  27900. .fi
  27901. .UNINDENT
  27902. .UNINDENT
  27903. .sp
  27904. This will add a pillar key of \fBcheese\fP with its value set to \fBspam\fP\&.
  27905. .sp
  27906. \fBNOTE:\fP
  27907. .INDENT 0.0
  27908. .INDENT 3.5
  27909. Be aware that when sending sensitive data via pillar on the command\-line
  27910. that the publication containing that data will be received by all minions
  27911. and will not be restricted to the targeted minions. This may represent
  27912. a security concern in some cases.
  27913. .UNINDENT
  27914. .UNINDENT
  27915. .SS Pillar Encryption
  27916. .sp
  27917. Salt\(aqs renderer system can be used to decrypt pillar data. This allows for
  27918. pillar items to be stored in an encrypted state, and decrypted during pillar
  27919. compilation.
  27920. .SS Encrypted Pillar SLS
  27921. .sp
  27922. New in version 2017.7.0.
  27923. .sp
  27924. Consider the following pillar SLS file:
  27925. .INDENT 0.0
  27926. .INDENT 3.5
  27927. .sp
  27928. .nf
  27929. .ft C
  27930. secrets:
  27931. vault:
  27932. foo: |
  27933. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27934. hQEMAw2B674HRhwSAQgAhTrN8NizwUv/VunVrqa4/X8t6EUulrnhKcSeb8sZS4th
  27935. W1Qz3K2NjL4lkUHCQHKZVx/VoZY7zsddBIFvvoGGfj8+2wjkEDwFmFjGE4DEsS74
  27936. ZLRFIFJC1iB/O0AiQ+oU745skQkU6OEKxqavmKMrKo3rvJ8ZCXDC470+i2/Hqrp7
  27937. +KWGmaDOO422JaSKRm5D9bQZr9oX7KqnrPG9I1+UbJyQSJdsdtquPWmeIpamEVHb
  27938. VMDNQRjSezZ1yKC4kCWm3YQbBF76qTHzG1VlLF5qOzuGI9VkyvlMaLfMibriqY73
  27939. zBbPzf6Bkp2+Y9qyzuveYMmwS4sEOuZL/PetqisWe9JGAWD/O+slQ2KRu9hNww06
  27940. KMDPJRdyj5bRuBVE4hHkkP23KrYr7SuhW2vpe7O/MvWEJ9uDNegpMLhTWruGngJh
  27941. iFndxegN9w==
  27942. =bAuo
  27943. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27944. bar: this was unencrypted already
  27945. baz: |
  27946. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27947. hQEMAw2B674HRhwSAQf+Ne+IfsP2IcPDrUWct8sTJrga47jQvlPCmO+7zJjOVcqz
  27948. gLjUKvMajrbI/jorBWxyAbF+5E7WdG9WHHVnuoywsyTB9rbmzuPqYCJCe+ZVyqWf
  27949. 9qgJ+oUjcvYIFmH3h7H68ldqbxaAUkAOQbTRHdr253wwaTIC91ZeX0SCj64HfTg7
  27950. Izwk383CRWonEktXJpientApQFSUWNeLUWagEr/YPNFA3vzpPF5/Ia9X8/z/6oO2
  27951. q+D5W5mVsns3i2HHbg2A8Y+pm4TWnH6mTSh/gdxPqssi9qIrzGQ6H1tEoFFOEq1V
  27952. kJBe0izlfudqMq62XswzuRB4CYT5Iqw1c97T+1RqENJCASG0Wz8AGhinTdlU5iQl
  27953. JkLKqBxcBz4L70LYWyHhYwYROJWjHgKAywX5T67ftq0wi8APuZl9olnOkwSK+wrY
  27954. 1OZi
  27955. =7epf
  27956. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27957. qux:
  27958. \- foo
  27959. \- bar
  27960. \- |
  27961. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27962. hQEMAw2B674HRhwSAQgAg1YCmokrweoOI1c9HO0BLamWBaFPTMblOaTo0WJLZoTS
  27963. ksbQ3OJAMkrkn3BnnM/djJc5C7vNs86ZfSJ+pvE8Sp1Rhtuxh25EKMqGOn/SBedI
  27964. gR6N5vGUNiIpG5Tf3DuYAMNFDUqw8uY0MyDJI+ZW3o3xrMUABzTH0ew+Piz85FDA
  27965. YrVgwZfqyL+9OQuu6T66jOIdwQNRX2NPFZqvon8liZUPus5VzD8E5cAL9OPxQ3sF
  27966. f7/zE91YIXUTimrv3L7eCgU1dSxKhhfvA2bEUi+AskMWFXFuETYVrIhFJAKnkFmE
  27967. uZx+O9R9hADW3hM5hWHKH9/CRtb0/cC84I9oCWIQPdI+AaPtICxtsD2N8Q98hhhd
  27968. 4M7I0sLZhV+4ZJqzpUsOnSpaGyfh1Zy/1d3ijJi99/l+uVHuvmMllsNmgR+ZTj0=
  27969. =LrCQ
  27970. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27971. .ft P
  27972. .fi
  27973. .UNINDENT
  27974. .UNINDENT
  27975. .sp
  27976. When the pillar data is compiled, the results will be decrypted:
  27977. .INDENT 0.0
  27978. .INDENT 3.5
  27979. .sp
  27980. .nf
  27981. .ft C
  27982. # salt myminion pillar.items
  27983. myminion:
  27984. \-\-\-\-\-\-\-\-\-\-
  27985. secrets:
  27986. \-\-\-\-\-\-\-\-\-\-
  27987. vault:
  27988. \-\-\-\-\-\-\-\-\-\-
  27989. bar:
  27990. this was unencrypted already
  27991. baz:
  27992. rosebud
  27993. foo:
  27994. supersecret
  27995. qux:
  27996. \- foo
  27997. \- bar
  27998. \- baz
  27999. .ft P
  28000. .fi
  28001. .UNINDENT
  28002. .UNINDENT
  28003. .sp
  28004. Salt must be told what portions of the pillar data to decrypt. This is done
  28005. using the \fBdecrypt_pillar\fP config option:
  28006. .INDENT 0.0
  28007. .INDENT 3.5
  28008. .sp
  28009. .nf
  28010. .ft C
  28011. decrypt_pillar:
  28012. \- \(aqsecrets:vault\(aq: gpg
  28013. .ft P
  28014. .fi
  28015. .UNINDENT
  28016. .UNINDENT
  28017. .sp
  28018. The notation used to specify the pillar item(s) to be decrypted is the same as
  28019. the one used in \fBpillar.get\fP function.
  28020. .sp
  28021. If a different delimiter is needed, it can be specified using the
  28022. \fBdecrypt_pillar_delimiter\fP config option:
  28023. .INDENT 0.0
  28024. .INDENT 3.5
  28025. .sp
  28026. .nf
  28027. .ft C
  28028. decrypt_pillar:
  28029. \- \(aqsecrets|vault\(aq: gpg
  28030. decrypt_pillar_delimiter: \(aq|\(aq
  28031. .ft P
  28032. .fi
  28033. .UNINDENT
  28034. .UNINDENT
  28035. .sp
  28036. The name of the renderer used to decrypt a given pillar item can be omitted,
  28037. and if so it will fall back to the value specified by the
  28038. \fBdecrypt_pillar_default\fP config option, which defaults to \fBgpg\fP\&.
  28039. So, the first example above could be rewritten as:
  28040. .INDENT 0.0
  28041. .INDENT 3.5
  28042. .sp
  28043. .nf
  28044. .ft C
  28045. decrypt_pillar:
  28046. \- \(aqsecrets:vault\(aq
  28047. .ft P
  28048. .fi
  28049. .UNINDENT
  28050. .UNINDENT
  28051. .SS Encrypted Pillar Data on the CLI
  28052. .sp
  28053. New in version 2016.3.0.
  28054. .sp
  28055. The following functions support passing pillar data on the CLI via the
  28056. \fBpillar\fP argument:
  28057. .INDENT 0.0
  28058. .IP \(bu 2
  28059. \fBpillar.items\fP
  28060. .IP \(bu 2
  28061. \fBstate.apply\fP
  28062. .IP \(bu 2
  28063. \fBstate.highstate\fP
  28064. .IP \(bu 2
  28065. \fBstate.sls\fP
  28066. .UNINDENT
  28067. .sp
  28068. Triggerring decryption of this CLI pillar data can be done in one of two ways:
  28069. .INDENT 0.0
  28070. .IP 1. 3
  28071. Using the \fBpillar_enc\fP argument:
  28072. .INDENT 3.0
  28073. .INDENT 3.5
  28074. .sp
  28075. .nf
  28076. .ft C
  28077. # 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
  28078. .ft P
  28079. .fi
  28080. .UNINDENT
  28081. .UNINDENT
  28082. .sp
  28083. The newlines in this example are specified using a literal \fB\en\fP\&. Newlines
  28084. can be replaced with a literal \fB\en\fP using \fBsed\fP:
  28085. .INDENT 3.0
  28086. .INDENT 3.5
  28087. .sp
  28088. .nf
  28089. .ft C
  28090. $ echo \-n bar | gpg \-\-armor \-\-trust\-model always \-\-encrypt \-r user@domain.tld | sed \(aq:a;N;$!ba;s/\en/\e\en/g\(aq
  28091. .ft P
  28092. .fi
  28093. .UNINDENT
  28094. .UNINDENT
  28095. .sp
  28096. \fBNOTE:\fP
  28097. .INDENT 3.0
  28098. .INDENT 3.5
  28099. Using \fBpillar_enc\fP will perform the decryption minion\-side, so for
  28100. this to work it will be necessary to set up the keyring in
  28101. \fB/etc/salt/gpgkeys\fP on the minion just as one would typically do on
  28102. the master. The easiest way to do this is to first export the keys from
  28103. the master:
  28104. .INDENT 0.0
  28105. .INDENT 3.5
  28106. .sp
  28107. .nf
  28108. .ft C
  28109. # gpg \-\-homedir /etc/salt/gpgkeys \-\-export\-secret\-key \-a user@domain.tld >/tmp/keypair.gpg
  28110. .ft P
  28111. .fi
  28112. .UNINDENT
  28113. .UNINDENT
  28114. .sp
  28115. Then, copy the file to the minion, setup the keyring, and import:
  28116. .INDENT 0.0
  28117. .INDENT 3.5
  28118. .sp
  28119. .nf
  28120. .ft C
  28121. # mkdir \-p /etc/salt/gpgkeys
  28122. # chmod 0700 /etc/salt/gpgkeys
  28123. # gpg \-\-homedir /etc/salt/gpgkeys \-\-list\-keys
  28124. # gpg \-\-homedir /etc/salt/gpgkeys \-\-import \-\-allow\-secret\-key\-import keypair.gpg
  28125. .ft P
  28126. .fi
  28127. .UNINDENT
  28128. .UNINDENT
  28129. .sp
  28130. The \fB\-\-list\-keys\fP command is run create a keyring in the newly\-created
  28131. directory.
  28132. .UNINDENT
  28133. .UNINDENT
  28134. .sp
  28135. Pillar data which is decrypted minion\-side will still be securely
  28136. transferred to the master, since the data sent between minion and master is
  28137. encrypted with the master\(aqs public key.
  28138. .IP 2. 3
  28139. Use the \fBdecrypt_pillar\fP option. This is less flexible in that
  28140. the pillar key passed on the CLI must be pre\-configured on the master, but
  28141. it doesn\(aqt require a keyring to be setup on the minion. One other caveat to
  28142. this method is that pillar decryption on the master happens at the end of
  28143. pillar compilation, so if the encrypted pillar data being passed on the CLI
  28144. needs to be referenced by pillar or ext_pillar \fIduring pillar compilation\fP,
  28145. it \fImust\fP be decrypted minion\-side.
  28146. .UNINDENT
  28147. .SS Adding New Renderers for Decryption
  28148. .sp
  28149. 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
  28150. that performs the decryption should be recursive and be able to traverse a
  28151. mutable type such as a dictionary, and modify the values in\-place.
  28152. .sp
  28153. Once the renderer has been written, \fBdecrypt_pillar_renderers\fP
  28154. should be modified so that Salt allows it to be used for decryption.
  28155. .sp
  28156. If the renderer is being submitted upstream to the Salt project, the renderer
  28157. should be added in \fI\%salt/renderers/\fP\&. Additionally, the following should be
  28158. done:
  28159. .INDENT 0.0
  28160. .IP \(bu 2
  28161. Both occurrences of \fBdecrypt_pillar_renderers\fP in
  28162. \fI\%salt/config/__init__.py\fP should be updated to include the name of the new
  28163. renderer so that it is included in the default value for this config option.
  28164. .IP \(bu 2
  28165. The documentation for the \fBdecrypt_pillar_renderers\fP config
  28166. option in the \fI\%master config file\fP and \fI\%minion config file\fP should be
  28167. updated to show the correct new default value.
  28168. .IP \(bu 2
  28169. The commented example for the \fBdecrypt_pillar_renderers\fP config
  28170. option in the \fI\%master config template\fP should be updated to show the correct
  28171. new default value.
  28172. .UNINDENT
  28173. .SS Binary Data in the Pillar
  28174. .sp
  28175. Salt has partial support for binary pillar data.
  28176. .sp
  28177. \fBNOTE:\fP
  28178. .INDENT 0.0
  28179. .INDENT 3.5
  28180. There are some situations (such as salt\-ssh) where only text (ASCII or
  28181. Unicode) is allowed.
  28182. .UNINDENT
  28183. .UNINDENT
  28184. .sp
  28185. The simplest way to embed binary data in your pillar is to make use of YAML\(aqs
  28186. built\-in binary data type, which requires base64 encoded data.
  28187. .INDENT 0.0
  28188. .INDENT 3.5
  28189. .sp
  28190. .nf
  28191. .ft C
  28192. salt_pic: !!binary
  28193. iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAA
  28194. .ft P
  28195. .fi
  28196. .UNINDENT
  28197. .UNINDENT
  28198. .sp
  28199. Then you can use it as a \fBcontents_pillar\fP in a state:
  28200. .INDENT 0.0
  28201. .INDENT 3.5
  28202. .sp
  28203. .nf
  28204. .ft C
  28205. /tmp/salt.png:
  28206. file.managed:
  28207. \- contents_pillar: salt_pic
  28208. .ft P
  28209. .fi
  28210. .UNINDENT
  28211. .UNINDENT
  28212. .sp
  28213. It is also possible to add ASCII\-armored encrypted data to pillars, as
  28214. mentioned in the Pillar Encryption section.
  28215. .SS Master Config in Pillar
  28216. .sp
  28217. For convenience the data stored in the master configuration file can be made
  28218. available in all minion\(aqs pillars. This makes global configuration of services
  28219. and systems very easy but may not be desired if sensitive data is stored in the
  28220. master configuration. This option is disabled by default.
  28221. .sp
  28222. To enable the master config from being added to the pillar set
  28223. \fBpillar_opts\fP to \fBTrue\fP in the minion config file:
  28224. .INDENT 0.0
  28225. .INDENT 3.5
  28226. .sp
  28227. .nf
  28228. .ft C
  28229. pillar_opts: True
  28230. .ft P
  28231. .fi
  28232. .UNINDENT
  28233. .UNINDENT
  28234. .SS Minion Config in Pillar
  28235. .sp
  28236. Minion configuration options can be set on pillars. Any option that you want
  28237. to modify, should be in the first level of the pillars, in the same way you set
  28238. the options in the config file. For example, to configure the MySQL root
  28239. password to be used by MySQL Salt execution module, set the following pillar
  28240. variable:
  28241. .INDENT 0.0
  28242. .INDENT 3.5
  28243. .sp
  28244. .nf
  28245. .ft C
  28246. mysql.pass: hardtoguesspassword
  28247. .ft P
  28248. .fi
  28249. .UNINDENT
  28250. .UNINDENT
  28251. .SS Master Provided Pillar Error
  28252. .sp
  28253. By default if there is an error rendering a pillar, the detailed error is
  28254. hidden and replaced with:
  28255. .INDENT 0.0
  28256. .INDENT 3.5
  28257. .sp
  28258. .nf
  28259. .ft C
  28260. Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  28261. .ft P
  28262. .fi
  28263. .UNINDENT
  28264. .UNINDENT
  28265. .sp
  28266. The error is protected because it\(aqs possible to contain templating data
  28267. which would give that minion information it shouldn\(aqt know, like a password!
  28268. .sp
  28269. To have the master provide the detailed error that could potentially carry
  28270. protected data set \fBpillar_safe_render_error\fP to \fBFalse\fP:
  28271. .INDENT 0.0
  28272. .INDENT 3.5
  28273. .sp
  28274. .nf
  28275. .ft C
  28276. pillar_safe_render_error: False
  28277. .ft P
  28278. .fi
  28279. .UNINDENT
  28280. .UNINDENT
  28281. .SS Pillar Walkthrough
  28282. .sp
  28283. \fBNOTE:\fP
  28284. .INDENT 0.0
  28285. .INDENT 3.5
  28286. This walkthrough assumes that the reader has already completed the initial
  28287. Salt walkthrough\&.
  28288. .UNINDENT
  28289. .UNINDENT
  28290. .sp
  28291. Pillars are tree\-like structures of data defined on the Salt Master and passed
  28292. through to minions. They allow confidential, targeted data to be securely sent
  28293. only to the relevant minion.
  28294. .sp
  28295. \fBNOTE:\fP
  28296. .INDENT 0.0
  28297. .INDENT 3.5
  28298. Grains and Pillar are sometimes confused, just remember that Grains
  28299. are data about a minion which is stored or generated from the minion.
  28300. This is why information like the OS and CPU type are found in Grains.
  28301. Pillar is information about a minion or many minions stored or generated
  28302. on the Salt Master.
  28303. .UNINDENT
  28304. .UNINDENT
  28305. .sp
  28306. Pillar data is useful for:
  28307. .INDENT 0.0
  28308. .TP
  28309. .B Highly Sensitive Data:
  28310. Information transferred via pillar is guaranteed to only be presented to
  28311. the minions that are targeted, making Pillar suitable
  28312. for managing security information, such as cryptographic keys and
  28313. passwords.
  28314. .TP
  28315. .B Minion Configuration:
  28316. Minion modules such as the execution modules, states, and returners can
  28317. often be configured via data stored in pillar.
  28318. .TP
  28319. .B Variables:
  28320. Variables which need to be assigned to specific minions or groups of
  28321. minions can be defined in pillar and then accessed inside sls formulas
  28322. and template files.
  28323. .TP
  28324. .B Arbitrary Data:
  28325. Pillar can contain any basic data structure in dictionary format,
  28326. so a key/value store can be defined making it easy to iterate over a group
  28327. of values in sls formulas.
  28328. .UNINDENT
  28329. .sp
  28330. Pillar is therefore one of the most important systems when using Salt. This
  28331. walkthrough is designed to get a simple Pillar up and running in a few minutes
  28332. and then to dive into the capabilities of Pillar and where the data is
  28333. available.
  28334. .SS Setting Up Pillar
  28335. .sp
  28336. The pillar is already running in Salt by default. To see the minion\(aqs
  28337. pillar data:
  28338. .INDENT 0.0
  28339. .INDENT 3.5
  28340. .sp
  28341. .nf
  28342. .ft C
  28343. salt \(aq*\(aq pillar.items
  28344. .ft P
  28345. .fi
  28346. .UNINDENT
  28347. .UNINDENT
  28348. .sp
  28349. \fBNOTE:\fP
  28350. .INDENT 0.0
  28351. .INDENT 3.5
  28352. Prior to version 0.16.2, this function is named \fBpillar.data\fP\&. This
  28353. function name is still supported for backwards compatibility.
  28354. .UNINDENT
  28355. .UNINDENT
  28356. .sp
  28357. By default, the contents of the master configuration file are not loaded into
  28358. pillar for all minions. This default is stored in the \fBpillar_opts\fP setting,
  28359. which defaults to \fBFalse\fP\&.
  28360. .sp
  28361. The contents of the master configuration file can be made available to minion
  28362. pillar files. This makes global configuration of services and systems very easy,
  28363. but note that this may not be desired or appropriate if sensitive data is stored
  28364. in the master\(aqs configuration file. To enable the master configuration file to be
  28365. available to a minion\(aqs pillar files, set \fBpillar_opts\fP to \fBTrue\fP in the
  28366. minion configuration file.
  28367. .sp
  28368. Similar to the state tree, the pillar is comprised of sls files and has a top file.
  28369. The default location for the pillar is in /srv/pillar.
  28370. .sp
  28371. \fBNOTE:\fP
  28372. .INDENT 0.0
  28373. .INDENT 3.5
  28374. The pillar location can be configured via the \fBpillar_roots\fP option inside
  28375. the master configuration file. It must not be in a subdirectory of the state
  28376. tree or file_roots. If the pillar is under file_roots, any pillar targeting
  28377. can be bypassed by minions.
  28378. .UNINDENT
  28379. .UNINDENT
  28380. .sp
  28381. To start setting up the pillar, the /srv/pillar directory needs to be present:
  28382. .INDENT 0.0
  28383. .INDENT 3.5
  28384. .sp
  28385. .nf
  28386. .ft C
  28387. mkdir /srv/pillar
  28388. .ft P
  28389. .fi
  28390. .UNINDENT
  28391. .UNINDENT
  28392. .sp
  28393. Now create a simple top file, following the same format as the top file used for
  28394. states:
  28395. .sp
  28396. \fB/srv/pillar/top.sls\fP:
  28397. .INDENT 0.0
  28398. .INDENT 3.5
  28399. .sp
  28400. .nf
  28401. .ft C
  28402. base:
  28403. \(aq*\(aq:
  28404. \- data
  28405. .ft P
  28406. .fi
  28407. .UNINDENT
  28408. .UNINDENT
  28409. .sp
  28410. This top file associates the data.sls file to all minions. Now the
  28411. \fB/srv/pillar/data.sls\fP file needs to be populated:
  28412. .sp
  28413. \fB/srv/pillar/data.sls\fP:
  28414. .INDENT 0.0
  28415. .INDENT 3.5
  28416. .sp
  28417. .nf
  28418. .ft C
  28419. info: some data
  28420. .ft P
  28421. .fi
  28422. .UNINDENT
  28423. .UNINDENT
  28424. .sp
  28425. To ensure that the minions have the new pillar data, issue a command
  28426. to them asking that they fetch their pillars from the master:
  28427. .INDENT 0.0
  28428. .INDENT 3.5
  28429. .sp
  28430. .nf
  28431. .ft C
  28432. salt \(aq*\(aq saltutil.refresh_pillar
  28433. .ft P
  28434. .fi
  28435. .UNINDENT
  28436. .UNINDENT
  28437. .sp
  28438. Now that the minions have the new pillar, it can be retrieved:
  28439. .INDENT 0.0
  28440. .INDENT 3.5
  28441. .sp
  28442. .nf
  28443. .ft C
  28444. salt \(aq*\(aq pillar.items
  28445. .ft P
  28446. .fi
  28447. .UNINDENT
  28448. .UNINDENT
  28449. .sp
  28450. The key \fBinfo\fP should now appear in the returned pillar data.
  28451. .SS More Complex Data
  28452. .sp
  28453. Unlike states, pillar files do not need to define \fBformulas\fP\&.
  28454. This example sets up user data with a UID:
  28455. .sp
  28456. \fB/srv/pillar/users/init.sls\fP:
  28457. .INDENT 0.0
  28458. .INDENT 3.5
  28459. .sp
  28460. .nf
  28461. .ft C
  28462. users:
  28463. thatch: 1000
  28464. shouse: 1001
  28465. utahdave: 1002
  28466. redbeard: 1003
  28467. .ft P
  28468. .fi
  28469. .UNINDENT
  28470. .UNINDENT
  28471. .sp
  28472. \fBNOTE:\fP
  28473. .INDENT 0.0
  28474. .INDENT 3.5
  28475. The same directory lookups that exist in states exist in pillar, so the
  28476. file \fBusers/init.sls\fP can be referenced with \fBusers\fP in the top
  28477. file\&.
  28478. .UNINDENT
  28479. .UNINDENT
  28480. .sp
  28481. The top file will need to be updated to include this sls file:
  28482. .sp
  28483. \fB/srv/pillar/top.sls\fP:
  28484. .INDENT 0.0
  28485. .INDENT 3.5
  28486. .sp
  28487. .nf
  28488. .ft C
  28489. base:
  28490. \(aq*\(aq:
  28491. \- data
  28492. \- users
  28493. .ft P
  28494. .fi
  28495. .UNINDENT
  28496. .UNINDENT
  28497. .sp
  28498. Now the data will be available to the minions. To use the pillar data in a
  28499. state, you can use Jinja:
  28500. .sp
  28501. \fB/srv/salt/users/init.sls\fP
  28502. .INDENT 0.0
  28503. .INDENT 3.5
  28504. .sp
  28505. .nf
  28506. .ft C
  28507. {% for user, uid in pillar.get(\(aqusers\(aq, {}).items() %}
  28508. {{user}}:
  28509. user.present:
  28510. \- uid: {{uid}}
  28511. {% endfor %}
  28512. .ft P
  28513. .fi
  28514. .UNINDENT
  28515. .UNINDENT
  28516. .sp
  28517. This approach allows for users to be safely defined in a pillar and then the
  28518. user data is applied in an sls file.
  28519. .SS Parameterizing States With Pillar
  28520. .sp
  28521. Pillar data can be accessed in state files to customise behavior for each
  28522. minion. All pillar (and grain) data applicable to each minion is substituted
  28523. into the state files through templating before being run. Typical uses
  28524. include setting directories appropriate for the minion and skipping states
  28525. that don\(aqt apply.
  28526. .sp
  28527. A simple example is to set up a mapping of package names in pillar for
  28528. separate Linux distributions:
  28529. .sp
  28530. \fB/srv/pillar/pkg/init.sls\fP:
  28531. .INDENT 0.0
  28532. .INDENT 3.5
  28533. .sp
  28534. .nf
  28535. .ft C
  28536. pkgs:
  28537. {% if grains[\(aqos_family\(aq] == \(aqRedHat\(aq %}
  28538. apache: httpd
  28539. vim: vim\-enhanced
  28540. {% elif grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  28541. apache: apache2
  28542. vim: vim
  28543. {% elif grains[\(aqos\(aq] == \(aqArch\(aq %}
  28544. apache: apache
  28545. vim: vim
  28546. {% endif %}
  28547. .ft P
  28548. .fi
  28549. .UNINDENT
  28550. .UNINDENT
  28551. .sp
  28552. The new \fBpkg\fP sls needs to be added to the top file:
  28553. .sp
  28554. \fB/srv/pillar/top.sls\fP:
  28555. .INDENT 0.0
  28556. .INDENT 3.5
  28557. .sp
  28558. .nf
  28559. .ft C
  28560. base:
  28561. \(aq*\(aq:
  28562. \- data
  28563. \- users
  28564. \- pkg
  28565. .ft P
  28566. .fi
  28567. .UNINDENT
  28568. .UNINDENT
  28569. .sp
  28570. Now the minions will auto map values based on respective operating systems
  28571. inside of the pillar, so sls files can be safely parameterized:
  28572. .sp
  28573. \fB/srv/salt/apache/init.sls\fP:
  28574. .INDENT 0.0
  28575. .INDENT 3.5
  28576. .sp
  28577. .nf
  28578. .ft C
  28579. apache:
  28580. pkg.installed:
  28581. \- name: {{ pillar[\(aqpkgs\(aq][\(aqapache\(aq] }}
  28582. .ft P
  28583. .fi
  28584. .UNINDENT
  28585. .UNINDENT
  28586. .sp
  28587. Or, if no pillar is available a default can be set as well:
  28588. .sp
  28589. \fBNOTE:\fP
  28590. .INDENT 0.0
  28591. .INDENT 3.5
  28592. The function \fBpillar.get\fP used in this example was added to Salt in
  28593. version 0.14.0
  28594. .UNINDENT
  28595. .UNINDENT
  28596. .sp
  28597. \fB/srv/salt/apache/init.sls\fP:
  28598. .INDENT 0.0
  28599. .INDENT 3.5
  28600. .sp
  28601. .nf
  28602. .ft C
  28603. apache:
  28604. pkg.installed:
  28605. \- name: {{ salt[\(aqpillar.get\(aq](\(aqpkgs:apache\(aq, \(aqhttpd\(aq) }}
  28606. .ft P
  28607. .fi
  28608. .UNINDENT
  28609. .UNINDENT
  28610. .sp
  28611. In the above example, if the pillar value \fBpillar[\(aqpkgs\(aq][\(aqapache\(aq]\fP is not
  28612. set in the minion\(aqs pillar, then the default of \fBhttpd\fP will be used.
  28613. .sp
  28614. \fBNOTE:\fP
  28615. .INDENT 0.0
  28616. .INDENT 3.5
  28617. Under the hood, pillar is just a Python dict, so Python dict methods such
  28618. as \fBget\fP and \fBitems\fP can be used.
  28619. .UNINDENT
  28620. .UNINDENT
  28621. .SS Pillar Makes Simple States Grow Easily
  28622. .sp
  28623. One of the design goals of pillar is to make simple sls formulas easily grow
  28624. into more flexible formulas without refactoring or complicating the states.
  28625. .sp
  28626. A simple formula:
  28627. .sp
  28628. \fB/srv/salt/edit/vim.sls\fP:
  28629. .INDENT 0.0
  28630. .INDENT 3.5
  28631. .sp
  28632. .nf
  28633. .ft C
  28634. vim:
  28635. pkg.installed: []
  28636. /etc/vimrc:
  28637. file.managed:
  28638. \- source: salt://edit/vimrc
  28639. \- mode: 644
  28640. \- user: root
  28641. \- group: root
  28642. \- require:
  28643. \- pkg: vim
  28644. .ft P
  28645. .fi
  28646. .UNINDENT
  28647. .UNINDENT
  28648. .sp
  28649. Can be easily transformed into a powerful, parameterized formula:
  28650. .sp
  28651. \fB/srv/salt/edit/vim.sls\fP:
  28652. .INDENT 0.0
  28653. .INDENT 3.5
  28654. .sp
  28655. .nf
  28656. .ft C
  28657. vim:
  28658. pkg.installed:
  28659. \- name: {{ pillar[\(aqpkgs\(aq][\(aqvim\(aq] }}
  28660. /etc/vimrc:
  28661. file.managed:
  28662. \- source: {{ pillar[\(aqvimrc\(aq] }}
  28663. \- mode: 644
  28664. \- user: root
  28665. \- group: root
  28666. \- require:
  28667. \- pkg: vim
  28668. .ft P
  28669. .fi
  28670. .UNINDENT
  28671. .UNINDENT
  28672. .sp
  28673. Where the vimrc source location can now be changed via pillar:
  28674. .sp
  28675. \fB/srv/pillar/edit/vim.sls\fP:
  28676. .INDENT 0.0
  28677. .INDENT 3.5
  28678. .sp
  28679. .nf
  28680. .ft C
  28681. {% if grains[\(aqid\(aq].startswith(\(aqdev\(aq) %}
  28682. vimrc: salt://edit/dev_vimrc
  28683. {% elif grains[\(aqid\(aq].startswith(\(aqqa\(aq) %}
  28684. vimrc: salt://edit/qa_vimrc
  28685. {% else %}
  28686. vimrc: salt://edit/vimrc
  28687. {% endif %}
  28688. .ft P
  28689. .fi
  28690. .UNINDENT
  28691. .UNINDENT
  28692. .sp
  28693. Ensuring that the right vimrc is sent out to the correct minions.
  28694. .sp
  28695. The pillar top file must include a reference to the new sls pillar file:
  28696. .sp
  28697. \fB/srv/pillar/top.sls\fP:
  28698. .INDENT 0.0
  28699. .INDENT 3.5
  28700. .sp
  28701. .nf
  28702. .ft C
  28703. base:
  28704. \(aq*\(aq:
  28705. \- pkg
  28706. \- edit.vim
  28707. .ft P
  28708. .fi
  28709. .UNINDENT
  28710. .UNINDENT
  28711. .SS Setting Pillar Data on the Command Line
  28712. .sp
  28713. Pillar data can be set on the command line when running \fBstate.apply
  28714. <salt.modules.state.apply_()\fP like so:
  28715. .INDENT 0.0
  28716. .INDENT 3.5
  28717. .sp
  28718. .nf
  28719. .ft C
  28720. salt \(aq*\(aq state.apply pillar=\(aq{"foo": "bar"}\(aq
  28721. salt \(aq*\(aq state.apply my_sls_file pillar=\(aq{"hello": "world"}\(aq
  28722. .ft P
  28723. .fi
  28724. .UNINDENT
  28725. .UNINDENT
  28726. .sp
  28727. Nested pillar values can also be set via the command line:
  28728. .INDENT 0.0
  28729. .INDENT 3.5
  28730. .sp
  28731. .nf
  28732. .ft C
  28733. salt \(aq*\(aq state.sls my_sls_file pillar=\(aq{"foo": {"bar": "baz"}}\(aq
  28734. .ft P
  28735. .fi
  28736. .UNINDENT
  28737. .UNINDENT
  28738. .sp
  28739. Lists can be passed via command line pillar data as follows:
  28740. .INDENT 0.0
  28741. .INDENT 3.5
  28742. .sp
  28743. .nf
  28744. .ft C
  28745. salt \(aq*\(aq state.sls my_sls_file pillar=\(aq{"some_list": ["foo", "bar", "baz"]}\(aq
  28746. .ft P
  28747. .fi
  28748. .UNINDENT
  28749. .UNINDENT
  28750. .sp
  28751. \fBNOTE:\fP
  28752. .INDENT 0.0
  28753. .INDENT 3.5
  28754. If a key is passed on the command line that already exists on the minion,
  28755. the key that is passed in will overwrite the entire value of that key,
  28756. rather than merging only the specified value set via the command line.
  28757. .UNINDENT
  28758. .UNINDENT
  28759. .sp
  28760. The example below will swap the value for vim with telnet in the previously
  28761. specified list, notice the nested pillar dict:
  28762. .INDENT 0.0
  28763. .INDENT 3.5
  28764. .sp
  28765. .nf
  28766. .ft C
  28767. salt \(aq*\(aq state.apply edit.vim pillar=\(aq{"pkgs": {"vim": "telnet"}}\(aq
  28768. .ft P
  28769. .fi
  28770. .UNINDENT
  28771. .UNINDENT
  28772. .sp
  28773. This will attempt to install telnet on your minions, feel free to
  28774. uninstall the package or replace telnet value with anything else.
  28775. .sp
  28776. \fBNOTE:\fP
  28777. .INDENT 0.0
  28778. .INDENT 3.5
  28779. Be aware that when sending sensitive data via pillar on the command\-line
  28780. that the publication containing that data will be received by all minions
  28781. and will not be restricted to the targeted minions. This may represent
  28782. a security concern in some cases.
  28783. .UNINDENT
  28784. .UNINDENT
  28785. .SS More On Pillar
  28786. .sp
  28787. Pillar data is generated on the Salt master and securely distributed to
  28788. minions. Salt is not restricted to the pillar sls files when defining the
  28789. pillar but can retrieve data from external sources. This can be useful when
  28790. information about an infrastructure is stored in a separate location.
  28791. .sp
  28792. Reference information on pillar and the external pillar interface can be found
  28793. in the Salt documentation:
  28794. .sp
  28795. Pillar
  28796. .SS Minion Config in Pillar
  28797. .sp
  28798. Minion configuration options can be set on pillars. Any option that you want
  28799. to modify, should be in the first level of the pillars, in the same way you set
  28800. the options in the config file. For example, to configure the MySQL root
  28801. password to be used by MySQL Salt execution module:
  28802. .INDENT 0.0
  28803. .INDENT 3.5
  28804. .sp
  28805. .nf
  28806. .ft C
  28807. mysql.pass: hardtoguesspassword
  28808. .ft P
  28809. .fi
  28810. .UNINDENT
  28811. .UNINDENT
  28812. .sp
  28813. This is very convenient when you need some dynamic configuration change that
  28814. you want to be applied on the fly. For example, there is a chicken and the egg
  28815. problem if you do this:
  28816. .INDENT 0.0
  28817. .INDENT 3.5
  28818. .sp
  28819. .nf
  28820. .ft C
  28821. mysql\-admin\-passwd:
  28822. mysql_user.present:
  28823. \- name: root
  28824. \- password: somepasswd
  28825. mydb:
  28826. mysql_db.present
  28827. .ft P
  28828. .fi
  28829. .UNINDENT
  28830. .UNINDENT
  28831. .sp
  28832. The second state will fail, because you changed the root password and the
  28833. minion didn\(aqt notice it. Setting mysql.pass in the pillar, will help to sort
  28834. out the issue. But always change the root admin password in the first place.
  28835. .sp
  28836. This is very helpful for any module that needs credentials to apply state
  28837. changes: mysql, keystone, etc.
  28838. .SS Targeting Minions
  28839. .sp
  28840. Targeting minions is specifying which minions should run a command or execute a
  28841. state by matching against hostnames, or system information, or defined groups,
  28842. or even combinations thereof.
  28843. .sp
  28844. For example the command \fBsalt web1 apache.signal restart\fP to restart the
  28845. Apache httpd server specifies the machine \fBweb1\fP as the target and the
  28846. command will only be run on that one minion.
  28847. .sp
  28848. Similarly when using States, the following top file specifies that only
  28849. the \fBweb1\fP minion should execute the contents of \fBwebserver.sls\fP:
  28850. .INDENT 0.0
  28851. .INDENT 3.5
  28852. .sp
  28853. .nf
  28854. .ft C
  28855. base:
  28856. \(aqweb1\(aq:
  28857. \- webserver
  28858. .ft P
  28859. .fi
  28860. .UNINDENT
  28861. .UNINDENT
  28862. .sp
  28863. The simple target specifications, glob, regex, and list will cover many use
  28864. cases, and for some will cover all use cases, but more powerful options exist.
  28865. .SS Targeting with Grains
  28866. .sp
  28867. The Grains interface was built into Salt to allow minions to be targeted by
  28868. system properties. So minions running on a particular operating system can
  28869. be called to execute a function, or a specific kernel.
  28870. .sp
  28871. Calling via a grain is done by passing the \-G option to salt, specifying
  28872. a grain and a glob expression to match the value of the grain. The syntax for
  28873. the target is the grain key followed by a glob expression: "os:Arch*".
  28874. .INDENT 0.0
  28875. .INDENT 3.5
  28876. .sp
  28877. .nf
  28878. .ft C
  28879. salt \-G \(aqos:Fedora\(aq test.version
  28880. .ft P
  28881. .fi
  28882. .UNINDENT
  28883. .UNINDENT
  28884. .sp
  28885. Will return True from all of the minions running Fedora.
  28886. .sp
  28887. To discover what grains are available and what the values are, execute the
  28888. grains.item salt function:
  28889. .INDENT 0.0
  28890. .INDENT 3.5
  28891. .sp
  28892. .nf
  28893. .ft C
  28894. salt \(aq*\(aq grains.items
  28895. .ft P
  28896. .fi
  28897. .UNINDENT
  28898. .UNINDENT
  28899. .sp
  28900. More info on using targeting with grains can be found here\&.
  28901. .SS Compound Targeting
  28902. .sp
  28903. New in version 0.9.5.
  28904. .sp
  28905. Multiple target interfaces can be used in conjunction to determine the command
  28906. targets. These targets can then be combined using \fBand\fP or \fBor\fP statements.
  28907. This is well defined with an example:
  28908. .INDENT 0.0
  28909. .INDENT 3.5
  28910. .sp
  28911. .nf
  28912. .ft C
  28913. salt \-C \(aqG@os:Debian and webser* or E@db.*\(aq test.version
  28914. .ft P
  28915. .fi
  28916. .UNINDENT
  28917. .UNINDENT
  28918. .sp
  28919. In this example any minion who\(aqs id starts with \fBwebser\fP and is running
  28920. Debian, or any minion who\(aqs id starts with db will be matched.
  28921. .sp
  28922. The type of matcher defaults to glob, but can be specified with the
  28923. corresponding letter followed by the \fB@\fP symbol. In the above example a grain
  28924. is used with \fBG@\fP as well as a regular expression with \fBE@\fP\&. The
  28925. \fBwebser*\fP target does not need to be prefaced with a target type specifier
  28926. because it is a glob.
  28927. .sp
  28928. More info on using compound targeting can be found here\&.
  28929. .SS Node Group Targeting
  28930. .sp
  28931. New in version 0.9.5.
  28932. .sp
  28933. For certain cases, it can be convenient to have a predefined group of minions
  28934. on which to execute commands. This can be accomplished using what are called
  28935. nodegroups\&. Nodegroups allow for predefined
  28936. compound targets to be declared in the master configuration file, as a sort of
  28937. shorthand for having to type out complicated compound expressions.
  28938. .INDENT 0.0
  28939. .INDENT 3.5
  28940. .sp
  28941. .nf
  28942. .ft C
  28943. nodegroups:
  28944. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com\(aq
  28945. group2: \(aqG@os:Debian and foo.domain.com\(aq
  28946. group3: \(aqG@os:Debian and N@group1\(aq
  28947. .ft P
  28948. .fi
  28949. .UNINDENT
  28950. .UNINDENT
  28951. .SS Advanced Targeting Methods
  28952. .sp
  28953. There are many ways to target individual minions or groups of minions in Salt:
  28954. .SS Matching the \fBminion id\fP
  28955. .sp
  28956. Each minion needs a unique identifier. By default when a minion starts for the
  28957. first time it chooses its FQDN as that
  28958. identifier. The minion id can be overridden via the minion\(aqs \fBid\fP
  28959. configuration setting.
  28960. .sp
  28961. \fBTIP:\fP
  28962. .INDENT 0.0
  28963. .INDENT 3.5
  28964. minion id and minion keys
  28965. .sp
  28966. The minion id is used to generate the minion\(aqs public/private keys
  28967. and if it ever changes the master must then accept the new key as though
  28968. the minion was a new host.
  28969. .UNINDENT
  28970. .UNINDENT
  28971. .SS Globbing
  28972. .sp
  28973. The default matching that Salt utilizes is \fBshell\-style globbing\fP around the minion id\&. This also works for states
  28974. in the top file\&.
  28975. .sp
  28976. \fBNOTE:\fP
  28977. .INDENT 0.0
  28978. .INDENT 3.5
  28979. You must wrap \fBsalt\fP calls that use globbing in single\-quotes to
  28980. prevent the shell from expanding the globs before Salt is invoked.
  28981. .UNINDENT
  28982. .UNINDENT
  28983. .sp
  28984. Match all minions:
  28985. .INDENT 0.0
  28986. .INDENT 3.5
  28987. .sp
  28988. .nf
  28989. .ft C
  28990. salt \(aq*\(aq test.version
  28991. .ft P
  28992. .fi
  28993. .UNINDENT
  28994. .UNINDENT
  28995. .sp
  28996. Match all minions in the example.net domain or any of the example domains:
  28997. .INDENT 0.0
  28998. .INDENT 3.5
  28999. .sp
  29000. .nf
  29001. .ft C
  29002. salt \(aq*.example.net\(aq test.version
  29003. salt \(aq*.example.*\(aq test.version
  29004. .ft P
  29005. .fi
  29006. .UNINDENT
  29007. .UNINDENT
  29008. .sp
  29009. Match all the \fBwebN\fP minions in the example.net domain (\fBweb1.example.net\fP,
  29010. \fBweb2.example.net\fP … \fBwebN.example.net\fP):
  29011. .INDENT 0.0
  29012. .INDENT 3.5
  29013. .sp
  29014. .nf
  29015. .ft C
  29016. salt \(aqweb?.example.net\(aq test.version
  29017. .ft P
  29018. .fi
  29019. .UNINDENT
  29020. .UNINDENT
  29021. .sp
  29022. Match the \fBweb1\fP through \fBweb5\fP minions:
  29023. .INDENT 0.0
  29024. .INDENT 3.5
  29025. .sp
  29026. .nf
  29027. .ft C
  29028. salt \(aqweb[1\-5]\(aq test.version
  29029. .ft P
  29030. .fi
  29031. .UNINDENT
  29032. .UNINDENT
  29033. .sp
  29034. Match the \fBweb1\fP and \fBweb3\fP minions:
  29035. .INDENT 0.0
  29036. .INDENT 3.5
  29037. .sp
  29038. .nf
  29039. .ft C
  29040. salt \(aqweb[1,3]\(aq test.version
  29041. .ft P
  29042. .fi
  29043. .UNINDENT
  29044. .UNINDENT
  29045. .sp
  29046. Match the \fBweb\-x\fP, \fBweb\-y\fP, and \fBweb\-z\fP minions:
  29047. .INDENT 0.0
  29048. .INDENT 3.5
  29049. .sp
  29050. .nf
  29051. .ft C
  29052. salt \(aqweb\-[x\-z]\(aq test.version
  29053. .ft P
  29054. .fi
  29055. .UNINDENT
  29056. .UNINDENT
  29057. .sp
  29058. \fBNOTE:\fP
  29059. .INDENT 0.0
  29060. .INDENT 3.5
  29061. For additional targeting methods please review the
  29062. compound matchers documentation.
  29063. .UNINDENT
  29064. .UNINDENT
  29065. .SS Regular Expressions
  29066. .sp
  29067. Minions can be matched using Perl\-compatible \fBregular expressions\fP (which is globbing on steroids and a ton of caffeine).
  29068. .sp
  29069. Match both \fBweb1\-prod\fP and \fBweb1\-devel\fP minions:
  29070. .INDENT 0.0
  29071. .INDENT 3.5
  29072. .sp
  29073. .nf
  29074. .ft C
  29075. salt \-E \(aqweb1\-(prod|devel)\(aq test.version
  29076. .ft P
  29077. .fi
  29078. .UNINDENT
  29079. .UNINDENT
  29080. .sp
  29081. When using regular expressions in a State\(aqs top file, you must specify
  29082. the matcher as the first option. The following example executes the contents of
  29083. \fBwebserver.sls\fP on the above\-mentioned minions.
  29084. .INDENT 0.0
  29085. .INDENT 3.5
  29086. .sp
  29087. .nf
  29088. .ft C
  29089. base:
  29090. \(aqweb1\-(prod|devel)\(aq:
  29091. \- match: pcre
  29092. \- webserver
  29093. .ft P
  29094. .fi
  29095. .UNINDENT
  29096. .UNINDENT
  29097. .SS Lists
  29098. .sp
  29099. At the most basic level, you can specify a flat list of minion IDs:
  29100. .INDENT 0.0
  29101. .INDENT 3.5
  29102. .sp
  29103. .nf
  29104. .ft C
  29105. salt \-L \(aqweb1,web2,web3\(aq test.version
  29106. .ft P
  29107. .fi
  29108. .UNINDENT
  29109. .UNINDENT
  29110. .SS Targeting using Grains
  29111. .sp
  29112. Grain data can be used when targeting minions.
  29113. .sp
  29114. For example, the following matches all CentOS minions:
  29115. .INDENT 0.0
  29116. .INDENT 3.5
  29117. .sp
  29118. .nf
  29119. .ft C
  29120. salt \-G \(aqos:CentOS\(aq test.version
  29121. .ft P
  29122. .fi
  29123. .UNINDENT
  29124. .UNINDENT
  29125. .sp
  29126. Match all minions with 64\-bit CPUs, and return number of CPU cores for each
  29127. matching minion:
  29128. .INDENT 0.0
  29129. .INDENT 3.5
  29130. .sp
  29131. .nf
  29132. .ft C
  29133. salt \-G \(aqcpuarch:x86_64\(aq grains.item num_cpus
  29134. .ft P
  29135. .fi
  29136. .UNINDENT
  29137. .UNINDENT
  29138. .sp
  29139. Additionally, globs can be used in grain matches, and grains that are nested in
  29140. a dictionary can be matched by adding a colon for each level that is traversed.
  29141. For example, the following will match hosts that have a grain called
  29142. \fBec2_tags\fP, which itself is a dictionary with a key named \fBenvironment\fP,
  29143. which has a value that contains the word \fBproduction\fP:
  29144. .INDENT 0.0
  29145. .INDENT 3.5
  29146. .sp
  29147. .nf
  29148. .ft C
  29149. salt \-G \(aqec2_tags:environment:*production*\(aq
  29150. .ft P
  29151. .fi
  29152. .UNINDENT
  29153. .UNINDENT
  29154. .sp
  29155. \fBIMPORTANT:\fP
  29156. .INDENT 0.0
  29157. .INDENT 3.5
  29158. See Is Targeting using Grain Data Secure? for
  29159. important security information.
  29160. .UNINDENT
  29161. .UNINDENT
  29162. .SS Targeting using Pillar
  29163. .sp
  29164. Pillar data can be used when targeting minions. This allows for ultimate
  29165. control and flexibility when targeting minions.
  29166. .sp
  29167. \fBNOTE:\fP
  29168. .INDENT 0.0
  29169. .INDENT 3.5
  29170. To start using Pillar targeting it is required to make a Pillar
  29171. data cache on Salt Master for each Minion via following commands:
  29172. \fBsalt \(aq*\(aq saltutil.refresh_pillar\fP or \fBsalt \(aq*\(aq saltutil.sync_all\fP\&.
  29173. Also Pillar data cache will be populated during the
  29174. highstate run. Once Pillar data changes, you
  29175. must refresh the cache by running above commands for this targeting
  29176. method to work correctly.
  29177. .UNINDENT
  29178. .UNINDENT
  29179. .sp
  29180. Example:
  29181. .INDENT 0.0
  29182. .INDENT 3.5
  29183. .sp
  29184. .nf
  29185. .ft C
  29186. salt \-I \(aqsomekey:specialvalue\(aq test.version
  29187. .ft P
  29188. .fi
  29189. .UNINDENT
  29190. .UNINDENT
  29191. .sp
  29192. Like with Grains, it is possible to use globbing
  29193. as well as match nested values in Pillar, by adding colons for each level that
  29194. is being traversed. The below example would match minions with a pillar named
  29195. \fBfoo\fP, which is a dict containing a key \fBbar\fP, with a value beginning with
  29196. \fBbaz\fP:
  29197. .INDENT 0.0
  29198. .INDENT 3.5
  29199. .sp
  29200. .nf
  29201. .ft C
  29202. salt \-I \(aqfoo:bar:baz*\(aq test.version
  29203. .ft P
  29204. .fi
  29205. .UNINDENT
  29206. .UNINDENT
  29207. .SS Subnet/IP Address Matching
  29208. .sp
  29209. Minions can easily be matched based on IP address, or by subnet (using \fI\%CIDR\fP
  29210. notation).
  29211. .INDENT 0.0
  29212. .INDENT 3.5
  29213. .sp
  29214. .nf
  29215. .ft C
  29216. salt \-S 192.168.40.20 test.version
  29217. salt \-S 2001:db8::/64 test.version
  29218. .ft P
  29219. .fi
  29220. .UNINDENT
  29221. .UNINDENT
  29222. .sp
  29223. Ipcidr matching can also be used in compound matches
  29224. .INDENT 0.0
  29225. .INDENT 3.5
  29226. .sp
  29227. .nf
  29228. .ft C
  29229. salt \-C \(aqS@10.0.0.0/24 and G@os:Debian\(aq test.version
  29230. .ft P
  29231. .fi
  29232. .UNINDENT
  29233. .UNINDENT
  29234. .sp
  29235. It is also possible to use in both pillar and state\-matching
  29236. .INDENT 0.0
  29237. .INDENT 3.5
  29238. .sp
  29239. .nf
  29240. .ft C
  29241. \(aq172.16.0.0/12\(aq:
  29242. \- match: ipcidr
  29243. \- internal
  29244. .ft P
  29245. .fi
  29246. .UNINDENT
  29247. .UNINDENT
  29248. .SS Compound matchers
  29249. .sp
  29250. Compound matchers allow very granular minion targeting using any of Salt\(aqs
  29251. matchers. The default matcher is a \fBglob\fP match, just as
  29252. with CLI and top file matching. To match using anything other than a
  29253. glob, prefix the match string with the appropriate letter from the table below,
  29254. followed by an \fB@\fP sign.
  29255. .TS
  29256. center;
  29257. |l|l|l|l|.
  29258. _
  29259. T{
  29260. Letter
  29261. T} T{
  29262. Match Type
  29263. T} T{
  29264. Example
  29265. T} T{
  29266. \fI\%Alt Delimiter?\fP
  29267. T}
  29268. _
  29269. T{
  29270. G
  29271. T} T{
  29272. Grains glob
  29273. T} T{
  29274. \fBG@os:Ubuntu\fP
  29275. T} T{
  29276. Yes
  29277. T}
  29278. _
  29279. T{
  29280. E
  29281. T} T{
  29282. PCRE Minion ID
  29283. T} T{
  29284. \fBE@web\ed+\e.(dev|qa|prod)\e.loc\fP
  29285. T} T{
  29286. No
  29287. T}
  29288. _
  29289. T{
  29290. P
  29291. T} T{
  29292. Grains PCRE
  29293. T} T{
  29294. \fBP@os:(RedHat|Fedora|CentOS)\fP
  29295. T} T{
  29296. Yes
  29297. T}
  29298. _
  29299. T{
  29300. L
  29301. T} T{
  29302. List of minions
  29303. T} T{
  29304. \fBL@minion1.example.com,minion3.domain.com or bl*.domain.com\fP
  29305. T} T{
  29306. No
  29307. T}
  29308. _
  29309. T{
  29310. I
  29311. T} T{
  29312. Pillar glob
  29313. T} T{
  29314. \fBI@pdata:foobar\fP
  29315. T} T{
  29316. Yes
  29317. T}
  29318. _
  29319. T{
  29320. J
  29321. T} T{
  29322. Pillar PCRE
  29323. T} T{
  29324. \fBJ@pdata:^(foo|bar)$\fP
  29325. T} T{
  29326. Yes
  29327. T}
  29328. _
  29329. T{
  29330. S
  29331. T} T{
  29332. Subnet/IP address
  29333. T} T{
  29334. \fBS@192.168.1.0/24\fP or \fBS@192.168.1.100\fP
  29335. T} T{
  29336. No
  29337. T}
  29338. _
  29339. T{
  29340. R
  29341. T} T{
  29342. Range cluster
  29343. T} T{
  29344. \fBR@%foo.bar\fP
  29345. T} T{
  29346. No
  29347. T}
  29348. _
  29349. T{
  29350. N
  29351. T} T{
  29352. Nodegroups
  29353. T} T{
  29354. \fBN@group1\fP
  29355. T} T{
  29356. No
  29357. T}
  29358. _
  29359. .TE
  29360. .sp
  29361. Matchers can be joined using boolean \fBand\fP, \fBor\fP, and \fBnot\fP operators.
  29362. .sp
  29363. For example, the following string matches all Debian minions with a hostname
  29364. that begins with \fBwebserv\fP, as well as any minions that have a hostname which
  29365. matches the \fBregular expression\fP \fBweb\-dc1\-srv.*\fP:
  29366. .INDENT 0.0
  29367. .INDENT 3.5
  29368. .sp
  29369. .nf
  29370. .ft C
  29371. salt \-C \(aqwebserv* and G@os:Debian or E@web\-dc1\-srv.*\(aq test.version
  29372. .ft P
  29373. .fi
  29374. .UNINDENT
  29375. .UNINDENT
  29376. .sp
  29377. That same example expressed in a top file looks like the following:
  29378. .INDENT 0.0
  29379. .INDENT 3.5
  29380. .sp
  29381. .nf
  29382. .ft C
  29383. base:
  29384. \(aqwebserv* and G@os:Debian or E@web\-dc1\-srv.*\(aq:
  29385. \- match: compound
  29386. \- webserver
  29387. .ft P
  29388. .fi
  29389. .UNINDENT
  29390. .UNINDENT
  29391. .sp
  29392. New in version 2015.8.0.
  29393. .sp
  29394. Excluding a minion based on its ID is also possible:
  29395. .INDENT 0.0
  29396. .INDENT 3.5
  29397. .sp
  29398. .nf
  29399. .ft C
  29400. salt \-C \(aqnot web\-dc1\-srv\(aq test.version
  29401. .ft P
  29402. .fi
  29403. .UNINDENT
  29404. .UNINDENT
  29405. .sp
  29406. Versions prior to 2015.8.0 a leading \fBnot\fP was not supported in compound
  29407. matches. Instead, something like the following was required:
  29408. .INDENT 0.0
  29409. .INDENT 3.5
  29410. .sp
  29411. .nf
  29412. .ft C
  29413. salt \-C \(aq* and not G@kernel:Darwin\(aq test.version
  29414. .ft P
  29415. .fi
  29416. .UNINDENT
  29417. .UNINDENT
  29418. .sp
  29419. Excluding a minion based on its ID was also possible:
  29420. .INDENT 0.0
  29421. .INDENT 3.5
  29422. .sp
  29423. .nf
  29424. .ft C
  29425. salt \-C \(aq* and not web\-dc1\-srv\(aq test.version
  29426. .ft P
  29427. .fi
  29428. .UNINDENT
  29429. .UNINDENT
  29430. .SS Precedence Matching
  29431. .sp
  29432. Matchers can be grouped together with parentheses to explicitly declare precedence amongst groups.
  29433. .INDENT 0.0
  29434. .INDENT 3.5
  29435. .sp
  29436. .nf
  29437. .ft C
  29438. salt \-C \(aq( ms\-1 or G@id:ms\-3 ) and G@id:ms\-3\(aq test.version
  29439. .ft P
  29440. .fi
  29441. .UNINDENT
  29442. .UNINDENT
  29443. .sp
  29444. \fBNOTE:\fP
  29445. .INDENT 0.0
  29446. .INDENT 3.5
  29447. Be certain to note that spaces are required between the parentheses and targets. Failing to obey this
  29448. rule may result in incorrect targeting!
  29449. .UNINDENT
  29450. .UNINDENT
  29451. .SS Alternate Delimiters
  29452. .sp
  29453. New in version 2015.8.0.
  29454. .sp
  29455. Matchers that target based on a key value pair use a colon (\fB:\fP) as
  29456. a delimiter. Matchers with a \fBYes\fP in the \fBAlt Delimiters\fP column
  29457. in the previous table support specifying an alternate delimiter character.
  29458. .sp
  29459. This is done by specifying an alternate delimiter character between the leading
  29460. matcher character and the \fB@\fP pattern separator character. This avoids
  29461. incorrect interpretation of the pattern in the case that \fB:\fP is part of the
  29462. grain or pillar data structure traversal.
  29463. .INDENT 0.0
  29464. .INDENT 3.5
  29465. .sp
  29466. .nf
  29467. .ft C
  29468. salt \-C \(aqJ|@foo|bar|^foo:bar$ or J!@gitrepo!https://github.com:example/project.git\(aq test.ping
  29469. .ft P
  29470. .fi
  29471. .UNINDENT
  29472. .UNINDENT
  29473. .SS Node groups
  29474. .sp
  29475. Nodegroups are declared using a compound target specification. The compound
  29476. target documentation can be found here\&.
  29477. .sp
  29478. The \fBnodegroups\fP master config file parameter is used to define
  29479. nodegroups. Here\(aqs an example nodegroup configuration within
  29480. \fB/etc/salt/master\fP:
  29481. .INDENT 0.0
  29482. .INDENT 3.5
  29483. .sp
  29484. .nf
  29485. .ft C
  29486. nodegroups:
  29487. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  29488. group2: \(aqG@os:Debian and foo.domain.com\(aq
  29489. group3: \(aqG@os:Debian and N@group1\(aq
  29490. group4:
  29491. \- \(aqG@foo:bar\(aq
  29492. \- \(aqor\(aq
  29493. \- \(aqG@foo:baz\(aq
  29494. .ft P
  29495. .fi
  29496. .UNINDENT
  29497. .UNINDENT
  29498. .sp
  29499. \fBNOTE:\fP
  29500. .INDENT 0.0
  29501. .INDENT 3.5
  29502. The \fBL\fP within group1 is matching a list of minions, while the \fBG\fP in
  29503. group2 is matching specific grains. See the compound matchers documentation for more details.
  29504. .sp
  29505. As of the 2017.7.0 release of Salt, group names can also be prepended with
  29506. a dash. This brings the usage in line with many other areas of Salt. For
  29507. example:
  29508. .INDENT 0.0
  29509. .INDENT 3.5
  29510. .sp
  29511. .nf
  29512. .ft C
  29513. nodegroups:
  29514. \- group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  29515. .ft P
  29516. .fi
  29517. .UNINDENT
  29518. .UNINDENT
  29519. .UNINDENT
  29520. .UNINDENT
  29521. .sp
  29522. New in version 2015.8.0.
  29523. .sp
  29524. \fBNOTE:\fP
  29525. .INDENT 0.0
  29526. .INDENT 3.5
  29527. Nodegroups can reference other nodegroups as seen in \fBgroup3\fP\&. Ensure
  29528. that you do not have circular references. Circular references will be
  29529. detected and cause partial expansion with a logged error message.
  29530. .UNINDENT
  29531. .UNINDENT
  29532. .sp
  29533. New in version 2015.8.0.
  29534. .sp
  29535. Compound nodegroups can be either string values or lists of string values.
  29536. When the nodegroup is A string value will be tokenized by splitting on
  29537. whitespace. This may be a problem if whitespace is necessary as part of a
  29538. pattern. When a nodegroup is a list of strings then tokenization will
  29539. happen for each list element as a whole.
  29540. .sp
  29541. To match a nodegroup on the CLI, use the \fB\-N\fP command\-line option:
  29542. .INDENT 0.0
  29543. .INDENT 3.5
  29544. .sp
  29545. .nf
  29546. .ft C
  29547. salt \-N group1 test.version
  29548. .ft P
  29549. .fi
  29550. .UNINDENT
  29551. .UNINDENT
  29552. .sp
  29553. New in version 2019.2.0.
  29554. .sp
  29555. \fBNOTE:\fP
  29556. .INDENT 0.0
  29557. .INDENT 3.5
  29558. The \fBN@\fP classifier historically could not be used in compound matches
  29559. within the CLI or top file, it was only recognized in the
  29560. \fBnodegroups\fP master config file parameter. As of the 2019.2.0
  29561. release, this limitation no longer exists.
  29562. .UNINDENT
  29563. .UNINDENT
  29564. .sp
  29565. To match a nodegroup in your top file, make sure to put \fB\- match:
  29566. nodegroup\fP on the line directly following the nodegroup name.
  29567. .INDENT 0.0
  29568. .INDENT 3.5
  29569. .sp
  29570. .nf
  29571. .ft C
  29572. base:
  29573. group1:
  29574. \- match: nodegroup
  29575. \- webserver
  29576. .ft P
  29577. .fi
  29578. .UNINDENT
  29579. .UNINDENT
  29580. .sp
  29581. \fBNOTE:\fP
  29582. .INDENT 0.0
  29583. .INDENT 3.5
  29584. When adding or modifying nodegroups to a master configuration file, the
  29585. master must be restarted for those changes to be fully recognized.
  29586. .sp
  29587. A limited amount of functionality, such as targeting with \-N from the
  29588. command\-line may be available without a restart.
  29589. .UNINDENT
  29590. .UNINDENT
  29591. .SS Defining Nodegroups as Lists of Minion IDs
  29592. .sp
  29593. A simple list of minion IDs would traditionally be defined like this:
  29594. .INDENT 0.0
  29595. .INDENT 3.5
  29596. .sp
  29597. .nf
  29598. .ft C
  29599. nodegroups:
  29600. group1: L@host1,host2,host3
  29601. .ft P
  29602. .fi
  29603. .UNINDENT
  29604. .UNINDENT
  29605. .sp
  29606. They can now also be defined as a YAML list, like this:
  29607. .INDENT 0.0
  29608. .INDENT 3.5
  29609. .sp
  29610. .nf
  29611. .ft C
  29612. nodegroups:
  29613. group1:
  29614. \- host1
  29615. \- host2
  29616. \- host3
  29617. .ft P
  29618. .fi
  29619. .UNINDENT
  29620. .UNINDENT
  29621. .sp
  29622. New in version 2016.11.0.
  29623. .SS Batch Size
  29624. .sp
  29625. The \fB\-b\fP (or \fB\-\-batch\-size\fP) option allows commands to be executed on only
  29626. a specified number of minions at a time. Both percentages and finite numbers are
  29627. supported.
  29628. .INDENT 0.0
  29629. .INDENT 3.5
  29630. .sp
  29631. .nf
  29632. .ft C
  29633. salt \(aq*\(aq \-b 10 test.version
  29634. salt \-G \(aqos:RedHat\(aq \-\-batch\-size 25% apache.signal restart
  29635. .ft P
  29636. .fi
  29637. .UNINDENT
  29638. .UNINDENT
  29639. .sp
  29640. This will only run test.version on 10 of the targeted minions at a time and then
  29641. restart apache on 25% of the minions matching \fBos:RedHat\fP at a time and work
  29642. through them all until the task is complete. This makes jobs like rolling web
  29643. server restarts behind a load balancer or doing maintenance on BSD firewalls
  29644. using carp much easier with salt.
  29645. .sp
  29646. The batch system maintains a window of running minions, so, if there are a
  29647. total of 150 minions targeted and the batch size is 10, then the command is
  29648. sent to 10 minions, when one minion returns then the command is sent to one
  29649. additional minion, so that the job is constantly running on 10 minions.
  29650. .sp
  29651. New in version 2016.3.
  29652. .sp
  29653. The \fB\-\-batch\-wait\fP argument can be used to specify a number of seconds to
  29654. wait after a minion returns, before sending the command to a new minion.
  29655. .SS SECO Range
  29656. .sp
  29657. SECO range is a cluster\-based metadata store developed and maintained by Yahoo!
  29658. .sp
  29659. The Range project is hosted here:
  29660. .sp
  29661. \fI\%https://github.com/ytoolshed/range\fP
  29662. .sp
  29663. Learn more about range here:
  29664. .sp
  29665. \fI\%https://github.com/ytoolshed/range/wiki/\fP
  29666. .SS Prerequisites
  29667. .sp
  29668. To utilize range support in Salt, a range server is required. Setting up a
  29669. range server is outside the scope of this document. Apache modules are included
  29670. in the range distribution.
  29671. .sp
  29672. With a working range server, cluster files must be defined. These files are
  29673. written in YAML and define hosts contained inside a cluster. Full documentation
  29674. on writing YAML range files is here:
  29675. .sp
  29676. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  29677. .sp
  29678. Additionally, the Python seco range libraries must be installed on the salt
  29679. master. One can verify that they have been installed correctly via the
  29680. following command:
  29681. .INDENT 0.0
  29682. .INDENT 3.5
  29683. .sp
  29684. .nf
  29685. .ft C
  29686. python \-c \(aqimport seco.range\(aq
  29687. .ft P
  29688. .fi
  29689. .UNINDENT
  29690. .UNINDENT
  29691. .sp
  29692. If no errors are returned, range is installed successfully on the salt master.
  29693. .SS Preparing Salt
  29694. .sp
  29695. Range support must be enabled on the salt master by setting the hostname and
  29696. port of the range server inside the master configuration file:
  29697. .INDENT 0.0
  29698. .INDENT 3.5
  29699. .sp
  29700. .nf
  29701. .ft C
  29702. range_server: my.range.server.com:80
  29703. .ft P
  29704. .fi
  29705. .UNINDENT
  29706. .UNINDENT
  29707. .sp
  29708. Following this, the master must be restarted for the change to have an effect.
  29709. .SS Targeting with Range
  29710. .sp
  29711. Once a cluster has been defined, it can be targeted with a salt command by
  29712. using the \fB\-R\fP or \fB\-\-range\fP flags.
  29713. .sp
  29714. For example, given the following range YAML file being served from a range
  29715. server:
  29716. .INDENT 0.0
  29717. .INDENT 3.5
  29718. .sp
  29719. .nf
  29720. .ft C
  29721. $ cat /etc/range/test.yaml
  29722. CLUSTER: host1..100.test.com
  29723. APPS:
  29724. \- frontend
  29725. \- backend
  29726. \- mysql
  29727. .ft P
  29728. .fi
  29729. .UNINDENT
  29730. .UNINDENT
  29731. .sp
  29732. One might target host1 through host100 in the test.com domain with Salt as follows:
  29733. .INDENT 0.0
  29734. .INDENT 3.5
  29735. .sp
  29736. .nf
  29737. .ft C
  29738. salt \-\-range %test:CLUSTER test.version
  29739. .ft P
  29740. .fi
  29741. .UNINDENT
  29742. .UNINDENT
  29743. .sp
  29744. The following salt command would target three hosts: \fBfrontend\fP, \fBbackend\fP, and \fBmysql\fP:
  29745. .INDENT 0.0
  29746. .INDENT 3.5
  29747. .sp
  29748. .nf
  29749. .ft C
  29750. salt \-\-range %test:APPS test.version
  29751. .ft P
  29752. .fi
  29753. .UNINDENT
  29754. .UNINDENT
  29755. .SS Loadable Matchers
  29756. .sp
  29757. New in version 2019.2.0.
  29758. .sp
  29759. Internally targeting is implemented with chunks of code called Matchers. As of
  29760. the 2019.2.0 release, matchers can be loaded dynamically. Currently new matchers
  29761. cannot be created, but existing matchers can have their functionality altered or
  29762. extended. For more information on Matchers see
  29763. .SS Matchers
  29764. .sp
  29765. New in version 3000.
  29766. .sp
  29767. Matchers are modules that provide Salt\(aqs targeting abilities. As of the
  29768. 3000 release, matchers can be dynamically loaded. Currently new matchers
  29769. cannot be created because the required plumbing for the CLI does not exist yet.
  29770. Existing matchers may have their functionality altered or extended.
  29771. .sp
  29772. For details of targeting methods, see the Targeting topic.
  29773. .sp
  29774. A matcher module must have a function called \fBmatch()\fP\&. This function ends up
  29775. becoming a method on the Matcher class. All matcher functions require at least
  29776. two arguments, \fBself\fP (because the function will be turned into a method), and
  29777. \fBtgt\fP, which is the actual target string. The grains and pillar matchers also
  29778. take a \fBdelimiter\fP argument and should default to \fBDEFAULT_TARGET_DELIM\fP\&.
  29779. .sp
  29780. Like other Salt loadable modules, modules that override built\-in functionality
  29781. can be placed in \fBfile_roots\fP in a special directory and then copied to the
  29782. minion through the normal sync process. \fBsaltutil.sync_all\fP
  29783. will transfer all loadable modules, and the 3000 release introduces
  29784. \fBsaltutil.sync_matchers\fP\&. For matchers, the directory is
  29785. \fB/srv/salt/_matchers\fP (assuming your \fBfile_roots\fP is set to the default
  29786. \fB/srv/salt\fP).
  29787. .sp
  29788. As an example, let\(aqs modify the \fBlist\fP matcher to have the separator be a
  29789. \(aq\fB/\fP\(aq instead of the default \(aq\fB,\fP\(aq.
  29790. .INDENT 0.0
  29791. .INDENT 3.5
  29792. .sp
  29793. .nf
  29794. .ft C
  29795. from __future__ import absolute_import, print_function, unicode_literals
  29796. from salt.ext import six # pylint: disable=3rd\-party\-module\-not\-gated
  29797. def match(self, tgt):
  29798. """
  29799. Determines if this host is on the list
  29800. """
  29801. if isinstance(tgt, six.string_types):
  29802. # The stock matcher splits on \(ga,\(ga. Change to \(ga/\(ga below.
  29803. tgt = tgt.split("/")
  29804. return bool(self.opts["id"] in tgt)
  29805. .ft P
  29806. .fi
  29807. .UNINDENT
  29808. .UNINDENT
  29809. .sp
  29810. Place this code in a file called \fBlist_matcher.py\fP in \fB_matchers\fP in your
  29811. \fBfile_roots\fP\&. Sync this down to your minions with
  29812. \fBsaltutil.sync_matchers\fP\&.
  29813. Then attempt to match with the following, replacing \fBminionX\fP with three of your minions.
  29814. .INDENT 0.0
  29815. .INDENT 3.5
  29816. .sp
  29817. .nf
  29818. .ft C
  29819. salt \-L \(aqminion1/minion2/minion3\(aq test.ping
  29820. .ft P
  29821. .fi
  29822. .UNINDENT
  29823. .UNINDENT
  29824. .sp
  29825. Three of your minions should respond.
  29826. .sp
  29827. The current supported matchers and associated filenames are
  29828. .TS
  29829. center;
  29830. |l|l|l|.
  29831. _
  29832. T{
  29833. Salt CLI Switch
  29834. T} T{
  29835. Match Type
  29836. T} T{
  29837. Filename
  29838. T}
  29839. _
  29840. T{
  29841. <none>
  29842. T} T{
  29843. Glob
  29844. T} T{
  29845. glob_match.py
  29846. T}
  29847. _
  29848. T{
  29849. \-C
  29850. T} T{
  29851. Compound
  29852. T} T{
  29853. compound_match.py
  29854. T}
  29855. _
  29856. T{
  29857. \-E
  29858. T} T{
  29859. Perl\-Compatible
  29860. Regular Expressions
  29861. T} T{
  29862. pcre_match.py
  29863. T}
  29864. _
  29865. T{
  29866. \-L
  29867. T} T{
  29868. List
  29869. T} T{
  29870. list_match.py
  29871. T}
  29872. _
  29873. T{
  29874. \-G
  29875. T} T{
  29876. Grain
  29877. T} T{
  29878. grain_match.py
  29879. T}
  29880. _
  29881. T{
  29882. \-P
  29883. T} T{
  29884. Grain Perl\-Compatible
  29885. Regular Expressions
  29886. T} T{
  29887. grain_pcre_match.py
  29888. T}
  29889. _
  29890. T{
  29891. \-N
  29892. T} T{
  29893. Nodegroup
  29894. T} T{
  29895. nodegroup_match.py
  29896. T}
  29897. _
  29898. T{
  29899. \-R
  29900. T} T{
  29901. Range
  29902. T} T{
  29903. range_match.py
  29904. T}
  29905. _
  29906. T{
  29907. \-I
  29908. T} T{
  29909. Pillar
  29910. T} T{
  29911. pillar_match.py
  29912. T}
  29913. _
  29914. T{
  29915. \-J
  29916. T} T{
  29917. Pillar Perl\-Compatible
  29918. Regular Expressions
  29919. T} T{
  29920. pillar_pcre.py
  29921. T}
  29922. _
  29923. T{
  29924. \-S
  29925. T} T{
  29926. IP\-Classless Internet
  29927. Domain Routing
  29928. T} T{
  29929. ipcidr_match.py
  29930. T}
  29931. _
  29932. .TE
  29933. .SS The Salt Mine
  29934. .sp
  29935. The Salt Mine is used to collect arbitrary data from Minions and store it on
  29936. the Master. This data is then made available to all Minions via the
  29937. \fBsalt.modules.mine\fP module.
  29938. .sp
  29939. Mine data is gathered on the Minion and sent back to the Master where only the
  29940. most recent data is maintained (if long term data is required use returners or
  29941. the external job cache).
  29942. .SS Mine vs Grains
  29943. .sp
  29944. Mine data is designed to be much more up\-to\-date than grain data. Grains are
  29945. refreshed on a very limited basis and are largely static data. Mines are
  29946. designed to replace slow peer publishing calls when Minions need data from
  29947. other Minions. Rather than having a Minion reach out to all the other Minions
  29948. for a piece of data, the Salt Mine, running on the Master, can collect it from
  29949. all the Minions every \fI\%Mine Interval\fP, resulting in
  29950. almost fresh data at any given time, with much less overhead.
  29951. .SS Mine Functions
  29952. .sp
  29953. To enable the Salt Mine the \fBmine_functions\fP option needs to be applied to a
  29954. Minion. This option can be applied via the Minion\(aqs configuration file, or the
  29955. Minion\(aqs Pillar. The \fBmine_functions\fP option dictates what functions are
  29956. being executed and allows for arguments to be passed in. The list of
  29957. functions are available in the \fBsalt.module\fP\&. If no arguments
  29958. are passed, an empty list must be added like in the \fBtest.ping\fP function in
  29959. the example below:
  29960. .INDENT 0.0
  29961. .INDENT 3.5
  29962. .sp
  29963. .nf
  29964. .ft C
  29965. mine_functions:
  29966. test.ping: []
  29967. network.ip_addrs:
  29968. interface: eth0
  29969. cidr: 10.0.0.0/8
  29970. .ft P
  29971. .fi
  29972. .UNINDENT
  29973. .UNINDENT
  29974. .sp
  29975. In the example above \fBsalt.modules.network.ip_addrs\fP has additional
  29976. filters to help narrow down the results. In the above example IP addresses
  29977. are only returned if they are on a eth0 interface and in the 10.0.0.0/8 IP
  29978. range.
  29979. .sp
  29980. Changed in version 3000.
  29981. .sp
  29982. The format to define mine_functions has been changed to allow the same format
  29983. as used for module.run. The old format (above) will still be supported.
  29984. .INDENT 0.0
  29985. .INDENT 3.5
  29986. .sp
  29987. .nf
  29988. .ft C
  29989. mine_functions:
  29990. test.ping: []
  29991. network.ip_addrs:
  29992. \- interface: eth0
  29993. \- cidr: 10.0.0.0/8
  29994. test.arg:
  29995. \- isn\(aqt
  29996. \- this
  29997. \- fun
  29998. \- this: that
  29999. \- salt: stack
  30000. .ft P
  30001. .fi
  30002. .UNINDENT
  30003. .UNINDENT
  30004. .SS Minion\-side Access Control
  30005. .sp
  30006. New in version 3000.
  30007. .sp
  30008. Mine functions can be targeted to only be available to specific minions. This
  30009. uses the same targeting parameters as targeting but with keywords \fBallow_tgt\fP
  30010. and \fBallow_tgt_type\fP\&. When a minion requests a function from the salt mine that
  30011. is not allowed to be requested by that minion (i.e. when looking up the combination
  30012. of \fBallow_tgt\fP and \fBallow_tgt_type\fP and the requesting minion is not in the list)
  30013. it will get no data, just as if the requested function is not present in the salt mine.
  30014. .INDENT 0.0
  30015. .INDENT 3.5
  30016. .sp
  30017. .nf
  30018. .ft C
  30019. mine_functions:
  30020. network.ip_addrs:
  30021. \- interface: eth0
  30022. \- cidr: 10.0.0.0/8
  30023. \- allow_tgt: \(aqG@role:master\(aq
  30024. \- allow_tgt_type: \(aqcompound\(aq
  30025. .ft P
  30026. .fi
  30027. .UNINDENT
  30028. .UNINDENT
  30029. .SS Mine Functions Aliases
  30030. .sp
  30031. Function aliases can be used to provide friendly names, usage intentions or to
  30032. allow multiple calls of the same function with different arguments. There is a
  30033. different syntax for passing positional and key\-value arguments. Mixing
  30034. positional and key\-value arguments is not supported.
  30035. .sp
  30036. New in version 2014.7.0.
  30037. .INDENT 0.0
  30038. .INDENT 3.5
  30039. .sp
  30040. .nf
  30041. .ft C
  30042. mine_functions:
  30043. network.ip_addrs: [eth0]
  30044. networkplus.internal_ip_addrs: []
  30045. internal_ip_addrs:
  30046. mine_function: network.ip_addrs
  30047. cidr: 192.168.0.0/16
  30048. ip_list:
  30049. \- mine_function: grains.get
  30050. \- ip_interfaces
  30051. .ft P
  30052. .fi
  30053. .UNINDENT
  30054. .UNINDENT
  30055. .sp
  30056. Changed in version 3000.
  30057. .sp
  30058. With the addition of the module.run\-like format for defining mine_functions, the
  30059. method of adding aliases remains similar. Just add a \fBmine_function\fP kwarg with
  30060. the name of the real function to call, making the key below \fBmine_functions\fP
  30061. the alias:
  30062. .INDENT 0.0
  30063. .INDENT 3.5
  30064. .sp
  30065. .nf
  30066. .ft C
  30067. mine_functions:
  30068. alias_name:
  30069. \- mine_function: network.ip_addrs
  30070. \- eth0
  30071. internal_ip_addrs:
  30072. \- mine_function: network.ip_addrs
  30073. \- cidr: 192.168.0.0/16
  30074. ip_list:
  30075. \- mine_function: grains.get
  30076. \- ip_interfaces
  30077. .ft P
  30078. .fi
  30079. .UNINDENT
  30080. .UNINDENT
  30081. .SS Mine Interval
  30082. .sp
  30083. The Salt Mine functions are executed when the Minion starts and at a given
  30084. interval by the scheduler. The default interval is every 60 minutes and can
  30085. be adjusted for the Minion via the \fBmine_interval\fP option in the minion
  30086. config:
  30087. .INDENT 0.0
  30088. .INDENT 3.5
  30089. .sp
  30090. .nf
  30091. .ft C
  30092. mine_interval: 60
  30093. .ft P
  30094. .fi
  30095. .UNINDENT
  30096. .UNINDENT
  30097. .SS Mine in Salt\-SSH
  30098. .sp
  30099. As of the 2015.5.0 release of salt, salt\-ssh supports \fBmine.get\fP\&.
  30100. .sp
  30101. Because the Minions cannot provide their own \fBmine_functions\fP configuration,
  30102. we retrieve the args for specified mine functions in one of three places,
  30103. searched in the following order:
  30104. .INDENT 0.0
  30105. .IP 1. 3
  30106. Roster data
  30107. .IP 2. 3
  30108. Pillar
  30109. .IP 3. 3
  30110. Master config
  30111. .UNINDENT
  30112. .sp
  30113. The \fBmine_functions\fP are formatted exactly the same as in normal salt, just
  30114. stored in a different location. Here is an example of a flat roster containing
  30115. \fBmine_functions\fP:
  30116. .INDENT 0.0
  30117. .INDENT 3.5
  30118. .sp
  30119. .nf
  30120. .ft C
  30121. test:
  30122. host: 104.237.131.248
  30123. user: root
  30124. mine_functions:
  30125. cmd.run: [\(aqecho "hello!"\(aq]
  30126. network.ip_addrs:
  30127. interface: eth0
  30128. .ft P
  30129. .fi
  30130. .UNINDENT
  30131. .UNINDENT
  30132. .sp
  30133. \fBNOTE:\fP
  30134. .INDENT 0.0
  30135. .INDENT 3.5
  30136. Because of the differences in the architecture of salt\-ssh, \fBmine.get\fP
  30137. calls are somewhat inefficient. Salt must make a new salt\-ssh call to each
  30138. of the Minions in question to retrieve the requested data, much like a
  30139. publish call. However, unlike publish, it must run the requested function
  30140. as a wrapper function, so we can retrieve the function args from the pillar
  30141. of the Minion in question. This results in a non\-trivial delay in
  30142. retrieving the requested data.
  30143. .UNINDENT
  30144. .UNINDENT
  30145. .SS Minions Targeting with Mine
  30146. .sp
  30147. The \fBmine.get\fP function supports various methods of Minions targeting to fetch Mine data from particular hosts, such as glob or regular
  30148. expression matching on Minion id (name), grains, pillars and compound
  30149. matches\&. See the \fBsalt.modules.mine\fP module
  30150. documentation for the reference.
  30151. .sp
  30152. \fBNOTE:\fP
  30153. .INDENT 0.0
  30154. .INDENT 3.5
  30155. Pillar data needs to be cached on Master for pillar targeting to work with
  30156. Mine. Read the note in relevant section\&.
  30157. .UNINDENT
  30158. .UNINDENT
  30159. .SS Example
  30160. .sp
  30161. One way to use data from Salt Mine is in a State. The values can be retrieved
  30162. via Jinja and used in the SLS file. The following example is a partial HAProxy
  30163. configuration file and pulls IP addresses from all Minions with the "web" grain
  30164. to add them to the pool of load balanced servers.
  30165. .sp
  30166. \fB/srv/pillar/top.sls\fP:
  30167. .INDENT 0.0
  30168. .INDENT 3.5
  30169. .sp
  30170. .nf
  30171. .ft C
  30172. base:
  30173. \(aqG@roles:web\(aq:
  30174. \- web
  30175. .ft P
  30176. .fi
  30177. .UNINDENT
  30178. .UNINDENT
  30179. .sp
  30180. \fB/srv/pillar/web.sls\fP:
  30181. .INDENT 0.0
  30182. .INDENT 3.5
  30183. .sp
  30184. .nf
  30185. .ft C
  30186. mine_functions:
  30187. network.ip_addrs: [eth0]
  30188. .ft P
  30189. .fi
  30190. .UNINDENT
  30191. .UNINDENT
  30192. .sp
  30193. Then trigger the minions to refresh their pillar data by running:
  30194. .INDENT 0.0
  30195. .INDENT 3.5
  30196. .sp
  30197. .nf
  30198. .ft C
  30199. salt \(aq*\(aq saltutil.refresh_pillar
  30200. .ft P
  30201. .fi
  30202. .UNINDENT
  30203. .UNINDENT
  30204. .sp
  30205. Verify that the results are showing up in the pillar on the minions by
  30206. executing the following and checking for \fBnetwork.ip_addrs\fP in the output:
  30207. .INDENT 0.0
  30208. .INDENT 3.5
  30209. .sp
  30210. .nf
  30211. .ft C
  30212. salt \(aq*\(aq pillar.items
  30213. .ft P
  30214. .fi
  30215. .UNINDENT
  30216. .UNINDENT
  30217. .sp
  30218. Which should show that the function is present on the minion, but not include
  30219. the output:
  30220. .INDENT 0.0
  30221. .INDENT 3.5
  30222. .sp
  30223. .nf
  30224. .ft C
  30225. minion1.example.com:
  30226. \-\-\-\-\-\-\-\-\-\-
  30227. mine_functions:
  30228. \-\-\-\-\-\-\-\-\-\-
  30229. network.ip_addrs:
  30230. \- eth0
  30231. .ft P
  30232. .fi
  30233. .UNINDENT
  30234. .UNINDENT
  30235. .sp
  30236. Mine data is typically only updated on the master every 60 minutes, this can
  30237. be modified by setting:
  30238. .sp
  30239. \fB/etc/salt/minion.d/mine.conf\fP:
  30240. .INDENT 0.0
  30241. .INDENT 3.5
  30242. .sp
  30243. .nf
  30244. .ft C
  30245. mine_interval: 5
  30246. .ft P
  30247. .fi
  30248. .UNINDENT
  30249. .UNINDENT
  30250. .sp
  30251. To force the mine data to update immediately run:
  30252. .INDENT 0.0
  30253. .INDENT 3.5
  30254. .sp
  30255. .nf
  30256. .ft C
  30257. salt \(aq*\(aq mine.update
  30258. .ft P
  30259. .fi
  30260. .UNINDENT
  30261. .UNINDENT
  30262. .sp
  30263. Setup the \fBsalt.states.file.managed\fP state in
  30264. \fB/srv/salt/haproxy.sls\fP:
  30265. .INDENT 0.0
  30266. .INDENT 3.5
  30267. .sp
  30268. .nf
  30269. .ft C
  30270. haproxy_config:
  30271. file.managed:
  30272. \- name: /etc/haproxy/config
  30273. \- source: salt://haproxy_config
  30274. \- template: jinja
  30275. .ft P
  30276. .fi
  30277. .UNINDENT
  30278. .UNINDENT
  30279. .sp
  30280. Create the Jinja template in \fB/srv/salt/haproxy_config\fP:
  30281. .INDENT 0.0
  30282. .INDENT 3.5
  30283. .sp
  30284. .nf
  30285. .ft C
  30286. <...file contents snipped...>
  30287. {% for server, addrs in salt[\(aqmine.get\(aq](\(aqroles:web\(aq, \(aqnetwork.ip_addrs\(aq, tgt_type=\(aqgrain\(aq) | dictsort() %}
  30288. server {{ server }} {{ addrs[0] }}:80 check
  30289. {% endfor %}
  30290. <...file contents snipped...>
  30291. .ft P
  30292. .fi
  30293. .UNINDENT
  30294. .UNINDENT
  30295. .sp
  30296. In the above example, \fBserver\fP will be expanded to the \fBminion_id\fP\&.
  30297. .sp
  30298. \fBNOTE:\fP
  30299. .INDENT 0.0
  30300. .INDENT 3.5
  30301. The expr_form argument will be renamed to \fBtgt_type\fP in the 2017.7.0
  30302. release of Salt.
  30303. .UNINDENT
  30304. .UNINDENT
  30305. .SS Runners
  30306. .sp
  30307. Salt runners are convenience applications executed with the salt\-run command.
  30308. .sp
  30309. Salt runners work similarly to Salt execution modules however they execute on the
  30310. Salt master itself instead of remote Salt minions.
  30311. .sp
  30312. A Salt runner can be a simple client call or a complex application.
  30313. .sp
  30314. \fBSEE ALSO:\fP
  30315. .INDENT 0.0
  30316. .INDENT 3.5
  30317. The full list of runners
  30318. .UNINDENT
  30319. .UNINDENT
  30320. .SS Writing Salt Runners
  30321. .sp
  30322. A Salt runner is written in a similar manner to a Salt execution module.
  30323. Both are Python modules which contain functions and each public function
  30324. is a runner which may be executed via the \fIsalt\-run\fP command.
  30325. .sp
  30326. For example, if a Python module named \fBtest.py\fP is created in the runners
  30327. directory and contains a function called \fBfoo\fP, the \fBtest\fP runner could be
  30328. invoked with the following command:
  30329. .INDENT 0.0
  30330. .INDENT 3.5
  30331. .sp
  30332. .nf
  30333. .ft C
  30334. # salt\-run test.foo
  30335. .ft P
  30336. .fi
  30337. .UNINDENT
  30338. .UNINDENT
  30339. .sp
  30340. Runners have several options for controlling output.
  30341. .sp
  30342. Any \fBprint\fP statement in a runner is automatically also
  30343. fired onto the master event bus where. For example:
  30344. .INDENT 0.0
  30345. .INDENT 3.5
  30346. .sp
  30347. .nf
  30348. .ft C
  30349. def a_runner(outputter=None, display_progress=False):
  30350. print("Hello world")
  30351. ...
  30352. .ft P
  30353. .fi
  30354. .UNINDENT
  30355. .UNINDENT
  30356. .sp
  30357. The above would result in an event fired as follows:
  30358. .INDENT 0.0
  30359. .INDENT 3.5
  30360. .sp
  30361. .nf
  30362. .ft C
  30363. Event fired at Tue Jan 13 15:26:45 2015
  30364. *************************
  30365. Tag: salt/run/20150113152644070246/print
  30366. Data:
  30367. {\(aq_stamp\(aq: \(aq2015\-01\-13T15:26:45.078707\(aq,
  30368. \(aqdata\(aq: \(aqhello\(aq,
  30369. \(aqoutputter\(aq: \(aqpprint\(aq}
  30370. .ft P
  30371. .fi
  30372. .UNINDENT
  30373. .UNINDENT
  30374. .sp
  30375. A runner may also send a progress event, which is displayed to the user during
  30376. runner execution and is also passed across the event bus if the \fBdisplay_progress\fP
  30377. argument to a runner is set to True.
  30378. .sp
  30379. A custom runner may send its own progress event by using the
  30380. \fB__jid_event_.fire_event()\fP method as shown here:
  30381. .INDENT 0.0
  30382. .INDENT 3.5
  30383. .sp
  30384. .nf
  30385. .ft C
  30386. if display_progress:
  30387. __jid_event__.fire_event({"message": "A progress message"}, "progress")
  30388. .ft P
  30389. .fi
  30390. .UNINDENT
  30391. .UNINDENT
  30392. .sp
  30393. The above would produce output on the console reading: \fBA progress message\fP
  30394. as well as an event on the event similar to:
  30395. .INDENT 0.0
  30396. .INDENT 3.5
  30397. .sp
  30398. .nf
  30399. .ft C
  30400. Event fired at Tue Jan 13 15:21:20 2015
  30401. *************************
  30402. Tag: salt/run/20150113152118341421/progress
  30403. Data:
  30404. {\(aq_stamp\(aq: \(aq2015\-01\-13T15:21:20.390053\(aq,
  30405. \(aqmessage\(aq: "A progress message"}
  30406. .ft P
  30407. .fi
  30408. .UNINDENT
  30409. .UNINDENT
  30410. .sp
  30411. A runner could use the same approach to send an event with a customized tag
  30412. onto the event bus by replacing the second argument (\fBprogress\fP) with
  30413. whatever tag is desired. However, this will not be shown on the command\-line
  30414. and will only be fired onto the event bus.
  30415. .SS Synchronous vs. Asynchronous
  30416. .sp
  30417. A runner may be fired asynchronously which will immediately return control. In
  30418. this case, no output will be display to the user if \fBsalt\-run\fP is being used
  30419. from the command\-line. If used programmatically, no results will be returned.
  30420. If results are desired, they must be gathered either by firing events on the
  30421. bus from the runner and then watching for them or by some other means.
  30422. .sp
  30423. \fBNOTE:\fP
  30424. .INDENT 0.0
  30425. .INDENT 3.5
  30426. When running a runner in asynchronous mode, the \fB\-\-progress\fP flag will
  30427. not deliver output to the salt\-run CLI. However, progress events will
  30428. still be fired on the bus.
  30429. .UNINDENT
  30430. .UNINDENT
  30431. .sp
  30432. In synchronous mode, which is the default, control will not be returned until
  30433. the runner has finished executing.
  30434. .sp
  30435. To add custom runners, put them in a directory and add it to
  30436. \fBrunner_dirs\fP in the master configuration file.
  30437. .SS Examples
  30438. .sp
  30439. Examples of runners can be found in the Salt distribution:
  30440. .sp
  30441. \fI\%https://github.com/saltstack/salt/blob/master/salt/runners\fP
  30442. .sp
  30443. A simple runner that returns a well\-formatted list of the minions that are
  30444. responding to Salt calls could look like this:
  30445. .INDENT 0.0
  30446. .INDENT 3.5
  30447. .sp
  30448. .nf
  30449. .ft C
  30450. # Import salt modules
  30451. import salt.client
  30452. def up():
  30453. """
  30454. Print a list of all of the minions that are up
  30455. """
  30456. client = salt.client.LocalClient(__opts__["conf_file"])
  30457. minions = client.cmd("*", "test.version", timeout=1)
  30458. for minion in sorted(minions):
  30459. print minion
  30460. .ft P
  30461. .fi
  30462. .UNINDENT
  30463. .UNINDENT
  30464. .SS Salt Engines
  30465. .sp
  30466. New in version 2015.8.0.
  30467. .sp
  30468. Salt Engines are long\-running, external system processes that leverage Salt.
  30469. .INDENT 0.0
  30470. .IP \(bu 2
  30471. Engines have access to Salt configuration, execution modules, and runners (\fB__opts__\fP, \fB__salt__\fP, and \fB__runners__\fP).
  30472. .IP \(bu 2
  30473. Engines are executed in a separate process that is monitored by Salt. If a Salt engine stops, it is restarted automatically.
  30474. .IP \(bu 2
  30475. Engines can run on the Salt master and on Salt minions.
  30476. .UNINDENT
  30477. .sp
  30478. Salt engines enhance and replace the external processes functionality.
  30479. .SS Configuration
  30480. .sp
  30481. 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.
  30482. .INDENT 0.0
  30483. .INDENT 3.5
  30484. .sp
  30485. .nf
  30486. .ft C
  30487. engines:
  30488. \- logstash:
  30489. host: log.my_network.com
  30490. port: 5959
  30491. proto: tcp
  30492. .ft P
  30493. .fi
  30494. .UNINDENT
  30495. .UNINDENT
  30496. .sp
  30497. New in version 3000.
  30498. .sp
  30499. Multiple copies of a particular Salt engine can be configured by including the \fBengine_module\fP parameter in the engine configuration.
  30500. .INDENT 0.0
  30501. .INDENT 3.5
  30502. .sp
  30503. .nf
  30504. .ft C
  30505. engines:
  30506. \- production_logstash:
  30507. host: production_log.my_network.com
  30508. port: 5959
  30509. proto: tcp
  30510. engine_module: logstash
  30511. \- develop_logstash:
  30512. host: develop_log.my_network.com
  30513. port: 5959
  30514. proto: tcp
  30515. engine_module: logstash
  30516. .ft P
  30517. .fi
  30518. .UNINDENT
  30519. .UNINDENT
  30520. .sp
  30521. 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:
  30522. .INDENT 0.0
  30523. .INDENT 3.5
  30524. .sp
  30525. .nf
  30526. .ft C
  30527. engines_dirs:
  30528. \- /home/bob/engines
  30529. .ft P
  30530. .fi
  30531. .UNINDENT
  30532. .UNINDENT
  30533. .SS Writing an Engine
  30534. .sp
  30535. 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.
  30536. .SS Understanding YAML
  30537. .sp
  30538. The default renderer for SLS files is the YAML renderer. YAML is a
  30539. markup language with many powerful features. However, Salt uses
  30540. a small subset of YAML that maps over very commonly used data structures,
  30541. like lists and dictionaries. It is the job of the YAML renderer to take
  30542. the YAML data structure and compile it into a Python data structure for
  30543. use by Salt.
  30544. .sp
  30545. Though YAML syntax may seem daunting and terse at first, there are only
  30546. three very simple rules to remember when writing YAML for SLS files.
  30547. .SS Rule One: Indentation
  30548. .sp
  30549. YAML uses a fixed indentation scheme to represent relationships between
  30550. data layers. Salt requires that the indentation for each level consists
  30551. of exactly two spaces. Do not use tabs.
  30552. .SS Rule Two: Colons
  30553. .sp
  30554. Python dictionaries are, of course, simply key\-value pairs. Users from other
  30555. languages may recognize this data type as hashes or associative arrays.
  30556. .sp
  30557. Dictionary keys are represented in YAML as strings terminated by a trailing
  30558. colon. Values are represented by either a string following the colon,
  30559. separated by a space:
  30560. .INDENT 0.0
  30561. .INDENT 3.5
  30562. .sp
  30563. .nf
  30564. .ft C
  30565. my_key: my_value
  30566. .ft P
  30567. .fi
  30568. .UNINDENT
  30569. .UNINDENT
  30570. .sp
  30571. In Python, the above maps to:
  30572. .INDENT 0.0
  30573. .INDENT 3.5
  30574. .sp
  30575. .nf
  30576. .ft C
  30577. {"my_key": "my_value"}
  30578. .ft P
  30579. .fi
  30580. .UNINDENT
  30581. .UNINDENT
  30582. .sp
  30583. Alternatively, a value can be associated with a key through indentation.
  30584. .INDENT 0.0
  30585. .INDENT 3.5
  30586. .sp
  30587. .nf
  30588. .ft C
  30589. my_key:
  30590. my_value
  30591. .ft P
  30592. .fi
  30593. .UNINDENT
  30594. .UNINDENT
  30595. .sp
  30596. \fBNOTE:\fP
  30597. .INDENT 0.0
  30598. .INDENT 3.5
  30599. The above syntax is valid YAML but is uncommon in SLS files because most often,
  30600. the value for a key is not singular but instead is a \fIlist\fP of values.
  30601. .UNINDENT
  30602. .UNINDENT
  30603. .sp
  30604. In Python, the above maps to:
  30605. .INDENT 0.0
  30606. .INDENT 3.5
  30607. .sp
  30608. .nf
  30609. .ft C
  30610. {"my_key": "my_value"}
  30611. .ft P
  30612. .fi
  30613. .UNINDENT
  30614. .UNINDENT
  30615. .sp
  30616. Dictionaries can be nested:
  30617. .INDENT 0.0
  30618. .INDENT 3.5
  30619. .sp
  30620. .nf
  30621. .ft C
  30622. first_level_dict_key:
  30623. second_level_dict_key: value_in_second_level_dict
  30624. .ft P
  30625. .fi
  30626. .UNINDENT
  30627. .UNINDENT
  30628. .sp
  30629. And in Python:
  30630. .INDENT 0.0
  30631. .INDENT 3.5
  30632. .sp
  30633. .nf
  30634. .ft C
  30635. {"first_level_dict_key": {"second_level_dict_key": "value_in_second_level_dict"}}
  30636. .ft P
  30637. .fi
  30638. .UNINDENT
  30639. .UNINDENT
  30640. .SS Rule Three: Dashes
  30641. .sp
  30642. To represent lists of items, a single dash followed by a space is used. Multiple
  30643. items are a part of the same list as a function of their having the same level of indentation.
  30644. .INDENT 0.0
  30645. .INDENT 3.5
  30646. .sp
  30647. .nf
  30648. .ft C
  30649. \- list_value_one
  30650. \- list_value_two
  30651. \- list_value_three
  30652. .ft P
  30653. .fi
  30654. .UNINDENT
  30655. .UNINDENT
  30656. .sp
  30657. Lists can be the value of a key\-value pair. This is quite common in Salt:
  30658. .INDENT 0.0
  30659. .INDENT 3.5
  30660. .sp
  30661. .nf
  30662. .ft C
  30663. my_dictionary:
  30664. \- list_value_one
  30665. \- list_value_two
  30666. \- list_value_three
  30667. .ft P
  30668. .fi
  30669. .UNINDENT
  30670. .UNINDENT
  30671. .sp
  30672. In Python, the above maps to:
  30673. .INDENT 0.0
  30674. .INDENT 3.5
  30675. .sp
  30676. .nf
  30677. .ft C
  30678. {"my_dictionary": ["list_value_one", "list_value_two", "list_value_three"]}
  30679. .ft P
  30680. .fi
  30681. .UNINDENT
  30682. .UNINDENT
  30683. .SS Learning More
  30684. .sp
  30685. One easy way to learn more about how YAML gets rendered into Python data structures is
  30686. to use an online YAML parser to see the Python output.
  30687. .sp
  30688. One excellent choice for experimenting with YAML parsing is: \fI\%http://yaml\-online\-parser.appspot.com/\fP
  30689. .SS Templating
  30690. .sp
  30691. Jinja statements and expressions are allowed by default in SLS files. See
  30692. Understanding Jinja\&.
  30693. .SS Understanding Jinja
  30694. .sp
  30695. \fI\%Jinja\fP is the default templating language in SLS files.
  30696. .SS Jinja in States
  30697. .sp
  30698. Jinja is evaluated before YAML, which means it is evaluated before the States
  30699. are run.
  30700. .sp
  30701. The most basic usage of Jinja in state files is using control structures to
  30702. wrap conditional or redundant state elements:
  30703. .INDENT 0.0
  30704. .INDENT 3.5
  30705. .sp
  30706. .nf
  30707. .ft C
  30708. {% if grains[\(aqos\(aq] != \(aqFreeBSD\(aq %}
  30709. tcsh:
  30710. pkg:
  30711. \- installed
  30712. {% endif %}
  30713. motd:
  30714. file.managed:
  30715. {% if grains[\(aqos\(aq] == \(aqFreeBSD\(aq %}
  30716. \- name: /etc/motd
  30717. {% elif grains[\(aqos\(aq] == \(aqDebian\(aq %}
  30718. \- name: /etc/motd.tail
  30719. {% endif %}
  30720. \- source: salt://motd
  30721. .ft P
  30722. .fi
  30723. .UNINDENT
  30724. .UNINDENT
  30725. .sp
  30726. In this example, the first \fBif\fP block will only be evaluated on minions that
  30727. aren\(aqt running FreeBSD, and the second block changes the file name based on the
  30728. \fIos\fP grain.
  30729. .sp
  30730. Writing \fBif\-else\fP blocks can lead to very redundant state files however. In
  30731. this case, using pillars, or using a previously
  30732. defined variable might be easier:
  30733. .INDENT 0.0
  30734. .INDENT 3.5
  30735. .sp
  30736. .nf
  30737. .ft C
  30738. {% set motd = [\(aq/etc/motd\(aq] %}
  30739. {% if grains[\(aqos\(aq] == \(aqDebian\(aq %}
  30740. {% set motd = [\(aq/etc/motd.tail\(aq, \(aq/var/run/motd\(aq] %}
  30741. {% endif %}
  30742. {% for motdfile in motd %}
  30743. {{ motdfile }}:
  30744. file.managed:
  30745. \- source: salt://motd
  30746. {% endfor %}
  30747. .ft P
  30748. .fi
  30749. .UNINDENT
  30750. .UNINDENT
  30751. .sp
  30752. Using a variable set by the template, the \fI\%for loop\fP will iterate over the
  30753. list of MOTD files to update, adding a state block for each file.
  30754. .sp
  30755. The filter_by function can also be used to set variables based on grains:
  30756. .INDENT 0.0
  30757. .INDENT 3.5
  30758. .sp
  30759. .nf
  30760. .ft C
  30761. {% set auditd = salt[\(aqgrains.filter_by\(aq]({
  30762. \(aqRedHat\(aq: { \(aqpackage\(aq: \(aqaudit\(aq },
  30763. \(aqDebian\(aq: { \(aqpackage\(aq: \(aqauditd\(aq },
  30764. }) %}
  30765. .ft P
  30766. .fi
  30767. .UNINDENT
  30768. .UNINDENT
  30769. .SS Include and Import
  30770. .sp
  30771. Includes and \fI\%imports\fP can be used to share common, reusable state configuration
  30772. between state files and between files.
  30773. .INDENT 0.0
  30774. .INDENT 3.5
  30775. .sp
  30776. .nf
  30777. .ft C
  30778. {% from \(aqlib.sls\(aq import test %}
  30779. .ft P
  30780. .fi
  30781. .UNINDENT
  30782. .UNINDENT
  30783. .sp
  30784. This would import the \fBtest\fP template variable or macro, not the \fBtest\fP
  30785. state element, from the file \fBlib.sls\fP\&. In the case that the included file
  30786. performs checks against grains, or something else that requires context, passing
  30787. the context into the included file is required:
  30788. .INDENT 0.0
  30789. .INDENT 3.5
  30790. .sp
  30791. .nf
  30792. .ft C
  30793. {% from \(aqlib.sls\(aq import test with context %}
  30794. .ft P
  30795. .fi
  30796. .UNINDENT
  30797. .UNINDENT
  30798. .sp
  30799. Includes must use full paths, like so:
  30800. .sp
  30801. spam/eggs.jinja
  30802. .INDENT 0.0
  30803. .INDENT 3.5
  30804. .sp
  30805. .nf
  30806. .ft C
  30807. {% include \(aqspam/foobar.jinja\(aq %}
  30808. .ft P
  30809. .fi
  30810. .UNINDENT
  30811. .UNINDENT
  30812. .SS Including Context During Include/Import
  30813. .sp
  30814. By adding \fBwith context\fP to the include/import directive, the
  30815. current context can be passed to an included/imported template.
  30816. .INDENT 0.0
  30817. .INDENT 3.5
  30818. .sp
  30819. .nf
  30820. .ft C
  30821. {% import \(aqopenssl/vars.sls\(aq as ssl with context %}
  30822. .ft P
  30823. .fi
  30824. .UNINDENT
  30825. .UNINDENT
  30826. .SS Macros
  30827. .sp
  30828. \fI\%Macros\fP are helpful for eliminating redundant code. Macros are most useful as
  30829. mini\-templates to repeat blocks of strings with a few parameterized variables.
  30830. Be aware that stripping whitespace from the template block, as well as
  30831. contained blocks, may be necessary to emulate a variable return from the macro.
  30832. .INDENT 0.0
  30833. .INDENT 3.5
  30834. .sp
  30835. .nf
  30836. .ft C
  30837. # init.sls
  30838. {% from \(aqlib.sls\(aq import pythonpkg with context %}
  30839. python\-virtualenv:
  30840. pkg.installed:
  30841. \- name: {{ pythonpkg(\(aqvirtualenv\(aq) }}
  30842. python\-fabric:
  30843. pkg.installed:
  30844. \- name: {{ pythonpkg(\(aqfabric\(aq) }}
  30845. .ft P
  30846. .fi
  30847. .UNINDENT
  30848. .UNINDENT
  30849. .INDENT 0.0
  30850. .INDENT 3.5
  30851. .sp
  30852. .nf
  30853. .ft C
  30854. # lib.sls
  30855. {% macro pythonpkg(pkg) \-%}
  30856. {%\- if grains[\(aqos\(aq] == \(aqFreeBSD\(aq \-%}
  30857. py27\-{{ pkg }}
  30858. {%\- elif grains[\(aqos\(aq] == \(aqDebian\(aq \-%}
  30859. python\-{{ pkg }}
  30860. {%\- endif \-%}
  30861. {%\- endmacro %}
  30862. .ft P
  30863. .fi
  30864. .UNINDENT
  30865. .UNINDENT
  30866. .sp
  30867. This would define a \fI\%macro\fP that would return a string of the full package name,
  30868. depending on the packaging system\(aqs naming convention. The whitespace of the
  30869. macro was eliminated, so that the macro would return a string without line
  30870. breaks, using \fI\%whitespace control\fP\&.
  30871. .SS Template Inheritance
  30872. .sp
  30873. \fI\%Template inheritance\fP works fine from state files and files. The search path
  30874. starts at the root of the state tree or pillar.
  30875. .SS Errors
  30876. .sp
  30877. Saltstack allows raising custom errors using the \fBraise\fP jinja function.
  30878. .INDENT 0.0
  30879. .INDENT 3.5
  30880. .sp
  30881. .nf
  30882. .ft C
  30883. {{ raise(\(aqCustom Error\(aq) }}
  30884. .ft P
  30885. .fi
  30886. .UNINDENT
  30887. .UNINDENT
  30888. .sp
  30889. When rendering the template containing the above statement, a \fBTemplateError\fP
  30890. exception is raised, causing the rendering to fail with the following message:
  30891. .INDENT 0.0
  30892. .INDENT 3.5
  30893. .sp
  30894. .nf
  30895. .ft C
  30896. TemplateError: Custom Error
  30897. .ft P
  30898. .fi
  30899. .UNINDENT
  30900. .UNINDENT
  30901. .SS Filters
  30902. .sp
  30903. Saltstack extends \fI\%builtin filters\fP with these custom filters:
  30904. .SS \fBstrftime\fP
  30905. .sp
  30906. Converts any time related object into a time based string. It requires valid
  30907. strftime directives. An exhaustive list can be found \fI\%here\fP in the Python documentation.
  30908. .INDENT 0.0
  30909. .INDENT 3.5
  30910. .sp
  30911. .nf
  30912. .ft C
  30913. {% set curtime = None | strftime() %}
  30914. .ft P
  30915. .fi
  30916. .UNINDENT
  30917. .UNINDENT
  30918. .sp
  30919. Fuzzy dates require the \fI\%timelib\fP Python module is installed.
  30920. .INDENT 0.0
  30921. .INDENT 3.5
  30922. .sp
  30923. .nf
  30924. .ft C
  30925. {{ "2002/12/25"|strftime("%y") }}
  30926. {{ "1040814000"|strftime("%Y\-%m\-%d") }}
  30927. {{ datetime|strftime("%u") }}
  30928. {{ "tomorrow"|strftime }}
  30929. .ft P
  30930. .fi
  30931. .UNINDENT
  30932. .UNINDENT
  30933. .SS \fBsequence\fP
  30934. .sp
  30935. Ensure that parsed data is a sequence.
  30936. .SS \fByaml_encode\fP
  30937. .sp
  30938. Serializes a single object into a YAML scalar with any necessary
  30939. handling for escaping special characters. This will work for any
  30940. scalar YAML data type: ints, floats, timestamps, booleans, strings,
  30941. unicode. It will \fInot\fP work for multi\-objects such as sequences or
  30942. maps.
  30943. .INDENT 0.0
  30944. .INDENT 3.5
  30945. .sp
  30946. .nf
  30947. .ft C
  30948. {%\- set bar = 7 %}
  30949. {%\- set baz = none %}
  30950. {%\- set zip = true %}
  30951. {%\- set zap = \(aqThe word of the day is "salty"\(aq %}
  30952. {%\- load_yaml as foo %}
  30953. bar: {{ bar|yaml_encode }}
  30954. baz: {{ baz|yaml_encode }}
  30955. zip: {{ zip|yaml_encode }}
  30956. zap: {{ zap|yaml_encode }}
  30957. {%\- endload %}
  30958. .ft P
  30959. .fi
  30960. .UNINDENT
  30961. .UNINDENT
  30962. .sp
  30963. In the above case \fB{{ bar }}\fP and \fB{{ foo.bar }}\fP should be
  30964. identical and \fB{{ baz }}\fP and \fB{{ foo.baz }}\fP should be
  30965. identical.
  30966. .SS \fByaml_dquote\fP
  30967. .sp
  30968. Serializes a string into a properly\-escaped YAML double\-quoted
  30969. string. This is useful when the contents of a string are unknown
  30970. and may contain quotes or unicode that needs to be preserved. The
  30971. resulting string will be emitted with opening and closing double
  30972. quotes.
  30973. .INDENT 0.0
  30974. .INDENT 3.5
  30975. .sp
  30976. .nf
  30977. .ft C
  30978. {%\- set bar = \(aq"The quick brown fox . . ."\(aq %}
  30979. {%\- set baz = \(aqThe word of the day is "salty".\(aq %}
  30980. {%\- load_yaml as foo %}
  30981. bar: {{ bar|yaml_dquote }}
  30982. baz: {{ baz|yaml_dquote }}
  30983. {%\- endload %}
  30984. .ft P
  30985. .fi
  30986. .UNINDENT
  30987. .UNINDENT
  30988. .sp
  30989. In the above case \fB{{ bar }}\fP and \fB{{ foo.bar }}\fP should be
  30990. identical and \fB{{ baz }}\fP and \fB{{ foo.baz }}\fP should be
  30991. identical. If variable contents are not guaranteed to be a string
  30992. then it is better to use \fByaml_encode\fP which handles all YAML
  30993. scalar types.
  30994. .SS \fByaml_squote\fP
  30995. .sp
  30996. Similar to the \fByaml_dquote\fP filter but with single quotes. Note
  30997. that YAML only allows special escapes inside double quotes so
  30998. \fByaml_squote\fP is not nearly as useful (viz. you likely want to
  30999. use \fByaml_encode\fP or \fByaml_dquote\fP).
  31000. .SS \fBto_bool\fP
  31001. .sp
  31002. New in version 2017.7.0.
  31003. .sp
  31004. Returns the logical value of an element.
  31005. .sp
  31006. Example:
  31007. .INDENT 0.0
  31008. .INDENT 3.5
  31009. .sp
  31010. .nf
  31011. .ft C
  31012. {{ \(aqyes\(aq | to_bool }}
  31013. {{ \(aqtrue\(aq | to_bool }}
  31014. {{ 1 | to_bool }}
  31015. {{ \(aqno\(aq | to_bool }}
  31016. .ft P
  31017. .fi
  31018. .UNINDENT
  31019. .UNINDENT
  31020. .sp
  31021. Will be rendered as:
  31022. .INDENT 0.0
  31023. .INDENT 3.5
  31024. .sp
  31025. .nf
  31026. .ft C
  31027. True
  31028. True
  31029. True
  31030. False
  31031. .ft P
  31032. .fi
  31033. .UNINDENT
  31034. .UNINDENT
  31035. .SS \fBexactly_n_true\fP
  31036. .sp
  31037. New in version 2017.7.0.
  31038. .sp
  31039. Tests that exactly N items in an iterable are "truthy" (neither None, False, nor 0).
  31040. .sp
  31041. Example:
  31042. .INDENT 0.0
  31043. .INDENT 3.5
  31044. .sp
  31045. .nf
  31046. .ft C
  31047. {{ [\(aqyes\(aq, 0, False, \(aqTrue\(aq] | exactly_n_true(2) }}
  31048. .ft P
  31049. .fi
  31050. .UNINDENT
  31051. .UNINDENT
  31052. .sp
  31053. Returns:
  31054. .INDENT 0.0
  31055. .INDENT 3.5
  31056. .sp
  31057. .nf
  31058. .ft C
  31059. True
  31060. .ft P
  31061. .fi
  31062. .UNINDENT
  31063. .UNINDENT
  31064. .SS \fBexactly_one_true\fP
  31065. .sp
  31066. New in version 2017.7.0.
  31067. .sp
  31068. Tests that exactly one item in an iterable is "truthy" (neither None, False, nor 0).
  31069. .sp
  31070. Example:
  31071. .INDENT 0.0
  31072. .INDENT 3.5
  31073. .sp
  31074. .nf
  31075. .ft C
  31076. {{ [\(aqyes\(aq, False, 0, None] | exactly_one_true }}
  31077. .ft P
  31078. .fi
  31079. .UNINDENT
  31080. .UNINDENT
  31081. .sp
  31082. Returns:
  31083. .INDENT 0.0
  31084. .INDENT 3.5
  31085. .sp
  31086. .nf
  31087. .ft C
  31088. True
  31089. .ft P
  31090. .fi
  31091. .UNINDENT
  31092. .UNINDENT
  31093. .SS \fBquote\fP
  31094. .sp
  31095. New in version 2017.7.0.
  31096. .sp
  31097. This text will be wrapped in quotes.
  31098. .SS \fBregex_search\fP
  31099. .sp
  31100. New in version 2017.7.0.
  31101. .sp
  31102. Scan through string looking for a location where this regular expression
  31103. produces a match. Returns \fBNone\fP in case there were no matches found
  31104. .sp
  31105. Example:
  31106. .INDENT 0.0
  31107. .INDENT 3.5
  31108. .sp
  31109. .nf
  31110. .ft C
  31111. {{ \(aqabcdefabcdef\(aq | regex_search(\(aqBC(.*)\(aq, ignorecase=True) }}
  31112. .ft P
  31113. .fi
  31114. .UNINDENT
  31115. .UNINDENT
  31116. .sp
  31117. Returns:
  31118. .INDENT 0.0
  31119. .INDENT 3.5
  31120. .sp
  31121. .nf
  31122. .ft C
  31123. ("defabcdef",)
  31124. .ft P
  31125. .fi
  31126. .UNINDENT
  31127. .UNINDENT
  31128. .SS \fBregex_match\fP
  31129. .sp
  31130. New in version 2017.7.0.
  31131. .sp
  31132. If zero or more characters at the beginning of string match this regular
  31133. expression, otherwise returns \fBNone\fP\&.
  31134. .sp
  31135. Example:
  31136. .INDENT 0.0
  31137. .INDENT 3.5
  31138. .sp
  31139. .nf
  31140. .ft C
  31141. {{ \(aqabcdefabcdef\(aq | regex_match(\(aqBC(.*)\(aq, ignorecase=True) }}
  31142. .ft P
  31143. .fi
  31144. .UNINDENT
  31145. .UNINDENT
  31146. .sp
  31147. Returns:
  31148. .INDENT 0.0
  31149. .INDENT 3.5
  31150. .sp
  31151. .nf
  31152. .ft C
  31153. None
  31154. .ft P
  31155. .fi
  31156. .UNINDENT
  31157. .UNINDENT
  31158. .SS \fBregex_replace\fP
  31159. .sp
  31160. New in version 2017.7.0.
  31161. .sp
  31162. Searches for a pattern and replaces with a sequence of characters.
  31163. .sp
  31164. Example:
  31165. .INDENT 0.0
  31166. .INDENT 3.5
  31167. .sp
  31168. .nf
  31169. .ft C
  31170. {% set my_text = \(aqyes, this is a TEST\(aq %}
  31171. {{ my_text | regex_replace(\(aq ([a\-z])\(aq, \(aq__\e\e1\(aq, ignorecase=True) }}
  31172. .ft P
  31173. .fi
  31174. .UNINDENT
  31175. .UNINDENT
  31176. .sp
  31177. Returns:
  31178. .INDENT 0.0
  31179. .INDENT 3.5
  31180. .sp
  31181. .nf
  31182. .ft C
  31183. yes,__this__is__a__TEST
  31184. .ft P
  31185. .fi
  31186. .UNINDENT
  31187. .UNINDENT
  31188. .SS \fBuuid\fP
  31189. .sp
  31190. New in version 2017.7.0.
  31191. .sp
  31192. Return a UUID.
  31193. .sp
  31194. Example:
  31195. .INDENT 0.0
  31196. .INDENT 3.5
  31197. .sp
  31198. .nf
  31199. .ft C
  31200. {{ \(aqrandom\(aq | uuid }}
  31201. .ft P
  31202. .fi
  31203. .UNINDENT
  31204. .UNINDENT
  31205. .sp
  31206. Returns:
  31207. .INDENT 0.0
  31208. .INDENT 3.5
  31209. .sp
  31210. .nf
  31211. .ft C
  31212. 3652b285\-26ad\-588e\-a5dc\-c2ee65edc804
  31213. .ft P
  31214. .fi
  31215. .UNINDENT
  31216. .UNINDENT
  31217. .SS \fBis_list\fP
  31218. .sp
  31219. New in version 2017.7.0.
  31220. .sp
  31221. Return if an object is list.
  31222. .sp
  31223. Example:
  31224. .INDENT 0.0
  31225. .INDENT 3.5
  31226. .sp
  31227. .nf
  31228. .ft C
  31229. {{ [1, 2, 3] | is_list }}
  31230. .ft P
  31231. .fi
  31232. .UNINDENT
  31233. .UNINDENT
  31234. .sp
  31235. Returns:
  31236. .INDENT 0.0
  31237. .INDENT 3.5
  31238. .sp
  31239. .nf
  31240. .ft C
  31241. True
  31242. .ft P
  31243. .fi
  31244. .UNINDENT
  31245. .UNINDENT
  31246. .SS \fBis_iter\fP
  31247. .sp
  31248. New in version 2017.7.0.
  31249. .sp
  31250. Return if an object is iterable.
  31251. .sp
  31252. Example:
  31253. .INDENT 0.0
  31254. .INDENT 3.5
  31255. .sp
  31256. .nf
  31257. .ft C
  31258. {{ [1, 2, 3] | is_iter }}
  31259. .ft P
  31260. .fi
  31261. .UNINDENT
  31262. .UNINDENT
  31263. .sp
  31264. Returns:
  31265. .INDENT 0.0
  31266. .INDENT 3.5
  31267. .sp
  31268. .nf
  31269. .ft C
  31270. True
  31271. .ft P
  31272. .fi
  31273. .UNINDENT
  31274. .UNINDENT
  31275. .SS \fBmin\fP
  31276. .sp
  31277. New in version 2017.7.0.
  31278. .sp
  31279. Return the minimum value from a list.
  31280. .sp
  31281. Example:
  31282. .INDENT 0.0
  31283. .INDENT 3.5
  31284. .sp
  31285. .nf
  31286. .ft C
  31287. {{ [1, 2, 3] | min }}
  31288. .ft P
  31289. .fi
  31290. .UNINDENT
  31291. .UNINDENT
  31292. .sp
  31293. Returns:
  31294. .INDENT 0.0
  31295. .INDENT 3.5
  31296. .sp
  31297. .nf
  31298. .ft C
  31299. 1
  31300. .ft P
  31301. .fi
  31302. .UNINDENT
  31303. .UNINDENT
  31304. .SS \fBmax\fP
  31305. .sp
  31306. New in version 2017.7.0.
  31307. .sp
  31308. Returns the maximum value from a list.
  31309. .sp
  31310. Example:
  31311. .INDENT 0.0
  31312. .INDENT 3.5
  31313. .sp
  31314. .nf
  31315. .ft C
  31316. {{ [1, 2, 3] | max }}
  31317. .ft P
  31318. .fi
  31319. .UNINDENT
  31320. .UNINDENT
  31321. .sp
  31322. Returns:
  31323. .INDENT 0.0
  31324. .INDENT 3.5
  31325. .sp
  31326. .nf
  31327. .ft C
  31328. 3
  31329. .ft P
  31330. .fi
  31331. .UNINDENT
  31332. .UNINDENT
  31333. .SS \fBavg\fP
  31334. .sp
  31335. New in version 2017.7.0.
  31336. .sp
  31337. Returns the average value of the elements of a list
  31338. .sp
  31339. Example:
  31340. .INDENT 0.0
  31341. .INDENT 3.5
  31342. .sp
  31343. .nf
  31344. .ft C
  31345. {{ [1, 2, 3] | avg }}
  31346. .ft P
  31347. .fi
  31348. .UNINDENT
  31349. .UNINDENT
  31350. .sp
  31351. Returns:
  31352. .INDENT 0.0
  31353. .INDENT 3.5
  31354. .sp
  31355. .nf
  31356. .ft C
  31357. 2
  31358. .ft P
  31359. .fi
  31360. .UNINDENT
  31361. .UNINDENT
  31362. .SS \fBunion\fP
  31363. .sp
  31364. New in version 2017.7.0.
  31365. .sp
  31366. Return the union of two lists.
  31367. .sp
  31368. Example:
  31369. .INDENT 0.0
  31370. .INDENT 3.5
  31371. .sp
  31372. .nf
  31373. .ft C
  31374. {{ [1, 2, 3] | union([2, 3, 4]) | join(\(aq, \(aq) }}
  31375. .ft P
  31376. .fi
  31377. .UNINDENT
  31378. .UNINDENT
  31379. .sp
  31380. Returns:
  31381. .INDENT 0.0
  31382. .INDENT 3.5
  31383. .sp
  31384. .nf
  31385. .ft C
  31386. 1, 2, 3, 4
  31387. .ft P
  31388. .fi
  31389. .UNINDENT
  31390. .UNINDENT
  31391. .SS \fBintersect\fP
  31392. .sp
  31393. New in version 2017.7.0.
  31394. .sp
  31395. Return the intersection of two lists.
  31396. .sp
  31397. Example:
  31398. .INDENT 0.0
  31399. .INDENT 3.5
  31400. .sp
  31401. .nf
  31402. .ft C
  31403. {{ [1, 2, 3] | intersect([2, 3, 4]) | join(\(aq, \(aq) }}
  31404. .ft P
  31405. .fi
  31406. .UNINDENT
  31407. .UNINDENT
  31408. .sp
  31409. Returns:
  31410. .INDENT 0.0
  31411. .INDENT 3.5
  31412. .sp
  31413. .nf
  31414. .ft C
  31415. 2, 3
  31416. .ft P
  31417. .fi
  31418. .UNINDENT
  31419. .UNINDENT
  31420. .SS \fBdifference\fP
  31421. .sp
  31422. New in version 2017.7.0.
  31423. .sp
  31424. Return the difference of two lists.
  31425. .sp
  31426. Example:
  31427. .INDENT 0.0
  31428. .INDENT 3.5
  31429. .sp
  31430. .nf
  31431. .ft C
  31432. {{ [1, 2, 3] | difference([2, 3, 4]) | join(\(aq, \(aq) }}
  31433. .ft P
  31434. .fi
  31435. .UNINDENT
  31436. .UNINDENT
  31437. .sp
  31438. Returns:
  31439. .INDENT 0.0
  31440. .INDENT 3.5
  31441. .sp
  31442. .nf
  31443. .ft C
  31444. 1
  31445. .ft P
  31446. .fi
  31447. .UNINDENT
  31448. .UNINDENT
  31449. .SS \fBsymmetric_difference\fP
  31450. .sp
  31451. New in version 2017.7.0.
  31452. .sp
  31453. Return the symmetric difference of two lists.
  31454. .sp
  31455. Example:
  31456. .INDENT 0.0
  31457. .INDENT 3.5
  31458. .sp
  31459. .nf
  31460. .ft C
  31461. {{ [1, 2, 3] | symmetric_difference([2, 3, 4]) | join(\(aq, \(aq) }}
  31462. .ft P
  31463. .fi
  31464. .UNINDENT
  31465. .UNINDENT
  31466. .sp
  31467. Returns:
  31468. .INDENT 0.0
  31469. .INDENT 3.5
  31470. .sp
  31471. .nf
  31472. .ft C
  31473. 1, 4
  31474. .ft P
  31475. .fi
  31476. .UNINDENT
  31477. .UNINDENT
  31478. .SS \fBmethod_call\fP
  31479. .sp
  31480. New in version 3001.
  31481. .sp
  31482. Returns a result of object\(aqs method call.
  31483. .sp
  31484. Example #1:
  31485. .INDENT 0.0
  31486. .INDENT 3.5
  31487. .sp
  31488. .nf
  31489. .ft C
  31490. {{ [1, 2, 1, 3, 4] | method_call(\(aqindex\(aq, 1, 1, 3) }}
  31491. .ft P
  31492. .fi
  31493. .UNINDENT
  31494. .UNINDENT
  31495. .sp
  31496. Returns:
  31497. .INDENT 0.0
  31498. .INDENT 3.5
  31499. .sp
  31500. .nf
  31501. .ft C
  31502. 2
  31503. .ft P
  31504. .fi
  31505. .UNINDENT
  31506. .UNINDENT
  31507. .sp
  31508. This filter can be used with the \fI\%map filter\fP to apply object methods without
  31509. using loop constructs or temporary variables.
  31510. .sp
  31511. Example #2:
  31512. .INDENT 0.0
  31513. .INDENT 3.5
  31514. .sp
  31515. .nf
  31516. .ft C
  31517. {% set host_list = [\(aqweb01.example.com\(aq, \(aqdb01.example.com\(aq] %}
  31518. {% set host_list_split = [] %}
  31519. {% for item in host_list %}
  31520. {% do host_list_split.append(item.split(\(aq.\(aq, 1)) %}
  31521. {% endfor %}
  31522. {{ host_list_split }}
  31523. .ft P
  31524. .fi
  31525. .UNINDENT
  31526. .UNINDENT
  31527. .sp
  31528. Example #3:
  31529. .INDENT 0.0
  31530. .INDENT 3.5
  31531. .sp
  31532. .nf
  31533. .ft C
  31534. {{ host_list|map(\(aqmethod_call\(aq, \(aqsplit\(aq, \(aq.\(aq, 1)|list }}
  31535. .ft P
  31536. .fi
  31537. .UNINDENT
  31538. .UNINDENT
  31539. .sp
  31540. Return of examples #2 and #3:
  31541. .INDENT 0.0
  31542. .INDENT 3.5
  31543. .sp
  31544. .nf
  31545. .ft C
  31546. [[web01, example.com], [db01, example.com]]
  31547. .ft P
  31548. .fi
  31549. .UNINDENT
  31550. .UNINDENT
  31551. .SS \fBis_sorted\fP
  31552. .sp
  31553. New in version 2017.7.0.
  31554. .sp
  31555. Return \fBTrue\fP if an iterable object is already sorted.
  31556. .sp
  31557. Example:
  31558. .INDENT 0.0
  31559. .INDENT 3.5
  31560. .sp
  31561. .nf
  31562. .ft C
  31563. {{ [1, 2, 3] | is_sorted }}
  31564. .ft P
  31565. .fi
  31566. .UNINDENT
  31567. .UNINDENT
  31568. .sp
  31569. Returns:
  31570. .INDENT 0.0
  31571. .INDENT 3.5
  31572. .sp
  31573. .nf
  31574. .ft C
  31575. True
  31576. .ft P
  31577. .fi
  31578. .UNINDENT
  31579. .UNINDENT
  31580. .SS \fBcompare_lists\fP
  31581. .sp
  31582. New in version 2017.7.0.
  31583. .sp
  31584. Compare two lists and return a dictionary with the changes.
  31585. .sp
  31586. Example:
  31587. .INDENT 0.0
  31588. .INDENT 3.5
  31589. .sp
  31590. .nf
  31591. .ft C
  31592. {{ [1, 2, 3] | compare_lists([1, 2, 4]) }}
  31593. .ft P
  31594. .fi
  31595. .UNINDENT
  31596. .UNINDENT
  31597. .sp
  31598. Returns:
  31599. .INDENT 0.0
  31600. .INDENT 3.5
  31601. .sp
  31602. .nf
  31603. .ft C
  31604. {"new": [4], "old": [3]}
  31605. .ft P
  31606. .fi
  31607. .UNINDENT
  31608. .UNINDENT
  31609. .SS \fBcompare_dicts\fP
  31610. .sp
  31611. New in version 2017.7.0.
  31612. .sp
  31613. Compare two dictionaries and return a dictionary with the changes.
  31614. .sp
  31615. Example:
  31616. .INDENT 0.0
  31617. .INDENT 3.5
  31618. .sp
  31619. .nf
  31620. .ft C
  31621. {{ {\(aqa\(aq: \(aqb\(aq} | compare_dicts({\(aqa\(aq: \(aqc\(aq}) }}
  31622. .ft P
  31623. .fi
  31624. .UNINDENT
  31625. .UNINDENT
  31626. .sp
  31627. Returns:
  31628. .INDENT 0.0
  31629. .INDENT 3.5
  31630. .sp
  31631. .nf
  31632. .ft C
  31633. {"a": {"new": "c", "old": "b"}}
  31634. .ft P
  31635. .fi
  31636. .UNINDENT
  31637. .UNINDENT
  31638. .SS \fBis_hex\fP
  31639. .sp
  31640. New in version 2017.7.0.
  31641. .sp
  31642. Return \fBTrue\fP if the value is hexadecimal.
  31643. .sp
  31644. Example:
  31645. .INDENT 0.0
  31646. .INDENT 3.5
  31647. .sp
  31648. .nf
  31649. .ft C
  31650. {{ \(aq0xabcd\(aq | is_hex }}
  31651. {{ \(aqxyzt\(aq | is_hex }}
  31652. .ft P
  31653. .fi
  31654. .UNINDENT
  31655. .UNINDENT
  31656. .sp
  31657. Returns:
  31658. .INDENT 0.0
  31659. .INDENT 3.5
  31660. .sp
  31661. .nf
  31662. .ft C
  31663. True
  31664. False
  31665. .ft P
  31666. .fi
  31667. .UNINDENT
  31668. .UNINDENT
  31669. .SS \fBcontains_whitespace\fP
  31670. .sp
  31671. New in version 2017.7.0.
  31672. .sp
  31673. Return \fBTrue\fP if a text contains whitespaces.
  31674. .sp
  31675. Example:
  31676. .INDENT 0.0
  31677. .INDENT 3.5
  31678. .sp
  31679. .nf
  31680. .ft C
  31681. {{ \(aqabcd\(aq | contains_whitespace }}
  31682. {{ \(aqab cd\(aq | contains_whitespace }}
  31683. .ft P
  31684. .fi
  31685. .UNINDENT
  31686. .UNINDENT
  31687. .sp
  31688. Returns:
  31689. .INDENT 0.0
  31690. .INDENT 3.5
  31691. .sp
  31692. .nf
  31693. .ft C
  31694. False
  31695. True
  31696. .ft P
  31697. .fi
  31698. .UNINDENT
  31699. .UNINDENT
  31700. .SS \fBsubstring_in_list\fP
  31701. .sp
  31702. New in version 2017.7.0.
  31703. .sp
  31704. Return \fBTrue\fP if a substring is found in a list of string values.
  31705. .sp
  31706. Example:
  31707. .INDENT 0.0
  31708. .INDENT 3.5
  31709. .sp
  31710. .nf
  31711. .ft C
  31712. {{ \(aqabcd\(aq | substring_in_list([\(aqthis\(aq, \(aqis\(aq, \(aqan abcd example\(aq]) }}
  31713. .ft P
  31714. .fi
  31715. .UNINDENT
  31716. .UNINDENT
  31717. .sp
  31718. Returns:
  31719. .INDENT 0.0
  31720. .INDENT 3.5
  31721. .sp
  31722. .nf
  31723. .ft C
  31724. True
  31725. .ft P
  31726. .fi
  31727. .UNINDENT
  31728. .UNINDENT
  31729. .SS \fBcheck_whitelist_blacklist\fP
  31730. .sp
  31731. New in version 2017.7.0.
  31732. .sp
  31733. Check a whitelist and/or blacklist to see if the value matches it.
  31734. .sp
  31735. This filter can be used with either a whitelist or a blacklist individually,
  31736. or a whitelist and a blacklist can be passed simultaneously.
  31737. .sp
  31738. If whitelist is used alone, value membership is checked against the
  31739. whitelist only. If the value is found, the function returns \fBTrue\fP\&.
  31740. Otherwise, it returns \fBFalse\fP\&.
  31741. .sp
  31742. If blacklist is used alone, value membership is checked against the
  31743. blacklist only. If the value is found, the function returns \fBFalse\fP\&.
  31744. Otherwise, it returns \fBTrue\fP\&.
  31745. .sp
  31746. If both a whitelist and a blacklist are provided, value membership in the
  31747. blacklist will be examined first. If the value is not found in the blacklist,
  31748. then the whitelist is checked. If the value isn\(aqt found in the whitelist,
  31749. the function returns \fBFalse\fP\&.
  31750. .sp
  31751. Whitelist Example:
  31752. .INDENT 0.0
  31753. .INDENT 3.5
  31754. .sp
  31755. .nf
  31756. .ft C
  31757. {{ 5 | check_whitelist_blacklist(whitelist=[5, 6, 7]) }}
  31758. .ft P
  31759. .fi
  31760. .UNINDENT
  31761. .UNINDENT
  31762. .sp
  31763. Returns:
  31764. .INDENT 0.0
  31765. .INDENT 3.5
  31766. .sp
  31767. .nf
  31768. .ft C
  31769. True
  31770. .ft P
  31771. .fi
  31772. .UNINDENT
  31773. .UNINDENT
  31774. .sp
  31775. Blacklist Example:
  31776. .INDENT 0.0
  31777. .INDENT 3.5
  31778. .sp
  31779. .nf
  31780. .ft C
  31781. {{ 5 | check_whitelist_blacklist(blacklist=[5, 6, 7]) }}
  31782. .ft P
  31783. .fi
  31784. .UNINDENT
  31785. .UNINDENT
  31786. .INDENT 0.0
  31787. .INDENT 3.5
  31788. .sp
  31789. .nf
  31790. .ft C
  31791. False
  31792. .ft P
  31793. .fi
  31794. .UNINDENT
  31795. .UNINDENT
  31796. .SS \fBdate_format\fP
  31797. .sp
  31798. New in version 2017.7.0.
  31799. .sp
  31800. Converts unix timestamp into human\-readable string.
  31801. .sp
  31802. Example:
  31803. .INDENT 0.0
  31804. .INDENT 3.5
  31805. .sp
  31806. .nf
  31807. .ft C
  31808. {{ 1457456400 | date_format }}
  31809. {{ 1457456400 | date_format(\(aq%d.%m.%Y %H:%M\(aq) }}
  31810. .ft P
  31811. .fi
  31812. .UNINDENT
  31813. .UNINDENT
  31814. .sp
  31815. Returns:
  31816. .INDENT 0.0
  31817. .INDENT 3.5
  31818. .sp
  31819. .nf
  31820. .ft C
  31821. 2017\-03\-08
  31822. 08.03.2017 17:00
  31823. .ft P
  31824. .fi
  31825. .UNINDENT
  31826. .UNINDENT
  31827. .SS \fBto_num\fP
  31828. .sp
  31829. New in version 2017.7.0.
  31830. .sp
  31831. New in version 2018.3.0: Renamed from \fBstr_to_num\fP to \fBto_num\fP\&.
  31832. .sp
  31833. Converts a string to its numerical value.
  31834. .sp
  31835. Example:
  31836. .INDENT 0.0
  31837. .INDENT 3.5
  31838. .sp
  31839. .nf
  31840. .ft C
  31841. {{ \(aq5\(aq | to_num }}
  31842. .ft P
  31843. .fi
  31844. .UNINDENT
  31845. .UNINDENT
  31846. .sp
  31847. Returns:
  31848. .INDENT 0.0
  31849. .INDENT 3.5
  31850. .sp
  31851. .nf
  31852. .ft C
  31853. 5
  31854. .ft P
  31855. .fi
  31856. .UNINDENT
  31857. .UNINDENT
  31858. .SS \fBto_bytes\fP
  31859. .sp
  31860. New in version 2017.7.0.
  31861. .sp
  31862. Converts string\-type object to bytes.
  31863. .sp
  31864. Example:
  31865. .INDENT 0.0
  31866. .INDENT 3.5
  31867. .sp
  31868. .nf
  31869. .ft C
  31870. {{ \(aqwall of text\(aq | to_bytes }}
  31871. .ft P
  31872. .fi
  31873. .UNINDENT
  31874. .UNINDENT
  31875. .sp
  31876. \fBNOTE:\fP
  31877. .INDENT 0.0
  31878. .INDENT 3.5
  31879. This option may have adverse effects when using the default renderer,
  31880. \fBjinja|yaml\fP\&. This is due to the fact that YAML requires proper handling
  31881. in regard to special characters. Please see the section on YAML ASCII
  31882. support in the YAML Idiosyncracies documentation for more information.
  31883. .UNINDENT
  31884. .UNINDENT
  31885. .SS \fBjson_encode_list\fP
  31886. .sp
  31887. New in version 2017.7.0.
  31888. .sp
  31889. New in version 2018.3.0: Renamed from \fBjson_decode_list\fP to \fBjson_encode_list\fP\&. When you encode
  31890. something you get bytes, and when you decode, you get your locale\(aqs
  31891. encoding (usually a \fBunicode\fP type). This filter was incorrectly\-named
  31892. when it was added. \fBjson_decode_list\fP will be supported until the Aluminium
  31893. release.
  31894. .sp
  31895. Deprecated since version 2018.3.3,2019.2.0: The \fI\%tojson\fP filter accomplishes what this filter was designed
  31896. to do, making this filter redundant.
  31897. .sp
  31898. Recursively encodes all string elements of the list to bytes.
  31899. .sp
  31900. Example:
  31901. .INDENT 0.0
  31902. .INDENT 3.5
  31903. .sp
  31904. .nf
  31905. .ft C
  31906. {{ [1, 2, 3] | json_encode_list }}
  31907. .ft P
  31908. .fi
  31909. .UNINDENT
  31910. .UNINDENT
  31911. .sp
  31912. Returns:
  31913. .INDENT 0.0
  31914. .INDENT 3.5
  31915. .sp
  31916. .nf
  31917. .ft C
  31918. [1, 2, 3]
  31919. .ft P
  31920. .fi
  31921. .UNINDENT
  31922. .UNINDENT
  31923. .SS \fBjson_encode_dict\fP
  31924. .sp
  31925. New in version 2017.7.0.
  31926. .sp
  31927. New in version 2018.3.0: Renamed from \fBjson_decode_dict\fP to \fBjson_encode_dict\fP\&. When you encode
  31928. something you get bytes, and when you decode, you get your locale\(aqs
  31929. encoding (usually a \fBunicode\fP type). This filter was incorrectly\-named
  31930. when it was added. \fBjson_decode_dict\fP will be supported until the Aluminium
  31931. release.
  31932. .sp
  31933. Deprecated since version 2018.3.3,2019.2.0: The \fI\%tojson\fP filter accomplishes what this filter was designed
  31934. to do, making this filter redundant.
  31935. .sp
  31936. Recursively encodes all string items in the dictionary to bytes.
  31937. .sp
  31938. Example:
  31939. .sp
  31940. Assuming that \fBpillar[\(aqfoo\(aq]\fP contains \fB{u\(aqa\(aq: u\(aq\eu0414\(aq}\fP, and your locale
  31941. is \fBen_US.UTF\-8\fP:
  31942. .INDENT 0.0
  31943. .INDENT 3.5
  31944. .sp
  31945. .nf
  31946. .ft C
  31947. {{ pillar[\(aqfoo\(aq] | json_encode_dict }}
  31948. .ft P
  31949. .fi
  31950. .UNINDENT
  31951. .UNINDENT
  31952. .sp
  31953. Returns:
  31954. .INDENT 0.0
  31955. .INDENT 3.5
  31956. .sp
  31957. .nf
  31958. .ft C
  31959. {"a": "\exd0\ex94"}
  31960. .ft P
  31961. .fi
  31962. .UNINDENT
  31963. .UNINDENT
  31964. .SS \fBtojson\fP
  31965. .sp
  31966. New in version 2018.3.3,2019.2.0.
  31967. .sp
  31968. Dumps a data structure to JSON.
  31969. .sp
  31970. This filter was added to provide this functionality to hosts which have a
  31971. Jinja release older than version 2.9 installed. If Jinja 2.9 or newer is
  31972. installed, then the upstream version of the filter will be used. See the
  31973. \fI\%upstream docs\fP for more information.
  31974. .SS \fBrandom_hash\fP
  31975. .sp
  31976. New in version 2017.7.0.
  31977. .sp
  31978. New in version 2018.3.0: Renamed from \fBrand_str\fP to \fBrandom_hash\fP to more accurately describe
  31979. what the filter does. \fBrand_str\fP will be supported to ensure backwards
  31980. compatibility but please use the preferred \fBrandom_hash\fP\&.
  31981. .sp
  31982. Generates a random number between 1 and the number passed to the filter, and
  31983. then hashes it. The default hash type is the one specified by the minion\(aqs
  31984. \fBhash_type\fP config option, but an alternate hash type can be
  31985. passed to the filter as an argument.
  31986. .sp
  31987. Example:
  31988. .INDENT 0.0
  31989. .INDENT 3.5
  31990. .sp
  31991. .nf
  31992. .ft C
  31993. {% set num_range = 99999999 %}
  31994. {{ num_range | random_hash }}
  31995. {{ num_range | random_hash(\(aqsha512\(aq) }}
  31996. .ft P
  31997. .fi
  31998. .UNINDENT
  31999. .UNINDENT
  32000. .sp
  32001. Returns:
  32002. .INDENT 0.0
  32003. .INDENT 3.5
  32004. .sp
  32005. .nf
  32006. .ft C
  32007. 43ec517d68b6edd3015b3edc9a11367b
  32008. d94a45acd81f8e3107d237dbc0d5d195f6a52a0d188bc0284c0763ece1eac9f9496fb6a531a296074c87b3540398dace1222b42e150e67c9301383fde3d66ae5
  32009. .ft P
  32010. .fi
  32011. .UNINDENT
  32012. .UNINDENT
  32013. .SS \fBset_dict_key_value\fP
  32014. .sp
  32015. \&..versionadded:: 3000
  32016. .sp
  32017. Allows you to set a value in a nested dictionary without having to worry if all the nested keys actually exist.
  32018. Missing keys will be automatically created if they do not exist.
  32019. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  32020. .sp
  32021. Examples:
  32022. .INDENT 0.0
  32023. .INDENT 3.5
  32024. .sp
  32025. .nf
  32026. .ft C
  32027. .ft P
  32028. .fi
  32029. .UNINDENT
  32030. .UNINDENT
  32031. .INDENT 0.0
  32032. .TP
  32033. .B Example 1:
  32034. {%\- set foo = {} %}
  32035. {{ foo | set_dict_key_value(\(aqbar:baz\(aq, 42) }}
  32036. .TP
  32037. .B Example 2:
  32038. {{ {} | set_dict_key_value(\(aqbar.baz.qux\(aq, 42, delimiter=\(aq.\(aq) }}
  32039. .UNINDENT
  32040. .sp
  32041. Returns:
  32042. .INDENT 0.0
  32043. .INDENT 3.5
  32044. .sp
  32045. .nf
  32046. .ft C
  32047. .ft P
  32048. .fi
  32049. .UNINDENT
  32050. .UNINDENT
  32051. .INDENT 0.0
  32052. .TP
  32053. .B Example 1:
  32054. {\(aqbar\(aq: {\(aqbaz\(aq: 42}}
  32055. .TP
  32056. .B Example 2:
  32057. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 42}}}
  32058. .UNINDENT
  32059. .SS \fBappend_dict_key_value\fP
  32060. .sp
  32061. \&..versionadded:: 3000
  32062. .sp
  32063. 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.
  32064. Missing keys will automatically be created if they do not exist.
  32065. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  32066. .sp
  32067. Examples:
  32068. .INDENT 0.0
  32069. .INDENT 3.5
  32070. .sp
  32071. .nf
  32072. .ft C
  32073. .ft P
  32074. .fi
  32075. .UNINDENT
  32076. .UNINDENT
  32077. .INDENT 0.0
  32078. .TP
  32079. .B Example 1:
  32080. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2]}} %}
  32081. {{ foo | append_dict_key_value(\(aqbar:baz\(aq, 42) }}
  32082. .TP
  32083. .B Example 2:
  32084. {%\- set foo = {} %}
  32085. {{ foo | append_dict_key_value(\(aqbar:baz:qux\(aq, 42) }}
  32086. .UNINDENT
  32087. .sp
  32088. Returns:
  32089. .INDENT 0.0
  32090. .INDENT 3.5
  32091. .sp
  32092. .nf
  32093. .ft C
  32094. .ft P
  32095. .fi
  32096. .UNINDENT
  32097. .UNINDENT
  32098. .INDENT 0.0
  32099. .TP
  32100. .B Example 1:
  32101. {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2, 42]}}
  32102. .TP
  32103. .B Example 2:
  32104. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: [42]}}}
  32105. .UNINDENT
  32106. .SS \fBextend_dict_key_value\fP
  32107. .sp
  32108. \&..versionadded:: 3000
  32109. .sp
  32110. 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.
  32111. Missing keys will automatically be created if they do not exist.
  32112. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  32113. .sp
  32114. Examples:
  32115. .INDENT 0.0
  32116. .INDENT 3.5
  32117. .sp
  32118. .nf
  32119. .ft C
  32120. .ft P
  32121. .fi
  32122. .UNINDENT
  32123. .UNINDENT
  32124. .INDENT 0.0
  32125. .TP
  32126. .B Example 1:
  32127. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2]}} %}
  32128. {{ foo | extend_dict_key_value(\(aqbar:baz\(aq, [42, 42]) }}
  32129. .TP
  32130. .B Example 2:
  32131. {{ {} | extend_dict_key_value(\(aqbar:baz:qux\(aq, [42]) }}
  32132. .UNINDENT
  32133. .sp
  32134. Returns:
  32135. .INDENT 0.0
  32136. .INDENT 3.5
  32137. .sp
  32138. .nf
  32139. .ft C
  32140. .ft P
  32141. .fi
  32142. .UNINDENT
  32143. .UNINDENT
  32144. .INDENT 0.0
  32145. .TP
  32146. .B Example 1:
  32147. {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2, 42, 42]}}
  32148. .TP
  32149. .B Example 2:
  32150. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: [42]}}}
  32151. .UNINDENT
  32152. .SS \fBupdate_dict_key_value\fP
  32153. .sp
  32154. \&..versionadded:: 3000
  32155. .sp
  32156. Allows you to update a dictionary nested (deep) in another dictionary without having to worry if all the nested keys actually exist.
  32157. Missing keys will automatically be created if they do not exist.
  32158. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  32159. .sp
  32160. Examples:
  32161. .INDENT 0.0
  32162. .INDENT 3.5
  32163. .sp
  32164. .nf
  32165. .ft C
  32166. .ft P
  32167. .fi
  32168. .UNINDENT
  32169. .UNINDENT
  32170. .INDENT 0.0
  32171. .TP
  32172. .B Example 1:
  32173. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 1}}} %}
  32174. {{ foo | update_dict_key_value(\(aqbar:baz\(aq, {\(aqquux\(aq: 3}) }}
  32175. .TP
  32176. .B Example 2:
  32177. {{ {} | update_dict_key_value(\(aqbar:baz:qux\(aq, {\(aqquux\(aq: 3}) }}
  32178. .UNINDENT
  32179. .INDENT 0.0
  32180. .INDENT 3.5
  32181. .sp
  32182. .nf
  32183. .ft C
  32184. .ft P
  32185. .fi
  32186. .UNINDENT
  32187. .UNINDENT
  32188. .INDENT 0.0
  32189. .TP
  32190. .B Example 1:
  32191. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 1, \(aqquux\(aq: 3}}}
  32192. .TP
  32193. .B Example 2:
  32194. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: {\(aqquux\(aq: 3}}}}
  32195. .UNINDENT
  32196. .SS \fBmd5\fP
  32197. .sp
  32198. New in version 2017.7.0.
  32199. .sp
  32200. Return the md5 digest of a string.
  32201. .sp
  32202. Example:
  32203. .INDENT 0.0
  32204. .INDENT 3.5
  32205. .sp
  32206. .nf
  32207. .ft C
  32208. {{ \(aqrandom\(aq | md5 }}
  32209. .ft P
  32210. .fi
  32211. .UNINDENT
  32212. .UNINDENT
  32213. .sp
  32214. Returns:
  32215. .INDENT 0.0
  32216. .INDENT 3.5
  32217. .sp
  32218. .nf
  32219. .ft C
  32220. 7ddf32e17a6ac5ce04a8ecbf782ca509
  32221. .ft P
  32222. .fi
  32223. .UNINDENT
  32224. .UNINDENT
  32225. .SS \fBsha256\fP
  32226. .sp
  32227. New in version 2017.7.0.
  32228. .sp
  32229. Return the sha256 digest of a string.
  32230. .sp
  32231. Example:
  32232. .INDENT 0.0
  32233. .INDENT 3.5
  32234. .sp
  32235. .nf
  32236. .ft C
  32237. {{ \(aqrandom\(aq | sha256 }}
  32238. .ft P
  32239. .fi
  32240. .UNINDENT
  32241. .UNINDENT
  32242. .sp
  32243. Returns:
  32244. .INDENT 0.0
  32245. .INDENT 3.5
  32246. .sp
  32247. .nf
  32248. .ft C
  32249. a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11
  32250. .ft P
  32251. .fi
  32252. .UNINDENT
  32253. .UNINDENT
  32254. .SS \fBsha512\fP
  32255. .sp
  32256. New in version 2017.7.0.
  32257. .sp
  32258. Return the sha512 digest of a string.
  32259. .sp
  32260. Example:
  32261. .INDENT 0.0
  32262. .INDENT 3.5
  32263. .sp
  32264. .nf
  32265. .ft C
  32266. {{ \(aqrandom\(aq | sha512 }}
  32267. .ft P
  32268. .fi
  32269. .UNINDENT
  32270. .UNINDENT
  32271. .sp
  32272. Returns:
  32273. .INDENT 0.0
  32274. .INDENT 3.5
  32275. .sp
  32276. .nf
  32277. .ft C
  32278. 811a90e1c8e86c7b4c0eef5b2c0bf0ec1b19c4b1b5a242e6455be93787cb473cb7bc9b0fdeb960d00d5c6881c2094dd63c5c900ce9057255e2a4e271fc25fef1
  32279. .ft P
  32280. .fi
  32281. .UNINDENT
  32282. .UNINDENT
  32283. .SS \fBbase64_encode\fP
  32284. .sp
  32285. New in version 2017.7.0.
  32286. .sp
  32287. Encode a string as base64.
  32288. .sp
  32289. Example:
  32290. .INDENT 0.0
  32291. .INDENT 3.5
  32292. .sp
  32293. .nf
  32294. .ft C
  32295. {{ \(aqrandom\(aq | base64_encode }}
  32296. .ft P
  32297. .fi
  32298. .UNINDENT
  32299. .UNINDENT
  32300. .sp
  32301. Returns:
  32302. .INDENT 0.0
  32303. .INDENT 3.5
  32304. .sp
  32305. .nf
  32306. .ft C
  32307. cmFuZG9t
  32308. .ft P
  32309. .fi
  32310. .UNINDENT
  32311. .UNINDENT
  32312. .SS \fBbase64_decode\fP
  32313. .sp
  32314. New in version 2017.7.0.
  32315. .sp
  32316. Decode a base64\-encoded string.
  32317. .INDENT 0.0
  32318. .INDENT 3.5
  32319. .sp
  32320. .nf
  32321. .ft C
  32322. {{ \(aqZ2V0IHNhbHRlZA==\(aq | base64_decode }}
  32323. .ft P
  32324. .fi
  32325. .UNINDENT
  32326. .UNINDENT
  32327. .sp
  32328. Returns:
  32329. .INDENT 0.0
  32330. .INDENT 3.5
  32331. .sp
  32332. .nf
  32333. .ft C
  32334. get salted
  32335. .ft P
  32336. .fi
  32337. .UNINDENT
  32338. .UNINDENT
  32339. .SS \fBhmac\fP
  32340. .sp
  32341. New in version 2017.7.0.
  32342. .sp
  32343. Verify a challenging hmac signature against a string / shared\-secret. Returns
  32344. a boolean value.
  32345. .sp
  32346. Example:
  32347. .INDENT 0.0
  32348. .INDENT 3.5
  32349. .sp
  32350. .nf
  32351. .ft C
  32352. {{ \(aqget salted\(aq | hmac(\(aqshared secret\(aq, \(aqeBWf9bstXg+NiP5AOwppB5HMvZiYMPzEM9W5YMm/AmQ=\(aq) }}
  32353. .ft P
  32354. .fi
  32355. .UNINDENT
  32356. .UNINDENT
  32357. .sp
  32358. Returns:
  32359. .INDENT 0.0
  32360. .INDENT 3.5
  32361. .sp
  32362. .nf
  32363. .ft C
  32364. True
  32365. .ft P
  32366. .fi
  32367. .UNINDENT
  32368. .UNINDENT
  32369. .SS \fBhttp_query\fP
  32370. .sp
  32371. New in version 2017.7.0.
  32372. .sp
  32373. Return the HTTP reply object from a URL.
  32374. .sp
  32375. Example:
  32376. .INDENT 0.0
  32377. .INDENT 3.5
  32378. .sp
  32379. .nf
  32380. .ft C
  32381. {{ \(aqhttp://jsonplaceholder.typicode.com/posts/1\(aq | http_query }}
  32382. .ft P
  32383. .fi
  32384. .UNINDENT
  32385. .UNINDENT
  32386. .sp
  32387. Returns:
  32388. .INDENT 0.0
  32389. .INDENT 3.5
  32390. .sp
  32391. .nf
  32392. .ft C
  32393. {
  32394. \(aqbody\(aq: \(aq{
  32395. "userId": 1,
  32396. "id": 1,
  32397. "title": "sunt aut facere repellat provident occaecati excepturi option reprehenderit",
  32398. "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"
  32399. }\(aq
  32400. }
  32401. .ft P
  32402. .fi
  32403. .UNINDENT
  32404. .UNINDENT
  32405. .SS \fBtraverse\fP
  32406. .sp
  32407. New in version 2018.3.3.
  32408. .sp
  32409. Traverse a dict or list using a colon\-delimited target string.
  32410. The target \(aqfoo:bar:0\(aq will return data[\(aqfoo\(aq][\(aqbar\(aq][0] if this value exists,
  32411. and will otherwise return the provided default value.
  32412. .sp
  32413. Example:
  32414. .INDENT 0.0
  32415. .INDENT 3.5
  32416. .sp
  32417. .nf
  32418. .ft C
  32419. {{ {\(aqa1\(aq: {\(aqb1\(aq: {\(aqc1\(aq: \(aqfoo\(aq}}, \(aqa2\(aq: \(aqbar\(aq} | traverse(\(aqa1:b1\(aq, \(aqdefault\(aq) }}
  32420. .ft P
  32421. .fi
  32422. .UNINDENT
  32423. .UNINDENT
  32424. .sp
  32425. Returns:
  32426. .INDENT 0.0
  32427. .INDENT 3.5
  32428. .sp
  32429. .nf
  32430. .ft C
  32431. {"c1": "foo"}
  32432. .ft P
  32433. .fi
  32434. .UNINDENT
  32435. .UNINDENT
  32436. .INDENT 0.0
  32437. .INDENT 3.5
  32438. .sp
  32439. .nf
  32440. .ft C
  32441. {{ {\(aqa1\(aq: {\(aqb1\(aq: {\(aqc1\(aq: \(aqfoo\(aq}}, \(aqa2\(aq: \(aqbar\(aq} | traverse(\(aqa2:b2\(aq, \(aqdefault\(aq) }}
  32442. .ft P
  32443. .fi
  32444. .UNINDENT
  32445. .UNINDENT
  32446. .sp
  32447. Returns:
  32448. .INDENT 0.0
  32449. .INDENT 3.5
  32450. .sp
  32451. .nf
  32452. .ft C
  32453. "default"
  32454. .ft P
  32455. .fi
  32456. .UNINDENT
  32457. .UNINDENT
  32458. .SS \fBjson_query\fP
  32459. .sp
  32460. New in version 3000.
  32461. .sp
  32462. A port of Ansible \fBjson_query\fP Jinja filter to make queries against JSON data using \fI\%JMESPath language\fP\&.
  32463. Could be used to filter \fBpillar\fP data, \fByaml\fP maps, and together with \fI\%http_query\fP\&.
  32464. Depends on the \fI\%jmespath\fP Python module.
  32465. .sp
  32466. Examples:
  32467. .INDENT 0.0
  32468. .INDENT 3.5
  32469. .sp
  32470. .nf
  32471. .ft C
  32472. Example 1: {{ [1, 2, 3, 4, [5, 6]] | json_query(\(aq[]\(aq) }}
  32473. Example 2: {{
  32474. {"machines": [
  32475. {"name": "a", "state": "running"},
  32476. {"name": "b", "state": "stopped"},
  32477. {"name": "c", "state": "running"}
  32478. ]} | json_query("machines[?state==\(aqrunning\(aq].name") }}
  32479. Example 3: {{
  32480. {"services": [
  32481. {"name": "http", "host": "1.2.3.4", "port": 80},
  32482. {"name": "smtp", "host": "1.2.3.5", "port": 25},
  32483. {"name": "ssh", "host": "1.2.3.6", "port": 22},
  32484. ]} | json_query("services[].port") }}
  32485. .ft P
  32486. .fi
  32487. .UNINDENT
  32488. .UNINDENT
  32489. .sp
  32490. Returns:
  32491. .INDENT 0.0
  32492. .INDENT 3.5
  32493. .sp
  32494. .nf
  32495. .ft C
  32496. Example 1: [1, 2, 3, 4, 5, 6]
  32497. Example 2: [\(aqa\(aq, \(aqc\(aq]
  32498. Example 3: [80, 25, 22]
  32499. .ft P
  32500. .fi
  32501. .UNINDENT
  32502. .UNINDENT
  32503. .SS \fBto_snake_case\fP
  32504. .sp
  32505. New in version 3000.
  32506. .sp
  32507. Converts a string from camelCase (or CamelCase) to snake_case.
  32508. .INDENT 0.0
  32509. .INDENT 3.5
  32510. .sp
  32511. .nf
  32512. .ft C
  32513. Example: {{ camelsWillLoveThis | to_snake_case }}
  32514. .ft P
  32515. .fi
  32516. .UNINDENT
  32517. .UNINDENT
  32518. .sp
  32519. Returns:
  32520. .INDENT 0.0
  32521. .INDENT 3.5
  32522. .sp
  32523. .nf
  32524. .ft C
  32525. Example: camels_will_love_this
  32526. .ft P
  32527. .fi
  32528. .UNINDENT
  32529. .UNINDENT
  32530. .SS \fBto_camelcase\fP
  32531. .sp
  32532. New in version 3000.
  32533. .sp
  32534. Converts a string from snake_case to camelCase (or UpperCamelCase if so indicated).
  32535. .INDENT 0.0
  32536. .INDENT 3.5
  32537. .sp
  32538. .nf
  32539. .ft C
  32540. Example 1: {{ snake_case_for_the_win | to_camelcase }}
  32541. Example 2: {{ snake_case_for_the_win | to_camelcase(uppercamel=True) }}
  32542. .ft P
  32543. .fi
  32544. .UNINDENT
  32545. .UNINDENT
  32546. .sp
  32547. Returns:
  32548. .INDENT 0.0
  32549. .INDENT 3.5
  32550. .sp
  32551. .nf
  32552. .ft C
  32553. Example 1: snakeCaseForTheWin
  32554. Example 2: SnakeCaseForTheWin
  32555. .ft P
  32556. .fi
  32557. .UNINDENT
  32558. .UNINDENT
  32559. .SS Networking Filters
  32560. .sp
  32561. The following networking\-related filters are supported:
  32562. .SS \fBis_ip\fP
  32563. .sp
  32564. New in version 2017.7.0.
  32565. .sp
  32566. Return if a string is a valid IP Address.
  32567. .INDENT 0.0
  32568. .INDENT 3.5
  32569. .sp
  32570. .nf
  32571. .ft C
  32572. {{ \(aq192.168.0.1\(aq | is_ip }}
  32573. .ft P
  32574. .fi
  32575. .UNINDENT
  32576. .UNINDENT
  32577. .sp
  32578. Additionally accepts the following options:
  32579. .INDENT 0.0
  32580. .IP \(bu 2
  32581. global
  32582. .IP \(bu 2
  32583. link\-local
  32584. .IP \(bu 2
  32585. loopback
  32586. .IP \(bu 2
  32587. multicast
  32588. .IP \(bu 2
  32589. private
  32590. .IP \(bu 2
  32591. public
  32592. .IP \(bu 2
  32593. reserved
  32594. .IP \(bu 2
  32595. site\-local
  32596. .IP \(bu 2
  32597. unspecified
  32598. .UNINDENT
  32599. .sp
  32600. Example \- test if a string is a valid loopback IP address.
  32601. .INDENT 0.0
  32602. .INDENT 3.5
  32603. .sp
  32604. .nf
  32605. .ft C
  32606. {{ \(aq192.168.0.1\(aq | is_ip(options=\(aqloopback\(aq) }}
  32607. .ft P
  32608. .fi
  32609. .UNINDENT
  32610. .UNINDENT
  32611. .SS \fBis_ipv4\fP
  32612. .sp
  32613. New in version 2017.7.0.
  32614. .sp
  32615. Returns if a string is a valid IPv4 address. Supports the same options
  32616. as \fBis_ip\fP\&.
  32617. .INDENT 0.0
  32618. .INDENT 3.5
  32619. .sp
  32620. .nf
  32621. .ft C
  32622. {{ \(aq192.168.0.1\(aq | is_ipv4 }}
  32623. .ft P
  32624. .fi
  32625. .UNINDENT
  32626. .UNINDENT
  32627. .SS \fBis_ipv6\fP
  32628. .sp
  32629. New in version 2017.7.0.
  32630. .sp
  32631. Returns if a string is a valid IPv6 address. Supports the same options
  32632. as \fBis_ip\fP\&.
  32633. .INDENT 0.0
  32634. .INDENT 3.5
  32635. .sp
  32636. .nf
  32637. .ft C
  32638. {{ \(aqfe80::\(aq | is_ipv6 }}
  32639. .ft P
  32640. .fi
  32641. .UNINDENT
  32642. .UNINDENT
  32643. .SS \fBipaddr\fP
  32644. .sp
  32645. New in version 2017.7.0.
  32646. .sp
  32647. From a list, returns only valid IP entries. Supports the same options
  32648. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32649. .sp
  32650. Example:
  32651. .INDENT 0.0
  32652. .INDENT 3.5
  32653. .sp
  32654. .nf
  32655. .ft C
  32656. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipaddr }}
  32657. .ft P
  32658. .fi
  32659. .UNINDENT
  32660. .UNINDENT
  32661. .sp
  32662. Returns:
  32663. .INDENT 0.0
  32664. .INDENT 3.5
  32665. .sp
  32666. .nf
  32667. .ft C
  32668. ["192.168.0.1", "fe80::"]
  32669. .ft P
  32670. .fi
  32671. .UNINDENT
  32672. .UNINDENT
  32673. .SS \fBipv4\fP
  32674. .sp
  32675. New in version 2017.7.0.
  32676. .sp
  32677. From a list, returns only valid IPv4 entries. Supports the same options
  32678. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32679. .sp
  32680. Example:
  32681. .INDENT 0.0
  32682. .INDENT 3.5
  32683. .sp
  32684. .nf
  32685. .ft C
  32686. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipv4 }}
  32687. .ft P
  32688. .fi
  32689. .UNINDENT
  32690. .UNINDENT
  32691. .sp
  32692. Returns:
  32693. .INDENT 0.0
  32694. .INDENT 3.5
  32695. .sp
  32696. .nf
  32697. .ft C
  32698. ["192.168.0.1"]
  32699. .ft P
  32700. .fi
  32701. .UNINDENT
  32702. .UNINDENT
  32703. .SS \fBipv6\fP
  32704. .sp
  32705. New in version 2017.7.0.
  32706. .sp
  32707. From a list, returns only valid IPv6 entries. Supports the same options
  32708. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32709. .sp
  32710. Example:
  32711. .INDENT 0.0
  32712. .INDENT 3.5
  32713. .sp
  32714. .nf
  32715. .ft C
  32716. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipv6 }}
  32717. .ft P
  32718. .fi
  32719. .UNINDENT
  32720. .UNINDENT
  32721. .sp
  32722. Returns:
  32723. .INDENT 0.0
  32724. .INDENT 3.5
  32725. .sp
  32726. .nf
  32727. .ft C
  32728. ["fe80::"]
  32729. .ft P
  32730. .fi
  32731. .UNINDENT
  32732. .UNINDENT
  32733. .SS \fBnetwork_hosts\fP
  32734. .sp
  32735. New in version 2017.7.0.
  32736. .sp
  32737. Return the list of hosts within a networks. This utility works for both IPv4 and IPv6.
  32738. .sp
  32739. \fBNOTE:\fP
  32740. .INDENT 0.0
  32741. .INDENT 3.5
  32742. When running this command with a large IPv6 network, the command will
  32743. take a long time to gather all of the hosts.
  32744. .UNINDENT
  32745. .UNINDENT
  32746. .sp
  32747. Example:
  32748. .INDENT 0.0
  32749. .INDENT 3.5
  32750. .sp
  32751. .nf
  32752. .ft C
  32753. {{ \(aq192.168.0.1/30\(aq | network_hosts }}
  32754. .ft P
  32755. .fi
  32756. .UNINDENT
  32757. .UNINDENT
  32758. .sp
  32759. Returns:
  32760. .INDENT 0.0
  32761. .INDENT 3.5
  32762. .sp
  32763. .nf
  32764. .ft C
  32765. ["192.168.0.1", "192.168.0.2"]
  32766. .ft P
  32767. .fi
  32768. .UNINDENT
  32769. .UNINDENT
  32770. .SS \fBnetwork_size\fP
  32771. .sp
  32772. New in version 2017.7.0.
  32773. .sp
  32774. Return the size of the network. This utility works for both IPv4 and IPv6.
  32775. .sp
  32776. Example:
  32777. .INDENT 0.0
  32778. .INDENT 3.5
  32779. .sp
  32780. .nf
  32781. .ft C
  32782. {{ \(aq192.168.0.1/8\(aq | network_size }}
  32783. .ft P
  32784. .fi
  32785. .UNINDENT
  32786. .UNINDENT
  32787. .sp
  32788. Returns:
  32789. .INDENT 0.0
  32790. .INDENT 3.5
  32791. .sp
  32792. .nf
  32793. .ft C
  32794. 16777216
  32795. .ft P
  32796. .fi
  32797. .UNINDENT
  32798. .UNINDENT
  32799. .SS \fBgen_mac\fP
  32800. .sp
  32801. New in version 2017.7.0.
  32802. .sp
  32803. Generates a MAC address with the defined OUI prefix.
  32804. .sp
  32805. Common prefixes:
  32806. .INDENT 0.0
  32807. .IP \(bu 2
  32808. \fB00:16:3E\fP \-\- Xen
  32809. .IP \(bu 2
  32810. \fB00:18:51\fP \-\- OpenVZ
  32811. .IP \(bu 2
  32812. \fB00:50:56\fP \-\- VMware (manually generated)
  32813. .IP \(bu 2
  32814. \fB52:54:00\fP \-\- QEMU/KVM
  32815. .IP \(bu 2
  32816. \fBAC:DE:48\fP \-\- PRIVATE
  32817. .UNINDENT
  32818. .sp
  32819. Example:
  32820. .INDENT 0.0
  32821. .INDENT 3.5
  32822. .sp
  32823. .nf
  32824. .ft C
  32825. {{ \(aq00:50\(aq | gen_mac }}
  32826. .ft P
  32827. .fi
  32828. .UNINDENT
  32829. .UNINDENT
  32830. .sp
  32831. Returns:
  32832. .INDENT 0.0
  32833. .INDENT 3.5
  32834. .sp
  32835. .nf
  32836. .ft C
  32837. 00:50:71:52:1C
  32838. .ft P
  32839. .fi
  32840. .UNINDENT
  32841. .UNINDENT
  32842. .SS \fBmac_str_to_bytes\fP
  32843. .sp
  32844. New in version 2017.7.0.
  32845. .sp
  32846. Converts a string representing a valid MAC address to bytes.
  32847. .sp
  32848. Example:
  32849. .INDENT 0.0
  32850. .INDENT 3.5
  32851. .sp
  32852. .nf
  32853. .ft C
  32854. {{ \(aq00:11:22:33:44:55\(aq | mac_str_to_bytes }}
  32855. .ft P
  32856. .fi
  32857. .UNINDENT
  32858. .UNINDENT
  32859. .sp
  32860. \fBNOTE:\fP
  32861. .INDENT 0.0
  32862. .INDENT 3.5
  32863. This option may have adverse effects when using the default renderer,
  32864. \fBjinja|yaml\fP\&. This is due to the fact that YAML requires proper handling
  32865. in regard to special characters. Please see the section on YAML ASCII
  32866. support in the YAML Idiosyncracies documentation for more information.
  32867. .UNINDENT
  32868. .UNINDENT
  32869. .SS \fBdns_check\fP
  32870. .sp
  32871. New in version 2017.7.0.
  32872. .sp
  32873. Return the ip resolved by dns, but do not exit on failure, only raise an
  32874. exception. Obeys system preference for IPv4/6 address resolution.
  32875. .sp
  32876. Example:
  32877. .INDENT 0.0
  32878. .INDENT 3.5
  32879. .sp
  32880. .nf
  32881. .ft C
  32882. {{ \(aqwww.google.com\(aq | dns_check(port=443) }}
  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. \(aq172.217.3.196\(aq
  32895. .ft P
  32896. .fi
  32897. .UNINDENT
  32898. .UNINDENT
  32899. .SS File filters
  32900. .SS \fBis_text_file\fP
  32901. .sp
  32902. New in version 2017.7.0.
  32903. .sp
  32904. Return if a file is text.
  32905. .sp
  32906. Uses heuristics to guess whether the given file is text or binary,
  32907. by reading a single block of bytes from the file.
  32908. If more than 30% of the chars in the block are non\-text, or there
  32909. are NUL (\(aqx00\(aq) bytes in the block, assume this is a binary file.
  32910. .sp
  32911. Example:
  32912. .INDENT 0.0
  32913. .INDENT 3.5
  32914. .sp
  32915. .nf
  32916. .ft C
  32917. {{ \(aq/etc/salt/master\(aq | is_text_file }}
  32918. .ft P
  32919. .fi
  32920. .UNINDENT
  32921. .UNINDENT
  32922. .sp
  32923. Returns:
  32924. .INDENT 0.0
  32925. .INDENT 3.5
  32926. .sp
  32927. .nf
  32928. .ft C
  32929. True
  32930. .ft P
  32931. .fi
  32932. .UNINDENT
  32933. .UNINDENT
  32934. .SS \fBis_binary_file\fP
  32935. .sp
  32936. New in version 2017.7.0.
  32937. .sp
  32938. Return if a file is binary.
  32939. .sp
  32940. Detects if the file is a binary, returns bool. Returns True if the file is
  32941. a bin, False if the file is not and None if the file is not available.
  32942. .sp
  32943. Example:
  32944. .INDENT 0.0
  32945. .INDENT 3.5
  32946. .sp
  32947. .nf
  32948. .ft C
  32949. {{ \(aq/etc/salt/master\(aq | is_binary_file }}
  32950. .ft P
  32951. .fi
  32952. .UNINDENT
  32953. .UNINDENT
  32954. .sp
  32955. Returns:
  32956. .INDENT 0.0
  32957. .INDENT 3.5
  32958. .sp
  32959. .nf
  32960. .ft C
  32961. False
  32962. .ft P
  32963. .fi
  32964. .UNINDENT
  32965. .UNINDENT
  32966. .SS \fBis_empty_file\fP
  32967. .sp
  32968. New in version 2017.7.0.
  32969. .sp
  32970. Return if a file is empty.
  32971. .sp
  32972. Example:
  32973. .INDENT 0.0
  32974. .INDENT 3.5
  32975. .sp
  32976. .nf
  32977. .ft C
  32978. {{ \(aq/etc/salt/master\(aq | is_empty_file }}
  32979. .ft P
  32980. .fi
  32981. .UNINDENT
  32982. .UNINDENT
  32983. .sp
  32984. Returns:
  32985. .INDENT 0.0
  32986. .INDENT 3.5
  32987. .sp
  32988. .nf
  32989. .ft C
  32990. False
  32991. .ft P
  32992. .fi
  32993. .UNINDENT
  32994. .UNINDENT
  32995. .SS \fBfile_hashsum\fP
  32996. .sp
  32997. New in version 2017.7.0.
  32998. .sp
  32999. Return the hashsum of a file.
  33000. .sp
  33001. Example:
  33002. .INDENT 0.0
  33003. .INDENT 3.5
  33004. .sp
  33005. .nf
  33006. .ft C
  33007. {{ \(aq/etc/salt/master\(aq | file_hashsum }}
  33008. .ft P
  33009. .fi
  33010. .UNINDENT
  33011. .UNINDENT
  33012. .sp
  33013. Returns:
  33014. .INDENT 0.0
  33015. .INDENT 3.5
  33016. .sp
  33017. .nf
  33018. .ft C
  33019. 02d4ef135514934759634f10079653252c7ad594ea97bd385480c532bca0fdda
  33020. .ft P
  33021. .fi
  33022. .UNINDENT
  33023. .UNINDENT
  33024. .SS \fBlist_files\fP
  33025. .sp
  33026. New in version 2017.7.0.
  33027. .sp
  33028. Return a recursive list of files under a specific path.
  33029. .sp
  33030. Example:
  33031. .INDENT 0.0
  33032. .INDENT 3.5
  33033. .sp
  33034. .nf
  33035. .ft C
  33036. {{ \(aq/etc/salt/\(aq | list_files | join(\(aq\en\(aq) }}
  33037. .ft P
  33038. .fi
  33039. .UNINDENT
  33040. .UNINDENT
  33041. .sp
  33042. Returns:
  33043. .INDENT 0.0
  33044. .INDENT 3.5
  33045. .sp
  33046. .nf
  33047. .ft C
  33048. /etc/salt/master
  33049. /etc/salt/proxy
  33050. /etc/salt/minion
  33051. /etc/salt/pillar/top.sls
  33052. /etc/salt/pillar/device1.sls
  33053. .ft P
  33054. .fi
  33055. .UNINDENT
  33056. .UNINDENT
  33057. .SS \fBpath_join\fP
  33058. .sp
  33059. New in version 2017.7.0.
  33060. .sp
  33061. Joins absolute paths.
  33062. .sp
  33063. Example:
  33064. .INDENT 0.0
  33065. .INDENT 3.5
  33066. .sp
  33067. .nf
  33068. .ft C
  33069. {{ \(aq/etc/salt/\(aq | path_join(\(aqpillar\(aq, \(aqdevice1.sls\(aq) }}
  33070. .ft P
  33071. .fi
  33072. .UNINDENT
  33073. .UNINDENT
  33074. .sp
  33075. Returns:
  33076. .INDENT 0.0
  33077. .INDENT 3.5
  33078. .sp
  33079. .nf
  33080. .ft C
  33081. /etc/salt/pillar/device1.sls
  33082. .ft P
  33083. .fi
  33084. .UNINDENT
  33085. .UNINDENT
  33086. .SS \fBwhich\fP
  33087. .sp
  33088. New in version 2017.7.0.
  33089. .sp
  33090. Python clone of /usr/bin/which.
  33091. .sp
  33092. Example:
  33093. .INDENT 0.0
  33094. .INDENT 3.5
  33095. .sp
  33096. .nf
  33097. .ft C
  33098. {{ \(aqsalt\-master\(aq | which }}
  33099. .ft P
  33100. .fi
  33101. .UNINDENT
  33102. .UNINDENT
  33103. .sp
  33104. Returns:
  33105. .INDENT 0.0
  33106. .INDENT 3.5
  33107. .sp
  33108. .nf
  33109. .ft C
  33110. /usr/local/salt/virtualenv/bin/salt\-master
  33111. .ft P
  33112. .fi
  33113. .UNINDENT
  33114. .UNINDENT
  33115. .SS Tests
  33116. .sp
  33117. Saltstack extends \fI\%builtin tests\fP with these custom tests:
  33118. .SS \fBequalto\fP
  33119. .sp
  33120. Tests the equality between two values.
  33121. .sp
  33122. Can be used in an \fBif\fP statement directly:
  33123. .INDENT 0.0
  33124. .INDENT 3.5
  33125. .sp
  33126. .nf
  33127. .ft C
  33128. {% if 1 is equalto(1) %}
  33129. < statements >
  33130. {% endif %}
  33131. .ft P
  33132. .fi
  33133. .UNINDENT
  33134. .UNINDENT
  33135. .sp
  33136. If clause evaluates to \fBTrue\fP
  33137. .sp
  33138. or with the \fBselectattr\fP filter:
  33139. .INDENT 0.0
  33140. .INDENT 3.5
  33141. .sp
  33142. .nf
  33143. .ft C
  33144. {{ [{\(aqvalue\(aq: 1}, {\(aqvalue\(aq: 2} , {\(aqvalue\(aq: 3}] | selectattr(\(aqvalue\(aq, \(aqequalto\(aq, 3) | list }}
  33145. .ft P
  33146. .fi
  33147. .UNINDENT
  33148. .UNINDENT
  33149. .sp
  33150. Returns:
  33151. .INDENT 0.0
  33152. .INDENT 3.5
  33153. .sp
  33154. .nf
  33155. .ft C
  33156. [{"value": 3}]
  33157. .ft P
  33158. .fi
  33159. .UNINDENT
  33160. .UNINDENT
  33161. .SS \fBmatch\fP
  33162. .sp
  33163. Tests that a string matches the regex passed as an argument.
  33164. .sp
  33165. Can be used in a \fBif\fP statement directly:
  33166. .INDENT 0.0
  33167. .INDENT 3.5
  33168. .sp
  33169. .nf
  33170. .ft C
  33171. {% if \(aqa\(aq is match(\(aq[a\-b]\(aq) %}
  33172. < statements >
  33173. {% endif %}
  33174. .ft P
  33175. .fi
  33176. .UNINDENT
  33177. .UNINDENT
  33178. .sp
  33179. If clause evaluates to \fBTrue\fP
  33180. .sp
  33181. or with the \fBselectattr\fP filter:
  33182. .INDENT 0.0
  33183. .INDENT 3.5
  33184. .sp
  33185. .nf
  33186. .ft C
  33187. {{ [{\(aqvalue\(aq: \(aqa\(aq}, {\(aqvalue\(aq: \(aqb\(aq}, {\(aqvalue\(aq: \(aqc\(aq}] | selectattr(\(aqvalue\(aq, \(aqmatch\(aq, \(aq[b\-e]\(aq) | list }}
  33188. .ft P
  33189. .fi
  33190. .UNINDENT
  33191. .UNINDENT
  33192. .sp
  33193. Returns:
  33194. .INDENT 0.0
  33195. .INDENT 3.5
  33196. .sp
  33197. .nf
  33198. .ft C
  33199. [{"value": "b"}, {"value": "c"}]
  33200. .ft P
  33201. .fi
  33202. .UNINDENT
  33203. .UNINDENT
  33204. .sp
  33205. Test supports additional optional arguments: \fBignorecase\fP, \fBmultiline\fP
  33206. .SS Escape filters
  33207. .SS \fBregex_escape\fP
  33208. .sp
  33209. New in version 2017.7.0.
  33210. .sp
  33211. Allows escaping of strings so they can be interpreted literally by another function.
  33212. .sp
  33213. Example:
  33214. .INDENT 0.0
  33215. .INDENT 3.5
  33216. .sp
  33217. .nf
  33218. .ft C
  33219. regex_escape = {{ \(aqhttps://example.com?foo=bar%20baz\(aq | regex_escape }}
  33220. .ft P
  33221. .fi
  33222. .UNINDENT
  33223. .UNINDENT
  33224. .sp
  33225. will be rendered as:
  33226. .INDENT 0.0
  33227. .INDENT 3.5
  33228. .sp
  33229. .nf
  33230. .ft C
  33231. regex_escape = https\e:\e/\e/example\e.com\e?foo\e=bar\e%20baz
  33232. .ft P
  33233. .fi
  33234. .UNINDENT
  33235. .UNINDENT
  33236. .SS Set Theory Filters
  33237. .SS \fBunique\fP
  33238. .sp
  33239. New in version 2017.7.0.
  33240. .sp
  33241. Performs set math using Jinja filters.
  33242. .sp
  33243. Example:
  33244. .INDENT 0.0
  33245. .INDENT 3.5
  33246. .sp
  33247. .nf
  33248. .ft C
  33249. unique = {{ [\(aqfoo\(aq, \(aqfoo\(aq, \(aqbar\(aq] | unique }}
  33250. .ft P
  33251. .fi
  33252. .UNINDENT
  33253. .UNINDENT
  33254. .sp
  33255. will be rendered as:
  33256. .INDENT 0.0
  33257. .INDENT 3.5
  33258. .sp
  33259. .nf
  33260. .ft C
  33261. unique = [\(aqfoo\(aq, \(aqbar\(aq]
  33262. .ft P
  33263. .fi
  33264. .UNINDENT
  33265. .UNINDENT
  33266. .SS Jinja in Files
  33267. .sp
  33268. \fI\%Jinja\fP can be used in the same way in managed files:
  33269. .INDENT 0.0
  33270. .INDENT 3.5
  33271. .sp
  33272. .nf
  33273. .ft C
  33274. # redis.sls
  33275. /etc/redis/redis.conf:
  33276. file.managed:
  33277. \- source: salt://redis.conf
  33278. \- template: jinja
  33279. \- context:
  33280. bind: 127.0.0.1
  33281. .ft P
  33282. .fi
  33283. .UNINDENT
  33284. .UNINDENT
  33285. .INDENT 0.0
  33286. .INDENT 3.5
  33287. .sp
  33288. .nf
  33289. .ft C
  33290. # lib.sls
  33291. {% set port = 6379 %}
  33292. .ft P
  33293. .fi
  33294. .UNINDENT
  33295. .UNINDENT
  33296. .INDENT 0.0
  33297. .INDENT 3.5
  33298. .sp
  33299. .nf
  33300. .ft C
  33301. # redis.conf
  33302. {% from \(aqlib.sls\(aq import port with context %}
  33303. port {{ port }}
  33304. bind {{ bind }}
  33305. .ft P
  33306. .fi
  33307. .UNINDENT
  33308. .UNINDENT
  33309. .sp
  33310. As an example, configuration was pulled from the file context and from an
  33311. external template file.
  33312. .sp
  33313. \fBNOTE:\fP
  33314. .INDENT 0.0
  33315. .INDENT 3.5
  33316. Macros and variables can be shared across templates. They should not be
  33317. starting with one or more underscores, and should be managed by one of the
  33318. following tags: \fImacro\fP, \fIset\fP, \fIload_yaml\fP, \fIload_json\fP, \fIimport_yaml\fP and
  33319. \fIimport_json\fP\&.
  33320. .UNINDENT
  33321. .UNINDENT
  33322. .SS Escaping Jinja
  33323. .sp
  33324. Occasionally, it may be necessary to escape Jinja syntax. There are two ways
  33325. to do this in Jinja. One is escaping individual variables or strings and the
  33326. other is to escape entire blocks.
  33327. .sp
  33328. To escape a string commonly used in Jinja syntax such as \fB{{\fP, you can use the
  33329. following syntax:
  33330. .INDENT 0.0
  33331. .INDENT 3.5
  33332. .sp
  33333. .nf
  33334. .ft C
  33335. {{ \(aq{{\(aq }}
  33336. .ft P
  33337. .fi
  33338. .UNINDENT
  33339. .UNINDENT
  33340. .sp
  33341. For larger blocks that contain Jinja syntax that needs to be escaped, you can use
  33342. raw blocks:
  33343. .INDENT 0.0
  33344. .INDENT 3.5
  33345. .sp
  33346. .nf
  33347. .ft C
  33348. {% raw %}
  33349. some text that contains jinja characters that need to be escaped
  33350. {% endraw %}
  33351. .ft P
  33352. .fi
  33353. .UNINDENT
  33354. .UNINDENT
  33355. .sp
  33356. See the \fI\%Escaping\fP section of Jinja\(aqs documentation to learn more.
  33357. .sp
  33358. A real\-word example of needing to use raw tags to escape a larger block of code
  33359. is when using \fBfile.managed\fP with the \fBcontents_pillar\fP option to manage
  33360. files that contain something like consul\-template, which shares a syntax subset
  33361. with Jinja. Raw blocks are necessary here because the Jinja in the pillar would
  33362. be rendered before the file.managed is ever called, so the Jinja syntax must be
  33363. escaped:
  33364. .INDENT 0.0
  33365. .INDENT 3.5
  33366. .sp
  33367. .nf
  33368. .ft C
  33369. {% raw %}
  33370. \- contents_pillar: |
  33371. job "example\-job" {
  33372. <snipped>
  33373. task "example" {
  33374. driver = "docker"
  33375. config {
  33376. image = "docker\-registry.service.consul:5000/example\-job:{{key "nomad/jobs/example\-job/version"}}"
  33377. <snipped>
  33378. {% endraw %}
  33379. .ft P
  33380. .fi
  33381. .UNINDENT
  33382. .UNINDENT
  33383. .SS Calling Salt Functions
  33384. .sp
  33385. The Jinja renderer provides a shorthand lookup syntax for the \fBsalt\fP
  33386. dictionary of execution function\&.
  33387. .sp
  33388. New in version 2014.7.0.
  33389. .INDENT 0.0
  33390. .INDENT 3.5
  33391. .sp
  33392. .nf
  33393. .ft C
  33394. # The following two function calls are equivalent.
  33395. {{ salt[\(aqcmd.run\(aq](\(aqwhoami\(aq) }}
  33396. {{ salt.cmd.run(\(aqwhoami\(aq) }}
  33397. .ft P
  33398. .fi
  33399. .UNINDENT
  33400. .UNINDENT
  33401. .SS Debugging
  33402. .sp
  33403. The \fBshow_full_context\fP function can be used to output all variables present
  33404. in the current Jinja context.
  33405. .sp
  33406. New in version 2014.7.0.
  33407. .INDENT 0.0
  33408. .INDENT 3.5
  33409. .sp
  33410. .nf
  33411. .ft C
  33412. Context is: {{ show_full_context()|yaml(False) }}
  33413. .ft P
  33414. .fi
  33415. .UNINDENT
  33416. .UNINDENT
  33417. .SS Logs
  33418. .sp
  33419. New in version 2017.7.0.
  33420. .sp
  33421. Yes, in Salt, one is able to debug a complex Jinja template using the logs.
  33422. For example, making the call:
  33423. .INDENT 0.0
  33424. .INDENT 3.5
  33425. .sp
  33426. .nf
  33427. .ft C
  33428. {%\- do salt.log.error(\(aqtesting jinja logging\(aq) \-%}
  33429. .ft P
  33430. .fi
  33431. .UNINDENT
  33432. .UNINDENT
  33433. .sp
  33434. Will insert the following message in the minion logs:
  33435. .INDENT 0.0
  33436. .INDENT 3.5
  33437. .sp
  33438. .nf
  33439. .ft C
  33440. 2017\-02\-01 01:24:40,728 [salt.module.logmod][ERROR ][3779] testing jinja logging
  33441. .ft P
  33442. .fi
  33443. .UNINDENT
  33444. .UNINDENT
  33445. .SS Python Methods
  33446. .sp
  33447. A powerful feature of jinja that is only hinted at in the official jinja
  33448. documentation is that you can use the native python methods of the
  33449. variable type. Here is the python documentation for \fI\%string methods\fP\&.
  33450. .INDENT 0.0
  33451. .INDENT 3.5
  33452. .sp
  33453. .nf
  33454. .ft C
  33455. {% set hostname,domain = grains.id.partition(\(aq.\(aq)[::2] %}{{ hostname }}
  33456. .ft P
  33457. .fi
  33458. .UNINDENT
  33459. .UNINDENT
  33460. .INDENT 0.0
  33461. .INDENT 3.5
  33462. .sp
  33463. .nf
  33464. .ft C
  33465. {% set strings = grains.id.split(\(aq\-\(aq) %}{{ strings[0] }}
  33466. .ft P
  33467. .fi
  33468. .UNINDENT
  33469. .UNINDENT
  33470. .SS Custom Execution Modules
  33471. .sp
  33472. Custom execution modules can be used to supplement or replace complex Jinja. Many
  33473. tasks that require complex looping and logic are trivial when using Python
  33474. in a Salt execution module. Salt execution modules are easy to write and
  33475. distribute to Salt minions.
  33476. .sp
  33477. Functions in custom execution modules are available in the Salt execution
  33478. module dictionary just like the built\-in execution modules:
  33479. .INDENT 0.0
  33480. .INDENT 3.5
  33481. .sp
  33482. .nf
  33483. .ft C
  33484. {{ salt[\(aqmy_custom_module.my_custom_function\(aq]() }}
  33485. .ft P
  33486. .fi
  33487. .UNINDENT
  33488. .UNINDENT
  33489. .INDENT 0.0
  33490. .IP \(bu 2
  33491. How to Convert Jinja Logic to an Execution Module
  33492. .IP \(bu 2
  33493. Writing Execution Modules
  33494. .UNINDENT
  33495. .SS Custom Jinja filters
  33496. .sp
  33497. Given that all execution modules are available in the Jinja template,
  33498. one can easily define a custom module as in the previous paragraph
  33499. and use it as a Jinja filter.
  33500. However, please note that it will not be accessible through the pipe.
  33501. .sp
  33502. For example, instead of:
  33503. .INDENT 0.0
  33504. .INDENT 3.5
  33505. .sp
  33506. .nf
  33507. .ft C
  33508. {{ my_variable | my_jinja_filter }}
  33509. .ft P
  33510. .fi
  33511. .UNINDENT
  33512. .UNINDENT
  33513. .sp
  33514. The user will need to define \fBmy_jinja_filter\fP function under an extension
  33515. module, say \fBmy_filters\fP and use as:
  33516. .INDENT 0.0
  33517. .INDENT 3.5
  33518. .sp
  33519. .nf
  33520. .ft C
  33521. {{ salt.my_filters.my_jinja_filter(my_variable) }}
  33522. .ft P
  33523. .fi
  33524. .UNINDENT
  33525. .UNINDENT
  33526. .sp
  33527. The greatest benefit is that you are able to access thousands of existing functions, e.g.:
  33528. .INDENT 0.0
  33529. .IP \(bu 2
  33530. get the DNS AAAA records for a specific address using the \fBdnsutil\fP:
  33531. .INDENT 2.0
  33532. .INDENT 3.5
  33533. .sp
  33534. .nf
  33535. .ft C
  33536. {{ salt.dnsutil.AAAA(\(aqwww.google.com\(aq) }}
  33537. .ft P
  33538. .fi
  33539. .UNINDENT
  33540. .UNINDENT
  33541. .IP \(bu 2
  33542. retrieve a specific field value from a \fBRedis\fP hash:
  33543. .INDENT 2.0
  33544. .INDENT 3.5
  33545. .sp
  33546. .nf
  33547. .ft C
  33548. {{ salt.redis.hget(\(aqfoo_hash\(aq, \(aqbar_field\(aq) }}
  33549. .ft P
  33550. .fi
  33551. .UNINDENT
  33552. .UNINDENT
  33553. .IP \(bu 2
  33554. get the routes to \fB0.0.0.0/0\fP using the \fBNAPALM route\fP:
  33555. .INDENT 2.0
  33556. .INDENT 3.5
  33557. .sp
  33558. .nf
  33559. .ft C
  33560. {{ salt.route.show(\(aq0.0.0.0/0\(aq) }}
  33561. .ft P
  33562. .fi
  33563. .UNINDENT
  33564. .UNINDENT
  33565. .UNINDENT
  33566. .SS Tutorials Index
  33567. .SS Autoaccept minions from Grains
  33568. .sp
  33569. New in version 2018.3.0.
  33570. .sp
  33571. To automatically accept minions based on certain characteristics, e.g. the \fBuuid\fP
  33572. you can specify certain grain values on the salt master. Minions with matching grains
  33573. will have their keys automatically accepted.
  33574. .INDENT 0.0
  33575. .IP 1. 3
  33576. Configure the autosign_grains_dir in the master config file:
  33577. .UNINDENT
  33578. .INDENT 0.0
  33579. .INDENT 3.5
  33580. .sp
  33581. .nf
  33582. .ft C
  33583. autosign_grains_dir: /etc/salt/autosign_grains
  33584. .ft P
  33585. .fi
  33586. .UNINDENT
  33587. .UNINDENT
  33588. .INDENT 0.0
  33589. .IP 2. 3
  33590. Configure the grain values to be accepted
  33591. .UNINDENT
  33592. .sp
  33593. Place a file named like the grain in the autosign_grains_dir and write the values that
  33594. should be accepted automatically inside that file. For example to automatically
  33595. accept minions based on their \fBuuid\fP create a file named \fB/etc/salt/autosign_grains/uuid\fP:
  33596. .INDENT 0.0
  33597. .INDENT 3.5
  33598. .sp
  33599. .nf
  33600. .ft C
  33601. 8f7d68e2\-30c5\-40c6\-b84a\-df7e978a03ee
  33602. 1d3c5473\-1fbc\-479e\-b0c7\-877705a0730f
  33603. .ft P
  33604. .fi
  33605. .UNINDENT
  33606. .UNINDENT
  33607. .sp
  33608. The master is now setup to accept minions with either of the two specified uuids.
  33609. Multiple values must always be written into separate lines.
  33610. Lines starting with a \fB#\fP are ignored.
  33611. .INDENT 0.0
  33612. .IP 3. 3
  33613. Configure the minion to send the specific grains to the master in the minion config file:
  33614. .UNINDENT
  33615. .INDENT 0.0
  33616. .INDENT 3.5
  33617. .sp
  33618. .nf
  33619. .ft C
  33620. autosign_grains:
  33621. \- uuid
  33622. .ft P
  33623. .fi
  33624. .UNINDENT
  33625. .UNINDENT
  33626. .sp
  33627. Now you should be able to start salt\-minion and run \fBsalt\-call
  33628. state.apply\fP or any other salt commands that require master authentication.
  33629. .SS Salt as a Cloud Controller
  33630. .sp
  33631. In Salt 0.14.0, an advanced cloud control system were introduced, allow
  33632. private cloud vms to be managed directly with Salt. This system is generally
  33633. referred to as \fBSalt Virt\fP\&.
  33634. .sp
  33635. The Salt Virt system already exists and is installed within Salt itself, this
  33636. means that besides setting up Salt, no additional salt code needs to be
  33637. deployed.
  33638. .sp
  33639. \fBNOTE:\fP
  33640. .INDENT 0.0
  33641. .INDENT 3.5
  33642. The \fBlibvirt\fP python module and the \fBcerttool\fP binary are required.
  33643. .UNINDENT
  33644. .UNINDENT
  33645. .sp
  33646. The main goal of Salt Virt is to facilitate a very fast and simple cloud. The
  33647. cloud that can scale and is fully featured. Salt Virt comes with the
  33648. ability to set up and manage complex virtual machine networking, powerful
  33649. image and disk management, as well as virtual machine migration with and without
  33650. shared storage.
  33651. .sp
  33652. This means that Salt Virt can be used to create a cloud from a blade center
  33653. and a SAN, but can also create a cloud out of a swarm of Linux Desktops
  33654. without a single shared storage system. Salt Virt can make clouds from
  33655. truly commodity hardware, but can also stand up the power of specialized
  33656. hardware as well.
  33657. .SS Setting up Hypervisors
  33658. .sp
  33659. The first step to set up the hypervisors involves getting the correct software
  33660. installed and setting up the hypervisor network interfaces.
  33661. .SS Installing Hypervisor Software
  33662. .sp
  33663. Salt Virt is made to be hypervisor agnostic but currently the only fully
  33664. implemented hypervisor is KVM via libvirt.
  33665. .sp
  33666. The required software for a hypervisor is libvirt and kvm. For advanced
  33667. features install libguestfs or qemu\-nbd.
  33668. .sp
  33669. \fBNOTE:\fP
  33670. .INDENT 0.0
  33671. .INDENT 3.5
  33672. Libguestfs and qemu\-nbd allow for virtual machine images to be mounted
  33673. before startup and get pre\-seeded with configurations and a salt minion
  33674. .UNINDENT
  33675. .UNINDENT
  33676. .sp
  33677. This sls will set up the needed software for a hypervisor, and run the routines
  33678. to set up the libvirt pki keys.
  33679. .sp
  33680. \fBNOTE:\fP
  33681. .INDENT 0.0
  33682. .INDENT 3.5
  33683. Package names and setup used is Red Hat specific, different package names
  33684. will be required for different platforms
  33685. .UNINDENT
  33686. .UNINDENT
  33687. .INDENT 0.0
  33688. .INDENT 3.5
  33689. .sp
  33690. .nf
  33691. .ft C
  33692. libvirt:
  33693. pkg.installed: []
  33694. file.managed:
  33695. \- name: /etc/sysconfig/libvirtd
  33696. \- contents: \(aqLIBVIRTD_ARGS="\-\-listen"\(aq
  33697. \- require:
  33698. \- pkg: libvirt
  33699. virt.keys:
  33700. \- require:
  33701. \- pkg: libvirt
  33702. service.running:
  33703. \- name: libvirtd
  33704. \- require:
  33705. \- pkg: libvirt
  33706. \- network: br0
  33707. \- libvirt: libvirt
  33708. \- watch:
  33709. \- file: libvirt
  33710. libvirt\-python:
  33711. pkg.installed: []
  33712. libguestfs:
  33713. pkg.installed:
  33714. \- pkgs:
  33715. \- libguestfs
  33716. \- libguestfs\-tools
  33717. .ft P
  33718. .fi
  33719. .UNINDENT
  33720. .UNINDENT
  33721. .SS Hypervisor Network Setup
  33722. .sp
  33723. The hypervisors will need to be running a network bridge to serve up network
  33724. devices for virtual machines, this formula will set up a standard bridge on
  33725. a hypervisor connecting the bridge to eth0:
  33726. .INDENT 0.0
  33727. .INDENT 3.5
  33728. .sp
  33729. .nf
  33730. .ft C
  33731. eth0:
  33732. network.managed:
  33733. \- enabled: True
  33734. \- type: eth
  33735. \- bridge: br0
  33736. br0:
  33737. network.managed:
  33738. \- enabled: True
  33739. \- type: bridge
  33740. \- proto: dhcp
  33741. \- require:
  33742. \- network: eth0
  33743. .ft P
  33744. .fi
  33745. .UNINDENT
  33746. .UNINDENT
  33747. .SS Virtual Machine Network Setup
  33748. .sp
  33749. Salt Virt comes with a system to model the network interfaces used by the
  33750. deployed virtual machines; by default a single interface is created for the
  33751. deployed virtual machine and is bridged to \fBbr0\fP\&. To get going with the
  33752. default networking setup, ensure that the bridge interface named \fBbr0\fP exists
  33753. on the hypervisor and is bridged to an active network device.
  33754. .sp
  33755. \fBNOTE:\fP
  33756. .INDENT 0.0
  33757. .INDENT 3.5
  33758. To use more advanced networking in Salt Virt, read the \fISalt Virt
  33759. Networking\fP document:
  33760. .sp
  33761. Salt Virt Networking
  33762. .UNINDENT
  33763. .UNINDENT
  33764. .SS Libvirt State
  33765. .sp
  33766. One of the challenges of deploying a libvirt based cloud is the distribution
  33767. of libvirt certificates. These certificates allow for virtual machine
  33768. migration. Salt comes with a system used to auto deploy these certificates.
  33769. Salt manages the signing authority key and generates keys for libvirt clients
  33770. on the master, signs them with the certificate authority and uses pillar to
  33771. distribute them. This is managed via the \fBlibvirt\fP state. Simply execute this
  33772. formula on the minion to ensure that the certificate is in place and up to
  33773. date:
  33774. .sp
  33775. \fBNOTE:\fP
  33776. .INDENT 0.0
  33777. .INDENT 3.5
  33778. The above formula includes the calls needed to set up libvirt keys.
  33779. .UNINDENT
  33780. .UNINDENT
  33781. .INDENT 0.0
  33782. .INDENT 3.5
  33783. .sp
  33784. .nf
  33785. .ft C
  33786. libvirt_keys:
  33787. virt.keys
  33788. .ft P
  33789. .fi
  33790. .UNINDENT
  33791. .UNINDENT
  33792. .SS Getting Virtual Machine Images Ready
  33793. .sp
  33794. Salt Virt, requires that virtual machine images be provided as these are not
  33795. generated on the fly. Generating these virtual machine images differs greatly
  33796. based on the underlying platform.
  33797. .sp
  33798. Virtual machine images can be manually created using KVM and running through
  33799. the installer, but this process is not recommended since it is very manual and
  33800. prone to errors.
  33801. .sp
  33802. Virtual Machine generation applications are available for many platforms:
  33803. .INDENT 0.0
  33804. .TP
  33805. .B kiwi: (openSUSE, SLES, RHEL, CentOS)
  33806. \fI\%https://opensuse.github.io/kiwi/\fP
  33807. .TP
  33808. .B vm\-builder:
  33809. \fI\%https://wiki.debian.org/VMBuilder\fP
  33810. .sp
  33811. \fBSEE ALSO:\fP
  33812. .INDENT 7.0
  33813. .INDENT 3.5
  33814. \fI\%vmbuilder\-formula\fP
  33815. .UNINDENT
  33816. .UNINDENT
  33817. .UNINDENT
  33818. .sp
  33819. Once virtual machine images are available, the easiest way to make them
  33820. available to Salt Virt is to place them in the Salt file server. Just copy an
  33821. image into \fB/srv/salt\fP and it can now be used by Salt Virt.
  33822. .sp
  33823. For purposes of this demo, the file name \fBcentos.img\fP will be used.
  33824. .SS Existing Virtual Machine Images
  33825. .sp
  33826. Many existing Linux distributions distribute virtual machine images which
  33827. can be used with Salt Virt. Please be advised that NONE OF THESE IMAGES ARE
  33828. SUPPORTED BY SALTSTACK.
  33829. .SS CentOS
  33830. .sp
  33831. These images have been prepared for OpenNebula but should work without issue with
  33832. Salt Virt, only the raw qcow image file is needed:
  33833. \fI\%https://wiki.centos.org/Cloud/OpenNebula\fP
  33834. .SS Fedora Linux
  33835. .sp
  33836. Images for Fedora Linux can be found here:
  33837. \fI\%https://alt.fedoraproject.org/cloud\fP
  33838. .SS openSUSE
  33839. .sp
  33840. \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
  33841. .SS SUSE
  33842. .sp
  33843. \fI\%https://www.suse.com/products/server/jeos\fP
  33844. .SS Ubuntu Linux
  33845. .sp
  33846. Images for Ubuntu Linux can be found here:
  33847. \fI\%http://cloud\-images.ubuntu.com/\fP
  33848. .SS Using Salt Virt
  33849. .sp
  33850. With hypervisors set up and virtual machine images ready, Salt can start
  33851. issuing cloud commands using the \fIvirt runner\fP\&.
  33852. .sp
  33853. Start by running a Salt Virt hypervisor info command:
  33854. .INDENT 0.0
  33855. .INDENT 3.5
  33856. .sp
  33857. .nf
  33858. .ft C
  33859. salt\-run virt.host_info
  33860. .ft P
  33861. .fi
  33862. .UNINDENT
  33863. .UNINDENT
  33864. .sp
  33865. This will query the running hypervisor(s) for stats and display useful
  33866. information such as the number of cpus and amount of memory.
  33867. .sp
  33868. You can also list all VMs and their current states on all hypervisor
  33869. nodes:
  33870. .INDENT 0.0
  33871. .INDENT 3.5
  33872. .sp
  33873. .nf
  33874. .ft C
  33875. salt\-run virt.list
  33876. .ft P
  33877. .fi
  33878. .UNINDENT
  33879. .UNINDENT
  33880. .sp
  33881. Now that hypervisors are available a virtual machine can be provisioned.
  33882. The \fBvirt.init\fP routine will create a new virtual machine:
  33883. .INDENT 0.0
  33884. .INDENT 3.5
  33885. .sp
  33886. .nf
  33887. .ft C
  33888. salt\-run virt.init centos1 2 512 salt://centos.img
  33889. .ft P
  33890. .fi
  33891. .UNINDENT
  33892. .UNINDENT
  33893. .sp
  33894. The Salt Virt runner will now automatically select a hypervisor to deploy
  33895. the new virtual machine on. Using \fBsalt://\fP assumes that the CentOS virtual
  33896. machine image is located in the root of the file\-server on the master.
  33897. When images are cloned (i.e. copied locatlly after retrieval from the file server)
  33898. the destination directory on the hypervisor minion is determined by the \fBvirt:images\fP
  33899. config option; by default this is \fB/srv/salt\-images/\fP\&.
  33900. .sp
  33901. When a VM is initialized using \fBvirt.init\fP the image is copied to the hypervisor
  33902. using \fBcp.cache_file\fP and will be mounted and seeded with a minion. Seeding includes
  33903. setting pre\-authenticated keys on the new machine. A minion will only be installed if
  33904. one can not be found on the image using the default arguments to \fBseed.apply\fP\&.
  33905. .sp
  33906. \fBNOTE:\fP
  33907. .INDENT 0.0
  33908. .INDENT 3.5
  33909. The biggest bottleneck in starting VMs is when the Salt Minion needs to be
  33910. installed. Making sure that the source VM images already have Salt
  33911. installed will GREATLY speed up virtual machine deployment.
  33912. .UNINDENT
  33913. .UNINDENT
  33914. .sp
  33915. You can also deploy an image on a particular minion by directly calling the
  33916. \fIvirt\fP execution module with an absolute image path. This can be quite handy for testing:
  33917. .INDENT 0.0
  33918. .INDENT 3.5
  33919. .sp
  33920. .nf
  33921. .ft C
  33922. salt \(aqhypervisor*\(aq virt.init centos1 2 512 image=/var/lib/libvirt/images/centos.img
  33923. .ft P
  33924. .fi
  33925. .UNINDENT
  33926. .UNINDENT
  33927. .sp
  33928. Now that the new VM has been prepared, it can be seen via the \fBvirt.query\fP
  33929. command:
  33930. .INDENT 0.0
  33931. .INDENT 3.5
  33932. .sp
  33933. .nf
  33934. .ft C
  33935. salt\-run virt.query
  33936. .ft P
  33937. .fi
  33938. .UNINDENT
  33939. .UNINDENT
  33940. .sp
  33941. This command will return data about all of the hypervisors and respective
  33942. virtual machines.
  33943. .sp
  33944. Now that the new VM is booted it should have contacted the Salt Master, a
  33945. \fBtest.version\fP will reveal if the new VM is running.
  33946. .SS QEMU copy on write support
  33947. .sp
  33948. For fast image cloning you can use the \fI\%qcow\fP disk image format.
  33949. Pass the \fBenable_qcow\fP flag and a \fI\&.qcow2\fP image path to \fIvirt.init\fP:
  33950. .INDENT 0.0
  33951. .INDENT 3.5
  33952. .sp
  33953. .nf
  33954. .ft C
  33955. salt \(aqhypervisor*\(aq virt.init centos1 2 512 image=/var/lib/libvirt/images/centos.qcow2 enable_qcow=True start=False
  33956. .ft P
  33957. .fi
  33958. .UNINDENT
  33959. .UNINDENT
  33960. .sp
  33961. \fBNOTE:\fP
  33962. .INDENT 0.0
  33963. .INDENT 3.5
  33964. Beware that attempting to boot a qcow image too quickly after cloning
  33965. can result in a race condition where libvirt may try to boot the machine
  33966. before image seeding has completed. For that reason it is recommended to
  33967. also pass \fBstart=False\fP to \fBvirt.init\fP\&.
  33968. .sp
  33969. Also know that you \fBmust not\fP modify the original base image without
  33970. first making a copy and then \fIrebasing\fP all overlay images onto it.
  33971. See the \fBqemu\-img rebase\fP \fI\%usage docs\fP\&.
  33972. .UNINDENT
  33973. .UNINDENT
  33974. .SS Migrating Virtual Machines
  33975. .sp
  33976. Salt Virt comes with full support for virtual machine migration, and using
  33977. the libvirt state in the above formula makes migration possible.
  33978. .sp
  33979. A few things need to be available to support migration. Many operating systems
  33980. turn on firewalls when originally set up, the firewall needs to be opened up
  33981. to allow for libvirt and kvm to cross communicate and execution migration
  33982. routines. On Red Hat based hypervisors in particular port 16514 needs to be
  33983. opened on hypervisors:
  33984. .INDENT 0.0
  33985. .INDENT 3.5
  33986. .sp
  33987. .nf
  33988. .ft C
  33989. iptables \-A INPUT \-m state \-\-state NEW \-m tcp \-p tcp \-\-dport 16514 \-j ACCEPT
  33990. .ft P
  33991. .fi
  33992. .UNINDENT
  33993. .UNINDENT
  33994. .sp
  33995. \fBNOTE:\fP
  33996. .INDENT 0.0
  33997. .INDENT 3.5
  33998. More in\-depth information regarding distribution specific firewall settings can read in:
  33999. .sp
  34000. Opening the Firewall up for Salt
  34001. .UNINDENT
  34002. .UNINDENT
  34003. .sp
  34004. Salt also needs the \fBvirt:tunnel\fP option to be turned on.
  34005. This flag tells Salt to run migrations securely via the libvirt TLS tunnel and to
  34006. use port 16514. Without \fBvirt:tunnel\fP libvirt tries to bind to random ports when
  34007. running migrations.
  34008. .sp
  34009. To turn on \fBvirt:tunnel\fP simply apply it to the master config file:
  34010. .INDENT 0.0
  34011. .INDENT 3.5
  34012. .sp
  34013. .nf
  34014. .ft C
  34015. virt:
  34016. tunnel: True
  34017. .ft P
  34018. .fi
  34019. .UNINDENT
  34020. .UNINDENT
  34021. .sp
  34022. Once the master config has been updated, restart the master and send out a call
  34023. to the minions to refresh the pillar to pick up on the change:
  34024. .INDENT 0.0
  34025. .INDENT 3.5
  34026. .sp
  34027. .nf
  34028. .ft C
  34029. salt \e* saltutil.refresh_modules
  34030. .ft P
  34031. .fi
  34032. .UNINDENT
  34033. .UNINDENT
  34034. .sp
  34035. Now, migration routines can be run! To migrate a VM, simply run the Salt Virt
  34036. migrate routine:
  34037. .INDENT 0.0
  34038. .INDENT 3.5
  34039. .sp
  34040. .nf
  34041. .ft C
  34042. salt\-run virt.migrate centos <new hypervisor>
  34043. .ft P
  34044. .fi
  34045. .UNINDENT
  34046. .UNINDENT
  34047. .SS VNC Consoles
  34048. .sp
  34049. Although not enabled by default, Salt Virt can also set up VNC consoles allowing for remote visual
  34050. consoles to be opened up. When creating a new VM using \fBvirt.init\fP pass the \fBenable_vnc=True\fP
  34051. parameter to have a console configured for the new VM.
  34052. .sp
  34053. The information from a \fBvirt.query\fP routine will display the vnc console port for the specific vms:
  34054. .INDENT 0.0
  34055. .INDENT 3.5
  34056. .sp
  34057. .nf
  34058. .ft C
  34059. centos
  34060. CPU: 2
  34061. Memory: 524288
  34062. State: running
  34063. Graphics: vnc \- hyper6:5900
  34064. Disk \- vda:
  34065. Size: 2.0G
  34066. File: /srv/salt\-images/ubuntu2/system.qcow2
  34067. File Format: qcow2
  34068. Nic \- ac:de:48:98:08:77:
  34069. Source: br0
  34070. Type: bridge
  34071. .ft P
  34072. .fi
  34073. .UNINDENT
  34074. .UNINDENT
  34075. .sp
  34076. The line \fIGraphics: vnc \- hyper6:5900\fP holds the key. First the port named,
  34077. in this case 5900, will need to be available in the hypervisor\(aqs firewall.
  34078. Once the port is open, then the console can be easily opened via vncviewer:
  34079. .INDENT 0.0
  34080. .INDENT 3.5
  34081. .sp
  34082. .nf
  34083. .ft C
  34084. vncviewer hyper6:5900
  34085. .ft P
  34086. .fi
  34087. .UNINDENT
  34088. .UNINDENT
  34089. .sp
  34090. By default there is no VNC security set up on these ports, which suggests that
  34091. keeping them firewalled and mandating that SSH tunnels be used to access these
  34092. VNC interfaces. Keep in mind that activity on a VNC interface that is accessed
  34093. can be viewed by any other user that accesses that same VNC interface, and any other
  34094. user logging in can also operate with the logged in user on the virtual
  34095. machine.
  34096. .SS Conclusion
  34097. .sp
  34098. Now with Salt Virt running, new hypervisors can be seamlessly added just by
  34099. running the above states on new bare metal machines, and these machines will be
  34100. instantly available to Salt Virt.
  34101. .SS Running Salt States and Commands in Docker Containers
  34102. .sp
  34103. The 2016.11.0 release of Salt introduces the ability to execute Salt States
  34104. and Salt remote execution commands directly inside of Docker containers.
  34105. .sp
  34106. This addition makes it possible to not only deploy fresh containers using
  34107. Salt States. This also allows for running containers to be audited and
  34108. modified using Salt, but without running a Salt Minion inside the container.
  34109. Some of the applications include security audits of running containers as
  34110. well as gathering operating data from containers.
  34111. .sp
  34112. This new feature is simple and straightforward, and can be used via a running
  34113. Salt Minion, the Salt Call command, or via Salt SSH. For this tutorial we will
  34114. use the \fIsalt\-call\fP command, but like all salt commands these calls are
  34115. directly translatable to \fIsalt\fP and \fIsalt\-ssh\fP\&.
  34116. .SS Step 1 \- Install Docker
  34117. .sp
  34118. Since setting up Docker is well covered in the Docker documentation we will
  34119. make no such effort to describe it here. Please see the Docker Installation
  34120. Documentation for installing and setting up Docker:
  34121. \fI\%https://docs.docker.com/engine/installation/\fP
  34122. .sp
  34123. The Docker integration also requires that the \fIdocker\-py\fP library is installed.
  34124. This can easily be done using pip or via your system package manager:
  34125. .INDENT 0.0
  34126. .INDENT 3.5
  34127. .sp
  34128. .nf
  34129. .ft C
  34130. pip install docker\-py
  34131. .ft P
  34132. .fi
  34133. .UNINDENT
  34134. .UNINDENT
  34135. .SS Step 2 \- Install Salt
  34136. .sp
  34137. For this tutorial we will be using Salt Call, which is available in the
  34138. \fIsalt\-minion\fP package, please follow the Salt Installation docs found here:
  34139. \fI\%https://repo.saltstack.com/\fP
  34140. .SS Step 3 \- Create With Salt States
  34141. .sp
  34142. Next some Salt States are needed, for this example a very basic state which
  34143. installs \fIvim\fP is used, but anything Salt States can do can be done here,
  34144. please see the Salt States Introduction Tutorial to learn more about Salt
  34145. States:
  34146. \fI\%https://docs.saltstack.com/en/stage/getstarted/config/\fP
  34147. .sp
  34148. For this tutorial, simply create a small state file in \fI/srv/salt/vim.sls\fP:
  34149. .INDENT 0.0
  34150. .INDENT 3.5
  34151. .sp
  34152. .nf
  34153. .ft C
  34154. vim:
  34155. pkg.installed
  34156. .ft P
  34157. .fi
  34158. .UNINDENT
  34159. .UNINDENT
  34160. .sp
  34161. \fBNOTE:\fP
  34162. .INDENT 0.0
  34163. .INDENT 3.5
  34164. The base image you choose will need to have python 2.6 or 2.7 installed.
  34165. We are hoping to resolve this constraint in a future release.
  34166. .sp
  34167. If \fIbase\fP is omitted the default image used is a minimal openSUSE
  34168. image with Python support, maintained by SUSE
  34169. .UNINDENT
  34170. .UNINDENT
  34171. .sp
  34172. Next run the \fIdocker.sls_build\fP command:
  34173. .INDENT 0.0
  34174. .INDENT 3.5
  34175. .sp
  34176. .nf
  34177. .ft C
  34178. salt\-call \-\-local dockerng.sls_build test base=my_base_image mods=vim
  34179. .ft P
  34180. .fi
  34181. .UNINDENT
  34182. .UNINDENT
  34183. .sp
  34184. Now we have a fresh image called \fItest\fP to work with and vim has been
  34185. installed.
  34186. .SS Step 4 \- Running Commands Inside the Container
  34187. .sp
  34188. Salt can now run remote execution functions inside the container with another
  34189. simple \fIsalt\-call\fP command:
  34190. .INDENT 0.0
  34191. .INDENT 3.5
  34192. .sp
  34193. .nf
  34194. .ft C
  34195. salt\-call \-\-local dockerng.call test test.version
  34196. salt\-call \-\-local dockerng.call test network.interfaces
  34197. salt\-call \-\-local dockerng.call test disk.usage
  34198. salt\-call \-\-local dockerng.call test pkg.list_pkgs
  34199. salt\-call \-\-local dockerng.call test service.running httpd
  34200. salt\-call \-\-local dockerng.call test cmd.run \(aqls \-l /etc\(aq
  34201. .ft P
  34202. .fi
  34203. .UNINDENT
  34204. .UNINDENT
  34205. .SS Automatic Updates / Frozen Deployments
  34206. .sp
  34207. New in version 0.10.3.d.
  34208. .sp
  34209. Salt has support for the
  34210. \fI\%Esky\fP application freezing and update
  34211. tool. This tool allows one to build a complete zipfile out of the salt scripts
  34212. and all their dependencies \- including shared objects / DLLs.
  34213. .SS Getting Started
  34214. .sp
  34215. To build frozen applications, suitable build environment will be needed for
  34216. each platform. You should probably set up a virtualenv in order to limit the
  34217. scope of Q/A.
  34218. .sp
  34219. This process does work on Windows. Directions are available at
  34220. \fI\%https://github.com/saltstack/salt\-windows\-install\fP for details on
  34221. installing Salt in Windows. Only the 32\-bit Python and dependencies have been
  34222. tested, but they have been tested on 64\-bit Windows.
  34223. .sp
  34224. Install \fBbbfreeze\fP, and then \fBesky\fP from PyPI in order to enable the
  34225. \fBbdist_esky\fP command in \fBsetup.py\fP\&. Salt itself must also be installed, in
  34226. addition to its dependencies.
  34227. .SS Building and Freezing
  34228. .sp
  34229. Once you have your tools installed and the environment configured, use
  34230. \fBsetup.py\fP to prepare the distribution files.
  34231. .INDENT 0.0
  34232. .INDENT 3.5
  34233. .sp
  34234. .nf
  34235. .ft C
  34236. python setup.py sdist
  34237. python setup.py bdist
  34238. .ft P
  34239. .fi
  34240. .UNINDENT
  34241. .UNINDENT
  34242. .sp
  34243. Once the distribution files are in place, Esky can be used traverse the module
  34244. tree and pack all the scripts up into a redistributable.
  34245. .INDENT 0.0
  34246. .INDENT 3.5
  34247. .sp
  34248. .nf
  34249. .ft C
  34250. python setup.py bdist_esky
  34251. .ft P
  34252. .fi
  34253. .UNINDENT
  34254. .UNINDENT
  34255. .sp
  34256. There will be an appropriately versioned \fBsalt\-VERSION.zip\fP in \fBdist/\fP if
  34257. everything went smoothly.
  34258. .SS Windows
  34259. .sp
  34260. \fBC:\ePython27\elib\esite\-packages\ezmq\fP will need to be added to the PATH
  34261. variable. This helps bbfreeze find the zmq DLL so it can pack it up.
  34262. .SS Using the Frozen Build
  34263. .sp
  34264. Unpack the zip file in the desired install location. Scripts like
  34265. \fBsalt\-minion\fP and \fBsalt\-call\fP will be in the root of the zip file. The
  34266. associated libraries and bootstrapping will be in the directories at the same
  34267. level. (Check the \fI\%Esky\fP documentation
  34268. for more information)
  34269. .sp
  34270. To support updating your minions in the wild, put the builds on a web server
  34271. that the minions can reach. \fBsalt.modules.saltutil.update()\fP will
  34272. trigger an update and (optionally) a restart of the minion service under the
  34273. new version.
  34274. .SS Troubleshooting
  34275. .SS A Windows minion isn\(aqt responding
  34276. .sp
  34277. The process dispatch on Windows is slower than it is on *nix. It may be
  34278. necessary to add \(aq\-t 15\(aq to salt commands to give minions plenty of time to
  34279. return.
  34280. .SS Windows and the Visual Studio Redist
  34281. .sp
  34282. The Visual C++ 2008 32\-bit redistributable will need to be installed on all
  34283. Windows minions. Esky has an option to pack the library into the zipfile,
  34284. but OpenSSL does not seem to acknowledge the new location. If a
  34285. \fBno OPENSSL_Applink\fP error appears on the console when trying to start a
  34286. frozen minion, the redistributable is not installed.
  34287. .SS Mixed Linux environments and Yum
  34288. .sp
  34289. The Yum Python module doesn\(aqt appear to be available on any of the standard
  34290. Python package mirrors. If RHEL/CentOS systems need to be supported, the frozen
  34291. build should created on that platform to support all the Linux nodes. Remember
  34292. to build the virtualenv with \fB\-\-system\-site\-packages\fP so that the \fByum\fP
  34293. module is included.
  34294. .SS Automatic (Python) module discovery
  34295. .sp
  34296. Automatic (Python) module discovery does not work with the late\-loaded scheme
  34297. that Salt uses for (Salt) modules. Any misbehaving modules will need to be
  34298. explicitly added to the \fBfreezer_includes\fP in Salt\(aqs \fBsetup.py\fP\&. Always
  34299. check the zipped application to make sure that the necessary modules were
  34300. included.
  34301. .SS ESXi Proxy Minion
  34302. .sp
  34303. New in version 2015.8.4.
  34304. .sp
  34305. \fBNOTE:\fP
  34306. .INDENT 0.0
  34307. .INDENT 3.5
  34308. This tutorial assumes basic knowledge of Salt. To get up to speed, check
  34309. out the Salt Walkthrough\&.
  34310. .sp
  34311. This tutorial also assumes a basic understanding of Salt Proxy Minions. If
  34312. you\(aqre unfamiliar with Salt\(aqs Proxy Minion system, please read the
  34313. Salt Proxy Minion documentation and the
  34314. Salt Proxy Minion End\-to\-End Example
  34315. tutorial.
  34316. .sp
  34317. The third assumption that this tutorial makes is that you also have a
  34318. basic understanding of ESXi hosts. You can learn more about ESXi hosts on
  34319. \fI\%VMware\(aqs various resources\fP\&.
  34320. .UNINDENT
  34321. .UNINDENT
  34322. .sp
  34323. Salt\(aqs ESXi Proxy Minion allows a VMware ESXi host to be treated as an individual
  34324. Salt Minion, without installing a Salt Minion on the ESXi host.
  34325. .sp
  34326. Since an ESXi host may not necessarily run on an OS capable of hosting a Python
  34327. stack, the ESXi host can\(aqt run a regular Salt Minion directly. Therefore, Salt\(aqs
  34328. Proxy Minion functionality enables you to designate another machine to host a
  34329. proxy process that "proxies" communication from the Salt Master to the ESXi host.
  34330. The master does not know or care that the ESXi target is not a "real" Salt Minion.
  34331. .sp
  34332. More in\-depth conceptual reading on Proxy Minions can be found in the
  34333. Proxy Minion section of Salt\(aqs documentation.
  34334. .sp
  34335. Salt\(aqs ESXi Proxy Minion was added in the 2015.8.4 release of Salt.
  34336. .sp
  34337. \fBNOTE:\fP
  34338. .INDENT 0.0
  34339. .INDENT 3.5
  34340. Be aware that some functionality for the ESXi Proxy Minion may depend on the
  34341. type of license attached the ESXi host(s).
  34342. .sp
  34343. For example, certain services are only available to manipulate service state
  34344. or policies with a VMware vSphere Enterprise or Enterprise Plus license, while
  34345. others are available with a Standard license. The \fBntpd\fP service is restricted
  34346. to an Enterprise Plus license, while \fBssh\fP is available via the Standard
  34347. license.
  34348. .sp
  34349. Please see the \fI\%vSphere Comparison\fP page for more information.
  34350. .UNINDENT
  34351. .UNINDENT
  34352. .SS Dependencies
  34353. .sp
  34354. Manipulation of the ESXi host via a Proxy Minion requires the machine running
  34355. the Proxy Minion process to have the ESXCLI package (and all of its dependencies)
  34356. and the pyVmomi Python Library to be installed.
  34357. .SS ESXi Password
  34358. .sp
  34359. The ESXi Proxy Minion uses VMware\(aqs API to perform tasks on the host as if it was
  34360. a regular Salt Minion. In order to access the API that is already running on the
  34361. ESXi host, the ESXi host must have a username and password that is used to log
  34362. into the host. The username is usually \fBroot\fP\&. Before Salt can access the ESXi
  34363. host via VMware\(aqs API, a default password \fImust\fP be set on the host.
  34364. .SS pyVmomi
  34365. .sp
  34366. The pyVmomi Python library must be installed on the machine that is running the
  34367. proxy process. pyVmomi can be installed via pip:
  34368. .INDENT 0.0
  34369. .INDENT 3.5
  34370. .sp
  34371. .nf
  34372. .ft C
  34373. pip install pyVmomi
  34374. .ft P
  34375. .fi
  34376. .UNINDENT
  34377. .UNINDENT
  34378. .sp
  34379. \fBNOTE:\fP
  34380. .INDENT 0.0
  34381. .INDENT 3.5
  34382. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  34383. versions of Python. If using version 6.0 of pyVmomi, the machine that you
  34384. are running the proxy minion process from must have either Python 2.6,
  34385. Python 2.7.9, or newer. This is due to an upstream dependency in pyVmomi 6.0
  34386. that is not supported in Python version 2.7 to 2.7.8. If the
  34387. version of Python running the proxy process is not in the supported range, you
  34388. will need to install an earlier version of pyVmomi. See \fI\%Issue #29537\fP for
  34389. more information.
  34390. .UNINDENT
  34391. .UNINDENT
  34392. .sp
  34393. Based on the note above, to install an earlier version of pyVmomi than the
  34394. version currently listed in PyPi, run the following:
  34395. .INDENT 0.0
  34396. .INDENT 3.5
  34397. .sp
  34398. .nf
  34399. .ft C
  34400. pip install pyVmomi==5.5.0.2014.1.1
  34401. .ft P
  34402. .fi
  34403. .UNINDENT
  34404. .UNINDENT
  34405. .sp
  34406. The 5.5.0.2014.1.1 is a known stable version that the original ESXi Proxy Minion
  34407. was developed against.
  34408. .SS ESXCLI
  34409. .sp
  34410. Currently, about a third of the functions used for the ESXi Proxy Minion require
  34411. the ESXCLI package be installed on the machine running the Proxy Minion process.
  34412. .sp
  34413. The ESXCLI package is also referred to as the VMware vSphere CLI, or vCLI. VMware
  34414. provides vCLI package installation instructions for \fI\%vSphere 5.5\fP and
  34415. \fI\%vSphere 6.0\fP\&.
  34416. .sp
  34417. Once all of the required dependencies are in place and the vCLI package is
  34418. installed, you can check to see if you can connect to your ESXi host by running
  34419. the following command:
  34420. .INDENT 0.0
  34421. .INDENT 3.5
  34422. .sp
  34423. .nf
  34424. .ft C
  34425. esxcli \-s <host\-location> \-u <username> \-p <password> system syslog config get
  34426. .ft P
  34427. .fi
  34428. .UNINDENT
  34429. .UNINDENT
  34430. .sp
  34431. If the connection was successful, ESXCLI was successfully installed on your system.
  34432. You should see output related to the ESXi host\(aqs syslog configuration.
  34433. .SS Configuration
  34434. .sp
  34435. There are several places where various configuration values need to be set in
  34436. order for the ESXi Proxy Minion to run and connect properly.
  34437. .SS Proxy Config File
  34438. .sp
  34439. On the machine that will be running the Proxy Minion process(es), a proxy config
  34440. file must be in place. This file should be located in the \fB/etc/salt/\fP directory
  34441. and should be named \fBproxy\fP\&. If the file is not there by default, create it.
  34442. .sp
  34443. This file should contain the location of your Salt Master that the Salt Proxy
  34444. will connect to.
  34445. .sp
  34446. Example Proxy Config File:
  34447. .INDENT 0.0
  34448. .INDENT 3.5
  34449. .sp
  34450. .nf
  34451. .ft C
  34452. # /etc/salt/proxy
  34453. master: <salt\-master\-location>
  34454. .ft P
  34455. .fi
  34456. .UNINDENT
  34457. .UNINDENT
  34458. .SS Pillar Profiles
  34459. .sp
  34460. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  34461. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  34462. the Proxy ID. At a minimum for communication with the ESXi host, the pillar
  34463. should look like this:
  34464. .INDENT 0.0
  34465. .INDENT 3.5
  34466. .sp
  34467. .nf
  34468. .ft C
  34469. proxy:
  34470. proxytype: esxi
  34471. host: <ip or dns name of esxi host>
  34472. username: <ESXi username>
  34473. passwords:
  34474. \- first_password
  34475. \- second_password
  34476. \- third_password
  34477. .ft P
  34478. .fi
  34479. .UNINDENT
  34480. .UNINDENT
  34481. .sp
  34482. Some other optional settings are \fBprotocol\fP and \fBport\fP\&. These can be added
  34483. to the pillar configuration.
  34484. .SS proxytype
  34485. .sp
  34486. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  34487. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  34488. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  34489. own proxy module, for example). To use this ESXi Proxy Module, set this to
  34490. \fBesxi\fP\&.
  34491. .SS host
  34492. .sp
  34493. The location, or ip/dns, of the ESXi host. Required.
  34494. .SS username
  34495. .sp
  34496. The username used to login to the ESXi host, such as \fBroot\fP\&. Required.
  34497. .SS passwords
  34498. .sp
  34499. A list of passwords to be used to try and login to the ESXi host. At least
  34500. one password in this list is required.
  34501. .sp
  34502. The proxy integration will try the passwords listed in order. It is
  34503. configured this way so you can have a regular password and the password you
  34504. may be updating for an ESXi host either via the
  34505. \fBvsphere.update_host_password\fP
  34506. execution module function or via the
  34507. \fBesxi.password_present\fP state
  34508. function. This way, after the password is changed, you should not need to
  34509. restart the proxy minion\-\-it should just pick up the new password
  34510. provided in the list. You can then change pillar at will to move that
  34511. password to the front and retire the unused ones.
  34512. .sp
  34513. Use\-case/reasoning for using a list of passwords: You are setting up an
  34514. ESXi host for the first time, and the host comes with a default password.
  34515. You know that you\(aqll be changing this password during your initial setup
  34516. from the default to a new password. If you only have one password option,
  34517. and if you have a state changing the password, any remote execution commands
  34518. or states that run after the password change will not be able to run on the
  34519. host until the password is updated in Pillar and the Proxy Minion process is
  34520. restarted.
  34521. .sp
  34522. This allows you to use any number of potential fallback passwords.
  34523. .sp
  34524. \fBNOTE:\fP
  34525. .INDENT 0.0
  34526. .INDENT 3.5
  34527. When a password is changed on the host to one in the list of possible
  34528. passwords, the further down on the list the password is, the longer
  34529. individual commands will take to return. This is due to the nature of
  34530. pyVmomi\(aqs login system. We have to wait for the first attempt to fail
  34531. before trying the next password on the list.
  34532. .sp
  34533. This scenario is especially true, and even slower, when the proxy
  34534. minion first starts. If the correct password is not the first password
  34535. on the list, it may take up to a minute for \fBtest.version\fP to respond
  34536. with salt\(aqs version installed (Example: \fB2018.3.4\fP\&. Once the initial
  34537. authorization is complete, the responses for commands will be a little
  34538. faster.
  34539. .sp
  34540. To avoid these longer waiting periods, SaltStack recommends moving the
  34541. correct password to the top of the list and restarting the proxy minion
  34542. at your earliest convenience.
  34543. .UNINDENT
  34544. .UNINDENT
  34545. .SS protocol
  34546. .sp
  34547. If the ESXi host is not using the default protocol, set this value to an
  34548. alternate protocol. Default is \fBhttps\fP\&. For example:
  34549. .SS port
  34550. .sp
  34551. If the ESXi host is not using the default port, set this value to an
  34552. alternate port. Default is \fB443\fP\&.
  34553. .SS Example Configuration Files
  34554. .sp
  34555. An example of all of the basic configurations that need to be in place before
  34556. starting the Proxy Minion processes includes the Proxy Config File, Pillar
  34557. Top File, and any individual Proxy Minion Pillar files.
  34558. .sp
  34559. In this example, we\(aqll assuming there are two ESXi hosts to connect to. Therefore,
  34560. we\(aqll be creating two Proxy Minion config files, one config for each ESXi host.
  34561. .sp
  34562. Proxy Config File:
  34563. .INDENT 0.0
  34564. .INDENT 3.5
  34565. .sp
  34566. .nf
  34567. .ft C
  34568. # /etc/salt/proxy
  34569. master: <salt\-master\-location>
  34570. .ft P
  34571. .fi
  34572. .UNINDENT
  34573. .UNINDENT
  34574. .sp
  34575. Pillar Top File:
  34576. .INDENT 0.0
  34577. .INDENT 3.5
  34578. .sp
  34579. .nf
  34580. .ft C
  34581. # /srv/pillar/top.sls
  34582. base:
  34583. \(aqesxi\-1\(aq:
  34584. \- esxi\-1
  34585. \(aqesxi\-2\(aq:
  34586. \- esxi\-2
  34587. .ft P
  34588. .fi
  34589. .UNINDENT
  34590. .UNINDENT
  34591. .sp
  34592. Pillar Config File for the first ESXi host, esxi\-1:
  34593. .INDENT 0.0
  34594. .INDENT 3.5
  34595. .sp
  34596. .nf
  34597. .ft C
  34598. # /srv/pillar/esxi\-1.sls
  34599. proxy:
  34600. proxytype: esxi
  34601. host: esxi\-1.example.com
  34602. username: \(aqroot\(aq
  34603. passwords:
  34604. \- bad\-password\-1
  34605. \- backup\-bad\-password\-1
  34606. .ft P
  34607. .fi
  34608. .UNINDENT
  34609. .UNINDENT
  34610. .sp
  34611. Pillar Config File for the second ESXi host, esxi\-2:
  34612. .INDENT 0.0
  34613. .INDENT 3.5
  34614. .sp
  34615. .nf
  34616. .ft C
  34617. # /srv/pillar/esxi\-2.sls
  34618. proxy:
  34619. proxytype: esxi
  34620. host: esxi\-2.example.com
  34621. username: \(aqroot\(aq
  34622. passwords:
  34623. \- bad\-password\-2
  34624. \- backup\-bad\-password\-2
  34625. .ft P
  34626. .fi
  34627. .UNINDENT
  34628. .UNINDENT
  34629. .SS Starting the Proxy Minion
  34630. .sp
  34631. Once all of the correct configuration files are in place, it is time to start the
  34632. proxy processes!
  34633. .INDENT 0.0
  34634. .IP 1. 3
  34635. First, make sure your Salt Master is running.
  34636. .IP 2. 3
  34637. Start the first Salt Proxy, in debug mode, by giving the Proxy Minion process
  34638. and ID that matches the config file name created in the \fI\%Configuration\fP section.
  34639. .UNINDENT
  34640. .INDENT 0.0
  34641. .INDENT 3.5
  34642. .sp
  34643. .nf
  34644. .ft C
  34645. salt\-proxy \-\-proxyid=\(aqesxi\-1\(aq \-l debug
  34646. .ft P
  34647. .fi
  34648. .UNINDENT
  34649. .UNINDENT
  34650. .INDENT 0.0
  34651. .IP 1. 3
  34652. Accept the \fBesxi\-1\fP Proxy Minion\(aqs key on the Salt Master:
  34653. .UNINDENT
  34654. .INDENT 0.0
  34655. .INDENT 3.5
  34656. .sp
  34657. .nf
  34658. .ft C
  34659. # salt\-key \-L
  34660. Accepted Keys:
  34661. Denied Keys:
  34662. Unaccepted Keys:
  34663. esxi\-1
  34664. Rejected Keys:
  34665. #
  34666. # salt\-key \-a esxi\-1
  34667. The following keys are going to be accepted:
  34668. Unaccepted Keys:
  34669. esxi\-1
  34670. Proceed? [n/Y] y
  34671. Key for minion esxi\-1 accepted.
  34672. .ft P
  34673. .fi
  34674. .UNINDENT
  34675. .UNINDENT
  34676. .INDENT 0.0
  34677. .IP 1. 3
  34678. Repeat for the second Salt Proxy, this time we\(aqll run the proxy process as a
  34679. daemon, as an example.
  34680. .UNINDENT
  34681. .INDENT 0.0
  34682. .INDENT 3.5
  34683. .sp
  34684. .nf
  34685. .ft C
  34686. salt\-proxy \-\-proxyid=\(aqesxi\-2\(aq \-d
  34687. .ft P
  34688. .fi
  34689. .UNINDENT
  34690. .UNINDENT
  34691. .INDENT 0.0
  34692. .IP 1. 3
  34693. Accept the \fBesxi\-2\fP Proxy Minion\(aqs key on the Salt Master:
  34694. .UNINDENT
  34695. .INDENT 0.0
  34696. .INDENT 3.5
  34697. .sp
  34698. .nf
  34699. .ft C
  34700. # salt\-key \-L
  34701. Accepted Keys:
  34702. esxi\-1
  34703. Denied Keys:
  34704. Unaccepted Keys:
  34705. esxi\-2
  34706. Rejected Keys:
  34707. #
  34708. # salt\-key \-a esxi\-1
  34709. The following keys are going to be accepted:
  34710. Unaccepted Keys:
  34711. esxi\-2
  34712. Proceed? [n/Y] y
  34713. Key for minion esxi\-1 accepted.
  34714. .ft P
  34715. .fi
  34716. .UNINDENT
  34717. .UNINDENT
  34718. .INDENT 0.0
  34719. .IP 1. 3
  34720. Check and see if your Proxy Minions are responding:
  34721. .UNINDENT
  34722. .INDENT 0.0
  34723. .INDENT 3.5
  34724. .sp
  34725. .nf
  34726. .ft C
  34727. # salt \(aqesxi\-*\(aq test.version
  34728. esxi\-1:
  34729. True
  34730. esxi\-3:
  34731. True
  34732. .ft P
  34733. .fi
  34734. .UNINDENT
  34735. .UNINDENT
  34736. .SS Executing Commands
  34737. .sp
  34738. Now that you\(aqve configured your Proxy Minions and have them responding successfully
  34739. to a \fBtest.version\fP, we can start executing commands against the ESXi hosts via Salt.
  34740. .sp
  34741. It\(aqs important to understand how this particular proxy works, and there are a couple
  34742. of important pieces to be aware of in order to start running remote execution and
  34743. state commands against the ESXi host via a Proxy Minion: the
  34744. \fI\%vSphere Execution Module\fP, the \fI\%ESXi Execution Module\fP, and the \fI\%ESXi State Module\fP\&.
  34745. .SS vSphere Execution Module
  34746. .sp
  34747. The \fBSalt.modules.vsphere\fP is a
  34748. standard Salt execution module that does the bulk of the work for the ESXi Proxy
  34749. Minion. If you pull up the docs for it you\(aqll see that almost every function in
  34750. the module takes credentials (\fBusername\fP and \fBpassword\fP) and a target \fBhost\fP
  34751. argument. When credentials and a host aren\(aqt passed, Salt runs commands
  34752. through \fBpyVmomi\fP or \fBESXCLI\fP against the local machine. If you wanted,
  34753. you could run functions from this module on any machine where an appropriate
  34754. version of \fBpyVmomi\fP and \fBESXCLI\fP are installed, and that machine would reach
  34755. out over the network and communicate with the ESXi host.
  34756. .sp
  34757. You\(aqll notice that most of the functions in the vSphere module require a \fBhost\fP,
  34758. \fBusername\fP, and \fBpassword\fP\&. These parameters are contained in the Pillar files and
  34759. passed through to the function via the proxy process that is already running. You don\(aqt
  34760. need to provide these parameters when you execute the commands. See the
  34761. \fI\%Running Remote Execution Commands\fP section below for an example.
  34762. .SS ESXi Execution Module
  34763. .sp
  34764. In order for the Pillar information set up in the \fI\%Configuration\fP section above to
  34765. be passed to the function call in the vSphere Execution Module, the
  34766. \fBsalt.modules.esxi\fP execution module acts
  34767. as a "shim" between the vSphere execution module functions and the proxy process.
  34768. .sp
  34769. The "shim" takes the authentication credentials specified in the Pillar files and
  34770. passes them through to the \fBhost\fP, \fBusername\fP, \fBpassword\fP, and optional
  34771. \fBprotocol\fP and \fBport\fP options required by the vSphere Execution Module functions.
  34772. .sp
  34773. If the function takes more positional, or keyword, arguments you can append them
  34774. to the call. It\(aqs this shim that speaks to the ESXi host through the proxy, arranging
  34775. for the credentials and hostname to be pulled from the Pillar section for the ESXi
  34776. Proxy Minion.
  34777. .sp
  34778. Because of the presence of the shim, to lookup documentation for what
  34779. functions you can use to interface with the ESXi host, you\(aqll want to
  34780. look in \fBsalt.modules.vsphere\fP
  34781. instead of \fBsalt.modules.esxi\fP\&.
  34782. .SS Running Remote Execution Commands
  34783. .sp
  34784. To run commands from the Salt Master to execute, via the ESXi Proxy Minion, against
  34785. the ESXi host, you use the \fBesxi.cmd <vsphere\-function\-name>\fP syntax to call
  34786. functions located in the vSphere Execution Module. Both args and kwargs needed
  34787. for various vsphere execution module functions must be passed through in a kwarg\-
  34788. type manor. For example:
  34789. .INDENT 0.0
  34790. .INDENT 3.5
  34791. .sp
  34792. .nf
  34793. .ft C
  34794. salt \(aqesxi\-*\(aq esxi.cmd system_info
  34795. salt \(aqexsi\-*\(aq esxi.cmd get_service_running service_name=\(aqssh\(aq
  34796. .ft P
  34797. .fi
  34798. .UNINDENT
  34799. .UNINDENT
  34800. .SS ESXi State Module
  34801. .sp
  34802. The ESXi State Module functions similarly to other state modules. The "shim" provided
  34803. by the \fI\%ESXi Execution Module\fP passes the necessary \fBhost\fP, \fBusername\fP, and
  34804. \fBpassword\fP credentials through, so those options don\(aqt need to be provided in the
  34805. state. Other than that, state files are written and executed just like any other
  34806. Salt state. See the \fBsalt.modules.esxi\fP state
  34807. for ESXi state functions.
  34808. .sp
  34809. The follow state file is an example of how to configure various pieces of an ESXi host
  34810. including enabling SSH, uploading and SSH key, configuring a coredump network config,
  34811. syslog, ntp, enabling VMotion, resetting a host password, and more.
  34812. .INDENT 0.0
  34813. .INDENT 3.5
  34814. .sp
  34815. .nf
  34816. .ft C
  34817. # /srv/salt/configure\-esxi.sls
  34818. configure\-host\-ssh:
  34819. esxi.ssh_configured:
  34820. \- service_running: True
  34821. \- ssh_key_file: /etc/salt/ssh_keys/my_key.pub
  34822. \- service_policy: \(aqautomatic\(aq
  34823. \- service_restart: True
  34824. \- certificate_verify: True
  34825. configure\-host\-coredump:
  34826. esxi.coredump_configured:
  34827. \- enabled: True
  34828. \- dump_ip: \(aqmy\-coredump\-ip.example.com\(aq
  34829. configure\-host\-syslog:
  34830. esxi.syslog_configured:
  34831. \- syslog_configs:
  34832. loghost: ssl://localhost:5432,tcp://10.1.0.1:1514
  34833. default\-timeout: 120
  34834. \- firewall: True
  34835. \- reset_service: True
  34836. \- reset_syslog_config: True
  34837. \- reset_configs: loghost,default\-timeout
  34838. configure\-host\-ntp:
  34839. esxi.ntp_configured:
  34840. \- service_running: True
  34841. \- ntp_servers:
  34842. \- 192.174.1.100
  34843. \- 192.174.1.200
  34844. \- service_policy: \(aqautomatic\(aq
  34845. \- service_restart: True
  34846. configure\-vmotion:
  34847. esxi.vmotion_configured:
  34848. \- enabled: True
  34849. configure\-host\-vsan:
  34850. esxi.vsan_configured:
  34851. \- enabled: True
  34852. \- add_disks_to_vsan: True
  34853. configure\-host\-password:
  34854. esxi.password_present:
  34855. \- password: \(aqnew\-bad\-password\(aq
  34856. .ft P
  34857. .fi
  34858. .UNINDENT
  34859. .UNINDENT
  34860. .sp
  34861. States are called via the ESXi Proxy Minion just as they would on a regular minion.
  34862. For example:
  34863. .INDENT 0.0
  34864. .INDENT 3.5
  34865. .sp
  34866. .nf
  34867. .ft C
  34868. salt \(aqesxi\-*\(aq state.sls configure\-esxi test=true
  34869. salt \(aqesxi\-*\(aq state.sls configure\-esxi
  34870. .ft P
  34871. .fi
  34872. .UNINDENT
  34873. .UNINDENT
  34874. .SS Relevant Salt Files and Resources
  34875. .INDENT 0.0
  34876. .IP \(bu 2
  34877. \fBESXi Proxy Minion\fP
  34878. .IP \(bu 2
  34879. \fBESXi Execution Module\fP
  34880. .IP \(bu 2
  34881. \fBESXi State Module\fP
  34882. .IP \(bu 2
  34883. Salt Proxy Minion Docs
  34884. .IP \(bu 2
  34885. Salt Proxy Minion End\-to\-End Example
  34886. .IP \(bu 2
  34887. \fBvSphere Execution Module\fP
  34888. .UNINDENT
  34889. .SS Installing and Configuring Halite
  34890. .sp
  34891. \fBWARNING:\fP
  34892. .INDENT 0.0
  34893. .INDENT 3.5
  34894. Halite is deprecated
  34895. .sp
  34896. The Halite project is retired. The code will remain available on GitHub.
  34897. .UNINDENT
  34898. .UNINDENT
  34899. .sp
  34900. In this tutorial, we\(aqll walk through installing and setting up Halite. The
  34901. current version of Halite is considered pre\-alpha and is supported only in Salt
  34902. \fBv2014.1.0\fP or greater. Additional information is available on GitHub:
  34903. \fI\%https://github.com/saltstack/halite\fP
  34904. .sp
  34905. Before beginning this tutorial, ensure that the salt\-master is installed. To
  34906. install the salt\-master, please review the installation documentation:
  34907. \fI\%http://docs.saltstack.com/topics/installation/index.html\fP
  34908. .sp
  34909. \fBNOTE:\fP
  34910. .INDENT 0.0
  34911. .INDENT 3.5
  34912. Halite only works with Salt versions greater than 2014.1.0.
  34913. .UNINDENT
  34914. .UNINDENT
  34915. .SS Installing Halite Via Package
  34916. .sp
  34917. On CentOS, RHEL, or Fedora:
  34918. .INDENT 0.0
  34919. .INDENT 3.5
  34920. .sp
  34921. .nf
  34922. .ft C
  34923. $ yum install python\-halite
  34924. .ft P
  34925. .fi
  34926. .UNINDENT
  34927. .UNINDENT
  34928. .sp
  34929. \fBNOTE:\fP
  34930. .INDENT 0.0
  34931. .INDENT 3.5
  34932. By default python\-halite only installs CherryPy. If you would like to use
  34933. a different webserver please review the instructions below to install
  34934. pip and your server of choice. The package does not modify the master
  34935. configuration with \fB/etc/salt/master\fP\&.
  34936. .UNINDENT
  34937. .UNINDENT
  34938. .SS Installing Halite Using pip
  34939. .sp
  34940. To begin the installation of Halite from PyPI, you\(aqll need to install pip. The
  34941. Salt package, as well as the bootstrap, do not install pip by default.
  34942. .sp
  34943. On CentOS, RHEL, or Fedora:
  34944. .INDENT 0.0
  34945. .INDENT 3.5
  34946. .sp
  34947. .nf
  34948. .ft C
  34949. $ yum install python\-pip
  34950. .ft P
  34951. .fi
  34952. .UNINDENT
  34953. .UNINDENT
  34954. .sp
  34955. On Debian:
  34956. .INDENT 0.0
  34957. .INDENT 3.5
  34958. .sp
  34959. .nf
  34960. .ft C
  34961. $ apt\-get install python\-pip
  34962. .ft P
  34963. .fi
  34964. .UNINDENT
  34965. .UNINDENT
  34966. .sp
  34967. Once you have pip installed, use it to install halite:
  34968. .INDENT 0.0
  34969. .INDENT 3.5
  34970. .sp
  34971. .nf
  34972. .ft C
  34973. $ pip install \-U halite
  34974. .ft P
  34975. .fi
  34976. .UNINDENT
  34977. .UNINDENT
  34978. .sp
  34979. Depending on the webserver you want to run halite through, you\(aqll need to
  34980. install that piece as well. On RHEL based distros, use one of the following:
  34981. .INDENT 0.0
  34982. .INDENT 3.5
  34983. .sp
  34984. .nf
  34985. .ft C
  34986. $ pip install cherrypy
  34987. .ft P
  34988. .fi
  34989. .UNINDENT
  34990. .UNINDENT
  34991. .INDENT 0.0
  34992. .INDENT 3.5
  34993. .sp
  34994. .nf
  34995. .ft C
  34996. $ pip install paste
  34997. .ft P
  34998. .fi
  34999. .UNINDENT
  35000. .UNINDENT
  35001. .INDENT 0.0
  35002. .INDENT 3.5
  35003. .sp
  35004. .nf
  35005. .ft C
  35006. $ yum install python\-devel
  35007. $ yum install gcc
  35008. $ pip install gevent
  35009. $ pip install pyopenssl
  35010. .ft P
  35011. .fi
  35012. .UNINDENT
  35013. .UNINDENT
  35014. .sp
  35015. On Debian based distributions:
  35016. .INDENT 0.0
  35017. .INDENT 3.5
  35018. .sp
  35019. .nf
  35020. .ft C
  35021. $ pip install CherryPy
  35022. .ft P
  35023. .fi
  35024. .UNINDENT
  35025. .UNINDENT
  35026. .INDENT 0.0
  35027. .INDENT 3.5
  35028. .sp
  35029. .nf
  35030. .ft C
  35031. $ pip install paste
  35032. .ft P
  35033. .fi
  35034. .UNINDENT
  35035. .UNINDENT
  35036. .INDENT 0.0
  35037. .INDENT 3.5
  35038. .sp
  35039. .nf
  35040. .ft C
  35041. $ apt\-get install gcc
  35042. $ apt\-get install python\-dev
  35043. $ apt\-get install libevent\-dev
  35044. $ pip install gevent
  35045. $ pip install pyopenssl
  35046. .ft P
  35047. .fi
  35048. .UNINDENT
  35049. .UNINDENT
  35050. .SS Configuring Halite Permissions
  35051. .sp
  35052. Configuring Halite access permissions is easy. By default, you only need to
  35053. ensure that the @runner group is configured. In the \fB/etc/salt/master\fP file,
  35054. uncomment and modify the following lines:
  35055. .INDENT 0.0
  35056. .INDENT 3.5
  35057. .sp
  35058. .nf
  35059. .ft C
  35060. external_auth:
  35061. pam:
  35062. testuser:
  35063. \- .*
  35064. \- \(aq@runner\(aq
  35065. .ft P
  35066. .fi
  35067. .UNINDENT
  35068. .UNINDENT
  35069. .sp
  35070. \fBNOTE:\fP
  35071. .INDENT 0.0
  35072. .INDENT 3.5
  35073. You cannot use the root user for pam login; it will fail to authenticate.
  35074. .UNINDENT
  35075. .UNINDENT
  35076. .sp
  35077. Halite uses the runner manage.present to get the status of minions, so runner
  35078. permissions are required. For example:
  35079. .INDENT 0.0
  35080. .INDENT 3.5
  35081. .sp
  35082. .nf
  35083. .ft C
  35084. external_auth:
  35085. pam:
  35086. mytestuser:
  35087. \- .*
  35088. \- \(aq@runner\(aq
  35089. \- \(aq@wheel\(aq
  35090. .ft P
  35091. .fi
  35092. .UNINDENT
  35093. .UNINDENT
  35094. .sp
  35095. Currently Halite allows, but does not require, any wheel modules.
  35096. .SS Configuring Halite Settings
  35097. .sp
  35098. Once you\(aqve configured the permissions for Halite, you\(aqll need to set up the
  35099. Halite settings in the /etc/salt/master file. Halite supports CherryPy, Paste, and Gevent out of the box.
  35100. .sp
  35101. To configure cherrypy, add the following to the bottom of your /etc/salt/master file:
  35102. .INDENT 0.0
  35103. .INDENT 3.5
  35104. .sp
  35105. .nf
  35106. .ft C
  35107. halite:
  35108. level: \(aqdebug\(aq
  35109. server: \(aqcherrypy\(aq
  35110. host: \(aq0.0.0.0\(aq
  35111. port: \(aq8080\(aq
  35112. cors: False
  35113. tls: True
  35114. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  35115. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  35116. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  35117. .ft P
  35118. .fi
  35119. .UNINDENT
  35120. .UNINDENT
  35121. .sp
  35122. If you wish to use paste:
  35123. .INDENT 0.0
  35124. .INDENT 3.5
  35125. .sp
  35126. .nf
  35127. .ft C
  35128. halite:
  35129. level: \(aqdebug\(aq
  35130. server: \(aqpaste\(aq
  35131. host: \(aq0.0.0.0\(aq
  35132. port: \(aq8080\(aq
  35133. cors: False
  35134. tls: True
  35135. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  35136. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  35137. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  35138. .ft P
  35139. .fi
  35140. .UNINDENT
  35141. .UNINDENT
  35142. .sp
  35143. To use gevent:
  35144. .INDENT 0.0
  35145. .INDENT 3.5
  35146. .sp
  35147. .nf
  35148. .ft C
  35149. halite:
  35150. level: \(aqdebug\(aq
  35151. server: \(aqgevent\(aq
  35152. host: \(aq0.0.0.0\(aq
  35153. port: \(aq8080\(aq
  35154. cors: False
  35155. tls: True
  35156. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  35157. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  35158. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  35159. .ft P
  35160. .fi
  35161. .UNINDENT
  35162. .UNINDENT
  35163. .sp
  35164. The "cherrypy" and "gevent" servers require the certpath and keypath files
  35165. to run tls/ssl. The .crt file holds the public cert and the .key file holds
  35166. the private key. Whereas the "paste" server requires a single .pem file that
  35167. contains both the cert and key. This can be created simply by concatenating
  35168. the .crt and .key files.
  35169. .sp
  35170. If you want to use a self\-signed cert, you can create one using the Salt.tls
  35171. module:
  35172. .sp
  35173. \fBNOTE:\fP
  35174. .INDENT 0.0
  35175. .INDENT 3.5
  35176. The following command needs to be run on your salt master.
  35177. .UNINDENT
  35178. .UNINDENT
  35179. .INDENT 0.0
  35180. .INDENT 3.5
  35181. .sp
  35182. .nf
  35183. .ft C
  35184. salt\-call tls.create_self_signed_cert tls
  35185. .ft P
  35186. .fi
  35187. .UNINDENT
  35188. .UNINDENT
  35189. .sp
  35190. Note that certs generated by the above command can be found under the \fB/etc/pki/tls/certs/\fP directory.
  35191. When using self\-signed certs, browsers will need approval before accepting the
  35192. cert. If the web application page has been cached with a non\-HTTPS version of
  35193. the app, then the browser cache will have to be cleared before it will
  35194. recognize and prompt to accept the self\-signed certificate.
  35195. .SS Starting Halite
  35196. .sp
  35197. Once you\(aqve configured the halite section of your /etc/salt/master, you can
  35198. restart the salt\-master service, and your halite instance will be available.
  35199. Depending on your configuration, the instance will be available either at
  35200. \fI\%https://localhost:8080/app\fP, \fI\%https://domain:8080/app\fP, or
  35201. \fI\%https://123.456.789.012:8080/app\fP .
  35202. .sp
  35203. \fBNOTE:\fP
  35204. .INDENT 0.0
  35205. .INDENT 3.5
  35206. halite requires an HTML 5 compliant browser.
  35207. .UNINDENT
  35208. .UNINDENT
  35209. .sp
  35210. All logs relating to halite are logged to the default /var/log/salt/master file.
  35211. .SS HTTP Modules
  35212. .sp
  35213. This tutorial demonstrates using the various HTTP modules available in Salt.
  35214. These modules wrap the Python \fBtornado\fP, \fBurllib2\fP, and \fBrequests\fP
  35215. libraries, extending them in a manner that is more consistent with Salt
  35216. workflows.
  35217. .SS The \fBsalt.utils.http\fP Library
  35218. .sp
  35219. This library forms the core of the HTTP modules. Since it is designed to be used
  35220. from the minion as an execution module, in addition to the master as a runner,
  35221. it was abstracted into this multi\-use library. This library can also be imported
  35222. by 3rd\-party programs wishing to take advantage of its extended functionality.
  35223. .sp
  35224. Core functionality of the execution, state, and runner modules is derived from
  35225. this library, so common usages between them are described here. Documentation
  35226. specific to each module is described below.
  35227. .sp
  35228. This library can be imported with:
  35229. .INDENT 0.0
  35230. .INDENT 3.5
  35231. .sp
  35232. .nf
  35233. .ft C
  35234. import salt.utils.http
  35235. .ft P
  35236. .fi
  35237. .UNINDENT
  35238. .UNINDENT
  35239. .SS Configuring Libraries
  35240. .sp
  35241. This library can make use of either \fBtornado\fP, which is required by Salt,
  35242. \fBurllib2\fP, which ships with Python, or \fBrequests\fP, which can be installed
  35243. separately. By default, \fBtornado\fP will be used. In order to switch to
  35244. \fBurllib2\fP, set the following variable:
  35245. .INDENT 0.0
  35246. .INDENT 3.5
  35247. .sp
  35248. .nf
  35249. .ft C
  35250. backend: urllib2
  35251. .ft P
  35252. .fi
  35253. .UNINDENT
  35254. .UNINDENT
  35255. .sp
  35256. In order to switch to \fBrequests\fP, set the following variable:
  35257. .INDENT 0.0
  35258. .INDENT 3.5
  35259. .sp
  35260. .nf
  35261. .ft C
  35262. backend: requests
  35263. .ft P
  35264. .fi
  35265. .UNINDENT
  35266. .UNINDENT
  35267. .sp
  35268. This can be set in the master or minion configuration file, or passed as an
  35269. option directly to any \fBhttp.query()\fP functions.
  35270. .SS \fBsalt.utils.http.query()\fP
  35271. .sp
  35272. This function forms a basic query, but with some add\-ons not present in the
  35273. \fBtornado\fP, \fBurllib2\fP, and \fBrequests\fP libraries. Not all functionality
  35274. currently available in these libraries has been added, but can be in future
  35275. iterations.
  35276. .SS HTTPS Request Methods
  35277. .sp
  35278. A basic query can be performed by calling this function with no more than a
  35279. single URL:
  35280. .INDENT 0.0
  35281. .INDENT 3.5
  35282. .sp
  35283. .nf
  35284. .ft C
  35285. salt.utils.http.query("http://example.com")
  35286. .ft P
  35287. .fi
  35288. .UNINDENT
  35289. .UNINDENT
  35290. .sp
  35291. By default the query will be performed with a \fBGET\fP method. The method can
  35292. be overridden with the \fBmethod\fP argument:
  35293. .INDENT 0.0
  35294. .INDENT 3.5
  35295. .sp
  35296. .nf
  35297. .ft C
  35298. salt.utils.http.query("http://example.com/delete/url", "DELETE")
  35299. .ft P
  35300. .fi
  35301. .UNINDENT
  35302. .UNINDENT
  35303. .sp
  35304. When using the \fBPOST\fP method (and others, such as \fBPUT\fP), extra data is usually
  35305. sent as well. This data can be sent directly (would be URL encoded when necessary),
  35306. or in whatever format is required by the remote server (XML, JSON, plain text, etc).
  35307. .INDENT 0.0
  35308. .INDENT 3.5
  35309. .sp
  35310. .nf
  35311. .ft C
  35312. salt.utils.http.query(
  35313. "http://example.com/post/url", method="POST", data=json.dumps(mydict)
  35314. )
  35315. .ft P
  35316. .fi
  35317. .UNINDENT
  35318. .UNINDENT
  35319. .SS Data Formatting and Templating
  35320. .sp
  35321. Bear in mind that the data must be sent pre\-formatted; this function will not
  35322. format it for you. However, a templated file stored on the local system may be
  35323. passed through, along with variables to populate it with. To pass through only
  35324. the file (untemplated):
  35325. .INDENT 0.0
  35326. .INDENT 3.5
  35327. .sp
  35328. .nf
  35329. .ft C
  35330. salt.utils.http.query(
  35331. "http://example.com/post/url", method="POST", data_file="/srv/salt/somefile.xml"
  35332. )
  35333. .ft P
  35334. .fi
  35335. .UNINDENT
  35336. .UNINDENT
  35337. .sp
  35338. To pass through a file that contains jinja + yaml templating (the default):
  35339. .INDENT 0.0
  35340. .INDENT 3.5
  35341. .sp
  35342. .nf
  35343. .ft C
  35344. salt.utils.http.query(
  35345. "http://example.com/post/url",
  35346. method="POST",
  35347. data_file="/srv/salt/somefile.jinja",
  35348. data_render=True,
  35349. template_dict={"key1": "value1", "key2": "value2"},
  35350. )
  35351. .ft P
  35352. .fi
  35353. .UNINDENT
  35354. .UNINDENT
  35355. .sp
  35356. To pass through a file that contains mako templating:
  35357. .INDENT 0.0
  35358. .INDENT 3.5
  35359. .sp
  35360. .nf
  35361. .ft C
  35362. salt.utils.http.query(
  35363. "http://example.com/post/url",
  35364. method="POST",
  35365. data_file="/srv/salt/somefile.mako",
  35366. data_render=True,
  35367. data_renderer="mako",
  35368. template_dict={"key1": "value1", "key2": "value2"},
  35369. )
  35370. .ft P
  35371. .fi
  35372. .UNINDENT
  35373. .UNINDENT
  35374. .sp
  35375. Because this function uses Salt\(aqs own rendering system, any Salt renderer can
  35376. be used. Because Salt\(aqs renderer requires \fB__opts__\fP to be set, an \fBopts\fP
  35377. dictionary should be passed in. If it is not, then the default \fB__opts__\fP
  35378. values for the node type (master or minion) will be used. Because this library
  35379. is intended primarily for use by minions, the default node type is \fBminion\fP\&.
  35380. However, this can be changed to \fBmaster\fP if necessary.
  35381. .INDENT 0.0
  35382. .INDENT 3.5
  35383. .sp
  35384. .nf
  35385. .ft C
  35386. salt.utils.http.query(
  35387. "http://example.com/post/url",
  35388. method="POST",
  35389. data_file="/srv/salt/somefile.jinja",
  35390. data_render=True,
  35391. template_dict={"key1": "value1", "key2": "value2"},
  35392. opts=__opts__,
  35393. )
  35394. salt.utils.http.query(
  35395. "http://example.com/post/url",
  35396. method="POST",
  35397. data_file="/srv/salt/somefile.jinja",
  35398. data_render=True,
  35399. template_dict={"key1": "value1", "key2": "value2"},
  35400. node="master",
  35401. )
  35402. .ft P
  35403. .fi
  35404. .UNINDENT
  35405. .UNINDENT
  35406. .SS Headers
  35407. .sp
  35408. Headers may also be passed through, either as a \fBheader_list\fP, a
  35409. \fBheader_dict\fP, or as a \fBheader_file\fP\&. As with the \fBdata_file\fP, the
  35410. \fBheader_file\fP may also be templated. Take note that because HTTP headers are
  35411. normally syntactically\-correct YAML, they will automatically be imported as an
  35412. a Python dict.
  35413. .INDENT 0.0
  35414. .INDENT 3.5
  35415. .sp
  35416. .nf
  35417. .ft C
  35418. salt.utils.http.query(
  35419. "http://example.com/delete/url",
  35420. method="POST",
  35421. header_file="/srv/salt/headers.jinja",
  35422. header_render=True,
  35423. header_renderer="jinja",
  35424. template_dict={"key1": "value1", "key2": "value2"},
  35425. )
  35426. .ft P
  35427. .fi
  35428. .UNINDENT
  35429. .UNINDENT
  35430. .sp
  35431. Because much of the data that would be templated between headers and data may be
  35432. the same, the \fBtemplate_dict\fP is the same for both. Correcting possible
  35433. variable name collisions is up to the user.
  35434. .SS Authentication
  35435. .sp
  35436. The \fBquery()\fP function supports basic HTTP authentication. A username and
  35437. password may be passed in as \fBusername\fP and \fBpassword\fP, respectively.
  35438. .INDENT 0.0
  35439. .INDENT 3.5
  35440. .sp
  35441. .nf
  35442. .ft C
  35443. salt.utils.http.query(
  35444. "http://example.com", username="larry", password="5700g3543v4r",
  35445. )
  35446. .ft P
  35447. .fi
  35448. .UNINDENT
  35449. .UNINDENT
  35450. .SS Cookies and Sessions
  35451. .sp
  35452. Cookies are also supported, using Python\(aqs built\-in \fBcookielib\fP\&. However, they
  35453. are turned off by default. To turn cookies on, set \fBcookies\fP to True.
  35454. .INDENT 0.0
  35455. .INDENT 3.5
  35456. .sp
  35457. .nf
  35458. .ft C
  35459. salt.utils.http.query("http://example.com", cookies=True)
  35460. .ft P
  35461. .fi
  35462. .UNINDENT
  35463. .UNINDENT
  35464. .sp
  35465. By default cookies are stored in Salt\(aqs cache directory, normally
  35466. \fB/var/cache/salt\fP, as a file called \fBcookies.txt\fP\&. However, this location
  35467. may be changed with the \fBcookie_jar\fP argument:
  35468. .INDENT 0.0
  35469. .INDENT 3.5
  35470. .sp
  35471. .nf
  35472. .ft C
  35473. salt.utils.http.query(
  35474. "http://example.com", cookies=True, cookie_jar="/path/to/cookie_jar.txt"
  35475. )
  35476. .ft P
  35477. .fi
  35478. .UNINDENT
  35479. .UNINDENT
  35480. .sp
  35481. By default, the format of the cookie jar is LWP (aka, lib\-www\-perl). This
  35482. default was chosen because it is a human\-readable text file. If desired, the
  35483. format of the cookie jar can be set to Mozilla:
  35484. .INDENT 0.0
  35485. .INDENT 3.5
  35486. .sp
  35487. .nf
  35488. .ft C
  35489. salt.utils.http.query(
  35490. "http://example.com",
  35491. cookies=True,
  35492. cookie_jar="/path/to/cookie_jar.txt",
  35493. cookie_format="mozilla",
  35494. )
  35495. .ft P
  35496. .fi
  35497. .UNINDENT
  35498. .UNINDENT
  35499. .sp
  35500. Because Salt commands are normally one\-off commands that are piped together,
  35501. this library cannot normally behave as a normal browser, with session cookies
  35502. that persist across multiple HTTP requests. However, the session can be
  35503. persisted in a separate cookie jar. The default filename for this file, inside
  35504. Salt\(aqs cache directory, is \fBcookies.session.p\fP\&. This can also be changed.
  35505. .INDENT 0.0
  35506. .INDENT 3.5
  35507. .sp
  35508. .nf
  35509. .ft C
  35510. salt.utils.http.query(
  35511. "http://example.com", persist_session=True, session_cookie_jar="/path/to/jar.p"
  35512. )
  35513. .ft P
  35514. .fi
  35515. .UNINDENT
  35516. .UNINDENT
  35517. .sp
  35518. The format of this file is msgpack, which is consistent with much of the rest
  35519. of Salt\(aqs internal structure. Historically, the extension for this file is
  35520. \fB\&.p\fP\&. There are no current plans to make this configurable.
  35521. .SS Proxy
  35522. .sp
  35523. If the \fBtornado\fP backend is used (\fBtornado\fP is the default), proxy
  35524. information configured in \fBproxy_host\fP, \fBproxy_port\fP, \fBproxy_username\fP,
  35525. \fBproxy_password\fP and \fBno_proxy\fP from the \fB__opts__\fP dictionary will be used. Normally
  35526. these are set in the minion configuration file.
  35527. .INDENT 0.0
  35528. .INDENT 3.5
  35529. .sp
  35530. .nf
  35531. .ft C
  35532. proxy_host: proxy.my\-domain
  35533. proxy_port: 31337
  35534. proxy_username: charon
  35535. proxy_password: obolus
  35536. no_proxy: [\(aq127.0.0.1\(aq, \(aqlocalhost\(aq]
  35537. .ft P
  35538. .fi
  35539. .UNINDENT
  35540. .UNINDENT
  35541. .INDENT 0.0
  35542. .INDENT 3.5
  35543. .sp
  35544. .nf
  35545. .ft C
  35546. salt.utils.http.query("http://example.com", opts=__opts__, backend="tornado")
  35547. .ft P
  35548. .fi
  35549. .UNINDENT
  35550. .UNINDENT
  35551. .SS Return Data
  35552. .sp
  35553. \fBNOTE:\fP
  35554. .INDENT 0.0
  35555. .INDENT 3.5
  35556. Return data encoding
  35557. .sp
  35558. If \fBdecode\fP is set to \fBTrue\fP, \fBquery()\fP will attempt to decode the
  35559. return data. \fBdecode_type\fP defaults to \fBauto\fP\&. Set it to a specific
  35560. encoding, \fBxml\fP, for example, to override autodetection.
  35561. .UNINDENT
  35562. .UNINDENT
  35563. .sp
  35564. Because Salt\(aqs http library was designed to be used with REST interfaces,
  35565. \fBquery()\fP will attempt to decode the data received from the remote server
  35566. when \fBdecode\fP is set to \fBTrue\fP\&. First it will check the \fBContent\-type\fP
  35567. header to try and find references to XML. If it does not find any, it will look
  35568. for references to JSON. If it does not find any, it will fall back to plain
  35569. text, which will not be decoded.
  35570. .sp
  35571. JSON data is translated into a dict using Python\(aqs built\-in \fBjson\fP library.
  35572. XML is translated using \fBsalt.utils.xml_util\fP, which will use Python\(aqs
  35573. built\-in XML libraries to attempt to convert the XML into a dict. In order to
  35574. force either JSON or XML decoding, the \fBdecode_type\fP may be set:
  35575. .INDENT 0.0
  35576. .INDENT 3.5
  35577. .sp
  35578. .nf
  35579. .ft C
  35580. salt.utils.http.query("http://example.com", decode_type="xml")
  35581. .ft P
  35582. .fi
  35583. .UNINDENT
  35584. .UNINDENT
  35585. .sp
  35586. Once translated, the return dict from \fBquery()\fP will include a dict called
  35587. \fBdict\fP\&.
  35588. .sp
  35589. If the data is not to be translated using one of these methods, decoding may be
  35590. turned off.
  35591. .INDENT 0.0
  35592. .INDENT 3.5
  35593. .sp
  35594. .nf
  35595. .ft C
  35596. salt.utils.http.query("http://example.com", decode=False)
  35597. .ft P
  35598. .fi
  35599. .UNINDENT
  35600. .UNINDENT
  35601. .sp
  35602. If decoding is turned on, and references to JSON or XML cannot be found, then
  35603. this module will default to plain text, and return the undecoded data as
  35604. \fBtext\fP (even if text is set to \fBFalse\fP; see below).
  35605. .sp
  35606. The \fBquery()\fP function can return the HTTP status code, headers, and/or text
  35607. as required. However, each must individually be turned on.
  35608. .INDENT 0.0
  35609. .INDENT 3.5
  35610. .sp
  35611. .nf
  35612. .ft C
  35613. salt.utils.http.query("http://example.com", status=True, headers=True, text=True)
  35614. .ft P
  35615. .fi
  35616. .UNINDENT
  35617. .UNINDENT
  35618. .sp
  35619. The return from these will be found in the return dict as \fBstatus\fP,
  35620. \fBheaders\fP and \fBtext\fP, respectively.
  35621. .SS Writing Return Data to Files
  35622. .sp
  35623. It is possible to write either the return data or headers to files, as soon as
  35624. the response is received from the server, but specifying file locations via the
  35625. \fBtext_out\fP or \fBheaders_out\fP arguments. \fBtext\fP and \fBheaders\fP do not need
  35626. to be returned to the user in order to do this.
  35627. .INDENT 0.0
  35628. .INDENT 3.5
  35629. .sp
  35630. .nf
  35631. .ft C
  35632. salt.utils.http.query(
  35633. "http://example.com",
  35634. text=False,
  35635. headers=False,
  35636. text_out="/path/to/url_download.txt",
  35637. headers_out="/path/to/headers_download.txt",
  35638. )
  35639. .ft P
  35640. .fi
  35641. .UNINDENT
  35642. .UNINDENT
  35643. .SS SSL Verification
  35644. .sp
  35645. By default, this function will verify SSL certificates. However, for testing or
  35646. debugging purposes, SSL verification can be turned off.
  35647. .INDENT 0.0
  35648. .INDENT 3.5
  35649. .sp
  35650. .nf
  35651. .ft C
  35652. salt.utils.http.query(
  35653. "https://example.com", verify_ssl=False,
  35654. )
  35655. .ft P
  35656. .fi
  35657. .UNINDENT
  35658. .UNINDENT
  35659. .SS CA Bundles
  35660. .sp
  35661. The \fBrequests\fP library has its own method of detecting which CA (certificate
  35662. authority) bundle file to use. Usually this is implemented by the packager for
  35663. the specific operating system distribution that you are using. However,
  35664. \fBurllib2\fP requires a little more work under the hood. By default, Salt will
  35665. try to auto\-detect the location of this file. However, if it is not in an
  35666. expected location, or a different path needs to be specified, it may be done so
  35667. using the \fBca_bundle\fP variable.
  35668. .INDENT 0.0
  35669. .INDENT 3.5
  35670. .sp
  35671. .nf
  35672. .ft C
  35673. salt.utils.http.query(
  35674. "https://example.com", ca_bundle="/path/to/ca_bundle.pem",
  35675. )
  35676. .ft P
  35677. .fi
  35678. .UNINDENT
  35679. .UNINDENT
  35680. .SS Updating CA Bundles
  35681. .sp
  35682. The \fBupdate_ca_bundle()\fP function can be used to update the bundle file at a
  35683. specified location. If the target location is not specified, then it will
  35684. attempt to auto\-detect the location of the bundle file. If the URL to download
  35685. the bundle from does not exist, a bundle will be downloaded from the cURL
  35686. website.
  35687. .sp
  35688. CAUTION: The \fBtarget\fP and the \fBsource\fP should always be specified! Failure
  35689. to specify the \fBtarget\fP may result in the file being written to the wrong
  35690. location on the local system. Failure to specify the \fBsource\fP may cause the
  35691. upstream URL to receive excess unnecessary traffic, and may cause a file to be
  35692. download which is hazardous or does not meet the needs of the user.
  35693. .INDENT 0.0
  35694. .INDENT 3.5
  35695. .sp
  35696. .nf
  35697. .ft C
  35698. salt.utils.http.update_ca_bundle(
  35699. target="/path/to/ca\-bundle.crt",
  35700. source="https://example.com/path/to/ca\-bundle.crt",
  35701. opts=__opts__,
  35702. )
  35703. .ft P
  35704. .fi
  35705. .UNINDENT
  35706. .UNINDENT
  35707. .sp
  35708. The \fBopts\fP parameter should also always be specified. If it is, then the
  35709. \fBtarget\fP and the \fBsource\fP may be specified in the relevant configuration
  35710. file (master or minion) as \fBca_bundle\fP and \fBca_bundle_url\fP, respectively.
  35711. .INDENT 0.0
  35712. .INDENT 3.5
  35713. .sp
  35714. .nf
  35715. .ft C
  35716. ca_bundle: /path/to/ca\-bundle.crt
  35717. ca_bundle_url: https://example.com/path/to/ca\-bundle.crt
  35718. .ft P
  35719. .fi
  35720. .UNINDENT
  35721. .UNINDENT
  35722. .sp
  35723. If Salt is unable to auto\-detect the location of the CA bundle, it will raise
  35724. an error.
  35725. .sp
  35726. The \fBupdate_ca_bundle()\fP function can also be passed a string or a list of
  35727. strings which represent files on the local system, which should be appended (in
  35728. the specified order) to the end of the CA bundle file. This is useful in
  35729. environments where private certs need to be made available, and are not
  35730. otherwise reasonable to add to the bundle file.
  35731. .INDENT 0.0
  35732. .INDENT 3.5
  35733. .sp
  35734. .nf
  35735. .ft C
  35736. salt.utils.http.update_ca_bundle(
  35737. opts=__opts__,
  35738. merge_files=[
  35739. "/etc/ssl/private_cert_1.pem",
  35740. "/etc/ssl/private_cert_2.pem",
  35741. "/etc/ssl/private_cert_3.pem",
  35742. ],
  35743. )
  35744. .ft P
  35745. .fi
  35746. .UNINDENT
  35747. .UNINDENT
  35748. .SS Test Mode
  35749. .sp
  35750. This function may be run in test mode. This mode will perform all work up until
  35751. the actual HTTP request. By default, instead of performing the request, an empty
  35752. dict will be returned. Using this function with \fBTRACE\fP logging turned on will
  35753. reveal the contents of the headers and POST data to be sent.
  35754. .sp
  35755. Rather than returning an empty dict, an alternate \fBtest_url\fP may be passed in.
  35756. If this is detected, then test mode will replace the \fBurl\fP with the
  35757. \fBtest_url\fP, set \fBtest\fP to \fBTrue\fP in the return data, and perform the rest
  35758. of the requested operations as usual. This allows a custom, non\-destructive URL
  35759. to be used for testing when necessary.
  35760. .SS Execution Module
  35761. .sp
  35762. The \fBhttp\fP execution module is a very thin wrapper around the
  35763. \fBsalt.utils.http\fP library. The \fBopts\fP can be passed through as well, but if
  35764. they are not specified, the minion defaults will be used as necessary.
  35765. .sp
  35766. Because passing complete data structures from the command line can be tricky at
  35767. best and dangerous (in terms of execution injection attacks) at worse, the
  35768. \fBdata_file\fP, and \fBheader_file\fP are likely to see more use here.
  35769. .sp
  35770. All methods for the library are available in the execution module, as kwargs.
  35771. .INDENT 0.0
  35772. .INDENT 3.5
  35773. .sp
  35774. .nf
  35775. .ft C
  35776. salt myminion http.query http://example.com/restapi method=POST \e
  35777. username=\(aqlarry\(aq password=\(aq5700g3543v4r\(aq headers=True text=True \e
  35778. status=True decode_type=xml data_render=True \e
  35779. header_file=/tmp/headers.txt data_file=/tmp/data.txt \e
  35780. header_render=True cookies=True persist_session=True
  35781. .ft P
  35782. .fi
  35783. .UNINDENT
  35784. .UNINDENT
  35785. .SS Runner Module
  35786. .sp
  35787. Like the execution module, the \fBhttp\fP runner module is a very thin wrapper
  35788. around the \fBsalt.utils.http\fP library. The only significant difference is that
  35789. because runners execute on the master instead of a minion, a target is not
  35790. required, and default opts will be derived from the master config, rather than
  35791. the minion config.
  35792. .sp
  35793. All methods for the library are available in the runner module, as kwargs.
  35794. .INDENT 0.0
  35795. .INDENT 3.5
  35796. .sp
  35797. .nf
  35798. .ft C
  35799. salt\-run http.query http://example.com/restapi method=POST \e
  35800. username=\(aqlarry\(aq password=\(aq5700g3543v4r\(aq headers=True text=True \e
  35801. status=True decode_type=xml data_render=True \e
  35802. header_file=/tmp/headers.txt data_file=/tmp/data.txt \e
  35803. header_render=True cookies=True persist_session=True
  35804. .ft P
  35805. .fi
  35806. .UNINDENT
  35807. .UNINDENT
  35808. .SS State Module
  35809. .sp
  35810. The state module is a wrapper around the runner module, which applies stateful
  35811. logic to a query. All kwargs as listed above are specified as usual in state
  35812. files, but two more kwargs are available to apply stateful logic. A required
  35813. parameter is \fBmatch\fP, which specifies a pattern to look for in the return
  35814. text. By default, this will perform a string comparison of looking for the
  35815. value of match in the return text. In Python terms this looks like:
  35816. .INDENT 0.0
  35817. .INDENT 3.5
  35818. .sp
  35819. .nf
  35820. .ft C
  35821. if match in html_text:
  35822. return True
  35823. .ft P
  35824. .fi
  35825. .UNINDENT
  35826. .UNINDENT
  35827. .sp
  35828. If more complex pattern matching is required, a regular expression can be used
  35829. by specifying a \fBmatch_type\fP\&. By default this is set to \fBstring\fP, but it
  35830. can be manually set to \fBpcre\fP instead. Please note that despite the name, this
  35831. will use Python\(aqs \fBre.search()\fP rather than \fBre.match()\fP\&.
  35832. .sp
  35833. Therefore, the following states are valid:
  35834. .INDENT 0.0
  35835. .INDENT 3.5
  35836. .sp
  35837. .nf
  35838. .ft C
  35839. http://example.com/restapi:
  35840. http.query:
  35841. \- match: \(aqSUCCESS\(aq
  35842. \- username: \(aqlarry\(aq
  35843. \- password: \(aq5700g3543v4r\(aq
  35844. \- data_render: True
  35845. \- header_file: /tmp/headers.txt
  35846. \- data_file: /tmp/data.txt
  35847. \- header_render: True
  35848. \- cookies: True
  35849. \- persist_session: True
  35850. http://example.com/restapi:
  35851. http.query:
  35852. \- match_type: pcre
  35853. \- match: \(aq(?i)succe[ss|ed]\(aq
  35854. \- username: \(aqlarry\(aq
  35855. \- password: \(aq5700g3543v4r\(aq
  35856. \- data_render: True
  35857. \- header_file: /tmp/headers.txt
  35858. \- data_file: /tmp/data.txt
  35859. \- header_render: True
  35860. \- cookies: True
  35861. \- persist_session: True
  35862. .ft P
  35863. .fi
  35864. .UNINDENT
  35865. .UNINDENT
  35866. .sp
  35867. In addition to, or instead of a match pattern, the status code for a URL can be
  35868. checked. This is done using the \fBstatus\fP argument:
  35869. .INDENT 0.0
  35870. .INDENT 3.5
  35871. .sp
  35872. .nf
  35873. .ft C
  35874. http://example.com/:
  35875. http.query:
  35876. \- status: 200
  35877. .ft P
  35878. .fi
  35879. .UNINDENT
  35880. .UNINDENT
  35881. .sp
  35882. If both are specified, both will be checked, but if only one is \fBTrue\fP and the
  35883. other is \fBFalse\fP, then \fBFalse\fP will be returned. In this case, the comments
  35884. in the return data will contain information for troubleshooting.
  35885. .sp
  35886. Because this is a monitoring state, it will return extra data to code that
  35887. expects it. This data will always include \fBtext\fP and \fBstatus\fP\&. Optionally,
  35888. \fBheaders\fP and \fBdict\fP may also be requested by setting the \fBheaders\fP and
  35889. \fBdecode\fP arguments to True, respectively.
  35890. .SS Using Salt at scale
  35891. .sp
  35892. The focus of this tutorial will be building a Salt infrastructure for handling
  35893. large numbers of minions. This will include tuning, topology, and best practices.
  35894. .sp
  35895. For how to install the Salt Master please
  35896. go here: \fI\%Installing saltstack\fP
  35897. .sp
  35898. \fBNOTE:\fP
  35899. .INDENT 0.0
  35900. .INDENT 3.5
  35901. This tutorial is intended for large installations, although these same settings
  35902. won\(aqt hurt, it may not be worth the complexity to smaller installations.
  35903. .sp
  35904. When used with minions, the term \(aqmany\(aq refers to at least a thousand
  35905. and \(aqa few\(aq always means 500.
  35906. .sp
  35907. For simplicity reasons, this tutorial will default to the standard ports
  35908. used by Salt.
  35909. .UNINDENT
  35910. .UNINDENT
  35911. .SS The Master
  35912. .sp
  35913. The most common problems on the Salt Master are:
  35914. .INDENT 0.0
  35915. .IP 1. 3
  35916. too many minions authing at once
  35917. .IP 2. 3
  35918. too many minions re\-authing at once
  35919. .IP 3. 3
  35920. too many minions re\-connecting at once
  35921. .IP 4. 3
  35922. too many minions returning at once
  35923. .IP 5. 3
  35924. too few resources (CPU/HDD)
  35925. .UNINDENT
  35926. .sp
  35927. The first three are all "thundering herd" problems. To mitigate these issues
  35928. we must configure the minions to back\-off appropriately when the Master is
  35929. under heavy load.
  35930. .sp
  35931. The fourth is caused by masters with little hardware resources in combination
  35932. with a possible bug in ZeroMQ. At least that\(aqs what it looks like till today
  35933. (\fI\%Issue 118651\fP,
  35934. \fI\%Issue 5948\fP,
  35935. \fI\%Mail thread\fP)
  35936. .sp
  35937. To fully understand each problem, it is important to understand, how Salt works.
  35938. .sp
  35939. Very briefly, the Salt Master offers two services to the minions.
  35940. .INDENT 0.0
  35941. .IP \(bu 2
  35942. a job publisher on port 4505
  35943. .IP \(bu 2
  35944. an open port 4506 to receive the minions returns
  35945. .UNINDENT
  35946. .sp
  35947. All minions are always connected to the publisher on port 4505 and only connect
  35948. to the open return port 4506 if necessary. On an idle Master, there will only
  35949. be connections on port 4505.
  35950. .SS Too many minions authing
  35951. .sp
  35952. When the Minion service is first started up, it will connect to its Master\(aqs publisher
  35953. on port 4505. If too many minions are started at once, this can cause a "thundering herd".
  35954. This can be avoided by not starting too many minions at once.
  35955. .sp
  35956. The connection itself usually isn\(aqt the culprit, the more likely cause of master\-side
  35957. issues is the authentication that the Minion must do with the Master. If the Master
  35958. is too heavily loaded to handle the auth request it will time it out. The Minion
  35959. will then wait \fIacceptance_wait_time\fP to retry. If \fIacceptance_wait_time_max\fP is
  35960. set then the Minion will increase its wait time by the \fIacceptance_wait_time\fP each
  35961. subsequent retry until reaching \fIacceptance_wait_time_max\fP\&.
  35962. .SS Too many minions re\-authing
  35963. .sp
  35964. This is most likely to happen in the testing phase of a Salt deployment, when
  35965. all Minion keys have already been accepted, but the framework is being tested
  35966. and parameters are frequently changed in the Salt Master\(aqs configuration
  35967. file(s).
  35968. .sp
  35969. The Salt Master generates a new AES key to encrypt its publications at certain
  35970. events such as a Master restart or the removal of a Minion key. If you are
  35971. encountering this problem of too many minions re\-authing against the Master,
  35972. you will need to recalibrate your setup to reduce the rate of events like a
  35973. Master restart or Minion key removal (\fBsalt\-key \-d\fP).
  35974. .sp
  35975. When the Master generates a new AES key, the minions aren\(aqt notified of this
  35976. but will discover it on the next pub job they receive. When the Minion
  35977. receives such a job it will then re\-auth with the Master. Since Salt does
  35978. minion\-side filtering this means that all the minions will re\-auth on the next
  35979. command published on the master\-\- causing another "thundering herd". This can
  35980. be avoided by setting the
  35981. .INDENT 0.0
  35982. .INDENT 3.5
  35983. .sp
  35984. .nf
  35985. .ft C
  35986. random_reauth_delay: 60
  35987. .ft P
  35988. .fi
  35989. .UNINDENT
  35990. .UNINDENT
  35991. .sp
  35992. in the minions configuration file to a higher value and stagger the amount
  35993. of re\-auth attempts. Increasing this value will of course increase the time
  35994. it takes until all minions are reachable via Salt commands.
  35995. .SS Too many minions re\-connecting
  35996. .sp
  35997. By default the zmq socket will re\-connect every 100ms which for some larger
  35998. installations may be too quick. This will control how quickly the TCP session is
  35999. re\-established, but has no bearing on the auth load.
  36000. .sp
  36001. To tune the minions sockets reconnect attempts, there are a few values in
  36002. the sample configuration file (default values)
  36003. .INDENT 0.0
  36004. .INDENT 3.5
  36005. .sp
  36006. .nf
  36007. .ft C
  36008. recon_default: 1000
  36009. recon_max: 5000
  36010. recon_randomize: True
  36011. .ft P
  36012. .fi
  36013. .UNINDENT
  36014. .UNINDENT
  36015. .INDENT 0.0
  36016. .IP \(bu 2
  36017. recon_default: the default value the socket should use, i.e. 1000. This value is in
  36018. milliseconds. (1000ms = 1 second)
  36019. .IP \(bu 2
  36020. recon_max: the max value that the socket should use as a delay before trying to reconnect
  36021. This value is in milliseconds. (5000ms = 5 seconds)
  36022. .IP \(bu 2
  36023. recon_randomize: enables randomization between recon_default and recon_max
  36024. .UNINDENT
  36025. .sp
  36026. To tune this values to an existing environment, a few decision have to be made.
  36027. .INDENT 0.0
  36028. .IP 1. 3
  36029. How long can one wait, before the minions should be online and reachable via Salt?
  36030. .IP 2. 3
  36031. How many reconnects can the Master handle without a syn flood?
  36032. .UNINDENT
  36033. .sp
  36034. These questions can not be answered generally. Their answers depend on the
  36035. hardware and the administrators requirements.
  36036. .sp
  36037. Here is an example scenario with the goal, to have all minions reconnect
  36038. within a 60 second time\-frame on a Salt Master service restart.
  36039. .INDENT 0.0
  36040. .INDENT 3.5
  36041. .sp
  36042. .nf
  36043. .ft C
  36044. recon_default: 1000
  36045. recon_max: 59000
  36046. recon_randomize: True
  36047. .ft P
  36048. .fi
  36049. .UNINDENT
  36050. .UNINDENT
  36051. .sp
  36052. Each Minion will have a randomized reconnect value between \(aqrecon_default\(aq
  36053. and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  36054. and 60000ms (or between 1 and 60 seconds). The generated random\-value will
  36055. be doubled after each attempt to reconnect (ZeroMQ default behavior).
  36056. .sp
  36057. Lets say the generated random value is 11 seconds (or 11000ms).
  36058. .INDENT 0.0
  36059. .INDENT 3.5
  36060. .sp
  36061. .nf
  36062. .ft C
  36063. reconnect 1: wait 11 seconds
  36064. reconnect 2: wait 22 seconds
  36065. reconnect 3: wait 33 seconds
  36066. reconnect 4: wait 44 seconds
  36067. reconnect 5: wait 55 seconds
  36068. reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  36069. reconnect 7: wait 11 seconds
  36070. reconnect 8: wait 22 seconds
  36071. reconnect 9: wait 33 seconds
  36072. reconnect x: etc.
  36073. .ft P
  36074. .fi
  36075. .UNINDENT
  36076. .UNINDENT
  36077. .sp
  36078. With a thousand minions this will mean
  36079. .INDENT 0.0
  36080. .INDENT 3.5
  36081. .sp
  36082. .nf
  36083. .ft C
  36084. 1000/60 = ~16
  36085. .ft P
  36086. .fi
  36087. .UNINDENT
  36088. .UNINDENT
  36089. .sp
  36090. round about 16 connection attempts a second. These values should be altered to
  36091. values that match your environment. Keep in mind though, that it may grow over
  36092. time and that more minions might raise the problem again.
  36093. .SS Too many minions returning at once
  36094. .sp
  36095. This can also happen during the testing phase, if all minions are addressed at
  36096. once with
  36097. .INDENT 0.0
  36098. .INDENT 3.5
  36099. .sp
  36100. .nf
  36101. .ft C
  36102. $ salt * disk.usage
  36103. .ft P
  36104. .fi
  36105. .UNINDENT
  36106. .UNINDENT
  36107. .sp
  36108. it may cause thousands of minions trying to return their data to the Salt Master
  36109. open port 4506. Also causing a flood of syn\-flood if the Master can\(aqt handle that many
  36110. returns at once.
  36111. .sp
  36112. This can be easily avoided with Salt\(aqs batch mode:
  36113. .INDENT 0.0
  36114. .INDENT 3.5
  36115. .sp
  36116. .nf
  36117. .ft C
  36118. $ salt * disk.usage \-b 50
  36119. .ft P
  36120. .fi
  36121. .UNINDENT
  36122. .UNINDENT
  36123. .sp
  36124. This will only address 50 minions at once while looping through all addressed
  36125. minions.
  36126. .SS Too few resources
  36127. .sp
  36128. The masters resources always have to match the environment. There is no way
  36129. to give good advise without knowing the environment the Master is supposed to
  36130. run in. But here are some general tuning tips for different situations:
  36131. .SS The Master is CPU bound
  36132. .sp
  36133. Salt uses RSA\-Key\-Pairs on the masters and minions end. Both generate 4096
  36134. bit key\-pairs on first start. While the key\-size for the Master is currently
  36135. not configurable, the minions keysize can be configured with different
  36136. key\-sizes. For example with a 2048 bit key:
  36137. .INDENT 0.0
  36138. .INDENT 3.5
  36139. .sp
  36140. .nf
  36141. .ft C
  36142. keysize: 2048
  36143. .ft P
  36144. .fi
  36145. .UNINDENT
  36146. .UNINDENT
  36147. .sp
  36148. With thousands of decryptions, the amount of time that can be saved on the
  36149. masters end should not be neglected. See here for reference:
  36150. \fI\%Pull Request 9235\fP how much
  36151. influence the key\-size can have.
  36152. .sp
  36153. Downsizing the Salt Master\(aqs key is not that important, because the minions
  36154. do not encrypt as many messages as the Master does.
  36155. .sp
  36156. In installations with large or with complex pillar files, it is possible
  36157. for the master to exhibit poor performance as a result of having to render
  36158. many pillar files at once. This exhibit itself in a number of ways, both
  36159. as high load on the master and on minions which block on waiting for their
  36160. pillar to be delivered to them.
  36161. .sp
  36162. To reduce pillar rendering times, it is possible to cache pillars on the
  36163. master. To do this, see the set of master configuration options which
  36164. are prefixed with \fIpillar_cache\fP\&.
  36165. .sp
  36166. If many pillars are encrypted using \fBgpg\fP renderer, it
  36167. is possible to cache GPG data. To do this, see the set of master configuration
  36168. options which are prefixed with \fIgpg_cache\fP\&.
  36169. .sp
  36170. \fBNOTE:\fP
  36171. .INDENT 0.0
  36172. .INDENT 3.5
  36173. Caching pillars or GPG data on the master may introduce security
  36174. considerations. Be certain to read caveats outlined in the master
  36175. configuration file to understand how pillar caching may affect a master\(aqs
  36176. ability to protect sensitive data!
  36177. .UNINDENT
  36178. .UNINDENT
  36179. .SS The Master is disk IO bound
  36180. .sp
  36181. By default, the Master saves every Minion\(aqs return for every job in its
  36182. job\-cache. The cache can then be used later, to lookup results for previous
  36183. jobs. The default directory for this is:
  36184. .INDENT 0.0
  36185. .INDENT 3.5
  36186. .sp
  36187. .nf
  36188. .ft C
  36189. cachedir: /var/cache/salt
  36190. .ft P
  36191. .fi
  36192. .UNINDENT
  36193. .UNINDENT
  36194. .sp
  36195. and then in the \fB/proc\fP directory.
  36196. .sp
  36197. Each job return for every Minion is saved in a single file. Over time this
  36198. directory can grow quite large, depending on the number of published jobs. The
  36199. amount of files and directories will scale with the number of jobs published and
  36200. the retention time defined by
  36201. .INDENT 0.0
  36202. .INDENT 3.5
  36203. .sp
  36204. .nf
  36205. .ft C
  36206. keep_jobs: 24
  36207. .ft P
  36208. .fi
  36209. .UNINDENT
  36210. .UNINDENT
  36211. .INDENT 0.0
  36212. .INDENT 3.5
  36213. .sp
  36214. .nf
  36215. .ft C
  36216. 250 jobs/day * 2000 minions returns = 500,000 files a day
  36217. .ft P
  36218. .fi
  36219. .UNINDENT
  36220. .UNINDENT
  36221. .SS Use and External Job Cache
  36222. .sp
  36223. An external job cache allows for job storage to be placed on an external
  36224. system, such as a database.
  36225. .INDENT 0.0
  36226. .IP \(bu 2
  36227. ext_job_cache: this will have the minions store their return data directly
  36228. into a returner (not sent through the Master)
  36229. .IP \(bu 2
  36230. master_job_cache (New in \fI2014.7.0\fP): this will make the Master store the job
  36231. data using a returner (instead of the local job cache on disk).
  36232. .UNINDENT
  36233. .sp
  36234. If a master has many accepted keys, it may take a long time to publish a job
  36235. because the master must first determine the matching minions and deliver
  36236. that information back to the waiting client before the job can be published.
  36237. .sp
  36238. To mitigate this, a key cache may be enabled. This will reduce the load
  36239. on the master to a single file open instead of thousands or tens of thousands.
  36240. .sp
  36241. This cache is updated by the maintanence process, however, which means that
  36242. minions with keys that are accepted may not be targeted by the master
  36243. for up to sixty seconds by default.
  36244. .sp
  36245. To enable the master key cache, set \fIkey_cache: \(aqsched\(aq\fP in the master
  36246. configuration file.
  36247. .SS Disable The Job Cache
  36248. .sp
  36249. The job cache is a central component of the Salt Master and many aspects of
  36250. the Salt Master will not function correctly without a running job cache.
  36251. .sp
  36252. Disabling the job cache is \fBSTRONGLY DISCOURAGED\fP and should not be done
  36253. unless the master is being used to execute routines that require no history
  36254. or reliable feedback!
  36255. .sp
  36256. The job cache can be disabled:
  36257. .INDENT 0.0
  36258. .INDENT 3.5
  36259. .sp
  36260. .nf
  36261. .ft C
  36262. job_cache: False
  36263. .ft P
  36264. .fi
  36265. .UNINDENT
  36266. .UNINDENT
  36267. .SS How to Convert Jinja Logic to an Execution Module
  36268. .sp
  36269. \fBNOTE:\fP
  36270. .INDENT 0.0
  36271. .INDENT 3.5
  36272. This tutorial assumes a basic knowledge of Salt states and specifically
  36273. experience using the \fImaps.jinja\fP idiom.
  36274. .sp
  36275. This tutorial was written by a salt user who was told "if your maps.jinja
  36276. is too complicated, write an execution module!". If you are experiencing
  36277. over\-complicated jinja, read on.
  36278. .UNINDENT
  36279. .UNINDENT
  36280. .SS The Problem: Jinja Gone Wild
  36281. .sp
  36282. It is often said in the Salt community that "Jinja is not a Programming Language".
  36283. There\(aqs an even older saying known as Maslow\(aqs hammer.
  36284. It goes something like
  36285. "if all you have is a hammer, everything looks like a nail".
  36286. Jinja is a reliable hammer, and so is the \fImaps.jinja\fP idiom.
  36287. Unfortunately, it can lead to code that looks like the following.
  36288. .INDENT 0.0
  36289. .INDENT 3.5
  36290. .sp
  36291. .nf
  36292. .ft C
  36293. # storage/maps.yaml
  36294. {% import_yaml \(aqstorage/defaults.yaml\(aq as default_settings %}
  36295. {% set storage = default_settings.storage %}
  36296. {% do storage.update(salt[\(aqgrains.filter_by\(aq]({
  36297. \(aqDebian\(aq: {
  36298. },
  36299. \(aqRedHat\(aq: {
  36300. }
  36301. }, merge=salt[\(aqpillar.get\(aq](\(aqstorage:lookup\(aq))) %}
  36302. {% if \(aqVirtualBox\(aq == grains.get(\(aqvirtual\(aq, None) or \(aqoracle\(aq == grains.get(\(aqvirtual\(aq, None) %}
  36303. {% do storage.update({\(aqdepot_ip\(aq: \(aq192.168.33.81\(aq, \(aqserver_ip\(aq: \(aq192.168.33.51\(aq}) %}
  36304. {% else %}
  36305. {% set colo = pillar.get(\(aqinventory\(aq, {}).get(\(aqcolo\(aq, \(aqUnknown\(aq) %}
  36306. {% set servers_list = pillar.get(\(aqstorage_servers\(aq, {}).get(colo, [storage.depot_ip, ]) %}
  36307. {% if opts.id.startswith(\(aqfoo\(aq) %}
  36308. {% set modulus = servers_list | count %}
  36309. {% set integer_id = opts.id | replace(\(aqfoo\(aq, \(aq\(aq) | int %}
  36310. {% set server_index = integer_id % modulus %}
  36311. {% else %}
  36312. {% set server_index = 0 %}
  36313. {% endif %}
  36314. {% do storage.update({\(aqserver_ip\(aq: servers_list[server_index]}) %}
  36315. {% endif %}
  36316. {% for network, _ in salt.pillar.get(\(aqinventory:networks\(aq, {}) | dictsort %}
  36317. {% do storage.ipsets.hash_net.foo_networks.append(network) %}
  36318. {% endfor %}
  36319. .ft P
  36320. .fi
  36321. .UNINDENT
  36322. .UNINDENT
  36323. .sp
  36324. This is an example from the author\(aqs salt formulae demonstrating misuse of jinja.
  36325. Aside from being difficult to read and maintain,
  36326. accessing the logic it contains from a non\-jinja renderer
  36327. while probably possible is a significant barrier!
  36328. .SS Refactor
  36329. .sp
  36330. The first step is to reduce the maps.jinja file to something reasonable.
  36331. This gives us an idea of what the module we are writing needs to do.
  36332. There is a lot of logic around selecting a storage server ip.
  36333. Let\(aqs move that to an execution module.
  36334. .INDENT 0.0
  36335. .INDENT 3.5
  36336. .sp
  36337. .nf
  36338. .ft C
  36339. # storage/maps.yaml
  36340. {% import_yaml \(aqstorage/defaults.yaml\(aq as default_settings %}
  36341. {% set storage = default_settings.storage %}
  36342. {% do storage.update(salt[\(aqgrains.filter_by\(aq]({
  36343. \(aqDebian\(aq: {
  36344. },
  36345. \(aqRedHat\(aq: {
  36346. }
  36347. }, merge=salt[\(aqpillar.get\(aq](\(aqstorage:lookup\(aq))) %}
  36348. {% if \(aqVirtualBox\(aq == grains.get(\(aqvirtual\(aq, None) or \(aqoracle\(aq == grains.get(\(aqvirtual\(aq, None) %}
  36349. {% do storage.update({\(aqdepot_ip\(aq: \(aq192.168.33.81\(aq}) %}
  36350. {% endif %}
  36351. {% do storage.update({\(aqserver_ip\(aq: salt[\(aqstorage.ip\(aq]()}) %}
  36352. {% for network, _ in salt.pillar.get(\(aqinventory:networks\(aq, {}) | dictsort %}
  36353. {% do storage.ipsets.hash_net.af_networks.append(network) %}
  36354. {% endfor %}
  36355. .ft P
  36356. .fi
  36357. .UNINDENT
  36358. .UNINDENT
  36359. .sp
  36360. And then, write the module.
  36361. Note how the module encapsulates all of the logic around finding the storage server IP.
  36362. .INDENT 0.0
  36363. .INDENT 3.5
  36364. .sp
  36365. .nf
  36366. .ft C
  36367. # _modules/storage.py
  36368. #!python
  36369. """
  36370. Functions related to storage servers.
  36371. """
  36372. import re
  36373. def ips():
  36374. """
  36375. Provide a list of all local storage server IPs.
  36376. CLI Example::
  36377. salt \e* storage.ips
  36378. """
  36379. if __grains__.get("virtual", None) in ["VirtualBox", "oracle"]:
  36380. return [
  36381. "192.168.33.51",
  36382. ]
  36383. colo = __pillar__.get("inventory", {}).get("colo", "Unknown")
  36384. return __pillar__.get("storage_servers", {}).get(colo, ["unknown",])
  36385. def ip():
  36386. """
  36387. Select and return a local storage server IP.
  36388. This loadbalances across storage servers by using the modulus of the client\(aqs id number.
  36389. :maintainer: Andrew Hammond <ahammond@anchorfree.com>
  36390. :maturity: new
  36391. :depends: None
  36392. :platform: all
  36393. CLI Example::
  36394. salt \e* storage.ip
  36395. """
  36396. numerical_suffix = re.compile(r"^.*(\ed+)$")
  36397. servers_list = ips()
  36398. m = numerical_suffix.match(__grains__["id"])
  36399. if m:
  36400. modulus = len(servers_list)
  36401. server_number = int(m.group(1))
  36402. server_index = server_number % modulus
  36403. else:
  36404. server_index = 0
  36405. return servers_list[server_index]
  36406. .ft P
  36407. .fi
  36408. .UNINDENT
  36409. .UNINDENT
  36410. .SS Conclusion
  36411. .sp
  36412. That was... surprisingly straight\-forward.
  36413. Now the logic is available in every renderer, instead of just Jinja.
  36414. Best of all, it can be maintained in Python,
  36415. which is a whole lot easier than Jinja.
  36416. .SS Using Apache Libcloud for declarative and procedural multi\-cloud orchestration
  36417. .sp
  36418. New in version 2018.3.0.
  36419. .sp
  36420. \fBNOTE:\fP
  36421. .INDENT 0.0
  36422. .INDENT 3.5
  36423. This walkthrough assumes basic knowledge of Salt and Salt States. To get up to speed, check out the
  36424. Salt Walkthrough\&.
  36425. .UNINDENT
  36426. .UNINDENT
  36427. .sp
  36428. Apache Libcloud is a Python library which hides differences between different cloud provider APIs and allows
  36429. you to manage different cloud resources through a unified and easy to use API. Apache Libcloud supports over
  36430. 60 cloud platforms, including Amazon, Microsoft Azure, DigitalOcean, Google Cloud Platform and OpenStack.
  36431. .INDENT 0.0
  36432. .TP
  36433. .B Execution and state modules are available for Compute, DNS, Storage and Load Balancer drivers from Apache Libcloud in
  36434. SaltStack.
  36435. .UNINDENT
  36436. .INDENT 0.0
  36437. .IP \(bu 2
  36438. .INDENT 2.0
  36439. .TP
  36440. .B \fBlibcloud_compute\fP \- Compute \-
  36441. services such as OpenStack Nova, Amazon EC2, Microsoft Azure VMs
  36442. .UNINDENT
  36443. .IP \(bu 2
  36444. .INDENT 2.0
  36445. .TP
  36446. .B \fBlibcloud_dns\fP \- DNS as a Service \-
  36447. services such as Amazon Route 53 and Zerigo
  36448. .UNINDENT
  36449. .IP \(bu 2
  36450. .INDENT 2.0
  36451. .TP
  36452. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service \-
  36453. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36454. .UNINDENT
  36455. .IP \(bu 2
  36456. .INDENT 2.0
  36457. .TP
  36458. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN \-
  36459. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36460. .UNINDENT
  36461. .UNINDENT
  36462. .sp
  36463. These modules are designed as a way of having a multi\-cloud deployment and abstracting simple differences
  36464. between platform to design a high\-availability architecture.
  36465. .sp
  36466. The Apache Libcloud functionality is available through both execution modules and Salt states.
  36467. .SS Configuring Drivers
  36468. .sp
  36469. Drivers can be configured in the Salt Configuration/Minion settings. All libcloud modules expect a list of "profiles" to
  36470. be configured with authentication details for each driver.
  36471. .sp
  36472. Each driver will have a string identifier, these can be found in the libcloud.<api>.types.Provider class
  36473. for each API, \fI\%https://libcloud.readthedocs.io/en/latest/supported_providers.html\fP
  36474. .sp
  36475. Some drivers require additional parameters, which are documented in the Apache Libcloud documentation. For example,
  36476. GoDaddy DNS expects "\fIshopper_id\fP", which is the customer ID. These additional parameters can be added to the profile settings
  36477. and will be passed directly to the driver instantiation method.
  36478. .INDENT 0.0
  36479. .INDENT 3.5
  36480. .sp
  36481. .nf
  36482. .ft C
  36483. libcloud_dns:
  36484. godaddy:
  36485. driver: godaddy
  36486. shopper_id: 90425123
  36487. key: AFDDJFGIjDFVNSDIFNASMC
  36488. secret: FG(#f8vdfgjlkm)
  36489. libcloud_storage:
  36490. google:
  36491. driver: google_storage
  36492. key: GOOG4ASDIDFNVIdfnIVW
  36493. secret: R+qYE9hkfdhv89h4invhdfvird4Pq3an8rnK
  36494. .ft P
  36495. .fi
  36496. .UNINDENT
  36497. .UNINDENT
  36498. .sp
  36499. You can have multiple profiles for a single driver, for example if you wanted 2 DNS profiles for Amazon Route53,
  36500. naming them "route53_prod" and "route54_test" would help your
  36501. administrators distinguish their purpose.
  36502. .INDENT 0.0
  36503. .INDENT 3.5
  36504. .sp
  36505. .nf
  36506. .ft C
  36507. libcloud_dns:
  36508. route53_prod:
  36509. driver: route53
  36510. key: AFDDJFGIjDFVNSDIFNASMC
  36511. secret: FG(#f8vdfgjlkm)
  36512. route53_test:
  36513. driver: route53
  36514. key: AFDDJFGIjdfgdfgdf
  36515. secret: FG(#f8vdfgjlkm)
  36516. .ft P
  36517. .fi
  36518. .UNINDENT
  36519. .UNINDENT
  36520. .SS Using the execution modules
  36521. .sp
  36522. Amongst over 60 clouds that Apache Libcloud supports, you can add profiles to your Salt configuration to access and control these clouds.
  36523. Each of the libcloud execution modules exposes the common API methods for controlling Compute, DNS, Load Balancers and Object Storage.
  36524. To see which functions are supported across specific clouds, see the Libcloud \fI\%supported methods\fP documentation.
  36525. .sp
  36526. The module documentation explains each of the API methods and how to leverage them.
  36527. .INDENT 0.0
  36528. .IP \(bu 2
  36529. .INDENT 2.0
  36530. .TP
  36531. .B \fBlibcloud_compute\fP \- Compute \-
  36532. services such as OpenStack Nova, Amazon EC2, Microsoft Azure VMs
  36533. .UNINDENT
  36534. .IP \(bu 2
  36535. .INDENT 2.0
  36536. .TP
  36537. .B \fBlibcloud_dns\fP \- DNS as a Service \-
  36538. services such as Amazon Route 53 and Zerigo
  36539. .UNINDENT
  36540. .IP \(bu 2
  36541. .INDENT 2.0
  36542. .TP
  36543. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service \-
  36544. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36545. .UNINDENT
  36546. .IP \(bu 2
  36547. .INDENT 2.0
  36548. .TP
  36549. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN \-
  36550. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36551. .UNINDENT
  36552. .UNINDENT
  36553. .sp
  36554. For example, listing buckets in the Google Storage platform:
  36555. .INDENT 0.0
  36556. .INDENT 3.5
  36557. .sp
  36558. .nf
  36559. .ft C
  36560. $ salt\-call libcloud_storage.list_containers google
  36561. local:
  36562. |_
  36563. \-\-\-\-\-\-\-\-\-\-
  36564. extra:
  36565. \-\-\-\-\-\-\-\-\-\-
  36566. creation_date:
  36567. 2017\-01\-05T05:44:56.324Z
  36568. name:
  36569. anthonypjshaw
  36570. .ft P
  36571. .fi
  36572. .UNINDENT
  36573. .UNINDENT
  36574. .sp
  36575. The Apache Libcloud storage module can be used to synchronize files between multiple storage clouds,
  36576. such as Google Storage, S3 and OpenStack Swift
  36577. .INDENT 0.0
  36578. .INDENT 3.5
  36579. .sp
  36580. .nf
  36581. .ft C
  36582. $ salt \(aq*\(aq libcloud_storage.download_object DeploymentTools test.sh /tmp/test.sh google_storage
  36583. .ft P
  36584. .fi
  36585. .UNINDENT
  36586. .UNINDENT
  36587. .SS Using the state modules
  36588. .sp
  36589. For each configured profile, the assets available in the API (e.g. storage objects, containers,
  36590. DNS records and load balancers) can be deployed via Salt\(aqs state system.
  36591. .sp
  36592. The state module documentation explains the specific states that each module supports
  36593. .INDENT 0.0
  36594. .IP \(bu 2
  36595. .INDENT 2.0
  36596. .TP
  36597. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN
  36598. .INDENT 7.0
  36599. .IP \(bu 2
  36600. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36601. .UNINDENT
  36602. .UNINDENT
  36603. .IP \(bu 2
  36604. .INDENT 2.0
  36605. .TP
  36606. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service
  36607. .INDENT 7.0
  36608. .IP \(bu 2
  36609. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36610. .UNINDENT
  36611. .UNINDENT
  36612. .IP \(bu 2
  36613. .INDENT 2.0
  36614. .TP
  36615. .B \fBlibcloud_dns\fP \- DNS as a Service
  36616. .INDENT 7.0
  36617. .IP \(bu 2
  36618. services such as Amazon Route 53 and Zerigo
  36619. .UNINDENT
  36620. .UNINDENT
  36621. .UNINDENT
  36622. .sp
  36623. For DNS, the state modules can be used to provide DNS resilience for multiple nameservers, for example:
  36624. .INDENT 0.0
  36625. .INDENT 3.5
  36626. .sp
  36627. .nf
  36628. .ft C
  36629. libcloud_dns:
  36630. godaddy:
  36631. driver: godaddy
  36632. shopper_id: 12345
  36633. key: 2orgk34kgk34g
  36634. secret: fjgoidhjgoim
  36635. amazon:
  36636. driver: route53
  36637. key: blah
  36638. secret: blah
  36639. .ft P
  36640. .fi
  36641. .UNINDENT
  36642. .UNINDENT
  36643. .sp
  36644. And then in a state file:
  36645. .INDENT 0.0
  36646. .INDENT 3.5
  36647. .sp
  36648. .nf
  36649. .ft C
  36650. webserver:
  36651. libcloud_dns.zone_present:
  36652. name: mywebsite.com
  36653. profile: godaddy
  36654. libcloud_dns.record_present:
  36655. name: www
  36656. zone: mywebsite.com
  36657. type: A
  36658. data: 12.34.32.3
  36659. profile: godaddy
  36660. libcloud_dns.zone_present:
  36661. name: mywebsite.com
  36662. profile: amazon
  36663. libcloud_dns.record_present:
  36664. name: www
  36665. zone: mywebsite.com
  36666. type: A
  36667. data: 12.34.32.3
  36668. profile: amazon
  36669. .ft P
  36670. .fi
  36671. .UNINDENT
  36672. .UNINDENT
  36673. .sp
  36674. This could be combined with a multi\-cloud load balancer deployment,
  36675. .INDENT 0.0
  36676. .INDENT 3.5
  36677. .sp
  36678. .nf
  36679. .ft C
  36680. webserver:
  36681. libcloud_dns.zone_present:
  36682. \- name: mywebsite.com
  36683. \- profile: godaddy
  36684. ...
  36685. libcloud_loadbalancer.balancer_present:
  36686. \- name: web_main
  36687. \- port: 80
  36688. \- protocol: http
  36689. \- members:
  36690. \- ip: 1.2.4.5
  36691. port: 80
  36692. \- ip: 2.4.5.6
  36693. port: 80
  36694. \- profile: google_gce
  36695. libcloud_loadbalancer.balancer_present:
  36696. \- name: web_main
  36697. \- port: 80
  36698. \- protocol: http
  36699. \- members:
  36700. \- ip: 1.2.4.5
  36701. port: 80
  36702. \- ip: 2.4.5.6
  36703. port: 80
  36704. \- profile: amazon_elb
  36705. .ft P
  36706. .fi
  36707. .UNINDENT
  36708. .UNINDENT
  36709. .sp
  36710. Extended parameters can be passed to the specific cloud, for example you can specify the region with the Google Cloud API, because
  36711. \fIcreate_balancer\fP can accept a \fIex_region\fP argument. Adding this argument to the state will pass the additional command to the driver.
  36712. .INDENT 0.0
  36713. .INDENT 3.5
  36714. .sp
  36715. .nf
  36716. .ft C
  36717. lb_test:
  36718. libcloud_loadbalancer.balancer_absent:
  36719. \- name: example
  36720. \- port: 80
  36721. \- protocol: http
  36722. \- profile: google
  36723. \- ex_region: us\-east1
  36724. .ft P
  36725. .fi
  36726. .UNINDENT
  36727. .UNINDENT
  36728. .SS Accessing custom arguments in execution modules
  36729. .sp
  36730. Some cloud providers have additional functionality that can be accessed on top of the base API, for example
  36731. the Google Cloud Engine load balancer service offers the ability to provision load balancers into a specific region.
  36732. .sp
  36733. Looking at the \fI\%API documentation\fP,
  36734. 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:
  36735. .INDENT 0.0
  36736. .INDENT 3.5
  36737. .sp
  36738. .nf
  36739. .ft C
  36740. $ salt myminion libcloud_storage.create_balancer my_balancer 80 http profile1 ex_region=us\-east1
  36741. $ salt myminion libcloud_storage.list_container_objects my_bucket profile1 ex_prefix=me
  36742. .ft P
  36743. .fi
  36744. .UNINDENT
  36745. .UNINDENT
  36746. .SS Accessing custom methods in Libcloud drivers
  36747. .sp
  36748. Some cloud APIs have additional methods that are prefixed with \fIex_\fP in Apache Libcloud, these methods
  36749. are part of the non\-standard API but can still
  36750. be accessed from the Salt modules for \fIlibcloud_storage\fP, \fIlibcloud_loadbalancer\fP and \fIlibcloud_dns\fP\&.
  36751. The extra methods are available via the \fIextra\fP command, which expects the name of the method as the
  36752. first argument, the profile as the second and then
  36753. accepts a list of keyword arguments to pass onto the driver method, for example, accessing permissions in Google Storage objects:
  36754. .INDENT 0.0
  36755. .INDENT 3.5
  36756. .sp
  36757. .nf
  36758. .ft C
  36759. $ salt myminion libcloud_storage.extra ex_get_permissions google container_name=my_container object_name=me.jpg \-\-out=yaml
  36760. .ft P
  36761. .fi
  36762. .UNINDENT
  36763. .UNINDENT
  36764. .SS Example profiles
  36765. .SS Google Cloud
  36766. .sp
  36767. Using Service Accounts with GCE, you can provide a path to the JSON file and the project name in the parameters.
  36768. .INDENT 0.0
  36769. .INDENT 3.5
  36770. .sp
  36771. .nf
  36772. .ft C
  36773. google:
  36774. driver: gce
  36775. user_id: 234234\-compute@developer.gserviceaccount.com
  36776. key: /path/to/service_account_download.json
  36777. auth_type: SA
  36778. project: project\-name
  36779. .ft P
  36780. .fi
  36781. .UNINDENT
  36782. .UNINDENT
  36783. .SS LXC Management with Salt
  36784. .sp
  36785. \fBNOTE:\fP
  36786. .INDENT 0.0
  36787. .INDENT 3.5
  36788. This walkthrough assumes basic knowledge of Salt. To get up to speed, check
  36789. out the Salt Walkthrough\&.
  36790. .UNINDENT
  36791. .UNINDENT
  36792. .SS Dependencies
  36793. .sp
  36794. Manipulation of LXC containers in Salt requires the minion to have an LXC
  36795. version of at least 1.0 (an alpha or beta release of LXC 1.0 is acceptable).
  36796. The following distributions are known to have new enough versions of LXC
  36797. packaged:
  36798. .INDENT 0.0
  36799. .IP \(bu 2
  36800. RHEL/CentOS 6 and later (via \fI\%EPEL\fP)
  36801. .IP \(bu 2
  36802. Fedora (All non\-EOL releases)
  36803. .IP \(bu 2
  36804. Debian 8.0 (Jessie)
  36805. .IP \(bu 2
  36806. Ubuntu 14.04 LTS and later (LXC templates are packaged separately as
  36807. \fBlxc\-templates\fP, it is recommended to also install this package)
  36808. .IP \(bu 2
  36809. openSUSE 13.2 and later
  36810. .UNINDENT
  36811. .SS Profiles
  36812. .sp
  36813. Profiles allow for a sort of shorthand for commonly\-used
  36814. configurations to be defined in the minion config file, grains, pillar, or the master config file. The
  36815. profile is retrieved by Salt using the \fBconfig.get\fP function, which looks in those locations, in that
  36816. order. This allows for profiles to be defined centrally in the master config
  36817. file, with several options for overriding them (if necessary) on groups of
  36818. minions or individual minions.
  36819. .sp
  36820. There are two types of profiles:
  36821. .INDENT 0.0
  36822. .INDENT 3.5
  36823. .INDENT 0.0
  36824. .IP \(bu 2
  36825. One for defining the parameters used in container creation/clone.
  36826. .IP \(bu 2
  36827. One for defining the container\(aqs network interface(s) settings.
  36828. .UNINDENT
  36829. .UNINDENT
  36830. .UNINDENT
  36831. .SS Container Profiles
  36832. .sp
  36833. LXC container profiles are defined underneath the
  36834. \fBlxc.container_profile\fP config option:
  36835. .INDENT 0.0
  36836. .INDENT 3.5
  36837. .sp
  36838. .nf
  36839. .ft C
  36840. lxc.container_profile:
  36841. centos:
  36842. template: centos
  36843. backing: lvm
  36844. vgname: vg1
  36845. lvname: lxclv
  36846. size: 10G
  36847. centos_big:
  36848. template: centos
  36849. backing: lvm
  36850. vgname: vg1
  36851. lvname: lxclv
  36852. size: 20G
  36853. .ft P
  36854. .fi
  36855. .UNINDENT
  36856. .UNINDENT
  36857. .sp
  36858. Profiles are retrieved using the \fBconfig.get\fP
  36859. function, with the \fBrecurse\fP merge strategy. This means that a profile can be
  36860. defined at a lower level (for example, the master config file) and then parts
  36861. of it can be overridden at a higher level (for example, in pillar data).
  36862. Consider the following container profile data:
  36863. .sp
  36864. \fBIn the Master config file:\fP
  36865. .INDENT 0.0
  36866. .INDENT 3.5
  36867. .sp
  36868. .nf
  36869. .ft C
  36870. lxc.container_profile:
  36871. centos:
  36872. template: centos
  36873. backing: lvm
  36874. vgname: vg1
  36875. lvname: lxclv
  36876. size: 10G
  36877. .ft P
  36878. .fi
  36879. .UNINDENT
  36880. .UNINDENT
  36881. .sp
  36882. \fBIn the Pillar data\fP
  36883. .INDENT 0.0
  36884. .INDENT 3.5
  36885. .sp
  36886. .nf
  36887. .ft C
  36888. lxc.container_profile:
  36889. centos:
  36890. size: 20G
  36891. .ft P
  36892. .fi
  36893. .UNINDENT
  36894. .UNINDENT
  36895. .sp
  36896. Any minion with the above Pillar data would have the \fBsize\fP parameter in the
  36897. \fBcentos\fP profile overridden to 20G, while those minions without the above
  36898. Pillar data would have the 10G \fBsize\fP value. This is another way of achieving
  36899. the same result as the \fBcentos_big\fP profile above, without having to define
  36900. another whole profile that differs in just one value.
  36901. .sp
  36902. \fBNOTE:\fP
  36903. .INDENT 0.0
  36904. .INDENT 3.5
  36905. In the 2014.7.x release cycle and earlier, container profiles are defined
  36906. under \fBlxc.profile\fP\&. This parameter will still work in version 2015.5.0,
  36907. but is deprecated and will be removed in a future release. Please note
  36908. however that the profile merging feature described above will only work
  36909. with profiles defined under \fBlxc.container_profile\fP, and only in versions
  36910. 2015.5.0 and later.
  36911. .UNINDENT
  36912. .UNINDENT
  36913. .sp
  36914. Additionally, in version 2015.5.0 container profiles have been expanded to
  36915. support passing template\-specific CLI options to \fBlxc.create\fP\&. Below is a table describing the parameters which
  36916. can be configured in container profiles:
  36917. .TS
  36918. center;
  36919. |l|l|l|.
  36920. _
  36921. T{
  36922. Parameter
  36923. T} T{
  36924. 2015.5.0 and Newer
  36925. T} T{
  36926. 2014.7.x and Earlier
  36927. T}
  36928. _
  36929. T{
  36930. \fItemplate\fP\s-2\u1\d\s0
  36931. T} T{
  36932. Yes
  36933. T} T{
  36934. Yes
  36935. T}
  36936. _
  36937. T{
  36938. \fIoptions\fP\s-2\u1\d\s0
  36939. T} T{
  36940. Yes
  36941. T} T{
  36942. No
  36943. T}
  36944. _
  36945. T{
  36946. \fIimage\fP\s-2\u1\d\s0
  36947. T} T{
  36948. Yes
  36949. T} T{
  36950. Yes
  36951. T}
  36952. _
  36953. T{
  36954. \fIbacking\fP
  36955. T} T{
  36956. Yes
  36957. T} T{
  36958. Yes
  36959. T}
  36960. _
  36961. T{
  36962. \fIsnapshot\fP\s-2\u2\d\s0
  36963. T} T{
  36964. Yes
  36965. T} T{
  36966. Yes
  36967. T}
  36968. _
  36969. T{
  36970. \fIlvname\fP\s-2\u1\d\s0
  36971. T} T{
  36972. Yes
  36973. T} T{
  36974. Yes
  36975. T}
  36976. _
  36977. T{
  36978. \fIfstype\fP\s-2\u1\d\s0
  36979. T} T{
  36980. Yes
  36981. T} T{
  36982. Yes
  36983. T}
  36984. _
  36985. T{
  36986. \fIsize\fP
  36987. T} T{
  36988. Yes
  36989. T} T{
  36990. Yes
  36991. T}
  36992. _
  36993. .TE
  36994. .INDENT 0.0
  36995. .IP 1. 3
  36996. Parameter is only supported for container creation, and will be ignored if
  36997. the profile is used when cloning a container.
  36998. .IP 2. 3
  36999. Parameter is only supported for container cloning, and will be ignored if
  37000. the profile is used when not cloning a container.
  37001. .UNINDENT
  37002. .SS Network Profiles
  37003. .sp
  37004. LXC network profiles are defined defined underneath the \fBlxc.network_profile\fP
  37005. config option.
  37006. By default, the module uses a DHCP based configuration and try to guess a bridge to
  37007. get connectivity.
  37008. .sp
  37009. \fBWARNING:\fP
  37010. .INDENT 0.0
  37011. .INDENT 3.5
  37012. on pre \fB2015.5.2\fP, you need to specify explicitly the network bridge
  37013. .UNINDENT
  37014. .UNINDENT
  37015. .INDENT 0.0
  37016. .INDENT 3.5
  37017. .sp
  37018. .nf
  37019. .ft C
  37020. lxc.network_profile:
  37021. centos:
  37022. eth0:
  37023. link: br0
  37024. type: veth
  37025. flags: up
  37026. ubuntu:
  37027. eth0:
  37028. link: lxcbr0
  37029. type: veth
  37030. flags: up
  37031. .ft P
  37032. .fi
  37033. .UNINDENT
  37034. .UNINDENT
  37035. .sp
  37036. As with container profiles, network profiles are retrieved using the
  37037. \fBconfig.get\fP function, with the \fBrecurse\fP
  37038. merge strategy. Consider the following network profile data:
  37039. .sp
  37040. \fBIn the Master config file:\fP
  37041. .INDENT 0.0
  37042. .INDENT 3.5
  37043. .sp
  37044. .nf
  37045. .ft C
  37046. lxc.network_profile:
  37047. centos:
  37048. eth0:
  37049. link: br0
  37050. type: veth
  37051. flags: up
  37052. .ft P
  37053. .fi
  37054. .UNINDENT
  37055. .UNINDENT
  37056. .sp
  37057. \fBIn the Pillar data\fP
  37058. .INDENT 0.0
  37059. .INDENT 3.5
  37060. .sp
  37061. .nf
  37062. .ft C
  37063. lxc.network_profile:
  37064. centos:
  37065. eth0:
  37066. link: lxcbr0
  37067. .ft P
  37068. .fi
  37069. .UNINDENT
  37070. .UNINDENT
  37071. .sp
  37072. Any minion with the above Pillar data would use the \fBlxcbr0\fP interface as the
  37073. bridge interface for any container configured using the \fBcentos\fP network
  37074. profile, while those minions without the above Pillar data would use the
  37075. \fBbr0\fP interface for the same.
  37076. .sp
  37077. \fBNOTE:\fP
  37078. .INDENT 0.0
  37079. .INDENT 3.5
  37080. In the 2014.7.x release cycle and earlier, network profiles are defined
  37081. under \fBlxc.nic\fP\&. This parameter will still work in version 2015.5.0, but
  37082. is deprecated and will be removed in a future release. Please note however
  37083. that the profile merging feature described above will only work with
  37084. profiles defined under \fBlxc.network_profile\fP, and only in versions
  37085. 2015.5.0 and later.
  37086. .UNINDENT
  37087. .UNINDENT
  37088. .sp
  37089. The following are parameters which can be configured in network profiles. These
  37090. will directly correspond to a parameter in an LXC configuration file (see \fBman
  37091. 5 lxc.container.conf\fP).
  37092. .INDENT 0.0
  37093. .IP \(bu 2
  37094. \fBtype\fP \- Corresponds to \fBlxc.network.type\fP
  37095. .IP \(bu 2
  37096. \fBlink\fP \- Corresponds to \fBlxc.network.link\fP
  37097. .IP \(bu 2
  37098. \fBflags\fP \- Corresponds to \fBlxc.network.flags\fP
  37099. .UNINDENT
  37100. .sp
  37101. Interface\-specific options (MAC address, IPv4/IPv6, etc.) must be passed on a
  37102. container\-by\-container basis, for instance using the \fBnic_opts\fP argument to
  37103. \fBlxc.create\fP:
  37104. .INDENT 0.0
  37105. .INDENT 3.5
  37106. .sp
  37107. .nf
  37108. .ft C
  37109. 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
  37110. .ft P
  37111. .fi
  37112. .UNINDENT
  37113. .UNINDENT
  37114. .sp
  37115. \fBWARNING:\fP
  37116. .INDENT 0.0
  37117. .INDENT 3.5
  37118. The \fBipv4\fP, \fBipv6\fP, \fBgateway\fP, and \fBlink\fP (bridge) settings in
  37119. network profiles / nic_opts will only work if the container doesn\(aqt redefine
  37120. the network configuration (for example in
  37121. \fB/etc/sysconfig/network\-scripts/ifcfg\-<interface_name>\fP on RHEL/CentOS,
  37122. or \fB/etc/network/interfaces\fP on Debian/Ubuntu/etc.). Use these with
  37123. caution. The container images installed using the \fBdownload\fP template,
  37124. for instance, typically are configured for eth0 to use DHCP, which will
  37125. conflict with static IP addresses set at the container level.
  37126. .UNINDENT
  37127. .UNINDENT
  37128. .sp
  37129. \fBNOTE:\fP
  37130. .INDENT 0.0
  37131. .INDENT 3.5
  37132. For LXC < 1.0.7 and DHCP support, set \fBipv4.gateway: \(aqauto\(aq\fP is your
  37133. network profile, ie.:
  37134. .INDENT 0.0
  37135. .INDENT 3.5
  37136. .sp
  37137. .nf
  37138. .ft C
  37139. lxc.network_profile.nic:
  37140. debian:
  37141. eth0:
  37142. link: lxcbr0
  37143. ipv4.gateway: \(aqauto\(aq
  37144. .ft P
  37145. .fi
  37146. .UNINDENT
  37147. .UNINDENT
  37148. .UNINDENT
  37149. .UNINDENT
  37150. .SS Old lxc support (<1.0.7)
  37151. .sp
  37152. With saltstack \fB2015.5.2\fP and above, normally the setting is autoselected, but
  37153. before, you\(aqll need to teach your network profile to set
  37154. \fBlxc.network.ipv4.gateway\fP to \fBauto\fP when using a classic ipv4 configuration.
  37155. .sp
  37156. Thus you\(aqll need
  37157. .INDENT 0.0
  37158. .INDENT 3.5
  37159. .sp
  37160. .nf
  37161. .ft C
  37162. lxc.network_profile.foo:
  37163. etho:
  37164. link: lxcbr0
  37165. ipv4.gateway: auto
  37166. .ft P
  37167. .fi
  37168. .UNINDENT
  37169. .UNINDENT
  37170. .SS Tricky network setups Examples
  37171. .sp
  37172. This example covers how to make a container with both an internal ip and a
  37173. public routable ip, wired on two veth pairs.
  37174. .sp
  37175. The another interface which receives directly a public routable ip can\(aqt be on
  37176. the first interface that we reserve for private inter LXC networking.
  37177. .INDENT 0.0
  37178. .INDENT 3.5
  37179. .sp
  37180. .nf
  37181. .ft C
  37182. lxc.network_profile.foo:
  37183. eth0: {gateway: null, bridge: lxcbr0}
  37184. eth1:
  37185. # replace that by your main interface
  37186. \(aqlink\(aq: \(aqbr0\(aq
  37187. \(aqmac\(aq: \(aq00:16:5b:01:24:e1\(aq
  37188. \(aqgateway\(aq: \(aq2.20.9.14\(aq
  37189. \(aqipv4\(aq: \(aq2.20.9.1\(aq
  37190. .ft P
  37191. .fi
  37192. .UNINDENT
  37193. .UNINDENT
  37194. .SS Creating a Container on the CLI
  37195. .SS From a Template
  37196. .sp
  37197. LXC is commonly distributed with several template scripts in
  37198. /usr/share/lxc/templates. Some distros may package these separately in an
  37199. \fBlxc\-templates\fP package, so make sure to check if this is the case.
  37200. .sp
  37201. There are LXC template scripts for several different operating systems, but
  37202. some of them are designed to use tools specific to a given distribution. For
  37203. instance, the \fBubuntu\fP template uses deb_bootstrap, the \fBcentos\fP template
  37204. uses yum, etc., making these templates impractical when a container from a
  37205. different OS is desired.
  37206. .sp
  37207. The \fBlxc.create\fP function is used to create
  37208. containers using a template script. To create a CentOS container named
  37209. \fBcontainer1\fP on a CentOS minion named \fBmycentosminion\fP, using the
  37210. \fBcentos\fP LXC template, one can simply run the following command:
  37211. .INDENT 0.0
  37212. .INDENT 3.5
  37213. .sp
  37214. .nf
  37215. .ft C
  37216. salt mycentosminion lxc.create container1 template=centos
  37217. .ft P
  37218. .fi
  37219. .UNINDENT
  37220. .UNINDENT
  37221. .sp
  37222. For these instances, there is a \fBdownload\fP template which retrieves minimal
  37223. container images for several different operating systems. To use this template,
  37224. it is necessary to provide an \fBoptions\fP parameter when creating the
  37225. container, with three values:
  37226. .INDENT 0.0
  37227. .IP 1. 3
  37228. \fBdist\fP \- the Linux distribution (i.e. \fBubuntu\fP or \fBcentos\fP)
  37229. .IP 2. 3
  37230. \fBrelease\fP \- the release name/version (i.e. \fBtrusty\fP or \fB6\fP)
  37231. .IP 3. 3
  37232. \fBarch\fP \- CPU architecture (i.e. \fBamd64\fP or \fBi386\fP)
  37233. .UNINDENT
  37234. .sp
  37235. The \fBlxc.images\fP function (new in version
  37236. 2015.5.0) can be used to list the available images. Alternatively, the releases
  37237. can be viewed on \fI\%http://images.linuxcontainers.org/images/\fP\&. The images are
  37238. organized in such a way that the \fBdist\fP, \fBrelease\fP, and \fBarch\fP can be
  37239. determined using the following URL format:
  37240. \fBhttp://images.linuxcontainers.org/images/dist/release/arch\fP\&. For example,
  37241. \fBhttp://images.linuxcontainers.org/images/centos/6/amd64\fP would correspond to
  37242. a \fBdist\fP of \fBcentos\fP, a \fBrelease\fP of \fB6\fP, and an \fBarch\fP of \fBamd64\fP\&.
  37243. .sp
  37244. Therefore, to use the \fBdownload\fP template to create a new 64\-bit CentOS 6
  37245. container, the following command can be used:
  37246. .INDENT 0.0
  37247. .INDENT 3.5
  37248. .sp
  37249. .nf
  37250. .ft C
  37251. salt myminion lxc.create container1 template=download options=\(aq{dist: centos, release: 6, arch: amd64}\(aq
  37252. .ft P
  37253. .fi
  37254. .UNINDENT
  37255. .UNINDENT
  37256. .sp
  37257. \fBNOTE:\fP
  37258. .INDENT 0.0
  37259. .INDENT 3.5
  37260. These command\-line options can be placed into a \fI\%container profile\fP, like so:
  37261. .INDENT 0.0
  37262. .INDENT 3.5
  37263. .sp
  37264. .nf
  37265. .ft C
  37266. lxc.container_profile.cent6:
  37267. template: download
  37268. options:
  37269. dist: centos
  37270. release: 6
  37271. arch: amd64
  37272. .ft P
  37273. .fi
  37274. .UNINDENT
  37275. .UNINDENT
  37276. .sp
  37277. The \fBoptions\fP parameter is not supported in profiles for the 2014.7.x
  37278. release cycle and earlier, so it would still need to be provided on the
  37279. command\-line.
  37280. .UNINDENT
  37281. .UNINDENT
  37282. .SS Cloning an Existing Container
  37283. .sp
  37284. To clone a container, use the \fBlxc.clone\fP
  37285. function:
  37286. .INDENT 0.0
  37287. .INDENT 3.5
  37288. .sp
  37289. .nf
  37290. .ft C
  37291. salt myminion lxc.clone container2 orig=container1
  37292. .ft P
  37293. .fi
  37294. .UNINDENT
  37295. .UNINDENT
  37296. .SS Using a Container Image
  37297. .sp
  37298. While cloning is a good way to create new containers from a common base
  37299. container, the source container that is being cloned needs to already exist on
  37300. the minion. This makes deploying a common container across minions difficult.
  37301. For this reason, Salt\(aqs \fBlxc.create\fP is capable
  37302. of installing a container from a tar archive of another container\(aqs rootfs. To
  37303. create an image of a container named \fBcent6\fP, run the following command as
  37304. root:
  37305. .INDENT 0.0
  37306. .INDENT 3.5
  37307. .sp
  37308. .nf
  37309. .ft C
  37310. tar czf cent6.tar.gz \-C /var/lib/lxc/cent6 rootfs
  37311. .ft P
  37312. .fi
  37313. .UNINDENT
  37314. .UNINDENT
  37315. .sp
  37316. \fBNOTE:\fP
  37317. .INDENT 0.0
  37318. .INDENT 3.5
  37319. Before doing this, it is recommended that the container is stopped.
  37320. .UNINDENT
  37321. .UNINDENT
  37322. .sp
  37323. The resulting tarball can then be placed alongside the files in the salt
  37324. fileserver and referenced using a \fBsalt://\fP URL. To create a container using
  37325. an image, use the \fBimage\fP parameter with \fBlxc.create\fP:
  37326. .INDENT 0.0
  37327. .INDENT 3.5
  37328. .sp
  37329. .nf
  37330. .ft C
  37331. salt myminion lxc.create new\-cent6 image=salt://path/to/cent6.tar.gz
  37332. .ft P
  37333. .fi
  37334. .UNINDENT
  37335. .UNINDENT
  37336. .sp
  37337. \fBNOTE:\fP
  37338. .INDENT 0.0
  37339. .INDENT 3.5
  37340. Making images of containers with LVM backing
  37341. .sp
  37342. For containers with LVM backing, the rootfs is not mounted, so it is
  37343. necessary to mount it first before creating the tar archive. When a
  37344. container is created using LVM backing, an empty \fBrootfs\fP dir is handily
  37345. created within \fB/var/lib/lxc/container_name\fP, so this can be used as the
  37346. mountpoint. The location of the logical volume for the container will be
  37347. \fB/dev/vgname/lvname\fP, where \fBvgname\fP is the name of the volume group,
  37348. and \fBlvname\fP is the name of the logical volume. Therefore, assuming a
  37349. volume group of \fBvg1\fP, a logical volume of \fBlxc\-cent6\fP, and a container
  37350. name of \fBcent6\fP, the following commands can be used to create a tar
  37351. archive of the rootfs:
  37352. .INDENT 0.0
  37353. .INDENT 3.5
  37354. .sp
  37355. .nf
  37356. .ft C
  37357. mount /dev/vg1/lxc\-cent6 /var/lib/lxc/cent6/rootfs
  37358. tar czf cent6.tar.gz \-C /var/lib/lxc/cent6 rootfs
  37359. umount /var/lib/lxc/cent6/rootfs
  37360. .ft P
  37361. .fi
  37362. .UNINDENT
  37363. .UNINDENT
  37364. .UNINDENT
  37365. .UNINDENT
  37366. .sp
  37367. \fBWARNING:\fP
  37368. .INDENT 0.0
  37369. .INDENT 3.5
  37370. One caveat of using this method of container creation is that
  37371. \fB/etc/hosts\fP is left unmodified. This could cause confusion for some
  37372. distros if salt\-minion is later installed on the container, as the
  37373. functions that determine the hostname take \fB/etc/hosts\fP into account.
  37374. .sp
  37375. Additionally, when creating an rootfs image, be sure to remove
  37376. \fB/etc/salt/minion_id\fP and make sure that \fBid\fP is not defined in
  37377. \fB/etc/salt/minion\fP, as this will cause similar issues.
  37378. .UNINDENT
  37379. .UNINDENT
  37380. .SS Initializing a New Container as a Salt Minion
  37381. .sp
  37382. The above examples illustrate a few ways to create containers on the CLI, but
  37383. often it is desirable to also have the new container run as a Minion. To do
  37384. this, the \fBlxc.init\fP function can be used. This
  37385. function will do the following:
  37386. .INDENT 0.0
  37387. .IP 1. 3
  37388. Create a new container
  37389. .IP 2. 3
  37390. Optionally set password and/or DNS
  37391. .IP 3. 3
  37392. Bootstrap the minion (using either \fI\%salt\-bootstrap\fP or a custom command)
  37393. .UNINDENT
  37394. .sp
  37395. By default, the new container will be pointed at the same Salt Master as the
  37396. host machine on which the container was created. It will then request to
  37397. authenticate with the Master like any other bootstrapped Minion, at which point
  37398. it can be accepted.
  37399. .INDENT 0.0
  37400. .INDENT 3.5
  37401. .sp
  37402. .nf
  37403. .ft C
  37404. salt myminion lxc.init test1 profile=centos
  37405. salt\-key \-a test1
  37406. .ft P
  37407. .fi
  37408. .UNINDENT
  37409. .UNINDENT
  37410. .sp
  37411. For even greater convenience, the \fBLXC runner\fP contains
  37412. a runner function of the same name (\fBlxc.init\fP),
  37413. which creates a keypair, seeds the new minion with it, and pre\-accepts the key,
  37414. allowing for the new Minion to be created and authorized in a single step:
  37415. .INDENT 0.0
  37416. .INDENT 3.5
  37417. .sp
  37418. .nf
  37419. .ft C
  37420. salt\-run lxc.init test1 host=myminion profile=centos
  37421. .ft P
  37422. .fi
  37423. .UNINDENT
  37424. .UNINDENT
  37425. .SS Running Commands Within a Container
  37426. .sp
  37427. For containers which are not running their own Minion, commands can be run
  37428. within the container in a manner similar to using (\fBcmd.run
  37429. <salt.modules.cmdmod.run\fP). The means of doing this have been changed
  37430. significantly in version 2015.5.0 (though the deprecated behavior will still be
  37431. supported for a few releases). Both the old and new usage are documented
  37432. below.
  37433. .SS 2015.5.0 and Newer
  37434. .sp
  37435. New functions have been added to mimic the behavior of the functions in the
  37436. \fBcmd\fP module. Below is a table with the \fBcmd\fP functions and their \fBlxc\fP module
  37437. equivalents:
  37438. .TS
  37439. center;
  37440. |l|l|l|.
  37441. _
  37442. T{
  37443. Description
  37444. T} T{
  37445. \fBcmd\fP module
  37446. T} T{
  37447. \fBlxc\fP module
  37448. T}
  37449. _
  37450. T{
  37451. Run a command and get all output
  37452. T} T{
  37453. \fBcmd.run\fP
  37454. T} T{
  37455. \fBlxc.run\fP
  37456. T}
  37457. _
  37458. T{
  37459. Run a command and get just stdout
  37460. T} T{
  37461. \fBcmd.run_stdout\fP
  37462. T} T{
  37463. \fBlxc.run_stdout\fP
  37464. T}
  37465. _
  37466. T{
  37467. Run a command and get just stderr
  37468. T} T{
  37469. \fBcmd.run_stderr\fP
  37470. T} T{
  37471. \fBlxc.run_stderr\fP
  37472. T}
  37473. _
  37474. T{
  37475. Run a command and get just the retcode
  37476. T} T{
  37477. \fBcmd.retcode\fP
  37478. T} T{
  37479. \fBlxc.retcode\fP
  37480. T}
  37481. _
  37482. T{
  37483. Run a command and get all information
  37484. T} T{
  37485. \fBcmd.run_all\fP
  37486. T} T{
  37487. \fBlxc.run_all\fP
  37488. T}
  37489. _
  37490. .TE
  37491. .SS 2014.7.x and Earlier
  37492. .sp
  37493. Earlier Salt releases use a single function (\fBlxc.run_cmd\fP) to run commands within containers. Whether stdout,
  37494. stderr, etc. are returned depends on how the function is invoked.
  37495. .sp
  37496. To run a command and return the stdout:
  37497. .INDENT 0.0
  37498. .INDENT 3.5
  37499. .sp
  37500. .nf
  37501. .ft C
  37502. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq
  37503. .ft P
  37504. .fi
  37505. .UNINDENT
  37506. .UNINDENT
  37507. .sp
  37508. To run a command and return the stderr:
  37509. .INDENT 0.0
  37510. .INDENT 3.5
  37511. .sp
  37512. .nf
  37513. .ft C
  37514. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=False stderr=True
  37515. .ft P
  37516. .fi
  37517. .UNINDENT
  37518. .UNINDENT
  37519. .sp
  37520. To run a command and return the retcode:
  37521. .INDENT 0.0
  37522. .INDENT 3.5
  37523. .sp
  37524. .nf
  37525. .ft C
  37526. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=False stderr=False
  37527. .ft P
  37528. .fi
  37529. .UNINDENT
  37530. .UNINDENT
  37531. .sp
  37532. To run a command and return all information:
  37533. .INDENT 0.0
  37534. .INDENT 3.5
  37535. .sp
  37536. .nf
  37537. .ft C
  37538. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=True stderr=True
  37539. .ft P
  37540. .fi
  37541. .UNINDENT
  37542. .UNINDENT
  37543. .SS Container Management Using salt\-cloud
  37544. .sp
  37545. Salt cloud uses under the hood the salt runner and module to manage containers,
  37546. Please look at this chapter
  37547. .SS Container Management Using States
  37548. .sp
  37549. Several states are being renamed or otherwise modified in version 2015.5.0. The
  37550. information in this tutorial refers to the new states. For
  37551. 2014.7.x and earlier, please refer to the \fBdocumentation for the LXC
  37552. states\fP\&.
  37553. .SS Ensuring a Container Is Present
  37554. .sp
  37555. To ensure the existence of a named container, use the \fBlxc.present\fP state. Here are some examples:
  37556. .INDENT 0.0
  37557. .INDENT 3.5
  37558. .sp
  37559. .nf
  37560. .ft C
  37561. # Using a template
  37562. web1:
  37563. lxc.present:
  37564. \- template: download
  37565. \- options:
  37566. dist: centos
  37567. release: 6
  37568. arch: amd64
  37569. # Cloning
  37570. web2:
  37571. lxc.present:
  37572. \- clone_from: web\-base
  37573. # Using a rootfs image
  37574. web3:
  37575. lxc.present:
  37576. \- image: salt://path/to/cent6.tar.gz
  37577. # Using profiles
  37578. web4:
  37579. lxc.present:
  37580. \- profile: centos_web
  37581. \- network_profile: centos
  37582. .ft P
  37583. .fi
  37584. .UNINDENT
  37585. .UNINDENT
  37586. .sp
  37587. \fBWARNING:\fP
  37588. .INDENT 0.0
  37589. .INDENT 3.5
  37590. The \fBlxc.present\fP state will not modify an
  37591. existing container (in other words, it will not re\-create the container).
  37592. If an \fBlxc.present\fP state is run on an
  37593. existing container, there will be no change and the state will return a
  37594. \fBTrue\fP result.
  37595. .UNINDENT
  37596. .UNINDENT
  37597. .sp
  37598. The \fBlxc.present\fP state also includes an
  37599. optional \fBrunning\fP parameter which can be used to ensure that a container is
  37600. running/stopped. Note that there are standalone \fBlxc.running\fP and \fBlxc.stopped\fP
  37601. states which can be used for this purpose.
  37602. .SS Ensuring a Container Does Not Exist
  37603. .sp
  37604. To ensure that a named container is not present, use the \fBlxc.absent\fP state. For example:
  37605. .INDENT 0.0
  37606. .INDENT 3.5
  37607. .sp
  37608. .nf
  37609. .ft C
  37610. web1:
  37611. lxc.absent
  37612. .ft P
  37613. .fi
  37614. .UNINDENT
  37615. .UNINDENT
  37616. .SS Ensuring a Container is Running/Stopped/Frozen
  37617. .sp
  37618. Containers can be in one of three states:
  37619. .INDENT 0.0
  37620. .IP \(bu 2
  37621. \fBrunning\fP \- Container is running and active
  37622. .IP \(bu 2
  37623. \fBfrozen\fP \- Container is running, but all process are blocked and the
  37624. container is essentially non\-active until the container is "unfrozen"
  37625. .IP \(bu 2
  37626. \fBstopped\fP \- Container is not running
  37627. .UNINDENT
  37628. .sp
  37629. Salt has three states (\fBlxc.running\fP,
  37630. \fBlxc.frozen\fP, and \fBlxc.stopped\fP) which can be used to ensure a container is in one
  37631. of these states:
  37632. .INDENT 0.0
  37633. .INDENT 3.5
  37634. .sp
  37635. .nf
  37636. .ft C
  37637. web1:
  37638. lxc.running
  37639. # Restart the container if it was already running
  37640. web2:
  37641. lxc.running:
  37642. \- restart: True
  37643. web3:
  37644. lxc.stopped
  37645. # Explicitly kill all tasks in container instead of gracefully stopping
  37646. web4:
  37647. lxc.stopped:
  37648. \- kill: True
  37649. web5:
  37650. lxc.frozen
  37651. # If container is stopped, do not start it (in which case the state will fail)
  37652. web6:
  37653. lxc.frozen:
  37654. \- start: False
  37655. .ft P
  37656. .fi
  37657. .UNINDENT
  37658. .UNINDENT
  37659. .SS Remote execution tutorial
  37660. .sp
  37661. \fBBefore continuing\fP make sure you have a working Salt installation by
  37662. following the installation and the
  37663. configuration instructions.
  37664. .INDENT 0.0
  37665. .INDENT 3.5
  37666. .IP "Stuck?"
  37667. .sp
  37668. There are many ways to get help from the Salt community including our
  37669. \fI\%mailing list\fP
  37670. and our \fI\%IRC channel\fP #salt.
  37671. .UNINDENT
  37672. .UNINDENT
  37673. .SS Order your minions around
  37674. .sp
  37675. Now that you have a master and at least one minion
  37676. communicating with each other you can perform commands on the minion via the
  37677. \fBsalt\fP command. Salt calls are comprised of three main components:
  37678. .INDENT 0.0
  37679. .INDENT 3.5
  37680. .sp
  37681. .nf
  37682. .ft C
  37683. salt \(aq<target>\(aq <function> [arguments]
  37684. .ft P
  37685. .fi
  37686. .UNINDENT
  37687. .UNINDENT
  37688. .sp
  37689. \fBSEE ALSO:\fP
  37690. .INDENT 0.0
  37691. .INDENT 3.5
  37692. salt manpage
  37693. .UNINDENT
  37694. .UNINDENT
  37695. .SS target
  37696. .sp
  37697. The target component allows you to filter which minions should run the
  37698. following function. The default filter is a glob on the minion id. For example:
  37699. .INDENT 0.0
  37700. .INDENT 3.5
  37701. .sp
  37702. .nf
  37703. .ft C
  37704. salt \(aq*\(aq test.version
  37705. salt \(aq*.example.org\(aq test.version
  37706. .ft P
  37707. .fi
  37708. .UNINDENT
  37709. .UNINDENT
  37710. .sp
  37711. Targets can be based on minion system information using the Grains system:
  37712. .INDENT 0.0
  37713. .INDENT 3.5
  37714. .sp
  37715. .nf
  37716. .ft C
  37717. salt \-G \(aqos:Ubuntu\(aq test.version
  37718. .ft P
  37719. .fi
  37720. .UNINDENT
  37721. .UNINDENT
  37722. .sp
  37723. \fBSEE ALSO:\fP
  37724. .INDENT 0.0
  37725. .INDENT 3.5
  37726. Grains system
  37727. .UNINDENT
  37728. .UNINDENT
  37729. .sp
  37730. Targets can be filtered by regular expression:
  37731. .INDENT 0.0
  37732. .INDENT 3.5
  37733. .sp
  37734. .nf
  37735. .ft C
  37736. salt \-E \(aqvirtmach[0\-9]\(aq test.version
  37737. .ft P
  37738. .fi
  37739. .UNINDENT
  37740. .UNINDENT
  37741. .sp
  37742. Targets can be explicitly specified in a list:
  37743. .INDENT 0.0
  37744. .INDENT 3.5
  37745. .sp
  37746. .nf
  37747. .ft C
  37748. salt \-L \(aqfoo,bar,baz,quo\(aq test.version
  37749. .ft P
  37750. .fi
  37751. .UNINDENT
  37752. .UNINDENT
  37753. .sp
  37754. Or Multiple target types can be combined in one command:
  37755. .INDENT 0.0
  37756. .INDENT 3.5
  37757. .sp
  37758. .nf
  37759. .ft C
  37760. salt \-C \(aqG@os:Ubuntu and webser* or E@database.*\(aq test.version
  37761. .ft P
  37762. .fi
  37763. .UNINDENT
  37764. .UNINDENT
  37765. .SS function
  37766. .sp
  37767. A function is some functionality provided by a module. Salt ships with a large
  37768. collection of available functions. List all available functions on your
  37769. minions:
  37770. .INDENT 0.0
  37771. .INDENT 3.5
  37772. .sp
  37773. .nf
  37774. .ft C
  37775. salt \(aq*\(aq sys.doc
  37776. .ft P
  37777. .fi
  37778. .UNINDENT
  37779. .UNINDENT
  37780. .sp
  37781. Here are some examples:
  37782. .sp
  37783. Show all currently available minions:
  37784. .INDENT 0.0
  37785. .INDENT 3.5
  37786. .sp
  37787. .nf
  37788. .ft C
  37789. salt \(aq*\(aq test.version
  37790. .ft P
  37791. .fi
  37792. .UNINDENT
  37793. .UNINDENT
  37794. .sp
  37795. Run an arbitrary shell command:
  37796. .INDENT 0.0
  37797. .INDENT 3.5
  37798. .sp
  37799. .nf
  37800. .ft C
  37801. salt \(aq*\(aq cmd.run \(aquname \-a\(aq
  37802. .ft P
  37803. .fi
  37804. .UNINDENT
  37805. .UNINDENT
  37806. .sp
  37807. \fBSEE ALSO:\fP
  37808. .INDENT 0.0
  37809. .INDENT 3.5
  37810. the full list of modules
  37811. .UNINDENT
  37812. .UNINDENT
  37813. .SS arguments
  37814. .sp
  37815. Space\-delimited arguments to the function:
  37816. .INDENT 0.0
  37817. .INDENT 3.5
  37818. .sp
  37819. .nf
  37820. .ft C
  37821. salt \(aq*\(aq cmd.exec_code python \(aqimport sys; print sys.version\(aq
  37822. .ft P
  37823. .fi
  37824. .UNINDENT
  37825. .UNINDENT
  37826. .sp
  37827. Optional, keyword arguments are also supported:
  37828. .INDENT 0.0
  37829. .INDENT 3.5
  37830. .sp
  37831. .nf
  37832. .ft C
  37833. salt \(aq*\(aq pip.install salt timeout=5 upgrade=True
  37834. .ft P
  37835. .fi
  37836. .UNINDENT
  37837. .UNINDENT
  37838. .sp
  37839. They are always in the form of \fBkwarg=argument\fP\&.
  37840. .SS Multi Master Tutorial
  37841. .sp
  37842. As of Salt 0.16.0, the ability to connect minions to multiple masters has been
  37843. made available. The multi\-master system allows for redundancy of Salt
  37844. masters and facilitates multiple points of communication out to minions. When
  37845. using a multi\-master setup, all masters are running hot, and any active master
  37846. can be used to send commands out to the minions.
  37847. .sp
  37848. \fBNOTE:\fP
  37849. .INDENT 0.0
  37850. .INDENT 3.5
  37851. If you need failover capabilities with multiple masters, there is also a
  37852. MultiMaster\-PKI setup available, that uses a different topology
  37853. \fI\%MultiMaster\-PKI with Failover Tutorial\fP
  37854. .UNINDENT
  37855. .UNINDENT
  37856. .sp
  37857. In 0.16.0, the masters do not share any information, keys need to be accepted
  37858. on both masters, and shared files need to be shared manually or use tools like
  37859. the git fileserver backend to ensure that the \fBfile_roots\fP are
  37860. kept consistent.
  37861. .sp
  37862. Beginning with Salt 2016.11.0, the Pluggable Minion Data Cache
  37863. was introduced. The minion data cache contains the Salt Mine data, minion grains, and minion
  37864. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  37865. module, but other external data stores can be used instead.
  37866. .sp
  37867. Using a pluggable minion cache modules allows for the data stored on a Salt Master about
  37868. Salt Minions to be replicated on other Salt Masters the Minion is connected to. Please see
  37869. the Minion Data Cache documentation for more information and configuration
  37870. examples.
  37871. .SS Summary of Steps
  37872. .INDENT 0.0
  37873. .IP 1. 3
  37874. Create a redundant master server
  37875. .IP 2. 3
  37876. Copy primary master key to redundant master
  37877. .IP 3. 3
  37878. Start redundant master
  37879. .IP 4. 3
  37880. Configure minions to connect to redundant master
  37881. .IP 5. 3
  37882. Restart minions
  37883. .IP 6. 3
  37884. Accept keys on redundant master
  37885. .UNINDENT
  37886. .SS Prepping a Redundant Master
  37887. .sp
  37888. The first task is to prepare the redundant master. If the redundant master is
  37889. already running, stop it. There is only one requirement when preparing a
  37890. redundant master, which is that masters share the same private key. When the
  37891. first master was created, the master\(aqs identifying key pair was generated and
  37892. placed in the master\(aqs \fBpki_dir\fP\&. The default location of the master\(aqs key
  37893. pair is \fB/etc/salt/pki/master/\fP\&. Take the private key, \fBmaster.pem\fP, and
  37894. copy it to the same location on the redundant master. Do the same for the
  37895. master\(aqs public key, \fBmaster.pub\fP\&. Assuming that no minions have yet been
  37896. connected to the new redundant master, it is safe to delete any existing key
  37897. in this location and replace it.
  37898. .sp
  37899. \fBNOTE:\fP
  37900. .INDENT 0.0
  37901. .INDENT 3.5
  37902. There is no logical limit to the number of redundant masters that can be
  37903. used.
  37904. .UNINDENT
  37905. .UNINDENT
  37906. .sp
  37907. Once the new key is in place, the redundant master can be safely started.
  37908. .SS Configure Minions
  37909. .sp
  37910. Since minions need to be master\-aware, the new master needs to be added to the
  37911. minion configurations. Simply update the minion configurations to list all
  37912. connected masters:
  37913. .INDENT 0.0
  37914. .INDENT 3.5
  37915. .sp
  37916. .nf
  37917. .ft C
  37918. master:
  37919. \- saltmaster1.example.com
  37920. \- saltmaster2.example.com
  37921. .ft P
  37922. .fi
  37923. .UNINDENT
  37924. .UNINDENT
  37925. .sp
  37926. Now the minion can be safely restarted.
  37927. .sp
  37928. \fBNOTE:\fP
  37929. .INDENT 0.0
  37930. .INDENT 3.5
  37931. If the ipc_mode for the minion is set to TCP (default in Windows), then
  37932. each minion in the multi\-minion setup (one per master) needs its own
  37933. tcp_pub_port and tcp_pull_port.
  37934. .sp
  37935. If these settings are left as the default 4510/4511, each minion object
  37936. will receive a port 2 higher than the previous. Thus the first minion will
  37937. get 4510/4511, the second will get 4512/4513, and so on. If these port
  37938. decisions are unacceptable, you must configure tcp_pub_port and
  37939. tcp_pull_port with lists of ports for each master. The length of these
  37940. lists should match the number of masters, and there should not be overlap
  37941. in the lists.
  37942. .UNINDENT
  37943. .UNINDENT
  37944. .sp
  37945. Now the minions will check into the original master and also check into the new
  37946. redundant master. Both masters are first\-class and have rights to the minions.
  37947. .sp
  37948. \fBNOTE:\fP
  37949. .INDENT 0.0
  37950. .INDENT 3.5
  37951. Minions can automatically detect failed masters and attempt to reconnect
  37952. to them quickly. To enable this functionality, set
  37953. \fImaster_alive_interval\fP in the minion config and specify a number of
  37954. seconds to poll the masters for connection status.
  37955. .sp
  37956. If this option is not set, minions will still reconnect to failed masters
  37957. but the first command sent after a master comes back up may be lost while
  37958. the minion authenticates.
  37959. .UNINDENT
  37960. .UNINDENT
  37961. .SS Sharing Files Between Masters
  37962. .sp
  37963. Salt does not automatically share files between multiple masters. A number of
  37964. files should be shared or sharing of these files should be strongly considered.
  37965. .SS Minion Keys
  37966. .sp
  37967. Minion keys can be accepted the normal way using \fBsalt\-key\fP on both
  37968. masters. Keys accepted, deleted, or rejected on one master will NOT be
  37969. automatically managed on redundant masters; this needs to be taken care of by
  37970. running salt\-key on both masters or sharing the
  37971. \fB/etc/salt/pki/master/{minions,minions_pre,minions_rejected}\fP directories
  37972. between masters.
  37973. .sp
  37974. \fBNOTE:\fP
  37975. .INDENT 0.0
  37976. .INDENT 3.5
  37977. While sharing the \fB/etc/salt/pki/master\fP directory will work, it is
  37978. strongly discouraged, since allowing access to the \fBmaster.pem\fP key
  37979. outside of Salt creates a \fISERIOUS\fP security risk.
  37980. .UNINDENT
  37981. .UNINDENT
  37982. .SS File_Roots
  37983. .sp
  37984. The \fBfile_roots\fP contents should be kept consistent between
  37985. masters. Otherwise state runs will not always be consistent on minions since
  37986. instructions managed by one master will not agree with other masters.
  37987. .sp
  37988. The recommended way to sync these is to use a fileserver backend like gitfs or
  37989. to keep these files on shared storage.
  37990. .sp
  37991. \fBIMPORTANT:\fP
  37992. .INDENT 0.0
  37993. .INDENT 3.5
  37994. If using gitfs/git_pillar with the cachedir shared between masters using
  37995. \fI\%GlusterFS\fP, nfs, or another network filesystem, and the masters are
  37996. running Salt 2015.5.9 or later, it is strongly recommended not to turn off
  37997. \fBgitfs_global_lock\fP/\fBgit_pillar_global_lock\fP as
  37998. doing so will cause lock files to be removed if they were created by a
  37999. different master.
  38000. .UNINDENT
  38001. .UNINDENT
  38002. .SS Pillar_Roots
  38003. .sp
  38004. Pillar roots should be given the same considerations as
  38005. \fBfile_roots\fP\&.
  38006. .SS Master Configurations
  38007. .sp
  38008. While reasons may exist to maintain separate master configurations, it is wise
  38009. to remember that each master maintains independent control over minions.
  38010. Therefore, access controls should be in sync between masters unless a valid
  38011. reason otherwise exists to keep them inconsistent.
  38012. .sp
  38013. These access control options include but are not limited to:
  38014. .INDENT 0.0
  38015. .IP \(bu 2
  38016. external_auth
  38017. .IP \(bu 2
  38018. publisher_acl
  38019. .IP \(bu 2
  38020. peer
  38021. .IP \(bu 2
  38022. peer_run
  38023. .UNINDENT
  38024. .SS Multi\-Master\-PKI Tutorial With Failover
  38025. .sp
  38026. This tutorial will explain, how to run a salt\-environment where a single
  38027. minion can have multiple masters and fail\-over between them if its current
  38028. master fails.
  38029. .sp
  38030. The individual steps are
  38031. .INDENT 0.0
  38032. .IP \(bu 2
  38033. setup the master(s) to sign its auth\-replies
  38034. .IP \(bu 2
  38035. setup minion(s) to verify master\-public\-keys
  38036. .IP \(bu 2
  38037. enable multiple masters on minion(s)
  38038. .IP \(bu 2
  38039. enable master\-check on minion(s)
  38040. .INDENT 2.0
  38041. .INDENT 3.5
  38042. Please note, that it is advised to have good knowledge of the salt\-
  38043. authentication and communication\-process to understand this tutorial.
  38044. All of the settings described here, go on top of the default
  38045. authentication/communication process.
  38046. .UNINDENT
  38047. .UNINDENT
  38048. .UNINDENT
  38049. .SS Motivation
  38050. .sp
  38051. The default behaviour of a salt\-minion is to connect to a master and accept
  38052. the masters public key. With each publication, the master sends his public\-key
  38053. for the minion to check and if this public\-key ever changes, the minion
  38054. complains and exits. Practically this means, that there can only be a single
  38055. master at any given time.
  38056. .sp
  38057. Would it not be much nicer, if the minion could have any number of masters
  38058. (1:n) and jump to the next master if its current master died because of a
  38059. network or hardware failure?
  38060. .sp
  38061. \fBNOTE:\fP
  38062. .INDENT 0.0
  38063. .INDENT 3.5
  38064. There is also a MultiMaster\-Tutorial with a different approach and topology
  38065. than this one, that might also suite your needs or might even be better suited
  38066. \fI\%Multi\-Master Tutorial\fP
  38067. .UNINDENT
  38068. .UNINDENT
  38069. .sp
  38070. It is also desirable, to add some sort of authenticity\-check to the very first
  38071. public key a minion receives from a master. Currently a minions takes the
  38072. first masters public key for granted.
  38073. .SS The Goal
  38074. .sp
  38075. Setup the master to sign the public key it sends to the minions and enable the
  38076. minions to verify this signature for authenticity.
  38077. .SS Prepping the master to sign its public key
  38078. .sp
  38079. For signing to work, both master and minion must have the signing and/or
  38080. verification settings enabled. If the master signs the public key but the
  38081. minion does not verify it, the minion will complain and exit. The same
  38082. happens, when the master does not sign but the minion tries to verify.
  38083. .sp
  38084. The easiest way to have the master sign its public key is to set
  38085. .INDENT 0.0
  38086. .INDENT 3.5
  38087. .sp
  38088. .nf
  38089. .ft C
  38090. master_sign_pubkey: True
  38091. .ft P
  38092. .fi
  38093. .UNINDENT
  38094. .UNINDENT
  38095. .sp
  38096. After restarting the salt\-master service, the master will automatically
  38097. generate a new key\-pair
  38098. .INDENT 0.0
  38099. .INDENT 3.5
  38100. .sp
  38101. .nf
  38102. .ft C
  38103. master_sign.pem
  38104. master_sign.pub
  38105. .ft P
  38106. .fi
  38107. .UNINDENT
  38108. .UNINDENT
  38109. .sp
  38110. A custom name can be set for the signing key\-pair by setting
  38111. .INDENT 0.0
  38112. .INDENT 3.5
  38113. .sp
  38114. .nf
  38115. .ft C
  38116. master_sign_key_name: <name_without_suffix>
  38117. .ft P
  38118. .fi
  38119. .UNINDENT
  38120. .UNINDENT
  38121. .sp
  38122. The master will then generate that key\-pair upon restart and use it for
  38123. creating the public keys signature attached to the auth\-reply.
  38124. .sp
  38125. The computation is done for every auth\-request of a minion. If many minions
  38126. auth very often, it is advised to use conf_master:\fImaster_pubkey_signature\fP
  38127. and conf_master:\fImaster_use_pubkey_signature\fP settings described below.
  38128. .sp
  38129. If multiple masters are in use and should sign their auth\-replies, the signing
  38130. key\-pair master_sign.* has to be copied to each master. Otherwise a minion
  38131. will fail to verify the masters public when connecting to a different master
  38132. than it did initially. That is because the public keys signature was created
  38133. with a different signing key\-pair.
  38134. .SS Prepping the minion to verify received public keys
  38135. .sp
  38136. The minion must have the public key (and only that one!) available to be
  38137. able to verify a signature it receives. That public key (defaults to
  38138. master_sign.pub) must be copied from the master to the minions pki\-directory.
  38139. .INDENT 0.0
  38140. .INDENT 3.5
  38141. .sp
  38142. .nf
  38143. .ft C
  38144. /etc/salt/pki/minion/master_sign.pub
  38145. .ft P
  38146. .fi
  38147. .UNINDENT
  38148. .UNINDENT
  38149. .sp
  38150. \fBIMPORTANT:\fP
  38151. .INDENT 0.0
  38152. .INDENT 3.5
  38153. DO NOT COPY THE master_sign.pem FILE. IT MUST STAY ON THE MASTER AND
  38154. ONLY THERE!
  38155. .UNINDENT
  38156. .UNINDENT
  38157. .sp
  38158. When that is done, enable the signature checking in the minions configuration
  38159. .INDENT 0.0
  38160. .INDENT 3.5
  38161. .sp
  38162. .nf
  38163. .ft C
  38164. verify_master_pubkey_sign: True
  38165. .ft P
  38166. .fi
  38167. .UNINDENT
  38168. .UNINDENT
  38169. .sp
  38170. and restart the minion. For the first try, the minion should be run in manual
  38171. debug mode.
  38172. .INDENT 0.0
  38173. .INDENT 3.5
  38174. .sp
  38175. .nf
  38176. .ft C
  38177. salt\-minion \-l debug
  38178. .ft P
  38179. .fi
  38180. .UNINDENT
  38181. .UNINDENT
  38182. .sp
  38183. Upon connecting to the master, the following lines should appear on the output:
  38184. .INDENT 0.0
  38185. .INDENT 3.5
  38186. .sp
  38187. .nf
  38188. .ft C
  38189. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38190. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38191. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38192. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38193. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38194. [INFO ] Received signed and verified master pubkey from master 172.16.0.10
  38195. [DEBUG ] Decrypting the current master AES key
  38196. .ft P
  38197. .fi
  38198. .UNINDENT
  38199. .UNINDENT
  38200. .sp
  38201. If the signature verification fails, something went wrong and it will look
  38202. like this
  38203. .INDENT 0.0
  38204. .INDENT 3.5
  38205. .sp
  38206. .nf
  38207. .ft C
  38208. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38209. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38210. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38211. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38212. [DEBUG ] Failed to verify signature of public key
  38213. [CRITICAL] The Salt Master server\(aqs public key did not authenticate!
  38214. .ft P
  38215. .fi
  38216. .UNINDENT
  38217. .UNINDENT
  38218. .sp
  38219. In a case like this, it should be checked, that the verification pubkey
  38220. (master_sign.pub) on the minion is the same as the one on the master.
  38221. .sp
  38222. Once the verification is successful, the minion can be started in daemon mode
  38223. again.
  38224. .sp
  38225. For the paranoid among us, its also possible to verify the publication whenever
  38226. it is received from the master. That is, for every single auth\-attempt which
  38227. can be quite frequent. For example just the start of the minion will force the
  38228. signature to be checked 6 times for various things like auth, mine,
  38229. highstate, etc.
  38230. .sp
  38231. If that is desired, enable the setting
  38232. .INDENT 0.0
  38233. .INDENT 3.5
  38234. .sp
  38235. .nf
  38236. .ft C
  38237. always_verify_signature: True
  38238. .ft P
  38239. .fi
  38240. .UNINDENT
  38241. .UNINDENT
  38242. .SS Multiple Masters For A Minion
  38243. .sp
  38244. Configuring multiple masters on a minion is done by specifying two settings:
  38245. .INDENT 0.0
  38246. .IP \(bu 2
  38247. a list of masters addresses
  38248. .IP \(bu 2
  38249. what type of master is defined
  38250. .UNINDENT
  38251. .INDENT 0.0
  38252. .INDENT 3.5
  38253. .sp
  38254. .nf
  38255. .ft C
  38256. master:
  38257. \- 172.16.0.10
  38258. \- 172.16.0.11
  38259. \- 172.16.0.12
  38260. .ft P
  38261. .fi
  38262. .UNINDENT
  38263. .UNINDENT
  38264. .INDENT 0.0
  38265. .INDENT 3.5
  38266. .sp
  38267. .nf
  38268. .ft C
  38269. master_type: failover
  38270. .ft P
  38271. .fi
  38272. .UNINDENT
  38273. .UNINDENT
  38274. .sp
  38275. This tells the minion that all the master above are available for it to
  38276. connect to. When started with this configuration, it will try the master
  38277. in the order they are defined. To randomize that order, set
  38278. .INDENT 0.0
  38279. .INDENT 3.5
  38280. .sp
  38281. .nf
  38282. .ft C
  38283. master_shuffle: True
  38284. .ft P
  38285. .fi
  38286. .UNINDENT
  38287. .UNINDENT
  38288. .sp
  38289. The master\-list will then be shuffled before the first connection attempt.
  38290. .sp
  38291. The first master that accepts the minion, is used by the minion. If the
  38292. master does not yet know the minion, that counts as accepted and the minion
  38293. stays on that master.
  38294. .sp
  38295. For the minion to be able to detect if its still connected to its current
  38296. master enable the check for it
  38297. .INDENT 0.0
  38298. .INDENT 3.5
  38299. .sp
  38300. .nf
  38301. .ft C
  38302. master_alive_interval: <seconds>
  38303. .ft P
  38304. .fi
  38305. .UNINDENT
  38306. .UNINDENT
  38307. .sp
  38308. If the loss of the connection is detected, the minion will temporarily
  38309. remove the failed master from the list and try one of the other masters
  38310. defined (again shuffled if that is enabled).
  38311. .SS Testing the setup
  38312. .sp
  38313. At least two running masters are needed to test the failover setup.
  38314. .sp
  38315. Both masters should be running and the minion should be running on the command
  38316. line in debug mode
  38317. .INDENT 0.0
  38318. .INDENT 3.5
  38319. .sp
  38320. .nf
  38321. .ft C
  38322. salt\-minion \-l debug
  38323. .ft P
  38324. .fi
  38325. .UNINDENT
  38326. .UNINDENT
  38327. .sp
  38328. The minion will connect to the first master from its master list
  38329. .INDENT 0.0
  38330. .INDENT 3.5
  38331. .sp
  38332. .nf
  38333. .ft C
  38334. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38335. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38336. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38337. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38338. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38339. [INFO ] Received signed and verified master pubkey from master 172.16.0.10
  38340. [DEBUG ] Decrypting the current master AES key
  38341. .ft P
  38342. .fi
  38343. .UNINDENT
  38344. .UNINDENT
  38345. .sp
  38346. A test.version on the master the minion is currently connected to should be run to
  38347. test connectivity.
  38348. .sp
  38349. If successful, that master should be turned off. A firewall\-rule denying the
  38350. minions packets will also do the trick.
  38351. .sp
  38352. Depending on the configured conf_minion:\fImaster_alive_interval\fP, the minion
  38353. will notice the loss of the connection and log it to its logfile.
  38354. .INDENT 0.0
  38355. .INDENT 3.5
  38356. .sp
  38357. .nf
  38358. .ft C
  38359. [INFO ] Connection to master 172.16.0.10 lost
  38360. [INFO ] Trying to tune in to next master from master\-list
  38361. .ft P
  38362. .fi
  38363. .UNINDENT
  38364. .UNINDENT
  38365. .sp
  38366. The minion will then remove the current master from the list and try connecting
  38367. to the next master
  38368. .INDENT 0.0
  38369. .INDENT 3.5
  38370. .sp
  38371. .nf
  38372. .ft C
  38373. [INFO ] Removing possibly failed master 172.16.0.10 from list of masters
  38374. [WARNING ] Master ip address changed from 172.16.0.10 to 172.16.0.11
  38375. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.11
  38376. .ft P
  38377. .fi
  38378. .UNINDENT
  38379. .UNINDENT
  38380. .sp
  38381. If everything is configured correctly, the new masters public key will be
  38382. verified successfully
  38383. .INDENT 0.0
  38384. .INDENT 3.5
  38385. .sp
  38386. .nf
  38387. .ft C
  38388. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38389. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38390. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38391. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38392. .ft P
  38393. .fi
  38394. .UNINDENT
  38395. .UNINDENT
  38396. .sp
  38397. the authentication with the new master is successful
  38398. .INDENT 0.0
  38399. .INDENT 3.5
  38400. .sp
  38401. .nf
  38402. .ft C
  38403. [INFO ] Received signed and verified master pubkey from master 172.16.0.11
  38404. [DEBUG ] Decrypting the current master AES key
  38405. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38406. [INFO ] Authentication with master successful!
  38407. .ft P
  38408. .fi
  38409. .UNINDENT
  38410. .UNINDENT
  38411. .sp
  38412. and the minion can be pinged again from its new master.
  38413. .SS Performance Tuning
  38414. .sp
  38415. With the setup described above, the master computes a signature for every
  38416. auth\-request of a minion. With many minions and many auth\-requests, that
  38417. can chew up quite a bit of CPU\-Power.
  38418. .sp
  38419. To avoid that, the master can use a pre\-created signature of its public\-key.
  38420. The signature is saved as a base64 encoded string which the master reads
  38421. once when starting and attaches only that string to auth\-replies.
  38422. .sp
  38423. Enabling this also gives paranoid users the possibility, to have the signing
  38424. key\-pair on a different system than the actual salt\-master and create the public
  38425. keys signature there. Probably on a system with more restrictive firewall rules,
  38426. without internet access, less users, etc.
  38427. .sp
  38428. That signature can be created with
  38429. .INDENT 0.0
  38430. .INDENT 3.5
  38431. .sp
  38432. .nf
  38433. .ft C
  38434. salt\-key \-\-gen\-signature
  38435. .ft P
  38436. .fi
  38437. .UNINDENT
  38438. .UNINDENT
  38439. .sp
  38440. This will create a default signature file in the master pki\-directory
  38441. .INDENT 0.0
  38442. .INDENT 3.5
  38443. .sp
  38444. .nf
  38445. .ft C
  38446. /etc/salt/pki/master/master_pubkey_signature
  38447. .ft P
  38448. .fi
  38449. .UNINDENT
  38450. .UNINDENT
  38451. .sp
  38452. It is a simple text\-file with the binary\-signature converted to base64.
  38453. .sp
  38454. If no signing\-pair is present yet, this will auto\-create the signing pair and
  38455. the signature file in one call
  38456. .INDENT 0.0
  38457. .INDENT 3.5
  38458. .sp
  38459. .nf
  38460. .ft C
  38461. salt\-key \-\-gen\-signature \-\-auto\-create
  38462. .ft P
  38463. .fi
  38464. .UNINDENT
  38465. .UNINDENT
  38466. .sp
  38467. Telling the master to use the pre\-created signature is done with
  38468. .INDENT 0.0
  38469. .INDENT 3.5
  38470. .sp
  38471. .nf
  38472. .ft C
  38473. master_use_pubkey_signature: True
  38474. .ft P
  38475. .fi
  38476. .UNINDENT
  38477. .UNINDENT
  38478. .sp
  38479. That requires the file \(aqmaster_pubkey_signature\(aq to be present in the masters
  38480. pki\-directory with the correct signature.
  38481. .sp
  38482. If the signature file is named differently, its name can be set with
  38483. .INDENT 0.0
  38484. .INDENT 3.5
  38485. .sp
  38486. .nf
  38487. .ft C
  38488. master_pubkey_signature: <filename>
  38489. .ft P
  38490. .fi
  38491. .UNINDENT
  38492. .UNINDENT
  38493. .sp
  38494. With many masters and many public\-keys (default and signing), it is advised to
  38495. use the salt\-masters hostname for the signature\-files name. Signatures can be
  38496. easily confused because they do not provide any information about the key the
  38497. signature was created from.
  38498. .sp
  38499. Verifying that everything works is done the same way as above.
  38500. .SS How the signing and verification works
  38501. .sp
  38502. The default key\-pair of the salt\-master is
  38503. .INDENT 0.0
  38504. .INDENT 3.5
  38505. .sp
  38506. .nf
  38507. .ft C
  38508. /etc/salt/pki/master/master.pem
  38509. /etc/salt/pki/master/master.pub
  38510. .ft P
  38511. .fi
  38512. .UNINDENT
  38513. .UNINDENT
  38514. .sp
  38515. To be able to create a signature of a message (in this case a public\-key),
  38516. another key\-pair has to be added to the setup. Its default name is:
  38517. .INDENT 0.0
  38518. .INDENT 3.5
  38519. .sp
  38520. .nf
  38521. .ft C
  38522. master_sign.pem
  38523. master_sign.pub
  38524. .ft P
  38525. .fi
  38526. .UNINDENT
  38527. .UNINDENT
  38528. .sp
  38529. The combination of the master.* and master_sign.* key\-pairs give the
  38530. possibility of generating signatures. The signature of a given message
  38531. is unique and can be verified, if the public\-key of the signing\-key\-pair
  38532. is available to the recipient (the minion).
  38533. .sp
  38534. The signature of the masters public\-key in master.pub is computed with
  38535. .INDENT 0.0
  38536. .INDENT 3.5
  38537. .sp
  38538. .nf
  38539. .ft C
  38540. master_sign.pem
  38541. master.pub
  38542. M2Crypto.EVP.sign_update()
  38543. .ft P
  38544. .fi
  38545. .UNINDENT
  38546. .UNINDENT
  38547. .sp
  38548. This results in a binary signature which is converted to base64 and attached
  38549. to the auth\-reply send to the minion.
  38550. .sp
  38551. With the signing\-pairs public\-key available to the minion, the attached
  38552. signature can be verified with
  38553. .INDENT 0.0
  38554. .INDENT 3.5
  38555. .sp
  38556. .nf
  38557. .ft C
  38558. master_sign.pub
  38559. master.pub
  38560. M2Cryptos EVP.verify_update().
  38561. .ft P
  38562. .fi
  38563. .UNINDENT
  38564. .UNINDENT
  38565. .sp
  38566. When running multiple masters, either the signing key\-pair has to be present
  38567. on all of them, or the master_pubkey_signature has to be pre\-computed for
  38568. each master individually (because they all have different public\-keys).
  38569. .INDENT 0.0
  38570. .INDENT 3.5
  38571. DO NOT PUT THE SAME master.pub ON ALL MASTERS FOR EASE OF USE.
  38572. .UNINDENT
  38573. .UNINDENT
  38574. .SS Packaging External Modules for Salt
  38575. .SS External Modules Setuptools Entry\-Points Support
  38576. .sp
  38577. The salt loader was enhanced to look for external modules by looking at the
  38578. \fIsalt.loader\fP entry\-point:
  38579. .INDENT 0.0
  38580. .INDENT 3.5
  38581. \fI\%https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry\-points\fP
  38582. .UNINDENT
  38583. .UNINDENT
  38584. .sp
  38585. \fIpkg_resources\fP should be installed, which is normally included in setuptools.
  38586. .INDENT 0.0
  38587. .INDENT 3.5
  38588. \fI\%https://setuptools.readthedocs.io/en/latest/pkg_resources.html\fP
  38589. .UNINDENT
  38590. .UNINDENT
  38591. .sp
  38592. The package which has custom engines, minion modules, outputters, etc, should
  38593. require setuptools and should define the following entry points in its setup
  38594. function:
  38595. .INDENT 0.0
  38596. .INDENT 3.5
  38597. .sp
  38598. .nf
  38599. .ft C
  38600. from setuptools import setup, find_packages
  38601. setup(
  38602. name=<NAME>,
  38603. version=<VERSION>,
  38604. description=<DESC>,
  38605. author=<AUTHOR>,
  38606. author_email=<AUTHOR\-EMAIL>,
  38607. url=" ... ",
  38608. packages=find_packages(),
  38609. entry_points="""
  38610. [salt.loader]
  38611. engines_dirs = <package>.<loader\-module>:engines_dirs
  38612. fileserver_dirs = <package>.<loader\-module>:fileserver_dirs
  38613. pillar_dirs = <package>.<loader\-module>:pillar_dirs
  38614. returner_dirs = <package>.<loader\-module>:returner_dirs
  38615. roster_dirs = <package>.<loader\-module>:roster_dirs
  38616. """
  38617. )
  38618. .ft P
  38619. .fi
  38620. .UNINDENT
  38621. .UNINDENT
  38622. .sp
  38623. The above setup script example mentions a loader module. here\(aqs an example of
  38624. how \fI<package>/<loader\-module>.py\fP it should look:
  38625. .INDENT 0.0
  38626. .INDENT 3.5
  38627. .sp
  38628. .nf
  38629. .ft C
  38630. # \-*\- coding: utf\-8 \-*\-
  38631. # Import python libs
  38632. import os
  38633. PKG_DIR = os.path.abspath(os.path.dirname(__file__))
  38634. def engines_dirs():
  38635. \(aq\(aq\(aq
  38636. yield one path per parent directory of where engines can be found
  38637. \(aq\(aq\(aq
  38638. yield os.path.join(PKG_DIR, \(aqengines_1\(aq)
  38639. yield os.path.join(PKG_DIR, \(aqengines_2\(aq)
  38640. def fileserver_dirs():
  38641. \(aq\(aq\(aq
  38642. yield one path per parent directory of where fileserver modules can be found
  38643. \(aq\(aq\(aq
  38644. yield os.path.join(PKG_DIR, \(aqfileserver\(aq)
  38645. def pillar_dirs():
  38646. \(aq\(aq\(aq
  38647. yield one path per parent directory of where external pillar modules can be found
  38648. \(aq\(aq\(aq
  38649. yield os.path.join(PKG_DIR, \(aqpillar\(aq)
  38650. def returner_dirs():
  38651. \(aq\(aq\(aq
  38652. yield one path per parent directory of where returner modules can be found
  38653. \(aq\(aq\(aq
  38654. yield os.path.join(PKG_DIR, \(aqreturners\(aq)
  38655. def roster_dirs():
  38656. \(aq\(aq\(aq
  38657. yield one path per parent directory of where roster modules can be found
  38658. \(aq\(aq\(aq
  38659. yield os.path.join(PKG_DIR, \(aqroster\(aq)
  38660. .ft P
  38661. .fi
  38662. .UNINDENT
  38663. .UNINDENT
  38664. .SS How Do I Use Salt States?
  38665. .sp
  38666. Simplicity, Simplicity, Simplicity
  38667. .sp
  38668. Many of the most powerful and useful engineering solutions are founded on
  38669. simple principles. Salt States strive to do just that: K.I.S.S. (Keep It
  38670. Stupidly Simple)
  38671. .sp
  38672. The core of the Salt State system is the SLS, or \fBS\fPa\fBL\fPt
  38673. \fBS\fPtate file. The SLS is a representation of the state in which
  38674. a system should be in, and is set up to contain this data in a simple format.
  38675. This is often called configuration management.
  38676. .sp
  38677. \fBNOTE:\fP
  38678. .INDENT 0.0
  38679. .INDENT 3.5
  38680. This is just the beginning of using states, make sure to read up on pillar
  38681. Pillar next.
  38682. .UNINDENT
  38683. .UNINDENT
  38684. .SS It is All Just Data
  38685. .sp
  38686. Before delving into the particulars, it will help to understand that the SLS
  38687. file is just a data structure under the hood. While understanding that the SLS
  38688. is just a data structure isn\(aqt critical for understanding and making use of
  38689. Salt States, it should help bolster knowledge of where the real power is.
  38690. .sp
  38691. SLS files are therefore, in reality, just dictionaries, lists, strings, and
  38692. numbers. By using this approach Salt can be much more flexible. As one writes
  38693. more state files, it becomes clearer exactly what is being written. The result
  38694. is a system that is easy to understand, yet grows with the needs of the admin
  38695. or developer.
  38696. .SS The Top File
  38697. .sp
  38698. The example SLS files in the below sections can be assigned to hosts using a
  38699. file called \fBtop.sls\fP\&. This file is described in\-depth here\&.
  38700. .SS Default Data \- YAML
  38701. .sp
  38702. By default Salt represents the SLS data in what is one of the simplest
  38703. serialization formats available \- \fI\%YAML\fP\&.
  38704. .sp
  38705. A typical SLS file will often look like this in YAML:
  38706. .sp
  38707. \fBNOTE:\fP
  38708. .INDENT 0.0
  38709. .INDENT 3.5
  38710. These demos use some generic service and package names, different
  38711. distributions often use different names for packages and services. For
  38712. instance \fIapache\fP should be replaced with \fIhttpd\fP on a Red Hat system.
  38713. Salt uses the name of the init script, systemd name, upstart name etc.
  38714. based on what the underlying service management for the platform. To
  38715. get a list of the available service names on a platform execute the
  38716. service.get_all salt function.
  38717. .sp
  38718. Information on how to make states work with multiple distributions
  38719. is later in the tutorial.
  38720. .UNINDENT
  38721. .UNINDENT
  38722. .INDENT 0.0
  38723. .INDENT 3.5
  38724. .sp
  38725. .nf
  38726. .ft C
  38727. apache:
  38728. pkg.installed: []
  38729. service.running:
  38730. \- require:
  38731. \- pkg: apache
  38732. .ft P
  38733. .fi
  38734. .UNINDENT
  38735. .UNINDENT
  38736. .sp
  38737. This SLS data will ensure that the package named apache is installed, and
  38738. that the apache service is running. The components can be explained in a
  38739. simple way.
  38740. .sp
  38741. The first line is the ID for a set of data, and it is called the ID
  38742. Declaration. This ID sets the name of the thing that needs to be manipulated.
  38743. .sp
  38744. The second and third lines contain the state module function to be run, in the
  38745. format \fB<state_module>.<function>\fP\&. The \fBpkg.installed\fP state module
  38746. function ensures that a software package is installed via the system\(aqs native
  38747. package manager. The \fBservice.running\fP state module function ensures that a
  38748. given system daemon is running.
  38749. .sp
  38750. Finally, on line five, is the word \fBrequire\fP\&. This is called a Requisite
  38751. Statement, and it makes sure that the Apache service is only started after
  38752. a successful installation of the apache package.
  38753. .SS Adding Configs and Users
  38754. .sp
  38755. When setting up a service like an Apache web server, many more components may
  38756. need to be added. The Apache configuration file will most likely be managed,
  38757. and a user and group may need to be set up.
  38758. .INDENT 0.0
  38759. .INDENT 3.5
  38760. .sp
  38761. .nf
  38762. .ft C
  38763. apache:
  38764. pkg.installed: []
  38765. service.running:
  38766. \- watch:
  38767. \- pkg: apache
  38768. \- file: /etc/httpd/conf/httpd.conf
  38769. \- user: apache
  38770. user.present:
  38771. \- uid: 87
  38772. \- gid: 87
  38773. \- home: /var/www/html
  38774. \- shell: /bin/nologin
  38775. \- require:
  38776. \- group: apache
  38777. group.present:
  38778. \- gid: 87
  38779. \- require:
  38780. \- pkg: apache
  38781. /etc/httpd/conf/httpd.conf:
  38782. file.managed:
  38783. \- source: salt://apache/httpd.conf
  38784. \- user: root
  38785. \- group: root
  38786. \- mode: 644
  38787. .ft P
  38788. .fi
  38789. .UNINDENT
  38790. .UNINDENT
  38791. .sp
  38792. This SLS data greatly extends the first example, and includes a config file,
  38793. a user, a group and new requisite statement: \fBwatch\fP\&.
  38794. .sp
  38795. Adding more states is easy, since the new user and group states are under
  38796. the Apache ID, the user and group will be the Apache user and group. The
  38797. \fBrequire\fP statements will make sure that the user will only be made after
  38798. the group, and that the group will be made only after the Apache package is
  38799. installed.
  38800. .sp
  38801. Next, the \fBrequire\fP statement under service was changed to watch, and is
  38802. now watching 3 states instead of just one. The watch statement does the same
  38803. thing as require, making sure that the other states run before running the
  38804. state with a watch, but it adds an extra component. The \fBwatch\fP statement
  38805. will run the state\(aqs watcher function for any changes to the watched states.
  38806. So if the package was updated, the config file changed, or the user
  38807. uid modified, then the service state\(aqs watcher will be run. The service
  38808. state\(aqs watcher just restarts the service, so in this case, a change in the
  38809. config file will also trigger a restart of the respective service.
  38810. .SS Moving Beyond a Single SLS
  38811. .sp
  38812. When setting up Salt States in a scalable manner, more than one SLS will need
  38813. to be used. The above examples were in a single SLS file, but two or more
  38814. SLS files can be combined to build out a State Tree. The above example also
  38815. references a file with a strange source \- \fBsalt://apache/httpd.conf\fP\&. That
  38816. file will need to be available as well.
  38817. .sp
  38818. The SLS files are laid out in a directory structure on the Salt master; an
  38819. SLS is just a file and files to download are just files.
  38820. .sp
  38821. The Apache example would be laid out in the root of the Salt file server like
  38822. this:
  38823. .INDENT 0.0
  38824. .INDENT 3.5
  38825. .sp
  38826. .nf
  38827. .ft C
  38828. apache/init.sls
  38829. apache/httpd.conf
  38830. .ft P
  38831. .fi
  38832. .UNINDENT
  38833. .UNINDENT
  38834. .sp
  38835. So the httpd.conf is just a file in the apache directory, and is referenced
  38836. directly.
  38837. .INDENT 0.0
  38838. .INDENT 3.5
  38839. .IP "Do not use dots in SLS file names or their directories"
  38840. .sp
  38841. The initial implementation of \fBtop.sls\fP and
  38842. include\-declaration followed the python import model where a slash
  38843. is represented as a period. This means that a SLS file with a period in
  38844. the name ( besides the suffix period) can not be referenced. For example,
  38845. webserver_1.0.sls is not referenceable because webserver_1.0 would refer
  38846. to the directory/file webserver_1/0.sls
  38847. .sp
  38848. The same applies for any subdirectories, this is especially \(aqtricky\(aq when
  38849. git repos are created. Another command that typically can\(aqt render its
  38850. output is \fB\(gastate.show_sls\(ga\fP of a file in a path that contains a dot.
  38851. .UNINDENT
  38852. .UNINDENT
  38853. .sp
  38854. But when using more than one single SLS file, more components can be added to
  38855. the toolkit. Consider this SSH example:
  38856. .sp
  38857. \fBssh/init.sls:\fP
  38858. .INDENT 0.0
  38859. .INDENT 3.5
  38860. .sp
  38861. .nf
  38862. .ft C
  38863. openssh\-client:
  38864. pkg.installed
  38865. /etc/ssh/ssh_config:
  38866. file.managed:
  38867. \- user: root
  38868. \- group: root
  38869. \- mode: 644
  38870. \- source: salt://ssh/ssh_config
  38871. \- require:
  38872. \- pkg: openssh\-client
  38873. .ft P
  38874. .fi
  38875. .UNINDENT
  38876. .UNINDENT
  38877. .sp
  38878. \fBssh/server.sls:\fP
  38879. .INDENT 0.0
  38880. .INDENT 3.5
  38881. .sp
  38882. .nf
  38883. .ft C
  38884. include:
  38885. \- ssh
  38886. openssh\-server:
  38887. pkg.installed
  38888. sshd:
  38889. service.running:
  38890. \- require:
  38891. \- pkg: openssh\-client
  38892. \- pkg: openssh\-server
  38893. \- file: /etc/ssh/banner
  38894. \- file: /etc/ssh/sshd_config
  38895. /etc/ssh/sshd_config:
  38896. file.managed:
  38897. \- user: root
  38898. \- group: root
  38899. \- mode: 644
  38900. \- source: salt://ssh/sshd_config
  38901. \- require:
  38902. \- pkg: openssh\-server
  38903. /etc/ssh/banner:
  38904. file:
  38905. \- managed
  38906. \- user: root
  38907. \- group: root
  38908. \- mode: 644
  38909. \- source: salt://ssh/banner
  38910. \- require:
  38911. \- pkg: openssh\-server
  38912. .ft P
  38913. .fi
  38914. .UNINDENT
  38915. .UNINDENT
  38916. .sp
  38917. \fBNOTE:\fP
  38918. .INDENT 0.0
  38919. .INDENT 3.5
  38920. Notice that we use two similar ways of denoting that a file
  38921. is managed by Salt. In the \fI/etc/ssh/sshd_config\fP state section above,
  38922. we use the \fIfile.managed\fP state declaration whereas with the
  38923. \fI/etc/ssh/banner\fP state section, we use the \fIfile\fP state declaration
  38924. and add a \fImanaged\fP attribute to that state declaration. Both ways
  38925. produce an identical result; the first way \-\- using \fIfile.managed\fP \-\-
  38926. is merely a shortcut.
  38927. .UNINDENT
  38928. .UNINDENT
  38929. .sp
  38930. Now our State Tree looks like this:
  38931. .INDENT 0.0
  38932. .INDENT 3.5
  38933. .sp
  38934. .nf
  38935. .ft C
  38936. apache/init.sls
  38937. apache/httpd.conf
  38938. ssh/init.sls
  38939. ssh/server.sls
  38940. ssh/banner
  38941. ssh/ssh_config
  38942. ssh/sshd_config
  38943. .ft P
  38944. .fi
  38945. .UNINDENT
  38946. .UNINDENT
  38947. .sp
  38948. This example now introduces the \fBinclude\fP statement. The include statement
  38949. includes another SLS file so that components found in it can be required,
  38950. watched or as will soon be demonstrated \- extended.
  38951. .sp
  38952. The include statement allows for states to be cross linked. When an SLS
  38953. has an include statement it is literally extended to include the contents of
  38954. the included SLS files.
  38955. .sp
  38956. Note that some of the SLS files are called init.sls, while others are not. More
  38957. info on what this means can be found in the States Tutorial\&.
  38958. .SS Extending Included SLS Data
  38959. .sp
  38960. Sometimes SLS data needs to be extended. Perhaps the apache service needs to
  38961. watch additional resources, or under certain circumstances a different file
  38962. needs to be placed.
  38963. .sp
  38964. In these examples, the first will add a custom banner to ssh and the second will
  38965. add more watchers to apache to include mod_python.
  38966. .sp
  38967. \fBssh/custom\-server.sls:\fP
  38968. .INDENT 0.0
  38969. .INDENT 3.5
  38970. .sp
  38971. .nf
  38972. .ft C
  38973. include:
  38974. \- ssh.server
  38975. extend:
  38976. /etc/ssh/banner:
  38977. file:
  38978. \- source: salt://ssh/custom\-banner
  38979. .ft P
  38980. .fi
  38981. .UNINDENT
  38982. .UNINDENT
  38983. .sp
  38984. \fBpython/mod_python.sls:\fP
  38985. .INDENT 0.0
  38986. .INDENT 3.5
  38987. .sp
  38988. .nf
  38989. .ft C
  38990. include:
  38991. \- apache
  38992. extend:
  38993. apache:
  38994. service:
  38995. \- watch:
  38996. \- pkg: mod_python
  38997. mod_python:
  38998. pkg.installed
  38999. .ft P
  39000. .fi
  39001. .UNINDENT
  39002. .UNINDENT
  39003. .sp
  39004. The \fBcustom\-server.sls\fP file uses the extend statement to overwrite where the
  39005. banner is being downloaded from, and therefore changing what file is being used
  39006. to configure the banner.
  39007. .sp
  39008. In the new mod_python SLS the mod_python package is added, but more importantly
  39009. the apache service was extended to also watch the mod_python package.
  39010. .INDENT 0.0
  39011. .INDENT 3.5
  39012. .IP "Using extend with require or watch"
  39013. .sp
  39014. The \fBextend\fP statement works differently for \fBrequire\fP or \fBwatch\fP\&.
  39015. It appends to, rather than replacing the requisite component.
  39016. .UNINDENT
  39017. .UNINDENT
  39018. .SS Understanding the Render System
  39019. .sp
  39020. Since SLS data is simply that (data), it does not need to be represented
  39021. with YAML. Salt defaults to YAML because it is very straightforward and easy
  39022. to learn and use. But the SLS files can be rendered from almost any imaginable
  39023. medium, so long as a renderer module is provided.
  39024. .sp
  39025. The default rendering system is the \fBjinja|yaml\fP renderer. The
  39026. \fBjinja|yaml\fP renderer will first pass the template through the \fI\%Jinja2\fP
  39027. templating system, and then through the YAML parser. The benefit here is that
  39028. full programming constructs are available when creating SLS files.
  39029. .sp
  39030. Other renderers available are \fByaml_mako\fP and \fByaml_wempy\fP which each use
  39031. the \fI\%Mako\fP or \fI\%Wempy\fP templating system respectively rather than the jinja
  39032. templating system, and more notably, the pure Python or \fBpy\fP, \fBpydsl\fP &
  39033. \fBpyobjects\fP renderers.
  39034. The \fBpy\fP renderer allows for SLS files to be written in pure Python,
  39035. allowing for the utmost level of flexibility and power when preparing SLS
  39036. data; while the \fBpydsl\fP renderer
  39037. provides a flexible, domain\-specific language for authoring SLS data in Python;
  39038. and the \fBpyobjects\fP renderer
  39039. gives you a \fI\%"Pythonic"\fP interface to building state data.
  39040. .sp
  39041. \fBNOTE:\fP
  39042. .INDENT 0.0
  39043. .INDENT 3.5
  39044. The templating engines described above aren\(aqt just available in SLS files.
  39045. They can also be used in \fBfile.managed\fP
  39046. states, making file management much more dynamic and flexible. Some
  39047. examples for using templates in managed files can be found in the
  39048. documentation for the \fBfile state\fP, as well as the
  39049. \fI\%MooseFS example\fP below.
  39050. .UNINDENT
  39051. .UNINDENT
  39052. .SS Getting to Know the Default \- jinja|yaml
  39053. .sp
  39054. The default renderer \- \fBjinja|yaml\fP, allows for use of the jinja
  39055. templating system. A guide to the Jinja templating system can be found here:
  39056. \fI\%https://jinja.palletsprojects.com/en/2.11.x/\fP
  39057. .sp
  39058. When working with renderers a few very useful bits of data are passed in. In
  39059. the case of templating engine based renderers, three critical components are
  39060. available, \fBsalt\fP, \fBgrains\fP, and \fBpillar\fP\&. The \fBsalt\fP object allows for
  39061. any Salt function to be called from within the template, and \fBgrains\fP allows
  39062. for the Grains to be accessed from within the template. A few examples:
  39063. .sp
  39064. \fBapache/init.sls:\fP
  39065. .INDENT 0.0
  39066. .INDENT 3.5
  39067. .sp
  39068. .nf
  39069. .ft C
  39070. apache:
  39071. pkg.installed:
  39072. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq%}
  39073. \- name: httpd
  39074. {% endif %}
  39075. service.running:
  39076. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq%}
  39077. \- name: httpd
  39078. {% endif %}
  39079. \- watch:
  39080. \- pkg: apache
  39081. \- file: /etc/httpd/conf/httpd.conf
  39082. \- user: apache
  39083. user.present:
  39084. \- uid: 87
  39085. \- gid: 87
  39086. \- home: /var/www/html
  39087. \- shell: /bin/nologin
  39088. \- require:
  39089. \- group: apache
  39090. group.present:
  39091. \- gid: 87
  39092. \- require:
  39093. \- pkg: apache
  39094. /etc/httpd/conf/httpd.conf:
  39095. file.managed:
  39096. \- source: salt://apache/httpd.conf
  39097. \- user: root
  39098. \- group: root
  39099. \- mode: 644
  39100. .ft P
  39101. .fi
  39102. .UNINDENT
  39103. .UNINDENT
  39104. .sp
  39105. This example is simple. If the \fBos\fP grain states that the operating system is
  39106. Red Hat, then the name of the Apache package and service needs to be httpd.
  39107. .sp
  39108. A more aggressive way to use Jinja can be found here, in a module to set up
  39109. a MooseFS distributed filesystem chunkserver:
  39110. .sp
  39111. \fBmoosefs/chunk.sls:\fP
  39112. .INDENT 0.0
  39113. .INDENT 3.5
  39114. .sp
  39115. .nf
  39116. .ft C
  39117. include:
  39118. \- moosefs
  39119. {% for mnt in salt[\(aqcmd.run\(aq](\(aqls /dev/data/moose*\(aq).split() %}
  39120. /mnt/moose{{ mnt[\-1] }}:
  39121. mount.mounted:
  39122. \- device: {{ mnt }}
  39123. \- fstype: xfs
  39124. \- mkmnt: True
  39125. file.directory:
  39126. \- user: mfs
  39127. \- group: mfs
  39128. \- require:
  39129. \- user: mfs
  39130. \- group: mfs
  39131. {% endfor %}
  39132. /etc/mfshdd.cfg:
  39133. file.managed:
  39134. \- source: salt://moosefs/mfshdd.cfg
  39135. \- user: root
  39136. \- group: root
  39137. \- mode: 644
  39138. \- template: jinja
  39139. \- require:
  39140. \- pkg: mfs\-chunkserver
  39141. /etc/mfschunkserver.cfg:
  39142. file.managed:
  39143. \- source: salt://moosefs/mfschunkserver.cfg
  39144. \- user: root
  39145. \- group: root
  39146. \- mode: 644
  39147. \- template: jinja
  39148. \- require:
  39149. \- pkg: mfs\-chunkserver
  39150. mfs\-chunkserver:
  39151. pkg.installed: []
  39152. mfschunkserver:
  39153. service.running:
  39154. \- require:
  39155. {% for mnt in salt[\(aqcmd.run\(aq](\(aqls /dev/data/moose*\(aq) %}
  39156. \- mount: /mnt/moose{{ mnt[\-1] }}
  39157. \- file: /mnt/moose{{ mnt[\-1] }}
  39158. {% endfor %}
  39159. \- file: /etc/mfschunkserver.cfg
  39160. \- file: /etc/mfshdd.cfg
  39161. \- file: /var/lib/mfs
  39162. .ft P
  39163. .fi
  39164. .UNINDENT
  39165. .UNINDENT
  39166. .sp
  39167. This example shows much more of the available power of Jinja.
  39168. Multiple for loops are used to dynamically detect available hard drives
  39169. and set them up to be mounted, and the \fBsalt\fP object is used multiple
  39170. times to call shell commands to gather data.
  39171. .SS Introducing the Python, PyDSL, and the Pyobjects Renderers
  39172. .sp
  39173. Sometimes the chosen default renderer might not have enough logical power to
  39174. accomplish the needed task. When this happens, the Python renderer can be
  39175. used. Normally a YAML renderer should be used for the majority of SLS files,
  39176. but an SLS file set to use another renderer can be easily added to the tree.
  39177. .sp
  39178. This example shows a very basic Python SLS file:
  39179. .sp
  39180. \fBpython/django.sls:\fP
  39181. .INDENT 0.0
  39182. .INDENT 3.5
  39183. .sp
  39184. .nf
  39185. .ft C
  39186. #!py
  39187. def run():
  39188. """
  39189. Install the django package
  39190. """
  39191. return {"include": ["python"], "django": {"pkg": ["installed"]}}
  39192. .ft P
  39193. .fi
  39194. .UNINDENT
  39195. .UNINDENT
  39196. .sp
  39197. This is a very simple example; the first line has an SLS shebang that
  39198. tells Salt to not use the default renderer, but to use the \fBpy\fP renderer.
  39199. Then the run function is defined, the return value from the run function
  39200. must be a Salt friendly data structure, or better known as a Salt
  39201. HighState data structure\&.
  39202. .sp
  39203. Alternatively, using the \fBpydsl\fP
  39204. renderer, the above example can be written more succinctly as:
  39205. .INDENT 0.0
  39206. .INDENT 3.5
  39207. .sp
  39208. .nf
  39209. .ft C
  39210. #!pydsl
  39211. include("python", delayed=True)
  39212. state("django").pkg.installed()
  39213. .ft P
  39214. .fi
  39215. .UNINDENT
  39216. .UNINDENT
  39217. .sp
  39218. The \fBpyobjects\fP renderer
  39219. provides an \fI\%"Pythonic"\fP object based approach for building the state data.
  39220. The above example could be written as:
  39221. .INDENT 0.0
  39222. .INDENT 3.5
  39223. .sp
  39224. .nf
  39225. .ft C
  39226. #!pyobjects
  39227. include("python")
  39228. Pkg.installed("django")
  39229. .ft P
  39230. .fi
  39231. .UNINDENT
  39232. .UNINDENT
  39233. .sp
  39234. These Python examples would look like this if they were written in YAML:
  39235. .INDENT 0.0
  39236. .INDENT 3.5
  39237. .sp
  39238. .nf
  39239. .ft C
  39240. include:
  39241. \- python
  39242. django:
  39243. pkg.installed
  39244. .ft P
  39245. .fi
  39246. .UNINDENT
  39247. .UNINDENT
  39248. .sp
  39249. This example clearly illustrates that; one, using the YAML renderer by default
  39250. is a wise decision and two, unbridled power can be obtained where needed by
  39251. using a pure Python SLS.
  39252. .SS Running and Debugging Salt States
  39253. .sp
  39254. Once the rules in an SLS are ready, they should be tested to ensure they
  39255. work properly. To invoke these rules, simply execute
  39256. \fBsalt \(aq*\(aq state.apply\fP on the command line. If you get back only
  39257. hostnames with a \fB:\fP after, but no return, chances are there is a problem with
  39258. one or more of the sls files. On the minion, use the \fBsalt\-call\fP command to
  39259. examine the output for errors:
  39260. .INDENT 0.0
  39261. .INDENT 3.5
  39262. .sp
  39263. .nf
  39264. .ft C
  39265. salt\-call state.apply \-l debug
  39266. .ft P
  39267. .fi
  39268. .UNINDENT
  39269. .UNINDENT
  39270. .sp
  39271. This should help troubleshoot the issue. The minion can also be started in the
  39272. foreground in debug mode by running \fBsalt\-minion \-l debug\fP\&.
  39273. .SS Next Reading
  39274. .sp
  39275. With an understanding of states, the next recommendation is to become familiar
  39276. with Salt\(aqs pillar interface:
  39277. .INDENT 0.0
  39278. .INDENT 3.5
  39279. Pillar Walkthrough
  39280. .UNINDENT
  39281. .UNINDENT
  39282. .SS States tutorial, part 1 \- Basic Usage
  39283. .sp
  39284. The purpose of this tutorial is to demonstrate how quickly you can configure a
  39285. system to be managed by Salt States. For detailed information about the state
  39286. system please refer to the full states reference\&.
  39287. .sp
  39288. This tutorial will walk you through using Salt to configure a minion to run the
  39289. Apache HTTP server and to ensure the server is running.
  39290. .sp
  39291. \fBBefore continuing\fP make sure you have a working Salt installation by
  39292. following the installation and the
  39293. configuration instructions.
  39294. .INDENT 0.0
  39295. .INDENT 3.5
  39296. .IP "Stuck?"
  39297. .sp
  39298. There are many ways to get help from the Salt community including our
  39299. \fI\%mailing list\fP
  39300. and our \fI\%IRC channel\fP #salt.
  39301. .UNINDENT
  39302. .UNINDENT
  39303. .SS Setting up the Salt State Tree
  39304. .sp
  39305. States are stored in text files on the master and transferred to the minions on
  39306. demand via the master\(aqs File Server. The collection of state files make up the
  39307. \fBState Tree\fP\&.
  39308. .sp
  39309. To start using a central state system in Salt, the Salt File Server must first
  39310. be set up. Edit the master config file (\fBfile_roots\fP) and
  39311. uncomment the following lines:
  39312. .INDENT 0.0
  39313. .INDENT 3.5
  39314. .sp
  39315. .nf
  39316. .ft C
  39317. file_roots:
  39318. base:
  39319. \- /srv/salt
  39320. .ft P
  39321. .fi
  39322. .UNINDENT
  39323. .UNINDENT
  39324. .sp
  39325. \fBNOTE:\fP
  39326. .INDENT 0.0
  39327. .INDENT 3.5
  39328. If you are deploying on FreeBSD via ports, the \fBfile_roots\fP path defaults
  39329. to \fB/usr/local/etc/salt/states\fP\&.
  39330. .UNINDENT
  39331. .UNINDENT
  39332. .sp
  39333. Restart the Salt master in order to pick up this change:
  39334. .INDENT 0.0
  39335. .INDENT 3.5
  39336. .sp
  39337. .nf
  39338. .ft C
  39339. pkill salt\-master
  39340. salt\-master \-d
  39341. .ft P
  39342. .fi
  39343. .UNINDENT
  39344. .UNINDENT
  39345. .SS Preparing the Top File
  39346. .sp
  39347. On the master, in the directory uncommented in the previous step,
  39348. (\fB/srv/salt\fP by default), create a new file called
  39349. \fBtop.sls\fP and add the following:
  39350. .INDENT 0.0
  39351. .INDENT 3.5
  39352. .sp
  39353. .nf
  39354. .ft C
  39355. base:
  39356. \(aq*\(aq:
  39357. \- webserver
  39358. .ft P
  39359. .fi
  39360. .UNINDENT
  39361. .UNINDENT
  39362. .sp
  39363. The top file is separated into environments (discussed
  39364. later). The default environment is \fBbase\fP\&. Under the \fBbase\fP environment a
  39365. collection of minion matches is defined; for now simply specify all hosts
  39366. (\fB*\fP).
  39367. .INDENT 0.0
  39368. .INDENT 3.5
  39369. .IP "Targeting minions"
  39370. .sp
  39371. The expressions can use any of the targeting mechanisms used by Salt —
  39372. minions can be matched by glob, PCRE regular expression, or by grains\&. For example:
  39373. .INDENT 0.0
  39374. .INDENT 3.5
  39375. .sp
  39376. .nf
  39377. .ft C
  39378. base:
  39379. \(aqos:Fedora\(aq:
  39380. \- match: grain
  39381. \- webserver
  39382. .ft P
  39383. .fi
  39384. .UNINDENT
  39385. .UNINDENT
  39386. .UNINDENT
  39387. .UNINDENT
  39388. .SS Create an \fBsls\fP file
  39389. .sp
  39390. In the same directory as the top file, create a file
  39391. named \fBwebserver.sls\fP, containing the following:
  39392. .INDENT 0.0
  39393. .INDENT 3.5
  39394. .sp
  39395. .nf
  39396. .ft C
  39397. apache: # ID declaration
  39398. pkg: # state declaration
  39399. \- installed # function declaration
  39400. .ft P
  39401. .fi
  39402. .UNINDENT
  39403. .UNINDENT
  39404. .sp
  39405. The first line, called the id\-declaration, is an arbitrary identifier.
  39406. In this case it defines the name of the package to be installed.
  39407. .sp
  39408. \fBNOTE:\fP
  39409. .INDENT 0.0
  39410. .INDENT 3.5
  39411. The package name for the Apache httpd web server may differ depending on
  39412. OS or distro — for example, on Fedora it is \fBhttpd\fP but on
  39413. Debian/Ubuntu it is \fBapache2\fP\&.
  39414. .UNINDENT
  39415. .UNINDENT
  39416. .sp
  39417. The second line, called the state\-declaration, defines which of the Salt
  39418. States we are using. In this example, we are using the \fBpkg state\fP to ensure that a given package is installed.
  39419. .sp
  39420. The third line, called the function\-declaration, defines which function
  39421. in the \fBpkg state\fP module to call.
  39422. .INDENT 0.0
  39423. .INDENT 3.5
  39424. .IP "Renderers"
  39425. .sp
  39426. States \fBsls\fP files can be written in many formats. Salt requires only
  39427. a simple data structure and is not concerned with how that data structure
  39428. is built. Templating languages and \fI\%DSLs\fP are a dime\-a\-dozen and everyone
  39429. has a favorite.
  39430. .sp
  39431. Building the expected data structure is the job of Salt renderers
  39432. and they are dead\-simple to write.
  39433. .sp
  39434. In this tutorial we will be using YAML in Jinja2 templates, which is the
  39435. default format. The default can be changed by editing
  39436. \fBrenderer\fP in the master configuration file.
  39437. .UNINDENT
  39438. .UNINDENT
  39439. .SS Install the package
  39440. .sp
  39441. Next, let\(aqs run the state we created. Open a terminal on the master and run:
  39442. .INDENT 0.0
  39443. .INDENT 3.5
  39444. .sp
  39445. .nf
  39446. .ft C
  39447. salt \(aq*\(aq state.apply
  39448. .ft P
  39449. .fi
  39450. .UNINDENT
  39451. .UNINDENT
  39452. .sp
  39453. Our master is instructing all targeted minions to run \fBstate.apply\fP\&. When this function is executed without any SLS
  39454. targets, a minion will download the top file and attempt to
  39455. match the expressions within it. When the minion does match an expression the
  39456. modules listed for it will be downloaded, compiled, and executed.
  39457. .sp
  39458. \fBNOTE:\fP
  39459. .INDENT 0.0
  39460. .INDENT 3.5
  39461. This action is referred to as a "highstate", and can be run using the
  39462. \fBstate.highstate\fP function.
  39463. However, to make the usage easier to understand ("highstate" is not
  39464. necessarily an intuitive name), a \fBstate.apply\fP function was added in version 2015.5.0, which
  39465. when invoked without any SLS names will trigger a highstate.
  39466. \fBstate.highstate\fP still exists and
  39467. can be used, but the documentation (as can be seen above) has been updated
  39468. to reference \fBstate.apply\fP, so keep
  39469. the following in mind as you read the documentation:
  39470. .INDENT 0.0
  39471. .IP \(bu 2
  39472. \fBstate.apply\fP invoked without any
  39473. SLS names will run \fBstate.highstate\fP
  39474. .IP \(bu 2
  39475. \fBstate.apply\fP invoked with SLS names
  39476. will run \fBstate.sls\fP
  39477. .UNINDENT
  39478. .UNINDENT
  39479. .UNINDENT
  39480. .sp
  39481. Once completed, the minion will report back with a summary of all actions taken
  39482. and all changes made.
  39483. .sp
  39484. \fBWARNING:\fP
  39485. .INDENT 0.0
  39486. .INDENT 3.5
  39487. If you have created custom grain modules, they will
  39488. not be available in the top file until after the first \fI\%highstate\fP\&. To make custom grains available on a minion\(aqs first
  39489. \fI\%highstate\fP, it is recommended to use this
  39490. example to ensure that the custom grains are synced
  39491. when the minion starts.
  39492. .UNINDENT
  39493. .UNINDENT
  39494. .INDENT 0.0
  39495. .INDENT 3.5
  39496. .IP "SLS File Namespace"
  39497. .sp
  39498. Note that in the \fI\%example\fP above, the SLS file
  39499. \fBwebserver.sls\fP was referred to simply as \fBwebserver\fP\&. The namespace
  39500. for SLS files when referenced in \fBtop.sls\fP or an include\-declaration
  39501. follows a few simple rules:
  39502. .INDENT 0.0
  39503. .IP 1. 3
  39504. The \fB\&.sls\fP is discarded (i.e. \fBwebserver.sls\fP becomes
  39505. \fBwebserver\fP).
  39506. .IP 2. 3
  39507. .INDENT 3.0
  39508. .TP
  39509. .B Subdirectories can be used for better organization.
  39510. .INDENT 7.0
  39511. .IP a. 3
  39512. Each subdirectory is represented with a dot (following the Python
  39513. import model) in Salt states and on the command line . \fBwebserver/dev.sls\fP
  39514. on the filesystem is referred to as \fBwebserver.dev\fP in Salt
  39515. .IP b. 3
  39516. Because slashes are represented as dots, SLS files can not contain
  39517. dots in the name (other than the dot for the SLS suffix). The SLS
  39518. file \fBwebserver_1.0.sls\fP can not be matched, and \fBwebserver_1.0\fP
  39519. would match the directory/file \fBwebserver_1/0.sls\fP
  39520. .UNINDENT
  39521. .UNINDENT
  39522. .IP 3. 3
  39523. A file called \fBinit.sls\fP in a subdirectory is referred to by the path
  39524. of the directory. So, \fBwebserver/init.sls\fP is referred to as
  39525. \fBwebserver\fP\&.
  39526. .IP 4. 3
  39527. If both \fBwebserver.sls\fP and \fBwebserver/init.sls\fP happen to exist,
  39528. \fBwebserver/init.sls\fP will be ignored and \fBwebserver.sls\fP will be the
  39529. file referred to as \fBwebserver\fP\&.
  39530. .UNINDENT
  39531. .UNINDENT
  39532. .UNINDENT
  39533. .INDENT 0.0
  39534. .INDENT 3.5
  39535. .IP "Troubleshooting Salt"
  39536. .sp
  39537. If the expected output isn\(aqt seen, the following tips can help to
  39538. narrow down the problem.
  39539. .INDENT 0.0
  39540. .TP
  39541. .B Turn up logging
  39542. Salt can be quite chatty when you change the logging setting to
  39543. \fBdebug\fP:
  39544. .INDENT 7.0
  39545. .INDENT 3.5
  39546. .sp
  39547. .nf
  39548. .ft C
  39549. salt\-minion \-l debug
  39550. .ft P
  39551. .fi
  39552. .UNINDENT
  39553. .UNINDENT
  39554. .TP
  39555. .B Run the minion in the foreground
  39556. By not starting the minion in daemon mode (\fB\-d\fP)
  39557. one can view any output from the minion as it works:
  39558. .INDENT 7.0
  39559. .INDENT 3.5
  39560. .sp
  39561. .nf
  39562. .ft C
  39563. salt\-minion
  39564. .ft P
  39565. .fi
  39566. .UNINDENT
  39567. .UNINDENT
  39568. .UNINDENT
  39569. .sp
  39570. Increase the default timeout value when running \fBsalt\fP\&. For
  39571. example, to change the default timeout to 60 seconds:
  39572. .INDENT 0.0
  39573. .INDENT 3.5
  39574. .sp
  39575. .nf
  39576. .ft C
  39577. salt \-t 60
  39578. .ft P
  39579. .fi
  39580. .UNINDENT
  39581. .UNINDENT
  39582. .sp
  39583. For best results, combine all three:
  39584. .INDENT 0.0
  39585. .INDENT 3.5
  39586. .sp
  39587. .nf
  39588. .ft C
  39589. salt\-minion \-l debug # On the minion
  39590. salt \(aq*\(aq state.apply \-t 60 # On the master
  39591. .ft P
  39592. .fi
  39593. .UNINDENT
  39594. .UNINDENT
  39595. .UNINDENT
  39596. .UNINDENT
  39597. .SS Next steps
  39598. .sp
  39599. This tutorial focused on getting a simple Salt States configuration working.
  39600. Part 2 will build on this example to cover more advanced
  39601. \fBsls\fP syntax and will explore more of the states that ship with Salt.
  39602. .SS States tutorial, part 2 \- More Complex States, Requisites
  39603. .sp
  39604. \fBNOTE:\fP
  39605. .INDENT 0.0
  39606. .INDENT 3.5
  39607. This tutorial builds on topics covered in part 1\&. It is
  39608. recommended that you begin there.
  39609. .UNINDENT
  39610. .UNINDENT
  39611. .sp
  39612. In the last part of the Salt States tutorial we covered the
  39613. basics of installing a package. We will now modify our \fBwebserver.sls\fP file
  39614. to have requirements, and use even more Salt States.
  39615. .SS Call multiple States
  39616. .sp
  39617. You can specify multiple state\-declaration under an
  39618. id\-declaration\&. For example, a quick modification to our
  39619. \fBwebserver.sls\fP to also start Apache if it is not running:
  39620. .INDENT 0.0
  39621. .INDENT 3.5
  39622. .sp
  39623. .nf
  39624. .ft C
  39625. apache:
  39626. pkg.installed: []
  39627. service.running:
  39628. \- require:
  39629. \- pkg: apache
  39630. .ft P
  39631. .fi
  39632. .UNINDENT
  39633. .UNINDENT
  39634. .sp
  39635. Try stopping Apache before running \fBstate.apply\fP once again and observe the output.
  39636. .sp
  39637. \fBNOTE:\fP
  39638. .INDENT 0.0
  39639. .INDENT 3.5
  39640. For those running RedhatOS derivatives (Centos, AWS), you will want to specify the
  39641. service name to be httpd. More on state service here, \fBservice state\fP\&. With the example above, just add "\- name: httpd"
  39642. above the require line and with the same spacing.
  39643. .UNINDENT
  39644. .UNINDENT
  39645. .SS Require other states
  39646. .sp
  39647. We now have a working installation of Apache so let\(aqs add an HTML file to
  39648. customize our website. It isn\(aqt exactly useful to have a website without a
  39649. webserver so we don\(aqt want Salt to install our HTML file until Apache is
  39650. installed and running. Include the following at the bottom of your
  39651. \fBwebserver/init.sls\fP file:
  39652. .INDENT 0.0
  39653. .INDENT 3.5
  39654. .sp
  39655. .nf
  39656. .ft C
  39657. apache:
  39658. pkg.installed: []
  39659. service.running:
  39660. \- require:
  39661. \- pkg: apache
  39662. /var/www/index.html: # ID declaration
  39663. file: # state declaration
  39664. \- managed # function
  39665. \- source: salt://webserver/index.html # function arg
  39666. \- require: # requisite declaration
  39667. \- pkg: apache # requisite reference
  39668. .ft P
  39669. .fi
  39670. .UNINDENT
  39671. .UNINDENT
  39672. .sp
  39673. \fBline 7\fP is the id\-declaration\&. In this example it is the location we
  39674. want to install our custom HTML file. (\fBNote:\fP the default location that
  39675. Apache serves may differ from the above on your OS or distro. \fB/srv/www\fP
  39676. could also be a likely place to look.)
  39677. .sp
  39678. \fBLine 8\fP the state\-declaration\&. This example uses the Salt \fBfile
  39679. state\fP\&.
  39680. .sp
  39681. \fBLine 9\fP is the function\-declaration\&. The \fBmanaged function\fP will download a file from the master and install it
  39682. in the location specified.
  39683. .sp
  39684. \fBLine 10\fP is a function\-arg\-declaration which, in this example, passes
  39685. the \fBsource\fP argument to the \fBmanaged function\fP\&.
  39686. .sp
  39687. \fBLine 11\fP is a requisite\-declaration\&.
  39688. .sp
  39689. \fBLine 12\fP is a requisite\-reference which refers to a state and an ID.
  39690. In this example, it is referring to the \fBID declaration\fP from our example in
  39691. part 1\&. This declaration tells Salt not to install the HTML
  39692. file until Apache is installed.
  39693. .sp
  39694. Next, create the \fBindex.html\fP file and save it in the \fBwebserver\fP
  39695. directory:
  39696. .INDENT 0.0
  39697. .INDENT 3.5
  39698. .sp
  39699. .nf
  39700. .ft C
  39701. <!DOCTYPE html>
  39702. <html>
  39703. <head><title>Salt rocks</title></head>
  39704. <body>
  39705. <h1>This file brought to you by Salt</h1>
  39706. </body>
  39707. </html>
  39708. .ft P
  39709. .fi
  39710. .UNINDENT
  39711. .UNINDENT
  39712. .sp
  39713. Last, call \fBstate.apply\fP again and the minion
  39714. will fetch and execute the highstate as well as our
  39715. HTML file from the master using Salt\(aqs File Server:
  39716. .INDENT 0.0
  39717. .INDENT 3.5
  39718. .sp
  39719. .nf
  39720. .ft C
  39721. salt \(aq*\(aq state.apply
  39722. .ft P
  39723. .fi
  39724. .UNINDENT
  39725. .UNINDENT
  39726. .sp
  39727. Verify that Apache is now serving your custom HTML.
  39728. .INDENT 0.0
  39729. .INDENT 3.5
  39730. .IP "\fBrequire\fP vs. \fBwatch\fP"
  39731. .sp
  39732. There are two requisite\-declaration, “require”, and “watch”. Not
  39733. every state supports “watch”. The \fBservice state\fP does support “watch” and will restart a service
  39734. based on the watch condition.
  39735. .sp
  39736. For example, if you use Salt to install an Apache virtual host
  39737. configuration file and want to restart Apache whenever that file is changed
  39738. you could modify our Apache example from earlier as follows:
  39739. .INDENT 0.0
  39740. .INDENT 3.5
  39741. .sp
  39742. .nf
  39743. .ft C
  39744. /etc/httpd/extra/httpd\-vhosts.conf:
  39745. file.managed:
  39746. \- source: salt://webserver/httpd\-vhosts.conf
  39747. apache:
  39748. pkg.installed: []
  39749. service.running:
  39750. \- watch:
  39751. \- file: /etc/httpd/extra/httpd\-vhosts.conf
  39752. \- require:
  39753. \- pkg: apache
  39754. .ft P
  39755. .fi
  39756. .UNINDENT
  39757. .UNINDENT
  39758. .sp
  39759. If the pkg and service names differ on your OS or distro of choice you can
  39760. specify each one separately using a name\-declaration which explained
  39761. in Part 3\&.
  39762. .UNINDENT
  39763. .UNINDENT
  39764. .SS Next steps
  39765. .sp
  39766. In part 3 we will discuss how to use includes, extends, and
  39767. templating to make a more complete State Tree configuration.
  39768. .SS States tutorial, part 3 \- Templating, Includes, Extends
  39769. .sp
  39770. \fBNOTE:\fP
  39771. .INDENT 0.0
  39772. .INDENT 3.5
  39773. This tutorial builds on topics covered in part 1 and
  39774. part 2\&. It is recommended that you begin there.
  39775. .UNINDENT
  39776. .UNINDENT
  39777. .sp
  39778. This part of the tutorial will cover more advanced templating and
  39779. configuration techniques for \fBsls\fP files.
  39780. .SS Templating SLS modules
  39781. .sp
  39782. SLS modules may require programming logic or inline execution. This is
  39783. accomplished with module templating. The default module templating system used
  39784. is \fI\%Jinja2\fP and may be configured by changing the \fBrenderer\fP
  39785. value in the master config.
  39786. .sp
  39787. All states are passed through a templating system when they are initially read.
  39788. To make use of the templating system, simply add some templating markup.
  39789. An example of an sls module with templating markup may look like this:
  39790. .INDENT 0.0
  39791. .INDENT 3.5
  39792. .sp
  39793. .nf
  39794. .ft C
  39795. {% for usr in [\(aqmoe\(aq,\(aqlarry\(aq,\(aqcurly\(aq] %}
  39796. {{ usr }}:
  39797. user.present
  39798. {% endfor %}
  39799. .ft P
  39800. .fi
  39801. .UNINDENT
  39802. .UNINDENT
  39803. .sp
  39804. This templated sls file once generated will look like this:
  39805. .INDENT 0.0
  39806. .INDENT 3.5
  39807. .sp
  39808. .nf
  39809. .ft C
  39810. moe:
  39811. user.present
  39812. larry:
  39813. user.present
  39814. curly:
  39815. user.present
  39816. .ft P
  39817. .fi
  39818. .UNINDENT
  39819. .UNINDENT
  39820. .sp
  39821. Here\(aqs a more complex example:
  39822. .INDENT 0.0
  39823. .INDENT 3.5
  39824. .sp
  39825. .nf
  39826. .ft C
  39827. # Comments in yaml start with a hash symbol.
  39828. # Since jinja rendering occurs before yaml parsing, if you want to include jinja
  39829. # in the comments you may need to escape them using \(aqjinja\(aq comments to prevent
  39830. # jinja from trying to render something which is not well\-defined jinja.
  39831. # e.g.
  39832. # {# iterate over the Three Stooges using a {% for %}..{% endfor %} loop
  39833. # with the iterator variable {{ usr }} becoming the state ID. #}
  39834. {% for usr in \(aqmoe\(aq,\(aqlarry\(aq,\(aqcurly\(aq %}
  39835. {{ usr }}:
  39836. group:
  39837. \- present
  39838. user:
  39839. \- present
  39840. \- gid_from_name: True
  39841. \- require:
  39842. \- group: {{ usr }}
  39843. {% endfor %}
  39844. .ft P
  39845. .fi
  39846. .UNINDENT
  39847. .UNINDENT
  39848. .SS Using Grains in SLS modules
  39849. .sp
  39850. Often times a state will need to behave differently on different systems.
  39851. Salt grains objects are made available in the template
  39852. context. The \fIgrains\fP can be used from within sls modules:
  39853. .INDENT 0.0
  39854. .INDENT 3.5
  39855. .sp
  39856. .nf
  39857. .ft C
  39858. apache:
  39859. pkg.installed:
  39860. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq %}
  39861. \- name: httpd
  39862. {% elif grains[\(aqos\(aq] == \(aqUbuntu\(aq %}
  39863. \- name: apache2
  39864. {% endif %}
  39865. .ft P
  39866. .fi
  39867. .UNINDENT
  39868. .UNINDENT
  39869. .SS Using Environment Variables in SLS modules
  39870. .sp
  39871. You can use \fBsalt[\(aqenviron.get\(aq](\(aqVARNAME\(aq)\fP to use an environment
  39872. variable in a Salt state.
  39873. .INDENT 0.0
  39874. .INDENT 3.5
  39875. .sp
  39876. .nf
  39877. .ft C
  39878. MYENVVAR="world" salt\-call state.template test.sls
  39879. .ft P
  39880. .fi
  39881. .UNINDENT
  39882. .UNINDENT
  39883. .INDENT 0.0
  39884. .INDENT 3.5
  39885. .sp
  39886. .nf
  39887. .ft C
  39888. Create a file with contents from an environment variable:
  39889. file.managed:
  39890. \- name: /tmp/hello
  39891. \- contents: {{ salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) }}
  39892. .ft P
  39893. .fi
  39894. .UNINDENT
  39895. .UNINDENT
  39896. .sp
  39897. Error checking:
  39898. .INDENT 0.0
  39899. .INDENT 3.5
  39900. .sp
  39901. .nf
  39902. .ft C
  39903. {% set myenvvar = salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) %}
  39904. {% if myenvvar %}
  39905. Create a file with contents from an environment variable:
  39906. file.managed:
  39907. \- name: /tmp/hello
  39908. \- contents: {{ salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) }}
  39909. {% else %}
  39910. Fail \- no environment passed in:
  39911. test.fail_without_changes
  39912. {% endif %}
  39913. .ft P
  39914. .fi
  39915. .UNINDENT
  39916. .UNINDENT
  39917. .SS Calling Salt modules from templates
  39918. .sp
  39919. All of the Salt modules loaded by the minion are available within the
  39920. templating system. This allows data to be gathered in real time on the target
  39921. system. It also allows for shell commands to be run easily from within the sls
  39922. modules.
  39923. .sp
  39924. The Salt module functions are also made available in the template context as
  39925. \fBsalt:\fP
  39926. .sp
  39927. The following example illustrates calling the \fBgroup_to_gid\fP function in the
  39928. \fBfile\fP execution module with a single positional argument called
  39929. \fBsome_group_that_exists\fP\&.
  39930. .INDENT 0.0
  39931. .INDENT 3.5
  39932. .sp
  39933. .nf
  39934. .ft C
  39935. moe:
  39936. user.present:
  39937. \- gid: {{ salt[\(aqfile.group_to_gid\(aq](\(aqsome_group_that_exists\(aq) }}
  39938. .ft P
  39939. .fi
  39940. .UNINDENT
  39941. .UNINDENT
  39942. .sp
  39943. One way to think about this might be that the \fBgid\fP key is being assigned
  39944. a value equivalent to the following python pseudo\-code:
  39945. .INDENT 0.0
  39946. .INDENT 3.5
  39947. .sp
  39948. .nf
  39949. .ft C
  39950. import salt.modules.file
  39951. file.group_to_gid("some_group_that_exists")
  39952. .ft P
  39953. .fi
  39954. .UNINDENT
  39955. .UNINDENT
  39956. .sp
  39957. Note that for the above example to work, \fBsome_group_that_exists\fP must exist
  39958. before the state file is processed by the templating engine.
  39959. .sp
  39960. Below is an example that uses the \fBnetwork.hw_addr\fP function to retrieve the
  39961. MAC address for eth0:
  39962. .INDENT 0.0
  39963. .INDENT 3.5
  39964. .sp
  39965. .nf
  39966. .ft C
  39967. salt["network.hw_addr"]("eth0")
  39968. .ft P
  39969. .fi
  39970. .UNINDENT
  39971. .UNINDENT
  39972. .sp
  39973. To examine the possible arguments to each execution module function,
  39974. one can examine the \fI\%module reference documentation\fP:
  39975. .SS Advanced SLS module syntax
  39976. .sp
  39977. Lastly, we will cover some incredibly useful techniques for more complex State
  39978. trees.
  39979. .SS Include declaration
  39980. .sp
  39981. A previous example showed how to spread a Salt tree across several files.
  39982. Similarly, requisites span multiple files by
  39983. using an include\-declaration\&. For example:
  39984. .sp
  39985. \fBpython/python\-libs.sls:\fP
  39986. .INDENT 0.0
  39987. .INDENT 3.5
  39988. .sp
  39989. .nf
  39990. .ft C
  39991. python\-dateutil:
  39992. pkg.installed
  39993. .ft P
  39994. .fi
  39995. .UNINDENT
  39996. .UNINDENT
  39997. .sp
  39998. \fBpython/django.sls:\fP
  39999. .INDENT 0.0
  40000. .INDENT 3.5
  40001. .sp
  40002. .nf
  40003. .ft C
  40004. include:
  40005. \- python.python\-libs
  40006. django:
  40007. pkg.installed:
  40008. \- require:
  40009. \- pkg: python\-dateutil
  40010. .ft P
  40011. .fi
  40012. .UNINDENT
  40013. .UNINDENT
  40014. .SS Extend declaration
  40015. .sp
  40016. You can modify previous declarations by using an extend\-declaration\&. For
  40017. example the following modifies the Apache tree to also restart Apache when the
  40018. vhosts file is changed:
  40019. .sp
  40020. \fBapache/apache.sls:\fP
  40021. .INDENT 0.0
  40022. .INDENT 3.5
  40023. .sp
  40024. .nf
  40025. .ft C
  40026. apache:
  40027. pkg.installed
  40028. .ft P
  40029. .fi
  40030. .UNINDENT
  40031. .UNINDENT
  40032. .sp
  40033. \fBapache/mywebsite.sls:\fP
  40034. .INDENT 0.0
  40035. .INDENT 3.5
  40036. .sp
  40037. .nf
  40038. .ft C
  40039. include:
  40040. \- apache.apache
  40041. extend:
  40042. apache:
  40043. service:
  40044. \- running
  40045. \- watch:
  40046. \- file: /etc/httpd/extra/httpd\-vhosts.conf
  40047. /etc/httpd/extra/httpd\-vhosts.conf:
  40048. file.managed:
  40049. \- source: salt://apache/httpd\-vhosts.conf
  40050. .ft P
  40051. .fi
  40052. .UNINDENT
  40053. .UNINDENT
  40054. .INDENT 0.0
  40055. .INDENT 3.5
  40056. .IP "Using extend with require or watch"
  40057. .sp
  40058. The \fBextend\fP statement works differently for \fBrequire\fP or \fBwatch\fP\&.
  40059. It appends to, rather than replacing the requisite component.
  40060. .UNINDENT
  40061. .UNINDENT
  40062. .SS Name declaration
  40063. .sp
  40064. You can override the id\-declaration by using a name\-declaration\&.
  40065. For example, the previous example is a bit more maintainable if rewritten as
  40066. follows:
  40067. .sp
  40068. \fBapache/mywebsite.sls:\fP
  40069. .INDENT 0.0
  40070. .INDENT 3.5
  40071. .sp
  40072. .nf
  40073. .ft C
  40074. include:
  40075. \- apache.apache
  40076. extend:
  40077. apache:
  40078. service:
  40079. \- running
  40080. \- watch:
  40081. \- file: mywebsite
  40082. mywebsite:
  40083. file.managed:
  40084. \- name: /etc/httpd/extra/httpd\-vhosts.conf
  40085. \- source: salt://apache/httpd\-vhosts.conf
  40086. .ft P
  40087. .fi
  40088. .UNINDENT
  40089. .UNINDENT
  40090. .SS Names declaration
  40091. .sp
  40092. Even more powerful is using a names\-declaration to override the
  40093. id\-declaration for multiple states at once. This often can remove the
  40094. need for looping in a template. For example, the first example in this tutorial
  40095. can be rewritten without the loop:
  40096. .INDENT 0.0
  40097. .INDENT 3.5
  40098. .sp
  40099. .nf
  40100. .ft C
  40101. stooges:
  40102. user.present:
  40103. \- names:
  40104. \- moe
  40105. \- larry
  40106. \- curly
  40107. .ft P
  40108. .fi
  40109. .UNINDENT
  40110. .UNINDENT
  40111. .SS Next steps
  40112. .sp
  40113. In part 4 we will discuss how to use salt\(aqs
  40114. \fBfile_roots\fP to set up a workflow in which states can be
  40115. "promoted" from dev, to QA, to production.
  40116. .SS States tutorial, part 4
  40117. .sp
  40118. \fBNOTE:\fP
  40119. .INDENT 0.0
  40120. .INDENT 3.5
  40121. This tutorial builds on topics covered in part 1,
  40122. part 2, and part 3\&.
  40123. It is recommended that you begin there.
  40124. .UNINDENT
  40125. .UNINDENT
  40126. .sp
  40127. This part of the tutorial will show how to use salt\(aqs \fBfile_roots\fP
  40128. to set up a workflow in which states can be "promoted" from dev, to QA, to
  40129. production.
  40130. .SS Salt fileserver path inheritance
  40131. .sp
  40132. Salt\(aqs fileserver allows for more than one root directory per environment, like
  40133. in the below example, which uses both a local directory and a secondary
  40134. location shared to the salt master via NFS:
  40135. .INDENT 0.0
  40136. .INDENT 3.5
  40137. .sp
  40138. .nf
  40139. .ft C
  40140. # In the master config file (/etc/salt/master)
  40141. file_roots:
  40142. base:
  40143. \- /srv/salt
  40144. \- /mnt/salt\-nfs/base
  40145. .ft P
  40146. .fi
  40147. .UNINDENT
  40148. .UNINDENT
  40149. .sp
  40150. Salt\(aqs fileserver collapses the list of root directories into a single virtual
  40151. environment containing all files from each root. If the same file exists at the
  40152. same relative path in more than one root, then the top\-most match "wins". For
  40153. example, if \fB/srv/salt/foo.txt\fP and \fB/mnt/salt\-nfs/base/foo.txt\fP both
  40154. exist, then \fBsalt://foo.txt\fP will point to \fB/srv/salt/foo.txt\fP\&.
  40155. .sp
  40156. \fBNOTE:\fP
  40157. .INDENT 0.0
  40158. .INDENT 3.5
  40159. When using multiple fileserver backends, the order in which they are listed
  40160. in the \fBfileserver_backend\fP parameter also matters. If both
  40161. \fBroots\fP and \fBgit\fP backends contain a file with the same relative path,
  40162. and \fBroots\fP appears before \fBgit\fP in the
  40163. \fBfileserver_backend\fP list, then the file in \fBroots\fP will
  40164. "win", and the file in gitfs will be ignored.
  40165. .sp
  40166. A more thorough explanation of how Salt\(aqs modular fileserver works can be
  40167. found here\&. We recommend reading this.
  40168. .UNINDENT
  40169. .UNINDENT
  40170. .SS Environment configuration
  40171. .sp
  40172. Configure a multiple\-environment setup like so:
  40173. .INDENT 0.0
  40174. .INDENT 3.5
  40175. .sp
  40176. .nf
  40177. .ft C
  40178. file_roots:
  40179. base:
  40180. \- /srv/salt/prod
  40181. qa:
  40182. \- /srv/salt/qa
  40183. \- /srv/salt/prod
  40184. dev:
  40185. \- /srv/salt/dev
  40186. \- /srv/salt/qa
  40187. \- /srv/salt/prod
  40188. .ft P
  40189. .fi
  40190. .UNINDENT
  40191. .UNINDENT
  40192. .sp
  40193. Given the path inheritance described above, files within \fB/srv/salt/prod\fP
  40194. would be available in all environments. Files within \fB/srv/salt/qa\fP would be
  40195. available in both \fBqa\fP, and \fBdev\fP\&. Finally, the files within
  40196. \fB/srv/salt/dev\fP would only be available within the \fBdev\fP environment.
  40197. .sp
  40198. Based on the order in which the roots are defined, new files/states can be
  40199. placed within \fB/srv/salt/dev\fP, and pushed out to the dev hosts for testing.
  40200. .sp
  40201. Those files/states can then be moved to the same relative path within
  40202. \fB/srv/salt/qa\fP, and they are now available only in the \fBdev\fP and \fBqa\fP
  40203. environments, allowing them to be pushed to QA hosts and tested.
  40204. .sp
  40205. Finally, if moved to the same relative path within \fB/srv/salt/prod\fP, the
  40206. files are now available in all three environments.
  40207. .SS Requesting files from specific fileserver environments
  40208. .sp
  40209. See here for documentation on how to request
  40210. files from specific environments.
  40211. .SS Practical Example
  40212. .sp
  40213. As an example, consider a simple website, installed to \fB/var/www/foobarcom\fP\&.
  40214. Below is a top.sls that can be used to deploy the website:
  40215. .sp
  40216. \fB/srv/salt/prod/top.sls:\fP
  40217. .INDENT 0.0
  40218. .INDENT 3.5
  40219. .sp
  40220. .nf
  40221. .ft C
  40222. base:
  40223. \(aqweb*prod*\(aq:
  40224. \- webserver.foobarcom
  40225. qa:
  40226. \(aqweb*qa*\(aq:
  40227. \- webserver.foobarcom
  40228. dev:
  40229. \(aqweb*dev*\(aq:
  40230. \- webserver.foobarcom
  40231. .ft P
  40232. .fi
  40233. .UNINDENT
  40234. .UNINDENT
  40235. .sp
  40236. Using pillar, roles can be assigned to the hosts:
  40237. .sp
  40238. \fB/srv/pillar/top.sls:\fP
  40239. .INDENT 0.0
  40240. .INDENT 3.5
  40241. .sp
  40242. .nf
  40243. .ft C
  40244. base:
  40245. \(aqweb*prod*\(aq:
  40246. \- webserver.prod
  40247. \(aqweb*qa*\(aq:
  40248. \- webserver.qa
  40249. \(aqweb*dev*\(aq:
  40250. \- webserver.dev
  40251. .ft P
  40252. .fi
  40253. .UNINDENT
  40254. .UNINDENT
  40255. .sp
  40256. \fB/srv/pillar/webserver/prod.sls:\fP
  40257. .INDENT 0.0
  40258. .INDENT 3.5
  40259. .sp
  40260. .nf
  40261. .ft C
  40262. webserver_role: prod
  40263. .ft P
  40264. .fi
  40265. .UNINDENT
  40266. .UNINDENT
  40267. .sp
  40268. \fB/srv/pillar/webserver/qa.sls:\fP
  40269. .INDENT 0.0
  40270. .INDENT 3.5
  40271. .sp
  40272. .nf
  40273. .ft C
  40274. webserver_role: qa
  40275. .ft P
  40276. .fi
  40277. .UNINDENT
  40278. .UNINDENT
  40279. .sp
  40280. \fB/srv/pillar/webserver/dev.sls:\fP
  40281. .INDENT 0.0
  40282. .INDENT 3.5
  40283. .sp
  40284. .nf
  40285. .ft C
  40286. webserver_role: dev
  40287. .ft P
  40288. .fi
  40289. .UNINDENT
  40290. .UNINDENT
  40291. .sp
  40292. And finally, the SLS to deploy the website:
  40293. .sp
  40294. \fB/srv/salt/prod/webserver/foobarcom.sls:\fP
  40295. .INDENT 0.0
  40296. .INDENT 3.5
  40297. .sp
  40298. .nf
  40299. .ft C
  40300. {% if pillar.get(\(aqwebserver_role\(aq, \(aq\(aq) %}
  40301. /var/www/foobarcom:
  40302. file.recurse:
  40303. \- source: salt://webserver/src/foobarcom
  40304. \- env: {{ pillar[\(aqwebserver_role\(aq] }}
  40305. \- user: www
  40306. \- group: www
  40307. \- dir_mode: 755
  40308. \- file_mode: 644
  40309. {% endif %}
  40310. .ft P
  40311. .fi
  40312. .UNINDENT
  40313. .UNINDENT
  40314. .sp
  40315. Given the above SLS, the source for the website should initially be placed in
  40316. \fB/srv/salt/dev/webserver/src/foobarcom\fP\&.
  40317. .sp
  40318. First, let\(aqs deploy to dev. Given the configuration in the top file, this can
  40319. be done using \fBstate.apply\fP:
  40320. .INDENT 0.0
  40321. .INDENT 3.5
  40322. .sp
  40323. .nf
  40324. .ft C
  40325. salt \-\-pillar \(aqwebserver_role:dev\(aq state.apply
  40326. .ft P
  40327. .fi
  40328. .UNINDENT
  40329. .UNINDENT
  40330. .sp
  40331. However, in the event that it is not desirable to apply all states configured
  40332. in the top file (which could be likely in more complex setups), it is possible
  40333. to apply just the states for the \fBfoobarcom\fP website, by invoking
  40334. \fBstate.apply\fP with the desired SLS target
  40335. as an argument:
  40336. .INDENT 0.0
  40337. .INDENT 3.5
  40338. .sp
  40339. .nf
  40340. .ft C
  40341. salt \-\-pillar \(aqwebserver_role:dev\(aq state.apply webserver.foobarcom
  40342. .ft P
  40343. .fi
  40344. .UNINDENT
  40345. .UNINDENT
  40346. .sp
  40347. Once the site has been tested in dev, then the files can be moved from
  40348. \fB/srv/salt/dev/webserver/src/foobarcom\fP to
  40349. \fB/srv/salt/qa/webserver/src/foobarcom\fP, and deployed using the following:
  40350. .INDENT 0.0
  40351. .INDENT 3.5
  40352. .sp
  40353. .nf
  40354. .ft C
  40355. salt \-\-pillar \(aqwebserver_role:qa\(aq state.apply webserver.foobarcom
  40356. .ft P
  40357. .fi
  40358. .UNINDENT
  40359. .UNINDENT
  40360. .sp
  40361. Finally, once the site has been tested in qa, then the files can be moved from
  40362. \fB/srv/salt/qa/webserver/src/foobarcom\fP to
  40363. \fB/srv/salt/prod/webserver/src/foobarcom\fP, and deployed using the following:
  40364. .INDENT 0.0
  40365. .INDENT 3.5
  40366. .sp
  40367. .nf
  40368. .ft C
  40369. salt \-\-pillar \(aqwebserver_role:prod\(aq state.apply webserver.foobarcom
  40370. .ft P
  40371. .fi
  40372. .UNINDENT
  40373. .UNINDENT
  40374. .sp
  40375. Thanks to Salt\(aqs fileserver inheritance, even though the files have been moved
  40376. to within \fB/srv/salt/prod\fP, they are still available from the same
  40377. \fBsalt://\fP URI in both the qa and dev environments.
  40378. .SS Continue Learning
  40379. .sp
  40380. The best way to continue learning about Salt States is to read through the
  40381. reference documentation and to look through examples
  40382. of existing state trees. Many pre\-configured state trees
  40383. can be found on GitHub in the \fI\%saltstack\-formulas\fP collection of repositories.
  40384. .sp
  40385. If you have any questions, suggestions, or just want to chat with other people
  40386. who are using Salt, we have a very active community
  40387. and we\(aqd love to hear from you.
  40388. .sp
  40389. In addition, by continuing to the Orchestrate Runner docs,
  40390. you can learn about the powerful orchestration of which Salt is capable.
  40391. .SS States Tutorial, Part 5 \- Orchestration with Salt
  40392. .sp
  40393. This was moved to Orchestrate Runner\&.
  40394. .SS Syslog\-ng usage
  40395. .SS Overview
  40396. .sp
  40397. Syslog_ng state module is for generating syslog\-ng
  40398. configurations. You can do the following things:
  40399. .INDENT 0.0
  40400. .IP \(bu 2
  40401. generate syslog\-ng configuration from YAML,
  40402. .IP \(bu 2
  40403. use non\-YAML configuration,
  40404. .IP \(bu 2
  40405. start, stop or reload syslog\-ng.
  40406. .UNINDENT
  40407. .sp
  40408. There is also an execution module, which can check the syntax of the
  40409. configuration, get the version and other information about syslog\-ng.
  40410. .SS Configuration
  40411. .sp
  40412. Users can create syslog\-ng configuration statements with the
  40413. \fBsyslog_ng.config\fP function. It requires
  40414. a \fIname\fP and a \fIconfig\fP parameter. The \fIname\fP parameter determines the name of
  40415. the generated statement and the \fIconfig\fP parameter holds a parsed YAML structure.
  40416. .sp
  40417. A statement can be declared in the following forms (both are equivalent):
  40418. .INDENT 0.0
  40419. .INDENT 3.5
  40420. .sp
  40421. .nf
  40422. .ft C
  40423. source.s_localhost:
  40424. syslog_ng.config:
  40425. \- config:
  40426. \- tcp:
  40427. \- ip: "127.0.0.1"
  40428. \- port: 1233
  40429. .ft P
  40430. .fi
  40431. .UNINDENT
  40432. .UNINDENT
  40433. .INDENT 0.0
  40434. .INDENT 3.5
  40435. .sp
  40436. .nf
  40437. .ft C
  40438. s_localhost:
  40439. syslog_ng.config:
  40440. \- config:
  40441. source:
  40442. \- tcp:
  40443. \- ip: "127.0.0.1"
  40444. \- port: 1233
  40445. .ft P
  40446. .fi
  40447. .UNINDENT
  40448. .UNINDENT
  40449. .sp
  40450. The first one is called short form, because it needs less typing. Users can use lists
  40451. and dictionaries to specify their configuration. The format is quite self describing and
  40452. there are more examples [at the end](#examples) of this document.
  40453. .SS Quotation
  40454. .INDENT 0.0
  40455. .TP
  40456. .B The quotation can be tricky sometimes but here are some rules to follow:
  40457. .INDENT 7.0
  40458. .IP \(bu 2
  40459. 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
  40460. .IP \(bu 2
  40461. similarly, users should write \fB"\(aqstring\(aq"\fP to get \fB\(aqstring\(aq\fP in the generated configuration
  40462. .UNINDENT
  40463. .UNINDENT
  40464. .SS Full example
  40465. .sp
  40466. The following configuration is an example, how a complete syslog\-ng configuration looks like:
  40467. .INDENT 0.0
  40468. .INDENT 3.5
  40469. .sp
  40470. .nf
  40471. .ft C
  40472. # Set the location of the configuration file
  40473. set_location:
  40474. module.run:
  40475. \- name: syslog_ng.set_config_file
  40476. \- m_name: "/home/tibi/install/syslog\-ng/etc/syslog\-ng.conf"
  40477. # The syslog\-ng and syslog\-ng\-ctl binaries are here. You needn\(aqt use
  40478. # this method if these binaries can be found in a directory in your PATH.
  40479. set_bin_path:
  40480. module.run:
  40481. \- name: syslog_ng.set_binary_path
  40482. \- m_name: "/home/tibi/install/syslog\-ng/sbin"
  40483. # Writes the first lines into the config file, also erases its previous
  40484. # content
  40485. write_version:
  40486. module.run:
  40487. \- name: syslog_ng.write_version
  40488. \- m_name: "3.6"
  40489. # There is a shorter form to set the above variables
  40490. set_variables:
  40491. module.run:
  40492. \- name: syslog_ng.set_parameters
  40493. \- version: "3.6"
  40494. \- binary_path: "/home/tibi/install/syslog\-ng/sbin"
  40495. \- config_file: "/home/tibi/install/syslog\-ng/etc/syslog\-ng.conf"
  40496. # Some global options
  40497. options.global_options:
  40498. syslog_ng.config:
  40499. \- config:
  40500. \- time_reap: 30
  40501. \- mark_freq: 10
  40502. \- keep_hostname: "yes"
  40503. source.s_localhost:
  40504. syslog_ng.config:
  40505. \- config:
  40506. \- tcp:
  40507. \- ip: "127.0.0.1"
  40508. \- port: 1233
  40509. destination.d_log_server:
  40510. syslog_ng.config:
  40511. \- config:
  40512. \- tcp:
  40513. \- "127.0.0.1"
  40514. \- port: 1234
  40515. log.l_log_to_central_server:
  40516. syslog_ng.config:
  40517. \- config:
  40518. \- source: s_localhost
  40519. \- destination: d_log_server
  40520. some_comment:
  40521. module.run:
  40522. \- name: syslog_ng.write_config
  40523. \- config: |
  40524. # Multi line
  40525. # comment
  40526. # Another mode to use comments or existing configuration snippets
  40527. config.other_comment_form:
  40528. syslog_ng.config:
  40529. \- config: |
  40530. # Multi line
  40531. # comment
  40532. .ft P
  40533. .fi
  40534. .UNINDENT
  40535. .UNINDENT
  40536. .sp
  40537. The \fBsyslog_ng.reloaded\fP function can generate syslog\-ng configuration from YAML. If the statement (source, destination, parser,
  40538. etc.) has a name, this function uses the id as the name, otherwise (log
  40539. statement) its purpose is like a mandatory comment.
  40540. .sp
  40541. After execution this example the syslog_ng state will generate this
  40542. file:
  40543. .INDENT 0.0
  40544. .INDENT 3.5
  40545. .sp
  40546. .nf
  40547. .ft C
  40548. #Generated by Salt on 2014\-08\-18 00:11:11
  40549. @version: 3.6
  40550. options {
  40551. time_reap(
  40552. 30
  40553. );
  40554. mark_freq(
  40555. 10
  40556. );
  40557. keep_hostname(
  40558. yes
  40559. );
  40560. };
  40561. source s_localhost {
  40562. tcp(
  40563. ip(
  40564. 127.0.0.1
  40565. ),
  40566. port(
  40567. 1233
  40568. )
  40569. );
  40570. };
  40571. destination d_log_server {
  40572. tcp(
  40573. 127.0.0.1,
  40574. port(
  40575. 1234
  40576. )
  40577. );
  40578. };
  40579. log {
  40580. source(
  40581. s_localhost
  40582. );
  40583. destination(
  40584. d_log_server
  40585. );
  40586. };
  40587. # Multi line
  40588. # comment
  40589. # Multi line
  40590. # comment
  40591. .ft P
  40592. .fi
  40593. .UNINDENT
  40594. .UNINDENT
  40595. .sp
  40596. Users can include arbitrary texts in the generated configuration with
  40597. using the \fBconfig\fP statement (see the example above).
  40598. .SS Syslog_ng module functions
  40599. .sp
  40600. You can use \fBsyslog_ng.set_binary_path\fP
  40601. to set the directory which contains the
  40602. syslog\-ng and syslog\-ng\-ctl binaries. If this directory is in your PATH,
  40603. you don\(aqt need to use this function. There is also a \fBsyslog_ng.set_config_file\fP
  40604. function to set the location of the configuration file.
  40605. .SS Examples
  40606. .SS Simple source
  40607. .INDENT 0.0
  40608. .INDENT 3.5
  40609. .sp
  40610. .nf
  40611. .ft C
  40612. source s_tail {
  40613. file(
  40614. "/var/log/apache/access.log",
  40615. follow_freq(1),
  40616. flags(no\-parse, validate\-utf8)
  40617. );
  40618. };
  40619. .ft P
  40620. .fi
  40621. .UNINDENT
  40622. .UNINDENT
  40623. .INDENT 0.0
  40624. .INDENT 3.5
  40625. .sp
  40626. .nf
  40627. .ft C
  40628. s_tail:
  40629. # Salt will call the source function of syslog_ng module
  40630. syslog_ng.config:
  40631. \- config:
  40632. source:
  40633. \- file:
  40634. \- file: \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40635. \- follow_freq : 1
  40636. \- flags:
  40637. \- no\-parse
  40638. \- validate\-utf8
  40639. .ft P
  40640. .fi
  40641. .UNINDENT
  40642. .UNINDENT
  40643. .sp
  40644. OR
  40645. .INDENT 0.0
  40646. .INDENT 3.5
  40647. .sp
  40648. .nf
  40649. .ft C
  40650. s_tail:
  40651. syslog_ng.config:
  40652. \- config:
  40653. source:
  40654. \- file:
  40655. \- \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40656. \- follow_freq : 1
  40657. \- flags:
  40658. \- no\-parse
  40659. \- validate\-utf8
  40660. .ft P
  40661. .fi
  40662. .UNINDENT
  40663. .UNINDENT
  40664. .sp
  40665. OR
  40666. .INDENT 0.0
  40667. .INDENT 3.5
  40668. .sp
  40669. .nf
  40670. .ft C
  40671. source.s_tail:
  40672. syslog_ng.config:
  40673. \- config:
  40674. \- file:
  40675. \- \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40676. \- follow_freq : 1
  40677. \- flags:
  40678. \- no\-parse
  40679. \- validate\-utf8
  40680. .ft P
  40681. .fi
  40682. .UNINDENT
  40683. .UNINDENT
  40684. .SS Complex source
  40685. .INDENT 0.0
  40686. .INDENT 3.5
  40687. .sp
  40688. .nf
  40689. .ft C
  40690. source s_gsoc2014 {
  40691. tcp(
  40692. ip("0.0.0.0"),
  40693. port(1234),
  40694. flags(no\-parse)
  40695. );
  40696. };
  40697. .ft P
  40698. .fi
  40699. .UNINDENT
  40700. .UNINDENT
  40701. .INDENT 0.0
  40702. .INDENT 3.5
  40703. .sp
  40704. .nf
  40705. .ft C
  40706. s_gsoc2014:
  40707. syslog_ng.config:
  40708. \- config:
  40709. source:
  40710. \- tcp:
  40711. \- ip: 0.0.0.0
  40712. \- port: 1234
  40713. \- flags: no\-parse
  40714. .ft P
  40715. .fi
  40716. .UNINDENT
  40717. .UNINDENT
  40718. .SS Filter
  40719. .INDENT 0.0
  40720. .INDENT 3.5
  40721. .sp
  40722. .nf
  40723. .ft C
  40724. filter f_json {
  40725. match(
  40726. "@json:"
  40727. );
  40728. };
  40729. .ft P
  40730. .fi
  40731. .UNINDENT
  40732. .UNINDENT
  40733. .INDENT 0.0
  40734. .INDENT 3.5
  40735. .sp
  40736. .nf
  40737. .ft C
  40738. f_json:
  40739. syslog_ng.config:
  40740. \- config:
  40741. filter:
  40742. \- match:
  40743. \- \(aq\(aq"@json:"\(aq\(aq
  40744. .ft P
  40745. .fi
  40746. .UNINDENT
  40747. .UNINDENT
  40748. .SS Template
  40749. .INDENT 0.0
  40750. .INDENT 3.5
  40751. .sp
  40752. .nf
  40753. .ft C
  40754. template t_demo_filetemplate {
  40755. template(
  40756. "$ISODATE $HOST $MSG "
  40757. );
  40758. template_escape(
  40759. no
  40760. );
  40761. };
  40762. .ft P
  40763. .fi
  40764. .UNINDENT
  40765. .UNINDENT
  40766. .INDENT 0.0
  40767. .INDENT 3.5
  40768. .sp
  40769. .nf
  40770. .ft C
  40771. t_demo_filetemplate:
  40772. syslog_ng.config:
  40773. \-config:
  40774. template:
  40775. \- template:
  40776. \- \(aq"$ISODATE $HOST $MSG\en"\(aq
  40777. \- template_escape:
  40778. \- "no"
  40779. .ft P
  40780. .fi
  40781. .UNINDENT
  40782. .UNINDENT
  40783. .SS Rewrite
  40784. .INDENT 0.0
  40785. .INDENT 3.5
  40786. .sp
  40787. .nf
  40788. .ft C
  40789. rewrite r_set_message_to_MESSAGE {
  40790. set(
  40791. "${.json.message}",
  40792. value("$MESSAGE")
  40793. );
  40794. };
  40795. .ft P
  40796. .fi
  40797. .UNINDENT
  40798. .UNINDENT
  40799. .INDENT 0.0
  40800. .INDENT 3.5
  40801. .sp
  40802. .nf
  40803. .ft C
  40804. r_set_message_to_MESSAGE:
  40805. syslog_ng.config:
  40806. \- config:
  40807. rewrite:
  40808. \- set:
  40809. \- \(aq"${.json.message}"\(aq
  40810. \- value : \(aq"$MESSAGE"\(aq
  40811. .ft P
  40812. .fi
  40813. .UNINDENT
  40814. .UNINDENT
  40815. .SS Global options
  40816. .INDENT 0.0
  40817. .INDENT 3.5
  40818. .sp
  40819. .nf
  40820. .ft C
  40821. options {
  40822. time_reap(30);
  40823. mark_freq(10);
  40824. keep_hostname(yes);
  40825. };
  40826. .ft P
  40827. .fi
  40828. .UNINDENT
  40829. .UNINDENT
  40830. .INDENT 0.0
  40831. .INDENT 3.5
  40832. .sp
  40833. .nf
  40834. .ft C
  40835. global_options:
  40836. syslog_ng.config:
  40837. \- config:
  40838. options:
  40839. \- time_reap: 30
  40840. \- mark_freq: 10
  40841. \- keep_hostname: "yes"
  40842. .ft P
  40843. .fi
  40844. .UNINDENT
  40845. .UNINDENT
  40846. .SS Log
  40847. .INDENT 0.0
  40848. .INDENT 3.5
  40849. .sp
  40850. .nf
  40851. .ft C
  40852. log {
  40853. source(s_gsoc2014);
  40854. junction {
  40855. channel {
  40856. filter(f_json);
  40857. parser(p_json);
  40858. rewrite(r_set_json_tag);
  40859. rewrite(r_set_message_to_MESSAGE);
  40860. destination {
  40861. file(
  40862. "/tmp/json\-input.log",
  40863. template(t_gsoc2014)
  40864. );
  40865. };
  40866. flags(final);
  40867. };
  40868. channel {
  40869. filter(f_not_json);
  40870. parser {
  40871. syslog\-parser(
  40872. );
  40873. };
  40874. rewrite(r_set_syslog_tag);
  40875. flags(final);
  40876. };
  40877. };
  40878. destination {
  40879. file(
  40880. "/tmp/all.log",
  40881. template(t_gsoc2014)
  40882. );
  40883. };
  40884. };
  40885. .ft P
  40886. .fi
  40887. .UNINDENT
  40888. .UNINDENT
  40889. .INDENT 0.0
  40890. .INDENT 3.5
  40891. .sp
  40892. .nf
  40893. .ft C
  40894. l_gsoc2014:
  40895. syslog_ng.config:
  40896. \- config:
  40897. log:
  40898. \- source: s_gsoc2014
  40899. \- junction:
  40900. \- channel:
  40901. \- filter: f_json
  40902. \- parser: p_json
  40903. \- rewrite: r_set_json_tag
  40904. \- rewrite: r_set_message_to_MESSAGE
  40905. \- destination:
  40906. \- file:
  40907. \- \(aq"/tmp/json\-input.log"\(aq
  40908. \- template: t_gsoc2014
  40909. \- flags: final
  40910. \- channel:
  40911. \- filter: f_not_json
  40912. \- parser:
  40913. \- syslog\-parser: []
  40914. \- rewrite: r_set_syslog_tag
  40915. \- flags: final
  40916. \- destination:
  40917. \- file:
  40918. \- "/tmp/all.log"
  40919. \- template: t_gsoc2014
  40920. .ft P
  40921. .fi
  40922. .UNINDENT
  40923. .UNINDENT
  40924. .SS Salt in 10 Minutes
  40925. .sp
  40926. \fBNOTE:\fP
  40927. .INDENT 0.0
  40928. .INDENT 3.5
  40929. Welcome to SaltStack! I am excited that you are interested in Salt and
  40930. starting down the path to better infrastructure management. I developed
  40931. (and am continuing to develop) Salt with the goal of making the best
  40932. software available to manage computers of almost any kind. I hope you enjoy
  40933. working with Salt and that the software can solve your real world needs!
  40934. .INDENT 0.0
  40935. .IP \(bu 2
  40936. Thomas S Hatch
  40937. .IP \(bu 2
  40938. Salt creator and Chief Developer
  40939. .IP \(bu 2
  40940. CTO of SaltStack, Inc.
  40941. .UNINDENT
  40942. .UNINDENT
  40943. .UNINDENT
  40944. .SS Getting Started
  40945. .SS What is Salt?
  40946. .sp
  40947. Salt is a different approach to infrastructure management, founded on
  40948. the idea that high\-speed communication with large numbers of systems can open
  40949. up new capabilities. This approach makes Salt a powerful multitasking system
  40950. that can solve many specific problems in an infrastructure.
  40951. .sp
  40952. The backbone of Salt is the remote execution engine, which creates a high\-speed,
  40953. secure and bi\-directional communication net for groups of systems. On top of this
  40954. communication system, Salt provides an extremely fast, flexible, and easy\-to\-use
  40955. configuration management system called \fBSalt States\fP\&.
  40956. .SS Installing Salt
  40957. .sp
  40958. SaltStack has been made to be very easy to install and get started. The
  40959. installation documents contain instructions
  40960. for all supported platforms.
  40961. .SS Starting Salt
  40962. .sp
  40963. Salt functions on a master/minion topology. A master server acts as a
  40964. central control bus for the clients, which are called \fBminions\fP\&. The minions
  40965. connect back to the master.
  40966. .SS Setting Up the Salt Master
  40967. .sp
  40968. Turning on the Salt Master is easy \-\- just turn it on! The default configuration
  40969. is suitable for the vast majority of installations. The Salt Master can be
  40970. controlled by the local Linux/Unix service manager:
  40971. .sp
  40972. On Systemd based platforms (newer Debian, openSUSE, Fedora):
  40973. .INDENT 0.0
  40974. .INDENT 3.5
  40975. .sp
  40976. .nf
  40977. .ft C
  40978. systemctl start salt\-master
  40979. .ft P
  40980. .fi
  40981. .UNINDENT
  40982. .UNINDENT
  40983. .sp
  40984. On Upstart based systems (Ubuntu, older Fedora/RHEL):
  40985. .INDENT 0.0
  40986. .INDENT 3.5
  40987. .sp
  40988. .nf
  40989. .ft C
  40990. service salt\-master start
  40991. .ft P
  40992. .fi
  40993. .UNINDENT
  40994. .UNINDENT
  40995. .sp
  40996. On SysV Init systems (Gentoo, older Debian etc.):
  40997. .INDENT 0.0
  40998. .INDENT 3.5
  40999. .sp
  41000. .nf
  41001. .ft C
  41002. /etc/init.d/salt\-master start
  41003. .ft P
  41004. .fi
  41005. .UNINDENT
  41006. .UNINDENT
  41007. .sp
  41008. Alternatively, the Master can be started directly on the command\-line:
  41009. .INDENT 0.0
  41010. .INDENT 3.5
  41011. .sp
  41012. .nf
  41013. .ft C
  41014. salt\-master \-d
  41015. .ft P
  41016. .fi
  41017. .UNINDENT
  41018. .UNINDENT
  41019. .sp
  41020. The Salt Master can also be started in the foreground in debug mode, thus
  41021. greatly increasing the command output:
  41022. .INDENT 0.0
  41023. .INDENT 3.5
  41024. .sp
  41025. .nf
  41026. .ft C
  41027. salt\-master \-l debug
  41028. .ft P
  41029. .fi
  41030. .UNINDENT
  41031. .UNINDENT
  41032. .sp
  41033. The Salt Master needs to bind to two TCP network ports on the system. These ports
  41034. are \fB4505\fP and \fB4506\fP\&. For more in depth information on firewalling these ports,
  41035. the firewall tutorial is available here\&.
  41036. .SS Finding the Salt Master
  41037. .sp
  41038. When a minion starts, by default it searches for a system that resolves to the \fBsalt\fP hostname on the network.
  41039. If found, the minion initiates the handshake and key authentication process with the Salt master.
  41040. This means that the easiest configuration approach is to set internal DNS to resolve the name \fBsalt\fP back to the Salt Master IP.
  41041. .sp
  41042. Otherwise, the minion configuration file will need to be edited so that the
  41043. configuration option \fBmaster\fP points to the DNS name or the IP of the Salt Master:
  41044. .sp
  41045. \fBNOTE:\fP
  41046. .INDENT 0.0
  41047. .INDENT 3.5
  41048. The default location of the configuration files is \fB/etc/salt\fP\&. Most
  41049. platforms adhere to this convention, but platforms such as FreeBSD and
  41050. Microsoft Windows place this file in different locations.
  41051. .UNINDENT
  41052. .UNINDENT
  41053. .sp
  41054. \fB/etc/salt/minion:\fP
  41055. .INDENT 0.0
  41056. .INDENT 3.5
  41057. .sp
  41058. .nf
  41059. .ft C
  41060. master: saltmaster.example.com
  41061. .ft P
  41062. .fi
  41063. .UNINDENT
  41064. .UNINDENT
  41065. .SS Setting up a Salt Minion
  41066. .sp
  41067. \fBNOTE:\fP
  41068. .INDENT 0.0
  41069. .INDENT 3.5
  41070. The Salt Minion can operate with or without a Salt Master. This walk\-through
  41071. assumes that the minion will be connected to the master, for information on
  41072. how to run a master\-less minion please see the master\-less quick\-start guide:
  41073. .sp
  41074. Masterless Minion Quickstart
  41075. .UNINDENT
  41076. .UNINDENT
  41077. .sp
  41078. Now that the master can be found, start the minion in the same way as the
  41079. master; with the platform init system or via the command line directly:
  41080. .sp
  41081. As a daemon:
  41082. .INDENT 0.0
  41083. .INDENT 3.5
  41084. .sp
  41085. .nf
  41086. .ft C
  41087. salt\-minion \-d
  41088. .ft P
  41089. .fi
  41090. .UNINDENT
  41091. .UNINDENT
  41092. .sp
  41093. In the foreground in debug mode:
  41094. .INDENT 0.0
  41095. .INDENT 3.5
  41096. .sp
  41097. .nf
  41098. .ft C
  41099. salt\-minion \-l debug
  41100. .ft P
  41101. .fi
  41102. .UNINDENT
  41103. .UNINDENT
  41104. .sp
  41105. When the minion is started, it will generate an \fBid\fP value, unless it has
  41106. been generated on a previous run and cached (in \fB/etc/salt/minion_id\fP by
  41107. default). This is the name by which the minion will attempt
  41108. to authenticate to the master. The following steps are attempted, in order to
  41109. try to find a value that is not \fBlocalhost\fP:
  41110. .INDENT 0.0
  41111. .IP 1. 3
  41112. The Python function \fBsocket.getfqdn()\fP is run
  41113. .IP 2. 3
  41114. \fB/etc/hostname\fP is checked (non\-Windows only)
  41115. .IP 3. 3
  41116. \fB/etc/hosts\fP (\fB%WINDIR%\esystem32\edrivers\eetc\ehosts\fP on Windows hosts) is
  41117. checked for hostnames that map to anything within \fB127.0.0.0/8\fP\&.
  41118. .UNINDENT
  41119. .sp
  41120. If none of the above are able to produce an id which is not \fBlocalhost\fP, then
  41121. a sorted list of IP addresses on the minion (excluding any within
  41122. \fB127.0.0.0/8\fP) is inspected. The first publicly\-routable IP address is
  41123. used, if there is one. Otherwise, the first privately\-routable IP address is
  41124. used.
  41125. .sp
  41126. If all else fails, then \fBlocalhost\fP is used as a fallback.
  41127. .sp
  41128. \fBNOTE:\fP
  41129. .INDENT 0.0
  41130. .INDENT 3.5
  41131. Overriding the \fBid\fP
  41132. .sp
  41133. The minion id can be manually specified using the \fBid\fP
  41134. parameter in the minion config file. If this configuration value is
  41135. specified, it will override all other sources for the \fBid\fP\&.
  41136. .UNINDENT
  41137. .UNINDENT
  41138. .sp
  41139. Now that the minion is started, it will generate cryptographic keys and attempt
  41140. to connect to the master. The next step is to venture back to the master server
  41141. and accept the new minion\(aqs public key.
  41142. .SS Using salt\-key
  41143. .sp
  41144. Salt authenticates minions using public\-key encryption and authentication. For
  41145. a minion to start accepting commands from the master, the minion keys need to be
  41146. accepted by the master.
  41147. .sp
  41148. The \fBsalt\-key\fP command is used to manage all of the keys on the
  41149. master. To list the keys that are on the master:
  41150. .INDENT 0.0
  41151. .INDENT 3.5
  41152. .sp
  41153. .nf
  41154. .ft C
  41155. salt\-key \-L
  41156. .ft P
  41157. .fi
  41158. .UNINDENT
  41159. .UNINDENT
  41160. .sp
  41161. The keys that have been rejected, accepted, and pending acceptance are listed.
  41162. The easiest way to accept the minion key is to accept all pending keys:
  41163. .INDENT 0.0
  41164. .INDENT 3.5
  41165. .sp
  41166. .nf
  41167. .ft C
  41168. salt\-key \-A
  41169. .ft P
  41170. .fi
  41171. .UNINDENT
  41172. .UNINDENT
  41173. .sp
  41174. \fBNOTE:\fP
  41175. .INDENT 0.0
  41176. .INDENT 3.5
  41177. Keys should be verified! Print the master key fingerprint by running \fBsalt\-key \-F master\fP
  41178. on the Salt master. Copy the \fBmaster.pub\fP fingerprint from the Local Keys section,
  41179. and then set this value as the \fBmaster_finger\fP in the minion configuration
  41180. file. Restart the Salt minion.
  41181. .sp
  41182. On the master, run \fBsalt\-key \-f minion\-id\fP to print the fingerprint of the
  41183. minion\(aqs public key that was received by the master. On the minion, run
  41184. \fBsalt\-call key.finger \-\-local\fP to print the fingerprint of the minion key.
  41185. .sp
  41186. On the master:
  41187. .INDENT 0.0
  41188. .INDENT 3.5
  41189. .sp
  41190. .nf
  41191. .ft C
  41192. # salt\-key \-f foo.domain.com
  41193. Unaccepted Keys:
  41194. foo.domain.com: 39:f9:e4:8a:aa:74:8d:52:1a:ec:92:03:82:09:c8:f9
  41195. .ft P
  41196. .fi
  41197. .UNINDENT
  41198. .UNINDENT
  41199. .sp
  41200. On the minion:
  41201. .INDENT 0.0
  41202. .INDENT 3.5
  41203. .sp
  41204. .nf
  41205. .ft C
  41206. # salt\-call key.finger \-\-local
  41207. local:
  41208. 39:f9:e4:8a:aa:74:8d:52:1a:ec:92:03:82:09:c8:f9
  41209. .ft P
  41210. .fi
  41211. .UNINDENT
  41212. .UNINDENT
  41213. .sp
  41214. If they match, approve the key with \fBsalt\-key \-a foo.domain.com\fP\&.
  41215. .UNINDENT
  41216. .UNINDENT
  41217. .SS Sending the First Commands
  41218. .sp
  41219. Now that the minion is connected to the master and authenticated, the master
  41220. can start to command the minion.
  41221. .sp
  41222. Salt commands allow for a vast set of functions to be executed and for
  41223. specific minions and groups of minions to be targeted for execution.
  41224. .sp
  41225. The \fBsalt\fP command is comprised of command options, target specification,
  41226. the function to execute, and arguments to the function.
  41227. .sp
  41228. A simple command to
  41229. start with looks like this:
  41230. .INDENT 0.0
  41231. .INDENT 3.5
  41232. .sp
  41233. .nf
  41234. .ft C
  41235. salt \(aq*\(aq test.version
  41236. .ft P
  41237. .fi
  41238. .UNINDENT
  41239. .UNINDENT
  41240. .sp
  41241. The \fB*\fP is the target, which specifies all minions.
  41242. .sp
  41243. \fBtest.version\fP tells the minion to run the \fBtest.version\fP function.
  41244. .sp
  41245. 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
  41246. module.
  41247. .sp
  41248. \fBNOTE:\fP
  41249. .INDENT 0.0
  41250. .INDENT 3.5
  41251. Execution modules are the workhorses of Salt. They do the work on the
  41252. system to perform various tasks, such as manipulating files and restarting
  41253. services.
  41254. .UNINDENT
  41255. .UNINDENT
  41256. .sp
  41257. The result of running this command will be the master instructing all of the
  41258. minions to execute \fBtest.version\fP in parallel
  41259. and return the result. Using \fBtest.version\fP
  41260. is a good way of confirming that a minion is connected, and reaffirm to the user
  41261. the salt version(s) they have installed on the minions.
  41262. .sp
  41263. \fBNOTE:\fP
  41264. .INDENT 0.0
  41265. .INDENT 3.5
  41266. Each minion registers itself with a unique minion ID. This ID defaults to
  41267. the minion\(aqs hostname, but can be explicitly defined in the minion config as
  41268. well by using the \fBid\fP parameter.
  41269. .UNINDENT
  41270. .UNINDENT
  41271. .sp
  41272. Of course, there are hundreds of other modules that can be called just as
  41273. \fBtest.version\fP can. For example, the following would return disk usage on all
  41274. targeted minions:
  41275. .INDENT 0.0
  41276. .INDENT 3.5
  41277. .sp
  41278. .nf
  41279. .ft C
  41280. salt \(aq*\(aq disk.usage
  41281. .ft P
  41282. .fi
  41283. .UNINDENT
  41284. .UNINDENT
  41285. .SS Getting to Know the Functions
  41286. .sp
  41287. Salt comes with a vast library of functions available for execution, and Salt
  41288. functions are self\-documenting. To see what functions are available on the
  41289. minions execute the \fBsys.doc\fP function:
  41290. .INDENT 0.0
  41291. .INDENT 3.5
  41292. .sp
  41293. .nf
  41294. .ft C
  41295. salt \(aq*\(aq sys.doc
  41296. .ft P
  41297. .fi
  41298. .UNINDENT
  41299. .UNINDENT
  41300. .sp
  41301. This will display a very large list of available functions and documentation on
  41302. them.
  41303. .sp
  41304. \fBNOTE:\fP
  41305. .INDENT 0.0
  41306. .INDENT 3.5
  41307. Module documentation is also available on the web\&.
  41308. .UNINDENT
  41309. .UNINDENT
  41310. .sp
  41311. These functions cover everything from shelling out to package management to
  41312. manipulating database servers. They comprise a powerful system management API
  41313. which is the backbone to Salt configuration management and many other aspects
  41314. of Salt.
  41315. .sp
  41316. \fBNOTE:\fP
  41317. .INDENT 0.0
  41318. .INDENT 3.5
  41319. Salt comes with many plugin systems. The functions that are available via
  41320. the \fBsalt\fP command are called Execution Modules\&.
  41321. .UNINDENT
  41322. .UNINDENT
  41323. .SS Helpful Functions to Know
  41324. .sp
  41325. The \fBcmd\fP module contains
  41326. functions to shell out on minions, such as \fBcmd.run\fP and \fBcmd.run_all\fP:
  41327. .INDENT 0.0
  41328. .INDENT 3.5
  41329. .sp
  41330. .nf
  41331. .ft C
  41332. salt \(aq*\(aq cmd.run \(aqls \-l /etc\(aq
  41333. .ft P
  41334. .fi
  41335. .UNINDENT
  41336. .UNINDENT
  41337. .sp
  41338. The \fBpkg\fP functions automatically map local system package managers to the
  41339. same salt functions. This means that \fBpkg.install\fP will install packages via
  41340. \fByum\fP on Red Hat based systems, \fBapt\fP on Debian systems, etc.:
  41341. .INDENT 0.0
  41342. .INDENT 3.5
  41343. .sp
  41344. .nf
  41345. .ft C
  41346. salt \(aq*\(aq pkg.install vim
  41347. .ft P
  41348. .fi
  41349. .UNINDENT
  41350. .UNINDENT
  41351. .sp
  41352. \fBNOTE:\fP
  41353. .INDENT 0.0
  41354. .INDENT 3.5
  41355. Some custom Linux spins and derivatives of other distributions are not properly
  41356. detected by Salt. If the above command returns an error message saying that
  41357. \fBpkg.install\fP is not available, then you may need to override the pkg
  41358. provider. This process is explained here\&.
  41359. .UNINDENT
  41360. .UNINDENT
  41361. .sp
  41362. The \fBnetwork.interfaces\fP function will
  41363. list all interfaces on a minion, along with their IP addresses, netmasks, MAC
  41364. addresses, etc:
  41365. .INDENT 0.0
  41366. .INDENT 3.5
  41367. .sp
  41368. .nf
  41369. .ft C
  41370. salt \(aq*\(aq network.interfaces
  41371. .ft P
  41372. .fi
  41373. .UNINDENT
  41374. .UNINDENT
  41375. .SS Changing the Output Format
  41376. .sp
  41377. The default output format used for most Salt commands is called the \fBnested\fP
  41378. outputter, but there are several other outputters that can be used to change
  41379. the way the output is displayed. For instance, the \fBpprint\fP outputter can be
  41380. used to display the return data using Python\(aqs \fBpprint\fP module:
  41381. .INDENT 0.0
  41382. .INDENT 3.5
  41383. .sp
  41384. .nf
  41385. .ft C
  41386. root@saltmaster:~# salt myminion grains.item pythonpath \-\-out=pprint
  41387. {\(aqmyminion\(aq: {\(aqpythonpath\(aq: [\(aq/usr/lib64/python2.7\(aq,
  41388. \(aq/usr/lib/python2.7/plat\-linux2\(aq,
  41389. \(aq/usr/lib64/python2.7/lib\-tk\(aq,
  41390. \(aq/usr/lib/python2.7/lib\-tk\(aq,
  41391. \(aq/usr/lib/python2.7/site\-packages\(aq,
  41392. \(aq/usr/lib/python2.7/site\-packages/gst\-0.10\(aq,
  41393. \(aq/usr/lib/python2.7/site\-packages/gtk\-2.0\(aq]}}
  41394. .ft P
  41395. .fi
  41396. .UNINDENT
  41397. .UNINDENT
  41398. .sp
  41399. The full list of Salt outputters, as well as example output, can be found
  41400. here\&.
  41401. .SS \fBsalt\-call\fP
  41402. .sp
  41403. The examples so far have described running commands from the Master using the
  41404. \fBsalt\fP command, but when troubleshooting it can be more beneficial to login
  41405. to the minion directly and use \fBsalt\-call\fP\&.
  41406. .sp
  41407. Doing so allows you to see the minion log messages specific to the command you
  41408. are running (which are \fInot\fP part of the return data you see when running the
  41409. command from the Master using \fBsalt\fP), making it unnecessary to tail the
  41410. minion log. More information on \fBsalt\-call\fP and how to use it can be found
  41411. here\&.
  41412. .SS Grains
  41413. .sp
  41414. Salt uses a system called Grains to build up
  41415. static data about minions. This data includes information about the operating
  41416. system that is running, CPU architecture and much more. The grains system is
  41417. used throughout Salt to deliver platform data to many components and to users.
  41418. .sp
  41419. Grains can also be statically set, this makes it easy to assign values to
  41420. minions for grouping and managing.
  41421. .sp
  41422. A common practice is to assign grains to minions to specify what the role or
  41423. roles a minion might be. These static grains can be set in the minion
  41424. configuration file or via the \fBgrains.setval\fP
  41425. function.
  41426. .SS Targeting
  41427. .sp
  41428. Salt allows for minions to be targeted based on a wide range of criteria. The
  41429. default targeting system uses globular expressions to match minions, hence if
  41430. there are minions named \fBlarry1\fP, \fBlarry2\fP, \fBcurly1\fP, and \fBcurly2\fP, a
  41431. glob of \fBlarry*\fP will match \fBlarry1\fP and \fBlarry2\fP, and a glob of \fB*1\fP
  41432. will match \fBlarry1\fP and \fBcurly1\fP\&.
  41433. .sp
  41434. Many other targeting systems can be used other than globs, these systems
  41435. include:
  41436. .INDENT 0.0
  41437. .TP
  41438. .B Regular Expressions
  41439. Target using PCRE\-compliant regular expressions
  41440. .TP
  41441. .B Grains
  41442. Target based on grains data:
  41443. Targeting with Grains
  41444. .TP
  41445. .B Pillar
  41446. Target based on pillar data:
  41447. Targeting with Pillar
  41448. .TP
  41449. .B IP
  41450. Target based on IP address/subnet/range
  41451. .TP
  41452. .B Compound
  41453. Create logic to target based on multiple targets:
  41454. Targeting with Compound
  41455. .TP
  41456. .B Nodegroup
  41457. Target with nodegroups:
  41458. Targeting with Nodegroup
  41459. .UNINDENT
  41460. .sp
  41461. The concepts of targets are used on the command line with Salt, but also
  41462. function in many other areas as well, including the state system and the
  41463. systems used for ACLs and user permissions.
  41464. .SS Passing in Arguments
  41465. .sp
  41466. Many of the functions available accept arguments which can be passed in on
  41467. the command line:
  41468. .INDENT 0.0
  41469. .INDENT 3.5
  41470. .sp
  41471. .nf
  41472. .ft C
  41473. salt \(aq*\(aq pkg.install vim
  41474. .ft P
  41475. .fi
  41476. .UNINDENT
  41477. .UNINDENT
  41478. .sp
  41479. This example passes the argument \fBvim\fP to the pkg.install function. Since
  41480. many functions can accept more complex input than just a string, the arguments
  41481. are parsed through YAML, allowing for more complex data to be sent on the
  41482. command line:
  41483. .INDENT 0.0
  41484. .INDENT 3.5
  41485. .sp
  41486. .nf
  41487. .ft C
  41488. salt \(aq*\(aq test.echo \(aqfoo: bar\(aq
  41489. .ft P
  41490. .fi
  41491. .UNINDENT
  41492. .UNINDENT
  41493. .sp
  41494. In this case Salt translates the string \(aqfoo: bar\(aq into the dictionary
  41495. "{\(aqfoo\(aq: \(aqbar\(aq}"
  41496. .sp
  41497. \fBNOTE:\fP
  41498. .INDENT 0.0
  41499. .INDENT 3.5
  41500. Any line that contains a newline will not be parsed by YAML.
  41501. .UNINDENT
  41502. .UNINDENT
  41503. .SS Salt States
  41504. .sp
  41505. Now that the basics are covered the time has come to evaluate \fBStates\fP\&. Salt
  41506. \fBStates\fP, or the \fBState System\fP is the component of Salt made for
  41507. configuration management.
  41508. .sp
  41509. The state system is already available with a basic Salt setup, no additional
  41510. configuration is required. States can be set up immediately.
  41511. .sp
  41512. \fBNOTE:\fP
  41513. .INDENT 0.0
  41514. .INDENT 3.5
  41515. Before diving into the state system, a brief overview of how states are
  41516. constructed will make many of the concepts clearer. Salt states are based
  41517. on data modeling and build on a low level data structure that is used to
  41518. execute each state function. Then more logical layers are built on top of
  41519. each other.
  41520. .sp
  41521. The high layers of the state system which this tutorial will
  41522. cover consists of everything that needs to be known to use states, the two
  41523. high layers covered here are the \fIsls\fP layer and the highest layer
  41524. \fIhighstate\fP\&.
  41525. .sp
  41526. Understanding the layers of data management in the State System will help with
  41527. understanding states, but they never need to be used. Just as understanding
  41528. how a compiler functions assists when learning a programming language,
  41529. understanding what is going on under the hood of a configuration management
  41530. system will also prove to be a valuable asset.
  41531. .UNINDENT
  41532. .UNINDENT
  41533. .SS The First SLS Formula
  41534. .sp
  41535. The state system is built on SLS (SaLt State) formulas. These formulas are built out in
  41536. files on Salt\(aqs file server. To make a very basic SLS formula open up a file
  41537. under /srv/salt named vim.sls. The following state ensures that vim is installed
  41538. on a system to which that state has been applied.
  41539. .sp
  41540. \fB/srv/salt/vim.sls:\fP
  41541. .INDENT 0.0
  41542. .INDENT 3.5
  41543. .sp
  41544. .nf
  41545. .ft C
  41546. vim:
  41547. pkg.installed
  41548. .ft P
  41549. .fi
  41550. .UNINDENT
  41551. .UNINDENT
  41552. .sp
  41553. Now install vim on the minions by calling the SLS directly:
  41554. .INDENT 0.0
  41555. .INDENT 3.5
  41556. .sp
  41557. .nf
  41558. .ft C
  41559. salt \(aq*\(aq state.apply vim
  41560. .ft P
  41561. .fi
  41562. .UNINDENT
  41563. .UNINDENT
  41564. .sp
  41565. This command will invoke the state system and run the \fBvim\fP SLS.
  41566. .sp
  41567. Now, to beef up the vim SLS formula, a \fBvimrc\fP can be added:
  41568. .sp
  41569. \fB/srv/salt/vim.sls:\fP
  41570. .INDENT 0.0
  41571. .INDENT 3.5
  41572. .sp
  41573. .nf
  41574. .ft C
  41575. vim:
  41576. pkg.installed: []
  41577. /etc/vimrc:
  41578. file.managed:
  41579. \- source: salt://vimrc
  41580. \- mode: 644
  41581. \- user: root
  41582. \- group: root
  41583. .ft P
  41584. .fi
  41585. .UNINDENT
  41586. .UNINDENT
  41587. .sp
  41588. Now the desired \fBvimrc\fP needs to be copied into the Salt file server to
  41589. \fB/srv/salt/vimrc\fP\&. In Salt, everything is a file, so no path redirection needs
  41590. to be accounted for. The \fBvimrc\fP file is placed right next to the \fBvim.sls\fP file.
  41591. The same command as above can be executed to all the vim SLS formulas and now
  41592. include managing the file.
  41593. .sp
  41594. \fBNOTE:\fP
  41595. .INDENT 0.0
  41596. .INDENT 3.5
  41597. Salt does not need to be restarted/reloaded or have the master manipulated
  41598. in any way when changing SLS formulas. They are instantly available.
  41599. .UNINDENT
  41600. .UNINDENT
  41601. .SS Adding Some Depth
  41602. .sp
  41603. Obviously maintaining SLS formulas right in a single directory at the root of
  41604. the file server will not scale out to reasonably sized deployments. This is
  41605. why more depth is required. Start by making an nginx formula a better way,
  41606. make an nginx subdirectory and add an init.sls file:
  41607. .sp
  41608. \fB/srv/salt/nginx/init.sls:\fP
  41609. .INDENT 0.0
  41610. .INDENT 3.5
  41611. .sp
  41612. .nf
  41613. .ft C
  41614. nginx:
  41615. pkg.installed: []
  41616. service.running:
  41617. \- require:
  41618. \- pkg: nginx
  41619. .ft P
  41620. .fi
  41621. .UNINDENT
  41622. .UNINDENT
  41623. .sp
  41624. A few concepts are introduced in this SLS formula.
  41625. .sp
  41626. First is the service statement which ensures that the \fBnginx\fP service is running.
  41627. .sp
  41628. Of course, the nginx service can\(aqt be started unless the package is installed \-\-
  41629. hence the \fBrequire\fP statement which sets up a dependency between the two.
  41630. .sp
  41631. The \fBrequire\fP statement makes sure that the required component is executed before
  41632. and that it results in success.
  41633. .sp
  41634. \fBNOTE:\fP
  41635. .INDENT 0.0
  41636. .INDENT 3.5
  41637. The \fIrequire\fP option belongs to a family of options called \fIrequisites\fP\&.
  41638. Requisites are a powerful component of Salt States, for more information
  41639. on how requisites work and what is available see:
  41640. Requisites
  41641. .sp
  41642. Also evaluation ordering is available in Salt as well:
  41643. Ordering States
  41644. .UNINDENT
  41645. .UNINDENT
  41646. .sp
  41647. This new sls formula has a special name \-\- \fBinit.sls\fP\&. When an SLS formula is
  41648. named \fBinit.sls\fP it inherits the name of the directory path that contains it.
  41649. This formula can be referenced via the following command:
  41650. .INDENT 0.0
  41651. .INDENT 3.5
  41652. .sp
  41653. .nf
  41654. .ft C
  41655. salt \(aq*\(aq state.apply nginx
  41656. .ft P
  41657. .fi
  41658. .UNINDENT
  41659. .UNINDENT
  41660. .sp
  41661. \fBNOTE:\fP
  41662. .INDENT 0.0
  41663. .INDENT 3.5
  41664. \fBstate.apply\fP is just another remote
  41665. execution function, just like \fBtest.version\fP
  41666. or \fBdisk.usage\fP\&. It simply takes the
  41667. name of an SLS file as an argument.
  41668. .UNINDENT
  41669. .UNINDENT
  41670. .sp
  41671. Now that subdirectories can be used, the \fBvim.sls\fP formula can be cleaned up.
  41672. To make things more flexible, move the \fBvim.sls\fP and vimrc into a new subdirectory
  41673. called \fBedit\fP and change the \fBvim.sls\fP file to reflect the change:
  41674. .sp
  41675. \fB/srv/salt/edit/vim.sls:\fP
  41676. .INDENT 0.0
  41677. .INDENT 3.5
  41678. .sp
  41679. .nf
  41680. .ft C
  41681. vim:
  41682. pkg.installed
  41683. /etc/vimrc:
  41684. file.managed:
  41685. \- source: salt://edit/vimrc
  41686. \- mode: 644
  41687. \- user: root
  41688. \- group: root
  41689. .ft P
  41690. .fi
  41691. .UNINDENT
  41692. .UNINDENT
  41693. .sp
  41694. Only the source path to the vimrc file has changed. Now the formula is
  41695. referenced as \fBedit.vim\fP because it resides in the edit subdirectory.
  41696. Now the edit subdirectory can contain formulas for emacs, nano, joe or any other
  41697. editor that may need to be deployed.
  41698. .SS Next Reading
  41699. .sp
  41700. Two walk\-throughs are specifically recommended at this point. First, a deeper
  41701. run through States, followed by an explanation of Pillar.
  41702. .INDENT 0.0
  41703. .IP 1. 3
  41704. Starting States
  41705. .IP 2. 3
  41706. Pillar Walkthrough
  41707. .UNINDENT
  41708. .sp
  41709. An understanding of Pillar is extremely helpful in using States.
  41710. .SS Getting Deeper Into States
  41711. .sp
  41712. Two more in\-depth States tutorials exist, which delve much more deeply into States
  41713. functionality.
  41714. .INDENT 0.0
  41715. .IP 1. 3
  41716. How Do I Use Salt States?, covers much
  41717. more to get off the ground with States.
  41718. .IP 2. 3
  41719. The States Tutorial also provides a
  41720. fantastic introduction.
  41721. .UNINDENT
  41722. .sp
  41723. These tutorials include much more in\-depth information including templating
  41724. SLS formulas etc.
  41725. .SS So Much More!
  41726. .sp
  41727. This concludes the initial Salt walk\-through, but there are many more things still
  41728. to learn! These documents will cover important core aspects of Salt:
  41729. .INDENT 0.0
  41730. .IP \(bu 2
  41731. Pillar
  41732. .IP \(bu 2
  41733. Job Management
  41734. .UNINDENT
  41735. .sp
  41736. A few more tutorials are also available:
  41737. .INDENT 0.0
  41738. .IP \(bu 2
  41739. Remote Execution Tutorial
  41740. .IP \(bu 2
  41741. Standalone Minion
  41742. .UNINDENT
  41743. .sp
  41744. This still is only scratching the surface, many components such as the reactor
  41745. and event systems, extending Salt, modular components and more are not covered
  41746. here. For an overview of all Salt features and documentation, look at the
  41747. Table of Contents\&.
  41748. .SS Salt\(aqs Test Suite: An Introduction
  41749. .sp
  41750. \fBNOTE:\fP
  41751. .INDENT 0.0
  41752. .INDENT 3.5
  41753. This tutorial makes a couple of assumptions. The first assumption is that
  41754. you have a basic knowledge of Salt. To get up to speed, check out the
  41755. Salt Walkthrough\&.
  41756. .sp
  41757. The second assumption is that your Salt development environment is already
  41758. configured and that you have a basic understanding of contributing to the
  41759. Salt codebase. If you\(aqre unfamiliar with either of these topics, please refer
  41760. to the Installing Salt for Development
  41761. and the Contributing pages, respectively.
  41762. .UNINDENT
  41763. .UNINDENT
  41764. .sp
  41765. Salt comes with a powerful integration and unit test suite. The test suite
  41766. allows for the fully automated run of integration and/or unit tests from a
  41767. single interface.
  41768. .sp
  41769. Salt\(aqs test suite is located under the \fBtests\fP directory in the root of Salt\(aqs
  41770. code base and is divided into two main types of tests:
  41771. \fI\%unit tests and integration tests\fP\&. The \fBunit\fP and
  41772. \fBintegration\fP sub\-test\-suites are located in the \fBtests\fP directory, which is
  41773. where the majority of Salt\(aqs test cases are housed.
  41774. .SS Getting Set Up For Tests
  41775. .sp
  41776. First of all you will need to ensure you install \fBnox\fP\&.
  41777. .INDENT 0.0
  41778. .INDENT 3.5
  41779. .sp
  41780. .nf
  41781. .ft C
  41782. pip install nox
  41783. .ft P
  41784. .fi
  41785. .UNINDENT
  41786. .UNINDENT
  41787. .SS Test Directory Structure
  41788. .sp
  41789. As noted in the introduction to this tutorial, Salt\(aqs test suite is located in the
  41790. \fBtests\fP directory in the root of Salt\(aqs code base. From there, the tests are divided
  41791. into two groups \fBintegration\fP and \fBunit\fP\&. Within each of these directories, the
  41792. directory structure roughly mirrors the directory structure of Salt\(aqs own codebase.
  41793. For example, the files inside \fBtests/integration/modules\fP contains tests for the
  41794. files located within \fBsalt/modules\fP\&.
  41795. .sp
  41796. \fBNOTE:\fP
  41797. .INDENT 0.0
  41798. .INDENT 3.5
  41799. \fBtests/integration\fP and \fBtests/unit\fP are the only directories discussed in
  41800. this tutorial. With the exception of the \fBtests/runtests.py\fP file, which is
  41801. used below in the \fI\%Running the Test Suite\fP section, the other directories and
  41802. files located in \fBtests\fP are outside the scope of this tutorial.
  41803. .UNINDENT
  41804. .UNINDENT
  41805. .SS Integration vs. Unit
  41806. .sp
  41807. Given that Salt\(aqs test suite contains two powerful, though very different, testing
  41808. approaches, when should you write integration tests and when should you write unit
  41809. tests?
  41810. .sp
  41811. Integration tests use Salt masters, minions, and a syndic to test salt functionality
  41812. directly and focus on testing the interaction of these components. Salt\(aqs integration
  41813. test runner includes functionality to run Salt execution modules, runners, states,
  41814. shell commands, salt\-ssh commands, salt\-api commands, and more. This provides a
  41815. tremendous ability to use Salt to test itself and makes writing such tests a breeze.
  41816. Integration tests are the preferred method of testing Salt functionality when
  41817. possible.
  41818. .sp
  41819. Unit tests do not spin up any Salt daemons, but instead find their value in testing
  41820. singular implementations of individual functions. Instead of testing against specific
  41821. interactions, unit tests should be used to test a function\(aqs logic. Unit tests should
  41822. be used to test a function\(aqs exit point(s) such as any \fBreturn\fP or \fBraises\fP
  41823. statements.
  41824. .sp
  41825. Unit tests are also useful in cases where writing an integration test might not be
  41826. possible. While the integration test suite is extremely powerful, unfortunately at
  41827. this time, it does not cover all functional areas of Salt\(aqs ecosystem. For example,
  41828. at the time of this writing, there is not a way to write integration tests for Proxy
  41829. Minions. Since the test runner will need to be adjusted to account for Proxy Minion
  41830. processes, unit tests can still provide some testing support in the interim by
  41831. testing the logic contained inside Proxy Minion functions.
  41832. .SS Running the Test Suite
  41833. .sp
  41834. Once all of the \fI\%requirements\fP are installed, the
  41835. \fBnox\fP command is used to instantiate Salt\(aqs test suite:
  41836. .INDENT 0.0
  41837. .INDENT 3.5
  41838. .sp
  41839. .nf
  41840. .ft C
  41841. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq
  41842. .ft P
  41843. .fi
  41844. .UNINDENT
  41845. .UNINDENT
  41846. .sp
  41847. The command above, if executed without any options, will run the entire suite of
  41848. integration and unit tests. Some tests require certain flags to run, such as
  41849. destructive tests. If these flags are not included, then the test suite will only
  41850. perform the tests that don\(aqt require special attention.
  41851. .sp
  41852. At the end of the test run, you will see a summary output of the tests that passed,
  41853. failed, or were skipped.
  41854. .sp
  41855. You can pass any pytest options after the nox command like so:
  41856. .INDENT 0.0
  41857. .INDENT 3.5
  41858. .sp
  41859. .nf
  41860. .ft C
  41861. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/modules/test_ps.py
  41862. .ft P
  41863. .fi
  41864. .UNINDENT
  41865. .UNINDENT
  41866. .sp
  41867. The above command will run the \fBtest_ps.py\fP test with the zeromq transport, python3,
  41868. and pytest. The option after \fB\-\-\fP can include any pytest options.
  41869. .SS Running Integration Tests
  41870. .sp
  41871. Salt\(aqs set of integration tests use Salt to test itself. The integration portion
  41872. of the test suite includes some built\-in Salt daemons that will spin up in preparation
  41873. of the test run. This list of Salt daemon processes includes:
  41874. .INDENT 0.0
  41875. .IP \(bu 2
  41876. 2 Salt Masters
  41877. .IP \(bu 2
  41878. 2 Salt Minions
  41879. .IP \(bu 2
  41880. 1 Salt Syndic
  41881. .UNINDENT
  41882. .sp
  41883. These various daemons are used to execute Salt commands and functionality within
  41884. the test suite, allowing you to write tests to assert against expected or
  41885. unexpected behaviors.
  41886. .sp
  41887. A simple example of a test utilizing a typical master/minion execution module command
  41888. is the test for the \fBtest_ping\fP function in the
  41889. \fBtests/integration/modules/test_test.py\fP
  41890. file:
  41891. .INDENT 0.0
  41892. .INDENT 3.5
  41893. .sp
  41894. .nf
  41895. .ft C
  41896. def test_ping(self):
  41897. """
  41898. test.ping
  41899. """
  41900. self.assertTrue(self.run_function("test.ping"))
  41901. .ft P
  41902. .fi
  41903. .UNINDENT
  41904. .UNINDENT
  41905. .sp
  41906. The test above is a very simple example where the \fBtest.ping\fP function is
  41907. executed by Salt\(aqs test suite runner and is asserting that the minion returned
  41908. with a \fBTrue\fP response.
  41909. .SS Test Selection Options
  41910. .sp
  41911. If you want to run only a subset of tests, this is easily done with pytest. You only
  41912. need to point the test runner to the directory. For example if you want to run all
  41913. integration module tests:
  41914. .INDENT 0.0
  41915. .INDENT 3.5
  41916. .sp
  41917. .nf
  41918. .ft C
  41919. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/
  41920. .ft P
  41921. .fi
  41922. .UNINDENT
  41923. .UNINDENT
  41924. .SS Running Unit Tests
  41925. .sp
  41926. If you want to run only the unit tests, you can just pass the unit test directory
  41927. as an option to the test runner.
  41928. .sp
  41929. The unit tests do not spin up any Salt testing daemons as the integration tests
  41930. do and execute very quickly compared to the integration tests.
  41931. .INDENT 0.0
  41932. .INDENT 3.5
  41933. .sp
  41934. .nf
  41935. .ft C
  41936. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/
  41937. .ft P
  41938. .fi
  41939. .UNINDENT
  41940. .UNINDENT
  41941. .SS Running Specific Tests
  41942. .sp
  41943. There are times when a specific test file, test class, or even a single,
  41944. individual test need to be executed, such as when writing new tests. In these
  41945. situations, you should use the \fI\%pytest syntax\fP to select the specific tests.
  41946. .sp
  41947. For running a single test file, such as the pillar module test file in the
  41948. integration test directory, you must provide the file path.
  41949. .INDENT 0.0
  41950. .INDENT 3.5
  41951. .sp
  41952. .nf
  41953. .ft C
  41954. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/test_pillar.py
  41955. .ft P
  41956. .fi
  41957. .UNINDENT
  41958. .UNINDENT
  41959. .sp
  41960. Some test files contain only one test class while other test files contain multiple
  41961. test classes. To run a specific test class within the file, append the name of
  41962. the test class to the end of the file path:
  41963. .INDENT 0.0
  41964. .INDENT 3.5
  41965. .sp
  41966. .nf
  41967. .ft C
  41968. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/test_pillar.py::PillarModuleTest
  41969. .ft P
  41970. .fi
  41971. .UNINDENT
  41972. .UNINDENT
  41973. .sp
  41974. To run a single test within a file, append both the name of the test class the
  41975. individual test belongs to, as well as the name of the test itself:
  41976. .INDENT 0.0
  41977. .INDENT 3.5
  41978. .sp
  41979. .nf
  41980. .ft C
  41981. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/test_pillar.py::PillarModuleTest::test_data
  41982. .ft P
  41983. .fi
  41984. .UNINDENT
  41985. .UNINDENT
  41986. .sp
  41987. The following command is an example of how to execute a single test found in
  41988. the \fBtests/unit/modules/test_cp.py\fP file:
  41989. .INDENT 0.0
  41990. .INDENT 3.5
  41991. .sp
  41992. .nf
  41993. .ft C
  41994. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/modules/test_cp.py::CpTestCase::test_get_file_not_found
  41995. .ft P
  41996. .fi
  41997. .UNINDENT
  41998. .UNINDENT
  41999. .SS Writing Tests for Salt
  42000. .sp
  42001. Once you\(aqre comfortable running tests, you can now start writing them! Be sure
  42002. to review the \fI\%Integration vs. Unit\fP section of this tutorial to determine what
  42003. type of test makes the most sense for the code you\(aqre testing.
  42004. .sp
  42005. \fBNOTE:\fP
  42006. .INDENT 0.0
  42007. .INDENT 3.5
  42008. There are many decorators, naming conventions, and code specifications
  42009. required for Salt test files. We will not be covering all of the these specifics
  42010. in this tutorial. Please refer to the testing documentation links listed below
  42011. in the \fI\%Additional Testing Documentation\fP section to learn more about these
  42012. requirements.
  42013. .sp
  42014. In the following sections, the test examples assume the "new" test is added to
  42015. a test file that is already present and regularly running in the test suite and
  42016. is written with the correct requirements.
  42017. .UNINDENT
  42018. .UNINDENT
  42019. .SS Writing Integration Tests
  42020. .sp
  42021. Since integration tests validate against a running environment, as explained in the
  42022. \fI\%Running Integration Tests\fP section of this tutorial, integration tests are very
  42023. easy to write and are generally the preferred method of writing Salt tests.
  42024. .sp
  42025. The following integration test is an example taken from the \fBtest.py\fP file in the
  42026. \fBtests/integration/modules\fP directory. This test uses the \fBrun_function\fP method
  42027. to test the functionality of a traditional execution module command.
  42028. .sp
  42029. The \fBrun_function\fP method uses the integration test daemons to execute a
  42030. \fBmodule.function\fP command as you would with Salt. The minion runs the function and
  42031. returns. The test also uses \fI\%Python\(aqs Assert Functions\fP to test that the
  42032. minion\(aqs return is expected.
  42033. .INDENT 0.0
  42034. .INDENT 3.5
  42035. .sp
  42036. .nf
  42037. .ft C
  42038. def test_ping(self):
  42039. """
  42040. test.ping
  42041. """
  42042. self.assertTrue(self.run_function("test.ping"))
  42043. .ft P
  42044. .fi
  42045. .UNINDENT
  42046. .UNINDENT
  42047. .sp
  42048. Args can be passed in to the \fBrun_function\fP method as well:
  42049. .INDENT 0.0
  42050. .INDENT 3.5
  42051. .sp
  42052. .nf
  42053. .ft C
  42054. def test_echo(self):
  42055. """
  42056. test.echo
  42057. """
  42058. self.assertEqual(self.run_function("test.echo", ["text"]), "text")
  42059. .ft P
  42060. .fi
  42061. .UNINDENT
  42062. .UNINDENT
  42063. .sp
  42064. The next example is taken from the
  42065. \fBtests/integration/modules/test_aliases.py\fP file and
  42066. demonstrates how to pass kwargs to the \fBrun_function\fP call. Also note that this
  42067. test uses another salt function to ensure the correct data is present (via the
  42068. \fBaliases.set_target\fP call) before attempting to assert what the \fBaliases.get_target\fP
  42069. call should return.
  42070. .INDENT 0.0
  42071. .INDENT 3.5
  42072. .sp
  42073. .nf
  42074. .ft C
  42075. def test_set_target(self):
  42076. """
  42077. aliases.set_target and aliases.get_target
  42078. """
  42079. set_ret = self.run_function("aliases.set_target", alias="fred", target="bob")
  42080. self.assertTrue(set_ret)
  42081. tgt_ret = self.run_function("aliases.get_target", alias="fred")
  42082. self.assertEqual(tgt_ret, "bob")
  42083. .ft P
  42084. .fi
  42085. .UNINDENT
  42086. .UNINDENT
  42087. .sp
  42088. Using multiple Salt commands in this manner provides two useful benefits. The first is
  42089. that it provides some additional coverage for the \fBaliases.set_target\fP function.
  42090. The second benefit is the call to \fBaliases.get_target\fP is not dependent on the
  42091. presence of any aliases set outside of this test. Tests should not be dependent on
  42092. the previous execution, success, or failure of other tests. They should be isolated
  42093. from other tests as much as possible.
  42094. .sp
  42095. While it might be tempting to build out a test file where tests depend on one another
  42096. before running, this should be avoided. SaltStack recommends that each test should
  42097. test a single functionality and not rely on other tests. Therefore, when possible,
  42098. individual tests should also be broken up into singular pieces. These are not
  42099. hard\-and\-fast rules, but serve more as recommendations to keep the test suite simple.
  42100. This helps with debugging code and related tests when failures occur and problems
  42101. are exposed. There may be instances where large tests use many asserts to set up a
  42102. use case that protects against potential regressions.
  42103. .sp
  42104. \fBNOTE:\fP
  42105. .INDENT 0.0
  42106. .INDENT 3.5
  42107. The examples above all use the \fBrun_function\fP option to test execution module
  42108. functions in a traditional master/minion environment. To see examples of how to
  42109. test other common Salt components such as runners, salt\-api, and more, please
  42110. refer to the Integration Test Class Examples
  42111. documentation.
  42112. .UNINDENT
  42113. .UNINDENT
  42114. .SS Destructive vs Non\-destructive Tests
  42115. .sp
  42116. Since Salt is used to change the settings and behavior of systems, often, the
  42117. best approach to run tests is to make actual changes to an underlying system.
  42118. This is where the concept of destructive integration tests comes into play.
  42119. Tests can be written to alter the system they are running on. This capability
  42120. is what fills in the gap needed to properly test aspects of system management
  42121. like package installation.
  42122. .sp
  42123. To write a destructive test, import and use the \fBdestructiveTest\fP decorator for
  42124. the test method:
  42125. .INDENT 0.0
  42126. .INDENT 3.5
  42127. .sp
  42128. .nf
  42129. .ft C
  42130. import integration
  42131. from tests.support.helpers import destructiveTest
  42132. class PkgTest(integration.ModuleCase):
  42133. @destructiveTest
  42134. def test_pkg_install(self):
  42135. ret = self.run_function("pkg.install", name="finch")
  42136. self.assertSaltTrueReturn(ret)
  42137. ret = self.run_function("pkg.purge", name="finch")
  42138. self.assertSaltTrueReturn(ret)
  42139. .ft P
  42140. .fi
  42141. .UNINDENT
  42142. .UNINDENT
  42143. .SS Writing Unit Tests
  42144. .sp
  42145. As explained in the \fI\%Integration vs. Unit\fP section above, unit tests should be
  42146. written to test the \fIlogic\fP of a function. This includes focusing on testing
  42147. \fBreturn\fP and \fBraises\fP statements. Substantial effort should be made to mock
  42148. external resources that are used in the code being tested.
  42149. .sp
  42150. External resources that should be mocked include, but are not limited to, APIs,
  42151. function calls, external data either globally available or passed in through
  42152. function arguments, file data, etc. This practice helps to isolate unit tests to
  42153. test Salt logic. One handy way to think about writing unit tests is to "block
  42154. all of the exits". More information about how to properly mock external resources
  42155. can be found in Salt\(aqs Unit Test documentation.
  42156. .sp
  42157. Salt\(aqs unit tests utilize Python\(aqs mock class as well as \fI\%MagicMock\fP\&. The
  42158. \fB@patch\fP decorator is also heavily used when "blocking all the exits".
  42159. .sp
  42160. A simple example of a unit test currently in use in Salt is the
  42161. \fBtest_get_file_not_found\fP test in the \fBtests/unit/modules/test_cp.py\fP file.
  42162. This test uses the \fB@patch\fP decorator and \fBMagicMock\fP to mock the return
  42163. of the call to Salt\(aqs \fBcp.hash_file\fP execution module function. This ensures
  42164. that we\(aqre testing the \fBcp.get_file\fP function directly, instead of inadvertently
  42165. testing the call to \fBcp.hash_file\fP, which is used in \fBcp.get_file\fP\&.
  42166. .INDENT 0.0
  42167. .INDENT 3.5
  42168. .sp
  42169. .nf
  42170. .ft C
  42171. def test_get_file_not_found(self):
  42172. """
  42173. Test if get_file can\(aqt find the file.
  42174. """
  42175. with patch("salt.modules.cp.hash_file", MagicMock(return_value=False)):
  42176. path = "salt://saltines"
  42177. dest = "/srv/salt/cheese"
  42178. ret = ""
  42179. assert cp.get_file(path, dest) == ret
  42180. .ft P
  42181. .fi
  42182. .UNINDENT
  42183. .UNINDENT
  42184. .sp
  42185. Note that Salt\(aqs \fBcp\fP module is imported at the top of the file, along with all
  42186. of the other necessary testing imports. The \fBget_file\fP function is then called
  42187. directed in the testing function, instead of using the \fBrun_function\fP method as
  42188. the integration test examples do above.
  42189. .sp
  42190. The call to \fBcp.get_file\fP returns an empty string when a \fBhash_file\fP isn\(aqt found.
  42191. Therefore, the example above is a good illustration of a unit test "blocking
  42192. the exits" via the \fB@patch\fP decorator, as well as testing logic via asserting
  42193. against the \fBreturn\fP statement in the \fBif\fP clause. In this example we used the
  42194. python \fBassert\fP to verify the return from \fBcp.get_file\fP\&. Pytest allows you to use
  42195. these \fI\%asserts\fP when writing your tests and, in fact, plain \fI\%asserts\fP is the preferred
  42196. way to assert anything in your tests. As Salt dives deeper into Pytest, the use of
  42197. \fIunittest.TestClass\fP will be replaced by plain test functions, or test functions grouped
  42198. in a class, which \fBdoes not\fP subclass \fIunittest.TestClass\fP, which, of course, doesn\(aqt
  42199. work with unittest assert functions.
  42200. .sp
  42201. There are more examples of writing unit tests of varying complexities available
  42202. in the following docs:
  42203. .INDENT 0.0
  42204. .IP \(bu 2
  42205. Simple Unit Test Example
  42206. .IP \(bu 2
  42207. Complete Unit Test Example
  42208. .IP \(bu 2
  42209. Complex Unit Test Example
  42210. .UNINDENT
  42211. .sp
  42212. \fBNOTE:\fP
  42213. .INDENT 0.0
  42214. .INDENT 3.5
  42215. Considerable care should be made to ensure that you\(aqre testing something
  42216. useful in your test functions. It is very easy to fall into a situation
  42217. where you have mocked so much of the original function that the test
  42218. results in only asserting against the data you have provided. This results
  42219. in a poor and fragile unit test.
  42220. .UNINDENT
  42221. .UNINDENT
  42222. .SS Add a python module dependency to the test run
  42223. .sp
  42224. The test dependencies for python modules are managed under the \fBrequirements/static\fP
  42225. directory. You will need to add your module to the appropriate file under \fBrequirements/static\fP\&.
  42226. When \fBpre\-commit\fP is run it will create all of the needed requirement files
  42227. under \fBrequirements/static/py3{5,6,7}\fP\&. Nox will then use these files to install
  42228. the requirements for the tests.
  42229. .SS Add a system dependency to the test run
  42230. .sp
  42231. If you need to add a system dependency for the test run, this will need to be added in
  42232. the \fI\%salt jenkins\fP repo. This repo uses salt states to install system dependencies.
  42233. You need to update the \fBstate\-tree/golden\-images\-provision.sls\fP file with
  42234. your dependency to ensure it is installed. Once your PR is merged the core team
  42235. will need to promote the new images with your new dependency installed.
  42236. .SS Checking for Log Messages
  42237. .sp
  42238. To test to see if a given log message has been emitted, the following pattern
  42239. can be used
  42240. .INDENT 0.0
  42241. .INDENT 3.5
  42242. .sp
  42243. .nf
  42244. .ft C
  42245. # Import logging handler
  42246. from tests.support.helpers import TstSuiteLoggingHandler
  42247. # .. inside test
  42248. with TstSuiteLoggingHandler() as handler:
  42249. for message in handler.messages:
  42250. if message.startswith("ERROR: This is the error message we seek"):
  42251. break
  42252. else:
  42253. raise AssertionError("Did not find error message")
  42254. .ft P
  42255. .fi
  42256. .UNINDENT
  42257. .UNINDENT
  42258. .SS Automated Test Runs
  42259. .sp
  42260. SaltStack maintains a Jenkins server which can be viewed at
  42261. \fI\%https://jenkinsci.saltstack.com\fP\&. The tests executed from this Jenkins server
  42262. create fresh virtual machines for each test run, then execute the destructive
  42263. tests on the new, clean virtual machine. This allows for the execution of tests
  42264. across supported platforms.
  42265. .SS Additional Testing Documentation
  42266. .sp
  42267. In addition to this tutorial, there are some other helpful resources and documentation
  42268. that go into more depth on Salt\(aqs test runner, writing tests for Salt code, and general
  42269. Python testing documentation. Please see the follow references for more information:
  42270. .INDENT 0.0
  42271. .IP \(bu 2
  42272. Salt\(aqs Test Suite Documentation
  42273. .IP \(bu 2
  42274. Integration Tests
  42275. .IP \(bu 2
  42276. Unit Tests
  42277. .IP \(bu 2
  42278. \fI\%MagicMock\fP
  42279. .IP \(bu 2
  42280. \fI\%Python Unittest\fP
  42281. .IP \(bu 2
  42282. \fI\%Python\(aqs Assert Functions\fP
  42283. .UNINDENT
  42284. .SS Troubleshooting
  42285. .sp
  42286. The intent of the troubleshooting section is to introduce solutions to a
  42287. number of common issues encountered by users and the tools that are available
  42288. to aid in developing States and Salt code.
  42289. .SS Troubleshooting the Salt Master
  42290. .sp
  42291. If your Salt master is having issues such as minions not returning data, slow
  42292. execution times, or a variety of other issues, the following links contain
  42293. details on troubleshooting the most common issues encountered:
  42294. .SS Troubleshooting the Salt Master
  42295. .SS Running in the Foreground
  42296. .sp
  42297. A great deal of information is available via the debug logging system, if you
  42298. are having issues with minions connecting or not starting run the master in
  42299. the foreground:
  42300. .INDENT 0.0
  42301. .INDENT 3.5
  42302. .sp
  42303. .nf
  42304. .ft C
  42305. # salt\-master \-l debug
  42306. .ft P
  42307. .fi
  42308. .UNINDENT
  42309. .UNINDENT
  42310. .sp
  42311. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42312. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42313. run them in the foreground.
  42314. .SS What Ports does the Master Need Open?
  42315. .sp
  42316. For the master, TCP ports 4505 and 4506 need to be open. If you\(aqve put both
  42317. your Salt master and minion in debug mode and don\(aqt see an acknowledgment
  42318. that your minion has connected, it could very well be a firewall interfering
  42319. with the connection. See our firewall configuration page for help opening the firewall on various
  42320. platforms.
  42321. .sp
  42322. If you\(aqve opened the correct TCP ports and still aren\(aqt seeing connections,
  42323. check that no additional access control system such as \fI\%SELinux\fP or
  42324. \fI\%AppArmor\fP is blocking Salt.
  42325. .SS Too many open files
  42326. .sp
  42327. The salt\-master needs at least 2 sockets per host that connects to it, one for
  42328. the Publisher and one for response port. Thus, large installations may, upon
  42329. scaling up the number of minions accessing a given master, encounter:
  42330. .INDENT 0.0
  42331. .INDENT 3.5
  42332. .sp
  42333. .nf
  42334. .ft C
  42335. 12:45:29,289 [salt.master ][INFO ] Starting Salt worker process 38
  42336. Too many open files
  42337. sock != \-1 (tcp_listener.cpp:335)
  42338. .ft P
  42339. .fi
  42340. .UNINDENT
  42341. .UNINDENT
  42342. .sp
  42343. The solution to this would be to check the number of files allowed to be
  42344. opened by the user running salt\-master (root by default):
  42345. .INDENT 0.0
  42346. .INDENT 3.5
  42347. .sp
  42348. .nf
  42349. .ft C
  42350. [root@salt\-master ~]# ulimit \-n
  42351. 1024
  42352. .ft P
  42353. .fi
  42354. .UNINDENT
  42355. .UNINDENT
  42356. .sp
  42357. If this value is not equal to at least twice the number of minions, then it
  42358. will need to be raised. For example, in an environment with 1800 minions, the
  42359. \fBnofile\fP limit should be set to no less than 3600. This can be done by
  42360. creating the file \fB/etc/security/limits.d/99\-salt.conf\fP, with the following
  42361. contents:
  42362. .INDENT 0.0
  42363. .INDENT 3.5
  42364. .sp
  42365. .nf
  42366. .ft C
  42367. root hard nofile 4096
  42368. root soft nofile 4096
  42369. .ft P
  42370. .fi
  42371. .UNINDENT
  42372. .UNINDENT
  42373. .sp
  42374. Replace \fBroot\fP with the user under which the master runs, if different.
  42375. .sp
  42376. If your master does not have an \fB/etc/security/limits.d\fP directory, the lines
  42377. can simply be appended to \fB/etc/security/limits.conf\fP\&.
  42378. .sp
  42379. As with any change to resource limits, it is best to stay logged into your
  42380. current shell and open another shell to run \fBulimit \-n\fP again and verify that
  42381. the changes were applied correctly. Additionally, if your master is running
  42382. upstart, it may be necessary to specify the \fBnofile\fP limit in
  42383. \fB/etc/default/salt\-master\fP if upstart isn\(aqt respecting your resource limits:
  42384. .INDENT 0.0
  42385. .INDENT 3.5
  42386. .sp
  42387. .nf
  42388. .ft C
  42389. limit nofile 4096 4096
  42390. .ft P
  42391. .fi
  42392. .UNINDENT
  42393. .UNINDENT
  42394. .sp
  42395. \fBNOTE:\fP
  42396. .INDENT 0.0
  42397. .INDENT 3.5
  42398. The above is simply an example of how to set these values, and you may
  42399. wish to increase them even further if your Salt master is doing more than
  42400. just running Salt.
  42401. .UNINDENT
  42402. .UNINDENT
  42403. .SS Salt Master Stops Responding
  42404. .sp
  42405. There are known bugs with ZeroMQ versions less than 2.1.11 which can cause the
  42406. Salt master to not respond properly. If you\(aqre running a ZeroMQ version greater
  42407. than or equal to 2.1.9, you can work around the bug by setting the sysctls
  42408. \fBnet.core.rmem_max\fP and \fBnet.core.wmem_max\fP to 16777216. Next, set the third
  42409. field in \fBnet.ipv4.tcp_rmem\fP and \fBnet.ipv4.tcp_wmem\fP to at least 16777216.
  42410. .sp
  42411. You can do it manually with something like:
  42412. .INDENT 0.0
  42413. .INDENT 3.5
  42414. .sp
  42415. .nf
  42416. .ft C
  42417. # echo 16777216 > /proc/sys/net/core/rmem_max
  42418. # echo 16777216 > /proc/sys/net/core/wmem_max
  42419. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
  42420. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem
  42421. .ft P
  42422. .fi
  42423. .UNINDENT
  42424. .UNINDENT
  42425. .sp
  42426. Or with the following Salt state:
  42427. .INDENT 0.0
  42428. .INDENT 3.5
  42429. .sp
  42430. .nf
  42431. .ft C
  42432. net.core.rmem_max:
  42433. sysctl:
  42434. \- present
  42435. \- value: 16777216
  42436. net.core.wmem_max:
  42437. sysctl:
  42438. \- present
  42439. \- value: 16777216
  42440. net.ipv4.tcp_rmem:
  42441. sysctl:
  42442. \- present
  42443. \- value: 4096 87380 16777216
  42444. net.ipv4.tcp_wmem:
  42445. sysctl:
  42446. \- present
  42447. \- value: 4096 87380 16777216
  42448. .ft P
  42449. .fi
  42450. .UNINDENT
  42451. .UNINDENT
  42452. .SS Live Python Debug Output
  42453. .sp
  42454. If the master seems to be unresponsive, a SIGUSR1 can be passed to the
  42455. salt\-master threads to display what piece of code is executing. This debug
  42456. information can be invaluable in tracking down bugs.
  42457. .sp
  42458. To pass a SIGUSR1 to the master, first make sure the master is running in the
  42459. foreground. Stop the service if it is running as a daemon, and start it in the
  42460. foreground like so:
  42461. .INDENT 0.0
  42462. .INDENT 3.5
  42463. .sp
  42464. .nf
  42465. .ft C
  42466. # salt\-master \-l debug
  42467. .ft P
  42468. .fi
  42469. .UNINDENT
  42470. .UNINDENT
  42471. .sp
  42472. Then pass the signal to the master when it seems to be unresponsive:
  42473. .INDENT 0.0
  42474. .INDENT 3.5
  42475. .sp
  42476. .nf
  42477. .ft C
  42478. # killall \-SIGUSR1 salt\-master
  42479. .ft P
  42480. .fi
  42481. .UNINDENT
  42482. .UNINDENT
  42483. .sp
  42484. When filing an issue or sending questions to the mailing list for a problem
  42485. with an unresponsive daemon, be sure to include this information if possible.
  42486. .SS Live Salt\-Master Profiling
  42487. .sp
  42488. When faced with performance problems one can turn on master process profiling by
  42489. sending it SIGUSR2.
  42490. .INDENT 0.0
  42491. .INDENT 3.5
  42492. .sp
  42493. .nf
  42494. .ft C
  42495. # killall \-SIGUSR2 salt\-master
  42496. .ft P
  42497. .fi
  42498. .UNINDENT
  42499. .UNINDENT
  42500. .sp
  42501. This will activate \fByappi\fP profiler inside salt\-master code, then after some
  42502. time one must send SIGUSR2 again to stop profiling and save results to file. If
  42503. run in foreground salt\-master will report filename for the results, which are
  42504. usually located under \fB/tmp\fP on Unix\-based OSes and \fBc:\etemp\fP on windows.
  42505. .sp
  42506. Make sure you have yappi installed.
  42507. .sp
  42508. Results can then be analyzed with \fI\%kcachegrind\fP or similar tool.
  42509. .sp
  42510. Make sure you have yappi installed.
  42511. .sp
  42512. On Windows, in the absence of kcachegrind, a simple file\-based workflow to create
  42513. profiling graphs could use \fI\%gprof2dot\fP, \fI\%graphviz\fP and this batch file:
  42514. .INDENT 0.0
  42515. .INDENT 3.5
  42516. .sp
  42517. .nf
  42518. .ft C
  42519. ::
  42520. :: Converts callgrind* profiler output to *.pdf, via *.dot
  42521. ::
  42522. @echo off
  42523. del *.dot.pdf
  42524. for /r %%f in (callgrind*) do (
  42525. echo "%%f"
  42526. gprof2dot.exe \-f callgrind \-\-show\-samples "%%f" \-o "%%f.dot"
  42527. dot.exe "%%f.dot" \-Tpdf \-O
  42528. del "%%f.dot"
  42529. )
  42530. .ft P
  42531. .fi
  42532. .UNINDENT
  42533. .UNINDENT
  42534. .SS Commands Time Out or Do Not Return Output
  42535. .sp
  42536. Depending on your OS (this is most common on Ubuntu due to apt\-get) you may
  42537. sometimes encounter times where a \fBstate.apply\fP, or other long running commands do not return
  42538. output.
  42539. .sp
  42540. By default the timeout is set to 5 seconds. The timeout value can easily be
  42541. increased by modifying the \fBtimeout\fP line within your \fB/etc/salt/master\fP
  42542. configuration file.
  42543. .sp
  42544. Having keys accepted for Salt minions that no longer exist or are not reachable
  42545. also increases the possibility of timeouts, since the Salt master waits for
  42546. those systems to return command results.
  42547. .SS Passing the \-c Option to Salt Returns a Permissions Error
  42548. .sp
  42549. Using the \fB\-c\fP option with the Salt command modifies the configuration
  42550. directory. When the configuration file is read it will still base data off of
  42551. the \fBroot_dir\fP setting. This can result in unintended behavior if you are
  42552. expecting files such as \fB/etc/salt/pki\fP to be pulled from the location
  42553. specified with \fB\-c\fP\&. Modify the \fBroot_dir\fP setting to address this
  42554. behavior.
  42555. .SS Salt Master Doesn\(aqt Return Anything While Running jobs
  42556. .sp
  42557. When a command being run via Salt takes a very long time to return
  42558. (package installations, certain scripts, etc.) the master may drop you back
  42559. to the shell. In most situations the job is still running but Salt has
  42560. exceeded the set timeout before returning. Querying the job queue will
  42561. provide the data of the job but is inconvenient. This can be resolved by
  42562. either manually using the \fB\-t\fP option to set a longer timeout when running
  42563. commands (by default it is 5 seconds) or by modifying the master
  42564. configuration file: \fB/etc/salt/master\fP and setting the \fBtimeout\fP value to
  42565. change the default timeout for all commands, and then restarting the
  42566. salt\-master service.
  42567. .sp
  42568. If a \fBstate.apply\fP run takes too long, you can find a bottleneck by adding the
  42569. \fB\-\-out=profile\fP option.
  42570. .SS Salt Master Auth Flooding
  42571. .sp
  42572. In large installations, care must be taken not to overwhealm the master with
  42573. authentication requests. Several options can be set on the master which
  42574. mitigate the chances of an authentication flood from causing an interruption in
  42575. service.
  42576. .sp
  42577. \fBNOTE:\fP
  42578. .INDENT 0.0
  42579. .INDENT 3.5
  42580. recon_default:
  42581. .sp
  42582. The average number of seconds to wait between reconnection attempts.
  42583. .INDENT 0.0
  42584. .TP
  42585. .B recon_max:
  42586. The maximum number of seconds to wait between reconnection attempts.
  42587. .TP
  42588. .B recon_randomize:
  42589. A flag to indicate whether the recon_default value should be randomized.
  42590. .TP
  42591. .B acceptance_wait_time:
  42592. The number of seconds to wait for a reply to each authentication request.
  42593. .TP
  42594. .B random_reauth_delay:
  42595. The range of seconds across which the minions should attempt to randomize
  42596. authentication attempts.
  42597. .TP
  42598. .B auth_timeout:
  42599. The total time to wait for the authentication process to complete, regardless
  42600. of the number of attempts.
  42601. .UNINDENT
  42602. .UNINDENT
  42603. .UNINDENT
  42604. .SS Running states locally
  42605. .sp
  42606. To debug the states, you can use call locally.
  42607. .INDENT 0.0
  42608. .INDENT 3.5
  42609. .sp
  42610. .nf
  42611. .ft C
  42612. salt\-call \-l trace \-\-local state.highstate
  42613. .ft P
  42614. .fi
  42615. .UNINDENT
  42616. .UNINDENT
  42617. .sp
  42618. The top.sls file is used to map what SLS modules get loaded onto what minions via the state system.
  42619. .sp
  42620. It is located in the file defined in the \fBfile_roots\fP variable of the salt master
  42621. configuration file which is defined by found in \fBCONFIG_DIR/master\fP, normally \fB/etc/salt/master\fP
  42622. .sp
  42623. The default configuration for the \fBfile_roots\fP is:
  42624. .INDENT 0.0
  42625. .INDENT 3.5
  42626. .sp
  42627. .nf
  42628. .ft C
  42629. file_roots:
  42630. base:
  42631. \- /srv/salt
  42632. .ft P
  42633. .fi
  42634. .UNINDENT
  42635. .UNINDENT
  42636. .sp
  42637. So the top file is defaulted to the location \fB/srv/salt/top.sls\fP
  42638. .SS Salt Master Umask
  42639. .sp
  42640. The salt master uses a cache to track jobs as they are published and returns come back.
  42641. The recommended umask for a salt\-master is \fI022\fP, which is the default for most users
  42642. on a system. Incorrect umasks can result in permission\-denied errors when the master
  42643. tries to access files in its cache.
  42644. .SS Troubleshooting the Salt Minion
  42645. .sp
  42646. In the event that your Salt minion is having issues, a variety of solutions
  42647. and suggestions are available. Please refer to the following links for more information:
  42648. .SS Troubleshooting the Salt Minion
  42649. .SS Running in the Foreground
  42650. .sp
  42651. A great deal of information is available via the debug logging system, if you
  42652. are having issues with minions connecting or not starting run the minion in
  42653. the foreground:
  42654. .INDENT 0.0
  42655. .INDENT 3.5
  42656. .sp
  42657. .nf
  42658. .ft C
  42659. # salt\-minion \-l debug
  42660. .ft P
  42661. .fi
  42662. .UNINDENT
  42663. .UNINDENT
  42664. .sp
  42665. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42666. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42667. run them in the foreground.
  42668. .SS What Ports does the Minion Need Open?
  42669. .sp
  42670. No ports need to be opened on the minion, as it makes outbound connections to
  42671. the master. If you\(aqve put both your Salt master and minion in debug mode and
  42672. don\(aqt see an acknowledgment that your minion has connected, it could very well
  42673. be a firewall interfering with the connection. See our firewall
  42674. configuration page for help opening the firewall
  42675. on various platforms.
  42676. .sp
  42677. If you have netcat installed, you can check port connectivity from the minion
  42678. with the \fBnc\fP command:
  42679. .INDENT 0.0
  42680. .INDENT 3.5
  42681. .sp
  42682. .nf
  42683. .ft C
  42684. $ nc \-v \-z salt.master.ip.addr 4505
  42685. Connection to salt.master.ip.addr 4505 port [tcp/unknown] succeeded!
  42686. $ nc \-v \-z salt.master.ip.addr 4506
  42687. Connection to salt.master.ip.addr 4506 port [tcp/unknown] succeeded!
  42688. .ft P
  42689. .fi
  42690. .UNINDENT
  42691. .UNINDENT
  42692. .sp
  42693. The \fI\%Nmap\fP utility can also be used to check if these ports are open:
  42694. .INDENT 0.0
  42695. .INDENT 3.5
  42696. .sp
  42697. .nf
  42698. .ft C
  42699. # nmap \-sS \-q \-p 4505\-4506 salt.master.ip.addr
  42700. Starting Nmap 6.40 ( http://nmap.org ) at 2013\-12\-29 19:44 CST
  42701. Nmap scan report for salt.master.ip.addr (10.0.0.10)
  42702. Host is up (0.0026s latency).
  42703. PORT STATE SERVICE
  42704. 4505/tcp open unknown
  42705. 4506/tcp open unknown
  42706. MAC Address: 00:11:22:AA:BB:CC (Intel)
  42707. Nmap done: 1 IP address (1 host up) scanned in 1.64 seconds
  42708. .ft P
  42709. .fi
  42710. .UNINDENT
  42711. .UNINDENT
  42712. .sp
  42713. If you\(aqve opened the correct TCP ports and still aren\(aqt seeing connections,
  42714. check that no additional access control system such as \fI\%SELinux\fP or
  42715. \fI\%AppArmor\fP is blocking Salt. Tools like \fI\%tcptraceroute\fP can also be used
  42716. to determine if an intermediate device or firewall is blocking the needed
  42717. TCP ports.
  42718. .SS Using salt\-call
  42719. .sp
  42720. The \fBsalt\-call\fP command was originally developed for aiding in the
  42721. development of new Salt modules. Since then, many applications have been
  42722. developed for running any Salt module locally on a minion. These range from the
  42723. original intent of salt\-call (development assistance), to gathering more
  42724. verbose output from calls like \fBstate.apply\fP\&.
  42725. .sp
  42726. When initially creating your state tree, it is generally recommended to invoke
  42727. highstates by running \fBstate.apply\fP directly
  42728. from the minion with \fBsalt\-call\fP, rather than remotely from the master. This
  42729. displays far more information about the execution than calling it remotely. For
  42730. even more verbosity, increase the loglevel using the \fB\-l\fP argument:
  42731. .INDENT 0.0
  42732. .INDENT 3.5
  42733. .sp
  42734. .nf
  42735. .ft C
  42736. # salt\-call \-l debug state.apply
  42737. .ft P
  42738. .fi
  42739. .UNINDENT
  42740. .UNINDENT
  42741. .sp
  42742. The main difference between using \fBsalt\fP and using \fBsalt\-call\fP is that
  42743. \fBsalt\-call\fP is run from the minion, and it only runs the selected function on
  42744. that minion. By contrast, \fBsalt\fP is run from the master, and requires you to
  42745. specify the minions on which to run the command using salt\(aqs targeting
  42746. system\&.
  42747. .SS Live Python Debug Output
  42748. .sp
  42749. If the minion seems to be unresponsive, a SIGUSR1 can be passed to the process
  42750. to display what piece of code is executing. This debug information can be
  42751. invaluable in tracking down bugs.
  42752. .sp
  42753. To pass a SIGUSR1 to the minion, first make sure the minion is running in the
  42754. foreground. Stop the service if it is running as a daemon, and start it in the
  42755. foreground like so:
  42756. .INDENT 0.0
  42757. .INDENT 3.5
  42758. .sp
  42759. .nf
  42760. .ft C
  42761. # salt\-minion \-l debug
  42762. .ft P
  42763. .fi
  42764. .UNINDENT
  42765. .UNINDENT
  42766. .sp
  42767. Then pass the signal to the minion when it seems to be unresponsive:
  42768. .INDENT 0.0
  42769. .INDENT 3.5
  42770. .sp
  42771. .nf
  42772. .ft C
  42773. # killall \-SIGUSR1 salt\-minion
  42774. .ft P
  42775. .fi
  42776. .UNINDENT
  42777. .UNINDENT
  42778. .sp
  42779. When filing an issue or sending questions to the mailing list for a problem
  42780. with an unresponsive daemon, be sure to include this information if possible.
  42781. .SS Multiprocessing in Execution Modules
  42782. .sp
  42783. As is outlined in github issue #6300, Salt cannot use python\(aqs multiprocessing
  42784. pipes and queues from execution modules. Multiprocessing from the execution
  42785. modules is perfectly viable, it is just necessary to use Salt\(aqs event system
  42786. to communicate back with the process.
  42787. .sp
  42788. The reason for this difficulty is that python attempts to pickle all objects in
  42789. memory when communicating, and it cannot pickle function objects. Since the
  42790. Salt loader system creates and manages function objects this causes the pickle
  42791. operation to fail.
  42792. .SS Salt Minion Doesn\(aqt Return Anything While Running Jobs Locally
  42793. .sp
  42794. When a command being run via Salt takes a very long time to return
  42795. (package installations, certain scripts, etc.) the minion may drop you back
  42796. to the shell. In most situations the job is still running but Salt has
  42797. exceeded the set timeout before returning. Querying the job queue will
  42798. provide the data of the job but is inconvenient. This can be resolved by
  42799. either manually using the \fB\-t\fP option to set a longer timeout when running
  42800. commands (by default it is 5 seconds) or by modifying the minion
  42801. configuration file: \fB/etc/salt/minion\fP and setting the \fBtimeout\fP value to
  42802. change the default timeout for all commands, and then restarting the
  42803. salt\-minion service.
  42804. .sp
  42805. \fBNOTE:\fP
  42806. .INDENT 0.0
  42807. .INDENT 3.5
  42808. Modifying the minion timeout value is not required when running commands
  42809. from a Salt Master. It is only required when running commands locally on
  42810. the minion.
  42811. .UNINDENT
  42812. .UNINDENT
  42813. .sp
  42814. If a \fBstate.apply\fP run takes too long, you can find a bottleneck by adding the
  42815. \fB\-\-out=profile\fP option.
  42816. .SS Running in the Foreground
  42817. .sp
  42818. A great deal of information is available via the debug logging system, if you
  42819. are having issues with minions connecting or not starting run the minion and/or
  42820. master in the foreground:
  42821. .INDENT 0.0
  42822. .INDENT 3.5
  42823. .sp
  42824. .nf
  42825. .ft C
  42826. salt\-master \-l debug
  42827. salt\-minion \-l debug
  42828. .ft P
  42829. .fi
  42830. .UNINDENT
  42831. .UNINDENT
  42832. .sp
  42833. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42834. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42835. run them in the foreground.
  42836. .SS What Ports do the Master and Minion Need Open?
  42837. .sp
  42838. No ports need to be opened up on each minion. For the master, TCP ports 4505
  42839. and 4506 need to be open. If you\(aqve put both your Salt master and minion in
  42840. debug mode and don\(aqt see an acknowledgment that your minion has connected,
  42841. it could very well be a firewall.
  42842. .sp
  42843. You can check port connectivity from the minion with the nc command:
  42844. .INDENT 0.0
  42845. .INDENT 3.5
  42846. .sp
  42847. .nf
  42848. .ft C
  42849. nc \-v \-z salt.master.ip 4505
  42850. nc \-v \-z salt.master.ip 4506
  42851. .ft P
  42852. .fi
  42853. .UNINDENT
  42854. .UNINDENT
  42855. .sp
  42856. There is also a firewall configuration
  42857. document that might help as well.
  42858. .sp
  42859. If you\(aqve enabled the right TCP ports on your operating system or Linux
  42860. distribution\(aqs firewall and still aren\(aqt seeing connections, check that no
  42861. additional access control system such as \fI\%SELinux\fP or \fI\%AppArmor\fP is blocking
  42862. Salt.
  42863. .SS Using salt\-call
  42864. .sp
  42865. The \fBsalt\-call\fP command was originally developed for aiding in the development
  42866. of new Salt modules. Since then, many applications have been developed for
  42867. running any Salt module locally on a minion. These range from the original
  42868. intent of salt\-call, development assistance, to gathering more verbose output
  42869. from calls like \fBstate.apply\fP\&.
  42870. .sp
  42871. When initially creating your state tree, it is generally recommended to invoke
  42872. \fBstate.apply\fP directly from the minion with
  42873. \fBsalt\-call\fP, rather than remotely from the master. This displays far more
  42874. information about the execution than calling it remotely. For even more
  42875. verbosity, increase the loglevel using the \fB\-l\fP argument:
  42876. .INDENT 0.0
  42877. .INDENT 3.5
  42878. .sp
  42879. .nf
  42880. .ft C
  42881. salt\-call \-l debug state.apply
  42882. .ft P
  42883. .fi
  42884. .UNINDENT
  42885. .UNINDENT
  42886. .sp
  42887. The main difference between using \fBsalt\fP and using \fBsalt\-call\fP is that
  42888. \fBsalt\-call\fP is run from the minion, and it only runs the selected function on
  42889. that minion. By contrast, \fBsalt\fP is run from the master, and requires you to
  42890. specify the minions on which to run the command using salt\(aqs targeting
  42891. system\&.
  42892. .SS Too many open files
  42893. .sp
  42894. The salt\-master needs at least 2 sockets per host that connects to it, one for
  42895. the Publisher and one for response port. Thus, large installations may, upon
  42896. scaling up the number of minions accessing a given master, encounter:
  42897. .INDENT 0.0
  42898. .INDENT 3.5
  42899. .sp
  42900. .nf
  42901. .ft C
  42902. 12:45:29,289 [salt.master ][INFO ] Starting Salt worker process 38
  42903. Too many open files
  42904. sock != \-1 (tcp_listener.cpp:335)
  42905. .ft P
  42906. .fi
  42907. .UNINDENT
  42908. .UNINDENT
  42909. .sp
  42910. The solution to this would be to check the number of files allowed to be
  42911. opened by the user running salt\-master (root by default):
  42912. .INDENT 0.0
  42913. .INDENT 3.5
  42914. .sp
  42915. .nf
  42916. .ft C
  42917. [root@salt\-master ~]# ulimit \-n
  42918. 1024
  42919. .ft P
  42920. .fi
  42921. .UNINDENT
  42922. .UNINDENT
  42923. .sp
  42924. And modify that value to be at least equal to the number of minions x 2.
  42925. This setting can be changed in limits.conf as the nofile value(s),
  42926. and activated upon new a login of the specified user.
  42927. .sp
  42928. So, an environment with 1800 minions, would need 1800 x 2 = 3600 as a minimum.
  42929. .SS Salt Master Stops Responding
  42930. .sp
  42931. There are known bugs with ZeroMQ versions less than 2.1.11 which can cause the
  42932. Salt master to not respond properly. If you\(aqre running a ZeroMQ version greater
  42933. than or equal to 2.1.9, you can work around the bug by setting the sysctls
  42934. \fBnet.core.rmem_max\fP and \fBnet.core.wmem_max\fP to 16777216. Next, set the third
  42935. field in \fBnet.ipv4.tcp_rmem\fP and \fBnet.ipv4.tcp_wmem\fP to at least 16777216.
  42936. .sp
  42937. You can do it manually with something like:
  42938. .INDENT 0.0
  42939. .INDENT 3.5
  42940. .sp
  42941. .nf
  42942. .ft C
  42943. # echo 16777216 > /proc/sys/net/core/rmem_max
  42944. # echo 16777216 > /proc/sys/net/core/wmem_max
  42945. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
  42946. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem
  42947. .ft P
  42948. .fi
  42949. .UNINDENT
  42950. .UNINDENT
  42951. .sp
  42952. Or with the following Salt state:
  42953. .INDENT 0.0
  42954. .INDENT 3.5
  42955. .sp
  42956. .nf
  42957. .ft C
  42958. net.core.rmem_max:
  42959. sysctl:
  42960. \- present
  42961. \- value: 16777216
  42962. net.core.wmem_max:
  42963. sysctl:
  42964. \- present
  42965. \- value: 16777216
  42966. net.ipv4.tcp_rmem:
  42967. sysctl:
  42968. \- present
  42969. \- value: 4096 87380 16777216
  42970. net.ipv4.tcp_wmem:
  42971. sysctl:
  42972. \- present
  42973. \- value: 4096 87380 16777216
  42974. .ft P
  42975. .fi
  42976. .UNINDENT
  42977. .UNINDENT
  42978. .SS Salt and SELinux
  42979. .sp
  42980. Currently there are no SELinux policies for Salt. For the most part Salt runs
  42981. without issue when SELinux is running in Enforcing mode. This is because when
  42982. the minion executes as a daemon the type context is changed to \fBinitrc_t\fP\&.
  42983. The problem with SELinux arises when using salt\-call or running the minion in
  42984. the foreground, since the type context stays \fBunconfined_t\fP\&.
  42985. .sp
  42986. This problem is generally manifest in the rpm install scripts when using the
  42987. pkg module. Until a full SELinux Policy is available for Salt the solution
  42988. to this issue is to set the execution context of \fBsalt\-call\fP and
  42989. \fBsalt\-minion\fP to rpm_exec_t:
  42990. .INDENT 0.0
  42991. .INDENT 3.5
  42992. .sp
  42993. .nf
  42994. .ft C
  42995. # CentOS 5 and RHEL 5:
  42996. chcon \-t system_u:system_r:rpm_exec_t:s0 /usr/bin/salt\-minion
  42997. chcon \-t system_u:system_r:rpm_exec_t:s0 /usr/bin/salt\-call
  42998. # CentOS 6 and RHEL 6:
  42999. chcon system_u:object_r:rpm_exec_t:s0 /usr/bin/salt\-minion
  43000. chcon system_u:object_r:rpm_exec_t:s0 /usr/bin/salt\-call
  43001. .ft P
  43002. .fi
  43003. .UNINDENT
  43004. .UNINDENT
  43005. .sp
  43006. This works well, because the \fBrpm_exec_t\fP context has very broad control over
  43007. other types.
  43008. .SS Red Hat Enterprise Linux 5
  43009. .sp
  43010. Salt requires Python 2.6 or 2.7. Red Hat Enterprise Linux 5 and its variants
  43011. come with Python 2.4 installed by default. When installing on RHEL 5 from the
  43012. \fI\%EPEL repository\fP this is handled for you. But, if you run Salt from git, be
  43013. advised that its dependencies need to be installed from EPEL and that Salt
  43014. needs to be run with the \fBpython26\fP executable.
  43015. .SS Common YAML Gotchas
  43016. .sp
  43017. An extensive list of YAML idiosyncrasies has been compiled:
  43018. .SS YAML Idiosyncrasies
  43019. .sp
  43020. One of Salt\(aqs strengths, the use of existing serialization systems for
  43021. representing SLS data, can also backfire. \fI\%YAML\fP is a general purpose system
  43022. and there are a number of things that would seem to make sense in an sls
  43023. file that cause YAML issues. It is wise to be aware of these issues. While
  43024. reports or running into them are generally rare they can still crop up at
  43025. unexpected times.
  43026. .SS Spaces vs Tabs
  43027. .sp
  43028. \fI\%YAML uses spaces\fP, period. Do not use tabs in your SLS files! If strange
  43029. errors are coming up in rendering SLS files, make sure to check that
  43030. no tabs have crept in! In Vim, after enabling search highlighting
  43031. with: \fB:set hlsearch\fP, you can check with the following key sequence in
  43032. normal mode(you can hit \fIESC\fP twice to be sure): \fB/\fP, \fICtrl\-v\fP, \fITab\fP, then
  43033. hit \fIEnter\fP\&. Also, you can convert tabs to 2 spaces by these commands in Vim:
  43034. \fB:set tabstop=2 expandtab\fP and then \fB:retab\fP\&.
  43035. .SS Indentation
  43036. .sp
  43037. The suggested syntax for YAML files is to use 2 spaces for indentation,
  43038. but YAML will follow whatever indentation system that the individual file
  43039. uses. Indentation of two spaces works very well for SLS files given the
  43040. fact that the data is uniform and not deeply nested.
  43041. .SS Nested Dictionaries
  43042. .sp
  43043. When dictionaries are nested within other data structures (particularly lists),
  43044. the indentation logic sometimes changes. Examples of where this might happen
  43045. include \fBcontext\fP and \fBdefault\fP options from the \fBfile.managed\fP state:
  43046. .INDENT 0.0
  43047. .INDENT 3.5
  43048. .sp
  43049. .nf
  43050. .ft C
  43051. /etc/http/conf/http.conf:
  43052. file:
  43053. \- managed
  43054. \- source: salt://apache/http.conf
  43055. \- user: root
  43056. \- group: root
  43057. \- mode: 644
  43058. \- template: jinja
  43059. \- context:
  43060. custom_var: "override"
  43061. \- defaults:
  43062. custom_var: "default value"
  43063. other_var: 123
  43064. .ft P
  43065. .fi
  43066. .UNINDENT
  43067. .UNINDENT
  43068. .sp
  43069. Notice that while the indentation is two spaces per level, for the values under
  43070. the \fBcontext\fP and \fBdefaults\fP options there is a four\-space indent. If only
  43071. two spaces are used to indent, then those keys will be considered part of the
  43072. same dictionary that contains the \fBcontext\fP key, and so the data will not be
  43073. loaded correctly. If using a double indent is not desirable, then a
  43074. deeply\-nested dict can be declared with curly braces:
  43075. .INDENT 0.0
  43076. .INDENT 3.5
  43077. .sp
  43078. .nf
  43079. .ft C
  43080. /etc/http/conf/http.conf:
  43081. file:
  43082. \- managed
  43083. \- source: salt://apache/http.conf
  43084. \- user: root
  43085. \- group: root
  43086. \- mode: 644
  43087. \- template: jinja
  43088. \- context: {
  43089. custom_var: "override" }
  43090. \- defaults: {
  43091. custom_var: "default value",
  43092. other_var: 123 }
  43093. .ft P
  43094. .fi
  43095. .UNINDENT
  43096. .UNINDENT
  43097. .sp
  43098. Here is a more concrete example of how YAML actually handles these
  43099. indentations, using the Python interpreter on the command line:
  43100. .INDENT 0.0
  43101. .INDENT 3.5
  43102. .sp
  43103. .nf
  43104. .ft C
  43105. >>> import yaml
  43106. >>> yaml.safe_load(\(aq\(aq\(aqmystate:
  43107. \&... file.managed:
  43108. \&... \- context:
  43109. \&... some: var\(aq\(aq\(aq)
  43110. {\(aqmystate\(aq: {\(aqfile.managed\(aq: [{\(aqcontext\(aq: {\(aqsome\(aq: \(aqvar\(aq}}]}}
  43111. >>> yaml.safe_load(\(aq\(aq\(aqmystate:
  43112. \&... file.managed:
  43113. \&... \- context:
  43114. \&... some: var\(aq\(aq\(aq)
  43115. {\(aqmystate\(aq: {\(aqfile.managed\(aq: [{\(aqsome\(aq: \(aqvar\(aq, \(aqcontext\(aq: None}]}}
  43116. .ft P
  43117. .fi
  43118. .UNINDENT
  43119. .UNINDENT
  43120. .sp
  43121. Note that in the second example, \fBsome\fP is added as another key in the same
  43122. dictionary, whereas in the first example, it\(aqs the start of a new dictionary.
  43123. That\(aqs the distinction. \fBcontext\fP is a common example because it is a keyword
  43124. arg for many functions, and should contain a dictionary.
  43125. .SS True/False, Yes/No, On/Off
  43126. .sp
  43127. PyYAML will load these values as boolean \fBTrue\fP or \fBFalse\fP\&. Un\-capitalized
  43128. versions will also be loaded as booleans (\fBtrue\fP, \fBfalse\fP, \fByes\fP, \fBno\fP,
  43129. \fBon\fP, and \fBoff\fP). This can be especially problematic when constructing
  43130. Pillar data. Make sure that your Pillars which need to use the string versions
  43131. of these values are enclosed in quotes. Pillars will be parsed twice by salt,
  43132. so you\(aqll need to wrap your values in multiple quotes, including double quotation
  43133. marks (\fB" "\fP) and single quotation marks (\fB\(aq \(aq\fP). Note that spaces are included
  43134. in the quotation type examples for clarity.
  43135. .sp
  43136. Multiple quoting examples looks like this:
  43137. .INDENT 0.0
  43138. .INDENT 3.5
  43139. .sp
  43140. .nf
  43141. .ft C
  43142. \- \(aq"false"\(aq
  43143. \- "\(aqTrue\(aq"
  43144. \- "\(aqYES\(aq"
  43145. \- \(aq"No"\(aq
  43146. .ft P
  43147. .fi
  43148. .UNINDENT
  43149. .UNINDENT
  43150. .sp
  43151. \fBNOTE:\fP
  43152. .INDENT 0.0
  43153. .INDENT 3.5
  43154. When using multiple quotes in this manner, they must be different. Using \fB"" ""\fP
  43155. or \fB\(aq\(aq \(aq\(aq\fP won\(aqt work in this case (spaces are included in examples for clarity).
  43156. .UNINDENT
  43157. .UNINDENT
  43158. .SS The \(aq%\(aq Sign
  43159. .sp
  43160. The \fI%\fP symbol has a special meaning in YAML, it needs to be passed as a
  43161. string literal:
  43162. .INDENT 0.0
  43163. .INDENT 3.5
  43164. .sp
  43165. .nf
  43166. .ft C
  43167. cheese:
  43168. ssh_auth.present:
  43169. \- user: tbortels
  43170. \- source: salt://ssh_keys/chease.pub
  43171. \- config: \(aq%h/.ssh/authorized_keys\(aq
  43172. .ft P
  43173. .fi
  43174. .UNINDENT
  43175. .UNINDENT
  43176. .SS Time Expressions
  43177. .sp
  43178. PyYAML will load a time expression as the integer value of that, assuming
  43179. \fBHH:MM\fP\&. So for example, \fB12:00\fP is loaded by PyYAML as \fB720\fP\&. An
  43180. excellent explanation for why can be found \fI\%here\fP\&.
  43181. .sp
  43182. To keep time expressions like this from being loaded as integers, always quote
  43183. them.
  43184. .sp
  43185. \fBNOTE:\fP
  43186. .INDENT 0.0
  43187. .INDENT 3.5
  43188. When using a jinja \fBload_yaml\fP map, items must be quoted twice. For
  43189. example:
  43190. .INDENT 0.0
  43191. .INDENT 3.5
  43192. .sp
  43193. .nf
  43194. .ft C
  43195. {% load_yaml as wsus_schedule %}
  43196. FRI_10:
  43197. time: \(aq"23:00"\(aq
  43198. day: 6 \- Every Friday
  43199. SAT_10:
  43200. time: \(aq"06:00"\(aq
  43201. day: 7 \- Every Saturday
  43202. SAT_20:
  43203. time: \(aq"14:00"\(aq
  43204. day: 7 \- Every Saturday
  43205. SAT_30:
  43206. time: \(aq"22:00"\(aq
  43207. day: 7 \- Every Saturday
  43208. SUN_10:
  43209. time: \(aq"06:00"\(aq
  43210. day: 1 \- Every Sunday
  43211. {% endload %}
  43212. .ft P
  43213. .fi
  43214. .UNINDENT
  43215. .UNINDENT
  43216. .UNINDENT
  43217. .UNINDENT
  43218. .SS YAML does not like "Double Short Decs"
  43219. .sp
  43220. If I can find a way to make YAML accept "Double Short Decs" then I will, since
  43221. I think that double short decs would be awesome. So what is a "Double Short
  43222. Dec"? It is when you declare a multiple short decs in one ID. Here is a
  43223. standard short dec, it works great:
  43224. .INDENT 0.0
  43225. .INDENT 3.5
  43226. .sp
  43227. .nf
  43228. .ft C
  43229. vim:
  43230. pkg.installed
  43231. .ft P
  43232. .fi
  43233. .UNINDENT
  43234. .UNINDENT
  43235. .sp
  43236. The short dec means that there are no arguments to pass, so it is not required
  43237. to add any arguments, and it can save space.
  43238. .sp
  43239. YAML though, gets upset when declaring multiple short decs, for the record...
  43240. .sp
  43241. THIS DOES NOT WORK:
  43242. .INDENT 0.0
  43243. .INDENT 3.5
  43244. .sp
  43245. .nf
  43246. .ft C
  43247. vim:
  43248. pkg.installed
  43249. user.present
  43250. .ft P
  43251. .fi
  43252. .UNINDENT
  43253. .UNINDENT
  43254. .sp
  43255. Similarly declaring a short dec in the same ID dec as a standard dec does not
  43256. work either...
  43257. .sp
  43258. ALSO DOES NOT WORK:
  43259. .INDENT 0.0
  43260. .INDENT 3.5
  43261. .sp
  43262. .nf
  43263. .ft C
  43264. fred:
  43265. user.present
  43266. ssh_auth.present:
  43267. \- name: AAAAB3NzaC...
  43268. \- user: fred
  43269. \- enc: ssh\-dss
  43270. \- require:
  43271. \- user: fred
  43272. .ft P
  43273. .fi
  43274. .UNINDENT
  43275. .UNINDENT
  43276. .sp
  43277. The correct way is to define them like this:
  43278. .INDENT 0.0
  43279. .INDENT 3.5
  43280. .sp
  43281. .nf
  43282. .ft C
  43283. vim:
  43284. pkg.installed: []
  43285. user.present: []
  43286. fred:
  43287. user.present: []
  43288. ssh_auth.present:
  43289. \- name: AAAAB3NzaC...
  43290. \- user: fred
  43291. \- enc: ssh\-dss
  43292. \- require:
  43293. \- user: fred
  43294. .ft P
  43295. .fi
  43296. .UNINDENT
  43297. .UNINDENT
  43298. .sp
  43299. Alternatively, they can be defined the "old way", or with multiple
  43300. "full decs":
  43301. .INDENT 0.0
  43302. .INDENT 3.5
  43303. .sp
  43304. .nf
  43305. .ft C
  43306. vim:
  43307. pkg:
  43308. \- installed
  43309. user:
  43310. \- present
  43311. fred:
  43312. user:
  43313. \- present
  43314. ssh_auth:
  43315. \- present
  43316. \- name: AAAAB3NzaC...
  43317. \- user: fred
  43318. \- enc: ssh\-dss
  43319. \- require:
  43320. \- user: fred
  43321. .ft P
  43322. .fi
  43323. .UNINDENT
  43324. .UNINDENT
  43325. .SS YAML supports only plain ASCII
  43326. .sp
  43327. According to YAML specification, only ASCII characters can be used.
  43328. .sp
  43329. Within double\-quotes, special characters may be represented with C\-style
  43330. escape sequences starting with a backslash ( \e ).
  43331. .sp
  43332. Examples:
  43333. .INDENT 0.0
  43334. .INDENT 3.5
  43335. .sp
  43336. .nf
  43337. .ft C
  43338. \- micro: "\eu00b5"
  43339. \- copyright: "\eu00A9"
  43340. \- A: "\ex41"
  43341. \- alpha: "\eu0251"
  43342. \- Alef: "\eu05d0"
  43343. .ft P
  43344. .fi
  43345. .UNINDENT
  43346. .UNINDENT
  43347. .sp
  43348. List of usable \fI\%Unicode characters\fP will help you to identify correct numbers.
  43349. .sp
  43350. Python can also be used to discover the Unicode number for a character:
  43351. .INDENT 0.0
  43352. .INDENT 3.5
  43353. .sp
  43354. .nf
  43355. .ft C
  43356. repr(u"Text with wrong characters i need to figure out")
  43357. .ft P
  43358. .fi
  43359. .UNINDENT
  43360. .UNINDENT
  43361. .sp
  43362. This shell command can find wrong characters in your SLS files:
  43363. .INDENT 0.0
  43364. .INDENT 3.5
  43365. .sp
  43366. .nf
  43367. .ft C
  43368. find . \-name \(aq*.sls\(aq \-exec grep \-\-color=\(aqauto\(aq \-P \-n \(aq[^\ex00\-\ex7F]\(aq \e{} \e;
  43369. .ft P
  43370. .fi
  43371. .UNINDENT
  43372. .UNINDENT
  43373. .sp
  43374. Alternatively you can toggle the \fIyaml_utf8\fP setting in your master configuration
  43375. file. This is still an experimental setting but it should manage the right
  43376. encoding conversion in salt after yaml states compilations.
  43377. .SS Underscores stripped in Integer Definitions
  43378. .sp
  43379. If a definition only includes numbers and underscores, it is parsed by YAML as
  43380. an integer and all underscores are stripped. To ensure the object becomes a
  43381. string, it should be surrounded by quotes. \fI\%More information here\fP\&.
  43382. .sp
  43383. Here\(aqs an example:
  43384. .INDENT 0.0
  43385. .INDENT 3.5
  43386. .sp
  43387. .nf
  43388. .ft C
  43389. >>> import yaml
  43390. >>> yaml.safe_load(\(aq2013_05_10\(aq)
  43391. 20130510
  43392. >>> yaml.safe_load(\(aq"2013_05_10"\(aq)
  43393. \(aq2013_05_10\(aq
  43394. .ft P
  43395. .fi
  43396. .UNINDENT
  43397. .UNINDENT
  43398. .SS Automatic \fBdatetime\fP conversion
  43399. .sp
  43400. If there is a value in a YAML file formatted \fB2014\-01\-20 14:23:23\fP or
  43401. similar, YAML will automatically convert this to a Python \fBdatetime\fP object.
  43402. These objects are not msgpack serializable, and so may break core salt
  43403. functionality. If values such as these are needed in a salt YAML file
  43404. (specifically a configuration file), they should be formatted with surrounding
  43405. strings to force YAML to serialize them as strings:
  43406. .INDENT 0.0
  43407. .INDENT 3.5
  43408. .sp
  43409. .nf
  43410. .ft C
  43411. >>> import yaml
  43412. >>> yaml.safe_load(\(aq2014\-01\-20 14:23:23\(aq)
  43413. datetime.datetime(2014, 1, 20, 14, 23, 23)
  43414. >>> yaml.safe_load(\(aq"2014\-01\-20 14:23:23"\(aq)
  43415. \(aq2014\-01\-20 14:23:23\(aq
  43416. .ft P
  43417. .fi
  43418. .UNINDENT
  43419. .UNINDENT
  43420. .sp
  43421. Additionally, numbers formatted like \fBXXXX\-XX\-XX\fP will also be converted (or
  43422. YAML will attempt to convert them, and error out if it doesn\(aqt think the date
  43423. is a real one). Thus, for example, if a minion were to have an ID of
  43424. \fB4017\-16\-20\fP the minion would not start because YAML would complain that the
  43425. date was out of range. The workaround is the same, surround the offending
  43426. string with quotes:
  43427. .INDENT 0.0
  43428. .INDENT 3.5
  43429. .sp
  43430. .nf
  43431. .ft C
  43432. >>> import yaml
  43433. >>> yaml.safe_load(\(aq4017\-16\-20\(aq)
  43434. Traceback (most recent call last):
  43435. File "<stdin>", line 1, in <module>
  43436. File "/usr/local/lib/python2.7/site\-packages/yaml/__init__.py", line 93, in safe_load
  43437. return load(stream, SafeLoader)
  43438. File "/usr/local/lib/python2.7/site\-packages/yaml/__init__.py", line 71, in load
  43439. return loader.get_single_data()
  43440. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 39, in get_single_data
  43441. return self.construct_document(node)
  43442. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 43, in construct_document
  43443. data = self.construct_object(node)
  43444. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 88, in construct_object
  43445. data = constructor(self, node)
  43446. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 312, in construct_yaml_timestamp
  43447. return datetime.date(year, month, day)
  43448. ValueError: month must be in 1..12
  43449. >>> yaml.safe_load(\(aq"4017\-16\-20"\(aq)
  43450. \(aq4017\-16\-20\(aq
  43451. .ft P
  43452. .fi
  43453. .UNINDENT
  43454. .UNINDENT
  43455. .SS Keys Limited to 1024 Characters
  43456. .sp
  43457. Simple keys are limited by the \fI\%YAML Spec\fP to a single line, and cannot be
  43458. longer that 1024 characters. PyYAML enforces these limitations (see \fI\%here\fP),
  43459. and therefore anything parsed as YAML in Salt is subject to them.
  43460. .SS Live Python Debug Output
  43461. .sp
  43462. If the minion or master seems to be unresponsive, a SIGUSR1 can be passed to
  43463. the processes to display where in the code they are running. If encountering a
  43464. situation like this, this debug information can be invaluable. First make
  43465. sure the master of minion are running in the foreground:
  43466. .INDENT 0.0
  43467. .INDENT 3.5
  43468. .sp
  43469. .nf
  43470. .ft C
  43471. salt\-master \-l debug
  43472. salt\-minion \-l debug
  43473. .ft P
  43474. .fi
  43475. .UNINDENT
  43476. .UNINDENT
  43477. .sp
  43478. Then pass the signal to the master or minion when it seems to be unresponsive:
  43479. .INDENT 0.0
  43480. .INDENT 3.5
  43481. .sp
  43482. .nf
  43483. .ft C
  43484. killall \-SIGUSR1 salt\-master
  43485. killall \-SIGUSR1 salt\-minion
  43486. .ft P
  43487. .fi
  43488. .UNINDENT
  43489. .UNINDENT
  43490. .sp
  43491. Also under BSD and macOS in addition to SIGUSR1 signal, debug subroutine set
  43492. up for SIGINFO which has an advantage of being sent by Ctrl+T shortcut.
  43493. .sp
  43494. When filing an issue or sending questions to the mailing list for a problem
  43495. with an unresponsive daemon this information can be invaluable.
  43496. .SS Salt 0.16.x minions cannot communicate with a 0.17.x master
  43497. .sp
  43498. As of release 0.17.1 you can no longer run different versions of Salt on your
  43499. Master and Minion servers. This is due to a protocol change for security
  43500. purposes. The Salt team will continue to attempt to ensure versions are as
  43501. backwards compatible as possible.
  43502. .SS Debugging the Master and Minion
  43503. .sp
  43504. A list of common master and
  43505. minion troubleshooting steps provide a
  43506. starting point for resolving issues you may encounter.
  43507. .SS Frequently Asked Questions
  43508. .SS FAQ
  43509. .INDENT 0.0
  43510. .IP \(bu 2
  43511. \fI\%Frequently Asked Questions\fP
  43512. .INDENT 2.0
  43513. .IP \(bu 2
  43514. \fI\%Is Salt open\-core?\fP
  43515. .IP \(bu 2
  43516. \fI\%I think I found a bug! What should I do?\fP
  43517. .IP \(bu 2
  43518. \fI\%What ports should I open on my firewall?\fP
  43519. .IP \(bu 2
  43520. \fI\%I\(aqm seeing weird behavior (including but not limited to packages not installing their users properly)\fP
  43521. .IP \(bu 2
  43522. \fI\%My script runs every time I run a state.apply. Why?\fP
  43523. .IP \(bu 2
  43524. \fI\%When I run test.ping, why don\(aqt the Minions that aren\(aqt responding return anything? Returning False would be helpful.\fP
  43525. .IP \(bu 2
  43526. \fI\%How does Salt determine the Minion\(aqs id?\fP
  43527. .IP \(bu 2
  43528. \fI\%I\(aqm trying to manage packages/services but I get an error saying that the state is not available. Why?\fP
  43529. .IP \(bu 2
  43530. \fI\%Why aren\(aqt my custom modules/states/etc. available on my Minions?\fP
  43531. .IP \(bu 2
  43532. \fI\%Module X isn\(aqt available, even though the shell command it uses is installed. Why?\fP
  43533. .IP \(bu 2
  43534. \fI\%Can I run different versions of Salt on my Master and Minion?\fP
  43535. .IP \(bu 2
  43536. \fI\%Does Salt support backing up managed files?\fP
  43537. .IP \(bu 2
  43538. \fI\%Is it possible to deploy a file to a specific minion, without other minions having access to it?\fP
  43539. .IP \(bu 2
  43540. \fI\%What is the best way to restart a Salt Minion daemon using Salt after upgrade?\fP
  43541. .INDENT 2.0
  43542. .IP \(bu 2
  43543. \fI\%Upgrade without automatic restart\fP
  43544. .IP \(bu 2
  43545. \fI\%Restart using states\fP
  43546. .IP \(bu 2
  43547. \fI\%Restart using remote executions\fP
  43548. .IP \(bu 2
  43549. \fI\%Waiting for minions to come back online\fP
  43550. .UNINDENT
  43551. .IP \(bu 2
  43552. \fI\%Salting the Salt Master\fP
  43553. .IP \(bu 2
  43554. \fI\%Is Targeting using Grain Data Secure?\fP
  43555. .IP \(bu 2
  43556. \fI\%Why Did the Value for a Grain Change on Its Own?\fP
  43557. .UNINDENT
  43558. .UNINDENT
  43559. .SS Is Salt open\-core?
  43560. .sp
  43561. No. Salt is 100% committed to being open\-source, including all of our APIs. It
  43562. is developed under the \fI\%Apache 2.0 license\fP, allowing it to be used in both
  43563. open and proprietary projects.
  43564. .sp
  43565. To expand on this a little:
  43566. .sp
  43567. There is much argument over the actual definition of "open core". From our standpoint, Salt is open source because
  43568. .INDENT 0.0
  43569. .IP 1. 3
  43570. It is a standalone product that anyone is free to use.
  43571. .IP 2. 3
  43572. It is developed in the open with contributions accepted from the community for the good of the project.
  43573. .IP 3. 3
  43574. There are no features of Salt itself that are restricted to separate proprietary products distributed by SaltStack, Inc.
  43575. .IP 4. 3
  43576. Because of our Apache 2.0 license, Salt can be used as the foundation for a project or even a proprietary tool.
  43577. .IP 5. 3
  43578. 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.
  43579. .UNINDENT
  43580. .sp
  43581. 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.
  43582. .SS I think I found a bug! What should I do?
  43583. .sp
  43584. The salt\-users mailing list as well as the salt IRC channel can both be helpful
  43585. resources to confirm if others are seeing the issue and to assist with
  43586. immediate debugging.
  43587. .sp
  43588. To report a bug to the Salt project, please follow the instructions in
  43589. reporting a bug\&.
  43590. .SS What ports should I open on my firewall?
  43591. .sp
  43592. Minions need to be able to connect to the Master on TCP ports 4505 and 4506.
  43593. Minions do not need any inbound ports open. More detailed information on
  43594. firewall settings can be found here\&.
  43595. .SS I\(aqm seeing weird behavior (including but not limited to packages not installing their users properly)
  43596. .sp
  43597. This is often caused by SELinux. Try disabling SELinux or putting it in
  43598. permissive mode and see if the weird behavior goes away.
  43599. .SS My script runs every time I run a \fIstate.apply\fP\&. Why?
  43600. .sp
  43601. You are probably using \fBcmd.run\fP rather than
  43602. \fBcmd.wait\fP\&. A \fBcmd.wait\fP state will only run when there has been a change in a
  43603. state that it is watching.
  43604. .sp
  43605. A \fBcmd.run\fP state will run the corresponding command
  43606. \fIevery time\fP (unless it is prevented from running by the \fBunless\fP or \fBonlyif\fP
  43607. arguments).
  43608. .sp
  43609. More details can be found in the documentation for the \fBcmd\fP states.
  43610. .SS When I run \fItest.ping\fP, why don\(aqt the Minions that aren\(aqt responding return anything? Returning \fBFalse\fP would be helpful.
  43611. .sp
  43612. When you run \fItest.ping\fP the Master tells Minions to run commands/functions,
  43613. and listens for the return data, printing it to the screen when it is received.
  43614. If it doesn\(aqt receive anything back, it doesn\(aqt have anything to display for
  43615. that Minion.
  43616. .sp
  43617. There are a couple options for getting information on Minions that are not
  43618. responding. One is to use the verbose (\fB\-v\fP) option when you run salt
  43619. commands, as it will display "Minion did not return" for any Minions which time
  43620. out.
  43621. .INDENT 0.0
  43622. .INDENT 3.5
  43623. .sp
  43624. .nf
  43625. .ft C
  43626. salt \-v \(aq*\(aq pkg.install zsh
  43627. .ft P
  43628. .fi
  43629. .UNINDENT
  43630. .UNINDENT
  43631. .sp
  43632. Another option is to use the \fBmanage.down\fP
  43633. runner:
  43634. .INDENT 0.0
  43635. .INDENT 3.5
  43636. .sp
  43637. .nf
  43638. .ft C
  43639. salt\-run manage.down
  43640. .ft P
  43641. .fi
  43642. .UNINDENT
  43643. .UNINDENT
  43644. .sp
  43645. Also, if the Master is under heavy load, it is possible that the CLI will exit
  43646. without displaying return data for all targeted Minions. However, this doesn\(aqt
  43647. mean that the Minions did not return; this only means that the Salt CLI timed
  43648. out waiting for a response. Minions will still send their return data back to
  43649. the Master once the job completes. If any expected Minions are missing from the
  43650. CLI output, the \fBjobs.list_jobs\fP runner can
  43651. be used to show the job IDs of the jobs that have been run, and the
  43652. \fBjobs.lookup_jid\fP runner can be used to get
  43653. the return data for that job.
  43654. .INDENT 0.0
  43655. .INDENT 3.5
  43656. .sp
  43657. .nf
  43658. .ft C
  43659. salt\-run jobs.list_jobs
  43660. salt\-run jobs.lookup_jid 20130916125524463507
  43661. .ft P
  43662. .fi
  43663. .UNINDENT
  43664. .UNINDENT
  43665. .sp
  43666. If you find that you are often missing Minion return data on the CLI, only to
  43667. find it with the jobs runners, then this may be a sign that the
  43668. \fBworker_threads\fP value may need to be increased in the master
  43669. config file. Additionally, running your Salt CLI commands with the \fB\-t\fP
  43670. option will make Salt wait longer for the return data before the CLI command
  43671. exits. For instance, the below command will wait up to 60 seconds for the
  43672. Minions to return:
  43673. .INDENT 0.0
  43674. .INDENT 3.5
  43675. .sp
  43676. .nf
  43677. .ft C
  43678. salt \-t 60 \(aq*\(aq test.ping
  43679. .ft P
  43680. .fi
  43681. .UNINDENT
  43682. .UNINDENT
  43683. .SS How does Salt determine the Minion\(aqs id?
  43684. .sp
  43685. If the Minion id is not configured explicitly (using the \fBid\fP
  43686. parameter), Salt will determine the id based on the hostname. Exactly how this
  43687. is determined varies a little between operating systems and is described in
  43688. detail here\&.
  43689. .SS I\(aqm trying to manage packages/services but I get an error saying that the state is not available. Why?
  43690. .sp
  43691. Salt detects the Minion\(aqs operating system and assigns the correct package or
  43692. service management module based on what is detected. However, for certain custom
  43693. spins and OS derivatives this detection fails. In cases like this, an issue
  43694. should be opened on our \fI\%tracker\fP, with the following information:
  43695. .INDENT 0.0
  43696. .IP 1. 3
  43697. The output of the following command:
  43698. .INDENT 3.0
  43699. .INDENT 3.5
  43700. .sp
  43701. .nf
  43702. .ft C
  43703. salt <minion_id> grains.items | grep os
  43704. .ft P
  43705. .fi
  43706. .UNINDENT
  43707. .UNINDENT
  43708. .IP 2. 3
  43709. The contents of \fB/etc/lsb\-release\fP, if present on the Minion.
  43710. .UNINDENT
  43711. .SS Why aren\(aqt my custom modules/states/etc. available on my Minions?
  43712. .sp
  43713. Custom modules are synced to Minions when
  43714. \fBsaltutil.sync_modules\fP,
  43715. or \fBsaltutil.sync_all\fP is run.
  43716. .sp
  43717. Similarly, custom states are synced to Minions when \fBsaltutil.sync_states\fP, or \fBsaltutil.sync_all\fP is run.
  43718. .sp
  43719. They are both also synced when a highstate is
  43720. triggered.
  43721. .sp
  43722. As of the 2019.2.0 release, as well as 2017.7.7 and 2018.3.2 in their
  43723. respective release cycles, the \fBsync\fP argument to \fBstate.apply\fP/\fBstate.sls\fP can
  43724. be used to sync custom types when running individual SLS files.
  43725. .sp
  43726. Other custom types (renderers, outputters, etc.) have similar behavior, see the
  43727. documentation for the \fBsaltutil\fP module for more
  43728. information.
  43729. .sp
  43730. This reactor example can be used to automatically
  43731. sync custom types when the minion connects to the master, to help with this
  43732. chicken\-and\-egg issue.
  43733. .SS Module \fBX\fP isn\(aqt available, even though the shell command it uses is installed. Why?
  43734. .sp
  43735. This is most likely a PATH issue. Did you custom\-compile the software which the
  43736. module requires? RHEL/CentOS/etc. in particular override the root user\(aqs path
  43737. in \fB/etc/init.d/functions\fP, setting it to \fB/sbin:/usr/sbin:/bin:/usr/bin\fP,
  43738. making software installed into \fB/usr/local/bin\fP unavailable to Salt when the
  43739. Minion is started using the initscript. In version 2014.1.0, Salt will have a
  43740. better solution for these sort of PATH\-related issues, but recompiling the
  43741. software to install it into a location within the PATH should resolve the
  43742. issue in the meantime. Alternatively, you can create a symbolic link within the
  43743. PATH using a \fBfile.symlink\fP state.
  43744. .INDENT 0.0
  43745. .INDENT 3.5
  43746. .sp
  43747. .nf
  43748. .ft C
  43749. /usr/bin/foo:
  43750. file.symlink:
  43751. \- target: /usr/local/bin/foo
  43752. .ft P
  43753. .fi
  43754. .UNINDENT
  43755. .UNINDENT
  43756. .SS Can I run different versions of Salt on my Master and Minion?
  43757. .sp
  43758. This depends on the versions. In general, it is recommended that Master and
  43759. Minion versions match.
  43760. .sp
  43761. When upgrading Salt, the master(s) should always be upgraded first. Backwards
  43762. compatibility for minions running newer versions of salt than their masters is
  43763. not guaranteed.
  43764. .sp
  43765. Whenever possible, backwards compatibility between new masters
  43766. and old minions will be preserved. Generally, the only exception to this
  43767. policy is in case of a security vulnerability.
  43768. .sp
  43769. Recent examples of backwards compatibility breakage include the 0.17.1 release
  43770. (where all backwards compatibility was broken due to a security fix), and the
  43771. 2014.1.0 release (which retained compatibility between 2014.1.0 masters and
  43772. 0.17 minions, but broke compatibility for 2014.1.0 minions and older masters).
  43773. .SS Does Salt support backing up managed files?
  43774. .sp
  43775. Yes. Salt provides an easy to use addition to your file.managed states that
  43776. allow you to back up files via backup_mode,
  43777. backup_mode can be configured on a per state basis, or in the minion config
  43778. (note that if set in the minion config this would simply be the default
  43779. method to use, you still need to specify that the file should be backed up!).
  43780. .SS Is it possible to deploy a file to a specific minion, without other minions having access to it?
  43781. .sp
  43782. The Salt fileserver does not yet support access control, but it is still
  43783. possible to do this. As of Salt 2015.5.0, the
  43784. \fBfile_tree\fP external pillar is available, and
  43785. allows the contents of a file to be loaded as Pillar data. This external pillar
  43786. is capable of assigning Pillar values both to individual minions, and to
  43787. nodegroups\&. See the \fBdocumentation\fP for details on how to set this up.
  43788. .sp
  43789. Once the external pillar has been set up, the data can be pushed to a minion
  43790. via a \fBfile.managed\fP state, using the
  43791. \fBcontents_pillar\fP argument:
  43792. .INDENT 0.0
  43793. .INDENT 3.5
  43794. .sp
  43795. .nf
  43796. .ft C
  43797. /etc/my_super_secret_file:
  43798. file.managed:
  43799. \- user: secret
  43800. \- group: secret
  43801. \- mode: 600
  43802. \- contents_pillar: secret_files:my_super_secret_file
  43803. .ft P
  43804. .fi
  43805. .UNINDENT
  43806. .UNINDENT
  43807. .sp
  43808. In this example, the source file would be located in a directory called
  43809. \fBsecret_files\fP underneath the file_tree path for the minion. The syntax for
  43810. specifying the pillar variable is the same one used for \fBpillar.get\fP, with a colon representing a nested dictionary.
  43811. .sp
  43812. \fBWARNING:\fP
  43813. .INDENT 0.0
  43814. .INDENT 3.5
  43815. Deploying binary contents using the \fBfile.managed\fP state is only supported in Salt 2015.8.4 and
  43816. newer.
  43817. .UNINDENT
  43818. .UNINDENT
  43819. .SS What is the best way to restart a Salt Minion daemon using Salt after upgrade?
  43820. .sp
  43821. Updating the \fBsalt\-minion\fP package requires a restart of the \fBsalt\-minion\fP
  43822. service. But restarting the service while in the middle of a state run
  43823. interrupts the process of the Minion running states and sending results back to
  43824. the Master. A common way to workaround that is to schedule restarting the
  43825. Minion service in the background by issuing a \fBsalt\-call\fP command calling
  43826. \fBservice.restart\fP function. This prevents the Minion being disconnected from
  43827. the Master immediately. Otherwise you would get
  43828. \fBMinion did not return. [Not connected]\fP message as the result of a state run.
  43829. .SS Upgrade without automatic restart
  43830. .sp
  43831. Doing the Minion upgrade seems to be a simplest state in your SLS file at
  43832. first. But the operating systems such as Debian GNU/Linux, Ubuntu and their
  43833. derivatives start the service after the package installation by default.
  43834. To prevent this, we need to create policy layer which will prevent the Minion
  43835. service to restart right after the upgrade:
  43836. .INDENT 0.0
  43837. .INDENT 3.5
  43838. .sp
  43839. .nf
  43840. .ft C
  43841. {%\- if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  43842. Disable starting services:
  43843. file.managed:
  43844. \- name: /usr/sbin/policy\-rc.d
  43845. \- user: root
  43846. \- group: root
  43847. \- mode: 0755
  43848. \- contents:
  43849. \- \(aq#!/bin/sh\(aq
  43850. \- exit 101
  43851. # do not touch if already exists
  43852. \- replace: False
  43853. \- prereq:
  43854. \- pkg: Upgrade Salt Minion
  43855. {%\- endif %}
  43856. Upgrade Salt Minion:
  43857. pkg.installed:
  43858. \- name: salt\-minion
  43859. \- version: 2016.11.3{% if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}+ds\-1{% endif %}
  43860. \- order: last
  43861. Enable Salt Minion:
  43862. service.enabled:
  43863. \- name: salt\-minion
  43864. \- require:
  43865. \- pkg: Upgrade Salt Minion
  43866. {%\- if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  43867. Enable starting services:
  43868. file.absent:
  43869. \- name: /usr/sbin/policy\-rc.d
  43870. \- onchanges:
  43871. \- pkg: Upgrade Salt Minion
  43872. {%\- endif %}
  43873. .ft P
  43874. .fi
  43875. .UNINDENT
  43876. .UNINDENT
  43877. .SS Restart using states
  43878. .sp
  43879. Now we can apply the workaround to restart the Minion in reliable way.
  43880. The following example works on UNIX\-like operating systems:
  43881. .INDENT 0.0
  43882. .INDENT 3.5
  43883. .sp
  43884. .nf
  43885. .ft C
  43886. {%\- if grains[\(aqos\(aq] != \(aqWindows\(aq %}
  43887. Restart Salt Minion:
  43888. cmd.run:
  43889. \- name: \(aqsalt\-call service.restart salt\-minion\(aq
  43890. \- bg: True
  43891. \- onchanges:
  43892. \- pkg: Upgrade Salt Minion
  43893. {%\- endif %}
  43894. .ft P
  43895. .fi
  43896. .UNINDENT
  43897. .UNINDENT
  43898. .sp
  43899. Note that restarting the \fBsalt\-minion\fP service on Windows operating systems is
  43900. not always necessary when performing an upgrade. The installer stops the
  43901. \fBsalt\-minion\fP service, removes it, deletes the contents of the \fB\esalt\ebin\fP
  43902. directory, installs the new code, re\-creates the \fBsalt\-minion\fP service, and
  43903. starts it (by default). The restart step \fBwould\fP be necessary during the
  43904. upgrade process, however, if the minion config was edited after the upgrade or
  43905. installation. If a minion restart is necessary, the state above can be edited
  43906. as follows:
  43907. .INDENT 0.0
  43908. .INDENT 3.5
  43909. .sp
  43910. .nf
  43911. .ft C
  43912. Restart Salt Minion:
  43913. cmd.run:
  43914. {%\- if grains[\(aqkernel\(aq] == \(aqWindows\(aq %}
  43915. \- name: \(aqC:\esalt\esalt\-call.bat service.restart salt\-minion\(aq
  43916. {%\- else %}
  43917. \- name: \(aqsalt\-call service.restart salt\-minion\(aq
  43918. {%\- endif %}
  43919. \- bg: True
  43920. \- onchanges:
  43921. \- pkg: Upgrade Salt Minion
  43922. .ft P
  43923. .fi
  43924. .UNINDENT
  43925. .UNINDENT
  43926. .sp
  43927. However, it requires more advanced tricks to upgrade from legacy version of
  43928. Salt (before \fB2016.3.0\fP) on UNIX\-like operating systems, where executing
  43929. commands in the background is not supported. You also may need to schedule
  43930. restarting the Minion service using masterless mode after all other states have been applied for Salt
  43931. versions earlier than \fB2016.11.0\fP\&. This allows the Minion to keep the
  43932. connection to the Master alive for being able to report the final results back
  43933. to the Master, while the service is restarting in the background. This state
  43934. should run last or watch for the \fBpkg\fP state changes:
  43935. .INDENT 0.0
  43936. .INDENT 3.5
  43937. .sp
  43938. .nf
  43939. .ft C
  43940. Restart Salt Minion:
  43941. cmd.run:
  43942. {%\- if grains[\(aqkernel\(aq] == \(aqWindows\(aq %}
  43943. \- name: \(aqstart powershell "Restart\-Service \-Name salt\-minion"\(aq
  43944. {%\- else %}
  43945. # fork and disown the process
  43946. \- name: |\-
  43947. exec 0>&\- # close stdin
  43948. exec 1>&\- # close stdout
  43949. exec 2>&\- # close stderr
  43950. nohup salt\-call \-\-local service.restart salt\-minion &
  43951. {%\- endif %}
  43952. .ft P
  43953. .fi
  43954. .UNINDENT
  43955. .UNINDENT
  43956. .SS Restart using remote executions
  43957. .sp
  43958. Restart the Minion from the command line:
  43959. .INDENT 0.0
  43960. .INDENT 3.5
  43961. .sp
  43962. .nf
  43963. .ft C
  43964. salt \-G kernel:Windows cmd.run_bg \(aqC:\esalt\esalt\-call.bat service.restart salt\-minion\(aq
  43965. salt \-C \(aqnot G@kernel:Windows\(aq cmd.run_bg \(aqsalt\-call service.restart salt\-minion\(aq
  43966. .ft P
  43967. .fi
  43968. .UNINDENT
  43969. .UNINDENT
  43970. .SS Waiting for minions to come back online
  43971. .sp
  43972. A common issue in performing automated restarts of a salt minion, for example during
  43973. an orchestration run, is that it will break the orchestration since the next statement
  43974. is likely to be attempted before the minion is back online. This can be remedied
  43975. by inserting a blocking waiting state that only returns when the selected minions
  43976. are back up (note: this will only work in orchestration states since \fImanage.up\fP
  43977. needs to run on the master):
  43978. .INDENT 0.0
  43979. .INDENT 3.5
  43980. .sp
  43981. .nf
  43982. .ft C
  43983. Wait for salt minion:
  43984. loop.until_no_eval:
  43985. \- name: saltutil.runner
  43986. \- expected:
  43987. \- my_minion
  43988. \- args:
  43989. \- manage.up
  43990. \- kwargs:
  43991. tgt: my_minion
  43992. \- period: 3
  43993. \- init_wait: 3
  43994. .ft P
  43995. .fi
  43996. .UNINDENT
  43997. .UNINDENT
  43998. .sp
  43999. This will, after an initial delay of 3 seconds, execute the \fImanage.up\fP\-runner
  44000. targeted specifically for \fImy_minion\fP\&. It will do this every \fIperiod\fP seconds
  44001. until the \fIexpected\fP data is returned. The default timeout is 60s but can be configured
  44002. as well.
  44003. .SS Salting the Salt Master
  44004. .sp
  44005. In order to configure a master server via states, the Salt master can also be
  44006. "salted" in order to enforce state on the Salt master as well as the Salt
  44007. minions. Salting the Salt master requires a Salt minion to be installed on
  44008. the same machine as the Salt master. Once the Salt minion is installed, the
  44009. minion configuration file must be pointed to the local Salt master:
  44010. .INDENT 0.0
  44011. .INDENT 3.5
  44012. .sp
  44013. .nf
  44014. .ft C
  44015. master: 127.0.0.1
  44016. .ft P
  44017. .fi
  44018. .UNINDENT
  44019. .UNINDENT
  44020. .sp
  44021. Once the Salt master has been "salted" with a Salt minion, it can be targeted
  44022. just like any other minion. If the minion on the salted master is running, the
  44023. minion can be targeted via any usual \fBsalt\fP command. Additionally, the
  44024. \fBsalt\-call\fP command can execute operations to enforce state on the salted
  44025. master without requiring the minion to be running.
  44026. .sp
  44027. More information about salting the Salt master can be found in the salt\-formula
  44028. for salt itself:
  44029. .sp
  44030. \fI\%https://github.com/saltstack\-formulas/salt\-formula\fP
  44031. .sp
  44032. Restarting the \fBsalt\-master\fP service using execution module or application of
  44033. state could be done the same way as for the Salt minion described \fI\%above\fP\&.
  44034. .SS Is Targeting using Grain Data Secure?
  44035. .sp
  44036. Because grains can be set by users that have access to the minion configuration
  44037. files on the local system, grains are considered less secure than other
  44038. identifiers in Salt. Use caution when targeting sensitive operations or setting
  44039. pillar values based on grain data.
  44040. .sp
  44041. The only grain which can be safely used is \fBgrains[\(aqid\(aq]\fP which contains the Minion ID.
  44042. .sp
  44043. When possible, you should target sensitive operations and data using the Minion
  44044. ID. If the Minion ID of a system changes, the Salt Minion\(aqs public key must be
  44045. re\-accepted by an administrator on the Salt Master, making it less vulnerable
  44046. to impersonation attacks.
  44047. .SS Why Did the Value for a Grain Change on Its Own?
  44048. .sp
  44049. This is usually the result of an upstream change in an OS distribution that
  44050. replaces or removes something that Salt was using to detect the grain.
  44051. Fortunately, when this occurs, you can use Salt to fix it with a command
  44052. similar to the following:
  44053. .INDENT 0.0
  44054. .INDENT 3.5
  44055. .sp
  44056. .nf
  44057. .ft C
  44058. salt \-G \(aqgrain:ChangedValue\(aq grains.setvals "{\(aqgrain\(aq: \(aqOldValue\(aq}"
  44059. .ft P
  44060. .fi
  44061. .UNINDENT
  44062. .UNINDENT
  44063. .sp
  44064. (Replacing \fIgrain\fP, \fIChangedValue\fP, and \fIOldValue\fP with
  44065. the grain and values that you want to change / set.)
  44066. .sp
  44067. You should also \fI\%file an issue\fP
  44068. describing the change so it can be fixed in Salt.
  44069. .SS Salt Best Practices
  44070. .sp
  44071. Salt\(aqs extreme flexibility leads to many questions concerning the structure of
  44072. configuration files.
  44073. .sp
  44074. This document exists to clarify these points through examples and
  44075. code.
  44076. .SS General rules
  44077. .INDENT 0.0
  44078. .IP 1. 3
  44079. Modularity and clarity should be emphasized whenever possible.
  44080. .IP 2. 3
  44081. Create clear relations between pillars and states.
  44082. .IP 3. 3
  44083. Use variables when it makes sense but don\(aqt overuse them.
  44084. .IP 4. 3
  44085. Store sensitive data in pillar.
  44086. .IP 5. 3
  44087. Don\(aqt use grains for matching in your pillar top file for any sensitive
  44088. pillars.
  44089. .UNINDENT
  44090. .SS Structuring States and Formulas
  44091. .sp
  44092. When structuring Salt States and Formulas it is important to begin with the
  44093. directory structure. A proper directory structure clearly defines the
  44094. functionality of each state to the user via visual inspection of the state\(aqs
  44095. name.
  44096. .sp
  44097. Reviewing the \fI\%MySQL Salt Formula\fP
  44098. it is clear to see the benefits to the end\-user when reviewing a sample of the
  44099. available states:
  44100. .INDENT 0.0
  44101. .INDENT 3.5
  44102. .sp
  44103. .nf
  44104. .ft C
  44105. /srv/salt/mysql/files/
  44106. /srv/salt/mysql/client.sls
  44107. /srv/salt/mysql/map.jinja
  44108. /srv/salt/mysql/python.sls
  44109. /srv/salt/mysql/server.sls
  44110. .ft P
  44111. .fi
  44112. .UNINDENT
  44113. .UNINDENT
  44114. .sp
  44115. This directory structure would lead to these states being referenced in a top
  44116. file in the following way:
  44117. .INDENT 0.0
  44118. .INDENT 3.5
  44119. .sp
  44120. .nf
  44121. .ft C
  44122. base:
  44123. \(aqweb*\(aq:
  44124. \- mysql.client
  44125. \- mysql.python
  44126. \(aqdb*\(aq:
  44127. \- mysql.server
  44128. .ft P
  44129. .fi
  44130. .UNINDENT
  44131. .UNINDENT
  44132. .sp
  44133. This clear definition ensures that the user is properly informed of what each
  44134. state will do.
  44135. .sp
  44136. Another example comes from the \fI\%vim\-formula\fP:
  44137. .INDENT 0.0
  44138. .INDENT 3.5
  44139. .sp
  44140. .nf
  44141. .ft C
  44142. /srv/salt/vim/files/
  44143. /srv/salt/vim/absent.sls
  44144. /srv/salt/vim/init.sls
  44145. /srv/salt/vim/map.jinja
  44146. /srv/salt/vim/nerdtree.sls
  44147. /srv/salt/vim/pyflakes.sls
  44148. /srv/salt/vim/salt.sls
  44149. .ft P
  44150. .fi
  44151. .UNINDENT
  44152. .UNINDENT
  44153. .sp
  44154. Once again viewing how this would look in a top file:
  44155. .sp
  44156. /srv/salt/top.sls:
  44157. .INDENT 0.0
  44158. .INDENT 3.5
  44159. .sp
  44160. .nf
  44161. .ft C
  44162. base:
  44163. \(aqweb*\(aq:
  44164. \- vim
  44165. \- vim.nerdtree
  44166. \- vim.pyflakes
  44167. \- vim.salt
  44168. \(aqdb*\(aq:
  44169. \- vim.absent
  44170. .ft P
  44171. .fi
  44172. .UNINDENT
  44173. .UNINDENT
  44174. .sp
  44175. The usage of a clear top\-level directory as well as properly named states
  44176. reduces the overall complexity and leads a user to both understand what will
  44177. be included at a glance and where it is located.
  44178. .sp
  44179. In addition Formulas should
  44180. be used as often as possible.
  44181. .sp
  44182. \fBNOTE:\fP
  44183. .INDENT 0.0
  44184. .INDENT 3.5
  44185. Formulas repositories on the saltstack\-formulas GitHub organization should
  44186. not be pointed to directly from systems that automatically fetch new
  44187. updates such as GitFS or similar tooling. Instead formulas repositories
  44188. should be forked on GitHub or cloned locally, where unintended, automatic
  44189. changes will not take place.
  44190. .UNINDENT
  44191. .UNINDENT
  44192. .SS Structuring Pillar Files
  44193. .sp
  44194. Pillars are used to store
  44195. secure and insecure data pertaining to minions. When designing the structure
  44196. of the \fB/srv/pillar\fP directory, the pillars contained within
  44197. should once again be focused on clear and concise data which users can easily
  44198. review, modify, and understand.
  44199. .sp
  44200. The \fB/srv/pillar/\fP directory is primarily controlled by \fBtop.sls\fP\&. It
  44201. should be noted that the pillar \fBtop.sls\fP is not used as a location to
  44202. declare variables and their values. The \fBtop.sls\fP is used as a way to
  44203. include other pillar files and organize the way they are matched based on
  44204. environments or grains.
  44205. .sp
  44206. An example \fBtop.sls\fP may be as simple as the following:
  44207. .sp
  44208. /srv/pillar/top.sls:
  44209. .INDENT 0.0
  44210. .INDENT 3.5
  44211. .sp
  44212. .nf
  44213. .ft C
  44214. base:
  44215. \(aq*\(aq:
  44216. \- packages
  44217. .ft P
  44218. .fi
  44219. .UNINDENT
  44220. .UNINDENT
  44221. .sp
  44222. Any number of matchers can be added to the base environment. For example, here
  44223. is an expanded version of the Pillar top file stated above:
  44224. .sp
  44225. /srv/pillar/top.sls:
  44226. .INDENT 0.0
  44227. .INDENT 3.5
  44228. .sp
  44229. .nf
  44230. .ft C
  44231. base:
  44232. \(aq*\(aq:
  44233. \- packages
  44234. \(aqweb*\(aq:
  44235. \- apache
  44236. \- vim
  44237. .ft P
  44238. .fi
  44239. .UNINDENT
  44240. .UNINDENT
  44241. .sp
  44242. Or an even more complicated example, using a variety of matchers in numerous
  44243. environments:
  44244. .sp
  44245. /srv/pillar/top.sls:
  44246. .INDENT 0.0
  44247. .INDENT 3.5
  44248. .sp
  44249. .nf
  44250. .ft C
  44251. base:
  44252. \(aq*\(aq:
  44253. \- apache
  44254. dev:
  44255. \(aqos:Debian\(aq:
  44256. \- match: grain
  44257. \- vim
  44258. test:
  44259. \(aq* and not G@os: Debian\(aq:
  44260. \- match: compound
  44261. \- emacs
  44262. .ft P
  44263. .fi
  44264. .UNINDENT
  44265. .UNINDENT
  44266. .sp
  44267. It is clear to see through these examples how the top file provides users with
  44268. power but when used incorrectly it can lead to confusing configurations. This
  44269. is why it is important to understand that the top file for pillar is not used
  44270. for variable definitions.
  44271. .sp
  44272. Each SLS file within the \fB/srv/pillar/\fP directory should correspond to the
  44273. states which it matches.
  44274. .sp
  44275. This would mean that the \fBapache\fP pillar file should contain data relevant to
  44276. Apache. Structuring files in this way once again ensures modularity, and
  44277. creates a consistent understanding throughout our Salt environment. Users can
  44278. expect that pillar variables found in an Apache state will live inside of an
  44279. Apache pillar:
  44280. .sp
  44281. \fB/srv/pillar/apache.sls\fP:
  44282. .INDENT 0.0
  44283. .INDENT 3.5
  44284. .sp
  44285. .nf
  44286. .ft C
  44287. apache:
  44288. lookup:
  44289. name: httpd
  44290. config:
  44291. tmpl: /etc/httpd/httpd.conf
  44292. .ft P
  44293. .fi
  44294. .UNINDENT
  44295. .UNINDENT
  44296. .sp
  44297. While this pillar file is simple, it shows how a pillar file explicitly
  44298. relates to the state it is associated with.
  44299. .SS Variable Flexibility
  44300. .sp
  44301. Salt allows users to define variables in SLS files. When creating a state
  44302. variables should provide users with as much flexibility as possible. This
  44303. means that variables should be clearly defined and easy to manipulate, and
  44304. that sane defaults should exist in the event a variable is not properly
  44305. defined. Looking at several examples shows how these different items can
  44306. lead to extensive flexibility.
  44307. .sp
  44308. Although it is possible to set variables locally, this is generally not
  44309. preferred:
  44310. .sp
  44311. \fB/srv/salt/apache/conf.sls\fP:
  44312. .INDENT 0.0
  44313. .INDENT 3.5
  44314. .sp
  44315. .nf
  44316. .ft C
  44317. {% set name = \(aqhttpd\(aq %}
  44318. {% set tmpl = \(aqsalt://apache/files/httpd.conf\(aq %}
  44319. include:
  44320. \- apache
  44321. apache_conf:
  44322. file.managed:
  44323. \- name: {{ name }}
  44324. \- source: {{ tmpl }}
  44325. \- template: jinja
  44326. \- user: root
  44327. \- watch_in:
  44328. \- service: apache
  44329. .ft P
  44330. .fi
  44331. .UNINDENT
  44332. .UNINDENT
  44333. .sp
  44334. When generating this information it can be easily transitioned to the pillar
  44335. where data can be overwritten, modified, and applied to multiple states, or
  44336. locations within a single state:
  44337. .sp
  44338. \fB/srv/pillar/apache.sls\fP:
  44339. .INDENT 0.0
  44340. .INDENT 3.5
  44341. .sp
  44342. .nf
  44343. .ft C
  44344. apache:
  44345. lookup:
  44346. name: httpd
  44347. config:
  44348. tmpl: salt://apache/files/httpd.conf
  44349. .ft P
  44350. .fi
  44351. .UNINDENT
  44352. .UNINDENT
  44353. .sp
  44354. \fB/srv/salt/apache/conf.sls\fP:
  44355. .INDENT 0.0
  44356. .INDENT 3.5
  44357. .sp
  44358. .nf
  44359. .ft C
  44360. {% from "apache/map.jinja" import apache with context %}
  44361. include:
  44362. \- apache
  44363. apache_conf:
  44364. file.managed:
  44365. \- name: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:name\(aq) }}
  44366. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44367. \- template: jinja
  44368. \- user: root
  44369. \- watch_in:
  44370. \- service: apache
  44371. .ft P
  44372. .fi
  44373. .UNINDENT
  44374. .UNINDENT
  44375. .sp
  44376. This flexibility provides users with a centralized location to modify
  44377. variables, which is extremely important as an environment grows.
  44378. .SS Modularity Within States
  44379. .sp
  44380. Ensuring that states are modular is one of the key concepts to understand
  44381. within Salt. When creating a state a user must consider how many times the
  44382. state could be re\-used, and what it relies on to operate. Below are several
  44383. examples which will iteratively explain how a user can go from a state which
  44384. is not very modular to one that is:
  44385. .sp
  44386. \fB/srv/salt/apache/init.sls\fP:
  44387. .INDENT 0.0
  44388. .INDENT 3.5
  44389. .sp
  44390. .nf
  44391. .ft C
  44392. httpd:
  44393. pkg:
  44394. \- installed
  44395. service.running:
  44396. \- enable: True
  44397. /etc/httpd/httpd.conf:
  44398. file.managed:
  44399. \- source: salt://apache/files/httpd.conf
  44400. \- template: jinja
  44401. \- watch_in:
  44402. \- service: httpd
  44403. .ft P
  44404. .fi
  44405. .UNINDENT
  44406. .UNINDENT
  44407. .sp
  44408. The example above is probably the worst\-case scenario when writing a state.
  44409. There is a clear lack of focus by naming both the pkg/service, and managed
  44410. file directly as the state ID. This would lead to changing multiple requires
  44411. within this state, as well as others that may depend upon the state.
  44412. .sp
  44413. Imagine if a require was used for the \fBhttpd\fP package in another state, and
  44414. then suddenly it\(aqs a custom package. Now changes need to be made in multiple
  44415. locations which increases the complexity and leads to a more error prone
  44416. configuration.
  44417. .sp
  44418. There is also the issue of having the configuration file located in the init,
  44419. as a user would be unable to simply install the service and use the default
  44420. conf file.
  44421. .sp
  44422. Our second revision begins to address the referencing by using \fB\- name\fP, as
  44423. opposed to direct ID references:
  44424. .sp
  44425. \fB/srv/salt/apache/init.sls\fP:
  44426. .INDENT 0.0
  44427. .INDENT 3.5
  44428. .sp
  44429. .nf
  44430. .ft C
  44431. apache:
  44432. pkg.installed:
  44433. \- name: httpd
  44434. service.running:
  44435. \- name: httpd
  44436. \- enable: True
  44437. apache_conf:
  44438. file.managed:
  44439. \- name: /etc/httpd/httpd.conf
  44440. \- source: salt://apache/files/httpd.conf
  44441. \- template: jinja
  44442. \- watch_in:
  44443. \- service: apache
  44444. .ft P
  44445. .fi
  44446. .UNINDENT
  44447. .UNINDENT
  44448. .sp
  44449. The above init file is better than our original, yet it has several issues
  44450. which lead to a lack of modularity. The first of these problems is the usage
  44451. of static values for items such as the name of the service, the name of the
  44452. managed file, and the source of the managed file. When these items are hard
  44453. coded they become difficult to modify and the opportunity to make mistakes
  44454. arises. It also leads to multiple edits that need to occur when changing
  44455. these items (imagine if there were dozens of these occurrences throughout the
  44456. state!). There is also still the concern of the configuration file data living
  44457. in the same state as the service and package.
  44458. .sp
  44459. In the next example steps will be taken to begin addressing these issues.
  44460. Starting with the addition of a map.jinja file (as noted in the
  44461. Formula documentation), and
  44462. modification of static values:
  44463. .sp
  44464. \fB/srv/salt/apache/map.jinja\fP:
  44465. .INDENT 0.0
  44466. .INDENT 3.5
  44467. .sp
  44468. .nf
  44469. .ft C
  44470. {% set apache = salt[\(aqgrains.filter_by\(aq]({
  44471. \(aqDebian\(aq: {
  44472. \(aqserver\(aq: \(aqapache2\(aq,
  44473. \(aqservice\(aq: \(aqapache2\(aq,
  44474. \(aqconf\(aq: \(aq/etc/apache2/apache.conf\(aq,
  44475. },
  44476. \(aqRedHat\(aq: {
  44477. \(aqserver\(aq: \(aqhttpd\(aq,
  44478. \(aqservice\(aq: \(aqhttpd\(aq,
  44479. \(aqconf\(aq: \(aq/etc/httpd/httpd.conf\(aq,
  44480. },
  44481. }, merge=salt[\(aqpillar.get\(aq](\(aqapache:lookup\(aq)) %}
  44482. .ft P
  44483. .fi
  44484. .UNINDENT
  44485. .UNINDENT
  44486. .sp
  44487. /srv/pillar/apache.sls:
  44488. .INDENT 0.0
  44489. .INDENT 3.5
  44490. .sp
  44491. .nf
  44492. .ft C
  44493. apache:
  44494. lookup:
  44495. config:
  44496. tmpl: salt://apache/files/httpd.conf
  44497. .ft P
  44498. .fi
  44499. .UNINDENT
  44500. .UNINDENT
  44501. .sp
  44502. \fB/srv/salt/apache/init.sls\fP:
  44503. .INDENT 0.0
  44504. .INDENT 3.5
  44505. .sp
  44506. .nf
  44507. .ft C
  44508. {% from "apache/map.jinja" import apache with context %}
  44509. apache:
  44510. pkg.installed:
  44511. \- name: {{ apache.server }}
  44512. service.running:
  44513. \- name: {{ apache.service }}
  44514. \- enable: True
  44515. apache_conf:
  44516. file.managed:
  44517. \- name: {{ apache.conf }}
  44518. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44519. \- template: jinja
  44520. \- user: root
  44521. \- watch_in:
  44522. \- service: apache
  44523. .ft P
  44524. .fi
  44525. .UNINDENT
  44526. .UNINDENT
  44527. .sp
  44528. The changes to this state now allow us to easily identify the location of the
  44529. variables, as well as ensuring they are flexible and easy to modify.
  44530. While this takes another step in the right direction, it is not yet complete.
  44531. Suppose the user did not want to use the provided conf file, or even their own
  44532. configuration file, but the default apache conf. With the current state setup
  44533. this is not possible. To attain this level of modularity this state will need
  44534. to be broken into two states.
  44535. .sp
  44536. \fB/srv/salt/apache/map.jinja\fP:
  44537. .INDENT 0.0
  44538. .INDENT 3.5
  44539. .sp
  44540. .nf
  44541. .ft C
  44542. {% set apache = salt[\(aqgrains.filter_by\(aq]({
  44543. \(aqDebian\(aq: {
  44544. \(aqserver\(aq: \(aqapache2\(aq,
  44545. \(aqservice\(aq: \(aqapache2\(aq,
  44546. \(aqconf\(aq: \(aq/etc/apache2/apache.conf\(aq,
  44547. },
  44548. \(aqRedHat\(aq: {
  44549. \(aqserver\(aq: \(aqhttpd\(aq,
  44550. \(aqservice\(aq: \(aqhttpd\(aq,
  44551. \(aqconf\(aq: \(aq/etc/httpd/httpd.conf\(aq,
  44552. },
  44553. }, merge=salt[\(aqpillar.get\(aq](\(aqapache:lookup\(aq)) %}
  44554. .ft P
  44555. .fi
  44556. .UNINDENT
  44557. .UNINDENT
  44558. .sp
  44559. \fB/srv/pillar/apache.sls\fP:
  44560. .INDENT 0.0
  44561. .INDENT 3.5
  44562. .sp
  44563. .nf
  44564. .ft C
  44565. apache:
  44566. lookup:
  44567. config:
  44568. tmpl: salt://apache/files/httpd.conf
  44569. .ft P
  44570. .fi
  44571. .UNINDENT
  44572. .UNINDENT
  44573. .sp
  44574. \fB/srv/salt/apache/init.sls\fP:
  44575. .INDENT 0.0
  44576. .INDENT 3.5
  44577. .sp
  44578. .nf
  44579. .ft C
  44580. {% from "apache/map.jinja" import apache with context %}
  44581. apache:
  44582. pkg.installed:
  44583. \- name: {{ apache.server }}
  44584. service.running:
  44585. \- name: {{ apache.service }}
  44586. \- enable: True
  44587. .ft P
  44588. .fi
  44589. .UNINDENT
  44590. .UNINDENT
  44591. .sp
  44592. \fB/srv/salt/apache/conf.sls\fP:
  44593. .INDENT 0.0
  44594. .INDENT 3.5
  44595. .sp
  44596. .nf
  44597. .ft C
  44598. {% from "apache/map.jinja" import apache with context %}
  44599. include:
  44600. \- apache
  44601. apache_conf:
  44602. file.managed:
  44603. \- name: {{ apache.conf }}
  44604. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44605. \- template: jinja
  44606. \- user: root
  44607. \- watch_in:
  44608. \- service: apache
  44609. .ft P
  44610. .fi
  44611. .UNINDENT
  44612. .UNINDENT
  44613. .sp
  44614. This new structure now allows users to choose whether they only wish to
  44615. install the default Apache, or if they wish, overwrite the default package,
  44616. service, configuration file location, or the configuration file itself. In
  44617. addition to this the data has been broken between multiple files allowing for
  44618. users to identify where they need to change the associated data.
  44619. .SS Storing Secure Data
  44620. .sp
  44621. Secure data refers to any information that you would not wish to share with
  44622. anyone accessing a server. This could include data such as passwords,
  44623. keys, or other information.
  44624. .sp
  44625. As all data within a state is accessible by EVERY server that is connected
  44626. it is important to store secure data within pillar. This will ensure that only
  44627. those servers which require this secure data have access to it. In this
  44628. example a use can go from an insecure configuration to one which is only
  44629. accessible by the appropriate hosts:
  44630. .sp
  44631. \fB/srv/salt/mysql/testerdb.sls\fP:
  44632. .INDENT 0.0
  44633. .INDENT 3.5
  44634. .sp
  44635. .nf
  44636. .ft C
  44637. testdb:
  44638. mysql_database.present:
  44639. \- name: testerdb
  44640. .ft P
  44641. .fi
  44642. .UNINDENT
  44643. .UNINDENT
  44644. .sp
  44645. \fB/srv/salt/mysql/user.sls\fP:
  44646. .INDENT 0.0
  44647. .INDENT 3.5
  44648. .sp
  44649. .nf
  44650. .ft C
  44651. include:
  44652. \- mysql.testerdb
  44653. testdb_user:
  44654. mysql_user.present:
  44655. \- name: frank
  44656. \- password: "test3rdb"
  44657. \- host: localhost
  44658. \- require:
  44659. \- sls: mysql.testerdb
  44660. .ft P
  44661. .fi
  44662. .UNINDENT
  44663. .UNINDENT
  44664. .sp
  44665. Many users would review this state and see that the password is there in plain
  44666. text, which is quite problematic. It results in several issues which may not
  44667. be immediately visible.
  44668. .sp
  44669. The first of these issues is clear to most users \-\- the password being visible
  44670. in this state. This means that any minion will have a copy of this, and
  44671. therefore the password which is a major security concern as minions may not
  44672. be locked down as tightly as the master server.
  44673. .sp
  44674. The other issue that can be encountered is access by users on the master. If
  44675. everyone has access to the states (or their repository), then they are able to
  44676. review this password. Keeping your password data accessible by only a few
  44677. users is critical for both security and peace of mind.
  44678. .sp
  44679. There is also the issue of portability. When a state is configured this way
  44680. it results in multiple changes needing to be made. This was discussed in the
  44681. sections above but it is a critical idea to drive home. If states are not
  44682. portable it may result in more work later!
  44683. .sp
  44684. Fixing this issue is relatively simple, the content just needs to be moved to
  44685. the associated pillar:
  44686. .sp
  44687. \fB/srv/pillar/mysql.sls\fP:
  44688. .INDENT 0.0
  44689. .INDENT 3.5
  44690. .sp
  44691. .nf
  44692. .ft C
  44693. mysql:
  44694. lookup:
  44695. name: testerdb
  44696. password: test3rdb
  44697. user: frank
  44698. host: localhost
  44699. .ft P
  44700. .fi
  44701. .UNINDENT
  44702. .UNINDENT
  44703. .sp
  44704. \fB/srv/salt/mysql/testerdb.sls\fP:
  44705. .INDENT 0.0
  44706. .INDENT 3.5
  44707. .sp
  44708. .nf
  44709. .ft C
  44710. testdb:
  44711. mysql_database.present:
  44712. \- name: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:name\(aq) }}
  44713. .ft P
  44714. .fi
  44715. .UNINDENT
  44716. .UNINDENT
  44717. .sp
  44718. \fB/srv/salt/mysql/user.sls\fP:
  44719. .INDENT 0.0
  44720. .INDENT 3.5
  44721. .sp
  44722. .nf
  44723. .ft C
  44724. include:
  44725. \- mysql.testerdb
  44726. testdb_user:
  44727. mysql_user.present:
  44728. \- name: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:user\(aq) }}
  44729. \- password: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:password\(aq) }}
  44730. \- host: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:host\(aq) }}
  44731. \- require:
  44732. \- sls: mysql.testerdb
  44733. .ft P
  44734. .fi
  44735. .UNINDENT
  44736. .UNINDENT
  44737. .sp
  44738. Now that the database details have been moved to the associated pillar file,
  44739. only machines which are targeted via pillar will have access to these details.
  44740. Access to users who should not be able to review these details can also be
  44741. prevented while ensuring that they are still able to write states which take
  44742. advantage of this information.
  44743. .SH REMOTE EXECUTION
  44744. .sp
  44745. Running pre\-defined or arbitrary commands on remote hosts, also known as
  44746. remote execution, is the core function of Salt. The following links explore
  44747. modules and returners, which are two key elements of remote execution.
  44748. .sp
  44749. \fBSalt Execution Modules\fP
  44750. .sp
  44751. Salt execution modules are called by the remote execution system to perform
  44752. a wide variety of tasks. These modules provide functionality such as installing
  44753. packages, restarting a service, running a remote command, transferring files,
  44754. and so on.
  44755. .INDENT 0.0
  44756. .INDENT 3.5
  44757. .INDENT 0.0
  44758. .TP
  44759. .B Full list of execution modules
  44760. Contains: a list of core modules that ship with Salt.
  44761. .TP
  44762. .B Writing execution modules
  44763. Contains: a guide on how to write Salt modules.
  44764. .UNINDENT
  44765. .UNINDENT
  44766. .UNINDENT
  44767. .SS Running Commands on Salt Minions
  44768. .sp
  44769. Salt can be controlled by a command line client by the root user on the Salt
  44770. master. The Salt command line client uses the Salt client API to communicate
  44771. with the Salt master server. The Salt client is straightforward and simple
  44772. to use.
  44773. .sp
  44774. Using the Salt client commands can be easily sent to the minions.
  44775. .sp
  44776. Each of these commands accepts an explicit \fI\-\-config\fP option to point to either
  44777. the master or minion configuration file. If this option is not provided and
  44778. the default configuration file does not exist then Salt falls back to use the
  44779. environment variables \fBSALT_MASTER_CONFIG\fP and \fBSALT_MINION_CONFIG\fP\&.
  44780. .sp
  44781. \fBSEE ALSO:\fP
  44782. .INDENT 0.0
  44783. .INDENT 3.5
  44784. Configuration
  44785. .UNINDENT
  44786. .UNINDENT
  44787. .SS Using the Salt Command
  44788. .sp
  44789. The Salt command needs a few components to send information to the Salt
  44790. minions. The target minions need to be defined, the function to call and any
  44791. arguments the function requires.
  44792. .SS Defining the Target Minions
  44793. .sp
  44794. The first argument passed to salt, defines the target minions, the target
  44795. minions are accessed via their hostname. The default target type is a bash
  44796. glob:
  44797. .INDENT 0.0
  44798. .INDENT 3.5
  44799. .sp
  44800. .nf
  44801. .ft C
  44802. salt \(aq*foo.com\(aq sys.doc
  44803. .ft P
  44804. .fi
  44805. .UNINDENT
  44806. .UNINDENT
  44807. .sp
  44808. Salt can also define the target minions with regular expressions:
  44809. .INDENT 0.0
  44810. .INDENT 3.5
  44811. .sp
  44812. .nf
  44813. .ft C
  44814. salt \-E \(aq.*\(aq cmd.run \(aqls \-l | grep foo\(aq
  44815. .ft P
  44816. .fi
  44817. .UNINDENT
  44818. .UNINDENT
  44819. .sp
  44820. Or to explicitly list hosts, salt can take a list:
  44821. .INDENT 0.0
  44822. .INDENT 3.5
  44823. .sp
  44824. .nf
  44825. .ft C
  44826. salt \-L foo.bar.baz,quo.qux cmd.run \(aqps aux | grep foo\(aq
  44827. .ft P
  44828. .fi
  44829. .UNINDENT
  44830. .UNINDENT
  44831. .SS More Powerful Targets
  44832. .sp
  44833. See Targeting\&.
  44834. .SS Calling the Function
  44835. .sp
  44836. The function to call on the specified target is placed after the target
  44837. specification.
  44838. .sp
  44839. New in version 0.9.8.
  44840. .sp
  44841. Functions may also accept arguments, space\-delimited:
  44842. .INDENT 0.0
  44843. .INDENT 3.5
  44844. .sp
  44845. .nf
  44846. .ft C
  44847. salt \(aq*\(aq cmd.exec_code python \(aqimport sys; print sys.version\(aq
  44848. .ft P
  44849. .fi
  44850. .UNINDENT
  44851. .UNINDENT
  44852. .sp
  44853. Optional, keyword arguments are also supported:
  44854. .INDENT 0.0
  44855. .INDENT 3.5
  44856. .sp
  44857. .nf
  44858. .ft C
  44859. salt \(aq*\(aq pip.install salt timeout=5 upgrade=True
  44860. .ft P
  44861. .fi
  44862. .UNINDENT
  44863. .UNINDENT
  44864. .sp
  44865. They are always in the form of \fBkwarg=argument\fP\&.
  44866. .sp
  44867. Arguments are formatted as YAML:
  44868. .INDENT 0.0
  44869. .INDENT 3.5
  44870. .sp
  44871. .nf
  44872. .ft C
  44873. salt \(aq*\(aq cmd.run \(aqecho "Hello: $FIRST_NAME"\(aq env=\(aq{FIRST_NAME: "Joe"}\(aq
  44874. .ft P
  44875. .fi
  44876. .UNINDENT
  44877. .UNINDENT
  44878. .sp
  44879. Note: dictionaries must have curly braces around them (like the \fBenv\fP
  44880. keyword argument above). This was changed in 0.15.1: in the above example,
  44881. the first argument used to be parsed as the dictionary
  44882. \fB{\(aqecho "Hello\(aq: \(aq$FIRST_NAME"\(aq}\fP\&. This was generally not the expected
  44883. behavior.
  44884. .sp
  44885. If you want to test what parameters are actually passed to a module, use the
  44886. \fBtest.arg_repr\fP command:
  44887. .INDENT 0.0
  44888. .INDENT 3.5
  44889. .sp
  44890. .nf
  44891. .ft C
  44892. salt \(aq*\(aq test.arg_repr \(aqecho "Hello: $FIRST_NAME"\(aq env=\(aq{FIRST_NAME: "Joe"}\(aq
  44893. .ft P
  44894. .fi
  44895. .UNINDENT
  44896. .UNINDENT
  44897. .SS Finding available minion functions
  44898. .sp
  44899. The Salt functions are self documenting, all of the function documentation can
  44900. be retried from the minions via the \fBsys.doc()\fP function:
  44901. .INDENT 0.0
  44902. .INDENT 3.5
  44903. .sp
  44904. .nf
  44905. .ft C
  44906. salt \(aq*\(aq sys.doc
  44907. .ft P
  44908. .fi
  44909. .UNINDENT
  44910. .UNINDENT
  44911. .SS Compound Command Execution
  44912. .sp
  44913. If a series of commands needs to be sent to a single target specification then
  44914. the commands can be sent in a single publish. This can make gathering
  44915. groups of information faster, and lowers the stress on the network for repeated
  44916. commands.
  44917. .sp
  44918. Compound command execution works by sending a list of functions and arguments
  44919. instead of sending a single function and argument. The functions are executed
  44920. on the minion in the order they are defined on the command line, and then the
  44921. data from all of the commands are returned in a dictionary. This means that
  44922. the set of commands are called in a predictable way, and the returned data can
  44923. be easily interpreted.
  44924. .sp
  44925. Executing compound commands if done by passing a comma delimited list of
  44926. functions, followed by a comma delimited list of arguments:
  44927. .INDENT 0.0
  44928. .INDENT 3.5
  44929. .sp
  44930. .nf
  44931. .ft C
  44932. salt \(aq*\(aq cmd.run,test.ping,test.echo \(aqcat /proc/cpuinfo\(aq,,foo
  44933. .ft P
  44934. .fi
  44935. .UNINDENT
  44936. .UNINDENT
  44937. .sp
  44938. The trick to look out for here, is that if a function is being passed no
  44939. arguments, then there needs to be a placeholder for the absent arguments. This
  44940. is why in the above example, there are two commas right next to each other.
  44941. \fBtest.ping\fP takes no arguments, so we need to add another comma, otherwise
  44942. Salt would attempt to pass "foo" to \fBtest.ping\fP\&.
  44943. .sp
  44944. If you need to pass arguments that include commas, then make sure you add
  44945. spaces around the commas that separate arguments. For example:
  44946. .INDENT 0.0
  44947. .INDENT 3.5
  44948. .sp
  44949. .nf
  44950. .ft C
  44951. salt \(aq*\(aq cmd.run,test.ping,test.echo \(aqecho "1,2,3"\(aq , , foo
  44952. .ft P
  44953. .fi
  44954. .UNINDENT
  44955. .UNINDENT
  44956. .sp
  44957. You may change the arguments separator using the \fB\-\-args\-separator\fP option:
  44958. .INDENT 0.0
  44959. .INDENT 3.5
  44960. .sp
  44961. .nf
  44962. .ft C
  44963. salt \-\-args\-separator=:: \(aq*\(aq some.fun,test.echo params with , comma :: foo
  44964. .ft P
  44965. .fi
  44966. .UNINDENT
  44967. .UNINDENT
  44968. .SS CLI Completion
  44969. .sp
  44970. Shell completion scripts for the Salt CLI are available in the \fBpkg\fP Salt
  44971. \fI\%source directory\fP\&.
  44972. .SS Writing Execution Modules
  44973. .sp
  44974. Salt execution modules are the functions called by the \fBsalt\fP command.
  44975. .SS Modules Are Easy to Write!
  44976. .sp
  44977. Writing Salt execution modules is straightforward.
  44978. .sp
  44979. A Salt execution module is a Python or \fI\%Cython\fP module placed in a directory
  44980. called \fB_modules/\fP at the root of the Salt fileserver. When using the default
  44981. fileserver backend (i.e. \fBroots\fP), unless
  44982. environments are otherwise defined in the \fBfile_roots\fP config
  44983. option, the \fB_modules/\fP directory would be located in \fB/srv/salt/_modules\fP
  44984. on most systems.
  44985. .sp
  44986. Modules placed in \fB_modules/\fP will be synced to the minions when any of the
  44987. following Salt functions are called:
  44988. .INDENT 0.0
  44989. .IP \(bu 2
  44990. \fBstate.highstate\fP (or \fBstate.apply\fP with no state argument)
  44991. .IP \(bu 2
  44992. \fBsaltutil.sync_modules\fP
  44993. .IP \(bu 2
  44994. \fBsaltutil.sync_all\fP
  44995. .UNINDENT
  44996. .sp
  44997. Modules placed in \fB_modules/\fP will be synced to masters when any of the
  44998. following Salt runners are called:
  44999. .INDENT 0.0
  45000. .IP \(bu 2
  45001. \fBsaltutil.sync_modules\fP
  45002. .IP \(bu 2
  45003. \fBsaltutil.sync_all\fP
  45004. .UNINDENT
  45005. .sp
  45006. Note that a module\(aqs default name is its filename
  45007. (i.e. \fBfoo.py\fP becomes module \fBfoo\fP), but that its name can be overridden
  45008. by using a \fI\%__virtual__ function\fP\&.
  45009. .sp
  45010. If a Salt module has errors and cannot be imported, the Salt minion will continue
  45011. to load without issue and the module with errors will simply be omitted.
  45012. .sp
  45013. If adding a Cython module the file must be named \fB<modulename>.pyx\fP so that
  45014. the loader knows that the module needs to be imported as a Cython module. The
  45015. compilation of the Cython module is automatic and happens when the minion
  45016. starts, so only the \fB*.pyx\fP file is required.
  45017. .SS Zip Archives as Modules
  45018. .sp
  45019. Python 2.3 and higher allows developers to directly import zip archives
  45020. containing Python code. By setting \fBenable_zip_modules\fP to
  45021. \fBTrue\fP in the minion config, the Salt loader will be able to import \fB\&.zip\fP
  45022. files in this fashion. This allows Salt module developers to package
  45023. dependencies with their modules for ease of deployment, isolation, etc.
  45024. .sp
  45025. For a user, Zip Archive modules behave just like other modules. When executing
  45026. a function from a module provided as the file \fBmy_module.zip\fP, a user would
  45027. call a function within that module as \fBmy_module.<function>\fP\&.
  45028. .SS Creating a Zip Archive Module
  45029. .sp
  45030. A Zip Archive module is structured similarly to a simple \fI\%Python package\fP\&.
  45031. The \fB\&.zip\fP file contains a single directory with the same name as the module.
  45032. The module code traditionally in \fB<module_name>.py\fP goes in
  45033. \fB<module_name>/__init__.py\fP\&. The dependency packages are subdirectories of
  45034. \fB<module_name>/\fP\&.
  45035. .sp
  45036. Here is an example directory structure for the \fBlumberjack\fP module, which has
  45037. two library dependencies (\fBsleep\fP and \fBwork\fP) to be included.
  45038. .INDENT 0.0
  45039. .INDENT 3.5
  45040. .sp
  45041. .nf
  45042. .ft C
  45043. modules $ ls \-R lumberjack
  45044. __init__.py sleep work
  45045. lumberjack/sleep:
  45046. __init__.py
  45047. lumberjack/work:
  45048. __init__.py
  45049. .ft P
  45050. .fi
  45051. .UNINDENT
  45052. .UNINDENT
  45053. .sp
  45054. The contents of \fBlumberjack/__init__.py\fP show how to import and use these
  45055. included libraries.
  45056. .INDENT 0.0
  45057. .INDENT 3.5
  45058. .sp
  45059. .nf
  45060. .ft C
  45061. # Libraries included in lumberjack.zip
  45062. from lumberjack import sleep, work
  45063. def is_ok(person):
  45064. """ Checks whether a person is really a lumberjack """
  45065. return sleep.all_night(person) and work.all_day(person)
  45066. .ft P
  45067. .fi
  45068. .UNINDENT
  45069. .UNINDENT
  45070. .sp
  45071. Then, create the zip:
  45072. .INDENT 0.0
  45073. .INDENT 3.5
  45074. .sp
  45075. .nf
  45076. .ft C
  45077. modules $ zip \-r lumberjack lumberjack
  45078. adding: lumberjack/ (stored 0%)
  45079. adding: lumberjack/__init__.py (deflated 39%)
  45080. adding: lumberjack/sleep/ (stored 0%)
  45081. adding: lumberjack/sleep/__init__.py (deflated 7%)
  45082. adding: lumberjack/work/ (stored 0%)
  45083. adding: lumberjack/work/__init__.py (deflated 7%)
  45084. modules $ unzip \-l lumberjack.zip
  45085. Archive: lumberjack.zip
  45086. Length Date Time Name
  45087. \-\-\-\-\-\-\-\- \-\-\-\- \-\-\-\- \-\-\-\-
  45088. 0 08\-21\-15 20:08 lumberjack/
  45089. 348 08\-21\-15 20:08 lumberjack/__init__.py
  45090. 0 08\-21\-15 19:53 lumberjack/sleep/
  45091. 83 08\-21\-15 19:53 lumberjack/sleep/__init__.py
  45092. 0 08\-21\-15 19:53 lumberjack/work/
  45093. 81 08\-21\-15 19:21 lumberjack/work/__init__.py
  45094. \-\-\-\-\-\-\-\- \-\-\-\-\-\-\-
  45095. 512 6 files
  45096. .ft P
  45097. .fi
  45098. .UNINDENT
  45099. .UNINDENT
  45100. .sp
  45101. Once placed in \fBfile_roots\fP, Salt users can distribute and use
  45102. \fBlumberjack.zip\fP like any other module.
  45103. .INDENT 0.0
  45104. .INDENT 3.5
  45105. .sp
  45106. .nf
  45107. .ft C
  45108. $ sudo salt minion1 saltutil.sync_modules
  45109. minion1:
  45110. \- modules.lumberjack
  45111. $ sudo salt minion1 lumberjack.is_ok \(aqMichael Palin\(aq
  45112. minion1:
  45113. True
  45114. .ft P
  45115. .fi
  45116. .UNINDENT
  45117. .UNINDENT
  45118. .SS Cross Calling Execution Modules
  45119. .sp
  45120. All of the Salt execution modules are available to each other and modules can
  45121. call functions available in other execution modules.
  45122. .sp
  45123. The variable \fB__salt__\fP is packed into the modules after they are loaded into
  45124. the Salt minion.
  45125. .sp
  45126. The \fB__salt__\fP variable is a \fI\%Python dictionary\fP
  45127. containing all of the Salt functions. Dictionary keys are strings representing
  45128. the names of the modules and the values are the functions themselves.
  45129. .sp
  45130. Salt modules can be cross\-called by accessing the value in the \fB__salt__\fP
  45131. dict:
  45132. .INDENT 0.0
  45133. .INDENT 3.5
  45134. .sp
  45135. .nf
  45136. .ft C
  45137. def foo(bar):
  45138. return __salt__["cmd.run"](bar)
  45139. .ft P
  45140. .fi
  45141. .UNINDENT
  45142. .UNINDENT
  45143. .sp
  45144. This code will call the \fIrun\fP function in the \fBcmd\fP
  45145. module and pass the argument \fBbar\fP to it.
  45146. .SS Calling Execution Modules on the Salt Master
  45147. .sp
  45148. New in version 2016.11.0.
  45149. .sp
  45150. Execution modules can now also be called via the \fBsalt\-run\fP command
  45151. using the salt runner\&.
  45152. .SS Preloaded Execution Module Data
  45153. .sp
  45154. When interacting with execution modules often it is nice to be able to read
  45155. information dynamically about the minion or to load in configuration parameters
  45156. for a module.
  45157. .sp
  45158. Salt allows for different types of data to be loaded into the modules by the
  45159. minion.
  45160. .SS Grains Data
  45161. .sp
  45162. The values detected by the Salt Grains on the minion are available in a
  45163. \fI\%Python dictionary\fP named \fB__grains__\fP and can be
  45164. accessed from within callable objects in the Python modules.
  45165. .sp
  45166. To see the contents of the grains dictionary for a given system in your
  45167. deployment run the \fBgrains.items()\fP function:
  45168. .INDENT 0.0
  45169. .INDENT 3.5
  45170. .sp
  45171. .nf
  45172. .ft C
  45173. salt \(aqhostname\(aq grains.items \-\-output=pprint
  45174. .ft P
  45175. .fi
  45176. .UNINDENT
  45177. .UNINDENT
  45178. .sp
  45179. Any value in a grains dictionary can be accessed as any other Python
  45180. dictionary. For example, the grain representing the minion ID is stored in the
  45181. \fBid\fP key and from an execution module, the value would be stored in
  45182. \fB__grains__[\(aqid\(aq]\fP\&.
  45183. .SS Module Configuration
  45184. .sp
  45185. Since parameters for configuring a module may be desired, Salt allows for
  45186. configuration information from the minion configuration file to be passed to
  45187. execution modules.
  45188. .sp
  45189. Since the minion configuration file is a YAML document, arbitrary configuration
  45190. data can be passed in the minion config that is read by the modules. It is
  45191. therefore \fBstrongly\fP recommended that the values passed in the configuration
  45192. file match the module name. A value intended for the \fBtest\fP execution module
  45193. should be named \fBtest.<value>\fP\&.
  45194. .sp
  45195. The test execution module contains usage of the module configuration and the
  45196. default configuration file for the minion contains the information and format
  45197. used to pass data to the modules. \fBsalt.modules.test\fP,
  45198. \fBconf/minion\fP\&.
  45199. .SS \fB__init__\fP Function
  45200. .sp
  45201. If you want your module to have different execution modes based on minion
  45202. configuration, you can use the \fB__init__(opts)\fP function to perform initial
  45203. module setup. The parameter \fBopts\fP is the complete minion configuration,
  45204. as also available in the \fB__opts__\fP dict.
  45205. .INDENT 0.0
  45206. .INDENT 3.5
  45207. .sp
  45208. .nf
  45209. .ft C
  45210. """
  45211. Cheese module initialization example
  45212. """
  45213. def __init__(opts):
  45214. """
  45215. Allow foreign imports if configured to do so
  45216. """
  45217. if opts.get("cheese.allow_foreign", False):
  45218. _enable_foreign_products()
  45219. .ft P
  45220. .fi
  45221. .UNINDENT
  45222. .UNINDENT
  45223. .SS Strings and Unicode
  45224. .sp
  45225. An execution module author should always assume that strings fed to the module
  45226. have already decoded from strings into Unicode. In Python 2, these will
  45227. be of type \(aqUnicode\(aq and in Python 3 they will be of type \fBstr\fP\&. Calling
  45228. from a state to other Salt sub\-systems, should pass Unicode (or bytes if passing binary data). In the
  45229. rare event that a state needs to write directly to disk, Unicode should be
  45230. encoded to a string immediately before writing to disk. An author may use
  45231. \fB__salt_system_encoding__\fP to learn what the encoding type of the system is.
  45232. For example, \fI\(aqmy_string\(aq.encode(__salt_system_encoding__\(aq)\fP\&.
  45233. .SS Outputter Configuration
  45234. .sp
  45235. Since execution module functions can return different data, and the way the
  45236. data is printed can greatly change the presentation, Salt allows for a specific
  45237. outputter to be set on a function\-by\-function basis.
  45238. .sp
  45239. This is done be declaring an \fB__outputter__\fP dictionary in the global scope
  45240. of the module. The \fB__outputter__\fP dictionary contains a mapping of function
  45241. names to Salt outputters\&.
  45242. .INDENT 0.0
  45243. .INDENT 3.5
  45244. .sp
  45245. .nf
  45246. .ft C
  45247. __outputter__ = {"run": "txt"}
  45248. .ft P
  45249. .fi
  45250. .UNINDENT
  45251. .UNINDENT
  45252. .sp
  45253. This will ensure that the \fBtxt\fP outputter is used to display output from the
  45254. \fBrun\fP function.
  45255. .SS Virtual Modules
  45256. .sp
  45257. Virtual modules let you override the name of a module in order to use the same
  45258. name to refer to one of several similar modules. The specific module that is
  45259. loaded for a virtual name is selected based on the current platform or
  45260. environment.
  45261. .sp
  45262. For example, packages are managed across platforms using the \fBpkg\fP module.
  45263. \fBpkg\fP is a virtual module name that is an alias for the specific package
  45264. manager module that is loaded on a specific system (for example, \fByumpkg\fP on RHEL/CentOS systems , and \fBaptpkg\fP on Ubuntu).
  45265. .sp
  45266. Virtual module names are set using the \fB__virtual__\fP function and the
  45267. \fI\%virtual name\fP\&.
  45268. .SS \fB__virtual__\fP Function
  45269. .sp
  45270. The \fB__virtual__\fP function returns either a \fI\%string\fP,
  45271. \fI\%True\fP, \fI\%False\fP, or \fI\%False\fP with an \fI\%error
  45272. string\fP\&. If a string is returned then the module is loaded
  45273. using the name of the string as the virtual name. If \fBTrue\fP is returned the
  45274. module is loaded using the current module name. If \fBFalse\fP is returned the
  45275. module is not loaded. \fBFalse\fP lets the module perform system checks and
  45276. prevent loading if dependencies are not met.
  45277. .sp
  45278. Since \fB__virtual__\fP is called before the module is loaded, \fB__salt__\fP will
  45279. be unreliable as not all modules will be available at this point in time. The
  45280. \fB__pillar__\fP and \fB__grains__\fP "dunder" dictionaries
  45281. are available however.
  45282. .sp
  45283. \fBNOTE:\fP
  45284. .INDENT 0.0
  45285. .INDENT 3.5
  45286. Modules which return a string from \fB__virtual__\fP that is already used by
  45287. a module that ships with Salt will _override_ the stock module.
  45288. .UNINDENT
  45289. .UNINDENT
  45290. .SS Returning Error Information from \fB__virtual__\fP
  45291. .sp
  45292. Optionally, Salt plugin modules, such as execution, state, returner, beacon,
  45293. etc. modules may additionally return a string containing the reason that a
  45294. module could not be loaded. For example, an execution module called \fBcheese\fP
  45295. and a corresponding state module also called \fBcheese\fP, both depending on a
  45296. utility called \fBenzymes\fP should have \fB__virtual__\fP functions that handle
  45297. the case when the dependency is unavailable.
  45298. .INDENT 0.0
  45299. .INDENT 3.5
  45300. .sp
  45301. .nf
  45302. .ft C
  45303. """
  45304. Cheese execution (or returner/beacon/etc.) module
  45305. """
  45306. try:
  45307. import enzymes
  45308. HAS_ENZYMES = True
  45309. except ImportError:
  45310. HAS_ENZYMES = False
  45311. def __virtual__():
  45312. """
  45313. only load cheese if enzymes are available
  45314. """
  45315. if HAS_ENZYMES:
  45316. return "cheese"
  45317. else:
  45318. return (
  45319. False,
  45320. "The cheese execution module cannot be loaded: enzymes unavailable.",
  45321. )
  45322. def slice():
  45323. pass
  45324. .ft P
  45325. .fi
  45326. .UNINDENT
  45327. .UNINDENT
  45328. .INDENT 0.0
  45329. .INDENT 3.5
  45330. .sp
  45331. .nf
  45332. .ft C
  45333. """
  45334. Cheese state module. Note that this works in state modules because it is
  45335. guaranteed that execution modules are loaded first
  45336. """
  45337. def __virtual__():
  45338. """
  45339. only load cheese if enzymes are available
  45340. """
  45341. # predicate loading of the cheese state on the corresponding execution module
  45342. if "cheese.slice" in __salt__:
  45343. return "cheese"
  45344. else:
  45345. return False, "The cheese state module cannot be loaded: enzymes unavailable."
  45346. .ft P
  45347. .fi
  45348. .UNINDENT
  45349. .UNINDENT
  45350. .SS Examples
  45351. .sp
  45352. The package manager modules are among the best examples of using the
  45353. \fB__virtual__\fP function. A table of all the virtual \fBpkg\fP modules can be
  45354. found here\&.
  45355. .SS Overriding Virtual Module Providers
  45356. .sp
  45357. Salt often uses OS grains (\fBos\fP, \fBosrelease\fP, \fBos_family\fP, etc.) to
  45358. determine which module should be loaded as the virtual module for \fBpkg\fP,
  45359. \fBservice\fP, etc. Sometimes this OS detection is incomplete, with new distros
  45360. popping up, existing distros changing init systems, etc. The virtual modules
  45361. likely to be affected by this are in the list below (click each item for more
  45362. information):
  45363. .INDENT 0.0
  45364. .IP \(bu 2
  45365. pkg
  45366. .IP \(bu 2
  45367. service
  45368. .IP \(bu 2
  45369. user
  45370. .IP \(bu 2
  45371. shadow
  45372. .IP \(bu 2
  45373. group
  45374. .UNINDENT
  45375. .sp
  45376. If Salt is using the wrong module for one of these, first of all, please
  45377. \fI\%report it on the issue tracker\fP, so that this issue can be resolved for a
  45378. future release. To make it easier to troubleshoot, please also provide the
  45379. \fBgrains.items\fP output, taking care to
  45380. redact any sensitive information.
  45381. .sp
  45382. Then, while waiting for the SaltStack development team to fix the issue, Salt
  45383. can be made to use the correct module using the \fBproviders\fP option
  45384. in the minion config file:
  45385. .INDENT 0.0
  45386. .INDENT 3.5
  45387. .sp
  45388. .nf
  45389. .ft C
  45390. providers:
  45391. service: systemd
  45392. pkg: aptpkg
  45393. .ft P
  45394. .fi
  45395. .UNINDENT
  45396. .UNINDENT
  45397. .sp
  45398. The above example will force the minion to use the \fBsystemd\fP module to provide service management, and the
  45399. \fBaptpkg\fP module to provide package management.
  45400. .SS Logging Restrictions
  45401. .sp
  45402. As a rule, logging should not be done anywhere in a Salt module before it is
  45403. loaded. This rule apples to all code that would run before the \fB__virtual__()\fP
  45404. function, as well as the code within the \fB__virtual__()\fP function itself.
  45405. .sp
  45406. If logging statements are made before the virtual function determines if
  45407. the module should be loaded, then those logging statements will be called
  45408. repeatedly. This clutters up log files unnecessarily.
  45409. .sp
  45410. Exceptions may be considered for logging statements made at the \fBtrace\fP level.
  45411. However, it is better to provide the necessary information by another means.
  45412. One method is to \fI\%return error information\fP in the
  45413. \fB__virtual__()\fP function.
  45414. .SS \fB__virtualname__\fP
  45415. .sp
  45416. \fB__virtualname__\fP is a variable that is used by the documentation build
  45417. system to know the virtual name of a module without calling the \fB__virtual__\fP
  45418. function. Modules that return a string from the \fB__virtual__\fP function
  45419. must also set the \fB__virtualname__\fP variable.
  45420. .sp
  45421. To avoid setting the virtual name string twice, you can implement
  45422. \fB__virtual__\fP to return the value set for \fB__virtualname__\fP using a pattern
  45423. similar to the following:
  45424. .INDENT 0.0
  45425. .INDENT 3.5
  45426. .sp
  45427. .nf
  45428. .ft C
  45429. # Define the module\(aqs virtual name
  45430. __virtualname__ = "pkg"
  45431. def __virtual__():
  45432. """
  45433. Confine this module to Mac OS with Homebrew.
  45434. """
  45435. if salt.utils.path.which("brew") and __grains__["os"] == "MacOS":
  45436. return __virtualname__
  45437. return False
  45438. .ft P
  45439. .fi
  45440. .UNINDENT
  45441. .UNINDENT
  45442. .sp
  45443. The \fB__virtual__()\fP function can return a \fBTrue\fP or \fBFalse\fP boolean, a tuple,
  45444. or a string. If it returns a \fBTrue\fP value, this \fB__virtualname__\fP module\-level
  45445. attribute can be set as seen in the above example. This is the string that the module
  45446. should be referred to as.
  45447. .sp
  45448. When \fB__virtual__()\fP returns a tuple, the first item should be a boolean and the
  45449. second should be a string. This is typically done when the module should not load. The
  45450. first value of the tuple is \fBFalse\fP and the second is the error message to display
  45451. for why the module did not load.
  45452. .sp
  45453. For example:
  45454. .INDENT 0.0
  45455. .INDENT 3.5
  45456. .sp
  45457. .nf
  45458. .ft C
  45459. def __virtual__():
  45460. """
  45461. Only load if git exists on the system
  45462. """
  45463. if salt.utils.path.which("git") is None:
  45464. return (False, "The git execution module cannot be loaded: git unavailable.")
  45465. else:
  45466. return True
  45467. .ft P
  45468. .fi
  45469. .UNINDENT
  45470. .UNINDENT
  45471. .SS Documentation
  45472. .sp
  45473. Salt execution modules are documented. The \fBsys.doc()\fP function will return
  45474. the documentation for all available modules:
  45475. .INDENT 0.0
  45476. .INDENT 3.5
  45477. .sp
  45478. .nf
  45479. .ft C
  45480. salt \(aq*\(aq sys.doc
  45481. .ft P
  45482. .fi
  45483. .UNINDENT
  45484. .UNINDENT
  45485. .sp
  45486. The \fBsys.doc\fP function simply prints out the docstrings found in the modules;
  45487. when writing Salt execution modules, please follow the formatting conventions
  45488. for docstrings as they appear in the other modules.
  45489. .SS Adding Documentation to Salt Modules
  45490. .sp
  45491. It is strongly suggested that all Salt modules have documentation added.
  45492. .sp
  45493. To add documentation add a \fI\%Python docstring\fP to the function.
  45494. .INDENT 0.0
  45495. .INDENT 3.5
  45496. .sp
  45497. .nf
  45498. .ft C
  45499. def spam(eggs):
  45500. """
  45501. A function to make some spam with eggs!
  45502. CLI Example::
  45503. salt \(aq*\(aq test.spam eggs
  45504. """
  45505. return eggs
  45506. .ft P
  45507. .fi
  45508. .UNINDENT
  45509. .UNINDENT
  45510. .sp
  45511. Now when the sys.doc call is executed the docstring will be cleanly returned
  45512. to the calling terminal.
  45513. .sp
  45514. Documentation added to execution modules in docstrings will automatically be
  45515. added to the online web\-based documentation.
  45516. .SS Add Execution Module Metadata
  45517. .sp
  45518. When writing a Python docstring for an execution module, add information about
  45519. the module using the following field lists:
  45520. .INDENT 0.0
  45521. .INDENT 3.5
  45522. .sp
  45523. .nf
  45524. .ft C
  45525. :maintainer: Thomas Hatch <thatch@saltstack.com, Seth House <shouse@saltstack.com>
  45526. :maturity: new
  45527. :depends: python\-mysqldb
  45528. :platform: all
  45529. .ft P
  45530. .fi
  45531. .UNINDENT
  45532. .UNINDENT
  45533. .sp
  45534. The maintainer field is a comma\-delimited list of developers who help maintain
  45535. this module.
  45536. .sp
  45537. The maturity field indicates the level of quality and testing for this module.
  45538. Standard labels will be determined.
  45539. .sp
  45540. The depends field is a comma\-delimited list of modules that this module depends
  45541. on.
  45542. .sp
  45543. The platform field is a comma\-delimited list of platforms that this module is
  45544. known to run on.
  45545. .SS Log Output
  45546. .sp
  45547. You can call the logger from custom modules to write messages to the minion
  45548. logs. The following code snippet demonstrates writing log messages:
  45549. .INDENT 0.0
  45550. .INDENT 3.5
  45551. .sp
  45552. .nf
  45553. .ft C
  45554. import logging
  45555. log = logging.getLogger(__name__)
  45556. log.info("Here is Some Information")
  45557. log.warning("You Should Not Do That")
  45558. log.error("It Is Busted")
  45559. .ft P
  45560. .fi
  45561. .UNINDENT
  45562. .UNINDENT
  45563. .SS Aliasing Functions
  45564. .sp
  45565. Sometimes one wishes to use a function name that would shadow a python built\-in.
  45566. A common example would be \fBset()\fP\&. To support this, append an underscore to
  45567. the function definition, \fBdef set_():\fP, and use the \fB__func_alias__\fP feature
  45568. to provide an alias to the function.
  45569. .sp
  45570. \fB__func_alias__\fP is a dictionary where each key is the name of a function in
  45571. the module, and each value is a string representing the alias for that function.
  45572. When calling an aliased function from a different execution module, state
  45573. module, or from the cli, the alias name should be used.
  45574. .INDENT 0.0
  45575. .INDENT 3.5
  45576. .sp
  45577. .nf
  45578. .ft C
  45579. __func_alias__ = {
  45580. "set_": "set",
  45581. "list_": "list",
  45582. }
  45583. .ft P
  45584. .fi
  45585. .UNINDENT
  45586. .UNINDENT
  45587. .SS Private Functions
  45588. .sp
  45589. In Salt, Python callable objects contained within an execution module are made
  45590. available to the Salt minion for use. The only exception to this rule is a
  45591. callable object with a name starting with an underscore \fB_\fP\&.
  45592. .SS Objects Loaded Into the Salt Minion
  45593. .INDENT 0.0
  45594. .INDENT 3.5
  45595. .sp
  45596. .nf
  45597. .ft C
  45598. def foo(bar):
  45599. return bar
  45600. .ft P
  45601. .fi
  45602. .UNINDENT
  45603. .UNINDENT
  45604. .SS Objects NOT Loaded into the Salt Minion
  45605. .INDENT 0.0
  45606. .INDENT 3.5
  45607. .sp
  45608. .nf
  45609. .ft C
  45610. def _foobar(baz): # Preceded with an _
  45611. return baz
  45612. cheese = {} # Not a callable Python object
  45613. .ft P
  45614. .fi
  45615. .UNINDENT
  45616. .UNINDENT
  45617. .SS Useful Decorators for Modules
  45618. .SS Depends Decorator
  45619. .sp
  45620. When writing execution modules there are many times where some of the module
  45621. will work on all hosts but some functions have an external dependency, such as
  45622. a service that needs to be installed or a binary that needs to be present on
  45623. the system.
  45624. .sp
  45625. Instead of trying to wrap much of the code in large try/except blocks, a
  45626. decorator can be used.
  45627. .sp
  45628. If the dependencies passed to the decorator don\(aqt exist, then the salt minion
  45629. will remove those functions from the module on that host.
  45630. .sp
  45631. If a \fBfallback_function\fP is defined, it will replace the function instead of
  45632. removing it
  45633. .INDENT 0.0
  45634. .INDENT 3.5
  45635. .sp
  45636. .nf
  45637. .ft C
  45638. import logging
  45639. from salt.utils.decorators import depends
  45640. log = logging.getLogger(__name__)
  45641. try:
  45642. import dependency_that_sometimes_exists
  45643. except ImportError as e:
  45644. log.trace("Failed to import dependency_that_sometimes_exists: {0}".format(e))
  45645. @depends("dependency_that_sometimes_exists")
  45646. def foo():
  45647. """
  45648. Function with a dependency on the "dependency_that_sometimes_exists" module,
  45649. if the "dependency_that_sometimes_exists" is missing this function will not exist
  45650. """
  45651. return True
  45652. def _fallback():
  45653. """
  45654. Fallback function for the depends decorator to replace a function with
  45655. """
  45656. return \(aq"dependency_that_sometimes_exists" needs to be installed for this function to exist\(aq
  45657. @depends("dependency_that_sometimes_exists", fallback_function=_fallback)
  45658. def foo():
  45659. """
  45660. Function with a dependency on the "dependency_that_sometimes_exists" module.
  45661. If the "dependency_that_sometimes_exists" is missing this function will be
  45662. replaced with "_fallback"
  45663. """
  45664. return True
  45665. .ft P
  45666. .fi
  45667. .UNINDENT
  45668. .UNINDENT
  45669. .sp
  45670. In addition to global dependencies the depends decorator also supports raw
  45671. booleans.
  45672. .INDENT 0.0
  45673. .INDENT 3.5
  45674. .sp
  45675. .nf
  45676. .ft C
  45677. from salt.utils.decorators import depends
  45678. HAS_DEP = False
  45679. try:
  45680. import dependency_that_sometimes_exists
  45681. HAS_DEP = True
  45682. except ImportError:
  45683. pass
  45684. @depends(HAS_DEP)
  45685. def foo():
  45686. return True
  45687. .ft P
  45688. .fi
  45689. .UNINDENT
  45690. .UNINDENT
  45691. .SS Executors
  45692. .sp
  45693. Executors are used by minion to execute module functions. Executors can be used
  45694. to modify the functions behavior, do any pre\-execution steps or execute in a
  45695. specific way like sudo executor.
  45696. .sp
  45697. Executors could be passed as a list and they will be used one\-by\-one in the
  45698. order. If an executor returns \fBNone\fP the next one will be called. If an
  45699. executor returns non\-\fBNone\fP the execution sequence is terminated and the
  45700. returned value is used as a result. It\(aqs a way executor could control modules
  45701. execution working as a filter. Note that executor could actually not execute
  45702. the function but just do something else and return \fBNone\fP like \fBsplay\fP
  45703. executor does. In this case some other executor have to be used as a final
  45704. executor that will actually execute the function. See examples below.
  45705. .sp
  45706. Executors list could be passed by minion config file in the following way:
  45707. .INDENT 0.0
  45708. .INDENT 3.5
  45709. .sp
  45710. .nf
  45711. .ft C
  45712. module_executors:
  45713. \- splay
  45714. \- direct_call
  45715. splaytime: 30
  45716. .ft P
  45717. .fi
  45718. .UNINDENT
  45719. .UNINDENT
  45720. .sp
  45721. The same could be done by command line:
  45722. .INDENT 0.0
  45723. .INDENT 3.5
  45724. .sp
  45725. .nf
  45726. .ft C
  45727. salt \-t 40 \-\-module\-executors=\(aq[splay, direct_call]\(aq \-\-executor\-opts=\(aq{splaytime: 30}\(aq \(aq*\(aq test.version
  45728. .ft P
  45729. .fi
  45730. .UNINDENT
  45731. .UNINDENT
  45732. .sp
  45733. And the same command called via netapi will look like this:
  45734. .INDENT 0.0
  45735. .INDENT 3.5
  45736. .sp
  45737. .nf
  45738. .ft C
  45739. curl \-sSk https://localhost:8000 \e
  45740. \-H \(aqAccept: application/x\-yaml\(aq \e
  45741. \-H \(aqX\-Auth\-Token: 697adbdc8fe971d09ae4c2a3add7248859c87079\(aq \e
  45742. \-H \(aqContent\-type: application/json\(aq \e
  45743. \-d \(aq[{
  45744. "client": "local",
  45745. "tgt": "*",
  45746. "fun": "test.version",
  45747. "module_executors": ["splay", "direct_call"],
  45748. "executor_opts": {"splaytime": 10}
  45749. }]\(aq
  45750. .ft P
  45751. .fi
  45752. .UNINDENT
  45753. .UNINDENT
  45754. .sp
  45755. \fBSEE ALSO:\fP
  45756. .INDENT 0.0
  45757. .INDENT 3.5
  45758. The full list of executors
  45759. .UNINDENT
  45760. .UNINDENT
  45761. .SS Writing Salt Executors
  45762. .sp
  45763. A Salt executor is written in a similar manner to a Salt execution module.
  45764. Executor is a python module placed into the \fBexecutors\fP folder and containing
  45765. the \fBexecute\fP function with the following signature:
  45766. .INDENT 0.0
  45767. .INDENT 3.5
  45768. .sp
  45769. .nf
  45770. .ft C
  45771. def execute(opts, data, func, args, kwargs):
  45772. ...
  45773. .ft P
  45774. .fi
  45775. .UNINDENT
  45776. .UNINDENT
  45777. .sp
  45778. Where the args are:
  45779. .INDENT 0.0
  45780. .TP
  45781. .B \fBopts\fP:
  45782. Dictionary containing the minion configuration options
  45783. .TP
  45784. .B \fBdata\fP:
  45785. Dictionary containing the load data including \fBexecutor_opts\fP passed via
  45786. cmdline/API.
  45787. .TP
  45788. .B \fBfunc\fP, \fBargs\fP, \fBkwargs\fP:
  45789. Execution module function to be executed and its arguments. For instance the
  45790. simplest \fBdirect_call\fP executor just runs it as \fBfunc(*args, **kwargs)\fP\&.
  45791. .TP
  45792. .B \fBReturns\fP:
  45793. \fBNone\fP if the execution sequence must be continued with the next executor.
  45794. Error string or execution result if the job is done and execution must be
  45795. stopped.
  45796. .UNINDENT
  45797. .sp
  45798. Specific options could be passed to the executor via minion config or via
  45799. \fBexecutor_opts\fP argument. For instance to access \fBsplaytime\fP option set by
  45800. minion config executor should access \fBopts.get(\(aqsplaytime\(aq)\fP\&. To access the
  45801. option set by commandline or API \fBdata.get(\(aqexecutor_opts\(aq,
  45802. {}).get(\(aqsplaytime\(aq)\fP should be used. So if an option is safe and must be
  45803. accessible by user executor should check it in both places, but if an option is
  45804. unsafe it should be read from the only config ignoring the passed request data.
  45805. .sp
  45806. There is also a function named \fBall_missing_func\fP which the name of the
  45807. \fBfunc\fP is passed, which can be used to verify if the command should still be
  45808. run, even if it is not loaded in minion_mods.
  45809. .SH CONFIGURATION MANAGEMENT
  45810. .sp
  45811. Salt contains a robust and flexible configuration management framework, which
  45812. is built on the remote execution core. This framework executes on the minions,
  45813. allowing effortless, simultaneous configuration of tens of thousands of hosts,
  45814. by rendering language specific state files. The following links provide
  45815. resources to learn more about state and renderers.
  45816. .INDENT 0.0
  45817. .TP
  45818. \fBStates\fP
  45819. Express the state of a host using small, easy to read, easy to
  45820. understand configuration files. \fINo programming required\fP\&.
  45821. .INDENT 7.0
  45822. .TP
  45823. .B Full list of states
  45824. Contains: list of install packages, create users, transfer files, start
  45825. services, and so on.
  45826. .TP
  45827. .B Pillar System
  45828. Contains: description of Salt\(aqs Pillar system.
  45829. .TP
  45830. .B Highstate data structure
  45831. Contains: a dry vocabulary and technical representation of the
  45832. configuration format that states represent.
  45833. .TP
  45834. .B Writing states
  45835. Contains: a guide on how to write Salt state modules, easily extending
  45836. Salt to directly manage more software.
  45837. .UNINDENT
  45838. .UNINDENT
  45839. .sp
  45840. \fBNOTE:\fP
  45841. .INDENT 0.0
  45842. .INDENT 3.5
  45843. Salt execution modules are different from state modules and cannot be
  45844. called as a state in an SLS file. In other words, this will not work:
  45845. .INDENT 0.0
  45846. .INDENT 3.5
  45847. .sp
  45848. .nf
  45849. .ft C
  45850. moe:
  45851. user.rename:
  45852. \- new_name: larry
  45853. \- onlyif: id moe
  45854. .ft P
  45855. .fi
  45856. .UNINDENT
  45857. .UNINDENT
  45858. .sp
  45859. You must use the \fBmodule\fP states to call
  45860. execution modules directly. Here\(aqs an example:
  45861. .INDENT 0.0
  45862. .INDENT 3.5
  45863. .sp
  45864. .nf
  45865. .ft C
  45866. rename_moe:
  45867. module.run:
  45868. \- name: user.rename
  45869. \- m_name: moe
  45870. \- new_name: larry
  45871. \- onlyif: id moe
  45872. .ft P
  45873. .fi
  45874. .UNINDENT
  45875. .UNINDENT
  45876. .UNINDENT
  45877. .UNINDENT
  45878. .INDENT 0.0
  45879. .TP
  45880. \fBRenderers\fP
  45881. Renderers use state configuration files written in a variety of languages,
  45882. templating engines, or files. Salt\(aqs configuration management system is,
  45883. under the hood, language agnostic.
  45884. .INDENT 7.0
  45885. .TP
  45886. .B Full list of renderers
  45887. Contains: a list of renderers.
  45888. YAML is one choice, but many systems are available, from
  45889. alternative templating engines to the PyDSL language for rendering
  45890. sls formulas.
  45891. .TP
  45892. .B Renderers
  45893. Contains: more information about renderers. Salt states are only
  45894. concerned with the ultimate highstate data structure, not how the
  45895. data structure was created.
  45896. .UNINDENT
  45897. .UNINDENT
  45898. .SS State System Reference
  45899. .sp
  45900. Salt offers an interface to manage the configuration or "state" of the
  45901. Salt minions. This interface is a fully capable mechanism used to enforce the
  45902. state of systems from a central manager.
  45903. .SS Mod Aggregate State Runtime Modifications
  45904. .sp
  45905. New in version 2014.7.0.
  45906. .sp
  45907. The mod_aggregate system was added in the 2014.7.0 release of Salt and allows for
  45908. runtime modification of the executing state data. Simply put, it allows for the
  45909. data used by Salt\(aqs state system to be changed on the fly at runtime, kind of
  45910. like a configuration management JIT compiler or a runtime import system. All in
  45911. all, it makes Salt much more dynamic.
  45912. .SS How it Works
  45913. .sp
  45914. The best example is the \fBpkg\fP state. One of the major requests in Salt has long
  45915. been adding the ability to install all packages defined at the same time. The
  45916. mod_aggregate system makes this a reality. While executing Salt\(aqs state system,
  45917. when a \fBpkg\fP state is reached the \fBmod_aggregate\fP function in the state module
  45918. is called. For \fBpkg\fP this function scans all of the other states that are slated
  45919. to run, and picks up the references to \fBname\fP and \fBpkgs\fP, then adds them to
  45920. \fBpkgs\fP in the first state. The result is a single call to yum, apt\-get,
  45921. pacman, etc as part of the first package install.
  45922. .SS How to Use it
  45923. .sp
  45924. \fBNOTE:\fP
  45925. .INDENT 0.0
  45926. .INDENT 3.5
  45927. Since this option changes the basic behavior of the state runtime, after
  45928. it is enabled states should be executed using \fItest=True\fP to ensure that
  45929. the desired behavior is preserved.
  45930. .UNINDENT
  45931. .UNINDENT
  45932. .SS In config files
  45933. .sp
  45934. The first way to enable aggregation is with a configuration option in either
  45935. the master or minion configuration files. Salt will invoke \fBmod_aggregate\fP
  45936. the first time it encounters a state module that has aggregate support.
  45937. .sp
  45938. If this option is set in the master config it will apply to all state runs on
  45939. all minions, if set in the minion config it will only apply to said minion.
  45940. .sp
  45941. Enable for all states:
  45942. .INDENT 0.0
  45943. .INDENT 3.5
  45944. .sp
  45945. .nf
  45946. .ft C
  45947. state_aggregate: True
  45948. .ft P
  45949. .fi
  45950. .UNINDENT
  45951. .UNINDENT
  45952. .sp
  45953. Enable for only specific state modules:
  45954. .INDENT 0.0
  45955. .INDENT 3.5
  45956. .sp
  45957. .nf
  45958. .ft C
  45959. state_aggregate:
  45960. \- pkg
  45961. .ft P
  45962. .fi
  45963. .UNINDENT
  45964. .UNINDENT
  45965. .SS In states
  45966. .sp
  45967. The second way to enable aggregation is with the state\-level \fBaggregate\fP
  45968. keyword. In this configuration, Salt will invoke the \fBmod_aggregate\fP function
  45969. the first time it encounters this keyword. Any additional occurrences of the
  45970. keyword will be ignored as the aggregation has already taken place.
  45971. .sp
  45972. The following example will trigger \fBmod_aggregate\fP when the \fBlamp_stack\fP
  45973. state is processed resulting in a single call to the underlying package
  45974. manager.
  45975. .INDENT 0.0
  45976. .INDENT 3.5
  45977. .sp
  45978. .nf
  45979. .ft C
  45980. lamp_stack:
  45981. pkg.installed:
  45982. \- pkgs:
  45983. \- php
  45984. \- mysql\-client
  45985. \- aggregate: True
  45986. memcached:
  45987. pkg.installed:
  45988. \- name: memcached
  45989. .ft P
  45990. .fi
  45991. .UNINDENT
  45992. .UNINDENT
  45993. .SS Adding mod_aggregate to a State Module
  45994. .sp
  45995. Adding a mod_aggregate routine to an existing state module only requires adding
  45996. an additional function to the state module called mod_aggregate.
  45997. .sp
  45998. The mod_aggregate function just needs to accept three parameters and return the
  45999. low data to use. Since mod_aggregate is working on the state runtime level it
  46000. does need to manipulate \fIlow data\fP\&.
  46001. .sp
  46002. The three parameters are \fIlow\fP, \fIchunks\fP, and \fIrunning\fP\&. The \fIlow\fP option is the
  46003. low data for the state execution which is about to be called. The \fIchunks\fP is
  46004. the list of all of the low data dictionaries which are being executed by the
  46005. runtime and the \fIrunning\fP dictionary is the return data from all of the state
  46006. executions which have already be executed.
  46007. .sp
  46008. This example, simplified from the pkg state, shows how to create mod_aggregate functions:
  46009. .INDENT 0.0
  46010. .INDENT 3.5
  46011. .sp
  46012. .nf
  46013. .ft C
  46014. def mod_aggregate(low, chunks, running):
  46015. """
  46016. The mod_aggregate function which looks up all packages in the available
  46017. low chunks and merges them into a single pkgs ref in the present low data
  46018. """
  46019. pkgs = []
  46020. # What functions should we aggregate?
  46021. agg_enabled = [
  46022. "installed",
  46023. "latest",
  46024. "removed",
  46025. "purged",
  46026. ]
  46027. # The \(galow\(ga data is just a dict with the state, function (fun) and
  46028. # arguments passed in from the sls
  46029. if low.get("fun") not in agg_enabled:
  46030. return low
  46031. # Now look into what other things are set to execute
  46032. for chunk in chunks:
  46033. # The state runtime uses "tags" to track completed jobs, it may
  46034. # look familiar with the _|\-
  46035. tag = __utils__["state.gen_tag"](chunk)
  46036. if tag in running:
  46037. # Already ran the pkg state, skip aggregation
  46038. continue
  46039. if chunk.get("state") == "pkg":
  46040. if "__agg__" in chunk:
  46041. continue
  46042. # Check for the same function
  46043. if chunk.get("fun") != low.get("fun"):
  46044. continue
  46045. # Pull out the pkg names!
  46046. if "pkgs" in chunk:
  46047. pkgs.extend(chunk["pkgs"])
  46048. chunk["__agg__"] = True
  46049. elif "name" in chunk:
  46050. pkgs.append(chunk["name"])
  46051. chunk["__agg__"] = True
  46052. if pkgs:
  46053. if "pkgs" in low:
  46054. low["pkgs"].extend(pkgs)
  46055. else:
  46056. low["pkgs"] = pkgs
  46057. # The low has been modified and needs to be returned to the state
  46058. # runtime for execution
  46059. return low
  46060. .ft P
  46061. .fi
  46062. .UNINDENT
  46063. .UNINDENT
  46064. .SS Altering States
  46065. .sp
  46066. \fBNOTE:\fP
  46067. .INDENT 0.0
  46068. .INDENT 3.5
  46069. This documentation has been moved here\&.
  46070. .UNINDENT
  46071. .UNINDENT
  46072. .SS File State Backups
  46073. .sp
  46074. In 0.10.2 a new feature was added for backing up files that are replaced by
  46075. the file.managed and file.recurse states. The new feature is called the backup
  46076. mode. Setting the backup mode is easy, but it can be set in a number of
  46077. places.
  46078. .sp
  46079. The backup_mode can be set in the minion config file:
  46080. .INDENT 0.0
  46081. .INDENT 3.5
  46082. .sp
  46083. .nf
  46084. .ft C
  46085. backup_mode: minion
  46086. .ft P
  46087. .fi
  46088. .UNINDENT
  46089. .UNINDENT
  46090. .sp
  46091. Or it can be set for each file:
  46092. .INDENT 0.0
  46093. .INDENT 3.5
  46094. .sp
  46095. .nf
  46096. .ft C
  46097. /etc/ssh/sshd_config:
  46098. file.managed:
  46099. \- source: salt://ssh/sshd_config
  46100. \- backup: minion
  46101. .ft P
  46102. .fi
  46103. .UNINDENT
  46104. .UNINDENT
  46105. .SS Backed\-up Files
  46106. .sp
  46107. The files will be saved in the minion cachedir under the directory named
  46108. \fBfile_backup\fP\&. The files will be in the location relative to where they
  46109. were under the root filesystem and be appended with a timestamp. This should
  46110. make them easy to browse.
  46111. .SS Interacting with Backups
  46112. .sp
  46113. Starting with version 0.17.0, it will be possible to list, restore, and delete
  46114. previously\-created backups.
  46115. .SS Listing
  46116. .sp
  46117. The backups for a given file can be listed using \fBfile.list_backups\fP:
  46118. .INDENT 0.0
  46119. .INDENT 3.5
  46120. .sp
  46121. .nf
  46122. .ft C
  46123. # salt foo.bar.com file.list_backups /tmp/foo.txt
  46124. foo.bar.com:
  46125. \-\-\-\-\-\-\-\-\-\-
  46126. 0:
  46127. \-\-\-\-\-\-\-\-\-\-
  46128. Backup Time:
  46129. Sat Jul 27 2013 17:48:41.738027
  46130. Location:
  46131. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
  46132. Size:
  46133. 13
  46134. 1:
  46135. \-\-\-\-\-\-\-\-\-\-
  46136. Backup Time:
  46137. Sat Jul 27 2013 17:48:28.369804
  46138. Location:
  46139. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
  46140. Size:
  46141. 35
  46142. .ft P
  46143. .fi
  46144. .UNINDENT
  46145. .UNINDENT
  46146. .SS Restoring
  46147. .sp
  46148. Restoring is easy using \fBfile.restore_backup\fP, just pass the path and the numeric id
  46149. found with \fBfile.list_backups\fP:
  46150. .INDENT 0.0
  46151. .INDENT 3.5
  46152. .sp
  46153. .nf
  46154. .ft C
  46155. # salt foo.bar.com file.restore_backup /tmp/foo.txt 1
  46156. foo.bar.com:
  46157. \-\-\-\-\-\-\-\-\-\-
  46158. comment:
  46159. Successfully restored /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013 to /tmp/foo.txt
  46160. result:
  46161. True
  46162. .ft P
  46163. .fi
  46164. .UNINDENT
  46165. .UNINDENT
  46166. .sp
  46167. The existing file will be backed up, just in case, as can be seen if
  46168. \fBfile.list_backups\fP is run again:
  46169. .INDENT 0.0
  46170. .INDENT 3.5
  46171. .sp
  46172. .nf
  46173. .ft C
  46174. # salt foo.bar.com file.list_backups /tmp/foo.txt
  46175. foo.bar.com:
  46176. \-\-\-\-\-\-\-\-\-\-
  46177. 0:
  46178. \-\-\-\-\-\-\-\-\-\-
  46179. Backup Time:
  46180. Sat Jul 27 2013 18:00:19.822550
  46181. Location:
  46182. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
  46183. Size:
  46184. 53
  46185. 1:
  46186. \-\-\-\-\-\-\-\-\-\-
  46187. Backup Time:
  46188. Sat Jul 27 2013 17:48:41.738027
  46189. Location:
  46190. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
  46191. Size:
  46192. 13
  46193. 2:
  46194. \-\-\-\-\-\-\-\-\-\-
  46195. Backup Time:
  46196. Sat Jul 27 2013 17:48:28.369804
  46197. Location:
  46198. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
  46199. Size:
  46200. 35
  46201. .ft P
  46202. .fi
  46203. .UNINDENT
  46204. .UNINDENT
  46205. .sp
  46206. \fBNOTE:\fP
  46207. .INDENT 0.0
  46208. .INDENT 3.5
  46209. Since no state is being run, restoring a file will not trigger any watches
  46210. for the file. So, if you are restoring a config file for a service, it will
  46211. likely still be necessary to run a \fBservice.restart\fP\&.
  46212. .UNINDENT
  46213. .UNINDENT
  46214. .SS Deleting
  46215. .sp
  46216. Deleting backups can be done using \fBfile.delete_backup\fP:
  46217. .INDENT 0.0
  46218. .INDENT 3.5
  46219. .sp
  46220. .nf
  46221. .ft C
  46222. # salt foo.bar.com file.delete_backup /tmp/foo.txt 0
  46223. foo.bar.com:
  46224. \-\-\-\-\-\-\-\-\-\-
  46225. comment:
  46226. Successfully removed /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
  46227. result:
  46228. True
  46229. .ft P
  46230. .fi
  46231. .UNINDENT
  46232. .UNINDENT
  46233. .SS Understanding State Compiler Ordering
  46234. .sp
  46235. \fBNOTE:\fP
  46236. .INDENT 0.0
  46237. .INDENT 3.5
  46238. This tutorial is an intermediate level tutorial. Some basic understanding
  46239. of the state system and writing Salt Formulas is assumed.
  46240. .UNINDENT
  46241. .UNINDENT
  46242. .sp
  46243. Salt\(aqs state system is built to deliver all of the power of configuration
  46244. management systems without sacrificing simplicity. This tutorial is made to
  46245. help users understand in detail just how the order is defined for state
  46246. executions in Salt.
  46247. .sp
  46248. This tutorial is written to represent the behavior of Salt as of version
  46249. 0.17.0.
  46250. .SS Compiler Basics
  46251. .sp
  46252. To understand ordering in depth some very basic knowledge about the state
  46253. compiler is very helpful. No need to worry though, this is very high level!
  46254. .SS High Data and Low Data
  46255. .sp
  46256. When defining Salt Formulas in YAML the data that is being represented is
  46257. referred to by the compiler as High Data. When the data is initially
  46258. loaded into the compiler it is a single large python dictionary, this
  46259. dictionary can be viewed raw by running:
  46260. .INDENT 0.0
  46261. .INDENT 3.5
  46262. .sp
  46263. .nf
  46264. .ft C
  46265. salt \(aq*\(aq state.show_highstate
  46266. .ft P
  46267. .fi
  46268. .UNINDENT
  46269. .UNINDENT
  46270. .sp
  46271. This "High Data" structure is then compiled down to "Low Data". The Low
  46272. Data is what is matched up to create individual executions in Salt\(aqs
  46273. configuration management system. The
  46274. low data is an ordered list of single state calls to execute. Once the
  46275. low data is compiled the evaluation order can be seen.
  46276. .sp
  46277. The low data can be viewed by running:
  46278. .INDENT 0.0
  46279. .INDENT 3.5
  46280. .sp
  46281. .nf
  46282. .ft C
  46283. salt \(aq*\(aq state.show_lowstate
  46284. .ft P
  46285. .fi
  46286. .UNINDENT
  46287. .UNINDENT
  46288. .sp
  46289. \fBNOTE:\fP
  46290. .INDENT 0.0
  46291. .INDENT 3.5
  46292. The state execution module contains MANY functions for evaluating the
  46293. state system and is well worth a read! These routines can be very useful
  46294. when debugging states or to help deepen one\(aqs understanding of Salt\(aqs
  46295. state system.
  46296. .UNINDENT
  46297. .UNINDENT
  46298. .sp
  46299. As an example, a state written thusly:
  46300. .INDENT 0.0
  46301. .INDENT 3.5
  46302. .sp
  46303. .nf
  46304. .ft C
  46305. apache:
  46306. pkg.installed:
  46307. \- name: httpd
  46308. service.running:
  46309. \- name: httpd
  46310. \- watch:
  46311. \- file: apache_conf
  46312. \- pkg: apache
  46313. apache_conf:
  46314. file.managed:
  46315. \- name: /etc/httpd/conf.d/httpd.conf
  46316. \- source: salt://apache/httpd.conf
  46317. .ft P
  46318. .fi
  46319. .UNINDENT
  46320. .UNINDENT
  46321. .sp
  46322. Will have High Data which looks like this represented in json:
  46323. .INDENT 0.0
  46324. .INDENT 3.5
  46325. .sp
  46326. .nf
  46327. .ft C
  46328. {
  46329. "apache": {
  46330. "pkg": [
  46331. {
  46332. "name": "httpd"
  46333. },
  46334. "installed",
  46335. {
  46336. "order": 10000
  46337. }
  46338. ],
  46339. "service": [
  46340. {
  46341. "name": "httpd"
  46342. },
  46343. {
  46344. "watch": [
  46345. {
  46346. "file": "apache_conf"
  46347. },
  46348. {
  46349. "pkg": "apache"
  46350. }
  46351. ]
  46352. },
  46353. "running",
  46354. {
  46355. "order": 10001
  46356. }
  46357. ],
  46358. "__sls__": "blah",
  46359. "__env__": "base"
  46360. },
  46361. "apache_conf": {
  46362. "file": [
  46363. {
  46364. "name": "/etc/httpd/conf.d/httpd.conf"
  46365. },
  46366. {
  46367. "source": "salt://apache/httpd.conf"
  46368. },
  46369. "managed",
  46370. {
  46371. "order": 10002
  46372. }
  46373. ],
  46374. "__sls__": "blah",
  46375. "__env__": "base"
  46376. }
  46377. }
  46378. .ft P
  46379. .fi
  46380. .UNINDENT
  46381. .UNINDENT
  46382. .sp
  46383. The subsequent Low Data will look like this:
  46384. .INDENT 0.0
  46385. .INDENT 3.5
  46386. .sp
  46387. .nf
  46388. .ft C
  46389. [
  46390. {
  46391. "name": "httpd",
  46392. "state": "pkg",
  46393. "__id__": "apache",
  46394. "fun": "installed",
  46395. "__env__": "base",
  46396. "__sls__": "blah",
  46397. "order": 10000
  46398. },
  46399. {
  46400. "name": "httpd",
  46401. "watch": [
  46402. {
  46403. "file": "apache_conf"
  46404. },
  46405. {
  46406. "pkg": "apache"
  46407. }
  46408. ],
  46409. "state": "service",
  46410. "__id__": "apache",
  46411. "fun": "running",
  46412. "__env__": "base",
  46413. "__sls__": "blah",
  46414. "order": 10001
  46415. },
  46416. {
  46417. "name": "/etc/httpd/conf.d/httpd.conf",
  46418. "source": "salt://apache/httpd.conf",
  46419. "state": "file",
  46420. "__id__": "apache_conf",
  46421. "fun": "managed",
  46422. "__env__": "base",
  46423. "__sls__": "blah",
  46424. "order": 10002
  46425. }
  46426. ]
  46427. .ft P
  46428. .fi
  46429. .UNINDENT
  46430. .UNINDENT
  46431. .sp
  46432. This tutorial discusses the Low Data evaluation and the state runtime.
  46433. .SS Ordering Layers
  46434. .sp
  46435. Salt defines 2 order interfaces which are evaluated in the state runtime and
  46436. defines these orders in a number of passes.
  46437. .SS Definition Order
  46438. .sp
  46439. \fBNOTE:\fP
  46440. .INDENT 0.0
  46441. .INDENT 3.5
  46442. The Definition Order system can be disabled by turning the option
  46443. \fBstate_auto_order\fP to \fBFalse\fP in the master configuration file.
  46444. .UNINDENT
  46445. .UNINDENT
  46446. .sp
  46447. The top level of ordering is the \fIDefinition Order\fP\&. The \fIDefinition Order\fP
  46448. is the order in which states are defined in salt formulas. This is very
  46449. straightforward on basic states which do not contain \fBinclude\fP statements
  46450. or a \fBtop\fP file, as the states are just ordered from the top of the file,
  46451. but the include system starts to bring in some simple rules for how the
  46452. \fIDefinition Order\fP is defined.
  46453. .sp
  46454. Looking back at the "Low Data" and "High Data" shown above, the order key has
  46455. been transparently added to the data to enable the \fIDefinition Order\fP\&.
  46456. .SS The Include Statement
  46457. .sp
  46458. Basically, if there is an include statement in a formula, then the formulas
  46459. which are included will be run BEFORE the contents of the formula which
  46460. is including them. Also, the include statement is a list, so they will be
  46461. loaded in the order in which they are included.
  46462. .sp
  46463. In the following case:
  46464. .sp
  46465. \fBfoo.sls\fP
  46466. .INDENT 0.0
  46467. .INDENT 3.5
  46468. .sp
  46469. .nf
  46470. .ft C
  46471. include:
  46472. \- bar
  46473. \- baz
  46474. .ft P
  46475. .fi
  46476. .UNINDENT
  46477. .UNINDENT
  46478. .sp
  46479. \fBbar.sls\fP
  46480. .INDENT 0.0
  46481. .INDENT 3.5
  46482. .sp
  46483. .nf
  46484. .ft C
  46485. include:
  46486. \- quo
  46487. .ft P
  46488. .fi
  46489. .UNINDENT
  46490. .UNINDENT
  46491. .sp
  46492. \fBbaz.sls\fP
  46493. .INDENT 0.0
  46494. .INDENT 3.5
  46495. .sp
  46496. .nf
  46497. .ft C
  46498. include:
  46499. \- qux
  46500. .ft P
  46501. .fi
  46502. .UNINDENT
  46503. .UNINDENT
  46504. .sp
  46505. In the above case if \fBstate.apply foo\fP were called then the formulas will be
  46506. loaded in the following order:
  46507. .INDENT 0.0
  46508. .IP 1. 3
  46509. quo
  46510. .IP 2. 3
  46511. bar
  46512. .IP 3. 3
  46513. qux
  46514. .IP 4. 3
  46515. baz
  46516. .IP 5. 3
  46517. foo
  46518. .UNINDENT
  46519. .SS The \fIorder\fP Flag
  46520. .sp
  46521. The \fIDefinition Order\fP happens transparently in the background, but the
  46522. ordering can be explicitly overridden using the \fBorder\fP flag in states:
  46523. .INDENT 0.0
  46524. .INDENT 3.5
  46525. .sp
  46526. .nf
  46527. .ft C
  46528. apache:
  46529. pkg.installed:
  46530. \- name: httpd
  46531. \- order: 1
  46532. .ft P
  46533. .fi
  46534. .UNINDENT
  46535. .UNINDENT
  46536. .sp
  46537. This order flag will over ride the definition order, this makes it very
  46538. simple to create states that are always executed first, last or in specific
  46539. stages, a great example is defining a number of package repositories that
  46540. need to be set up before anything else, or final checks that need to be
  46541. run at the end of a state run by using \fBorder: last\fP or \fBorder: \-1\fP\&.
  46542. .sp
  46543. When the order flag is explicitly set the \fIDefinition Order\fP system will omit
  46544. setting an order for that state and directly use the order flag defined.
  46545. .SS Lexicographical Fall\-back
  46546. .sp
  46547. Salt states were written to ALWAYS execute in the same order. Before the
  46548. introduction of \fIDefinition Order\fP in version 0.17.0 everything was ordered
  46549. lexicographically according to the name of the state, then function then id.
  46550. .sp
  46551. This is the way Salt has always ensured that states always run in the same
  46552. order regardless of where they are deployed, the addition of the
  46553. \fIDefinition Order\fP method mealy makes this finite ordering easier to follow.
  46554. .sp
  46555. The lexicographical ordering is still applied but it only has any effect when
  46556. two order statements collide. This means that if multiple states are assigned
  46557. the same order number that they will fall back to lexicographical ordering
  46558. to ensure that every execution still happens in a finite order.
  46559. .sp
  46560. \fBNOTE:\fP
  46561. .INDENT 0.0
  46562. .INDENT 3.5
  46563. If running with \fBstate_auto_order: False\fP the \fBorder\fP key is not
  46564. set automatically, since the Lexicographical order can be derived
  46565. from other keys.
  46566. .UNINDENT
  46567. .UNINDENT
  46568. .SS Requisite Ordering
  46569. .sp
  46570. Salt states are fully declarative, in that they are written to declare the
  46571. state in which a system should be. This means that components can require that
  46572. other components have been set up successfully. Unlike the other ordering
  46573. systems, the \fIRequisite\fP system in Salt is evaluated at runtime.
  46574. .sp
  46575. The requisite system is also built to ensure that the ordering of execution
  46576. never changes, but is always the same for a given set of states. This is
  46577. accomplished by using a runtime that processes states in a completely
  46578. predictable order instead of using an event loop based system like other
  46579. declarative configuration management systems.
  46580. .SS Runtime Requisite Evaluation
  46581. .sp
  46582. The requisite system is evaluated as the components are found, and the
  46583. requisites are always evaluated in the same order. This explanation will
  46584. be followed by an example, as the raw explanation may be a little dizzying
  46585. at first as it creates a linear dependency evaluation sequence.
  46586. .sp
  46587. The "Low Data" is an ordered list or dictionaries, the state runtime evaluates
  46588. each dictionary in the order in which they are arranged in the list. When
  46589. evaluating a single dictionary it is checked for requisites, requisites are
  46590. evaluated in order, \fBrequire\fP then \fBwatch\fP then \fBprereq\fP\&.
  46591. .sp
  46592. \fBNOTE:\fP
  46593. .INDENT 0.0
  46594. .INDENT 3.5
  46595. If using requisite in statements like require_in and watch_in these will
  46596. be compiled down to require and watch statements before runtime evaluation.
  46597. .UNINDENT
  46598. .UNINDENT
  46599. .sp
  46600. Each requisite contains an ordered list of requisites, these requisites are
  46601. looked up in the list of dictionaries and then executed. Once all requisites
  46602. have been evaluated and executed then the requiring state can safely be run
  46603. (or not run if requisites have not been met).
  46604. .sp
  46605. This means that the requisites are always evaluated in the same order, again
  46606. ensuring one of the core design principals of Salt\(aqs State system to ensure
  46607. that execution is always finite is intact.
  46608. .SS Simple Runtime Evaluation Example
  46609. .sp
  46610. Given the above "Low Data" the states will be evaluated in the following order:
  46611. .INDENT 0.0
  46612. .IP 1. 3
  46613. The pkg.installed is executed ensuring that the apache package is
  46614. installed, it contains no requisites and is therefore the first defined
  46615. state to execute.
  46616. .IP 2. 3
  46617. The service.running state is evaluated but NOT executed, a watch requisite
  46618. is found, therefore they are read in order, the runtime first checks for
  46619. the file, sees that it has not been executed and calls for the file state
  46620. to be evaluated.
  46621. .IP 3. 3
  46622. The file state is evaluated AND executed, since it, like the pkg state does
  46623. not contain any requisites.
  46624. .IP 4. 3
  46625. The evaluation of the service state continues, it next checks the pkg
  46626. requisite and sees that it is met, with all requisites met the service
  46627. state is now executed.
  46628. .UNINDENT
  46629. .SS Best Practice
  46630. .sp
  46631. The best practice in Salt is to choose a method and stick with it, official
  46632. states are written using requisites for all associations since requisites
  46633. create clean, traceable dependency trails and make for the most portable
  46634. formulas. To accomplish something similar to how classical imperative
  46635. systems function all requisites can be omitted and the \fBfailhard\fP option
  46636. then set to \fBTrue\fP in the master configuration, this will stop all state runs at
  46637. the first instance of a failure.
  46638. .sp
  46639. In the end, using requisites creates very tight and fine grained states,
  46640. not using requisites makes full sequence runs and while slightly easier
  46641. to write, and gives much less control over the executions.
  46642. .SS Extending External SLS Data
  46643. .sp
  46644. Sometimes a state defined in one SLS file will need to be modified from a
  46645. separate SLS file. A good example of this is when an argument needs to be
  46646. overwritten or when a service needs to watch an additional state.
  46647. .SS The Extend Declaration
  46648. .sp
  46649. The standard way to extend is via the extend declaration. The extend
  46650. declaration is a top level declaration like \fBinclude\fP and encapsulates ID
  46651. declaration data included from other SLS files. A standard extend looks like
  46652. this:
  46653. .INDENT 0.0
  46654. .INDENT 3.5
  46655. .sp
  46656. .nf
  46657. .ft C
  46658. include:
  46659. \- http
  46660. \- ssh
  46661. extend:
  46662. apache:
  46663. file:
  46664. \- name: /etc/httpd/conf/httpd.conf
  46665. \- source: salt://http/httpd2.conf
  46666. ssh\-server:
  46667. service:
  46668. \- watch:
  46669. \- file: /etc/ssh/banner
  46670. /etc/ssh/banner:
  46671. file.managed:
  46672. \- source: salt://ssh/banner
  46673. .ft P
  46674. .fi
  46675. .UNINDENT
  46676. .UNINDENT
  46677. .sp
  46678. A few critical things happened here, first off the SLS files that are going to
  46679. be extended are included, then the extend dec is defined. Under the extend dec
  46680. 2 IDs are extended, the apache ID\(aqs file state is overwritten with a new name
  46681. and source. Then the ssh server is extended to watch the banner file in
  46682. addition to anything it is already watching.
  46683. .SS Extend is a Top Level Declaration
  46684. .sp
  46685. This means that \fBextend\fP can only be called once in an sls, if it is used
  46686. twice then only one of the extend blocks will be read. So this is WRONG:
  46687. .INDENT 0.0
  46688. .INDENT 3.5
  46689. .sp
  46690. .nf
  46691. .ft C
  46692. include:
  46693. \- http
  46694. \- ssh
  46695. extend:
  46696. apache:
  46697. file:
  46698. \- name: /etc/httpd/conf/httpd.conf
  46699. \- source: salt://http/httpd2.conf
  46700. # Second extend will overwrite the first!! Only make one
  46701. extend:
  46702. ssh\-server:
  46703. service:
  46704. \- watch:
  46705. \- file: /etc/ssh/banner
  46706. .ft P
  46707. .fi
  46708. .UNINDENT
  46709. .UNINDENT
  46710. .SS The Requisite "in" Statement
  46711. .sp
  46712. Since one of the most common things to do when extending another SLS is to add
  46713. states for a service to watch, or anything for a watcher to watch, the
  46714. requisite in statement was added to 0.9.8 to make extending the watch and
  46715. require lists easier. The ssh\-server extend statement above could be more
  46716. cleanly defined like so:
  46717. .INDENT 0.0
  46718. .INDENT 3.5
  46719. .sp
  46720. .nf
  46721. .ft C
  46722. include:
  46723. \- ssh
  46724. /etc/ssh/banner:
  46725. file.managed:
  46726. \- source: salt://ssh/banner
  46727. \- watch_in:
  46728. \- service: ssh\-server
  46729. .ft P
  46730. .fi
  46731. .UNINDENT
  46732. .UNINDENT
  46733. .SS Rules to Extend By
  46734. .sp
  46735. There are a few rules to remember when extending states:
  46736. .INDENT 0.0
  46737. .IP 1. 3
  46738. Always include the SLS being extended with an include declaration
  46739. .IP 2. 3
  46740. Requisites (watch and require) are appended to, everything else is
  46741. overwritten
  46742. .IP 3. 3
  46743. extend is a top level declaration, like an ID declaration, cannot be
  46744. declared twice in a single SLS
  46745. .IP 4. 3
  46746. Many IDs can be extended under the extend declaration
  46747. .UNINDENT
  46748. .SS Failhard Global Option
  46749. .sp
  46750. Normally, when a state fails Salt continues to execute the remainder of the
  46751. defined states and will only refuse to execute states that require the failed
  46752. state.
  46753. .sp
  46754. But the situation may exist, where you would want all state execution to stop
  46755. if a single state execution fails. The capability to do this is called
  46756. \fBfailing hard\fP\&.
  46757. .SS State Level Failhard
  46758. .sp
  46759. A single state can have a failhard set, this means that if this individual
  46760. state fails that all state execution will immediately stop. This is a great
  46761. thing to do if there is a state that sets up a critical config file and
  46762. setting a require for each state that reads the config would be cumbersome.
  46763. A good example of this would be setting up a package manager early on:
  46764. .INDENT 0.0
  46765. .INDENT 3.5
  46766. .sp
  46767. .nf
  46768. .ft C
  46769. /etc/yum.repos.d/company.repo:
  46770. file.managed:
  46771. \- source: salt://company/yumrepo.conf
  46772. \- user: root
  46773. \- group: root
  46774. \- mode: 644
  46775. \- order: 1
  46776. \- failhard: True
  46777. .ft P
  46778. .fi
  46779. .UNINDENT
  46780. .UNINDENT
  46781. .sp
  46782. In this situation, the yum repo is going to be configured before other states,
  46783. and if it fails to lay down the config file, than no other states will be
  46784. executed.
  46785. It is possible to override a Global Failhard (see below) by explicitly setting
  46786. it to \fBFalse\fP in the state.
  46787. .SS Global Failhard
  46788. .sp
  46789. It may be desired to have failhard be applied to every state that is executed,
  46790. if this is the case, then failhard can be set in the master configuration
  46791. file. Setting failhard in the master configuration file will result in failing
  46792. hard when any minion gathering states from the master have a state fail.
  46793. .sp
  46794. This is NOT the default behavior, normally Salt will only fail states that
  46795. require a failed state.
  46796. .sp
  46797. Using the global failhard is generally not recommended, since it can result
  46798. in states not being executed or even checked. It can also be confusing to
  46799. see states failhard if an admin is not actively aware that the failhard has
  46800. been set.
  46801. .sp
  46802. To use the global failhard set \fBfailhard\fP to \fBTrue\fP in the
  46803. master configuration file.
  46804. .SS Global State Arguments
  46805. .sp
  46806. \fBNOTE:\fP
  46807. .INDENT 0.0
  46808. .INDENT 3.5
  46809. This documentation has been moved here\&.
  46810. .UNINDENT
  46811. .UNINDENT
  46812. .SS Highstate data structure definitions
  46813. .SS The Salt State Tree
  46814. .sp
  46815. A state tree is a collection of \fBSLS\fP files and directories that live under the directory
  46816. specified in \fBfile_roots\fP\&.
  46817. .sp
  46818. \fBNOTE:\fP
  46819. .INDENT 0.0
  46820. .INDENT 3.5
  46821. Directory names or filenames in the state tree cannot contain a period, with the
  46822. exception of the period in the .sls file suffix.
  46823. .UNINDENT
  46824. .UNINDENT
  46825. .SS Top file
  46826. .sp
  46827. The main state file that instructs minions what environment and modules to use
  46828. during state execution.
  46829. .sp
  46830. Configurable via \fBstate_top\fP\&.
  46831. .sp
  46832. \fBSEE ALSO:\fP
  46833. .INDENT 0.0
  46834. .INDENT 3.5
  46835. A detailed description of the top file
  46836. .UNINDENT
  46837. .UNINDENT
  46838. .SS Include declaration
  46839. .sp
  46840. Defines a list of \fI\%Module reference\fP strings to include in this \fBSLS\fP\&.
  46841. .sp
  46842. Occurs only in the top level of the SLS data structure.
  46843. .sp
  46844. Example:
  46845. .INDENT 0.0
  46846. .INDENT 3.5
  46847. .sp
  46848. .nf
  46849. .ft C
  46850. include:
  46851. \- edit.vim
  46852. \- http.server
  46853. .ft P
  46854. .fi
  46855. .UNINDENT
  46856. .UNINDENT
  46857. .SS Module reference
  46858. .sp
  46859. The name of a SLS module defined by a separate SLS file and residing on
  46860. the Salt Master. A module named \fBedit.vim\fP is a reference to the SLS
  46861. file \fBsalt://edit/vim.sls\fP\&.
  46862. .SS ID declaration
  46863. .sp
  46864. Defines an individual highstate component. Always
  46865. references a value of a dictionary containing keys referencing
  46866. \fI\%State declaration\fP and \fI\%Requisite declaration\fP\&. Can be overridden by
  46867. a \fI\%Name declaration\fP or a \fI\%Names declaration\fP\&.
  46868. .sp
  46869. Occurs on the top level or under the \fI\%Extend declaration\fP\&.
  46870. .sp
  46871. Must be unique across entire state tree. If the same ID declaration is
  46872. used twice, only the first one matched will be used. All subsequent
  46873. ID declarations with the same name will be ignored.
  46874. .sp
  46875. \fBNOTE:\fP
  46876. .INDENT 0.0
  46877. .INDENT 3.5
  46878. Naming gotchas
  46879. .sp
  46880. In Salt versions earlier than 0.9.7, ID declarations containing dots would
  46881. result in unpredictable output.
  46882. .UNINDENT
  46883. .UNINDENT
  46884. .SS Extend declaration
  46885. .sp
  46886. Extends a \fI\%Name declaration\fP from an included \fBSLS module\fP\&. The
  46887. keys of the extend declaration always refer to an existing
  46888. \fI\%ID declaration\fP which have been defined in included \fBSLS modules\fP\&.
  46889. .sp
  46890. Occurs only in the top level and defines a dictionary.
  46891. .sp
  46892. States cannot be extended more than once in a single state run.
  46893. .sp
  46894. Extend declarations are useful for adding\-to or overriding parts of a
  46895. \fI\%State declaration\fP that is defined in another \fBSLS\fP file. In the
  46896. following contrived example, the shown \fBmywebsite.sls\fP file is \fBinclude\fP
  46897. \-ing and \fBextend\fP \-ing the \fBapache.sls\fP module in order to add a \fBwatch\fP
  46898. declaration that will restart Apache whenever the Apache configuration file,
  46899. \fBmywebsite\fP changes.
  46900. .INDENT 0.0
  46901. .INDENT 3.5
  46902. .sp
  46903. .nf
  46904. .ft C
  46905. include:
  46906. \- apache
  46907. extend:
  46908. apache:
  46909. service:
  46910. \- watch:
  46911. \- file: mywebsite
  46912. mywebsite:
  46913. file.managed:
  46914. \- name: /var/www/mysite
  46915. .ft P
  46916. .fi
  46917. .UNINDENT
  46918. .UNINDENT
  46919. .sp
  46920. \fBSEE ALSO:\fP
  46921. .INDENT 0.0
  46922. .INDENT 3.5
  46923. watch_in and require_in
  46924. .sp
  46925. Sometimes it is more convenient to use the watch_in or require_in syntax
  46926. instead of extending another \fBSLS\fP file.
  46927. .sp
  46928. State Requisites
  46929. .UNINDENT
  46930. .UNINDENT
  46931. .SS State declaration
  46932. .sp
  46933. A list which contains one string defining the \fI\%Function declaration\fP and
  46934. any number of \fI\%Function arg declaration\fP dictionaries.
  46935. .sp
  46936. Can, optionally, contain a number of additional components like the
  46937. name override components — \fI\%name\fP and
  46938. \fI\%names\fP\&. Can also contain \fI\%requisite
  46939. declarations\fP\&.
  46940. .sp
  46941. Occurs under an \fI\%ID declaration\fP\&.
  46942. .SS Requisite declaration
  46943. .sp
  46944. A list containing \fI\%requisite references\fP\&.
  46945. .sp
  46946. Used to build the action dependency tree. While Salt states are made to
  46947. execute in a deterministic order, this order is managed by requiring
  46948. and watching other Salt states.
  46949. .sp
  46950. Occurs as a list component under a \fI\%State declaration\fP or as a
  46951. key under an \fI\%ID declaration\fP\&.
  46952. .SS Requisite reference
  46953. .sp
  46954. A single key dictionary. The key is the name of the referenced
  46955. \fI\%State declaration\fP and the value is the ID of the referenced
  46956. \fI\%ID declaration\fP\&.
  46957. .sp
  46958. Occurs as a single index in a \fI\%Requisite declaration\fP list.
  46959. .SS Function declaration
  46960. .sp
  46961. The name of the function to call within the state. A state declaration
  46962. can contain only a single function declaration.
  46963. .sp
  46964. For example, the following state declaration calls the \fBinstalled\fP function in the \fBpkg\fP state module:
  46965. .INDENT 0.0
  46966. .INDENT 3.5
  46967. .sp
  46968. .nf
  46969. .ft C
  46970. httpd:
  46971. pkg.installed: []
  46972. .ft P
  46973. .fi
  46974. .UNINDENT
  46975. .UNINDENT
  46976. .sp
  46977. The function can be declared inline with the state as a shortcut.
  46978. The actual data structure is compiled to this form:
  46979. .INDENT 0.0
  46980. .INDENT 3.5
  46981. .sp
  46982. .nf
  46983. .ft C
  46984. httpd:
  46985. pkg:
  46986. \- installed
  46987. .ft P
  46988. .fi
  46989. .UNINDENT
  46990. .UNINDENT
  46991. .sp
  46992. Where the function is a string in the body of the state declaration.
  46993. Technically when the function is declared in dot notation the compiler
  46994. converts it to be a string in the state declaration list. Note that the
  46995. use of the first example more than once in an ID declaration is invalid
  46996. yaml.
  46997. .sp
  46998. INVALID:
  46999. .INDENT 0.0
  47000. .INDENT 3.5
  47001. .sp
  47002. .nf
  47003. .ft C
  47004. httpd:
  47005. pkg.installed
  47006. service.running
  47007. .ft P
  47008. .fi
  47009. .UNINDENT
  47010. .UNINDENT
  47011. .sp
  47012. When passing a function without arguments and another state declaration
  47013. within a single ID declaration, then the long or "standard" format
  47014. needs to be used since otherwise it does not represent a valid data
  47015. structure.
  47016. .sp
  47017. VALID:
  47018. .INDENT 0.0
  47019. .INDENT 3.5
  47020. .sp
  47021. .nf
  47022. .ft C
  47023. httpd:
  47024. pkg.installed: []
  47025. service.running: []
  47026. .ft P
  47027. .fi
  47028. .UNINDENT
  47029. .UNINDENT
  47030. .sp
  47031. Occurs as the only index in the \fI\%State declaration\fP list.
  47032. .SS Function arg declaration
  47033. .sp
  47034. A single key dictionary referencing a Python type which is to be passed
  47035. to the named \fI\%Function declaration\fP as a parameter. The type must
  47036. be the data type expected by the function.
  47037. .sp
  47038. Occurs under a \fI\%Function declaration\fP\&.
  47039. .sp
  47040. For example in the following state declaration \fBuser\fP, \fBgroup\fP, and
  47041. \fBmode\fP are passed as arguments to the \fBmanaged\fP function in the \fBfile\fP state module:
  47042. .INDENT 0.0
  47043. .INDENT 3.5
  47044. .sp
  47045. .nf
  47046. .ft C
  47047. /etc/http/conf/http.conf:
  47048. file.managed:
  47049. \- user: root
  47050. \- group: root
  47051. \- mode: 644
  47052. .ft P
  47053. .fi
  47054. .UNINDENT
  47055. .UNINDENT
  47056. .SS Name declaration
  47057. .sp
  47058. Overrides the \fBname\fP argument of a \fI\%State declaration\fP\&. If
  47059. \fBname\fP is not specified the \fI\%ID declaration\fP satisfies the
  47060. \fBname\fP argument.
  47061. .sp
  47062. The name is always a single key dictionary referencing a string.
  47063. .sp
  47064. Overriding \fBname\fP is useful for a variety of scenarios.
  47065. .sp
  47066. For example, avoiding clashing ID declarations. The following two state
  47067. declarations cannot both have \fB/etc/motd\fP as the ID declaration:
  47068. .INDENT 0.0
  47069. .INDENT 3.5
  47070. .sp
  47071. .nf
  47072. .ft C
  47073. motd_perms:
  47074. file.managed:
  47075. \- name: /etc/motd
  47076. \- mode: 644
  47077. motd_quote:
  47078. file.append:
  47079. \- name: /etc/motd
  47080. \- text: "Of all smells, bread; of all tastes, salt."
  47081. .ft P
  47082. .fi
  47083. .UNINDENT
  47084. .UNINDENT
  47085. .sp
  47086. Another common reason to override \fBname\fP is if the ID declaration is long and
  47087. needs to be referenced in multiple places. In the example below it is much
  47088. easier to specify \fBmywebsite\fP than to specify
  47089. \fB/etc/apache2/sites\-available/mywebsite.com\fP multiple times:
  47090. .INDENT 0.0
  47091. .INDENT 3.5
  47092. .sp
  47093. .nf
  47094. .ft C
  47095. mywebsite:
  47096. file.managed:
  47097. \- name: /etc/apache2/sites\-available/mywebsite.com
  47098. \- source: salt://mywebsite.com
  47099. a2ensite mywebsite.com:
  47100. cmd.wait:
  47101. \- unless: test \-L /etc/apache2/sites\-enabled/mywebsite.com
  47102. \- watch:
  47103. \- file: mywebsite
  47104. apache2:
  47105. service.running:
  47106. \- watch:
  47107. \- file: mywebsite
  47108. .ft P
  47109. .fi
  47110. .UNINDENT
  47111. .UNINDENT
  47112. .SS Names declaration
  47113. .sp
  47114. Expands the contents of the containing \fI\%State declaration\fP into
  47115. multiple state declarations, each with its own name.
  47116. .sp
  47117. For example, given the following state declaration:
  47118. .INDENT 0.0
  47119. .INDENT 3.5
  47120. .sp
  47121. .nf
  47122. .ft C
  47123. python\-pkgs:
  47124. pkg.installed:
  47125. \- names:
  47126. \- python\-django
  47127. \- python\-crypto
  47128. \- python\-yaml
  47129. .ft P
  47130. .fi
  47131. .UNINDENT
  47132. .UNINDENT
  47133. .sp
  47134. Once converted into the lowstate data structure the above state
  47135. declaration will be expanded into the following three state declarations:
  47136. .INDENT 0.0
  47137. .INDENT 3.5
  47138. .sp
  47139. .nf
  47140. .ft C
  47141. python\-django:
  47142. pkg.installed
  47143. python\-crypto:
  47144. pkg.installed
  47145. python\-yaml:
  47146. pkg.installed
  47147. .ft P
  47148. .fi
  47149. .UNINDENT
  47150. .UNINDENT
  47151. .sp
  47152. Other values can be overridden during the expansion by providing an additional
  47153. dictionary level.
  47154. .sp
  47155. New in version 2014.7.0.
  47156. .INDENT 0.0
  47157. .INDENT 3.5
  47158. .sp
  47159. .nf
  47160. .ft C
  47161. ius:
  47162. pkgrepo.managed:
  47163. \- humanname: IUS Community Packages for Enterprise Linux 6 \- $basearch
  47164. \- gpgcheck: 1
  47165. \- baseurl: http://mirror.rackspace.com/ius/stable/CentOS/6/$basearch
  47166. \- gpgkey: http://dl.iuscommunity.org/pub/ius/IUS\-COMMUNITY\-GPG\-KEY
  47167. \- names:
  47168. \- ius
  47169. \- ius\-devel:
  47170. \- baseurl: http://mirror.rackspace.com/ius/development/CentOS/6/$basearch
  47171. .ft P
  47172. .fi
  47173. .UNINDENT
  47174. .UNINDENT
  47175. .SS Large example
  47176. .sp
  47177. Here is the layout in yaml using the names of the highdata structure
  47178. components.
  47179. .INDENT 0.0
  47180. .INDENT 3.5
  47181. .sp
  47182. .nf
  47183. .ft C
  47184. <Include Declaration>:
  47185. \- <Module Reference>
  47186. \- <Module Reference>
  47187. <Extend Declaration>:
  47188. <ID Declaration>:
  47189. [<overrides>]
  47190. # standard declaration
  47191. <ID Declaration>:
  47192. <State Module>:
  47193. \- <Function>
  47194. \- <Function Arg>
  47195. \- <Function Arg>
  47196. \- <Function Arg>
  47197. \- <Name>: <name>
  47198. \- <Requisite Declaration>:
  47199. \- <Requisite Reference>
  47200. \- <Requisite Reference>
  47201. # inline function and names
  47202. <ID Declaration>:
  47203. <State Module>.<Function>:
  47204. \- <Function Arg>
  47205. \- <Function Arg>
  47206. \- <Function Arg>
  47207. \- <Names>:
  47208. \- <name>
  47209. \- <name>
  47210. \- <name>
  47211. \- <Requisite Declaration>:
  47212. \- <Requisite Reference>
  47213. \- <Requisite Reference>
  47214. # multiple states for single id
  47215. <ID Declaration>:
  47216. <State Module>:
  47217. \- <Function>
  47218. \- <Function Arg>
  47219. \- <Name>: <name>
  47220. \- <Requisite Declaration>:
  47221. \- <Requisite Reference>
  47222. <State Module>:
  47223. \- <Function>
  47224. \- <Function Arg>
  47225. \- <Names>:
  47226. \- <name>
  47227. \- <name>
  47228. \- <Requisite Declaration>:
  47229. \- <Requisite Reference>
  47230. .ft P
  47231. .fi
  47232. .UNINDENT
  47233. .UNINDENT
  47234. .SS Include and Exclude
  47235. .sp
  47236. Salt SLS files can include other SLS files and exclude SLS files that have been
  47237. otherwise included. This allows for an SLS file to easily extend or manipulate
  47238. other SLS files.
  47239. .SS Include
  47240. .sp
  47241. When other SLS files are included, everything defined in the included SLS file
  47242. will be added to the state run. When including define a list of SLS formulas
  47243. to include:
  47244. .INDENT 0.0
  47245. .INDENT 3.5
  47246. .sp
  47247. .nf
  47248. .ft C
  47249. include:
  47250. \- http
  47251. \- libvirt
  47252. .ft P
  47253. .fi
  47254. .UNINDENT
  47255. .UNINDENT
  47256. .sp
  47257. The include statement will include SLS formulas from the same environment
  47258. that the including SLS formula is in. But the environment can be explicitly
  47259. defined in the configuration to override the running environment, therefore
  47260. if an SLS formula needs to be included from an external environment named "dev"
  47261. the following syntax is used:
  47262. .INDENT 0.0
  47263. .INDENT 3.5
  47264. .sp
  47265. .nf
  47266. .ft C
  47267. include:
  47268. \- dev: http
  47269. .ft P
  47270. .fi
  47271. .UNINDENT
  47272. .UNINDENT
  47273. .sp
  47274. \fBNOTE\fP: \fBinclude\fP does not simply inject the states where you place it
  47275. in the SLS file. If you need to guarantee order of execution, consider using
  47276. requisites.
  47277. .INDENT 0.0
  47278. .INDENT 3.5
  47279. .IP "Do not use dots in SLS file names or their directories"
  47280. .sp
  47281. The initial implementation of \fBtop.sls\fP and
  47282. include\-declaration followed the python import model where a slash
  47283. is represented as a period. This means that a SLS file with a period in
  47284. the name ( besides the suffix period) can not be referenced. For example,
  47285. webserver_1.0.sls is not referenceable because webserver_1.0 would refer
  47286. to the directory/file webserver_1/0.sls
  47287. .sp
  47288. The same applies for any subdirectories, this is especially \(aqtricky\(aq when
  47289. git repos are created. Another command that typically can\(aqt render its
  47290. output is \fB\(gastate.show_sls\(ga\fP of a file in a path that contains a dot.
  47291. .UNINDENT
  47292. .UNINDENT
  47293. .SS Relative Include
  47294. .sp
  47295. In Salt 0.16.0, the capability to include SLS formulas which are relative to
  47296. the running SLS formula was added. Simply precede the formula name with a
  47297. \fB\&.\fP:
  47298. .INDENT 0.0
  47299. .INDENT 3.5
  47300. .sp
  47301. .nf
  47302. .ft C
  47303. include:
  47304. \- .virt
  47305. \- .virt.hyper
  47306. .ft P
  47307. .fi
  47308. .UNINDENT
  47309. .UNINDENT
  47310. .sp
  47311. In Salt 2015.8, the ability to include SLS formulas which are relative to the
  47312. parents of the running SLS formula was added. In order to achieve this,
  47313. precede the formula name with more than one \fB\&.\fP (dot). Much like Python\(aqs
  47314. relative import abilities, two or more leading dots represent a relative
  47315. include of the parent or parents of the current package, with each \fB\&.\fP
  47316. representing one level after the first.
  47317. .sp
  47318. The following SLS configuration, if placed within \fBexample.dev.virtual\fP,
  47319. would result in \fBexample.http\fP and \fBbase\fP being included respectively:
  47320. .INDENT 0.0
  47321. .INDENT 3.5
  47322. .sp
  47323. .nf
  47324. .ft C
  47325. include:
  47326. \- ..http
  47327. \- ...base
  47328. .ft P
  47329. .fi
  47330. .UNINDENT
  47331. .UNINDENT
  47332. .SS Exclude
  47333. .sp
  47334. The exclude statement, added in Salt 0.10.3, allows an SLS to hard exclude
  47335. another SLS file or a specific id. The component is excluded after the
  47336. high data has been compiled, so nothing should be able to override an
  47337. exclude.
  47338. .sp
  47339. Since the exclude can remove an id or an sls the type of component to exclude
  47340. needs to be defined. An exclude statement that verifies that the running
  47341. highstate does not contain the \fBhttp\fP sls and the
  47342. \fB/etc/vimrc\fP id would look like this:
  47343. .INDENT 0.0
  47344. .INDENT 3.5
  47345. .sp
  47346. .nf
  47347. .ft C
  47348. exclude:
  47349. \- sls: http
  47350. \- id: /etc/vimrc
  47351. .ft P
  47352. .fi
  47353. .UNINDENT
  47354. .UNINDENT
  47355. .sp
  47356. \fBNOTE:\fP
  47357. .INDENT 0.0
  47358. .INDENT 3.5
  47359. The current state processing flow checks for duplicate IDs before
  47360. processing excludes. An error occurs if duplicate IDs are present even if
  47361. one of the IDs is targeted by an \fBexclude\fP\&.
  47362. .UNINDENT
  47363. .UNINDENT
  47364. .SS State System Layers
  47365. .sp
  47366. The Salt state system is comprised of multiple layers. While using Salt does
  47367. not require an understanding of the state layers, a deeper understanding of
  47368. how Salt compiles and manages states can be very beneficial.
  47369. .SS Function Call
  47370. .sp
  47371. The lowest layer of functionality in the state system is the direct state
  47372. function call. State executions are executions of single state functions at
  47373. the core. These individual functions are defined in state modules and can
  47374. be called directly via the \fBstate.single\fP command.
  47375. .INDENT 0.0
  47376. .INDENT 3.5
  47377. .sp
  47378. .nf
  47379. .ft C
  47380. salt \(aq*\(aq state.single pkg.installed name=\(aqvim\(aq
  47381. .ft P
  47382. .fi
  47383. .UNINDENT
  47384. .UNINDENT
  47385. .SS Low Chunk
  47386. .sp
  47387. The low chunk is the bottom of the Salt state compiler. This is a data
  47388. representation of a single function call. The low chunk is sent to the state
  47389. caller and used to execute a single state function.
  47390. .sp
  47391. A single low chunk can be executed manually via the \fBstate.low\fP command.
  47392. .INDENT 0.0
  47393. .INDENT 3.5
  47394. .sp
  47395. .nf
  47396. .ft C
  47397. salt \(aq*\(aq state.low \(aq{name: vim, state: pkg, fun: installed}\(aq
  47398. .ft P
  47399. .fi
  47400. .UNINDENT
  47401. .UNINDENT
  47402. .sp
  47403. The passed data reflects what the state execution system gets after compiling
  47404. the data down from sls formulas.
  47405. .SS Low State
  47406. .sp
  47407. The \fILow State\fP layer is the list of low chunks "evaluated" in order. To see
  47408. what the low state looks like for a highstate, run:
  47409. .INDENT 0.0
  47410. .INDENT 3.5
  47411. .sp
  47412. .nf
  47413. .ft C
  47414. salt \(aq*\(aq state.show_lowstate
  47415. .ft P
  47416. .fi
  47417. .UNINDENT
  47418. .UNINDENT
  47419. .sp
  47420. This will display the raw lowstate in the order which each low chunk will be
  47421. evaluated. The order of evaluation is not necessarily the order of execution,
  47422. since requisites are evaluated at runtime. Requisite execution and evaluation
  47423. is finite; this means that the order of execution can be ascertained with 100%
  47424. certainty based on the order of the low state.
  47425. .SS High Data
  47426. .sp
  47427. High data is the data structure represented in YAML via SLS files. The High
  47428. data structure is created by merging the data components rendered inside sls
  47429. files (or other render systems). The High data can be easily viewed by
  47430. executing the \fBstate.show_highstate\fP or \fBstate.show_sls\fP functions. Since
  47431. this data is a somewhat complex data structure, it may be easier to read using
  47432. the json, yaml, or pprint outputters:
  47433. .INDENT 0.0
  47434. .INDENT 3.5
  47435. .sp
  47436. .nf
  47437. .ft C
  47438. salt \(aq*\(aq state.show_highstate \-\-out yaml
  47439. salt \(aq*\(aq state.show_sls edit.vim \-\-out pprint
  47440. .ft P
  47441. .fi
  47442. .UNINDENT
  47443. .UNINDENT
  47444. .SS SLS
  47445. .sp
  47446. Above "High Data", the logical layers are no longer technically required to be
  47447. executed, or to be executed in a hierarchy. This means that how the High data
  47448. is generated is optional and very flexible. The SLS layer allows for many
  47449. mechanisms to be used to render sls data from files or to use the fileserver
  47450. backend to generate sls and file data from external systems.
  47451. .sp
  47452. The SLS layer can be called directly to execute individual sls formulas.
  47453. .sp
  47454. \fBNOTE:\fP
  47455. .INDENT 0.0
  47456. .INDENT 3.5
  47457. SLS Formulas have historically been called "SLS files". This is because a
  47458. single SLS was only constituted in a single file. Now the term
  47459. "SLS Formula" better expresses how a compartmentalized SLS can be expressed
  47460. in a much more dynamic way by combining pillar and other sources, and the
  47461. SLS can be dynamically generated.
  47462. .UNINDENT
  47463. .UNINDENT
  47464. .sp
  47465. To call a single SLS formula named \fBedit.vim\fP, execute \fBstate.apply\fP and pass \fBedit.vim\fP as an argument:
  47466. .INDENT 0.0
  47467. .INDENT 3.5
  47468. .sp
  47469. .nf
  47470. .ft C
  47471. salt \(aq*\(aq state.apply edit.vim
  47472. .ft P
  47473. .fi
  47474. .UNINDENT
  47475. .UNINDENT
  47476. .SS HighState
  47477. .sp
  47478. Calling SLS directly logically assigns what states should be executed from the
  47479. context of the calling minion. The Highstate layer is used to allow for full
  47480. contextual assignment of what is executed where to be tied to groups of, or
  47481. individual, minions entirely from the master. This means that the environment of
  47482. a minion, and all associated execution data pertinent to said minion, can be
  47483. assigned from the master without needing to execute or configure anything on
  47484. the target minion. This also means that the minion can independently retrieve
  47485. information about its complete configuration from the master.
  47486. .sp
  47487. To execute the highstate use \fBstate.apply\fP:
  47488. .INDENT 0.0
  47489. .INDENT 3.5
  47490. .sp
  47491. .nf
  47492. .ft C
  47493. salt \(aq*\(aq state.apply
  47494. .ft P
  47495. .fi
  47496. .UNINDENT
  47497. .UNINDENT
  47498. .SS Orchestrate
  47499. .sp
  47500. The orchestrate layer expresses the highest functional layer of Salt\(aqs automated
  47501. logic systems. The Overstate allows for stateful and functional orchestration
  47502. of routines from the master. The orchestrate defines in data execution stages
  47503. which minions should execute states, or functions, and in what order using
  47504. requisite logic.
  47505. .SS The Orchestrate Runner
  47506. .sp
  47507. \fBNOTE:\fP
  47508. .INDENT 0.0
  47509. .INDENT 3.5
  47510. This documentation has been moved here\&.
  47511. .UNINDENT
  47512. .UNINDENT
  47513. .SS Ordering States
  47514. .sp
  47515. The way in which configuration management systems are executed is a hotly
  47516. debated topic in the configuration management world. Two major philosophies
  47517. exist on the subject, to either execute in an imperative fashion where things
  47518. are executed in the order in which they are defined, or in a declarative
  47519. fashion where dependencies need to be mapped between objects.
  47520. .sp
  47521. Imperative ordering is finite and generally considered easier to write, but
  47522. declarative ordering is much more powerful and flexible but generally considered
  47523. more difficult to create.
  47524. .sp
  47525. Salt has been created to get the best of both worlds. States are evaluated in
  47526. a finite order, which guarantees that states are always executed in the same
  47527. order, and the states runtime is declarative, making Salt fully aware of
  47528. dependencies via the \fIrequisite\fP system.
  47529. .SS State Auto Ordering
  47530. .sp
  47531. Salt always executes states in a finite manner, meaning that they will always
  47532. execute in the same order regardless of the system that is executing them. This
  47533. evaluation order makes it easy to know what order the states will be executed in,
  47534. but it is important to note that the requisite system will override the ordering
  47535. defined in the files, and the \fBorder\fP option, described below, will also
  47536. override the order in which states are executed.
  47537. .sp
  47538. This ordering system can be disabled in preference of lexicographic (classic)
  47539. ordering by setting the \fBstate_auto_order\fP option to \fBFalse\fP in the master
  47540. configuration file. Otherwise, \fBstate_auto_order\fP defaults to \fBTrue\fP\&.
  47541. .sp
  47542. How compiler ordering is managed is described further in compiler\-ordering\&.
  47543. .SS Requisite Statements
  47544. .sp
  47545. \fBNOTE:\fP
  47546. .INDENT 0.0
  47547. .INDENT 3.5
  47548. The behavior of requisites changed in version 0.9.7 of Salt. This
  47549. documentation applies to requisites in version 0.9.7 and later.
  47550. .UNINDENT
  47551. .UNINDENT
  47552. .sp
  47553. Often when setting up states any single action will require or depend on
  47554. another action. Salt allows for the building of relationships between states
  47555. with requisite statements. A requisite statement ensures that the named state
  47556. is evaluated before the state requiring it. There are three types of requisite
  47557. statements in Salt, \fBrequire\fP, \fBwatch\fP, and \fBprereq\fP\&.
  47558. .sp
  47559. These requisite statements are applied to a specific state declaration:
  47560. .INDENT 0.0
  47561. .INDENT 3.5
  47562. .sp
  47563. .nf
  47564. .ft C
  47565. httpd:
  47566. pkg.installed: []
  47567. file.managed:
  47568. \- name: /etc/httpd/conf/httpd.conf
  47569. \- source: salt://httpd/httpd.conf
  47570. \- require:
  47571. \- pkg: httpd
  47572. .ft P
  47573. .fi
  47574. .UNINDENT
  47575. .UNINDENT
  47576. .sp
  47577. In this example, the \fBrequire\fP requisite is used to declare that the file
  47578. /etc/httpd/conf/httpd.conf should only be set up if the pkg state executes
  47579. successfully.
  47580. .sp
  47581. The requisite system works by finding the states that are required and
  47582. executing them before the state that requires them. Then the required states
  47583. can be evaluated to see if they have executed correctly.
  47584. .sp
  47585. Require statements can refer to any state defined in Salt. The basic examples
  47586. are \fIpkg\fP, \fIservice\fP, and \fIfile\fP, but any used state can be referenced.
  47587. .sp
  47588. In addition to state declarations such as pkg, file, etc., \fBsls\fP type requisites
  47589. are also recognized, and essentially allow \(aqchaining\(aq of states. This provides a
  47590. mechanism to ensure the proper sequence for complex state formulas, especially when
  47591. the discrete states are split or groups into separate sls files:
  47592. .INDENT 0.0
  47593. .INDENT 3.5
  47594. .sp
  47595. .nf
  47596. .ft C
  47597. include:
  47598. \- network
  47599. httpd:
  47600. pkg.installed: []
  47601. service.running:
  47602. \- require:
  47603. \- pkg: httpd
  47604. \- sls: network
  47605. .ft P
  47606. .fi
  47607. .UNINDENT
  47608. .UNINDENT
  47609. .sp
  47610. In this example, the httpd service running state will not be applied
  47611. (i.e., the httpd service will not be started) unless both the httpd package is
  47612. installed AND the network state is satisfied.
  47613. .sp
  47614. \fBNOTE:\fP
  47615. .INDENT 0.0
  47616. .INDENT 3.5
  47617. Requisite matching
  47618. .sp
  47619. Requisites match on both the ID Declaration and the \fBname\fP parameter.
  47620. Therefore, if using the \fBpkgs\fP or \fBsources\fP argument to install
  47621. a list of packages in a pkg state, it\(aqs important to note that it is
  47622. impossible to match an individual package in the list, since all packages
  47623. are installed as a single state.
  47624. .UNINDENT
  47625. .UNINDENT
  47626. .SS Multiple Requisites
  47627. .sp
  47628. The requisite statement is passed as a list, allowing for the easy addition of
  47629. more requisites. Both requisite types can also be separately declared:
  47630. .INDENT 0.0
  47631. .INDENT 3.5
  47632. .sp
  47633. .nf
  47634. .ft C
  47635. httpd:
  47636. pkg.installed: []
  47637. service.running:
  47638. \- enable: True
  47639. \- watch:
  47640. \- file: /etc/httpd/conf/httpd.conf
  47641. \- require:
  47642. \- pkg: httpd
  47643. \- user: httpd
  47644. \- group: httpd
  47645. file.managed:
  47646. \- name: /etc/httpd/conf/httpd.conf
  47647. \- source: salt://httpd/httpd.conf
  47648. \- require:
  47649. \- pkg: httpd
  47650. user.present: []
  47651. group.present: []
  47652. .ft P
  47653. .fi
  47654. .UNINDENT
  47655. .UNINDENT
  47656. .sp
  47657. In this example, the httpd service is only going to be started if the package,
  47658. user, group, and file are executed successfully.
  47659. .SS Requisite Documentation
  47660. .sp
  47661. For detailed information on each of the individual requisites, please
  47662. look here.
  47663. .SS The Order Option
  47664. .sp
  47665. Before using the \fIorder\fP option, remember that the majority of state ordering
  47666. should be done with a requisite\-declaration, and that a requisite
  47667. declaration will override an \fIorder\fP option, so a state with order option
  47668. should not require or required by other states.
  47669. .sp
  47670. The order option is used by adding an order number to a state declaration
  47671. with the option \fIorder\fP:
  47672. .INDENT 0.0
  47673. .INDENT 3.5
  47674. .sp
  47675. .nf
  47676. .ft C
  47677. vim:
  47678. pkg.installed:
  47679. \- order: 1
  47680. .ft P
  47681. .fi
  47682. .UNINDENT
  47683. .UNINDENT
  47684. .sp
  47685. By adding the order option to \fI1\fP this ensures that the vim package will be
  47686. installed in tandem with any other state declaration set to the order \fI1\fP\&.
  47687. .sp
  47688. Any state declared without an order option will be executed after all states
  47689. with order options are executed.
  47690. .sp
  47691. But this construct can only handle ordering states from the beginning.
  47692. Certain circumstances will present a situation where it is desirable to send
  47693. a state to the end of the line. To do this, set the order to \fBlast\fP:
  47694. .INDENT 0.0
  47695. .INDENT 3.5
  47696. .sp
  47697. .nf
  47698. .ft C
  47699. vim:
  47700. pkg.installed:
  47701. \- order: last
  47702. .ft P
  47703. .fi
  47704. .UNINDENT
  47705. .UNINDENT
  47706. .SS Running States in Parallel
  47707. .sp
  47708. Introduced in Salt version \fB2017.7.0\fP it is now possible to run select states
  47709. in parallel. This is accomplished very easily by adding the \fBparallel: True\fP
  47710. option to your state declaration:
  47711. .INDENT 0.0
  47712. .INDENT 3.5
  47713. .sp
  47714. .nf
  47715. .ft C
  47716. nginx:
  47717. service.running:
  47718. \- parallel: True
  47719. .ft P
  47720. .fi
  47721. .UNINDENT
  47722. .UNINDENT
  47723. .sp
  47724. Now \fBnginx\fP will be started in a separate process from the normal state run
  47725. and will therefore not block additional states.
  47726. .SS Parallel States and Requisites
  47727. .sp
  47728. Parallel States still honor requisites. If a given state requires another state
  47729. that has been run in parallel then the state runtime will wait for the required
  47730. state to finish.
  47731. .sp
  47732. Given this example:
  47733. .INDENT 0.0
  47734. .INDENT 3.5
  47735. .sp
  47736. .nf
  47737. .ft C
  47738. sleep 10:
  47739. cmd.run:
  47740. \- parallel: True
  47741. nginx:
  47742. service.running:
  47743. \- parallel: True
  47744. \- require:
  47745. \- cmd: sleep 10
  47746. sleep 5:
  47747. cmd.run:
  47748. \- parallel: True
  47749. .ft P
  47750. .fi
  47751. .UNINDENT
  47752. .UNINDENT
  47753. .sp
  47754. The \fBsleep 10\fP will be started first, then the state system will block on
  47755. starting nginx until the \fBsleep 10\fP completes. Once nginx has been ensured to
  47756. be running then the \fBsleep 5\fP will start.
  47757. .sp
  47758. This means that the order of evaluation of Salt States and requisites are
  47759. still honored, and given that in the above case, \fBparallel: True\fP does not
  47760. actually speed things up.
  47761. .sp
  47762. To run the above state much faster make sure that the \fBsleep 5\fP is evaluated
  47763. before the \fBnginx\fP state
  47764. .INDENT 0.0
  47765. .INDENT 3.5
  47766. .sp
  47767. .nf
  47768. .ft C
  47769. sleep 10:
  47770. cmd.run:
  47771. \- parallel: True
  47772. sleep 5:
  47773. cmd.run:
  47774. \- parallel: True
  47775. nginx:
  47776. service.running:
  47777. \- parallel: True
  47778. \- require:
  47779. \- cmd: sleep 10
  47780. .ft P
  47781. .fi
  47782. .UNINDENT
  47783. .UNINDENT
  47784. .sp
  47785. Now both of the sleep calls will be started in parallel and \fBnginx\fP will still
  47786. wait for the state it requires, but while it waits the \fBsleep 5\fP state will
  47787. also complete.
  47788. .SS Things to be Careful of
  47789. .sp
  47790. Parallel States do not prevent you from creating parallel conflicts on your
  47791. system. This means that if you start multiple package installs using Salt then
  47792. the package manager will block or fail. If you attempt to manage the same file
  47793. with multiple states in parallel then the result can produce an unexpected
  47794. file.
  47795. .sp
  47796. Make sure that the states you choose to run in parallel do not conflict, or
  47797. else, like in any parallel programming environment, the outcome may not be
  47798. what you expect. Doing things like just making all states run in parallel
  47799. will almost certainly result in unexpected behavior.
  47800. .sp
  47801. With that said, running states in parallel should be safe the vast majority
  47802. of the time and the most likely culprit for unexpected behavior is running
  47803. multiple package installs in parallel.
  47804. .SS State Providers
  47805. .sp
  47806. New in version 0.9.8.
  47807. .sp
  47808. Salt predetermines what modules should be mapped to what uses based on the
  47809. properties of a system. These determinations are generally made for modules
  47810. that provide things like package and service management.
  47811. .sp
  47812. Sometimes in states, it may be necessary to use an alternative module to
  47813. provide the needed functionality. For instance, an very old Arch Linux system
  47814. may not be running systemd, so instead of using the systemd service module, you
  47815. can revert to the default service module:
  47816. .INDENT 0.0
  47817. .INDENT 3.5
  47818. .sp
  47819. .nf
  47820. .ft C
  47821. httpd:
  47822. service.running:
  47823. \- enable: True
  47824. \- provider: service
  47825. .ft P
  47826. .fi
  47827. .UNINDENT
  47828. .UNINDENT
  47829. .sp
  47830. In this instance, the basic \fBservice\fP module (which
  47831. manages \fBsysvinit\fP\-based services) will replace the
  47832. \fBsystemd\fP module which is used by default on Arch Linux.
  47833. .sp
  47834. This change only affects this one state though. If it is necessary to make this
  47835. override for most or every service, it is better to just override the provider
  47836. in the minion config file, as described here\&.
  47837. .sp
  47838. Also, keep in mind that this only works for states with an identically\-named
  47839. virtual module (\fBpkg\fP, \fBservice\fP,
  47840. etc.).
  47841. .SS Arbitrary Module Redirects
  47842. .sp
  47843. The provider statement can also be used for more powerful means, instead of
  47844. overwriting or extending the module used for the named service an arbitrary
  47845. module can be used to provide certain functionality.
  47846. .INDENT 0.0
  47847. .INDENT 3.5
  47848. .sp
  47849. .nf
  47850. .ft C
  47851. emacs:
  47852. pkg.installed:
  47853. \- provider:
  47854. \- cmd: customcmd
  47855. .ft P
  47856. .fi
  47857. .UNINDENT
  47858. .UNINDENT
  47859. .sp
  47860. In this example, the state is being instructed to use a custom module to invoke
  47861. commands.
  47862. .sp
  47863. Arbitrary module redirects can be used to dramatically change the behavior of a
  47864. given state.
  47865. .SS Requisites and Other Global State Arguments
  47866. .SS Requisites
  47867. .sp
  47868. The Salt requisite system is used to create relationships between states. This
  47869. provides a method to easily define inter\-dependencies between states. These
  47870. dependencies are expressed by declaring the relationships using state names
  47871. and IDs or names. The generalized form of a requisite target is \fB<state name>:
  47872. <ID or name>\fP\&. The specific form is defined as a Requisite Reference\&.
  47873. .sp
  47874. A common use\-case for requisites is ensuring a package has been installed before
  47875. trying to ensure the service is running. In the following example, Salt will
  47876. ensure nginx has been installed before trying to manage the service. If the
  47877. package could not be installed, Salt will not try to manage the service.
  47878. .INDENT 0.0
  47879. .INDENT 3.5
  47880. .sp
  47881. .nf
  47882. .ft C
  47883. nginx:
  47884. pkg.installed:
  47885. \- name: nginx\-light
  47886. service.running:
  47887. \- enable: True
  47888. \- require:
  47889. \- pkg: nginx
  47890. .ft P
  47891. .fi
  47892. .UNINDENT
  47893. .UNINDENT
  47894. .sp
  47895. Without the requisite defined, salt would attempt to install the package and
  47896. then attempt to manage the service even if the installation failed.
  47897. .sp
  47898. These requisites always form dependencies in a predictable single direction.
  47899. Each requisite has an alternate \fI\%<requisite>_in\fP form that
  47900. can be used to establish a "reverse" dependency\-\-useful in for loops.
  47901. .sp
  47902. In the end, a single dependency map is created and everything is executed in a
  47903. finite and predictable order.
  47904. .SS Requisite matching
  47905. .sp
  47906. Requisites typically need two pieces of information for matching:
  47907. .INDENT 0.0
  47908. .IP \(bu 2
  47909. The state module name (e.g. \fBpkg\fP or \fBservice\fP)
  47910. .IP \(bu 2
  47911. The state identifier (e.g. \fBnginx\fP or \fB/etc/nginx/nginx.conf\fP)
  47912. .UNINDENT
  47913. .INDENT 0.0
  47914. .INDENT 3.5
  47915. .sp
  47916. .nf
  47917. .ft C
  47918. nginx:
  47919. pkg.installed: []
  47920. file.managed:
  47921. \- name: /etc/nginx/nginx.conf
  47922. service.running:
  47923. \- require:
  47924. \- pkg: nginx
  47925. \- file: /etc/nginx/nginx.conf
  47926. .ft P
  47927. .fi
  47928. .UNINDENT
  47929. .UNINDENT
  47930. .SS Glob matching in requisites
  47931. .sp
  47932. New in version 0.9.8.
  47933. .sp
  47934. Glob matching is supported in requisites. This is mostly useful for file
  47935. changes. In the example below, a change in \fB/etc/apache2/httpd.conf\fP or
  47936. \fB/etc/apache2/sites\-available/default.conf\fP will reload/restart the service:
  47937. .INDENT 0.0
  47938. .INDENT 3.5
  47939. .sp
  47940. .nf
  47941. .ft C
  47942. apache2:
  47943. service.running:
  47944. \- watch:
  47945. \- file: /etc/apache2/*
  47946. .ft P
  47947. .fi
  47948. .UNINDENT
  47949. .UNINDENT
  47950. .SS Omitting state module in requisites
  47951. .sp
  47952. New in version 2016.3.0.
  47953. .sp
  47954. In version 2016.3.0, the state module name was made optional. If the state module
  47955. is omitted, all states matching the ID will be required, regardless of which
  47956. module they are using.
  47957. .INDENT 0.0
  47958. .INDENT 3.5
  47959. .sp
  47960. .nf
  47961. .ft C
  47962. \- require:
  47963. \- vim
  47964. .ft P
  47965. .fi
  47966. .UNINDENT
  47967. .UNINDENT
  47968. .SS State target matching
  47969. .sp
  47970. In order to understand how state targets are matched, it is helpful to know
  47971. how the state compiler is working\&. Consider the following
  47972. example:
  47973. .INDENT 0.0
  47974. .INDENT 3.5
  47975. .sp
  47976. .nf
  47977. .ft C
  47978. Deploy server package:
  47979. file.managed:
  47980. \- name: /usr/local/share/myapp.tar.xz
  47981. \- source: salt://myapp.tar.xz
  47982. Extract server package:
  47983. archive.extracted:
  47984. \- name: /usr/local/share/myapp
  47985. \- source: /usr/local/share/myapp.tar.xz
  47986. \- archive_format: tar
  47987. \- onchanges:
  47988. \- file: Deploy server package
  47989. .ft P
  47990. .fi
  47991. .UNINDENT
  47992. .UNINDENT
  47993. .sp
  47994. The first formula is converted to a dictionary which looks as follows (represented
  47995. as YAML, some properties omitted for simplicity) as \fIHigh Data\fP:
  47996. .INDENT 0.0
  47997. .INDENT 3.5
  47998. .sp
  47999. .nf
  48000. .ft C
  48001. Deploy server package:
  48002. file:
  48003. \- managed
  48004. \- name: /usr/local/share/myapp.tar.xz
  48005. \- source: salt://myapp.tar.xz
  48006. .ft P
  48007. .fi
  48008. .UNINDENT
  48009. .UNINDENT
  48010. .sp
  48011. The \fBfile.managed\fP format used in the formula is essentially syntactic sugar:
  48012. at the end, the target is \fBfile\fP, which is used in the \fBExtract server package\fP
  48013. state above.
  48014. .SS Identifier matching
  48015. .sp
  48016. Requisites match on both the ID Declaration and the \fBname\fP parameter.
  48017. This means that, in the "Deploy server package" example above, a \fBrequire\fP
  48018. requisite would match with \fBDeploy server package\fP \fIor\fP \fB/usr/local/share/myapp.tar.xz\fP,
  48019. so either of the following versions for "Extract server package" is correct:
  48020. .INDENT 0.0
  48021. .INDENT 3.5
  48022. .sp
  48023. .nf
  48024. .ft C
  48025. # (Archive arguments omitted for simplicity)
  48026. # Match by ID declaration
  48027. Extract server package:
  48028. archive.extracted:
  48029. \- onchanges:
  48030. \- file: Deploy server package
  48031. # Match by name parameter
  48032. Extract server package:
  48033. archive.extracted:
  48034. \- onchanges:
  48035. \- file: /usr/local/share/myapp.tar.xz
  48036. .ft P
  48037. .fi
  48038. .UNINDENT
  48039. .UNINDENT
  48040. .SS Omitting state module in requisites
  48041. .sp
  48042. New in version 2016.3.0.
  48043. .sp
  48044. In version 2016.3.0, the state module name was made optional. If the state module
  48045. is omitted, all states matching the ID will be required, regardless of which
  48046. module they are using.
  48047. .INDENT 0.0
  48048. .INDENT 3.5
  48049. .sp
  48050. .nf
  48051. .ft C
  48052. \- require:
  48053. \- vim
  48054. .ft P
  48055. .fi
  48056. .UNINDENT
  48057. .UNINDENT
  48058. .SS Requisites Types
  48059. .sp
  48060. All requisite types have a corresponding \fI\%<requisite>_in\fP form:
  48061. .INDENT 0.0
  48062. .IP \(bu 2
  48063. \fI\%require\fP: Requires that a list of target states succeed before execution
  48064. .IP \(bu 2
  48065. \fI\%onchanges\fP: Execute if any target states succeed with changes
  48066. .IP \(bu 2
  48067. \fI\%watch\fP: Similar to \fBonchanges\fP; modifies state behavior using \fBmod_watch\fP
  48068. .IP \(bu 2
  48069. \fI\%listen\fP: Similar to \fBonchanges\fP; delays execution to end of state run using \fBmod_wait\fP
  48070. .IP \(bu 2
  48071. \fI\%prereq\fP: Execute prior to target state if target state expects to produce changes
  48072. .IP \(bu 2
  48073. \fI\%onfail\fP: Execute only if a target state fails
  48074. .IP \(bu 2
  48075. \fI\%use\fP: Copy arguments from another state
  48076. .UNINDENT
  48077. .sp
  48078. Several requisite types have a corresponding \fI\%requisite_any\fP form:
  48079. .INDENT 0.0
  48080. .IP \(bu 2
  48081. \fBrequire_any\fP
  48082. .IP \(bu 2
  48083. \fBwatch_any\fP
  48084. .IP \(bu 2
  48085. \fBonchanges_any\fP
  48086. .IP \(bu 2
  48087. \fBonfail_any\fP
  48088. .UNINDENT
  48089. .sp
  48090. Lastly, onfail has one special \fBonfail_all\fP form to account for when \fIAND\fP
  48091. logic is desired instead of the default \fIOR\fP logic of onfail/onfail_any (which
  48092. are equivalent).
  48093. .sp
  48094. All requisites define specific relationships and always work with the dependency
  48095. logic defined \fI\%above\fP\&.
  48096. .SS require
  48097. .sp
  48098. The use of \fBrequire\fP builds a dependency that prevents a state from executing
  48099. until all required states execute successfully. If any required state fails,
  48100. then the state will fail due to requisites.
  48101. .sp
  48102. In the following example, the \fBservice\fP state will not be checked unless both
  48103. \fBfile\fP states execute without failure.
  48104. .INDENT 0.0
  48105. .INDENT 3.5
  48106. .sp
  48107. .nf
  48108. .ft C
  48109. nginx:
  48110. service.running:
  48111. \- require:
  48112. \- file: /etc/nginx/nginx.conf
  48113. \- file: /etc/nginx/conf.d/ssl.conf
  48114. .ft P
  48115. .fi
  48116. .UNINDENT
  48117. .UNINDENT
  48118. .SS Require SLS File
  48119. .sp
  48120. As of Salt 0.16.0, it is possible to require an entire sls file. Do this by first
  48121. including the sls file and then setting a state to \fBrequire\fP the included sls
  48122. file:
  48123. .INDENT 0.0
  48124. .INDENT 3.5
  48125. .sp
  48126. .nf
  48127. .ft C
  48128. include:
  48129. \- foo
  48130. bar:
  48131. pkg.installed:
  48132. \- require:
  48133. \- sls: foo
  48134. .ft P
  48135. .fi
  48136. .UNINDENT
  48137. .UNINDENT
  48138. .sp
  48139. This will add a \fBrequire\fP to all of the state declarations found in the given
  48140. sls file. This means that \fBbar\fP will \fBrequire\fP every state within \fBfoo\fP\&.
  48141. This makes it very easy to batch large groups of states easily in any requisite
  48142. statement.
  48143. .SS onchanges
  48144. .sp
  48145. New in version 2014.7.0.
  48146. .sp
  48147. The \fBonchanges\fP requisite makes a state only apply if the required states
  48148. generate changes, and if the watched state\(aqs "result" is \fBTrue\fP (does not fail).
  48149. This can be a useful way to execute a post hook after changing aspects of a system.
  48150. .sp
  48151. If a state has multiple \fBonchanges\fP requisites then the state will trigger
  48152. if any of the watched states changes.
  48153. .INDENT 0.0
  48154. .INDENT 3.5
  48155. .sp
  48156. .nf
  48157. .ft C
  48158. myservice:
  48159. file.managed:
  48160. \- name: /etc/myservice/myservice.conf
  48161. \- source: salt://myservice/files/myservice.conf
  48162. cmd.run:
  48163. \- name: /usr/local/sbin/run\-build
  48164. \- onchanges:
  48165. \- file: /etc/myservice/myservice.conf
  48166. .ft P
  48167. .fi
  48168. .UNINDENT
  48169. .UNINDENT
  48170. .sp
  48171. In the example above, \fBcmd.run\fP will run only if there are changes in the
  48172. \fBfile.managed\fP state.
  48173. .sp
  48174. An easy mistake to make is using \fBonchanges_in\fP when \fBonchanges\fP is the
  48175. correct choice, as seen in this next example.
  48176. .INDENT 0.0
  48177. .INDENT 3.5
  48178. .sp
  48179. .nf
  48180. .ft C
  48181. myservice:
  48182. file.managed:
  48183. \- name: /etc/myservice/myservice.conf
  48184. \- source: salt://myservice/files/myservice.conf
  48185. cmd.run:
  48186. \- name: /usr/local/sbin/run\-build
  48187. \- onchanges_in: # <\-\- broken logic
  48188. \- file: /etc/myservice/myservice.conf
  48189. .ft P
  48190. .fi
  48191. .UNINDENT
  48192. .UNINDENT
  48193. .sp
  48194. This will set up a requisite relationship in which the \fBcmd.run\fP state
  48195. always executes, and the \fBfile.managed\fP state only executes if the
  48196. \fBcmd.run\fP state has changes (which it always will, since the \fBcmd.run\fP
  48197. state includes the command results as changes).
  48198. .sp
  48199. It may semantically seem like the \fBcmd.run\fP state should only run
  48200. when there are changes in the file state, but remember that requisite
  48201. relationships involve one state watching another state, and a
  48202. \fI\%requisite_in\fP does the opposite: it forces
  48203. the specified state to watch the state with the \fBrequisite_in\fP\&.
  48204. .SS watch
  48205. .sp
  48206. A \fBwatch\fP requisite is used to add additional behavior when there are changes
  48207. in other states. This is done using the \fBmod_watch\fP function available from
  48208. the execution module and will execute any time a watched state changes.
  48209. .sp
  48210. \fBNOTE:\fP
  48211. .INDENT 0.0
  48212. .INDENT 3.5
  48213. If a state should only execute when another state has changes, and
  48214. otherwise do nothing, the \fBonchanges\fP requisite should be used instead
  48215. of \fBwatch\fP\&. \fBwatch\fP is designed to add \fIadditional\fP behavior when
  48216. there are changes, but otherwise the state executes normally.
  48217. .UNINDENT
  48218. .UNINDENT
  48219. .sp
  48220. A good example of using \fBwatch\fP is with a \fBservice.running\fP state. When a service watches a state, then
  48221. the service is reloaded/restarted when the watched state changes, in addition
  48222. to Salt ensuring that the service is running.
  48223. .INDENT 0.0
  48224. .INDENT 3.5
  48225. .sp
  48226. .nf
  48227. .ft C
  48228. ntpd:
  48229. service.running:
  48230. \- watch:
  48231. \- file: /etc/ntp.conf
  48232. file.managed:
  48233. \- name: /etc/ntp.conf
  48234. \- source: salt://ntp/files/ntp.conf
  48235. .ft P
  48236. .fi
  48237. .UNINDENT
  48238. .UNINDENT
  48239. .sp
  48240. Another useful example of \fBwatch\fP is using salt to ensure a configuration file
  48241. is present and in a correct state, ensure the service is running, and trigger
  48242. \fBservice nginx reload\fP instead of \fBservice nginx restart\fP in order to avoid
  48243. dropping any connections.
  48244. .INDENT 0.0
  48245. .INDENT 3.5
  48246. .sp
  48247. .nf
  48248. .ft C
  48249. nginx:
  48250. service.running:
  48251. \- reload: True
  48252. \- watch:
  48253. \- file: nginx
  48254. file.managed:
  48255. \- name: /etc/nginx/conf.d/tls\-settings.conf
  48256. \- source: salt://nginx/files/tls\-settings.conf
  48257. .ft P
  48258. .fi
  48259. .UNINDENT
  48260. .UNINDENT
  48261. .sp
  48262. \fBNOTE:\fP
  48263. .INDENT 0.0
  48264. .INDENT 3.5
  48265. Not all state modules contain \fBmod_watch\fP\&. If \fBmod_watch\fP is absent
  48266. from the watching state module, the \fBwatch\fP requisite behaves exactly
  48267. like a \fBrequire\fP requisite.
  48268. .UNINDENT
  48269. .UNINDENT
  48270. .sp
  48271. The state containing the \fBwatch\fP requisite is defined as the watching
  48272. state. The state specified in the \fBwatch\fP statement is defined as the watched
  48273. state. When the watched state executes, it will return a dictionary containing
  48274. a key named "changes". Here are two examples of state return dictionaries,
  48275. shown in json for clarity:
  48276. .INDENT 0.0
  48277. .INDENT 3.5
  48278. .sp
  48279. .nf
  48280. .ft C
  48281. {
  48282. "local": {
  48283. "file_|\-/tmp/foo_|\-/tmp/foo_|\-directory": {
  48284. "comment": "Directory /tmp/foo updated",
  48285. "__run_num__": 0,
  48286. "changes": {
  48287. "user": "bar"
  48288. },
  48289. "name": "/tmp/foo",
  48290. "result": true
  48291. }
  48292. }
  48293. }
  48294. {
  48295. "local": {
  48296. "pkgrepo_|\-salt\-minion_|\-salt\-minion_|\-managed": {
  48297. "comment": "Package repo \(aqsalt\-minion\(aq already configured",
  48298. "__run_num__": 0,
  48299. "changes": {},
  48300. "name": "salt\-minion",
  48301. "result": true
  48302. }
  48303. }
  48304. }
  48305. .ft P
  48306. .fi
  48307. .UNINDENT
  48308. .UNINDENT
  48309. .sp
  48310. If the "result" of the watched state is \fBTrue\fP, the watching state \fIwill
  48311. execute normally\fP, and if it is \fBFalse\fP, the watching state will never run.
  48312. This part of \fBwatch\fP mirrors the functionality of the \fBrequire\fP requisite.
  48313. .sp
  48314. If the "result" of the watched state is \fBTrue\fP \fIand\fP the "changes"
  48315. key contains a populated dictionary (changes occurred in the watched state),
  48316. then the \fBwatch\fP requisite can add additional behavior. This additional
  48317. behavior is defined by the \fBmod_watch\fP function within the watching state
  48318. module. If the \fBmod_watch\fP function exists in the watching state module, it
  48319. will be called \fIin addition to\fP the normal watching state. The return data
  48320. from the \fBmod_watch\fP function is what will be returned to the master in this
  48321. case; the return data from the main watching function is discarded.
  48322. .sp
  48323. If the "changes" key contains an empty dictionary, the \fBwatch\fP requisite acts
  48324. exactly like the \fBrequire\fP requisite (the watching state will execute if
  48325. "result" is \fBTrue\fP, and fail if "result" is \fBFalse\fP in the watched state).
  48326. .sp
  48327. \fBNOTE:\fP
  48328. .INDENT 0.0
  48329. .INDENT 3.5
  48330. If the watching state \fBchanges\fP key contains values, then \fBmod_watch\fP
  48331. will not be called. If you\(aqre using \fBwatch\fP or \fBwatch_in\fP then it\(aqs a
  48332. good idea to have a state that only enforces one attribute \- such as
  48333. splitting out \fBservice.running\fP into its own state and have
  48334. \fBservice.enabled\fP in another.
  48335. .UNINDENT
  48336. .UNINDENT
  48337. .sp
  48338. One common source of confusion is expecting \fBmod_watch\fP to be called for
  48339. every necessary change. You might be tempted to write something like this:
  48340. .INDENT 0.0
  48341. .INDENT 3.5
  48342. .sp
  48343. .nf
  48344. .ft C
  48345. httpd:
  48346. service.running:
  48347. \- enable: True
  48348. \- watch:
  48349. \- file: httpd\-config
  48350. httpd\-config:
  48351. file.managed:
  48352. \- name: /etc/httpd/conf/httpd.conf
  48353. \- source: salt://httpd/files/apache.conf
  48354. .ft P
  48355. .fi
  48356. .UNINDENT
  48357. .UNINDENT
  48358. .sp
  48359. If your service is already running but not enabled, you might expect that Salt
  48360. will be able to tell that since the config file changed your service needs to
  48361. be restarted. This is not the case. Because the service needs to be enabled,
  48362. that change will be made and \fBmod_watch\fP will never be triggered. In this
  48363. case, changes to your \fBapache.conf\fP will fail to be loaded. If you want to
  48364. ensure that your service always reloads the correct way to handle this is
  48365. either ensure that your service is not running before applying your state, or
  48366. simply make sure that \fBservice.running\fP is in a state on its own:
  48367. .INDENT 0.0
  48368. .INDENT 3.5
  48369. .sp
  48370. .nf
  48371. .ft C
  48372. enable\-httpd:
  48373. service.enabled:
  48374. \- name: httpd
  48375. start\-httpd:
  48376. service.running:
  48377. \- name: httpd
  48378. \- watch:
  48379. \- file: httpd\-config
  48380. httpd\-config:
  48381. file.managed:
  48382. \- name: /etc/httpd/conf/httpd.conf
  48383. \- source: salt://httpd/files/apache.conf
  48384. .ft P
  48385. .fi
  48386. .UNINDENT
  48387. .UNINDENT
  48388. .sp
  48389. Now that \fBservice.running\fP is its own state, changes to \fBservice.enabled\fP
  48390. will no longer prevent \fBmod_watch\fP from getting triggered, so your \fBhttpd\fP
  48391. service will get restarted like you want.
  48392. .SS listen
  48393. .sp
  48394. New in version 2014.7.0.
  48395. .sp
  48396. A \fBlisten\fP requisite is used to trigger the \fBmod_wait\fP function of an
  48397. execution module. Rather than modifying execution order, the \fBmod_wait\fP state
  48398. created by \fBlisten\fP will execute at the end of the state run.
  48399. .INDENT 0.0
  48400. .INDENT 3.5
  48401. .sp
  48402. .nf
  48403. .ft C
  48404. restart\-apache2:
  48405. service.running:
  48406. \- name: apache2
  48407. \- listen:
  48408. \- file: /etc/apache2/apache2.conf
  48409. configure\-apache2:
  48410. file.managed:
  48411. \- name: /etc/apache2/apache2.conf
  48412. \- source: salt://apache2/apache2.conf
  48413. .ft P
  48414. .fi
  48415. .UNINDENT
  48416. .UNINDENT
  48417. .sp
  48418. This example will cause apache2 to restart when the apache2.conf file is
  48419. changed, but the apache2 restart will happen at the end of the state run.
  48420. .INDENT 0.0
  48421. .INDENT 3.5
  48422. .sp
  48423. .nf
  48424. .ft C
  48425. restart\-apache2:
  48426. service.running:
  48427. \- name: apache2
  48428. configure\-apache2:
  48429. file.managed:
  48430. \- name: /etc/apache2/apache2.conf
  48431. \- source: salt://apache2/apache2.conf
  48432. \- listen_in:
  48433. \- service: apache2
  48434. .ft P
  48435. .fi
  48436. .UNINDENT
  48437. .UNINDENT
  48438. .sp
  48439. This example does the same as the above example, but puts the state argument
  48440. on the file resource, rather than the service resource.
  48441. .SS prereq
  48442. .sp
  48443. New in version 0.16.0.
  48444. .sp
  48445. The \fBprereq\fP requisite works similar to \fBonchanges\fP except that it uses the
  48446. result from \fBtest=True\fP on the observed state to determine if it should run
  48447. prior to the observed state being run.
  48448. .sp
  48449. The best way to define how \fBprereq\fP operates is displayed in the following
  48450. practical example: When a service should be shut down because underlying code
  48451. is going to change, the service should be off\-line while the update occurs. In
  48452. this example, \fBgraceful\-down\fP is the pre\-requiring state and \fBsite\-code\fP
  48453. is the pre\-required state.
  48454. .INDENT 0.0
  48455. .INDENT 3.5
  48456. .sp
  48457. .nf
  48458. .ft C
  48459. graceful\-down:
  48460. cmd.run:
  48461. \- name: service apache graceful
  48462. \- prereq:
  48463. \- file: site\-code
  48464. site\-code:
  48465. file.recurse:
  48466. \- name: /opt/site_code
  48467. \- source: salt://site/code
  48468. .ft P
  48469. .fi
  48470. .UNINDENT
  48471. .UNINDENT
  48472. .sp
  48473. In this case, the apache server will only be shut down if the site\-code state
  48474. expects to deploy fresh code via the file.recurse call. The site\-code deployment
  48475. will only be executed if the graceful\-down run completes successfully.
  48476. .sp
  48477. When a \fBprereq\fP requisite is evaluated, the pre\-required state reports if it
  48478. expects to have any changes. It does this by running the pre\-required single
  48479. state as a test\-run by enabling \fBtest=True\fP\&. This test\-run will return a
  48480. dictionary containing a key named "changes". (See the \fBwatch\fP section above
  48481. for examples of "changes" dictionaries.)
  48482. .sp
  48483. If the "changes" key contains a populated dictionary, it means that the
  48484. pre\-required state expects changes to occur when the state is actually
  48485. executed, as opposed to the test\-run. The pre\-requiring state will now
  48486. run. If the pre\-requiring state executes successfully, the pre\-required
  48487. state will then execute. If the pre\-requiring state fails, the pre\-required
  48488. state will not execute.
  48489. .sp
  48490. If the "changes" key contains an empty dictionary, this means that changes are
  48491. not expected by the pre\-required state. Neither the pre\-required state nor the
  48492. pre\-requiring state will run.
  48493. .SS onfail
  48494. .sp
  48495. New in version 2014.7.0.
  48496. .sp
  48497. The \fBonfail\fP requisite allows for reactions to happen strictly as a response
  48498. to the failure of another state. This can be used in a number of ways, such as
  48499. sending a notification or attempting an alternate task or thread of tasks when
  48500. an important state fails.
  48501. .sp
  48502. The \fBonfail\fP requisite is applied in the same way as \fBrequire\fP and \fBwatch\fP:
  48503. .INDENT 0.0
  48504. .INDENT 3.5
  48505. .sp
  48506. .nf
  48507. .ft C
  48508. primary_mount:
  48509. mount.mounted:
  48510. \- name: /mnt/share
  48511. \- device: 10.0.0.45:/share
  48512. \- fstype: nfs
  48513. backup_mount:
  48514. mount.mounted:
  48515. \- name: /mnt/share
  48516. \- device: 192.168.40.34:/share
  48517. \- fstype: nfs
  48518. \- onfail:
  48519. \- mount: primary_mount
  48520. .ft P
  48521. .fi
  48522. .UNINDENT
  48523. .UNINDENT
  48524. .INDENT 0.0
  48525. .INDENT 3.5
  48526. .sp
  48527. .nf
  48528. .ft C
  48529. build_site:
  48530. cmd.run:
  48531. \- name: /srv/web/app/build_site
  48532. notify\-build_failure:
  48533. hipchat.send_message:
  48534. \- room_id: 123456
  48535. \- message: "Building website fail on {{ salt.grains.get(\(aqid\(aq) }}"
  48536. .ft P
  48537. .fi
  48538. .UNINDENT
  48539. .UNINDENT
  48540. .sp
  48541. The default behavior of the \fBonfail\fP when multiple requisites are listed is
  48542. the opposite of other requisites in the salt state engine, it acts by default
  48543. like \fBany()\fP instead of \fBall()\fP\&. This means that when you list multiple
  48544. onfail requisites on a state, if \fIany\fP fail the requisite will be satisfied.
  48545. If you instead need \fIall\fP logic to be applied, you can use \fBonfail_all\fP
  48546. form:
  48547. .INDENT 0.0
  48548. .INDENT 3.5
  48549. .sp
  48550. .nf
  48551. .ft C
  48552. test_site_a:
  48553. cmd.run:
  48554. \- name: ping \-c1 10.0.0.1
  48555. test_site_b:
  48556. cmd.run:
  48557. \- name: ping \-c1 10.0.0.2
  48558. notify_site_down:
  48559. hipchat.send_message:
  48560. \- room_id: 123456
  48561. \- message: "Both primary and backup sites are down!"
  48562. \- onfail_all:
  48563. \- cmd: test_site_a
  48564. \- cmd: test_site_b
  48565. .ft P
  48566. .fi
  48567. .UNINDENT
  48568. .UNINDENT
  48569. .sp
  48570. In this contrived example \fInotify_site_down\fP will run when both 10.0.0.1 and
  48571. 10.0.0.2 fail to respond to ping.
  48572. .sp
  48573. \fBNOTE:\fP
  48574. .INDENT 0.0
  48575. .INDENT 3.5
  48576. Setting failhard (globally or in
  48577. the failing state) to \fBTrue\fP will cause
  48578. \fBonfail\fP, \fBonfail_in\fP and \fBonfail_any\fP requisites to be ignored.
  48579. If you want to combine a global failhard set to True with \fBonfail\fP,
  48580. \fBonfail_in\fP or \fBonfail_any\fP, you will have to explicitly set failhard
  48581. to \fBFalse\fP (overriding the global setting) in the state that could fail.
  48582. .UNINDENT
  48583. .UNINDENT
  48584. .sp
  48585. \fBNOTE:\fP
  48586. .INDENT 0.0
  48587. .INDENT 3.5
  48588. Beginning in the \fB2016.11.0\fP release of Salt, \fBonfail\fP uses OR logic for
  48589. multiple listed \fBonfail\fP requisites. Prior to the \fB2016.11.0\fP release,
  48590. \fBonfail\fP used AND logic. See \fI\%Issue #22370\fP for more information.
  48591. Beginning in the \fBNeon\fP release of Salt, a new \fBonfail_all\fP requisite
  48592. form is available if AND logic is desired.
  48593. .UNINDENT
  48594. .UNINDENT
  48595. .SS use
  48596. .sp
  48597. The \fBuse\fP requisite is used to inherit the arguments passed in another
  48598. id declaration. This is useful when many files need to have the same defaults.
  48599. .INDENT 0.0
  48600. .INDENT 3.5
  48601. .sp
  48602. .nf
  48603. .ft C
  48604. /etc/foo.conf:
  48605. file.managed:
  48606. \- source: salt://foo.conf
  48607. \- template: jinja
  48608. \- mkdirs: True
  48609. \- user: apache
  48610. \- group: apache
  48611. \- mode: 755
  48612. /etc/bar.conf:
  48613. file.managed:
  48614. \- source: salt://bar.conf
  48615. \- use:
  48616. \- file: /etc/foo.conf
  48617. .ft P
  48618. .fi
  48619. .UNINDENT
  48620. .UNINDENT
  48621. .sp
  48622. The \fBuse\fP statement was developed primarily for the networking states but
  48623. can be used on any states in Salt. This makes sense for the networking state
  48624. because it can define a long list of options that need to be applied to
  48625. multiple network interfaces.
  48626. .sp
  48627. The \fBuse\fP statement does not inherit the requisites arguments of the
  48628. targeted state. This means also a chain of \fBuse\fP requisites would not
  48629. inherit inherited options.
  48630. .SS The _in version of requisites
  48631. .sp
  48632. Direct requisites form a dependency in a single direction. This makes it possible
  48633. for Salt to detect cyclical dependencies and helps prevent faulty logic. In some
  48634. cases, often in loops, it is desirable to establish a dependency in the opposite
  48635. direction.
  48636. .sp
  48637. All direct requisites have an \fB_in\fP counterpart that behaves the same but forms
  48638. the dependency in the opposite direction. The following sls examples will produce
  48639. the exact same dependency mapping.
  48640. .INDENT 0.0
  48641. .INDENT 3.5
  48642. .sp
  48643. .nf
  48644. .ft C
  48645. httpd:
  48646. pkg.installed: []
  48647. service.running:
  48648. \- require:
  48649. \- pkg: httpd
  48650. .ft P
  48651. .fi
  48652. .UNINDENT
  48653. .UNINDENT
  48654. .INDENT 0.0
  48655. .INDENT 3.5
  48656. .sp
  48657. .nf
  48658. .ft C
  48659. httpd:
  48660. pkg.installed:
  48661. \- require_in:
  48662. \- service: httpd
  48663. service.running: []
  48664. .ft P
  48665. .fi
  48666. .UNINDENT
  48667. .UNINDENT
  48668. .sp
  48669. In the following example, Salt will not try to manage the nginx service or any
  48670. configuration files unless the nginx package is installed because of the \fBpkg:
  48671. nginx\fP requisite.
  48672. .INDENT 0.0
  48673. .INDENT 3.5
  48674. .sp
  48675. .nf
  48676. .ft C
  48677. nginx:
  48678. pkg.installed: []
  48679. service.running:
  48680. \- enable: True
  48681. \- reload: True
  48682. \- require:
  48683. \- pkg: nginx
  48684. .ft P
  48685. .fi
  48686. .UNINDENT
  48687. .UNINDENT
  48688. .sp
  48689. php.sls
  48690. .INDENT 0.0
  48691. .INDENT 3.5
  48692. .sp
  48693. .nf
  48694. .ft C
  48695. include:
  48696. \- http
  48697. php:
  48698. pkg.installed:
  48699. \- require_in:
  48700. \- service: httpd
  48701. .ft P
  48702. .fi
  48703. .UNINDENT
  48704. .UNINDENT
  48705. .sp
  48706. mod_python.sls
  48707. .INDENT 0.0
  48708. .INDENT 3.5
  48709. .sp
  48710. .nf
  48711. .ft C
  48712. include:
  48713. \- http
  48714. mod_python:
  48715. pkg.installed:
  48716. \- require_in:
  48717. \- service: httpd
  48718. .ft P
  48719. .fi
  48720. .UNINDENT
  48721. .UNINDENT
  48722. .sp
  48723. Now the httpd server will only start if both php and mod_python are first verified to
  48724. be installed. Thus allowing for a requisite to be defined "after the fact".
  48725. .INDENT 0.0
  48726. .INDENT 3.5
  48727. .sp
  48728. .nf
  48729. .ft C
  48730. {% for cfile in salt.pillar.get(\(aqnginx:config_files\(aq) %}
  48731. /etc/nginx/conf.d/{{ cfile }}:
  48732. file.managed:
  48733. \- source: salt://nginx/configs/{{ cfile }}
  48734. \- require:
  48735. \- pkg: nginx
  48736. \- listen_in:
  48737. \- service: nginx
  48738. {% endfor %}
  48739. .ft P
  48740. .fi
  48741. .UNINDENT
  48742. .UNINDENT
  48743. .sp
  48744. In this scenario, \fBlisten_in\fP is a better choice than \fBrequire_in\fP because the
  48745. \fBlisten\fP requisite will trigger \fBmod_wait\fP behavior which will wait until the
  48746. end of state execution and then reload the service.
  48747. .SS The _any version of requisites
  48748. .sp
  48749. New in version 2018.3.0.
  48750. .sp
  48751. Some requisites have an \fB_any\fP counterpart that changes the requisite behavior
  48752. from \fBall()\fP to \fBany()\fP\&.
  48753. .INDENT 0.0
  48754. .INDENT 3.5
  48755. .sp
  48756. .nf
  48757. .ft C
  48758. A:
  48759. cmd.run:
  48760. \- name: echo A
  48761. \- require_any:
  48762. \- cmd: B
  48763. \- cmd: C
  48764. B:
  48765. cmd.run:
  48766. \- name: echo B
  48767. C:
  48768. cmd.run:
  48769. \- name: /bin/false
  48770. .ft P
  48771. .fi
  48772. .UNINDENT
  48773. .UNINDENT
  48774. .sp
  48775. In this example \fIA\fP will run because at least one of the requirements specified,
  48776. \fIB\fP or \fIC\fP, will succeed.
  48777. .INDENT 0.0
  48778. .INDENT 3.5
  48779. .sp
  48780. .nf
  48781. .ft C
  48782. myservice:
  48783. pkg.installed
  48784. /etc/myservice/myservice.conf:
  48785. file.managed:
  48786. \- source: salt://myservice/files/myservice.conf
  48787. /etc/yourservice/yourservice.conf:
  48788. file.managed:
  48789. \- source: salt://yourservice/files/yourservice.conf
  48790. /usr/local/sbin/myservice/post\-changes\-hook.sh
  48791. cmd.run:
  48792. \- onchanges_any:
  48793. \- file: /etc/myservice/myservice.conf
  48794. \- file: /etc/your_service/yourservice.conf
  48795. \- require:
  48796. \- pkg: myservice
  48797. .ft P
  48798. .fi
  48799. .UNINDENT
  48800. .UNINDENT
  48801. .sp
  48802. In this example, \fIcmd.run\fP would be run only if either of the \fIfile.managed\fP
  48803. states generated changes and at least one of the watched state\(aqs "result" is
  48804. \fBTrue\fP\&.
  48805. .SS Altering States
  48806. .sp
  48807. The state altering system is used to make sure that states are evaluated exactly
  48808. as the user expects. It can be used to double check that a state preformed
  48809. exactly how it was expected to, or to make 100% sure that a state only runs
  48810. under certain conditions. The use of unless or onlyif options help make states
  48811. even more stateful. The \fBcheck_cmd\fP option helps ensure that the result of a
  48812. state is evaluated correctly.
  48813. .SS reload
  48814. .sp
  48815. \fBreload_modules\fP is a boolean option that forces salt to reload its modules
  48816. after a state finishes. \fBreload_pillar\fP and \fBreload_grains\fP can also be set.
  48817. See Reloading Modules\&.
  48818. .INDENT 0.0
  48819. .INDENT 3.5
  48820. .sp
  48821. .nf
  48822. .ft C
  48823. grains_refresh:
  48824. module.run:
  48825. \- name: saltutil.refresh_grains
  48826. \- reload_grains: true
  48827. grains_read:
  48828. module.run:
  48829. \- name: grains.items
  48830. .ft P
  48831. .fi
  48832. .UNINDENT
  48833. .UNINDENT
  48834. .SS unless
  48835. .sp
  48836. New in version 2014.7.0.
  48837. .sp
  48838. The \fBunless\fP requisite specifies that a state should only run when any of
  48839. the specified commands return \fBFalse\fP\&. The \fBunless\fP requisite operates
  48840. as NAND and is useful in giving more granular control over when a state should
  48841. execute.
  48842. .sp
  48843. \fBNOTE\fP: Under the hood \fBunless\fP calls \fBcmd.retcode\fP with
  48844. \fBpython_shell=True\fP\&. This means the commands referenced by \fBunless\fP will be
  48845. parsed by a shell, so beware of side\-effects as this shell will be run with the
  48846. same privileges as the salt\-minion. Also be aware that the boolean value is
  48847. determined by the shell\(aqs concept of \fBTrue\fP and \fBFalse\fP, rather than Python\(aqs
  48848. concept of \fBTrue\fP and \fBFalse\fP\&.
  48849. .INDENT 0.0
  48850. .INDENT 3.5
  48851. .sp
  48852. .nf
  48853. .ft C
  48854. vim:
  48855. pkg.installed:
  48856. \- unless:
  48857. \- rpm \-q vim\-enhanced
  48858. \- ls /usr/bin/vim
  48859. .ft P
  48860. .fi
  48861. .UNINDENT
  48862. .UNINDENT
  48863. .sp
  48864. In the example above, the state will only run if either the vim\-enhanced
  48865. package is not installed (returns \fBFalse\fP) or if /usr/bin/vim does not
  48866. exist (returns \fBFalse\fP). The state will run if both commands return
  48867. \fBFalse\fP\&.
  48868. .sp
  48869. However, the state will not run if both commands return \fBTrue\fP\&.
  48870. .sp
  48871. Unless checks are resolved for each name to which they are associated.
  48872. .sp
  48873. For example:
  48874. .INDENT 0.0
  48875. .INDENT 3.5
  48876. .sp
  48877. .nf
  48878. .ft C
  48879. deploy_app:
  48880. cmd.run:
  48881. \- names:
  48882. \- first_deploy_cmd
  48883. \- second_deploy_cmd
  48884. \- unless: some_check
  48885. .ft P
  48886. .fi
  48887. .UNINDENT
  48888. .UNINDENT
  48889. .sp
  48890. In the above case, \fBsome_check\fP will be run prior to _each_ name \-\- once for
  48891. \fBfirst_deploy_cmd\fP and a second time for \fBsecond_deploy_cmd\fP\&.
  48892. .sp
  48893. Changed in version 3000: The \fBunless\fP requisite can take a module as a dictionary field in unless.
  48894. The dictionary must contain an argument \fBfun\fP which is the module that is
  48895. being run, and everything else must be passed in under the args key or will
  48896. be passed as individual kwargs to the module function.
  48897. .INDENT 0.0
  48898. .INDENT 3.5
  48899. .sp
  48900. .nf
  48901. .ft C
  48902. install apache on debian based distros:
  48903. cmd.run:
  48904. \- name: make install
  48905. \- cwd: /path/to/dir/whatever\-2.1.5/
  48906. \- unless:
  48907. \- fun: file.file_exists
  48908. path: /usr/local/bin/whatever
  48909. .ft P
  48910. .fi
  48911. .UNINDENT
  48912. .UNINDENT
  48913. .INDENT 0.0
  48914. .INDENT 3.5
  48915. .sp
  48916. .nf
  48917. .ft C
  48918. set mysql root password:
  48919. debconf.set:
  48920. \- name: mysql\-server\-5.7
  48921. \- data:
  48922. \(aqmysql\-server/root_password\(aq: {\(aqtype\(aq: \(aqpassword\(aq, \(aqvalue\(aq: {{pillar[\(aqmysql.pass\(aq]}} }
  48923. \- unless:
  48924. \- fun: pkg.version
  48925. args:
  48926. \- mysql\-server\-5.7
  48927. .ft P
  48928. .fi
  48929. .UNINDENT
  48930. .UNINDENT
  48931. .SS onlyif
  48932. .sp
  48933. New in version 2014.7.0.
  48934. .sp
  48935. The \fBonlyif\fP requisite specifies that if each command listed in \fBonlyif\fP
  48936. returns \fBTrue\fP, then the state is run. If any of the specified commands
  48937. return \fBFalse\fP, the state will not run.
  48938. .sp
  48939. \fBNOTE\fP: Under the hood \fBonlyif\fP calls \fBcmd.retcode\fP with
  48940. \fBpython_shell=True\fP\&. This means the commands referenced by \fBonlyif\fP will be
  48941. parsed by a shell, so beware of side\-effects as this shell will be run with the
  48942. same privileges as the salt\-minion. Also be aware that the boolean value is
  48943. determined by the shell\(aqs concept of \fBTrue\fP and \fBFalse\fP, rather than Python\(aqs
  48944. concept of \fBTrue\fP and \fBFalse\fP\&.
  48945. .INDENT 0.0
  48946. .INDENT 3.5
  48947. .sp
  48948. .nf
  48949. .ft C
  48950. stop\-volume:
  48951. module.run:
  48952. \- name: glusterfs.stop_volume
  48953. \- m_name: work
  48954. \- onlyif:
  48955. \- gluster volume status work
  48956. \- order: 1
  48957. remove\-volume:
  48958. module.run:
  48959. \- name: glusterfs.delete
  48960. \- m_name: work
  48961. \- onlyif:
  48962. \- gluster volume info work
  48963. \- watch:
  48964. \- cmd: stop\-volume
  48965. .ft P
  48966. .fi
  48967. .UNINDENT
  48968. .UNINDENT
  48969. .sp
  48970. The above example ensures that the stop_volume and delete modules only run
  48971. if the gluster commands return a 0 ret value.
  48972. .sp
  48973. Changed in version 3000: The \fBonlyif\fP requisite can take a module as a dictionary field in onlyif.
  48974. The dictionary must contain an argument \fBfun\fP which is the module that is
  48975. being run, and everything else must be passed in under the args key or will
  48976. be passed as individual kwargs to the module function.
  48977. .INDENT 0.0
  48978. .INDENT 3.5
  48979. .sp
  48980. .nf
  48981. .ft C
  48982. install apache on redhat based distros:
  48983. pkg.latest:
  48984. \- name: httpd
  48985. \- onlyif:
  48986. \- fun: match.grain
  48987. tgt: \(aqos_family: RedHat\(aq
  48988. install apache on debian based distros:
  48989. pkg.latest:
  48990. \- name: apache2
  48991. \- onlyif:
  48992. \- fun: match.grain
  48993. tgt: \(aqos_family: Debian\(aq
  48994. .ft P
  48995. .fi
  48996. .UNINDENT
  48997. .UNINDENT
  48998. .INDENT 0.0
  48999. .INDENT 3.5
  49000. .sp
  49001. .nf
  49002. .ft C
  49003. arbitrary file example:
  49004. file.touch:
  49005. \- name: /path/to/file
  49006. \- onlyif:
  49007. \- fun: file.search
  49008. args:
  49009. \- /etc/crontab
  49010. \- \(aqentry1\(aq
  49011. .ft P
  49012. .fi
  49013. .UNINDENT
  49014. .UNINDENT
  49015. .SS Creates
  49016. .sp
  49017. New in version 3001.
  49018. .sp
  49019. The \fBcreates\fP requisite specifies that a state should only run when any of
  49020. the specified files do not already exist. Like \fBunless\fP, \fBcreates\fP requisite
  49021. operates as NAND and is useful in giving more granular control over when a state
  49022. should execute. This was previously used by the \fBcmd\fP and
  49023. \fBdocker_container\fP states.
  49024. .INDENT 0.0
  49025. .INDENT 3.5
  49026. .INDENT 0.0
  49027. .INDENT 3.5
  49028. .sp
  49029. .nf
  49030. .ft C
  49031. contrived creates example:
  49032. file.touch:
  49033. \- name: /path/to/file
  49034. \- creates: /path/to/file
  49035. .ft P
  49036. .fi
  49037. .UNINDENT
  49038. .UNINDENT
  49039. .UNINDENT
  49040. .UNINDENT
  49041. .sp
  49042. \fBcreates\fP also accepts a list of files, in which case this state will
  49043. run if \fBany\fP of the files do not exist:
  49044. .INDENT 0.0
  49045. .INDENT 3.5
  49046. .INDENT 0.0
  49047. .INDENT 3.5
  49048. .sp
  49049. .nf
  49050. .ft C
  49051. creates list:
  49052. file.cmd:
  49053. \- name: /path/to/command
  49054. \- creates:
  49055. \- /path/file
  49056. \- /path/file2
  49057. .ft P
  49058. .fi
  49059. .UNINDENT
  49060. .UNINDENT
  49061. .UNINDENT
  49062. .UNINDENT
  49063. .SS listen
  49064. .sp
  49065. New in version 2017.7.0.
  49066. .sp
  49067. The \fBrunas\fP global option is used to set the user which will be used to run
  49068. the command in the \fBcmd.run\fP module.
  49069. .INDENT 0.0
  49070. .INDENT 3.5
  49071. .sp
  49072. .nf
  49073. .ft C
  49074. django:
  49075. pip.installed:
  49076. \- name: django >= 1.6, <= 1.7
  49077. \- runas: daniel
  49078. \- require:
  49079. \- pkg: python\-pip
  49080. .ft P
  49081. .fi
  49082. .UNINDENT
  49083. .UNINDENT
  49084. .sp
  49085. In the above state, the pip command run by \fBcmd.run\fP will be run by the daniel user.
  49086. .SS runas_password
  49087. .sp
  49088. New in version 2017.7.2.
  49089. .sp
  49090. The \fBrunas_password\fP global option is used to set the password used by the
  49091. runas global option. This is required by \fBcmd.run\fP on Windows when \fBrunas\fP
  49092. is specified. It will be set when \fBrunas_password\fP is defined in the state.
  49093. .INDENT 0.0
  49094. .INDENT 3.5
  49095. .sp
  49096. .nf
  49097. .ft C
  49098. run_script:
  49099. cmd.run:
  49100. \- name: Powershell \-NonInteractive \-ExecutionPolicy Bypass \-File C:\e\eTemp\e\escript.ps1
  49101. \- runas: frank
  49102. \- runas_password: supersecret
  49103. .ft P
  49104. .fi
  49105. .UNINDENT
  49106. .UNINDENT
  49107. .sp
  49108. In the above state, the Powershell script run by \fBcmd.run\fP will be run by the
  49109. frank user with the password \fBsupersecret\fP\&.
  49110. .SS check_cmd
  49111. .sp
  49112. New in version 2014.7.0.
  49113. .sp
  49114. Check Command is used for determining that a state did or did not run as
  49115. expected.
  49116. .sp
  49117. \fBNOTE\fP: Under the hood \fBcheck_cmd\fP calls \fBcmd.retcode\fP with
  49118. \fBpython_shell=True\fP\&. This means the commands referenced by unless will be
  49119. parsed by a shell, so beware of side\-effects as this shell will be run with the
  49120. same privileges as the salt\-minion.
  49121. .INDENT 0.0
  49122. .INDENT 3.5
  49123. .sp
  49124. .nf
  49125. .ft C
  49126. comment\-repo:
  49127. file.replace:
  49128. \- name: /etc/yum.repos.d/fedora.repo
  49129. \- pattern: \(aq^enabled=0\(aq
  49130. \- repl: enabled=1
  49131. \- check_cmd:
  49132. \- "! grep \(aqenabled=0\(aq /etc/yum.repos.d/fedora.repo"
  49133. .ft P
  49134. .fi
  49135. .UNINDENT
  49136. .UNINDENT
  49137. .sp
  49138. This will attempt to do a replace on all \fBenabled=0\fP in the .repo file, and
  49139. replace them with \fBenabled=1\fP\&. The \fBcheck_cmd\fP is just a bash command. It
  49140. will do a grep for \fBenabled=0\fP in the file, and if it finds any, it will
  49141. return a 0, which will be inverted by the leading \fB!\fP, causing \fBcheck_cmd\fP
  49142. to set the state as failed. If it returns a 1, meaning it didn\(aqt find any
  49143. \fBenabled=0\fP, it will be inverted by the leading \fB!\fP, returning a 0, and
  49144. declaring the function succeeded.
  49145. .sp
  49146. \fBNOTE\fP: This requisite \fBcheck_cmd\fP functions differently than the \fBcheck_cmd\fP
  49147. of the \fBfile.managed\fP state.
  49148. .SS Overriding Checks
  49149. .sp
  49150. There are two commands used for the above checks.
  49151. .sp
  49152. \fBmod_run_check\fP is used to check for \fBonlyif\fP and \fBunless\fP\&. If the goal is to
  49153. override the global check for these to variables, include a \fBmod_run_check\fP in the
  49154. salt/states/ file.
  49155. .sp
  49156. \fBmod_run_check_cmd\fP is used to check for the check_cmd options. To override
  49157. this one, include a \fBmod_run_check_cmd\fP in the states file for the state.
  49158. .SS Fire Event Notifications
  49159. .sp
  49160. New in version 2015.8.0.
  49161. .sp
  49162. The \fIfire_event\fP option in a state will cause the minion to send an event to
  49163. the Salt Master upon completion of that individual state.
  49164. .sp
  49165. The following example will cause the minion to send an event to the Salt Master
  49166. with a tag of \fIsalt/state_result/20150505121517276431/dasalt/nano\fP and the
  49167. result of the state will be the data field of the event. Notice that the \fIname\fP
  49168. of the state gets added to the tag.
  49169. .INDENT 0.0
  49170. .INDENT 3.5
  49171. .sp
  49172. .nf
  49173. .ft C
  49174. nano_stuff:
  49175. pkg.installed:
  49176. \- name: nano
  49177. \- fire_event: True
  49178. .ft P
  49179. .fi
  49180. .UNINDENT
  49181. .UNINDENT
  49182. .sp
  49183. In the following example instead of setting \fIfire_event\fP to \fITrue\fP,
  49184. \fIfire_event\fP is set to an arbitrary string, which will cause the event to be
  49185. sent with this tag:
  49186. \fIsalt/state_result/20150505121725642845/dasalt/custom/tag/nano/finished\fP
  49187. .INDENT 0.0
  49188. .INDENT 3.5
  49189. .sp
  49190. .nf
  49191. .ft C
  49192. nano_stuff:
  49193. pkg.installed:
  49194. \- name: nano
  49195. \- fire_event: custom/tag/nano/finished
  49196. .ft P
  49197. .fi
  49198. .UNINDENT
  49199. .UNINDENT
  49200. .SS Retrying States
  49201. .sp
  49202. New in version 2017.7.0.
  49203. .sp
  49204. The retry option in a state allows it to be executed multiple times until a desired
  49205. result is obtained or the maximum number of attempts have been made.
  49206. .sp
  49207. The retry option can be configured by the \fBattempts\fP, \fBuntil\fP, \fBinterval\fP, and
  49208. \fBsplay\fP parameters.
  49209. .sp
  49210. The \fBattempts\fP parameter controls the maximum number of times the state will be
  49211. run. If not specified or if an invalid value is specified, \fBattempts\fP will default
  49212. to \fB2\fP\&.
  49213. .sp
  49214. The \fBuntil\fP parameter defines the result that is required to stop retrying the state.
  49215. If not specified or if an invalid value is specified, \fBuntil\fP will default to \fBTrue\fP
  49216. .sp
  49217. The \fBinterval\fP parameter defines the amount of time, in seconds, that the system
  49218. will wait between attempts. If not specified or if an invalid value is specified,
  49219. \fBinterval\fP will default to \fB30\fP\&.
  49220. .sp
  49221. The \fBsplay\fP parameter allows the \fBinterval\fP to be additionally spread out. If not
  49222. specified or if an invalid value is specified, \fBsplay\fP defaults to \fB0\fP (i.e. no
  49223. splaying will occur).
  49224. .sp
  49225. The following example will run the pkg.installed state until it returns \fBTrue\fP or it has
  49226. been run \fB5\fP times. Each attempt will be \fB60\fP seconds apart and the interval will be splayed
  49227. up to an additional \fB10\fP seconds:
  49228. .INDENT 0.0
  49229. .INDENT 3.5
  49230. .sp
  49231. .nf
  49232. .ft C
  49233. my_retried_state:
  49234. pkg.installed:
  49235. \- name: nano
  49236. \- retry:
  49237. attempts: 5
  49238. until: True
  49239. interval: 60
  49240. splay: 10
  49241. .ft P
  49242. .fi
  49243. .UNINDENT
  49244. .UNINDENT
  49245. .sp
  49246. The following example will run the pkg.installed state with all the defaults for \fBretry\fP\&.
  49247. The state will run up to \fB2\fP times, each attempt being \fB30\fP seconds apart, or until it
  49248. returns \fBTrue\fP\&.
  49249. .INDENT 0.0
  49250. .INDENT 3.5
  49251. .sp
  49252. .nf
  49253. .ft C
  49254. install_nano:
  49255. pkg.installed:
  49256. \- name: nano
  49257. \- retry: True
  49258. .ft P
  49259. .fi
  49260. .UNINDENT
  49261. .UNINDENT
  49262. .sp
  49263. The following example will run the file.exists state every \fB30\fP seconds up to \fB15\fP times
  49264. or until the file exists (i.e. the state returns \fBTrue\fP).
  49265. .INDENT 0.0
  49266. .INDENT 3.5
  49267. .sp
  49268. .nf
  49269. .ft C
  49270. wait_for_file:
  49271. file.exists:
  49272. \- name: /path/to/file
  49273. \- retry:
  49274. attempts: 15
  49275. interval: 30
  49276. .ft P
  49277. .fi
  49278. .UNINDENT
  49279. .UNINDENT
  49280. .SS Return data from a retried state
  49281. .sp
  49282. When a state is retried, the returned output is as follows:
  49283. .sp
  49284. The \fBresult\fP return value is the \fBresult\fP from the final run. For example, imagine a state set
  49285. to \fBretry\fP up to three times or \fBuntil\fP \fBTrue\fP\&. If the state returns \fBFalse\fP on the first run
  49286. and then \fBTrue\fP on the second, the \fBresult\fP of the state will be \fBTrue\fP\&.
  49287. .sp
  49288. The \fBstarted\fP return value is the \fBstarted\fP from the first run.
  49289. .sp
  49290. The \fBduration\fP return value is the total duration of all attempts plus the retry intervals.
  49291. .sp
  49292. The \fBcomment\fP return value will include the result and comment from all previous attempts.
  49293. .sp
  49294. For example:
  49295. .INDENT 0.0
  49296. .INDENT 3.5
  49297. .sp
  49298. .nf
  49299. .ft C
  49300. wait_for_file:
  49301. file.exists:
  49302. \- name: /path/to/file
  49303. \- retry:
  49304. attempts: 10
  49305. interval: 2
  49306. splay: 5
  49307. .ft P
  49308. .fi
  49309. .UNINDENT
  49310. .UNINDENT
  49311. .sp
  49312. Would return similar to the following. The state result in this case is \fBFalse\fP (file.exist was run 10
  49313. times with a 2 second interval, but the file specified did not exist on any run).
  49314. .INDENT 0.0
  49315. .INDENT 3.5
  49316. .sp
  49317. .nf
  49318. .ft C
  49319. ID: wait_for_file
  49320. Function: file.exists
  49321. Result: False
  49322. Comment: Attempt 1: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49323. Attempt 2: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49324. Attempt 3: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49325. Attempt 4: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49326. Attempt 5: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49327. Attempt 6: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49328. Attempt 7: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49329. Attempt 8: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49330. Attempt 9: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49331. Specified path /path/to/file does not exist
  49332. Started: 09:08:12.903000
  49333. Duration: 47000.0 ms
  49334. Changes:
  49335. .ft P
  49336. .fi
  49337. .UNINDENT
  49338. .UNINDENT
  49339. .SS Startup States
  49340. .sp
  49341. Sometimes it may be desired that the salt minion execute a state run when it is
  49342. started. This alleviates the need for the master to initiate a state run on a
  49343. new minion and can make provisioning much easier.
  49344. .sp
  49345. As of Salt 0.10.3 the minion config reads options that allow for states to be
  49346. executed at startup. The options are \fIstartup_states\fP, \fIsls_list\fP, and
  49347. \fItop_file\fP\&.
  49348. .sp
  49349. The \fIstartup_states\fP option can be passed one of a number of arguments to
  49350. define how to execute states. The available options are:
  49351. .INDENT 0.0
  49352. .TP
  49353. .B highstate
  49354. Execute \fBstate.apply\fP
  49355. .TP
  49356. .B sls
  49357. Read in the \fBsls_list\fP option and execute the named sls files
  49358. .TP
  49359. .B top
  49360. Read in the \fBtop_file\fP option and execute states based on that top file
  49361. on the Salt Master
  49362. .UNINDENT
  49363. .SS Examples:
  49364. .sp
  49365. Execute \fBstate.apply\fP to run the
  49366. highstate when starting the minion:
  49367. .INDENT 0.0
  49368. .INDENT 3.5
  49369. .sp
  49370. .nf
  49371. .ft C
  49372. startup_states: highstate
  49373. .ft P
  49374. .fi
  49375. .UNINDENT
  49376. .UNINDENT
  49377. .sp
  49378. Execute the sls files \fIedit.vim\fP and \fIhyper\fP:
  49379. .INDENT 0.0
  49380. .INDENT 3.5
  49381. .sp
  49382. .nf
  49383. .ft C
  49384. startup_states: sls
  49385. sls_list:
  49386. \- edit.vim
  49387. \- hyper
  49388. .ft P
  49389. .fi
  49390. .UNINDENT
  49391. .UNINDENT
  49392. .SS State Testing
  49393. .sp
  49394. Executing a Salt state run can potentially change many aspects of a system and
  49395. it may be desirable to first see what a state run is going to change before
  49396. applying the run.
  49397. .sp
  49398. Salt has a test interface to report on exactly what will be changed, this
  49399. interface can be invoked on any of the major state run functions:
  49400. .INDENT 0.0
  49401. .INDENT 3.5
  49402. .sp
  49403. .nf
  49404. .ft C
  49405. salt \(aq*\(aq state.apply test=True
  49406. salt \(aq*\(aq state.apply mysls test=True
  49407. salt \(aq*\(aq state.single test=True
  49408. .ft P
  49409. .fi
  49410. .UNINDENT
  49411. .UNINDENT
  49412. .sp
  49413. The test run is mandated by adding the \fBtest=True\fP option to the states. The
  49414. return information will show states that will be applied in yellow and the
  49415. result is reported as \fBNone\fP\&.
  49416. .SS Default Test
  49417. .sp
  49418. If the value \fBtest\fP is set to \fBTrue\fP in the minion configuration file then
  49419. states will default to being executed in test mode. If this value is set then
  49420. states can still be run by calling test=False:
  49421. .INDENT 0.0
  49422. .INDENT 3.5
  49423. .sp
  49424. .nf
  49425. .ft C
  49426. salt \(aq*\(aq state.apply test=False
  49427. salt \(aq*\(aq state.apply mysls test=False
  49428. salt \(aq*\(aq state.single test=False
  49429. .ft P
  49430. .fi
  49431. .UNINDENT
  49432. .UNINDENT
  49433. .SS The Top File
  49434. .SS Introduction
  49435. .sp
  49436. Most infrastructures are made up of groups of machines, each machine in the
  49437. group performing a role similar to others. Those groups of machines work
  49438. in concert with each other to create an application stack.
  49439. .sp
  49440. To effectively manage those groups of machines, an administrator needs to
  49441. be able to create roles for those groups. For example, a group of machines
  49442. that serve front\-end web traffic might have roles which indicate that
  49443. those machines should all have the Apache webserver package installed and
  49444. that the Apache service should always be running.
  49445. .sp
  49446. In Salt, the file which contains a mapping between groups of machines on a
  49447. network and the configuration roles that should be applied to them is
  49448. called a \fBtop file\fP\&.
  49449. .sp
  49450. Top files are named \fBtop.sls\fP by default and they are so\-named because they
  49451. always exist in the "top" of a directory hierarchy that contains state files.
  49452. That directory hierarchy is called a \fBstate tree\fP\&.
  49453. .SS A Basic Example
  49454. .sp
  49455. Top files have three components:
  49456. .INDENT 0.0
  49457. .IP \(bu 2
  49458. \fBEnvironment:\fP A state tree directory containing a set of state files to
  49459. configure systems.
  49460. .IP \(bu 2
  49461. \fBTarget:\fP A grouping of machines which will have a set of states applied to
  49462. them.
  49463. .IP \(bu 2
  49464. \fBState files:\fP A list of state files to apply to a target. Each state file
  49465. describes one or more states to be configured and enforced on the targeted
  49466. machines.
  49467. .UNINDENT
  49468. .sp
  49469. The relationship between these three components is nested as follows:
  49470. .INDENT 0.0
  49471. .IP \(bu 2
  49472. Environments contain targets
  49473. .IP \(bu 2
  49474. Targets contain states
  49475. .UNINDENT
  49476. .sp
  49477. Putting these concepts together, we can describe a scenario in which all
  49478. minions with an ID that begins with \fBweb\fP have an \fBapache\fP state applied
  49479. to them:
  49480. .INDENT 0.0
  49481. .INDENT 3.5
  49482. .sp
  49483. .nf
  49484. .ft C
  49485. base: # Apply SLS files from the directory root for the \(aqbase\(aq environment
  49486. \(aqweb*\(aq: # All minions with a minion_id that begins with \(aqweb\(aq
  49487. \- apache # Apply the state file named \(aqapache.sls\(aq
  49488. .ft P
  49489. .fi
  49490. .UNINDENT
  49491. .UNINDENT
  49492. .SS Environments
  49493. .sp
  49494. Environments are directory hierarchies which contain a top file and a set
  49495. of state files.
  49496. .sp
  49497. Environments can be used in many ways, however there is no requirement that
  49498. they be used at all. In fact, the most common way to deploy Salt is with
  49499. a single environment, called \fBbase\fP\&. It is recommended that users only
  49500. create multiple environments if they have a use case which specifically
  49501. calls for multiple versions of state trees.
  49502. .SS Getting Started with Top Files
  49503. .sp
  49504. Each environment is defined inside a salt master configuration variable
  49505. called, \fBfile_roots\fP .
  49506. .sp
  49507. In the most common single\-environment setup, only the \fBbase\fP environment is
  49508. defined in \fBfile_roots\fP along with only one directory path for
  49509. the state tree.
  49510. .INDENT 0.0
  49511. .INDENT 3.5
  49512. .sp
  49513. .nf
  49514. .ft C
  49515. file_roots:
  49516. base:
  49517. \- /srv/salt
  49518. .ft P
  49519. .fi
  49520. .UNINDENT
  49521. .UNINDENT
  49522. .sp
  49523. In the above example, the top file will only have a single environment to pull
  49524. from.
  49525. .sp
  49526. Next is a simple single\-environment top file placed in \fB/srv/salt/top.sls\fP,
  49527. illustrating that for the environment called \fBbase\fP, all minions will have the
  49528. state files named \fBcore.sls\fP and \fBedit.sls\fP applied to them.
  49529. .INDENT 0.0
  49530. .INDENT 3.5
  49531. .sp
  49532. .nf
  49533. .ft C
  49534. base:
  49535. \(aq*\(aq:
  49536. \- core
  49537. \- edit
  49538. .ft P
  49539. .fi
  49540. .UNINDENT
  49541. .UNINDENT
  49542. .sp
  49543. Assuming the \fBfile_roots\fP configuration from above, Salt will look in the
  49544. \fB/srv/salt\fP directory for \fBcore.sls\fP and \fBedit.sls\fP\&.
  49545. .SS Multiple Environments
  49546. .sp
  49547. In some cases, teams may wish to create versioned state trees which can be
  49548. used to test Salt configurations in isolated sets of systems such as a staging
  49549. environment before deploying states into production.
  49550. .sp
  49551. For this case, multiple environments can be used to accomplish this task.
  49552. .sp
  49553. To create multiple environments, the \fBfile_roots\fP option can be
  49554. expanded:
  49555. .INDENT 0.0
  49556. .INDENT 3.5
  49557. .sp
  49558. .nf
  49559. .ft C
  49560. file_roots:
  49561. dev:
  49562. \- /srv/salt/dev
  49563. qa:
  49564. \- /srv/salt/qa
  49565. prod:
  49566. \- /srv/salt/prod
  49567. .ft P
  49568. .fi
  49569. .UNINDENT
  49570. .UNINDENT
  49571. .sp
  49572. In the above, we declare three environments: \fBdev\fP, \fBqa\fP and \fBprod\fP\&.
  49573. Each environment has a single directory assigned to it.
  49574. .sp
  49575. Our top file references the environments:
  49576. .INDENT 0.0
  49577. .INDENT 3.5
  49578. .sp
  49579. .nf
  49580. .ft C
  49581. dev:
  49582. \(aqwebserver*\(aq:
  49583. \- webserver
  49584. \(aqdb*\(aq:
  49585. \- db
  49586. qa:
  49587. \(aqwebserver*\(aq:
  49588. \- webserver
  49589. \(aqdb*\(aq:
  49590. \- db
  49591. prod:
  49592. \(aqwebserver*\(aq:
  49593. \- webserver
  49594. \(aqdb*\(aq:
  49595. \- db
  49596. .ft P
  49597. .fi
  49598. .UNINDENT
  49599. .UNINDENT
  49600. .sp
  49601. As seen above, the top file now declares the three environments and for each,
  49602. target expressions are defined to map minions to state files. For example, all
  49603. minions which have an ID beginning with the string \fBwebserver\fP will have the
  49604. webserver state from the requested environment assigned to it.
  49605. .sp
  49606. In this manner, a proposed change to a state could first be made in a state
  49607. file in \fB/srv/salt/dev\fP and then be applied to development webservers before
  49608. moving the state into QA by copying the state file into \fB/srv/salt/qa\fP\&.
  49609. .SS Choosing an Environment to Target
  49610. .sp
  49611. The top file is used to assign a minion to an environment unless overridden
  49612. using the methods described below. The environment in the top file must match
  49613. valid fileserver environment (a.k.a. \fBsaltenv\fP) in order for any states to be
  49614. applied to that minion. When using the default fileserver backend, environments
  49615. are defined in \fBfile_roots\fP\&.
  49616. .sp
  49617. The states that will be applied to a minion in a given environment can be
  49618. viewed using the \fBstate.show_top\fP
  49619. function.
  49620. .sp
  49621. Minions may be pinned to a particular environment by setting the
  49622. \fBenvironment\fP value in the minion configuration file. In doing so,
  49623. a minion will only request files from the environment to which it is assigned.
  49624. .sp
  49625. The environment may also be dynamically selected at runtime by passing it to
  49626. the \fBsalt\fP, \fBsalt\-call\fP or \fBsalt\-ssh\fP command. This is most commonly done
  49627. with functions in the \fBstate\fP module by using the \fBsaltenv\fP argument. For
  49628. example, to run a \fBhighstate\fP on all minions, using only the top file and SLS
  49629. files in the \fBprod\fP environment, run: \fBsalt \(aq*\(aq state.highstate
  49630. saltenv=prod\fP\&.
  49631. .sp
  49632. \fBNOTE:\fP
  49633. .INDENT 0.0
  49634. .INDENT 3.5
  49635. Not all functions accept \fBsaltenv\fP as an argument, see the documentation
  49636. for an individual function documentation to verify.
  49637. .UNINDENT
  49638. .UNINDENT
  49639. .SS Shorthand
  49640. .sp
  49641. If you assign only one SLS to a system, as in this example, a shorthand is
  49642. also available:
  49643. .INDENT 0.0
  49644. .INDENT 3.5
  49645. .sp
  49646. .nf
  49647. .ft C
  49648. base:
  49649. \(aq*\(aq: global
  49650. dev:
  49651. \(aqwebserver*\(aq: webserver
  49652. \(aqdb*\(aq: db
  49653. qa:
  49654. \(aqwebserver*\(aq: webserver
  49655. \(aqdb*\(aq: db
  49656. prod:
  49657. \(aqwebserver*\(aq: webserver
  49658. \(aqdb*\(aq: db
  49659. .ft P
  49660. .fi
  49661. .UNINDENT
  49662. .UNINDENT
  49663. .SS Advanced Minion Targeting
  49664. .sp
  49665. In the examples above, notice that all of the target expressions are globs. The
  49666. default match type in top files (since version 2014.7.0) is actually the
  49667. compound matcher, not the glob matcher as in the
  49668. CLI.
  49669. .sp
  49670. A single glob, when passed through the compound matcher, acts the same way as
  49671. matching by glob, so in most cases the two are indistinguishable. However,
  49672. there is an edge case in which a minion ID contains whitespace. While it is not
  49673. recommended to include spaces in a minion ID, Salt will not stop you from doing
  49674. so. However, since compound expressions are parsed word\-by\-word, if a minion ID
  49675. contains spaces it will fail to match. In this edge case, it will be necessary
  49676. to explicitly use the \fBglob\fP matcher:
  49677. .INDENT 0.0
  49678. .INDENT 3.5
  49679. .sp
  49680. .nf
  49681. .ft C
  49682. base:
  49683. \(aqminion 1\(aq:
  49684. \- match: glob
  49685. \- foo
  49686. .ft P
  49687. .fi
  49688. .UNINDENT
  49689. .UNINDENT
  49690. .sp
  49691. The available match types which can be set for a target expression in the top
  49692. file are:
  49693. .TS
  49694. center;
  49695. |l|l|.
  49696. _
  49697. T{
  49698. Match Type
  49699. T} T{
  49700. Description
  49701. T}
  49702. _
  49703. T{
  49704. glob
  49705. T} T{
  49706. Full minion ID or glob expression to match multiple minions (e.g. \fBminion123\fP or \fBminion*\fP)
  49707. T}
  49708. _
  49709. T{
  49710. pcre
  49711. T} T{
  49712. Perl\-compatible regular expression (PCRE) matching a minion ID (e.g. \fBweb[0\-3].domain.com\fP)
  49713. T}
  49714. _
  49715. T{
  49716. grain
  49717. T} T{
  49718. Match a grain, optionally using globbing (e.g. \fBkernel:Linux\fP or \fBkernel:*BSD\fP)
  49719. T}
  49720. _
  49721. T{
  49722. grain_pcre
  49723. T} T{
  49724. Match a grain using PCRE (e.g. \fBkernel:(Free|Open)BSD\fP)
  49725. T}
  49726. _
  49727. T{
  49728. list
  49729. T} T{
  49730. Comma\-separated list of minions (e.g. \fBminion1,minion2,minion3\fP)
  49731. T}
  49732. _
  49733. T{
  49734. pillar
  49735. T} T{
  49736. Pillar match, optionally using globbing (e.g. \fBrole:webserver\fP or \fBrole:web*\fP)
  49737. T}
  49738. _
  49739. T{
  49740. pillar_pcre
  49741. T} T{
  49742. Pillar match using PCRE (e.g. \fBrole:web(server|proxy)\fP
  49743. T}
  49744. _
  49745. T{
  49746. pillar_exact
  49747. T} T{
  49748. Pillar match with no globbing or PCRE (e.g. \fBrole:webserver\fP)
  49749. T}
  49750. _
  49751. T{
  49752. ipcidr
  49753. T} T{
  49754. Subnet or IP address (e.g. \fB172.17.0.0/16\fP or \fB10.2.9.80\fP)
  49755. T}
  49756. _
  49757. T{
  49758. data
  49759. T} T{
  49760. Match values kept in the minion\(aqs datastore (created using the \fBdata\fP execution module)
  49761. T}
  49762. _
  49763. T{
  49764. range
  49765. T} T{
  49766. Range cluster
  49767. T}
  49768. _
  49769. T{
  49770. compound
  49771. T} T{
  49772. Complex expression combining multiple match types (see here)
  49773. T}
  49774. _
  49775. T{
  49776. nodegroup
  49777. T} T{
  49778. Pre\-defined compound expressions in the master config file (see here)
  49779. T}
  49780. _
  49781. .TE
  49782. .sp
  49783. Below is a slightly more complex top file example, showing some of the above
  49784. match types:
  49785. .INDENT 0.0
  49786. .INDENT 3.5
  49787. .sp
  49788. .nf
  49789. .ft C
  49790. # All files will be taken from the file path specified in the base
  49791. # environment in the \(ga\(gafile_roots\(ga\(ga configuration value.
  49792. base:
  49793. # All minions which begin with the strings \(aqnag1\(aq or any minion with
  49794. # a grain set called \(aqrole\(aq with the value of \(aqmonitoring\(aq will have
  49795. # the \(aqserver.sls\(aq state file applied from the \(aqnagios/\(aq directory.
  49796. \(aqnag1* or G@role:monitoring\(aq:
  49797. \- nagios.server
  49798. # All minions get the following three state files applied
  49799. \(aq*\(aq:
  49800. \- ldap\-client
  49801. \- networking
  49802. \- salt.minion
  49803. # All minions which have an ID that begins with the phrase
  49804. # \(aqsalt\-master\(aq will have an SLS file applied that is named
  49805. # \(aqmaster.sls\(aq and is in the \(aqsalt\(aq directory, underneath
  49806. # the root specified in the \(ga\(gabase\(ga\(ga environment in the
  49807. # configuration value for \(ga\(gafile_roots\(ga\(ga.
  49808. \(aqsalt\-master*\(aq:
  49809. \- salt.master
  49810. # Minions that have an ID matching the following regular
  49811. # expression will have the state file called \(aqweb.sls\(aq in the
  49812. # nagios/mon directory applied. Additionally, minions matching
  49813. # the regular expression will also have the \(aqserver.sls\(aq file
  49814. # in the apache/ directory applied.
  49815. # NOTE!
  49816. #
  49817. # Take note of the \(aqmatch\(aq directive here, which tells Salt
  49818. # to treat the target string as a regex to be matched!
  49819. \(aq^(memcache|web).(qa|prod).loc$\(aq:
  49820. \- match: pcre
  49821. \- nagios.mon.web
  49822. \- apache.server
  49823. # Minions that have a grain set indicating that they are running
  49824. # the Ubuntu operating system will have the state file called
  49825. # \(aqubuntu.sls\(aq in the \(aqrepos\(aq directory applied.
  49826. #
  49827. # Again take note of the \(aqmatch\(aq directive here which tells
  49828. # Salt to match against a grain instead of a minion ID.
  49829. \(aqos:Ubuntu\(aq:
  49830. \- match: grain
  49831. \- repos.ubuntu
  49832. # Minions that are either RedHat or CentOS should have the \(aqepel.sls\(aq
  49833. # state applied, from the \(aqrepos/\(aq directory.
  49834. \(aqos:(RedHat|CentOS)\(aq:
  49835. \- match: grain_pcre
  49836. \- repos.epel
  49837. # The three minions with the IDs of \(aqfoo\(aq, \(aqbar\(aq and \(aqbaz\(aq should
  49838. # have \(aqdatabase.sls\(aq applied.
  49839. \(aqfoo,bar,baz\(aq:
  49840. \- match: list
  49841. \- database
  49842. # Any minion for which the pillar key \(aqsomekey\(aq is set and has a value
  49843. # of that key matching \(aqabc\(aq will have the \(aqxyz.sls\(aq state applied.
  49844. \(aqsomekey:abc\(aq:
  49845. \- match: pillar
  49846. \- xyz
  49847. .ft P
  49848. .fi
  49849. .UNINDENT
  49850. .UNINDENT
  49851. .SS How Top Files Are Compiled
  49852. .sp
  49853. When a highstate is executed and an environment is
  49854. specified (either using the \fBenvironment\fP config option or by
  49855. passing the saltenv when executing the highstate),
  49856. then that environment\(aqs top file is the only top file used to assign states to
  49857. minions, and only states from the specified environment will be run.
  49858. .sp
  49859. The remainder of this section applies to cases in which a highstate is executed without an environment specified.
  49860. .sp
  49861. With no environment specified, the minion will look for a top file in each
  49862. environment, and each top file will be processed to determine the SLS files to
  49863. run on the minions. By default, the top files from each environment will be
  49864. merged together. In configurations with many environments, such as with
  49865. GitFS where each branch and tag is treated as a
  49866. distinct environment, this may cause unexpected results as SLS files from older
  49867. tags cause defunct SLS files to be included in the highstate. In cases like
  49868. this, it can be helpful to set \fBtop_file_merging_strategy\fP to
  49869. \fBsame\fP to force each environment to use its own top file.
  49870. .INDENT 0.0
  49871. .INDENT 3.5
  49872. .sp
  49873. .nf
  49874. .ft C
  49875. top_file_merging_strategy: same
  49876. .ft P
  49877. .fi
  49878. .UNINDENT
  49879. .UNINDENT
  49880. .sp
  49881. Another option would be to set \fBstate_top_saltenv\fP to a specific
  49882. environment, to ensure that any top files in other environments are
  49883. disregarded:
  49884. .INDENT 0.0
  49885. .INDENT 3.5
  49886. .sp
  49887. .nf
  49888. .ft C
  49889. state_top_saltenv: base
  49890. .ft P
  49891. .fi
  49892. .UNINDENT
  49893. .UNINDENT
  49894. .sp
  49895. With GitFS, it can also be helpful to simply manage
  49896. each environment\(aqs top file separately, and/or manually specify the environment
  49897. when executing the highstate to avoid any complicated merging scenarios.
  49898. \fBgitfs_saltenv_whitelist\fP and \fBgitfs_saltenv_blacklist\fP can
  49899. also be used to hide unneeded branches and tags from GitFS to reduce the number
  49900. of top files in play.
  49901. .sp
  49902. When using multiple environments, it is not necessary to create a top file for
  49903. each environment. The easiest\-to\-maintain approach is to use a single top file
  49904. placed in the \fBbase\fP environment. This is often infeasible with GitFS though, since branching/tagging can easily result in extra
  49905. top files. However, when only the default (\fBroots\fP) fileserver backend is
  49906. used, a single top file in the \fBbase\fP environment is the most common way of
  49907. configuring a highstate\&.
  49908. .sp
  49909. The following minion configuration options affect how top files are compiled
  49910. when no environment is specified, it is recommended to follow the below four
  49911. links to learn more about how these options work:
  49912. .INDENT 0.0
  49913. .IP \(bu 2
  49914. \fBstate_top_saltenv\fP
  49915. .IP \(bu 2
  49916. \fBtop_file_merging_strategy\fP
  49917. .IP \(bu 2
  49918. \fBenv_order\fP
  49919. .IP \(bu 2
  49920. \fBdefault_top\fP
  49921. .UNINDENT
  49922. .SS Top File Compilation Examples
  49923. .sp
  49924. For the scenarios below, assume the following configuration:
  49925. .sp
  49926. \fB/etc/salt/master\fP:
  49927. .INDENT 0.0
  49928. .INDENT 3.5
  49929. .sp
  49930. .nf
  49931. .ft C
  49932. file_roots:
  49933. base:
  49934. \- /srv/salt/base
  49935. dev:
  49936. \- /srv/salt/dev
  49937. qa:
  49938. \- /srv/salt/qa
  49939. .ft P
  49940. .fi
  49941. .UNINDENT
  49942. .UNINDENT
  49943. .sp
  49944. \fB/srv/salt/base/top.sls\fP:
  49945. .INDENT 0.0
  49946. .INDENT 3.5
  49947. .sp
  49948. .nf
  49949. .ft C
  49950. base:
  49951. \(aq*\(aq:
  49952. \- base1
  49953. dev:
  49954. \(aq*\(aq:
  49955. \- dev1
  49956. qa:
  49957. \(aq*\(aq:
  49958. \- qa1
  49959. .ft P
  49960. .fi
  49961. .UNINDENT
  49962. .UNINDENT
  49963. .sp
  49964. \fB/srv/salt/dev/top.sls\fP:
  49965. .INDENT 0.0
  49966. .INDENT 3.5
  49967. .sp
  49968. .nf
  49969. .ft C
  49970. base:
  49971. \(aqminion1\(aq:
  49972. \- base2
  49973. dev:
  49974. \(aqminion2\(aq:
  49975. \- dev2
  49976. qa:
  49977. \(aq*\(aq:
  49978. \- qa1
  49979. \- qa2
  49980. .ft P
  49981. .fi
  49982. .UNINDENT
  49983. .UNINDENT
  49984. .sp
  49985. \fBNOTE:\fP
  49986. .INDENT 0.0
  49987. .INDENT 3.5
  49988. For the purposes of these examples, there is no top file in the \fBqa\fP
  49989. environment.
  49990. .UNINDENT
  49991. .UNINDENT
  49992. .SS Scenario 1 \- \fBdev\fP Environment Specified
  49993. .sp
  49994. In this scenario, the highstate was either invoked
  49995. with \fBsaltenv=dev\fP or the minion has \fBenvironment: dev\fP set in the minion
  49996. config file. The result will be that only the \fBdev2\fP SLS from the dev
  49997. environment will be part of the highstate, and it
  49998. will be applied to minion2, while minion1 will have no states applied to it.
  49999. .sp
  50000. If the \fBbase\fP environment were specified, the result would be that only the
  50001. \fBbase1\fP SLS from the \fBbase\fP environment would be part of the
  50002. highstate, and it would be applied to all minions.
  50003. .sp
  50004. If the \fBqa\fP environment were specified, the highstate would exit with an error.
  50005. .SS Scenario 2 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "merge"
  50006. .sp
  50007. In this scenario, assuming that the \fBbase\fP environment\(aqs top file was
  50008. evaluated first, the \fBbase1\fP, \fBdev1\fP, and \fBqa1\fP states would be applied
  50009. to all minions. If, for instance, the \fBqa\fP environment is not defined in
  50010. \fB/srv/salt/base/top.sls\fP, then because there is no top file for the \fBqa\fP
  50011. environment, no states from the \fBqa\fP environment would be applied.
  50012. .SS Scenario 3 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "same"
  50013. .sp
  50014. Changed in version 2016.11.0: In prior versions, "same" did not quite work as described below (see
  50015. \fI\%here\fP). This has now been corrected. It was decided that changing
  50016. something like top file handling in a point release had the potential to
  50017. unexpectedly impact users\(aq top files too much, and it would be better to
  50018. make this correction in a feature release.
  50019. .sp
  50020. In this scenario, \fBbase1\fP from the \fBbase\fP environment is applied to all
  50021. minions. Additionally, \fBdev2\fP from the \fBdev\fP environment is applied to
  50022. minion2.
  50023. .sp
  50024. If \fBdefault_top\fP is unset (or set to \fBbase\fP, which happens to be
  50025. the default), then \fBqa1\fP from the \fBqa\fP environment will be applied to all
  50026. minions. If \fBdefault_top\fP were set to \fBdev\fP, then both \fBqa1\fP
  50027. and \fBqa2\fP from the \fBqa\fP environment would be applied to all minions.
  50028. .SS Scenario 4 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "merge_all"
  50029. .sp
  50030. New in version 2016.11.0.
  50031. .sp
  50032. In this scenario, all configured states in all top files are applied. From the
  50033. \fBbase\fP environment, \fBbase1\fP would be applied to all minions, with \fBbase2\fP
  50034. being applied only to \fBminion1\fP\&. From the \fBdev\fP environment, \fBdev1\fP would
  50035. be applied to all minions, with \fBdev2\fP being applied only to \fBminion2\fP\&.
  50036. Finally, from the \fBqa\fP environment, both the \fBqa1\fP and \fBqa2\fP states will
  50037. be applied to all minions. Note that the \fBqa1\fP states would not be applied
  50038. twice, even though \fBqa1\fP appears twice.
  50039. .SS SLS Template Variable Reference
  50040. .sp
  50041. The template engines available to sls files and file templates come loaded
  50042. with a number of context variables. These variables contain information and
  50043. functions to assist in the generation of templates. See each variable below
  50044. for its availability \-\- not all variables are available in all templating
  50045. contexts.
  50046. .SS Salt
  50047. .sp
  50048. The \fIsalt\fP variable is available to abstract the salt library functions. This
  50049. variable is a python dictionary containing all of the functions available to
  50050. the running salt minion. It is available in all salt templates.
  50051. .INDENT 0.0
  50052. .INDENT 3.5
  50053. .sp
  50054. .nf
  50055. .ft C
  50056. {% for file in salt[\(aqcmd.run\(aq](\(aqls \-1 /opt/to_remove\(aq).splitlines() %}
  50057. /opt/to_remove/{{ file }}:
  50058. file.absent
  50059. {% endfor %}
  50060. .ft P
  50061. .fi
  50062. .UNINDENT
  50063. .UNINDENT
  50064. .SS Opts
  50065. .sp
  50066. The \fIopts\fP variable abstracts the contents of the minion\(aqs configuration file
  50067. directly to the template. The \fIopts\fP variable is a dictionary. It is available
  50068. in all templates.
  50069. .INDENT 0.0
  50070. .INDENT 3.5
  50071. .sp
  50072. .nf
  50073. .ft C
  50074. {{ opts[\(aqcachedir\(aq] }}
  50075. .ft P
  50076. .fi
  50077. .UNINDENT
  50078. .UNINDENT
  50079. .sp
  50080. The \fBconfig.get\fP function also searches for values in the \fIopts\fP dictionary.
  50081. .SS Pillar
  50082. .sp
  50083. The \fIpillar\fP dictionary can be referenced directly, and is available in all
  50084. templates:
  50085. .INDENT 0.0
  50086. .INDENT 3.5
  50087. .sp
  50088. .nf
  50089. .ft C
  50090. {{ pillar[\(aqkey\(aq] }}
  50091. .ft P
  50092. .fi
  50093. .UNINDENT
  50094. .UNINDENT
  50095. .sp
  50096. Using the \fBpillar.get\fP function via the \fIsalt\fP variable is generally
  50097. recommended since a default can be safely set in the event that the value
  50098. is not available in pillar and dictionaries can be traversed directly:
  50099. .INDENT 0.0
  50100. .INDENT 3.5
  50101. .sp
  50102. .nf
  50103. .ft C
  50104. {{ salt[\(aqpillar.get\(aq](\(aqkey\(aq, \(aqfailover_value\(aq) }}
  50105. {{ salt[\(aqpillar.get\(aq](\(aqstuff:more:deeper\(aq) }}
  50106. .ft P
  50107. .fi
  50108. .UNINDENT
  50109. .UNINDENT
  50110. .SS Grains
  50111. .sp
  50112. The \fIgrains\fP dictionary makes the minion\(aqs grains directly available, and is
  50113. available in all templates:
  50114. .INDENT 0.0
  50115. .INDENT 3.5
  50116. .sp
  50117. .nf
  50118. .ft C
  50119. {{ grains[\(aqos\(aq] }}
  50120. .ft P
  50121. .fi
  50122. .UNINDENT
  50123. .UNINDENT
  50124. .sp
  50125. The \fBgrains.get\fP function can be used to traverse deeper grains and set
  50126. defaults:
  50127. .INDENT 0.0
  50128. .INDENT 3.5
  50129. .sp
  50130. .nf
  50131. .ft C
  50132. {{ salt[\(aqgrains.get\(aq](\(aqos\(aq) }}
  50133. .ft P
  50134. .fi
  50135. .UNINDENT
  50136. .UNINDENT
  50137. .SS saltenv
  50138. .sp
  50139. The \fIsaltenv\fP variable is available in only in sls files when gathering the sls
  50140. from an environment.
  50141. .INDENT 0.0
  50142. .INDENT 3.5
  50143. .sp
  50144. .nf
  50145. .ft C
  50146. {{ saltenv }}
  50147. .ft P
  50148. .fi
  50149. .UNINDENT
  50150. .UNINDENT
  50151. .SS sls
  50152. .sp
  50153. The \fIsls\fP variable contains the sls reference value, and is only available in
  50154. the actual SLS file (not in any files referenced in that SLS). The sls
  50155. reference value is the value used to include the sls in top files or via the
  50156. include option.
  50157. .INDENT 0.0
  50158. .INDENT 3.5
  50159. .sp
  50160. .nf
  50161. .ft C
  50162. {{ sls }}
  50163. .ft P
  50164. .fi
  50165. .UNINDENT
  50166. .UNINDENT
  50167. .SS slspath
  50168. .sp
  50169. The \fIslspath\fP variable contains the path to the directory of the current sls
  50170. file. The value of \fIslspath\fP in files referenced in the current sls depends on
  50171. the reference method. For jinja includes \fIslspath\fP is the path to the current
  50172. directory of the file. For salt includes \fIslspath\fP is the path to the directory
  50173. of the included file.
  50174. .INDENT 0.0
  50175. .INDENT 3.5
  50176. .sp
  50177. .nf
  50178. .ft C
  50179. {{ slspath }}
  50180. .ft P
  50181. .fi
  50182. .UNINDENT
  50183. .UNINDENT
  50184. .SS State Modules
  50185. .sp
  50186. State Modules are the components that map to actual enforcement and management
  50187. of Salt states.
  50188. .SS States are Easy to Write!
  50189. .sp
  50190. State Modules should be easy to write and straightforward. The information
  50191. passed to the SLS data structures will map directly to the states modules.
  50192. .sp
  50193. Mapping the information from the SLS data is simple, this example should
  50194. illustrate:
  50195. .INDENT 0.0
  50196. .INDENT 3.5
  50197. .sp
  50198. .nf
  50199. .ft C
  50200. /etc/salt/master: # maps to "name", unless a "name" argument is specified below
  50201. file.managed: # maps to <filename>.<function> \- e.g. "managed" in https://github.com/saltstack/salt/tree/master/salt/states/file.py
  50202. \- user: root # one of many options passed to the manage function
  50203. \- group: root
  50204. \- mode: 644
  50205. \- source: salt://salt/master
  50206. .ft P
  50207. .fi
  50208. .UNINDENT
  50209. .UNINDENT
  50210. .sp
  50211. Therefore this SLS data can be directly linked to a module, function, and
  50212. arguments passed to that function.
  50213. .sp
  50214. This does issue the burden, that function names, state names and function
  50215. arguments should be very human readable inside state modules, since they
  50216. directly define the user interface.
  50217. .INDENT 0.0
  50218. .INDENT 3.5
  50219. .IP "Keyword Arguments"
  50220. .sp
  50221. Salt passes a number of keyword arguments to states when rendering them,
  50222. including the environment, a unique identifier for the state, and more.
  50223. Additionally, keep in mind that the requisites for a state are part of the
  50224. keyword arguments. Therefore, if you need to iterate through the keyword
  50225. arguments in a state, these must be considered and handled appropriately.
  50226. One such example is in the \fBpkgrepo.managed\fP state, which needs to be able to handle
  50227. arbitrary keyword arguments and pass them to module execution functions.
  50228. An example of how these keyword arguments can be handled can be found
  50229. \fI\%here\fP\&.
  50230. .UNINDENT
  50231. .UNINDENT
  50232. .SS Best Practices
  50233. .sp
  50234. A well\-written state function will follow these steps:
  50235. .sp
  50236. \fBNOTE:\fP
  50237. .INDENT 0.0
  50238. .INDENT 3.5
  50239. This is an extremely simplified example. Feel free to browse the \fI\%source
  50240. code\fP for Salt\(aqs state modules to see other examples.
  50241. .UNINDENT
  50242. .UNINDENT
  50243. .INDENT 0.0
  50244. .IP 1. 3
  50245. Set up the return dictionary and perform any necessary input validation
  50246. (type checking, looking for use of mutually\-exclusive arguments, etc.).
  50247. .INDENT 3.0
  50248. .INDENT 3.5
  50249. .sp
  50250. .nf
  50251. .ft C
  50252. ret = {"name": name, "result": False, "changes": {}, "comment": ""}
  50253. if foo and bar:
  50254. ret["comment"] = "Only one of foo and bar is permitted"
  50255. return ret
  50256. .ft P
  50257. .fi
  50258. .UNINDENT
  50259. .UNINDENT
  50260. .IP 2. 3
  50261. Check if changes need to be made. This is best done with an
  50262. information\-gathering function in an accompanying execution module\&. The state should be able to use the return
  50263. from this function to tell whether or not the minion is already in the
  50264. desired state.
  50265. .INDENT 3.0
  50266. .INDENT 3.5
  50267. .sp
  50268. .nf
  50269. .ft C
  50270. result = __salt__["modname.check"](name)
  50271. .ft P
  50272. .fi
  50273. .UNINDENT
  50274. .UNINDENT
  50275. .IP 3. 3
  50276. If step 2 found that the minion is already in the desired state, then exit
  50277. immediately with a \fBTrue\fP result and without making any changes.
  50278. .INDENT 3.0
  50279. .INDENT 3.5
  50280. .sp
  50281. .nf
  50282. .ft C
  50283. if result:
  50284. ret["result"] = True
  50285. ret["comment"] = "{0} is already installed".format(name)
  50286. return ret
  50287. .ft P
  50288. .fi
  50289. .UNINDENT
  50290. .UNINDENT
  50291. .IP 4. 3
  50292. If step 2 found that changes \fIdo\fP need to be made, then check to see if the
  50293. state was being run in test mode (i.e. with \fBtest=True\fP). If so, then exit
  50294. with a \fBNone\fP result, a relevant comment, and (if possible) a \fBchanges\fP
  50295. entry describing what changes would be made.
  50296. .INDENT 3.0
  50297. .INDENT 3.5
  50298. .sp
  50299. .nf
  50300. .ft C
  50301. if __opts__["test"]:
  50302. ret["result"] = None
  50303. ret["comment"] = "{0} would be installed".format(name)
  50304. ret["changes"] = result
  50305. return ret
  50306. .ft P
  50307. .fi
  50308. .UNINDENT
  50309. .UNINDENT
  50310. .IP 5. 3
  50311. Make the desired changes. This should again be done using a function from an
  50312. accompanying execution module. If the result of that function is enough to
  50313. tell you whether or not an error occurred, then you can exit with a
  50314. \fBFalse\fP result and a relevant comment to explain what happened.
  50315. .INDENT 3.0
  50316. .INDENT 3.5
  50317. .sp
  50318. .nf
  50319. .ft C
  50320. result = __salt__["modname.install"](name)
  50321. .ft P
  50322. .fi
  50323. .UNINDENT
  50324. .UNINDENT
  50325. .IP 6. 3
  50326. Perform the same check from step 2 again to confirm whether or not the
  50327. minion is in the desired state. Just as in step 2, this function should be
  50328. able to tell you by its return data whether or not changes need to be made.
  50329. .INDENT 3.0
  50330. .INDENT 3.5
  50331. .sp
  50332. .nf
  50333. .ft C
  50334. ret["changes"] = __salt__["modname.check"](name)
  50335. .ft P
  50336. .fi
  50337. .UNINDENT
  50338. .UNINDENT
  50339. .sp
  50340. As you can see here, we are setting the \fBchanges\fP key in the return
  50341. dictionary to the result of the \fBmodname.check\fP function (just as we did
  50342. in step 4). The assumption here is that the information\-gathering function
  50343. will return a dictionary explaining what changes need to be made. This may
  50344. or may not fit your use case.
  50345. .IP 7. 3
  50346. Set the return data and return!
  50347. .INDENT 3.0
  50348. .INDENT 3.5
  50349. .sp
  50350. .nf
  50351. .ft C
  50352. if ret["changes"]:
  50353. ret["comment"] = "{0} failed to install".format(name)
  50354. else:
  50355. ret["result"] = True
  50356. ret["comment"] = "{0} was installed".format(name)
  50357. return ret
  50358. .ft P
  50359. .fi
  50360. .UNINDENT
  50361. .UNINDENT
  50362. .UNINDENT
  50363. .SS Using Custom State Modules
  50364. .sp
  50365. Before the state module can be used, it must be distributed to minions. This
  50366. can be done by placing them into \fBsalt://_states/\fP\&. They can then be
  50367. distributed manually to minions by running \fBsaltutil.sync_states\fP or \fBsaltutil.sync_all\fP\&. Alternatively, when running a
  50368. highstate custom types will automatically be synced.
  50369. .sp
  50370. NOTE: Writing state modules with hyphens in the filename will cause issues
  50371. with !pyobjects routines. Best practice to stick to underscores.
  50372. .sp
  50373. Any custom states which have been synced to a minion, that are named the same
  50374. as one of Salt\(aqs default set of states, will take the place of the default
  50375. state with the same name. Note that a state module\(aqs name defaults to one based
  50376. on its filename (i.e. \fBfoo.py\fP becomes state module \fBfoo\fP), but that its
  50377. name can be overridden by using a __virtual__ function\&.
  50378. .SS Cross Calling Execution Modules from States
  50379. .sp
  50380. As with Execution Modules, State Modules can also make use of the \fB__salt__\fP
  50381. and \fB__grains__\fP data. See cross calling execution modules\&.
  50382. .sp
  50383. It is important to note that the real work of state management should not be
  50384. done in the state module unless it is needed. A good example is the pkg state
  50385. module. This module does not do any package management work, it just calls the
  50386. pkg execution module. This makes the pkg state module completely generic, which
  50387. is why there is only one pkg state module and many backend pkg execution
  50388. modules.
  50389. .sp
  50390. On the other hand some modules will require that the logic be placed in the
  50391. state module, a good example of this is the file module. But in the vast
  50392. majority of cases this is not the best approach, and writing specific
  50393. execution modules to do the backend work will be the optimal solution.
  50394. .SS Cross Calling State Modules
  50395. .sp
  50396. All of the Salt state modules are available to each other and state modules can call
  50397. functions available in other state modules.
  50398. .sp
  50399. The variable \fB__states__\fP is packed into the modules after they are loaded into
  50400. the Salt minion.
  50401. .sp
  50402. The \fB__states__\fP variable is a \fI\%Python dictionary\fP
  50403. containing all of the state modules. Dictionary keys are strings representing
  50404. the names of the modules and the values are the functions themselves.
  50405. .sp
  50406. Salt state modules can be cross\-called by accessing the value in the
  50407. \fB__states__\fP dict:
  50408. .INDENT 0.0
  50409. .INDENT 3.5
  50410. .sp
  50411. .nf
  50412. .ft C
  50413. ret = __states__["file.managed"](name="/tmp/myfile", source="salt://myfile")
  50414. .ft P
  50415. .fi
  50416. .UNINDENT
  50417. .UNINDENT
  50418. .sp
  50419. This code will call the \fImanaged\fP function in the \fBfile\fP state module and pass the arguments \fBname\fP and \fBsource\fP
  50420. to it.
  50421. .SS Return Data
  50422. .sp
  50423. A State Module must return a dict containing the following keys/values:
  50424. .INDENT 0.0
  50425. .IP \(bu 2
  50426. \fBname:\fP The same value passed to the state as "name".
  50427. .IP \(bu 2
  50428. \fBchanges:\fP A dict describing the changes made. Each thing changed should
  50429. be a key, with its value being another dict with keys called "old" and "new"
  50430. containing the old/new values. For example, the pkg state\(aqs \fBchanges\fP dict
  50431. has one key for each package changed, with the "old" and "new" keys in its
  50432. sub\-dict containing the old and new versions of the package. For example,
  50433. the final changes dictionary for this scenario would look something like this:
  50434. .INDENT 2.0
  50435. .INDENT 3.5
  50436. .sp
  50437. .nf
  50438. .ft C
  50439. ret["changes"].update({"my_pkg_name": {"old": "", "new": "my_pkg_name\-1.0"}})
  50440. .ft P
  50441. .fi
  50442. .UNINDENT
  50443. .UNINDENT
  50444. .IP \(bu 2
  50445. \fBresult:\fP A tristate value. \fBTrue\fP if the action was successful,
  50446. \fBFalse\fP if it was not, or \fBNone\fP if the state was run in test mode,
  50447. \fBtest=True\fP, and changes would have been made if the state was not run in
  50448. test mode.
  50449. .TS
  50450. center;
  50451. |l|l|l|.
  50452. _
  50453. T{
  50454. T} T{
  50455. live mode
  50456. T} T{
  50457. test mode
  50458. T}
  50459. _
  50460. T{
  50461. no changes
  50462. T} T{
  50463. \fBTrue\fP
  50464. T} T{
  50465. \fBTrue\fP
  50466. T}
  50467. _
  50468. T{
  50469. successful changes
  50470. T} T{
  50471. \fBTrue\fP
  50472. T} T{
  50473. \fBNone\fP
  50474. T}
  50475. _
  50476. T{
  50477. failed changes
  50478. T} T{
  50479. \fBFalse\fP
  50480. T} T{
  50481. \fBFalse\fP or \fBNone\fP
  50482. T}
  50483. _
  50484. .TE
  50485. .sp
  50486. \fBNOTE:\fP
  50487. .INDENT 2.0
  50488. .INDENT 3.5
  50489. Test mode does not predict if the changes will be successful or not,
  50490. and hence the result for pending changes is usually \fBNone\fP\&.
  50491. .sp
  50492. However, if a state is going to fail and this can be determined
  50493. in test mode without applying the change, \fBFalse\fP can be returned.
  50494. .UNINDENT
  50495. .UNINDENT
  50496. .IP \(bu 2
  50497. \fBcomment:\fP A list of strings or a single string summarizing the result.
  50498. Note that support for lists of strings is available as of Salt 2018.3.0.
  50499. Lists of strings will be joined with newlines to form the final comment;
  50500. this is useful to allow multiple comments from subparts of a state.
  50501. Prefer to keep line lengths short (use multiple lines as needed),
  50502. and end with punctuation (e.g. a period) to delimit multiple comments.
  50503. .UNINDENT
  50504. .sp
  50505. \fBNOTE:\fP
  50506. .INDENT 0.0
  50507. .INDENT 3.5
  50508. States should not return data which cannot be serialized such as frozensets.
  50509. .UNINDENT
  50510. .UNINDENT
  50511. .SS Test State
  50512. .sp
  50513. All states should check for and support \fBtest\fP being passed in the options.
  50514. This will return data about what changes would occur if the state were actually
  50515. run. An example of such a check could look like this:
  50516. .INDENT 0.0
  50517. .INDENT 3.5
  50518. .sp
  50519. .nf
  50520. .ft C
  50521. # Return comment of changes if test.
  50522. if __opts__["test"]:
  50523. ret["result"] = None
  50524. ret["comment"] = "State Foo will execute with param {0}".format(bar)
  50525. return ret
  50526. .ft P
  50527. .fi
  50528. .UNINDENT
  50529. .UNINDENT
  50530. .sp
  50531. Make sure to test and return before performing any real actions on the minion.
  50532. .sp
  50533. \fBNOTE:\fP
  50534. .INDENT 0.0
  50535. .INDENT 3.5
  50536. Be sure to refer to the \fBresult\fP table listed above and displaying any
  50537. possible changes when writing support for \fBtest\fP\&. Looking for changes in
  50538. a state is essential to \fBtest=true\fP functionality. If a state is predicted
  50539. to have no changes when \fBtest=true\fP (or \fBtest: true\fP in a config file)
  50540. is used, then the result of the final state \fBshould not\fP be \fBNone\fP\&.
  50541. .UNINDENT
  50542. .UNINDENT
  50543. .SS Watcher Function
  50544. .sp
  50545. If the state being written should support the watch requisite then a watcher
  50546. function needs to be declared. The watcher function is called whenever the
  50547. watch requisite is invoked and should be generic to the behavior of the state
  50548. itself.
  50549. .sp
  50550. The watcher function should accept all of the options that the normal state
  50551. functions accept (as they will be passed into the watcher function).
  50552. .sp
  50553. A watcher function typically is used to execute state specific reactive
  50554. behavior, for instance, the watcher for the service module restarts the
  50555. named service and makes it useful for the watcher to make the service
  50556. react to changes in the environment.
  50557. .sp
  50558. The watcher function also needs to return the same data that a normal state
  50559. function returns.
  50560. .SS Mod_init Interface
  50561. .sp
  50562. Some states need to execute something only once to ensure that an environment
  50563. has been set up, or certain conditions global to the state behavior can be
  50564. predefined. This is the realm of the mod_init interface.
  50565. .sp
  50566. A state module can have a function called \fBmod_init\fP which executes when the
  50567. first state of this type is called. This interface was created primarily to
  50568. improve the pkg state. When packages are installed the package metadata needs
  50569. to be refreshed, but refreshing the package metadata every time a package is
  50570. installed is wasteful. The mod_init function for the pkg state sets a flag down
  50571. so that the first, and only the first, package installation attempt will refresh
  50572. the package database (the package database can of course be manually called to
  50573. refresh via the \fBrefresh\fP option in the pkg state).
  50574. .sp
  50575. The mod_init function must accept the \fBLow State Data\fP for the given
  50576. executing state as an argument. The low state data is a dict and can be seen by
  50577. executing the state.show_lowstate function. Then the mod_init function must
  50578. return a bool. If the return value is True, then the mod_init function will not
  50579. be executed again, meaning that the needed behavior has been set up. Otherwise,
  50580. if the mod_init function returns False, then the function will be called the
  50581. next time.
  50582. .sp
  50583. A good example of the mod_init function is found in the pkg state module:
  50584. .INDENT 0.0
  50585. .INDENT 3.5
  50586. .sp
  50587. .nf
  50588. .ft C
  50589. def mod_init(low):
  50590. """
  50591. Refresh the package database here so that it only needs to happen once
  50592. """
  50593. if low["fun"] == "installed" or low["fun"] == "latest":
  50594. rtag = __gen_rtag()
  50595. if not os.path.exists(rtag):
  50596. open(rtag, "w+").write("")
  50597. return True
  50598. else:
  50599. return False
  50600. .ft P
  50601. .fi
  50602. .UNINDENT
  50603. .UNINDENT
  50604. .sp
  50605. The mod_init function in the pkg state accepts the low state data as \fBlow\fP
  50606. and then checks to see if the function being called is going to install
  50607. packages, if the function is not going to install packages then there is no
  50608. need to refresh the package database. Therefore if the package database is
  50609. prepared to refresh, then return True and the mod_init will not be called
  50610. the next time a pkg state is evaluated, otherwise return False and the mod_init
  50611. will be called next time a pkg state is evaluated.
  50612. .SS Log Output
  50613. .sp
  50614. You can call the logger from custom modules to write messages to the minion
  50615. logs. The following code snippet demonstrates writing log messages:
  50616. .INDENT 0.0
  50617. .INDENT 3.5
  50618. .sp
  50619. .nf
  50620. .ft C
  50621. import logging
  50622. log = logging.getLogger(__name__)
  50623. log.info("Here is Some Information")
  50624. log.warning("You Should Not Do That")
  50625. log.error("It Is Busted")
  50626. .ft P
  50627. .fi
  50628. .UNINDENT
  50629. .UNINDENT
  50630. .SS Strings and Unicode
  50631. .sp
  50632. A state module author should always assume that strings fed to the module
  50633. have already decoded from strings into Unicode. In Python 2, these will
  50634. be of type \(aqUnicode\(aq and in Python 3 they will be of type \fBstr\fP\&. Calling
  50635. from a state to other Salt sub\-systems, such as execution modules should
  50636. pass Unicode (or bytes if passing binary data). In the rare event that a state needs to write directly
  50637. to disk, Unicode should be encoded to a string immediately before writing
  50638. to disk. An author may use \fB__salt_system_encoding__\fP to learn what the
  50639. encoding type of the system is. For example,
  50640. \fI\(aqmy_string\(aq.encode(__salt_system_encoding__\(aq)\fP\&.
  50641. .SS Full State Module Example
  50642. .sp
  50643. The following is a simplistic example of a full state module and function.
  50644. Remember to call out to execution modules to perform all the real work. The
  50645. state module should only perform "before" and "after" checks.
  50646. .INDENT 0.0
  50647. .IP 1. 3
  50648. Make a custom state module by putting the code into a file at the following
  50649. path: \fB/srv/salt/_states/my_custom_state.py\fP\&.
  50650. .IP 2. 3
  50651. Distribute the custom state module to the minions:
  50652. .INDENT 3.0
  50653. .INDENT 3.5
  50654. .sp
  50655. .nf
  50656. .ft C
  50657. salt \(aq*\(aq saltutil.sync_states
  50658. .ft P
  50659. .fi
  50660. .UNINDENT
  50661. .UNINDENT
  50662. .IP 3. 3
  50663. Write a new state to use the custom state by making a new state file, for
  50664. instance \fB/srv/salt/my_custom_state.sls\fP\&.
  50665. .IP 4. 3
  50666. Add the following SLS configuration to the file created in Step 3:
  50667. .INDENT 3.0
  50668. .INDENT 3.5
  50669. .sp
  50670. .nf
  50671. .ft C
  50672. human_friendly_state_id: # An arbitrary state ID declaration.
  50673. my_custom_state: # The custom state module name.
  50674. \- enforce_custom_thing # The function in the custom state module.
  50675. \- name: a_value # Maps to the \(ga\(ganame\(ga\(ga parameter in the custom function.
  50676. \- foo: Foo # Specify the required \(ga\(gafoo\(ga\(ga parameter.
  50677. \- bar: False # Override the default value for the \(ga\(gabar\(ga\(ga parameter.
  50678. .ft P
  50679. .fi
  50680. .UNINDENT
  50681. .UNINDENT
  50682. .UNINDENT
  50683. .SS Example state module
  50684. .INDENT 0.0
  50685. .INDENT 3.5
  50686. .sp
  50687. .nf
  50688. .ft C
  50689. import salt.exceptions
  50690. def enforce_custom_thing(name, foo, bar=True):
  50691. """
  50692. Enforce the state of a custom thing
  50693. This state module does a custom thing. It calls out to the execution module
  50694. \(ga\(gamy_custom_module\(ga\(ga in order to check the current system and perform any
  50695. needed changes.
  50696. name
  50697. The thing to do something to
  50698. foo
  50699. A required argument
  50700. bar : True
  50701. An argument with a default value
  50702. """
  50703. ret = {
  50704. "name": name,
  50705. "changes": {},
  50706. "result": False,
  50707. "comment": "",
  50708. }
  50709. # Start with basic error\-checking. Do all the passed parameters make sense
  50710. # and agree with each\-other?
  50711. if bar == True and foo.startswith("Foo"):
  50712. raise salt.exceptions.SaltInvocationError(
  50713. \(aqArgument "foo" cannot start with "Foo" if argument "bar" is True.\(aq
  50714. )
  50715. # Check the current state of the system. Does anything need to change?
  50716. current_state = __salt__["my_custom_module.current_state"](name)
  50717. if current_state == foo:
  50718. ret["result"] = True
  50719. ret["comment"] = "System already in the correct state"
  50720. return ret
  50721. # The state of the system does need to be changed. Check if we\(aqre running
  50722. # in \(ga\(gatest=true\(ga\(ga mode.
  50723. if __opts__["test"] == True:
  50724. ret["comment"] = \(aqThe state of "{0}" will be changed.\(aq.format(name)
  50725. ret["changes"] = {
  50726. "old": current_state,
  50727. "new": "Description, diff, whatever of the new state",
  50728. }
  50729. # Return \(ga\(gaNone\(ga\(ga when running with \(ga\(gatest=true\(ga\(ga.
  50730. ret["result"] = None
  50731. return ret
  50732. # Finally, make the actual change and return the result.
  50733. new_state = __salt__["my_custom_module.change_state"](name, foo)
  50734. ret["comment"] = \(aqThe state of "{0}" was changed!\(aq.format(name)
  50735. ret["changes"] = {
  50736. "old": current_state,
  50737. "new": new_state,
  50738. }
  50739. ret["result"] = True
  50740. return ret
  50741. .ft P
  50742. .fi
  50743. .UNINDENT
  50744. .UNINDENT
  50745. .SS State Management
  50746. .sp
  50747. State management, also frequently called Software Configuration Management
  50748. (SCM), is a program that puts and keeps a system into a predetermined state. It
  50749. installs software packages, starts or restarts services or puts configuration
  50750. files in place and watches them for changes.
  50751. .sp
  50752. Having a state management system in place allows one to easily and reliably
  50753. configure and manage a few servers or a few thousand servers. It allows
  50754. configurations to be kept under version control.
  50755. .sp
  50756. Salt States is an extension of the Salt Modules that we discussed in the
  50757. previous remote execution tutorial. Instead
  50758. of calling one\-off executions the state of a system can be easily defined and
  50759. then enforced.
  50760. .SS Understanding the Salt State System Components
  50761. .sp
  50762. The Salt state system is comprised of a number of components. As a user, an
  50763. understanding of the SLS and renderer systems are needed. But as a developer,
  50764. an understanding of Salt states and how to write the states is needed as well.
  50765. .sp
  50766. \fBNOTE:\fP
  50767. .INDENT 0.0
  50768. .INDENT 3.5
  50769. States are compiled and executed only on minions that have been targeted.
  50770. To execute functions directly on masters, see runners\&.
  50771. .UNINDENT
  50772. .UNINDENT
  50773. .SS Salt SLS System
  50774. .sp
  50775. The primary system used by the Salt state system is the SLS system. SLS stands
  50776. for \fBS\fPa\fBL\fPt \fBS\fPtate.
  50777. .sp
  50778. The Salt States are files which contain the information about how to configure
  50779. Salt minions. The states are laid out in a directory tree and can be written in
  50780. many different formats.
  50781. .sp
  50782. The contents of the files and the way they are laid out is intended to be as
  50783. simple as possible while allowing for maximum flexibility. The files are laid
  50784. out in states and contains information about how the minion needs to be
  50785. configured.
  50786. .SS SLS File Layout
  50787. .sp
  50788. SLS files are laid out in the Salt file server.
  50789. .sp
  50790. A simple layout can look like this:
  50791. .INDENT 0.0
  50792. .INDENT 3.5
  50793. .sp
  50794. .nf
  50795. .ft C
  50796. top.sls
  50797. ssh.sls
  50798. sshd_config
  50799. users/init.sls
  50800. users/admin.sls
  50801. salt/master.sls
  50802. web/init.sls
  50803. .ft P
  50804. .fi
  50805. .UNINDENT
  50806. .UNINDENT
  50807. .sp
  50808. The \fBtop.sls\fP file is a key component. The \fBtop.sls\fP files
  50809. is used to determine which SLS files should be applied to which minions.
  50810. .sp
  50811. The rest of the files with the \fB\&.sls\fP extension in the above example are
  50812. state files.
  50813. .sp
  50814. Files without a \fB\&.sls\fP extensions are seen by the Salt master as
  50815. files that can be downloaded to a Salt minion.
  50816. .sp
  50817. States are translated into dot notation. For example, the \fBssh.sls\fP file is
  50818. seen as the ssh state and the \fBusers/admin.sls\fP file is seen as the
  50819. users.admin state.
  50820. .sp
  50821. Files named \fBinit.sls\fP are translated to be the state name of the parent
  50822. directory, so the \fBweb/init.sls\fP file translates to the \fBweb\fP state.
  50823. .sp
  50824. In Salt, everything is a file; there is no "magic translation" of files and file
  50825. types. This means that a state file can be distributed to minions just like a
  50826. plain text or binary file.
  50827. .SS SLS Files
  50828. .sp
  50829. The Salt state files are simple sets of data. Since SLS files are just data
  50830. they can be represented in a number of different ways.
  50831. .sp
  50832. The default format is YAML generated from a Jinja template. This allows for the
  50833. states files to have all the language constructs of Python and the simplicity of YAML.
  50834. .sp
  50835. State files can then be complicated Jinja templates that translate down to YAML, or just
  50836. plain and simple YAML files.
  50837. .sp
  50838. The State files are simply common data structures such as dictionaries and lists, constructed
  50839. using a templating language such as YAML.
  50840. .sp
  50841. Here is an example of a Salt State:
  50842. .INDENT 0.0
  50843. .INDENT 3.5
  50844. .sp
  50845. .nf
  50846. .ft C
  50847. vim:
  50848. pkg.installed: []
  50849. salt:
  50850. pkg.latest:
  50851. \- name: salt
  50852. service.running:
  50853. \- names:
  50854. \- salt\-master
  50855. \- salt\-minion
  50856. \- require:
  50857. \- pkg: salt
  50858. \- watch:
  50859. \- file: /etc/salt/minion
  50860. /etc/salt/minion:
  50861. file.managed:
  50862. \- source: salt://salt/minion
  50863. \- user: root
  50864. \- group: root
  50865. \- mode: 644
  50866. \- require:
  50867. \- pkg: salt
  50868. .ft P
  50869. .fi
  50870. .UNINDENT
  50871. .UNINDENT
  50872. .sp
  50873. This short stanza will ensure that vim is installed, Salt is installed and up
  50874. to date, the salt\-master and salt\-minion daemons are running and the Salt
  50875. minion configuration file is in place. It will also ensure everything is
  50876. deployed in the right order and that the Salt services are restarted when the
  50877. watched file updated.
  50878. .SS The Top File
  50879. .sp
  50880. The top file controls the mapping between minions and the states which should
  50881. be applied to them.
  50882. .sp
  50883. The top file specifies which minions should have which SLS files applied and
  50884. which environments they should draw those SLS files from.
  50885. .sp
  50886. The top file works by specifying environments on the top\-level.
  50887. .sp
  50888. Each environment contains target expressions to match
  50889. minions. Finally, each target expression contains a list of Salt states to
  50890. apply to matching minions:
  50891. .INDENT 0.0
  50892. .INDENT 3.5
  50893. .sp
  50894. .nf
  50895. .ft C
  50896. base:
  50897. \(aq*\(aq:
  50898. \- salt
  50899. \- users
  50900. \- users.admin
  50901. \(aqsaltmaster.*\(aq:
  50902. \- match: pcre
  50903. \- salt.master
  50904. .ft P
  50905. .fi
  50906. .UNINDENT
  50907. .UNINDENT
  50908. .sp
  50909. This above example uses the base environment which is built into the default
  50910. Salt setup.
  50911. .sp
  50912. The base environment has target expressions. The first one matches all minions,
  50913. and the SLS files below it apply to all minions.
  50914. .sp
  50915. The second expression is a regular expression that will match all minions
  50916. with an ID matching \fBsaltmaster.*\fP and specifies that for those minions, the
  50917. salt.master state should be applied.
  50918. .sp
  50919. \fBIMPORTANT:\fP
  50920. .INDENT 0.0
  50921. .INDENT 3.5
  50922. Since version 2014.7.0, the default matcher (when one is not explicitly
  50923. defined as in the second expression in the above example) is the
  50924. compound matcher. Since this matcher parses
  50925. individual words in the expression, minion IDs containing spaces will not
  50926. match properly using this matcher. Therefore, if your target expression is
  50927. designed to match a minion ID containing spaces, it will be necessary to
  50928. specify a different match type (such as \fBglob\fP). For example:
  50929. .INDENT 0.0
  50930. .INDENT 3.5
  50931. .sp
  50932. .nf
  50933. .ft C
  50934. base:
  50935. \(aqtest minion\(aq:
  50936. \- match: glob
  50937. \- foo
  50938. \- bar
  50939. \- baz
  50940. .ft P
  50941. .fi
  50942. .UNINDENT
  50943. .UNINDENT
  50944. .UNINDENT
  50945. .UNINDENT
  50946. .sp
  50947. A full table of match types available in the top file can be found here\&.
  50948. .SS Reloading Modules
  50949. .sp
  50950. Some Salt states require that specific packages be installed in order for the
  50951. module to load. As an example the \fBpip\fP state
  50952. module requires the \fI\%pip\fP package for proper name and version parsing.
  50953. .sp
  50954. In most of the common cases, Salt is clever enough to transparently reload the
  50955. modules. For example, if you install a package, Salt reloads modules because
  50956. some other module or state might require just that package which was installed.
  50957. .sp
  50958. On some edge\-cases salt might need to be told to reload the modules. Consider
  50959. the following state file which we\(aqll call \fBpep8.sls\fP:
  50960. .INDENT 0.0
  50961. .INDENT 3.5
  50962. .sp
  50963. .nf
  50964. .ft C
  50965. python\-pip:
  50966. cmd.run:
  50967. \- name: |
  50968. easy_install \-\-script\-dir=/usr/bin \-U pip
  50969. \- cwd: /
  50970. pep8:
  50971. pip.installed:
  50972. \- require:
  50973. \- cmd: python\-pip
  50974. .ft P
  50975. .fi
  50976. .UNINDENT
  50977. .UNINDENT
  50978. .sp
  50979. The above example installs \fI\%pip\fP using \fBeasy_install\fP from \fI\%setuptools\fP and
  50980. installs \fI\%pep8\fP using \fBpip\fP, which, as told
  50981. earlier, requires \fI\%pip\fP to be installed system\-wide. Let\(aqs execute this state:
  50982. .INDENT 0.0
  50983. .INDENT 3.5
  50984. .sp
  50985. .nf
  50986. .ft C
  50987. salt\-call state.apply pep8
  50988. .ft P
  50989. .fi
  50990. .UNINDENT
  50991. .UNINDENT
  50992. .sp
  50993. The execution output would be something like:
  50994. .INDENT 0.0
  50995. .INDENT 3.5
  50996. .sp
  50997. .nf
  50998. .ft C
  50999. \-\-\-\-\-\-\-\-\-\-
  51000. State: \- pip
  51001. Name: pep8
  51002. Function: installed
  51003. Result: False
  51004. Comment: State pip.installed found in sls pep8 is unavailable
  51005. Changes:
  51006. Summary
  51007. \-\-\-\-\-\-\-\-\-\-\-\-
  51008. Succeeded: 1
  51009. Failed: 1
  51010. \-\-\-\-\-\-\-\-\-\-\-\-
  51011. Total: 2
  51012. .ft P
  51013. .fi
  51014. .UNINDENT
  51015. .UNINDENT
  51016. .sp
  51017. If we executed the state again the output would be:
  51018. .INDENT 0.0
  51019. .INDENT 3.5
  51020. .sp
  51021. .nf
  51022. .ft C
  51023. \-\-\-\-\-\-\-\-\-\-
  51024. State: \- pip
  51025. Name: pep8
  51026. Function: installed
  51027. Result: True
  51028. Comment: Package was successfully installed
  51029. Changes: pep8==1.4.6: Installed
  51030. Summary
  51031. \-\-\-\-\-\-\-\-\-\-\-\-
  51032. Succeeded: 2
  51033. Failed: 0
  51034. \-\-\-\-\-\-\-\-\-\-\-\-
  51035. Total: 2
  51036. .ft P
  51037. .fi
  51038. .UNINDENT
  51039. .UNINDENT
  51040. .sp
  51041. Since we installed \fI\%pip\fP using \fBcmd\fP, Salt has no way
  51042. to know that a system\-wide package was installed.
  51043. .sp
  51044. On the second execution, since the required \fI\%pip\fP package was installed, the
  51045. state executed correctly.
  51046. .sp
  51047. \fBNOTE:\fP
  51048. .INDENT 0.0
  51049. .INDENT 3.5
  51050. Salt does not reload modules on every state run because doing so would greatly
  51051. slow down state execution.
  51052. .UNINDENT
  51053. .UNINDENT
  51054. .sp
  51055. So how do we solve this \fIedge\-case\fP? \fBreload_modules\fP!
  51056. .sp
  51057. \fBreload_modules\fP is a boolean option recognized by salt on \fBall\fP available
  51058. states which forces salt to reload its modules once a given state finishes.
  51059. .sp
  51060. The modified state file would now be:
  51061. .INDENT 0.0
  51062. .INDENT 3.5
  51063. .sp
  51064. .nf
  51065. .ft C
  51066. python\-pip:
  51067. cmd.run:
  51068. \- name: |
  51069. easy_install \-\-script\-dir=/usr/bin \-U pip
  51070. \- cwd: /
  51071. \- reload_modules: true
  51072. pep8:
  51073. pip.installed:
  51074. \- require:
  51075. \- cmd: python\-pip
  51076. .ft P
  51077. .fi
  51078. .UNINDENT
  51079. .UNINDENT
  51080. .sp
  51081. Let\(aqs run it, once:
  51082. .INDENT 0.0
  51083. .INDENT 3.5
  51084. .sp
  51085. .nf
  51086. .ft C
  51087. salt\-call state.apply pep8
  51088. .ft P
  51089. .fi
  51090. .UNINDENT
  51091. .UNINDENT
  51092. .sp
  51093. The output is:
  51094. .INDENT 0.0
  51095. .INDENT 3.5
  51096. .sp
  51097. .nf
  51098. .ft C
  51099. \-\-\-\-\-\-\-\-\-\-
  51100. State: \- pip
  51101. Name: pep8
  51102. Function: installed
  51103. Result: True
  51104. Comment: Package was successfully installed
  51105. Changes: pep8==1.4.6: Installed
  51106. Summary
  51107. \-\-\-\-\-\-\-\-\-\-\-\-
  51108. Succeeded: 2
  51109. Failed: 0
  51110. \-\-\-\-\-\-\-\-\-\-\-\-
  51111. Total: 2
  51112. .ft P
  51113. .fi
  51114. .UNINDENT
  51115. .UNINDENT
  51116. .SH RETURN CODES
  51117. .sp
  51118. When the \fBsalt\fP or \fBsalt\-call\fP CLI commands result in an error, the command
  51119. will exit with a return code of \fB1\fP\&. Error cases consist of the following:
  51120. .INDENT 0.0
  51121. .IP 1. 3
  51122. Errors are encountered while running States, or any state returns a \fBFalse\fP result
  51123. .IP 2. 3
  51124. Any exception is raised
  51125. .IP 3. 3
  51126. In the case of remote\-execution functions, when the return data is a
  51127. \fI\%Python dictionary\fP with a key named either \fBresult\fP
  51128. or \fBsuccess\fP, which has a value of \fBFalse\fP
  51129. .UNINDENT
  51130. .SS Retcode Passthrough
  51131. .sp
  51132. In addition to the cases listed above, if a state or remote\-execution function
  51133. sets a nonzero value in the \fBretcode\fP key of the __context__ dictionary, the command will exit with a return code of
  51134. \fB1\fP\&. For those developing custom states and execution modules, using
  51135. \fB__context__[\(aqretcode\(aq]\fP can be a useful way of signaling that an error has
  51136. occurred:
  51137. .INDENT 0.0
  51138. .INDENT 3.5
  51139. .sp
  51140. .nf
  51141. .ft C
  51142. if something_went_wrong:
  51143. __context__["retcode"] = 42
  51144. .ft P
  51145. .fi
  51146. .UNINDENT
  51147. .UNINDENT
  51148. .sp
  51149. This is actually how states signal that they have failed. Different cases
  51150. result in different codes being set in the __context__
  51151. dictionary:
  51152. .INDENT 0.0
  51153. .IP \(bu 2
  51154. \fB1\fP is set when any error is encountered in the state compiler (missing SLS
  51155. file, etc.)
  51156. .IP \(bu 2
  51157. \fB2\fP is set when any state returns a \fBFalse\fP result
  51158. .IP \(bu 2
  51159. \fB5\fP is set when Pillar data fails to be compiled before running the
  51160. state(s)
  51161. .UNINDENT
  51162. .sp
  51163. When the \fB\-\-retcode\-passthrough\fP flag is used with \fBsalt\-call\fP, then
  51164. \fBsalt\-call\fP will exit with whichever retcode was set in the __context__ dictionary, rather than the default behavior which simply
  51165. exits with \fB1\fP for any error condition.
  51166. .SH UTILITY MODULES - CODE REUSE IN CUSTOM MODULES
  51167. .sp
  51168. New in version 2015.5.0.
  51169. .sp
  51170. Changed in version 2016.11.0: These can now be synced to the Master for use in custom Runners, and in
  51171. custom execution modules called within Pillar SLS files.
  51172. .sp
  51173. When extending Salt by writing custom (state modules), execution modules, etc., sometimes there is a need for a function to
  51174. be available to more than just one kind of custom module. For these cases, Salt
  51175. supports what are called "utility modules". These modules are like normal
  51176. execution modules, but instead of being invoked in Salt code using
  51177. \fB__salt__\fP, the \fB__utils__\fP prefix is used instead.
  51178. .sp
  51179. For example, assuming the following simple utility module, saved to
  51180. \fBsalt://_utils/foo.py\fP
  51181. .INDENT 0.0
  51182. .INDENT 3.5
  51183. .sp
  51184. .nf
  51185. .ft C
  51186. # \-*\- coding: utf\-8 \-*\-
  51187. """
  51188. My utils module
  51189. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51190. This module contains common functions for use in my other custom types.
  51191. """
  51192. def bar():
  51193. return "baz"
  51194. .ft P
  51195. .fi
  51196. .UNINDENT
  51197. .UNINDENT
  51198. .sp
  51199. Once synced to a minion, this function would be available to other custom Salt
  51200. types like so:
  51201. .INDENT 0.0
  51202. .INDENT 3.5
  51203. .sp
  51204. .nf
  51205. .ft C
  51206. # \-*\- coding: utf\-8 \-*\-
  51207. """
  51208. My awesome execution module
  51209. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51210. """
  51211. def observe_the_awesomeness():
  51212. """
  51213. Prints information from my utility module
  51214. CLI Example:
  51215. .. code\-block:: bash
  51216. salt \(aq*\(aq mymodule.observe_the_awesomeness
  51217. """
  51218. return __utils__["foo.bar"]()
  51219. .ft P
  51220. .fi
  51221. .UNINDENT
  51222. .UNINDENT
  51223. .sp
  51224. Utility modules, like any other kind of Salt extension, support using a
  51225. __virtual__ function to conditionally load them,
  51226. or load them under a different namespace. For instance, if the utility module
  51227. above were named \fBsalt://_utils/mymodule.py\fP it could be made to be loaded as
  51228. the \fBfoo\fP utility module with a \fB__virtual__\fP function.
  51229. .INDENT 0.0
  51230. .INDENT 3.5
  51231. .sp
  51232. .nf
  51233. .ft C
  51234. # \-*\- coding: utf\-8 \-*\-
  51235. """
  51236. My utils module
  51237. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51238. This module contains common functions for use in my other custom types.
  51239. """
  51240. def __virtual__():
  51241. """
  51242. Load as a different name
  51243. """
  51244. return "foo"
  51245. def bar():
  51246. return "baz"
  51247. .ft P
  51248. .fi
  51249. .UNINDENT
  51250. .UNINDENT
  51251. .sp
  51252. New in version 2018.3.0: Instantiating objects from classes declared in util modules works with
  51253. Master side modules, such as Runners, Outputters, etc.
  51254. .sp
  51255. Also you could even write your utility modules in object oriented fashion:
  51256. .INDENT 0.0
  51257. .INDENT 3.5
  51258. .sp
  51259. .nf
  51260. .ft C
  51261. # \-*\- coding: utf\-8 \-*\-
  51262. """
  51263. My OOP\-style utils module
  51264. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51265. This module contains common functions for use in my other custom types.
  51266. """
  51267. class Foo(object):
  51268. def __init__(self):
  51269. pass
  51270. def bar(self):
  51271. return "baz"
  51272. .ft P
  51273. .fi
  51274. .UNINDENT
  51275. .UNINDENT
  51276. .sp
  51277. And import them into other custom modules:
  51278. .INDENT 0.0
  51279. .INDENT 3.5
  51280. .sp
  51281. .nf
  51282. .ft C
  51283. # \-*\- coding: utf\-8 \-*\-
  51284. """
  51285. My awesome execution module
  51286. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51287. """
  51288. import mymodule
  51289. def observe_the_awesomeness():
  51290. """
  51291. Prints information from my utility module
  51292. CLI Example:
  51293. .. code\-block:: bash
  51294. salt \(aq*\(aq mymodule.observe_the_awesomeness
  51295. """
  51296. foo = mymodule.Foo()
  51297. return foo.bar()
  51298. .ft P
  51299. .fi
  51300. .UNINDENT
  51301. .UNINDENT
  51302. .sp
  51303. These are, of course, contrived examples, but they should serve to show some of
  51304. the possibilities opened up by writing utility modules. Keep in mind though
  51305. that states still have access to all of the execution modules, so it is not
  51306. necessary to write a utility module to make a function available to both a
  51307. state and an execution module. One good use case for utility modules is one
  51308. where it is necessary to invoke the same function from a custom outputter/returner, as well as an execution module.
  51309. .sp
  51310. Utility modules placed in \fBsalt://_utils/\fP will be synced to the minions when
  51311. a highstate is run, as well as when any of the
  51312. following Salt functions are called:
  51313. .INDENT 0.0
  51314. .IP \(bu 2
  51315. \fBsaltutil.sync_utils\fP
  51316. .IP \(bu 2
  51317. \fBsaltutil.sync_all\fP
  51318. .UNINDENT
  51319. .sp
  51320. As of the 2019.2.0 release, as well as 2017.7.7 and 2018.3.2 in their
  51321. respective release cycles, the \fBsync\fP argument to \fBstate.apply\fP/\fBstate.sls\fP can
  51322. be used to sync custom types when running individual SLS files.
  51323. .sp
  51324. To sync to the Master, use either of the following:
  51325. .INDENT 0.0
  51326. .IP \(bu 2
  51327. \fBsaltutil.sync_utils\fP
  51328. .IP \(bu 2
  51329. \fBsaltutil.sync_all\fP
  51330. .UNINDENT
  51331. .SH EVENTS & REACTOR
  51332. .SS Event System
  51333. .sp
  51334. The Salt Event System is used to fire off events enabling third party
  51335. applications or external processes to react to behavior within Salt.
  51336. The event system uses a publish\-subscribe pattern, otherwise know as pub/sub.
  51337. .SS Event Bus
  51338. .sp
  51339. The event system is comprised of a two primary components, which make up the
  51340. concept of an Event Bus:
  51341. .INDENT 0.0
  51342. .IP \(bu 2
  51343. The event sockets, which publish events
  51344. .IP \(bu 2
  51345. The event library, which can listen to events and send events into the salt system
  51346. .UNINDENT
  51347. .sp
  51348. Events are published onto the event bus and event bus subscribers listen for the
  51349. published events.
  51350. .sp
  51351. The event bus is used for both inter\-process communication as well as network transport
  51352. in Salt. Inter\-process communication is provided through UNIX domain sockets (UDX).
  51353. .sp
  51354. The Salt Master and each Salt Minion has their own event bus.
  51355. .SS Event types
  51356. .SS Salt Master Events
  51357. .sp
  51358. These events are fired on the Salt Master event bus. This list is \fBnot\fP
  51359. comprehensive.
  51360. .SS Authentication events
  51361. .INDENT 0.0
  51362. .TP
  51363. .B salt/auth
  51364. Fired when a minion performs an authentication check with the master.
  51365. .INDENT 7.0
  51366. .TP
  51367. .B Variables
  51368. .INDENT 7.0
  51369. .IP \(bu 2
  51370. \fBid\fP \-\- The minion ID.
  51371. .IP \(bu 2
  51372. \fBact\fP \-\- The current status of the minion key: \fBaccept\fP, \fBpend\fP,
  51373. \fBreject\fP\&.
  51374. .IP \(bu 2
  51375. \fBpub\fP \-\- The minion public key.
  51376. .UNINDENT
  51377. .UNINDENT
  51378. .sp
  51379. \fBNOTE:\fP
  51380. .INDENT 7.0
  51381. .INDENT 3.5
  51382. Minions fire auth events on fairly regular basis for a number
  51383. of reasons. Writing reactors to respond to events through
  51384. the auth cycle can lead to infinite reactor event loops
  51385. (minion tries to auth, reactor responds by doing something
  51386. that generates another auth event, minion sends auth event,
  51387. etc.). Consider reacting to \fBsalt/key\fP or \fBsalt/minion/<MID>/start\fP
  51388. or firing a custom event tag instead.
  51389. .UNINDENT
  51390. .UNINDENT
  51391. .UNINDENT
  51392. .SS Start events
  51393. .INDENT 0.0
  51394. .TP
  51395. .B salt/minion/<MID>/start
  51396. Fired every time a minion connects to the Salt master.
  51397. .INDENT 7.0
  51398. .TP
  51399. .B Variables
  51400. \fBid\fP \-\- The minion ID.
  51401. .UNINDENT
  51402. .UNINDENT
  51403. .SS Key events
  51404. .INDENT 0.0
  51405. .TP
  51406. .B salt/key
  51407. Fired when accepting and rejecting minions keys on the Salt master.
  51408. These happen as a result of actions undertaken by the \fIsalt\-key\fP command.
  51409. .INDENT 7.0
  51410. .TP
  51411. .B Variables
  51412. .INDENT 7.0
  51413. .IP \(bu 2
  51414. \fBid\fP \-\- The minion ID.
  51415. .IP \(bu 2
  51416. \fBact\fP \-\- The new status of the minion key: \fBaccept\fP, \fBdelete\fP,
  51417. .UNINDENT
  51418. .UNINDENT
  51419. .UNINDENT
  51420. .sp
  51421. \fBWARNING:\fP
  51422. .INDENT 0.0
  51423. .INDENT 3.5
  51424. If a master is in \fBauto_accept mode\fP, \fBsalt/key\fP events
  51425. will not be fired when the keys are accepted. In addition, pre\-seeding
  51426. keys (like happens through Salt\-Cloud) will not cause
  51427. firing of these events.
  51428. .UNINDENT
  51429. .UNINDENT
  51430. .SS Job events
  51431. .INDENT 0.0
  51432. .TP
  51433. .B salt/job/<JID>/new
  51434. Fired as a new job is sent out to minions.
  51435. .INDENT 7.0
  51436. .TP
  51437. .B Variables
  51438. .INDENT 7.0
  51439. .IP \(bu 2
  51440. \fBjid\fP \-\- The job ID.
  51441. .IP \(bu 2
  51442. \fBtgt\fP \-\- The target of the job: \fB*\fP, a minion ID,
  51443. \fBG@os_family:RedHat\fP, etc.
  51444. .IP \(bu 2
  51445. \fBtgt_type\fP \-\- The type of targeting used: \fBglob\fP, \fBgrain\fP,
  51446. \fBcompound\fP, etc.
  51447. .IP \(bu 2
  51448. \fBfun\fP \-\- The function to run on minions: \fBtest.version\fP,
  51449. \fBnetwork.interfaces\fP, etc.
  51450. .IP \(bu 2
  51451. \fBarg\fP \-\- A list of arguments to pass to the function that will be
  51452. called.
  51453. .IP \(bu 2
  51454. \fBminions\fP \-\- A list of minion IDs that Salt expects will return data for
  51455. this job.
  51456. .IP \(bu 2
  51457. \fBuser\fP \-\- The name of the user that ran the command as defined in Salt\(aqs
  51458. Publisher ACL or external auth.
  51459. .UNINDENT
  51460. .UNINDENT
  51461. .UNINDENT
  51462. .INDENT 0.0
  51463. .TP
  51464. .B salt/job/<JID>/ret/<MID>
  51465. Fired each time a minion returns data for a job.
  51466. .INDENT 7.0
  51467. .TP
  51468. .B Variables
  51469. .INDENT 7.0
  51470. .IP \(bu 2
  51471. \fBid\fP \-\- The minion ID.
  51472. .IP \(bu 2
  51473. \fBjid\fP \-\- The job ID.
  51474. .IP \(bu 2
  51475. \fBretcode\fP \-\- The return code for the job.
  51476. .IP \(bu 2
  51477. \fBfun\fP \-\- The function the minion ran. E.g., \fBtest.version\fP\&.
  51478. .IP \(bu 2
  51479. \fBreturn\fP \-\- The data returned from the execution module.
  51480. .UNINDENT
  51481. .UNINDENT
  51482. .UNINDENT
  51483. .INDENT 0.0
  51484. .TP
  51485. .B salt/job/<JID>/prog/<MID>/<RUN NUM>
  51486. Fired each time a each function in a state run completes execution. Must be
  51487. enabled using the \fBstate_events\fP option.
  51488. .INDENT 7.0
  51489. .TP
  51490. .B Variables
  51491. .INDENT 7.0
  51492. .IP \(bu 2
  51493. \fBdata\fP \-\- The data returned from the state module function.
  51494. .IP \(bu 2
  51495. \fBid\fP \-\- The minion ID.
  51496. .IP \(bu 2
  51497. \fBjid\fP \-\- The job ID.
  51498. .UNINDENT
  51499. .UNINDENT
  51500. .UNINDENT
  51501. .SS Runner Events
  51502. .INDENT 0.0
  51503. .TP
  51504. .B salt/run/<JID>/new
  51505. Fired as a runner begins execution
  51506. .INDENT 7.0
  51507. .TP
  51508. .B Variables
  51509. .INDENT 7.0
  51510. .IP \(bu 2
  51511. \fBjid\fP \-\- The job ID.
  51512. .IP \(bu 2
  51513. \fBfun\fP \-\- The name of the runner function, with \fBrunner.\fP prepended to it
  51514. (e.g. \fBrunner.jobs.lookup_jid\fP)
  51515. .IP \(bu 2
  51516. \fBfun_args\fP \-\- The arguments passed to the runner function (e.g.
  51517. \fB[\(aq20160829225914848058\(aq]\fP)
  51518. .IP \(bu 2
  51519. \fBuser\fP \-\- The user who executed the runner (e.g. \fBroot\fP)
  51520. .UNINDENT
  51521. .UNINDENT
  51522. .UNINDENT
  51523. .INDENT 0.0
  51524. .TP
  51525. .B salt/run/<JID>/ret
  51526. Fired when a runner function returns
  51527. .INDENT 7.0
  51528. .TP
  51529. .B Variables
  51530. .INDENT 7.0
  51531. .IP \(bu 2
  51532. \fBjid\fP \-\- The job ID.
  51533. .IP \(bu 2
  51534. \fBfun\fP \-\- The name of the runner function, with \fBrunner.\fP prepended to it
  51535. (e.g. \fBrunner.jobs.lookup_jid\fP)
  51536. .IP \(bu 2
  51537. \fBfun_args\fP \-\- The arguments passed to the runner function (e.g.
  51538. \fB[\(aq20160829225914848058\(aq]\fP)
  51539. .IP \(bu 2
  51540. \fBreturn\fP \-\- The data returned by the runner function
  51541. .UNINDENT
  51542. .UNINDENT
  51543. .UNINDENT
  51544. .INDENT 0.0
  51545. .TP
  51546. .B salt/run/<JID>/args
  51547. New in version 2016.11.0.
  51548. .sp
  51549. Fired by the \fBstate.orchestrate\fP
  51550. runner
  51551. .INDENT 7.0
  51552. .TP
  51553. .B Variables
  51554. .INDENT 7.0
  51555. .IP \(bu 2
  51556. \fBname\fP \-\- The ID declaration for the orchestration job (i.e. the line
  51557. above \fBsalt.state\fP, \fBsalt.function\fP, \fBsalt.runner\fP, etc.)
  51558. .IP \(bu 2
  51559. \fBtype\fP \-\- The type of orchestration job being run (e.g. \fBstate\fP)
  51560. .IP \(bu 2
  51561. \fBtgt\fP \-\- The target expression (e.g. \fB*\fP). Included for \fBstate\fP and
  51562. \fBfunction\fP types only.
  51563. .IP \(bu 2
  51564. \fBargs\fP \-\- The args passed to the orchestration job. \fBNote:\fP for
  51565. \fBstate\fP and \fBfunction\fP types, also includes a \fBtgt_type\fP value
  51566. which shows what kind of match (\fBglob\fP, \fBpcre\fP, etc.) was used.
  51567. This value was named \fBexpr_form\fP in the 2016.11 release cycle but has
  51568. been renamed to \fBtgt_type\fP in 2017.7.0 for consistency with other
  51569. events.
  51570. .UNINDENT
  51571. .UNINDENT
  51572. .UNINDENT
  51573. .SS Presence Events
  51574. .INDENT 0.0
  51575. .TP
  51576. .B salt/presence/present
  51577. Events fired on a regular interval about currently connected, newly
  51578. connected, or recently disconnected minions. Requires the
  51579. \fBpresence_events\fP setting to be enabled.
  51580. .INDENT 7.0
  51581. .TP
  51582. .B Variables
  51583. \fBpresent\fP \-\- A list of minions that are currently connected to the Salt
  51584. master.
  51585. .UNINDENT
  51586. .UNINDENT
  51587. .INDENT 0.0
  51588. .TP
  51589. .B salt/presence/change
  51590. Fired when the Presence system detects new minions connect or disconnect.
  51591. .INDENT 7.0
  51592. .TP
  51593. .B Variables
  51594. .INDENT 7.0
  51595. .IP \(bu 2
  51596. \fBnew\fP \-\- A list of minions that have connected since the last presence
  51597. event.
  51598. .IP \(bu 2
  51599. \fBlost\fP \-\- A list of minions that have disconnected since the last
  51600. presence event.
  51601. .UNINDENT
  51602. .UNINDENT
  51603. .UNINDENT
  51604. .SS Cloud Events
  51605. .sp
  51606. Unlike other Master events, \fBsalt\-cloud\fP events are not fired on behalf of a
  51607. Salt Minion. Instead, \fBsalt\-cloud\fP events are fired on behalf of a VM. This
  51608. is because the minion\-to\-be may not yet exist to fire events to or also may have
  51609. been destroyed.
  51610. .sp
  51611. This behavior is reflected by the \fBname\fP variable in the event data for
  51612. \fBsalt\-cloud\fP events as compared to the \fBid\fP variable for Salt
  51613. Minion\-triggered events.
  51614. .INDENT 0.0
  51615. .TP
  51616. .B salt/cloud/<VM NAME>/creating
  51617. Fired when salt\-cloud starts the VM creation process.
  51618. .INDENT 7.0
  51619. .TP
  51620. .B Variables
  51621. .INDENT 7.0
  51622. .IP \(bu 2
  51623. \fBname\fP \-\- the name of the VM being created.
  51624. .IP \(bu 2
  51625. \fBevent\fP \-\- description of the event.
  51626. .IP \(bu 2
  51627. \fBprovider\fP \-\- the cloud provider of the VM being created.
  51628. .IP \(bu 2
  51629. \fBprofile\fP \-\- the cloud profile for the VM being created.
  51630. .UNINDENT
  51631. .UNINDENT
  51632. .UNINDENT
  51633. .INDENT 0.0
  51634. .TP
  51635. .B salt/cloud/<VM NAME>/deploying
  51636. Fired when the VM is available and salt\-cloud begins deploying Salt to the
  51637. new VM.
  51638. .INDENT 7.0
  51639. .TP
  51640. .B Variables
  51641. .INDENT 7.0
  51642. .IP \(bu 2
  51643. \fBname\fP \-\- the name of the VM being created.
  51644. .IP \(bu 2
  51645. \fBevent\fP \-\- description of the event.
  51646. .IP \(bu 2
  51647. \fBkwargs\fP \-\- options available as the deploy script is invoked:
  51648. \fBconf_file\fP, \fBdeploy_command\fP, \fBdisplay_ssh_output\fP, \fBhost\fP,
  51649. \fBkeep_tmp\fP, \fBkey_filename\fP, \fBmake_minion\fP, \fBminion_conf\fP,
  51650. \fBname\fP, \fBparallel\fP, \fBpreseed_minion_keys\fP, \fBscript\fP,
  51651. \fBscript_args\fP, \fBscript_env\fP, \fBsock_dir\fP, \fBstart_action\fP,
  51652. \fBsudo\fP, \fBtmp_dir\fP, \fBtty\fP, \fBusername\fP
  51653. .UNINDENT
  51654. .UNINDENT
  51655. .UNINDENT
  51656. .INDENT 0.0
  51657. .TP
  51658. .B salt/cloud/<VM NAME>/requesting
  51659. Fired when salt\-cloud sends the request to create a new VM.
  51660. .INDENT 7.0
  51661. .TP
  51662. .B Variables
  51663. .INDENT 7.0
  51664. .IP \(bu 2
  51665. \fBevent\fP \-\- description of the event.
  51666. .IP \(bu 2
  51667. \fBlocation\fP \-\- the location of the VM being requested.
  51668. .IP \(bu 2
  51669. \fBkwargs\fP \-\- options available as the VM is being requested:
  51670. \fBAction\fP, \fBImageId\fP, \fBInstanceType\fP, \fBKeyName\fP, \fBMaxCount\fP,
  51671. \fBMinCount\fP, \fBSecurityGroup.1\fP
  51672. .UNINDENT
  51673. .UNINDENT
  51674. .UNINDENT
  51675. .INDENT 0.0
  51676. .TP
  51677. .B salt/cloud/<VM NAME>/querying
  51678. Fired when salt\-cloud queries data for a new instance.
  51679. .INDENT 7.0
  51680. .TP
  51681. .B Variables
  51682. .INDENT 7.0
  51683. .IP \(bu 2
  51684. \fBevent\fP \-\- description of the event.
  51685. .IP \(bu 2
  51686. \fBinstance_id\fP \-\- the ID of the new VM.
  51687. .UNINDENT
  51688. .UNINDENT
  51689. .UNINDENT
  51690. .INDENT 0.0
  51691. .TP
  51692. .B salt/cloud/<VM NAME>/tagging
  51693. Fired when salt\-cloud tags a new instance.
  51694. .INDENT 7.0
  51695. .TP
  51696. .B Variables
  51697. .INDENT 7.0
  51698. .IP \(bu 2
  51699. \fBevent\fP \-\- description of the event.
  51700. .IP \(bu 2
  51701. \fBtags\fP \-\- tags being set on the new instance.
  51702. .UNINDENT
  51703. .UNINDENT
  51704. .UNINDENT
  51705. .INDENT 0.0
  51706. .TP
  51707. .B salt/cloud/<VM NAME>/waiting_for_ssh
  51708. Fired while the salt\-cloud deploy process is waiting for ssh to become
  51709. available on the new instance.
  51710. .INDENT 7.0
  51711. .TP
  51712. .B Variables
  51713. .INDENT 7.0
  51714. .IP \(bu 2
  51715. \fBevent\fP \-\- description of the event.
  51716. .IP \(bu 2
  51717. \fBip_address\fP \-\- IP address of the new instance.
  51718. .UNINDENT
  51719. .UNINDENT
  51720. .UNINDENT
  51721. .INDENT 0.0
  51722. .TP
  51723. .B salt/cloud/<VM NAME>/deploy_script
  51724. Fired once the deploy script is finished.
  51725. .INDENT 7.0
  51726. .TP
  51727. .B Variables
  51728. \fBevent\fP \-\- description of the event.
  51729. .UNINDENT
  51730. .UNINDENT
  51731. .INDENT 0.0
  51732. .TP
  51733. .B salt/cloud/<VM NAME>/created
  51734. Fired once the new instance has been fully created.
  51735. .INDENT 7.0
  51736. .TP
  51737. .B Variables
  51738. .INDENT 7.0
  51739. .IP \(bu 2
  51740. \fBname\fP \-\- the name of the VM being created.
  51741. .IP \(bu 2
  51742. \fBevent\fP \-\- description of the event.
  51743. .IP \(bu 2
  51744. \fBinstance_id\fP \-\- the ID of the new instance.
  51745. .IP \(bu 2
  51746. \fBprovider\fP \-\- the cloud provider of the VM being created.
  51747. .IP \(bu 2
  51748. \fBprofile\fP \-\- the cloud profile for the VM being created.
  51749. .UNINDENT
  51750. .UNINDENT
  51751. .UNINDENT
  51752. .INDENT 0.0
  51753. .TP
  51754. .B salt/cloud/<VM NAME>/destroying
  51755. Fired when salt\-cloud requests the destruction of an instance.
  51756. .INDENT 7.0
  51757. .TP
  51758. .B Variables
  51759. .INDENT 7.0
  51760. .IP \(bu 2
  51761. \fBname\fP \-\- the name of the VM being created.
  51762. .IP \(bu 2
  51763. \fBevent\fP \-\- description of the event.
  51764. .IP \(bu 2
  51765. \fBinstance_id\fP \-\- the ID of the new instance.
  51766. .UNINDENT
  51767. .UNINDENT
  51768. .UNINDENT
  51769. .INDENT 0.0
  51770. .TP
  51771. .B salt/cloud/<VM NAME>/destroyed
  51772. Fired when an instance has been destroyed.
  51773. .INDENT 7.0
  51774. .TP
  51775. .B Variables
  51776. .INDENT 7.0
  51777. .IP \(bu 2
  51778. \fBname\fP \-\- the name of the VM being created.
  51779. .IP \(bu 2
  51780. \fBevent\fP \-\- description of the event.
  51781. .IP \(bu 2
  51782. \fBinstance_id\fP \-\- the ID of the new instance.
  51783. .UNINDENT
  51784. .UNINDENT
  51785. .UNINDENT
  51786. .SS Listening for Events
  51787. .sp
  51788. Salt\(aqs event system is used heavily within Salt and it is also written to
  51789. integrate heavily with existing tooling and scripts. There is a variety of
  51790. ways to consume it.
  51791. .SS From the CLI
  51792. .sp
  51793. The quickest way to watch the event bus is by calling the \fBstate.event
  51794. runner\fP:
  51795. .INDENT 0.0
  51796. .INDENT 3.5
  51797. .sp
  51798. .nf
  51799. .ft C
  51800. salt\-run state.event pretty=True
  51801. .ft P
  51802. .fi
  51803. .UNINDENT
  51804. .UNINDENT
  51805. .sp
  51806. That runner is designed to interact with the event bus from external tools and
  51807. shell scripts. See the documentation for more examples.
  51808. .SS Remotely via the REST API
  51809. .sp
  51810. Salt\(aqs event bus can be consumed
  51811. \fBsalt.netapi.rest_cherrypy.app.Events\fP as an HTTP stream from
  51812. external tools or services.
  51813. .INDENT 0.0
  51814. .INDENT 3.5
  51815. .sp
  51816. .nf
  51817. .ft C
  51818. curl \-SsNk https://salt\-api.example.com:8000/events?token=05A3
  51819. .ft P
  51820. .fi
  51821. .UNINDENT
  51822. .UNINDENT
  51823. .SS From Python
  51824. .sp
  51825. Python scripts can access the event bus only as the same system user that Salt
  51826. is running as.
  51827. .sp
  51828. The event system is accessed via the event library and can only be accessed
  51829. by the same system user that Salt is running as. To listen to events a
  51830. SaltEvent object needs to be created and then the get_event function needs to
  51831. be run. The SaltEvent object needs to know the location that the Salt Unix
  51832. sockets are kept. In the configuration this is the \fBsock_dir\fP option. The
  51833. \fBsock_dir\fP option defaults to "/var/run/salt/master" on most systems.
  51834. .sp
  51835. The following code will check for a single event:
  51836. .INDENT 0.0
  51837. .INDENT 3.5
  51838. .sp
  51839. .nf
  51840. .ft C
  51841. import salt.config
  51842. import salt.utils.event
  51843. opts = salt.config.client_config("/etc/salt/master")
  51844. event = salt.utils.event.get_event(
  51845. "master", sock_dir=opts["sock_dir"], transport=opts["transport"], opts=opts
  51846. )
  51847. data = event.get_event()
  51848. .ft P
  51849. .fi
  51850. .UNINDENT
  51851. .UNINDENT
  51852. .sp
  51853. Events will also use a "tag". Tags allow for events to be filtered by prefix.
  51854. By default all events will be returned. If only authentication events are
  51855. desired, then pass the tag "salt/auth".
  51856. .sp
  51857. The \fBget_event\fP method has a default poll time assigned of 5 seconds. To
  51858. change this time set the "wait" option.
  51859. .sp
  51860. The following example will only listen for auth events and will wait for 10 seconds
  51861. instead of the default 5.
  51862. .INDENT 0.0
  51863. .INDENT 3.5
  51864. .sp
  51865. .nf
  51866. .ft C
  51867. data = event.get_event(wait=10, tag="salt/auth")
  51868. .ft P
  51869. .fi
  51870. .UNINDENT
  51871. .UNINDENT
  51872. .sp
  51873. To retrieve the tag as well as the event data, pass \fBfull=True\fP:
  51874. .INDENT 0.0
  51875. .INDENT 3.5
  51876. .sp
  51877. .nf
  51878. .ft C
  51879. evdata = event.get_event(wait=10, tag="salt/job", full=True)
  51880. tag, data = evdata["tag"], evdata["data"]
  51881. .ft P
  51882. .fi
  51883. .UNINDENT
  51884. .UNINDENT
  51885. .sp
  51886. Instead of looking for a single event, the \fBiter_events\fP method can be used to
  51887. make a generator which will continually yield salt events.
  51888. .sp
  51889. The iter_events method also accepts a tag but not a wait time:
  51890. .INDENT 0.0
  51891. .INDENT 3.5
  51892. .sp
  51893. .nf
  51894. .ft C
  51895. for data in event.iter_events(tag="salt/auth"):
  51896. print(data)
  51897. .ft P
  51898. .fi
  51899. .UNINDENT
  51900. .UNINDENT
  51901. .sp
  51902. And finally event tags can be globbed, such as they can be in the Reactor,
  51903. using the fnmatch library.
  51904. .INDENT 0.0
  51905. .INDENT 3.5
  51906. .sp
  51907. .nf
  51908. .ft C
  51909. import fnmatch
  51910. import salt.config
  51911. import salt.utils.event
  51912. opts = salt.config.client_config("/etc/salt/master")
  51913. sevent = salt.utils.event.get_event(
  51914. "master", sock_dir=opts["sock_dir"], transport=opts["transport"], opts=opts
  51915. )
  51916. while True:
  51917. ret = sevent.get_event(full=True)
  51918. if ret is None:
  51919. continue
  51920. if fnmatch.fnmatch(ret["tag"], "salt/job/*/ret/*"):
  51921. do_something_with_job_return(ret["data"])
  51922. .ft P
  51923. .fi
  51924. .UNINDENT
  51925. .UNINDENT
  51926. .SS Firing Events
  51927. .sp
  51928. It is possible to fire events on either the minion\(aqs local bus or to fire
  51929. events intended for the master.
  51930. .sp
  51931. To fire a local event from the minion on the command line call the
  51932. \fBevent.fire\fP execution function:
  51933. .INDENT 0.0
  51934. .INDENT 3.5
  51935. .sp
  51936. .nf
  51937. .ft C
  51938. salt\-call event.fire \(aq{"data": "message to be sent in the event"}\(aq \(aqtag\(aq
  51939. .ft P
  51940. .fi
  51941. .UNINDENT
  51942. .UNINDENT
  51943. .sp
  51944. To fire an event to be sent up to the master from the minion call the
  51945. \fBevent.send\fP execution function. Remember
  51946. YAML can be used at the CLI in function arguments:
  51947. .INDENT 0.0
  51948. .INDENT 3.5
  51949. .sp
  51950. .nf
  51951. .ft C
  51952. salt\-call event.send \(aqmyco/mytag/success\(aq \(aq{success: True, message: "It works!"}\(aq
  51953. .ft P
  51954. .fi
  51955. .UNINDENT
  51956. .UNINDENT
  51957. .sp
  51958. If a process is listening on the minion, it may be useful for a user on the
  51959. master to fire an event to it. An example of listening local events on
  51960. a minion on a non\-Windows system:
  51961. .INDENT 0.0
  51962. .INDENT 3.5
  51963. .sp
  51964. .nf
  51965. .ft C
  51966. # Job on minion
  51967. import salt.utils.event
  51968. opts = salt.config.minion_config("/etc/salt/minion")
  51969. event = salt.utils.event.MinionEvent(opts)
  51970. for evdata in event.iter_events(match_type="regex", tag="custom/.*"):
  51971. # do your processing here...
  51972. ...
  51973. .ft P
  51974. .fi
  51975. .UNINDENT
  51976. .UNINDENT
  51977. .sp
  51978. And an example of listening local events on a Windows system:
  51979. .INDENT 0.0
  51980. .INDENT 3.5
  51981. .sp
  51982. .nf
  51983. .ft C
  51984. # Job on minion
  51985. import salt.utils.event
  51986. opts = salt.config.minion_config(salt.minion.DEFAULT_MINION_OPTS)
  51987. event = salt.utils.event.MinionEvent(opts)
  51988. for evdata in event.iter_events(match_type="regex", tag="custom/.*"):
  51989. # do your processing here...
  51990. ...
  51991. .ft P
  51992. .fi
  51993. .UNINDENT
  51994. .UNINDENT
  51995. .INDENT 0.0
  51996. .INDENT 3.5
  51997. .sp
  51998. .nf
  51999. .ft C
  52000. salt minionname event.fire \(aq{"data": "message for the minion"}\(aq \(aqcustomtag/african/unladen\(aq
  52001. .ft P
  52002. .fi
  52003. .UNINDENT
  52004. .UNINDENT
  52005. .SS Firing Events from Python
  52006. .SS From Salt execution modules
  52007. .sp
  52008. Events can be very useful when writing execution modules, in order to inform
  52009. various processes on the master when a certain task has taken place. This is
  52010. easily done using the normal cross\-calling syntax:
  52011. .INDENT 0.0
  52012. .INDENT 3.5
  52013. .sp
  52014. .nf
  52015. .ft C
  52016. # /srv/salt/_modules/my_custom_module.py
  52017. def do_something():
  52018. """
  52019. Do something and fire an event to the master when finished
  52020. CLI Example::
  52021. salt \(aq*\(aq my_custom_module:do_something
  52022. """
  52023. # do something!
  52024. __salt__["event.send"](
  52025. "myco/my_custom_module/finished",
  52026. {"finished": True, "message": "The something is finished!",},
  52027. )
  52028. .ft P
  52029. .fi
  52030. .UNINDENT
  52031. .UNINDENT
  52032. .SS From Custom Python Scripts
  52033. .sp
  52034. Firing events from custom Python code is quite simple and mirrors how it is
  52035. done at the CLI:
  52036. .INDENT 0.0
  52037. .INDENT 3.5
  52038. .sp
  52039. .nf
  52040. .ft C
  52041. import salt.client
  52042. caller = salt.client.Caller()
  52043. ret = caller.cmd(\(aqevent.send\(aq,
  52044. \(aqmyco/event/success\(aq
  52045. { \(aqsuccess\(aq: True,
  52046. \(aqmessage\(aq: "It works!" })
  52047. if not ret:
  52048. # the event could not be sent, process the error here
  52049. ...
  52050. .ft P
  52051. .fi
  52052. .UNINDENT
  52053. .UNINDENT
  52054. .SS Beacons
  52055. .sp
  52056. Beacons let you use the Salt event system to monitor non\-Salt processes. The
  52057. beacon system allows the minion to hook into a variety of system processes and
  52058. continually monitor these processes. When monitored activity occurs in a system
  52059. process, an event is sent on the Salt event bus that can be used to trigger a
  52060. reactor\&.
  52061. .sp
  52062. Salt beacons can currently monitor and send Salt events for many system
  52063. activities, including:
  52064. .INDENT 0.0
  52065. .IP \(bu 2
  52066. file system changes
  52067. .IP \(bu 2
  52068. system load
  52069. .IP \(bu 2
  52070. service status
  52071. .IP \(bu 2
  52072. shell activity, such as user login
  52073. .IP \(bu 2
  52074. network and disk usage
  52075. .UNINDENT
  52076. .sp
  52077. See beacon modules for a current list.
  52078. .sp
  52079. \fBNOTE:\fP
  52080. .INDENT 0.0
  52081. .INDENT 3.5
  52082. Salt beacons are an event generation mechanism. Beacons leverage the Salt
  52083. reactor system to make changes when beacon events occur.
  52084. .UNINDENT
  52085. .UNINDENT
  52086. .SS Configuring Beacons
  52087. .sp
  52088. Salt beacons do not require any changes to the system components that are being
  52089. monitored, everything is configured using Salt.
  52090. .sp
  52091. Beacons are typically enabled by placing a \fBbeacons:\fP top level block in
  52092. \fB/etc/salt/minion\fP or any file in \fB/etc/salt/minion.d/\fP such as
  52093. \fB/etc/salt/minion.d/beacons.conf\fP or add it to pillars for that minion:
  52094. .INDENT 0.0
  52095. .INDENT 3.5
  52096. .sp
  52097. .nf
  52098. .ft C
  52099. beacons:
  52100. inotify:
  52101. \- files:
  52102. /etc/important_file: {}
  52103. /opt: {}
  52104. .ft P
  52105. .fi
  52106. .UNINDENT
  52107. .UNINDENT
  52108. .sp
  52109. The beacon system, like many others in Salt, can also be configured via the
  52110. minion pillar, grains, or local config file.
  52111. .sp
  52112. \fBNOTE:\fP
  52113. .INDENT 0.0
  52114. .INDENT 3.5
  52115. The \fIinotify\fP beacon only works on OSes that have \fIinotify\fP kernel support.
  52116. Currently this excludes FreeBSD, macOS, and Windows.
  52117. .UNINDENT
  52118. .UNINDENT
  52119. .sp
  52120. All beacon configuration is done using list based configuration.
  52121. .sp
  52122. New in version Neon.
  52123. .sp
  52124. Multiple copies of a particular Salt beacon can be configured by including the \fBbeacon_module\fP parameter in the beacon configuration.
  52125. .INDENT 0.0
  52126. .INDENT 3.5
  52127. .sp
  52128. .nf
  52129. .ft C
  52130. beacons:
  52131. watch_importand_file:
  52132. \- files:
  52133. /etc/important_file: {}
  52134. \- beacon_module: inotify
  52135. watch_another_file:
  52136. \- files:
  52137. /etc/another_file: {}
  52138. \- beacon_module: inotify
  52139. .ft P
  52140. .fi
  52141. .UNINDENT
  52142. .UNINDENT
  52143. .SS Beacon Monitoring Interval
  52144. .sp
  52145. Beacons monitor on a 1\-second interval by default. To set a different interval,
  52146. provide an \fBinterval\fP argument to a beacon. The following beacons run on 5\-
  52147. and 10\-second intervals:
  52148. .INDENT 0.0
  52149. .INDENT 3.5
  52150. .sp
  52151. .nf
  52152. .ft C
  52153. beacons:
  52154. inotify:
  52155. \- files:
  52156. /etc/important_file: {}
  52157. /opt: {}
  52158. \- interval: 5
  52159. \- disable_during_state_run: True
  52160. load:
  52161. \- averages:
  52162. 1m:
  52163. \- 0.0
  52164. \- 2.0
  52165. 5m:
  52166. \- 0.0
  52167. \- 1.5
  52168. 15m:
  52169. \- 0.1
  52170. \- 1.0
  52171. \- interval: 10
  52172. .ft P
  52173. .fi
  52174. .UNINDENT
  52175. .UNINDENT
  52176. .SS Avoiding Event Loops
  52177. .sp
  52178. It is important to carefully consider the possibility of creating a loop
  52179. between a reactor and a beacon. For example, one might set up a beacon which
  52180. monitors whether a file is read which in turn fires a reactor to run a state
  52181. which in turn reads the file and re\-fires the beacon.
  52182. .sp
  52183. To avoid these types of scenarios, the \fBdisable_during_state_run\fP argument
  52184. may be set. If a state run is in progress, the beacon will not be run on its
  52185. regular interval until the minion detects that the state run has completed, at
  52186. which point the normal beacon interval will resume.
  52187. .INDENT 0.0
  52188. .INDENT 3.5
  52189. .sp
  52190. .nf
  52191. .ft C
  52192. beacons:
  52193. inotify:
  52194. \- files:
  52195. /etc/important_file: {}
  52196. \- disable_during_state_run: True
  52197. .ft P
  52198. .fi
  52199. .UNINDENT
  52200. .UNINDENT
  52201. .sp
  52202. \fBNOTE:\fP
  52203. .INDENT 0.0
  52204. .INDENT 3.5
  52205. For beacon writers: If you need extra stuff to happen, like closing file
  52206. handles for the \fBdisable_during_state_run\fP to actually work, you can add
  52207. a \fIclose()\fP function to the beacon to run those extra things. See the
  52208. \fIinotify\fP beacon.
  52209. .UNINDENT
  52210. .UNINDENT
  52211. .SS Beacon Example
  52212. .sp
  52213. This example demonstrates configuring the \fBinotify\fP
  52214. beacon to monitor a file for changes, and then restores the file to its
  52215. original contents if a change was made.
  52216. .sp
  52217. \fBNOTE:\fP
  52218. .INDENT 0.0
  52219. .INDENT 3.5
  52220. The inotify beacon requires Pyinotify on the minion, install it using
  52221. \fBsalt myminion pkg.install python\-inotify\fP\&.
  52222. .UNINDENT
  52223. .UNINDENT
  52224. .SS Create Watched File
  52225. .sp
  52226. Create the file named \fB/etc/important_file\fP and add some simple content:
  52227. .INDENT 0.0
  52228. .INDENT 3.5
  52229. .sp
  52230. .nf
  52231. .ft C
  52232. important_config: True
  52233. .ft P
  52234. .fi
  52235. .UNINDENT
  52236. .UNINDENT
  52237. .SS Add Beacon Configs to Minion
  52238. .sp
  52239. On the Salt minion, add the following configuration to
  52240. \fB/etc/salt/minion.d/beacons.conf\fP:
  52241. .INDENT 0.0
  52242. .INDENT 3.5
  52243. .sp
  52244. .nf
  52245. .ft C
  52246. beacons:
  52247. inotify:
  52248. \- files:
  52249. /etc/important_file:
  52250. mask:
  52251. \- modify
  52252. \- disable_during_state_run: True
  52253. .ft P
  52254. .fi
  52255. .UNINDENT
  52256. .UNINDENT
  52257. .sp
  52258. Save the configuration file and restart the minion service. The beacon is now
  52259. set up to notify salt upon modifications made to the file.
  52260. .sp
  52261. \fBNOTE:\fP
  52262. .INDENT 0.0
  52263. .INDENT 3.5
  52264. The \fBdisable_during_state_run: True\fP parameter \fI\%prevents\fP the inotify beacon from generating reactor
  52265. events due to salt itself modifying the file.
  52266. .UNINDENT
  52267. .UNINDENT
  52268. .SS View Events on the Master
  52269. .sp
  52270. On your Salt master, start the event runner using the following command:
  52271. .INDENT 0.0
  52272. .INDENT 3.5
  52273. .sp
  52274. .nf
  52275. .ft C
  52276. salt\-run state.event pretty=true
  52277. .ft P
  52278. .fi
  52279. .UNINDENT
  52280. .UNINDENT
  52281. .sp
  52282. This runner displays events as they are received by the master on the Salt
  52283. event bus. To test the beacon you set up in the previous section, make and save
  52284. a modification to \fB/etc/important_file\fP\&. You\(aqll see an event similar to the
  52285. following on the event bus:
  52286. .INDENT 0.0
  52287. .INDENT 3.5
  52288. .sp
  52289. .nf
  52290. .ft C
  52291. {
  52292. "_stamp": "2015\-09\-09T15:59:37.972753",
  52293. "data": {
  52294. "change": "IN_IGNORED",
  52295. "id": "larry",
  52296. "path": "/etc/important_file"
  52297. },
  52298. "tag": "salt/beacon/larry/inotify//etc/important_file"
  52299. }
  52300. .ft P
  52301. .fi
  52302. .UNINDENT
  52303. .UNINDENT
  52304. .sp
  52305. This indicates that the event is being captured and sent correctly. Now you can
  52306. create a reactor to take action when this event occurs.
  52307. .SS Create a Reactor
  52308. .sp
  52309. This reactor reverts the file named \fB/etc/important_file\fP to the contents
  52310. provided by salt each time it is modified.
  52311. .SS Reactor SLS
  52312. .sp
  52313. On your Salt master, create a file named \fB/srv/reactor/revert.sls\fP\&.
  52314. .sp
  52315. \fBNOTE:\fP
  52316. .INDENT 0.0
  52317. .INDENT 3.5
  52318. If the \fB/srv/reactor\fP directory doesn\(aqt exist, create it.
  52319. .INDENT 0.0
  52320. .INDENT 3.5
  52321. .sp
  52322. .nf
  52323. .ft C
  52324. mkdir \-p /srv/reactor
  52325. .ft P
  52326. .fi
  52327. .UNINDENT
  52328. .UNINDENT
  52329. .UNINDENT
  52330. .UNINDENT
  52331. .sp
  52332. Add the following to \fB/srv/reactor/revert.sls\fP:
  52333. .INDENT 0.0
  52334. .INDENT 3.5
  52335. .sp
  52336. .nf
  52337. .ft C
  52338. revert\-file:
  52339. local.state.apply:
  52340. \- tgt: {{ data[\(aqdata\(aq][\(aqid\(aq] }}
  52341. \- arg:
  52342. \- maintain_important_file
  52343. .ft P
  52344. .fi
  52345. .UNINDENT
  52346. .UNINDENT
  52347. .sp
  52348. \fBNOTE:\fP
  52349. .INDENT 0.0
  52350. .INDENT 3.5
  52351. In addition to \fI\%setting\fP
  52352. \fBdisable_during_state_run: True\fP for an inotify beacon whose reaction is
  52353. to modify the watched file, it is important to ensure the state applied is
  52354. also idempotent\&.
  52355. .UNINDENT
  52356. .UNINDENT
  52357. .sp
  52358. \fBNOTE:\fP
  52359. .INDENT 0.0
  52360. .INDENT 3.5
  52361. The expression \fB{{ data[\(aqdata\(aq][\(aqid\(aq] }}\fP is correct as it matches the event structure \fI\%shown above\fP\&.
  52362. .UNINDENT
  52363. .UNINDENT
  52364. .SS State SLS
  52365. .sp
  52366. Create the state sls file referenced by the reactor sls file. This state file
  52367. will be located at \fB/srv/salt/maintain_important_file.sls\fP\&.
  52368. .INDENT 0.0
  52369. .INDENT 3.5
  52370. .sp
  52371. .nf
  52372. .ft C
  52373. important_file:
  52374. file.managed:
  52375. \- name: /etc/important_file
  52376. \- contents: |
  52377. important_config: True
  52378. .ft P
  52379. .fi
  52380. .UNINDENT
  52381. .UNINDENT
  52382. .SS Master Config
  52383. .sp
  52384. Configure the master to map the inotify beacon event to the \fBrevert\fP reaction
  52385. in \fB/etc/salt/master.d/reactor.conf\fP:
  52386. .INDENT 0.0
  52387. .INDENT 3.5
  52388. .sp
  52389. .nf
  52390. .ft C
  52391. reactor:
  52392. \- salt/beacon/*/inotify//etc/important_file:
  52393. \- /srv/reactor/revert.sls
  52394. .ft P
  52395. .fi
  52396. .UNINDENT
  52397. .UNINDENT
  52398. .sp
  52399. \fBNOTE:\fP
  52400. .INDENT 0.0
  52401. .INDENT 3.5
  52402. You can have only one top level \fBreactor\fP section, so if one already
  52403. exists, add this code to the existing section. See here to learn more about reactor SLS syntax.
  52404. .UNINDENT
  52405. .UNINDENT
  52406. .SS Start the Salt Master in Debug Mode
  52407. .sp
  52408. To help with troubleshooting, start the Salt master in debug mode:
  52409. .INDENT 0.0
  52410. .INDENT 3.5
  52411. .sp
  52412. .nf
  52413. .ft C
  52414. service salt\-master stop
  52415. salt\-master \-l debug
  52416. .ft P
  52417. .fi
  52418. .UNINDENT
  52419. .UNINDENT
  52420. .sp
  52421. When debug logging is enabled, event and reactor data are displayed so you can
  52422. discover syntax and other issues.
  52423. .SS Trigger the Reactor
  52424. .sp
  52425. On your minion, make and save another change to \fB/etc/important_file\fP\&. On the
  52426. Salt master, you\(aqll see debug messages that indicate the event was received and
  52427. the \fBstate.apply\fP job was sent. When you inspect the file on the minion,
  52428. you\(aqll see that the file contents have been restored to \fBimportant_config:
  52429. True\fP\&.
  52430. .sp
  52431. All beacons are configured using a similar process of enabling the beacon,
  52432. writing a reactor SLS (and state SLS if needed), and mapping a beacon event to
  52433. the reactor SLS.
  52434. .SS Writing Beacon Plugins
  52435. .sp
  52436. Beacon plugins use the standard Salt loader system, meaning that many of the
  52437. constructs from other plugin systems holds true, such as the \fB__virtual__\fP
  52438. function.
  52439. .sp
  52440. The important function in the Beacon Plugin is the \fBbeacon\fP function. When
  52441. the beacon is configured to run, this function will be executed repeatedly by
  52442. the minion. The \fBbeacon\fP function therefore cannot block and should be as
  52443. lightweight as possible. The \fBbeacon\fP also must return a list of dicts, each
  52444. dict in the list will be translated into an event on the master.
  52445. .sp
  52446. Beacons may also choose to implement a \fBvalidate\fP function which
  52447. takes the beacon configuration as an argument and ensures that it
  52448. is valid prior to continuing. This function is called automatically
  52449. by the Salt loader when a beacon is loaded.
  52450. .sp
  52451. Please see the \fBinotify\fP beacon as an example.
  52452. .SS The \fIbeacon\fP Function
  52453. .sp
  52454. The beacons system will look for a function named \fIbeacon\fP in the module. If
  52455. this function is not present then the beacon will not be fired. This function
  52456. is called on a regular basis and defaults to being called on every iteration of
  52457. the minion, which can be tens to hundreds of times a second. This means that
  52458. the \fIbeacon\fP function cannot block and should not be CPU or IO intensive.
  52459. .sp
  52460. The beacon function will be passed in the configuration for the executed
  52461. beacon. This makes it easy to establish a flexible configuration for each
  52462. called beacon. This is also the preferred way to ingest the beacon\(aqs
  52463. configuration as it allows for the configuration to be dynamically updated
  52464. while the minion is running by configuring the beacon in the minion\(aqs pillar.
  52465. .SS The Beacon Return
  52466. .sp
  52467. The information returned from the beacon is expected to follow a predefined
  52468. structure. The returned value needs to be a list of dictionaries (standard
  52469. python dictionaries are preferred, no ordered dicts are needed).
  52470. .sp
  52471. The dictionaries represent individual events to be fired on the minion and
  52472. master event buses. Each dict is a single event. The dict can contain any
  52473. arbitrary keys but the \(aqtag\(aq key will be extracted and added to the tag of the
  52474. fired event.
  52475. .sp
  52476. The return data structure would look something like this:
  52477. .INDENT 0.0
  52478. .INDENT 3.5
  52479. .sp
  52480. .nf
  52481. .ft C
  52482. [{"changes": ["/foo/bar"], "tag": "foo"}, {"changes": ["/foo/baz"], "tag": "bar"}]
  52483. .ft P
  52484. .fi
  52485. .UNINDENT
  52486. .UNINDENT
  52487. .SS Calling Execution Modules
  52488. .sp
  52489. Execution modules are still the preferred location for all work and system
  52490. interaction to happen in Salt. For this reason the \fI__salt__\fP variable is
  52491. available inside the beacon.
  52492. .sp
  52493. Please be careful when calling functions in \fI__salt__\fP, while this is the
  52494. preferred means of executing complicated routines in Salt not all of the
  52495. execution modules have been written with beacons in mind. Watch out for
  52496. execution modules that may be CPU intense or IO bound. Please feel free to add
  52497. new execution modules and functions to back specific beacons.
  52498. .SS Distributing Custom Beacons
  52499. .sp
  52500. Custom beacons can be distributed to minions via the standard methods, see
  52501. Modular Systems\&.
  52502. .SS Reactor System
  52503. .sp
  52504. Salt\(aqs Reactor system gives Salt the ability to trigger actions in response to
  52505. an event. It is a simple interface to watching Salt\(aqs event bus for event tags
  52506. that match a given pattern and then running one or more commands in response.
  52507. .sp
  52508. This system binds sls files to event tags on the master. These sls files then
  52509. define reactions. This means that the reactor system has two parts. First, the
  52510. reactor option needs to be set in the master configuration file. The reactor
  52511. option allows for event tags to be associated with sls reaction files. Second,
  52512. these reaction files use highdata (like the state system) to define reactions
  52513. to be executed.
  52514. .SS Event System
  52515. .sp
  52516. A basic understanding of the event system is required to understand reactors.
  52517. The event system is a local ZeroMQ PUB interface which fires salt events. This
  52518. event bus is an open system used for sending information notifying Salt and
  52519. other systems about operations.
  52520. .sp
  52521. The event system fires events with a very specific criteria. Every event has a
  52522. \fBtag\fP\&. Event tags allow for fast top\-level filtering of events. In addition
  52523. to the tag, each event has a data structure. This data structure is a
  52524. dictionary, which contains information about the event.
  52525. .SS Mapping Events to Reactor SLS Files
  52526. .sp
  52527. Reactor SLS files and event tags are associated in the master config file.
  52528. By default this is /etc/salt/master, or /etc/salt/master.d/reactor.conf.
  52529. .sp
  52530. New in version 2014.7.0: Added Reactor support for \fBsalt://\fP file paths.
  52531. .sp
  52532. In the master config section \(aqreactor:\(aq is a list of event tags to be matched
  52533. and each event tag has a list of reactor SLS files to be run.
  52534. .INDENT 0.0
  52535. .INDENT 3.5
  52536. .sp
  52537. .nf
  52538. .ft C
  52539. reactor: # Master config section "reactor"
  52540. \- \(aqsalt/minion/*/start\(aq: # Match tag "salt/minion/*/start"
  52541. \- /srv/reactor/start.sls # Things to do when a minion starts
  52542. \- /srv/reactor/monitor.sls # Other things to do
  52543. \- \(aqsalt/cloud/*/destroyed\(aq: # Globs can be used to match tags
  52544. \- /srv/reactor/destroy/*.sls # Globs can be used to match file names
  52545. \- \(aqmyco/custom/event/tag\(aq: # React to custom event tags
  52546. \- salt://reactor/mycustom.sls # Reactor files can come from the salt fileserver
  52547. .ft P
  52548. .fi
  52549. .UNINDENT
  52550. .UNINDENT
  52551. .sp
  52552. \fBNOTE:\fP
  52553. .INDENT 0.0
  52554. .INDENT 3.5
  52555. In the above example, \fBsalt://reactor/mycustom.sls\fP refers to the
  52556. \fBbase\fP environment. To pull this file from a different environment, use
  52557. the querystring syntax (e.g.
  52558. \fBsalt://reactor/mycustom.sls?saltenv=reactor\fP).
  52559. .UNINDENT
  52560. .UNINDENT
  52561. .sp
  52562. Reactor SLS files are similar to State and Pillar SLS files. They are by
  52563. default YAML + Jinja templates and are passed familiar context variables.
  52564. Click \fI\%here\fP for more detailed information on the
  52565. variables available in Jinja templating.
  52566. .sp
  52567. Here is the SLS for a simple reaction:
  52568. .INDENT 0.0
  52569. .INDENT 3.5
  52570. .sp
  52571. .nf
  52572. .ft C
  52573. {% if data[\(aqid\(aq] == \(aqmysql1\(aq %}
  52574. highstate_run:
  52575. local.state.apply:
  52576. \- tgt: mysql1
  52577. {% endif %}
  52578. .ft P
  52579. .fi
  52580. .UNINDENT
  52581. .UNINDENT
  52582. .sp
  52583. This simple reactor file uses Jinja to further refine the reaction to be made.
  52584. If the \fBid\fP in the event data is \fBmysql1\fP (in other words, if the name of
  52585. the minion is \fBmysql1\fP) then the following reaction is defined. The same
  52586. data structure and compiler used for the state system is used for the reactor
  52587. system. The only difference is that the data is matched up to the salt command
  52588. API and the runner system. In this example, a command is published to the
  52589. \fBmysql1\fP minion with a function of \fBstate.apply\fP, which performs a highstate\&. Similarly, a runner can be called:
  52590. .INDENT 0.0
  52591. .INDENT 3.5
  52592. .sp
  52593. .nf
  52594. .ft C
  52595. {% if data[\(aqdata\(aq][\(aqcustom_var\(aq] == \(aqrunit\(aq %}
  52596. call_runit_orch:
  52597. runner.state.orchestrate:
  52598. \- args:
  52599. \- mods: orchestrate.runit
  52600. {% endif %}
  52601. .ft P
  52602. .fi
  52603. .UNINDENT
  52604. .UNINDENT
  52605. .sp
  52606. This example will execute the state.orchestrate runner and intiate an execution
  52607. of the \fBrunit\fP orchestrator located at \fB/srv/salt/orchestrate/runit.sls\fP\&.
  52608. .SS Types of Reactions
  52609. .TS
  52610. center;
  52611. |l|l|.
  52612. _
  52613. T{
  52614. Name
  52615. T} T{
  52616. Description
  52617. T}
  52618. _
  52619. T{
  52620. \fI\%local\fP
  52621. T} T{
  52622. Runs a remote\-execution function on targeted minions
  52623. T}
  52624. _
  52625. T{
  52626. \fI\%runner\fP
  52627. T} T{
  52628. Executes a runner function
  52629. T}
  52630. _
  52631. T{
  52632. \fI\%wheel\fP
  52633. T} T{
  52634. Executes a wheel function on the master
  52635. T}
  52636. _
  52637. T{
  52638. \fI\%caller\fP
  52639. T} T{
  52640. Runs a remote\-execution function on a masterless minion
  52641. T}
  52642. _
  52643. .TE
  52644. .sp
  52645. \fBNOTE:\fP
  52646. .INDENT 0.0
  52647. .INDENT 3.5
  52648. The \fBlocal\fP and \fBcaller\fP reaction types will likely be renamed in a
  52649. future release. These reaction types were named after Salt\(aqs internal
  52650. client interfaces, and are not intuitively named. Both \fBlocal\fP and
  52651. \fBcaller\fP will continue to work in Reactor SLS files, however.
  52652. .UNINDENT
  52653. .UNINDENT
  52654. .SS Where to Put Reactor SLS Files
  52655. .sp
  52656. Reactor SLS files can come both from files local to the master, and from any of
  52657. backends enabled via the \fBfileserver_backend\fP config option. Files
  52658. placed in the Salt fileserver can be referenced using a \fBsalt://\fP URL, just
  52659. like they can in State SLS files.
  52660. .sp
  52661. It is recommended to place reactor and orchestrator SLS files in their own
  52662. uniquely\-named subdirectories such as \fBorch/\fP, \fBorchestrate/\fP, \fBreact/\fP,
  52663. \fBreactor/\fP, etc., to keep them organized.
  52664. .SS Writing Reactor SLS
  52665. .sp
  52666. The different reaction types were developed separately and have historically
  52667. had different methods for passing arguments. For the 2017.7.2 release a new,
  52668. unified configuration schema has been introduced, which applies to all reaction
  52669. types.
  52670. .sp
  52671. The old config schema will continue to be supported, and there is no plan to
  52672. deprecate it at this time.
  52673. .SS Local Reactions
  52674. .sp
  52675. A \fBlocal\fP reaction runs a remote\-execution function
  52676. on the targeted minions.
  52677. .sp
  52678. The old config schema required the positional and keyword arguments to be
  52679. manually separated by the user under \fBarg\fP and \fBkwarg\fP parameters. However,
  52680. this is not very user\-friendly, as it forces the user to distinguish which type
  52681. of argument is which, and make sure that positional arguments are ordered
  52682. properly. Therefore, the new config schema is recommended if the master is
  52683. running a supported release.
  52684. .sp
  52685. The below two examples are equivalent:
  52686. .TS
  52687. center;
  52688. |l|l|.
  52689. _
  52690. T{
  52691. Supported in 2017.7.2 and later
  52692. T} T{
  52693. Supported in all releases
  52694. T}
  52695. _
  52696. T{
  52697. .INDENT 0.0
  52698. .INDENT 3.5
  52699. .sp
  52700. .nf
  52701. .ft C
  52702. install_zsh:
  52703. local.state.single:
  52704. \- tgt: \(aqkernel:Linux\(aq
  52705. \- tgt_type: grain
  52706. \- args:
  52707. \- fun: pkg.installed
  52708. \- name: zsh
  52709. \- fromrepo: updates
  52710. .ft P
  52711. .fi
  52712. .UNINDENT
  52713. .UNINDENT
  52714. T} T{
  52715. .INDENT 0.0
  52716. .INDENT 3.5
  52717. .sp
  52718. .nf
  52719. .ft C
  52720. install_zsh:
  52721. local.state.single:
  52722. \- tgt: \(aqkernel:Linux\(aq
  52723. \- tgt_type: grain
  52724. \- arg:
  52725. \- pkg.installed
  52726. \- zsh
  52727. \- kwarg:
  52728. fromrepo: updates
  52729. .ft P
  52730. .fi
  52731. .UNINDENT
  52732. .UNINDENT
  52733. T}
  52734. _
  52735. .TE
  52736. .sp
  52737. This reaction would be equivalent to running the following Salt command:
  52738. .INDENT 0.0
  52739. .INDENT 3.5
  52740. .sp
  52741. .nf
  52742. .ft C
  52743. salt \-G \(aqkernel:Linux\(aq state.single pkg.installed name=zsh fromrepo=updates
  52744. .ft P
  52745. .fi
  52746. .UNINDENT
  52747. .UNINDENT
  52748. .sp
  52749. \fBNOTE:\fP
  52750. .INDENT 0.0
  52751. .INDENT 3.5
  52752. Any other parameters in the \fBLocalClient().cmd_async()\fP method can be passed at the same
  52753. indentation level as \fBtgt\fP\&.
  52754. .UNINDENT
  52755. .UNINDENT
  52756. .sp
  52757. \fBNOTE:\fP
  52758. .INDENT 0.0
  52759. .INDENT 3.5
  52760. \fBtgt_type\fP is only required when the target expression defined in \fBtgt\fP
  52761. uses a target type other than a minion ID glob.
  52762. .sp
  52763. The \fBtgt_type\fP argument was named \fBexpr_form\fP in releases prior to
  52764. 2017.7.0.
  52765. .UNINDENT
  52766. .UNINDENT
  52767. .SS Runner Reactions
  52768. .sp
  52769. Runner reactions execute runner functions locally on
  52770. the master.
  52771. .sp
  52772. The old config schema called for passing arguments to the reaction directly
  52773. under the name of the runner function. However, this can cause unpredictable
  52774. interactions with the Reactor system\(aqs internal arguments. It is also possible
  52775. to pass positional and keyword arguments under \fBarg\fP and \fBkwarg\fP like above
  52776. in \fI\%local reactions\fP, but as noted above this is not very
  52777. user\-friendly. Therefore, the new config schema is recommended if the master
  52778. is running a supported release.
  52779. .sp
  52780. The below two examples are equivalent:
  52781. .TS
  52782. center;
  52783. |l|l|.
  52784. _
  52785. T{
  52786. Supported in 2017.7.2 and later
  52787. T} T{
  52788. Supported in all releases
  52789. T}
  52790. _
  52791. T{
  52792. .INDENT 0.0
  52793. .INDENT 3.5
  52794. .sp
  52795. .nf
  52796. .ft C
  52797. deploy_app:
  52798. runner.state.orchestrate:
  52799. \- args:
  52800. \- mods: orchestrate.deploy_app
  52801. \- pillar:
  52802. event_tag: {{ tag }}
  52803. event_data: {{ data[\(aqdata\(aq]|json }}
  52804. .ft P
  52805. .fi
  52806. .UNINDENT
  52807. .UNINDENT
  52808. T} T{
  52809. .INDENT 0.0
  52810. .INDENT 3.5
  52811. .sp
  52812. .nf
  52813. .ft C
  52814. deploy_app:
  52815. runner.state.orchestrate:
  52816. \- mods: orchestrate.deploy_app
  52817. \- kwarg:
  52818. pillar:
  52819. event_tag: {{ tag }}
  52820. event_data: {{ data[\(aqdata\(aq]|json }}
  52821. .ft P
  52822. .fi
  52823. .UNINDENT
  52824. .UNINDENT
  52825. T}
  52826. _
  52827. .TE
  52828. .sp
  52829. Assuming that the event tag is \fBfoo\fP, and the data passed to the event is
  52830. \fB{\(aqbar\(aq: \(aqbaz\(aq}\fP, then this reaction is equivalent to running the following
  52831. Salt command:
  52832. .INDENT 0.0
  52833. .INDENT 3.5
  52834. .sp
  52835. .nf
  52836. .ft C
  52837. salt\-run state.orchestrate mods=orchestrate.deploy_app pillar=\(aq{"event_tag": "foo", "event_data": {"bar": "baz"}}\(aq
  52838. .ft P
  52839. .fi
  52840. .UNINDENT
  52841. .UNINDENT
  52842. .SS Wheel Reactions
  52843. .sp
  52844. Wheel reactions run wheel functions locally on the
  52845. master.
  52846. .sp
  52847. Like \fI\%runner reactions\fP, the old config schema called for
  52848. wheel reactions to have arguments passed directly under the name of the
  52849. wheel function (or in \fBarg\fP or \fBkwarg\fP parameters).
  52850. .sp
  52851. The below two examples are equivalent:
  52852. .TS
  52853. center;
  52854. |l|l|.
  52855. _
  52856. T{
  52857. Supported in 2017.7.2 and later
  52858. T} T{
  52859. Supported in all releases
  52860. T}
  52861. _
  52862. T{
  52863. .INDENT 0.0
  52864. .INDENT 3.5
  52865. .sp
  52866. .nf
  52867. .ft C
  52868. remove_key:
  52869. wheel.key.delete:
  52870. \- args:
  52871. \- match: {{ data[\(aqid\(aq] }}
  52872. .ft P
  52873. .fi
  52874. .UNINDENT
  52875. .UNINDENT
  52876. T} T{
  52877. .INDENT 0.0
  52878. .INDENT 3.5
  52879. .sp
  52880. .nf
  52881. .ft C
  52882. remove_key:
  52883. wheel.key.delete:
  52884. \- match: {{ data[\(aqid\(aq] }}
  52885. .ft P
  52886. .fi
  52887. .UNINDENT
  52888. .UNINDENT
  52889. T}
  52890. _
  52891. .TE
  52892. .SS Caller Reactions
  52893. .sp
  52894. Caller reactions run remote\-execution functions on a
  52895. minion daemon\(aqs Reactor system. To run a Reactor on the minion, it is necessary
  52896. to configure the \fBReactor Engine\fP in the minion
  52897. config file, and then setup your watched events in a \fBreactor\fP section in the
  52898. minion config file as well.
  52899. .sp
  52900. \fBNOTE:\fP
  52901. .INDENT 0.0
  52902. .INDENT 3.5
  52903. Masterless Minions use this Reactor
  52904. .sp
  52905. This is the only way to run the Reactor if you use masterless minions.
  52906. .UNINDENT
  52907. .UNINDENT
  52908. .sp
  52909. Both the old and new config schemas involve passing arguments under an \fBargs\fP
  52910. parameter. However, the old config schema only supports positional arguments.
  52911. Therefore, the new config schema is recommended if the masterless minion is
  52912. running a supported release.
  52913. .sp
  52914. The below two examples are equivalent:
  52915. .TS
  52916. center;
  52917. |l|l|.
  52918. _
  52919. T{
  52920. Supported in 2017.7.2 and later
  52921. T} T{
  52922. Supported in all releases
  52923. T}
  52924. _
  52925. T{
  52926. .INDENT 0.0
  52927. .INDENT 3.5
  52928. .sp
  52929. .nf
  52930. .ft C
  52931. touch_file:
  52932. caller.file.touch:
  52933. \- args:
  52934. \- name: /tmp/foo
  52935. .ft P
  52936. .fi
  52937. .UNINDENT
  52938. .UNINDENT
  52939. T} T{
  52940. .INDENT 0.0
  52941. .INDENT 3.5
  52942. .sp
  52943. .nf
  52944. .ft C
  52945. touch_file:
  52946. caller.file.touch:
  52947. \- args:
  52948. \- /tmp/foo
  52949. .ft P
  52950. .fi
  52951. .UNINDENT
  52952. .UNINDENT
  52953. T}
  52954. _
  52955. .TE
  52956. .sp
  52957. This reaction is equivalent to running the following Salt command:
  52958. .INDENT 0.0
  52959. .INDENT 3.5
  52960. .sp
  52961. .nf
  52962. .ft C
  52963. salt\-call file.touch name=/tmp/foo
  52964. .ft P
  52965. .fi
  52966. .UNINDENT
  52967. .UNINDENT
  52968. .SS Best Practices for Writing Reactor SLS Files
  52969. .sp
  52970. The Reactor works as follows:
  52971. .INDENT 0.0
  52972. .IP 1. 3
  52973. The Salt Reactor watches Salt\(aqs event bus for new events.
  52974. .IP 2. 3
  52975. Each event\(aqs tag is matched against the list of event tags configured under
  52976. the \fBreactor\fP section in the Salt Master config.
  52977. .IP 3. 3
  52978. The SLS files for any matches are rendered into a data structure that
  52979. represents one or more function calls.
  52980. .IP 4. 3
  52981. That data structure is given to a pool of worker threads for execution.
  52982. .UNINDENT
  52983. .sp
  52984. Matching and rendering Reactor SLS files is done sequentially in a single
  52985. process. For that reason, reactor SLS files should contain few individual
  52986. reactions (one, if at all possible). Also, keep in mind that reactions are
  52987. fired asynchronously (with the exception of \fI\%caller\fP) and
  52988. do \fInot\fP support requisites\&.
  52989. .sp
  52990. Complex Jinja templating that calls out to slow remote\-execution or runner functions slows down
  52991. the rendering and causes other reactions to pile up behind the current one. The
  52992. worker pool is designed to handle complex and long\-running processes like
  52993. orchestration jobs.
  52994. .sp
  52995. Therefore, when complex tasks are in order, orchestration is a natural fit. Orchestration SLS files can be more
  52996. complex, and use requisites. Performing a complex task using orchestration lets
  52997. the Reactor system fire off the orchestration job and proceed with processing
  52998. other reactions.
  52999. .SS Jinja Context
  53000. .sp
  53001. Reactor SLS files only have access to a minimal Jinja context. \fBgrains\fP and
  53002. \fBpillar\fP are \fInot\fP available. The \fBsalt\fP object is available for calling
  53003. remote\-execution or runner
  53004. functions, but it should be used sparingly and only for quick tasks for the
  53005. reasons mentioned above.
  53006. .sp
  53007. In addition to the \fBsalt\fP object, the following variables are available in
  53008. the Jinja context:
  53009. .INDENT 0.0
  53010. .IP \(bu 2
  53011. \fBtag\fP \- the tag from the event that triggered execution of the Reactor SLS
  53012. file
  53013. .IP \(bu 2
  53014. \fBdata\fP \- the event\(aqs data dictionary
  53015. .UNINDENT
  53016. .sp
  53017. The \fBdata\fP dict will contain an \fBid\fP key containing the minion ID, if the
  53018. event was fired from a minion, and a \fBdata\fP key containing the data passed to
  53019. the event.
  53020. .SS Advanced State System Capabilities
  53021. .sp
  53022. Reactor SLS files, by design, do not support requisites,
  53023. ordering, \fBonlyif\fP/\fBunless\fP conditionals and most other powerful constructs
  53024. from Salt\(aqs State system.
  53025. .sp
  53026. Complex Master\-side operations are best performed by Salt\(aqs Orchestrate system
  53027. so using the Reactor to kick off an Orchestrate run is a very common pairing.
  53028. .sp
  53029. For example:
  53030. .INDENT 0.0
  53031. .INDENT 3.5
  53032. .sp
  53033. .nf
  53034. .ft C
  53035. # /etc/salt/master.d/reactor.conf
  53036. # A custom event containing: {"foo": "Foo!", "bar: "bar*", "baz": "Baz!"}
  53037. reactor:
  53038. \- my/custom/event:
  53039. \- /srv/reactor/some_event.sls
  53040. .ft P
  53041. .fi
  53042. .UNINDENT
  53043. .UNINDENT
  53044. .INDENT 0.0
  53045. .INDENT 3.5
  53046. .sp
  53047. .nf
  53048. .ft C
  53049. # /srv/reactor/some_event.sls
  53050. invoke_orchestrate_file:
  53051. runner.state.orchestrate:
  53052. \- args:
  53053. \- mods: orchestrate.do_complex_thing
  53054. \- pillar:
  53055. event_tag: {{ tag }}
  53056. event_data: {{ data|json }}
  53057. .ft P
  53058. .fi
  53059. .UNINDENT
  53060. .UNINDENT
  53061. .INDENT 0.0
  53062. .INDENT 3.5
  53063. .sp
  53064. .nf
  53065. .ft C
  53066. # /srv/salt/orchestrate/do_complex_thing.sls
  53067. {% set tag = salt.pillar.get(\(aqevent_tag\(aq) %}
  53068. {% set data = salt.pillar.get(\(aqevent_data\(aq) %}
  53069. # Pass data from the event to a custom runner function.
  53070. # The function expects a \(aqfoo\(aq argument.
  53071. do_first_thing:
  53072. salt.runner:
  53073. \- name: custom_runner.custom_function
  53074. \- foo: {{ data.foo }}
  53075. # Wait for the runner to finish then send an execution to minions.
  53076. # Forward some data from the event down to the minion\(aqs state run.
  53077. do_second_thing:
  53078. salt.state:
  53079. \- tgt: {{ data.bar }}
  53080. \- sls:
  53081. \- do_thing_on_minion
  53082. \- kwarg:
  53083. pillar:
  53084. baz: {{ data.baz }}
  53085. \- require:
  53086. \- salt: do_first_thing
  53087. .ft P
  53088. .fi
  53089. .UNINDENT
  53090. .UNINDENT
  53091. .SS Beacons and Reactors
  53092. .sp
  53093. An event initiated by a beacon, when it arrives at the master will be wrapped
  53094. inside a second event, such that the data object containing the beacon
  53095. information will be \fBdata[\(aqdata\(aq]\fP, rather than \fBdata\fP\&.
  53096. .sp
  53097. For example, to access the \fBid\fP field of the beacon event in a reactor file,
  53098. you will need to reference \fB{{ data[\(aqdata\(aq][\(aqid\(aq] }}\fP rather than \fB{{
  53099. data[\(aqid\(aq] }}\fP as for events initiated directly on the event bus.
  53100. .sp
  53101. Similarly, the data dictionary attached to the event would be located in
  53102. \fB{{ data[\(aqdata\(aq][\(aqdata\(aq] }}\fP instead of \fB{{ data[\(aqdata\(aq] }}\fP\&.
  53103. .sp
  53104. See the beacon documentation for examples.
  53105. .SS Manually Firing an Event
  53106. .SS From the Master
  53107. .sp
  53108. Use the \fBevent.send\fP runner:
  53109. .INDENT 0.0
  53110. .INDENT 3.5
  53111. .sp
  53112. .nf
  53113. .ft C
  53114. salt\-run event.send foo \(aq{orchestrate: refresh}\(aq
  53115. .ft P
  53116. .fi
  53117. .UNINDENT
  53118. .UNINDENT
  53119. .SS From the Minion
  53120. .sp
  53121. To fire an event to the master from a minion, call \fBevent.send\fP:
  53122. .INDENT 0.0
  53123. .INDENT 3.5
  53124. .sp
  53125. .nf
  53126. .ft C
  53127. salt\-call event.send foo \(aq{orchestrate: refresh}\(aq
  53128. .ft P
  53129. .fi
  53130. .UNINDENT
  53131. .UNINDENT
  53132. .sp
  53133. To fire an event to the minion\(aqs local event bus, call \fBevent.fire\fP:
  53134. .INDENT 0.0
  53135. .INDENT 3.5
  53136. .sp
  53137. .nf
  53138. .ft C
  53139. salt\-call event.fire \(aq{orchestrate: refresh}\(aq foo
  53140. .ft P
  53141. .fi
  53142. .UNINDENT
  53143. .UNINDENT
  53144. .SS Referencing Data Passed in Events
  53145. .sp
  53146. Assuming any of the above examples, any reactor SLS files triggered by watching
  53147. the event tag \fBfoo\fP will execute with \fB{{ data[\(aqdata\(aq][\(aqorchestrate\(aq] }}\fP
  53148. equal to \fB\(aqrefresh\(aq\fP\&.
  53149. .SS Getting Information About Events
  53150. .sp
  53151. The best way to see exactly what events have been fired and what data is
  53152. available in each event is to use the \fBstate.event runner\fP\&.
  53153. .sp
  53154. \fBSEE ALSO:\fP
  53155. .INDENT 0.0
  53156. .INDENT 3.5
  53157. Common Salt Events
  53158. .UNINDENT
  53159. .UNINDENT
  53160. .sp
  53161. Example usage:
  53162. .INDENT 0.0
  53163. .INDENT 3.5
  53164. .sp
  53165. .nf
  53166. .ft C
  53167. salt\-run state.event pretty=True
  53168. .ft P
  53169. .fi
  53170. .UNINDENT
  53171. .UNINDENT
  53172. .sp
  53173. Example output:
  53174. .INDENT 0.0
  53175. .INDENT 3.5
  53176. .sp
  53177. .nf
  53178. .ft C
  53179. salt/job/20150213001905721678/new {
  53180. "_stamp": "2015\-02\-13T00:19:05.724583",
  53181. "arg": [],
  53182. "fun": "test.ping",
  53183. "jid": "20150213001905721678",
  53184. "minions": [
  53185. "jerry"
  53186. ],
  53187. "tgt": "*",
  53188. "tgt_type": "glob",
  53189. "user": "root"
  53190. }
  53191. salt/job/20150213001910749506/ret/jerry {
  53192. "_stamp": "2015\-02\-13T00:19:11.136730",
  53193. "cmd": "_return",
  53194. "fun": "saltutil.find_job",
  53195. "fun_args": [
  53196. "20150213001905721678"
  53197. ],
  53198. "id": "jerry",
  53199. "jid": "20150213001910749506",
  53200. "retcode": 0,
  53201. "return": {},
  53202. "success": true
  53203. }
  53204. .ft P
  53205. .fi
  53206. .UNINDENT
  53207. .UNINDENT
  53208. .SS Debugging the Reactor
  53209. .sp
  53210. The best window into the Reactor is to run the master in the foreground with
  53211. debug logging enabled. The output will include when the master sees the event,
  53212. what the master does in response to that event, and it will also include the
  53213. rendered SLS file (or any errors generated while rendering the SLS file).
  53214. .INDENT 0.0
  53215. .IP 1. 3
  53216. Stop the master.
  53217. .IP 2. 3
  53218. Start the master manually:
  53219. .INDENT 3.0
  53220. .INDENT 3.5
  53221. .sp
  53222. .nf
  53223. .ft C
  53224. salt\-master \-l debug
  53225. .ft P
  53226. .fi
  53227. .UNINDENT
  53228. .UNINDENT
  53229. .IP 3. 3
  53230. Look for log entries in the form:
  53231. .INDENT 3.0
  53232. .INDENT 3.5
  53233. .sp
  53234. .nf
  53235. .ft C
  53236. [DEBUG ] Gathering reactors for tag foo/bar
  53237. [DEBUG ] Compiling reactions for tag foo/bar
  53238. [DEBUG ] Rendered data from file: /path/to/the/reactor_file.sls:
  53239. <... Rendered output appears here. ...>
  53240. .ft P
  53241. .fi
  53242. .UNINDENT
  53243. .UNINDENT
  53244. .sp
  53245. The rendered output is the result of the Jinja parsing and is a good way to
  53246. view the result of referencing Jinja variables. If the result is empty then
  53247. Jinja produced an empty result and the Reactor will ignore it.
  53248. .UNINDENT
  53249. .SS Passing Event Data to Minions or Orchestration as Pillar
  53250. .sp
  53251. An interesting trick to pass data from the Reactor SLS file to
  53252. \fBstate.apply\fP is to pass it as inline
  53253. Pillar data since both functions take a keyword argument named \fBpillar\fP\&.
  53254. .sp
  53255. The following example uses Salt\(aqs Reactor to listen for the event that is fired
  53256. when the key for a new minion is accepted on the master using \fBsalt\-key\fP\&.
  53257. .sp
  53258. \fB/etc/salt/master.d/reactor.conf\fP:
  53259. .INDENT 0.0
  53260. .INDENT 3.5
  53261. .sp
  53262. .nf
  53263. .ft C
  53264. reactor:
  53265. \- \(aqsalt/key\(aq:
  53266. \- /srv/salt/haproxy/react_new_minion.sls
  53267. .ft P
  53268. .fi
  53269. .UNINDENT
  53270. .UNINDENT
  53271. .sp
  53272. The Reactor then fires a :\fBstate.apply\fP
  53273. command targeted to the HAProxy servers and passes the ID of the new minion
  53274. from the event to the state file via inline Pillar.
  53275. .sp
  53276. \fB/srv/salt/haproxy/react_new_minion.sls\fP:
  53277. .INDENT 0.0
  53278. .INDENT 3.5
  53279. .sp
  53280. .nf
  53281. .ft C
  53282. {% if data[\(aqact\(aq] == \(aqaccept\(aq and data[\(aqid\(aq].startswith(\(aqweb\(aq) %}
  53283. add_new_minion_to_pool:
  53284. local.state.apply:
  53285. \- tgt: \(aqhaproxy*\(aq
  53286. \- args:
  53287. \- mods: haproxy.refresh_pool
  53288. \- pillar:
  53289. new_minion: {{ data[\(aqid\(aq] }}
  53290. {% endif %}
  53291. .ft P
  53292. .fi
  53293. .UNINDENT
  53294. .UNINDENT
  53295. .sp
  53296. The above command is equivalent to the following command at the CLI:
  53297. .INDENT 0.0
  53298. .INDENT 3.5
  53299. .sp
  53300. .nf
  53301. .ft C
  53302. salt \(aqhaproxy*\(aq state.apply haproxy.refresh_pool pillar=\(aq{new_minion: minionid}\(aq
  53303. .ft P
  53304. .fi
  53305. .UNINDENT
  53306. .UNINDENT
  53307. .sp
  53308. This works with Orchestrate files as well:
  53309. .INDENT 0.0
  53310. .INDENT 3.5
  53311. .sp
  53312. .nf
  53313. .ft C
  53314. call_some_orchestrate_file:
  53315. runner.state.orchestrate:
  53316. \- args:
  53317. \- mods: orchestrate.some_orchestrate_file
  53318. \- pillar:
  53319. stuff: things
  53320. .ft P
  53321. .fi
  53322. .UNINDENT
  53323. .UNINDENT
  53324. .sp
  53325. Which is equivalent to the following command at the CLI:
  53326. .INDENT 0.0
  53327. .INDENT 3.5
  53328. .sp
  53329. .nf
  53330. .ft C
  53331. salt\-run state.orchestrate orchestrate.some_orchestrate_file pillar=\(aq{stuff: things}\(aq
  53332. .ft P
  53333. .fi
  53334. .UNINDENT
  53335. .UNINDENT
  53336. .sp
  53337. Finally, that data is available in the state file using the normal Pillar
  53338. lookup syntax. The following example is grabbing web server names and IP
  53339. addresses from Salt Mine\&. If this state is invoked from the
  53340. Reactor then the custom Pillar value from above will be available and the new
  53341. minion will be added to the pool but with the \fBdisabled\fP flag so that HAProxy
  53342. won\(aqt yet direct traffic to it.
  53343. .sp
  53344. \fB/srv/salt/haproxy/refresh_pool.sls\fP:
  53345. .INDENT 0.0
  53346. .INDENT 3.5
  53347. .sp
  53348. .nf
  53349. .ft C
  53350. {% set new_minion = salt[\(aqpillar.get\(aq](\(aqnew_minion\(aq) %}
  53351. listen web *:80
  53352. balance source
  53353. {% for server,ip in salt[\(aqmine.get\(aq](\(aqweb*\(aq, \(aqnetwork.interfaces\(aq, [\(aqeth0\(aq]).items() %}
  53354. {% if server == new_minion %}
  53355. server {{ server }} {{ ip }}:80 disabled
  53356. {% else %}
  53357. server {{ server }} {{ ip }}:80 check
  53358. {% endif %}
  53359. {% endfor %}
  53360. .ft P
  53361. .fi
  53362. .UNINDENT
  53363. .UNINDENT
  53364. .SS A Complete Example
  53365. .sp
  53366. In this example, we\(aqre going to assume that we have a group of servers that
  53367. will come online at random and need to have keys automatically accepted. We\(aqll
  53368. also add that we don\(aqt want all servers being automatically accepted. For this
  53369. example, we\(aqll assume that all hosts that have an id that starts with \(aqink\(aq
  53370. will be automatically accepted and have \fBstate.apply\fP executed. On top of this, we\(aqre going to add that
  53371. a host coming up that was replaced (meaning a new key) will also be accepted.
  53372. .sp
  53373. Our master configuration will be rather simple. All minions that attempte to
  53374. authenticate will match the \fBtag\fP of \fBsalt/auth\fP\&. When it comes
  53375. to the minion key being accepted, we get a more refined \fBtag\fP that
  53376. includes the minion id, which we can use for matching.
  53377. .sp
  53378. \fB/etc/salt/master.d/reactor.conf\fP:
  53379. .INDENT 0.0
  53380. .INDENT 3.5
  53381. .sp
  53382. .nf
  53383. .ft C
  53384. reactor:
  53385. \- \(aqsalt/auth\(aq:
  53386. \- /srv/reactor/auth\-pending.sls
  53387. \- \(aqsalt/minion/ink*/start\(aq:
  53388. \- /srv/reactor/auth\-complete.sls
  53389. .ft P
  53390. .fi
  53391. .UNINDENT
  53392. .UNINDENT
  53393. .sp
  53394. In this SLS file, we say that if the key was rejected we will delete the key on
  53395. the master and then also tell the master to ssh in to the minion and tell it to
  53396. restart the minion, since a minion process will die if the key is rejected.
  53397. .sp
  53398. We also say that if the key is pending and the id starts with ink we will
  53399. accept the key. A minion that is waiting on a pending key will retry
  53400. authentication every ten seconds by default.
  53401. .sp
  53402. \fB/srv/reactor/auth\-pending.sls\fP:
  53403. .INDENT 0.0
  53404. .INDENT 3.5
  53405. .sp
  53406. .nf
  53407. .ft C
  53408. {# Ink server failed to authenticate \-\- remove accepted key #}
  53409. {% if not data[\(aqresult\(aq] and data[\(aqid\(aq].startswith(\(aqink\(aq) %}
  53410. minion_remove:
  53411. wheel.key.delete:
  53412. \- args:
  53413. \- match: {{ data[\(aqid\(aq] }}
  53414. minion_rejoin:
  53415. local.cmd.run:
  53416. \- tgt: salt\-master.domain.tld
  53417. \- args:
  53418. \- cmd: ssh \-o UserKnownHostsFile=/dev/null \-o StrictHostKeyChecking=no "{{ data[\(aqid\(aq] }}" \(aqsleep 10 && /etc/init.d/salt\-minion restart\(aq
  53419. {% endif %}
  53420. {# Ink server is sending new key \-\- accept this key #}
  53421. {% if \(aqact\(aq in data and data[\(aqact\(aq] == \(aqpend\(aq and data[\(aqid\(aq].startswith(\(aqink\(aq) %}
  53422. minion_add:
  53423. wheel.key.accept:
  53424. \- args:
  53425. \- match: {{ data[\(aqid\(aq] }}
  53426. {% endif %}
  53427. .ft P
  53428. .fi
  53429. .UNINDENT
  53430. .UNINDENT
  53431. .sp
  53432. No if statements are needed here because we already limited this action to just
  53433. Ink servers in the master configuration.
  53434. .sp
  53435. \fB/srv/reactor/auth\-complete.sls\fP:
  53436. .INDENT 0.0
  53437. .INDENT 3.5
  53438. .sp
  53439. .nf
  53440. .ft C
  53441. {# When an Ink server connects, run state.apply. #}
  53442. highstate_run:
  53443. local.state.apply:
  53444. \- tgt: {{ data[\(aqid\(aq] }}
  53445. \- ret: smtp
  53446. .ft P
  53447. .fi
  53448. .UNINDENT
  53449. .UNINDENT
  53450. .sp
  53451. The above will also return the highstate result data
  53452. using the \fIsmtp_return\fP returner (use virtualname like when using from the
  53453. command line with \fI\-\-return\fP). The returner needs to be configured on the
  53454. minion for this to work. See \fBsalt.returners.smtp_return\fP documentation for that.
  53455. .SS Syncing Custom Types on Minion Start
  53456. .sp
  53457. 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
  53458. initial highstate, a minion will not yet have these
  53459. custom types synced when the top file is first compiled. This can be worked
  53460. around with a simple reactor which watches for \fBsalt/minion/*/start\fP events,
  53461. which each minion fires when it first starts up and connects to the master.
  53462. .sp
  53463. On the master, create \fB/srv/reactor/sync_grains.sls\fP with the following
  53464. contents:
  53465. .INDENT 0.0
  53466. .INDENT 3.5
  53467. .sp
  53468. .nf
  53469. .ft C
  53470. sync_grains:
  53471. local.saltutil.sync_grains:
  53472. \- tgt: {{ data[\(aqid\(aq] }}
  53473. .ft P
  53474. .fi
  53475. .UNINDENT
  53476. .UNINDENT
  53477. .sp
  53478. And in the master config file, add the following reactor configuration:
  53479. .INDENT 0.0
  53480. .INDENT 3.5
  53481. .sp
  53482. .nf
  53483. .ft C
  53484. reactor:
  53485. \- \(aqsalt/minion/*/start\(aq:
  53486. \- /srv/reactor/sync_grains.sls
  53487. .ft P
  53488. .fi
  53489. .UNINDENT
  53490. .UNINDENT
  53491. .sp
  53492. This will cause the master to instruct each minion to sync its custom grains
  53493. when it starts, making these grains available when the initial highstate is executed.
  53494. .sp
  53495. Other types can be synced by replacing \fBlocal.saltutil.sync_grains\fP with
  53496. \fBlocal.saltutil.sync_modules\fP, \fBlocal.saltutil.sync_all\fP, or whatever else
  53497. suits the intended use case.
  53498. .sp
  53499. Also, if it is not desirable that \fIevery\fP minion syncs on startup, the \fB*\fP
  53500. can be replaced with a different glob to narrow down the set of minions which
  53501. will match that reactor (e.g. \fBsalt/minion/appsrv*/start\fP, which would only
  53502. match minion IDs beginning with \fBappsrv\fP).
  53503. .SS Reactor Tuning for Large\-Scale Installations
  53504. .sp
  53505. The reactor uses a thread pool implementation that\(aqs contained inside
  53506. salt.utils.process.ThreadPool and It uses Python\(aqs stdlib Queue to enqueue
  53507. jobs which are picked up by standard Python threads. If the queue is full,
  53508. False is simply returned by the firing method on the thread pool.
  53509. .sp
  53510. As such, there are a few things to say about the selection of proper values
  53511. for the reactor.
  53512. .sp
  53513. For situations where it is expected that many long\-running jobs might be
  53514. executed by the reactor, \fIreactor_worker_hwm\fP should be increased or even
  53515. set to 0 to bound it only by available memory. If set to zero, a close eye
  53516. should be kept on memory consumption.
  53517. .sp
  53518. If many long\-running jobs are expected and execution concurrency and
  53519. performance are a concern, you may also increase the value for
  53520. \fIreactor_worker_threads\fP\&. This will control the number of concurrent threads
  53521. which are pulling jobs from the queue and executing them. Obviously, this
  53522. bears a relationship to the speed at which the queue itself will fill up.
  53523. The price to pay for this value is that each thread will contain a copy of
  53524. Salt code needed to perform the requested action.
  53525. .SH ORCHESTRATION
  53526. .SS Orchestrate Runner
  53527. .sp
  53528. Executing states or highstate on a minion is perfect when you want to ensure that
  53529. minion configured and running the way you want. Sometimes however you want to
  53530. configure a set of minions all at once.
  53531. .sp
  53532. For example, if you want to set up a load balancer in front of a cluster of web
  53533. servers you can ensure the load balancer is set up first, and then the same
  53534. matching configuration is applied consistently across the whole cluster.
  53535. .sp
  53536. Orchestration is the way to do this.
  53537. .SS The Orchestrate Runner
  53538. .sp
  53539. New in version 0.17.0.
  53540. .sp
  53541. \fBNOTE:\fP
  53542. .INDENT 0.0
  53543. .INDENT 3.5
  53544. Orchestrate Deprecates OverState
  53545. .sp
  53546. The Orchestrate Runner (originally called the state.sls runner) offers all
  53547. the functionality of the OverState, but with some advantages:
  53548. .INDENT 0.0
  53549. .IP \(bu 2
  53550. All requisites available in states can be
  53551. used.
  53552. .IP \(bu 2
  53553. The states/functions will also work on salt\-ssh minions.
  53554. .UNINDENT
  53555. .sp
  53556. The Orchestrate Runner replaced the OverState system in Salt 2015.8.0.
  53557. .UNINDENT
  53558. .UNINDENT
  53559. .sp
  53560. The orchestrate runner generalizes the Salt state system to a Salt master
  53561. context. Whereas the \fBstate.sls\fP, \fBstate.highstate\fP, et al. functions are
  53562. concurrently and independently executed on each Salt minion, the
  53563. \fBstate.orchestrate\fP runner is executed on the master, giving it a
  53564. master\-level view and control over requisites, such as state ordering and
  53565. conditionals. This allows for inter minion requisites, like ordering the
  53566. application of states on different minions that must not happen simultaneously,
  53567. or for halting the state run on all minions if a minion fails one of its
  53568. states.
  53569. .sp
  53570. The \fBstate.sls\fP, \fBstate.highstate\fP, et al. functions allow you to statefully
  53571. manage each minion and the \fBstate.orchestrate\fP runner allows you to
  53572. statefully manage your entire infrastructure.
  53573. .SS Writing SLS Files
  53574. .sp
  53575. Orchestrate SLS files are stored in the same location as State SLS files. This
  53576. means that both \fBfile_roots\fP and \fBgitfs_remotes\fP impact what SLS files are
  53577. available to the reactor and orchestrator.
  53578. .sp
  53579. It is recommended to keep reactor and orchestrator SLS files in their own
  53580. uniquely named subdirectories such as \fB_orch/\fP, \fBorch/\fP, \fB_orchestrate/\fP,
  53581. \fBreact/\fP, \fB_reactor/\fP, etc. This will avoid duplicate naming and will help
  53582. prevent confusion.
  53583. .SS Executing the Orchestrate Runner
  53584. .sp
  53585. The Orchestrate Runner command format is the same as for the \fBstate.sls\fP
  53586. function, except that since it is a runner, it is executed with \fBsalt\-run\fP
  53587. rather than \fBsalt\fP\&. Assuming you have a state.sls file called
  53588. \fB/srv/salt/orch/webserver.sls\fP the following command, run on the master,
  53589. will apply the states defined in that file.
  53590. .INDENT 0.0
  53591. .INDENT 3.5
  53592. .sp
  53593. .nf
  53594. .ft C
  53595. salt\-run state.orchestrate orch.webserver
  53596. .ft P
  53597. .fi
  53598. .UNINDENT
  53599. .UNINDENT
  53600. .sp
  53601. \fBNOTE:\fP
  53602. .INDENT 0.0
  53603. .INDENT 3.5
  53604. \fBstate.orch\fP is a synonym for \fBstate.orchestrate\fP
  53605. .UNINDENT
  53606. .UNINDENT
  53607. .sp
  53608. Changed in version 2014.1.1: The runner function was renamed to \fBstate.orchestrate\fP to avoid confusion
  53609. with the \fBstate.sls\fP execution function. In
  53610. versions 0.17.0 through 2014.1.0, \fBstate.sls\fP must be used.
  53611. .SS Masterless Orchestration
  53612. .sp
  53613. New in version 2016.11.0.
  53614. .sp
  53615. To support salt orchestration on masterless minions, the Orchestrate Runner is
  53616. available as an execution module. The syntax for masterless orchestration is
  53617. exactly the same, but it uses the \fBsalt\-call\fP command and the minion
  53618. configuration must contain the \fBfile_mode: local\fP option. Alternatively,
  53619. use \fBsalt\-call \-\-local\fP on the command line.
  53620. .INDENT 0.0
  53621. .INDENT 3.5
  53622. .sp
  53623. .nf
  53624. .ft C
  53625. salt\-call \-\-local state.orchestrate orch.webserver
  53626. .ft P
  53627. .fi
  53628. .UNINDENT
  53629. .UNINDENT
  53630. .sp
  53631. \fBNOTE:\fP
  53632. .INDENT 0.0
  53633. .INDENT 3.5
  53634. Masterless orchestration supports only the \fBsalt.state\fP command in an
  53635. sls file; it does not (currently) support the \fBsalt.function\fP command.
  53636. .UNINDENT
  53637. .UNINDENT
  53638. .SS Examples
  53639. .SS Function
  53640. .sp
  53641. To execute a function, use \fBsalt.function\fP:
  53642. .INDENT 0.0
  53643. .INDENT 3.5
  53644. .sp
  53645. .nf
  53646. .ft C
  53647. # /srv/salt/orch/cleanfoo.sls
  53648. cmd.run:
  53649. salt.function:
  53650. \- tgt: \(aq*\(aq
  53651. \- arg:
  53652. \- rm \-rf /tmp/foo
  53653. .ft P
  53654. .fi
  53655. .UNINDENT
  53656. .UNINDENT
  53657. .INDENT 0.0
  53658. .INDENT 3.5
  53659. .sp
  53660. .nf
  53661. .ft C
  53662. salt\-run state.orchestrate orch.cleanfoo
  53663. .ft P
  53664. .fi
  53665. .UNINDENT
  53666. .UNINDENT
  53667. .sp
  53668. If you omit the "name" argument, the ID of the state will be the default name,
  53669. or in the case of \fBsalt.function\fP, the execution module function to run. You
  53670. can specify the "name" argument to avoid conflicting IDs:
  53671. .INDENT 0.0
  53672. .INDENT 3.5
  53673. .sp
  53674. .nf
  53675. .ft C
  53676. copy_some_file:
  53677. salt.function:
  53678. \- name: file.copy
  53679. \- tgt: \(aq*\(aq
  53680. \- arg:
  53681. \- /path/to/file
  53682. \- /tmp/copy_of_file
  53683. \- kwarg:
  53684. remove_existing: true
  53685. .ft P
  53686. .fi
  53687. .UNINDENT
  53688. .UNINDENT
  53689. .SS Fail Functions
  53690. .sp
  53691. When running a remote execution function in orchestration, certain return
  53692. values for those functions may indicate failure, while the function itself
  53693. doesn\(aqt set a return code. For those circumstances, using a "fail function"
  53694. allows for a more flexible means of assessing success or failure.
  53695. .sp
  53696. A fail function can be written as part of a custom execution module\&. The function should accept one argument, and
  53697. return a boolean result. For example:
  53698. .INDENT 0.0
  53699. .INDENT 3.5
  53700. .sp
  53701. .nf
  53702. .ft C
  53703. def check_func_result(retval):
  53704. if some_condition:
  53705. return True
  53706. else:
  53707. return False
  53708. .ft P
  53709. .fi
  53710. .UNINDENT
  53711. .UNINDENT
  53712. .sp
  53713. The function can then be referenced in orchestration SLS like so:
  53714. .INDENT 0.0
  53715. .INDENT 3.5
  53716. .sp
  53717. .nf
  53718. .ft C
  53719. do_stuff:
  53720. salt.function:
  53721. \- name: modname.funcname
  53722. \- tgt: \(aq*\(aq
  53723. \- fail_function: mymod.check_func_result
  53724. .ft P
  53725. .fi
  53726. .UNINDENT
  53727. .UNINDENT
  53728. .sp
  53729. \fBIMPORTANT:\fP
  53730. .INDENT 0.0
  53731. .INDENT 3.5
  53732. Fail functions run \fIon the master\fP, so they must be synced using \fBsalt\-run
  53733. saltutil.sync_modules\fP\&.
  53734. .UNINDENT
  53735. .UNINDENT
  53736. .SS State
  53737. .sp
  53738. To execute a state, use \fBsalt.state\fP\&.
  53739. .INDENT 0.0
  53740. .INDENT 3.5
  53741. .sp
  53742. .nf
  53743. .ft C
  53744. # /srv/salt/orch/webserver.sls
  53745. install_nginx:
  53746. salt.state:
  53747. \- tgt: \(aqweb*\(aq
  53748. \- sls:
  53749. \- nginx
  53750. .ft P
  53751. .fi
  53752. .UNINDENT
  53753. .UNINDENT
  53754. .INDENT 0.0
  53755. .INDENT 3.5
  53756. .sp
  53757. .nf
  53758. .ft C
  53759. salt\-run state.orchestrate orch.webserver
  53760. .ft P
  53761. .fi
  53762. .UNINDENT
  53763. .UNINDENT
  53764. .SS Highstate
  53765. .sp
  53766. To run a highstate, set \fBhighstate: True\fP in your state config:
  53767. .INDENT 0.0
  53768. .INDENT 3.5
  53769. .sp
  53770. .nf
  53771. .ft C
  53772. # /srv/salt/orch/web_setup.sls
  53773. webserver_setup:
  53774. salt.state:
  53775. \- tgt: \(aqweb*\(aq
  53776. \- highstate: True
  53777. .ft P
  53778. .fi
  53779. .UNINDENT
  53780. .UNINDENT
  53781. .INDENT 0.0
  53782. .INDENT 3.5
  53783. .sp
  53784. .nf
  53785. .ft C
  53786. salt\-run state.orchestrate orch.web_setup
  53787. .ft P
  53788. .fi
  53789. .UNINDENT
  53790. .UNINDENT
  53791. .SS Runner
  53792. .sp
  53793. To execute another runner, use \fBsalt.runner\fP\&.
  53794. For example to use the \fBcloud.profile\fP runner in your orchestration state
  53795. additional options to replace values in the configured profile, use this:
  53796. .INDENT 0.0
  53797. .INDENT 3.5
  53798. .sp
  53799. .nf
  53800. .ft C
  53801. # /srv/salt/orch/deploy.sls
  53802. create_instance:
  53803. salt.runner:
  53804. \- name: cloud.profile
  53805. \- prof: cloud\-centos
  53806. \- provider: cloud
  53807. \- instances:
  53808. \- server1
  53809. \- opts:
  53810. minion:
  53811. master: master1
  53812. .ft P
  53813. .fi
  53814. .UNINDENT
  53815. .UNINDENT
  53816. .sp
  53817. To get a more dynamic state, use jinja variables together with
  53818. \fBinline pillar data\fP\&.
  53819. Using the same example but passing on pillar data, the state would be like
  53820. this.
  53821. .INDENT 0.0
  53822. .INDENT 3.5
  53823. .sp
  53824. .nf
  53825. .ft C
  53826. # /srv/salt/orch/deploy.sls
  53827. {% set servers = salt[\(aqpillar.get\(aq](\(aqservers\(aq, \(aqtest\(aq) %}
  53828. {% set master = salt[\(aqpillar.get\(aq](\(aqmaster\(aq, \(aqsalt\(aq) %}
  53829. create_instance:
  53830. salt.runner:
  53831. \- name: cloud.profile
  53832. \- prof: cloud\-centos
  53833. \- provider: cloud
  53834. \- instances:
  53835. \- {{ servers }}
  53836. \- opts:
  53837. minion:
  53838. master: {{ master }}
  53839. .ft P
  53840. .fi
  53841. .UNINDENT
  53842. .UNINDENT
  53843. .sp
  53844. To execute with pillar data.
  53845. .INDENT 0.0
  53846. .INDENT 3.5
  53847. .sp
  53848. .nf
  53849. .ft C
  53850. salt\-run state.orch orch.deploy pillar=\(aq{"servers": "newsystem1",
  53851. "master": "mymaster"}\(aq
  53852. .ft P
  53853. .fi
  53854. .UNINDENT
  53855. .UNINDENT
  53856. .SS Return Codes in Runner/Wheel Jobs
  53857. .sp
  53858. New in version 2018.3.0.
  53859. .sp
  53860. State (\fBsalt.state\fP) jobs are able to report failure via the state
  53861. return dictionary\&. Remote execution (\fBsalt.function\fP)
  53862. jobs are able to report failure by setting a \fBretcode\fP key in the
  53863. \fB__context__\fP dictionary. However, runner (\fBsalt.runner\fP) and wheel
  53864. (\fBsalt.wheel\fP) jobs would only report a \fBFalse\fP result when the
  53865. runner/wheel function raised an exception. As of the 2018.3.0 release, it is
  53866. now possible to set a retcode in runner and wheel functions just as you can do
  53867. in remote execution functions. Here is some example pseudocode:
  53868. .INDENT 0.0
  53869. .INDENT 3.5
  53870. .sp
  53871. .nf
  53872. .ft C
  53873. def myrunner():
  53874. ...
  53875. # do stuff
  53876. ...
  53877. if some_error_condition:
  53878. __context__["retcode"] = 1
  53879. return result
  53880. .ft P
  53881. .fi
  53882. .UNINDENT
  53883. .UNINDENT
  53884. .sp
  53885. This allows a custom runner/wheel function to report its failure so that
  53886. requisites can accurately tell that a job has failed.
  53887. .SS More Complex Orchestration
  53888. .sp
  53889. Many states/functions can be configured in a single file, which when combined
  53890. with the full suite of requisites, can be used
  53891. to easily configure complex orchestration tasks. Additionally, the
  53892. states/functions will be executed in the order in which they are defined,
  53893. unless prevented from doing so by any requisites, as is the default in
  53894. SLS files since 0.17.0.
  53895. .INDENT 0.0
  53896. .INDENT 3.5
  53897. .sp
  53898. .nf
  53899. .ft C
  53900. bootstrap_servers:
  53901. salt.function:
  53902. \- name: cmd.run
  53903. \- tgt: 10.0.0.0/24
  53904. \- tgt_type: ipcidr
  53905. \- arg:
  53906. \- bootstrap
  53907. storage_setup:
  53908. salt.state:
  53909. \- tgt: \(aqrole:storage\(aq
  53910. \- tgt_type: grain
  53911. \- sls: ceph
  53912. \- require:
  53913. \- salt: webserver_setup
  53914. webserver_setup:
  53915. salt.state:
  53916. \- tgt: \(aqweb*\(aq
  53917. \- highstate: True
  53918. .ft P
  53919. .fi
  53920. .UNINDENT
  53921. .UNINDENT
  53922. .sp
  53923. Given the above setup, the orchestration will be carried out as follows:
  53924. .INDENT 0.0
  53925. .IP 1. 3
  53926. The shell command \fBbootstrap\fP will be executed on all minions in the
  53927. 10.0.0.0/24 subnet.
  53928. .IP 2. 3
  53929. A Highstate will be run on all minions whose ID starts with "web", since
  53930. the \fBstorage_setup\fP state requires it.
  53931. .IP 3. 3
  53932. Finally, the \fBceph\fP SLS target will be executed on all minions which have
  53933. a grain called \fBrole\fP with a value of \fBstorage\fP\&.
  53934. .UNINDENT
  53935. .sp
  53936. \fBNOTE:\fP
  53937. .INDENT 0.0
  53938. .INDENT 3.5
  53939. Remember, salt\-run is \fIalways\fP executed on the master.
  53940. .UNINDENT
  53941. .UNINDENT
  53942. .SS Parsing Results Programmatically
  53943. .sp
  53944. Orchestration jobs return output in a specific data structure. That data
  53945. structure is represented differently depending on the outputter used. With the
  53946. default outputter for orchestration, you get a nice human\-readable output.
  53947. Assume the following orchestration SLS:
  53948. .INDENT 0.0
  53949. .INDENT 3.5
  53950. .sp
  53951. .nf
  53952. .ft C
  53953. good_state:
  53954. salt.state:
  53955. \- tgt: myminion
  53956. \- sls:
  53957. \- succeed_with_changes
  53958. bad_state:
  53959. salt.state:
  53960. \- tgt: myminion
  53961. \- sls:
  53962. \- fail_with_changes
  53963. mymod.myfunc:
  53964. salt.function:
  53965. \- tgt: myminion
  53966. mymod.myfunc_false_result:
  53967. salt.function:
  53968. \- tgt: myminion
  53969. .ft P
  53970. .fi
  53971. .UNINDENT
  53972. .UNINDENT
  53973. .sp
  53974. Running this using the default outputter would produce output which looks like
  53975. this:
  53976. .INDENT 0.0
  53977. .INDENT 3.5
  53978. .sp
  53979. .nf
  53980. .ft C
  53981. fa5944a73aa8_master:
  53982. \-\-\-\-\-\-\-\-\-\-
  53983. ID: good_state
  53984. Function: salt.state
  53985. Result: True
  53986. Comment: States ran successfully. Updating myminion.
  53987. Started: 21:08:02.681604
  53988. Duration: 265.565 ms
  53989. Changes:
  53990. myminion:
  53991. \-\-\-\-\-\-\-\-\-\-
  53992. ID: test succeed with changes
  53993. Function: test.succeed_with_changes
  53994. Result: True
  53995. Comment: Success!
  53996. Started: 21:08:02.835893
  53997. Duration: 0.375 ms
  53998. Changes:
  53999. \-\-\-\-\-\-\-\-\-\-
  54000. testing:
  54001. \-\-\-\-\-\-\-\-\-\-
  54002. new:
  54003. Something pretended to change
  54004. old:
  54005. Unchanged
  54006. Summary for myminion
  54007. \-\-\-\-\-\-\-\-\-\-\-\-
  54008. Succeeded: 1 (changed=1)
  54009. Failed: 0
  54010. \-\-\-\-\-\-\-\-\-\-\-\-
  54011. Total states run: 1
  54012. Total run time: 0.375 ms
  54013. \-\-\-\-\-\-\-\-\-\-
  54014. ID: bad_state
  54015. Function: salt.state
  54016. Result: False
  54017. Comment: Run failed on minions: myminion
  54018. Started: 21:08:02.947702
  54019. Duration: 177.01 ms
  54020. Changes:
  54021. myminion:
  54022. \-\-\-\-\-\-\-\-\-\-
  54023. ID: test fail with changes
  54024. Function: test.fail_with_changes
  54025. Result: False
  54026. Comment: Failure!
  54027. Started: 21:08:03.116634
  54028. Duration: 0.502 ms
  54029. Changes:
  54030. \-\-\-\-\-\-\-\-\-\-
  54031. testing:
  54032. \-\-\-\-\-\-\-\-\-\-
  54033. new:
  54034. Something pretended to change
  54035. old:
  54036. Unchanged
  54037. Summary for myminion
  54038. \-\-\-\-\-\-\-\-\-\-\-\-
  54039. Succeeded: 0 (changed=1)
  54040. Failed: 1
  54041. \-\-\-\-\-\-\-\-\-\-\-\-
  54042. Total states run: 1
  54043. Total run time: 0.502 ms
  54044. \-\-\-\-\-\-\-\-\-\-
  54045. ID: mymod.myfunc
  54046. Function: salt.function
  54047. Result: True
  54048. Comment: Function ran successfully. Function mymod.myfunc ran on myminion.
  54049. Started: 21:08:03.125011
  54050. Duration: 159.488 ms
  54051. Changes:
  54052. myminion:
  54053. True
  54054. \-\-\-\-\-\-\-\-\-\-
  54055. ID: mymod.myfunc_false_result
  54056. Function: salt.function
  54057. Result: False
  54058. Comment: Running function mymod.myfunc_false_result failed on minions: myminion. Function mymod.myfunc_false_result ran on myminion.
  54059. Started: 21:08:03.285148
  54060. Duration: 176.787 ms
  54061. Changes:
  54062. myminion:
  54063. False
  54064. Summary for fa5944a73aa8_master
  54065. \-\-\-\-\-\-\-\-\-\-\-\-
  54066. Succeeded: 2 (changed=4)
  54067. Failed: 2
  54068. \-\-\-\-\-\-\-\-\-\-\-\-
  54069. Total states run: 4
  54070. Total run time: 778.850 ms
  54071. .ft P
  54072. .fi
  54073. .UNINDENT
  54074. .UNINDENT
  54075. .sp
  54076. However, using the \fBjson\fP outputter, you can get the output in an easily
  54077. loadable and parsable format:
  54078. .INDENT 0.0
  54079. .INDENT 3.5
  54080. .sp
  54081. .nf
  54082. .ft C
  54083. salt\-run state.orchestrate test \-\-out=json
  54084. .ft P
  54085. .fi
  54086. .UNINDENT
  54087. .UNINDENT
  54088. .INDENT 0.0
  54089. .INDENT 3.5
  54090. .sp
  54091. .nf
  54092. .ft C
  54093. {
  54094. "outputter": "highstate",
  54095. "data": {
  54096. "fa5944a73aa8_master": {
  54097. "salt_|\-good_state_|\-good_state_|\-state": {
  54098. "comment": "States ran successfully. Updating myminion.",
  54099. "name": "good_state",
  54100. "start_time": "21:35:16.868345",
  54101. "result": true,
  54102. "duration": 267.299,
  54103. "__run_num__": 0,
  54104. "__jid__": "20171130213516897392",
  54105. "__sls__": "test",
  54106. "changes": {
  54107. "ret": {
  54108. "myminion": {
  54109. "test_|\-test succeed with changes_|\-test succeed with changes_|\-succeed_with_changes": {
  54110. "comment": "Success!",
  54111. "name": "test succeed with changes",
  54112. "start_time": "21:35:17.022592",
  54113. "result": true,
  54114. "duration": 0.362,
  54115. "__run_num__": 0,
  54116. "__sls__": "succeed_with_changes",
  54117. "changes": {
  54118. "testing": {
  54119. "new": "Something pretended to change",
  54120. "old": "Unchanged"
  54121. }
  54122. },
  54123. "__id__": "test succeed with changes"
  54124. }
  54125. }
  54126. },
  54127. "out": "highstate"
  54128. },
  54129. "__id__": "good_state"
  54130. },
  54131. "salt_|\-bad_state_|\-bad_state_|\-state": {
  54132. "comment": "Run failed on minions: test",
  54133. "name": "bad_state",
  54134. "start_time": "21:35:17.136511",
  54135. "result": false,
  54136. "duration": 197.635,
  54137. "__run_num__": 1,
  54138. "__jid__": "20171130213517202203",
  54139. "__sls__": "test",
  54140. "changes": {
  54141. "ret": {
  54142. "myminion": {
  54143. "test_|\-test fail with changes_|\-test fail with changes_|\-fail_with_changes": {
  54144. "comment": "Failure!",
  54145. "name": "test fail with changes",
  54146. "start_time": "21:35:17.326268",
  54147. "result": false,
  54148. "duration": 0.509,
  54149. "__run_num__": 0,
  54150. "__sls__": "fail_with_changes",
  54151. "changes": {
  54152. "testing": {
  54153. "new": "Something pretended to change",
  54154. "old": "Unchanged"
  54155. }
  54156. },
  54157. "__id__": "test fail with changes"
  54158. }
  54159. }
  54160. },
  54161. "out": "highstate"
  54162. },
  54163. "__id__": "bad_state"
  54164. },
  54165. "salt_|\-mymod.myfunc_|\-mymod.myfunc_|\-function": {
  54166. "comment": "Function ran successfully. Function mymod.myfunc ran on myminion.",
  54167. "name": "mymod.myfunc",
  54168. "start_time": "21:35:17.334373",
  54169. "result": true,
  54170. "duration": 151.716,
  54171. "__run_num__": 2,
  54172. "__jid__": "20171130213517361706",
  54173. "__sls__": "test",
  54174. "changes": {
  54175. "ret": {
  54176. "myminion": true
  54177. },
  54178. "out": "highstate"
  54179. },
  54180. "__id__": "mymod.myfunc"
  54181. },
  54182. "salt_|\-mymod.myfunc_false_result\-mymod.myfunc_false_result\-function": {
  54183. "comment": "Running function mymod.myfunc_false_result failed on minions: myminion. Function mymod.myfunc_false_result ran on myminion.",
  54184. "name": "mymod.myfunc_false_result",
  54185. "start_time": "21:35:17.486625",
  54186. "result": false,
  54187. "duration": 174.241,
  54188. "__run_num__": 3,
  54189. "__jid__": "20171130213517536270",
  54190. "__sls__": "test",
  54191. "changes": {
  54192. "ret": {
  54193. "myminion": false
  54194. },
  54195. "out": "highstate"
  54196. },
  54197. "__id__": "mymod.myfunc_false_result"
  54198. }
  54199. }
  54200. },
  54201. "retcode": 1
  54202. }
  54203. .ft P
  54204. .fi
  54205. .UNINDENT
  54206. .UNINDENT
  54207. .sp
  54208. The 2018.3.0 release includes a couple fixes to make parsing this data easier and
  54209. more accurate. The first is the ability to set a \fI\%return code\fP in a custom runner or wheel
  54210. function, as noted above. The second is a change to how failures are included
  54211. in the return data. Prior to the 2018.3.0 release, minions that failed a
  54212. \fBsalt.state\fP orchestration job would show up in the \fBcomment\fP field of the
  54213. return data, in a human\-readable string that was not easily parsed. They are
  54214. now included in the \fBchanges\fP dictionary alongside the minions that
  54215. succeeded. In addition, \fBsalt.function\fP jobs which failed because the
  54216. \fI\%fail function\fP returned \fBFalse\fP
  54217. used to handle their failures in the same way \fBsalt.state\fP jobs did, and this
  54218. has likewise been corrected.
  54219. .SS Running States on the Master without a Minion
  54220. .sp
  54221. The orchestrate runner can be used to execute states on the master without
  54222. using a minion. For example, assume that \fBsalt://foo.sls\fP contains the
  54223. following SLS:
  54224. .INDENT 0.0
  54225. .INDENT 3.5
  54226. .sp
  54227. .nf
  54228. .ft C
  54229. /etc/foo.conf:
  54230. file.managed:
  54231. \- source: salt://files/foo.conf
  54232. \- mode: 0600
  54233. .ft P
  54234. .fi
  54235. .UNINDENT
  54236. .UNINDENT
  54237. .sp
  54238. In this case, running \fBsalt\-run state.orchestrate foo\fP would be the
  54239. equivalent of running a \fBstate.sls foo\fP, but it would execute on the master
  54240. only, and would not require a minion daemon to be running on the master.
  54241. .sp
  54242. This is not technically orchestration, but it can be useful in certain use
  54243. cases.
  54244. .SS Limitations
  54245. .sp
  54246. Only one SLS target can be run at a time using this method, while using
  54247. \fBstate.sls\fP allows for multiple SLS files to
  54248. be passed in a comma\-separated list.
  54249. .SH SOLARIS
  54250. .sp
  54251. This section contains details on Solaris specific quirks and workarounds.
  54252. .sp
  54253. \fBNOTE:\fP
  54254. .INDENT 0.0
  54255. .INDENT 3.5
  54256. Solaris refers to both Solaris 10 compatible platforms like Solaris 10, illumos, SmartOS, OmniOS, OpenIndiana,... and Oracle Solaris 11 platforms.
  54257. .UNINDENT
  54258. .UNINDENT
  54259. .SS Solaris\-specific Behaviour
  54260. .sp
  54261. Salt is capable of managing Solaris systems, however due to various differences
  54262. between the operating systems, there are some things you need to keep in mind.
  54263. .sp
  54264. This document will contain any quirks that apply across Salt or limitations in
  54265. some modules.
  54266. .SS FQDN/UQDN
  54267. .sp
  54268. On Solaris platforms the FQDN will not always be properly detected.
  54269. If an IPv6 address is configured pythons \fB\(gasocket.getfqdn()\(ga\fP fails to return
  54270. a FQDN and returns the nodename instead. For a full breakdown see the following
  54271. issue on github: #37027
  54272. .SS Grains
  54273. .sp
  54274. Not all grains are available or some have empty or 0 as value. Mostly grains
  54275. that are depenend on hardware discovery like:
  54276. \- num_gpus
  54277. \- gpus
  54278. .sp
  54279. Also some resolver related grains like:
  54280. \- domain
  54281. \- \fI\%dns:options\fP
  54282. \- \fI\%dns:sortlist\fP
  54283. .SH SALT SSH
  54284. .SS Getting Started
  54285. .sp
  54286. Salt SSH is very easy to use, simply set up a basic roster file of the
  54287. systems to connect to and run \fBsalt\-ssh\fP commands in a similar way as
  54288. standard \fBsalt\fP commands.
  54289. .INDENT 0.0
  54290. .IP \(bu 2
  54291. Salt ssh is considered production ready in version 2014.7.0
  54292. .IP \(bu 2
  54293. Python is required on the remote system (unless using the \fB\-r\fP option to send raw ssh commands)
  54294. .IP \(bu 2
  54295. On many systems, the \fBsalt\-ssh\fP executable will be in its own package, usually named
  54296. \fBsalt\-ssh\fP
  54297. .IP \(bu 2
  54298. The Salt SSH system does not supersede the standard Salt communication
  54299. systems, it simply offers an SSH\-based alternative that does not require
  54300. ZeroMQ and a remote agent. Be aware that since all communication with Salt SSH is
  54301. executed via SSH it is substantially slower than standard Salt with ZeroMQ.
  54302. .IP \(bu 2
  54303. At the moment fileserver operations must be wrapped to ensure that the
  54304. relevant files are delivered with the \fBsalt\-ssh\fP commands.
  54305. The state module is an exception, which compiles the state run on the
  54306. master, and in the process finds all the references to \fBsalt://\fP paths and
  54307. copies those files down in the same tarball as the state run.
  54308. However, needed fileserver wrappers are still under development.
  54309. .UNINDENT
  54310. .SS Salt SSH Roster
  54311. .sp
  54312. The roster system in Salt allows for remote minions to be easily defined.
  54313. .sp
  54314. \fBNOTE:\fP
  54315. .INDENT 0.0
  54316. .INDENT 3.5
  54317. See the SSH roster docs for more details.
  54318. .UNINDENT
  54319. .UNINDENT
  54320. .sp
  54321. Simply create the roster file, the default location is \fI/etc/salt/roster\fP:
  54322. .INDENT 0.0
  54323. .INDENT 3.5
  54324. .sp
  54325. .nf
  54326. .ft C
  54327. web1: 192.168.42.1
  54328. .ft P
  54329. .fi
  54330. .UNINDENT
  54331. .UNINDENT
  54332. .sp
  54333. This is a very basic roster file where a Salt ID is being assigned to an IP
  54334. address. A more elaborate roster can be created:
  54335. .INDENT 0.0
  54336. .INDENT 3.5
  54337. .sp
  54338. .nf
  54339. .ft C
  54340. web1:
  54341. host: 192.168.42.1 # The IP addr or DNS hostname
  54342. user: fred # Remote executions will be executed as user fred
  54343. passwd: foobarbaz # The password to use for login, if omitted, keys are used
  54344. sudo: True # Whether to sudo to root, not enabled by default
  54345. web2:
  54346. host: 192.168.42.2
  54347. .ft P
  54348. .fi
  54349. .UNINDENT
  54350. .UNINDENT
  54351. .sp
  54352. \fBNOTE:\fP
  54353. .INDENT 0.0
  54354. .INDENT 3.5
  54355. sudo works only if NOPASSWD is set for user in /etc/sudoers:
  54356. \fBfred ALL=(ALL) NOPASSWD: ALL\fP
  54357. .UNINDENT
  54358. .UNINDENT
  54359. .SS Deploy ssh key for salt\-ssh
  54360. .sp
  54361. By default, salt\-ssh will generate key pairs for ssh, the default path will be
  54362. \fB/etc/salt/pki/master/ssh/salt\-ssh.rsa\fP\&. The key generation happens when you run
  54363. \fBsalt\-ssh\fP for the first time.
  54364. .sp
  54365. You can use ssh\-copy\-id, (the OpenSSH key deployment tool) to deploy keys to your servers.
  54366. .INDENT 0.0
  54367. .INDENT 3.5
  54368. .sp
  54369. .nf
  54370. .ft C
  54371. ssh\-copy\-id \-i /etc/salt/pki/master/ssh/salt\-ssh.rsa.pub user@server.demo.com
  54372. .ft P
  54373. .fi
  54374. .UNINDENT
  54375. .UNINDENT
  54376. .sp
  54377. One could also create a simple shell script, named salt\-ssh\-copy\-id.sh as follows:
  54378. .INDENT 0.0
  54379. .INDENT 3.5
  54380. .sp
  54381. .nf
  54382. .ft C
  54383. #!/bin/bash
  54384. if [ \-z $1 ]; then
  54385. echo $0 user@host.com
  54386. exit 0
  54387. fi
  54388. ssh\-copy\-id \-i /etc/salt/pki/master/ssh/salt\-ssh.rsa.pub $1
  54389. .ft P
  54390. .fi
  54391. .UNINDENT
  54392. .UNINDENT
  54393. .sp
  54394. \fBNOTE:\fP
  54395. .INDENT 0.0
  54396. .INDENT 3.5
  54397. Be certain to chmod +x salt\-ssh\-copy\-id.sh.
  54398. .UNINDENT
  54399. .UNINDENT
  54400. .INDENT 0.0
  54401. .INDENT 3.5
  54402. .sp
  54403. .nf
  54404. .ft C
  54405. \&./salt\-ssh\-copy\-id.sh user@server1.host.com
  54406. \&./salt\-ssh\-copy\-id.sh user@server2.host.com
  54407. .ft P
  54408. .fi
  54409. .UNINDENT
  54410. .UNINDENT
  54411. .sp
  54412. Once keys are successfully deployed, salt\-ssh can be used to control them.
  54413. .sp
  54414. Alternatively ssh agent forwarding can be used by setting the priv to agent\-forwarding.
  54415. .SS Calling Salt SSH
  54416. .sp
  54417. \fBNOTE:\fP
  54418. .INDENT 0.0
  54419. .INDENT 3.5
  54420. \fBsalt\-ssh\fP on RHEL/CentOS 5
  54421. .sp
  54422. The \fBsalt\-ssh\fP command requires at least python 2.6, which is not
  54423. installed by default on RHEL/CentOS 5. An easy workaround in this
  54424. situation is to use the \fB\-r\fP option to run a raw shell command that
  54425. installs python26:
  54426. .INDENT 0.0
  54427. .INDENT 3.5
  54428. .sp
  54429. .nf
  54430. .ft C
  54431. salt\-ssh centos\-5\-minion \-r \(aqyum \-y install epel\-release ; yum \-y install python26\(aq
  54432. .ft P
  54433. .fi
  54434. .UNINDENT
  54435. .UNINDENT
  54436. .UNINDENT
  54437. .UNINDENT
  54438. .sp
  54439. \fBNOTE:\fP
  54440. .INDENT 0.0
  54441. .INDENT 3.5
  54442. \fBsalt\-ssh\fP on systems with Python 3.x
  54443. .sp
  54444. Salt, before the 2017.7.0 release, does not support Python 3.x which is the
  54445. default on for example the popular 16.04 LTS release of Ubuntu. An easy
  54446. workaround for this scenario is to use the \fB\-r\fP option similar to the
  54447. example above:
  54448. .INDENT 0.0
  54449. .INDENT 3.5
  54450. .sp
  54451. .nf
  54452. .ft C
  54453. salt\-ssh ubuntu\-1604\-minion \-r \(aqapt update ; apt install \-y python\-minimal\(aq
  54454. .ft P
  54455. .fi
  54456. .UNINDENT
  54457. .UNINDENT
  54458. .UNINDENT
  54459. .UNINDENT
  54460. .sp
  54461. The \fBsalt\-ssh\fP command can be easily executed in the same way as a salt
  54462. command:
  54463. .INDENT 0.0
  54464. .INDENT 3.5
  54465. .sp
  54466. .nf
  54467. .ft C
  54468. salt\-ssh \(aq*\(aq test.version
  54469. .ft P
  54470. .fi
  54471. .UNINDENT
  54472. .UNINDENT
  54473. .sp
  54474. Commands with \fBsalt\-ssh\fP follow the same syntax as the \fBsalt\fP command.
  54475. .sp
  54476. The standard salt functions are available! The output is the same as \fBsalt\fP
  54477. and many of the same flags are available. Please see
  54478. \fI\%http://docs.saltstack.com/ref/cli/salt\-ssh.html\fP for all of the available
  54479. options.
  54480. .SS Raw Shell Calls
  54481. .sp
  54482. By default \fBsalt\-ssh\fP runs Salt execution modules on the remote system,
  54483. but \fBsalt\-ssh\fP can also execute raw shell commands:
  54484. .INDENT 0.0
  54485. .INDENT 3.5
  54486. .sp
  54487. .nf
  54488. .ft C
  54489. salt\-ssh \(aq*\(aq \-r \(aqifconfig\(aq
  54490. .ft P
  54491. .fi
  54492. .UNINDENT
  54493. .UNINDENT
  54494. .SS States Via Salt SSH
  54495. .sp
  54496. The Salt State system can also be used with \fBsalt\-ssh\fP\&. The state system
  54497. abstracts the same interface to the user in \fBsalt\-ssh\fP as it does when using
  54498. standard \fBsalt\fP\&. The intent is that Salt Formulas defined for standard
  54499. \fBsalt\fP will work seamlessly with \fBsalt\-ssh\fP and vice\-versa.
  54500. .sp
  54501. The standard Salt States walkthroughs function by simply replacing \fBsalt\fP
  54502. commands with \fBsalt\-ssh\fP\&.
  54503. .SS Targeting with Salt SSH
  54504. .sp
  54505. Due to the fact that the targeting approach differs in salt\-ssh, only glob
  54506. and regex targets are supported as of this writing, the remaining target
  54507. systems still need to be implemented.
  54508. .sp
  54509. \fBNOTE:\fP
  54510. .INDENT 0.0
  54511. .INDENT 3.5
  54512. By default, Grains are settable through \fBsalt\-ssh\fP\&. By
  54513. default, these grains will \fInot\fP be persisted across reboots.
  54514. .sp
  54515. See the "thin_dir" setting in Roster documentation
  54516. for more details.
  54517. .UNINDENT
  54518. .UNINDENT
  54519. .SS Configuring Salt SSH
  54520. .sp
  54521. Salt SSH takes its configuration from a master configuration file. Normally, this
  54522. file is in \fB/etc/salt/master\fP\&. If one wishes to use a customized configuration file,
  54523. the \fB\-c\fP option to Salt SSH facilitates passing in a directory to look inside for a
  54524. configuration file named \fBmaster\fP\&.
  54525. .SS Minion Config
  54526. .sp
  54527. New in version 2015.5.1.
  54528. .sp
  54529. Minion config options can be defined globally using the master configuration
  54530. option \fBssh_minion_opts\fP\&. It can also be defined on a per\-minion basis with
  54531. the \fBminion_opts\fP entry in the roster.
  54532. .SS Running Salt SSH as non\-root user
  54533. .sp
  54534. By default, Salt read all the configuration from /etc/salt/. If you are running
  54535. Salt SSH with a regular user you have to modify some paths or you will get
  54536. "Permission denied" messages. You have to modify two parameters: \fBpki_dir\fP
  54537. and \fBcachedir\fP\&. Those should point to a full path writable for the user.
  54538. .sp
  54539. It\(aqs recommended not to modify /etc/salt for this purpose. Create a private copy
  54540. of /etc/salt for the user and run the command with \fB\-c /new/config/path\fP\&.
  54541. .SS Define CLI Options with Saltfile
  54542. .sp
  54543. If you are commonly passing in CLI options to \fBsalt\-ssh\fP, you can create
  54544. a \fBSaltfile\fP to automatically use these options. This is common if you\(aqre
  54545. managing several different salt projects on the same server.
  54546. .sp
  54547. So you can \fBcd\fP into a directory that has a \fBSaltfile\fP with the following
  54548. YAML contents:
  54549. .INDENT 0.0
  54550. .INDENT 3.5
  54551. .sp
  54552. .nf
  54553. .ft C
  54554. salt\-ssh:
  54555. config_dir: path/to/config/dir
  54556. ssh_log_file: salt\-ssh.log
  54557. ssh_max_procs: 30
  54558. ssh_wipe: True
  54559. .ft P
  54560. .fi
  54561. .UNINDENT
  54562. .UNINDENT
  54563. .sp
  54564. Instead of having to call
  54565. \fBsalt\-ssh \-\-config\-dir=path/to/config/dir \-\-max\-procs=30 \-\-wipe \e* test.version\fP you
  54566. can call \fBsalt\-ssh \e* test.version\fP\&.
  54567. .sp
  54568. Boolean\-style options should be specified in their YAML representation.
  54569. .sp
  54570. \fBNOTE:\fP
  54571. .INDENT 0.0
  54572. .INDENT 3.5
  54573. The option keys specified must match the destination attributes for the
  54574. options specified in the parser
  54575. \fBsalt.utils.parsers.SaltSSHOptionParser\fP\&. For example, in the
  54576. case of the \fB\-\-wipe\fP command line option, its \fBdest\fP is configured to
  54577. be \fBssh_wipe\fP and thus this is what should be configured in the
  54578. \fBSaltfile\fP\&. Using the names of flags for this option, being \fBwipe:
  54579. True\fP or \fBw: True\fP, will not work.
  54580. .UNINDENT
  54581. .UNINDENT
  54582. .sp
  54583. \fBNOTE:\fP
  54584. .INDENT 0.0
  54585. .INDENT 3.5
  54586. For the \fISaltfile\fP to be automatically detected it needs to be named
  54587. \fISaltfile\fP with a capital \fIS\fP and be readable by the user running
  54588. salt\-ssh.
  54589. .UNINDENT
  54590. .UNINDENT
  54591. .sp
  54592. At last you can create \fB~/.salt/Saltfile\fP and \fBsalt\-ssh\fP
  54593. will automatically load it by default.
  54594. .SS Advanced options with salt\-ssh
  54595. .sp
  54596. Salt\(aqs ability to allow users to have custom grains and custom modules
  54597. is also applicable to using salt\-ssh. This is done through first packing
  54598. the custom grains into the thin tarball before it is deployed on the system.
  54599. .sp
  54600. For this to happen, the \fBconfig\fP file must be explicit enough to indicate
  54601. where the custom grains are located on the machine like so:
  54602. .INDENT 0.0
  54603. .INDENT 3.5
  54604. .sp
  54605. .nf
  54606. .ft C
  54607. file_client: local
  54608. file_roots:
  54609. base:
  54610. \- /home/user/.salt
  54611. \- /home/user/.salt/_states
  54612. \- /home/user/.salt/_grains
  54613. module_dirs:
  54614. \- /home/user/.salt
  54615. pillar_roots:
  54616. base:
  54617. \- /home/user/.salt/_pillar
  54618. root_dir: /tmp/.salt\-root
  54619. .ft P
  54620. .fi
  54621. .UNINDENT
  54622. .UNINDENT
  54623. .sp
  54624. It\(aqs better to be explicit rather than implicit in this situation. This will
  54625. allow urls all under \fIsalt://\fP to be resolved such as \fIsalt://_grains/custom_grain.py\fP\&.
  54626. .sp
  54627. One can confirm this action by executing a properly setup salt\-ssh minion with
  54628. \fIsalt\-ssh minion grains.items\fP\&. During this process, a \fIsaltutil.sync_all\fP is
  54629. ran to discover the thin tarball and then consumed. Output similar to this
  54630. indicates a successful sync with custom grains.
  54631. .INDENT 0.0
  54632. .INDENT 3.5
  54633. .sp
  54634. .nf
  54635. .ft C
  54636. local:
  54637. \-\-\-\-\-\-\-\-\-\-
  54638. ...
  54639. executors:
  54640. grains:
  54641. \- grains.custom_grain
  54642. log_handlers:
  54643. ...
  54644. .ft P
  54645. .fi
  54646. .UNINDENT
  54647. .UNINDENT
  54648. .sp
  54649. This is especially important when using a custom \fIfile_roots\fP that differ from
  54650. \fI/etc/salt/\fP\&.
  54651. .sp
  54652. \fBNOTE:\fP
  54653. .INDENT 0.0
  54654. .INDENT 3.5
  54655. Please see \fI\%https://docs.saltstack.com/en/latest/topics/grains/\fP for more
  54656. information on grains and custom grains.
  54657. .UNINDENT
  54658. .UNINDENT
  54659. .SS Debugging salt\-ssh
  54660. .sp
  54661. One common approach for debugging \fBsalt\-ssh\fP is to simply use the tarball that salt
  54662. ships to the remote machine and call \fBsalt\-call\fP directly.
  54663. .sp
  54664. To determine the location of \fBsalt\-call\fP, simply run \fBsalt\-ssh\fP with the \fB\-ltrace\fP
  54665. flag and look for a line containing the string, \fBSALT_ARGV\fP\&. This contains the \fBsalt\-call\fP
  54666. command that \fBsalt\-ssh\fP attempted to execute.
  54667. .sp
  54668. It is recommended that one modify this command a bit by removing the \fB\-l quiet\fP,
  54669. \fB\-\-metadata\fP and \fB\-\-output json\fP to get a better idea of what\(aqs going on the target system.
  54670. .SS Salt Rosters
  54671. .sp
  54672. Salt rosters are pluggable systems added in Salt 0.17.0 to facilitate the
  54673. \fBsalt\-ssh\fP system.
  54674. The roster system was created because \fBsalt\-ssh\fP needs a means to
  54675. identify which systems need to be targeted for execution.
  54676. .sp
  54677. \fBSEE ALSO:\fP
  54678. .INDENT 0.0
  54679. .INDENT 3.5
  54680. all\-salt.roster
  54681. .UNINDENT
  54682. .UNINDENT
  54683. .sp
  54684. \fBNOTE:\fP
  54685. .INDENT 0.0
  54686. .INDENT 3.5
  54687. The Roster System is not needed or used in standard Salt because the
  54688. master does not need to be initially aware of target systems, since the
  54689. Salt Minion checks itself into the master.
  54690. .UNINDENT
  54691. .UNINDENT
  54692. .sp
  54693. Since the roster system is pluggable, it can be easily augmented to attach to
  54694. any existing systems to gather information about what servers are presently
  54695. available and should be attached to by \fBsalt\-ssh\fP\&. By default the roster
  54696. file is located at /etc/salt/roster.
  54697. .SS How Rosters Work
  54698. .sp
  54699. The roster system compiles a data structure internally referred to as
  54700. \fBtargets\fP\&. The \fBtargets\fP is a list of target systems and attributes about how
  54701. to connect to said systems. The only requirement for a roster module in Salt
  54702. is to return the \fBtargets\fP data structure.
  54703. .SS Targets Data
  54704. .sp
  54705. The information which can be stored in a roster \fBtarget\fP is the following:
  54706. .INDENT 0.0
  54707. .INDENT 3.5
  54708. .sp
  54709. .nf
  54710. .ft C
  54711. <Salt ID>: # The id to reference the target system with
  54712. host: # The IP address or DNS name of the remote host
  54713. user: # The user to log in as
  54714. passwd: # The password to log in with
  54715. # Optional parameters
  54716. port: # The target system\(aqs ssh port number
  54717. sudo: # Boolean to run command via sudo
  54718. sudo_user: # Str: Set this to execute Salt as a sudo user other than root.
  54719. # This user must be in the same system group as the remote user
  54720. # that is used to login and is specified above. Alternatively,
  54721. # the user must be a super\-user.
  54722. tty: # Boolean: Set this option to True if sudo is also set to
  54723. # True and requiretty is also set on the target system
  54724. priv: # File path to ssh private key, defaults to salt\-ssh.rsa
  54725. # The priv can also be set to agent\-forwarding to not specify
  54726. # a key, but use ssh agent forwarding
  54727. priv_passwd: # Passphrase for ssh private key
  54728. timeout: # Number of seconds to wait for response when establishing
  54729. # an SSH connection
  54730. minion_opts: # Dictionary of minion opts
  54731. thin_dir: # The target system\(aqs storage directory for Salt
  54732. # components. Defaults to /tmp/salt\-<hash>.
  54733. cmd_umask: # umask to enforce for the salt\-call command. Should be in
  54734. # octal (so for 0o077 in YAML you would do 0077, or 63)
  54735. ssh_pre_flight: # Path to a script that will run before all other salt\-ssh
  54736. # commands. Will only run the first time when the thin dir
  54737. # does not exist, unless \-\-pre\-flight is passed to salt\-ssh
  54738. # command or ssh_run_pre_flight is set to true in the config
  54739. # Added in 3001 Release.
  54740. set_path: # Set the path environment variable, to ensure the expected python
  54741. # binary is in the salt\-ssh path, when running the command.
  54742. # Example: \(aq$PATH:/usr/local/bin/\(aq. Added in 3001 Release.
  54743. .ft P
  54744. .fi
  54745. .UNINDENT
  54746. .UNINDENT
  54747. .SS ssh_pre_flight
  54748. .sp
  54749. A Salt\-SSH roster option \fIssh_pre_flight\fP was added in the 3001 release. This enables
  54750. you to run a script before Salt\-SSH tries to run any commands. You can set this option
  54751. in the roster for a specific minion or use the \fIroster_defaults\fP to set it for all minions.
  54752. This script will only run if the thin dir is not currently on the minion. This means it will
  54753. only run on the first run of salt\-ssh or if you have recently wiped out your thin dir. If
  54754. you want to intentionally run the script again you have a couple of options:
  54755. .INDENT 0.0
  54756. .IP \(bu 2
  54757. Wipe out your thin dir by using the \-w salt\-ssh arg.
  54758. .IP \(bu 2
  54759. Set ssh_run_pre_flight to True in the config
  54760. .IP \(bu 2
  54761. Run salt\-ssh with the \-\-pre\-flight arg.
  54762. .UNINDENT
  54763. .SS Target Defaults
  54764. .sp
  54765. The \fIroster_defaults\fP dictionary in the master config is used to set the
  54766. default login variables for minions in the roster so that the same arguments do
  54767. not need to be passed with commandline arguments.
  54768. .INDENT 0.0
  54769. .INDENT 3.5
  54770. .sp
  54771. .nf
  54772. .ft C
  54773. roster_defaults:
  54774. user: daniel
  54775. sudo: True
  54776. priv: /root/.ssh/id_rsa
  54777. tty: True
  54778. .ft P
  54779. .fi
  54780. .UNINDENT
  54781. .UNINDENT
  54782. .SS thin_dir
  54783. .sp
  54784. Salt needs to upload a standalone environment to the target system, and this
  54785. defaults to /tmp/salt\-<hash>. This directory will be cleaned up per normal
  54786. systems operation.
  54787. .sp
  54788. If you need a persistent Salt environment, for instance to set persistent grains,
  54789. this value will need to be changed.
  54790. .SS SSH Ext Alternatives
  54791. .sp
  54792. In the 2019.2.0 release the \fBssh_ext_alternatives\fP feature was added.
  54793. This allows salt\-ssh to work across different python versions. You will
  54794. need to ensure you have the following:
  54795. .INDENT 0.0
  54796. .INDENT 3.5
  54797. .INDENT 0.0
  54798. .IP \(bu 2
  54799. Salt is installed, with all required dependnecies for both Python2 and Python3
  54800. .IP \(bu 2
  54801. Everything needs to be importable from the respective Python environment.
  54802. .UNINDENT
  54803. .UNINDENT
  54804. .UNINDENT
  54805. .sp
  54806. To enable using this feature you will need to edit the master configuration similar
  54807. to below:
  54808. .INDENT 0.0
  54809. .INDENT 3.5
  54810. .sp
  54811. .nf
  54812. .ft C
  54813. ssh_ext_alternatives:
  54814. 2019.2: # Namespace, can be anything.
  54815. py\-version: [2, 7] # Constraint to specific interpreter version
  54816. path: /opt/2019.2/salt # Main Salt installation directory.
  54817. dependencies: # List of dependencies and their installation paths
  54818. jinja2: /opt/jinja2
  54819. yaml: /opt/yaml
  54820. tornado: /opt/tornado
  54821. msgpack: /opt/msgpack
  54822. certifi: /opt/certifi
  54823. singledispatch: /opt/singledispatch.py
  54824. singledispatch_helpers: /opt/singledispatch_helpers.py
  54825. markupsafe: /opt/markupsafe
  54826. backports_abc: /opt/backports_abc.py
  54827. .ft P
  54828. .fi
  54829. .UNINDENT
  54830. .UNINDENT
  54831. .SS auto_detect
  54832. .sp
  54833. In the 3001 release the \fBauto_detect\fP feature was added for \fBssh_ext_alternatives\fP\&.
  54834. This allows salt\-ssh to automatically detect the path to all of your dependencies and
  54835. does not require you to define them under \fBdependencies\fP\&.
  54836. .INDENT 0.0
  54837. .INDENT 3.5
  54838. .sp
  54839. .nf
  54840. .ft C
  54841. ssh_ext_alternatives:
  54842. 2019.2: # Namespace, can be anything.
  54843. py\-version: [2, 7] # Constraint to specific interpreter version
  54844. path: /opt/2019.2/salt # Main Salt installation directory.
  54845. auto_detect: True # Auto detect dependencies
  54846. py_bin: /usr/bin/python2.7 # Python binary path used to auto detect dependencies
  54847. .ft P
  54848. .fi
  54849. .UNINDENT
  54850. .UNINDENT
  54851. .sp
  54852. If \fBpy_bin\fP is not set alongside \fBauto_detect\fP, it will attempt to auto detect
  54853. the dependnecies using the major version set in \fBpy\-version\fP\&. For example if you
  54854. have \fB[2, 7]\fP set as your \fBpy\-version\fP, it will attempt to use the binary \fBpython2\fP\&.
  54855. .sp
  54856. You can also use \fBauto_detect\fP and \fBdependencies\fP together.
  54857. .INDENT 0.0
  54858. .INDENT 3.5
  54859. .sp
  54860. .nf
  54861. .ft C
  54862. ssh_ext_alternatives:
  54863. 2019.2: # Namespace, can be anything.
  54864. py\-version: [2, 7] # Constraint to specific interpreter version
  54865. path: /opt/2019.2/salt # Main Salt installation directory.
  54866. auto_detect: True # Auto detect dependencies
  54867. py_bin: /usr/bin/python2.7 # Python binary path to auto detect dependencies
  54868. dependencies: # List of dependencies and their installation paths
  54869. jinja2: /opt/jinja2
  54870. .ft P
  54871. .fi
  54872. .UNINDENT
  54873. .UNINDENT
  54874. .sp
  54875. If a dependency is defined in the \fBdependecies\fP list \fBssh_ext_alternatives\fP will use
  54876. this dependency, instead of the path that \fBauto_detect\fP finds. For example, if you define
  54877. \fB/opt/jinja2\fP under your \fBdependencies\fP for jinja2, it will not try to autodetect the
  54878. file path to the jinja2 module, and will favor \fB/opt/jinja2\fP\&.
  54879. .SS Different Python Versions
  54880. .sp
  54881. The 3001 release removed python 2 support in Salt. Even though this python 2 support
  54882. is being dropped we have provided multiple ways to work around this with Salt\-SSH. You
  54883. can use the following options:
  54884. .INDENT 0.0
  54885. .INDENT 3.5
  54886. .INDENT 0.0
  54887. .IP \(bu 2
  54888. ssh_pre_flight
  54889. .IP \(bu 2
  54890. SSH ext alternatives
  54891. .UNINDENT
  54892. .UNINDENT
  54893. .UNINDENT
  54894. .SH THORIUM COMPLEX REACTOR
  54895. .sp
  54896. The original Salt Reactor is based on the idea of listening for a specific
  54897. event and then reacting to it. This model comes with many logical limitations,
  54898. for instance it is very difficult (and hacky) to fire a reaction based on
  54899. aggregate data or based on multiple events.
  54900. .sp
  54901. The Thorium reactor is intended to alleviate this problem in a very elegant way.
  54902. Instead of using extensive jinja routines or complex python sls files the
  54903. aggregation of data and the determination of what should run becomes isolated
  54904. to the sls data logic, makes the definitions much cleaner.
  54905. .SS Starting the Thorium Engine
  54906. .sp
  54907. To enable the thorium engine add the following configuration to the engines
  54908. section of your Salt Master or Minion configuration file and restart the daemon:
  54909. .INDENT 0.0
  54910. .INDENT 3.5
  54911. .sp
  54912. .nf
  54913. .ft C
  54914. engines:
  54915. \- thorium: {}
  54916. .ft P
  54917. .fi
  54918. .UNINDENT
  54919. .UNINDENT
  54920. .SS Thorium Modules
  54921. .sp
  54922. Because of its specialized nature, Thorium uses its own set of modules. However,
  54923. many of these modules are designed to wrap the more commonly\-used Salt
  54924. subsystems. These modules are:
  54925. .INDENT 0.0
  54926. .IP \(bu 2
  54927. local: Execution modules
  54928. .IP \(bu 2
  54929. runner: Runner modules
  54930. .IP \(bu 2
  54931. wheel: Wheel modules
  54932. .UNINDENT
  54933. .sp
  54934. There are other modules that ship with Thorium as well. Some of these will be
  54935. highlighted later in this document.
  54936. .SS Writing Thorium Formulas
  54937. .sp
  54938. Like some other Salt subsystems, Thorium uses its own directory structure. The
  54939. default location for this structure is \fB/srv/thorium/\fP, but it can be changed
  54940. using the \fBthorium_roots\fP setting in the \fBmaster\fP configuration file.
  54941. .sp
  54942. This would explicitly set the roots to the default:
  54943. .INDENT 0.0
  54944. .INDENT 3.5
  54945. .sp
  54946. .nf
  54947. .ft C
  54948. thorium_roots:
  54949. base:
  54950. \- /srv/thorium
  54951. .ft P
  54952. .fi
  54953. .UNINDENT
  54954. .UNINDENT
  54955. .sp
  54956. Example \fBthorium_roots\fP configuration:
  54957. .INDENT 0.0
  54958. .INDENT 3.5
  54959. .sp
  54960. .nf
  54961. .ft C
  54962. thorium_roots:
  54963. base:
  54964. \- /etc/salt/thorium
  54965. .ft P
  54966. .fi
  54967. .UNINDENT
  54968. .UNINDENT
  54969. .sp
  54970. It is also possible to use gitfs with Thorium,
  54971. using the \fBthoriumenv\fP or \fBthorium_top\fP settings.
  54972. .sp
  54973. Example using \fBthorium_top\fP:
  54974. .INDENT 0.0
  54975. .INDENT 3.5
  54976. .sp
  54977. .nf
  54978. .ft C
  54979. thorium_top: salt://thorium/top.sls
  54980. gitfs_provider: pygit2
  54981. gitfs_remotes:
  54982. \- git@github.com:user/repo.git:
  54983. \- name: salt\-backend
  54984. \- root: salt
  54985. \- base: master
  54986. \- git@github.com:user/repo.git:
  54987. \- name: thorium\-backend
  54988. \- root: thorium
  54989. \- base: master
  54990. \- mountpoint: salt://thorium
  54991. .ft P
  54992. .fi
  54993. .UNINDENT
  54994. .UNINDENT
  54995. .sp
  54996. \fBNOTE:\fP
  54997. .INDENT 0.0
  54998. .INDENT 3.5
  54999. When using this method don\(aqt forget to prepend the mountpoint to files served by this repo,
  55000. for example \fBtop.sls\fP:
  55001. .INDENT 0.0
  55002. .INDENT 3.5
  55003. .sp
  55004. .nf
  55005. .ft C
  55006. base:
  55007. \(aq*\(aq:
  55008. \- thorium.key_clean
  55009. .ft P
  55010. .fi
  55011. .UNINDENT
  55012. .UNINDENT
  55013. .UNINDENT
  55014. .UNINDENT
  55015. .sp
  55016. Example using \fBthoriumenv\fP:
  55017. .INDENT 0.0
  55018. .INDENT 3.5
  55019. .sp
  55020. .nf
  55021. .ft C
  55022. thoriumenv: thorium
  55023. gitfs_provider: pygit2
  55024. gitfs_remotes:
  55025. \- git@github.com:user/repo.git:
  55026. \- name: salt\-backend
  55027. \- root: salt
  55028. \- base: master
  55029. \- git@github.com:user/repo.git:
  55030. \- name: thorium\-backend
  55031. \- root: thorium
  55032. \- saltenv:
  55033. \- thorium:
  55034. \- ref: master
  55035. .ft P
  55036. .fi
  55037. .UNINDENT
  55038. .UNINDENT
  55039. .sp
  55040. \fBNOTE:\fP
  55041. .INDENT 0.0
  55042. .INDENT 3.5
  55043. When using this method all state will run under the defined environment,
  55044. for example \fBtop.sls\fP:
  55045. .INDENT 0.0
  55046. .INDENT 3.5
  55047. .sp
  55048. .nf
  55049. .ft C
  55050. thorium:
  55051. \(aq*\(aq:
  55052. \- key_clean
  55053. .ft P
  55054. .fi
  55055. .UNINDENT
  55056. .UNINDENT
  55057. .UNINDENT
  55058. .UNINDENT
  55059. .SS The Thorium top.sls File
  55060. .sp
  55061. Thorium uses its own \fBtop.sls\fP file, which follows the same convention as is
  55062. found in \fB/srv/salt/\fP:
  55063. .INDENT 0.0
  55064. .INDENT 3.5
  55065. .sp
  55066. .nf
  55067. .ft C
  55068. <srv>:
  55069. <target>:
  55070. \- <formula 1>
  55071. \- <formula 2>
  55072. \- <etc...>
  55073. .ft P
  55074. .fi
  55075. .UNINDENT
  55076. .UNINDENT
  55077. .sp
  55078. For instance, a \fBtop.sls\fP using a standard \fBbase\fP environment and a single
  55079. Thorium formula called \fBkey_clean\fP, would look like:
  55080. .INDENT 0.0
  55081. .INDENT 3.5
  55082. .sp
  55083. .nf
  55084. .ft C
  55085. base:
  55086. \(aq*\(aq:
  55087. \- key_clean
  55088. .ft P
  55089. .fi
  55090. .UNINDENT
  55091. .UNINDENT
  55092. .sp
  55093. Take note that the target in a Thorium \fBtop.sls\fP is not used; it only exists
  55094. to follow the same convention as other \fBtop.sls\fP files. Leave this set to
  55095. \fB\(aq*\(aq\fP in your own Thorium \fBtop.sls\fP\&.
  55096. .SS Thorium Formula Files
  55097. .sp
  55098. Thorium SLS files are processed by the same state compiler that processes Salt
  55099. state files. This means that features like requisites, templates, and so on are
  55100. available.
  55101. .sp
  55102. Let\(aqs take a look at an example, and then discuss each component of it. This
  55103. formula uses Thorium to detect when a minion has disappeared and then deletes
  55104. the key from the master when the minion has been gone for 60 seconds:
  55105. .INDENT 0.0
  55106. .INDENT 3.5
  55107. .sp
  55108. .nf
  55109. .ft C
  55110. statreg:
  55111. status.reg
  55112. keydel:
  55113. key.timeout:
  55114. \- delete: 60
  55115. \- require:
  55116. \- status: statreg
  55117. .ft P
  55118. .fi
  55119. .UNINDENT
  55120. .UNINDENT
  55121. .sp
  55122. There are two stanzas in this formula, whose IDs are \fBstatreg\fP and
  55123. \fBkeydel\fP\&. The first stanza, \fBstatreg\fP, tells Thorium to keep track of
  55124. minion status beacons in its \fIregister\fP\&. We\(aqll talk more about the register in
  55125. a moment.
  55126. .sp
  55127. The second stanza, \fBkeydel\fP, is the one that does the real work. It uses the
  55128. \fBkey\fP module to apply an expiration (using the \fBtimeout\fP function) to a
  55129. minion. Because \fBdelete\fP is set to \fB60\fP, this is a 60 second expiration. If
  55130. a minion does not check in at least once every 60 seconds, its key will be
  55131. deleted from the master. This particular function also allows you to use
  55132. \fBreject\fP instead of \fBdelete\fP, allowing for a minion to be rejected instead
  55133. of deleted if it does not check in within the specified time period.
  55134. .sp
  55135. There is also a \fBrequire\fP requisite in this stanza. It states that the
  55136. \fBkey.timeout\fP function will not be called unless the \fBstatus.reg\fP function
  55137. in the \fBstatreg\fP codeblock has been successfully called first.
  55138. .SS Thorium Links to Beacons
  55139. .sp
  55140. The above example was added in the 2016.11.0 release of Salt and makes use of the
  55141. \fBstatus\fP beacon also added in the 2016.11.0 release. For the above Thorium state
  55142. to function properly you will also need to enable the \fBstatus\fP beacon in the
  55143. \fBminion\fP configuration file:
  55144. .INDENT 0.0
  55145. .INDENT 3.5
  55146. .sp
  55147. .nf
  55148. .ft C
  55149. beacons:
  55150. status:
  55151. \- interval: 10
  55152. .ft P
  55153. .fi
  55154. .UNINDENT
  55155. .UNINDENT
  55156. .sp
  55157. This will cause the minion to use the status beacon to check in with the master
  55158. every 10 seconds.
  55159. .SS The Thorium Register
  55160. .sp
  55161. In order to keep track of information, Thorium uses an in\-memory register (or
  55162. rather, collection of registers) on the master. These registers are only
  55163. populated when told to by a formula, and they normally will be erased when the
  55164. master is restarted. It is possible to persist the registers to disk, but we\(aqll
  55165. get to that in a moment.
  55166. .sp
  55167. The example above uses \fBstatus.reg\fP to populate a register for you, which is
  55168. automatically used by the \fBkey.timeout\fP function. However, you can set your
  55169. own register values as well, using the \fBreg\fP module.
  55170. .sp
  55171. Because Thorium watches the event bus, the \fBreg\fP module is designed to look
  55172. for user\-specified tags, and then extract data from the payload of events that
  55173. match those tags. For instance, the following stanza will look for an event
  55174. with a tag of \fBmy/custom/event\fP:
  55175. .INDENT 0.0
  55176. .INDENT 3.5
  55177. .sp
  55178. .nf
  55179. .ft C
  55180. foo:
  55181. reg.list:
  55182. \- add: bar
  55183. \- match: my/custom/event
  55184. .ft P
  55185. .fi
  55186. .UNINDENT
  55187. .UNINDENT
  55188. .sp
  55189. When such an event is found, the data found in the payload dictionary key of
  55190. \fBbar\fP will be stored in a register called \fBfoo\fP\&. This register will store
  55191. that data in a \fBlist\fP\&. You may also use \fBreg.set\fP to add data to a \fBset()\fP
  55192. instead.
  55193. .sp
  55194. If you would like to see a copy of the register as it is stored in memory, you
  55195. can use the \fBfile.save\fP function:
  55196. .INDENT 0.0
  55197. .INDENT 3.5
  55198. .sp
  55199. .nf
  55200. .ft C
  55201. myreg:
  55202. file.save
  55203. .ft P
  55204. .fi
  55205. .UNINDENT
  55206. .UNINDENT
  55207. .sp
  55208. In this case, each time the register is updated, a copy will be saved in JSON
  55209. format at \fB/var/cache/salt/master/thorium/saves/myreg\fP\&. If you would like to
  55210. see when particular events are added to a list\-type register, you may add a
  55211. \fBstamp\fP option to \fBreg.list\fP (but not \fBreg.set\fP). With the above two
  55212. stanzas put together, this would look like:
  55213. .INDENT 0.0
  55214. .INDENT 3.5
  55215. .sp
  55216. .nf
  55217. .ft C
  55218. foo:
  55219. reg.list:
  55220. \- add: bar
  55221. \- match: my/custom/event
  55222. \- stamp: True
  55223. myreg:
  55224. file.save
  55225. .ft P
  55226. .fi
  55227. .UNINDENT
  55228. .UNINDENT
  55229. .sp
  55230. If you would like to only keep a certain number of the most recent register
  55231. entries, you may also add a \fBprune\fP option to \fBreg.list\fP (but not
  55232. \fBreg.set\fP):
  55233. .INDENT 0.0
  55234. .INDENT 3.5
  55235. .sp
  55236. .nf
  55237. .ft C
  55238. foo:
  55239. reg.list:
  55240. \- add: bar
  55241. \- match: my/custom/event
  55242. \- stamp: True
  55243. \- prune: 50
  55244. .ft P
  55245. .fi
  55246. .UNINDENT
  55247. .UNINDENT
  55248. .sp
  55249. This example will only keep the 50 most recent entries in the \fBfoo\fP register.
  55250. .SS Using Register Data
  55251. .sp
  55252. Putting data in a register is useless if you don\(aqt do anything with it. The
  55253. \fBcheck\fP module is designed to examine register data and determine whether it
  55254. matches the given parameters. For instance, the \fBcheck.contains\fP function
  55255. will return \fBTrue\fP if the given \fBvalue\fP is contained in the specified
  55256. register:
  55257. .INDENT 0.0
  55258. .INDENT 3.5
  55259. .sp
  55260. .nf
  55261. .ft C
  55262. foo:
  55263. reg.list:
  55264. \- add: bar
  55265. \- match: my/custom/event
  55266. \- stamp: True
  55267. \- prune: 50
  55268. check.contains:
  55269. \- value: somedata
  55270. .ft P
  55271. .fi
  55272. .UNINDENT
  55273. .UNINDENT
  55274. .sp
  55275. Used with a \fBrequire\fP requisite, we can call one of the wrapper modules and
  55276. perform an operation. For example:
  55277. .INDENT 0.0
  55278. .INDENT 3.5
  55279. .sp
  55280. .nf
  55281. .ft C
  55282. shell_test:
  55283. local.cmd:
  55284. \- tgt: dufresne
  55285. \- func: cmd.run
  55286. \- arg:
  55287. \- echo \(aqthorium success\(aq > /tmp/thorium.txt
  55288. \- require:
  55289. \- check: foo
  55290. .ft P
  55291. .fi
  55292. .UNINDENT
  55293. .UNINDENT
  55294. .sp
  55295. This stanza will only run if the \fBcheck.contains\fP function under the \fBfoo\fP
  55296. ID returns true (meaning the match was found).
  55297. .sp
  55298. There are a number of other functions in the \fBcheck\fP module which use
  55299. different means of comparing values:
  55300. .INDENT 0.0
  55301. .IP \(bu 2
  55302. \fBgt\fP: Check whether the register entry is greater than the given value
  55303. .IP \(bu 2
  55304. \fBgte\fP: Check whether the register entry is greater than or equal to the given value
  55305. .IP \(bu 2
  55306. \fBlt\fP: Check whether the register entry is less than the given value
  55307. .IP \(bu 2
  55308. \fBlte\fP: Check whether the register entry is less than or equal to the given value
  55309. .IP \(bu 2
  55310. \fBeq\fP: Check whether the register entry is equal to the given value
  55311. .IP \(bu 2
  55312. \fBne\fP: Check whether the register entry is not equal to the given value
  55313. .UNINDENT
  55314. .sp
  55315. There is also a function called \fBcheck.event\fP which does not examine the
  55316. register. Instead, it looks directly at an event as it is coming in on the
  55317. event bus, and returns \fBTrue\fP if that event\(aqs tag matches. For example:
  55318. .INDENT 0.0
  55319. .INDENT 3.5
  55320. .sp
  55321. .nf
  55322. .ft C
  55323. salt/foo/*/bar:
  55324. check.event
  55325. run_remote_ex:
  55326. local.cmd:
  55327. \- tgt: \(aq*\(aq
  55328. \- func: test.version
  55329. \- require:
  55330. \- check: salt/foo/*/bar
  55331. .ft P
  55332. .fi
  55333. .UNINDENT
  55334. .UNINDENT
  55335. .sp
  55336. This formula will look for an event whose tag is \fBsalt/foo/<anything>/bar\fP and
  55337. if it comes in, issue a \fBtest.version\fP to all minions.
  55338. .SS Register Persistence
  55339. .sp
  55340. It is possible to persist the register data to disk when a master is stopped
  55341. gracefully, and reload it from disk when the master starts up again. This
  55342. functionality is provided by the returner subsystem, and is enabled whenever
  55343. any returner containing a \fBload_reg\fP and a \fBsave_reg\fP function is used.
  55344. .SH SALT CLOUD
  55345. .SS Configuration
  55346. .sp
  55347. Salt Cloud provides a powerful interface to interact with cloud hosts. This
  55348. interface is tightly integrated with Salt, and new virtual machines
  55349. are automatically connected to your Salt master after creation.
  55350. .sp
  55351. Since Salt Cloud is designed to be an automated system, most configuration
  55352. is done using the following YAML configuration files:
  55353. .INDENT 0.0
  55354. .IP \(bu 2
  55355. \fB/etc/salt/cloud\fP: The main configuration file, contains global settings
  55356. that apply to all cloud hosts. See Salt Cloud Configuration\&.
  55357. .IP \(bu 2
  55358. \fB/etc/salt/cloud.providers.d/*.conf\fP: Contains settings that configure
  55359. a specific cloud host, such as credentials, region settings, and so on. Since
  55360. configuration varies significantly between each cloud host, a separate file
  55361. should be created for each cloud host. In Salt Cloud, a provider is
  55362. synonymous with a cloud host (Amazon EC2, Google Compute Engine, Rackspace,
  55363. and so on). See \fI\%Provider Specifics\fP\&.
  55364. .IP \(bu 2
  55365. \fB/etc/salt/cloud.profiles.d/*.conf\fP: Contains settings that define
  55366. a specific VM type. A profile defines the systems specs and image, and any
  55367. other settings that are specific to this VM type. Each specific VM type is
  55368. called a profile, and multiple profiles can be defined in a profile file.
  55369. Each profile references a parent provider that defines the cloud host in
  55370. which the VM is created (the provider settings are in the provider
  55371. configuration explained above). Based on your needs, you might define
  55372. different profiles for web servers, database servers, and so on. See VM
  55373. Profiles\&.
  55374. .UNINDENT
  55375. .SS Configuration Inheritance
  55376. .sp
  55377. Configuration settings are inherited in order from the cloud config =>
  55378. providers => profile.
  55379. [image]
  55380. .sp
  55381. For example, if you wanted to use the same image for
  55382. all virtual machines for a specific provider, the image name could be placed in
  55383. the provider file. This value is inherited by all profiles that use that
  55384. provider, but is overridden if a image name is defined in the profile.
  55385. .sp
  55386. Most configuration settings can be defined in any file, the main difference
  55387. being how that setting is inherited.
  55388. .SS QuickStart
  55389. .sp
  55390. The Salt Cloud Quickstart walks you through defining
  55391. a provider, a VM profile, and shows you how to create virtual machines using Salt Cloud.
  55392. .sp
  55393. Note that if you installed Salt via \fI\%Salt Bootstrap\fP, it may not have
  55394. automatically installed salt\-cloud for you. Use your distribution\(aqs package
  55395. manager to install the \fBsalt\-cloud\fP package from the same repo that you
  55396. used to install Salt. These repos will automatically be setup by Salt Bootstrap.
  55397. .sp
  55398. Alternatively, the \fB\-L\fP option can be passed to the \fI\%Salt Bootstrap\fP script when
  55399. installing Salt. The \fB\-L\fP option will install \fBsalt\-cloud\fP and the required
  55400. \fBlibcloud\fP package.
  55401. .SS Using Salt Cloud
  55402. .SS \fBsalt\-cloud\fP
  55403. .sp
  55404. Provision virtual machines in the cloud with Salt
  55405. .SS Synopsis
  55406. .INDENT 0.0
  55407. .INDENT 3.5
  55408. .sp
  55409. .nf
  55410. .ft C
  55411. salt\-cloud \-m /etc/salt/cloud.map
  55412. salt\-cloud \-m /etc/salt/cloud.map NAME
  55413. salt\-cloud \-m /etc/salt/cloud.map NAME1 NAME2
  55414. salt\-cloud \-p PROFILE NAME
  55415. salt\-cloud \-p PROFILE NAME1 NAME2 NAME3 NAME4 NAME5 NAME6
  55416. .ft P
  55417. .fi
  55418. .UNINDENT
  55419. .UNINDENT
  55420. .SS Description
  55421. .sp
  55422. Salt Cloud is the system used to provision virtual machines on various public
  55423. clouds via a cleanly controlled profile and mapping system.
  55424. .SS Options
  55425. .INDENT 0.0
  55426. .TP
  55427. .B \-\-version
  55428. Print the version of Salt that is running.
  55429. .UNINDENT
  55430. .INDENT 0.0
  55431. .TP
  55432. .B \-\-versions\-report
  55433. Show program\(aqs dependencies and version number, and then exit
  55434. .UNINDENT
  55435. .INDENT 0.0
  55436. .TP
  55437. .B \-h, \-\-help
  55438. Show the help message and exit
  55439. .UNINDENT
  55440. .INDENT 0.0
  55441. .TP
  55442. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  55443. The location of the Salt configuration directory. This directory contains
  55444. the configuration files for Salt master and minions. The default location
  55445. on most systems is \fB/etc/salt\fP\&.
  55446. .UNINDENT
  55447. .SS Execution Options
  55448. .INDENT 0.0
  55449. .TP
  55450. .B \-L LOCATION, \-\-location=LOCATION
  55451. Specify which region to connect to.
  55452. .UNINDENT
  55453. .INDENT 0.0
  55454. .TP
  55455. .B \-a ACTION, \-\-action=ACTION
  55456. Perform an action that may be specific to this cloud provider. This
  55457. argument requires one or more instance names to be specified.
  55458. .UNINDENT
  55459. .INDENT 0.0
  55460. .TP
  55461. .B \-f <FUNC\-NAME> <PROVIDER>, \-\-function=<FUNC\-NAME> <PROVIDER>
  55462. Perform an function that may be specific to this cloud provider, that does
  55463. not apply to an instance. This argument requires a provider to be specified
  55464. (i.e.: nova).
  55465. .UNINDENT
  55466. .INDENT 0.0
  55467. .TP
  55468. .B \-p PROFILE, \-\-profile=PROFILE
  55469. Select a single profile to build the named cloud VMs from. The profile must
  55470. be defined in the specified profiles file.
  55471. .UNINDENT
  55472. .INDENT 0.0
  55473. .TP
  55474. .B \-m MAP, \-\-map=MAP
  55475. Specify a map file to use. If used without any other options, this option
  55476. will ensure that all of the mapped VMs are created. If the named VM already
  55477. exists then it will be skipped.
  55478. .UNINDENT
  55479. .INDENT 0.0
  55480. .TP
  55481. .B \-H, \-\-hard
  55482. When specifying a map file, the default behavior is to ensure that all of
  55483. the VMs specified in the map file are created. If the \-\-hard option is
  55484. set, then any VMs that exist on configured cloud providers that are
  55485. not specified in the map file will be destroyed. Be advised that this can
  55486. be a destructive operation and should be used with care.
  55487. .UNINDENT
  55488. .INDENT 0.0
  55489. .TP
  55490. .B \-d, \-\-destroy
  55491. Pass in the name(s) of VMs to destroy, salt\-cloud will search the
  55492. configured cloud providers for the specified names and destroy the
  55493. VMs. Be advised that this is a destructive operation and should be used
  55494. with care. Can be used in conjunction with the \-m option to specify a map
  55495. of VMs to be deleted.
  55496. .UNINDENT
  55497. .INDENT 0.0
  55498. .TP
  55499. .B \-P, \-\-parallel
  55500. Normally when building many cloud VMs they are executed serially. The \-P
  55501. option will run each cloud vm build in a separate process allowing for
  55502. large groups of VMs to be build at once.
  55503. .sp
  55504. Be advised that some cloud provider\(aqs systems don\(aqt seem to be well suited
  55505. for this influx of vm creation. When creating large groups of VMs watch the
  55506. cloud provider carefully.
  55507. .UNINDENT
  55508. .INDENT 0.0
  55509. .TP
  55510. .B \-u, \-\-update\-bootstrap
  55511. Update salt\-bootstrap to the latest stable bootstrap release.
  55512. .UNINDENT
  55513. .INDENT 0.0
  55514. .TP
  55515. .B \-y, \-\-assume\-yes
  55516. Default yes in answer to all confirmation questions.
  55517. .UNINDENT
  55518. .INDENT 0.0
  55519. .TP
  55520. .B \-k, \-\-keep\-tmp
  55521. Do not remove files from /tmp/ after deploy.sh finishes.
  55522. .UNINDENT
  55523. .INDENT 0.0
  55524. .TP
  55525. .B \-\-show\-deploy\-args
  55526. Include the options used to deploy the minion in the data returned.
  55527. .UNINDENT
  55528. .INDENT 0.0
  55529. .TP
  55530. .B \-\-script\-args=SCRIPT_ARGS
  55531. Script arguments to be fed to the bootstrap script when deploying the VM.
  55532. .UNINDENT
  55533. .SS Query Options
  55534. .INDENT 0.0
  55535. .TP
  55536. .B \-Q, \-\-query
  55537. Execute a query and return some information about the nodes running on
  55538. configured cloud providers
  55539. .UNINDENT
  55540. .INDENT 0.0
  55541. .TP
  55542. .B \-F, \-\-full\-query
  55543. Execute a query and print out all available information about all cloud VMs.
  55544. Can be used in conjunction with \-m to display only information about the
  55545. specified map.
  55546. .UNINDENT
  55547. .INDENT 0.0
  55548. .TP
  55549. .B \-S, \-\-select\-query
  55550. Execute a query and print out selected information about all cloud VMs.
  55551. Can be used in conjunction with \-m to display only information about the
  55552. specified map.
  55553. .UNINDENT
  55554. .INDENT 0.0
  55555. .TP
  55556. .B \-\-list\-providers
  55557. Display a list of configured providers.
  55558. .UNINDENT
  55559. .INDENT 0.0
  55560. .TP
  55561. .B \-\-list\-profiles
  55562. New in version 2014.7.0.
  55563. .sp
  55564. Display a list of configured profiles. Pass in a cloud provider to view
  55565. the provider\(aqs associated profiles, such as \fBdigitalocean\fP, or pass in
  55566. \fBall\fP to list all the configured profiles.
  55567. .UNINDENT
  55568. .SS Cloud Providers Listings
  55569. .INDENT 0.0
  55570. .TP
  55571. .B \-\-list\-locations=LIST_LOCATIONS
  55572. Display a list of locations available in configured cloud providers. Pass
  55573. the cloud provider that available locations are desired on, such as "linode",
  55574. or pass "all" to list locations for all configured cloud providers
  55575. .UNINDENT
  55576. .INDENT 0.0
  55577. .TP
  55578. .B \-\-list\-images=LIST_IMAGES
  55579. Display a list of images available in configured cloud providers. Pass the
  55580. cloud provider that available images are desired on, such as "linode", or pass
  55581. "all" to list images for all configured cloud providers
  55582. .UNINDENT
  55583. .INDENT 0.0
  55584. .TP
  55585. .B \-\-list\-sizes=LIST_SIZES
  55586. Display a list of sizes available in configured cloud providers. Pass the
  55587. cloud provider that available sizes are desired on, such as "AWS", or pass
  55588. "all" to list sizes for all configured cloud providers
  55589. .UNINDENT
  55590. .SS Cloud Credentials
  55591. .INDENT 0.0
  55592. .TP
  55593. .B \-\-set\-password=<USERNAME> <PROVIDER>
  55594. Configure password for a cloud provider and save it to the keyring.
  55595. PROVIDER can be specified with or without a driver, for example:
  55596. "\-\-set\-password bob rackspace" or more specific "\-\-set\-password bob
  55597. rackspace:openstack" DEPRECATED!
  55598. .UNINDENT
  55599. .SS Output Options
  55600. .INDENT 0.0
  55601. .TP
  55602. .B \-\-out
  55603. Pass in an alternative outputter to display the return of data. This
  55604. outputter can be any of the available outputters:
  55605. .INDENT 7.0
  55606. .INDENT 3.5
  55607. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  55608. .UNINDENT
  55609. .UNINDENT
  55610. .sp
  55611. Some outputters are formatted only for data returned from specific functions.
  55612. If an outputter is used that does not support the data passed into it, then
  55613. Salt will fall back on the \fBpprint\fP outputter and display the return data
  55614. using the Python \fBpprint\fP standard library module.
  55615. .UNINDENT
  55616. .INDENT 0.0
  55617. .TP
  55618. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  55619. Print the output indented by the provided value in spaces. Negative values
  55620. disable indentation. Only applicable in outputters that support
  55621. indentation.
  55622. .UNINDENT
  55623. .INDENT 0.0
  55624. .TP
  55625. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  55626. Write the output to the specified file.
  55627. .UNINDENT
  55628. .INDENT 0.0
  55629. .TP
  55630. .B \-\-out\-file\-append, \-\-output\-file\-append
  55631. Append the output to the specified file.
  55632. .UNINDENT
  55633. .INDENT 0.0
  55634. .TP
  55635. .B \-\-no\-color
  55636. Disable all colored output
  55637. .UNINDENT
  55638. .INDENT 0.0
  55639. .TP
  55640. .B \-\-force\-color
  55641. Force colored output
  55642. .sp
  55643. \fBNOTE:\fP
  55644. .INDENT 7.0
  55645. .INDENT 3.5
  55646. When using colored output the color codes are as follows:
  55647. .sp
  55648. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  55649. changes and success and \fByellow\fP denotes a expected future change in configuration.
  55650. .UNINDENT
  55651. .UNINDENT
  55652. .UNINDENT
  55653. .INDENT 0.0
  55654. .TP
  55655. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  55656. Override the configured state_output value for minion
  55657. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  55658. \(aqfilter\(aq. Default: \(aqnone\(aq.
  55659. .UNINDENT
  55660. .INDENT 0.0
  55661. .TP
  55662. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  55663. Override the configured state_verbose value for minion
  55664. output. Set to True or False. Default: none.
  55665. .UNINDENT
  55666. .SS Examples
  55667. .sp
  55668. To create 4 VMs named web1, web2, db1, and db2 from specified profiles:
  55669. .INDENT 0.0
  55670. .INDENT 3.5
  55671. .sp
  55672. .nf
  55673. .ft C
  55674. salt\-cloud \-p fedora_rackspace web1 web2 db1 db2
  55675. .ft P
  55676. .fi
  55677. .UNINDENT
  55678. .UNINDENT
  55679. .sp
  55680. To read in a map file and create all VMs specified therein:
  55681. .INDENT 0.0
  55682. .INDENT 3.5
  55683. .sp
  55684. .nf
  55685. .ft C
  55686. salt\-cloud \-m /path/to/cloud.map
  55687. .ft P
  55688. .fi
  55689. .UNINDENT
  55690. .UNINDENT
  55691. .sp
  55692. To read in a map file and create all VMs specified therein in parallel:
  55693. .INDENT 0.0
  55694. .INDENT 3.5
  55695. .sp
  55696. .nf
  55697. .ft C
  55698. salt\-cloud \-m /path/to/cloud.map \-P
  55699. .ft P
  55700. .fi
  55701. .UNINDENT
  55702. .UNINDENT
  55703. .sp
  55704. To delete any VMs specified in the map file:
  55705. .INDENT 0.0
  55706. .INDENT 3.5
  55707. .sp
  55708. .nf
  55709. .ft C
  55710. salt\-cloud \-m /path/to/cloud.map \-d
  55711. .ft P
  55712. .fi
  55713. .UNINDENT
  55714. .UNINDENT
  55715. .sp
  55716. To delete any VMs NOT specified in the map file:
  55717. .INDENT 0.0
  55718. .INDENT 3.5
  55719. .sp
  55720. .nf
  55721. .ft C
  55722. salt\-cloud \-m /path/to/cloud.map \-H
  55723. .ft P
  55724. .fi
  55725. .UNINDENT
  55726. .UNINDENT
  55727. .sp
  55728. To display the status of all VMs specified in the map file:
  55729. .INDENT 0.0
  55730. .INDENT 3.5
  55731. .sp
  55732. .nf
  55733. .ft C
  55734. salt\-cloud \-m /path/to/cloud.map \-Q
  55735. .ft P
  55736. .fi
  55737. .UNINDENT
  55738. .UNINDENT
  55739. .SS See also
  55740. .sp
  55741. \fBsalt\-cloud(7)\fP
  55742. \fBsalt(7)\fP
  55743. \fBsalt\-master(1)\fP
  55744. \fBsalt\-minion(1)\fP
  55745. .SS Salt Cloud basic usage
  55746. .sp
  55747. Salt Cloud needs, at least, one configured
  55748. Provider
  55749. and Profile to be functional.
  55750. .SS Creating a VM
  55751. .sp
  55752. To create a VM with salt cloud, use command:
  55753. .INDENT 0.0
  55754. .INDENT 3.5
  55755. .sp
  55756. .nf
  55757. .ft C
  55758. salt\-cloud \-p <profile> name_of_vm
  55759. .ft P
  55760. .fi
  55761. .UNINDENT
  55762. .UNINDENT
  55763. .sp
  55764. Assuming there is a profile configured as following:
  55765. .INDENT 0.0
  55766. .INDENT 3.5
  55767. .sp
  55768. .nf
  55769. .ft C
  55770. fedora_rackspace:
  55771. provider: my\-rackspace\-config
  55772. image: Fedora 17
  55773. size: 256 server
  55774. script: bootstrap\-salt
  55775. .ft P
  55776. .fi
  55777. .UNINDENT
  55778. .UNINDENT
  55779. .sp
  55780. Then, the command to create new VM named \fBfedora_http_01\fP is:
  55781. .INDENT 0.0
  55782. .INDENT 3.5
  55783. .sp
  55784. .nf
  55785. .ft C
  55786. salt\-cloud \-p fedora_rackspace fedora_http_01
  55787. .ft P
  55788. .fi
  55789. .UNINDENT
  55790. .UNINDENT
  55791. .SS Destroying a VM
  55792. .sp
  55793. To destroy a created\-by\-salt\-cloud VM, use command:
  55794. .INDENT 0.0
  55795. .INDENT 3.5
  55796. .sp
  55797. .nf
  55798. .ft C
  55799. salt\-cloud \-d name_of_vm
  55800. .ft P
  55801. .fi
  55802. .UNINDENT
  55803. .UNINDENT
  55804. .sp
  55805. For example, to delete the VM created on above example, use:
  55806. .INDENT 0.0
  55807. .INDENT 3.5
  55808. .sp
  55809. .nf
  55810. .ft C
  55811. salt\-cloud \-d fedora_http_01
  55812. .ft P
  55813. .fi
  55814. .UNINDENT
  55815. .UNINDENT
  55816. .SS VM Profiles
  55817. .sp
  55818. Salt cloud designates virtual machines inside the profile configuration file.
  55819. The profile configuration file defaults to \fB/etc/salt/cloud.profiles\fP and is
  55820. a yaml configuration. The syntax for declaring profiles is simple:
  55821. .INDENT 0.0
  55822. .INDENT 3.5
  55823. .sp
  55824. .nf
  55825. .ft C
  55826. fedora_rackspace:
  55827. provider: my\-rackspace\-config
  55828. image: Fedora 17
  55829. size: 256 server
  55830. script: bootstrap\-salt
  55831. .ft P
  55832. .fi
  55833. .UNINDENT
  55834. .UNINDENT
  55835. .sp
  55836. It should be noted that the \fBscript\fP option defaults to \fBbootstrap\-salt\fP,
  55837. and does not normally need to be specified. Further examples in this document
  55838. will not show the \fBscript\fP option.
  55839. .sp
  55840. A few key pieces of information need to be declared and can change based on the
  55841. cloud provider. A number of additional parameters can also be inserted:
  55842. .INDENT 0.0
  55843. .INDENT 3.5
  55844. .sp
  55845. .nf
  55846. .ft C
  55847. centos_rackspace:
  55848. provider: my\-rackspace\-config
  55849. image: CentOS 6.2
  55850. size: 1024 server
  55851. minion:
  55852. master: salt.example.com
  55853. append_domain: webs.example.com
  55854. grains:
  55855. role: webserver
  55856. .ft P
  55857. .fi
  55858. .UNINDENT
  55859. .UNINDENT
  55860. .sp
  55861. The image must be selected from available images. Similarly, sizes must be
  55862. selected from the list of sizes. To get a list of available images and sizes
  55863. use the following command:
  55864. .INDENT 0.0
  55865. .INDENT 3.5
  55866. .sp
  55867. .nf
  55868. .ft C
  55869. salt\-cloud \-\-list\-images openstack
  55870. salt\-cloud \-\-list\-sizes openstack
  55871. .ft P
  55872. .fi
  55873. .UNINDENT
  55874. .UNINDENT
  55875. .sp
  55876. Some parameters can be specified in the main Salt cloud configuration file and
  55877. then are applied to all cloud profiles. For instance if only a single cloud
  55878. provider is being used then the provider option can be declared in the Salt
  55879. cloud configuration file.
  55880. .SS Multiple Configuration Files
  55881. .sp
  55882. In addition to \fB/etc/salt/cloud.profiles\fP, profiles can also be specified in
  55883. any file matching \fBcloud.profiles.d/*conf\fP which is a sub\-directory relative
  55884. to the profiles configuration file(with the above configuration file as an
  55885. example, \fB/etc/salt/cloud.profiles.d/*.conf\fP). This allows for more
  55886. extensible configuration, and plays nicely with various configuration
  55887. management tools as well as version control systems.
  55888. .SS Larger Example
  55889. .INDENT 0.0
  55890. .INDENT 3.5
  55891. .sp
  55892. .nf
  55893. .ft C
  55894. rhel_ec2:
  55895. provider: my\-ec2\-config
  55896. image: ami\-e565ba8c
  55897. size: t1.micro
  55898. minion:
  55899. cheese: edam
  55900. ubuntu_ec2:
  55901. provider: my\-ec2\-config
  55902. image: ami\-7e2da54e
  55903. size: t1.micro
  55904. minion:
  55905. cheese: edam
  55906. ubuntu_rackspace:
  55907. provider: my\-rackspace\-config
  55908. image: Ubuntu 12.04 LTS
  55909. size: 256 server
  55910. minion:
  55911. cheese: edam
  55912. fedora_rackspace:
  55913. provider: my\-rackspace\-config
  55914. image: Fedora 17
  55915. size: 256 server
  55916. minion:
  55917. cheese: edam
  55918. cent_linode:
  55919. provider: my\-linode\-config
  55920. image: CentOS 6.2 64bit
  55921. size: Linode 512
  55922. cent_gogrid:
  55923. provider: my\-gogrid\-config
  55924. image: 12834
  55925. size: 512MB
  55926. cent_joyent:
  55927. provider: my\-joyent\-config
  55928. image: centos\-7
  55929. size: g4\-highram\-16G
  55930. .ft P
  55931. .fi
  55932. .UNINDENT
  55933. .UNINDENT
  55934. .SS Cloud Map File
  55935. .sp
  55936. A number of options exist when creating virtual machines. They can be managed
  55937. directly from profiles and the command line execution, or a more complex map
  55938. file can be created. The map file allows for a number of virtual machines to
  55939. be created and associated with specific profiles. The map file is designed to
  55940. be run once to create these more complex scenarios using salt\-cloud.
  55941. .sp
  55942. Map files have a simple format, specify a profile and then a list of virtual
  55943. machines to make from said profile:
  55944. .INDENT 0.0
  55945. .INDENT 3.5
  55946. .sp
  55947. .nf
  55948. .ft C
  55949. fedora_small:
  55950. \- web1
  55951. \- web2
  55952. \- web3
  55953. fedora_high:
  55954. \- redis1
  55955. \- redis2
  55956. \- redis3
  55957. cent_high:
  55958. \- riak1
  55959. \- riak2
  55960. \- riak3
  55961. .ft P
  55962. .fi
  55963. .UNINDENT
  55964. .UNINDENT
  55965. .sp
  55966. This map file can then be called to roll out all of these virtual machines. Map
  55967. files are called from the salt\-cloud command with the \-m option:
  55968. .INDENT 0.0
  55969. .INDENT 3.5
  55970. .sp
  55971. .nf
  55972. .ft C
  55973. $ salt\-cloud \-m /path/to/mapfile
  55974. .ft P
  55975. .fi
  55976. .UNINDENT
  55977. .UNINDENT
  55978. .sp
  55979. Remember, that as with direct profile provisioning the \-P option can be passed
  55980. to create the virtual machines in parallel:
  55981. .INDENT 0.0
  55982. .INDENT 3.5
  55983. .sp
  55984. .nf
  55985. .ft C
  55986. $ salt\-cloud \-m /path/to/mapfile \-P
  55987. .ft P
  55988. .fi
  55989. .UNINDENT
  55990. .UNINDENT
  55991. .sp
  55992. \fBNOTE:\fP
  55993. .INDENT 0.0
  55994. .INDENT 3.5
  55995. Due to limitations in the GoGrid API, instances cannot be provisioned in parallel
  55996. with the GoGrid driver. Map files will work with GoGrid, but the \fB\-P\fP
  55997. argument should not be used on maps referencing GoGrid instances.
  55998. .UNINDENT
  55999. .UNINDENT
  56000. .sp
  56001. A map file can also be enforced to represent the total state of a cloud
  56002. deployment by using the \fB\-\-hard\fP option. When using the hard option any vms
  56003. that exist but are not specified in the map file will be destroyed:
  56004. .INDENT 0.0
  56005. .INDENT 3.5
  56006. .sp
  56007. .nf
  56008. .ft C
  56009. $ salt\-cloud \-m /path/to/mapfile \-P \-H
  56010. .ft P
  56011. .fi
  56012. .UNINDENT
  56013. .UNINDENT
  56014. .sp
  56015. Be careful with this argument, it is very dangerous! In fact, it is so
  56016. dangerous that in order to use it, you must explicitly enable it in the main
  56017. configuration file.
  56018. .INDENT 0.0
  56019. .INDENT 3.5
  56020. .sp
  56021. .nf
  56022. .ft C
  56023. enable_hard_maps: True
  56024. .ft P
  56025. .fi
  56026. .UNINDENT
  56027. .UNINDENT
  56028. .sp
  56029. A map file can include grains and minion configuration options:
  56030. .INDENT 0.0
  56031. .INDENT 3.5
  56032. .sp
  56033. .nf
  56034. .ft C
  56035. fedora_small:
  56036. \- web1:
  56037. minion:
  56038. log_level: debug
  56039. grains:
  56040. cheese: tasty
  56041. omelet: du fromage
  56042. \- web2:
  56043. minion:
  56044. log_level: warn
  56045. grains:
  56046. cheese: more tasty
  56047. omelet: with peppers
  56048. .ft P
  56049. .fi
  56050. .UNINDENT
  56051. .UNINDENT
  56052. .sp
  56053. Any top level data element from your profile may be overridden in the map file:
  56054. .INDENT 0.0
  56055. .INDENT 3.5
  56056. .sp
  56057. .nf
  56058. .ft C
  56059. fedora_small:
  56060. \- web1:
  56061. size: t2.micro
  56062. \- web2:
  56063. size: t2.nano
  56064. .ft P
  56065. .fi
  56066. .UNINDENT
  56067. .UNINDENT
  56068. .sp
  56069. As of Salt 2017.7.0, nested elements are merged, and can can be specified
  56070. individually without having to repeat the complete definition for each top
  56071. level data element. In this example a separate MAC is assigned to each VMware
  56072. instance while inheriting device parameters for for disk and network
  56073. configuration:
  56074. .INDENT 0.0
  56075. .INDENT 3.5
  56076. .sp
  56077. .nf
  56078. .ft C
  56079. nyc\-vm:
  56080. \- db1:
  56081. devices:
  56082. network:
  56083. Network Adapter 1:
  56084. mac: \(aq44:44:44:44:44:41\(aq
  56085. \- db2:
  56086. devices:
  56087. network:
  56088. Network Adapter 1:
  56089. mac: \(aq44:44:44:44:44:42\(aq
  56090. .ft P
  56091. .fi
  56092. .UNINDENT
  56093. .UNINDENT
  56094. .sp
  56095. A map file may also be used with the various query options:
  56096. .INDENT 0.0
  56097. .INDENT 3.5
  56098. .sp
  56099. .nf
  56100. .ft C
  56101. $ salt\-cloud \-m /path/to/mapfile \-Q
  56102. {\(aqec2\(aq: {\(aqweb1\(aq: {\(aqid\(aq: \(aqi\-e6aqfegb\(aq,
  56103. \(aqimage\(aq: None,
  56104. \(aqprivate_ips\(aq: [],
  56105. \(aqpublic_ips\(aq: [],
  56106. \(aqsize\(aq: None,
  56107. \(aqstate\(aq: 0}},
  56108. \(aqweb2\(aq: {\(aqAbsent\(aq}}
  56109. .ft P
  56110. .fi
  56111. .UNINDENT
  56112. .UNINDENT
  56113. .sp
  56114. \&...or with the delete option:
  56115. .INDENT 0.0
  56116. .INDENT 3.5
  56117. .sp
  56118. .nf
  56119. .ft C
  56120. $ salt\-cloud \-m /path/to/mapfile \-d
  56121. The following virtual machines are set to be destroyed:
  56122. web1
  56123. web2
  56124. Proceed? [N/y]
  56125. .ft P
  56126. .fi
  56127. .UNINDENT
  56128. .UNINDENT
  56129. .sp
  56130. \fBWARNING:\fP
  56131. .INDENT 0.0
  56132. .INDENT 3.5
  56133. Specifying Nodes with Maps on the Command Line
  56134. Specifying the name of a node or nodes with the maps options on the command
  56135. line is \fInot\fP supported. This is especially important to remember when
  56136. using \fB\-\-destroy\fP with maps; \fBsalt\-cloud\fP will ignore any arguments
  56137. passed in which are not directly relevant to the map file. \fIWhen using
  56138. \(ga\(ga\-\-destroy\(ga\(ga with a map, every node in the map file will be deleted!\fP
  56139. Maps don\(aqt provide any useful information for destroying individual nodes,
  56140. and should not be used to destroy a subset of a map.
  56141. .UNINDENT
  56142. .UNINDENT
  56143. .SS Setting up New Salt Masters
  56144. .sp
  56145. Bootstrapping a new master in the map is as simple as:
  56146. .INDENT 0.0
  56147. .INDENT 3.5
  56148. .sp
  56149. .nf
  56150. .ft C
  56151. fedora_small:
  56152. \- web1:
  56153. make_master: True
  56154. \- web2
  56155. \- web3
  56156. .ft P
  56157. .fi
  56158. .UNINDENT
  56159. .UNINDENT
  56160. .sp
  56161. Notice that \fBALL\fP bootstrapped minions from the map will answer to the newly
  56162. created salt\-master.
  56163. .sp
  56164. To make any of the bootstrapped minions answer to the bootstrapping salt\-master
  56165. as opposed to the newly created salt\-master, as an example:
  56166. .INDENT 0.0
  56167. .INDENT 3.5
  56168. .sp
  56169. .nf
  56170. .ft C
  56171. fedora_small:
  56172. \- web1:
  56173. make_master: True
  56174. minion:
  56175. master: <the local master ip address>
  56176. local_master: True
  56177. \- web2
  56178. \- web3
  56179. .ft P
  56180. .fi
  56181. .UNINDENT
  56182. .UNINDENT
  56183. .sp
  56184. The above says the minion running on the newly created salt\-master responds to
  56185. the local master, ie, the master used to bootstrap these VMs.
  56186. .sp
  56187. Another example:
  56188. .INDENT 0.0
  56189. .INDENT 3.5
  56190. .sp
  56191. .nf
  56192. .ft C
  56193. fedora_small:
  56194. \- web1:
  56195. make_master: True
  56196. \- web2
  56197. \- web3:
  56198. minion:
  56199. master: <the local master ip address>
  56200. local_master: True
  56201. .ft P
  56202. .fi
  56203. .UNINDENT
  56204. .UNINDENT
  56205. .sp
  56206. The above example makes the \fBweb3\fP minion answer to the local master, not the
  56207. newly created master.
  56208. .SS Using Direct Map Data
  56209. .sp
  56210. When using modules that access the \fBCloudClient\fP directly (notably, the
  56211. \fBcloud\fP execution and runner modules), it is possible to pass in the contents
  56212. of a map file, rather than a path to the location of the map file.
  56213. .sp
  56214. Normally when using these modules, the path to the map file is passed in using:
  56215. .INDENT 0.0
  56216. .INDENT 3.5
  56217. .sp
  56218. .nf
  56219. .ft C
  56220. salt\-run cloud.map_run /path/to/cloud.map
  56221. .ft P
  56222. .fi
  56223. .UNINDENT
  56224. .UNINDENT
  56225. .sp
  56226. To pass in the actual map data, use the \fBmap_data\fP argument:
  56227. .INDENT 0.0
  56228. .INDENT 3.5
  56229. .sp
  56230. .nf
  56231. .ft C
  56232. salt\-run cloud.map_run map_data=\(aq{"centos7": [{"saltmaster": {"minion": \e
  56233. {"transport": "tcp"}, "make_master": true, "master": {"transport": \e
  56234. "tcp"}}}, {"minion001": {"minion": {"transport": "tcp"}}}]}\(aq
  56235. .ft P
  56236. .fi
  56237. .UNINDENT
  56238. .UNINDENT
  56239. .SS Cloud Actions
  56240. .sp
  56241. Once a VM has been created, there are a number of actions that can be performed
  56242. on it. The "reboot" action can be used across all providers, but all other
  56243. actions are specific to the cloud provider. In order to perform an action, you
  56244. may specify it from the command line, including the name(s) of the VM to
  56245. perform the action on:
  56246. .INDENT 0.0
  56247. .INDENT 3.5
  56248. .sp
  56249. .nf
  56250. .ft C
  56251. $ salt\-cloud \-a reboot vm_name
  56252. $ salt\-cloud \-a reboot vm1 vm2 vm2
  56253. .ft P
  56254. .fi
  56255. .UNINDENT
  56256. .UNINDENT
  56257. .sp
  56258. Or you may specify a map which includes all VMs to perform the action on:
  56259. .INDENT 0.0
  56260. .INDENT 3.5
  56261. .sp
  56262. .nf
  56263. .ft C
  56264. $ salt\-cloud \-a reboot \-m /path/to/mapfile
  56265. .ft P
  56266. .fi
  56267. .UNINDENT
  56268. .UNINDENT
  56269. .sp
  56270. The following is an example list of actions currently supported by \fBsalt\-cloud\fP:
  56271. .INDENT 0.0
  56272. .INDENT 3.5
  56273. .sp
  56274. .nf
  56275. .ft C
  56276. all providers:
  56277. \- reboot
  56278. ec2:
  56279. \- start
  56280. \- stop
  56281. joyent:
  56282. \- stop
  56283. linode:
  56284. \- start
  56285. \- stop
  56286. .ft P
  56287. .fi
  56288. .UNINDENT
  56289. .UNINDENT
  56290. .sp
  56291. Another useful reference for viewing more \fBsalt\-cloud\fP actions is the
  56292. Salt Cloud Feature Matrix\&.
  56293. .SS Cloud Functions
  56294. .sp
  56295. Cloud functions work much the same way as cloud actions, except that they don\(aqt
  56296. perform an operation on a specific instance, and so do not need a machine name
  56297. to be specified. However, since they perform an operation on a specific cloud
  56298. provider, that provider must be specified.
  56299. .INDENT 0.0
  56300. .INDENT 3.5
  56301. .sp
  56302. .nf
  56303. .ft C
  56304. $ salt\-cloud \-f show_image ec2 image=ami\-fd20ad94
  56305. .ft P
  56306. .fi
  56307. .UNINDENT
  56308. .UNINDENT
  56309. .sp
  56310. There are three universal salt\-cloud functions that are extremely useful for
  56311. gathering information about instances on a provider basis:
  56312. .INDENT 0.0
  56313. .IP \(bu 2
  56314. \fBlist_nodes\fP: Returns some general information about the instances for the given provider.
  56315. .IP \(bu 2
  56316. \fBlist_nodes_full\fP: Returns all information about the instances for the given provider.
  56317. .IP \(bu 2
  56318. \fBlist_nodes_select\fP: Returns select information about the instances for the given provider.
  56319. .UNINDENT
  56320. .INDENT 0.0
  56321. .INDENT 3.5
  56322. .sp
  56323. .nf
  56324. .ft C
  56325. $ salt\-cloud \-f list_nodes linode
  56326. $ salt\-cloud \-f list_nodes_full linode
  56327. $ salt\-cloud \-f list_nodes_select linode
  56328. .ft P
  56329. .fi
  56330. .UNINDENT
  56331. .UNINDENT
  56332. .sp
  56333. Another useful reference for viewing \fBsalt\-cloud\fP functions is the
  56334. Salt Cloud Feature Matrix\&.
  56335. .SS Core Configuration
  56336. .SS Install Salt Cloud
  56337. .sp
  56338. Salt Cloud is now part of Salt proper. It was merged in as of
  56339. Salt version 2014.1.0\&.
  56340. .sp
  56341. On Ubuntu, install Salt Cloud by using following command:
  56342. .INDENT 0.0
  56343. .INDENT 3.5
  56344. .sp
  56345. .nf
  56346. .ft C
  56347. sudo add\-apt\-repository ppa:saltstack/salt
  56348. sudo apt\-get update
  56349. sudo apt\-get install salt\-cloud
  56350. .ft P
  56351. .fi
  56352. .UNINDENT
  56353. .UNINDENT
  56354. .sp
  56355. If using Salt Cloud on macOS, \fBcurl\-ca\-bundle\fP must be installed. Presently,
  56356. this package is not available via \fBbrew\fP, but it is available using MacPorts:
  56357. .INDENT 0.0
  56358. .INDENT 3.5
  56359. .sp
  56360. .nf
  56361. .ft C
  56362. sudo port install curl\-ca\-bundle
  56363. .ft P
  56364. .fi
  56365. .UNINDENT
  56366. .UNINDENT
  56367. .sp
  56368. Salt Cloud depends on \fBapache\-libcloud\fP\&. Libcloud can be installed via pip
  56369. with \fBpip install apache\-libcloud\fP\&.
  56370. .SS Installing Salt Cloud for development
  56371. .sp
  56372. Installing Salt for development enables Salt Cloud development as well, just
  56373. make sure \fBapache\-libcloud\fP is installed as per above paragraph.
  56374. .sp
  56375. See these instructions: Installing Salt for development\&.
  56376. .SS Core Configuration
  56377. .sp
  56378. A number of core configuration options and some options that are global to the
  56379. VM profiles can be set in the cloud configuration file. By default this file is
  56380. located at \fB/etc/salt/cloud\fP\&.
  56381. .SS Thread Pool Size
  56382. .sp
  56383. When salt cloud is operating in parallel mode via the \fB\-P\fP argument, you can
  56384. control the thread pool size by specifying the \fBpool_size\fP parameter with
  56385. a positive integer value.
  56386. .sp
  56387. By default, the thread pool size will be set to the number of VMs that salt
  56388. cloud is operating on.
  56389. .INDENT 0.0
  56390. .INDENT 3.5
  56391. .sp
  56392. .nf
  56393. .ft C
  56394. pool_size: 10
  56395. .ft P
  56396. .fi
  56397. .UNINDENT
  56398. .UNINDENT
  56399. .SS Minion Configuration
  56400. .sp
  56401. The default minion configuration is set up in this file. Minions created by
  56402. salt\-cloud derive their configuration from this file. Almost all parameters
  56403. found in Configuring the Salt Minion can be
  56404. used here.
  56405. .INDENT 0.0
  56406. .INDENT 3.5
  56407. .sp
  56408. .nf
  56409. .ft C
  56410. minion:
  56411. master: saltmaster.example.com
  56412. .ft P
  56413. .fi
  56414. .UNINDENT
  56415. .UNINDENT
  56416. .sp
  56417. In particular, this is the location to specify the location of the salt master
  56418. and its listening port, if the port is not set to the default.
  56419. .sp
  56420. Similar to most other settings, Minion configuration settings are inherited
  56421. across configuration files. For example, the master setting might be contained
  56422. in the main \fBcloud\fP configuration file as demonstrated above, but additional
  56423. settings can be placed in the provider, profile or map configuration files:
  56424. .INDENT 0.0
  56425. .INDENT 3.5
  56426. .sp
  56427. .nf
  56428. .ft C
  56429. ec2\-web:
  56430. size: t1.micro
  56431. minion:
  56432. environment: test
  56433. startup_states: sls
  56434. sls_list:
  56435. \- web
  56436. .ft P
  56437. .fi
  56438. .UNINDENT
  56439. .UNINDENT
  56440. .sp
  56441. When salt cloud creates a new minion, it can automatically add grain information
  56442. to the minion configuration file identifying the sources originally used
  56443. to define it.
  56444. .sp
  56445. The generated grain information will appear similar to:
  56446. .INDENT 0.0
  56447. .INDENT 3.5
  56448. .sp
  56449. .nf
  56450. .ft C
  56451. grains:
  56452. salt\-cloud:
  56453. driver: ec2
  56454. provider: my_ec2:ec2
  56455. profile: ec2\-web
  56456. .ft P
  56457. .fi
  56458. .UNINDENT
  56459. .UNINDENT
  56460. .sp
  56461. The generation of the salt\-cloud grain can be suppressed by the
  56462. option \fBenable_cloud_grains: \(aqFalse\(aq\fP in the cloud configuration file.
  56463. .SS Cloud Configuration Syntax
  56464. .sp
  56465. The data specific to interacting with public clouds is set up here\&.
  56466. .sp
  56467. Cloud provider configuration settings can live in several places. The first is in
  56468. \fB/etc/salt/cloud\fP:
  56469. .INDENT 0.0
  56470. .INDENT 3.5
  56471. .sp
  56472. .nf
  56473. .ft C
  56474. # /etc/salt/cloud
  56475. providers:
  56476. my\-aws\-migrated\-config:
  56477. id: HJGRYCILJLKJYG
  56478. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56479. keyname: test
  56480. securitygroup: quick\-start
  56481. private_key: /root/test.pem
  56482. driver: ec2
  56483. .ft P
  56484. .fi
  56485. .UNINDENT
  56486. .UNINDENT
  56487. .sp
  56488. Cloud provider configuration data can also be housed in \fB/etc/salt/cloud.providers\fP
  56489. or any file matching \fB/etc/salt/cloud.providers.d/*.conf\fP\&. All files in any of these
  56490. locations will be parsed for cloud provider data.
  56491. .sp
  56492. Using the example configuration above:
  56493. .INDENT 0.0
  56494. .INDENT 3.5
  56495. .sp
  56496. .nf
  56497. .ft C
  56498. # /etc/salt/cloud.providers
  56499. # or could be /etc/salt/cloud.providers.d/*.conf
  56500. my\-aws\-config:
  56501. id: HJGRYCILJLKJYG
  56502. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56503. keyname: test
  56504. securitygroup: quick\-start
  56505. private_key: /root/test.pem
  56506. driver: ec2
  56507. .ft P
  56508. .fi
  56509. .UNINDENT
  56510. .UNINDENT
  56511. .sp
  56512. \fBNOTE:\fP
  56513. .INDENT 0.0
  56514. .INDENT 3.5
  56515. Salt Cloud provider configurations within \fB/etc/cloud.provider.d/\fP should not
  56516. specify the \fBproviders\fP starting key.
  56517. .UNINDENT
  56518. .UNINDENT
  56519. .sp
  56520. It is also possible to have multiple cloud configuration blocks within the same alias block.
  56521. For example:
  56522. .INDENT 0.0
  56523. .INDENT 3.5
  56524. .sp
  56525. .nf
  56526. .ft C
  56527. production\-config:
  56528. \- id: HJGRYCILJLKJYG
  56529. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56530. keyname: test
  56531. securitygroup: quick\-start
  56532. private_key: /root/test.pem
  56533. driver: ec2
  56534. \- user: example_user
  56535. apikey: 123984bjjas87034
  56536. driver: rackspace
  56537. .ft P
  56538. .fi
  56539. .UNINDENT
  56540. .UNINDENT
  56541. .sp
  56542. However, using this configuration method requires a change with profile configuration blocks.
  56543. The provider alias needs to have the provider key value appended as in the following example:
  56544. .INDENT 0.0
  56545. .INDENT 3.5
  56546. .sp
  56547. .nf
  56548. .ft C
  56549. rhel_aws_dev:
  56550. provider: production\-config:ec2
  56551. image: ami\-e565ba8c
  56552. size: t1.micro
  56553. rhel_aws_prod:
  56554. provider: production\-config:ec2
  56555. image: ami\-e565ba8c
  56556. size: High\-CPU Extra Large Instance
  56557. database_prod:
  56558. provider: production\-config:rackspace
  56559. image: Ubuntu 12.04 LTS
  56560. size: 256 server
  56561. .ft P
  56562. .fi
  56563. .UNINDENT
  56564. .UNINDENT
  56565. .sp
  56566. Notice that because of the multiple entries, one has to be explicit about the provider alias and
  56567. name, from the above example, \fBproduction\-config: ec2\fP\&.
  56568. .sp
  56569. This data interactions with the \fBsalt\-cloud\fP binary regarding its \fB\-\-list\-location\fP,
  56570. \fB\-\-list\-images\fP, and \fB\-\-list\-sizes\fP which needs a cloud provider as an argument. The argument
  56571. used should be the configured cloud provider alias. If the provider alias has multiple entries,
  56572. \fB<provider\-alias>: <provider\-name>\fP should be used.
  56573. .sp
  56574. To allow for a more extensible configuration, \fB\-\-providers\-config\fP, which defaults to
  56575. \fB/etc/salt/cloud.providers\fP, was added to the cli parser. It allows for the providers\(aq
  56576. configuration to be added on a per\-file basis.
  56577. .SS Pillar Configuration
  56578. .sp
  56579. It is possible to configure cloud providers using pillars. This is only used when inside the cloud
  56580. module. You can setup a variable called \fBcloud\fP that contains your profile, provider, and map to
  56581. pass that information to the cloud servers instead of having to copy the full configuration to every
  56582. minion. In your pillar file, you would use something like this:
  56583. .INDENT 0.0
  56584. .INDENT 3.5
  56585. .sp
  56586. .nf
  56587. .ft C
  56588. cloud:
  56589. ssh_key_name: saltstack
  56590. ssh_key_file: /root/.ssh/id_rsa
  56591. update_cachedir: True
  56592. diff_cache_events: True
  56593. providers:
  56594. my\-openstack:
  56595. driver: openstack
  56596. region_name: ORD
  56597. cloud: mycloud
  56598. profiles:
  56599. ubuntu\-openstack:
  56600. provider: my\-openstack
  56601. size: ds512M
  56602. image: CentOS 7
  56603. script_args: git develop
  56604. maps:
  56605. my\-dev\-map:
  56606. ubuntu\-openstack:
  56607. \- dev\-test01
  56608. \- dev\-test02
  56609. \- dev\-test03
  56610. \- dev\-test04
  56611. my\-prd\-map:
  56612. ubuntu\-openstack:
  56613. \- prd\-web01
  56614. \- prd\-web02
  56615. minion:
  56616. id: custom\-minion\-id\-app1\-stack1\-frontend
  56617. grains:
  56618. roles:
  56619. \- webserver
  56620. deployment: datacenter4\-openstack
  56621. \- prod\-db01
  56622. \- prod\-db02
  56623. .ft P
  56624. .fi
  56625. .UNINDENT
  56626. .UNINDENT
  56627. .SS Cloud Configurations
  56628. .SS Scaleway
  56629. .sp
  56630. 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.
  56631. 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.
  56632. .sp
  56633. If you do not have \fBAPI token\fP you can create one by clicking the "Create New Token" button on the right corner.
  56634. .INDENT 0.0
  56635. .INDENT 3.5
  56636. .sp
  56637. .nf
  56638. .ft C
  56639. my\-scaleway\-config:
  56640. access_key: 15cf404d\-4560\-41b1\-9a0c\-21c3d5c4ff1f
  56641. token: a7347ec8\-5de1\-4024\-a5e3\-24b77d1ba91d
  56642. driver: scaleway
  56643. .ft P
  56644. .fi
  56645. .UNINDENT
  56646. .UNINDENT
  56647. .sp
  56648. \fBNOTE:\fP
  56649. .INDENT 0.0
  56650. .INDENT 3.5
  56651. In the cloud profile that uses this provider configuration, the syntax for the
  56652. \fBprovider\fP required field would be \fBprovider: my\-scaleway\-config\fP\&.
  56653. .UNINDENT
  56654. .UNINDENT
  56655. .SS Rackspace
  56656. .sp
  56657. Rackspace cloud requires two configuration options; a \fBuser\fP and an \fBapikey\fP:
  56658. .INDENT 0.0
  56659. .INDENT 3.5
  56660. .sp
  56661. .nf
  56662. .ft C
  56663. my\-rackspace\-config:
  56664. user: example_user
  56665. apikey: 123984bjjas87034
  56666. driver: rackspace
  56667. .ft P
  56668. .fi
  56669. .UNINDENT
  56670. .UNINDENT
  56671. .sp
  56672. \fBNOTE:\fP
  56673. .INDENT 0.0
  56674. .INDENT 3.5
  56675. In the cloud profile that uses this provider configuration, the syntax for the
  56676. \fBprovider\fP required field would be \fBprovider: my\-rackspace\-config\fP\&.
  56677. .UNINDENT
  56678. .UNINDENT
  56679. .SS Amazon AWS
  56680. .sp
  56681. A number of configuration options are required for Amazon AWS including \fBid\fP,
  56682. \fBkey\fP, \fBkeyname\fP, \fBsecuritygroup\fP, and \fBprivate_key\fP:
  56683. .INDENT 0.0
  56684. .INDENT 3.5
  56685. .sp
  56686. .nf
  56687. .ft C
  56688. my\-aws\-quick\-start:
  56689. id: HJGRYCILJLKJYG
  56690. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56691. keyname: test
  56692. securitygroup: quick\-start
  56693. private_key: /root/test.pem
  56694. driver: ec2
  56695. my\-aws\-default:
  56696. id: HJGRYCILJLKJYG
  56697. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56698. keyname: test
  56699. securitygroup: default
  56700. private_key: /root/test.pem
  56701. driver: ec2
  56702. .ft P
  56703. .fi
  56704. .UNINDENT
  56705. .UNINDENT
  56706. .sp
  56707. \fBNOTE:\fP
  56708. .INDENT 0.0
  56709. .INDENT 3.5
  56710. In the cloud profile that uses this provider configuration, the syntax for the
  56711. \fBprovider\fP required field would be either \fBprovider: my\-aws\-quick\-start\fP
  56712. or \fBprovider: my\-aws\-default\fP\&.
  56713. .UNINDENT
  56714. .UNINDENT
  56715. .SS Linode
  56716. .sp
  56717. Linode requires a single API key, but the default root password also needs to
  56718. be set:
  56719. .INDENT 0.0
  56720. .INDENT 3.5
  56721. .sp
  56722. .nf
  56723. .ft C
  56724. my\-linode\-config:
  56725. apikey: asldkgfakl;sdfjsjaslfjaklsdjf;askldjfaaklsjdfhasldsadfghdkf
  56726. password: F00barbaz
  56727. ssh_pubkey: ssh\-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKHEOLLbeXgaqRQT9NBAopVz366SdYc0KKX33vAnq+2R user@host
  56728. ssh_key_file: ~/.ssh/id_ed25519
  56729. driver: linode
  56730. .ft P
  56731. .fi
  56732. .UNINDENT
  56733. .UNINDENT
  56734. .sp
  56735. The password needs to be 8 characters and contain lowercase, uppercase, and
  56736. numbers.
  56737. .sp
  56738. \fBNOTE:\fP
  56739. .INDENT 0.0
  56740. .INDENT 3.5
  56741. In the cloud profile that uses this provider configuration, the syntax for the
  56742. \fBprovider\fP required field would be \fBprovider: my\-linode\-config\fP
  56743. .UNINDENT
  56744. .UNINDENT
  56745. .SS Joyent Cloud
  56746. .sp
  56747. The Joyent cloud requires three configuration parameters: The username and
  56748. password that are used to log into the Joyent system, as well as the location
  56749. of the private SSH key associated with the Joyent account. The SSH key is needed
  56750. to send the provisioning commands up to the freshly created virtual machine.
  56751. .INDENT 0.0
  56752. .INDENT 3.5
  56753. .sp
  56754. .nf
  56755. .ft C
  56756. my\-joyent\-config:
  56757. user: fred
  56758. password: saltybacon
  56759. private_key: /root/joyent.pem
  56760. driver: joyent
  56761. .ft P
  56762. .fi
  56763. .UNINDENT
  56764. .UNINDENT
  56765. .sp
  56766. \fBNOTE:\fP
  56767. .INDENT 0.0
  56768. .INDENT 3.5
  56769. In the cloud profile that uses this provider configuration, the syntax for the
  56770. \fBprovider\fP required field would be \fBprovider: my\-joyent\-config\fP
  56771. .UNINDENT
  56772. .UNINDENT
  56773. .SS GoGrid
  56774. .sp
  56775. To use Salt Cloud with GoGrid, log into the GoGrid web interface and create an
  56776. API key. Do this by clicking on "My Account" and then going to the API Keys
  56777. tab.
  56778. .sp
  56779. The \fBapikey\fP and the \fBsharedsecret\fP configuration parameters need to
  56780. be set in the configuration file to enable interfacing with GoGrid:
  56781. .INDENT 0.0
  56782. .INDENT 3.5
  56783. .sp
  56784. .nf
  56785. .ft C
  56786. my\-gogrid\-config:
  56787. apikey: asdff7896asdh789
  56788. sharedsecret: saltybacon
  56789. driver: gogrid
  56790. .ft P
  56791. .fi
  56792. .UNINDENT
  56793. .UNINDENT
  56794. .sp
  56795. \fBNOTE:\fP
  56796. .INDENT 0.0
  56797. .INDENT 3.5
  56798. In the cloud profile that uses this provider configuration, the syntax for the
  56799. \fBprovider\fP required field would be \fBprovider: my\-gogrid\-config\fP\&.
  56800. .UNINDENT
  56801. .UNINDENT
  56802. .SS OpenStack
  56803. .sp
  56804. Using Salt for OpenStack uses the \fIshade <https://docs.openstack.org/shade/latest/>\fP driver managed by the
  56805. openstack\-infra team.
  56806. .sp
  56807. This driver can be configured using the \fB/etc/openstack/clouds.yml\fP file with
  56808. \fIos\-client\-config <https://docs.openstack.org/os\-client\-config/latest/>\fP
  56809. .INDENT 0.0
  56810. .INDENT 3.5
  56811. .sp
  56812. .nf
  56813. .ft C
  56814. myopenstack:
  56815. driver: openstack
  56816. region_name: RegionOne
  56817. cloud: mycloud
  56818. .ft P
  56819. .fi
  56820. .UNINDENT
  56821. .UNINDENT
  56822. .sp
  56823. Or by just configuring the same auth block directly in the cloud provider config.
  56824. .INDENT 0.0
  56825. .INDENT 3.5
  56826. .sp
  56827. .nf
  56828. .ft C
  56829. myopenstack:
  56830. driver: openstack
  56831. region_name: RegionOne
  56832. auth:
  56833. username: \(aqdemo\(aq
  56834. password: secret
  56835. project_name: \(aqdemo\(aq
  56836. auth_url: \(aqhttp://openstack/identity\(aq
  56837. .ft P
  56838. .fi
  56839. .UNINDENT
  56840. .UNINDENT
  56841. .sp
  56842. Both of these methods support using the
  56843. \fIvendor <https://docs.openstack.org/os\-client\-config/latest/user/vendor\-support.html>\fP
  56844. options.
  56845. .sp
  56846. For more information, look at \fBOpenstack Cloud Driver Docs\fP
  56847. .SS DigitalOcean
  56848. .sp
  56849. Using Salt for DigitalOcean requires a \fBclient_key\fP and an \fBapi_key\fP\&. These
  56850. can be found in the DigitalOcean web interface, in the "My Settings" section,
  56851. under the API Access tab.
  56852. .INDENT 0.0
  56853. .INDENT 3.5
  56854. .sp
  56855. .nf
  56856. .ft C
  56857. my\-digitalocean\-config:
  56858. driver: digitalocean
  56859. personal_access_token: xxx
  56860. location: New York 1
  56861. .ft P
  56862. .fi
  56863. .UNINDENT
  56864. .UNINDENT
  56865. .sp
  56866. \fBNOTE:\fP
  56867. .INDENT 0.0
  56868. .INDENT 3.5
  56869. In the cloud profile that uses this provider configuration, the syntax for the
  56870. \fBprovider\fP required field would be \fBprovider: my\-digital\-ocean\-config\fP\&.
  56871. .UNINDENT
  56872. .UNINDENT
  56873. .SS Parallels
  56874. .sp
  56875. Using Salt with Parallels requires a \fBuser\fP, \fBpassword\fP and \fBURL\fP\&. These
  56876. can be obtained from your cloud provider.
  56877. .INDENT 0.0
  56878. .INDENT 3.5
  56879. .sp
  56880. .nf
  56881. .ft C
  56882. my\-parallels\-config:
  56883. user: myuser
  56884. password: xyzzy
  56885. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  56886. driver: parallels
  56887. .ft P
  56888. .fi
  56889. .UNINDENT
  56890. .UNINDENT
  56891. .sp
  56892. \fBNOTE:\fP
  56893. .INDENT 0.0
  56894. .INDENT 3.5
  56895. In the cloud profile that uses this provider configuration, the syntax for the
  56896. \fBprovider\fP required field would be \fBprovider: my\-parallels\-config\fP\&.
  56897. .UNINDENT
  56898. .UNINDENT
  56899. .SS Proxmox
  56900. .sp
  56901. Using Salt with Proxmox requires a \fBuser\fP, \fBpassword\fP, and \fBURL\fP\&. These can be
  56902. obtained from your cloud host. Both PAM and PVE users can be used.
  56903. .INDENT 0.0
  56904. .INDENT 3.5
  56905. .sp
  56906. .nf
  56907. .ft C
  56908. my\-proxmox\-config:
  56909. driver: proxmox
  56910. user: saltcloud@pve
  56911. password: xyzzy
  56912. url: your.proxmox.host
  56913. .ft P
  56914. .fi
  56915. .UNINDENT
  56916. .UNINDENT
  56917. .sp
  56918. \fBNOTE:\fP
  56919. .INDENT 0.0
  56920. .INDENT 3.5
  56921. In the cloud profile that uses this provider configuration, the syntax for the
  56922. \fBprovider\fP required field would be \fBprovider: my\-proxmox\-config\fP\&.
  56923. .UNINDENT
  56924. .UNINDENT
  56925. .SS LXC
  56926. .sp
  56927. The lxc driver uses saltify to install salt and attach the lxc container as a new lxc
  56928. minion. As soon as we can, we manage baremetal operation over SSH. You can also destroy
  56929. those containers via this driver.
  56930. .INDENT 0.0
  56931. .INDENT 3.5
  56932. .sp
  56933. .nf
  56934. .ft C
  56935. devhost10\-lxc:
  56936. target: devhost10
  56937. driver: lxc
  56938. .ft P
  56939. .fi
  56940. .UNINDENT
  56941. .UNINDENT
  56942. .sp
  56943. And in the map file:
  56944. .INDENT 0.0
  56945. .INDENT 3.5
  56946. .sp
  56947. .nf
  56948. .ft C
  56949. devhost10\-lxc:
  56950. provider: devhost10\-lxc
  56951. from_container: ubuntu
  56952. backing: lvm
  56953. sudo: True
  56954. size: 3g
  56955. ip: 10.0.3.9
  56956. minion:
  56957. master: 10.5.0.1
  56958. master_port: 4506
  56959. lxc_conf:
  56960. \- lxc.utsname: superlxc
  56961. .ft P
  56962. .fi
  56963. .UNINDENT
  56964. .UNINDENT
  56965. .sp
  56966. \fBNOTE:\fP
  56967. .INDENT 0.0
  56968. .INDENT 3.5
  56969. In the cloud profile that uses this provider configuration, the syntax for the
  56970. \fBprovider\fP required field would be \fBprovider: devhost10\-lxc\fP\&.
  56971. .UNINDENT
  56972. .UNINDENT
  56973. .SS Saltify
  56974. .sp
  56975. The Saltify driver is a new, experimental driver designed to install Salt on a remote
  56976. machine, virtual or bare metal, using SSH. This driver is useful for provisioning
  56977. machines which are already installed, but not Salted. For more information about using
  56978. this driver and for configuration examples, please see the
  56979. Getting Started with Saltify documentation.
  56980. .SS Vagrant
  56981. .sp
  56982. The Vagrant driver is a new, experimental driver for controlling a VagrantBox
  56983. virtual machine, and installing Salt on it. The target host machine must be a
  56984. working salt minion, which is controlled via the salt master using salt\-api.
  56985. For more information, see
  56986. Getting Started With Vagrant\&.
  56987. .SS Extending Profiles and Cloud Providers Configuration
  56988. .sp
  56989. As of 0.8.7, the option to extend both the profiles and cloud providers
  56990. configuration and avoid duplication was added. The extends feature works on the
  56991. current profiles configuration, but, regarding the cloud providers
  56992. configuration, \fBonly\fP works in the new syntax and respective configuration
  56993. files, i.e. \fB/etc/salt/salt/cloud.providers\fP or
  56994. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  56995. .sp
  56996. \fBNOTE:\fP
  56997. .INDENT 0.0
  56998. .INDENT 3.5
  56999. Extending cloud profiles and providers is not recursive. For example, a
  57000. profile that is extended by a second profile is possible, but the second
  57001. profile cannot be extended by a third profile.
  57002. .sp
  57003. Also, if a profile (or provider) is extending another profile and each
  57004. contains a list of values, the lists from the extending profile will
  57005. override the list from the original profile. The lists are not merged
  57006. together.
  57007. .UNINDENT
  57008. .UNINDENT
  57009. .SS Extending Profiles
  57010. .sp
  57011. Some example usage on how to use \fBextends\fP with profiles. Consider
  57012. \fB/etc/salt/salt/cloud.profiles\fP containing:
  57013. .INDENT 0.0
  57014. .INDENT 3.5
  57015. .sp
  57016. .nf
  57017. .ft C
  57018. development\-instances:
  57019. provider: my\-ec2\-config
  57020. size: t1.micro
  57021. ssh_username: ec2_user
  57022. securitygroup:
  57023. \- default
  57024. deploy: False
  57025. Amazon\-Linux\-AMI\-2012.09\-64bit:
  57026. image: ami\-54cf5c3d
  57027. extends: development\-instances
  57028. Fedora\-17:
  57029. image: ami\-08d97e61
  57030. extends: development\-instances
  57031. CentOS\-5:
  57032. provider: my\-aws\-config
  57033. image: ami\-09b61d60
  57034. extends: development\-instances
  57035. .ft P
  57036. .fi
  57037. .UNINDENT
  57038. .UNINDENT
  57039. .sp
  57040. The above configuration, once parsed would generate the following profiles
  57041. data:
  57042. .INDENT 0.0
  57043. .INDENT 3.5
  57044. .sp
  57045. .nf
  57046. .ft C
  57047. [
  57048. {
  57049. "deploy": False,
  57050. "image": "ami\-08d97e61",
  57051. "profile": "Fedora\-17",
  57052. "provider": "my\-ec2\-config",
  57053. "securitygroup": ["default"],
  57054. "size": "t1.micro",
  57055. "ssh_username": "ec2_user",
  57056. },
  57057. {
  57058. "deploy": False,
  57059. "image": "ami\-09b61d60",
  57060. "profile": "CentOS\-5",
  57061. "provider": "my\-aws\-config",
  57062. "securitygroup": ["default"],
  57063. "size": "t1.micro",
  57064. "ssh_username": "ec2_user",
  57065. },
  57066. {
  57067. "deploy": False,
  57068. "image": "ami\-54cf5c3d",
  57069. "profile": "Amazon\-Linux\-AMI\-2012.09\-64bit",
  57070. "provider": "my\-ec2\-config",
  57071. "securitygroup": ["default"],
  57072. "size": "t1.micro",
  57073. "ssh_username": "ec2_user",
  57074. },
  57075. {
  57076. "deploy": False,
  57077. "profile": "development\-instances",
  57078. "provider": "my\-ec2\-config",
  57079. "securitygroup": ["default"],
  57080. "size": "t1.micro",
  57081. "ssh_username": "ec2_user",
  57082. },
  57083. ]
  57084. .ft P
  57085. .fi
  57086. .UNINDENT
  57087. .UNINDENT
  57088. .sp
  57089. Pretty cool right?
  57090. .SS Extending Providers
  57091. .sp
  57092. Some example usage on how to use \fBextends\fP within the cloud providers
  57093. configuration. Consider \fB/etc/salt/salt/cloud.providers\fP containing:
  57094. .INDENT 0.0
  57095. .INDENT 3.5
  57096. .sp
  57097. .nf
  57098. .ft C
  57099. my\-develop\-envs:
  57100. \- id: HJGRYCILJLKJYG
  57101. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  57102. keyname: test
  57103. securitygroup: quick\-start
  57104. private_key: /root/test.pem
  57105. location: ap\-southeast\-1
  57106. availability_zone: ap\-southeast\-1b
  57107. driver: ec2
  57108. \- user: myuser@mycorp.com
  57109. password: mypass
  57110. ssh_key_name: mykey
  57111. ssh_key_file: \(aq/etc/salt/ibm/mykey.pem\(aq
  57112. location: Raleigh
  57113. driver: ibmsce
  57114. my\-productions\-envs:
  57115. \- extends: my\-develop\-envs:ibmsce
  57116. user: my\-production\-user@mycorp.com
  57117. location: us\-east\-1
  57118. availability_zone: us\-east\-1
  57119. .ft P
  57120. .fi
  57121. .UNINDENT
  57122. .UNINDENT
  57123. .sp
  57124. The above configuration, once parsed would generate the following providers
  57125. data:
  57126. .INDENT 0.0
  57127. .INDENT 3.5
  57128. .sp
  57129. .nf
  57130. .ft C
  57131. "providers": {
  57132. "my\-develop\-envs": [
  57133. {
  57134. "availability_zone": "ap\-southeast\-1b",
  57135. "id": "HJGRYCILJLKJYG",
  57136. "key": "kdjgfsgm;woormgl/aserigjksjdhasdfgn",
  57137. "keyname": "test",
  57138. "location": "ap\-southeast\-1",
  57139. "private_key": "/root/test.pem",
  57140. "driver": "aws",
  57141. "securitygroup": "quick\-start",
  57142. },
  57143. {
  57144. "location": "Raleigh",
  57145. "password": "mypass",
  57146. "driver": "ibmsce",
  57147. "ssh_key_file": "/etc/salt/ibm/mykey.pem",
  57148. "ssh_key_name": "mykey",
  57149. "user": "myuser@mycorp.com",
  57150. },
  57151. ],
  57152. "my\-productions\-envs": [
  57153. {
  57154. "availability_zone": "us\-east\-1",
  57155. "location": "us\-east\-1",
  57156. "password": "mypass",
  57157. "driver": "ibmsce",
  57158. "ssh_key_file": "/etc/salt/ibm/mykey.pem",
  57159. "ssh_key_name": "mykey",
  57160. "user": "my\-production\-user@mycorp.com",
  57161. }
  57162. ],
  57163. }
  57164. .ft P
  57165. .fi
  57166. .UNINDENT
  57167. .UNINDENT
  57168. .SS Windows Configuration
  57169. .SS Spinning up Windows Minions
  57170. .sp
  57171. It is possible to use Salt Cloud to spin up Windows instances, and then install
  57172. Salt on them. This functionality is available on all cloud providers that are
  57173. supported by Salt Cloud. However, it may not necessarily be available on all
  57174. Windows images.
  57175. .SS Requirements
  57176. .sp
  57177. \fBNOTE:\fP
  57178. .INDENT 0.0
  57179. .INDENT 3.5
  57180. Support \fBwinexe\fP and \fBimpacket\fP has been deprecated and will be removed in
  57181. 3001. These dependencies are replaced by \fBpypsexec\fP and \fBsmbprotocol\fP
  57182. respectivly. These are pure python alternatives that are compatible with all
  57183. supported python versions.
  57184. .UNINDENT
  57185. .UNINDENT
  57186. .sp
  57187. Salt Cloud makes use of \fIimpacket\fP and \fIwinexe\fP to set up the Windows Salt
  57188. Minion installer.
  57189. .sp
  57190. \fIimpacket\fP is usually available as either the \fIimpacket\fP or the
  57191. \fIpython\-impacket\fP package, depending on the distribution. More information on
  57192. \fIimpacket\fP can be found at the project home:
  57193. .INDENT 0.0
  57194. .IP \(bu 2
  57195. \fI\%impacket project home\fP
  57196. .UNINDENT
  57197. .sp
  57198. \fIwinexe\fP is less commonly available in distribution\-specific repositories.
  57199. However, it is currently being built for various distributions in 3rd party
  57200. channels:
  57201. .INDENT 0.0
  57202. .IP \(bu 2
  57203. \fI\%RPMs at pbone.net\fP
  57204. .UNINDENT
  57205. .INDENT 0.0
  57206. .IP \(bu 2
  57207. \fI\%openSUSE Build Service\fP
  57208. .UNINDENT
  57209. .INDENT 0.0
  57210. .IP \(bu 2
  57211. \fI\%pypsexec project home\fP
  57212. .UNINDENT
  57213. .INDENT 0.0
  57214. .IP \(bu 2
  57215. \fI\%smbprotocol project home\fP
  57216. .UNINDENT
  57217. .sp
  57218. Optionally WinRM can be used instead of \fIwinexe\fP if the python module \fIpywinrm\fP
  57219. is available and WinRM is supported on the target Windows version. Information
  57220. on pywinrm can be found at the project home:
  57221. .INDENT 0.0
  57222. .IP \(bu 2
  57223. \fI\%pywinrm project home\fP
  57224. .UNINDENT
  57225. .sp
  57226. Additionally, a copy of the Salt Minion Windows installer must be present on
  57227. the system on which Salt Cloud is running. This installer may be downloaded
  57228. from saltstack.com:
  57229. .INDENT 0.0
  57230. .IP \(bu 2
  57231. \fI\%SaltStack Download Area\fP
  57232. .UNINDENT
  57233. .SS Self Signed Certificates with WinRM
  57234. .sp
  57235. Salt\-Cloud can use versions of \fBpywinrm<=0.1.1\fP or \fBpywinrm>=0.2.1\fP\&.
  57236. .sp
  57237. For versions greater than \fI0.2.1\fP, \fBwinrm_verify_ssl\fP needs to be set to
  57238. \fIFalse\fP if the certificate is self signed and not verifiable.
  57239. .SS Firewall Settings
  57240. .sp
  57241. Because Salt Cloud makes use of \fIsmbclient\fP and \fIwinexe\fP, port 445 must be open
  57242. on the target image. This port is not generally open by default on a standard
  57243. Windows distribution, and care must be taken to use an image in which this port
  57244. is open, or the Windows firewall is disabled.
  57245. .sp
  57246. If supported by the cloud provider, a PowerShell script may be used to open up
  57247. this port automatically, using the cloud provider\(aqs \fIuserdata\fP\&. The following
  57248. script would open up port 445, and apply the changes:
  57249. .INDENT 0.0
  57250. .INDENT 3.5
  57251. .sp
  57252. .nf
  57253. .ft C
  57254. <powershell>
  57255. New\-NetFirewallRule \-Name "SMB445" \-DisplayName "SMB445" \-Protocol TCP \-LocalPort 445
  57256. Set\-Item (dir wsman:\elocalhost\eListener\e*\ePort \-Recurse).pspath 445 \-Force
  57257. Restart\-Service winrm
  57258. </powershell>
  57259. .ft P
  57260. .fi
  57261. .UNINDENT
  57262. .UNINDENT
  57263. .sp
  57264. For EC2, this script may be saved as a file, and specified in the provider or
  57265. profile configuration as \fIuserdata_file\fP\&. For instance:
  57266. .INDENT 0.0
  57267. .INDENT 3.5
  57268. .sp
  57269. .nf
  57270. .ft C
  57271. my\-ec2\-config:
  57272. # Pass userdata to the instance to be created
  57273. userdata_file: /etc/salt/windows\-firewall.ps1
  57274. .ft P
  57275. .fi
  57276. .UNINDENT
  57277. .UNINDENT
  57278. .sp
  57279. \fBNOTE:\fP
  57280. .INDENT 0.0
  57281. .INDENT 3.5
  57282. From versions 2016.11.0 and 2016.11.3, this file was passed through the
  57283. master\(aqs \fBrenderer\fP to template it. However, this caused
  57284. issues with non\-YAML data, so templating is no longer performed by default.
  57285. To template the userdata_file, add a \fBuserdata_template\fP option to the
  57286. cloud profile:
  57287. .INDENT 0.0
  57288. .INDENT 3.5
  57289. .sp
  57290. .nf
  57291. .ft C
  57292. my\-ec2\-config:
  57293. # Pass userdata to the instance to be created
  57294. userdata_file: /etc/salt/windows\-firewall.ps1
  57295. userdata_template: jinja
  57296. .ft P
  57297. .fi
  57298. .UNINDENT
  57299. .UNINDENT
  57300. .sp
  57301. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  57302. configuration will be checked for a \fBuserdata_template\fP value.
  57303. If this is not set, then no templating will be performed on the
  57304. userdata_file.
  57305. .sp
  57306. To disable templating in a cloud profile when a
  57307. \fBuserdata_template\fP has been set in the master configuration
  57308. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  57309. .INDENT 0.0
  57310. .INDENT 3.5
  57311. .sp
  57312. .nf
  57313. .ft C
  57314. my\-ec2\-config:
  57315. # Pass userdata to the instance to be created
  57316. userdata_file: /etc/salt/windows\-firewall.ps1
  57317. userdata_template: False
  57318. .ft P
  57319. .fi
  57320. .UNINDENT
  57321. .UNINDENT
  57322. .UNINDENT
  57323. .UNINDENT
  57324. .sp
  57325. If you are using WinRM on EC2 the HTTPS port for the WinRM service must also be
  57326. enabled in your userdata. By default EC2 Windows images only have insecure HTTP
  57327. enabled. To enable HTTPS and basic authentication required by pywinrm consider
  57328. the following userdata example:
  57329. .INDENT 0.0
  57330. .INDENT 3.5
  57331. .sp
  57332. .nf
  57333. .ft C
  57334. <powershell>
  57335. New\-NetFirewallRule \-Name "SMB445" \-DisplayName "SMB445" \-Protocol TCP \-LocalPort 445
  57336. New\-NetFirewallRule \-Name "WINRM5986" \-DisplayName "WINRM5986" \-Protocol TCP \-LocalPort 5986
  57337. winrm quickconfig \-q
  57338. winrm set winrm/config/winrs \(aq@{MaxMemoryPerShellMB="300"}\(aq
  57339. winrm set winrm/config \(aq@{MaxTimeoutms="1800000"}\(aq
  57340. winrm set winrm/config/service/auth \(aq@{Basic="true"}\(aq
  57341. $SourceStoreScope = \(aqLocalMachine\(aq
  57342. $SourceStorename = \(aqRemote Desktop\(aq
  57343. $SourceStore = New\-Object \-TypeName System.Security.Cryptography.X509Certificates.X509Store \-ArgumentList $SourceStorename, $SourceStoreScope
  57344. $SourceStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
  57345. $cert = $SourceStore.Certificates | Where\-Object \-FilterScript {
  57346. $_.subject \-like \(aq*\(aq
  57347. }
  57348. $DestStoreScope = \(aqLocalMachine\(aq
  57349. $DestStoreName = \(aqMy\(aq
  57350. $DestStore = New\-Object \-TypeName System.Security.Cryptography.X509Certificates.X509Store \-ArgumentList $DestStoreName, $DestStoreScope
  57351. $DestStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
  57352. $DestStore.Add($cert)
  57353. $SourceStore.Close()
  57354. $DestStore.Close()
  57355. winrm create winrm/config/listener?Address=*+Transport=HTTPS \(ga@\(ga{CertificateThumbprint=\(ga"($cert.Thumbprint)\(ga"\(ga}
  57356. Restart\-Service winrm
  57357. </powershell>
  57358. .ft P
  57359. .fi
  57360. .UNINDENT
  57361. .UNINDENT
  57362. .sp
  57363. No certificate store is available by default on EC2 images and creating
  57364. one does not seem possible without an MMC (cannot be automated). To use the
  57365. default EC2 Windows images the above copies the RDP store.
  57366. .SS Configuration
  57367. .sp
  57368. Configuration is set as usual, with some extra configuration settings. The
  57369. location of the Windows installer on the machine that Salt Cloud is running on
  57370. must be specified. This may be done in any of the regular configuration files
  57371. (main, providers, profiles, maps). For example:
  57372. .sp
  57373. Setting the installer in \fB/etc/salt/cloud.providers\fP:
  57374. .INDENT 0.0
  57375. .INDENT 3.5
  57376. .sp
  57377. .nf
  57378. .ft C
  57379. my\-softlayer:
  57380. driver: softlayer
  57381. user: MYUSER1138
  57382. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  57383. minion:
  57384. master: saltmaster.example.com
  57385. win_installer: /root/Salt\-Minion\-2014.7.0\-AMD64\-Setup.exe
  57386. win_username: Administrator
  57387. win_password: letmein
  57388. smb_port: 445
  57389. .ft P
  57390. .fi
  57391. .UNINDENT
  57392. .UNINDENT
  57393. .sp
  57394. The default Windows user is \fIAdministrator\fP, and the default Windows password
  57395. is blank.
  57396. .sp
  57397. If WinRM is to be used \fBuse_winrm\fP needs to be set to \fITrue\fP\&. \fBwinrm_port\fP
  57398. can be used to specify a custom port (must be HTTPS listener). And
  57399. \fBwinrm_verify_ssl\fP can be set to \fIFalse\fP to use a self signed certificate.
  57400. .SS Auto\-Generated Passwords on EC2
  57401. .sp
  57402. On EC2, when the \fIwin_password\fP is set to \fIauto\fP, Salt Cloud will query EC2 for
  57403. an auto\-generated password. This password is expected to take at least 4 minutes
  57404. to generate, adding additional time to the deploy process.
  57405. .sp
  57406. When the EC2 API is queried for the auto\-generated password, it will be returned
  57407. in a message encrypted with the specified \fIkeyname\fP\&. This requires that the
  57408. appropriate \fIprivate_key\fP file is also specified. Such a profile configuration
  57409. might look like:
  57410. .INDENT 0.0
  57411. .INDENT 3.5
  57412. .sp
  57413. .nf
  57414. .ft C
  57415. windows\-server\-2012:
  57416. provider: my\-ec2\-config
  57417. image: ami\-c49c0dac
  57418. size: m1.small
  57419. securitygroup: windows
  57420. keyname: mykey
  57421. private_key: /root/mykey.pem
  57422. userdata_file: /etc/salt/windows\-firewall.ps1
  57423. win_installer: /root/Salt\-Minion\-2014.7.0\-AMD64\-Setup.exe
  57424. win_username: Administrator
  57425. win_password: auto
  57426. .ft P
  57427. .fi
  57428. .UNINDENT
  57429. .UNINDENT
  57430. .SS Cloud Provider Specifics
  57431. .SS Getting Started With Aliyun ECS
  57432. .sp
  57433. The Aliyun ECS (Elastic Computer Service) is one of the most popular public
  57434. cloud hosts in China. This cloud host can be used to manage aliyun
  57435. instance using salt\-cloud.
  57436. .sp
  57437. \fI\%http://www.aliyun.com/\fP
  57438. .SS Dependencies
  57439. .sp
  57440. This driver requires the Python \fBrequests\fP library to be installed.
  57441. .SS Configuration
  57442. .sp
  57443. Using Salt for Aliyun ECS requires aliyun access key id and key secret.
  57444. These can be found in the aliyun web interface, in the "User Center" section,
  57445. under "My Service" tab.
  57446. .INDENT 0.0
  57447. .INDENT 3.5
  57448. .sp
  57449. .nf
  57450. .ft C
  57451. # Note: This example is for /etc/salt/cloud.providers or any file in the
  57452. # /etc/salt/cloud.providers.d/ directory.
  57453. my\-aliyun\-config:
  57454. # aliyun Access Key ID
  57455. id: wDGEwGregedg3435gDgxd
  57456. # aliyun Access Key Secret
  57457. key: GDd45t43RDBTrkkkg43934t34qT43t4dgegerGEgg
  57458. location: cn\-qingdao
  57459. driver: aliyun
  57460. .ft P
  57461. .fi
  57462. .UNINDENT
  57463. .UNINDENT
  57464. .sp
  57465. \fBNOTE:\fP
  57466. .INDENT 0.0
  57467. .INDENT 3.5
  57468. Changed in version 2015.8.0.
  57469. .sp
  57470. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  57471. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  57472. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  57473. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  57474. to use \fBprovider\fP to refer to provider configurations that you define.
  57475. .UNINDENT
  57476. .UNINDENT
  57477. .SS Profiles
  57478. .SS Cloud Profiles
  57479. .sp
  57480. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  57481. \fB/etc/salt/cloud.profiles.d/\fP directory:
  57482. .INDENT 0.0
  57483. .INDENT 3.5
  57484. .sp
  57485. .nf
  57486. .ft C
  57487. aliyun_centos:
  57488. provider: my\-aliyun\-config
  57489. size: ecs.t1.small
  57490. location: cn\-qingdao
  57491. securitygroup: G1989096784427999
  57492. image: centos6u3_64_20G_aliaegis_20130816.vhd
  57493. .ft P
  57494. .fi
  57495. .UNINDENT
  57496. .UNINDENT
  57497. .sp
  57498. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  57499. command:
  57500. .INDENT 0.0
  57501. .INDENT 3.5
  57502. .sp
  57503. .nf
  57504. .ft C
  57505. # salt\-cloud \-\-list\-sizes my\-aliyun\-config
  57506. my\-aliyun\-config:
  57507. \-\-\-\-\-\-\-\-\-\-
  57508. aliyun:
  57509. \-\-\-\-\-\-\-\-\-\-
  57510. ecs.c1.large:
  57511. \-\-\-\-\-\-\-\-\-\-
  57512. CpuCoreCount:
  57513. 8
  57514. InstanceTypeId:
  57515. ecs.c1.large
  57516. MemorySize:
  57517. 16.0
  57518. \&...SNIP...
  57519. .ft P
  57520. .fi
  57521. .UNINDENT
  57522. .UNINDENT
  57523. .sp
  57524. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  57525. command:
  57526. .INDENT 0.0
  57527. .INDENT 3.5
  57528. .sp
  57529. .nf
  57530. .ft C
  57531. # salt\-cloud \-\-list\-images my\-aliyun\-config
  57532. my\-aliyun\-config:
  57533. \-\-\-\-\-\-\-\-\-\-
  57534. aliyun:
  57535. \-\-\-\-\-\-\-\-\-\-
  57536. centos5u8_64_20G_aliaegis_20131231.vhd:
  57537. \-\-\-\-\-\-\-\-\-\-
  57538. Architecture:
  57539. x86_64
  57540. Description:
  57541. ImageId:
  57542. centos5u8_64_20G_aliaegis_20131231.vhd
  57543. ImageName:
  57544. CentOS 5.8 64位
  57545. ImageOwnerAlias:
  57546. system
  57547. ImageVersion:
  57548. 1.0
  57549. OSName:
  57550. CentOS 5.8 64位
  57551. Platform:
  57552. CENTOS5
  57553. Size:
  57554. 20
  57555. Visibility:
  57556. public
  57557. \&...SNIP...
  57558. .ft P
  57559. .fi
  57560. .UNINDENT
  57561. .UNINDENT
  57562. .sp
  57563. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  57564. command:
  57565. .INDENT 0.0
  57566. .INDENT 3.5
  57567. .sp
  57568. .nf
  57569. .ft C
  57570. my\-aliyun\-config:
  57571. \-\-\-\-\-\-\-\-\-\-
  57572. aliyun:
  57573. \-\-\-\-\-\-\-\-\-\-
  57574. cn\-beijing:
  57575. \-\-\-\-\-\-\-\-\-\-
  57576. LocalName:
  57577. 北京
  57578. RegionId:
  57579. cn\-beijing
  57580. cn\-hangzhou:
  57581. \-\-\-\-\-\-\-\-\-\-
  57582. LocalName:
  57583. 杭州
  57584. RegionId:
  57585. cn\-hangzhou
  57586. cn\-hongkong:
  57587. \-\-\-\-\-\-\-\-\-\-
  57588. LocalName:
  57589. 香港
  57590. RegionId:
  57591. cn\-hongkong
  57592. cn\-qingdao:
  57593. \-\-\-\-\-\-\-\-\-\-
  57594. LocalName:
  57595. 青岛
  57596. RegionId:
  57597. cn\-qingdao
  57598. .ft P
  57599. .fi
  57600. .UNINDENT
  57601. .UNINDENT
  57602. .sp
  57603. Security Group can be obtained using the \fB\-f list_securitygroup\fP option
  57604. for the \fBsalt\-cloud\fP command:
  57605. .INDENT 0.0
  57606. .INDENT 3.5
  57607. .sp
  57608. .nf
  57609. .ft C
  57610. # salt\-cloud \-\-location=cn\-qingdao \-f list_securitygroup my\-aliyun\-config
  57611. my\-aliyun\-config:
  57612. \-\-\-\-\-\-\-\-\-\-
  57613. aliyun:
  57614. \-\-\-\-\-\-\-\-\-\-
  57615. G1989096784427999:
  57616. \-\-\-\-\-\-\-\-\-\-
  57617. Description:
  57618. G1989096784427999
  57619. SecurityGroupId:
  57620. G1989096784427999
  57621. .ft P
  57622. .fi
  57623. .UNINDENT
  57624. .UNINDENT
  57625. .sp
  57626. \fBNOTE:\fP
  57627. .INDENT 0.0
  57628. .INDENT 3.5
  57629. Aliyun ECS REST API documentation is available from \fI\%Aliyun ECS API\fP\&.
  57630. .UNINDENT
  57631. .UNINDENT
  57632. .SS Getting Started With Azure
  57633. .sp
  57634. New in version 2014.1.0.
  57635. .sp
  57636. Azure is a cloud service by Microsoft providing virtual machines, SQL services,
  57637. media services, and more. This document describes how to use Salt Cloud to
  57638. create a virtual machine on Azure, with Salt installed.
  57639. .sp
  57640. More information about Azure is located at \fI\%http://www.windowsazure.com/\fP\&.
  57641. .SS Dependencies
  57642. .INDENT 0.0
  57643. .IP \(bu 2
  57644. \fI\%Microsoft Azure SDK for Python\fP >= 1.0.2
  57645. .IP \(bu 2
  57646. The python\-requests library, for Python < 2.7.9.
  57647. .IP \(bu 2
  57648. A Microsoft Azure account
  57649. .IP \(bu 2
  57650. OpenSSL (to generate the certificates)
  57651. .IP \(bu 2
  57652. \fI\%Salt\fP
  57653. .UNINDENT
  57654. .SS Configuration
  57655. .sp
  57656. Set up the provider config at \fB/etc/salt/cloud.providers.d/azure.conf\fP:
  57657. .INDENT 0.0
  57658. .INDENT 3.5
  57659. .sp
  57660. .nf
  57661. .ft C
  57662. # Note: This example is for /etc/salt/cloud.providers.d/azure.conf
  57663. my\-azure\-config:
  57664. driver: azure
  57665. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  57666. certificate_path: /etc/salt/azure.pem
  57667. # Set up the location of the salt master
  57668. #
  57669. minion:
  57670. master: saltmaster.example.com
  57671. # Optional
  57672. management_host: management.core.windows.net
  57673. .ft P
  57674. .fi
  57675. .UNINDENT
  57676. .UNINDENT
  57677. .sp
  57678. The certificate used must be generated by the user. OpenSSL can be used to
  57679. create the management certificates. Two certificates are needed: a .cer file,
  57680. which is uploaded to Azure, and a .pem file, which is stored locally.
  57681. .sp
  57682. To create the .pem file, execute the following command:
  57683. .INDENT 0.0
  57684. .INDENT 3.5
  57685. .sp
  57686. .nf
  57687. .ft C
  57688. openssl req \-x509 \-nodes \-days 365 \-newkey rsa:1024 \-keyout /etc/salt/azure.pem \-out /etc/salt/azure.pem
  57689. .ft P
  57690. .fi
  57691. .UNINDENT
  57692. .UNINDENT
  57693. .sp
  57694. To create the .cer file, execute the following command:
  57695. .INDENT 0.0
  57696. .INDENT 3.5
  57697. .sp
  57698. .nf
  57699. .ft C
  57700. openssl x509 \-inform pem \-in /etc/salt/azure.pem \-outform der \-out /etc/salt/azure.cer
  57701. .ft P
  57702. .fi
  57703. .UNINDENT
  57704. .UNINDENT
  57705. .sp
  57706. After creating these files, the .cer file will need to be uploaded to
  57707. Azure via the "Upload a Management Certificate" action of the "Management Certificates"
  57708. tab within the "Settings" section of the management portal.
  57709. .sp
  57710. Optionally, a \fBmanagement_host\fP may be configured, if necessary for the region.
  57711. .sp
  57712. \fBNOTE:\fP
  57713. .INDENT 0.0
  57714. .INDENT 3.5
  57715. Changed in version 2015.8.0.
  57716. .sp
  57717. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  57718. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  57719. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  57720. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  57721. to use \fBprovider\fP to refer to provider configurations that you define.
  57722. .UNINDENT
  57723. .UNINDENT
  57724. .SS Cloud Profiles
  57725. .sp
  57726. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  57727. .INDENT 0.0
  57728. .INDENT 3.5
  57729. .sp
  57730. .nf
  57731. .ft C
  57732. azure\-ubuntu:
  57733. provider: my\-azure\-config
  57734. image: \(aqb39f27a8b8c64d52b05eac6a62ebad85__Ubuntu\-12_04_3\-LTS\-amd64\-server\-20131003\-en\-us\-30GB\(aq
  57735. size: Small
  57736. location: \(aqEast US\(aq
  57737. ssh_username: azureuser
  57738. ssh_password: verybadpass
  57739. slot: production
  57740. media_link: \(aqhttp://portalvhdabcdefghijklmn.blob.core.windows.net/vhds\(aq
  57741. virtual_network_name: azure\-virtual\-network
  57742. subnet_name: azure\-subnet
  57743. .ft P
  57744. .fi
  57745. .UNINDENT
  57746. .UNINDENT
  57747. .sp
  57748. These options are described in more detail below. Once configured, the profile
  57749. can be realized with a salt command:
  57750. .INDENT 0.0
  57751. .INDENT 3.5
  57752. .sp
  57753. .nf
  57754. .ft C
  57755. salt\-cloud \-p azure\-ubuntu newinstance
  57756. .ft P
  57757. .fi
  57758. .UNINDENT
  57759. .UNINDENT
  57760. .sp
  57761. This will create an salt minion instance named \fBnewinstance\fP in Azure. If
  57762. the command was executed on the salt\-master, its Salt key will automatically
  57763. be signed on the master.
  57764. .sp
  57765. Once the instance has been created with salt\-minion installed, connectivity to
  57766. it can be verified with Salt:
  57767. .INDENT 0.0
  57768. .INDENT 3.5
  57769. .sp
  57770. .nf
  57771. .ft C
  57772. salt newinstance test.version
  57773. .ft P
  57774. .fi
  57775. .UNINDENT
  57776. .UNINDENT
  57777. .SS Profile Options
  57778. .sp
  57779. The following options are currently available for Azure.
  57780. .SS provider
  57781. .sp
  57782. The name of the provider as configured in
  57783. \fI/etc/salt/cloud.providers.d/azure.conf\fP\&.
  57784. .SS image
  57785. .sp
  57786. The name of the image to use to create a VM. Available images can be viewed
  57787. using the following command:
  57788. .INDENT 0.0
  57789. .INDENT 3.5
  57790. .sp
  57791. .nf
  57792. .ft C
  57793. salt\-cloud \-\-list\-images my\-azure\-config
  57794. .ft P
  57795. .fi
  57796. .UNINDENT
  57797. .UNINDENT
  57798. .SS size
  57799. .sp
  57800. The name of the size to use to create a VM. Available sizes can be viewed using
  57801. the following command:
  57802. .INDENT 0.0
  57803. .INDENT 3.5
  57804. .sp
  57805. .nf
  57806. .ft C
  57807. salt\-cloud \-\-list\-sizes my\-azure\-config
  57808. .ft P
  57809. .fi
  57810. .UNINDENT
  57811. .UNINDENT
  57812. .SS location
  57813. .sp
  57814. The name of the location to create a VM in. Available locations can be viewed
  57815. using the following command:
  57816. .INDENT 0.0
  57817. .INDENT 3.5
  57818. .sp
  57819. .nf
  57820. .ft C
  57821. salt\-cloud \-\-list\-locations my\-azure\-config
  57822. .ft P
  57823. .fi
  57824. .UNINDENT
  57825. .UNINDENT
  57826. .SS affinity_group
  57827. .sp
  57828. The name of the affinity group to create a VM in. Either a \fBlocation\fP or an
  57829. \fBaffinity_group\fP may be specified, but not both. See Affinity Groups below.
  57830. .SS ssh_username
  57831. .sp
  57832. The user to use to log into the newly\-created VM to install Salt.
  57833. .SS ssh_password
  57834. .sp
  57835. The password to use to log into the newly\-created VM to install Salt.
  57836. .SS slot
  57837. .sp
  57838. The environment to which the hosted service is deployed. Valid values are
  57839. \fIstaging\fP or \fIproduction\fP\&. When set to \fIproduction\fP, the resulting URL of the
  57840. new VM will be \fI<vm_name>.cloudapp.net\fP\&. When set to \fIstaging\fP, the resulting
  57841. URL will contain a generated hash instead.
  57842. .SS media_link
  57843. .sp
  57844. This is the URL of the container that will store the disk that this VM uses.
  57845. Currently, this container must already exist. If a VM has previously been
  57846. created in the associated account, a container should already exist. In the web
  57847. interface, go into the Storage area and click one of the available storage
  57848. selections. Click the Containers link, and then copy the URL from the container
  57849. that will be used. It generally looks like:
  57850. .INDENT 0.0
  57851. .INDENT 3.5
  57852. .sp
  57853. .nf
  57854. .ft C
  57855. http://portalvhdabcdefghijklmn.blob.core.windows.net/vhds
  57856. .ft P
  57857. .fi
  57858. .UNINDENT
  57859. .UNINDENT
  57860. .SS service_name
  57861. .sp
  57862. The name of the service in which to create the VM. If this is not specified,
  57863. then a service will be created with the same name as the VM.
  57864. .SS virtual_network_name
  57865. .sp
  57866. Optional. The name of the virtual network for the VM to join. If this is not
  57867. specified, then no virtual network will be joined.
  57868. .SS subnet_name
  57869. .sp
  57870. Optional. The name of the subnet in the virtual network for the VM to join.
  57871. Requires that a \fBvirtual_network_name\fP is specified.
  57872. .SS Show Instance
  57873. .sp
  57874. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on
  57875. a single instance only. In an environment with several machines, this will save
  57876. a user from having to sort through all instance data, just to examine a single
  57877. instance.
  57878. .INDENT 0.0
  57879. .INDENT 3.5
  57880. .sp
  57881. .nf
  57882. .ft C
  57883. salt\-cloud \-a show_instance myinstance
  57884. .ft P
  57885. .fi
  57886. .UNINDENT
  57887. .UNINDENT
  57888. .SS Destroying VMs
  57889. .sp
  57890. There are certain options which can be specified in the global cloud
  57891. configuration file (usually \fB/etc/salt/cloud\fP) which affect Salt Cloud\(aqs
  57892. behavior when a VM is destroyed.
  57893. .SS cleanup_disks
  57894. .sp
  57895. New in version 2015.8.0.
  57896. .sp
  57897. Default is \fBFalse\fP\&. When set to \fBTrue\fP, Salt Cloud will wait for the VM to
  57898. be destroyed, then attempt to destroy the main disk that is associated with the
  57899. VM.
  57900. .SS cleanup_vhds
  57901. .sp
  57902. New in version 2015.8.0.
  57903. .sp
  57904. Default is \fBFalse\fP\&. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&. When
  57905. also set to \fBTrue\fP, Salt Cloud will ask Azure to delete the VHD associated
  57906. with the disk that is also destroyed.
  57907. .SS cleanup_services
  57908. .sp
  57909. New in version 2015.8.0.
  57910. .sp
  57911. Default is \fBFalse\fP\&. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&. When
  57912. also set to \fBTrue\fP, Salt Cloud will wait for the disk to be destroyed, then
  57913. attempt to remove the service that is associated with the VM. Because the disk
  57914. belongs to the service, the disk must be destroyed before the service can be.
  57915. .SS Managing Hosted Services
  57916. .sp
  57917. New in version 2015.8.0.
  57918. .sp
  57919. An account can have one or more hosted services. A hosted service is required
  57920. in order to create a VM. However, as mentioned above, if a hosted service is not
  57921. specified when a VM is created, then one will automatically be created with the
  57922. name of the name. The following functions are also available.
  57923. .SS create_service
  57924. .sp
  57925. Create a hosted service. The following options are available.
  57926. .SS name
  57927. .sp
  57928. Required. The name of the hosted service to create.
  57929. .SS label
  57930. .sp
  57931. Required. A label to apply to the hosted service.
  57932. .SS description
  57933. .sp
  57934. Optional. A longer description of the hosted service.
  57935. .SS location
  57936. .sp
  57937. Required, if \fBaffinity_group\fP is not set. The location in which to create the
  57938. hosted service. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57939. but not both.
  57940. .SS affinity_group
  57941. .sp
  57942. Required, if \fBlocation\fP is not set. The affinity group in which to create the
  57943. hosted service. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57944. but not both.
  57945. .SS extended_properties
  57946. .sp
  57947. Optional. Dictionary containing name/value pairs of hosted service properties.
  57948. You can have a maximum of 50 extended property name/value pairs. The maximum
  57949. length of the Name element is 64 characters, only alphanumeric characters and
  57950. underscores are valid in the Name, and the name must start with a letter.
  57951. The value has a maximum length of 255 characters.
  57952. .SS CLI Example
  57953. .sp
  57954. The following example illustrates creating a hosted service.
  57955. .INDENT 0.0
  57956. .INDENT 3.5
  57957. .sp
  57958. .nf
  57959. .ft C
  57960. salt\-cloud \-f create_service my\-azure name=my\-service label=my\-service location=\(aqWest US\(aq
  57961. .ft P
  57962. .fi
  57963. .UNINDENT
  57964. .UNINDENT
  57965. .SS show_service
  57966. .sp
  57967. Return details about a specific hosted service. Can also be called with
  57968. \fBget_service\fP\&.
  57969. .INDENT 0.0
  57970. .INDENT 3.5
  57971. .sp
  57972. .nf
  57973. .ft C
  57974. salt\-cloud \-f show_storage my\-azure name=my\-service
  57975. .ft P
  57976. .fi
  57977. .UNINDENT
  57978. .UNINDENT
  57979. .SS list_services
  57980. .sp
  57981. List all hosted services associates with the subscription.
  57982. .INDENT 0.0
  57983. .INDENT 3.5
  57984. .sp
  57985. .nf
  57986. .ft C
  57987. salt\-cloud \-f list_services my\-azure\-config
  57988. .ft P
  57989. .fi
  57990. .UNINDENT
  57991. .UNINDENT
  57992. .SS delete_service
  57993. .sp
  57994. Delete a specific hosted service.
  57995. .INDENT 0.0
  57996. .INDENT 3.5
  57997. .sp
  57998. .nf
  57999. .ft C
  58000. salt\-cloud \-f delete_service my\-azure name=my\-service
  58001. .ft P
  58002. .fi
  58003. .UNINDENT
  58004. .UNINDENT
  58005. .SS Managing Storage Accounts
  58006. .sp
  58007. New in version 2015.8.0.
  58008. .sp
  58009. Salt Cloud can manage storage accounts associated with the account. The
  58010. following functions are available. Deprecated marked as deprecated are marked
  58011. as such as per the SDK documentation, but are still included for completeness
  58012. with the SDK.
  58013. .SS create_storage
  58014. .sp
  58015. Create a storage account. The following options are supported.
  58016. .SS name
  58017. .sp
  58018. Required. The name of the storage account to create.
  58019. .SS label
  58020. .sp
  58021. Required. A label to apply to the storage account.
  58022. .SS description
  58023. .sp
  58024. Optional. A longer description of the storage account.
  58025. .SS location
  58026. .sp
  58027. Required, if \fBaffinity_group\fP is not set. The location in which to create the
  58028. storage account. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  58029. but not both.
  58030. .SS affinity_group
  58031. .sp
  58032. Required, if \fBlocation\fP is not set. The affinity group in which to create the
  58033. storage account. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  58034. but not both.
  58035. .SS extended_properties
  58036. .sp
  58037. Optional. Dictionary containing name/value pairs of storage account properties.
  58038. You can have a maximum of 50 extended property name/value pairs. The maximum
  58039. length of the Name element is 64 characters, only alphanumeric characters and
  58040. underscores are valid in the Name, and the name must start with a letter. The
  58041. value has a maximum length of 255 characters.
  58042. .SS geo_replication_enabled
  58043. .sp
  58044. Deprecated. Replaced by the account_type parameter.
  58045. .SS account_type
  58046. .sp
  58047. Specifies whether the account supports locally\-redundant storage, geo\-redundant
  58048. storage, zone\-redundant storage, or read access geo\-redundant storage. Possible
  58049. values are:
  58050. .INDENT 0.0
  58051. .IP \(bu 2
  58052. Standard_LRS
  58053. .IP \(bu 2
  58054. Standard_ZRS
  58055. .IP \(bu 2
  58056. Standard_GRS
  58057. .IP \(bu 2
  58058. Standard_RAGRS
  58059. .UNINDENT
  58060. .SS CLI Example
  58061. .sp
  58062. The following example illustrates creating a storage account.
  58063. .INDENT 0.0
  58064. .INDENT 3.5
  58065. .sp
  58066. .nf
  58067. .ft C
  58068. salt\-cloud \-f create_storage my\-azure name=my\-storage label=my\-storage location=\(aqWest US\(aq
  58069. .ft P
  58070. .fi
  58071. .UNINDENT
  58072. .UNINDENT
  58073. .SS list_storage
  58074. .sp
  58075. List all storage accounts associates with the subscription.
  58076. .INDENT 0.0
  58077. .INDENT 3.5
  58078. .sp
  58079. .nf
  58080. .ft C
  58081. salt\-cloud \-f list_storage my\-azure\-config
  58082. .ft P
  58083. .fi
  58084. .UNINDENT
  58085. .UNINDENT
  58086. .SS show_storage
  58087. .sp
  58088. Return details about a specific storage account. Can also be called with
  58089. \fBget_storage\fP\&.
  58090. .INDENT 0.0
  58091. .INDENT 3.5
  58092. .sp
  58093. .nf
  58094. .ft C
  58095. salt\-cloud \-f show_storage my\-azure name=my\-storage
  58096. .ft P
  58097. .fi
  58098. .UNINDENT
  58099. .UNINDENT
  58100. .SS update_storage
  58101. .sp
  58102. Update details concerning a storage account. Any of the options available in
  58103. \fBcreate_storage\fP can be used, but the name cannot be changed.
  58104. .INDENT 0.0
  58105. .INDENT 3.5
  58106. .sp
  58107. .nf
  58108. .ft C
  58109. salt\-cloud \-f update_storage my\-azure name=my\-storage label=my\-storage
  58110. .ft P
  58111. .fi
  58112. .UNINDENT
  58113. .UNINDENT
  58114. .SS delete_storage
  58115. .sp
  58116. Delete a specific storage account.
  58117. .INDENT 0.0
  58118. .INDENT 3.5
  58119. .sp
  58120. .nf
  58121. .ft C
  58122. salt\-cloud \-f delete_storage my\-azure name=my\-storage
  58123. .ft P
  58124. .fi
  58125. .UNINDENT
  58126. .UNINDENT
  58127. .SS show_storage_keys
  58128. .sp
  58129. Returns the primary and secondary access keys for the specified storage account.
  58130. .INDENT 0.0
  58131. .INDENT 3.5
  58132. .sp
  58133. .nf
  58134. .ft C
  58135. salt\-cloud \-f show_storage_keys my\-azure name=my\-storage
  58136. .ft P
  58137. .fi
  58138. .UNINDENT
  58139. .UNINDENT
  58140. .SS regenerate_storage_keys
  58141. .sp
  58142. Regenerate storage account keys. Requires a key_type ("primary" or "secondary")
  58143. to be specified.
  58144. .INDENT 0.0
  58145. .INDENT 3.5
  58146. .sp
  58147. .nf
  58148. .ft C
  58149. salt\-cloud \-f regenerate_storage_keys my\-azure name=my\-storage key_type=primary
  58150. .ft P
  58151. .fi
  58152. .UNINDENT
  58153. .UNINDENT
  58154. .SS Managing Disks
  58155. .sp
  58156. New in version 2015.8.0.
  58157. .sp
  58158. When a VM is created, a disk will also be created for it. The following
  58159. functions are available for managing disks. Deprecated marked as deprecated are
  58160. marked as such as per the SDK documentation, but are still included for
  58161. completeness with the SDK.
  58162. .SS show_disk
  58163. .sp
  58164. Return details about a specific disk. Can also be called with \fBget_disk\fP\&.
  58165. .INDENT 0.0
  58166. .INDENT 3.5
  58167. .sp
  58168. .nf
  58169. .ft C
  58170. salt\-cloud \-f show_disk my\-azure name=my\-disk
  58171. .ft P
  58172. .fi
  58173. .UNINDENT
  58174. .UNINDENT
  58175. .SS list_disks
  58176. .sp
  58177. List all disks associates with the account.
  58178. .INDENT 0.0
  58179. .INDENT 3.5
  58180. .sp
  58181. .nf
  58182. .ft C
  58183. salt\-cloud \-f list_disks my\-azure
  58184. .ft P
  58185. .fi
  58186. .UNINDENT
  58187. .UNINDENT
  58188. .SS update_disk
  58189. .sp
  58190. Update details for a disk. The following options are available.
  58191. .SS name
  58192. .sp
  58193. Required. The name of the disk to update.
  58194. .SS has_operating_system
  58195. .sp
  58196. Deprecated.
  58197. .SS label
  58198. .sp
  58199. Required. The label for the disk.
  58200. .SS media_link
  58201. .sp
  58202. Deprecated. The location of the disk in the account, including the storage
  58203. container that it is in. This should not need to be changed.
  58204. .SS new_name
  58205. .sp
  58206. Deprecated. If renaming the disk, the new name.
  58207. .SS os
  58208. .sp
  58209. Deprecated.
  58210. .SS CLI Example
  58211. .sp
  58212. The following example illustrates updating a disk.
  58213. .INDENT 0.0
  58214. .INDENT 3.5
  58215. .sp
  58216. .nf
  58217. .ft C
  58218. salt\-cloud \-f update_disk my\-azure name=my\-disk label=my\-disk
  58219. .ft P
  58220. .fi
  58221. .UNINDENT
  58222. .UNINDENT
  58223. .SS delete_disk
  58224. .sp
  58225. Delete a specific disk.
  58226. .INDENT 0.0
  58227. .INDENT 3.5
  58228. .sp
  58229. .nf
  58230. .ft C
  58231. salt\-cloud \-f delete_disk my\-azure name=my\-disk
  58232. .ft P
  58233. .fi
  58234. .UNINDENT
  58235. .UNINDENT
  58236. .SS Managing Service Certificates
  58237. .sp
  58238. New in version 2015.8.0.
  58239. .sp
  58240. Stored at the cloud service level, these certificates are used by your deployed
  58241. services. For more information on service certificates, see the following link:
  58242. .INDENT 0.0
  58243. .IP \(bu 2
  58244. \fI\%Manage Certificates\fP
  58245. .UNINDENT
  58246. .sp
  58247. The following functions are available.
  58248. .SS list_service_certificates
  58249. .sp
  58250. List service certificates associated with the account.
  58251. .INDENT 0.0
  58252. .INDENT 3.5
  58253. .sp
  58254. .nf
  58255. .ft C
  58256. salt\-cloud \-f list_service_certificates my\-azure
  58257. .ft P
  58258. .fi
  58259. .UNINDENT
  58260. .UNINDENT
  58261. .SS show_service_certificate
  58262. .sp
  58263. Show the data for a specific service certificate associated with the account.
  58264. The \fBname\fP, \fBthumbprint\fP, and \fBthumbalgorithm\fP can be obtained from
  58265. \fBlist_service_certificates\fP\&. Can also be called with
  58266. \fBget_service_certificate\fP\&.
  58267. .INDENT 0.0
  58268. .INDENT 3.5
  58269. .sp
  58270. .nf
  58271. .ft C
  58272. salt\-cloud \-f show_service_certificate my\-azure name=my_service_certificate \e
  58273. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58274. .ft P
  58275. .fi
  58276. .UNINDENT
  58277. .UNINDENT
  58278. .SS add_service_certificate
  58279. .sp
  58280. Add a service certificate to the account. This requires that a certificate
  58281. already exists, which is then added to the account. For more information on
  58282. creating the certificate itself, see:
  58283. .INDENT 0.0
  58284. .IP \(bu 2
  58285. \fI\%Create a Service Certificate for Azure\fP
  58286. .UNINDENT
  58287. .sp
  58288. The following options are available.
  58289. .SS name
  58290. .sp
  58291. Required. The name of the hosted service that the certificate will belong to.
  58292. .SS data
  58293. .sp
  58294. Required. The base\-64 encoded form of the pfx file.
  58295. .SS certificate_format
  58296. .sp
  58297. Required. The service certificate format. The only supported value is pfx.
  58298. .SS password
  58299. .sp
  58300. The certificate password.
  58301. .INDENT 0.0
  58302. .INDENT 3.5
  58303. .sp
  58304. .nf
  58305. .ft C
  58306. salt\-cloud \-f add_service_certificate my\-azure name=my\-cert \e
  58307. data=\(aq...CERT_DATA...\(aq certificate_format=pfx password=verybadpass
  58308. .ft P
  58309. .fi
  58310. .UNINDENT
  58311. .UNINDENT
  58312. .SS delete_service_certificate
  58313. .sp
  58314. Delete a service certificate from the account. The \fBname\fP, \fBthumbprint\fP,
  58315. and \fBthumbalgorithm\fP can be obtained from \fBlist_service_certificates\fP\&.
  58316. .INDENT 0.0
  58317. .INDENT 3.5
  58318. .sp
  58319. .nf
  58320. .ft C
  58321. salt\-cloud \-f delete_service_certificate my\-azure \e
  58322. name=my_service_certificate \e
  58323. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58324. .ft P
  58325. .fi
  58326. .UNINDENT
  58327. .UNINDENT
  58328. .SS Managing Management Certificates
  58329. .sp
  58330. New in version 2015.8.0.
  58331. .sp
  58332. A Azure management certificate is an X.509 v3 certificate used to authenticate
  58333. an agent, such as Visual Studio Tools for Windows Azure or a client application
  58334. that uses the Service Management API, acting on behalf of the subscription owner
  58335. to manage subscription resources. Azure management certificates are uploaded to
  58336. Azure and stored at the subscription level. The management certificate store can
  58337. hold up to 100 certificates per subscription. These certificates are used to
  58338. authenticate your Windows Azure deployment.
  58339. .sp
  58340. For more information on management certificates, see the following link.
  58341. .INDENT 0.0
  58342. .IP \(bu 2
  58343. \fI\%Manage Certificates\fP
  58344. .UNINDENT
  58345. .sp
  58346. The following functions are available.
  58347. .SS list_management_certificates
  58348. .sp
  58349. List management certificates associated with the account.
  58350. .INDENT 0.0
  58351. .INDENT 3.5
  58352. .sp
  58353. .nf
  58354. .ft C
  58355. salt\-cloud \-f list_management_certificates my\-azure
  58356. .ft P
  58357. .fi
  58358. .UNINDENT
  58359. .UNINDENT
  58360. .SS show_management_certificate
  58361. .sp
  58362. Show the data for a specific management certificate associated with the account.
  58363. The \fBname\fP, \fBthumbprint\fP, and \fBthumbalgorithm\fP can be obtained from
  58364. \fBlist_management_certificates\fP\&. Can also be called with
  58365. \fBget_management_certificate\fP\&.
  58366. .INDENT 0.0
  58367. .INDENT 3.5
  58368. .sp
  58369. .nf
  58370. .ft C
  58371. salt\-cloud \-f show_management_certificate my\-azure name=my_management_certificate \e
  58372. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58373. .ft P
  58374. .fi
  58375. .UNINDENT
  58376. .UNINDENT
  58377. .SS add_management_certificate
  58378. .sp
  58379. Management certificates must have a key length of at least 2048 bits and should
  58380. reside in the Personal certificate store. When the certificate is installed on
  58381. the client, it should contain the private key of the certificate. To upload to
  58382. the certificate to the Microsoft Azure Management Portal, you must export it as
  58383. a .cer format file that does not contain the private key. For more information
  58384. on creating management certificates, see the following link:
  58385. .INDENT 0.0
  58386. .IP \(bu 2
  58387. \fI\%Create and Upload a Management Certificate for Azure\fP
  58388. .UNINDENT
  58389. .sp
  58390. The following options are available.
  58391. .SS public_key
  58392. .sp
  58393. A base64 representation of the management certificate public key.
  58394. .SS thumbprint
  58395. .sp
  58396. The thumb print that uniquely identifies the management certificate.
  58397. .SS data
  58398. .sp
  58399. The certificate\(aqs raw data in base\-64 encoded .cer format.
  58400. .INDENT 0.0
  58401. .INDENT 3.5
  58402. .sp
  58403. .nf
  58404. .ft C
  58405. salt\-cloud \-f add_management_certificate my\-azure public_key=\(aq...PUBKEY...\(aq \e
  58406. thumbprint=0123456789ABCDEF data=\(aq...CERT_DATA...\(aq
  58407. .ft P
  58408. .fi
  58409. .UNINDENT
  58410. .UNINDENT
  58411. .SS delete_management_certificate
  58412. .sp
  58413. Delete a management certificate from the account. The \fBthumbprint\fP can be
  58414. obtained from \fBlist_management_certificates\fP\&.
  58415. .INDENT 0.0
  58416. .INDENT 3.5
  58417. .sp
  58418. .nf
  58419. .ft C
  58420. salt\-cloud \-f delete_management_certificate my\-azure thumbprint=0123456789ABCDEF
  58421. .ft P
  58422. .fi
  58423. .UNINDENT
  58424. .UNINDENT
  58425. .SS Virtual Network Management
  58426. .sp
  58427. New in version 2015.8.0.
  58428. .sp
  58429. The following are functions for managing virtual networks.
  58430. .SS list_virtual_networks
  58431. .sp
  58432. List input endpoints associated with the deployment.
  58433. .INDENT 0.0
  58434. .INDENT 3.5
  58435. .sp
  58436. .nf
  58437. .ft C
  58438. salt\-cloud \-f list_virtual_networks my\-azure service=myservice deployment=mydeployment
  58439. .ft P
  58440. .fi
  58441. .UNINDENT
  58442. .UNINDENT
  58443. .SS Managing Input Endpoints
  58444. .sp
  58445. New in version 2015.8.0.
  58446. .sp
  58447. Input endpoints are used to manage port access for roles. Because endpoints
  58448. cannot be managed by the Azure Python SDK, Salt Cloud uses the API directly.
  58449. With versions of Python before 2.7.9, the \fBrequests\-python\fP package needs to
  58450. be installed in order for this to work. Additionally, the following needs to be
  58451. set in the master\(aqs configuration file:
  58452. .INDENT 0.0
  58453. .INDENT 3.5
  58454. .sp
  58455. .nf
  58456. .ft C
  58457. backend: requests
  58458. .ft P
  58459. .fi
  58460. .UNINDENT
  58461. .UNINDENT
  58462. .sp
  58463. The following functions are available.
  58464. .SS list_input_endpoints
  58465. .sp
  58466. List input endpoints associated with the deployment
  58467. .INDENT 0.0
  58468. .INDENT 3.5
  58469. .sp
  58470. .nf
  58471. .ft C
  58472. salt\-cloud \-f list_input_endpoints my\-azure service=myservice deployment=mydeployment
  58473. .ft P
  58474. .fi
  58475. .UNINDENT
  58476. .UNINDENT
  58477. .SS show_input_endpoint
  58478. .sp
  58479. Show an input endpoint associated with the deployment
  58480. .INDENT 0.0
  58481. .INDENT 3.5
  58482. .sp
  58483. .nf
  58484. .ft C
  58485. salt\-cloud \-f show_input_endpoint my\-azure service=myservice \e
  58486. deployment=mydeployment name=SSH
  58487. .ft P
  58488. .fi
  58489. .UNINDENT
  58490. .UNINDENT
  58491. .SS add_input_endpoint
  58492. .sp
  58493. Add an input endpoint to the deployment. Please note that there may be a delay
  58494. before the changes show up. The following options are available.
  58495. .SS service
  58496. .sp
  58497. Required. The name of the hosted service which the VM belongs to.
  58498. .SS deployment
  58499. .sp
  58500. Required. The name of the deployment that the VM belongs to. If the VM was
  58501. created with Salt Cloud, the deployment name probably matches the VM name.
  58502. .SS role
  58503. .sp
  58504. Required. The name of the role that the VM belongs to. If the VM was created
  58505. with Salt Cloud, the role name probably matches the VM name.
  58506. .SS name
  58507. .sp
  58508. Required. The name of the input endpoint. This typically matches the port that
  58509. the endpoint is set to. For instance, port 22 would be called SSH.
  58510. .SS port
  58511. .sp
  58512. Required. The public (Internet\-facing) port that is used for the endpoint.
  58513. .SS local_port
  58514. .sp
  58515. Optional. The private port on the VM itself that will be matched with the port.
  58516. This is typically the same as the \fBport\fP\&. If this value is not specified, it
  58517. will be copied from \fBport\fP\&.
  58518. .SS protocol
  58519. .sp
  58520. Required. Either \fBtcp\fP or \fBudp\fP\&.
  58521. .SS enable_direct_server_return
  58522. .sp
  58523. Optional. If an internal load balancer exists in the account, it can be used
  58524. with a direct server return. The default value is \fBFalse\fP\&. Please see the
  58525. following article for an explanation of this option.
  58526. .INDENT 0.0
  58527. .IP \(bu 2
  58528. \fI\%Load Balancing for Azure Infrastructure Services\fP
  58529. .UNINDENT
  58530. .SS timeout_for_tcp_idle_connection
  58531. .sp
  58532. Optional. The default value is \fB4\fP\&. Please see the following article for an
  58533. explanation of this option.
  58534. .INDENT 0.0
  58535. .IP \(bu 2
  58536. \fI\%Configurable Idle Timeout for Azure Load Balancer\fP
  58537. .UNINDENT
  58538. .SS CLI Example
  58539. .sp
  58540. The following example illustrates adding an input endpoint.
  58541. .INDENT 0.0
  58542. .INDENT 3.5
  58543. .sp
  58544. .nf
  58545. .ft C
  58546. salt\-cloud \-f add_input_endpoint my\-azure service=myservice \e
  58547. deployment=mydeployment role=myrole name=HTTP local_port=80 \e
  58548. port=80 protocol=tcp enable_direct_server_return=False \e
  58549. timeout_for_tcp_idle_connection=4
  58550. .ft P
  58551. .fi
  58552. .UNINDENT
  58553. .UNINDENT
  58554. .SS update_input_endpoint
  58555. .sp
  58556. Updates the details for a specific input endpoint. All options from
  58557. \fBadd_input_endpoint\fP are supported.
  58558. .INDENT 0.0
  58559. .INDENT 3.5
  58560. .sp
  58561. .nf
  58562. .ft C
  58563. salt\-cloud \-f update_input_endpoint my\-azure service=myservice \e
  58564. deployment=mydeployment role=myrole name=HTTP local_port=80 \e
  58565. port=80 protocol=tcp enable_direct_server_return=False \e
  58566. timeout_for_tcp_idle_connection=4
  58567. .ft P
  58568. .fi
  58569. .UNINDENT
  58570. .UNINDENT
  58571. .SS delete_input_endpoint
  58572. .sp
  58573. Delete an input endpoint from the deployment. Please note that there may be a
  58574. delay before the changes show up. The following items are required.
  58575. .SS CLI Example
  58576. .sp
  58577. The following example illustrates deleting an input endpoint.
  58578. .SS service
  58579. .sp
  58580. The name of the hosted service which the VM belongs to.
  58581. .SS deployment
  58582. .sp
  58583. The name of the deployment that the VM belongs to. If the VM was created with
  58584. Salt Cloud, the deployment name probably matches the VM name.
  58585. .SS role
  58586. .sp
  58587. The name of the role that the VM belongs to. If the VM was created with Salt
  58588. Cloud, the role name probably matches the VM name.
  58589. .SS name
  58590. .sp
  58591. The name of the input endpoint. This typically matches the port that the
  58592. endpoint is set to. For instance, port 22 would be called SSH.
  58593. .INDENT 0.0
  58594. .INDENT 3.5
  58595. .sp
  58596. .nf
  58597. .ft C
  58598. salt\-cloud \-f delete_input_endpoint my\-azure service=myservice \e
  58599. deployment=mydeployment role=myrole name=HTTP
  58600. .ft P
  58601. .fi
  58602. .UNINDENT
  58603. .UNINDENT
  58604. .SS Managing Affinity Groups
  58605. .sp
  58606. New in version 2015.8.0.
  58607. .sp
  58608. Affinity groups allow you to group your Azure services to optimize performance.
  58609. All services and VMs within an affinity group will be located in the same
  58610. region. For more information on Affinity groups, see the following link:
  58611. .INDENT 0.0
  58612. .IP \(bu 2
  58613. \fI\%Create an Affinity Group in the Management Portal\fP
  58614. .UNINDENT
  58615. .sp
  58616. The following functions are available.
  58617. .SS list_affinity_groups
  58618. .sp
  58619. List input endpoints associated with the account
  58620. .INDENT 0.0
  58621. .INDENT 3.5
  58622. .sp
  58623. .nf
  58624. .ft C
  58625. salt\-cloud \-f list_affinity_groups my\-azure
  58626. .ft P
  58627. .fi
  58628. .UNINDENT
  58629. .UNINDENT
  58630. .SS show_affinity_group
  58631. .sp
  58632. Show an affinity group associated with the account
  58633. .INDENT 0.0
  58634. .INDENT 3.5
  58635. .sp
  58636. .nf
  58637. .ft C
  58638. salt\-cloud \-f show_affinity_group my\-azure service=myservice \e
  58639. deployment=mydeployment name=SSH
  58640. .ft P
  58641. .fi
  58642. .UNINDENT
  58643. .UNINDENT
  58644. .SS create_affinity_group
  58645. .sp
  58646. Create a new affinity group. The following options are supported.
  58647. .SS name
  58648. .sp
  58649. Required. The name of the new affinity group.
  58650. .SS location
  58651. .sp
  58652. Required. The region in which the affinity group lives.
  58653. .SS label
  58654. .sp
  58655. Required. A label describing the new affinity group.
  58656. .SS description
  58657. .sp
  58658. Optional. A longer description of the affinity group.
  58659. .INDENT 0.0
  58660. .INDENT 3.5
  58661. .sp
  58662. .nf
  58663. .ft C
  58664. salt\-cloud \-f create_affinity_group my\-azure name=my_affinity_group \e
  58665. label=my\-affinity\-group location=\(aqWest US\(aq
  58666. .ft P
  58667. .fi
  58668. .UNINDENT
  58669. .UNINDENT
  58670. .SS update_affinity_group
  58671. .sp
  58672. Update an affinity group\(aqs properties
  58673. .INDENT 0.0
  58674. .INDENT 3.5
  58675. .sp
  58676. .nf
  58677. .ft C
  58678. salt\-cloud \-f update_affinity_group my\-azure name=my_group label=my_group
  58679. .ft P
  58680. .fi
  58681. .UNINDENT
  58682. .UNINDENT
  58683. .SS delete_affinity_group
  58684. .sp
  58685. Delete a specific affinity group associated with the account
  58686. .INDENT 0.0
  58687. .INDENT 3.5
  58688. .sp
  58689. .nf
  58690. .ft C
  58691. salt\-cloud \-f delete_affinity_group my\-azure name=my_affinity_group
  58692. .ft P
  58693. .fi
  58694. .UNINDENT
  58695. .UNINDENT
  58696. .SS Managing Blob Storage
  58697. .sp
  58698. New in version 2015.8.0.
  58699. .sp
  58700. Azure storage containers and their contents can be managed with Salt Cloud. This
  58701. is not as elegant as using one of the other available clients in Windows, but it
  58702. benefits Linux and Unix users, as there are fewer options available on those
  58703. platforms.
  58704. .SS Blob Storage Configuration
  58705. .sp
  58706. Blob storage must be configured differently than the standard Azure
  58707. configuration. Both a \fBstorage_account\fP and a \fBstorage_key\fP must be
  58708. specified either through the Azure provider configuration (in addition to the
  58709. other Azure configuration) or via the command line.
  58710. .INDENT 0.0
  58711. .INDENT 3.5
  58712. .sp
  58713. .nf
  58714. .ft C
  58715. storage_account: mystorage
  58716. storage_key: ffhj334fDSGFEGDFGFDewr34fwfsFSDFwe==
  58717. .ft P
  58718. .fi
  58719. .UNINDENT
  58720. .UNINDENT
  58721. .SS storage_account
  58722. .sp
  58723. This is one of the storage accounts that is available via the \fBlist_storage\fP
  58724. function.
  58725. .SS storage_key
  58726. .sp
  58727. Both a primary and a secondary \fBstorage_key\fP can be obtained by running the
  58728. \fBshow_storage_keys\fP function. Either key may be used.
  58729. .SS Blob Functions
  58730. .sp
  58731. The following functions are made available through Salt Cloud for managing
  58732. blog storage.
  58733. .SS make_blob_url
  58734. .sp
  58735. Creates the URL to access a blob
  58736. .INDENT 0.0
  58737. .INDENT 3.5
  58738. .sp
  58739. .nf
  58740. .ft C
  58741. salt\-cloud \-f make_blob_url my\-azure container=mycontainer blob=myblob
  58742. .ft P
  58743. .fi
  58744. .UNINDENT
  58745. .UNINDENT
  58746. .SS container
  58747. .sp
  58748. Name of the container.
  58749. .SS blob
  58750. .sp
  58751. Name of the blob.
  58752. .SS account
  58753. .sp
  58754. Name of the storage account. If not specified, derives the host base
  58755. from the provider configuration.
  58756. .SS protocol
  58757. .sp
  58758. Protocol to use: \(aqhttp\(aq or \(aqhttps\(aq. If not specified, derives the host
  58759. base from the provider configuration.
  58760. .SS host_base
  58761. .sp
  58762. Live host base URL. If not specified, derives the host base from the
  58763. provider configuration.
  58764. .SS list_storage_containers
  58765. .sp
  58766. List containers associated with the storage account
  58767. .INDENT 0.0
  58768. .INDENT 3.5
  58769. .sp
  58770. .nf
  58771. .ft C
  58772. salt\-cloud \-f list_storage_containers my\-azure
  58773. .ft P
  58774. .fi
  58775. .UNINDENT
  58776. .UNINDENT
  58777. .SS create_storage_container
  58778. .sp
  58779. Create a storage container
  58780. .INDENT 0.0
  58781. .INDENT 3.5
  58782. .sp
  58783. .nf
  58784. .ft C
  58785. salt\-cloud \-f create_storage_container my\-azure name=mycontainer
  58786. .ft P
  58787. .fi
  58788. .UNINDENT
  58789. .UNINDENT
  58790. .SS name
  58791. .sp
  58792. Name of container to create.
  58793. .SS meta_name_values
  58794. .sp
  58795. Optional. A dict with name_value pairs to associate with the
  58796. container as metadata. Example:{\(aqCategory\(aq:\(aqtest\(aq}
  58797. .SS blob_public_access
  58798. .sp
  58799. Optional. Possible values include: container, blob
  58800. .SS fail_on_exist
  58801. .sp
  58802. Specify whether to throw an exception when the container exists.
  58803. .SS show_storage_container
  58804. .sp
  58805. Show a container associated with the storage account
  58806. .INDENT 0.0
  58807. .INDENT 3.5
  58808. .sp
  58809. .nf
  58810. .ft C
  58811. salt\-cloud \-f show_storage_container my\-azure name=myservice
  58812. .ft P
  58813. .fi
  58814. .UNINDENT
  58815. .UNINDENT
  58816. .SS name
  58817. .sp
  58818. Name of container to show.
  58819. .SS show_storage_container_metadata
  58820. .sp
  58821. Show a storage container\(aqs metadata
  58822. .INDENT 0.0
  58823. .INDENT 3.5
  58824. .sp
  58825. .nf
  58826. .ft C
  58827. salt\-cloud \-f show_storage_container_metadata my\-azure name=myservice
  58828. .ft P
  58829. .fi
  58830. .UNINDENT
  58831. .UNINDENT
  58832. .SS name
  58833. .sp
  58834. Name of container to show.
  58835. .SS lease_id
  58836. .sp
  58837. If specified, show_storage_container_metadata only succeeds if the
  58838. container\(aqs lease is active and matches this ID.
  58839. .SS set_storage_container_metadata
  58840. .sp
  58841. Set a storage container\(aqs metadata
  58842. .INDENT 0.0
  58843. .INDENT 3.5
  58844. .sp
  58845. .nf
  58846. .ft C
  58847. salt\-cloud \-f set_storage_container my\-azure name=mycontainer \e
  58848. x_ms_meta_name_values=\(aq{"my_name": "my_value"}\(aq
  58849. .ft P
  58850. .fi
  58851. .UNINDENT
  58852. .UNINDENT
  58853. .SS name
  58854. .sp
  58855. Name of existing container.
  58856. meta_name_values
  58857. \fB\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\fP
  58858. A dict containing name, value for metadata.
  58859. Example: {\(aqcategory\(aq:\(aqtest\(aq}
  58860. lease_id
  58861. \fB\(ga\(ga\(ga\(ga\fP
  58862. If specified, set_storage_container_metadata only succeeds if the
  58863. container\(aqs lease is active and matches this ID.
  58864. .SS show_storage_container_acl
  58865. .sp
  58866. Show a storage container\(aqs acl
  58867. .INDENT 0.0
  58868. .INDENT 3.5
  58869. .sp
  58870. .nf
  58871. .ft C
  58872. salt\-cloud \-f show_storage_container_acl my\-azure name=myservice
  58873. .ft P
  58874. .fi
  58875. .UNINDENT
  58876. .UNINDENT
  58877. .SS name
  58878. .sp
  58879. Name of existing container.
  58880. .SS lease_id
  58881. .sp
  58882. If specified, show_storage_container_acl only succeeds if the
  58883. container\(aqs lease is active and matches this ID.
  58884. .SS set_storage_container_acl
  58885. .sp
  58886. Set a storage container\(aqs acl
  58887. .INDENT 0.0
  58888. .INDENT 3.5
  58889. .sp
  58890. .nf
  58891. .ft C
  58892. salt\-cloud \-f set_storage_container my\-azure name=mycontainer
  58893. .ft P
  58894. .fi
  58895. .UNINDENT
  58896. .UNINDENT
  58897. .SS name
  58898. .sp
  58899. Name of existing container.
  58900. .SS signed_identifiers
  58901. .sp
  58902. SignedIdentifers instance
  58903. .SS blob_public_access
  58904. .sp
  58905. Optional. Possible values include: container, blob
  58906. .SS lease_id
  58907. .sp
  58908. If specified, set_storage_container_acl only succeeds if the
  58909. container\(aqs lease is active and matches this ID.
  58910. .SS delete_storage_container
  58911. .sp
  58912. Delete a container associated with the storage account
  58913. .INDENT 0.0
  58914. .INDENT 3.5
  58915. .sp
  58916. .nf
  58917. .ft C
  58918. salt\-cloud \-f delete_storage_container my\-azure name=mycontainer
  58919. .ft P
  58920. .fi
  58921. .UNINDENT
  58922. .UNINDENT
  58923. .SS name
  58924. .sp
  58925. Name of container to create.
  58926. .SS fail_not_exist
  58927. .sp
  58928. Specify whether to throw an exception when the container exists.
  58929. .SS lease_id
  58930. .sp
  58931. If specified, delete_storage_container only succeeds if the
  58932. container\(aqs lease is active and matches this ID.
  58933. .SS lease_storage_container
  58934. .sp
  58935. Lease a container associated with the storage account
  58936. .INDENT 0.0
  58937. .INDENT 3.5
  58938. .sp
  58939. .nf
  58940. .ft C
  58941. salt\-cloud \-f lease_storage_container my\-azure name=mycontainer
  58942. .ft P
  58943. .fi
  58944. .UNINDENT
  58945. .UNINDENT
  58946. .SS name
  58947. .sp
  58948. Name of container to create.
  58949. .SS lease_action
  58950. .sp
  58951. Required. Possible values: acquire|renew|release|break|change
  58952. .SS lease_id
  58953. .sp
  58954. Required if the container has an active lease.
  58955. .SS lease_duration
  58956. .sp
  58957. Specifies the duration of the lease, in seconds, or negative one
  58958. (\-1) for a lease that never expires. A non\-infinite lease can be
  58959. between 15 and 60 seconds. A lease duration cannot be changed
  58960. using renew or change. For backwards compatibility, the default is
  58961. 60, and the value is only used on an acquire operation.
  58962. .SS lease_break_period
  58963. .sp
  58964. Optional. For a break operation, this is the proposed duration of
  58965. seconds that the lease should continue before it is broken, between
  58966. 0 and 60 seconds. This break period is only used if it is shorter
  58967. than the time remaining on the lease. If longer, the time remaining
  58968. on the lease is used. A new lease will not be available before the
  58969. break period has expired, but the lease may be held for longer than
  58970. the break period. If this header does not appear with a break
  58971. operation, a fixed\-duration lease breaks after the remaining lease
  58972. period elapses, and an infinite lease breaks immediately.
  58973. .SS proposed_lease_id
  58974. .sp
  58975. Optional for acquire, required for change. Proposed lease ID, in a
  58976. GUID string format.
  58977. .SS list_blobs
  58978. .sp
  58979. List blobs associated with the container
  58980. .INDENT 0.0
  58981. .INDENT 3.5
  58982. .sp
  58983. .nf
  58984. .ft C
  58985. salt\-cloud \-f list_blobs my\-azure container=mycontainer
  58986. .ft P
  58987. .fi
  58988. .UNINDENT
  58989. .UNINDENT
  58990. .SS container
  58991. .sp
  58992. The name of the storage container
  58993. .SS prefix
  58994. .sp
  58995. Optional. Filters the results to return only blobs whose names
  58996. begin with the specified prefix.
  58997. .SS marker
  58998. .sp
  58999. Optional. A string value that identifies the portion of the list
  59000. to be returned with the next list operation. The operation returns
  59001. a marker value within the response body if the list returned was
  59002. not complete. The marker value may then be used in a subsequent
  59003. call to request the next set of list items. The marker value is
  59004. opaque to the client.
  59005. .SS maxresults
  59006. .sp
  59007. Optional. Specifies the maximum number of blobs to return,
  59008. including all BlobPrefix elements. If the request does not specify
  59009. maxresults or specifies a value greater than 5,000, the server will
  59010. return up to 5,000 items. Setting maxresults to a value less than
  59011. or equal to zero results in error response code 400 (Bad Request).
  59012. .SS include
  59013. .sp
  59014. Optional. Specifies one or more datasets to include in the
  59015. response. To specify more than one of these options on the URI,
  59016. you must separate each option with a comma. Valid values are:
  59017. .INDENT 0.0
  59018. .INDENT 3.5
  59019. .sp
  59020. .nf
  59021. .ft C
  59022. snapshots:
  59023. Specifies that snapshots should be included in the
  59024. enumeration. Snapshots are listed from oldest to newest in
  59025. the response.
  59026. metadata:
  59027. Specifies that blob metadata be returned in the response.
  59028. uncommittedblobs:
  59029. Specifies that blobs for which blocks have been uploaded,
  59030. but which have not been committed using Put Block List
  59031. (REST API), be included in the response.
  59032. copy:
  59033. Version 2012\-02\-12 and newer. Specifies that metadata
  59034. related to any current or previous Copy Blob operation
  59035. should be included in the response.
  59036. .ft P
  59037. .fi
  59038. .UNINDENT
  59039. .UNINDENT
  59040. .SS delimiter
  59041. .sp
  59042. Optional. When the request includes this parameter, the operation
  59043. returns a BlobPrefix element in the response body that acts as a
  59044. placeholder for all blobs whose names begin with the same
  59045. substring up to the appearance of the delimiter character. The
  59046. delimiter may be a single character or a string.
  59047. .SS show_blob_service_properties
  59048. .sp
  59049. Show a blob\(aqs service properties
  59050. .INDENT 0.0
  59051. .INDENT 3.5
  59052. .sp
  59053. .nf
  59054. .ft C
  59055. salt\-cloud \-f show_blob_service_properties my\-azure
  59056. .ft P
  59057. .fi
  59058. .UNINDENT
  59059. .UNINDENT
  59060. .SS set_blob_service_properties
  59061. .sp
  59062. Sets the properties of a storage account\(aqs Blob service, including
  59063. Windows Azure Storage Analytics. You can also use this operation to
  59064. set the default request version for all incoming requests that do not
  59065. have a version specified.
  59066. .INDENT 0.0
  59067. .INDENT 3.5
  59068. .sp
  59069. .nf
  59070. .ft C
  59071. salt\-cloud \-f set_blob_service_properties my\-azure
  59072. .ft P
  59073. .fi
  59074. .UNINDENT
  59075. .UNINDENT
  59076. .SS properties
  59077. .sp
  59078. a StorageServiceProperties object.
  59079. .SS timeout
  59080. .sp
  59081. Optional. The timeout parameter is expressed in seconds.
  59082. .SS show_blob_properties
  59083. .sp
  59084. Returns all user\-defined metadata, standard HTTP properties, and
  59085. system properties for the blob.
  59086. .INDENT 0.0
  59087. .INDENT 3.5
  59088. .sp
  59089. .nf
  59090. .ft C
  59091. salt\-cloud \-f show_blob_properties my\-azure container=mycontainer blob=myblob
  59092. .ft P
  59093. .fi
  59094. .UNINDENT
  59095. .UNINDENT
  59096. .SS container
  59097. .sp
  59098. Name of existing container.
  59099. .SS blob
  59100. .sp
  59101. Name of existing blob.
  59102. .SS lease_id
  59103. .sp
  59104. Required if the blob has an active lease.
  59105. .SS set_blob_properties
  59106. .sp
  59107. Set a blob\(aqs properties
  59108. .INDENT 0.0
  59109. .INDENT 3.5
  59110. .sp
  59111. .nf
  59112. .ft C
  59113. salt\-cloud \-f set_blob_properties my\-azure
  59114. .ft P
  59115. .fi
  59116. .UNINDENT
  59117. .UNINDENT
  59118. .SS container
  59119. .sp
  59120. Name of existing container.
  59121. .SS blob
  59122. .sp
  59123. Name of existing blob.
  59124. .SS blob_cache_control
  59125. .sp
  59126. Optional. Modifies the cache control string for the blob.
  59127. .SS blob_content_type
  59128. .sp
  59129. Optional. Sets the blob\(aqs content type.
  59130. .SS blob_content_md5
  59131. .sp
  59132. Optional. Sets the blob\(aqs MD5 hash.
  59133. .SS blob_content_encoding
  59134. .sp
  59135. Optional. Sets the blob\(aqs content encoding.
  59136. .SS blob_content_language
  59137. .sp
  59138. Optional. Sets the blob\(aqs content language.
  59139. .SS lease_id
  59140. .sp
  59141. Required if the blob has an active lease.
  59142. .SS blob_content_disposition
  59143. .sp
  59144. Optional. Sets the blob\(aqs Content\-Disposition header.
  59145. The Content\-Disposition response header field conveys additional
  59146. information about how to process the response payload, and also can
  59147. be used to attach additional metadata. For example, if set to
  59148. attachment, it indicates that the user\-agent should not display the
  59149. response, but instead show a Save As dialog with a filename other
  59150. than the blob name specified.
  59151. .SS put_blob
  59152. .sp
  59153. Upload a blob
  59154. .INDENT 0.0
  59155. .INDENT 3.5
  59156. .sp
  59157. .nf
  59158. .ft C
  59159. salt\-cloud \-f put_blob my\-azure container=base name=top.sls blob_path=/srv/salt/top.sls
  59160. salt\-cloud \-f put_blob my\-azure container=base name=content.txt blob_content=\(aqSome content\(aq
  59161. .ft P
  59162. .fi
  59163. .UNINDENT
  59164. .UNINDENT
  59165. .SS container
  59166. .sp
  59167. Name of existing container.
  59168. .SS name
  59169. .sp
  59170. Name of existing blob.
  59171. .SS blob_path
  59172. .sp
  59173. The path on the local machine of the file to upload as a blob. Either
  59174. this or blob_content must be specified.
  59175. .SS blob_content
  59176. .sp
  59177. The actual content to be uploaded as a blob. Either this or blob_path
  59178. must me specified.
  59179. .SS cache_control
  59180. .sp
  59181. Optional. The Blob service stores this value but does not use or
  59182. modify it.
  59183. .SS content_language
  59184. .sp
  59185. Optional. Specifies the natural languages used by this resource.
  59186. .SS content_md5
  59187. .sp
  59188. Optional. An MD5 hash of the blob content. This hash is used to
  59189. verify the integrity of the blob during transport. When this header
  59190. is specified, the storage service checks the hash that has arrived
  59191. with the one that was sent. If the two hashes do not match, the
  59192. operation will fail with error code 400 (Bad Request).
  59193. .SS blob_content_type
  59194. .sp
  59195. Optional. Set the blob\(aqs content type.
  59196. .SS blob_content_encoding
  59197. .sp
  59198. Optional. Set the blob\(aqs content encoding.
  59199. .SS blob_content_language
  59200. .sp
  59201. Optional. Set the blob\(aqs content language.
  59202. .SS blob_content_md5
  59203. .sp
  59204. Optional. Set the blob\(aqs MD5 hash.
  59205. .SS blob_cache_control
  59206. .sp
  59207. Optional. Sets the blob\(aqs cache control.
  59208. .SS meta_name_values
  59209. .sp
  59210. A dict containing name, value for metadata.
  59211. .SS lease_id
  59212. .sp
  59213. Required if the blob has an active lease.
  59214. .SS get_blob
  59215. .sp
  59216. Download a blob
  59217. .INDENT 0.0
  59218. .INDENT 3.5
  59219. .sp
  59220. .nf
  59221. .ft C
  59222. salt\-cloud \-f get_blob my\-azure container=base name=top.sls local_path=/srv/salt/top.sls
  59223. salt\-cloud \-f get_blob my\-azure container=base name=content.txt return_content=True
  59224. .ft P
  59225. .fi
  59226. .UNINDENT
  59227. .UNINDENT
  59228. .SS container
  59229. .sp
  59230. Name of existing container.
  59231. .SS name
  59232. .sp
  59233. Name of existing blob.
  59234. .SS local_path
  59235. .sp
  59236. The path on the local machine to download the blob to. Either this or
  59237. return_content must be specified.
  59238. .SS return_content
  59239. .sp
  59240. Whether or not to return the content directly from the blob. If
  59241. specified, must be True or False. Either this or the local_path must
  59242. be specified.
  59243. .SS snapshot
  59244. .sp
  59245. Optional. The snapshot parameter is an opaque DateTime value that,
  59246. when present, specifies the blob snapshot to retrieve.
  59247. .SS lease_id
  59248. .sp
  59249. Required if the blob has an active lease.
  59250. .SS progress_callback
  59251. .sp
  59252. callback for progress with signature function(current, total) where
  59253. current is the number of bytes transferred so far, and total is the
  59254. size of the blob.
  59255. .SS max_connections
  59256. .sp
  59257. Maximum number of parallel connections to use when the blob size
  59258. exceeds 64MB.
  59259. Set to 1 to download the blob chunks sequentially.
  59260. Set to 2 or more to download the blob chunks in parallel. This uses
  59261. more system resources but will download faster.
  59262. .SS max_retries
  59263. .sp
  59264. Number of times to retry download of blob chunk if an error occurs.
  59265. .SS retry_wait
  59266. .sp
  59267. Sleep time in secs between retries.
  59268. .SS Getting Started With Azure ARM
  59269. .sp
  59270. New in version 2016.11.0.
  59271. .sp
  59272. Azure is a cloud service by Microsoft providing virtual machines, SQL services,
  59273. media services, and more. Azure ARM (aka, the Azure Resource Manager) is a next
  59274. generation version of the Azure portal and API. This document describes how to
  59275. use Salt Cloud to create a virtual machine on Azure ARM, with Salt installed.
  59276. .sp
  59277. More information about Azure is located at \fI\%http://www.windowsazure.com/\fP\&.
  59278. .SS Dependencies
  59279. .INDENT 0.0
  59280. .IP \(bu 2
  59281. \fI\%azure\fP >= 2.0.0rc6
  59282. .IP \(bu 2
  59283. \fI\%azure\-common\fP >= 1.1.4
  59284. .IP \(bu 2
  59285. \fI\%azure\-mgmt\fP >= 0.30.0rc6
  59286. .IP \(bu 2
  59287. \fI\%azure\-mgmt\-compute\fP >= 0.33.0
  59288. .IP \(bu 2
  59289. \fI\%azure\-mgmt\-network\fP >= 0.30.0rc6
  59290. .IP \(bu 2
  59291. \fI\%azure\-mgmt\-resource\fP >= 0.30.0
  59292. .IP \(bu 2
  59293. \fI\%azure\-mgmt\-storage\fP >= 0.30.0rc6
  59294. .IP \(bu 2
  59295. \fI\%azure\-mgmt\-web\fP >= 0.30.0rc6
  59296. .IP \(bu 2
  59297. \fI\%azure\-storage\fP >= 0.32.0
  59298. .IP \(bu 2
  59299. \fI\%msrestazure\fP >= 0.4.21
  59300. .IP \(bu 2
  59301. A Microsoft Azure account
  59302. .IP \(bu 2
  59303. \fI\%Salt\fP
  59304. .UNINDENT
  59305. .SS Installation Tips
  59306. .sp
  59307. Because the \fBazure\fP library requires the \fBcryptography\fP library, which is
  59308. compiled on\-the\-fly by \fBpip\fP, you may need to install the development tools
  59309. for your operating system.
  59310. .sp
  59311. Before you install \fBazure\fP with \fBpip\fP, you should make sure that the
  59312. required libraries are installed.
  59313. .SS Debian
  59314. .sp
  59315. For Debian and Ubuntu, the following command will ensure that the required
  59316. dependencies are installed:
  59317. .INDENT 0.0
  59318. .INDENT 3.5
  59319. .sp
  59320. .nf
  59321. .ft C
  59322. sudo apt\-get install build\-essential libssl\-dev libffi\-dev python\-dev
  59323. .ft P
  59324. .fi
  59325. .UNINDENT
  59326. .UNINDENT
  59327. .SS Red Hat
  59328. .sp
  59329. For Fedora and RHEL\-derivatives, the following command will ensure that the
  59330. required dependencies are installed:
  59331. .INDENT 0.0
  59332. .INDENT 3.5
  59333. .sp
  59334. .nf
  59335. .ft C
  59336. sudo yum install gcc libffi\-devel python\-devel openssl\-devel
  59337. .ft P
  59338. .fi
  59339. .UNINDENT
  59340. .UNINDENT
  59341. .SS Configuration
  59342. .sp
  59343. Set up the provider config at \fB/etc/salt/cloud.providers.d/azurearm.conf\fP:
  59344. .INDENT 0.0
  59345. .INDENT 3.5
  59346. .sp
  59347. .nf
  59348. .ft C
  59349. # Note: This example is for /etc/salt/cloud.providers.d/azurearm.conf
  59350. my\-azurearm\-config:
  59351. driver: azurearm
  59352. master: salt.example.com
  59353. subscription_id: 01234567\-890a\-bcde\-f012\-34567890abdc
  59354. # https://apps.dev.microsoft.com/#/appList
  59355. username: <username>@<subdomain>.onmicrosoft.com
  59356. password: verybadpass
  59357. location: westus
  59358. resource_group: my_rg
  59359. # Optional
  59360. network_resource_group: my_net_rg
  59361. cleanup_disks: True
  59362. cleanup_vhds: True
  59363. cleanup_data_disks: True
  59364. cleanup_interfaces: True
  59365. custom_data: \(aqThis is custom data\(aq
  59366. expire_publisher_cache: 604800 # 7 days
  59367. expire_offer_cache: 518400 # 6 days
  59368. expire_sku_cache: 432000 # 5 days
  59369. expire_version_cache: 345600 # 4 days
  59370. expire_group_cache: 14400 # 4 hours
  59371. expire_interface_cache: 3600 # 1 hour
  59372. expire_network_cache: 3600 # 1 hour
  59373. .ft P
  59374. .fi
  59375. .UNINDENT
  59376. .UNINDENT
  59377. .SS Cloud Profiles
  59378. .sp
  59379. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  59380. .INDENT 0.0
  59381. .INDENT 3.5
  59382. .sp
  59383. .nf
  59384. .ft C
  59385. azure\-ubuntu\-pass:
  59386. provider: my\-azure\-config
  59387. image: Canonical|UbuntuServer|14.04.5\-LTS|14.04.201612050
  59388. size: Standard_D1_v2
  59389. location: eastus
  59390. ssh_username: azureuser
  59391. ssh_password: verybadpass
  59392. azure\-ubuntu\-key:
  59393. provider: my\-azure\-config
  59394. image: Canonical|UbuntuServer|14.04.5\-LTS|14.04.201612050
  59395. size: Standard_D1_v2
  59396. location: eastus
  59397. ssh_username: azureuser
  59398. ssh_publickeyfile: /path/to/ssh_public_key.pub
  59399. azure\-win2012:
  59400. provider: my\-azure\-config
  59401. image: MicrosoftWindowsServer|WindowsServer|2012\-R2\-Datacenter|latest
  59402. size: Standard_D1_v2
  59403. location: westus
  59404. win_username: azureuser
  59405. win_password: verybadpass
  59406. .ft P
  59407. .fi
  59408. .UNINDENT
  59409. .UNINDENT
  59410. .sp
  59411. These options are described in more detail below. Once configured, the profile
  59412. can be realized with a salt command:
  59413. .INDENT 0.0
  59414. .INDENT 3.5
  59415. .sp
  59416. .nf
  59417. .ft C
  59418. salt\-cloud \-p azure\-ubuntu newinstance
  59419. .ft P
  59420. .fi
  59421. .UNINDENT
  59422. .UNINDENT
  59423. .sp
  59424. This will create an salt minion instance named \fBnewinstance\fP in Azure. If
  59425. the command was executed on the salt\-master, its Salt key will automatically
  59426. be signed on the master.
  59427. .sp
  59428. Once the instance has been created with salt\-minion installed, connectivity to
  59429. it can be verified with Salt:
  59430. .INDENT 0.0
  59431. .INDENT 3.5
  59432. .sp
  59433. .nf
  59434. .ft C
  59435. salt newinstance test.version
  59436. .ft P
  59437. .fi
  59438. .UNINDENT
  59439. .UNINDENT
  59440. .SS Profile Options
  59441. .sp
  59442. The following options are currently available for Azure ARM.
  59443. .SS provider
  59444. .sp
  59445. The name of the provider as configured in
  59446. \fI/etc/salt/cloud.providers.d/azure.conf\fP\&.
  59447. .SS image
  59448. .sp
  59449. Required. The name of the image to use to create a VM. Available images can be
  59450. viewed using the following command:
  59451. .INDENT 0.0
  59452. .INDENT 3.5
  59453. .sp
  59454. .nf
  59455. .ft C
  59456. salt\-cloud \-\-list\-images my\-azure\-config
  59457. .ft P
  59458. .fi
  59459. .UNINDENT
  59460. .UNINDENT
  59461. .sp
  59462. As you will see in \fB\-\-list\-images\fP, image names are comprised of the following
  59463. fields, separated by the pipe (\fB|\fP) character:
  59464. .INDENT 0.0
  59465. .INDENT 3.5
  59466. .sp
  59467. .nf
  59468. .ft C
  59469. publisher: For example, Canonical or MicrosoftWindowsServer
  59470. offer: For example, UbuntuServer or WindowsServer
  59471. sku: Such as 14.04.5\-LTS or 2012\-R2\-Datacenter
  59472. version: Such as 14.04.201612050 or latest
  59473. .ft P
  59474. .fi
  59475. .UNINDENT
  59476. .UNINDENT
  59477. .sp
  59478. It is possible to specify the URL or resource ID path of a custom image that you
  59479. have access to, such as:
  59480. .INDENT 0.0
  59481. .INDENT 3.5
  59482. .sp
  59483. .nf
  59484. .ft C
  59485. https://<mystorage>.blob.core.windows.net/system/Microsoft.Compute/Images/<mystorage>/template\-osDisk.01234567\-890a\-bcdef0123\-4567890abcde.vhd
  59486. .ft P
  59487. .fi
  59488. .UNINDENT
  59489. .UNINDENT
  59490. .sp
  59491. or:
  59492. .INDENT 0.0
  59493. .INDENT 3.5
  59494. .sp
  59495. .nf
  59496. .ft C
  59497. /subscriptions/XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX/resourceGroups/myRG/providers/Microsoft.Compute/images/myImage
  59498. .ft P
  59499. .fi
  59500. .UNINDENT
  59501. .UNINDENT
  59502. .SS size
  59503. .sp
  59504. Required. The name of the size to use to create a VM. Available sizes can be
  59505. viewed using the following command:
  59506. .INDENT 0.0
  59507. .INDENT 3.5
  59508. .sp
  59509. .nf
  59510. .ft C
  59511. salt\-cloud \-\-list\-sizes my\-azure\-config
  59512. .ft P
  59513. .fi
  59514. .UNINDENT
  59515. .UNINDENT
  59516. .SS location
  59517. .sp
  59518. Required. The name of the location to create a VM in. Available locations can
  59519. be viewed using the following command:
  59520. .INDENT 0.0
  59521. .INDENT 3.5
  59522. .sp
  59523. .nf
  59524. .ft C
  59525. salt\-cloud \-\-list\-locations my\-azure\-config
  59526. .ft P
  59527. .fi
  59528. .UNINDENT
  59529. .UNINDENT
  59530. .SS ssh_username
  59531. .sp
  59532. Required for Linux. The admin user to add on the instance. It is also used to log
  59533. into the newly\-created VM to install Salt.
  59534. .SS ssh_keyfile
  59535. .sp
  59536. Required if using SSH key authentication. The path on the Salt master to the SSH private
  59537. key used during the minion bootstrap process.
  59538. .SS ssh_publickeyfile
  59539. .sp
  59540. Use either \fBssh_publickeyfile\fP or \fBssh_password\fP\&. The path on the Salt master to the
  59541. SSH public key which will be pushed to the Linux VM.
  59542. .SS ssh_password
  59543. .sp
  59544. Use either \fBssh_publickeyfile\fP or \fBssh_password\fP\&. The password for the admin user on
  59545. the newly\-created Linux virtual machine.
  59546. .SS win_username
  59547. .sp
  59548. Required for Windows. The user to use to log into the newly\-created Windows VM
  59549. to install Salt.
  59550. .SS win_password
  59551. .sp
  59552. Required for Windows. The password to use to log into the newly\-created Windows
  59553. VM to install Salt.
  59554. .SS win_installer
  59555. .sp
  59556. Required for Windows. The path to the Salt installer to be uploaded.
  59557. .SS resource_group
  59558. .sp
  59559. Required. The resource group that all VM resources (VM, network interfaces,
  59560. etc) will be created in.
  59561. .SS network_resource_group
  59562. .sp
  59563. Optional. If specified, then the VM will be connected to the virtual network
  59564. in this resource group, rather than the parent resource group of the instance.
  59565. The VM interfaces and IPs will remain in the configured \fBresource_group\fP with
  59566. the VM.
  59567. .SS network
  59568. .sp
  59569. Required. The virtual network that the VM will be spun up in.
  59570. .SS subnet
  59571. .sp
  59572. Optional. The subnet inside the virtual network that the VM will be spun up in.
  59573. Default is \fBdefault\fP\&.
  59574. .SS allocate_public_ip
  59575. .sp
  59576. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, a public IP will
  59577. be created and assigned to the VM.
  59578. .SS load_balancer
  59579. .sp
  59580. Optional. The load\-balancer for the VM\(aqs network interface to join. If
  59581. specified the backend_pool option need to be set.
  59582. .SS backend_pool
  59583. .sp
  59584. Optional. Required if the load_balancer option is set. The load\-balancer\(aqs
  59585. Backend Pool the VM\(aqs network interface will join.
  59586. .SS iface_name
  59587. .sp
  59588. Optional. The name to apply to the VM\(aqs network interface. If not supplied, the
  59589. value will be set to \fB<VM name>\-iface0\fP\&.
  59590. .SS dns_servers
  59591. .sp
  59592. Optional. A \fBlist\fP of the DNS servers to configure for the network interface
  59593. (will be set on the VM by the DHCP of the VNET).
  59594. .INDENT 0.0
  59595. .INDENT 3.5
  59596. .sp
  59597. .nf
  59598. .ft C
  59599. my\-azurearm\-profile:
  59600. provider: azurearm\-provider
  59601. network: mynetwork
  59602. dns_servers:
  59603. \- 10.1.1.4
  59604. \- 10.1.1.5
  59605. .ft P
  59606. .fi
  59607. .UNINDENT
  59608. .UNINDENT
  59609. .SS availability_set
  59610. .sp
  59611. Optional. If set, the VM will be added to the specified availability set.
  59612. .SS volumes
  59613. .sp
  59614. Optional. A list of dictionaries describing data disks to attach to the
  59615. instance can be specified using this setting. The data disk dictionaries are
  59616. passed entirely to the \fI\%Azure DataDisk object\fP,
  59617. so ad\-hoc options can be handled as long as they are valid properties of the
  59618. object.
  59619. .INDENT 0.0
  59620. .INDENT 3.5
  59621. .sp
  59622. .nf
  59623. .ft C
  59624. volumes:
  59625. \- disk_size_gb: 50
  59626. caching: ReadWrite
  59627. \- disk_size_gb: 100
  59628. caching: ReadWrite
  59629. managed_disk:
  59630. storage_account_type: Standard_LRS
  59631. .ft P
  59632. .fi
  59633. .UNINDENT
  59634. .UNINDENT
  59635. .SS cleanup_disks
  59636. .sp
  59637. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, disks will be cleaned up
  59638. when the VM that they belong to is deleted.
  59639. .SS cleanup_vhds
  59640. .sp
  59641. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, VHDs will be cleaned up
  59642. when the VM and disk that they belong to are deleted. Requires \fBcleanup_disks\fP
  59643. to be set to \fBTrue\fP\&.
  59644. .SS cleanup_data_disks
  59645. .sp
  59646. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, data disks (non\-root
  59647. volumes) will be cleaned up whtn the VM that they are attached to is deleted.
  59648. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&.
  59649. .SS cleanup_interfaces
  59650. .sp
  59651. Optional. Default is \fBFalse\fP\&. Normally when a VM is deleted, its associated
  59652. interfaces and IPs are retained. This is useful if you expect the deleted VM
  59653. to be recreated with the same name and network settings. If you would like
  59654. interfaces and IPs to be deleted when their associated VM is deleted, set this
  59655. to \fBTrue\fP\&.
  59656. .SS userdata
  59657. .sp
  59658. Optional. Any custom cloud data that needs to be specified. How this data is
  59659. used depends on the operating system and image that is used. For instance,
  59660. Linux images that use \fBcloud\-init\fP will import this data for use with that
  59661. program. Some Windows images will create a file with a copy of this data, and
  59662. others will ignore it. If a Windows image creates a file, then the location
  59663. will depend upon the version of Windows. This will be ignored if the
  59664. \fBuserdata_file\fP is specified.
  59665. .SS userdata_file
  59666. .sp
  59667. Optional. The path to a file to be read and submitted to Azure as user data.
  59668. How this is used depends on the operating system that is being deployed. If
  59669. used, any \fBuserdata\fP setting will be ignored.
  59670. .SS userdata_sendkeys
  59671. .sp
  59672. Optional. Set to \fBTrue\fP in order to generate salt minion keys and provide
  59673. them as variables to the userdata script when running it through the template
  59674. renderer. The keys can be referenced as \fB{{opts[\(aqpriv_key\(aq]}}\fP and
  59675. \fB{{opts[\(aqpub_key\(aq]}}\fP\&.
  59676. .SS userdata_template
  59677. .sp
  59678. Optional. Enter the renderer, such as \fBjinja\fP, to be used for the userdata
  59679. script template.
  59680. .SS wait_for_ip_timeout
  59681. .sp
  59682. Optional. Default is \fB600\fP\&. When waiting for a VM to be created, Salt Cloud
  59683. will attempt to connect to the VM\(aqs IP address until it starts responding. This
  59684. setting specifies the maximum time to wait for a response.
  59685. .SS wait_for_ip_interval
  59686. .sp
  59687. Optional. Default is \fB10\fP\&. How long to wait between attempts to connect to
  59688. the VM\(aqs IP.
  59689. .SS wait_for_ip_interval_multiplier
  59690. .sp
  59691. Optional. Default is \fB1\fP\&. Increase the interval by this multiplier after
  59692. each request; helps with throttling.
  59693. .SS expire_publisher_cache
  59694. .sp
  59695. Optional. Default is \fB604800\fP\&. When fetching image data using
  59696. \fB\-\-list\-images\fP, a number of web calls need to be made to the Azure ARM API.
  59697. This is normally very fast when performed using a VM that exists inside Azure
  59698. itself, but can be very slow when made from an external connection.
  59699. .sp
  59700. By default, the publisher data will be cached, and only updated every \fB604800\fP
  59701. seconds (7 days). If you need the publisher cache to be updated at a different
  59702. frequency, change this setting. Setting it to \fB0\fP will turn off the publisher
  59703. cache.
  59704. .SS expire_offer_cache
  59705. .sp
  59706. Optional. Default is \fB518400\fP\&. See \fBexpire_publisher_cache\fP for details on
  59707. why this exists.
  59708. .sp
  59709. By default, the offer data will be cached, and only updated every \fB518400\fP
  59710. seconds (6 days). If you need the offer cache to be updated at a different
  59711. frequency, change this setting. Setting it to \fB0\fP will turn off the publiser
  59712. cache.
  59713. .SS expire_sku_cache
  59714. .sp
  59715. Optional. Default is \fB432000\fP\&. See \fBexpire_publisher_cache\fP for details on
  59716. why this exists.
  59717. .sp
  59718. By default, the sku data will be cached, and only updated every \fB432000\fP
  59719. seconds (5 days). If you need the sku cache to be updated at a different
  59720. frequency, change this setting. Setting it to \fB0\fP will turn off the sku
  59721. cache.
  59722. .SS expire_version_cache
  59723. .sp
  59724. Optional. Default is \fB345600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59725. why this exists.
  59726. .sp
  59727. By default, the version data will be cached, and only updated every \fB345600\fP
  59728. seconds (4 days). If you need the version cache to be updated at a different
  59729. frequency, change this setting. Setting it to \fB0\fP will turn off the version
  59730. cache.
  59731. .SS expire_group_cache
  59732. .sp
  59733. Optional. Default is \fB14400\fP\&. See \fBexpire_publisher_cache\fP for details on
  59734. why this exists.
  59735. .sp
  59736. By default, the resource group data will be cached, and only updated every
  59737. \fB14400\fP seconds (4 hours). If you need the resource group cache to be updated
  59738. at a different frequency, change this setting. Setting it to \fB0\fP will turn
  59739. off the resource group cache.
  59740. .SS expire_interface_cache
  59741. .sp
  59742. Optional. Default is \fB3600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59743. why this exists.
  59744. .sp
  59745. By default, the interface data will be cached, and only updated every \fB3600\fP
  59746. seconds (1 hour). If you need the interface cache to be updated at a different
  59747. frequency, change this setting. Setting it to \fB0\fP will turn off the interface
  59748. cache.
  59749. .SS expire_network_cache
  59750. .sp
  59751. Optional. Default is \fB3600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59752. why this exists.
  59753. .sp
  59754. By default, the network data will be cached, and only updated every \fB3600\fP
  59755. seconds (1 hour). If you need the network cache to be updated at a different
  59756. frequency, change this setting. Setting it to \fB0\fP will turn off the network
  59757. cache.
  59758. .SS Other Options
  59759. .sp
  59760. Other options relevant to Azure ARM.
  59761. .SS storage_account
  59762. .sp
  59763. Required for actions involving an Azure storage account.
  59764. .SS storage_key
  59765. .sp
  59766. Required for actions involving an Azure storage account.
  59767. .SS Show Instance
  59768. .sp
  59769. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on
  59770. a single instance only. In an environment with several machines, this will save
  59771. a user from having to sort through all instance data, just to examine a single
  59772. instance.
  59773. .INDENT 0.0
  59774. .INDENT 3.5
  59775. .sp
  59776. .nf
  59777. .ft C
  59778. salt\-cloud \-a show_instance myinstance
  59779. .ft P
  59780. .fi
  59781. .UNINDENT
  59782. .UNINDENT
  59783. .SS Getting Started with CloudStack
  59784. .sp
  59785. CloudStack is one the most popular cloud projects. It\(aqs an open source project
  59786. to build public and/or private clouds. You can use Salt Cloud to launch
  59787. CloudStack instances.
  59788. .SS Dependencies
  59789. .INDENT 0.0
  59790. .IP \(bu 2
  59791. Libcloud >= 0.13.2
  59792. .UNINDENT
  59793. .SS Configuration
  59794. .sp
  59795. Using Salt for CloudStack, requires an \fBAPI key\fP and a \fBsecret key\fP along with the API address endpoint information.
  59796. .INDENT 0.0
  59797. .INDENT 3.5
  59798. .sp
  59799. .nf
  59800. .ft C
  59801. # Note: This example is for /etc/salt/cloud.providers or any file in the
  59802. # /etc/salt/cloud.providers.d/ directory.
  59803. exoscale:
  59804. driver: cloudstack
  59805. host: api.exoscale.com
  59806. path: /compute
  59807. apikey: EXOAPIKEY
  59808. secretkey: EXOSECRETKEYINYOURACCOUNT
  59809. .ft P
  59810. .fi
  59811. .UNINDENT
  59812. .UNINDENT
  59813. .sp
  59814. \fBNOTE:\fP
  59815. .INDENT 0.0
  59816. .INDENT 3.5
  59817. Changed in version 2015.8.0.
  59818. .sp
  59819. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  59820. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  59821. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  59822. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  59823. to use \fBprovider\fP to refer to provider configurations that you define.
  59824. .UNINDENT
  59825. .UNINDENT
  59826. .SS Profiles
  59827. .SS Cloud Profiles
  59828. .sp
  59829. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  59830. \fB/etc/salt/cloud.profiles.d/\fP directory:
  59831. .INDENT 0.0
  59832. .INDENT 3.5
  59833. .sp
  59834. .nf
  59835. .ft C
  59836. exoscale\-ubuntu:
  59837. provider: exoscale\-config
  59838. image: Linux Ubuntu 18.04
  59839. size: Small
  59840. location: ch\-gva\-2
  59841. ssh_username: ubuntu
  59842. .ft P
  59843. .fi
  59844. .UNINDENT
  59845. .UNINDENT
  59846. .sp
  59847. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  59848. command:
  59849. .INDENT 0.0
  59850. .INDENT 3.5
  59851. .sp
  59852. .nf
  59853. .ft C
  59854. # salt\-cloud \-\-list\-locations exoscale\-config
  59855. exoscale:
  59856. \-\-\-\-\-\-\-\-\-\-
  59857. cloudstack:
  59858. \-\-\-\-\-\-\-\-\-\-
  59859. ch\-dk\-2:
  59860. \-\-\-\-\-\-\-\-\-\-
  59861. country:
  59862. Unknown
  59863. driver:
  59864. id:
  59865. 91e5e9e4\-c9ed\-4b76\-bee4\-427004b3baf9
  59866. name:
  59867. ch\-dk\-2
  59868. ch\-gva\-2:
  59869. \-\-\-\-\-\-\-\-\-\-
  59870. country:
  59871. Unknown
  59872. driver:
  59873. id:
  59874. 1128bd56\-b4d9\-4ac6\-a7b9\-c715b187ce11
  59875. name:
  59876. ch\-gva\-2
  59877. .ft P
  59878. .fi
  59879. .UNINDENT
  59880. .UNINDENT
  59881. .sp
  59882. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  59883. command:
  59884. .INDENT 0.0
  59885. .INDENT 3.5
  59886. .sp
  59887. .nf
  59888. .ft C
  59889. # salt\-cloud \-\-list\-sizes exoscale
  59890. exoscale:
  59891. \-\-\-\-\-\-\-\-\-\-
  59892. cloudstack:
  59893. \-\-\-\-\-\-\-\-\-\-
  59894. Extra\-large:
  59895. \-\-\-\-\-\-\-\-\-\-
  59896. bandwidth:
  59897. 0
  59898. disk:
  59899. 0
  59900. driver:
  59901. extra:
  59902. \-\-\-\-\-\-\-\-\-\-
  59903. cpu:
  59904. 4
  59905. get_uuid:
  59906. id:
  59907. 350dc5ea\-fe6d\-42ba\-b6c0\-efb8b75617ad
  59908. name:
  59909. Extra\-large
  59910. price:
  59911. 0
  59912. ram:
  59913. 16384
  59914. uuid:
  59915. edb4cd4ae14bbf152d451b30c4b417ab095a5bfe
  59916. \&...SNIP...
  59917. .ft P
  59918. .fi
  59919. .UNINDENT
  59920. .UNINDENT
  59921. .sp
  59922. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  59923. command:
  59924. .INDENT 0.0
  59925. .INDENT 3.5
  59926. .sp
  59927. .nf
  59928. .ft C
  59929. # salt\-cloud \-\-list\-images exoscale
  59930. exoscale:
  59931. \-\-\-\-\-\-\-\-\-\-
  59932. cloudstack:
  59933. \-\-\-\-\-\-\-\-\-\-
  59934. Linux CentOS 6.6 64\-bit:
  59935. \-\-\-\-\-\-\-\-\-\-
  59936. driver:
  59937. extra:
  59938. \-\-\-\-\-\-\-\-\-\-
  59939. displaytext:
  59940. Linux CentOS 6.6 64\-bit 10G Disk (2014\-12\-01\-bac8e0)
  59941. format:
  59942. QCOW2
  59943. hypervisor:
  59944. KVM
  59945. os:
  59946. Other PV (64\-bit)
  59947. size:
  59948. 10737418240
  59949. get_uuid:
  59950. id:
  59951. aa69ae64\-1ea9\-40af\-8824\-c2c3344e8d7c
  59952. name:
  59953. Linux CentOS 6.6 64\-bit
  59954. uuid:
  59955. f26b4f54ec8591abdb6b5feb3b58f720aa438fee
  59956. \&...SNIP...
  59957. .ft P
  59958. .fi
  59959. .UNINDENT
  59960. .UNINDENT
  59961. .SS CloudStack specific settings
  59962. .SS securitygroup
  59963. .sp
  59964. New in version 2017.7.0.
  59965. .sp
  59966. You can specify a list of security groups (by name or id) that should be
  59967. assigned to the VM:
  59968. .INDENT 0.0
  59969. .INDENT 3.5
  59970. .sp
  59971. .nf
  59972. .ft C
  59973. exoscale:
  59974. provider: cloudstack
  59975. securitygroup:
  59976. \- default
  59977. \- salt\-master
  59978. .ft P
  59979. .fi
  59980. .UNINDENT
  59981. .UNINDENT
  59982. .SS Getting Started With DigitalOcean
  59983. .sp
  59984. DigitalOcean is a public cloud host that specializes in Linux instances.
  59985. .SS Configuration
  59986. .sp
  59987. Using Salt for DigitalOcean requires a \fBpersonal_access_token\fP, an \fBssh_key_file\fP,
  59988. and at least one SSH key name in \fBssh_key_names\fP\&. More \fBssh_key_names\fP can be added
  59989. by separating each key with a comma. The \fBpersonal_access_token\fP can be found in the
  59990. DigitalOcean web interface in the "Apps & API" section. The SSH key name can be found
  59991. under the "SSH Keys" section.
  59992. .INDENT 0.0
  59993. .INDENT 3.5
  59994. .sp
  59995. .nf
  59996. .ft C
  59997. # Note: This example is for /etc/salt/cloud.providers or any file in the
  59998. # /etc/salt/cloud.providers.d/ directory.
  59999. my\-digitalocean\-config:
  60000. driver: digitalocean
  60001. personal_access_token: xxx
  60002. ssh_key_file: /path/to/ssh/key/file
  60003. ssh_key_names: my\-key\-name,my\-key\-name\-2
  60004. location: New York 1
  60005. .ft P
  60006. .fi
  60007. .UNINDENT
  60008. .UNINDENT
  60009. .sp
  60010. \fBNOTE:\fP
  60011. .INDENT 0.0
  60012. .INDENT 3.5
  60013. Changed in version 2015.8.0.
  60014. .sp
  60015. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  60016. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  60017. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  60018. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  60019. to use \fBprovider\fP to refer to provider configurations that you define.
  60020. .UNINDENT
  60021. .UNINDENT
  60022. .SS Profiles
  60023. .SS Cloud Profiles
  60024. .sp
  60025. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  60026. \fB/etc/salt/cloud.profiles.d/\fP directory:
  60027. .INDENT 0.0
  60028. .INDENT 3.5
  60029. .sp
  60030. .nf
  60031. .ft C
  60032. digitalocean\-ubuntu:
  60033. provider: my\-digitalocean\-config
  60034. image: 14.04 x64
  60035. size: 512MB
  60036. location: New York 1
  60037. private_networking: True
  60038. backups_enabled: True
  60039. ipv6: True
  60040. create_dns_record: True
  60041. userdata_file: /etc/salt/cloud.userdata.d/setup
  60042. tags:
  60043. \- tag1
  60044. \- tag2
  60045. \- tag3
  60046. .ft P
  60047. .fi
  60048. .UNINDENT
  60049. .UNINDENT
  60050. .sp
  60051. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  60052. command:
  60053. .INDENT 0.0
  60054. .INDENT 3.5
  60055. .sp
  60056. .nf
  60057. .ft C
  60058. # salt\-cloud \-\-list\-locations my\-digitalocean\-config
  60059. my\-digitalocean\-config:
  60060. \-\-\-\-\-\-\-\-\-\-
  60061. digitalocean:
  60062. \-\-\-\-\-\-\-\-\-\-
  60063. Amsterdam 1:
  60064. \-\-\-\-\-\-\-\-\-\-
  60065. available:
  60066. False
  60067. features:
  60068. [u\(aqbackups\(aq]
  60069. name:
  60070. Amsterdam 1
  60071. sizes:
  60072. []
  60073. slug:
  60074. ams1
  60075. \&...SNIP...
  60076. .ft P
  60077. .fi
  60078. .UNINDENT
  60079. .UNINDENT
  60080. .sp
  60081. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  60082. command:
  60083. .INDENT 0.0
  60084. .INDENT 3.5
  60085. .sp
  60086. .nf
  60087. .ft C
  60088. # salt\-cloud \-\-list\-sizes my\-digitalocean\-config
  60089. my\-digitalocean\-config:
  60090. \-\-\-\-\-\-\-\-\-\-
  60091. digitalocean:
  60092. \-\-\-\-\-\-\-\-\-\-
  60093. 512MB:
  60094. \-\-\-\-\-\-\-\-\-\-
  60095. cost_per_hour:
  60096. 0.00744
  60097. cost_per_month:
  60098. 5.0
  60099. cpu:
  60100. 1
  60101. disk:
  60102. 20
  60103. id:
  60104. 66
  60105. memory:
  60106. 512
  60107. name:
  60108. 512MB
  60109. slug:
  60110. None
  60111. \&...SNIP...
  60112. .ft P
  60113. .fi
  60114. .UNINDENT
  60115. .UNINDENT
  60116. .sp
  60117. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  60118. command:
  60119. .INDENT 0.0
  60120. .INDENT 3.5
  60121. .sp
  60122. .nf
  60123. .ft C
  60124. # salt\-cloud \-\-list\-images my\-digitalocean\-config
  60125. my\-digitalocean\-config:
  60126. \-\-\-\-\-\-\-\-\-\-
  60127. digitalocean:
  60128. \-\-\-\-\-\-\-\-\-\-
  60129. 10.1:
  60130. \-\-\-\-\-\-\-\-\-\-
  60131. created_at:
  60132. 2015\-01\-20T20:04:34Z
  60133. distribution:
  60134. FreeBSD
  60135. id:
  60136. 10144573
  60137. min_disk_size:
  60138. 20
  60139. name:
  60140. 10.1
  60141. public:
  60142. True
  60143. \&...SNIP...
  60144. .ft P
  60145. .fi
  60146. .UNINDENT
  60147. .UNINDENT
  60148. .SS Profile Specifics:
  60149. .SS ssh_username
  60150. .sp
  60151. If using a FreeBSD image from DigitalOcean, you\(aqll need to set the \fBssh_username\fP
  60152. setting to \fBfreebsd\fP in your profile configuration.
  60153. .INDENT 0.0
  60154. .INDENT 3.5
  60155. .sp
  60156. .nf
  60157. .ft C
  60158. digitalocean\-freebsd:
  60159. provider: my\-digitalocean\-config
  60160. image: 10.2
  60161. size: 512MB
  60162. ssh_username: freebsd
  60163. .ft P
  60164. .fi
  60165. .UNINDENT
  60166. .UNINDENT
  60167. .SS userdata_file
  60168. .sp
  60169. New in version 2016.11.6.
  60170. .sp
  60171. Use \fIuserdata_file\fP to specify the userdata file to upload for use with
  60172. cloud\-init if available.
  60173. .INDENT 0.0
  60174. .INDENT 3.5
  60175. .sp
  60176. .nf
  60177. .ft C
  60178. my\-openstack\-config:
  60179. # Pass userdata to the instance to be created
  60180. userdata_file: /etc/salt/cloud\-init/packages.yml
  60181. .ft P
  60182. .fi
  60183. .UNINDENT
  60184. .UNINDENT
  60185. .INDENT 0.0
  60186. .INDENT 3.5
  60187. .sp
  60188. .nf
  60189. .ft C
  60190. my\-do\-config:
  60191. # Pass userdata to the instance to be created
  60192. userdata_file: /etc/salt/cloud\-init/packages.yml
  60193. userdata_template: jinja
  60194. .ft P
  60195. .fi
  60196. .UNINDENT
  60197. .UNINDENT
  60198. .sp
  60199. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  60200. configuration will be checked for a \fBuserdata_template\fP value.
  60201. If this is not set, then no templating will be performed on the
  60202. userdata_file.
  60203. .sp
  60204. To disable templating in a cloud profile when a
  60205. \fBuserdata_template\fP has been set in the master configuration
  60206. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  60207. .INDENT 0.0
  60208. .INDENT 3.5
  60209. .sp
  60210. .nf
  60211. .ft C
  60212. my\-do\-config:
  60213. # Pass userdata to the instance to be created
  60214. userdata_file: /etc/salt/cloud\-init/packages.yml
  60215. userdata_template: False
  60216. .ft P
  60217. .fi
  60218. .UNINDENT
  60219. .UNINDENT
  60220. .SS Miscellaneous Information
  60221. .sp
  60222. \fBNOTE:\fP
  60223. .INDENT 0.0
  60224. .INDENT 3.5
  60225. DigitalOcean\(aqs concept of \fBApplications\fP is nothing more than a
  60226. pre\-configured instance (same as a normal Droplet). You will find examples
  60227. such \fBDocker 0.7 Ubuntu 13.04 x64\fP and \fBWordpress on Ubuntu 12.10\fP
  60228. when using the \fB\-\-list\-images\fP option. These names can be used just like
  60229. the rest of the standard instances when specifying an image in the cloud
  60230. profile configuration.
  60231. .UNINDENT
  60232. .UNINDENT
  60233. .sp
  60234. \fBNOTE:\fP
  60235. .INDENT 0.0
  60236. .INDENT 3.5
  60237. If your domain\(aqs DNS is managed with DigitalOcean, and your minion name
  60238. matches your DigitalOcean managed DNS domain, you can automatically create
  60239. A and AAA records for newly created droplets. Use \fBcreate_dns_record: True\fP
  60240. in your config to enable this. Adding \fBdelete_dns_record: True\fP to also
  60241. delete records when a droplet is destroyed is optional. Due to limitations
  60242. in salt\-cloud design, the destroy code does not have access to the VM config
  60243. data. WHETHER YOU ADD \fBcreate_dns_record: True\fP OR NOT, salt\-cloud WILL
  60244. attempt to delete your DNS records if the minion name matches. This will
  60245. prevent advertising any recycled IP addresses for destroyed minions.
  60246. .UNINDENT
  60247. .UNINDENT
  60248. .sp
  60249. \fBNOTE:\fP
  60250. .INDENT 0.0
  60251. .INDENT 3.5
  60252. If you need to perform the bootstrap using the local interface for droplets,
  60253. this can be done by setting \fBssh_interface: private\fP in your config. By
  60254. default the salt\-cloud script would run on the public interface however if firewall
  60255. is preventing the connection to the Droplet over the public interface you might need
  60256. to set this option to connect via private interface. Also, to use this feature
  60257. \fBprivate_networking: True\fP must be set in the config.
  60258. .UNINDENT
  60259. .UNINDENT
  60260. .sp
  60261. \fBNOTE:\fP
  60262. .INDENT 0.0
  60263. .INDENT 3.5
  60264. Additional documentation is available from \fI\%DigitalOcean\fP\&.
  60265. .UNINDENT
  60266. .UNINDENT
  60267. .SS Getting Started With Dimension Data Cloud
  60268. .sp
  60269. Dimension Data are a global IT Services company and form part of the NTT Group.
  60270. Dimension Data provide IT\-as\-a\-Service to customers around the globe on their
  60271. cloud platform (Compute as a Service). The CaaS service is available either on
  60272. one of the public cloud instances or as a private instance on premises.
  60273. .sp
  60274. \fI\%http://cloud.dimensiondata.com/\fP
  60275. .sp
  60276. CaaS has its own non\-standard API , SaltStack provides a wrapper on top of this
  60277. API with common methods with other IaaS solutions and Public cloud providers.
  60278. Therefore, you can use the Dimension Data module to communicate with both the
  60279. public and private clouds.
  60280. .SS Dependencies
  60281. .sp
  60282. This driver requires the Python \fBapache\-libcloud\fP and \fBnetaddr\fP library to be installed.
  60283. .SS Configuration
  60284. .sp
  60285. When you instantiate a driver you need to pass the following arguments to the
  60286. driver constructor:
  60287. .INDENT 0.0
  60288. .IP \(bu 2
  60289. \fBuser_id\fP \- Your Dimension Data Cloud username
  60290. .IP \(bu 2
  60291. \fBkey\fP \- Your Dimension Data Cloud password
  60292. .IP \(bu 2
  60293. \fBregion\fP \- The region key, one of the possible region keys
  60294. .UNINDENT
  60295. .sp
  60296. Possible regions:
  60297. .INDENT 0.0
  60298. .IP \(bu 2
  60299. \fBdd\-na\fP : Dimension Data North America (USA)
  60300. .IP \(bu 2
  60301. \fBdd\-eu\fP : Dimension Data Europe
  60302. .IP \(bu 2
  60303. \fBdd\-af\fP : Dimension Data Africa
  60304. .IP \(bu 2
  60305. \fBdd\-au\fP : Dimension Data Australia
  60306. .IP \(bu 2
  60307. \fBdd\-latam\fP : Dimension Data Latin America
  60308. .IP \(bu 2
  60309. \fBdd\-ap\fP : Dimension Data Asia Pacific
  60310. .IP \(bu 2
  60311. \fBdd\-canada\fP : Dimension Data Canada region
  60312. .UNINDENT
  60313. .INDENT 0.0
  60314. .INDENT 3.5
  60315. .sp
  60316. .nf
  60317. .ft C
  60318. # Note: This example is for /etc/salt/cloud.providers or any file in the
  60319. # /etc/salt/cloud.providers.d/ directory.
  60320. my\-dimensiondata\-config:
  60321. user_id: my_username
  60322. key: myPassword!
  60323. region: dd\-na
  60324. driver: dimensiondata
  60325. .ft P
  60326. .fi
  60327. .UNINDENT
  60328. .UNINDENT
  60329. .sp
  60330. \fBNOTE:\fP
  60331. .INDENT 0.0
  60332. .INDENT 3.5
  60333. In version 2015.8.0, the \fBprovider\fP parameter in cloud provider
  60334. definitions was renamed to \fBdriver\fP\&. This change was made to avoid
  60335. confusion with the \fBprovider\fP parameter that is used in cloud profile
  60336. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the
  60337. Salt cloud module that provides the underlying functionality to connect to
  60338. a cloud host, while cloud profiles continue to use \fBprovider\fP to refer to
  60339. provider configurations that you define.
  60340. .UNINDENT
  60341. .UNINDENT
  60342. .SS Profiles
  60343. .SS Cloud Profiles
  60344. .sp
  60345. Dimension Data images have an inbuilt size configuration, there is no list of sizes (although, if the
  60346. command \-\-list\-sizes is run a default will be returned).
  60347. .sp
  60348. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  60349. command:
  60350. .INDENT 0.0
  60351. .INDENT 3.5
  60352. .sp
  60353. .nf
  60354. .ft C
  60355. # salt\-cloud \-\-list\-images my\-dimensiondata\-config
  60356. my\-dimensiondata\-config:
  60357. \-\-\-\-\-\-\-\-\-\-
  60358. dimensiondata:
  60359. \-\-\-\-\-\-\-\-\-\-
  60360. CSfM SharePoint 2013 Trial:
  60361. \-\-\-\-\-\-\-\-\-\-
  60362. driver:
  60363. extra:
  60364. \-\-\-\-\-\-\-\-\-\-
  60365. OS_displayName:
  60366. WIN2012R2S/64
  60367. OS_type:
  60368. None
  60369. cpu:
  60370. created:
  60371. 2015\-03\-19T18:36:06.000Z
  60372. description:
  60373. Windows 2012 R2 Standard 64\-bit installed with SharePoint 2013 and Visual Studio 2013 Pro (Trial Version)
  60374. location:
  60375. memoryGb:
  60376. 12
  60377. osImageKey:
  60378. T\-WIN\-2012R2\-STD\-SP2013\-VS2013\-64\-4\-12\-100
  60379. get_uuid:
  60380. id:
  60381. 0df4677e\-d380\-4e9b\-9469\-b529ee0214c5
  60382. name:
  60383. CSfM SharePoint 2013 Trial
  60384. uuid:
  60385. 28c077f1be970ee904541407b377e3ff87a9ac69
  60386. CentOS 5 32\-bit 2 CPU:
  60387. \-\-\-\-\-\-\-\-\-\-
  60388. driver:
  60389. extra:
  60390. \-\-\-\-\-\-\-\-\-\-
  60391. OS_displayName:
  60392. CENTOS5/32
  60393. OS_type:
  60394. None
  60395. cpu:
  60396. created:
  60397. 2015\-10\-21T14:52:29.000Z
  60398. description:
  60399. CentOS Release 5.11 32\-bit
  60400. location:
  60401. memoryGb:
  60402. 4
  60403. osImageKey:
  60404. T\-CENT\-5\-32\-2\-4\-10
  60405. get_uuid:
  60406. id:
  60407. a8046bd1\-04ea\-4668\-bf32\-bf8d5540faed
  60408. name:
  60409. CentOS 5 32\-bit 2 CPU
  60410. uuid:
  60411. 4d7dd59929fed6f4228db861b609da64997773a7
  60412. \&...SNIP...
  60413. .ft P
  60414. .fi
  60415. .UNINDENT
  60416. .UNINDENT
  60417. .sp
  60418. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  60419. command:
  60420. .INDENT 0.0
  60421. .INDENT 3.5
  60422. .sp
  60423. .nf
  60424. .ft C
  60425. my\-dimensiondata\-config:
  60426. \-\-\-\-\-\-\-\-\-\-
  60427. dimensiondata:
  60428. \-\-\-\-\-\-\-\-\-\-
  60429. Australia \- Melbourne:
  60430. \-\-\-\-\-\-\-\-\-\-
  60431. country:
  60432. Australia
  60433. driver:
  60434. id:
  60435. AU2
  60436. name:
  60437. Australia \- Melbourne
  60438. Australia \- Melbourne MCP2:
  60439. \-\-\-\-\-\-\-\-\-\-
  60440. country:
  60441. Australia
  60442. driver:
  60443. id:
  60444. AU10
  60445. name:
  60446. Australia \- Melbourne MCP2
  60447. Australia \- Sydney:
  60448. \-\-\-\-\-\-\-\-\-\-
  60449. country:
  60450. Australia
  60451. driver:
  60452. id:
  60453. AU1
  60454. name:
  60455. Australia \- Sydney
  60456. Australia \- Sydney MCP2:
  60457. \-\-\-\-\-\-\-\-\-\-
  60458. country:
  60459. Australia
  60460. driver:
  60461. id:
  60462. AU9
  60463. name:
  60464. Australia \- Sydney MCP2
  60465. New Zealand:
  60466. \-\-\-\-\-\-\-\-\-\-
  60467. country:
  60468. New Zealand
  60469. driver:
  60470. id:
  60471. AU8
  60472. name:
  60473. New Zealand
  60474. New_Zealand:
  60475. \-\-\-\-\-\-\-\-\-\-
  60476. country:
  60477. New Zealand
  60478. driver:
  60479. id:
  60480. AU11
  60481. name:
  60482. New_Zealand
  60483. .ft P
  60484. .fi
  60485. .UNINDENT
  60486. .UNINDENT
  60487. .sp
  60488. \fBNOTE:\fP
  60489. .INDENT 0.0
  60490. .INDENT 3.5
  60491. Dimension Data Cloud REST API documentation is available from \fI\%Dimension Data MCP 2\fP\&.
  60492. .UNINDENT
  60493. .UNINDENT
  60494. .SS Getting Started With AWS EC2
  60495. .sp
  60496. Amazon EC2 is a very widely used public cloud platform and one of the core
  60497. platforms Salt Cloud has been built to support.
  60498. .sp
  60499. Previously, the suggested driver for AWS EC2 was the \fBaws\fP driver. This
  60500. has been deprecated in favor of the \fBec2\fP driver. Configuration using the
  60501. old \fBaws\fP driver will still function, but that driver is no longer in
  60502. active development.
  60503. .SS Dependencies
  60504. .sp
  60505. This driver requires the Python \fBrequests\fP library to be installed.
  60506. .SS Configuration
  60507. .sp
  60508. The following example illustrates some of the options that can be set. These
  60509. parameters are discussed in more detail below.
  60510. .INDENT 0.0
  60511. .INDENT 3.5
  60512. .sp
  60513. .nf
  60514. .ft C
  60515. # Note: This example is for /etc/salt/cloud.providers or any file in the
  60516. # /etc/salt/cloud.providers.d/ directory.
  60517. my\-ec2\-southeast\-public\-ips:
  60518. # Set up the location of the salt master
  60519. #
  60520. minion:
  60521. master: saltmaster.example.com
  60522. # Set up grains information, which will be common for all nodes
  60523. # using this provider
  60524. grains:
  60525. node_type: broker
  60526. release: 1.0.1
  60527. # Specify whether to use public or private IP for deploy script.
  60528. #
  60529. # Valid options are:
  60530. # private_ips \- The salt\-cloud command is run inside the EC2
  60531. # public_ips \- The salt\-cloud command is run outside of EC2
  60532. #
  60533. ssh_interface: public_ips
  60534. # Optionally configure the Windows credential validation number of
  60535. # retries and delay between retries. This defaults to 10 retries
  60536. # with a one second delay betwee retries
  60537. win_deploy_auth_retries: 10
  60538. win_deploy_auth_retry_delay: 1
  60539. # Set the EC2 access credentials (see below)
  60540. #
  60541. id: \(aquse\-instance\-role\-credentials\(aq
  60542. key: \(aquse\-instance\-role\-credentials\(aq
  60543. # If \(aqrole_arn\(aq is specified the above credentials are used to
  60544. # to assume to the role. By default, role_arn is set to None.
  60545. role_arn: arn:aws:iam::012345678910:role/SomeRoleName
  60546. # Make sure this key is owned by corresponding user (default \(aqsalt\(aq) with permissions 0400.
  60547. #
  60548. private_key: /etc/salt/my_test_key.pem
  60549. keyname: my_test_key
  60550. securitygroup: default
  60551. # Optionally configure default region
  60552. # Use salt\-cloud \-\-list\-locations <provider> to obtain valid regions
  60553. #
  60554. location: ap\-southeast\-1
  60555. availability_zone: ap\-southeast\-1b
  60556. # Configure which user to use to run the deploy script. This setting is
  60557. # dependent upon the AMI that is used to deploy. It is usually safer to
  60558. # configure this individually in a profile, than globally. Typical users
  60559. # are:
  60560. #
  60561. # Amazon Linux \-> ec2\-user
  60562. # RHEL \-> ec2\-user
  60563. # CentOS \-> ec2\-user
  60564. # Ubuntu \-> ubuntu
  60565. # Debian \-> admin
  60566. #
  60567. ssh_username: ec2\-user
  60568. # Optionally add an IAM profile
  60569. iam_profile: \(aqarn:aws:iam::123456789012:instance\-profile/ExampleInstanceProfile\(aq
  60570. driver: ec2
  60571. my\-ec2\-southeast\-private\-ips:
  60572. # Set up the location of the salt master
  60573. #
  60574. minion:
  60575. master: saltmaster.example.com
  60576. # Specify whether to use public or private IP for deploy script.
  60577. #
  60578. # Valid options are:
  60579. # private_ips \- The salt\-master is also hosted with EC2
  60580. # public_ips \- The salt\-master is hosted outside of EC2
  60581. #
  60582. ssh_interface: private_ips
  60583. # Optionally configure the Windows credential validation number of
  60584. # retries and delay between retries. This defaults to 10 retries
  60585. # with a one second delay betwee retries
  60586. win_deploy_auth_retries: 10
  60587. win_deploy_auth_retry_delay: 1
  60588. # Set the EC2 access credentials (see below)
  60589. #
  60590. id: \(aquse\-instance\-role\-credentials\(aq
  60591. key: \(aquse\-instance\-role\-credentials\(aq
  60592. # Make sure this key is owned by root with permissions 0400.
  60593. #
  60594. private_key: /etc/salt/my_test_key.pem
  60595. keyname: my_test_key
  60596. # This one should NOT be specified if VPC was not configured in AWS to be
  60597. # the default. It might cause an error message which says that network
  60598. # interfaces and an instance\-level security groups may not be specified
  60599. # on the same request.
  60600. #
  60601. securitygroup: default
  60602. # Optionally configure default region
  60603. #
  60604. location: ap\-southeast\-1
  60605. availability_zone: ap\-southeast\-1b
  60606. # Configure which user to use to run the deploy script. This setting is
  60607. # dependent upon the AMI that is used to deploy. It is usually safer to
  60608. # configure this individually in a profile, than globally. Typical users
  60609. # are:
  60610. #
  60611. # Amazon Linux \-> ec2\-user
  60612. # RHEL \-> ec2\-user
  60613. # CentOS \-> ec2\-user
  60614. # Ubuntu \-> ubuntu
  60615. #
  60616. ssh_username: ec2\-user
  60617. # Optionally add an IAM profile
  60618. iam_profile: \(aqmy other profile name\(aq
  60619. driver: ec2
  60620. .ft P
  60621. .fi
  60622. .UNINDENT
  60623. .UNINDENT
  60624. .sp
  60625. \fBNOTE:\fP
  60626. .INDENT 0.0
  60627. .INDENT 3.5
  60628. Changed in version 2015.8.0.
  60629. .sp
  60630. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  60631. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  60632. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  60633. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  60634. to use \fBprovider\fP to refer to provider configurations that you define.
  60635. .UNINDENT
  60636. .UNINDENT
  60637. .SS Access Credentials
  60638. .sp
  60639. The \fBid\fP and \fBkey\fP settings may be found in the Security Credentials area
  60640. of the AWS Account page:
  60641. .sp
  60642. \fI\%https://portal.aws.amazon.com/gp/aws/securityCredentials\fP
  60643. .sp
  60644. Both are located in the Access Credentials area of the page, under the Access
  60645. Keys tab. The \fBid\fP setting is labeled Access Key ID, and the \fBkey\fP setting
  60646. is labeled Secret Access Key.
  60647. .sp
  60648. Note: if either \fBid\fP or \fBkey\fP is set to \(aquse\-instance\-role\-credentials\(aq it is
  60649. assumed that Salt is running on an AWS instance, and the instance role
  60650. credentials will be retrieved and used. Since both the \fBid\fP and \fBkey\fP are
  60651. required parameters for the AWS ec2 provider, it is recommended to set both
  60652. to \(aquse\-instance\-role\-credentials\(aq for this functionality.
  60653. .sp
  60654. A "static" and "permanent" Access Key ID and Secret Key can be specified,
  60655. but this is not recommended. Instance role keys are rotated on a regular
  60656. basis, and are the recommended method of specifying AWS credentials.
  60657. .SS Windows Deploy Timeouts
  60658. .sp
  60659. For Windows instances, it may take longer than normal for the instance to be
  60660. ready. In these circumstances, the provider configuration can be configured
  60661. with a \fBwin_deploy_auth_retries\fP and/or a \fBwin_deploy_auth_retry_delay\fP
  60662. setting, which default to 10 retries and a one second delay between retries.
  60663. These retries and timeouts relate to validating the Administrator password
  60664. once AWS provides the credentials via the AWS API.
  60665. .SS Key Pairs
  60666. .sp
  60667. In order to create an instance with Salt installed and configured, a key pair
  60668. will need to be created. This can be done in the EC2 Management Console, in the
  60669. Key Pairs area. These key pairs are unique to a specific region. Keys in the
  60670. us\-east\-1 region can be configured at:
  60671. .sp
  60672. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-east\-1#s=KeyPairs\fP
  60673. .sp
  60674. Keys in the us\-west\-1 region can be configured at
  60675. .sp
  60676. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-west\-1#s=KeyPairs\fP
  60677. .sp
  60678. \&...and so on. When creating a key pair, the browser will prompt to download a
  60679. pem file. This file must be placed in a directory accessible by Salt Cloud,
  60680. with permissions set to either 0400 or 0600.
  60681. .SS Security Groups
  60682. .sp
  60683. An instance on EC2 needs to belong to a security group. Like key pairs, these
  60684. are unique to a specific region. These are also configured in the EC2
  60685. Management Console. Security groups for the us\-east\-1 region can be configured
  60686. at:
  60687. .sp
  60688. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-east\-1#s=SecurityGroups\fP
  60689. .sp
  60690. \&...and so on.
  60691. .sp
  60692. A security group defines firewall rules which an instance will adhere to. If
  60693. the salt\-master is configured outside of EC2, the security group must open the
  60694. SSH port (usually port 22) in order for Salt Cloud to install Salt.
  60695. .SS IAM Profile
  60696. .sp
  60697. Amazon EC2 instances support the concept of an \fI\%instance profile\fP, which
  60698. is a logical container for the IAM role. At the time that you launch an EC2
  60699. instance, you can associate the instance with an instance profile, which in
  60700. turn corresponds to the IAM role. Any software that runs on the EC2 instance
  60701. is able to access AWS using the permissions associated with the IAM role.
  60702. .sp
  60703. Scaffolding the profile is a 2\-step configuration process:
  60704. .INDENT 0.0
  60705. .IP 1. 3
  60706. Configure an IAM Role from the \fI\%IAM Management Console\fP\&.
  60707. .IP 2. 3
  60708. Attach this role to a new profile. It can be done with the \fI\%AWS CLI\fP:
  60709. .INDENT 3.0
  60710. .INDENT 3.5
  60711. .INDENT 0.0
  60712. .INDENT 3.5
  60713. .sp
  60714. .nf
  60715. .ft C
  60716. > aws iam create\-instance\-profile \-\-instance\-profile\-name PROFILE_NAME
  60717. > aws iam add\-role\-to\-instance\-profile \-\-instance\-profile\-name PROFILE_NAME \-\-role\-name ROLE_NAME
  60718. .ft P
  60719. .fi
  60720. .UNINDENT
  60721. .UNINDENT
  60722. .UNINDENT
  60723. .UNINDENT
  60724. .UNINDENT
  60725. .sp
  60726. Once the profile is created, you can use the \fBPROFILE_NAME\fP to configure
  60727. your cloud profiles.
  60728. .SS Cloud Profiles
  60729. .sp
  60730. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  60731. .INDENT 0.0
  60732. .INDENT 3.5
  60733. .sp
  60734. .nf
  60735. .ft C
  60736. base_ec2_private:
  60737. provider: my\-ec2\-southeast\-private\-ips
  60738. image: ami\-e565ba8c
  60739. size: t2.micro
  60740. ssh_username: ec2\-user
  60741. base_ec2_public:
  60742. provider: my\-ec2\-southeast\-public\-ips
  60743. image: ami\-e565ba8c
  60744. size: t2.micro
  60745. ssh_username: ec2\-user
  60746. base_ec2_db:
  60747. provider: my\-ec2\-southeast\-public\-ips
  60748. image: ami\-e565ba8c
  60749. size: m1.xlarge
  60750. ssh_username: ec2\-user
  60751. volumes:
  60752. \- { size: 10, device: /dev/sdf }
  60753. \- { size: 10, device: /dev/sdg, type: io1, iops: 1000 }
  60754. \- { size: 10, device: /dev/sdh, type: io1, iops: 1000 }
  60755. \- { size: 10, device: /dev/sdi, tags: {"Environment": "production"} }
  60756. # optionally add tags to profile:
  60757. tag: {\(aqEnvironment\(aq: \(aqproduction\(aq, \(aqRole\(aq: \(aqdatabase\(aq}
  60758. # force grains to sync after install
  60759. sync_after_install: grains
  60760. base_ec2_vpc:
  60761. provider: my\-ec2\-southeast\-public\-ips
  60762. image: ami\-a73264ce
  60763. size: m1.xlarge
  60764. ssh_username: ec2\-user
  60765. script: /etc/salt/cloud.deploy.d/user_data.sh
  60766. network_interfaces:
  60767. \- DeviceIndex: 0
  60768. PrivateIpAddresses:
  60769. \- Primary: True
  60770. #auto assign public ip (not EIP)
  60771. AssociatePublicIpAddress: True
  60772. SubnetId: subnet\-813d4bbf
  60773. SecurityGroupId:
  60774. \- sg\-750af413
  60775. del_root_vol_on_destroy: True
  60776. del_all_vols_on_destroy: True
  60777. volumes:
  60778. \- { size: 10, device: /dev/sdf }
  60779. \- { size: 10, device: /dev/sdg, type: io1, iops: 1000 }
  60780. \- { size: 10, device: /dev/sdh, type: io1, iops: 1000 }
  60781. tag: {\(aqEnvironment\(aq: \(aqproduction\(aq, \(aqRole\(aq: \(aqdatabase\(aq}
  60782. sync_after_install: grains
  60783. .ft P
  60784. .fi
  60785. .UNINDENT
  60786. .UNINDENT
  60787. .sp
  60788. The profile can now be realized with a salt command:
  60789. .INDENT 0.0
  60790. .INDENT 3.5
  60791. .sp
  60792. .nf
  60793. .ft C
  60794. # salt\-cloud \-p base_ec2 ami.example.com
  60795. # salt\-cloud \-p base_ec2_public ami.example.com
  60796. # salt\-cloud \-p base_ec2_private ami.example.com
  60797. .ft P
  60798. .fi
  60799. .UNINDENT
  60800. .UNINDENT
  60801. .sp
  60802. This will create an instance named \fBami.example.com\fP in EC2. The minion that
  60803. is installed on this instance will have an \fBid\fP of \fBami.example.com\fP\&. If
  60804. the command was executed on the salt\-master, its Salt key will automatically be
  60805. signed on the master.
  60806. .sp
  60807. Once the instance has been created with salt\-minion installed, connectivity to
  60808. it can be verified with Salt:
  60809. .INDENT 0.0
  60810. .INDENT 3.5
  60811. .sp
  60812. .nf
  60813. .ft C
  60814. # salt \(aqami.example.com\(aq test.version
  60815. .ft P
  60816. .fi
  60817. .UNINDENT
  60818. .UNINDENT
  60819. .SS Required Settings
  60820. .sp
  60821. The following settings are always required for EC2:
  60822. .INDENT 0.0
  60823. .INDENT 3.5
  60824. .sp
  60825. .nf
  60826. .ft C
  60827. # Set the EC2 login data
  60828. my\-ec2\-config:
  60829. id: HJGRYCILJLKJYG
  60830. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  60831. keyname: test
  60832. securitygroup: quick\-start
  60833. private_key: /root/test.pem
  60834. driver: ec2
  60835. .ft P
  60836. .fi
  60837. .UNINDENT
  60838. .UNINDENT
  60839. .SS Optional Settings
  60840. .sp
  60841. EC2 allows a userdata file to be passed to the instance to be created. This
  60842. functionality was added to Salt in the 2015.5.0 release.
  60843. .INDENT 0.0
  60844. .INDENT 3.5
  60845. .sp
  60846. .nf
  60847. .ft C
  60848. my\-ec2\-config:
  60849. # Pass userdata to the instance to be created
  60850. userdata_file: /etc/salt/my\-userdata\-file
  60851. .ft P
  60852. .fi
  60853. .UNINDENT
  60854. .UNINDENT
  60855. .sp
  60856. \fBNOTE:\fP
  60857. .INDENT 0.0
  60858. .INDENT 3.5
  60859. From versions 2016.11.0 and 2016.11.3, this file was passed through the
  60860. master\(aqs \fBrenderer\fP to template it. However, this caused
  60861. issues with non\-YAML data, so templating is no longer performed by default.
  60862. To template the userdata_file, add a \fBuserdata_template\fP option to the
  60863. cloud profile:
  60864. .INDENT 0.0
  60865. .INDENT 3.5
  60866. .sp
  60867. .nf
  60868. .ft C
  60869. my\-ec2\-config:
  60870. # Pass userdata to the instance to be created
  60871. userdata_file: /etc/salt/my\-userdata\-file
  60872. userdata_template: jinja
  60873. .ft P
  60874. .fi
  60875. .UNINDENT
  60876. .UNINDENT
  60877. .sp
  60878. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  60879. configuration will be checked for a \fBuserdata_template\fP value.
  60880. If this is not set, then no templating will be performed on the
  60881. userdata_file.
  60882. .sp
  60883. To disable templating in a cloud profile when a
  60884. \fBuserdata_template\fP has been set in the master configuration
  60885. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  60886. .INDENT 0.0
  60887. .INDENT 3.5
  60888. .sp
  60889. .nf
  60890. .ft C
  60891. my\-ec2\-config:
  60892. # Pass userdata to the instance to be created
  60893. userdata_file: /etc/salt/my\-userdata\-file
  60894. userdata_template: False
  60895. .ft P
  60896. .fi
  60897. .UNINDENT
  60898. .UNINDENT
  60899. .UNINDENT
  60900. .UNINDENT
  60901. .sp
  60902. EC2 allows a location to be set for servers to be deployed in. Availability
  60903. zones exist inside regions, and may be added to increase specificity.
  60904. .INDENT 0.0
  60905. .INDENT 3.5
  60906. .sp
  60907. .nf
  60908. .ft C
  60909. my\-ec2\-config:
  60910. # Optionally configure default region
  60911. location: ap\-southeast\-1
  60912. availability_zone: ap\-southeast\-1b
  60913. .ft P
  60914. .fi
  60915. .UNINDENT
  60916. .UNINDENT
  60917. .sp
  60918. EC2 instances can have a public or private IP, or both. When an instance is
  60919. deployed, Salt Cloud needs to log into it via SSH to run the deploy script.
  60920. By default, the public IP will be used for this. If the salt\-cloud command is
  60921. run from another EC2 instance, the private IP should be used.
  60922. .INDENT 0.0
  60923. .INDENT 3.5
  60924. .sp
  60925. .nf
  60926. .ft C
  60927. my\-ec2\-config:
  60928. # Specify whether to use public or private IP for deploy script
  60929. # private_ips or public_ips
  60930. ssh_interface: public_ips
  60931. .ft P
  60932. .fi
  60933. .UNINDENT
  60934. .UNINDENT
  60935. .sp
  60936. Many EC2 instances do not allow remote access to the root user by default.
  60937. Instead, another user must be used to run the deploy script using sudo. Some
  60938. common usernames include ec2\-user (for Amazon Linux), ubuntu (for Ubuntu
  60939. instances), admin (official Debian) and bitnami (for images provided by
  60940. Bitnami).
  60941. .INDENT 0.0
  60942. .INDENT 3.5
  60943. .sp
  60944. .nf
  60945. .ft C
  60946. my\-ec2\-config:
  60947. # Configure which user to use to run the deploy script
  60948. ssh_username: ec2\-user
  60949. .ft P
  60950. .fi
  60951. .UNINDENT
  60952. .UNINDENT
  60953. .sp
  60954. Multiple usernames can be provided, in which case Salt Cloud will attempt to
  60955. guess the correct username. This is mostly useful in the main configuration
  60956. file:
  60957. .INDENT 0.0
  60958. .INDENT 3.5
  60959. .sp
  60960. .nf
  60961. .ft C
  60962. my\-ec2\-config:
  60963. ssh_username:
  60964. \- ec2\-user
  60965. \- ubuntu
  60966. \- admin
  60967. \- bitnami
  60968. .ft P
  60969. .fi
  60970. .UNINDENT
  60971. .UNINDENT
  60972. .sp
  60973. Multiple security groups can also be specified in the same fashion:
  60974. .INDENT 0.0
  60975. .INDENT 3.5
  60976. .sp
  60977. .nf
  60978. .ft C
  60979. my\-ec2\-config:
  60980. securitygroup:
  60981. \- default
  60982. \- extra
  60983. .ft P
  60984. .fi
  60985. .UNINDENT
  60986. .UNINDENT
  60987. .sp
  60988. EC2 instances can be added to an \fI\%AWS Placement Group\fP by specifying the
  60989. \fBplacementgroup\fP option:
  60990. .INDENT 0.0
  60991. .INDENT 3.5
  60992. .sp
  60993. .nf
  60994. .ft C
  60995. my\-ec2\-config:
  60996. placementgroup: my\-aws\-placement\-group
  60997. .ft P
  60998. .fi
  60999. .UNINDENT
  61000. .UNINDENT
  61001. .sp
  61002. Your instances may optionally make use of EC2 Spot Instances. The
  61003. following example will request that spot instances be used and your
  61004. maximum bid will be $0.10. Keep in mind that different spot prices
  61005. may be needed based on the current value of the various EC2 instance
  61006. sizes. You can check current and past spot instance pricing via the
  61007. EC2 API or AWS Console.
  61008. .INDENT 0.0
  61009. .INDENT 3.5
  61010. .sp
  61011. .nf
  61012. .ft C
  61013. my\-ec2\-config:
  61014. spot_config:
  61015. spot_price: 0.10
  61016. .ft P
  61017. .fi
  61018. .UNINDENT
  61019. .UNINDENT
  61020. .sp
  61021. You can optionally specify tags to apply to the EC2 spot instance request.
  61022. A spot instance request itself is an object in AWS. The following example
  61023. will set two tags on the spot instance request.
  61024. .INDENT 0.0
  61025. .INDENT 3.5
  61026. .sp
  61027. .nf
  61028. .ft C
  61029. my\-ec2\-config:
  61030. spot_config:
  61031. spot_price: 0.10
  61032. tag:
  61033. tag0: value
  61034. tag1: value
  61035. .ft P
  61036. .fi
  61037. .UNINDENT
  61038. .UNINDENT
  61039. .sp
  61040. By default, the spot instance type is set to \(aqone\-time\(aq, meaning it will
  61041. be launched and, if it\(aqs ever terminated for whatever reason, it will not
  61042. be recreated. If you would like your spot instances to be relaunched after
  61043. a termination (by you or AWS), set the \fBtype\fP to \(aqpersistent\(aq.
  61044. .sp
  61045. NOTE: Spot instances are a great way to save a bit of money, but you do
  61046. run the risk of losing your spot instances if the current price for the
  61047. instance size goes above your maximum bid.
  61048. .sp
  61049. The following parameters may be set in the cloud configuration file to
  61050. control various aspects of the spot instance launching:
  61051. .INDENT 0.0
  61052. .IP \(bu 2
  61053. \fBwait_for_spot_timeout\fP: seconds to wait before giving up on spot instance
  61054. launch (default=600)
  61055. .IP \(bu 2
  61056. \fBwait_for_spot_interval\fP: seconds to wait in between polling requests to
  61057. determine if a spot instance is available (default=30)
  61058. .IP \(bu 2
  61059. \fBwait_for_spot_interval_multiplier\fP: a multiplier to add to the interval in
  61060. between requests, which is useful if AWS is throttling your requests
  61061. (default=1)
  61062. .IP \(bu 2
  61063. \fBwait_for_spot_max_failures\fP: maximum number of failures before giving up
  61064. on launching your spot instance (default=10)
  61065. .UNINDENT
  61066. .sp
  61067. If you find that you\(aqre being throttled by AWS while polling for spot
  61068. instances, you can set the following in your core cloud configuration
  61069. file that will double the polling interval after each request to AWS.
  61070. .INDENT 0.0
  61071. .INDENT 3.5
  61072. .sp
  61073. .nf
  61074. .ft C
  61075. wait_for_spot_interval: 1
  61076. wait_for_spot_interval_multiplier: 2
  61077. .ft P
  61078. .fi
  61079. .UNINDENT
  61080. .UNINDENT
  61081. .sp
  61082. See the \fI\%AWS Spot Instances\fP documentation for more information.
  61083. .sp
  61084. Block device mappings enable you to specify additional EBS volumes or instance
  61085. store volumes when the instance is launched. This setting is also available on
  61086. each cloud profile. Note that the number of instance stores varies by instance
  61087. type. If more mappings are provided than are supported by the instance type,
  61088. mappings will be created in the order provided and additional mappings will be
  61089. ignored. Consult the \fI\%AWS documentation\fP for a listing of the available
  61090. instance stores, and device names.
  61091. .INDENT 0.0
  61092. .INDENT 3.5
  61093. .sp
  61094. .nf
  61095. .ft C
  61096. my\-ec2\-config:
  61097. block_device_mappings:
  61098. \- DeviceName: /dev/sdb
  61099. VirtualName: ephemeral0
  61100. \- DeviceName: /dev/sdc
  61101. VirtualName: ephemeral1
  61102. .ft P
  61103. .fi
  61104. .UNINDENT
  61105. .UNINDENT
  61106. .sp
  61107. You can also use block device mappings to change the size of the root device at the
  61108. provisioning time. For example, assuming the root device is \(aq/dev/sda\(aq, you can set
  61109. its size to 100G by using the following configuration.
  61110. .INDENT 0.0
  61111. .INDENT 3.5
  61112. .sp
  61113. .nf
  61114. .ft C
  61115. my\-ec2\-config:
  61116. block_device_mappings:
  61117. \- DeviceName: /dev/sda
  61118. Ebs.VolumeSize: 100
  61119. Ebs.VolumeType: gp2
  61120. Ebs.SnapshotId: dummy0
  61121. \- DeviceName: /dev/sdb
  61122. # required for devices > 2TB
  61123. Ebs.VolumeType: gp2
  61124. Ebs.VolumeSize: 3001
  61125. .ft P
  61126. .fi
  61127. .UNINDENT
  61128. .UNINDENT
  61129. .sp
  61130. Tagging of block devices can be set on a per device basis. For example, you may
  61131. have multiple devices defined in your block_device_mappings structure. You have the
  61132. option to set tags on any of one device or all of them as shown in the following
  61133. configuration.
  61134. .INDENT 0.0
  61135. .INDENT 3.5
  61136. .sp
  61137. .nf
  61138. .ft C
  61139. my\-ec2\-config:
  61140. block_device_mappings:
  61141. \- DeviceName: /dev/sda
  61142. Ebs.VolumeSize: 100
  61143. Ebs.VolumeType: gp2
  61144. tag:
  61145. tag0: myserver
  61146. tag1: value
  61147. \- DeviceName: /dev/sdb
  61148. Ebs.VolumeType: gp2
  61149. Ebs.VolumeSize: 3001
  61150. tag:
  61151. tagX: value
  61152. tagY: value
  61153. .ft P
  61154. .fi
  61155. .UNINDENT
  61156. .UNINDENT
  61157. .sp
  61158. You can configure any AWS valid tag name as shown in the above example, including
  61159. \(aqName\(aq. If you do not configure the tag \(aqName\(aq, it will be automatically created
  61160. with a value set to the virtual machine name. If you configure the tag \(aqName\(aq, the
  61161. value you configure will be used rather than defaulting to the virtual machine
  61162. name as shown in the following configuration.
  61163. .INDENT 0.0
  61164. .INDENT 3.5
  61165. .sp
  61166. .nf
  61167. .ft C
  61168. my\-ec2\-config:
  61169. block_device_mappings:
  61170. \- DeviceName: /dev/sda
  61171. Ebs.VolumeSize: 100
  61172. Ebs.VolumeType: gp2
  61173. tag:
  61174. Name: myserver
  61175. tag0: value
  61176. tag1: value
  61177. \- DeviceName: /dev/sdb
  61178. Ebs.VolumeType: gp2
  61179. Ebs.VolumeSize: 3001
  61180. tag:
  61181. Name: customvalue
  61182. tagX: value
  61183. tagY: value
  61184. .ft P
  61185. .fi
  61186. .UNINDENT
  61187. .UNINDENT
  61188. .sp
  61189. Existing EBS volumes may also be attached (not created) to your instances or
  61190. you can create new EBS volumes based on EBS snapshots. To simply attach an
  61191. existing volume use the \fBvolume_id\fP parameter.
  61192. .INDENT 0.0
  61193. .INDENT 3.5
  61194. .sp
  61195. .nf
  61196. .ft C
  61197. device: /dev/xvdj
  61198. volume_id: vol\-12345abcd
  61199. .ft P
  61200. .fi
  61201. .UNINDENT
  61202. .UNINDENT
  61203. .sp
  61204. Or, to create a volume from an EBS snapshot, use the \fBsnapshot\fP parameter.
  61205. .INDENT 0.0
  61206. .INDENT 3.5
  61207. .sp
  61208. .nf
  61209. .ft C
  61210. device: /dev/xvdj
  61211. snapshot: snap\-abcd12345
  61212. .ft P
  61213. .fi
  61214. .UNINDENT
  61215. .UNINDENT
  61216. .sp
  61217. Note that \fBvolume_id\fP will take precedence over the \fBsnapshot\fP parameter.
  61218. .sp
  61219. Tags can be set once an instance has been launched.
  61220. .INDENT 0.0
  61221. .INDENT 3.5
  61222. .sp
  61223. .nf
  61224. .ft C
  61225. my\-ec2\-config:
  61226. tag:
  61227. tag0: value
  61228. tag1: value
  61229. .ft P
  61230. .fi
  61231. .UNINDENT
  61232. .UNINDENT
  61233. .SS Setting up a Master inside EC2
  61234. .sp
  61235. Salt Cloud can configure Salt Masters as well as Minions. Use the \fBmake_master\fP setting to use
  61236. this functionality.
  61237. .INDENT 0.0
  61238. .INDENT 3.5
  61239. .sp
  61240. .nf
  61241. .ft C
  61242. my\-ec2\-config:
  61243. # Optionally install a Salt Master in addition to the Salt Minion
  61244. make_master: True
  61245. .ft P
  61246. .fi
  61247. .UNINDENT
  61248. .UNINDENT
  61249. .sp
  61250. When creating a Salt Master inside EC2 with \fBmake_master: True\fP, or when the Salt Master is already
  61251. located and configured inside EC2, by default, minions connect to the master\(aqs public IP address during
  61252. Salt Cloud\(aqs provisioning process. Depending on how your security groups are defined, the minions
  61253. may or may not be able to communicate with the master. In order to use the master\(aqs private IP in EC2
  61254. instead of the public IP, set the \fBsalt_interface\fP to \fBprivate_ips\fP\&.
  61255. .INDENT 0.0
  61256. .INDENT 3.5
  61257. .sp
  61258. .nf
  61259. .ft C
  61260. my\-ec2\-config:
  61261. # Optionally set the IP configuration to private_ips
  61262. salt_interface: private_ips
  61263. .ft P
  61264. .fi
  61265. .UNINDENT
  61266. .UNINDENT
  61267. .SS Modify EC2 Tags
  61268. .sp
  61269. One of the features of EC2 is the ability to tag resources. In fact, under the
  61270. hood, the names given to EC2 instances by salt\-cloud are actually just stored
  61271. as a tag called Name. Salt Cloud has the ability to manage these tags:
  61272. .INDENT 0.0
  61273. .INDENT 3.5
  61274. .sp
  61275. .nf
  61276. .ft C
  61277. salt\-cloud \-a get_tags mymachine
  61278. salt\-cloud \-a set_tags mymachine tag1=somestuff tag2=\(aqOther stuff\(aq
  61279. salt\-cloud \-a del_tags mymachine tag1,tag2,tag3
  61280. .ft P
  61281. .fi
  61282. .UNINDENT
  61283. .UNINDENT
  61284. .sp
  61285. It is possible to manage tags on any resource in EC2 with a Resource ID, not
  61286. just instances:
  61287. .INDENT 0.0
  61288. .INDENT 3.5
  61289. .sp
  61290. .nf
  61291. .ft C
  61292. salt\-cloud \-f get_tags my_ec2 resource_id=af5467ba
  61293. salt\-cloud \-f set_tags my_ec2 resource_id=af5467ba tag1=somestuff
  61294. salt\-cloud \-f del_tags my_ec2 resource_id=af5467ba tags=tag1,tag2,tag3
  61295. .ft P
  61296. .fi
  61297. .UNINDENT
  61298. .UNINDENT
  61299. .SS Rename EC2 Instances
  61300. .sp
  61301. As mentioned above, EC2 instances are named via a tag. However, renaming an
  61302. instance by renaming its tag will cause the salt keys to mismatch. A rename
  61303. function exists which renames both the instance, and the salt keys.
  61304. .INDENT 0.0
  61305. .INDENT 3.5
  61306. .sp
  61307. .nf
  61308. .ft C
  61309. salt\-cloud \-a rename mymachine newname=yourmachine
  61310. .ft P
  61311. .fi
  61312. .UNINDENT
  61313. .UNINDENT
  61314. .SS Rename on Destroy
  61315. .sp
  61316. When instances on EC2 are destroyed, there will be a lag between the time that
  61317. the action is sent, and the time that Amazon cleans up the instance. During
  61318. this time, the instance still retains a Name tag, which will cause a collision
  61319. if the creation of an instance with the same name is attempted before the
  61320. cleanup occurs. In order to avoid such collisions, Salt Cloud can be configured
  61321. to rename instances when they are destroyed. The new name will look something
  61322. like:
  61323. .INDENT 0.0
  61324. .INDENT 3.5
  61325. .sp
  61326. .nf
  61327. .ft C
  61328. myinstance\-DEL20f5b8ad4eb64ed88f2c428df80a1a0c
  61329. .ft P
  61330. .fi
  61331. .UNINDENT
  61332. .UNINDENT
  61333. .sp
  61334. In order to enable this, add rename_on_destroy line to the main
  61335. configuration file:
  61336. .INDENT 0.0
  61337. .INDENT 3.5
  61338. .sp
  61339. .nf
  61340. .ft C
  61341. my\-ec2\-config:
  61342. rename_on_destroy: True
  61343. .ft P
  61344. .fi
  61345. .UNINDENT
  61346. .UNINDENT
  61347. .SS Listing Images
  61348. .sp
  61349. Normally, images can be queried on a cloud provider by passing the
  61350. \fB\-\-list\-images\fP argument to Salt Cloud. This still holds true for EC2:
  61351. .INDENT 0.0
  61352. .INDENT 3.5
  61353. .sp
  61354. .nf
  61355. .ft C
  61356. salt\-cloud \-\-list\-images my\-ec2\-config
  61357. .ft P
  61358. .fi
  61359. .UNINDENT
  61360. .UNINDENT
  61361. .sp
  61362. However, the full list of images on EC2 is extremely large, and querying all of
  61363. the available images may cause Salt Cloud to behave as if frozen. Therefore,
  61364. the default behavior of this option may be modified, by adding an \fBowner\fP
  61365. argument to the provider configuration:
  61366. .INDENT 0.0
  61367. .INDENT 3.5
  61368. .sp
  61369. .nf
  61370. .ft C
  61371. owner: aws\-marketplace
  61372. .ft P
  61373. .fi
  61374. .UNINDENT
  61375. .UNINDENT
  61376. .sp
  61377. The possible values for this setting are \fBamazon\fP, \fBaws\-marketplace\fP,
  61378. \fBself\fP, \fB<AWS account ID>\fP or \fBall\fP\&. The default setting is \fBamazon\fP\&.
  61379. Take note that \fBall\fP and \fBaws\-marketplace\fP may cause Salt Cloud to appear
  61380. as if it is freezing, as it tries to handle the large amount of data.
  61381. .sp
  61382. It is also possible to perform this query using different settings without
  61383. modifying the configuration files. To do this, call the \fBavail_images\fP
  61384. function directly:
  61385. .INDENT 0.0
  61386. .INDENT 3.5
  61387. .sp
  61388. .nf
  61389. .ft C
  61390. salt\-cloud \-f avail_images my\-ec2\-config owner=aws\-marketplace
  61391. .ft P
  61392. .fi
  61393. .UNINDENT
  61394. .UNINDENT
  61395. .SS EC2 Images
  61396. .sp
  61397. The following are lists of available AMI images, generally sorted by OS. These
  61398. lists are on 3rd\-party websites, are not managed by Salt Stack in any way. They
  61399. are provided here as a reference for those who are interested, and contain no
  61400. warranty (express or implied) from anyone affiliated with Salt Stack. Most of
  61401. them have never been used, much less tested, by the Salt Stack team.
  61402. .INDENT 0.0
  61403. .IP \(bu 2
  61404. \fI\%Arch Linux\fP
  61405. .UNINDENT
  61406. .INDENT 0.0
  61407. .IP \(bu 2
  61408. \fI\%FreeBSD\fP
  61409. .UNINDENT
  61410. .INDENT 0.0
  61411. .IP \(bu 2
  61412. \fI\%Fedora\fP
  61413. .UNINDENT
  61414. .INDENT 0.0
  61415. .IP \(bu 2
  61416. \fI\%CentOS\fP
  61417. .UNINDENT
  61418. .INDENT 0.0
  61419. .IP \(bu 2
  61420. \fI\%Ubuntu\fP
  61421. .UNINDENT
  61422. .INDENT 0.0
  61423. .IP \(bu 2
  61424. \fI\%Debian\fP
  61425. .UNINDENT
  61426. .INDENT 0.0
  61427. .IP \(bu 2
  61428. \fI\%OmniOS\fP
  61429. .UNINDENT
  61430. .INDENT 0.0
  61431. .IP \(bu 2
  61432. \fI\%All Images on Amazon\fP
  61433. .UNINDENT
  61434. .sp
  61435. NOTE: If \fBimage\fP of a profile does not start with \fBami\-\fP, latest
  61436. image with that name will be used. For example, to create a CentOS 7
  61437. profile, instead of using the AMI like \fBimage: ami\-1caef165\fP, we
  61438. can use its name like \fBimage: \(aqCentOS Linux 7 x86_64 HVM EBS ENA 1803_01\(aq\fP\&.
  61439. We can also use a pattern like below to get the latest CentOS 7:
  61440. .INDENT 0.0
  61441. .INDENT 3.5
  61442. .sp
  61443. .nf
  61444. .ft C
  61445. profile\-id:
  61446. provider: provider\-name
  61447. subnetid: subnet\-XXXXXXXX
  61448. image: \(aqCentOS Linux 7 x86_64 HVM EBS *\(aq
  61449. size: m1.medium
  61450. ssh_username: centos
  61451. securitygroupid:
  61452. \- sg\-XXXXXXXX
  61453. securitygroupname:
  61454. \- AnotherSecurityGroup
  61455. \- AndThirdSecurityGroup
  61456. .ft P
  61457. .fi
  61458. .UNINDENT
  61459. .UNINDENT
  61460. .SS show_image
  61461. .sp
  61462. This is a function that describes an AMI on EC2. This will give insight as to
  61463. the defaults that will be applied to an instance using a particular AMI.
  61464. .INDENT 0.0
  61465. .INDENT 3.5
  61466. .sp
  61467. .nf
  61468. .ft C
  61469. $ salt\-cloud \-f show_image ec2 image=ami\-fd20ad94
  61470. .ft P
  61471. .fi
  61472. .UNINDENT
  61473. .UNINDENT
  61474. .SS show_instance
  61475. .sp
  61476. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  61477. single instance only. In an environment with several machines, this will save a
  61478. user from having to sort through all instance data, just to examine a single
  61479. instance.
  61480. .INDENT 0.0
  61481. .INDENT 3.5
  61482. .sp
  61483. .nf
  61484. .ft C
  61485. $ salt\-cloud \-a show_instance myinstance
  61486. .ft P
  61487. .fi
  61488. .UNINDENT
  61489. .UNINDENT
  61490. .SS ebs_optimized
  61491. .sp
  61492. This argument enables switching of the EbsOptimized setting which default
  61493. to \(aqfalse\(aq. Indicates whether the instance is optimized for EBS I/O. This
  61494. optimization provides dedicated throughput to Amazon EBS and an optimized
  61495. configuration stack to provide optimal Amazon EBS I/O performance. This
  61496. optimization isn\(aqt available with all instance types. Additional usage
  61497. charges apply when using an EBS\-optimized instance.
  61498. .sp
  61499. This setting can be added to the profile or map file for an instance.
  61500. .sp
  61501. If set to True, this setting will enable an instance to be EbsOptimized
  61502. .INDENT 0.0
  61503. .INDENT 3.5
  61504. .sp
  61505. .nf
  61506. .ft C
  61507. ebs_optimized: True
  61508. .ft P
  61509. .fi
  61510. .UNINDENT
  61511. .UNINDENT
  61512. .sp
  61513. This can also be set as a cloud provider setting in the EC2 cloud
  61514. configuration:
  61515. .INDENT 0.0
  61516. .INDENT 3.5
  61517. .sp
  61518. .nf
  61519. .ft C
  61520. my\-ec2\-config:
  61521. ebs_optimized: True
  61522. .ft P
  61523. .fi
  61524. .UNINDENT
  61525. .UNINDENT
  61526. .SS del_root_vol_on_destroy
  61527. .sp
  61528. This argument overrides the default DeleteOnTermination setting in the AMI for
  61529. the EBS root volumes for an instance. Many AMIs contain \(aqfalse\(aq as a default,
  61530. resulting in orphaned volumes in the EC2 account, which may unknowingly be
  61531. charged to the account. This setting can be added to the profile or map file
  61532. for an instance.
  61533. .sp
  61534. If set, this setting will apply to the root EBS volume
  61535. .INDENT 0.0
  61536. .INDENT 3.5
  61537. .sp
  61538. .nf
  61539. .ft C
  61540. del_root_vol_on_destroy: True
  61541. .ft P
  61542. .fi
  61543. .UNINDENT
  61544. .UNINDENT
  61545. .sp
  61546. This can also be set as a cloud provider setting in the EC2 cloud
  61547. configuration:
  61548. .INDENT 0.0
  61549. .INDENT 3.5
  61550. .sp
  61551. .nf
  61552. .ft C
  61553. my\-ec2\-config:
  61554. del_root_vol_on_destroy: True
  61555. .ft P
  61556. .fi
  61557. .UNINDENT
  61558. .UNINDENT
  61559. .SS del_all_vols_on_destroy
  61560. .sp
  61561. This argument overrides the default DeleteOnTermination setting in the AMI for
  61562. the not\-root EBS volumes for an instance. Many AMIs contain \(aqfalse\(aq as a
  61563. default, resulting in orphaned volumes in the EC2 account, which may
  61564. unknowingly be charged to the account. This setting can be added to the profile
  61565. or map file for an instance.
  61566. .sp
  61567. If set, this setting will apply to any (non\-root) volumes that were created
  61568. by salt\-cloud using the \(aqvolumes\(aq setting.
  61569. .sp
  61570. The volumes will not be deleted under the following conditions
  61571. * If a volume is detached before terminating the instance
  61572. * If a volume is created without this setting and attached to the instance
  61573. .INDENT 0.0
  61574. .INDENT 3.5
  61575. .sp
  61576. .nf
  61577. .ft C
  61578. del_all_vols_on_destroy: True
  61579. .ft P
  61580. .fi
  61581. .UNINDENT
  61582. .UNINDENT
  61583. .sp
  61584. This can also be set as a cloud provider setting in the EC2 cloud
  61585. configuration:
  61586. .INDENT 0.0
  61587. .INDENT 3.5
  61588. .sp
  61589. .nf
  61590. .ft C
  61591. my\-ec2\-config:
  61592. del_all_vols_on_destroy: True
  61593. .ft P
  61594. .fi
  61595. .UNINDENT
  61596. .UNINDENT
  61597. .sp
  61598. The setting for this may be changed on all volumes of an existing instance
  61599. using one of the following commands:
  61600. .INDENT 0.0
  61601. .INDENT 3.5
  61602. .sp
  61603. .nf
  61604. .ft C
  61605. salt\-cloud \-a delvol_on_destroy myinstance
  61606. salt\-cloud \-a keepvol_on_destroy myinstance
  61607. salt\-cloud \-a show_delvol_on_destroy myinstance
  61608. .ft P
  61609. .fi
  61610. .UNINDENT
  61611. .UNINDENT
  61612. .sp
  61613. The setting for this may be changed on a volume on an existing instance
  61614. using one of the following commands:
  61615. .INDENT 0.0
  61616. .INDENT 3.5
  61617. .sp
  61618. .nf
  61619. .ft C
  61620. salt\-cloud \-a delvol_on_destroy myinstance device=/dev/sda1
  61621. salt\-cloud \-a delvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61622. salt\-cloud \-a keepvol_on_destroy myinstance device=/dev/sda1
  61623. salt\-cloud \-a keepvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61624. salt\-cloud \-a show_delvol_on_destroy myinstance device=/dev/sda1
  61625. salt\-cloud \-a show_delvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61626. .ft P
  61627. .fi
  61628. .UNINDENT
  61629. .UNINDENT
  61630. .SS EC2 Termination Protection
  61631. .sp
  61632. EC2 allows the user to enable and disable termination protection on a specific
  61633. instance. An instance with this protection enabled cannot be destroyed. The EC2
  61634. driver adds a show_term_protect action to the regular EC2 functionality.
  61635. .INDENT 0.0
  61636. .INDENT 3.5
  61637. .sp
  61638. .nf
  61639. .ft C
  61640. salt\-cloud \-a show_term_protect mymachine
  61641. salt\-cloud \-a enable_term_protect mymachine
  61642. salt\-cloud \-a disable_term_protect mymachine
  61643. .ft P
  61644. .fi
  61645. .UNINDENT
  61646. .UNINDENT
  61647. .SS Alternate Endpoint
  61648. .sp
  61649. Normally, EC2 endpoints are build using the region and the service_url. The
  61650. resulting endpoint would follow this pattern:
  61651. .INDENT 0.0
  61652. .INDENT 3.5
  61653. .sp
  61654. .nf
  61655. .ft C
  61656. ec2.<region>.<service_url>
  61657. .ft P
  61658. .fi
  61659. .UNINDENT
  61660. .UNINDENT
  61661. .sp
  61662. This results in an endpoint that looks like:
  61663. .INDENT 0.0
  61664. .INDENT 3.5
  61665. .sp
  61666. .nf
  61667. .ft C
  61668. ec2.us\-east\-1.amazonaws.com
  61669. .ft P
  61670. .fi
  61671. .UNINDENT
  61672. .UNINDENT
  61673. .sp
  61674. There are other projects that support an EC2 compatibility layer, which this
  61675. scheme does not account for. This can be overridden by specifying the endpoint
  61676. directly in the main cloud configuration file:
  61677. .INDENT 0.0
  61678. .INDENT 3.5
  61679. .sp
  61680. .nf
  61681. .ft C
  61682. my\-ec2\-config:
  61683. endpoint: myendpoint.example.com:1138/services/Cloud
  61684. .ft P
  61685. .fi
  61686. .UNINDENT
  61687. .UNINDENT
  61688. .SS Volume Management
  61689. .sp
  61690. The EC2 driver has several functions and actions for management of EBS volumes.
  61691. .SS Creating Volumes
  61692. .sp
  61693. A volume may be created, independent of an instance. A zone must be specified.
  61694. A size or a snapshot may be specified (in GiB). If neither is given, a default
  61695. size of 10 GiB will be used. If a snapshot is given, the size of the snapshot
  61696. will be used.
  61697. .sp
  61698. The following parameters may also be set (when providing a snapshot OR size):
  61699. .INDENT 0.0
  61700. .IP \(bu 2
  61701. \fBtype\fP: choose between standard (magnetic disk), gp2 (SSD), or io1 (provisioned IOPS).
  61702. (default=standard)
  61703. .IP \(bu 2
  61704. \fBiops\fP: the number of IOPS (only applicable to io1 volumes) (default varies on volume size)
  61705. .IP \(bu 2
  61706. \fBencrypted\fP: enable encryption on the volume (default=false)
  61707. .UNINDENT
  61708. .INDENT 0.0
  61709. .INDENT 3.5
  61710. .sp
  61711. .nf
  61712. .ft C
  61713. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b
  61714. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b size=10
  61715. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b snapshot=snap12345678
  61716. salt\-cloud \-f create_volume ec2 size=10 type=standard
  61717. salt\-cloud \-f create_volume ec2 size=10 type=gp2
  61718. salt\-cloud \-f create_volume ec2 size=10 type=io1 iops=1000
  61719. .ft P
  61720. .fi
  61721. .UNINDENT
  61722. .UNINDENT
  61723. .SS Attaching Volumes
  61724. .sp
  61725. Unattached volumes may be attached to an instance. The following values are
  61726. required; name or instance_id, volume_id, and device.
  61727. .INDENT 0.0
  61728. .INDENT 3.5
  61729. .sp
  61730. .nf
  61731. .ft C
  61732. salt\-cloud \-a attach_volume myinstance volume_id=vol\-12345 device=/dev/sdb1
  61733. .ft P
  61734. .fi
  61735. .UNINDENT
  61736. .UNINDENT
  61737. .SS Show a Volume
  61738. .sp
  61739. The details about an existing volume may be retrieved.
  61740. .INDENT 0.0
  61741. .INDENT 3.5
  61742. .sp
  61743. .nf
  61744. .ft C
  61745. salt\-cloud \-a show_volume myinstance volume_id=vol\-12345
  61746. salt\-cloud \-f show_volume ec2 volume_id=vol\-12345
  61747. .ft P
  61748. .fi
  61749. .UNINDENT
  61750. .UNINDENT
  61751. .SS Detaching Volumes
  61752. .sp
  61753. An existing volume may be detached from an instance.
  61754. .INDENT 0.0
  61755. .INDENT 3.5
  61756. .sp
  61757. .nf
  61758. .ft C
  61759. salt\-cloud \-a detach_volume myinstance volume_id=vol\-12345
  61760. .ft P
  61761. .fi
  61762. .UNINDENT
  61763. .UNINDENT
  61764. .SS Deleting Volumes
  61765. .sp
  61766. A volume that is not attached to an instance may be deleted.
  61767. .INDENT 0.0
  61768. .INDENT 3.5
  61769. .sp
  61770. .nf
  61771. .ft C
  61772. salt\-cloud \-f delete_volume ec2 volume_id=vol\-12345
  61773. .ft P
  61774. .fi
  61775. .UNINDENT
  61776. .UNINDENT
  61777. .SS Managing Key Pairs
  61778. .sp
  61779. The EC2 driver has the ability to manage key pairs.
  61780. .SS Creating a Key Pair
  61781. .sp
  61782. A key pair is required in order to create an instance. When creating a key pair
  61783. with this function, the return data will contain a copy of the private key.
  61784. This private key is not stored by Amazon, will not be obtainable past this
  61785. point, and should be stored immediately.
  61786. .INDENT 0.0
  61787. .INDENT 3.5
  61788. .sp
  61789. .nf
  61790. .ft C
  61791. salt\-cloud \-f create_keypair ec2 keyname=mykeypair
  61792. .ft P
  61793. .fi
  61794. .UNINDENT
  61795. .UNINDENT
  61796. .SS Importing a Key Pair
  61797. .INDENT 0.0
  61798. .INDENT 3.5
  61799. .sp
  61800. .nf
  61801. .ft C
  61802. salt\-cloud \-f import_keypair ec2 keyname=mykeypair file=/path/to/id_rsa.pub
  61803. .ft P
  61804. .fi
  61805. .UNINDENT
  61806. .UNINDENT
  61807. .SS Show a Key Pair
  61808. .sp
  61809. This function will show the details related to a key pair, not including the
  61810. private key itself (which is not stored by Amazon).
  61811. .INDENT 0.0
  61812. .INDENT 3.5
  61813. .sp
  61814. .nf
  61815. .ft C
  61816. salt\-cloud \-f show_keypair ec2 keyname=mykeypair
  61817. .ft P
  61818. .fi
  61819. .UNINDENT
  61820. .UNINDENT
  61821. .SS Delete a Key Pair
  61822. .sp
  61823. This function removes the key pair from Amazon.
  61824. .INDENT 0.0
  61825. .INDENT 3.5
  61826. .sp
  61827. .nf
  61828. .ft C
  61829. salt\-cloud \-f delete_keypair ec2 keyname=mykeypair
  61830. .ft P
  61831. .fi
  61832. .UNINDENT
  61833. .UNINDENT
  61834. .SS Launching instances into a VPC
  61835. .SS Simple launching into a VPC
  61836. .sp
  61837. In the amazon web interface, identify the id or the name of the subnet into
  61838. which your image should be created. Then, edit your cloud.profiles file like
  61839. so:\-
  61840. .INDENT 0.0
  61841. .INDENT 3.5
  61842. .sp
  61843. .nf
  61844. .ft C
  61845. profile\-id:
  61846. provider: provider\-name
  61847. subnetid: subnet\-XXXXXXXX
  61848. image: ami\-XXXXXXXX
  61849. size: m1.medium
  61850. ssh_username: ubuntu
  61851. securitygroupid:
  61852. \- sg\-XXXXXXXX
  61853. securitygroupname:
  61854. \- AnotherSecurityGroup
  61855. \- AndThirdSecurityGroup
  61856. .ft P
  61857. .fi
  61858. .UNINDENT
  61859. .UNINDENT
  61860. .sp
  61861. Note that \(aqsubnetid\(aq takes precedence over \(aqsubnetname\(aq, but \(aqsecuritygroupid\(aq
  61862. and \(aqsecuritygroupname\(aq are merged together to generate a single list for
  61863. SecurityGroups of instances.
  61864. .SS Specifying interface properties
  61865. .sp
  61866. New in version 2014.7.0.
  61867. .sp
  61868. Launching into a VPC allows you to specify more complex configurations for
  61869. the network interfaces of your virtual machines, for example:\-
  61870. .INDENT 0.0
  61871. .INDENT 3.5
  61872. .sp
  61873. .nf
  61874. .ft C
  61875. profile\-id:
  61876. provider: provider\-name
  61877. image: ami\-XXXXXXXX
  61878. size: m1.medium
  61879. ssh_username: ubuntu
  61880. # Do not include either \(aqsubnetid\(aq, \(aqsubnetname\(aq, \(aqsecuritygroupid\(aq or
  61881. # \(aqsecuritygroupname\(aq here if you are going to manually specify
  61882. # interface configuration
  61883. #
  61884. network_interfaces:
  61885. \- DeviceIndex: 0
  61886. SubnetId: subnet\-XXXXXXXX
  61887. SecurityGroupId:
  61888. \- sg\-XXXXXXXX
  61889. # Uncomment this line if you would like to set an explicit private
  61890. # IP address for the ec2 instance
  61891. #
  61892. # PrivateIpAddress: 192.168.1.66
  61893. # Uncomment this to associate an existing Elastic IP Address with
  61894. # this network interface:
  61895. #
  61896. # associate_eip: eipalloc\-XXXXXXXX
  61897. # You can allocate more than one IP address to an interface. Use the
  61898. # \(aqip addr list\(aq command to see them.
  61899. #
  61900. # SecondaryPrivateIpAddressCount: 2
  61901. # Uncomment this to allocate a new Elastic IP Address to this
  61902. # interface (will be associated with the primary private ip address
  61903. # of the interface
  61904. #
  61905. # allocate_new_eip: True
  61906. # Uncomment this instead to allocate a new Elastic IP Address to
  61907. # both the primary private ip address and each of the secondary ones
  61908. #
  61909. allocate_new_eips: True
  61910. # Uncomment this if you\(aqre creating NAT instances. Allows an instance
  61911. # to accept IP packets with destinations other than itself.
  61912. # SourceDestCheck: False
  61913. \- DeviceIndex: 1
  61914. subnetname: XXXXXXXX\-Subnet
  61915. securitygroupname:
  61916. \- XXXXXXXX\-SecurityGroup
  61917. \- YYYYYYYY\-SecurityGroup
  61918. .ft P
  61919. .fi
  61920. .UNINDENT
  61921. .UNINDENT
  61922. .sp
  61923. Note that it is an error to assign a \(aqsubnetid\(aq, \(aqsubnetname\(aq, \(aqsecuritygroupid\(aq
  61924. or \(aqsecuritygroupname\(aq to a profile where the interfaces are manually configured
  61925. like this. These are both really properties of each network interface, not of
  61926. the machine itself.
  61927. .SS Getting Started With GoGrid
  61928. .sp
  61929. GoGrid is a public cloud host that supports Linux and Windows.
  61930. .SS Configuration
  61931. .sp
  61932. To use Salt Cloud with GoGrid log into the GoGrid web interface and create an
  61933. API key. Do this by clicking on "My Account" and then going to the API Keys
  61934. tab.
  61935. .sp
  61936. The \fBapikey\fP and the \fBsharedsecret\fP configuration parameters need to be set
  61937. in the configuration file to enable interfacing with GoGrid:
  61938. .INDENT 0.0
  61939. .INDENT 3.5
  61940. .sp
  61941. .nf
  61942. .ft C
  61943. # Note: This example is for /etc/salt/cloud.providers or any file in the
  61944. # /etc/salt/cloud.providers.d/ directory.
  61945. my\-gogrid\-config:
  61946. driver: gogrid
  61947. apikey: asdff7896asdh789
  61948. sharedsecret: saltybacon
  61949. .ft P
  61950. .fi
  61951. .UNINDENT
  61952. .UNINDENT
  61953. .sp
  61954. \fBNOTE:\fP
  61955. .INDENT 0.0
  61956. .INDENT 3.5
  61957. A Note about using Map files with GoGrid:
  61958. .sp
  61959. Due to limitations in the GoGrid API, instances cannot be provisioned in parallel
  61960. with the GoGrid driver. Map files will work with GoGrid, but the \fB\-P\fP
  61961. argument should not be used on maps referencing GoGrid instances.
  61962. .UNINDENT
  61963. .UNINDENT
  61964. .sp
  61965. \fBNOTE:\fP
  61966. .INDENT 0.0
  61967. .INDENT 3.5
  61968. Changed in version 2015.8.0.
  61969. .sp
  61970. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  61971. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  61972. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  61973. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  61974. to use \fBprovider\fP to refer to provider configurations that you define.
  61975. .UNINDENT
  61976. .UNINDENT
  61977. .SS Profiles
  61978. .SS Cloud Profiles
  61979. .sp
  61980. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  61981. \fB/etc/salt/cloud.profiles.d/\fP directory:
  61982. .INDENT 0.0
  61983. .INDENT 3.5
  61984. .sp
  61985. .nf
  61986. .ft C
  61987. gogrid_512:
  61988. provider: my\-gogrid\-config
  61989. size: 512MB
  61990. image: CentOS 6.2 (64\-bit) w/ None
  61991. .ft P
  61992. .fi
  61993. .UNINDENT
  61994. .UNINDENT
  61995. .sp
  61996. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  61997. command:
  61998. .INDENT 0.0
  61999. .INDENT 3.5
  62000. .sp
  62001. .nf
  62002. .ft C
  62003. # salt\-cloud \-\-list\-sizes my\-gogrid\-config
  62004. my\-gogrid\-config:
  62005. \-\-\-\-\-\-\-\-\-\-
  62006. gogrid:
  62007. \-\-\-\-\-\-\-\-\-\-
  62008. 512MB:
  62009. \-\-\-\-\-\-\-\-\-\-
  62010. bandwidth:
  62011. None
  62012. disk:
  62013. 30
  62014. driver:
  62015. get_uuid:
  62016. id:
  62017. 512MB
  62018. name:
  62019. 512MB
  62020. price:
  62021. 0.095
  62022. ram:
  62023. 512
  62024. uuid:
  62025. bde1e4d7c3a643536e42a35142c7caac34b060e9
  62026. \&...SNIP...
  62027. .ft P
  62028. .fi
  62029. .UNINDENT
  62030. .UNINDENT
  62031. .sp
  62032. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  62033. command:
  62034. .INDENT 0.0
  62035. .INDENT 3.5
  62036. .sp
  62037. .nf
  62038. .ft C
  62039. # salt\-cloud \-\-list\-images my\-gogrid\-config
  62040. my\-gogrid\-config:
  62041. \-\-\-\-\-\-\-\-\-\-
  62042. gogrid:
  62043. \-\-\-\-\-\-\-\-\-\-
  62044. CentOS 6.4 (64\-bit) w/ None:
  62045. \-\-\-\-\-\-\-\-\-\-
  62046. driver:
  62047. extra:
  62048. \-\-\-\-\-\-\-\-\-\-
  62049. get_uuid:
  62050. id:
  62051. 18094
  62052. name:
  62053. CentOS 6.4 (64\-bit) w/ None
  62054. uuid:
  62055. bfd4055389919e01aa6261828a96cf54c8dcc2c4
  62056. \&...SNIP...
  62057. .ft P
  62058. .fi
  62059. .UNINDENT
  62060. .UNINDENT
  62061. .SS Assigning IPs
  62062. .sp
  62063. New in version 2015.8.0.
  62064. .sp
  62065. The GoGrid API allows IP addresses to be manually assigned. Salt Cloud supports
  62066. this functionality by allowing an IP address to be specified using the
  62067. \fBassign_public_ip\fP argument. This likely makes the most sense inside a map
  62068. file, but it may also be used inside a profile.
  62069. .INDENT 0.0
  62070. .INDENT 3.5
  62071. .sp
  62072. .nf
  62073. .ft C
  62074. gogrid_512:
  62075. provider: my\-gogrid\-config
  62076. size: 512MB
  62077. image: CentOS 6.2 (64\-bit) w/ None
  62078. assign_public_ip: 11.38.257.42
  62079. .ft P
  62080. .fi
  62081. .UNINDENT
  62082. .UNINDENT
  62083. .SS Getting Started With Google Compute Engine
  62084. .sp
  62085. Google Compute Engine (GCE) is Google\-infrastructure as a service that lets you
  62086. run your large\-scale computing workloads on virtual machines. This document
  62087. covers how to use Salt Cloud to provision and manage your virtual machines
  62088. hosted within Google\(aqs infrastructure.
  62089. .sp
  62090. You can find out more about GCE and other Google Cloud Platform services
  62091. at \fI\%https://cloud.google.com\fP\&.
  62092. .SS Dependencies
  62093. .INDENT 0.0
  62094. .IP \(bu 2
  62095. LibCloud >= 1.0.0
  62096. .UNINDENT
  62097. .sp
  62098. Changed in version 2017.7.0.
  62099. .INDENT 0.0
  62100. .IP \(bu 2
  62101. A Google Cloud Platform account with Compute Engine enabled
  62102. .IP \(bu 2
  62103. A registered Service Account for authorization
  62104. .IP \(bu 2
  62105. Oh, and obviously you\(aqll need \fI\%salt\fP
  62106. .UNINDENT
  62107. .SS Google Compute Engine Setup
  62108. .INDENT 0.0
  62109. .IP 1. 3
  62110. Sign up for Google Cloud Platform
  62111. .sp
  62112. Go to \fI\%https://cloud.google.com\fP and use your Google account to sign up for
  62113. Google Cloud Platform and complete the guided instructions.
  62114. .IP 2. 3
  62115. Create a Project
  62116. .sp
  62117. Next, go to the console at \fI\%https://cloud.google.com/console\fP and create a
  62118. new Project. Make sure to select your new Project if you are not
  62119. automatically directed to the Project.
  62120. .sp
  62121. Projects are a way of grouping together related users, services, and
  62122. billing. You may opt to create multiple Projects and the remaining
  62123. instructions will need to be completed for each Project if you wish to
  62124. use GCE and Salt Cloud to manage your virtual machines.
  62125. .IP 3. 3
  62126. Enable the Google Compute Engine service
  62127. .sp
  62128. In your Project, either just click \fICompute Engine\fP to the left, or go to
  62129. the \fIAPIs & auth\fP section and \fIAPIs\fP link and enable the Google Compute
  62130. Engine service.
  62131. .IP 4. 3
  62132. Create a Service Account
  62133. .sp
  62134. To set up authorization, navigate to \fIAPIs & auth\fP section and then the
  62135. \fICredentials\fP link and click the \fICREATE NEW CLIENT ID\fP button. Select
  62136. \fIService Account\fP and click the \fICreate Client ID\fP button. This will
  62137. automatically download a \fB\&.json\fP file, which may or may not be used
  62138. in later steps, depending on your version of \fBlibcloud\fP\&.
  62139. .sp
  62140. Look for a new \fIService Account\fP section in the page and record the generated
  62141. email address for the matching key/fingerprint. The email address will be used
  62142. in the \fBservice_account_email_address\fP of the \fB/etc/salt/cloud.providers\fP
  62143. or the \fB/etc/salt/cloud.providers.d/*.conf\fP file.
  62144. .IP 5. 3
  62145. Key Format
  62146. .sp
  62147. \fBNOTE:\fP
  62148. .INDENT 3.0
  62149. .INDENT 3.5
  62150. If you are using \fBlibcloud >= 0.17.0\fP it is recommended that you use the \fBJSON
  62151. format\fP file you downloaded above and skip to the \fI\%Provider Configuration\fP section
  62152. below, using the JSON file \fBin place of \(aqNEW.pem\(aq\fP in the documentation.
  62153. .sp
  62154. If you are using an older version of libcloud or are unsure of the version you
  62155. have, please follow the instructions below to generate and format a new P12 key.
  62156. .UNINDENT
  62157. .UNINDENT
  62158. .sp
  62159. In the new \fIService Account\fP section, click \fIGenerate new P12 key\fP, which
  62160. will automatically download a \fB\&.p12\fP private key file. The \fB\&.p12\fP
  62161. private key needs to be converted to a format compatible with libcloud.
  62162. This new Google\-generated private key was encrypted using \fInotasecret\fP as
  62163. a passphrase. Use the following command and record the location of the
  62164. converted private key and record the location for use in the
  62165. \fBservice_account_private_key\fP of the \fB/etc/salt/cloud\fP file:
  62166. .INDENT 3.0
  62167. .INDENT 3.5
  62168. .sp
  62169. .nf
  62170. .ft C
  62171. openssl pkcs12 \-in ORIG.p12 \-passin pass:notasecret \e
  62172. \-nodes \-nocerts | openssl rsa \-out NEW.pem
  62173. .ft P
  62174. .fi
  62175. .UNINDENT
  62176. .UNINDENT
  62177. .UNINDENT
  62178. .SS Provider Configuration
  62179. .sp
  62180. Set up the provider cloud config at \fB/etc/salt/cloud.providers\fP or
  62181. \fB/etc/salt/cloud.providers.d/*.conf\fP:
  62182. .INDENT 0.0
  62183. .INDENT 3.5
  62184. .sp
  62185. .nf
  62186. .ft C
  62187. gce\-config:
  62188. # Set up the Project name and Service Account authorization
  62189. project: "your\-project\-id"
  62190. service_account_email_address: "123\-a5gt@developer.gserviceaccount.com"
  62191. service_account_private_key: "/path/to/your/NEW.pem"
  62192. # Set up the location of the salt master
  62193. minion:
  62194. master: saltmaster.example.com
  62195. # Set up grains information, which will be common for all nodes
  62196. # using this provider
  62197. grains:
  62198. node_type: broker
  62199. release: 1.0.1
  62200. driver: gce
  62201. .ft P
  62202. .fi
  62203. .UNINDENT
  62204. .UNINDENT
  62205. .sp
  62206. \fBNOTE:\fP
  62207. .INDENT 0.0
  62208. .INDENT 3.5
  62209. Empty strings as values for \fBservice_account_private_key\fP and \fBservice_account_email_address\fP
  62210. can be used on GCE instances. This will result in the service account assigned to the GCE instance
  62211. being used.
  62212. .UNINDENT
  62213. .UNINDENT
  62214. .sp
  62215. \fBNOTE:\fP
  62216. .INDENT 0.0
  62217. .INDENT 3.5
  62218. The value provided for \fBproject\fP must not contain underscores or spaces and
  62219. is labeled as "Project ID" on the Google Developers Console.
  62220. .UNINDENT
  62221. .UNINDENT
  62222. .sp
  62223. \fBNOTE:\fP
  62224. .INDENT 0.0
  62225. .INDENT 3.5
  62226. Changed in version 2015.8.0.
  62227. .sp
  62228. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  62229. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  62230. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  62231. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  62232. to use \fBprovider\fP to refer to provider configurations that you define.
  62233. .UNINDENT
  62234. .UNINDENT
  62235. .SS Profile Configuration
  62236. .sp
  62237. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  62238. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  62239. .INDENT 0.0
  62240. .INDENT 3.5
  62241. .sp
  62242. .nf
  62243. .ft C
  62244. my\-gce\-profile:
  62245. image: centos\-6
  62246. size: n1\-standard\-1
  62247. location: europe\-west1\-b
  62248. network: default
  62249. subnetwork: default
  62250. tags: \(aq["one", "two", "three"]\(aq
  62251. metadata: \(aq{"one": "1", "2": "two"}\(aq
  62252. use_persistent_disk: True
  62253. delete_boot_pd: False
  62254. deploy: True
  62255. make_master: False
  62256. provider: gce\-config
  62257. .ft P
  62258. .fi
  62259. .UNINDENT
  62260. .UNINDENT
  62261. .sp
  62262. The profile can be realized now with a salt command:
  62263. .INDENT 0.0
  62264. .INDENT 3.5
  62265. .sp
  62266. .nf
  62267. .ft C
  62268. salt\-cloud \-p my\-gce\-profile gce\-instance
  62269. .ft P
  62270. .fi
  62271. .UNINDENT
  62272. .UNINDENT
  62273. .sp
  62274. This will create an salt minion instance named \fBgce\-instance\fP in GCE. If
  62275. the command was executed on the salt\-master, its Salt key will automatically
  62276. be signed on the master.
  62277. .sp
  62278. Once the instance has been created with a salt\-minion installed, connectivity to
  62279. it can be verified with Salt:
  62280. .INDENT 0.0
  62281. .INDENT 3.5
  62282. .sp
  62283. .nf
  62284. .ft C
  62285. salt gce\-instance test.version
  62286. .ft P
  62287. .fi
  62288. .UNINDENT
  62289. .UNINDENT
  62290. .SS GCE Specific Settings
  62291. .sp
  62292. Consult the sample profile below for more information about GCE specific
  62293. settings. Some of them are mandatory and are properly labeled below but
  62294. typically also include a hard\-coded default.
  62295. .SS Initial Profile
  62296. .sp
  62297. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  62298. \fB/etc/salt/cloud.profiles.d/gce.conf\fP:
  62299. .INDENT 0.0
  62300. .INDENT 3.5
  62301. .sp
  62302. .nf
  62303. .ft C
  62304. my\-gce\-profile:
  62305. image: centos\-6
  62306. size: n1\-standard\-1
  62307. location: europe\-west1\-b
  62308. network: default
  62309. subnetwork: default
  62310. tags: \(aq["one", "two", "three"]\(aq
  62311. metadata: \(aq{"one": "1", "2": "two"}\(aq
  62312. use_persistent_disk: True
  62313. delete_boot_pd: False
  62314. ssh_interface: public_ips
  62315. external_ip: "ephemeral"
  62316. .ft P
  62317. .fi
  62318. .UNINDENT
  62319. .UNINDENT
  62320. .SS image
  62321. .sp
  62322. Image is used to define what Operating System image should be used
  62323. to for the instance. Examples are Debian 7 (wheezy) and CentOS 6. Required.
  62324. .SS size
  62325. .sp
  62326. A \(aqsize\(aq, in GCE terms, refers to the instance\(aqs \(aqmachine type\(aq. See
  62327. the on\-line documentation for a complete list of GCE machine types. Required.
  62328. .SS location
  62329. .sp
  62330. A \(aqlocation\(aq, in GCE terms, refers to the instance\(aqs \(aqzone\(aq. GCE
  62331. has the notion of both Regions (e.g. us\-central1, europe\-west1, etc)
  62332. and Zones (e.g. us\-central1\-a, us\-central1\-b, etc). Required.
  62333. .SS network
  62334. .sp
  62335. Use this setting to define the network resource for the instance.
  62336. All GCE projects contain a network named \(aqdefault\(aq but it\(aqs possible
  62337. to use this setting to create instances belonging to a different
  62338. network resource.
  62339. .SS subnetwork
  62340. .sp
  62341. Use this setting to define the subnetwork an instance will be created in.
  62342. This requires that the network your instance is created under has a mode of \(aqcustom\(aq or \(aqauto\(aq.
  62343. Additionally, the subnetwork your instance is created under is associated with the location you provide.
  62344. .sp
  62345. New in version 2017.7.0.
  62346. .SS tags
  62347. .sp
  62348. GCE supports instance/network tags and this setting allows you to
  62349. set custom tags. It should be a list of strings and must be
  62350. parse\-able by the python ast.literal_eval() function to convert it
  62351. to a python list.
  62352. .SS metadata
  62353. .sp
  62354. GCE supports instance metadata and this setting allows you to
  62355. set custom metadata. It should be a hash of key/value strings and
  62356. parse\-able by the python ast.literal_eval() function to convert it
  62357. to a python dictionary.
  62358. .SS use_persistent_disk
  62359. .sp
  62360. Use this setting to ensure that when new instances are created,
  62361. they will use a persistent disk to preserve data between instance
  62362. terminations and re\-creations.
  62363. .SS delete_boot_pd
  62364. .sp
  62365. In the event that you wish the boot persistent disk to be permanently
  62366. deleted when you destroy an instance, set delete_boot_pd to True.
  62367. .SS ssh_interface
  62368. .sp
  62369. New in version 2015.5.0.
  62370. .sp
  62371. Specify whether to use public or private IP for deploy script.
  62372. .sp
  62373. Valid options are:
  62374. .INDENT 0.0
  62375. .IP \(bu 2
  62376. private_ips: The salt\-master is also hosted with GCE
  62377. .IP \(bu 2
  62378. public_ips: The salt\-master is hosted outside of GCE
  62379. .UNINDENT
  62380. .SS external_ip
  62381. .sp
  62382. Per instance setting: Used a named fixed IP address to this host.
  62383. .sp
  62384. Valid options are:
  62385. .INDENT 0.0
  62386. .IP \(bu 2
  62387. ephemeral: The host will use a GCE ephemeral IP
  62388. .IP \(bu 2
  62389. None: No external IP will be configured on this host.
  62390. .UNINDENT
  62391. .sp
  62392. Optionally, pass the name of a GCE address to use a fixed IP address.
  62393. If the address does not already exist, it will be created.
  62394. .SS ex_disk_type
  62395. .sp
  62396. GCE supports two different disk types, \fBpd\-standard\fP and \fBpd\-ssd\fP\&.
  62397. The default disk type setting is \fBpd\-standard\fP\&. To specify using an SSD
  62398. disk, set \fBpd\-ssd\fP as the value.
  62399. .sp
  62400. New in version 2014.7.0.
  62401. .SS ip_forwarding
  62402. .sp
  62403. GCE instances can be enabled to use IP Forwarding. When set to \fBTrue\fP,
  62404. this options allows the instance to send/receive non\-matching src/dst
  62405. packets. Default is \fBFalse\fP\&.
  62406. .sp
  62407. New in version 2015.8.1.
  62408. .SS Profile with scopes
  62409. .sp
  62410. Scopes can be specified by setting the optional \fBex_service_accounts\fP
  62411. key in your cloud profile. The following example enables the bigquery scope.
  62412. .INDENT 0.0
  62413. .INDENT 3.5
  62414. .sp
  62415. .nf
  62416. .ft C
  62417. my\-gce\-profile:
  62418. image: centos\-6
  62419. ssh_username: salt
  62420. size: f1\-micro
  62421. location: us\-central1\-a
  62422. network: default
  62423. subnetwork: default
  62424. tags: \(aq["one", "two", "three"]\(aq
  62425. metadata: \(aq{"one": "1", "2": "two",
  62426. "sshKeys": ""}\(aq
  62427. use_persistent_disk: True
  62428. delete_boot_pd: False
  62429. deploy: False
  62430. make_master: False
  62431. provider: gce\-config
  62432. ex_service_accounts:
  62433. \- scopes:
  62434. \- bigquery
  62435. .ft P
  62436. .fi
  62437. .UNINDENT
  62438. .UNINDENT
  62439. .sp
  62440. Email can also be specified as an (optional) parameter.
  62441. .INDENT 0.0
  62442. .INDENT 3.5
  62443. .sp
  62444. .nf
  62445. .ft C
  62446. my\-gce\-profile:
  62447. \&...snip
  62448. ex_service_accounts:
  62449. \- scopes:
  62450. \- bigquery
  62451. email: default
  62452. .ft P
  62453. .fi
  62454. .UNINDENT
  62455. .UNINDENT
  62456. .sp
  62457. There can be multiple entries for scopes since \fBex\-service_accounts\fP accepts
  62458. a list of dictionaries. For more information refer to the libcloud documentation
  62459. on \fI\%specifying service account scopes\fP\&.
  62460. .SS SSH Remote Access
  62461. .sp
  62462. GCE instances do not allow remote access to the root user by default.
  62463. Instead, another user must be used to run the deploy script using sudo.
  62464. Append something like this to \fB/etc/salt/cloud.profiles\fP or
  62465. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  62466. .INDENT 0.0
  62467. .INDENT 3.5
  62468. .sp
  62469. .nf
  62470. .ft C
  62471. my\-gce\-profile:
  62472. ...
  62473. # SSH to GCE instances as gceuser
  62474. ssh_username: gceuser
  62475. # Use the local private SSH key file located here
  62476. ssh_keyfile: /etc/cloud/google_compute_engine
  62477. .ft P
  62478. .fi
  62479. .UNINDENT
  62480. .UNINDENT
  62481. .sp
  62482. If you have not already used this SSH key to login to instances in this
  62483. GCE project you will also need to add the public key to your projects
  62484. metadata at \fI\%https://cloud.google.com/console\fP\&. You could also add it via
  62485. the metadata setting too:
  62486. .INDENT 0.0
  62487. .INDENT 3.5
  62488. .sp
  62489. .nf
  62490. .ft C
  62491. my\-gce\-profile:
  62492. ...
  62493. metadata: \(aq{"one": "1", "2": "two",
  62494. "sshKeys": "gceuser:ssh\-rsa <Your SSH Public Key> gceuser@host"}\(aq
  62495. .ft P
  62496. .fi
  62497. .UNINDENT
  62498. .UNINDENT
  62499. .SS Single instance details
  62500. .sp
  62501. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  62502. single instance only. In an environment with several machines, this will save a
  62503. user from having to sort through all instance data, just to examine a single
  62504. instance.
  62505. .INDENT 0.0
  62506. .INDENT 3.5
  62507. .sp
  62508. .nf
  62509. .ft C
  62510. salt\-cloud \-a show_instance myinstance
  62511. .ft P
  62512. .fi
  62513. .UNINDENT
  62514. .UNINDENT
  62515. .SS Destroy, persistent disks, and metadata
  62516. .sp
  62517. As noted in the provider configuration, it\(aqs possible to force the boot
  62518. persistent disk to be deleted when you destroy the instance. The way that
  62519. this has been implemented is to use the instance metadata to record the
  62520. cloud profile used when creating the instance. When \fBdestroy\fP is called,
  62521. if the instance contains a \fBsalt\-cloud\-profile\fP key, it\(aqs value is used
  62522. to reference the matching profile to determine if \fBdelete_boot_pd\fP is
  62523. set to \fBTrue\fP\&.
  62524. .sp
  62525. Be aware that any GCE instances created with salt cloud will contain this
  62526. custom \fBsalt\-cloud\-profile\fP metadata entry.
  62527. .SS List various resources
  62528. .sp
  62529. It\(aqs also possible to list several GCE resources similar to what can be done
  62530. with other providers. The following commands can be used to list GCE zones
  62531. (locations), machine types (sizes), and images.
  62532. .INDENT 0.0
  62533. .INDENT 3.5
  62534. .sp
  62535. .nf
  62536. .ft C
  62537. salt\-cloud \-\-list\-locations gce
  62538. salt\-cloud \-\-list\-sizes gce
  62539. salt\-cloud \-\-list\-images gce
  62540. .ft P
  62541. .fi
  62542. .UNINDENT
  62543. .UNINDENT
  62544. .SS Persistent Disk
  62545. .sp
  62546. The Compute Engine provider provides functions via salt\-cloud to manage your
  62547. Persistent Disks. You can create and destroy disks as well as attach and
  62548. detach them from running instances.
  62549. .SS Create
  62550. .sp
  62551. When creating a disk, you can create an empty disk and specify its size (in
  62552. GB), or specify either an \(aqimage\(aq or \(aqsnapshot\(aq.
  62553. .INDENT 0.0
  62554. .INDENT 3.5
  62555. .sp
  62556. .nf
  62557. .ft C
  62558. salt\-cloud \-f create_disk gce disk_name=pd location=us\-central1\-b size=200
  62559. .ft P
  62560. .fi
  62561. .UNINDENT
  62562. .UNINDENT
  62563. .SS Delete
  62564. .sp
  62565. Deleting a disk only requires the name of the disk to delete
  62566. .INDENT 0.0
  62567. .INDENT 3.5
  62568. .sp
  62569. .nf
  62570. .ft C
  62571. salt\-cloud \-f delete_disk gce disk_name=old\-backup
  62572. .ft P
  62573. .fi
  62574. .UNINDENT
  62575. .UNINDENT
  62576. .SS Attach
  62577. .sp
  62578. Attaching a disk to an existing instance is really an \(aqaction\(aq and requires
  62579. both an instance name and disk name. It\(aqs possible to use this ation to
  62580. create bootable persistent disks if necessary. Compute Engine also supports
  62581. attaching a persistent disk in READ_ONLY mode to multiple instances at the
  62582. same time (but then cannot be attached in READ_WRITE to any instance).
  62583. .INDENT 0.0
  62584. .INDENT 3.5
  62585. .sp
  62586. .nf
  62587. .ft C
  62588. salt\-cloud \-a attach_disk myinstance disk_name=pd mode=READ_WRITE boot=yes
  62589. .ft P
  62590. .fi
  62591. .UNINDENT
  62592. .UNINDENT
  62593. .SS Detach
  62594. .sp
  62595. Detaching a disk is also an action against an instance and only requires
  62596. the name of the disk. Note that this does \fInot\fP safely sync and umount the
  62597. disk from the instance. To ensure no data loss, you must first make sure the
  62598. disk is unmounted from the instance.
  62599. .INDENT 0.0
  62600. .INDENT 3.5
  62601. .sp
  62602. .nf
  62603. .ft C
  62604. salt\-cloud \-a detach_disk myinstance disk_name=pd
  62605. .ft P
  62606. .fi
  62607. .UNINDENT
  62608. .UNINDENT
  62609. .SS Show disk
  62610. .sp
  62611. It\(aqs also possible to look up the details for an existing disk with either
  62612. a function or an action.
  62613. .INDENT 0.0
  62614. .INDENT 3.5
  62615. .sp
  62616. .nf
  62617. .ft C
  62618. salt\-cloud \-a show_disk myinstance disk_name=pd
  62619. salt\-cloud \-f show_disk gce disk_name=pd
  62620. .ft P
  62621. .fi
  62622. .UNINDENT
  62623. .UNINDENT
  62624. .SS Create snapshot
  62625. .sp
  62626. You can take a snapshot of an existing disk\(aqs content. The snapshot can then
  62627. in turn be used to create other persistent disks. Note that to prevent data
  62628. corruption, it is strongly suggested that you unmount the disk prior to
  62629. taking a snapshot. You must name the snapshot and provide the name of the
  62630. disk.
  62631. .INDENT 0.0
  62632. .INDENT 3.5
  62633. .sp
  62634. .nf
  62635. .ft C
  62636. salt\-cloud \-f create_snapshot gce name=backup\-20140226 disk_name=pd
  62637. .ft P
  62638. .fi
  62639. .UNINDENT
  62640. .UNINDENT
  62641. .SS Delete snapshot
  62642. .sp
  62643. You can delete a snapshot when it\(aqs no longer needed by specifying the name
  62644. of the snapshot.
  62645. .INDENT 0.0
  62646. .INDENT 3.5
  62647. .sp
  62648. .nf
  62649. .ft C
  62650. salt\-cloud \-f delete_snapshot gce name=backup\-20140226
  62651. .ft P
  62652. .fi
  62653. .UNINDENT
  62654. .UNINDENT
  62655. .SS Show snapshot
  62656. .sp
  62657. Use this function to look up information about the snapshot.
  62658. .INDENT 0.0
  62659. .INDENT 3.5
  62660. .sp
  62661. .nf
  62662. .ft C
  62663. salt\-cloud \-f show_snapshot gce name=backup\-20140226
  62664. .ft P
  62665. .fi
  62666. .UNINDENT
  62667. .UNINDENT
  62668. .SS Networking
  62669. .sp
  62670. Compute Engine supports multiple private networks per project. Instances
  62671. within a private network can easily communicate with each other by an
  62672. internal DNS service that resolves instance names. Instances within a private
  62673. network can also communicate with either directly without needing special
  62674. routing or firewall rules even if they span different regions/zones.
  62675. .sp
  62676. Networks also support custom firewall rules. By default, traffic between
  62677. instances on the same private network is open to all ports and protocols.
  62678. Inbound SSH traffic (port 22) is also allowed but all other inbound traffic
  62679. is blocked.
  62680. .SS Create network
  62681. .sp
  62682. New networks require a name and CIDR range if they don\(aqt have a \(aqmode\(aq.
  62683. Optionally, \(aqmode\(aq can be provided. Supported modes are \(aqauto\(aq, \(aqcustom\(aq, \(aqlegacy\(aq.
  62684. Optionally, \(aqdescription\(aq can be provided to add an extra note to your network.
  62685. New instances can be created and added to this network by setting the network name during create. It is
  62686. not possible to add/remove existing instances to a network.
  62687. .INDENT 0.0
  62688. .INDENT 3.5
  62689. .sp
  62690. .nf
  62691. .ft C
  62692. salt\-cloud \-f create_network gce name=mynet cidr=10.10.10.0/24
  62693. salt\-cloud \-f create_network gce name=mynet mode=auto description=some optional info.
  62694. .ft P
  62695. .fi
  62696. .UNINDENT
  62697. .UNINDENT
  62698. .sp
  62699. Changed in version 2017.7.0.
  62700. .SS Destroy network
  62701. .sp
  62702. Destroy a network by specifying the name. If a resource is currently using
  62703. the target network an exception will be raised.
  62704. .INDENT 0.0
  62705. .INDENT 3.5
  62706. .sp
  62707. .nf
  62708. .ft C
  62709. salt\-cloud \-f delete_network gce name=mynet
  62710. .ft P
  62711. .fi
  62712. .UNINDENT
  62713. .UNINDENT
  62714. .SS Show network
  62715. .sp
  62716. Specify the network name to view information about the network.
  62717. .INDENT 0.0
  62718. .INDENT 3.5
  62719. .sp
  62720. .nf
  62721. .ft C
  62722. salt\-cloud \-f show_network gce name=mynet
  62723. .ft P
  62724. .fi
  62725. .UNINDENT
  62726. .UNINDENT
  62727. .SS Create subnetwork
  62728. .sp
  62729. New subnetworks require a name, region, and CIDR range.
  62730. Optionally, \(aqdescription\(aq can be provided to add an extra note to your subnetwork.
  62731. New instances can be created and added to this subnetwork by setting the subnetwork name during create. It is
  62732. not possible to add/remove existing instances to a subnetwork.
  62733. .INDENT 0.0
  62734. .INDENT 3.5
  62735. .sp
  62736. .nf
  62737. .ft C
  62738. salt\-cloud \-f create_subnetwork gce name=mynet network=mynet region=us\-central1 cidr=10.0.10.0/24
  62739. 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.
  62740. .ft P
  62741. .fi
  62742. .UNINDENT
  62743. .UNINDENT
  62744. .sp
  62745. New in version 2017.7.0.
  62746. .SS Destroy subnetwork
  62747. .sp
  62748. Destroy a subnetwork by specifying the name and region. If a resource is currently using
  62749. the target subnetwork an exception will be raised.
  62750. .INDENT 0.0
  62751. .INDENT 3.5
  62752. .sp
  62753. .nf
  62754. .ft C
  62755. salt\-cloud \-f delete_subnetwork gce name=mynet region=us\-central1
  62756. .ft P
  62757. .fi
  62758. .UNINDENT
  62759. .UNINDENT
  62760. .sp
  62761. New in version 2017.7.0.
  62762. .SS Show subnetwork
  62763. .sp
  62764. Specify the subnetwork name to view information about the subnetwork.
  62765. .INDENT 0.0
  62766. .INDENT 3.5
  62767. .sp
  62768. .nf
  62769. .ft C
  62770. salt\-cloud \-f show_subnetwork gce name=mynet
  62771. .ft P
  62772. .fi
  62773. .UNINDENT
  62774. .UNINDENT
  62775. .sp
  62776. New in version 2017.7.0.
  62777. .SS Create address
  62778. .sp
  62779. Create a new named static IP address in a region.
  62780. .INDENT 0.0
  62781. .INDENT 3.5
  62782. .sp
  62783. .nf
  62784. .ft C
  62785. salt\-cloud \-f create_address gce name=my\-fixed\-ip region=us\-central1
  62786. .ft P
  62787. .fi
  62788. .UNINDENT
  62789. .UNINDENT
  62790. .SS Delete address
  62791. .sp
  62792. Delete an existing named fixed IP address.
  62793. .INDENT 0.0
  62794. .INDENT 3.5
  62795. .sp
  62796. .nf
  62797. .ft C
  62798. salt\-cloud \-f delete_address gce name=my\-fixed\-ip region=us\-central1
  62799. .ft P
  62800. .fi
  62801. .UNINDENT
  62802. .UNINDENT
  62803. .SS Show address
  62804. .sp
  62805. View details on a named address.
  62806. .INDENT 0.0
  62807. .INDENT 3.5
  62808. .sp
  62809. .nf
  62810. .ft C
  62811. salt\-cloud \-f show_address gce name=my\-fixed\-ip region=us\-central1
  62812. .ft P
  62813. .fi
  62814. .UNINDENT
  62815. .UNINDENT
  62816. .SS Create firewall
  62817. .sp
  62818. You\(aqll need to create custom firewall rules if you want to allow other traffic
  62819. than what is described above. For instance, if you run a web service on
  62820. your instances, you\(aqll need to explicitly allow HTTP and/or SSL traffic.
  62821. The firewall rule must have a name and it will use the \(aqdefault\(aq network
  62822. unless otherwise specified with a \(aqnetwork\(aq attribute. Firewalls also support
  62823. instance tags for source/destination
  62824. .INDENT 0.0
  62825. .INDENT 3.5
  62826. .sp
  62827. .nf
  62828. .ft C
  62829. salt\-cloud \-f create_fwrule gce name=web allow=tcp:80,tcp:443,icmp
  62830. .ft P
  62831. .fi
  62832. .UNINDENT
  62833. .UNINDENT
  62834. .SS Delete firewall
  62835. .sp
  62836. Deleting a firewall rule will prevent any previously allowed traffic for the
  62837. named firewall rule.
  62838. .INDENT 0.0
  62839. .INDENT 3.5
  62840. .sp
  62841. .nf
  62842. .ft C
  62843. salt\-cloud \-f delete_fwrule gce name=web
  62844. .ft P
  62845. .fi
  62846. .UNINDENT
  62847. .UNINDENT
  62848. .SS Show firewall
  62849. .sp
  62850. Use this function to review an existing firewall rule\(aqs information.
  62851. .INDENT 0.0
  62852. .INDENT 3.5
  62853. .sp
  62854. .nf
  62855. .ft C
  62856. salt\-cloud \-f show_fwrule gce name=web
  62857. .ft P
  62858. .fi
  62859. .UNINDENT
  62860. .UNINDENT
  62861. .SS Load Balancer
  62862. .sp
  62863. Compute Engine possess a load\-balancer feature for splitting traffic across
  62864. multiple instances. Please reference the
  62865. \fI\%documentation\fP
  62866. for a more complete description.
  62867. .sp
  62868. The load\-balancer functionality is slightly different than that described
  62869. in Google\(aqs documentation. The concept of \fITargetPool\fP and \fIForwardingRule\fP
  62870. are consolidated in salt\-cloud/libcloud. HTTP Health Checks are optional.
  62871. .SS HTTP Health Check
  62872. .sp
  62873. HTTP Health Checks can be used as a means to toggle load\-balancing across
  62874. instance members, or to detect if an HTTP site is functioning. A common
  62875. use\-case is to set up a health check URL and if you want to toggle traffic
  62876. on/off to an instance, you can temporarily have it return a non\-200 response.
  62877. A non\-200 response to the load\-balancer\(aqs health check will keep the LB from
  62878. sending any new traffic to the "down" instance. Once the instance\(aqs
  62879. health check URL beings returning 200\-responses, the LB will again start to
  62880. send traffic to it. Review Compute Engine\(aqs documentation for allowable
  62881. parameters. You can use the following salt\-cloud functions to manage your
  62882. HTTP health checks.
  62883. .INDENT 0.0
  62884. .INDENT 3.5
  62885. .sp
  62886. .nf
  62887. .ft C
  62888. salt\-cloud \-f create_hc gce name=myhc path=/ port=80
  62889. salt\-cloud \-f delete_hc gce name=myhc
  62890. salt\-cloud \-f show_hc gce name=myhc
  62891. .ft P
  62892. .fi
  62893. .UNINDENT
  62894. .UNINDENT
  62895. .SS Load\-balancer
  62896. .sp
  62897. When creating a new load\-balancer, it requires a name, region, port range,
  62898. and list of members. There are other optional parameters for protocol,
  62899. and list of health checks. Deleting or showing details about the LB only
  62900. requires the name.
  62901. .INDENT 0.0
  62902. .INDENT 3.5
  62903. .sp
  62904. .nf
  62905. .ft C
  62906. salt\-cloud \-f create_lb gce name=lb region=... ports=80 members=w1,w2,w3
  62907. salt\-cloud \-f delete_lb gce name=lb
  62908. salt\-cloud \-f show_lb gce name=lb
  62909. .ft P
  62910. .fi
  62911. .UNINDENT
  62912. .UNINDENT
  62913. .sp
  62914. You can also create a load balancer using a named fixed IP addressby specifying the name of the address.
  62915. If the address does not exist yet it will be created.
  62916. .INDENT 0.0
  62917. .INDENT 3.5
  62918. .sp
  62919. .nf
  62920. .ft C
  62921. salt\-cloud \-f create_lb gce name=my\-lb region=us\-central1 ports=234 members=s1,s2,s3 address=my\-lb\-ip
  62922. .ft P
  62923. .fi
  62924. .UNINDENT
  62925. .UNINDENT
  62926. .SS Attach and Detach LB
  62927. .sp
  62928. It is possible to attach or detach an instance from an existing load\-balancer.
  62929. Both the instance and load\-balancer must exist before using these functions.
  62930. .INDENT 0.0
  62931. .INDENT 3.5
  62932. .sp
  62933. .nf
  62934. .ft C
  62935. salt\-cloud \-f attach_lb gce name=lb member=w4
  62936. salt\-cloud \-f detach_lb gce name=lb member=oops
  62937. .ft P
  62938. .fi
  62939. .UNINDENT
  62940. .UNINDENT
  62941. .SS Getting Started With HP Cloud
  62942. .sp
  62943. HP Cloud is a major public cloud platform and uses the libcloud
  62944. \fIopenstack\fP driver. The current version of OpenStack that HP Cloud
  62945. uses is Havana. When an instance is booted, it must have a
  62946. floating IP added to it in order to connect to it and further below
  62947. you will see an example that adds context to this statement.
  62948. .SS Set up a cloud provider configuration file
  62949. .sp
  62950. To use the \fIopenstack\fP driver for HP Cloud, set up the cloud
  62951. provider configuration file as in the example shown below:
  62952. .sp
  62953. \fB/etc/salt/cloud.providers.d/hpcloud.conf\fP:
  62954. .INDENT 0.0
  62955. .INDENT 3.5
  62956. .sp
  62957. .nf
  62958. .ft C
  62959. hpcloud\-config:
  62960. # Set the location of the salt\-master
  62961. #
  62962. minion:
  62963. master: saltmaster.example.com
  62964. # Configure HP Cloud using the OpenStack plugin
  62965. #
  62966. identity_url: https://region\-b.geo\-1.identity.hpcloudsvc.com:35357/v2.0/tokens
  62967. compute_name: Compute
  62968. protocol: ipv4
  62969. # Set the compute region:
  62970. #
  62971. compute_region: region\-b.geo\-1
  62972. # Configure HP Cloud authentication credentials
  62973. #
  62974. user: myname
  62975. tenant: myname\-project1
  62976. password: xxxxxxxxx
  62977. # keys to allow connection to the instance launched
  62978. #
  62979. ssh_key_name: yourkey
  62980. ssh_key_file: /path/to/key/yourkey.priv
  62981. driver: openstack
  62982. .ft P
  62983. .fi
  62984. .UNINDENT
  62985. .UNINDENT
  62986. .sp
  62987. The subsequent example that follows is using the openstack driver.
  62988. .sp
  62989. \fBNOTE:\fP
  62990. .INDENT 0.0
  62991. .INDENT 3.5
  62992. Changed in version 2015.8.0.
  62993. .sp
  62994. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  62995. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  62996. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  62997. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  62998. to use \fBprovider\fP to refer to provider configurations that you define.
  62999. .UNINDENT
  63000. .UNINDENT
  63001. .SS Compute Region
  63002. .sp
  63003. Originally, HP Cloud, in its OpenStack Essex version (1.0), had 3
  63004. availability zones in one region, US West (region\-a.geo\-1), which
  63005. each behaved each as a region.
  63006. .sp
  63007. This has since changed, and the current OpenStack Havana version of
  63008. HP Cloud (1.1) now has simplified this and now has two regions to choose from:
  63009. .INDENT 0.0
  63010. .INDENT 3.5
  63011. .sp
  63012. .nf
  63013. .ft C
  63014. region\-a.geo\-1 \-> US West
  63015. region\-b.geo\-1 \-> US East
  63016. .ft P
  63017. .fi
  63018. .UNINDENT
  63019. .UNINDENT
  63020. .SS Authentication
  63021. .sp
  63022. The \fBuser\fP is the same user as is used to log into the HP Cloud management
  63023. UI. The \fBtenant\fP can be found in the upper left under "Project/Region/Scope".
  63024. It is often named the same as \fBuser\fP albeit with a \fB\-project1\fP appended.
  63025. The \fBpassword\fP is of course what you created your account with. The management
  63026. UI also has other information such as being able to select US East or US West.
  63027. .SS Set up a cloud profile config file
  63028. .sp
  63029. The profile shown below is a know working profile for an Ubuntu instance. The
  63030. profile configuration file is stored in the following location:
  63031. .sp
  63032. \fB/etc/salt/cloud.profiles.d/hp_ae1_ubuntu.conf\fP:
  63033. .INDENT 0.0
  63034. .INDENT 3.5
  63035. .sp
  63036. .nf
  63037. .ft C
  63038. hp_ae1_ubuntu:
  63039. provider: hp_ae1
  63040. image: 9302692b\-b787\-4b52\-a3a6\-daebb79cb498
  63041. ignore_cidr: 10.0.0.1/24
  63042. networks:
  63043. \- floating: Ext\-Net
  63044. size: standard.small
  63045. ssh_key_file: /root/keys/test.key
  63046. ssh_key_name: test
  63047. ssh_username: ubuntu
  63048. .ft P
  63049. .fi
  63050. .UNINDENT
  63051. .UNINDENT
  63052. .sp
  63053. Some important things about the example above:
  63054. .INDENT 0.0
  63055. .IP \(bu 2
  63056. 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):
  63057. .UNINDENT
  63058. .INDENT 0.0
  63059. .INDENT 3.5
  63060. .sp
  63061. .nf
  63062. .ft C
  63063. # salt\-cloud \-\-list\-images hp_ae1
  63064. .ft P
  63065. .fi
  63066. .UNINDENT
  63067. .UNINDENT
  63068. .INDENT 0.0
  63069. .IP \(bu 2
  63070. 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.
  63071. .IP \(bu 2
  63072. 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.
  63073. .IP \(bu 2
  63074. 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
  63075. .IP \(bu 2
  63076. 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
  63077. .UNINDENT
  63078. .SS Launch an instance
  63079. .sp
  63080. To instantiate a machine based on this profile (example):
  63081. .INDENT 0.0
  63082. .INDENT 3.5
  63083. .sp
  63084. .nf
  63085. .ft C
  63086. # salt\-cloud \-p hp_ae1_ubuntu ubuntu_instance_1
  63087. .ft P
  63088. .fi
  63089. .UNINDENT
  63090. .UNINDENT
  63091. .sp
  63092. After several minutes, this will create an instance named ubuntu_instance_1
  63093. running in HP Cloud in the US East region and will set up the minion and then
  63094. return information about the instance once completed.
  63095. .SS Manage the instance
  63096. .sp
  63097. Once the instance has been created with salt\-minion installed, connectivity to
  63098. it can be verified with Salt:
  63099. .INDENT 0.0
  63100. .INDENT 3.5
  63101. .sp
  63102. .nf
  63103. .ft C
  63104. # salt ubuntu_instance_1 ping
  63105. .ft P
  63106. .fi
  63107. .UNINDENT
  63108. .UNINDENT
  63109. .SS SSH to the instance
  63110. .sp
  63111. Additionally, the instance can be accessed via SSH using the floating IP assigned to it
  63112. .INDENT 0.0
  63113. .INDENT 3.5
  63114. .sp
  63115. .nf
  63116. .ft C
  63117. # ssh ubuntu@<floating ip>
  63118. .ft P
  63119. .fi
  63120. .UNINDENT
  63121. .UNINDENT
  63122. .SS Using a private IP
  63123. .sp
  63124. 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)
  63125. .sp
  63126. The example below is a modified version of the previous example. Note the use of \fBssh_interface\fP:
  63127. .INDENT 0.0
  63128. .INDENT 3.5
  63129. .sp
  63130. .nf
  63131. .ft C
  63132. hp_ae1_ubuntu:
  63133. provider: hp_ae1
  63134. image: 9302692b\-b787\-4b52\-a3a6\-daebb79cb498
  63135. size: standard.small
  63136. ssh_key_file: /root/keys/test.key
  63137. ssh_key_name: test
  63138. ssh_username: ubuntu
  63139. ssh_interface: private_ips
  63140. .ft P
  63141. .fi
  63142. .UNINDENT
  63143. .UNINDENT
  63144. .sp
  63145. With this setup, salt\-cloud will use the private IP address to ssh into the instance and set up the salt\-minion
  63146. .SS Getting Started With Joyent
  63147. .sp
  63148. Joyent is a public cloud host that supports SmartOS, Linux, FreeBSD, and
  63149. Windows.
  63150. .SS Dependencies
  63151. .sp
  63152. This driver requires the Python \fBrequests\fP library to be installed.
  63153. .SS Configuration
  63154. .sp
  63155. The Joyent cloud requires three configuration parameters. The user name and
  63156. password that are used to log into the Joyent system, and the location of the
  63157. private ssh key associated with the Joyent account. The ssh key is needed to
  63158. send the provisioning commands up to the freshly created virtual machine.
  63159. .INDENT 0.0
  63160. .INDENT 3.5
  63161. .sp
  63162. .nf
  63163. .ft C
  63164. # Note: This example is for /etc/salt/cloud.providers or any file in the
  63165. # /etc/salt/cloud.providers.d/ directory.
  63166. my\-joyent\-config:
  63167. driver: joyent
  63168. user: fred
  63169. password: saltybacon
  63170. private_key: /root/mykey.pem
  63171. keyname: mykey
  63172. .ft P
  63173. .fi
  63174. .UNINDENT
  63175. .UNINDENT
  63176. .sp
  63177. \fBNOTE:\fP
  63178. .INDENT 0.0
  63179. .INDENT 3.5
  63180. Changed in version 2015.8.0.
  63181. .sp
  63182. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63183. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63184. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63185. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63186. to use \fBprovider\fP to refer to provider configurations that you define.
  63187. .UNINDENT
  63188. .UNINDENT
  63189. .SS Profiles
  63190. .SS Cloud Profiles
  63191. .sp
  63192. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  63193. \fB/etc/salt/cloud.profiles.d/\fP directory:
  63194. .INDENT 0.0
  63195. .INDENT 3.5
  63196. .sp
  63197. .nf
  63198. .ft C
  63199. joyent_512:
  63200. provider: my\-joyent\-config
  63201. size: g4\-highcpu\-512M
  63202. image: ubuntu\-16.04
  63203. .ft P
  63204. .fi
  63205. .UNINDENT
  63206. .UNINDENT
  63207. .sp
  63208. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  63209. command:
  63210. .INDENT 0.0
  63211. .INDENT 3.5
  63212. .sp
  63213. .nf
  63214. .ft C
  63215. # salt\-cloud \-\-list\-sizes my\-joyent\-config
  63216. my\-joyent\-config:
  63217. \-\-\-\-\-\-\-\-\-\-
  63218. joyent:
  63219. \-\-\-\-\-\-\-\-\-\-
  63220. g4\-highcpu\-512M:
  63221. \-\-\-\-\-\-\-\-\-\-
  63222. default:
  63223. False
  63224. description:
  63225. Compute Optimized 512M RAM \- 1 vCPU \- 10 GB Disk
  63226. disk:
  63227. 10240
  63228. group:
  63229. Compute Optimized
  63230. id:
  63231. 14aea8fc\-d0f8\-11e5\-bfe4\-a7458dbc6c99
  63232. lwps:
  63233. 4000
  63234. memory:
  63235. 512
  63236. name:
  63237. g4\-highcpu\-512M
  63238. swap:
  63239. 2048
  63240. vcpus:
  63241. 0
  63242. version:
  63243. 1.0.3
  63244. \&...SNIP...
  63245. .ft P
  63246. .fi
  63247. .UNINDENT
  63248. .UNINDENT
  63249. .sp
  63250. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  63251. command:
  63252. .INDENT 0.0
  63253. .INDENT 3.5
  63254. .sp
  63255. .nf
  63256. .ft C
  63257. # salt\-cloud \-\-list\-images my\-joyent\-config
  63258. my\-joyent\-config:
  63259. \-\-\-\-\-\-\-\-\-\-
  63260. joyent:
  63261. \-\-\-\-\-\-\-\-\-\-
  63262. base:
  63263. \-\-\-\-\-\-\-\-\-\-
  63264. description:
  63265. A 32\-bit SmartOS image with just essential packages
  63266. installed. Ideal for users who are comfortabl e with
  63267. setting up their own environment and tools.
  63268. files:
  63269. |_
  63270. \-\-\-\-\-\-\-\-\-\-
  63271. compression:
  63272. gzip
  63273. sha1:
  63274. b00a77408ddd9aeac85085b68b1cd22a07353956
  63275. size:
  63276. 106918297
  63277. homepage:
  63278. http://wiki.joyent.com/jpc2/Base+Instance
  63279. id:
  63280. 00aec452\-6e81\-11e4\-8474\-ebfec9a1a911
  63281. name:
  63282. base
  63283. os:
  63284. smartos
  63285. owner:
  63286. 9dce1460\-0c4c\-4417\-ab8b\-25ca478c5a78
  63287. public:
  63288. True
  63289. published_at:
  63290. 2014\-11\-17T17:41:46Z
  63291. requirements:
  63292. \-\-\-\-\-\-\-\-\-\-
  63293. state:
  63294. active
  63295. type:
  63296. smartmachine
  63297. version:
  63298. 14.3.0
  63299. \&...SNIP...
  63300. .ft P
  63301. .fi
  63302. .UNINDENT
  63303. .UNINDENT
  63304. .SS SmartDataCenter
  63305. .sp
  63306. This driver can also be used with the Joyent SmartDataCenter project. More
  63307. details can be found at:
  63308. .sp
  63309. Using SDC requires that an api_host_suffix is set. The default value for this is
  63310. \fI\&.api.joyentcloud.com\fP\&. All characters, including the leading \fI\&.\fP, should be
  63311. included:
  63312. .INDENT 0.0
  63313. .INDENT 3.5
  63314. .sp
  63315. .nf
  63316. .ft C
  63317. api_host_suffix: .api.myhostname.com
  63318. .ft P
  63319. .fi
  63320. .UNINDENT
  63321. .UNINDENT
  63322. .SS Miscellaneous Configuration
  63323. .sp
  63324. The following configuration items can be set in either \fBprovider\fP or
  63325. \fBprofile\fP configuration files.
  63326. .SS use_ssl
  63327. .sp
  63328. When set to \fBTrue\fP (the default), attach \fBhttps://\fP to any URL that does not
  63329. already have \fBhttp://\fP or \fBhttps://\fP included at the beginning. The best
  63330. practice is to leave the protocol out of the URL, and use this setting to manage
  63331. it.
  63332. .SS verify_ssl
  63333. .sp
  63334. When set to \fBTrue\fP (the default), the underlying web library will verify the
  63335. SSL certificate. This should only be set to \fBFalse\fP for debugging.\(ga
  63336. .SS Getting Started With Libvirt
  63337. .sp
  63338. Libvirt is a toolkit to interact with the virtualization capabilities of recent versions
  63339. of Linux (and other OSes). This driver Salt cloud provider is currently geared towards
  63340. libvirt with qemu\-kvm.
  63341. .sp
  63342. \fI\%https://libvirt.org/\fP
  63343. .SS Host Dependencies
  63344. .INDENT 0.0
  63345. .IP \(bu 2
  63346. libvirt >= 1.2.18 (older might work)
  63347. .UNINDENT
  63348. .SS Salt\-Cloud Dependencies
  63349. .INDENT 0.0
  63350. .IP \(bu 2
  63351. libvirt\-python
  63352. .UNINDENT
  63353. .SS Provider Configuration
  63354. .sp
  63355. For every KVM host a provider needs to be set up. The provider currently maps to one libvirt daemon (e.g. one KVM host).
  63356. .sp
  63357. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  63358. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  63359. .INDENT 0.0
  63360. .INDENT 3.5
  63361. .sp
  63362. .nf
  63363. .ft C
  63364. # Set up a provider with qemu+ssh protocol
  63365. kvm\-via\-ssh:
  63366. driver: libvirt
  63367. url: qemu+ssh://user@kvm.company.com/system?socket=/var/run/libvirt/libvirt\-sock
  63368. # Or connect to a local libvirt instance
  63369. local\-kvm:
  63370. driver: libvirt
  63371. url: qemu:///system
  63372. # work around flag for XML validation errors while cloning
  63373. validate_xml: no
  63374. .ft P
  63375. .fi
  63376. .UNINDENT
  63377. .UNINDENT
  63378. .SS Cloud Profiles
  63379. .sp
  63380. Virtual machines get cloned from so called Cloud Profiles. Profiles can be set up at \fB/etc/salt/cloud.profiles\fP or
  63381. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  63382. .INDENT 0.0
  63383. .IP \(bu 2
  63384. Configure a profile to be used:
  63385. .UNINDENT
  63386. .INDENT 0.0
  63387. .INDENT 3.5
  63388. .sp
  63389. .nf
  63390. .ft C
  63391. centos7:
  63392. # points back at provider configuration
  63393. provider: local\-kvm
  63394. base_domain: base\-centos7\-64
  63395. ip_source: ip\-learning
  63396. ssh_username: root
  63397. password: my\-very\-secret\-password
  63398. # /tmp is mounted noexec.. do workaround
  63399. deploy_command: sh /tmp/.saltcloud/deploy.sh
  63400. script_args: \-F
  63401. # grains to add to the minion
  63402. grains:
  63403. clones\-are\-awesome: true
  63404. # override minion settings
  63405. minion:
  63406. master: 192.168.16.1
  63407. master_port: 5506
  63408. .ft P
  63409. .fi
  63410. .UNINDENT
  63411. .UNINDENT
  63412. .sp
  63413. The profile can be realized now with a salt command:
  63414. .INDENT 0.0
  63415. .INDENT 3.5
  63416. .sp
  63417. .nf
  63418. .ft C
  63419. salt\-cloud \-p centos7 my\-centos7\-clone
  63420. .ft P
  63421. .fi
  63422. .UNINDENT
  63423. .UNINDENT
  63424. .sp
  63425. This will create an instance named \fBmy\-centos7\-clone\fP on the cloud host. Also
  63426. the minion id will be set to \fBmy\-centos7\-clone\fP\&.
  63427. .sp
  63428. If the command was executed on the salt\-master, its Salt key will automatically
  63429. be accepted on the master.
  63430. .sp
  63431. Once the instance has been created with salt\-minion installed, connectivity to
  63432. it can be verified with Salt:
  63433. .INDENT 0.0
  63434. .INDENT 3.5
  63435. .sp
  63436. .nf
  63437. .ft C
  63438. salt my\-centos7\-clone test.version
  63439. .ft P
  63440. .fi
  63441. .UNINDENT
  63442. .UNINDENT
  63443. .SS Required Settings
  63444. .sp
  63445. The following settings are always required for libvirt:
  63446. .INDENT 0.0
  63447. .INDENT 3.5
  63448. .sp
  63449. .nf
  63450. .ft C
  63451. centos7:
  63452. provider: local\-kvm
  63453. # the domain to clone
  63454. base_domain: base\-centos7\-64
  63455. .ft P
  63456. .fi
  63457. .UNINDENT
  63458. .UNINDENT
  63459. .SS SSH Key Authentication
  63460. .sp
  63461. Instead of specifying a password, an authorized key can be used for the minion setup. Ensure that
  63462. the ssh user of your base image has the public key you want to use in ~/.ssh/authorized_keys. If
  63463. you want to use a non\-root user you will likely want to configure salt\-cloud to use sudo.
  63464. .sp
  63465. An example using root:
  63466. .INDENT 0.0
  63467. .INDENT 3.5
  63468. .sp
  63469. .nf
  63470. .ft C
  63471. centos7:
  63472. provider: local\-kvm
  63473. # the domain to clone
  63474. base_domain: base\-centos7\-64
  63475. ssh_username: root
  63476. private_key: /path/to/private/key
  63477. .ft P
  63478. .fi
  63479. .UNINDENT
  63480. .UNINDENT
  63481. .sp
  63482. An example using a non\-root user:
  63483. .INDENT 0.0
  63484. .INDENT 3.5
  63485. .sp
  63486. .nf
  63487. .ft C
  63488. centos7:
  63489. provider: local\-kvm
  63490. # the domain to clone
  63491. base_domain: base\-centos7\-64
  63492. ssh_username: centos
  63493. private_key: /path/to/private/key
  63494. sudo: True
  63495. sudo_password: "\-\-redacted\-\-"
  63496. .ft P
  63497. .fi
  63498. .UNINDENT
  63499. .UNINDENT
  63500. .SS Optional Settings
  63501. .INDENT 0.0
  63502. .INDENT 3.5
  63503. .sp
  63504. .nf
  63505. .ft C
  63506. centos7:
  63507. # ssh settings
  63508. # use forwarded agent instead of a local key
  63509. ssh_agent: True
  63510. ssh_port: 4910
  63511. # credentials
  63512. ssh_username: root
  63513. # password will be used for sudo if defined, use sudo_password if using ssh keys
  63514. password: my\-secret\-password
  63515. private_key: /path/to/private/key
  63516. sudo: True
  63517. sudo_password: "\-\-redacted\-\-"
  63518. # bootstrap options
  63519. deploy_command: sh /tmp/.saltcloud/deploy.sh
  63520. script_args: \-F
  63521. # minion config
  63522. grains:
  63523. sushi: more tasty
  63524. # point at the another master at another port
  63525. minion:
  63526. master: 192.168.16.1
  63527. master_port: 5506
  63528. # libvirt settings
  63529. # clone_strategy: [ quick | full ] # default is full
  63530. clone_strategy: quick
  63531. # ip_source: [ ip\-learning | qemu\-agent ] # default is ip\-learning
  63532. ip_source: qemu\-agent
  63533. # validate_xml: [ false | true ] # default is true
  63534. validate_xml: false
  63535. .ft P
  63536. .fi
  63537. .UNINDENT
  63538. .UNINDENT
  63539. .sp
  63540. The \fBclone_strategy\fP controls how the clone is done. In case of \fBfull\fP the disks
  63541. are copied creating a standalone clone. If \fBquick\fP is used the disks of the base domain
  63542. are used as backing disks for the clone. This results in nearly instantaneous clones at
  63543. the expense of slower write performance. The quick strategy has a number of requirements:
  63544. .INDENT 0.0
  63545. .IP \(bu 2
  63546. The disks must be of type qcow2
  63547. .IP \(bu 2
  63548. The base domain must be turned off
  63549. .IP \(bu 2
  63550. The base domain must not change after creating the clone
  63551. .UNINDENT
  63552. .sp
  63553. The \fBip_source\fP setting controls how the IP address of the cloned instance is determined.
  63554. When using \fBip\-learning\fP the IP is requested from libvirt. This needs a recent libvirt
  63555. version and may only work for NAT/routed networks where libvirt runs the dhcp server.
  63556. Another option is to use \fBqemu\-agent\fP this requires that the qemu\-agent is installed and
  63557. configured to run at startup in the base domain.
  63558. .sp
  63559. The \fBvalidate_xml\fP setting is available to disable xml validation by libvirt when cloning.
  63560. .sp
  63561. See also \fBsalt.cloud.clouds.libvirt\fP
  63562. .SS Getting Started With Linode
  63563. .sp
  63564. Linode is a public cloud host with a focus on Linux instances.
  63565. .sp
  63566. Starting with the 2015.8.0 release of Salt, the Linode driver uses Linode\(aqs
  63567. native REST API. There are no external dependencies required to use the
  63568. Linode driver, other than a Linode account.
  63569. .SS Provider Configuration
  63570. .sp
  63571. Linode requires a single API key, but the default root password for new
  63572. instances also needs to be set. The password needs to be eight characters
  63573. and contain lowercase, uppercase, and numbers.
  63574. .sp
  63575. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  63576. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  63577. .INDENT 0.0
  63578. .INDENT 3.5
  63579. .sp
  63580. .nf
  63581. .ft C
  63582. my\-linode\-config:
  63583. apikey: \(aqasldkgfakl;sdfjsjaslfjaklsdjf;askldjfaaklsjdfhasldsadfghdkf\(aq
  63584. password: \(aqF00barbaz\(aq
  63585. driver: linode
  63586. .ft P
  63587. .fi
  63588. .UNINDENT
  63589. .UNINDENT
  63590. .sp
  63591. \fBNOTE:\fP
  63592. .INDENT 0.0
  63593. .INDENT 3.5
  63594. Changed in version 2015.8.0.
  63595. .sp
  63596. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63597. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63598. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63599. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63600. to use \fBprovider\fP to refer to provider configurations that you define.
  63601. .UNINDENT
  63602. .UNINDENT
  63603. .SS Profile Configuration
  63604. .sp
  63605. Linode profiles require a \fBprovider\fP, \fBsize\fP, \fBimage\fP, and \fBlocation\fP\&. Set up an initial profile
  63606. at \fB/etc/salt/cloud.profiles\fP or \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  63607. .INDENT 0.0
  63608. .INDENT 3.5
  63609. .sp
  63610. .nf
  63611. .ft C
  63612. linode_1024:
  63613. provider: my\-linode\-config
  63614. size: Linode 2GB
  63615. image: CentOS 7
  63616. location: London, England, UK
  63617. .ft P
  63618. .fi
  63619. .UNINDENT
  63620. .UNINDENT
  63621. .sp
  63622. The profile can be realized now with a salt command:
  63623. .INDENT 0.0
  63624. .INDENT 3.5
  63625. .sp
  63626. .nf
  63627. .ft C
  63628. salt\-cloud \-p linode_1024 linode\-instance
  63629. .ft P
  63630. .fi
  63631. .UNINDENT
  63632. .UNINDENT
  63633. .sp
  63634. This will create an salt minion instance named \fBlinode\-instance\fP in Linode. If the command was
  63635. executed on the salt\-master, its Salt key will automatically be signed on the master.
  63636. .sp
  63637. Once the instance has been created with a salt\-minion installed, connectivity to
  63638. it can be verified with Salt:
  63639. .INDENT 0.0
  63640. .INDENT 3.5
  63641. .sp
  63642. .nf
  63643. .ft C
  63644. salt linode\-instance test.version
  63645. .ft P
  63646. .fi
  63647. .UNINDENT
  63648. .UNINDENT
  63649. .SS Listing Sizes
  63650. .sp
  63651. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  63652. command:
  63653. .INDENT 0.0
  63654. .INDENT 3.5
  63655. .sp
  63656. .nf
  63657. .ft C
  63658. # salt\-cloud \-\-list\-sizes my\-linode\-config
  63659. my\-linode\-config:
  63660. \-\-\-\-\-\-\-\-\-\-
  63661. linode:
  63662. \-\-\-\-\-\-\-\-\-\-
  63663. Linode 2GB:
  63664. \-\-\-\-\-\-\-\-\-\-
  63665. AVAIL:
  63666. \-\-\-\-\-\-\-\-\-\-
  63667. 10:
  63668. 500
  63669. 11:
  63670. 500
  63671. 2:
  63672. 500
  63673. 3:
  63674. 500
  63675. 4:
  63676. 500
  63677. 6:
  63678. 500
  63679. 7:
  63680. 500
  63681. 8:
  63682. 500
  63683. 9:
  63684. 500
  63685. CORES:
  63686. 1
  63687. DISK:
  63688. 50
  63689. HOURLY:
  63690. 0.015
  63691. LABEL:
  63692. Linode 2GB
  63693. PLANID:
  63694. 2
  63695. PRICE:
  63696. 10.0
  63697. RAM:
  63698. 2048
  63699. XFER:
  63700. 2000
  63701. \&...SNIP...
  63702. .ft P
  63703. .fi
  63704. .UNINDENT
  63705. .UNINDENT
  63706. .SS Listing Images
  63707. .sp
  63708. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  63709. command:
  63710. .INDENT 0.0
  63711. .INDENT 3.5
  63712. .sp
  63713. .nf
  63714. .ft C
  63715. # salt\-cloud \-\-list\-images my\-linode\-config
  63716. my\-linode\-config:
  63717. \-\-\-\-\-\-\-\-\-\-
  63718. linode:
  63719. \-\-\-\-\-\-\-\-\-\-
  63720. Arch Linux 2015.02:
  63721. \-\-\-\-\-\-\-\-\-\-
  63722. CREATE_DT:
  63723. 2015\-02\-20 14:17:16.0
  63724. DISTRIBUTIONID:
  63725. 138
  63726. IS64BIT:
  63727. 1
  63728. LABEL:
  63729. Arch Linux 2015.02
  63730. MINIMAGESIZE:
  63731. 800
  63732. REQUIRESPVOPSKERNEL:
  63733. 1
  63734. \&...SNIP...
  63735. .ft P
  63736. .fi
  63737. .UNINDENT
  63738. .UNINDENT
  63739. .SS Listing Locations
  63740. .sp
  63741. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  63742. command:
  63743. .INDENT 0.0
  63744. .INDENT 3.5
  63745. .sp
  63746. .nf
  63747. .ft C
  63748. # salt\-cloud \-\-list\-locations my\-linode\-config
  63749. my\-linode\-config:
  63750. \-\-\-\-\-\-\-\-\-\-
  63751. linode:
  63752. \-\-\-\-\-\-\-\-\-\-
  63753. Atlanta, GA, USA:
  63754. \-\-\-\-\-\-\-\-\-\-
  63755. ABBR:
  63756. atlanta
  63757. DATACENTERID:
  63758. 4
  63759. LOCATION:
  63760. Atlanta, GA, USA
  63761. \&...SNIP...
  63762. .ft P
  63763. .fi
  63764. .UNINDENT
  63765. .UNINDENT
  63766. .SS Linode Specific Settings
  63767. .sp
  63768. There are several options outlined below that can be added to either the Linode
  63769. provider of profile configuration files. Some options are mandatory and are
  63770. properly labeled below but typically also include a hard\-coded default.
  63771. .SS image
  63772. .sp
  63773. Image is used to define what Operating System image should be used for the
  63774. instance. Examples are \fBUbuntu 14.04 LTS\fP and \fBCentOS 7\fP\&. This option should
  63775. be specified in the profile config. Required.
  63776. .SS location
  63777. .sp
  63778. Location is used to define which Linode data center the instance will reside in.
  63779. Required.
  63780. .SS size
  63781. .sp
  63782. Size is used to define the instance\(aqs "plan type" which includes memory, storage,
  63783. and price. Required.
  63784. .SS assign_private_ip
  63785. .sp
  63786. New in version 2016.3.0.
  63787. .sp
  63788. Assigns a private IP address to a Linode when set to True. Default is False.
  63789. .SS ssh_interface
  63790. .sp
  63791. New in version 2016.3.0.
  63792. .sp
  63793. Specify whether to use a public or private IP for the deploy script. Valid options
  63794. are:
  63795. .INDENT 0.0
  63796. .IP \(bu 2
  63797. public_ips: The salt\-master is hosted outside of Linode. Default.
  63798. .IP \(bu 2
  63799. private_ips: The salt\-master is also hosted within Linode.
  63800. .UNINDENT
  63801. .sp
  63802. If specifying \fBprivate_ips\fP, the Linodes must be hosted within the same data
  63803. center and have the Network Helper enabled on your entire account. The instance
  63804. that is running the Salt\-Cloud provisioning command must also have a private IP
  63805. assigned to it.
  63806. .sp
  63807. Newer accounts created on Linode have the Network Helper setting enabled by default,
  63808. account\-wide. Legacy accounts do not have this setting enabled by default. To enable
  63809. the Network Helper on your Linode account, please see \fI\%Linode\(aqs Network Helper\fP
  63810. documentation.
  63811. .sp
  63812. If you\(aqre running into problems, be sure to restart the instance that is running
  63813. Salt Cloud after adding its own private IP address or enabling the Network
  63814. Helper.
  63815. .SS clonefrom
  63816. .sp
  63817. Setting the clonefrom option to a specified instance enables the new instance to be
  63818. cloned from the named instance instead of being created from scratch. If using the
  63819. clonefrom option, it is likely a good idea to also specify \fBscript_args: \-C\fP if a
  63820. minion is already installed on the to\-be\-cloned instance. See the \fI\%Cloning\fP section
  63821. below for more information.
  63822. .SS Cloning
  63823. .sp
  63824. To clone a Linode, add a profile with a \fBclonefrom\fP key, and a \fBscript_args: \-C\fP\&.
  63825. \fBclonefrom\fP should be the name of the Linode that is the source for the clone.
  63826. \fBscript_args: \-C\fP passes a \-C to the salt\-bootstrap script, which only configures
  63827. the minion and doesn\(aqt try to install a new copy of salt\-minion. This way the minion
  63828. gets new keys and the keys get pre\-seeded on the master, and the \fB/etc/salt/minion\fP
  63829. file has the right minion \(aqid:\(aq declaration.
  63830. .sp
  63831. Cloning requires a post 2015\-02\-01 salt\-bootstrap.
  63832. .sp
  63833. It is safest to clone a stopped machine. To stop a machine run
  63834. .INDENT 0.0
  63835. .INDENT 3.5
  63836. .sp
  63837. .nf
  63838. .ft C
  63839. salt\-cloud \-a stop machine_to_clone
  63840. .ft P
  63841. .fi
  63842. .UNINDENT
  63843. .UNINDENT
  63844. .sp
  63845. To create a new machine based on another machine, add an entry to your linode
  63846. cloud profile that looks like this:
  63847. .INDENT 0.0
  63848. .INDENT 3.5
  63849. .sp
  63850. .nf
  63851. .ft C
  63852. li\-clone:
  63853. provider: my\-linode\-config
  63854. clonefrom: machine_to_clone
  63855. script_args: \-C \-F
  63856. .ft P
  63857. .fi
  63858. .UNINDENT
  63859. .UNINDENT
  63860. .sp
  63861. Then run salt\-cloud as normal, specifying \fB\-p li\-clone\fP\&. The profile name can
  63862. be anything; It doesn\(aqt have to be \fBli\-clone\fP\&.
  63863. .sp
  63864. \fBclonefrom:\fP is the name of an existing machine in Linode from which to clone.
  63865. \fBScript_args: \-C \-F\fP is necessary to avoid re\-deploying Salt via salt\-bootstrap.
  63866. \fB\-C\fP will just re\-deploy keys so the new minion will not have a duplicate key
  63867. or minion_id on the Master, and \fB\-F\fP will force a rewrite of the Minion config
  63868. file on the new Minion. If \fB\-F\fP isn\(aqt provided, the new Minion will have the
  63869. \fBmachine_to_clone\fP\(aqs Minion ID, instead of its own Minion ID, which can cause
  63870. problems.
  63871. .sp
  63872. \fBNOTE:\fP
  63873. .INDENT 0.0
  63874. .INDENT 3.5
  63875. \fI\%Pull Request #733\fP to the salt\-bootstrap repo makes the \fB\-F\fP argument
  63876. non\-necessary. Once that change is released into a stable version of the
  63877. Bootstrap Script, the \fB\-C\fP argument will be sufficient for the \fBscript_args\fP
  63878. setting.
  63879. .UNINDENT
  63880. .UNINDENT
  63881. .sp
  63882. If the \fBmachine_to_clone\fP does not have Salt installed on it, refrain from using
  63883. the \fBscript_args: \-C \-F\fP altogether, because the new machine will need to have
  63884. Salt installed.
  63885. .SS Getting Started With LXC
  63886. .sp
  63887. The LXC module is designed to install Salt in an LXC container on a controlled
  63888. and possibly remote minion.
  63889. .sp
  63890. In other words, Salt will connect to a minion, then from that minion:
  63891. .INDENT 0.0
  63892. .IP \(bu 2
  63893. Provision and configure a container for networking access
  63894. .IP \(bu 2
  63895. Use those modules to deploy salt and re\-attach to master.
  63896. .INDENT 2.0
  63897. .INDENT 3.5
  63898. .INDENT 0.0
  63899. .IP \(bu 2
  63900. \fBlxc runner\fP
  63901. .IP \(bu 2
  63902. \fBlxc module\fP
  63903. .IP \(bu 2
  63904. \fBseed\fP
  63905. .UNINDENT
  63906. .UNINDENT
  63907. .UNINDENT
  63908. .UNINDENT
  63909. .SS Limitations
  63910. .INDENT 0.0
  63911. .IP \(bu 2
  63912. You can only act on one minion and one provider at a time.
  63913. .IP \(bu 2
  63914. Listing images must be targeted to a particular LXC provider (nothing will be
  63915. outputted with \fBall\fP)
  63916. .UNINDENT
  63917. .SS Operation
  63918. .sp
  63919. Salt\(aqs LXC support does use \fBlxc.init\fP
  63920. via the \fBlxc.cloud_init_interface\fP
  63921. and seeds the minion via \fBseed.mkconfig\fP\&.
  63922. .sp
  63923. You can provide to those lxc VMs a profile and a network profile like if
  63924. you were directly using the minion module.
  63925. .sp
  63926. Order of operation:
  63927. .INDENT 0.0
  63928. .IP \(bu 2
  63929. Create the LXC container on the desired minion (clone or template)
  63930. .IP \(bu 2
  63931. Change LXC config options (if any need to be changed)
  63932. .IP \(bu 2
  63933. Start container
  63934. .IP \(bu 2
  63935. Change base passwords if any
  63936. .IP \(bu 2
  63937. Change base DNS configuration if necessary
  63938. .IP \(bu 2
  63939. Wait for LXC container to be up and ready for ssh
  63940. .IP \(bu 2
  63941. Test SSH connection and bailout in error
  63942. .IP \(bu 2
  63943. Upload deploy script and seeds, then re\-attach the minion.
  63944. .UNINDENT
  63945. .SS Provider configuration
  63946. .sp
  63947. Here is a simple provider configuration:
  63948. .INDENT 0.0
  63949. .INDENT 3.5
  63950. .sp
  63951. .nf
  63952. .ft C
  63953. # Note: This example goes in /etc/salt/cloud.providers or any file in the
  63954. # /etc/salt/cloud.providers.d/ directory.
  63955. devhost10\-lxc:
  63956. target: devhost10
  63957. driver: lxc
  63958. .ft P
  63959. .fi
  63960. .UNINDENT
  63961. .UNINDENT
  63962. .sp
  63963. \fBNOTE:\fP
  63964. .INDENT 0.0
  63965. .INDENT 3.5
  63966. Changed in version 2015.8.0.
  63967. .sp
  63968. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63969. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63970. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63971. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63972. to use \fBprovider\fP to refer to provider configurations that you define.
  63973. .UNINDENT
  63974. .UNINDENT
  63975. .SS Profile configuration
  63976. .sp
  63977. Please read tutorial\-lxc before anything else.
  63978. And specially tutorial\-lxc\-profiles\&.
  63979. .sp
  63980. Here are the options to configure your containers:
  63981. .INDENT 0.0
  63982. .INDENT 3.5
  63983. .INDENT 0.0
  63984. .TP
  63985. .B target
  63986. Host minion id to install the lxc Container into
  63987. .TP
  63988. .B lxc_profile
  63989. Name of the profile or inline options for the LXC vm creation/cloning,
  63990. please see tutorial\-lxc\-profiles\-container\&.
  63991. .TP
  63992. .B network_profile
  63993. Name of the profile or inline options for the LXC vm network settings,
  63994. please see tutorial\-lxc\-profiles\-network\&.
  63995. .TP
  63996. .B nic_opts
  63997. Totally optional.
  63998. Per interface new\-style configuration options mappings which will
  63999. override any profile default option:
  64000. .INDENT 7.0
  64001. .INDENT 3.5
  64002. .sp
  64003. .nf
  64004. .ft C
  64005. eth0: {\(aqmac\(aq: \(aq00:16:3e:01:29:40\(aq,
  64006. \(aqgateway\(aq: None, (default)
  64007. \(aqlink\(aq: \(aqbr0\(aq, (default)
  64008. \(aqgateway\(aq: None, (default)
  64009. \(aqnetmask\(aq: \(aq\(aq, (default)
  64010. \(aqip\(aq: \(aq22.1.4.25\(aq}}
  64011. .ft P
  64012. .fi
  64013. .UNINDENT
  64014. .UNINDENT
  64015. .TP
  64016. .B password
  64017. password for root and sysadmin users
  64018. .TP
  64019. .B dnsservers
  64020. List of DNS servers to use. This is optional.
  64021. .TP
  64022. .B minion
  64023. minion configuration (see Minion Configuration in Salt Cloud)
  64024. .TP
  64025. .B bootstrap_delay
  64026. specify the time to wait (in seconds) between container creation
  64027. and salt bootstrap execution. It is useful to ensure that all essential services
  64028. have started before the bootstrap script is executed. By default there\(aqs no
  64029. wait time between container creation and bootstrap unless you are on systemd
  64030. where we wait that the system is no more in starting state.
  64031. .TP
  64032. .B bootstrap_shell
  64033. shell for bootstraping script (default: /bin/sh)
  64034. .TP
  64035. .B script
  64036. defaults to salt\-boostrap
  64037. .TP
  64038. .B script_args
  64039. arguments which are given to the bootstrap script.
  64040. the {0} placeholder will be replaced by the path which contains the
  64041. minion config and key files, eg:
  64042. .INDENT 7.0
  64043. .INDENT 3.5
  64044. .sp
  64045. .nf
  64046. .ft C
  64047. script_args="\-c {0}"
  64048. .ft P
  64049. .fi
  64050. .UNINDENT
  64051. .UNINDENT
  64052. .UNINDENT
  64053. .UNINDENT
  64054. .UNINDENT
  64055. .sp
  64056. Using profiles:
  64057. .INDENT 0.0
  64058. .INDENT 3.5
  64059. .sp
  64060. .nf
  64061. .ft C
  64062. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  64063. # /etc/salt/cloud.profiles.d/ directory.
  64064. devhost10\-lxc:
  64065. provider: devhost10\-lxc
  64066. lxc_profile: foo
  64067. network_profile: bar
  64068. minion:
  64069. master: 10.5.0.1
  64070. master_port: 4506
  64071. .ft P
  64072. .fi
  64073. .UNINDENT
  64074. .UNINDENT
  64075. .sp
  64076. Using inline profiles (eg to override the network bridge):
  64077. .INDENT 0.0
  64078. .INDENT 3.5
  64079. .sp
  64080. .nf
  64081. .ft C
  64082. devhost11\-lxc:
  64083. provider: devhost10\-lxc
  64084. lxc_profile:
  64085. clone_from: foo
  64086. network_profile:
  64087. etho:
  64088. link: lxcbr0
  64089. minion:
  64090. master: 10.5.0.1
  64091. master_port: 4506
  64092. .ft P
  64093. .fi
  64094. .UNINDENT
  64095. .UNINDENT
  64096. .sp
  64097. Using a lxc template instead of a clone:
  64098. .INDENT 0.0
  64099. .INDENT 3.5
  64100. .sp
  64101. .nf
  64102. .ft C
  64103. devhost11\-lxc:
  64104. provider: devhost10\-lxc
  64105. lxc_profile:
  64106. template: ubuntu
  64107. # options:
  64108. # release: trusty
  64109. network_profile:
  64110. etho:
  64111. link: lxcbr0
  64112. minion:
  64113. master: 10.5.0.1
  64114. master_port: 4506
  64115. .ft P
  64116. .fi
  64117. .UNINDENT
  64118. .UNINDENT
  64119. .sp
  64120. Static ip:
  64121. .INDENT 0.0
  64122. .INDENT 3.5
  64123. .sp
  64124. .nf
  64125. .ft C
  64126. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  64127. # /etc/salt/cloud.profiles.d/ directory.
  64128. devhost10\-lxc:
  64129. provider: devhost10\-lxc
  64130. nic_opts:
  64131. eth0:
  64132. ipv4: 10.0.3.9
  64133. minion:
  64134. master: 10.5.0.1
  64135. master_port: 4506
  64136. .ft P
  64137. .fi
  64138. .UNINDENT
  64139. .UNINDENT
  64140. .sp
  64141. DHCP:
  64142. .INDENT 0.0
  64143. .INDENT 3.5
  64144. .sp
  64145. .nf
  64146. .ft C
  64147. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  64148. # /etc/salt/cloud.profiles.d/ directory.
  64149. devhost10\-lxc:
  64150. provider: devhost10\-lxc
  64151. minion:
  64152. master: 10.5.0.1
  64153. master_port: 4506
  64154. .ft P
  64155. .fi
  64156. .UNINDENT
  64157. .UNINDENT
  64158. .SS Driver Support
  64159. .INDENT 0.0
  64160. .IP \(bu 2
  64161. Container creation
  64162. .IP \(bu 2
  64163. Image listing (LXC templates)
  64164. .IP \(bu 2
  64165. Running container information (IP addresses, etc.)
  64166. .UNINDENT
  64167. .SS Getting Started With 1and1
  64168. .sp
  64169. 1&1 is one of the world’s leading Web hosting providers. 1&1 currently offers
  64170. a wide range of Web hosting products, including email solutions and high\-end
  64171. servers in 10 different countries including Germany, Spain, Great Britain
  64172. and the United States. From domains to 1&1 MyWebsite to eBusiness solutions
  64173. like Cloud Hosting and Web servers for complex tasks, 1&1 is well placed to deliver
  64174. a high quality service to its customers. All 1&1 products are hosted in
  64175. 1&1‘s high\-performance, green data centers in the USA and Europe.
  64176. .SS Dependencies
  64177. .INDENT 0.0
  64178. .IP \(bu 2
  64179. 1and1 >= 1.2.0
  64180. .UNINDENT
  64181. .SS Configuration
  64182. .INDENT 0.0
  64183. .IP \(bu 2
  64184. Using the new format, set up the cloud configuration at
  64185. \fB/etc/salt/cloud.providers\fP or
  64186. \fB/etc/salt/cloud.providers.d/oneandone.conf\fP:
  64187. .UNINDENT
  64188. .INDENT 0.0
  64189. .INDENT 3.5
  64190. .sp
  64191. .nf
  64192. .ft C
  64193. my\-oneandone\-config:
  64194. driver: oneandone
  64195. # Set the location of the salt\-master
  64196. #
  64197. minion:
  64198. master: saltmaster.example.com
  64199. # Configure oneandone authentication credentials
  64200. #
  64201. api_token: <api_token>
  64202. ssh_private_key: /path/to/id_rsa
  64203. ssh_public_key: /path/to/id_rsa.pub
  64204. .ft P
  64205. .fi
  64206. .UNINDENT
  64207. .UNINDENT
  64208. .SS Authentication
  64209. .sp
  64210. The \fBapi_key\fP is used for API authorization. This token can be obtained
  64211. from the CloudPanel in the Management section below Users.
  64212. .SS Profiles
  64213. .sp
  64214. Here is an example of a profile:
  64215. .INDENT 0.0
  64216. .INDENT 3.5
  64217. .sp
  64218. .nf
  64219. .ft C
  64220. oneandone_fixed_size:
  64221. provider: my\-oneandone\-config
  64222. description: Small instance size server
  64223. fixed_instance_size: S
  64224. appliance_id: 8E3BAA98E3DFD37857810E0288DD8FBA
  64225. oneandone_custom_size:
  64226. provider: my\-oneandone\-config
  64227. description: Custom size server
  64228. vcore: 2
  64229. cores_per_processor: 2
  64230. ram: 8
  64231. appliance_id: 8E3BAA98E3DFD37857810E0288DD8FBA
  64232. hdds:
  64233. \-
  64234. is_main: true
  64235. size: 20
  64236. \-
  64237. is_main: false
  64238. size: 20
  64239. .ft P
  64240. .fi
  64241. .UNINDENT
  64242. .UNINDENT
  64243. .sp
  64244. The following list explains some of the important properties.
  64245. .INDENT 0.0
  64246. .TP
  64247. .B fixed_instance_size_id
  64248. When creating a server, either \fBfixed_instance_size_id\fP or custom hardware params
  64249. containing \fBvcore\fP, \fBcores_per_processor\fP, \fBram\fP, and \fBhdds\fP must be provided.
  64250. Can be one of the IDs listed among the output of the following command:
  64251. .UNINDENT
  64252. .INDENT 0.0
  64253. .INDENT 3.5
  64254. .sp
  64255. .nf
  64256. .ft C
  64257. salt\-cloud \-\-list\-sizes oneandone
  64258. .ft P
  64259. .fi
  64260. .UNINDENT
  64261. .UNINDENT
  64262. .INDENT 0.0
  64263. .TP
  64264. .B vcore
  64265. Total amount of processors.
  64266. .TP
  64267. .B cores_per_processor
  64268. Number of cores per processor.
  64269. .TP
  64270. .B ram
  64271. RAM memory size in GB.
  64272. .TP
  64273. .B hdds
  64274. Hard disks.
  64275. .TP
  64276. .B appliance_id
  64277. ID of the image that will be installed on server.
  64278. Can be one of the IDs listed in the output of the following command:
  64279. .UNINDENT
  64280. .INDENT 0.0
  64281. .INDENT 3.5
  64282. .sp
  64283. .nf
  64284. .ft C
  64285. salt\-cloud \-\-list\-images oneandone
  64286. .ft P
  64287. .fi
  64288. .UNINDENT
  64289. .UNINDENT
  64290. .INDENT 0.0
  64291. .TP
  64292. .B datacenter_id
  64293. ID of the datacenter where the server will be created.
  64294. Can be one of the IDs listed in the output of the following command:
  64295. .UNINDENT
  64296. .INDENT 0.0
  64297. .INDENT 3.5
  64298. .sp
  64299. .nf
  64300. .ft C
  64301. salt\-cloud \-\-list\-locations oneandone
  64302. .ft P
  64303. .fi
  64304. .UNINDENT
  64305. .UNINDENT
  64306. .INDENT 0.0
  64307. .TP
  64308. .B description
  64309. Description of the server.
  64310. .TP
  64311. .B password
  64312. Password of the server. Password must contain more than 8 characters
  64313. using uppercase letters, numbers and other special symbols.
  64314. .TP
  64315. .B power_on
  64316. Power on server after creation. Default is set to true.
  64317. .TP
  64318. .B firewall_policy_id
  64319. Firewall policy ID. If it is not provided, the server will assign
  64320. the best firewall policy, creating a new one if necessary. If the parameter
  64321. is sent with a 0 value, the server will be created with all ports blocked.
  64322. .TP
  64323. .B ip_id
  64324. IP address ID.
  64325. .TP
  64326. .B load_balancer_id
  64327. Load balancer ID.
  64328. .TP
  64329. .B monitoring_policy_id
  64330. Monitoring policy ID.
  64331. .TP
  64332. .B deploy
  64333. Set to False if Salt should not be installed on the node.
  64334. .TP
  64335. .B wait_for_timeout
  64336. The timeout to wait in seconds for provisioning resources such as servers.
  64337. The default wait_for_timeout is 15 minutes.
  64338. .TP
  64339. .B public_key_ids
  64340. List of public key IDs (ssh key).
  64341. .UNINDENT
  64342. .SS Functions
  64343. .INDENT 0.0
  64344. .IP \(bu 2
  64345. Create an SSH key
  64346. .UNINDENT
  64347. .INDENT 0.0
  64348. .INDENT 3.5
  64349. .sp
  64350. .nf
  64351. .ft C
  64352. sudo salt\-cloud \-f create_ssh_key my\-oneandone\-config name=\(aqSaltTest\(aq description=\(aqSaltTestDescription\(aq
  64353. .ft P
  64354. .fi
  64355. .UNINDENT
  64356. .UNINDENT
  64357. .INDENT 0.0
  64358. .IP \(bu 2
  64359. Create a block storage
  64360. .UNINDENT
  64361. .INDENT 0.0
  64362. .INDENT 3.5
  64363. .sp
  64364. .nf
  64365. .ft C
  64366. sudo salt\-cloud \-f create_block_storage my\-oneandone\-config name=\(aqSaltTest2\(aq description=\(aqSaltTestDescription\(aq size=50 datacenter_id=\(aq5091F6D8CBFEF9C26ACE957C652D5D49\(aq
  64367. .ft P
  64368. .fi
  64369. .UNINDENT
  64370. .UNINDENT
  64371. .sp
  64372. For more information concerning cloud profiles, see here\&.
  64373. .SS Getting Started with OpenNebula
  64374. .sp
  64375. OpenNebula is an open\-source solution for the comprehensive management of virtualized data centers to enable the mixed
  64376. use of private, public, and hybrid IaaS clouds.
  64377. .SS Dependencies
  64378. .sp
  64379. The driver requires Python\(aqs \fBlxml\fP library to be installed. It also requires an OpenNebula installation running
  64380. version \fB4.12\fP or greater.
  64381. .SS Configuration
  64382. .sp
  64383. The following example illustrates some of the options that can be set. These parameters are discussed in more detail
  64384. below.
  64385. .INDENT 0.0
  64386. .INDENT 3.5
  64387. .sp
  64388. .nf
  64389. .ft C
  64390. # Note: This example is for /etc/salt/cloud.providers or any file in the
  64391. # /etc/salt/cloud.providers.d/ directory.
  64392. my\-opennebula\-provider:
  64393. # Set up the location of the salt master
  64394. #
  64395. minion:
  64396. master: saltmaster.example.com
  64397. # Define xml_rpc setting which Salt\-Cloud uses to connect to the OpenNebula API. Required.
  64398. #
  64399. xml_rpc: http://localhost:2633/RPC2
  64400. # Define the OpenNebula access credentials. This can be the main "oneadmin" user that OpenNebula uses as the
  64401. # OpenNebula main admin, or it can be a user defined in the OpenNebula instance. Required.
  64402. #
  64403. user: oneadmin
  64404. password: JHGhgsayu32jsa
  64405. # Define the private key location that is used by OpenNebula to access new VMs. This setting is required if
  64406. # provisioning new VMs or accessing VMs previously created with the associated public key.
  64407. #
  64408. private_key: /path/to/private/key
  64409. driver: opennebula
  64410. .ft P
  64411. .fi
  64412. .UNINDENT
  64413. .UNINDENT
  64414. .SS Access Credentials
  64415. .sp
  64416. The Salt Cloud driver for OpenNebula was written using OpenNebula\(aqs native XML RPC API. Every interaction with
  64417. OpenNebula\(aqs API requires a \fBusername\fP and \fBpassword\fP to make the connection from the machine running Salt Cloud
  64418. to API running on the OpenNebula instance. Based on the access credentials passed in, OpenNebula filters the commands
  64419. that the user can perform or the information for which the user can query. For example, the images that a user can
  64420. view with a \fB\-\-list\-images\fP command are the images that the connected user and the connected user\(aqs groups can access.
  64421. .SS Key Pairs
  64422. .sp
  64423. Salt Cloud needs to be able to access a virtual machine in order to install the Salt Minion by using a public/private
  64424. key pair. The virtual machine will need to be seeded with the public key, which is laid down by the OpenNebula
  64425. template. Salt Cloud then uses the corresponding private key, provided by the \fBprivate_key\fP setting in the cloud
  64426. provider file, to SSH into the new virtual machine.
  64427. .sp
  64428. To seed the virtual machine with the public key, the public key must be added to the OpenNebula template. If using the
  64429. OpenNebula web interface, navigate to the template, then click \fBUpdate\fP\&. Click the \fBContext\fP tab. Under the
  64430. \fBNetwork & SSH\fP section, click \fBAdd SSH Contextualization\fP and paste the public key in the \fBPublic Key\fP box.
  64431. Don\(aqt forget to save your changes by clicking the green \fBUpdate\fP button.
  64432. .sp
  64433. \fBNOTE:\fP
  64434. .INDENT 0.0
  64435. .INDENT 3.5
  64436. The key pair must not have a pass\-phrase.
  64437. .UNINDENT
  64438. .UNINDENT
  64439. .SS Cloud Profiles
  64440. .sp
  64441. Set up an initial profile at either \fB/etc/salt/cloud.profiles\fP or the \fB/etc/salt/cloud.profiles.d/\fP directory.
  64442. .INDENT 0.0
  64443. .INDENT 3.5
  64444. .sp
  64445. .nf
  64446. .ft C
  64447. my\-opennebula\-profile:
  64448. provider: my\-opennebula\-provider
  64449. image: Ubuntu\-14.04
  64450. .ft P
  64451. .fi
  64452. .UNINDENT
  64453. .UNINDENT
  64454. .sp
  64455. The profile can now be realized with a salt command:
  64456. .INDENT 0.0
  64457. .INDENT 3.5
  64458. .sp
  64459. .nf
  64460. .ft C
  64461. salt\-cloud \-p my\-opennebula\-profile my\-new\-vm
  64462. .ft P
  64463. .fi
  64464. .UNINDENT
  64465. .UNINDENT
  64466. .sp
  64467. This will create a new instance named \fBmy\-new\-vm\fP in OpenNebula. The minion that is installed on this instance will
  64468. have a minion id of \fBmy\-new\-vm\fP\&. If the command was executed on the salt\-master, its Salt key will automatically be
  64469. signed on the master.
  64470. .sp
  64471. Once the instance has been created with salt\-minion installed, connectivity to it can be verified with Salt:
  64472. .INDENT 0.0
  64473. .INDENT 3.5
  64474. .sp
  64475. .nf
  64476. .ft C
  64477. salt my\-new\-vm test.version
  64478. .ft P
  64479. .fi
  64480. .UNINDENT
  64481. .UNINDENT
  64482. .sp
  64483. OpenNebula uses an image \-\-> template \-\-> virtual machine paradigm where the template draws on the image, or disk,
  64484. and virtual machines are created from templates. Because of this, there is no need to define a \fBsize\fP in the cloud
  64485. profile. The size of the virtual machine is defined in the template.
  64486. .SS Change Disk Size
  64487. .sp
  64488. You can now change the size of a VM on creation by cloning an image and expanding the size. You can accomplish this by
  64489. the following cloud profile settings below.
  64490. .INDENT 0.0
  64491. .INDENT 3.5
  64492. .sp
  64493. .nf
  64494. .ft C
  64495. my\-opennebula\-profile:
  64496. provider: my\-opennebula\-provider
  64497. image: Ubuntu\-14.04
  64498. disk:
  64499. disk0:
  64500. disk_type: clone
  64501. size: 8096
  64502. image: centos7\-base\-image\-v2
  64503. disk1:
  64504. disk_type: volatile
  64505. type: swap
  64506. size: 4096
  64507. disk2:
  64508. disk_type: volatile
  64509. size: 4096
  64510. type: fs
  64511. format: ext3
  64512. .ft P
  64513. .fi
  64514. .UNINDENT
  64515. .UNINDENT
  64516. .sp
  64517. There are currently two different disk_types a user can use: volatile and clone. Clone which is required when specifying devices
  64518. will clone an image in open nebula and will expand it to the size specified in the profile settings. By default this will clone
  64519. the image attached to the template specified in the profile but a user can add the \fIimage\fP argument under the disk definition.
  64520. .sp
  64521. For example the profile below will not use Ubuntu\-14.04 for the cloned disk image. It will use the centos7\-base\-image image:
  64522. .INDENT 0.0
  64523. .INDENT 3.5
  64524. .sp
  64525. .nf
  64526. .ft C
  64527. my\-opennebula\-profile:
  64528. provider: my\-opennebula\-provider
  64529. image: Ubuntu\-14.04
  64530. disk:
  64531. disk0:
  64532. disk_type: clone
  64533. size: 8096
  64534. image: centos7\-base\-image
  64535. .ft P
  64536. .fi
  64537. .UNINDENT
  64538. .UNINDENT
  64539. .sp
  64540. 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.
  64541. The profile below will clone the image Ubuntu\-14.04 and expand the disk to 8GB.:
  64542. .INDENT 0.0
  64543. .INDENT 3.5
  64544. .sp
  64545. .nf
  64546. .ft C
  64547. my\-opennebula\-profile:
  64548. provider: my\-opennebula\-provider
  64549. image: Ubuntu\-14.04
  64550. disk:
  64551. disk0:
  64552. disk_type: clone
  64553. size: 8096
  64554. .ft P
  64555. .fi
  64556. .UNINDENT
  64557. .UNINDENT
  64558. .sp
  64559. A user can also currently specify swap or fs disks. Below is an example of this profile setting:
  64560. .INDENT 0.0
  64561. .INDENT 3.5
  64562. .sp
  64563. .nf
  64564. .ft C
  64565. my\-opennebula\-profile:
  64566. provider: my\-opennebula\-provider
  64567. image: Ubuntu\-14.04
  64568. disk:
  64569. disk0:
  64570. disk_type: clone
  64571. size: 8096
  64572. disk1:
  64573. disk_type: volatile
  64574. type: swap
  64575. size: 4096
  64576. disk2:
  64577. disk_type: volatile
  64578. size: 4096
  64579. type: fs
  64580. format: ext3
  64581. .ft P
  64582. .fi
  64583. .UNINDENT
  64584. .UNINDENT
  64585. .sp
  64586. 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
  64587. to define the image disk to clone because the template will write over the entire \(aqDISK=[]\(aq template definition on creation.
  64588. .SS Required Settings
  64589. .sp
  64590. The following settings are always required for OpenNebula:
  64591. .INDENT 0.0
  64592. .INDENT 3.5
  64593. .sp
  64594. .nf
  64595. .ft C
  64596. my\-opennebula\-config:
  64597. xml_rpc: http://localhost:26633/RPC2
  64598. user: oneadmin
  64599. password: JHGhgsayu32jsa
  64600. driver: opennebula
  64601. .ft P
  64602. .fi
  64603. .UNINDENT
  64604. .UNINDENT
  64605. .SS Required Settings for VM Deployment
  64606. .sp
  64607. The settings defined in the \fI\%Required Settings\fP section are required for all interactions with
  64608. OpenNebula. However, when deploying a virtual machine via Salt Cloud, an additional setting, \fBprivate_key\fP, is also
  64609. required:
  64610. .INDENT 0.0
  64611. .INDENT 3.5
  64612. .sp
  64613. .nf
  64614. .ft C
  64615. my\-opennebula\-config:
  64616. private_key: /path/to/private/key
  64617. .ft P
  64618. .fi
  64619. .UNINDENT
  64620. .UNINDENT
  64621. .SS Listing Images
  64622. .sp
  64623. Images can be queried on OpenNebula by passing the \fB\-\-list\-images\fP argument to Salt Cloud:
  64624. .INDENT 0.0
  64625. .INDENT 3.5
  64626. .sp
  64627. .nf
  64628. .ft C
  64629. salt\-cloud \-\-list\-images opennebula
  64630. .ft P
  64631. .fi
  64632. .UNINDENT
  64633. .UNINDENT
  64634. .SS Listing Locations
  64635. .sp
  64636. In OpenNebula, locations are defined as \fBhosts\fP\&. Locations, or "hosts", can be querried on OpenNebula by passing the
  64637. \fB\-\-list\-locations\fP argument to Salt Cloud:
  64638. .INDENT 0.0
  64639. .INDENT 3.5
  64640. .sp
  64641. .nf
  64642. .ft C
  64643. salt\-cloud \-\-list\-locations opennebula
  64644. .ft P
  64645. .fi
  64646. .UNINDENT
  64647. .UNINDENT
  64648. .SS Listing Sizes
  64649. .sp
  64650. Sizes are defined by templates in OpenNebula. As such, the \fB\-\-list\-sizes\fP call returns an empty dictionary since
  64651. there are no sizes to return.
  64652. .SS Additional OpenNebula API Functionality
  64653. .sp
  64654. The Salt Cloud driver for OpenNebula was written using OpenNebula\(aqs native XML RPC API. As such, many \fB\-\-function\fP
  64655. and \fB\-\-action\fP calls were added to the OpenNebula driver to enhance support for an OpenNebula infrastructure with
  64656. additional control from Salt Cloud. See the \fBOpenNebula function definitions\fP
  64657. for more information.
  64658. .SS Access via DNS entry instead of IP
  64659. .sp
  64660. Some OpenNebula installations do not assign IP addresses to new VMs, instead they establish the new VM\(aqs hostname based
  64661. on OpenNebula\(aqs name of the VM, and then allocate an IP out of DHCP with dynamic DNS attaching the hostname. This driver
  64662. supports this behavior by adding the entry \fIfqdn_base\fP to the driver configuration or the OpenNebula profile with a value
  64663. matching the base fully\-qualified domain. For example:
  64664. .INDENT 0.0
  64665. .INDENT 3.5
  64666. .sp
  64667. .nf
  64668. .ft C
  64669. # Note: This example is for /etc/salt/cloud.providers or any file in the
  64670. # /etc/salt/cloud.providers.d/ directory.
  64671. my\-opennebula\-provider:
  64672. [...]
  64673. fqdn_base: corp.example.com
  64674. [...]
  64675. .ft P
  64676. .fi
  64677. .UNINDENT
  64678. .UNINDENT
  64679. .SS Getting Started with Openstack
  64680. .sp
  64681. See \fBsalt.cloud.clouds.openstack\fP
  64682. .SS Getting Started With Parallels
  64683. .sp
  64684. Parallels Cloud Server is a product by Parallels that delivers a cloud hosting
  64685. solution. The PARALLELS module for Salt Cloud enables you to manage instances
  64686. hosted using PCS. Further information can be found at:
  64687. .sp
  64688. \fI\%http://www.parallels.com/products/pcs/\fP
  64689. .INDENT 0.0
  64690. .IP \(bu 2
  64691. Using the old format, set up the cloud configuration at \fB/etc/salt/cloud\fP:
  64692. .UNINDENT
  64693. .INDENT 0.0
  64694. .INDENT 3.5
  64695. .sp
  64696. .nf
  64697. .ft C
  64698. # Set up the location of the salt master
  64699. #
  64700. minion:
  64701. master: saltmaster.example.com
  64702. # Set the PARALLELS access credentials (see below)
  64703. #
  64704. PARALLELS.user: myuser
  64705. PARALLELS.password: badpass
  64706. # Set the access URL for your PARALLELS host
  64707. #
  64708. PARALLELS.url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64709. .ft P
  64710. .fi
  64711. .UNINDENT
  64712. .UNINDENT
  64713. .INDENT 0.0
  64714. .IP \(bu 2
  64715. Using the new format, set up the cloud configuration at
  64716. \fB/etc/salt/cloud.providers\fP or
  64717. \fB/etc/salt/cloud.providers.d/parallels.conf\fP:
  64718. .UNINDENT
  64719. .INDENT 0.0
  64720. .INDENT 3.5
  64721. .sp
  64722. .nf
  64723. .ft C
  64724. my\-parallels\-config:
  64725. # Set up the location of the salt master
  64726. #
  64727. minion:
  64728. master: saltmaster.example.com
  64729. # Set the PARALLELS access credentials (see below)
  64730. #
  64731. user: myuser
  64732. password: badpass
  64733. # Set the access URL for your PARALLELS provider
  64734. #
  64735. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64736. driver: parallels
  64737. .ft P
  64738. .fi
  64739. .UNINDENT
  64740. .UNINDENT
  64741. .sp
  64742. \fBNOTE:\fP
  64743. .INDENT 0.0
  64744. .INDENT 3.5
  64745. Changed in version 2015.8.0.
  64746. .sp
  64747. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  64748. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  64749. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  64750. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  64751. to use \fBprovider\fP to refer to provider configurations that you define.
  64752. .UNINDENT
  64753. .UNINDENT
  64754. .SS Access Credentials
  64755. .sp
  64756. The \fBuser\fP, \fBpassword\fP, and \fBurl\fP will be provided to you by your cloud
  64757. host. These are all required in order for the PARALLELS driver to work.
  64758. .SS Cloud Profiles
  64759. .sp
  64760. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  64761. \fB/etc/salt/cloud.profiles.d/parallels.conf\fP:
  64762. .INDENT 0.0
  64763. .INDENT 3.5
  64764. .sp
  64765. .nf
  64766. .ft C
  64767. parallels\-ubuntu:
  64768. provider: my\-parallels\-config
  64769. image: ubuntu\-12.04\-x86_64
  64770. .ft P
  64771. .fi
  64772. .UNINDENT
  64773. .UNINDENT
  64774. .sp
  64775. The profile can be realized now with a salt command:
  64776. .INDENT 0.0
  64777. .INDENT 3.5
  64778. .sp
  64779. .nf
  64780. .ft C
  64781. # salt\-cloud \-p parallels\-ubuntu myubuntu
  64782. .ft P
  64783. .fi
  64784. .UNINDENT
  64785. .UNINDENT
  64786. .sp
  64787. This will create an instance named \fBmyubuntu\fP on the cloud host. The
  64788. minion that is installed on this instance will have an \fBid\fP of \fBmyubuntu\fP\&.
  64789. If the command was executed on the salt\-master, its Salt key will automatically
  64790. be signed on the master.
  64791. .sp
  64792. Once the instance has been created with salt\-minion installed, connectivity to
  64793. it can be verified with Salt:
  64794. .INDENT 0.0
  64795. .INDENT 3.5
  64796. .sp
  64797. .nf
  64798. .ft C
  64799. # salt myubuntu test.version
  64800. .ft P
  64801. .fi
  64802. .UNINDENT
  64803. .UNINDENT
  64804. .SS Required Settings
  64805. .sp
  64806. The following settings are always required for PARALLELS:
  64807. .INDENT 0.0
  64808. .IP \(bu 2
  64809. Using the old cloud configuration format:
  64810. .UNINDENT
  64811. .INDENT 0.0
  64812. .INDENT 3.5
  64813. .sp
  64814. .nf
  64815. .ft C
  64816. PARALLELS.user: myuser
  64817. PARALLELS.password: badpass
  64818. PARALLELS.url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64819. .ft P
  64820. .fi
  64821. .UNINDENT
  64822. .UNINDENT
  64823. .INDENT 0.0
  64824. .IP \(bu 2
  64825. Using the new cloud configuration format:
  64826. .UNINDENT
  64827. .INDENT 0.0
  64828. .INDENT 3.5
  64829. .sp
  64830. .nf
  64831. .ft C
  64832. my\-parallels\-config:
  64833. user: myuser
  64834. password: badpass
  64835. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64836. driver: parallels
  64837. .ft P
  64838. .fi
  64839. .UNINDENT
  64840. .UNINDENT
  64841. .SS Optional Settings
  64842. .sp
  64843. Unlike other cloud providers in Salt Cloud, Parallels does not utilize a
  64844. \fBsize\fP setting. This is because Parallels allows the end\-user to specify a
  64845. more detailed configuration for their instances than is allowed by many other
  64846. cloud hosts. The following options are available to be used in a profile,
  64847. with their default settings listed.
  64848. .INDENT 0.0
  64849. .INDENT 3.5
  64850. .sp
  64851. .nf
  64852. .ft C
  64853. # Description of the instance. Defaults to the instance name.
  64854. desc: <instance_name>
  64855. # How many CPU cores, and how fast they are (in MHz)
  64856. cpu_number: 1
  64857. cpu_power: 1000
  64858. # How many megabytes of RAM
  64859. ram: 256
  64860. # Bandwidth available, in kbps
  64861. bandwidth: 100
  64862. # How many public IPs will be assigned to this instance
  64863. ip_num: 1
  64864. # Size of the instance disk (in GiB)
  64865. disk_size: 10
  64866. # Username and password
  64867. ssh_username: root
  64868. password: <value from PARALLELS.password>
  64869. # The name of the image, from \(ga\(gasalt\-cloud \-\-list\-images parallels\(ga\(ga
  64870. image: ubuntu\-12.04\-x86_64
  64871. .ft P
  64872. .fi
  64873. .UNINDENT
  64874. .UNINDENT
  64875. .SS Getting Started With ProfitBricks
  64876. .sp
  64877. ProfitBricks provides an enterprise\-grade Infrastructure as a Service (IaaS)
  64878. solution that can be managed through a browser\-based "Data Center Designer"
  64879. (DCD) tool or via an easy to use API. A unique feature of the ProfitBricks
  64880. platform is that it allows you to define your own settings for cores, memory,
  64881. and disk size without being tied to a particular server size.
  64882. .SS Dependencies
  64883. .INDENT 0.0
  64884. .IP \(bu 2
  64885. profitbricks >= 4.1.1
  64886. .UNINDENT
  64887. .SS Configuration
  64888. .INDENT 0.0
  64889. .IP \(bu 2
  64890. Using the new format, set up the cloud configuration at
  64891. \fB/etc/salt/cloud.providers\fP or
  64892. \fB/etc/salt/cloud.providers.d/profitbricks.conf\fP:
  64893. .UNINDENT
  64894. .INDENT 0.0
  64895. .INDENT 3.5
  64896. .sp
  64897. .nf
  64898. .ft C
  64899. my\-profitbricks\-config:
  64900. driver: profitbricks
  64901. # Set the location of the salt\-master
  64902. #
  64903. minion:
  64904. master: saltmaster.example.com
  64905. # Configure ProfitBricks authentication credentials
  64906. #
  64907. username: user@domain.com
  64908. password: 123456
  64909. # datacenter is the UUID of a pre\-existing virtual data center.
  64910. datacenter: 9e6709a0\-6bf9\-4bd6\-8692\-60349c70ce0e
  64911. # delete_volumes is forcing a deletion of all volumes attached to a server on a deletion of a server
  64912. delete_volumes: true
  64913. # Connect to public LAN ID 1.
  64914. public_lan: 1
  64915. ssh_public_key: /path/to/id_rsa.pub
  64916. ssh_private_key: /path/to/id_rsa
  64917. .ft P
  64918. .fi
  64919. .UNINDENT
  64920. .UNINDENT
  64921. .sp
  64922. \fBNOTE:\fP
  64923. .INDENT 0.0
  64924. .INDENT 3.5
  64925. Changed in version 2015.8.0.
  64926. .sp
  64927. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  64928. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  64929. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  64930. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  64931. to use \fBprovider\fP to refer to provider configurations that you define.
  64932. .UNINDENT
  64933. .UNINDENT
  64934. .SS Virtual Data Center
  64935. .sp
  64936. ProfitBricks uses the concept of Virtual Data Centers. These are logically
  64937. separated from one another and allow you to have a self\-contained environment
  64938. for all servers, volumes, networking, snapshots, and so forth.
  64939. .sp
  64940. A list of existing virtual data centers can be retrieved with the following command:
  64941. .INDENT 0.0
  64942. .INDENT 3.5
  64943. .sp
  64944. .nf
  64945. .ft C
  64946. salt\-cloud \-f list_datacenters my\-profitbricks\-config
  64947. .ft P
  64948. .fi
  64949. .UNINDENT
  64950. .UNINDENT
  64951. .sp
  64952. A new data center can be created with the following command:
  64953. .INDENT 0.0
  64954. .INDENT 3.5
  64955. .sp
  64956. .nf
  64957. .ft C
  64958. salt\-cloud \-f create_datacenter my\-profitbricks\-config name=example location=us/las description="my description"
  64959. .ft P
  64960. .fi
  64961. .UNINDENT
  64962. .UNINDENT
  64963. .SS Authentication
  64964. .sp
  64965. The \fBusername\fP and \fBpassword\fP are the same as those used to log into the
  64966. ProfitBricks "Data Center Designer".
  64967. .SS Profiles
  64968. .sp
  64969. Here is an example of a profile:
  64970. .INDENT 0.0
  64971. .INDENT 3.5
  64972. .sp
  64973. .nf
  64974. .ft C
  64975. profitbricks_staging
  64976. provider: my\-profitbricks\-config
  64977. size: Micro Instance
  64978. image_alias: \(aqubuntu:latest\(aq
  64979. # image or image_alias must be provided
  64980. # image: 2f98b678\-6e7e\-11e5\-b680\-52540066fee9
  64981. cores: 2
  64982. ram: 4096
  64983. public_lan: 1
  64984. private_lan: 2
  64985. ssh_public_key: /path/to/id_rsa.pub
  64986. ssh_private_key: /path/to/id_rsa
  64987. ssh_interface: private_lan
  64988. profitbricks_production:
  64989. provider: my\-profitbricks\-config
  64990. image: Ubuntu\-15.10\-server\-2016\-05\-01
  64991. image_password: MyPassword1
  64992. disk_type: SSD
  64993. disk_size: 40
  64994. cores: 8
  64995. cpu_family: INTEL_XEON
  64996. ram: 32768
  64997. public_lan: 1
  64998. public_ips:
  64999. \- 172.217.18.174
  65000. private_lan: 2
  65001. private_ips:
  65002. \- 192.168.100.10
  65003. public_firewall_rules:
  65004. Allow SSH:
  65005. protocol: TCP
  65006. source_ip: 1.2.3.4
  65007. port_range_start: 22
  65008. port_range_end: 22
  65009. Allow Ping:
  65010. protocol: ICMP
  65011. icmp_type: 8
  65012. ssh_public_key: /path/to/id_rsa.pub
  65013. ssh_private_key: /path/to/id_rsa
  65014. ssh_interface: private_lan
  65015. volumes:
  65016. db_data:
  65017. disk_size: 500
  65018. db_log:
  65019. disk_size: 50
  65020. disk_type: SSD
  65021. .ft P
  65022. .fi
  65023. .UNINDENT
  65024. .UNINDENT
  65025. .sp
  65026. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  65027. command:
  65028. .INDENT 0.0
  65029. .INDENT 3.5
  65030. .sp
  65031. .nf
  65032. .ft C
  65033. # salt\-cloud \-\-list\-locations my\-profitbricks\-config
  65034. .ft P
  65035. .fi
  65036. .UNINDENT
  65037. .UNINDENT
  65038. .sp
  65039. Images can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  65040. command:
  65041. .INDENT 0.0
  65042. .INDENT 3.5
  65043. .sp
  65044. .nf
  65045. .ft C
  65046. # salt\-cloud \-\-list\-images my\-profitbricks\-config
  65047. .ft P
  65048. .fi
  65049. .UNINDENT
  65050. .UNINDENT
  65051. .sp
  65052. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  65053. command:
  65054. .INDENT 0.0
  65055. .INDENT 3.5
  65056. .sp
  65057. .nf
  65058. .ft C
  65059. # salt\-cloud \-\-list\-sizes my\-profitbricks\-config
  65060. .ft P
  65061. .fi
  65062. .UNINDENT
  65063. .UNINDENT
  65064. .sp
  65065. Changed in version 2019.2.0: One or more public IP address can be reserved with the following command:
  65066. .INDENT 0.0
  65067. .INDENT 3.5
  65068. .sp
  65069. .nf
  65070. .ft C
  65071. # salt\-cloud \-f reserve_ipblock my\-profitbricks\-config location=\(aqus/ewr\(aq size=1
  65072. .ft P
  65073. .fi
  65074. .UNINDENT
  65075. .UNINDENT
  65076. .SS Profile Specifics:
  65077. .sp
  65078. The following list explains some of the important properties.
  65079. .INDENT 0.0
  65080. .IP \(bu 2
  65081. \fBsize\fP \- Can be one of the options listed in the output of the following
  65082. command:
  65083. .INDENT 2.0
  65084. .INDENT 3.5
  65085. .sp
  65086. .nf
  65087. .ft C
  65088. salt\-cloud \-\-list\-sizes my\-profitbricks\-config
  65089. .ft P
  65090. .fi
  65091. .UNINDENT
  65092. .UNINDENT
  65093. .IP \(bu 2
  65094. \fBimage\fP \- Can be one of the options listed in the output of the following
  65095. command:
  65096. .INDENT 2.0
  65097. .INDENT 3.5
  65098. .sp
  65099. .nf
  65100. .ft C
  65101. salt\-cloud \-\-list\-images my\-profitbricks\-config
  65102. .ft P
  65103. .fi
  65104. .UNINDENT
  65105. .UNINDENT
  65106. .IP \(bu 2
  65107. \fBimage_alias\fP \- Can be one of the options listed in the output of the
  65108. following command:
  65109. .INDENT 2.0
  65110. .INDENT 3.5
  65111. .sp
  65112. .nf
  65113. .ft C
  65114. salt\-cloud \-f list_images my\-profitbricks\-config
  65115. .ft P
  65116. .fi
  65117. .UNINDENT
  65118. .UNINDENT
  65119. .IP \(bu 2
  65120. \fBdisk_size\fP \- This option allows you to override the size of the disk as
  65121. defined by the size. The disk size is set in gigabytes (GB).
  65122. .IP \(bu 2
  65123. \fBdisk_type\fP \- This option allow the disk type to be set to HDD or SSD. The
  65124. default is HDD.
  65125. .sp
  65126. New in version 2019.2.0.
  65127. .IP \(bu 2
  65128. \fBimage_password\fP \- A password is set on the image for the "root" or
  65129. "Administrator" account. This field may only be set during volume creation.
  65130. Only valid with ProfitBricks supplied HDD (not ISO) images. The password must
  65131. contain at least 8 and no more than 50 characters. Only these characters are
  65132. allowed: [a\-z][A\-Z][0\-9]
  65133. .IP \(bu 2
  65134. \fBcores\fP \- This option allows you to override the number of CPU cores as
  65135. defined by the size.
  65136. .IP \(bu 2
  65137. \fBram\fP \- This option allows you to override the amount of RAM defined by the
  65138. size. The value must be a multiple of 256, e.g. 256, 512, 768, 1024, and so
  65139. forth.
  65140. .IP \(bu 2
  65141. \fBpublic_lan\fP \- This option will connect the server to the specified public
  65142. LAN. If no LAN exists, then a new public LAN will be created. The value
  65143. accepts a LAN ID (integer).
  65144. .sp
  65145. New in version 2019.2.0.
  65146. .IP \(bu 2
  65147. \fBpublic_ips\fP \- Public IPs assigned to the NIC in the public LAN.
  65148. .IP \(bu 2
  65149. \fBpublic_firewall_rules\fP \- This option allows for a list of firewall rules
  65150. assigned to the public network interface.
  65151. .INDENT 2.0
  65152. .INDENT 3.5
  65153. .sp
  65154. .nf
  65155. .ft C
  65156. Firewall Rule Name:
  65157. protocol: <protocol> (TCP, UDP, ICMP)
  65158. source_mac: <source\-mac>
  65159. source_ip: <source\-ip>
  65160. target_ip: <target\-ip>
  65161. port_range_start: <port\-range\-start>
  65162. port_range_end: <port\-range\-end>
  65163. icmp_type: <icmp\-type>
  65164. icmp_code: <icmp\-code>
  65165. .ft P
  65166. .fi
  65167. .UNINDENT
  65168. .UNINDENT
  65169. .IP \(bu 2
  65170. \fBprivate_lan\fP \- This option will connect the server to the specified
  65171. private LAN. If no LAN exists, then a new private LAN will be created. The
  65172. value accepts a LAN ID (integer).
  65173. .sp
  65174. New in version 2019.2.0.
  65175. .IP \(bu 2
  65176. \fBprivate_ips\fP \- Private IPs assigned in the private LAN. NAT setting is
  65177. ignored when this setting is active.
  65178. .IP \(bu 2
  65179. \fBprivate_firewall_rules\fP \- This option allows for a list of firewall rules
  65180. assigned to the private network interface.
  65181. .INDENT 2.0
  65182. .INDENT 3.5
  65183. .sp
  65184. .nf
  65185. .ft C
  65186. Firewall Rule Name:
  65187. protocol: <protocol> (TCP, UDP, ICMP)
  65188. source_mac: <source\-mac>
  65189. source_ip: <source\-ip>
  65190. target_ip: <target\-ip>
  65191. port_range_start: <port\-range\-start>
  65192. port_range_end: <port\-range\-end>
  65193. icmp_type: <icmp\-type>
  65194. icmp_code: <icmp\-code>
  65195. .ft P
  65196. .fi
  65197. .UNINDENT
  65198. .UNINDENT
  65199. .IP \(bu 2
  65200. \fBssh_private_key\fP \- Full path to the SSH private key file
  65201. .IP \(bu 2
  65202. \fBssh_public_key\fP \- Full path to the SSH public key file
  65203. .IP \(bu 2
  65204. \fBssh_interface\fP \- This option will use the private LAN IP for node
  65205. connections (such as as bootstrapping the node) instead of the public LAN IP.
  65206. The value accepts \(aqprivate_lan\(aq.
  65207. .IP \(bu 2
  65208. \fBcpu_family\fP \- This option allow the CPU family to be set to AMD_OPTERON or
  65209. INTEL_XEON. The default is AMD_OPTERON.
  65210. .IP \(bu 2
  65211. \fBvolumes\fP \- This option allows a list of additional volumes by name that
  65212. will be created and attached to the server. Each volume requires \(aqdisk_size\(aq
  65213. and, optionally, \(aqdisk_type\(aq. The default is HDD.
  65214. .IP \(bu 2
  65215. \fBdeploy\fP \- Set to \fBFalse\fP if Salt should not be installed on the node.
  65216. .IP \(bu 2
  65217. \fBwait_for_timeout\fP \- The timeout to wait in seconds for provisioning
  65218. resources such as servers. The default wait_for_timeout is 15 minutes.
  65219. .UNINDENT
  65220. .sp
  65221. For more information concerning cloud profiles, see here\&.
  65222. .SS Getting Started With Proxmox
  65223. .sp
  65224. Proxmox Virtual Environment is a complete server virtualization management solution,
  65225. based on OpenVZ(in Proxmox up to 3.4)/LXC(from Proxmox 4.0 and up) and full virtualization with KVM.
  65226. Further information can be found at:
  65227. .sp
  65228. \fI\%http://www.proxmox.org/\fP
  65229. .SS Dependencies
  65230. .INDENT 0.0
  65231. .IP \(bu 2
  65232. IPy >= 0.81
  65233. .IP \(bu 2
  65234. requests >= 2.2.1
  65235. .UNINDENT
  65236. .sp
  65237. Please note:
  65238. This module allows you to create OpenVZ/LXC containers and KVM VMs, but installing Salt on it will only be
  65239. done on containers rather than a KVM virtual machine.
  65240. .INDENT 0.0
  65241. .IP \(bu 2
  65242. Set up the cloud configuration at
  65243. \fB/etc/salt/cloud.providers\fP or
  65244. \fB/etc/salt/cloud.providers.d/proxmox.conf\fP:
  65245. .UNINDENT
  65246. .INDENT 0.0
  65247. .INDENT 3.5
  65248. .sp
  65249. .nf
  65250. .ft C
  65251. my\-proxmox\-config:
  65252. # Set up the location of the salt master
  65253. #
  65254. minion:
  65255. master: saltmaster.example.com
  65256. # Set the PROXMOX access credentials (see below)
  65257. #
  65258. user: myuser@pve
  65259. password: badpass
  65260. # Set the access URL for your PROXMOX host
  65261. #
  65262. url: your.proxmox.host
  65263. driver: proxmox
  65264. .ft P
  65265. .fi
  65266. .UNINDENT
  65267. .UNINDENT
  65268. .sp
  65269. \fBNOTE:\fP
  65270. .INDENT 0.0
  65271. .INDENT 3.5
  65272. Changed in version 2015.8.0.
  65273. .sp
  65274. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65275. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65276. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65277. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65278. to use \fBprovider\fP to refer to provider configurations that you define.
  65279. .UNINDENT
  65280. .UNINDENT
  65281. .SS Access Credentials
  65282. .sp
  65283. The \fBuser\fP, \fBpassword\fP, and \fBurl\fP will be provided to you by your cloud
  65284. host. These are all required in order for the PROXMOX driver to work.
  65285. .SS Cloud Profiles
  65286. .sp
  65287. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  65288. \fB/etc/salt/cloud.profiles.d/proxmox.conf\fP:
  65289. .INDENT 0.0
  65290. .IP \(bu 2
  65291. Configure a profile to be used:
  65292. .UNINDENT
  65293. .INDENT 0.0
  65294. .INDENT 3.5
  65295. .sp
  65296. .nf
  65297. .ft C
  65298. proxmox\-ubuntu:
  65299. provider: my\-proxmox\-config
  65300. image: local:vztmpl/ubuntu\-12.04\-standard_12.04\-1_amd64.tar.gz
  65301. technology: lxc
  65302. # host needs to be set to the configured name of the proxmox host
  65303. # and not the ip address or FQDN of the server
  65304. host: myvmhost
  65305. ip_address: 192.168.100.155
  65306. password: topsecret
  65307. .ft P
  65308. .fi
  65309. .UNINDENT
  65310. .UNINDENT
  65311. .sp
  65312. The profile can be realized now with a salt command:
  65313. .INDENT 0.0
  65314. .INDENT 3.5
  65315. .sp
  65316. .nf
  65317. .ft C
  65318. # salt\-cloud \-p proxmox\-ubuntu myubuntu
  65319. .ft P
  65320. .fi
  65321. .UNINDENT
  65322. .UNINDENT
  65323. .sp
  65324. This will create an instance named \fBmyubuntu\fP on the cloud host. The
  65325. minion that is installed on this instance will have a \fBhostname\fP of \fBmyubuntu\fP\&.
  65326. If the command was executed on the salt\-master, its Salt key will automatically
  65327. be signed on the master.
  65328. .sp
  65329. Once the instance has been created with salt\-minion installed, connectivity to
  65330. it can be verified with Salt:
  65331. .INDENT 0.0
  65332. .INDENT 3.5
  65333. .sp
  65334. .nf
  65335. .ft C
  65336. # salt myubuntu test.version
  65337. .ft P
  65338. .fi
  65339. .UNINDENT
  65340. .UNINDENT
  65341. .SS Required Settings
  65342. .sp
  65343. The following settings are always required for PROXMOX:
  65344. .INDENT 0.0
  65345. .IP \(bu 2
  65346. Using the new cloud configuration format:
  65347. .UNINDENT
  65348. .INDENT 0.0
  65349. .INDENT 3.5
  65350. .sp
  65351. .nf
  65352. .ft C
  65353. my\-proxmox\-config:
  65354. driver: proxmox
  65355. user: saltcloud@pve
  65356. password: xyzzy
  65357. url: your.proxmox.host
  65358. .ft P
  65359. .fi
  65360. .UNINDENT
  65361. .UNINDENT
  65362. .SS Optional Settings
  65363. .sp
  65364. Unlike other cloud providers in Salt Cloud, Proxmox does not utilize a
  65365. \fBsize\fP setting. This is because Proxmox allows the end\-user to specify a
  65366. more detailed configuration for their instances, than is allowed by many other
  65367. cloud providers. The following options are available to be used in a profile,
  65368. with their default settings listed.
  65369. .INDENT 0.0
  65370. .INDENT 3.5
  65371. .sp
  65372. .nf
  65373. .ft C
  65374. # Description of the instance.
  65375. desc: <instance_name>
  65376. # How many CPU cores, and how fast they are (in MHz)
  65377. cpus: 1
  65378. cpuunits: 1000
  65379. # How many megabytes of RAM
  65380. memory: 256
  65381. # How much swap space in MB
  65382. swap: 256
  65383. # Whether to auto boot the vm after the host reboots
  65384. onboot: 1
  65385. # Size of the instance disk (in GiB)
  65386. disk: 10
  65387. # Host to create this vm on
  65388. host: myvmhost
  65389. # Nameservers. Defaults to host
  65390. nameserver: 8.8.8.8 8.8.4.4
  65391. # Username and password
  65392. ssh_username: root
  65393. password: <value from PROXMOX.password>
  65394. # The name of the image, from \(ga\(gasalt\-cloud \-\-list\-images proxmox\(ga\(ga
  65395. image: local:vztmpl/ubuntu\-12.04\-standard_12.04\-1_amd64.tar.gz
  65396. # Whether or not to verify the SSL cert on the Proxmox host
  65397. verify_ssl: False
  65398. # Network interfaces, netX
  65399. net0: name=eth0,bridge=vmbr0,ip=dhcp
  65400. # Public key to add to /root/.ssh/authorized_keys.
  65401. pubkey: \(aqssh\-rsa AAAAB3NzaC1yc2EAAAADAQABA...\(aq
  65402. .ft P
  65403. .fi
  65404. .UNINDENT
  65405. .UNINDENT
  65406. .SS QEMU
  65407. .sp
  65408. 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.
  65409. You can also clone a qemu template which already is on your Proxmox server.
  65410. .sp
  65411. QEMU profile file (for a new VM):
  65412. .INDENT 0.0
  65413. .INDENT 3.5
  65414. .sp
  65415. .nf
  65416. .ft C
  65417. proxmox\-win7:
  65418. # Image of the new VM
  65419. 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)
  65420. # Technology used to create the VM (\(aqqemu\(aq, \(aqopenvz\(aq(on Proxmox <4.x) or \(aqlxc\(aq(on Proxmox 4.x+))
  65421. technology: qemu
  65422. # Proxmox node name
  65423. host: node_name
  65424. # Proxmox password
  65425. password: your_password
  65426. # Workaround https://github.com/saltstack/salt/issues/27821
  65427. size: \(aq\(aq
  65428. # RAM size (MB)
  65429. memory: 2048
  65430. # OS Type enum (other / wxp / w2k / w2k3 / w2k8 / wvista / win7 / win8 / l24 / l26 / solaris)
  65431. ostype: win7
  65432. # Hard disk location
  65433. sata0: <location>:<size>, format=<qcow2/vmdk/raw>, size=<size>GB #Example: local:120,format=qcow2,size=120GB
  65434. #CD/DVD Drive
  65435. ide2: <content_location>,media=cdrom #Example: local:iso/name.iso,media=cdrom
  65436. # Network Device
  65437. net0:<model>,bridge=<bridge> #Example: e1000,bridge=vmbr0
  65438. # Enable QEMU Guest Agent (0 / 1)
  65439. agent: 1
  65440. # VM name
  65441. name: Test
  65442. .ft P
  65443. .fi
  65444. .UNINDENT
  65445. .UNINDENT
  65446. .sp
  65447. 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
  65448. .sp
  65449. QEMU profile file (for a clone):
  65450. .INDENT 0.0
  65451. .INDENT 3.5
  65452. .sp
  65453. .nf
  65454. .ft C
  65455. proxmox\-win7:
  65456. # Enable Clone
  65457. clone: True
  65458. # New VM description
  65459. clone_description: \(aqdescription\(aq
  65460. # New VM name
  65461. clone_name: \(aqname\(aq
  65462. # New VM format (qcow2 / raw / vmdk)
  65463. clone_format: qcow2
  65464. # Full clone (1) or Link clone (0)
  65465. clone_full: 0
  65466. # VMID of Template to clone
  65467. clone_from: ID
  65468. # Technology used to create the VM (\(aqqemu\(aq or \(aqlxc\(aq)
  65469. technology: qemu
  65470. # Proxmox node name
  65471. host: node_name
  65472. # Proxmox password
  65473. password: your_password
  65474. # Workaround https://github.com/saltstack/salt/issues/27821
  65475. size: \(aq\(aq
  65476. .ft P
  65477. .fi
  65478. .UNINDENT
  65479. .UNINDENT
  65480. .sp
  65481. More information can be found on Proxmox API under the \(aqPOST\(aq method of /nodes/{node}/qemu/{vmid}/clone
  65482. .sp
  65483. \fBNOTE:\fP
  65484. .INDENT 0.0
  65485. .INDENT 3.5
  65486. The Proxmox API offers a lot more options and parameters, which are not yet
  65487. supported by this salt\-cloud \(aqoverlay\(aq. Feel free to add your contribution
  65488. by forking the github repository and modifying the following file:
  65489. \fBsalt/cloud/clouds/proxmox.py\fP
  65490. .sp
  65491. An easy way to support more parameters for VM creation would be to add the
  65492. names of the optional parameters in the \(aqcreate_nodes(vm_)\(aq function, under
  65493. the \(aqqemu\(aq technology. But it requires you to dig into the code ...
  65494. .UNINDENT
  65495. .UNINDENT
  65496. .SS Getting Started With Scaleway
  65497. .sp
  65498. 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
  65499. .SS Configuration
  65500. .sp
  65501. 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.
  65502. 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.
  65503. .sp
  65504. If you do not have API token you can create one by clicking the "Create New Token" button on the right corner.
  65505. .INDENT 0.0
  65506. .INDENT 3.5
  65507. .sp
  65508. .nf
  65509. .ft C
  65510. # Note: This example is for /etc/salt/cloud.providers or any file in the
  65511. # /etc/salt/cloud.providers.d/ directory.
  65512. my\-scaleway\-config:
  65513. access_key: 15cf404d\-4560\-41b1\-9a0c\-21c3d5c4ff1f
  65514. token: a7347ec8\-5de1\-4024\-a5e3\-24b77d1ba91d
  65515. driver: scaleway
  65516. .ft P
  65517. .fi
  65518. .UNINDENT
  65519. .UNINDENT
  65520. .sp
  65521. \fBNOTE:\fP
  65522. .INDENT 0.0
  65523. .INDENT 3.5
  65524. Changed in version 2015.8.0.
  65525. .sp
  65526. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65527. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65528. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65529. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65530. to use \fBprovider\fP to refer to provider configurations that you define.
  65531. .UNINDENT
  65532. .UNINDENT
  65533. .SS Profiles
  65534. .SS Cloud Profiles
  65535. .sp
  65536. Set up an initial profile at /etc/salt/cloud.profiles or in the /etc/salt/cloud.profiles.d/ directory:
  65537. .INDENT 0.0
  65538. .INDENT 3.5
  65539. .sp
  65540. .nf
  65541. .ft C
  65542. scaleway\-ubuntu:
  65543. provider: my\-scaleway\-config
  65544. image: Ubuntu Trusty (14.04 LTS)
  65545. .ft P
  65546. .fi
  65547. .UNINDENT
  65548. .UNINDENT
  65549. .sp
  65550. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP command:
  65551. .INDENT 0.0
  65552. .INDENT 3.5
  65553. .sp
  65554. .nf
  65555. .ft C
  65556. #salt\-cloud \-\-list\-images my\-scaleway\-config
  65557. my\-scaleway\-config:
  65558. \-\-\-\-\-\-\-\-\-\-
  65559. scaleway:
  65560. \-\-\-\-\-\-\-\-\-\-
  65561. 069fd876\-eb04\-44ab\-a9cd\-47e2fa3e5309:
  65562. \-\-\-\-\-\-\-\-\-\-
  65563. arch:
  65564. arm
  65565. creation_date:
  65566. 2015\-03\-12T09:35:45.764477+00:00
  65567. default_bootscript:
  65568. {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}
  65569. extra_volumes:
  65570. []
  65571. id:
  65572. 069fd876\-eb04\-44ab\-a9cd\-47e2fa3e5309
  65573. modification_date:
  65574. 2015\-04\-24T12:02:16.820256+00:00
  65575. name:
  65576. Ubuntu Vivid (15.04)
  65577. organization:
  65578. a283af0b\-d13e\-42e1\-a43f\-855ffbf281ab
  65579. public:
  65580. True
  65581. root_volume:
  65582. {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}
  65583. \&...
  65584. .ft P
  65585. .fi
  65586. .UNINDENT
  65587. .UNINDENT
  65588. .sp
  65589. 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:
  65590. .INDENT 0.0
  65591. .INDENT 3.5
  65592. .sp
  65593. .nf
  65594. .ft C
  65595. # salt\-cloud \-F
  65596. [INFO ] salt\-cloud starting
  65597. [INFO ] Starting new HTTPS connection (1): api.scaleway.com
  65598. my\-scaleway\-config:
  65599. \-\-\-\-\-\-\-\-\-\-
  65600. scaleway:
  65601. \-\-\-\-\-\-\-\-\-\-
  65602. salt\-manager:
  65603. \-\-\-\-\-\-\-\-\-\-
  65604. creation_date:
  65605. 2015\-06\-03T08:17:38.818068+00:00
  65606. hostname:
  65607. salt\-manager
  65608. \&...
  65609. .ft P
  65610. .fi
  65611. .UNINDENT
  65612. .UNINDENT
  65613. .sp
  65614. \fBNOTE:\fP
  65615. .INDENT 0.0
  65616. .INDENT 3.5
  65617. Additional documentation about Scaleway can be found at \fI\%https://www.scaleway.com/docs\fP\&.
  65618. .UNINDENT
  65619. .UNINDENT
  65620. .SS Getting Started With Saltify
  65621. .sp
  65622. The Saltify driver is a driver for installing Salt on existing
  65623. machines (virtual or bare metal).
  65624. .SS Dependencies
  65625. .sp
  65626. The Saltify driver has no external dependencies.
  65627. .SS Configuration
  65628. .sp
  65629. Because the Saltify driver does not use an actual cloud provider host, it can have a
  65630. simple provider configuration. The only thing that is required to be set is the
  65631. driver name, and any other potentially useful information, like the location of
  65632. the salt\-master:
  65633. .INDENT 0.0
  65634. .INDENT 3.5
  65635. .sp
  65636. .nf
  65637. .ft C
  65638. # Note: This example is for /etc/salt/cloud.providers file or any file in
  65639. # the /etc/salt/cloud.providers.d/ directory.
  65640. my\-saltify\-config:
  65641. minion:
  65642. master: 111.222.333.444
  65643. driver: saltify
  65644. .ft P
  65645. .fi
  65646. .UNINDENT
  65647. .UNINDENT
  65648. .sp
  65649. However, if you wish to use the more advanced capabilities of salt\-cloud, such as
  65650. rebooting, listing, and disconnecting machines, then the salt master must fill
  65651. the role usually performed by a vendor\(aqs cloud management system. The salt master
  65652. must be running on the salt\-cloud machine, and created nodes must be connected to the
  65653. master.
  65654. .sp
  65655. Additional information about which configuration options apply to which actions
  65656. can be studied in the
  65657. Saltify Module documentation
  65658. and the
  65659. Miscellaneous Salt Cloud Options
  65660. document.
  65661. .SS Profiles
  65662. .sp
  65663. Saltify requires a separate profile to be configured for each machine that
  65664. needs Salt installed [1]\&. The initial profile can be set up at
  65665. \fB/etc/salt/cloud.profiles\fP
  65666. or in the \fB/etc/salt/cloud.profiles.d/\fP directory. Each profile requires
  65667. both an \fBssh_host\fP and an \fBssh_username\fP key parameter as well as either
  65668. an \fBkey_filename\fP or a \fBpassword\fP\&.
  65669. .IP [1] 5
  65670. Unless you are using a map file to provide the unique parameters.
  65671. .sp
  65672. Profile configuration example:
  65673. .INDENT 0.0
  65674. .INDENT 3.5
  65675. .sp
  65676. .nf
  65677. .ft C
  65678. # /etc/salt/cloud.profiles.d/saltify.conf
  65679. salt\-this\-machine:
  65680. ssh_host: 12.34.56.78
  65681. ssh_username: root
  65682. key_filename: \(aq/etc/salt/mysshkey.pem\(aq
  65683. provider: my\-saltify\-config
  65684. .ft P
  65685. .fi
  65686. .UNINDENT
  65687. .UNINDENT
  65688. .sp
  65689. The machine can now be "Salted" with the following command:
  65690. .INDENT 0.0
  65691. .INDENT 3.5
  65692. .sp
  65693. .nf
  65694. .ft C
  65695. salt\-cloud \-p salt\-this\-machine my\-machine
  65696. .ft P
  65697. .fi
  65698. .UNINDENT
  65699. .UNINDENT
  65700. .sp
  65701. This will install salt on the machine specified by the cloud profile,
  65702. \fBsalt\-this\-machine\fP, and will give the machine the minion id of
  65703. \fBmy\-machine\fP\&. If the command was executed on the salt\-master, its Salt
  65704. key will automatically be accepted by the master.
  65705. .sp
  65706. Once a salt\-minion has been successfully installed on the instance, connectivity
  65707. to it can be verified with Salt:
  65708. .INDENT 0.0
  65709. .INDENT 3.5
  65710. .sp
  65711. .nf
  65712. .ft C
  65713. salt my\-machine test.version
  65714. .ft P
  65715. .fi
  65716. .UNINDENT
  65717. .UNINDENT
  65718. .SS Destroy Options
  65719. .sp
  65720. New in version 2018.3.0.
  65721. .sp
  65722. For obvious reasons, the \fBdestroy\fP action does not actually vaporize hardware.
  65723. If the salt master is connected, it can tear down parts of the client machines.
  65724. It will remove the client\(aqs key from the salt master,
  65725. and can execute the following options:
  65726. .INDENT 0.0
  65727. .INDENT 3.5
  65728. .sp
  65729. .nf
  65730. .ft C
  65731. \- remove_config_on_destroy: true
  65732. # default: true
  65733. # Deactivate salt\-minion on reboot and
  65734. # delete the minion config and key files from its "/etc/salt" directory,
  65735. # NOTE: If deactivation was unsuccessful (older Ubuntu machines) then when
  65736. # salt\-minion restarts it will automatically create a new, unwanted, set
  65737. # of key files. Use the "force_minion_config" option to replace them.
  65738. \- shutdown_on_destroy: false
  65739. # default: false
  65740. # last of all, send a "shutdown" command to the client.
  65741. .ft P
  65742. .fi
  65743. .UNINDENT
  65744. .UNINDENT
  65745. .SS Wake On LAN
  65746. .sp
  65747. New in version 2018.3.0.
  65748. .sp
  65749. In addition to connecting a hardware machine to a Salt master,
  65750. you have the option of sending a wake\-on\-LAN
  65751. \fI\%magic packet\fP
  65752. to start that machine running.
  65753. .sp
  65754. The "magic packet" must be sent by an existing salt minion which is on
  65755. the same network segment as the target machine. (Or your router
  65756. must be set up especially to route WoL packets.) Your target machine
  65757. must be set up to listen for WoL and to respond appropriately.
  65758. .sp
  65759. You must provide the Salt node id of the machine which will send
  65760. the WoL packet (parameter \fBwol_sender_node\fP), and
  65761. the hardware MAC address of the machine you intend to wake,
  65762. (parameter \fBwake_on_lan_mac\fP). If both parameters are defined,
  65763. the WoL will be sent. The cloud master will then sleep a while
  65764. (parameter \fBwol_boot_wait\fP) to give the target machine time to
  65765. boot up before we start probing its SSH port to begin deploying
  65766. Salt to it. The default sleep time is 30 seconds.
  65767. .INDENT 0.0
  65768. .INDENT 3.5
  65769. .sp
  65770. .nf
  65771. .ft C
  65772. # /etc/salt/cloud.profiles.d/saltify.conf
  65773. salt\-this\-machine:
  65774. ssh_host: 12.34.56.78
  65775. ssh_username: root
  65776. key_filename: \(aq/etc/salt/mysshkey.pem\(aq
  65777. provider: my\-saltify\-config
  65778. wake_on_lan_mac: \(aq00:e0:4c:70:2a:b2\(aq # found with ifconfig
  65779. wol_sender_node: bevymaster # its on this network segment
  65780. wol_boot_wait: 45 # seconds to sleep
  65781. .ft P
  65782. .fi
  65783. .UNINDENT
  65784. .UNINDENT
  65785. .SS Using Map Files
  65786. .sp
  65787. The settings explained in the section above may also be set in a map file. An
  65788. example of how to use the Saltify driver with a map file follows:
  65789. .INDENT 0.0
  65790. .INDENT 3.5
  65791. .sp
  65792. .nf
  65793. .ft C
  65794. # /etc/salt/saltify\-map
  65795. make_salty:
  65796. \- my\-instance\-0:
  65797. ssh_host: 12.34.56.78
  65798. ssh_username: root
  65799. password: very\-bad\-password
  65800. \- my\-instance\-1:
  65801. ssh_host: 44.33.22.11
  65802. ssh_username: root
  65803. password: another\-bad\-pass
  65804. .ft P
  65805. .fi
  65806. .UNINDENT
  65807. .UNINDENT
  65808. .sp
  65809. In this example, the names \fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP will be the
  65810. identifiers of the deployed minions.
  65811. .sp
  65812. Note: The \fBssh_host\fP directive is also used for Windows hosts, even though they do
  65813. not typically run the SSH service. It indicates IP address or host name for the target
  65814. system.
  65815. .sp
  65816. Note: When using a cloud map with the Saltify driver, the name of the profile
  65817. to use, in this case \fBmake_salty\fP, must be defined in a profile config. For
  65818. example:
  65819. .INDENT 0.0
  65820. .INDENT 3.5
  65821. .sp
  65822. .nf
  65823. .ft C
  65824. # /etc/salt/cloud.profiles.d/saltify.conf
  65825. make_salty:
  65826. provider: my\-saltify\-config
  65827. .ft P
  65828. .fi
  65829. .UNINDENT
  65830. .UNINDENT
  65831. .sp
  65832. The machines listed in the map file can now be "Salted" by applying the
  65833. following salt map command:
  65834. .INDENT 0.0
  65835. .INDENT 3.5
  65836. .sp
  65837. .nf
  65838. .ft C
  65839. salt\-cloud \-m /etc/salt/saltify\-map
  65840. .ft P
  65841. .fi
  65842. .UNINDENT
  65843. .UNINDENT
  65844. .sp
  65845. This command will install salt on the machines specified in the map and will
  65846. give each machine their minion id of \fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP,
  65847. respectively. If the command was executed on the salt\-master, its Salt key will
  65848. automatically be signed on the master.
  65849. .sp
  65850. Connectivity to the new "Salted" instances can now be verified with Salt:
  65851. .INDENT 0.0
  65852. .INDENT 3.5
  65853. .sp
  65854. .nf
  65855. .ft C
  65856. salt \(aqmy\-instance\-*\(aq test.version
  65857. .ft P
  65858. .fi
  65859. .UNINDENT
  65860. .UNINDENT
  65861. .SS Bulk Deployments
  65862. .sp
  65863. When deploying large numbers of Salt Minions using Saltify, it may be
  65864. preferable to organize the configuration in a way that duplicates data
  65865. as little as possible. For example, if a group of target systems have
  65866. the same credentials, they can be specified in the profile, rather than
  65867. in a map file.
  65868. .INDENT 0.0
  65869. .INDENT 3.5
  65870. .sp
  65871. .nf
  65872. .ft C
  65873. # /etc/salt/cloud.profiles.d/saltify.conf
  65874. make_salty:
  65875. provider: my\-saltify\-config
  65876. ssh_username: root
  65877. password: very\-bad\-password
  65878. .ft P
  65879. .fi
  65880. .UNINDENT
  65881. .UNINDENT
  65882. .INDENT 0.0
  65883. .INDENT 3.5
  65884. .sp
  65885. .nf
  65886. .ft C
  65887. # /etc/salt/saltify\-map
  65888. make_salty:
  65889. \- my\-instance\-0:
  65890. ssh_host: 12.34.56.78
  65891. \- my\-instance\-1:
  65892. ssh_host: 44.33.22.11
  65893. .ft P
  65894. .fi
  65895. .UNINDENT
  65896. .UNINDENT
  65897. .sp
  65898. If \fBssh_host\fP is not provided, its default value will be the Minion identifier
  65899. (\fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP, in the example above). For deployments with
  65900. working DNS resolution, this can save a lot of redundant data in the map. Here is an
  65901. example map file using DNS names instead of IP addresses:
  65902. .INDENT 0.0
  65903. .INDENT 3.5
  65904. .sp
  65905. .nf
  65906. .ft C
  65907. # /etc/salt/saltify\-map
  65908. make_salty:
  65909. \- my\-instance\-0
  65910. \- my\-instance\-1
  65911. .ft P
  65912. .fi
  65913. .UNINDENT
  65914. .UNINDENT
  65915. .SS Credential Verification
  65916. .sp
  65917. Because the Saltify driver does not actually create VM\(aqs, unlike other
  65918. salt\-cloud drivers, it has special behaviour when the \fBdeploy\fP option is set
  65919. to \fBFalse\fP\&. When the cloud configuration specifies \fBdeploy: False\fP, the
  65920. Saltify driver will attempt to authenticate to the target node(s) and return
  65921. \fBTrue\fP for each one that succeeds. This can be useful to verify ports,
  65922. protocols, services and credentials are correctly configured before a live
  65923. deployment.
  65924. .INDENT 0.0
  65925. .TP
  65926. .B Return values:
  65927. .INDENT 7.0
  65928. .IP \(bu 2
  65929. \fBTrue\fP: Credential verification succeeded
  65930. .IP \(bu 2
  65931. \fBFalse\fP: Credential verification succeeded
  65932. .IP \(bu 2
  65933. \fBNone\fP: Credential verification was not attempted.
  65934. .UNINDENT
  65935. .UNINDENT
  65936. .SS Getting Started With SoftLayer
  65937. .sp
  65938. SoftLayer is a public cloud host, and baremetal hardware hosting service.
  65939. .SS Dependencies
  65940. .sp
  65941. The SoftLayer driver for Salt Cloud requires the softlayer package, which is
  65942. available at PyPI:
  65943. .sp
  65944. \fI\%https://pypi.org/project/SoftLayer/\fP
  65945. .sp
  65946. This package can be installed using \fBpip\fP or \fBeasy_install\fP:
  65947. .INDENT 0.0
  65948. .INDENT 3.5
  65949. .sp
  65950. .nf
  65951. .ft C
  65952. # pip install softlayer
  65953. # easy_install softlayer
  65954. .ft P
  65955. .fi
  65956. .UNINDENT
  65957. .UNINDENT
  65958. .SS Configuration
  65959. .sp
  65960. Set up the cloud config at \fB/etc/salt/cloud.providers\fP:
  65961. .INDENT 0.0
  65962. .INDENT 3.5
  65963. .sp
  65964. .nf
  65965. .ft C
  65966. # Note: These examples are for /etc/salt/cloud.providers
  65967. my\-softlayer:
  65968. # Set up the location of the salt master
  65969. minion:
  65970. master: saltmaster.example.com
  65971. # Set the SoftLayer access credentials (see below)
  65972. user: MYUSER1138
  65973. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  65974. driver: softlayer
  65975. my\-softlayer\-hw:
  65976. # Set up the location of the salt master
  65977. minion:
  65978. master: saltmaster.example.com
  65979. # Set the SoftLayer access credentials (see below)
  65980. user: MYUSER1138
  65981. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  65982. driver: softlayer_hw
  65983. .ft P
  65984. .fi
  65985. .UNINDENT
  65986. .UNINDENT
  65987. .sp
  65988. \fBNOTE:\fP
  65989. .INDENT 0.0
  65990. .INDENT 3.5
  65991. Changed in version 2015.8.0.
  65992. .sp
  65993. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65994. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65995. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65996. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65997. to use \fBprovider\fP to refer to provider configurations that you define.
  65998. .UNINDENT
  65999. .UNINDENT
  66000. .SS Access Credentials
  66001. .sp
  66002. The \fBuser\fP setting is the same user as is used to log into the SoftLayer
  66003. Administration area. The \fBapikey\fP setting is found inside the Admin area after
  66004. logging in:
  66005. .INDENT 0.0
  66006. .IP \(bu 2
  66007. Hover over the \fBAccount\fP menu item.
  66008. .IP \(bu 2
  66009. Click the \fBUsers\fP link.
  66010. .IP \(bu 2
  66011. Find the \fBAPI Key\fP column and click \fBView\fP\&.
  66012. .UNINDENT
  66013. .SS Profiles
  66014. .SS Cloud Profiles
  66015. .sp
  66016. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  66017. .INDENT 0.0
  66018. .INDENT 3.5
  66019. .sp
  66020. .nf
  66021. .ft C
  66022. base_softlayer_ubuntu:
  66023. provider: my\-softlayer
  66024. image: UBUNTU_LATEST
  66025. cpu_number: 1
  66026. ram: 1024
  66027. disk_size: 100
  66028. local_disk: True
  66029. hourly_billing: True
  66030. domain: example.com
  66031. location: sjc01
  66032. # Optional
  66033. max_net_speed: 1000
  66034. private_vlan: 396
  66035. private_network: True
  66036. private_ssh: True
  66037. # Use a dedicated host instead of cloud
  66038. dedicated_host_id: 1234
  66039. # May be used _instead_of_ image
  66040. global_identifier: 320d8be5\-46c0\-dead\-cafe\-13e3c51
  66041. .ft P
  66042. .fi
  66043. .UNINDENT
  66044. .UNINDENT
  66045. .sp
  66046. Most of the above items are required; optional items are specified below.
  66047. .SS image
  66048. .sp
  66049. Images to build an instance can be found using the \fB\-\-list\-images\fP option:
  66050. .INDENT 0.0
  66051. .INDENT 3.5
  66052. .sp
  66053. .nf
  66054. .ft C
  66055. # salt\-cloud \-\-list\-images my\-softlayer
  66056. .ft P
  66057. .fi
  66058. .UNINDENT
  66059. .UNINDENT
  66060. .sp
  66061. The setting used will be labeled as \fBtemplate\fP\&.
  66062. .SS cpu_number
  66063. .sp
  66064. This is the number of CPU cores that will be used for this instance. This
  66065. number may be dependent upon the image that is used. For instance:
  66066. .INDENT 0.0
  66067. .INDENT 3.5
  66068. .sp
  66069. .nf
  66070. .ft C
  66071. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (1 \- 4 Core):
  66072. \-\-\-\-\-\-\-\-\-\-
  66073. name:
  66074. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (1 \- 4 Core)
  66075. template:
  66076. REDHAT_6_64
  66077. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (5 \- 100 Core):
  66078. \-\-\-\-\-\-\-\-\-\-
  66079. name:
  66080. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (5 \- 100 Core)
  66081. template:
  66082. REDHAT_6_64
  66083. .ft P
  66084. .fi
  66085. .UNINDENT
  66086. .UNINDENT
  66087. .sp
  66088. Note that the template (meaning, the \fIimage\fP option) for both of these is the
  66089. same, but the names suggests how many CPU cores are supported.
  66090. .SS ram
  66091. .sp
  66092. This is the amount of memory, in megabytes, that will be allocated to this
  66093. instance.
  66094. .SS disk_size
  66095. .sp
  66096. The amount of disk space that will be allocated to this image, in gigabytes.
  66097. .INDENT 0.0
  66098. .INDENT 3.5
  66099. .sp
  66100. .nf
  66101. .ft C
  66102. base_softlayer_ubuntu:
  66103. disk_size: 100
  66104. .ft P
  66105. .fi
  66106. .UNINDENT
  66107. .UNINDENT
  66108. .SS Using Multiple Disks
  66109. .sp
  66110. New in version 2015.8.1.
  66111. .sp
  66112. SoftLayer allows up to 5 disks to be specified for a virtual machine upon
  66113. creation. Multiple disks can be specified either as a list or a comma\-delimited
  66114. string. The first \fBdisk_size\fP specified in the string or list will be the first
  66115. disk size assigned to the VM.
  66116. .sp
  66117. List Example:
  66118. .. code\-block:: yaml
  66119. .INDENT 0.0
  66120. .INDENT 3.5
  66121. .INDENT 0.0
  66122. .TP
  66123. .B base_softlayer_ubuntu:
  66124. disk_size: [\(aq100\(aq, \(aq20\(aq, \(aq20\(aq]
  66125. .UNINDENT
  66126. .UNINDENT
  66127. .UNINDENT
  66128. .sp
  66129. String Example:
  66130. .. code\-block:: yaml
  66131. .INDENT 0.0
  66132. .INDENT 3.5
  66133. .INDENT 0.0
  66134. .TP
  66135. .B base_softlayer_ubuntu:
  66136. disk_size: \(aq100, 20, 20\(aq
  66137. .UNINDENT
  66138. .UNINDENT
  66139. .UNINDENT
  66140. .SS local_disk
  66141. .sp
  66142. When true the disks for the computing instance will be provisioned on the host
  66143. which it runs, otherwise SAN disks will be provisioned.
  66144. .SS hourly_billing
  66145. .sp
  66146. When true the computing instance will be billed on hourly usage, otherwise it
  66147. will be billed on a monthly basis.
  66148. .SS domain
  66149. .sp
  66150. The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
  66151. this instance. The \fIdomain\fP setting will be used in conjunction with the
  66152. instance name to form the FQDN.
  66153. .SS use_fqdn
  66154. .sp
  66155. If set to True, the Minion will be identified by the FQDN (Fully Qualified Domain
  66156. Name) which is a result of combining the \fBdomain\fP configuration value and the
  66157. Minion name specified either via the CLI or a map file rather than only using the
  66158. short host name, or Minion ID. Default is False.
  66159. .sp
  66160. New in version 2016.3.0.
  66161. .sp
  66162. For example, if the value of \fBdomain\fP is \fBexample.com\fP and a new VM was created
  66163. via the CLI with \fBsalt\-cloud \-p base_softlayer_ubuntu my\-vm\fP, the resulting
  66164. Minion ID would be \fBmy\-vm.example.com\fP\&.
  66165. .sp
  66166. \fBNOTE:\fP
  66167. .INDENT 0.0
  66168. .INDENT 3.5
  66169. When enabling the \fBuse_fqdn\fP setting, the Minion ID will be the FQDN and will
  66170. interact with salt commands with the FQDN instead of the short hostname. However,
  66171. due to the way the SoftLayer API is constructed, some Salt Cloud functions such
  66172. as listing nodes or destroying VMs will only list the short hostname of the VM
  66173. instead of the FQDN.
  66174. .UNINDENT
  66175. .UNINDENT
  66176. .sp
  66177. Example output displaying the SoftLayer hostname quirk mentioned in the note above
  66178. (note the Minion ID is \fBmy\-vm.example.com\fP, but the VM to be destroyed is listed
  66179. with its short hostname, \fBmy\-vm\fP):
  66180. .INDENT 0.0
  66181. .INDENT 3.5
  66182. .sp
  66183. .nf
  66184. .ft C
  66185. # salt\-key \-L
  66186. Accepted Keys:
  66187. my\-vm.example.com
  66188. Denied Keys:
  66189. Unaccepted Keys:
  66190. Rejected Keys:
  66191. #
  66192. #
  66193. # salt my\-vm.example.com test.version
  66194. my\-vm.example.com:
  66195. 2018.3.4
  66196. #
  66197. #
  66198. # salt\-cloud \-d my\-vm.example.com
  66199. [INFO ] salt\-cloud starting
  66200. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
  66201. The following virtual machines are set to be destroyed:
  66202. softlayer\-config:
  66203. softlayer:
  66204. my\-vm
  66205. Proceed? [N/y] y
  66206. \&... proceeding
  66207. [INFO ] Destroying in non\-parallel mode.
  66208. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
  66209. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Virtual_Guest
  66210. softlayer\-config:
  66211. \-\-\-\-\-\-\-\-\-\-
  66212. softlayer:
  66213. \-\-\-\-\-\-\-\-\-\-
  66214. my\-vm:
  66215. True
  66216. .ft P
  66217. .fi
  66218. .UNINDENT
  66219. .UNINDENT
  66220. .SS location
  66221. .sp
  66222. Images to build an instance can be found using the \fI\-\-list\-locations\fP option:
  66223. .INDENT 0.0
  66224. .INDENT 3.5
  66225. .sp
  66226. .nf
  66227. .ft C
  66228. # salt\-cloud \-\-list\-location my\-softlayer
  66229. .ft P
  66230. .fi
  66231. .UNINDENT
  66232. .UNINDENT
  66233. .SS max_net_speed
  66234. .sp
  66235. Specifies the connection speed for the instance\(aqs network components. This
  66236. setting is optional. By default, this is set to 10.
  66237. .SS post_uri
  66238. .sp
  66239. Specifies the uri location of the script to be downloaded and run after the instance
  66240. is provisioned.
  66241. .sp
  66242. New in version 2015.8.1.
  66243. .sp
  66244. Example:
  66245. .. code\-block:: yaml
  66246. .INDENT 0.0
  66247. .INDENT 3.5
  66248. .INDENT 0.0
  66249. .TP
  66250. .B base_softlayer_ubuntu:
  66251. post_uri: \(aq\fI\%https://SOMESERVERIP:8000/myscript.sh\fP\(aq
  66252. .UNINDENT
  66253. .UNINDENT
  66254. .UNINDENT
  66255. .SS public_vlan
  66256. .sp
  66257. If it is necessary for an instance to be created within a specific frontend
  66258. VLAN, the ID for that VLAN can be specified in either the provider or profile
  66259. configuration.
  66260. .sp
  66261. This ID can be queried using the \fIlist_vlans\fP function, as described below. This
  66262. setting is optional.
  66263. .sp
  66264. If this setting is set to \fINone\fP, salt\-cloud will connect to the private ip of
  66265. the server.
  66266. .sp
  66267. \fBNOTE:\fP
  66268. .INDENT 0.0
  66269. .INDENT 3.5
  66270. If this setting is not provided and the server is not built with a public
  66271. vlan, \fIprivate_ssh\fP or \fIprivate_wds\fP will need to be set to make sure that
  66272. salt\-cloud attempts to connect to the private ip.
  66273. .UNINDENT
  66274. .UNINDENT
  66275. .SS private_vlan
  66276. .sp
  66277. If it is necessary for an instance to be created within a specific backend VLAN,
  66278. the ID for that VLAN can be specified in either the provider or profile
  66279. configuration.
  66280. .sp
  66281. This ID can be queried using the \fIlist_vlans\fP function, as described below. This
  66282. setting is optional.
  66283. .SS private_network
  66284. .sp
  66285. If a server is to only be used internally, meaning it does not have a public
  66286. VLAN associated with it, this value would be set to True. This setting is
  66287. optional. The default is False.
  66288. .SS private_ssh or private_wds
  66289. .sp
  66290. Whether to run the deploy script on the server using the public IP address
  66291. or the private IP address. If set to True, Salt Cloud will attempt to SSH or
  66292. WinRM into the new server using the private IP address. The default is False.
  66293. This settiong is optional.
  66294. .SS global_identifier
  66295. .sp
  66296. When creating an instance using a custom template, this option is set to the
  66297. corresponding value obtained using the \fIlist_custom_images\fP function. This
  66298. option will not be used if an \fIimage\fP is set, and if an \fIimage\fP is not set, it
  66299. is required.
  66300. .sp
  66301. The profile can be realized now with a salt command:
  66302. .INDENT 0.0
  66303. .INDENT 3.5
  66304. .sp
  66305. .nf
  66306. .ft C
  66307. # salt\-cloud \-p base_softlayer_ubuntu myserver
  66308. .ft P
  66309. .fi
  66310. .UNINDENT
  66311. .UNINDENT
  66312. .sp
  66313. Using the above configuration, this will create \fImyserver.example.com\fP\&.
  66314. .sp
  66315. Once the instance has been created with salt\-minion installed, connectivity to
  66316. it can be verified with Salt:
  66317. .INDENT 0.0
  66318. .INDENT 3.5
  66319. .sp
  66320. .nf
  66321. .ft C
  66322. # salt \(aqmyserver.example.com\(aq test.version
  66323. .ft P
  66324. .fi
  66325. .UNINDENT
  66326. .UNINDENT
  66327. .SS Dedicated Host
  66328. .sp
  66329. Soflayer allows the creation of new VMs in a dedicated host. This means that
  66330. you can order and pay a fixed amount for a bare metal dedicated host and use
  66331. it to provision as many VMs as you can fit in there. If you want your VMs to
  66332. be launched in a dedicated host, instead of Sofltayer\(aqs cloud, set the
  66333. \fBdedicated_host_id\fP parameter in your profile.
  66334. .SS dedicated_host_id
  66335. .sp
  66336. The id of the dedicated host where the VMs should be created. If not set, VMs
  66337. will be created in Softlayer\(aqs cloud instead.
  66338. .SS Bare metal Profiles
  66339. .sp
  66340. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  66341. .INDENT 0.0
  66342. .INDENT 3.5
  66343. .sp
  66344. .nf
  66345. .ft C
  66346. base_softlayer_hw_centos:
  66347. provider: my\-softlayer\-hw
  66348. # CentOS 6.0 \- Minimal Install (64 bit)
  66349. image: 13963
  66350. # 2 x 2.0 GHz Core Bare Metal Instance \- 2 GB Ram
  66351. size: 1921
  66352. # 500GB SATA II
  66353. hdd: 1267
  66354. # San Jose 01
  66355. location: 168642
  66356. domain: example.com
  66357. # Optional
  66358. vlan: 396
  66359. port_speed: 273
  66360. banwidth: 248
  66361. .ft P
  66362. .fi
  66363. .UNINDENT
  66364. .UNINDENT
  66365. .sp
  66366. Most of the above items are required; optional items are specified below.
  66367. .SS image
  66368. .sp
  66369. Images to build an instance can be found using the \fI\-\-list\-images\fP option:
  66370. .INDENT 0.0
  66371. .INDENT 3.5
  66372. .sp
  66373. .nf
  66374. .ft C
  66375. # salt\-cloud \-\-list\-images my\-softlayer\-hw
  66376. .ft P
  66377. .fi
  66378. .UNINDENT
  66379. .UNINDENT
  66380. .sp
  66381. A list of \fIid\(gas and names will be provided. The \(ganame\fP will describe the
  66382. operating system and architecture. The \fIid\fP will be the setting to be used in
  66383. the profile.
  66384. .SS size
  66385. .sp
  66386. Sizes to build an instance can be found using the \fI\-\-list\-sizes\fP option:
  66387. .INDENT 0.0
  66388. .INDENT 3.5
  66389. .sp
  66390. .nf
  66391. .ft C
  66392. # salt\-cloud \-\-list\-sizes my\-softlayer\-hw
  66393. .ft P
  66394. .fi
  66395. .UNINDENT
  66396. .UNINDENT
  66397. .sp
  66398. A list of \fIid\(gas and names will be provided. The \(ganame\fP will describe the speed
  66399. and quantity of CPU cores, and the amount of memory that the hardware will
  66400. contain. The \fIid\fP will be the setting to be used in the profile.
  66401. .SS hdd
  66402. .sp
  66403. There is currently only one size of hard disk drive (HDD) that is available for
  66404. hardware instances on SoftLayer:
  66405. .INDENT 0.0
  66406. .INDENT 3.5
  66407. .sp
  66408. .nf
  66409. .ft C
  66410. 1267: 500GB SATA II
  66411. .ft P
  66412. .fi
  66413. .UNINDENT
  66414. .UNINDENT
  66415. .sp
  66416. The \fIhdd\fP setting in the profile should be 1267. Other sizes may be
  66417. added in the future.
  66418. .SS location
  66419. .sp
  66420. Locations to build an instance can be found using the \fI\-\-list\-images\fP option:
  66421. .INDENT 0.0
  66422. .INDENT 3.5
  66423. .sp
  66424. .nf
  66425. .ft C
  66426. # salt\-cloud \-\-list\-locations my\-softlayer\-hw
  66427. .ft P
  66428. .fi
  66429. .UNINDENT
  66430. .UNINDENT
  66431. .sp
  66432. A list of IDs and names will be provided. The \fIlocation\fP will describe the
  66433. location in human terms. The \fIid\fP will be the setting to be used in the profile.
  66434. .SS domain
  66435. .sp
  66436. The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
  66437. this instance. The \fIdomain\fP setting will be used in conjunction with the
  66438. instance name to form the FQDN.
  66439. .SS vlan
  66440. .sp
  66441. If it is necessary for an instance to be created within a specific VLAN, the ID
  66442. for that VLAN can be specified in either the provider or profile configuration.
  66443. .sp
  66444. This ID can be queried using the \fIlist_vlans\fP function, as described below.
  66445. .SS port_speed
  66446. .sp
  66447. Specifies the speed for the instance\(aqs network port. This setting refers to an
  66448. ID within the SoftLayer API, which sets the port speed. This setting is
  66449. optional. The default is 273, or, 100 Mbps Public & Private Networks. The
  66450. following settings are available:
  66451. .INDENT 0.0
  66452. .IP \(bu 2
  66453. 273: 100 Mbps Public & Private Networks
  66454. .IP \(bu 2
  66455. 274: 1 Gbps Public & Private Networks
  66456. .IP \(bu 2
  66457. 21509: 10 Mbps Dual Public & Private Networks (up to 20 Mbps)
  66458. .IP \(bu 2
  66459. 21513: 100 Mbps Dual Public & Private Networks (up to 200 Mbps)
  66460. .IP \(bu 2
  66461. 2314: 1 Gbps Dual Public & Private Networks (up to 2 Gbps)
  66462. .IP \(bu 2
  66463. 272: 10 Mbps Public & Private Networks
  66464. .UNINDENT
  66465. .SS bandwidth
  66466. .sp
  66467. Specifies the network bandwidth available for the instance. This setting refers
  66468. to an ID within the SoftLayer API, which sets the bandwidth. This setting is
  66469. optional. The default is 248, or, 5000 GB Bandwidth. The following settings are
  66470. available:
  66471. .INDENT 0.0
  66472. .IP \(bu 2
  66473. 248: 5000 GB Bandwidth
  66474. .IP \(bu 2
  66475. 129: 6000 GB Bandwidth
  66476. .IP \(bu 2
  66477. 130: 8000 GB Bandwidth
  66478. .IP \(bu 2
  66479. 131: 10000 GB Bandwidth
  66480. .IP \(bu 2
  66481. 36: Unlimited Bandwidth (10 Mbps Uplink)
  66482. .IP \(bu 2
  66483. 125: Unlimited Bandwidth (100 Mbps Uplink)
  66484. .UNINDENT
  66485. .SS Actions
  66486. .sp
  66487. The following actions are currently supported by the SoftLayer Salt Cloud
  66488. driver.
  66489. .SS show_instance
  66490. .sp
  66491. This action is a thin wrapper around \fI\-\-full\-query\fP, which displays details on a
  66492. single instance only. In an environment with several machines, this will save a
  66493. user from having to sort through all instance data, just to examine a single
  66494. instance.
  66495. .INDENT 0.0
  66496. .INDENT 3.5
  66497. .sp
  66498. .nf
  66499. .ft C
  66500. $ salt\-cloud \-a show_instance myinstance
  66501. .ft P
  66502. .fi
  66503. .UNINDENT
  66504. .UNINDENT
  66505. .SS Functions
  66506. .sp
  66507. The following functions are currently supported by the SoftLayer Salt Cloud
  66508. driver.
  66509. .SS list_vlans
  66510. .sp
  66511. This function lists all VLANs associated with the account, and all known data
  66512. from the SoftLayer API concerning those VLANs.
  66513. .INDENT 0.0
  66514. .INDENT 3.5
  66515. .sp
  66516. .nf
  66517. .ft C
  66518. $ salt\-cloud \-f list_vlans my\-softlayer
  66519. $ salt\-cloud \-f list_vlans my\-softlayer\-hw
  66520. .ft P
  66521. .fi
  66522. .UNINDENT
  66523. .UNINDENT
  66524. .sp
  66525. The \fIid\fP returned in this list is necessary for the \fIvlan\fP option when creating
  66526. an instance.
  66527. .SS list_custom_images
  66528. .sp
  66529. This function lists any custom templates associated with the account, that can
  66530. be used to create a new instance.
  66531. .INDENT 0.0
  66532. .INDENT 3.5
  66533. .sp
  66534. .nf
  66535. .ft C
  66536. $ salt\-cloud \-f list_custom_images my\-softlayer
  66537. .ft P
  66538. .fi
  66539. .UNINDENT
  66540. .UNINDENT
  66541. .sp
  66542. The \fIglobalIdentifier\fP returned in this list is necessary for the
  66543. \fIglobal_identifier\fP option when creating an image using a custom template.
  66544. .SS Optional Products for SoftLayer HW
  66545. .sp
  66546. The softlayer_hw driver supports the ability to add optional products, which
  66547. are supported by SoftLayer\(aqs API. These products each have an ID associated with
  66548. them, that can be passed into Salt Cloud with the \fIoptional_products\fP option:
  66549. .INDENT 0.0
  66550. .INDENT 3.5
  66551. .sp
  66552. .nf
  66553. .ft C
  66554. softlayer_hw_test:
  66555. provider: my\-softlayer\-hw
  66556. # CentOS 6.0 \- Minimal Install (64 bit)
  66557. image: 13963
  66558. # 2 x 2.0 GHz Core Bare Metal Instance \- 2 GB Ram
  66559. size: 1921
  66560. # 500GB SATA II
  66561. hdd: 1267
  66562. # San Jose 01
  66563. location: 168642
  66564. domain: example.com
  66565. optional_products:
  66566. # MySQL for Linux
  66567. \- id: 28
  66568. # Business Continuance Insurance
  66569. \- id: 104
  66570. .ft P
  66571. .fi
  66572. .UNINDENT
  66573. .UNINDENT
  66574. .sp
  66575. These values can be manually obtained by looking at the source of an order page
  66576. on the SoftLayer web interface. For convenience, many of these values are listed
  66577. here:
  66578. .SS Public Secondary IP Addresses
  66579. .INDENT 0.0
  66580. .IP \(bu 2
  66581. 22: 4 Public IP Addresses
  66582. .IP \(bu 2
  66583. 23: 8 Public IP Addresses
  66584. .UNINDENT
  66585. .SS Primary IPv6 Addresses
  66586. .INDENT 0.0
  66587. .IP \(bu 2
  66588. 17129: 1 IPv6 Address
  66589. .UNINDENT
  66590. .SS Public Static IPv6 Addresses
  66591. .INDENT 0.0
  66592. .IP \(bu 2
  66593. 1481: /64 Block Static Public IPv6 Addresses
  66594. .UNINDENT
  66595. .SS OS\-Specific Addon
  66596. .INDENT 0.0
  66597. .IP \(bu 2
  66598. 17139: XenServer Advanced for XenServer 6.x
  66599. .IP \(bu 2
  66600. 17141: XenServer Enterprise for XenServer 6.x
  66601. .IP \(bu 2
  66602. 2334: XenServer Advanced for XenServer 5.6
  66603. .IP \(bu 2
  66604. 2335: XenServer Enterprise for XenServer 5.6
  66605. .IP \(bu 2
  66606. 13915: Microsoft WebMatrix
  66607. .IP \(bu 2
  66608. 21276: VMware vCenter 5.1 Standard
  66609. .UNINDENT
  66610. .SS Control Panel Software
  66611. .INDENT 0.0
  66612. .IP \(bu 2
  66613. 121: cPanel/WHM with Fantastico and RVskin
  66614. .IP \(bu 2
  66615. 20778: Parallels Plesk Panel 11 (Linux) 100 Domain w/ Power Pack
  66616. .IP \(bu 2
  66617. 20786: Parallels Plesk Panel 11 (Windows) 100 Domain w/ Power Pack
  66618. .IP \(bu 2
  66619. 20787: Parallels Plesk Panel 11 (Linux) Unlimited Domain w/ Power Pack
  66620. .IP \(bu 2
  66621. 20792: Parallels Plesk Panel 11 (Windows) Unlimited Domain w/ Power Pack
  66622. .IP \(bu 2
  66623. 2340: Parallels Plesk Panel 10 (Linux) 100 Domain w/ Power Pack
  66624. .IP \(bu 2
  66625. 2339: Parallels Plesk Panel 10 (Linux) Unlimited Domain w/ Power Pack
  66626. .IP \(bu 2
  66627. 13704: Parallels Plesk Panel 10 (Windows) Unlimited Domain w/ Power Pack
  66628. .UNINDENT
  66629. .SS Database Software
  66630. .INDENT 0.0
  66631. .IP \(bu 2
  66632. 29: MySQL 5.0 for Windows
  66633. .IP \(bu 2
  66634. 28: MySQL for Linux
  66635. .IP \(bu 2
  66636. 21501: Riak 1.x
  66637. .IP \(bu 2
  66638. 20893: MongoDB
  66639. .IP \(bu 2
  66640. 30: Microsoft SQL Server 2005 Express
  66641. .IP \(bu 2
  66642. 92: Microsoft SQL Server 2005 Workgroup
  66643. .IP \(bu 2
  66644. 90: Microsoft SQL Server 2005 Standard
  66645. .IP \(bu 2
  66646. 94: Microsoft SQL Server 2005 Enterprise
  66647. .IP \(bu 2
  66648. 1330: Microsoft SQL Server 2008 Express
  66649. .IP \(bu 2
  66650. 1340: Microsoft SQL Server 2008 Web
  66651. .IP \(bu 2
  66652. 1337: Microsoft SQL Server 2008 Workgroup
  66653. .IP \(bu 2
  66654. 1334: Microsoft SQL Server 2008 Standard
  66655. .IP \(bu 2
  66656. 1331: Microsoft SQL Server 2008 Enterprise
  66657. .IP \(bu 2
  66658. 2179: Microsoft SQL Server 2008 Express R2
  66659. .IP \(bu 2
  66660. 2173: Microsoft SQL Server 2008 Web R2
  66661. .IP \(bu 2
  66662. 2183: Microsoft SQL Server 2008 Workgroup R2
  66663. .IP \(bu 2
  66664. 2180: Microsoft SQL Server 2008 Standard R2
  66665. .IP \(bu 2
  66666. 2176: Microsoft SQL Server 2008 Enterprise R2
  66667. .UNINDENT
  66668. .SS Anti\-Virus & Spyware Protection
  66669. .INDENT 0.0
  66670. .IP \(bu 2
  66671. 594: McAfee VirusScan Anti\-Virus \- Windows
  66672. .IP \(bu 2
  66673. 414: McAfee Total Protection \- Windows
  66674. .UNINDENT
  66675. .SS Insurance
  66676. .INDENT 0.0
  66677. .IP \(bu 2
  66678. 104: Business Continuance Insurance
  66679. .UNINDENT
  66680. .SS Monitoring
  66681. .INDENT 0.0
  66682. .IP \(bu 2
  66683. 55: Host Ping
  66684. .IP \(bu 2
  66685. 56: Host Ping and TCP Service Monitoring
  66686. .UNINDENT
  66687. .SS Notification
  66688. .INDENT 0.0
  66689. .IP \(bu 2
  66690. 57: Email and Ticket
  66691. .UNINDENT
  66692. .SS Advanced Monitoring
  66693. .INDENT 0.0
  66694. .IP \(bu 2
  66695. 2302: Monitoring Package \- Basic
  66696. .IP \(bu 2
  66697. 2303: Monitoring Package \- Advanced
  66698. .IP \(bu 2
  66699. 2304: Monitoring Package \- Premium Application
  66700. .UNINDENT
  66701. .SS Response
  66702. .INDENT 0.0
  66703. .IP \(bu 2
  66704. 58: Automated Notification
  66705. .IP \(bu 2
  66706. 59: Automated Reboot from Monitoring
  66707. .IP \(bu 2
  66708. 60: 24x7x365 NOC Monitoring, Notification, and Response
  66709. .UNINDENT
  66710. .SS Intrusion Detection & Protection
  66711. .INDENT 0.0
  66712. .IP \(bu 2
  66713. 413: McAfee Host Intrusion Protection w/Reporting
  66714. .UNINDENT
  66715. .SS Hardware & Software Firewalls
  66716. .INDENT 0.0
  66717. .IP \(bu 2
  66718. 411: APF Software Firewall for Linux
  66719. .IP \(bu 2
  66720. 894: Microsoft Windows Firewall
  66721. .IP \(bu 2
  66722. 410: 10Mbps Hardware Firewall
  66723. .IP \(bu 2
  66724. 409: 100Mbps Hardware Firewall
  66725. .IP \(bu 2
  66726. 408: 1000Mbps Hardware Firewall
  66727. .UNINDENT
  66728. .SS Getting Started With Tencent Cloud
  66729. .sp
  66730. Tencent Cloud is a secure, reliable and high\-performance cloud compute service
  66731. provided by Tencent. It is the 2nd largest Cloud Provider in China.
  66732. .SS Dependencies
  66733. .sp
  66734. The Tencent Cloud driver for Salt Cloud requires the \fBtencentcloud\-sdk\-python\fP package,
  66735. which is available at PyPI:
  66736. .sp
  66737. \fI\%https://pypi.org/project/tencentcloud\-sdk\-python/\fP
  66738. .sp
  66739. This package can be installed using \fBpip\fP or \fBeasy_install\fP:
  66740. .INDENT 0.0
  66741. .INDENT 3.5
  66742. .sp
  66743. .nf
  66744. .ft C
  66745. # pip install tencentcloud\-sdk\-python
  66746. # easy_install tencentcloud\-sdk\-python
  66747. .ft P
  66748. .fi
  66749. .UNINDENT
  66750. .UNINDENT
  66751. .SS Provider Configuration
  66752. .INDENT 0.0
  66753. .TP
  66754. .B To use this module, set up the cloud configuration at
  66755. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/*.conf\fP:
  66756. .UNINDENT
  66757. .INDENT 0.0
  66758. .INDENT 3.5
  66759. .sp
  66760. .nf
  66761. .ft C
  66762. my\-tencentcloud\-config:
  66763. driver: tencentcloud
  66764. # Tencent Cloud Secret Id
  66765. id: AKIDA64pOio9BMemkApzevX0HS169S4b750A
  66766. # Tencent Cloud Secret Key
  66767. key: 8r2xmPn0C5FDvRAlmcJimiTZKVRsk260
  66768. # Tencent Cloud Region
  66769. location: ap\-guangzhou
  66770. .ft P
  66771. .fi
  66772. .UNINDENT
  66773. .UNINDENT
  66774. .SS Configuration Parameters
  66775. .SS driver
  66776. .sp
  66777. \fBRequired\fP\&. \fBtencentcloud\fP to use this module.
  66778. .SS id
  66779. .sp
  66780. \fBRequired\fP\&. Your Tencent Cloud secret id.
  66781. .SS key
  66782. .sp
  66783. \fBRequired\fP\&. Your Tencent Cloud secret key.
  66784. .SS location
  66785. .sp
  66786. \fBOptional\fP\&. If this value is not specified, the default is \fBap\-guangzhou\fP\&.
  66787. Available locations can be found using the \fB\-\-list\-locations\fP option:
  66788. .INDENT 0.0
  66789. .INDENT 3.5
  66790. .sp
  66791. .nf
  66792. .ft C
  66793. # salt\-cloud \-\-list\-location my\-tencentcloud\-config
  66794. .ft P
  66795. .fi
  66796. .UNINDENT
  66797. .UNINDENT
  66798. .SS Profile Configuration
  66799. .sp
  66800. Tencent Cloud profiles require a \fBprovider\fP, \fBavailability_zone\fP, \fBimage\fP and \fBsize\fP\&.
  66801. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  66802. .INDENT 0.0
  66803. .INDENT 3.5
  66804. .sp
  66805. .nf
  66806. .ft C
  66807. tencentcloud\-guangzhou\-s1sm1:
  66808. provider: my\-tencentcloud\-config
  66809. availability_zone: ap\-guangzhou\-3
  66810. image: img\-31tjrtph
  66811. size: S1.SMALL1
  66812. allocate_public_ip: True
  66813. internet_max_bandwidth_out: 1
  66814. password: \(aq153e41ec96140152\(aq
  66815. securitygroups:
  66816. \- sg\-5e90804b
  66817. .ft P
  66818. .fi
  66819. .UNINDENT
  66820. .UNINDENT
  66821. .SS Configuration Parameters
  66822. .SS provider
  66823. .sp
  66824. \fBRequired\fP\&. Name of entry in \fBsalt/cloud.providers.d/???\fP file.
  66825. .SS availability_zone
  66826. .sp
  66827. \fBRequired\fP\&. The availability zone that the instance is located in.
  66828. Available zones can be found using the \fBlist_availability_zones\fP function:
  66829. .INDENT 0.0
  66830. .INDENT 3.5
  66831. .sp
  66832. .nf
  66833. .ft C
  66834. # salt\-cloud \-f list_availability_zones my\-tencentcloud\-config
  66835. .ft P
  66836. .fi
  66837. .UNINDENT
  66838. .UNINDENT
  66839. .SS image
  66840. .sp
  66841. \fBRequired\fP\&. The image id to use for the instance.
  66842. Available images can be found using the \fB\-\-list\-images\fP option:
  66843. .INDENT 0.0
  66844. .INDENT 3.5
  66845. .sp
  66846. .nf
  66847. .ft C
  66848. # salt\-cloud \-\-list\-images my\-tencentcloud\-config
  66849. .ft P
  66850. .fi
  66851. .UNINDENT
  66852. .UNINDENT
  66853. .SS size
  66854. .sp
  66855. \fBRequired\fP\&. Instance type for instance can be found using the \fB\-\-list\-sizes\fP option.
  66856. .INDENT 0.0
  66857. .INDENT 3.5
  66858. .sp
  66859. .nf
  66860. .ft C
  66861. # salt\-cloud \-\-list\-sizes my\-tencentcloud\-config
  66862. .ft P
  66863. .fi
  66864. .UNINDENT
  66865. .UNINDENT
  66866. .SS securitygroups
  66867. .sp
  66868. \fBOptional\fP\&. A list of security group ids to associate with.
  66869. Available security group ids can be found using the \fBlist_securitygroups\fP function:
  66870. .INDENT 0.0
  66871. .INDENT 3.5
  66872. .sp
  66873. .nf
  66874. .ft C
  66875. # salt\-cloud \-f list_securitygroups my\-tencentcloud\-config
  66876. .ft P
  66877. .fi
  66878. .UNINDENT
  66879. .UNINDENT
  66880. .sp
  66881. Multiple security groups are supported:
  66882. .INDENT 0.0
  66883. .INDENT 3.5
  66884. .sp
  66885. .nf
  66886. .ft C
  66887. tencentcloud\-guangzhou\-s1sm1:
  66888. securitygroups:
  66889. \- sg\-5e90804b
  66890. \- sg\-8kpynf2t
  66891. .ft P
  66892. .fi
  66893. .UNINDENT
  66894. .UNINDENT
  66895. .SS hostname
  66896. .sp
  66897. \fBOptional\fP\&. The hostname of the instance.
  66898. .SS instance_charge_type
  66899. .sp
  66900. \fBOptional\fP\&. The charge type of the instance. Valid values are \fBPREPAID\fP,
  66901. \fBPOSTPAID_BY_HOUR\fP and \fBSPOTPAID\fP\&. The default is \fBPOSTPAID_BY_HOUR\fP\&.
  66902. .SS instance_charge_type_prepaid_renew_flag
  66903. .sp
  66904. \fBOptional\fP\&. When enabled, the instance will be renew automatically
  66905. when it reaches the end of the prepaid tenancy.
  66906. Valid values are \fBNOTIFY_AND_AUTO_RENEW\fP, \fBNOTIFY_AND_MANUAL_RENEW\fP and \fBDISABLE_NOTIFY_AND_MANUAL_RENEW\fP\&.
  66907. .sp
  66908. \fBNOTE:\fP
  66909. .INDENT 0.0
  66910. .INDENT 3.5
  66911. This value is only used when \fBinstance_charge_type\fP is set to \fBPREPAID\fP\&.
  66912. .UNINDENT
  66913. .UNINDENT
  66914. .SS instance_charge_type_prepaid_period
  66915. .sp
  66916. \fBOptional\fP\&. The tenancy time in months of the prepaid instance,
  66917. Valid values are \fB1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36\fP\&.
  66918. .sp
  66919. \fBNOTE:\fP
  66920. .INDENT 0.0
  66921. .INDENT 3.5
  66922. This value is only used when \fBinstance_charge_type\fP is set to \fBPREPAID\fP\&.
  66923. .UNINDENT
  66924. .UNINDENT
  66925. .SS allocate_public_ip
  66926. .sp
  66927. \fBOptional\fP\&. Associate a public ip address with an instance
  66928. in a VPC or Classic. Boolean value, default is \fBfalse\fP\&.
  66929. .SS internet_max_bandwidth_out
  66930. .sp
  66931. \fBOptional\fP\&. Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bits per second).
  66932. Value range: \fB[0, 100]\fP\&. If this value is not specified, the default is \fB0\fP Mbps.
  66933. .SS internet_charge_type
  66934. .sp
  66935. \fBOptional\fP\&. Internet charge type of the instance. Valid values are \fBBANDWIDTH_PREPAID\fP,
  66936. \fBTRAFFIC_POSTPAID_BY_HOUR\fP, \fBBANDWIDTH_POSTPAID_BY_HOUR\fP and \fBBANDWIDTH_PACKAGE\fP\&.
  66937. The default is \fBTRAFFIC_POSTPAID_BY_HOUR\fP\&.
  66938. .SS key_name
  66939. .sp
  66940. \fBOptional\fP\&. The key pair to use for the instance, for example \fBskey\-16jig7tx\fP\&.
  66941. .SS password
  66942. .sp
  66943. \fBOptional\fP\&. Login password for the instance.
  66944. .SS private_ip
  66945. .sp
  66946. \fBOptional\fP\&. The private ip to be assigned to this instance,
  66947. must be in the provided subnet and available.
  66948. .SS project_id
  66949. .sp
  66950. \fBOptional\fP\&. The project this instance belongs to, defaults to \fB0\fP\&.
  66951. .SS vpc_id
  66952. .sp
  66953. \fBOptional\fP\&. The id of a VPC network.
  66954. If you want to create instances in a VPC network, this parameter must be set.
  66955. .SS subnet_id
  66956. .sp
  66957. \fBOptional\fP\&. The id of a VPC subnet.
  66958. If you want to create instances in VPC network, this parameter must be set.
  66959. .SS system_disk_size
  66960. .sp
  66961. \fBOptional\fP\&. Size of the system disk.
  66962. Value range: \fB[50, 1000]\fP, and unit is \fBGB\fP\&. Default is \fB50\fP GB.
  66963. .SS system_disk_type
  66964. .sp
  66965. \fBOptional\fP\&. Type of the system disk.
  66966. Valid values are \fBCLOUD_BASIC\fP, \fBCLOUD_SSD\fP and \fBCLOUD_PREMIUM\fP, default value is \fBCLOUD_BASIC\fP\&.
  66967. .SS Actions
  66968. .sp
  66969. The following actions are supported by the Tencent Cloud Salt Cloud driver.
  66970. .SS show_instance
  66971. .sp
  66972. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  66973. single instance only. In an environment with several machines, this will save a
  66974. user from having to sort through all instance data, just to examine a single
  66975. instance.
  66976. .INDENT 0.0
  66977. .INDENT 3.5
  66978. .sp
  66979. .nf
  66980. .ft C
  66981. $ salt\-cloud \-a show_instance myinstance
  66982. .ft P
  66983. .fi
  66984. .UNINDENT
  66985. .UNINDENT
  66986. .SS show_disk
  66987. .sp
  66988. Return disk details about a specific instance.
  66989. .INDENT 0.0
  66990. .INDENT 3.5
  66991. .sp
  66992. .nf
  66993. .ft C
  66994. $ salt\-cloud \-a show_disk myinstance
  66995. .ft P
  66996. .fi
  66997. .UNINDENT
  66998. .UNINDENT
  66999. .SS destroy
  67000. .sp
  67001. Destroy a Tencent Cloud instance.
  67002. .INDENT 0.0
  67003. .INDENT 3.5
  67004. .sp
  67005. .nf
  67006. .ft C
  67007. $ salt\-cloud \-a destroy myinstance
  67008. .ft P
  67009. .fi
  67010. .UNINDENT
  67011. .UNINDENT
  67012. .SS start
  67013. .sp
  67014. Start a Tencent Cloud instance.
  67015. .INDENT 0.0
  67016. .INDENT 3.5
  67017. .sp
  67018. .nf
  67019. .ft C
  67020. $ salt\-cloud \-a start myinstance
  67021. .ft P
  67022. .fi
  67023. .UNINDENT
  67024. .UNINDENT
  67025. .SS stop
  67026. .sp
  67027. Stop a Tencent Cloud instance.
  67028. .INDENT 0.0
  67029. .INDENT 3.5
  67030. .sp
  67031. .nf
  67032. .ft C
  67033. $ salt\-cloud \-a stop myinstance
  67034. .ft P
  67035. .fi
  67036. .UNINDENT
  67037. .UNINDENT
  67038. .SS reboot
  67039. .sp
  67040. Reboot a Tencent Cloud instance.
  67041. .INDENT 0.0
  67042. .INDENT 3.5
  67043. .sp
  67044. .nf
  67045. .ft C
  67046. $ salt\-cloud \-a reboot myinstance
  67047. .ft P
  67048. .fi
  67049. .UNINDENT
  67050. .UNINDENT
  67051. .SS Functions
  67052. .sp
  67053. The following functions are currently supported by the Tencent Cloud Salt Cloud driver.
  67054. .SS list_securitygroups
  67055. .sp
  67056. Lists all Tencent Cloud security groups in current region.
  67057. .INDENT 0.0
  67058. .INDENT 3.5
  67059. .sp
  67060. .nf
  67061. .ft C
  67062. $ salt\-cloud \-f list_securitygroups my\-tencentcloud\-config
  67063. .ft P
  67064. .fi
  67065. .UNINDENT
  67066. .UNINDENT
  67067. .SS list_availability_zones
  67068. .sp
  67069. Lists all Tencent Cloud availability zones in current region.
  67070. .INDENT 0.0
  67071. .INDENT 3.5
  67072. .sp
  67073. .nf
  67074. .ft C
  67075. $ salt\-cloud \-f list_availability_zones my\-tencentcloud\-config
  67076. .ft P
  67077. .fi
  67078. .UNINDENT
  67079. .UNINDENT
  67080. .SS list_custom_images
  67081. .sp
  67082. Lists any custom images associated with the account. These images can
  67083. be used to create a new instance.
  67084. .INDENT 0.0
  67085. .INDENT 3.5
  67086. .sp
  67087. .nf
  67088. .ft C
  67089. $ salt\-cloud \-f list_custom_images my\-tencentcloud\-config
  67090. .ft P
  67091. .fi
  67092. .UNINDENT
  67093. .UNINDENT
  67094. .SS show_image
  67095. .sp
  67096. Return details about a specific image. This image can be used
  67097. to create a new instance.
  67098. .INDENT 0.0
  67099. .INDENT 3.5
  67100. .sp
  67101. .nf
  67102. .ft C
  67103. $ salt\-cloud \-f show_image tencentcloud image=img\-31tjrtph
  67104. .ft P
  67105. .fi
  67106. .UNINDENT
  67107. .UNINDENT
  67108. .SS Getting Started With Vagrant
  67109. .sp
  67110. The Vagrant driver is a new, experimental driver for spinning up a VagrantBox
  67111. virtual machine, and installing Salt on it.
  67112. .SS Dependencies
  67113. .sp
  67114. The Vagrant driver itself has no external dependencies.
  67115. .sp
  67116. The machine which will host the VagrantBox must be an already existing minion
  67117. of the cloud server\(aqs Salt master.
  67118. It must have \fI\%Vagrant\fP installed, and a Vagrant\-compatible virtual machine engine,
  67119. such as \fI\%VirtualBox\fP\&.
  67120. (Note: The Vagrant driver does not depend on the salt\-cloud VirtualBox driver in any way.)
  67121. .sp
  67122. [Caution: The version of Vagrant packaged for \fBapt install\fP in Ubuntu 16.04 will not connect a bridged
  67123. network adapter correctly. Use a version downloaded directly from the web site.]
  67124. .sp
  67125. Include the Vagrant guest editions plugin:
  67126. \fBvagrant plugin install vagrant\-vbguest\fP\&.
  67127. .SS Configuration
  67128. .sp
  67129. Configuration of the client virtual machine (using VirtualBox, VMware, etc)
  67130. will be done by Vagrant as specified in the Vagrantfile on the host machine.
  67131. .sp
  67132. Salt\-cloud will push the commands to install and provision a salt minion on
  67133. the virtual machine, so you need not (perhaps \fBshould\fP not) provision salt
  67134. in your Vagrantfile, in most cases.
  67135. .sp
  67136. If, however, your cloud master cannot open an SSH connection to the child VM,
  67137. you may \fBneed\fP to let Vagrant provision the VM with Salt, and use some other
  67138. method (such as passing a pillar dictionary to the VM) to pass the master\(aqs
  67139. IP address to the VM. The VM can then attempt to reach the salt master in the
  67140. usual way for non\-cloud minions. Specify the profile configuration argument
  67141. as \fBdeploy: False\fP to prevent the cloud master from trying.
  67142. .INDENT 0.0
  67143. .INDENT 3.5
  67144. .sp
  67145. .nf
  67146. .ft C
  67147. # Note: This example is for /etc/salt/cloud.providers file or any file in
  67148. # the /etc/salt/cloud.providers.d/ directory.
  67149. my\-vagrant\-config:
  67150. minion:
  67151. master: 111.222.333.444
  67152. provider: vagrant
  67153. .ft P
  67154. .fi
  67155. .UNINDENT
  67156. .UNINDENT
  67157. .sp
  67158. Because the Vagrant driver needs a place to store the mapping between the
  67159. node name you use for Salt commands and the Vagrantfile which controls the VM,
  67160. you must configure your salt minion as a Salt smb server.
  67161. (See \fI\%host provisioning example\fP below.)
  67162. .SS Profiles
  67163. .sp
  67164. Vagrant requires a profile to be configured for each machine that needs Salt
  67165. installed. The initial profile can be set up at \fB/etc/salt/cloud.profiles\fP
  67166. or in the \fB/etc/salt/cloud.profiles.d/\fP directory.
  67167. .sp
  67168. Each profile requires a \fBvagrantfile\fP parameter. If the Vagrantfile has
  67169. definitions for \fI\%multiple machines\fP then you need a \fBmachine\fP parameter,
  67170. .sp
  67171. Salt\-cloud uses SSH to provision the minion. There must be a routable path
  67172. from the cloud master to the VM. Usually, you will want to use
  67173. a bridged network adapter for SSH. The address may not be known until
  67174. DHCP assigns it. If \fBssh_host\fP is not defined, and \fBtarget_network\fP
  67175. is defined, the driver will attempt to read the address from the output
  67176. of an \fBifconfig\fP command. Lacking either setting,
  67177. the driver will try to use the value Vagrant returns as its \fBssh_host\fP,
  67178. which will work only if the cloud master is running somewhere on the same host.
  67179. .sp
  67180. The \fBtarget_network\fP setting should be used
  67181. to identify the IP network your bridged adapter is expected to appear on.
  67182. Use CIDR notation, like \fBtarget_network: \(aq2001:DB8::/32\(aq\fP
  67183. or \fBtarget_network: \(aq192.0.2.0/24\(aq\fP\&.
  67184. .sp
  67185. Profile configuration example:
  67186. .INDENT 0.0
  67187. .INDENT 3.5
  67188. .sp
  67189. .nf
  67190. .ft C
  67191. # /etc/salt/cloud.profiles.d/vagrant.conf
  67192. vagrant\-machine:
  67193. host: my\-vhost # the Salt id of the virtual machine\(aqs host computer.
  67194. provider: my\-vagrant\-config
  67195. cwd: /srv/machines # the path to your Vagrantfile.
  67196. vagrant_runas: my\-username # the username who defined the Vagrantbox on the host
  67197. # vagrant_up_timeout: 300 # (seconds) timeout for cmd.run of the "vagrant up" command
  67198. # vagrant_provider: \(aq\(aq # option for "vagrant up" like: "\-\-provider vmware_fusion"
  67199. # ssh_host: None # "None" means try to find the routable IP address from "ifconfig"
  67200. # ssh_username: \(aq\(aq # also required when ssh_host is used.
  67201. # target_network: None # Expected CIDR address range of your bridged network
  67202. # force_minion_config: false # Set "true" to re\-purpose an existing VM
  67203. .ft P
  67204. .fi
  67205. .UNINDENT
  67206. .UNINDENT
  67207. .sp
  67208. The machine can now be created and configured with the following command:
  67209. .INDENT 0.0
  67210. .INDENT 3.5
  67211. .sp
  67212. .nf
  67213. .ft C
  67214. salt\-cloud \-p vagrant\-machine my\-id
  67215. .ft P
  67216. .fi
  67217. .UNINDENT
  67218. .UNINDENT
  67219. .sp
  67220. This will create the machine specified by the cloud profile
  67221. \fBvagrant\-machine\fP, and will give the machine the minion id of
  67222. \fBmy\-id\fP\&. If the cloud master is also the salt\-master, its Salt
  67223. key will automatically be accepted on the master.
  67224. .sp
  67225. Once a salt\-minion has been successfully installed on the instance, connectivity
  67226. to it can be verified with Salt:
  67227. .INDENT 0.0
  67228. .INDENT 3.5
  67229. .sp
  67230. .nf
  67231. .ft C
  67232. salt my\-id test.version
  67233. .ft P
  67234. .fi
  67235. .UNINDENT
  67236. .UNINDENT
  67237. .SS Provisioning a Vagrant cloud host (example)
  67238. .sp
  67239. In order to query or control minions it created, each host
  67240. minion needs to track the Salt node names associated with
  67241. any guest virtual machines on it.
  67242. It does that using a Salt sdb database.
  67243. .sp
  67244. The Salt sdb is not configured by default. The following example shows a
  67245. simple installation.
  67246. .sp
  67247. This example assumes:
  67248. .INDENT 0.0
  67249. .IP \(bu 2
  67250. you are on a large network using the 10.x.x.x IP address space
  67251. .IP \(bu 2
  67252. your Salt master\(aqs Salt id is "bevymaster"
  67253. .IP \(bu 2
  67254. it will also be your salt\-cloud controller
  67255. .IP \(bu 2
  67256. it is at hardware address 10.124.30.7
  67257. .IP \(bu 2
  67258. it is running a recent Debian family Linux (raspbian)
  67259. .IP \(bu 2
  67260. your workstation is a Salt minion of bevymaster
  67261. .IP \(bu 2
  67262. your workstation\(aqs minion id is "my_laptop"
  67263. .IP \(bu 2
  67264. VirtualBox has been installed on "my_laptop" (apt install is okay)
  67265. .IP \(bu 2
  67266. Vagrant was installed from vagrantup.com. (not the 16.04 Ubuntu apt)
  67267. .IP \(bu 2
  67268. "my_laptop" has done "vagrant plugin install vagrant\-vbguest"
  67269. .IP \(bu 2
  67270. the VM you want to start is on "my_laptop" at "/home/my_username/Vagrantfile"
  67271. .UNINDENT
  67272. .INDENT 0.0
  67273. .INDENT 3.5
  67274. .sp
  67275. .nf
  67276. .ft C
  67277. # file /etc/salt/minion.d/vagrant_sdb.conf on host computer "my_laptop"
  67278. # \-\- this sdb database is required by the Vagrant module \-\-
  67279. vagrant_sdb_data: # The sdb database must have this name.
  67280. driver: sqlite3 # Let\(aqs use SQLite to store the data ...
  67281. database: /var/cache/salt/vagrant.sqlite # ... in this file ...
  67282. table: sdb # ... using this table name.
  67283. create_table: True # if not present
  67284. .ft P
  67285. .fi
  67286. .UNINDENT
  67287. .UNINDENT
  67288. .sp
  67289. Remember to re\-start your minion after changing its configuration files...
  67290. .INDENT 0.0
  67291. .INDENT 3.5
  67292. \fBsudo systemctl restart salt\-minion\fP
  67293. .UNINDENT
  67294. .UNINDENT
  67295. .INDENT 0.0
  67296. .INDENT 3.5
  67297. .sp
  67298. .nf
  67299. .ft C
  67300. # \-*\- mode: ruby \-*\-
  67301. # file /home/my_username/Vagrantfile on host computer "my_laptop"
  67302. BEVY = "bevy1"
  67303. DOMAIN = BEVY + ".test" # .test is an ICANN reserved non\-public TLD
  67304. # must supply a list of names to avoid Vagrant asking for interactive input
  67305. def get_good_ifc() # try to find a working Ubuntu network adapter name
  67306. addr_infos = Socket.getifaddrs
  67307. addr_infos.each do |info|
  67308. a = info.addr
  67309. if a and a.ip? and not a.ip_address.start_with?("127.")
  67310. return info.name
  67311. end
  67312. end
  67313. return "eth0" # fall back to an old reliable name
  67314. end
  67315. Vagrant.configure(2) do |config|
  67316. config.ssh.forward_agent = true # so you can use git ssh://...
  67317. # add a bridged network interface. (try to detect name, then guess MacOS names, too)
  67318. interface_guesses = [get_good_ifc(), \(aqen0: Ethernet\(aq, \(aqen1: Wi\-Fi (AirPort)\(aq]
  67319. config.vm.network "public_network", bridge: interface_guesses
  67320. if ARGV[0] == "up"
  67321. puts "Trying bridge network using interfaces: #{interface_guesses}"
  67322. end
  67323. config.vm.provision "shell", inline: "ip address", run: "always" # make user feel good
  67324. # . . . . . . . . . . . . Define machine QUAIL1 . . . . . . . . . . . . . .
  67325. config.vm.define "quail1", primary: true do |quail_config|
  67326. quail_config.vm.box = "boxesio/xenial64\-standard" # a public VMware & Virtualbox box
  67327. quail_config.vm.hostname = "quail1." + DOMAIN # supply a name in our bevy
  67328. quail_config.vm.provider "virtualbox" do |v|
  67329. v.memory = 1024 # limit memory for the virtual box
  67330. v.cpus = 1
  67331. v.linked_clone = true # make a soft copy of the base Vagrant box
  67332. v.customize ["modifyvm", :id, "\-\-natnet1", "192.168.128.0/24"] # do not use 10.x network for NAT
  67333. end
  67334. end
  67335. end
  67336. .ft P
  67337. .fi
  67338. .UNINDENT
  67339. .UNINDENT
  67340. .INDENT 0.0
  67341. .INDENT 3.5
  67342. .sp
  67343. .nf
  67344. .ft C
  67345. # file /etc/salt/cloud.profiles.d/my_vagrant_profiles.conf on bevymaster
  67346. q1:
  67347. host: my_laptop # the Salt id of your virtual machine host
  67348. machine: quail1 # a machine name in the Vagrantfile (if not primary)
  67349. vagrant_runas: my_username # owner of Vagrant box files on "my_laptop"
  67350. cwd: \(aq/home/my_username\(aq # the path (on "my_laptop") of the Vagrantfile
  67351. provider: my_vagrant_provider # name of entry in provider.conf file
  67352. target_network: \(aq10.0.0.0/8\(aq # VM external address will be somewhere here
  67353. .ft P
  67354. .fi
  67355. .UNINDENT
  67356. .UNINDENT
  67357. .INDENT 0.0
  67358. .INDENT 3.5
  67359. .sp
  67360. .nf
  67361. .ft C
  67362. # file /etc/salt/cloud.providers.d/vagrant_provider.conf on bevymaster
  67363. my_vagrant_provider:
  67364. driver: vagrant
  67365. minion:
  67366. master: 10.124.30.7 # the hard address of the master
  67367. .ft P
  67368. .fi
  67369. .UNINDENT
  67370. .UNINDENT
  67371. .SS Create and use your new Salt minion
  67372. .INDENT 0.0
  67373. .IP \(bu 2
  67374. Typing on the Salt master computer \fBbevymaster\fP, tell it to create a new minion named \fBv1\fP using profile \fBq1\fP\&...
  67375. .UNINDENT
  67376. .INDENT 0.0
  67377. .INDENT 3.5
  67378. .sp
  67379. .nf
  67380. .ft C
  67381. sudo salt\-cloud \-p q1 v1
  67382. sudo salt v1 network.ip_addrs
  67383. [ you get a list of IP addresses, including the bridged one ]
  67384. .ft P
  67385. .fi
  67386. .UNINDENT
  67387. .UNINDENT
  67388. .INDENT 0.0
  67389. .IP \(bu 2
  67390. logged in to your laptop (or some other computer known to GitHub)...
  67391. .INDENT 2.0
  67392. .INDENT 3.5
  67393. [NOTE:] if you are using MacOS, you need to type \fBssh\-add \-K\fP after each boot,
  67394. unless you use one of the methods in \fI\%this gist\fP\&.
  67395. .UNINDENT
  67396. .UNINDENT
  67397. .UNINDENT
  67398. .INDENT 0.0
  67399. .INDENT 3.5
  67400. .sp
  67401. .nf
  67402. .ft C
  67403. ssh \-A vagrant@< the bridged network address >
  67404. # [ or, if you are at /home/my_username/ on my_laptop ]
  67405. vagrant ssh quail1
  67406. .ft P
  67407. .fi
  67408. .UNINDENT
  67409. .UNINDENT
  67410. .INDENT 0.0
  67411. .IP \(bu 2
  67412. then typing on your new node "v1" (a.k.a. quail1.bevy1.test)...
  67413. .UNINDENT
  67414. .INDENT 0.0
  67415. .INDENT 3.5
  67416. .sp
  67417. .nf
  67418. .ft C
  67419. password: vagrant
  67420. # [ stuff types out ... ]
  67421. ls \-al /vagrant
  67422. # [ should be shared /home/my_username from my_laptop ]
  67423. # you can access other network facilities using the ssh authorization
  67424. # as recorded in your ~.ssh/ directory on my_laptop ...
  67425. sudo apt update
  67426. sudo apt install git
  67427. git clone ssh://git@github.com/yourID/your_project
  67428. # etc...
  67429. .ft P
  67430. .fi
  67431. .UNINDENT
  67432. .UNINDENT
  67433. .SS Getting Started with VEXXHOST
  67434. .sp
  67435. \fI\%VEXXHOST\fP is a cloud computing host which provides
  67436. \fI\%Canadian cloud computing\fP services
  67437. which are based in Monteral and use the libcloud OpenStack driver. VEXXHOST
  67438. currently runs the Havana release of OpenStack. When provisioning new
  67439. instances, they automatically get a public IP and private IP address.
  67440. Therefore, you do not need to assign a floating IP to access your instance
  67441. after it\(aqs booted.
  67442. .SS Cloud Provider Configuration
  67443. .sp
  67444. To use the \fIopenstack\fP driver for the VEXXHOST public cloud, you will need to
  67445. set up the cloud provider configuration file as in the example below:
  67446. .sp
  67447. \fB/etc/salt/cloud.providers.d/vexxhost.conf\fP:
  67448. In order to use the VEXXHOST public cloud, you will need to setup a cloud
  67449. provider configuration file as in the example below which uses the OpenStack
  67450. driver.
  67451. .INDENT 0.0
  67452. .INDENT 3.5
  67453. .sp
  67454. .nf
  67455. .ft C
  67456. my\-vexxhost\-config:
  67457. # Set the location of the salt\-master
  67458. #
  67459. minion:
  67460. master: saltmaster.example.com
  67461. # Configure VEXXHOST using the OpenStack plugin
  67462. #
  67463. identity_url: http://auth.api.thenebulacloud.com:5000/v2.0/tokens
  67464. compute_name: nova
  67465. # Set the compute region:
  67466. #
  67467. compute_region: na\-yul\-nhs1
  67468. # Configure VEXXHOST authentication credentials
  67469. #
  67470. user: your\-tenant\-id
  67471. password: your\-api\-key
  67472. tenant: your\-tenant\-name
  67473. # keys to allow connection to the instance launched
  67474. #
  67475. ssh_key_name: yourkey
  67476. ssh_key_file: /path/to/key/yourkey.priv
  67477. driver: openstack
  67478. .ft P
  67479. .fi
  67480. .UNINDENT
  67481. .UNINDENT
  67482. .sp
  67483. \fBNOTE:\fP
  67484. .INDENT 0.0
  67485. .INDENT 3.5
  67486. Changed in version 2015.8.0.
  67487. .sp
  67488. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  67489. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  67490. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  67491. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  67492. to use \fBprovider\fP to refer to provider configurations that you define.
  67493. .UNINDENT
  67494. .UNINDENT
  67495. .SS Authentication
  67496. .sp
  67497. All of the authentication fields that you need can be found by logging into
  67498. your VEXXHOST customer center. Once you\(aqve logged in, you will need to click
  67499. on "CloudConsole" and then click on "API Credentials".
  67500. .SS Cloud Profile Configuration
  67501. .sp
  67502. In order to get the correct image UUID and the instance type to use in the
  67503. cloud profile, you can run the following command respectively:
  67504. .INDENT 0.0
  67505. .INDENT 3.5
  67506. .sp
  67507. .nf
  67508. .ft C
  67509. # salt\-cloud \-\-list\-images=vexxhost\-config
  67510. # salt\-cloud \-\-list\-sizes=vexxhost\-config
  67511. .ft P
  67512. .fi
  67513. .UNINDENT
  67514. .UNINDENT
  67515. .sp
  67516. Once you have that, you can go ahead and create a new cloud profile. This
  67517. profile will build an Ubuntu 12.04 LTS \fInb.2G\fP instance.
  67518. .sp
  67519. \fB/etc/salt/cloud.profiles.d/vh_ubuntu1204_2G.conf\fP:
  67520. .INDENT 0.0
  67521. .INDENT 3.5
  67522. .sp
  67523. .nf
  67524. .ft C
  67525. vh_ubuntu1204_2G:
  67526. provider: my\-vexxhost\-config
  67527. image: 4051139f\-750d\-4d72\-8ef0\-074f2ccc7e5a
  67528. size: nb.2G
  67529. .ft P
  67530. .fi
  67531. .UNINDENT
  67532. .UNINDENT
  67533. .SS Provision an instance
  67534. .sp
  67535. To create an instance based on the sample profile that we created above, you
  67536. can run the following \fIsalt\-cloud\fP command.
  67537. .INDENT 0.0
  67538. .INDENT 3.5
  67539. .sp
  67540. .nf
  67541. .ft C
  67542. # salt\-cloud \-p vh_ubuntu1204_2G vh_instance1
  67543. .ft P
  67544. .fi
  67545. .UNINDENT
  67546. .UNINDENT
  67547. .sp
  67548. Typically, instances are provisioned in under 30 seconds on the VEXXHOST public
  67549. cloud. After the instance provisions, it will be set up a minion and then
  67550. return all the instance information once it\(aqs complete.
  67551. .sp
  67552. Once the instance has been setup, you can test connectivity to it by running
  67553. the following command:
  67554. .INDENT 0.0
  67555. .INDENT 3.5
  67556. .sp
  67557. .nf
  67558. .ft C
  67559. # salt vh_instance1 test.version
  67560. .ft P
  67561. .fi
  67562. .UNINDENT
  67563. .UNINDENT
  67564. .sp
  67565. You can now continue to provision new instances and they will all automatically
  67566. be set up as minions of the master you\(aqve defined in the configuration file.
  67567. .SS Getting Started With Virtualbox
  67568. .sp
  67569. The Virtualbox cloud module allows you to manage a \fBlocal\fP Virtualbox hypervisor. Remote hypervisors may come later on.
  67570. .SS Dependencies
  67571. .sp
  67572. The virtualbox module for Salt Cloud requires the \fI\%Virtualbox SDK\fP
  67573. which is contained in a virtualbox installation from
  67574. .sp
  67575. \fI\%https://www.virtualbox.org/wiki/Downloads\fP
  67576. .SS Configuration
  67577. .sp
  67578. The Virtualbox cloud module just needs to use the virtualbox driver for now. Virtualbox will be run as the running user.
  67579. .sp
  67580. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/virtualbox.conf\fP:
  67581. .INDENT 0.0
  67582. .INDENT 3.5
  67583. .sp
  67584. .nf
  67585. .ft C
  67586. virtualbox\-config:
  67587. driver: virtualbox
  67588. .ft P
  67589. .fi
  67590. .UNINDENT
  67591. .UNINDENT
  67592. .SS Profiles
  67593. .sp
  67594. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  67595. \fB/etc/salt/cloud.profiles.d/virtualbox.conf\fP:
  67596. .INDENT 0.0
  67597. .INDENT 3.5
  67598. .sp
  67599. .nf
  67600. .ft C
  67601. virtualbox\-test:
  67602. provider: virtualbox\-config
  67603. clonefrom: VM_to_clone_from
  67604. # Optional
  67605. power_on: True
  67606. deploy: True
  67607. ssh_username: a_username
  67608. password: a_password
  67609. sudo: a_username
  67610. sudo_password: a_password
  67611. # Example minion config
  67612. minion:
  67613. master: localhost
  67614. make_master: True
  67615. .ft P
  67616. .fi
  67617. .UNINDENT
  67618. .UNINDENT
  67619. .INDENT 0.0
  67620. .TP
  67621. \fBclonefrom\fP \fBMandatory\fP
  67622. Enter the name of the VM/template to clone from.
  67623. .UNINDENT
  67624. .sp
  67625. So far only machines can only be cloned and automatically provisioned by Salt Cloud.
  67626. .SS Provisioning
  67627. .sp
  67628. In order to provision when creating a new machine \fBpower_on\fP and \fBdeploy\fP have to be \fBTrue\fP\&.
  67629. .sp
  67630. Furthermore to connect to the VM \fBssh_username\fP and \fBpassword\fP will have to be set.
  67631. .sp
  67632. \fBsudo\fP and \fBsudo_password\fP are the credentials for getting root access in order to deploy salt
  67633. .SS Actions
  67634. .INDENT 0.0
  67635. .TP
  67636. .B \fBstart\fP
  67637. Attempt to boot a VM by name. VMs should have unique names in order to boot the correct one.
  67638. .TP
  67639. .B \fBstop\fP
  67640. Attempt to stop a VM. This is akin to a force shutdown or 5 second press.
  67641. .UNINDENT
  67642. .SS Functions
  67643. .INDENT 0.0
  67644. .TP
  67645. .B \fBshow_image\fP
  67646. Show all available information about a VM given by the \fIimage\fP parameter
  67647. .INDENT 7.0
  67648. .INDENT 3.5
  67649. .sp
  67650. .nf
  67651. .ft C
  67652. $ salt\-cloud \-f show_image virtualbox image=my_vm_name
  67653. .ft P
  67654. .fi
  67655. .UNINDENT
  67656. .UNINDENT
  67657. .UNINDENT
  67658. .SS Getting Started With VMware
  67659. .sp
  67660. New in version 2015.5.4.
  67661. .sp
  67662. \fBAuthor\fP: Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>
  67663. .sp
  67664. The VMware cloud module allows you to manage VMware ESX, ESXi, and vCenter.
  67665. .SS Dependencies
  67666. .sp
  67667. The vmware module for Salt Cloud requires the \fBpyVmomi\fP package, which is
  67668. available at PyPI:
  67669. .sp
  67670. \fI\%https://pypi.org/project/pyvmomi/\fP
  67671. .sp
  67672. This package can be installed using \fIpip\fP or \fIeasy_install\fP:
  67673. .INDENT 0.0
  67674. .INDENT 3.5
  67675. .sp
  67676. .nf
  67677. .ft C
  67678. pip install pyvmomi
  67679. easy_install pyvmomi
  67680. .ft P
  67681. .fi
  67682. .UNINDENT
  67683. .UNINDENT
  67684. .sp
  67685. \fBNOTE:\fP
  67686. .INDENT 0.0
  67687. .INDENT 3.5
  67688. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  67689. versions of Python. If using version 6.0 of pyVmomi, the machine that you
  67690. are running the proxy minion process from must have either Python 2.7.9 or
  67691. newer This is due to an upstream dependency in pyVmomi 6.0 that is not supported
  67692. in Python version 2.6 to 2.7.8. If the version of Python running the salt\-cloud
  67693. command is not in the supported range, you will need to install an earlier version
  67694. of pyVmomi. See \fI\%Issue #29537\fP for more information.
  67695. .UNINDENT
  67696. .UNINDENT
  67697. .sp
  67698. \fBNOTE:\fP
  67699. .INDENT 0.0
  67700. .INDENT 3.5
  67701. pyVmomi doesn\(aqt expose the ability to specify the locale when connecting to
  67702. VMware. This causes parsing issues when connecting to an instance of VMware
  67703. running under a non\-English locale. Until this feature is added upstream
  67704. \fI\%Issue #38402\fP contains a workaround.
  67705. .UNINDENT
  67706. .UNINDENT
  67707. .SS Configuration
  67708. .sp
  67709. The VMware cloud module needs the vCenter or ESX/ESXi URL, username and password to be
  67710. set up in the cloud configuration at
  67711. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/vmware.conf\fP:
  67712. .INDENT 0.0
  67713. .INDENT 3.5
  67714. .sp
  67715. .nf
  67716. .ft C
  67717. my\-vmware\-config:
  67718. driver: vmware
  67719. user: \(aqDOMAIN\euser\(aq
  67720. password: \(aqverybadpass\(aq
  67721. url: \(aq10.20.30.40\(aq
  67722. vcenter01:
  67723. driver: vmware
  67724. user: \(aqDOMAIN\euser\(aq
  67725. password: \(aqverybadpass\(aq
  67726. url: \(aqvcenter01.domain.com\(aq
  67727. protocol: \(aqhttps\(aq
  67728. port: 443
  67729. vcenter02:
  67730. driver: vmware
  67731. user: \(aqDOMAIN\euser\(aq
  67732. password: \(aqverybadpass\(aq
  67733. url: \(aqvcenter02.domain.com\(aq
  67734. protocol: \(aqhttp\(aq
  67735. port: 80
  67736. esx01:
  67737. driver: vmware
  67738. user: \(aqadmin\(aq
  67739. password: \(aqverybadpass\(aq
  67740. url: \(aqesx01.domain.com\(aq
  67741. .ft P
  67742. .fi
  67743. .UNINDENT
  67744. .UNINDENT
  67745. .sp
  67746. \fBNOTE:\fP
  67747. .INDENT 0.0
  67748. .INDENT 3.5
  67749. Optionally, \fBprotocol\fP and \fBport\fP can be specified if the vCenter
  67750. server is not using the defaults. Default is \fBprotocol: https\fP and
  67751. \fBport: 443\fP\&.
  67752. .UNINDENT
  67753. .UNINDENT
  67754. .sp
  67755. \fBNOTE:\fP
  67756. .INDENT 0.0
  67757. .INDENT 3.5
  67758. Changed in version 2015.8.0.
  67759. .sp
  67760. The \fBprovider\fP parameter in cloud provider configuration was renamed to \fBdriver\fP\&.
  67761. This change was made to avoid confusion with the \fBprovider\fP parameter that is
  67762. used in cloud profile configuration. Cloud provider configuration now uses \fBdriver\fP
  67763. to refer to the salt\-cloud driver that provides the underlying functionality to
  67764. connect to a cloud provider, while cloud profile configuration continues to use
  67765. \fBprovider\fP to refer to the cloud provider configuration that you define.
  67766. .UNINDENT
  67767. .UNINDENT
  67768. .SS Profiles
  67769. .sp
  67770. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  67771. \fB/etc/salt/cloud.profiles.d/vmware.conf\fP:
  67772. .INDENT 0.0
  67773. .INDENT 3.5
  67774. .sp
  67775. .nf
  67776. .ft C
  67777. vmware\-centos6.5:
  67778. provider: vcenter01
  67779. clonefrom: test\-vm
  67780. ## Optional arguments
  67781. num_cpus: 4
  67782. memory: 8GB
  67783. devices:
  67784. cd:
  67785. CD/DVD drive 1:
  67786. device_type: datastore_iso_file
  67787. iso_path: "[nap004\-1] vmimages/tools\-isoimages/linux.iso"
  67788. CD/DVD drive 2:
  67789. device_type: client_device
  67790. mode: atapi
  67791. controller: IDE 2
  67792. CD/DVD drive 3:
  67793. device_type: client_device
  67794. mode: passthrough
  67795. controller: IDE 3
  67796. disk:
  67797. Hard disk 1:
  67798. size: 30
  67799. Hard disk 2:
  67800. size: 20
  67801. controller: SCSI controller 2
  67802. Hard disk 3:
  67803. size: 5
  67804. controller: SCSI controller 3
  67805. datastore: smalldiskdatastore
  67806. network:
  67807. Network adapter 1:
  67808. name: 10.20.30\-400\-Test
  67809. switch_type: standard
  67810. ip: 10.20.30.123
  67811. gateway: [10.20.30.110]
  67812. subnet_mask: 255.255.255.128
  67813. domain: example.com
  67814. Network adapter 2:
  67815. name: 10.30.40\-500\-Dev\-DHCP
  67816. adapter_type: e1000
  67817. switch_type: distributed
  67818. mac: \(aq00:16:3e:e8:19:0f\(aq
  67819. Network adapter 3:
  67820. name: 10.40.50\-600\-Prod
  67821. adapter_type: vmxnet3
  67822. switch_type: distributed
  67823. ip: 10.40.50.123
  67824. gateway: [10.40.50.110]
  67825. subnet_mask: 255.255.255.128
  67826. domain: example.com
  67827. scsi:
  67828. SCSI controller 1:
  67829. type: lsilogic
  67830. SCSI controller 2:
  67831. type: lsilogic_sas
  67832. bus_sharing: virtual
  67833. SCSI controller 3:
  67834. type: paravirtual
  67835. bus_sharing: physical
  67836. ide:
  67837. IDE 2: {}
  67838. IDE 3: {}
  67839. domain: example.com
  67840. dns_servers:
  67841. \- 123.127.255.240
  67842. \- 123.127.255.241
  67843. \- 123.127.255.242
  67844. resourcepool: Resources
  67845. cluster: Prod
  67846. datastore: HUGE\-DATASTORE\-Cluster
  67847. folder: Development
  67848. datacenter: DC1
  67849. host: c4212n\-002.domain.com
  67850. template: False
  67851. power_on: True
  67852. extra_config:
  67853. mem.hotadd: \(aqyes\(aq
  67854. guestinfo.foo: bar
  67855. guestinfo.domain: foobar.com
  67856. guestinfo.customVariable: customValue
  67857. annotation: Created by Salt\-Cloud
  67858. deploy: True
  67859. customization: True
  67860. private_key: /root/.ssh/mykey.pem
  67861. ssh_username: cloud\-user
  67862. password: veryVeryBadPassword
  67863. minion:
  67864. master: 123.127.193.105
  67865. file_map:
  67866. /path/to/local/custom/script: /path/to/remote/script
  67867. /path/to/local/file: /path/to/remote/file
  67868. /srv/salt/yum/epel.repo: /etc/yum.repos.d/epel.repo
  67869. hardware_version: 10
  67870. image: centos64Guest
  67871. #For Windows VM
  67872. win_username: Administrator
  67873. win_password: administrator
  67874. win_organization_name: ABC\-Corp
  67875. plain_text: True
  67876. win_installer: /root/Salt\-Minion\-2015.8.4\-AMD64\-Setup.exe
  67877. win_user_fullname: Windows User
  67878. .ft P
  67879. .fi
  67880. .UNINDENT
  67881. .UNINDENT
  67882. .INDENT 0.0
  67883. .TP
  67884. .B \fBprovider\fP
  67885. Enter the name that was specified when the cloud provider config was created.
  67886. .TP
  67887. .B \fBclonefrom\fP
  67888. Enter the name of the VM/template to clone from. If not specified, the VM will be created
  67889. without cloning.
  67890. .TP
  67891. .B \fBnum_cpus\fP
  67892. Enter the number of vCPUS that you want the VM/template to have. If not specified,
  67893. the current VM/template\(aqs vCPU count is used.
  67894. .TP
  67895. .B \fBcores_per_socket\fP
  67896. Enter the number of cores per vCPU that you want the VM/template to have. If not specified,
  67897. this will default to 1.
  67898. .sp
  67899. \fBNOTE:\fP
  67900. .INDENT 7.0
  67901. .INDENT 3.5
  67902. Cores per socket should be less than or equal to the total number of
  67903. vCPUs assigned to the VM/template.
  67904. .UNINDENT
  67905. .UNINDENT
  67906. .sp
  67907. New in version 2016.11.0.
  67908. .TP
  67909. .B \fBmemory\fP
  67910. Enter the memory size (in MB or GB) that you want the VM/template to have. If
  67911. not specified, the current VM/template\(aqs memory size is used. Example
  67912. \fBmemory: 8GB\fP or \fBmemory: 8192MB\fP\&.
  67913. .TP
  67914. .B \fBdevices\fP
  67915. Enter the device specifications here. Currently, the following devices can be
  67916. created or reconfigured:
  67917. .INDENT 7.0
  67918. .TP
  67919. .B cd
  67920. Enter the CD/DVD drive specification here. If the CD/DVD drive doesn\(aqt exist,
  67921. it will be created with the specified configuration. If the CD/DVD drive
  67922. already exists, it will be reconfigured with the specifications. The following
  67923. options can be specified per CD/DVD drive:
  67924. .INDENT 7.0
  67925. .TP
  67926. .B device_type
  67927. Specify how the CD/DVD drive should be used. Currently supported types are
  67928. \fBclient_device\fP and \fBdatastore_iso_file\fP\&. Default is
  67929. \fBdevice_type: client_device\fP
  67930. .TP
  67931. .B iso_path
  67932. Enter the path to the iso file present on the datastore only if
  67933. \fBdevice_type: datastore_iso_file\fP\&. The syntax to specify this is
  67934. \fBiso_path: "[datastoreName] vmimages/tools\-isoimages/linux.iso"\fP\&. This
  67935. field is ignored if \fBdevice_type: client_device\fP
  67936. .TP
  67937. .B mode
  67938. Enter the mode of connection only if \fBdevice_type: client_device\fP\&. Currently
  67939. supported modes are \fBpassthrough\fP and \fBatapi\fP\&. This field is ignored if
  67940. \fBdevice_type: datastore_iso_file\fP\&. Default is \fBmode: passthrough\fP
  67941. .TP
  67942. .B controller
  67943. Specify the IDE controller label to which this drive should be attached.
  67944. This should be specified only when creating both the specified IDE
  67945. controller as well as the CD/DVD drive at the same time.
  67946. .UNINDENT
  67947. .TP
  67948. .B disk
  67949. Enter the disk specification here. If the hard disk doesn\(aqt exist, it will
  67950. be created with the provided size. If the hard disk already exists, it will
  67951. be expanded if the provided size is greater than the current size of the disk.
  67952. .INDENT 7.0
  67953. .TP
  67954. .B size
  67955. Enter the size of disk in GB
  67956. .TP
  67957. .B thin_provision
  67958. Specifies whether the disk should be thin provisioned or not. Default is \fBthin_provision: False\fP\&.
  67959. .. versionadded:: 2016.3.0
  67960. .TP
  67961. .B eagerly_scrub
  67962. Specifies whether the disk should be rewrite with zeros during thick provisioning or not.
  67963. Default is \fBeagerly_scrub: False\fP\&.
  67964. .. versionadded:: 2018.3.0
  67965. .TP
  67966. .B controller
  67967. Specify the SCSI controller label to which this disk should be attached.
  67968. This should be specified only when creating both the specified SCSI
  67969. controller as well as the hard disk at the same time.
  67970. .TP
  67971. .B datastore
  67972. The name of a valid datastore should you wish the new disk to be in
  67973. a datastore other than the default for the VM.
  67974. .UNINDENT
  67975. .TP
  67976. .B network
  67977. Enter the network adapter specification here. If the network adapter doesn\(aqt
  67978. exist, a new network adapter will be created with the specified network name,
  67979. type and other configuration. If the network adapter already exists, it will
  67980. be reconfigured with the specifications. The following additional options can
  67981. be specified per network adapter (See example above):
  67982. .INDENT 7.0
  67983. .TP
  67984. .B name
  67985. Enter the network name you want the network adapter to be mapped to.
  67986. .TP
  67987. .B adapter_type
  67988. Enter the network adapter type you want to create. Currently supported
  67989. types are \fBvmxnet\fP, \fBvmxnet2\fP, \fBvmxnet3\fP, \fBe1000\fP and \fBe1000e\fP\&.
  67990. If no type is specified, by default \fBvmxnet3\fP will be used.
  67991. .TP
  67992. .B switch_type
  67993. Enter the type of switch to use. This decides whether to use a standard
  67994. switch network or a distributed virtual portgroup. Currently supported
  67995. types are \fBstandard\fP for standard portgroups and \fBdistributed\fP for
  67996. distributed virtual portgroups.
  67997. .TP
  67998. .B ip
  67999. Enter the static IP you want the network adapter to be mapped to. If the
  68000. network specified is DHCP enabled, you do not have to specify this.
  68001. .TP
  68002. .B gateway
  68003. Enter the gateway for the network as a list. If the network specified
  68004. is DHCP enabled, you do not have to specify this.
  68005. .TP
  68006. .B subnet_mask
  68007. Enter the subnet mask for the network. If the network specified is DHCP
  68008. enabled, you do not have to specify this.
  68009. .TP
  68010. .B domain
  68011. Enter the domain to be used with the network adapter. If the network
  68012. specified is DHCP enabled, you do not have to specify this.
  68013. .TP
  68014. .B mac
  68015. Enter the MAC for this network adapter. If not specified an address
  68016. will be selected automatically.
  68017. .UNINDENT
  68018. .TP
  68019. .B scsi
  68020. Enter the SCSI controller specification here. If the SCSI controller doesn\(aqt exist,
  68021. a new SCSI controller will be created of the specified type. If the SCSI controller
  68022. already exists, it will be reconfigured with the specifications. The following
  68023. additional options can be specified per SCSI controller:
  68024. .INDENT 7.0
  68025. .TP
  68026. .B type
  68027. Enter the SCSI controller type you want to create. Currently supported
  68028. types are \fBlsilogic\fP, \fBlsilogic_sas\fP and \fBparavirtual\fP\&. Type must
  68029. be specified when creating a new SCSI controller.
  68030. .TP
  68031. .B bus_sharing
  68032. Specify this if sharing of virtual disks between virtual machines is desired.
  68033. The following can be specified:
  68034. .INDENT 7.0
  68035. .TP
  68036. .B virtual
  68037. Virtual disks can be shared between virtual machines on the same server.
  68038. .TP
  68039. .B physical
  68040. Virtual disks can be shared between virtual machines on any server.
  68041. .TP
  68042. .B no
  68043. Virtual disks cannot be shared between virtual machines.
  68044. .UNINDENT
  68045. .UNINDENT
  68046. .TP
  68047. .B ide
  68048. Enter the IDE controller specification here. If the IDE controller doesn\(aqt exist,
  68049. a new IDE controller is created. If the IDE controller already exists,
  68050. no further changes to it are made. The IDE controller specification is
  68051. a dictionary.
  68052. .INDENT 7.0
  68053. .INDENT 3.5
  68054. .sp
  68055. .nf
  68056. .ft C
  68057. ide:
  68058. IDE 2: {}
  68059. .ft P
  68060. .fi
  68061. .UNINDENT
  68062. .UNINDENT
  68063. .UNINDENT
  68064. .TP
  68065. .B \fBdomain\fP
  68066. Enter the global domain name to be used for DNS. If not specified and if the VM name
  68067. is a FQDN, \fBdomain\fP is set to the domain from the VM name. Default is \fBlocal\fP\&.
  68068. .TP
  68069. .B \fBdns_servers\fP
  68070. Enter the list of DNS servers to use in order of priority.
  68071. .TP
  68072. .B \fBresourcepool\fP
  68073. Enter the name of the resourcepool to which the new virtual machine should be
  68074. attached. This determines what compute resources will be available to the clone.
  68075. .sp
  68076. \fBNOTE:\fP
  68077. .INDENT 7.0
  68078. .INDENT 3.5
  68079. .INDENT 0.0
  68080. .IP \(bu 2
  68081. For a clone operation from a virtual machine, it will use the same
  68082. resourcepool as the original virtual machine unless specified.
  68083. .IP \(bu 2
  68084. For a clone operation from a template to a virtual machine, specifying
  68085. either this or cluster is required. If both are specified, the resourcepool
  68086. value will be used.
  68087. .IP \(bu 2
  68088. For a clone operation to a template, this argument is ignored.
  68089. .UNINDENT
  68090. .UNINDENT
  68091. .UNINDENT
  68092. .TP
  68093. .B \fBcluster\fP
  68094. Enter the name of the cluster whose resource pool the new virtual machine should
  68095. be attached to.
  68096. .sp
  68097. \fBNOTE:\fP
  68098. .INDENT 7.0
  68099. .INDENT 3.5
  68100. .INDENT 0.0
  68101. .IP \(bu 2
  68102. For a clone operation from a virtual machine, it will use the same cluster\(aqs
  68103. resourcepool as the original virtual machine unless specified.
  68104. .IP \(bu 2
  68105. For a clone operation from a template to a virtual machine, specifying either
  68106. this or resourcepool is required. If both are specified, the resourcepool
  68107. value will be used.
  68108. .IP \(bu 2
  68109. For a clone operation to a template, this argument is ignored.
  68110. .UNINDENT
  68111. .UNINDENT
  68112. .UNINDENT
  68113. .TP
  68114. .B \fBdatastore\fP
  68115. Enter the name of the datastore or the datastore cluster where the virtual machine
  68116. should be located on physical storage. If not specified, the current datastore is
  68117. used.
  68118. .sp
  68119. \fBNOTE:\fP
  68120. .INDENT 7.0
  68121. .INDENT 3.5
  68122. .INDENT 0.0
  68123. .IP \(bu 2
  68124. If you specify a datastore cluster name, DRS Storage recommendation is
  68125. automatically applied.
  68126. .IP \(bu 2
  68127. If you specify a datastore name, DRS Storage recommendation is disabled.
  68128. .UNINDENT
  68129. .UNINDENT
  68130. .UNINDENT
  68131. .TP
  68132. .B \fBfolder\fP
  68133. Enter the name of the folder that will contain the new virtual machine.
  68134. .sp
  68135. \fBNOTE:\fP
  68136. .INDENT 7.0
  68137. .INDENT 3.5
  68138. .INDENT 0.0
  68139. .IP \(bu 2
  68140. For a clone operation from a VM/template, the new VM/template will be added
  68141. to the same folder that the original VM/template belongs to unless specified.
  68142. .IP \(bu 2
  68143. If both folder and datacenter are specified, the folder value will be used.
  68144. .UNINDENT
  68145. .UNINDENT
  68146. .UNINDENT
  68147. .TP
  68148. .B \fBdatacenter\fP
  68149. Enter the name of the datacenter that will contain the new virtual machine.
  68150. .sp
  68151. \fBNOTE:\fP
  68152. .INDENT 7.0
  68153. .INDENT 3.5
  68154. .INDENT 0.0
  68155. .IP \(bu 2
  68156. For a clone operation from a VM/template, the new VM/template will be added
  68157. to the same folder that the original VM/template belongs to unless specified.
  68158. .IP \(bu 2
  68159. If both folder and datacenter are specified, the folder value will be used.
  68160. .UNINDENT
  68161. .UNINDENT
  68162. .UNINDENT
  68163. .TP
  68164. .B \fBhost\fP
  68165. Enter the name of the target host where the virtual machine should be registered.
  68166. .sp
  68167. If not specified:
  68168. .sp
  68169. \fBNOTE:\fP
  68170. .INDENT 7.0
  68171. .INDENT 3.5
  68172. .INDENT 0.0
  68173. .IP \(bu 2
  68174. If resource pool is not specified, current host is used.
  68175. .IP \(bu 2
  68176. If resource pool is specified, and the target pool represents a stand\-alone
  68177. host, the host is used.
  68178. .IP \(bu 2
  68179. If resource pool is specified, and the target pool represents a DRS\-enabled
  68180. cluster, a host selected by DRS is used.
  68181. .IP \(bu 2
  68182. If resource pool is specified and the target pool represents a cluster without
  68183. DRS enabled, an InvalidArgument exception be thrown.
  68184. .UNINDENT
  68185. .UNINDENT
  68186. .UNINDENT
  68187. .TP
  68188. .B \fBtemplate\fP
  68189. Specifies whether the new virtual machine should be marked as a template or not.
  68190. Default is \fBtemplate: False\fP\&.
  68191. .TP
  68192. .B \fBpower_on\fP
  68193. Specifies whether the new virtual machine should be powered on or not. If
  68194. \fBtemplate: True\fP is set, this field is ignored. Default is \fBpower_on: True\fP\&.
  68195. .TP
  68196. .B \fBextra_config\fP
  68197. Specifies the additional configuration information for the virtual machine. This
  68198. describes a set of modifications to the additional options. If the key is already
  68199. present, it will be reset with the new value provided. Otherwise, a new option is
  68200. added. Keys with empty values will be removed.
  68201. .TP
  68202. .B \fBannotation\fP
  68203. User\-provided description of the virtual machine. This will store a message in the
  68204. vSphere interface, under the annotations section in the Summary view of the virtual
  68205. machine.
  68206. .TP
  68207. .B \fBdeploy\fP
  68208. Specifies if salt should be installed on the newly created VM. Default is \fBTrue\fP
  68209. so salt will be installed using the bootstrap script. If \fBtemplate: True\fP or
  68210. \fBpower_on: False\fP is set, this field is ignored and salt will not be installed.
  68211. .TP
  68212. .B \fBwait_for_ip_timeout\fP
  68213. When \fBdeploy: True\fP, this timeout determines the maximum time to wait for
  68214. VMware tools to be installed on the virtual machine. If this timeout is
  68215. reached, an attempt to determine the client\(aqs IP will be made by resolving
  68216. the VM\(aqs name. By lowering this value a salt bootstrap can be fully
  68217. automated for systems that are not built with VMware tools. Default is
  68218. \fBwait_for_ip_timeout: 1200\fP\&.
  68219. .TP
  68220. .B \fBcustomization\fP
  68221. Specify whether the new virtual machine should be customized or not. If
  68222. \fBcustomization: False\fP is set, the new virtual machine will not be customized.
  68223. Default is \fBcustomization: True\fP\&.
  68224. .TP
  68225. .B \fBprivate_key\fP
  68226. Specify the path to the private key to use to be able to ssh to the VM.
  68227. .TP
  68228. .B \fBssh_username\fP
  68229. Specify the username to use in order to ssh to the VM. Default is \fBroot\fP
  68230. .TP
  68231. .B \fBpassword\fP
  68232. Specify a password to use in order to ssh to the VM. If \fBprivate_key\fP is
  68233. specified, you do not need to specify this.
  68234. .TP
  68235. .B \fBminion\fP
  68236. Specify custom minion configuration you want the salt minion to have. A good example
  68237. would be to specify the \fBmaster\fP as the IP/DNS name of the master.
  68238. .TP
  68239. .B \fBfile_map\fP
  68240. Specify file/files you want to copy to the VM before the bootstrap script is run
  68241. and salt is installed. A good example of using this would be if you need to put
  68242. custom repo files on the server in case your server will be in a private network
  68243. and cannot reach external networks.
  68244. .TP
  68245. .B \fBhardware_version\fP
  68246. Specify the virtual hardware version for the vm/template that is supported by the
  68247. host.
  68248. .TP
  68249. .B \fBimage\fP
  68250. Specify the guest id of the VM. For a full list of supported values see the
  68251. VMware vSphere documentation:
  68252. .sp
  68253. \fI\%https://code.vmware.com/apis?pid=com.vmware.wssdk.apiref.doc&release=vsphere\-60&topic=vim.vm.GuestOsDescriptor.GuestOsIdentifier.html\fP
  68254. .sp
  68255. \fBNOTE:\fP
  68256. .INDENT 7.0
  68257. .INDENT 3.5
  68258. For a clone operation, this argument is ignored.
  68259. .UNINDENT
  68260. .UNINDENT
  68261. .TP
  68262. .B \fBwin_username\fP
  68263. Specify windows vm administrator account.
  68264. .sp
  68265. \fBNOTE:\fP
  68266. .INDENT 7.0
  68267. .INDENT 3.5
  68268. Windows template should have "administrator" account.
  68269. .UNINDENT
  68270. .UNINDENT
  68271. .TP
  68272. .B \fBwin_password\fP
  68273. Specify windows vm administrator account password.
  68274. .sp
  68275. \fBNOTE:\fP
  68276. .INDENT 7.0
  68277. .INDENT 3.5
  68278. During network configuration (if network specified), it is used to specify new administrator password for the machine.
  68279. .UNINDENT
  68280. .UNINDENT
  68281. .TP
  68282. .B \fBwin_organization_name\fP
  68283. .INDENT 7.0
  68284. .TP
  68285. .B Specify windows vm user\(aqs organization. Default organization name is Organization
  68286. VMware vSphere documentation:
  68287. .UNINDENT
  68288. .sp
  68289. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.UserData.html\fP
  68290. .TP
  68291. .B \fBwin_user_fullname\fP
  68292. .INDENT 7.0
  68293. .TP
  68294. .B Specify windows vm user\(aqs fullname. Default fullname is "Windows User"
  68295. VMware vSphere documentation:
  68296. .UNINDENT
  68297. .sp
  68298. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.UserData.html\fP
  68299. .TP
  68300. .B \fBplain_text\fP
  68301. Flag to specify whether or not the password is in plain text, rather than encrypted.
  68302. VMware vSphere documentation:
  68303. .sp
  68304. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.Password.html\fP
  68305. .TP
  68306. .B \fBwin_installer\fP
  68307. Specify windows minion client installer path
  68308. .TP
  68309. .B \fBwin_run_once\fP
  68310. Specify a list of commands to run on first login to a windows minion
  68311. .sp
  68312. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.GuiRunOnce.html\fP
  68313. .UNINDENT
  68314. .SS Cloning a VM
  68315. .sp
  68316. Cloning VMs/templates is the easiest and the preferred way to work with VMs using the VMware driver.
  68317. .sp
  68318. \fBNOTE:\fP
  68319. .INDENT 0.0
  68320. .INDENT 3.5
  68321. Cloning operations are unsupported on standalone ESXi hosts, a vCenter server will be required.
  68322. .UNINDENT
  68323. .UNINDENT
  68324. .sp
  68325. Example of a minimal profile:
  68326. .INDENT 0.0
  68327. .INDENT 3.5
  68328. .sp
  68329. .nf
  68330. .ft C
  68331. my\-minimal\-clone:
  68332. provider: vcenter01
  68333. clonefrom: \(aqtest\-vm\(aq
  68334. .ft P
  68335. .fi
  68336. .UNINDENT
  68337. .UNINDENT
  68338. .sp
  68339. When cloning a VM, all the profile configuration parameters are optional and the configuration gets inherited from the clone.
  68340. .sp
  68341. Example to add/resize a disk:
  68342. .INDENT 0.0
  68343. .INDENT 3.5
  68344. .sp
  68345. .nf
  68346. .ft C
  68347. my\-disk\-example:
  68348. provider: vcenter01
  68349. clonefrom: \(aqtest\-vm\(aq
  68350. devices:
  68351. disk:
  68352. Hard disk 1:
  68353. size: 30
  68354. .ft P
  68355. .fi
  68356. .UNINDENT
  68357. .UNINDENT
  68358. .sp
  68359. Depending on the configuration of the VM that is getting cloned, the disk in the resulting clone will differ.
  68360. .sp
  68361. \fBNOTE:\fP
  68362. .INDENT 0.0
  68363. .INDENT 3.5
  68364. .INDENT 0.0
  68365. .IP \(bu 2
  68366. If the VM has no disk named \(aqHard disk 1\(aq an empty disk with the specified size will be added to the clone.
  68367. .IP \(bu 2
  68368. 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.
  68369. .IP \(bu 2
  68370. 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.
  68371. .UNINDENT
  68372. .UNINDENT
  68373. .UNINDENT
  68374. .sp
  68375. Example to reconfigure the memory and number of vCPUs:
  68376. .INDENT 0.0
  68377. .INDENT 3.5
  68378. .sp
  68379. .nf
  68380. .ft C
  68381. my\-disk\-example:
  68382. provider: vcenter01
  68383. clonefrom: \(aqtest\-vm\(aq
  68384. memory: 16GB
  68385. num_cpus: 8
  68386. .ft P
  68387. .fi
  68388. .UNINDENT
  68389. .UNINDENT
  68390. .SS Cloning a Template
  68391. .sp
  68392. Cloning a template works similar to cloning a VM except for the fact that a resource
  68393. pool or cluster must be specified additionally in the profile.
  68394. .sp
  68395. Example of a minimal profile:
  68396. .INDENT 0.0
  68397. .INDENT 3.5
  68398. .sp
  68399. .nf
  68400. .ft C
  68401. my\-template\-clone:
  68402. provider: vcenter01
  68403. clonefrom: \(aqtest\-template\(aq
  68404. cluster: \(aqProd\(aq
  68405. .ft P
  68406. .fi
  68407. .UNINDENT
  68408. .UNINDENT
  68409. .SS Cloning from a Snapshot
  68410. .sp
  68411. New in version 2016.3.5.
  68412. .sp
  68413. Cloning from a snapshot requires that one of the
  68414. supported options be set in the cloud profile.
  68415. .sp
  68416. Supported options are \fBcreateNewChildDiskBacking\fP,
  68417. \fBmoveChildMostDiskBacking\fP, \fBmoveAllDiskBackingsAndAllowSharing\fP
  68418. and \fBmoveAllDiskBackingsAndDisallowSharing\fP\&.
  68419. .sp
  68420. Example of a minimal profile:
  68421. .INDENT 0.0
  68422. .INDENT 3.5
  68423. .sp
  68424. .nf
  68425. .ft C
  68426. my\-template\-clone:
  68427. provider: vcenter01
  68428. clonefrom: \(aqsalt_vm\(aq
  68429. snapshot:
  68430. disk_move_type: createNewChildDiskBacking
  68431. # these types are also supported
  68432. # disk_move_type: moveChildMostDiskBacking
  68433. # disk_move_type: moveAllDiskBackingsAndAllowSharing
  68434. # disk_move_type: moveAllDiskBackingsAndDisallowSharing
  68435. .ft P
  68436. .fi
  68437. .UNINDENT
  68438. .UNINDENT
  68439. .SS Creating a VM
  68440. .sp
  68441. New in version 2016.3.0.
  68442. .sp
  68443. Creating a VM from scratch means that more configuration has to be specified in the
  68444. profile because there is no place to inherit configuration from.
  68445. .sp
  68446. \fBNOTE:\fP
  68447. .INDENT 0.0
  68448. .INDENT 3.5
  68449. Unlike most cloud drivers that use prepared images, creating VMs using VMware
  68450. cloud driver needs an installation method that requires no human interaction.
  68451. For Example: preseeded ISO, kickstart URL or network PXE boot.
  68452. .UNINDENT
  68453. .UNINDENT
  68454. .sp
  68455. Example of a minimal profile:
  68456. .INDENT 0.0
  68457. .INDENT 3.5
  68458. .sp
  68459. .nf
  68460. .ft C
  68461. my\-minimal\-profile:
  68462. provider: esx01
  68463. datastore: esx01\-datastore
  68464. resourcepool: Resources
  68465. folder: vm
  68466. .ft P
  68467. .fi
  68468. .UNINDENT
  68469. .UNINDENT
  68470. .sp
  68471. \fBNOTE:\fP
  68472. .INDENT 0.0
  68473. .INDENT 3.5
  68474. The example above contains the minimum required configuration needed to create
  68475. a VM from scratch. The resulting VM will only have 1 VCPU, 32MB of RAM and will
  68476. not have any storage or networking.
  68477. .UNINDENT
  68478. .UNINDENT
  68479. .sp
  68480. Example of a complete profile:
  68481. .INDENT 0.0
  68482. .INDENT 3.5
  68483. .sp
  68484. .nf
  68485. .ft C
  68486. my\-complete\-example:
  68487. provider: esx01
  68488. datastore: esx01\-datastore
  68489. resourcepool: Resources
  68490. folder: vm
  68491. num_cpus: 2
  68492. memory: 8GB
  68493. image: debian7_64Guest
  68494. devices:
  68495. scsi:
  68496. SCSI controller 0:
  68497. type: lsilogic_sas
  68498. ide:
  68499. IDE 0: {}
  68500. IDE 1: {}
  68501. disk:
  68502. Hard disk 0:
  68503. controller: \(aqSCSI controller 0\(aq
  68504. size: 20
  68505. mode: \(aqindependent_nonpersistent\(aq
  68506. cd:
  68507. CD/DVD drive 0:
  68508. controller: \(aqIDE 0\(aq
  68509. device_type: datastore_iso_file
  68510. iso_path: \(aq[esx01\-datastore] debian\-8\-with\-preseed.iso\(aq
  68511. network:
  68512. Network adapter 0:
  68513. name: \(aqVM Network\(aq
  68514. swith_type: standard
  68515. .ft P
  68516. .fi
  68517. .UNINDENT
  68518. .UNINDENT
  68519. .sp
  68520. \fBNOTE:\fP
  68521. .INDENT 0.0
  68522. .INDENT 3.5
  68523. Depending on VMware ESX/ESXi version, an exact match for \fBimage\fP might not
  68524. be available. In such cases, the closest match to another \fBimage\fP should
  68525. be used. In the example above, a Debian 8 VM is created using the image
  68526. \fBdebian7_64Guest\fP which is for a Debian 7 guest.
  68527. .UNINDENT
  68528. .UNINDENT
  68529. .SS Specifying disk backing mode
  68530. .sp
  68531. New in version 2016.3.5.
  68532. .sp
  68533. Disk backing mode can now be specified when cloning a VM. This option
  68534. can be set in the cloud profile as shown in example below:
  68535. .INDENT 0.0
  68536. .INDENT 3.5
  68537. .sp
  68538. .nf
  68539. .ft C
  68540. my\-vm:
  68541. provider: esx01
  68542. datastore: esx01\-datastore
  68543. resourcepool: Resources
  68544. folder: vm
  68545. devices:
  68546. disk:
  68547. Hard disk 1:
  68548. mode: \(aqindependent_nonpersistent\(aq
  68549. size: 42
  68550. Hard disk 2:
  68551. mode: \(aqindependent_nonpersistent\(aq
  68552. .ft P
  68553. .fi
  68554. .UNINDENT
  68555. .UNINDENT
  68556. .SS Getting Started With Xen
  68557. .sp
  68558. The Xen cloud driver works with Citrix XenServer.
  68559. .sp
  68560. It can be used with a single XenServer or a XenServer resource pool.
  68561. .SS Setup Dependencies
  68562. .sp
  68563. This driver requires a copy of the freely available \fBXenAPI.py\fP Python module.
  68564. .sp
  68565. Information about the Xen API Python module in the XenServer SDK
  68566. can be found at \fI\%https://pypi.org/project/XenAPI/\fP
  68567. .sp
  68568. Place a copy of this module on your system. For example, it can
  68569. be placed in the \fIsite packages\fP location on your system.
  68570. .sp
  68571. The location of \fIsite packages\fP can be determined by running:
  68572. .INDENT 0.0
  68573. .INDENT 3.5
  68574. .sp
  68575. .nf
  68576. .ft C
  68577. python \-m site \-\-user\-site
  68578. .ft P
  68579. .fi
  68580. .UNINDENT
  68581. .UNINDENT
  68582. .SS Provider Configuration
  68583. .sp
  68584. Xen requires login credentials to a XenServer.
  68585. .sp
  68586. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  68587. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  68588. .INDENT 0.0
  68589. .INDENT 3.5
  68590. .sp
  68591. .nf
  68592. .ft C
  68593. # /etc/salt/cloud.providers.d/myxen.conf
  68594. myxen:
  68595. driver: xen
  68596. url: https://10.0.0.120
  68597. user: root
  68598. password: p@ssw0rd
  68599. .ft P
  68600. .fi
  68601. .UNINDENT
  68602. .UNINDENT
  68603. .INDENT 0.0
  68604. .TP
  68605. .B url:
  68606. The \fBurl\fP option supports both \fBhttp\fP and \fBhttps\fP uri prefixes.
  68607. .TP
  68608. .B user:
  68609. A valid user id to login to the XenServer host.
  68610. .TP
  68611. .B password:
  68612. The associated password for the user.
  68613. .UNINDENT
  68614. .sp
  68615. \fBNOTE:\fP
  68616. .INDENT 0.0
  68617. .INDENT 3.5
  68618. Changed in version 2015.8.0.
  68619. .sp
  68620. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  68621. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  68622. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  68623. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  68624. to use \fBprovider\fP to refer to provider configurations that you define.
  68625. .UNINDENT
  68626. .UNINDENT
  68627. .SS Profile Configuration
  68628. .sp
  68629. Xen profiles require a \fBprovider\fP and \fBimage\fP\&.
  68630. .INDENT 0.0
  68631. .TP
  68632. .B provider:
  68633. This will be the name of your defined provider.
  68634. .TP
  68635. .B image:
  68636. The name of the VM template used to clone or copy.
  68637. .TP
  68638. .B clone:
  68639. The default behavior is to clone a template or VM. This is very fast,
  68640. but requires the source template or VM to be in the same storage
  68641. repository of the new target system. If the source and target are in
  68642. different storage repositories then you must copy the source and not
  68643. clone it by setting \fBclone: False\fP\&.
  68644. .TP
  68645. .B deploy:
  68646. The provisioning process will attempt to install the Salt minion
  68647. service on the new target system by default. This will require login
  68648. credentials for Salt cloud to login via ssh to it. The \fBuser\fP and
  68649. \fBpassword\fP options are required. If \fBdeploy\fP is set to \fBFalse\fP
  68650. then these options are not needed.
  68651. .TP
  68652. .B resource_pool:
  68653. The name of the resource pool used for this profile.
  68654. .TP
  68655. .B storage_repo:
  68656. The name of the storage repository for the target system.
  68657. .TP
  68658. .B ipv4_cidr:
  68659. If template is Windows, and running guest tools then a static
  68660. ip address can be set.
  68661. .TP
  68662. .B ipv4_gw:
  68663. If template is Windows, and running guest tools then a gateway
  68664. can be set.
  68665. .UNINDENT
  68666. .sp
  68667. Set up an initial profile
  68668. at \fB/etc/salt/cloud.profiles\fP or in the \fB/etc/salt/cloud.profiles.d/\fP directory:
  68669. .INDENT 0.0
  68670. .INDENT 3.5
  68671. .sp
  68672. .nf
  68673. .ft C
  68674. # file: /etc/salt/cloud.profiles.d/xenprofiles.conf
  68675. sles:
  68676. provider: myxen
  68677. deploy: False
  68678. image: sles12sp2\-template
  68679. suse:
  68680. user: root
  68681. password: p@ssw0rd
  68682. provider: myxen
  68683. image: opensuseleap42_2\-template
  68684. storage_repo: \(aqLocal storage\(aq
  68685. clone: False
  68686. minion:
  68687. master: 10.0.0.20
  68688. w2k12:
  68689. provider: myxen
  68690. image: w2k12svr\-template
  68691. clone: True
  68692. userdata_file: /srv/salt/win/files/windows\-firewall.ps1
  68693. win_installer: /srv/salt/win/files/Salt\-Minion\-2016.11.3\-AMD64\-Setup.exe
  68694. win_username: Administrator
  68695. win_password: p@ssw0rd
  68696. use_winrm: False
  68697. ipv4_cidr: 10.0.0.215/24
  68698. ipv4_gw: 10.0.0.1
  68699. minion:
  68700. master: 10.0.0.21
  68701. .ft P
  68702. .fi
  68703. .UNINDENT
  68704. .UNINDENT
  68705. .sp
  68706. The first example will create a clone of the sles12sp2\-template in the
  68707. same storage repository without deploying the Salt minion.
  68708. .sp
  68709. The second example will make a copy of the image and deploy a new
  68710. suse VM with the Salt minion installed.
  68711. .sp
  68712. The third example will create a clone of the Windows 2012 template
  68713. and deploy the Salt minion.
  68714. .sp
  68715. The profile can be used with a salt command:
  68716. .INDENT 0.0
  68717. .INDENT 3.5
  68718. .sp
  68719. .nf
  68720. .ft C
  68721. salt\-cloud \-p suse xenvm02
  68722. .ft P
  68723. .fi
  68724. .UNINDENT
  68725. .UNINDENT
  68726. .sp
  68727. This will create an salt minion instance named \fBxenvm02\fP in Xen. If the command was
  68728. executed on the salt\-master, its Salt key will automatically be signed on the master.
  68729. .sp
  68730. Once the instance has been created with a salt\-minion installed, connectivity to
  68731. it can be verified with Salt:
  68732. .INDENT 0.0
  68733. .INDENT 3.5
  68734. .sp
  68735. .nf
  68736. .ft C
  68737. salt xenvm02 test.version
  68738. .ft P
  68739. .fi
  68740. .UNINDENT
  68741. .UNINDENT
  68742. .SS Listing Sizes
  68743. .sp
  68744. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  68745. command:
  68746. .INDENT 0.0
  68747. .INDENT 3.5
  68748. .sp
  68749. .nf
  68750. .ft C
  68751. # salt\-cloud \-\-list\-sizes myxen
  68752. .ft P
  68753. .fi
  68754. .UNINDENT
  68755. .UNINDENT
  68756. .sp
  68757. \fBNOTE:\fP
  68758. .INDENT 0.0
  68759. .INDENT 3.5
  68760. Since size information is build in a template this command
  68761. is not implemented.
  68762. .UNINDENT
  68763. .UNINDENT
  68764. .SS Listing Images
  68765. .sp
  68766. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  68767. command:
  68768. .INDENT 0.0
  68769. .INDENT 3.5
  68770. .sp
  68771. .nf
  68772. .ft C
  68773. # salt\-cloud \-\-list\-images myxen
  68774. .ft P
  68775. .fi
  68776. .UNINDENT
  68777. .UNINDENT
  68778. .sp
  68779. This command will return a list of templates with details.
  68780. .SS Listing Locations
  68781. .sp
  68782. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  68783. command:
  68784. .INDENT 0.0
  68785. .INDENT 3.5
  68786. .sp
  68787. .nf
  68788. .ft C
  68789. # salt\-cloud \-\-list\-locations myxen
  68790. .ft P
  68791. .fi
  68792. .UNINDENT
  68793. .UNINDENT
  68794. .sp
  68795. Returns a list of resource pools.
  68796. .SS Miscellaneous Options
  68797. .SS Miscellaneous Salt Cloud Options
  68798. .sp
  68799. This page describes various miscellaneous options available in Salt Cloud
  68800. .SS Deploy Script Arguments
  68801. .sp
  68802. Custom deploy scripts are unlikely to need custom arguments to be passed to
  68803. them, but salt\-bootstrap has been extended quite a bit, and this may be
  68804. necessary. script_args can be specified in either the profile or the map file,
  68805. to pass arguments to the deploy script:
  68806. .INDENT 0.0
  68807. .INDENT 3.5
  68808. .sp
  68809. .nf
  68810. .ft C
  68811. ec2\-amazon:
  68812. provider: my\-ec2\-config
  68813. image: ami\-1624987f
  68814. size: t1.micro
  68815. ssh_username: ec2\-user
  68816. script: bootstrap\-salt
  68817. script_args: \-c /tmp/
  68818. .ft P
  68819. .fi
  68820. .UNINDENT
  68821. .UNINDENT
  68822. .sp
  68823. This has also been tested to work with pipes, if needed:
  68824. .INDENT 0.0
  68825. .INDENT 3.5
  68826. .sp
  68827. .nf
  68828. .ft C
  68829. script_args: \(aq| head\(aq
  68830. .ft P
  68831. .fi
  68832. .UNINDENT
  68833. .UNINDENT
  68834. .SS Selecting the File Transport
  68835. .sp
  68836. By default, Salt Cloud uses SFTP to transfer files to Linux hosts. However, if
  68837. SFTP is not available, or specific SCP functionality is needed, Salt Cloud can
  68838. be configured to use SCP instead.
  68839. .INDENT 0.0
  68840. .INDENT 3.5
  68841. .sp
  68842. .nf
  68843. .ft C
  68844. file_transport: sftp
  68845. file_transport: scp
  68846. .ft P
  68847. .fi
  68848. .UNINDENT
  68849. .UNINDENT
  68850. .SS Sync After Install
  68851. .sp
  68852. Salt allows users to create custom modules, grains, and states which can be
  68853. synchronised to minions to extend Salt with further functionality.
  68854. .sp
  68855. This option will inform Salt Cloud to synchronise your custom modules, grains,
  68856. states or all these to the minion just after it has been created. For this to
  68857. happen, the following line needs to be added to the main cloud
  68858. configuration file:
  68859. .INDENT 0.0
  68860. .INDENT 3.5
  68861. .sp
  68862. .nf
  68863. .ft C
  68864. sync_after_install: all
  68865. .ft P
  68866. .fi
  68867. .UNINDENT
  68868. .UNINDENT
  68869. .sp
  68870. The available options for this setting are:
  68871. .INDENT 0.0
  68872. .INDENT 3.5
  68873. .sp
  68874. .nf
  68875. .ft C
  68876. modules
  68877. grains
  68878. states
  68879. all
  68880. .ft P
  68881. .fi
  68882. .UNINDENT
  68883. .UNINDENT
  68884. .SS Setting Up New Salt Masters
  68885. .sp
  68886. It has become increasingly common for users to set up multi\-hierarchal
  68887. infrastructures using Salt Cloud. This sometimes involves setting up an
  68888. instance to be a master in addition to a minion. With that in mind, you can
  68889. now lay down master configuration on a machine by specifying master options
  68890. in the profile or map file.
  68891. .INDENT 0.0
  68892. .INDENT 3.5
  68893. .sp
  68894. .nf
  68895. .ft C
  68896. make_master: True
  68897. .ft P
  68898. .fi
  68899. .UNINDENT
  68900. .UNINDENT
  68901. .sp
  68902. This will cause Salt Cloud to generate master keys for the instance, and tell
  68903. salt\-bootstrap to install the salt\-master package, in addition to the
  68904. salt\-minion package.
  68905. .sp
  68906. The default master configuration is usually appropriate for most users, and
  68907. will not be changed unless specific master configuration has been added to the
  68908. profile or map:
  68909. .INDENT 0.0
  68910. .INDENT 3.5
  68911. .sp
  68912. .nf
  68913. .ft C
  68914. master:
  68915. user: root
  68916. interface: 0.0.0.0
  68917. .ft P
  68918. .fi
  68919. .UNINDENT
  68920. .UNINDENT
  68921. .SS Setting Up a Salt Syndic with Salt Cloud
  68922. .sp
  68923. In addition to \fI\%setting up new Salt Masters\fP, syndics can also be
  68924. provisioned using Salt Cloud. In order to set up a Salt Syndic via Salt Cloud,
  68925. a Salt Master needs to be installed on the new machine and a master configuration
  68926. file needs to be set up using the \fBmake_master\fP setting. This setting can be
  68927. defined either in a profile config file or in a map file:
  68928. .INDENT 0.0
  68929. .INDENT 3.5
  68930. .sp
  68931. .nf
  68932. .ft C
  68933. make_master: True
  68934. .ft P
  68935. .fi
  68936. .UNINDENT
  68937. .UNINDENT
  68938. .sp
  68939. To install the Salt Syndic, the only other specification that needs to be
  68940. configured is the \fBsyndic_master\fP key to specify the location of the master
  68941. that the syndic will be reporting to. This modification needs to be placed
  68942. in the \fBmaster\fP setting, which can be configured either in the profile,
  68943. provider, or \fB/etc/salt/cloud\fP config file:
  68944. .INDENT 0.0
  68945. .INDENT 3.5
  68946. .sp
  68947. .nf
  68948. .ft C
  68949. master:
  68950. syndic_master: 123.456.789 # may be either an IP address or a hostname
  68951. .ft P
  68952. .fi
  68953. .UNINDENT
  68954. .UNINDENT
  68955. .sp
  68956. Many other Salt Syndic configuration settings and specifications can be passed
  68957. through to the new syndic machine via the \fBmaster\fP configuration setting.
  68958. See the syndic documentation for more information.
  68959. .SS SSH Port
  68960. .sp
  68961. By default ssh port is set to port 22. If you want to use a custom port in
  68962. provider, profile, or map blocks use ssh_port option.
  68963. .sp
  68964. New in version 2015.5.0.
  68965. .INDENT 0.0
  68966. .INDENT 3.5
  68967. .sp
  68968. .nf
  68969. .ft C
  68970. ssh_port: 2222
  68971. .ft P
  68972. .fi
  68973. .UNINDENT
  68974. .UNINDENT
  68975. .SS Delete SSH Keys
  68976. .sp
  68977. When Salt Cloud deploys an instance, the SSH pub key for the instance is added
  68978. to the known_hosts file for the user that ran the salt\-cloud command. When an
  68979. instance is deployed, a cloud host generally recycles the IP address for
  68980. the instance. When Salt Cloud attempts to deploy an instance using a recycled
  68981. IP address that has previously been accessed from the same machine, the old key
  68982. in the known_hosts file will cause a conflict.
  68983. .sp
  68984. In order to mitigate this issue, Salt Cloud can be configured to remove old
  68985. keys from the known_hosts file when destroying the node. In order to do this,
  68986. the following line needs to be added to the main cloud configuration file:
  68987. .INDENT 0.0
  68988. .INDENT 3.5
  68989. .sp
  68990. .nf
  68991. .ft C
  68992. delete_sshkeys: True
  68993. .ft P
  68994. .fi
  68995. .UNINDENT
  68996. .UNINDENT
  68997. .SS Keeping /tmp/ Files
  68998. .sp
  68999. When Salt Cloud deploys an instance, it uploads temporary files to /tmp/ for
  69000. salt\-bootstrap to put in place. After the script has run, they are deleted. To
  69001. keep these files around (mostly for debugging purposes), the \-\-keep\-tmp option
  69002. can be added:
  69003. .INDENT 0.0
  69004. .INDENT 3.5
  69005. .sp
  69006. .nf
  69007. .ft C
  69008. salt\-cloud \-p myprofile mymachine \-\-keep\-tmp
  69009. .ft P
  69010. .fi
  69011. .UNINDENT
  69012. .UNINDENT
  69013. .sp
  69014. For those wondering why /tmp/ was used instead of /root/, this had to be done
  69015. for images which require the use of sudo, and therefore do not allow remote
  69016. root logins, even for file transfers (which makes /root/ unavailable).
  69017. .SS Hide Output From Minion Install
  69018. .sp
  69019. By default Salt Cloud will stream the output from the minion deploy script
  69020. directly to STDOUT. Although this can been very useful, in certain cases you
  69021. may wish to switch this off. The following config option is there to enable or
  69022. disable this output:
  69023. .INDENT 0.0
  69024. .INDENT 3.5
  69025. .sp
  69026. .nf
  69027. .ft C
  69028. display_ssh_output: False
  69029. .ft P
  69030. .fi
  69031. .UNINDENT
  69032. .UNINDENT
  69033. .SS Connection Timeout
  69034. .sp
  69035. There are several stages when deploying Salt where Salt Cloud needs to wait for
  69036. something to happen. The VM getting its IP address, the VM\(aqs SSH port is
  69037. available, etc.
  69038. .sp
  69039. If you find that the Salt Cloud defaults are not enough and your deployment
  69040. fails because Salt Cloud did not wait log enough, there are some settings you
  69041. can tweak.
  69042. .INDENT 0.0
  69043. .INDENT 3.5
  69044. .IP "Note"
  69045. .sp
  69046. All settings should be provided in lowercase
  69047. All values should be provided in seconds
  69048. .UNINDENT
  69049. .UNINDENT
  69050. .sp
  69051. You can tweak these settings globally, per cloud provider, or event per profile
  69052. definition.
  69053. .SS wait_for_ip_timeout
  69054. .sp
  69055. The amount of time Salt Cloud should wait for a VM to start and get an IP back
  69056. from the cloud host.
  69057. Default: varies by cloud provider ( between 5 and 25 minutes)
  69058. .SS wait_for_ip_interval
  69059. .sp
  69060. The amount of time Salt Cloud should sleep while querying for the VM\(aqs IP.
  69061. Default: varies by cloud provider ( between .5 and 10 seconds)
  69062. .SS ssh_connect_timeout
  69063. .sp
  69064. The amount of time Salt Cloud should wait for a successful SSH connection to
  69065. the VM.
  69066. Default: varies by cloud provider (between 5 and 15 minutes)
  69067. .SS wait_for_passwd_timeout
  69068. .sp
  69069. The amount of time until an ssh connection can be established via password or
  69070. ssh key.
  69071. Default: varies by cloud provider (mostly 15 seconds)
  69072. .SS wait_for_passwd_maxtries
  69073. .sp
  69074. The number of attempts to connect to the VM until we abandon.
  69075. Default: 15 attempts
  69076. .SS wait_for_fun_timeout
  69077. .sp
  69078. Some cloud drivers check for an available IP or a successful SSH connection
  69079. using a function, namely, SoftLayer, and SoftLayer\-HW. So, the amount of time
  69080. Salt Cloud should retry such functions before failing.
  69081. Default: 15 minutes.
  69082. .SS wait_for_spot_timeout
  69083. .sp
  69084. The amount of time Salt Cloud should wait before an EC2 Spot instance is
  69085. available. This setting is only available for the EC2 cloud driver.
  69086. Default: 10 minutes
  69087. .SS Salt Cloud Cache
  69088. .sp
  69089. Salt Cloud can maintain a cache of node data, for supported providers. The
  69090. following options manage this functionality.
  69091. .SS update_cachedir
  69092. .sp
  69093. On supported cloud providers, whether or not to maintain a cache of nodes
  69094. returned from a \-\-full\-query. The data will be stored in \fBmsgpack\fP format
  69095. under \fB<SALT_CACHEDIR>/cloud/active/<DRIVER>/<PROVIDER>/<NODE_NAME>.p\fP\&. This
  69096. setting can be True or False.
  69097. .SS diff_cache_events
  69098. .sp
  69099. When the cloud cachedir is being managed, if differences are encountered
  69100. between the data that is returned live from the cloud host and the data in
  69101. the cache, fire events which describe the changes. This setting can be True or
  69102. False.
  69103. .sp
  69104. Some of these events will contain data which describe a node. Because some of
  69105. the fields returned may contain sensitive data, the \fBcache_event_strip_fields\fP
  69106. configuration option exists to strip those fields from the event return.
  69107. .INDENT 0.0
  69108. .INDENT 3.5
  69109. .sp
  69110. .nf
  69111. .ft C
  69112. cache_event_strip_fields:
  69113. \- password
  69114. \- priv_key
  69115. .ft P
  69116. .fi
  69117. .UNINDENT
  69118. .UNINDENT
  69119. .sp
  69120. The following are events that can be fired based on this data.
  69121. .SS salt/cloud/minionid/cache_node_new
  69122. .sp
  69123. A new node was found on the cloud host which was not listed in the cloud
  69124. cachedir. A dict describing the new node will be contained in the event.
  69125. .SS salt/cloud/minionid/cache_node_missing
  69126. .sp
  69127. A node that was previously listed in the cloud cachedir is no longer available
  69128. on the cloud host.
  69129. .SS salt/cloud/minionid/cache_node_diff
  69130. .sp
  69131. One or more pieces of data in the cloud cachedir has changed on the cloud
  69132. host. A dict containing both the old and the new data will be contained in
  69133. the event.
  69134. .SS SSH Known Hosts
  69135. .sp
  69136. Normally when bootstrapping a VM, salt\-cloud will ignore the SSH host key. This
  69137. is because it does not know what the host key is before starting (because it
  69138. doesn\(aqt exist yet). If strict host key checking is turned on without the key
  69139. in the \fBknown_hosts\fP file, then the host will never be available, and cannot
  69140. be bootstrapped.
  69141. .sp
  69142. If a provider is able to determine the host key before trying to bootstrap it,
  69143. that provider\(aqs driver can add it to the \fBknown_hosts\fP file, and then turn on
  69144. strict host key checking. This can be set up in the main cloud configuration
  69145. file (normally \fB/etc/salt/cloud\fP) or in the provider\-specific configuration
  69146. file:
  69147. .INDENT 0.0
  69148. .INDENT 3.5
  69149. .sp
  69150. .nf
  69151. .ft C
  69152. known_hosts_file: /path/to/.ssh/known_hosts
  69153. .ft P
  69154. .fi
  69155. .UNINDENT
  69156. .UNINDENT
  69157. .sp
  69158. If this is not set, it will default to \fB/dev/null\fP, and strict host key
  69159. checking will be turned off.
  69160. .sp
  69161. It is highly recommended that this option is \fInot\fP set, unless the user has
  69162. verified that the provider supports this functionality, and that the image
  69163. being used is capable of providing the necessary information. At this time,
  69164. only the EC2 driver supports this functionality.
  69165. .SS SSH Agent
  69166. .sp
  69167. New in version 2015.5.0.
  69168. .sp
  69169. If the ssh key is not stored on the server salt\-cloud is being run on, set
  69170. ssh_agent, and salt\-cloud will use the forwarded ssh\-agent to authenticate.
  69171. .INDENT 0.0
  69172. .INDENT 3.5
  69173. .sp
  69174. .nf
  69175. .ft C
  69176. ssh_agent: True
  69177. .ft P
  69178. .fi
  69179. .UNINDENT
  69180. .UNINDENT
  69181. .SS File Map Upload
  69182. .sp
  69183. New in version 2014.7.0.
  69184. .sp
  69185. The \fBfile_map\fP option allows an arbitrary group of files to be uploaded to the
  69186. target system before running the deploy script. This functionality requires a
  69187. provider uses salt.utils.cloud.bootstrap(), which is currently limited to the ec2,
  69188. gce, openstack and nova drivers.
  69189. .sp
  69190. The \fBfile_map\fP can be configured globally in \fB/etc/salt/cloud\fP, or in any cloud
  69191. provider or profile file. For example, to upload an extra package or a custom deploy
  69192. script, a cloud profile using \fBfile_map\fP might look like:
  69193. .INDENT 0.0
  69194. .INDENT 3.5
  69195. .sp
  69196. .nf
  69197. .ft C
  69198. ubuntu14:
  69199. provider: ec2\-config
  69200. image: ami\-98aa1cf0
  69201. size: t1.micro
  69202. ssh_username: root
  69203. securitygroup: default
  69204. file_map:
  69205. /local/path/to/custom/script: /remote/path/to/use/custom/script
  69206. /local/path/to/package: /remote/path/to/store/package
  69207. .ft P
  69208. .fi
  69209. .UNINDENT
  69210. .UNINDENT
  69211. .SS Running Pre\-Flight Commands
  69212. .sp
  69213. New in version 2018.3.0.
  69214. .sp
  69215. To execute specified preflight shell commands on a VM before the deploy script is
  69216. run, use the \fBpreflight_cmds\fP option. These must be defined as a list in a cloud
  69217. configuration file. For example:
  69218. .INDENT 0.0
  69219. .INDENT 3.5
  69220. .sp
  69221. .nf
  69222. .ft C
  69223. my\-cloud\-profile:
  69224. provider: linode\-config
  69225. image: Ubuntu 16.04 LTS
  69226. size: Linode 2048
  69227. preflight_cmds:
  69228. \- whoami
  69229. \- echo \(aqhello world!\(aq
  69230. .ft P
  69231. .fi
  69232. .UNINDENT
  69233. .UNINDENT
  69234. .sp
  69235. These commands will run in sequence \fBbefore\fP the bootstrap script is executed.
  69236. .SS Force Minion Config
  69237. .sp
  69238. New in version 2018.3.0.
  69239. .sp
  69240. The \fBforce_minion_config\fP option requests the bootstrap process to overwrite
  69241. an existing minion configuration file and public/private key files.
  69242. Default: False
  69243. .sp
  69244. This might be important for drivers (such as \fBsaltify\fP) which are expected to
  69245. take over a connection from a former salt master.
  69246. .INDENT 0.0
  69247. .INDENT 3.5
  69248. .sp
  69249. .nf
  69250. .ft C
  69251. my_saltify_provider:
  69252. driver: saltify
  69253. force_minion_config: true
  69254. .ft P
  69255. .fi
  69256. .UNINDENT
  69257. .UNINDENT
  69258. .SS Troubleshooting Steps
  69259. .SS Troubleshooting Salt Cloud
  69260. .sp
  69261. This page describes various steps for troubleshooting problems that may arise
  69262. while using Salt Cloud.
  69263. .SS Virtual Machines Are Created, But Do Not Respond
  69264. .sp
  69265. Are TCP ports 4505 and 4506 open on the master? This is easy to overlook on new
  69266. masters. Information on how to open firewall ports on various platforms can be
  69267. found here\&.
  69268. .SS Generic Troubleshooting Steps
  69269. .sp
  69270. This section describes a set of instructions that are useful to a large number
  69271. of situations, and are likely to solve most issues that arise.
  69272. .SS Debug Mode
  69273. .sp
  69274. Frequently, running Salt Cloud in debug mode will reveal information about a
  69275. deployment which would otherwise not be obvious:
  69276. .INDENT 0.0
  69277. .INDENT 3.5
  69278. .sp
  69279. .nf
  69280. .ft C
  69281. salt\-cloud \-p myprofile myinstance \-l debug
  69282. .ft P
  69283. .fi
  69284. .UNINDENT
  69285. .UNINDENT
  69286. .sp
  69287. Keep in mind that a number of messages will appear that look at first like
  69288. errors, but are in fact intended to give developers factual information to
  69289. assist in debugging. A number of messages that appear will be for cloud
  69290. providers that you do not have configured; in these cases, the message usually
  69291. is intended to confirm that they are not configured.
  69292. .SS Salt Bootstrap
  69293. .sp
  69294. By default, Salt Cloud uses the Salt Bootstrap script to provision instances:
  69295. .sp
  69296. This script is packaged with Salt Cloud, but may be updated without updating
  69297. the Salt package:
  69298. .INDENT 0.0
  69299. .INDENT 3.5
  69300. .sp
  69301. .nf
  69302. .ft C
  69303. salt\-cloud \-u
  69304. .ft P
  69305. .fi
  69306. .UNINDENT
  69307. .UNINDENT
  69308. .SS The Bootstrap Log
  69309. .sp
  69310. If the default deploy script was used, there should be a file in the \fB/tmp/\fP
  69311. directory called \fBbootstrap\-salt.log\fP\&. This file contains the full output from
  69312. the deployment, including any errors that may have occurred.
  69313. .SS Keeping Temp Files
  69314. .sp
  69315. Salt Cloud uploads minion\-specific files to instances once they are available
  69316. via SSH, and then executes a deploy script to put them into the correct place
  69317. and install Salt. The \fB\-\-keep\-tmp\fP option will instruct Salt Cloud not to
  69318. remove those files when finished with them, so that the user may inspect them
  69319. for problems:
  69320. .INDENT 0.0
  69321. .INDENT 3.5
  69322. .sp
  69323. .nf
  69324. .ft C
  69325. salt\-cloud \-p myprofile myinstance \-\-keep\-tmp
  69326. .ft P
  69327. .fi
  69328. .UNINDENT
  69329. .UNINDENT
  69330. .sp
  69331. By default, Salt Cloud will create a directory on the target instance called
  69332. \fB/tmp/.saltcloud/\fP\&. This directory should be owned by the user that is to
  69333. execute the deploy script, and should have permissions of \fB0700\fP\&.
  69334. .sp
  69335. Most cloud hosts are configured to use \fBroot\fP as the default initial user
  69336. for deployment, and as such, this directory and all files in it should be owned
  69337. by the \fBroot\fP user.
  69338. .sp
  69339. The \fB/tmp/.saltcloud/\fP directory should the following files:
  69340. .INDENT 0.0
  69341. .IP \(bu 2
  69342. A \fBdeploy.sh\fP script. This script should have permissions of \fB0755\fP\&.
  69343. .IP \(bu 2
  69344. A \fB\&.pem\fP and \fB\&.pub\fP key named after the minion. The \fB\&.pem\fP file should
  69345. have permissions of \fB0600\fP\&. Ensure that the \fB\&.pem\fP and \fB\&.pub\fP files have
  69346. been properly copied to the \fB/etc/salt/pki/minion/\fP directory.
  69347. .IP \(bu 2
  69348. A file called \fBminion\fP\&. This file should have been copied to the
  69349. \fB/etc/salt/\fP directory.
  69350. .IP \(bu 2
  69351. Optionally, a file called \fBgrains\fP\&. This file, if present, should have been
  69352. copied to the \fB/etc/salt/\fP directory.
  69353. .UNINDENT
  69354. .SS Unprivileged Primary Users
  69355. .sp
  69356. Some cloud hosts, most notably EC2, are configured with a different primary user.
  69357. Some common examples are \fBec2\-user\fP, \fBubuntu\fP, \fBfedora\fP, and \fBbitnami\fP\&.
  69358. In these cases, the \fB/tmp/.saltcloud/\fP directory and all files in it should
  69359. be owned by this user.
  69360. .sp
  69361. Some cloud hosts, such as EC2, are configured to not require these users to
  69362. provide a password when using the \fBsudo\fP command. Because it is more secure
  69363. to require \fBsudo\fP users to provide a password, other hosts are configured
  69364. that way.
  69365. .sp
  69366. If this instance is required to provide a password, it needs to be configured
  69367. in Salt Cloud. A password for sudo to use may be added to either the provider
  69368. configuration or the profile configuration:
  69369. .INDENT 0.0
  69370. .INDENT 3.5
  69371. .sp
  69372. .nf
  69373. .ft C
  69374. sudo_password: mypassword
  69375. .ft P
  69376. .fi
  69377. .UNINDENT
  69378. .UNINDENT
  69379. .SS \fB/tmp/\fP is Mounted as \fBnoexec\fP
  69380. .sp
  69381. It is more secure to mount the \fB/tmp/\fP directory with a \fBnoexec\fP option.
  69382. This is uncommon on most cloud hosts, but very common in private
  69383. environments. To see if the \fB/tmp/\fP directory is mounted this way, run the
  69384. following command:
  69385. .INDENT 0.0
  69386. .INDENT 3.5
  69387. .sp
  69388. .nf
  69389. .ft C
  69390. mount | grep tmp
  69391. .ft P
  69392. .fi
  69393. .UNINDENT
  69394. .UNINDENT
  69395. .sp
  69396. The if the output of this command includes a line that looks like this, then
  69397. the \fB/tmp/\fP directory is mounted as \fBnoexec\fP:
  69398. .INDENT 0.0
  69399. .INDENT 3.5
  69400. .sp
  69401. .nf
  69402. .ft C
  69403. tmpfs on /tmp type tmpfs (rw,noexec)
  69404. .ft P
  69405. .fi
  69406. .UNINDENT
  69407. .UNINDENT
  69408. .sp
  69409. If this is the case, then the \fBdeploy_command\fP will need to be changed
  69410. in order to run the deploy script through the \fBsh\fP command, rather than trying
  69411. to execute it directly. This may be specified in either the provider or the
  69412. profile config:
  69413. .INDENT 0.0
  69414. .INDENT 3.5
  69415. .sp
  69416. .nf
  69417. .ft C
  69418. deploy_command: sh /tmp/.saltcloud/deploy.sh
  69419. .ft P
  69420. .fi
  69421. .UNINDENT
  69422. .UNINDENT
  69423. .sp
  69424. Please note that by default, Salt Cloud will place its files in a directory
  69425. called \fB/tmp/.saltcloud/\fP\&. This may be also be changed in the provider or
  69426. profile configuration:
  69427. .INDENT 0.0
  69428. .INDENT 3.5
  69429. .sp
  69430. .nf
  69431. .ft C
  69432. tmp_dir: /tmp/.saltcloud/
  69433. .ft P
  69434. .fi
  69435. .UNINDENT
  69436. .UNINDENT
  69437. .sp
  69438. If this directory is changed, then the \fBdeploy_command\fP need to be changed
  69439. in order to reflect the \fBtmp_dir\fP configuration.
  69440. .SS Executing the Deploy Script Manually
  69441. .sp
  69442. If all of the files needed for deployment were successfully uploaded to the
  69443. correct locations, and contain the correct permissions and ownerships, the
  69444. deploy script may be executed manually in order to check for other issues:
  69445. .INDENT 0.0
  69446. .INDENT 3.5
  69447. .sp
  69448. .nf
  69449. .ft C
  69450. cd /tmp/.saltcloud/
  69451. \&./deploy.sh
  69452. .ft P
  69453. .fi
  69454. .UNINDENT
  69455. .UNINDENT
  69456. .SS Extending Salt Cloud
  69457. .SS Writing Cloud Driver Modules
  69458. .sp
  69459. Salt Cloud runs on a module system similar to the main Salt project. The
  69460. modules inside saltcloud exist in the \fBsalt/cloud/clouds\fP directory of the
  69461. salt source.
  69462. .sp
  69463. There are two basic types of cloud modules. If a cloud host is supported by
  69464. libcloud, then using it is the fastest route to getting a module written. The
  69465. Apache Libcloud project is located at:
  69466. .sp
  69467. \fI\%http://libcloud.apache.org/\fP
  69468. .sp
  69469. Not every cloud host is supported by libcloud. Additionally, not every
  69470. feature in a supported cloud host is necessarily supported by libcloud. In
  69471. either of these cases, a module can be created which does not rely on libcloud.
  69472. .SS All Driver Modules
  69473. .sp
  69474. The following functions are required by all driver modules, whether or not they are
  69475. based on libcloud.
  69476. .SS The __virtual__() Function
  69477. .sp
  69478. This function determines whether or not to make this cloud module available
  69479. upon execution. Most often, it uses \fBget_configured_provider()\fP to determine
  69480. if the necessary configuration has been set up. It may also check for necessary
  69481. imports, to decide whether to load the module. In most cases, it will return a
  69482. \fBTrue\fP or \fBFalse\fP value. If the name of the driver used does not match the
  69483. filename, then that name should be returned instead of \fBTrue\fP\&. An example of
  69484. this may be seen in the Azure module:
  69485. .sp
  69486. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/msazure.py\fP
  69487. .SS The get_configured_provider() Function
  69488. .sp
  69489. This function uses \fBconfig.is_provider_configured()\fP to determine whether
  69490. all required information for this driver has been configured. The last value
  69491. in the list of required settings should be followed by a comma.
  69492. .SS Libcloud Based Modules
  69493. .sp
  69494. Writing a cloud module based on libcloud has two major advantages. First of all,
  69495. much of the work has already been done by the libcloud project. Second, most of
  69496. the functions necessary to Salt have already been added to the Salt Cloud
  69497. project.
  69498. .SS The create() Function
  69499. .sp
  69500. The most important function that does need to be manually written is the
  69501. \fBcreate()\fP function. This is what is used to request a virtual machine to be
  69502. created by the cloud host, wait for it to become available, and then
  69503. (optionally) log in and install Salt on it.
  69504. .sp
  69505. A good example to follow for writing a cloud driver module based on libcloud
  69506. is the module provided for Linode:
  69507. .sp
  69508. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/linode.py\fP
  69509. .sp
  69510. The basic flow of a \fBcreate()\fP function is as follows:
  69511. .INDENT 0.0
  69512. .IP \(bu 2
  69513. Send a request to the cloud host to create a virtual machine.
  69514. .IP \(bu 2
  69515. Wait for the virtual machine to become available.
  69516. .IP \(bu 2
  69517. Generate kwargs to be used to deploy Salt.
  69518. .IP \(bu 2
  69519. Log into the virtual machine and deploy Salt.
  69520. .IP \(bu 2
  69521. Return a data structure that describes the newly\-created virtual machine.
  69522. .UNINDENT
  69523. .sp
  69524. At various points throughout this function, events may be fired on the Salt
  69525. event bus. Four of these events, which are described below, are required. Other
  69526. events may be added by the user, where appropriate.
  69527. .sp
  69528. When the \fBcreate()\fP function is called, it is passed a data structure called
  69529. \fBvm_\fP\&. This dict contains a composite of information describing the virtual
  69530. machine to be created. A dict called \fB__opts__\fP is also provided by Salt,
  69531. which contains the options used to run Salt Cloud, as well as a set of
  69532. configuration and environment variables.
  69533. .sp
  69534. The first thing the \fBcreate()\fP function must do is fire an event stating that
  69535. it has started the create process. This event is tagged
  69536. \fBsalt/cloud/<vm name>/creating\fP\&. The payload contains the names of the VM,
  69537. profile, and provider.
  69538. .sp
  69539. A set of kwargs is then usually created, to describe the parameters required
  69540. by the cloud host to request the virtual machine.
  69541. .sp
  69542. An event is then fired to state that a virtual machine is about to be requested.
  69543. It is tagged as \fBsalt/cloud/<vm name>/requesting\fP\&. The payload contains most
  69544. or all of the parameters that will be sent to the cloud host. Any private
  69545. information (such as passwords) should not be sent in the event.
  69546. .sp
  69547. After a request is made, a set of deploy kwargs will be generated. These will
  69548. be used to install Salt on the target machine. Windows options are supported
  69549. at this point, and should be generated, even if the cloud host does not
  69550. currently support Windows. This will save time in the future if the host
  69551. does eventually decide to support Windows.
  69552. .sp
  69553. An event is then fired to state that the deploy process is about to begin. This
  69554. event is tagged \fBsalt/cloud/<vm name>/deploying\fP\&. The payload for the event
  69555. will contain a set of deploy kwargs, useful for debugging purposed. Any private
  69556. data, including passwords and keys (including public keys) should be stripped
  69557. from the deploy kwargs before the event is fired.
  69558. .sp
  69559. If any Windows options have been passed in, the
  69560. \fBsalt.utils.cloud.deploy_windows()\fP function will be called. Otherwise, it
  69561. will be assumed that the target is a Linux or Unix machine, and the
  69562. \fBsalt.utils.cloud.deploy_script()\fP will be called.
  69563. .sp
  69564. Both of these functions will wait for the target machine to become available,
  69565. then the necessary port to log in, then a successful login that can be used to
  69566. install Salt. Minion configuration and keys will then be uploaded to a temporary
  69567. directory on the target by the appropriate function. On a Windows target, the
  69568. Windows Minion Installer will be run in silent mode. On a Linux/Unix target, a
  69569. deploy script (\fBbootstrap\-salt.sh\fP, by default) will be run, which will
  69570. auto\-detect the operating system, and install Salt using its native package
  69571. manager. These do not need to be handled by the developer in the cloud module.
  69572. .sp
  69573. The \fBsalt.utils.cloud.validate_windows_cred()\fP function has been extended to
  69574. take the number of retries and retry_delay parameters in case a specific cloud
  69575. host has a delay between providing the Windows credentials and the
  69576. credentials being available for use. In their \fBcreate()\fP function, or as
  69577. a sub\-function called during the creation process, developers should use the
  69578. \fBwin_deploy_auth_retries\fP and \fBwin_deploy_auth_retry_delay\fP parameters from
  69579. the provider configuration to allow the end\-user the ability to customize the
  69580. number of tries and delay between tries for their particular host.
  69581. .sp
  69582. After the appropriate deploy function completes, a final event is fired
  69583. which describes the virtual machine that has just been created. This event is
  69584. tagged \fBsalt/cloud/<vm name>/created\fP\&. The payload contains the names of the
  69585. VM, profile, and provider.
  69586. .sp
  69587. Finally, a dict (queried from the provider) which describes the new virtual
  69588. machine is returned to the user. Because this data is not fired on the event
  69589. bus it can, and should, return any passwords that were returned by the cloud
  69590. host. In some cases (for example, Rackspace), this is the only time that
  69591. the password can be queried by the user; post\-creation queries may not contain
  69592. password information (depending upon the host).
  69593. .SS The libcloudfuncs Functions
  69594. .sp
  69595. A number of other functions are required for all cloud hosts. However, with
  69596. libcloud\-based modules, these are all provided for free by the libcloudfuncs
  69597. library. The following two lines set up the imports:
  69598. .INDENT 0.0
  69599. .INDENT 3.5
  69600. .sp
  69601. .nf
  69602. .ft C
  69603. from salt.cloud.libcloudfuncs import * # pylint: disable=W0614,W0401
  69604. import salt.utils.functools
  69605. .ft P
  69606. .fi
  69607. .UNINDENT
  69608. .UNINDENT
  69609. .sp
  69610. And then a series of declarations will make the necessary functions available
  69611. within the cloud module.
  69612. .INDENT 0.0
  69613. .INDENT 3.5
  69614. .sp
  69615. .nf
  69616. .ft C
  69617. get_size = salt.utils.functools.namespaced_function(get_size, globals())
  69618. get_image = salt.utils.functools.namespaced_function(get_image, globals())
  69619. avail_locations = salt.utils.functools.namespaced_function(avail_locations, globals())
  69620. avail_images = salt.utils.functools.namespaced_function(avail_images, globals())
  69621. avail_sizes = salt.utils.functools.namespaced_function(avail_sizes, globals())
  69622. script = salt.utils.functools.namespaced_function(script, globals())
  69623. destroy = salt.utils.functools.namespaced_function(destroy, globals())
  69624. list_nodes = salt.utils.functools.namespaced_function(list_nodes, globals())
  69625. list_nodes_full = salt.utils.functools.namespaced_function(list_nodes_full, globals())
  69626. list_nodes_select = salt.utils.functools.namespaced_function(
  69627. list_nodes_select, globals()
  69628. )
  69629. show_instance = salt.utils.functools.namespaced_function(show_instance, globals())
  69630. .ft P
  69631. .fi
  69632. .UNINDENT
  69633. .UNINDENT
  69634. .sp
  69635. If necessary, these functions may be replaced by removing the appropriate
  69636. declaration line, and then adding the function as normal.
  69637. .sp
  69638. These functions are required for all cloud modules, and are described in detail
  69639. in the next section.
  69640. .SS Non\-Libcloud Based Modules
  69641. .sp
  69642. In some cases, using libcloud is not an option. This may be because libcloud has
  69643. not yet included the necessary driver itself, or it may be that the driver that
  69644. is included with libcloud does not contain all of the necessary features
  69645. required by the developer. When this is the case, some or all of the functions
  69646. in \fBlibcloudfuncs\fP may be replaced. If they are all replaced, the libcloud
  69647. imports should be absent from the Salt Cloud module.
  69648. .sp
  69649. A good example of a non\-libcloud driver is the DigitalOcean driver:
  69650. .sp
  69651. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/digitalocean.py\fP
  69652. .SS The \fBcreate()\fP Function
  69653. .sp
  69654. The \fBcreate()\fP function must be created as described in the libcloud\-based
  69655. module documentation.
  69656. .SS The get_size() Function
  69657. .sp
  69658. This function is only necessary for libcloud\-based modules, and does not need
  69659. to exist otherwise.
  69660. .SS The get_image() Function
  69661. .sp
  69662. This function is only necessary for libcloud\-based modules, and does not need
  69663. to exist otherwise.
  69664. .SS The avail_locations() Function
  69665. .sp
  69666. This function returns a list of locations available, if the cloud host uses
  69667. multiple data centers. It is not necessary if the cloud host uses only one
  69668. data center. It is normally called using the \fB\-\-list\-locations\fP option.
  69669. .INDENT 0.0
  69670. .INDENT 3.5
  69671. .sp
  69672. .nf
  69673. .ft C
  69674. salt\-cloud \-\-list\-locations my\-cloud\-provider
  69675. .ft P
  69676. .fi
  69677. .UNINDENT
  69678. .UNINDENT
  69679. .SS The avail_images() Function
  69680. .sp
  69681. This function returns a list of images available for this cloud provider. There
  69682. are not currently any known cloud providers that do not provide this
  69683. functionality, though they may refer to images by a different name (for example,
  69684. "templates"). It is normally called using the \fB\-\-list\-images\fP option.
  69685. .INDENT 0.0
  69686. .INDENT 3.5
  69687. .sp
  69688. .nf
  69689. .ft C
  69690. salt\-cloud \-\-list\-images my\-cloud\-provider
  69691. .ft P
  69692. .fi
  69693. .UNINDENT
  69694. .UNINDENT
  69695. .SS The avail_sizes() Function
  69696. .sp
  69697. This function returns a list of sizes available for this cloud provider.
  69698. Generally, this refers to a combination of RAM, CPU, and/or disk space. This
  69699. functionality may not be present on some cloud providers. For example, the
  69700. Parallels module breaks down RAM, CPU, and disk space into separate options,
  69701. whereas in other providers, these options are baked into the image. It is
  69702. normally called using the \fB\-\-list\-sizes\fP option.
  69703. .INDENT 0.0
  69704. .INDENT 3.5
  69705. .sp
  69706. .nf
  69707. .ft C
  69708. salt\-cloud \-\-list\-sizes my\-cloud\-provider
  69709. .ft P
  69710. .fi
  69711. .UNINDENT
  69712. .UNINDENT
  69713. .SS The script() Function
  69714. .sp
  69715. This function builds the deploy script to be used on the remote machine. It is
  69716. likely to be moved into the \fBsalt.utils.cloud\fP library in the near future, as
  69717. it is very generic and can usually be copied wholesale from another module. An
  69718. excellent example is in the Azure driver.
  69719. .SS The destroy() Function
  69720. .sp
  69721. This function irreversibly destroys a virtual machine on the cloud provider.
  69722. Before doing so, it should fire an event on the Salt event bus. The tag for this
  69723. event is \fBsalt/cloud/<vm name>/destroying\fP\&. Once the virtual machine has been
  69724. destroyed, another event is fired. The tag for that event is
  69725. \fBsalt/cloud/<vm name>/destroyed\fP\&.
  69726. .sp
  69727. This function is normally called with the \fB\-d\fP options:
  69728. .INDENT 0.0
  69729. .INDENT 3.5
  69730. .sp
  69731. .nf
  69732. .ft C
  69733. salt\-cloud \-d myinstance
  69734. .ft P
  69735. .fi
  69736. .UNINDENT
  69737. .UNINDENT
  69738. .SS The list_nodes() Function
  69739. .sp
  69740. This function returns a list of nodes available on this cloud provider, using
  69741. the following fields:
  69742. .INDENT 0.0
  69743. .IP \(bu 2
  69744. id (str)
  69745. .IP \(bu 2
  69746. image (str)
  69747. .IP \(bu 2
  69748. size (str)
  69749. .IP \(bu 2
  69750. state (str)
  69751. .IP \(bu 2
  69752. private_ips (list)
  69753. .IP \(bu 2
  69754. public_ips (list)
  69755. .UNINDENT
  69756. .sp
  69757. No other fields should be returned in this function, and all of these fields
  69758. should be returned, even if empty. The private_ips and public_ips fields should
  69759. always be of a list type, even if empty, and the other fields should always be
  69760. of a str type. This function is normally called with the \fB\-Q\fP option:
  69761. .INDENT 0.0
  69762. .INDENT 3.5
  69763. .sp
  69764. .nf
  69765. .ft C
  69766. salt\-cloud \-Q
  69767. .ft P
  69768. .fi
  69769. .UNINDENT
  69770. .UNINDENT
  69771. .SS The list_nodes_full() Function
  69772. .sp
  69773. All information available about all nodes should be returned in this function.
  69774. The fields in the list_nodes() function should also be returned, even if they
  69775. would not normally be provided by the cloud provider. This is because some
  69776. functions both within Salt and 3rd party will break if an expected field is not
  69777. present. This function is normally called with the \fB\-F\fP option:
  69778. .INDENT 0.0
  69779. .INDENT 3.5
  69780. .sp
  69781. .nf
  69782. .ft C
  69783. salt\-cloud \-F
  69784. .ft P
  69785. .fi
  69786. .UNINDENT
  69787. .UNINDENT
  69788. .SS The list_nodes_select() Function
  69789. .sp
  69790. This function returns only the fields specified in the \fBquery.selection\fP
  69791. option in \fB/etc/salt/cloud\fP\&. Because this function is so generic, all of the
  69792. heavy lifting has been moved into the \fBsalt.utils.cloud\fP library.
  69793. .sp
  69794. A function to call \fBlist_nodes_select()\fP still needs to be present. In
  69795. general, the following code can be used as\-is:
  69796. .INDENT 0.0
  69797. .INDENT 3.5
  69798. .sp
  69799. .nf
  69800. .ft C
  69801. def list_nodes_select(call=None):
  69802. """
  69803. Return a list of the VMs that are on the provider, with select fields
  69804. """
  69805. return salt.utils.cloud.list_nodes_select(
  69806. list_nodes_full("function"), __opts__["query.selection"], call,
  69807. )
  69808. .ft P
  69809. .fi
  69810. .UNINDENT
  69811. .UNINDENT
  69812. .sp
  69813. However, depending on the cloud provider, additional variables may be required.
  69814. For instance, some modules use a \fBconn\fP object, or may need to pass other
  69815. options into \fBlist_nodes_full()\fP\&. In this case, be sure to update the function
  69816. appropriately:
  69817. .INDENT 0.0
  69818. .INDENT 3.5
  69819. .sp
  69820. .nf
  69821. .ft C
  69822. def list_nodes_select(conn=None, call=None):
  69823. """
  69824. Return a list of the VMs that are on the provider, with select fields
  69825. """
  69826. if not conn:
  69827. conn = get_conn() # pylint: disable=E0602
  69828. return salt.utils.cloud.list_nodes_select(
  69829. list_nodes_full(conn, "function"), __opts__["query.selection"], call,
  69830. )
  69831. .ft P
  69832. .fi
  69833. .UNINDENT
  69834. .UNINDENT
  69835. .sp
  69836. This function is normally called with the \fB\-S\fP option:
  69837. .INDENT 0.0
  69838. .INDENT 3.5
  69839. .sp
  69840. .nf
  69841. .ft C
  69842. salt\-cloud \-S
  69843. .ft P
  69844. .fi
  69845. .UNINDENT
  69846. .UNINDENT
  69847. .SS The show_instance() Function
  69848. .sp
  69849. This function is used to display all of the information about a single node
  69850. that is available from the cloud provider. The simplest way to provide this is
  69851. usually to call \fBlist_nodes_full()\fP, and return just the data for the
  69852. requested node. It is normally called as an action:
  69853. .INDENT 0.0
  69854. .INDENT 3.5
  69855. .sp
  69856. .nf
  69857. .ft C
  69858. salt\-cloud \-a show_instance myinstance
  69859. .ft P
  69860. .fi
  69861. .UNINDENT
  69862. .UNINDENT
  69863. .SS Actions and Functions
  69864. .sp
  69865. Extra functionality may be added to a cloud provider in the form of an
  69866. \fB\-\-action\fP or a \fB\-\-function\fP\&. Actions are performed against a cloud
  69867. instance/virtual machine, and functions are performed against a cloud provider.
  69868. .SS Actions
  69869. .sp
  69870. Actions are calls that are performed against a specific instance or virtual
  69871. machine. The \fBshow_instance\fP action should be available in all cloud modules.
  69872. Actions are normally called with the \fB\-a\fP option:
  69873. .INDENT 0.0
  69874. .INDENT 3.5
  69875. .sp
  69876. .nf
  69877. .ft C
  69878. salt\-cloud \-a show_instance myinstance
  69879. .ft P
  69880. .fi
  69881. .UNINDENT
  69882. .UNINDENT
  69883. .sp
  69884. Actions must accept a \fBname\fP as a first argument, may optionally support any
  69885. number of kwargs as appropriate, and must accept an argument of \fBcall\fP, with
  69886. a default of \fBNone\fP\&.
  69887. .sp
  69888. Before performing any other work, an action should normally verify that it has
  69889. been called correctly. It may then perform the desired feature, and return
  69890. useful information to the user. A basic action looks like:
  69891. .INDENT 0.0
  69892. .INDENT 3.5
  69893. .sp
  69894. .nf
  69895. .ft C
  69896. def show_instance(name, call=None):
  69897. """
  69898. Show the details from EC2 concerning an AMI
  69899. """
  69900. if call != "action":
  69901. raise SaltCloudSystemExit(
  69902. "The show_instance action must be called with \-a or \-\-action."
  69903. )
  69904. return _get_node(name)
  69905. .ft P
  69906. .fi
  69907. .UNINDENT
  69908. .UNINDENT
  69909. .sp
  69910. Please note that generic kwargs, if used, are passed through to actions as
  69911. \fBkwargs\fP and not \fB**kwargs\fP\&. An example of this is seen in the Functions
  69912. section.
  69913. .SS Functions
  69914. .sp
  69915. Functions are called that are performed against a specific cloud provider. An
  69916. optional function that is often useful is \fBshow_image\fP, which describes an
  69917. image in detail. Functions are normally called with the \fB\-f\fP option:
  69918. .INDENT 0.0
  69919. .INDENT 3.5
  69920. .sp
  69921. .nf
  69922. .ft C
  69923. salt\-cloud \-f show_image my\-cloud\-provider image=\(aqUbuntu 13.10 64\-bit\(aq
  69924. .ft P
  69925. .fi
  69926. .UNINDENT
  69927. .UNINDENT
  69928. .sp
  69929. A function may accept any number of kwargs as appropriate, and must accept an
  69930. argument of \fBcall\fP with a default of \fBNone\fP\&.
  69931. .sp
  69932. Before performing any other work, a function should normally verify that it has
  69933. been called correctly. It may then perform the desired feature, and return
  69934. useful information to the user. A basic function looks like:
  69935. .INDENT 0.0
  69936. .INDENT 3.5
  69937. .sp
  69938. .nf
  69939. .ft C
  69940. def show_image(kwargs, call=None):
  69941. """
  69942. Show the details from EC2 concerning an AMI
  69943. """
  69944. if call != "function":
  69945. raise SaltCloudSystemExit(
  69946. "The show_image action must be called with \-f or \-\-function."
  69947. )
  69948. params = {"ImageId.1": kwargs["image"], "Action": "DescribeImages"}
  69949. result = query(params)
  69950. log.info(result)
  69951. return result
  69952. .ft P
  69953. .fi
  69954. .UNINDENT
  69955. .UNINDENT
  69956. .sp
  69957. Take note that generic kwargs are passed through to functions as \fBkwargs\fP and
  69958. not \fB**kwargs\fP\&.
  69959. .SS Cloud deployment scripts
  69960. .sp
  69961. Salt Cloud works primarily by executing a script on the virtual machines as
  69962. soon as they become available. The script that is executed is referenced in the
  69963. cloud profile as the \fBscript\fP\&. In older versions, this was the \fBos\fP
  69964. argument. This was changed in 0.8.2.
  69965. .sp
  69966. A number of legacy scripts exist in the deploy directory in the saltcloud
  69967. source tree. The preferred method is currently to use the salt\-bootstrap
  69968. script. A stable version is included with each release tarball starting with
  69969. 0.8.4. The most updated version can be found at:
  69970. .sp
  69971. \fI\%https://github.com/saltstack/salt\-bootstrap\fP
  69972. .sp
  69973. Note that, somewhat counter\-intuitively, this script is referenced as
  69974. \fBbootstrap\-salt\fP in the configuration.
  69975. .sp
  69976. You can specify a deploy script in the cloud configuration file
  69977. (\fB/etc/salt/cloud\fP by default):
  69978. .INDENT 0.0
  69979. .INDENT 3.5
  69980. .sp
  69981. .nf
  69982. .ft C
  69983. script: bootstrap\-salt
  69984. .ft P
  69985. .fi
  69986. .UNINDENT
  69987. .UNINDENT
  69988. .sp
  69989. Or in a provider:
  69990. .INDENT 0.0
  69991. .INDENT 3.5
  69992. .sp
  69993. .nf
  69994. .ft C
  69995. my\-provider:
  69996. # snip...
  69997. script: bootstrap\-salt
  69998. .ft P
  69999. .fi
  70000. .UNINDENT
  70001. .UNINDENT
  70002. .sp
  70003. Or in a profile:
  70004. .INDENT 0.0
  70005. .INDENT 3.5
  70006. .sp
  70007. .nf
  70008. .ft C
  70009. my\-profile:
  70010. provider: my\-provider
  70011. # snip...
  70012. script: bootstrap\-salt
  70013. .ft P
  70014. .fi
  70015. .UNINDENT
  70016. .UNINDENT
  70017. .sp
  70018. If you do not specify a script argument in your cloud configuration file,
  70019. provider configuration or profile configuration, the "bootstrap\-salt" script
  70020. will be used by default.
  70021. .SS Other Generic Deploy Scripts
  70022. .sp
  70023. If you want to be assured of always using the latest Salt Bootstrap script,
  70024. there are a few generic templates available in the deploy directory of your
  70025. saltcloud source tree:
  70026. .INDENT 0.0
  70027. .INDENT 3.5
  70028. .sp
  70029. .nf
  70030. .ft C
  70031. curl\-bootstrap
  70032. curl\-bootstrap\-git
  70033. python\-bootstrap
  70034. wget\-bootstrap
  70035. wget\-bootstrap\-git
  70036. .ft P
  70037. .fi
  70038. .UNINDENT
  70039. .UNINDENT
  70040. .sp
  70041. These are example scripts which were designed to be customized, adapted, and
  70042. refit to meet your needs. One important use of them is to pass options to
  70043. the salt\-bootstrap script, such as updating to specific git tags.
  70044. .SS Custom Deploy Scripts
  70045. .sp
  70046. If the Salt Bootstrap script does not meet your needs, you may write your own.
  70047. The script should be written in shell and is a Jinja template. Deploy scripts
  70048. need to execute a number of functions to do a complete salt setup. These
  70049. functions include:
  70050. .INDENT 0.0
  70051. .IP 1. 3
  70052. Install the salt minion. If this can be done via system packages this method
  70053. is HIGHLY preferred.
  70054. .IP 2. 3
  70055. Add the salt minion keys before the minion is started for the first time.
  70056. The minion keys are available as strings that can be copied into place in
  70057. the Jinja template under the dict named "vm".
  70058. .IP 3. 3
  70059. Start the salt\-minion daemon and enable it at startup time.
  70060. .IP 4. 3
  70061. Set up the minion configuration file from the "minion" data available in
  70062. the Jinja template.
  70063. .UNINDENT
  70064. .sp
  70065. A good, well commented example of this process is the Fedora deployment
  70066. script:
  70067. .sp
  70068. \fI\%https://github.com/saltstack/salt/blob/master/salt/cloud/deploy/Fedora.sh\fP
  70069. .sp
  70070. A number of legacy deploy scripts are included with the release tarball. None
  70071. of them are as functional or complete as Salt Bootstrap, and are still included
  70072. for academic purposes.
  70073. .sp
  70074. Custom deploy scripts are picked up from \fB/etc/salt/cloud.deploy.d\fP by
  70075. default, but you can change the location of deploy scripts with the cloud
  70076. configuration \fBdeploy_scripts_search_path\fP\&. Additionally, if your deploy
  70077. script has the extension \fB\&.sh\fP, you can leave out the extension in your
  70078. configuration.
  70079. .sp
  70080. For example, if your custom deploy script is located in
  70081. \fB/etc/salt/cloud.deploy.d/my_deploy.sh\fP, you could specify it in a cloud
  70082. profile like this:
  70083. .INDENT 0.0
  70084. .INDENT 3.5
  70085. .sp
  70086. .nf
  70087. .ft C
  70088. my\-profile:
  70089. provider: my\-provider
  70090. # snip...
  70091. script: my_deploy
  70092. .ft P
  70093. .fi
  70094. .UNINDENT
  70095. .UNINDENT
  70096. .sp
  70097. You\(aqre also free to use the full path to the script if you like. Using full
  70098. paths, your script doesn\(aqt have to live inside \fB/etc/salt/cloud.deploy.d\fP or
  70099. whatever you\(aqve configured with \fBdeploy_scripts_search_path\fP\&.
  70100. .SS Post\-Deploy Commands
  70101. .sp
  70102. Once a minion has been deployed, it has the option to run a salt command.
  70103. Normally, this would be the \fBstate.apply\fP,
  70104. which would finish provisioning the VM. Another common option (for testing) is
  70105. to use \fBtest.version\fP\&. This is configured in the
  70106. main cloud config file:
  70107. .INDENT 0.0
  70108. .INDENT 3.5
  70109. .sp
  70110. .nf
  70111. .ft C
  70112. start_action: state.apply
  70113. .ft P
  70114. .fi
  70115. .UNINDENT
  70116. .UNINDENT
  70117. .sp
  70118. This is currently considered to be experimental functionality, and may not work
  70119. well with all cloud hosts. If you experience problems with Salt Cloud hanging
  70120. after Salt is deployed, consider using Startup States instead:
  70121. .sp
  70122. \fI\%http://docs.saltstack.com/ref/states/startup.html\fP
  70123. .SS Skipping the Deploy Script
  70124. .sp
  70125. For whatever reason, you may want to skip the deploy script altogether. This
  70126. results in a VM being spun up much faster, with absolutely no configuration.
  70127. This can be set from the command line:
  70128. .INDENT 0.0
  70129. .INDENT 3.5
  70130. .sp
  70131. .nf
  70132. .ft C
  70133. salt\-cloud \-\-no\-deploy \-p micro_aws my_instance
  70134. .ft P
  70135. .fi
  70136. .UNINDENT
  70137. .UNINDENT
  70138. .sp
  70139. Or it can be set from the main cloud config file:
  70140. .INDENT 0.0
  70141. .INDENT 3.5
  70142. .sp
  70143. .nf
  70144. .ft C
  70145. deploy: False
  70146. .ft P
  70147. .fi
  70148. .UNINDENT
  70149. .UNINDENT
  70150. .sp
  70151. Or it can be set from the provider\(aqs configuration:
  70152. .INDENT 0.0
  70153. .INDENT 3.5
  70154. .sp
  70155. .nf
  70156. .ft C
  70157. RACKSPACE.user: example_user
  70158. RACKSPACE.apikey: 123984bjjas87034
  70159. RACKSPACE.deploy: False
  70160. .ft P
  70161. .fi
  70162. .UNINDENT
  70163. .UNINDENT
  70164. .sp
  70165. Or even on the VM\(aqs profile settings:
  70166. .INDENT 0.0
  70167. .INDENT 3.5
  70168. .sp
  70169. .nf
  70170. .ft C
  70171. ubuntu_aws:
  70172. provider: my\-ec2\-config
  70173. image: ami\-7e2da54e
  70174. size: t1.micro
  70175. deploy: False
  70176. .ft P
  70177. .fi
  70178. .UNINDENT
  70179. .UNINDENT
  70180. .sp
  70181. The default for deploy is True.
  70182. .sp
  70183. In the profile, you may also set the script option to \fBNone\fP:
  70184. .INDENT 0.0
  70185. .INDENT 3.5
  70186. .sp
  70187. .nf
  70188. .ft C
  70189. script: None
  70190. .ft P
  70191. .fi
  70192. .UNINDENT
  70193. .UNINDENT
  70194. .sp
  70195. This is the slowest option, since it still uploads the None deploy script and
  70196. executes it.
  70197. .SS Updating Salt Bootstrap
  70198. .sp
  70199. Salt Bootstrap can be updated automatically with \fBsalt\-cloud\fP:
  70200. .INDENT 0.0
  70201. .INDENT 3.5
  70202. .sp
  70203. .nf
  70204. .ft C
  70205. salt\-cloud \-u
  70206. salt\-cloud \-\-update\-bootstrap
  70207. .ft P
  70208. .fi
  70209. .UNINDENT
  70210. .UNINDENT
  70211. .sp
  70212. Bear in mind that this updates to the latest \fBstable\fP version from:
  70213. .sp
  70214. \fI\%https://bootstrap.saltstack.com/stable/bootstrap\-salt.sh\fP
  70215. .sp
  70216. To update Salt Bootstrap script to the \fBdevelop\fP version, run the following
  70217. command on the Salt minion host with \fBsalt\-cloud\fP installed:
  70218. .INDENT 0.0
  70219. .INDENT 3.5
  70220. .sp
  70221. .nf
  70222. .ft C
  70223. salt\-call config.gather_bootstrap_script \(aqhttps://bootstrap.saltstack.com/develop/bootstrap\-salt.sh\(aq
  70224. .ft P
  70225. .fi
  70226. .UNINDENT
  70227. .UNINDENT
  70228. .sp
  70229. Or just download the file manually:
  70230. .INDENT 0.0
  70231. .INDENT 3.5
  70232. .sp
  70233. .nf
  70234. .ft C
  70235. curl \-L \(aqhttps://bootstrap.saltstack.com/develop\(aq > /etc/salt/cloud.deploy.d/bootstrap\-salt.sh
  70236. .ft P
  70237. .fi
  70238. .UNINDENT
  70239. .UNINDENT
  70240. .SS Keeping /tmp/ Files
  70241. .sp
  70242. When Salt Cloud deploys an instance, it uploads temporary files to /tmp/ for
  70243. salt\-bootstrap to put in place. After the script has run, they are deleted. To
  70244. keep these files around (mostly for debugging purposes), the \-\-keep\-tmp option
  70245. can be added:
  70246. .INDENT 0.0
  70247. .INDENT 3.5
  70248. .sp
  70249. .nf
  70250. .ft C
  70251. salt\-cloud \-p myprofile mymachine \-\-keep\-tmp
  70252. .ft P
  70253. .fi
  70254. .UNINDENT
  70255. .UNINDENT
  70256. .sp
  70257. For those wondering why /tmp/ was used instead of /root/, this had to be done
  70258. for images which require the use of sudo, and therefore do not allow remote
  70259. root logins, even for file transfers (which makes /root/ unavailable).
  70260. .SS Deploy Script Arguments
  70261. .sp
  70262. Custom deploy scripts are unlikely to need custom arguments to be passed to
  70263. them, but salt\-bootstrap has been extended quite a bit, and this may be
  70264. necessary. script_args can be specified in either the profile or the map file,
  70265. to pass arguments to the deploy script:
  70266. .INDENT 0.0
  70267. .INDENT 3.5
  70268. .sp
  70269. .nf
  70270. .ft C
  70271. aws\-amazon:
  70272. provider: my\-ec2\-config
  70273. image: ami\-1624987f
  70274. size: t1.micro
  70275. ssh_username: ec2\-user
  70276. script: bootstrap\-salt
  70277. script_args: \-c /tmp/
  70278. .ft P
  70279. .fi
  70280. .UNINDENT
  70281. .UNINDENT
  70282. .sp
  70283. This has also been tested to work with pipes, if needed:
  70284. .INDENT 0.0
  70285. .INDENT 3.5
  70286. .sp
  70287. .nf
  70288. .ft C
  70289. script_args: \(aq| head\(aq
  70290. .ft P
  70291. .fi
  70292. .UNINDENT
  70293. .UNINDENT
  70294. .SS Using Salt Cloud from Salt
  70295. .SS Using the Salt Modules for Cloud
  70296. .sp
  70297. In addition to the \fBsalt\-cloud\fP command, Salt Cloud can be called from Salt,
  70298. in a variety of different ways. Most users will be interested in either the
  70299. execution module or the state module, but it is also possible to call Salt Cloud
  70300. as a runner.
  70301. .sp
  70302. Because the actual work will be performed on a remote minion, the normal Salt
  70303. Cloud configuration must exist on any target minion that needs to execute a Salt
  70304. Cloud command. Because Salt Cloud now supports breaking out configuration into
  70305. individual files, the configuration is easily managed using Salt\(aqs own
  70306. \fBfile.managed\fP state function. For example, the following directories allow
  70307. this configuration to be managed easily:
  70308. .INDENT 0.0
  70309. .INDENT 3.5
  70310. .sp
  70311. .nf
  70312. .ft C
  70313. /etc/salt/cloud.providers.d/
  70314. /etc/salt/cloud.profiles.d/
  70315. .ft P
  70316. .fi
  70317. .UNINDENT
  70318. .UNINDENT
  70319. .SS Minion Keys
  70320. .sp
  70321. Keep in mind that when creating minions, Salt Cloud will create public and
  70322. private minion keys, upload them to the minion, and place the public key on the
  70323. machine that created the minion. It will \fInot\fP attempt to place any public
  70324. minion keys on the master, unless the minion which was used to create the
  70325. instance is also the Salt Master. This is because granting arbitrary minions
  70326. access to modify keys on the master is a serious security risk, and must be
  70327. avoided.
  70328. .SS Execution Module
  70329. .sp
  70330. The \fBcloud\fP module is available to use from the command line. At the moment,
  70331. almost every standard Salt Cloud feature is available to use. The following
  70332. commands are available:
  70333. .SS list_images
  70334. .sp
  70335. This command is designed to show images that are available to be used to create
  70336. an instance using Salt Cloud. In general they are used in the creation of
  70337. profiles, but may also be used to create an instance directly (see below).
  70338. Listing images requires a provider to be configured, and specified:
  70339. .INDENT 0.0
  70340. .INDENT 3.5
  70341. .sp
  70342. .nf
  70343. .ft C
  70344. salt myminion cloud.list_images my\-cloud\-provider
  70345. .ft P
  70346. .fi
  70347. .UNINDENT
  70348. .UNINDENT
  70349. .SS list_sizes
  70350. .sp
  70351. This command is designed to show sizes that are available to be used to create
  70352. an instance using Salt Cloud. In general they are used in the creation of
  70353. profiles, but may also be used to create an instance directly (see below). This
  70354. command is not available for all cloud providers; see the provider\-specific
  70355. documentation for details. Listing sizes requires a provider to be configured,
  70356. and specified:
  70357. .INDENT 0.0
  70358. .INDENT 3.5
  70359. .sp
  70360. .nf
  70361. .ft C
  70362. salt myminion cloud.list_sizes my\-cloud\-provider
  70363. .ft P
  70364. .fi
  70365. .UNINDENT
  70366. .UNINDENT
  70367. .SS list_locations
  70368. .sp
  70369. This command is designed to show locations that are available to be used to
  70370. create an instance using Salt Cloud. In general they are used in the creation of
  70371. profiles, but may also be used to create an instance directly (see below). This
  70372. command is not available for all cloud providers; see the provider\-specific
  70373. documentation for details. Listing locations requires a provider to be
  70374. configured, and specified:
  70375. .INDENT 0.0
  70376. .INDENT 3.5
  70377. .sp
  70378. .nf
  70379. .ft C
  70380. salt myminion cloud.list_locations my\-cloud\-provider
  70381. .ft P
  70382. .fi
  70383. .UNINDENT
  70384. .UNINDENT
  70385. .SS query
  70386. .sp
  70387. This command is used to query all configured cloud providers, and display all
  70388. instances associated with those accounts. By default, it will run a standard
  70389. query, returning the following fields:
  70390. .INDENT 0.0
  70391. .TP
  70392. .B \fBid\fP
  70393. The name or ID of the instance, as used by the cloud provider.
  70394. .TP
  70395. .B \fBimage\fP
  70396. The disk image that was used to create this instance.
  70397. .TP
  70398. .B \fBprivate_ips\fP
  70399. Any public IP addresses currently assigned to this instance.
  70400. .TP
  70401. .B \fBpublic_ips\fP
  70402. Any private IP addresses currently assigned to this instance.
  70403. .TP
  70404. .B \fBsize\fP
  70405. The size of the instance; can refer to RAM, CPU(s), disk space, etc.,
  70406. depending on the cloud provider.
  70407. .TP
  70408. .B \fBstate\fP
  70409. The running state of the instance; for example, \fBrunning\fP, \fBstopped\fP,
  70410. \fBpending\fP, etc. This state is dependent upon the provider.
  70411. .UNINDENT
  70412. .sp
  70413. This command may also be used to perform a full query or a select query, as
  70414. described below. The following usages are available:
  70415. .INDENT 0.0
  70416. .INDENT 3.5
  70417. .sp
  70418. .nf
  70419. .ft C
  70420. salt myminion cloud.query
  70421. salt myminion cloud.query list_nodes
  70422. salt myminion cloud.query list_nodes_full
  70423. .ft P
  70424. .fi
  70425. .UNINDENT
  70426. .UNINDENT
  70427. .SS full_query
  70428. .sp
  70429. This command behaves like the \fBquery\fP command, but lists all information
  70430. concerning each instance as provided by the cloud provider, in addition to the
  70431. fields returned by the \fBquery\fP command.
  70432. .INDENT 0.0
  70433. .INDENT 3.5
  70434. .sp
  70435. .nf
  70436. .ft C
  70437. salt myminion cloud.full_query
  70438. .ft P
  70439. .fi
  70440. .UNINDENT
  70441. .UNINDENT
  70442. .SS select_query
  70443. .sp
  70444. This command behaves like the \fBquery\fP command, but only returned select
  70445. fields as defined in the \fB/etc/salt/cloud\fP configuration file. A sample
  70446. configuration for this section of the file might look like:
  70447. .INDENT 0.0
  70448. .INDENT 3.5
  70449. .sp
  70450. .nf
  70451. .ft C
  70452. query.selection:
  70453. \- id
  70454. \- key_name
  70455. .ft P
  70456. .fi
  70457. .UNINDENT
  70458. .UNINDENT
  70459. .sp
  70460. This configuration would only return the \fBid\fP and \fBkey_name\fP fields, for
  70461. those cloud providers that support those two fields. This would be called using
  70462. the following command:
  70463. .INDENT 0.0
  70464. .INDENT 3.5
  70465. .sp
  70466. .nf
  70467. .ft C
  70468. salt myminion cloud.select_query
  70469. .ft P
  70470. .fi
  70471. .UNINDENT
  70472. .UNINDENT
  70473. .SS profile
  70474. .sp
  70475. This command is used to create an instance using a profile that is configured
  70476. on the target minion. Please note that the profile must be configured before
  70477. this command can be used with it.
  70478. .INDENT 0.0
  70479. .INDENT 3.5
  70480. .sp
  70481. .nf
  70482. .ft C
  70483. salt myminion cloud.profile ec2\-centos64\-x64 my\-new\-instance
  70484. .ft P
  70485. .fi
  70486. .UNINDENT
  70487. .UNINDENT
  70488. .sp
  70489. Please note that the execution module does \fInot\fP run in parallel mode. Using
  70490. multiple minions to create instances can effectively perform parallel instance
  70491. creation.
  70492. .SS create
  70493. .sp
  70494. This command is similar to the \fBprofile\fP command, in that it is used to create
  70495. a new instance. However, it does not require a profile to be pre\-configured.
  70496. Instead, all of the options that are normally configured in a profile are passed
  70497. directly to Salt Cloud to create the instance:
  70498. .INDENT 0.0
  70499. .INDENT 3.5
  70500. .sp
  70501. .nf
  70502. .ft C
  70503. salt myminion cloud.create my\-ec2\-config my\-new\-instance \e
  70504. image=ami\-1624987f size=\(aqt1.micro\(aq ssh_username=ec2\-user \e
  70505. securitygroup=default delvol_on_destroy=True
  70506. .ft P
  70507. .fi
  70508. .UNINDENT
  70509. .UNINDENT
  70510. .sp
  70511. Please note that the execution module does \fInot\fP run in parallel mode. Using
  70512. multiple minions to create instances can effectively perform parallel instance
  70513. creation.
  70514. .SS destroy
  70515. .sp
  70516. This command is used to destroy an instance or instances. This command will
  70517. search all configured providers and remove any instance(s) which matches the
  70518. name(s) passed in here. The results of this command are \fInon\-reversable\fP and
  70519. should be used with caution.
  70520. .INDENT 0.0
  70521. .INDENT 3.5
  70522. .sp
  70523. .nf
  70524. .ft C
  70525. salt myminion cloud.destroy myinstance
  70526. salt myminion cloud.destroy myinstance1,myinstance2
  70527. .ft P
  70528. .fi
  70529. .UNINDENT
  70530. .UNINDENT
  70531. .SS action
  70532. .sp
  70533. This command implements both the \fBaction\fP and the \fBfunction\fP commands
  70534. used in the standard \fBsalt\-cloud\fP command. If one of the standard \fBaction\fP
  70535. commands is used, an instance name must be provided. If one of the standard
  70536. \fBfunction\fP commands is used, a provider configuration must be named.
  70537. .INDENT 0.0
  70538. .INDENT 3.5
  70539. .sp
  70540. .nf
  70541. .ft C
  70542. salt myminion cloud.action start instance=myinstance
  70543. salt myminion cloud.action show_image provider=my\-ec2\-config \e
  70544. image=ami\-1624987f
  70545. .ft P
  70546. .fi
  70547. .UNINDENT
  70548. .UNINDENT
  70549. .sp
  70550. The actions available are largely dependent upon the module for the specific
  70551. cloud provider. The following actions are available for all cloud providers:
  70552. .INDENT 0.0
  70553. .TP
  70554. .B \fBlist_nodes\fP
  70555. This is a direct call to the \fBquery\fP function as described above, but is
  70556. only performed against a single cloud provider. A provider configuration
  70557. must be included.
  70558. .TP
  70559. .B \fBlist_nodes_select\fP
  70560. This is a direct call to the \fBfull_query\fP function as described above, but
  70561. is only performed against a single cloud provider. A provider configuration
  70562. must be included.
  70563. .TP
  70564. .B \fBlist_nodes_select\fP
  70565. This is a direct call to the \fBselect_query\fP function as described above,
  70566. but is only performed against a single cloud provider. A provider
  70567. configuration must be included.
  70568. .TP
  70569. .B \fBshow_instance\fP
  70570. This is a thin wrapper around \fBlist_nodes\fP, which returns the full
  70571. information about a single instance. An instance name must be provided.
  70572. .UNINDENT
  70573. .SS State Module
  70574. .sp
  70575. A subset of the execution module is available through the \fBcloud\fP state
  70576. module. Not all functions are currently included, because there is currently
  70577. insufficient code for them to perform statefully. For example, a command to
  70578. create an instance may be issued with a series of options, but those options
  70579. cannot currently be statefully managed. Additional states to manage these
  70580. options will be released at a later time.
  70581. .SS cloud.present
  70582. .sp
  70583. This state will ensure that an instance is present inside a particular cloud
  70584. provider. Any option that is normally specified in the \fBcloud.create\fP
  70585. execution module and function may be declared here, but only the actual
  70586. presence of the instance will be managed statefully.
  70587. .INDENT 0.0
  70588. .INDENT 3.5
  70589. .sp
  70590. .nf
  70591. .ft C
  70592. my\-instance\-name:
  70593. cloud.present:
  70594. \- cloud_provider: my\-ec2\-config
  70595. \- image: ami\-1624987f
  70596. \- size: \(aqt1.micro\(aq
  70597. \- ssh_username: ec2\-user
  70598. \- securitygroup: default
  70599. \- delvol_on_destroy: True
  70600. .ft P
  70601. .fi
  70602. .UNINDENT
  70603. .UNINDENT
  70604. .SS cloud.profile
  70605. .sp
  70606. This state will ensure that an instance is present inside a particular cloud
  70607. provider. This function calls the \fBcloud.profile\fP execution module and
  70608. function, but as with \fBcloud.present\fP, only the actual presence of the
  70609. instance will be managed statefully.
  70610. .INDENT 0.0
  70611. .INDENT 3.5
  70612. .sp
  70613. .nf
  70614. .ft C
  70615. my\-instance\-name:
  70616. cloud.profile:
  70617. \- profile: ec2\-centos64\-x64
  70618. .ft P
  70619. .fi
  70620. .UNINDENT
  70621. .UNINDENT
  70622. .SS cloud.absent
  70623. .sp
  70624. This state will ensure that an instance (identified by name) does not exist in
  70625. any of the cloud providers configured on the target minion. Please note that
  70626. this state is \fInon\-reversable\fP and may be considered especially destructive when
  70627. issued as a cloud state.
  70628. .INDENT 0.0
  70629. .INDENT 3.5
  70630. .sp
  70631. .nf
  70632. .ft C
  70633. my\-instance\-name:
  70634. cloud.absent
  70635. .ft P
  70636. .fi
  70637. .UNINDENT
  70638. .UNINDENT
  70639. .SS Runner Module
  70640. .sp
  70641. The \fBcloud\fP runner module is executed on the master, and performs actions
  70642. using the configuration and Salt modules on the master itself. This means that
  70643. any public minion keys will also be properly accepted by the master.
  70644. .sp
  70645. Using the functions in the runner module is no different than using those in
  70646. the execution module, outside of the behavior described in the above paragraph.
  70647. The following functions are available inside the runner:
  70648. .INDENT 0.0
  70649. .IP \(bu 2
  70650. list_images
  70651. .IP \(bu 2
  70652. list_sizes
  70653. .IP \(bu 2
  70654. list_locations
  70655. .IP \(bu 2
  70656. query
  70657. .IP \(bu 2
  70658. full_query
  70659. .IP \(bu 2
  70660. select_query
  70661. .IP \(bu 2
  70662. profile
  70663. .IP \(bu 2
  70664. destroy
  70665. .IP \(bu 2
  70666. action
  70667. .UNINDENT
  70668. .sp
  70669. Outside of the standard usage of \fBsalt\-run\fP itself, commands are executed as
  70670. usual:
  70671. .INDENT 0.0
  70672. .INDENT 3.5
  70673. .sp
  70674. .nf
  70675. .ft C
  70676. salt\-run cloud.profile ec2\-centos64\-x86_64 my\-instance\-name
  70677. .ft P
  70678. .fi
  70679. .UNINDENT
  70680. .UNINDENT
  70681. .SS CloudClient
  70682. .sp
  70683. The execution, state, and runner modules ultimately all use the CloudClient
  70684. library that ships with Salt. To use the CloudClient library locally (either on
  70685. the master or a minion), create a client object and issue a command against it:
  70686. .INDENT 0.0
  70687. .INDENT 3.5
  70688. .sp
  70689. .nf
  70690. .ft C
  70691. import salt.cloud
  70692. import pprint
  70693. client = salt.cloud.CloudClient("/etc/salt/cloud")
  70694. nodes = client.query()
  70695. pprint.pprint(nodes)
  70696. .ft P
  70697. .fi
  70698. .UNINDENT
  70699. .UNINDENT
  70700. .SS Reactor
  70701. .sp
  70702. Examples of using the reactor with Salt Cloud are available in the
  70703. \fI\%ec2\-autoscale\-reactor\fP and
  70704. \fI\%salt\-cloud\-reactor\fP formulas.
  70705. .SS Feature Comparison
  70706. .SS Feature Matrix
  70707. .sp
  70708. A number of features are available in most cloud hosts, but not all are
  70709. available everywhere. This may be because the feature isn\(aqt supported by the
  70710. cloud host itself, or it may only be that the feature has not yet been
  70711. added to Salt Cloud. In a handful of cases, it is because the feature does not
  70712. make sense for a particular cloud provider (Saltify, for instance).
  70713. .sp
  70714. This matrix shows which features are available in which cloud hosts, as far
  70715. as Salt Cloud is concerned. This is not a comprehensive list of all features
  70716. available in all cloud hosts, and should not be used to make business
  70717. decisions concerning choosing a cloud host. In most cases, adding support
  70718. for a feature to Salt Cloud requires only a little effort.
  70719. .SS Legacy Drivers
  70720. .sp
  70721. Both AWS and Rackspace are listed as "Legacy". This is because those drivers
  70722. have been replaced by other drivers, which are generally the preferred method
  70723. for working with those hosts.
  70724. .sp
  70725. The EC2 driver should be used instead of the AWS driver, when possible. The
  70726. OpenStack driver should be used instead of the Rackspace driver, unless the user
  70727. is dealing with instances in "the old cloud" in Rackspace.
  70728. .SS Note for Developers
  70729. .sp
  70730. When adding new features to a particular cloud host, please make sure to
  70731. add the feature to this table. Additionally, if you notice a feature that is not
  70732. properly listed here, pull requests to fix them is appreciated.
  70733. .SS Standard Features
  70734. .sp
  70735. These are features that are available for almost every cloud host.
  70736. .TS
  70737. center;
  70738. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  70739. _
  70740. T{
  70741. T} T{
  70742. AWS
  70743. (Legacy)
  70744. T} T{
  70745. CloudStack
  70746. T} T{
  70747. Digital
  70748. Ocean
  70749. T} T{
  70750. EC2
  70751. T} T{
  70752. GoGrid
  70753. T} T{
  70754. JoyEnt
  70755. T} T{
  70756. Linode
  70757. T} T{
  70758. OpenStack
  70759. T} T{
  70760. Parallels
  70761. T} T{
  70762. Rackspace
  70763. (Legacy)
  70764. T} T{
  70765. Saltify
  70766. T} T{
  70767. Vagrant
  70768. T} T{
  70769. Softlayer
  70770. T} T{
  70771. Softlayer
  70772. Hardware
  70773. T} T{
  70774. Aliyun
  70775. T} T{
  70776. Tencent
  70777. Cloud
  70778. T}
  70779. _
  70780. T{
  70781. Query
  70782. T} T{
  70783. Yes
  70784. T} T{
  70785. Yes
  70786. T} T{
  70787. Yes
  70788. T} T{
  70789. Yes
  70790. T} T{
  70791. Yes
  70792. T} T{
  70793. Yes
  70794. T} T{
  70795. Yes
  70796. T} T{
  70797. Yes
  70798. T} T{
  70799. Yes
  70800. T} T{
  70801. Yes
  70802. T} T{
  70803. [1]
  70804. T} T{
  70805. [1]
  70806. T} T{
  70807. Yes
  70808. T} T{
  70809. Yes
  70810. T} T{
  70811. Yes
  70812. T} T{
  70813. Yes
  70814. T}
  70815. _
  70816. T{
  70817. Full Query
  70818. T} T{
  70819. Yes
  70820. T} T{
  70821. Yes
  70822. T} T{
  70823. Yes
  70824. T} T{
  70825. Yes
  70826. T} T{
  70827. Yes
  70828. T} T{
  70829. Yes
  70830. T} T{
  70831. Yes
  70832. T} T{
  70833. Yes
  70834. T} T{
  70835. Yes
  70836. T} T{
  70837. Yes
  70838. T} T{
  70839. [1]
  70840. T} T{
  70841. [1]
  70842. T} T{
  70843. Yes
  70844. T} T{
  70845. Yes
  70846. T} T{
  70847. Yes
  70848. T} T{
  70849. Yes
  70850. T}
  70851. _
  70852. T{
  70853. Selective Query
  70854. T} T{
  70855. Yes
  70856. T} T{
  70857. Yes
  70858. T} T{
  70859. Yes
  70860. T} T{
  70861. Yes
  70862. T} T{
  70863. Yes
  70864. T} T{
  70865. Yes
  70866. T} T{
  70867. Yes
  70868. T} T{
  70869. Yes
  70870. T} T{
  70871. Yes
  70872. T} T{
  70873. Yes
  70874. T} T{
  70875. [1]
  70876. T} T{
  70877. [1]
  70878. T} T{
  70879. Yes
  70880. T} T{
  70881. Yes
  70882. T} T{
  70883. Yes
  70884. T} T{
  70885. Yes
  70886. T}
  70887. _
  70888. T{
  70889. List Sizes
  70890. T} T{
  70891. Yes
  70892. T} T{
  70893. Yes
  70894. T} T{
  70895. Yes
  70896. T} T{
  70897. Yes
  70898. T} T{
  70899. Yes
  70900. T} T{
  70901. Yes
  70902. T} T{
  70903. Yes
  70904. T} T{
  70905. Yes
  70906. T} T{
  70907. Yes
  70908. T} T{
  70909. Yes
  70910. T} T{
  70911. [2]
  70912. T} T{
  70913. [2]
  70914. T} T{
  70915. Yes
  70916. T} T{
  70917. Yes
  70918. T} T{
  70919. Yes
  70920. T} T{
  70921. Yes
  70922. T}
  70923. _
  70924. T{
  70925. List Images
  70926. T} T{
  70927. Yes
  70928. T} T{
  70929. Yes
  70930. T} T{
  70931. Yes
  70932. T} T{
  70933. Yes
  70934. T} T{
  70935. Yes
  70936. T} T{
  70937. Yes
  70938. T} T{
  70939. Yes
  70940. T} T{
  70941. Yes
  70942. T} T{
  70943. Yes
  70944. T} T{
  70945. Yes
  70946. T} T{
  70947. Yes
  70948. T} T{
  70949. Yes
  70950. T} T{
  70951. Yes
  70952. T} T{
  70953. Yes
  70954. T} T{
  70955. Yes
  70956. T} T{
  70957. Yes
  70958. T}
  70959. _
  70960. T{
  70961. List Locations
  70962. T} T{
  70963. Yes
  70964. T} T{
  70965. Yes
  70966. T} T{
  70967. Yes
  70968. T} T{
  70969. Yes
  70970. T} T{
  70971. Yes
  70972. T} T{
  70973. Yes
  70974. T} T{
  70975. Yes
  70976. T} T{
  70977. Yes
  70978. T} T{
  70979. Yes
  70980. T} T{
  70981. Yes
  70982. T} T{
  70983. [2]
  70984. T} T{
  70985. [2]
  70986. T} T{
  70987. Yes
  70988. T} T{
  70989. Yes
  70990. T} T{
  70991. Yes
  70992. T} T{
  70993. Yes
  70994. T}
  70995. _
  70996. T{
  70997. create
  70998. T} T{
  70999. Yes
  71000. T} T{
  71001. Yes
  71002. T} T{
  71003. Yes
  71004. T} T{
  71005. Yes
  71006. T} T{
  71007. Yes
  71008. T} T{
  71009. Yes
  71010. T} T{
  71011. Yes
  71012. T} T{
  71013. Yes
  71014. T} T{
  71015. Yes
  71016. T} T{
  71017. Yes
  71018. T} T{
  71019. Yes
  71020. T} T{
  71021. [1]
  71022. T} T{
  71023. Yes
  71024. T} T{
  71025. Yes
  71026. T} T{
  71027. Yes
  71028. T} T{
  71029. Yes
  71030. T}
  71031. _
  71032. T{
  71033. destroy
  71034. T} T{
  71035. Yes
  71036. T} T{
  71037. Yes
  71038. T} T{
  71039. Yes
  71040. T} T{
  71041. Yes
  71042. T} T{
  71043. Yes
  71044. T} T{
  71045. Yes
  71046. T} T{
  71047. Yes
  71048. T} T{
  71049. Yes
  71050. T} T{
  71051. Yes
  71052. T} T{
  71053. Yes
  71054. T} T{
  71055. [1]
  71056. T} T{
  71057. [1]
  71058. T} T{
  71059. Yes
  71060. T} T{
  71061. Yes
  71062. T} T{
  71063. Yes
  71064. T} T{
  71065. Yes
  71066. T}
  71067. _
  71068. .TE
  71069. .sp
  71070. [1] Yes, if salt\-api is enabled.
  71071. .sp
  71072. [2] Always returns \fI{}\fP\&.
  71073. .SS Actions
  71074. .sp
  71075. These are features that are performed on a specific instance, and require an
  71076. instance name to be passed in. For example:
  71077. .INDENT 0.0
  71078. .INDENT 3.5
  71079. .sp
  71080. .nf
  71081. .ft C
  71082. # salt\-cloud \-a attach_volume ami.example.com
  71083. .ft P
  71084. .fi
  71085. .UNINDENT
  71086. .UNINDENT
  71087. .TS
  71088. center;
  71089. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  71090. _
  71091. T{
  71092. Actions
  71093. T} T{
  71094. AWS
  71095. (Legacy)
  71096. T} T{
  71097. CloudStack
  71098. T} T{
  71099. Digital
  71100. Ocean
  71101. T} T{
  71102. EC2
  71103. T} T{
  71104. GoGrid
  71105. T} T{
  71106. JoyEnt
  71107. T} T{
  71108. Linode
  71109. T} T{
  71110. OpenStack
  71111. T} T{
  71112. Parallels
  71113. T} T{
  71114. Rackspace
  71115. (Legacy)
  71116. T} T{
  71117. .INDENT 0.0
  71118. .TP
  71119. .B Saltify&
  71120. Vagrant
  71121. .UNINDENT
  71122. T} T{
  71123. Softlayer
  71124. T} T{
  71125. Softlayer
  71126. Hardware
  71127. T} T{
  71128. Aliyun
  71129. T} T{
  71130. Tencent
  71131. Cloud
  71132. T}
  71133. _
  71134. T{
  71135. attach_volume
  71136. T} T{
  71137. T} T{
  71138. T} T{
  71139. T} T{
  71140. Yes
  71141. T} T{
  71142. T} T{
  71143. T} T{
  71144. T} T{
  71145. T} T{
  71146. T} T{
  71147. T} T{
  71148. T} T{
  71149. T} T{
  71150. T} T{
  71151. T} T{
  71152. T}
  71153. _
  71154. T{
  71155. create_attach_volumes
  71156. T} T{
  71157. Yes
  71158. T} T{
  71159. T} T{
  71160. T} T{
  71161. Yes
  71162. T} T{
  71163. T} T{
  71164. T} T{
  71165. T} T{
  71166. T} T{
  71167. T} T{
  71168. T} T{
  71169. T} T{
  71170. T} T{
  71171. T} T{
  71172. T} T{
  71173. T}
  71174. _
  71175. T{
  71176. del_tags
  71177. T} T{
  71178. Yes
  71179. T} T{
  71180. T} T{
  71181. T} T{
  71182. Yes
  71183. T} T{
  71184. T} T{
  71185. T} T{
  71186. T} T{
  71187. T} T{
  71188. T} T{
  71189. T} T{
  71190. T} T{
  71191. T} T{
  71192. T} T{
  71193. T} T{
  71194. T}
  71195. _
  71196. T{
  71197. delvol_on_destroy
  71198. T} T{
  71199. T} T{
  71200. T} T{
  71201. T} T{
  71202. Yes
  71203. T} T{
  71204. T} T{
  71205. T} T{
  71206. T} T{
  71207. T} T{
  71208. T} T{
  71209. T} T{
  71210. T} T{
  71211. T} T{
  71212. T} T{
  71213. T} T{
  71214. T}
  71215. _
  71216. T{
  71217. detach_volume
  71218. T} T{
  71219. T} T{
  71220. T} T{
  71221. T} T{
  71222. Yes
  71223. T} T{
  71224. T} T{
  71225. T} T{
  71226. T} T{
  71227. T} T{
  71228. T} T{
  71229. T} T{
  71230. T} T{
  71231. T} T{
  71232. T} T{
  71233. T} T{
  71234. T}
  71235. _
  71236. T{
  71237. disable_term_protect
  71238. T} T{
  71239. Yes
  71240. T} T{
  71241. T} T{
  71242. T} T{
  71243. Yes
  71244. T} T{
  71245. T} T{
  71246. T} T{
  71247. T} T{
  71248. T} T{
  71249. T} T{
  71250. T} T{
  71251. T} T{
  71252. T} T{
  71253. T} T{
  71254. T} T{
  71255. T}
  71256. _
  71257. T{
  71258. enable_term_protect
  71259. T} T{
  71260. Yes
  71261. T} T{
  71262. T} T{
  71263. T} T{
  71264. Yes
  71265. T} T{
  71266. T} T{
  71267. T} T{
  71268. T} T{
  71269. T} T{
  71270. T} T{
  71271. T} T{
  71272. T} T{
  71273. T} T{
  71274. T} T{
  71275. T} T{
  71276. T}
  71277. _
  71278. T{
  71279. get_tags
  71280. T} T{
  71281. Yes
  71282. T} T{
  71283. T} T{
  71284. T} T{
  71285. Yes
  71286. T} T{
  71287. T} T{
  71288. T} T{
  71289. T} T{
  71290. T} T{
  71291. T} T{
  71292. T} T{
  71293. T} T{
  71294. T} T{
  71295. T} T{
  71296. T} T{
  71297. T}
  71298. _
  71299. T{
  71300. keepvol_on_destroy
  71301. T} T{
  71302. T} T{
  71303. T} T{
  71304. T} T{
  71305. Yes
  71306. T} T{
  71307. T} T{
  71308. T} T{
  71309. T} T{
  71310. T} T{
  71311. T} T{
  71312. T} T{
  71313. T} T{
  71314. T} T{
  71315. T} T{
  71316. T} T{
  71317. T}
  71318. _
  71319. T{
  71320. list_keypairs
  71321. T} T{
  71322. T} T{
  71323. T} T{
  71324. Yes
  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} T{
  71336. T} T{
  71337. T}
  71338. _
  71339. T{
  71340. rename
  71341. T} T{
  71342. Yes
  71343. T} T{
  71344. T} T{
  71345. T} T{
  71346. Yes
  71347. T} T{
  71348. T} T{
  71349. T} T{
  71350. T} T{
  71351. T} T{
  71352. T} T{
  71353. T} T{
  71354. T} T{
  71355. T} T{
  71356. T} T{
  71357. T} T{
  71358. T}
  71359. _
  71360. T{
  71361. set_tags
  71362. T} T{
  71363. Yes
  71364. T} T{
  71365. T} T{
  71366. T} T{
  71367. Yes
  71368. T} T{
  71369. T} T{
  71370. T} T{
  71371. T} T{
  71372. T} T{
  71373. T} T{
  71374. T} T{
  71375. T} T{
  71376. T} T{
  71377. T} T{
  71378. T} T{
  71379. T}
  71380. _
  71381. T{
  71382. show_delvol_on_destroy
  71383. T} T{
  71384. T} T{
  71385. T} T{
  71386. T} T{
  71387. Yes
  71388. T} T{
  71389. T} T{
  71390. T} T{
  71391. T} T{
  71392. T} T{
  71393. T} T{
  71394. T} T{
  71395. T} T{
  71396. T} T{
  71397. T} T{
  71398. T} T{
  71399. T}
  71400. _
  71401. T{
  71402. show_instance
  71403. T} T{
  71404. T} T{
  71405. T} T{
  71406. Yes
  71407. T} T{
  71408. Yes
  71409. T} T{
  71410. T} T{
  71411. T} T{
  71412. Yes
  71413. T} T{
  71414. T} T{
  71415. Yes
  71416. T} T{
  71417. T} T{
  71418. T} T{
  71419. Yes
  71420. T} T{
  71421. Yes
  71422. T} T{
  71423. Yes
  71424. T} T{
  71425. Yes
  71426. T}
  71427. _
  71428. T{
  71429. show_term_protect
  71430. T} T{
  71431. T} T{
  71432. T} T{
  71433. T} T{
  71434. Yes
  71435. T} T{
  71436. T} T{
  71437. T} T{
  71438. T} T{
  71439. T} T{
  71440. T} T{
  71441. T} T{
  71442. T} T{
  71443. T} T{
  71444. T} T{
  71445. T} T{
  71446. T}
  71447. _
  71448. T{
  71449. start
  71450. T} T{
  71451. Yes
  71452. T} T{
  71453. T} T{
  71454. T} T{
  71455. Yes
  71456. T} T{
  71457. T} T{
  71458. Yes
  71459. T} T{
  71460. Yes
  71461. T} T{
  71462. T} T{
  71463. Yes
  71464. T} T{
  71465. T} T{
  71466. T} T{
  71467. T} T{
  71468. T} T{
  71469. Yes
  71470. T} T{
  71471. Yes
  71472. T}
  71473. _
  71474. T{
  71475. stop
  71476. T} T{
  71477. Yes
  71478. T} T{
  71479. T} T{
  71480. T} T{
  71481. Yes
  71482. T} T{
  71483. T} T{
  71484. Yes
  71485. T} T{
  71486. Yes
  71487. T} T{
  71488. T} T{
  71489. Yes
  71490. T} T{
  71491. T} T{
  71492. T} T{
  71493. T} T{
  71494. T} T{
  71495. Yes
  71496. T} T{
  71497. Yes
  71498. T}
  71499. _
  71500. T{
  71501. take_action
  71502. T} T{
  71503. T} T{
  71504. T} T{
  71505. T} T{
  71506. T} T{
  71507. T} T{
  71508. Yes
  71509. T} T{
  71510. T} T{
  71511. T} T{
  71512. T} T{
  71513. T} T{
  71514. T} T{
  71515. T} T{
  71516. T} T{
  71517. T} T{
  71518. T}
  71519. _
  71520. .TE
  71521. .SS Functions
  71522. .sp
  71523. These are features that are performed against a specific cloud provider, and
  71524. require the name of the provider to be passed in. For example:
  71525. .INDENT 0.0
  71526. .INDENT 3.5
  71527. .sp
  71528. .nf
  71529. .ft C
  71530. # salt\-cloud \-f list_images my_digitalocean
  71531. .ft P
  71532. .fi
  71533. .UNINDENT
  71534. .UNINDENT
  71535. .TS
  71536. center;
  71537. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  71538. _
  71539. T{
  71540. Functions
  71541. T} T{
  71542. AWS
  71543. (Legacy)
  71544. T} T{
  71545. CloudStack
  71546. T} T{
  71547. Digital
  71548. Ocean
  71549. T} T{
  71550. EC2
  71551. T} T{
  71552. GoGrid
  71553. T} T{
  71554. JoyEnt
  71555. T} T{
  71556. Linode
  71557. T} T{
  71558. OpenStack
  71559. T} T{
  71560. Parallels
  71561. T} T{
  71562. Rackspace
  71563. (Legacy)
  71564. T} T{
  71565. .INDENT 0.0
  71566. .TP
  71567. .B Saltify&
  71568. Vagrant
  71569. .UNINDENT
  71570. T} T{
  71571. Softlayer
  71572. T} T{
  71573. Softlayer
  71574. Hardware
  71575. T} T{
  71576. Aliyun
  71577. T} T{
  71578. Tencent
  71579. Cloud
  71580. T}
  71581. _
  71582. T{
  71583. block_device_mappings
  71584. T} T{
  71585. Yes
  71586. T} T{
  71587. T} T{
  71588. T} T{
  71589. T} T{
  71590. T} T{
  71591. T} T{
  71592. T} T{
  71593. T} T{
  71594. T} T{
  71595. T} T{
  71596. T} T{
  71597. T} T{
  71598. T} T{
  71599. T} T{
  71600. T}
  71601. _
  71602. T{
  71603. create_keypair
  71604. T} T{
  71605. T} T{
  71606. T} T{
  71607. T} T{
  71608. Yes
  71609. T} T{
  71610. T} T{
  71611. T} T{
  71612. T} T{
  71613. T} T{
  71614. T} T{
  71615. T} T{
  71616. T} T{
  71617. T} T{
  71618. T} T{
  71619. T} T{
  71620. T}
  71621. _
  71622. T{
  71623. create_volume
  71624. T} T{
  71625. T} T{
  71626. T} T{
  71627. T} T{
  71628. Yes
  71629. T} T{
  71630. T} T{
  71631. T} T{
  71632. T} T{
  71633. T} T{
  71634. T} T{
  71635. T} T{
  71636. T} T{
  71637. T} T{
  71638. T} T{
  71639. T} T{
  71640. T}
  71641. _
  71642. T{
  71643. delete_key
  71644. T} T{
  71645. T} T{
  71646. T} T{
  71647. T} T{
  71648. T} T{
  71649. T} T{
  71650. Yes
  71651. T} T{
  71652. T} T{
  71653. T} T{
  71654. T} T{
  71655. T} T{
  71656. T} T{
  71657. T} T{
  71658. T} T{
  71659. T} T{
  71660. T}
  71661. _
  71662. T{
  71663. delete_keypair
  71664. T} T{
  71665. T} T{
  71666. T} T{
  71667. T} T{
  71668. Yes
  71669. T} T{
  71670. T} T{
  71671. T} T{
  71672. T} T{
  71673. T} T{
  71674. T} T{
  71675. T} T{
  71676. T} T{
  71677. T} T{
  71678. T} T{
  71679. T} T{
  71680. T}
  71681. _
  71682. T{
  71683. delete_volume
  71684. T} T{
  71685. T} T{
  71686. T} T{
  71687. T} T{
  71688. Yes
  71689. T} T{
  71690. T} T{
  71691. T} T{
  71692. T} T{
  71693. T} T{
  71694. T} T{
  71695. T} T{
  71696. T} T{
  71697. T} T{
  71698. T} T{
  71699. T} T{
  71700. T}
  71701. _
  71702. T{
  71703. get_image
  71704. T} T{
  71705. T} T{
  71706. T} T{
  71707. Yes
  71708. T} T{
  71709. T} T{
  71710. T} T{
  71711. Yes
  71712. T} T{
  71713. T} T{
  71714. T} T{
  71715. Yes
  71716. T} T{
  71717. T} T{
  71718. T} T{
  71719. T} T{
  71720. T} T{
  71721. Yes
  71722. T} T{
  71723. T}
  71724. _
  71725. T{
  71726. get_ip
  71727. T} T{
  71728. T} T{
  71729. Yes
  71730. T} T{
  71731. T} T{
  71732. T} T{
  71733. T} T{
  71734. T} T{
  71735. T} T{
  71736. T} T{
  71737. T} T{
  71738. T} T{
  71739. T} T{
  71740. T} T{
  71741. T} T{
  71742. T} T{
  71743. T}
  71744. _
  71745. T{
  71746. get_key
  71747. T} T{
  71748. T} T{
  71749. Yes
  71750. T} T{
  71751. T} T{
  71752. T} T{
  71753. T} T{
  71754. T} T{
  71755. T} T{
  71756. T} T{
  71757. T} T{
  71758. T} T{
  71759. T} T{
  71760. T} T{
  71761. T} T{
  71762. T} T{
  71763. T}
  71764. _
  71765. T{
  71766. get_keyid
  71767. T} T{
  71768. T} T{
  71769. T} T{
  71770. Yes
  71771. T} T{
  71772. T} T{
  71773. T} T{
  71774. T} T{
  71775. T} T{
  71776. T} T{
  71777. T} T{
  71778. T} T{
  71779. T} T{
  71780. T} T{
  71781. T} T{
  71782. T} T{
  71783. T}
  71784. _
  71785. T{
  71786. get_keypair
  71787. T} T{
  71788. T} T{
  71789. Yes
  71790. T} T{
  71791. T} T{
  71792. T} T{
  71793. T} T{
  71794. T} T{
  71795. T} T{
  71796. T} T{
  71797. T} T{
  71798. T} T{
  71799. T} T{
  71800. T} T{
  71801. T} T{
  71802. T} T{
  71803. T}
  71804. _
  71805. T{
  71806. get_networkid
  71807. T} T{
  71808. T} T{
  71809. Yes
  71810. T} T{
  71811. T} T{
  71812. T} T{
  71813. T} T{
  71814. T} T{
  71815. T} T{
  71816. T} T{
  71817. T} T{
  71818. T} T{
  71819. T} T{
  71820. T} T{
  71821. T} T{
  71822. T} T{
  71823. T}
  71824. _
  71825. T{
  71826. get_node
  71827. T} T{
  71828. T} T{
  71829. T} T{
  71830. T} T{
  71831. T} T{
  71832. T} T{
  71833. Yes
  71834. T} T{
  71835. T} T{
  71836. T} T{
  71837. T} T{
  71838. T} T{
  71839. T} T{
  71840. T} T{
  71841. T} T{
  71842. T} T{
  71843. T}
  71844. _
  71845. T{
  71846. get_password
  71847. T} T{
  71848. T} T{
  71849. Yes
  71850. T} T{
  71851. T} T{
  71852. T} T{
  71853. T} T{
  71854. T} T{
  71855. T} T{
  71856. T} T{
  71857. T} T{
  71858. T} T{
  71859. T} T{
  71860. T} T{
  71861. T} T{
  71862. T} T{
  71863. T}
  71864. _
  71865. T{
  71866. get_size
  71867. T} T{
  71868. T} T{
  71869. T} T{
  71870. Yes
  71871. T} T{
  71872. T} T{
  71873. T} T{
  71874. Yes
  71875. T} T{
  71876. T} T{
  71877. T} T{
  71878. T} T{
  71879. T} T{
  71880. T} T{
  71881. T} T{
  71882. T} T{
  71883. Yes
  71884. T} T{
  71885. T}
  71886. _
  71887. T{
  71888. get_spot_config
  71889. T} T{
  71890. T} T{
  71891. T} T{
  71892. T} T{
  71893. Yes
  71894. T} T{
  71895. T} T{
  71896. T} T{
  71897. T} T{
  71898. T} T{
  71899. T} T{
  71900. T} T{
  71901. T} T{
  71902. T} T{
  71903. T} T{
  71904. T} T{
  71905. T}
  71906. _
  71907. T{
  71908. get_subnetid
  71909. T} T{
  71910. T} T{
  71911. T} T{
  71912. T} T{
  71913. Yes
  71914. T} T{
  71915. T} T{
  71916. T} T{
  71917. T} T{
  71918. T} T{
  71919. T} T{
  71920. T} T{
  71921. T} T{
  71922. T} T{
  71923. T} T{
  71924. T} T{
  71925. T}
  71926. _
  71927. T{
  71928. iam_profile
  71929. T} T{
  71930. Yes
  71931. T} T{
  71932. T} T{
  71933. T} T{
  71934. Yes
  71935. T} T{
  71936. T} T{
  71937. T} T{
  71938. T} T{
  71939. T} T{
  71940. T} T{
  71941. T} T{
  71942. T} T{
  71943. T} T{
  71944. T} T{
  71945. Yes
  71946. T} T{
  71947. T}
  71948. _
  71949. T{
  71950. import_key
  71951. T} T{
  71952. T} T{
  71953. T} T{
  71954. T} T{
  71955. T} T{
  71956. T} T{
  71957. Yes
  71958. T} T{
  71959. T} T{
  71960. T} T{
  71961. T} T{
  71962. T} T{
  71963. T} T{
  71964. T} T{
  71965. T} T{
  71966. T} T{
  71967. T}
  71968. _
  71969. T{
  71970. key_list
  71971. T} T{
  71972. T} T{
  71973. T} T{
  71974. T} T{
  71975. T} T{
  71976. T} T{
  71977. Yes
  71978. T} T{
  71979. T} T{
  71980. T} T{
  71981. T} T{
  71982. T} T{
  71983. T} T{
  71984. T} T{
  71985. T} T{
  71986. T} T{
  71987. T}
  71988. _
  71989. T{
  71990. keyname
  71991. T} T{
  71992. Yes
  71993. T} T{
  71994. T} T{
  71995. T} T{
  71996. Yes
  71997. T} T{
  71998. T} T{
  71999. T} T{
  72000. T} T{
  72001. T} T{
  72002. T} T{
  72003. T} T{
  72004. T} T{
  72005. T} T{
  72006. T} T{
  72007. T} T{
  72008. T}
  72009. _
  72010. T{
  72011. list_availability_zones
  72012. T} T{
  72013. T} T{
  72014. T} T{
  72015. T} T{
  72016. Yes
  72017. T} T{
  72018. T} T{
  72019. T} T{
  72020. T} T{
  72021. T} T{
  72022. T} T{
  72023. T} T{
  72024. T} T{
  72025. T} T{
  72026. T} T{
  72027. Yes
  72028. T} T{
  72029. Yes
  72030. T}
  72031. _
  72032. T{
  72033. list_custom_images
  72034. T} T{
  72035. T} T{
  72036. T} T{
  72037. T} T{
  72038. T} T{
  72039. T} T{
  72040. T} T{
  72041. T} T{
  72042. T} T{
  72043. T} T{
  72044. T} T{
  72045. T} T{
  72046. Yes
  72047. T} T{
  72048. T} T{
  72049. T} T{
  72050. Yes
  72051. T}
  72052. _
  72053. T{
  72054. list_keys
  72055. T} T{
  72056. T} T{
  72057. T} T{
  72058. T} T{
  72059. T} T{
  72060. T} T{
  72061. Yes
  72062. T} T{
  72063. T} T{
  72064. T} T{
  72065. T} T{
  72066. T} T{
  72067. T} T{
  72068. T} T{
  72069. T} T{
  72070. T} T{
  72071. T}
  72072. _
  72073. T{
  72074. list_nodes
  72075. T} T{
  72076. Yes
  72077. T} T{
  72078. Yes
  72079. T} T{
  72080. Yes
  72081. T} T{
  72082. Yes
  72083. T} T{
  72084. Yes
  72085. T} T{
  72086. Yes
  72087. T} T{
  72088. Yes
  72089. T} T{
  72090. Yes
  72091. T} T{
  72092. Yes
  72093. T} T{
  72094. Yes
  72095. T} T{
  72096. Yes
  72097. T} T{
  72098. Yes
  72099. T} T{
  72100. Yes
  72101. T} T{
  72102. Yes
  72103. T} T{
  72104. Yes
  72105. T}
  72106. _
  72107. T{
  72108. list_nodes_full
  72109. T} T{
  72110. Yes
  72111. T} T{
  72112. Yes
  72113. T} T{
  72114. Yes
  72115. T} T{
  72116. Yes
  72117. T} T{
  72118. Yes
  72119. T} T{
  72120. Yes
  72121. T} T{
  72122. Yes
  72123. T} T{
  72124. Yes
  72125. T} T{
  72126. Yes
  72127. T} T{
  72128. Yes
  72129. T} T{
  72130. Yes
  72131. T} T{
  72132. Yes
  72133. T} T{
  72134. Yes
  72135. T} T{
  72136. Yes
  72137. T} T{
  72138. Yes
  72139. T}
  72140. _
  72141. T{
  72142. list_nodes_select
  72143. T} T{
  72144. Yes
  72145. T} T{
  72146. Yes
  72147. T} T{
  72148. Yes
  72149. T} T{
  72150. Yes
  72151. T} T{
  72152. Yes
  72153. T} T{
  72154. Yes
  72155. T} T{
  72156. Yes
  72157. T} T{
  72158. Yes
  72159. T} T{
  72160. Yes
  72161. T} T{
  72162. Yes
  72163. T} T{
  72164. Yes
  72165. T} T{
  72166. Yes
  72167. T} T{
  72168. Yes
  72169. T} T{
  72170. Yes
  72171. T} T{
  72172. Yes
  72173. T}
  72174. _
  72175. T{
  72176. list_vlans
  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. T} T{
  72188. T} T{
  72189. Yes
  72190. T} T{
  72191. Yes
  72192. T} T{
  72193. T} T{
  72194. T}
  72195. _
  72196. T{
  72197. rackconnect
  72198. T} T{
  72199. T} T{
  72200. T} T{
  72201. T} T{
  72202. T} T{
  72203. T} T{
  72204. T} T{
  72205. T} T{
  72206. Yes
  72207. T} T{
  72208. T} T{
  72209. T} T{
  72210. T} T{
  72211. T} T{
  72212. T} T{
  72213. T} T{
  72214. T}
  72215. _
  72216. T{
  72217. reboot
  72218. T} T{
  72219. T} T{
  72220. T} T{
  72221. T} T{
  72222. Yes
  72223. T} T{
  72224. T} T{
  72225. Yes
  72226. T} T{
  72227. T} T{
  72228. T} T{
  72229. T} T{
  72230. T} T{
  72231. [1]
  72232. T} T{
  72233. T} T{
  72234. T} T{
  72235. Yes
  72236. T} T{
  72237. Yes
  72238. T}
  72239. _
  72240. T{
  72241. reformat_node
  72242. T} T{
  72243. T} T{
  72244. T} T{
  72245. T} T{
  72246. T} T{
  72247. T} T{
  72248. Yes
  72249. T} T{
  72250. T} T{
  72251. T} T{
  72252. T} T{
  72253. T} T{
  72254. T} T{
  72255. T} T{
  72256. T} T{
  72257. T} T{
  72258. T}
  72259. _
  72260. T{
  72261. securitygroup
  72262. T} T{
  72263. Yes
  72264. T} T{
  72265. T} T{
  72266. T} T{
  72267. Yes
  72268. T} T{
  72269. T} T{
  72270. T} T{
  72271. T} T{
  72272. T} T{
  72273. T} T{
  72274. T} T{
  72275. T} T{
  72276. T} T{
  72277. T} T{
  72278. T} T{
  72279. T}
  72280. _
  72281. T{
  72282. securitygroupid
  72283. T} T{
  72284. T} T{
  72285. T} T{
  72286. T} T{
  72287. Yes
  72288. T} T{
  72289. T} T{
  72290. T} T{
  72291. T} T{
  72292. T} T{
  72293. T} T{
  72294. T} T{
  72295. T} T{
  72296. T} T{
  72297. T} T{
  72298. Yes
  72299. T} T{
  72300. T}
  72301. _
  72302. T{
  72303. show_image
  72304. T} T{
  72305. T} T{
  72306. T} T{
  72307. T} T{
  72308. Yes
  72309. T} T{
  72310. T} T{
  72311. T} T{
  72312. T} T{
  72313. T} T{
  72314. Yes
  72315. T} T{
  72316. T} T{
  72317. T} T{
  72318. T} T{
  72319. T} T{
  72320. Yes
  72321. T} T{
  72322. Yes
  72323. T}
  72324. _
  72325. T{
  72326. show_key
  72327. T} T{
  72328. T} T{
  72329. T} T{
  72330. T} T{
  72331. T} T{
  72332. T} T{
  72333. Yes
  72334. T} T{
  72335. T} T{
  72336. T} T{
  72337. T} T{
  72338. T} T{
  72339. T} T{
  72340. T} T{
  72341. T} T{
  72342. T} T{
  72343. T}
  72344. _
  72345. T{
  72346. show_keypair
  72347. T} T{
  72348. T} T{
  72349. T} T{
  72350. Yes
  72351. T} T{
  72352. Yes
  72353. T} T{
  72354. T} T{
  72355. T} T{
  72356. T} T{
  72357. T} T{
  72358. T} T{
  72359. T} T{
  72360. T} T{
  72361. T} T{
  72362. T} T{
  72363. T} T{
  72364. T}
  72365. _
  72366. T{
  72367. show_volume
  72368. T} T{
  72369. T} T{
  72370. T} T{
  72371. T} T{
  72372. Yes
  72373. T} T{
  72374. T} T{
  72375. T} T{
  72376. T} T{
  72377. T} T{
  72378. T} T{
  72379. T} T{
  72380. T} T{
  72381. T} T{
  72382. T} T{
  72383. T} T{
  72384. T}
  72385. _
  72386. .TE
  72387. .sp
  72388. [1] Yes, if salt\-api is enabled.
  72389. .SS Tutorials
  72390. .SS Salt Cloud Quickstart
  72391. .sp
  72392. Salt Cloud is built\-in to Salt, and the easiest way to run Salt Cloud is
  72393. directly from your Salt Master.
  72394. .sp
  72395. Note that if you installed Salt via \fI\%Salt Bootstrap\fP, it may not have
  72396. automatically installed salt\-cloud for you. Use your distribution\(aqs package
  72397. manager to install the \fBsalt\-cloud\fP package from the same repo that you
  72398. used to install Salt. These repos will automatically be setup by Salt Bootstrap.
  72399. .sp
  72400. Alternatively, the \fB\-L\fP option can be passed to the \fI\%Salt Bootstrap\fP script when
  72401. installing Salt. The \fB\-L\fP option will install \fBsalt\-cloud\fP and the required
  72402. \fBlibcloud\fP package.
  72403. .sp
  72404. This quickstart walks you through the basic steps of setting up a cloud host
  72405. and defining some virtual machines to create.
  72406. .sp
  72407. \fBNOTE:\fP
  72408. .INDENT 0.0
  72409. .INDENT 3.5
  72410. Salt Cloud has its own process and does not rely on the Salt Master,
  72411. so it can be installed on a standalone minion instead of your Salt Master.
  72412. .UNINDENT
  72413. .UNINDENT
  72414. .SS Define a Provider
  72415. .sp
  72416. The first step is to add the credentials for your cloud host. Credentials and
  72417. other settings provided by the cloud host are stored in provider configuration
  72418. files. Provider configurations contain the details needed to connect to a cloud
  72419. host such as EC2, GCE, Rackspace, etc., and any global options that you want
  72420. set on your cloud minions (such as the location of your Salt Master).
  72421. .sp
  72422. On your Salt Master, browse to \fB/etc/salt/cloud.providers.d/\fP and create
  72423. a file called \fB<provider>.conf\fP, replacing \fB<provider>\fP with
  72424. \fBec2\fP, \fBsoftlayer\fP, and so on. The name helps you identify the contents,
  72425. and is not important as long as the file ends in \fB\&.conf\fP\&.
  72426. .sp
  72427. Next, browse to the Provider specifics and
  72428. add any required settings for your cloud host to this file. Here is an example
  72429. for Amazon EC2:
  72430. .INDENT 0.0
  72431. .INDENT 3.5
  72432. .sp
  72433. .nf
  72434. .ft C
  72435. my\-ec2:
  72436. driver: ec2
  72437. # Set the EC2 access credentials (see below)
  72438. #
  72439. id: \(aqHJGRYCILJLKJYG\(aq
  72440. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  72441. # Make sure this key is owned by root with permissions 0400.
  72442. #
  72443. private_key: /etc/salt/my_test_key.pem
  72444. keyname: my_test_key
  72445. securitygroup: default
  72446. # Optional: Set up the location of the Salt Master
  72447. #
  72448. minion:
  72449. master: saltmaster.example.com
  72450. .ft P
  72451. .fi
  72452. .UNINDENT
  72453. .UNINDENT
  72454. .sp
  72455. The required configuration varies between cloud hosts so make sure you read the
  72456. provider specifics.
  72457. .SS List Cloud Provider Options
  72458. .sp
  72459. You can now query the cloud provider you configured for available locations,
  72460. images, and sizes. This information is used when you set up VM profiles.
  72461. .INDENT 0.0
  72462. .INDENT 3.5
  72463. .sp
  72464. .nf
  72465. .ft C
  72466. salt\-cloud \-\-list\-locations <provider_name> # my\-ec2 in the previous example
  72467. salt\-cloud \-\-list\-images <provider_name>
  72468. salt\-cloud \-\-list\-sizes <provider_name>
  72469. .ft P
  72470. .fi
  72471. .UNINDENT
  72472. .UNINDENT
  72473. .sp
  72474. Replace \fB<provider_name>\fP with the name of the provider configuration you defined.
  72475. .SS Create VM Profiles
  72476. .sp
  72477. On your Salt Master, browse to \fB/etc/salt/cloud.profiles.d/\fP and create
  72478. a file called \fB<profile>.conf\fP, replacing \fB<profile>\fP with
  72479. \fBec2\fP, \fBsoftlayer\fP, and so on. The file must end in \fB\&.conf\fP\&.
  72480. .sp
  72481. You can now add any custom profiles you\(aqd like to define to this file. Here are
  72482. a few examples:
  72483. .INDENT 0.0
  72484. .INDENT 3.5
  72485. .sp
  72486. .nf
  72487. .ft C
  72488. micro_ec2:
  72489. provider: my\-ec2
  72490. image: ami\-d514f291
  72491. size: t1.micro
  72492. medium_ec2:
  72493. provider: my\-ec2
  72494. image: ami\-d514f291
  72495. size: m3.medium
  72496. large_ec2:
  72497. provider: my\-ec2
  72498. image: ami\-d514f291
  72499. size: m3.large
  72500. .ft P
  72501. .fi
  72502. .UNINDENT
  72503. .UNINDENT
  72504. .sp
  72505. Notice that the \fBprovider\fP in our profile matches the provider name that we
  72506. defined? That is how Salt Cloud knows how to connect to a cloud host to
  72507. create a VM with these attributes.
  72508. .SS Create VMs
  72509. .sp
  72510. VMs are created by calling \fBsalt\-cloud\fP with the following options:
  72511. .INDENT 0.0
  72512. .INDENT 3.5
  72513. .sp
  72514. .nf
  72515. .ft C
  72516. salt\-cloud \-p <profile> <name1> <name2> ...
  72517. .ft P
  72518. .fi
  72519. .UNINDENT
  72520. .UNINDENT
  72521. .sp
  72522. For example:
  72523. .INDENT 0.0
  72524. .INDENT 3.5
  72525. .sp
  72526. .nf
  72527. .ft C
  72528. salt\-cloud \-p micro_ec2 minion1 minion2
  72529. .ft P
  72530. .fi
  72531. .UNINDENT
  72532. .UNINDENT
  72533. .SS Destroy VMs
  72534. .sp
  72535. Add a \fB\-d\fP and the minion name you provided to destroy:
  72536. .INDENT 0.0
  72537. .INDENT 3.5
  72538. .sp
  72539. .nf
  72540. .ft C
  72541. salt\-cloud \-d minion1 minion2
  72542. .ft P
  72543. .fi
  72544. .UNINDENT
  72545. .UNINDENT
  72546. .SS Query VMs
  72547. .sp
  72548. You can view details about the VMs you\(aqve created using \fB\-\-query\fP:
  72549. .INDENT 0.0
  72550. .INDENT 3.5
  72551. .sp
  72552. .nf
  72553. .ft C
  72554. salt\-cloud \-\-query
  72555. .ft P
  72556. .fi
  72557. .UNINDENT
  72558. .UNINDENT
  72559. .SS Cloud Map
  72560. .sp
  72561. Now that you know how to create and destoy individual VMs, next you should
  72562. learn how to use a cloud map to create a number of VMs at once.
  72563. .sp
  72564. Cloud maps let you define a map of your infrastructure and quickly provision
  72565. any number of VMs. On subsequent runs, any VMs that do not exist are created,
  72566. and VMs that are already configured are left unmodified.
  72567. .sp
  72568. See Cloud Map File\&.
  72569. .SS Using Salt Cloud with the Event Reactor
  72570. .sp
  72571. One of the most powerful features of the Salt framework is the Event Reactor.
  72572. As the Reactor was in development, Salt Cloud was regularly updated to take
  72573. advantage of the Reactor upon completion. As such, various aspects of both the
  72574. creation and destruction of instances with Salt Cloud fire events to the Salt
  72575. Master, which can be used by the Event Reactor.
  72576. .SS Event Structure
  72577. .sp
  72578. As of this writing, all events in Salt Cloud have a tag, which includes the ID
  72579. of the instance being managed, and a payload which describes the task that is
  72580. currently being handled. A Salt Cloud tag looks like:
  72581. .INDENT 0.0
  72582. .INDENT 3.5
  72583. .sp
  72584. .nf
  72585. .ft C
  72586. salt/cloud/<minion_id>/<task>
  72587. .ft P
  72588. .fi
  72589. .UNINDENT
  72590. .UNINDENT
  72591. .sp
  72592. For instance, the first event fired when creating an instance named \fBweb1\fP
  72593. would look like:
  72594. .INDENT 0.0
  72595. .INDENT 3.5
  72596. .sp
  72597. .nf
  72598. .ft C
  72599. salt/cloud/web1/creating
  72600. .ft P
  72601. .fi
  72602. .UNINDENT
  72603. .UNINDENT
  72604. .sp
  72605. Assuming this instance is using the \fBec2\-centos\fP profile, which is in turn
  72606. using the \fBec2\-config\fP provider, the payload for this tag would look like:
  72607. .INDENT 0.0
  72608. .INDENT 3.5
  72609. .sp
  72610. .nf
  72611. .ft C
  72612. {"name": "web1", "profile": "ec2\-centos", "provider": "ec2\-config:ec2"}
  72613. .ft P
  72614. .fi
  72615. .UNINDENT
  72616. .UNINDENT
  72617. .SS Available Events
  72618. .sp
  72619. When an instance is created in Salt Cloud, whether by map, profile, or directly
  72620. through an API, a minimum of five events are normally fired. More may be
  72621. available, depending upon the cloud provider being used. Some of the common
  72622. events are described below.
  72623. .SS salt/cloud/<minion_id>/creating
  72624. .sp
  72625. This event states simply that the process to create an instance has begun. At
  72626. this point in time, no actual work has begun. The payload for this event
  72627. includes:
  72628. .sp
  72629. name
  72630. profile
  72631. provider
  72632. .SS salt/cloud/<minion_id>/requesting
  72633. .sp
  72634. Salt Cloud is about to make a request to the cloud provider to create an
  72635. instance. At this point, all of the variables required to make the request have
  72636. been gathered, and the payload of the event will reflect those variables which
  72637. do not normally pose a security risk. What is returned here is dependent upon
  72638. the cloud provider. Some common variables are:
  72639. .sp
  72640. name
  72641. image
  72642. size
  72643. location
  72644. .SS salt/cloud/<minion_id>/querying
  72645. .sp
  72646. The instance has been successfully requested, but the necessary information to
  72647. log into the instance (such as IP address) is not yet available. This event
  72648. marks the beginning of the process to wait for this information.
  72649. .sp
  72650. The payload for this event normally only includes the \fBinstance_id\fP\&.
  72651. .SS salt/cloud/<minion_id>/waiting_for_ssh
  72652. .sp
  72653. The information required to log into the instance has been retrieved, but the
  72654. instance is not necessarily ready to be accessed. Following this event, Salt
  72655. Cloud will wait for the IP address to respond to a ping, then wait for the
  72656. specified port (usually 22) to respond to a connection, and on Linux systems,
  72657. for SSH to become available. Salt Cloud will attempt to issue the \fBdate\fP
  72658. command on the remote system, as a means to check for availability. If no
  72659. \fBssh_username\fP has been specified, a list of usernames (starting with
  72660. \fBroot\fP) will be attempted. If one or more usernames was configured for
  72661. \fBssh_username\fP, they will be added to the beginning of the list, in order.
  72662. .sp
  72663. The payload for this event normally only includes the \fBip_address\fP\&.
  72664. .SS salt/cloud/<minion_id>/deploying
  72665. .sp
  72666. The necessary port has been detected as available, and now Salt Cloud can log
  72667. into the instance, upload any files used for deployment, and run the deploy
  72668. script. Once the script has completed, Salt Cloud will log back into the
  72669. instance and remove any remaining files.
  72670. .sp
  72671. A number of variables are used to deploy instances, and the majority of these
  72672. will be available in the payload. Any keys, passwords or other sensitive data
  72673. will be scraped from the payload. Most of the variables returned will be
  72674. related to the profile or provider config, and any default values that could
  72675. have been changed in the profile or provider, but weren\(aqt.
  72676. .SS salt/cloud/<minion_id>/created
  72677. .sp
  72678. The deploy sequence has completed, and the instance is now available, Salted,
  72679. and ready for use. This event is the final task for Salt Cloud, before returning
  72680. instance information to the user and exiting.
  72681. .sp
  72682. The payload for this event contains little more than the initial \fBcreating\fP
  72683. event. This event is required in all cloud providers.
  72684. .SS Filtering Events
  72685. .sp
  72686. When creating a VM, it is possible with certain tags to filter how much
  72687. information is sent to the event bus. The tags that can be filtered on any
  72688. provider are:
  72689. .INDENT 0.0
  72690. .IP \(bu 2
  72691. \fBsalt/cloud/<minion_id>/creating\fP
  72692. .IP \(bu 2
  72693. \fBsalt/cloud/<minion_id>/requesting\fP
  72694. .IP \(bu 2
  72695. \fBsalt/cloud/<minion_id>/created\fP
  72696. .UNINDENT
  72697. .sp
  72698. Other providers may allow other tags to be filtered; when that is the case,
  72699. the documentation for that provider will contain more details.
  72700. .sp
  72701. To filter information, create a section in your \fB/etc/salt/cloud\fP file called
  72702. \fBfilter_events\fP\&. Create a section for each tag that you want to filter, using
  72703. the last segment of the tag. For instance, use \fBcreating\fP to represent
  72704. \fBsalt/cloud/<minion_id>/creating\fP:
  72705. .INDENT 0.0
  72706. .INDENT 3.5
  72707. .sp
  72708. .nf
  72709. .ft C
  72710. filter_events:
  72711. creating:
  72712. keys:
  72713. \- name
  72714. \- profile
  72715. \- provider
  72716. .ft P
  72717. .fi
  72718. .UNINDENT
  72719. .UNINDENT
  72720. .sp
  72721. Any keys listed here will be added to the default keys that are already set to
  72722. be displayed for that provider. If you wish to start with a clean slate and
  72723. only show the keys specified, add another option called \fBuse_defaults\fP and
  72724. set it to \fBFalse\fP\&.
  72725. .INDENT 0.0
  72726. .INDENT 3.5
  72727. .sp
  72728. .nf
  72729. .ft C
  72730. filter_events:
  72731. creating:
  72732. keys:
  72733. \- name
  72734. \- profile
  72735. \- provider
  72736. use_defaults: False
  72737. .ft P
  72738. .fi
  72739. .UNINDENT
  72740. .UNINDENT
  72741. .SS Configuring the Event Reactor
  72742. .sp
  72743. The Event Reactor is built into the Salt Master process, and as such is
  72744. configured via the master configuration file. Normally this will be a YAML
  72745. file located at \fB/etc/salt/master\fP\&. Additionally, master configuration items
  72746. can be stored, in YAML format, inside the \fB/etc/salt/master.d/\fP directory.
  72747. .sp
  72748. These configuration items may be stored in either location; however, they may
  72749. only be stored in one location. For organizational and security purposes, it
  72750. may be best to create a single configuration file, which contains only Event
  72751. Reactor configuration, at \fB/etc/salt/master.d/reactor\fP\&.
  72752. .sp
  72753. The Event Reactor uses a top\-level configuration item called \fBreactor\fP\&. This
  72754. block contains a list of tags to be watched for, each of which also includes a
  72755. list of \fBsls\fP files. For instance:
  72756. .INDENT 0.0
  72757. .INDENT 3.5
  72758. .sp
  72759. .nf
  72760. .ft C
  72761. reactor:
  72762. \- \(aqsalt/minion/*/start\(aq:
  72763. \- \(aq/srv/reactor/custom\-reactor.sls\(aq
  72764. \- \(aqsalt/cloud/*/created\(aq:
  72765. \- \(aq/srv/reactor/cloud\-alert.sls\(aq
  72766. \- \(aqsalt/cloud/*/destroyed\(aq:
  72767. \- \(aq/srv/reactor/cloud\-destroy\-alert.sls\(aq
  72768. .ft P
  72769. .fi
  72770. .UNINDENT
  72771. .UNINDENT
  72772. .sp
  72773. The above configuration configures reactors for three different tags: one which
  72774. is fired when a minion process has started and is available to receive commands,
  72775. one which is fired when a cloud instance has been created, and one which is
  72776. fired when a cloud instance is destroyed.
  72777. .sp
  72778. Note that each tag contains a wildcard (\fB*\fP) in it. For each of these tags,
  72779. this will normally refer to a \fBminion_id\fP\&. This is not required of event tags,
  72780. but is very common.
  72781. .SS Reactor SLS Files
  72782. .sp
  72783. Reactor \fBsls\fP files should be placed in the \fB/srv/reactor/\fP directory for
  72784. consistency between environments, but this is not currently enforced by Salt.
  72785. .sp
  72786. Reactor \fBsls\fP files follow a similar format to other \fBsls\fP files in
  72787. Salt. By default they are written in YAML and can be templated using Jinja, but
  72788. since they are processed through Salt\(aqs rendering system, any available
  72789. renderer (JSON, Mako, Cheetah, etc.) can be used.
  72790. .sp
  72791. As with other \fBsls\fP files, each stanza will start with a declaration ID,
  72792. followed by the function to run, and then any arguments for that function. For
  72793. example:
  72794. .INDENT 0.0
  72795. .INDENT 3.5
  72796. .sp
  72797. .nf
  72798. .ft C
  72799. # /srv/reactor/cloud\-alert.sls
  72800. new_instance_alert:
  72801. cmd.pagerduty.create_event:
  72802. \- tgt: alertserver
  72803. \- kwarg:
  72804. description: "New instance: {{ data[\(aqname\(aq] }}"
  72805. details: "New cloud instance created on {{ data[\(aqprovider\(aq] }}"
  72806. service_key: 1626dead5ecafe46231e968eb1be29c4
  72807. profile: my\-pagerduty\-account
  72808. .ft P
  72809. .fi
  72810. .UNINDENT
  72811. .UNINDENT
  72812. .sp
  72813. When the Event Reactor receives an event notifying it that a new instance has
  72814. been created, this \fBsls\fP will create a new incident in PagerDuty, using the
  72815. configured PagerDuty account.
  72816. .sp
  72817. The declaration ID in this example is \fBnew_instance_alert\fP\&. The function
  72818. called is \fBcmd.pagerduty.create_event\fP\&. The \fBcmd\fP portion of this function
  72819. specifies that an execution module and function will be called, in this case,
  72820. the \fBpagerduty.create_event\fP function.
  72821. .sp
  72822. Because an execution module is specified, a target (\fBtgt\fP) must be specified
  72823. on which to call the function. In this case, a minion called \fBalertserver\fP
  72824. has been used. Any arguments passed through to the function are declared in the
  72825. \fBkwarg\fP block.
  72826. .SS Example: Reactor\-Based Highstate
  72827. .sp
  72828. When Salt Cloud creates an instance, by default it will install the Salt Minion
  72829. onto the instance, along with any specified minion configuration, and
  72830. automatically accept that minion\(aqs keys on the master. One of the configuration
  72831. options that can be specified is \fBstartup_states\fP, which is commonly set to
  72832. \fBhighstate\fP\&. This will tell the minion to immediately apply a highstate, as soon as it is able to do so.
  72833. .sp
  72834. This can present a problem with some system images on some cloud hosts. For
  72835. instance, Salt Cloud can be configured to log in as either the \fBroot\fP user, or
  72836. a user with \fBsudo\fP access. While some hosts commonly use images that
  72837. lock out remote \fBroot\fP access and require a user with \fBsudo\fP privileges to
  72838. log in (notably EC2, with their \fBec2\-user\fP login), most cloud hosts fall
  72839. back to \fBroot\fP as the default login on all images, including for operating
  72840. systems (such as Ubuntu) which normally disallow remote \fBroot\fP login.
  72841. .sp
  72842. For users of these operating systems, it is understandable that a
  72843. highstate would include configuration to block
  72844. remote \fBroot\fP logins again. However, Salt Cloud may not have finished
  72845. cleaning up its deployment files by the time the minion process has started,
  72846. and kicked off a highstate run. Users have reported
  72847. errors from Salt Cloud getting locked out while trying to clean up after
  72848. itself.
  72849. .sp
  72850. The goal of a startup state may be achieved using the Event Reactor. Because a
  72851. minion fires an event when it is able to receive commands, this event can
  72852. effectively be used inside the reactor system instead. The following will point
  72853. the reactor system to the right \fBsls\fP file:
  72854. .INDENT 0.0
  72855. .INDENT 3.5
  72856. .sp
  72857. .nf
  72858. .ft C
  72859. reactor:
  72860. \- \(aqsalt/cloud/*/created\(aq:
  72861. \- \(aq/srv/reactor/startup_highstate.sls\(aq
  72862. .ft P
  72863. .fi
  72864. .UNINDENT
  72865. .UNINDENT
  72866. .sp
  72867. And the following \fBsls\fP file will start a highstate run on the target minion:
  72868. .INDENT 0.0
  72869. .INDENT 3.5
  72870. .sp
  72871. .nf
  72872. .ft C
  72873. # /srv/reactor/startup_highstate.sls
  72874. reactor_highstate:
  72875. cmd.state.apply:
  72876. \- tgt: {{ data[\(aqname\(aq] }}
  72877. .ft P
  72878. .fi
  72879. .UNINDENT
  72880. .UNINDENT
  72881. .sp
  72882. Because this event will not be fired until Salt Cloud has cleaned up after
  72883. itself, the highstate run will not step on
  72884. salt\-cloud\(aqs toes. And because every file on the minion is configurable,
  72885. including \fB/etc/salt/minion\fP, the \fBstartup_states\fP can still be configured
  72886. for future minion restarts, if desired.
  72887. .SH SALT PROXY MINION
  72888. .sp
  72889. Proxy minions are a developing Salt feature that enables controlling devices
  72890. that, for whatever reason, cannot run a standard salt\-minion. Examples include
  72891. network gear that has an API but runs a proprietary OS, devices with limited
  72892. CPU or memory, or devices that could run a minion, but for security reasons,
  72893. will not.
  72894. .sp
  72895. There are some proxy modules available, but if your device
  72896. interface is not currently supported you will most likely have to write the interface
  72897. yourself, because there are an infinite number of controllable devices. Fortunately, this
  72898. is only as difficult as the actual interface to the proxied device. Devices that have an
  72899. existing Python module (PyUSB for example) would be relatively simple to interface.
  72900. Code to control a device that has an HTML REST\-based interface should be easy. Code to
  72901. control your typical housecat would be excellent source material for a PhD thesis.
  72902. .sp
  72903. Salt proxy\-minions provide the \(aqplumbing\(aq that allows device enumeration
  72904. and discovery, control, status, remote execution, and state management.
  72905. .sp
  72906. See the Proxy Minion Walkthrough for an end\-to\-end
  72907. demonstration of a working REST\-based proxy minion.
  72908. .sp
  72909. See the Proxy Minion SSH Walkthrough for an end\-to\-end
  72910. demonstration of a working SSH proxy minion.
  72911. .sp
  72912. See Proxyminion States to configure and
  72913. run \fBsalt\-proxy\fP on a remote minion. Specify all your master side
  72914. proxy (pillar) configuration and use this state to remotely configure proxies on one
  72915. or more minions.
  72916. .sp
  72917. See Proxyminion Beacon to help
  72918. with easy configuration and management of \fBsalt\-proxy\fP processes.
  72919. .SS New in 2017.7.0
  72920. .sp
  72921. The \fBproxy_merge_grains_in_module\fP configuration variable
  72922. introduced in 2016.3, has been changed, defaulting to \fBTrue\fP\&.
  72923. .sp
  72924. The connection with the remote device is kept alive by default, when the
  72925. module implements the \fBalive\fP function and \fBproxy_keep_alive\fP
  72926. is set to \fBTrue\fP\&. The polling interval is set using the
  72927. \fBproxy_keep_alive_interval\fP option which defaults to 1 minute.
  72928. .sp
  72929. The developers are also able to use the \fBproxy_always_alive\fP,
  72930. when designing a proxy module flexible enough to open the
  72931. connection with the remote device only when required.
  72932. .SS New in 2016.11.0
  72933. .sp
  72934. Proxy minions now support configuration files with names ending in \(aq*.conf\(aq
  72935. and placed in /etc/salt/proxy.d.
  72936. .sp
  72937. Proxy minions can now be configured in /etc/salt/proxy or /etc/salt/proxy.d
  72938. instead of just pillar. Configuration format is the same as it would be in pillar.
  72939. .SS New in 2016.3
  72940. .sp
  72941. The deprecated config option \fBenumerate_proxy_minions\fP has been removed.
  72942. .sp
  72943. As mentioned in earlier documentation, the \fBadd_proxymodule_to_opts\fP
  72944. configuration variable defaults to \fBFalse\fP in this release. This means if you
  72945. have proxymodules or other code looking in \fB__opts__[\(aqproxymodule\(aq]\fP you
  72946. will need to set this variable in your \fB/etc/salt/proxy\fP file, or
  72947. modify your code to use the \fI__proxy__\fP injected variable.
  72948. .sp
  72949. The \fB__proxyenabled__\fP directive now only applies to grains and proxy modules
  72950. themselves. Standard execution modules and state modules are not prevented
  72951. from loading for proxy minions.
  72952. .sp
  72953. Enhancements in grains processing have made the \fB__proxyenabled__\fP directive
  72954. somewhat redundant in dynamic grains code. It is still required, but best
  72955. practices for the \fB__virtual__\fP function in grains files have changed. It
  72956. is now recommended that the \fB__virtual__\fP functions check to make sure
  72957. they are being loaded for the correct proxytype, example below:
  72958. .INDENT 0.0
  72959. .INDENT 3.5
  72960. .sp
  72961. .nf
  72962. .ft C
  72963. def __virtual__():
  72964. """
  72965. Only work on proxy
  72966. """
  72967. try:
  72968. if (
  72969. salt.utils.platform.is_proxy()
  72970. and __opts__["proxy"]["proxytype"] == "ssh_sample"
  72971. ):
  72972. return __virtualname__
  72973. except KeyError:
  72974. pass
  72975. return False
  72976. .ft P
  72977. .fi
  72978. .UNINDENT
  72979. .UNINDENT
  72980. .sp
  72981. The try/except block above exists because grains are processed very early
  72982. in the proxy minion startup process, sometimes earlier than the proxy
  72983. key in the \fB__opts__\fP dictionary is populated.
  72984. .sp
  72985. Grains are loaded so early in startup that no dunder dictionaries are
  72986. present, so \fB__proxy__\fP, \fB__salt__\fP, etc. are not available. Custom
  72987. grains located in \fB/srv/salt/_grains\fP and in the salt install grains
  72988. directory can now take a single argument, \fBproxy\fP, that is identical
  72989. to \fB__proxy__\fP\&. This enables patterns like
  72990. .INDENT 0.0
  72991. .INDENT 3.5
  72992. .sp
  72993. .nf
  72994. .ft C
  72995. def get_ip(proxy):
  72996. """
  72997. Ask the remote device what IP it has
  72998. """
  72999. return {"ip": proxy["proxymodulename.get_ip"]()}
  73000. .ft P
  73001. .fi
  73002. .UNINDENT
  73003. .UNINDENT
  73004. .sp
  73005. Then the grain \fBip\fP will contain the result of calling the \fBget_ip()\fP function
  73006. in the proxymodule called \fBproxymodulename\fP\&.
  73007. .sp
  73008. Proxy modules now benefit from including a function called \fBinitialized()\fP\&. This
  73009. function should return \fBTrue\fP if the proxy\(aqs \fBinit()\fP function has been successfully
  73010. called. This is needed to make grains processing easier.
  73011. .sp
  73012. Finally, if there is a function called \fBgrains\fP in the proxymodule, it
  73013. will be executed on proxy\-minion startup and its contents will be merged with
  73014. the rest of the proxy\(aqs grains. Since older proxy\-minions might have used other
  73015. methods to call such a function and add its results to grains, this is config\-gated
  73016. by a new proxy configuration option called \fBproxy_merge_grains_in_module\fP\&. This
  73017. defaults to \fBTrue\fP in the \fB2017.7.0\fP release.
  73018. .SS New in 2015.8.2
  73019. .sp
  73020. \fIBREAKING CHANGE\fP: Adding the \fIproxymodule\fP variable to __opts__ is deprecated.
  73021. The \fIproxymodule\fP variable has been moved a new globally\-injected variable
  73022. called \fI__proxy__\fP\&. A related configuration option called
  73023. \fIadd_proxymodule_to_opts\fP has been added and defaults to \fITrue\fP\&. In the next
  73024. major release, 2016.3.0, this variable will default to False.
  73025. .sp
  73026. In the meantime, proxies that functioned under 2015.8.0 and .1 should continue
  73027. to work under 2015.8.2. You should rework your proxy code to use \fI__proxy__\fP as
  73028. soon as possible.
  73029. .sp
  73030. The \fIrest_sample\fP example proxy minion has been updated to use \fI__proxy__\fP\&.
  73031. .sp
  73032. This change was made because proxymodules are a LazyLoader object, but
  73033. LazyLoaders cannot be serialized. \fI__opts__\fP gets serialized, and so things
  73034. like \fIsaltutil.sync_all\fP and \fIstate.highstate\fP would throw exceptions.
  73035. .sp
  73036. Support has been added to Salt\(aqs loader allowing custom proxymodules
  73037. to be placed in \fBsalt://_proxy\fP\&. Proxy minions that need these modules
  73038. will need to be restarted to pick up any changes. A corresponding utility function,
  73039. \fBsaltutil.sync_proxymodules\fP, has been added to sync these modules to minions.
  73040. .sp
  73041. In addition, a salt.utils helper function called \fIis_proxy()\fP was added to make
  73042. it easier to tell when the running minion is a proxy minion. \fBNOTE: This
  73043. function was renamed to salt.utils.platform.is_proxy() for the 2018.3.0
  73044. release\fP
  73045. .SS New in 2015.8
  73046. .sp
  73047. Starting with the 2015.8 release of Salt, proxy processes are no longer forked
  73048. off from a controlling minion. Instead, they have their own script
  73049. \fBsalt\-proxy\fP which takes mostly the same arguments that the standard Salt
  73050. minion does with the addition of \fB\-\-proxyid\fP\&. This is the id that the
  73051. salt\-proxy will use to identify itself to the master. Proxy configurations are
  73052. still best kept in Pillar and their format has not changed.
  73053. .sp
  73054. This change allows for better process control and logging. Proxy processes can
  73055. now be listed with standard process management utilities (\fBps\fP from the
  73056. command line). Also, a full Salt minion is no longer required (though it is
  73057. still strongly recommended) on machines hosting proxies.
  73058. .SS Getting Started
  73059. .sp
  73060. The following diagram may be helpful in understanding the structure of a Salt
  73061. installation that includes proxy\-minions:
  73062. [image]
  73063. .sp
  73064. The key thing to remember is the left\-most section of the diagram. Salt\(aqs
  73065. nature is to have a minion connect to a master, then the master may control
  73066. the minion. However, for proxy minions, the target device cannot run a minion.
  73067. .sp
  73068. After the proxy minion is started and initiates its connection to the
  73069. device, it connects back to the salt\-master and for all intents and purposes
  73070. looks like just another minion to the Salt master.
  73071. .sp
  73072. To create support for a proxied device one needs to create four things:
  73073. .INDENT 0.0
  73074. .IP 1. 3
  73075. The \fI\%proxy_connection_module\fP (located in salt/proxy).
  73076. .IP 2. 3
  73077. The \fI\%grains support code\fP (located in salt/grains).
  73078. .IP 3. 3
  73079. Salt modules specific to the controlled
  73080. device.
  73081. .IP 4. 3
  73082. Salt states specific to the controlled device.
  73083. .UNINDENT
  73084. .SS Configuration parameters
  73085. .sp
  73086. Proxy minions require no configuration parameters in /etc/salt/master.
  73087. .sp
  73088. Salt\(aqs Pillar system is ideally suited for configuring proxy\-minions
  73089. (though they can be configured in /etc/salt/proxy as well). Proxies
  73090. can either be designated via a pillar file in pillar_roots, or through an
  73091. external pillar. External pillars afford the opportunity for interfacing with
  73092. a configuration management system, database, or other knowledgeable system that
  73093. that may already contain all the details of proxy targets. To use static files
  73094. in pillar_roots, pattern your files after the following examples, which are
  73095. based on the diagram above:
  73096. .sp
  73097. \fB/srv/pillar/top.sls\fP
  73098. .INDENT 0.0
  73099. .INDENT 3.5
  73100. .sp
  73101. .nf
  73102. .ft C
  73103. base:
  73104. net\-device1:
  73105. \- net\-device1
  73106. net\-device2:
  73107. \- net\-device2
  73108. net\-device3:
  73109. \- net\-device3
  73110. i2c\-device4:
  73111. \- i2c\-device4
  73112. i2c\-device5:
  73113. \- i2c\-device5
  73114. 433wireless\-device6:
  73115. \- 433wireless\-device6
  73116. smsgate\-device7:
  73117. \- device7
  73118. .ft P
  73119. .fi
  73120. .UNINDENT
  73121. .UNINDENT
  73122. .sp
  73123. \fB/srv/pillar/net\-device1.sls\fP
  73124. .INDENT 0.0
  73125. .INDENT 3.5
  73126. .sp
  73127. .nf
  73128. .ft C
  73129. proxy:
  73130. proxytype: networkswitch
  73131. host: 172.23.23.5
  73132. username: root
  73133. passwd: letmein
  73134. .ft P
  73135. .fi
  73136. .UNINDENT
  73137. .UNINDENT
  73138. .sp
  73139. \fB/srv/pillar/net\-device2.sls\fP
  73140. .INDENT 0.0
  73141. .INDENT 3.5
  73142. .sp
  73143. .nf
  73144. .ft C
  73145. proxy:
  73146. proxytype: networkswitch
  73147. host: 172.23.23.6
  73148. username: root
  73149. passwd: letmein
  73150. .ft P
  73151. .fi
  73152. .UNINDENT
  73153. .UNINDENT
  73154. .sp
  73155. \fB/srv/pillar/net\-device3.sls\fP
  73156. .INDENT 0.0
  73157. .INDENT 3.5
  73158. .sp
  73159. .nf
  73160. .ft C
  73161. proxy:
  73162. proxytype: networkswitch
  73163. host: 172.23.23.7
  73164. username: root
  73165. passwd: letmein
  73166. .ft P
  73167. .fi
  73168. .UNINDENT
  73169. .UNINDENT
  73170. .sp
  73171. \fB/srv/pillar/i2c\-device4.sls\fP
  73172. .INDENT 0.0
  73173. .INDENT 3.5
  73174. .sp
  73175. .nf
  73176. .ft C
  73177. proxy:
  73178. proxytype: i2c_lightshow
  73179. i2c_address: 1
  73180. .ft P
  73181. .fi
  73182. .UNINDENT
  73183. .UNINDENT
  73184. .sp
  73185. \fB/srv/pillar/i2c\-device5.sls\fP
  73186. .INDENT 0.0
  73187. .INDENT 3.5
  73188. .sp
  73189. .nf
  73190. .ft C
  73191. proxy:
  73192. proxytype: i2c_lightshow
  73193. i2c_address: 2
  73194. .ft P
  73195. .fi
  73196. .UNINDENT
  73197. .UNINDENT
  73198. .sp
  73199. \fB/srv/pillar/433wireless\-device6.sls\fP
  73200. .INDENT 0.0
  73201. .INDENT 3.5
  73202. .sp
  73203. .nf
  73204. .ft C
  73205. proxy:
  73206. proxytype: 433mhz_wireless
  73207. .ft P
  73208. .fi
  73209. .UNINDENT
  73210. .UNINDENT
  73211. .sp
  73212. \fB/srv/pillar/smsgate\-device7.sls\fP
  73213. .INDENT 0.0
  73214. .INDENT 3.5
  73215. .sp
  73216. .nf
  73217. .ft C
  73218. proxy:
  73219. proxytype: sms_serial
  73220. deventry: /dev/tty04
  73221. .ft P
  73222. .fi
  73223. .UNINDENT
  73224. .UNINDENT
  73225. .sp
  73226. Note the contents of each minioncontroller key may differ widely based on
  73227. the type of device that the proxy\-minion is managing.
  73228. .sp
  73229. In the above example
  73230. .INDENT 0.0
  73231. .IP \(bu 2
  73232. net\-devices 1, 2, and 3 are network switches that have a management
  73233. interface available at a particular IP address.
  73234. .IP \(bu 2
  73235. i2c\-devices 4 and 5 are very low\-level devices controlled over an i2c bus.
  73236. In this case the devices are physically connected to machine
  73237. \(aqminioncontroller2\(aq, and are addressable on the i2c bus at their respective
  73238. i2c addresses.
  73239. .IP \(bu 2
  73240. 433wireless\-device6 is a 433 MHz wireless transmitter, also physically connected to
  73241. minioncontroller2
  73242. .IP \(bu 2
  73243. smsgate\-device7 is an SMS gateway connected to machine minioncontroller3 via a
  73244. serial port.
  73245. .UNINDENT
  73246. .sp
  73247. Because of the way pillar works, each of the salt\-proxy processes that fork off the
  73248. proxy minions will only see the keys specific to the proxies it will be
  73249. handling.
  73250. .sp
  73251. Proxies can be configured in /etc/salt/proxy or with files in /etc/salt/proxy.d as of
  73252. Salt\(aqs 2016.11.0 release.
  73253. .sp
  73254. Also, in general, proxy\-minions are lightweight, so the machines that run them
  73255. could conceivably control a large number of devices. To run more than one proxy from
  73256. a single machine, simply start an additional proxy process with \fB\-\-proxyid\fP
  73257. set to the id to which you want the proxy to bind.
  73258. It is possible for the proxy services to be spread across
  73259. many machines if necessary, or intentionally run on machines that need to
  73260. control devices because of some physical interface (e.g. i2c and serial above).
  73261. Another reason to divide proxy services might be security. In more secure
  73262. environments only certain machines may have a network path to certain devices.
  73263. .SS Proxymodules
  73264. .sp
  73265. A proxy module encapsulates all the code necessary to interface with a device.
  73266. Proxymodules are located inside the salt.proxy module, or can be placed in
  73267. the \fB_proxy\fP directory in your file_roots (default is \fB/srv/salt/_proxy\fP\&.
  73268. At a minimum a proxymodule object must implement the following functions:
  73269. .sp
  73270. \fB__virtual__()\fP: This function performs the same duty that it does for other
  73271. types of Salt modules. Logic goes here to determine if the module can be
  73272. loaded, checking for the presence of Python modules on which the proxy depends.
  73273. Returning \fBFalse\fP will prevent the module from loading.
  73274. .sp
  73275. \fBinit(opts)\fP: Perform any initialization that the device needs. This is
  73276. a good place to bring up a persistent connection to a device, or authenticate
  73277. to create a persistent authorization token.
  73278. .sp
  73279. \fBinitialized()\fP: Returns True if \fBinit()\fP was successfully called.
  73280. .sp
  73281. \fBshutdown()\fP: Code to cleanly shut down or close a connection to
  73282. a controlled device goes here. This function must exist, but can contain only
  73283. the keyword \fBpass\fP if there is no shutdown logic required.
  73284. .sp
  73285. \fBping()\fP: While not required, it is highly recommended that this function also
  73286. be defined in the proxymodule. The code for \fBping\fP should contact the
  73287. controlled device and make sure it is really available.
  73288. .sp
  73289. \fBalive(opts)\fP: Another optional function, it is used together with the
  73290. \fBproxy_keep_alive\fP option (default: \fBTrue\fP). This function should
  73291. return a boolean value corresponding to the state of the connection.
  73292. If the connection is down, will try to restart (\fBshutdown\fP
  73293. followed by \fBinit\fP). The polling frequency is controlled using
  73294. the \fBproxy_keep_alive_interval\fP option, in minutes.
  73295. .sp
  73296. \fBgrains()\fP: Rather than including grains in /srv/salt/_grains or in
  73297. the standard install directories for grains, grains can be computed and
  73298. returned by this function. This function will be called automatically
  73299. if \fBproxy_merge_grains_in_module\fP is set to \fBTrue\fP in /etc/salt/proxy.
  73300. This variable defaults to \fBTrue\fP in the release code\-named \fI2017.7.0\fP\&.
  73301. .sp
  73302. Pre 2015.8 the proxymodule also must have an \fBid()\fP function. 2015.8 and following don\(aqt use
  73303. this function because the proxy\(aqs id is required on the command line.
  73304. .sp
  73305. Here is an example proxymodule used to interface to a \fIvery\fP simple REST
  73306. server. Code for the server is in the \fI\%salt\-contrib GitHub repository\fP\&.
  73307. .sp
  73308. This proxymodule enables "service" enumeration, starting, stopping, restarting,
  73309. and status; "package" installation, and a ping.
  73310. .INDENT 0.0
  73311. .INDENT 3.5
  73312. .sp
  73313. .nf
  73314. .ft C
  73315. # \-*\- coding: utf\-8 \-*\-
  73316. """
  73317. This is a simple proxy\-minion designed to connect to and communicate with
  73318. the bottle\-based web service contained in https://github.com/saltstack/salt\-contrib/tree/master/proxyminion_rest_example
  73319. """
  73320. from __future__ import absolute_import
  73321. # Import python libs
  73322. import logging
  73323. import salt.utils.http
  73324. HAS_REST_EXAMPLE = True
  73325. # This must be present or the Salt loader won\(aqt load this module
  73326. __proxyenabled__ = ["rest_sample"]
  73327. # Variables are scoped to this module so we can have persistent data
  73328. # across calls to fns in here.
  73329. GRAINS_CACHE = {}
  73330. DETAILS = {}
  73331. # Want logging!
  73332. log = logging.getLogger(__file__)
  73333. # This does nothing, it\(aqs here just as an example and to provide a log
  73334. # entry when the module is loaded.
  73335. def __virtual__():
  73336. """
  73337. Only return if all the modules are available
  73338. """
  73339. log.debug("rest_sample proxy __virtual__() called...")
  73340. return True
  73341. def _complicated_function_that_determines_if_alive():
  73342. return True
  73343. # Every proxy module needs an \(aqinit\(aq, though you can
  73344. # just put DETAILS[\(aqinitialized\(aq] = True here if nothing
  73345. # else needs to be done.
  73346. def init(opts):
  73347. log.debug("rest_sample proxy init() called...")
  73348. DETAILS["initialized"] = True
  73349. # Save the REST URL
  73350. DETAILS["url"] = opts["proxy"]["url"]
  73351. # Make sure the REST URL ends with a \(aq/\(aq
  73352. if not DETAILS["url"].endswith("/"):
  73353. DETAILS["url"] += "/"
  73354. def alive(opts):
  73355. """
  73356. This function returns a flag with the connection state.
  73357. It is very useful when the proxy minion establishes the communication
  73358. via a channel that requires a more elaborated keep\-alive mechanism, e.g.
  73359. NETCONF over SSH.
  73360. """
  73361. log.debug("rest_sample proxy alive() called...")
  73362. return _complicated_function_that_determines_if_alive()
  73363. def initialized():
  73364. """
  73365. Since grains are loaded in many different places and some of those
  73366. places occur before the proxy can be initialized, return whether
  73367. our init() function has been called
  73368. """
  73369. return DETAILS.get("initialized", False)
  73370. def grains():
  73371. """
  73372. Get the grains from the proxied device
  73373. """
  73374. if not DETAILS.get("grains_cache", {}):
  73375. r = salt.utils.http.query(
  73376. DETAILS["url"] + "info", decode_type="json", decode=True
  73377. )
  73378. DETAILS["grains_cache"] = r["dict"]
  73379. return DETAILS["grains_cache"]
  73380. def grains_refresh():
  73381. """
  73382. Refresh the grains from the proxied device
  73383. """
  73384. DETAILS["grains_cache"] = None
  73385. return grains()
  73386. def fns():
  73387. return {
  73388. "details": "This key is here because a function in "
  73389. "grains/rest_sample.py called fns() here in the proxymodule."
  73390. }
  73391. def service_start(name):
  73392. """
  73393. Start a "service" on the REST server
  73394. """
  73395. r = salt.utils.http.query(
  73396. DETAILS["url"] + "service/start/" + name, decode_type="json", decode=True
  73397. )
  73398. return r["dict"]
  73399. def service_stop(name):
  73400. """
  73401. Stop a "service" on the REST server
  73402. """
  73403. r = salt.utils.http.query(
  73404. DETAILS["url"] + "service/stop/" + name, decode_type="json", decode=True
  73405. )
  73406. return r["dict"]
  73407. def service_restart(name):
  73408. """
  73409. Restart a "service" on the REST server
  73410. """
  73411. r = salt.utils.http.query(
  73412. DETAILS["url"] + "service/restart/" + name, decode_type="json", decode=True
  73413. )
  73414. return r["dict"]
  73415. def service_list():
  73416. """
  73417. List "services" on the REST server
  73418. """
  73419. r = salt.utils.http.query(
  73420. DETAILS["url"] + "service/list", decode_type="json", decode=True
  73421. )
  73422. return r["dict"]
  73423. def service_status(name):
  73424. """
  73425. Check if a service is running on the REST server
  73426. """
  73427. r = salt.utils.http.query(
  73428. DETAILS["url"] + "service/status/" + name, decode_type="json", decode=True
  73429. )
  73430. return r["dict"]
  73431. def package_list():
  73432. """
  73433. List "packages" installed on the REST server
  73434. """
  73435. r = salt.utils.http.query(
  73436. DETAILS["url"] + "package/list", decode_type="json", decode=True
  73437. )
  73438. return r["dict"]
  73439. def package_install(name, **kwargs):
  73440. """
  73441. Install a "package" on the REST server
  73442. """
  73443. cmd = DETAILS["url"] + "package/install/" + name
  73444. if kwargs.get("version", False):
  73445. cmd += "/" + kwargs["version"]
  73446. else:
  73447. cmd += "/1.0"
  73448. r = salt.utils.http.query(cmd, decode_type="json", decode=True)
  73449. return r["dict"]
  73450. def fix_outage():
  73451. r = salt.utils.http.query(DETAILS["url"] + "fix_outage")
  73452. return r
  73453. def uptodate(name):
  73454. """
  73455. Call the REST endpoint to see if the packages on the "server" are up to date.
  73456. """
  73457. r = salt.utils.http.query(
  73458. DETAILS["url"] + "package/remove/" + name, decode_type="json", decode=True
  73459. )
  73460. return r["dict"]
  73461. def package_remove(name):
  73462. """
  73463. Remove a "package" on the REST server
  73464. """
  73465. r = salt.utils.http.query(
  73466. DETAILS["url"] + "package/remove/" + name, decode_type="json", decode=True
  73467. )
  73468. return r["dict"]
  73469. def package_status(name):
  73470. """
  73471. Check the installation status of a package on the REST server
  73472. """
  73473. r = salt.utils.http.query(
  73474. DETAILS["url"] + "package/status/" + name, decode_type="json", decode=True
  73475. )
  73476. return r["dict"]
  73477. def ping():
  73478. """
  73479. Is the REST server up?
  73480. """
  73481. r = salt.utils.http.query(DETAILS["url"] + "ping", decode_type="json", decode=True)
  73482. try:
  73483. return r["dict"].get("ret", False)
  73484. except Exception:
  73485. return False
  73486. def shutdown(opts):
  73487. """
  73488. For this proxy shutdown is a no\-op
  73489. """
  73490. log.debug("rest_sample proxy shutdown() called...")
  73491. .ft P
  73492. .fi
  73493. .UNINDENT
  73494. .UNINDENT
  73495. .sp
  73496. Grains are data about minions. Most proxied devices will have a paltry amount
  73497. of data as compared to a typical Linux server. By default, a proxy minion will
  73498. have several grains taken from the host. Salt core code requires values for \fBkernel\fP,
  73499. \fBos\fP, and \fBos_family\fP\-\-all of these are forced to be \fBproxy\fP for proxy\-minions.
  73500. .sp
  73501. To add others to your proxy minion for
  73502. a particular device, create a file in salt/grains named [proxytype].py and place
  73503. inside it the different functions that need to be run to collect the data you
  73504. are interested in. Here\(aqs an example. Note the function below called \fBproxy_functions\fP\&.
  73505. It demonstrates how a grains function can take a single argument, which will be
  73506. set to the value of \fB__proxy__\fP\&. Dunder variables are not yet injected into Salt processes
  73507. at the time grains are loaded, so this enables us to get a handle to the proxymodule so we
  73508. can cross\-call the functions therein used to communicate with the controlled device.
  73509. .sp
  73510. Note that as of 2016.3, grains values can also be calculated in a function called \fBgrains()\fP
  73511. in the proxymodule itself. This might be useful if a proxymodule author wants to keep
  73512. all the code for the proxy interface in the same place instead of splitting it between
  73513. the proxy and grains directories.
  73514. .sp
  73515. This function will only be called automatically if the configuration variable
  73516. \fBproxy_merge_grains_in_module\fP is set to True in the proxy configuration file
  73517. (default \fB/etc/salt/proxy\fP). This variable defaults to \fBTrue\fP in the
  73518. release code\-named \fI2017.7.0\fP\&.
  73519. .SS The __proxyenabled__ directive
  73520. .sp
  73521. In previous versions of Salt the \fB__proxyenabled__\fP directive controlled
  73522. loading of all Salt modules for proxies (e.g. grains, execution modules, state
  73523. modules). From 2016.3 on, the only modules that respect \fB__proxyenabled__\fP
  73524. are grains and proxy modules. These modules need to be told which proxy they
  73525. work with.
  73526. .sp
  73527. \fB__proxyenabled__\fP is a list, and can contain a single \(aq*\(aq to indicate
  73528. a grains module works with all proxies.
  73529. .sp
  73530. Example from \fBsalt/grains/rest_sample.py\fP:
  73531. .INDENT 0.0
  73532. .INDENT 3.5
  73533. .sp
  73534. .nf
  73535. .ft C
  73536. # \-*\- coding: utf\-8 \-*\-
  73537. """
  73538. Generate baseline proxy minion grains
  73539. """
  73540. from __future__ import absolute_import
  73541. import salt.utils.platform
  73542. __proxyenabled__ = ["rest_sample"]
  73543. __virtualname__ = "rest_sample"
  73544. def __virtual__():
  73545. try:
  73546. if (
  73547. salt.utils.platform.is_proxy()
  73548. and __opts__["proxy"]["proxytype"] == "rest_sample"
  73549. ):
  73550. return __virtualname__
  73551. except KeyError:
  73552. pass
  73553. return False
  73554. .ft P
  73555. .fi
  73556. .UNINDENT
  73557. .UNINDENT
  73558. .SS Salt Proxy Minion End\-to\-End Example
  73559. .sp
  73560. The following is walkthrough that documents how to run a sample REST service
  73561. and configure one or more proxy minions to talk to and control it.
  73562. .INDENT 0.0
  73563. .IP 1. 3
  73564. Ideally, create a Python virtualenv in which to run the REST service. This
  73565. is not strictly required, but without a virtualenv you will need to install
  73566. \fBbottle\fP via pip globally on your system
  73567. .IP 2. 3
  73568. Clone \fI\%https://github.com/saltstack/salt\-contrib\fP
  73569. and copy the contents of the directory \fBproxyminion_rest_example\fP
  73570. somewhere on a machine that is reachable from the machine on which you want to
  73571. run the salt\-proxy. This machine needs Python 2.7 or later.
  73572. .IP 3. 3
  73573. Install bottle version 0.12.8 via pip or easy_install
  73574. .UNINDENT
  73575. .INDENT 0.0
  73576. .INDENT 3.5
  73577. .sp
  73578. .nf
  73579. .ft C
  73580. pip install bottle==0.12.8
  73581. .ft P
  73582. .fi
  73583. .UNINDENT
  73584. .UNINDENT
  73585. .INDENT 0.0
  73586. .IP 4. 3
  73587. Run \fBpython rest.py \-\-help\fP for usage
  73588. .IP 5. 3
  73589. Start the REST API on an appropriate port and IP.
  73590. .IP 6. 3
  73591. Load the REST service\(aqs status page in your browser by going to the IP/port
  73592. combination (e.g. \fI\%http://127.0.0.1:8000\fP)
  73593. .IP 7. 3
  73594. You should see a page entitled "Salt Proxy Minion" with two sections,
  73595. one for "services" and one for "packages" and you should see a log entry in
  73596. the terminal where you started the REST process indicating that the index
  73597. page was retrieved.
  73598. .UNINDENT
  73599. [image]
  73600. .sp
  73601. Now, configure your salt\-proxy.
  73602. .INDENT 0.0
  73603. .IP 1. 3
  73604. Edit \fB/etc/salt/proxy\fP and add an entry for your master\(aqs location
  73605. .UNINDENT
  73606. .INDENT 0.0
  73607. .INDENT 3.5
  73608. .sp
  73609. .nf
  73610. .ft C
  73611. master: localhost
  73612. .ft P
  73613. .fi
  73614. .UNINDENT
  73615. .UNINDENT
  73616. .INDENT 0.0
  73617. .IP 2. 3
  73618. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73619. for your proxy (in this example we will name the proxy with the letter \(aqp\(aq
  73620. followed by the port the proxy is answering on). In your pillar topfile,
  73621. place an entry for your proxy:
  73622. .UNINDENT
  73623. .INDENT 0.0
  73624. .INDENT 3.5
  73625. .sp
  73626. .nf
  73627. .ft C
  73628. base:
  73629. \(aqp8000\(aq:
  73630. \- p8000
  73631. .ft P
  73632. .fi
  73633. .UNINDENT
  73634. .UNINDENT
  73635. .sp
  73636. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73637. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73638. .INDENT 0.0
  73639. .IP 3. 3
  73640. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73641. following contents:
  73642. .UNINDENT
  73643. .INDENT 0.0
  73644. .INDENT 3.5
  73645. .sp
  73646. .nf
  73647. .ft C
  73648. proxy:
  73649. proxytype: rest_sample
  73650. url: http://<IP your REST listens on>:port
  73651. .ft P
  73652. .fi
  73653. .UNINDENT
  73654. .UNINDENT
  73655. .sp
  73656. In other words, if your REST service is listening on port 8000 on 127.0.0.1
  73657. the \(aqurl\(aq key above should say \fBurl: http://127.0.0.1:8000\fP
  73658. .INDENT 0.0
  73659. .IP 4. 3
  73660. Make sure your salt\-master is running.
  73661. .IP 5. 3
  73662. Start the salt\-proxy in debug mode
  73663. .UNINDENT
  73664. .INDENT 0.0
  73665. .INDENT 3.5
  73666. .sp
  73667. .nf
  73668. .ft C
  73669. salt\-proxy \-\-proxyid=p8000 \-l debug
  73670. .ft P
  73671. .fi
  73672. .UNINDENT
  73673. .UNINDENT
  73674. .INDENT 0.0
  73675. .IP 6. 3
  73676. Accept your proxy\(aqs key on your salt\-master
  73677. .UNINDENT
  73678. .INDENT 0.0
  73679. .INDENT 3.5
  73680. .sp
  73681. .nf
  73682. .ft C
  73683. salt\-key \-y \-a p8000
  73684. The following keys are going to be accepted:
  73685. Unaccepted Keys:
  73686. p8000
  73687. Key for minion p8000 accepted.
  73688. .ft P
  73689. .fi
  73690. .UNINDENT
  73691. .UNINDENT
  73692. .INDENT 0.0
  73693. .IP 7. 3
  73694. Now you should be able to ping your proxy. When you ping, you should see
  73695. a log entry in the terminal where the REST service is running.
  73696. .UNINDENT
  73697. .INDENT 0.0
  73698. .INDENT 3.5
  73699. .sp
  73700. .nf
  73701. .ft C
  73702. salt p8000 test.version
  73703. .ft P
  73704. .fi
  73705. .UNINDENT
  73706. .UNINDENT
  73707. .INDENT 0.0
  73708. .IP 8. 3
  73709. The REST service implements a degenerately simple pkg and service provider as
  73710. well as a small set of grains. To "install" a package, use a standard
  73711. \fBpkg.install\fP\&. If you pass \(aq==\(aq and a verrsion number after the package
  73712. name then the service will parse that and accept that as the package\(aqs
  73713. version.
  73714. .IP 9. 3
  73715. Try running \fBsalt p8000 grains.items\fP to see what grains are available. You
  73716. can target proxies via grains if you like.
  73717. .IP 10. 3
  73718. You can also start and stop the available services (apache, redbull, and
  73719. postgresql with \fBservice.start\fP, etc.
  73720. .IP 11. 3
  73721. States can be written to target the proxy. Feel free to experiment with
  73722. them.
  73723. .UNINDENT
  73724. .SS SSH Proxymodules
  73725. .sp
  73726. See above for a general introduction to writing proxy modules.
  73727. All of the guidelines that apply to REST are the same for SSH.
  73728. This sections specifically talks about the SSH proxy module and
  73729. explains the working of the example proxy module \fBssh_sample\fP\&.
  73730. .sp
  73731. Here is a simple example proxymodule used to interface to a device over SSH.
  73732. Code for the SSH shell is in the \fI\%salt\-contrib GitHub repository\fP\&.
  73733. .sp
  73734. This proxymodule enables "package" installation.
  73735. .INDENT 0.0
  73736. .INDENT 3.5
  73737. .sp
  73738. .nf
  73739. .ft C
  73740. # \-*\- coding: utf\-8 \-*\-
  73741. """
  73742. This is a simple proxy\-minion designed to connect to and communicate with
  73743. a server that exposes functionality via SSH.
  73744. This can be used as an option when the device does not provide
  73745. an api over HTTP and doesn\(aqt have the python stack to run a minion.
  73746. """
  73747. from __future__ import absolute_import
  73748. # Import python libs
  73749. import salt.utils.json
  73750. import logging
  73751. # Import Salt\(aqs libs
  73752. from salt.utils.vt_helper import SSHConnection
  73753. from salt.utils.vt import TerminalException
  73754. # This must be present or the Salt loader won\(aqt load this module
  73755. __proxyenabled__ = ["ssh_sample"]
  73756. DETAILS = {}
  73757. # Want logging!
  73758. log = logging.getLogger(__file__)
  73759. # This does nothing, it\(aqs here just as an example and to provide a log
  73760. # entry when the module is loaded.
  73761. def __virtual__():
  73762. """
  73763. Only return if all the modules are available
  73764. """
  73765. log.info("ssh_sample proxy __virtual__() called...")
  73766. return True
  73767. def init(opts):
  73768. """
  73769. Required.
  73770. Can be used to initialize the server connection.
  73771. """
  73772. try:
  73773. DETAILS["server"] = SSHConnection(
  73774. host=__opts__["proxy"]["host"],
  73775. username=__opts__["proxy"]["username"],
  73776. password=__opts__["proxy"]["password"],
  73777. )
  73778. # connected to the SSH server
  73779. out, err = DETAILS["server"].sendline("help")
  73780. except TerminalException as e:
  73781. log.error(e)
  73782. return False
  73783. def shutdown(opts):
  73784. """
  73785. Disconnect
  73786. """
  73787. DETAILS["server"].close_connection()
  73788. def parse(out):
  73789. """
  73790. Extract json from out.
  73791. Parameter
  73792. out: Type string. The data returned by the
  73793. ssh command.
  73794. """
  73795. jsonret = []
  73796. in_json = False
  73797. for ln_ in out.split("\en"):
  73798. if "{" in ln_:
  73799. in_json = True
  73800. if in_json:
  73801. jsonret.append(ln_)
  73802. if "}" in ln_:
  73803. in_json = False
  73804. return salt.utils.json.loads("\en".join(jsonret))
  73805. def package_list():
  73806. """
  73807. List "packages" by executing a command via ssh
  73808. This function is called in response to the salt command
  73809. ..code\-block::bash
  73810. salt target_minion pkg.list_pkgs
  73811. """
  73812. # Send the command to execute
  73813. out, err = DETAILS["server"].sendline("pkg_list")
  73814. # "scrape" the output and return the right fields as a dict
  73815. return parse(out)
  73816. def package_install(name, **kwargs):
  73817. """
  73818. Install a "package" on the REST server
  73819. """
  73820. cmd = "pkg_install " + name
  73821. if "version" in kwargs:
  73822. cmd += "/" + kwargs["version"]
  73823. else:
  73824. cmd += "/1.0"
  73825. # Send the command to execute
  73826. out, err = DETAILS["server"].sendline(cmd)
  73827. # "scrape" the output and return the right fields as a dict
  73828. return parse(out)
  73829. def package_remove(name):
  73830. """
  73831. Remove a "package" on the REST server
  73832. """
  73833. cmd = "pkg_remove " + name
  73834. # Send the command to execute
  73835. out, err = DETAILS["server"].sendline(cmd)
  73836. # "scrape" the output and return the right fields as a dict
  73837. return parse(out)
  73838. .ft P
  73839. .fi
  73840. .UNINDENT
  73841. .UNINDENT
  73842. .SS Connection Setup
  73843. .sp
  73844. 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).
  73845. .SS Command execution
  73846. .sp
  73847. 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.
  73848. .SS Output parsing
  73849. .sp
  73850. 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.
  73851. .SS Connection teardown
  73852. .sp
  73853. 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.
  73854. .sp
  73855. For more information please refer to class \fI\%SSHConnection\fP\&.
  73856. .SS Salt Proxy Minion SSH End\-to\-End Example
  73857. .sp
  73858. The following is walkthrough that documents how to run a sample SSH service
  73859. and configure one or more proxy minions to talk to and control it.
  73860. .INDENT 0.0
  73861. .IP 1. 3
  73862. This walkthrough uses a custom SSH shell to provide an end to end example.
  73863. Any other shells can be used too.
  73864. .IP 2. 3
  73865. Setup the proxy command shell as shown \fI\%https://github.com/saltstack/salt\-contrib/tree/master/proxyminion_ssh_example\fP
  73866. .UNINDENT
  73867. .sp
  73868. Now, configure your salt\-proxy.
  73869. .INDENT 0.0
  73870. .IP 1. 3
  73871. Edit \fB/etc/salt/proxy\fP and add an entry for your master\(aqs location
  73872. .UNINDENT
  73873. .INDENT 0.0
  73874. .INDENT 3.5
  73875. .sp
  73876. .nf
  73877. .ft C
  73878. master: localhost
  73879. multiprocessing: False
  73880. .ft P
  73881. .fi
  73882. .UNINDENT
  73883. .UNINDENT
  73884. .INDENT 0.0
  73885. .IP 2. 3
  73886. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73887. for your proxy (in this example we will name the proxy with the letter \(aqp\(aq
  73888. followed by the port the proxy is answering on). In your pillar topfile,
  73889. place an entry for your proxy:
  73890. .UNINDENT
  73891. .INDENT 0.0
  73892. .INDENT 3.5
  73893. .sp
  73894. .nf
  73895. .ft C
  73896. base:
  73897. \(aqp8000\(aq:
  73898. \- p8000
  73899. .ft P
  73900. .fi
  73901. .UNINDENT
  73902. .UNINDENT
  73903. .sp
  73904. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73905. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73906. .INDENT 0.0
  73907. .IP 3. 3
  73908. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73909. following contents:
  73910. .UNINDENT
  73911. .INDENT 0.0
  73912. .INDENT 3.5
  73913. .sp
  73914. .nf
  73915. .ft C
  73916. proxy:
  73917. proxytype: ssh_sample
  73918. host: saltyVM
  73919. username: salt
  73920. password: badpass
  73921. .ft P
  73922. .fi
  73923. .UNINDENT
  73924. .UNINDENT
  73925. .INDENT 0.0
  73926. .IP 4. 3
  73927. Make sure your salt\-master is running.
  73928. .IP 5. 3
  73929. Start the salt\-proxy in debug mode
  73930. .UNINDENT
  73931. .INDENT 0.0
  73932. .INDENT 3.5
  73933. .sp
  73934. .nf
  73935. .ft C
  73936. salt\-proxy \-\-proxyid=p8000 \-l debug
  73937. .ft P
  73938. .fi
  73939. .UNINDENT
  73940. .UNINDENT
  73941. .INDENT 0.0
  73942. .IP 6. 3
  73943. Accept your proxy\(aqs key on your salt\-master
  73944. .UNINDENT
  73945. .INDENT 0.0
  73946. .INDENT 3.5
  73947. .sp
  73948. .nf
  73949. .ft C
  73950. salt\-key \-y \-a p8000
  73951. The following keys are going to be accepted:
  73952. Unaccepted Keys:
  73953. p8000
  73954. Key for minion p8000 accepted.
  73955. .ft P
  73956. .fi
  73957. .UNINDENT
  73958. .UNINDENT
  73959. .INDENT 0.0
  73960. .IP 7. 3
  73961. Now you should be able to run commands on your proxy.
  73962. .UNINDENT
  73963. .INDENT 0.0
  73964. .INDENT 3.5
  73965. .sp
  73966. .nf
  73967. .ft C
  73968. salt p8000 pkg.list_pkgs
  73969. .ft P
  73970. .fi
  73971. .UNINDENT
  73972. .UNINDENT
  73973. .INDENT 0.0
  73974. .IP 8. 3
  73975. The SSH shell implements a degenerately simple pkg.
  73976. To "install" a package, use a standard
  73977. \fBpkg.install\fP\&. If you pass \(aq==\(aq and a verrsion number after the package
  73978. name then the service will parse that and accept that as the package\(aqs
  73979. version.
  73980. .UNINDENT
  73981. New in version 2015.8.3.
  73982. .SS Proxy Minion Beacon
  73983. .sp
  73984. The salt proxy beacon is meant to facilitate configuring
  73985. multiple proxies on one or many minions. This should simplify
  73986. configuring and managing multiple \fBsalt\-proxy\fP processes.
  73987. .INDENT 0.0
  73988. .IP 1. 3
  73989. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73990. for your proxy (in this example we will name the proxy \(aqp8000\(aq).
  73991. In your pillar topfile, place an entry for your proxy:
  73992. .UNINDENT
  73993. .INDENT 0.0
  73994. .INDENT 3.5
  73995. .sp
  73996. .nf
  73997. .ft C
  73998. base:
  73999. \(aqp8000\(aq:
  74000. \- p8000
  74001. .ft P
  74002. .fi
  74003. .UNINDENT
  74004. .UNINDENT
  74005. .sp
  74006. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  74007. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  74008. .INDENT 0.0
  74009. .IP 2. 3
  74010. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  74011. following contents:
  74012. .UNINDENT
  74013. .INDENT 0.0
  74014. .INDENT 3.5
  74015. .sp
  74016. .nf
  74017. .ft C
  74018. proxy:
  74019. # set proxytype for your proxymodule
  74020. proxytype: ssh_sample
  74021. host: saltyVM
  74022. username: salt
  74023. password: badpass
  74024. .ft P
  74025. .fi
  74026. .UNINDENT
  74027. .UNINDENT
  74028. .sp
  74029. This should complete the proxy setup for \fBp8000\fP
  74030. .INDENT 0.0
  74031. .IP 3. 3
  74032. \fI\%Configure\fP the \fBsalt_proxy\fP beacon
  74033. .UNINDENT
  74034. .INDENT 0.0
  74035. .INDENT 3.5
  74036. .sp
  74037. .nf
  74038. .ft C
  74039. beacons:
  74040. salt_proxy:
  74041. \- proxies:
  74042. p8000: {}
  74043. p8001: {}
  74044. .ft P
  74045. .fi
  74046. .UNINDENT
  74047. .UNINDENT
  74048. .sp
  74049. Once this beacon is configured it will automatically start the \fBsalt\-proxy\fP
  74050. process. If the \fBsalt\-proxy\fP process is terminated the beacon will
  74051. re\-start it.
  74052. .INDENT 0.0
  74053. .IP 4. 3
  74054. Accept your proxy\(aqs key on your salt\-master
  74055. .UNINDENT
  74056. .INDENT 0.0
  74057. .INDENT 3.5
  74058. .sp
  74059. .nf
  74060. .ft C
  74061. salt\-key \-y \-a p8000
  74062. The following keys are going to be accepted:
  74063. Unaccepted Keys:
  74064. p8000
  74065. Key for minion p8000 accepted.
  74066. .ft P
  74067. .fi
  74068. .UNINDENT
  74069. .UNINDENT
  74070. .INDENT 0.0
  74071. .IP 5. 3
  74072. Now you should be able to run commands on your proxy.
  74073. .UNINDENT
  74074. .INDENT 0.0
  74075. .INDENT 3.5
  74076. .sp
  74077. .nf
  74078. .ft C
  74079. salt p8000 pkg.list_pkgs
  74080. .ft P
  74081. .fi
  74082. .UNINDENT
  74083. .UNINDENT
  74084. New in version 2015.8.2.
  74085. .SS Proxy Minion States
  74086. .sp
  74087. Salt proxy state can be used to deploy, configure and run
  74088. a \fBsalt\-proxy\fP instance on your minion. Configure proxy settings
  74089. on the master side and the state configures and runs \fBsalt\-proxy\fP
  74090. on the remote end.
  74091. .INDENT 0.0
  74092. .IP 1. 3
  74093. On your salt\-master, ensure that pillar is configured properly. Select an ID
  74094. for your proxy (in this example we will name the proxy \(aqp8000\(aq).
  74095. In your pillar topfile, place an entry for your proxy:
  74096. .UNINDENT
  74097. .INDENT 0.0
  74098. .INDENT 3.5
  74099. .sp
  74100. .nf
  74101. .ft C
  74102. base:
  74103. \(aqp8000\(aq:
  74104. \- p8000
  74105. .ft P
  74106. .fi
  74107. .UNINDENT
  74108. .UNINDENT
  74109. .sp
  74110. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  74111. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  74112. .INDENT 0.0
  74113. .IP 2. 3
  74114. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  74115. following contents:
  74116. .UNINDENT
  74117. .INDENT 0.0
  74118. .INDENT 3.5
  74119. .sp
  74120. .nf
  74121. .ft C
  74122. proxy:
  74123. # set proxytype for your proxymodule
  74124. proxytype: ssh_sample
  74125. host: saltyVM
  74126. username: salt
  74127. password: badpass
  74128. .ft P
  74129. .fi
  74130. .UNINDENT
  74131. .UNINDENT
  74132. .INDENT 0.0
  74133. .IP 3. 3
  74134. Create the following state in your state tree
  74135. (let\(aqs name it salt_proxy.sls)
  74136. .UNINDENT
  74137. .INDENT 0.0
  74138. .INDENT 3.5
  74139. .sp
  74140. .nf
  74141. .ft C
  74142. salt\-proxy\-configure:
  74143. salt_proxy.configure_proxy:
  74144. \- proxyname: p8000
  74145. \- start: True # start the process if it isn\(aqt running
  74146. .ft P
  74147. .fi
  74148. .UNINDENT
  74149. .UNINDENT
  74150. .INDENT 0.0
  74151. .IP 4. 3
  74152. Make sure your salt\-master and salt\-minion are running.
  74153. .IP 5. 3
  74154. Run the state salt_proxy on the minion where you want to run \fBsalt\-proxy\fP
  74155. .UNINDENT
  74156. .sp
  74157. Example using \fBstate.sls\fP to configure and run \fBsalt\-proxy\fP
  74158. .INDENT 0.0
  74159. .INDENT 3.5
  74160. .sp
  74161. .nf
  74162. .ft C
  74163. # salt device_minion state.sls salt_proxy
  74164. .ft P
  74165. .fi
  74166. .UNINDENT
  74167. .UNINDENT
  74168. .sp
  74169. This starts salt\-proxy on \fBdevice_minion\fP
  74170. .INDENT 0.0
  74171. .IP 6. 3
  74172. Accept your proxy\(aqs key on your salt\-master
  74173. .UNINDENT
  74174. .INDENT 0.0
  74175. .INDENT 3.5
  74176. .sp
  74177. .nf
  74178. .ft C
  74179. salt\-key \-y \-a p8000
  74180. The following keys are going to be accepted:
  74181. Unaccepted Keys:
  74182. p8000
  74183. Key for minion p8000 accepted.
  74184. .ft P
  74185. .fi
  74186. .UNINDENT
  74187. .UNINDENT
  74188. .INDENT 0.0
  74189. .IP 7. 3
  74190. Now you should be able to run commands on your proxy.
  74191. .UNINDENT
  74192. .INDENT 0.0
  74193. .INDENT 3.5
  74194. .sp
  74195. .nf
  74196. .ft C
  74197. salt p8000 pkg.list_pkgs
  74198. .ft P
  74199. .fi
  74200. .UNINDENT
  74201. .UNINDENT
  74202. .SH NETWORK AUTOMATION
  74203. .sp
  74204. Network automation is a continuous process of automating the configuration,
  74205. management and operations of a computer network. Although the abstraction
  74206. could be compared with the operations on the server side, there are many particular
  74207. challenges, the most important being that a network device is traditionally
  74208. closed hardware able to run proprietary software only. In other words,
  74209. the user is not able to install the salt\-minion package directly on a
  74210. traditional network device. For these reasons, most network devices can be
  74211. controlled only remotely via proxy minions or
  74212. using the Salt SSH\&. However, there are also vendors producing
  74213. whitebox equipment (e.g. Arista, Cumulus) or others that have moved the
  74214. operating system in the container (e.g. Cisco NX\-OS, Cisco IOS\-XR),
  74215. allowing the salt\-minion to be installed directly on the platform.
  74216. .SS New in Carbon (2016.11)
  74217. .sp
  74218. The methodologies for network automation have been introduced in
  74219. 2016.11.0\&. Network
  74220. automation support is based on proxy minions.
  74221. .INDENT 0.0
  74222. .IP \(bu 2
  74223. \fBNAPALM proxy\fP
  74224. .IP \(bu 2
  74225. \fBJunos proxy\fP
  74226. .IP \(bu 2
  74227. \fBCisco NXOS\fP
  74228. .IP \(bu 2
  74229. \fBCisco NOS\fP
  74230. .UNINDENT
  74231. .SS NAPALM
  74232. .sp
  74233. NAPALM (Network Automation and Programmability Abstraction Layer with
  74234. Multivendor support) is an opensourced Python library that implements a set of
  74235. functions to interact with different router vendor devices using a unified API.
  74236. Being vendor\-agnostic simplifies operations, as the configuration and
  74237. interaction with the network device does not rely on a particular vendor.
  74238. [image]
  74239. .sp
  74240. Beginning with 2017.7.0, the NAPALM modules have been transformed so they can
  74241. run in both proxy and regular minions. That means, if the operating system
  74242. allows, the salt\-minion package can be installed directly on the network gear.
  74243. The interface between the network operating system and Salt in that case would
  74244. be the corresponding NAPALM sub\-package.
  74245. .sp
  74246. For example, if the user installs the
  74247. salt\-minion on a Arista switch, the only requirement is
  74248. \fI\%napalm\-eos\fP\&.
  74249. .sp
  74250. The following modules are available in 2017.7.0:
  74251. .INDENT 0.0
  74252. .IP \(bu 2
  74253. \fBNAPALM grains\fP
  74254. .IP \(bu 2
  74255. \fBNET execution module\fP \- Networking basic
  74256. features
  74257. .IP \(bu 2
  74258. \fBNTP execution module\fP
  74259. .IP \(bu 2
  74260. \fBBGP execution module\fP
  74261. .IP \(bu 2
  74262. \fBRoutes execution module\fP
  74263. .IP \(bu 2
  74264. \fBSNMP execution module\fP
  74265. .IP \(bu 2
  74266. \fBUsers execution module\fP
  74267. .IP \(bu 2
  74268. \fBProbes execution module\fP
  74269. .IP \(bu 2
  74270. \fBNTP peers management state\fP
  74271. .IP \(bu 2
  74272. \fBSNMP configuration management state\fP
  74273. .IP \(bu 2
  74274. \fBUsers management state\fP
  74275. .IP \(bu 2
  74276. \fBNetconfig state module\fP \- Manage the configuration
  74277. of network devices using arbitrary templates and the Salt\-specific
  74278. advanced templating methodologies.
  74279. .IP \(bu 2
  74280. \fBNetwork ACL execution module\fP \- Generate and
  74281. load ACL (firewall) configuration on network devices.
  74282. .IP \(bu 2
  74283. \fBNetwork ACL state\fP \- Manage the firewall
  74284. configuration. It only requires writing the pillar structure correctly!
  74285. .IP \(bu 2
  74286. \fBNAPALM YANG execution module\fP \- Parse,
  74287. generate and load native device configuration in a standard way,
  74288. using the OpenConfig/IETF models. This module contains also helpers for
  74289. the states.
  74290. .IP \(bu 2
  74291. \fBNAPALM YANG state module\fP \- Manage the
  74292. network device configuration according to the YANG models (OpenConfig or IETF).
  74293. .IP \(bu 2
  74294. \fBNET finder\fP \- Runner to find details easily and
  74295. fast. It\(aqs smart enough to know what you are looking for. It will search
  74296. in the details of the network interfaces, IP addresses, MAC address tables,
  74297. ARP tables and LLDP neighbors.
  74298. .IP \(bu 2
  74299. \fBBGP finder\fP \- Runner to search BGP neighbors details.
  74300. .IP \(bu 2
  74301. \fBNAPALM syslog\fP \- Engine to import events
  74302. from the napalm\-logs library into the Salt event bus. The events are based
  74303. on the syslog messages from the network devices and structured following
  74304. the OpenConfig/IETF YANG models.
  74305. .IP \(bu 2
  74306. \fBNAPALM Helpers\fP \- Generic helpers for
  74307. NAPALM\-related operations. For example, the
  74308. \fBCompliance report\fP function
  74309. can be used inside the state modules to compare the expected and the
  74310. existing configuration.
  74311. .UNINDENT
  74312. .SS Getting started
  74313. .sp
  74314. Install NAPALM \- follow the \fI\%notes\fP and check the platform\-specific \fI\%dependencies\fP\&.
  74315. .sp
  74316. Salt\(aqs Pillar system is ideally suited for configuring proxy\-minions
  74317. (though they can be configured in /etc/salt/proxy as well). Proxies
  74318. can either be designated via a pillar file in \fBpillar_roots\fP,
  74319. or through an external pillar.
  74320. External pillars afford the opportunity for interfacing with
  74321. a configuration management system, database, or other knowledgeable system
  74322. that may already contain all the details of proxy targets. To use static files
  74323. in \fBpillar_roots\fP, pattern your files after the following examples:
  74324. .sp
  74325. \fB/etc/salt/pillar/top.sls\fP
  74326. .INDENT 0.0
  74327. .INDENT 3.5
  74328. .sp
  74329. .nf
  74330. .ft C
  74331. base:
  74332. router1:
  74333. \- router1
  74334. router2:
  74335. \- router2
  74336. switch1:
  74337. \- switch1
  74338. switch2:
  74339. \- switch2
  74340. cpe1:
  74341. \- cpe1
  74342. .ft P
  74343. .fi
  74344. .UNINDENT
  74345. .UNINDENT
  74346. .sp
  74347. \fB/etc/salt/pillar/router1.sls\fP
  74348. .INDENT 0.0
  74349. .INDENT 3.5
  74350. .sp
  74351. .nf
  74352. .ft C
  74353. proxy:
  74354. proxytype: napalm
  74355. driver: junos
  74356. host: r1.bbone.as1234.net
  74357. username: my_username
  74358. password: my_password
  74359. .ft P
  74360. .fi
  74361. .UNINDENT
  74362. .UNINDENT
  74363. .sp
  74364. \fB/etc/salt/pillar/router2.sls\fP
  74365. .INDENT 0.0
  74366. .INDENT 3.5
  74367. .sp
  74368. .nf
  74369. .ft C
  74370. proxy:
  74371. proxytype: napalm
  74372. driver: iosxr
  74373. host: r2.bbone.as1234.net
  74374. username: my_username
  74375. password: my_password
  74376. optional_args:
  74377. port: 22022
  74378. .ft P
  74379. .fi
  74380. .UNINDENT
  74381. .UNINDENT
  74382. .sp
  74383. \fB/etc/salt/pillar/switch1.sls\fP
  74384. .INDENT 0.0
  74385. .INDENT 3.5
  74386. .sp
  74387. .nf
  74388. .ft C
  74389. proxy:
  74390. proxytype: napalm
  74391. driver: eos
  74392. host: sw1.bbone.as1234.net
  74393. username: my_username
  74394. password: my_password
  74395. optional_args:
  74396. enable_password: my_secret
  74397. .ft P
  74398. .fi
  74399. .UNINDENT
  74400. .UNINDENT
  74401. .sp
  74402. \fB/etc/salt/pillar/switch2.sls\fP
  74403. .INDENT 0.0
  74404. .INDENT 3.5
  74405. .sp
  74406. .nf
  74407. .ft C
  74408. proxy:
  74409. proxytype: napalm
  74410. driver: nxos
  74411. host: sw2.bbone.as1234.net
  74412. username: my_username
  74413. password: my_password
  74414. .ft P
  74415. .fi
  74416. .UNINDENT
  74417. .UNINDENT
  74418. .sp
  74419. \fB/etc/salt/pillar/cpe1.sls\fP
  74420. .INDENT 0.0
  74421. .INDENT 3.5
  74422. .sp
  74423. .nf
  74424. .ft C
  74425. proxy:
  74426. proxytype: napalm
  74427. driver: ios
  74428. host: cpe1.edge.as1234.net
  74429. username: \(aq\(aq
  74430. password: \(aq\(aq
  74431. optional_args:
  74432. use_keys: True
  74433. auto_rollback_on_error: True
  74434. .ft P
  74435. .fi
  74436. .UNINDENT
  74437. .UNINDENT
  74438. .SS CLI examples
  74439. .sp
  74440. Display the complete running configuration on \fBrouter1\fP:
  74441. .INDENT 0.0
  74442. .INDENT 3.5
  74443. .sp
  74444. .nf
  74445. .ft C
  74446. $ sudo salt \(aqrouter1\(aq net.config source=\(aqrunning\(aq
  74447. .ft P
  74448. .fi
  74449. .UNINDENT
  74450. .UNINDENT
  74451. .sp
  74452. Retrieve the NTP servers configured on all devices:
  74453. .INDENT 0.0
  74454. .INDENT 3.5
  74455. .sp
  74456. .nf
  74457. .ft C
  74458. $ sudo salt \(aq*\(aq ntp.servers
  74459. router1:
  74460. \-\-\-\-\-\-\-\-\-\-
  74461. comment:
  74462. out:
  74463. \- 1.2.3.4
  74464. result:
  74465. True
  74466. cpe1:
  74467. \-\-\-\-\-\-\-\-\-\-
  74468. comment:
  74469. out:
  74470. \- 1.2.3.4
  74471. result:
  74472. True
  74473. switch2:
  74474. \-\-\-\-\-\-\-\-\-\-
  74475. comment:
  74476. out:
  74477. \- 1.2.3.4
  74478. result:
  74479. True
  74480. router2:
  74481. \-\-\-\-\-\-\-\-\-\-
  74482. comment:
  74483. out:
  74484. \- 1.2.3.4
  74485. result:
  74486. True
  74487. switch1:
  74488. \-\-\-\-\-\-\-\-\-\-
  74489. comment:
  74490. out:
  74491. \- 1.2.3.4
  74492. result:
  74493. True
  74494. .ft P
  74495. .fi
  74496. .UNINDENT
  74497. .UNINDENT
  74498. .sp
  74499. Display the ARP tables on all Cisco devices running IOS\-XR 5.3.3:
  74500. .INDENT 0.0
  74501. .INDENT 3.5
  74502. .sp
  74503. .nf
  74504. .ft C
  74505. $ sudo salt \-G \(aqos:iosxr and version:5.3.3\(aq net.arp
  74506. .ft P
  74507. .fi
  74508. .UNINDENT
  74509. .UNINDENT
  74510. .sp
  74511. Return operational details for interfaces from Arista switches:
  74512. .INDENT 0.0
  74513. .INDENT 3.5
  74514. .sp
  74515. .nf
  74516. .ft C
  74517. $ sudo salt \-C \(aqsw* and os:eos\(aq net.interfaces
  74518. .ft P
  74519. .fi
  74520. .UNINDENT
  74521. .UNINDENT
  74522. .sp
  74523. Execute traceroute from the edge of the network:
  74524. .INDENT 0.0
  74525. .INDENT 3.5
  74526. .sp
  74527. .nf
  74528. .ft C
  74529. $ sudo salt \(aqrouter*\(aq net.traceroute 8.8.8.8 vrf=\(aqCUSTOMER1\-VRF\(aq
  74530. .ft P
  74531. .fi
  74532. .UNINDENT
  74533. .UNINDENT
  74534. .sp
  74535. Verbatim display from the CLI of Juniper routers:
  74536. .INDENT 0.0
  74537. .INDENT 3.5
  74538. .sp
  74539. .nf
  74540. .ft C
  74541. $ sudo salt \-C \(aqrouter* and G@os:junos\(aq net.cli \(aqshow version and haiku\(aq
  74542. .ft P
  74543. .fi
  74544. .UNINDENT
  74545. .UNINDENT
  74546. .sp
  74547. Retrieve the results of the RPM probes configured on Juniper MX960 routers:
  74548. .INDENT 0.0
  74549. .INDENT 3.5
  74550. .sp
  74551. .nf
  74552. .ft C
  74553. $ sudo salt \-C \(aqrouter* and G@os:junos and G@model:MX960\(aq probes.results
  74554. .ft P
  74555. .fi
  74556. .UNINDENT
  74557. .UNINDENT
  74558. .sp
  74559. Return the list of configured users on the CPEs:
  74560. .INDENT 0.0
  74561. .INDENT 3.5
  74562. .sp
  74563. .nf
  74564. .ft C
  74565. $ sudo salt \(aqcpe*\(aq users.config
  74566. .ft P
  74567. .fi
  74568. .UNINDENT
  74569. .UNINDENT
  74570. .sp
  74571. Using the \fBBGP finder\fP, return the list of BGP neighbors
  74572. that are down:
  74573. .INDENT 0.0
  74574. .INDENT 3.5
  74575. .sp
  74576. .nf
  74577. .ft C
  74578. $ sudo salt\-run bgp.neighbors up=False
  74579. .ft P
  74580. .fi
  74581. .UNINDENT
  74582. .UNINDENT
  74583. .sp
  74584. Using the \fBNET finder\fP, determine the devices containing
  74585. the pattern "PX\-1234\-LHR" in their interface description:
  74586. .INDENT 0.0
  74587. .INDENT 3.5
  74588. .sp
  74589. .nf
  74590. .ft C
  74591. $ sudo salt\-run net.find PX\-1234\-LHR
  74592. .ft P
  74593. .fi
  74594. .UNINDENT
  74595. .UNINDENT
  74596. .SS Cross\-platform configuration management example: NTP
  74597. .sp
  74598. Assuming that the user adds the following two lines under
  74599. \fBfile_roots\fP:
  74600. .INDENT 0.0
  74601. .INDENT 3.5
  74602. .sp
  74603. .nf
  74604. .ft C
  74605. file_roots:
  74606. base:
  74607. \- /etc/salt/pillar/
  74608. \- /etc/salt/templates/
  74609. \- /etc/salt/states/
  74610. .ft P
  74611. .fi
  74612. .UNINDENT
  74613. .UNINDENT
  74614. .sp
  74615. Define the list of NTP peers and servers wanted:
  74616. .sp
  74617. \fB/etc/salt/pillar/ntp.sls\fP
  74618. .INDENT 0.0
  74619. .INDENT 3.5
  74620. .sp
  74621. .nf
  74622. .ft C
  74623. ntp.servers:
  74624. \- 1.2.3.4
  74625. \- 5.6.7.8
  74626. ntp.peers:
  74627. \- 10.11.12.13
  74628. \- 14.15.16.17
  74629. .ft P
  74630. .fi
  74631. .UNINDENT
  74632. .UNINDENT
  74633. .sp
  74634. Include the new file: for example, if we want to have the same NTP servers on all
  74635. network devices, we can add the following line inside the \fBtop.sls\fP file:
  74636. .INDENT 0.0
  74637. .INDENT 3.5
  74638. .sp
  74639. .nf
  74640. .ft C
  74641. \(aq*\(aq:
  74642. \- ntp
  74643. .ft P
  74644. .fi
  74645. .UNINDENT
  74646. .UNINDENT
  74647. .sp
  74648. \fB/etc/salt/pillar/top.sls\fP
  74649. .INDENT 0.0
  74650. .INDENT 3.5
  74651. .sp
  74652. .nf
  74653. .ft C
  74654. base:
  74655. \(aq*\(aq:
  74656. \- ntp
  74657. router1:
  74658. \- router1
  74659. router2:
  74660. \- router2
  74661. switch1:
  74662. \- switch1
  74663. switch2:
  74664. \- switch2
  74665. cpe1:
  74666. \- cpe1
  74667. .ft P
  74668. .fi
  74669. .UNINDENT
  74670. .UNINDENT
  74671. .sp
  74672. Or include only where needed:
  74673. .sp
  74674. \fB/etc/salt/pillar/top.sls\fP
  74675. .INDENT 0.0
  74676. .INDENT 3.5
  74677. .sp
  74678. .nf
  74679. .ft C
  74680. base:
  74681. router1:
  74682. \- router1
  74683. \- ntp
  74684. router2:
  74685. \- router2
  74686. \- ntp
  74687. switch1:
  74688. \- switch1
  74689. switch2:
  74690. \- switch2
  74691. cpe1:
  74692. \- cpe1
  74693. .ft P
  74694. .fi
  74695. .UNINDENT
  74696. .UNINDENT
  74697. .sp
  74698. Define the cross\-vendor template:
  74699. .sp
  74700. \fB/etc/salt/templates/ntp.jinja\fP
  74701. .INDENT 0.0
  74702. .INDENT 3.5
  74703. .sp
  74704. .nf
  74705. .ft C
  74706. {%\- if grains.vendor|lower == \(aqcisco\(aq %}
  74707. no ntp
  74708. {%\- for server in servers %}
  74709. ntp server {{ server }}
  74710. {%\- endfor %}
  74711. {%\- for peer in peers %}
  74712. ntp peer {{ peer }}
  74713. {%\- endfor %}
  74714. {%\- elif grains.os|lower == \(aqjunos\(aq %}
  74715. system {
  74716. replace:
  74717. ntp {
  74718. {%\- for server in servers %}
  74719. server {{ server }};
  74720. {%\- endfor %}
  74721. {%\- for peer in peers %}
  74722. peer {{ peer }};
  74723. {%\- endfor %}
  74724. }
  74725. }
  74726. {%\- endif %}
  74727. .ft P
  74728. .fi
  74729. .UNINDENT
  74730. .UNINDENT
  74731. .sp
  74732. Define the SLS state file, making use of the
  74733. \fBNetconfig state module\fP:
  74734. .sp
  74735. \fB/etc/salt/states/router/ntp.sls\fP
  74736. .INDENT 0.0
  74737. .INDENT 3.5
  74738. .sp
  74739. .nf
  74740. .ft C
  74741. ntp_config_example:
  74742. netconfig.managed:
  74743. \- template_name: salt://ntp.jinja
  74744. \- peers: {{ pillar.get(\(aqntp.peers\(aq, []) | json }}
  74745. \- servers: {{ pillar.get(\(aqntp.servers\(aq, []) | json }}
  74746. .ft P
  74747. .fi
  74748. .UNINDENT
  74749. .UNINDENT
  74750. .sp
  74751. Run the state and assure NTP configuration consistency across your
  74752. multi\-vendor network:
  74753. .INDENT 0.0
  74754. .INDENT 3.5
  74755. .sp
  74756. .nf
  74757. .ft C
  74758. $ sudo salt \(aqrouter*\(aq state.sls router.ntp
  74759. .ft P
  74760. .fi
  74761. .UNINDENT
  74762. .UNINDENT
  74763. .sp
  74764. Besides CLI, the state can be scheduled or executed when triggered by a certain
  74765. event.
  74766. .SS JUNOS
  74767. .sp
  74768. Juniper has developed a Junos specific proxy infrastructure which allows
  74769. remote execution and configuration management of Junos devices without
  74770. having to install SaltStack on the device. The infrastructure includes:
  74771. .INDENT 0.0
  74772. .IP \(bu 2
  74773. \fBJunos proxy\fP
  74774. .IP \(bu 2
  74775. \fBJunos execution module\fP
  74776. .IP \(bu 2
  74777. \fBJunos state module\fP
  74778. .IP \(bu 2
  74779. \fBJunos syslog engine\fP
  74780. .UNINDENT
  74781. .sp
  74782. The execution and state modules are implemented using junos\-eznc (PyEZ).
  74783. Junos PyEZ is a microframework for Python that enables you to remotely manage
  74784. and automate devices running the Junos operating system.
  74785. .SS Getting started
  74786. .sp
  74787. Install PyEZ on the system which will run the Junos proxy minion.
  74788. It is required to run Junos specific modules.
  74789. .INDENT 0.0
  74790. .INDENT 3.5
  74791. .sp
  74792. .nf
  74793. .ft C
  74794. pip install junos\-eznc
  74795. .ft P
  74796. .fi
  74797. .UNINDENT
  74798. .UNINDENT
  74799. .sp
  74800. Next, set the master of the proxy minions.
  74801. .sp
  74802. \fB/etc/salt/proxy\fP
  74803. .INDENT 0.0
  74804. .INDENT 3.5
  74805. .sp
  74806. .nf
  74807. .ft C
  74808. master: <master_ip>
  74809. .ft P
  74810. .fi
  74811. .UNINDENT
  74812. .UNINDENT
  74813. .sp
  74814. Add the details of the Junos device. Device details are usually stored in
  74815. salt pillars. If the you do not wish to store credentials in the pillar,
  74816. one can setup passwordless ssh.
  74817. .sp
  74818. \fB/srv/pillar/vmx_details.sls\fP
  74819. .INDENT 0.0
  74820. .INDENT 3.5
  74821. .sp
  74822. .nf
  74823. .ft C
  74824. proxy:
  74825. proxytype: junos
  74826. host: <hostip>
  74827. username: user
  74828. passwd: secret123
  74829. .ft P
  74830. .fi
  74831. .UNINDENT
  74832. .UNINDENT
  74833. .sp
  74834. Map the pillar file to the proxy minion. This is done in the top file.
  74835. .sp
  74836. \fB/srv/pillar/top.sls\fP
  74837. .INDENT 0.0
  74838. .INDENT 3.5
  74839. .sp
  74840. .nf
  74841. .ft C
  74842. base:
  74843. vmx:
  74844. \- vmx_details
  74845. .ft P
  74846. .fi
  74847. .UNINDENT
  74848. .UNINDENT
  74849. .sp
  74850. \fBNOTE:\fP
  74851. .INDENT 0.0
  74852. .INDENT 3.5
  74853. Before starting the Junos proxy make sure that netconf is enabled on the
  74854. Junos device. This can be done by adding the following configuration on
  74855. the Junos device.
  74856. .INDENT 0.0
  74857. .INDENT 3.5
  74858. .sp
  74859. .nf
  74860. .ft C
  74861. set system services netconf ssh
  74862. .ft P
  74863. .fi
  74864. .UNINDENT
  74865. .UNINDENT
  74866. .UNINDENT
  74867. .UNINDENT
  74868. .sp
  74869. Start the salt master.
  74870. .INDENT 0.0
  74871. .INDENT 3.5
  74872. .sp
  74873. .nf
  74874. .ft C
  74875. salt\-master \-l debug
  74876. .ft P
  74877. .fi
  74878. .UNINDENT
  74879. .UNINDENT
  74880. .sp
  74881. Then start the salt proxy.
  74882. .INDENT 0.0
  74883. .INDENT 3.5
  74884. .sp
  74885. .nf
  74886. .ft C
  74887. salt\-proxy \-\-proxyid=vmx \-l debug
  74888. .ft P
  74889. .fi
  74890. .UNINDENT
  74891. .UNINDENT
  74892. .sp
  74893. Once the master and junos proxy minion have started, we can run execution
  74894. and state modules on the proxy minion. Below are few examples.
  74895. .SS CLI examples
  74896. .sp
  74897. For detailed documentation of all the junos execution modules refer:
  74898. \fBJunos execution module\fP
  74899. .sp
  74900. Display device facts.
  74901. .INDENT 0.0
  74902. .INDENT 3.5
  74903. .sp
  74904. .nf
  74905. .ft C
  74906. $ sudo salt \(aqvmx\(aq junos.facts
  74907. .ft P
  74908. .fi
  74909. .UNINDENT
  74910. .UNINDENT
  74911. .sp
  74912. Refresh the Junos facts. This function will also refresh the facts which are
  74913. stored in salt grains. (Junos proxy stores Junos facts in the salt grains)
  74914. .INDENT 0.0
  74915. .INDENT 3.5
  74916. .sp
  74917. .nf
  74918. .ft C
  74919. $ sudo salt \(aqvmx\(aq junos.facts_refresh
  74920. .ft P
  74921. .fi
  74922. .UNINDENT
  74923. .UNINDENT
  74924. .sp
  74925. Call an RPC.
  74926. .INDENT 0.0
  74927. .INDENT 3.5
  74928. .sp
  74929. .nf
  74930. .ft C
  74931. $ sudo salt \(aqvmx\(aq junos.rpc \(aqget\-interface\-information\(aq \(aq/var/log/interface\-info.txt\(aq terse=True
  74932. .ft P
  74933. .fi
  74934. .UNINDENT
  74935. .UNINDENT
  74936. .sp
  74937. Install config on the device.
  74938. .INDENT 0.0
  74939. .INDENT 3.5
  74940. .sp
  74941. .nf
  74942. .ft C
  74943. $ sudo salt \(aqvmx\(aq junos.install_config \(aqsalt://my_config.set\(aq
  74944. .ft P
  74945. .fi
  74946. .UNINDENT
  74947. .UNINDENT
  74948. .sp
  74949. Shutdown the junos device.
  74950. .INDENT 0.0
  74951. .INDENT 3.5
  74952. .sp
  74953. .nf
  74954. .ft C
  74955. $ sudo salt \(aqvmx\(aq junos.shutdown shutdown=True in_min=10
  74956. .ft P
  74957. .fi
  74958. .UNINDENT
  74959. .UNINDENT
  74960. .SS State file examples
  74961. .sp
  74962. For detailed documentation of all the junos state modules refer:
  74963. \fBJunos state module\fP
  74964. .sp
  74965. Executing an RPC on Junos device and storing the output in a file.
  74966. .sp
  74967. \fB/srv/salt/rpc.sls\fP
  74968. .INDENT 0.0
  74969. .INDENT 3.5
  74970. .sp
  74971. .nf
  74972. .ft C
  74973. get\-interface\-information:
  74974. junos:
  74975. \- rpc
  74976. \- dest: /home/user/rpc.log
  74977. \- interface_name: lo0
  74978. .ft P
  74979. .fi
  74980. .UNINDENT
  74981. .UNINDENT
  74982. .sp
  74983. Lock the junos device, load the configuration, commit it and unlock
  74984. the device.
  74985. .sp
  74986. \fB/srv/salt/load.sls\fP
  74987. .INDENT 0.0
  74988. .INDENT 3.5
  74989. .sp
  74990. .nf
  74991. .ft C
  74992. lock the config:
  74993. junos.lock
  74994. salt://configs/my_config.set:
  74995. junos:
  74996. \- install_config
  74997. \- timeout: 100
  74998. \- diffs_file: \(aqvar/log/diff\(aq
  74999. commit the changes:
  75000. junos:
  75001. \- commit
  75002. unlock the config:
  75003. junos.unlock
  75004. .ft P
  75005. .fi
  75006. .UNINDENT
  75007. .UNINDENT
  75008. .sp
  75009. According to the device personality install appropriate image on the device.
  75010. .sp
  75011. \fB/srv/salt/image_install.sls\fP
  75012. .INDENT 0.0
  75013. .INDENT 3.5
  75014. .sp
  75015. .nf
  75016. .ft C
  75017. {% if grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == MX %}
  75018. salt://images/mx_junos_image.tgz:
  75019. junos:
  75020. \- install_os
  75021. \- timeout: 100
  75022. \- reboot: True
  75023. {% elif grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == EX %}
  75024. salt://images/ex_junos_image.tgz:
  75025. junos:
  75026. \- install_os
  75027. \- timeout: 150
  75028. {% elif grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == SRX %}
  75029. salt://images/srx_junos_image.tgz:
  75030. junos:
  75031. \- install_os
  75032. \- timeout: 150
  75033. {% endif %}
  75034. .ft P
  75035. .fi
  75036. .UNINDENT
  75037. .UNINDENT
  75038. .SS Junos Syslog Engine
  75039. .sp
  75040. \fBJunos Syslog Engine\fP is a Salt engine
  75041. which receives data from various Junos devices, extracts event information and
  75042. forwards it on the master/minion event bus. To start the engine on the salt
  75043. master, add the following configuration in the master config file.
  75044. The engine can also run on the salt minion.
  75045. .sp
  75046. \fB/etc/salt/master\fP
  75047. .INDENT 0.0
  75048. .INDENT 3.5
  75049. .sp
  75050. .nf
  75051. .ft C
  75052. engines:
  75053. \- junos_syslog:
  75054. port: xxx
  75055. .ft P
  75056. .fi
  75057. .UNINDENT
  75058. .UNINDENT
  75059. .sp
  75060. For junos_syslog engine to receive events, syslog must be set on the Junos device.
  75061. This can be done via following configuration:
  75062. .INDENT 0.0
  75063. .INDENT 3.5
  75064. .sp
  75065. .nf
  75066. .ft C
  75067. set system syslog host <ip\-of\-the\-salt\-device> port xxx any any
  75068. .ft P
  75069. .fi
  75070. .UNINDENT
  75071. .UNINDENT
  75072. .SH SALT VIRT
  75073. .sp
  75074. The Salt Virt cloud controller capability was initially added to Salt in
  75075. version 0.14.0 as an alpha technology.
  75076. .sp
  75077. The initial Salt Virt system supports core cloud operations:
  75078. .INDENT 0.0
  75079. .IP \(bu 2
  75080. Virtual machine deployment
  75081. .IP \(bu 2
  75082. Inspection of deployed VMs
  75083. .IP \(bu 2
  75084. Virtual machine migration
  75085. .IP \(bu 2
  75086. Network profiling
  75087. .IP \(bu 2
  75088. Automatic VM integration with all aspects of Salt
  75089. .IP \(bu 2
  75090. Image Pre\-seeding
  75091. .UNINDENT
  75092. .sp
  75093. Many features are currently under development to enhance the capabilities of
  75094. the Salt Virt systems.
  75095. .sp
  75096. \fBNOTE:\fP
  75097. .INDENT 0.0
  75098. .INDENT 3.5
  75099. It is noteworthy that Salt was originally developed with the intent of
  75100. using the Salt communication system as the backbone to a cloud controller.
  75101. This means that the Salt Virt system is not an afterthought, simply a
  75102. system that took the back seat to other development. The original attempt
  75103. to develop the cloud control aspects of Salt was a project called butter.
  75104. This project never took off, but was functional and proves the early
  75105. viability of Salt to be a cloud controller.
  75106. .UNINDENT
  75107. .UNINDENT
  75108. .sp
  75109. \fBWARNING:\fP
  75110. .INDENT 0.0
  75111. .INDENT 3.5
  75112. Salt Virt does not work with KVM that is running in a VM. KVM must be running
  75113. on the base hardware.
  75114. .UNINDENT
  75115. .UNINDENT
  75116. .SS Salt Virt Tutorial
  75117. .sp
  75118. A tutorial about how to get Salt Virt up and running has been added to the
  75119. tutorial section:
  75120. .sp
  75121. Cloud Controller Tutorial
  75122. .SS The Salt Virt Runner
  75123. .sp
  75124. The point of interaction with the cloud controller is the \fBvirt\fP
  75125. runner. The \fBvirt\fP runner comes with routines to execute specific
  75126. virtual machine routines.
  75127. .sp
  75128. Reference documentation for the virt runner is available with the runner
  75129. module documentation:
  75130. .sp
  75131. \fBVirt Runner Reference\fP
  75132. .SS Based on Live State Data
  75133. .sp
  75134. The Salt Virt system is based on using Salt to query live data about
  75135. hypervisors and then using the data gathered to make decisions about cloud
  75136. operations. This means that no external resources are required to run Salt
  75137. Virt, and that the information gathered about the cloud is live and accurate.
  75138. .SS Deploy from Network or Disk
  75139. .SS Virtual Machine Disk Profiles
  75140. .sp
  75141. Salt Virt allows for the disks created for deployed virtual machines
  75142. to be finely configured. The configuration is a simple data structure which is
  75143. read from the \fBconfig.option\fP function, meaning that the configuration can be
  75144. stored in the minion config file, the master config file, or the minion\(aqs
  75145. pillar.
  75146. .sp
  75147. This configuration option is called \fBvirt.disk\fP\&. The default \fBvirt.disk\fP
  75148. data structure looks like this:
  75149. .INDENT 0.0
  75150. .INDENT 3.5
  75151. .sp
  75152. .nf
  75153. .ft C
  75154. virt.disk:
  75155. default:
  75156. \- system:
  75157. size: 8192
  75158. format: qcow2
  75159. model: virtio
  75160. .ft P
  75161. .fi
  75162. .UNINDENT
  75163. .UNINDENT
  75164. .sp
  75165. \fBNOTE:\fP
  75166. .INDENT 0.0
  75167. .INDENT 3.5
  75168. The format and model does not need to be defined, Salt will
  75169. default to the optimal format used by the underlying hypervisor,
  75170. in the case of kvm this it is \fBqcow2\fP and
  75171. \fBvirtio\fP\&.
  75172. .UNINDENT
  75173. .UNINDENT
  75174. .sp
  75175. This configuration sets up a disk profile called default. The default
  75176. profile creates a single system disk on the virtual machine.
  75177. .SS Define More Profiles
  75178. .sp
  75179. Many environments will require more complex disk profiles and may require
  75180. more than one profile, this can be easily accomplished:
  75181. .INDENT 0.0
  75182. .INDENT 3.5
  75183. .sp
  75184. .nf
  75185. .ft C
  75186. virt.disk:
  75187. default:
  75188. \- system:
  75189. size: 8192
  75190. database:
  75191. \- system:
  75192. size: 8192
  75193. \- data:
  75194. size: 30720
  75195. web:
  75196. \- system:
  75197. size: 1024
  75198. \- logs:
  75199. size: 5120
  75200. .ft P
  75201. .fi
  75202. .UNINDENT
  75203. .UNINDENT
  75204. .sp
  75205. This configuration allows for one of three profiles to be selected,
  75206. allowing virtual machines to be created with different storage needs
  75207. of the deployed vm.
  75208. .SS Virtual Machine Network Profiles
  75209. .sp
  75210. Salt Virt allows for the network devices created for deployed virtual machines
  75211. to be finely configured. The configuration is a simple data structure which is
  75212. read from the \fBconfig.option\fP function, meaning that the configuration can be
  75213. stored in the minion config file, the master config file, or the minion\(aqs
  75214. pillar.
  75215. .sp
  75216. This configuration option is called \fBvirt:nic\fP\&. By default the \fBvirt:nic\fP
  75217. option is empty but defaults to a data structure which looks like this:
  75218. .INDENT 0.0
  75219. .INDENT 3.5
  75220. .sp
  75221. .nf
  75222. .ft C
  75223. virt:
  75224. nic:
  75225. default:
  75226. eth0:
  75227. bridge: br0
  75228. model: virtio
  75229. .ft P
  75230. .fi
  75231. .UNINDENT
  75232. .UNINDENT
  75233. .sp
  75234. \fBNOTE:\fP
  75235. .INDENT 0.0
  75236. .INDENT 3.5
  75237. The model does not need to be defined, Salt will default to the optimal
  75238. model used by the underlying hypervisor, in the case of kvm this model
  75239. is \fBvirtio\fP
  75240. .UNINDENT
  75241. .UNINDENT
  75242. .sp
  75243. This configuration sets up a network profile called default. The default
  75244. profile creates a single Ethernet device on the virtual machine that is bridged
  75245. to the hypervisor\(aqs \fBbr0\fP interface. This default setup does not
  75246. require setting up the \fBvirt:nic\fP configuration, and is the reason why a
  75247. default install only requires setting up the \fBbr0\fP bridge device on the
  75248. hypervisor.
  75249. .SS Define More Profiles
  75250. .sp
  75251. Many environments will require more complex network profiles and may require
  75252. more than one profile, this can be easily accomplished:
  75253. .INDENT 0.0
  75254. .INDENT 3.5
  75255. .sp
  75256. .nf
  75257. .ft C
  75258. virt:
  75259. nic:
  75260. dual:
  75261. eth0:
  75262. bridge: service_br
  75263. eth1:
  75264. bridge: storage_br
  75265. single:
  75266. eth0:
  75267. bridge: service_br
  75268. triple:
  75269. eth0:
  75270. bridge: service_br
  75271. eth1:
  75272. bridge: storage_br
  75273. eth2:
  75274. bridge: dmz_br
  75275. all:
  75276. eth0:
  75277. bridge: service_br
  75278. eth1:
  75279. bridge: storage_br
  75280. eth2:
  75281. bridge: dmz_br
  75282. eth3:
  75283. bridge: database_br
  75284. dmz:
  75285. eth0:
  75286. bridge: service_br
  75287. eth1:
  75288. bridge: dmz_br
  75289. database:
  75290. eth0:
  75291. bridge: service_br
  75292. eth1:
  75293. bridge: database_br
  75294. .ft P
  75295. .fi
  75296. .UNINDENT
  75297. .UNINDENT
  75298. .sp
  75299. This configuration allows for one of six profiles to be selected, allowing
  75300. virtual machines to be created which attach to different network depending
  75301. on the needs of the deployed vm.
  75302. .SH COMMAND LINE REFERENCE
  75303. .SS salt\-api
  75304. .SS \fBsalt\-api\fP
  75305. .sp
  75306. Start interfaces used to remotely connect to the salt master
  75307. .SS Synopsis
  75308. .INDENT 0.0
  75309. .INDENT 3.5
  75310. .sp
  75311. .nf
  75312. .ft C
  75313. salt\-api
  75314. .ft P
  75315. .fi
  75316. .UNINDENT
  75317. .UNINDENT
  75318. .SS Description
  75319. .sp
  75320. The Salt API system manages network api connectors for the Salt Master
  75321. .SS Options
  75322. .INDENT 0.0
  75323. .TP
  75324. .B \-\-version
  75325. Print the version of Salt that is running.
  75326. .UNINDENT
  75327. .INDENT 0.0
  75328. .TP
  75329. .B \-\-versions\-report
  75330. Show program\(aqs dependencies and version number, and then exit
  75331. .UNINDENT
  75332. .INDENT 0.0
  75333. .TP
  75334. .B \-h, \-\-help
  75335. Show the help message and exit
  75336. .UNINDENT
  75337. .INDENT 0.0
  75338. .TP
  75339. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75340. The location of the Salt configuration directory. This directory contains
  75341. the configuration files for Salt master and minions. The default location
  75342. on most systems is \fB/etc/salt\fP\&.
  75343. .UNINDENT
  75344. .INDENT 0.0
  75345. .TP
  75346. .B \-d, \-\-daemon
  75347. Run the salt\-api as a daemon
  75348. .UNINDENT
  75349. .INDENT 0.0
  75350. .TP
  75351. .B \-\-pid\-file=PIDFILE
  75352. Specify the location of the pidfile. Default: /var/run/salt\-api.pid
  75353. .UNINDENT
  75354. .SS Logging Options
  75355. .sp
  75356. Logging options which override any settings defined on the configuration files.
  75357. .INDENT 0.0
  75358. .TP
  75359. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75360. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75361. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75362. \fBwarning\fP\&.
  75363. .UNINDENT
  75364. .INDENT 0.0
  75365. .TP
  75366. .B \-\-log\-file=LOG_FILE
  75367. Log file path. Default: /var/log/salt/api\&.
  75368. .UNINDENT
  75369. .INDENT 0.0
  75370. .TP
  75371. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75372. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75373. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75374. \fBwarning\fP\&.
  75375. .UNINDENT
  75376. .SS See also
  75377. .sp
  75378. \fBsalt\-api(7)\fP
  75379. \fBsalt(7)\fP
  75380. \fBsalt\-master(1)\fP
  75381. .SS salt\-call
  75382. .SS \fBsalt\-call\fP
  75383. .SS Synopsis
  75384. .INDENT 0.0
  75385. .INDENT 3.5
  75386. .sp
  75387. .nf
  75388. .ft C
  75389. salt\-call [options]
  75390. .ft P
  75391. .fi
  75392. .UNINDENT
  75393. .UNINDENT
  75394. .SS Description
  75395. .sp
  75396. The salt\-call command is used to run module functions locally on a minion
  75397. instead of executing them from the master. Salt\-call is used to run a
  75398. Standalone Minion, and was originally
  75399. created for troubleshooting\&.
  75400. .sp
  75401. The Salt Master is contacted to retrieve state files and other resources
  75402. during execution unless the \fB\-\-local\fP option is specified.
  75403. .sp
  75404. \fBNOTE:\fP
  75405. .INDENT 0.0
  75406. .INDENT 3.5
  75407. \fBsalt\-call\fP commands execute from the current user\(aqs shell
  75408. context, while \fBsalt\fP commands execute from the system\(aqs default context.
  75409. .UNINDENT
  75410. .UNINDENT
  75411. .SS Options
  75412. .INDENT 0.0
  75413. .TP
  75414. .B \-\-version
  75415. Print the version of Salt that is running.
  75416. .UNINDENT
  75417. .INDENT 0.0
  75418. .TP
  75419. .B \-\-versions\-report
  75420. Show program\(aqs dependencies and version number, and then exit
  75421. .UNINDENT
  75422. .INDENT 0.0
  75423. .TP
  75424. .B \-h, \-\-help
  75425. Show the help message and exit
  75426. .UNINDENT
  75427. .INDENT 0.0
  75428. .TP
  75429. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75430. The location of the Salt configuration directory. This directory contains
  75431. the configuration files for Salt master and minions. The default location
  75432. on most systems is \fB/etc/salt\fP\&.
  75433. .UNINDENT
  75434. .INDENT 0.0
  75435. .TP
  75436. .B \-\-hard\-crash
  75437. Raise any original exception rather than exiting gracefully Default: False
  75438. .UNINDENT
  75439. .INDENT 0.0
  75440. .TP
  75441. .B \-g, \-\-grains
  75442. Return the information generated by the Salt grains
  75443. .UNINDENT
  75444. .INDENT 0.0
  75445. .TP
  75446. .B \-m MODULE_DIRS, \-\-module\-dirs=MODULE_DIRS
  75447. Specify an additional directory to pull modules from. Multiple directories
  75448. can be provided by passing \-m /\-\-module\-dirs multiple times.
  75449. .UNINDENT
  75450. .INDENT 0.0
  75451. .TP
  75452. .B \-d, \-\-doc, \-\-documentation
  75453. Return the documentation for the specified module or for all modules if
  75454. none are specified
  75455. .UNINDENT
  75456. .INDENT 0.0
  75457. .TP
  75458. .B \-\-master=MASTER
  75459. Specify the master to use. The minion must be authenticated with the
  75460. master. If this option is omitted, the master options from the minion
  75461. config will be used. If multi masters are set up the first listed master
  75462. that responds will be used.
  75463. .UNINDENT
  75464. .INDENT 0.0
  75465. .TP
  75466. .B \-\-return RETURNER
  75467. Set salt\-call to pass the return data to one or many returner interfaces.
  75468. To use many returner interfaces specify a comma delimited list of
  75469. returners.
  75470. .UNINDENT
  75471. .INDENT 0.0
  75472. .TP
  75473. .B \-\-local
  75474. Run salt\-call locally, as if there was no master running.
  75475. .UNINDENT
  75476. .INDENT 0.0
  75477. .TP
  75478. .B \-\-file\-root=FILE_ROOT
  75479. Set this directory as the base file root.
  75480. .UNINDENT
  75481. .INDENT 0.0
  75482. .TP
  75483. .B \-\-pillar\-root=PILLAR_ROOT
  75484. Set this directory as the base pillar root.
  75485. .UNINDENT
  75486. .INDENT 0.0
  75487. .TP
  75488. .B \-\-retcode\-passthrough
  75489. Exit with the salt call retcode and not the salt binary retcode
  75490. .UNINDENT
  75491. .INDENT 0.0
  75492. .TP
  75493. .B \-\-metadata
  75494. Print out the execution metadata as well as the return. This will print out
  75495. the outputter data, the return code, etc.
  75496. .UNINDENT
  75497. .INDENT 0.0
  75498. .TP
  75499. .B \-\-id=ID
  75500. Specify the minion id to use. If this option is omitted, the id option from
  75501. the minion config will be used.
  75502. .UNINDENT
  75503. .INDENT 0.0
  75504. .TP
  75505. .B \-\-skip\-grains
  75506. Do not load grains.
  75507. .UNINDENT
  75508. .INDENT 0.0
  75509. .TP
  75510. .B \-\-refresh\-grains\-cache
  75511. Force a refresh of the grains cache
  75512. .UNINDENT
  75513. .SS Logging Options
  75514. .sp
  75515. Logging options which override any settings defined on the configuration files.
  75516. .INDENT 0.0
  75517. .TP
  75518. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75519. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75520. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75521. \fBwarning\fP\&.
  75522. .UNINDENT
  75523. .INDENT 0.0
  75524. .TP
  75525. .B \-\-log\-file=LOG_FILE
  75526. Log file path. Default: /var/log/salt/minion\&.
  75527. .UNINDENT
  75528. .INDENT 0.0
  75529. .TP
  75530. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75531. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75532. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75533. \fBwarning\fP\&.
  75534. .UNINDENT
  75535. .SS Output Options
  75536. .INDENT 0.0
  75537. .TP
  75538. .B \-\-out
  75539. Pass in an alternative outputter to display the return of data. This
  75540. outputter can be any of the available outputters:
  75541. .INDENT 7.0
  75542. .INDENT 3.5
  75543. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  75544. .UNINDENT
  75545. .UNINDENT
  75546. .sp
  75547. Some outputters are formatted only for data returned from specific functions.
  75548. If an outputter is used that does not support the data passed into it, then
  75549. Salt will fall back on the \fBpprint\fP outputter and display the return data
  75550. using the Python \fBpprint\fP standard library module.
  75551. .UNINDENT
  75552. .INDENT 0.0
  75553. .TP
  75554. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  75555. Print the output indented by the provided value in spaces. Negative values
  75556. disable indentation. Only applicable in outputters that support
  75557. indentation.
  75558. .UNINDENT
  75559. .INDENT 0.0
  75560. .TP
  75561. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  75562. Write the output to the specified file.
  75563. .UNINDENT
  75564. .INDENT 0.0
  75565. .TP
  75566. .B \-\-out\-file\-append, \-\-output\-file\-append
  75567. Append the output to the specified file.
  75568. .UNINDENT
  75569. .INDENT 0.0
  75570. .TP
  75571. .B \-\-no\-color
  75572. Disable all colored output
  75573. .UNINDENT
  75574. .INDENT 0.0
  75575. .TP
  75576. .B \-\-force\-color
  75577. Force colored output
  75578. .sp
  75579. \fBNOTE:\fP
  75580. .INDENT 7.0
  75581. .INDENT 3.5
  75582. When using colored output the color codes are as follows:
  75583. .sp
  75584. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  75585. changes and success and \fByellow\fP denotes a expected future change in configuration.
  75586. .UNINDENT
  75587. .UNINDENT
  75588. .UNINDENT
  75589. .INDENT 0.0
  75590. .TP
  75591. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  75592. Override the configured state_output value for minion
  75593. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  75594. \(aqfilter\(aq. Default: \(aqnone\(aq.
  75595. .UNINDENT
  75596. .INDENT 0.0
  75597. .TP
  75598. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  75599. Override the configured state_verbose value for minion
  75600. output. Set to True or False. Default: none.
  75601. .UNINDENT
  75602. .SS See also
  75603. .sp
  75604. \fBsalt(1)\fP
  75605. \fBsalt\-master(1)\fP
  75606. \fBsalt\-minion(1)\fP
  75607. .SS salt
  75608. .SS \fBsalt\fP
  75609. .SS Synopsis
  75610. .INDENT 0.0
  75611. .INDENT 3.5
  75612. salt \(aq*\(aq [ options ] sys.doc
  75613. .sp
  75614. salt \-E \(aq.*\(aq [ options ] sys.doc cmd
  75615. .sp
  75616. salt \-G \(aqos:Arch.*\(aq [ options ] test.version
  75617. .sp
  75618. salt \-C \fI\%\(aqG@os\fP:Arch.* and webserv* or \fI\%G@kernel\fP:FreeBSD\(aq [ options ] test.version
  75619. .UNINDENT
  75620. .UNINDENT
  75621. .SS Description
  75622. .sp
  75623. Salt allows for commands to be executed across a swath of remote systems in
  75624. parallel. This means that remote systems can be both controlled and queried
  75625. with ease.
  75626. .SS Options
  75627. .INDENT 0.0
  75628. .TP
  75629. .B \-\-version
  75630. Print the version of Salt that is running.
  75631. .UNINDENT
  75632. .INDENT 0.0
  75633. .TP
  75634. .B \-\-versions\-report
  75635. Show program\(aqs dependencies and version number, and then exit
  75636. .UNINDENT
  75637. .INDENT 0.0
  75638. .TP
  75639. .B \-h, \-\-help
  75640. Show the help message and exit
  75641. .UNINDENT
  75642. .INDENT 0.0
  75643. .TP
  75644. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75645. The location of the Salt configuration directory. This directory contains
  75646. the configuration files for Salt master and minions. The default location
  75647. on most systems is \fB/etc/salt\fP\&.
  75648. .UNINDENT
  75649. .INDENT 0.0
  75650. .TP
  75651. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  75652. The timeout in seconds to wait for replies from the Salt minions. The
  75653. timeout number specifies how long the command line client will wait to
  75654. query the minions and check on running jobs. Default: 5
  75655. .UNINDENT
  75656. .INDENT 0.0
  75657. .TP
  75658. .B \-s, \-\-static
  75659. By default as of version 0.9.8 the salt command returns data to the
  75660. console as it is received from minions, but previous releases would return
  75661. data only after all data was received. Use the static option to only return
  75662. the data with a hard timeout and after all minions have returned.
  75663. Without the static option, you will get a separate JSON string per minion
  75664. which makes JSON output invalid as a whole.
  75665. .UNINDENT
  75666. .INDENT 0.0
  75667. .TP
  75668. .B \-\-async
  75669. Instead of waiting for the job to run on minions only print the job id of
  75670. the started execution and complete.
  75671. .UNINDENT
  75672. .INDENT 0.0
  75673. .TP
  75674. .B \-\-subset=SUBSET
  75675. Execute the routine on a random subset of the targeted minions. The
  75676. minions will be verified that they have the named function before
  75677. executing. The SUBSET argument is the count of the minions to target.
  75678. .UNINDENT
  75679. .INDENT 0.0
  75680. .TP
  75681. .B \-v VERBOSE, \-\-verbose
  75682. Turn on verbosity for the salt call, this will cause the salt command to
  75683. print out extra data like the job id.
  75684. .UNINDENT
  75685. .INDENT 0.0
  75686. .TP
  75687. .B \-\-hide\-timeout
  75688. Instead of showing the return data for all minions. This option
  75689. prints only the online minions which could be reached.
  75690. .UNINDENT
  75691. .INDENT 0.0
  75692. .TP
  75693. .B \-b BATCH, \-\-batch\-size=BATCH
  75694. Instead of executing on all targeted minions at once, execute on a
  75695. progressive set of minions. This option takes an argument in the form of
  75696. an explicit number of minions to execute at once, or a percentage of
  75697. minions to execute on.
  75698. .UNINDENT
  75699. .INDENT 0.0
  75700. .TP
  75701. .B \-a EAUTH, \-\-auth=EAUTH
  75702. Pass in an external authentication medium to validate against. The
  75703. credentials will be prompted for. The options are \fIauto\fP,
  75704. \fIkeystone\fP, \fIldap\fP, and \fIpam\fP\&. Can be used with the \-T
  75705. option.
  75706. .UNINDENT
  75707. .INDENT 0.0
  75708. .TP
  75709. .B \-T, \-\-make\-token
  75710. Used in conjunction with the \-a option. This creates a token that allows
  75711. for the authenticated user to send commands without needing to
  75712. re\-authenticate.
  75713. .UNINDENT
  75714. .INDENT 0.0
  75715. .TP
  75716. .B \-\-return=RETURNER
  75717. Choose an alternative returner to call on the minion, if an
  75718. alternative returner is used then the return will not come back to
  75719. the command line but will be sent to the specified return system.
  75720. The options are \fIcarbon\fP, \fIcassandra\fP, \fIcouchbase\fP, \fIcouchdb\fP,
  75721. \fIelasticsearch\fP, \fIetcd\fP, \fIhipchat\fP, \fIlocal\fP, \fIlocal_cache\fP,
  75722. \fImemcache\fP, \fImongo\fP, \fImysql\fP, \fIodbc\fP, \fIpostgres\fP, \fIredis\fP,
  75723. \fIsentry\fP, \fIslack\fP, \fIsms\fP, \fIsmtp\fP, \fIsqlite3\fP, \fIsyslog\fP, and \fIxmpp\fP\&.
  75724. .UNINDENT
  75725. .INDENT 0.0
  75726. .TP
  75727. .B \-d, \-\-doc, \-\-documentation
  75728. Return the documentation for the module functions available on the minions
  75729. .UNINDENT
  75730. .INDENT 0.0
  75731. .TP
  75732. .B \-\-args\-separator=ARGS_SEPARATOR
  75733. Set the special argument used as a delimiter between command arguments of
  75734. compound commands. This is useful when one wants to pass commas as
  75735. arguments to some of the commands in a compound command.
  75736. .UNINDENT
  75737. .SS Logging Options
  75738. .sp
  75739. Logging options which override any settings defined on the configuration files.
  75740. .INDENT 0.0
  75741. .TP
  75742. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75743. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75744. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75745. \fBwarning\fP\&.
  75746. .UNINDENT
  75747. .INDENT 0.0
  75748. .TP
  75749. .B \-\-log\-file=LOG_FILE
  75750. Log file path. Default: /var/log/salt/master\&.
  75751. .UNINDENT
  75752. .INDENT 0.0
  75753. .TP
  75754. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75755. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75756. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75757. \fBwarning\fP\&.
  75758. .UNINDENT
  75759. .SS Target Selection
  75760. .sp
  75761. The default matching that Salt utilizes is shell\-style globbing around the
  75762. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  75763. .INDENT 0.0
  75764. .TP
  75765. .B \-E, \-\-pcre
  75766. The target expression will be interpreted as a PCRE regular expression
  75767. rather than a shell glob.
  75768. .UNINDENT
  75769. .INDENT 0.0
  75770. .TP
  75771. .B \-L, \-\-list
  75772. The target expression will be interpreted as a comma\-delimited list;
  75773. example: server1.foo.bar,server2.foo.bar,example7.quo.qux
  75774. .UNINDENT
  75775. .INDENT 0.0
  75776. .TP
  75777. .B \-G, \-\-grain
  75778. The target expression matches values returned by the Salt grains system on
  75779. the minions. The target expression is in the format of \(aq<grain value>:<glob
  75780. expression>\(aq; example: \(aqos:Arch*\(aq
  75781. .sp
  75782. This was changed in version 0.9.8 to accept glob expressions instead of
  75783. regular expression. To use regular expression matching with grains, use
  75784. the \-\-grain\-pcre option.
  75785. .UNINDENT
  75786. .INDENT 0.0
  75787. .TP
  75788. .B \-\-grain\-pcre
  75789. The target expression matches values returned by the Salt grains system on
  75790. the minions. The target expression is in the format of \(aq<grain value>:<
  75791. regular expression>\(aq; example: \(aqos:Arch.*\(aq
  75792. .UNINDENT
  75793. .INDENT 0.0
  75794. .TP
  75795. .B \-N, \-\-nodegroup
  75796. Use a predefined compound target defined in the Salt master configuration
  75797. file.
  75798. .UNINDENT
  75799. .INDENT 0.0
  75800. .TP
  75801. .B \-R, \-\-range
  75802. Instead of using shell globs to evaluate the target, use a range expression
  75803. to identify targets. Range expressions look like %cluster.
  75804. .sp
  75805. Using the Range option requires that a range server is set up and the
  75806. location of the range server is referenced in the master configuration
  75807. file.
  75808. .UNINDENT
  75809. .INDENT 0.0
  75810. .TP
  75811. .B \-C, \-\-compound
  75812. Utilize many target definitions to make the call very granular. This option
  75813. takes a group of targets separated by \fBand\fP or \fBor\fP\&. The default matcher is a
  75814. glob as usual. If something other than a glob is used, preface it with the
  75815. letter denoting the type; example: \(aqwebserv* and \fI\%G@os\fP:Debian or \fI\%E@db*\fP\(aq
  75816. Make sure that the compound target is encapsulated in quotes.
  75817. .UNINDENT
  75818. .INDENT 0.0
  75819. .TP
  75820. .B \-I, \-\-pillar
  75821. Instead of using shell globs to evaluate the target, use a pillar value to
  75822. identify targets. The syntax for the target is the pillar key followed by
  75823. a glob expression: "role:production*"
  75824. .UNINDENT
  75825. .INDENT 0.0
  75826. .TP
  75827. .B \-S, \-\-ipcidr
  75828. Match based on Subnet (CIDR notation) or IPv4 address.
  75829. .UNINDENT
  75830. .SS Output Options
  75831. .INDENT 0.0
  75832. .TP
  75833. .B \-\-out
  75834. Pass in an alternative outputter to display the return of data. This
  75835. outputter can be any of the available outputters:
  75836. .INDENT 7.0
  75837. .INDENT 3.5
  75838. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  75839. .UNINDENT
  75840. .UNINDENT
  75841. .sp
  75842. Some outputters are formatted only for data returned from specific functions.
  75843. If an outputter is used that does not support the data passed into it, then
  75844. Salt will fall back on the \fBpprint\fP outputter and display the return data
  75845. using the Python \fBpprint\fP standard library module.
  75846. .UNINDENT
  75847. .INDENT 0.0
  75848. .TP
  75849. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  75850. Print the output indented by the provided value in spaces. Negative values
  75851. disable indentation. Only applicable in outputters that support
  75852. indentation.
  75853. .UNINDENT
  75854. .INDENT 0.0
  75855. .TP
  75856. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  75857. Write the output to the specified file.
  75858. .UNINDENT
  75859. .INDENT 0.0
  75860. .TP
  75861. .B \-\-out\-file\-append, \-\-output\-file\-append
  75862. Append the output to the specified file.
  75863. .UNINDENT
  75864. .INDENT 0.0
  75865. .TP
  75866. .B \-\-no\-color
  75867. Disable all colored output
  75868. .UNINDENT
  75869. .INDENT 0.0
  75870. .TP
  75871. .B \-\-force\-color
  75872. Force colored output
  75873. .sp
  75874. \fBNOTE:\fP
  75875. .INDENT 7.0
  75876. .INDENT 3.5
  75877. When using colored output the color codes are as follows:
  75878. .sp
  75879. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  75880. changes and success and \fByellow\fP denotes a expected future change in configuration.
  75881. .UNINDENT
  75882. .UNINDENT
  75883. .UNINDENT
  75884. .INDENT 0.0
  75885. .TP
  75886. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  75887. Override the configured state_output value for minion
  75888. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  75889. \(aqfilter\(aq. Default: \(aqnone\(aq.
  75890. .UNINDENT
  75891. .INDENT 0.0
  75892. .TP
  75893. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  75894. Override the configured state_verbose value for minion
  75895. output. Set to True or False. Default: none.
  75896. .UNINDENT
  75897. .sp
  75898. \fBNOTE:\fP
  75899. .INDENT 0.0
  75900. .INDENT 3.5
  75901. If using \fB\-\-out=json\fP, you will probably want \fB\-\-static\fP as well.
  75902. Without the static option, you will get a separate JSON string per minion
  75903. which makes JSON output invalid as a whole.
  75904. This is due to using an iterative outputter. So if you want to feed it
  75905. to a JSON parser, use \fB\-\-static\fP as well.
  75906. .UNINDENT
  75907. .UNINDENT
  75908. .SS See also
  75909. .sp
  75910. \fBsalt(7)\fP
  75911. \fBsalt\-master(1)\fP
  75912. \fBsalt\-minion(1)\fP
  75913. .SS salt\-cloud
  75914. .SS salt\-cp
  75915. .SS \fBsalt\-cp\fP
  75916. .sp
  75917. Copy a file or files to one or more minions
  75918. .SS Synopsis
  75919. .INDENT 0.0
  75920. .INDENT 3.5
  75921. .sp
  75922. .nf
  75923. .ft C
  75924. salt\-cp \(aq*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75925. salt\-cp \-E \(aq.*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75926. salt\-cp \-G \(aqos:Arch.*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75927. .ft P
  75928. .fi
  75929. .UNINDENT
  75930. .UNINDENT
  75931. .SS Description
  75932. .sp
  75933. salt\-cp copies files from the master to all of the Salt minions matched by the
  75934. specified target expression.
  75935. .sp
  75936. \fBNOTE:\fP
  75937. .INDENT 0.0
  75938. .INDENT 3.5
  75939. salt\-cp uses Salt\(aqs publishing mechanism. This means the privacy of the
  75940. contents of the file on the wire is completely dependent upon the transport
  75941. in use. In addition, if the master or minion is running with debug logging,
  75942. the contents of the file will be logged to disk.
  75943. .sp
  75944. In addition, this tool is less efficient than the Salt fileserver when
  75945. copying larger files. It is recommended to instead use
  75946. \fBcp.get_file\fP to copy larger files to
  75947. minions. However, this requires the file to be located within one of the
  75948. fileserver directories.
  75949. .UNINDENT
  75950. .UNINDENT
  75951. .sp
  75952. Changed in version 2016.3.7,2016.11.6,2017.7.0: Compression support added, disable with \fB\-n\fP\&. Also, if the destination
  75953. path ends in a path separator (i.e. \fB/\fP, or \fB\e\fP on Windows, the
  75954. desitination will be assumed to be a directory. Finally, recursion is now
  75955. supported, allowing for entire directories to be copied.
  75956. .sp
  75957. Changed in version 2016.11.7,2017.7.2: Reverted back to the old copy mode to preserve backward compatibility. The
  75958. new functionality added in 2016.6.6 and 2017.7.0 is now available using the
  75959. \fB\-C\fP or \fB\-\-chunked\fP CLI arguments. Note that compression, recursive
  75960. copying, and support for copying large files is only available in chunked
  75961. mode.
  75962. .SS Options
  75963. .INDENT 0.0
  75964. .TP
  75965. .B \-\-version
  75966. Print the version of Salt that is running.
  75967. .UNINDENT
  75968. .INDENT 0.0
  75969. .TP
  75970. .B \-\-versions\-report
  75971. Show program\(aqs dependencies and version number, and then exit
  75972. .UNINDENT
  75973. .INDENT 0.0
  75974. .TP
  75975. .B \-h, \-\-help
  75976. Show the help message and exit
  75977. .UNINDENT
  75978. .INDENT 0.0
  75979. .TP
  75980. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75981. The location of the Salt configuration directory. This directory contains
  75982. the configuration files for Salt master and minions. The default location
  75983. on most systems is \fB/etc/salt\fP\&.
  75984. .UNINDENT
  75985. .INDENT 0.0
  75986. .TP
  75987. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  75988. The timeout in seconds to wait for replies from the Salt minions. The
  75989. timeout number specifies how long the command line client will wait to
  75990. query the minions and check on running jobs. Default: 5
  75991. .UNINDENT
  75992. .SS Logging Options
  75993. .sp
  75994. Logging options which override any settings defined on the configuration files.
  75995. .INDENT 0.0
  75996. .TP
  75997. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75998. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75999. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76000. \fBwarning\fP\&.
  76001. .UNINDENT
  76002. .INDENT 0.0
  76003. .TP
  76004. .B \-\-log\-file=LOG_FILE
  76005. Log file path. Default: /var/log/salt/master\&.
  76006. .UNINDENT
  76007. .INDENT 0.0
  76008. .TP
  76009. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76010. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76011. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76012. \fBwarning\fP\&.
  76013. .UNINDENT
  76014. .SS Target Selection
  76015. .sp
  76016. The default matching that Salt utilizes is shell\-style globbing around the
  76017. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  76018. .INDENT 0.0
  76019. .TP
  76020. .B \-E, \-\-pcre
  76021. The target expression will be interpreted as a PCRE regular expression
  76022. rather than a shell glob.
  76023. .UNINDENT
  76024. .INDENT 0.0
  76025. .TP
  76026. .B \-L, \-\-list
  76027. The target expression will be interpreted as a comma\-delimited list;
  76028. example: server1.foo.bar,server2.foo.bar,example7.quo.qux
  76029. .UNINDENT
  76030. .INDENT 0.0
  76031. .TP
  76032. .B \-G, \-\-grain
  76033. The target expression matches values returned by the Salt grains system on
  76034. the minions. The target expression is in the format of \(aq<grain value>:<glob
  76035. expression>\(aq; example: \(aqos:Arch*\(aq
  76036. .sp
  76037. This was changed in version 0.9.8 to accept glob expressions instead of
  76038. regular expression. To use regular expression matching with grains, use
  76039. the \-\-grain\-pcre option.
  76040. .UNINDENT
  76041. .INDENT 0.0
  76042. .TP
  76043. .B \-\-grain\-pcre
  76044. The target expression matches values returned by the Salt grains system on
  76045. the minions. The target expression is in the format of \(aq<grain value>:<
  76046. regular expression>\(aq; example: \(aqos:Arch.*\(aq
  76047. .UNINDENT
  76048. .INDENT 0.0
  76049. .TP
  76050. .B \-N, \-\-nodegroup
  76051. Use a predefined compound target defined in the Salt master configuration
  76052. file.
  76053. .UNINDENT
  76054. .INDENT 0.0
  76055. .TP
  76056. .B \-R, \-\-range
  76057. Instead of using shell globs to evaluate the target, use a range expression
  76058. to identify targets. Range expressions look like %cluster.
  76059. .sp
  76060. Using the Range option requires that a range server is set up and the
  76061. location of the range server is referenced in the master configuration
  76062. file.
  76063. .UNINDENT
  76064. .INDENT 0.0
  76065. .TP
  76066. .B \-C, \-\-chunked
  76067. Use new chunked mode to copy files. This mode supports large files, recursive
  76068. directories copying and compression.
  76069. .sp
  76070. New in version 2016.11.7,2017.7.2.
  76071. .UNINDENT
  76072. .INDENT 0.0
  76073. .TP
  76074. .B \-n, \-\-no\-compression
  76075. Disable gzip compression in chunked mode.
  76076. .sp
  76077. New in version 2016.3.7,2016.11.6,2017.7.0.
  76078. .UNINDENT
  76079. .SS See also
  76080. .sp
  76081. \fBsalt(1)\fP
  76082. \fBsalt\-master(1)\fP
  76083. \fBsalt\-minion(1)\fP
  76084. .SS salt\-extend
  76085. .SS \fBsalt\-extend\fP
  76086. .sp
  76087. A utilty to generate extensions to the Salt source\-code. This is used for :
  76088. .INDENT 0.0
  76089. .IP \(bu 2
  76090. Adding new execution modules, state modules
  76091. .IP \(bu 2
  76092. Adding unit tests to existing modules
  76093. .IP \(bu 2
  76094. Adding integration tests to existing modules
  76095. .UNINDENT
  76096. .SS Synopsis
  76097. .INDENT 0.0
  76098. .INDENT 3.5
  76099. .sp
  76100. .nf
  76101. .ft C
  76102. salt\-extend \-\-help
  76103. .ft P
  76104. .fi
  76105. .UNINDENT
  76106. .UNINDENT
  76107. .SS Description
  76108. .sp
  76109. \fBsalt\-extend\fP is a templating tool for extending SaltStack. If you\(aqre looking to add a module to
  76110. SaltStack, then the \fBsalt\-extend\fP utility can guide you through the process.
  76111. .sp
  76112. You can use Salt Extend to quickly create templated modules for adding new behaviours to some of the module subsystems within Salt.
  76113. .sp
  76114. Salt Extend takes a template directory and merges it into a SaltStack source code directory.
  76115. .sp
  76116. \fISee also\fP: Salt Extend\&.
  76117. .SS Options
  76118. .INDENT 0.0
  76119. .TP
  76120. .B \-\-extension, \-e
  76121. The extension type you want to develop, e.g. module, module_unit, state
  76122. .UNINDENT
  76123. .INDENT 0.0
  76124. .TP
  76125. .B \-\-salt\-directory, \-o
  76126. The path to the salt installation, defaults to .
  76127. .UNINDENT
  76128. .INDENT 0.0
  76129. .TP
  76130. .B \-\-name, \-n
  76131. The module name for the new module
  76132. .UNINDENT
  76133. .INDENT 0.0
  76134. .TP
  76135. .B \-\-description, \-d
  76136. A description of the new extension
  76137. .UNINDENT
  76138. .INDENT 0.0
  76139. .TP
  76140. .B \-\-no\-merge
  76141. Don\(aqt merge the new module into the Salt source directory specified by \fI\-\-salt\-directory\fP, save
  76142. to a temporary directory and print the directory path
  76143. .UNINDENT
  76144. .INDENT 0.0
  76145. .TP
  76146. .B \-\-debug
  76147. Print debug messages to stdout
  76148. .UNINDENT
  76149. .SS See also
  76150. .sp
  76151. \fBsalt\-api(1)\fP
  76152. \fBsalt\-call(1)\fP
  76153. \fBsalt\-cloud(1)\fP
  76154. \fBsalt\-cp(1)\fP
  76155. \fBsalt\-key(1)\fP
  76156. \fBsalt\-main(1)\fP
  76157. \fBsalt\-master(1)\fP
  76158. \fBsalt\-minion(1)\fP
  76159. \fBsalt\-run(1)\fP
  76160. \fBsalt\-ssh(1)\fP
  76161. \fBsalt\-syndic(1)\fP
  76162. .SS salt\-key
  76163. .SS \fBsalt\-key\fP
  76164. .SS Synopsis
  76165. .INDENT 0.0
  76166. .INDENT 3.5
  76167. .sp
  76168. .nf
  76169. .ft C
  76170. salt\-key [ options ]
  76171. .ft P
  76172. .fi
  76173. .UNINDENT
  76174. .UNINDENT
  76175. .SS Description
  76176. .sp
  76177. Salt\-key executes simple management of Salt server public keys used for
  76178. authentication.
  76179. .sp
  76180. On initial connection, a Salt minion sends its public key to the Salt
  76181. master. This key must be accepted using the \fBsalt\-key\fP command on the
  76182. Salt master.
  76183. .sp
  76184. Salt minion keys can be in one of the following states:
  76185. .INDENT 0.0
  76186. .IP \(bu 2
  76187. \fBunaccepted\fP: key is waiting to be accepted.
  76188. .IP \(bu 2
  76189. \fBaccepted\fP: key was accepted and the minion can communicate with the Salt
  76190. master.
  76191. .IP \(bu 2
  76192. \fBrejected\fP: key was rejected using the \fBsalt\-key\fP command. In
  76193. this state the minion does not receive any communication from the Salt
  76194. master.
  76195. .IP \(bu 2
  76196. \fBdenied\fP: key was rejected automatically by the Salt master.
  76197. This occurs when a minion has a duplicate ID, or when a minion was rebuilt or
  76198. had new keys generated and the previous key was not deleted from the Salt
  76199. master. In this state the minion does not receive any communication from the
  76200. Salt master.
  76201. .UNINDENT
  76202. .sp
  76203. To change the state of a minion key, use \fB\-d\fP to delete the key and then
  76204. accept or reject the key.
  76205. .SS Options
  76206. .INDENT 0.0
  76207. .TP
  76208. .B \-\-version
  76209. Print the version of Salt that is running.
  76210. .UNINDENT
  76211. .INDENT 0.0
  76212. .TP
  76213. .B \-\-versions\-report
  76214. Show program\(aqs dependencies and version number, and then exit
  76215. .UNINDENT
  76216. .INDENT 0.0
  76217. .TP
  76218. .B \-h, \-\-help
  76219. Show the help message and exit
  76220. .UNINDENT
  76221. .INDENT 0.0
  76222. .TP
  76223. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76224. The location of the Salt configuration directory. This directory contains
  76225. the configuration files for Salt master and minions. The default location
  76226. on most systems is \fB/etc/salt\fP\&.
  76227. .UNINDENT
  76228. .INDENT 0.0
  76229. .TP
  76230. .B \-u USER, \-\-user=USER
  76231. Specify user to run salt\-key
  76232. .UNINDENT
  76233. .INDENT 0.0
  76234. .TP
  76235. .B \-\-hard\-crash
  76236. Raise any original exception rather than exiting gracefully. Default is
  76237. False.
  76238. .UNINDENT
  76239. .INDENT 0.0
  76240. .TP
  76241. .B \-q, \-\-quiet
  76242. Suppress output
  76243. .UNINDENT
  76244. .INDENT 0.0
  76245. .TP
  76246. .B \-y, \-\-yes
  76247. Answer \(aqYes\(aq to all questions presented, defaults to False
  76248. .UNINDENT
  76249. .INDENT 0.0
  76250. .TP
  76251. .B \-\-rotate\-aes\-key=ROTATE_AES_KEY
  76252. Setting this to False prevents the master from refreshing the key session
  76253. when keys are deleted or rejected, this lowers the security of the key
  76254. deletion/rejection operation. Default is True.
  76255. .UNINDENT
  76256. .SS Logging Options
  76257. .sp
  76258. Logging options which override any settings defined on the configuration files.
  76259. .INDENT 0.0
  76260. .TP
  76261. .B \-\-log\-file=LOG_FILE
  76262. Log file path. Default: /var/log/salt/minion\&.
  76263. .UNINDENT
  76264. .INDENT 0.0
  76265. .TP
  76266. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76267. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76268. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76269. \fBwarning\fP\&.
  76270. .UNINDENT
  76271. .SS Output Options
  76272. .INDENT 0.0
  76273. .TP
  76274. .B \-\-out
  76275. Pass in an alternative outputter to display the return of data. This
  76276. outputter can be any of the available outputters:
  76277. .INDENT 7.0
  76278. .INDENT 3.5
  76279. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  76280. .UNINDENT
  76281. .UNINDENT
  76282. .sp
  76283. Some outputters are formatted only for data returned from specific functions.
  76284. If an outputter is used that does not support the data passed into it, then
  76285. Salt will fall back on the \fBpprint\fP outputter and display the return data
  76286. using the Python \fBpprint\fP standard library module.
  76287. .UNINDENT
  76288. .INDENT 0.0
  76289. .TP
  76290. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  76291. Print the output indented by the provided value in spaces. Negative values
  76292. disable indentation. Only applicable in outputters that support
  76293. indentation.
  76294. .UNINDENT
  76295. .INDENT 0.0
  76296. .TP
  76297. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  76298. Write the output to the specified file.
  76299. .UNINDENT
  76300. .INDENT 0.0
  76301. .TP
  76302. .B \-\-out\-file\-append, \-\-output\-file\-append
  76303. Append the output to the specified file.
  76304. .UNINDENT
  76305. .INDENT 0.0
  76306. .TP
  76307. .B \-\-no\-color
  76308. Disable all colored output
  76309. .UNINDENT
  76310. .INDENT 0.0
  76311. .TP
  76312. .B \-\-force\-color
  76313. Force colored output
  76314. .sp
  76315. \fBNOTE:\fP
  76316. .INDENT 7.0
  76317. .INDENT 3.5
  76318. When using colored output the color codes are as follows:
  76319. .sp
  76320. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  76321. changes and success and \fByellow\fP denotes a expected future change in configuration.
  76322. .UNINDENT
  76323. .UNINDENT
  76324. .UNINDENT
  76325. .INDENT 0.0
  76326. .TP
  76327. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  76328. Override the configured state_output value for minion
  76329. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  76330. \(aqfilter\(aq. Default: \(aqnone\(aq.
  76331. .UNINDENT
  76332. .INDENT 0.0
  76333. .TP
  76334. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  76335. Override the configured state_verbose value for minion
  76336. output. Set to True or False. Default: none.
  76337. .UNINDENT
  76338. .SS Actions
  76339. .INDENT 0.0
  76340. .TP
  76341. .B \-l ARG, \-\-list=ARG
  76342. List the public keys. The args \fBpre\fP, \fBun\fP, and \fBunaccepted\fP will
  76343. list unaccepted/unsigned keys. \fBacc\fP or \fBaccepted\fP will list
  76344. accepted/signed keys. \fBrej\fP or \fBrejected\fP will list rejected keys.
  76345. Finally, \fBall\fP will list all keys.
  76346. .UNINDENT
  76347. .INDENT 0.0
  76348. .TP
  76349. .B \-L, \-\-list\-all
  76350. List all public keys. (Deprecated: use \fB\-\-list all\fP)
  76351. .UNINDENT
  76352. .INDENT 0.0
  76353. .TP
  76354. .B \-a ACCEPT, \-\-accept=ACCEPT
  76355. Accept the specified public key (use \-\-include\-all to match rejected keys
  76356. in addition to pending keys). Globs are supported.
  76357. .UNINDENT
  76358. .INDENT 0.0
  76359. .TP
  76360. .B \-A, \-\-accept\-all
  76361. Accepts all pending keys.
  76362. .UNINDENT
  76363. .INDENT 0.0
  76364. .TP
  76365. .B \-r REJECT, \-\-reject=REJECT
  76366. Reject the specified public key (use \-\-include\-all to match accepted keys
  76367. in addition to pending keys). Globs are supported.
  76368. .UNINDENT
  76369. .INDENT 0.0
  76370. .TP
  76371. .B \-R, \-\-reject\-all
  76372. Rejects all pending keys.
  76373. .UNINDENT
  76374. .INDENT 0.0
  76375. .TP
  76376. .B \-\-include\-all
  76377. Include non\-pending keys when accepting/rejecting.
  76378. .UNINDENT
  76379. .INDENT 0.0
  76380. .TP
  76381. .B \-p PRINT, \-\-print=PRINT
  76382. Print the specified public key.
  76383. .UNINDENT
  76384. .INDENT 0.0
  76385. .TP
  76386. .B \-P, \-\-print\-all
  76387. Print all public keys
  76388. .UNINDENT
  76389. .INDENT 0.0
  76390. .TP
  76391. .B \-d DELETE, \-\-delete=DELETE
  76392. Delete the specified key. Globs are supported.
  76393. .UNINDENT
  76394. .INDENT 0.0
  76395. .TP
  76396. .B \-D, \-\-delete\-all
  76397. Delete all keys.
  76398. .UNINDENT
  76399. .INDENT 0.0
  76400. .TP
  76401. .B \-f FINGER, \-\-finger=FINGER
  76402. Print the specified key\(aqs fingerprint.
  76403. .UNINDENT
  76404. .INDENT 0.0
  76405. .TP
  76406. .B \-F, \-\-finger\-all
  76407. Print all keys\(aq fingerprints.
  76408. .UNINDENT
  76409. .SS Key Generation Options
  76410. .INDENT 0.0
  76411. .TP
  76412. .B \-\-gen\-keys=GEN_KEYS
  76413. Set a name to generate a keypair for use with salt
  76414. .UNINDENT
  76415. .INDENT 0.0
  76416. .TP
  76417. .B \-\-gen\-keys\-dir=GEN_KEYS_DIR
  76418. Set the directory to save the generated keypair. Only works
  76419. with \(aqgen_keys_dir\(aq option; default is the current directory.
  76420. .UNINDENT
  76421. .INDENT 0.0
  76422. .TP
  76423. .B \-\-keysize=KEYSIZE
  76424. Set the keysize for the generated key, only works with
  76425. the \(aq\-\-gen\-keys\(aq option, the key size must be 2048 or
  76426. higher, otherwise it will be rounded up to 2048. The
  76427. default is 2048.
  76428. .UNINDENT
  76429. .INDENT 0.0
  76430. .TP
  76431. .B \-\-gen\-signature
  76432. Create a signature file of the master\(aqs public\-key named
  76433. master_pubkey_signature. The signature can be sent to a minion in the
  76434. master\(aqs auth\-reply and enables the minion to verify the master\(aqs public\-key
  76435. cryptographically. This requires a new signing\-key\-pair which can be
  76436. auto\-created with the \-\-auto\-create parameter.
  76437. .UNINDENT
  76438. .INDENT 0.0
  76439. .TP
  76440. .B \-\-priv=PRIV
  76441. The private\-key file to create a signature with
  76442. .UNINDENT
  76443. .INDENT 0.0
  76444. .TP
  76445. .B \-\-signature\-path=SIGNATURE_PATH
  76446. The path where the signature file should be written
  76447. .UNINDENT
  76448. .INDENT 0.0
  76449. .TP
  76450. .B \-\-pub=PUB
  76451. The public\-key file to create a signature for
  76452. .UNINDENT
  76453. .INDENT 0.0
  76454. .TP
  76455. .B \-\-auto\-create
  76456. Auto\-create a signing key\-pair if it does not yet exist
  76457. .UNINDENT
  76458. .SS See also
  76459. .sp
  76460. \fBsalt(7)\fP
  76461. \fBsalt\-master(1)\fP
  76462. \fBsalt\-minion(1)\fP
  76463. .SS salt\-master
  76464. .SS \fBsalt\-master\fP
  76465. .sp
  76466. The Salt master daemon, used to control the Salt minions
  76467. .SS Synopsis
  76468. .INDENT 0.0
  76469. .INDENT 3.5
  76470. .sp
  76471. .nf
  76472. .ft C
  76473. salt\-master [ options ]
  76474. .ft P
  76475. .fi
  76476. .UNINDENT
  76477. .UNINDENT
  76478. .SS Description
  76479. .sp
  76480. The master daemon controls the Salt minions
  76481. .SS Options
  76482. .INDENT 0.0
  76483. .TP
  76484. .B \-\-version
  76485. Print the version of Salt that is running.
  76486. .UNINDENT
  76487. .INDENT 0.0
  76488. .TP
  76489. .B \-\-versions\-report
  76490. Show program\(aqs dependencies and version number, and then exit
  76491. .UNINDENT
  76492. .INDENT 0.0
  76493. .TP
  76494. .B \-h, \-\-help
  76495. Show the help message and exit
  76496. .UNINDENT
  76497. .INDENT 0.0
  76498. .TP
  76499. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76500. The location of the Salt configuration directory. This directory contains
  76501. the configuration files for Salt master and minions. The default location
  76502. on most systems is \fB/etc/salt\fP\&.
  76503. .UNINDENT
  76504. .INDENT 0.0
  76505. .TP
  76506. .B \-u USER, \-\-user=USER
  76507. Specify user to run salt\-master
  76508. .UNINDENT
  76509. .INDENT 0.0
  76510. .TP
  76511. .B \-d, \-\-daemon
  76512. Run salt\-master as a daemon
  76513. .UNINDENT
  76514. .INDENT 0.0
  76515. .TP
  76516. .B \-\-pid\-file PIDFILE
  76517. Specify the location of the pidfile. Default: /var/run/salt\-master\&.pid
  76518. .UNINDENT
  76519. .SS Logging Options
  76520. .sp
  76521. Logging options which override any settings defined on the configuration files.
  76522. .INDENT 0.0
  76523. .TP
  76524. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76525. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76526. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76527. \fBwarning\fP\&.
  76528. .UNINDENT
  76529. .INDENT 0.0
  76530. .TP
  76531. .B \-\-log\-file=LOG_FILE
  76532. Log file path. Default: /var/log/salt/master\&.
  76533. .UNINDENT
  76534. .INDENT 0.0
  76535. .TP
  76536. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76537. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76538. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76539. \fBwarning\fP\&.
  76540. .UNINDENT
  76541. .SS See also
  76542. .sp
  76543. \fBsalt(1)\fP
  76544. \fBsalt(7)\fP
  76545. \fBsalt\-minion(1)\fP
  76546. .SS salt\-minion
  76547. .SS \fBsalt\-minion\fP
  76548. .sp
  76549. The Salt minion daemon, receives commands from a remote Salt master.
  76550. .SS Synopsis
  76551. .INDENT 0.0
  76552. .INDENT 3.5
  76553. .sp
  76554. .nf
  76555. .ft C
  76556. salt\-minion [ options ]
  76557. .ft P
  76558. .fi
  76559. .UNINDENT
  76560. .UNINDENT
  76561. .SS Description
  76562. .sp
  76563. The Salt minion receives commands from the central Salt master and replies with
  76564. the results of said commands.
  76565. .SS Options
  76566. .INDENT 0.0
  76567. .TP
  76568. .B \-\-version
  76569. Print the version of Salt that is running.
  76570. .UNINDENT
  76571. .INDENT 0.0
  76572. .TP
  76573. .B \-\-versions\-report
  76574. Show program\(aqs dependencies and version number, and then exit
  76575. .UNINDENT
  76576. .INDENT 0.0
  76577. .TP
  76578. .B \-h, \-\-help
  76579. Show the help message and exit
  76580. .UNINDENT
  76581. .INDENT 0.0
  76582. .TP
  76583. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76584. The location of the Salt configuration directory. This directory contains
  76585. the configuration files for Salt master and minions. The default location
  76586. on most systems is \fB/etc/salt\fP\&.
  76587. .UNINDENT
  76588. .INDENT 0.0
  76589. .TP
  76590. .B \-u USER, \-\-user=USER
  76591. Specify user to run salt\-minion
  76592. .UNINDENT
  76593. .INDENT 0.0
  76594. .TP
  76595. .B \-d, \-\-daemon
  76596. Run salt\-minion as a daemon
  76597. .UNINDENT
  76598. .INDENT 0.0
  76599. .TP
  76600. .B \-\-pid\-file PIDFILE
  76601. Specify the location of the pidfile. Default: /var/run/salt\-minion\&.pid
  76602. .UNINDENT
  76603. .SS Logging Options
  76604. .sp
  76605. Logging options which override any settings defined on the configuration files.
  76606. .INDENT 0.0
  76607. .TP
  76608. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76609. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76610. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76611. \fBwarning\fP\&.
  76612. .UNINDENT
  76613. .INDENT 0.0
  76614. .TP
  76615. .B \-\-log\-file=LOG_FILE
  76616. Log file path. Default: /var/log/salt/minion\&.
  76617. .UNINDENT
  76618. .INDENT 0.0
  76619. .TP
  76620. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76621. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76622. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76623. \fBwarning\fP\&.
  76624. .UNINDENT
  76625. .SS See also
  76626. .sp
  76627. \fBsalt(1)\fP
  76628. \fBsalt(7)\fP
  76629. \fBsalt\-master(1)\fP
  76630. .SS salt\-proxy
  76631. .SS \fBsalt\-proxy\fP
  76632. .sp
  76633. Receives commands from a Salt master and proxies these commands to
  76634. devices that are unable to run a full minion.
  76635. .SS Synopsis
  76636. .INDENT 0.0
  76637. .INDENT 3.5
  76638. .sp
  76639. .nf
  76640. .ft C
  76641. salt\-proxy [ options ]
  76642. .ft P
  76643. .fi
  76644. .UNINDENT
  76645. .UNINDENT
  76646. .SS Description
  76647. .sp
  76648. The Salt proxy minion receives commands from a Salt master, transmits
  76649. appropriate commands to devices that are unable to run a minion, and replies
  76650. with the results of said commands.
  76651. .SS Options
  76652. .INDENT 0.0
  76653. .TP
  76654. .B \-\-proxyid
  76655. The minion id that this proxy will assume. This is required.
  76656. .UNINDENT
  76657. .INDENT 0.0
  76658. .TP
  76659. .B \-\-version
  76660. Print the version of Salt that is running.
  76661. .UNINDENT
  76662. .INDENT 0.0
  76663. .TP
  76664. .B \-\-versions\-report
  76665. Show program\(aqs dependencies and version number, and then exit
  76666. .UNINDENT
  76667. .INDENT 0.0
  76668. .TP
  76669. .B \-h, \-\-help
  76670. Show the help message and exit
  76671. .UNINDENT
  76672. .INDENT 0.0
  76673. .TP
  76674. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76675. The location of the Salt configuration directory. This directory
  76676. contains the configuration files for Salt master and minions.
  76677. The default location on most systems is \fB/etc/salt\fP\&.
  76678. .UNINDENT
  76679. .INDENT 0.0
  76680. .TP
  76681. .B \-u USER, \-\-user=USER
  76682. Specify user to run salt\-proxy
  76683. .UNINDENT
  76684. .INDENT 0.0
  76685. .TP
  76686. .B \-d, \-\-daemon
  76687. Run salt\-proxy as a daemon
  76688. .UNINDENT
  76689. .INDENT 0.0
  76690. .TP
  76691. .B \-\-pid\-file PIDFILE
  76692. Specify the location of the pidfile. Default: \fB/var/run/salt\-proxy\-<id>.pid\fP
  76693. .UNINDENT
  76694. .SS Logging Options
  76695. .sp
  76696. Logging options which override any settings defined on the configuration files.
  76697. .INDENT 0.0
  76698. .TP
  76699. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76700. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76701. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76702. \fBwarning\fP\&.
  76703. .UNINDENT
  76704. .INDENT 0.0
  76705. .TP
  76706. .B \-\-log\-file=LOG_FILE
  76707. Log file path. Default: /var/log/salt/minion\&.
  76708. .UNINDENT
  76709. .INDENT 0.0
  76710. .TP
  76711. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76712. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76713. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76714. \fBwarning\fP\&.
  76715. .UNINDENT
  76716. .SS See also
  76717. .sp
  76718. \fBsalt(1)\fP
  76719. \fBsalt(7)\fP
  76720. \fBsalt\-master(1)\fP
  76721. \fBsalt\-minion(1)\fP
  76722. .SS salt\-run
  76723. .SS \fBsalt\-run\fP
  76724. .sp
  76725. Execute a Salt runner
  76726. .SS Synopsis
  76727. .INDENT 0.0
  76728. .INDENT 3.5
  76729. .sp
  76730. .nf
  76731. .ft C
  76732. salt\-run RUNNER
  76733. .ft P
  76734. .fi
  76735. .UNINDENT
  76736. .UNINDENT
  76737. .SS Description
  76738. .sp
  76739. salt\-run is the frontend command for executing \fBSalt Runners\fP\&.
  76740. Salt runners are simple modules used to execute convenience functions on the
  76741. master
  76742. .SS Options
  76743. .INDENT 0.0
  76744. .TP
  76745. .B \-\-version
  76746. Print the version of Salt that is running.
  76747. .UNINDENT
  76748. .INDENT 0.0
  76749. .TP
  76750. .B \-\-versions\-report
  76751. Show program\(aqs dependencies and version number, and then exit
  76752. .UNINDENT
  76753. .INDENT 0.0
  76754. .TP
  76755. .B \-h, \-\-help
  76756. Show the help message and exit
  76757. .UNINDENT
  76758. .INDENT 0.0
  76759. .TP
  76760. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76761. The location of the Salt configuration directory. This directory contains
  76762. the configuration files for Salt master and minions. The default location
  76763. on most systems is \fB/etc/salt\fP\&.
  76764. .UNINDENT
  76765. .INDENT 0.0
  76766. .TP
  76767. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  76768. The timeout in seconds to wait for replies from the Salt minions. The
  76769. timeout number specifies how long the command line client will wait to
  76770. query the minions and check on running jobs. Default: 1
  76771. .UNINDENT
  76772. .INDENT 0.0
  76773. .TP
  76774. .B \-\-hard\-crash
  76775. Raise any original exception rather than exiting gracefully. Default is
  76776. False.
  76777. .UNINDENT
  76778. .INDENT 0.0
  76779. .TP
  76780. .B \-d, \-\-doc, \-\-documentation
  76781. Display documentation for runners, pass a module or a runner to see
  76782. documentation on only that module/runner.
  76783. .UNINDENT
  76784. .SS Logging Options
  76785. .sp
  76786. Logging options which override any settings defined on the configuration files.
  76787. .INDENT 0.0
  76788. .TP
  76789. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76790. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76791. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76792. \fBwarning\fP\&.
  76793. .UNINDENT
  76794. .INDENT 0.0
  76795. .TP
  76796. .B \-\-log\-file=LOG_FILE
  76797. Log file path. Default: /var/log/salt/master\&.
  76798. .UNINDENT
  76799. .INDENT 0.0
  76800. .TP
  76801. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76802. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76803. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76804. \fBwarning\fP\&.
  76805. .UNINDENT
  76806. .SS See also
  76807. .sp
  76808. \fBsalt(1)\fP
  76809. \fBsalt\-master(1)\fP
  76810. \fBsalt\-minion(1)\fP
  76811. .SS salt\-ssh
  76812. .SS \fBsalt\-ssh\fP
  76813. .SS Synopsis
  76814. .INDENT 0.0
  76815. .INDENT 3.5
  76816. .sp
  76817. .nf
  76818. .ft C
  76819. salt\-ssh \(aq*\(aq [ options ] sys.doc
  76820. salt\-ssh \-E \(aq.*\(aq [ options ] sys.doc cmd
  76821. .ft P
  76822. .fi
  76823. .UNINDENT
  76824. .UNINDENT
  76825. .SS Description
  76826. .sp
  76827. Salt SSH allows for salt routines to be executed using only SSH for transport
  76828. .SS Options
  76829. .INDENT 0.0
  76830. .TP
  76831. .B \-\-version
  76832. Print the version of Salt that is running.
  76833. .UNINDENT
  76834. .INDENT 0.0
  76835. .TP
  76836. .B \-\-versions\-report
  76837. Show program\(aqs dependencies and version number, and then exit
  76838. .UNINDENT
  76839. .INDENT 0.0
  76840. .TP
  76841. .B \-h, \-\-help
  76842. Show the help message and exit
  76843. .UNINDENT
  76844. .INDENT 0.0
  76845. .TP
  76846. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76847. The location of the Salt configuration directory. This directory contains
  76848. the configuration files for Salt master and minions. The default location
  76849. on most systems is \fB/etc/salt\fP\&.
  76850. .UNINDENT
  76851. .INDENT 0.0
  76852. .TP
  76853. .B \-\-hard\-crash
  76854. Raise any original exception rather than exiting gracefully. Default: False.
  76855. .UNINDENT
  76856. .INDENT 0.0
  76857. .TP
  76858. .B \-r, \-\-raw, \-\-raw\-shell
  76859. Execute a raw shell command.
  76860. .UNINDENT
  76861. .INDENT 0.0
  76862. .TP
  76863. .B \-\-roster
  76864. Define which roster system to use, this defines if a database backend,
  76865. scanner, or custom roster system is used. Default is the flat file roster.
  76866. .UNINDENT
  76867. .INDENT 0.0
  76868. .TP
  76869. .B \-\-roster\-file
  76870. Define an alternative location for the default roster file location. The
  76871. default roster file is called \fBroster\fP and is found in the same directory
  76872. as the master config file.
  76873. .sp
  76874. New in version 2014.1.0.
  76875. .UNINDENT
  76876. .INDENT 0.0
  76877. .TP
  76878. .B \-\-refresh, \-\-refresh\-cache
  76879. Force a refresh of the master side data cache of the target\(aqs data. This
  76880. is needed if a target\(aqs grains have been changed and the auto refresh
  76881. timeframe has not been reached.
  76882. .UNINDENT
  76883. .INDENT 0.0
  76884. .TP
  76885. .B \-\-max\-procs
  76886. Set the number of concurrent minions to communicate with. This value
  76887. defines how many processes are opened up at a time to manage connections,
  76888. the more running process the faster communication should be, default
  76889. is 25.
  76890. .UNINDENT
  76891. .INDENT 0.0
  76892. .TP
  76893. .B \-\-extra\-filerefs=EXTRA_FILEREFS
  76894. Pass in extra files to include in the state tarball.
  76895. .UNINDENT
  76896. .INDENT 0.0
  76897. .TP
  76898. .B \-\-min\-extra\-modules=MIN_EXTRA_MODS
  76899. One or comma\-separated list of extra Python modulesto be included
  76900. into Minimal Salt.
  76901. .UNINDENT
  76902. .INDENT 0.0
  76903. .TP
  76904. .B \-\-thin\-extra\-modules=THIN_EXTRA_MODS
  76905. One or comma\-separated list of extra Python modulesto be included
  76906. into Thin Salt.
  76907. .UNINDENT
  76908. .INDENT 0.0
  76909. .TP
  76910. .B \-v, \-\-verbose
  76911. Turn on command verbosity, display jid.
  76912. .UNINDENT
  76913. .INDENT 0.0
  76914. .TP
  76915. .B \-s, \-\-static
  76916. Return the data from minions as a group after they all return.
  76917. .UNINDENT
  76918. .INDENT 0.0
  76919. .TP
  76920. .B \-w, \-\-wipe
  76921. Remove the deployment of the salt files when done executing.
  76922. .UNINDENT
  76923. .INDENT 0.0
  76924. .TP
  76925. .B \-W, \-\-rand\-thin\-dir
  76926. Select a random temp dir to deploy on the remote system. The dir
  76927. will be cleaned after the execution.
  76928. .UNINDENT
  76929. .INDENT 0.0
  76930. .TP
  76931. .B \-t, \-\-regen\-thin, \-\-thin
  76932. Trigger a thin tarball regeneration. This is needed if custom
  76933. grains/modules/states have been added or updated.
  76934. .UNINDENT
  76935. .INDENT 0.0
  76936. .TP
  76937. .B \-\-python2\-bin=PYTHON2_BIN
  76938. Path to a python2 binary which has salt installed.
  76939. .UNINDENT
  76940. .INDENT 0.0
  76941. .TP
  76942. .B \-\-python3\-bin=PYTHON3_BIN
  76943. Path to a python3 binary which has salt installed.
  76944. .UNINDENT
  76945. .INDENT 0.0
  76946. .TP
  76947. .B \-\-jid=JID
  76948. Pass a JID to be used instead of generating one.
  76949. .UNINDENT
  76950. .INDENT 0.0
  76951. .TP
  76952. .B \-\-pre\-flight
  76953. Run the ssh_pre_flight script defined in the roster.
  76954. By default this script will only run if the thin dir
  76955. does not exist on the target minion. This option will
  76956. force the script to run regardless of the thin dir
  76957. existing or not.
  76958. .UNINDENT
  76959. .SS Authentication Options
  76960. .INDENT 0.0
  76961. .TP
  76962. .B \-\-priv=SSH_PRIV
  76963. Specify the SSH private key file to be used for authentication.
  76964. .UNINDENT
  76965. .INDENT 0.0
  76966. .TP
  76967. .B \-\-priv\-passwd=SSH_PRIV_PASSWD
  76968. Specify the SSH private key file\(aqs passphrase if need be.
  76969. .UNINDENT
  76970. .INDENT 0.0
  76971. .TP
  76972. .B \-i, \-\-ignore\-host\-keys
  76973. By default ssh host keys are honored and connections will ask for
  76974. approval. Use this option to disable StrictHostKeyChecking.
  76975. .UNINDENT
  76976. .INDENT 0.0
  76977. .TP
  76978. .B \-\-no\-host\-keys
  76979. Fully ignores ssh host keys which by default are honored and connections
  76980. would ask for approval. Useful if the host key of a remote server has
  76981. changed and would still error with \-\-ignore\-host\-keys.
  76982. .UNINDENT
  76983. .INDENT 0.0
  76984. .TP
  76985. .B \-\-user=SSH_USER
  76986. Set the default user to attempt to use when authenticating.
  76987. .UNINDENT
  76988. .INDENT 0.0
  76989. .TP
  76990. .B \-\-passwd
  76991. Set the default password to attempt to use when authenticating.
  76992. .UNINDENT
  76993. .INDENT 0.0
  76994. .TP
  76995. .B \-\-askpass
  76996. Interactively ask for the SSH password with no echo \- avoids password
  76997. in process args and stored in history.
  76998. .UNINDENT
  76999. .INDENT 0.0
  77000. .TP
  77001. .B \-\-key\-deploy
  77002. Set this flag to attempt to deploy the authorized ssh key with all
  77003. minions. This combined with \-\-passwd can make initial deployment of keys
  77004. very fast and easy.
  77005. .UNINDENT
  77006. .INDENT 0.0
  77007. .TP
  77008. .B \-\-identities\-only
  77009. Use the only authentication identity files configured in the ssh_config
  77010. files. See IdentitiesOnly flag in man ssh_config.
  77011. .UNINDENT
  77012. .INDENT 0.0
  77013. .TP
  77014. .B \-\-sudo
  77015. Run command via sudo.
  77016. .UNINDENT
  77017. .SS Scan Roster Options
  77018. .INDENT 0.0
  77019. .TP
  77020. .B \-\-scan\-ports=SSH_SCAN_PORTS
  77021. Comma\-separated list of ports to scan in the scan roster.
  77022. .UNINDENT
  77023. .INDENT 0.0
  77024. .TP
  77025. .B \-\-scan\-timeout=SSH_SCAN_TIMEOUT
  77026. Scanning socket timeout for the scan roster.
  77027. .UNINDENT
  77028. .SS Logging Options
  77029. .sp
  77030. Logging options which override any settings defined on the configuration files.
  77031. .INDENT 0.0
  77032. .TP
  77033. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  77034. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77035. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77036. \fBwarning\fP\&.
  77037. .UNINDENT
  77038. .INDENT 0.0
  77039. .TP
  77040. .B \-\-log\-file=LOG_FILE
  77041. Log file path. Default: /var/log/salt/ssh\&.
  77042. .UNINDENT
  77043. .INDENT 0.0
  77044. .TP
  77045. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  77046. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77047. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77048. \fBwarning\fP\&.
  77049. .UNINDENT
  77050. .SS Target Selection
  77051. .sp
  77052. The default matching that Salt utilizes is shell\-style globbing around the
  77053. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  77054. .INDENT 0.0
  77055. .TP
  77056. .B \-E, \-\-pcre
  77057. The target expression will be interpreted as a PCRE regular expression
  77058. rather than a shell glob.
  77059. .UNINDENT
  77060. .SS Output Options
  77061. .INDENT 0.0
  77062. .TP
  77063. .B \-\-out
  77064. Pass in an alternative outputter to display the return of data. This
  77065. outputter can be any of the available outputters:
  77066. .INDENT 7.0
  77067. .INDENT 3.5
  77068. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  77069. .UNINDENT
  77070. .UNINDENT
  77071. .sp
  77072. Some outputters are formatted only for data returned from specific functions.
  77073. If an outputter is used that does not support the data passed into it, then
  77074. Salt will fall back on the \fBpprint\fP outputter and display the return data
  77075. using the Python \fBpprint\fP standard library module.
  77076. .UNINDENT
  77077. .INDENT 0.0
  77078. .TP
  77079. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  77080. Print the output indented by the provided value in spaces. Negative values
  77081. disable indentation. Only applicable in outputters that support
  77082. indentation.
  77083. .UNINDENT
  77084. .INDENT 0.0
  77085. .TP
  77086. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  77087. Write the output to the specified file.
  77088. .UNINDENT
  77089. .INDENT 0.0
  77090. .TP
  77091. .B \-\-out\-file\-append, \-\-output\-file\-append
  77092. Append the output to the specified file.
  77093. .UNINDENT
  77094. .INDENT 0.0
  77095. .TP
  77096. .B \-\-no\-color
  77097. Disable all colored output
  77098. .UNINDENT
  77099. .INDENT 0.0
  77100. .TP
  77101. .B \-\-force\-color
  77102. Force colored output
  77103. .sp
  77104. \fBNOTE:\fP
  77105. .INDENT 7.0
  77106. .INDENT 3.5
  77107. When using colored output the color codes are as follows:
  77108. .sp
  77109. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  77110. changes and success and \fByellow\fP denotes a expected future change in configuration.
  77111. .UNINDENT
  77112. .UNINDENT
  77113. .UNINDENT
  77114. .INDENT 0.0
  77115. .TP
  77116. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  77117. Override the configured state_output value for minion
  77118. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  77119. \(aqfilter\(aq. Default: \(aqnone\(aq.
  77120. .UNINDENT
  77121. .INDENT 0.0
  77122. .TP
  77123. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  77124. Override the configured state_verbose value for minion
  77125. output. Set to True or False. Default: none.
  77126. .UNINDENT
  77127. .sp
  77128. \fBNOTE:\fP
  77129. .INDENT 0.0
  77130. .INDENT 3.5
  77131. If using \fB\-\-out=json\fP, you will probably want \fB\-\-static\fP as well.
  77132. Without the static option, you will get a separate JSON string per minion
  77133. which makes JSON output invalid as a whole.
  77134. This is due to using an iterative outputter. So if you want to feed it
  77135. to a JSON parser, use \fB\-\-static\fP as well.
  77136. .UNINDENT
  77137. .UNINDENT
  77138. .SS See also
  77139. .sp
  77140. \fBsalt(7)\fP
  77141. \fBsalt\-master(1)\fP
  77142. \fBsalt\-minion(1)\fP
  77143. .SS salt\-syndic
  77144. .SS \fBsalt\-syndic\fP
  77145. .sp
  77146. The Salt syndic daemon, a special minion that passes through commands from a
  77147. higher master
  77148. .SS Synopsis
  77149. .INDENT 0.0
  77150. .INDENT 3.5
  77151. .sp
  77152. .nf
  77153. .ft C
  77154. salt\-syndic [ options ]
  77155. .ft P
  77156. .fi
  77157. .UNINDENT
  77158. .UNINDENT
  77159. .SS Description
  77160. .sp
  77161. The Salt syndic daemon, a special minion that passes through commands from a
  77162. higher master.
  77163. .SS Options
  77164. .INDENT 0.0
  77165. .TP
  77166. .B \-\-version
  77167. Print the version of Salt that is running.
  77168. .UNINDENT
  77169. .INDENT 0.0
  77170. .TP
  77171. .B \-\-versions\-report
  77172. Show program\(aqs dependencies and version number, and then exit
  77173. .UNINDENT
  77174. .INDENT 0.0
  77175. .TP
  77176. .B \-h, \-\-help
  77177. Show the help message and exit
  77178. .UNINDENT
  77179. .INDENT 0.0
  77180. .TP
  77181. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  77182. The location of the Salt configuration directory. This directory contains
  77183. the configuration files for Salt master and minions. The default location
  77184. on most systems is \fB/etc/salt\fP\&.
  77185. .UNINDENT
  77186. .INDENT 0.0
  77187. .TP
  77188. .B \-u USER, \-\-user=USER
  77189. Specify user to run salt\-syndic
  77190. .UNINDENT
  77191. .INDENT 0.0
  77192. .TP
  77193. .B \-d, \-\-daemon
  77194. Run salt\-syndic as a daemon
  77195. .UNINDENT
  77196. .INDENT 0.0
  77197. .TP
  77198. .B \-\-pid\-file PIDFILE
  77199. Specify the location of the pidfile. Default: /var/run/salt\-syndic\&.pid
  77200. .UNINDENT
  77201. .SS Logging Options
  77202. .sp
  77203. Logging options which override any settings defined on the configuration files.
  77204. .INDENT 0.0
  77205. .TP
  77206. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  77207. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77208. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77209. \fBwarning\fP\&.
  77210. .UNINDENT
  77211. .INDENT 0.0
  77212. .TP
  77213. .B \-\-log\-file=LOG_FILE
  77214. Log file path. Default: /var/log/salt/master\&.
  77215. .UNINDENT
  77216. .INDENT 0.0
  77217. .TP
  77218. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  77219. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77220. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77221. \fBwarning\fP\&.
  77222. .UNINDENT
  77223. .SS See also
  77224. .sp
  77225. \fBsalt(1)\fP
  77226. \fBsalt\-master(1)\fP
  77227. \fBsalt\-minion(1)\fP
  77228. .SS salt\-unity
  77229. .SS \fBsalt\-unity\fP
  77230. .sp
  77231. A unified invocation wrapper around other Salt CLI scripts.
  77232. .SS Synopsis
  77233. .INDENT 0.0
  77234. .INDENT 3.5
  77235. .sp
  77236. .nf
  77237. .ft C
  77238. salt\-unity salt \(aq*\(aq test.version
  77239. .ft P
  77240. .fi
  77241. .UNINDENT
  77242. .UNINDENT
  77243. .SS Description
  77244. .sp
  77245. This script takes an argument which is one of the other Salt CLI scripts and
  77246. invokes that script.
  77247. .SS Options
  77248. .SS See also
  77249. .sp
  77250. \fBsalt\-api(1)\fP
  77251. \fBsalt\-call(1)\fP
  77252. \fBsalt\-cloud(1)\fP
  77253. \fBsalt\-cp(1)\fP
  77254. \fBsalt\-key(1)\fP
  77255. \fBsalt\-main(1)\fP
  77256. \fBsalt\-master(1)\fP
  77257. \fBsalt\-minion(1)\fP
  77258. \fBsalt\-run(1)\fP
  77259. \fBsalt\-ssh(1)\fP
  77260. \fBsalt\-syndic(1)\fP
  77261. .SS spm
  77262. .SS \fBspm\fP
  77263. .sp
  77264. Salt Package Manager
  77265. .SS Synopsis
  77266. .INDENT 0.0
  77267. .INDENT 3.5
  77268. .sp
  77269. .nf
  77270. .ft C
  77271. spm <command> [<argument>]
  77272. .ft P
  77273. .fi
  77274. .UNINDENT
  77275. .UNINDENT
  77276. .SS Description
  77277. .sp
  77278. spm is the frontend command for managing Salt packages. Packages normally only
  77279. include formulas, meaning a group of SLS files that install into the
  77280. \fBfile_roots\fP on the Salt Master, but Salt modules can also be installed.
  77281. .SS Options
  77282. .INDENT 0.0
  77283. .TP
  77284. .B \-y, \-\-assume\-yes
  77285. Assume \fByes\fP instead of prompting the other whether or not to proceed
  77286. with a particular command. Default is False.
  77287. .UNINDENT
  77288. .INDENT 0.0
  77289. .TP
  77290. .B \-f, \-\-force
  77291. When presented with a course of action that spm would normally refuse to
  77292. perform, that action will be performed anyway. This is often destructive,
  77293. and should be used with caution.
  77294. .UNINDENT
  77295. .SS Logging Options
  77296. .sp
  77297. Logging options which override any settings defined on the configuration files.
  77298. .INDENT 0.0
  77299. .TP
  77300. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  77301. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77302. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77303. \fBwarning\fP\&.
  77304. .UNINDENT
  77305. .INDENT 0.0
  77306. .TP
  77307. .B \-\-log\-file=LOG_FILE
  77308. Log file path. Default: /var/log/salt/spm\&.
  77309. .UNINDENT
  77310. .INDENT 0.0
  77311. .TP
  77312. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  77313. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77314. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77315. \fBwarning\fP\&.
  77316. .UNINDENT
  77317. .SS Commands
  77318. .INDENT 0.0
  77319. .TP
  77320. .B update_repo
  77321. Connect to remote repositories locally configured on the system and download
  77322. their metadata.
  77323. .UNINDENT
  77324. .INDENT 0.0
  77325. .TP
  77326. .B install
  77327. Install a package from a configured SPM repository. Requires a package name.
  77328. .UNINDENT
  77329. .INDENT 0.0
  77330. .TP
  77331. .B remove
  77332. Remove an installed package from the system. Requires a package name.
  77333. .UNINDENT
  77334. .INDENT 0.0
  77335. .TP
  77336. .B info
  77337. List information about an installed package. Requires a package name.
  77338. .UNINDENT
  77339. .INDENT 0.0
  77340. .TP
  77341. .B files
  77342. List files belonging to an installed package. Requires a package name.
  77343. .UNINDENT
  77344. .INDENT 0.0
  77345. .TP
  77346. .B local
  77347. Perform one of the above options (except for remove) on a package file,
  77348. instead of on a package in a repository, or an installed package. Requires
  77349. a valid path to a local file on the system.
  77350. .UNINDENT
  77351. .INDENT 0.0
  77352. .TP
  77353. .B build
  77354. Build a package from a directory containing a FORMULA file. Requires a valid
  77355. path to a local directory on the system.
  77356. .UNINDENT
  77357. .INDENT 0.0
  77358. .TP
  77359. .B create_repo
  77360. Scan a directory for valid SPM package files and build an SPM\-METADATA file
  77361. in that directory which describes them.
  77362. .UNINDENT
  77363. .SS See also
  77364. .sp
  77365. \fBsalt(1)\fP
  77366. \fBsalt\-master(1)\fP
  77367. \fBsalt\-minion(1)\fP
  77368. .SH PILLARS
  77369. .sp
  77370. Salt includes a number of built\-in external pillars, listed at
  77371. all\-salt.pillars\&.
  77372. .sp
  77373. The below links contain documentation for the configuration options
  77374. .INDENT 0.0
  77375. .IP \(bu 2
  77376. master\-side configuration
  77377. .IP \(bu 2
  77378. minion\-side configuration
  77379. .UNINDENT
  77380. .sp
  77381. Note that some of same the configuration options from the master are present in
  77382. the minion configuration file, these are used in masterless mode.
  77383. .sp
  77384. The source for the built\-in Salt pillars can be found here:
  77385. \fI\%https://github.com/saltstack/salt/blob/master/salt/pillar\fP
  77386. .SH MASTER TOPS
  77387. .sp
  77388. Salt includes a number of built\-in subsystems to generate top file data, they
  77389. are listed at
  77390. all\-salt.tops\&.
  77391. .sp
  77392. The source for the built\-in Salt master tops can be found here:
  77393. \fI\%https://github.com/saltstack/salt/blob/master/salt/tops\fP
  77394. .SH SALT MODULE REFERENCE
  77395. .sp
  77396. This section contains a list of the Python modules that are used to extend the various subsystems within Salt.
  77397. .SS auth modules
  77398. .TS
  77399. center;
  77400. |l|l|.
  77401. _
  77402. T{
  77403. \fBauto\fP
  77404. T} T{
  77405. T}
  77406. _
  77407. T{
  77408. \fBdjango\fP
  77409. T} T{
  77410. T}
  77411. _
  77412. T{
  77413. \fBfile\fP
  77414. T} T{
  77415. T}
  77416. _
  77417. T{
  77418. \fBkeystone\fP
  77419. T} T{
  77420. T}
  77421. _
  77422. T{
  77423. \fBldap\fP
  77424. T} T{
  77425. T}
  77426. _
  77427. T{
  77428. \fBmysql\fP
  77429. T} T{
  77430. T}
  77431. _
  77432. T{
  77433. \fBpam\fP
  77434. T} T{
  77435. T}
  77436. _
  77437. T{
  77438. \fBpki\fP
  77439. T} T{
  77440. T}
  77441. _
  77442. T{
  77443. \fBrest\fP
  77444. T} T{
  77445. T}
  77446. _
  77447. T{
  77448. \fBsharedsecret\fP
  77449. T} T{
  77450. T}
  77451. _
  77452. T{
  77453. \fByubico\fP
  77454. T} T{
  77455. T}
  77456. _
  77457. .TE
  77458. .SS beacon modules
  77459. .TS
  77460. center;
  77461. |l|l|.
  77462. _
  77463. T{
  77464. \fBadb\fP
  77465. T} T{
  77466. T}
  77467. _
  77468. T{
  77469. \fBaix_account\fP
  77470. T} T{
  77471. T}
  77472. _
  77473. T{
  77474. \fBavahi_announce\fP
  77475. T} T{
  77476. T}
  77477. _
  77478. T{
  77479. \fBbonjour_announce\fP
  77480. T} T{
  77481. T}
  77482. _
  77483. T{
  77484. \fBbtmp\fP
  77485. T} T{
  77486. T}
  77487. _
  77488. T{
  77489. \fBcert_info\fP
  77490. T} T{
  77491. T}
  77492. _
  77493. T{
  77494. \fBdiskusage\fP
  77495. T} T{
  77496. T}
  77497. _
  77498. T{
  77499. \fBglxinfo\fP
  77500. T} T{
  77501. T}
  77502. _
  77503. T{
  77504. \fBhaproxy\fP
  77505. T} T{
  77506. T}
  77507. _
  77508. T{
  77509. \fBinotify\fP
  77510. T} T{
  77511. T}
  77512. _
  77513. T{
  77514. \fBjournald\fP
  77515. T} T{
  77516. T}
  77517. _
  77518. T{
  77519. \fBload\fP
  77520. T} T{
  77521. T}
  77522. _
  77523. T{
  77524. \fBlog_beacon\fP
  77525. T} T{
  77526. T}
  77527. _
  77528. T{
  77529. \fBmemusage\fP
  77530. T} T{
  77531. T}
  77532. _
  77533. T{
  77534. \fBnapalm_beacon\fP
  77535. T} T{
  77536. T}
  77537. _
  77538. T{
  77539. \fBnetwork_info\fP
  77540. T} T{
  77541. T}
  77542. _
  77543. T{
  77544. \fBnetwork_settings\fP
  77545. T} T{
  77546. T}
  77547. _
  77548. T{
  77549. \fBpkg\fP
  77550. T} T{
  77551. T}
  77552. _
  77553. T{
  77554. \fBproxy_example\fP
  77555. T} T{
  77556. T}
  77557. _
  77558. T{
  77559. \fBps\fP
  77560. T} T{
  77561. T}
  77562. _
  77563. T{
  77564. \fBsalt_proxy\fP
  77565. T} T{
  77566. T}
  77567. _
  77568. T{
  77569. \fBsensehat\fP
  77570. T} T{
  77571. T}
  77572. _
  77573. T{
  77574. \fBservice\fP
  77575. T} T{
  77576. T}
  77577. _
  77578. T{
  77579. \fBsh\fP
  77580. T} T{
  77581. T}
  77582. _
  77583. T{
  77584. \fBsmartos_imgadm\fP
  77585. T} T{
  77586. T}
  77587. _
  77588. T{
  77589. \fBsmartos_vmadm\fP
  77590. T} T{
  77591. T}
  77592. _
  77593. T{
  77594. \fBstatus\fP
  77595. T} T{
  77596. T}
  77597. _
  77598. T{
  77599. \fBtelegram_bot_msg\fP
  77600. T} T{
  77601. T}
  77602. _
  77603. T{
  77604. \fBtwilio_txt_msg\fP
  77605. T} T{
  77606. T}
  77607. _
  77608. T{
  77609. \fBwatchdog\fP
  77610. T} T{
  77611. T}
  77612. _
  77613. T{
  77614. \fBwtmp\fP
  77615. T} T{
  77616. T}
  77617. _
  77618. .TE
  77619. .SS cache modules
  77620. .TS
  77621. center;
  77622. |l|l|.
  77623. _
  77624. T{
  77625. \fBconsul\fP
  77626. T} T{
  77627. T}
  77628. _
  77629. T{
  77630. \fBetcd_cache\fP
  77631. T} T{
  77632. T}
  77633. _
  77634. T{
  77635. \fBlocalfs\fP
  77636. T} T{
  77637. T}
  77638. _
  77639. T{
  77640. \fBmysql_cache\fP
  77641. T} T{
  77642. T}
  77643. _
  77644. T{
  77645. \fBredis_cache\fP
  77646. T} T{
  77647. T}
  77648. _
  77649. .TE
  77650. .SS cloud modules
  77651. .TS
  77652. center;
  77653. |l|l|.
  77654. _
  77655. T{
  77656. \fBaliyun\fP
  77657. T} T{
  77658. T}
  77659. _
  77660. T{
  77661. \fBazurearm\fP
  77662. T} T{
  77663. T}
  77664. _
  77665. T{
  77666. \fBclc\fP
  77667. T} T{
  77668. T}
  77669. _
  77670. T{
  77671. \fBcloudstack\fP
  77672. T} T{
  77673. T}
  77674. _
  77675. T{
  77676. \fBdigitalocean\fP
  77677. T} T{
  77678. T}
  77679. _
  77680. T{
  77681. \fBdimensiondata\fP
  77682. T} T{
  77683. T}
  77684. _
  77685. T{
  77686. \fBec2\fP
  77687. T} T{
  77688. T}
  77689. _
  77690. T{
  77691. \fBgce\fP
  77692. T} T{
  77693. T}
  77694. _
  77695. T{
  77696. \fBgogrid\fP
  77697. T} T{
  77698. T}
  77699. _
  77700. T{
  77701. \fBjoyent\fP
  77702. T} T{
  77703. T}
  77704. _
  77705. T{
  77706. \fBlibvirt\fP
  77707. T} T{
  77708. T}
  77709. _
  77710. T{
  77711. \fBlinode\fP
  77712. T} T{
  77713. T}
  77714. _
  77715. T{
  77716. \fBlxc\fP
  77717. T} T{
  77718. T}
  77719. _
  77720. T{
  77721. \fBmsazure\fP
  77722. T} T{
  77723. T}
  77724. _
  77725. T{
  77726. \fBoneandone\fP
  77727. T} T{
  77728. T}
  77729. _
  77730. T{
  77731. \fBopennebula\fP
  77732. T} T{
  77733. T}
  77734. _
  77735. T{
  77736. \fBopenstack\fP
  77737. T} T{
  77738. T}
  77739. _
  77740. T{
  77741. \fBpacket\fP
  77742. T} T{
  77743. T}
  77744. _
  77745. T{
  77746. \fBparallels\fP
  77747. T} T{
  77748. T}
  77749. _
  77750. T{
  77751. \fBprofitbricks\fP
  77752. T} T{
  77753. T}
  77754. _
  77755. T{
  77756. \fBproxmox\fP
  77757. T} T{
  77758. T}
  77759. _
  77760. T{
  77761. \fBpyrax\fP
  77762. T} T{
  77763. T}
  77764. _
  77765. T{
  77766. \fBqingcloud\fP
  77767. T} T{
  77768. T}
  77769. _
  77770. T{
  77771. \fBsaltify\fP
  77772. T} T{
  77773. T}
  77774. _
  77775. T{
  77776. \fBscaleway\fP
  77777. T} T{
  77778. T}
  77779. _
  77780. T{
  77781. \fBsoftlayer\fP
  77782. T} T{
  77783. T}
  77784. _
  77785. T{
  77786. \fBsoftlayer_hw\fP
  77787. T} T{
  77788. T}
  77789. _
  77790. T{
  77791. \fBtencentcloud\fP
  77792. T} T{
  77793. T}
  77794. _
  77795. T{
  77796. \fBvagrant\fP
  77797. T} T{
  77798. T}
  77799. _
  77800. T{
  77801. \fBvirtualbox\fP
  77802. T} T{
  77803. T}
  77804. _
  77805. T{
  77806. \fBvmware\fP
  77807. T} T{
  77808. T}
  77809. _
  77810. T{
  77811. \fBvultrpy\fP
  77812. T} T{
  77813. T}
  77814. _
  77815. T{
  77816. \fBxen\fP
  77817. T} T{
  77818. T}
  77819. _
  77820. .TE
  77821. .SS engine modules
  77822. .TS
  77823. center;
  77824. |l|l|.
  77825. _
  77826. T{
  77827. \fBdocker_events\fP
  77828. T} T{
  77829. T}
  77830. _
  77831. T{
  77832. \fBfluent\fP
  77833. T} T{
  77834. T}
  77835. _
  77836. T{
  77837. \fBhttp_logstash\fP
  77838. T} T{
  77839. T}
  77840. _
  77841. T{
  77842. \fBircbot\fP
  77843. T} T{
  77844. T}
  77845. _
  77846. T{
  77847. \fBjunos_syslog\fP
  77848. T} T{
  77849. T}
  77850. _
  77851. T{
  77852. \fBlibvirt_events\fP
  77853. T} T{
  77854. T}
  77855. _
  77856. T{
  77857. \fBlogentries\fP
  77858. T} T{
  77859. T}
  77860. _
  77861. T{
  77862. \fBlogstash_engine\fP
  77863. T} T{
  77864. T}
  77865. _
  77866. T{
  77867. \fBnapalm_syslog\fP
  77868. T} T{
  77869. T}
  77870. _
  77871. T{
  77872. \fBreactor\fP
  77873. T} T{
  77874. T}
  77875. _
  77876. T{
  77877. \fBredis_sentinel\fP
  77878. T} T{
  77879. T}
  77880. _
  77881. T{
  77882. \fBscript\fP
  77883. T} T{
  77884. T}
  77885. _
  77886. T{
  77887. \fBslack\fP
  77888. T} T{
  77889. T}
  77890. _
  77891. T{
  77892. \fBsqs_events\fP
  77893. T} T{
  77894. T}
  77895. _
  77896. T{
  77897. \fBstalekey\fP
  77898. T} T{
  77899. T}
  77900. _
  77901. T{
  77902. \fI\%test\fP
  77903. T} T{
  77904. T}
  77905. _
  77906. T{
  77907. \fBthorium\fP
  77908. T} T{
  77909. T}
  77910. _
  77911. T{
  77912. \fBwebhook\fP
  77913. T} T{
  77914. T}
  77915. _
  77916. .TE
  77917. .SS executors modules
  77918. .TS
  77919. center;
  77920. |l|l|.
  77921. _
  77922. T{
  77923. \fBdirect_call\fP
  77924. T} T{
  77925. Direct call executor module
  77926. T}
  77927. _
  77928. T{
  77929. \fBdocker\fP
  77930. T} T{
  77931. Docker executor module
  77932. T}
  77933. _
  77934. T{
  77935. \fBsplay\fP
  77936. T} T{
  77937. T}
  77938. _
  77939. T{
  77940. \fBsudo\fP
  77941. T} T{
  77942. T}
  77943. _
  77944. .TE
  77945. .SS salt.executors.direct_call module
  77946. .sp
  77947. Direct call executor module
  77948. .INDENT 0.0
  77949. .TP
  77950. .B salt.executors.direct_call.execute(opts, data, func, args, kwargs)
  77951. Directly calls the given function with arguments
  77952. .UNINDENT
  77953. .SS salt.executors.docker module
  77954. .sp
  77955. Docker executor module
  77956. .sp
  77957. Used with the docker proxy minion.
  77958. .INDENT 0.0
  77959. .TP
  77960. .B salt.executors.docker.allow_missing_func(function)
  77961. Allow all calls to be passed through to docker container.
  77962. .sp
  77963. The docker call will use direct_call, which will return back if the module
  77964. was unable to be run.
  77965. .UNINDENT
  77966. .INDENT 0.0
  77967. .TP
  77968. .B salt.executors.docker.execute(opts, data, func, args, kwargs)
  77969. Directly calls the given function with arguments
  77970. .UNINDENT
  77971. .SS fileserver modules
  77972. .TS
  77973. center;
  77974. |l|l|.
  77975. _
  77976. T{
  77977. \fBazurefs\fP
  77978. T} T{
  77979. T}
  77980. _
  77981. T{
  77982. \fBgitfs\fP
  77983. T} T{
  77984. T}
  77985. _
  77986. T{
  77987. \fBhgfs\fP
  77988. T} T{
  77989. T}
  77990. _
  77991. T{
  77992. \fBminionfs\fP
  77993. T} T{
  77994. T}
  77995. _
  77996. T{
  77997. \fBroots\fP
  77998. T} T{
  77999. T}
  78000. _
  78001. T{
  78002. \fBs3fs\fP
  78003. T} T{
  78004. T}
  78005. _
  78006. T{
  78007. \fBsvnfs\fP
  78008. T} T{
  78009. T}
  78010. _
  78011. .TE
  78012. .SS grains modules
  78013. .TS
  78014. center;
  78015. |l|l|.
  78016. _
  78017. T{
  78018. \fBchronos\fP
  78019. T} T{
  78020. T}
  78021. _
  78022. T{
  78023. \fBcimc\fP
  78024. T} T{
  78025. T}
  78026. _
  78027. T{
  78028. \fBcore\fP
  78029. T} T{
  78030. T}
  78031. _
  78032. T{
  78033. \fBdisks\fP
  78034. T} T{
  78035. T}
  78036. _
  78037. T{
  78038. \fBesxi\fP
  78039. T} T{
  78040. T}
  78041. _
  78042. T{
  78043. \fBextra\fP
  78044. T} T{
  78045. T}
  78046. _
  78047. T{
  78048. \fBfibre_channel\fP
  78049. T} T{
  78050. T}
  78051. _
  78052. T{
  78053. \fBfx2\fP
  78054. T} T{
  78055. T}
  78056. _
  78057. T{
  78058. \fBiscsi\fP
  78059. T} T{
  78060. T}
  78061. _
  78062. T{
  78063. \fBjunos\fP
  78064. T} T{
  78065. Grains for junos.
  78066. T}
  78067. _
  78068. T{
  78069. \fBmarathon\fP
  78070. T} T{
  78071. T}
  78072. _
  78073. T{
  78074. \fBmdadm\fP
  78075. T} T{
  78076. T}
  78077. _
  78078. T{
  78079. \fBmdata\fP
  78080. T} T{
  78081. T}
  78082. _
  78083. T{
  78084. \fBmetadata\fP
  78085. T} T{
  78086. T}
  78087. _
  78088. T{
  78089. \fBminion_process\fP
  78090. T} T{
  78091. T}
  78092. _
  78093. T{
  78094. \fBnapalm\fP
  78095. T} T{
  78096. T}
  78097. _
  78098. T{
  78099. \fBnvme\fP
  78100. T} T{
  78101. T}
  78102. _
  78103. T{
  78104. \fBnxos\fP
  78105. T} T{
  78106. T}
  78107. _
  78108. T{
  78109. \fBopts\fP
  78110. T} T{
  78111. Simple grain to merge the opts into the grains directly if the grain_opts configuration value is set
  78112. T}
  78113. _
  78114. T{
  78115. \fBpanos\fP
  78116. T} T{
  78117. T}
  78118. _
  78119. T{
  78120. \fBpending_reboot\fP
  78121. T} T{
  78122. T}
  78123. _
  78124. T{
  78125. \fBphilips_hue\fP
  78126. T} T{
  78127. Static grains for the Philips HUE lamps
  78128. T}
  78129. _
  78130. T{
  78131. \fBrest_sample\fP
  78132. T} T{
  78133. T}
  78134. _
  78135. T{
  78136. \fBsmartos\fP
  78137. T} T{
  78138. T}
  78139. _
  78140. T{
  78141. \fBssh_sample\fP
  78142. T} T{
  78143. T}
  78144. _
  78145. T{
  78146. \fBzfs\fP
  78147. T} T{
  78148. T}
  78149. _
  78150. .TE
  78151. .SS salt.grains.junos
  78152. .sp
  78153. Grains for junos.
  78154. NOTE this is a little complicated\-\-junos can only be accessed
  78155. via salt\-proxy\-minion.Thus, some grains make sense to get them
  78156. from the minion (PYTHONPATH), but others don\(aqt (ip_interfaces)
  78157. .INDENT 0.0
  78158. .TP
  78159. .B salt.grains.junos.defaults()
  78160. .UNINDENT
  78161. .INDENT 0.0
  78162. .TP
  78163. .B salt.grains.junos.facts(proxy=None)
  78164. .UNINDENT
  78165. .INDENT 0.0
  78166. .TP
  78167. .B salt.grains.junos.os_family()
  78168. .UNINDENT
  78169. .SS salt.grains.opts
  78170. .sp
  78171. Simple grain to merge the opts into the grains directly if the grain_opts
  78172. configuration value is set
  78173. .INDENT 0.0
  78174. .TP
  78175. .B salt.grains.opts.opts()
  78176. Return the minion configuration settings
  78177. .UNINDENT
  78178. .SS salt.grains.philips_hue
  78179. .sp
  78180. Static grains for the Philips HUE lamps
  78181. .sp
  78182. New in version 2015.8.3.
  78183. .INDENT 0.0
  78184. .TP
  78185. .B salt.grains.philips_hue.kernel()
  78186. .UNINDENT
  78187. .INDENT 0.0
  78188. .TP
  78189. .B salt.grains.philips_hue.os()
  78190. .UNINDENT
  78191. .INDENT 0.0
  78192. .TP
  78193. .B salt.grains.philips_hue.os_family()
  78194. .UNINDENT
  78195. .INDENT 0.0
  78196. .TP
  78197. .B salt.grains.philips_hue.product()
  78198. .UNINDENT
  78199. .INDENT 0.0
  78200. .TP
  78201. .B salt.grains.philips_hue.vendor()
  78202. .UNINDENT
  78203. .SS execution modules
  78204. .INDENT 0.0
  78205. .INDENT 3.5
  78206. .IP "Virtual modules"
  78207. .SS salt.modules.group
  78208. .sp
  78209. \fBgroup\fP is a virtual module that is fulfilled by one of the following
  78210. modules:
  78211. .TS
  78212. center;
  78213. |l|l|.
  78214. _
  78215. T{
  78216. Execution Module
  78217. T} T{
  78218. Used for
  78219. T}
  78220. _
  78221. T{
  78222. \fBgroupadd\fP
  78223. T} T{
  78224. Linux, NetBSD, and OpenBSD systems using
  78225. \fBgroupadd(8)\fP, \fBgroupdel(8)\fP, and
  78226. \fBgroupmod(8)\fP
  78227. T}
  78228. _
  78229. T{
  78230. \fBpw_group\fP
  78231. T} T{
  78232. FreeBSD\-based OSes using \fBpw(8)\fP
  78233. T}
  78234. _
  78235. T{
  78236. \fBsolaris_group\fP
  78237. T} T{
  78238. Solaris\-based OSes using
  78239. \fBgroupadd(1M)\fP, \fBgroupdel(1M)\fP, and
  78240. \fBgroupmod(1M)\fP
  78241. T}
  78242. _
  78243. T{
  78244. \fBwin_groupadd\fP
  78245. T} T{
  78246. Windows
  78247. T}
  78248. _
  78249. .TE
  78250. .SS salt.modules.kernelpkg
  78251. .sp
  78252. \fBkernelpkg\fP is a virtual module that is fulfilled by one of the following modules:
  78253. .TS
  78254. center;
  78255. |l|l|.
  78256. _
  78257. T{
  78258. Execution Module
  78259. T} T{
  78260. Used for
  78261. T}
  78262. _
  78263. T{
  78264. \fBkernelpkg_linux_apt\fP
  78265. T} T{
  78266. Debian/Ubuntu\-based distros which use
  78267. \fBapt\-get\fP for package management
  78268. T}
  78269. _
  78270. T{
  78271. \fBkernelpkg_linux_yum\fP
  78272. T} T{
  78273. RedHat\-based distros and derivatives
  78274. using \fByum\fP or \fBdnf\fP
  78275. T}
  78276. _
  78277. .TE
  78278. .SS salt.modules.pkg
  78279. .sp
  78280. \fBpkg\fP is a virtual module that is fulfilled by one of the following modules:
  78281. .TS
  78282. center;
  78283. |l|l|.
  78284. _
  78285. T{
  78286. Execution Module
  78287. T} T{
  78288. Used for
  78289. T}
  78290. _
  78291. T{
  78292. \fBaixpkg\fP
  78293. T} T{
  78294. AIX OS using \fBinstallp\fP and \fBrpm\fP
  78295. T}
  78296. _
  78297. T{
  78298. \fBaptpkg\fP
  78299. T} T{
  78300. Debian/Ubuntu\-based distros which use
  78301. \fBapt\-get(8)\fP for package management
  78302. T}
  78303. _
  78304. T{
  78305. \fBmac_brew_pkg\fP
  78306. T} T{
  78307. Mac OS software management using
  78308. \fI\%Homebrew\fP
  78309. T}
  78310. _
  78311. T{
  78312. \fBebuildpkg\fP
  78313. T} T{
  78314. Gentoo\-based systems (utilizes the
  78315. \fBportage\fP python module as well as
  78316. \fBemerge(1)\fP)
  78317. T}
  78318. _
  78319. T{
  78320. \fBfreebsdpkg\fP
  78321. T} T{
  78322. FreeBSD\-based OSes using \fBpkg_add(1)\fP
  78323. T}
  78324. _
  78325. T{
  78326. \fBopenbsdpkg\fP
  78327. T} T{
  78328. OpenBSD\-based OSes using \fBpkg_add(1)\fP
  78329. T}
  78330. _
  78331. T{
  78332. \fBpacmanpkg\fP
  78333. T} T{
  78334. Arch Linux\-based distros using
  78335. \fBpacman(8)\fP
  78336. T}
  78337. _
  78338. T{
  78339. \fBpkgin\fP
  78340. T} T{
  78341. NetBSD\-based OSes using \fBpkgin(1)\fP
  78342. T}
  78343. _
  78344. T{
  78345. \fBpkgng\fP
  78346. T} T{
  78347. FreeBSD\-based OSes using \fBpkg(8)\fP
  78348. T}
  78349. _
  78350. T{
  78351. \fBpkgutil\fP
  78352. T} T{
  78353. Solaris\-based OSes using \fI\%OpenCSW\fP\(aqs
  78354. \fBpkgutil(1)\fP
  78355. T}
  78356. _
  78357. T{
  78358. \fBsolarispkg\fP
  78359. T} T{
  78360. Solaris\-based OSes using \fBpkgadd(1M)\fP
  78361. T}
  78362. _
  78363. T{
  78364. \fBsolarisipspkg\fP
  78365. T} T{
  78366. Solaris\-based OSes using IPS \fBpkg(1)\fP
  78367. T}
  78368. _
  78369. T{
  78370. \fBwin_pkg\fP
  78371. T} T{
  78372. Salt\(aqs Windows Package Manager
  78373. T}
  78374. _
  78375. T{
  78376. \fByumpkg\fP
  78377. T} T{
  78378. RedHat\-based distros and derivatives
  78379. using \fByum(8)\fP or \fBdnf(8)\fP
  78380. T}
  78381. _
  78382. T{
  78383. \fBzypperpkg\fP
  78384. T} T{
  78385. SUSE\-based distros using \fBzypper(8)\fP
  78386. T}
  78387. _
  78388. .TE
  78389. .SS salt.modules.service
  78390. .sp
  78391. \fBservice\fP is a virtual module that is fulfilled by one of the following
  78392. modules:
  78393. .TS
  78394. center;
  78395. |l|l|.
  78396. _
  78397. T{
  78398. Execution Module
  78399. T} T{
  78400. Used for
  78401. T}
  78402. _
  78403. T{
  78404. \fBdebian_service\fP
  78405. T} T{
  78406. Debian Wheezy and earlier
  78407. T}
  78408. _
  78409. T{
  78410. \fBfreebsdservice\fP
  78411. T} T{
  78412. FreeBSD\-based OSes using \fBservice(8)\fP
  78413. T}
  78414. _
  78415. T{
  78416. \fBgentoo_service\fP
  78417. T} T{
  78418. Gentoo Linux using \fBsysvinit\fP and
  78419. \fBrc\-update(8)\fP
  78420. T}
  78421. _
  78422. T{
  78423. \fBmac_service\fP
  78424. T} T{
  78425. Mac OS hosts using \fBlaunchctl(1)\fP
  78426. T}
  78427. _
  78428. T{
  78429. \fBnetbsdservice\fP
  78430. T} T{
  78431. NetBSD\-based OSes
  78432. T}
  78433. _
  78434. T{
  78435. \fBopenbsdservice\fP
  78436. T} T{
  78437. OpenBSD\-based OSes
  78438. T}
  78439. _
  78440. T{
  78441. \fBrh_service\fP
  78442. T} T{
  78443. RedHat\-based distros and derivatives
  78444. using \fBservice(8)\fP and
  78445. \fBchkconfig(8)\fP\&. Supports both pure
  78446. sysvinit and mixed sysvinit/upstart
  78447. systems.
  78448. T}
  78449. _
  78450. T{
  78451. \fI\%service\fP
  78452. T} T{
  78453. Fallback which simply wraps sysvinit
  78454. scripts
  78455. T}
  78456. _
  78457. T{
  78458. \fBsmf_service\fP
  78459. T} T{
  78460. Solaris\-based OSes which use SMF
  78461. T}
  78462. _
  78463. T{
  78464. \fBsystemd_service\fP
  78465. T} T{
  78466. Linux distros which use systemd
  78467. T}
  78468. _
  78469. T{
  78470. \fBupstart_service\fP
  78471. T} T{
  78472. Ubuntu\-based distros using upstart
  78473. T}
  78474. _
  78475. T{
  78476. \fBwin_service\fP
  78477. T} T{
  78478. Windows
  78479. T}
  78480. _
  78481. .TE
  78482. .SS salt.modules.shadow
  78483. .sp
  78484. \fBshadow\fP is a virtual module that is fulfilled by one of the following
  78485. modules:
  78486. .TS
  78487. center;
  78488. |l|l|.
  78489. _
  78490. T{
  78491. Execution Module
  78492. T} T{
  78493. Used for
  78494. T}
  78495. _
  78496. T{
  78497. \fBaix_shadow\fP
  78498. T} T{
  78499. AIX
  78500. T}
  78501. _
  78502. T{
  78503. \fBlinux_shadow\fP
  78504. T} T{
  78505. Linux
  78506. T}
  78507. _
  78508. T{
  78509. \fBbsd_shadow\fP
  78510. T} T{
  78511. FreeBSD, OpenBSD, NetBSD
  78512. T}
  78513. _
  78514. T{
  78515. \fBsolaris_shadow\fP
  78516. T} T{
  78517. Solaris\-based OSes
  78518. T}
  78519. _
  78520. T{
  78521. \fBwin_shadow\fP
  78522. T} T{
  78523. Windows
  78524. T}
  78525. _
  78526. .TE
  78527. .SS salt.modules.sysctl
  78528. .sp
  78529. \fBsysctl\fP is a virtual module that is fulfilled by one of the following modules:
  78530. .TS
  78531. center;
  78532. |l|l|.
  78533. _
  78534. T{
  78535. Execution Module
  78536. T} T{
  78537. Used for
  78538. T}
  78539. _
  78540. T{
  78541. \fBfreebsd_sysctl\fP
  78542. T} T{
  78543. FreeBSD
  78544. T}
  78545. _
  78546. T{
  78547. \fBlinux_sysctl\fP
  78548. T} T{
  78549. Linux
  78550. T}
  78551. _
  78552. T{
  78553. \fBmac_sysctl\fP
  78554. T} T{
  78555. macOS
  78556. T}
  78557. _
  78558. T{
  78559. \fBnetbsd_sysctl\fP
  78560. T} T{
  78561. NetBSD
  78562. T}
  78563. _
  78564. T{
  78565. \fBopenbsd_sysctl\fP
  78566. T} T{
  78567. OpenBSD
  78568. T}
  78569. _
  78570. .TE
  78571. .SS salt.modules.user
  78572. .sp
  78573. \fBuser\fP is a virtual module that is fulfilled by one of the following modules:
  78574. .TS
  78575. center;
  78576. |l|l|.
  78577. _
  78578. T{
  78579. Execution Module
  78580. T} T{
  78581. Used for
  78582. T}
  78583. _
  78584. T{
  78585. \fBuseradd\fP
  78586. T} T{
  78587. Linux, NetBSD, and OpenBSD systems using
  78588. \fBuseradd(8)\fP, \fBuserdel(8)\fP, and
  78589. \fBusermod(8)\fP
  78590. T}
  78591. _
  78592. T{
  78593. \fBpw_user\fP
  78594. T} T{
  78595. FreeBSD\-based OSes using \fBpw(8)\fP
  78596. T}
  78597. _
  78598. T{
  78599. \fBsolaris_user\fP
  78600. T} T{
  78601. Solaris\-based OSes using
  78602. \fBuseradd(1M)\fP, \fBuserdel(1M)\fP, and
  78603. \fBusermod(1M)\fP
  78604. T}
  78605. _
  78606. T{
  78607. \fBmac_user\fP
  78608. T} T{
  78609. MacOS
  78610. T}
  78611. _
  78612. T{
  78613. \fBwin_useradd\fP
  78614. T} T{
  78615. Windows
  78616. T}
  78617. _
  78618. .TE
  78619. .UNINDENT
  78620. .UNINDENT
  78621. .TS
  78622. center;
  78623. |l|l|.
  78624. _
  78625. T{
  78626. \fBacme\fP
  78627. T} T{
  78628. T}
  78629. _
  78630. T{
  78631. \fBaix_group\fP
  78632. T} T{
  78633. Manage groups on Solaris
  78634. T}
  78635. _
  78636. T{
  78637. \fBaix_shadow\fP
  78638. T} T{
  78639. Manage account locks on AIX systems
  78640. T}
  78641. _
  78642. T{
  78643. \fBaixpkg\fP
  78644. T} T{
  78645. T}
  78646. _
  78647. T{
  78648. \fBaliases\fP
  78649. T} T{
  78650. T}
  78651. _
  78652. T{
  78653. \fBalternatives\fP
  78654. T} T{
  78655. T}
  78656. _
  78657. T{
  78658. \fBansiblegate\fP
  78659. T} T{
  78660. T}
  78661. _
  78662. T{
  78663. \fBapache\fP
  78664. T} T{
  78665. T}
  78666. _
  78667. T{
  78668. \fBapcups\fP
  78669. T} T{
  78670. T}
  78671. _
  78672. T{
  78673. \fBapf\fP
  78674. T} T{
  78675. T}
  78676. _
  78677. T{
  78678. \fBapkpkg\fP
  78679. T} T{
  78680. T}
  78681. _
  78682. T{
  78683. \fBaptly\fP
  78684. T} T{
  78685. T}
  78686. _
  78687. T{
  78688. \fBaptpkg\fP
  78689. T} T{
  78690. T}
  78691. _
  78692. T{
  78693. \fBarchive\fP
  78694. T} T{
  78695. T}
  78696. _
  78697. T{
  78698. \fBarista_pyeapi\fP
  78699. T} T{
  78700. T}
  78701. _
  78702. T{
  78703. \fBartifactory\fP
  78704. T} T{
  78705. T}
  78706. _
  78707. T{
  78708. \fBat\fP
  78709. T} T{
  78710. T}
  78711. _
  78712. T{
  78713. \fBat_solaris\fP
  78714. T} T{
  78715. T}
  78716. _
  78717. T{
  78718. \fBaugeas_cfg\fP
  78719. T} T{
  78720. T}
  78721. _
  78722. T{
  78723. \fBaws_sqs\fP
  78724. T} T{
  78725. T}
  78726. _
  78727. T{
  78728. \fBazurearm_compute\fP
  78729. T} T{
  78730. Azure (ARM) Compute Execution Module
  78731. T}
  78732. _
  78733. T{
  78734. \fBazurearm_dns\fP
  78735. T} T{
  78736. Azure (ARM) DNS Execution Module
  78737. T}
  78738. _
  78739. T{
  78740. \fBazurearm_network\fP
  78741. T} T{
  78742. Azure (ARM) Network Execution Module
  78743. T}
  78744. _
  78745. T{
  78746. \fBazurearm_resource\fP
  78747. T} T{
  78748. T}
  78749. _
  78750. T{
  78751. \fBbamboohr\fP
  78752. T} T{
  78753. T}
  78754. _
  78755. T{
  78756. \fBbaredoc\fP
  78757. T} T{
  78758. T}
  78759. _
  78760. T{
  78761. \fBbcache\fP
  78762. T} T{
  78763. T}
  78764. _
  78765. T{
  78766. \fBbeacons\fP
  78767. T} T{
  78768. T}
  78769. _
  78770. T{
  78771. \fBbigip\fP
  78772. T} T{
  78773. T}
  78774. _
  78775. T{
  78776. \fBbluez_bluetooth\fP
  78777. T} T{
  78778. T}
  78779. _
  78780. T{
  78781. \fBboto3_elasticache\fP
  78782. T} T{
  78783. T}
  78784. _
  78785. T{
  78786. \fBboto3_elasticsearch\fP
  78787. T} T{
  78788. T}
  78789. _
  78790. T{
  78791. \fBboto3_route53\fP
  78792. T} T{
  78793. T}
  78794. _
  78795. T{
  78796. \fBboto3_sns\fP
  78797. T} T{
  78798. Connection module for Amazon SNS
  78799. T}
  78800. _
  78801. T{
  78802. \fBboto_apigateway\fP
  78803. T} T{
  78804. T}
  78805. _
  78806. T{
  78807. \fBboto_asg\fP
  78808. T} T{
  78809. T}
  78810. _
  78811. T{
  78812. \fBboto_cfn\fP
  78813. T} T{
  78814. Connection module for Amazon Cloud Formation
  78815. T}
  78816. _
  78817. T{
  78818. \fBboto_cloudfront\fP
  78819. T} T{
  78820. T}
  78821. _
  78822. T{
  78823. \fBboto_cloudtrail\fP
  78824. T} T{
  78825. T}
  78826. _
  78827. T{
  78828. \fBboto_cloudwatch\fP
  78829. T} T{
  78830. T}
  78831. _
  78832. T{
  78833. \fBboto_cloudwatch_event\fP
  78834. T} T{
  78835. T}
  78836. _
  78837. T{
  78838. \fBboto_cognitoidentity\fP
  78839. T} T{
  78840. T}
  78841. _
  78842. T{
  78843. \fBboto_datapipeline\fP
  78844. T} T{
  78845. Connection module for Amazon Data Pipeline
  78846. T}
  78847. _
  78848. T{
  78849. \fBboto_dynamodb\fP
  78850. T} T{
  78851. Connection module for Amazon DynamoDB
  78852. T}
  78853. _
  78854. T{
  78855. \fBboto_ec2\fP
  78856. T} T{
  78857. T}
  78858. _
  78859. T{
  78860. \fBboto_efs\fP
  78861. T} T{
  78862. Connection module for Amazon EFS
  78863. T}
  78864. _
  78865. T{
  78866. \fBboto_elasticache\fP
  78867. T} T{
  78868. T}
  78869. _
  78870. T{
  78871. \fBboto_elasticsearch_domain\fP
  78872. T} T{
  78873. T}
  78874. _
  78875. T{
  78876. \fBboto_elb\fP
  78877. T} T{
  78878. T}
  78879. _
  78880. T{
  78881. \fBboto_elbv2\fP
  78882. T} T{
  78883. Connection module for Amazon ALB
  78884. T}
  78885. _
  78886. T{
  78887. \fBboto_iam\fP
  78888. T} T{
  78889. T}
  78890. _
  78891. T{
  78892. \fBboto_iot\fP
  78893. T} T{
  78894. T}
  78895. _
  78896. T{
  78897. \fBboto_kinesis\fP
  78898. T} T{
  78899. Connection module for Amazon Kinesis
  78900. T}
  78901. _
  78902. T{
  78903. \fBboto_kms\fP
  78904. T} T{
  78905. T}
  78906. _
  78907. T{
  78908. \fBboto_lambda\fP
  78909. T} T{
  78910. T}
  78911. _
  78912. T{
  78913. \fBboto_rds\fP
  78914. T} T{
  78915. T}
  78916. _
  78917. T{
  78918. \fBboto_route53\fP
  78919. T} T{
  78920. T}
  78921. _
  78922. T{
  78923. \fBboto_s3\fP
  78924. T} T{
  78925. Connection module for Amazon S3 using boto3
  78926. T}
  78927. _
  78928. T{
  78929. \fBboto_s3_bucket\fP
  78930. T} T{
  78931. T}
  78932. _
  78933. T{
  78934. \fBboto_secgroup\fP
  78935. T} T{
  78936. T}
  78937. _
  78938. T{
  78939. \fBboto_sns\fP
  78940. T} T{
  78941. Connection module for Amazon SNS
  78942. T}
  78943. _
  78944. T{
  78945. \fBboto_sqs\fP
  78946. T} T{
  78947. T}
  78948. _
  78949. T{
  78950. \fBboto_ssm\fP
  78951. T} T{
  78952. T}
  78953. _
  78954. T{
  78955. \fBboto_vpc\fP
  78956. T} T{
  78957. T}
  78958. _
  78959. T{
  78960. \fBbower\fP
  78961. T} T{
  78962. T}
  78963. _
  78964. T{
  78965. \fBbridge\fP
  78966. T} T{
  78967. T}
  78968. _
  78969. T{
  78970. \fBbsd_shadow\fP
  78971. T} T{
  78972. T}
  78973. _
  78974. T{
  78975. \fBbtrfs\fP
  78976. T} T{
  78977. T}
  78978. _
  78979. T{
  78980. \fBcabal\fP
  78981. T} T{
  78982. T}
  78983. _
  78984. T{
  78985. \fBcapirca_acl\fP
  78986. T} T{
  78987. T}
  78988. _
  78989. T{
  78990. \fBcassandra_cql\fP
  78991. T} T{
  78992. T}
  78993. _
  78994. T{
  78995. \fBcassandra_mod\fP
  78996. T} T{
  78997. T}
  78998. _
  78999. T{
  79000. \fBcelery\fP
  79001. T} T{
  79002. Support for scheduling celery tasks.
  79003. T}
  79004. _
  79005. T{
  79006. \fBceph\fP
  79007. T} T{
  79008. Module to provide ceph control with salt.
  79009. T}
  79010. _
  79011. T{
  79012. \fBchassis\fP
  79013. T} T{
  79014. T}
  79015. _
  79016. T{
  79017. \fBchef\fP
  79018. T} T{
  79019. T}
  79020. _
  79021. T{
  79022. \fBchocolatey\fP
  79023. T} T{
  79024. T}
  79025. _
  79026. T{
  79027. \fBchronos\fP
  79028. T} T{
  79029. T}
  79030. _
  79031. T{
  79032. \fBchroot\fP
  79033. T} T{
  79034. T}
  79035. _
  79036. T{
  79037. \fBcimc\fP
  79038. T} T{
  79039. T}
  79040. _
  79041. T{
  79042. \fBciscoconfparse_mod\fP
  79043. T} T{
  79044. Execution module for \fI\%ciscoconfparse\fP
  79045. T}
  79046. _
  79047. T{
  79048. \fBcisconso\fP
  79049. T} T{
  79050. T}
  79051. _
  79052. T{
  79053. \fBcloud\fP
  79054. T} T{
  79055. T}
  79056. _
  79057. T{
  79058. \fBcmdmod\fP
  79059. T} T{
  79060. T}
  79061. _
  79062. T{
  79063. \fBcomposer\fP
  79064. T} T{
  79065. T}
  79066. _
  79067. T{
  79068. \fBconfig\fP
  79069. T} T{
  79070. T}
  79071. _
  79072. T{
  79073. \fBconsul\fP
  79074. T} T{
  79075. T}
  79076. _
  79077. T{
  79078. \fBcontainer_resource\fP
  79079. T} T{
  79080. T}
  79081. _
  79082. T{
  79083. \fBcp\fP
  79084. T} T{
  79085. T}
  79086. _
  79087. T{
  79088. \fBcpan\fP
  79089. T} T{
  79090. T}
  79091. _
  79092. T{
  79093. \fBcron\fP
  79094. T} T{
  79095. T}
  79096. _
  79097. T{
  79098. \fBcryptdev\fP
  79099. T} T{
  79100. T}
  79101. _
  79102. T{
  79103. \fBcsf\fP
  79104. T} T{
  79105. T}
  79106. _
  79107. T{
  79108. \fBcyg\fP
  79109. T} T{
  79110. T}
  79111. _
  79112. T{
  79113. \fBdaemontools\fP
  79114. T} T{
  79115. T}
  79116. _
  79117. T{
  79118. \fBdata\fP
  79119. T} T{
  79120. T}
  79121. _
  79122. T{
  79123. \fBdatadog_api\fP
  79124. T} T{
  79125. An execution module that interacts with the Datadog API
  79126. T}
  79127. _
  79128. T{
  79129. \fBddns\fP
  79130. T} T{
  79131. T}
  79132. _
  79133. T{
  79134. \fBdeb_apache\fP
  79135. T} T{
  79136. T}
  79137. _
  79138. T{
  79139. \fBdeb_postgres\fP
  79140. T} T{
  79141. T}
  79142. _
  79143. T{
  79144. \fBdebconfmod\fP
  79145. T} T{
  79146. T}
  79147. _
  79148. T{
  79149. \fBdebian_ip\fP
  79150. T} T{
  79151. T}
  79152. _
  79153. T{
  79154. \fBdebian_service\fP
  79155. T} T{
  79156. T}
  79157. _
  79158. T{
  79159. \fBdebuild_pkgbuild\fP
  79160. T} T{
  79161. T}
  79162. _
  79163. T{
  79164. \fBdefaults\fP
  79165. T} T{
  79166. T}
  79167. _
  79168. T{
  79169. \fBdevinfo\fP
  79170. T} T{
  79171. .INDENT 0.0
  79172. .TP
  79173. .B maintainer
  79174. Alberto Planas <\fI\%aplanas@suse.com\fP>
  79175. .UNINDENT
  79176. T}
  79177. _
  79178. T{
  79179. \fBdevmap\fP
  79180. T} T{
  79181. Device\-Mapper module
  79182. T}
  79183. _
  79184. T{
  79185. \fBdig\fP
  79186. T} T{
  79187. T}
  79188. _
  79189. T{
  79190. \fBdisk\fP
  79191. T} T{
  79192. T}
  79193. _
  79194. T{
  79195. \fBdjangomod\fP
  79196. T} T{
  79197. T}
  79198. _
  79199. T{
  79200. \fBdnsmasq\fP
  79201. T} T{
  79202. T}
  79203. _
  79204. T{
  79205. \fBdnsutil\fP
  79206. T} T{
  79207. T}
  79208. _
  79209. T{
  79210. \fBdockercompose\fP
  79211. T} T{
  79212. T}
  79213. _
  79214. T{
  79215. \fBdockermod\fP
  79216. T} T{
  79217. T}
  79218. _
  79219. T{
  79220. \fBdpkg_lowpkg\fP
  79221. T} T{
  79222. T}
  79223. _
  79224. T{
  79225. \fBdrac\fP
  79226. T} T{
  79227. T}
  79228. _
  79229. T{
  79230. \fBdracr\fP
  79231. T} T{
  79232. T}
  79233. _
  79234. T{
  79235. \fBdrbd\fP
  79236. T} T{
  79237. DRBD administration module
  79238. T}
  79239. _
  79240. T{
  79241. \fBdummyproxy_pkg\fP
  79242. T} T{
  79243. T}
  79244. _
  79245. T{
  79246. \fBdummyproxy_service\fP
  79247. T} T{
  79248. T}
  79249. _
  79250. T{
  79251. \fBebuildpkg\fP
  79252. T} T{
  79253. T}
  79254. _
  79255. T{
  79256. \fBeix\fP
  79257. T} T{
  79258. T}
  79259. _
  79260. T{
  79261. \fBelasticsearch\fP
  79262. T} T{
  79263. Elasticsearch \- A distributed RESTful search and analytics server
  79264. T}
  79265. _
  79266. T{
  79267. \fBenviron\fP
  79268. T} T{
  79269. T}
  79270. _
  79271. T{
  79272. \fBeselect\fP
  79273. T} T{
  79274. T}
  79275. _
  79276. T{
  79277. \fBesxcluster\fP
  79278. T} T{
  79279. T}
  79280. _
  79281. T{
  79282. \fBesxdatacenter\fP
  79283. T} T{
  79284. T}
  79285. _
  79286. T{
  79287. \fBesxi\fP
  79288. T} T{
  79289. T}
  79290. _
  79291. T{
  79292. \fBesxvm\fP
  79293. T} T{
  79294. T}
  79295. _
  79296. T{
  79297. \fBetcd_mod\fP
  79298. T} T{
  79299. Execution module to work with etcd
  79300. T}
  79301. _
  79302. T{
  79303. \fBethtool\fP
  79304. T} T{
  79305. Module for running ethtool command
  79306. T}
  79307. _
  79308. T{
  79309. \fBevent\fP
  79310. T} T{
  79311. T}
  79312. _
  79313. T{
  79314. \fBextfs\fP
  79315. T} T{
  79316. T}
  79317. _
  79318. T{
  79319. \fBfile\fP
  79320. T} T{
  79321. T}
  79322. _
  79323. T{
  79324. \fBfirewalld\fP
  79325. T} T{
  79326. T}
  79327. _
  79328. T{
  79329. \fBfreebsd_sysctl\fP
  79330. T} T{
  79331. T}
  79332. _
  79333. T{
  79334. \fBfreebsd_update\fP
  79335. T} T{
  79336. T}
  79337. _
  79338. T{
  79339. \fBfreebsdjail\fP
  79340. T} T{
  79341. T}
  79342. _
  79343. T{
  79344. \fBfreebsdkmod\fP
  79345. T} T{
  79346. T}
  79347. _
  79348. T{
  79349. \fBfreebsdpkg\fP
  79350. T} T{
  79351. T}
  79352. _
  79353. T{
  79354. \fBfreebsdports\fP
  79355. T} T{
  79356. T}
  79357. _
  79358. T{
  79359. \fBfreebsdservice\fP
  79360. T} T{
  79361. T}
  79362. _
  79363. T{
  79364. \fBfreezer\fP
  79365. T} T{
  79366. T}
  79367. _
  79368. T{
  79369. \fBgcp_addon\fP
  79370. T} T{
  79371. A route is a rule that specifies how certain packets should be handled by the virtual network.
  79372. T}
  79373. _
  79374. T{
  79375. \fBgem\fP
  79376. T} T{
  79377. T}
  79378. _
  79379. T{
  79380. \fBgenesis\fP
  79381. T} T{
  79382. T}
  79383. _
  79384. T{
  79385. \fBgentoo_service\fP
  79386. T} T{
  79387. T}
  79388. _
  79389. T{
  79390. \fBgentoolkitmod\fP
  79391. T} T{
  79392. Support for Gentoolkit
  79393. T}
  79394. _
  79395. T{
  79396. \fBgit\fP
  79397. T} T{
  79398. T}
  79399. _
  79400. T{
  79401. \fBgithub\fP
  79402. T} T{
  79403. T}
  79404. _
  79405. T{
  79406. \fBglance\fP
  79407. T} T{
  79408. Module for handling openstack glance calls.
  79409. T}
  79410. _
  79411. T{
  79412. \fBglanceng\fP
  79413. T} T{
  79414. Glance module for interacting with OpenStack Glance
  79415. T}
  79416. _
  79417. T{
  79418. \fBglassfish\fP
  79419. T} T{
  79420. T}
  79421. _
  79422. T{
  79423. \fBglusterfs\fP
  79424. T} T{
  79425. T}
  79426. _
  79427. T{
  79428. \fBgnomedesktop\fP
  79429. T} T{
  79430. T}
  79431. _
  79432. T{
  79433. \fBgoogle_chat\fP
  79434. T} T{
  79435. Module for sending messages to google chat.
  79436. T}
  79437. _
  79438. T{
  79439. \fBgpg\fP
  79440. T} T{
  79441. T}
  79442. _
  79443. T{
  79444. \fBgrafana4\fP
  79445. T} T{
  79446. Module for working with the Grafana v4 API
  79447. T}
  79448. _
  79449. T{
  79450. \fBgrains\fP
  79451. T} T{
  79452. T}
  79453. _
  79454. T{
  79455. \fBgroupadd\fP
  79456. T} T{
  79457. T}
  79458. _
  79459. T{
  79460. \fBgrub_legacy\fP
  79461. T} T{
  79462. T}
  79463. _
  79464. T{
  79465. \fBguestfs\fP
  79466. T} T{
  79467. T}
  79468. _
  79469. T{
  79470. \fBhadoop\fP
  79471. T} T{
  79472. T}
  79473. _
  79474. T{
  79475. \fBhaproxyconn\fP
  79476. T} T{
  79477. Support for haproxy
  79478. T}
  79479. _
  79480. T{
  79481. \fBhashutil\fP
  79482. T} T{
  79483. T}
  79484. _
  79485. T{
  79486. \fBheat\fP
  79487. T} T{
  79488. T}
  79489. _
  79490. T{
  79491. \fBhelm\fP
  79492. T} T{
  79493. T}
  79494. _
  79495. T{
  79496. \fBhg\fP
  79497. T} T{
  79498. T}
  79499. _
  79500. T{
  79501. \fBhighstate_doc\fP
  79502. T} T{
  79503. T}
  79504. _
  79505. T{
  79506. \fBhosts\fP
  79507. T} T{
  79508. T}
  79509. _
  79510. T{
  79511. \fI\%http\fP
  79512. T} T{
  79513. T}
  79514. _
  79515. T{
  79516. \fBicinga2\fP
  79517. T} T{
  79518. T}
  79519. _
  79520. T{
  79521. \fBifttt\fP
  79522. T} T{
  79523. T}
  79524. _
  79525. T{
  79526. \fBilo\fP
  79527. T} T{
  79528. T}
  79529. _
  79530. T{
  79531. \fBincron\fP
  79532. T} T{
  79533. T}
  79534. _
  79535. T{
  79536. \fBinfluxdb08mod\fP
  79537. T} T{
  79538. InfluxDB \- A distributed time series database
  79539. T}
  79540. _
  79541. T{
  79542. \fBinfluxdbmod\fP
  79543. T} T{
  79544. T}
  79545. _
  79546. T{
  79547. \fBinfoblox\fP
  79548. T} T{
  79549. This module have been tested on infoblox API v1.2.1, other versions of the API are likly workable.
  79550. T}
  79551. _
  79552. T{
  79553. \fBini_manage\fP
  79554. T} T{
  79555. T}
  79556. _
  79557. T{
  79558. \fBinspectlib\fP
  79559. T} T{
  79560. T}
  79561. _
  79562. T{
  79563. \fBinspectlib.collector\fP
  79564. T} T{
  79565. T}
  79566. _
  79567. T{
  79568. \fBinspectlib.dbhandle\fP
  79569. T} T{
  79570. T}
  79571. _
  79572. T{
  79573. \fBinspectlib.entities\fP
  79574. T} T{
  79575. T}
  79576. _
  79577. T{
  79578. \fBinspectlib.exceptions\fP
  79579. T} T{
  79580. T}
  79581. _
  79582. T{
  79583. \fBinspectlib.fsdb\fP
  79584. T} T{
  79585. T}
  79586. _
  79587. T{
  79588. \fBinspectlib.kiwiproc\fP
  79589. T} T{
  79590. T}
  79591. _
  79592. T{
  79593. \fBinspectlib.query\fP
  79594. T} T{
  79595. T}
  79596. _
  79597. T{
  79598. \fBinspector\fP
  79599. T} T{
  79600. T}
  79601. _
  79602. T{
  79603. \fBintrospect\fP
  79604. T} T{
  79605. Functions to perform introspection on a minion, and return data in a format usable by Salt States
  79606. T}
  79607. _
  79608. T{
  79609. \fBiosconfig\fP
  79610. T} T{
  79611. T}
  79612. _
  79613. T{
  79614. \fBipmi\fP
  79615. T} T{
  79616. Support IPMI commands over LAN.
  79617. T}
  79618. _
  79619. T{
  79620. \fBipset\fP
  79621. T} T{
  79622. T}
  79623. _
  79624. T{
  79625. \fBiptables\fP
  79626. T} T{
  79627. T}
  79628. _
  79629. T{
  79630. \fBiwtools\fP
  79631. T} T{
  79632. T}
  79633. _
  79634. T{
  79635. \fBjboss7\fP
  79636. T} T{
  79637. T}
  79638. _
  79639. T{
  79640. \fBjboss7_cli\fP
  79641. T} T{
  79642. Module for low\-level interaction with JbossAS7 through CLI.
  79643. T}
  79644. _
  79645. T{
  79646. \fBjenkinsmod\fP
  79647. T} T{
  79648. T}
  79649. _
  79650. T{
  79651. \fBjinja\fP
  79652. T} T{
  79653. T}
  79654. _
  79655. T{
  79656. \fBjira_mod\fP
  79657. T} T{
  79658. T}
  79659. _
  79660. T{
  79661. \fBjunos\fP
  79662. T} T{
  79663. T}
  79664. _
  79665. T{
  79666. \fBk8s\fP
  79667. T} T{
  79668. T}
  79669. _
  79670. T{
  79671. \fBkapacitor\fP
  79672. T} T{
  79673. T}
  79674. _
  79675. T{
  79676. \fBkerberos\fP
  79677. T} T{
  79678. T}
  79679. _
  79680. T{
  79681. \fBkernelpkg_linux_apt\fP
  79682. T} T{
  79683. Manage Linux kernel packages on APT\-based systems
  79684. T}
  79685. _
  79686. T{
  79687. \fBkernelpkg_linux_yum\fP
  79688. T} T{
  79689. T}
  79690. _
  79691. T{
  79692. \fBkey\fP
  79693. T} T{
  79694. T}
  79695. _
  79696. T{
  79697. \fBkeyboard\fP
  79698. T} T{
  79699. T}
  79700. _
  79701. T{
  79702. \fBkeystone\fP
  79703. T} T{
  79704. T}
  79705. _
  79706. T{
  79707. \fBkeystoneng\fP
  79708. T} T{
  79709. Keystone module for interacting with OpenStack Keystone
  79710. T}
  79711. _
  79712. T{
  79713. \fBkeystore\fP
  79714. T} T{
  79715. Module to interact with keystores
  79716. T}
  79717. _
  79718. T{
  79719. \fBkmod\fP
  79720. T} T{
  79721. T}
  79722. _
  79723. T{
  79724. \fBkubeadm\fP
  79725. T} T{
  79726. T}
  79727. _
  79728. T{
  79729. \fBkubernetesmod\fP
  79730. T} T{
  79731. T}
  79732. _
  79733. T{
  79734. \fBlaunchctl_service\fP
  79735. T} T{
  79736. T}
  79737. _
  79738. T{
  79739. \fBlayman\fP
  79740. T} T{
  79741. T}
  79742. _
  79743. T{
  79744. \fBldap3\fP
  79745. T} T{
  79746. T}
  79747. _
  79748. T{
  79749. \fBldapmod\fP
  79750. T} T{
  79751. T}
  79752. _
  79753. T{
  79754. \fBlibcloud_compute\fP
  79755. T} T{
  79756. T}
  79757. _
  79758. T{
  79759. \fBlibcloud_dns\fP
  79760. T} T{
  79761. T}
  79762. _
  79763. T{
  79764. \fBlibcloud_loadbalancer\fP
  79765. T} T{
  79766. T}
  79767. _
  79768. T{
  79769. \fBlibcloud_storage\fP
  79770. T} T{
  79771. T}
  79772. _
  79773. T{
  79774. \fBlinux_acl\fP
  79775. T} T{
  79776. T}
  79777. _
  79778. T{
  79779. \fBlinux_ip\fP
  79780. T} T{
  79781. T}
  79782. _
  79783. T{
  79784. \fBlinux_lvm\fP
  79785. T} T{
  79786. T}
  79787. _
  79788. T{
  79789. \fBlinux_service\fP
  79790. T} T{
  79791. 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.
  79792. T}
  79793. _
  79794. T{
  79795. \fBlinux_shadow\fP
  79796. T} T{
  79797. T}
  79798. _
  79799. T{
  79800. \fBlinux_sysctl\fP
  79801. T} T{
  79802. T}
  79803. _
  79804. T{
  79805. \fBlocalemod\fP
  79806. T} T{
  79807. T}
  79808. _
  79809. T{
  79810. \fBlocate\fP
  79811. T} T{
  79812. T}
  79813. _
  79814. T{
  79815. \fBlogadm\fP
  79816. T} T{
  79817. T}
  79818. _
  79819. T{
  79820. \fBlogmod\fP
  79821. T} T{
  79822. On\-demand logging
  79823. T}
  79824. _
  79825. T{
  79826. \fBlogrotate\fP
  79827. T} T{
  79828. T}
  79829. _
  79830. T{
  79831. \fBlvs\fP
  79832. T} T{
  79833. T}
  79834. _
  79835. T{
  79836. \fBlxc\fP
  79837. T} T{
  79838. T}
  79839. _
  79840. T{
  79841. \fBlxd\fP
  79842. T} T{
  79843. T}
  79844. _
  79845. T{
  79846. \fBmac_assistive\fP
  79847. T} T{
  79848. T}
  79849. _
  79850. T{
  79851. \fBmac_brew_pkg\fP
  79852. T} T{
  79853. T}
  79854. _
  79855. T{
  79856. \fBmac_desktop\fP
  79857. T} T{
  79858. T}
  79859. _
  79860. T{
  79861. \fBmac_group\fP
  79862. T} T{
  79863. T}
  79864. _
  79865. T{
  79866. \fBmac_keychain\fP
  79867. T} T{
  79868. T}
  79869. _
  79870. T{
  79871. \fBmac_pkgutil\fP
  79872. T} T{
  79873. T}
  79874. _
  79875. T{
  79876. \fBmac_portspkg\fP
  79877. T} T{
  79878. T}
  79879. _
  79880. T{
  79881. \fBmac_power\fP
  79882. T} T{
  79883. T}
  79884. _
  79885. T{
  79886. \fBmac_service\fP
  79887. T} T{
  79888. T}
  79889. _
  79890. T{
  79891. \fBmac_shadow\fP
  79892. T} T{
  79893. T}
  79894. _
  79895. T{
  79896. \fBmac_softwareupdate\fP
  79897. T} T{
  79898. T}
  79899. _
  79900. T{
  79901. \fBmac_sysctl\fP
  79902. T} T{
  79903. T}
  79904. _
  79905. T{
  79906. \fBmac_system\fP
  79907. T} T{
  79908. T}
  79909. _
  79910. T{
  79911. \fBmac_timezone\fP
  79912. T} T{
  79913. T}
  79914. _
  79915. T{
  79916. \fBmac_user\fP
  79917. T} T{
  79918. T}
  79919. _
  79920. T{
  79921. \fBmac_xattr\fP
  79922. T} T{
  79923. T}
  79924. _
  79925. T{
  79926. \fBmacdefaults\fP
  79927. T} T{
  79928. T}
  79929. _
  79930. T{
  79931. \fBmacpackage\fP
  79932. T} T{
  79933. T}
  79934. _
  79935. T{
  79936. \fBmakeconf\fP
  79937. T} T{
  79938. T}
  79939. _
  79940. T{
  79941. \fBmandrill\fP
  79942. T} T{
  79943. T}
  79944. _
  79945. T{
  79946. \fBmarathon\fP
  79947. T} T{
  79948. T}
  79949. _
  79950. T{
  79951. \fBmatch\fP
  79952. T} T{
  79953. T}
  79954. _
  79955. T{
  79956. \fBmattermost\fP
  79957. T} T{
  79958. T}
  79959. _
  79960. T{
  79961. \fBmdadm_raid\fP
  79962. T} T{
  79963. T}
  79964. _
  79965. T{
  79966. \fBmdata\fP
  79967. T} T{
  79968. T}
  79969. _
  79970. T{
  79971. \fBmemcached\fP
  79972. T} T{
  79973. T}
  79974. _
  79975. T{
  79976. \fBmine\fP
  79977. T} T{
  79978. T}
  79979. _
  79980. T{
  79981. \fBminion\fP
  79982. T} T{
  79983. T}
  79984. _
  79985. T{
  79986. \fBmod_random\fP
  79987. T} T{
  79988. T}
  79989. _
  79990. T{
  79991. \fBmodjk\fP
  79992. T} T{
  79993. Control Modjk via the Apache Tomcat "Status" worker (\fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP)
  79994. T}
  79995. _
  79996. T{
  79997. \fBmongodb\fP
  79998. T} T{
  79999. T}
  80000. _
  80001. T{
  80002. \fBmonit\fP
  80003. T} T{
  80004. T}
  80005. _
  80006. T{
  80007. \fBmoosefs\fP
  80008. T} T{
  80009. T}
  80010. _
  80011. T{
  80012. \fBmount\fP
  80013. T} T{
  80014. T}
  80015. _
  80016. T{
  80017. \fBmssql\fP
  80018. T} T{
  80019. T}
  80020. _
  80021. T{
  80022. \fBmsteams\fP
  80023. T} T{
  80024. T}
  80025. _
  80026. T{
  80027. \fBmunin\fP
  80028. T} T{
  80029. T}
  80030. _
  80031. T{
  80032. \fBmysql\fP
  80033. T} T{
  80034. T}
  80035. _
  80036. T{
  80037. \fBnacl\fP
  80038. T} T{
  80039. T}
  80040. _
  80041. T{
  80042. \fBnagios\fP
  80043. T} T{
  80044. Run nagios plugins/checks from salt and get the return as data.
  80045. T}
  80046. _
  80047. T{
  80048. \fBnagios_rpc\fP
  80049. T} T{
  80050. T}
  80051. _
  80052. T{
  80053. \fBnamecheap_domains\fP
  80054. T} T{
  80055. Namecheap Domain Management
  80056. T}
  80057. _
  80058. T{
  80059. \fBnamecheap_domains_dns\fP
  80060. T} T{
  80061. Namecheap DNS Management
  80062. T}
  80063. _
  80064. T{
  80065. \fBnamecheap_domains_ns\fP
  80066. T} T{
  80067. Namecheap Nameserver Management
  80068. T}
  80069. _
  80070. T{
  80071. \fBnamecheap_ssl\fP
  80072. T} T{
  80073. T}
  80074. _
  80075. T{
  80076. \fBnamecheap_users\fP
  80077. T} T{
  80078. Namecheap User Management
  80079. T}
  80080. _
  80081. T{
  80082. \fBnapalm_bgp\fP
  80083. T} T{
  80084. T}
  80085. _
  80086. T{
  80087. \fBnapalm_formula\fP
  80088. T} T{
  80089. T}
  80090. _
  80091. T{
  80092. \fBnapalm_mod\fP
  80093. T} T{
  80094. T}
  80095. _
  80096. T{
  80097. \fBnapalm_netacl\fP
  80098. T} T{
  80099. T}
  80100. _
  80101. T{
  80102. \fBnapalm_network\fP
  80103. T} T{
  80104. T}
  80105. _
  80106. T{
  80107. \fBnapalm_ntp\fP
  80108. T} T{
  80109. T}
  80110. _
  80111. T{
  80112. \fBnapalm_probes\fP
  80113. T} T{
  80114. T}
  80115. _
  80116. T{
  80117. \fBnapalm_route\fP
  80118. T} T{
  80119. T}
  80120. _
  80121. T{
  80122. \fBnapalm_snmp\fP
  80123. T} T{
  80124. T}
  80125. _
  80126. T{
  80127. \fBnapalm_users\fP
  80128. T} T{
  80129. T}
  80130. _
  80131. T{
  80132. \fBnapalm_yang_mod\fP
  80133. T} T{
  80134. T}
  80135. _
  80136. T{
  80137. \fBnetaddress\fP
  80138. T} T{
  80139. Module for getting information about network addresses.
  80140. T}
  80141. _
  80142. T{
  80143. \fBnetbox\fP
  80144. T} T{
  80145. NetBox
  80146. T}
  80147. _
  80148. T{
  80149. \fBnetbsd_sysctl\fP
  80150. T} T{
  80151. T}
  80152. _
  80153. T{
  80154. \fBnetbsdservice\fP
  80155. T} T{
  80156. The service module for NetBSD
  80157. T}
  80158. _
  80159. T{
  80160. \fBnetmiko_mod\fP
  80161. T} T{
  80162. T}
  80163. _
  80164. T{
  80165. \fBnetscaler\fP
  80166. T} T{
  80167. T}
  80168. _
  80169. T{
  80170. \fBnetwork\fP
  80171. T} T{
  80172. T}
  80173. _
  80174. T{
  80175. \fBneutron\fP
  80176. T} T{
  80177. Module for handling OpenStack Neutron calls
  80178. T}
  80179. _
  80180. T{
  80181. \fBneutronng\fP
  80182. T} T{
  80183. Neutron module for interacting with OpenStack Neutron
  80184. T}
  80185. _
  80186. T{
  80187. \fBnexus\fP
  80188. T} T{
  80189. T}
  80190. _
  80191. T{
  80192. \fBnfs3\fP
  80193. T} T{
  80194. T}
  80195. _
  80196. T{
  80197. \fBnftables\fP
  80198. T} T{
  80199. T}
  80200. _
  80201. T{
  80202. \fBnginx\fP
  80203. T} T{
  80204. T}
  80205. _
  80206. T{
  80207. \fBnilrt_ip\fP
  80208. T} T{
  80209. T}
  80210. _
  80211. T{
  80212. \fBnix\fP
  80213. T} T{
  80214. T}
  80215. _
  80216. T{
  80217. \fBnova\fP
  80218. T} T{
  80219. T}
  80220. _
  80221. T{
  80222. \fBnpm\fP
  80223. T} T{
  80224. T}
  80225. _
  80226. T{
  80227. \fBnspawn\fP
  80228. T} T{
  80229. T}
  80230. _
  80231. T{
  80232. \fBnxos\fP
  80233. T} T{
  80234. T}
  80235. _
  80236. T{
  80237. \fBnxos_api\fP
  80238. T} T{
  80239. Execution module to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  80240. T}
  80241. _
  80242. T{
  80243. \fBnxos_upgrade\fP
  80244. T} T{
  80245. Execution module to upgrade Cisco NX\-OS Switches.
  80246. T}
  80247. _
  80248. T{
  80249. \fBomapi\fP
  80250. T} T{
  80251. T}
  80252. _
  80253. T{
  80254. \fBopenbsd_sysctl\fP
  80255. T} T{
  80256. T}
  80257. _
  80258. T{
  80259. \fBopenbsdpkg\fP
  80260. T} T{
  80261. T}
  80262. _
  80263. T{
  80264. \fBopenbsdrcctl_service\fP
  80265. T} T{
  80266. T}
  80267. _
  80268. T{
  80269. \fBopenbsdservice\fP
  80270. T} T{
  80271. T}
  80272. _
  80273. T{
  80274. \fBopenscap\fP
  80275. T} T{
  80276. Module for OpenSCAP Management
  80277. T}
  80278. _
  80279. T{
  80280. \fBopenstack_config\fP
  80281. T} T{
  80282. T}
  80283. _
  80284. T{
  80285. \fBopenstack_mng\fP
  80286. T} T{
  80287. T}
  80288. _
  80289. T{
  80290. \fBopenvswitch\fP
  80291. T} T{
  80292. T}
  80293. _
  80294. T{
  80295. \fBopkg\fP
  80296. T} T{
  80297. T}
  80298. _
  80299. T{
  80300. \fBopsgenie\fP
  80301. T} T{
  80302. T}
  80303. _
  80304. T{
  80305. \fBoracle\fP
  80306. T} T{
  80307. T}
  80308. _
  80309. T{
  80310. \fBosquery\fP
  80311. T} T{
  80312. T}
  80313. _
  80314. T{
  80315. \fBout\fP
  80316. T} T{
  80317. T}
  80318. _
  80319. T{
  80320. \fBpacmanpkg\fP
  80321. T} T{
  80322. T}
  80323. _
  80324. T{
  80325. \fBpagerduty\fP
  80326. T} T{
  80327. T}
  80328. _
  80329. T{
  80330. \fBpagerduty_util\fP
  80331. T} T{
  80332. T}
  80333. _
  80334. T{
  80335. \fBpam\fP
  80336. T} T{
  80337. T}
  80338. _
  80339. T{
  80340. \fBpanos\fP
  80341. T} T{
  80342. T}
  80343. _
  80344. T{
  80345. \fBparallels\fP
  80346. T} T{
  80347. T}
  80348. _
  80349. T{
  80350. \fBparted_partition\fP
  80351. T} T{
  80352. T}
  80353. _
  80354. T{
  80355. \fBpcs\fP
  80356. T} T{
  80357. T}
  80358. _
  80359. T{
  80360. \fBpdbedit\fP
  80361. T} T{
  80362. T}
  80363. _
  80364. T{
  80365. \fBpecl\fP
  80366. T} T{
  80367. T}
  80368. _
  80369. T{
  80370. \fBpeeringdb\fP
  80371. T} T{
  80372. T}
  80373. _
  80374. T{
  80375. \fBpf\fP
  80376. T} T{
  80377. T}
  80378. _
  80379. T{
  80380. \fBphilips_hue\fP
  80381. T} T{
  80382. Philips HUE lamps module for proxy.
  80383. T}
  80384. _
  80385. T{
  80386. \fBpillar\fP
  80387. T} T{
  80388. T}
  80389. _
  80390. T{
  80391. \fBpip\fP
  80392. T} T{
  80393. T}
  80394. _
  80395. T{
  80396. \fBpkg_resource\fP
  80397. T} T{
  80398. T}
  80399. _
  80400. T{
  80401. \fBpkgin\fP
  80402. T} T{
  80403. T}
  80404. _
  80405. T{
  80406. \fBpkgng\fP
  80407. T} T{
  80408. T}
  80409. _
  80410. T{
  80411. \fI\%pkgutil\fP
  80412. T} T{
  80413. Utilities to support packages.
  80414. T}
  80415. _
  80416. T{
  80417. \fBportage_config\fP
  80418. T} T{
  80419. T}
  80420. _
  80421. T{
  80422. \fBpostfix\fP
  80423. T} T{
  80424. T}
  80425. _
  80426. T{
  80427. \fBpostgres\fP
  80428. T} T{
  80429. T}
  80430. _
  80431. T{
  80432. \fBpoudriere\fP
  80433. T} T{
  80434. T}
  80435. _
  80436. T{
  80437. \fBpowerpath\fP
  80438. T} T{
  80439. powerpath support.
  80440. T}
  80441. _
  80442. T{
  80443. \fBproxy\fP
  80444. T} T{
  80445. T}
  80446. _
  80447. T{
  80448. \fBps\fP
  80449. T} T{
  80450. T}
  80451. _
  80452. T{
  80453. \fBpublish\fP
  80454. T} T{
  80455. T}
  80456. _
  80457. T{
  80458. \fBpuppet\fP
  80459. T} T{
  80460. T}
  80461. _
  80462. T{
  80463. \fBpurefa\fP
  80464. T} T{
  80465. Management of Pure Storage FlashArray
  80466. T}
  80467. _
  80468. T{
  80469. \fBpurefb\fP
  80470. T} T{
  80471. Management of Pure Storage FlashBlade
  80472. T}
  80473. _
  80474. T{
  80475. \fBpushbullet\fP
  80476. T} T{
  80477. Module for sending messages to Pushbullet (\fI\%https://www.pushbullet.com\fP)
  80478. T}
  80479. _
  80480. T{
  80481. \fBpushover_notify\fP
  80482. T} T{
  80483. Module for sending messages to Pushover (\fI\%https://www.pushover.net\fP)
  80484. T}
  80485. _
  80486. T{
  80487. \fBpw_group\fP
  80488. T} T{
  80489. T}
  80490. _
  80491. T{
  80492. \fBpw_user\fP
  80493. T} T{
  80494. T}
  80495. _
  80496. T{
  80497. \fBpyenv\fP
  80498. T} T{
  80499. Manage python installations with pyenv.
  80500. T}
  80501. _
  80502. T{
  80503. \fBqemu_img\fP
  80504. T} T{
  80505. T}
  80506. _
  80507. T{
  80508. \fBqemu_nbd\fP
  80509. T} T{
  80510. T}
  80511. _
  80512. T{
  80513. \fBquota\fP
  80514. T} T{
  80515. T}
  80516. _
  80517. T{
  80518. \fBrabbitmq\fP
  80519. T} T{
  80520. T}
  80521. _
  80522. T{
  80523. \fBrallydev\fP
  80524. T} T{
  80525. T}
  80526. _
  80527. T{
  80528. \fBrandom_org\fP
  80529. T} T{
  80530. T}
  80531. _
  80532. T{
  80533. \fBrbac_solaris\fP
  80534. T} T{
  80535. T}
  80536. _
  80537. T{
  80538. \fBrbenv\fP
  80539. T} T{
  80540. T}
  80541. _
  80542. T{
  80543. \fBrdp\fP
  80544. T} T{
  80545. T}
  80546. _
  80547. T{
  80548. \fBredismod\fP
  80549. T} T{
  80550. T}
  80551. _
  80552. T{
  80553. \fBreg\fP
  80554. T} T{
  80555. T}
  80556. _
  80557. T{
  80558. \fBrest_pkg\fP
  80559. T} T{
  80560. T}
  80561. _
  80562. T{
  80563. \fBrest_sample_utils\fP
  80564. T} T{
  80565. Utility functions for the rest_sample
  80566. T}
  80567. _
  80568. T{
  80569. \fBrest_service\fP
  80570. T} T{
  80571. T}
  80572. _
  80573. T{
  80574. \fBrestartcheck\fP
  80575. T} T{
  80576. T}
  80577. _
  80578. T{
  80579. \fBret\fP
  80580. T} T{
  80581. T}
  80582. _
  80583. T{
  80584. \fBrh_ip\fP
  80585. T} T{
  80586. T}
  80587. _
  80588. T{
  80589. \fBrh_service\fP
  80590. T} T{
  80591. T}
  80592. _
  80593. T{
  80594. \fBriak\fP
  80595. T} T{
  80596. T}
  80597. _
  80598. T{
  80599. \fBrpm_lowpkg\fP
  80600. T} T{
  80601. T}
  80602. _
  80603. T{
  80604. \fBrpmbuild_pkgbuild\fP
  80605. T} T{
  80606. T}
  80607. _
  80608. T{
  80609. \fBrsync\fP
  80610. T} T{
  80611. T}
  80612. _
  80613. T{
  80614. \fBrunit\fP
  80615. T} T{
  80616. T}
  80617. _
  80618. T{
  80619. \fBrvm\fP
  80620. T} T{
  80621. T}
  80622. _
  80623. T{
  80624. \fBs3\fP
  80625. T} T{
  80626. Connection module for Amazon S3
  80627. T}
  80628. _
  80629. T{
  80630. \fBs6\fP
  80631. T} T{
  80632. s6 service module
  80633. T}
  80634. _
  80635. T{
  80636. \fBsalt_proxy\fP
  80637. T} T{
  80638. T}
  80639. _
  80640. T{
  80641. \fBsalt_version\fP
  80642. T} T{
  80643. Access Salt\(aqs elemental release code\-names.
  80644. T}
  80645. _
  80646. T{
  80647. \fBsaltcheck\fP
  80648. T} T{
  80649. T}
  80650. _
  80651. T{
  80652. \fBsaltcloudmod\fP
  80653. T} T{
  80654. T}
  80655. _
  80656. T{
  80657. \fBsaltutil\fP
  80658. T} T{
  80659. T}
  80660. _
  80661. T{
  80662. \fBschedule\fP
  80663. T} T{
  80664. T}
  80665. _
  80666. T{
  80667. \fBscp_mod\fP
  80668. T} T{
  80669. SCP Module
  80670. T}
  80671. _
  80672. T{
  80673. \fBscsi\fP
  80674. T} T{
  80675. T}
  80676. _
  80677. T{
  80678. \fBsdb\fP
  80679. T} T{
  80680. T}
  80681. _
  80682. T{
  80683. \fBseed\fP
  80684. T} T{
  80685. T}
  80686. _
  80687. T{
  80688. \fBselinux\fP
  80689. T} T{
  80690. T}
  80691. _
  80692. T{
  80693. \fBsensehat\fP
  80694. T} T{
  80695. Module for controlling the LED matrix or reading environment data on the SenseHat of a Raspberry Pi.
  80696. T}
  80697. _
  80698. T{
  80699. \fBsensors\fP
  80700. T} T{
  80701. T}
  80702. _
  80703. T{
  80704. \fBserverdensity_device\fP
  80705. T} T{
  80706. T}
  80707. _
  80708. T{
  80709. \fBservicenow\fP
  80710. T} T{
  80711. Module for execution of ServiceNow CI (configuration items)
  80712. T}
  80713. _
  80714. T{
  80715. \fBslack_notify\fP
  80716. T} T{
  80717. T}
  80718. _
  80719. T{
  80720. \fBslsutil\fP
  80721. T} T{
  80722. T}
  80723. _
  80724. T{
  80725. \fBsmartos_imgadm\fP
  80726. T} T{
  80727. T}
  80728. _
  80729. T{
  80730. \fBsmartos_nictagadm\fP
  80731. T} T{
  80732. T}
  80733. _
  80734. T{
  80735. \fBsmartos_virt\fP
  80736. T} T{
  80737. T}
  80738. _
  80739. T{
  80740. \fBsmartos_vmadm\fP
  80741. T} T{
  80742. T}
  80743. _
  80744. T{
  80745. \fBsmbios\fP
  80746. T} T{
  80747. T}
  80748. _
  80749. T{
  80750. \fBsmf_service\fP
  80751. T} T{
  80752. Service support for Solaris 10 and 11, should work with other systems that use SMF also.
  80753. T}
  80754. _
  80755. T{
  80756. \fBsmtp\fP
  80757. T} T{
  80758. T}
  80759. _
  80760. T{
  80761. \fBsnapper\fP
  80762. T} T{
  80763. T}
  80764. _
  80765. T{
  80766. \fBsolaris_fmadm\fP
  80767. T} T{
  80768. T}
  80769. _
  80770. T{
  80771. \fBsolaris_group\fP
  80772. T} T{
  80773. T}
  80774. _
  80775. T{
  80776. \fBsolaris_shadow\fP
  80777. T} T{
  80778. T}
  80779. _
  80780. T{
  80781. \fBsolaris_system\fP
  80782. T} T{
  80783. T}
  80784. _
  80785. T{
  80786. \fBsolaris_user\fP
  80787. T} T{
  80788. T}
  80789. _
  80790. T{
  80791. \fBsolarisipspkg\fP
  80792. T} T{
  80793. T}
  80794. _
  80795. T{
  80796. \fBsolarispkg\fP
  80797. T} T{
  80798. T}
  80799. _
  80800. T{
  80801. \fBsolr\fP
  80802. T} T{
  80803. T}
  80804. _
  80805. T{
  80806. \fBsolrcloud\fP
  80807. T} T{
  80808. T}
  80809. _
  80810. T{
  80811. \fBsplunk\fP
  80812. T} T{
  80813. Module for interop with the Splunk API
  80814. T}
  80815. _
  80816. T{
  80817. \fBsplunk_search\fP
  80818. T} T{
  80819. T}
  80820. _
  80821. T{
  80822. \fBsqlite3\fP
  80823. T} T{
  80824. Support for SQLite3
  80825. T}
  80826. _
  80827. T{
  80828. \fBssh\fP
  80829. T} T{
  80830. T}
  80831. _
  80832. T{
  80833. \fBssh_pkg\fP
  80834. T} T{
  80835. T}
  80836. _
  80837. T{
  80838. \fBssh_service\fP
  80839. T} T{
  80840. T}
  80841. _
  80842. T{
  80843. \fBstate\fP
  80844. T} T{
  80845. T}
  80846. _
  80847. T{
  80848. \fBstatus\fP
  80849. T} T{
  80850. T}
  80851. _
  80852. T{
  80853. \fBstatuspage\fP
  80854. T} T{
  80855. StatusPage
  80856. T}
  80857. _
  80858. T{
  80859. \fBsupervisord\fP
  80860. T} T{
  80861. T}
  80862. _
  80863. T{
  80864. \fBsuse_apache\fP
  80865. T} T{
  80866. T}
  80867. _
  80868. T{
  80869. \fBsvn\fP
  80870. T} T{
  80871. T}
  80872. _
  80873. T{
  80874. \fBswarm\fP
  80875. T} T{
  80876. T}
  80877. _
  80878. T{
  80879. \fBswift\fP
  80880. T} T{
  80881. T}
  80882. _
  80883. T{
  80884. \fBsysbench\fP
  80885. T} T{
  80886. T}
  80887. _
  80888. T{
  80889. \fBsysfs\fP
  80890. T} T{
  80891. T}
  80892. _
  80893. T{
  80894. \fBsyslog_ng\fP
  80895. T} T{
  80896. T}
  80897. _
  80898. T{
  80899. \fBsysmod\fP
  80900. T} T{
  80901. T}
  80902. _
  80903. T{
  80904. \fBsysrc\fP
  80905. T} T{
  80906. T}
  80907. _
  80908. T{
  80909. \fBsystem\fP
  80910. T} T{
  80911. T}
  80912. _
  80913. T{
  80914. \fBsystem_profiler\fP
  80915. T} T{
  80916. T}
  80917. _
  80918. T{
  80919. \fBsystemd_service\fP
  80920. T} T{
  80921. T}
  80922. _
  80923. T{
  80924. \fBtelegram\fP
  80925. T} T{
  80926. Module for sending messages via Telegram.
  80927. T}
  80928. _
  80929. T{
  80930. \fBtelemetry\fP
  80931. T} T{
  80932. T}
  80933. _
  80934. T{
  80935. \fBtemp\fP
  80936. T} T{
  80937. Simple module for creating temporary directories and files
  80938. T}
  80939. _
  80940. T{
  80941. \fI\%test\fP
  80942. T} T{
  80943. T}
  80944. _
  80945. T{
  80946. \fBtest_virtual\fP
  80947. T} T{
  80948. Module for running arbitrary tests with a __virtual__ function
  80949. T}
  80950. _
  80951. T{
  80952. \fBtestinframod\fP
  80953. T} T{
  80954. T}
  80955. _
  80956. T{
  80957. \fBtextfsm_mod\fP
  80958. T} T{
  80959. T}
  80960. _
  80961. T{
  80962. \fBtimezone\fP
  80963. T} T{
  80964. T}
  80965. _
  80966. T{
  80967. \fBtls\fP
  80968. T} T{
  80969. T}
  80970. _
  80971. T{
  80972. \fBtomcat\fP
  80973. T} T{
  80974. T}
  80975. _
  80976. T{
  80977. \fBtrafficserver\fP
  80978. T} T{
  80979. T}
  80980. _
  80981. T{
  80982. \fBtravisci\fP
  80983. T} T{
  80984. T}
  80985. _
  80986. T{
  80987. \fBtuned\fP
  80988. T} T{
  80989. T}
  80990. _
  80991. T{
  80992. \fBtwilio_notify\fP
  80993. T} T{
  80994. Module for notifications via Twilio
  80995. T}
  80996. _
  80997. T{
  80998. \fBudev\fP
  80999. T} T{
  81000. T}
  81001. _
  81002. T{
  81003. \fBupstart_service\fP
  81004. T} T{
  81005. T}
  81006. _
  81007. T{
  81008. \fBuptime\fP
  81009. T} T{
  81010. Wrapper around uptime API
  81011. T}
  81012. _
  81013. T{
  81014. \fBuseradd\fP
  81015. T} T{
  81016. T}
  81017. _
  81018. T{
  81019. \fBuwsgi\fP
  81020. T} T{
  81021. T}
  81022. _
  81023. T{
  81024. \fBvagrant\fP
  81025. T} T{
  81026. T}
  81027. _
  81028. T{
  81029. \fBvarnish\fP
  81030. T} T{
  81031. T}
  81032. _
  81033. T{
  81034. \fBvault\fP
  81035. T} T{
  81036. Functions to interact with Hashicorp Vault.
  81037. T}
  81038. _
  81039. T{
  81040. \fBvbox_guest\fP
  81041. T} T{
  81042. VirtualBox Guest Additions installer
  81043. T}
  81044. _
  81045. T{
  81046. \fBvboxmanage\fP
  81047. T} T{
  81048. T}
  81049. _
  81050. T{
  81051. \fBvcenter\fP
  81052. T} T{
  81053. T}
  81054. _
  81055. T{
  81056. \fBvictorops\fP
  81057. T} T{
  81058. T}
  81059. _
  81060. T{
  81061. \fBvirt\fP
  81062. T} T{
  81063. T}
  81064. _
  81065. T{
  81066. \fBvirtualenv_mod\fP
  81067. T} T{
  81068. T}
  81069. _
  81070. T{
  81071. \fBvmctl\fP
  81072. T} T{
  81073. T}
  81074. _
  81075. T{
  81076. \fBvsphere\fP
  81077. T} T{
  81078. T}
  81079. _
  81080. T{
  81081. \fBwebutil\fP
  81082. T} T{
  81083. T}
  81084. _
  81085. T{
  81086. \fBwin_auditpol\fP
  81087. T} T{
  81088. T}
  81089. _
  81090. T{
  81091. \fBwin_autoruns\fP
  81092. T} T{
  81093. T}
  81094. _
  81095. T{
  81096. \fBwin_certutil\fP
  81097. T} T{
  81098. T}
  81099. _
  81100. T{
  81101. \fBwin_dacl\fP
  81102. T} T{
  81103. T}
  81104. _
  81105. T{
  81106. \fBwin_disk\fP
  81107. T} T{
  81108. T}
  81109. _
  81110. T{
  81111. \fBwin_dism\fP
  81112. T} T{
  81113. T}
  81114. _
  81115. T{
  81116. \fBwin_dns_client\fP
  81117. T} T{
  81118. T}
  81119. _
  81120. T{
  81121. \fBwin_dsc\fP
  81122. T} T{
  81123. T}
  81124. _
  81125. T{
  81126. \fBwin_file\fP
  81127. T} T{
  81128. T}
  81129. _
  81130. T{
  81131. \fBwin_firewall\fP
  81132. T} T{
  81133. T}
  81134. _
  81135. T{
  81136. \fBwin_groupadd\fP
  81137. T} T{
  81138. T}
  81139. _
  81140. T{
  81141. \fBwin_iis\fP
  81142. T} T{
  81143. T}
  81144. _
  81145. T{
  81146. \fBwin_ip\fP
  81147. T} T{
  81148. T}
  81149. _
  81150. T{
  81151. \fBwin_lgpo\fP
  81152. T} T{
  81153. T}
  81154. _
  81155. T{
  81156. \fBwin_license\fP
  81157. T} T{
  81158. T}
  81159. _
  81160. T{
  81161. \fBwin_network\fP
  81162. T} T{
  81163. T}
  81164. _
  81165. T{
  81166. \fBwin_ntp\fP
  81167. T} T{
  81168. T}
  81169. _
  81170. T{
  81171. \fBwin_path\fP
  81172. T} T{
  81173. T}
  81174. _
  81175. T{
  81176. \fBwin_pkg\fP
  81177. T} T{
  81178. T}
  81179. _
  81180. T{
  81181. \fBwin_pki\fP
  81182. T} T{
  81183. T}
  81184. _
  81185. T{
  81186. \fBwin_powercfg\fP
  81187. T} T{
  81188. T}
  81189. _
  81190. T{
  81191. \fBwin_psget\fP
  81192. T} T{
  81193. T}
  81194. _
  81195. T{
  81196. \fBwin_servermanager\fP
  81197. T} T{
  81198. T}
  81199. _
  81200. T{
  81201. \fBwin_service\fP
  81202. T} T{
  81203. T}
  81204. _
  81205. T{
  81206. \fBwin_shadow\fP
  81207. T} T{
  81208. T}
  81209. _
  81210. T{
  81211. \fBwin_smtp_server\fP
  81212. T} T{
  81213. T}
  81214. _
  81215. T{
  81216. \fBwin_snmp\fP
  81217. T} T{
  81218. T}
  81219. _
  81220. T{
  81221. \fBwin_status\fP
  81222. T} T{
  81223. T}
  81224. _
  81225. T{
  81226. \fBwin_system\fP
  81227. T} T{
  81228. T}
  81229. _
  81230. T{
  81231. \fBwin_task\fP
  81232. T} T{
  81233. T}
  81234. _
  81235. T{
  81236. \fBwin_timezone\fP
  81237. T} T{
  81238. Module for managing timezone on Windows systems.
  81239. T}
  81240. _
  81241. T{
  81242. \fBwin_useradd\fP
  81243. T} T{
  81244. T}
  81245. _
  81246. T{
  81247. \fBwin_wua\fP
  81248. T} T{
  81249. T}
  81250. _
  81251. T{
  81252. \fBwin_wusa\fP
  81253. T} T{
  81254. T}
  81255. _
  81256. T{
  81257. \fBwinrepo\fP
  81258. T} T{
  81259. T}
  81260. _
  81261. T{
  81262. \fBwordpress\fP
  81263. T} T{
  81264. T}
  81265. _
  81266. T{
  81267. \fBx509\fP
  81268. T} T{
  81269. T}
  81270. _
  81271. T{
  81272. \fBxapi_virt\fP
  81273. T} T{
  81274. T}
  81275. _
  81276. T{
  81277. \fBxbpspkg\fP
  81278. T} T{
  81279. T}
  81280. _
  81281. T{
  81282. \fBxfs\fP
  81283. T} T{
  81284. T}
  81285. _
  81286. T{
  81287. \fBxml\fP
  81288. T} T{
  81289. XML file manager
  81290. T}
  81291. _
  81292. T{
  81293. \fBxmpp\fP
  81294. T} T{
  81295. Module for Sending Messages via XMPP (a.k.a.
  81296. T}
  81297. _
  81298. T{
  81299. \fByumpkg\fP
  81300. T} T{
  81301. T}
  81302. _
  81303. T{
  81304. \fBzabbix\fP
  81305. T} T{
  81306. T}
  81307. _
  81308. T{
  81309. \fBzcbuildout\fP
  81310. T} T{
  81311. T}
  81312. _
  81313. T{
  81314. \fBzenoss\fP
  81315. T} T{
  81316. T}
  81317. _
  81318. T{
  81319. \fBzfs\fP
  81320. T} T{
  81321. T}
  81322. _
  81323. T{
  81324. \fBzk_concurrency\fP
  81325. T} T{
  81326. Concurrency controls in zookeeper
  81327. T}
  81328. _
  81329. T{
  81330. \fBznc\fP
  81331. T} T{
  81332. T}
  81333. _
  81334. T{
  81335. \fBzoneadm\fP
  81336. T} T{
  81337. T}
  81338. _
  81339. T{
  81340. \fBzonecfg\fP
  81341. T} T{
  81342. T}
  81343. _
  81344. T{
  81345. \fBzookeeper\fP
  81346. T} T{
  81347. T}
  81348. _
  81349. T{
  81350. \fBzpool\fP
  81351. T} T{
  81352. T}
  81353. _
  81354. T{
  81355. \fBzypperpkg\fP
  81356. T} T{
  81357. T}
  81358. _
  81359. .TE
  81360. .SS salt.modules.aix_group module
  81361. .sp
  81362. Manage groups on Solaris
  81363. .sp
  81364. \fBIMPORTANT:\fP
  81365. .INDENT 0.0
  81366. .INDENT 3.5
  81367. If you feel that Salt should be using this module to manage groups on a
  81368. minion, and it is using a different module (or gives an error similar to
  81369. \fI\(aqgroup.info\(aq is not available\fP), see here\&.
  81370. .UNINDENT
  81371. .UNINDENT
  81372. .INDENT 0.0
  81373. .TP
  81374. .B salt.modules.aix_group.add(name, gid=None, system=False, root=None)
  81375. Add the specified group
  81376. .sp
  81377. CLI Example:
  81378. .INDENT 7.0
  81379. .INDENT 3.5
  81380. .sp
  81381. .nf
  81382. .ft C
  81383. salt \(aq*\(aq group.add foo 3456
  81384. .ft P
  81385. .fi
  81386. .UNINDENT
  81387. .UNINDENT
  81388. .UNINDENT
  81389. .INDENT 0.0
  81390. .TP
  81391. .B salt.modules.aix_group.adduser(name, username, root=None)
  81392. Add a user in the group.
  81393. .sp
  81394. CLI Example:
  81395. .INDENT 7.0
  81396. .INDENT 3.5
  81397. .sp
  81398. .nf
  81399. .ft C
  81400. salt \(aq*\(aq group.adduser foo bar
  81401. .ft P
  81402. .fi
  81403. .UNINDENT
  81404. .UNINDENT
  81405. .sp
  81406. Verifies if a valid username \(aqbar\(aq as a member of an existing group \(aqfoo\(aq,
  81407. if not then adds it.
  81408. .UNINDENT
  81409. .INDENT 0.0
  81410. .TP
  81411. .B salt.modules.aix_group.chgid(name, gid)
  81412. Change the gid for a named group
  81413. .sp
  81414. CLI Example:
  81415. .INDENT 7.0
  81416. .INDENT 3.5
  81417. .sp
  81418. .nf
  81419. .ft C
  81420. salt \(aq*\(aq group.chgid foo 4376
  81421. .ft P
  81422. .fi
  81423. .UNINDENT
  81424. .UNINDENT
  81425. .UNINDENT
  81426. .INDENT 0.0
  81427. .TP
  81428. .B salt.modules.aix_group.delete(name)
  81429. Remove the named group
  81430. .sp
  81431. CLI Example:
  81432. .INDENT 7.0
  81433. .INDENT 3.5
  81434. .sp
  81435. .nf
  81436. .ft C
  81437. salt \(aq*\(aq group.delete foo
  81438. .ft P
  81439. .fi
  81440. .UNINDENT
  81441. .UNINDENT
  81442. .UNINDENT
  81443. .INDENT 0.0
  81444. .TP
  81445. .B salt.modules.aix_group.deluser(name, username, root=None)
  81446. Remove a user from the group.
  81447. .sp
  81448. CLI Example:
  81449. .INDENT 7.0
  81450. .INDENT 3.5
  81451. .sp
  81452. .nf
  81453. .ft C
  81454. salt \(aq*\(aq group.deluser foo bar
  81455. .ft P
  81456. .fi
  81457. .UNINDENT
  81458. .UNINDENT
  81459. .sp
  81460. Removes a member user \(aqbar\(aq from a group \(aqfoo\(aq. If group is not present
  81461. then returns True.
  81462. .UNINDENT
  81463. .INDENT 0.0
  81464. .TP
  81465. .B salt.modules.aix_group.getent(refresh=False)
  81466. Return info on all groups
  81467. .sp
  81468. CLI Example:
  81469. .INDENT 7.0
  81470. .INDENT 3.5
  81471. .sp
  81472. .nf
  81473. .ft C
  81474. salt \(aq*\(aq group.getent
  81475. .ft P
  81476. .fi
  81477. .UNINDENT
  81478. .UNINDENT
  81479. .UNINDENT
  81480. .INDENT 0.0
  81481. .TP
  81482. .B salt.modules.aix_group.info(name)
  81483. Return information about a group
  81484. .sp
  81485. CLI Example:
  81486. .INDENT 7.0
  81487. .INDENT 3.5
  81488. .sp
  81489. .nf
  81490. .ft C
  81491. salt \(aq*\(aq group.info foo
  81492. .ft P
  81493. .fi
  81494. .UNINDENT
  81495. .UNINDENT
  81496. .UNINDENT
  81497. .INDENT 0.0
  81498. .TP
  81499. .B salt.modules.aix_group.members(name, members_list, root=None)
  81500. Replaces members of the group with a provided list.
  81501. .sp
  81502. CLI Example:
  81503. .INDENT 7.0
  81504. .INDENT 3.5
  81505. salt \(aq*\(aq group.members foo \(aquser1,user2,user3,...\(aq
  81506. .UNINDENT
  81507. .UNINDENT
  81508. .INDENT 7.0
  81509. .TP
  81510. .B Replaces a membership list for a local group \(aqfoo\(aq.
  81511. foo:x:1234:user1,user2,user3,...
  81512. .UNINDENT
  81513. .UNINDENT
  81514. .SS salt.modules.aix_shadow module
  81515. .sp
  81516. Manage account locks on AIX systems
  81517. .sp
  81518. New in version 2018.3.0.
  81519. .INDENT 0.0
  81520. .TP
  81521. .B depends
  81522. none
  81523. .UNINDENT
  81524. .INDENT 0.0
  81525. .TP
  81526. .B salt.modules.aix_shadow.locked(user)
  81527. Query for all accounts which are flagged as locked.
  81528. .sp
  81529. CLI Example:
  81530. .INDENT 7.0
  81531. .INDENT 3.5
  81532. .sp
  81533. .nf
  81534. .ft C
  81535. salt <minion_id> shadow.locked ALL
  81536. .ft P
  81537. .fi
  81538. .UNINDENT
  81539. .UNINDENT
  81540. .UNINDENT
  81541. .INDENT 0.0
  81542. .TP
  81543. .B salt.modules.aix_shadow.login_failures(user)
  81544. Query for all accounts which have 3 or more login failures.
  81545. .sp
  81546. CLI Example:
  81547. .INDENT 7.0
  81548. .INDENT 3.5
  81549. .sp
  81550. .nf
  81551. .ft C
  81552. salt <minion_id> shadow.login_failures ALL
  81553. .ft P
  81554. .fi
  81555. .UNINDENT
  81556. .UNINDENT
  81557. .UNINDENT
  81558. .INDENT 0.0
  81559. .TP
  81560. .B salt.modules.aix_shadow.unlock(user)
  81561. Unlock user for locked account
  81562. .sp
  81563. CLI Example:
  81564. .INDENT 7.0
  81565. .INDENT 3.5
  81566. .sp
  81567. .nf
  81568. .ft C
  81569. salt <minion_id> shadow.unlock user
  81570. .ft P
  81571. .fi
  81572. .UNINDENT
  81573. .UNINDENT
  81574. .UNINDENT
  81575. .SS salt.modules.azurearm_compute
  81576. .sp
  81577. Azure (ARM) Compute Execution Module
  81578. .sp
  81579. New in version 2019.2.0.
  81580. .INDENT 0.0
  81581. .TP
  81582. .B maintainer
  81583. <\fI\%devops@decisionlab.io\fP>
  81584. .TP
  81585. .B maturity
  81586. new
  81587. .TP
  81588. .B depends
  81589. .INDENT 7.0
  81590. .IP \(bu 2
  81591. \fI\%azure\fP >= 2.0.0
  81592. .IP \(bu 2
  81593. \fI\%azure\-common\fP >= 1.1.8
  81594. .IP \(bu 2
  81595. \fI\%azure\-mgmt\fP >= 1.0.0
  81596. .IP \(bu 2
  81597. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  81598. .IP \(bu 2
  81599. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  81600. .IP \(bu 2
  81601. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  81602. .IP \(bu 2
  81603. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  81604. .IP \(bu 2
  81605. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  81606. .IP \(bu 2
  81607. \fI\%azure\-storage\fP >= 0.34.3
  81608. .IP \(bu 2
  81609. \fI\%msrestazure\fP >= 0.4.21
  81610. .UNINDENT
  81611. .TP
  81612. .B platform
  81613. linux
  81614. .TP
  81615. .B configuration
  81616. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  81617. to every function in order to work properly.
  81618. .sp
  81619. Required provider parameters:
  81620. .INDENT 7.0
  81621. .TP
  81622. .B if using username and password:
  81623. .INDENT 7.0
  81624. .IP \(bu 2
  81625. \fBsubscription_id\fP
  81626. .IP \(bu 2
  81627. \fBusername\fP
  81628. .IP \(bu 2
  81629. \fBpassword\fP
  81630. .UNINDENT
  81631. .TP
  81632. .B if using a service principal:
  81633. .INDENT 7.0
  81634. .IP \(bu 2
  81635. \fBsubscription_id\fP
  81636. .IP \(bu 2
  81637. \fBtenant\fP
  81638. .IP \(bu 2
  81639. \fBclient_id\fP
  81640. .IP \(bu 2
  81641. \fBsecret\fP
  81642. .UNINDENT
  81643. .UNINDENT
  81644. .sp
  81645. Optional provider parameters:
  81646. .UNINDENT
  81647. .INDENT 0.0
  81648. .TP
  81649. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  81650. .INDENT 7.0
  81651. .TP
  81652. .B Possible values:
  81653. .INDENT 7.0
  81654. .IP \(bu 2
  81655. \fBAZURE_PUBLIC_CLOUD\fP (default)
  81656. .IP \(bu 2
  81657. \fBAZURE_CHINA_CLOUD\fP
  81658. .IP \(bu 2
  81659. \fBAZURE_US_GOV_CLOUD\fP
  81660. .IP \(bu 2
  81661. \fBAZURE_GERMAN_CLOUD\fP
  81662. .UNINDENT
  81663. .UNINDENT
  81664. .UNINDENT
  81665. .INDENT 0.0
  81666. .TP
  81667. .B salt.modules.azurearm_compute.availability_set_create_or_update(name, resource_group, **kwargs)
  81668. New in version 2019.2.0.
  81669. .sp
  81670. Create or update an availability set.
  81671. .INDENT 7.0
  81672. .TP
  81673. .B Parameters
  81674. .INDENT 7.0
  81675. .IP \(bu 2
  81676. \fBname\fP \-\- The availability set to create.
  81677. .IP \(bu 2
  81678. \fBresource_group\fP \-\- The resource group name assigned to the
  81679. availability set.
  81680. .UNINDENT
  81681. .UNINDENT
  81682. .sp
  81683. CLI Example:
  81684. .INDENT 7.0
  81685. .INDENT 3.5
  81686. .sp
  81687. .nf
  81688. .ft C
  81689. salt\-call azurearm_compute.availability_set_create_or_update testset testgroup
  81690. .ft P
  81691. .fi
  81692. .UNINDENT
  81693. .UNINDENT
  81694. .UNINDENT
  81695. .INDENT 0.0
  81696. .TP
  81697. .B salt.modules.azurearm_compute.availability_set_delete(name, resource_group, **kwargs)
  81698. New in version 2019.2.0.
  81699. .sp
  81700. Delete an availability set.
  81701. .INDENT 7.0
  81702. .TP
  81703. .B Parameters
  81704. .INDENT 7.0
  81705. .IP \(bu 2
  81706. \fBname\fP \-\- The availability set to delete.
  81707. .IP \(bu 2
  81708. \fBresource_group\fP \-\- The resource group name assigned to the
  81709. availability set.
  81710. .UNINDENT
  81711. .UNINDENT
  81712. .sp
  81713. CLI Example:
  81714. .INDENT 7.0
  81715. .INDENT 3.5
  81716. .sp
  81717. .nf
  81718. .ft C
  81719. salt\-call azurearm_compute.availability_set_delete testset testgroup
  81720. .ft P
  81721. .fi
  81722. .UNINDENT
  81723. .UNINDENT
  81724. .UNINDENT
  81725. .INDENT 0.0
  81726. .TP
  81727. .B salt.modules.azurearm_compute.availability_set_get(name, resource_group, **kwargs)
  81728. New in version 2019.2.0.
  81729. .sp
  81730. Get a dictionary representing an availability set\(aqs properties.
  81731. .INDENT 7.0
  81732. .TP
  81733. .B Parameters
  81734. .INDENT 7.0
  81735. .IP \(bu 2
  81736. \fBname\fP \-\- The availability set to get.
  81737. .IP \(bu 2
  81738. \fBresource_group\fP \-\- The resource group name assigned to the
  81739. availability set.
  81740. .UNINDENT
  81741. .UNINDENT
  81742. .sp
  81743. CLI Example:
  81744. .INDENT 7.0
  81745. .INDENT 3.5
  81746. .sp
  81747. .nf
  81748. .ft C
  81749. salt\-call azurearm_compute.availability_set_get testset testgroup
  81750. .ft P
  81751. .fi
  81752. .UNINDENT
  81753. .UNINDENT
  81754. .UNINDENT
  81755. .INDENT 0.0
  81756. .TP
  81757. .B salt.modules.azurearm_compute.availability_sets_list(resource_group, **kwargs)
  81758. New in version 2019.2.0.
  81759. .sp
  81760. List all availability sets within a resource group.
  81761. .INDENT 7.0
  81762. .TP
  81763. .B Parameters
  81764. \fBresource_group\fP \-\- The resource group name to list availability
  81765. sets within.
  81766. .UNINDENT
  81767. .sp
  81768. CLI Example:
  81769. .INDENT 7.0
  81770. .INDENT 3.5
  81771. .sp
  81772. .nf
  81773. .ft C
  81774. salt\-call azurearm_compute.availability_sets_list testgroup
  81775. .ft P
  81776. .fi
  81777. .UNINDENT
  81778. .UNINDENT
  81779. .UNINDENT
  81780. .INDENT 0.0
  81781. .TP
  81782. .B salt.modules.azurearm_compute.availability_sets_list_available_sizes(name, resource_group, **kwargs)
  81783. New in version 2019.2.0.
  81784. .sp
  81785. List all available virtual machine sizes that can be used to
  81786. to create a new virtual machine in an existing availability set.
  81787. .INDENT 7.0
  81788. .TP
  81789. .B Parameters
  81790. .INDENT 7.0
  81791. .IP \(bu 2
  81792. \fBname\fP \-\- The availability set name to list available
  81793. virtual machine sizes within.
  81794. .IP \(bu 2
  81795. \fBresource_group\fP \-\- The resource group name to list available
  81796. availability set sizes within.
  81797. .UNINDENT
  81798. .UNINDENT
  81799. .sp
  81800. CLI Example:
  81801. .INDENT 7.0
  81802. .INDENT 3.5
  81803. .sp
  81804. .nf
  81805. .ft C
  81806. salt\-call azurearm_compute.availability_sets_list_available_sizes testset testgroup
  81807. .ft P
  81808. .fi
  81809. .UNINDENT
  81810. .UNINDENT
  81811. .UNINDENT
  81812. .INDENT 0.0
  81813. .TP
  81814. .B salt.modules.azurearm_compute.virtual_machine_capture(name, destination_name, resource_group, prefix=\(aqcapture\-\(aq, overwrite=False, **kwargs)
  81815. New in version 2019.2.0.
  81816. .sp
  81817. Captures the VM by copying virtual hard disks of the VM and outputs
  81818. a template that can be used to create similar VMs.
  81819. .INDENT 7.0
  81820. .TP
  81821. .B Parameters
  81822. .INDENT 7.0
  81823. .IP \(bu 2
  81824. \fBname\fP \-\- The name of the virtual machine.
  81825. .IP \(bu 2
  81826. \fBdestination_name\fP \-\- The destination container name.
  81827. .IP \(bu 2
  81828. \fBresource_group\fP \-\- The resource group name assigned to the
  81829. virtual machine.
  81830. .IP \(bu 2
  81831. \fBprefix\fP \-\- (Default: \(aqcapture\-\(aq) The captured virtual hard disk\(aqs name prefix.
  81832. .IP \(bu 2
  81833. \fBoverwrite\fP \-\- (Default: False) Overwrite the destination disk in case of conflict.
  81834. .UNINDENT
  81835. .UNINDENT
  81836. .sp
  81837. CLI Example:
  81838. .INDENT 7.0
  81839. .INDENT 3.5
  81840. .sp
  81841. .nf
  81842. .ft C
  81843. salt\-call azurearm_compute.virtual_machine_capture testvm testcontainer testgroup
  81844. .ft P
  81845. .fi
  81846. .UNINDENT
  81847. .UNINDENT
  81848. .UNINDENT
  81849. .INDENT 0.0
  81850. .TP
  81851. .B salt.modules.azurearm_compute.virtual_machine_convert_to_managed_disks(name, resource_group, **kwargs)
  81852. New in version 2019.2.0.
  81853. .sp
  81854. Converts virtual machine disks from blob\-based to managed disks. Virtual
  81855. machine must be stop\-deallocated before invoking this operation.
  81856. .INDENT 7.0
  81857. .TP
  81858. .B Parameters
  81859. .INDENT 7.0
  81860. .IP \(bu 2
  81861. \fBname\fP \-\- The name of the virtual machine to convert.
  81862. .IP \(bu 2
  81863. \fBresource_group\fP \-\- The resource group name assigned to the
  81864. virtual machine.
  81865. .UNINDENT
  81866. .UNINDENT
  81867. .sp
  81868. CLI Example:
  81869. .INDENT 7.0
  81870. .INDENT 3.5
  81871. .sp
  81872. .nf
  81873. .ft C
  81874. salt\-call azurearm_compute.virtual_machine_convert_to_managed_disks testvm testgroup
  81875. .ft P
  81876. .fi
  81877. .UNINDENT
  81878. .UNINDENT
  81879. .UNINDENT
  81880. .INDENT 0.0
  81881. .TP
  81882. .B salt.modules.azurearm_compute.virtual_machine_deallocate(name, resource_group, **kwargs)
  81883. New in version 2019.2.0.
  81884. .sp
  81885. Power off a virtual machine and deallocate compute resources.
  81886. .INDENT 7.0
  81887. .TP
  81888. .B Parameters
  81889. .INDENT 7.0
  81890. .IP \(bu 2
  81891. \fBname\fP \-\- The name of the virtual machine to deallocate.
  81892. .IP \(bu 2
  81893. \fBresource_group\fP \-\- The resource group name assigned to the
  81894. virtual machine.
  81895. .UNINDENT
  81896. .UNINDENT
  81897. .sp
  81898. CLI Example:
  81899. .INDENT 7.0
  81900. .INDENT 3.5
  81901. .sp
  81902. .nf
  81903. .ft C
  81904. salt\-call azurearm_compute.virtual_machine_deallocate testvm testgroup
  81905. .ft P
  81906. .fi
  81907. .UNINDENT
  81908. .UNINDENT
  81909. .UNINDENT
  81910. .INDENT 0.0
  81911. .TP
  81912. .B salt.modules.azurearm_compute.virtual_machine_generalize(name, resource_group, **kwargs)
  81913. New in version 2019.2.0.
  81914. .sp
  81915. Set the state of a virtual machine to \(aqgeneralized\(aq.
  81916. .INDENT 7.0
  81917. .TP
  81918. .B Parameters
  81919. .INDENT 7.0
  81920. .IP \(bu 2
  81921. \fBname\fP \-\- The name of the virtual machine.
  81922. .IP \(bu 2
  81923. \fBresource_group\fP \-\- The resource group name assigned to the
  81924. virtual machine.
  81925. .UNINDENT
  81926. .UNINDENT
  81927. .sp
  81928. CLI Example:
  81929. .INDENT 7.0
  81930. .INDENT 3.5
  81931. .sp
  81932. .nf
  81933. .ft C
  81934. salt\-call azurearm_compute.virtual_machine_generalize testvm testgroup
  81935. .ft P
  81936. .fi
  81937. .UNINDENT
  81938. .UNINDENT
  81939. .UNINDENT
  81940. .INDENT 0.0
  81941. .TP
  81942. .B salt.modules.azurearm_compute.virtual_machine_get(name, resource_group, **kwargs)
  81943. New in version 2019.2.0.
  81944. .sp
  81945. Retrieves information about the model view or the instance view of a
  81946. virtual machine.
  81947. .INDENT 7.0
  81948. .TP
  81949. .B Parameters
  81950. .INDENT 7.0
  81951. .IP \(bu 2
  81952. \fBname\fP \-\- The name of the virtual machine.
  81953. .IP \(bu 2
  81954. \fBresource_group\fP \-\- The resource group name assigned to the
  81955. virtual machine.
  81956. .UNINDENT
  81957. .UNINDENT
  81958. .sp
  81959. CLI Example:
  81960. .INDENT 7.0
  81961. .INDENT 3.5
  81962. .sp
  81963. .nf
  81964. .ft C
  81965. salt\-call azurearm_compute.virtual_machine_get testvm testgroup
  81966. .ft P
  81967. .fi
  81968. .UNINDENT
  81969. .UNINDENT
  81970. .UNINDENT
  81971. .INDENT 0.0
  81972. .TP
  81973. .B salt.modules.azurearm_compute.virtual_machine_power_off(name, resource_group, **kwargs)
  81974. New in version 2019.2.0.
  81975. .sp
  81976. Power off (stop) a virtual machine.
  81977. .INDENT 7.0
  81978. .TP
  81979. .B Parameters
  81980. .INDENT 7.0
  81981. .IP \(bu 2
  81982. \fBname\fP \-\- The name of the virtual machine to stop.
  81983. .IP \(bu 2
  81984. \fBresource_group\fP \-\- The resource group name assigned to the
  81985. virtual machine.
  81986. .UNINDENT
  81987. .UNINDENT
  81988. .sp
  81989. CLI Example:
  81990. .INDENT 7.0
  81991. .INDENT 3.5
  81992. .sp
  81993. .nf
  81994. .ft C
  81995. salt\-call azurearm_compute.virtual_machine_power_off testvm testgroup
  81996. .ft P
  81997. .fi
  81998. .UNINDENT
  81999. .UNINDENT
  82000. .UNINDENT
  82001. .INDENT 0.0
  82002. .TP
  82003. .B salt.modules.azurearm_compute.virtual_machine_redeploy(name, resource_group, **kwargs)
  82004. New in version 2019.2.0.
  82005. .sp
  82006. Redeploy a virtual machine.
  82007. .INDENT 7.0
  82008. .TP
  82009. .B Parameters
  82010. .INDENT 7.0
  82011. .IP \(bu 2
  82012. \fBname\fP \-\- The name of the virtual machine to redeploy.
  82013. .IP \(bu 2
  82014. \fBresource_group\fP \-\- The resource group name assigned to the
  82015. virtual machine.
  82016. .UNINDENT
  82017. .UNINDENT
  82018. .sp
  82019. CLI Example:
  82020. .INDENT 7.0
  82021. .INDENT 3.5
  82022. .sp
  82023. .nf
  82024. .ft C
  82025. salt\-call azurearm_compute.virtual_machine_redeploy testvm testgroup
  82026. .ft P
  82027. .fi
  82028. .UNINDENT
  82029. .UNINDENT
  82030. .UNINDENT
  82031. .INDENT 0.0
  82032. .TP
  82033. .B salt.modules.azurearm_compute.virtual_machine_restart(name, resource_group, **kwargs)
  82034. New in version 2019.2.0.
  82035. .sp
  82036. Restart a virtual machine.
  82037. .INDENT 7.0
  82038. .TP
  82039. .B Parameters
  82040. .INDENT 7.0
  82041. .IP \(bu 2
  82042. \fBname\fP \-\- The name of the virtual machine to restart.
  82043. .IP \(bu 2
  82044. \fBresource_group\fP \-\- The resource group name assigned to the
  82045. virtual machine.
  82046. .UNINDENT
  82047. .UNINDENT
  82048. .sp
  82049. CLI Example:
  82050. .INDENT 7.0
  82051. .INDENT 3.5
  82052. .sp
  82053. .nf
  82054. .ft C
  82055. salt\-call azurearm_compute.virtual_machine_restart testvm testgroup
  82056. .ft P
  82057. .fi
  82058. .UNINDENT
  82059. .UNINDENT
  82060. .UNINDENT
  82061. .INDENT 0.0
  82062. .TP
  82063. .B salt.modules.azurearm_compute.virtual_machine_start(name, resource_group, **kwargs)
  82064. New in version 2019.2.0.
  82065. .sp
  82066. Power on (start) a virtual machine.
  82067. .INDENT 7.0
  82068. .TP
  82069. .B Parameters
  82070. .INDENT 7.0
  82071. .IP \(bu 2
  82072. \fBname\fP \-\- The name of the virtual machine to start.
  82073. .IP \(bu 2
  82074. \fBresource_group\fP \-\- The resource group name assigned to the
  82075. virtual machine.
  82076. .UNINDENT
  82077. .UNINDENT
  82078. .sp
  82079. CLI Example:
  82080. .INDENT 7.0
  82081. .INDENT 3.5
  82082. .sp
  82083. .nf
  82084. .ft C
  82085. salt\-call azurearm_compute.virtual_machine_start testvm testgroup
  82086. .ft P
  82087. .fi
  82088. .UNINDENT
  82089. .UNINDENT
  82090. .UNINDENT
  82091. .INDENT 0.0
  82092. .TP
  82093. .B salt.modules.azurearm_compute.virtual_machines_list(resource_group, **kwargs)
  82094. New in version 2019.2.0.
  82095. .sp
  82096. List all virtual machines within a resource group.
  82097. .INDENT 7.0
  82098. .TP
  82099. .B Parameters
  82100. \fBresource_group\fP \-\- The resource group name to list virtual
  82101. machines within.
  82102. .UNINDENT
  82103. .sp
  82104. CLI Example:
  82105. .INDENT 7.0
  82106. .INDENT 3.5
  82107. .sp
  82108. .nf
  82109. .ft C
  82110. salt\-call azurearm_compute.virtual_machines_list testgroup
  82111. .ft P
  82112. .fi
  82113. .UNINDENT
  82114. .UNINDENT
  82115. .UNINDENT
  82116. .INDENT 0.0
  82117. .TP
  82118. .B salt.modules.azurearm_compute.virtual_machines_list_all(**kwargs)
  82119. New in version 2019.2.0.
  82120. .sp
  82121. List all virtual machines within a subscription.
  82122. .sp
  82123. CLI Example:
  82124. .INDENT 7.0
  82125. .INDENT 3.5
  82126. .sp
  82127. .nf
  82128. .ft C
  82129. salt\-call azurearm_compute.virtual_machines_list_all
  82130. .ft P
  82131. .fi
  82132. .UNINDENT
  82133. .UNINDENT
  82134. .UNINDENT
  82135. .INDENT 0.0
  82136. .TP
  82137. .B salt.modules.azurearm_compute.virtual_machines_list_available_sizes(name, resource_group, **kwargs)
  82138. New in version 2019.2.0.
  82139. .sp
  82140. Lists all available virtual machine sizes to which the specified virtual
  82141. machine can be resized.
  82142. .INDENT 7.0
  82143. .TP
  82144. .B Parameters
  82145. .INDENT 7.0
  82146. .IP \(bu 2
  82147. \fBname\fP \-\- The name of the virtual machine.
  82148. .IP \(bu 2
  82149. \fBresource_group\fP \-\- The resource group name assigned to the
  82150. virtual machine.
  82151. .UNINDENT
  82152. .UNINDENT
  82153. .sp
  82154. CLI Example:
  82155. .INDENT 7.0
  82156. .INDENT 3.5
  82157. .sp
  82158. .nf
  82159. .ft C
  82160. salt\-call azurearm_compute.virtual_machines_list_available_sizes testvm testgroup
  82161. .ft P
  82162. .fi
  82163. .UNINDENT
  82164. .UNINDENT
  82165. .UNINDENT
  82166. .SS salt.modules.azurearm_dns module
  82167. .sp
  82168. Azure (ARM) DNS Execution Module
  82169. .sp
  82170. New in version 3000.
  82171. .INDENT 0.0
  82172. .TP
  82173. .B maintainer
  82174. <\fI\%devops@eitr.tech\fP>
  82175. .TP
  82176. .B maturity
  82177. new
  82178. .TP
  82179. .B depends
  82180. .INDENT 7.0
  82181. .IP \(bu 2
  82182. \fI\%azure\fP >= 2.0.0
  82183. .IP \(bu 2
  82184. \fI\%azure\-common\fP >= 1.1.8
  82185. .IP \(bu 2
  82186. \fI\%azure\-mgmt\fP >= 1.0.0
  82187. .IP \(bu 2
  82188. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  82189. .IP \(bu 2
  82190. \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1
  82191. .IP \(bu 2
  82192. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  82193. .IP \(bu 2
  82194. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  82195. .IP \(bu 2
  82196. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  82197. .IP \(bu 2
  82198. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  82199. .IP \(bu 2
  82200. \fI\%azure\-storage\fP >= 0.34.3
  82201. .IP \(bu 2
  82202. \fI\%msrestazure\fP >= 0.4.21
  82203. .UNINDENT
  82204. .TP
  82205. .B platform
  82206. linux
  82207. .TP
  82208. .B configuration
  82209. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  82210. to every function in order to work properly.
  82211. .UNINDENT
  82212. .sp
  82213. Required provider parameters:
  82214. .INDENT 0.0
  82215. .INDENT 3.5
  82216. if using username and password:
  82217. .INDENT 0.0
  82218. .INDENT 3.5
  82219. .INDENT 0.0
  82220. .IP \(bu 2
  82221. \fBsubscription_id\fP
  82222. .IP \(bu 2
  82223. \fBusername\fP
  82224. .IP \(bu 2
  82225. \fBpassword\fP
  82226. .UNINDENT
  82227. .UNINDENT
  82228. .UNINDENT
  82229. .sp
  82230. if using a service principal:
  82231. .INDENT 0.0
  82232. .INDENT 3.5
  82233. .INDENT 0.0
  82234. .IP \(bu 2
  82235. \fBsubscription_id\fP
  82236. .IP \(bu 2
  82237. \fBtenant\fP
  82238. .IP \(bu 2
  82239. \fBclient_id\fP
  82240. .IP \(bu 2
  82241. \fBsecret\fP
  82242. .UNINDENT
  82243. .UNINDENT
  82244. .UNINDENT
  82245. .UNINDENT
  82246. .UNINDENT
  82247. .sp
  82248. Optional provider parameters:
  82249. .INDENT 0.0
  82250. .INDENT 3.5
  82251. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  82252. .sp
  82253. Possible values:
  82254. .INDENT 0.0
  82255. .INDENT 3.5
  82256. .INDENT 0.0
  82257. .IP \(bu 2
  82258. \fBAZURE_PUBLIC_CLOUD\fP (default)
  82259. .IP \(bu 2
  82260. \fBAZURE_CHINA_CLOUD\fP
  82261. .IP \(bu 2
  82262. \fBAZURE_US_GOV_CLOUD\fP
  82263. .IP \(bu 2
  82264. \fBAZURE_GERMAN_CLOUD\fP
  82265. .UNINDENT
  82266. .UNINDENT
  82267. .UNINDENT
  82268. .UNINDENT
  82269. .UNINDENT
  82270. .INDENT 0.0
  82271. .TP
  82272. .B salt.modules.azurearm_dns.record_set_create_or_update(name, zone_name, resource_group, record_type, **kwargs)
  82273. New in version 3000.
  82274. .sp
  82275. Creates or updates a record set within a DNS zone.
  82276. .INDENT 7.0
  82277. .TP
  82278. .B Parameters
  82279. .INDENT 7.0
  82280. .IP \(bu 2
  82281. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  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 DNS record in this record set. Record sets of type SOA can be
  82288. updated but not created (they are created when the DNS zone is created).
  82289. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82290. .UNINDENT
  82291. .UNINDENT
  82292. .sp
  82293. CLI Example:
  82294. .INDENT 7.0
  82295. .INDENT 3.5
  82296. .sp
  82297. .nf
  82298. .ft C
  82299. salt\-call azurearm_dns.record_set_create_or_update myhost myzone testgroup A
  82300. arecords=\(aq[{ipv4_address: 10.0.0.1}]\(aq ttl=300
  82301. .ft P
  82302. .fi
  82303. .UNINDENT
  82304. .UNINDENT
  82305. .UNINDENT
  82306. .INDENT 0.0
  82307. .TP
  82308. .B salt.modules.azurearm_dns.record_set_delete(name, zone_name, resource_group, record_type, **kwargs)
  82309. New in version 3000.
  82310. .sp
  82311. Deletes a record set from a DNS zone. This operation cannot be undone.
  82312. .INDENT 7.0
  82313. .TP
  82314. .B Parameters
  82315. .INDENT 7.0
  82316. .IP \(bu 2
  82317. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  82318. .IP \(bu 2
  82319. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82320. .IP \(bu 2
  82321. \fBresource_group\fP \-\- The name of the resource group.
  82322. .IP \(bu 2
  82323. \fBrecord_type\fP \-\- The type of DNS record in this record set. Record sets of type SOA cannot be
  82324. deleted (they are deleted when the DNS zone is deleted).
  82325. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82326. .UNINDENT
  82327. .UNINDENT
  82328. .sp
  82329. CLI Example:
  82330. .INDENT 7.0
  82331. .INDENT 3.5
  82332. .sp
  82333. .nf
  82334. .ft C
  82335. salt\-call azurearm_dns.record_set_delete myhost myzone testgroup A
  82336. .ft P
  82337. .fi
  82338. .UNINDENT
  82339. .UNINDENT
  82340. .UNINDENT
  82341. .INDENT 0.0
  82342. .TP
  82343. .B salt.modules.azurearm_dns.record_set_get(name, zone_name, resource_group, record_type, **kwargs)
  82344. New in version 3000.
  82345. .sp
  82346. Get a dictionary representing a record set\(aqs properties.
  82347. .INDENT 7.0
  82348. .TP
  82349. .B Parameters
  82350. .INDENT 7.0
  82351. .IP \(bu 2
  82352. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  82353. .IP \(bu 2
  82354. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82355. .IP \(bu 2
  82356. \fBresource_group\fP \-\- The name of the resource group.
  82357. .IP \(bu 2
  82358. \fBrecord_type\fP \-\- The type of DNS record in this record set.
  82359. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82360. .UNINDENT
  82361. .UNINDENT
  82362. .sp
  82363. CLI Example:
  82364. .INDENT 7.0
  82365. .INDENT 3.5
  82366. .sp
  82367. .nf
  82368. .ft C
  82369. salt\-call azurearm_dns.record_set_get \(aq@\(aq myzone testgroup SOA
  82370. .ft P
  82371. .fi
  82372. .UNINDENT
  82373. .UNINDENT
  82374. .UNINDENT
  82375. .INDENT 0.0
  82376. .TP
  82377. .B salt.modules.azurearm_dns.record_sets_list_by_dns_zone(zone_name, resource_group, top=None, recordsetnamesuffix=None, **kwargs)
  82378. New in version 3000.
  82379. .sp
  82380. Lists all record sets in a DNS zone.
  82381. .INDENT 7.0
  82382. .TP
  82383. .B Parameters
  82384. .INDENT 7.0
  82385. .IP \(bu 2
  82386. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82387. .IP \(bu 2
  82388. \fBresource_group\fP \-\- The name of the resource group.
  82389. .IP \(bu 2
  82390. \fBtop\fP \-\- The maximum number of record sets to return. If not specified,
  82391. returns up to 100 record sets.
  82392. .IP \(bu 2
  82393. \fBrecordsetnamesuffix\fP \-\- The suffix label of the record set name that has
  82394. to be used to filter the record set enumerations.
  82395. .UNINDENT
  82396. .UNINDENT
  82397. .sp
  82398. CLI Example:
  82399. .INDENT 7.0
  82400. .INDENT 3.5
  82401. .sp
  82402. .nf
  82403. .ft C
  82404. salt\-call azurearm_dns.record_sets_list_by_dns_zone myzone testgroup
  82405. .ft P
  82406. .fi
  82407. .UNINDENT
  82408. .UNINDENT
  82409. .UNINDENT
  82410. .INDENT 0.0
  82411. .TP
  82412. .B salt.modules.azurearm_dns.record_sets_list_by_type(zone_name, resource_group, record_type, top=None, recordsetnamesuffix=None, **kwargs)
  82413. New in version 3000.
  82414. .sp
  82415. Lists the record sets of a specified type in a DNS zone.
  82416. .INDENT 7.0
  82417. .TP
  82418. .B Parameters
  82419. .INDENT 7.0
  82420. .IP \(bu 2
  82421. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82422. .IP \(bu 2
  82423. \fBresource_group\fP \-\- The name of the resource group.
  82424. .IP \(bu 2
  82425. \fBrecord_type\fP \-\- The type of record sets to enumerate.
  82426. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82427. .IP \(bu 2
  82428. \fBtop\fP \-\- The maximum number of record sets to return. If not specified,
  82429. returns up to 100 record sets.
  82430. .IP \(bu 2
  82431. \fBrecordsetnamesuffix\fP \-\- The suffix label of the record set name that has
  82432. to be used to filter the record set enumerations.
  82433. .UNINDENT
  82434. .UNINDENT
  82435. .sp
  82436. CLI Example:
  82437. .INDENT 7.0
  82438. .INDENT 3.5
  82439. .sp
  82440. .nf
  82441. .ft C
  82442. salt\-call azurearm_dns.record_sets_list_by_type myzone testgroup SOA
  82443. .ft P
  82444. .fi
  82445. .UNINDENT
  82446. .UNINDENT
  82447. .UNINDENT
  82448. .INDENT 0.0
  82449. .TP
  82450. .B salt.modules.azurearm_dns.zone_create_or_update(name, resource_group, **kwargs)
  82451. New in version 3000.
  82452. .sp
  82453. Creates or updates a DNS zone. Does not modify DNS records within the zone.
  82454. .INDENT 7.0
  82455. .TP
  82456. .B Parameters
  82457. .INDENT 7.0
  82458. .IP \(bu 2
  82459. \fBname\fP \-\- The name of the DNS zone to create (without a terminating dot).
  82460. .IP \(bu 2
  82461. \fBresource_group\fP \-\- The name of the resource group.
  82462. .UNINDENT
  82463. .UNINDENT
  82464. .sp
  82465. CLI Example:
  82466. .INDENT 7.0
  82467. .INDENT 3.5
  82468. .sp
  82469. .nf
  82470. .ft C
  82471. salt\-call azurearm_dns.zone_create_or_update myzone testgroup
  82472. .ft P
  82473. .fi
  82474. .UNINDENT
  82475. .UNINDENT
  82476. .UNINDENT
  82477. .INDENT 0.0
  82478. .TP
  82479. .B salt.modules.azurearm_dns.zone_delete(name, resource_group, **kwargs)
  82480. New in version 3000.
  82481. .sp
  82482. Delete a DNS zone within a resource group.
  82483. .INDENT 7.0
  82484. .TP
  82485. .B Parameters
  82486. .INDENT 7.0
  82487. .IP \(bu 2
  82488. \fBname\fP \-\- The name of the DNS zone to delete.
  82489. .IP \(bu 2
  82490. \fBresource_group\fP \-\- The name of the resource group.
  82491. .UNINDENT
  82492. .UNINDENT
  82493. .sp
  82494. CLI Example:
  82495. .INDENT 7.0
  82496. .INDENT 3.5
  82497. .sp
  82498. .nf
  82499. .ft C
  82500. salt\-call azurearm_dns.zone_delete myzone testgroup
  82501. .ft P
  82502. .fi
  82503. .UNINDENT
  82504. .UNINDENT
  82505. .UNINDENT
  82506. .INDENT 0.0
  82507. .TP
  82508. .B salt.modules.azurearm_dns.zone_get(name, resource_group, **kwargs)
  82509. New in version 3000.
  82510. .sp
  82511. Get a dictionary representing a DNS zone\(aqs properties, but not the
  82512. record sets within the zone.
  82513. .INDENT 7.0
  82514. .TP
  82515. .B Parameters
  82516. .INDENT 7.0
  82517. .IP \(bu 2
  82518. \fBname\fP \-\- The DNS zone to get.
  82519. .IP \(bu 2
  82520. \fBresource_group\fP \-\- The name of the resource group.
  82521. .UNINDENT
  82522. .UNINDENT
  82523. .sp
  82524. CLI Example:
  82525. .INDENT 7.0
  82526. .INDENT 3.5
  82527. .sp
  82528. .nf
  82529. .ft C
  82530. salt\-call azurearm_dns.zone_get myzone testgroup
  82531. .ft P
  82532. .fi
  82533. .UNINDENT
  82534. .UNINDENT
  82535. .UNINDENT
  82536. .INDENT 0.0
  82537. .TP
  82538. .B salt.modules.azurearm_dns.zones_list(top=None, **kwargs)
  82539. New in version 3000.
  82540. .sp
  82541. Lists the DNS zones in all resource groups in a subscription.
  82542. .INDENT 7.0
  82543. .TP
  82544. .B Parameters
  82545. \fBtop\fP \-\- The maximum number of DNS zones to return. If not specified,
  82546. eturns up to 100 zones.
  82547. .UNINDENT
  82548. .sp
  82549. CLI Example:
  82550. .INDENT 7.0
  82551. .INDENT 3.5
  82552. .sp
  82553. .nf
  82554. .ft C
  82555. salt\-call azurearm_dns.zones_list
  82556. .ft P
  82557. .fi
  82558. .UNINDENT
  82559. .UNINDENT
  82560. .UNINDENT
  82561. .INDENT 0.0
  82562. .TP
  82563. .B salt.modules.azurearm_dns.zones_list_by_resource_group(resource_group, top=None, **kwargs)
  82564. New in version 3000.
  82565. .sp
  82566. Lists the DNS zones in a resource group.
  82567. .INDENT 7.0
  82568. .TP
  82569. .B Parameters
  82570. .INDENT 7.0
  82571. .IP \(bu 2
  82572. \fBresource_group\fP \-\- The name of the resource group.
  82573. .IP \(bu 2
  82574. \fBtop\fP \-\- The maximum number of DNS zones to return. If not specified,
  82575. returns up to 100 zones.
  82576. .UNINDENT
  82577. .UNINDENT
  82578. .sp
  82579. CLI Example:
  82580. .INDENT 7.0
  82581. .INDENT 3.5
  82582. .sp
  82583. .nf
  82584. .ft C
  82585. salt\-call azurearm_dns.zones_list_by_resource_group testgroup
  82586. .ft P
  82587. .fi
  82588. .UNINDENT
  82589. .UNINDENT
  82590. .UNINDENT
  82591. .SS salt.modules.azurearm_network
  82592. .sp
  82593. Azure (ARM) Network Execution Module
  82594. .sp
  82595. New in version 2019.2.0.
  82596. .INDENT 0.0
  82597. .TP
  82598. .B maintainer
  82599. <\fI\%devops@decisionlab.io\fP>
  82600. .TP
  82601. .B maturity
  82602. new
  82603. .TP
  82604. .B depends
  82605. .INDENT 7.0
  82606. .IP \(bu 2
  82607. \fI\%azure\fP >= 2.0.0
  82608. .IP \(bu 2
  82609. \fI\%azure\-common\fP >= 1.1.8
  82610. .IP \(bu 2
  82611. \fI\%azure\-mgmt\fP >= 1.0.0
  82612. .IP \(bu 2
  82613. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  82614. .IP \(bu 2
  82615. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  82616. .IP \(bu 2
  82617. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  82618. .IP \(bu 2
  82619. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  82620. .IP \(bu 2
  82621. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  82622. .IP \(bu 2
  82623. \fI\%azure\-storage\fP >= 0.34.3
  82624. .IP \(bu 2
  82625. \fI\%msrestazure\fP >= 0.4.21
  82626. .UNINDENT
  82627. .TP
  82628. .B platform
  82629. linux
  82630. .TP
  82631. .B configuration
  82632. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  82633. to every function in order to work properly.
  82634. .sp
  82635. Required provider parameters:
  82636. .INDENT 7.0
  82637. .TP
  82638. .B if using username and password:
  82639. .INDENT 7.0
  82640. .IP \(bu 2
  82641. \fBsubscription_id\fP
  82642. .IP \(bu 2
  82643. \fBusername\fP
  82644. .IP \(bu 2
  82645. \fBpassword\fP
  82646. .UNINDENT
  82647. .TP
  82648. .B if using a service principal:
  82649. .INDENT 7.0
  82650. .IP \(bu 2
  82651. \fBsubscription_id\fP
  82652. .IP \(bu 2
  82653. \fBtenant\fP
  82654. .IP \(bu 2
  82655. \fBclient_id\fP
  82656. .IP \(bu 2
  82657. \fBsecret\fP
  82658. .UNINDENT
  82659. .UNINDENT
  82660. .sp
  82661. Optional provider parameters:
  82662. .UNINDENT
  82663. .INDENT 0.0
  82664. .TP
  82665. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  82666. .INDENT 7.0
  82667. .TP
  82668. .B Possible values:
  82669. .INDENT 7.0
  82670. .IP \(bu 2
  82671. \fBAZURE_PUBLIC_CLOUD\fP (default)
  82672. .IP \(bu 2
  82673. \fBAZURE_CHINA_CLOUD\fP
  82674. .IP \(bu 2
  82675. \fBAZURE_US_GOV_CLOUD\fP
  82676. .IP \(bu 2
  82677. \fBAZURE_GERMAN_CLOUD\fP
  82678. .UNINDENT
  82679. .UNINDENT
  82680. .UNINDENT
  82681. .INDENT 0.0
  82682. .TP
  82683. .B salt.modules.azurearm_network.check_dns_name_availability(name, region, **kwargs)
  82684. New in version 2019.2.0.
  82685. .sp
  82686. Check whether a domain name in the current zone is available for use.
  82687. .INDENT 7.0
  82688. .TP
  82689. .B Parameters
  82690. .INDENT 7.0
  82691. .IP \(bu 2
  82692. \fBname\fP \-\- The DNS name to query.
  82693. .IP \(bu 2
  82694. \fBregion\fP \-\- The region to query for the DNS name in question.
  82695. .UNINDENT
  82696. .UNINDENT
  82697. .sp
  82698. CLI Example:
  82699. .INDENT 7.0
  82700. .INDENT 3.5
  82701. .sp
  82702. .nf
  82703. .ft C
  82704. salt\-call azurearm_network.check_dns_name_availability testdnsname westus
  82705. .ft P
  82706. .fi
  82707. .UNINDENT
  82708. .UNINDENT
  82709. .UNINDENT
  82710. .INDENT 0.0
  82711. .TP
  82712. .B salt.modules.azurearm_network.check_ip_address_availability(ip_address, virtual_network, resource_group, **kwargs)
  82713. New in version 2019.2.0.
  82714. .sp
  82715. Check that a private ip address is available within the specified
  82716. virtual network.
  82717. .INDENT 7.0
  82718. .TP
  82719. .B Parameters
  82720. .INDENT 7.0
  82721. .IP \(bu 2
  82722. \fBip_address\fP \-\- The ip_address to query.
  82723. .IP \(bu 2
  82724. \fBvirtual_network\fP \-\- The virtual network to query for the IP address
  82725. in question.
  82726. .IP \(bu 2
  82727. \fBresource_group\fP \-\- The resource group name assigned to the
  82728. virtual network.
  82729. .UNINDENT
  82730. .UNINDENT
  82731. .sp
  82732. CLI Example:
  82733. .INDENT 7.0
  82734. .INDENT 3.5
  82735. .sp
  82736. .nf
  82737. .ft C
  82738. salt\-call azurearm_network.check_ip_address_availability 10.0.0.4 testnet testgroup
  82739. .ft P
  82740. .fi
  82741. .UNINDENT
  82742. .UNINDENT
  82743. .UNINDENT
  82744. .INDENT 0.0
  82745. .TP
  82746. .B salt.modules.azurearm_network.default_security_rule_get(name, security_group, resource_group, **kwargs)
  82747. New in version 2019.2.0.
  82748. .sp
  82749. Get details about a default security rule within a security group.
  82750. .INDENT 7.0
  82751. .TP
  82752. .B Parameters
  82753. .INDENT 7.0
  82754. .IP \(bu 2
  82755. \fBname\fP \-\- The name of the security rule to query.
  82756. .IP \(bu 2
  82757. \fBsecurity_group\fP \-\- The network security group containing the
  82758. security rule.
  82759. .IP \(bu 2
  82760. \fBresource_group\fP \-\- The resource group name assigned to the
  82761. network security group.
  82762. .UNINDENT
  82763. .UNINDENT
  82764. .sp
  82765. CLI Example:
  82766. .INDENT 7.0
  82767. .INDENT 3.5
  82768. .sp
  82769. .nf
  82770. .ft C
  82771. salt\-call azurearm_network.default_security_rule_get DenyAllOutBound testnsg testgroup
  82772. .ft P
  82773. .fi
  82774. .UNINDENT
  82775. .UNINDENT
  82776. .UNINDENT
  82777. .INDENT 0.0
  82778. .TP
  82779. .B salt.modules.azurearm_network.default_security_rules_list(security_group, resource_group, **kwargs)
  82780. New in version 2019.2.0.
  82781. .sp
  82782. List default security rules within a security group.
  82783. .INDENT 7.0
  82784. .TP
  82785. .B Parameters
  82786. .INDENT 7.0
  82787. .IP \(bu 2
  82788. \fBsecurity_group\fP \-\- The network security group to query.
  82789. .IP \(bu 2
  82790. \fBresource_group\fP \-\- The resource group name assigned to the
  82791. network security group.
  82792. .UNINDENT
  82793. .UNINDENT
  82794. .sp
  82795. CLI Example:
  82796. .INDENT 7.0
  82797. .INDENT 3.5
  82798. .sp
  82799. .nf
  82800. .ft C
  82801. salt\-call azurearm_network.default_security_rules_list testnsg testgroup
  82802. .ft P
  82803. .fi
  82804. .UNINDENT
  82805. .UNINDENT
  82806. .UNINDENT
  82807. .INDENT 0.0
  82808. .TP
  82809. .B salt.modules.azurearm_network.get_virtual_machine_scale_set_network_interface(name, scale_set, vm_index, resource_group, **kwargs)
  82810. New in version 2019.2.0.
  82811. .sp
  82812. Get information about a specific network interface within a scale set.
  82813. .INDENT 7.0
  82814. .TP
  82815. .B Parameters
  82816. .INDENT 7.0
  82817. .IP \(bu 2
  82818. \fBname\fP \-\- The name of the network interface to query.
  82819. .IP \(bu 2
  82820. \fBscale_set\fP \-\- The name of the scale set containing the interface.
  82821. .IP \(bu 2
  82822. \fBvm_index\fP \-\- The virtual machine index.
  82823. .IP \(bu 2
  82824. \fBresource_group\fP \-\- The resource group name assigned to the
  82825. scale set.
  82826. .UNINDENT
  82827. .UNINDENT
  82828. .sp
  82829. CLI Example:
  82830. .INDENT 7.0
  82831. .INDENT 3.5
  82832. .sp
  82833. .nf
  82834. .ft C
  82835. salt\-call azurearm_network.get_virtual_machine_scale_set_network_interface test\-iface0 testset testvm testgroup
  82836. .ft P
  82837. .fi
  82838. .UNINDENT
  82839. .UNINDENT
  82840. .UNINDENT
  82841. .INDENT 0.0
  82842. .TP
  82843. .B salt.modules.azurearm_network.list_virtual_machine_scale_set_network_interfaces(scale_set, resource_group, **kwargs)
  82844. New in version 2019.2.0.
  82845. .sp
  82846. Get information about all network interfaces within a scale set.
  82847. .INDENT 7.0
  82848. .TP
  82849. .B Parameters
  82850. .INDENT 7.0
  82851. .IP \(bu 2
  82852. \fBscale_set\fP \-\- The name of the scale set to query.
  82853. .IP \(bu 2
  82854. \fBresource_group\fP \-\- The resource group name assigned to the
  82855. scale set.
  82856. .UNINDENT
  82857. .UNINDENT
  82858. .sp
  82859. CLI Example:
  82860. .INDENT 7.0
  82861. .INDENT 3.5
  82862. .sp
  82863. .nf
  82864. .ft C
  82865. salt\-call azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces testset testgroup
  82866. .ft P
  82867. .fi
  82868. .UNINDENT
  82869. .UNINDENT
  82870. .UNINDENT
  82871. .INDENT 0.0
  82872. .TP
  82873. .B salt.modules.azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces(scale_set, vm_index, resource_group, **kwargs)
  82874. New in version 2019.2.0.
  82875. .sp
  82876. Get information about all network interfaces in a specific virtual machine within a scale set.
  82877. .INDENT 7.0
  82878. .TP
  82879. .B Parameters
  82880. .INDENT 7.0
  82881. .IP \(bu 2
  82882. \fBscale_set\fP \-\- The name of the scale set to query.
  82883. .IP \(bu 2
  82884. \fBvm_index\fP \-\- The virtual machine index.
  82885. .IP \(bu 2
  82886. \fBresource_group\fP \-\- The resource group name assigned to the
  82887. scale set.
  82888. .UNINDENT
  82889. .UNINDENT
  82890. .sp
  82891. CLI Example:
  82892. .INDENT 7.0
  82893. .INDENT 3.5
  82894. .sp
  82895. .nf
  82896. .ft C
  82897. salt\-call azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces testset testvm testgroup
  82898. .ft P
  82899. .fi
  82900. .UNINDENT
  82901. .UNINDENT
  82902. .UNINDENT
  82903. .INDENT 0.0
  82904. .TP
  82905. .B salt.modules.azurearm_network.load_balancer_create_or_update(name, resource_group, **kwargs)
  82906. New in version 2019.2.0.
  82907. .sp
  82908. Create or update a load balancer within a specified resource group.
  82909. .INDENT 7.0
  82910. .TP
  82911. .B Parameters
  82912. .INDENT 7.0
  82913. .IP \(bu 2
  82914. \fBname\fP \-\- The name of the load balancer to create.
  82915. .IP \(bu 2
  82916. \fBresource_group\fP \-\- The resource group name assigned to the
  82917. load balancer.
  82918. .UNINDENT
  82919. .UNINDENT
  82920. .sp
  82921. CLI Example:
  82922. .INDENT 7.0
  82923. .INDENT 3.5
  82924. .sp
  82925. .nf
  82926. .ft C
  82927. salt\-call azurearm_network.load_balancer_create_or_update testlb testgroup
  82928. .ft P
  82929. .fi
  82930. .UNINDENT
  82931. .UNINDENT
  82932. .UNINDENT
  82933. .INDENT 0.0
  82934. .TP
  82935. .B salt.modules.azurearm_network.load_balancer_delete(name, resource_group, **kwargs)
  82936. New in version 2019.2.0.
  82937. .sp
  82938. Delete a load balancer.
  82939. .INDENT 7.0
  82940. .TP
  82941. .B Parameters
  82942. .INDENT 7.0
  82943. .IP \(bu 2
  82944. \fBname\fP \-\- The name of the load balancer to delete.
  82945. .IP \(bu 2
  82946. \fBresource_group\fP \-\- The resource group name assigned to the
  82947. load balancer.
  82948. .UNINDENT
  82949. .UNINDENT
  82950. .sp
  82951. CLI Example:
  82952. .INDENT 7.0
  82953. .INDENT 3.5
  82954. .sp
  82955. .nf
  82956. .ft C
  82957. salt\-call azurearm_network.load_balancer_delete testlb testgroup
  82958. .ft P
  82959. .fi
  82960. .UNINDENT
  82961. .UNINDENT
  82962. .UNINDENT
  82963. .INDENT 0.0
  82964. .TP
  82965. .B salt.modules.azurearm_network.load_balancer_get(name, resource_group, **kwargs)
  82966. New in version 2019.2.0.
  82967. .sp
  82968. Get details about a specific load balancer.
  82969. .INDENT 7.0
  82970. .TP
  82971. .B Parameters
  82972. .INDENT 7.0
  82973. .IP \(bu 2
  82974. \fBname\fP \-\- The name of the load balancer to query.
  82975. .IP \(bu 2
  82976. \fBresource_group\fP \-\- The resource group name assigned to the
  82977. load balancer.
  82978. .UNINDENT
  82979. .UNINDENT
  82980. .sp
  82981. CLI Example:
  82982. .INDENT 7.0
  82983. .INDENT 3.5
  82984. .sp
  82985. .nf
  82986. .ft C
  82987. salt\-call azurearm_network.load_balancer_get testlb testgroup
  82988. .ft P
  82989. .fi
  82990. .UNINDENT
  82991. .UNINDENT
  82992. .UNINDENT
  82993. .INDENT 0.0
  82994. .TP
  82995. .B salt.modules.azurearm_network.load_balancers_list(resource_group, **kwargs)
  82996. New in version 2019.2.0.
  82997. .sp
  82998. List all load balancers within a resource group.
  82999. .INDENT 7.0
  83000. .TP
  83001. .B Parameters
  83002. \fBresource_group\fP \-\- The resource group name to list load balancers
  83003. within.
  83004. .UNINDENT
  83005. .sp
  83006. CLI Example:
  83007. .INDENT 7.0
  83008. .INDENT 3.5
  83009. .sp
  83010. .nf
  83011. .ft C
  83012. salt\-call azurearm_network.load_balancers_list testgroup
  83013. .ft P
  83014. .fi
  83015. .UNINDENT
  83016. .UNINDENT
  83017. .UNINDENT
  83018. .INDENT 0.0
  83019. .TP
  83020. .B salt.modules.azurearm_network.load_balancers_list_all(**kwargs)
  83021. New in version 2019.2.0.
  83022. .sp
  83023. List all load balancers within a subscription.
  83024. .sp
  83025. CLI Example:
  83026. .INDENT 7.0
  83027. .INDENT 3.5
  83028. .sp
  83029. .nf
  83030. .ft C
  83031. salt\-call azurearm_network.load_balancers_list_all
  83032. .ft P
  83033. .fi
  83034. .UNINDENT
  83035. .UNINDENT
  83036. .UNINDENT
  83037. .INDENT 0.0
  83038. .TP
  83039. .B salt.modules.azurearm_network.network_interface_create_or_update(name, ip_configurations, subnet, virtual_network, resource_group, **kwargs)
  83040. New in version 2019.2.0.
  83041. .sp
  83042. Create or update a network interface within a specified resource group.
  83043. .INDENT 7.0
  83044. .TP
  83045. .B Parameters
  83046. .INDENT 7.0
  83047. .IP \(bu 2
  83048. \fBname\fP \-\- The name of the network interface to create.
  83049. .IP \(bu 2
  83050. \fBip_configurations\fP \-\- A list of dictionaries representing valid
  83051. NetworkInterfaceIPConfiguration objects. The \(aqname\(aq key is required at
  83052. minimum. At least one IP Configuration must be present.
  83053. .IP \(bu 2
  83054. \fBsubnet\fP \-\- The name of the subnet assigned to the network interface.
  83055. .IP \(bu 2
  83056. \fBvirtual_network\fP \-\- The name of the virtual network assigned to the subnet.
  83057. .IP \(bu 2
  83058. \fBresource_group\fP \-\- The resource group name assigned to the
  83059. virtual network.
  83060. .UNINDENT
  83061. .UNINDENT
  83062. .sp
  83063. CLI Example:
  83064. .INDENT 7.0
  83065. .INDENT 3.5
  83066. .sp
  83067. .nf
  83068. .ft C
  83069. salt\-call azurearm_network.network_interface_create_or_update test\-iface0 [{\(aqname\(aq: \(aqtestipconfig1\(aq}] testsubnet testnet testgroup
  83070. .ft P
  83071. .fi
  83072. .UNINDENT
  83073. .UNINDENT
  83074. .UNINDENT
  83075. .INDENT 0.0
  83076. .TP
  83077. .B salt.modules.azurearm_network.network_interface_delete(name, resource_group, **kwargs)
  83078. New in version 2019.2.0.
  83079. .sp
  83080. Delete a network interface.
  83081. .INDENT 7.0
  83082. .TP
  83083. .B Parameters
  83084. .INDENT 7.0
  83085. .IP \(bu 2
  83086. \fBname\fP \-\- The name of the network interface to delete.
  83087. .IP \(bu 2
  83088. \fBresource_group\fP \-\- The resource group name assigned to the
  83089. network interface.
  83090. .UNINDENT
  83091. .UNINDENT
  83092. .sp
  83093. CLI Example:
  83094. .INDENT 7.0
  83095. .INDENT 3.5
  83096. .sp
  83097. .nf
  83098. .ft C
  83099. salt\-call azurearm_network.network_interface_delete test\-iface0 testgroup
  83100. .ft P
  83101. .fi
  83102. .UNINDENT
  83103. .UNINDENT
  83104. .UNINDENT
  83105. .INDENT 0.0
  83106. .TP
  83107. .B salt.modules.azurearm_network.network_interface_get(name, resource_group, **kwargs)
  83108. New in version 2019.2.0.
  83109. .sp
  83110. Get details about a specific network interface.
  83111. .INDENT 7.0
  83112. .TP
  83113. .B Parameters
  83114. .INDENT 7.0
  83115. .IP \(bu 2
  83116. \fBname\fP \-\- The name of the network interface to query.
  83117. .IP \(bu 2
  83118. \fBresource_group\fP \-\- The resource group name assigned to the
  83119. network interface.
  83120. .UNINDENT
  83121. .UNINDENT
  83122. .sp
  83123. CLI Example:
  83124. .INDENT 7.0
  83125. .INDENT 3.5
  83126. .sp
  83127. .nf
  83128. .ft C
  83129. salt\-call azurearm_network.network_interface_get test\-iface0 testgroup
  83130. .ft P
  83131. .fi
  83132. .UNINDENT
  83133. .UNINDENT
  83134. .UNINDENT
  83135. .INDENT 0.0
  83136. .TP
  83137. .B salt.modules.azurearm_network.network_interface_get_effective_route_table(name, resource_group, **kwargs)
  83138. New in version 2019.2.0.
  83139. .sp
  83140. Get all route tables for a specific network interface.
  83141. .INDENT 7.0
  83142. .TP
  83143. .B Parameters
  83144. .INDENT 7.0
  83145. .IP \(bu 2
  83146. \fBname\fP \-\- The name of the network interface to query.
  83147. .IP \(bu 2
  83148. \fBresource_group\fP \-\- The resource group name assigned to the
  83149. network interface.
  83150. .UNINDENT
  83151. .UNINDENT
  83152. .sp
  83153. CLI Example:
  83154. .INDENT 7.0
  83155. .INDENT 3.5
  83156. .sp
  83157. .nf
  83158. .ft C
  83159. salt\-call azurearm_network.network_interface_get_effective_route_table test\-iface0 testgroup
  83160. .ft P
  83161. .fi
  83162. .UNINDENT
  83163. .UNINDENT
  83164. .UNINDENT
  83165. .INDENT 0.0
  83166. .TP
  83167. .B salt.modules.azurearm_network.network_interface_list_effective_network_security_groups(name, resource_group, **kwargs)
  83168. New in version 2019.2.0.
  83169. .sp
  83170. Get all network security groups applied to a specific network interface.
  83171. .INDENT 7.0
  83172. .TP
  83173. .B Parameters
  83174. .INDENT 7.0
  83175. .IP \(bu 2
  83176. \fBname\fP \-\- The name of the network interface to query.
  83177. .IP \(bu 2
  83178. \fBresource_group\fP \-\- The resource group name assigned to the
  83179. network interface.
  83180. .UNINDENT
  83181. .UNINDENT
  83182. .sp
  83183. CLI Example:
  83184. .INDENT 7.0
  83185. .INDENT 3.5
  83186. .sp
  83187. .nf
  83188. .ft C
  83189. salt\-call azurearm_network.network_interface_list_effective_network_security_groups test\-iface0 testgroup
  83190. .ft P
  83191. .fi
  83192. .UNINDENT
  83193. .UNINDENT
  83194. .UNINDENT
  83195. .INDENT 0.0
  83196. .TP
  83197. .B salt.modules.azurearm_network.network_interfaces_list(resource_group, **kwargs)
  83198. New in version 2019.2.0.
  83199. .sp
  83200. List all network interfaces within a resource group.
  83201. .INDENT 7.0
  83202. .TP
  83203. .B Parameters
  83204. \fBresource_group\fP \-\- The resource group name to list network
  83205. interfaces within.
  83206. .UNINDENT
  83207. .sp
  83208. CLI Example:
  83209. .INDENT 7.0
  83210. .INDENT 3.5
  83211. .sp
  83212. .nf
  83213. .ft C
  83214. salt\-call azurearm_network.network_interfaces_list testgroup
  83215. .ft P
  83216. .fi
  83217. .UNINDENT
  83218. .UNINDENT
  83219. .UNINDENT
  83220. .INDENT 0.0
  83221. .TP
  83222. .B salt.modules.azurearm_network.network_interfaces_list_all(**kwargs)
  83223. New in version 2019.2.0.
  83224. .sp
  83225. List all network interfaces within a subscription.
  83226. .sp
  83227. CLI Example:
  83228. .INDENT 7.0
  83229. .INDENT 3.5
  83230. .sp
  83231. .nf
  83232. .ft C
  83233. salt\-call azurearm_network.network_interfaces_list_all
  83234. .ft P
  83235. .fi
  83236. .UNINDENT
  83237. .UNINDENT
  83238. .UNINDENT
  83239. .INDENT 0.0
  83240. .TP
  83241. .B salt.modules.azurearm_network.network_security_group_create_or_update(name, resource_group, **kwargs)
  83242. New in version 2019.2.0.
  83243. .sp
  83244. Create or update a network security group.
  83245. .INDENT 7.0
  83246. .TP
  83247. .B Parameters
  83248. .INDENT 7.0
  83249. .IP \(bu 2
  83250. \fBname\fP \-\- The name of the network security group to create.
  83251. .IP \(bu 2
  83252. \fBresource_group\fP \-\- The resource group name assigned to the
  83253. network security group.
  83254. .UNINDENT
  83255. .UNINDENT
  83256. .sp
  83257. CLI Example:
  83258. .INDENT 7.0
  83259. .INDENT 3.5
  83260. .sp
  83261. .nf
  83262. .ft C
  83263. salt\-call azurearm_network.network_security_group_create_or_update testnsg testgroup
  83264. .ft P
  83265. .fi
  83266. .UNINDENT
  83267. .UNINDENT
  83268. .UNINDENT
  83269. .INDENT 0.0
  83270. .TP
  83271. .B salt.modules.azurearm_network.network_security_group_delete(name, resource_group, **kwargs)
  83272. New in version 2019.2.0.
  83273. .sp
  83274. Delete a network security group within a resource group.
  83275. .INDENT 7.0
  83276. .TP
  83277. .B Parameters
  83278. .INDENT 7.0
  83279. .IP \(bu 2
  83280. \fBname\fP \-\- The name of the network security group to delete.
  83281. .IP \(bu 2
  83282. \fBresource_group\fP \-\- The resource group name assigned to the
  83283. network security group.
  83284. .UNINDENT
  83285. .UNINDENT
  83286. .sp
  83287. CLI Example:
  83288. .INDENT 7.0
  83289. .INDENT 3.5
  83290. .sp
  83291. .nf
  83292. .ft C
  83293. salt\-call azurearm_network.network_security_group_delete testnsg testgroup
  83294. .ft P
  83295. .fi
  83296. .UNINDENT
  83297. .UNINDENT
  83298. .UNINDENT
  83299. .INDENT 0.0
  83300. .TP
  83301. .B salt.modules.azurearm_network.network_security_group_get(name, resource_group, **kwargs)
  83302. New in version 2019.2.0.
  83303. .sp
  83304. Get details about a network security group within a resource group.
  83305. .INDENT 7.0
  83306. .TP
  83307. .B Parameters
  83308. .INDENT 7.0
  83309. .IP \(bu 2
  83310. \fBname\fP \-\- The name of the network security group to query.
  83311. .IP \(bu 2
  83312. \fBresource_group\fP \-\- The resource group name assigned to the
  83313. network security group.
  83314. .UNINDENT
  83315. .UNINDENT
  83316. .sp
  83317. CLI Example:
  83318. .INDENT 7.0
  83319. .INDENT 3.5
  83320. .sp
  83321. .nf
  83322. .ft C
  83323. salt\-call azurearm_network.network_security_group_get testnsg testgroup
  83324. .ft P
  83325. .fi
  83326. .UNINDENT
  83327. .UNINDENT
  83328. .UNINDENT
  83329. .INDENT 0.0
  83330. .TP
  83331. .B salt.modules.azurearm_network.network_security_groups_list(resource_group, **kwargs)
  83332. New in version 2019.2.0.
  83333. .sp
  83334. List all network security groups within a resource group.
  83335. .INDENT 7.0
  83336. .TP
  83337. .B Parameters
  83338. \fBresource_group\fP \-\- The resource group name to list network security groups within.
  83339. .UNINDENT
  83340. .sp
  83341. CLI Example:
  83342. .INDENT 7.0
  83343. .INDENT 3.5
  83344. .sp
  83345. .nf
  83346. .ft C
  83347. salt\-call azurearm_network.network_security_groups_list testgroup
  83348. .ft P
  83349. .fi
  83350. .UNINDENT
  83351. .UNINDENT
  83352. .UNINDENT
  83353. .INDENT 0.0
  83354. .TP
  83355. .B salt.modules.azurearm_network.network_security_groups_list_all(**kwargs)
  83356. New in version 2019.2.0.
  83357. .sp
  83358. List all network security groups within a subscription.
  83359. .sp
  83360. CLI Example:
  83361. .INDENT 7.0
  83362. .INDENT 3.5
  83363. .sp
  83364. .nf
  83365. .ft C
  83366. salt\-call azurearm_network.network_security_groups_list_all
  83367. .ft P
  83368. .fi
  83369. .UNINDENT
  83370. .UNINDENT
  83371. .UNINDENT
  83372. .INDENT 0.0
  83373. .TP
  83374. .B salt.modules.azurearm_network.public_ip_address_create_or_update(name, resource_group, **kwargs)
  83375. New in version 2019.2.0.
  83376. .sp
  83377. Create or update a public IP address within a specified resource group.
  83378. .INDENT 7.0
  83379. .TP
  83380. .B Parameters
  83381. .INDENT 7.0
  83382. .IP \(bu 2
  83383. \fBname\fP \-\- The name of the public IP address to create.
  83384. .IP \(bu 2
  83385. \fBresource_group\fP \-\- The resource group name assigned to the
  83386. public IP address.
  83387. .UNINDENT
  83388. .UNINDENT
  83389. .sp
  83390. CLI Example:
  83391. .INDENT 7.0
  83392. .INDENT 3.5
  83393. .sp
  83394. .nf
  83395. .ft C
  83396. salt\-call azurearm_network.public_ip_address_create_or_update test\-ip\-0 testgroup
  83397. .ft P
  83398. .fi
  83399. .UNINDENT
  83400. .UNINDENT
  83401. .UNINDENT
  83402. .INDENT 0.0
  83403. .TP
  83404. .B salt.modules.azurearm_network.public_ip_address_delete(name, resource_group, **kwargs)
  83405. New in version 2019.2.0.
  83406. .sp
  83407. Delete a public IP address.
  83408. .INDENT 7.0
  83409. .TP
  83410. .B Parameters
  83411. .INDENT 7.0
  83412. .IP \(bu 2
  83413. \fBname\fP \-\- The name of the public IP address to delete.
  83414. .IP \(bu 2
  83415. \fBresource_group\fP \-\- The resource group name assigned to the
  83416. public IP address.
  83417. .UNINDENT
  83418. .UNINDENT
  83419. .sp
  83420. CLI Example:
  83421. .INDENT 7.0
  83422. .INDENT 3.5
  83423. .sp
  83424. .nf
  83425. .ft C
  83426. salt\-call azurearm_network.public_ip_address_delete test\-pub\-ip testgroup
  83427. .ft P
  83428. .fi
  83429. .UNINDENT
  83430. .UNINDENT
  83431. .UNINDENT
  83432. .INDENT 0.0
  83433. .TP
  83434. .B salt.modules.azurearm_network.public_ip_address_get(name, resource_group, **kwargs)
  83435. New in version 2019.2.0.
  83436. .sp
  83437. Get details about a specific public IP address.
  83438. .INDENT 7.0
  83439. .TP
  83440. .B Parameters
  83441. .INDENT 7.0
  83442. .IP \(bu 2
  83443. \fBname\fP \-\- The name of the public IP address to query.
  83444. .IP \(bu 2
  83445. \fBresource_group\fP \-\- The resource group name assigned to the
  83446. public IP address.
  83447. .UNINDENT
  83448. .UNINDENT
  83449. .sp
  83450. CLI Example:
  83451. .INDENT 7.0
  83452. .INDENT 3.5
  83453. .sp
  83454. .nf
  83455. .ft C
  83456. salt\-call azurearm_network.public_ip_address_get test\-pub\-ip testgroup
  83457. .ft P
  83458. .fi
  83459. .UNINDENT
  83460. .UNINDENT
  83461. .UNINDENT
  83462. .INDENT 0.0
  83463. .TP
  83464. .B salt.modules.azurearm_network.public_ip_addresses_list(resource_group, **kwargs)
  83465. New in version 2019.2.0.
  83466. .sp
  83467. List all public IP addresses within a resource group.
  83468. .INDENT 7.0
  83469. .TP
  83470. .B Parameters
  83471. \fBresource_group\fP \-\- The resource group name to list public IP
  83472. addresses within.
  83473. .UNINDENT
  83474. .sp
  83475. CLI Example:
  83476. .INDENT 7.0
  83477. .INDENT 3.5
  83478. .sp
  83479. .nf
  83480. .ft C
  83481. salt\-call azurearm_network.public_ip_addresses_list testgroup
  83482. .ft P
  83483. .fi
  83484. .UNINDENT
  83485. .UNINDENT
  83486. .UNINDENT
  83487. .INDENT 0.0
  83488. .TP
  83489. .B salt.modules.azurearm_network.public_ip_addresses_list_all(**kwargs)
  83490. New in version 2019.2.0.
  83491. .sp
  83492. List all public IP addresses within a subscription.
  83493. .sp
  83494. CLI Example:
  83495. .INDENT 7.0
  83496. .INDENT 3.5
  83497. .sp
  83498. .nf
  83499. .ft C
  83500. salt\-call azurearm_network.public_ip_addresses_list_all
  83501. .ft P
  83502. .fi
  83503. .UNINDENT
  83504. .UNINDENT
  83505. .UNINDENT
  83506. .INDENT 0.0
  83507. .TP
  83508. .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)
  83509. New in version 2019.2.0.
  83510. .sp
  83511. Create or update a route within a specified route table.
  83512. .INDENT 7.0
  83513. .TP
  83514. .B Parameters
  83515. .INDENT 7.0
  83516. .IP \(bu 2
  83517. \fBname\fP \-\- The name of the route to create.
  83518. .IP \(bu 2
  83519. \fBaddress_prefix\fP \-\- The destination CIDR to which the route applies.
  83520. .IP \(bu 2
  83521. \fBnext_hop_type\fP \-\- The type of Azure hop the packet should be sent to. Possible values are:
  83522. \(aqVirtualNetworkGateway\(aq, \(aqVnetLocal\(aq, \(aqInternet\(aq, \(aqVirtualAppliance\(aq, and \(aqNone\(aq.
  83523. .IP \(bu 2
  83524. \fBnext_hop_ip_address\fP \-\- Optional IP address to which packets should be forwarded. Next hop
  83525. values are only allowed in routes where the next_hop_type is \(aqVirtualAppliance\(aq.
  83526. .IP \(bu 2
  83527. \fBroute_table\fP \-\- The name of the route table containing the route.
  83528. .IP \(bu 2
  83529. \fBresource_group\fP \-\- The resource group name assigned to the
  83530. route table.
  83531. .UNINDENT
  83532. .UNINDENT
  83533. .sp
  83534. CLI Example:
  83535. .INDENT 7.0
  83536. .INDENT 3.5
  83537. .sp
  83538. .nf
  83539. .ft C
  83540. salt\-call azurearm_network.route_create_or_update test\-rt \(aq10.0.0.0/8\(aq test\-rt\-table testgroup
  83541. .ft P
  83542. .fi
  83543. .UNINDENT
  83544. .UNINDENT
  83545. .UNINDENT
  83546. .INDENT 0.0
  83547. .TP
  83548. .B salt.modules.azurearm_network.route_delete(name, route_table, resource_group, **kwargs)
  83549. New in version 2019.2.0.
  83550. .sp
  83551. Delete a route from a route table.
  83552. .INDENT 7.0
  83553. .TP
  83554. .B Parameters
  83555. .INDENT 7.0
  83556. .IP \(bu 2
  83557. \fBname\fP \-\- The route to delete.
  83558. .IP \(bu 2
  83559. \fBroute_table\fP \-\- The route table containing the route.
  83560. .IP \(bu 2
  83561. \fBresource_group\fP \-\- The resource group name assigned to the
  83562. route table.
  83563. .UNINDENT
  83564. .UNINDENT
  83565. .sp
  83566. CLI Example:
  83567. .INDENT 7.0
  83568. .INDENT 3.5
  83569. .sp
  83570. .nf
  83571. .ft C
  83572. salt\-call azurearm_network.route_delete test\-rt test\-rt\-table testgroup
  83573. .ft P
  83574. .fi
  83575. .UNINDENT
  83576. .UNINDENT
  83577. .UNINDENT
  83578. .INDENT 0.0
  83579. .TP
  83580. .B salt.modules.azurearm_network.route_filter_create_or_update(name, resource_group, **kwargs)
  83581. New in version 2019.2.0.
  83582. .sp
  83583. Create or update a route filter within a specified resource group.
  83584. .INDENT 7.0
  83585. .TP
  83586. .B Parameters
  83587. .INDENT 7.0
  83588. .IP \(bu 2
  83589. \fBname\fP \-\- The name of the route filter to create.
  83590. .IP \(bu 2
  83591. \fBresource_group\fP \-\- The resource group name assigned to the
  83592. route filter.
  83593. .UNINDENT
  83594. .UNINDENT
  83595. .sp
  83596. CLI Example:
  83597. .INDENT 7.0
  83598. .INDENT 3.5
  83599. .sp
  83600. .nf
  83601. .ft C
  83602. salt\-call azurearm_network.route_filter_create_or_update test\-filter testgroup
  83603. .ft P
  83604. .fi
  83605. .UNINDENT
  83606. .UNINDENT
  83607. .UNINDENT
  83608. .INDENT 0.0
  83609. .TP
  83610. .B salt.modules.azurearm_network.route_filter_delete(name, resource_group, **kwargs)
  83611. New in version 2019.2.0.
  83612. .sp
  83613. Delete a route filter.
  83614. .INDENT 7.0
  83615. .TP
  83616. .B Parameters
  83617. .INDENT 7.0
  83618. .IP \(bu 2
  83619. \fBname\fP \-\- The name of the route filter to delete.
  83620. .IP \(bu 2
  83621. \fBresource_group\fP \-\- The resource group name assigned to the
  83622. route filter.
  83623. .UNINDENT
  83624. .UNINDENT
  83625. .sp
  83626. CLI Example:
  83627. .INDENT 7.0
  83628. .INDENT 3.5
  83629. .sp
  83630. .nf
  83631. .ft C
  83632. salt\-call azurearm_network.route_filter_delete test\-filter testgroup
  83633. .ft P
  83634. .fi
  83635. .UNINDENT
  83636. .UNINDENT
  83637. .UNINDENT
  83638. .INDENT 0.0
  83639. .TP
  83640. .B salt.modules.azurearm_network.route_filter_get(name, resource_group, **kwargs)
  83641. New in version 2019.2.0.
  83642. .sp
  83643. Get details about a specific route filter.
  83644. .INDENT 7.0
  83645. .TP
  83646. .B Parameters
  83647. .INDENT 7.0
  83648. .IP \(bu 2
  83649. \fBname\fP \-\- The name of the route table to query.
  83650. .IP \(bu 2
  83651. \fBresource_group\fP \-\- The resource group name assigned to the
  83652. route filter.
  83653. .UNINDENT
  83654. .UNINDENT
  83655. .sp
  83656. CLI Example:
  83657. .INDENT 7.0
  83658. .INDENT 3.5
  83659. .sp
  83660. .nf
  83661. .ft C
  83662. salt\-call azurearm_network.route_filter_get test\-filter testgroup
  83663. .ft P
  83664. .fi
  83665. .UNINDENT
  83666. .UNINDENT
  83667. .UNINDENT
  83668. .INDENT 0.0
  83669. .TP
  83670. .B salt.modules.azurearm_network.route_filter_rule_create_or_update(name, access, communities, route_filter, resource_group, **kwargs)
  83671. New in version 2019.2.0.
  83672. .sp
  83673. Create or update a rule within a specified route filter.
  83674. .INDENT 7.0
  83675. .TP
  83676. .B Parameters
  83677. .INDENT 7.0
  83678. .IP \(bu 2
  83679. \fBname\fP \-\- The name of the rule to create.
  83680. .IP \(bu 2
  83681. \fBaccess\fP \-\- The access type of the rule. Valid values are \(aqAllow\(aq and \(aqDeny\(aq.
  83682. .IP \(bu 2
  83683. \fBcommunities\fP \-\- A list of BGP communities to filter on.
  83684. .IP \(bu 2
  83685. \fBroute_filter\fP \-\- The name of the route filter containing the rule.
  83686. .IP \(bu 2
  83687. \fBresource_group\fP \-\- The resource group name assigned to the
  83688. route filter.
  83689. .UNINDENT
  83690. .UNINDENT
  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_filter_rule_create_or_update test\-rule allow "[\(aq12076:51006\(aq]" test\-filter testgroup
  83699. .ft P
  83700. .fi
  83701. .UNINDENT
  83702. .UNINDENT
  83703. .UNINDENT
  83704. .INDENT 0.0
  83705. .TP
  83706. .B salt.modules.azurearm_network.route_filter_rule_delete(name, route_filter, resource_group, **kwargs)
  83707. New in version 2019.2.0.
  83708. .sp
  83709. Delete a route filter rule.
  83710. .INDENT 7.0
  83711. .TP
  83712. .B Parameters
  83713. .INDENT 7.0
  83714. .IP \(bu 2
  83715. \fBname\fP \-\- The route filter rule to delete.
  83716. .IP \(bu 2
  83717. \fBroute_filter\fP \-\- The route filter containing the rule.
  83718. .IP \(bu 2
  83719. \fBresource_group\fP \-\- The resource group name assigned to the
  83720. route filter.
  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_filter_rule_delete test\-rule test\-filter 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_filter_rule_get(name, route_filter, resource_group, **kwargs)
  83739. New in version 2019.2.0.
  83740. .sp
  83741. Get details about a specific route filter rule.
  83742. .INDENT 7.0
  83743. .TP
  83744. .B Parameters
  83745. .INDENT 7.0
  83746. .IP \(bu 2
  83747. \fBname\fP \-\- The route filter rule to query.
  83748. .IP \(bu 2
  83749. \fBroute_filter\fP \-\- The route filter containing the rule.
  83750. .IP \(bu 2
  83751. \fBresource_group\fP \-\- The resource group name assigned to the
  83752. route filter.
  83753. .UNINDENT
  83754. .UNINDENT
  83755. .sp
  83756. CLI Example:
  83757. .INDENT 7.0
  83758. .INDENT 3.5
  83759. .sp
  83760. .nf
  83761. .ft C
  83762. salt\-call azurearm_network.route_filter_rule_get test\-rule test\-filter testgroup
  83763. .ft P
  83764. .fi
  83765. .UNINDENT
  83766. .UNINDENT
  83767. .UNINDENT
  83768. .INDENT 0.0
  83769. .TP
  83770. .B salt.modules.azurearm_network.route_filter_rules_list(route_filter, resource_group, **kwargs)
  83771. New in version 2019.2.0.
  83772. .sp
  83773. List all routes within a route filter.
  83774. .INDENT 7.0
  83775. .TP
  83776. .B Parameters
  83777. .INDENT 7.0
  83778. .IP \(bu 2
  83779. \fBroute_filter\fP \-\- The route filter to query.
  83780. .IP \(bu 2
  83781. \fBresource_group\fP \-\- The resource group name assigned to the
  83782. route filter.
  83783. .UNINDENT
  83784. .UNINDENT
  83785. .sp
  83786. CLI Example:
  83787. .INDENT 7.0
  83788. .INDENT 3.5
  83789. .sp
  83790. .nf
  83791. .ft C
  83792. salt\-call azurearm_network.route_filter_rules_list test\-filter testgroup
  83793. .ft P
  83794. .fi
  83795. .UNINDENT
  83796. .UNINDENT
  83797. .UNINDENT
  83798. .INDENT 0.0
  83799. .TP
  83800. .B salt.modules.azurearm_network.route_filters_list(resource_group, **kwargs)
  83801. New in version 2019.2.0.
  83802. .sp
  83803. List all route filters within a resource group.
  83804. .INDENT 7.0
  83805. .TP
  83806. .B Parameters
  83807. \fBresource_group\fP \-\- The resource group name to list route
  83808. filters within.
  83809. .UNINDENT
  83810. .sp
  83811. CLI Example:
  83812. .INDENT 7.0
  83813. .INDENT 3.5
  83814. .sp
  83815. .nf
  83816. .ft C
  83817. salt\-call azurearm_network.route_filters_list testgroup
  83818. .ft P
  83819. .fi
  83820. .UNINDENT
  83821. .UNINDENT
  83822. .UNINDENT
  83823. .INDENT 0.0
  83824. .TP
  83825. .B salt.modules.azurearm_network.route_filters_list_all(**kwargs)
  83826. New in version 2019.2.0.
  83827. .sp
  83828. List all route filters within a subscription.
  83829. .sp
  83830. CLI Example:
  83831. .INDENT 7.0
  83832. .INDENT 3.5
  83833. .sp
  83834. .nf
  83835. .ft C
  83836. salt\-call azurearm_network.route_filters_list_all
  83837. .ft P
  83838. .fi
  83839. .UNINDENT
  83840. .UNINDENT
  83841. .UNINDENT
  83842. .INDENT 0.0
  83843. .TP
  83844. .B salt.modules.azurearm_network.route_get(name, route_table, resource_group, **kwargs)
  83845. New in version 2019.2.0.
  83846. .sp
  83847. Get details about a specific route.
  83848. .INDENT 7.0
  83849. .TP
  83850. .B Parameters
  83851. .INDENT 7.0
  83852. .IP \(bu 2
  83853. \fBname\fP \-\- The route to query.
  83854. .IP \(bu 2
  83855. \fBroute_table\fP \-\- The route table containing the route.
  83856. .IP \(bu 2
  83857. \fBresource_group\fP \-\- The resource group name assigned to the
  83858. route table.
  83859. .UNINDENT
  83860. .UNINDENT
  83861. .sp
  83862. CLI Example:
  83863. .INDENT 7.0
  83864. .INDENT 3.5
  83865. .sp
  83866. .nf
  83867. .ft C
  83868. salt\-call azurearm_network.route_get test\-rt test\-rt\-table testgroup
  83869. .ft P
  83870. .fi
  83871. .UNINDENT
  83872. .UNINDENT
  83873. .UNINDENT
  83874. .INDENT 0.0
  83875. .TP
  83876. .B salt.modules.azurearm_network.route_table_create_or_update(name, resource_group, **kwargs)
  83877. New in version 2019.2.0.
  83878. .sp
  83879. Create or update a route table within a specified resource group.
  83880. .INDENT 7.0
  83881. .TP
  83882. .B Parameters
  83883. .INDENT 7.0
  83884. .IP \(bu 2
  83885. \fBname\fP \-\- The name of the route table to create.
  83886. .IP \(bu 2
  83887. \fBresource_group\fP \-\- The resource group name assigned to the
  83888. route table.
  83889. .UNINDENT
  83890. .UNINDENT
  83891. .sp
  83892. CLI Example:
  83893. .INDENT 7.0
  83894. .INDENT 3.5
  83895. .sp
  83896. .nf
  83897. .ft C
  83898. salt\-call azurearm_network.route_table_create_or_update test\-rt\-table testgroup
  83899. .ft P
  83900. .fi
  83901. .UNINDENT
  83902. .UNINDENT
  83903. .UNINDENT
  83904. .INDENT 0.0
  83905. .TP
  83906. .B salt.modules.azurearm_network.route_table_delete(name, resource_group, **kwargs)
  83907. New in version 2019.2.0.
  83908. .sp
  83909. Delete a route table.
  83910. .INDENT 7.0
  83911. .TP
  83912. .B Parameters
  83913. .INDENT 7.0
  83914. .IP \(bu 2
  83915. \fBname\fP \-\- The name of the route table to delete.
  83916. .IP \(bu 2
  83917. \fBresource_group\fP \-\- The resource group name assigned to the
  83918. route table.
  83919. .UNINDENT
  83920. .UNINDENT
  83921. .sp
  83922. CLI Example:
  83923. .INDENT 7.0
  83924. .INDENT 3.5
  83925. .sp
  83926. .nf
  83927. .ft C
  83928. salt\-call azurearm_network.route_table_delete test\-rt\-table testgroup
  83929. .ft P
  83930. .fi
  83931. .UNINDENT
  83932. .UNINDENT
  83933. .UNINDENT
  83934. .INDENT 0.0
  83935. .TP
  83936. .B salt.modules.azurearm_network.route_table_get(name, resource_group, **kwargs)
  83937. New in version 2019.2.0.
  83938. .sp
  83939. Get details about a specific route table.
  83940. .INDENT 7.0
  83941. .TP
  83942. .B Parameters
  83943. .INDENT 7.0
  83944. .IP \(bu 2
  83945. \fBname\fP \-\- The name of the route table to query.
  83946. .IP \(bu 2
  83947. \fBresource_group\fP \-\- The resource group name assigned to the
  83948. route table.
  83949. .UNINDENT
  83950. .UNINDENT
  83951. .sp
  83952. CLI Example:
  83953. .INDENT 7.0
  83954. .INDENT 3.5
  83955. .sp
  83956. .nf
  83957. .ft C
  83958. salt\-call azurearm_network.route_table_get test\-rt\-table testgroup
  83959. .ft P
  83960. .fi
  83961. .UNINDENT
  83962. .UNINDENT
  83963. .UNINDENT
  83964. .INDENT 0.0
  83965. .TP
  83966. .B salt.modules.azurearm_network.route_tables_list(resource_group, **kwargs)
  83967. New in version 2019.2.0.
  83968. .sp
  83969. List all route tables within a resource group.
  83970. .INDENT 7.0
  83971. .TP
  83972. .B Parameters
  83973. \fBresource_group\fP \-\- The resource group name to list route
  83974. tables within.
  83975. .UNINDENT
  83976. .sp
  83977. CLI Example:
  83978. .INDENT 7.0
  83979. .INDENT 3.5
  83980. .sp
  83981. .nf
  83982. .ft C
  83983. salt\-call azurearm_network.route_tables_list testgroup
  83984. .ft P
  83985. .fi
  83986. .UNINDENT
  83987. .UNINDENT
  83988. .UNINDENT
  83989. .INDENT 0.0
  83990. .TP
  83991. .B salt.modules.azurearm_network.route_tables_list_all(**kwargs)
  83992. New in version 2019.2.0.
  83993. .sp
  83994. List all route tables within a subscription.
  83995. .sp
  83996. CLI Example:
  83997. .INDENT 7.0
  83998. .INDENT 3.5
  83999. .sp
  84000. .nf
  84001. .ft C
  84002. salt\-call azurearm_network.route_tables_list_all
  84003. .ft P
  84004. .fi
  84005. .UNINDENT
  84006. .UNINDENT
  84007. .UNINDENT
  84008. .INDENT 0.0
  84009. .TP
  84010. .B salt.modules.azurearm_network.routes_list(route_table, resource_group, **kwargs)
  84011. New in version 2019.2.0.
  84012. .sp
  84013. List all routes within a route table.
  84014. .INDENT 7.0
  84015. .TP
  84016. .B Parameters
  84017. .INDENT 7.0
  84018. .IP \(bu 2
  84019. \fBroute_table\fP \-\- The route table to query.
  84020. .IP \(bu 2
  84021. \fBresource_group\fP \-\- The resource group name assigned to the
  84022. route table.
  84023. .UNINDENT
  84024. .UNINDENT
  84025. .sp
  84026. CLI Example:
  84027. .INDENT 7.0
  84028. .INDENT 3.5
  84029. .sp
  84030. .nf
  84031. .ft C
  84032. salt\-call azurearm_network.routes_list test\-rt\-table testgroup
  84033. .ft P
  84034. .fi
  84035. .UNINDENT
  84036. .UNINDENT
  84037. .UNINDENT
  84038. .INDENT 0.0
  84039. .TP
  84040. .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)
  84041. New in version 2019.2.0.
  84042. .sp
  84043. Create or update a security rule within a specified network security group.
  84044. .INDENT 7.0
  84045. .TP
  84046. .B Parameters
  84047. .INDENT 7.0
  84048. .IP \(bu 2
  84049. \fBname\fP \-\- The name of the security rule to create.
  84050. .IP \(bu 2
  84051. \fBaccess\fP \-\- \(aqallow\(aq or \(aqdeny\(aq
  84052. .IP \(bu 2
  84053. \fBdirection\fP \-\- \(aqinbound\(aq or \(aqoutbound\(aq
  84054. .IP \(bu 2
  84055. \fBpriority\fP \-\- Integer between 100 and 4096 used for ordering rule application.
  84056. .IP \(bu 2
  84057. \fBprotocol\fP \-\- \(aqtcp\(aq, \(aqudp\(aq, or \(aq*\(aq
  84058. .IP \(bu 2
  84059. \fBdestination_address_prefix\fP \-\- The CIDR or destination IP range. Asterix \(aq*\(aq can also be used to match all destination IPs.
  84060. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  84061. If this is an ingress rule, specifies where network traffic originates from.
  84062. .IP \(bu 2
  84063. \fBdestination_port_range\fP \-\- The destination port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  84064. can also be used to match all ports.
  84065. .IP \(bu 2
  84066. \fBsource_address_prefix\fP \-\- The CIDR or source IP range. Asterix \(aq*\(aq can also be used to match all source IPs.
  84067. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  84068. If this is an ingress rule, specifies where network traffic originates from.
  84069. .IP \(bu 2
  84070. \fBsource_port_range\fP \-\- The source port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  84071. can also be used to match all ports.
  84072. .IP \(bu 2
  84073. \fBdestination_address_prefixes\fP \-\- A list of destination_address_prefix values. This parameter overrides destination_address_prefix
  84074. and will cause any value entered there to be ignored.
  84075. .IP \(bu 2
  84076. \fBdestination_port_ranges\fP \-\- A list of destination_port_range values. This parameter overrides destination_port_range
  84077. and will cause any value entered there to be ignored.
  84078. .IP \(bu 2
  84079. \fBsource_address_prefixes\fP \-\- A list of source_address_prefix values. This parameter overrides source_address_prefix
  84080. and will cause any value entered there to be ignored.
  84081. .IP \(bu 2
  84082. \fBsource_port_ranges\fP \-\- A list of source_port_range values. This parameter overrides source_port_range
  84083. and will cause any value entered there to be ignored.
  84084. .IP \(bu 2
  84085. \fBsecurity_group\fP \-\- The network security group containing the
  84086. security rule.
  84087. .IP \(bu 2
  84088. \fBresource_group\fP \-\- The resource group name assigned to the
  84089. network security group.
  84090. .UNINDENT
  84091. .UNINDENT
  84092. .sp
  84093. CLI Example:
  84094. .INDENT 7.0
  84095. .INDENT 3.5
  84096. .sp
  84097. .nf
  84098. .ft C
  84099. 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
  84100. .ft P
  84101. .fi
  84102. .UNINDENT
  84103. .UNINDENT
  84104. .UNINDENT
  84105. .INDENT 0.0
  84106. .TP
  84107. .B salt.modules.azurearm_network.security_rule_delete(security_rule, security_group, resource_group, **kwargs)
  84108. New in version 2019.2.0.
  84109. .sp
  84110. Delete a security rule within a specified security group.
  84111. .INDENT 7.0
  84112. .TP
  84113. .B Parameters
  84114. .INDENT 7.0
  84115. .IP \(bu 2
  84116. \fBname\fP \-\- The name of the security rule to delete.
  84117. .IP \(bu 2
  84118. \fBsecurity_group\fP \-\- The network security group containing the
  84119. security rule.
  84120. .IP \(bu 2
  84121. \fBresource_group\fP \-\- The resource group name assigned to the
  84122. network security group.
  84123. .UNINDENT
  84124. .UNINDENT
  84125. .sp
  84126. CLI Example:
  84127. .INDENT 7.0
  84128. .INDENT 3.5
  84129. .sp
  84130. .nf
  84131. .ft C
  84132. salt\-call azurearm_network.security_rule_delete testrule1 testnsg testgroup
  84133. .ft P
  84134. .fi
  84135. .UNINDENT
  84136. .UNINDENT
  84137. .UNINDENT
  84138. .INDENT 0.0
  84139. .TP
  84140. .B salt.modules.azurearm_network.security_rule_get(security_rule, security_group, resource_group, **kwargs)
  84141. New in version 2019.2.0.
  84142. .sp
  84143. Get a security rule within a specified network security group.
  84144. .INDENT 7.0
  84145. .TP
  84146. .B Parameters
  84147. .INDENT 7.0
  84148. .IP \(bu 2
  84149. \fBname\fP \-\- The name of the security rule to query.
  84150. .IP \(bu 2
  84151. \fBsecurity_group\fP \-\- The network security group containing the
  84152. security rule.
  84153. .IP \(bu 2
  84154. \fBresource_group\fP \-\- The resource group name assigned to the
  84155. network security group.
  84156. .UNINDENT
  84157. .UNINDENT
  84158. .sp
  84159. CLI Example:
  84160. .INDENT 7.0
  84161. .INDENT 3.5
  84162. .sp
  84163. .nf
  84164. .ft C
  84165. salt\-call azurearm_network.security_rule_get testrule1 testnsg testgroup
  84166. .ft P
  84167. .fi
  84168. .UNINDENT
  84169. .UNINDENT
  84170. .UNINDENT
  84171. .INDENT 0.0
  84172. .TP
  84173. .B salt.modules.azurearm_network.security_rules_list(security_group, resource_group, **kwargs)
  84174. New in version 2019.2.0.
  84175. .sp
  84176. List security rules within a network security group.
  84177. .INDENT 7.0
  84178. .TP
  84179. .B Parameters
  84180. .INDENT 7.0
  84181. .IP \(bu 2
  84182. \fBsecurity_group\fP \-\- The network security group to query.
  84183. .IP \(bu 2
  84184. \fBresource_group\fP \-\- The resource group name assigned to the
  84185. network security group.
  84186. .UNINDENT
  84187. .UNINDENT
  84188. .sp
  84189. CLI Example:
  84190. .INDENT 7.0
  84191. .INDENT 3.5
  84192. .sp
  84193. .nf
  84194. .ft C
  84195. salt\-call azurearm_network.security_rules_list testnsg testgroup
  84196. .ft P
  84197. .fi
  84198. .UNINDENT
  84199. .UNINDENT
  84200. .UNINDENT
  84201. .INDENT 0.0
  84202. .TP
  84203. .B salt.modules.azurearm_network.subnet_create_or_update(name, address_prefix, virtual_network, resource_group, **kwargs)
  84204. New in version 2019.2.0.
  84205. .sp
  84206. Create or update a subnet.
  84207. .INDENT 7.0
  84208. .TP
  84209. .B Parameters
  84210. .INDENT 7.0
  84211. .IP \(bu 2
  84212. \fBname\fP \-\- The name assigned to the subnet being created or updated.
  84213. .IP \(bu 2
  84214. \fBaddress_prefix\fP \-\- A valid CIDR block within the virtual network.
  84215. .IP \(bu 2
  84216. \fBvirtual_network\fP \-\- The virtual network name containing the
  84217. subnet.
  84218. .IP \(bu 2
  84219. \fBresource_group\fP \-\- The resource group name assigned to the
  84220. virtual network.
  84221. .UNINDENT
  84222. .UNINDENT
  84223. .sp
  84224. CLI Example:
  84225. .INDENT 7.0
  84226. .INDENT 3.5
  84227. .sp
  84228. .nf
  84229. .ft C
  84230. salt\-call azurearm_network.subnet_create_or_update testsubnet \(aq10.0.0.0/24\(aq testnet testgroup
  84231. .ft P
  84232. .fi
  84233. .UNINDENT
  84234. .UNINDENT
  84235. .UNINDENT
  84236. .INDENT 0.0
  84237. .TP
  84238. .B salt.modules.azurearm_network.subnet_delete(name, virtual_network, resource_group, **kwargs)
  84239. New in version 2019.2.0.
  84240. .sp
  84241. Delete a subnet.
  84242. .INDENT 7.0
  84243. .TP
  84244. .B Parameters
  84245. .INDENT 7.0
  84246. .IP \(bu 2
  84247. \fBname\fP \-\- The name of the subnet to delete.
  84248. .IP \(bu 2
  84249. \fBvirtual_network\fP \-\- The virtual network name containing the
  84250. subnet.
  84251. .IP \(bu 2
  84252. \fBresource_group\fP \-\- The resource group name assigned to the
  84253. virtual network.
  84254. .UNINDENT
  84255. .UNINDENT
  84256. .sp
  84257. CLI Example:
  84258. .INDENT 7.0
  84259. .INDENT 3.5
  84260. .sp
  84261. .nf
  84262. .ft C
  84263. salt\-call azurearm_network.subnet_delete testsubnet testnet testgroup
  84264. .ft P
  84265. .fi
  84266. .UNINDENT
  84267. .UNINDENT
  84268. .UNINDENT
  84269. .INDENT 0.0
  84270. .TP
  84271. .B salt.modules.azurearm_network.subnet_get(name, virtual_network, resource_group, **kwargs)
  84272. New in version 2019.2.0.
  84273. .sp
  84274. Get details about a specific subnet.
  84275. .INDENT 7.0
  84276. .TP
  84277. .B Parameters
  84278. .INDENT 7.0
  84279. .IP \(bu 2
  84280. \fBname\fP \-\- The name of the subnet to query.
  84281. .IP \(bu 2
  84282. \fBvirtual_network\fP \-\- The virtual network name containing the
  84283. subnet.
  84284. .IP \(bu 2
  84285. \fBresource_group\fP \-\- The resource group name assigned to the
  84286. virtual network.
  84287. .UNINDENT
  84288. .UNINDENT
  84289. .sp
  84290. CLI Example:
  84291. .INDENT 7.0
  84292. .INDENT 3.5
  84293. .sp
  84294. .nf
  84295. .ft C
  84296. salt\-call azurearm_network.subnet_get testsubnet testnet testgroup
  84297. .ft P
  84298. .fi
  84299. .UNINDENT
  84300. .UNINDENT
  84301. .UNINDENT
  84302. .INDENT 0.0
  84303. .TP
  84304. .B salt.modules.azurearm_network.subnets_list(virtual_network, resource_group, **kwargs)
  84305. New in version 2019.2.0.
  84306. .sp
  84307. List all subnets within a virtual network.
  84308. .INDENT 7.0
  84309. .TP
  84310. .B Parameters
  84311. .INDENT 7.0
  84312. .IP \(bu 2
  84313. \fBvirtual_network\fP \-\- The virtual network name to list subnets within.
  84314. .IP \(bu 2
  84315. \fBresource_group\fP \-\- The resource group name assigned to the
  84316. virtual network.
  84317. .UNINDENT
  84318. .UNINDENT
  84319. .sp
  84320. CLI Example:
  84321. .INDENT 7.0
  84322. .INDENT 3.5
  84323. .sp
  84324. .nf
  84325. .ft C
  84326. salt\-call azurearm_network.subnets_list testnet testgroup
  84327. .ft P
  84328. .fi
  84329. .UNINDENT
  84330. .UNINDENT
  84331. .UNINDENT
  84332. .INDENT 0.0
  84333. .TP
  84334. .B salt.modules.azurearm_network.usages_list(location, **kwargs)
  84335. New in version 2019.2.0.
  84336. .sp
  84337. List subscription network usage for a location.
  84338. .INDENT 7.0
  84339. .TP
  84340. .B Parameters
  84341. \fBlocation\fP \-\- The Azure location to query for network usage.
  84342. .UNINDENT
  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.usages_list westus
  84351. .ft P
  84352. .fi
  84353. .UNINDENT
  84354. .UNINDENT
  84355. .UNINDENT
  84356. .INDENT 0.0
  84357. .TP
  84358. .B salt.modules.azurearm_network.virtual_network_create_or_update(name, address_prefixes, resource_group, **kwargs)
  84359. New in version 2019.2.0.
  84360. .sp
  84361. Create or update a virtual network.
  84362. .INDENT 7.0
  84363. .TP
  84364. .B Parameters
  84365. .INDENT 7.0
  84366. .IP \(bu 2
  84367. \fBname\fP \-\- The name assigned to the virtual network being
  84368. created or updated.
  84369. .IP \(bu 2
  84370. \fBaddress_prefixes\fP \-\- A list of CIDR blocks which can be used
  84371. by subnets within the virtual network.
  84372. .IP \(bu 2
  84373. \fBresource_group\fP \-\- The resource group name assigned to the
  84374. virtual network.
  84375. .UNINDENT
  84376. .UNINDENT
  84377. .sp
  84378. CLI Example:
  84379. .INDENT 7.0
  84380. .INDENT 3.5
  84381. .sp
  84382. .nf
  84383. .ft C
  84384. salt\-call azurearm_network.virtual_network_create_or_update testnet [\(aq10.0.0.0/16\(aq] testgroup
  84385. .ft P
  84386. .fi
  84387. .UNINDENT
  84388. .UNINDENT
  84389. .UNINDENT
  84390. .INDENT 0.0
  84391. .TP
  84392. .B salt.modules.azurearm_network.virtual_network_delete(name, resource_group, **kwargs)
  84393. New in version 2019.2.0.
  84394. .sp
  84395. Delete a virtual network.
  84396. .INDENT 7.0
  84397. .TP
  84398. .B Parameters
  84399. .INDENT 7.0
  84400. .IP \(bu 2
  84401. \fBname\fP \-\- The name of the virtual network to delete.
  84402. .IP \(bu 2
  84403. \fBresource_group\fP \-\- The resource group name assigned to the
  84404. virtual network
  84405. .UNINDENT
  84406. .UNINDENT
  84407. .sp
  84408. CLI Example:
  84409. .INDENT 7.0
  84410. .INDENT 3.5
  84411. .sp
  84412. .nf
  84413. .ft C
  84414. salt\-call azurearm_network.virtual_network_delete testnet testgroup
  84415. .ft P
  84416. .fi
  84417. .UNINDENT
  84418. .UNINDENT
  84419. .UNINDENT
  84420. .INDENT 0.0
  84421. .TP
  84422. .B salt.modules.azurearm_network.virtual_network_get(name, resource_group, **kwargs)
  84423. New in version 2019.2.0.
  84424. .sp
  84425. Get details about a specific virtual network.
  84426. .INDENT 7.0
  84427. .TP
  84428. .B Parameters
  84429. .INDENT 7.0
  84430. .IP \(bu 2
  84431. \fBname\fP \-\- The name of the virtual network to query.
  84432. .IP \(bu 2
  84433. \fBresource_group\fP \-\- The resource group name assigned to the
  84434. virtual network.
  84435. .UNINDENT
  84436. .UNINDENT
  84437. .sp
  84438. CLI Example:
  84439. .INDENT 7.0
  84440. .INDENT 3.5
  84441. .sp
  84442. .nf
  84443. .ft C
  84444. salt\-call azurearm_network.virtual_network_get testnet testgroup
  84445. .ft P
  84446. .fi
  84447. .UNINDENT
  84448. .UNINDENT
  84449. .UNINDENT
  84450. .INDENT 0.0
  84451. .TP
  84452. .B salt.modules.azurearm_network.virtual_networks_list(resource_group, **kwargs)
  84453. New in version 2019.2.0.
  84454. .sp
  84455. List all virtual networks within a resource group.
  84456. .INDENT 7.0
  84457. .TP
  84458. .B Parameters
  84459. \fBresource_group\fP \-\- The resource group name to list virtual networks
  84460. within.
  84461. .UNINDENT
  84462. .sp
  84463. CLI Example:
  84464. .INDENT 7.0
  84465. .INDENT 3.5
  84466. .sp
  84467. .nf
  84468. .ft C
  84469. salt\-call azurearm_network.virtual_networks_list testgroup
  84470. .ft P
  84471. .fi
  84472. .UNINDENT
  84473. .UNINDENT
  84474. .UNINDENT
  84475. .INDENT 0.0
  84476. .TP
  84477. .B salt.modules.azurearm_network.virtual_networks_list_all(**kwargs)
  84478. New in version 2019.2.0.
  84479. .sp
  84480. List all virtual networks within a subscription.
  84481. .sp
  84482. CLI Example:
  84483. .INDENT 7.0
  84484. .INDENT 3.5
  84485. .sp
  84486. .nf
  84487. .ft C
  84488. salt\-call azurearm_network.virtual_networks_list_all
  84489. .ft P
  84490. .fi
  84491. .UNINDENT
  84492. .UNINDENT
  84493. .UNINDENT
  84494. .SS salt.modules.boto3_sns module
  84495. .sp
  84496. Connection module for Amazon SNS
  84497. .INDENT 0.0
  84498. .TP
  84499. .B configuration
  84500. This module accepts explicit sns credentials but can also
  84501. utilize IAM roles assigned to the instance through Instance Profiles. Dynamic
  84502. credentials are then automatically obtained from AWS API and no further
  84503. configuration is necessary. More Information available at:
  84504. .INDENT 7.0
  84505. .INDENT 3.5
  84506. .sp
  84507. .nf
  84508. .ft C
  84509. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  84510. .ft P
  84511. .fi
  84512. .UNINDENT
  84513. .UNINDENT
  84514. .sp
  84515. If IAM roles are not used you need to specify them either in a pillar or
  84516. in the minion\(aqs config file:
  84517. .INDENT 7.0
  84518. .INDENT 3.5
  84519. .sp
  84520. .nf
  84521. .ft C
  84522. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  84523. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84524. .ft P
  84525. .fi
  84526. .UNINDENT
  84527. .UNINDENT
  84528. .sp
  84529. A region may also be specified in the configuration:
  84530. .INDENT 7.0
  84531. .INDENT 3.5
  84532. .sp
  84533. .nf
  84534. .ft C
  84535. sns.region: us\-east\-1
  84536. .ft P
  84537. .fi
  84538. .UNINDENT
  84539. .UNINDENT
  84540. .sp
  84541. If a region is not specified, the default is us\-east\-1.
  84542. .sp
  84543. It\(aqs also possible to specify key, keyid and region via a profile, either
  84544. as a passed in dict, or as a string to pull from pillars or minion config:
  84545. .INDENT 7.0
  84546. .INDENT 3.5
  84547. .sp
  84548. .nf
  84549. .ft C
  84550. myprofile:
  84551. keyid: GKTADJGHEIQSXMKKRBJ08H
  84552. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84553. region: us\-east\-1
  84554. .ft P
  84555. .fi
  84556. .UNINDENT
  84557. .UNINDENT
  84558. .TP
  84559. .B depends
  84560. boto3
  84561. .UNINDENT
  84562. .INDENT 0.0
  84563. .TP
  84564. .B salt.modules.boto3_sns.create_topic(Name, region=None, key=None, keyid=None, profile=None)
  84565. Create an SNS topic.
  84566. .sp
  84567. CLI example:
  84568. .INDENT 7.0
  84569. .INDENT 3.5
  84570. .sp
  84571. .nf
  84572. .ft C
  84573. salt myminion boto3_sns.create_topic mytopic region=us\-east\-1
  84574. .ft P
  84575. .fi
  84576. .UNINDENT
  84577. .UNINDENT
  84578. .UNINDENT
  84579. .INDENT 0.0
  84580. .TP
  84581. .B salt.modules.boto3_sns.delete_topic(TopicArn, region=None, key=None, keyid=None, profile=None)
  84582. Delete an SNS topic.
  84583. .sp
  84584. CLI example:
  84585. .INDENT 7.0
  84586. .INDENT 3.5
  84587. .sp
  84588. .nf
  84589. .ft C
  84590. salt myminion boto3_sns.delete_topic mytopic region=us\-east\-1
  84591. .ft P
  84592. .fi
  84593. .UNINDENT
  84594. .UNINDENT
  84595. .UNINDENT
  84596. .INDENT 0.0
  84597. .TP
  84598. .B salt.modules.boto3_sns.describe_topic(name, region=None, key=None, keyid=None, profile=None)
  84599. Returns details about a specific SNS topic, specified by name or ARN.
  84600. .sp
  84601. CLI example:
  84602. .INDENT 7.0
  84603. .INDENT 3.5
  84604. .sp
  84605. .nf
  84606. .ft C
  84607. salt my_favorite_client boto3_sns.describe_topic a_sns_topic_of_my_choice
  84608. .ft P
  84609. .fi
  84610. .UNINDENT
  84611. .UNINDENT
  84612. .UNINDENT
  84613. .INDENT 0.0
  84614. .TP
  84615. .B salt.modules.boto3_sns.get_subscription_attributes(SubscriptionArn, region=None, key=None, keyid=None, profile=None)
  84616. Returns all of the properties of a subscription.
  84617. .sp
  84618. CLI example:
  84619. .INDENT 7.0
  84620. .INDENT 3.5
  84621. .sp
  84622. .nf
  84623. .ft C
  84624. salt myminion boto3_sns.get_subscription_attributes somesubscription region=us\-west\-1
  84625. .ft P
  84626. .fi
  84627. .UNINDENT
  84628. .UNINDENT
  84629. .UNINDENT
  84630. .INDENT 0.0
  84631. .TP
  84632. .B salt.modules.boto3_sns.get_topic_attributes(TopicArn, region=None, key=None, keyid=None, profile=None)
  84633. Returns all of the properties of a topic. Topic properties returned might differ based on the
  84634. authorization of the user.
  84635. .sp
  84636. CLI example:
  84637. .INDENT 7.0
  84638. .INDENT 3.5
  84639. .sp
  84640. .nf
  84641. .ft C
  84642. salt myminion boto3_sns.get_topic_attributes someTopic region=us\-west\-1
  84643. .ft P
  84644. .fi
  84645. .UNINDENT
  84646. .UNINDENT
  84647. .UNINDENT
  84648. .INDENT 0.0
  84649. .TP
  84650. .B salt.modules.boto3_sns.list_subscriptions(region=None, key=None, keyid=None, profile=None)
  84651. Returns a list of the requester\(aqs topics
  84652. .sp
  84653. CLI example:
  84654. .INDENT 7.0
  84655. .INDENT 3.5
  84656. .sp
  84657. .nf
  84658. .ft C
  84659. salt myminion boto3_sns.list_subscriptions region=us\-east\-1
  84660. .ft P
  84661. .fi
  84662. .UNINDENT
  84663. .UNINDENT
  84664. .UNINDENT
  84665. .INDENT 0.0
  84666. .TP
  84667. .B salt.modules.boto3_sns.list_subscriptions_by_topic(TopicArn, region=None, key=None, keyid=None, profile=None)
  84668. Returns a list of the subscriptions to a specific topic
  84669. .sp
  84670. CLI example:
  84671. .INDENT 7.0
  84672. .INDENT 3.5
  84673. .sp
  84674. .nf
  84675. .ft C
  84676. salt myminion boto3_sns.list_subscriptions_by_topic mytopic region=us\-east\-1
  84677. .ft P
  84678. .fi
  84679. .UNINDENT
  84680. .UNINDENT
  84681. .UNINDENT
  84682. .INDENT 0.0
  84683. .TP
  84684. .B salt.modules.boto3_sns.list_topics(region=None, key=None, keyid=None, profile=None)
  84685. Returns a list of the requester\(aqs topics
  84686. .sp
  84687. CLI example:
  84688. .INDENT 7.0
  84689. .INDENT 3.5
  84690. .sp
  84691. .nf
  84692. .ft C
  84693. salt myminion boto3_sns.list_topics
  84694. .ft P
  84695. .fi
  84696. .UNINDENT
  84697. .UNINDENT
  84698. .UNINDENT
  84699. .INDENT 0.0
  84700. .TP
  84701. .B salt.modules.boto3_sns.set_subscription_attributes(SubscriptionArn, AttributeName, AttributeValue, region=None, key=None, keyid=None, profile=None)
  84702. Set an attribute of a subscription to a new value.
  84703. .sp
  84704. CLI example:
  84705. .INDENT 7.0
  84706. .INDENT 3.5
  84707. .sp
  84708. .nf
  84709. .ft C
  84710. salt myminion boto3_sns.set_subscription_attributes someSubscription RawMessageDelivery jsonStringValue
  84711. .ft P
  84712. .fi
  84713. .UNINDENT
  84714. .UNINDENT
  84715. .UNINDENT
  84716. .INDENT 0.0
  84717. .TP
  84718. .B salt.modules.boto3_sns.set_topic_attributes(TopicArn, AttributeName, AttributeValue, region=None, key=None, keyid=None, profile=None)
  84719. Set an attribute of a topic to a new value.
  84720. .sp
  84721. CLI example:
  84722. .INDENT 7.0
  84723. .INDENT 3.5
  84724. .sp
  84725. .nf
  84726. .ft C
  84727. salt myminion boto3_sns.set_topic_attributes someTopic DisplayName myDisplayNameValue
  84728. .ft P
  84729. .fi
  84730. .UNINDENT
  84731. .UNINDENT
  84732. .UNINDENT
  84733. .INDENT 0.0
  84734. .TP
  84735. .B salt.modules.boto3_sns.subscribe(TopicArn, Protocol, Endpoint, region=None, key=None, keyid=None, profile=None)
  84736. Subscribe to a Topic.
  84737. .sp
  84738. CLI example:
  84739. .INDENT 7.0
  84740. .INDENT 3.5
  84741. .sp
  84742. .nf
  84743. .ft C
  84744. salt myminion boto3_sns.subscribe mytopic https https://www.example.com/sns\-endpoint
  84745. .ft P
  84746. .fi
  84747. .UNINDENT
  84748. .UNINDENT
  84749. .UNINDENT
  84750. .INDENT 0.0
  84751. .TP
  84752. .B salt.modules.boto3_sns.topic_exists(name, region=None, key=None, keyid=None, profile=None)
  84753. Check to see if an SNS topic exists.
  84754. .sp
  84755. CLI example:
  84756. .INDENT 7.0
  84757. .INDENT 3.5
  84758. .sp
  84759. .nf
  84760. .ft C
  84761. salt myminion boto3_sns.topic_exists mytopic region=us\-east\-1
  84762. .ft P
  84763. .fi
  84764. .UNINDENT
  84765. .UNINDENT
  84766. .UNINDENT
  84767. .INDENT 0.0
  84768. .TP
  84769. .B salt.modules.boto3_sns.unsubscribe(SubscriptionArn, region=None, key=None, keyid=None, profile=None)
  84770. Unsubscribe a specific SubscriptionArn of a topic.
  84771. .sp
  84772. CLI Example:
  84773. .INDENT 7.0
  84774. .INDENT 3.5
  84775. .sp
  84776. .nf
  84777. .ft C
  84778. salt myminion boto3_sns.unsubscribe my_subscription_arn region=us\-east\-1
  84779. .ft P
  84780. .fi
  84781. .UNINDENT
  84782. .UNINDENT
  84783. .UNINDENT
  84784. .SS salt.modules.boto_cfn
  84785. .sp
  84786. Connection module for Amazon Cloud Formation
  84787. .sp
  84788. New in version 2015.5.0.
  84789. .INDENT 0.0
  84790. .TP
  84791. .B configuration
  84792. This module accepts explicit AWS credentials but can also utilize
  84793. IAM roles assigned to the instance through Instance Profiles. Dynamic
  84794. credentials are then automatically obtained from AWS API and no further
  84795. configuration is necessary. More Information available at:
  84796. .INDENT 7.0
  84797. .INDENT 3.5
  84798. .sp
  84799. .nf
  84800. .ft C
  84801. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  84802. .ft P
  84803. .fi
  84804. .UNINDENT
  84805. .UNINDENT
  84806. .sp
  84807. If IAM roles are not used you need to specify them either in a pillar or
  84808. in the minion\(aqs config file:
  84809. .INDENT 7.0
  84810. .INDENT 3.5
  84811. .sp
  84812. .nf
  84813. .ft C
  84814. cfn.keyid: GKTADJGHEIQSXMKKRBJ08H
  84815. cfn.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84816. .ft P
  84817. .fi
  84818. .UNINDENT
  84819. .UNINDENT
  84820. .sp
  84821. A region may also be specified in the configuration:
  84822. .INDENT 7.0
  84823. .INDENT 3.5
  84824. .sp
  84825. .nf
  84826. .ft C
  84827. cfn.region: us\-east\-1
  84828. .ft P
  84829. .fi
  84830. .UNINDENT
  84831. .UNINDENT
  84832. .TP
  84833. .B depends
  84834. boto
  84835. .UNINDENT
  84836. .INDENT 0.0
  84837. .TP
  84838. .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)
  84839. Create a CFN stack.
  84840. .sp
  84841. CLI Example:
  84842. .INDENT 7.0
  84843. .INDENT 3.5
  84844. .sp
  84845. .nf
  84846. .ft C
  84847. salt myminion boto_cfn.create mystack template_url=\(aqhttps://s3.amazonaws.com/bucket/template.cft\(aq region=us\-east\-1
  84848. .ft P
  84849. .fi
  84850. .UNINDENT
  84851. .UNINDENT
  84852. .UNINDENT
  84853. .INDENT 0.0
  84854. .TP
  84855. .B salt.modules.boto_cfn.delete(name, region=None, key=None, keyid=None, profile=None)
  84856. Delete a CFN stack.
  84857. .sp
  84858. CLI Example:
  84859. .INDENT 7.0
  84860. .INDENT 3.5
  84861. .sp
  84862. .nf
  84863. .ft C
  84864. salt myminion boto_cfn.delete mystack region=us\-east\-1
  84865. .ft P
  84866. .fi
  84867. .UNINDENT
  84868. .UNINDENT
  84869. .UNINDENT
  84870. .INDENT 0.0
  84871. .TP
  84872. .B salt.modules.boto_cfn.describe(name, region=None, key=None, keyid=None, profile=None)
  84873. Describe a stack.
  84874. .sp
  84875. New in version 2015.8.0.
  84876. .sp
  84877. CLI Example:
  84878. .INDENT 7.0
  84879. .INDENT 3.5
  84880. .sp
  84881. .nf
  84882. .ft C
  84883. salt myminion boto_cfn.describe mystack region=us\-east\-1
  84884. .ft P
  84885. .fi
  84886. .UNINDENT
  84887. .UNINDENT
  84888. .UNINDENT
  84889. .INDENT 0.0
  84890. .TP
  84891. .B salt.modules.boto_cfn.exists(name, region=None, key=None, keyid=None, profile=None)
  84892. Check to see if a stack exists.
  84893. .sp
  84894. CLI Example:
  84895. .INDENT 7.0
  84896. .INDENT 3.5
  84897. .sp
  84898. .nf
  84899. .ft C
  84900. salt myminion boto_cfn.exists mystack region=us\-east\-1
  84901. .ft P
  84902. .fi
  84903. .UNINDENT
  84904. .UNINDENT
  84905. .UNINDENT
  84906. .INDENT 0.0
  84907. .TP
  84908. .B salt.modules.boto_cfn.get_template(name, region=None, key=None, keyid=None, profile=None)
  84909. Check to see if attributes are set on a CFN stack.
  84910. .sp
  84911. CLI Example:
  84912. .INDENT 7.0
  84913. .INDENT 3.5
  84914. .sp
  84915. .nf
  84916. .ft C
  84917. salt myminion boto_cfn.get_template mystack
  84918. .ft P
  84919. .fi
  84920. .UNINDENT
  84921. .UNINDENT
  84922. .UNINDENT
  84923. .INDENT 0.0
  84924. .TP
  84925. .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)
  84926. Update a CFN stack.
  84927. .sp
  84928. New in version 2015.8.0.
  84929. .sp
  84930. CLI Example:
  84931. .INDENT 7.0
  84932. .INDENT 3.5
  84933. .sp
  84934. .nf
  84935. .ft C
  84936. salt myminion boto_cfn.update_stack mystack template_url=\(aqhttps://s3.amazonaws.com/bucket/template.cft\(aq region=us\-east\-1
  84937. .ft P
  84938. .fi
  84939. .UNINDENT
  84940. .UNINDENT
  84941. .UNINDENT
  84942. .INDENT 0.0
  84943. .TP
  84944. .B salt.modules.boto_cfn.validate_template(template_body=None, template_url=None, region=None, key=None, keyid=None, profile=None)
  84945. Validate cloudformation template
  84946. .sp
  84947. New in version 2015.8.0.
  84948. .sp
  84949. CLI Example:
  84950. .INDENT 7.0
  84951. .INDENT 3.5
  84952. .sp
  84953. .nf
  84954. .ft C
  84955. salt myminion boto_cfn.validate_template mystack\-template
  84956. .ft P
  84957. .fi
  84958. .UNINDENT
  84959. .UNINDENT
  84960. .UNINDENT
  84961. .SS salt.modules.boto_datapipeline module
  84962. .sp
  84963. Connection module for Amazon Data Pipeline
  84964. .sp
  84965. New in version 2016.3.0.
  84966. .INDENT 0.0
  84967. .TP
  84968. .B depends
  84969. boto3
  84970. .UNINDENT
  84971. .INDENT 0.0
  84972. .TP
  84973. .B salt.modules.boto_datapipeline.activate_pipeline(pipeline_id, region=None, key=None, keyid=None, profile=None)
  84974. Start processing pipeline tasks. This function is idempotent.
  84975. .sp
  84976. CLI example:
  84977. .INDENT 7.0
  84978. .INDENT 3.5
  84979. .sp
  84980. .nf
  84981. .ft C
  84982. salt myminion boto_datapipeline.activate_pipeline my_pipeline_id
  84983. .ft P
  84984. .fi
  84985. .UNINDENT
  84986. .UNINDENT
  84987. .UNINDENT
  84988. .INDENT 0.0
  84989. .TP
  84990. .B salt.modules.boto_datapipeline.create_pipeline(name, unique_id, description=u\(aq\(aq, region=None, key=None, keyid=None, profile=None)
  84991. Create a new, empty pipeline. This function is idempotent.
  84992. .sp
  84993. CLI example:
  84994. .INDENT 7.0
  84995. .INDENT 3.5
  84996. .sp
  84997. .nf
  84998. .ft C
  84999. salt myminion boto_datapipeline.create_pipeline my_name my_unique_id
  85000. .ft P
  85001. .fi
  85002. .UNINDENT
  85003. .UNINDENT
  85004. .UNINDENT
  85005. .INDENT 0.0
  85006. .TP
  85007. .B salt.modules.boto_datapipeline.delete_pipeline(pipeline_id, region=None, key=None, keyid=None, profile=None)
  85008. Delete a pipeline, its pipeline definition, and its run history. This function is idempotent.
  85009. .sp
  85010. CLI example:
  85011. .INDENT 7.0
  85012. .INDENT 3.5
  85013. .sp
  85014. .nf
  85015. .ft C
  85016. salt myminion boto_datapipeline.delete_pipeline my_pipeline_id
  85017. .ft P
  85018. .fi
  85019. .UNINDENT
  85020. .UNINDENT
  85021. .UNINDENT
  85022. .INDENT 0.0
  85023. .TP
  85024. .B salt.modules.boto_datapipeline.describe_pipelines(pipeline_ids, region=None, key=None, keyid=None, profile=None)
  85025. Retrieve metadata about one or more pipelines.
  85026. .sp
  85027. CLI example:
  85028. .INDENT 7.0
  85029. .INDENT 3.5
  85030. .sp
  85031. .nf
  85032. .ft C
  85033. salt myminion boto_datapipeline.describe_pipelines [\(aqmy_pipeline_id\(aq]
  85034. .ft P
  85035. .fi
  85036. .UNINDENT
  85037. .UNINDENT
  85038. .UNINDENT
  85039. .INDENT 0.0
  85040. .TP
  85041. .B salt.modules.boto_datapipeline.get_pipeline_definition(pipeline_id, version=u\(aqlatest\(aq, region=None, key=None, keyid=None, profile=None)
  85042. Get the definition of the specified pipeline.
  85043. .sp
  85044. CLI example:
  85045. .INDENT 7.0
  85046. .INDENT 3.5
  85047. .sp
  85048. .nf
  85049. .ft C
  85050. salt myminion boto_datapipeline.get_pipeline_definition my_pipeline_id
  85051. .ft P
  85052. .fi
  85053. .UNINDENT
  85054. .UNINDENT
  85055. .UNINDENT
  85056. .INDENT 0.0
  85057. .TP
  85058. .B salt.modules.boto_datapipeline.list_pipelines(region=None, key=None, keyid=None, profile=None)
  85059. Get a list of pipeline ids and names for all pipelines.
  85060. .sp
  85061. CLI Example:
  85062. .INDENT 7.0
  85063. .INDENT 3.5
  85064. .sp
  85065. .nf
  85066. .ft C
  85067. salt myminion boto_datapipeline.list_pipelines profile=myprofile
  85068. .ft P
  85069. .fi
  85070. .UNINDENT
  85071. .UNINDENT
  85072. .UNINDENT
  85073. .INDENT 0.0
  85074. .TP
  85075. .B salt.modules.boto_datapipeline.pipeline_id_from_name(name, region=None, key=None, keyid=None, profile=None)
  85076. Get the pipeline id, if it exists, for the given name.
  85077. .sp
  85078. CLI example:
  85079. .INDENT 7.0
  85080. .INDENT 3.5
  85081. .sp
  85082. .nf
  85083. .ft C
  85084. salt myminion boto_datapipeline.pipeline_id_from_name my_pipeline_name
  85085. .ft P
  85086. .fi
  85087. .UNINDENT
  85088. .UNINDENT
  85089. .UNINDENT
  85090. .INDENT 0.0
  85091. .TP
  85092. .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)
  85093. Add tasks, schedules, and preconditions to the specified pipeline. This function is
  85094. idempotent and will replace an existing definition.
  85095. .sp
  85096. CLI example:
  85097. .INDENT 7.0
  85098. .INDENT 3.5
  85099. .sp
  85100. .nf
  85101. .ft C
  85102. salt myminion boto_datapipeline.put_pipeline_definition my_pipeline_id my_pipeline_objects
  85103. .ft P
  85104. .fi
  85105. .UNINDENT
  85106. .UNINDENT
  85107. .UNINDENT
  85108. .SS salt.modules.boto_dynamodb
  85109. .sp
  85110. Connection module for Amazon DynamoDB
  85111. .sp
  85112. New in version 2015.5.0.
  85113. .INDENT 0.0
  85114. .TP
  85115. .B configuration
  85116. This module accepts explicit DynamoDB credentials but can also
  85117. utilize IAM roles assigned to the instance through Instance Profiles.
  85118. Dynamic credentials are then automatically obtained from AWS API and no
  85119. further configuration is necessary. More Information available at:
  85120. .INDENT 7.0
  85121. .INDENT 3.5
  85122. .sp
  85123. .nf
  85124. .ft C
  85125. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  85126. .ft P
  85127. .fi
  85128. .UNINDENT
  85129. .UNINDENT
  85130. .sp
  85131. If IAM roles are not used you need to specify them either in a pillar or
  85132. in the minion\(aqs config file:
  85133. .INDENT 7.0
  85134. .INDENT 3.5
  85135. .sp
  85136. .nf
  85137. .ft C
  85138. keyid: GKTADJGHEIQSXMKKRBJ08H
  85139. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85140. .ft P
  85141. .fi
  85142. .UNINDENT
  85143. .UNINDENT
  85144. .sp
  85145. A region may also be specified in the configuration:
  85146. .INDENT 7.0
  85147. .INDENT 3.5
  85148. .sp
  85149. .nf
  85150. .ft C
  85151. region: us\-east\-1
  85152. .ft P
  85153. .fi
  85154. .UNINDENT
  85155. .UNINDENT
  85156. .sp
  85157. If a region is not specified, the default is us\-east\-1.
  85158. .sp
  85159. It\(aqs also possible to specify key, keyid and region via a profile, either
  85160. as a passed in dict, or as a string to pull from pillars or minion config:
  85161. .INDENT 7.0
  85162. .INDENT 3.5
  85163. .sp
  85164. .nf
  85165. .ft C
  85166. myprofile:
  85167. keyid: GKTADJGHEIQSXMKKRBJ08H
  85168. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85169. region: us\-east\-1
  85170. .ft P
  85171. .fi
  85172. .UNINDENT
  85173. .UNINDENT
  85174. .TP
  85175. .B depends
  85176. boto
  85177. .UNINDENT
  85178. .INDENT 0.0
  85179. .TP
  85180. .B salt.modules.boto_dynamodb.create_global_secondary_index(table_name, global_index, region=None, key=None, keyid=None, profile=None)
  85181. Creates a single global secondary index on a DynamoDB table.
  85182. .sp
  85183. CLI Example:
  85184. .. code\-block:: bash
  85185. .INDENT 7.0
  85186. .INDENT 3.5
  85187. salt myminion boto_dynamodb.create_global_secondary_index table_name /
  85188. index_name
  85189. .UNINDENT
  85190. .UNINDENT
  85191. .UNINDENT
  85192. .INDENT 0.0
  85193. .TP
  85194. .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)
  85195. Creates a DynamoDB table.
  85196. .sp
  85197. CLI Example:
  85198. .INDENT 7.0
  85199. .INDENT 3.5
  85200. .sp
  85201. .nf
  85202. .ft C
  85203. salt myminion boto_dynamodb.create_table table_name /
  85204. region=us\-east\-1 /
  85205. hash_key=id /
  85206. hash_key_data_type=N /
  85207. range_key=created_at /
  85208. range_key_data_type=N /
  85209. read_capacity_units=1 /
  85210. write_capacity_units=1
  85211. .ft P
  85212. .fi
  85213. .UNINDENT
  85214. .UNINDENT
  85215. .UNINDENT
  85216. .INDENT 0.0
  85217. .TP
  85218. .B salt.modules.boto_dynamodb.delete(table_name, region=None, key=None, keyid=None, profile=None)
  85219. Delete a DynamoDB table.
  85220. .sp
  85221. CLI Example:
  85222. .INDENT 7.0
  85223. .INDENT 3.5
  85224. .sp
  85225. .nf
  85226. .ft C
  85227. salt myminion boto_dynamodb.delete table_name region=us\-east\-1
  85228. .ft P
  85229. .fi
  85230. .UNINDENT
  85231. .UNINDENT
  85232. .UNINDENT
  85233. .INDENT 0.0
  85234. .TP
  85235. .B salt.modules.boto_dynamodb.describe(table_name, region=None, key=None, keyid=None, profile=None)
  85236. Describe a DynamoDB table.
  85237. .sp
  85238. CLI example:
  85239. .INDENT 7.0
  85240. .INDENT 3.5
  85241. .sp
  85242. .nf
  85243. .ft C
  85244. salt myminion boto_dynamodb.describe table_name region=us\-east\-1
  85245. .ft P
  85246. .fi
  85247. .UNINDENT
  85248. .UNINDENT
  85249. .UNINDENT
  85250. .INDENT 0.0
  85251. .TP
  85252. .B salt.modules.boto_dynamodb.exists(table_name, region=None, key=None, keyid=None, profile=None)
  85253. Check to see if a table exists.
  85254. .sp
  85255. CLI Example:
  85256. .INDENT 7.0
  85257. .INDENT 3.5
  85258. .sp
  85259. .nf
  85260. .ft C
  85261. salt myminion boto_dynamodb.exists table_name region=us\-east\-1
  85262. .ft P
  85263. .fi
  85264. .UNINDENT
  85265. .UNINDENT
  85266. .UNINDENT
  85267. .INDENT 0.0
  85268. .TP
  85269. .B salt.modules.boto_dynamodb.extract_index(index_data, global_index=False)
  85270. Instantiates and returns an AllIndex object given a valid index
  85271. configuration
  85272. .INDENT 7.0
  85273. .TP
  85274. .B CLI Example:
  85275. salt myminion boto_dynamodb.extract_index index
  85276. .UNINDENT
  85277. .UNINDENT
  85278. .INDENT 0.0
  85279. .TP
  85280. .B salt.modules.boto_dynamodb.update(table_name, throughput=None, global_indexes=None, region=None, key=None, keyid=None, profile=None)
  85281. Update a DynamoDB table.
  85282. .sp
  85283. CLI example:
  85284. .INDENT 7.0
  85285. .INDENT 3.5
  85286. .sp
  85287. .nf
  85288. .ft C
  85289. salt myminion boto_dynamodb.update table_name region=us\-east\-1
  85290. .ft P
  85291. .fi
  85292. .UNINDENT
  85293. .UNINDENT
  85294. .UNINDENT
  85295. .INDENT 0.0
  85296. .TP
  85297. .B salt.modules.boto_dynamodb.update_global_secondary_index(table_name, global_indexes, region=None, key=None, keyid=None, profile=None)
  85298. Updates the throughput of the given global secondary indexes.
  85299. .sp
  85300. CLI Example:
  85301. .. code\-block:: bash
  85302. .INDENT 7.0
  85303. .INDENT 3.5
  85304. salt myminion boto_dynamodb.update_global_secondary_index table_name /
  85305. indexes
  85306. .UNINDENT
  85307. .UNINDENT
  85308. .UNINDENT
  85309. .SS salt.modules.boto_efs module
  85310. .sp
  85311. Connection module for Amazon EFS
  85312. .sp
  85313. New in version 2017.7.0.
  85314. .INDENT 0.0
  85315. .TP
  85316. .B configuration
  85317. This module accepts explicit EFS credentials but can also
  85318. utilize IAM roles assigned to the instance through Instance Profiles or
  85319. it can read them from the ~/.aws/credentials file or from these
  85320. environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.
  85321. Dynamic credentials are then automatically obtained from AWS API and no
  85322. further configuration is necessary. More information available at:
  85323. .INDENT 7.0
  85324. .INDENT 3.5
  85325. .sp
  85326. .nf
  85327. .ft C
  85328. http://docs.aws.amazon.com/efs/latest/ug/
  85329. access\-control\-managing\-permissions.html
  85330. http://boto3.readthedocs.io/en/latest/guide/
  85331. configuration.html#guide\-configuration
  85332. .ft P
  85333. .fi
  85334. .UNINDENT
  85335. .UNINDENT
  85336. .sp
  85337. If IAM roles are not used you need to specify them either in a pillar or
  85338. in the minion\(aqs config file
  85339. .INDENT 7.0
  85340. .INDENT 3.5
  85341. .sp
  85342. .nf
  85343. .ft C
  85344. efs.keyid: GKTADJGHEIQSXMKKRBJ08H
  85345. efs.key: askd+ghsdfjkghWupU/asdflkdfklgjsdfjajkghs
  85346. .ft P
  85347. .fi
  85348. .UNINDENT
  85349. .UNINDENT
  85350. .sp
  85351. A region may also be specified in the configuration
  85352. .INDENT 7.0
  85353. .INDENT 3.5
  85354. .sp
  85355. .nf
  85356. .ft C
  85357. efs.region: us\-east\-1
  85358. .ft P
  85359. .fi
  85360. .UNINDENT
  85361. .UNINDENT
  85362. .sp
  85363. If a region is not specified, the default is us\-east\-1.
  85364. .sp
  85365. It\(aqs also possible to speficy key, keyid, and region via a profile, either
  85366. as a passed in dict, or as a string to pull from pillars or minion config:
  85367. .INDENT 7.0
  85368. .INDENT 3.5
  85369. .sp
  85370. .nf
  85371. .ft C
  85372. myprofile:
  85373. keyid: GKTADJGHEIQSXMKKRBJ08H
  85374. key: askd+ghsdfjkghWupU/asdflkdfklgjsdfjajkghs
  85375. region: us\-east\-1
  85376. .ft P
  85377. .fi
  85378. .UNINDENT
  85379. .UNINDENT
  85380. .TP
  85381. .B depends
  85382. boto3
  85383. .UNINDENT
  85384. .INDENT 0.0
  85385. .TP
  85386. .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)
  85387. Creates a new, empty file system.
  85388. .INDENT 7.0
  85389. .TP
  85390. .B name
  85391. (string) \- The name for the new file system
  85392. .TP
  85393. .B performance_mode
  85394. (string) \- The PerformanceMode of the file system. Can be either
  85395. generalPurpose or maxIO
  85396. .TP
  85397. .B creation_token
  85398. (string) \- A unique name to be used as reference when creating an EFS.
  85399. This will ensure idempotency. Set to name if not specified otherwise
  85400. .TP
  85401. .B returns
  85402. (dict) \- A dict of the data for the elastic file system
  85403. .UNINDENT
  85404. .sp
  85405. CLI Example:
  85406. .INDENT 7.0
  85407. .INDENT 3.5
  85408. .sp
  85409. .nf
  85410. .ft C
  85411. salt \(aqmy\-minion\(aq boto_efs.create_file_system efs\-name generalPurpose
  85412. .ft P
  85413. .fi
  85414. .UNINDENT
  85415. .UNINDENT
  85416. .UNINDENT
  85417. .INDENT 0.0
  85418. .TP
  85419. .B salt.modules.boto_efs.create_mount_target(filesystemid, subnetid, ipaddress=None, securitygroups=None, keyid=None, key=None, profile=None, region=None, **kwargs)
  85420. Creates a mount target for a file system.
  85421. You can then mount the file system on EC2 instances via the mount target.
  85422. .sp
  85423. You can create one mount target in each Availability Zone in your VPC.
  85424. All EC2 instances in a VPC within a given Availability Zone share a
  85425. single mount target for a given file system.
  85426. .sp
  85427. If you have multiple subnets in an Availability Zone,
  85428. you create a mount target in one of the subnets.
  85429. EC2 instances do not need to be in the same subnet as the mount target
  85430. in order to access their file system.
  85431. .INDENT 7.0
  85432. .TP
  85433. .B filesystemid
  85434. (string) \- ID of the file system for which to create the mount target.
  85435. .TP
  85436. .B subnetid
  85437. (string) \- ID of the subnet to add the mount target in.
  85438. .TP
  85439. .B ipaddress
  85440. .INDENT 7.0
  85441. .TP
  85442. .B (string) \- Valid IPv4 address within the address range
  85443. of the specified subnet.
  85444. .UNINDENT
  85445. .TP
  85446. .B securitygroups
  85447. .INDENT 7.0
  85448. .TP
  85449. .B (list[string]) \- Up to five VPC security group IDs,
  85450. of the form sg\-xxxxxxxx.
  85451. These must be for the same VPC as subnet specified.
  85452. .UNINDENT
  85453. .TP
  85454. .B returns
  85455. (dict) \- A dict of the response data
  85456. .UNINDENT
  85457. .sp
  85458. CLI Example:
  85459. .INDENT 7.0
  85460. .INDENT 3.5
  85461. .sp
  85462. .nf
  85463. .ft C
  85464. salt \(aqmy\-minion\(aq boto_efs.create_mount_target filesystemid subnetid
  85465. .ft P
  85466. .fi
  85467. .UNINDENT
  85468. .UNINDENT
  85469. .UNINDENT
  85470. .INDENT 0.0
  85471. .TP
  85472. .B salt.modules.boto_efs.create_tags(filesystemid, tags, keyid=None, key=None, profile=None, region=None, **kwargs)
  85473. Creates or overwrites tags associated with a file system.
  85474. Each tag is a key\-value pair. If a tag key specified in the request
  85475. already exists on the file system, this operation overwrites
  85476. its value with the value provided in the request.
  85477. .INDENT 7.0
  85478. .TP
  85479. .B filesystemid
  85480. (string) \- ID of the file system for whose tags will be modified.
  85481. .TP
  85482. .B tags
  85483. (dict) \- The tags to add to the file system
  85484. .UNINDENT
  85485. .sp
  85486. CLI Example:
  85487. .INDENT 7.0
  85488. .INDENT 3.5
  85489. .sp
  85490. .nf
  85491. .ft C
  85492. salt \(aqmy\-minion\(aq boto_efs.create_tags
  85493. .ft P
  85494. .fi
  85495. .UNINDENT
  85496. .UNINDENT
  85497. .UNINDENT
  85498. .INDENT 0.0
  85499. .TP
  85500. .B salt.modules.boto_efs.delete_file_system(filesystemid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85501. Deletes a file system, permanently severing access to its contents.
  85502. Upon return, the file system no longer exists and you can\(aqt access
  85503. any contents of the deleted file system. You can\(aqt delete a file system
  85504. that is in use. That is, if the file system has any mount targets,
  85505. you must first delete them.
  85506. .INDENT 7.0
  85507. .TP
  85508. .B filesystemid
  85509. (string) \- ID of the file system to delete.
  85510. .UNINDENT
  85511. .sp
  85512. CLI Example:
  85513. .INDENT 7.0
  85514. .INDENT 3.5
  85515. .sp
  85516. .nf
  85517. .ft C
  85518. salt \(aqmy\-minion\(aq boto_efs.delete_file_system filesystemid
  85519. .ft P
  85520. .fi
  85521. .UNINDENT
  85522. .UNINDENT
  85523. .UNINDENT
  85524. .INDENT 0.0
  85525. .TP
  85526. .B salt.modules.boto_efs.delete_mount_target(mounttargetid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85527. Deletes the specified mount target.
  85528. .sp
  85529. This operation forcibly breaks any mounts of the file system via the
  85530. mount target that is being deleted, which might disrupt instances or
  85531. applications using those mounts. To avoid applications getting cut off
  85532. abruptly, you might consider unmounting any mounts of the mount target,
  85533. if feasible. The operation also deletes the associated network interface.
  85534. Uncommitted writes may be lost, but breaking a mount target using this
  85535. operation does not corrupt the file system itself.
  85536. The file system you created remains.
  85537. You can mount an EC2 instance in your VPC via another mount target.
  85538. .INDENT 7.0
  85539. .TP
  85540. .B mounttargetid
  85541. (string) \- ID of the mount target to delete
  85542. .UNINDENT
  85543. .sp
  85544. CLI Example:
  85545. .INDENT 7.0
  85546. .INDENT 3.5
  85547. .sp
  85548. .nf
  85549. .ft C
  85550. salt \(aqmy\-minion\(aq boto_efs.delete_mount_target mounttargetid
  85551. .ft P
  85552. .fi
  85553. .UNINDENT
  85554. .UNINDENT
  85555. .UNINDENT
  85556. .INDENT 0.0
  85557. .TP
  85558. .B salt.modules.boto_efs.delete_tags(filesystemid, tags, keyid=None, key=None, profile=None, region=None, **kwargs)
  85559. Deletes the specified tags from a file system.
  85560. .INDENT 7.0
  85561. .TP
  85562. .B filesystemid
  85563. (string) \- ID of the file system for whose tags will be removed.
  85564. .TP
  85565. .B tags
  85566. (list[string]) \- The tag keys to delete to the file system
  85567. .UNINDENT
  85568. .sp
  85569. CLI Example:
  85570. .INDENT 7.0
  85571. .INDENT 3.5
  85572. .sp
  85573. .nf
  85574. .ft C
  85575. salt \(aqmy\-minion\(aq boto_efs.delete_tags
  85576. .ft P
  85577. .fi
  85578. .UNINDENT
  85579. .UNINDENT
  85580. .UNINDENT
  85581. .INDENT 0.0
  85582. .TP
  85583. .B salt.modules.boto_efs.get_file_systems(filesystemid=None, keyid=None, key=None, profile=None, region=None, creation_token=None, **kwargs)
  85584. Get all EFS properties or a specific instance property
  85585. if filesystemid is specified
  85586. .INDENT 7.0
  85587. .TP
  85588. .B filesystemid
  85589. (string) \- ID of the file system to retrieve properties
  85590. .TP
  85591. .B creation_token
  85592. (string) \- A unique token that identifies an EFS.
  85593. If fileysystem created via create_file_system this would
  85594. either be explictitly passed in or set to name.
  85595. You can limit your search with this.
  85596. .TP
  85597. .B returns
  85598. (list[dict]) \- list of all elastic file system properties
  85599. .UNINDENT
  85600. .sp
  85601. CLI Example:
  85602. .INDENT 7.0
  85603. .INDENT 3.5
  85604. .sp
  85605. .nf
  85606. .ft C
  85607. salt \(aqmy\-minion\(aq boto_efs.get_file_systems efs\-id
  85608. .ft P
  85609. .fi
  85610. .UNINDENT
  85611. .UNINDENT
  85612. .UNINDENT
  85613. .INDENT 0.0
  85614. .TP
  85615. .B salt.modules.boto_efs.get_mount_targets(filesystemid=None, mounttargetid=None, keyid=None, key=None, profile=None, region=None, **kwargs)
  85616. Get all the EFS mount point properties for a specific filesystemid or
  85617. the properties for a specific mounttargetid. One or the other must be
  85618. specified
  85619. .INDENT 7.0
  85620. .TP
  85621. .B filesystemid
  85622. .INDENT 7.0
  85623. .TP
  85624. .B (string) \- ID of the file system whose mount targets to list
  85625. Must be specified if mounttargetid is not
  85626. .UNINDENT
  85627. .TP
  85628. .B mounttargetid
  85629. .INDENT 7.0
  85630. .TP
  85631. .B (string) \- ID of the mount target to have its properties returned
  85632. Must be specified if filesystemid is not
  85633. .UNINDENT
  85634. .TP
  85635. .B returns
  85636. (list[dict]) \- list of all mount point properties
  85637. .UNINDENT
  85638. .sp
  85639. CLI Example:
  85640. .INDENT 7.0
  85641. .INDENT 3.5
  85642. .sp
  85643. .nf
  85644. .ft C
  85645. salt \(aqmy\-minion\(aq boto_efs.get_mount_targets
  85646. .ft P
  85647. .fi
  85648. .UNINDENT
  85649. .UNINDENT
  85650. .UNINDENT
  85651. .INDENT 0.0
  85652. .TP
  85653. .B salt.modules.boto_efs.get_tags(filesystemid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85654. Return the tags associated with an EFS instance.
  85655. .INDENT 7.0
  85656. .TP
  85657. .B filesystemid
  85658. (string) \- ID of the file system whose tags to list
  85659. .TP
  85660. .B returns
  85661. (list) \- list of tags as key/value pairs
  85662. .UNINDENT
  85663. .sp
  85664. CLI Example:
  85665. .INDENT 7.0
  85666. .INDENT 3.5
  85667. .sp
  85668. .nf
  85669. .ft C
  85670. salt \(aqmy\-minion\(aq boto_efs.get_tags efs\-id
  85671. .ft P
  85672. .fi
  85673. .UNINDENT
  85674. .UNINDENT
  85675. .UNINDENT
  85676. .INDENT 0.0
  85677. .TP
  85678. .B salt.modules.boto_efs.set_security_groups(mounttargetid, securitygroup, keyid=None, key=None, profile=None, region=None, **kwargs)
  85679. Modifies the set of security groups in effect for a mount target
  85680. .INDENT 7.0
  85681. .TP
  85682. .B mounttargetid
  85683. (string) \- ID of the mount target whose security groups will be modified
  85684. .TP
  85685. .B securitygroups
  85686. (list[string]) \- list of no more than 5 VPC security group IDs.
  85687. .UNINDENT
  85688. .sp
  85689. CLI Example:
  85690. .INDENT 7.0
  85691. .INDENT 3.5
  85692. .sp
  85693. .nf
  85694. .ft C
  85695. salt \(aqmy\-minion\(aq boto_efs.set_security_groups my\-mount\-target\-id my\-sec\-group
  85696. .ft P
  85697. .fi
  85698. .UNINDENT
  85699. .UNINDENT
  85700. .UNINDENT
  85701. .SS salt.modules.boto_elbv2 module
  85702. .sp
  85703. Connection module for Amazon ALB
  85704. .sp
  85705. New in version 2017.7.0.
  85706. .INDENT 0.0
  85707. .TP
  85708. .B configuration
  85709. This module accepts explicit elb credentials but can also utilize
  85710. IAM roles assigned to the instance through Instance Profiles. Dynamic
  85711. credentials are then automatically obtained from AWS API and no further
  85712. configuration is necessary. More Information available at:
  85713. .INDENT 7.0
  85714. .INDENT 3.5
  85715. .sp
  85716. .nf
  85717. .ft C
  85718. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  85719. .ft P
  85720. .fi
  85721. .UNINDENT
  85722. .UNINDENT
  85723. .sp
  85724. If IAM roles are not used you need to specify them either in a pillar or
  85725. in the minion\(aqs config file:
  85726. .INDENT 7.0
  85727. .INDENT 3.5
  85728. .sp
  85729. .nf
  85730. .ft C
  85731. elbv2.keyid: GKTADJGHEIQSXMKKRBJ08H
  85732. elbv2.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85733. elbv2.region: us\-west\-2
  85734. .ft P
  85735. .fi
  85736. .UNINDENT
  85737. .UNINDENT
  85738. .sp
  85739. If a region is not specified, the default is us\-east\-1.
  85740. .sp
  85741. It\(aqs also possible to specify key, keyid and region via a profile, either
  85742. as a passed in dict, or as a string to pull from pillars or minion config:
  85743. .INDENT 7.0
  85744. .INDENT 3.5
  85745. .sp
  85746. .nf
  85747. .ft C
  85748. myprofile:
  85749. keyid: GKTADJGHEIQSXMKKRBJ08H
  85750. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85751. region: us\-east\-1
  85752. .ft P
  85753. .fi
  85754. .UNINDENT
  85755. .UNINDENT
  85756. .TP
  85757. .B depends
  85758. boto3
  85759. .UNINDENT
  85760. .INDENT 0.0
  85761. .TP
  85762. .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)
  85763. Create target group if not present.
  85764. .INDENT 7.0
  85765. .TP
  85766. .B name
  85767. (string) \- The name of the target group.
  85768. .TP
  85769. .B protocol
  85770. (string) \- The protocol to use for routing traffic to the targets
  85771. .TP
  85772. .B port
  85773. (int) \- The port on which the targets receive traffic. This port is used unless
  85774. you specify a port override when registering the traffic.
  85775. .TP
  85776. .B vpc_id
  85777. (string) \- The identifier of the virtual private cloud (VPC).
  85778. .TP
  85779. .B health_check_protocol
  85780. (string) \- The protocol the load balancer uses when performing health check on
  85781. targets. The default is the HTTP protocol.
  85782. .TP
  85783. .B health_check_port
  85784. (string) \- The port the load balancer uses when performing health checks on
  85785. targets. The default is \(aqtraffic\-port\(aq, which indicates the port on which each
  85786. target receives traffic from the load balancer.
  85787. .TP
  85788. .B health_check_path
  85789. (string) \- The ping path that is the destination on the targets for health
  85790. checks. The default is /.
  85791. .TP
  85792. .B health_check_interval_seconds
  85793. (integer) \- The approximate amount of time, in seconds, between health checks
  85794. of an individual target. The default is 30 seconds.
  85795. .TP
  85796. .B health_check_timeout_seconds
  85797. (integer) \- The amount of time, in seconds, during which no response from a
  85798. target means a failed health check. The default is 5 seconds.
  85799. .TP
  85800. .B healthy_threshold_count
  85801. (integer) \- The number of consecutive health checks successes required before
  85802. considering an unhealthy target healthy. The default is 5.
  85803. .TP
  85804. .B unhealthy_threshold_count
  85805. (integer) \- The number of consecutive health check failures required before
  85806. considering a target unhealthy. The default is 2.
  85807. .TP
  85808. .B returns
  85809. (bool) \- True on success, False on failure.
  85810. .UNINDENT
  85811. .sp
  85812. CLI example:
  85813. .. code\-block:: bash
  85814. .INDENT 7.0
  85815. .INDENT 3.5
  85816. salt myminion boto_elbv2.create_target_group learn1give1 protocol=HTTP port=54006 vpc_id=vpc\-deadbeef
  85817. .UNINDENT
  85818. .UNINDENT
  85819. .UNINDENT
  85820. .INDENT 0.0
  85821. .TP
  85822. .B salt.modules.boto_elbv2.delete_target_group(name, region=None, key=None, keyid=None, profile=None)
  85823. Delete target group.
  85824. .INDENT 7.0
  85825. .TP
  85826. .B name
  85827. (string) \- Target Group Name or Amazon Resource Name (ARN).
  85828. .TP
  85829. .B returns
  85830. (bool) \- True on success, False on failure.
  85831. .UNINDENT
  85832. .sp
  85833. CLI example:
  85834. .INDENT 7.0
  85835. .INDENT 3.5
  85836. .sp
  85837. .nf
  85838. .ft C
  85839. salt myminion boto_elbv2.delete_target_group arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163
  85840. .ft P
  85841. .fi
  85842. .UNINDENT
  85843. .UNINDENT
  85844. .UNINDENT
  85845. .INDENT 0.0
  85846. .TP
  85847. .B salt.modules.boto_elbv2.deregister_targets(name, targets, region=None, key=None, keyid=None, profile=None)
  85848. Deregister targets to a target froup of an ALB. \fBtargets\fP is either a
  85849. instance id string or a list of instance id\(aqs.
  85850. .sp
  85851. Returns:
  85852. .INDENT 7.0
  85853. .IP \(bu 2
  85854. \fBTrue\fP: instance(s) deregistered successfully
  85855. .IP \(bu 2
  85856. \fBFalse\fP: instance(s) failed to be deregistered
  85857. .UNINDENT
  85858. .sp
  85859. CLI example:
  85860. .INDENT 7.0
  85861. .INDENT 3.5
  85862. .sp
  85863. .nf
  85864. .ft C
  85865. salt myminion boto_elbv2.deregister_targets myelb instance_id
  85866. salt myminion boto_elbv2.deregister_targets myelb "[instance_id,instance_id]"
  85867. .ft P
  85868. .fi
  85869. .UNINDENT
  85870. .UNINDENT
  85871. .UNINDENT
  85872. .INDENT 0.0
  85873. .TP
  85874. .B salt.modules.boto_elbv2.describe_target_health(name, targets=None, region=None, key=None, keyid=None, profile=None)
  85875. Get the curret health check status for targets in a target group.
  85876. .sp
  85877. CLI example:
  85878. .INDENT 7.0
  85879. .INDENT 3.5
  85880. .sp
  85881. .nf
  85882. .ft C
  85883. salt myminion boto_elbv2.describe_target_health arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163 targets=["i\-isdf23ifjf"]
  85884. .ft P
  85885. .fi
  85886. .UNINDENT
  85887. .UNINDENT
  85888. .UNINDENT
  85889. .INDENT 0.0
  85890. .TP
  85891. .B salt.modules.boto_elbv2.register_targets(name, targets, region=None, key=None, keyid=None, profile=None)
  85892. Register targets to a target froup of an ALB. \fBtargets\fP is either a
  85893. instance id string or a list of instance id\(aqs.
  85894. .sp
  85895. Returns:
  85896. .INDENT 7.0
  85897. .IP \(bu 2
  85898. \fBTrue\fP: instance(s) registered successfully
  85899. .IP \(bu 2
  85900. \fBFalse\fP: instance(s) failed to be registered
  85901. .UNINDENT
  85902. .sp
  85903. CLI example:
  85904. .INDENT 7.0
  85905. .INDENT 3.5
  85906. .sp
  85907. .nf
  85908. .ft C
  85909. salt myminion boto_elbv2.register_targets myelb instance_id
  85910. salt myminion boto_elbv2.register_targets myelb "[instance_id,instance_id]"
  85911. .ft P
  85912. .fi
  85913. .UNINDENT
  85914. .UNINDENT
  85915. .UNINDENT
  85916. .INDENT 0.0
  85917. .TP
  85918. .B salt.modules.boto_elbv2.target_group_exists(name, region=None, key=None, keyid=None, profile=None)
  85919. Check to see if an target group exists.
  85920. .sp
  85921. CLI example:
  85922. .INDENT 7.0
  85923. .INDENT 3.5
  85924. .sp
  85925. .nf
  85926. .ft C
  85927. salt myminion boto_elbv2.target_group_exists arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163
  85928. .ft P
  85929. .fi
  85930. .UNINDENT
  85931. .UNINDENT
  85932. .UNINDENT
  85933. .SS salt.modules.boto_kinesis module
  85934. .sp
  85935. Connection module for Amazon Kinesis
  85936. .sp
  85937. New in version 2017.7.0.
  85938. .INDENT 0.0
  85939. .TP
  85940. .B configuration
  85941. This module accepts explicit Kinesis credentials but can also
  85942. utilize IAM roles assigned to the instance trough Instance Profiles.
  85943. Dynamic credentials are then automatically obtained from AWS API and no
  85944. further configuration is necessary. More Information available at:
  85945. .INDENT 7.0
  85946. .INDENT 3.5
  85947. .sp
  85948. .nf
  85949. .ft C
  85950. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  85951. .ft P
  85952. .fi
  85953. .UNINDENT
  85954. .UNINDENT
  85955. .sp
  85956. If IAM roles are not used you need to specify them either in a pillar or
  85957. in the minion\(aqs config file:
  85958. .INDENT 7.0
  85959. .INDENT 3.5
  85960. .sp
  85961. .nf
  85962. .ft C
  85963. kinesis.keyid: GKTADJGHEIQSXMKKRBJ08H
  85964. kinesis.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85965. .ft P
  85966. .fi
  85967. .UNINDENT
  85968. .UNINDENT
  85969. .sp
  85970. A region may also be specified in the configuration:
  85971. .INDENT 7.0
  85972. .INDENT 3.5
  85973. .sp
  85974. .nf
  85975. .ft C
  85976. kinesis.region: us\-east\-1
  85977. .ft P
  85978. .fi
  85979. .UNINDENT
  85980. .UNINDENT
  85981. .sp
  85982. If a region is not specified, the default is us\-east\-1.
  85983. .sp
  85984. It\(aqs also possible to specify key, keyid and region via a profile, either
  85985. as a passed in dict, or as a string to pull from pillars or minion config:
  85986. .INDENT 7.0
  85987. .INDENT 3.5
  85988. .sp
  85989. .nf
  85990. .ft C
  85991. myprofile:
  85992. keyid: GKTADJGHEIQSXMKKRBJ08H
  85993. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85994. region: us\-east\-1
  85995. .ft P
  85996. .fi
  85997. .UNINDENT
  85998. .UNINDENT
  85999. .TP
  86000. .B depends
  86001. boto3
  86002. .UNINDENT
  86003. .INDENT 0.0
  86004. .TP
  86005. .B salt.modules.boto_kinesis.create_stream(stream_name, num_shards, region=None, key=None, keyid=None, profile=None)
  86006. Create a stream with name stream_name and initial number of shards num_shards.
  86007. .sp
  86008. CLI example:
  86009. .INDENT 7.0
  86010. .INDENT 3.5
  86011. .sp
  86012. .nf
  86013. .ft C
  86014. salt myminion boto_kinesis.create_stream my_stream N region=us\-east\-1
  86015. .ft P
  86016. .fi
  86017. .UNINDENT
  86018. .UNINDENT
  86019. .UNINDENT
  86020. .INDENT 0.0
  86021. .TP
  86022. .B salt.modules.boto_kinesis.decrease_stream_retention_period(stream_name, retention_hours, region=None, key=None, keyid=None, profile=None)
  86023. Decrease stream retention period to retention_hours
  86024. .sp
  86025. CLI example:
  86026. .INDENT 7.0
  86027. .INDENT 3.5
  86028. .sp
  86029. .nf
  86030. .ft C
  86031. salt myminion boto_kinesis.decrease_stream_retention_period my_stream N region=us\-east\-1
  86032. .ft P
  86033. .fi
  86034. .UNINDENT
  86035. .UNINDENT
  86036. .UNINDENT
  86037. .INDENT 0.0
  86038. .TP
  86039. .B salt.modules.boto_kinesis.delete_stream(stream_name, region=None, key=None, keyid=None, profile=None)
  86040. Delete the stream with name stream_name. This cannot be undone! All data will be lost!!
  86041. .sp
  86042. CLI example:
  86043. .INDENT 7.0
  86044. .INDENT 3.5
  86045. .sp
  86046. .nf
  86047. .ft C
  86048. salt myminion boto_kinesis.delete_stream my_stream region=us\-east\-1
  86049. .ft P
  86050. .fi
  86051. .UNINDENT
  86052. .UNINDENT
  86053. .UNINDENT
  86054. .INDENT 0.0
  86055. .TP
  86056. .B salt.modules.boto_kinesis.disable_enhanced_monitoring(stream_name, metrics, region=None, key=None, keyid=None, profile=None)
  86057. Disable enhanced monitoring for the specified shard\-level metrics on stream stream_name
  86058. .sp
  86059. CLI example:
  86060. .INDENT 7.0
  86061. .INDENT 3.5
  86062. .sp
  86063. .nf
  86064. .ft C
  86065. salt myminion boto_kinesis.disable_enhanced_monitoring my_stream ["metrics", "to", "disable"] region=us\-east\-1
  86066. .ft P
  86067. .fi
  86068. .UNINDENT
  86069. .UNINDENT
  86070. .UNINDENT
  86071. .INDENT 0.0
  86072. .TP
  86073. .B salt.modules.boto_kinesis.enable_enhanced_monitoring(stream_name, metrics, region=None, key=None, keyid=None, profile=None)
  86074. Enable enhanced monitoring for the specified shard\-level metrics on stream stream_name
  86075. .sp
  86076. CLI example:
  86077. .INDENT 7.0
  86078. .INDENT 3.5
  86079. .sp
  86080. .nf
  86081. .ft C
  86082. salt myminion boto_kinesis.enable_enhanced_monitoring my_stream ["metrics", "to", "enable"] region=us\-east\-1
  86083. .ft P
  86084. .fi
  86085. .UNINDENT
  86086. .UNINDENT
  86087. .UNINDENT
  86088. .INDENT 0.0
  86089. .TP
  86090. .B salt.modules.boto_kinesis.exists(stream_name, region=None, key=None, keyid=None, profile=None)
  86091. Check if the stream exists. Returns False and the error if it does not.
  86092. .sp
  86093. CLI example:
  86094. .INDENT 7.0
  86095. .INDENT 3.5
  86096. .sp
  86097. .nf
  86098. .ft C
  86099. salt myminion boto_kinesis.exists my_stream region=us\-east\-1
  86100. .ft P
  86101. .fi
  86102. .UNINDENT
  86103. .UNINDENT
  86104. .UNINDENT
  86105. .INDENT 0.0
  86106. .TP
  86107. .B salt.modules.boto_kinesis.get_info_for_reshard(stream_details)
  86108. Collect some data: number of open shards, key range, etc.
  86109. Modifies stream_details to add a sorted list of OpenShards.
  86110. Returns (min_hash_key, max_hash_key, stream_details)
  86111. .sp
  86112. CLI example:
  86113. .INDENT 7.0
  86114. .INDENT 3.5
  86115. .sp
  86116. .nf
  86117. .ft C
  86118. salt myminion boto_kinesis.get_info_for_reshard existing_stream_details
  86119. .ft P
  86120. .fi
  86121. .UNINDENT
  86122. .UNINDENT
  86123. .UNINDENT
  86124. .INDENT 0.0
  86125. .TP
  86126. .B salt.modules.boto_kinesis.get_stream_when_active(stream_name, region=None, key=None, keyid=None, profile=None)
  86127. Get complete stream info from AWS, returning only when the stream is in the ACTIVE state.
  86128. Continues to retry when stream is updating or creating.
  86129. If the stream is deleted during retries, the loop will catch the error and break.
  86130. .sp
  86131. CLI example:
  86132. .INDENT 7.0
  86133. .INDENT 3.5
  86134. .sp
  86135. .nf
  86136. .ft C
  86137. salt myminion boto_kinesis.get_stream_when_active my_stream region=us\-east\-1
  86138. .ft P
  86139. .fi
  86140. .UNINDENT
  86141. .UNINDENT
  86142. .UNINDENT
  86143. .INDENT 0.0
  86144. .TP
  86145. .B salt.modules.boto_kinesis.increase_stream_retention_period(stream_name, retention_hours, region=None, key=None, keyid=None, profile=None)
  86146. Increase stream retention period to retention_hours
  86147. .sp
  86148. CLI example:
  86149. .INDENT 7.0
  86150. .INDENT 3.5
  86151. .sp
  86152. .nf
  86153. .ft C
  86154. salt myminion boto_kinesis.increase_stream_retention_period my_stream N region=us\-east\-1
  86155. .ft P
  86156. .fi
  86157. .UNINDENT
  86158. .UNINDENT
  86159. .UNINDENT
  86160. .INDENT 0.0
  86161. .TP
  86162. .B salt.modules.boto_kinesis.list_streams(region=None, key=None, keyid=None, profile=None)
  86163. Return a list of all streams visible to the current account
  86164. .sp
  86165. CLI example:
  86166. .INDENT 7.0
  86167. .INDENT 3.5
  86168. .sp
  86169. .nf
  86170. .ft C
  86171. salt myminion boto_kinesis.list_streams
  86172. .ft P
  86173. .fi
  86174. .UNINDENT
  86175. .UNINDENT
  86176. .UNINDENT
  86177. .INDENT 0.0
  86178. .TP
  86179. .B salt.modules.boto_kinesis.long_int(hash_key)
  86180. The hash key is a 128\-bit int, sent as a string.
  86181. It\(aqs necessary to convert to int/long for comparison operations.
  86182. This helper method handles python 2/3 incompatibility
  86183. .sp
  86184. CLI example:
  86185. .INDENT 7.0
  86186. .INDENT 3.5
  86187. .sp
  86188. .nf
  86189. .ft C
  86190. salt myminion boto_kinesis.long_int some_MD5_hash_as_string
  86191. .ft P
  86192. .fi
  86193. .UNINDENT
  86194. .UNINDENT
  86195. .INDENT 7.0
  86196. .TP
  86197. .B Returns
  86198. long object if python 2.X, int object if python 3.X
  86199. .UNINDENT
  86200. .UNINDENT
  86201. .INDENT 0.0
  86202. .TP
  86203. .B salt.modules.boto_kinesis.reshard(stream_name, desired_size, force=False, region=None, key=None, keyid=None, profile=None)
  86204. Reshard a kinesis stream. Each call to this function will wait until the stream is ACTIVE,
  86205. then make a single split or merge operation. This function decides where to split or merge
  86206. with the assumption that the ultimate goal is a balanced partition space.
  86207. .sp
  86208. For safety, user must past in force=True; otherwise, the function will dry run.
  86209. .sp
  86210. CLI example:
  86211. .INDENT 7.0
  86212. .INDENT 3.5
  86213. .sp
  86214. .nf
  86215. .ft C
  86216. salt myminion boto_kinesis.reshard my_stream N True region=us\-east\-1
  86217. .ft P
  86218. .fi
  86219. .UNINDENT
  86220. .UNINDENT
  86221. .INDENT 7.0
  86222. .TP
  86223. .B Returns
  86224. True if a split or merge was found/performed, False if nothing is needed
  86225. .UNINDENT
  86226. .UNINDENT
  86227. .SS salt.modules.boto_s3 module
  86228. .sp
  86229. Connection module for Amazon S3 using boto3
  86230. .sp
  86231. New in version 2018.3.0.
  86232. .INDENT 0.0
  86233. .TP
  86234. .B configuration
  86235. This module accepts explicit AWS credentials but can also
  86236. utilize IAM roles assigned to the instance through Instance Profiles or
  86237. it can read them from the ~/.aws/credentials file or from these
  86238. environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.
  86239. Dynamic credentials are then automatically obtained from AWS API and no
  86240. further configuration is necessary. More information available at:
  86241. .INDENT 7.0
  86242. .INDENT 3.5
  86243. .sp
  86244. .nf
  86245. .ft C
  86246. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/
  86247. iam\-roles\-for\-amazon\-ec2.html
  86248. http://boto3.readthedocs.io/en/latest/guide/
  86249. configuration.html#guide\-configuration
  86250. .ft P
  86251. .fi
  86252. .UNINDENT
  86253. .UNINDENT
  86254. .sp
  86255. If IAM roles are not used you need to specify them either in a pillar or
  86256. in the minion\(aqs config file:
  86257. .INDENT 7.0
  86258. .INDENT 3.5
  86259. .sp
  86260. .nf
  86261. .ft C
  86262. s3.keyid: GKTADJGHEIQSXMKKRBJ08H
  86263. s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86264. .ft P
  86265. .fi
  86266. .UNINDENT
  86267. .UNINDENT
  86268. .sp
  86269. A region may also be specified in the configuration:
  86270. .INDENT 7.0
  86271. .INDENT 3.5
  86272. .sp
  86273. .nf
  86274. .ft C
  86275. s3.region: us\-east\-1
  86276. .ft P
  86277. .fi
  86278. .UNINDENT
  86279. .UNINDENT
  86280. .sp
  86281. If a region is not specified, the default is us\-east\-1.
  86282. .sp
  86283. It\(aqs also possible to specify key, keyid and region via a profile, either
  86284. as a passed in dict, or as a string to pull from pillars or minion config:
  86285. .INDENT 7.0
  86286. .INDENT 3.5
  86287. .sp
  86288. .nf
  86289. .ft C
  86290. myprofile:
  86291. keyid: GKTADJGHEIQSXMKKRBJ08H
  86292. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86293. region: us\-east\-1
  86294. .ft P
  86295. .fi
  86296. .UNINDENT
  86297. .UNINDENT
  86298. .TP
  86299. .B depends
  86300. boto3
  86301. .UNINDENT
  86302. .INDENT 0.0
  86303. .TP
  86304. .B salt.modules.boto_s3.get_object_metadata(name, extra_args=None, region=None, key=None, keyid=None, profile=None)
  86305. Get metadata about an S3 object.
  86306. Returns None if the object does not exist.
  86307. .sp
  86308. You can pass AWS SSE\-C related args and/or RequestPayer in extra_args.
  86309. .sp
  86310. CLI Example:
  86311. .INDENT 7.0
  86312. .INDENT 3.5
  86313. .sp
  86314. .nf
  86315. .ft C
  86316. salt myminion boto_s3.get_object_metadata \e
  86317. my_bucket/path/to/object \e
  86318. region=us\-east\-1 \e
  86319. key=key \e
  86320. keyid=keyid \e
  86321. profile=profile \e
  86322. .ft P
  86323. .fi
  86324. .UNINDENT
  86325. .UNINDENT
  86326. .UNINDENT
  86327. .INDENT 0.0
  86328. .TP
  86329. .B salt.modules.boto_s3.upload_file(source, name, extra_args=None, region=None, key=None, keyid=None, profile=None)
  86330. Upload a local file as an S3 object.
  86331. .sp
  86332. CLI Example:
  86333. .INDENT 7.0
  86334. .INDENT 3.5
  86335. .sp
  86336. .nf
  86337. .ft C
  86338. salt myminion boto_s3.upload_file \e
  86339. /path/to/local/file \e
  86340. my_bucket/path/to/object \e
  86341. region=us\-east\-1 \e
  86342. key=key \e
  86343. keyid=keyid \e
  86344. profile=profile \e
  86345. .ft P
  86346. .fi
  86347. .UNINDENT
  86348. .UNINDENT
  86349. .UNINDENT
  86350. .SS salt.modules.boto_sns
  86351. .sp
  86352. Connection module for Amazon SNS
  86353. .INDENT 0.0
  86354. .TP
  86355. .B configuration
  86356. This module accepts explicit sns credentials but can also
  86357. utilize IAM roles assigned to the instance through Instance Profiles. Dynamic
  86358. credentials are then automatically obtained from AWS API and no further
  86359. configuration is necessary. More Information available at:
  86360. .INDENT 7.0
  86361. .INDENT 3.5
  86362. .sp
  86363. .nf
  86364. .ft C
  86365. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  86366. .ft P
  86367. .fi
  86368. .UNINDENT
  86369. .UNINDENT
  86370. .sp
  86371. If IAM roles are not used you need to specify them either in a pillar or
  86372. in the minion\(aqs config file:
  86373. .INDENT 7.0
  86374. .INDENT 3.5
  86375. .sp
  86376. .nf
  86377. .ft C
  86378. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  86379. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86380. .ft P
  86381. .fi
  86382. .UNINDENT
  86383. .UNINDENT
  86384. .sp
  86385. A region may also be specified in the configuration:
  86386. .INDENT 7.0
  86387. .INDENT 3.5
  86388. .sp
  86389. .nf
  86390. .ft C
  86391. sns.region: us\-east\-1
  86392. .ft P
  86393. .fi
  86394. .UNINDENT
  86395. .UNINDENT
  86396. .sp
  86397. If a region is not specified, the default is us\-east\-1.
  86398. .sp
  86399. It\(aqs also possible to specify key, keyid and region via a profile, either
  86400. as a passed in dict, or as a string to pull from pillars or minion config:
  86401. .INDENT 7.0
  86402. .INDENT 3.5
  86403. .sp
  86404. .nf
  86405. .ft C
  86406. myprofile:
  86407. keyid: GKTADJGHEIQSXMKKRBJ08H
  86408. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86409. region: us\-east\-1
  86410. .ft P
  86411. .fi
  86412. .UNINDENT
  86413. .UNINDENT
  86414. .TP
  86415. .B depends
  86416. boto
  86417. .UNINDENT
  86418. .INDENT 0.0
  86419. .TP
  86420. .B salt.modules.boto_sns.create(name, region=None, key=None, keyid=None, profile=None)
  86421. Create an SNS topic.
  86422. .sp
  86423. CLI example to create a topic:
  86424. .INDENT 7.0
  86425. .INDENT 3.5
  86426. .sp
  86427. .nf
  86428. .ft C
  86429. salt myminion boto_sns.create mytopic region=us\-east\-1
  86430. .ft P
  86431. .fi
  86432. .UNINDENT
  86433. .UNINDENT
  86434. .UNINDENT
  86435. .INDENT 0.0
  86436. .TP
  86437. .B salt.modules.boto_sns.delete(name, region=None, key=None, keyid=None, profile=None)
  86438. Delete an SNS topic.
  86439. .sp
  86440. CLI example to delete a topic:
  86441. .INDENT 7.0
  86442. .INDENT 3.5
  86443. .sp
  86444. .nf
  86445. .ft C
  86446. salt myminion boto_sns.delete mytopic region=us\-east\-1
  86447. .ft P
  86448. .fi
  86449. .UNINDENT
  86450. .UNINDENT
  86451. .UNINDENT
  86452. .INDENT 0.0
  86453. .TP
  86454. .B salt.modules.boto_sns.exists(name, region=None, key=None, keyid=None, profile=None)
  86455. Check to see if an SNS topic exists.
  86456. .sp
  86457. CLI example:
  86458. .INDENT 7.0
  86459. .INDENT 3.5
  86460. .sp
  86461. .nf
  86462. .ft C
  86463. salt myminion boto_sns.exists mytopic region=us\-east\-1
  86464. .ft P
  86465. .fi
  86466. .UNINDENT
  86467. .UNINDENT
  86468. .UNINDENT
  86469. .INDENT 0.0
  86470. .TP
  86471. .B salt.modules.boto_sns.get_all_subscriptions_by_topic(name, region=None, key=None, keyid=None, profile=None)
  86472. Get list of all subscriptions to a specific topic.
  86473. .sp
  86474. CLI example to delete a topic:
  86475. .INDENT 7.0
  86476. .INDENT 3.5
  86477. .sp
  86478. .nf
  86479. .ft C
  86480. salt myminion boto_sns.get_all_subscriptions_by_topic mytopic region=us\-east\-1
  86481. .ft P
  86482. .fi
  86483. .UNINDENT
  86484. .UNINDENT
  86485. .UNINDENT
  86486. .INDENT 0.0
  86487. .TP
  86488. .B salt.modules.boto_sns.get_all_topics(region=None, key=None, keyid=None, profile=None)
  86489. Returns a list of the all topics..
  86490. .sp
  86491. CLI example:
  86492. .INDENT 7.0
  86493. .INDENT 3.5
  86494. .sp
  86495. .nf
  86496. .ft C
  86497. salt myminion boto_sns.get_all_topics
  86498. .ft P
  86499. .fi
  86500. .UNINDENT
  86501. .UNINDENT
  86502. .UNINDENT
  86503. .INDENT 0.0
  86504. .TP
  86505. .B salt.modules.boto_sns.get_arn(name, region=None, key=None, keyid=None, profile=None)
  86506. Returns the full ARN for a given topic name.
  86507. .sp
  86508. CLI example:
  86509. .INDENT 7.0
  86510. .INDENT 3.5
  86511. .sp
  86512. .nf
  86513. .ft C
  86514. salt myminion boto_sns.get_arn mytopic
  86515. .ft P
  86516. .fi
  86517. .UNINDENT
  86518. .UNINDENT
  86519. .UNINDENT
  86520. .INDENT 0.0
  86521. .TP
  86522. .B salt.modules.boto_sns.subscribe(topic, protocol, endpoint, region=None, key=None, keyid=None, profile=None)
  86523. Subscribe to a Topic.
  86524. .sp
  86525. CLI example to delete a topic:
  86526. .INDENT 7.0
  86527. .INDENT 3.5
  86528. .sp
  86529. .nf
  86530. .ft C
  86531. salt myminion boto_sns.subscribe mytopic https https://www.example.com/sns\-endpoint region=us\-east\-1
  86532. .ft P
  86533. .fi
  86534. .UNINDENT
  86535. .UNINDENT
  86536. .UNINDENT
  86537. .INDENT 0.0
  86538. .TP
  86539. .B salt.modules.boto_sns.unsubscribe(topic, subscription_arn, region=None, key=None, keyid=None, profile=None)
  86540. Unsubscribe a specific SubscriptionArn of a topic.
  86541. .sp
  86542. CLI Example:
  86543. .INDENT 7.0
  86544. .INDENT 3.5
  86545. .sp
  86546. .nf
  86547. .ft C
  86548. salt myminion boto_sns.unsubscribe my_topic my_subscription_arn region=us\-east\-1
  86549. .ft P
  86550. .fi
  86551. .UNINDENT
  86552. .UNINDENT
  86553. .sp
  86554. New in version 2016.11.0.
  86555. .UNINDENT
  86556. .SS salt.modules.celery module
  86557. .sp
  86558. Support for scheduling celery tasks. The worker is independent of salt and thus can run in a different
  86559. virtualenv or on a different python version, as long as broker, backend and serializer configurations match.
  86560. Also note that celery and packages required by the celery broker, e.g. redis must be installed to load
  86561. the salt celery execution module.
  86562. .sp
  86563. \fBNOTE:\fP
  86564. .INDENT 0.0
  86565. .INDENT 3.5
  86566. A new app (and thus new connections) is created for each task execution
  86567. .UNINDENT
  86568. .UNINDENT
  86569. .INDENT 0.0
  86570. .TP
  86571. .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)
  86572. Execute celery tasks. For celery specific parameters see celery documentation.
  86573. .sp
  86574. CLI Example:
  86575. .INDENT 7.0
  86576. .INDENT 3.5
  86577. .sp
  86578. .nf
  86579. .ft C
  86580. salt \(aq*\(aq celery.run_task tasks.sleep args=[4] broker=redis://localhost \e
  86581. backend=redis://localhost wait_for_result=true
  86582. .ft P
  86583. .fi
  86584. .UNINDENT
  86585. .UNINDENT
  86586. .INDENT 7.0
  86587. .TP
  86588. .B task_name
  86589. The task name, e.g. tasks.sleep
  86590. .TP
  86591. .B args
  86592. Task arguments as a list
  86593. .TP
  86594. .B kwargs
  86595. Task keyword arguments
  86596. .TP
  86597. .B broker
  86598. Broker for celeryapp, see celery documentation
  86599. .TP
  86600. .B backend
  86601. Result backend for celeryapp, see celery documentation
  86602. .TP
  86603. .B wait_for_result
  86604. Wait until task result is read from result backend and return result, Default: False
  86605. .TP
  86606. .B timeout
  86607. Timeout waiting for result from celery, see celery AsyncResult.get documentation
  86608. .TP
  86609. .B propagate
  86610. Propagate exceptions from celery task, see celery AsyncResult.get documentation, Default: True
  86611. .TP
  86612. .B interval
  86613. Interval to check for task result, see celery AsyncResult.get documentation, Default: 0.5
  86614. .TP
  86615. .B no_ack
  86616. see celery AsyncResult.get documentation. Default: True
  86617. .TP
  86618. .B raise_timeout
  86619. Raise timeout exception if waiting for task result times out. Default: False
  86620. .TP
  86621. .B config
  86622. Config dict for celery app, See celery documentation
  86623. .UNINDENT
  86624. .UNINDENT
  86625. .SS salt.modules.ceph module
  86626. .sp
  86627. Module to provide ceph control with salt.
  86628. .INDENT 0.0
  86629. .TP
  86630. .B depends
  86631. .INDENT 7.0
  86632. .IP \(bu 2
  86633. ceph_cfg Python module
  86634. .UNINDENT
  86635. .UNINDENT
  86636. .sp
  86637. New in version 2016.11.0.
  86638. .INDENT 0.0
  86639. .TP
  86640. .B salt.modules.ceph.ceph_version()
  86641. Get the version of ceph installed
  86642. .sp
  86643. CLI Example:
  86644. .INDENT 7.0
  86645. .INDENT 3.5
  86646. .sp
  86647. .nf
  86648. .ft C
  86649. salt \(aq*\(aq ceph.ceph_version
  86650. .ft P
  86651. .fi
  86652. .UNINDENT
  86653. .UNINDENT
  86654. .UNINDENT
  86655. .INDENT 0.0
  86656. .TP
  86657. .B salt.modules.ceph.cluster_quorum(**kwargs)
  86658. Get the cluster\(aqs quorum status
  86659. .sp
  86660. CLI Example:
  86661. .INDENT 7.0
  86662. .INDENT 3.5
  86663. .sp
  86664. .nf
  86665. .ft C
  86666. salt \(aq*\(aq ceph.cluster_quorum \e
  86667. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86668. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86669. .ft P
  86670. .fi
  86671. .UNINDENT
  86672. .UNINDENT
  86673. .INDENT 7.0
  86674. .TP
  86675. .B cluster_uuid
  86676. The cluster UUID. Defaults to value found in ceph config file.
  86677. .TP
  86678. .B cluster_name
  86679. The cluster name. Defaults to \fBceph\fP\&.
  86680. .UNINDENT
  86681. .UNINDENT
  86682. .INDENT 0.0
  86683. .TP
  86684. .B salt.modules.ceph.cluster_status(**kwargs)
  86685. Get the cluster status, including health if in quorum
  86686. .sp
  86687. CLI Example:
  86688. .INDENT 7.0
  86689. .INDENT 3.5
  86690. .sp
  86691. .nf
  86692. .ft C
  86693. salt \(aq*\(aq ceph.cluster_status \e
  86694. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86695. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86696. .ft P
  86697. .fi
  86698. .UNINDENT
  86699. .UNINDENT
  86700. .INDENT 7.0
  86701. .TP
  86702. .B cluster_uuid
  86703. The cluster UUID. Defaults to value found in ceph config file.
  86704. .TP
  86705. .B cluster_name
  86706. The cluster name. Defaults to \fBceph\fP\&.
  86707. .UNINDENT
  86708. .UNINDENT
  86709. .INDENT 0.0
  86710. .TP
  86711. .B salt.modules.ceph.keyring_auth_add(**kwargs)
  86712. Add keyring to authorized list
  86713. .sp
  86714. CLI Example:
  86715. .INDENT 7.0
  86716. .INDENT 3.5
  86717. .sp
  86718. .nf
  86719. .ft C
  86720. salt \(aq*\(aq ceph.keyring_auth_add \e
  86721. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86722. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86723. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86724. .ft P
  86725. .fi
  86726. .UNINDENT
  86727. .UNINDENT
  86728. .INDENT 7.0
  86729. .TP
  86730. .B keyring_type (required)
  86731. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86732. .TP
  86733. .B cluster_uuid
  86734. The cluster UUID. Defaults to value found in ceph config file.
  86735. .TP
  86736. .B cluster_name
  86737. The cluster name. Defaults to \fBceph\fP\&.
  86738. .UNINDENT
  86739. .UNINDENT
  86740. .INDENT 0.0
  86741. .TP
  86742. .B salt.modules.ceph.keyring_auth_del(**kwargs)
  86743. Remove keyring from authorised list
  86744. .sp
  86745. CLI Example:
  86746. .INDENT 7.0
  86747. .INDENT 3.5
  86748. .sp
  86749. .nf
  86750. .ft C
  86751. salt \(aq*\(aq ceph.keyring_osd_auth_del \e
  86752. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86753. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86754. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86755. .ft P
  86756. .fi
  86757. .UNINDENT
  86758. .UNINDENT
  86759. .INDENT 7.0
  86760. .TP
  86761. .B keyring_type (required)
  86762. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86763. .TP
  86764. .B cluster_uuid
  86765. The cluster UUID. Defaults to value found in ceph config file.
  86766. .TP
  86767. .B cluster_name
  86768. The cluster name. Defaults to \fBceph\fP\&.
  86769. .UNINDENT
  86770. .UNINDENT
  86771. .INDENT 0.0
  86772. .TP
  86773. .B salt.modules.ceph.keyring_auth_list(**kwargs)
  86774. List all cephx authorization keys
  86775. .sp
  86776. CLI Example:
  86777. .INDENT 7.0
  86778. .INDENT 3.5
  86779. .sp
  86780. .nf
  86781. .ft C
  86782. salt \(aq*\(aq ceph.keyring_auth_list \e
  86783. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86784. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86785. .ft P
  86786. .fi
  86787. .UNINDENT
  86788. .UNINDENT
  86789. .INDENT 7.0
  86790. .TP
  86791. .B cluster_name
  86792. The cluster name. Defaults to \fBceph\fP\&.
  86793. .TP
  86794. .B cluster_uuid
  86795. The cluster UUID. Defaults to value found in ceph config file.
  86796. .UNINDENT
  86797. .UNINDENT
  86798. .INDENT 0.0
  86799. .TP
  86800. .B salt.modules.ceph.keyring_create(**kwargs)
  86801. Create keyring for cluster
  86802. .sp
  86803. CLI Example:
  86804. .INDENT 7.0
  86805. .INDENT 3.5
  86806. .sp
  86807. .nf
  86808. .ft C
  86809. salt \(aq*\(aq ceph.keyring_create \e
  86810. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86811. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86812. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86813. .ft P
  86814. .fi
  86815. .UNINDENT
  86816. .UNINDENT
  86817. .INDENT 7.0
  86818. .TP
  86819. .B keyring_type (required)
  86820. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86821. .TP
  86822. .B cluster_uuid
  86823. The cluster UUID. Defaults to value found in ceph config file.
  86824. .TP
  86825. .B cluster_name
  86826. The cluster name. Defaults to \fBceph\fP\&.
  86827. .UNINDENT
  86828. .UNINDENT
  86829. .INDENT 0.0
  86830. .TP
  86831. .B salt.modules.ceph.keyring_present(**kwargs)
  86832. Returns \fBTrue\fP if the keyring is present on disk, otherwise \fBFalse\fP
  86833. .sp
  86834. CLI Example:
  86835. .INDENT 7.0
  86836. .INDENT 3.5
  86837. .sp
  86838. .nf
  86839. .ft C
  86840. salt \(aq*\(aq ceph.keyring_present \e
  86841. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86842. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86843. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86844. .ft P
  86845. .fi
  86846. .UNINDENT
  86847. .UNINDENT
  86848. .INDENT 7.0
  86849. .TP
  86850. .B keyring_type (required)
  86851. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86852. .TP
  86853. .B cluster_uuid
  86854. The cluster UUID. Defaults to value found in ceph config file.
  86855. .TP
  86856. .B cluster_name
  86857. The cluster name. Defaults to \fBceph\fP\&.
  86858. .UNINDENT
  86859. .UNINDENT
  86860. .INDENT 0.0
  86861. .TP
  86862. .B salt.modules.ceph.keyring_purge(**kwargs)
  86863. Delete keyring for cluster
  86864. .sp
  86865. CLI Example:
  86866. .INDENT 7.0
  86867. .INDENT 3.5
  86868. .sp
  86869. .nf
  86870. .ft C
  86871. salt \(aq*\(aq ceph.keyring_purge \e
  86872. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86873. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86874. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86875. .ft P
  86876. .fi
  86877. .UNINDENT
  86878. .UNINDENT
  86879. .INDENT 7.0
  86880. .TP
  86881. .B keyring_type (required)
  86882. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86883. .TP
  86884. .B cluster_uuid
  86885. The cluster UUID. Defaults to value found in ceph config file.
  86886. .TP
  86887. .B cluster_name
  86888. The cluster name. Defaults to \fBceph\fP\&.
  86889. .UNINDENT
  86890. .sp
  86891. If no ceph config file is found, this command will fail.
  86892. .UNINDENT
  86893. .INDENT 0.0
  86894. .TP
  86895. .B salt.modules.ceph.keyring_save(**kwargs)
  86896. Create save keyring locally
  86897. .sp
  86898. CLI Example:
  86899. .INDENT 7.0
  86900. .INDENT 3.5
  86901. .sp
  86902. .nf
  86903. .ft C
  86904. salt \(aq*\(aq ceph.keyring_save \e
  86905. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86906. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86907. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86908. .ft P
  86909. .fi
  86910. .UNINDENT
  86911. .UNINDENT
  86912. .INDENT 7.0
  86913. .TP
  86914. .B keyring_type (required)
  86915. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86916. .TP
  86917. .B cluster_uuid
  86918. The cluster UUID. Defaults to value found in ceph config file.
  86919. .TP
  86920. .B cluster_name
  86921. The cluster name. Defaults to \fBceph\fP\&.
  86922. .UNINDENT
  86923. .UNINDENT
  86924. .INDENT 0.0
  86925. .TP
  86926. .B salt.modules.ceph.mds_create(**kwargs)
  86927. Create a mds
  86928. .sp
  86929. CLI Example:
  86930. .INDENT 7.0
  86931. .INDENT 3.5
  86932. .sp
  86933. .nf
  86934. .ft C
  86935. salt \(aq*\(aq ceph.mds_create \e
  86936. \(aqname\(aq = \(aqmds.name\(aq \e
  86937. \(aqport\(aq = 1000, \e
  86938. \(aqaddr\(aq = \(aqfqdn.example.org\(aq \e
  86939. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86940. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86941. .ft P
  86942. .fi
  86943. .UNINDENT
  86944. .UNINDENT
  86945. .INDENT 7.0
  86946. .TP
  86947. .B name (required)
  86948. The MDS name (must start with \fBmds.\fP)
  86949. .TP
  86950. .B port (required)
  86951. Port to which the MDS will listen
  86952. .TP
  86953. .B addr (required)
  86954. Address or IP address for the MDS to listen
  86955. .TP
  86956. .B cluster_uuid
  86957. The cluster UUID. Defaults to value found in ceph config file.
  86958. .TP
  86959. .B cluster_name
  86960. The cluster name. Defaults to \fBceph\fP\&.
  86961. .UNINDENT
  86962. .UNINDENT
  86963. .INDENT 0.0
  86964. .TP
  86965. .B salt.modules.ceph.mds_destroy(**kwargs)
  86966. Remove a mds
  86967. .sp
  86968. CLI Example:
  86969. .INDENT 7.0
  86970. .INDENT 3.5
  86971. .sp
  86972. .nf
  86973. .ft C
  86974. salt \(aq*\(aq ceph.mds_destroy \e
  86975. \(aqname\(aq = \(aqmds.name\(aq \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 name (required)
  86985. The MDS name (must start with \fBmds.\fP)
  86986. .TP
  86987. .B cluster_uuid
  86988. The cluster UUID. Defaults to value found in ceph config file.
  86989. .TP
  86990. .B cluster_name
  86991. The cluster name. Defaults to \fBceph\fP\&.
  86992. .UNINDENT
  86993. .UNINDENT
  86994. .INDENT 0.0
  86995. .TP
  86996. .B salt.modules.ceph.mon_active(**kwargs)
  86997. Returns \fBTrue\fP if the mon daemon is running, otherwise \fBFalse\fP
  86998. .sp
  86999. CLI Example:
  87000. .INDENT 7.0
  87001. .INDENT 3.5
  87002. .sp
  87003. .nf
  87004. .ft C
  87005. salt \(aq*\(aq ceph.mon_active \e
  87006. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87007. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87008. .ft P
  87009. .fi
  87010. .UNINDENT
  87011. .UNINDENT
  87012. .INDENT 7.0
  87013. .TP
  87014. .B cluster_uuid
  87015. The cluster UUID. Defaults to value found in ceph config file.
  87016. .TP
  87017. .B cluster_name
  87018. The cluster name. Defaults to \fBceph\fP\&.
  87019. .UNINDENT
  87020. .UNINDENT
  87021. .INDENT 0.0
  87022. .TP
  87023. .B salt.modules.ceph.mon_create(**kwargs)
  87024. Create a mon node
  87025. .sp
  87026. CLI Example:
  87027. .INDENT 7.0
  87028. .INDENT 3.5
  87029. .sp
  87030. .nf
  87031. .ft C
  87032. salt \(aq*\(aq ceph.mon_create \e
  87033. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87034. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87035. .ft P
  87036. .fi
  87037. .UNINDENT
  87038. .UNINDENT
  87039. .INDENT 7.0
  87040. .TP
  87041. .B cluster_uuid
  87042. The cluster UUID. Defaults to value found in ceph config file.
  87043. .TP
  87044. .B cluster_name
  87045. The cluster name. Defaults to \fBceph\fP\&.
  87046. .UNINDENT
  87047. .UNINDENT
  87048. .INDENT 0.0
  87049. .TP
  87050. .B salt.modules.ceph.mon_is(**kwargs)
  87051. Returns \fBTrue\fP if the target is a mon node, otherwise \fBFalse\fP
  87052. .sp
  87053. CLI Example:
  87054. .INDENT 7.0
  87055. .INDENT 3.5
  87056. .sp
  87057. .nf
  87058. .ft C
  87059. salt \(aq*\(aq ceph.mon_is \e
  87060. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87061. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87062. .ft P
  87063. .fi
  87064. .UNINDENT
  87065. .UNINDENT
  87066. .INDENT 7.0
  87067. .TP
  87068. .B cluster_name
  87069. The cluster name. Defaults to \fBceph\fP\&.
  87070. .TP
  87071. .B cluster_uuid
  87072. The cluster UUID. Defaults to value found in ceph config file.
  87073. .UNINDENT
  87074. .UNINDENT
  87075. .INDENT 0.0
  87076. .TP
  87077. .B salt.modules.ceph.mon_quorum(**kwargs)
  87078. Returns \fBTrue\fP if the mon daemon is in the quorum, otherwise \fBFalse\fP
  87079. .sp
  87080. CLI Example:
  87081. .INDENT 7.0
  87082. .INDENT 3.5
  87083. .sp
  87084. .nf
  87085. .ft C
  87086. salt \(aq*\(aq ceph.mon_quorum \e
  87087. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87088. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87089. .ft P
  87090. .fi
  87091. .UNINDENT
  87092. .UNINDENT
  87093. .INDENT 7.0
  87094. .TP
  87095. .B cluster_uuid
  87096. The cluster UUID. Defaults to value found in ceph config file.
  87097. .TP
  87098. .B cluster_name
  87099. The cluster name. Defaults to \fBceph\fP\&.
  87100. .UNINDENT
  87101. .UNINDENT
  87102. .INDENT 0.0
  87103. .TP
  87104. .B salt.modules.ceph.mon_status(**kwargs)
  87105. Get status from mon daemon
  87106. .sp
  87107. CLI Example:
  87108. .INDENT 7.0
  87109. .INDENT 3.5
  87110. .sp
  87111. .nf
  87112. .ft C
  87113. salt \(aq*\(aq ceph.mon_status \e
  87114. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87115. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87116. .ft P
  87117. .fi
  87118. .UNINDENT
  87119. .UNINDENT
  87120. .INDENT 7.0
  87121. .TP
  87122. .B cluster_uuid
  87123. The cluster UUID. Defaults to value found in ceph config file.
  87124. .TP
  87125. .B cluster_name
  87126. The cluster name. Defaults to \fBceph\fP\&.
  87127. .UNINDENT
  87128. .UNINDENT
  87129. .INDENT 0.0
  87130. .TP
  87131. .B salt.modules.ceph.osd_activate(**kwargs)
  87132. Activate an OSD
  87133. .sp
  87134. CLI Example:
  87135. .INDENT 7.0
  87136. .INDENT 3.5
  87137. .sp
  87138. .nf
  87139. .ft C
  87140. salt \(aq*\(aq ceph.osd_activate \(aqosd_dev\(aq=\(aq/dev/vdc\(aq
  87141. .ft P
  87142. .fi
  87143. .UNINDENT
  87144. .UNINDENT
  87145. .UNINDENT
  87146. .INDENT 0.0
  87147. .TP
  87148. .B salt.modules.ceph.osd_discover()
  87149. List all OSD by cluster
  87150. .sp
  87151. CLI Example:
  87152. .INDENT 7.0
  87153. .INDENT 3.5
  87154. .sp
  87155. .nf
  87156. .ft C
  87157. salt \(aq*\(aq ceph.osd_discover
  87158. .ft P
  87159. .fi
  87160. .UNINDENT
  87161. .UNINDENT
  87162. .UNINDENT
  87163. .INDENT 0.0
  87164. .TP
  87165. .B salt.modules.ceph.osd_prepare(**kwargs)
  87166. Prepare an OSD
  87167. .sp
  87168. CLI Example:
  87169. .INDENT 7.0
  87170. .INDENT 3.5
  87171. .sp
  87172. .nf
  87173. .ft C
  87174. salt \(aq*\(aq ceph.osd_prepare \(aqosd_dev\(aq=\(aq/dev/vdc\(aq \e
  87175. \(aqjournal_dev\(aq=\(aqdevice\(aq \e
  87176. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87177. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq \e
  87178. \(aqosd_fs_type\(aq=\(aqxfs\(aq \e
  87179. \(aqosd_uuid\(aq=\(aq2a143b73\-6d85\-4389\-a9e9\-b8a78d9e1e07\(aq \e
  87180. \(aqjournal_uuid\(aq=\(aq4562a5db\-ff6f\-4268\-811d\-12fd4a09ae98\(aq
  87181. .ft P
  87182. .fi
  87183. .UNINDENT
  87184. .UNINDENT
  87185. .INDENT 7.0
  87186. .TP
  87187. .B cluster_uuid
  87188. The device to store the osd data on.
  87189. .TP
  87190. .B journal_dev
  87191. The journal device. defaults to osd_dev.
  87192. .TP
  87193. .B cluster_name
  87194. The cluster name. Defaults to \fBceph\fP\&.
  87195. .TP
  87196. .B cluster_uuid
  87197. The cluster date will be added too. Defaults to the value found in local config.
  87198. .TP
  87199. .B osd_fs_type
  87200. set the file system to store OSD data with. Defaults to "xfs".
  87201. .TP
  87202. .B osd_uuid
  87203. set the OSD data UUID. If set will return if OSD with data UUID already exists.
  87204. .TP
  87205. .B journal_uuid
  87206. set the OSD journal UUID. If set will return if OSD with journal UUID already exists.
  87207. .UNINDENT
  87208. .UNINDENT
  87209. .INDENT 0.0
  87210. .TP
  87211. .B salt.modules.ceph.partition_is(dev)
  87212. Check whether a given device path is a partition or a full disk.
  87213. .sp
  87214. CLI Example:
  87215. .INDENT 7.0
  87216. .INDENT 3.5
  87217. .sp
  87218. .nf
  87219. .ft C
  87220. salt \(aq*\(aq ceph.partition_is /dev/sdc1
  87221. .ft P
  87222. .fi
  87223. .UNINDENT
  87224. .UNINDENT
  87225. .UNINDENT
  87226. .INDENT 0.0
  87227. .TP
  87228. .B salt.modules.ceph.partition_list()
  87229. List partitions by disk
  87230. .sp
  87231. CLI Example:
  87232. .INDENT 7.0
  87233. .INDENT 3.5
  87234. .sp
  87235. .nf
  87236. .ft C
  87237. salt \(aq*\(aq ceph.partition_list
  87238. .ft P
  87239. .fi
  87240. .UNINDENT
  87241. .UNINDENT
  87242. .UNINDENT
  87243. .INDENT 0.0
  87244. .TP
  87245. .B salt.modules.ceph.partition_list_journal()
  87246. List all OSD journal partitions by partition
  87247. .sp
  87248. CLI Example:
  87249. .INDENT 7.0
  87250. .INDENT 3.5
  87251. .sp
  87252. .nf
  87253. .ft C
  87254. salt \(aq*\(aq ceph.partition_list_journal
  87255. .ft P
  87256. .fi
  87257. .UNINDENT
  87258. .UNINDENT
  87259. .UNINDENT
  87260. .INDENT 0.0
  87261. .TP
  87262. .B salt.modules.ceph.partition_list_osd()
  87263. List all OSD data partitions by partition
  87264. .sp
  87265. CLI Example:
  87266. .INDENT 7.0
  87267. .INDENT 3.5
  87268. .sp
  87269. .nf
  87270. .ft C
  87271. salt \(aq*\(aq ceph.partition_list_osd
  87272. .ft P
  87273. .fi
  87274. .UNINDENT
  87275. .UNINDENT
  87276. .UNINDENT
  87277. .INDENT 0.0
  87278. .TP
  87279. .B salt.modules.ceph.pool_add(pool_name, **kwargs)
  87280. Create a pool
  87281. .sp
  87282. CLI Example:
  87283. .INDENT 7.0
  87284. .INDENT 3.5
  87285. .sp
  87286. .nf
  87287. .ft C
  87288. salt \(aq*\(aq ceph.pool_add pool_name \e
  87289. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87290. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87291. .ft P
  87292. .fi
  87293. .UNINDENT
  87294. .UNINDENT
  87295. .INDENT 7.0
  87296. .TP
  87297. .B cluster_name
  87298. The cluster name. Defaults to \fBceph\fP\&.
  87299. .TP
  87300. .B cluster_uuid
  87301. The cluster UUID. Defaults to value found in ceph config file.
  87302. .TP
  87303. .B pg_num
  87304. Default to 8
  87305. .TP
  87306. .B pgp_num
  87307. Default to pg_num
  87308. .TP
  87309. .B pool_type
  87310. can take values "replicated" or "erasure"
  87311. .TP
  87312. .B erasure_code_profile
  87313. The "erasure_code_profile"
  87314. .TP
  87315. .B crush_ruleset
  87316. The crush map rule set
  87317. .UNINDENT
  87318. .UNINDENT
  87319. .INDENT 0.0
  87320. .TP
  87321. .B salt.modules.ceph.pool_del(pool_name, **kwargs)
  87322. Delete a pool
  87323. .sp
  87324. CLI Example:
  87325. .INDENT 7.0
  87326. .INDENT 3.5
  87327. .sp
  87328. .nf
  87329. .ft C
  87330. salt \(aq*\(aq ceph.pool_del pool_name \e
  87331. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87332. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87333. .ft P
  87334. .fi
  87335. .UNINDENT
  87336. .UNINDENT
  87337. .INDENT 7.0
  87338. .TP
  87339. .B cluster_name
  87340. The cluster name. Defaults to \fBceph\fP\&.
  87341. .TP
  87342. .B cluster_uuid
  87343. The cluster UUID. Defaults to value found in ceph config file.
  87344. .UNINDENT
  87345. .UNINDENT
  87346. .INDENT 0.0
  87347. .TP
  87348. .B salt.modules.ceph.pool_list(**kwargs)
  87349. List all pools
  87350. .sp
  87351. CLI Example:
  87352. .INDENT 7.0
  87353. .INDENT 3.5
  87354. .sp
  87355. .nf
  87356. .ft C
  87357. salt \(aq*\(aq ceph.pool_list \e
  87358. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87359. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87360. .ft P
  87361. .fi
  87362. .UNINDENT
  87363. .UNINDENT
  87364. .INDENT 7.0
  87365. .TP
  87366. .B cluster_name
  87367. The cluster name. Defaults to \fBceph\fP\&.
  87368. .TP
  87369. .B cluster_uuid
  87370. The cluster UUID. Defaults to value found in ceph config file.
  87371. .UNINDENT
  87372. .UNINDENT
  87373. .INDENT 0.0
  87374. .TP
  87375. .B salt.modules.ceph.purge(**kwargs)
  87376. purge ceph configuration on the node
  87377. .sp
  87378. CLI Example:
  87379. .INDENT 7.0
  87380. .INDENT 3.5
  87381. .sp
  87382. .nf
  87383. .ft C
  87384. salt \(aq*\(aq ceph.purge \e
  87385. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87386. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87387. .ft P
  87388. .fi
  87389. .UNINDENT
  87390. .UNINDENT
  87391. .INDENT 7.0
  87392. .TP
  87393. .B cluster_name
  87394. The cluster name. Defaults to \fBceph\fP\&.
  87395. .TP
  87396. .B cluster_uuid
  87397. The cluster UUID. Defaults to value found in ceph config file.
  87398. .UNINDENT
  87399. .UNINDENT
  87400. .INDENT 0.0
  87401. .TP
  87402. .B salt.modules.ceph.rgw_create(**kwargs)
  87403. Create a rgw
  87404. .sp
  87405. CLI Example:
  87406. .INDENT 7.0
  87407. .INDENT 3.5
  87408. .sp
  87409. .nf
  87410. .ft C
  87411. salt \(aq*\(aq ceph.rgw_create \e
  87412. \(aqname\(aq = \(aqrgw.name\(aq \e
  87413. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87414. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87415. .ft P
  87416. .fi
  87417. .UNINDENT
  87418. .UNINDENT
  87419. .INDENT 7.0
  87420. .TP
  87421. .B name (required)
  87422. The RGW client name. Must start with \fBrgw.\fP
  87423. .TP
  87424. .B cluster_uuid
  87425. The cluster UUID. Defaults to value found in ceph config file.
  87426. .TP
  87427. .B cluster_name
  87428. The cluster name. Defaults to \fBceph\fP\&.
  87429. .UNINDENT
  87430. .UNINDENT
  87431. .INDENT 0.0
  87432. .TP
  87433. .B salt.modules.ceph.rgw_destroy(**kwargs)
  87434. Remove a rgw
  87435. .sp
  87436. CLI Example:
  87437. .INDENT 7.0
  87438. .INDENT 3.5
  87439. .sp
  87440. .nf
  87441. .ft C
  87442. salt \(aq*\(aq ceph.rgw_destroy \e
  87443. \(aqname\(aq = \(aqrgw.name\(aq \e
  87444. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87445. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87446. .ft P
  87447. .fi
  87448. .UNINDENT
  87449. .UNINDENT
  87450. .INDENT 7.0
  87451. .TP
  87452. .B name (required)
  87453. The RGW client name (must start with \fBrgw.\fP)
  87454. .TP
  87455. .B cluster_uuid
  87456. The cluster UUID. Defaults to value found in ceph config file.
  87457. .TP
  87458. .B cluster_name
  87459. The cluster name. Defaults to \fBceph\fP\&.
  87460. .UNINDENT
  87461. .UNINDENT
  87462. .INDENT 0.0
  87463. .TP
  87464. .B salt.modules.ceph.rgw_pools_create(**kwargs)
  87465. Create pools for rgw
  87466. .sp
  87467. CLI Example:
  87468. .INDENT 7.0
  87469. .INDENT 3.5
  87470. .sp
  87471. .nf
  87472. .ft C
  87473. salt \(aq*\(aq ceph.rgw_pools_create
  87474. .ft P
  87475. .fi
  87476. .UNINDENT
  87477. .UNINDENT
  87478. .INDENT 7.0
  87479. .TP
  87480. .B cluster_uuid
  87481. The cluster UUID. Defaults to value found in ceph config file.
  87482. .TP
  87483. .B cluster_name
  87484. The cluster name. Defaults to \fBceph\fP\&.
  87485. .UNINDENT
  87486. .UNINDENT
  87487. .INDENT 0.0
  87488. .TP
  87489. .B salt.modules.ceph.rgw_pools_missing(**kwargs)
  87490. Show pools missing for rgw
  87491. .sp
  87492. CLI Example:
  87493. .INDENT 7.0
  87494. .INDENT 3.5
  87495. .sp
  87496. .nf
  87497. .ft C
  87498. salt \(aq*\(aq ceph.rgw_pools_missing
  87499. .ft P
  87500. .fi
  87501. .UNINDENT
  87502. .UNINDENT
  87503. .INDENT 7.0
  87504. .TP
  87505. .B cluster_uuid
  87506. The cluster UUID. Defaults to value found in ceph config file.
  87507. .TP
  87508. .B cluster_name
  87509. The cluster name. Defaults to \fBceph\fP\&.
  87510. .UNINDENT
  87511. .UNINDENT
  87512. .INDENT 0.0
  87513. .TP
  87514. .B salt.modules.ceph.zap(target=None, **kwargs)
  87515. Destroy the partition table and content of a given disk.
  87516. .INDENT 7.0
  87517. .INDENT 3.5
  87518. .sp
  87519. .nf
  87520. .ft C
  87521. salt \(aq*\(aq ceph.osd_prepare \(aqdev\(aq=\(aq/dev/vdc\(aq \e
  87522. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87523. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87524. .ft P
  87525. .fi
  87526. .UNINDENT
  87527. .UNINDENT
  87528. .INDENT 7.0
  87529. .TP
  87530. .B dev
  87531. The block device to format.
  87532. .TP
  87533. .B cluster_name
  87534. The cluster name. Defaults to \fBceph\fP\&.
  87535. .TP
  87536. .B cluster_uuid
  87537. The cluster UUID. Defaults to value found in ceph config file.
  87538. .UNINDENT
  87539. .UNINDENT
  87540. .SS salt.modules.ciscoconfparse_mod module
  87541. .sp
  87542. Execution module for \fI\%ciscoconfparse\fP
  87543. .sp
  87544. New in version 2019.2.0.
  87545. .sp
  87546. This module can be used for basic configuration parsing, audit or validation
  87547. for a variety of network platforms having Cisco IOS style configuration (one
  87548. space indentation), including: Cisco IOS, Cisco Nexus, Cisco IOS\-XR,
  87549. Cisco IOS\-XR, Cisco ASA, Arista EOS, Brocade, HP Switches, Dell PowerConnect
  87550. Switches, or Extreme Networks devices. In newer versions, \fBciscoconfparse\fP
  87551. provides support for brace\-delimited configuration style as well, for platforms
  87552. such as: Juniper Junos, Palo Alto, or F5 Networks.
  87553. .sp
  87554. See \fI\%http://www.pennington.net/py/ciscoconfparse/index.html\fP for further details.
  87555. .INDENT 0.0
  87556. .TP
  87557. .B depends
  87558. ciscoconfparse
  87559. .UNINDENT
  87560. .sp
  87561. This module depends on the Python library with the same name,
  87562. \fBciscoconfparse\fP \- to install execute: \fBpip install ciscoconfparse\fP\&.
  87563. .INDENT 0.0
  87564. .TP
  87565. .B salt.modules.ciscoconfparse_mod.filter_lines(config=None, config_path=None, parent_regex=None, child_regex=None, saltenv=u\(aqbase\(aq)
  87566. Return a list of detailed matches, for the configuration blocks (parent\-child
  87567. relationship) whose parent respects the regular expressions configured via
  87568. the \fBparent_regex\fP argument, and the child matches the \fBchild_regex\fP
  87569. regular expression. The result is a list of dictionaries with the following
  87570. keys:
  87571. .INDENT 7.0
  87572. .IP \(bu 2
  87573. \fBmatch\fP: a boolean value that tells whether \fBchild_regex\fP matched any
  87574. children lines.
  87575. .IP \(bu 2
  87576. \fBparent\fP: the parent line (as text).
  87577. .IP \(bu 2
  87578. \fBchild\fP: the child line (as text). If no child line matched, this field
  87579. will be \fBNone\fP\&.
  87580. .UNINDENT
  87581. .sp
  87582. Note that the return list contains the elements that matched the parent
  87583. condition, the \fBparent_regex\fP regular expression. Therefore, the \fBparent\fP
  87584. field will always have a valid value, while \fBmatch\fP and \fBchild\fP may
  87585. default to \fBFalse\fP and \fBNone\fP respectively when there is not child match.
  87586. .sp
  87587. CLI Example:
  87588. .INDENT 7.0
  87589. .INDENT 3.5
  87590. .sp
  87591. .nf
  87592. .ft C
  87593. salt \(aq*\(aq ciscoconfparse.filter_lines config_path=https://bit.ly/2mAdq7z parent_regex=\(aqGigabit\(aq child_regex=\(aqshutdown\(aq
  87594. .ft P
  87595. .fi
  87596. .UNINDENT
  87597. .UNINDENT
  87598. .sp
  87599. Example output (for the example above):
  87600. .INDENT 7.0
  87601. .INDENT 3.5
  87602. .sp
  87603. .nf
  87604. .ft C
  87605. [
  87606. {
  87607. \(aqparent\(aq: \(aqinterface GigabitEthernet1\(aq,
  87608. \(aqmatch\(aq: False,
  87609. \(aqchild\(aq: None
  87610. },
  87611. {
  87612. \(aqparent\(aq: \(aqinterface GigabitEthernet2\(aq,
  87613. \(aqmatch\(aq: True,
  87614. \(aqchild\(aq: \(aq shutdown\(aq
  87615. },
  87616. {
  87617. \(aqparent\(aq: \(aqinterface GigabitEthernet3\(aq,
  87618. \(aqmatch\(aq: True,
  87619. \(aqchild\(aq: \(aq shutdown\(aq
  87620. }
  87621. ]
  87622. .ft P
  87623. .fi
  87624. .UNINDENT
  87625. .UNINDENT
  87626. .UNINDENT
  87627. .INDENT 0.0
  87628. .TP
  87629. .B salt.modules.ciscoconfparse_mod.find_lines(config=None, config_path=None, regex=None, saltenv=u\(aqbase\(aq)
  87630. Return all the lines (as text) that match the expression in the \fBregex\fP
  87631. argument.
  87632. .INDENT 7.0
  87633. .TP
  87634. .B config
  87635. The configuration sent as text.
  87636. .sp
  87637. \fBNOTE:\fP
  87638. .INDENT 7.0
  87639. .INDENT 3.5
  87640. This argument is ignored when \fBconfig_path\fP is specified.
  87641. .UNINDENT
  87642. .UNINDENT
  87643. .TP
  87644. .B config_path
  87645. The absolute or remote path to the file with the configuration to be
  87646. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87647. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87648. .TP
  87649. .B regex
  87650. The regular expression to match the lines against.
  87651. .TP
  87652. .B saltenv: \fBbase\fP
  87653. Salt fileserver environment from which to retrieve the file. This
  87654. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87655. .UNINDENT
  87656. .sp
  87657. CLI Example:
  87658. .INDENT 7.0
  87659. .INDENT 3.5
  87660. .sp
  87661. .nf
  87662. .ft C
  87663. salt \(aq*\(aq ciscoconfparse.find_lines config_path=https://bit.ly/2mAdq7z regex=\(aqip address\(aq
  87664. .ft P
  87665. .fi
  87666. .UNINDENT
  87667. .UNINDENT
  87668. .sp
  87669. Output example:
  87670. .INDENT 7.0
  87671. .INDENT 3.5
  87672. .sp
  87673. .nf
  87674. .ft C
  87675. cisco\-ios\-router:
  87676. \- ip address dhcp
  87677. \- ip address 172.20.0.1 255.255.255.0
  87678. \- no ip address
  87679. .ft P
  87680. .fi
  87681. .UNINDENT
  87682. .UNINDENT
  87683. .UNINDENT
  87684. .INDENT 0.0
  87685. .TP
  87686. .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)
  87687. Return a list of parent lines (as text) matching the regular expression
  87688. \fBparent_regex\fP that have children lines matching \fBchild_regex\fP\&.
  87689. .INDENT 7.0
  87690. .TP
  87691. .B config
  87692. The configuration sent as text.
  87693. .sp
  87694. \fBNOTE:\fP
  87695. .INDENT 7.0
  87696. .INDENT 3.5
  87697. This argument is ignored when \fBconfig_path\fP is specified.
  87698. .UNINDENT
  87699. .UNINDENT
  87700. .TP
  87701. .B config_path
  87702. The absolute or remote path to the file with the configuration to be
  87703. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87704. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87705. .TP
  87706. .B parent_regex
  87707. The regular expression to match the parent lines against.
  87708. .TP
  87709. .B child_regex
  87710. The regular expression to match the child lines against.
  87711. .TP
  87712. .B ignore_ws: \fBFalse\fP
  87713. Whether to ignore the white spaces.
  87714. .TP
  87715. .B saltenv: \fBbase\fP
  87716. Salt fileserver environment from which to retrieve the file. This
  87717. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87718. .UNINDENT
  87719. .sp
  87720. CLI Example:
  87721. .INDENT 7.0
  87722. .INDENT 3.5
  87723. .sp
  87724. .nf
  87725. .ft C
  87726. salt \(aq*\(aq ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2mAdq7z parent_line=\(aqline con\(aq child_line=\(aqstopbits\(aq
  87727. salt \(aq*\(aq ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2uIRxau parent_regex=\(aqge\-(.*)\(aq child_regex=\(aqunit \ed+\(aq
  87728. .ft P
  87729. .fi
  87730. .UNINDENT
  87731. .UNINDENT
  87732. .UNINDENT
  87733. .INDENT 0.0
  87734. .TP
  87735. .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)
  87736. Return a list of parent \fBciscoconfparse.IOSCfgLine\fP lines as text, which
  87737. matched the \fBparent_regex\fP and whose children did \fInot\fP match \fBchild_regex\fP\&.
  87738. Only the parent \fBciscoconfparse.IOSCfgLine\fP text lines will be returned.
  87739. For simplicity, this method only finds oldest ancestors without immediate
  87740. children that match.
  87741. .INDENT 7.0
  87742. .TP
  87743. .B config
  87744. The configuration sent as text.
  87745. .sp
  87746. \fBNOTE:\fP
  87747. .INDENT 7.0
  87748. .INDENT 3.5
  87749. This argument is ignored when \fBconfig_path\fP is specified.
  87750. .UNINDENT
  87751. .UNINDENT
  87752. .TP
  87753. .B config_path
  87754. The absolute or remote path to the file with the configuration to be
  87755. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87756. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87757. .TP
  87758. .B parent_regex
  87759. The regular expression to match the parent lines against.
  87760. .TP
  87761. .B child_regex
  87762. The regular expression to match the child lines against.
  87763. .TP
  87764. .B ignore_ws: \fBFalse\fP
  87765. Whether to ignore the white spaces.
  87766. .TP
  87767. .B saltenv: \fBbase\fP
  87768. Salt fileserver environment from which to retrieve the file. This
  87769. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87770. .UNINDENT
  87771. .sp
  87772. CLI Example:
  87773. .INDENT 7.0
  87774. .INDENT 3.5
  87775. .sp
  87776. .nf
  87777. .ft C
  87778. salt \(aq*\(aq ciscoconfparse.find_lines_wo_child config_path=https://bit.ly/2mAdq7z parent_line=\(aqline con\(aq child_line=\(aqstopbits\(aq
  87779. .ft P
  87780. .fi
  87781. .UNINDENT
  87782. .UNINDENT
  87783. .UNINDENT
  87784. .INDENT 0.0
  87785. .TP
  87786. .B salt.modules.ciscoconfparse_mod.find_objects(config=None, config_path=None, regex=None, saltenv=u\(aqbase\(aq)
  87787. Return all the line objects that match the expression in the \fBregex\fP
  87788. argument.
  87789. .sp
  87790. \fBWARNING:\fP
  87791. .INDENT 7.0
  87792. .INDENT 3.5
  87793. This function is mostly valuable when invoked from other Salt
  87794. components (i.e., execution modules, states, templates etc.). For CLI
  87795. usage, please consider using
  87796. \fBciscoconfparse.find_lines\fP
  87797. .UNINDENT
  87798. .UNINDENT
  87799. .INDENT 7.0
  87800. .TP
  87801. .B config
  87802. The configuration sent as text.
  87803. .sp
  87804. \fBNOTE:\fP
  87805. .INDENT 7.0
  87806. .INDENT 3.5
  87807. This argument is ignored when \fBconfig_path\fP is specified.
  87808. .UNINDENT
  87809. .UNINDENT
  87810. .TP
  87811. .B config_path
  87812. The absolute or remote path to the file with the configuration to be
  87813. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87814. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87815. .TP
  87816. .B regex
  87817. The regular expression to match the lines against.
  87818. .TP
  87819. .B saltenv: \fBbase\fP
  87820. Salt fileserver environment from which to retrieve the file. This
  87821. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87822. .UNINDENT
  87823. .sp
  87824. Usage example:
  87825. .INDENT 7.0
  87826. .INDENT 3.5
  87827. .sp
  87828. .nf
  87829. .ft C
  87830. objects = __salt__[\(aqciscoconfparse.find_objects\(aq](config_path=\(aqsalt://path/to/config.txt\(aq,
  87831. regex=\(aqGigabit\(aq)
  87832. for obj in objects:
  87833. print(obj.text)
  87834. .ft P
  87835. .fi
  87836. .UNINDENT
  87837. .UNINDENT
  87838. .UNINDENT
  87839. .INDENT 0.0
  87840. .TP
  87841. .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)
  87842. Parse through the children of all parent lines matching \fBparent_regex\fP,
  87843. and return a list of child objects, which matched the \fBchild_regex\fP\&.
  87844. .sp
  87845. \fBWARNING:\fP
  87846. .INDENT 7.0
  87847. .INDENT 3.5
  87848. This function is mostly valuable when invoked from other Salt
  87849. components (i.e., execution modules, states, templates etc.). For CLI
  87850. usage, please consider using
  87851. \fBciscoconfparse.find_lines_w_child\fP
  87852. .UNINDENT
  87853. .UNINDENT
  87854. .INDENT 7.0
  87855. .TP
  87856. .B config
  87857. The configuration sent as text.
  87858. .sp
  87859. \fBNOTE:\fP
  87860. .INDENT 7.0
  87861. .INDENT 3.5
  87862. This argument is ignored when \fBconfig_path\fP is specified.
  87863. .UNINDENT
  87864. .UNINDENT
  87865. .TP
  87866. .B config_path
  87867. The absolute or remote path to the file with the configuration to be
  87868. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87869. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87870. .TP
  87871. .B parent_regex
  87872. The regular expression to match the parent lines against.
  87873. .TP
  87874. .B child_regex
  87875. The regular expression to match the child lines against.
  87876. .TP
  87877. .B ignore_ws: \fBFalse\fP
  87878. Whether to ignore the white spaces.
  87879. .TP
  87880. .B saltenv: \fBbase\fP
  87881. Salt fileserver environment from which to retrieve the file. This
  87882. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87883. .UNINDENT
  87884. .sp
  87885. Usage example:
  87886. .INDENT 7.0
  87887. .INDENT 3.5
  87888. .sp
  87889. .nf
  87890. .ft C
  87891. objects = __salt__[\(aqciscoconfparse.find_objects_w_child\(aq](config_path=\(aqhttps://bit.ly/2mAdq7z\(aq,
  87892. parent_regex=\(aqline con\(aq,
  87893. child_regex=\(aqstopbits\(aq)
  87894. for obj in objects:
  87895. print(obj.text)
  87896. .ft P
  87897. .fi
  87898. .UNINDENT
  87899. .UNINDENT
  87900. .UNINDENT
  87901. .INDENT 0.0
  87902. .TP
  87903. .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)
  87904. Return a list of parent \fBciscoconfparse.IOSCfgLine\fP objects, which matched
  87905. the \fBparent_regex\fP and whose children did \fInot\fP match \fBchild_regex\fP\&.
  87906. Only the parent \fBciscoconfparse.IOSCfgLine\fP objects will be returned. For
  87907. simplicity, this method only finds oldest ancestors without immediate
  87908. children that match.
  87909. .sp
  87910. \fBWARNING:\fP
  87911. .INDENT 7.0
  87912. .INDENT 3.5
  87913. This function is mostly valuable when invoked from other Salt
  87914. components (i.e., execution modules, states, templates etc.). For CLI
  87915. usage, please consider using
  87916. \fBciscoconfparse.find_lines_wo_child\fP
  87917. .UNINDENT
  87918. .UNINDENT
  87919. .INDENT 7.0
  87920. .TP
  87921. .B config
  87922. The configuration sent as text.
  87923. .sp
  87924. \fBNOTE:\fP
  87925. .INDENT 7.0
  87926. .INDENT 3.5
  87927. This argument is ignored when \fBconfig_path\fP is specified.
  87928. .UNINDENT
  87929. .UNINDENT
  87930. .TP
  87931. .B config_path
  87932. The absolute or remote path to the file with the configuration to be
  87933. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87934. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87935. .TP
  87936. .B parent_regex
  87937. The regular expression to match the parent lines against.
  87938. .TP
  87939. .B child_regex
  87940. The regular expression to match the child lines against.
  87941. .TP
  87942. .B ignore_ws: \fBFalse\fP
  87943. Whether to ignore the white spaces.
  87944. .TP
  87945. .B saltenv: \fBbase\fP
  87946. Salt fileserver environment from which to retrieve the file. This
  87947. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87948. .UNINDENT
  87949. .sp
  87950. Usage example:
  87951. .INDENT 7.0
  87952. .INDENT 3.5
  87953. .sp
  87954. .nf
  87955. .ft C
  87956. objects = __salt__[\(aqciscoconfparse.find_objects_wo_child\(aq](config_path=\(aqhttps://bit.ly/2mAdq7z\(aq,
  87957. parent_regex=\(aqline con\(aq,
  87958. child_regex=\(aqstopbits\(aq)
  87959. for obj in objects:
  87960. print(obj.text)
  87961. .ft P
  87962. .fi
  87963. .UNINDENT
  87964. .UNINDENT
  87965. .UNINDENT
  87966. .SS salt.modules.datadog_api
  87967. .sp
  87968. An execution module that interacts with the Datadog API
  87969. .sp
  87970. The following parameters are required for all functions.
  87971. .INDENT 0.0
  87972. .TP
  87973. .B api_key
  87974. The datadog API key
  87975. .TP
  87976. .B app_key
  87977. The datadog application key
  87978. .UNINDENT
  87979. .sp
  87980. Full argument reference is available on the Datadog API reference page
  87981. \fI\%https://docs.datadoghq.com/api/\fP
  87982. .INDENT 0.0
  87983. .TP
  87984. .B salt.modules.datadog_api.cancel_downtime(api_key=None, app_key=None, scope=None, id=None)
  87985. Cancel a downtime by id or by scope.
  87986. .sp
  87987. CLI Example:
  87988. .INDENT 7.0
  87989. .INDENT 3.5
  87990. .sp
  87991. .nf
  87992. .ft C
  87993. salt\-call datadog.cancel_downtime scope=\(aqhost:app01\(aq \e
  87994. api_key=\(aq0123456789\(aq \e
  87995. app_key=\(aq9876543210\(aq\(ga
  87996. .ft P
  87997. .fi
  87998. .UNINDENT
  87999. .UNINDENT
  88000. .sp
  88001. Arguments \- Either scope or id is required.
  88002. .INDENT 7.0
  88003. .TP
  88004. .B Parameters
  88005. .INDENT 7.0
  88006. .IP \(bu 2
  88007. \fBid\fP \-\- The downtime ID
  88008. .IP \(bu 2
  88009. \fBscope\fP \-\- The downtime scope
  88010. .UNINDENT
  88011. .UNINDENT
  88012. .UNINDENT
  88013. .INDENT 0.0
  88014. .TP
  88015. .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)
  88016. Post an event to the Datadog stream.
  88017. .sp
  88018. CLI Example
  88019. .INDENT 7.0
  88020. .INDENT 3.5
  88021. .sp
  88022. .nf
  88023. .ft C
  88024. salt\-call datadog.post_event api_key=\(aq0123456789\(aq \e
  88025. app_key=\(aq9876543210\(aq \e
  88026. title=\(aqSalt Highstate\(aq \e
  88027. text="Salt highstate was run on $(salt\-call grains.get id)" \e
  88028. tags=\(aq["service:salt", "event:highstate"]\(aq
  88029. .ft P
  88030. .fi
  88031. .UNINDENT
  88032. .UNINDENT
  88033. .sp
  88034. Required arguments
  88035. .INDENT 7.0
  88036. .TP
  88037. .B Parameters
  88038. .INDENT 7.0
  88039. .IP \(bu 2
  88040. \fBtitle\fP \-\- The event title. Limited to 100 characters.
  88041. .IP \(bu 2
  88042. \fBtext\fP \-\- The body of the event. Limited to 4000 characters. The text
  88043. supports markdown.
  88044. .UNINDENT
  88045. .UNINDENT
  88046. .sp
  88047. Optional arguments
  88048. .INDENT 7.0
  88049. .TP
  88050. .B Parameters
  88051. .INDENT 7.0
  88052. .IP \(bu 2
  88053. \fBdate_happened\fP \-\- POSIX timestamp of the event.
  88054. .IP \(bu 2
  88055. \fBpriority\fP \-\- The priority of the event (\(aqnormal\(aq or \(aqlow\(aq).
  88056. .IP \(bu 2
  88057. \fBhost\fP \-\- Host name to associate with the event.
  88058. .IP \(bu 2
  88059. \fBtags\fP \-\- A list of tags to apply to the event.
  88060. .IP \(bu 2
  88061. \fBalert_type\fP \-\- "error", "warning", "info" or "success".
  88062. .IP \(bu 2
  88063. \fBaggregation_key\fP \-\- An arbitrary string to use for aggregation,
  88064. max length of 100 characters.
  88065. .IP \(bu 2
  88066. \fBsource_type_name\fP \-\- The type of event being posted.
  88067. .UNINDENT
  88068. .UNINDENT
  88069. .UNINDENT
  88070. .INDENT 0.0
  88071. .TP
  88072. .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)
  88073. Schedule downtime for a scope of monitors.
  88074. .sp
  88075. CLI Example:
  88076. .INDENT 7.0
  88077. .INDENT 3.5
  88078. .sp
  88079. .nf
  88080. .ft C
  88081. salt\-call datadog.schedule_downtime \(aqhost:app2\(aq \e
  88082. stop=$(date \-\-date=\(aq30 minutes\(aq +%s) \e
  88083. app_key=\(aq0123456789\(aq \e
  88084. api_key=\(aq9876543210\(aq
  88085. .ft P
  88086. .fi
  88087. .UNINDENT
  88088. .UNINDENT
  88089. .sp
  88090. Optional arguments
  88091. .INDENT 7.0
  88092. .TP
  88093. .B Parameters
  88094. .INDENT 7.0
  88095. .IP \(bu 2
  88096. \fBmonitor_id\fP \-\- The ID of the monitor
  88097. .IP \(bu 2
  88098. \fBstart\fP \-\- Start time in seconds since the epoch
  88099. .IP \(bu 2
  88100. \fBend\fP \-\- End time in seconds since the epoch
  88101. .IP \(bu 2
  88102. \fBmessage\fP \-\- A message to send in a notification for this downtime
  88103. .IP \(bu 2
  88104. \fBrecurrence\fP \-\- Repeat this downtime periodically
  88105. .IP \(bu 2
  88106. \fBtimezone\fP \-\- Specify the timezone
  88107. .UNINDENT
  88108. .UNINDENT
  88109. .UNINDENT
  88110. .SS salt.modules.devinfo
  88111. .INDENT 0.0
  88112. .TP
  88113. .B maintainer
  88114. Alberto Planas <\fI\%aplanas@suse.com\fP>
  88115. .TP
  88116. .B maturity
  88117. new
  88118. .TP
  88119. .B depends
  88120. None
  88121. .TP
  88122. .B platform
  88123. Linux
  88124. .UNINDENT
  88125. .INDENT 0.0
  88126. .TP
  88127. .B salt.modules.devinfo.filter_(udev_in=None, udev_ex=None)
  88128. Returns a list of devices, filtered under udev keys.
  88129. .INDENT 7.0
  88130. .TP
  88131. .B udev_in
  88132. A dictionary of key:values that are expected in the device
  88133. udev information
  88134. .TP
  88135. .B udev_ex
  88136. A dictionary of key:values that are not expected in the device
  88137. udev information (excluded)
  88138. .UNINDENT
  88139. .sp
  88140. The key is a lower case string, joined by dots, that represent a
  88141. path in the udev information dictionary. For example, \(aqe.id_bus\(aq
  88142. will represent the udev entry \fIudev[\(aqE\(aq][\(aqID_BUS\(aq]\fP
  88143. .sp
  88144. If the udev entry is a list, the algorithm will check that at
  88145. least one item match one item of the value of the parameters.
  88146. .sp
  88147. Returns list of devices that match \fIudev_in\fP and do not match
  88148. \fIudev_ex\fP\&.
  88149. .sp
  88150. CLI Example:
  88151. .INDENT 7.0
  88152. .INDENT 3.5
  88153. .sp
  88154. .nf
  88155. .ft C
  88156. salt \(aq*\(aq devinfo.filter udev_in=\(aq{"e.id_bus": "ata"}\(aq
  88157. .ft P
  88158. .fi
  88159. .UNINDENT
  88160. .UNINDENT
  88161. .UNINDENT
  88162. .INDENT 0.0
  88163. .TP
  88164. .B salt.modules.devinfo.hwinfo(items=None, short=True, listmd=False, devices=None)
  88165. Probe for hardware
  88166. .INDENT 7.0
  88167. .TP
  88168. .B items
  88169. List of hardware items to inspect. Default [\(aqbios\(aq, \(aqcpu\(aq, \(aqdisk\(aq,
  88170. \(aqmemory\(aq, \(aqnetwork\(aq, \(aqpartition\(aq]
  88171. .TP
  88172. .B short
  88173. Show only a summary. Default True.
  88174. .TP
  88175. .B listmd
  88176. Report RAID devices. Default False.
  88177. .TP
  88178. .B devices
  88179. List of devices to show information from. Default None.
  88180. .UNINDENT
  88181. .sp
  88182. CLI Example:
  88183. .INDENT 7.0
  88184. .INDENT 3.5
  88185. .sp
  88186. .nf
  88187. .ft C
  88188. salt \(aq*\(aq devinfo.hwinfo
  88189. salt \(aq*\(aq devinfo.hwinfo items=\(aq["disk"]\(aq short=no
  88190. salt \(aq*\(aq devinfo.hwinfo items=\(aq["disk"]\(aq short=no devices=\(aq["/dev/sda"]\(aq
  88191. salt \(aq*\(aq devinfo.hwinfo devices=/dev/sda
  88192. .ft P
  88193. .fi
  88194. .UNINDENT
  88195. .UNINDENT
  88196. .UNINDENT
  88197. .SS salt.modules.devmap
  88198. .sp
  88199. Device\-Mapper module
  88200. .INDENT 0.0
  88201. .TP
  88202. .B salt.modules.devmap.multipath_flush(device)
  88203. Device\-Mapper Multipath flush
  88204. .sp
  88205. CLI Example:
  88206. .INDENT 7.0
  88207. .INDENT 3.5
  88208. .sp
  88209. .nf
  88210. .ft C
  88211. salt \(aq*\(aq devmap.multipath_flush mpath1
  88212. .ft P
  88213. .fi
  88214. .UNINDENT
  88215. .UNINDENT
  88216. .UNINDENT
  88217. .INDENT 0.0
  88218. .TP
  88219. .B salt.modules.devmap.multipath_list()
  88220. Device\-Mapper Multipath list
  88221. .sp
  88222. CLI Example:
  88223. .INDENT 7.0
  88224. .INDENT 3.5
  88225. .sp
  88226. .nf
  88227. .ft C
  88228. salt \(aq*\(aq devmap.multipath_list
  88229. .ft P
  88230. .fi
  88231. .UNINDENT
  88232. .UNINDENT
  88233. .UNINDENT
  88234. .SS salt.modules.drbd
  88235. .sp
  88236. DRBD administration module
  88237. .INDENT 0.0
  88238. .TP
  88239. .B salt.modules.drbd.overview()
  88240. Show status of the DRBD devices, support two nodes only.
  88241. drbd\-overview is removed since drbd\-utils\-9.6.0,
  88242. use status instead.
  88243. .sp
  88244. CLI Example:
  88245. .INDENT 7.0
  88246. .INDENT 3.5
  88247. .sp
  88248. .nf
  88249. .ft C
  88250. salt \(aq*\(aq drbd.overview
  88251. .ft P
  88252. .fi
  88253. .UNINDENT
  88254. .UNINDENT
  88255. .UNINDENT
  88256. .INDENT 0.0
  88257. .TP
  88258. .B salt.modules.drbd.status(name=u\(aqall\(aq)
  88259. Using drbdadm to show status of the DRBD devices,
  88260. available in the latest drbd9.
  88261. Support multiple nodes, multiple volumes.
  88262. .INDENT 7.0
  88263. .TP
  88264. .B Parameters
  88265. \fBname\fP (\fI\%str\fP) \-\- Resource name.
  88266. .TP
  88267. .B Returns
  88268. drbd status of resource.
  88269. .TP
  88270. .B Return type
  88271. \fI\%list\fP(\fI\%dict\fP(res))
  88272. .UNINDENT
  88273. .sp
  88274. CLI Example:
  88275. .INDENT 7.0
  88276. .INDENT 3.5
  88277. .sp
  88278. .nf
  88279. .ft C
  88280. salt \(aq*\(aq drbd.status
  88281. salt \(aq*\(aq drbd.status name=<resource name>
  88282. .ft P
  88283. .fi
  88284. .UNINDENT
  88285. .UNINDENT
  88286. .UNINDENT
  88287. .SS salt.modules.elasticsearch
  88288. .sp
  88289. Elasticsearch \- A distributed RESTful search and analytics server
  88290. .sp
  88291. Module to provide Elasticsearch compatibility to Salt
  88292. (compatible with Elasticsearch version 1.5.2+)
  88293. .sp
  88294. New in version 2015.8.0.
  88295. .INDENT 0.0
  88296. .TP
  88297. .B depends
  88298. \fI\%elasticsearch\-py\fP
  88299. .TP
  88300. .B configuration
  88301. This module accepts connection configuration details either as
  88302. parameters or as configuration settings in /etc/salt/minion on the relevant
  88303. minions:
  88304. .INDENT 7.0
  88305. .INDENT 3.5
  88306. .sp
  88307. .nf
  88308. .ft C
  88309. elasticsearch:
  88310. host: \(aq10.10.10.100:9200\(aq
  88311. elasticsearch\-cluster:
  88312. hosts:
  88313. \- \(aq10.10.10.100:9200\(aq
  88314. \- \(aq10.10.10.101:9200\(aq
  88315. \- \(aq10.10.10.102:9200\(aq
  88316. elasticsearch\-extra:
  88317. hosts:
  88318. \- \(aq10.10.10.100:9200\(aq
  88319. use_ssl: True
  88320. verify_certs: True
  88321. ca_certs: /path/to/custom_ca_bundle.pem
  88322. number_of_shards: 1
  88323. number_of_replicas: 0
  88324. functions_blacklist:
  88325. \- \(aqsaltutil.find_job\(aq
  88326. \- \(aqpillar.items\(aq
  88327. \- \(aqgrains.items\(aq
  88328. proxies:
  88329. \- http: http://proxy:3128
  88330. \- https: http://proxy:1080
  88331. .ft P
  88332. .fi
  88333. .UNINDENT
  88334. .UNINDENT
  88335. .sp
  88336. When specifying proxies the requests backend will be used and the \(aqproxies\(aq
  88337. data structure is passed as\-is to that module.
  88338. .sp
  88339. This data can also be passed into pillar. Options passed into opts will
  88340. overwrite options passed into pillar.
  88341. .sp
  88342. Some functionality might be limited by elasticsearch\-py and Elasticsearch server versions.
  88343. .UNINDENT
  88344. .INDENT 0.0
  88345. .TP
  88346. .B salt.modules.elasticsearch.alias_create(indices, alias, hosts=None, body=None, profile=None, source=None)
  88347. Create an alias for a specific index/indices
  88348. .INDENT 7.0
  88349. .TP
  88350. .B indices
  88351. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88352. .TP
  88353. .B alias
  88354. Alias name
  88355. .TP
  88356. .B body
  88357. Optional definition such as routing or filter as defined in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-aliases.html\fP
  88358. .TP
  88359. .B source
  88360. URL of file specifying optional definition such as routing or filter. Cannot be used in combination with \fBbody\fP\&.
  88361. .UNINDENT
  88362. .sp
  88363. CLI example:
  88364. .INDENT 7.0
  88365. .INDENT 3.5
  88366. .sp
  88367. .nf
  88368. .ft C
  88369. salt myminion elasticsearch.alias_create testindex_v1 testindex
  88370. .ft P
  88371. .fi
  88372. .UNINDENT
  88373. .UNINDENT
  88374. .UNINDENT
  88375. .INDENT 0.0
  88376. .TP
  88377. .B salt.modules.elasticsearch.alias_delete(indices, aliases, hosts=None, body=None, profile=None, source=None)
  88378. Delete an alias of an index
  88379. .INDENT 7.0
  88380. .TP
  88381. .B indices
  88382. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88383. .TP
  88384. .B aliases
  88385. Alias names separated by comma
  88386. .UNINDENT
  88387. .sp
  88388. CLI example:
  88389. .INDENT 7.0
  88390. .INDENT 3.5
  88391. .sp
  88392. .nf
  88393. .ft C
  88394. salt myminion elasticsearch.alias_delete testindex_v1 testindex
  88395. .ft P
  88396. .fi
  88397. .UNINDENT
  88398. .UNINDENT
  88399. .UNINDENT
  88400. .INDENT 0.0
  88401. .TP
  88402. .B salt.modules.elasticsearch.alias_exists(aliases, indices=None, hosts=None, profile=None)
  88403. Return a boolean indicating whether given alias exists
  88404. .INDENT 7.0
  88405. .TP
  88406. .B indices
  88407. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88408. .TP
  88409. .B aliases
  88410. Alias names separated by comma
  88411. .UNINDENT
  88412. .sp
  88413. CLI example:
  88414. .INDENT 7.0
  88415. .INDENT 3.5
  88416. .sp
  88417. .nf
  88418. .ft C
  88419. salt myminion elasticsearch.alias_exists None testindex
  88420. .ft P
  88421. .fi
  88422. .UNINDENT
  88423. .UNINDENT
  88424. .UNINDENT
  88425. .INDENT 0.0
  88426. .TP
  88427. .B salt.modules.elasticsearch.alias_get(indices=None, aliases=None, hosts=None, profile=None)
  88428. Check for the existence of an alias and if it exists, return it
  88429. .INDENT 7.0
  88430. .TP
  88431. .B indices
  88432. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88433. .TP
  88434. .B aliases
  88435. Alias names separated by comma
  88436. .UNINDENT
  88437. .sp
  88438. CLI example:
  88439. .INDENT 7.0
  88440. .INDENT 3.5
  88441. .sp
  88442. .nf
  88443. .ft C
  88444. salt myminion elasticsearch.alias_get testindex
  88445. .ft P
  88446. .fi
  88447. .UNINDENT
  88448. .UNINDENT
  88449. .UNINDENT
  88450. .INDENT 0.0
  88451. .TP
  88452. .B salt.modules.elasticsearch.cluster_get_settings(flat_settings=False, include_defaults=False, hosts=None, profile=None)
  88453. New in version 3000.
  88454. .sp
  88455. Return Elasticsearch cluster settings.
  88456. .INDENT 7.0
  88457. .TP
  88458. .B flat_settings
  88459. Return settings in flat format.
  88460. .TP
  88461. .B include_defaults
  88462. Whether to return all default clusters setting.
  88463. .UNINDENT
  88464. .sp
  88465. CLI example:
  88466. .INDENT 7.0
  88467. .INDENT 3.5
  88468. .sp
  88469. .nf
  88470. .ft C
  88471. salt myminion elasticsearch.cluster_get_settings
  88472. .ft P
  88473. .fi
  88474. .UNINDENT
  88475. .UNINDENT
  88476. .UNINDENT
  88477. .INDENT 0.0
  88478. .TP
  88479. .B salt.modules.elasticsearch.cluster_health(index=None, level=u\(aqcluster\(aq, local=False, hosts=None, profile=None)
  88480. New in version 2017.7.0.
  88481. .sp
  88482. Return Elasticsearch cluster health.
  88483. .INDENT 7.0
  88484. .TP
  88485. .B index
  88486. Limit the information returned to a specific index
  88487. .TP
  88488. .B level
  88489. Specify the level of detail for returned information, default \(aqcluster\(aq, valid choices are: \(aqcluster\(aq, \(aqindices\(aq, \(aqshards\(aq
  88490. .TP
  88491. .B local
  88492. Return local information, do not retrieve the state from master node
  88493. .UNINDENT
  88494. .sp
  88495. CLI example:
  88496. .INDENT 7.0
  88497. .INDENT 3.5
  88498. .sp
  88499. .nf
  88500. .ft C
  88501. salt myminion elasticsearch.cluster_health
  88502. .ft P
  88503. .fi
  88504. .UNINDENT
  88505. .UNINDENT
  88506. .UNINDENT
  88507. .INDENT 0.0
  88508. .TP
  88509. .B salt.modules.elasticsearch.cluster_put_settings(body=None, flat_settings=False, hosts=None, profile=None)
  88510. New in version 3000.
  88511. .sp
  88512. Set Elasticsearch cluster settings.
  88513. .INDENT 7.0
  88514. .TP
  88515. .B body
  88516. The settings to be updated. Can be either \(aqtransient\(aq or \(aqpersistent\(aq (survives cluster restart)
  88517. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster\-update\-settings.html\fP
  88518. .TP
  88519. .B flat_settings
  88520. Return settings in flat format.
  88521. .UNINDENT
  88522. .sp
  88523. CLI example:
  88524. .INDENT 7.0
  88525. .INDENT 3.5
  88526. .sp
  88527. .nf
  88528. .ft C
  88529. salt myminion elasticsearch.cluster_put_settings \(aq{"persistent": {"indices.recovery.max_bytes_per_sec": "50mb"}}\(aq
  88530. salt myminion elasticsearch.cluster_put_settings \(aq{"transient": {"indices.recovery.max_bytes_per_sec": "50mb"}}\(aq
  88531. .ft P
  88532. .fi
  88533. .UNINDENT
  88534. .UNINDENT
  88535. .UNINDENT
  88536. .INDENT 0.0
  88537. .TP
  88538. .B salt.modules.elasticsearch.cluster_stats(nodes=None, hosts=None, profile=None)
  88539. New in version 2017.7.0.
  88540. .sp
  88541. Return Elasticsearch cluster stats.
  88542. .INDENT 7.0
  88543. .TP
  88544. .B nodes
  88545. List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
  88546. .UNINDENT
  88547. .sp
  88548. CLI example:
  88549. .INDENT 7.0
  88550. .INDENT 3.5
  88551. .sp
  88552. .nf
  88553. .ft C
  88554. salt myminion elasticsearch.cluster_stats
  88555. .ft P
  88556. .fi
  88557. .UNINDENT
  88558. .UNINDENT
  88559. .UNINDENT
  88560. .INDENT 0.0
  88561. .TP
  88562. .B salt.modules.elasticsearch.document_create(index, doc_type, body=None, id=None, hosts=None, profile=None, source=None)
  88563. Create a document in a specified index
  88564. .INDENT 7.0
  88565. .TP
  88566. .B index
  88567. Index name where the document should reside
  88568. .TP
  88569. .B doc_type
  88570. Type of the document
  88571. .TP
  88572. .B body
  88573. Document to store
  88574. .TP
  88575. .B source
  88576. URL of file specifying document to store. Cannot be used in combination with \fBbody\fP\&.
  88577. .TP
  88578. .B id
  88579. Optional unique document identifier for specified doc_type (empty for random)
  88580. .UNINDENT
  88581. .sp
  88582. CLI example:
  88583. .INDENT 7.0
  88584. .INDENT 3.5
  88585. .sp
  88586. .nf
  88587. .ft C
  88588. salt myminion elasticsearch.document_create testindex doctype1 \(aq{}\(aq
  88589. .ft P
  88590. .fi
  88591. .UNINDENT
  88592. .UNINDENT
  88593. .UNINDENT
  88594. .INDENT 0.0
  88595. .TP
  88596. .B salt.modules.elasticsearch.document_delete(index, doc_type, id, hosts=None, profile=None)
  88597. Delete a document from an index
  88598. .INDENT 7.0
  88599. .TP
  88600. .B index
  88601. Index name where the document resides
  88602. .TP
  88603. .B doc_type
  88604. Type of the document
  88605. .TP
  88606. .B id
  88607. Document identifier
  88608. .UNINDENT
  88609. .sp
  88610. CLI example:
  88611. .INDENT 7.0
  88612. .INDENT 3.5
  88613. .sp
  88614. .nf
  88615. .ft C
  88616. salt myminion elasticsearch.document_delete testindex doctype1 AUx\-384m0Bug_8U80wQZ
  88617. .ft P
  88618. .fi
  88619. .UNINDENT
  88620. .UNINDENT
  88621. .UNINDENT
  88622. .INDENT 0.0
  88623. .TP
  88624. .B salt.modules.elasticsearch.document_exists(index, id, doc_type=u\(aq_all\(aq, hosts=None, profile=None)
  88625. Return a boolean indicating whether given document exists
  88626. .INDENT 7.0
  88627. .TP
  88628. .B index
  88629. Index name where the document resides
  88630. .TP
  88631. .B id
  88632. Document identifier
  88633. .TP
  88634. .B doc_type
  88635. Type of the document, use _all to fetch the first document matching the ID across all types
  88636. .UNINDENT
  88637. .sp
  88638. CLI example:
  88639. .INDENT 7.0
  88640. .INDENT 3.5
  88641. .sp
  88642. .nf
  88643. .ft C
  88644. salt myminion elasticsearch.document_exists testindex AUx\-384m0Bug_8U80wQZ
  88645. .ft P
  88646. .fi
  88647. .UNINDENT
  88648. .UNINDENT
  88649. .UNINDENT
  88650. .INDENT 0.0
  88651. .TP
  88652. .B salt.modules.elasticsearch.document_get(index, id, doc_type=u\(aq_all\(aq, hosts=None, profile=None)
  88653. Check for the existence of a document and if it exists, return it
  88654. .INDENT 7.0
  88655. .TP
  88656. .B index
  88657. Index name where the document resides
  88658. .TP
  88659. .B id
  88660. Document identifier
  88661. .TP
  88662. .B doc_type
  88663. Type of the document, use _all to fetch the first document matching the ID across all types
  88664. .UNINDENT
  88665. .sp
  88666. CLI example:
  88667. .INDENT 7.0
  88668. .INDENT 3.5
  88669. .sp
  88670. .nf
  88671. .ft C
  88672. salt myminion elasticsearch.document_get testindex AUx\-384m0Bug_8U80wQZ
  88673. .ft P
  88674. .fi
  88675. .UNINDENT
  88676. .UNINDENT
  88677. .UNINDENT
  88678. .INDENT 0.0
  88679. .TP
  88680. .B salt.modules.elasticsearch.flush_synced(hosts=None, profile=None, **kwargs)
  88681. New in version 3000.
  88682. .sp
  88683. Perform a normal flush, then add a generated unique marker (sync_id) to all shards.
  88684. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-synced\-flush.html\fP
  88685. .INDENT 7.0
  88686. .TP
  88687. .B index
  88688. (Optional, string) A comma\-separated list of index names; use _all or empty string for all indices. Defaults to \(aq_all\(aq.
  88689. .TP
  88690. .B ignore_unavailable
  88691. (Optional, boolean) If true, missing or closed indices are not included in the response. Defaults to false.
  88692. .TP
  88693. .B allow_no_indices
  88694. (Optional, boolean) If true, the request does not return an error if a wildcard expression or _all value retrieves only missing or closed indices.
  88695. This parameter also applies to index aliases that point to a missing or closed index.
  88696. .TP
  88697. .B expand_wildcards
  88698. (Optional, string) Controls what kind of indices that wildcard expressions can expand to.
  88699. .sp
  88700. Valid values are:
  88701. .INDENT 7.0
  88702. .INDENT 3.5
  88703. .sp
  88704. .nf
  88705. .ft C
  88706. all \- Expand to open and closed indices.
  88707. open \- Expand only to open indices.
  88708. closed \- Expand only to closed indices.
  88709. none \- Wildcard expressions are not accepted.
  88710. .ft P
  88711. .fi
  88712. .UNINDENT
  88713. .UNINDENT
  88714. .UNINDENT
  88715. .sp
  88716. The defaults settings for the above parameters depend on the API being used.
  88717. .sp
  88718. CLI example:
  88719. .INDENT 7.0
  88720. .INDENT 3.5
  88721. .sp
  88722. .nf
  88723. .ft C
  88724. salt myminion elasticsearch.flush_synced index=\(aqindex1,index2\(aq ignore_unavailable=True allow_no_indices=True expand_wildcards=\(aqall\(aq
  88725. .ft P
  88726. .fi
  88727. .UNINDENT
  88728. .UNINDENT
  88729. .UNINDENT
  88730. .INDENT 0.0
  88731. .TP
  88732. .B salt.modules.elasticsearch.index_close(index, allow_no_indices=True, expand_wildcards=u\(aqopen\(aq, ignore_unavailable=True, hosts=None, profile=None)
  88733. New in version 2017.7.0.
  88734. .sp
  88735. Close specified index.
  88736. .INDENT 7.0
  88737. .TP
  88738. .B index
  88739. Index to be closed
  88740. .TP
  88741. .B allow_no_indices
  88742. Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
  88743. .TP
  88744. .B expand_wildcards
  88745. Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘open’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88746. .TP
  88747. .B ignore_unavailable
  88748. Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88749. .UNINDENT
  88750. .sp
  88751. CLI example:
  88752. .INDENT 7.0
  88753. .INDENT 3.5
  88754. .sp
  88755. .nf
  88756. .ft C
  88757. salt myminion elasticsearch.index_close testindex
  88758. .ft P
  88759. .fi
  88760. .UNINDENT
  88761. .UNINDENT
  88762. .UNINDENT
  88763. .INDENT 0.0
  88764. .TP
  88765. .B salt.modules.elasticsearch.index_create(index, body=None, hosts=None, profile=None, source=None)
  88766. Create an index
  88767. .INDENT 7.0
  88768. .TP
  88769. .B index
  88770. Index name
  88771. .TP
  88772. .B body
  88773. 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
  88774. .TP
  88775. .B source
  88776. URL to file specifying index definition. Cannot be used in combination with \fBbody\fP\&.
  88777. .UNINDENT
  88778. .sp
  88779. CLI example:
  88780. .INDENT 7.0
  88781. .INDENT 3.5
  88782. .sp
  88783. .nf
  88784. .ft C
  88785. salt myminion elasticsearch.index_create testindex
  88786. salt myminion elasticsearch.index_create testindex2 \(aq{"settings" : {"index" : {"number_of_shards" : 3, "number_of_replicas" : 2}}}\(aq
  88787. .ft P
  88788. .fi
  88789. .UNINDENT
  88790. .UNINDENT
  88791. .UNINDENT
  88792. .INDENT 0.0
  88793. .TP
  88794. .B salt.modules.elasticsearch.index_delete(index, hosts=None, profile=None)
  88795. Delete an index
  88796. .INDENT 7.0
  88797. .TP
  88798. .B index
  88799. Index name
  88800. .UNINDENT
  88801. .sp
  88802. CLI example:
  88803. .INDENT 7.0
  88804. .INDENT 3.5
  88805. .sp
  88806. .nf
  88807. .ft C
  88808. salt myminion elasticsearch.index_delete testindex
  88809. .ft P
  88810. .fi
  88811. .UNINDENT
  88812. .UNINDENT
  88813. .UNINDENT
  88814. .INDENT 0.0
  88815. .TP
  88816. .B salt.modules.elasticsearch.index_exists(index, hosts=None, profile=None)
  88817. Return a boolean indicating whether given index exists
  88818. .INDENT 7.0
  88819. .TP
  88820. .B index
  88821. Index name
  88822. .UNINDENT
  88823. .sp
  88824. CLI example:
  88825. .INDENT 7.0
  88826. .INDENT 3.5
  88827. .sp
  88828. .nf
  88829. .ft C
  88830. salt myminion elasticsearch.index_exists testindex
  88831. .ft P
  88832. .fi
  88833. .UNINDENT
  88834. .UNINDENT
  88835. .UNINDENT
  88836. .INDENT 0.0
  88837. .TP
  88838. .B salt.modules.elasticsearch.index_get(index, hosts=None, profile=None)
  88839. Check for the existence of an index and if it exists, return it
  88840. .INDENT 7.0
  88841. .TP
  88842. .B index
  88843. Index name
  88844. .UNINDENT
  88845. .sp
  88846. CLI example:
  88847. .INDENT 7.0
  88848. .INDENT 3.5
  88849. .sp
  88850. .nf
  88851. .ft C
  88852. salt myminion elasticsearch.index_get testindex
  88853. .ft P
  88854. .fi
  88855. .UNINDENT
  88856. .UNINDENT
  88857. .UNINDENT
  88858. .INDENT 0.0
  88859. .TP
  88860. .B salt.modules.elasticsearch.index_get_settings(hosts=None, profile=None, **kwargs)
  88861. New in version 3000.
  88862. .sp
  88863. Check for the existence of an index and if it exists, return its settings
  88864. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-get\-settings.html\fP
  88865. .INDENT 7.0
  88866. .TP
  88867. .B index
  88868. (Optional, string) A comma\-separated list of index names; use _all or empty string for all indices. Defaults to \(aq_all\(aq.
  88869. .TP
  88870. .B name
  88871. (Optional, string) The name of the settings that should be included
  88872. .TP
  88873. .B allow_no_indices
  88874. (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices.
  88875. (This includes _all string or when no indices have been specified)
  88876. .TP
  88877. .B expand_wildcards
  88878. (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both.
  88879. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88880. .TP
  88881. .B flat_settings
  88882. (Optional, boolean) Return settings in flat format
  88883. .TP
  88884. .B ignore_unavailable
  88885. (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88886. .TP
  88887. .B include_defaults
  88888. (Optional, boolean) Whether to return all default setting for each of the indices.
  88889. .TP
  88890. .B local
  88891. (Optional, boolean) Return local information, do not retrieve the state from master node
  88892. .UNINDENT
  88893. .sp
  88894. The defaults settings for the above parameters depend on the API version being used.
  88895. .sp
  88896. CLI example:
  88897. .INDENT 7.0
  88898. .INDENT 3.5
  88899. .sp
  88900. .nf
  88901. .ft C
  88902. salt myminion elasticsearch.index_get_settings index=testindex
  88903. .ft P
  88904. .fi
  88905. .UNINDENT
  88906. .UNINDENT
  88907. .UNINDENT
  88908. .INDENT 0.0
  88909. .TP
  88910. .B salt.modules.elasticsearch.index_open(index, allow_no_indices=True, expand_wildcards=u\(aqclosed\(aq, ignore_unavailable=True, hosts=None, profile=None)
  88911. New in version 2017.7.0.
  88912. .sp
  88913. Open specified index.
  88914. .INDENT 7.0
  88915. .TP
  88916. .B index
  88917. Index to be opened
  88918. .TP
  88919. .B allow_no_indices
  88920. Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
  88921. .TP
  88922. .B expand_wildcards
  88923. Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘closed’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88924. .TP
  88925. .B ignore_unavailable
  88926. Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88927. .UNINDENT
  88928. .sp
  88929. CLI example:
  88930. .INDENT 7.0
  88931. .INDENT 3.5
  88932. .sp
  88933. .nf
  88934. .ft C
  88935. salt myminion elasticsearch.index_open testindex
  88936. .ft P
  88937. .fi
  88938. .UNINDENT
  88939. .UNINDENT
  88940. .UNINDENT
  88941. .INDENT 0.0
  88942. .TP
  88943. .B salt.modules.elasticsearch.index_put_settings(body=None, hosts=None, profile=None, source=None, **kwargs)
  88944. New in version 3000.
  88945. .sp
  88946. Update existing index settings
  88947. \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-update\-settings.html\fP
  88948. .INDENT 7.0
  88949. .TP
  88950. .B body
  88951. The index settings to be updated.
  88952. .TP
  88953. .B source
  88954. URL to file specifying index definition. Cannot be used in combination with \fBbody\fP\&.
  88955. .TP
  88956. .B index
  88957. (Optional, string) A comma\-separated list of index names; use _all or empty string to perform the operation on all indices
  88958. .TP
  88959. .B allow_no_indices
  88960. (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices.
  88961. (This includes _all string or when no indices have been specified)
  88962. .TP
  88963. .B expand_wildcards
  88964. (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both.
  88965. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88966. .TP
  88967. .B flat_settings
  88968. (Optional, boolean) Return settings in flat format (default: false)
  88969. .TP
  88970. .B ignore_unavailable
  88971. (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88972. .TP
  88973. .B master_timeout
  88974. (Optional, time units) Explicit operation timeout for connection to master node
  88975. .TP
  88976. .B preserve_existing
  88977. (Optional, boolean) Whether to update existing settings. If set to true existing settings on an index remain unchanged, the default is false
  88978. .UNINDENT
  88979. .sp
  88980. The defaults settings for the above parameters depend on the API version being used.
  88981. .INDENT 7.0
  88982. .TP
  88983. .B \&..note::
  88984. Elasticsearch time units can be found here:
  88985. \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/common\-options.html#time\-units\fP
  88986. .UNINDENT
  88987. .sp
  88988. CLI example:
  88989. .INDENT 7.0
  88990. .INDENT 3.5
  88991. .sp
  88992. .nf
  88993. .ft C
  88994. salt myminion elasticsearch.index_put_settings index=testindex body=\(aq{"settings" : {"index" : {"number_of_replicas" : 2}}}\(aq
  88995. .ft P
  88996. .fi
  88997. .UNINDENT
  88998. .UNINDENT
  88999. .UNINDENT
  89000. .INDENT 0.0
  89001. .TP
  89002. .B salt.modules.elasticsearch.index_template_create(name, body=None, hosts=None, profile=None, source=None)
  89003. Create an index template
  89004. .INDENT 7.0
  89005. .TP
  89006. .B name
  89007. Index template name
  89008. .TP
  89009. .B body
  89010. Template definition as specified in \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-templates.html\fP
  89011. .TP
  89012. .B source
  89013. URL to file specifying template definition. Cannot be used in combination with \fBbody\fP\&.
  89014. .UNINDENT
  89015. .sp
  89016. CLI example:
  89017. .INDENT 7.0
  89018. .INDENT 3.5
  89019. .sp
  89020. .nf
  89021. .ft C
  89022. salt myminion elasticsearch.index_template_create testindex_templ \(aq{ "template": "logstash\-*", "order": 1, "settings": { "number_of_shards": 1 } }\(aq
  89023. .ft P
  89024. .fi
  89025. .UNINDENT
  89026. .UNINDENT
  89027. .UNINDENT
  89028. .INDENT 0.0
  89029. .TP
  89030. .B salt.modules.elasticsearch.index_template_delete(name, hosts=None, profile=None)
  89031. Delete an index template (type) along with its data
  89032. .INDENT 7.0
  89033. .TP
  89034. .B name
  89035. Index template name
  89036. .UNINDENT
  89037. .sp
  89038. CLI example:
  89039. .INDENT 7.0
  89040. .INDENT 3.5
  89041. .sp
  89042. .nf
  89043. .ft C
  89044. salt myminion elasticsearch.index_template_delete testindex_templ user
  89045. .ft P
  89046. .fi
  89047. .UNINDENT
  89048. .UNINDENT
  89049. .UNINDENT
  89050. .INDENT 0.0
  89051. .TP
  89052. .B salt.modules.elasticsearch.index_template_exists(name, hosts=None, profile=None)
  89053. Return a boolean indicating whether given index template exists
  89054. .INDENT 7.0
  89055. .TP
  89056. .B name
  89057. Index template name
  89058. .UNINDENT
  89059. .sp
  89060. CLI example:
  89061. .INDENT 7.0
  89062. .INDENT 3.5
  89063. .sp
  89064. .nf
  89065. .ft C
  89066. salt myminion elasticsearch.index_template_exists testindex_templ
  89067. .ft P
  89068. .fi
  89069. .UNINDENT
  89070. .UNINDENT
  89071. .UNINDENT
  89072. .INDENT 0.0
  89073. .TP
  89074. .B salt.modules.elasticsearch.index_template_get(name, hosts=None, profile=None)
  89075. Retrieve template definition of index or index/type
  89076. .INDENT 7.0
  89077. .TP
  89078. .B name
  89079. Index template name
  89080. .UNINDENT
  89081. .sp
  89082. CLI example:
  89083. .INDENT 7.0
  89084. .INDENT 3.5
  89085. .sp
  89086. .nf
  89087. .ft C
  89088. salt myminion elasticsearch.index_template_get testindex_templ
  89089. .ft P
  89090. .fi
  89091. .UNINDENT
  89092. .UNINDENT
  89093. .UNINDENT
  89094. .INDENT 0.0
  89095. .TP
  89096. .B salt.modules.elasticsearch.info(hosts=None, profile=None)
  89097. New in version 2017.7.0.
  89098. .sp
  89099. Return Elasticsearch information.
  89100. .sp
  89101. CLI example:
  89102. .INDENT 7.0
  89103. .INDENT 3.5
  89104. .sp
  89105. .nf
  89106. .ft C
  89107. salt myminion elasticsearch.info
  89108. salt myminion elasticsearch.info profile=elasticsearch\-extra
  89109. .ft P
  89110. .fi
  89111. .UNINDENT
  89112. .UNINDENT
  89113. .UNINDENT
  89114. .INDENT 0.0
  89115. .TP
  89116. .B salt.modules.elasticsearch.mapping_create(index, doc_type, body=None, hosts=None, profile=None, source=None)
  89117. Create a mapping in a given index
  89118. .INDENT 7.0
  89119. .TP
  89120. .B index
  89121. Index for the mapping
  89122. .TP
  89123. .B doc_type
  89124. Name of the document type
  89125. .TP
  89126. .B body
  89127. Mapping definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-put\-mapping.html\fP
  89128. .TP
  89129. .B source
  89130. URL to file specifying mapping definition. Cannot be used in combination with \fBbody\fP\&.
  89131. .UNINDENT
  89132. .sp
  89133. CLI example:
  89134. .INDENT 7.0
  89135. .INDENT 3.5
  89136. .sp
  89137. .nf
  89138. .ft C
  89139. salt myminion elasticsearch.mapping_create testindex user \(aq{ "user" : { "properties" : { "message" : {"type" : "string", "store" : true } } } }\(aq
  89140. .ft P
  89141. .fi
  89142. .UNINDENT
  89143. .UNINDENT
  89144. .UNINDENT
  89145. .INDENT 0.0
  89146. .TP
  89147. .B salt.modules.elasticsearch.mapping_delete(index, doc_type, hosts=None, profile=None)
  89148. Delete a mapping (type) along with its data. As of Elasticsearch 5.0 this is no longer available.
  89149. .INDENT 7.0
  89150. .TP
  89151. .B index
  89152. Index for the mapping
  89153. .TP
  89154. .B doc_type
  89155. Name of the document type
  89156. .UNINDENT
  89157. .sp
  89158. CLI example:
  89159. .INDENT 7.0
  89160. .INDENT 3.5
  89161. .sp
  89162. .nf
  89163. .ft C
  89164. salt myminion elasticsearch.mapping_delete testindex user
  89165. .ft P
  89166. .fi
  89167. .UNINDENT
  89168. .UNINDENT
  89169. .UNINDENT
  89170. .INDENT 0.0
  89171. .TP
  89172. .B salt.modules.elasticsearch.mapping_get(index, doc_type, hosts=None, profile=None)
  89173. Retrieve mapping definition of index or index/type
  89174. .INDENT 7.0
  89175. .TP
  89176. .B index
  89177. Index for the mapping
  89178. .TP
  89179. .B doc_type
  89180. Name of the document type
  89181. .UNINDENT
  89182. .sp
  89183. CLI example:
  89184. .INDENT 7.0
  89185. .INDENT 3.5
  89186. .sp
  89187. .nf
  89188. .ft C
  89189. salt myminion elasticsearch.mapping_get testindex user
  89190. .ft P
  89191. .fi
  89192. .UNINDENT
  89193. .UNINDENT
  89194. .UNINDENT
  89195. .INDENT 0.0
  89196. .TP
  89197. .B salt.modules.elasticsearch.node_info(nodes=None, flat_settings=False, hosts=None, profile=None)
  89198. New in version 2017.7.0.
  89199. .sp
  89200. Return Elasticsearch node information.
  89201. .INDENT 7.0
  89202. .TP
  89203. .B nodes
  89204. List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
  89205. .TP
  89206. .B flat_settings
  89207. Flatten settings keys
  89208. .UNINDENT
  89209. .sp
  89210. CLI example:
  89211. .INDENT 7.0
  89212. .INDENT 3.5
  89213. .sp
  89214. .nf
  89215. .ft C
  89216. salt myminion elasticsearch.node_info flat_settings=True
  89217. .ft P
  89218. .fi
  89219. .UNINDENT
  89220. .UNINDENT
  89221. .UNINDENT
  89222. .INDENT 0.0
  89223. .TP
  89224. .B salt.modules.elasticsearch.ping(allow_failure=False, hosts=None, profile=None)
  89225. New in version 2017.7.0.
  89226. .sp
  89227. Test connection to Elasticsearch instance. This method does not fail if not explicitly specified.
  89228. .INDENT 7.0
  89229. .TP
  89230. .B allow_failure
  89231. Throw exception if ping fails
  89232. .UNINDENT
  89233. .sp
  89234. CLI example:
  89235. .INDENT 7.0
  89236. .INDENT 3.5
  89237. .sp
  89238. .nf
  89239. .ft C
  89240. salt myminion elasticsearch.ping allow_failure=True
  89241. salt myminion elasticsearch.ping profile=elasticsearch\-extra
  89242. .ft P
  89243. .fi
  89244. .UNINDENT
  89245. .UNINDENT
  89246. .UNINDENT
  89247. .INDENT 0.0
  89248. .TP
  89249. .B salt.modules.elasticsearch.pipeline_create(id, body, hosts=None, profile=None)
  89250. New in version 2017.7.0.
  89251. .sp
  89252. Create Ingest pipeline by supplied definition. Available since Elasticsearch 5.0.
  89253. .INDENT 7.0
  89254. .TP
  89255. .B id
  89256. Pipeline id
  89257. .TP
  89258. .B body
  89259. Pipeline definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html\fP
  89260. .UNINDENT
  89261. .sp
  89262. CLI example:
  89263. .INDENT 7.0
  89264. .INDENT 3.5
  89265. .sp
  89266. .nf
  89267. .ft C
  89268. salt myminion elasticsearch.pipeline_create mypipeline \(aq{"description": "my custom pipeline", "processors": [{"set" : {"field": "collector_timestamp_millis", "value": "{{_ingest.timestamp}}"}}]}\(aq
  89269. .ft P
  89270. .fi
  89271. .UNINDENT
  89272. .UNINDENT
  89273. .UNINDENT
  89274. .INDENT 0.0
  89275. .TP
  89276. .B salt.modules.elasticsearch.pipeline_delete(id, hosts=None, profile=None)
  89277. New in version 2017.7.0.
  89278. .sp
  89279. Delete Ingest pipeline. Available since Elasticsearch 5.0.
  89280. .INDENT 7.0
  89281. .TP
  89282. .B id
  89283. Pipeline id
  89284. .UNINDENT
  89285. .sp
  89286. CLI example:
  89287. .INDENT 7.0
  89288. .INDENT 3.5
  89289. .sp
  89290. .nf
  89291. .ft C
  89292. salt myminion elasticsearch.pipeline_delete mypipeline
  89293. .ft P
  89294. .fi
  89295. .UNINDENT
  89296. .UNINDENT
  89297. .UNINDENT
  89298. .INDENT 0.0
  89299. .TP
  89300. .B salt.modules.elasticsearch.pipeline_get(id, hosts=None, profile=None)
  89301. New in version 2017.7.0.
  89302. .sp
  89303. Retrieve Ingest pipeline definition. Available since Elasticsearch 5.0.
  89304. .INDENT 7.0
  89305. .TP
  89306. .B id
  89307. Pipeline id
  89308. .UNINDENT
  89309. .sp
  89310. CLI example:
  89311. .INDENT 7.0
  89312. .INDENT 3.5
  89313. .sp
  89314. .nf
  89315. .ft C
  89316. salt myminion elasticsearch.pipeline_get mypipeline
  89317. .ft P
  89318. .fi
  89319. .UNINDENT
  89320. .UNINDENT
  89321. .UNINDENT
  89322. .INDENT 0.0
  89323. .TP
  89324. .B salt.modules.elasticsearch.pipeline_simulate(id, body, verbose=False, hosts=None, profile=None)
  89325. New in version 2017.7.0.
  89326. .sp
  89327. Simulate existing Ingest pipeline on provided data. Available since Elasticsearch 5.0.
  89328. .INDENT 7.0
  89329. .TP
  89330. .B id
  89331. Pipeline id
  89332. .TP
  89333. .B body
  89334. Pipeline definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html\fP
  89335. .TP
  89336. .B verbose
  89337. Specify if the output should be more verbose
  89338. .UNINDENT
  89339. .sp
  89340. CLI example:
  89341. .INDENT 7.0
  89342. .INDENT 3.5
  89343. .sp
  89344. .nf
  89345. .ft C
  89346. 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
  89347. .ft P
  89348. .fi
  89349. .UNINDENT
  89350. .UNINDENT
  89351. .UNINDENT
  89352. .INDENT 0.0
  89353. .TP
  89354. .B salt.modules.elasticsearch.repository_create(name, body, hosts=None, profile=None)
  89355. New in version 2017.7.0.
  89356. .sp
  89357. Create repository for storing snapshots. Note that shared repository paths have to be specified in path.repo Elasticsearch configuration option.
  89358. .INDENT 7.0
  89359. .TP
  89360. .B name
  89361. Repository name
  89362. .TP
  89363. .B body
  89364. Repository definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89365. .UNINDENT
  89366. .sp
  89367. CLI example:
  89368. .INDENT 7.0
  89369. .INDENT 3.5
  89370. .sp
  89371. .nf
  89372. .ft C
  89373. salt myminion elasticsearch.repository_create testrepo \(aq{"type":"fs","settings":{"location":"/tmp/test","compress":true}}\(aq
  89374. .ft P
  89375. .fi
  89376. .UNINDENT
  89377. .UNINDENT
  89378. .UNINDENT
  89379. .INDENT 0.0
  89380. .TP
  89381. .B salt.modules.elasticsearch.repository_delete(name, hosts=None, profile=None)
  89382. New in version 2017.7.0.
  89383. .sp
  89384. Delete existing repository.
  89385. .INDENT 7.0
  89386. .TP
  89387. .B name
  89388. Repository name
  89389. .UNINDENT
  89390. .sp
  89391. CLI example:
  89392. .INDENT 7.0
  89393. .INDENT 3.5
  89394. .sp
  89395. .nf
  89396. .ft C
  89397. salt myminion elasticsearch.repository_delete testrepo
  89398. .ft P
  89399. .fi
  89400. .UNINDENT
  89401. .UNINDENT
  89402. .UNINDENT
  89403. .INDENT 0.0
  89404. .TP
  89405. .B salt.modules.elasticsearch.repository_get(name, local=False, hosts=None, profile=None)
  89406. New in version 2017.7.0.
  89407. .sp
  89408. Get existing repository details.
  89409. .INDENT 7.0
  89410. .TP
  89411. .B name
  89412. Repository name
  89413. .TP
  89414. .B local
  89415. Retrieve only local information, default is false
  89416. .UNINDENT
  89417. .sp
  89418. CLI example:
  89419. .INDENT 7.0
  89420. .INDENT 3.5
  89421. .sp
  89422. .nf
  89423. .ft C
  89424. salt myminion elasticsearch.repository_get testrepo
  89425. .ft P
  89426. .fi
  89427. .UNINDENT
  89428. .UNINDENT
  89429. .UNINDENT
  89430. .INDENT 0.0
  89431. .TP
  89432. .B salt.modules.elasticsearch.repository_verify(name, hosts=None, profile=None)
  89433. New in version 2017.7.0.
  89434. .sp
  89435. Obtain list of cluster nodes which successfully verified this repository.
  89436. .INDENT 7.0
  89437. .TP
  89438. .B name
  89439. Repository name
  89440. .UNINDENT
  89441. .sp
  89442. CLI example:
  89443. .INDENT 7.0
  89444. .INDENT 3.5
  89445. .sp
  89446. .nf
  89447. .ft C
  89448. salt myminion elasticsearch.repository_verify testrepo
  89449. .ft P
  89450. .fi
  89451. .UNINDENT
  89452. .UNINDENT
  89453. .UNINDENT
  89454. .INDENT 0.0
  89455. .TP
  89456. .B salt.modules.elasticsearch.search_template_create(id, body, hosts=None, profile=None)
  89457. New in version 2017.7.0.
  89458. .sp
  89459. Create search template by supplied definition
  89460. .INDENT 7.0
  89461. .TP
  89462. .B id
  89463. Template ID
  89464. .TP
  89465. .B body
  89466. Search template definition
  89467. .UNINDENT
  89468. .sp
  89469. CLI example:
  89470. .INDENT 7.0
  89471. .INDENT 3.5
  89472. .sp
  89473. .nf
  89474. .ft C
  89475. salt myminion elasticsearch.search_template_create mytemplate \(aq{"template":{"query":{"match":{"title":"{{query_string}}"}}}}\(aq
  89476. .ft P
  89477. .fi
  89478. .UNINDENT
  89479. .UNINDENT
  89480. .UNINDENT
  89481. .INDENT 0.0
  89482. .TP
  89483. .B salt.modules.elasticsearch.search_template_delete(id, hosts=None, profile=None)
  89484. New in version 2017.7.0.
  89485. .sp
  89486. Delete existing search template definition.
  89487. .INDENT 7.0
  89488. .TP
  89489. .B id
  89490. Template ID
  89491. .UNINDENT
  89492. .sp
  89493. CLI example:
  89494. .INDENT 7.0
  89495. .INDENT 3.5
  89496. .sp
  89497. .nf
  89498. .ft C
  89499. salt myminion elasticsearch.search_template_delete mytemplate
  89500. .ft P
  89501. .fi
  89502. .UNINDENT
  89503. .UNINDENT
  89504. .UNINDENT
  89505. .INDENT 0.0
  89506. .TP
  89507. .B salt.modules.elasticsearch.search_template_get(id, hosts=None, profile=None)
  89508. New in version 2017.7.0.
  89509. .sp
  89510. Obtain existing search template definition.
  89511. .INDENT 7.0
  89512. .TP
  89513. .B id
  89514. Template ID
  89515. .UNINDENT
  89516. .sp
  89517. CLI example:
  89518. .INDENT 7.0
  89519. .INDENT 3.5
  89520. .sp
  89521. .nf
  89522. .ft C
  89523. salt myminion elasticsearch.search_template_get mytemplate
  89524. .ft P
  89525. .fi
  89526. .UNINDENT
  89527. .UNINDENT
  89528. .UNINDENT
  89529. .INDENT 0.0
  89530. .TP
  89531. .B salt.modules.elasticsearch.snapshot_create(repository, snapshot, body=None, hosts=None, profile=None)
  89532. New in version 2017.7.0.
  89533. .sp
  89534. Create snapshot in specified repository by supplied definition.
  89535. .INDENT 7.0
  89536. .TP
  89537. .B repository
  89538. Repository name
  89539. .TP
  89540. .B snapshot
  89541. Snapshot name
  89542. .TP
  89543. .B body
  89544. Snapshot definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89545. .UNINDENT
  89546. .sp
  89547. CLI example:
  89548. .INDENT 7.0
  89549. .INDENT 3.5
  89550. .sp
  89551. .nf
  89552. .ft C
  89553. salt myminion elasticsearch.snapshot_create testrepo testsnapshot \(aq{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":false}\(aq
  89554. .ft P
  89555. .fi
  89556. .UNINDENT
  89557. .UNINDENT
  89558. .UNINDENT
  89559. .INDENT 0.0
  89560. .TP
  89561. .B salt.modules.elasticsearch.snapshot_delete(repository, snapshot, hosts=None, profile=None)
  89562. New in version 2017.7.0.
  89563. .sp
  89564. Delete snapshot from specified repository.
  89565. .INDENT 7.0
  89566. .TP
  89567. .B repository
  89568. Repository name
  89569. .TP
  89570. .B snapshot
  89571. Snapshot name
  89572. .UNINDENT
  89573. .sp
  89574. CLI example:
  89575. .INDENT 7.0
  89576. .INDENT 3.5
  89577. .sp
  89578. .nf
  89579. .ft C
  89580. salt myminion elasticsearch.snapshot_delete testrepo testsnapshot
  89581. .ft P
  89582. .fi
  89583. .UNINDENT
  89584. .UNINDENT
  89585. .UNINDENT
  89586. .INDENT 0.0
  89587. .TP
  89588. .B salt.modules.elasticsearch.snapshot_get(repository, snapshot, ignore_unavailable=False, hosts=None, profile=None)
  89589. New in version 2017.7.0.
  89590. .sp
  89591. Obtain snapshot residing in specified repository.
  89592. .INDENT 7.0
  89593. .TP
  89594. .B repository
  89595. Repository name
  89596. .TP
  89597. .B snapshot
  89598. Snapshot name, use _all to obtain all snapshots in specified repository
  89599. .TP
  89600. .B ignore_unavailable
  89601. Ignore unavailable snapshots
  89602. .UNINDENT
  89603. .sp
  89604. CLI example:
  89605. .INDENT 7.0
  89606. .INDENT 3.5
  89607. .sp
  89608. .nf
  89609. .ft C
  89610. salt myminion elasticsearch.snapshot_get testrepo testsnapshot
  89611. .ft P
  89612. .fi
  89613. .UNINDENT
  89614. .UNINDENT
  89615. .UNINDENT
  89616. .INDENT 0.0
  89617. .TP
  89618. .B salt.modules.elasticsearch.snapshot_restore(repository, snapshot, body=None, hosts=None, profile=None)
  89619. New in version 2017.7.0.
  89620. .sp
  89621. Restore existing snapshot in specified repository by supplied definition.
  89622. .INDENT 7.0
  89623. .TP
  89624. .B repository
  89625. Repository name
  89626. .TP
  89627. .B snapshot
  89628. Snapshot name
  89629. .TP
  89630. .B body
  89631. Restore definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89632. .UNINDENT
  89633. .sp
  89634. CLI example:
  89635. .INDENT 7.0
  89636. .INDENT 3.5
  89637. .sp
  89638. .nf
  89639. .ft C
  89640. salt myminion elasticsearch.snapshot_restore testrepo testsnapshot \(aq{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":true}\(aq
  89641. .ft P
  89642. .fi
  89643. .UNINDENT
  89644. .UNINDENT
  89645. .UNINDENT
  89646. .INDENT 0.0
  89647. .TP
  89648. .B salt.modules.elasticsearch.snapshot_status(repository=None, snapshot=None, ignore_unavailable=False, hosts=None, profile=None)
  89649. New in version 2017.7.0.
  89650. .sp
  89651. Obtain status of all currently running snapshots.
  89652. .INDENT 7.0
  89653. .TP
  89654. .B repository
  89655. Particular repository to look for snapshots
  89656. .TP
  89657. .B snapshot
  89658. Snapshot name
  89659. .TP
  89660. .B ignore_unavailable
  89661. Ignore unavailable snapshots
  89662. .UNINDENT
  89663. .sp
  89664. CLI example:
  89665. .INDENT 7.0
  89666. .INDENT 3.5
  89667. .sp
  89668. .nf
  89669. .ft C
  89670. salt myminion elasticsearch.snapshot_status ignore_unavailable=True
  89671. .ft P
  89672. .fi
  89673. .UNINDENT
  89674. .UNINDENT
  89675. .UNINDENT
  89676. .SS salt.modules.etcd_mod
  89677. .sp
  89678. Execution module to work with etcd
  89679. .INDENT 0.0
  89680. .TP
  89681. .B depends
  89682. .INDENT 7.0
  89683. .IP \(bu 2
  89684. python\-etcd
  89685. .UNINDENT
  89686. .UNINDENT
  89687. .SS Configuration
  89688. .sp
  89689. To work with an etcd server you must configure an etcd profile. The etcd config
  89690. can be set in either the Salt Minion configuration file or in pillar:
  89691. .INDENT 0.0
  89692. .INDENT 3.5
  89693. .sp
  89694. .nf
  89695. .ft C
  89696. my_etd_config:
  89697. etcd.host: 127.0.0.1
  89698. etcd.port: 4001
  89699. .ft P
  89700. .fi
  89701. .UNINDENT
  89702. .UNINDENT
  89703. .sp
  89704. It is technically possible to configure etcd without using a profile, but this
  89705. is not considered to be a best practice, especially when multiple etcd servers
  89706. or clusters are available.
  89707. .INDENT 0.0
  89708. .INDENT 3.5
  89709. .sp
  89710. .nf
  89711. .ft C
  89712. etcd.host: 127.0.0.1
  89713. etcd.port: 4001
  89714. .ft P
  89715. .fi
  89716. .UNINDENT
  89717. .UNINDENT
  89718. .sp
  89719. \fBNOTE:\fP
  89720. .INDENT 0.0
  89721. .INDENT 3.5
  89722. The etcd configuration can also be set in the Salt Master config file,
  89723. but in order to use any etcd configurations defined in the Salt Master
  89724. config, the \fBpillar_opts\fP must be set to \fBTrue\fP\&.
  89725. .sp
  89726. Be aware that setting \fBpillar_opts\fP to \fBTrue\fP has security implications
  89727. as this makes all master configuration settings available in all minion\(aqs
  89728. pillars.
  89729. .UNINDENT
  89730. .UNINDENT
  89731. .INDENT 0.0
  89732. .TP
  89733. .B salt.modules.etcd_mod.get_(key, recurse=False, profile=None, **kwargs)
  89734. New in version 2014.7.0.
  89735. .sp
  89736. Get a value from etcd, by direct path. Returns None on failure.
  89737. .sp
  89738. CLI Examples:
  89739. .INDENT 7.0
  89740. .INDENT 3.5
  89741. .sp
  89742. .nf
  89743. .ft C
  89744. salt myminion etcd.get /path/to/key
  89745. salt myminion etcd.get /path/to/key profile=my_etcd_config
  89746. salt myminion etcd.get /path/to/key recurse=True profile=my_etcd_config
  89747. salt myminion etcd.get /path/to/key host=127.0.0.1 port=2379
  89748. .ft P
  89749. .fi
  89750. .UNINDENT
  89751. .UNINDENT
  89752. .UNINDENT
  89753. .INDENT 0.0
  89754. .TP
  89755. .B salt.modules.etcd_mod.ls_(path=u\(aq/\(aq, profile=None, **kwargs)
  89756. New in version 2014.7.0.
  89757. .sp
  89758. Return all keys and dirs inside a specific path. Returns an empty dict on
  89759. failure.
  89760. .sp
  89761. CLI Example:
  89762. .INDENT 7.0
  89763. .INDENT 3.5
  89764. .sp
  89765. .nf
  89766. .ft C
  89767. salt myminion etcd.ls /path/to/dir/
  89768. salt myminion etcd.ls /path/to/dir/ profile=my_etcd_config
  89769. salt myminion etcd.ls /path/to/dir/ host=127.0.0.1 port=2379
  89770. .ft P
  89771. .fi
  89772. .UNINDENT
  89773. .UNINDENT
  89774. .UNINDENT
  89775. .INDENT 0.0
  89776. .TP
  89777. .B salt.modules.etcd_mod.rm_(key, recurse=False, profile=None, **kwargs)
  89778. New in version 2014.7.0.
  89779. .sp
  89780. Delete a key from etcd. Returns True if the key was deleted, False if it was
  89781. not and None if there was a failure.
  89782. .sp
  89783. CLI Example:
  89784. .INDENT 7.0
  89785. .INDENT 3.5
  89786. .sp
  89787. .nf
  89788. .ft C
  89789. salt myminion etcd.rm /path/to/key
  89790. salt myminion etcd.rm /path/to/key profile=my_etcd_config
  89791. salt myminion etcd.rm /path/to/key host=127.0.0.1 port=2379
  89792. salt myminion etcd.rm /path/to/dir recurse=True profile=my_etcd_config
  89793. .ft P
  89794. .fi
  89795. .UNINDENT
  89796. .UNINDENT
  89797. .UNINDENT
  89798. .INDENT 0.0
  89799. .TP
  89800. .B salt.modules.etcd_mod.set_(key, value, profile=None, ttl=None, directory=False, **kwargs)
  89801. New in version 2014.7.0.
  89802. .sp
  89803. Set a key in etcd by direct path. Optionally, create a directory
  89804. or set a TTL on the key. Returns None on failure.
  89805. .sp
  89806. CLI Example:
  89807. .INDENT 7.0
  89808. .INDENT 3.5
  89809. .sp
  89810. .nf
  89811. .ft C
  89812. salt myminion etcd.set /path/to/key value
  89813. salt myminion etcd.set /path/to/key value profile=my_etcd_config
  89814. salt myminion etcd.set /path/to/key value host=127.0.0.1 port=2379
  89815. salt myminion etcd.set /path/to/dir \(aq\(aq directory=True
  89816. salt myminion etcd.set /path/to/key value ttl=5
  89817. .ft P
  89818. .fi
  89819. .UNINDENT
  89820. .UNINDENT
  89821. .UNINDENT
  89822. .INDENT 0.0
  89823. .TP
  89824. .B salt.modules.etcd_mod.tree(path=u\(aq/\(aq, profile=None, **kwargs)
  89825. New in version 2014.7.0.
  89826. .sp
  89827. Recurse through etcd and return all values. Returns None on failure.
  89828. .sp
  89829. CLI Example:
  89830. .INDENT 7.0
  89831. .INDENT 3.5
  89832. .sp
  89833. .nf
  89834. .ft C
  89835. salt myminion etcd.tree
  89836. salt myminion etcd.tree profile=my_etcd_config
  89837. salt myminion etcd.tree host=127.0.0.1 port=2379
  89838. salt myminion etcd.tree /path/to/keys profile=my_etcd_config
  89839. .ft P
  89840. .fi
  89841. .UNINDENT
  89842. .UNINDENT
  89843. .UNINDENT
  89844. .INDENT 0.0
  89845. .TP
  89846. .B salt.modules.etcd_mod.update(fields, path=u\(aq\(aq, profile=None, **kwargs)
  89847. New in version 2016.3.0.
  89848. .sp
  89849. Sets a dictionary of values in one call. Useful for large updates
  89850. in syndic environments. The dictionary can contain a mix of formats
  89851. such as:
  89852. .INDENT 7.0
  89853. .INDENT 3.5
  89854. .sp
  89855. .nf
  89856. .ft C
  89857. {
  89858. \(aq/some/example/key\(aq: \(aqbar\(aq,
  89859. \(aq/another/example/key\(aq: \(aqbaz\(aq
  89860. }
  89861. .ft P
  89862. .fi
  89863. .UNINDENT
  89864. .UNINDENT
  89865. .sp
  89866. Or it may be a straight dictionary, which will be flattened to look
  89867. like the above format:
  89868. .INDENT 7.0
  89869. .INDENT 3.5
  89870. .sp
  89871. .nf
  89872. .ft C
  89873. {
  89874. \(aqsome\(aq: {
  89875. \(aqexample\(aq: {
  89876. \(aqkey\(aq: \(aqbar\(aq
  89877. }
  89878. },
  89879. \(aqanother\(aq: {
  89880. \(aqexample\(aq: {
  89881. \(aqkey\(aq: \(aqbaz\(aq
  89882. }
  89883. }
  89884. }
  89885. .ft P
  89886. .fi
  89887. .UNINDENT
  89888. .UNINDENT
  89889. .sp
  89890. You can even mix the two formats and it will be flattened to the first
  89891. format. Leading and trailing \(aq/\(aq will be removed.
  89892. .sp
  89893. Empty directories can be created by setting the value of the key to an
  89894. empty dictionary.
  89895. .sp
  89896. The \(aqpath\(aq parameter will optionally set the root of the path to use.
  89897. .sp
  89898. CLI Example:
  89899. .INDENT 7.0
  89900. .INDENT 3.5
  89901. .sp
  89902. .nf
  89903. .ft C
  89904. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}"
  89905. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" profile=my_etcd_config
  89906. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" host=127.0.0.1 port=2379
  89907. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" path=\(aq/some/root\(aq
  89908. .ft P
  89909. .fi
  89910. .UNINDENT
  89911. .UNINDENT
  89912. .UNINDENT
  89913. .INDENT 0.0
  89914. .TP
  89915. .B salt.modules.etcd_mod.watch(key, recurse=False, profile=None, timeout=0, index=None, **kwargs)
  89916. New in version 2016.3.0.
  89917. .sp
  89918. Makes a best effort to watch for a key or tree change in etcd.
  89919. Returns a dict containing the new key value ( or None if the key was
  89920. deleted ), the modifiedIndex of the key, whether the key changed or
  89921. not, the path to the key that changed and whether it is a directory or not.
  89922. .sp
  89923. If something catastrophic happens, returns {}
  89924. .sp
  89925. CLI Example:
  89926. .INDENT 7.0
  89927. .INDENT 3.5
  89928. .sp
  89929. .nf
  89930. .ft C
  89931. salt myminion etcd.watch /path/to/key
  89932. salt myminion etcd.watch /path/to/key timeout=10
  89933. salt myminion etcd.watch /patch/to/key profile=my_etcd_config index=10
  89934. salt myminion etcd.watch /patch/to/key host=127.0.0.1 port=2379
  89935. .ft P
  89936. .fi
  89937. .UNINDENT
  89938. .UNINDENT
  89939. .UNINDENT
  89940. .SS salt.modules.ethtool module
  89941. .sp
  89942. Module for running ethtool command
  89943. .sp
  89944. New in version 2016.3.0.
  89945. .INDENT 0.0
  89946. .TP
  89947. .B codeauthor
  89948. Krzysztof Pawlowski <\fI\%msciciel@msciciel.eu\fP>
  89949. .TP
  89950. .B maturity
  89951. new
  89952. .TP
  89953. .B depends
  89954. python\-ethtool
  89955. .TP
  89956. .B platform
  89957. linux
  89958. .UNINDENT
  89959. .INDENT 0.0
  89960. .TP
  89961. .B salt.modules.ethtool.set_coalesce(devname, **kwargs)
  89962. Changes the coalescing settings of the specified network device
  89963. .sp
  89964. CLI Example:
  89965. .INDENT 7.0
  89966. .INDENT 3.5
  89967. .sp
  89968. .nf
  89969. .ft C
  89970. salt \(aq*\(aq ethtool.set_coalesce <devname> [adaptive_rx=on|off] [adaptive_tx=on|off] [rx_usecs=N] [rx_frames=N]
  89971. [rx_usecs_irq=N] [rx_frames_irq=N] [tx_usecs=N] [tx_frames=N] [tx_usecs_irq=N] [tx_frames_irq=N]
  89972. [stats_block_usecs=N] [pkt_rate_low=N] [rx_usecs_low=N] [rx_frames_low=N] [tx_usecs_low=N] [tx_frames_low=N]
  89973. [pkt_rate_high=N] [rx_usecs_high=N] [rx_frames_high=N] [tx_usecs_high=N] [tx_frames_high=N]
  89974. [sample_interval=N]
  89975. .ft P
  89976. .fi
  89977. .UNINDENT
  89978. .UNINDENT
  89979. .UNINDENT
  89980. .INDENT 0.0
  89981. .TP
  89982. .B salt.modules.ethtool.set_offload(devname, **kwargs)
  89983. Changes the offload parameters and other features of the specified network device
  89984. .sp
  89985. CLI Example:
  89986. .INDENT 7.0
  89987. .INDENT 3.5
  89988. .sp
  89989. .nf
  89990. .ft C
  89991. salt \(aq*\(aq ethtool.set_offload <devname> tcp_segmentation_offload=on
  89992. .ft P
  89993. .fi
  89994. .UNINDENT
  89995. .UNINDENT
  89996. .UNINDENT
  89997. .INDENT 0.0
  89998. .TP
  89999. .B salt.modules.ethtool.set_ring(devname, **kwargs)
  90000. Changes the rx/tx ring parameters of the specified network device
  90001. .sp
  90002. CLI Example:
  90003. .INDENT 7.0
  90004. .INDENT 3.5
  90005. .sp
  90006. .nf
  90007. .ft C
  90008. salt \(aq*\(aq ethtool.set_ring <devname> [rx=N] [rx_mini=N] [rx_jumbo=N] [tx=N]
  90009. .ft P
  90010. .fi
  90011. .UNINDENT
  90012. .UNINDENT
  90013. .UNINDENT
  90014. .INDENT 0.0
  90015. .TP
  90016. .B salt.modules.ethtool.show_coalesce(devname)
  90017. Queries the specified network device for coalescing information
  90018. .sp
  90019. CLI Example:
  90020. .INDENT 7.0
  90021. .INDENT 3.5
  90022. .sp
  90023. .nf
  90024. .ft C
  90025. salt \(aq*\(aq ethtool.show_coalesce <devname>
  90026. .ft P
  90027. .fi
  90028. .UNINDENT
  90029. .UNINDENT
  90030. .UNINDENT
  90031. .INDENT 0.0
  90032. .TP
  90033. .B salt.modules.ethtool.show_driver(devname)
  90034. Queries the specified network device for associated driver information
  90035. .sp
  90036. CLI Example:
  90037. .INDENT 7.0
  90038. .INDENT 3.5
  90039. .sp
  90040. .nf
  90041. .ft C
  90042. salt \(aq*\(aq ethtool.show_driver <devname>
  90043. .ft P
  90044. .fi
  90045. .UNINDENT
  90046. .UNINDENT
  90047. .UNINDENT
  90048. .INDENT 0.0
  90049. .TP
  90050. .B salt.modules.ethtool.show_offload(devname)
  90051. Queries the specified network device for the state of protocol offload and other features
  90052. .sp
  90053. CLI Example:
  90054. .INDENT 7.0
  90055. .INDENT 3.5
  90056. .sp
  90057. .nf
  90058. .ft C
  90059. salt \(aq*\(aq ethtool.show_offload <devname>
  90060. .ft P
  90061. .fi
  90062. .UNINDENT
  90063. .UNINDENT
  90064. .UNINDENT
  90065. .INDENT 0.0
  90066. .TP
  90067. .B salt.modules.ethtool.show_ring(devname)
  90068. Queries the specified network device for rx/tx ring parameter information
  90069. .sp
  90070. CLI Example:
  90071. .INDENT 7.0
  90072. .INDENT 3.5
  90073. .sp
  90074. .nf
  90075. .ft C
  90076. salt \(aq*\(aq ethtool.show_ring <devname>
  90077. .ft P
  90078. .fi
  90079. .UNINDENT
  90080. .UNINDENT
  90081. .UNINDENT
  90082. .SS salt.modules.gcp_addon module
  90083. .sp
  90084. A route is a rule that specifies how certain packets should be handled by the
  90085. virtual network. Routes are associated with virtual machine instances by tag,
  90086. and the set of routes for a particular VM is called its routing table.
  90087. For each packet leaving a virtual machine, the system searches that machine\(aqs
  90088. routing table for a single best matching route.
  90089. .sp
  90090. New in version 2018.3.0.
  90091. .sp
  90092. This module will create a route to send traffic destined to the Internet
  90093. through your gateway instance.
  90094. .INDENT 0.0
  90095. .TP
  90096. .B codeauthor
  90097. \fIPratik Bandarkar <pratik.bandarkar@gmail.com>\fP
  90098. .TP
  90099. .B maturity
  90100. new
  90101. .TP
  90102. .B depends
  90103. google\-api\-python\-client
  90104. .TP
  90105. .B platform
  90106. Linux
  90107. .UNINDENT
  90108. .INDENT 0.0
  90109. .TP
  90110. .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)
  90111. Create a route to send traffic destined to the Internet through your
  90112. gateway instance
  90113. .INDENT 7.0
  90114. .TP
  90115. .B credential_file
  90116. string
  90117. File location of application default credential. For more information,
  90118. refer: \fI\%https://developers.google.com/identity/protocols/application\-default\-credentials\fP
  90119. .TP
  90120. .B project_id
  90121. string
  90122. Project ID where instance and network resides.
  90123. .TP
  90124. .B name
  90125. string
  90126. name of the route to create
  90127. .TP
  90128. .B next_hop_instance
  90129. string
  90130. the name of an instance that should handle traffic matching this route.
  90131. .TP
  90132. .B instance_zone
  90133. string
  90134. zone where instance("next_hop_instance") resides
  90135. .TP
  90136. .B network
  90137. string
  90138. Specifies the network to which the route will be applied.
  90139. .TP
  90140. .B dest_range
  90141. string
  90142. The destination range of outgoing packets that the route will apply to.
  90143. .TP
  90144. .B tags
  90145. list
  90146. (optional) Identifies the set of instances that this route will apply to.
  90147. .TP
  90148. .B priority
  90149. int
  90150. (optional) Specifies the priority of this route relative to other routes.
  90151. default=1000
  90152. .UNINDENT
  90153. .sp
  90154. CLI Example:
  90155. .INDENT 7.0
  90156. .TP
  90157. .B salt \(aqsalt\-master.novalocal\(aq gcp.route_create
  90158. credential_file=/root/secret_key.json
  90159. project_id=cp100\-170315
  90160. name=derby\-db\-route1
  90161. next_hop_instance=instance\-1
  90162. instance_zone=us\-central1\-a
  90163. network=default
  90164. dest_range=0.0.0.0/0
  90165. tags=[\(aqno\-ip\(aq]
  90166. priority=700
  90167. .UNINDENT
  90168. .sp
  90169. In above example, the instances which are having tag "no\-ip" will route the
  90170. packet to instance "instance\-1"(if packet is intended to other network)
  90171. .UNINDENT
  90172. .SS salt.modules.gentoolkitmod
  90173. .sp
  90174. Support for Gentoolkit
  90175. .INDENT 0.0
  90176. .TP
  90177. .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)
  90178. Clean obsolete portage sources
  90179. .INDENT 7.0
  90180. .TP
  90181. .B destructive
  90182. Only keep minimum for reinstallation
  90183. .TP
  90184. .B package_names
  90185. Protect all versions of installed packages. Only meaningful if used
  90186. with destructive=True
  90187. .TP
  90188. .B size_limit <size>
  90189. Don\(aqt delete distfiles bigger than <size>.
  90190. <size> is a size specification: "10M" is "ten megabytes",
  90191. "200K" is "two hundreds kilobytes", etc. Units are: G, M, K and B.
  90192. .TP
  90193. .B time_limit <time>
  90194. Don\(aqt delete distfiles files modified since <time>
  90195. <time> is an amount of time: "1y" is "one year", "2w" is
  90196. "two weeks", etc. Units are: y (years), m (months), w (weeks),
  90197. d (days) and h (hours).
  90198. .TP
  90199. .B fetch_restricted
  90200. Protect fetch\-restricted files. Only meaningful if used with
  90201. destructive=True
  90202. .TP
  90203. .B exclude_file
  90204. Path to exclusion file. Default is /etc/eclean/distfiles.exclude
  90205. This is the same default eclean\-dist uses. Use None if this file
  90206. exists and you want to ignore.
  90207. .UNINDENT
  90208. .sp
  90209. Returns a dict containing the cleaned, saved, and deprecated dists:
  90210. .INDENT 7.0
  90211. .INDENT 3.5
  90212. .sp
  90213. .nf
  90214. .ft C
  90215. {\(aqcleaned\(aq: {<dist file>: <size>},
  90216. \(aqdeprecated\(aq: {<package>: <dist file>},
  90217. \(aqsaved\(aq: {<package>: <dist file>},
  90218. \(aqtotal_cleaned\(aq: <size>}
  90219. .ft P
  90220. .fi
  90221. .UNINDENT
  90222. .UNINDENT
  90223. .sp
  90224. CLI Example:
  90225. .INDENT 7.0
  90226. .INDENT 3.5
  90227. .sp
  90228. .nf
  90229. .ft C
  90230. salt \(aq*\(aq gentoolkit.eclean_dist destructive=True
  90231. .ft P
  90232. .fi
  90233. .UNINDENT
  90234. .UNINDENT
  90235. .UNINDENT
  90236. .INDENT 0.0
  90237. .TP
  90238. .B salt.modules.gentoolkitmod.eclean_pkg(destructive=False, package_names=False, time_limit=0, exclude_file=u\(aq/etc/eclean/packages.exclude\(aq)
  90239. Clean obsolete binary packages
  90240. .INDENT 7.0
  90241. .TP
  90242. .B destructive
  90243. Only keep minimum for reinstallation
  90244. .TP
  90245. .B package_names
  90246. Protect all versions of installed packages. Only meaningful if used
  90247. with destructive=True
  90248. .TP
  90249. .B time_limit <time>
  90250. Don\(aqt delete distfiles files modified since <time>
  90251. <time> is an amount of time: "1y" is "one year", "2w" is
  90252. "two weeks", etc. Units are: y (years), m (months), w (weeks),
  90253. d (days) and h (hours).
  90254. .TP
  90255. .B exclude_file
  90256. Path to exclusion file. Default is /etc/eclean/packages.exclude
  90257. This is the same default eclean\-pkg uses. Use None if this file
  90258. exists and you want to ignore.
  90259. .UNINDENT
  90260. .sp
  90261. Returns a dict containing the cleaned binary packages:
  90262. .INDENT 7.0
  90263. .INDENT 3.5
  90264. .sp
  90265. .nf
  90266. .ft C
  90267. {\(aqcleaned\(aq: {<dist file>: <size>},
  90268. \(aqtotal_cleaned\(aq: <size>}
  90269. .ft P
  90270. .fi
  90271. .UNINDENT
  90272. .UNINDENT
  90273. .sp
  90274. CLI Example:
  90275. .INDENT 7.0
  90276. .INDENT 3.5
  90277. .sp
  90278. .nf
  90279. .ft C
  90280. salt \(aq*\(aq gentoolkit.eclean_pkg destructive=True
  90281. .ft P
  90282. .fi
  90283. .UNINDENT
  90284. .UNINDENT
  90285. .UNINDENT
  90286. .INDENT 0.0
  90287. .TP
  90288. .B salt.modules.gentoolkitmod.glsa_check_list(glsa_list)
  90289. List the status of Gentoo Linux Security Advisories
  90290. .INDENT 7.0
  90291. .TP
  90292. .B glsa_list
  90293. can contain an arbitrary number of GLSA ids, filenames
  90294. containing GLSAs or the special identifiers \(aqall\(aq and \(aqaffected\(aq
  90295. .UNINDENT
  90296. .sp
  90297. Returns a dict containing glsa ids with a description, status, and CVEs:
  90298. .INDENT 7.0
  90299. .INDENT 3.5
  90300. .sp
  90301. .nf
  90302. .ft C
  90303. {<glsa_id>: {\(aqdescription\(aq: <glsa_description>,
  90304. \(aqstatus\(aq: <glsa status>,
  90305. \(aqCVEs\(aq: [<list of CVEs>]}}
  90306. .ft P
  90307. .fi
  90308. .UNINDENT
  90309. .UNINDENT
  90310. .sp
  90311. CLI Example:
  90312. .INDENT 7.0
  90313. .INDENT 3.5
  90314. .sp
  90315. .nf
  90316. .ft C
  90317. salt \(aq*\(aq gentoolkit.glsa_check_list \(aqaffected\(aq
  90318. .ft P
  90319. .fi
  90320. .UNINDENT
  90321. .UNINDENT
  90322. .UNINDENT
  90323. .INDENT 0.0
  90324. .TP
  90325. .B salt.modules.gentoolkitmod.revdep_rebuild(lib=None)
  90326. Fix up broken reverse dependencies
  90327. .INDENT 7.0
  90328. .TP
  90329. .B lib
  90330. Search for reverse dependencies for a particular library rather
  90331. than every library on the system. It can be a full path to a
  90332. library or basic regular expression.
  90333. .UNINDENT
  90334. .sp
  90335. CLI Example:
  90336. .INDENT 7.0
  90337. .INDENT 3.5
  90338. .sp
  90339. .nf
  90340. .ft C
  90341. salt \(aq*\(aq gentoolkit.revdep_rebuild
  90342. .ft P
  90343. .fi
  90344. .UNINDENT
  90345. .UNINDENT
  90346. .UNINDENT
  90347. .SS salt.modules.glance
  90348. .sp
  90349. Module for handling openstack glance calls.
  90350. .INDENT 0.0
  90351. .TP
  90352. .B optdepends
  90353. .INDENT 7.0
  90354. .IP \(bu 2
  90355. glanceclient Python adapter
  90356. .UNINDENT
  90357. .TP
  90358. .B configuration
  90359. This module is not usable until the following are specified
  90360. either in a pillar or in the minion\(aqs config file:
  90361. .INDENT 7.0
  90362. .INDENT 3.5
  90363. .sp
  90364. .nf
  90365. .ft C
  90366. keystone.user: admin
  90367. keystone.password: verybadpass
  90368. keystone.tenant: admin
  90369. keystone.insecure: False #(optional)
  90370. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  90371. .ft P
  90372. .fi
  90373. .UNINDENT
  90374. .UNINDENT
  90375. .sp
  90376. If configuration for multiple openstack accounts is required, they can be
  90377. set up as different configuration profiles:
  90378. For example:
  90379. .INDENT 7.0
  90380. .INDENT 3.5
  90381. .sp
  90382. .nf
  90383. .ft C
  90384. openstack1:
  90385. keystone.user: admin
  90386. keystone.password: verybadpass
  90387. keystone.tenant: admin
  90388. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  90389. openstack2:
  90390. keystone.user: admin
  90391. keystone.password: verybadpass
  90392. keystone.tenant: admin
  90393. keystone.auth_url: \(aqhttp://127.0.0.2:5000/v2.0/\(aq
  90394. .ft P
  90395. .fi
  90396. .UNINDENT
  90397. .UNINDENT
  90398. .sp
  90399. With this configuration in place, any of the glance functions can
  90400. make use of a configuration profile by declaring it explicitly.
  90401. For example:
  90402. .INDENT 7.0
  90403. .INDENT 3.5
  90404. .sp
  90405. .nf
  90406. .ft C
  90407. salt \(aq*\(aq glance.image_list profile=openstack1
  90408. .ft P
  90409. .fi
  90410. .UNINDENT
  90411. .UNINDENT
  90412. .UNINDENT
  90413. .INDENT 0.0
  90414. .TP
  90415. .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)
  90416. Create an image (glance image\-create)
  90417. .sp
  90418. CLI Example, old format:
  90419. .INDENT 7.0
  90420. .INDENT 3.5
  90421. .sp
  90422. .nf
  90423. .ft C
  90424. salt \(aq*\(aq glance.image_create name=f16\-jeos \e
  90425. disk_format=qcow2 container_format=ovf
  90426. .ft P
  90427. .fi
  90428. .UNINDENT
  90429. .UNINDENT
  90430. .sp
  90431. CLI Example, new format resembling Glance API v2:
  90432. .INDENT 7.0
  90433. .INDENT 3.5
  90434. .sp
  90435. .nf
  90436. .ft C
  90437. salt \(aq*\(aq glance.image_create name=f16\-jeos visibility=public \e
  90438. disk_format=qcow2 container_format=ovf
  90439. .ft P
  90440. .fi
  90441. .UNINDENT
  90442. .UNINDENT
  90443. .sp
  90444. The parameter \(aqvisibility\(aq defaults to \(aqpublic\(aq if not specified.
  90445. .UNINDENT
  90446. .INDENT 0.0
  90447. .TP
  90448. .B salt.modules.glance.image_delete(id=None, name=None, profile=None)
  90449. Delete an image (glance image\-delete)
  90450. .sp
  90451. CLI Examples:
  90452. .INDENT 7.0
  90453. .INDENT 3.5
  90454. .sp
  90455. .nf
  90456. .ft C
  90457. salt \(aq*\(aq glance.image_delete c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90458. salt \(aq*\(aq glance.image_delete id=c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90459. salt \(aq*\(aq glance.image_delete name=f16\-jeos
  90460. .ft P
  90461. .fi
  90462. .UNINDENT
  90463. .UNINDENT
  90464. .UNINDENT
  90465. .INDENT 0.0
  90466. .TP
  90467. .B salt.modules.glance.image_list(id=None, profile=None, name=None)
  90468. Return a list of available images (glance image\-list)
  90469. .sp
  90470. CLI Example:
  90471. .INDENT 7.0
  90472. .INDENT 3.5
  90473. .sp
  90474. .nf
  90475. .ft C
  90476. salt \(aq*\(aq glance.image_list
  90477. .ft P
  90478. .fi
  90479. .UNINDENT
  90480. .UNINDENT
  90481. .UNINDENT
  90482. .INDENT 0.0
  90483. .TP
  90484. .B salt.modules.glance.image_schema(profile=None)
  90485. Returns names and descriptions of the schema "image"\(aqs
  90486. properties for this profile\(aqs instance of glance
  90487. .sp
  90488. CLI Example:
  90489. .INDENT 7.0
  90490. .INDENT 3.5
  90491. .sp
  90492. .nf
  90493. .ft C
  90494. salt \(aq*\(aq glance.image_schema
  90495. .ft P
  90496. .fi
  90497. .UNINDENT
  90498. .UNINDENT
  90499. .UNINDENT
  90500. .INDENT 0.0
  90501. .TP
  90502. .B salt.modules.glance.image_show(id=None, name=None, profile=None)
  90503. Return details about a specific image (glance image\-show)
  90504. .sp
  90505. CLI Example:
  90506. .INDENT 7.0
  90507. .INDENT 3.5
  90508. .sp
  90509. .nf
  90510. .ft C
  90511. salt \(aq*\(aq glance.image_show
  90512. .ft P
  90513. .fi
  90514. .UNINDENT
  90515. .UNINDENT
  90516. .UNINDENT
  90517. .INDENT 0.0
  90518. .TP
  90519. .B salt.modules.glance.image_update(id=None, name=None, profile=None, **kwargs)
  90520. Update properties of given image.
  90521. Known to work for:
  90522. \- min_ram (in MB)
  90523. \- protected (bool)
  90524. \- visibility (\(aqpublic\(aq or \(aqprivate\(aq)
  90525. .sp
  90526. CLI Example:
  90527. .INDENT 7.0
  90528. .INDENT 3.5
  90529. .sp
  90530. .nf
  90531. .ft C
  90532. salt \(aq*\(aq glance.image_update id=c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90533. salt \(aq*\(aq glance.image_update name=f16\-jeos
  90534. .ft P
  90535. .fi
  90536. .UNINDENT
  90537. .UNINDENT
  90538. .UNINDENT
  90539. .INDENT 0.0
  90540. .TP
  90541. .B salt.modules.glance.schema_get(name, profile=None)
  90542. .INDENT 7.0
  90543. .TP
  90544. .B Known valid names of schemas are:
  90545. .INDENT 7.0
  90546. .IP \(bu 2
  90547. image
  90548. .IP \(bu 2
  90549. images
  90550. .IP \(bu 2
  90551. member
  90552. .IP \(bu 2
  90553. members
  90554. .UNINDENT
  90555. .UNINDENT
  90556. .sp
  90557. CLI Example:
  90558. .INDENT 7.0
  90559. .INDENT 3.5
  90560. .sp
  90561. .nf
  90562. .ft C
  90563. salt \(aq*\(aq glance.schema_get name=f16\-jeos
  90564. .ft P
  90565. .fi
  90566. .UNINDENT
  90567. .UNINDENT
  90568. .UNINDENT
  90569. .SS salt.modules.glanceng
  90570. .sp
  90571. Glance module for interacting with OpenStack Glance
  90572. .sp
  90573. New in version 2018.3.0.
  90574. .sp
  90575. :depends:shade
  90576. .sp
  90577. Example configuration
  90578. .INDENT 0.0
  90579. .INDENT 3.5
  90580. .sp
  90581. .nf
  90582. .ft C
  90583. glance:
  90584. cloud: default
  90585. .ft P
  90586. .fi
  90587. .UNINDENT
  90588. .UNINDENT
  90589. .INDENT 0.0
  90590. .INDENT 3.5
  90591. .sp
  90592. .nf
  90593. .ft C
  90594. glance:
  90595. auth:
  90596. username: admin
  90597. password: password123
  90598. user_domain_name: mydomain
  90599. project_name: myproject
  90600. project_domain_name: myproject
  90601. auth_url: https://example.org:5000/v3
  90602. identity_api_version: 3
  90603. .ft P
  90604. .fi
  90605. .UNINDENT
  90606. .UNINDENT
  90607. .INDENT 0.0
  90608. .TP
  90609. .B salt.modules.glanceng.compare_changes(obj, **kwargs)
  90610. Compare two dicts returning only keys that exist in the first dict and are
  90611. different in the second one
  90612. .UNINDENT
  90613. .INDENT 0.0
  90614. .TP
  90615. .B salt.modules.glanceng.get_openstack_cloud(auth=None)
  90616. Return an openstack_cloud
  90617. .UNINDENT
  90618. .INDENT 0.0
  90619. .TP
  90620. .B salt.modules.glanceng.get_operator_cloud(auth=None)
  90621. Return an operator_cloud
  90622. .UNINDENT
  90623. .INDENT 0.0
  90624. .TP
  90625. .B salt.modules.glanceng.image_create(auth=None, **kwargs)
  90626. Create an image
  90627. .sp
  90628. CLI Example:
  90629. .INDENT 7.0
  90630. .INDENT 3.5
  90631. .sp
  90632. .nf
  90633. .ft C
  90634. salt \(aq*\(aq glanceng.image_create name=cirros file=cirros.raw disk_format=raw
  90635. salt \(aq*\(aq glanceng.image_create name=cirros file=cirros.raw disk_format=raw hw_scsi_model=virtio\-scsi hw_disk_bus=scsi
  90636. .ft P
  90637. .fi
  90638. .UNINDENT
  90639. .UNINDENT
  90640. .UNINDENT
  90641. .INDENT 0.0
  90642. .TP
  90643. .B salt.modules.glanceng.image_delete(auth=None, **kwargs)
  90644. Delete an image
  90645. .sp
  90646. CLI Example:
  90647. .INDENT 7.0
  90648. .INDENT 3.5
  90649. .sp
  90650. .nf
  90651. .ft C
  90652. salt \(aq*\(aq glanceng.image_delete name=image1
  90653. salt \(aq*\(aq glanceng.image_delete name=0e4febc2a5ab4f2c8f374b054162506d
  90654. .ft P
  90655. .fi
  90656. .UNINDENT
  90657. .UNINDENT
  90658. .UNINDENT
  90659. .INDENT 0.0
  90660. .TP
  90661. .B salt.modules.glanceng.image_get(auth=None, **kwargs)
  90662. Get a single image
  90663. .sp
  90664. CLI Example:
  90665. .INDENT 7.0
  90666. .INDENT 3.5
  90667. .sp
  90668. .nf
  90669. .ft C
  90670. salt \(aq*\(aq glanceng.image_get name=image1
  90671. salt \(aq*\(aq glanceng.image_get name=0e4febc2a5ab4f2c8f374b054162506d
  90672. .ft P
  90673. .fi
  90674. .UNINDENT
  90675. .UNINDENT
  90676. .UNINDENT
  90677. .INDENT 0.0
  90678. .TP
  90679. .B salt.modules.glanceng.image_list(auth=None, **kwargs)
  90680. List images
  90681. .sp
  90682. CLI Example:
  90683. .INDENT 7.0
  90684. .INDENT 3.5
  90685. .sp
  90686. .nf
  90687. .ft C
  90688. salt \(aq*\(aq glanceng.image_list
  90689. salt \(aq*\(aq glanceng.image_list
  90690. .ft P
  90691. .fi
  90692. .UNINDENT
  90693. .UNINDENT
  90694. .UNINDENT
  90695. .INDENT 0.0
  90696. .TP
  90697. .B salt.modules.glanceng.image_search(auth=None, **kwargs)
  90698. Search for images
  90699. .sp
  90700. CLI Example:
  90701. .INDENT 7.0
  90702. .INDENT 3.5
  90703. .sp
  90704. .nf
  90705. .ft C
  90706. salt \(aq*\(aq glanceng.image_search name=image1
  90707. salt \(aq*\(aq glanceng.image_search
  90708. .ft P
  90709. .fi
  90710. .UNINDENT
  90711. .UNINDENT
  90712. .UNINDENT
  90713. .INDENT 0.0
  90714. .TP
  90715. .B salt.modules.glanceng.setup_clouds(auth=None)
  90716. Call functions to create Shade cloud objects in __context__ to take
  90717. advantage of Shade\(aqs in\-memory caching across several states
  90718. .UNINDENT
  90719. .INDENT 0.0
  90720. .TP
  90721. .B salt.modules.glanceng.update_image_properties(auth=None, **kwargs)
  90722. Update properties for an image
  90723. .sp
  90724. CLI Example:
  90725. .INDENT 7.0
  90726. .INDENT 3.5
  90727. .sp
  90728. .nf
  90729. .ft C
  90730. salt \(aq*\(aq glanceng.update_image_properties name=image1 hw_scsi_model=virtio\-scsi hw_disk_bus=scsi
  90731. salt \(aq*\(aq glanceng.update_image_properties name=0e4febc2a5ab4f2c8f374b054162506d min_ram=1024
  90732. .ft P
  90733. .fi
  90734. .UNINDENT
  90735. .UNINDENT
  90736. .UNINDENT
  90737. .SS salt.modules.google_chat
  90738. .sp
  90739. Module for sending messages to google chat.
  90740. .sp
  90741. New in version 2019.2.0.
  90742. .sp
  90743. To use this module you need to configure a webhook in the google chat room
  90744. where you would like the message to be sent, see:
  90745. .INDENT 0.0
  90746. .INDENT 3.5
  90747. \fI\%https://developers.google.com/hangouts/chat/how\-tos/webhooks\fP
  90748. .UNINDENT
  90749. .UNINDENT
  90750. .INDENT 0.0
  90751. .TP
  90752. .B salt.modules.google_chat.send_message(url, message)
  90753. Send a message to the google chat room specified in the webhook url.
  90754. .INDENT 7.0
  90755. .INDENT 3.5
  90756. .sp
  90757. .nf
  90758. .ft C
  90759. salt \(aq*\(aq google_chat.send_message "https://chat.googleapis.com/v1/spaces/example_space/messages?key=example_key" "This is a test message"
  90760. .ft P
  90761. .fi
  90762. .UNINDENT
  90763. .UNINDENT
  90764. .UNINDENT
  90765. .SS salt.modules.grafana4 module
  90766. .sp
  90767. Module for working with the Grafana v4 API
  90768. .sp
  90769. New in version 2017.7.0.
  90770. .INDENT 0.0
  90771. .TP
  90772. .B depends
  90773. requests
  90774. .TP
  90775. .B configuration
  90776. This module requires a configuration profile to be configured
  90777. in the minion config, minion pillar, or master config.
  90778. The module will use the \(aqgrafana\(aq key by default, if defined.
  90779. .sp
  90780. For example:
  90781. .INDENT 7.0
  90782. .INDENT 3.5
  90783. .sp
  90784. .nf
  90785. .ft C
  90786. grafana:
  90787. grafana_url: http://grafana.localhost
  90788. grafana_user: admin
  90789. grafana_password: admin
  90790. grafana_timeout: 3
  90791. .ft P
  90792. .fi
  90793. .UNINDENT
  90794. .UNINDENT
  90795. .UNINDENT
  90796. .INDENT 0.0
  90797. .TP
  90798. .B salt.modules.grafana4.create_datasource(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90799. Create a new datasource in an organisation.
  90800. .INDENT 7.0
  90801. .TP
  90802. .B name
  90803. Name of the data source.
  90804. .TP
  90805. .B type
  90806. Type of the datasource (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  90807. .TP
  90808. .B access
  90809. Use proxy or direct.
  90810. .TP
  90811. .B url
  90812. The URL to the data source API.
  90813. .TP
  90814. .B user
  90815. Optional \- user to authenticate with the data source.
  90816. .TP
  90817. .B password
  90818. Optional \- password to authenticate with the data source.
  90819. .TP
  90820. .B database
  90821. Optional \- database to use with the data source.
  90822. .TP
  90823. .B basicAuth
  90824. Optional \- set to True to use HTTP basic auth to authenticate with the
  90825. data source.
  90826. .TP
  90827. .B basicAuthUser
  90828. Optional \- HTTP basic auth username.
  90829. .TP
  90830. .B basicAuthPassword
  90831. Optional \- HTTP basic auth password.
  90832. .TP
  90833. .B jsonData
  90834. Optional \- additional json data to post (eg. "timeInterval").
  90835. .TP
  90836. .B isDefault
  90837. Optional \- set data source as default.
  90838. .TP
  90839. .B withCredentials
  90840. Optional \- Whether credentials such as cookies or auth headers should
  90841. be sent with cross\-site requests.
  90842. .TP
  90843. .B typeLogoUrl
  90844. Optional \- Logo to use for this datasource.
  90845. .TP
  90846. .B orgname
  90847. Name of the organization in which the data source should be created.
  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_datasource
  90861. .ft P
  90862. .fi
  90863. .UNINDENT
  90864. .UNINDENT
  90865. .UNINDENT
  90866. .INDENT 0.0
  90867. .TP
  90868. .B salt.modules.grafana4.create_org(profile=u\(aqgrafana\(aq, **kwargs)
  90869. Create a new organization.
  90870. .INDENT 7.0
  90871. .TP
  90872. .B name
  90873. Name of the organization.
  90874. .TP
  90875. .B profile
  90876. Configuration profile used to connect to the Grafana instance.
  90877. Default is \(aqgrafana\(aq.
  90878. .UNINDENT
  90879. .sp
  90880. CLI Example:
  90881. .INDENT 7.0
  90882. .INDENT 3.5
  90883. .sp
  90884. .nf
  90885. .ft C
  90886. salt \(aq*\(aq grafana4.create_org <name>
  90887. .ft P
  90888. .fi
  90889. .UNINDENT
  90890. .UNINDENT
  90891. .UNINDENT
  90892. .INDENT 0.0
  90893. .TP
  90894. .B salt.modules.grafana4.create_org_user(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90895. Add user to the organization.
  90896. .INDENT 7.0
  90897. .TP
  90898. .B loginOrEmail
  90899. Login or email of the user.
  90900. .TP
  90901. .B role
  90902. .INDENT 7.0
  90903. .TP
  90904. .B Role of the user for this organization. Should be one of:
  90905. .INDENT 7.0
  90906. .IP \(bu 2
  90907. Admin
  90908. .IP \(bu 2
  90909. Editor
  90910. .IP \(bu 2
  90911. Read Only Editor
  90912. .IP \(bu 2
  90913. Viewer
  90914. .UNINDENT
  90915. .UNINDENT
  90916. .TP
  90917. .B orgname
  90918. Name of the organization in which users are added.
  90919. .TP
  90920. .B profile
  90921. Configuration profile used to connect to the Grafana instance.
  90922. Default is \(aqgrafana\(aq.
  90923. .UNINDENT
  90924. .sp
  90925. CLI Example:
  90926. .INDENT 7.0
  90927. .INDENT 3.5
  90928. .sp
  90929. .nf
  90930. .ft C
  90931. salt \(aq*\(aq grafana4.create_org_user <orgname> loginOrEmail=<loginOrEmail> role=<role>
  90932. .ft P
  90933. .fi
  90934. .UNINDENT
  90935. .UNINDENT
  90936. .UNINDENT
  90937. .INDENT 0.0
  90938. .TP
  90939. .B salt.modules.grafana4.create_update_dashboard(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90940. Create or update a dashboard.
  90941. .INDENT 7.0
  90942. .TP
  90943. .B dashboard
  90944. A dict that defines the dashboard to create/update.
  90945. .TP
  90946. .B overwrite
  90947. Whether the dashboard should be overwritten if already existing.
  90948. .TP
  90949. .B orgname
  90950. Name of the organization.
  90951. .TP
  90952. .B profile
  90953. Configuration profile used to connect to the Grafana instance.
  90954. Default is \(aqgrafana\(aq.
  90955. .UNINDENT
  90956. .sp
  90957. CLI Example:
  90958. .INDENT 7.0
  90959. .INDENT 3.5
  90960. .sp
  90961. .nf
  90962. .ft C
  90963. salt \(aq*\(aq grafana4.create_update_dashboard dashboard=<dashboard> overwrite=True orgname=<orgname>
  90964. .ft P
  90965. .fi
  90966. .UNINDENT
  90967. .UNINDENT
  90968. .UNINDENT
  90969. .INDENT 0.0
  90970. .TP
  90971. .B salt.modules.grafana4.create_user(profile=u\(aqgrafana\(aq, **kwargs)
  90972. Create a new user.
  90973. .INDENT 7.0
  90974. .TP
  90975. .B login
  90976. Login of the new user.
  90977. .TP
  90978. .B password
  90979. Password of the new user.
  90980. .TP
  90981. .B email
  90982. Email of the new user.
  90983. .TP
  90984. .B name
  90985. Optional \- Full name of the new user.
  90986. .TP
  90987. .B profile
  90988. Configuration profile used to connect to the Grafana instance.
  90989. Default is \(aqgrafana\(aq.
  90990. .UNINDENT
  90991. .sp
  90992. CLI Example:
  90993. .INDENT 7.0
  90994. .INDENT 3.5
  90995. .sp
  90996. .nf
  90997. .ft C
  90998. salt \(aq*\(aq grafana4.create_user login=<login> password=<password> email=<email>
  90999. .ft P
  91000. .fi
  91001. .UNINDENT
  91002. .UNINDENT
  91003. .UNINDENT
  91004. .INDENT 0.0
  91005. .TP
  91006. .B salt.modules.grafana4.delete_dashboard(slug, orgname=None, profile=u\(aqgrafana\(aq)
  91007. Delete a dashboard.
  91008. .INDENT 7.0
  91009. .TP
  91010. .B slug
  91011. Slug (name) of the dashboard.
  91012. .TP
  91013. .B orgname
  91014. Name of the organization.
  91015. .TP
  91016. .B profile
  91017. Configuration profile used to connect to the Grafana instance.
  91018. Default is \(aqgrafana\(aq.
  91019. .UNINDENT
  91020. .sp
  91021. CLI Example:
  91022. .INDENT 7.0
  91023. .INDENT 3.5
  91024. .sp
  91025. .nf
  91026. .ft C
  91027. salt \(aq*\(aq grafana4.delete_dashboard <slug>
  91028. .ft P
  91029. .fi
  91030. .UNINDENT
  91031. .UNINDENT
  91032. .UNINDENT
  91033. .INDENT 0.0
  91034. .TP
  91035. .B salt.modules.grafana4.delete_datasource(datasourceid, orgname=None, profile=u\(aqgrafana\(aq)
  91036. Delete a datasource.
  91037. .INDENT 7.0
  91038. .TP
  91039. .B datasourceid
  91040. Id of the datasource.
  91041. .TP
  91042. .B profile
  91043. Configuration profile used to connect to the Grafana instance.
  91044. Default is \(aqgrafana\(aq.
  91045. .UNINDENT
  91046. .sp
  91047. CLI Example:
  91048. .INDENT 7.0
  91049. .INDENT 3.5
  91050. .sp
  91051. .nf
  91052. .ft C
  91053. salt \(aq*\(aq grafana4.delete_datasource <datasource_id>
  91054. .ft P
  91055. .fi
  91056. .UNINDENT
  91057. .UNINDENT
  91058. .UNINDENT
  91059. .INDENT 0.0
  91060. .TP
  91061. .B salt.modules.grafana4.delete_org(orgid, profile=u\(aqgrafana\(aq)
  91062. Delete an organization.
  91063. .INDENT 7.0
  91064. .TP
  91065. .B orgid
  91066. Id of the organization.
  91067. .TP
  91068. .B profile
  91069. Configuration profile used to connect to the Grafana instance.
  91070. Default is \(aqgrafana\(aq.
  91071. .UNINDENT
  91072. .sp
  91073. CLI Example:
  91074. .INDENT 7.0
  91075. .INDENT 3.5
  91076. .sp
  91077. .nf
  91078. .ft C
  91079. salt \(aq*\(aq grafana4.delete_org <org_id>
  91080. .ft P
  91081. .fi
  91082. .UNINDENT
  91083. .UNINDENT
  91084. .UNINDENT
  91085. .INDENT 0.0
  91086. .TP
  91087. .B salt.modules.grafana4.delete_org_user(userid, orgname=None, profile=u\(aqgrafana\(aq)
  91088. Remove user from the organization.
  91089. .INDENT 7.0
  91090. .TP
  91091. .B userid
  91092. Id of the user.
  91093. .TP
  91094. .B orgname
  91095. Name of the organization in which users are updated.
  91096. .TP
  91097. .B profile
  91098. Configuration profile used to connect to the Grafana instance.
  91099. Default is \(aqgrafana\(aq.
  91100. .UNINDENT
  91101. .sp
  91102. CLI Example:
  91103. .INDENT 7.0
  91104. .INDENT 3.5
  91105. .sp
  91106. .nf
  91107. .ft C
  91108. salt \(aq*\(aq grafana4.delete_org_user <user_id> <orgname>
  91109. .ft P
  91110. .fi
  91111. .UNINDENT
  91112. .UNINDENT
  91113. .UNINDENT
  91114. .INDENT 0.0
  91115. .TP
  91116. .B salt.modules.grafana4.delete_user(userid, profile=u\(aqgrafana\(aq)
  91117. Delete a user.
  91118. .INDENT 7.0
  91119. .TP
  91120. .B userid
  91121. Id of the user.
  91122. .TP
  91123. .B profile
  91124. Configuration profile used to connect to the Grafana instance.
  91125. Default is \(aqgrafana\(aq.
  91126. .UNINDENT
  91127. .sp
  91128. CLI Example:
  91129. .INDENT 7.0
  91130. .INDENT 3.5
  91131. .sp
  91132. .nf
  91133. .ft C
  91134. salt \(aq*\(aq grafana4.delete_user <user_id>
  91135. .ft P
  91136. .fi
  91137. .UNINDENT
  91138. .UNINDENT
  91139. .UNINDENT
  91140. .INDENT 0.0
  91141. .TP
  91142. .B salt.modules.grafana4.delete_user_org(userid, orgid, profile=u\(aqgrafana\(aq)
  91143. Remove a user from an organization.
  91144. .INDENT 7.0
  91145. .TP
  91146. .B userid
  91147. Id of the user.
  91148. .TP
  91149. .B orgid
  91150. Id of the organization.
  91151. .TP
  91152. .B profile
  91153. Configuration profile used to connect to the Grafana instance.
  91154. Default is \(aqgrafana\(aq.
  91155. .UNINDENT
  91156. .sp
  91157. CLI Example:
  91158. .INDENT 7.0
  91159. .INDENT 3.5
  91160. .sp
  91161. .nf
  91162. .ft C
  91163. salt \(aq*\(aq grafana4.delete_user_org <user_id> <org_id>
  91164. .ft P
  91165. .fi
  91166. .UNINDENT
  91167. .UNINDENT
  91168. .UNINDENT
  91169. .INDENT 0.0
  91170. .TP
  91171. .B salt.modules.grafana4.get_dashboard(slug, orgname=None, profile=u\(aqgrafana\(aq)
  91172. Get a dashboard.
  91173. .INDENT 7.0
  91174. .TP
  91175. .B slug
  91176. Slug (name) of the dashboard.
  91177. .TP
  91178. .B orgname
  91179. Name of the organization.
  91180. .TP
  91181. .B profile
  91182. Configuration profile used to connect to the Grafana instance.
  91183. Default is \(aqgrafana\(aq.
  91184. .UNINDENT
  91185. .sp
  91186. CLI Example:
  91187. .INDENT 7.0
  91188. .INDENT 3.5
  91189. .sp
  91190. .nf
  91191. .ft C
  91192. salt \(aq*\(aq grafana4.get_dashboard <slug>
  91193. .ft P
  91194. .fi
  91195. .UNINDENT
  91196. .UNINDENT
  91197. .UNINDENT
  91198. .INDENT 0.0
  91199. .TP
  91200. .B salt.modules.grafana4.get_datasource(name, orgname=None, profile=u\(aqgrafana\(aq)
  91201. Show a single datasource in an organisation.
  91202. .INDENT 7.0
  91203. .TP
  91204. .B name
  91205. Name of the datasource.
  91206. .TP
  91207. .B orgname
  91208. Name of the organization.
  91209. .TP
  91210. .B profile
  91211. Configuration profile used to connect to the Grafana instance.
  91212. Default is \(aqgrafana\(aq.
  91213. .UNINDENT
  91214. .sp
  91215. CLI Example:
  91216. .INDENT 7.0
  91217. .INDENT 3.5
  91218. .sp
  91219. .nf
  91220. .ft C
  91221. salt \(aq*\(aq grafana4.get_datasource <name> <orgname>
  91222. .ft P
  91223. .fi
  91224. .UNINDENT
  91225. .UNINDENT
  91226. .UNINDENT
  91227. .INDENT 0.0
  91228. .TP
  91229. .B salt.modules.grafana4.get_datasources(orgname=None, profile=u\(aqgrafana\(aq)
  91230. List all datasources in an organisation.
  91231. .INDENT 7.0
  91232. .TP
  91233. .B orgname
  91234. Name of the organization.
  91235. .TP
  91236. .B profile
  91237. Configuration profile used to connect to the Grafana instance.
  91238. Default is \(aqgrafana\(aq.
  91239. .UNINDENT
  91240. .sp
  91241. CLI Example:
  91242. .INDENT 7.0
  91243. .INDENT 3.5
  91244. .sp
  91245. .nf
  91246. .ft C
  91247. salt \(aq*\(aq grafana4.get_datasources <orgname>
  91248. .ft P
  91249. .fi
  91250. .UNINDENT
  91251. .UNINDENT
  91252. .UNINDENT
  91253. .INDENT 0.0
  91254. .TP
  91255. .B salt.modules.grafana4.get_org(name, profile=u\(aqgrafana\(aq)
  91256. Show a single organization.
  91257. .INDENT 7.0
  91258. .TP
  91259. .B name
  91260. Name of the organization.
  91261. .TP
  91262. .B profile
  91263. Configuration profile used to connect to the Grafana instance.
  91264. Default is \(aqgrafana\(aq.
  91265. .UNINDENT
  91266. .sp
  91267. CLI Example:
  91268. .INDENT 7.0
  91269. .INDENT 3.5
  91270. .sp
  91271. .nf
  91272. .ft C
  91273. salt \(aq*\(aq grafana4.get_org <name>
  91274. .ft P
  91275. .fi
  91276. .UNINDENT
  91277. .UNINDENT
  91278. .UNINDENT
  91279. .INDENT 0.0
  91280. .TP
  91281. .B salt.modules.grafana4.get_org_address(orgname=None, profile=u\(aqgrafana\(aq)
  91282. Get the organization address.
  91283. .INDENT 7.0
  91284. .TP
  91285. .B orgname
  91286. Name of the organization in which users are updated.
  91287. .TP
  91288. .B profile
  91289. Configuration profile used to connect to the Grafana instance.
  91290. Default is \(aqgrafana\(aq.
  91291. .UNINDENT
  91292. .sp
  91293. CLI Example:
  91294. .INDENT 7.0
  91295. .INDENT 3.5
  91296. .sp
  91297. .nf
  91298. .ft C
  91299. salt \(aq*\(aq grafana4.get_org_address <orgname>
  91300. .ft P
  91301. .fi
  91302. .UNINDENT
  91303. .UNINDENT
  91304. .UNINDENT
  91305. .INDENT 0.0
  91306. .TP
  91307. .B salt.modules.grafana4.get_org_prefs(orgname=None, profile=u\(aqgrafana\(aq)
  91308. Get the organization preferences.
  91309. .INDENT 7.0
  91310. .TP
  91311. .B orgname
  91312. Name of the organization in which users are updated.
  91313. .TP
  91314. .B profile
  91315. Configuration profile used to connect to the Grafana instance.
  91316. Default is \(aqgrafana\(aq.
  91317. .UNINDENT
  91318. .sp
  91319. CLI Example:
  91320. .INDENT 7.0
  91321. .INDENT 3.5
  91322. .sp
  91323. .nf
  91324. .ft C
  91325. salt \(aq*\(aq grafana4.get_org_prefs <orgname>
  91326. .ft P
  91327. .fi
  91328. .UNINDENT
  91329. .UNINDENT
  91330. .UNINDENT
  91331. .INDENT 0.0
  91332. .TP
  91333. .B salt.modules.grafana4.get_org_users(orgname=None, profile=u\(aqgrafana\(aq)
  91334. Get the list of users that belong to the organization.
  91335. .INDENT 7.0
  91336. .TP
  91337. .B orgname
  91338. Name of the organization.
  91339. .TP
  91340. .B profile
  91341. Configuration profile used to connect to the Grafana instance.
  91342. Default is \(aqgrafana\(aq.
  91343. .UNINDENT
  91344. .sp
  91345. CLI Example:
  91346. .INDENT 7.0
  91347. .INDENT 3.5
  91348. .sp
  91349. .nf
  91350. .ft C
  91351. salt \(aq*\(aq grafana4.get_org_users <orgname>
  91352. .ft P
  91353. .fi
  91354. .UNINDENT
  91355. .UNINDENT
  91356. .UNINDENT
  91357. .INDENT 0.0
  91358. .TP
  91359. .B salt.modules.grafana4.get_orgs(profile=u\(aqgrafana\(aq)
  91360. List all organizations.
  91361. .INDENT 7.0
  91362. .TP
  91363. .B profile
  91364. Configuration profile used to connect to the Grafana instance.
  91365. Default is \(aqgrafana\(aq.
  91366. .UNINDENT
  91367. .sp
  91368. CLI Example:
  91369. .INDENT 7.0
  91370. .INDENT 3.5
  91371. .sp
  91372. .nf
  91373. .ft C
  91374. salt \(aq*\(aq grafana4.get_orgs
  91375. .ft P
  91376. .fi
  91377. .UNINDENT
  91378. .UNINDENT
  91379. .UNINDENT
  91380. .INDENT 0.0
  91381. .TP
  91382. .B salt.modules.grafana4.get_user(login, profile=u\(aqgrafana\(aq)
  91383. Show a single user.
  91384. .INDENT 7.0
  91385. .TP
  91386. .B login
  91387. Login of the user.
  91388. .TP
  91389. .B profile
  91390. Configuration profile used to connect to the Grafana instance.
  91391. Default is \(aqgrafana\(aq.
  91392. .UNINDENT
  91393. .sp
  91394. CLI Example:
  91395. .INDENT 7.0
  91396. .INDENT 3.5
  91397. .sp
  91398. .nf
  91399. .ft C
  91400. salt \(aq*\(aq grafana4.get_user <login>
  91401. .ft P
  91402. .fi
  91403. .UNINDENT
  91404. .UNINDENT
  91405. .UNINDENT
  91406. .INDENT 0.0
  91407. .TP
  91408. .B salt.modules.grafana4.get_user_data(userid, profile=u\(aqgrafana\(aq)
  91409. Get user data.
  91410. .INDENT 7.0
  91411. .TP
  91412. .B userid
  91413. Id of the user.
  91414. .TP
  91415. .B profile
  91416. Configuration profile used to connect to the Grafana instance.
  91417. Default is \(aqgrafana\(aq.
  91418. .UNINDENT
  91419. .sp
  91420. CLI Example:
  91421. .INDENT 7.0
  91422. .INDENT 3.5
  91423. .sp
  91424. .nf
  91425. .ft C
  91426. salt \(aq*\(aq grafana4.get_user_data <user_id>
  91427. .ft P
  91428. .fi
  91429. .UNINDENT
  91430. .UNINDENT
  91431. .UNINDENT
  91432. .INDENT 0.0
  91433. .TP
  91434. .B salt.modules.grafana4.get_user_orgs(userid, profile=u\(aqgrafana\(aq)
  91435. Get the list of organisations a user belong to.
  91436. .INDENT 7.0
  91437. .TP
  91438. .B userid
  91439. Id of the user.
  91440. .TP
  91441. .B profile
  91442. Configuration profile used to connect to the Grafana instance.
  91443. Default is \(aqgrafana\(aq.
  91444. .UNINDENT
  91445. .sp
  91446. CLI Example:
  91447. .INDENT 7.0
  91448. .INDENT 3.5
  91449. .sp
  91450. .nf
  91451. .ft C
  91452. salt \(aq*\(aq grafana4.get_user_orgs <user_id>
  91453. .ft P
  91454. .fi
  91455. .UNINDENT
  91456. .UNINDENT
  91457. .UNINDENT
  91458. .INDENT 0.0
  91459. .TP
  91460. .B salt.modules.grafana4.get_users(profile=u\(aqgrafana\(aq)
  91461. List all users.
  91462. .INDENT 7.0
  91463. .TP
  91464. .B profile
  91465. Configuration profile used to connect to the Grafana instance.
  91466. Default is \(aqgrafana\(aq.
  91467. .UNINDENT
  91468. .sp
  91469. CLI Example:
  91470. .INDENT 7.0
  91471. .INDENT 3.5
  91472. .sp
  91473. .nf
  91474. .ft C
  91475. salt \(aq*\(aq grafana4.get_users
  91476. .ft P
  91477. .fi
  91478. .UNINDENT
  91479. .UNINDENT
  91480. .UNINDENT
  91481. .INDENT 0.0
  91482. .TP
  91483. .B salt.modules.grafana4.switch_org(orgname, profile=u\(aqgrafana\(aq)
  91484. Switch the current organization.
  91485. .INDENT 7.0
  91486. .TP
  91487. .B name
  91488. Name of the organization to switch to.
  91489. .TP
  91490. .B profile
  91491. Configuration profile used to connect to the Grafana instance.
  91492. Default is \(aqgrafana\(aq.
  91493. .UNINDENT
  91494. .sp
  91495. CLI Example:
  91496. .INDENT 7.0
  91497. .INDENT 3.5
  91498. .sp
  91499. .nf
  91500. .ft C
  91501. salt \(aq*\(aq grafana4.switch_org <name>
  91502. .ft P
  91503. .fi
  91504. .UNINDENT
  91505. .UNINDENT
  91506. .UNINDENT
  91507. .INDENT 0.0
  91508. .TP
  91509. .B salt.modules.grafana4.update_datasource(datasourceid, orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91510. Update a datasource.
  91511. .INDENT 7.0
  91512. .TP
  91513. .B datasourceid
  91514. Id of the datasource.
  91515. .TP
  91516. .B name
  91517. Name of the data source.
  91518. .TP
  91519. .B type
  91520. Type of the datasource (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  91521. .TP
  91522. .B access
  91523. Use proxy or direct.
  91524. .TP
  91525. .B url
  91526. The URL to the data source API.
  91527. .TP
  91528. .B user
  91529. Optional \- user to authenticate with the data source.
  91530. .TP
  91531. .B password
  91532. Optional \- password to authenticate with the data source.
  91533. .TP
  91534. .B database
  91535. Optional \- database to use with the data source.
  91536. .TP
  91537. .B basicAuth
  91538. Optional \- set to True to use HTTP basic auth to authenticate with the
  91539. data source.
  91540. .TP
  91541. .B basicAuthUser
  91542. Optional \- HTTP basic auth username.
  91543. .TP
  91544. .B basicAuthPassword
  91545. Optional \- HTTP basic auth password.
  91546. .TP
  91547. .B jsonData
  91548. Optional \- additional json data to post (eg. "timeInterval").
  91549. .TP
  91550. .B isDefault
  91551. Optional \- set data source as default.
  91552. .TP
  91553. .B withCredentials
  91554. Optional \- Whether credentials such as cookies or auth headers should
  91555. be sent with cross\-site requests.
  91556. .TP
  91557. .B typeLogoUrl
  91558. Optional \- Logo to use for this datasource.
  91559. .TP
  91560. .B profile
  91561. Configuration profile used to connect to the Grafana instance.
  91562. Default is \(aqgrafana\(aq.
  91563. .UNINDENT
  91564. .sp
  91565. CLI Example:
  91566. .INDENT 7.0
  91567. .INDENT 3.5
  91568. .sp
  91569. .nf
  91570. .ft C
  91571. salt \(aq*\(aq grafana4.update_datasource <datasourceid>
  91572. .ft P
  91573. .fi
  91574. .UNINDENT
  91575. .UNINDENT
  91576. .UNINDENT
  91577. .INDENT 0.0
  91578. .TP
  91579. .B salt.modules.grafana4.update_org(orgid, profile=u\(aqgrafana\(aq, **kwargs)
  91580. Update an existing organization.
  91581. .INDENT 7.0
  91582. .TP
  91583. .B orgid
  91584. Id of the organization.
  91585. .TP
  91586. .B name
  91587. New name of the organization.
  91588. .TP
  91589. .B profile
  91590. Configuration profile used to connect to the Grafana instance.
  91591. Default is \(aqgrafana\(aq.
  91592. .UNINDENT
  91593. .sp
  91594. CLI Example:
  91595. .INDENT 7.0
  91596. .INDENT 3.5
  91597. .sp
  91598. .nf
  91599. .ft C
  91600. salt \(aq*\(aq grafana4.update_org <org_id> name=<name>
  91601. .ft P
  91602. .fi
  91603. .UNINDENT
  91604. .UNINDENT
  91605. .UNINDENT
  91606. .INDENT 0.0
  91607. .TP
  91608. .B salt.modules.grafana4.update_org_address(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91609. Update the organization address.
  91610. .INDENT 7.0
  91611. .TP
  91612. .B orgname
  91613. Name of the organization in which users are updated.
  91614. .TP
  91615. .B address1
  91616. Optional \- address1 of the org.
  91617. .TP
  91618. .B address2
  91619. Optional \- address2 of the org.
  91620. .TP
  91621. .B city
  91622. Optional \- city of the org.
  91623. .TP
  91624. .B zip_code
  91625. Optional \- zip_code of the org.
  91626. .TP
  91627. .B state
  91628. Optional \- state of the org.
  91629. .TP
  91630. .B country
  91631. Optional \- country of the org.
  91632. .TP
  91633. .B profile
  91634. Configuration profile used to connect to the Grafana instance.
  91635. Default is \(aqgrafana\(aq.
  91636. .UNINDENT
  91637. .sp
  91638. CLI Example:
  91639. .INDENT 7.0
  91640. .INDENT 3.5
  91641. .sp
  91642. .nf
  91643. .ft C
  91644. salt \(aq*\(aq grafana4.update_org_address <orgname> country=<country>
  91645. .ft P
  91646. .fi
  91647. .UNINDENT
  91648. .UNINDENT
  91649. .UNINDENT
  91650. .INDENT 0.0
  91651. .TP
  91652. .B salt.modules.grafana4.update_org_prefs(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91653. Update the organization preferences.
  91654. .INDENT 7.0
  91655. .TP
  91656. .B orgname
  91657. Name of the organization in which users are updated.
  91658. .TP
  91659. .B theme
  91660. Selected theme for the org.
  91661. .TP
  91662. .B homeDashboardId
  91663. Home dashboard for the org.
  91664. .TP
  91665. .B timezone
  91666. Timezone for the org (one of: "browser", "utc", or "").
  91667. .TP
  91668. .B profile
  91669. Configuration profile used to connect to the Grafana instance.
  91670. Default is \(aqgrafana\(aq.
  91671. .UNINDENT
  91672. .sp
  91673. CLI Example:
  91674. .INDENT 7.0
  91675. .INDENT 3.5
  91676. .sp
  91677. .nf
  91678. .ft C
  91679. salt \(aq*\(aq grafana4.update_org_prefs <orgname> theme=<theme> timezone=<timezone>
  91680. .ft P
  91681. .fi
  91682. .UNINDENT
  91683. .UNINDENT
  91684. .UNINDENT
  91685. .INDENT 0.0
  91686. .TP
  91687. .B salt.modules.grafana4.update_org_user(userid, orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91688. Update user role in the organization.
  91689. .INDENT 7.0
  91690. .TP
  91691. .B userid
  91692. Id of the user.
  91693. .TP
  91694. .B loginOrEmail
  91695. Login or email of the user.
  91696. .TP
  91697. .B role
  91698. .INDENT 7.0
  91699. .TP
  91700. .B Role of the user for this organization. Should be one of:
  91701. .INDENT 7.0
  91702. .IP \(bu 2
  91703. Admin
  91704. .IP \(bu 2
  91705. Editor
  91706. .IP \(bu 2
  91707. Read Only Editor
  91708. .IP \(bu 2
  91709. Viewer
  91710. .UNINDENT
  91711. .UNINDENT
  91712. .TP
  91713. .B orgname
  91714. Name of the organization in which users are updated.
  91715. .TP
  91716. .B profile
  91717. Configuration profile used to connect to the Grafana instance.
  91718. Default is \(aqgrafana\(aq.
  91719. .UNINDENT
  91720. .sp
  91721. CLI Example:
  91722. .INDENT 7.0
  91723. .INDENT 3.5
  91724. .sp
  91725. .nf
  91726. .ft C
  91727. salt \(aq*\(aq grafana4.update_org_user <user_id> <orgname> loginOrEmail=<loginOrEmail> role=<role>
  91728. .ft P
  91729. .fi
  91730. .UNINDENT
  91731. .UNINDENT
  91732. .UNINDENT
  91733. .INDENT 0.0
  91734. .TP
  91735. .B salt.modules.grafana4.update_user(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91736. Update an existing user.
  91737. .INDENT 7.0
  91738. .TP
  91739. .B userid
  91740. Id of the user.
  91741. .TP
  91742. .B login
  91743. Optional \- Login of the user.
  91744. .TP
  91745. .B email
  91746. Optional \- Email of the user.
  91747. .TP
  91748. .B name
  91749. Optional \- Full name of the user.
  91750. .TP
  91751. .B profile
  91752. Configuration profile used to connect to the Grafana instance.
  91753. Default is \(aqgrafana\(aq.
  91754. .UNINDENT
  91755. .sp
  91756. CLI Example:
  91757. .INDENT 7.0
  91758. .INDENT 3.5
  91759. .sp
  91760. .nf
  91761. .ft C
  91762. salt \(aq*\(aq grafana4.update_user <user_id> login=<login> email=<email>
  91763. .ft P
  91764. .fi
  91765. .UNINDENT
  91766. .UNINDENT
  91767. .UNINDENT
  91768. .INDENT 0.0
  91769. .TP
  91770. .B salt.modules.grafana4.update_user_password(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91771. Update a user password.
  91772. .INDENT 7.0
  91773. .TP
  91774. .B userid
  91775. Id of the user.
  91776. .TP
  91777. .B password
  91778. New password of the user.
  91779. .TP
  91780. .B profile
  91781. Configuration profile used to connect to the Grafana instance.
  91782. Default is \(aqgrafana\(aq.
  91783. .UNINDENT
  91784. .sp
  91785. CLI Example:
  91786. .INDENT 7.0
  91787. .INDENT 3.5
  91788. .sp
  91789. .nf
  91790. .ft C
  91791. salt \(aq*\(aq grafana4.update_user_password <user_id> password=<password>
  91792. .ft P
  91793. .fi
  91794. .UNINDENT
  91795. .UNINDENT
  91796. .UNINDENT
  91797. .INDENT 0.0
  91798. .TP
  91799. .B salt.modules.grafana4.update_user_permissions(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91800. Update a user password.
  91801. .INDENT 7.0
  91802. .TP
  91803. .B userid
  91804. Id of the user.
  91805. .TP
  91806. .B isGrafanaAdmin
  91807. Whether user is a Grafana admin.
  91808. .TP
  91809. .B profile
  91810. Configuration profile used to connect to the Grafana instance.
  91811. Default is \(aqgrafana\(aq.
  91812. .UNINDENT
  91813. .sp
  91814. CLI Example:
  91815. .INDENT 7.0
  91816. .INDENT 3.5
  91817. .sp
  91818. .nf
  91819. .ft C
  91820. salt \(aq*\(aq grafana4.update_user_permissions <user_id> isGrafanaAdmin=<true|false>
  91821. .ft P
  91822. .fi
  91823. .UNINDENT
  91824. .UNINDENT
  91825. .UNINDENT
  91826. .SS salt.modules.haproxyconn
  91827. .sp
  91828. Support for haproxy
  91829. .sp
  91830. New in version 2014.7.0.
  91831. .INDENT 0.0
  91832. .TP
  91833. .B salt.modules.haproxyconn.disable_server(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91834. Disable server in haproxy.
  91835. .INDENT 7.0
  91836. .TP
  91837. .B name
  91838. Server to disable
  91839. .TP
  91840. .B backend
  91841. haproxy backend, or all backends if "*" is supplied
  91842. .TP
  91843. .B socket
  91844. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91845. .UNINDENT
  91846. .sp
  91847. CLI Example:
  91848. .INDENT 7.0
  91849. .INDENT 3.5
  91850. .sp
  91851. .nf
  91852. .ft C
  91853. salt \(aq*\(aq haproxy.disable_server db1.example.com mysql
  91854. .ft P
  91855. .fi
  91856. .UNINDENT
  91857. .UNINDENT
  91858. .UNINDENT
  91859. .INDENT 0.0
  91860. .TP
  91861. .B salt.modules.haproxyconn.enable_server(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91862. Enable Server in haproxy
  91863. .INDENT 7.0
  91864. .TP
  91865. .B name
  91866. Server to enable
  91867. .TP
  91868. .B backend
  91869. haproxy backend, or all backends if "*" is supplied
  91870. .TP
  91871. .B socket
  91872. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91873. .UNINDENT
  91874. .sp
  91875. CLI Example:
  91876. .INDENT 7.0
  91877. .INDENT 3.5
  91878. .sp
  91879. .nf
  91880. .ft C
  91881. salt \(aq*\(aq haproxy.enable_server web1.example.com www
  91882. .ft P
  91883. .fi
  91884. .UNINDENT
  91885. .UNINDENT
  91886. .UNINDENT
  91887. .INDENT 0.0
  91888. .TP
  91889. .B salt.modules.haproxyconn.get_backend(backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91890. Receive information about a specific backend.
  91891. .INDENT 7.0
  91892. .TP
  91893. .B backend
  91894. haproxy backend
  91895. .TP
  91896. .B socket
  91897. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91898. .UNINDENT
  91899. .sp
  91900. CLI Example:
  91901. .INDENT 7.0
  91902. .INDENT 3.5
  91903. .sp
  91904. .nf
  91905. .ft C
  91906. salt \(aq*\(aq haproxy.get_backend mysql
  91907. .ft P
  91908. .fi
  91909. .UNINDENT
  91910. .UNINDENT
  91911. .UNINDENT
  91912. .INDENT 0.0
  91913. .TP
  91914. .B salt.modules.haproxyconn.get_sessions(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91915. New in version 2016.11.0.
  91916. .sp
  91917. Get number of current sessions on server in backend (scur)
  91918. .INDENT 7.0
  91919. .TP
  91920. .B name
  91921. Server name
  91922. .TP
  91923. .B backend
  91924. haproxy backend
  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.get_sessions web1.example.com www
  91937. .ft P
  91938. .fi
  91939. .UNINDENT
  91940. .UNINDENT
  91941. .UNINDENT
  91942. .INDENT 0.0
  91943. .TP
  91944. .B salt.modules.haproxyconn.get_weight(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91945. Get 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 socket
  91955. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91956. .UNINDENT
  91957. .sp
  91958. CLI Example:
  91959. .INDENT 7.0
  91960. .INDENT 3.5
  91961. .sp
  91962. .nf
  91963. .ft C
  91964. salt \(aq*\(aq haproxy.get_weight web1.example.com www
  91965. .ft P
  91966. .fi
  91967. .UNINDENT
  91968. .UNINDENT
  91969. .UNINDENT
  91970. .INDENT 0.0
  91971. .TP
  91972. .B salt.modules.haproxyconn.list_backends(servers=True, socket=u\(aq/var/run/haproxy.sock\(aq)
  91973. List HaProxy Backends
  91974. .INDENT 7.0
  91975. .TP
  91976. .B socket
  91977. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91978. .TP
  91979. .B servers
  91980. list backends with servers
  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.list_backends
  91990. .ft P
  91991. .fi
  91992. .UNINDENT
  91993. .UNINDENT
  91994. .UNINDENT
  91995. .INDENT 0.0
  91996. .TP
  91997. .B salt.modules.haproxyconn.list_frontends(socket=u\(aq/var/run/haproxy.sock\(aq)
  91998. List 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.list_frontends
  92012. .ft P
  92013. .fi
  92014. .UNINDENT
  92015. .UNINDENT
  92016. .UNINDENT
  92017. .INDENT 0.0
  92018. .TP
  92019. .B salt.modules.haproxyconn.list_servers(backend, socket=u\(aq/var/run/haproxy.sock\(aq, objectify=False)
  92020. List servers in haproxy backend.
  92021. .INDENT 7.0
  92022. .TP
  92023. .B backend
  92024. haproxy backend
  92025. .TP
  92026. .B socket
  92027. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92028. .UNINDENT
  92029. .sp
  92030. CLI Example:
  92031. .INDENT 7.0
  92032. .INDENT 3.5
  92033. .sp
  92034. .nf
  92035. .ft C
  92036. salt \(aq*\(aq haproxy.list_servers mysql
  92037. .ft P
  92038. .fi
  92039. .UNINDENT
  92040. .UNINDENT
  92041. .UNINDENT
  92042. .INDENT 0.0
  92043. .TP
  92044. .B salt.modules.haproxyconn.set_state(name, backend, state, socket=u\(aq/var/run/haproxy.sock\(aq)
  92045. Force a server\(aqs administrative state to a new state. This can be useful to
  92046. disable load balancing and/or any traffic to a server. Setting the state to
  92047. "ready" puts the server in normal mode, and the command is the equivalent of
  92048. the "enable server" command. Setting the state to "maint" disables any traffic
  92049. to the server as well as any health checks. This is the equivalent of the
  92050. "disable server" command. Setting the mode to "drain" only removes the server
  92051. from load balancing but still allows it to be checked and to accept new
  92052. persistent connections. Changes are propagated to tracking servers if any.
  92053. .INDENT 7.0
  92054. .TP
  92055. .B name
  92056. Server name
  92057. .TP
  92058. .B backend
  92059. haproxy backend
  92060. .TP
  92061. .B state
  92062. A string of the state to set. Must be \(aqready\(aq, \(aqdrain\(aq, or \(aqmaint\(aq
  92063. .TP
  92064. .B socket
  92065. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92066. .UNINDENT
  92067. .sp
  92068. CLI Example:
  92069. .INDENT 7.0
  92070. .INDENT 3.5
  92071. .sp
  92072. .nf
  92073. .ft C
  92074. salt \(aq*\(aq haproxy.set_state my_proxy_server my_backend ready
  92075. .ft P
  92076. .fi
  92077. .UNINDENT
  92078. .UNINDENT
  92079. .UNINDENT
  92080. .INDENT 0.0
  92081. .TP
  92082. .B salt.modules.haproxyconn.set_weight(name, backend, weight=0, socket=u\(aq/var/run/haproxy.sock\(aq)
  92083. Set server weight
  92084. .INDENT 7.0
  92085. .TP
  92086. .B name
  92087. Server name
  92088. .TP
  92089. .B backend
  92090. haproxy backend
  92091. .TP
  92092. .B weight
  92093. Server Weight
  92094. .TP
  92095. .B socket
  92096. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92097. .UNINDENT
  92098. .sp
  92099. CLI Example:
  92100. .INDENT 7.0
  92101. .INDENT 3.5
  92102. .sp
  92103. .nf
  92104. .ft C
  92105. salt \(aq*\(aq haproxy.set_weight web1.example.com www 13
  92106. .ft P
  92107. .fi
  92108. .UNINDENT
  92109. .UNINDENT
  92110. .UNINDENT
  92111. .INDENT 0.0
  92112. .TP
  92113. .B salt.modules.haproxyconn.show_backends(socket=u\(aq/var/run/haproxy.sock\(aq)
  92114. Show HaProxy Backends
  92115. .INDENT 7.0
  92116. .TP
  92117. .B socket
  92118. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92119. .UNINDENT
  92120. .sp
  92121. CLI Example:
  92122. .INDENT 7.0
  92123. .INDENT 3.5
  92124. .sp
  92125. .nf
  92126. .ft C
  92127. salt \(aq*\(aq haproxy.show_backends
  92128. .ft P
  92129. .fi
  92130. .UNINDENT
  92131. .UNINDENT
  92132. .UNINDENT
  92133. .INDENT 0.0
  92134. .TP
  92135. .B salt.modules.haproxyconn.show_frontends(socket=u\(aq/var/run/haproxy.sock\(aq)
  92136. Show HaProxy frontends
  92137. .INDENT 7.0
  92138. .TP
  92139. .B socket
  92140. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92141. .UNINDENT
  92142. .sp
  92143. CLI Example:
  92144. .INDENT 7.0
  92145. .INDENT 3.5
  92146. .sp
  92147. .nf
  92148. .ft C
  92149. salt \(aq*\(aq haproxy.show_frontends
  92150. .ft P
  92151. .fi
  92152. .UNINDENT
  92153. .UNINDENT
  92154. .UNINDENT
  92155. .INDENT 0.0
  92156. .TP
  92157. .B salt.modules.haproxyconn.wait_state(backend, server, value=u\(aqup\(aq, timeout=300, socket=u\(aq/var/run/haproxy.sock\(aq)
  92158. Wait for a specific server state
  92159. .INDENT 7.0
  92160. .TP
  92161. .B backend
  92162. haproxy backend
  92163. .TP
  92164. .B server
  92165. targeted server
  92166. .TP
  92167. .B value
  92168. state value
  92169. .TP
  92170. .B timeout
  92171. timeout before giving up state value, default 5 min
  92172. .TP
  92173. .B socket
  92174. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  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 haproxy.wait_state mysql server01 up 60
  92184. .ft P
  92185. .fi
  92186. .UNINDENT
  92187. .UNINDENT
  92188. .UNINDENT
  92189. .SS salt.modules.influxdb08mod
  92190. .sp
  92191. InfluxDB \- A distributed time series database
  92192. .sp
  92193. Module to provide InfluxDB compatibility to Salt (compatible with InfluxDB
  92194. version 0.5\-0.8)
  92195. .sp
  92196. New in version 2014.7.0.
  92197. .INDENT 0.0
  92198. .TP
  92199. .B depends
  92200. .INDENT 7.0
  92201. .IP \(bu 2
  92202. influxdb Python module (>= 1.0.0)
  92203. .UNINDENT
  92204. .TP
  92205. .B configuration
  92206. This module accepts connection configuration details either as
  92207. parameters or as configuration settings in /etc/salt/minion on the relevant
  92208. minions:
  92209. .INDENT 7.0
  92210. .INDENT 3.5
  92211. .sp
  92212. .nf
  92213. .ft C
  92214. influxdb08.host: \(aqlocalhost\(aq
  92215. influxdb08.port: 8086
  92216. influxdb08.user: \(aqroot\(aq
  92217. influxdb08.password: \(aqroot\(aq
  92218. .ft P
  92219. .fi
  92220. .UNINDENT
  92221. .UNINDENT
  92222. .sp
  92223. This data can also be passed into pillar. Options passed into opts will
  92224. overwrite options passed into pillar.
  92225. .UNINDENT
  92226. .INDENT 0.0
  92227. .TP
  92228. .B salt.modules.influxdb08mod.db_create(name, user=None, password=None, host=None, port=None)
  92229. Create a database
  92230. .INDENT 7.0
  92231. .TP
  92232. .B name
  92233. Database name to create
  92234. .TP
  92235. .B user
  92236. The user to connect as
  92237. .TP
  92238. .B password
  92239. The password of the user
  92240. .TP
  92241. .B host
  92242. The host to connect to
  92243. .TP
  92244. .B port
  92245. The port to connect to
  92246. .UNINDENT
  92247. .sp
  92248. CLI Example:
  92249. .INDENT 7.0
  92250. .INDENT 3.5
  92251. .sp
  92252. .nf
  92253. .ft C
  92254. salt \(aq*\(aq influxdb08.db_create <name>
  92255. salt \(aq*\(aq influxdb08.db_create <name> <user> <password> <host> <port>
  92256. .ft P
  92257. .fi
  92258. .UNINDENT
  92259. .UNINDENT
  92260. .UNINDENT
  92261. .INDENT 0.0
  92262. .TP
  92263. .B salt.modules.influxdb08mod.db_exists(name, user=None, password=None, host=None, port=None)
  92264. Checks if a database exists in Influxdb
  92265. .INDENT 7.0
  92266. .TP
  92267. .B name
  92268. Database name to create
  92269. .TP
  92270. .B user
  92271. The user to connect as
  92272. .TP
  92273. .B password
  92274. The password of the user
  92275. .TP
  92276. .B host
  92277. The host to connect to
  92278. .TP
  92279. .B port
  92280. The port to connect to
  92281. .UNINDENT
  92282. .sp
  92283. CLI Example:
  92284. .INDENT 7.0
  92285. .INDENT 3.5
  92286. .sp
  92287. .nf
  92288. .ft C
  92289. salt \(aq*\(aq influxdb08.db_exists <name>
  92290. salt \(aq*\(aq influxdb08.db_exists <name> <user> <password> <host> <port>
  92291. .ft P
  92292. .fi
  92293. .UNINDENT
  92294. .UNINDENT
  92295. .UNINDENT
  92296. .INDENT 0.0
  92297. .TP
  92298. .B salt.modules.influxdb08mod.db_list(user=None, password=None, host=None, port=None)
  92299. List all InfluxDB databases
  92300. .INDENT 7.0
  92301. .TP
  92302. .B user
  92303. The user to connect as
  92304. .TP
  92305. .B password
  92306. The password of the user
  92307. .TP
  92308. .B host
  92309. The host to connect to
  92310. .TP
  92311. .B port
  92312. The port to connect to
  92313. .UNINDENT
  92314. .sp
  92315. CLI Example:
  92316. .INDENT 7.0
  92317. .INDENT 3.5
  92318. .sp
  92319. .nf
  92320. .ft C
  92321. salt \(aq*\(aq influxdb08.db_list
  92322. salt \(aq*\(aq influxdb08.db_list <user> <password> <host> <port>
  92323. .ft P
  92324. .fi
  92325. .UNINDENT
  92326. .UNINDENT
  92327. .UNINDENT
  92328. .INDENT 0.0
  92329. .TP
  92330. .B salt.modules.influxdb08mod.db_remove(name, user=None, password=None, host=None, port=None)
  92331. Remove a database
  92332. .INDENT 7.0
  92333. .TP
  92334. .B name
  92335. Database name to remove
  92336. .TP
  92337. .B user
  92338. The user to connect as
  92339. .TP
  92340. .B password
  92341. The password of the user
  92342. .TP
  92343. .B host
  92344. The host to connect to
  92345. .TP
  92346. .B port
  92347. The port to connect to
  92348. .UNINDENT
  92349. .sp
  92350. CLI Example:
  92351. .INDENT 7.0
  92352. .INDENT 3.5
  92353. .sp
  92354. .nf
  92355. .ft C
  92356. salt \(aq*\(aq influxdb08.db_remove <name>
  92357. salt \(aq*\(aq influxdb08.db_remove <name> <user> <password> <host> <port>
  92358. .ft P
  92359. .fi
  92360. .UNINDENT
  92361. .UNINDENT
  92362. .UNINDENT
  92363. .INDENT 0.0
  92364. .TP
  92365. .B salt.modules.influxdb08mod.login_test(name, password, database=None, host=None, port=None)
  92366. Checks if a credential pair can log in at all.
  92367. .sp
  92368. If a database is specified: it will check for database user existence.
  92369. If a database is not specified: it will check for cluster admin existence.
  92370. .INDENT 7.0
  92371. .TP
  92372. .B name
  92373. The user to connect as
  92374. .TP
  92375. .B password
  92376. The password of the user
  92377. .TP
  92378. .B database
  92379. The database to try to log in to
  92380. .TP
  92381. .B host
  92382. The host to connect to
  92383. .TP
  92384. .B port
  92385. The port to connect to
  92386. .UNINDENT
  92387. .sp
  92388. CLI Example:
  92389. .INDENT 7.0
  92390. .INDENT 3.5
  92391. .sp
  92392. .nf
  92393. .ft C
  92394. salt \(aq*\(aq influxdb08.login_test <name>
  92395. salt \(aq*\(aq influxdb08.login_test <name> <database>
  92396. salt \(aq*\(aq influxdb08.login_test <name> <database> <user> <password> <host> <port>
  92397. .ft P
  92398. .fi
  92399. .UNINDENT
  92400. .UNINDENT
  92401. .UNINDENT
  92402. .INDENT 0.0
  92403. .TP
  92404. .B salt.modules.influxdb08mod.query(database, query, time_precision=u\(aqs\(aq, chunked=False, user=None, password=None, host=None, port=None)
  92405. Querying data
  92406. .INDENT 7.0
  92407. .TP
  92408. .B database
  92409. The database to query
  92410. .TP
  92411. .B query
  92412. Query to be executed
  92413. .TP
  92414. .B time_precision
  92415. Time precision to use (\(aqs\(aq, \(aqm\(aq, or \(aqu\(aq)
  92416. .TP
  92417. .B chunked
  92418. Whether is chunked or not
  92419. .TP
  92420. .B user
  92421. The user to connect as
  92422. .TP
  92423. .B password
  92424. The password of the user
  92425. .TP
  92426. .B host
  92427. The host to connect to
  92428. .TP
  92429. .B port
  92430. The port to connect to
  92431. .UNINDENT
  92432. .sp
  92433. CLI Example:
  92434. .INDENT 7.0
  92435. .INDENT 3.5
  92436. .sp
  92437. .nf
  92438. .ft C
  92439. salt \(aq*\(aq influxdb08.query <database> <query>
  92440. salt \(aq*\(aq influxdb08.query <database> <query> <time_precision> <chunked> <user> <password> <host> <port>
  92441. .ft P
  92442. .fi
  92443. .UNINDENT
  92444. .UNINDENT
  92445. .UNINDENT
  92446. .INDENT 0.0
  92447. .TP
  92448. .B salt.modules.influxdb08mod.retention_policy_add(database, name, duration, replication, default=False, user=None, password=None, host=None, port=None)
  92449. Add a retention policy.
  92450. .INDENT 7.0
  92451. .TP
  92452. .B database
  92453. The database to operate on.
  92454. .TP
  92455. .B name
  92456. Name of the policy to modify.
  92457. .TP
  92458. .B duration
  92459. How long InfluxDB keeps the data.
  92460. .TP
  92461. .B replication
  92462. How many copies of the data are stored in the cluster.
  92463. .TP
  92464. .B default
  92465. Whether this policy should be the default or not. Default is False.
  92466. .UNINDENT
  92467. .sp
  92468. CLI Example:
  92469. .INDENT 7.0
  92470. .INDENT 3.5
  92471. .sp
  92472. .nf
  92473. .ft C
  92474. salt \(aq*\(aq influxdb.retention_policy_add metrics default 1d 1
  92475. .ft P
  92476. .fi
  92477. .UNINDENT
  92478. .UNINDENT
  92479. .UNINDENT
  92480. .INDENT 0.0
  92481. .TP
  92482. .B salt.modules.influxdb08mod.retention_policy_alter(database, name, duration, replication, default=False, user=None, password=None, host=None, port=None)
  92483. Modify an existing retention policy.
  92484. .INDENT 7.0
  92485. .TP
  92486. .B database
  92487. The database to operate on.
  92488. .TP
  92489. .B name
  92490. Name of the policy to modify.
  92491. .TP
  92492. .B duration
  92493. How long InfluxDB keeps the data.
  92494. .TP
  92495. .B replication
  92496. How many copies of the data are stored in the cluster.
  92497. .TP
  92498. .B default
  92499. Whether this policy should be the default or not. Default is False.
  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.retention_policy_modify metrics default 1d 1
  92509. .ft P
  92510. .fi
  92511. .UNINDENT
  92512. .UNINDENT
  92513. .UNINDENT
  92514. .INDENT 0.0
  92515. .TP
  92516. .B salt.modules.influxdb08mod.retention_policy_exists(database, name, user=None, password=None, host=None, port=None)
  92517. Check if a retention policy exists.
  92518. .INDENT 7.0
  92519. .TP
  92520. .B database
  92521. The database to operate on.
  92522. .TP
  92523. .B name
  92524. Name of the policy to modify.
  92525. .UNINDENT
  92526. .sp
  92527. CLI Example:
  92528. .INDENT 7.0
  92529. .INDENT 3.5
  92530. .sp
  92531. .nf
  92532. .ft C
  92533. salt \(aq*\(aq influxdb08.retention_policy_exists metrics default
  92534. .ft P
  92535. .fi
  92536. .UNINDENT
  92537. .UNINDENT
  92538. .UNINDENT
  92539. .INDENT 0.0
  92540. .TP
  92541. .B salt.modules.influxdb08mod.retention_policy_get(database, name, user=None, password=None, host=None, port=None)
  92542. Get an existing retention policy.
  92543. .INDENT 7.0
  92544. .TP
  92545. .B database
  92546. The database to operate on.
  92547. .TP
  92548. .B name
  92549. Name of the policy to modify.
  92550. .UNINDENT
  92551. .sp
  92552. CLI Example:
  92553. .INDENT 7.0
  92554. .INDENT 3.5
  92555. .sp
  92556. .nf
  92557. .ft C
  92558. salt \(aq*\(aq influxdb08.retention_policy_get metrics default
  92559. .ft P
  92560. .fi
  92561. .UNINDENT
  92562. .UNINDENT
  92563. .UNINDENT
  92564. .INDENT 0.0
  92565. .TP
  92566. .B salt.modules.influxdb08mod.user_chpass(name, passwd, database=None, user=None, password=None, host=None, port=None)
  92567. Change password for a cluster admin or a database user.
  92568. .sp
  92569. If a database is specified: it will update database user password.
  92570. If a database is not specified: it will update cluster admin password.
  92571. .INDENT 7.0
  92572. .TP
  92573. .B name
  92574. User name for whom to change the password
  92575. .TP
  92576. .B passwd
  92577. New password
  92578. .TP
  92579. .B database
  92580. The database on which to operate
  92581. .TP
  92582. .B user
  92583. The user to connect as
  92584. .TP
  92585. .B password
  92586. The password of the user
  92587. .TP
  92588. .B host
  92589. The host to connect to
  92590. .TP
  92591. .B port
  92592. The port to connect to
  92593. .UNINDENT
  92594. .sp
  92595. CLI Example:
  92596. .INDENT 7.0
  92597. .INDENT 3.5
  92598. .sp
  92599. .nf
  92600. .ft C
  92601. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd>
  92602. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd> <database>
  92603. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd> <database> <user> <password> <host> <port>
  92604. .ft P
  92605. .fi
  92606. .UNINDENT
  92607. .UNINDENT
  92608. .UNINDENT
  92609. .INDENT 0.0
  92610. .TP
  92611. .B salt.modules.influxdb08mod.user_create(name, passwd, database=None, user=None, password=None, host=None, port=None)
  92612. Create a cluster admin or a database user.
  92613. .sp
  92614. If a database is specified: it will create database user.
  92615. If a database is not specified: it will create a cluster admin.
  92616. .INDENT 7.0
  92617. .TP
  92618. .B name
  92619. User name for the new user to create
  92620. .TP
  92621. .B passwd
  92622. Password for the new user to create
  92623. .TP
  92624. .B database
  92625. The database to create the user in
  92626. .TP
  92627. .B user
  92628. The user to connect as
  92629. .TP
  92630. .B password
  92631. The password of the user
  92632. .TP
  92633. .B host
  92634. The host to connect to
  92635. .TP
  92636. .B port
  92637. The port to connect to
  92638. .UNINDENT
  92639. .sp
  92640. CLI Example:
  92641. .INDENT 7.0
  92642. .INDENT 3.5
  92643. .sp
  92644. .nf
  92645. .ft C
  92646. salt \(aq*\(aq influxdb08.user_create <name> <passwd>
  92647. salt \(aq*\(aq influxdb08.user_create <name> <passwd> <database>
  92648. salt \(aq*\(aq influxdb08.user_create <name> <passwd> <database> <user> <password> <host> <port>
  92649. .ft P
  92650. .fi
  92651. .UNINDENT
  92652. .UNINDENT
  92653. .UNINDENT
  92654. .INDENT 0.0
  92655. .TP
  92656. .B salt.modules.influxdb08mod.user_exists(name, database=None, user=None, password=None, host=None, port=None)
  92657. Checks if a cluster admin or database user exists.
  92658. .sp
  92659. If a database is specified: it will check for database user existence.
  92660. If a database is not specified: it will check for cluster admin existence.
  92661. .INDENT 7.0
  92662. .TP
  92663. .B name
  92664. User name
  92665. .TP
  92666. .B database
  92667. The database to check for the user to exist
  92668. .TP
  92669. .B user
  92670. The user to connect as
  92671. .TP
  92672. .B password
  92673. The password of the user
  92674. .TP
  92675. .B host
  92676. The host to connect to
  92677. .TP
  92678. .B port
  92679. The port to connect to
  92680. .UNINDENT
  92681. .sp
  92682. CLI Example:
  92683. .INDENT 7.0
  92684. .INDENT 3.5
  92685. .sp
  92686. .nf
  92687. .ft C
  92688. salt \(aq*\(aq influxdb08.user_exists <name>
  92689. salt \(aq*\(aq influxdb08.user_exists <name> <database>
  92690. salt \(aq*\(aq influxdb08.user_exists <name> <database> <user> <password> <host> <port>
  92691. .ft P
  92692. .fi
  92693. .UNINDENT
  92694. .UNINDENT
  92695. .UNINDENT
  92696. .INDENT 0.0
  92697. .TP
  92698. .B salt.modules.influxdb08mod.user_list(database=None, user=None, password=None, host=None, port=None)
  92699. List cluster admins or database users.
  92700. .sp
  92701. If a database is specified: it will return database users list.
  92702. If a database is not specified: it will return cluster admins list.
  92703. .INDENT 7.0
  92704. .TP
  92705. .B database
  92706. The database to list the users from
  92707. .TP
  92708. .B user
  92709. The user to connect as
  92710. .TP
  92711. .B password
  92712. The password of the user
  92713. .TP
  92714. .B host
  92715. The host to connect to
  92716. .TP
  92717. .B port
  92718. The port to connect to
  92719. .UNINDENT
  92720. .sp
  92721. CLI Example:
  92722. .INDENT 7.0
  92723. .INDENT 3.5
  92724. .sp
  92725. .nf
  92726. .ft C
  92727. salt \(aq*\(aq influxdb08.user_list
  92728. salt \(aq*\(aq influxdb08.user_list <database>
  92729. salt \(aq*\(aq influxdb08.user_list <database> <user> <password> <host> <port>
  92730. .ft P
  92731. .fi
  92732. .UNINDENT
  92733. .UNINDENT
  92734. .UNINDENT
  92735. .INDENT 0.0
  92736. .TP
  92737. .B salt.modules.influxdb08mod.user_remove(name, database=None, user=None, password=None, host=None, port=None)
  92738. Remove a cluster admin or a database user.
  92739. .sp
  92740. If a database is specified: it will remove the database user.
  92741. If a database is not specified: it will remove the cluster admin.
  92742. .INDENT 7.0
  92743. .TP
  92744. .B name
  92745. User name to remove
  92746. .TP
  92747. .B database
  92748. The database to remove the user from
  92749. .TP
  92750. .B user
  92751. User name for the new user to delete
  92752. .TP
  92753. .B user
  92754. The user to connect as
  92755. .TP
  92756. .B password
  92757. The password of the user
  92758. .TP
  92759. .B host
  92760. The host to connect to
  92761. .TP
  92762. .B port
  92763. The port to connect to
  92764. .UNINDENT
  92765. .sp
  92766. CLI Example:
  92767. .INDENT 7.0
  92768. .INDENT 3.5
  92769. .sp
  92770. .nf
  92771. .ft C
  92772. salt \(aq*\(aq influxdb08.user_remove <name>
  92773. salt \(aq*\(aq influxdb08.user_remove <name> <database>
  92774. salt \(aq*\(aq influxdb08.user_remove <name> <database> <user> <password> <host> <port>
  92775. .ft P
  92776. .fi
  92777. .UNINDENT
  92778. .UNINDENT
  92779. .UNINDENT
  92780. .SS salt.modules.infoblox
  92781. .sp
  92782. This module have been tested on infoblox API v1.2.1,
  92783. other versions of the API are likly workable.
  92784. .INDENT 0.0
  92785. .TP
  92786. .B depends
  92787. libinfoblox, \fI\%https://github.com/steverweber/libinfoblox\fP
  92788. .sp
  92789. libinfoblox can be installed using \fIpip install libinfoblox\fP
  92790. .UNINDENT
  92791. .sp
  92792. API documents can be found on your infoblox server at:
  92793. .INDENT 0.0
  92794. .INDENT 3.5
  92795. \fI\%https://INFOBLOX/wapidoc\fP
  92796. .UNINDENT
  92797. .UNINDENT
  92798. .INDENT 0.0
  92799. .TP
  92800. .B configuration
  92801. The following configuration defaults can be
  92802. defined (pillar or config files \(aq/etc/salt/master.d/infoblox.conf\(aq):
  92803. .INDENT 7.0
  92804. .INDENT 3.5
  92805. .sp
  92806. .nf
  92807. .ft C
  92808. infoblox.config:
  92809. api_sslverify: True
  92810. api_url: \(aqhttps://INFOBLOX/wapi/v1.2.1\(aq
  92811. api_user: \(aqusername\(aq
  92812. api_key: \(aqpassword\(aq
  92813. .ft P
  92814. .fi
  92815. .UNINDENT
  92816. .UNINDENT
  92817. .sp
  92818. Many of the functions accept \fIapi_opts\fP to override the API config.
  92819. .INDENT 7.0
  92820. .INDENT 3.5
  92821. .sp
  92822. .nf
  92823. .ft C
  92824. salt\-call infoblox.get_host name=my.host.com api_url: \(aqhttps://INFOBLOX/wapi/v1.2.1\(aq api_user=admin api_key=passs
  92825. .ft P
  92826. .fi
  92827. .UNINDENT
  92828. .UNINDENT
  92829. .UNINDENT
  92830. .INDENT 0.0
  92831. .TP
  92832. .B salt.modules.infoblox.create_a(data, **api_opts)
  92833. Create A record.
  92834. .sp
  92835. This is a helper function to \fIcreate_object\fP\&.
  92836. See your infoblox API for full \fIdata\fP format.
  92837. .sp
  92838. CLI Example:
  92839. .INDENT 7.0
  92840. .INDENT 3.5
  92841. .sp
  92842. .nf
  92843. .ft C
  92844. salt\-call infoblox.create_a data =
  92845. name: \(aqfastlinux.math.example.ca\(aq
  92846. ipv4addr: \(aq127.0.0.1\(aq
  92847. view: External
  92848. .ft P
  92849. .fi
  92850. .UNINDENT
  92851. .UNINDENT
  92852. .UNINDENT
  92853. .INDENT 0.0
  92854. .TP
  92855. .B salt.modules.infoblox.create_cname(data, **api_opts)
  92856. Create a cname record.
  92857. .sp
  92858. CLI Example:
  92859. .INDENT 7.0
  92860. .INDENT 3.5
  92861. .sp
  92862. .nf
  92863. .ft C
  92864. 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" }
  92865. .ft P
  92866. .fi
  92867. .UNINDENT
  92868. .UNINDENT
  92869. .UNINDENT
  92870. .INDENT 0.0
  92871. .TP
  92872. .B salt.modules.infoblox.create_host(data, **api_opts)
  92873. Add host record
  92874. .sp
  92875. Avoid race conditions, use func:nextavailableip for ipv[4,6]addrs:
  92876. .INDENT 7.0
  92877. .IP \(bu 2
  92878. func:nextavailableip:network/ZG54dfgsrDFEFfsfsLzA:10.0.0.0/8/default
  92879. .IP \(bu 2
  92880. func:nextavailableip:10.0.0.0/8
  92881. .IP \(bu 2
  92882. func:nextavailableip:10.0.0.0/8,external
  92883. .IP \(bu 2
  92884. func:nextavailableip:10.0.0.3\-10.0.0.10
  92885. .UNINDENT
  92886. .sp
  92887. See your infoblox API for full \fIdata\fP format.
  92888. .sp
  92889. CLI Example:
  92890. .INDENT 7.0
  92891. .INDENT 3.5
  92892. .sp
  92893. .nf
  92894. .ft C
  92895. salt\-call infoblox.create_host data =
  92896. {\(aqname\(aq: \(aqhostname.example.ca\(aq,
  92897. \(aqaliases\(aq: [\(aqhostname.math.example.ca\(aq],
  92898. \(aqextattrs\(aq: [{\(aqBusiness Contact\(aq: {\(aqvalue\(aq: \(aqexample@example.ca\(aq}},
  92899. {\(aqPol8 Classification\(aq: {\(aqvalue\(aq: \(aqRestricted\(aq}},
  92900. {\(aqPrimary OU\(aq: {\(aqvalue\(aq: \(aqCS\(aq}},
  92901. {\(aqTechnical Contact\(aq: {\(aqvalue\(aq: \(aqexample@example.ca\(aq}}],
  92902. \(aqipv4addrs\(aq: [{\(aqconfigure_for_dhcp\(aq: True,
  92903. \(aqipv4addr\(aq: \(aqfunc:nextavailableip:129.97.139.0/24\(aq,
  92904. \(aqmac\(aq: \(aq00:50:56:84:6e:ae\(aq}],
  92905. \(aqipv6addrs\(aq: [], }
  92906. .ft P
  92907. .fi
  92908. .UNINDENT
  92909. .UNINDENT
  92910. .UNINDENT
  92911. .INDENT 0.0
  92912. .TP
  92913. .B salt.modules.infoblox.create_ipv4_range(data, **api_opts)
  92914. Create a ipv4 range
  92915. .sp
  92916. This is a helper function to \fIcreate_object\fP
  92917. See your infoblox API for full \fIdata\fP format.
  92918. .sp
  92919. CLI Example:
  92920. .INDENT 7.0
  92921. .INDENT 3.5
  92922. .sp
  92923. .nf
  92924. .ft C
  92925. salt\-call infoblox.create_ipv4_range data={
  92926. start_addr: \(aq129.97.150.160\(aq,
  92927. end_addr: \(aq129.97.150.170\(aq}
  92928. .ft P
  92929. .fi
  92930. .UNINDENT
  92931. .UNINDENT
  92932. .UNINDENT
  92933. .INDENT 0.0
  92934. .TP
  92935. .B salt.modules.infoblox.create_object(object_type, data, **api_opts)
  92936. Create raw infoblox object. This is a low level api call.
  92937. .sp
  92938. CLI Example:
  92939. .INDENT 7.0
  92940. .INDENT 3.5
  92941. .sp
  92942. .nf
  92943. .ft C
  92944. salt\-call infoblox.update_object object_type=record:host data={}
  92945. .ft P
  92946. .fi
  92947. .UNINDENT
  92948. .UNINDENT
  92949. .UNINDENT
  92950. .INDENT 0.0
  92951. .TP
  92952. .B salt.modules.infoblox.delete_a(name=None, ipv4addr=None, allow_array=False, **api_opts)
  92953. Delete A record
  92954. .sp
  92955. If the A record is used as a round robin you can set \fBallow_array=True\fP to
  92956. delete all records for the hostname.
  92957. .sp
  92958. CLI Examples:
  92959. .INDENT 7.0
  92960. .INDENT 3.5
  92961. .sp
  92962. .nf
  92963. .ft C
  92964. salt\-call infoblox.delete_a name=abc.example.com
  92965. salt\-call infoblox.delete_a ipv4addr=192.168.3.5
  92966. salt\-call infoblox.delete_a name=acname.example.com allow_array=True
  92967. .ft P
  92968. .fi
  92969. .UNINDENT
  92970. .UNINDENT
  92971. .UNINDENT
  92972. .INDENT 0.0
  92973. .TP
  92974. .B salt.modules.infoblox.delete_cname(name=None, canonical=None, **api_opts)
  92975. Delete CNAME. This is a helper call to delete_object.
  92976. .sp
  92977. If record is not found, return True
  92978. .sp
  92979. CLI Examples:
  92980. .INDENT 7.0
  92981. .INDENT 3.5
  92982. .sp
  92983. .nf
  92984. .ft C
  92985. salt\-call infoblox.delete_cname name=example.example.com
  92986. salt\-call infoblox.delete_cname canonical=example\-ha\-0.example.com
  92987. .ft P
  92988. .fi
  92989. .UNINDENT
  92990. .UNINDENT
  92991. .UNINDENT
  92992. .INDENT 0.0
  92993. .TP
  92994. .B salt.modules.infoblox.delete_host(name=None, mac=None, ipv4addr=None, **api_opts)
  92995. Delete host
  92996. .sp
  92997. CLI Example:
  92998. .INDENT 7.0
  92999. .INDENT 3.5
  93000. .sp
  93001. .nf
  93002. .ft C
  93003. salt\-call infoblox.delete_host name=example.domain.com
  93004. salt\-call infoblox.delete_host ipv4addr=123.123.122.12
  93005. salt\-call infoblox.delete_host ipv4addr=123.123.122.12 mac=00:50:56:84:6e:ae
  93006. .ft P
  93007. .fi
  93008. .UNINDENT
  93009. .UNINDENT
  93010. .UNINDENT
  93011. .INDENT 0.0
  93012. .TP
  93013. .B salt.modules.infoblox.delete_ipv4_range(start_addr=None, end_addr=None, **api_opts)
  93014. Delete ip range.
  93015. .sp
  93016. CLI Example:
  93017. .INDENT 7.0
  93018. .INDENT 3.5
  93019. .sp
  93020. .nf
  93021. .ft C
  93022. salt\-call infoblox.delete_ipv4_range start_addr=123.123.122.12
  93023. .ft P
  93024. .fi
  93025. .UNINDENT
  93026. .UNINDENT
  93027. .UNINDENT
  93028. .INDENT 0.0
  93029. .TP
  93030. .B salt.modules.infoblox.delete_object(objref, **api_opts)
  93031. Delete infoblox object. This is a low level api call.
  93032. .sp
  93033. CLI Example:
  93034. .INDENT 7.0
  93035. .INDENT 3.5
  93036. .sp
  93037. .nf
  93038. .ft C
  93039. salt\-call infoblox.delete_object objref=[ref_of_object]
  93040. .ft P
  93041. .fi
  93042. .UNINDENT
  93043. .UNINDENT
  93044. .UNINDENT
  93045. .INDENT 0.0
  93046. .TP
  93047. .B salt.modules.infoblox.diff_objects(obja, objb)
  93048. Diff two complex infoblox objects.
  93049. This is used from salt states to detect changes in objects.
  93050. .sp
  93051. Using \fBfunc:nextavailableip\fP will not cause a diff if the ipaddress is in
  93052. range
  93053. .UNINDENT
  93054. .INDENT 0.0
  93055. .TP
  93056. .B salt.modules.infoblox.get_a(name=None, ipv4addr=None, allow_array=True, **api_opts)
  93057. Get A record
  93058. .sp
  93059. CLI Examples:
  93060. .INDENT 7.0
  93061. .INDENT 3.5
  93062. .sp
  93063. .nf
  93064. .ft C
  93065. salt\-call infoblox.get_a name=abc.example.com
  93066. salt\-call infoblox.get_a ipv4addr=192.168.3.5
  93067. .ft P
  93068. .fi
  93069. .UNINDENT
  93070. .UNINDENT
  93071. .UNINDENT
  93072. .INDENT 0.0
  93073. .TP
  93074. .B salt.modules.infoblox.get_cname(name=None, canonical=None, return_fields=None, **api_opts)
  93075. Get CNAME information.
  93076. .sp
  93077. CLI Examples:
  93078. .INDENT 7.0
  93079. .INDENT 3.5
  93080. .sp
  93081. .nf
  93082. .ft C
  93083. salt\-call infoblox.get_cname name=example.example.com
  93084. salt\-call infoblox.get_cname canonical=example\-ha\-0.example.com
  93085. .ft P
  93086. .fi
  93087. .UNINDENT
  93088. .UNINDENT
  93089. .UNINDENT
  93090. .INDENT 0.0
  93091. .TP
  93092. .B salt.modules.infoblox.get_host(name=None, ipv4addr=None, mac=None, return_fields=None, **api_opts)
  93093. Get host information
  93094. .sp
  93095. CLI Examples:
  93096. .INDENT 7.0
  93097. .INDENT 3.5
  93098. .sp
  93099. .nf
  93100. .ft C
  93101. salt\-call infoblox.get_host hostname.domain.ca
  93102. salt\-call infoblox.get_host ipv4addr=123.123.122.12
  93103. salt\-call infoblox.get_host mac=00:50:56:84:6e:ae
  93104. .ft P
  93105. .fi
  93106. .UNINDENT
  93107. .UNINDENT
  93108. .UNINDENT
  93109. .INDENT 0.0
  93110. .TP
  93111. .B salt.modules.infoblox.get_host_advanced(name=None, ipv4addr=None, mac=None, **api_opts)
  93112. Get all host information
  93113. .sp
  93114. CLI Example:
  93115. .INDENT 7.0
  93116. .INDENT 3.5
  93117. .sp
  93118. .nf
  93119. .ft C
  93120. salt\-call infoblox.get_host_advanced hostname.domain.ca
  93121. .ft P
  93122. .fi
  93123. .UNINDENT
  93124. .UNINDENT
  93125. .UNINDENT
  93126. .INDENT 0.0
  93127. .TP
  93128. .B salt.modules.infoblox.get_host_domainname(name, domains=None, **api_opts)
  93129. Get host domain name
  93130. .sp
  93131. If no domains are passed, the hostname is checked for a zone in infoblox,
  93132. if no zone split on first dot.
  93133. .sp
  93134. If domains are provided, the best match out of the list is returned.
  93135. .sp
  93136. If none are found the return is None
  93137. .sp
  93138. dots at end of names are ignored.
  93139. .sp
  93140. CLI Example:
  93141. .INDENT 7.0
  93142. .INDENT 3.5
  93143. .sp
  93144. .nf
  93145. .ft C
  93146. salt\-call uwl.get_host_domainname name=localhost.t.domain.com domains=[\(aqdomain.com\(aq, \(aqt.domain.com.\(aq]
  93147. # returns: t.domain.com
  93148. .ft P
  93149. .fi
  93150. .UNINDENT
  93151. .UNINDENT
  93152. .UNINDENT
  93153. .INDENT 0.0
  93154. .TP
  93155. .B salt.modules.infoblox.get_host_hostname(name, domains=None, **api_opts)
  93156. Get hostname
  93157. .sp
  93158. If no domains are passed, the hostname is checked for a zone in infoblox,
  93159. if no zone split on first dot.
  93160. .sp
  93161. If domains are provided, the best match out of the list is truncated from
  93162. the fqdn leaving the hostname.
  93163. .sp
  93164. If no matching domains are found the fqdn is returned.
  93165. .sp
  93166. dots at end of names are ignored.
  93167. .sp
  93168. CLI Examples:
  93169. .INDENT 7.0
  93170. .INDENT 3.5
  93171. .sp
  93172. .nf
  93173. .ft C
  93174. salt\-call infoblox.get_host_hostname fqdn=localhost.xxx.t.domain.com domains="[\(aqdomain.com\(aq, \(aqt.domain.com\(aq]"
  93175. #returns: localhost.xxx
  93176. salt\-call infoblox.get_host_hostname fqdn=localhost.xxx.t.domain.com
  93177. #returns: localhost
  93178. .ft P
  93179. .fi
  93180. .UNINDENT
  93181. .UNINDENT
  93182. .UNINDENT
  93183. .INDENT 0.0
  93184. .TP
  93185. .B salt.modules.infoblox.get_host_ipv4(name=None, mac=None, allow_array=False, **api_opts)
  93186. Get ipv4 address from host record.
  93187. .sp
  93188. Use \fIallow_array\fP to return possible multiple values.
  93189. .sp
  93190. CLI Examples:
  93191. .INDENT 7.0
  93192. .INDENT 3.5
  93193. .sp
  93194. .nf
  93195. .ft C
  93196. salt\-call infoblox.get_host_ipv4 host=localhost.domain.com
  93197. salt\-call infoblox.get_host_ipv4 mac=00:50:56:84:6e:ae
  93198. .ft P
  93199. .fi
  93200. .UNINDENT
  93201. .UNINDENT
  93202. .UNINDENT
  93203. .INDENT 0.0
  93204. .TP
  93205. .B salt.modules.infoblox.get_host_ipv4addr_info(ipv4addr=None, mac=None, discovered_data=None, return_fields=None, **api_opts)
  93206. Get host ipv4addr information
  93207. .sp
  93208. CLI Examples:
  93209. .INDENT 7.0
  93210. .INDENT 3.5
  93211. .sp
  93212. .nf
  93213. .ft C
  93214. salt\-call infoblox.get_ipv4addr ipv4addr=123.123.122.12
  93215. salt\-call infoblox.get_ipv4addr mac=00:50:56:84:6e:ae
  93216. salt\-call infoblox.get_ipv4addr mac=00:50:56:84:6e:ae return_fields=host return_fields=\(aqmac,host,configure_for_dhcp,ipv4addr\(aq
  93217. .ft P
  93218. .fi
  93219. .UNINDENT
  93220. .UNINDENT
  93221. .UNINDENT
  93222. .INDENT 0.0
  93223. .TP
  93224. .B salt.modules.infoblox.get_host_ipv6addr_info(ipv6addr=None, mac=None, discovered_data=None, return_fields=None, **api_opts)
  93225. Get host ipv6addr information
  93226. .sp
  93227. CLI Example:
  93228. .INDENT 7.0
  93229. .INDENT 3.5
  93230. .sp
  93231. .nf
  93232. .ft C
  93233. salt\-call infoblox.get_host_ipv6addr_info ipv6addr=2001:db8:85a3:8d3:1349:8a2e:370:7348
  93234. .ft P
  93235. .fi
  93236. .UNINDENT
  93237. .UNINDENT
  93238. .UNINDENT
  93239. .INDENT 0.0
  93240. .TP
  93241. .B salt.modules.infoblox.get_host_mac(name=None, allow_array=False, **api_opts)
  93242. Get mac address from host record.
  93243. .sp
  93244. Use \fIallow_array\fP to return possible multiple values.
  93245. .sp
  93246. CLI Example:
  93247. .INDENT 7.0
  93248. .INDENT 3.5
  93249. .sp
  93250. .nf
  93251. .ft C
  93252. salt\-call infoblox.get_host_mac host=localhost.domain.com
  93253. .ft P
  93254. .fi
  93255. .UNINDENT
  93256. .UNINDENT
  93257. .UNINDENT
  93258. .INDENT 0.0
  93259. .TP
  93260. .B salt.modules.infoblox.get_ipv4_range(start_addr=None, end_addr=None, return_fields=None, **api_opts)
  93261. Get ip range
  93262. .sp
  93263. CLI Example:
  93264. .INDENT 7.0
  93265. .INDENT 3.5
  93266. .sp
  93267. .nf
  93268. .ft C
  93269. salt\-call infoblox.get_ipv4_range start_addr=123.123.122.12
  93270. .ft P
  93271. .fi
  93272. .UNINDENT
  93273. .UNINDENT
  93274. .UNINDENT
  93275. .INDENT 0.0
  93276. .TP
  93277. .B salt.modules.infoblox.get_network(ipv4addr=None, network=None, return_fields=None, **api_opts)
  93278. Get list of all networks. This is helpful when looking up subnets to use
  93279. with func:nextavailableip
  93280. .sp
  93281. This call is offen slow and not cached!
  93282. .sp
  93283. some return_fields
  93284. comment,network,network_view,ddns_domainname,disable,enable_ddns
  93285. .sp
  93286. CLI Example:
  93287. .INDENT 7.0
  93288. .INDENT 3.5
  93289. .sp
  93290. .nf
  93291. .ft C
  93292. salt\-call infoblox.get_network
  93293. .ft P
  93294. .fi
  93295. .UNINDENT
  93296. .UNINDENT
  93297. .UNINDENT
  93298. .INDENT 0.0
  93299. .TP
  93300. .B salt.modules.infoblox.get_object(objref, data=None, return_fields=None, max_results=None, ensure_none_or_one_result=False, **api_opts)
  93301. Get raw infoblox object. This is a low level api call.
  93302. .sp
  93303. CLI Example:
  93304. .INDENT 7.0
  93305. .INDENT 3.5
  93306. .sp
  93307. .nf
  93308. .ft C
  93309. salt\-call infoblox.get_object objref=[_ref of object]
  93310. .ft P
  93311. .fi
  93312. .UNINDENT
  93313. .UNINDENT
  93314. .UNINDENT
  93315. .INDENT 0.0
  93316. .TP
  93317. .B salt.modules.infoblox.is_ipaddr_in_ipfunc_range(ipaddr, ipfunc)
  93318. Return true if the ipaddress is in the range of the nextavailableip function
  93319. .sp
  93320. CLI Example:
  93321. .INDENT 7.0
  93322. .INDENT 3.5
  93323. .sp
  93324. .nf
  93325. .ft C
  93326. salt\-call infoblox.is_ipaddr_in_ipfunc_range ipaddr="10.0.2.2" ipfunc="func:nextavailableip:10.0.0.0/8"
  93327. .ft P
  93328. .fi
  93329. .UNINDENT
  93330. .UNINDENT
  93331. .UNINDENT
  93332. .INDENT 0.0
  93333. .TP
  93334. .B salt.modules.infoblox.update_cname(name, data, **api_opts)
  93335. Update CNAME. This is a helper call to update_object.
  93336. .sp
  93337. Find a CNAME \fB_ref\fP then call update_object with the record data.
  93338. .sp
  93339. CLI Example:
  93340. .INDENT 7.0
  93341. .INDENT 3.5
  93342. .sp
  93343. .nf
  93344. .ft C
  93345. salt\-call infoblox.update_cname name=example.example.com data="{
  93346. \(aqcanonical\(aq:\(aqexample\-ha\-0.example.com\(aq,
  93347. \(aquse_ttl\(aq:true,
  93348. \(aqttl\(aq:200,
  93349. \(aqcomment\(aq:\(aqSalt managed CNAME\(aq}"
  93350. .ft P
  93351. .fi
  93352. .UNINDENT
  93353. .UNINDENT
  93354. .UNINDENT
  93355. .INDENT 0.0
  93356. .TP
  93357. .B salt.modules.infoblox.update_host(name, data, **api_opts)
  93358. Update host record. This is a helper call to update_object.
  93359. .sp
  93360. Find a hosts \fB_ref\fP then call update_object with the record data.
  93361. .sp
  93362. CLI Example:
  93363. .INDENT 7.0
  93364. .INDENT 3.5
  93365. .sp
  93366. .nf
  93367. .ft C
  93368. salt\-call infoblox.update_host name=fqdn data={}
  93369. .ft P
  93370. .fi
  93371. .UNINDENT
  93372. .UNINDENT
  93373. .UNINDENT
  93374. .INDENT 0.0
  93375. .TP
  93376. .B salt.modules.infoblox.update_object(objref, data, **api_opts)
  93377. Update raw infoblox object. This is a low level api call.
  93378. .sp
  93379. CLI Example:
  93380. .INDENT 7.0
  93381. .INDENT 3.5
  93382. .sp
  93383. .nf
  93384. .ft C
  93385. salt\-call infoblox.update_object objref=[ref_of_object] data={}
  93386. .ft P
  93387. .fi
  93388. .UNINDENT
  93389. .UNINDENT
  93390. .UNINDENT
  93391. .SS salt.modules.introspect
  93392. .sp
  93393. Functions to perform introspection on a minion, and return data in a format
  93394. usable by Salt States
  93395. .INDENT 0.0
  93396. .TP
  93397. .B salt.modules.introspect.enabled_service_owners()
  93398. Return which packages own each of the services that are currently enabled.
  93399. .sp
  93400. CLI Example:
  93401. .INDENT 7.0
  93402. .INDENT 3.5
  93403. salt myminion introspect.enabled_service_owners
  93404. .UNINDENT
  93405. .UNINDENT
  93406. .UNINDENT
  93407. .INDENT 0.0
  93408. .TP
  93409. .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))
  93410. Determine which packages own the currently running services. By default,
  93411. excludes files whose full path starts with \fB/dev\fP, \fB/home\fP, \fB/media\fP,
  93412. \fB/proc\fP, \fB/run\fP, \fB/sys\fP, \fB/tmp\fP and \fB/var\fP\&. This can be
  93413. overridden by passing in a new list to \fBexclude\fP\&.
  93414. .sp
  93415. CLI Example:
  93416. .INDENT 7.0
  93417. .INDENT 3.5
  93418. salt myminion introspect.running_service_owners
  93419. .UNINDENT
  93420. .UNINDENT
  93421. .UNINDENT
  93422. .INDENT 0.0
  93423. .TP
  93424. .B salt.modules.introspect.service_highstate(requires=True)
  93425. Return running and enabled services in a highstate structure. By default
  93426. also returns package dependencies for those services, which means that
  93427. package definitions must be created outside this function. To drop the
  93428. package dependencies, set \fBrequires\fP to False.
  93429. .sp
  93430. CLI Example:
  93431. .INDENT 7.0
  93432. .INDENT 3.5
  93433. salt myminion introspect.service_highstate
  93434. salt myminion introspect.service_highstate requires=False
  93435. .UNINDENT
  93436. .UNINDENT
  93437. .UNINDENT
  93438. .SS salt.modules.ipmi
  93439. .sp
  93440. Support IPMI commands over LAN. This module does not talk to the local
  93441. systems hardware through IPMI drivers. It uses a python module \fIpyghmi\fP\&.
  93442. .INDENT 0.0
  93443. .TP
  93444. .B depends
  93445. Python module pyghmi.
  93446. You can install pyghmi using pip:
  93447. .INDENT 7.0
  93448. .INDENT 3.5
  93449. .sp
  93450. .nf
  93451. .ft C
  93452. pip install pyghmi
  93453. .ft P
  93454. .fi
  93455. .UNINDENT
  93456. .UNINDENT
  93457. .TP
  93458. .B configuration
  93459. The following configuration defaults can be
  93460. define (pillar or config files):
  93461. .INDENT 7.0
  93462. .INDENT 3.5
  93463. .sp
  93464. .nf
  93465. .ft C
  93466. ipmi.config:
  93467. api_host: 127.0.0.1
  93468. api_user: admin
  93469. api_pass: apassword
  93470. api_port: 623
  93471. api_kg: None
  93472. .ft P
  93473. .fi
  93474. .UNINDENT
  93475. .UNINDENT
  93476. .sp
  93477. Usage can override the config defaults:
  93478. .INDENT 7.0
  93479. .INDENT 3.5
  93480. .sp
  93481. .nf
  93482. .ft C
  93483. salt\-call ipmi.get_user api_host=myipmienabled.system
  93484. api_user=admin api_pass=pass
  93485. uid=1
  93486. .ft P
  93487. .fi
  93488. .UNINDENT
  93489. .UNINDENT
  93490. .UNINDENT
  93491. .INDENT 0.0
  93492. .TP
  93493. .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)
  93494. create/ensure a user is created with provided settings.
  93495. .INDENT 7.0
  93496. .TP
  93497. .B Parameters
  93498. .INDENT 7.0
  93499. .IP \(bu 2
  93500. \fBprivilege_level\fP \-\- User Privilege Limit. (Determines the maximum privilege level that
  93501. the user is allowed to switch to on the specified channel.)
  93502. * callback
  93503. * user
  93504. * operator
  93505. * administrator
  93506. * proprietary
  93507. * no_access
  93508. .IP \(bu 2
  93509. \fBkwargs\fP \-\- .INDENT 2.0
  93510. .IP \(bu 2
  93511. api_host=127.0.0.1
  93512. .IP \(bu 2
  93513. api_user=admin
  93514. .IP \(bu 2
  93515. api_pass=example
  93516. .IP \(bu 2
  93517. api_port=623
  93518. .IP \(bu 2
  93519. api_kg=None
  93520. .UNINDENT
  93521. .UNINDENT
  93522. .UNINDENT
  93523. .sp
  93524. CLI Examples:
  93525. .INDENT 7.0
  93526. .INDENT 3.5
  93527. .sp
  93528. .nf
  93529. .ft C
  93530. salt\-call ipmi.create_user uid=2 name=steverweber api_host=172.168.0.7 api_pass=nevertell
  93531. .ft P
  93532. .fi
  93533. .UNINDENT
  93534. .UNINDENT
  93535. .UNINDENT
  93536. .INDENT 0.0
  93537. .TP
  93538. .B salt.modules.ipmi.fast_connect_test(**kwargs)
  93539. Returns True if connection success.
  93540. This uses an aggressive timeout value!
  93541. .INDENT 7.0
  93542. .TP
  93543. .B Parameters
  93544. \fBkwargs\fP \-\- .INDENT 7.0
  93545. .IP \(bu 2
  93546. api_host=127.0.0.1
  93547. .IP \(bu 2
  93548. api_user=admin
  93549. .IP \(bu 2
  93550. api_pass=example
  93551. .IP \(bu 2
  93552. api_port=623
  93553. .IP \(bu 2
  93554. api_kg=None
  93555. .UNINDENT
  93556. .UNINDENT
  93557. .sp
  93558. CLI Examples:
  93559. .INDENT 7.0
  93560. .INDENT 3.5
  93561. .sp
  93562. .nf
  93563. .ft C
  93564. salt\-call ipmi.fast_connect_test api_host=172.168.0.9
  93565. .ft P
  93566. .fi
  93567. .UNINDENT
  93568. .UNINDENT
  93569. .UNINDENT
  93570. .INDENT 0.0
  93571. .TP
  93572. .B salt.modules.ipmi.get_bootdev(**kwargs)
  93573. Get current boot device override information.
  93574. .sp
  93575. Provides the current requested boot device. Be aware that not all IPMI
  93576. devices support this. Even in BMCs that claim to, occasionally the
  93577. BIOS or UEFI fail to honor it. This is usually only applicable to the
  93578. next reboot.
  93579. .INDENT 7.0
  93580. .TP
  93581. .B Parameters
  93582. \fBkwargs\fP \-\- .INDENT 7.0
  93583. .IP \(bu 2
  93584. api_host=127.0.0.1
  93585. .IP \(bu 2
  93586. api_user=admin
  93587. .IP \(bu 2
  93588. api_pass=example
  93589. .IP \(bu 2
  93590. api_port=623
  93591. .IP \(bu 2
  93592. api_kg=None
  93593. .UNINDENT
  93594. .UNINDENT
  93595. .sp
  93596. CLI Example:
  93597. .INDENT 7.0
  93598. .INDENT 3.5
  93599. .sp
  93600. .nf
  93601. .ft C
  93602. salt\-call ipmi.get_bootdev api_host=127.0.0.1 api_user=admin api_pass=pass
  93603. .ft P
  93604. .fi
  93605. .UNINDENT
  93606. .UNINDENT
  93607. .UNINDENT
  93608. .INDENT 0.0
  93609. .TP
  93610. .B salt.modules.ipmi.get_channel_access(channel=14, read_mode=u\(aqnon_volatile\(aq, **kwargs)
  93611. :param kwargs:api_host=\(aq127.0.0.1\(aq api_user=\(aqadmin\(aq api_pass=\(aqexample\(aq api_port=623
  93612. .INDENT 7.0
  93613. .TP
  93614. .B Parameters
  93615. .INDENT 7.0
  93616. .IP \(bu 2
  93617. \fBchannel\fP \-\- number [1:7]
  93618. .IP \(bu 2
  93619. \fBread_mode\fP \-\- .INDENT 2.0
  93620. .IP \(bu 2
  93621. non_volatile = get non\-volatile Channel Access
  93622. .IP \(bu 2
  93623. volatile = get present volatile (active) setting of Channel Access
  93624. .UNINDENT
  93625. .IP \(bu 2
  93626. \fBkwargs\fP \-\- .INDENT 2.0
  93627. .IP \(bu 2
  93628. api_host=127.0.0.1
  93629. .IP \(bu 2
  93630. api_user=admin
  93631. .IP \(bu 2
  93632. api_pass=example
  93633. .IP \(bu 2
  93634. api_port=623
  93635. .IP \(bu 2
  93636. api_kg=None
  93637. .UNINDENT
  93638. .UNINDENT
  93639. .UNINDENT
  93640. .sp
  93641. Return Data
  93642. .INDENT 7.0
  93643. .INDENT 3.5
  93644. A Python dict with the following keys/values:
  93645. .INDENT 0.0
  93646. .INDENT 3.5
  93647. .sp
  93648. .nf
  93649. .ft C
  93650. {
  93651. alerting:
  93652. per_msg_auth:
  93653. user_level_auth:
  93654. access_mode:{ (ONE OF)
  93655. 0: \(aqdisabled\(aq,
  93656. 1: \(aqpre_boot\(aq,
  93657. 2: \(aqalways\(aq,
  93658. 3: \(aqshared\(aq
  93659. }
  93660. privilege_level: { (ONE OF)
  93661. 1: \(aqcallback\(aq,
  93662. 2: \(aquser\(aq,
  93663. 3: \(aqoperator\(aq,
  93664. 4: \(aqadministrator\(aq,
  93665. 5: \(aqproprietary\(aq,
  93666. }
  93667. }
  93668. .ft P
  93669. .fi
  93670. .UNINDENT
  93671. .UNINDENT
  93672. .UNINDENT
  93673. .UNINDENT
  93674. .sp
  93675. CLI Examples:
  93676. .INDENT 7.0
  93677. .INDENT 3.5
  93678. .sp
  93679. .nf
  93680. .ft C
  93681. salt\-call ipmi.get_channel_access channel=1
  93682. .ft P
  93683. .fi
  93684. .UNINDENT
  93685. .UNINDENT
  93686. .UNINDENT
  93687. .INDENT 0.0
  93688. .TP
  93689. .B salt.modules.ipmi.get_channel_info(channel=14, **kwargs)
  93690. Get channel info
  93691. .INDENT 7.0
  93692. .TP
  93693. .B Parameters
  93694. .INDENT 7.0
  93695. .IP \(bu 2
  93696. \fBchannel\fP \-\- number [1:7]
  93697. .IP \(bu 2
  93698. \fBkwargs\fP \-\- .INDENT 2.0
  93699. .IP \(bu 2
  93700. api_host=127.0.0.1
  93701. .IP \(bu 2
  93702. api_user=admin
  93703. .IP \(bu 2
  93704. api_pass=example
  93705. .IP \(bu 2
  93706. api_port=623
  93707. .IP \(bu 2
  93708. api_kg=None
  93709. .UNINDENT
  93710. .UNINDENT
  93711. .UNINDENT
  93712. .INDENT 7.0
  93713. .TP
  93714. .B Return Data
  93715. channel session supports
  93716. .INDENT 7.0
  93717. .INDENT 3.5
  93718. .sp
  93719. .nf
  93720. .ft C
  93721. \- no_session: channel is session\-less
  93722. \- single: channel is single\-session
  93723. \- multi: channel is multi\-session
  93724. \- auto: channel is session\-based (channel could alternate between
  93725. single\- and multi\-session operation, as can occur with a
  93726. serial/modem channel that supports connection mode auto\-detect)
  93727. .ft P
  93728. .fi
  93729. .UNINDENT
  93730. .UNINDENT
  93731. .UNINDENT
  93732. .sp
  93733. CLI Examples:
  93734. .INDENT 7.0
  93735. .INDENT 3.5
  93736. .sp
  93737. .nf
  93738. .ft C
  93739. salt\-call ipmi.get_channel_info
  93740. .ft P
  93741. .fi
  93742. .UNINDENT
  93743. .UNINDENT
  93744. .UNINDENT
  93745. .INDENT 0.0
  93746. .TP
  93747. .B salt.modules.ipmi.get_channel_max_user_count(channel=14, **kwargs)
  93748. Get max users in channel
  93749. .INDENT 7.0
  93750. .TP
  93751. .B Parameters
  93752. .INDENT 7.0
  93753. .IP \(bu 2
  93754. \fBchannel\fP \-\- number [1:7]
  93755. .IP \(bu 2
  93756. \fBkwargs\fP \-\- .INDENT 2.0
  93757. .IP \(bu 2
  93758. api_host=127.0.0.1
  93759. .IP \(bu 2
  93760. api_user=admin
  93761. .IP \(bu 2
  93762. api_pass=example
  93763. .IP \(bu 2
  93764. api_port=623
  93765. .IP \(bu 2
  93766. api_kg=None
  93767. .UNINDENT
  93768. .UNINDENT
  93769. .TP
  93770. .B Returns
  93771. int \-\- often 16
  93772. .UNINDENT
  93773. .sp
  93774. CLI Examples:
  93775. .INDENT 7.0
  93776. .INDENT 3.5
  93777. .sp
  93778. .nf
  93779. .ft C
  93780. salt\-call ipmi.get_channel_max_user_count
  93781. .ft P
  93782. .fi
  93783. .UNINDENT
  93784. .UNINDENT
  93785. .UNINDENT
  93786. .INDENT 0.0
  93787. .TP
  93788. .B salt.modules.ipmi.get_health(**kwargs)
  93789. Get Summarize health
  93790. .sp
  93791. This provides a summary of the health of the managed system.
  93792. It additionally provides an iterable list of reasons for
  93793. warning, critical, or failed assessments.
  93794. .sp
  93795. good health: {\(aqbadreadings\(aq: [], \(aqhealth\(aq: 0}
  93796. .INDENT 7.0
  93797. .TP
  93798. .B Parameters
  93799. \fBkwargs\fP \-\- .INDENT 7.0
  93800. .IP \(bu 2
  93801. api_host=127.0.0.1
  93802. .IP \(bu 2
  93803. api_user=admin
  93804. .IP \(bu 2
  93805. api_pass=example
  93806. .IP \(bu 2
  93807. api_port=623
  93808. .IP \(bu 2
  93809. api_kg=None
  93810. .UNINDENT
  93811. .UNINDENT
  93812. .sp
  93813. CLI Example:
  93814. .INDENT 7.0
  93815. .INDENT 3.5
  93816. .sp
  93817. .nf
  93818. .ft C
  93819. salt\-call ipmi.get_health api_host=127.0.0.1 api_user=admin api_pass=pass
  93820. .ft P
  93821. .fi
  93822. .UNINDENT
  93823. .UNINDENT
  93824. .UNINDENT
  93825. .INDENT 0.0
  93826. .TP
  93827. .B salt.modules.ipmi.get_power(**kwargs)
  93828. Get current power state
  93829. .sp
  93830. The response, if successful, should contain \(aqpowerstate\(aq key and
  93831. either \(aqon\(aq or \(aqoff\(aq to indicate current state.
  93832. .INDENT 7.0
  93833. .TP
  93834. .B Parameters
  93835. \fBkwargs\fP \-\- .INDENT 7.0
  93836. .IP \(bu 2
  93837. api_host=127.0.0.1
  93838. .IP \(bu 2
  93839. api_user=admin
  93840. .IP \(bu 2
  93841. api_pass=example
  93842. .IP \(bu 2
  93843. api_port=623
  93844. .IP \(bu 2
  93845. api_kg=None
  93846. .UNINDENT
  93847. .UNINDENT
  93848. .sp
  93849. CLI Example:
  93850. .INDENT 7.0
  93851. .INDENT 3.5
  93852. .sp
  93853. .nf
  93854. .ft C
  93855. salt\-call ipmi.get_power api_host=127.0.0.1 api_user=admin api_pass=pass
  93856. .ft P
  93857. .fi
  93858. .UNINDENT
  93859. .UNINDENT
  93860. .UNINDENT
  93861. .INDENT 0.0
  93862. .TP
  93863. .B salt.modules.ipmi.get_sensor_data(**kwargs)
  93864. Get sensor readings
  93865. .sp
  93866. Iterates sensor reading objects
  93867. .INDENT 7.0
  93868. .TP
  93869. .B Parameters
  93870. \fBkwargs\fP \-\- .INDENT 7.0
  93871. .IP \(bu 2
  93872. api_host=127.0.0.1
  93873. .IP \(bu 2
  93874. api_user=admin
  93875. .IP \(bu 2
  93876. api_pass=example
  93877. .IP \(bu 2
  93878. api_port=623
  93879. .IP \(bu 2
  93880. api_kg=None
  93881. .UNINDENT
  93882. .UNINDENT
  93883. .sp
  93884. CLI Example:
  93885. .INDENT 7.0
  93886. .INDENT 3.5
  93887. .sp
  93888. .nf
  93889. .ft C
  93890. salt\-call ipmi.get_sensor_data api_host=127.0.0.1 api_user=admin api_pass=pass
  93891. .ft P
  93892. .fi
  93893. .UNINDENT
  93894. .UNINDENT
  93895. .UNINDENT
  93896. .INDENT 0.0
  93897. .TP
  93898. .B salt.modules.ipmi.get_user(uid, channel=14, **kwargs)
  93899. Get user from uid and access on channel
  93900. .INDENT 7.0
  93901. .TP
  93902. .B Parameters
  93903. .INDENT 7.0
  93904. .IP \(bu 2
  93905. \fBuid\fP \-\- user number [1:16]
  93906. .IP \(bu 2
  93907. \fBchannel\fP \-\- number [1:7]
  93908. .IP \(bu 2
  93909. \fBkwargs\fP \-\- .INDENT 2.0
  93910. .IP \(bu 2
  93911. api_host=127.0.0.1
  93912. .IP \(bu 2
  93913. api_user=admin
  93914. .IP \(bu 2
  93915. api_pass=example
  93916. .IP \(bu 2
  93917. api_port=623
  93918. .IP \(bu 2
  93919. api_kg=None
  93920. .UNINDENT
  93921. .UNINDENT
  93922. .UNINDENT
  93923. .sp
  93924. Return Data
  93925. .INDENT 7.0
  93926. .INDENT 3.5
  93927. .sp
  93928. .nf
  93929. .ft C
  93930. name: (str)
  93931. uid: (int)
  93932. channel: (int)
  93933. access:
  93934. \- callback (bool)
  93935. \- link_auth (bool)
  93936. \- ipmi_msg (bool)
  93937. \- privilege_level: (str)[callback, user, operatorm administrator,
  93938. proprietary, no_access]
  93939. .ft P
  93940. .fi
  93941. .UNINDENT
  93942. .UNINDENT
  93943. .sp
  93944. CLI Examples:
  93945. .INDENT 7.0
  93946. .INDENT 3.5
  93947. .sp
  93948. .nf
  93949. .ft C
  93950. salt\-call ipmi.get_user uid=2
  93951. .ft P
  93952. .fi
  93953. .UNINDENT
  93954. .UNINDENT
  93955. .UNINDENT
  93956. .INDENT 0.0
  93957. .TP
  93958. .B salt.modules.ipmi.get_user_access(uid, channel=14, **kwargs)
  93959. Get user access
  93960. .INDENT 7.0
  93961. .TP
  93962. .B Parameters
  93963. .INDENT 7.0
  93964. .IP \(bu 2
  93965. \fBuid\fP \-\- user number [1:16]
  93966. .IP \(bu 2
  93967. \fBchannel\fP \-\- number [1:7]
  93968. .IP \(bu 2
  93969. \fBkwargs\fP \-\- .INDENT 2.0
  93970. .IP \(bu 2
  93971. api_host=127.0.0.1
  93972. .IP \(bu 2
  93973. api_user=admin
  93974. .IP \(bu 2
  93975. api_pass=example
  93976. .IP \(bu 2
  93977. api_port=623
  93978. .IP \(bu 2
  93979. api_kg=None
  93980. .UNINDENT
  93981. .UNINDENT
  93982. .UNINDENT
  93983. .sp
  93984. Return Data
  93985. .INDENT 7.0
  93986. .INDENT 3.5
  93987. .sp
  93988. .nf
  93989. .ft C
  93990. channel_info:
  93991. \- max_user_count = maximum number of user IDs on this channel
  93992. \- enabled_users = count of User ID slots presently in use
  93993. \- users_with_fixed_names = count of user IDs with fixed names
  93994. access:
  93995. \- callback
  93996. \- link_auth
  93997. \- ipmi_msg
  93998. \- privilege_level: [reserved, callback, user, operator
  93999. administrator, proprietary, no_access]
  94000. .ft P
  94001. .fi
  94002. .UNINDENT
  94003. .UNINDENT
  94004. .sp
  94005. CLI Examples:
  94006. .INDENT 7.0
  94007. .INDENT 3.5
  94008. .sp
  94009. .nf
  94010. .ft C
  94011. salt\-call ipmi.get_user_access uid=2
  94012. .ft P
  94013. .fi
  94014. .UNINDENT
  94015. .UNINDENT
  94016. .UNINDENT
  94017. .INDENT 0.0
  94018. .TP
  94019. .B salt.modules.ipmi.get_user_name(uid, return_none_on_error=True, **kwargs)
  94020. Get user name
  94021. .INDENT 7.0
  94022. .TP
  94023. .B Parameters
  94024. .INDENT 7.0
  94025. .IP \(bu 2
  94026. \fBuid\fP \-\- user number [1:16]
  94027. .IP \(bu 2
  94028. \fBreturn_none_on_error\fP \-\- return None on error
  94029. .IP \(bu 2
  94030. \fBkwargs\fP \-\- .INDENT 2.0
  94031. .IP \(bu 2
  94032. api_host=127.0.0.1
  94033. .IP \(bu 2
  94034. api_user=admin
  94035. .IP \(bu 2
  94036. api_pass=example
  94037. .IP \(bu 2
  94038. api_port=623
  94039. .IP \(bu 2
  94040. api_kg=None
  94041. .UNINDENT
  94042. .UNINDENT
  94043. .UNINDENT
  94044. .sp
  94045. CLI Examples:
  94046. .INDENT 7.0
  94047. .INDENT 3.5
  94048. .sp
  94049. .nf
  94050. .ft C
  94051. salt\-call ipmi.get_user_name uid=2
  94052. .ft P
  94053. .fi
  94054. .UNINDENT
  94055. .UNINDENT
  94056. .UNINDENT
  94057. .INDENT 0.0
  94058. .TP
  94059. .B salt.modules.ipmi.get_users(channel=14, **kwargs)
  94060. get list of users and access information
  94061. .INDENT 7.0
  94062. .TP
  94063. .B Parameters
  94064. .INDENT 7.0
  94065. .IP \(bu 2
  94066. \fBchannel\fP \-\- number [1:7]
  94067. .IP \(bu 2
  94068. \fBkwargs\fP \-\- .INDENT 2.0
  94069. .IP \(bu 2
  94070. api_host=127.0.0.1
  94071. .IP \(bu 2
  94072. api_user=admin
  94073. .IP \(bu 2
  94074. api_pass=example
  94075. .IP \(bu 2
  94076. api_port=623
  94077. .IP \(bu 2
  94078. api_kg=None
  94079. .UNINDENT
  94080. .UNINDENT
  94081. .TP
  94082. .B Returns
  94083. .INDENT 7.0
  94084. .IP \(bu 2
  94085. name: (str)
  94086. .IP \(bu 2
  94087. uid: (int)
  94088. .IP \(bu 2
  94089. channel: (int)
  94090. .IP \(bu 2
  94091. .INDENT 2.0
  94092. .TP
  94093. .B access:
  94094. .INDENT 7.0
  94095. .IP \(bu 2
  94096. callback (bool)
  94097. .IP \(bu 2
  94098. link_auth (bool)
  94099. .IP \(bu 2
  94100. ipmi_msg (bool)
  94101. .IP \(bu 2
  94102. privilege_level: (str)[callback, user, operatorm administrator,
  94103. proprietary, no_access]
  94104. .UNINDENT
  94105. .UNINDENT
  94106. .UNINDENT
  94107. .UNINDENT
  94108. .sp
  94109. CLI Examples:
  94110. .INDENT 7.0
  94111. .INDENT 3.5
  94112. .sp
  94113. .nf
  94114. .ft C
  94115. salt\-call ipmi.get_users api_host=172.168.0.7
  94116. .ft P
  94117. .fi
  94118. .UNINDENT
  94119. .UNINDENT
  94120. .UNINDENT
  94121. .INDENT 0.0
  94122. .TP
  94123. .B salt.modules.ipmi.raw_command(netfn, command, bridge_request=None, data=(), retry=True, delay_xmit=None, **kwargs)
  94124. Send raw ipmi command
  94125. .sp
  94126. This allows arbitrary IPMI bytes to be issued. This is commonly used
  94127. for certain vendor specific commands.
  94128. .INDENT 7.0
  94129. .TP
  94130. .B Parameters
  94131. .INDENT 7.0
  94132. .IP \(bu 2
  94133. \fBnetfn\fP \-\- Net function number
  94134. .IP \(bu 2
  94135. \fBcommand\fP \-\- Command value
  94136. .IP \(bu 2
  94137. \fBbridge_request\fP \-\- The target slave address and channel number for
  94138. the bridge request.
  94139. .IP \(bu 2
  94140. \fBdata\fP \-\- Command data as a tuple or list
  94141. .IP \(bu 2
  94142. \fBkwargs\fP \-\- .INDENT 2.0
  94143. .IP \(bu 2
  94144. api_host=127.0.0.1
  94145. .IP \(bu 2
  94146. api_user=admin
  94147. .IP \(bu 2
  94148. api_pass=example
  94149. .IP \(bu 2
  94150. api_port=623
  94151. .IP \(bu 2
  94152. api_kg=None
  94153. .UNINDENT
  94154. .UNINDENT
  94155. .TP
  94156. .B Returns
  94157. dict \-\- The response from IPMI device
  94158. .UNINDENT
  94159. .sp
  94160. CLI Examples:
  94161. .INDENT 7.0
  94162. .INDENT 3.5
  94163. .sp
  94164. .nf
  94165. .ft C
  94166. salt\-call ipmi.raw_command netfn=0x06 command=0x46 data=[0x02]
  94167. # this will return the name of the user with id 2 in bytes
  94168. .ft P
  94169. .fi
  94170. .UNINDENT
  94171. .UNINDENT
  94172. .UNINDENT
  94173. .INDENT 0.0
  94174. .TP
  94175. .B salt.modules.ipmi.set_bootdev(bootdev=u\(aqdefault\(aq, persist=False, uefiboot=False, **kwargs)
  94176. Set boot device to use on next reboot
  94177. .INDENT 7.0
  94178. .TP
  94179. .B Parameters
  94180. .INDENT 7.0
  94181. .IP \(bu 2
  94182. \fBbootdev\fP \-\- .INDENT 2.0
  94183. .IP \(bu 2
  94184. network: Request network boot
  94185. .IP \(bu 2
  94186. hd: Boot from hard drive
  94187. .IP \(bu 2
  94188. safe: Boot from hard drive, requesting \(aqsafe mode\(aq
  94189. .IP \(bu 2
  94190. optical: boot from CD/DVD/BD drive
  94191. .IP \(bu 2
  94192. setup: Boot into setup utility
  94193. .IP \(bu 2
  94194. default: remove any IPMI directed boot device
  94195. request
  94196. .UNINDENT
  94197. .IP \(bu 2
  94198. \fBpersist\fP \-\- If true, ask that system firmware use this device
  94199. beyond next boot. Be aware many systems do not honor
  94200. this
  94201. .IP \(bu 2
  94202. \fBuefiboot\fP \-\- If true, request UEFI boot explicitly. Strictly
  94203. speaking, the spec suggests that if not set, the system
  94204. should BIOS boot and offers no "don\(aqt care" option.
  94205. In practice, this flag not being set does not preclude
  94206. UEFI boot on any system I\(aqve encountered.
  94207. .IP \(bu 2
  94208. \fBkwargs\fP \-\- .INDENT 2.0
  94209. .IP \(bu 2
  94210. api_host=127.0.0.1
  94211. .IP \(bu 2
  94212. api_user=admin
  94213. .IP \(bu 2
  94214. api_pass=example
  94215. .IP \(bu 2
  94216. api_port=623
  94217. .IP \(bu 2
  94218. api_kg=None
  94219. .UNINDENT
  94220. .UNINDENT
  94221. .TP
  94222. .B Returns
  94223. dict or True \-\- If callback is not provided, the response
  94224. .UNINDENT
  94225. .sp
  94226. CLI Examples:
  94227. .INDENT 7.0
  94228. .INDENT 3.5
  94229. .sp
  94230. .nf
  94231. .ft C
  94232. salt\-call ipmi.set_bootdev bootdev=network persist=True
  94233. .ft P
  94234. .fi
  94235. .UNINDENT
  94236. .UNINDENT
  94237. .UNINDENT
  94238. .INDENT 0.0
  94239. .TP
  94240. .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)
  94241. Set channel access
  94242. .INDENT 7.0
  94243. .TP
  94244. .B Parameters
  94245. .INDENT 7.0
  94246. .IP \(bu 2
  94247. \fBchannel\fP \-\- number [1:7]
  94248. .IP \(bu 2
  94249. \fBaccess_update_mode\fP \-\- .INDENT 2.0
  94250. .IP \(bu 2
  94251. \(aqdont_change\(aq = don\(aqt set or change Channel Access
  94252. .IP \(bu 2
  94253. \(aqnon_volatile\(aq = set non\-volatile Channel Access
  94254. .IP \(bu 2
  94255. \(aqvolatile\(aq = set volatile (active) setting of Channel Access
  94256. .UNINDENT
  94257. .IP \(bu 2
  94258. \fBalerting\fP \-\-
  94259. .sp
  94260. PEF Alerting Enable/Disable
  94261. .INDENT 2.0
  94262. .IP \(bu 2
  94263. True = enable PEF Alerting
  94264. .IP \(bu 2
  94265. False = disable PEF Alerting on this channel
  94266. (Alert Immediate command can still be used to generate alerts)
  94267. .UNINDENT
  94268. .IP \(bu 2
  94269. \fBper_msg_auth\fP \-\-
  94270. .sp
  94271. Per\-message Authentication
  94272. .INDENT 2.0
  94273. .IP \(bu 2
  94274. True = enable
  94275. .IP \(bu 2
  94276. False = disable Per\-message Authentication. [Authentication required to
  94277. activate any session on this channel, but authentication not
  94278. used on subsequent packets for the session.]
  94279. .UNINDENT
  94280. .IP \(bu 2
  94281. \fBuser_level_auth\fP \-\-
  94282. .sp
  94283. User Level Authentication Enable/Disable
  94284. .INDENT 2.0
  94285. .IP \(bu 2
  94286. True = enable User Level Authentication. All User Level commands are
  94287. to be authenticated per the Authentication Type that was
  94288. negotiated when the session was activated.
  94289. .IP \(bu 2
  94290. False = disable User Level Authentication. Allow User Level commands to
  94291. be executed without being authenticated.
  94292. If the option to disable User Level Command authentication is
  94293. accepted, the BMC will accept packets with Authentication Type
  94294. set to None if they contain user level commands.
  94295. For outgoing packets, the BMC returns responses with the same
  94296. Authentication Type that was used for the request.
  94297. .UNINDENT
  94298. .IP \(bu 2
  94299. \fBaccess_mode\fP \-\-
  94300. .sp
  94301. Access Mode for IPMI messaging (PEF Alerting is enabled/disabled
  94302. separately from IPMI messaging)
  94303. .INDENT 2.0
  94304. .IP \(bu 2
  94305. disabled = disabled for IPMI messaging
  94306. .IP \(bu 2
  94307. pre_boot = pre\-boot only channel only available when system is
  94308. in a powered down state or in BIOS prior to start of boot.
  94309. .IP \(bu 2
  94310. always = channel always available regardless of system mode.
  94311. BIOS typically dedicates the serial connection to the BMC.
  94312. .IP \(bu 2
  94313. shared = same as always available, but BIOS typically leaves the
  94314. serial port available for software use.
  94315. .UNINDENT
  94316. .IP \(bu 2
  94317. \fBprivilege_update_mode\fP \-\-
  94318. .sp
  94319. Channel Privilege Level Limit. This value sets the maximum privilege
  94320. level that can be accepted on the specified channel.
  94321. .INDENT 2.0
  94322. .IP \(bu 2
  94323. dont_change = don\(aqt set or change channel Privilege Level Limit
  94324. .IP \(bu 2
  94325. non_volatile = non\-volatile Privilege Level Limit according
  94326. .IP \(bu 2
  94327. volatile = volatile setting of Privilege Level Limit
  94328. .UNINDENT
  94329. .IP \(bu 2
  94330. \fBprivilege_level\fP \-\-
  94331. .sp
  94332. Channel Privilege Level Limit
  94333. .INDENT 2.0
  94334. .IP \(bu 2
  94335. reserved = unused
  94336. .IP \(bu 2
  94337. callback
  94338. .IP \(bu 2
  94339. user
  94340. .IP \(bu 2
  94341. operator
  94342. .IP \(bu 2
  94343. administrator
  94344. .IP \(bu 2
  94345. proprietary = used by OEM
  94346. .UNINDENT
  94347. .IP \(bu 2
  94348. \fBkwargs\fP \-\- .INDENT 2.0
  94349. .IP \(bu 2
  94350. api_host=127.0.0.1
  94351. .IP \(bu 2
  94352. api_user=admin
  94353. .IP \(bu 2
  94354. api_pass=example
  94355. .IP \(bu 2
  94356. api_port=623
  94357. .IP \(bu 2
  94358. api_kg=None
  94359. .UNINDENT
  94360. .UNINDENT
  94361. .UNINDENT
  94362. .sp
  94363. CLI Examples:
  94364. .INDENT 7.0
  94365. .INDENT 3.5
  94366. .sp
  94367. .nf
  94368. .ft C
  94369. salt\-call ipmi.set_channel_access privilege_level=\(aqadministrator\(aq
  94370. .ft P
  94371. .fi
  94372. .UNINDENT
  94373. .UNINDENT
  94374. .UNINDENT
  94375. .INDENT 0.0
  94376. .TP
  94377. .B salt.modules.ipmi.set_identify(on=True, duration=600, **kwargs)
  94378. Request identify light
  94379. .sp
  94380. Request the identify light to turn off, on for a duration,
  94381. or on indefinitely. Other than error exceptions,
  94382. .INDENT 7.0
  94383. .TP
  94384. .B Parameters
  94385. .INDENT 7.0
  94386. .IP \(bu 2
  94387. \fBon\fP \-\- Set to True to force on or False to force off
  94388. .IP \(bu 2
  94389. \fBduration\fP \-\- Set if wanting to request turn on for a duration
  94390. in seconds, None = indefinitely.
  94391. .IP \(bu 2
  94392. \fBkwargs\fP \-\- .INDENT 2.0
  94393. .IP \(bu 2
  94394. api_host=127.0.0.1
  94395. .IP \(bu 2
  94396. api_user=admin
  94397. .IP \(bu 2
  94398. api_pass=example
  94399. .IP \(bu 2
  94400. api_port=623
  94401. .IP \(bu 2
  94402. api_kg=None
  94403. .UNINDENT
  94404. .UNINDENT
  94405. .UNINDENT
  94406. .sp
  94407. CLI Examples:
  94408. .INDENT 7.0
  94409. .INDENT 3.5
  94410. .sp
  94411. .nf
  94412. .ft C
  94413. salt\-call ipmi.set_identify
  94414. .ft P
  94415. .fi
  94416. .UNINDENT
  94417. .UNINDENT
  94418. .UNINDENT
  94419. .INDENT 0.0
  94420. .TP
  94421. .B salt.modules.ipmi.set_power(state=u\(aqpower_on\(aq, wait=True, **kwargs)
  94422. Request power state change
  94423. .INDENT 7.0
  94424. .TP
  94425. .B Parameters
  94426. .INDENT 7.0
  94427. .IP \(bu 2
  94428. \fBname\fP \-\- .INDENT 2.0
  94429. .IP \(bu 2
  94430. power_on \-\- system turn on
  94431. .IP \(bu 2
  94432. power_off \-\- system turn off (without waiting for OS)
  94433. .IP \(bu 2
  94434. shutdown \-\- request OS proper shutdown
  94435. .IP \(bu 2
  94436. reset \-\- reset (without waiting for OS)
  94437. .IP \(bu 2
  94438. boot \-\- If system is off, then \(aqon\(aq, else \(aqreset\(aq
  94439. .UNINDENT
  94440. .IP \(bu 2
  94441. \fBensure\fP \-\- If (bool True), do not return until system actually completes
  94442. requested state change for 300 seconds.
  94443. If a non\-zero (int), adjust the wait time to the
  94444. requested number of seconds
  94445. .IP \(bu 2
  94446. \fBkwargs\fP \-\- .INDENT 2.0
  94447. .IP \(bu 2
  94448. api_host=127.0.0.1
  94449. .IP \(bu 2
  94450. api_user=admin
  94451. .IP \(bu 2
  94452. api_pass=example
  94453. .IP \(bu 2
  94454. api_port=623
  94455. .IP \(bu 2
  94456. api_kg=None
  94457. .UNINDENT
  94458. .UNINDENT
  94459. .TP
  94460. .B Returns
  94461. dict \-\- A dict describing the response retrieved
  94462. .UNINDENT
  94463. .sp
  94464. CLI Examples:
  94465. .INDENT 7.0
  94466. .INDENT 3.5
  94467. .sp
  94468. .nf
  94469. .ft C
  94470. salt\-call ipmi.set_power state=shutdown wait=True
  94471. .ft P
  94472. .fi
  94473. .UNINDENT
  94474. .UNINDENT
  94475. .UNINDENT
  94476. .INDENT 0.0
  94477. .TP
  94478. .B salt.modules.ipmi.set_user_access(uid, channel=14, callback=True, link_auth=True, ipmi_msg=True, privilege_level=u\(aqadministrator\(aq, **kwargs)
  94479. Set user access
  94480. .INDENT 7.0
  94481. .TP
  94482. .B Parameters
  94483. .INDENT 7.0
  94484. .IP \(bu 2
  94485. \fBuid\fP \-\- user number [1:16]
  94486. .IP \(bu 2
  94487. \fBchannel\fP \-\- number [1:7]
  94488. .IP \(bu 2
  94489. \fBcallback\fP \-\-
  94490. .sp
  94491. User Restricted to Callback
  94492. .INDENT 2.0
  94493. .IP \(bu 2
  94494. False = User Privilege Limit is determined by the User Privilege Limit
  94495. parameter, below, for both callback and non\-callback connections.
  94496. .IP \(bu 2
  94497. True = User Privilege Limit is determined by the User Privilege Limit
  94498. parameter for callback connections, but is restricted to Callback
  94499. level for non\-callback connections. Thus, a user can only initiate
  94500. a Callback when they \(aqcall in\(aq to the BMC, but once the callback
  94501. connection has been made, the user could potentially establish a
  94502. session as an Operator.
  94503. .UNINDENT
  94504. .IP \(bu 2
  94505. \fBlink_auth\fP \-\- User Link authentication enable/disable (used to enable
  94506. whether this user\(aqs name and password information will be used for link
  94507. authentication, e.g. PPP CHAP) for the given channel. Link
  94508. authentication itself is a global setting for the channel and is
  94509. enabled/disabled via the serial/modem configuration parameters.
  94510. .IP \(bu 2
  94511. \fBipmi_msg\fP \-\- User IPMI Messaging: (used to enable/disable whether
  94512. this user\(aqs name and password information will be used for IPMI
  94513. Messaging. In this case, \(aqIPMI Messaging\(aq refers to the ability to
  94514. execute generic IPMI commands that are not associated with a
  94515. particular payload type. For example, if IPMI Messaging is disabled for
  94516. a user, but that user is enabled for activating the SOL
  94517. payload type, then IPMI commands associated with SOL and session
  94518. management, such as Get SOL Configuration Parameters and Close Session
  94519. are available, but generic IPMI commands such as Get SEL Time are
  94520. unavailable.)
  94521. .IP \(bu 2
  94522. \fBprivilege_level\fP \-\-
  94523. .sp
  94524. User Privilege Limit. (Determines the maximum privilege level that the
  94525. user is allowed to switch to on the specified channel.)
  94526. .INDENT 2.0
  94527. .IP \(bu 2
  94528. callback
  94529. .IP \(bu 2
  94530. user
  94531. .IP \(bu 2
  94532. operator
  94533. .IP \(bu 2
  94534. administrator
  94535. .IP \(bu 2
  94536. proprietary
  94537. .IP \(bu 2
  94538. no_access
  94539. .UNINDENT
  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.set_user_access uid=2 privilege_level=\(aqoperator\(aq
  94563. .ft P
  94564. .fi
  94565. .UNINDENT
  94566. .UNINDENT
  94567. .UNINDENT
  94568. .INDENT 0.0
  94569. .TP
  94570. .B salt.modules.ipmi.set_user_name(uid, name, **kwargs)
  94571. Set user name
  94572. .INDENT 7.0
  94573. .TP
  94574. .B Parameters
  94575. .INDENT 7.0
  94576. .IP \(bu 2
  94577. \fBuid\fP \-\- user number [1:16]
  94578. .IP \(bu 2
  94579. \fBname\fP \-\- username (limit of 16bytes)
  94580. .IP \(bu 2
  94581. \fBkwargs\fP \-\- .INDENT 2.0
  94582. .IP \(bu 2
  94583. api_host=127.0.0.1
  94584. .IP \(bu 2
  94585. api_user=admin
  94586. .IP \(bu 2
  94587. api_pass=example
  94588. .IP \(bu 2
  94589. api_port=623
  94590. .IP \(bu 2
  94591. api_kg=None
  94592. .UNINDENT
  94593. .UNINDENT
  94594. .UNINDENT
  94595. .sp
  94596. CLI Examples:
  94597. .INDENT 7.0
  94598. .INDENT 3.5
  94599. .sp
  94600. .nf
  94601. .ft C
  94602. salt\-call ipmi.set_user_name uid=2 name=\(aqsteverweber\(aq
  94603. .ft P
  94604. .fi
  94605. .UNINDENT
  94606. .UNINDENT
  94607. .UNINDENT
  94608. .INDENT 0.0
  94609. .TP
  94610. .B salt.modules.ipmi.set_user_password(uid, mode=u\(aqset_password\(aq, password=None, **kwargs)
  94611. Set user password and (modes)
  94612. .INDENT 7.0
  94613. .TP
  94614. .B Parameters
  94615. .INDENT 7.0
  94616. .IP \(bu 2
  94617. \fBuid\fP \-\- id number of user. see: get_names_uid()[\(aqname\(aq]
  94618. .IP \(bu 2
  94619. \fBmode\fP \-\- .INDENT 2.0
  94620. .IP \(bu 2
  94621. disable = disable user connections
  94622. .IP \(bu 2
  94623. enable = enable user connections
  94624. .IP \(bu 2
  94625. set_password = set or ensure password
  94626. .IP \(bu 2
  94627. test_password = test password is correct
  94628. .UNINDENT
  94629. .IP \(bu 2
  94630. \fBpassword\fP \-\- max 16 char string
  94631. (optional when mode is [disable or enable])
  94632. .IP \(bu 2
  94633. \fBkwargs\fP \-\- .INDENT 2.0
  94634. .IP \(bu 2
  94635. api_host=127.0.0.1
  94636. .IP \(bu 2
  94637. api_user=admin
  94638. .IP \(bu 2
  94639. api_pass=example
  94640. .IP \(bu 2
  94641. api_port=623
  94642. .IP \(bu 2
  94643. api_kg=None
  94644. .UNINDENT
  94645. .UNINDENT
  94646. .TP
  94647. .B Returns
  94648. True on success
  94649. when mode = test_password, return False on bad password
  94650. .UNINDENT
  94651. .sp
  94652. CLI Example:
  94653. .INDENT 7.0
  94654. .INDENT 3.5
  94655. .sp
  94656. .nf
  94657. .ft C
  94658. salt\-call ipmi.set_user_password api_host=127.0.0.1 api_user=admin api_pass=pass
  94659. uid=1 password=newPass
  94660. salt\-call ipmi.set_user_password uid=1 mode=enable
  94661. .ft P
  94662. .fi
  94663. .UNINDENT
  94664. .UNINDENT
  94665. .UNINDENT
  94666. .INDENT 0.0
  94667. .TP
  94668. .B salt.modules.ipmi.user_delete(uid, channel=14, **kwargs)
  94669. Delete user (helper)
  94670. .INDENT 7.0
  94671. .TP
  94672. .B Parameters
  94673. .INDENT 7.0
  94674. .IP \(bu 2
  94675. \fBuid\fP \-\- user number [1:16]
  94676. .IP \(bu 2
  94677. \fBchannel\fP \-\- number [1:7]
  94678. .IP \(bu 2
  94679. \fBkwargs\fP \-\- .INDENT 2.0
  94680. .IP \(bu 2
  94681. api_host=127.0.0.1
  94682. .IP \(bu 2
  94683. api_user=admin
  94684. .IP \(bu 2
  94685. api_pass=example
  94686. .IP \(bu 2
  94687. api_port=623
  94688. .IP \(bu 2
  94689. api_kg=None
  94690. .UNINDENT
  94691. .UNINDENT
  94692. .UNINDENT
  94693. .sp
  94694. CLI Examples:
  94695. .INDENT 7.0
  94696. .INDENT 3.5
  94697. .sp
  94698. .nf
  94699. .ft C
  94700. salt\-call ipmi.user_delete uid=2
  94701. .ft P
  94702. .fi
  94703. .UNINDENT
  94704. .UNINDENT
  94705. .UNINDENT
  94706. .SS salt.modules.jboss7_cli
  94707. .sp
  94708. Module for low\-level interaction with JbossAS7 through CLI.
  94709. .sp
  94710. This module exposes two ways of interaction with the CLI, either through commands or operations.
  94711. .sp
  94712. \fBNOTE:\fP
  94713. .INDENT 0.0
  94714. .INDENT 3.5
  94715. Following JBoss documentation (\fI\%https://developer.jboss.org/wiki/CommandLineInterface\fP):
  94716. "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.
  94717. Commands, on the other hand, are more user\-friendly in syntax,
  94718. although most of them still translate into operation requests and some of them even into a few
  94719. composite operation requests, i.e. commands also simplify some management operations from the user\(aqs point of view."
  94720. .UNINDENT
  94721. .UNINDENT
  94722. .sp
  94723. The difference between calling a command or operation is in handling the result.
  94724. Commands return a zero return code if operation is successful or return non\-zero return code and
  94725. print an error to standard output in plain text, in case of an error.
  94726. .sp
  94727. Operations return a json\-like structure, that contain more information about the result.
  94728. In case of a failure, they also return a specific return code. This module parses the output from the operations and
  94729. returns it as a dictionary so that an execution of an operation can then be verified against specific errors.
  94730. .INDENT 0.0
  94731. .TP
  94732. .B In order to run each function, jboss_config dictionary with the following properties must be passed:
  94733. .INDENT 7.0
  94734. .IP \(bu 2
  94735. cli_path: the path to jboss\-cli script, for example: \(aq/opt/jboss/jboss\-7.0/bin/jboss\-cli.sh\(aq
  94736. .IP \(bu 2
  94737. controller: the IP address and port of controller, for example: 10.11.12.13:9999
  94738. .IP \(bu 2
  94739. cli_user: username to connect to jboss administration console if necessary
  94740. .IP \(bu 2
  94741. cli_password: password to connect to jboss administration console if necessary
  94742. .UNINDENT
  94743. .UNINDENT
  94744. .sp
  94745. Example:
  94746. .INDENT 0.0
  94747. .INDENT 3.5
  94748. .sp
  94749. .nf
  94750. .ft C
  94751. jboss_config:
  94752. cli_path: \(aq/opt/jboss/jboss\-7.0/bin/jboss\-cli.sh\(aq
  94753. controller: 10.11.12.13:9999
  94754. cli_user: \(aqjbossadm\(aq
  94755. cli_password: \(aqjbossadm\(aq
  94756. .ft P
  94757. .fi
  94758. .UNINDENT
  94759. .UNINDENT
  94760. .INDENT 0.0
  94761. .TP
  94762. .B salt.modules.jboss7_cli.run_command(jboss_config, command, fail_on_error=True)
  94763. Execute a command against jboss instance through the CLI interface.
  94764. .INDENT 7.0
  94765. .TP
  94766. .B jboss_config
  94767. Configuration dictionary with properties specified above.
  94768. .TP
  94769. .B command
  94770. Command to execute against jboss instance
  94771. .TP
  94772. .B fail_on_error (default=True)
  94773. Is true, raise CommandExecutionError exception if execution fails.
  94774. If false, \(aqsuccess\(aq property of the returned dictionary is set to False
  94775. .UNINDENT
  94776. .sp
  94777. CLI Example:
  94778. .INDENT 7.0
  94779. .INDENT 3.5
  94780. .sp
  94781. .nf
  94782. .ft C
  94783. 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
  94784. .ft P
  94785. .fi
  94786. .UNINDENT
  94787. .UNINDENT
  94788. .UNINDENT
  94789. .INDENT 0.0
  94790. .TP
  94791. .B salt.modules.jboss7_cli.run_operation(jboss_config, operation, fail_on_error=True, retries=1)
  94792. Execute an operation against jboss instance through the CLI interface.
  94793. .INDENT 7.0
  94794. .TP
  94795. .B jboss_config
  94796. Configuration dictionary with properties specified above.
  94797. .TP
  94798. .B operation
  94799. An operation to execute against jboss instance
  94800. .TP
  94801. .B fail_on_error (default=True)
  94802. Is true, raise CommandExecutionError exception if execution fails.
  94803. If false, \(aqsuccess\(aq property of the returned dictionary is set to False
  94804. .TP
  94805. .B retries:
  94806. Number of retries in case of "JBAS012144: Could not connect to remote" error.
  94807. .UNINDENT
  94808. .sp
  94809. CLI Example:
  94810. .INDENT 7.0
  94811. .INDENT 3.5
  94812. .sp
  94813. .nf
  94814. .ft C
  94815. 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
  94816. .ft P
  94817. .fi
  94818. .UNINDENT
  94819. .UNINDENT
  94820. .UNINDENT
  94821. .SS salt.modules.kernelpkg_linux_apt
  94822. .sp
  94823. Manage Linux kernel packages on APT\-based systems
  94824. .INDENT 0.0
  94825. .TP
  94826. .B salt.modules.kernelpkg_linux_apt.active()
  94827. Return the version of the running kernel.
  94828. .sp
  94829. CLI Example:
  94830. .INDENT 7.0
  94831. .INDENT 3.5
  94832. .sp
  94833. .nf
  94834. .ft C
  94835. salt \(aq*\(aq kernelpkg.active
  94836. .ft P
  94837. .fi
  94838. .UNINDENT
  94839. .UNINDENT
  94840. .UNINDENT
  94841. .INDENT 0.0
  94842. .TP
  94843. .B salt.modules.kernelpkg_linux_apt.cleanup(keep_latest=True)
  94844. Remove all unused kernel packages from the system.
  94845. .INDENT 7.0
  94846. .TP
  94847. .B keep_latest
  94848. True
  94849. In the event that the active kernel is not the latest one installed, setting this to True
  94850. will retain the latest kernel package, in addition to the active one. If False, all kernel
  94851. packages other than the active one will be removed.
  94852. .UNINDENT
  94853. .sp
  94854. CLI Example:
  94855. .INDENT 7.0
  94856. .INDENT 3.5
  94857. .sp
  94858. .nf
  94859. .ft C
  94860. salt \(aq*\(aq kernelpkg.cleanup
  94861. .ft P
  94862. .fi
  94863. .UNINDENT
  94864. .UNINDENT
  94865. .UNINDENT
  94866. .INDENT 0.0
  94867. .TP
  94868. .B salt.modules.kernelpkg_linux_apt.latest_available()
  94869. Return the version of the latest kernel from the package repositories.
  94870. .sp
  94871. CLI Example:
  94872. .INDENT 7.0
  94873. .INDENT 3.5
  94874. .sp
  94875. .nf
  94876. .ft C
  94877. salt \(aq*\(aq kernelpkg.latest_available
  94878. .ft P
  94879. .fi
  94880. .UNINDENT
  94881. .UNINDENT
  94882. .UNINDENT
  94883. .INDENT 0.0
  94884. .TP
  94885. .B salt.modules.kernelpkg_linux_apt.latest_installed()
  94886. Return the version of the latest installed kernel.
  94887. .sp
  94888. CLI Example:
  94889. .INDENT 7.0
  94890. .INDENT 3.5
  94891. .sp
  94892. .nf
  94893. .ft C
  94894. salt \(aq*\(aq kernelpkg.latest_installed
  94895. .ft P
  94896. .fi
  94897. .UNINDENT
  94898. .UNINDENT
  94899. .sp
  94900. \fBNOTE:\fP
  94901. .INDENT 7.0
  94902. .INDENT 3.5
  94903. This function may not return the same value as
  94904. \fI\%active()\fP if a new kernel
  94905. has been installed and the system has not yet been rebooted.
  94906. The \fI\%needs_reboot()\fP function
  94907. exists to detect this condition.
  94908. .UNINDENT
  94909. .UNINDENT
  94910. .UNINDENT
  94911. .INDENT 0.0
  94912. .TP
  94913. .B salt.modules.kernelpkg_linux_apt.list_installed()
  94914. Return a list of all installed kernels.
  94915. .sp
  94916. CLI Example:
  94917. .INDENT 7.0
  94918. .INDENT 3.5
  94919. .sp
  94920. .nf
  94921. .ft C
  94922. salt \(aq*\(aq kernelpkg.list_installed
  94923. .ft P
  94924. .fi
  94925. .UNINDENT
  94926. .UNINDENT
  94927. .UNINDENT
  94928. .INDENT 0.0
  94929. .TP
  94930. .B salt.modules.kernelpkg_linux_apt.needs_reboot()
  94931. Detect if a new kernel version has been installed but is not running.
  94932. Returns True if a new kernel is installed, False otherwise.
  94933. .sp
  94934. CLI Example:
  94935. .INDENT 7.0
  94936. .INDENT 3.5
  94937. .sp
  94938. .nf
  94939. .ft C
  94940. salt \(aq*\(aq kernelpkg.needs_reboot
  94941. .ft P
  94942. .fi
  94943. .UNINDENT
  94944. .UNINDENT
  94945. .UNINDENT
  94946. .INDENT 0.0
  94947. .TP
  94948. .B salt.modules.kernelpkg_linux_apt.remove(release)
  94949. Remove a specific version of the kernel.
  94950. .INDENT 7.0
  94951. .TP
  94952. .B release
  94953. The release number of an installed kernel. This must be the entire release
  94954. number as returned by \fI\%list_installed()\fP,
  94955. not the package name.
  94956. .UNINDENT
  94957. .sp
  94958. CLI Example:
  94959. .INDENT 7.0
  94960. .INDENT 3.5
  94961. .sp
  94962. .nf
  94963. .ft C
  94964. salt \(aq*\(aq kernelpkg.remove 4.4.0\-70\-generic
  94965. .ft P
  94966. .fi
  94967. .UNINDENT
  94968. .UNINDENT
  94969. .UNINDENT
  94970. .INDENT 0.0
  94971. .TP
  94972. .B salt.modules.kernelpkg_linux_apt.upgrade(reboot=False, at_time=None)
  94973. Upgrade the kernel and optionally reboot the system.
  94974. .INDENT 7.0
  94975. .TP
  94976. .B reboot
  94977. False
  94978. Request a reboot if a new kernel is available.
  94979. .TP
  94980. .B at_time
  94981. immediate
  94982. Schedule the reboot at some point in the future. This argument
  94983. is ignored if \fBreboot=False\fP\&. See
  94984. \fBreboot()\fP for more details
  94985. on this argument.
  94986. .UNINDENT
  94987. .sp
  94988. CLI Example:
  94989. .INDENT 7.0
  94990. .INDENT 3.5
  94991. .sp
  94992. .nf
  94993. .ft C
  94994. salt \(aq*\(aq kernelpkg.upgrade
  94995. salt \(aq*\(aq kernelpkg.upgrade reboot=True at_time=1
  94996. .ft P
  94997. .fi
  94998. .UNINDENT
  94999. .UNINDENT
  95000. .sp
  95001. \fBNOTE:\fP
  95002. .INDENT 7.0
  95003. .INDENT 3.5
  95004. An immediate reboot often shuts down the system before the minion has a
  95005. chance to return, resulting in errors. A minimal delay (1 minute) is
  95006. useful to ensure the result is delivered to the master.
  95007. .UNINDENT
  95008. .UNINDENT
  95009. .UNINDENT
  95010. .INDENT 0.0
  95011. .TP
  95012. .B salt.modules.kernelpkg_linux_apt.upgrade_available()
  95013. Detect if a new kernel version is available in the repositories.
  95014. Returns True if a new kernel is available, False otherwise.
  95015. .sp
  95016. CLI Example:
  95017. .INDENT 7.0
  95018. .INDENT 3.5
  95019. .sp
  95020. .nf
  95021. .ft C
  95022. salt \(aq*\(aq kernelpkg.upgrade_available
  95023. .ft P
  95024. .fi
  95025. .UNINDENT
  95026. .UNINDENT
  95027. .UNINDENT
  95028. .SS salt.modules.keystoneng
  95029. .sp
  95030. Keystone module for interacting with OpenStack Keystone
  95031. .sp
  95032. New in version 2018.3.0.
  95033. .sp
  95034. :depends:shade
  95035. .sp
  95036. Example configuration
  95037. .INDENT 0.0
  95038. .INDENT 3.5
  95039. .sp
  95040. .nf
  95041. .ft C
  95042. keystone:
  95043. cloud: default
  95044. .ft P
  95045. .fi
  95046. .UNINDENT
  95047. .UNINDENT
  95048. .INDENT 0.0
  95049. .INDENT 3.5
  95050. .sp
  95051. .nf
  95052. .ft C
  95053. keystone:
  95054. auth:
  95055. username: admin
  95056. password: password123
  95057. user_domain_name: mydomain
  95058. project_name: myproject
  95059. project_domain_name: myproject
  95060. auth_url: https://example.org:5000/v3
  95061. identity_api_version: 3
  95062. .ft P
  95063. .fi
  95064. .UNINDENT
  95065. .UNINDENT
  95066. .INDENT 0.0
  95067. .TP
  95068. .B salt.modules.keystoneng.compare_changes(obj, **kwargs)
  95069. Compare two dicts returning only keys that exist in the first dict and are
  95070. different in the second one
  95071. .UNINDENT
  95072. .INDENT 0.0
  95073. .TP
  95074. .B salt.modules.keystoneng.domain_create(auth=None, **kwargs)
  95075. Create a domain
  95076. .sp
  95077. CLI Example:
  95078. .INDENT 7.0
  95079. .INDENT 3.5
  95080. .sp
  95081. .nf
  95082. .ft C
  95083. salt \(aq*\(aq keystoneng.domain_create name=domain1
  95084. .ft P
  95085. .fi
  95086. .UNINDENT
  95087. .UNINDENT
  95088. .UNINDENT
  95089. .INDENT 0.0
  95090. .TP
  95091. .B salt.modules.keystoneng.domain_delete(auth=None, **kwargs)
  95092. Delete a domain
  95093. .sp
  95094. CLI Example:
  95095. .INDENT 7.0
  95096. .INDENT 3.5
  95097. .sp
  95098. .nf
  95099. .ft C
  95100. salt \(aq*\(aq keystoneng.domain_delete name=domain1
  95101. salt \(aq*\(aq keystoneng.domain_delete name=b62e76fbeeff4e8fb77073f591cf211e
  95102. .ft P
  95103. .fi
  95104. .UNINDENT
  95105. .UNINDENT
  95106. .UNINDENT
  95107. .INDENT 0.0
  95108. .TP
  95109. .B salt.modules.keystoneng.domain_get(auth=None, **kwargs)
  95110. Get a single domain
  95111. .sp
  95112. CLI Example:
  95113. .INDENT 7.0
  95114. .INDENT 3.5
  95115. .sp
  95116. .nf
  95117. .ft C
  95118. salt \(aq*\(aq keystoneng.domain_get name=domain1
  95119. salt \(aq*\(aq keystoneng.domain_get name=b62e76fbeeff4e8fb77073f591cf211e
  95120. .ft P
  95121. .fi
  95122. .UNINDENT
  95123. .UNINDENT
  95124. .UNINDENT
  95125. .INDENT 0.0
  95126. .TP
  95127. .B salt.modules.keystoneng.domain_list(auth=None, **kwargs)
  95128. List domains
  95129. .sp
  95130. CLI Example:
  95131. .INDENT 7.0
  95132. .INDENT 3.5
  95133. .sp
  95134. .nf
  95135. .ft C
  95136. salt \(aq*\(aq keystoneng.domain_list
  95137. .ft P
  95138. .fi
  95139. .UNINDENT
  95140. .UNINDENT
  95141. .UNINDENT
  95142. .INDENT 0.0
  95143. .TP
  95144. .B salt.modules.keystoneng.domain_search(auth=None, **kwargs)
  95145. Search domains
  95146. .sp
  95147. CLI Example:
  95148. .INDENT 7.0
  95149. .INDENT 3.5
  95150. .sp
  95151. .nf
  95152. .ft C
  95153. salt \(aq*\(aq keystoneng.domain_search
  95154. salt \(aq*\(aq keystoneng.domain_search name=domain1
  95155. .ft P
  95156. .fi
  95157. .UNINDENT
  95158. .UNINDENT
  95159. .UNINDENT
  95160. .INDENT 0.0
  95161. .TP
  95162. .B salt.modules.keystoneng.domain_update(auth=None, **kwargs)
  95163. Update a domain
  95164. .sp
  95165. CLI Example:
  95166. .INDENT 7.0
  95167. .INDENT 3.5
  95168. .sp
  95169. .nf
  95170. .ft C
  95171. salt \(aq*\(aq keystoneng.domain_update name=domain1 new_name=newdomain
  95172. salt \(aq*\(aq keystoneng.domain_update name=domain1 enabled=True description=\(aqnew description\(aq
  95173. .ft P
  95174. .fi
  95175. .UNINDENT
  95176. .UNINDENT
  95177. .UNINDENT
  95178. .INDENT 0.0
  95179. .TP
  95180. .B salt.modules.keystoneng.endpoint_create(auth=None, **kwargs)
  95181. Create an endpoint
  95182. .sp
  95183. CLI Example:
  95184. .INDENT 7.0
  95185. .INDENT 3.5
  95186. .sp
  95187. .nf
  95188. .ft C
  95189. salt \(aq*\(aq keystoneng.endpoint_create interface=admin service=glance url=https://example.org:9292
  95190. salt \(aq*\(aq keystoneng.endpoint_create interface=public service=glance region=RegionOne url=https://example.org:9292
  95191. salt \(aq*\(aq keystoneng.endpoint_create interface=admin service=glance url=https://example.org:9292 enabled=True
  95192. .ft P
  95193. .fi
  95194. .UNINDENT
  95195. .UNINDENT
  95196. .UNINDENT
  95197. .INDENT 0.0
  95198. .TP
  95199. .B salt.modules.keystoneng.endpoint_delete(auth=None, **kwargs)
  95200. Delete an endpoint
  95201. .sp
  95202. CLI Example:
  95203. .INDENT 7.0
  95204. .INDENT 3.5
  95205. .sp
  95206. .nf
  95207. .ft C
  95208. salt \(aq*\(aq keystoneng.endpoint_delete id=3bee4bd8c2b040ee966adfda1f0bfca9
  95209. .ft P
  95210. .fi
  95211. .UNINDENT
  95212. .UNINDENT
  95213. .UNINDENT
  95214. .INDENT 0.0
  95215. .TP
  95216. .B salt.modules.keystoneng.endpoint_get(auth=None, **kwargs)
  95217. Get a single endpoint
  95218. .sp
  95219. CLI Example:
  95220. .INDENT 7.0
  95221. .INDENT 3.5
  95222. .sp
  95223. .nf
  95224. .ft C
  95225. salt \(aq*\(aq keystoneng.endpoint_get id=02cffaa173b2460f98e40eda3748dae5
  95226. .ft P
  95227. .fi
  95228. .UNINDENT
  95229. .UNINDENT
  95230. .UNINDENT
  95231. .INDENT 0.0
  95232. .TP
  95233. .B salt.modules.keystoneng.endpoint_list(auth=None, **kwargs)
  95234. List endpoints
  95235. .sp
  95236. CLI Example:
  95237. .INDENT 7.0
  95238. .INDENT 3.5
  95239. .sp
  95240. .nf
  95241. .ft C
  95242. salt \(aq*\(aq keystoneng.endpoint_list
  95243. .ft P
  95244. .fi
  95245. .UNINDENT
  95246. .UNINDENT
  95247. .UNINDENT
  95248. .INDENT 0.0
  95249. .TP
  95250. .B salt.modules.keystoneng.endpoint_search(auth=None, **kwargs)
  95251. Search endpoints
  95252. .sp
  95253. CLI Example:
  95254. .INDENT 7.0
  95255. .INDENT 3.5
  95256. .sp
  95257. .nf
  95258. .ft C
  95259. salt \(aq*\(aq keystoneng.endpoint_search
  95260. salt \(aq*\(aq keystoneng.endpoint_search id=02cffaa173b2460f98e40eda3748dae5
  95261. .ft P
  95262. .fi
  95263. .UNINDENT
  95264. .UNINDENT
  95265. .UNINDENT
  95266. .INDENT 0.0
  95267. .TP
  95268. .B salt.modules.keystoneng.endpoint_update(auth=None, **kwargs)
  95269. Update an endpoint
  95270. .sp
  95271. CLI Example:
  95272. .INDENT 7.0
  95273. .INDENT 3.5
  95274. .sp
  95275. .nf
  95276. .ft C
  95277. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 interface=public enabled=False
  95278. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 region=newregion
  95279. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 service_name_or_id=glance url=https://example.org:9292
  95280. .ft P
  95281. .fi
  95282. .UNINDENT
  95283. .UNINDENT
  95284. .UNINDENT
  95285. .INDENT 0.0
  95286. .TP
  95287. .B salt.modules.keystoneng.get_entity(ent_type, **kwargs)
  95288. Attempt to query Keystone for more information about an entity
  95289. .UNINDENT
  95290. .INDENT 0.0
  95291. .TP
  95292. .B salt.modules.keystoneng.get_openstack_cloud(auth=None)
  95293. Return an openstack_cloud
  95294. .UNINDENT
  95295. .INDENT 0.0
  95296. .TP
  95297. .B salt.modules.keystoneng.get_operator_cloud(auth=None)
  95298. Return an operator_cloud
  95299. .UNINDENT
  95300. .INDENT 0.0
  95301. .TP
  95302. .B salt.modules.keystoneng.group_create(auth=None, **kwargs)
  95303. Create a group
  95304. .sp
  95305. CLI Example:
  95306. .INDENT 7.0
  95307. .INDENT 3.5
  95308. .sp
  95309. .nf
  95310. .ft C
  95311. salt \(aq*\(aq keystoneng.group_create name=group1
  95312. salt \(aq*\(aq keystoneng.group_create name=group2 domain=domain1 description=\(aqmy group2\(aq
  95313. .ft P
  95314. .fi
  95315. .UNINDENT
  95316. .UNINDENT
  95317. .UNINDENT
  95318. .INDENT 0.0
  95319. .TP
  95320. .B salt.modules.keystoneng.group_delete(auth=None, **kwargs)
  95321. Delete a group
  95322. .sp
  95323. CLI Example:
  95324. .INDENT 7.0
  95325. .INDENT 3.5
  95326. .sp
  95327. .nf
  95328. .ft C
  95329. salt \(aq*\(aq keystoneng.group_delete name=group1
  95330. salt \(aq*\(aq keystoneng.group_delete name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95331. salt \(aq*\(aq keystoneng.group_delete name=0e4febc2a5ab4f2c8f374b054162506d
  95332. .ft P
  95333. .fi
  95334. .UNINDENT
  95335. .UNINDENT
  95336. .UNINDENT
  95337. .INDENT 0.0
  95338. .TP
  95339. .B salt.modules.keystoneng.group_get(auth=None, **kwargs)
  95340. Get a single group
  95341. .sp
  95342. CLI Example:
  95343. .INDENT 7.0
  95344. .INDENT 3.5
  95345. .sp
  95346. .nf
  95347. .ft C
  95348. salt \(aq*\(aq keystoneng.group_get name=group1
  95349. salt \(aq*\(aq keystoneng.group_get name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95350. salt \(aq*\(aq keystoneng.group_get name=0e4febc2a5ab4f2c8f374b054162506d
  95351. .ft P
  95352. .fi
  95353. .UNINDENT
  95354. .UNINDENT
  95355. .UNINDENT
  95356. .INDENT 0.0
  95357. .TP
  95358. .B salt.modules.keystoneng.group_list(auth=None, **kwargs)
  95359. List groups
  95360. .sp
  95361. CLI Example:
  95362. .INDENT 7.0
  95363. .INDENT 3.5
  95364. .sp
  95365. .nf
  95366. .ft C
  95367. salt \(aq*\(aq keystoneng.group_list
  95368. salt \(aq*\(aq keystoneng.group_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95369. .ft P
  95370. .fi
  95371. .UNINDENT
  95372. .UNINDENT
  95373. .UNINDENT
  95374. .INDENT 0.0
  95375. .TP
  95376. .B salt.modules.keystoneng.group_search(auth=None, **kwargs)
  95377. Search for groups
  95378. .sp
  95379. CLI Example:
  95380. .INDENT 7.0
  95381. .INDENT 3.5
  95382. .sp
  95383. .nf
  95384. .ft C
  95385. salt \(aq*\(aq keystoneng.group_search name=group1
  95386. salt \(aq*\(aq keystoneng.group_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95387. .ft P
  95388. .fi
  95389. .UNINDENT
  95390. .UNINDENT
  95391. .UNINDENT
  95392. .INDENT 0.0
  95393. .TP
  95394. .B salt.modules.keystoneng.group_update(auth=None, **kwargs)
  95395. Update a group
  95396. .sp
  95397. CLI Example:
  95398. .INDENT 7.0
  95399. .INDENT 3.5
  95400. .sp
  95401. .nf
  95402. .ft C
  95403. salt \(aq*\(aq keystoneng.group_update name=group1 description=\(aqnew description\(aq
  95404. salt \(aq*\(aq keystoneng.group_create name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e new_name=newgroupname
  95405. salt \(aq*\(aq keystoneng.group_create name=0e4febc2a5ab4f2c8f374b054162506d new_name=newgroupname
  95406. .ft P
  95407. .fi
  95408. .UNINDENT
  95409. .UNINDENT
  95410. .UNINDENT
  95411. .INDENT 0.0
  95412. .TP
  95413. .B salt.modules.keystoneng.project_create(auth=None, **kwargs)
  95414. Create a project
  95415. .sp
  95416. CLI Example:
  95417. .INDENT 7.0
  95418. .INDENT 3.5
  95419. .sp
  95420. .nf
  95421. .ft C
  95422. salt \(aq*\(aq keystoneng.project_create name=project1
  95423. salt \(aq*\(aq keystoneng.project_create name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95424. salt \(aq*\(aq keystoneng.project_create name=project3 enabled=False description=\(aqmy project3\(aq
  95425. .ft P
  95426. .fi
  95427. .UNINDENT
  95428. .UNINDENT
  95429. .UNINDENT
  95430. .INDENT 0.0
  95431. .TP
  95432. .B salt.modules.keystoneng.project_delete(auth=None, **kwargs)
  95433. Delete a project
  95434. .sp
  95435. CLI Example:
  95436. .INDENT 7.0
  95437. .INDENT 3.5
  95438. .sp
  95439. .nf
  95440. .ft C
  95441. salt \(aq*\(aq keystoneng.project_delete name=project1
  95442. salt \(aq*\(aq keystoneng.project_delete name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95443. salt \(aq*\(aq keystoneng.project_delete name=f315afcf12f24ad88c92b936c38f2d5a
  95444. .ft P
  95445. .fi
  95446. .UNINDENT
  95447. .UNINDENT
  95448. .UNINDENT
  95449. .INDENT 0.0
  95450. .TP
  95451. .B salt.modules.keystoneng.project_get(auth=None, **kwargs)
  95452. Get a single project
  95453. .sp
  95454. CLI Example:
  95455. .INDENT 7.0
  95456. .INDENT 3.5
  95457. .sp
  95458. .nf
  95459. .ft C
  95460. salt \(aq*\(aq keystoneng.project_get name=project1
  95461. salt \(aq*\(aq keystoneng.project_get name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95462. salt \(aq*\(aq keystoneng.project_get name=f315afcf12f24ad88c92b936c38f2d5a
  95463. .ft P
  95464. .fi
  95465. .UNINDENT
  95466. .UNINDENT
  95467. .UNINDENT
  95468. .INDENT 0.0
  95469. .TP
  95470. .B salt.modules.keystoneng.project_list(auth=None, **kwargs)
  95471. List projects
  95472. .sp
  95473. CLI Example:
  95474. .INDENT 7.0
  95475. .INDENT 3.5
  95476. .sp
  95477. .nf
  95478. .ft C
  95479. salt \(aq*\(aq keystoneng.project_list
  95480. salt \(aq*\(aq keystoneng.project_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95481. .ft P
  95482. .fi
  95483. .UNINDENT
  95484. .UNINDENT
  95485. .UNINDENT
  95486. .INDENT 0.0
  95487. .TP
  95488. .B salt.modules.keystoneng.project_search(auth=None, **kwargs)
  95489. Search projects
  95490. .sp
  95491. CLI Example:
  95492. .INDENT 7.0
  95493. .INDENT 3.5
  95494. .sp
  95495. .nf
  95496. .ft C
  95497. salt \(aq*\(aq keystoneng.project_search
  95498. salt \(aq*\(aq keystoneng.project_search name=project1
  95499. salt \(aq*\(aq keystoneng.project_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95500. .ft P
  95501. .fi
  95502. .UNINDENT
  95503. .UNINDENT
  95504. .UNINDENT
  95505. .INDENT 0.0
  95506. .TP
  95507. .B salt.modules.keystoneng.project_update(auth=None, **kwargs)
  95508. Update a project
  95509. .sp
  95510. CLI Example:
  95511. .INDENT 7.0
  95512. .INDENT 3.5
  95513. .sp
  95514. .nf
  95515. .ft C
  95516. salt \(aq*\(aq keystoneng.project_update name=project1 new_name=newproject
  95517. salt \(aq*\(aq keystoneng.project_update name=project2 enabled=False description=\(aqnew description\(aq
  95518. .ft P
  95519. .fi
  95520. .UNINDENT
  95521. .UNINDENT
  95522. .UNINDENT
  95523. .INDENT 0.0
  95524. .TP
  95525. .B salt.modules.keystoneng.role_assignment_list(auth=None, **kwargs)
  95526. List role assignments
  95527. .sp
  95528. CLI Example:
  95529. .INDENT 7.0
  95530. .INDENT 3.5
  95531. .sp
  95532. .nf
  95533. .ft C
  95534. salt \(aq*\(aq keystoneng.role_assignment_list
  95535. .ft P
  95536. .fi
  95537. .UNINDENT
  95538. .UNINDENT
  95539. .UNINDENT
  95540. .INDENT 0.0
  95541. .TP
  95542. .B salt.modules.keystoneng.role_create(auth=None, **kwargs)
  95543. Create a role
  95544. .sp
  95545. CLI Example:
  95546. .INDENT 7.0
  95547. .INDENT 3.5
  95548. .sp
  95549. .nf
  95550. .ft C
  95551. salt \(aq*\(aq keystoneng.role_create name=role1
  95552. salt \(aq*\(aq keystoneng.role_create name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95553. .ft P
  95554. .fi
  95555. .UNINDENT
  95556. .UNINDENT
  95557. .UNINDENT
  95558. .INDENT 0.0
  95559. .TP
  95560. .B salt.modules.keystoneng.role_delete(auth=None, **kwargs)
  95561. Delete a role
  95562. .sp
  95563. CLI Example:
  95564. .INDENT 7.0
  95565. .INDENT 3.5
  95566. .sp
  95567. .nf
  95568. .ft C
  95569. salt \(aq*\(aq keystoneng.role_delete name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95570. salt \(aq*\(aq keystoneng.role_delete name=1eb6edd5525e4ac39af571adee673559
  95571. .ft P
  95572. .fi
  95573. .UNINDENT
  95574. .UNINDENT
  95575. .UNINDENT
  95576. .INDENT 0.0
  95577. .TP
  95578. .B salt.modules.keystoneng.role_get(auth=None, **kwargs)
  95579. Get a single role
  95580. .sp
  95581. CLI Example:
  95582. .INDENT 7.0
  95583. .INDENT 3.5
  95584. .sp
  95585. .nf
  95586. .ft C
  95587. salt \(aq*\(aq keystoneng.role_get name=role1
  95588. salt \(aq*\(aq keystoneng.role_get name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95589. salt \(aq*\(aq keystoneng.role_get name=1eb6edd5525e4ac39af571adee673559
  95590. .ft P
  95591. .fi
  95592. .UNINDENT
  95593. .UNINDENT
  95594. .UNINDENT
  95595. .INDENT 0.0
  95596. .TP
  95597. .B salt.modules.keystoneng.role_grant(auth=None, **kwargs)
  95598. Grant a role in a project/domain to a user/group
  95599. .sp
  95600. CLI Example:
  95601. .INDENT 7.0
  95602. .INDENT 3.5
  95603. .sp
  95604. .nf
  95605. .ft C
  95606. salt \(aq*\(aq keystoneng.role_grant name=role1 user=user1 project=project1
  95607. salt \(aq*\(aq keystoneng.role_grant name=ddbe3e0ed74e4c7f8027bad4af03339d group=user1 project=project1 domain=domain1
  95608. salt \(aq*\(aq keystoneng.role_grant name=ddbe3e0ed74e4c7f8027bad4af03339d group=19573afd5e4241d8b65c42215bae9704 project=1dcac318a83b4610b7a7f7ba01465548
  95609. .ft P
  95610. .fi
  95611. .UNINDENT
  95612. .UNINDENT
  95613. .UNINDENT
  95614. .INDENT 0.0
  95615. .TP
  95616. .B salt.modules.keystoneng.role_list(auth=None, **kwargs)
  95617. List roles
  95618. .sp
  95619. CLI Example:
  95620. .INDENT 7.0
  95621. .INDENT 3.5
  95622. .sp
  95623. .nf
  95624. .ft C
  95625. salt \(aq*\(aq keystoneng.role_list
  95626. salt \(aq*\(aq keystoneng.role_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95627. .ft P
  95628. .fi
  95629. .UNINDENT
  95630. .UNINDENT
  95631. .UNINDENT
  95632. .INDENT 0.0
  95633. .TP
  95634. .B salt.modules.keystoneng.role_revoke(auth=None, **kwargs)
  95635. Grant a role in a project/domain to a user/group
  95636. .sp
  95637. CLI Example:
  95638. .INDENT 7.0
  95639. .INDENT 3.5
  95640. .sp
  95641. .nf
  95642. .ft C
  95643. salt \(aq*\(aq keystoneng.role_revoke name=role1 user=user1 project=project1
  95644. salt \(aq*\(aq keystoneng.role_revoke name=ddbe3e0ed74e4c7f8027bad4af03339d group=user1 project=project1 domain=domain1
  95645. salt \(aq*\(aq keystoneng.role_revoke name=ddbe3e0ed74e4c7f8027bad4af03339d group=19573afd5e4241d8b65c42215bae9704 project=1dcac318a83b4610b7a7f7ba01465548
  95646. .ft P
  95647. .fi
  95648. .UNINDENT
  95649. .UNINDENT
  95650. .UNINDENT
  95651. .INDENT 0.0
  95652. .TP
  95653. .B salt.modules.keystoneng.role_search(auth=None, **kwargs)
  95654. Search roles
  95655. .sp
  95656. CLI Example:
  95657. .INDENT 7.0
  95658. .INDENT 3.5
  95659. .sp
  95660. .nf
  95661. .ft C
  95662. salt \(aq*\(aq keystoneng.role_search
  95663. salt \(aq*\(aq keystoneng.role_search name=role1
  95664. salt \(aq*\(aq keystoneng.role_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95665. .ft P
  95666. .fi
  95667. .UNINDENT
  95668. .UNINDENT
  95669. .UNINDENT
  95670. .INDENT 0.0
  95671. .TP
  95672. .B salt.modules.keystoneng.role_update(auth=None, **kwargs)
  95673. Update a role
  95674. .sp
  95675. CLI Example:
  95676. .INDENT 7.0
  95677. .INDENT 3.5
  95678. .sp
  95679. .nf
  95680. .ft C
  95681. salt \(aq*\(aq keystoneng.role_update name=role1 new_name=newrole
  95682. salt \(aq*\(aq keystoneng.role_update name=1eb6edd5525e4ac39af571adee673559 new_name=newrole
  95683. .ft P
  95684. .fi
  95685. .UNINDENT
  95686. .UNINDENT
  95687. .UNINDENT
  95688. .INDENT 0.0
  95689. .TP
  95690. .B salt.modules.keystoneng.service_create(auth=None, **kwargs)
  95691. Create a service
  95692. .sp
  95693. CLI Example:
  95694. .INDENT 7.0
  95695. .INDENT 3.5
  95696. .sp
  95697. .nf
  95698. .ft C
  95699. salt \(aq*\(aq keystoneng.service_create name=glance type=image
  95700. salt \(aq*\(aq keystoneng.service_create name=glance type=image description="Image"
  95701. .ft P
  95702. .fi
  95703. .UNINDENT
  95704. .UNINDENT
  95705. .UNINDENT
  95706. .INDENT 0.0
  95707. .TP
  95708. .B salt.modules.keystoneng.service_delete(auth=None, **kwargs)
  95709. Delete a service
  95710. .sp
  95711. CLI Example:
  95712. .INDENT 7.0
  95713. .INDENT 3.5
  95714. .sp
  95715. .nf
  95716. .ft C
  95717. salt \(aq*\(aq keystoneng.service_delete name=glance
  95718. salt \(aq*\(aq keystoneng.service_delete name=39cc1327cdf744ab815331554430e8ec
  95719. .ft P
  95720. .fi
  95721. .UNINDENT
  95722. .UNINDENT
  95723. .UNINDENT
  95724. .INDENT 0.0
  95725. .TP
  95726. .B salt.modules.keystoneng.service_get(auth=None, **kwargs)
  95727. Get a single service
  95728. .sp
  95729. CLI Example:
  95730. .INDENT 7.0
  95731. .INDENT 3.5
  95732. .sp
  95733. .nf
  95734. .ft C
  95735. salt \(aq*\(aq keystoneng.service_get name=glance
  95736. salt \(aq*\(aq keystoneng.service_get name=75a5804638944b3ab54f7fbfcec2305a
  95737. .ft P
  95738. .fi
  95739. .UNINDENT
  95740. .UNINDENT
  95741. .UNINDENT
  95742. .INDENT 0.0
  95743. .TP
  95744. .B salt.modules.keystoneng.service_list(auth=None, **kwargs)
  95745. List services
  95746. .sp
  95747. CLI Example:
  95748. .INDENT 7.0
  95749. .INDENT 3.5
  95750. .sp
  95751. .nf
  95752. .ft C
  95753. salt \(aq*\(aq keystoneng.service_list
  95754. .ft P
  95755. .fi
  95756. .UNINDENT
  95757. .UNINDENT
  95758. .UNINDENT
  95759. .INDENT 0.0
  95760. .TP
  95761. .B salt.modules.keystoneng.service_search(auth=None, **kwargs)
  95762. Search services
  95763. .sp
  95764. CLI Example:
  95765. .INDENT 7.0
  95766. .INDENT 3.5
  95767. .sp
  95768. .nf
  95769. .ft C
  95770. salt \(aq*\(aq keystoneng.service_search
  95771. salt \(aq*\(aq keystoneng.service_search name=glance
  95772. salt \(aq*\(aq keystoneng.service_search name=135f0403f8e544dc9008c6739ecda860
  95773. .ft P
  95774. .fi
  95775. .UNINDENT
  95776. .UNINDENT
  95777. .UNINDENT
  95778. .INDENT 0.0
  95779. .TP
  95780. .B salt.modules.keystoneng.service_update(auth=None, **kwargs)
  95781. Update a service
  95782. .sp
  95783. CLI Example:
  95784. .INDENT 7.0
  95785. .INDENT 3.5
  95786. .sp
  95787. .nf
  95788. .ft C
  95789. salt \(aq*\(aq keystoneng.service_update name=cinder type=volumev2
  95790. salt \(aq*\(aq keystoneng.service_update name=cinder description=\(aqnew description\(aq
  95791. salt \(aq*\(aq keystoneng.service_update name=ab4d35e269f147b3ae2d849f77f5c88f enabled=False
  95792. .ft P
  95793. .fi
  95794. .UNINDENT
  95795. .UNINDENT
  95796. .UNINDENT
  95797. .INDENT 0.0
  95798. .TP
  95799. .B salt.modules.keystoneng.setup_clouds(auth=None)
  95800. Call functions to create Shade cloud objects in __context__ to take
  95801. advantage of Shade\(aqs in\-memory caching across several states
  95802. .UNINDENT
  95803. .INDENT 0.0
  95804. .TP
  95805. .B salt.modules.keystoneng.user_create(auth=None, **kwargs)
  95806. Create a user
  95807. .sp
  95808. CLI Example:
  95809. .INDENT 7.0
  95810. .INDENT 3.5
  95811. .sp
  95812. .nf
  95813. .ft C
  95814. salt \(aq*\(aq keystoneng.user_create name=user1
  95815. salt \(aq*\(aq keystoneng.user_create name=user2 password=1234 enabled=False
  95816. salt \(aq*\(aq keystoneng.user_create name=user3 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95817. .ft P
  95818. .fi
  95819. .UNINDENT
  95820. .UNINDENT
  95821. .UNINDENT
  95822. .INDENT 0.0
  95823. .TP
  95824. .B salt.modules.keystoneng.user_delete(auth=None, **kwargs)
  95825. Delete a user
  95826. .sp
  95827. CLI Example:
  95828. .INDENT 7.0
  95829. .INDENT 3.5
  95830. .sp
  95831. .nf
  95832. .ft C
  95833. salt \(aq*\(aq keystoneng.user_delete name=user1
  95834. salt \(aq*\(aq keystoneng.user_delete name=user2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95835. salt \(aq*\(aq keystoneng.user_delete name=a42cbbfa1e894e839fd0f584d22e321f
  95836. .ft P
  95837. .fi
  95838. .UNINDENT
  95839. .UNINDENT
  95840. .UNINDENT
  95841. .INDENT 0.0
  95842. .TP
  95843. .B salt.modules.keystoneng.user_get(auth=None, **kwargs)
  95844. Get a single user
  95845. .sp
  95846. CLI Example:
  95847. .INDENT 7.0
  95848. .INDENT 3.5
  95849. .sp
  95850. .nf
  95851. .ft C
  95852. salt \(aq*\(aq keystoneng.user_get name=user1
  95853. salt \(aq*\(aq keystoneng.user_get name=user1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95854. salt \(aq*\(aq keystoneng.user_get name=02cffaa173b2460f98e40eda3748dae5
  95855. .ft P
  95856. .fi
  95857. .UNINDENT
  95858. .UNINDENT
  95859. .UNINDENT
  95860. .INDENT 0.0
  95861. .TP
  95862. .B salt.modules.keystoneng.user_list(auth=None, **kwargs)
  95863. List users
  95864. .sp
  95865. CLI Example:
  95866. .INDENT 7.0
  95867. .INDENT 3.5
  95868. .sp
  95869. .nf
  95870. .ft C
  95871. salt \(aq*\(aq keystoneng.user_list
  95872. salt \(aq*\(aq keystoneng.user_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95873. .ft P
  95874. .fi
  95875. .UNINDENT
  95876. .UNINDENT
  95877. .UNINDENT
  95878. .INDENT 0.0
  95879. .TP
  95880. .B salt.modules.keystoneng.user_search(auth=None, **kwargs)
  95881. List users
  95882. .sp
  95883. CLI Example:
  95884. .INDENT 7.0
  95885. .INDENT 3.5
  95886. .sp
  95887. .nf
  95888. .ft C
  95889. salt \(aq*\(aq keystoneng.user_list
  95890. salt \(aq*\(aq keystoneng.user_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95891. .ft P
  95892. .fi
  95893. .UNINDENT
  95894. .UNINDENT
  95895. .UNINDENT
  95896. .INDENT 0.0
  95897. .TP
  95898. .B salt.modules.keystoneng.user_update(auth=None, **kwargs)
  95899. Update a user
  95900. .sp
  95901. CLI Example:
  95902. .INDENT 7.0
  95903. .INDENT 3.5
  95904. .sp
  95905. .nf
  95906. .ft C
  95907. salt \(aq*\(aq keystoneng.user_update name=user1 enabled=False description=\(aqnew description\(aq
  95908. salt \(aq*\(aq keystoneng.user_update name=user1 new_name=newuser
  95909. .ft P
  95910. .fi
  95911. .UNINDENT
  95912. .UNINDENT
  95913. .UNINDENT
  95914. .SS salt.modules.keystore
  95915. .sp
  95916. Module to interact with keystores
  95917. .INDENT 0.0
  95918. .TP
  95919. .B salt.modules.keystore.add(name, keystore, passphrase, certificate, private_key=None)
  95920. Adds certificates to an existing keystore or creates a new one if necesssary.
  95921. .INDENT 7.0
  95922. .TP
  95923. .B Parameters
  95924. .INDENT 7.0
  95925. .IP \(bu 2
  95926. \fBname\fP \-\- alias for the certificate
  95927. .IP \(bu 2
  95928. \fBkeystore\fP \-\- The path to the keystore file to query
  95929. .IP \(bu 2
  95930. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  95931. .IP \(bu 2
  95932. \fBcertificate\fP \-\- The PEM public certificate to add to keystore. Can be a string for file.
  95933. .IP \(bu 2
  95934. \fBprivate_key\fP \-\- (Optional for TrustedCert) The PEM private key to add to the keystore
  95935. .UNINDENT
  95936. .UNINDENT
  95937. .sp
  95938. CLI Example:
  95939. .INDENT 7.0
  95940. .INDENT 3.5
  95941. .sp
  95942. .nf
  95943. .ft C
  95944. salt \(aq*\(aq keystore.add aliasname /tmp/test.store changeit /tmp/testcert.crt
  95945. salt \(aq*\(aq keystore.add aliasname /tmp/test.store changeit certificate="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-SIb...BM=\-\-\-\-\-END CERTIFICATE\-\-\-\-\-"
  95946. salt \(aq*\(aq keystore.add keyname /tmp/test.store changeit /tmp/512.cert private_key=/tmp/512.key
  95947. .ft P
  95948. .fi
  95949. .UNINDENT
  95950. .UNINDENT
  95951. .UNINDENT
  95952. .INDENT 0.0
  95953. .TP
  95954. .B salt.modules.keystore.list(keystore, passphrase, alias=None, return_cert=False)
  95955. Lists certificates in a keytool managed keystore.
  95956. .INDENT 7.0
  95957. .TP
  95958. .B Parameters
  95959. .INDENT 7.0
  95960. .IP \(bu 2
  95961. \fBkeystore\fP \-\- The path to the keystore file to query
  95962. .IP \(bu 2
  95963. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  95964. .IP \(bu 2
  95965. \fBalias\fP \-\- (Optional) If found, displays details on only this key
  95966. .IP \(bu 2
  95967. \fBreturn_certs\fP \-\- (Optional) Also return certificate PEM.
  95968. .UNINDENT
  95969. .UNINDENT
  95970. .sp
  95971. \fBWARNING:\fP
  95972. .INDENT 7.0
  95973. .INDENT 3.5
  95974. There are security implications for using return_cert to return decrypted certificates.
  95975. .UNINDENT
  95976. .UNINDENT
  95977. .sp
  95978. CLI Example:
  95979. .INDENT 7.0
  95980. .INDENT 3.5
  95981. .sp
  95982. .nf
  95983. .ft C
  95984. salt \(aq*\(aq keystore.list /usr/lib/jvm/java\-8/jre/lib/security/cacerts changeit
  95985. salt \(aq*\(aq keystore.list /usr/lib/jvm/java\-8/jre/lib/security/cacerts changeit debian:verisign_\-_g5.pem
  95986. .ft P
  95987. .fi
  95988. .UNINDENT
  95989. .UNINDENT
  95990. .UNINDENT
  95991. .INDENT 0.0
  95992. .TP
  95993. .B salt.modules.keystore.remove(name, keystore, passphrase)
  95994. Removes a certificate from an existing keystore.
  95995. Returns True if remove was successful, otherwise False
  95996. .INDENT 7.0
  95997. .TP
  95998. .B Parameters
  95999. .INDENT 7.0
  96000. .IP \(bu 2
  96001. \fBname\fP \-\- alias for the certificate
  96002. .IP \(bu 2
  96003. \fBkeystore\fP \-\- The path to the keystore file to query
  96004. .IP \(bu 2
  96005. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  96006. .UNINDENT
  96007. .UNINDENT
  96008. .sp
  96009. CLI Example:
  96010. .INDENT 7.0
  96011. .INDENT 3.5
  96012. .sp
  96013. .nf
  96014. .ft C
  96015. salt \(aq*\(aq keystore.remove aliasname /tmp/test.store changeit
  96016. .ft P
  96017. .fi
  96018. .UNINDENT
  96019. .UNINDENT
  96020. .UNINDENT
  96021. .SS salt.modules.linux_service
  96022. .sp
  96023. 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.
  96024. .INDENT 0.0
  96025. .TP
  96026. .B salt.modules.linux_service.available(name)
  96027. Returns \fBTrue\fP if the specified service is available, otherwise returns
  96028. \fBFalse\fP\&.
  96029. .sp
  96030. CLI Example:
  96031. .INDENT 7.0
  96032. .INDENT 3.5
  96033. .sp
  96034. .nf
  96035. .ft C
  96036. salt \(aq*\(aq service.available sshd
  96037. .ft P
  96038. .fi
  96039. .UNINDENT
  96040. .UNINDENT
  96041. .UNINDENT
  96042. .INDENT 0.0
  96043. .TP
  96044. .B salt.modules.linux_service.get_all()
  96045. Return a list of all available services
  96046. .sp
  96047. CLI Example:
  96048. .INDENT 7.0
  96049. .INDENT 3.5
  96050. .sp
  96051. .nf
  96052. .ft C
  96053. salt \(aq*\(aq service.get_all
  96054. .ft P
  96055. .fi
  96056. .UNINDENT
  96057. .UNINDENT
  96058. .UNINDENT
  96059. .INDENT 0.0
  96060. .TP
  96061. .B salt.modules.linux_service.missing(name)
  96062. The inverse of service.available.
  96063. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  96064. \fBFalse\fP\&.
  96065. .sp
  96066. CLI Example:
  96067. .INDENT 7.0
  96068. .INDENT 3.5
  96069. .sp
  96070. .nf
  96071. .ft C
  96072. salt \(aq*\(aq service.missing sshd
  96073. .ft P
  96074. .fi
  96075. .UNINDENT
  96076. .UNINDENT
  96077. .UNINDENT
  96078. .INDENT 0.0
  96079. .TP
  96080. .B salt.modules.linux_service.reload_(name)
  96081. Refreshes config files by calling service reload. Does not perform a full
  96082. restart.
  96083. .sp
  96084. CLI Example:
  96085. .INDENT 7.0
  96086. .INDENT 3.5
  96087. .sp
  96088. .nf
  96089. .ft C
  96090. salt \(aq*\(aq service.reload <service name>
  96091. .ft P
  96092. .fi
  96093. .UNINDENT
  96094. .UNINDENT
  96095. .UNINDENT
  96096. .INDENT 0.0
  96097. .TP
  96098. .B salt.modules.linux_service.restart(name)
  96099. Restart the specified service
  96100. .sp
  96101. CLI Example:
  96102. .INDENT 7.0
  96103. .INDENT 3.5
  96104. .sp
  96105. .nf
  96106. .ft C
  96107. salt \(aq*\(aq service.restart <service name>
  96108. .ft P
  96109. .fi
  96110. .UNINDENT
  96111. .UNINDENT
  96112. .UNINDENT
  96113. .INDENT 0.0
  96114. .TP
  96115. .B salt.modules.linux_service.run(name, action)
  96116. Run the specified service with an action.
  96117. .sp
  96118. New in version 2015.8.1.
  96119. .INDENT 7.0
  96120. .TP
  96121. .B name
  96122. Service name.
  96123. .TP
  96124. .B action
  96125. Action name (like start, stop, reload, restart).
  96126. .UNINDENT
  96127. .sp
  96128. CLI Example:
  96129. .INDENT 7.0
  96130. .INDENT 3.5
  96131. .sp
  96132. .nf
  96133. .ft C
  96134. salt \(aq*\(aq service.run apache2 reload
  96135. salt \(aq*\(aq service.run postgresql initdb
  96136. .ft P
  96137. .fi
  96138. .UNINDENT
  96139. .UNINDENT
  96140. .UNINDENT
  96141. .INDENT 0.0
  96142. .TP
  96143. .B salt.modules.linux_service.start(name)
  96144. Start the specified service
  96145. .sp
  96146. CLI Example:
  96147. .INDENT 7.0
  96148. .INDENT 3.5
  96149. .sp
  96150. .nf
  96151. .ft C
  96152. salt \(aq*\(aq service.start <service name>
  96153. .ft P
  96154. .fi
  96155. .UNINDENT
  96156. .UNINDENT
  96157. .UNINDENT
  96158. .INDENT 0.0
  96159. .TP
  96160. .B salt.modules.linux_service.status(name, sig=None)
  96161. Return the status for a service.
  96162. If the name contains globbing, a dict mapping service name to PID or empty
  96163. string is returned.
  96164. .sp
  96165. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  96166. .INDENT 7.0
  96167. .TP
  96168. .B Parameters
  96169. .INDENT 7.0
  96170. .IP \(bu 2
  96171. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  96172. .IP \(bu 2
  96173. \fBsig\fP (\fI\%str\fP) \-\- Signature to use to find the service via ps
  96174. .UNINDENT
  96175. .TP
  96176. .B Returns
  96177. PID if running, empty otherwise
  96178. dict: Maps service name to PID if running, empty string otherwise
  96179. .TP
  96180. .B Return type
  96181. string
  96182. .UNINDENT
  96183. .sp
  96184. CLI Example:
  96185. .INDENT 7.0
  96186. .INDENT 3.5
  96187. .sp
  96188. .nf
  96189. .ft C
  96190. salt \(aq*\(aq service.status <service name> [service signature]
  96191. .ft P
  96192. .fi
  96193. .UNINDENT
  96194. .UNINDENT
  96195. .UNINDENT
  96196. .INDENT 0.0
  96197. .TP
  96198. .B salt.modules.linux_service.stop(name)
  96199. Stop the specified service
  96200. .sp
  96201. CLI Example:
  96202. .INDENT 7.0
  96203. .INDENT 3.5
  96204. .sp
  96205. .nf
  96206. .ft C
  96207. salt \(aq*\(aq service.stop <service name>
  96208. .ft P
  96209. .fi
  96210. .UNINDENT
  96211. .UNINDENT
  96212. .UNINDENT
  96213. .SS salt.modules.logmod module
  96214. .SS On\-demand logging
  96215. .sp
  96216. New in version 2017.7.0.
  96217. .sp
  96218. The sole purpose of this module is logging messages in the (proxy) minion.
  96219. It comes very handy when debugging complex Jinja templates, for example:
  96220. .INDENT 0.0
  96221. .INDENT 3.5
  96222. .sp
  96223. .nf
  96224. .ft C
  96225. {%\- for var in range(10) %}
  96226. {%\- do salt.log.info(var) \-%}
  96227. {%\- endfor %}
  96228. .ft P
  96229. .fi
  96230. .UNINDENT
  96231. .UNINDENT
  96232. .sp
  96233. CLI Example:
  96234. .INDENT 0.0
  96235. .INDENT 3.5
  96236. .sp
  96237. .nf
  96238. .ft C
  96239. salt \(aq*\(aq log.error "Please don\(aqt do that, this module is not for CLI use!"
  96240. .ft P
  96241. .fi
  96242. .UNINDENT
  96243. .UNINDENT
  96244. .INDENT 0.0
  96245. .TP
  96246. .B salt.modules.logmod.critical(message)
  96247. Log message at level CRITICAL.
  96248. .UNINDENT
  96249. .INDENT 0.0
  96250. .TP
  96251. .B salt.modules.logmod.debug(message)
  96252. Log message at level DEBUG.
  96253. .UNINDENT
  96254. .INDENT 0.0
  96255. .TP
  96256. .B salt.modules.logmod.error(message)
  96257. Log message at level ERROR.
  96258. .UNINDENT
  96259. .INDENT 0.0
  96260. .TP
  96261. .B salt.modules.logmod.exception(message)
  96262. Log message at level EXCEPTION.
  96263. .UNINDENT
  96264. .INDENT 0.0
  96265. .TP
  96266. .B salt.modules.logmod.info(message)
  96267. Log message at level INFO.
  96268. .UNINDENT
  96269. .INDENT 0.0
  96270. .TP
  96271. .B salt.modules.logmod.warning(message)
  96272. Log message at level WARNING.
  96273. .UNINDENT
  96274. .SS salt.modules.modjk
  96275. .sp
  96276. Control Modjk via the Apache Tomcat "Status" worker
  96277. (\fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP)
  96278. .sp
  96279. Below is an example of the configuration needed for this module. This
  96280. configuration data can be placed either in grains or pillar\&.
  96281. .sp
  96282. If using grains, this can be accomplished statically or via a grain module\&.
  96283. .sp
  96284. If using pillar, the yaml configuration can be placed directly into a pillar
  96285. SLS file, making this both the easier and more dynamic method of configuring
  96286. this module.
  96287. .INDENT 0.0
  96288. .INDENT 3.5
  96289. .sp
  96290. .nf
  96291. .ft C
  96292. modjk:
  96293. default:
  96294. url: http://localhost/jkstatus
  96295. user: modjk
  96296. pass: secret
  96297. realm: authentication realm for digest passwords
  96298. timeout: 5
  96299. otherVhost:
  96300. url: http://otherVhost/jkstatus
  96301. user: modjk
  96302. pass: secret2
  96303. realm: authentication realm2 for digest passwords
  96304. timeout: 600
  96305. .ft P
  96306. .fi
  96307. .UNINDENT
  96308. .UNINDENT
  96309. .INDENT 0.0
  96310. .TP
  96311. .B salt.modules.modjk.bulk_activate(workers, lbn, profile=u\(aqdefault\(aq)
  96312. Activate all the given workers in the specific load balancer
  96313. .sp
  96314. CLI Examples:
  96315. .INDENT 7.0
  96316. .INDENT 3.5
  96317. .sp
  96318. .nf
  96319. .ft C
  96320. salt \(aq*\(aq modjk.bulk_activate node1,node2,node3 loadbalancer1
  96321. salt \(aq*\(aq modjk.bulk_activate node1,node2,node3 loadbalancer1 other\-profile
  96322. salt \(aq*\(aq modjk.bulk_activate ["node1","node2","node3"] loadbalancer1
  96323. salt \(aq*\(aq modjk.bulk_activate ["node1","node2","node3"] loadbalancer1 other\-profile
  96324. .ft P
  96325. .fi
  96326. .UNINDENT
  96327. .UNINDENT
  96328. .UNINDENT
  96329. .INDENT 0.0
  96330. .TP
  96331. .B salt.modules.modjk.bulk_disable(workers, lbn, profile=u\(aqdefault\(aq)
  96332. Disable all the given workers in the specific load balancer
  96333. .sp
  96334. CLI Examples:
  96335. .INDENT 7.0
  96336. .INDENT 3.5
  96337. .sp
  96338. .nf
  96339. .ft C
  96340. salt \(aq*\(aq modjk.bulk_disable node1,node2,node3 loadbalancer1
  96341. salt \(aq*\(aq modjk.bulk_disable node1,node2,node3 loadbalancer1 other\-profile
  96342. salt \(aq*\(aq modjk.bulk_disable ["node1","node2","node3"] loadbalancer1
  96343. salt \(aq*\(aq modjk.bulk_disable ["node1","node2","node3"] loadbalancer1 other\-profile
  96344. .ft P
  96345. .fi
  96346. .UNINDENT
  96347. .UNINDENT
  96348. .UNINDENT
  96349. .INDENT 0.0
  96350. .TP
  96351. .B salt.modules.modjk.bulk_recover(workers, lbn, profile=u\(aqdefault\(aq)
  96352. Recover all the given workers in the specific load balancer
  96353. .sp
  96354. CLI Examples:
  96355. .INDENT 7.0
  96356. .INDENT 3.5
  96357. .sp
  96358. .nf
  96359. .ft C
  96360. salt \(aq*\(aq modjk.bulk_recover node1,node2,node3 loadbalancer1
  96361. salt \(aq*\(aq modjk.bulk_recover node1,node2,node3 loadbalancer1 other\-profile
  96362. salt \(aq*\(aq modjk.bulk_recover ["node1","node2","node3"] loadbalancer1
  96363. salt \(aq*\(aq modjk.bulk_recover ["node1","node2","node3"] loadbalancer1 other\-profile
  96364. .ft P
  96365. .fi
  96366. .UNINDENT
  96367. .UNINDENT
  96368. .UNINDENT
  96369. .INDENT 0.0
  96370. .TP
  96371. .B salt.modules.modjk.bulk_stop(workers, lbn, profile=u\(aqdefault\(aq)
  96372. Stop all the given workers in the specific load balancer
  96373. .sp
  96374. CLI Examples:
  96375. .INDENT 7.0
  96376. .INDENT 3.5
  96377. .sp
  96378. .nf
  96379. .ft C
  96380. salt \(aq*\(aq modjk.bulk_stop node1,node2,node3 loadbalancer1
  96381. salt \(aq*\(aq modjk.bulk_stop node1,node2,node3 loadbalancer1 other\-profile
  96382. salt \(aq*\(aq modjk.bulk_stop ["node1","node2","node3"] loadbalancer1
  96383. salt \(aq*\(aq modjk.bulk_stop ["node1","node2","node3"] loadbalancer1 other\-profile
  96384. .ft P
  96385. .fi
  96386. .UNINDENT
  96387. .UNINDENT
  96388. .UNINDENT
  96389. .INDENT 0.0
  96390. .TP
  96391. .B salt.modules.modjk.dump_config(profile=u\(aqdefault\(aq)
  96392. Dump the original configuration that was loaded from disk
  96393. .sp
  96394. CLI Examples:
  96395. .INDENT 7.0
  96396. .INDENT 3.5
  96397. .sp
  96398. .nf
  96399. .ft C
  96400. salt \(aq*\(aq modjk.dump_config
  96401. salt \(aq*\(aq modjk.dump_config other\-profile
  96402. .ft P
  96403. .fi
  96404. .UNINDENT
  96405. .UNINDENT
  96406. .UNINDENT
  96407. .INDENT 0.0
  96408. .TP
  96409. .B salt.modules.modjk.get_running(profile=u\(aqdefault\(aq)
  96410. Get the current running config (not from disk)
  96411. .sp
  96412. CLI Examples:
  96413. .INDENT 7.0
  96414. .INDENT 3.5
  96415. .sp
  96416. .nf
  96417. .ft C
  96418. salt \(aq*\(aq modjk.get_running
  96419. salt \(aq*\(aq modjk.get_running other\-profile
  96420. .ft P
  96421. .fi
  96422. .UNINDENT
  96423. .UNINDENT
  96424. .UNINDENT
  96425. .INDENT 0.0
  96426. .TP
  96427. .B salt.modules.modjk.lb_edit(lbn, settings, profile=u\(aqdefault\(aq)
  96428. Edit the loadbalancer settings
  96429. .sp
  96430. Note: \fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP
  96431. Data Parameters for the standard Update Action
  96432. .sp
  96433. CLI Examples:
  96434. .INDENT 7.0
  96435. .INDENT 3.5
  96436. .sp
  96437. .nf
  96438. .ft C
  96439. salt \(aq*\(aq modjk.lb_edit loadbalancer1 "{\(aqvlr\(aq: 1, \(aqvlt\(aq: 60}"
  96440. salt \(aq*\(aq modjk.lb_edit loadbalancer1 "{\(aqvlr\(aq: 1, \(aqvlt\(aq: 60}" other\-profile
  96441. .ft P
  96442. .fi
  96443. .UNINDENT
  96444. .UNINDENT
  96445. .UNINDENT
  96446. .INDENT 0.0
  96447. .TP
  96448. .B salt.modules.modjk.list_configured_members(lbn, profile=u\(aqdefault\(aq)
  96449. Return a list of member workers from the configuration files
  96450. .sp
  96451. CLI Examples:
  96452. .INDENT 7.0
  96453. .INDENT 3.5
  96454. .sp
  96455. .nf
  96456. .ft C
  96457. salt \(aq*\(aq modjk.list_configured_members loadbalancer1
  96458. salt \(aq*\(aq modjk.list_configured_members loadbalancer1 other\-profile
  96459. .ft P
  96460. .fi
  96461. .UNINDENT
  96462. .UNINDENT
  96463. .UNINDENT
  96464. .INDENT 0.0
  96465. .TP
  96466. .B salt.modules.modjk.recover_all(lbn, profile=u\(aqdefault\(aq)
  96467. Set the all the workers in lbn to recover and activate them if they are not
  96468. .sp
  96469. CLI Examples:
  96470. .INDENT 7.0
  96471. .INDENT 3.5
  96472. .sp
  96473. .nf
  96474. .ft C
  96475. salt \(aq*\(aq modjk.recover_all loadbalancer1
  96476. salt \(aq*\(aq modjk.recover_all loadbalancer1 other\-profile
  96477. .ft P
  96478. .fi
  96479. .UNINDENT
  96480. .UNINDENT
  96481. .UNINDENT
  96482. .INDENT 0.0
  96483. .TP
  96484. .B salt.modules.modjk.reset_stats(lbn, profile=u\(aqdefault\(aq)
  96485. Reset all runtime statistics for the load balancer
  96486. .sp
  96487. CLI Examples:
  96488. .INDENT 7.0
  96489. .INDENT 3.5
  96490. .sp
  96491. .nf
  96492. .ft C
  96493. salt \(aq*\(aq modjk.reset_stats loadbalancer1
  96494. salt \(aq*\(aq modjk.reset_stats loadbalancer1 other\-profile
  96495. .ft P
  96496. .fi
  96497. .UNINDENT
  96498. .UNINDENT
  96499. .UNINDENT
  96500. .INDENT 0.0
  96501. .TP
  96502. .B salt.modules.modjk.version(profile=u\(aqdefault\(aq)
  96503. Return the modjk version
  96504. .sp
  96505. CLI Examples:
  96506. .INDENT 7.0
  96507. .INDENT 3.5
  96508. .sp
  96509. .nf
  96510. .ft C
  96511. salt \(aq*\(aq modjk.version
  96512. salt \(aq*\(aq modjk.version other\-profile
  96513. .ft P
  96514. .fi
  96515. .UNINDENT
  96516. .UNINDENT
  96517. .UNINDENT
  96518. .INDENT 0.0
  96519. .TP
  96520. .B salt.modules.modjk.worker_activate(worker, lbn, profile=u\(aqdefault\(aq)
  96521. Set the worker to activate state in the lbn load balancer
  96522. .sp
  96523. CLI Examples:
  96524. .INDENT 7.0
  96525. .INDENT 3.5
  96526. .sp
  96527. .nf
  96528. .ft C
  96529. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1
  96530. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1 other\-profile
  96531. .ft P
  96532. .fi
  96533. .UNINDENT
  96534. .UNINDENT
  96535. .UNINDENT
  96536. .INDENT 0.0
  96537. .TP
  96538. .B salt.modules.modjk.worker_disable(worker, lbn, profile=u\(aqdefault\(aq)
  96539. Set the worker to disable state in the lbn load balancer
  96540. .sp
  96541. CLI Examples:
  96542. .INDENT 7.0
  96543. .INDENT 3.5
  96544. .sp
  96545. .nf
  96546. .ft C
  96547. salt \(aq*\(aq modjk.worker_disable node1 loadbalancer1
  96548. salt \(aq*\(aq modjk.worker_disable node1 loadbalancer1 other\-profile
  96549. .ft P
  96550. .fi
  96551. .UNINDENT
  96552. .UNINDENT
  96553. .UNINDENT
  96554. .INDENT 0.0
  96555. .TP
  96556. .B salt.modules.modjk.worker_edit(worker, lbn, settings, profile=u\(aqdefault\(aq)
  96557. Edit the worker settings
  96558. .sp
  96559. Note: \fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP
  96560. Data Parameters for the standard Update Action
  96561. .sp
  96562. CLI Examples:
  96563. .INDENT 7.0
  96564. .INDENT 3.5
  96565. .sp
  96566. .nf
  96567. .ft C
  96568. salt \(aq*\(aq modjk.worker_edit node1 loadbalancer1 "{\(aqvwf\(aq: 500, \(aqvwd\(aq: 60}"
  96569. salt \(aq*\(aq modjk.worker_edit node1 loadbalancer1 "{\(aqvwf\(aq: 500, \(aqvwd\(aq: 60}" other\-profile
  96570. .ft P
  96571. .fi
  96572. .UNINDENT
  96573. .UNINDENT
  96574. .UNINDENT
  96575. .INDENT 0.0
  96576. .TP
  96577. .B salt.modules.modjk.worker_recover(worker, lbn, profile=u\(aqdefault\(aq)
  96578. Set the worker to recover
  96579. this module will fail if it is in OK state
  96580. .sp
  96581. CLI Examples:
  96582. .INDENT 7.0
  96583. .INDENT 3.5
  96584. .sp
  96585. .nf
  96586. .ft C
  96587. salt \(aq*\(aq modjk.worker_recover node1 loadbalancer1
  96588. salt \(aq*\(aq modjk.worker_recover node1 loadbalancer1 other\-profile
  96589. .ft P
  96590. .fi
  96591. .UNINDENT
  96592. .UNINDENT
  96593. .UNINDENT
  96594. .INDENT 0.0
  96595. .TP
  96596. .B salt.modules.modjk.worker_status(worker, profile=u\(aqdefault\(aq)
  96597. Return the state of the worker
  96598. .sp
  96599. CLI Examples:
  96600. .INDENT 7.0
  96601. .INDENT 3.5
  96602. .sp
  96603. .nf
  96604. .ft C
  96605. salt \(aq*\(aq modjk.worker_status node1
  96606. salt \(aq*\(aq modjk.worker_status node1 other\-profile
  96607. .ft P
  96608. .fi
  96609. .UNINDENT
  96610. .UNINDENT
  96611. .UNINDENT
  96612. .INDENT 0.0
  96613. .TP
  96614. .B salt.modules.modjk.worker_stop(worker, lbn, profile=u\(aqdefault\(aq)
  96615. Set the worker to stopped state in the lbn load balancer
  96616. .sp
  96617. CLI Examples:
  96618. .INDENT 7.0
  96619. .INDENT 3.5
  96620. .sp
  96621. .nf
  96622. .ft C
  96623. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1
  96624. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1 other\-profile
  96625. .ft P
  96626. .fi
  96627. .UNINDENT
  96628. .UNINDENT
  96629. .UNINDENT
  96630. .INDENT 0.0
  96631. .TP
  96632. .B salt.modules.modjk.workers(profile=u\(aqdefault\(aq)
  96633. Return a list of member workers and their status
  96634. .sp
  96635. CLI Examples:
  96636. .INDENT 7.0
  96637. .INDENT 3.5
  96638. .sp
  96639. .nf
  96640. .ft C
  96641. salt \(aq*\(aq modjk.workers
  96642. salt \(aq*\(aq modjk.workers other\-profile
  96643. .ft P
  96644. .fi
  96645. .UNINDENT
  96646. .UNINDENT
  96647. .UNINDENT
  96648. .SS salt.modules.nagios
  96649. .sp
  96650. Run nagios plugins/checks from salt and get the return as data.
  96651. .INDENT 0.0
  96652. .TP
  96653. .B salt.modules.nagios.list_plugins()
  96654. List all the nagios plugins
  96655. .sp
  96656. CLI Example:
  96657. .INDENT 7.0
  96658. .INDENT 3.5
  96659. .sp
  96660. .nf
  96661. .ft C
  96662. salt \(aq*\(aq nagios.list_plugins
  96663. .ft P
  96664. .fi
  96665. .UNINDENT
  96666. .UNINDENT
  96667. .UNINDENT
  96668. .INDENT 0.0
  96669. .TP
  96670. .B salt.modules.nagios.retcode(plugin, args=u\(aq\(aq, key_name=None)
  96671. Run one nagios plugin and return retcode of the execution
  96672. .UNINDENT
  96673. .INDENT 0.0
  96674. .TP
  96675. .B salt.modules.nagios.retcode_pillar(pillar_name)
  96676. Run one or more nagios plugins from pillar data and get the result of cmd.retcode
  96677. The pillar have to be in this format:
  96678. .INDENT 7.0
  96679. .INDENT 3.5
  96680. .sp
  96681. .nf
  96682. .ft C
  96683. \-\-\-\-\-\-
  96684. webserver:
  96685. Ping_google:
  96686. \- check_icmp: 8.8.8.8
  96687. \- check_icmp: google.com
  96688. Load:
  96689. \- check_load: \-w 0.8 \-c 1
  96690. APT:
  96691. \- check_apt
  96692. \-\-\-\-\-\-\-
  96693. .ft P
  96694. .fi
  96695. .UNINDENT
  96696. .UNINDENT
  96697. .sp
  96698. webserver is the role to check, the next keys are the group and the items
  96699. the check with the arguments if needed
  96700. .sp
  96701. You must to group different checks(one o more) and always it will return
  96702. the highest value of all the checks
  96703. .sp
  96704. CLI Example:
  96705. .INDENT 7.0
  96706. .INDENT 3.5
  96707. .sp
  96708. .nf
  96709. .ft C
  96710. salt \(aq*\(aq nagios.retcode webserver
  96711. .ft P
  96712. .fi
  96713. .UNINDENT
  96714. .UNINDENT
  96715. .UNINDENT
  96716. .INDENT 0.0
  96717. .TP
  96718. .B salt.modules.nagios.run(plugin, args=u\(aq\(aq)
  96719. Run nagios plugin and return all the data execution with cmd.run
  96720. .sp
  96721. CLI Example:
  96722. .INDENT 7.0
  96723. .INDENT 3.5
  96724. .sp
  96725. .nf
  96726. .ft C
  96727. salt \(aq*\(aq nagios.run check_apt
  96728. salt \(aq*\(aq nagios.run check_icmp \(aq8.8.8.8\(aq
  96729. .ft P
  96730. .fi
  96731. .UNINDENT
  96732. .UNINDENT
  96733. .UNINDENT
  96734. .INDENT 0.0
  96735. .TP
  96736. .B salt.modules.nagios.run_all(plugin, args=u\(aq\(aq)
  96737. Run nagios plugin and return all the data execution with cmd.run_all
  96738. .UNINDENT
  96739. .INDENT 0.0
  96740. .TP
  96741. .B salt.modules.nagios.run_all_pillar(pillar_name)
  96742. Run one or more nagios plugins from pillar data and get the result of cmd.run_all
  96743. The pillar have to be in this format:
  96744. .INDENT 7.0
  96745. .INDENT 3.5
  96746. .sp
  96747. .nf
  96748. .ft C
  96749. \-\-\-\-\-\-
  96750. webserver:
  96751. Ping_google:
  96752. \- check_icmp: 8.8.8.8
  96753. \- check_icmp: google.com
  96754. Load:
  96755. \- check_load: \-w 0.8 \-c 1
  96756. APT:
  96757. \- check_apt
  96758. \-\-\-\-\-\-\-
  96759. .ft P
  96760. .fi
  96761. .UNINDENT
  96762. .UNINDENT
  96763. .sp
  96764. webserver is the role to check, the next keys are the group and the items
  96765. the check with the arguments if needed
  96766. .sp
  96767. You have to group different checks in a group
  96768. .sp
  96769. CLI Example:
  96770. .INDENT 7.0
  96771. .INDENT 3.5
  96772. .sp
  96773. .nf
  96774. .ft C
  96775. salt \(aq*\(aq nagios.run webserver
  96776. .ft P
  96777. .fi
  96778. .UNINDENT
  96779. .UNINDENT
  96780. .UNINDENT
  96781. .INDENT 0.0
  96782. .TP
  96783. .B salt.modules.nagios.run_pillar(pillar_name)
  96784. Run one or more nagios plugins from pillar data and get the result of cmd.run
  96785. The pillar have to be in this format:
  96786. .INDENT 7.0
  96787. .INDENT 3.5
  96788. .sp
  96789. .nf
  96790. .ft C
  96791. \-\-\-\-\-\-
  96792. webserver:
  96793. Ping_google:
  96794. \- check_icmp: 8.8.8.8
  96795. \- check_icmp: google.com
  96796. Load:
  96797. \- check_load: \-w 0.8 \-c 1
  96798. APT:
  96799. \- check_apt
  96800. \-\-\-\-\-\-\-
  96801. .ft P
  96802. .fi
  96803. .UNINDENT
  96804. .UNINDENT
  96805. .sp
  96806. webserver is the role to check, the next keys are the group and the items
  96807. the check with the arguments if needed
  96808. .sp
  96809. You have to group different checks in a group
  96810. .sp
  96811. CLI Example:
  96812. .INDENT 7.0
  96813. .INDENT 3.5
  96814. .sp
  96815. .nf
  96816. .ft C
  96817. salt \(aq*\(aq nagios.run webserver
  96818. .ft P
  96819. .fi
  96820. .UNINDENT
  96821. .UNINDENT
  96822. .UNINDENT
  96823. .SS salt.modules.namecheap_domains module
  96824. .sp
  96825. Namecheap Domain Management
  96826. .sp
  96827. New in version 2017.7.0.
  96828. .SS Prerequisites
  96829. .sp
  96830. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  96831. API.
  96832. .SS Configuration
  96833. .sp
  96834. The Namecheap username, API key and URL should be set in the minion configuration
  96835. file, or in the Pillar data.
  96836. .INDENT 0.0
  96837. .INDENT 3.5
  96838. .sp
  96839. .nf
  96840. .ft C
  96841. namecheap.name: companyname
  96842. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  96843. namecheap.client_ip: 162.155.30.172
  96844. #Real url
  96845. namecheap.url: https://api.namecheap.com/xml.response
  96846. #Sandbox url
  96847. #namecheap.url: https://api.sandbox.namecheap.xml.response
  96848. .ft P
  96849. .fi
  96850. .UNINDENT
  96851. .UNINDENT
  96852. .INDENT 0.0
  96853. .TP
  96854. .B salt.modules.namecheap_domains.check(*domains_to_check)
  96855. Checks the availability of domains
  96856. .INDENT 7.0
  96857. .TP
  96858. .B domains_to_check
  96859. array of strings List of domains to check
  96860. .UNINDENT
  96861. .sp
  96862. Returns a dictionary mapping the each domain name to a boolean denoting
  96863. whether or not it is available.
  96864. .sp
  96865. CLI Example:
  96866. .INDENT 7.0
  96867. .INDENT 3.5
  96868. .sp
  96869. .nf
  96870. .ft C
  96871. salt \(aqmy\-minion\(aq namecheap_domains.check domain\-to\-check
  96872. .ft P
  96873. .fi
  96874. .UNINDENT
  96875. .UNINDENT
  96876. .UNINDENT
  96877. .INDENT 0.0
  96878. .TP
  96879. .B salt.modules.namecheap_domains.create(domain_name, years, **kwargs)
  96880. Try to register the specified domain name
  96881. .INDENT 7.0
  96882. .TP
  96883. .B domain_name
  96884. The domain name to be registered
  96885. .TP
  96886. .B years
  96887. Number of years to register
  96888. .UNINDENT
  96889. .sp
  96890. Returns the following information:
  96891. .INDENT 7.0
  96892. .IP \(bu 2
  96893. Whether or not the domain was renewed successfully
  96894. .IP \(bu 2
  96895. Whether or not WhoisGuard is enabled
  96896. .IP \(bu 2
  96897. Whether or not registration is instant
  96898. .IP \(bu 2
  96899. The amount charged for registration
  96900. .IP \(bu 2
  96901. The domain ID
  96902. .IP \(bu 2
  96903. The order ID
  96904. .IP \(bu 2
  96905. The transaction ID
  96906. .UNINDENT
  96907. .sp
  96908. CLI Example:
  96909. .INDENT 7.0
  96910. .INDENT 3.5
  96911. .sp
  96912. .nf
  96913. .ft C
  96914. salt \(aqmy\-minion\(aq namecheap_domains.create my\-domain\-name 2
  96915. .ft P
  96916. .fi
  96917. .UNINDENT
  96918. .UNINDENT
  96919. .UNINDENT
  96920. .INDENT 0.0
  96921. .TP
  96922. .B salt.modules.namecheap_domains.get_info(domain_name)
  96923. Returns information about the requested domain
  96924. .sp
  96925. returns a dictionary of information about the domain_name
  96926. .INDENT 7.0
  96927. .TP
  96928. .B domain_name
  96929. string Domain name to get information about
  96930. .UNINDENT
  96931. .sp
  96932. CLI Example:
  96933. .INDENT 7.0
  96934. .INDENT 3.5
  96935. .sp
  96936. .nf
  96937. .ft C
  96938. salt \(aqmy\-minion\(aq namecheap_domains.get_info my\-domain\-name
  96939. .ft P
  96940. .fi
  96941. .UNINDENT
  96942. .UNINDENT
  96943. .UNINDENT
  96944. .INDENT 0.0
  96945. .TP
  96946. .B salt.modules.namecheap_domains.get_list(list_type=None, search_term=None, page=None, page_size=None, sort_by=None)
  96947. Returns a list of domains for the particular user as a list of objects
  96948. offset by \fBpage\fP length of \fBpage_size\fP
  96949. .INDENT 7.0
  96950. .TP
  96951. .B list_type
  96952. ALL
  96953. One of \fBALL\fP, \fBEXPIRING\fP, \fBEXPIRED\fP
  96954. .TP
  96955. .B search_term
  96956. Keyword to look for on the domain list
  96957. .TP
  96958. .B page
  96959. 1
  96960. Number of result page to return
  96961. .TP
  96962. .B page_size
  96963. 20
  96964. Number of domains to be listed per page (minimum: \fB10\fP, maximum:
  96965. \fB100\fP)
  96966. .TP
  96967. .B sort_by
  96968. One of \fBNAME\fP, \fBNAME_DESC\fP, \fBEXPIREDATE\fP, \fBEXPIREDATE_DESC\fP,
  96969. \fBCREATEDATE\fP, or \fBCREATEDATE_DESC\fP
  96970. .UNINDENT
  96971. .sp
  96972. CLI Example:
  96973. .INDENT 7.0
  96974. .INDENT 3.5
  96975. .sp
  96976. .nf
  96977. .ft C
  96978. salt \(aqmy\-minion\(aq namecheap_domains.get_list
  96979. .ft P
  96980. .fi
  96981. .UNINDENT
  96982. .UNINDENT
  96983. .UNINDENT
  96984. .INDENT 0.0
  96985. .TP
  96986. .B salt.modules.namecheap_domains.get_tld_list()
  96987. Returns a list of TLDs as objects
  96988. .sp
  96989. CLI Example:
  96990. .INDENT 7.0
  96991. .INDENT 3.5
  96992. .sp
  96993. .nf
  96994. .ft C
  96995. salt \(aqmy\-minion\(aq namecheap_domains.get_tld_list
  96996. .ft P
  96997. .fi
  96998. .UNINDENT
  96999. .UNINDENT
  97000. .UNINDENT
  97001. .INDENT 0.0
  97002. .TP
  97003. .B salt.modules.namecheap_domains.reactivate(domain_name)
  97004. Try to reactivate the expired domain name
  97005. .sp
  97006. Returns the following information:
  97007. .INDENT 7.0
  97008. .IP \(bu 2
  97009. Whether or not the domain was reactivated successfully
  97010. .IP \(bu 2
  97011. The amount charged for reactivation
  97012. .IP \(bu 2
  97013. The order ID
  97014. .IP \(bu 2
  97015. The transaction ID
  97016. .UNINDENT
  97017. .sp
  97018. CLI Example:
  97019. .INDENT 7.0
  97020. .INDENT 3.5
  97021. .sp
  97022. .nf
  97023. .ft C
  97024. salt \(aqmy\-minion\(aq namecheap_domains.reactivate my\-domain\-name
  97025. .ft P
  97026. .fi
  97027. .UNINDENT
  97028. .UNINDENT
  97029. .UNINDENT
  97030. .INDENT 0.0
  97031. .TP
  97032. .B salt.modules.namecheap_domains.renew(domain_name, years, promotion_code=None)
  97033. Try to renew the specified expiring domain name for a specified number of years
  97034. .INDENT 7.0
  97035. .TP
  97036. .B domain_name
  97037. The domain name to be renewed
  97038. .TP
  97039. .B years
  97040. Number of years to renew
  97041. .UNINDENT
  97042. .sp
  97043. Returns the following information:
  97044. .INDENT 7.0
  97045. .IP \(bu 2
  97046. Whether or not the domain was renewed successfully
  97047. .IP \(bu 2
  97048. The domain ID
  97049. .IP \(bu 2
  97050. The order ID
  97051. .IP \(bu 2
  97052. The transaction ID
  97053. .IP \(bu 2
  97054. The amount charged for renewal
  97055. .UNINDENT
  97056. .sp
  97057. CLI Example:
  97058. .INDENT 7.0
  97059. .INDENT 3.5
  97060. .sp
  97061. .nf
  97062. .ft C
  97063. salt \(aqmy\-minion\(aq namecheap_domains.renew my\-domain\-name 5
  97064. .ft P
  97065. .fi
  97066. .UNINDENT
  97067. .UNINDENT
  97068. .UNINDENT
  97069. .SS salt.modules.namecheap_domains_dns
  97070. .sp
  97071. Namecheap DNS Management
  97072. .sp
  97073. New in version 2017.7.0.
  97074. .SS Prerequisites
  97075. .sp
  97076. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  97077. API.
  97078. .SS Configuration
  97079. .sp
  97080. The Namecheap username, API key and URL should be set in the minion configuration
  97081. file, or in the Pillar data.
  97082. .INDENT 0.0
  97083. .INDENT 3.5
  97084. .sp
  97085. .nf
  97086. .ft C
  97087. namecheap.name: companyname
  97088. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  97089. namecheap.client_ip: 162.155.30.172
  97090. #Real url
  97091. namecheap.url: https://api.namecheap.com/xml.response
  97092. #Sandbox url
  97093. #namecheap.url: https://api.sandbox.namecheap.xml.response
  97094. .ft P
  97095. .fi
  97096. .UNINDENT
  97097. .UNINDENT
  97098. .INDENT 0.0
  97099. .TP
  97100. .B salt.modules.namecheap_domains_dns.get_hosts(sld, tld)
  97101. Retrieves DNS host record settings for the requested domain.
  97102. .sp
  97103. returns a dictionary of information about the requested domain
  97104. .INDENT 7.0
  97105. .TP
  97106. .B sld
  97107. SLD of the domain name
  97108. .TP
  97109. .B tld
  97110. TLD of the domain name
  97111. .UNINDENT
  97112. .sp
  97113. CLI Example:
  97114. .INDENT 7.0
  97115. .INDENT 3.5
  97116. .sp
  97117. .nf
  97118. .ft C
  97119. salt \(aqmy\-minion\(aq namecheap_domains_dns.get_hosts sld tld
  97120. .ft P
  97121. .fi
  97122. .UNINDENT
  97123. .UNINDENT
  97124. .UNINDENT
  97125. .INDENT 0.0
  97126. .TP
  97127. .B salt.modules.namecheap_domains_dns.get_list(sld, tld)
  97128. Gets a list of DNS servers associated with the requested domain.
  97129. .sp
  97130. returns a dictionary of information about requested domain
  97131. .INDENT 7.0
  97132. .TP
  97133. .B sld
  97134. SLD of the domain name
  97135. .TP
  97136. .B tld
  97137. TLD of the domain name
  97138. .UNINDENT
  97139. .sp
  97140. CLI Example:
  97141. .INDENT 7.0
  97142. .INDENT 3.5
  97143. .sp
  97144. .nf
  97145. .ft C
  97146. salt \(aqmy\-minion\(aq namecheap_domains_dns.get_list sld tld
  97147. .ft P
  97148. .fi
  97149. .UNINDENT
  97150. .UNINDENT
  97151. .UNINDENT
  97152. .INDENT 0.0
  97153. .TP
  97154. .B salt.modules.namecheap_domains_dns.set_custom(sld, tld, nameservers)
  97155. Sets domain to use custom DNS servers.
  97156. .sp
  97157. returns True if the custom nameservers were set successfully
  97158. .INDENT 7.0
  97159. .TP
  97160. .B sld
  97161. SLD of the domain name
  97162. .TP
  97163. .B tld
  97164. TLD of the domain name
  97165. .TP
  97166. .B nameservers
  97167. array of strings List of nameservers to be associated with this domain
  97168. .UNINDENT
  97169. .sp
  97170. CLI Example:
  97171. .INDENT 7.0
  97172. .INDENT 3.5
  97173. .sp
  97174. .nf
  97175. .ft C
  97176. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_custom sld tld nameserver
  97177. .ft P
  97178. .fi
  97179. .UNINDENT
  97180. .UNINDENT
  97181. .UNINDENT
  97182. .INDENT 0.0
  97183. .TP
  97184. .B salt.modules.namecheap_domains_dns.set_default(sld, tld)
  97185. Sets domain to use namecheap default DNS servers. Required for free
  97186. services like Host record management, URL forwarding, email forwarding,
  97187. dynamic DNS and other value added services.
  97188. .INDENT 7.0
  97189. .TP
  97190. .B sld
  97191. SLD of the domain name
  97192. .TP
  97193. .B tld
  97194. TLD of the domain name
  97195. .UNINDENT
  97196. .sp
  97197. Returns \fBTrue\fP if the domain was successfully pointed at the default DNS
  97198. servers.
  97199. .sp
  97200. CLI Example:
  97201. .INDENT 7.0
  97202. .INDENT 3.5
  97203. .sp
  97204. .nf
  97205. .ft C
  97206. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_default sld tld
  97207. .ft P
  97208. .fi
  97209. .UNINDENT
  97210. .UNINDENT
  97211. .UNINDENT
  97212. .INDENT 0.0
  97213. .TP
  97214. .B salt.modules.namecheap_domains_dns.set_hosts(sld, tld, hosts)
  97215. Sets DNS host records settings for the requested domain.
  97216. .sp
  97217. returns True if the host records were set successfully
  97218. .INDENT 7.0
  97219. .TP
  97220. .B sld
  97221. SLD of the domain name
  97222. .TP
  97223. .B tld
  97224. TLD of the domain name
  97225. .TP
  97226. .B hosts
  97227. Must be passed as a list of Python dictionaries, with each dictionary
  97228. containing the following keys:
  97229. .INDENT 7.0
  97230. .IP \(bu 2
  97231. \fBhostname\fP
  97232. .IP \(bu 2
  97233. \fBrecordtype\fP \- One of \fBA\fP, \fBAAAA\fP, \fBCNAME\fP, \fBMX\fP, \fBMXE\fP,
  97234. \fBTXT\fP, \fBURL\fP, \fBURL301\fP, or \fBFRAME\fP
  97235. .IP \(bu 2
  97236. \fBaddress\fP \- URL or IP address
  97237. .IP \(bu 2
  97238. \fBttl\fP \- An integer between 60 and 60000 (default: \fB1800\fP)
  97239. .UNINDENT
  97240. .sp
  97241. Additionally, the \fBmxpref\fP key can be present, but must be accompanied
  97242. by an \fBemailtype\fP key.
  97243. .UNINDENT
  97244. .sp
  97245. CLI Example:
  97246. .INDENT 7.0
  97247. .INDENT 3.5
  97248. .sp
  97249. .nf
  97250. .ft C
  97251. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_hosts sld tld hosts
  97252. .ft P
  97253. .fi
  97254. .UNINDENT
  97255. .UNINDENT
  97256. .UNINDENT
  97257. .SS salt.modules.namecheap_domains_ns
  97258. .sp
  97259. Namecheap Nameserver Management
  97260. .sp
  97261. New in version 2017.7.0.
  97262. .SS Prerequisites
  97263. .sp
  97264. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  97265. API.
  97266. .SS Configuration
  97267. .sp
  97268. The Namecheap username, API key and URL should be set in the minion configuration
  97269. file, or in the Pillar data.
  97270. .INDENT 0.0
  97271. .INDENT 3.5
  97272. .sp
  97273. .nf
  97274. .ft C
  97275. namecheap.name: companyname
  97276. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  97277. namecheap.client_ip: 162.155.30.172
  97278. #Real url
  97279. namecheap.url: https://api.namecheap.com/xml.response
  97280. #Sandbox url
  97281. #namecheap.url: https://api.sandbox.namecheap.xml.response
  97282. .ft P
  97283. .fi
  97284. .UNINDENT
  97285. .UNINDENT
  97286. .INDENT 0.0
  97287. .TP
  97288. .B salt.modules.namecheap_domains_ns.create(sld, tld, nameserver, ip)
  97289. Creates a new nameserver. Returns \fBTrue\fP if the nameserver was created
  97290. successfully.
  97291. .INDENT 7.0
  97292. .TP
  97293. .B sld
  97294. SLD of the domain name
  97295. .TP
  97296. .B tld
  97297. TLD of the domain name
  97298. .TP
  97299. .B nameserver
  97300. Nameserver to create
  97301. .TP
  97302. .B ip
  97303. Nameserver IP address
  97304. .UNINDENT
  97305. .sp
  97306. CLI Example:
  97307. .INDENT 7.0
  97308. .INDENT 3.5
  97309. .sp
  97310. .nf
  97311. .ft C
  97312. salt \(aq*\(aq namecheap_domains_ns.create sld tld nameserver ip
  97313. .ft P
  97314. .fi
  97315. .UNINDENT
  97316. .UNINDENT
  97317. .UNINDENT
  97318. .INDENT 0.0
  97319. .TP
  97320. .B salt.modules.namecheap_domains_ns.delete(sld, tld, nameserver)
  97321. Deletes a nameserver. Returns \fBTrue\fP if the nameserver was deleted
  97322. successfully
  97323. .INDENT 7.0
  97324. .TP
  97325. .B sld
  97326. SLD of the domain name
  97327. .TP
  97328. .B tld
  97329. TLD of the domain name
  97330. .TP
  97331. .B nameserver
  97332. Nameserver to delete
  97333. .UNINDENT
  97334. .sp
  97335. CLI Example:
  97336. .INDENT 7.0
  97337. .INDENT 3.5
  97338. .sp
  97339. .nf
  97340. .ft C
  97341. salt \(aq*\(aq namecheap_domains_ns.delete sld tld nameserver
  97342. .ft P
  97343. .fi
  97344. .UNINDENT
  97345. .UNINDENT
  97346. .UNINDENT
  97347. .INDENT 0.0
  97348. .TP
  97349. .B salt.modules.namecheap_domains_ns.get_info(sld, tld, nameserver)
  97350. Retrieves information about a registered nameserver. Returns the following
  97351. information:
  97352. .INDENT 7.0
  97353. .IP \(bu 2
  97354. IP Address set for the nameserver
  97355. .IP \(bu 2
  97356. Domain name which was queried
  97357. .IP \(bu 2
  97358. A list of nameservers and their statuses
  97359. .UNINDENT
  97360. .INDENT 7.0
  97361. .TP
  97362. .B sld
  97363. SLD of the domain name
  97364. .TP
  97365. .B tld
  97366. TLD of the domain name
  97367. .TP
  97368. .B nameserver
  97369. Nameserver to retrieve
  97370. .UNINDENT
  97371. .sp
  97372. CLI Example:
  97373. .INDENT 7.0
  97374. .INDENT 3.5
  97375. .sp
  97376. .nf
  97377. .ft C
  97378. salt \(aq*\(aq namecheap_domains_ns.get_info sld tld nameserver
  97379. .ft P
  97380. .fi
  97381. .UNINDENT
  97382. .UNINDENT
  97383. .UNINDENT
  97384. .INDENT 0.0
  97385. .TP
  97386. .B salt.modules.namecheap_domains_ns.update(sld, tld, nameserver, old_ip, new_ip)
  97387. Deletes a nameserver. Returns \fBTrue\fP if the nameserver was updated
  97388. successfully.
  97389. .INDENT 7.0
  97390. .TP
  97391. .B sld
  97392. SLD of the domain name
  97393. .TP
  97394. .B tld
  97395. TLD of the domain name
  97396. .TP
  97397. .B nameserver
  97398. Nameserver to create
  97399. .TP
  97400. .B old_ip
  97401. Current ip address
  97402. .TP
  97403. .B new_ip
  97404. New ip address
  97405. .UNINDENT
  97406. .sp
  97407. CLI Example:
  97408. .INDENT 7.0
  97409. .INDENT 3.5
  97410. .sp
  97411. .nf
  97412. .ft C
  97413. salt \(aq*\(aq namecheap_domains_ns.update sld tld nameserver old_ip new_ip
  97414. .ft P
  97415. .fi
  97416. .UNINDENT
  97417. .UNINDENT
  97418. .UNINDENT
  97419. .SS salt.modules.namecheap_users module
  97420. .sp
  97421. Namecheap User Management
  97422. .sp
  97423. New in version 2017.7.0.
  97424. .SS Prerequisites
  97425. .sp
  97426. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  97427. API.
  97428. .SS Configuration
  97429. .sp
  97430. The Namecheap username, API key and URL should be set in the minion configuration
  97431. file, or in the Pillar data.
  97432. .INDENT 0.0
  97433. .INDENT 3.5
  97434. .sp
  97435. .nf
  97436. .ft C
  97437. namecheap.name: companyname
  97438. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  97439. namecheap.client_ip: 162.155.30.172
  97440. #Real url
  97441. namecheap.url: https://api.namecheap.com/xml.response
  97442. #Sandbox url
  97443. #namecheap.url: https://api.sandbox.namecheap.xml.response
  97444. .ft P
  97445. .fi
  97446. .UNINDENT
  97447. .UNINDENT
  97448. .INDENT 0.0
  97449. .TP
  97450. .B salt.modules.namecheap_users.check_balances(minimum=100)
  97451. Checks if the provided minimum value is present in the user\(aqs account.
  97452. .sp
  97453. Returns a boolean. Returns \fBFalse\fP if the user\(aqs account balance is less
  97454. than the provided minimum or \fBTrue\fP if greater than the minimum.
  97455. .INDENT 7.0
  97456. .TP
  97457. .B minimum
  97458. 100
  97459. The value to check
  97460. .UNINDENT
  97461. .sp
  97462. CLI Example:
  97463. .INDENT 7.0
  97464. .INDENT 3.5
  97465. .sp
  97466. .nf
  97467. .ft C
  97468. salt \(aqmy\-minion\(aq namecheap_users.check_balances
  97469. salt \(aqmy\-minion\(aq namecheap_users.check_balances minimum=150
  97470. .ft P
  97471. .fi
  97472. .UNINDENT
  97473. .UNINDENT
  97474. .UNINDENT
  97475. .INDENT 0.0
  97476. .TP
  97477. .B salt.modules.namecheap_users.get_balances()
  97478. Gets information about fund in the user\(aqs account. This method returns the
  97479. following information: Available Balance, Account Balance, Earned Amount,
  97480. Withdrawable Amount and Funds Required for AutoRenew.
  97481. .sp
  97482. \fBNOTE:\fP
  97483. .INDENT 7.0
  97484. .INDENT 3.5
  97485. If a domain setup with automatic renewal is expiring within the next 90
  97486. days, the FundsRequiredForAutoRenew attribute shows the amount needed
  97487. in your Namecheap account to complete auto renewal.
  97488. .UNINDENT
  97489. .UNINDENT
  97490. .sp
  97491. CLI Example:
  97492. .INDENT 7.0
  97493. .INDENT 3.5
  97494. .sp
  97495. .nf
  97496. .ft C
  97497. salt \(aqmy\-minion\(aq namecheap_users.get_balances
  97498. .ft P
  97499. .fi
  97500. .UNINDENT
  97501. .UNINDENT
  97502. .UNINDENT
  97503. .SS salt.modules.netaddress
  97504. .sp
  97505. Module for getting information about network addresses.
  97506. .sp
  97507. New in version 2016.3.0.
  97508. .INDENT 0.0
  97509. .TP
  97510. .B depends
  97511. netaddr
  97512. .UNINDENT
  97513. .INDENT 0.0
  97514. .TP
  97515. .B salt.modules.netaddress.cidr_broadcast(cidr)
  97516. Get the broadcast address associated with a CIDR address.
  97517. .sp
  97518. CLI example:
  97519. .INDENT 7.0
  97520. .INDENT 3.5
  97521. .sp
  97522. .nf
  97523. .ft C
  97524. salt myminion netaddress.cidr_netmask 192.168.0.0/20
  97525. .ft P
  97526. .fi
  97527. .UNINDENT
  97528. .UNINDENT
  97529. .UNINDENT
  97530. .INDENT 0.0
  97531. .TP
  97532. .B salt.modules.netaddress.cidr_netmask(cidr)
  97533. Get the netmask address associated with a CIDR address.
  97534. .sp
  97535. CLI example:
  97536. .INDENT 7.0
  97537. .INDENT 3.5
  97538. .sp
  97539. .nf
  97540. .ft C
  97541. salt myminion netaddress.cidr_netmask 192.168.0.0/20
  97542. .ft P
  97543. .fi
  97544. .UNINDENT
  97545. .UNINDENT
  97546. .UNINDENT
  97547. .INDENT 0.0
  97548. .TP
  97549. .B salt.modules.netaddress.list_cidr_ips(cidr)
  97550. Get a list of IP addresses from a CIDR.
  97551. .sp
  97552. CLI example:
  97553. .INDENT 7.0
  97554. .INDENT 3.5
  97555. .sp
  97556. .nf
  97557. .ft C
  97558. salt myminion netaddress.list_cidr_ips 192.168.0.0/20
  97559. .ft P
  97560. .fi
  97561. .UNINDENT
  97562. .UNINDENT
  97563. .UNINDENT
  97564. .INDENT 0.0
  97565. .TP
  97566. .B salt.modules.netaddress.list_cidr_ips_ipv6(cidr)
  97567. Get a list of IPv6 addresses from a CIDR.
  97568. .sp
  97569. CLI example:
  97570. .INDENT 7.0
  97571. .INDENT 3.5
  97572. .sp
  97573. .nf
  97574. .ft C
  97575. salt myminion netaddress.list_cidr_ips_ipv6 192.168.0.0/20
  97576. .ft P
  97577. .fi
  97578. .UNINDENT
  97579. .UNINDENT
  97580. .UNINDENT
  97581. .SS salt.modules.netbox module
  97582. .SS NetBox
  97583. .sp
  97584. Module to query NetBox
  97585. .INDENT 0.0
  97586. .TP
  97587. .B codeauthor
  97588. Zach Moody <\fI\%zmoody@do.co\fP>
  97589. .TP
  97590. .B maturity
  97591. new
  97592. .TP
  97593. .B depends
  97594. pynetbox
  97595. .UNINDENT
  97596. .sp
  97597. The following config should be in the minion config file. In order to
  97598. work with \fBsecrets\fP you should provide a token and path to your
  97599. private key file:
  97600. .INDENT 0.0
  97601. .INDENT 3.5
  97602. .sp
  97603. .nf
  97604. .ft C
  97605. netbox:
  97606. url: <NETBOX_URL>
  97607. token: <NETBOX_USERNAME_API_TOKEN (OPTIONAL)>
  97608. keyfile: </PATH/TO/NETBOX/KEY (OPTIONAL)>
  97609. .ft P
  97610. .fi
  97611. .UNINDENT
  97612. .UNINDENT
  97613. .sp
  97614. New in version 2018.3.0.
  97615. .INDENT 0.0
  97616. .TP
  97617. .B salt.modules.netbox.create_circuit(name, provider_id, circuit_type, description=None)
  97618. New in version 2019.2.0.
  97619. .sp
  97620. Create a new Netbox circuit
  97621. .INDENT 7.0
  97622. .TP
  97623. .B name
  97624. Name of the circuit
  97625. .TP
  97626. .B provider_id
  97627. The netbox id of the circuit provider
  97628. .TP
  97629. .B circuit_type
  97630. The name of the circuit type
  97631. .TP
  97632. .B asn
  97633. The ASN of the circuit provider
  97634. .TP
  97635. .B description
  97636. The description of the circuit
  97637. .UNINDENT
  97638. .sp
  97639. CLI Example:
  97640. .INDENT 7.0
  97641. .INDENT 3.5
  97642. .sp
  97643. .nf
  97644. .ft C
  97645. salt myminion netbox.create_circuit NEW_CIRCUIT_01 Telia Transit 1299 "New Telia circuit"
  97646. .ft P
  97647. .fi
  97648. .UNINDENT
  97649. .UNINDENT
  97650. .UNINDENT
  97651. .INDENT 0.0
  97652. .TP
  97653. .B salt.modules.netbox.create_circuit_provider(name, asn=None)
  97654. New in version 2019.2.0.
  97655. .sp
  97656. Create a new Netbox circuit provider
  97657. .INDENT 7.0
  97658. .TP
  97659. .B name
  97660. The name of the circuit provider
  97661. .TP
  97662. .B asn
  97663. The ASN of the circuit provider
  97664. .UNINDENT
  97665. .sp
  97666. CLI Example:
  97667. .INDENT 7.0
  97668. .INDENT 3.5
  97669. .sp
  97670. .nf
  97671. .ft C
  97672. salt myminion netbox.create_circuit_provider Telia 1299
  97673. .ft P
  97674. .fi
  97675. .UNINDENT
  97676. .UNINDENT
  97677. .UNINDENT
  97678. .INDENT 0.0
  97679. .TP
  97680. .B salt.modules.netbox.create_circuit_termination(circuit, interface, device, speed, xconnect_id=None, term_side=u\(aqA\(aq)
  97681. New in version 2019.2.0.
  97682. .sp
  97683. Terminate a circuit on an interface
  97684. .INDENT 7.0
  97685. .TP
  97686. .B circuit
  97687. The name of the circuit
  97688. .TP
  97689. .B interface
  97690. The name of the interface to terminate on
  97691. .TP
  97692. .B device
  97693. The name of the device the interface belongs to
  97694. .TP
  97695. .B speed
  97696. The speed of the circuit, in Kbps
  97697. .TP
  97698. .B xconnect_id
  97699. The cross\-connect identifier
  97700. .TP
  97701. .B term_side
  97702. The side of the circuit termination
  97703. .UNINDENT
  97704. .sp
  97705. CLI Example:
  97706. .INDENT 7.0
  97707. .INDENT 3.5
  97708. .sp
  97709. .nf
  97710. .ft C
  97711. salt myminion netbox.create_circuit_termination NEW_CIRCUIT_01 xe\-0/0/1 myminion 10000 xconnect_id=XCON01
  97712. .ft P
  97713. .fi
  97714. .UNINDENT
  97715. .UNINDENT
  97716. .UNINDENT
  97717. .INDENT 0.0
  97718. .TP
  97719. .B salt.modules.netbox.create_circuit_type(name)
  97720. New in version 2019.2.0.
  97721. .sp
  97722. Create a new Netbox circuit type.
  97723. .INDENT 7.0
  97724. .TP
  97725. .B name
  97726. The name of the circuit type
  97727. .UNINDENT
  97728. .sp
  97729. CLI Example:
  97730. .INDENT 7.0
  97731. .INDENT 3.5
  97732. .sp
  97733. .nf
  97734. .ft C
  97735. salt myminion netbox.create_circuit_type Transit
  97736. .ft P
  97737. .fi
  97738. .UNINDENT
  97739. .UNINDENT
  97740. .UNINDENT
  97741. .INDENT 0.0
  97742. .TP
  97743. .B salt.modules.netbox.create_device(name, role, model, manufacturer, site)
  97744. New in version 2019.2.0.
  97745. .sp
  97746. Create a new device with a name, role, model, manufacturer and site.
  97747. All these components need to be already in Netbox.
  97748. .INDENT 7.0
  97749. .TP
  97750. .B name
  97751. The name of the device, e.g., \fBedge_router\fP
  97752. .TP
  97753. .B role
  97754. String of device role, e.g., \fBrouter\fP
  97755. .TP
  97756. .B model
  97757. String of device model, e.g., \fBMX480\fP
  97758. .TP
  97759. .B manufacturer
  97760. String of device manufacturer, e.g., \fBJuniper\fP
  97761. .TP
  97762. .B site
  97763. String of device site, e.g., \fBBRU\fP
  97764. .UNINDENT
  97765. .sp
  97766. CLI Example:
  97767. .INDENT 7.0
  97768. .INDENT 3.5
  97769. .sp
  97770. .nf
  97771. .ft C
  97772. salt myminion netbox.create_device edge_router router MX480 Juniper BRU
  97773. .ft P
  97774. .fi
  97775. .UNINDENT
  97776. .UNINDENT
  97777. .UNINDENT
  97778. .INDENT 0.0
  97779. .TP
  97780. .B salt.modules.netbox.create_device_role(role, color)
  97781. New in version 2019.2.0.
  97782. .sp
  97783. Create a device role
  97784. .INDENT 7.0
  97785. .TP
  97786. .B role
  97787. String of device role, e.g., \fBrouter\fP
  97788. .UNINDENT
  97789. .sp
  97790. CLI Example:
  97791. .INDENT 7.0
  97792. .INDENT 3.5
  97793. .sp
  97794. .nf
  97795. .ft C
  97796. salt myminion netbox.create_device_role router
  97797. .ft P
  97798. .fi
  97799. .UNINDENT
  97800. .UNINDENT
  97801. .UNINDENT
  97802. .INDENT 0.0
  97803. .TP
  97804. .B salt.modules.netbox.create_device_type(model, manufacturer)
  97805. New in version 2019.2.0.
  97806. .sp
  97807. Create a device type. If the manufacturer doesn\(aqt exist, create a new manufacturer.
  97808. .INDENT 7.0
  97809. .TP
  97810. .B model
  97811. String of device model, e.g., \fBMX480\fP
  97812. .TP
  97813. .B manufacturer
  97814. String of device manufacturer, e.g., \fBJuniper\fP
  97815. .UNINDENT
  97816. .sp
  97817. CLI Example:
  97818. .INDENT 7.0
  97819. .INDENT 3.5
  97820. .sp
  97821. .nf
  97822. .ft C
  97823. salt myminion netbox.create_device_type MX480 Juniper
  97824. .ft P
  97825. .fi
  97826. .UNINDENT
  97827. .UNINDENT
  97828. .UNINDENT
  97829. .INDENT 0.0
  97830. .TP
  97831. .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)
  97832. New in version 2019.2.0.
  97833. .sp
  97834. Attach an interface to a device. If not all arguments are provided,
  97835. they will default to Netbox defaults.
  97836. .INDENT 7.0
  97837. .TP
  97838. .B device_name
  97839. The name of the device, e.g., \fBedge_router\fP
  97840. .TP
  97841. .B interface_name
  97842. The name of the interface, e.g., \fBTenGigE0/0/0/0\fP
  97843. .TP
  97844. .B mac_address
  97845. String of mac address, e.g., \fB50:87:89:73:92:C8\fP
  97846. .TP
  97847. .B description
  97848. String of interface description, e.g., \fBNTT\fP
  97849. .TP
  97850. .B enabled
  97851. String of boolean interface status, e.g., \fBTrue\fP
  97852. .TP
  97853. .B lag:
  97854. Boolean of interface lag status, e.g., \fBTrue\fP
  97855. .TP
  97856. .B lag_parent
  97857. String of interface lag parent name, e.g., \fBae13\fP
  97858. .TP
  97859. .B form_factor
  97860. Integer of form factor id, obtained through _choices API endpoint, e.g., \fB200\fP
  97861. .UNINDENT
  97862. .sp
  97863. CLI Example:
  97864. .INDENT 7.0
  97865. .INDENT 3.5
  97866. .sp
  97867. .nf
  97868. .ft C
  97869. salt myminion netbox.create_interface edge_router ae13 description="Core uplink"
  97870. .ft P
  97871. .fi
  97872. .UNINDENT
  97873. .UNINDENT
  97874. .UNINDENT
  97875. .INDENT 0.0
  97876. .TP
  97877. .B salt.modules.netbox.create_interface_connection(interface_a, interface_b)
  97878. New in version 2019.2.0.
  97879. .sp
  97880. Create an interface connection between 2 interfaces
  97881. .INDENT 7.0
  97882. .TP
  97883. .B interface_a
  97884. Interface id for Side A
  97885. .TP
  97886. .B interface_b
  97887. Interface id for Side B
  97888. .UNINDENT
  97889. .sp
  97890. CLI Example:
  97891. .INDENT 7.0
  97892. .INDENT 3.5
  97893. .sp
  97894. .nf
  97895. .ft C
  97896. salt myminion netbox.create_interface_connection 123 456
  97897. .ft P
  97898. .fi
  97899. .UNINDENT
  97900. .UNINDENT
  97901. .UNINDENT
  97902. .INDENT 0.0
  97903. .TP
  97904. .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)
  97905. New in version 2019.2.0.
  97906. .sp
  97907. Add an inventory item to an existing device.
  97908. .INDENT 7.0
  97909. .TP
  97910. .B device_name
  97911. The name of the device, e.g., \fBedge_router\fP\&.
  97912. .TP
  97913. .B item_name
  97914. String of inventory item name, e.g., \fBTransceiver\fP\&.
  97915. .TP
  97916. .B manufacturer_name
  97917. String of inventory item manufacturer, e.g., \fBFiberstore\fP\&.
  97918. .TP
  97919. .B serial
  97920. String of inventory item serial, e.g., \fBFS1238931\fP\&.
  97921. .TP
  97922. .B part_id
  97923. String of inventory item part id, e.g., \fB740\-01234\fP\&.
  97924. .TP
  97925. .B description
  97926. String of inventory item description, e.g., \fBSFP+\-10G\-LR\fP\&.
  97927. .UNINDENT
  97928. .sp
  97929. CLI Example:
  97930. .INDENT 7.0
  97931. .INDENT 3.5
  97932. .sp
  97933. .nf
  97934. .ft C
  97935. salt myminion netbox.create_inventory_item edge_router Transceiver part_id=740\-01234
  97936. .ft P
  97937. .fi
  97938. .UNINDENT
  97939. .UNINDENT
  97940. .UNINDENT
  97941. .INDENT 0.0
  97942. .TP
  97943. .B salt.modules.netbox.create_ipaddress(ip_address, family, device=None, interface=None)
  97944. New in version 2019.2.0.
  97945. .sp
  97946. Add an IP address, and optionally attach it to an interface.
  97947. .INDENT 7.0
  97948. .TP
  97949. .B ip_address
  97950. The IP address and CIDR, e.g., \fB192.168.1.1/24\fP
  97951. .TP
  97952. .B family
  97953. Integer of IP family, e.g., \fB4\fP
  97954. .TP
  97955. .B device
  97956. The name of the device to attach IP to, e.g., \fBedge_router\fP
  97957. .TP
  97958. .B interface
  97959. The name of the interface to attach IP to, e.g., \fBae13\fP
  97960. .UNINDENT
  97961. .sp
  97962. CLI Example:
  97963. .INDENT 7.0
  97964. .INDENT 3.5
  97965. .sp
  97966. .nf
  97967. .ft C
  97968. salt myminion netbox.create_ipaddress 192.168.1.1/24 4 device=edge_router interface=ae13
  97969. .ft P
  97970. .fi
  97971. .UNINDENT
  97972. .UNINDENT
  97973. .UNINDENT
  97974. .INDENT 0.0
  97975. .TP
  97976. .B salt.modules.netbox.create_manufacturer(name)
  97977. New in version 2019.2.0.
  97978. .sp
  97979. Create a device manufacturer.
  97980. .INDENT 7.0
  97981. .TP
  97982. .B name
  97983. The name of the manufacturer, e.g., \fBJuniper\fP
  97984. .UNINDENT
  97985. .sp
  97986. CLI Example:
  97987. .INDENT 7.0
  97988. .INDENT 3.5
  97989. .sp
  97990. .nf
  97991. .ft C
  97992. salt myminion netbox.create_manufacturer Juniper
  97993. .ft P
  97994. .fi
  97995. .UNINDENT
  97996. .UNINDENT
  97997. .UNINDENT
  97998. .INDENT 0.0
  97999. .TP
  98000. .B salt.modules.netbox.create_platform(platform)
  98001. New in version 2019.2.0.
  98002. .sp
  98003. Create a new device platform
  98004. .INDENT 7.0
  98005. .TP
  98006. .B platform
  98007. String of device platform, e.g., \fBjunos\fP
  98008. .UNINDENT
  98009. .sp
  98010. CLI Example:
  98011. .INDENT 7.0
  98012. .INDENT 3.5
  98013. .sp
  98014. .nf
  98015. .ft C
  98016. salt myminion netbox.create_platform junos
  98017. .ft P
  98018. .fi
  98019. .UNINDENT
  98020. .UNINDENT
  98021. .UNINDENT
  98022. .INDENT 0.0
  98023. .TP
  98024. .B salt.modules.netbox.create_site(site)
  98025. New in version 2019.2.0.
  98026. .sp
  98027. Create a new device site
  98028. .INDENT 7.0
  98029. .TP
  98030. .B site
  98031. String of device site, e.g., \fBBRU\fP
  98032. .UNINDENT
  98033. .sp
  98034. CLI Example:
  98035. .INDENT 7.0
  98036. .INDENT 3.5
  98037. .sp
  98038. .nf
  98039. .ft C
  98040. salt myminion netbox.create_site BRU
  98041. .ft P
  98042. .fi
  98043. .UNINDENT
  98044. .UNINDENT
  98045. .UNINDENT
  98046. .INDENT 0.0
  98047. .TP
  98048. .B salt.modules.netbox.delete_interface(device_name, interface_name)
  98049. New in version 2019.2.0.
  98050. .sp
  98051. Delete an interface from a device.
  98052. .INDENT 7.0
  98053. .TP
  98054. .B device_name
  98055. The name of the device, e.g., \fBedge_router\fP\&.
  98056. .TP
  98057. .B interface_name
  98058. The name of the interface, e.g., \fBae13\fP
  98059. .UNINDENT
  98060. .sp
  98061. CLI Example:
  98062. .INDENT 7.0
  98063. .INDENT 3.5
  98064. .sp
  98065. .nf
  98066. .ft C
  98067. salt myminion netbox.delete_interface edge_router ae13
  98068. .ft P
  98069. .fi
  98070. .UNINDENT
  98071. .UNINDENT
  98072. .UNINDENT
  98073. .INDENT 0.0
  98074. .TP
  98075. .B salt.modules.netbox.delete_inventory_item(item_id)
  98076. New in version 2019.2.0.
  98077. .sp
  98078. Remove an item from a devices inventory. Identified by the netbox id
  98079. .INDENT 7.0
  98080. .TP
  98081. .B item_id
  98082. Integer of item to be deleted
  98083. .UNINDENT
  98084. .sp
  98085. CLI Example:
  98086. .INDENT 7.0
  98087. .INDENT 3.5
  98088. .sp
  98089. .nf
  98090. .ft C
  98091. salt myminion netbox.delete_inventory_item 1354
  98092. .ft P
  98093. .fi
  98094. .UNINDENT
  98095. .UNINDENT
  98096. .UNINDENT
  98097. .INDENT 0.0
  98098. .TP
  98099. .B salt.modules.netbox.delete_ipaddress(ipaddr_id)
  98100. New in version 2019.2.0.
  98101. .sp
  98102. Delete an IP address. IP addresses in Netbox are a combination of address
  98103. and the interface it is assigned to.
  98104. .INDENT 7.0
  98105. .TP
  98106. .B id
  98107. The Netbox id for the IP address.
  98108. .UNINDENT
  98109. .sp
  98110. CLI Example:
  98111. .INDENT 7.0
  98112. .INDENT 3.5
  98113. .sp
  98114. .nf
  98115. .ft C
  98116. salt myminion netbox.delete_ipaddress 9002
  98117. .ft P
  98118. .fi
  98119. .UNINDENT
  98120. .UNINDENT
  98121. .UNINDENT
  98122. .INDENT 0.0
  98123. .TP
  98124. .B salt.modules.netbox.filter_(app, endpoint, **kwargs)
  98125. Get a list of items from NetBox.
  98126. .INDENT 7.0
  98127. .TP
  98128. .B app
  98129. String of netbox app, e.g., \fBdcim\fP, \fBcircuits\fP, \fBipam\fP
  98130. .TP
  98131. .B endpoint
  98132. String of app endpoint, e.g., \fBsites\fP, \fBregions\fP, \fBdevices\fP
  98133. .TP
  98134. .B kwargs
  98135. Optional arguments that can be used to filter.
  98136. All filter keywords are available in Netbox,
  98137. which can be found by surfing to the corresponding API endpoint,
  98138. and clicking Filters. e.g., \fBrole=router\fP
  98139. .UNINDENT
  98140. .sp
  98141. Returns a list of dictionaries
  98142. .INDENT 7.0
  98143. .INDENT 3.5
  98144. .sp
  98145. .nf
  98146. .ft C
  98147. salt myminion netbox.filter dcim devices status=1 role=router
  98148. .ft P
  98149. .fi
  98150. .UNINDENT
  98151. .UNINDENT
  98152. .UNINDENT
  98153. .INDENT 0.0
  98154. .TP
  98155. .B salt.modules.netbox.get_(app, endpoint, id=None, **kwargs)
  98156. Get a single item from NetBox.
  98157. .INDENT 7.0
  98158. .TP
  98159. .B app
  98160. String of netbox app, e.g., \fBdcim\fP, \fBcircuits\fP, \fBipam\fP
  98161. .TP
  98162. .B endpoint
  98163. String of app endpoint, e.g., \fBsites\fP, \fBregions\fP, \fBdevices\fP
  98164. .UNINDENT
  98165. .sp
  98166. Returns a single dictionary
  98167. .sp
  98168. To get an item based on ID.
  98169. .INDENT 7.0
  98170. .INDENT 3.5
  98171. .sp
  98172. .nf
  98173. .ft C
  98174. salt myminion netbox.get dcim devices id=123
  98175. .ft P
  98176. .fi
  98177. .UNINDENT
  98178. .UNINDENT
  98179. .sp
  98180. Or using named arguments that correspond with accepted filters on
  98181. the NetBox endpoint.
  98182. .INDENT 7.0
  98183. .INDENT 3.5
  98184. .sp
  98185. .nf
  98186. .ft C
  98187. salt myminion netbox.get dcim devices name=my\-router
  98188. .ft P
  98189. .fi
  98190. .UNINDENT
  98191. .UNINDENT
  98192. .UNINDENT
  98193. .INDENT 0.0
  98194. .TP
  98195. .B salt.modules.netbox.get_circuit_provider(name, asn=None)
  98196. New in version 2019.2.0.
  98197. .sp
  98198. Get a circuit provider with a given name and optional ASN.
  98199. .INDENT 7.0
  98200. .TP
  98201. .B name
  98202. The name of the circuit provider
  98203. .TP
  98204. .B asn
  98205. The ASN of the circuit provider
  98206. .UNINDENT
  98207. .sp
  98208. CLI Example:
  98209. .INDENT 7.0
  98210. .INDENT 3.5
  98211. .sp
  98212. .nf
  98213. .ft C
  98214. salt myminion netbox.get_circuit_provider Telia 1299
  98215. .ft P
  98216. .fi
  98217. .UNINDENT
  98218. .UNINDENT
  98219. .UNINDENT
  98220. .INDENT 0.0
  98221. .TP
  98222. .B salt.modules.netbox.get_interfaces(device_name=None, **kwargs)
  98223. New in version 2019.2.0.
  98224. .sp
  98225. Returns interfaces for a specific device using arbitrary netbox filters
  98226. .INDENT 7.0
  98227. .TP
  98228. .B device_name
  98229. The name of the device, e.g., \fBedge_router\fP
  98230. .TP
  98231. .B kwargs
  98232. Optional arguments to be used for filtering
  98233. .UNINDENT
  98234. .sp
  98235. CLI Example:
  98236. .INDENT 7.0
  98237. .INDENT 3.5
  98238. .sp
  98239. .nf
  98240. .ft C
  98241. salt myminion netbox.get_interfaces edge_router name="et\-0/0/5"
  98242. .ft P
  98243. .fi
  98244. .UNINDENT
  98245. .UNINDENT
  98246. .UNINDENT
  98247. .INDENT 0.0
  98248. .TP
  98249. .B salt.modules.netbox.get_ipaddresses(device_name=None, **kwargs)
  98250. New in version 2019.2.0.
  98251. .sp
  98252. Filters for an IP address using specified filters
  98253. .INDENT 7.0
  98254. .TP
  98255. .B device_name
  98256. The name of the device to check for the IP address
  98257. .TP
  98258. .B kwargs
  98259. Optional arguments that can be used to filter, e.g., \fBfamily=4\fP
  98260. .UNINDENT
  98261. .sp
  98262. CLI Example:
  98263. .INDENT 7.0
  98264. .INDENT 3.5
  98265. .sp
  98266. .nf
  98267. .ft C
  98268. salt myminion netbox.get_ipaddresses device_name family=4
  98269. .ft P
  98270. .fi
  98271. .UNINDENT
  98272. .UNINDENT
  98273. .UNINDENT
  98274. .INDENT 0.0
  98275. .TP
  98276. .B salt.modules.netbox.make_interface_child(device_name, interface_name, parent_name)
  98277. New in version 2019.2.0.
  98278. .sp
  98279. Set an interface as part of a LAG.
  98280. .INDENT 7.0
  98281. .TP
  98282. .B device_name
  98283. The name of the device, e.g., \fBedge_router\fP\&.
  98284. .TP
  98285. .B interface_name
  98286. The name of the interface to be attached to LAG, e.g., \fBxe\-1/0/2\fP\&.
  98287. .TP
  98288. .B parent_name
  98289. The name of the LAG interface, e.g., \fBae13\fP\&.
  98290. .UNINDENT
  98291. .sp
  98292. CLI Example:
  98293. .INDENT 7.0
  98294. .INDENT 3.5
  98295. .sp
  98296. .nf
  98297. .ft C
  98298. salt myminion netbox.make_interface_child xe\-1/0/2 ae13
  98299. .ft P
  98300. .fi
  98301. .UNINDENT
  98302. .UNINDENT
  98303. .UNINDENT
  98304. .INDENT 0.0
  98305. .TP
  98306. .B salt.modules.netbox.make_interface_lag(device_name, interface_name)
  98307. New in version 2019.2.0.
  98308. .sp
  98309. Update an interface to be a LAG.
  98310. .INDENT 7.0
  98311. .TP
  98312. .B device_name
  98313. The name of the device, e.g., \fBedge_router\fP\&.
  98314. .TP
  98315. .B interface_name
  98316. The name of the interface, e.g., \fBae13\fP\&.
  98317. .UNINDENT
  98318. .sp
  98319. CLI Example:
  98320. .INDENT 7.0
  98321. .INDENT 3.5
  98322. .sp
  98323. .nf
  98324. .ft C
  98325. salt myminion netbox.make_interface_lag edge_router ae13
  98326. .ft P
  98327. .fi
  98328. .UNINDENT
  98329. .UNINDENT
  98330. .UNINDENT
  98331. .INDENT 0.0
  98332. .TP
  98333. .B salt.modules.netbox.openconfig_interfaces(device_name=None)
  98334. New in version 2019.2.0.
  98335. .sp
  98336. Return a dictionary structured as standardised in the
  98337. \fI\%openconfig\-interfaces\fP
  98338. YANG model, containing physical and configuration data available in Netbox,
  98339. e.g., IP addresses, MTU, enabled / disabled, etc.
  98340. .INDENT 7.0
  98341. .TP
  98342. .B device_name: \fBNone\fP
  98343. The name of the device to query the interface data for. If not provided,
  98344. will use the Minion ID.
  98345. .UNINDENT
  98346. .sp
  98347. CLI Example:
  98348. .INDENT 7.0
  98349. .INDENT 3.5
  98350. .sp
  98351. .nf
  98352. .ft C
  98353. salt \(aq*\(aq netbox.openconfig_interfaces
  98354. salt \(aq*\(aq netbox.openconfig_interfaces device_name=cr1.thn.lon
  98355. .ft P
  98356. .fi
  98357. .UNINDENT
  98358. .UNINDENT
  98359. .UNINDENT
  98360. .INDENT 0.0
  98361. .TP
  98362. .B salt.modules.netbox.openconfig_lacp(device_name=None)
  98363. New in version 2019.2.0.
  98364. .sp
  98365. Return a dictionary structured as standardised in the
  98366. \fI\%openconfig\-lacp\fP
  98367. YANG model, with configuration data for Link Aggregation Control Protocol
  98368. (LACP) for aggregate interfaces.
  98369. .sp
  98370. \fBNOTE:\fP
  98371. .INDENT 7.0
  98372. .INDENT 3.5
  98373. The \fBinterval\fP and \fBlacp_mode\fP keys have the values set as \fBSLOW\fP
  98374. and \fBACTIVE\fP respectively, as this data is not currently available
  98375. in Netbox, therefore defaulting to the values defined in the standard.
  98376. See \fI\%interval\fP
  98377. and \fI\%lacp\-mode\fP
  98378. for further details.
  98379. .UNINDENT
  98380. .UNINDENT
  98381. .INDENT 7.0
  98382. .TP
  98383. .B device_name: \fBNone\fP
  98384. The name of the device to query the LACP information for. If not provided,
  98385. will use the Minion ID.
  98386. .UNINDENT
  98387. .sp
  98388. CLI Example:
  98389. .INDENT 7.0
  98390. .INDENT 3.5
  98391. .sp
  98392. .nf
  98393. .ft C
  98394. salt \(aq*\(aq netbox.openconfig_lacp
  98395. salt \(aq*\(aq netbox.openconfig_lacp device_name=cr1.thn.lon
  98396. .ft P
  98397. .fi
  98398. .UNINDENT
  98399. .UNINDENT
  98400. .UNINDENT
  98401. .INDENT 0.0
  98402. .TP
  98403. .B salt.modules.netbox.slugify(value)
  98404. \(aq
  98405. Slugify given value.
  98406. Credit to Djangoproject \fI\%https://docs.djangoproject.com/en/2.0/_modules/django/utils/text/#slugify\fP
  98407. .UNINDENT
  98408. .INDENT 0.0
  98409. .TP
  98410. .B salt.modules.netbox.update_device(name, **kwargs)
  98411. New in version 2019.2.0.
  98412. .sp
  98413. Add attributes to an existing device, identified by name.
  98414. .INDENT 7.0
  98415. .TP
  98416. .B name
  98417. The name of the device, e.g., \fBedge_router\fP
  98418. .TP
  98419. .B kwargs
  98420. Arguments to change in device, e.g., \fBserial=JN2932930\fP
  98421. .UNINDENT
  98422. .sp
  98423. CLI Example:
  98424. .INDENT 7.0
  98425. .INDENT 3.5
  98426. .sp
  98427. .nf
  98428. .ft C
  98429. salt myminion netbox.update_device edge_router serial=JN2932920
  98430. .ft P
  98431. .fi
  98432. .UNINDENT
  98433. .UNINDENT
  98434. .UNINDENT
  98435. .INDENT 0.0
  98436. .TP
  98437. .B salt.modules.netbox.update_interface(device_name, interface_name, **kwargs)
  98438. New in version 2019.2.0.
  98439. .sp
  98440. Update an existing interface with new attributes.
  98441. .INDENT 7.0
  98442. .TP
  98443. .B device_name
  98444. The name of the device, e.g., \fBedge_router\fP
  98445. .TP
  98446. .B interface_name
  98447. The name of the interface, e.g., \fBae13\fP
  98448. .TP
  98449. .B kwargs
  98450. Arguments to change in interface, e.g., \fBmac_address=50:87:69:53:32:D0\fP
  98451. .UNINDENT
  98452. .sp
  98453. CLI Example:
  98454. .INDENT 7.0
  98455. .INDENT 3.5
  98456. .sp
  98457. .nf
  98458. .ft C
  98459. salt myminion netbox.update_interface edge_router ae13 mac_address=50:87:69:53:32:D0
  98460. .ft P
  98461. .fi
  98462. .UNINDENT
  98463. .UNINDENT
  98464. .UNINDENT
  98465. .SS salt.modules.netbsdservice
  98466. .sp
  98467. The service module for NetBSD
  98468. .sp
  98469. \fBIMPORTANT:\fP
  98470. .INDENT 0.0
  98471. .INDENT 3.5
  98472. If you feel that Salt should be using this module to manage services on a
  98473. minion, and it is using a different module (or gives an error similar to
  98474. \fI\(aqservice.start\(aq is not available\fP), see here\&.
  98475. .UNINDENT
  98476. .UNINDENT
  98477. .INDENT 0.0
  98478. .TP
  98479. .B salt.modules.netbsdservice.available(name)
  98480. Returns \fBTrue\fP if the specified service is available, otherwise returns
  98481. \fBFalse\fP\&.
  98482. .sp
  98483. CLI Example:
  98484. .INDENT 7.0
  98485. .INDENT 3.5
  98486. .sp
  98487. .nf
  98488. .ft C
  98489. salt \(aq*\(aq service.available sshd
  98490. .ft P
  98491. .fi
  98492. .UNINDENT
  98493. .UNINDENT
  98494. .UNINDENT
  98495. .INDENT 0.0
  98496. .TP
  98497. .B salt.modules.netbsdservice.disable(name, **kwargs)
  98498. Disable the named service to start at boot
  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.disable <service name>
  98507. .ft P
  98508. .fi
  98509. .UNINDENT
  98510. .UNINDENT
  98511. .UNINDENT
  98512. .INDENT 0.0
  98513. .TP
  98514. .B salt.modules.netbsdservice.disabled(name)
  98515. Return True if the named service is enabled, false otherwise
  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.disabled <service name>
  98524. .ft P
  98525. .fi
  98526. .UNINDENT
  98527. .UNINDENT
  98528. .UNINDENT
  98529. .INDENT 0.0
  98530. .TP
  98531. .B salt.modules.netbsdservice.enable(name, **kwargs)
  98532. Enable the named service to start at boot
  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.enable <service name>
  98541. .ft P
  98542. .fi
  98543. .UNINDENT
  98544. .UNINDENT
  98545. .UNINDENT
  98546. .INDENT 0.0
  98547. .TP
  98548. .B salt.modules.netbsdservice.enabled(name, **kwargs)
  98549. Return True if the named service is enabled, false otherwise
  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.enabled <service name>
  98558. .ft P
  98559. .fi
  98560. .UNINDENT
  98561. .UNINDENT
  98562. .UNINDENT
  98563. .INDENT 0.0
  98564. .TP
  98565. .B salt.modules.netbsdservice.force_reload(name)
  98566. Force\-reload the named service
  98567. .sp
  98568. CLI Example:
  98569. .INDENT 7.0
  98570. .INDENT 3.5
  98571. .sp
  98572. .nf
  98573. .ft C
  98574. salt \(aq*\(aq service.force_reload <service name>
  98575. .ft P
  98576. .fi
  98577. .UNINDENT
  98578. .UNINDENT
  98579. .UNINDENT
  98580. .INDENT 0.0
  98581. .TP
  98582. .B salt.modules.netbsdservice.get_all()
  98583. Return all available boot services
  98584. .sp
  98585. CLI Example:
  98586. .INDENT 7.0
  98587. .INDENT 3.5
  98588. .sp
  98589. .nf
  98590. .ft C
  98591. salt \(aq*\(aq service.get_all
  98592. .ft P
  98593. .fi
  98594. .UNINDENT
  98595. .UNINDENT
  98596. .UNINDENT
  98597. .INDENT 0.0
  98598. .TP
  98599. .B salt.modules.netbsdservice.get_disabled()
  98600. Return a set of services that are installed but disabled
  98601. .sp
  98602. CLI Example:
  98603. .INDENT 7.0
  98604. .INDENT 3.5
  98605. .sp
  98606. .nf
  98607. .ft C
  98608. salt \(aq*\(aq service.get_disabled
  98609. .ft P
  98610. .fi
  98611. .UNINDENT
  98612. .UNINDENT
  98613. .UNINDENT
  98614. .INDENT 0.0
  98615. .TP
  98616. .B salt.modules.netbsdservice.get_enabled()
  98617. Return a list of service that are enabled on boot
  98618. .sp
  98619. CLI Example:
  98620. .INDENT 7.0
  98621. .INDENT 3.5
  98622. .sp
  98623. .nf
  98624. .ft C
  98625. salt \(aq*\(aq service.get_enabled
  98626. .ft P
  98627. .fi
  98628. .UNINDENT
  98629. .UNINDENT
  98630. .UNINDENT
  98631. .INDENT 0.0
  98632. .TP
  98633. .B salt.modules.netbsdservice.missing(name)
  98634. The inverse of service.available.
  98635. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  98636. \fBFalse\fP\&.
  98637. .sp
  98638. CLI Example:
  98639. .INDENT 7.0
  98640. .INDENT 3.5
  98641. .sp
  98642. .nf
  98643. .ft C
  98644. salt \(aq*\(aq service.missing sshd
  98645. .ft P
  98646. .fi
  98647. .UNINDENT
  98648. .UNINDENT
  98649. .UNINDENT
  98650. .INDENT 0.0
  98651. .TP
  98652. .B salt.modules.netbsdservice.reload_(name)
  98653. Reload the named service
  98654. .sp
  98655. CLI Example:
  98656. .INDENT 7.0
  98657. .INDENT 3.5
  98658. .sp
  98659. .nf
  98660. .ft C
  98661. salt \(aq*\(aq service.reload <service name>
  98662. .ft P
  98663. .fi
  98664. .UNINDENT
  98665. .UNINDENT
  98666. .UNINDENT
  98667. .INDENT 0.0
  98668. .TP
  98669. .B salt.modules.netbsdservice.restart(name)
  98670. Restart the named service
  98671. .sp
  98672. CLI Example:
  98673. .INDENT 7.0
  98674. .INDENT 3.5
  98675. .sp
  98676. .nf
  98677. .ft C
  98678. salt \(aq*\(aq service.restart <service name>
  98679. .ft P
  98680. .fi
  98681. .UNINDENT
  98682. .UNINDENT
  98683. .UNINDENT
  98684. .INDENT 0.0
  98685. .TP
  98686. .B salt.modules.netbsdservice.start(name)
  98687. Start the specified service
  98688. .sp
  98689. CLI Example:
  98690. .INDENT 7.0
  98691. .INDENT 3.5
  98692. .sp
  98693. .nf
  98694. .ft C
  98695. salt \(aq*\(aq service.start <service name>
  98696. .ft P
  98697. .fi
  98698. .UNINDENT
  98699. .UNINDENT
  98700. .UNINDENT
  98701. .INDENT 0.0
  98702. .TP
  98703. .B salt.modules.netbsdservice.status(name, sig=None)
  98704. Return the status for a service.
  98705. If the name contains globbing, a dict mapping service name to True/False
  98706. values is returned.
  98707. .sp
  98708. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  98709. .INDENT 7.0
  98710. .TP
  98711. .B Parameters
  98712. .INDENT 7.0
  98713. .IP \(bu 2
  98714. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  98715. .IP \(bu 2
  98716. \fBsig\fP (\fI\%str\fP) \-\- Signature to use to find the service via ps
  98717. .UNINDENT
  98718. .TP
  98719. .B Returns
  98720. True if running, False otherwise
  98721. dict: Maps service name to True if running, False otherwise
  98722. .TP
  98723. .B Return type
  98724. \fI\%bool\fP
  98725. .UNINDENT
  98726. .sp
  98727. CLI Example:
  98728. .INDENT 7.0
  98729. .INDENT 3.5
  98730. .sp
  98731. .nf
  98732. .ft C
  98733. salt \(aq*\(aq service.status <service name> [service signature]
  98734. .ft P
  98735. .fi
  98736. .UNINDENT
  98737. .UNINDENT
  98738. .UNINDENT
  98739. .INDENT 0.0
  98740. .TP
  98741. .B salt.modules.netbsdservice.stop(name)
  98742. Stop the specified service
  98743. .sp
  98744. CLI Example:
  98745. .INDENT 7.0
  98746. .INDENT 3.5
  98747. .sp
  98748. .nf
  98749. .ft C
  98750. salt \(aq*\(aq service.stop <service name>
  98751. .ft P
  98752. .fi
  98753. .UNINDENT
  98754. .UNINDENT
  98755. .UNINDENT
  98756. .SS salt.modules.neutron
  98757. .sp
  98758. Module for handling OpenStack Neutron calls
  98759. .INDENT 0.0
  98760. .TP
  98761. .B depends
  98762. .INDENT 7.0
  98763. .IP \(bu 2
  98764. neutronclient Python module
  98765. .UNINDENT
  98766. .TP
  98767. .B configuration
  98768. This module is not usable until the user, password, tenant, and
  98769. auth URL are specified either in a pillar or in the minion\(aqs config file.
  98770. For example:
  98771. .INDENT 7.0
  98772. .INDENT 3.5
  98773. .sp
  98774. .nf
  98775. .ft C
  98776. keystone.user: \(aqadmin\(aq
  98777. keystone.password: \(aqpassword\(aq
  98778. keystone.tenant: \(aqadmin\(aq
  98779. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  98780. keystone.region_name: \(aqRegionOne\(aq
  98781. keystone.service_type: \(aqnetwork\(aq
  98782. .ft P
  98783. .fi
  98784. .UNINDENT
  98785. .UNINDENT
  98786. .sp
  98787. If configuration for multiple OpenStack accounts is required, they can be
  98788. set up as different configuration profiles:
  98789. For example:
  98790. .INDENT 7.0
  98791. .INDENT 3.5
  98792. .sp
  98793. .nf
  98794. .ft C
  98795. openstack1:
  98796. keystone.user: \(aqadmin\(aq
  98797. keystone.password: \(aqpassword\(aq
  98798. keystone.tenant: \(aqadmin\(aq
  98799. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  98800. keystone.region_name: \(aqRegionOne\(aq
  98801. keystone.service_type: \(aqnetwork\(aq
  98802. openstack2:
  98803. keystone.user: \(aqadmin\(aq
  98804. keystone.password: \(aqpassword\(aq
  98805. keystone.tenant: \(aqadmin\(aq
  98806. keystone.auth_url: \(aqhttp://127.0.0.2:5000/v2.0/\(aq
  98807. keystone.region_name: \(aqRegionOne\(aq
  98808. keystone.service_type: \(aqnetwork\(aq
  98809. .ft P
  98810. .fi
  98811. .UNINDENT
  98812. .UNINDENT
  98813. .sp
  98814. With this configuration in place, any of the neutron functions
  98815. can make use of a configuration profile by declaring it explicitly.
  98816. For example:
  98817. .INDENT 7.0
  98818. .INDENT 3.5
  98819. .sp
  98820. .nf
  98821. .ft C
  98822. salt \(aq*\(aq neutron.network_list profile=openstack1
  98823. .ft P
  98824. .fi
  98825. .UNINDENT
  98826. .UNINDENT
  98827. .sp
  98828. To use keystoneauth1 instead of keystoneclient, include the \fIuse_keystoneauth\fP
  98829. option in the pillar or minion config.
  98830. .sp
  98831. \fBNOTE:\fP
  98832. .INDENT 7.0
  98833. .INDENT 3.5
  98834. this is required to use keystone v3 as for authentication.
  98835. .UNINDENT
  98836. .UNINDENT
  98837. .INDENT 7.0
  98838. .INDENT 3.5
  98839. .sp
  98840. .nf
  98841. .ft C
  98842. keystone.user: admin
  98843. keystone.password: verybadpass
  98844. keystone.tenant: admin
  98845. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v3/\(aq
  98846. keystone.region_name: \(aqRegionOne\(aq
  98847. keystone.service_type: \(aqnetwork\(aq
  98848. keystone.use_keystoneauth: true
  98849. keystone.verify: \(aq/path/to/custom/certs/ca\-bundle.crt\(aq
  98850. .ft P
  98851. .fi
  98852. .UNINDENT
  98853. .UNINDENT
  98854. .sp
  98855. Note: by default the neutron module will attempt to verify its connection
  98856. utilizing the system certificates. If you need to verify against another bundle
  98857. of CA certificates or want to skip verification altogether you will need to
  98858. specify the \fIverify\fP option. You can specify True or False to verify (or not)
  98859. against system certificates, a path to a bundle or CA certs to check against, or
  98860. None to allow keystoneauth to search for the certificates on its own.(defaults to True)
  98861. .UNINDENT
  98862. .INDENT 0.0
  98863. .TP
  98864. .B salt.modules.neutron.add_gateway_router(router, ext_network, profile=None)
  98865. Adds an external network gateway to the specified router
  98866. .sp
  98867. CLI Example:
  98868. .INDENT 7.0
  98869. .INDENT 3.5
  98870. .sp
  98871. .nf
  98872. .ft C
  98873. salt \(aq*\(aq neutron.add_gateway_router router\-name ext\-network\-name
  98874. .ft P
  98875. .fi
  98876. .UNINDENT
  98877. .UNINDENT
  98878. .INDENT 7.0
  98879. .TP
  98880. .B Parameters
  98881. .INDENT 7.0
  98882. .IP \(bu 2
  98883. \fBrouter\fP \-\- ID or name of the router
  98884. .IP \(bu 2
  98885. \fBext_network\fP \-\- ID or name of the external network the gateway
  98886. .IP \(bu 2
  98887. \fBprofile\fP \-\- Profile to build on (Optional)
  98888. .UNINDENT
  98889. .TP
  98890. .B Returns
  98891. Added Gateway router information
  98892. .UNINDENT
  98893. .UNINDENT
  98894. .INDENT 0.0
  98895. .TP
  98896. .B salt.modules.neutron.add_interface_router(router, subnet, profile=None)
  98897. Adds an internal network interface to the specified router
  98898. .sp
  98899. CLI Example:
  98900. .INDENT 7.0
  98901. .INDENT 3.5
  98902. .sp
  98903. .nf
  98904. .ft C
  98905. salt \(aq*\(aq neutron.add_interface_router router\-name subnet\-name
  98906. .ft P
  98907. .fi
  98908. .UNINDENT
  98909. .UNINDENT
  98910. .INDENT 7.0
  98911. .TP
  98912. .B Parameters
  98913. .INDENT 7.0
  98914. .IP \(bu 2
  98915. \fBrouter\fP \-\- ID or name of the router
  98916. .IP \(bu 2
  98917. \fBsubnet\fP \-\- ID or name of the subnet
  98918. .IP \(bu 2
  98919. \fBprofile\fP \-\- Profile to build on (Optional)
  98920. .UNINDENT
  98921. .TP
  98922. .B Returns
  98923. Added interface information
  98924. .UNINDENT
  98925. .UNINDENT
  98926. .INDENT 0.0
  98927. .TP
  98928. .B salt.modules.neutron.create_firewall_rule(protocol, action, profile=None, **kwargs)
  98929. Creates a new firewall rule
  98930. .sp
  98931. CLI Example:
  98932. .INDENT 7.0
  98933. .INDENT 3.5
  98934. .sp
  98935. .nf
  98936. .ft C
  98937. salt \(aq*\(aq neutron.create_firewall_rule protocol action
  98938. tenant_id=TENANT_ID name=NAME description=DESCRIPTION ip_version=IP_VERSION
  98939. source_ip_address=SOURCE_IP_ADDRESS destination_ip_address=DESTINATION_IP_ADDRESS source_port=SOURCE_PORT
  98940. destination_port=DESTINATION_PORT shared=SHARED enabled=ENABLED
  98941. .ft P
  98942. .fi
  98943. .UNINDENT
  98944. .UNINDENT
  98945. .INDENT 7.0
  98946. .TP
  98947. .B Parameters
  98948. .INDENT 7.0
  98949. .IP \(bu 2
  98950. \fBprotocol\fP \-\- Protocol for the firewall rule, choose "tcp","udp","icmp" or "None".
  98951. .IP \(bu 2
  98952. \fBaction\fP \-\- Action for the firewall rule, choose "allow" or "deny".
  98953. .IP \(bu 2
  98954. \fBtenant_id\fP \-\- The owner tenant ID. (Optional)
  98955. .IP \(bu 2
  98956. \fBname\fP \-\- Name for the firewall rule. (Optional)
  98957. .IP \(bu 2
  98958. \fBdescription\fP \-\- Description for the firewall rule. (Optional)
  98959. .IP \(bu 2
  98960. \fBip_version\fP \-\- IP protocol version, default: 4. (Optional)
  98961. .IP \(bu 2
  98962. \fBsource_ip_address\fP \-\- Source IP address or subnet. (Optional)
  98963. .IP \(bu 2
  98964. \fBdestination_ip_address\fP \-\- Destination IP address or subnet. (Optional)
  98965. .IP \(bu 2
  98966. \fBsource_port\fP \-\- Source port (integer in [1, 65535] or range in a:b). (Optional)
  98967. .IP \(bu 2
  98968. \fBdestination_port\fP \-\- Destination port (integer in [1, 65535] or range in a:b). (Optional)
  98969. .IP \(bu 2
  98970. \fBshared\fP \-\- Set shared to True, default: False. (Optional)
  98971. .IP \(bu 2
  98972. \fBenabled\fP \-\- To enable this rule, default: True. (Optional)
  98973. .UNINDENT
  98974. .UNINDENT
  98975. .UNINDENT
  98976. .INDENT 0.0
  98977. .TP
  98978. .B salt.modules.neutron.create_floatingip(floating_network, port=None, profile=None)
  98979. Creates a new floatingIP
  98980. .sp
  98981. CLI Example:
  98982. .INDENT 7.0
  98983. .INDENT 3.5
  98984. .sp
  98985. .nf
  98986. .ft C
  98987. salt \(aq*\(aq neutron.create_floatingip network\-name port\-name
  98988. .ft P
  98989. .fi
  98990. .UNINDENT
  98991. .UNINDENT
  98992. .INDENT 7.0
  98993. .TP
  98994. .B Parameters
  98995. .INDENT 7.0
  98996. .IP \(bu 2
  98997. \fBfloating_network\fP \-\- Network name or ID to allocate floatingIP from
  98998. .IP \(bu 2
  98999. \fBport\fP \-\- Of the port to be associated with the floatingIP (Optional)
  99000. .IP \(bu 2
  99001. \fBprofile\fP \-\- Profile to build on (Optional)
  99002. .UNINDENT
  99003. .TP
  99004. .B Returns
  99005. Created floatingIP information
  99006. .UNINDENT
  99007. .UNINDENT
  99008. .INDENT 0.0
  99009. .TP
  99010. .B salt.modules.neutron.create_ikepolicy(name, profile=None, **kwargs)
  99011. Creates a new IKEPolicy
  99012. .sp
  99013. CLI Example:
  99014. .INDENT 7.0
  99015. .INDENT 3.5
  99016. .sp
  99017. .nf
  99018. .ft C
  99019. salt \(aq*\(aq neutron.create_ikepolicy ikepolicy\-name
  99020. phase1_negotiation_mode=main auth_algorithm=sha1
  99021. encryption_algorithm=aes\-128 pfs=group5
  99022. .ft P
  99023. .fi
  99024. .UNINDENT
  99025. .UNINDENT
  99026. .INDENT 7.0
  99027. .TP
  99028. .B Parameters
  99029. .INDENT 7.0
  99030. .IP \(bu 2
  99031. \fBname\fP \-\- Name of the IKE policy
  99032. .IP \(bu 2
  99033. \fBphase1_negotiation_mode\fP \-\- IKE Phase1 negotiation mode in lowercase,
  99034. default: main (Optional)
  99035. .IP \(bu 2
  99036. \fBauth_algorithm\fP \-\- Authentication algorithm in lowercase,
  99037. default: sha1 (Optional)
  99038. .IP \(bu 2
  99039. \fBencryption_algorithm\fP \-\- Encryption algorithm in lowercase.
  99040. default:aes\-128 (Optional)
  99041. .IP \(bu 2
  99042. \fBpfs\fP \-\- Prefect Forward Security in lowercase,
  99043. default: group5 (Optional)
  99044. .IP \(bu 2
  99045. \fBunits\fP \-\- IKE lifetime attribute. default: seconds (Optional)
  99046. .IP \(bu 2
  99047. \fBvalue\fP \-\- IKE lifetime attribute. default: 3600 (Optional)
  99048. .IP \(bu 2
  99049. \fBike_version\fP \-\- IKE version in lowercase, default: v1 (Optional)
  99050. .IP \(bu 2
  99051. \fBprofile\fP \-\- Profile to build on (Optional)
  99052. .IP \(bu 2
  99053. \fBkwargs\fP \-\-
  99054. .UNINDENT
  99055. .TP
  99056. .B Returns
  99057. Created IKE policy information
  99058. .UNINDENT
  99059. .UNINDENT
  99060. .INDENT 0.0
  99061. .TP
  99062. .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)
  99063. Creates a new IPsecSiteConnection
  99064. .sp
  99065. CLI Example:
  99066. .INDENT 7.0
  99067. .INDENT 3.5
  99068. .sp
  99069. .nf
  99070. .ft C
  99071. salt \(aq*\(aq neutron.show_ipsec_site_connection connection\-name
  99072. ipsec\-policy\-name ikepolicy\-name vpnservice\-name
  99073. 192.168.XXX.XXX/24 192.168.XXX.XXX 192.168.XXX.XXX secret
  99074. .ft P
  99075. .fi
  99076. .UNINDENT
  99077. .UNINDENT
  99078. .INDENT 7.0
  99079. .TP
  99080. .B Parameters
  99081. .INDENT 7.0
  99082. .IP \(bu 2
  99083. \fBname\fP \-\- Set friendly name for the connection
  99084. .IP \(bu 2
  99085. \fBipsecpolicy\fP \-\- IPSec policy ID or name associated with this connection
  99086. .IP \(bu 2
  99087. \fBikepolicy\fP \-\- IKE policy ID or name associated with this connection
  99088. .IP \(bu 2
  99089. \fBvpnservice\fP \-\- VPN service instance ID or name associated with
  99090. this connection
  99091. .IP \(bu 2
  99092. \fBpeer_cidrs\fP \-\- Remote subnet(s) in CIDR format
  99093. .IP \(bu 2
  99094. \fBpeer_address\fP \-\- Peer gateway public IPv4/IPv6 address or FQDN
  99095. .IP \(bu 2
  99096. \fBpeer_id\fP \-\- Peer router identity for authentication
  99097. Can be IPv4/IPv6 address, e\-mail address, key id, or FQDN
  99098. .IP \(bu 2
  99099. \fBpsk\fP \-\- Pre\-shared key string
  99100. .IP \(bu 2
  99101. \fBinitiator\fP \-\- Initiator state in lowercase, default:bi\-directional
  99102. .IP \(bu 2
  99103. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99104. default: True (Optional)
  99105. .IP \(bu 2
  99106. \fBmtu\fP \-\- size for the connection, default:1500 (Optional)
  99107. .IP \(bu 2
  99108. \fBdpd_action\fP \-\- Dead Peer Detection attribute: hold/clear/disabled/
  99109. restart/restart\-by\-peer (Optional)
  99110. .IP \(bu 2
  99111. \fBdpd_interval\fP \-\- Dead Peer Detection attribute (Optional)
  99112. .IP \(bu 2
  99113. \fBdpd_timeout\fP \-\- Dead Peer Detection attribute (Optional)
  99114. .IP \(bu 2
  99115. \fBprofile\fP \-\- Profile to build on (Optional)
  99116. .UNINDENT
  99117. .TP
  99118. .B Returns
  99119. Created IPSec site connection information
  99120. .UNINDENT
  99121. .UNINDENT
  99122. .INDENT 0.0
  99123. .TP
  99124. .B salt.modules.neutron.create_ipsecpolicy(name, profile=None, **kwargs)
  99125. Creates a new IPsecPolicy
  99126. .sp
  99127. CLI Example:
  99128. .INDENT 7.0
  99129. .INDENT 3.5
  99130. .sp
  99131. .nf
  99132. .ft C
  99133. salt \(aq*\(aq neutron.create_ipsecpolicy ipsecpolicy\-name
  99134. transform_protocol=esp auth_algorithm=sha1
  99135. encapsulation_mode=tunnel encryption_algorithm=aes\-128
  99136. .ft P
  99137. .fi
  99138. .UNINDENT
  99139. .UNINDENT
  99140. .INDENT 7.0
  99141. .TP
  99142. .B Parameters
  99143. .INDENT 7.0
  99144. .IP \(bu 2
  99145. \fBname\fP \-\- Name of the IPSec policy
  99146. .IP \(bu 2
  99147. \fBtransform_protocol\fP \-\- Transform protocol in lowercase,
  99148. default: esp (Optional)
  99149. .IP \(bu 2
  99150. \fBauth_algorithm\fP \-\- Authentication algorithm in lowercase,
  99151. default: sha1 (Optional)
  99152. .IP \(bu 2
  99153. \fBencapsulation_mode\fP \-\- Encapsulation mode in lowercase,
  99154. default: tunnel (Optional)
  99155. .IP \(bu 2
  99156. \fBencryption_algorithm\fP \-\- Encryption algorithm in lowercase,
  99157. default:aes\-128 (Optional)
  99158. .IP \(bu 2
  99159. \fBpfs\fP \-\- Prefect Forward Security in lowercase,
  99160. default: group5 (Optional)
  99161. .IP \(bu 2
  99162. \fBunits\fP \-\- IPSec lifetime attribute. default: seconds (Optional)
  99163. .IP \(bu 2
  99164. \fBvalue\fP \-\- IPSec lifetime attribute. default: 3600 (Optional)
  99165. .IP \(bu 2
  99166. \fBprofile\fP \-\- Profile to build on (Optional)
  99167. .UNINDENT
  99168. .TP
  99169. .B Returns
  99170. Created IPSec policy information
  99171. .UNINDENT
  99172. .UNINDENT
  99173. .INDENT 0.0
  99174. .TP
  99175. .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)
  99176. Creates a new network
  99177. .sp
  99178. CLI Example:
  99179. .INDENT 7.0
  99180. .INDENT 3.5
  99181. .sp
  99182. .nf
  99183. .ft C
  99184. salt \(aq*\(aq neutron.create_network network\-name
  99185. salt \(aq*\(aq neutron.create_network network\-name profile=openstack1
  99186. .ft P
  99187. .fi
  99188. .UNINDENT
  99189. .UNINDENT
  99190. .INDENT 7.0
  99191. .TP
  99192. .B Parameters
  99193. .INDENT 7.0
  99194. .IP \(bu 2
  99195. \fBname\fP \-\- Name of network to create
  99196. .IP \(bu 2
  99197. \fBadmin_state_up\fP \-\- should the state of the network be up?
  99198. default: True (Optional)
  99199. .IP \(bu 2
  99200. \fBrouter_ext\fP \-\- True then if create the external network (Optional)
  99201. .IP \(bu 2
  99202. \fBnetwork_type\fP \-\- the Type of network that the provider is such as GRE, VXLAN, VLAN, FLAT, or LOCAL (Optional)
  99203. .IP \(bu 2
  99204. \fBphysical_network\fP \-\- the name of the physical network as neutron knows it (Optional)
  99205. .IP \(bu 2
  99206. \fBsegmentation_id\fP \-\- the vlan id or GRE id (Optional)
  99207. .IP \(bu 2
  99208. \fBshared\fP \-\- is the network shared or not (Optional)
  99209. .IP \(bu 2
  99210. \fBprofile\fP \-\- Profile to build on (Optional)
  99211. .UNINDENT
  99212. .TP
  99213. .B Returns
  99214. Created network information
  99215. .UNINDENT
  99216. .UNINDENT
  99217. .INDENT 0.0
  99218. .TP
  99219. .B salt.modules.neutron.create_port(name, network, device_id=None, admin_state_up=True, profile=None)
  99220. Creates a new port
  99221. .sp
  99222. CLI Example:
  99223. .INDENT 7.0
  99224. .INDENT 3.5
  99225. .sp
  99226. .nf
  99227. .ft C
  99228. salt \(aq*\(aq neutron.create_port network\-name port\-name
  99229. .ft P
  99230. .fi
  99231. .UNINDENT
  99232. .UNINDENT
  99233. .INDENT 7.0
  99234. .TP
  99235. .B Parameters
  99236. .INDENT 7.0
  99237. .IP \(bu 2
  99238. \fBname\fP \-\- Name of port to create
  99239. .IP \(bu 2
  99240. \fBnetwork\fP \-\- Network name or ID
  99241. .IP \(bu 2
  99242. \fBdevice_id\fP \-\- ID of device (Optional)
  99243. .IP \(bu 2
  99244. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99245. default: true (Optional)
  99246. .IP \(bu 2
  99247. \fBprofile\fP \-\- Profile to build on (Optional)
  99248. .UNINDENT
  99249. .TP
  99250. .B Returns
  99251. Created port information
  99252. .UNINDENT
  99253. .UNINDENT
  99254. .INDENT 0.0
  99255. .TP
  99256. .B salt.modules.neutron.create_router(name, ext_network=None, admin_state_up=True, profile=None)
  99257. Creates a new router
  99258. .sp
  99259. CLI Example:
  99260. .INDENT 7.0
  99261. .INDENT 3.5
  99262. .sp
  99263. .nf
  99264. .ft C
  99265. salt \(aq*\(aq neutron.create_router new\-router\-name
  99266. .ft P
  99267. .fi
  99268. .UNINDENT
  99269. .UNINDENT
  99270. .INDENT 7.0
  99271. .TP
  99272. .B Parameters
  99273. .INDENT 7.0
  99274. .IP \(bu 2
  99275. \fBname\fP \-\- Name of router to create (must be first)
  99276. .IP \(bu 2
  99277. \fBext_network\fP \-\- ID or name of the external for the gateway (Optional)
  99278. .IP \(bu 2
  99279. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99280. default:true (Optional)
  99281. .IP \(bu 2
  99282. \fBprofile\fP \-\- Profile to build on (Optional)
  99283. .UNINDENT
  99284. .TP
  99285. .B Returns
  99286. Created router information
  99287. .UNINDENT
  99288. .UNINDENT
  99289. .INDENT 0.0
  99290. .TP
  99291. .B salt.modules.neutron.create_security_group(name=None, description=None, profile=None)
  99292. Creates a new security group
  99293. .sp
  99294. CLI Example:
  99295. .INDENT 7.0
  99296. .INDENT 3.5
  99297. .sp
  99298. .nf
  99299. .ft C
  99300. salt \(aq*\(aq neutron.create_security_group security\-group\-name description=\(aqSecurity group for servers\(aq
  99301. .ft P
  99302. .fi
  99303. .UNINDENT
  99304. .UNINDENT
  99305. .INDENT 7.0
  99306. .TP
  99307. .B Parameters
  99308. .INDENT 7.0
  99309. .IP \(bu 2
  99310. \fBname\fP \-\- Name of security group (Optional)
  99311. .IP \(bu 2
  99312. \fBdescription\fP \-\- Description of security group (Optional)
  99313. .IP \(bu 2
  99314. \fBprofile\fP \-\- Profile to build on (Optional)
  99315. .UNINDENT
  99316. .TP
  99317. .B Returns
  99318. Created security group information
  99319. .UNINDENT
  99320. .UNINDENT
  99321. .INDENT 0.0
  99322. .TP
  99323. .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)
  99324. Creates a new security group rule
  99325. .sp
  99326. CLI Example:
  99327. .INDENT 7.0
  99328. .INDENT 3.5
  99329. .sp
  99330. .nf
  99331. .ft C
  99332. salt \(aq*\(aq neutron.show_security_group_rule security\-group\-rule\-id
  99333. .ft P
  99334. .fi
  99335. .UNINDENT
  99336. .UNINDENT
  99337. .INDENT 7.0
  99338. .TP
  99339. .B Parameters
  99340. .INDENT 7.0
  99341. .IP \(bu 2
  99342. \fBsecurity_group\fP \-\- Security group name or ID to add rule
  99343. .IP \(bu 2
  99344. \fBremote_group_id\fP \-\- Remote security group name or ID to
  99345. apply rule (Optional)
  99346. .IP \(bu 2
  99347. \fBdirection\fP \-\- Direction of traffic: ingress/egress,
  99348. default: ingress (Optional)
  99349. .IP \(bu 2
  99350. \fBprotocol\fP \-\- Protocol of packet: null/icmp/tcp/udp,
  99351. default: null (Optional)
  99352. .IP \(bu 2
  99353. \fBport_range_min\fP \-\- Starting port range (Optional)
  99354. .IP \(bu 2
  99355. \fBport_range_max\fP \-\- Ending port range (Optional)
  99356. .IP \(bu 2
  99357. \fBethertype\fP \-\- IPv4/IPv6, default: IPv4 (Optional)
  99358. .IP \(bu 2
  99359. \fBprofile\fP \-\- Profile to build on (Optional)
  99360. .UNINDENT
  99361. .TP
  99362. .B Returns
  99363. Created security group rule information
  99364. .UNINDENT
  99365. .UNINDENT
  99366. .INDENT 0.0
  99367. .TP
  99368. .B salt.modules.neutron.create_subnet(network, cidr, name=None, ip_version=4, profile=None)
  99369. Creates a new subnet
  99370. .sp
  99371. CLI Example:
  99372. .INDENT 7.0
  99373. .INDENT 3.5
  99374. .sp
  99375. .nf
  99376. .ft C
  99377. salt \(aq*\(aq neutron.create_subnet network\-name 192.168.1.0/24
  99378. .ft P
  99379. .fi
  99380. .UNINDENT
  99381. .UNINDENT
  99382. .INDENT 7.0
  99383. .TP
  99384. .B Parameters
  99385. .INDENT 7.0
  99386. .IP \(bu 2
  99387. \fBnetwork\fP \-\- Network ID or name this subnet belongs to
  99388. .IP \(bu 2
  99389. \fBcidr\fP \-\- CIDR of subnet to create (Ex. \(aq192.168.1.0/24\(aq)
  99390. .IP \(bu 2
  99391. \fBname\fP \-\- Name of the subnet to create (Optional)
  99392. .IP \(bu 2
  99393. \fBip_version\fP \-\- Version to use, default is 4(IPv4) (Optional)
  99394. .IP \(bu 2
  99395. \fBprofile\fP \-\- Profile to build on (Optional)
  99396. .UNINDENT
  99397. .TP
  99398. .B Returns
  99399. Created subnet information
  99400. .UNINDENT
  99401. .UNINDENT
  99402. .INDENT 0.0
  99403. .TP
  99404. .B salt.modules.neutron.create_vpnservice(subnet, router, name, admin_state_up=True, profile=None)
  99405. Creates a new VPN service
  99406. .sp
  99407. CLI Example:
  99408. .INDENT 7.0
  99409. .INDENT 3.5
  99410. .sp
  99411. .nf
  99412. .ft C
  99413. salt \(aq*\(aq neutron.create_vpnservice router\-name name
  99414. .ft P
  99415. .fi
  99416. .UNINDENT
  99417. .UNINDENT
  99418. .INDENT 7.0
  99419. .TP
  99420. .B Parameters
  99421. .INDENT 7.0
  99422. .IP \(bu 2
  99423. \fBsubnet\fP \-\- Subnet unique identifier for the VPN service deployment
  99424. .IP \(bu 2
  99425. \fBrouter\fP \-\- Router unique identifier for the VPN service
  99426. .IP \(bu 2
  99427. \fBname\fP \-\- Set a name for the VPN service
  99428. .IP \(bu 2
  99429. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99430. default:True (Optional)
  99431. .IP \(bu 2
  99432. \fBprofile\fP \-\- Profile to build on (Optional)
  99433. .UNINDENT
  99434. .TP
  99435. .B Returns
  99436. Created VPN service information
  99437. .UNINDENT
  99438. .UNINDENT
  99439. .INDENT 0.0
  99440. .TP
  99441. .B salt.modules.neutron.delete_firewall_rule(firewall_rule, profile=None)
  99442. Deletes the specified firewall_rule
  99443. .sp
  99444. CLI Example:
  99445. .INDENT 7.0
  99446. .INDENT 3.5
  99447. .sp
  99448. .nf
  99449. .ft C
  99450. salt \(aq*\(aq neutron.delete_firewall_rule firewall\-rule
  99451. .ft P
  99452. .fi
  99453. .UNINDENT
  99454. .UNINDENT
  99455. .INDENT 7.0
  99456. .TP
  99457. .B Parameters
  99458. .INDENT 7.0
  99459. .IP \(bu 2
  99460. \fBfirewall_rule\fP \-\- ID or name of firewall rule to delete
  99461. .IP \(bu 2
  99462. \fBprofile\fP \-\- Profile to build on (Optional)
  99463. .UNINDENT
  99464. .TP
  99465. .B Returns
  99466. True(Succeed) or False
  99467. .UNINDENT
  99468. .UNINDENT
  99469. .INDENT 0.0
  99470. .TP
  99471. .B salt.modules.neutron.delete_floatingip(floatingip_id, profile=None)
  99472. Deletes the specified floating IP
  99473. .sp
  99474. CLI Example:
  99475. .INDENT 7.0
  99476. .INDENT 3.5
  99477. .sp
  99478. .nf
  99479. .ft C
  99480. salt \(aq*\(aq neutron.delete_floatingip floatingip\-id
  99481. .ft P
  99482. .fi
  99483. .UNINDENT
  99484. .UNINDENT
  99485. .INDENT 7.0
  99486. .TP
  99487. .B Parameters
  99488. .INDENT 7.0
  99489. .IP \(bu 2
  99490. \fBfloatingip_id\fP \-\- ID of floatingIP to delete
  99491. .IP \(bu 2
  99492. \fBprofile\fP \-\- Profile to build on (Optional)
  99493. .UNINDENT
  99494. .TP
  99495. .B Returns
  99496. True(Succeed) or False
  99497. .UNINDENT
  99498. .UNINDENT
  99499. .INDENT 0.0
  99500. .TP
  99501. .B salt.modules.neutron.delete_ikepolicy(ikepolicy, profile=None)
  99502. Deletes the specified IKEPolicy
  99503. .sp
  99504. CLI Example:
  99505. .INDENT 7.0
  99506. .INDENT 3.5
  99507. .sp
  99508. .nf
  99509. .ft C
  99510. salt \(aq*\(aq neutron.delete_ikepolicy ikepolicy\-name
  99511. .ft P
  99512. .fi
  99513. .UNINDENT
  99514. .UNINDENT
  99515. .INDENT 7.0
  99516. .TP
  99517. .B Parameters
  99518. .INDENT 7.0
  99519. .IP \(bu 2
  99520. \fBikepolicy\fP \-\- ID or name of IKE policy to delete
  99521. .IP \(bu 2
  99522. \fBprofile\fP \-\- Profile to build on (Optional)
  99523. .UNINDENT
  99524. .TP
  99525. .B Returns
  99526. True(Succeed) or False
  99527. .UNINDENT
  99528. .UNINDENT
  99529. .INDENT 0.0
  99530. .TP
  99531. .B salt.modules.neutron.delete_ipsec_site_connection(ipsec_site_connection, profile=None)
  99532. Deletes the specified IPsecSiteConnection
  99533. .sp
  99534. CLI Example:
  99535. .INDENT 7.0
  99536. .INDENT 3.5
  99537. .sp
  99538. .nf
  99539. .ft C
  99540. salt \(aq*\(aq neutron.delete_ipsec_site_connection connection\-name
  99541. .ft P
  99542. .fi
  99543. .UNINDENT
  99544. .UNINDENT
  99545. .INDENT 7.0
  99546. .TP
  99547. .B Parameters
  99548. .INDENT 7.0
  99549. .IP \(bu 2
  99550. \fBipsec_site_connection\fP \-\- ID or name of ipsec site connection to delete
  99551. .IP \(bu 2
  99552. \fBprofile\fP \-\- Profile to build on (Optional)
  99553. .UNINDENT
  99554. .TP
  99555. .B Returns
  99556. True(Succeed) or False
  99557. .UNINDENT
  99558. .UNINDENT
  99559. .INDENT 0.0
  99560. .TP
  99561. .B salt.modules.neutron.delete_ipsecpolicy(ipsecpolicy, profile=None)
  99562. Deletes the specified IPsecPolicy
  99563. .sp
  99564. CLI Example:
  99565. .INDENT 7.0
  99566. .INDENT 3.5
  99567. .sp
  99568. .nf
  99569. .ft C
  99570. salt \(aq*\(aq neutron.delete_ipsecpolicy ipsecpolicy\-name
  99571. .ft P
  99572. .fi
  99573. .UNINDENT
  99574. .UNINDENT
  99575. .INDENT 7.0
  99576. .TP
  99577. .B Parameters
  99578. .INDENT 7.0
  99579. .IP \(bu 2
  99580. \fBipsecpolicy\fP \-\- ID or name of IPSec policy to delete
  99581. .IP \(bu 2
  99582. \fBprofile\fP \-\- Profile to build on (Optional)
  99583. .UNINDENT
  99584. .TP
  99585. .B Returns
  99586. True(Succeed) or False
  99587. .UNINDENT
  99588. .UNINDENT
  99589. .INDENT 0.0
  99590. .TP
  99591. .B salt.modules.neutron.delete_network(network, profile=None)
  99592. Deletes the specified network
  99593. .sp
  99594. CLI Example:
  99595. .INDENT 7.0
  99596. .INDENT 3.5
  99597. .sp
  99598. .nf
  99599. .ft C
  99600. salt \(aq*\(aq neutron.delete_network network\-name
  99601. salt \(aq*\(aq neutron.delete_network network\-name profile=openstack1
  99602. .ft P
  99603. .fi
  99604. .UNINDENT
  99605. .UNINDENT
  99606. .INDENT 7.0
  99607. .TP
  99608. .B Parameters
  99609. .INDENT 7.0
  99610. .IP \(bu 2
  99611. \fBnetwork\fP \-\- ID or name of network to delete
  99612. .IP \(bu 2
  99613. \fBprofile\fP \-\- Profile to build on (Optional)
  99614. .UNINDENT
  99615. .TP
  99616. .B Returns
  99617. True(Succeed) or False
  99618. .UNINDENT
  99619. .UNINDENT
  99620. .INDENT 0.0
  99621. .TP
  99622. .B salt.modules.neutron.delete_port(port, profile=None)
  99623. Deletes the specified port
  99624. .sp
  99625. CLI Example:
  99626. .INDENT 7.0
  99627. .INDENT 3.5
  99628. .sp
  99629. .nf
  99630. .ft C
  99631. salt \(aq*\(aq neutron.delete_network port\-name
  99632. salt \(aq*\(aq neutron.delete_network port\-name profile=openstack1
  99633. .ft P
  99634. .fi
  99635. .UNINDENT
  99636. .UNINDENT
  99637. .INDENT 7.0
  99638. .TP
  99639. .B Parameters
  99640. .INDENT 7.0
  99641. .IP \(bu 2
  99642. \fBport\fP \-\- port name or ID
  99643. .IP \(bu 2
  99644. \fBprofile\fP \-\- Profile to build on (Optional)
  99645. .UNINDENT
  99646. .TP
  99647. .B Returns
  99648. True(Succeed) or False
  99649. .UNINDENT
  99650. .UNINDENT
  99651. .INDENT 0.0
  99652. .TP
  99653. .B salt.modules.neutron.delete_quota(tenant_id, profile=None)
  99654. Delete the specified tenant\(aqs quota value
  99655. .sp
  99656. CLI Example:
  99657. .INDENT 7.0
  99658. .INDENT 3.5
  99659. .sp
  99660. .nf
  99661. .ft C
  99662. salt \(aq*\(aq neutron.update_quota tenant\-id
  99663. salt \(aq*\(aq neutron.update_quota tenant\-id profile=openstack1
  99664. .ft P
  99665. .fi
  99666. .UNINDENT
  99667. .UNINDENT
  99668. .INDENT 7.0
  99669. .TP
  99670. .B Parameters
  99671. .INDENT 7.0
  99672. .IP \(bu 2
  99673. \fBtenant_id\fP \-\- ID of tenant to quota delete
  99674. .IP \(bu 2
  99675. \fBprofile\fP \-\- Profile to build on (Optional)
  99676. .UNINDENT
  99677. .TP
  99678. .B Returns
  99679. True(Delete succeed) or False(Delete failed)
  99680. .UNINDENT
  99681. .UNINDENT
  99682. .INDENT 0.0
  99683. .TP
  99684. .B salt.modules.neutron.delete_router(router, profile=None)
  99685. Delete the specified router
  99686. .sp
  99687. CLI Example:
  99688. .INDENT 7.0
  99689. .INDENT 3.5
  99690. .sp
  99691. .nf
  99692. .ft C
  99693. salt \(aq*\(aq neutron.delete_router router\-name
  99694. .ft P
  99695. .fi
  99696. .UNINDENT
  99697. .UNINDENT
  99698. .INDENT 7.0
  99699. .TP
  99700. .B Parameters
  99701. .INDENT 7.0
  99702. .IP \(bu 2
  99703. \fBrouter\fP \-\- ID or name of router to delete
  99704. .IP \(bu 2
  99705. \fBprofile\fP \-\- Profile to build on (Optional)
  99706. .UNINDENT
  99707. .TP
  99708. .B Returns
  99709. True(Succeed) or False
  99710. .UNINDENT
  99711. .UNINDENT
  99712. .INDENT 0.0
  99713. .TP
  99714. .B salt.modules.neutron.delete_security_group(security_group, profile=None)
  99715. Deletes the specified security group
  99716. .sp
  99717. CLI Example:
  99718. .INDENT 7.0
  99719. .INDENT 3.5
  99720. .sp
  99721. .nf
  99722. .ft C
  99723. salt \(aq*\(aq neutron.delete_security_group security\-group\-name
  99724. .ft P
  99725. .fi
  99726. .UNINDENT
  99727. .UNINDENT
  99728. .INDENT 7.0
  99729. .TP
  99730. .B Parameters
  99731. .INDENT 7.0
  99732. .IP \(bu 2
  99733. \fBsecurity_group\fP \-\- ID or name of security group to delete
  99734. .IP \(bu 2
  99735. \fBprofile\fP \-\- Profile to build on (Optional)
  99736. .UNINDENT
  99737. .TP
  99738. .B Returns
  99739. True(Succeed) or False
  99740. .UNINDENT
  99741. .UNINDENT
  99742. .INDENT 0.0
  99743. .TP
  99744. .B salt.modules.neutron.delete_security_group_rule(security_group_rule_id, profile=None)
  99745. Deletes the specified security group rule
  99746. .sp
  99747. CLI Example:
  99748. .INDENT 7.0
  99749. .INDENT 3.5
  99750. .sp
  99751. .nf
  99752. .ft C
  99753. salt \(aq*\(aq neutron.delete_security_group_rule security\-group\-rule\-id
  99754. .ft P
  99755. .fi
  99756. .UNINDENT
  99757. .UNINDENT
  99758. .INDENT 7.0
  99759. .TP
  99760. .B Parameters
  99761. .INDENT 7.0
  99762. .IP \(bu 2
  99763. \fBsecurity_group_rule_id\fP \-\- ID of security group rule to delete
  99764. .IP \(bu 2
  99765. \fBprofile\fP \-\- Profile to build on (Optional)
  99766. .UNINDENT
  99767. .TP
  99768. .B Returns
  99769. True(Succeed) or False
  99770. .UNINDENT
  99771. .UNINDENT
  99772. .INDENT 0.0
  99773. .TP
  99774. .B salt.modules.neutron.delete_subnet(subnet, profile=None)
  99775. Deletes the specified subnet
  99776. .sp
  99777. CLI Example:
  99778. .INDENT 7.0
  99779. .INDENT 3.5
  99780. .sp
  99781. .nf
  99782. .ft C
  99783. salt \(aq*\(aq neutron.delete_subnet subnet\-name
  99784. salt \(aq*\(aq neutron.delete_subnet subnet\-name profile=openstack1
  99785. .ft P
  99786. .fi
  99787. .UNINDENT
  99788. .UNINDENT
  99789. .INDENT 7.0
  99790. .TP
  99791. .B Parameters
  99792. .INDENT 7.0
  99793. .IP \(bu 2
  99794. \fBsubnet\fP \-\- ID or name of subnet to delete
  99795. .IP \(bu 2
  99796. \fBprofile\fP \-\- Profile to build on (Optional)
  99797. .UNINDENT
  99798. .TP
  99799. .B Returns
  99800. True(Succeed) or False
  99801. .UNINDENT
  99802. .UNINDENT
  99803. .INDENT 0.0
  99804. .TP
  99805. .B salt.modules.neutron.delete_vpnservice(vpnservice, profile=None)
  99806. Deletes the specified VPN service
  99807. .sp
  99808. CLI Example:
  99809. .INDENT 7.0
  99810. .INDENT 3.5
  99811. .sp
  99812. .nf
  99813. .ft C
  99814. salt \(aq*\(aq neutron.delete_vpnservice vpnservice\-name
  99815. .ft P
  99816. .fi
  99817. .UNINDENT
  99818. .UNINDENT
  99819. .INDENT 7.0
  99820. .TP
  99821. .B Parameters
  99822. .INDENT 7.0
  99823. .IP \(bu 2
  99824. \fBvpnservice\fP \-\- ID or name of vpn service to delete
  99825. .IP \(bu 2
  99826. \fBprofile\fP \-\- Profile to build on (Optional)
  99827. .UNINDENT
  99828. .TP
  99829. .B Returns
  99830. True(Succeed) or False
  99831. .UNINDENT
  99832. .UNINDENT
  99833. .INDENT 0.0
  99834. .TP
  99835. .B salt.modules.neutron.get_quotas_tenant(profile=None)
  99836. Fetches tenant info in server\(aqs context for following quota operation
  99837. .sp
  99838. CLI Example:
  99839. .INDENT 7.0
  99840. .INDENT 3.5
  99841. .sp
  99842. .nf
  99843. .ft C
  99844. salt \(aq*\(aq neutron.get_quotas_tenant
  99845. salt \(aq*\(aq neutron.get_quotas_tenant profile=openstack1
  99846. .ft P
  99847. .fi
  99848. .UNINDENT
  99849. .UNINDENT
  99850. .INDENT 7.0
  99851. .TP
  99852. .B Parameters
  99853. \fBprofile\fP \-\- Profile to build on (Optional)
  99854. .TP
  99855. .B Returns
  99856. Quotas information
  99857. .UNINDENT
  99858. .UNINDENT
  99859. .INDENT 0.0
  99860. .TP
  99861. .B salt.modules.neutron.list_agents(profile=None)
  99862. List agents.
  99863. .sp
  99864. CLI Example:
  99865. .INDENT 7.0
  99866. .INDENT 3.5
  99867. .sp
  99868. .nf
  99869. .ft C
  99870. salt \(aq*\(aq neutron.list_agents
  99871. .ft P
  99872. .fi
  99873. .UNINDENT
  99874. .UNINDENT
  99875. .INDENT 7.0
  99876. .TP
  99877. .B Parameters
  99878. \fBprofile\fP \-\- Profile to build on (Optional)
  99879. .TP
  99880. .B Returns
  99881. agents message.
  99882. .UNINDENT
  99883. .UNINDENT
  99884. .INDENT 0.0
  99885. .TP
  99886. .B salt.modules.neutron.list_extensions(profile=None)
  99887. Fetches a list of all extensions on server side
  99888. .sp
  99889. CLI Example:
  99890. .INDENT 7.0
  99891. .INDENT 3.5
  99892. .sp
  99893. .nf
  99894. .ft C
  99895. salt \(aq*\(aq neutron.list_extensions
  99896. salt \(aq*\(aq neutron.list_extensions profile=openstack1
  99897. .ft P
  99898. .fi
  99899. .UNINDENT
  99900. .UNINDENT
  99901. .INDENT 7.0
  99902. .TP
  99903. .B Parameters
  99904. \fBprofile\fP \-\- Profile to build on (Optional)
  99905. .TP
  99906. .B Returns
  99907. List of extensions
  99908. .UNINDENT
  99909. .UNINDENT
  99910. .INDENT 0.0
  99911. .TP
  99912. .B salt.modules.neutron.list_firewall_rules(profile=None)
  99913. Fetches a list of all firewall rules for a tenant
  99914. CLI Example:
  99915. .INDENT 7.0
  99916. .INDENT 3.5
  99917. .sp
  99918. .nf
  99919. .ft C
  99920. salt \(aq*\(aq neutron.list_firewall_rules
  99921. .ft P
  99922. .fi
  99923. .UNINDENT
  99924. .UNINDENT
  99925. .INDENT 7.0
  99926. .TP
  99927. .B Parameters
  99928. \fBprofile\fP \-\- Profile to build on (Optional)
  99929. .TP
  99930. .B Returns
  99931. List of firewall rules
  99932. .UNINDENT
  99933. .UNINDENT
  99934. .INDENT 0.0
  99935. .TP
  99936. .B salt.modules.neutron.list_firewalls(profile=None)
  99937. Fetches a list of all firewalls for a tenant
  99938. CLI Example:
  99939. .INDENT 7.0
  99940. .INDENT 3.5
  99941. .sp
  99942. .nf
  99943. .ft C
  99944. salt \(aq*\(aq neutron.list_firewalls
  99945. .ft P
  99946. .fi
  99947. .UNINDENT
  99948. .UNINDENT
  99949. .INDENT 7.0
  99950. .TP
  99951. .B Parameters
  99952. \fBprofile\fP \-\- Profile to build on (Optional)
  99953. .TP
  99954. .B Returns
  99955. List of firewalls
  99956. .UNINDENT
  99957. .UNINDENT
  99958. .INDENT 0.0
  99959. .TP
  99960. .B salt.modules.neutron.list_floatingips(profile=None)
  99961. Fetch a list of all floatingIPs for a tenant
  99962. .sp
  99963. CLI Example:
  99964. .INDENT 7.0
  99965. .INDENT 3.5
  99966. .sp
  99967. .nf
  99968. .ft C
  99969. salt \(aq*\(aq neutron.list_floatingips
  99970. salt \(aq*\(aq neutron.list_floatingips profile=openstack1
  99971. .ft P
  99972. .fi
  99973. .UNINDENT
  99974. .UNINDENT
  99975. .INDENT 7.0
  99976. .TP
  99977. .B Parameters
  99978. \fBprofile\fP \-\- Profile to build on (Optional)
  99979. .TP
  99980. .B Returns
  99981. List of floatingIP
  99982. .UNINDENT
  99983. .UNINDENT
  99984. .INDENT 0.0
  99985. .TP
  99986. .B salt.modules.neutron.list_ikepolicies(profile=None)
  99987. Fetches a list of all configured IKEPolicies for a tenant
  99988. .sp
  99989. CLI Example:
  99990. .INDENT 7.0
  99991. .INDENT 3.5
  99992. .sp
  99993. .nf
  99994. .ft C
  99995. salt \(aq*\(aq neutron.list_ikepolicies
  99996. salt \(aq*\(aq neutron.list_ikepolicies profile=openstack1
  99997. .ft P
  99998. .fi
  99999. .UNINDENT
  100000. .UNINDENT
  100001. .INDENT 7.0
  100002. .TP
  100003. .B Parameters
  100004. \fBprofile\fP \-\- Profile to build on (Optional)
  100005. .TP
  100006. .B Returns
  100007. List of IKE policy
  100008. .UNINDENT
  100009. .UNINDENT
  100010. .INDENT 0.0
  100011. .TP
  100012. .B salt.modules.neutron.list_ipsec_site_connections(profile=None)
  100013. Fetches all configured IPsec Site Connections for a tenant
  100014. .sp
  100015. CLI Example:
  100016. .INDENT 7.0
  100017. .INDENT 3.5
  100018. .sp
  100019. .nf
  100020. .ft C
  100021. salt \(aq*\(aq neutron.list_ipsec_site_connections
  100022. salt \(aq*\(aq neutron.list_ipsec_site_connections profile=openstack1
  100023. .ft P
  100024. .fi
  100025. .UNINDENT
  100026. .UNINDENT
  100027. .INDENT 7.0
  100028. .TP
  100029. .B Parameters
  100030. \fBprofile\fP \-\- Profile to build on (Optional)
  100031. .TP
  100032. .B Returns
  100033. List of IPSec site connection
  100034. .UNINDENT
  100035. .UNINDENT
  100036. .INDENT 0.0
  100037. .TP
  100038. .B salt.modules.neutron.list_ipsecpolicies(profile=None)
  100039. Fetches a list of all configured IPsecPolicies for a tenant
  100040. .sp
  100041. CLI Example:
  100042. .INDENT 7.0
  100043. .INDENT 3.5
  100044. .sp
  100045. .nf
  100046. .ft C
  100047. salt \(aq*\(aq neutron.list_ipsecpolicies ipsecpolicy\-name
  100048. salt \(aq*\(aq neutron.list_ipsecpolicies ipsecpolicy\-name profile=openstack1
  100049. .ft P
  100050. .fi
  100051. .UNINDENT
  100052. .UNINDENT
  100053. .INDENT 7.0
  100054. .TP
  100055. .B Parameters
  100056. \fBprofile\fP \-\- Profile to build on (Optional)
  100057. .TP
  100058. .B Returns
  100059. List of IPSec policy
  100060. .UNINDENT
  100061. .UNINDENT
  100062. .INDENT 0.0
  100063. .TP
  100064. .B salt.modules.neutron.list_l3_agent_hosting_routers(router, profile=None)
  100065. List L3 agents hosting a router.
  100066. .sp
  100067. CLI Example:
  100068. .INDENT 7.0
  100069. .INDENT 3.5
  100070. .sp
  100071. .nf
  100072. .ft C
  100073. salt \(aq*\(aq neutron.list_l3_agent_hosting_routers router
  100074. .ft P
  100075. .fi
  100076. .UNINDENT
  100077. .UNINDENT
  100078. .sp
  100079. :param router:router name or ID to query.
  100080. :param profile: Profile to build on (Optional)
  100081. :return: L3 agents message.
  100082. .UNINDENT
  100083. .INDENT 0.0
  100084. .TP
  100085. .B salt.modules.neutron.list_networks(profile=None)
  100086. Fetches a list of all networks for a tenant
  100087. .sp
  100088. CLI Example:
  100089. .INDENT 7.0
  100090. .INDENT 3.5
  100091. .sp
  100092. .nf
  100093. .ft C
  100094. salt \(aq*\(aq neutron.list_networks
  100095. salt \(aq*\(aq neutron.list_networks profile=openstack1
  100096. .ft P
  100097. .fi
  100098. .UNINDENT
  100099. .UNINDENT
  100100. .INDENT 7.0
  100101. .TP
  100102. .B Parameters
  100103. \fBprofile\fP \-\- Profile to build on (Optional)
  100104. .TP
  100105. .B Returns
  100106. List of network
  100107. .UNINDENT
  100108. .UNINDENT
  100109. .INDENT 0.0
  100110. .TP
  100111. .B salt.modules.neutron.list_ports(profile=None)
  100112. Fetches a list of all networks for a tenant
  100113. .sp
  100114. CLI Example:
  100115. .INDENT 7.0
  100116. .INDENT 3.5
  100117. .sp
  100118. .nf
  100119. .ft C
  100120. salt \(aq*\(aq neutron.list_ports
  100121. salt \(aq*\(aq neutron.list_ports profile=openstack1
  100122. .ft P
  100123. .fi
  100124. .UNINDENT
  100125. .UNINDENT
  100126. .INDENT 7.0
  100127. .TP
  100128. .B Parameters
  100129. \fBprofile\fP \-\- Profile to build on (Optional)
  100130. .TP
  100131. .B Returns
  100132. List of port
  100133. .UNINDENT
  100134. .UNINDENT
  100135. .INDENT 0.0
  100136. .TP
  100137. .B salt.modules.neutron.list_quotas(profile=None)
  100138. Fetches all tenants quotas
  100139. .sp
  100140. CLI Example:
  100141. .INDENT 7.0
  100142. .INDENT 3.5
  100143. .sp
  100144. .nf
  100145. .ft C
  100146. salt \(aq*\(aq neutron.list_quotas
  100147. salt \(aq*\(aq neutron.list_quotas profile=openstack1
  100148. .ft P
  100149. .fi
  100150. .UNINDENT
  100151. .UNINDENT
  100152. .INDENT 7.0
  100153. .TP
  100154. .B Parameters
  100155. \fBprofile\fP \-\- Profile to build on (Optional)
  100156. .TP
  100157. .B Returns
  100158. List of quotas
  100159. .UNINDENT
  100160. .UNINDENT
  100161. .INDENT 0.0
  100162. .TP
  100163. .B salt.modules.neutron.list_routers(profile=None)
  100164. Fetches a list of all routers for a tenant
  100165. .sp
  100166. CLI Example:
  100167. .INDENT 7.0
  100168. .INDENT 3.5
  100169. .sp
  100170. .nf
  100171. .ft C
  100172. salt \(aq*\(aq neutron.list_routers
  100173. salt \(aq*\(aq neutron.list_routers profile=openstack1
  100174. .ft P
  100175. .fi
  100176. .UNINDENT
  100177. .UNINDENT
  100178. .INDENT 7.0
  100179. .TP
  100180. .B Parameters
  100181. \fBprofile\fP \-\- Profile to build on (Optional)
  100182. .TP
  100183. .B Returns
  100184. List of router
  100185. .UNINDENT
  100186. .UNINDENT
  100187. .INDENT 0.0
  100188. .TP
  100189. .B salt.modules.neutron.list_security_group_rules(profile=None)
  100190. Fetches a list of all security group rules for a tenant
  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.list_security_group_rules
  100199. salt \(aq*\(aq neutron.list_security_group_rules profile=openstack1
  100200. .ft P
  100201. .fi
  100202. .UNINDENT
  100203. .UNINDENT
  100204. .INDENT 7.0
  100205. .TP
  100206. .B Parameters
  100207. \fBprofile\fP \-\- Profile to build on (Optional)
  100208. .TP
  100209. .B Returns
  100210. List of security group rule
  100211. .UNINDENT
  100212. .UNINDENT
  100213. .INDENT 0.0
  100214. .TP
  100215. .B salt.modules.neutron.list_security_groups(profile=None)
  100216. Fetches a list of all security groups for a tenant
  100217. .sp
  100218. CLI Example:
  100219. .INDENT 7.0
  100220. .INDENT 3.5
  100221. .sp
  100222. .nf
  100223. .ft C
  100224. salt \(aq*\(aq neutron.list_security_groups
  100225. salt \(aq*\(aq neutron.list_security_groups profile=openstack1
  100226. .ft P
  100227. .fi
  100228. .UNINDENT
  100229. .UNINDENT
  100230. .INDENT 7.0
  100231. .TP
  100232. .B Parameters
  100233. \fBprofile\fP \-\- Profile to build on (Optional)
  100234. .TP
  100235. .B Returns
  100236. List of security group
  100237. .UNINDENT
  100238. .UNINDENT
  100239. .INDENT 0.0
  100240. .TP
  100241. .B salt.modules.neutron.list_subnets(profile=None)
  100242. Fetches a list of all networks for a tenant
  100243. .sp
  100244. CLI Example:
  100245. .INDENT 7.0
  100246. .INDENT 3.5
  100247. .sp
  100248. .nf
  100249. .ft C
  100250. salt \(aq*\(aq neutron.list_subnets
  100251. salt \(aq*\(aq neutron.list_subnets profile=openstack1
  100252. .ft P
  100253. .fi
  100254. .UNINDENT
  100255. .UNINDENT
  100256. .INDENT 7.0
  100257. .TP
  100258. .B Parameters
  100259. \fBprofile\fP \-\- Profile to build on (Optional)
  100260. .TP
  100261. .B Returns
  100262. List of subnet
  100263. .UNINDENT
  100264. .UNINDENT
  100265. .INDENT 0.0
  100266. .TP
  100267. .B salt.modules.neutron.list_vpnservices(retrieve_all=True, profile=None, **kwargs)
  100268. Fetches a list of all configured VPN services for a tenant
  100269. .sp
  100270. CLI Example:
  100271. .INDENT 7.0
  100272. .INDENT 3.5
  100273. .sp
  100274. .nf
  100275. .ft C
  100276. salt \(aq*\(aq neutron.list_vpnservices
  100277. .ft P
  100278. .fi
  100279. .UNINDENT
  100280. .UNINDENT
  100281. .INDENT 7.0
  100282. .TP
  100283. .B Parameters
  100284. .INDENT 7.0
  100285. .IP \(bu 2
  100286. \fBretrieve_all\fP \-\- True or False, default: True (Optional)
  100287. .IP \(bu 2
  100288. \fBprofile\fP \-\- Profile to build on (Optional)
  100289. .UNINDENT
  100290. .TP
  100291. .B Returns
  100292. List of VPN service
  100293. .UNINDENT
  100294. .UNINDENT
  100295. .INDENT 0.0
  100296. .TP
  100297. .B salt.modules.neutron.remove_gateway_router(router, profile=None)
  100298. Removes an external network gateway from the specified router
  100299. .sp
  100300. CLI Example:
  100301. .INDENT 7.0
  100302. .INDENT 3.5
  100303. .sp
  100304. .nf
  100305. .ft C
  100306. salt \(aq*\(aq neutron.remove_gateway_router router\-name
  100307. .ft P
  100308. .fi
  100309. .UNINDENT
  100310. .UNINDENT
  100311. .INDENT 7.0
  100312. .TP
  100313. .B Parameters
  100314. .INDENT 7.0
  100315. .IP \(bu 2
  100316. \fBrouter\fP \-\- ID or name of router
  100317. .IP \(bu 2
  100318. \fBprofile\fP \-\- Profile to build on (Optional)
  100319. .UNINDENT
  100320. .TP
  100321. .B Returns
  100322. True(Succeed) or False
  100323. .UNINDENT
  100324. .UNINDENT
  100325. .INDENT 0.0
  100326. .TP
  100327. .B salt.modules.neutron.remove_interface_router(router, subnet, profile=None)
  100328. Removes an internal network interface from the specified router
  100329. .sp
  100330. CLI Example:
  100331. .INDENT 7.0
  100332. .INDENT 3.5
  100333. .sp
  100334. .nf
  100335. .ft C
  100336. salt \(aq*\(aq neutron.remove_interface_router router\-name subnet\-name
  100337. .ft P
  100338. .fi
  100339. .UNINDENT
  100340. .UNINDENT
  100341. .INDENT 7.0
  100342. .TP
  100343. .B Parameters
  100344. .INDENT 7.0
  100345. .IP \(bu 2
  100346. \fBrouter\fP \-\- ID or name of the router
  100347. .IP \(bu 2
  100348. \fBsubnet\fP \-\- ID or name of the subnet
  100349. .IP \(bu 2
  100350. \fBprofile\fP \-\- Profile to build on (Optional)
  100351. .UNINDENT
  100352. .TP
  100353. .B Returns
  100354. True(Succeed) or False
  100355. .UNINDENT
  100356. .UNINDENT
  100357. .INDENT 0.0
  100358. .TP
  100359. .B salt.modules.neutron.show_firewall(firewall, profile=None)
  100360. Fetches information of a specific firewall rule
  100361. .sp
  100362. CLI Example:
  100363. .INDENT 7.0
  100364. .INDENT 3.5
  100365. .sp
  100366. .nf
  100367. .ft C
  100368. salt \(aq*\(aq neutron.show_firewall firewall
  100369. .ft P
  100370. .fi
  100371. .UNINDENT
  100372. .UNINDENT
  100373. .INDENT 7.0
  100374. .TP
  100375. .B Parameters
  100376. .INDENT 7.0
  100377. .IP \(bu 2
  100378. \fBfirewall\fP \-\- ID or name of firewall to look up
  100379. .IP \(bu 2
  100380. \fBprofile\fP \-\- Profile to build on (Optional)
  100381. .UNINDENT
  100382. .TP
  100383. .B Returns
  100384. firewall information
  100385. .UNINDENT
  100386. .UNINDENT
  100387. .INDENT 0.0
  100388. .TP
  100389. .B salt.modules.neutron.show_firewall_rule(firewall_rule, profile=None)
  100390. Fetches information of a specific firewall rule
  100391. .sp
  100392. CLI Example:
  100393. .INDENT 7.0
  100394. .INDENT 3.5
  100395. .sp
  100396. .nf
  100397. .ft C
  100398. salt \(aq*\(aq neutron.show_firewall_rule firewall\-rule\-name
  100399. .ft P
  100400. .fi
  100401. .UNINDENT
  100402. .UNINDENT
  100403. .INDENT 7.0
  100404. .TP
  100405. .B Parameters
  100406. .INDENT 7.0
  100407. .IP \(bu 2
  100408. \fBipsecpolicy\fP \-\- ID or name of firewall rule to look up
  100409. .IP \(bu 2
  100410. \fBprofile\fP \-\- Profile to build on (Optional)
  100411. .UNINDENT
  100412. .TP
  100413. .B Returns
  100414. firewall rule information
  100415. .UNINDENT
  100416. .UNINDENT
  100417. .INDENT 0.0
  100418. .TP
  100419. .B salt.modules.neutron.show_floatingip(floatingip_id, profile=None)
  100420. Fetches information of a certain floatingIP
  100421. .sp
  100422. CLI Example:
  100423. .INDENT 7.0
  100424. .INDENT 3.5
  100425. .sp
  100426. .nf
  100427. .ft C
  100428. salt \(aq*\(aq neutron.show_floatingip floatingip\-id
  100429. .ft P
  100430. .fi
  100431. .UNINDENT
  100432. .UNINDENT
  100433. .INDENT 7.0
  100434. .TP
  100435. .B Parameters
  100436. .INDENT 7.0
  100437. .IP \(bu 2
  100438. \fBfloatingip_id\fP \-\- ID of floatingIP to look up
  100439. .IP \(bu 2
  100440. \fBprofile\fP \-\- Profile to build on (Optional)
  100441. .UNINDENT
  100442. .TP
  100443. .B Returns
  100444. Floating IP information
  100445. .UNINDENT
  100446. .UNINDENT
  100447. .INDENT 0.0
  100448. .TP
  100449. .B salt.modules.neutron.show_ikepolicy(ikepolicy, profile=None)
  100450. Fetches information of a specific IKEPolicy
  100451. .sp
  100452. CLI Example:
  100453. .INDENT 7.0
  100454. .INDENT 3.5
  100455. .sp
  100456. .nf
  100457. .ft C
  100458. salt \(aq*\(aq neutron.show_ikepolicy ikepolicy\-name
  100459. .ft P
  100460. .fi
  100461. .UNINDENT
  100462. .UNINDENT
  100463. .INDENT 7.0
  100464. .TP
  100465. .B Parameters
  100466. .INDENT 7.0
  100467. .IP \(bu 2
  100468. \fBikepolicy\fP \-\- ID or name of ikepolicy to look up
  100469. .IP \(bu 2
  100470. \fBprofile\fP \-\- Profile to build on (Optional)
  100471. .UNINDENT
  100472. .TP
  100473. .B Returns
  100474. IKE policy information
  100475. .UNINDENT
  100476. .UNINDENT
  100477. .INDENT 0.0
  100478. .TP
  100479. .B salt.modules.neutron.show_ipsec_site_connection(ipsec_site_connection, profile=None)
  100480. Fetches information of a specific IPsecSiteConnection
  100481. .sp
  100482. CLI Example:
  100483. .INDENT 7.0
  100484. .INDENT 3.5
  100485. .sp
  100486. .nf
  100487. .ft C
  100488. salt \(aq*\(aq neutron.show_ipsec_site_connection connection\-name
  100489. .ft P
  100490. .fi
  100491. .UNINDENT
  100492. .UNINDENT
  100493. .INDENT 7.0
  100494. .TP
  100495. .B Parameters
  100496. .INDENT 7.0
  100497. .IP \(bu 2
  100498. \fBipsec_site_connection\fP \-\- ID or name of ipsec site connection
  100499. to look up
  100500. .IP \(bu 2
  100501. \fBprofile\fP \-\- Profile to build on (Optional)
  100502. .UNINDENT
  100503. .TP
  100504. .B Returns
  100505. IPSec site connection information
  100506. .UNINDENT
  100507. .UNINDENT
  100508. .INDENT 0.0
  100509. .TP
  100510. .B salt.modules.neutron.show_ipsecpolicy(ipsecpolicy, profile=None)
  100511. Fetches information of a specific IPsecPolicy
  100512. .sp
  100513. CLI Example:
  100514. .INDENT 7.0
  100515. .INDENT 3.5
  100516. .sp
  100517. .nf
  100518. .ft C
  100519. salt \(aq*\(aq neutron.show_ipsecpolicy ipsecpolicy\-name
  100520. .ft P
  100521. .fi
  100522. .UNINDENT
  100523. .UNINDENT
  100524. .INDENT 7.0
  100525. .TP
  100526. .B Parameters
  100527. .INDENT 7.0
  100528. .IP \(bu 2
  100529. \fBipsecpolicy\fP \-\- ID or name of IPSec policy to look up
  100530. .IP \(bu 2
  100531. \fBprofile\fP \-\- Profile to build on (Optional)
  100532. .UNINDENT
  100533. .TP
  100534. .B Returns
  100535. IPSec policy information
  100536. .UNINDENT
  100537. .UNINDENT
  100538. .INDENT 0.0
  100539. .TP
  100540. .B salt.modules.neutron.show_network(network, profile=None)
  100541. Fetches information of a certain network
  100542. .sp
  100543. CLI Example:
  100544. .INDENT 7.0
  100545. .INDENT 3.5
  100546. .sp
  100547. .nf
  100548. .ft C
  100549. salt \(aq*\(aq neutron.show_network network\-name
  100550. salt \(aq*\(aq neutron.show_network network\-name profile=openstack1
  100551. .ft P
  100552. .fi
  100553. .UNINDENT
  100554. .UNINDENT
  100555. .INDENT 7.0
  100556. .TP
  100557. .B Parameters
  100558. .INDENT 7.0
  100559. .IP \(bu 2
  100560. \fBnetwork\fP \-\- ID or name of network to look up
  100561. .IP \(bu 2
  100562. \fBprofile\fP \-\- Profile to build on (Optional)
  100563. .UNINDENT
  100564. .TP
  100565. .B Returns
  100566. Network information
  100567. .UNINDENT
  100568. .UNINDENT
  100569. .INDENT 0.0
  100570. .TP
  100571. .B salt.modules.neutron.show_port(port, profile=None)
  100572. Fetches information of a certain port
  100573. .sp
  100574. CLI Example:
  100575. .INDENT 7.0
  100576. .INDENT 3.5
  100577. .sp
  100578. .nf
  100579. .ft C
  100580. salt \(aq*\(aq neutron.show_port port\-id
  100581. salt \(aq*\(aq neutron.show_port port\-id profile=openstack1
  100582. .ft P
  100583. .fi
  100584. .UNINDENT
  100585. .UNINDENT
  100586. .INDENT 7.0
  100587. .TP
  100588. .B Parameters
  100589. .INDENT 7.0
  100590. .IP \(bu 2
  100591. \fBport\fP \-\- ID or name of port to look up
  100592. .IP \(bu 2
  100593. \fBprofile\fP \-\- Profile to build on (Optional)
  100594. .UNINDENT
  100595. .TP
  100596. .B Returns
  100597. Port information
  100598. .UNINDENT
  100599. .UNINDENT
  100600. .INDENT 0.0
  100601. .TP
  100602. .B salt.modules.neutron.show_quota(tenant_id, profile=None)
  100603. Fetches information of a certain tenant\(aqs quotas
  100604. .sp
  100605. CLI Example:
  100606. .INDENT 7.0
  100607. .INDENT 3.5
  100608. .sp
  100609. .nf
  100610. .ft C
  100611. salt \(aq*\(aq neutron.show_quota tenant\-id
  100612. salt \(aq*\(aq neutron.show_quota tenant\-id profile=openstack1
  100613. .ft P
  100614. .fi
  100615. .UNINDENT
  100616. .UNINDENT
  100617. .INDENT 7.0
  100618. .TP
  100619. .B Parameters
  100620. .INDENT 7.0
  100621. .IP \(bu 2
  100622. \fBtenant_id\fP \-\- ID of tenant
  100623. .IP \(bu 2
  100624. \fBprofile\fP \-\- Profile to build on (Optional)
  100625. .UNINDENT
  100626. .TP
  100627. .B Returns
  100628. Quota information
  100629. .UNINDENT
  100630. .UNINDENT
  100631. .INDENT 0.0
  100632. .TP
  100633. .B salt.modules.neutron.show_router(router, profile=None)
  100634. Fetches information of a certain router
  100635. .sp
  100636. CLI Example:
  100637. .INDENT 7.0
  100638. .INDENT 3.5
  100639. .sp
  100640. .nf
  100641. .ft C
  100642. salt \(aq*\(aq neutron.show_router router\-name
  100643. .ft P
  100644. .fi
  100645. .UNINDENT
  100646. .UNINDENT
  100647. .INDENT 7.0
  100648. .TP
  100649. .B Parameters
  100650. .INDENT 7.0
  100651. .IP \(bu 2
  100652. \fBrouter\fP \-\- ID or name of router to look up
  100653. .IP \(bu 2
  100654. \fBprofile\fP \-\- Profile to build on (Optional)
  100655. .UNINDENT
  100656. .TP
  100657. .B Returns
  100658. Router information
  100659. .UNINDENT
  100660. .UNINDENT
  100661. .INDENT 0.0
  100662. .TP
  100663. .B salt.modules.neutron.show_security_group(security_group, profile=None)
  100664. Fetches information of a certain security group
  100665. .sp
  100666. CLI Example:
  100667. .INDENT 7.0
  100668. .INDENT 3.5
  100669. .sp
  100670. .nf
  100671. .ft C
  100672. salt \(aq*\(aq neutron.show_security_group security\-group\-name
  100673. .ft P
  100674. .fi
  100675. .UNINDENT
  100676. .UNINDENT
  100677. .INDENT 7.0
  100678. .TP
  100679. .B Parameters
  100680. .INDENT 7.0
  100681. .IP \(bu 2
  100682. \fBsecurity_group\fP \-\- ID or name of security group to look up
  100683. .IP \(bu 2
  100684. \fBprofile\fP \-\- Profile to build on (Optional)
  100685. .UNINDENT
  100686. .TP
  100687. .B Returns
  100688. Security group information
  100689. .UNINDENT
  100690. .UNINDENT
  100691. .INDENT 0.0
  100692. .TP
  100693. .B salt.modules.neutron.show_security_group_rule(security_group_rule_id, profile=None)
  100694. Fetches information of a certain security group rule
  100695. .sp
  100696. CLI Example:
  100697. .INDENT 7.0
  100698. .INDENT 3.5
  100699. .sp
  100700. .nf
  100701. .ft C
  100702. salt \(aq*\(aq neutron.show_security_group_rule security\-group\-rule\-id
  100703. .ft P
  100704. .fi
  100705. .UNINDENT
  100706. .UNINDENT
  100707. .INDENT 7.0
  100708. .TP
  100709. .B Parameters
  100710. .INDENT 7.0
  100711. .IP \(bu 2
  100712. \fBsecurity_group_rule_id\fP \-\- ID of security group rule to look up
  100713. .IP \(bu 2
  100714. \fBprofile\fP \-\- Profile to build on (Optional)
  100715. .UNINDENT
  100716. .TP
  100717. .B Returns
  100718. Security group rule information
  100719. .UNINDENT
  100720. .UNINDENT
  100721. .INDENT 0.0
  100722. .TP
  100723. .B salt.modules.neutron.show_subnet(subnet, profile=None)
  100724. Fetches information of a certain subnet
  100725. .sp
  100726. CLI Example:
  100727. .INDENT 7.0
  100728. .INDENT 3.5
  100729. .sp
  100730. .nf
  100731. .ft C
  100732. salt \(aq*\(aq neutron.show_subnet subnet\-name
  100733. .ft P
  100734. .fi
  100735. .UNINDENT
  100736. .UNINDENT
  100737. .INDENT 7.0
  100738. .TP
  100739. .B Parameters
  100740. .INDENT 7.0
  100741. .IP \(bu 2
  100742. \fBsubnet\fP \-\- ID or name of subnet to look up
  100743. .IP \(bu 2
  100744. \fBprofile\fP \-\- Profile to build on (Optional)
  100745. .UNINDENT
  100746. .TP
  100747. .B Returns
  100748. Subnet information
  100749. .UNINDENT
  100750. .UNINDENT
  100751. .INDENT 0.0
  100752. .TP
  100753. .B salt.modules.neutron.show_vpnservice(vpnservice, profile=None, **kwargs)
  100754. Fetches information of a specific VPN service
  100755. .sp
  100756. CLI Example:
  100757. .INDENT 7.0
  100758. .INDENT 3.5
  100759. .sp
  100760. .nf
  100761. .ft C
  100762. salt \(aq*\(aq neutron.show_vpnservice vpnservice\-name
  100763. .ft P
  100764. .fi
  100765. .UNINDENT
  100766. .UNINDENT
  100767. .INDENT 7.0
  100768. .TP
  100769. .B Parameters
  100770. .INDENT 7.0
  100771. .IP \(bu 2
  100772. \fBvpnservice\fP \-\- ID or name of vpn service to look up
  100773. .IP \(bu 2
  100774. \fBprofile\fP \-\- Profile to build on (Optional)
  100775. .UNINDENT
  100776. .TP
  100777. .B Returns
  100778. VPN service information
  100779. .UNINDENT
  100780. .UNINDENT
  100781. .INDENT 0.0
  100782. .TP
  100783. .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)
  100784. Update a firewall rule
  100785. .sp
  100786. CLI Example:
  100787. .INDENT 7.0
  100788. .INDENT 3.5
  100789. .sp
  100790. .nf
  100791. .ft C
  100792. salt \(aq*\(aq neutron.update_firewall_rule firewall_rule protocol=PROTOCOL action=ACTION
  100793. name=NAME description=DESCRIPTION ip_version=IP_VERSION
  100794. source_ip_address=SOURCE_IP_ADDRESS destination_ip_address=DESTINATION_IP_ADDRESS
  100795. source_port=SOURCE_PORT destination_port=DESTINATION_PORT shared=SHARED enabled=ENABLED
  100796. .ft P
  100797. .fi
  100798. .UNINDENT
  100799. .UNINDENT
  100800. .INDENT 7.0
  100801. .TP
  100802. .B Parameters
  100803. .INDENT 7.0
  100804. .IP \(bu 2
  100805. \fBfirewall_rule\fP \-\- ID or name of firewall rule to update.
  100806. .IP \(bu 2
  100807. \fBprotocol\fP \-\- Protocol for the firewall rule, choose "tcp","udp","icmp" or "None". (Optional)
  100808. .IP \(bu 2
  100809. \fBaction\fP \-\- Action for the firewall rule, choose "allow" or "deny". (Optional)
  100810. .IP \(bu 2
  100811. \fBname\fP \-\- Name for the firewall rule. (Optional)
  100812. .IP \(bu 2
  100813. \fBdescription\fP \-\- Description for the firewall rule. (Optional)
  100814. .IP \(bu 2
  100815. \fBip_version\fP \-\- IP protocol version, default: 4. (Optional)
  100816. .IP \(bu 2
  100817. \fBsource_ip_address\fP \-\- Source IP address or subnet. (Optional)
  100818. .IP \(bu 2
  100819. \fBdestination_ip_address\fP \-\- Destination IP address or subnet. (Optional)
  100820. .IP \(bu 2
  100821. \fBsource_port\fP \-\- Source port (integer in [1, 65535] or range in a:b). (Optional)
  100822. .IP \(bu 2
  100823. \fBdestination_port\fP \-\- Destination port (integer in [1, 65535] or range in a:b). (Optional)
  100824. .IP \(bu 2
  100825. \fBshared\fP \-\- Set shared to True, default: False. (Optional)
  100826. .IP \(bu 2
  100827. \fBenabled\fP \-\- To enable this rule, default: True. (Optional)
  100828. .IP \(bu 2
  100829. \fBprofile\fP \-\- Profile to build on (Optional)
  100830. .UNINDENT
  100831. .UNINDENT
  100832. .UNINDENT
  100833. .INDENT 0.0
  100834. .TP
  100835. .B salt.modules.neutron.update_floatingip(floatingip_id, port=None, profile=None)
  100836. Updates a floatingIP
  100837. .sp
  100838. CLI Example:
  100839. .INDENT 7.0
  100840. .INDENT 3.5
  100841. .sp
  100842. .nf
  100843. .ft C
  100844. salt \(aq*\(aq neutron.update_floatingip network\-name port\-name
  100845. .ft P
  100846. .fi
  100847. .UNINDENT
  100848. .UNINDENT
  100849. .INDENT 7.0
  100850. .TP
  100851. .B Parameters
  100852. .INDENT 7.0
  100853. .IP \(bu 2
  100854. \fBfloatingip_id\fP \-\- ID of floatingIP
  100855. .IP \(bu 2
  100856. \fBport\fP \-\- ID or name of port, to associate floatingip to \fINone\fP or do
  100857. not specify to disassociate the floatingip (Optional)
  100858. .IP \(bu 2
  100859. \fBprofile\fP \-\- Profile to build on (Optional)
  100860. .UNINDENT
  100861. .TP
  100862. .B Returns
  100863. Value of updated floating IP information
  100864. .UNINDENT
  100865. .UNINDENT
  100866. .INDENT 0.0
  100867. .TP
  100868. .B salt.modules.neutron.update_network(network, name, profile=None)
  100869. Updates a network
  100870. .sp
  100871. CLI Example:
  100872. .INDENT 7.0
  100873. .INDENT 3.5
  100874. .sp
  100875. .nf
  100876. .ft C
  100877. salt \(aq*\(aq neutron.update_network network\-name new\-network\-name
  100878. .ft P
  100879. .fi
  100880. .UNINDENT
  100881. .UNINDENT
  100882. .INDENT 7.0
  100883. .TP
  100884. .B Parameters
  100885. .INDENT 7.0
  100886. .IP \(bu 2
  100887. \fBnetwork\fP \-\- ID or name of network to update
  100888. .IP \(bu 2
  100889. \fBname\fP \-\- Name of this network
  100890. .IP \(bu 2
  100891. \fBprofile\fP \-\- Profile to build on (Optional)
  100892. .UNINDENT
  100893. .TP
  100894. .B Returns
  100895. Value of updated network information
  100896. .UNINDENT
  100897. .UNINDENT
  100898. .INDENT 0.0
  100899. .TP
  100900. .B salt.modules.neutron.update_port(port, name, admin_state_up=True, profile=None)
  100901. Updates a port
  100902. .sp
  100903. CLI Example:
  100904. .INDENT 7.0
  100905. .INDENT 3.5
  100906. .sp
  100907. .nf
  100908. .ft C
  100909. salt \(aq*\(aq neutron.update_port port\-name network\-name new\-port\-name
  100910. .ft P
  100911. .fi
  100912. .UNINDENT
  100913. .UNINDENT
  100914. .INDENT 7.0
  100915. .TP
  100916. .B Parameters
  100917. .INDENT 7.0
  100918. .IP \(bu 2
  100919. \fBport\fP \-\- Port name or ID
  100920. .IP \(bu 2
  100921. \fBname\fP \-\- Name of this port
  100922. .IP \(bu 2
  100923. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  100924. default: true (Optional)
  100925. .IP \(bu 2
  100926. \fBprofile\fP \-\- Profile to build on (Optional)
  100927. .UNINDENT
  100928. .TP
  100929. .B Returns
  100930. Value of updated port information
  100931. .UNINDENT
  100932. .UNINDENT
  100933. .INDENT 0.0
  100934. .TP
  100935. .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)
  100936. Update a tenant\(aqs quota
  100937. .sp
  100938. CLI Example:
  100939. .INDENT 7.0
  100940. .INDENT 3.5
  100941. .sp
  100942. .nf
  100943. .ft C
  100944. salt \(aq*\(aq neutron.update_quota tenant\-id subnet=40 router=50
  100945. network=10 floatingip=30 port=30
  100946. .ft P
  100947. .fi
  100948. .UNINDENT
  100949. .UNINDENT
  100950. .INDENT 7.0
  100951. .TP
  100952. .B Parameters
  100953. .INDENT 7.0
  100954. .IP \(bu 2
  100955. \fBtenant_id\fP \-\- ID of tenant
  100956. .IP \(bu 2
  100957. \fBsubnet\fP \-\- Value of subnet quota (Optional)
  100958. .IP \(bu 2
  100959. \fBrouter\fP \-\- Value of router quota (Optional)
  100960. .IP \(bu 2
  100961. \fBnetwork\fP \-\- Value of network quota (Optional)
  100962. .IP \(bu 2
  100963. \fBfloatingip\fP \-\- Value of floatingip quota (Optional)
  100964. .IP \(bu 2
  100965. \fBport\fP \-\- Value of port quota (Optional)
  100966. .IP \(bu 2
  100967. \fBsecurity_group\fP \-\- Value of security group (Optional)
  100968. .IP \(bu 2
  100969. \fBsecurity_group_rule\fP \-\- Value of security group rule (Optional)
  100970. .IP \(bu 2
  100971. \fBprofile\fP \-\- Profile to build on (Optional)
  100972. .UNINDENT
  100973. .TP
  100974. .B Returns
  100975. Value of updated quota
  100976. .UNINDENT
  100977. .UNINDENT
  100978. .INDENT 0.0
  100979. .TP
  100980. .B salt.modules.neutron.update_router(router, name=None, admin_state_up=None, profile=None, **kwargs)
  100981. Updates a router
  100982. .sp
  100983. CLI Example:
  100984. .INDENT 7.0
  100985. .INDENT 3.5
  100986. .sp
  100987. .nf
  100988. .ft C
  100989. salt \(aq*\(aq neutron.update_router router_id name=new\-router\-name
  100990. admin_state_up=True
  100991. .ft P
  100992. .fi
  100993. .UNINDENT
  100994. .UNINDENT
  100995. .INDENT 7.0
  100996. .TP
  100997. .B Parameters
  100998. .INDENT 7.0
  100999. .IP \(bu 2
  101000. \fBrouter\fP \-\- ID or name of router to update
  101001. .IP \(bu 2
  101002. \fBname\fP \-\- Name of this router
  101003. .IP \(bu 2
  101004. \fBext_network\fP \-\- ID or name of the external for the gateway (Optional)
  101005. .IP \(bu 2
  101006. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  101007. default: true (Optional)
  101008. .IP \(bu 2
  101009. \fBprofile\fP \-\- Profile to build on (Optional)
  101010. .IP \(bu 2
  101011. \fBkwargs\fP \-\-
  101012. .UNINDENT
  101013. .TP
  101014. .B Returns
  101015. Value of updated router information
  101016. .UNINDENT
  101017. .UNINDENT
  101018. .INDENT 0.0
  101019. .TP
  101020. .B salt.modules.neutron.update_security_group(security_group, name=None, description=None, profile=None)
  101021. Updates a security group
  101022. .sp
  101023. CLI Example:
  101024. .INDENT 7.0
  101025. .INDENT 3.5
  101026. .sp
  101027. .nf
  101028. .ft C
  101029. salt \(aq*\(aq neutron.update_security_group security\-group\-name new\-security\-group\-name
  101030. .ft P
  101031. .fi
  101032. .UNINDENT
  101033. .UNINDENT
  101034. .INDENT 7.0
  101035. .TP
  101036. .B Parameters
  101037. .INDENT 7.0
  101038. .IP \(bu 2
  101039. \fBsecurity_group\fP \-\- ID or name of security group to update
  101040. .IP \(bu 2
  101041. \fBname\fP \-\- Name of this security group (Optional)
  101042. .IP \(bu 2
  101043. \fBdescription\fP \-\- Description of security group (Optional)
  101044. .IP \(bu 2
  101045. \fBprofile\fP \-\- Profile to build on (Optional)
  101046. .UNINDENT
  101047. .TP
  101048. .B Returns
  101049. Value of updated security group information
  101050. .UNINDENT
  101051. .UNINDENT
  101052. .INDENT 0.0
  101053. .TP
  101054. .B salt.modules.neutron.update_subnet(subnet, name, profile=None)
  101055. Updates a subnet
  101056. .sp
  101057. CLI Example:
  101058. .INDENT 7.0
  101059. .INDENT 3.5
  101060. .sp
  101061. .nf
  101062. .ft C
  101063. salt \(aq*\(aq neutron.update_subnet subnet\-name new\-subnet\-name
  101064. .ft P
  101065. .fi
  101066. .UNINDENT
  101067. .UNINDENT
  101068. .INDENT 7.0
  101069. .TP
  101070. .B Parameters
  101071. .INDENT 7.0
  101072. .IP \(bu 2
  101073. \fBsubnet\fP \-\- ID or name of subnet to update
  101074. .IP \(bu 2
  101075. \fBname\fP \-\- Name of this subnet
  101076. .IP \(bu 2
  101077. \fBprofile\fP \-\- Profile to build on (Optional)
  101078. .UNINDENT
  101079. .TP
  101080. .B Returns
  101081. Value of updated subnet information
  101082. .UNINDENT
  101083. .UNINDENT
  101084. .INDENT 0.0
  101085. .TP
  101086. .B salt.modules.neutron.update_vpnservice(vpnservice, desc, profile=None)
  101087. Updates a VPN service
  101088. .sp
  101089. CLI Example:
  101090. .INDENT 7.0
  101091. .INDENT 3.5
  101092. .sp
  101093. .nf
  101094. .ft C
  101095. salt \(aq*\(aq neutron.update_vpnservice vpnservice\-name desc=\(aqVPN Service1\(aq
  101096. .ft P
  101097. .fi
  101098. .UNINDENT
  101099. .UNINDENT
  101100. .INDENT 7.0
  101101. .TP
  101102. .B Parameters
  101103. .INDENT 7.0
  101104. .IP \(bu 2
  101105. \fBvpnservice\fP \-\- ID or name of vpn service to update
  101106. .IP \(bu 2
  101107. \fBdesc\fP \-\- Set a description for the VPN service
  101108. .IP \(bu 2
  101109. \fBprofile\fP \-\- Profile to build on (Optional)
  101110. .UNINDENT
  101111. .TP
  101112. .B Returns
  101113. Value of updated VPN service information
  101114. .UNINDENT
  101115. .UNINDENT
  101116. .SS salt.modules.neutronng
  101117. .sp
  101118. Neutron module for interacting with OpenStack Neutron
  101119. .sp
  101120. New in version 2018.3.0.
  101121. .sp
  101122. :depends:shade
  101123. .sp
  101124. Example configuration
  101125. .INDENT 0.0
  101126. .INDENT 3.5
  101127. .sp
  101128. .nf
  101129. .ft C
  101130. neutron:
  101131. cloud: default
  101132. .ft P
  101133. .fi
  101134. .UNINDENT
  101135. .UNINDENT
  101136. .INDENT 0.0
  101137. .INDENT 3.5
  101138. .sp
  101139. .nf
  101140. .ft C
  101141. neutron:
  101142. auth:
  101143. username: admin
  101144. password: password123
  101145. user_domain_name: mydomain
  101146. project_name: myproject
  101147. project_domain_name: myproject
  101148. auth_url: https://example.org:5000/v3
  101149. identity_api_version: 3
  101150. .ft P
  101151. .fi
  101152. .UNINDENT
  101153. .UNINDENT
  101154. .INDENT 0.0
  101155. .TP
  101156. .B salt.modules.neutronng.compare_changes(obj, **kwargs)
  101157. Compare two dicts returning only keys that exist in the first dict and are
  101158. different in the second one
  101159. .UNINDENT
  101160. .INDENT 0.0
  101161. .TP
  101162. .B salt.modules.neutronng.get_openstack_cloud(auth=None)
  101163. Return an openstack_cloud
  101164. .UNINDENT
  101165. .INDENT 0.0
  101166. .TP
  101167. .B salt.modules.neutronng.get_operator_cloud(auth=None)
  101168. Return an operator_cloud
  101169. .UNINDENT
  101170. .INDENT 0.0
  101171. .TP
  101172. .B salt.modules.neutronng.list_networks(auth=None, **kwargs)
  101173. List networks
  101174. .INDENT 7.0
  101175. .TP
  101176. .B filters
  101177. A Python dictionary of filter conditions to push down
  101178. .UNINDENT
  101179. .sp
  101180. CLI Example:
  101181. .INDENT 7.0
  101182. .INDENT 3.5
  101183. .sp
  101184. .nf
  101185. .ft C
  101186. salt \(aq*\(aq neutronng.list_networks
  101187. salt \(aq*\(aq neutronng.list_networks filters=\(aq{"tenant_id": "1dcac318a83b4610b7a7f7ba01465548"}\(aq
  101188. .ft P
  101189. .fi
  101190. .UNINDENT
  101191. .UNINDENT
  101192. .UNINDENT
  101193. .INDENT 0.0
  101194. .TP
  101195. .B salt.modules.neutronng.list_subnets(auth=None, **kwargs)
  101196. List subnets
  101197. .INDENT 7.0
  101198. .TP
  101199. .B filters
  101200. A Python dictionary of filter conditions to push down
  101201. .UNINDENT
  101202. .sp
  101203. CLI Example:
  101204. .INDENT 7.0
  101205. .INDENT 3.5
  101206. .sp
  101207. .nf
  101208. .ft C
  101209. salt \(aq*\(aq neutronng.list_subnets
  101210. salt \(aq*\(aq neutronng.list_subnets filters=\(aq{"tenant_id": "1dcac318a83b4610b7a7f7ba01465548"}\(aq
  101211. .ft P
  101212. .fi
  101213. .UNINDENT
  101214. .UNINDENT
  101215. .UNINDENT
  101216. .INDENT 0.0
  101217. .TP
  101218. .B salt.modules.neutronng.network_create(auth=None, **kwargs)
  101219. Create a network
  101220. .INDENT 7.0
  101221. .TP
  101222. .B name
  101223. Name of the network being created
  101224. .TP
  101225. .B shared
  101226. False
  101227. If \fBTrue\fP, set the network as shared
  101228. .TP
  101229. .B admin_state_up
  101230. True
  101231. If \fBTrue\fP, Set the network administrative state to "up"
  101232. .TP
  101233. .B external
  101234. False
  101235. Control whether or not this network is externally accessible
  101236. .TP
  101237. .B provider
  101238. An optional Python dictionary of network provider options
  101239. .TP
  101240. .B project_id
  101241. The project ID on which this network will be created
  101242. .UNINDENT
  101243. .sp
  101244. CLI Example:
  101245. .INDENT 7.0
  101246. .INDENT 3.5
  101247. .sp
  101248. .nf
  101249. .ft C
  101250. salt \(aq*\(aq neutronng.network_create name=network2 shared=True admin_state_up=True external=True
  101251. salt \(aq*\(aq neutronng.network_create name=network3 provider=\(aq{"network_type": "vlan", "segmentation_id": "4010", "physical_network": "provider"}\(aq project_id=1dcac318a83b4610b7a7f7ba01465548
  101252. .ft P
  101253. .fi
  101254. .UNINDENT
  101255. .UNINDENT
  101256. .UNINDENT
  101257. .INDENT 0.0
  101258. .TP
  101259. .B salt.modules.neutronng.network_delete(auth=None, **kwargs)
  101260. Delete a network
  101261. .INDENT 7.0
  101262. .TP
  101263. .B name_or_id
  101264. Name or ID of the network being deleted
  101265. .UNINDENT
  101266. .sp
  101267. CLI Example:
  101268. .INDENT 7.0
  101269. .INDENT 3.5
  101270. .sp
  101271. .nf
  101272. .ft C
  101273. salt \(aq*\(aq neutronng.network_delete name_or_id=network1
  101274. salt \(aq*\(aq neutronng.network_delete name_or_id=1dcac318a83b4610b7a7f7ba01465548
  101275. .ft P
  101276. .fi
  101277. .UNINDENT
  101278. .UNINDENT
  101279. .UNINDENT
  101280. .INDENT 0.0
  101281. .TP
  101282. .B salt.modules.neutronng.network_get(auth=None, **kwargs)
  101283. Get a single network
  101284. .INDENT 7.0
  101285. .TP
  101286. .B filters
  101287. A Python dictionary of filter conditions to push down
  101288. .UNINDENT
  101289. .sp
  101290. CLI Example:
  101291. .INDENT 7.0
  101292. .INDENT 3.5
  101293. .sp
  101294. .nf
  101295. .ft C
  101296. salt \(aq*\(aq neutronng.network_get name=XLB4
  101297. .ft P
  101298. .fi
  101299. .UNINDENT
  101300. .UNINDENT
  101301. .UNINDENT
  101302. .INDENT 0.0
  101303. .TP
  101304. .B salt.modules.neutronng.security_group_create(auth=None, **kwargs)
  101305. Create a security group. Use security_group_get to create default.
  101306. .INDENT 7.0
  101307. .TP
  101308. .B project_id
  101309. The project ID on which this security group will be created
  101310. .UNINDENT
  101311. .sp
  101312. CLI Example:
  101313. .INDENT 7.0
  101314. .INDENT 3.5
  101315. .sp
  101316. .nf
  101317. .ft C
  101318. salt \(aq*\(aq neutronng.security_group_create name=secgroup1 description="Very secure security group"
  101319. salt \(aq*\(aq neutronng.security_group_create name=secgroup1 description="Very secure security group" project_id=1dcac318a83b4610b7a7f7ba01465548
  101320. .ft P
  101321. .fi
  101322. .UNINDENT
  101323. .UNINDENT
  101324. .UNINDENT
  101325. .INDENT 0.0
  101326. .TP
  101327. .B salt.modules.neutronng.security_group_delete(auth=None, **kwargs)
  101328. Delete a security group
  101329. .INDENT 7.0
  101330. .TP
  101331. .B name_or_id
  101332. The name or unique ID of 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_delete name_or_id=secgroup1
  101342. .ft P
  101343. .fi
  101344. .UNINDENT
  101345. .UNINDENT
  101346. .UNINDENT
  101347. .INDENT 0.0
  101348. .TP
  101349. .B salt.modules.neutronng.security_group_get(auth=None, **kwargs)
  101350. Get a single security group. This will create a default security group
  101351. if one does not exist yet for a particular project id.
  101352. .INDENT 7.0
  101353. .TP
  101354. .B filters
  101355. A Python dictionary of filter conditions to push down
  101356. .UNINDENT
  101357. .sp
  101358. CLI Example:
  101359. .INDENT 7.0
  101360. .INDENT 3.5
  101361. .sp
  101362. .nf
  101363. .ft C
  101364. salt \(aq*\(aq neutronng.security_group_get name=1dcac318a83b4610b7a7f7ba01465548
  101365. salt \(aq*\(aq neutronng.security_group_get name=default filters=\(aq{"tenant_id":"2e778bb64ca64a199eb526b5958d8710"}\(aq
  101366. .ft P
  101367. .fi
  101368. .UNINDENT
  101369. .UNINDENT
  101370. .UNINDENT
  101371. .INDENT 0.0
  101372. .TP
  101373. .B salt.modules.neutronng.security_group_rule_create(auth=None, **kwargs)
  101374. Create a rule in a security group
  101375. .INDENT 7.0
  101376. .TP
  101377. .B secgroup_name_or_id
  101378. The security group name or ID to associate with this security group
  101379. rule. If a non\-unique group name is given, an exception is raised.
  101380. .TP
  101381. .B port_range_min
  101382. The minimum port number in the range that is matched by the security
  101383. group rule. If the protocol is TCP or UDP, this value must be less than
  101384. or equal to the port_range_max attribute value. If nova is used by the
  101385. cloud provider for security groups, then a value of None will be
  101386. transformed to \-1.
  101387. .TP
  101388. .B port_range_max
  101389. The maximum port number in the range that is matched by the security
  101390. group rule. The port_range_min attribute constrains the port_range_max
  101391. attribute. If nova is used by the cloud provider for security groups,
  101392. then a value of None will be transformed to \-1.
  101393. .TP
  101394. .B protocol
  101395. The protocol that is matched by the security group rule. Valid values
  101396. are \fBNone\fP, \fBtcp\fP, \fBudp\fP, and \fBicmp\fP\&.
  101397. .TP
  101398. .B remote_ip_prefix
  101399. The remote IP prefix to be associated with this security group rule.
  101400. This attribute matches the specified IP prefix as the source IP address
  101401. of the IP packet.
  101402. .TP
  101403. .B remote_group_id
  101404. The remote group ID to be associated with this security group rule
  101405. .TP
  101406. .B direction
  101407. Either \fBingress\fP or \fBegress\fP; the direction in which the security
  101408. group rule is applied. For a compute instance, an ingress security
  101409. group rule is applied to incoming (ingress) traffic for that instance.
  101410. An egress rule is applied to traffic leaving the instance
  101411. .TP
  101412. .B ethertype
  101413. Must be IPv4 or IPv6, and addresses represented in CIDR must match the
  101414. ingress or egress rules
  101415. .TP
  101416. .B project_id
  101417. Specify the project ID this security group will be created on
  101418. (admin\-only)
  101419. .UNINDENT
  101420. .sp
  101421. CLI Example:
  101422. .INDENT 7.0
  101423. .INDENT 3.5
  101424. .sp
  101425. .nf
  101426. .ft C
  101427. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=secgroup1
  101428. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=secgroup2 port_range_min=8080 port_range_max=8080 direction=\(aqegress\(aq
  101429. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=c0e1d1ce\-7296\-405e\-919d\-1c08217be529 protocol=icmp project_id=1dcac318a83b4610b7a7f7ba01465548
  101430. .ft P
  101431. .fi
  101432. .UNINDENT
  101433. .UNINDENT
  101434. .UNINDENT
  101435. .INDENT 0.0
  101436. .TP
  101437. .B salt.modules.neutronng.security_group_rule_delete(auth=None, **kwargs)
  101438. Delete a security group
  101439. .INDENT 7.0
  101440. .TP
  101441. .B name_or_id
  101442. The unique ID of the security group rule
  101443. .UNINDENT
  101444. .sp
  101445. CLI Example:
  101446. .INDENT 7.0
  101447. .INDENT 3.5
  101448. .sp
  101449. .nf
  101450. .ft C
  101451. salt \(aq*\(aq neutronng.security_group_rule_delete name_or_id=1dcac318a83b4610b7a7f7ba01465548
  101452. .ft P
  101453. .fi
  101454. .UNINDENT
  101455. .UNINDENT
  101456. .UNINDENT
  101457. .INDENT 0.0
  101458. .TP
  101459. .B salt.modules.neutronng.security_group_update(secgroup=None, auth=None, **kwargs)
  101460. Update a security group
  101461. .INDENT 7.0
  101462. .TP
  101463. .B secgroup
  101464. Name, ID or Raw Object of the security group to update
  101465. .TP
  101466. .B name
  101467. New name for the security group
  101468. .TP
  101469. .B description
  101470. New description for the security group
  101471. .UNINDENT
  101472. .sp
  101473. CLI Example:
  101474. .INDENT 7.0
  101475. .INDENT 3.5
  101476. .sp
  101477. .nf
  101478. .ft C
  101479. salt \(aq*\(aq neutronng.security_group_update secgroup=secgroup1 description="Very secure security group"
  101480. salt \(aq*\(aq neutronng.security_group_update secgroup=secgroup1 description="Very secure security group" project_id=1dcac318a83b4610b7a7f7ba01465548
  101481. .ft P
  101482. .fi
  101483. .UNINDENT
  101484. .UNINDENT
  101485. .UNINDENT
  101486. .INDENT 0.0
  101487. .TP
  101488. .B salt.modules.neutronng.setup_clouds(auth=None)
  101489. Call functions to create Shade cloud objects in __context__ to take
  101490. advantage of Shade\(aqs in\-memory caching across several states
  101491. .UNINDENT
  101492. .INDENT 0.0
  101493. .TP
  101494. .B salt.modules.neutronng.subnet_create(auth=None, **kwargs)
  101495. Create a subnet
  101496. .INDENT 7.0
  101497. .TP
  101498. .B network_name_or_id
  101499. The unique name or ID of the attached network. If a non\-unique name is
  101500. supplied, an exception is raised.
  101501. .TP
  101502. .B cidr
  101503. The CIDR
  101504. .TP
  101505. .B ip_version
  101506. The IP version, which is 4 or 6.
  101507. .TP
  101508. .B enable_dhcp
  101509. False
  101510. Set to \fBTrue\fP if DHCP is enabled and \fBFalse\fP if disabled
  101511. .TP
  101512. .B subnet_name
  101513. The name of the subnet
  101514. .TP
  101515. .B tenant_id
  101516. The ID of the tenant who owns the network. Only administrative users
  101517. can specify a tenant ID other than their own.
  101518. .TP
  101519. .B allocation_pools
  101520. A list of dictionaries of the start and end addresses for the
  101521. allocation pools.
  101522. .TP
  101523. .B gateway_ip
  101524. The gateway IP address. When you specify both \fBallocation_pools\fP and
  101525. \fBgateway_ip\fP, you must ensure that the gateway IP does not overlap
  101526. with the specified allocation pools.
  101527. .TP
  101528. .B disable_gateway_ip
  101529. False
  101530. Set to \fBTrue\fP if gateway IP address is disabled and \fBFalse\fP if
  101531. enabled. It is not allowed with \fBgateway_ip\fP\&.
  101532. .TP
  101533. .B dns_nameservers
  101534. A list of DNS name servers for the subnet
  101535. .TP
  101536. .B host_routes
  101537. A list of host route dictionaries for the subnet
  101538. .TP
  101539. .B ipv6_ra_mode
  101540. IPv6 Router Advertisement mode. Valid values are \fBdhcpv6\-stateful\fP,
  101541. \fBdhcpv6\-stateless\fP, or \fBslaac\fP\&.
  101542. .TP
  101543. .B ipv6_address_mode
  101544. IPv6 address mode. Valid values are \fBdhcpv6\-stateful\fP,
  101545. \fBdhcpv6\-stateless\fP, or \fBslaac\fP\&.
  101546. .TP
  101547. .B use_default_subnetpool
  101548. If \fBTrue\fP, use the default subnetpool for \fBip_version\fP to obtain a
  101549. CIDR. It is required to pass \fBNone\fP to the \fBcidr\fP argument when
  101550. enabling this option.
  101551. .UNINDENT
  101552. .sp
  101553. CLI Example:
  101554. .INDENT 7.0
  101555. .INDENT 3.5
  101556. .sp
  101557. .nf
  101558. .ft C
  101559. salt \(aq*\(aq neutronng.subnet_create network_name_or_id=network1
  101560. subnet_name=subnet1
  101561. 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
  101562. 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
  101563. .ft P
  101564. .fi
  101565. .UNINDENT
  101566. .UNINDENT
  101567. .UNINDENT
  101568. .INDENT 0.0
  101569. .TP
  101570. .B salt.modules.neutronng.subnet_delete(auth=None, **kwargs)
  101571. Delete a subnet
  101572. .INDENT 7.0
  101573. .TP
  101574. .B name
  101575. Name or ID of the subnet to update
  101576. .UNINDENT
  101577. .sp
  101578. CLI Example:
  101579. .INDENT 7.0
  101580. .INDENT 3.5
  101581. .sp
  101582. .nf
  101583. .ft C
  101584. salt \(aq*\(aq neutronng.subnet_delete name=subnet1
  101585. salt \(aq*\(aq neutronng.subnet_delete name=1dcac318a83b4610b7a7f7ba01465548
  101586. .ft P
  101587. .fi
  101588. .UNINDENT
  101589. .UNINDENT
  101590. .UNINDENT
  101591. .INDENT 0.0
  101592. .TP
  101593. .B salt.modules.neutronng.subnet_get(auth=None, **kwargs)
  101594. Get a single subnet
  101595. .INDENT 7.0
  101596. .TP
  101597. .B filters
  101598. A Python dictionary of filter conditions to push down
  101599. .UNINDENT
  101600. .sp
  101601. CLI Example:
  101602. .INDENT 7.0
  101603. .INDENT 3.5
  101604. .sp
  101605. .nf
  101606. .ft C
  101607. salt \(aq*\(aq neutronng.subnet_get name=subnet1
  101608. .ft P
  101609. .fi
  101610. .UNINDENT
  101611. .UNINDENT
  101612. .UNINDENT
  101613. .INDENT 0.0
  101614. .TP
  101615. .B salt.modules.neutronng.subnet_update(auth=None, **kwargs)
  101616. Update a subnet
  101617. .INDENT 7.0
  101618. .TP
  101619. .B name_or_id
  101620. Name or ID of the subnet to update
  101621. .TP
  101622. .B subnet_name
  101623. The new name of the subnet
  101624. .TP
  101625. .B enable_dhcp
  101626. Set to \fBTrue\fP if DHCP is enabled and \fBFalse\fP if disabled
  101627. .TP
  101628. .B gateway_ip
  101629. The gateway IP address. When you specify both allocation_pools and
  101630. gateway_ip, you must ensure that the gateway IP does not overlap with
  101631. the specified allocation pools.
  101632. .TP
  101633. .B disable_gateway_ip
  101634. False
  101635. Set to \fBTrue\fP if gateway IP address is disabled and False if enabled.
  101636. It is not allowed with \fBgateway_ip\fP\&.
  101637. .TP
  101638. .B allocation_pools
  101639. A list of dictionaries of the start and end addresses for the
  101640. allocation pools.
  101641. .TP
  101642. .B dns_nameservers
  101643. A list of DNS name servers for the subnet
  101644. .TP
  101645. .B host_routes
  101646. A list of host route dictionaries for the subnet
  101647. .UNINDENT
  101648. .INDENT 7.0
  101649. .INDENT 3.5
  101650. .sp
  101651. .nf
  101652. .ft C
  101653. salt \(aq*\(aq neutronng.subnet_update name=subnet1 subnet_name=subnet2
  101654. salt \(aq*\(aq neutronng.subnet_update name=subnet1 dns_nameservers=\(aq["8.8.8.8", "8.8.8.7"]\(aq
  101655. .ft P
  101656. .fi
  101657. .UNINDENT
  101658. .UNINDENT
  101659. .UNINDENT
  101660. .SS salt.modules.nxos_api module
  101661. .sp
  101662. Execution module to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  101663. .sp
  101664. New in version 2019.2.0.
  101665. .sp
  101666. Execution module used to interface the interaction with a remote or local Nexus
  101667. switch whether we\(aqre running in a Proxy Minion or regular Minion (or regular
  101668. Minion running directly on the Nexus switch).
  101669. .INDENT 0.0
  101670. .TP
  101671. .B codeauthor
  101672. Mircea Ulinic <\fI\%ping@mirceaulinic.net\fP>
  101673. .TP
  101674. .B maturity
  101675. new
  101676. .TP
  101677. .B platform
  101678. any
  101679. .UNINDENT
  101680. .sp
  101681. \fBNOTE:\fP
  101682. .INDENT 0.0
  101683. .INDENT 3.5
  101684. To be able to use this module you need to enable to NX\-API on your switch,
  101685. by executing \fBfeature nxapi\fP in configuration mode.
  101686. .sp
  101687. Configuration example:
  101688. .INDENT 0.0
  101689. .INDENT 3.5
  101690. .sp
  101691. .nf
  101692. .ft C
  101693. switch# conf t
  101694. switch(config)# feature nxapi
  101695. .ft P
  101696. .fi
  101697. .UNINDENT
  101698. .UNINDENT
  101699. .sp
  101700. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  101701. .sp
  101702. Output example:
  101703. .INDENT 0.0
  101704. .INDENT 3.5
  101705. .sp
  101706. .nf
  101707. .ft C
  101708. switch# show nxapi
  101709. nxapi enabled
  101710. HTTPS Listen on port 443
  101711. .ft P
  101712. .fi
  101713. .UNINDENT
  101714. .UNINDENT
  101715. .UNINDENT
  101716. .UNINDENT
  101717. .sp
  101718. \fBNOTE:\fP
  101719. .INDENT 0.0
  101720. .INDENT 3.5
  101721. NX\-API requires modern NXOS distributions, typically at least 7.0 depending
  101722. on the hardware. Due to reliability reasons it is recommended to run the
  101723. most recent version.
  101724. .sp
  101725. 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
  101726. for more details.
  101727. .UNINDENT
  101728. .UNINDENT
  101729. .SS Usage
  101730. .sp
  101731. This module can equally be used via the \fBnxos_api\fP
  101732. Proxy module or directly from an arbitrary (Proxy) Minion that is running on a
  101733. machine having access to the network device API. Given that there are no
  101734. external dependencies, this module can very well used when using the regular
  101735. Salt Minion directly installed on the switch.
  101736. .sp
  101737. When running outside of the \fBnxos_api Proxy\fP
  101738. (i.e., from another Proxy Minion type, or regular Minion), the NX\-API connection
  101739. arguments can be either specified from the CLI when executing the command, or
  101740. in a configuration block under the \fBnxos_api\fP key in the configuration opts
  101741. (i.e., (Proxy) Minion configuration file), or Pillar. The module supports these
  101742. simultaneously. These fields are the exact same supported by the \fBnxos_api\fP
  101743. Proxy Module:
  101744. .INDENT 0.0
  101745. .TP
  101746. .B transport: \fBhttps\fP
  101747. Specifies the type of connection transport to use. Valid values for the
  101748. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101749. .TP
  101750. .B host: \fBlocalhost\fP
  101751. The IP address or DNS host name of the connection device.
  101752. .TP
  101753. .B username: \fBadmin\fP
  101754. The username to pass to the device to authenticate the NX\-API connection.
  101755. .TP
  101756. .B password
  101757. The password to pass to the device to authenticate the NX\-API connection.
  101758. .TP
  101759. .B port
  101760. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101761. not specified, the default value is automatically determined by the
  101762. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101763. .TP
  101764. .B timeout: \fB60\fP
  101765. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101766. .TP
  101767. .B verify: \fBTrue\fP
  101768. Either a boolean, in which case it controls whether we verify the NX\-API
  101769. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101770. to use. Defaults to \fBTrue\fP\&.
  101771. .sp
  101772. When there is no certificate configuration on the device and this option is
  101773. set as \fBTrue\fP (default), the commands will fail with the following error:
  101774. \fBSSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)\fP\&.
  101775. In this case, you either need to configure a proper certificate on the
  101776. device (\fIrecommended\fP), or bypass the checks setting this argument as \fBFalse\fP
  101777. with all the security risks considered.
  101778. .sp
  101779. 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
  101780. to see how to properly configure the certificate.
  101781. .UNINDENT
  101782. .sp
  101783. Example (when not running in a \fBnxos_api\fP Proxy Minion):
  101784. .INDENT 0.0
  101785. .INDENT 3.5
  101786. .sp
  101787. .nf
  101788. .ft C
  101789. nxos_api:
  101790. username: test
  101791. password: test
  101792. .ft P
  101793. .fi
  101794. .UNINDENT
  101795. .UNINDENT
  101796. .sp
  101797. In case the \fBusername\fP and \fBpassword\fP are the same on any device you are
  101798. targeting, the block above (besides other parameters specific to your
  101799. environment you might need) should suffice to be able to execute commands from
  101800. outside a \fBnxos_api\fP Proxy, e.g.:
  101801. .INDENT 0.0
  101802. .INDENT 3.5
  101803. .sp
  101804. .nf
  101805. .ft C
  101806. salt\-call \-\-local nxos_api.show \(aqshow lldp neighbors\(aq raw_text
  101807. # The command above is available when running in a regular Minion where Salt is installed
  101808. salt \(aq*\(aq nxos_api.show \(aqshow version\(aq raw_text=False
  101809. .ft P
  101810. .fi
  101811. .UNINDENT
  101812. .UNINDENT
  101813. .sp
  101814. \fBNOTE:\fP
  101815. .INDENT 0.0
  101816. .INDENT 3.5
  101817. Remember that the above applies only when not running in a \fBnxos_api\fP Proxy
  101818. Minion. If you want to use the \fBnxos_api Proxy\fP,
  101819. please follow the documentation notes for a proper setup.
  101820. .UNINDENT
  101821. .UNINDENT
  101822. .INDENT 0.0
  101823. .TP
  101824. .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)
  101825. Configures the Nexus switch with the specified commands.
  101826. .sp
  101827. This method is used to send configuration commands to the switch. It
  101828. will take either a string or a list and prepend the necessary commands
  101829. to put the session into config mode.
  101830. .sp
  101831. \fBWARNING:\fP
  101832. .INDENT 7.0
  101833. .INDENT 3.5
  101834. All the commands will be applied directly into the running\-config.
  101835. .UNINDENT
  101836. .UNINDENT
  101837. .INDENT 7.0
  101838. .TP
  101839. .B config_file
  101840. The source file with the configuration commands to be sent to the
  101841. device.
  101842. .sp
  101843. The file can also be a template that can be rendered using the template
  101844. engine of choice.
  101845. .sp
  101846. This can be specified using the absolute path to the file, or using one
  101847. of the following URL schemes:
  101848. .INDENT 7.0
  101849. .IP \(bu 2
  101850. \fBsalt://\fP, to fetch the file from the Salt fileserver.
  101851. .IP \(bu 2
  101852. \fBhttp://\fP or \fBhttps://\fP
  101853. .IP \(bu 2
  101854. \fBftp://\fP
  101855. .IP \(bu 2
  101856. \fBs3://\fP
  101857. .IP \(bu 2
  101858. \fBswift://\fP
  101859. .UNINDENT
  101860. .TP
  101861. .B commands
  101862. The commands to send to the switch in config mode. If the commands
  101863. argument is a string it will be cast to a list.
  101864. The list of commands will also be prepended with the necessary commands
  101865. to put the session in config mode.
  101866. .sp
  101867. \fBNOTE:\fP
  101868. .INDENT 7.0
  101869. .INDENT 3.5
  101870. This argument is ignored when \fBconfig_file\fP is specified.
  101871. .UNINDENT
  101872. .UNINDENT
  101873. .TP
  101874. .B template_engine: \fBjinja\fP
  101875. The template engine to use when rendering the source file. Default:
  101876. \fBjinja\fP\&. To simply fetch the file without attempting to render, set
  101877. this argument to \fBNone\fP\&.
  101878. .TP
  101879. .B context
  101880. Variables to add to the template context.
  101881. .TP
  101882. .B defaults
  101883. Default values of the context_dict.
  101884. .TP
  101885. .B transport: \fBhttps\fP
  101886. Specifies the type of connection transport to use. Valid values for the
  101887. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101888. .TP
  101889. .B host: \fBlocalhost\fP
  101890. The IP address or DNS host name of the connection device.
  101891. .TP
  101892. .B username: \fBadmin\fP
  101893. The username to pass to the device to authenticate the NX\-API connection.
  101894. .TP
  101895. .B password
  101896. The password to pass to the device to authenticate the NX\-API connection.
  101897. .TP
  101898. .B port
  101899. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101900. not specified, the default value is automatically determined by the
  101901. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101902. .TP
  101903. .B timeout: \fB60\fP
  101904. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101905. .TP
  101906. .B verify: \fBTrue\fP
  101907. Either a boolean, in which case it controls whether we verify the NX\-API
  101908. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101909. to use. Defaults to \fBTrue\fP\&.
  101910. .UNINDENT
  101911. .sp
  101912. CLI Example:
  101913. .INDENT 7.0
  101914. .INDENT 3.5
  101915. .sp
  101916. .nf
  101917. .ft C
  101918. salt \(aq*\(aq nxos_api.config commands="[\(aqspanning\-tree mode mstp\(aq]"
  101919. salt \(aq*\(aq nxos_api.config config_file=salt://config.txt
  101920. salt \(aq*\(aq nxos_api.config config_file=https://bit.ly/2LGLcDy context="{\(aqservers\(aq: [\(aq1.2.3.4\(aq]}"
  101921. .ft P
  101922. .fi
  101923. .UNINDENT
  101924. .UNINDENT
  101925. .UNINDENT
  101926. .INDENT 0.0
  101927. .TP
  101928. .B salt.modules.nxos_api.rpc(commands, method=u\(aqcli\(aq, **kwargs)
  101929. Execute an arbitrary RPC request via the Nexus API.
  101930. .INDENT 7.0
  101931. .TP
  101932. .B commands
  101933. The commands to be executed.
  101934. .TP
  101935. .B method: \fBcli\fP
  101936. The type of the response, i.e., raw text (\fBcli_ascii\fP) or structured
  101937. document (\fBcli\fP). Defaults to \fBcli\fP (structured data).
  101938. .TP
  101939. .B transport: \fBhttps\fP
  101940. Specifies the type of connection transport to use. Valid values for the
  101941. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101942. .TP
  101943. .B host: \fBlocalhost\fP
  101944. The IP address or DNS host name of the connection device.
  101945. .TP
  101946. .B username: \fBadmin\fP
  101947. The username to pass to the device to authenticate the NX\-API connection.
  101948. .TP
  101949. .B password
  101950. The password to pass to the device to authenticate the NX\-API connection.
  101951. .TP
  101952. .B port
  101953. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101954. not specified, the default value is automatically determined by the
  101955. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101956. .TP
  101957. .B timeout: \fB60\fP
  101958. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101959. .TP
  101960. .B verify: \fBTrue\fP
  101961. Either a boolean, in which case it controls whether we verify the NX\-API
  101962. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101963. to use. Defaults to \fBTrue\fP\&.
  101964. .UNINDENT
  101965. .sp
  101966. CLI Example:
  101967. .INDENT 7.0
  101968. .INDENT 3.5
  101969. .sp
  101970. .nf
  101971. .ft C
  101972. salt\-call \-\-local nxps_api.rpc \(aqshow version\(aq
  101973. .ft P
  101974. .fi
  101975. .UNINDENT
  101976. .UNINDENT
  101977. .UNINDENT
  101978. .INDENT 0.0
  101979. .TP
  101980. .B salt.modules.nxos_api.show(commands, raw_text=True, **kwargs)
  101981. Execute one or more show (non\-configuration) commands.
  101982. .INDENT 7.0
  101983. .TP
  101984. .B commands
  101985. The commands to be executed.
  101986. .TP
  101987. .B raw_text: \fBTrue\fP
  101988. Whether to return raw text or structured data.
  101989. .TP
  101990. .B transport: \fBhttps\fP
  101991. Specifies the type of connection transport to use. Valid values for the
  101992. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101993. .TP
  101994. .B host: \fBlocalhost\fP
  101995. The IP address or DNS host name of the connection device.
  101996. .TP
  101997. .B username: \fBadmin\fP
  101998. The username to pass to the device to authenticate the NX\-API connection.
  101999. .TP
  102000. .B password
  102001. The password to pass to the device to authenticate the NX\-API connection.
  102002. .TP
  102003. .B port
  102004. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  102005. not specified, the default value is automatically determined by the
  102006. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  102007. .TP
  102008. .B timeout: \fB60\fP
  102009. Time in seconds to wait for the device to respond. Default: 60 seconds.
  102010. .TP
  102011. .B verify: \fBTrue\fP
  102012. Either a boolean, in which case it controls whether we verify the NX\-API
  102013. TLS certificate, or a string, in which case it must be a path to a CA bundle
  102014. to use. Defaults to \fBTrue\fP\&.
  102015. .UNINDENT
  102016. .sp
  102017. CLI Example:
  102018. .INDENT 7.0
  102019. .INDENT 3.5
  102020. .sp
  102021. .nf
  102022. .ft C
  102023. salt\-call \-\-local nxos_api.show \(aqshow version\(aq
  102024. salt \(aq*\(aq nxos_api.show \(aqshow bgp sessions\(aq \(aqshow processes\(aq raw_text=False
  102025. salt \(aqregular\-minion\(aq nxos_api.show \(aqshow interfaces\(aq host=sw01.example.com username=test password=test
  102026. .ft P
  102027. .fi
  102028. .UNINDENT
  102029. .UNINDENT
  102030. .UNINDENT
  102031. .SS salt.modules.nxos_upgrade module
  102032. .sp
  102033. Execution module to upgrade Cisco NX\-OS Switches.
  102034. .sp
  102035. New in version xxxx.xx.x.
  102036. .INDENT 0.0
  102037. .TP
  102038. .B This module supports execution using a Proxy Minion or Native Minion:
  102039. .INDENT 7.0
  102040. .IP 1. 3
  102041. Proxy Minion: Connect over SSH or NX\-API HTTP(S).
  102042. See \fBsalt.proxy.nxos\fP for proxy minion setup details.
  102043. .IP 2. 3
  102044. Native Minion: Connect over NX\-API Unix Domain Socket (UDS).
  102045. Install the minion inside the GuestShell running on the NX\-OS device.
  102046. .UNINDENT
  102047. .UNINDENT
  102048. .INDENT 0.0
  102049. .TP
  102050. .B maturity
  102051. new
  102052. .TP
  102053. .B platform
  102054. nxos
  102055. .TP
  102056. .B codeauthor
  102057. Michael G Wiebe
  102058. .UNINDENT
  102059. .sp
  102060. \fBNOTE:\fP
  102061. .INDENT 0.0
  102062. .INDENT 3.5
  102063. To use this module over remote NX\-API the feature must be enabled on the
  102064. NX\-OS device by executing \fBfeature nxapi\fP in configuration mode.
  102065. .sp
  102066. This is not required for NX\-API over UDS.
  102067. .sp
  102068. Configuration example:
  102069. .INDENT 0.0
  102070. .INDENT 3.5
  102071. .sp
  102072. .nf
  102073. .ft C
  102074. switch# conf t
  102075. switch(config)# feature nxapi
  102076. .ft P
  102077. .fi
  102078. .UNINDENT
  102079. .UNINDENT
  102080. .sp
  102081. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  102082. .sp
  102083. Output example:
  102084. .INDENT 0.0
  102085. .INDENT 3.5
  102086. .sp
  102087. .nf
  102088. .ft C
  102089. switch# show nxapi
  102090. nxapi enabled
  102091. HTTPS Listen on port 443
  102092. .ft P
  102093. .fi
  102094. .UNINDENT
  102095. .UNINDENT
  102096. .UNINDENT
  102097. .UNINDENT
  102098. .INDENT 0.0
  102099. .TP
  102100. .B salt.modules.nxos_upgrade.check_upgrade_impact(system_image, kickstart_image=None, issu=True, **kwargs)
  102101. Display upgrade impact information without actually upgrading the device.
  102102. .INDENT 7.0
  102103. .TP
  102104. .B system_image (Mandatory Option)
  102105. Path on bootflash: to system image upgrade file.
  102106. .TP
  102107. .B kickstart_image
  102108. Path on bootflash: to kickstart image upgrade file.
  102109. (Not required if using combined system/kickstart image file)
  102110. Default: None
  102111. .TP
  102112. .B issu
  102113. In Service Software Upgrade (non\-disruptive). When True,
  102114. the upgrade will abort if issu is not possible.
  102115. When False: Force (disruptive) Upgrade/Downgrade.
  102116. Default: True
  102117. .TP
  102118. .B timeout
  102119. Timeout in seconds for long running \(aqinstall all\(aq impact command.
  102120. Default: 900
  102121. .TP
  102122. .B error_pattern
  102123. Use the option to pass in a regular expression to search for in the
  102124. output of the \(aqinstall all impact\(aq command that indicates an error
  102125. has occurred. This option is only used when proxy minion connection
  102126. type is ssh and otherwise ignored.
  102127. .UNINDENT
  102128. .INDENT 7.0
  102129. .INDENT 3.5
  102130. .sp
  102131. .nf
  102132. .ft C
  102133. salt \(aqn9k\(aq nxos.check_upgrade_impact system_image=nxos.9.2.1.bin
  102134. salt \(aqn7k\(aq nxos.check_upgrade_impact system_image=n7000\-s2\-dk9.8.1.1.bin \e
  102135. kickstart_image=n7000\-s2\-kickstart.8.1.1.bin issu=False
  102136. .ft P
  102137. .fi
  102138. .UNINDENT
  102139. .UNINDENT
  102140. .UNINDENT
  102141. .INDENT 0.0
  102142. .TP
  102143. .B salt.modules.nxos_upgrade.upgrade(system_image, kickstart_image=None, issu=True, **kwargs)
  102144. Upgrade NX\-OS switch.
  102145. .INDENT 7.0
  102146. .TP
  102147. .B system_image (Mandatory Option)
  102148. Path on bootflash: to system image upgrade file.
  102149. .TP
  102150. .B kickstart_image
  102151. Path on bootflash: to kickstart image upgrade file.
  102152. (Not required if using combined system/kickstart image file)
  102153. Default: None
  102154. .TP
  102155. .B issu
  102156. Set this option to True when an In Service Software Upgrade or
  102157. non\-disruptive upgrade is required. The upgrade will abort if issu is
  102158. not possible.
  102159. Default: True
  102160. .TP
  102161. .B timeout
  102162. Timeout in seconds for long running \(aqinstall all\(aq upgrade command.
  102163. Default: 900
  102164. .TP
  102165. .B error_pattern
  102166. Use the option to pass in a regular expression to search for in the
  102167. output of the \(aqinstall all upgrade command that indicates an error
  102168. has occurred. This option is only used when proxy minion connection
  102169. type is ssh and otherwise ignored.
  102170. .UNINDENT
  102171. .INDENT 7.0
  102172. .INDENT 3.5
  102173. .sp
  102174. .nf
  102175. .ft C
  102176. salt \(aqn9k\(aq nxos.upgrade system_image=nxos.9.2.1.bin
  102177. salt \(aqn7k\(aq nxos.upgrade system_image=n7000\-s2\-dk9.8.1.1.bin \e
  102178. kickstart_image=n7000\-s2\-kickstart.8.1.1.bin issu=False
  102179. .ft P
  102180. .fi
  102181. .UNINDENT
  102182. .UNINDENT
  102183. .UNINDENT
  102184. .SS salt.modules.openscap module
  102185. .sp
  102186. Module for OpenSCAP Management
  102187. .INDENT 0.0
  102188. .TP
  102189. .B salt.modules.openscap.xccdf(params)
  102190. Run \fBoscap xccdf\fP commands on minions.
  102191. It uses cp.push_dir to upload the generated files to the salt master
  102192. in the master\(aqs minion files cachedir
  102193. (defaults to \fB/var/cache/salt/master/minions/minion\-id/files\fP)
  102194. .sp
  102195. It needs \fBfile_recv\fP set to \fBTrue\fP in the master configuration file.
  102196. .sp
  102197. CLI Example:
  102198. .INDENT 7.0
  102199. .INDENT 3.5
  102200. .sp
  102201. .nf
  102202. .ft C
  102203. salt \(aq*\(aq openscap.xccdf "eval \-\-profile Default /usr/share/openscap/scap\-yast2sec\-xccdf.xml"
  102204. .ft P
  102205. .fi
  102206. .UNINDENT
  102207. .UNINDENT
  102208. .UNINDENT
  102209. .SS salt.modules.philips_hue module
  102210. .sp
  102211. Philips HUE lamps module for proxy.
  102212. .sp
  102213. New in version 2015.8.3.
  102214. .SS salt.modules.powerpath
  102215. .sp
  102216. powerpath support.
  102217. .sp
  102218. Assumes RedHat
  102219. .INDENT 0.0
  102220. .TP
  102221. .B salt.modules.powerpath.add_license(key)
  102222. Add a license
  102223. .UNINDENT
  102224. .INDENT 0.0
  102225. .TP
  102226. .B salt.modules.powerpath.has_powerpath()
  102227. .UNINDENT
  102228. .INDENT 0.0
  102229. .TP
  102230. .B salt.modules.powerpath.list_licenses()
  102231. returns a list of applied powerpath license keys
  102232. .UNINDENT
  102233. .INDENT 0.0
  102234. .TP
  102235. .B salt.modules.powerpath.remove_license(key)
  102236. Remove a license
  102237. .UNINDENT
  102238. .SS salt.modules.purefa
  102239. .sp
  102240. Management of Pure Storage FlashArray
  102241. .SS Installation Prerequisites
  102242. .INDENT 0.0
  102243. .IP \(bu 2
  102244. You will need the \fBpurestorage\fP python package in your python installation
  102245. path that is running salt.
  102246. .INDENT 2.0
  102247. .INDENT 3.5
  102248. .sp
  102249. .nf
  102250. .ft C
  102251. pip install purestorage
  102252. .ft P
  102253. .fi
  102254. .UNINDENT
  102255. .UNINDENT
  102256. .IP \(bu 2
  102257. Configure Pure Storage FlashArray authentication. Use one of the following
  102258. three methods.
  102259. .INDENT 2.0
  102260. .IP 1. 3
  102261. From the minion config
  102262. .UNINDENT
  102263. .INDENT 2.0
  102264. .INDENT 3.5
  102265. .sp
  102266. .nf
  102267. .ft C
  102268. pure_tags:
  102269. fa:
  102270. san_ip: management vip or hostname for the FlashArray
  102271. api_token: A valid api token for the FlashArray being managed
  102272. .ft P
  102273. .fi
  102274. .UNINDENT
  102275. .UNINDENT
  102276. .INDENT 2.0
  102277. .IP 2. 3
  102278. From environment (PUREFA_IP and PUREFA_API)
  102279. .IP 3. 3
  102280. From the pillar (PUREFA_IP and PUREFA_API)
  102281. .UNINDENT
  102282. .UNINDENT
  102283. .INDENT 0.0
  102284. .TP
  102285. .B maintainer
  102286. Simon Dodsley (\fI\%simon@purestorage.com\fP)
  102287. .TP
  102288. .B maturity
  102289. new
  102290. .TP
  102291. .B requires
  102292. purestorage
  102293. .TP
  102294. .B platform
  102295. all
  102296. .UNINDENT
  102297. .sp
  102298. New in version 2018.3.0.
  102299. .INDENT 0.0
  102300. .TP
  102301. .B salt.modules.purefa.hg_create(name, host=None, volume=None)
  102302. Create a hostgroup on a Pure Storage FlashArray.
  102303. .sp
  102304. Will return False if hostgroup already exists, or if
  102305. named host or volume do not exist.
  102306. .sp
  102307. New in version 2018.3.0.
  102308. .INDENT 7.0
  102309. .TP
  102310. .B name
  102311. string
  102312. name of hostgroup (truncated to 63 characters)
  102313. .TP
  102314. .B host
  102315. string
  102316. name of host to add to hostgroup
  102317. .TP
  102318. .B volume
  102319. string
  102320. name of volume to add to hostgroup
  102321. .UNINDENT
  102322. .sp
  102323. CLI Example:
  102324. .INDENT 7.0
  102325. .INDENT 3.5
  102326. .sp
  102327. .nf
  102328. .ft C
  102329. salt \(aq*\(aq purefa.hg_create foo host=bar volume=vol
  102330. .ft P
  102331. .fi
  102332. .UNINDENT
  102333. .UNINDENT
  102334. .UNINDENT
  102335. .INDENT 0.0
  102336. .TP
  102337. .B salt.modules.purefa.hg_delete(name)
  102338. Delete a hostgroup on a Pure Storage FlashArray (removes all volumes and hosts).
  102339. .sp
  102340. Will return False is hostgroup is already in a deleted state.
  102341. .sp
  102342. New in version 2018.3.0.
  102343. .INDENT 7.0
  102344. .TP
  102345. .B name
  102346. string
  102347. name of hostgroup
  102348. .UNINDENT
  102349. .sp
  102350. CLI Example:
  102351. .INDENT 7.0
  102352. .INDENT 3.5
  102353. .sp
  102354. .nf
  102355. .ft C
  102356. salt \(aq*\(aq purefa.hg_delete foo
  102357. .ft P
  102358. .fi
  102359. .UNINDENT
  102360. .UNINDENT
  102361. .UNINDENT
  102362. .INDENT 0.0
  102363. .TP
  102364. .B salt.modules.purefa.hg_remove(name, volume=None, host=None)
  102365. Remove a host and/or volume from a hostgroup on a Pure Storage FlashArray.
  102366. .sp
  102367. Will return False is hostgroup does not exist, or named host or volume are
  102368. not in the hostgroup.
  102369. .sp
  102370. New in version 2018.3.0.
  102371. .INDENT 7.0
  102372. .TP
  102373. .B name
  102374. string
  102375. name of hostgroup
  102376. .TP
  102377. .B volume
  102378. string
  102379. name of volume to remove from hostgroup
  102380. .TP
  102381. .B host
  102382. string
  102383. name of host to remove from hostgroup
  102384. .UNINDENT
  102385. .sp
  102386. CLI Example:
  102387. .INDENT 7.0
  102388. .INDENT 3.5
  102389. .sp
  102390. .nf
  102391. .ft C
  102392. salt \(aq*\(aq purefa.hg_remove foo volume=test host=bar
  102393. .ft P
  102394. .fi
  102395. .UNINDENT
  102396. .UNINDENT
  102397. .UNINDENT
  102398. .INDENT 0.0
  102399. .TP
  102400. .B salt.modules.purefa.hg_update(name, host=None, volume=None)
  102401. Adds entries to a hostgroup on a Pure Storage FlashArray.
  102402. .sp
  102403. Will return False is hostgroup doesn\(aqt exist, or host
  102404. or volume do not exist.
  102405. .sp
  102406. New in version 2018.3.0.
  102407. .INDENT 7.0
  102408. .TP
  102409. .B name
  102410. string
  102411. name of hostgroup
  102412. .TP
  102413. .B host
  102414. string
  102415. name of host to add to hostgroup
  102416. .TP
  102417. .B volume
  102418. string
  102419. name of volume to add to hostgroup
  102420. .UNINDENT
  102421. .sp
  102422. CLI Example:
  102423. .INDENT 7.0
  102424. .INDENT 3.5
  102425. .sp
  102426. .nf
  102427. .ft C
  102428. salt \(aq*\(aq purefa.hg_update foo host=bar volume=vol
  102429. .ft P
  102430. .fi
  102431. .UNINDENT
  102432. .UNINDENT
  102433. .UNINDENT
  102434. .INDENT 0.0
  102435. .TP
  102436. .B salt.modules.purefa.host_create(name, iqn=None, wwn=None)
  102437. Add a host on a Pure Storage FlashArray.
  102438. .sp
  102439. Will return False if host already exists, or the iSCSI or
  102440. Fibre Channel parameters are not in a valid format.
  102441. See Pure Storage FlashArray documentation.
  102442. .sp
  102443. New in version 2018.3.0.
  102444. .INDENT 7.0
  102445. .TP
  102446. .B name
  102447. string
  102448. name of host (truncated to 63 characters)
  102449. .TP
  102450. .B iqn
  102451. string
  102452. iSCSI IQN of host
  102453. .TP
  102454. .B wwn
  102455. string
  102456. Fibre Channel WWN of host
  102457. .UNINDENT
  102458. .sp
  102459. CLI Example:
  102460. .INDENT 7.0
  102461. .INDENT 3.5
  102462. .sp
  102463. .nf
  102464. .ft C
  102465. salt \(aq*\(aq purefa.host_create foo iqn=\(aq<Valid iSCSI IQN>\(aq wwn=\(aq<Valid WWN>\(aq
  102466. .ft P
  102467. .fi
  102468. .UNINDENT
  102469. .UNINDENT
  102470. .UNINDENT
  102471. .INDENT 0.0
  102472. .TP
  102473. .B salt.modules.purefa.host_delete(name)
  102474. Delete a host on a Pure Storage FlashArray (detaches all volumes).
  102475. .sp
  102476. Will return False if the host doesn\(aqt exist.
  102477. .sp
  102478. New in version 2018.3.0.
  102479. .INDENT 7.0
  102480. .TP
  102481. .B name
  102482. string
  102483. name of host
  102484. .UNINDENT
  102485. .sp
  102486. CLI Example:
  102487. .INDENT 7.0
  102488. .INDENT 3.5
  102489. .sp
  102490. .nf
  102491. .ft C
  102492. salt \(aq*\(aq purefa.host_delete foo
  102493. .ft P
  102494. .fi
  102495. .UNINDENT
  102496. .UNINDENT
  102497. .UNINDENT
  102498. .INDENT 0.0
  102499. .TP
  102500. .B salt.modules.purefa.host_update(name, iqn=None, wwn=None)
  102501. Update a hosts port definitions on a Pure Storage FlashArray.
  102502. .sp
  102503. Will return False if new port definitions are already in use
  102504. by another host, or are not in a valid format.
  102505. See Pure Storage FlashArray documentation.
  102506. .sp
  102507. New in version 2018.3.0.
  102508. .INDENT 7.0
  102509. .TP
  102510. .B name
  102511. string
  102512. name of host
  102513. .TP
  102514. .B iqn
  102515. string
  102516. Additional iSCSI IQN of host
  102517. .TP
  102518. .B wwn
  102519. string
  102520. Additional Fibre Channel WWN of host
  102521. .UNINDENT
  102522. .sp
  102523. CLI Example:
  102524. .INDENT 7.0
  102525. .INDENT 3.5
  102526. .sp
  102527. .nf
  102528. .ft C
  102529. salt \(aq*\(aq purefa.host_update foo iqn=\(aq<Valid iSCSI IQN>\(aq wwn=\(aq<Valid WWN>\(aq
  102530. .ft P
  102531. .fi
  102532. .UNINDENT
  102533. .UNINDENT
  102534. .UNINDENT
  102535. .INDENT 0.0
  102536. .TP
  102537. .B salt.modules.purefa.pg_create(name, hostgroup=None, host=None, volume=None, enabled=True)
  102538. Create a protection group on a Pure Storage FlashArray.
  102539. .INDENT 7.0
  102540. .TP
  102541. .B Will return False is the following cases:
  102542. .INDENT 7.0
  102543. .IP \(bu 2
  102544. Protection Grop already exists
  102545. .IP \(bu 2
  102546. Protection Group in a deleted state
  102547. .IP \(bu 2
  102548. More than one type is specified \- protection groups are for only
  102549. hostgroups, hosts or volumes
  102550. .IP \(bu 2
  102551. Named type for protection group does not exist
  102552. .UNINDENT
  102553. .UNINDENT
  102554. .sp
  102555. New in version 2018.3.0.
  102556. .INDENT 7.0
  102557. .TP
  102558. .B name
  102559. string
  102560. name of protection group
  102561. .TP
  102562. .B hostgroup
  102563. string
  102564. name of hostgroup to add to protection group
  102565. .TP
  102566. .B host
  102567. string
  102568. name of host to add to protection group
  102569. .TP
  102570. .B volume
  102571. string
  102572. name of volume to add to protection group
  102573. .UNINDENT
  102574. .sp
  102575. CLI Example:
  102576. .INDENT 7.0
  102577. .INDENT 3.5
  102578. .sp
  102579. .nf
  102580. .ft C
  102581. salt \(aq*\(aq purefa.pg_create foo [hostgroup=foo | host=bar | volume=vol] enabled=[true | false]
  102582. .ft P
  102583. .fi
  102584. .UNINDENT
  102585. .UNINDENT
  102586. .UNINDENT
  102587. .INDENT 0.0
  102588. .TP
  102589. .B salt.modules.purefa.pg_delete(name, eradicate=False)
  102590. Delete a protecton group on a Pure Storage FlashArray.
  102591. .sp
  102592. Will return False if protection group is already in a deleted state.
  102593. .sp
  102594. New in version 2018.3.0.
  102595. .INDENT 7.0
  102596. .TP
  102597. .B name
  102598. string
  102599. name of protection group
  102600. .UNINDENT
  102601. .sp
  102602. CLI Example:
  102603. .INDENT 7.0
  102604. .INDENT 3.5
  102605. .sp
  102606. .nf
  102607. .ft C
  102608. salt \(aq*\(aq purefa.pg_delete foo
  102609. .ft P
  102610. .fi
  102611. .UNINDENT
  102612. .UNINDENT
  102613. .UNINDENT
  102614. .INDENT 0.0
  102615. .TP
  102616. .B salt.modules.purefa.pg_eradicate(name)
  102617. Eradicate a deleted protecton group on a Pure Storage FlashArray.
  102618. .sp
  102619. Will return False if protection group is not in a deleted state.
  102620. .sp
  102621. New in version 2018.3.0.
  102622. .INDENT 7.0
  102623. .TP
  102624. .B name
  102625. string
  102626. name of protection group
  102627. .UNINDENT
  102628. .sp
  102629. CLI Example:
  102630. .INDENT 7.0
  102631. .INDENT 3.5
  102632. .sp
  102633. .nf
  102634. .ft C
  102635. salt \(aq*\(aq purefa.pg_eradicate foo
  102636. .ft P
  102637. .fi
  102638. .UNINDENT
  102639. .UNINDENT
  102640. .UNINDENT
  102641. .INDENT 0.0
  102642. .TP
  102643. .B salt.modules.purefa.pg_remove(name, hostgroup=None, host=None, volume=None)
  102644. Remove a hostgroup, host or volume from a protection group on a Pure Storage FlashArray.
  102645. .INDENT 7.0
  102646. .TP
  102647. .B Will return False in the following cases:
  102648. .INDENT 7.0
  102649. .IP \(bu 2
  102650. Protection group does not exist
  102651. .IP \(bu 2
  102652. Specified type is not currently associated with the protection group
  102653. .UNINDENT
  102654. .UNINDENT
  102655. .sp
  102656. New in version 2018.3.0.
  102657. .INDENT 7.0
  102658. .TP
  102659. .B name
  102660. string
  102661. name of hostgroup
  102662. .TP
  102663. .B hostgroup
  102664. string
  102665. name of hostgroup to remove from protection group
  102666. .TP
  102667. .B host
  102668. string
  102669. name of host to remove from hostgroup
  102670. .TP
  102671. .B volume
  102672. string
  102673. name of volume to remove from hostgroup
  102674. .UNINDENT
  102675. .sp
  102676. CLI Example:
  102677. .INDENT 7.0
  102678. .INDENT 3.5
  102679. .sp
  102680. .nf
  102681. .ft C
  102682. salt \(aq*\(aq purefa.pg_remove foo [hostgroup=bar | host=test | volume=bar]
  102683. .ft P
  102684. .fi
  102685. .UNINDENT
  102686. .UNINDENT
  102687. .UNINDENT
  102688. .INDENT 0.0
  102689. .TP
  102690. .B salt.modules.purefa.pg_update(name, hostgroup=None, host=None, volume=None)
  102691. Update a protection group on a Pure Storage FlashArray.
  102692. .INDENT 7.0
  102693. .TP
  102694. .B Will return False in the following cases:
  102695. .INDENT 7.0
  102696. .IP \(bu 2
  102697. Protection group does not exist
  102698. .IP \(bu 2
  102699. Incorrect type selected for current protection group type
  102700. .IP \(bu 2
  102701. Specified type does not exist
  102702. .UNINDENT
  102703. .UNINDENT
  102704. .sp
  102705. New in version 2018.3.0.
  102706. .INDENT 7.0
  102707. .TP
  102708. .B name
  102709. string
  102710. name of protection group
  102711. .TP
  102712. .B hostgroup
  102713. string
  102714. name of hostgroup to add to protection group
  102715. .TP
  102716. .B host
  102717. string
  102718. name of host to add to protection group
  102719. .TP
  102720. .B volume
  102721. string
  102722. name of volume to add to protection group
  102723. .UNINDENT
  102724. .sp
  102725. CLI Example:
  102726. .INDENT 7.0
  102727. .INDENT 3.5
  102728. .sp
  102729. .nf
  102730. .ft C
  102731. salt \(aq*\(aq purefa.pg_update foo [hostgroup=foo | host=bar | volume=vol]
  102732. .ft P
  102733. .fi
  102734. .UNINDENT
  102735. .UNINDENT
  102736. .UNINDENT
  102737. .INDENT 0.0
  102738. .TP
  102739. .B salt.modules.purefa.snap_create(name, suffix=None)
  102740. Create a volume snapshot on a Pure Storage FlashArray.
  102741. .sp
  102742. Will return False is volume selected to snap does not exist.
  102743. .sp
  102744. New in version 2018.3.0.
  102745. .INDENT 7.0
  102746. .TP
  102747. .B name
  102748. string
  102749. name of volume to snapshot
  102750. .TP
  102751. .B suffix
  102752. string
  102753. if specificed forces snapshot name suffix. If not specified defaults to timestamp.
  102754. .UNINDENT
  102755. .sp
  102756. CLI Example:
  102757. .INDENT 7.0
  102758. .INDENT 3.5
  102759. .sp
  102760. .nf
  102761. .ft C
  102762. salt \(aq*\(aq purefa.snap_create foo
  102763. salt \(aq*\(aq purefa.snap_create foo suffix=bar
  102764. .ft P
  102765. .fi
  102766. .UNINDENT
  102767. .UNINDENT
  102768. .UNINDENT
  102769. .INDENT 0.0
  102770. .TP
  102771. .B salt.modules.purefa.snap_delete(name, suffix=None, eradicate=False)
  102772. Delete a volume snapshot on a Pure Storage FlashArray.
  102773. .sp
  102774. Will return False if selected snapshot does not exist.
  102775. .sp
  102776. New in version 2018.3.0.
  102777. .INDENT 7.0
  102778. .TP
  102779. .B name
  102780. string
  102781. name of volume
  102782. .TP
  102783. .B suffix
  102784. string
  102785. name of snapshot
  102786. .TP
  102787. .B eradicate
  102788. boolean
  102789. Eradicate snapshot after deletion if True. Default is False
  102790. .UNINDENT
  102791. .sp
  102792. CLI Example:
  102793. .INDENT 7.0
  102794. .INDENT 3.5
  102795. .sp
  102796. .nf
  102797. .ft C
  102798. salt \(aq*\(aq purefa.snap_delete foo suffix=snap eradicate=True
  102799. .ft P
  102800. .fi
  102801. .UNINDENT
  102802. .UNINDENT
  102803. .UNINDENT
  102804. .INDENT 0.0
  102805. .TP
  102806. .B salt.modules.purefa.snap_eradicate(name, suffix=None)
  102807. Eradicate a deleted volume snapshot on a Pure Storage FlashArray.
  102808. .sp
  102809. Will return False if snapshot is not in a deleted state.
  102810. .sp
  102811. New in version 2018.3.0.
  102812. .INDENT 7.0
  102813. .TP
  102814. .B name
  102815. string
  102816. name of volume
  102817. .TP
  102818. .B suffix
  102819. string
  102820. name of snapshot
  102821. .UNINDENT
  102822. .sp
  102823. CLI Example:
  102824. .INDENT 7.0
  102825. .INDENT 3.5
  102826. .sp
  102827. .nf
  102828. .ft C
  102829. salt \(aq*\(aq purefa.snap_eradicate foo suffix=snap
  102830. .ft P
  102831. .fi
  102832. .UNINDENT
  102833. .UNINDENT
  102834. .UNINDENT
  102835. .INDENT 0.0
  102836. .TP
  102837. .B salt.modules.purefa.snap_volume_create(name, target, overwrite=False)
  102838. Create R/W volume from snapshot on a Pure Storage FlashArray.
  102839. .sp
  102840. Will return False if target volume already exists and
  102841. overwrite is not specified, or selected snapshot doesn\(aqt exist.
  102842. .sp
  102843. New in version 2018.3.0.
  102844. .INDENT 7.0
  102845. .TP
  102846. .B name
  102847. string
  102848. name of volume snapshot
  102849. .TP
  102850. .B target
  102851. string
  102852. name of clone volume
  102853. .TP
  102854. .B overwrite
  102855. boolean
  102856. overwrite clone if already exists (default: False)
  102857. .UNINDENT
  102858. .sp
  102859. CLI Example:
  102860. .INDENT 7.0
  102861. .INDENT 3.5
  102862. .sp
  102863. .nf
  102864. .ft C
  102865. salt \(aq*\(aq purefa.snap_volume_create foo.bar clone overwrite=True
  102866. .ft P
  102867. .fi
  102868. .UNINDENT
  102869. .UNINDENT
  102870. .UNINDENT
  102871. .INDENT 0.0
  102872. .TP
  102873. .B salt.modules.purefa.volume_attach(name, host)
  102874. Attach a volume to a host on a Pure Storage FlashArray.
  102875. .sp
  102876. Host and volume must exist or else will return False.
  102877. .sp
  102878. New in version 2018.3.0.
  102879. .INDENT 7.0
  102880. .TP
  102881. .B name
  102882. string
  102883. name of volume
  102884. .TP
  102885. .B host
  102886. string
  102887. name of host
  102888. .UNINDENT
  102889. .sp
  102890. CLI Example:
  102891. .INDENT 7.0
  102892. .INDENT 3.5
  102893. .sp
  102894. .nf
  102895. .ft C
  102896. salt \(aq*\(aq purefa.volume_attach foo bar
  102897. .ft P
  102898. .fi
  102899. .UNINDENT
  102900. .UNINDENT
  102901. .UNINDENT
  102902. .INDENT 0.0
  102903. .TP
  102904. .B salt.modules.purefa.volume_clone(name, target, overwrite=False)
  102905. Clone an existing volume on a Pure Storage FlashArray.
  102906. .sp
  102907. Will return False if source volume doesn\(aqt exist, or
  102908. target volume already exists and overwrite not specified.
  102909. .sp
  102910. New in version 2018.3.0.
  102911. .INDENT 7.0
  102912. .TP
  102913. .B name
  102914. string
  102915. name of volume
  102916. .TP
  102917. .B target
  102918. string
  102919. name of clone volume
  102920. .TP
  102921. .B overwrite
  102922. boolean
  102923. overwrite clone if already exists (default: False)
  102924. .UNINDENT
  102925. .sp
  102926. CLI Example:
  102927. .INDENT 7.0
  102928. .INDENT 3.5
  102929. .sp
  102930. .nf
  102931. .ft C
  102932. salt \(aq*\(aq purefa.volume_clone foo bar overwrite=True
  102933. .ft P
  102934. .fi
  102935. .UNINDENT
  102936. .UNINDENT
  102937. .UNINDENT
  102938. .INDENT 0.0
  102939. .TP
  102940. .B salt.modules.purefa.volume_create(name, size=None)
  102941. Create a volume on a Pure Storage FlashArray.
  102942. .sp
  102943. Will return False if volume already exists.
  102944. .sp
  102945. New in version 2018.3.0.
  102946. .INDENT 7.0
  102947. .TP
  102948. .B name
  102949. string
  102950. name of volume (truncated to 63 characters)
  102951. .TP
  102952. .B size
  102953. string
  102954. if specificed capacity of volume. If not specified default to 1G.
  102955. Refer to Pure Storage documentation for formatting rules.
  102956. .UNINDENT
  102957. .sp
  102958. CLI Example:
  102959. .INDENT 7.0
  102960. .INDENT 3.5
  102961. .sp
  102962. .nf
  102963. .ft C
  102964. salt \(aq*\(aq purefa.volume_create foo
  102965. salt \(aq*\(aq purefa.volume_create foo size=10T
  102966. .ft P
  102967. .fi
  102968. .UNINDENT
  102969. .UNINDENT
  102970. .UNINDENT
  102971. .INDENT 0.0
  102972. .TP
  102973. .B salt.modules.purefa.volume_delete(name, eradicate=False)
  102974. Delete a volume on a Pure Storage FlashArray.
  102975. .sp
  102976. Will return False if volume doesn\(aqt exist is already in a deleted state.
  102977. .sp
  102978. New in version 2018.3.0.
  102979. .INDENT 7.0
  102980. .TP
  102981. .B name
  102982. string
  102983. name of volume
  102984. .TP
  102985. .B eradicate
  102986. boolean
  102987. Eradicate volume after deletion if True. Default is False
  102988. .UNINDENT
  102989. .sp
  102990. CLI Example:
  102991. .INDENT 7.0
  102992. .INDENT 3.5
  102993. .sp
  102994. .nf
  102995. .ft C
  102996. salt \(aq*\(aq purefa.volume_delete foo eradicate=True
  102997. .ft P
  102998. .fi
  102999. .UNINDENT
  103000. .UNINDENT
  103001. .UNINDENT
  103002. .INDENT 0.0
  103003. .TP
  103004. .B salt.modules.purefa.volume_detach(name, host)
  103005. Detach a volume from a host on a Pure Storage FlashArray.
  103006. .sp
  103007. Will return False if either host or volume do not exist, or
  103008. if selected volume isn\(aqt already connected to the host.
  103009. .sp
  103010. New in version 2018.3.0.
  103011. .INDENT 7.0
  103012. .TP
  103013. .B name
  103014. string
  103015. name of volume
  103016. .TP
  103017. .B host
  103018. string
  103019. name of host
  103020. .UNINDENT
  103021. .sp
  103022. CLI Example:
  103023. .INDENT 7.0
  103024. .INDENT 3.5
  103025. .sp
  103026. .nf
  103027. .ft C
  103028. salt \(aq*\(aq purefa.volume_detach foo bar
  103029. .ft P
  103030. .fi
  103031. .UNINDENT
  103032. .UNINDENT
  103033. .UNINDENT
  103034. .INDENT 0.0
  103035. .TP
  103036. .B salt.modules.purefa.volume_eradicate(name)
  103037. Eradicate a deleted volume on a Pure Storage FlashArray.
  103038. .sp
  103039. Will return False is volume is not in a deleted state.
  103040. .sp
  103041. New in version 2018.3.0.
  103042. .INDENT 7.0
  103043. .TP
  103044. .B name
  103045. string
  103046. name of volume
  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 purefa.volume_eradicate foo
  103056. .ft P
  103057. .fi
  103058. .UNINDENT
  103059. .UNINDENT
  103060. .UNINDENT
  103061. .INDENT 0.0
  103062. .TP
  103063. .B salt.modules.purefa.volume_extend(name, size)
  103064. Extend an existing volume on a Pure Storage FlashArray.
  103065. .sp
  103066. Will return False if new size is less than or equal to existing size.
  103067. .sp
  103068. New in version 2018.3.0.
  103069. .INDENT 7.0
  103070. .TP
  103071. .B name
  103072. string
  103073. name of volume
  103074. .TP
  103075. .B size
  103076. string
  103077. New capacity of volume.
  103078. Refer to Pure Storage documentation for formatting rules.
  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 purefa.volume_extend foo 10T
  103088. .ft P
  103089. .fi
  103090. .UNINDENT
  103091. .UNINDENT
  103092. .UNINDENT
  103093. .SS salt.modules.purefb
  103094. .sp
  103095. Management of Pure Storage FlashBlade
  103096. .SS Installation Prerequisites
  103097. .INDENT 0.0
  103098. .IP \(bu 2
  103099. You will need the \fBpurity_fb\fP python package in your python installation
  103100. path that is running salt.
  103101. .INDENT 2.0
  103102. .INDENT 3.5
  103103. .sp
  103104. .nf
  103105. .ft C
  103106. pip install purity_fb
  103107. .ft P
  103108. .fi
  103109. .UNINDENT
  103110. .UNINDENT
  103111. .IP \(bu 2
  103112. Configure Pure Storage FlashBlade authentication. Use one of the following
  103113. three methods.
  103114. .INDENT 2.0
  103115. .IP 1. 3
  103116. From the minion config
  103117. .UNINDENT
  103118. .INDENT 2.0
  103119. .INDENT 3.5
  103120. .sp
  103121. .nf
  103122. .ft C
  103123. pure_tags:
  103124. fb:
  103125. san_ip: management vip or hostname for the FlashBlade
  103126. api_token: A valid api token for the FlashBlade being managed
  103127. .ft P
  103128. .fi
  103129. .UNINDENT
  103130. .UNINDENT
  103131. .INDENT 2.0
  103132. .IP 2. 3
  103133. From environment (PUREFB_IP and PUREFB_API)
  103134. .IP 3. 3
  103135. From the pillar (PUREFB_IP and PUREFB_API)
  103136. .UNINDENT
  103137. .UNINDENT
  103138. .INDENT 0.0
  103139. .TP
  103140. .B maintainer
  103141. Simon Dodsley (\fI\%simon@purestorage.com\fP)
  103142. .TP
  103143. .B maturity
  103144. new
  103145. .TP
  103146. .B requires
  103147. purity_fb
  103148. .TP
  103149. .B platform
  103150. all
  103151. .UNINDENT
  103152. .sp
  103153. New in version 2019.2.0.
  103154. .INDENT 0.0
  103155. .TP
  103156. .B salt.modules.purefb.fs_create(name, size=None, proto=u\(aqNFS\(aq, nfs_rules=u\(aq*(rw, no_root_squash)\(aq, snapshot=False)
  103157. Create a filesystem on a Pure Storage FlashBlade.
  103158. .sp
  103159. Will return False if filesystem already exists.
  103160. .sp
  103161. New in version 2019.2.0.
  103162. .INDENT 7.0
  103163. .TP
  103164. .B name
  103165. string
  103166. name of filesystem (truncated to 63 characters)
  103167. .TP
  103168. .B proto
  103169. string
  103170. (Optional) Sharing protocol (NFS, CIFS or HTTP). If not specified default is NFS
  103171. .TP
  103172. .B snapshot: boolean
  103173. (Optional) Are snapshots enabled on the filesystem. Default is False
  103174. .TP
  103175. .B nfs_rules
  103176. string
  103177. (Optional) export rules for NFS. If not specified default is
  103178. \fB*(rw,no_root_squash)\fP\&. Refer to Pure Storage documentation for
  103179. formatting rules.
  103180. .TP
  103181. .B size
  103182. string
  103183. if specified capacity of filesystem. If not specified default to 32G.
  103184. Refer to Pure Storage documentation for formatting rules.
  103185. .UNINDENT
  103186. .sp
  103187. CLI Example:
  103188. .INDENT 7.0
  103189. .INDENT 3.5
  103190. .sp
  103191. .nf
  103192. .ft C
  103193. salt \(aq*\(aq purefb.fs_create foo proto=CIFS
  103194. salt \(aq*\(aq purefb.fs_create foo size=10T
  103195. .ft P
  103196. .fi
  103197. .UNINDENT
  103198. .UNINDENT
  103199. .UNINDENT
  103200. .INDENT 0.0
  103201. .TP
  103202. .B salt.modules.purefb.fs_delete(name, eradicate=False)
  103203. Delete a share on a Pure Storage FlashBlade.
  103204. .sp
  103205. Will return False if filesystem doesn\(aqt exist or is already in a deleted state.
  103206. .sp
  103207. New in version 2019.2.0.
  103208. .INDENT 7.0
  103209. .TP
  103210. .B name
  103211. string
  103212. name of filesystem
  103213. .TP
  103214. .B eradicate
  103215. boolean
  103216. (Optional) Eradicate filesystem after deletion if True. Default is False
  103217. .UNINDENT
  103218. .sp
  103219. CLI Example:
  103220. .INDENT 7.0
  103221. .INDENT 3.5
  103222. .sp
  103223. .nf
  103224. .ft C
  103225. salt \(aq*\(aq purefb.fs_delete foo eradicate=True
  103226. .ft P
  103227. .fi
  103228. .UNINDENT
  103229. .UNINDENT
  103230. .UNINDENT
  103231. .INDENT 0.0
  103232. .TP
  103233. .B salt.modules.purefb.fs_eradicate(name)
  103234. Eradicate a deleted filesystem on a Pure Storage FlashBlade.
  103235. .sp
  103236. Will return False is filesystem is not in a deleted state.
  103237. .sp
  103238. New in version 2019.2.0.
  103239. .INDENT 7.0
  103240. .TP
  103241. .B name
  103242. string
  103243. name of filesystem
  103244. .UNINDENT
  103245. .sp
  103246. CLI Example:
  103247. .INDENT 7.0
  103248. .INDENT 3.5
  103249. .sp
  103250. .nf
  103251. .ft C
  103252. salt \(aq*\(aq purefb.fs_eradicate foo
  103253. .ft P
  103254. .fi
  103255. .UNINDENT
  103256. .UNINDENT
  103257. .UNINDENT
  103258. .INDENT 0.0
  103259. .TP
  103260. .B salt.modules.purefb.fs_extend(name, size)
  103261. Resize an existing filesystem on a Pure Storage FlashBlade.
  103262. .sp
  103263. Will return False if new size is less than or equal to existing size.
  103264. .sp
  103265. New in version 2019.2.0.
  103266. .INDENT 7.0
  103267. .TP
  103268. .B name
  103269. string
  103270. name of filesystem
  103271. .TP
  103272. .B size
  103273. string
  103274. New capacity of filesystem.
  103275. Refer to Pure Storage documentation for formatting rules.
  103276. .UNINDENT
  103277. .sp
  103278. CLI Example:
  103279. .INDENT 7.0
  103280. .INDENT 3.5
  103281. .sp
  103282. .nf
  103283. .ft C
  103284. salt \(aq*\(aq purefb.fs_extend foo 10T
  103285. .ft P
  103286. .fi
  103287. .UNINDENT
  103288. .UNINDENT
  103289. .UNINDENT
  103290. .INDENT 0.0
  103291. .TP
  103292. .B salt.modules.purefb.fs_update(name, rules, snapshot=False)
  103293. Update filesystem on a Pure Storage FlashBlade.
  103294. .sp
  103295. Allows for change of NFS export rules and enabling/disabled
  103296. of snapshotting capability.
  103297. .sp
  103298. New in version 2019.2.0.
  103299. .INDENT 7.0
  103300. .TP
  103301. .B name
  103302. string
  103303. name of filesystem
  103304. .TP
  103305. .B rules
  103306. string
  103307. NFS export rules for filesystem
  103308. Refer to Pure Storage documentation for formatting rules.
  103309. .TP
  103310. .B snapshot: boolean
  103311. (Optional) Enable/Disable snapshots on the filesystem. Default is False
  103312. .UNINDENT
  103313. .sp
  103314. CLI Example:
  103315. .INDENT 7.0
  103316. .INDENT 3.5
  103317. .sp
  103318. .nf
  103319. .ft C
  103320. salt \(aq*\(aq purefb.fs_nfs_update foo rules=\(aq10.234.112.23(ro), 10.234.112.24(rw)\(aq snapshot=True
  103321. .ft P
  103322. .fi
  103323. .UNINDENT
  103324. .UNINDENT
  103325. .UNINDENT
  103326. .INDENT 0.0
  103327. .TP
  103328. .B salt.modules.purefb.snap_create(name, suffix=None)
  103329. Create a filesystem snapshot on a Pure Storage FlashBlade.
  103330. .sp
  103331. Will return False if filesystem selected to snap does not exist.
  103332. .sp
  103333. New in version 2019.2.0.
  103334. .INDENT 7.0
  103335. .TP
  103336. .B name
  103337. string
  103338. name of filesystem to snapshot
  103339. .TP
  103340. .B suffix
  103341. string
  103342. if specificed forces snapshot name suffix. If not specified defaults to timestamp.
  103343. .UNINDENT
  103344. .sp
  103345. CLI Example:
  103346. .INDENT 7.0
  103347. .INDENT 3.5
  103348. .sp
  103349. .nf
  103350. .ft C
  103351. salt \(aq*\(aq purefb.snap_create foo
  103352. salt \(aq*\(aq purefb.snap_create foo suffix=bar
  103353. .ft P
  103354. .fi
  103355. .UNINDENT
  103356. .UNINDENT
  103357. .UNINDENT
  103358. .INDENT 0.0
  103359. .TP
  103360. .B salt.modules.purefb.snap_delete(name, suffix=None, eradicate=False)
  103361. Delete a filesystem snapshot on a Pure Storage FlashBlade.
  103362. .sp
  103363. Will return False if selected snapshot does not exist.
  103364. .sp
  103365. New in version 2019.2.0.
  103366. .INDENT 7.0
  103367. .TP
  103368. .B name
  103369. string
  103370. name of filesystem
  103371. .TP
  103372. .B suffix
  103373. string
  103374. name of snapshot
  103375. .TP
  103376. .B eradicate
  103377. boolean
  103378. Eradicate snapshot after deletion if True. Default is False
  103379. .UNINDENT
  103380. .sp
  103381. CLI Example:
  103382. .INDENT 7.0
  103383. .INDENT 3.5
  103384. .sp
  103385. .nf
  103386. .ft C
  103387. salt \(aq*\(aq purefb.snap_delete foo suffix=snap eradicate=True
  103388. .ft P
  103389. .fi
  103390. .UNINDENT
  103391. .UNINDENT
  103392. .UNINDENT
  103393. .INDENT 0.0
  103394. .TP
  103395. .B salt.modules.purefb.snap_eradicate(name, suffix=None)
  103396. Eradicate a deleted filesystem snapshot on a Pure Storage FlashBlade.
  103397. .sp
  103398. Will return False if snapshot is not in a deleted state.
  103399. .sp
  103400. New in version 2019.2.0.
  103401. .INDENT 7.0
  103402. .TP
  103403. .B name
  103404. string
  103405. name of filesystem
  103406. .TP
  103407. .B suffix
  103408. string
  103409. name of snapshot
  103410. .UNINDENT
  103411. .sp
  103412. CLI Example:
  103413. .INDENT 7.0
  103414. .INDENT 3.5
  103415. .sp
  103416. .nf
  103417. .ft C
  103418. salt \(aq*\(aq purefb.snap_eradicate foo suffix=snap
  103419. .ft P
  103420. .fi
  103421. .UNINDENT
  103422. .UNINDENT
  103423. .UNINDENT
  103424. .SS salt.modules.pushbullet module
  103425. .sp
  103426. Module for sending messages to Pushbullet (\fI\%https://www.pushbullet.com\fP)
  103427. .sp
  103428. New in version 2015.8.0.
  103429. .sp
  103430. Requires an \fBapi_key\fP in \fB/etc/salt/minion\fP:
  103431. .INDENT 0.0
  103432. .INDENT 3.5
  103433. .sp
  103434. .nf
  103435. .ft C
  103436. pushbullet:
  103437. api_key: \(aqABC123abc123ABC123abc123ABC123ab\(aq
  103438. .ft P
  103439. .fi
  103440. .UNINDENT
  103441. .UNINDENT
  103442. .sp
  103443. For example:
  103444. .INDENT 0.0
  103445. .INDENT 3.5
  103446. .sp
  103447. .nf
  103448. .ft C
  103449. pushbullet:
  103450. device: "Chrome"
  103451. title: "Example push message"
  103452. body: "Message body."
  103453. .ft P
  103454. .fi
  103455. .UNINDENT
  103456. .UNINDENT
  103457. .INDENT 0.0
  103458. .TP
  103459. .B salt.modules.pushbullet.push_note(device=None, title=None, body=None)
  103460. Pushing a text note.
  103461. .INDENT 7.0
  103462. .TP
  103463. .B Parameters
  103464. .INDENT 7.0
  103465. .IP \(bu 2
  103466. \fBdevice\fP \-\- Pushbullet target device
  103467. .IP \(bu 2
  103468. \fBtitle\fP \-\- Note title
  103469. .IP \(bu 2
  103470. \fBbody\fP \-\- Note body
  103471. .UNINDENT
  103472. .TP
  103473. .B Returns
  103474. Boolean if message was sent successfully.
  103475. .UNINDENT
  103476. .sp
  103477. CLI Example:
  103478. .INDENT 7.0
  103479. .INDENT 3.5
  103480. .sp
  103481. .nf
  103482. .ft C
  103483. salt "*" pushbullet.push_note device="Chrome" title="Example title" body="Example body."
  103484. .ft P
  103485. .fi
  103486. .UNINDENT
  103487. .UNINDENT
  103488. .UNINDENT
  103489. .SS salt.modules.pushover_notify
  103490. .sp
  103491. Module for sending messages to Pushover (\fI\%https://www.pushover.net\fP)
  103492. .sp
  103493. New in version 2016.3.0.
  103494. .INDENT 0.0
  103495. .TP
  103496. .B configuration
  103497. This module can be used by either passing an api key and version
  103498. directly or by specifying both in a configuration profile in the salt
  103499. master/minion config.
  103500. .sp
  103501. For example:
  103502. .INDENT 7.0
  103503. .INDENT 3.5
  103504. .sp
  103505. .nf
  103506. .ft C
  103507. pushover:
  103508. token: abAHuZyCLtdH8P4zhmFZmgUHUsv1ei8
  103509. .ft P
  103510. .fi
  103511. .UNINDENT
  103512. .UNINDENT
  103513. .UNINDENT
  103514. .INDENT 0.0
  103515. .TP
  103516. .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)
  103517. Send a message to a Pushover user or group.
  103518. .INDENT 7.0
  103519. .TP
  103520. .B Parameters
  103521. .INDENT 7.0
  103522. .IP \(bu 2
  103523. \fBuser\fP \-\- The user or group to send to, must be key of user or group not email address.
  103524. .IP \(bu 2
  103525. \fBmessage\fP \-\- The message to send to the PushOver user or group.
  103526. .IP \(bu 2
  103527. \fBtitle\fP \-\- Specify who the message is from.
  103528. .IP \(bu 2
  103529. \fBpriority\fP \-\- The priority of the message, defaults to 0.
  103530. .IP \(bu 2
  103531. \fBexpire\fP \-\- The message should expire after N number of seconds.
  103532. .IP \(bu 2
  103533. \fBretry\fP \-\- The number of times the message should be retried.
  103534. .IP \(bu 2
  103535. \fBsound\fP \-\- The sound to associate with the message.
  103536. .IP \(bu 2
  103537. \fBapi_version\fP \-\- The PushOver API version, if not specified in the configuration.
  103538. .IP \(bu 2
  103539. \fBtoken\fP \-\- The PushOver token, if not specified in the configuration.
  103540. .UNINDENT
  103541. .TP
  103542. .B Returns
  103543. Boolean if message was sent successfully.
  103544. .UNINDENT
  103545. .sp
  103546. CLI Example:
  103547. .INDENT 7.0
  103548. .INDENT 3.5
  103549. .sp
  103550. .nf
  103551. .ft C
  103552. salt \(aq*\(aq pushover.post_message user=\(aqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\(aq title=\(aqMessage from Salt\(aq message=\(aqBuild is done\(aq
  103553. 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
  103554. .ft P
  103555. .fi
  103556. .UNINDENT
  103557. .UNINDENT
  103558. .UNINDENT
  103559. .SS salt.modules.pyenv
  103560. .sp
  103561. Manage python installations with pyenv.
  103562. .sp
  103563. \fBNOTE:\fP
  103564. .INDENT 0.0
  103565. .INDENT 3.5
  103566. Git needs to be installed and available via PATH if pyenv is to be
  103567. installed automatically by the module.
  103568. .UNINDENT
  103569. .UNINDENT
  103570. .sp
  103571. New in version v2014.04.
  103572. .INDENT 0.0
  103573. .TP
  103574. .B salt.modules.pyenv.default(python=None, runas=None)
  103575. Returns or sets the currently defined default python.
  103576. .INDENT 7.0
  103577. .TP
  103578. .B python=None
  103579. The version to set as the default. Should match one of the versions
  103580. listed by \fI\%pyenv.versions\fP\&. Leave
  103581. blank to return the current default.
  103582. .UNINDENT
  103583. .sp
  103584. CLI Example:
  103585. .INDENT 7.0
  103586. .INDENT 3.5
  103587. .sp
  103588. .nf
  103589. .ft C
  103590. salt \(aq*\(aq pyenv.default
  103591. salt \(aq*\(aq pyenv.default 2.0.0\-p0
  103592. .ft P
  103593. .fi
  103594. .UNINDENT
  103595. .UNINDENT
  103596. .UNINDENT
  103597. .INDENT 0.0
  103598. .TP
  103599. .B salt.modules.pyenv.do(cmdline=None, runas=None)
  103600. Execute a python command with pyenv\(aqs shims from the user or the system.
  103601. .sp
  103602. CLI Example:
  103603. .INDENT 7.0
  103604. .INDENT 3.5
  103605. .sp
  103606. .nf
  103607. .ft C
  103608. salt \(aq*\(aq pyenv.do \(aqgem list bundler\(aq
  103609. salt \(aq*\(aq pyenv.do \(aqgem list bundler\(aq deploy
  103610. .ft P
  103611. .fi
  103612. .UNINDENT
  103613. .UNINDENT
  103614. .UNINDENT
  103615. .INDENT 0.0
  103616. .TP
  103617. .B salt.modules.pyenv.do_with_python(python, cmdline, runas=None)
  103618. Execute a python command with pyenv\(aqs shims using a specific python version.
  103619. .sp
  103620. CLI Example:
  103621. .INDENT 7.0
  103622. .INDENT 3.5
  103623. .sp
  103624. .nf
  103625. .ft C
  103626. salt \(aq*\(aq pyenv.do_with_python 2.0.0\-p0 \(aqgem list bundler\(aq
  103627. salt \(aq*\(aq pyenv.do_with_python 2.0.0\-p0 \(aqgem list bundler\(aq deploy
  103628. .ft P
  103629. .fi
  103630. .UNINDENT
  103631. .UNINDENT
  103632. .UNINDENT
  103633. .INDENT 0.0
  103634. .TP
  103635. .B salt.modules.pyenv.install(runas=None, path=None)
  103636. Install pyenv systemwide
  103637. .sp
  103638. CLI Example:
  103639. .INDENT 7.0
  103640. .INDENT 3.5
  103641. .sp
  103642. .nf
  103643. .ft C
  103644. salt \(aq*\(aq pyenv.install
  103645. .ft P
  103646. .fi
  103647. .UNINDENT
  103648. .UNINDENT
  103649. .UNINDENT
  103650. .INDENT 0.0
  103651. .TP
  103652. .B salt.modules.pyenv.install_python(python, runas=None)
  103653. Install a python implementation.
  103654. .INDENT 7.0
  103655. .TP
  103656. .B python
  103657. The version of python to install, should match one of the
  103658. versions listed by pyenv.list
  103659. .UNINDENT
  103660. .sp
  103661. CLI Example:
  103662. .INDENT 7.0
  103663. .INDENT 3.5
  103664. .sp
  103665. .nf
  103666. .ft C
  103667. salt \(aq*\(aq pyenv.install_python 2.0.0\-p0
  103668. .ft P
  103669. .fi
  103670. .UNINDENT
  103671. .UNINDENT
  103672. .UNINDENT
  103673. .INDENT 0.0
  103674. .TP
  103675. .B salt.modules.pyenv.is_installed(runas=None)
  103676. Check if pyenv is installed.
  103677. .sp
  103678. CLI Example:
  103679. .INDENT 7.0
  103680. .INDENT 3.5
  103681. .sp
  103682. .nf
  103683. .ft C
  103684. salt \(aq*\(aq pyenv.is_installed
  103685. .ft P
  103686. .fi
  103687. .UNINDENT
  103688. .UNINDENT
  103689. .UNINDENT
  103690. .INDENT 0.0
  103691. .TP
  103692. .B salt.modules.pyenv.list_(runas=None)
  103693. List the installable versions of python.
  103694. .sp
  103695. CLI Example:
  103696. .INDENT 7.0
  103697. .INDENT 3.5
  103698. .sp
  103699. .nf
  103700. .ft C
  103701. salt \(aq*\(aq pyenv.list
  103702. .ft P
  103703. .fi
  103704. .UNINDENT
  103705. .UNINDENT
  103706. .UNINDENT
  103707. .INDENT 0.0
  103708. .TP
  103709. .B salt.modules.pyenv.rehash(runas=None)
  103710. Run pyenv rehash to update the installed shims.
  103711. .sp
  103712. CLI Example:
  103713. .INDENT 7.0
  103714. .INDENT 3.5
  103715. .sp
  103716. .nf
  103717. .ft C
  103718. salt \(aq*\(aq pyenv.rehash
  103719. .ft P
  103720. .fi
  103721. .UNINDENT
  103722. .UNINDENT
  103723. .UNINDENT
  103724. .INDENT 0.0
  103725. .TP
  103726. .B salt.modules.pyenv.uninstall_python(python, runas=None)
  103727. Uninstall a python implementation.
  103728. .INDENT 7.0
  103729. .TP
  103730. .B python
  103731. The version of python to uninstall. Should match one of the versions
  103732. listed by \fI\%pyenv.versions\fP
  103733. .UNINDENT
  103734. .sp
  103735. CLI Example:
  103736. .INDENT 7.0
  103737. .INDENT 3.5
  103738. .sp
  103739. .nf
  103740. .ft C
  103741. salt \(aq*\(aq pyenv.uninstall_python 2.0.0\-p0
  103742. .ft P
  103743. .fi
  103744. .UNINDENT
  103745. .UNINDENT
  103746. .UNINDENT
  103747. .INDENT 0.0
  103748. .TP
  103749. .B salt.modules.pyenv.update(runas=None, path=None)
  103750. Updates the current versions of pyenv and python\-Build
  103751. .sp
  103752. CLI Example:
  103753. .INDENT 7.0
  103754. .INDENT 3.5
  103755. .sp
  103756. .nf
  103757. .ft C
  103758. salt \(aq*\(aq pyenv.update
  103759. .ft P
  103760. .fi
  103761. .UNINDENT
  103762. .UNINDENT
  103763. .UNINDENT
  103764. .INDENT 0.0
  103765. .TP
  103766. .B salt.modules.pyenv.versions(runas=None)
  103767. List the installed versions of python.
  103768. .sp
  103769. CLI Example:
  103770. .INDENT 7.0
  103771. .INDENT 3.5
  103772. .sp
  103773. .nf
  103774. .ft C
  103775. salt \(aq*\(aq pyenv.versions
  103776. .ft P
  103777. .fi
  103778. .UNINDENT
  103779. .UNINDENT
  103780. .UNINDENT
  103781. .SS salt.modules.rest_sample_utils module
  103782. .sp
  103783. Utility functions for the rest_sample
  103784. .INDENT 0.0
  103785. .TP
  103786. .B salt.modules.rest_sample_utils.fix_outage()
  103787. "Fix" the outage
  103788. .sp
  103789. CLI Example:
  103790. .INDENT 7.0
  103791. .INDENT 3.5
  103792. .sp
  103793. .nf
  103794. .ft C
  103795. salt \(aqrest\-sample\-proxy\(aq rest_sample.fix_outage
  103796. .ft P
  103797. .fi
  103798. .UNINDENT
  103799. .UNINDENT
  103800. .UNINDENT
  103801. .INDENT 0.0
  103802. .TP
  103803. .B salt.modules.rest_sample_utils.get_test_string()
  103804. Helper function to test cross\-calling to the __proxy__ dunder.
  103805. .sp
  103806. CLI Example:
  103807. .INDENT 7.0
  103808. .INDENT 3.5
  103809. .sp
  103810. .nf
  103811. .ft C
  103812. salt \(aqrest\-sample\-proxy\(aq rest_sample.get_test_string
  103813. .ft P
  103814. .fi
  103815. .UNINDENT
  103816. .UNINDENT
  103817. .UNINDENT
  103818. .SS salt.modules.s3
  103819. .sp
  103820. Connection module for Amazon S3
  103821. .INDENT 0.0
  103822. .TP
  103823. .B configuration
  103824. This module accepts explicit s3 credentials but can also utilize
  103825. IAM roles assigned to the instance through Instance Profiles. Dynamic
  103826. credentials are then automatically obtained from AWS API and no further
  103827. configuration is necessary. More Information available at:
  103828. .INDENT 7.0
  103829. .INDENT 3.5
  103830. \fI\%http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html\fP
  103831. .UNINDENT
  103832. .UNINDENT
  103833. .sp
  103834. If IAM roles are not used you need to specify them either in a pillar or
  103835. in the minion\(aqs config file:
  103836. .INDENT 7.0
  103837. .INDENT 3.5
  103838. .sp
  103839. .nf
  103840. .ft C
  103841. s3.keyid: GKTADJGHEIQSXMKKRBJ08H
  103842. s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  103843. .ft P
  103844. .fi
  103845. .UNINDENT
  103846. .UNINDENT
  103847. .sp
  103848. \fBWARNING:\fP
  103849. .INDENT 7.0
  103850. .INDENT 3.5
  103851. This is literally the pillar key \fBs3.keyid\fP or the config option \fBs3.keyid\fP,
  103852. not:
  103853. .INDENT 0.0
  103854. .INDENT 3.5
  103855. .sp
  103856. .nf
  103857. .ft C
  103858. s3:
  103859. keyid: blah
  103860. .ft P
  103861. .fi
  103862. .UNINDENT
  103863. .UNINDENT
  103864. .UNINDENT
  103865. .UNINDENT
  103866. .sp
  103867. A \fBservice_url\fP may also be specified in the configuration:
  103868. .INDENT 7.0
  103869. .INDENT 3.5
  103870. .sp
  103871. .nf
  103872. .ft C
  103873. s3.service_url: s3.amazonaws.com
  103874. .ft P
  103875. .fi
  103876. .UNINDENT
  103877. .UNINDENT
  103878. .sp
  103879. A \fBrole_arn\fP may also be specified in the configuration:
  103880. .INDENT 7.0
  103881. .INDENT 3.5
  103882. .sp
  103883. .nf
  103884. .ft C
  103885. s3.role_arn: arn:aws:iam::111111111111:role/my\-role\-to\-assume
  103886. .ft P
  103887. .fi
  103888. .UNINDENT
  103889. .UNINDENT
  103890. .sp
  103891. If a \fBservice_url\fP is not specified, the default is \fBs3.amazonaws.com\fP\&. This
  103892. may appear in various documentation as an "endpoint". A comprehensive list
  103893. for Amazon S3 may be found at:
  103894. .INDENT 7.0
  103895. .INDENT 3.5
  103896. \fI\%http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\fP
  103897. .UNINDENT
  103898. .UNINDENT
  103899. .sp
  103900. The \fBservice_url\fP will form the basis for the final endpoint that is used to
  103901. query the service.
  103902. .sp
  103903. Path style can be enabled:
  103904. .INDENT 7.0
  103905. .INDENT 3.5
  103906. .sp
  103907. .nf
  103908. .ft C
  103909. s3.path_style: True
  103910. .ft P
  103911. .fi
  103912. .UNINDENT
  103913. .UNINDENT
  103914. .sp
  103915. This can be useful if you need to use Salt with a proxy for a S3 compatible storage.
  103916. .sp
  103917. You can use either HTTPS protocol or HTTP protocol:
  103918. .INDENT 7.0
  103919. .INDENT 3.5
  103920. .sp
  103921. .nf
  103922. .ft C
  103923. s3.https_enable: True
  103924. .ft P
  103925. .fi
  103926. .UNINDENT
  103927. .UNINDENT
  103928. .sp
  103929. SSL verification may also be turned off in the configuration:
  103930. .INDENT 7.0
  103931. .INDENT 3.5
  103932. .sp
  103933. .nf
  103934. .ft C
  103935. s3.verify_ssl: False
  103936. .ft P
  103937. .fi
  103938. .UNINDENT
  103939. .UNINDENT
  103940. .sp
  103941. This is required if using S3 bucket names that contain a period, as
  103942. these will not match Amazon\(aqs S3 wildcard certificates. Certificate
  103943. verification is enabled by default.
  103944. .sp
  103945. AWS region may be specified in the configuration:
  103946. .INDENT 7.0
  103947. .INDENT 3.5
  103948. .sp
  103949. .nf
  103950. .ft C
  103951. s3.location: eu\-central\-1
  103952. .ft P
  103953. .fi
  103954. .UNINDENT
  103955. .UNINDENT
  103956. .sp
  103957. Default is \fBus\-east\-1\fP\&.
  103958. .sp
  103959. This module should be usable to query other S3\-like services, such as
  103960. Eucalyptus.
  103961. .UNINDENT
  103962. .INDENT 0.0
  103963. .TP
  103964. .B depends
  103965. requests
  103966. .UNINDENT
  103967. .INDENT 0.0
  103968. .TP
  103969. .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)
  103970. Delete a bucket, or delete an object from a bucket.
  103971. .sp
  103972. CLI Example to delete a bucket:
  103973. .INDENT 7.0
  103974. .INDENT 3.5
  103975. .sp
  103976. .nf
  103977. .ft C
  103978. salt myminion s3.delete mybucket
  103979. .ft P
  103980. .fi
  103981. .UNINDENT
  103982. .UNINDENT
  103983. .sp
  103984. CLI Example to delete an object from a bucket:
  103985. .INDENT 7.0
  103986. .INDENT 3.5
  103987. .sp
  103988. .nf
  103989. .ft C
  103990. salt myminion s3.delete mybucket remoteobject
  103991. .ft P
  103992. .fi
  103993. .UNINDENT
  103994. .UNINDENT
  103995. .UNINDENT
  103996. .INDENT 0.0
  103997. .TP
  103998. .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)
  103999. List the contents of a bucket, or return an object from a bucket. Set
  104000. return_bin to True in order to retrieve an object wholesale. Otherwise,
  104001. Salt will attempt to parse an XML response.
  104002. .sp
  104003. CLI Example to list buckets:
  104004. .INDENT 7.0
  104005. .INDENT 3.5
  104006. salt myminion s3.get
  104007. .UNINDENT
  104008. .UNINDENT
  104009. .sp
  104010. CLI Example to list the contents of a bucket:
  104011. .INDENT 7.0
  104012. .INDENT 3.5
  104013. salt myminion s3.get mybucket
  104014. .UNINDENT
  104015. .UNINDENT
  104016. .sp
  104017. CLI Example to return the binary contents of an object:
  104018. .INDENT 7.0
  104019. .INDENT 3.5
  104020. salt myminion s3.get mybucket myfile.png return_bin=True
  104021. .UNINDENT
  104022. .UNINDENT
  104023. .sp
  104024. CLI Example to save the binary contents of an object to a local file:
  104025. .INDENT 7.0
  104026. .INDENT 3.5
  104027. salt myminion s3.get mybucket myfile.png local_file=/tmp/myfile.png
  104028. .UNINDENT
  104029. .UNINDENT
  104030. .sp
  104031. It is also possible to perform an action on a bucket. Currently, S3
  104032. supports the following actions:
  104033. .INDENT 7.0
  104034. .INDENT 3.5
  104035. .sp
  104036. .nf
  104037. .ft C
  104038. acl
  104039. cors
  104040. lifecycle
  104041. policy
  104042. location
  104043. logging
  104044. notification
  104045. tagging
  104046. versions
  104047. requestPayment
  104048. versioning
  104049. website
  104050. .ft P
  104051. .fi
  104052. .UNINDENT
  104053. .UNINDENT
  104054. .sp
  104055. To perform an action on a bucket:
  104056. .INDENT 7.0
  104057. .INDENT 3.5
  104058. salt myminion s3.get mybucket myfile.png action=acl
  104059. .UNINDENT
  104060. .UNINDENT
  104061. .UNINDENT
  104062. .INDENT 0.0
  104063. .TP
  104064. .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)
  104065. Return the metadata for a bucket, or an object in a bucket.
  104066. .sp
  104067. CLI Examples:
  104068. .INDENT 7.0
  104069. .INDENT 3.5
  104070. salt myminion s3.head mybucket
  104071. salt myminion s3.head mybucket myfile.png
  104072. .UNINDENT
  104073. .UNINDENT
  104074. .UNINDENT
  104075. .INDENT 0.0
  104076. .TP
  104077. .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)
  104078. Create a new bucket, or upload an object to a bucket.
  104079. .sp
  104080. CLI Example to create a bucket:
  104081. .INDENT 7.0
  104082. .INDENT 3.5
  104083. salt myminion s3.put mybucket
  104084. .UNINDENT
  104085. .UNINDENT
  104086. .sp
  104087. CLI Example to upload an object to a bucket:
  104088. .INDENT 7.0
  104089. .INDENT 3.5
  104090. salt myminion s3.put mybucket remotepath local_file=/path/to/file
  104091. .UNINDENT
  104092. .UNINDENT
  104093. .UNINDENT
  104094. .SS salt.modules.s6 module
  104095. .sp
  104096. s6 service module
  104097. .sp
  104098. This module is compatible with the \fBservice\fP states,
  104099. so it can be used to maintain services using the \fBprovider\fP argument:
  104100. .INDENT 0.0
  104101. .INDENT 3.5
  104102. .sp
  104103. .nf
  104104. .ft C
  104105. myservice:
  104106. service:
  104107. \- running
  104108. \- provider: s6
  104109. .ft P
  104110. .fi
  104111. .UNINDENT
  104112. .UNINDENT
  104113. .sp
  104114. Note that the \fBenabled\fP argument is not available with this provider.
  104115. .INDENT 0.0
  104116. .TP
  104117. .B codeauthor
  104118. Marek Skrobacki <\fI\%skrobul@skrobul.com\fP>
  104119. .UNINDENT
  104120. .INDENT 0.0
  104121. .TP
  104122. .B salt.modules.s6.available(name)
  104123. Returns \fBTrue\fP if the specified service is available, otherwise returns
  104124. \fBFalse\fP\&.
  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.available foo
  104133. .ft P
  104134. .fi
  104135. .UNINDENT
  104136. .UNINDENT
  104137. .UNINDENT
  104138. .INDENT 0.0
  104139. .TP
  104140. .B salt.modules.s6.full_restart(name)
  104141. Calls s6.restart() function
  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.full_restart <service name>
  104150. .ft P
  104151. .fi
  104152. .UNINDENT
  104153. .UNINDENT
  104154. .UNINDENT
  104155. .INDENT 0.0
  104156. .TP
  104157. .B salt.modules.s6.get_all()
  104158. Return a list of all available services
  104159. .sp
  104160. CLI Example:
  104161. .INDENT 7.0
  104162. .INDENT 3.5
  104163. .sp
  104164. .nf
  104165. .ft C
  104166. salt \(aq*\(aq s6.get_all
  104167. .ft P
  104168. .fi
  104169. .UNINDENT
  104170. .UNINDENT
  104171. .UNINDENT
  104172. .INDENT 0.0
  104173. .TP
  104174. .B salt.modules.s6.missing(name)
  104175. The inverse of s6.available.
  104176. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  104177. \fBFalse\fP\&.
  104178. .sp
  104179. CLI Example:
  104180. .INDENT 7.0
  104181. .INDENT 3.5
  104182. .sp
  104183. .nf
  104184. .ft C
  104185. salt \(aq*\(aq s6.missing foo
  104186. .ft P
  104187. .fi
  104188. .UNINDENT
  104189. .UNINDENT
  104190. .UNINDENT
  104191. .INDENT 0.0
  104192. .TP
  104193. .B salt.modules.s6.reload_(name)
  104194. Send a HUP to service via s6
  104195. .sp
  104196. CLI Example:
  104197. .INDENT 7.0
  104198. .INDENT 3.5
  104199. .sp
  104200. .nf
  104201. .ft C
  104202. salt \(aq*\(aq s6.reload <service name>
  104203. .ft P
  104204. .fi
  104205. .UNINDENT
  104206. .UNINDENT
  104207. .UNINDENT
  104208. .INDENT 0.0
  104209. .TP
  104210. .B salt.modules.s6.restart(name)
  104211. Restart service via s6. This will stop/start service
  104212. .sp
  104213. CLI Example:
  104214. .INDENT 7.0
  104215. .INDENT 3.5
  104216. .sp
  104217. .nf
  104218. .ft C
  104219. salt \(aq*\(aq s6.restart <service name>
  104220. .ft P
  104221. .fi
  104222. .UNINDENT
  104223. .UNINDENT
  104224. .UNINDENT
  104225. .INDENT 0.0
  104226. .TP
  104227. .B salt.modules.s6.start(name)
  104228. Starts service via s6
  104229. .sp
  104230. CLI Example:
  104231. .INDENT 7.0
  104232. .INDENT 3.5
  104233. .sp
  104234. .nf
  104235. .ft C
  104236. salt \(aq*\(aq s6.start <service name>
  104237. .ft P
  104238. .fi
  104239. .UNINDENT
  104240. .UNINDENT
  104241. .UNINDENT
  104242. .INDENT 0.0
  104243. .TP
  104244. .B salt.modules.s6.status(name, sig=None)
  104245. Return the status for a service via s6, return pid if running
  104246. .sp
  104247. CLI Example:
  104248. .INDENT 7.0
  104249. .INDENT 3.5
  104250. .sp
  104251. .nf
  104252. .ft C
  104253. salt \(aq*\(aq s6.status <service name>
  104254. .ft P
  104255. .fi
  104256. .UNINDENT
  104257. .UNINDENT
  104258. .UNINDENT
  104259. .INDENT 0.0
  104260. .TP
  104261. .B salt.modules.s6.stop(name)
  104262. Stops service via s6
  104263. .sp
  104264. CLI Example:
  104265. .INDENT 7.0
  104266. .INDENT 3.5
  104267. .sp
  104268. .nf
  104269. .ft C
  104270. salt \(aq*\(aq s6.stop <service name>
  104271. .ft P
  104272. .fi
  104273. .UNINDENT
  104274. .UNINDENT
  104275. .UNINDENT
  104276. .INDENT 0.0
  104277. .TP
  104278. .B salt.modules.s6.term(name)
  104279. Send a TERM to service via s6
  104280. .sp
  104281. CLI Example:
  104282. .INDENT 7.0
  104283. .INDENT 3.5
  104284. .sp
  104285. .nf
  104286. .ft C
  104287. salt \(aq*\(aq s6.term <service name>
  104288. .ft P
  104289. .fi
  104290. .UNINDENT
  104291. .UNINDENT
  104292. .UNINDENT
  104293. .SS salt.modules.salt_version
  104294. .sp
  104295. Access Salt\(aqs elemental release code\-names.
  104296. .sp
  104297. New in version 3000.
  104298. .sp
  104299. Salt\(aqs feature release schedule is based on the Periodic Table, as described
  104300. in the Version Numbers documentation.
  104301. .sp
  104302. When a feature was added (or removed) in a specific release, it can be
  104303. difficult to build out future\-proof functionality that is dependent on
  104304. a naming scheme that moves.
  104305. .sp
  104306. For example, a state syntax needs to change to support an option that will be
  104307. removed in the future, but there are many Minion versions in use across an
  104308. infrastructure. It would be handy to use some Jinja syntax to check for these
  104309. instances to perform one state syntax over another.
  104310. .sp
  104311. A simple example might be something like the following:
  104312. .INDENT 0.0
  104313. .INDENT 3.5
  104314. .sp
  104315. .nf
  104316. .ft C
  104317. {# a boolean check #}
  104318. {% set option_deprecated = salt[\(aqsalt_version.less_than\(aq]("3001.1" ) %}
  104319. {% if option_deprecated %}
  104320. <use old syntax>
  104321. {% else %}
  104322. <use new syntax>
  104323. {% endif %}
  104324. .ft P
  104325. .fi
  104326. .UNINDENT
  104327. .UNINDENT
  104328. .INDENT 0.0
  104329. .TP
  104330. .B salt.modules.salt_version.equal(name)
  104331. Returns a boolean (True) if the minion\(aqs current version
  104332. code name matches the named version.
  104333. .INDENT 7.0
  104334. .TP
  104335. .B name
  104336. The release code name to check the version against.
  104337. .UNINDENT
  104338. .sp
  104339. CLI Example:
  104340. .INDENT 7.0
  104341. .INDENT 3.5
  104342. .sp
  104343. .nf
  104344. .ft C
  104345. salt \(aq*\(aq salt_version.equal \(aqOxygen\(aq
  104346. .ft P
  104347. .fi
  104348. .UNINDENT
  104349. .UNINDENT
  104350. .UNINDENT
  104351. .INDENT 0.0
  104352. .TP
  104353. .B salt.modules.salt_version.get_release_number(name)
  104354. Returns the release number of a given release code name in a
  104355. \fBMAJOR.PATCH\fP format.
  104356. .sp
  104357. If the release name has not been given an assigned release number, the
  104358. function returns a string. If the release cannot be found, it returns
  104359. \fBNone\fP\&.
  104360. .INDENT 7.0
  104361. .TP
  104362. .B name
  104363. The release code name for which to find a release number.
  104364. .UNINDENT
  104365. .sp
  104366. CLI Example:
  104367. .INDENT 7.0
  104368. .INDENT 3.5
  104369. .sp
  104370. .nf
  104371. .ft C
  104372. salt \(aq*\(aq salt_version.get_release_number \(aqOxygen\(aq
  104373. .ft P
  104374. .fi
  104375. .UNINDENT
  104376. .UNINDENT
  104377. .UNINDENT
  104378. .INDENT 0.0
  104379. .TP
  104380. .B salt.modules.salt_version.greater_than(name)
  104381. Returns a boolean (True) if the minion\(aqs current
  104382. version code name is greater than the named version.
  104383. .INDENT 7.0
  104384. .TP
  104385. .B name
  104386. The release code name to check the version against.
  104387. .UNINDENT
  104388. .sp
  104389. CLI Example:
  104390. .INDENT 7.0
  104391. .INDENT 3.5
  104392. .sp
  104393. .nf
  104394. .ft C
  104395. salt \(aq*\(aq salt_version.greater_than \(aq3001\(aq
  104396. .ft P
  104397. .fi
  104398. .UNINDENT
  104399. .UNINDENT
  104400. .UNINDENT
  104401. .INDENT 0.0
  104402. .TP
  104403. .B salt.modules.salt_version.less_than(name)
  104404. Returns a boolean (True) if the minion\(aqs current
  104405. version code name is less than the named version.
  104406. .INDENT 7.0
  104407. .TP
  104408. .B name
  104409. The release code name to check the version against.
  104410. .UNINDENT
  104411. .sp
  104412. CLI Example:
  104413. .INDENT 7.0
  104414. .INDENT 3.5
  104415. .sp
  104416. .nf
  104417. .ft C
  104418. salt \(aq*\(aq salt_version.less_than \(aq3001\(aq
  104419. .ft P
  104420. .fi
  104421. .UNINDENT
  104422. .UNINDENT
  104423. .UNINDENT
  104424. .SS salt.modules.scp module
  104425. .SS SCP Module
  104426. .sp
  104427. New in version 2019.2.0.
  104428. .sp
  104429. Module to copy files via \fI\%SCP\fP
  104430. .INDENT 0.0
  104431. .TP
  104432. .B salt.modules.scp_mod.get(remote_path, local_path=u\(aq\(aq, recursive=False, preserve_times=False, **kwargs)
  104433. Transfer files and directories from remote host to the localhost of the
  104434. Minion.
  104435. .INDENT 7.0
  104436. .TP
  104437. .B remote_path
  104438. Path to retrieve from remote host. Since this is evaluated by scp on the
  104439. remote host, shell wildcards and environment variables may be used.
  104440. .TP
  104441. .B recursive: \fBFalse\fP
  104442. Transfer files and directories recursively.
  104443. .TP
  104444. .B preserve_times: \fBFalse\fP
  104445. Preserve \fBmtime\fP and \fBatime\fP of transferred files and directories.
  104446. .TP
  104447. .B hostname
  104448. The hostname of the remote device.
  104449. .TP
  104450. .B port: \fB22\fP
  104451. The port of the remote device.
  104452. .TP
  104453. .B username
  104454. The username required for SSH authentication on the device.
  104455. .TP
  104456. .B password
  104457. Used for password authentication. It is also used for private key
  104458. decryption if \fBpassphrase\fP is not given.
  104459. .TP
  104460. .B passphrase
  104461. Used for decrypting private keys.
  104462. .TP
  104463. .B pkey
  104464. An optional private key to use for authentication.
  104465. .TP
  104466. .B key_filename
  104467. The filename, or list of filenames, of optional private key(s) and/or
  104468. certificates to try for authentication.
  104469. .TP
  104470. .B timeout
  104471. An optional timeout (in seconds) for the TCP connect.
  104472. .TP
  104473. .B socket_timeout: \fB10\fP
  104474. The channel socket timeout in seconds.
  104475. .TP
  104476. .B buff_size: \fB16384\fP
  104477. The size of the SCP send buffer.
  104478. .TP
  104479. .B allow_agent: \fBTrue\fP
  104480. Set to \fBFalse\fP to disable connecting to the SSH agent.
  104481. .TP
  104482. .B look_for_keys: \fBTrue\fP
  104483. Set to \fBFalse\fP to disable searching for discoverable private key
  104484. files in \fB~/.ssh/\fP
  104485. .TP
  104486. .B banner_timeout
  104487. An optional timeout (in seconds) to wait for the SSH banner to be
  104488. presented.
  104489. .TP
  104490. .B auth_timeout
  104491. An optional timeout (in seconds) to wait for an authentication
  104492. response.
  104493. .TP
  104494. .B auto_add_policy: \fBFalse\fP
  104495. Automatically add the host to the \fBknown_hosts\fP\&.
  104496. .UNINDENT
  104497. .sp
  104498. CLI Example:
  104499. .INDENT 7.0
  104500. .INDENT 3.5
  104501. .sp
  104502. .nf
  104503. .ft C
  104504. salt \(aq*\(aq scp.get /var/tmp/file /tmp/file hostname=10.10.10.1 auto_add_policy=True
  104505. .ft P
  104506. .fi
  104507. .UNINDENT
  104508. .UNINDENT
  104509. .UNINDENT
  104510. .INDENT 0.0
  104511. .TP
  104512. .B salt.modules.scp_mod.put(files, remote_path=None, recursive=False, preserve_times=False, saltenv=u\(aqbase\(aq, **kwargs)
  104513. Transfer files and directories to remote host.
  104514. .INDENT 7.0
  104515. .TP
  104516. .B files
  104517. A single path or a list of paths to be transferred.
  104518. .TP
  104519. .B remote_path
  104520. The path on the remote device where to store the files.
  104521. .TP
  104522. .B recursive: \fBTrue\fP
  104523. Transfer files and directories recursively.
  104524. .TP
  104525. .B preserve_times: \fBFalse\fP
  104526. Preserve \fBmtime\fP and \fBatime\fP of transferred files and directories.
  104527. .TP
  104528. .B hostname
  104529. The hostname of the remote device.
  104530. .TP
  104531. .B port: \fB22\fP
  104532. The port of the remote device.
  104533. .TP
  104534. .B username
  104535. The username required for SSH authentication on the device.
  104536. .TP
  104537. .B password
  104538. Used for password authentication. It is also used for private key
  104539. decryption if \fBpassphrase\fP is not given.
  104540. .TP
  104541. .B passphrase
  104542. Used for decrypting private keys.
  104543. .TP
  104544. .B pkey
  104545. An optional private key to use for authentication.
  104546. .TP
  104547. .B key_filename
  104548. The filename, or list of filenames, of optional private key(s) and/or
  104549. certificates to try for authentication.
  104550. .TP
  104551. .B timeout
  104552. An optional timeout (in seconds) for the TCP connect.
  104553. .TP
  104554. .B socket_timeout: \fB10\fP
  104555. The channel socket timeout in seconds.
  104556. .TP
  104557. .B buff_size: \fB16384\fP
  104558. The size of the SCP send buffer.
  104559. .TP
  104560. .B allow_agent: \fBTrue\fP
  104561. Set to \fBFalse\fP to disable connecting to the SSH agent.
  104562. .TP
  104563. .B look_for_keys: \fBTrue\fP
  104564. Set to \fBFalse\fP to disable searching for discoverable private key
  104565. files in \fB~/.ssh/\fP
  104566. .TP
  104567. .B banner_timeout
  104568. An optional timeout (in seconds) to wait for the SSH banner to be
  104569. presented.
  104570. .TP
  104571. .B auth_timeout
  104572. An optional timeout (in seconds) to wait for an authentication
  104573. response.
  104574. .TP
  104575. .B auto_add_policy: \fBFalse\fP
  104576. Automatically add the host to the \fBknown_hosts\fP\&.
  104577. .UNINDENT
  104578. .sp
  104579. CLI Example:
  104580. .INDENT 7.0
  104581. .INDENT 3.5
  104582. .sp
  104583. .nf
  104584. .ft C
  104585. salt \(aq*\(aq scp.put /path/to/file /var/tmp/file hostname=server1 auto_add_policy=True
  104586. .ft P
  104587. .fi
  104588. .UNINDENT
  104589. .UNINDENT
  104590. .UNINDENT
  104591. .SS salt.modules.sensehat
  104592. .sp
  104593. Module for controlling the LED matrix or reading environment data on the SenseHat of a Raspberry Pi.
  104594. .sp
  104595. New in version 2017.7.0.
  104596. .INDENT 0.0
  104597. .TP
  104598. .B maintainer
  104599. Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>, Joachim Werner <\fI\%joe@suse.com\fP>
  104600. .TP
  104601. .B maturity
  104602. new
  104603. .TP
  104604. .B depends
  104605. sense_hat Python module
  104606. .UNINDENT
  104607. .sp
  104608. The rotation of the Pi can be specified in a pillar.
  104609. This is useful if the Pi is used upside down or sideways to correct the orientation of the image being shown.
  104610. .sp
  104611. Example:
  104612. .INDENT 0.0
  104613. .INDENT 3.5
  104614. .sp
  104615. .nf
  104616. .ft C
  104617. sensehat:
  104618. rotation: 90
  104619. .ft P
  104620. .fi
  104621. .UNINDENT
  104622. .UNINDENT
  104623. .INDENT 0.0
  104624. .TP
  104625. .B salt.modules.sensehat.clear(color=None)
  104626. Sets the LED matrix to a single color or turns all LEDs off.
  104627. .sp
  104628. CLI Example:
  104629. .INDENT 7.0
  104630. .INDENT 3.5
  104631. .sp
  104632. .nf
  104633. .ft C
  104634. salt \(aqraspberry\(aq sensehat.clear
  104635. salt \(aqraspberry\(aq sensehat.clear \(aq[255, 0, 0]\(aq
  104636. .ft P
  104637. .fi
  104638. .UNINDENT
  104639. .UNINDENT
  104640. .UNINDENT
  104641. .INDENT 0.0
  104642. .TP
  104643. .B salt.modules.sensehat.get_humidity()
  104644. Get the percentage of relative humidity from the humidity sensor.
  104645. .UNINDENT
  104646. .INDENT 0.0
  104647. .TP
  104648. .B salt.modules.sensehat.get_pixel(x, y)
  104649. Returns the color of a single pixel on the LED matrix.
  104650. .INDENT 7.0
  104651. .TP
  104652. .B x
  104653. The x coordinate of the pixel. Ranges from 0 on the left to 7 on the right.
  104654. .TP
  104655. .B y
  104656. The y coordinate of the pixel. Ranges from 0 at the top to 7 at the bottom.
  104657. .UNINDENT
  104658. .sp
  104659. \fBNOTE:\fP
  104660. .INDENT 7.0
  104661. .INDENT 3.5
  104662. Please read the note for \fBget_pixels\fP
  104663. .UNINDENT
  104664. .UNINDENT
  104665. .UNINDENT
  104666. .INDENT 0.0
  104667. .TP
  104668. .B salt.modules.sensehat.get_pixels()
  104669. Returns a list of 64 smaller lists of \fB[R, G, B]\fP pixels representing the
  104670. the currently displayed image on the LED matrix.
  104671. .sp
  104672. \fBNOTE:\fP
  104673. .INDENT 7.0
  104674. .INDENT 3.5
  104675. When using \fBset_pixels\fP the pixel values can sometimes change when
  104676. you read them again using \fBget_pixels\fP\&. This is because we specify each
  104677. pixel element as 8 bit numbers (0 to 255) but when they\(aqre passed into the
  104678. Linux frame buffer for the LED matrix the numbers are bit shifted down
  104679. to fit into RGB 565. 5 bits for red, 6 bits for green and 5 bits for blue.
  104680. The loss of binary precision when performing this conversion
  104681. (3 bits lost for red, 2 for green and 3 for blue) accounts for the
  104682. discrepancies you see.
  104683. .sp
  104684. The \fBget_pixels\fP method provides an accurate representation of how the
  104685. pixels end up in frame buffer memory after you have called \fBset_pixels\fP\&.
  104686. .UNINDENT
  104687. .UNINDENT
  104688. .UNINDENT
  104689. .INDENT 0.0
  104690. .TP
  104691. .B salt.modules.sensehat.get_pressure()
  104692. Gets the current pressure in Millibars from the pressure sensor.
  104693. .UNINDENT
  104694. .INDENT 0.0
  104695. .TP
  104696. .B salt.modules.sensehat.get_temperature()
  104697. Gets the temperature in degrees Celsius from the humidity sensor.
  104698. Equivalent to calling \fBget_temperature_from_humidity\fP\&.
  104699. .sp
  104700. If you get strange results try using \fBget_temperature_from_pressure\fP\&.
  104701. .UNINDENT
  104702. .INDENT 0.0
  104703. .TP
  104704. .B salt.modules.sensehat.get_temperature_from_humidity()
  104705. Gets the temperature in degrees Celsius from the humidity sensor.
  104706. .UNINDENT
  104707. .INDENT 0.0
  104708. .TP
  104709. .B salt.modules.sensehat.get_temperature_from_pressure()
  104710. Gets the temperature in degrees Celsius from the pressure sensor.
  104711. .UNINDENT
  104712. .INDENT 0.0
  104713. .TP
  104714. .B salt.modules.sensehat.low_light(low_light=True)
  104715. Sets the LED matrix to low light mode. Useful in a dark environment.
  104716. .sp
  104717. CLI Example:
  104718. .INDENT 7.0
  104719. .INDENT 3.5
  104720. .sp
  104721. .nf
  104722. .ft C
  104723. salt \(aqraspberry\(aq sensehat.low_light
  104724. salt \(aqraspberry\(aq sensehat.low_light False
  104725. .ft P
  104726. .fi
  104727. .UNINDENT
  104728. .UNINDENT
  104729. .UNINDENT
  104730. .INDENT 0.0
  104731. .TP
  104732. .B salt.modules.sensehat.set_pixel(x, y, color)
  104733. Sets a single pixel on the LED matrix to a specified color.
  104734. .INDENT 7.0
  104735. .TP
  104736. .B x
  104737. The x coordinate of the pixel. Ranges from 0 on the left to 7 on the right.
  104738. .TP
  104739. .B y
  104740. The y coordinate of the pixel. Ranges from 0 at the top to 7 at the bottom.
  104741. .TP
  104742. .B color
  104743. The new color of the pixel as a list of \fB[R, G, B]\fP values.
  104744. .UNINDENT
  104745. .sp
  104746. CLI Example:
  104747. .INDENT 7.0
  104748. .INDENT 3.5
  104749. .sp
  104750. .nf
  104751. .ft C
  104752. salt \(aqraspberry\(aq sensehat.set_pixel 0 0 \(aq[255, 0, 0]\(aq
  104753. .ft P
  104754. .fi
  104755. .UNINDENT
  104756. .UNINDENT
  104757. .UNINDENT
  104758. .INDENT 0.0
  104759. .TP
  104760. .B salt.modules.sensehat.set_pixels(pixels)
  104761. Sets the entire LED matrix based on a list of 64 pixel values
  104762. .INDENT 7.0
  104763. .TP
  104764. .B pixels
  104765. A list of 64 \fB[R, G, B]\fP color values.
  104766. .UNINDENT
  104767. .UNINDENT
  104768. .INDENT 0.0
  104769. .TP
  104770. .B salt.modules.sensehat.show_image(image)
  104771. Displays an 8 x 8 image on the LED matrix.
  104772. .INDENT 7.0
  104773. .TP
  104774. .B image
  104775. The path to the image to display. The image must be 8 x 8 pixels in size.
  104776. .UNINDENT
  104777. .sp
  104778. CLI Example:
  104779. .INDENT 7.0
  104780. .INDENT 3.5
  104781. .sp
  104782. .nf
  104783. .ft C
  104784. salt \(aqraspberry\(aq sensehat.show_image /tmp/my_image.png
  104785. .ft P
  104786. .fi
  104787. .UNINDENT
  104788. .UNINDENT
  104789. .UNINDENT
  104790. .INDENT 0.0
  104791. .TP
  104792. .B salt.modules.sensehat.show_letter(letter, text_color=None, back_color=None)
  104793. Displays a single letter on the LED matrix.
  104794. .INDENT 7.0
  104795. .TP
  104796. .B letter
  104797. The letter to display
  104798. .TP
  104799. .B text_color
  104800. The color in which the letter is shown. Defaults to \(aq[255, 255, 255]\(aq (white).
  104801. .TP
  104802. .B back_color
  104803. The background color of the display. Defaults to \(aq[0, 0, 0]\(aq (black).
  104804. .UNINDENT
  104805. .sp
  104806. CLI Example:
  104807. .INDENT 7.0
  104808. .INDENT 3.5
  104809. .sp
  104810. .nf
  104811. .ft C
  104812. salt \(aqraspberry\(aq sensehat.show_letter O
  104813. salt \(aqraspberry\(aq sensehat.show_letter X \(aq[255, 0, 0]\(aq
  104814. salt \(aqraspberry\(aq sensehat.show_letter B \(aq[0, 0, 255]\(aq \(aq[255, 255, 0]\(aq
  104815. .ft P
  104816. .fi
  104817. .UNINDENT
  104818. .UNINDENT
  104819. .UNINDENT
  104820. .INDENT 0.0
  104821. .TP
  104822. .B salt.modules.sensehat.show_message(message, msg_type=None, text_color=None, back_color=None, scroll_speed=0.1)
  104823. Displays a message on the LED matrix.
  104824. .INDENT 7.0
  104825. .TP
  104826. .B message
  104827. The message to display
  104828. .TP
  104829. .B msg_type
  104830. The type of the message. Changes the appearance of the message.
  104831. .sp
  104832. Available types are:
  104833. .INDENT 7.0
  104834. .INDENT 3.5
  104835. .sp
  104836. .nf
  104837. .ft C
  104838. error: red text
  104839. warning: orange text
  104840. success: green text
  104841. info: blue text
  104842. .ft P
  104843. .fi
  104844. .UNINDENT
  104845. .UNINDENT
  104846. .TP
  104847. .B scroll_speed
  104848. The speed at which the message moves over the LED matrix.
  104849. This value represents the time paused for between shifting the text
  104850. to the left by one column of pixels. Defaults to \(aq0.1\(aq.
  104851. .TP
  104852. .B text_color
  104853. The color in which the message is shown. Defaults to \(aq[255, 255, 255]\(aq (white).
  104854. .TP
  104855. .B back_color
  104856. The background color of the display. Defaults to \(aq[0, 0, 0]\(aq (black).
  104857. .UNINDENT
  104858. .sp
  104859. CLI Example:
  104860. .INDENT 7.0
  104861. .INDENT 3.5
  104862. .sp
  104863. .nf
  104864. .ft C
  104865. salt \(aqraspberry\(aq sensehat.show_message \(aqStatus ok\(aq
  104866. salt \(aqraspberry\(aq sensehat.show_message \(aqSomething went wrong\(aq error
  104867. salt \(aqraspberry\(aq sensehat.show_message \(aqRed\(aq text_color=\(aq[255, 0, 0]\(aq
  104868. salt \(aqraspberry\(aq sensehat.show_message \(aqHello world\(aq None \(aq[0, 0, 255]\(aq \(aq[255, 255, 0]\(aq 0.2
  104869. .ft P
  104870. .fi
  104871. .UNINDENT
  104872. .UNINDENT
  104873. .UNINDENT
  104874. .SS salt.modules.servicenow module
  104875. .sp
  104876. Module for execution of ServiceNow CI (configuration items)
  104877. .sp
  104878. New in version 2016.11.0.
  104879. .INDENT 0.0
  104880. .TP
  104881. .B depends
  104882. servicenow_rest python module
  104883. .TP
  104884. .B configuration
  104885. Configure this module by specifying the name of a configuration
  104886. profile in the minion config, minion pillar, or master config. The module
  104887. will use the \(aqservicenow\(aq key by default, if defined.
  104888. .sp
  104889. For example:
  104890. .INDENT 7.0
  104891. .INDENT 3.5
  104892. .sp
  104893. .nf
  104894. .ft C
  104895. servicenow:
  104896. instance_name: \(aq\(aq
  104897. username: \(aq\(aq
  104898. password: \(aq\(aq
  104899. .ft P
  104900. .fi
  104901. .UNINDENT
  104902. .UNINDENT
  104903. .UNINDENT
  104904. .INDENT 0.0
  104905. .TP
  104906. .B salt.modules.servicenow.delete_record(table, sys_id)
  104907. Delete an existing record
  104908. .INDENT 7.0
  104909. .TP
  104910. .B Parameters
  104911. .INDENT 7.0
  104912. .IP \(bu 2
  104913. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104914. .IP \(bu 2
  104915. \fBsys_id\fP (\fBstr\fP) \-\- The unique ID of the record
  104916. .UNINDENT
  104917. .UNINDENT
  104918. .sp
  104919. CLI Example:
  104920. .INDENT 7.0
  104921. .INDENT 3.5
  104922. .sp
  104923. .nf
  104924. .ft C
  104925. salt myminion servicenow.delete_record sys_computer 2134566
  104926. .ft P
  104927. .fi
  104928. .UNINDENT
  104929. .UNINDENT
  104930. .UNINDENT
  104931. .INDENT 0.0
  104932. .TP
  104933. .B salt.modules.servicenow.non_structured_query(table, query=None, **kwargs)
  104934. Run a non\-structed (not a dict) query on a servicenow table.
  104935. See \fI\%http://wiki.servicenow.com/index.php?title=Encoded_Query_Strings#gsc.tab=0\fP
  104936. for help on constructing a non\-structured query string.
  104937. .INDENT 7.0
  104938. .TP
  104939. .B Parameters
  104940. .INDENT 7.0
  104941. .IP \(bu 2
  104942. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104943. .IP \(bu 2
  104944. \fBquery\fP (\fBstr\fP) \-\- The query to run (or use keyword arguments to filter data)
  104945. .UNINDENT
  104946. .UNINDENT
  104947. .sp
  104948. CLI Example:
  104949. .INDENT 7.0
  104950. .INDENT 3.5
  104951. .sp
  104952. .nf
  104953. .ft C
  104954. salt myminion servicenow.non_structured_query sys_computer \(aqrole=web\(aq
  104955. salt myminion servicenow.non_structured_query sys_computer role=web type=computer
  104956. .ft P
  104957. .fi
  104958. .UNINDENT
  104959. .UNINDENT
  104960. .UNINDENT
  104961. .INDENT 0.0
  104962. .TP
  104963. .B salt.modules.servicenow.set_change_request_state(change_id, state=u\(aqapproved\(aq)
  104964. Set the approval state of a change request/record
  104965. .INDENT 7.0
  104966. .TP
  104967. .B Parameters
  104968. .INDENT 7.0
  104969. .IP \(bu 2
  104970. \fBchange_id\fP (\fBstr\fP) \-\- The ID of the change request, e.g. CHG123545
  104971. .IP \(bu 2
  104972. \fBstate\fP (\fBstr\fP) \-\- The target state, e.g. approved
  104973. .UNINDENT
  104974. .UNINDENT
  104975. .sp
  104976. CLI Example:
  104977. .INDENT 7.0
  104978. .INDENT 3.5
  104979. .sp
  104980. .nf
  104981. .ft C
  104982. salt myminion servicenow.set_change_request_state CHG000123 declined
  104983. salt myminion servicenow.set_change_request_state CHG000123 approved
  104984. .ft P
  104985. .fi
  104986. .UNINDENT
  104987. .UNINDENT
  104988. .UNINDENT
  104989. .INDENT 0.0
  104990. .TP
  104991. .B salt.modules.servicenow.update_record_field(table, sys_id, field, value)
  104992. Update the value of a record\(aqs field in a servicenow table
  104993. .INDENT 7.0
  104994. .TP
  104995. .B Parameters
  104996. .INDENT 7.0
  104997. .IP \(bu 2
  104998. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104999. .IP \(bu 2
  105000. \fBsys_id\fP (\fBstr\fP) \-\- The unique ID of the record
  105001. .IP \(bu 2
  105002. \fBfield\fP (\fBstr\fP) \-\- The new value
  105003. .IP \(bu 2
  105004. \fBvalue\fP (\fBstr\fP) \-\- The new value
  105005. .UNINDENT
  105006. .UNINDENT
  105007. .sp
  105008. CLI Example:
  105009. .INDENT 7.0
  105010. .INDENT 3.5
  105011. .sp
  105012. .nf
  105013. .ft C
  105014. salt myminion servicenow.update_record_field sys_user 2348234 first_name jimmy
  105015. .ft P
  105016. .fi
  105017. .UNINDENT
  105018. .UNINDENT
  105019. .UNINDENT
  105020. .SS salt.modules.smf_service
  105021. .sp
  105022. Service support for Solaris 10 and 11, should work with other systems
  105023. that use SMF also. (e.g. SmartOS)
  105024. .sp
  105025. \fBIMPORTANT:\fP
  105026. .INDENT 0.0
  105027. .INDENT 3.5
  105028. If you feel that Salt should be using this module to manage services on a
  105029. minion, and it is using a different module (or gives an error similar to
  105030. \fI\(aqservice.start\(aq is not available\fP), see here\&.
  105031. .UNINDENT
  105032. .UNINDENT
  105033. .INDENT 0.0
  105034. .TP
  105035. .B salt.modules.smf_service.available(name)
  105036. Returns \fBTrue\fP if the specified service is available, otherwise returns
  105037. \fBFalse\fP\&.
  105038. .sp
  105039. We look up the name with the svcs command to get back the FMRI
  105040. This allows users to use simpler service names
  105041. .sp
  105042. CLI Example:
  105043. .INDENT 7.0
  105044. .INDENT 3.5
  105045. .sp
  105046. .nf
  105047. .ft C
  105048. salt \(aq*\(aq service.available net\-snmp
  105049. .ft P
  105050. .fi
  105051. .UNINDENT
  105052. .UNINDENT
  105053. .UNINDENT
  105054. .INDENT 0.0
  105055. .TP
  105056. .B salt.modules.smf_service.disable(name, **kwargs)
  105057. Disable the named service to start at boot
  105058. .sp
  105059. CLI Example:
  105060. .INDENT 7.0
  105061. .INDENT 3.5
  105062. .sp
  105063. .nf
  105064. .ft C
  105065. salt \(aq*\(aq service.disable <service name>
  105066. .ft P
  105067. .fi
  105068. .UNINDENT
  105069. .UNINDENT
  105070. .UNINDENT
  105071. .INDENT 0.0
  105072. .TP
  105073. .B salt.modules.smf_service.disabled(name)
  105074. Check to see if the named service is disabled to start on boot
  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.disabled <service name>
  105083. .ft P
  105084. .fi
  105085. .UNINDENT
  105086. .UNINDENT
  105087. .UNINDENT
  105088. .INDENT 0.0
  105089. .TP
  105090. .B salt.modules.smf_service.enable(name, **kwargs)
  105091. Enable the named service to start at boot
  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.enable <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.enabled(name, **kwargs)
  105108. Check to see if the named service is enabled to start on boot
  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.enabled <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.get_all()
  105125. Return all installed services
  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.get_all
  105134. .ft P
  105135. .fi
  105136. .UNINDENT
  105137. .UNINDENT
  105138. .UNINDENT
  105139. .INDENT 0.0
  105140. .TP
  105141. .B salt.modules.smf_service.get_disabled()
  105142. Return the disabled services
  105143. .sp
  105144. CLI Example:
  105145. .INDENT 7.0
  105146. .INDENT 3.5
  105147. .sp
  105148. .nf
  105149. .ft C
  105150. salt \(aq*\(aq service.get_disabled
  105151. .ft P
  105152. .fi
  105153. .UNINDENT
  105154. .UNINDENT
  105155. .UNINDENT
  105156. .INDENT 0.0
  105157. .TP
  105158. .B salt.modules.smf_service.get_enabled()
  105159. Return the enabled services
  105160. .sp
  105161. CLI Example:
  105162. .INDENT 7.0
  105163. .INDENT 3.5
  105164. .sp
  105165. .nf
  105166. .ft C
  105167. salt \(aq*\(aq service.get_enabled
  105168. .ft P
  105169. .fi
  105170. .UNINDENT
  105171. .UNINDENT
  105172. .UNINDENT
  105173. .INDENT 0.0
  105174. .TP
  105175. .B salt.modules.smf_service.get_running()
  105176. Return the running services
  105177. .sp
  105178. CLI Example:
  105179. .INDENT 7.0
  105180. .INDENT 3.5
  105181. .sp
  105182. .nf
  105183. .ft C
  105184. salt \(aq*\(aq service.get_running
  105185. .ft P
  105186. .fi
  105187. .UNINDENT
  105188. .UNINDENT
  105189. .UNINDENT
  105190. .INDENT 0.0
  105191. .TP
  105192. .B salt.modules.smf_service.get_stopped()
  105193. Return the stopped services
  105194. .sp
  105195. CLI Example:
  105196. .INDENT 7.0
  105197. .INDENT 3.5
  105198. .sp
  105199. .nf
  105200. .ft C
  105201. salt \(aq*\(aq service.get_stopped
  105202. .ft P
  105203. .fi
  105204. .UNINDENT
  105205. .UNINDENT
  105206. .UNINDENT
  105207. .INDENT 0.0
  105208. .TP
  105209. .B salt.modules.smf_service.missing(name)
  105210. The inverse of service.available.
  105211. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  105212. \fBFalse\fP\&.
  105213. .sp
  105214. CLI Example:
  105215. .INDENT 7.0
  105216. .INDENT 3.5
  105217. .sp
  105218. .nf
  105219. .ft C
  105220. salt \(aq*\(aq service.missing net\-snmp
  105221. .ft P
  105222. .fi
  105223. .UNINDENT
  105224. .UNINDENT
  105225. .UNINDENT
  105226. .INDENT 0.0
  105227. .TP
  105228. .B salt.modules.smf_service.reload_(name)
  105229. Reload the named service
  105230. .sp
  105231. CLI Example:
  105232. .INDENT 7.0
  105233. .INDENT 3.5
  105234. .sp
  105235. .nf
  105236. .ft C
  105237. salt \(aq*\(aq service.reload <service name>
  105238. .ft P
  105239. .fi
  105240. .UNINDENT
  105241. .UNINDENT
  105242. .UNINDENT
  105243. .INDENT 0.0
  105244. .TP
  105245. .B salt.modules.smf_service.restart(name)
  105246. Restart the named service
  105247. .sp
  105248. CLI Example:
  105249. .INDENT 7.0
  105250. .INDENT 3.5
  105251. .sp
  105252. .nf
  105253. .ft C
  105254. salt \(aq*\(aq service.restart <service name>
  105255. .ft P
  105256. .fi
  105257. .UNINDENT
  105258. .UNINDENT
  105259. .UNINDENT
  105260. .INDENT 0.0
  105261. .TP
  105262. .B salt.modules.smf_service.start(name)
  105263. Start the specified service
  105264. .sp
  105265. CLI Example:
  105266. .INDENT 7.0
  105267. .INDENT 3.5
  105268. .sp
  105269. .nf
  105270. .ft C
  105271. salt \(aq*\(aq service.start <service name>
  105272. .ft P
  105273. .fi
  105274. .UNINDENT
  105275. .UNINDENT
  105276. .UNINDENT
  105277. .INDENT 0.0
  105278. .TP
  105279. .B salt.modules.smf_service.status(name, sig=None)
  105280. Return the status for a service.
  105281. If the name contains globbing, a dict mapping service name to True/False
  105282. values is returned.
  105283. .sp
  105284. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  105285. .INDENT 7.0
  105286. .TP
  105287. .B Parameters
  105288. .INDENT 7.0
  105289. .IP \(bu 2
  105290. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  105291. .IP \(bu 2
  105292. \fBsig\fP (\fI\%str\fP) \-\- Not implemented
  105293. .UNINDENT
  105294. .TP
  105295. .B Returns
  105296. True if running, False otherwise
  105297. dict: Maps service name to True if running, False otherwise
  105298. .TP
  105299. .B Return type
  105300. \fI\%bool\fP
  105301. .UNINDENT
  105302. .sp
  105303. CLI Example:
  105304. .INDENT 7.0
  105305. .INDENT 3.5
  105306. .sp
  105307. .nf
  105308. .ft C
  105309. salt \(aq*\(aq service.status <service name>
  105310. .ft P
  105311. .fi
  105312. .UNINDENT
  105313. .UNINDENT
  105314. .UNINDENT
  105315. .INDENT 0.0
  105316. .TP
  105317. .B salt.modules.smf_service.stop(name)
  105318. Stop the specified service
  105319. .sp
  105320. CLI Example:
  105321. .INDENT 7.0
  105322. .INDENT 3.5
  105323. .sp
  105324. .nf
  105325. .ft C
  105326. salt \(aq*\(aq service.stop <service name>
  105327. .ft P
  105328. .fi
  105329. .UNINDENT
  105330. .UNINDENT
  105331. .UNINDENT
  105332. .SS salt.modules.splunk
  105333. .sp
  105334. Module for interop with the Splunk API
  105335. .sp
  105336. New in version 2016.3.0..
  105337. .INDENT 0.0
  105338. .TP
  105339. .B depends
  105340. .INDENT 7.0
  105341. .IP \(bu 2
  105342. splunk\-sdk python module
  105343. .UNINDENT
  105344. .TP
  105345. .B configuration
  105346. Configure this module by specifying the name of a configuration
  105347. profile in the minion config, minion pillar, or master config. The module
  105348. will use the \(aqsplunk\(aq key by default, if defined.
  105349. .sp
  105350. For example:
  105351. .INDENT 7.0
  105352. .INDENT 3.5
  105353. .sp
  105354. .nf
  105355. .ft C
  105356. splunk:
  105357. username: alice
  105358. password: abc123
  105359. host: example.splunkcloud.com
  105360. port: 8080
  105361. .ft P
  105362. .fi
  105363. .UNINDENT
  105364. .UNINDENT
  105365. .UNINDENT
  105366. .INDENT 0.0
  105367. .TP
  105368. .B salt.modules.splunk.create_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105369. create a splunk user by name/email
  105370. .sp
  105371. CLI Example:
  105372. .INDENT 7.0
  105373. .INDENT 3.5
  105374. salt myminion splunk.create_user \fI\%user@example.com\fP roles=[\(aquser\(aq] realname="Test User" name=testuser
  105375. .UNINDENT
  105376. .UNINDENT
  105377. .UNINDENT
  105378. .INDENT 0.0
  105379. .TP
  105380. .B salt.modules.splunk.delete_user(email, profile=u\(aqsplunk\(aq)
  105381. Delete a splunk user by email
  105382. .sp
  105383. CLI Example:
  105384. .INDENT 7.0
  105385. .INDENT 3.5
  105386. salt myminion splunk_user.delete \fI\%\(aquser@example.com\fP\(aq
  105387. .UNINDENT
  105388. .UNINDENT
  105389. .UNINDENT
  105390. .INDENT 0.0
  105391. .TP
  105392. .B salt.modules.splunk.get_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105393. Get a splunk user by name/email
  105394. .sp
  105395. CLI Example:
  105396. .INDENT 7.0
  105397. .INDENT 3.5
  105398. salt myminion splunk.get_user \fI\%\(aquser@example.com\fP\(aq user_details=false
  105399. salt myminion splunk.get_user \fI\%\(aquser@example.com\fP\(aq user_details=true
  105400. .UNINDENT
  105401. .UNINDENT
  105402. .UNINDENT
  105403. .INDENT 0.0
  105404. .TP
  105405. .B salt.modules.splunk.list_users(profile=u\(aqsplunk\(aq)
  105406. List all users in the splunk DB
  105407. .sp
  105408. CLI Example:
  105409. .INDENT 7.0
  105410. .INDENT 3.5
  105411. salt myminion splunk.list_users
  105412. .UNINDENT
  105413. .UNINDENT
  105414. .UNINDENT
  105415. .INDENT 0.0
  105416. .TP
  105417. .B salt.modules.splunk.update_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105418. Create a splunk user by email
  105419. .sp
  105420. CLI Example:
  105421. .INDENT 7.0
  105422. .INDENT 3.5
  105423. salt myminion splunk.update_user \fI\%example@domain.com\fP roles=[\(aquser\(aq] realname="Test User"
  105424. .UNINDENT
  105425. .UNINDENT
  105426. .UNINDENT
  105427. .SS salt.modules.sqlite3
  105428. .sp
  105429. Support for SQLite3
  105430. .INDENT 0.0
  105431. .TP
  105432. .B salt.modules.sqlite3.fetch(db=None, sql=None)
  105433. Retrieve data from an sqlite3 db (returns all rows, be careful!)
  105434. .sp
  105435. CLI Example:
  105436. .INDENT 7.0
  105437. .INDENT 3.5
  105438. .sp
  105439. .nf
  105440. .ft C
  105441. salt \(aq*\(aq sqlite3.fetch /root/test.db \(aqSELECT * FROM test;\(aq
  105442. .ft P
  105443. .fi
  105444. .UNINDENT
  105445. .UNINDENT
  105446. .UNINDENT
  105447. .INDENT 0.0
  105448. .TP
  105449. .B salt.modules.sqlite3.indexes(db=None)
  105450. Show all indices in the database, for people with poor spelling skills
  105451. .sp
  105452. CLI Example:
  105453. .INDENT 7.0
  105454. .INDENT 3.5
  105455. .sp
  105456. .nf
  105457. .ft C
  105458. salt \(aq*\(aq sqlite3.indexes /root/test.db
  105459. .ft P
  105460. .fi
  105461. .UNINDENT
  105462. .UNINDENT
  105463. .UNINDENT
  105464. .INDENT 0.0
  105465. .TP
  105466. .B salt.modules.sqlite3.indices(db=None)
  105467. Show all indices in the database
  105468. .sp
  105469. CLI Example:
  105470. .INDENT 7.0
  105471. .INDENT 3.5
  105472. .sp
  105473. .nf
  105474. .ft C
  105475. salt \(aq*\(aq sqlite3.indices /root/test.db
  105476. .ft P
  105477. .fi
  105478. .UNINDENT
  105479. .UNINDENT
  105480. .UNINDENT
  105481. .INDENT 0.0
  105482. .TP
  105483. .B salt.modules.sqlite3.modify(db=None, sql=None)
  105484. Issue an SQL query to sqlite3 (with no return data), usually used
  105485. to modify the database in some way (insert, delete, create, etc)
  105486. .sp
  105487. CLI Example:
  105488. .INDENT 7.0
  105489. .INDENT 3.5
  105490. .sp
  105491. .nf
  105492. .ft C
  105493. salt \(aq*\(aq sqlite3.modify /root/test.db \(aqCREATE TABLE test(id INT, testdata TEXT);\(aq
  105494. .ft P
  105495. .fi
  105496. .UNINDENT
  105497. .UNINDENT
  105498. .UNINDENT
  105499. .INDENT 0.0
  105500. .TP
  105501. .B salt.modules.sqlite3.sqlite_version()
  105502. Return version of sqlite
  105503. .sp
  105504. CLI Example:
  105505. .INDENT 7.0
  105506. .INDENT 3.5
  105507. .sp
  105508. .nf
  105509. .ft C
  105510. salt \(aq*\(aq sqlite3.sqlite_version
  105511. .ft P
  105512. .fi
  105513. .UNINDENT
  105514. .UNINDENT
  105515. .UNINDENT
  105516. .INDENT 0.0
  105517. .TP
  105518. .B salt.modules.sqlite3.tables(db=None)
  105519. Show all tables in the database
  105520. .sp
  105521. CLI Example:
  105522. .INDENT 7.0
  105523. .INDENT 3.5
  105524. .sp
  105525. .nf
  105526. .ft C
  105527. salt \(aq*\(aq sqlite3.tables /root/test.db
  105528. .ft P
  105529. .fi
  105530. .UNINDENT
  105531. .UNINDENT
  105532. .UNINDENT
  105533. .INDENT 0.0
  105534. .TP
  105535. .B salt.modules.sqlite3.version()
  105536. Return version of pysqlite
  105537. .sp
  105538. CLI Example:
  105539. .INDENT 7.0
  105540. .INDENT 3.5
  105541. .sp
  105542. .nf
  105543. .ft C
  105544. salt \(aq*\(aq sqlite3.version
  105545. .ft P
  105546. .fi
  105547. .UNINDENT
  105548. .UNINDENT
  105549. .UNINDENT
  105550. .SS salt.modules.statuspage
  105551. .SS StatusPage
  105552. .sp
  105553. Handle requests for the \fI\%StatusPage\fP \fI\%API\fP\&.
  105554. .sp
  105555. In the minion configuration file, the following block is required:
  105556. .INDENT 0.0
  105557. .INDENT 3.5
  105558. .sp
  105559. .nf
  105560. .ft C
  105561. statuspage:
  105562. api_key: <API_KEY>
  105563. page_id: <PAGE_ID>
  105564. .ft P
  105565. .fi
  105566. .UNINDENT
  105567. .UNINDENT
  105568. .sp
  105569. New in version 2017.7.0.
  105570. .INDENT 0.0
  105571. .TP
  105572. .B salt.modules.statuspage.create(endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  105573. Insert a new entry under a specific endpoint.
  105574. .INDENT 7.0
  105575. .TP
  105576. .B endpoint: incidents
  105577. Insert under this specific endpoint.
  105578. .TP
  105579. .B page_id
  105580. Page ID. Can also be specified in the config file.
  105581. .TP
  105582. .B api_key
  105583. API key. Can also be specified in the config file.
  105584. .TP
  105585. .B api_version: 1
  105586. API version. Can also be specified in the config file.
  105587. .TP
  105588. .B api_url
  105589. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105590. .UNINDENT
  105591. .sp
  105592. CLI Example:
  105593. .INDENT 7.0
  105594. .INDENT 3.5
  105595. .sp
  105596. .nf
  105597. .ft C
  105598. salt \(aqminion\(aq statuspage.create endpoint=\(aqcomponents\(aq name=\(aqmy component\(aq group_id=\(aq993vgplshj12\(aq
  105599. .ft P
  105600. .fi
  105601. .UNINDENT
  105602. .UNINDENT
  105603. .sp
  105604. Example output:
  105605. .INDENT 7.0
  105606. .INDENT 3.5
  105607. .sp
  105608. .nf
  105609. .ft C
  105610. minion:
  105611. \-\-\-\-\-\-\-\-\-\-
  105612. comment:
  105613. out:
  105614. \-\-\-\-\-\-\-\-\-\-
  105615. created_at:
  105616. 2017\-01\-05T19:35:27.135Z
  105617. description:
  105618. None
  105619. group_id:
  105620. 993vgplshj12
  105621. id:
  105622. mjkmtt5lhdgc
  105623. name:
  105624. my component
  105625. page_id:
  105626. ksdhgfyiuhaa
  105627. position:
  105628. 7
  105629. status:
  105630. operational
  105631. updated_at:
  105632. 2017\-01\-05T19:35:27.135Z
  105633. result:
  105634. True
  105635. .ft P
  105636. .fi
  105637. .UNINDENT
  105638. .UNINDENT
  105639. .UNINDENT
  105640. .INDENT 0.0
  105641. .TP
  105642. .B salt.modules.statuspage.delete(endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None)
  105643. Remove an entry from an endpoint.
  105644. .INDENT 7.0
  105645. .TP
  105646. .B endpoint: incidents
  105647. Request a specific endpoint.
  105648. .TP
  105649. .B page_id
  105650. Page ID. Can also be specified in the config file.
  105651. .TP
  105652. .B api_key
  105653. API key. Can also be specified in the config file.
  105654. .TP
  105655. .B api_version: 1
  105656. API version. Can also be specified in the config file.
  105657. .TP
  105658. .B api_url
  105659. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105660. .UNINDENT
  105661. .sp
  105662. CLI Example:
  105663. .INDENT 7.0
  105664. .INDENT 3.5
  105665. .sp
  105666. .nf
  105667. .ft C
  105668. salt \(aqminion\(aq statuspage.delete endpoint=\(aqcomponents\(aq id=\(aqftgks51sfs2d\(aq
  105669. .ft P
  105670. .fi
  105671. .UNINDENT
  105672. .UNINDENT
  105673. .sp
  105674. Example output:
  105675. .INDENT 7.0
  105676. .INDENT 3.5
  105677. .sp
  105678. .nf
  105679. .ft C
  105680. minion:
  105681. \-\-\-\-\-\-\-\-\-\-
  105682. comment:
  105683. out:
  105684. None
  105685. result:
  105686. True
  105687. .ft P
  105688. .fi
  105689. .UNINDENT
  105690. .UNINDENT
  105691. .UNINDENT
  105692. .INDENT 0.0
  105693. .TP
  105694. .B salt.modules.statuspage.retrieve(endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None)
  105695. Retrieve a specific endpoint from the Statuspage API.
  105696. .INDENT 7.0
  105697. .TP
  105698. .B endpoint: incidents
  105699. Request a specific endpoint.
  105700. .TP
  105701. .B page_id
  105702. Page ID. Can also be specified in the config file.
  105703. .TP
  105704. .B api_key
  105705. API key. Can also be specified in the config file.
  105706. .TP
  105707. .B api_version: 1
  105708. API version. Can also be specified in the config file.
  105709. .TP
  105710. .B api_url
  105711. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105712. .UNINDENT
  105713. .sp
  105714. CLI Example:
  105715. .INDENT 7.0
  105716. .INDENT 3.5
  105717. .sp
  105718. .nf
  105719. .ft C
  105720. salt \(aqminion\(aq statuspage.retrieve components
  105721. .ft P
  105722. .fi
  105723. .UNINDENT
  105724. .UNINDENT
  105725. .sp
  105726. Example output:
  105727. .INDENT 7.0
  105728. .INDENT 3.5
  105729. .sp
  105730. .nf
  105731. .ft C
  105732. minion:
  105733. \-\-\-\-\-\-\-\-\-\-
  105734. comment:
  105735. out:
  105736. |_
  105737. \-\-\-\-\-\-\-\-\-\-
  105738. backfilled:
  105739. False
  105740. created_at:
  105741. 2015\-01\-26T20:25:02.702Z
  105742. id:
  105743. kh2qwjbheqdc36
  105744. impact:
  105745. major
  105746. impact_override:
  105747. None
  105748. incident_updates:
  105749. |_
  105750. \-\-\-\-\-\-\-\-\-\-
  105751. affected_components:
  105752. None
  105753. body:
  105754. We are currently investigating this issue.
  105755. created_at:
  105756. 2015\-01\-26T20:25:02.849Z
  105757. display_at:
  105758. 2015\-01\-26T20:25:02.849Z
  105759. id:
  105760. zvx7xz2z5skr
  105761. incident_id:
  105762. kh2qwjbheqdc36
  105763. status:
  105764. investigating
  105765. twitter_updated_at:
  105766. None
  105767. updated_at:
  105768. 2015\-01\-26T20:25:02.849Z
  105769. wants_twitter_update:
  105770. False
  105771. monitoring_at:
  105772. None
  105773. name:
  105774. just testing some stuff
  105775. page_id:
  105776. ksdhgfyiuhaa
  105777. postmortem_body:
  105778. None
  105779. postmortem_body_last_updated_at:
  105780. None
  105781. postmortem_ignored:
  105782. False
  105783. postmortem_notified_subscribers:
  105784. False
  105785. postmortem_notified_twitter:
  105786. False
  105787. postmortem_published_at:
  105788. None
  105789. resolved_at:
  105790. None
  105791. scheduled_auto_completed:
  105792. False
  105793. scheduled_auto_in_progress:
  105794. False
  105795. scheduled_for:
  105796. None
  105797. scheduled_remind_prior:
  105798. False
  105799. scheduled_reminded_at:
  105800. None
  105801. scheduled_until:
  105802. None
  105803. shortlink:
  105804. http://stspg.io/voY
  105805. status:
  105806. investigating
  105807. updated_at:
  105808. 2015\-01\-26T20:25:13.379Z
  105809. result:
  105810. True
  105811. .ft P
  105812. .fi
  105813. .UNINDENT
  105814. .UNINDENT
  105815. .UNINDENT
  105816. .INDENT 0.0
  105817. .TP
  105818. .B salt.modules.statuspage.update(endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  105819. Update attribute(s) of a specific endpoint.
  105820. .INDENT 7.0
  105821. .TP
  105822. .B id
  105823. The unique ID of the enpoint entry.
  105824. .TP
  105825. .B endpoint: incidents
  105826. Endpoint name.
  105827. .TP
  105828. .B page_id
  105829. Page ID. Can also be specified in the config file.
  105830. .TP
  105831. .B api_key
  105832. API key. Can also be specified in the config file.
  105833. .TP
  105834. .B api_version: 1
  105835. API version. Can also be specified in the config file.
  105836. .TP
  105837. .B api_url
  105838. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105839. .UNINDENT
  105840. .sp
  105841. CLI Example:
  105842. .INDENT 7.0
  105843. .INDENT 3.5
  105844. .sp
  105845. .nf
  105846. .ft C
  105847. salt \(aqminion\(aq statuspage.update id=dz959yz2nd4l status=resolved
  105848. .ft P
  105849. .fi
  105850. .UNINDENT
  105851. .UNINDENT
  105852. .sp
  105853. Example output:
  105854. .INDENT 7.0
  105855. .INDENT 3.5
  105856. .sp
  105857. .nf
  105858. .ft C
  105859. minion:
  105860. \-\-\-\-\-\-\-\-\-\-
  105861. comment:
  105862. out:
  105863. \-\-\-\-\-\-\-\-\-\-
  105864. created_at:
  105865. 2017\-01\-03T15:25:30.718Z
  105866. description:
  105867. None
  105868. group_id:
  105869. 993vgplshj12
  105870. id:
  105871. dz959yz2nd4l
  105872. name:
  105873. Management Portal
  105874. page_id:
  105875. xzwjjdw87vpf
  105876. position:
  105877. 11
  105878. status:
  105879. resolved
  105880. updated_at:
  105881. 2017\-01\-05T15:34:27.676Z
  105882. result:
  105883. True
  105884. .ft P
  105885. .fi
  105886. .UNINDENT
  105887. .UNINDENT
  105888. .UNINDENT
  105889. .SS salt.modules.telegram
  105890. .sp
  105891. Module for sending messages via Telegram.
  105892. .INDENT 0.0
  105893. .TP
  105894. .B configuration
  105895. In order to send a message via the Telegram, certain
  105896. configuration is required in /etc/salt/minion on the relevant minions or
  105897. in the pillar. Some sample configs might look like:
  105898. .INDENT 7.0
  105899. .INDENT 3.5
  105900. .sp
  105901. .nf
  105902. .ft C
  105903. telegram.chat_id: \(aq123456789\(aq
  105904. telegram.token: \(aq00000000:xxxxxxxxxxxxxxxxxxxxxxxx\(aq
  105905. .ft P
  105906. .fi
  105907. .UNINDENT
  105908. .UNINDENT
  105909. .UNINDENT
  105910. .INDENT 0.0
  105911. .TP
  105912. .B salt.modules.telegram.post_message(message, chat_id=None, token=None)
  105913. Send a message to a Telegram chat.
  105914. .INDENT 7.0
  105915. .TP
  105916. .B Parameters
  105917. .INDENT 7.0
  105918. .IP \(bu 2
  105919. \fBmessage\fP \-\- The message to send to the Telegram chat.
  105920. .IP \(bu 2
  105921. \fBchat_id\fP \-\- (optional) The Telegram chat id.
  105922. .IP \(bu 2
  105923. \fBtoken\fP \-\- (optional) The Telegram API token.
  105924. .UNINDENT
  105925. .TP
  105926. .B Returns
  105927. Boolean if message was sent successfully.
  105928. .UNINDENT
  105929. .sp
  105930. CLI Example:
  105931. .INDENT 7.0
  105932. .INDENT 3.5
  105933. .sp
  105934. .nf
  105935. .ft C
  105936. salt \(aq*\(aq telegram.post_message message="Hello Telegram!"
  105937. .ft P
  105938. .fi
  105939. .UNINDENT
  105940. .UNINDENT
  105941. .UNINDENT
  105942. .SS salt.modules.temp
  105943. .sp
  105944. Simple module for creating temporary directories and files
  105945. .sp
  105946. This is a thin wrapper around Pythons tempfile module
  105947. .sp
  105948. New in version 2015.8.0.
  105949. .INDENT 0.0
  105950. .TP
  105951. .B salt.modules.temp.dir(suffix=u\(aq\(aq, prefix=u\(aqtmp\(aq, parent=None)
  105952. Create a temporary directory
  105953. .sp
  105954. CLI Example:
  105955. .INDENT 7.0
  105956. .INDENT 3.5
  105957. .sp
  105958. .nf
  105959. .ft C
  105960. salt \(aq*\(aq temp.dir
  105961. salt \(aq*\(aq temp.dir prefix=\(aqmytemp\-\(aq parent=\(aq/var/run/\(aq
  105962. .ft P
  105963. .fi
  105964. .UNINDENT
  105965. .UNINDENT
  105966. .UNINDENT
  105967. .INDENT 0.0
  105968. .TP
  105969. .B salt.modules.temp.file(suffix=u\(aq\(aq, prefix=u\(aqtmp\(aq, parent=None)
  105970. Create a temporary file
  105971. .sp
  105972. CLI Example:
  105973. .INDENT 7.0
  105974. .INDENT 3.5
  105975. .sp
  105976. .nf
  105977. .ft C
  105978. salt \(aq*\(aq temp.file
  105979. salt \(aq*\(aq temp.file prefix=\(aqmytemp\-\(aq parent=\(aq/var/run/\(aq
  105980. .ft P
  105981. .fi
  105982. .UNINDENT
  105983. .UNINDENT
  105984. .UNINDENT
  105985. .SS salt.modules.test_virtual
  105986. .sp
  105987. Module for running arbitrary tests with a __virtual__ function
  105988. .INDENT 0.0
  105989. .TP
  105990. .B salt.modules.test_virtual.ping()
  105991. .UNINDENT
  105992. .SS salt.modules.twilio_notify
  105993. .sp
  105994. Module for notifications via Twilio
  105995. .sp
  105996. New in version 2014.7.0.
  105997. .INDENT 0.0
  105998. .TP
  105999. .B depends
  106000. .INDENT 7.0
  106001. .IP \(bu 2
  106002. twilio python module
  106003. .UNINDENT
  106004. .TP
  106005. .B configuration
  106006. Configure this module by specifying the name of a configuration
  106007. profile in the minion config, minion pillar, or master config (with \fBpillar_opts\fP set to True).
  106008. .sp
  106009. For example:
  106010. .INDENT 7.0
  106011. .INDENT 3.5
  106012. .sp
  106013. .nf
  106014. .ft C
  106015. my\-twilio\-account:
  106016. twilio.account_sid: AC32a3c83990934481addd5ce1659f04d2
  106017. twilio.auth_token: mytoken
  106018. .ft P
  106019. .fi
  106020. .UNINDENT
  106021. .UNINDENT
  106022. .UNINDENT
  106023. .INDENT 0.0
  106024. .TP
  106025. .B salt.modules.twilio_notify.send_sms(profile, body, to, from_)
  106026. Send an sms
  106027. .sp
  106028. CLI Example:
  106029. .INDENT 7.0
  106030. .INDENT 3.5
  106031. twilio.send_sms my\-twilio\-account \(aqTest sms\(aq \(aq+18019999999\(aq \(aq+18011111111\(aq
  106032. .UNINDENT
  106033. .UNINDENT
  106034. .UNINDENT
  106035. .SS salt.modules.uptime
  106036. .SS Wrapper around uptime API
  106037. .INDENT 0.0
  106038. .TP
  106039. .B salt.modules.uptime.check_exists(name)
  106040. Check if a given URL is in being monitored by uptime
  106041. .sp
  106042. CLI Example:
  106043. .INDENT 7.0
  106044. .INDENT 3.5
  106045. .sp
  106046. .nf
  106047. .ft C
  106048. salt \(aq*\(aq uptime.check_exists http://example.org
  106049. .ft P
  106050. .fi
  106051. .UNINDENT
  106052. .UNINDENT
  106053. .UNINDENT
  106054. .INDENT 0.0
  106055. .TP
  106056. .B salt.modules.uptime.checks_list()
  106057. List URL checked by uptime
  106058. .sp
  106059. CLI Example:
  106060. .INDENT 7.0
  106061. .INDENT 3.5
  106062. .sp
  106063. .nf
  106064. .ft C
  106065. salt \(aq*\(aq uptime.checks_list
  106066. .ft P
  106067. .fi
  106068. .UNINDENT
  106069. .UNINDENT
  106070. .UNINDENT
  106071. .INDENT 0.0
  106072. .TP
  106073. .B salt.modules.uptime.create(name, **params)
  106074. Create a check on a given URL.
  106075. .sp
  106076. Additional parameters can be used and are passed to API (for
  106077. example interval, maxTime, etc). See the documentation
  106078. \fI\%https://github.com/fzaninotto/uptime\fP for a full list of the
  106079. parameters.
  106080. .sp
  106081. CLI Example:
  106082. .INDENT 7.0
  106083. .INDENT 3.5
  106084. .sp
  106085. .nf
  106086. .ft C
  106087. salt \(aq*\(aq uptime.create http://example.org
  106088. .ft P
  106089. .fi
  106090. .UNINDENT
  106091. .UNINDENT
  106092. .UNINDENT
  106093. .INDENT 0.0
  106094. .TP
  106095. .B salt.modules.uptime.delete(name)
  106096. Delete a check on a given URL
  106097. .sp
  106098. CLI Example:
  106099. .INDENT 7.0
  106100. .INDENT 3.5
  106101. .sp
  106102. .nf
  106103. .ft C
  106104. salt \(aq*\(aq uptime.delete http://example.org
  106105. .ft P
  106106. .fi
  106107. .UNINDENT
  106108. .UNINDENT
  106109. .UNINDENT
  106110. .SS salt.modules.vault module
  106111. .sp
  106112. Functions to interact with Hashicorp Vault.
  106113. .INDENT 0.0
  106114. .TP
  106115. .B maintainer
  106116. SaltStack
  106117. .TP
  106118. .B maturity
  106119. new
  106120. .TP
  106121. .B platform
  106122. all
  106123. .TP
  106124. .B note
  106125. If you see the following error, you\(aqll need to upgrade \fBrequests\fP to at least 2.4.2
  106126. .UNINDENT
  106127. .INDENT 0.0
  106128. .INDENT 3.5
  106129. .sp
  106130. .nf
  106131. .ft C
  106132. <timestamp> [salt.pillar][CRITICAL][14337] Pillar render error: Failed to load ext_pillar vault: {\(aqerror\(aq: "request() got an unexpected keyword argument \(aqjson\(aq"}
  106133. .ft P
  106134. .fi
  106135. .UNINDENT
  106136. .UNINDENT
  106137. .INDENT 0.0
  106138. .TP
  106139. .B configuration
  106140. The salt\-master must be configured to allow peer\-runner
  106141. configuration, as well as configuration for the module.
  106142. .sp
  106143. Add this segment to the master configuration file, or
  106144. /etc/salt/master.d/vault.conf:
  106145. .INDENT 7.0
  106146. .INDENT 3.5
  106147. .sp
  106148. .nf
  106149. .ft C
  106150. vault:
  106151. url: https://vault.service.domain:8200
  106152. verify: /etc/ssl/certs/ca\-certificates.crt
  106153. role_name: minion_role
  106154. auth:
  106155. method: approle
  106156. role_id: 11111111\-2222\-3333\-4444\-1111111111111
  106157. secret_id: 11111111\-1111\-1111\-1111\-1111111111111
  106158. policies:
  106159. \- saltstack/minions
  106160. \- saltstack/minion/{minion}
  106161. .. more policies
  106162. keys:
  106163. \- n63/TbrQuL3xaIW7ZZpuXj/tIfnK1/MbVxO4vT3wYD2A
  106164. \- S9OwCvMRhErEA4NVVELYBs6w/Me6+urgUr24xGK44Uy3
  106165. \- F1j4b7JKq850NS6Kboiy5laJ0xY8dWJvB3fcwA+SraYl
  106166. \- 1cYtvjKJNDVam9c7HNqJUfINk4PYyAXIpjkpN/sIuzPv
  106167. \- 3pPK5X6vGtwLhNOFv1U2elahECz3HpRUfNXJFYLw6lid
  106168. .ft P
  106169. .fi
  106170. .UNINDENT
  106171. .UNINDENT
  106172. .INDENT 7.0
  106173. .TP
  106174. .B url
  106175. Url to your Vault installation. Required.
  106176. .TP
  106177. .B verify
  106178. For details please see
  106179. \fI\%http://docs.python\-requests.org/en/master/user/advanced/#ssl\-cert\-verification\fP
  106180. .sp
  106181. New in version 2018.3.0.
  106182. .TP
  106183. .B role_name
  106184. Role name for minion tokens created. If omitted, minion tokens will be
  106185. created without any role, thus being able to inherit any master token
  106186. policy (including token creation capabilities). Optional.
  106187. .sp
  106188. For details please see:
  106189. \fI\%https://www.vaultproject.io/api/auth/token/index.html#create\-token\fP
  106190. .sp
  106191. Example configuration:
  106192. \fI\%https://www.nomadproject.io/docs/vault\-integration/index.html#vault\-token\-role\-configuration\fP
  106193. .TP
  106194. .B auth
  106195. Currently only token and approle auth types are supported. Required.
  106196. .sp
  106197. Approle is the preferred way to authenticate with Vault as it provide
  106198. some advanced options to control authentication process.
  106199. Please visit Vault documentation for more info:
  106200. \fI\%https://www.vaultproject.io/docs/auth/approle.html\fP
  106201. .sp
  106202. The token must be able to create tokens with the policies that should be
  106203. assigned to minions.
  106204. You can still use the token auth via a OS environment variable via this
  106205. config example:
  106206. .INDENT 7.0
  106207. .INDENT 3.5
  106208. .sp
  106209. .nf
  106210. .ft C
  106211. vault:
  106212. url: https://vault.service.domain:8200
  106213. auth:
  106214. method: token
  106215. token: sdb://osenv/VAULT_TOKEN
  106216. osenv:
  106217. driver: env
  106218. .ft P
  106219. .fi
  106220. .UNINDENT
  106221. .UNINDENT
  106222. .sp
  106223. And then export the VAULT_TOKEN variable in your OS:
  106224. .INDENT 7.0
  106225. .INDENT 3.5
  106226. .sp
  106227. .nf
  106228. .ft C
  106229. export VAULT_TOKEN=11111111\-1111\-1111\-1111\-1111111111111
  106230. .ft P
  106231. .fi
  106232. .UNINDENT
  106233. .UNINDENT
  106234. .sp
  106235. Configuration keys \fBuses\fP or \fBttl\fP may also be specified under \fBauth\fP
  106236. to configure the tokens generated on behalf of minions to be reused for the
  106237. defined number of uses or length of time in seconds. These settings may also be configured
  106238. on the minion when \fBallow_minion_override\fP is set to \fBTrue\fP in the master
  106239. config.
  106240. .sp
  106241. Defining \fBuses\fP will cause the salt master to generate a token with that number of uses rather
  106242. than a single use token. This multi\-use token will be cached on the minion. The type of minion
  106243. cache can be specified with \fBtoken_backend: session\fP or \fBtoken_backend: disk\fP\&. The value of
  106244. \fBsession\fP is the default, and will store the vault information in memory only for that session.
  106245. The value of \fBdisk\fP will write to an on disk file, and persist between state runs (most
  106246. helpful for multi\-use tokens).
  106247. .INDENT 7.0
  106248. .INDENT 3.5
  106249. .sp
  106250. .nf
  106251. .ft C
  106252. vault:
  106253. auth:
  106254. method: token
  106255. token: xxxxxx
  106256. uses: 10
  106257. ttl: 43200
  106258. allow_minion_override: True
  106259. token_backend: disk
  106260. .. versionchanged:: 3001
  106261. .ft P
  106262. .fi
  106263. .UNINDENT
  106264. .UNINDENT
  106265. .TP
  106266. .B policies
  106267. Policies that are assigned to minions when requesting a token. These can
  106268. either be static, eg saltstack/minions, or templated with grain values,
  106269. eg, \fBmy\-policies/{grains[os]}\fP\&. \fB{minion}\fP is shorthand for grains[id],
  106270. \fBsaltstack/minion/{minion}\fP\&. .
  106271. .sp
  106272. If a template contains a grain which evaluates to a list, it will be
  106273. expanded into multiple policies. For example, given the template
  106274. \fBsaltstack/by\-role/{grains[roles]}\fP, and a minion having these grains:
  106275. .INDENT 7.0
  106276. .INDENT 3.5
  106277. .sp
  106278. .nf
  106279. .ft C
  106280. grains:
  106281. roles:
  106282. \- web
  106283. \- database
  106284. .ft P
  106285. .fi
  106286. .UNINDENT
  106287. .UNINDENT
  106288. .sp
  106289. The minion will have the policies \fBsaltstack/by\-role/web\fP and
  106290. \fBsaltstack/by\-role/database\fP\&.
  106291. .sp
  106292. Optional. If policies is not configured, \fBsaltstack/minions\fP and
  106293. \fBsaltstack/{minion}\fP are used as defaults.
  106294. .sp
  106295. \fBNOTE:\fP
  106296. .INDENT 7.0
  106297. .INDENT 3.5
  106298. list members which do not have simple string representations,
  106299. such as dictionaries or objects, do not work and will
  106300. throw an exception. Strings and numbers are examples of
  106301. types which work well.
  106302. .UNINDENT
  106303. .UNINDENT
  106304. .TP
  106305. .B keys
  106306. List of keys to use to unseal vault server with the vault.unseal runner.
  106307. .UNINDENT
  106308. .sp
  106309. Add this segment to the master configuration file, or
  106310. /etc/salt/master.d/peer_run.conf:
  106311. .INDENT 7.0
  106312. .INDENT 3.5
  106313. .sp
  106314. .nf
  106315. .ft C
  106316. peer_run:
  106317. .*:
  106318. \- vault.generate_token
  106319. .ft P
  106320. .fi
  106321. .UNINDENT
  106322. .UNINDENT
  106323. .UNINDENT
  106324. .INDENT 0.0
  106325. .TP
  106326. .B salt.modules.vault.clear_token_cache()
  106327. Changed in version 3001.
  106328. .sp
  106329. Delete minion Vault token cache file
  106330. .sp
  106331. CLI Example:
  106332. .INDENT 7.0
  106333. .INDENT 3.5
  106334. .sp
  106335. .nf
  106336. .ft C
  106337. salt \(aq*\(aq vault.clear_token_cache
  106338. .ft P
  106339. .fi
  106340. .UNINDENT
  106341. .UNINDENT
  106342. .UNINDENT
  106343. .INDENT 0.0
  106344. .TP
  106345. .B salt.modules.vault.delete_secret(path)
  106346. Delete secret at the path in vault. The vault policy used must allow this.
  106347. .sp
  106348. CLI Example:
  106349. .INDENT 7.0
  106350. .INDENT 3.5
  106351. .sp
  106352. .nf
  106353. .ft C
  106354. salt \(aq*\(aq vault.delete_secret "secret/my/secret"
  106355. .ft P
  106356. .fi
  106357. .UNINDENT
  106358. .UNINDENT
  106359. .UNINDENT
  106360. .INDENT 0.0
  106361. .TP
  106362. .B salt.modules.vault.destroy_secret(path, *args)
  106363. New in version 3001.
  106364. .sp
  106365. Destory specified secret version at the path in vault. The vault policy
  106366. used must allow this. Only supported on Vault KV version 2
  106367. .sp
  106368. CLI Example:
  106369. .INDENT 7.0
  106370. .INDENT 3.5
  106371. .sp
  106372. .nf
  106373. .ft C
  106374. salt \(aq*\(aq vault.destroy_secret "secret/my/secret" 1 2
  106375. .ft P
  106376. .fi
  106377. .UNINDENT
  106378. .UNINDENT
  106379. .UNINDENT
  106380. .INDENT 0.0
  106381. .TP
  106382. .B salt.modules.vault.list_secrets(path, default=<class \(aqsalt.exceptions.CommandExecutionError\(aq>)
  106383. Changed in version 3001: The \fBdefault\fP argument has been added. When the path or path/key
  106384. combination is not found, an exception will be raised, unless a default
  106385. is provided.
  106386. .sp
  106387. List secret keys at the path in vault. The vault policy used must allow this.
  106388. The path should end with a trailing slash.
  106389. .sp
  106390. CLI Example:
  106391. .INDENT 7.0
  106392. .INDENT 3.5
  106393. .sp
  106394. .nf
  106395. .ft C
  106396. salt \(aq*\(aq vault.list_secrets "secret/my/"
  106397. .ft P
  106398. .fi
  106399. .UNINDENT
  106400. .UNINDENT
  106401. .UNINDENT
  106402. .INDENT 0.0
  106403. .TP
  106404. .B salt.modules.vault.read_secret(path, key=None, metadata=False, default=<class \(aqsalt.exceptions.CommandExecutionError\(aq>)
  106405. Changed in version 3001: The \fBdefault\fP argument has been added. When the path or path/key
  106406. combination is not found, an exception will be raised, unless a default
  106407. is provided.
  106408. .sp
  106409. Return the value of key at path in vault, or entire secret
  106410. .INDENT 7.0
  106411. .TP
  106412. .B Parameters
  106413. \fBmetadata\fP \-\-
  106414. .sp
  106415. Optional \- If using KV v2 backend, display full results, including metadata
  106416. .sp
  106417. New in version 3001.
  106418. .UNINDENT
  106419. .sp
  106420. Jinja Example:
  106421. .INDENT 7.0
  106422. .INDENT 3.5
  106423. .sp
  106424. .nf
  106425. .ft C
  106426. my\-secret: {{ salt[\(aqvault\(aq].read_secret(\(aqsecret/my/secret\(aq, \(aqsome\-key\(aq) }}
  106427. {{ salt[\(aqvault\(aq].read_secret(\(aq/secret/my/secret\(aq, \(aqsome\-key\(aq, metadata=True)[\(aqdata\(aq] }}
  106428. .ft P
  106429. .fi
  106430. .UNINDENT
  106431. .UNINDENT
  106432. .INDENT 7.0
  106433. .INDENT 3.5
  106434. .sp
  106435. .nf
  106436. .ft C
  106437. {% set supersecret = salt[\(aqvault\(aq].read_secret(\(aqsecret/my/secret\(aq) %}
  106438. secrets:
  106439. first: {{ supersecret.first }}
  106440. second: {{ supersecret.second }}
  106441. .ft P
  106442. .fi
  106443. .UNINDENT
  106444. .UNINDENT
  106445. .UNINDENT
  106446. .INDENT 0.0
  106447. .TP
  106448. .B salt.modules.vault.write_raw(path, raw)
  106449. Set raw data at the path in vault. The vault policy used must allow this.
  106450. .sp
  106451. CLI Example:
  106452. .INDENT 7.0
  106453. .INDENT 3.5
  106454. .sp
  106455. .nf
  106456. .ft C
  106457. salt \(aq*\(aq vault.write_raw "secret/my/secret" \(aq{"user":"foo","password": "bar"}\(aq
  106458. .ft P
  106459. .fi
  106460. .UNINDENT
  106461. .UNINDENT
  106462. .UNINDENT
  106463. .INDENT 0.0
  106464. .TP
  106465. .B salt.modules.vault.write_secret(path, **kwargs)
  106466. Set secret at the path in vault. The vault policy used must allow this.
  106467. .sp
  106468. CLI Example:
  106469. .INDENT 7.0
  106470. .INDENT 3.5
  106471. .sp
  106472. .nf
  106473. .ft C
  106474. salt \(aq*\(aq vault.write_secret "secret/my/secret" user="foo" password="bar"
  106475. .ft P
  106476. .fi
  106477. .UNINDENT
  106478. .UNINDENT
  106479. .UNINDENT
  106480. .SS salt.modules.vbox_guest
  106481. .sp
  106482. VirtualBox Guest Additions installer
  106483. .INDENT 0.0
  106484. .TP
  106485. .B salt.modules.vbox_guest.additions_install(*args, **kwargs)
  106486. Install VirtualBox Guest Additions. Uses the CD, connected by VirtualBox.
  106487. .sp
  106488. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  106489. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  106490. .sp
  106491. See \fI\%https://www.virtualbox.org/manual/ch04.html#idp52733088\fP for more details.
  106492. .sp
  106493. CLI Example:
  106494. .INDENT 7.0
  106495. .INDENT 3.5
  106496. .sp
  106497. .nf
  106498. .ft C
  106499. salt \(aq*\(aq vbox_guest.additions_install
  106500. salt \(aq*\(aq vbox_guest.additions_install reboot=True
  106501. salt \(aq*\(aq vbox_guest.additions_install upgrade_os=True
  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. \fBreboot\fP (\fI\%bool\fP) \-\- reboot computer to complete installation
  106512. .IP \(bu 2
  106513. \fBupgrade_os\fP (\fI\%bool\fP) \-\- upgrade OS (to ensure the latests version of kernel and developer tools are installed)
  106514. .UNINDENT
  106515. .TP
  106516. .B Returns
  106517. version of VirtualBox Guest Additions or string with error
  106518. .UNINDENT
  106519. .UNINDENT
  106520. .INDENT 0.0
  106521. .TP
  106522. .B salt.modules.vbox_guest.additions_mount()
  106523. Mount VirtualBox Guest Additions CD to the temp directory.
  106524. .sp
  106525. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  106526. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  106527. .sp
  106528. CLI Example:
  106529. .INDENT 7.0
  106530. .INDENT 3.5
  106531. .sp
  106532. .nf
  106533. .ft C
  106534. salt \(aq*\(aq vbox_guest.additions_mount
  106535. .ft P
  106536. .fi
  106537. .UNINDENT
  106538. .UNINDENT
  106539. .INDENT 7.0
  106540. .TP
  106541. .B Returns
  106542. True or OSError exception
  106543. .UNINDENT
  106544. .UNINDENT
  106545. .INDENT 0.0
  106546. .TP
  106547. .B salt.modules.vbox_guest.additions_remove(**kwargs)
  106548. Remove VirtualBox Guest Additions.
  106549. .sp
  106550. Firstly it tries to uninstall itself by executing
  106551. \(aq/opt/VBoxGuestAdditions\-VERSION/uninstall.run uninstall\(aq.
  106552. It uses the CD, connected by VirtualBox if it failes.
  106553. .sp
  106554. CLI Example:
  106555. .INDENT 7.0
  106556. .INDENT 3.5
  106557. .sp
  106558. .nf
  106559. .ft C
  106560. salt \(aq*\(aq vbox_guest.additions_remove
  106561. salt \(aq*\(aq vbox_guest.additions_remove force=True
  106562. .ft P
  106563. .fi
  106564. .UNINDENT
  106565. .UNINDENT
  106566. .INDENT 7.0
  106567. .TP
  106568. .B Parameters
  106569. \fBforce\fP (\fI\%bool\fP) \-\- force VirtualBox Guest Additions removing
  106570. .TP
  106571. .B Returns
  106572. True if VirtualBox Guest Additions were removed successfully else False
  106573. .UNINDENT
  106574. .UNINDENT
  106575. .INDENT 0.0
  106576. .TP
  106577. .B salt.modules.vbox_guest.additions_umount(mount_point)
  106578. Unmount VirtualBox Guest Additions CD from the temp directory.
  106579. .sp
  106580. CLI Example:
  106581. .INDENT 7.0
  106582. .INDENT 3.5
  106583. .sp
  106584. .nf
  106585. .ft C
  106586. salt \(aq*\(aq vbox_guest.additions_umount
  106587. .ft P
  106588. .fi
  106589. .UNINDENT
  106590. .UNINDENT
  106591. .INDENT 7.0
  106592. .TP
  106593. .B Parameters
  106594. \fBmount_point\fP \-\- directory VirtualBox Guest Additions is mounted to
  106595. .TP
  106596. .B Returns
  106597. True or an string with error
  106598. .UNINDENT
  106599. .UNINDENT
  106600. .INDENT 0.0
  106601. .TP
  106602. .B salt.modules.vbox_guest.additions_version()
  106603. Check VirtualBox Guest Additions version.
  106604. .sp
  106605. CLI Example:
  106606. .INDENT 7.0
  106607. .INDENT 3.5
  106608. .sp
  106609. .nf
  106610. .ft C
  106611. salt \(aq*\(aq vbox_guest.additions_version
  106612. .ft P
  106613. .fi
  106614. .UNINDENT
  106615. .UNINDENT
  106616. .INDENT 7.0
  106617. .TP
  106618. .B Returns
  106619. version of VirtualBox Guest Additions or False if they are not installed
  106620. .UNINDENT
  106621. .UNINDENT
  106622. .INDENT 0.0
  106623. .TP
  106624. .B salt.modules.vbox_guest.grant_access_to_shared_folders_to(name, users=None)
  106625. Grant access to auto\-mounted shared folders to the users.
  106626. .sp
  106627. User is specified by its name. To grant access for several users use argument \fIusers\fP\&.
  106628. Access will be denied to the users not listed in \fIusers\fP argument.
  106629. .sp
  106630. See \fI\%https://www.virtualbox.org/manual/ch04.html#sf_mount_auto\fP for more details.
  106631. .sp
  106632. CLI Example:
  106633. .INDENT 7.0
  106634. .INDENT 3.5
  106635. .sp
  106636. .nf
  106637. .ft C
  106638. salt \(aq*\(aq vbox_guest.grant_access_to_shared_folders_to fred
  106639. salt \(aq*\(aq vbox_guest.grant_access_to_shared_folders_to users [\(aqfred\(aq, \(aqroman\(aq]
  106640. .ft P
  106641. .fi
  106642. .UNINDENT
  106643. .UNINDENT
  106644. .INDENT 7.0
  106645. .TP
  106646. .B Parameters
  106647. .INDENT 7.0
  106648. .IP \(bu 2
  106649. \fBname\fP (\fI\%str\fP) \-\- name of the user to grant access to auto\-mounted shared folders to
  106650. .IP \(bu 2
  106651. \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)
  106652. .UNINDENT
  106653. .TP
  106654. .B Returns
  106655. list of users who have access to auto\-mounted shared folders
  106656. .UNINDENT
  106657. .UNINDENT
  106658. .INDENT 0.0
  106659. .TP
  106660. .B salt.modules.vbox_guest.list_shared_folders_users()
  106661. List users who have access to auto\-mounted shared folders.
  106662. .sp
  106663. See \fI\%https://www.virtualbox.org/manual/ch04.html#sf_mount_auto\fP for more details.
  106664. .sp
  106665. CLI Example:
  106666. .INDENT 7.0
  106667. .INDENT 3.5
  106668. .sp
  106669. .nf
  106670. .ft C
  106671. salt \(aq*\(aq vbox_guest.list_shared_folders_users
  106672. .ft P
  106673. .fi
  106674. .UNINDENT
  106675. .UNINDENT
  106676. .INDENT 7.0
  106677. .TP
  106678. .B Returns
  106679. list of users who have access to auto\-mounted shared folders
  106680. .UNINDENT
  106681. .UNINDENT
  106682. .SS salt.modules.win_timezone
  106683. .sp
  106684. Module for managing timezone on Windows systems.
  106685. .INDENT 0.0
  106686. .TP
  106687. .B class salt.modules.win_timezone.TzMapper(unix_to_win)
  106688. .INDENT 7.0
  106689. .TP
  106690. .B add(k, v)
  106691. .UNINDENT
  106692. .INDENT 7.0
  106693. .TP
  106694. .B get_unix(key, default=None)
  106695. .UNINDENT
  106696. .INDENT 7.0
  106697. .TP
  106698. .B get_win(key, default=None)
  106699. .UNINDENT
  106700. .INDENT 7.0
  106701. .TP
  106702. .B list_unix()
  106703. .UNINDENT
  106704. .INDENT 7.0
  106705. .TP
  106706. .B list_win()
  106707. .UNINDENT
  106708. .INDENT 7.0
  106709. .TP
  106710. .B remove(k)
  106711. .UNINDENT
  106712. .UNINDENT
  106713. .INDENT 0.0
  106714. .TP
  106715. .B salt.modules.win_timezone.get_hwclock()
  106716. Get current hardware clock setting (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 "localtime"
  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.get_hwclock
  106733. .ft P
  106734. .fi
  106735. .UNINDENT
  106736. .UNINDENT
  106737. .UNINDENT
  106738. .INDENT 0.0
  106739. .TP
  106740. .B salt.modules.win_timezone.get_offset()
  106741. Get current numeric timezone offset from UTC (i.e. \-0700)
  106742. .INDENT 7.0
  106743. .TP
  106744. .B Returns
  106745. Offset from UTC
  106746. .TP
  106747. .B Return type
  106748. \fI\%str\fP
  106749. .UNINDENT
  106750. .sp
  106751. CLI Example:
  106752. .INDENT 7.0
  106753. .INDENT 3.5
  106754. .sp
  106755. .nf
  106756. .ft C
  106757. salt \(aq*\(aq timezone.get_offset
  106758. .ft P
  106759. .fi
  106760. .UNINDENT
  106761. .UNINDENT
  106762. .UNINDENT
  106763. .INDENT 0.0
  106764. .TP
  106765. .B salt.modules.win_timezone.get_zone()
  106766. Get current timezone (i.e. America/Denver)
  106767. .INDENT 7.0
  106768. .TP
  106769. .B Returns
  106770. Timezone in unix format
  106771. .TP
  106772. .B Return type
  106773. \fI\%str\fP
  106774. .TP
  106775. .B Raises
  106776. \fBCommandExecutionError\fP \-\- If timezone could not be gathered
  106777. .UNINDENT
  106778. .sp
  106779. CLI Example:
  106780. .INDENT 7.0
  106781. .INDENT 3.5
  106782. .sp
  106783. .nf
  106784. .ft C
  106785. salt \(aq*\(aq timezone.get_zone
  106786. .ft P
  106787. .fi
  106788. .UNINDENT
  106789. .UNINDENT
  106790. .UNINDENT
  106791. .INDENT 0.0
  106792. .TP
  106793. .B salt.modules.win_timezone.get_zonecode()
  106794. Get current timezone (i.e. PST, MDT, etc)
  106795. .INDENT 7.0
  106796. .TP
  106797. .B Returns
  106798. An abbreviated timezone code
  106799. .TP
  106800. .B Return type
  106801. \fI\%str\fP
  106802. .UNINDENT
  106803. .sp
  106804. CLI Example:
  106805. .INDENT 7.0
  106806. .INDENT 3.5
  106807. .sp
  106808. .nf
  106809. .ft C
  106810. salt \(aq*\(aq timezone.get_zonecode
  106811. .ft P
  106812. .fi
  106813. .UNINDENT
  106814. .UNINDENT
  106815. .UNINDENT
  106816. .INDENT 0.0
  106817. .TP
  106818. .B salt.modules.win_timezone.list(unix_style=True)
  106819. Return a list of Timezones that this module supports. These can be in either
  106820. Unix or Windows format.
  106821. .sp
  106822. New in version 2018.3.3.
  106823. .INDENT 7.0
  106824. .TP
  106825. .B Parameters
  106826. \fBunix_style\fP (\fI\%bool\fP) \-\- \fBTrue\fP returns Unix\-style timezones. \fBFalse\fP returns
  106827. Windows\-style timezones. Default is \fBTrue\fP
  106828. .TP
  106829. .B Returns
  106830. A list of supported timezones
  106831. .TP
  106832. .B Return type
  106833. \fI\%list\fP
  106834. .UNINDENT
  106835. .sp
  106836. CLI Example:
  106837. .INDENT 7.0
  106838. .INDENT 3.5
  106839. .sp
  106840. .nf
  106841. .ft C
  106842. # Unix\-style timezones
  106843. salt \(aq*\(aq timezone.list
  106844. # Windows\-style timezones
  106845. salt \(aq*\(aq timezone.list unix_style=False
  106846. .ft P
  106847. .fi
  106848. .UNINDENT
  106849. .UNINDENT
  106850. .UNINDENT
  106851. .INDENT 0.0
  106852. .TP
  106853. .B salt.modules.win_timezone.set_hwclock(clock)
  106854. Sets the hardware clock to be either UTC or localtime
  106855. .sp
  106856. \fBNOTE:\fP
  106857. .INDENT 7.0
  106858. .INDENT 3.5
  106859. The hardware clock is always local time on Windows so this will always
  106860. return \fBFalse\fP
  106861. .UNINDENT
  106862. .UNINDENT
  106863. .sp
  106864. CLI Example:
  106865. .INDENT 7.0
  106866. .INDENT 3.5
  106867. .sp
  106868. .nf
  106869. .ft C
  106870. salt \(aq*\(aq timezone.set_hwclock UTC
  106871. .ft P
  106872. .fi
  106873. .UNINDENT
  106874. .UNINDENT
  106875. .UNINDENT
  106876. .INDENT 0.0
  106877. .TP
  106878. .B salt.modules.win_timezone.set_zone(timezone)
  106879. Sets the timezone using the tzutil.
  106880. .INDENT 7.0
  106881. .TP
  106882. .B Parameters
  106883. \fBtimezone\fP (\fI\%str\fP) \-\- A valid timezone
  106884. .TP
  106885. .B Returns
  106886. \fBTrue\fP if successful, otherwise \fBFalse\fP
  106887. .TP
  106888. .B Return type
  106889. \fI\%bool\fP
  106890. .TP
  106891. .B Raises
  106892. \fBCommandExecutionError\fP \-\- If invalid timezone is passed
  106893. .UNINDENT
  106894. .sp
  106895. CLI Example:
  106896. .INDENT 7.0
  106897. .INDENT 3.5
  106898. .sp
  106899. .nf
  106900. .ft C
  106901. salt \(aq*\(aq timezone.set_zone \(aqAmerica/Denver\(aq
  106902. .ft P
  106903. .fi
  106904. .UNINDENT
  106905. .UNINDENT
  106906. .UNINDENT
  106907. .INDENT 0.0
  106908. .TP
  106909. .B salt.modules.win_timezone.zone_compare(timezone)
  106910. Compares the given timezone with the machine timezone. Mostly useful for
  106911. running state checks.
  106912. .INDENT 7.0
  106913. .TP
  106914. .B Parameters
  106915. \fBtimezone\fP (\fI\%str\fP) \-\- The timezone to compare. This can be in Windows or Unix format. Can
  106916. be any of the values returned by the \fBtimezone.list\fP function
  106917. .TP
  106918. .B Returns
  106919. \fBTrue\fP if they match, otherwise \fBFalse\fP
  106920. .TP
  106921. .B Return type
  106922. \fI\%bool\fP
  106923. .UNINDENT
  106924. .sp
  106925. Example:
  106926. .INDENT 7.0
  106927. .INDENT 3.5
  106928. .sp
  106929. .nf
  106930. .ft C
  106931. salt \(aq*\(aq timezone.zone_compare \(aqAmerica/Denver\(aq
  106932. .ft P
  106933. .fi
  106934. .UNINDENT
  106935. .UNINDENT
  106936. .UNINDENT
  106937. .SS salt.modules.xml
  106938. .sp
  106939. XML file manager
  106940. .sp
  106941. New in version 3000.
  106942. .INDENT 0.0
  106943. .TP
  106944. .B salt.modules.xml.get_attribute(file, element)
  106945. Return the attributes of the matched xpath element.
  106946. .sp
  106947. CLI Example:
  106948. .INDENT 7.0
  106949. .INDENT 3.5
  106950. .sp
  106951. .nf
  106952. .ft C
  106953. salt \(aq*\(aq xml.get_attribute /tmp/test.xml ".//element[@id=\(aq3\(aq]"
  106954. .ft P
  106955. .fi
  106956. .UNINDENT
  106957. .UNINDENT
  106958. .UNINDENT
  106959. .INDENT 0.0
  106960. .TP
  106961. .B salt.modules.xml.get_value(file, element)
  106962. Returns the value of the matched xpath element
  106963. .sp
  106964. CLI Example:
  106965. .INDENT 7.0
  106966. .INDENT 3.5
  106967. .sp
  106968. .nf
  106969. .ft C
  106970. salt \(aq*\(aq xml.get_value /tmp/test.xml ".//element"
  106971. .ft P
  106972. .fi
  106973. .UNINDENT
  106974. .UNINDENT
  106975. .UNINDENT
  106976. .INDENT 0.0
  106977. .TP
  106978. .B salt.modules.xml.set_attribute(file, element, key, value)
  106979. Set the requested attribute key and value for matched xpath element.
  106980. .sp
  106981. CLI Example:
  106982. .INDENT 7.0
  106983. .INDENT 3.5
  106984. .sp
  106985. .nf
  106986. .ft C
  106987. salt \(aq*\(aq xml.set_attribute /tmp/test.xml ".//element[@id=\(aq3\(aq]" editedby "gal"
  106988. .ft P
  106989. .fi
  106990. .UNINDENT
  106991. .UNINDENT
  106992. .UNINDENT
  106993. .INDENT 0.0
  106994. .TP
  106995. .B salt.modules.xml.set_value(file, element, value)
  106996. Sets the value of the matched xpath element
  106997. .sp
  106998. CLI Example:
  106999. .INDENT 7.0
  107000. .INDENT 3.5
  107001. .sp
  107002. .nf
  107003. .ft C
  107004. salt \(aq*\(aq xml.set_value /tmp/test.xml ".//element" "new value"
  107005. .ft P
  107006. .fi
  107007. .UNINDENT
  107008. .UNINDENT
  107009. .UNINDENT
  107010. .SS salt.modules.xmpp
  107011. .sp
  107012. Module for Sending Messages via XMPP (a.k.a. Jabber)
  107013. .sp
  107014. New in version 2014.1.0.
  107015. .INDENT 0.0
  107016. .TP
  107017. .B depends
  107018. .INDENT 7.0
  107019. .IP \(bu 2
  107020. sleekxmpp>=1.3.1
  107021. .IP \(bu 2
  107022. pyasn1
  107023. .IP \(bu 2
  107024. pyasn1\-modules
  107025. .IP \(bu 2
  107026. dnspython
  107027. .UNINDENT
  107028. .TP
  107029. .B configuration
  107030. This module can be used by either passing a jid and password
  107031. directly to send_message, or by specifying the name of a configuration
  107032. profile in the minion config, minion pillar, or master config.
  107033. .sp
  107034. For example:
  107035. .INDENT 7.0
  107036. .INDENT 3.5
  107037. .sp
  107038. .nf
  107039. .ft C
  107040. my\-xmpp\-login:
  107041. xmpp.jid: myuser@jabber.example.org/resourcename
  107042. xmpp.password: verybadpass
  107043. .ft P
  107044. .fi
  107045. .UNINDENT
  107046. .UNINDENT
  107047. .sp
  107048. The resourcename refers to the resource that is using this account. It is
  107049. user\-definable, and optional. The following configurations are both valid:
  107050. .INDENT 7.0
  107051. .INDENT 3.5
  107052. .sp
  107053. .nf
  107054. .ft C
  107055. my\-xmpp\-login:
  107056. xmpp.jid: myuser@jabber.example.org/salt
  107057. xmpp.password: verybadpass
  107058. my\-xmpp\-login:
  107059. xmpp.jid: myuser@jabber.example.org
  107060. xmpp.password: verybadpass
  107061. .ft P
  107062. .fi
  107063. .UNINDENT
  107064. .UNINDENT
  107065. .UNINDENT
  107066. .INDENT 0.0
  107067. .TP
  107068. .B class salt.modules.xmpp.SendMsgBot(jid, password, recipient, msg)
  107069. .INDENT 7.0
  107070. .TP
  107071. .B classmethod create_multi(jid, password, msg, recipients=None, rooms=None, nick=u\(aqSaltStack Bot\(aq)
  107072. Alternate constructor that accept multiple recipients and rooms
  107073. .UNINDENT
  107074. .INDENT 7.0
  107075. .TP
  107076. .B start(event)
  107077. .UNINDENT
  107078. .UNINDENT
  107079. .INDENT 0.0
  107080. .TP
  107081. .B class salt.modules.xmpp.SleekXMPPMUC(name=\(aq\(aq)
  107082. .INDENT 7.0
  107083. .TP
  107084. .B filter(record)
  107085. Determine if the specified record is to be logged.
  107086. .sp
  107087. Is the specified record to be logged? Returns 0 for no, nonzero for
  107088. yes. If deemed appropriate, the record may be modified in\-place.
  107089. .UNINDENT
  107090. .UNINDENT
  107091. .INDENT 0.0
  107092. .TP
  107093. .B salt.modules.xmpp.send_msg(recipient, message, jid=None, password=None, profile=None)
  107094. Send a message to an XMPP recipient. Designed for use in states.
  107095. .sp
  107096. CLI Examples:
  107097. .INDENT 7.0
  107098. .INDENT 3.5
  107099. .sp
  107100. .nf
  107101. .ft C
  107102. xmpp.send_msg \(aqadmins@xmpp.example.com\(aq \(aqThis is a salt module test\(aq profile=\(aqmy\-xmpp\-account\(aq
  107103. 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
  107104. .ft P
  107105. .fi
  107106. .UNINDENT
  107107. .UNINDENT
  107108. .UNINDENT
  107109. .INDENT 0.0
  107110. .TP
  107111. .B salt.modules.xmpp.send_msg_multi(message, recipients=None, rooms=None, jid=None, password=None, nick=u\(aqSaltStack Bot\(aq, profile=None)
  107112. Send a message to an XMPP recipient, support send message to
  107113. multiple recipients or chat room.
  107114. .sp
  107115. CLI Examples:
  107116. .INDENT 7.0
  107117. .INDENT 3.5
  107118. .sp
  107119. .nf
  107120. .ft C
  107121. 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
  107122. 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
  107123. .ft P
  107124. .fi
  107125. .UNINDENT
  107126. .UNINDENT
  107127. .UNINDENT
  107128. .SS salt.modules.zk_concurrency
  107129. .SS Concurrency controls in zookeeper
  107130. .INDENT 0.0
  107131. .TP
  107132. .B depends
  107133. kazoo
  107134. .TP
  107135. .B configuration
  107136. See \fBsalt.modules.zookeeper\fP for setup instructions.
  107137. .UNINDENT
  107138. .sp
  107139. This module allows you to acquire and release a slot. This is primarily useful
  107140. for ensureing that no more than N hosts take a specific action at once. This can
  107141. also be used to coordinate between masters.
  107142. .INDENT 0.0
  107143. .TP
  107144. .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)
  107145. Get lock (with optional timeout)
  107146. .INDENT 7.0
  107147. .TP
  107148. .B path
  107149. The path in zookeeper where the lock is
  107150. .TP
  107151. .B zk_hosts
  107152. zookeeper connect string
  107153. .TP
  107154. .B identifier
  107155. Name to identify this minion, if unspecified defaults to the hostname
  107156. .TP
  107157. .B max_concurrency
  107158. Maximum number of lock holders
  107159. .TP
  107160. .B timeout
  107161. timeout to wait for the lock. A None timeout will block forever
  107162. .TP
  107163. .B ephemeral_lease
  107164. Whether the locks in zookeper should be ephemeral
  107165. .TP
  107166. .B force
  107167. Forcibly acquire the lock regardless of available slots
  107168. .UNINDENT
  107169. .sp
  107170. Example:
  107171. .INDENT 7.0
  107172. .INDENT 3.5
  107173. .sp
  107174. .nf
  107175. .ft C
  107176. salt minion zk_concurrency.lock /lock/path host1:1234,host2:1234
  107177. .ft P
  107178. .fi
  107179. .UNINDENT
  107180. .UNINDENT
  107181. .UNINDENT
  107182. .INDENT 0.0
  107183. .TP
  107184. .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)
  107185. Return an un\-ordered list of lock holders
  107186. .INDENT 7.0
  107187. .TP
  107188. .B path
  107189. The path in zookeeper where the lock is
  107190. .TP
  107191. .B zk_hosts
  107192. zookeeper connect string
  107193. .TP
  107194. .B identifier
  107195. Name to identify this minion, if unspecified defaults to hostname
  107196. .TP
  107197. .B max_concurrency
  107198. Maximum number of lock holders
  107199. .TP
  107200. .B timeout
  107201. timeout to wait for the lock. A None timeout will block forever
  107202. .TP
  107203. .B ephemeral_lease
  107204. Whether the locks in zookeper should be ephemeral
  107205. .UNINDENT
  107206. .sp
  107207. Example:
  107208. .INDENT 7.0
  107209. .INDENT 3.5
  107210. .sp
  107211. .nf
  107212. .ft C
  107213. salt minion zk_concurrency.lock_holders /lock/path host1:1234,host2:1234
  107214. .ft P
  107215. .fi
  107216. .UNINDENT
  107217. .UNINDENT
  107218. .UNINDENT
  107219. .INDENT 0.0
  107220. .TP
  107221. .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)
  107222. Get the List of identifiers in a particular party, optionally waiting for the
  107223. specified minimum number of nodes (min_nodes) to appear
  107224. .INDENT 7.0
  107225. .TP
  107226. .B path
  107227. The path in zookeeper where the lock is
  107228. .TP
  107229. .B zk_hosts
  107230. zookeeper connect string
  107231. .TP
  107232. .B min_nodes
  107233. The minimum number of nodes expected to be present in the party
  107234. .TP
  107235. .B blocking
  107236. The boolean indicating if we need to block until min_nodes are available
  107237. .UNINDENT
  107238. .sp
  107239. Example:
  107240. .INDENT 7.0
  107241. .INDENT 3.5
  107242. .sp
  107243. .nf
  107244. .ft C
  107245. salt minion zk_concurrency.party_members /lock/path host1:1234,host2:1234
  107246. salt minion zk_concurrency.party_members /lock/path host1:1234,host2:1234 min_nodes=3 blocking=True
  107247. .ft P
  107248. .fi
  107249. .UNINDENT
  107250. .UNINDENT
  107251. .UNINDENT
  107252. .INDENT 0.0
  107253. .TP
  107254. .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)
  107255. Remove lease from semaphore
  107256. .INDENT 7.0
  107257. .TP
  107258. .B path
  107259. The path in zookeeper where the lock is
  107260. .TP
  107261. .B zk_hosts
  107262. zookeeper connect string
  107263. .TP
  107264. .B identifier
  107265. Name to identify this minion, if unspecified defaults to hostname
  107266. .TP
  107267. .B max_concurrency
  107268. Maximum number of lock holders
  107269. .TP
  107270. .B timeout
  107271. timeout to wait for the lock. A None timeout will block forever
  107272. .TP
  107273. .B ephemeral_lease
  107274. Whether the locks in zookeper should be ephemeral
  107275. .UNINDENT
  107276. .sp
  107277. Example:
  107278. .INDENT 7.0
  107279. .INDENT 3.5
  107280. .sp
  107281. .nf
  107282. .ft C
  107283. salt minion zk_concurrency.unlock /lock/path host1:1234,host2:1234
  107284. .ft P
  107285. .fi
  107286. .UNINDENT
  107287. .UNINDENT
  107288. .UNINDENT
  107289. .SS netapi modules
  107290. .TS
  107291. center;
  107292. |l|l|.
  107293. _
  107294. T{
  107295. \fBrest_cherrypy\fP
  107296. T} T{
  107297. T}
  107298. _
  107299. T{
  107300. \fBrest_tornado\fP
  107301. T} T{
  107302. T}
  107303. _
  107304. T{
  107305. \fBrest_wsgi\fP
  107306. T} T{
  107307. T}
  107308. _
  107309. .TE
  107310. .SS output modules
  107311. .sp
  107312. Follow one of the below links for further information and examples
  107313. .TS
  107314. center;
  107315. |l|l|.
  107316. _
  107317. T{
  107318. \fBdson\fP
  107319. T} T{
  107320. T}
  107321. _
  107322. T{
  107323. \fBhighstate\fP
  107324. T} T{
  107325. T}
  107326. _
  107327. T{
  107328. \fBjson_out\fP
  107329. T} T{
  107330. T}
  107331. _
  107332. T{
  107333. \fBkey\fP
  107334. T} T{
  107335. T}
  107336. _
  107337. T{
  107338. \fBnested\fP
  107339. T} T{
  107340. T}
  107341. _
  107342. T{
  107343. \fBnewline_values_only\fP
  107344. T} T{
  107345. T}
  107346. _
  107347. T{
  107348. \fBno_out_quiet\fP
  107349. T} T{
  107350. T}
  107351. _
  107352. T{
  107353. \fBno_return\fP
  107354. T} T{
  107355. T}
  107356. _
  107357. T{
  107358. \fBoverstatestage\fP
  107359. T} T{
  107360. T}
  107361. _
  107362. T{
  107363. \fBpony\fP
  107364. T} T{
  107365. T}
  107366. _
  107367. T{
  107368. \fBpprint_out\fP
  107369. T} T{
  107370. T}
  107371. _
  107372. T{
  107373. \fI\%profile\fP
  107374. T} T{
  107375. Class for profiling Python code.
  107376. T}
  107377. _
  107378. T{
  107379. \fBprogress\fP
  107380. T} T{
  107381. T}
  107382. _
  107383. T{
  107384. \fBraw\fP
  107385. T} T{
  107386. T}
  107387. _
  107388. T{
  107389. \fBtable_out\fP
  107390. T} T{
  107391. T}
  107392. _
  107393. T{
  107394. \fBtxt\fP
  107395. T} T{
  107396. T}
  107397. _
  107398. T{
  107399. \fBvirt_query\fP
  107400. T} T{
  107401. T}
  107402. _
  107403. T{
  107404. \fByaml_out\fP
  107405. T} T{
  107406. T}
  107407. _
  107408. .TE
  107409. .SS pillar modules
  107410. .TS
  107411. center;
  107412. |l|l|.
  107413. _
  107414. T{
  107415. \fBazureblob\fP
  107416. T} T{
  107417. T}
  107418. _
  107419. T{
  107420. \fBcmd_json\fP
  107421. T} T{
  107422. T}
  107423. _
  107424. T{
  107425. \fBcmd_yaml\fP
  107426. T} T{
  107427. T}
  107428. _
  107429. T{
  107430. \fBcmd_yamlex\fP
  107431. T} T{
  107432. T}
  107433. _
  107434. T{
  107435. \fBcobbler\fP
  107436. T} T{
  107437. T}
  107438. _
  107439. T{
  107440. \fBconfidant\fP
  107441. T} T{
  107442. T}
  107443. _
  107444. T{
  107445. \fBconsul_pillar\fP
  107446. T} T{
  107447. T}
  107448. _
  107449. T{
  107450. \fBcsvpillar\fP
  107451. T} T{
  107452. T}
  107453. _
  107454. T{
  107455. \fBdigicert\fP
  107456. T} T{
  107457. T}
  107458. _
  107459. T{
  107460. \fBdjango_orm\fP
  107461. T} T{
  107462. T}
  107463. _
  107464. T{
  107465. \fBec2_pillar\fP
  107466. T} T{
  107467. T}
  107468. _
  107469. T{
  107470. \fBetcd_pillar\fP
  107471. T} T{
  107472. T}
  107473. _
  107474. T{
  107475. \fBextra_minion_data_in_pillar\fP
  107476. T} T{
  107477. T}
  107478. _
  107479. T{
  107480. \fBfile_tree\fP
  107481. T} T{
  107482. T}
  107483. _
  107484. T{
  107485. \fBforeman\fP
  107486. T} T{
  107487. T}
  107488. _
  107489. T{
  107490. \fBgit_pillar\fP
  107491. T} T{
  107492. T}
  107493. _
  107494. T{
  107495. \fBgpg\fP
  107496. T} T{
  107497. T}
  107498. _
  107499. T{
  107500. \fBhg_pillar\fP
  107501. T} T{
  107502. T}
  107503. _
  107504. T{
  107505. \fBhiera\fP
  107506. T} T{
  107507. T}
  107508. _
  107509. T{
  107510. \fBhttp_json\fP
  107511. T} T{
  107512. T}
  107513. _
  107514. T{
  107515. \fBhttp_yaml\fP
  107516. T} T{
  107517. T}
  107518. _
  107519. T{
  107520. \fBlibvirt\fP
  107521. T} T{
  107522. T}
  107523. _
  107524. T{
  107525. \fBmakostack\fP
  107526. T} T{
  107527. T}
  107528. _
  107529. T{
  107530. \fBmongo\fP
  107531. T} T{
  107532. T}
  107533. _
  107534. T{
  107535. \fBmysql\fP
  107536. T} T{
  107537. T}
  107538. _
  107539. T{
  107540. \fBnacl\fP
  107541. T} T{
  107542. T}
  107543. _
  107544. T{
  107545. \fBnetbox\fP
  107546. T} T{
  107547. T}
  107548. _
  107549. T{
  107550. \fBneutron\fP
  107551. T} T{
  107552. T}
  107553. _
  107554. T{
  107555. \fBnodegroups\fP
  107556. T} T{
  107557. T}
  107558. _
  107559. T{
  107560. \fBpepa\fP
  107561. T} T{
  107562. T}
  107563. _
  107564. T{
  107565. \fBpillar_ldap\fP
  107566. T} T{
  107567. T}
  107568. _
  107569. T{
  107570. \fBpostgres\fP
  107571. T} T{
  107572. T}
  107573. _
  107574. T{
  107575. \fBpuppet\fP
  107576. T} T{
  107577. T}
  107578. _
  107579. T{
  107580. \fBreclass_adapter\fP
  107581. T} T{
  107582. T}
  107583. _
  107584. T{
  107585. \fBredismod\fP
  107586. T} T{
  107587. T}
  107588. _
  107589. T{
  107590. \fBrethinkdb_pillar\fP
  107591. T} T{
  107592. T}
  107593. _
  107594. T{
  107595. \fBs3\fP
  107596. T} T{
  107597. T}
  107598. _
  107599. T{
  107600. \fBsaltclass\fP
  107601. T} T{
  107602. T}
  107603. _
  107604. T{
  107605. \fBsql_base\fP
  107606. T} T{
  107607. T}
  107608. _
  107609. T{
  107610. \fBsqlcipher\fP
  107611. T} T{
  107612. T}
  107613. _
  107614. T{
  107615. \fI\%sqlite3\fP
  107616. T} T{
  107617. T}
  107618. _
  107619. T{
  107620. \fBstack\fP
  107621. T} T{
  107622. T}
  107623. _
  107624. T{
  107625. \fBsvn_pillar\fP
  107626. T} T{
  107627. T}
  107628. _
  107629. T{
  107630. \fBvarstack_pillar\fP
  107631. T} T{
  107632. T}
  107633. _
  107634. T{
  107635. \fBvault\fP
  107636. T} T{
  107637. T}
  107638. _
  107639. T{
  107640. \fBvenafi\fP
  107641. T} T{
  107642. T}
  107643. _
  107644. T{
  107645. \fBvirtkey\fP
  107646. T} T{
  107647. T}
  107648. _
  107649. T{
  107650. \fBvmware_pillar\fP
  107651. T} T{
  107652. T}
  107653. _
  107654. .TE
  107655. .SS proxy modules
  107656. .TS
  107657. center;
  107658. |l|l|.
  107659. _
  107660. T{
  107661. \fBarista_pyeapi\fP
  107662. T} T{
  107663. T}
  107664. _
  107665. T{
  107666. \fBchronos\fP
  107667. T} T{
  107668. T}
  107669. _
  107670. T{
  107671. \fBcimc\fP
  107672. T} T{
  107673. Proxy Minion interface module for managing Cisco Integrated Management Controller devices
  107674. T}
  107675. _
  107676. T{
  107677. \fBcisconso\fP
  107678. T} T{
  107679. Proxy Minion interface module for managing (practically) any network device with Cisco Network Services Orchestrator (Cisco NSO).
  107680. T}
  107681. _
  107682. T{
  107683. \fBdocker\fP
  107684. T} T{
  107685. Docker Proxy Minion
  107686. T}
  107687. _
  107688. T{
  107689. \fBdummy\fP
  107690. T} T{
  107691. T}
  107692. _
  107693. T{
  107694. \fBesxcluster\fP
  107695. T} T{
  107696. T}
  107697. _
  107698. T{
  107699. \fBesxdatacenter\fP
  107700. T} T{
  107701. T}
  107702. _
  107703. T{
  107704. \fBesxi\fP
  107705. T} T{
  107706. T}
  107707. _
  107708. T{
  107709. \fBesxvm\fP
  107710. T} T{
  107711. T}
  107712. _
  107713. T{
  107714. \fBfx2\fP
  107715. T} T{
  107716. T}
  107717. _
  107718. T{
  107719. \fBjunos\fP
  107720. T} T{
  107721. Interface with a Junos device via proxy\-minion.
  107722. T}
  107723. _
  107724. T{
  107725. \fBmarathon\fP
  107726. T} T{
  107727. T}
  107728. _
  107729. T{
  107730. \fBnapalm\fP
  107731. T} T{
  107732. T}
  107733. _
  107734. T{
  107735. \fBnetmiko_px\fP
  107736. T} T{
  107737. T}
  107738. _
  107739. T{
  107740. \fBnxos\fP
  107741. T} T{
  107742. T}
  107743. _
  107744. T{
  107745. \fBnxos_api\fP
  107746. T} T{
  107747. Proxy Minion to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  107748. T}
  107749. _
  107750. T{
  107751. \fBpanos\fP
  107752. T} T{
  107753. Proxy Minion interface module for managing Palo Alto firewall devices
  107754. T}
  107755. _
  107756. T{
  107757. \fBphilips_hue\fP
  107758. T} T{
  107759. T}
  107760. _
  107761. T{
  107762. \fBrest_sample\fP
  107763. T} T{
  107764. T}
  107765. _
  107766. T{
  107767. \fBssh_sample\fP
  107768. T} T{
  107769. T}
  107770. _
  107771. T{
  107772. \fBvcenter\fP
  107773. T} T{
  107774. T}
  107775. _
  107776. .TE
  107777. .SS salt.proxy.cimc module
  107778. .SS Proxy Minion interface module for managing Cisco Integrated Management Controller devices
  107779. .sp
  107780. New in version 2018.3.0.
  107781. .INDENT 0.0
  107782. .TP
  107783. .B codeauthor
  107784. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  107785. .TP
  107786. .B maturity
  107787. new
  107788. .TP
  107789. .B depends
  107790. none
  107791. .TP
  107792. .B platform
  107793. unix
  107794. .UNINDENT
  107795. .sp
  107796. This proxy minion enables Cisco Integrated Management Controller devices (hereafter referred to
  107797. as simply \(aqcimc\(aq devices to be treated individually like a Salt Minion.
  107798. .sp
  107799. The cimc proxy leverages the XML API functionality on the Cisco Integrated Management Controller.
  107800. The Salt proxy must have access to the cimc on HTTPS (tcp/443).
  107801. .sp
  107802. More in\-depth conceptual reading on Proxy Minions can be found in the
  107803. Proxy Minion section of Salt\(aqs
  107804. documentation.
  107805. .SS Configuration
  107806. .sp
  107807. To use this integration proxy module, please configure the following:
  107808. .SS Pillar
  107809. .sp
  107810. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  107811. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  107812. the ID.
  107813. .INDENT 0.0
  107814. .INDENT 3.5
  107815. .sp
  107816. .nf
  107817. .ft C
  107818. proxy:
  107819. proxytype: cimc
  107820. host: <ip or dns name of cimc host>
  107821. username: <cimc username>
  107822. password: <cimc password>
  107823. .ft P
  107824. .fi
  107825. .UNINDENT
  107826. .UNINDENT
  107827. .SS proxytype
  107828. .sp
  107829. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  107830. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  107831. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  107832. own proxy module, for example). To use this cimc Proxy Module, set this to
  107833. \fBcimc\fP\&.
  107834. .SS host
  107835. .sp
  107836. The location, or ip/dns, of the cimc host. Required.
  107837. .SS username
  107838. .sp
  107839. The username used to login to the cimc host. Required.
  107840. .SS password
  107841. .sp
  107842. The password used to login to the cimc host. Required.
  107843. .INDENT 0.0
  107844. .TP
  107845. .B salt.proxy.cimc.get_config_resolver_class(cid=None, hierarchical=False)
  107846. The configResolveClass method returns requested managed object in a given class.
  107847. .UNINDENT
  107848. .INDENT 0.0
  107849. .TP
  107850. .B salt.proxy.cimc.grains()
  107851. Get the grains from the proxied device
  107852. .UNINDENT
  107853. .INDENT 0.0
  107854. .TP
  107855. .B salt.proxy.cimc.grains_refresh()
  107856. Refresh the grains from the proxied device
  107857. .UNINDENT
  107858. .INDENT 0.0
  107859. .TP
  107860. .B salt.proxy.cimc.init(opts)
  107861. This function gets called when the proxy starts up.
  107862. .UNINDENT
  107863. .INDENT 0.0
  107864. .TP
  107865. .B salt.proxy.cimc.initialized()
  107866. Since grains are loaded in many different places and some of those
  107867. places occur before the proxy can be initialized, return whether
  107868. our init() function has been called
  107869. .UNINDENT
  107870. .INDENT 0.0
  107871. .TP
  107872. .B salt.proxy.cimc.logon()
  107873. Logs into the cimc device and returns the session cookie.
  107874. .UNINDENT
  107875. .INDENT 0.0
  107876. .TP
  107877. .B salt.proxy.cimc.logout(cookie=None)
  107878. Closes the session with the device.
  107879. .UNINDENT
  107880. .INDENT 0.0
  107881. .TP
  107882. .B salt.proxy.cimc.ping()
  107883. Returns true if the device is reachable, else false.
  107884. .UNINDENT
  107885. .INDENT 0.0
  107886. .TP
  107887. .B salt.proxy.cimc.prepare_return(x)
  107888. Converts the etree to dict
  107889. .UNINDENT
  107890. .INDENT 0.0
  107891. .TP
  107892. .B salt.proxy.cimc.set_config_modify(dn=None, inconfig=None, hierarchical=False)
  107893. The configConfMo method configures the specified managed object in a single subtree (for example, DN).
  107894. .UNINDENT
  107895. .INDENT 0.0
  107896. .TP
  107897. .B salt.proxy.cimc.shutdown()
  107898. Shutdown the connection to the proxy device. For this proxy,
  107899. shutdown is a no\-op.
  107900. .UNINDENT
  107901. .SS salt.proxy.cisconso
  107902. .sp
  107903. Proxy Minion interface module for managing (practically) any network device with
  107904. Cisco Network Services Orchestrator (Cisco NSO). Cisco NSO uses a series of
  107905. remote polling
  107906. agents, APIs and SSH commands to fetch network configuration and represent
  107907. it in a data model.
  107908. PyNSO, the Python module used by this proxy minion does the task of converting
  107909. native Python dictionaries
  107910. into NETCONF/YANG syntax that the REST API for Cisco NSO can then use to set
  107911. the configuration of the target
  107912. network device.
  107913. .INDENT 0.0
  107914. .TP
  107915. .B Supported devices:
  107916. .INDENT 7.0
  107917. .IP \(bu 2
  107918. A10 AX Series
  107919. .IP \(bu 2
  107920. Arista 7150 Series
  107921. .IP \(bu 2
  107922. Ciena 3000, 5000, ESM
  107923. .IP \(bu 2
  107924. H3c S5800 Series
  107925. .IP \(bu 2
  107926. Overture 1400, 2200, 5000, 5100, 6000
  107927. .IP \(bu 2
  107928. Accedian MetroNID
  107929. .IP \(bu 2
  107930. Avaya ERS 4000, SR8000, VSP 9000
  107931. .IP \(bu 2
  107932. .INDENT 2.0
  107933. .TP
  107934. .B Cisco: APIC\-DC, ASA, IOS, IOS XE, IOS XR, er, ME\-4600, NX OS,
  107935. Prime Network Registrar, Quantum, StarOS, UCS ManagWSA
  107936. .UNINDENT
  107937. .IP \(bu 2
  107938. Huawei: NE40E, quidway series, Enterprise Network Simulation Framework
  107939. .IP \(bu 2
  107940. PaloAlto PA\-2000, PA\-3000, Virtualized Firewalls
  107941. .IP \(bu 2
  107942. Adtran 900 Series
  107943. .IP \(bu 2
  107944. Brocade ADX, MLX, Netiron, Vyatta
  107945. .IP \(bu 2
  107946. Dell Force 10 Networking S\-Series
  107947. .IP \(bu 2
  107948. Infinera DTN\-X Multi\-Terabit Packet Optical Network Platform
  107949. .IP \(bu 2
  107950. Pulsecom SuperG
  107951. .IP \(bu 2
  107952. Adva 150CC Series
  107953. .IP \(bu 2
  107954. CableLabs Converged Cable Access Platform
  107955. .IP \(bu 2
  107956. Ericsson EFN324 Series, SE family
  107957. .IP \(bu 2
  107958. Juniper: Contrail, EX, M, MX, QFX, SRX, Virtual SRX
  107959. .IP \(bu 2
  107960. Quagga Routing Software
  107961. .IP \(bu 2
  107962. Affirmed Networks
  107963. .IP \(bu 2
  107964. Citrix Netscaler
  107965. .IP \(bu 2
  107966. F5 BIG\-IP
  107967. .IP \(bu 2
  107968. NEC iPasolink
  107969. .IP \(bu 2
  107970. Riverbed Steelhead Series
  107971. .IP \(bu 2
  107972. Alcatel\-Lucent 7XXX, SAM
  107973. .IP \(bu 2
  107974. Clavister
  107975. .IP \(bu 2
  107976. Fortinet
  107977. .IP \(bu 2
  107978. Nominum DCS
  107979. .IP \(bu 2
  107980. Sonus SBC 5000 Series
  107981. .IP \(bu 2
  107982. Allied Telesys
  107983. .IP \(bu 2
  107984. Open vSwitch
  107985. .UNINDENT
  107986. .UNINDENT
  107987. .sp
  107988. New in version 2016.11.0.
  107989. .INDENT 0.0
  107990. .TP
  107991. .B codeauthor
  107992. \fIAnthony Shaw <anthony.shaw@dimensiondata.com>\fP
  107993. .UNINDENT
  107994. .sp
  107995. This proxy minion enables a consistent interface to fetch, control and maintain
  107996. the configuration of network devices via a NETCONF\-compliant control plane.
  107997. Cisco Network Services Orchestrator.
  107998. .sp
  107999. More in\-depth conceptual reading on Proxy Minions can be found in the
  108000. Proxy Minion section of Salt\(aqs
  108001. documentation.
  108002. .SS Dependencies
  108003. .INDENT 0.0
  108004. .IP \(bu 2
  108005. pynso Python module
  108006. .UNINDENT
  108007. .SS PyNSO
  108008. .sp
  108009. PyNSO can be installed via pip:
  108010. .INDENT 0.0
  108011. .INDENT 3.5
  108012. .sp
  108013. .nf
  108014. .ft C
  108015. pip install pynso
  108016. .ft P
  108017. .fi
  108018. .UNINDENT
  108019. .UNINDENT
  108020. .SS Configuration
  108021. .sp
  108022. To use this integration proxy module, please configure the following:
  108023. .SS Pillar
  108024. .sp
  108025. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  108026. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  108027. the ID. At a minimum for communication with the NSO host, the pillar should
  108028. look like this:
  108029. .INDENT 0.0
  108030. .INDENT 3.5
  108031. .sp
  108032. .nf
  108033. .ft C
  108034. proxy:
  108035. proxytype: cisconso
  108036. host: <ip or dns name of host>
  108037. port: 8080
  108038. use_ssl: false
  108039. username: <username>
  108040. password: password
  108041. .ft P
  108042. .fi
  108043. .UNINDENT
  108044. .UNINDENT
  108045. .SS proxytype
  108046. .sp
  108047. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108048. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108049. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108050. own proxy module, for example). To use this Cisco NSO Proxy Module, set this to
  108051. \fBcisconso\fP\&.
  108052. .SS host
  108053. .sp
  108054. The location, or IP/dns, of the Cisco NSO API host. Required.
  108055. .SS username
  108056. .sp
  108057. The username used to login to the Cisco NSO host, such as \fBadmin\fP\&. Required.
  108058. .SS passwords
  108059. .sp
  108060. The password for the given user. Required.
  108061. .SS use_ssl
  108062. .sp
  108063. Whether to use HTTPS messaging to speak to the API.
  108064. .SS port
  108065. .sp
  108066. The port that the Cisco NSO API is running on, 8080 by default
  108067. .SS Salt Proxy
  108068. .sp
  108069. After your pillar is in place, you can test the proxy. The proxy can run on
  108070. any machine that has network connectivity to your Salt Master and to the
  108071. Cisco NSO host in question. SaltStack recommends that the machine running the
  108072. salt\-proxy process also run a regular minion, though it is not strictly
  108073. necessary.
  108074. .sp
  108075. On the machine that will run the proxy, make sure
  108076. there is an \fB/etc/salt/proxy\fP
  108077. file with at least the following in it:
  108078. .INDENT 0.0
  108079. .INDENT 3.5
  108080. .sp
  108081. .nf
  108082. .ft C
  108083. master: <ip or hostname of salt\-master>
  108084. .ft P
  108085. .fi
  108086. .UNINDENT
  108087. .UNINDENT
  108088. .sp
  108089. You can then start the salt\-proxy process with:
  108090. .INDENT 0.0
  108091. .INDENT 3.5
  108092. .sp
  108093. .nf
  108094. .ft C
  108095. salt\-proxy \-\-proxyid <id you want to give the host>
  108096. .ft P
  108097. .fi
  108098. .UNINDENT
  108099. .UNINDENT
  108100. .sp
  108101. You may want to add \fB\-l debug\fP to run the above in the foreground in
  108102. debug mode just to make sure everything is OK.
  108103. .sp
  108104. Next, accept the key for the proxy on your salt\-master, just like you
  108105. would for a regular minion:
  108106. .INDENT 0.0
  108107. .INDENT 3.5
  108108. .sp
  108109. .nf
  108110. .ft C
  108111. salt\-key \-a <id you gave the cisconso host>
  108112. .ft P
  108113. .fi
  108114. .UNINDENT
  108115. .UNINDENT
  108116. .sp
  108117. You can confirm that the pillar data is in place for the proxy:
  108118. .INDENT 0.0
  108119. .INDENT 3.5
  108120. .sp
  108121. .nf
  108122. .ft C
  108123. salt <id> pillar.items
  108124. .ft P
  108125. .fi
  108126. .UNINDENT
  108127. .UNINDENT
  108128. .sp
  108129. And now you should be able to ping the Cisco NSO host to make sure it is
  108130. responding:
  108131. .INDENT 0.0
  108132. .INDENT 3.5
  108133. .sp
  108134. .nf
  108135. .ft C
  108136. salt <id> test.ping
  108137. .ft P
  108138. .fi
  108139. .UNINDENT
  108140. .UNINDENT
  108141. .INDENT 0.0
  108142. .TP
  108143. .B salt.proxy.cisconso.apply_rollback(datastore, name)
  108144. Apply a system rollback
  108145. .INDENT 7.0
  108146. .TP
  108147. .B Parameters
  108148. .INDENT 7.0
  108149. .IP \(bu 2
  108150. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108151. One of the NETCONF store IETF types
  108152. .IP \(bu 2
  108153. \fBname\fP (\fBstr\fP) \-\- an ID of the rollback to restore
  108154. .UNINDENT
  108155. .UNINDENT
  108156. .UNINDENT
  108157. .INDENT 0.0
  108158. .TP
  108159. .B salt.proxy.cisconso.get_data(datastore, path)
  108160. Get the configuration of the device tree at the given path
  108161. .INDENT 7.0
  108162. .TP
  108163. .B Parameters
  108164. .INDENT 7.0
  108165. .IP \(bu 2
  108166. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108167. One of the NETCONF store IETF types
  108168. .IP \(bu 2
  108169. \fBpath\fP (\fBlist\fP of \fBstr\fP OR \fBtuple\fP) \-\- The device path, a list of element names in order,
  108170. comma separated
  108171. .UNINDENT
  108172. .TP
  108173. .B Returns
  108174. The network configuration at that tree
  108175. .TP
  108176. .B Return type
  108177. \fBdict\fP
  108178. .UNINDENT
  108179. .INDENT 7.0
  108180. .INDENT 3.5
  108181. .sp
  108182. .nf
  108183. .ft C
  108184. salt cisco\-nso cisconso.get_data devices
  108185. .ft P
  108186. .fi
  108187. .UNINDENT
  108188. .UNINDENT
  108189. .UNINDENT
  108190. .INDENT 0.0
  108191. .TP
  108192. .B salt.proxy.cisconso.get_rollback(name)
  108193. Get the backup of stored a configuration rollback
  108194. .INDENT 7.0
  108195. .TP
  108196. .B Parameters
  108197. \fBname\fP (\fBstr\fP) \-\- Typically an ID of the backup
  108198. .TP
  108199. .B Return type
  108200. \fBstr\fP
  108201. .TP
  108202. .B Returns
  108203. the contents of the rollback snapshot
  108204. .UNINDENT
  108205. .UNINDENT
  108206. .INDENT 0.0
  108207. .TP
  108208. .B salt.proxy.cisconso.get_rollbacks()
  108209. Get a list of stored configuration rollbacks
  108210. .UNINDENT
  108211. .INDENT 0.0
  108212. .TP
  108213. .B salt.proxy.cisconso.grains()
  108214. Get the grains from the proxy device.
  108215. .UNINDENT
  108216. .INDENT 0.0
  108217. .TP
  108218. .B salt.proxy.cisconso.init(opts)
  108219. .UNINDENT
  108220. .INDENT 0.0
  108221. .TP
  108222. .B salt.proxy.cisconso.ping()
  108223. Check to see if the host is responding. Returns False if the host didn\(aqt
  108224. respond, True otherwise.
  108225. .sp
  108226. CLI Example:
  108227. .INDENT 7.0
  108228. .INDENT 3.5
  108229. .sp
  108230. .nf
  108231. .ft C
  108232. salt cisco\-nso test.ping
  108233. .ft P
  108234. .fi
  108235. .UNINDENT
  108236. .UNINDENT
  108237. .UNINDENT
  108238. .INDENT 0.0
  108239. .TP
  108240. .B salt.proxy.cisconso.set_data_value(datastore, path, data)
  108241. Get a data entry in a datastore
  108242. .INDENT 7.0
  108243. .TP
  108244. .B Parameters
  108245. .INDENT 7.0
  108246. .IP \(bu 2
  108247. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108248. One of the NETCONF store IETF types
  108249. .IP \(bu 2
  108250. \fBpath\fP (\fBlist\fP of \fBstr\fP OR \fBtuple\fP) \-\- The device path to set the value at,
  108251. a list of element names in order, comma separated
  108252. .IP \(bu 2
  108253. \fBdata\fP (\fBdict\fP) \-\- The new value at the given path
  108254. .UNINDENT
  108255. .TP
  108256. .B Return type
  108257. \fBbool\fP
  108258. .TP
  108259. .B Returns
  108260. \fBTrue\fP if successful, otherwise error.
  108261. .UNINDENT
  108262. .UNINDENT
  108263. .INDENT 0.0
  108264. .TP
  108265. .B salt.proxy.cisconso.shutdown()
  108266. Shutdown the connection to the proxy device. For this proxy,
  108267. shutdown is a no\-op.
  108268. .UNINDENT
  108269. .SS salt.proxy.docker module
  108270. .sp
  108271. Docker Proxy Minion
  108272. .INDENT 0.0
  108273. .TP
  108274. .B depends
  108275. docker
  108276. .UNINDENT
  108277. .sp
  108278. This proxy minion is just a shim to the docker executor, which will use the
  108279. \fBdocker.call\fP for everything except
  108280. state runs.
  108281. .sp
  108282. To configure the proxy minion:
  108283. .INDENT 0.0
  108284. .INDENT 3.5
  108285. .sp
  108286. .nf
  108287. .ft C
  108288. proxy:
  108289. proxytype: docker
  108290. name: festive_leakey
  108291. .ft P
  108292. .fi
  108293. .UNINDENT
  108294. .UNINDENT
  108295. .sp
  108296. It is also possible to just name the proxy minion the same name as the
  108297. container, and use grains to configure the proxy minion:
  108298. .INDENT 0.0
  108299. .INDENT 3.5
  108300. .sp
  108301. .nf
  108302. .ft C
  108303. proxy:
  108304. proxytype: docker
  108305. name: {{grains[\(aqid\(aq]}}
  108306. .ft P
  108307. .fi
  108308. .UNINDENT
  108309. .UNINDENT
  108310. .sp
  108311. name
  108312. .INDENT 0.0
  108313. .INDENT 3.5
  108314. Name of the docker container
  108315. .UNINDENT
  108316. .UNINDENT
  108317. .INDENT 0.0
  108318. .TP
  108319. .B salt.proxy.docker.init(opts)
  108320. Always initialize
  108321. .UNINDENT
  108322. .INDENT 0.0
  108323. .TP
  108324. .B salt.proxy.docker.initialized()
  108325. This should always be initialized
  108326. .UNINDENT
  108327. .INDENT 0.0
  108328. .TP
  108329. .B salt.proxy.docker.module_executors()
  108330. List of module executors to use for this Proxy Minion
  108331. .UNINDENT
  108332. .INDENT 0.0
  108333. .TP
  108334. .B salt.proxy.docker.shutdown(opts)
  108335. Nothing needs to be done to shutdown
  108336. .UNINDENT
  108337. .SS salt.proxy.junos
  108338. .sp
  108339. 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
  108340. .INDENT 0.0
  108341. .INDENT 3.5
  108342. .sp
  108343. .nf
  108344. .ft C
  108345. proxy:
  108346. proxytype: junos
  108347. host: <ip or dns name of host>
  108348. username: <username>
  108349. port: 830
  108350. password: <secret>
  108351. .ft P
  108352. .fi
  108353. .UNINDENT
  108354. .UNINDENT
  108355. .sp
  108356. In \(aq/srv/pillar/top.sls\(aq map the device details with the proxy name.
  108357. .INDENT 0.0
  108358. .INDENT 3.5
  108359. .sp
  108360. .nf
  108361. .ft C
  108362. base:
  108363. \(aqvmx\(aq:
  108364. \- details
  108365. .ft P
  108366. .fi
  108367. .UNINDENT
  108368. .UNINDENT
  108369. .sp
  108370. After storing the device information in the pillar, configure the proxy in \(aq/etc/salt/proxy\(aq
  108371. .INDENT 0.0
  108372. .INDENT 3.5
  108373. .sp
  108374. .nf
  108375. .ft C
  108376. master: <ip or hostname of salt\-master>
  108377. .ft P
  108378. .fi
  108379. .UNINDENT
  108380. .UNINDENT
  108381. .sp
  108382. Run the salt proxy via the following command:
  108383. .INDENT 0.0
  108384. .INDENT 3.5
  108385. .sp
  108386. .nf
  108387. .ft C
  108388. salt\-proxy \-\-proxyid=vmx
  108389. .ft P
  108390. .fi
  108391. .UNINDENT
  108392. .UNINDENT
  108393. .INDENT 0.0
  108394. .TP
  108395. .B salt.proxy.junos.alive(opts)
  108396. Validate and return the connection status with the remote device.
  108397. .sp
  108398. New in version 2018.3.0.
  108399. .UNINDENT
  108400. .INDENT 0.0
  108401. .TP
  108402. .B salt.proxy.junos.conn()
  108403. .UNINDENT
  108404. .INDENT 0.0
  108405. .TP
  108406. .B salt.proxy.junos.get_serialized_facts()
  108407. .UNINDENT
  108408. .INDENT 0.0
  108409. .TP
  108410. .B salt.proxy.junos.init(opts)
  108411. Open the connection to the Junos device, login, and bind to the
  108412. Resource class
  108413. .UNINDENT
  108414. .INDENT 0.0
  108415. .TP
  108416. .B salt.proxy.junos.initialized()
  108417. .UNINDENT
  108418. .INDENT 0.0
  108419. .TP
  108420. .B salt.proxy.junos.ping()
  108421. Ping? Pong!
  108422. .UNINDENT
  108423. .INDENT 0.0
  108424. .TP
  108425. .B salt.proxy.junos.proxytype()
  108426. Returns the name of this proxy
  108427. .UNINDENT
  108428. .INDENT 0.0
  108429. .TP
  108430. .B salt.proxy.junos.shutdown(opts)
  108431. This is called when the proxy\-minion is exiting to make sure the
  108432. connection to the device is closed cleanly.
  108433. .UNINDENT
  108434. .SS salt.proxy.nxos_api module
  108435. .sp
  108436. Proxy Minion to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  108437. .sp
  108438. New in version 2019.2.0.
  108439. .sp
  108440. Proxy module for managing Cisco Nexus switches via the NX\-API.
  108441. .INDENT 0.0
  108442. .TP
  108443. .B codeauthor
  108444. Mircea Ulinic <\fI\%ping@mirceaulinic.net\fP>
  108445. .TP
  108446. .B maturity
  108447. new
  108448. .TP
  108449. .B platform
  108450. any
  108451. .UNINDENT
  108452. .SS Usage
  108453. .sp
  108454. \fBNOTE:\fP
  108455. .INDENT 0.0
  108456. .INDENT 3.5
  108457. To be able to use this module you need to enable to NX\-API on your switch,
  108458. by executing \fBfeature nxapi\fP in configuration mode.
  108459. .sp
  108460. Configuration example:
  108461. .INDENT 0.0
  108462. .INDENT 3.5
  108463. .sp
  108464. .nf
  108465. .ft C
  108466. switch# conf t
  108467. switch(config)# feature nxapi
  108468. .ft P
  108469. .fi
  108470. .UNINDENT
  108471. .UNINDENT
  108472. .sp
  108473. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  108474. .sp
  108475. Output example:
  108476. .INDENT 0.0
  108477. .INDENT 3.5
  108478. .sp
  108479. .nf
  108480. .ft C
  108481. switch# show nxapi
  108482. nxapi enabled
  108483. HTTPS Listen on port 443
  108484. .ft P
  108485. .fi
  108486. .UNINDENT
  108487. .UNINDENT
  108488. .UNINDENT
  108489. .UNINDENT
  108490. .sp
  108491. \fBNOTE:\fP
  108492. .INDENT 0.0
  108493. .INDENT 3.5
  108494. NX\-API requires modern NXOS distributions, typically at least 7.0 depending
  108495. on the hardware. Due to reliability reasons it is recommended to run the
  108496. most recent version.
  108497. .sp
  108498. 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
  108499. for more details.
  108500. .UNINDENT
  108501. .UNINDENT
  108502. .SS Pillar
  108503. .sp
  108504. The \fBnxos_api\fP proxy configuration requires the following parameters in order
  108505. to connect to the network switch:
  108506. .INDENT 0.0
  108507. .TP
  108508. .B transport: \fBhttps\fP
  108509. Specifies the type of connection transport to use. Valid values for the
  108510. connection are \fBhttp\fP, and \fBhttps\fP\&.
  108511. .TP
  108512. .B host: \fBlocalhost\fP
  108513. The IP address or DNS host name of the connection device.
  108514. .TP
  108515. .B username: \fBadmin\fP
  108516. The username to pass to the device to authenticate the NX\-API connection.
  108517. .TP
  108518. .B password
  108519. The password to pass to the device to authenticate the NX\-API connection.
  108520. .TP
  108521. .B port
  108522. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  108523. not specified, the default value is automatically determined by the
  108524. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  108525. .TP
  108526. .B timeout: \fB60\fP
  108527. Time in seconds to wait for the device to respond. Default: 60 seconds.
  108528. .TP
  108529. .B verify: \fBTrue\fP
  108530. Either a boolean, in which case it controls whether we verify the NX\-API
  108531. TLS certificate, or a string, in which case it must be a path to a CA bundle
  108532. to use. Defaults to \fBTrue\fP\&.
  108533. .sp
  108534. When there is no certificate configuration on the device and this option is
  108535. set as \fBTrue\fP (default), the commands will fail with the following error:
  108536. \fBSSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)\fP\&.
  108537. In this case, you either need to configure a proper certificate on the
  108538. device (\fIrecommended\fP), or bypass the checks setting this argument as \fBFalse\fP
  108539. with all the security risks considered.
  108540. .sp
  108541. 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
  108542. to see how to properly configure the certificate.
  108543. .UNINDENT
  108544. .sp
  108545. All the arguments may be optional, depending on your setup.
  108546. .SS Proxy Pillar Example
  108547. .INDENT 0.0
  108548. .INDENT 3.5
  108549. .sp
  108550. .nf
  108551. .ft C
  108552. proxy:
  108553. proxytype: nxos_api
  108554. host: switch1.example.com
  108555. username: example
  108556. password: example
  108557. .ft P
  108558. .fi
  108559. .UNINDENT
  108560. .UNINDENT
  108561. .INDENT 0.0
  108562. .TP
  108563. .B salt.proxy.nxos_api.get_conn_args()
  108564. Returns the connection arguments of the Proxy Minion.
  108565. .UNINDENT
  108566. .INDENT 0.0
  108567. .TP
  108568. .B salt.proxy.nxos_api.init(opts)
  108569. Open the connection to the Nexsu switch over the NX\-API.
  108570. .sp
  108571. As the communication is HTTP based, there is no connection to maintain,
  108572. however, in order to test the connectivity and make sure we are able to
  108573. bring up this Minion, we are executing a very simple command (\fBshow clock\fP)
  108574. which doesn\(aqt come with much overhead and it\(aqs sufficient to confirm we are
  108575. indeed able to connect to the NX\-API endpoint as configured.
  108576. .UNINDENT
  108577. .INDENT 0.0
  108578. .TP
  108579. .B salt.proxy.nxos_api.initialized()
  108580. Connection finished initializing?
  108581. .UNINDENT
  108582. .INDENT 0.0
  108583. .TP
  108584. .B salt.proxy.nxos_api.ping()
  108585. Connection open successfully?
  108586. .UNINDENT
  108587. .INDENT 0.0
  108588. .TP
  108589. .B salt.proxy.nxos_api.rpc(commands, method=u\(aqcli\(aq, **kwargs)
  108590. Executes an RPC request over the NX\-API.
  108591. .UNINDENT
  108592. .INDENT 0.0
  108593. .TP
  108594. .B salt.proxy.nxos_api.shutdown(opts)
  108595. Closes connection with the device.
  108596. .UNINDENT
  108597. .SS salt.proxy.panos module
  108598. .SS Proxy Minion interface module for managing Palo Alto firewall devices
  108599. .sp
  108600. New in version 2018.3.0.
  108601. .INDENT 0.0
  108602. .TP
  108603. .B codeauthor
  108604. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  108605. .TP
  108606. .B maturity
  108607. new
  108608. .TP
  108609. .B depends
  108610. none
  108611. .TP
  108612. .B platform
  108613. unix
  108614. .UNINDENT
  108615. .sp
  108616. This proxy minion enables Palo Alto firewalls (hereafter referred to
  108617. as simply \(aqpanos\(aq) to be treated individually like a Salt Minion.
  108618. .sp
  108619. The panos proxy leverages the XML API functionality on the Palo Alto
  108620. firewall. The Salt proxy must have access to the Palo Alto firewall on
  108621. HTTPS (tcp/443).
  108622. .sp
  108623. More in\-depth conceptual reading on Proxy Minions can be found in the
  108624. Proxy Minion section of Salt\(aqs
  108625. documentation.
  108626. .SS Configuration
  108627. .sp
  108628. To use this integration proxy module, please configure the following:
  108629. .SS Pillar
  108630. .sp
  108631. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  108632. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  108633. the ID. There are four connection options available for the panos proxy module.
  108634. .INDENT 0.0
  108635. .IP \(bu 2
  108636. Direct Device (Password)
  108637. .IP \(bu 2
  108638. Direct Device (API Key)
  108639. .IP \(bu 2
  108640. Panorama Pass\-Through (Password)
  108641. .IP \(bu 2
  108642. Panorama Pass\-Through (API Key)
  108643. .UNINDENT
  108644. .SS Direct Device (Password)
  108645. .sp
  108646. The direct device configuration configures the proxy to connect directly to
  108647. the device with username and password.
  108648. .INDENT 0.0
  108649. .INDENT 3.5
  108650. .sp
  108651. .nf
  108652. .ft C
  108653. proxy:
  108654. proxytype: panos
  108655. host: <ip or dns name of panos host>
  108656. username: <panos username>
  108657. password: <panos password>
  108658. .ft P
  108659. .fi
  108660. .UNINDENT
  108661. .UNINDENT
  108662. .SS proxytype
  108663. .sp
  108664. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108665. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108666. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108667. own proxy module, for example). To use this panos Proxy Module, set this to
  108668. \fBpanos\fP\&.
  108669. .SS host
  108670. .sp
  108671. The location, or ip/dns, of the panos host. Required.
  108672. .SS username
  108673. .sp
  108674. The username used to login to the panos host. Required.
  108675. .SS password
  108676. .sp
  108677. The password used to login to the panos host. Required.
  108678. .SS Direct Device (API Key)
  108679. .sp
  108680. Palo Alto devices allow for access to the XML API with a generated \(aqAPI key\(aq_
  108681. instead of username and password.
  108682. .INDENT 0.0
  108683. .INDENT 3.5
  108684. .sp
  108685. .nf
  108686. .ft C
  108687. proxy:
  108688. proxytype: panos
  108689. host: <ip or dns name of panos host>
  108690. apikey: <panos generated api key>
  108691. .ft P
  108692. .fi
  108693. .UNINDENT
  108694. .UNINDENT
  108695. .SS proxytype
  108696. .sp
  108697. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108698. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108699. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108700. own proxy module, for example). To use this panos Proxy Module, set this to
  108701. \fBpanos\fP\&.
  108702. .SS host
  108703. .sp
  108704. The location, or ip/dns, of the panos host. Required.
  108705. .SS apikey
  108706. .sp
  108707. The generated XML API key for the panos host. Required.
  108708. .SS Panorama Pass\-Through (Password)
  108709. .sp
  108710. The Panorama pass\-through method sends all connections through the Panorama
  108711. management system. It passes the connections to the appropriate device using
  108712. the serial number of the Palo Alto firewall.
  108713. .sp
  108714. This option will reduce the number of connections that must be present for the
  108715. proxy server. It will only require a connection to the Panorama server.
  108716. .sp
  108717. The username and password will be for authentication to the Panorama server,
  108718. not the panos device.
  108719. .INDENT 0.0
  108720. .INDENT 3.5
  108721. .sp
  108722. .nf
  108723. .ft C
  108724. proxy:
  108725. proxytype: panos
  108726. serial: <serial number of panos host>
  108727. host: <ip or dns name of the panorama server>
  108728. username: <panorama server username>
  108729. password: <panorama server password>
  108730. .ft P
  108731. .fi
  108732. .UNINDENT
  108733. .UNINDENT
  108734. .SS proxytype
  108735. .sp
  108736. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108737. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108738. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108739. own proxy module, for example). To use this panos Proxy Module, set this to
  108740. \fBpanos\fP\&.
  108741. .SS serial
  108742. .sp
  108743. The serial number of the panos host. Required.
  108744. .SS host
  108745. .sp
  108746. The location, or ip/dns, of the Panorama server. Required.
  108747. .SS username
  108748. .sp
  108749. The username used to login to the Panorama server. Required.
  108750. .SS password
  108751. .sp
  108752. The password used to login to the Panorama server. Required.
  108753. .SS Panorama Pass\-Through (API Key)
  108754. .sp
  108755. The Panorama server can also utilize a generated \(aqAPI key\(aq_ for authentication.
  108756. .INDENT 0.0
  108757. .INDENT 3.5
  108758. .sp
  108759. .nf
  108760. .ft C
  108761. proxy:
  108762. proxytype: panos
  108763. serial: <serial number of panos host>
  108764. host: <ip or dns name of the panorama server>
  108765. apikey: <panos generated api key>
  108766. .ft P
  108767. .fi
  108768. .UNINDENT
  108769. .UNINDENT
  108770. .SS proxytype
  108771. .sp
  108772. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108773. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108774. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108775. own proxy module, for example). To use this panos Proxy Module, set this to
  108776. \fBpanos\fP\&.
  108777. .SS serial
  108778. .sp
  108779. The serial number of the panos host. Required.
  108780. .SS host
  108781. .sp
  108782. The location, or ip/dns, of the Panorama server. Required.
  108783. .SS apikey
  108784. .sp
  108785. The generated XML API key for the Panorama server. Required.
  108786. .INDENT 0.0
  108787. .TP
  108788. .B salt.proxy.panos.call(payload=None)
  108789. This function captures the query string and sends it to the Palo Alto device.
  108790. .UNINDENT
  108791. .INDENT 0.0
  108792. .TP
  108793. .B salt.proxy.panos.grains()
  108794. Get the grains from the proxied device
  108795. .UNINDENT
  108796. .INDENT 0.0
  108797. .TP
  108798. .B salt.proxy.panos.grains_refresh()
  108799. Refresh the grains from the proxied device
  108800. .UNINDENT
  108801. .INDENT 0.0
  108802. .TP
  108803. .B salt.proxy.panos.init(opts)
  108804. This function gets called when the proxy starts up. For
  108805. panos devices, a determination is made on the connection type
  108806. and the appropriate connection details that must be cached.
  108807. .UNINDENT
  108808. .INDENT 0.0
  108809. .TP
  108810. .B salt.proxy.panos.initialized()
  108811. Since grains are loaded in many different places and some of those
  108812. places occur before the proxy can be initialized, return whether
  108813. our init() function has been called
  108814. .UNINDENT
  108815. .INDENT 0.0
  108816. .TP
  108817. .B salt.proxy.panos.is_required_version(required_version=u\(aq0.0.0\(aq)
  108818. Because different versions of Palo Alto support different command sets, this function
  108819. will return true if the current version of Palo Alto supports the required command.
  108820. .UNINDENT
  108821. .INDENT 0.0
  108822. .TP
  108823. .B salt.proxy.panos.ping()
  108824. Returns true if the device is reachable, else false.
  108825. .UNINDENT
  108826. .INDENT 0.0
  108827. .TP
  108828. .B salt.proxy.panos.shutdown()
  108829. Shutdown the connection to the proxy device. For this proxy,
  108830. shutdown is a no\-op.
  108831. .UNINDENT
  108832. .SS queue modules
  108833. .TS
  108834. center;
  108835. |l|l|.
  108836. _
  108837. T{
  108838. \fBpgjsonb_queue\fP
  108839. T} T{
  108840. T}
  108841. _
  108842. T{
  108843. \fBsqlite_queue\fP
  108844. T} T{
  108845. T}
  108846. _
  108847. .TE
  108848. .SS roster modules
  108849. .TS
  108850. center;
  108851. |l|l|.
  108852. _
  108853. T{
  108854. \fBansible\fP
  108855. T} T{
  108856. T}
  108857. _
  108858. T{
  108859. \fBcache\fP
  108860. T} T{
  108861. T}
  108862. _
  108863. T{
  108864. \fBcloud\fP
  108865. T} T{
  108866. T}
  108867. _
  108868. T{
  108869. \fBclustershell\fP
  108870. T} T{
  108871. T}
  108872. _
  108873. T{
  108874. \fBflat\fP
  108875. T} T{
  108876. T}
  108877. _
  108878. T{
  108879. \fI\%range\fP
  108880. T} T{
  108881. T}
  108882. _
  108883. T{
  108884. \fBscan\fP
  108885. T} T{
  108886. T}
  108887. _
  108888. T{
  108889. \fBsshconfig\fP
  108890. T} T{
  108891. T}
  108892. _
  108893. T{
  108894. \fBterraform\fP
  108895. T} T{
  108896. T}
  108897. _
  108898. .TE
  108899. .SS runner modules
  108900. .TS
  108901. center;
  108902. |l|l|.
  108903. _
  108904. T{
  108905. \fBasam\fP
  108906. T} T{
  108907. Novell ASAM Runner
  108908. T}
  108909. _
  108910. T{
  108911. \fBauth\fP
  108912. T} T{
  108913. T}
  108914. _
  108915. T{
  108916. \fBbgp\fP
  108917. T} T{
  108918. T}
  108919. _
  108920. T{
  108921. \fBcache\fP
  108922. T} T{
  108923. T}
  108924. _
  108925. T{
  108926. \fBcloud\fP
  108927. T} T{
  108928. T}
  108929. _
  108930. T{
  108931. \fBconfig\fP
  108932. T} T{
  108933. T}
  108934. _
  108935. T{
  108936. \fBddns\fP
  108937. T} T{
  108938. T}
  108939. _
  108940. T{
  108941. \fBdigicertapi\fP
  108942. T} T{
  108943. T}
  108944. _
  108945. T{
  108946. \fBdoc\fP
  108947. T} T{
  108948. T}
  108949. _
  108950. T{
  108951. \fBdrac\fP
  108952. T} T{
  108953. Manage Dell DRAC from the Master
  108954. T}
  108955. _
  108956. T{
  108957. \fBerror\fP
  108958. T} T{
  108959. T}
  108960. _
  108961. T{
  108962. \fBevent\fP
  108963. T} T{
  108964. T}
  108965. _
  108966. T{
  108967. \fBf5\fP
  108968. T} T{
  108969. Runner to provide F5 Load Balancer functionality
  108970. T}
  108971. _
  108972. T{
  108973. \fBfileserver\fP
  108974. T} T{
  108975. T}
  108976. _
  108977. T{
  108978. \fBgit_pillar\fP
  108979. T} T{
  108980. T}
  108981. _
  108982. T{
  108983. \fI\%http\fP
  108984. T} T{
  108985. T}
  108986. _
  108987. T{
  108988. \fBjobs\fP
  108989. T} T{
  108990. T}
  108991. _
  108992. T{
  108993. \fBlaunchd\fP
  108994. T} T{
  108995. Manage launchd plist files
  108996. T}
  108997. _
  108998. T{
  108999. \fBlxc\fP
  109000. T} T{
  109001. T}
  109002. _
  109003. T{
  109004. \fBmanage\fP
  109005. T} T{
  109006. T}
  109007. _
  109008. T{
  109009. \fBmattermost\fP
  109010. T} T{
  109011. T}
  109012. _
  109013. T{
  109014. \fBmine\fP
  109015. T} T{
  109016. T}
  109017. _
  109018. T{
  109019. \fBnacl\fP
  109020. T} T{
  109021. T}
  109022. _
  109023. T{
  109024. \fBnet\fP
  109025. T} T{
  109026. T}
  109027. _
  109028. T{
  109029. \fBnetwork\fP
  109030. T} T{
  109031. T}
  109032. _
  109033. T{
  109034. \fBpagerduty\fP
  109035. T} T{
  109036. T}
  109037. _
  109038. T{
  109039. \fBpillar\fP
  109040. T} T{
  109041. T}
  109042. _
  109043. T{
  109044. \fBpkg\fP
  109045. T} T{
  109046. T}
  109047. _
  109048. T{
  109049. \fI\%queue\fP
  109050. T} T{
  109051. T}
  109052. _
  109053. T{
  109054. \fBreactor\fP
  109055. T} T{
  109056. T}
  109057. _
  109058. T{
  109059. \fBsalt\fP
  109060. T} T{
  109061. Salt package
  109062. T}
  109063. _
  109064. T{
  109065. \fBsaltutil\fP
  109066. T} T{
  109067. T}
  109068. _
  109069. T{
  109070. \fBsdb\fP
  109071. T} T{
  109072. T}
  109073. _
  109074. T{
  109075. \fBsmartos_vmadm\fP
  109076. T} T{
  109077. T}
  109078. _
  109079. T{
  109080. \fBspacewalk\fP
  109081. T} T{
  109082. Spacewalk Runner
  109083. T}
  109084. _
  109085. T{
  109086. \fBssh\fP
  109087. T} T{
  109088. T}
  109089. _
  109090. T{
  109091. \fBstate\fP
  109092. T} T{
  109093. T}
  109094. _
  109095. T{
  109096. \fBsurvey\fP
  109097. T} T{
  109098. T}
  109099. _
  109100. T{
  109101. \fBtest\fP
  109102. T} T{
  109103. This runner is used only for test purposes and servers no production purpose
  109104. T}
  109105. _
  109106. T{
  109107. \fBthin\fP
  109108. T} T{
  109109. T}
  109110. _
  109111. T{
  109112. \fBvault\fP
  109113. T} T{
  109114. T}
  109115. _
  109116. T{
  109117. \fBvenafiapi\fP
  109118. T} T{
  109119. T}
  109120. _
  109121. T{
  109122. \fBvirt\fP
  109123. T} T{
  109124. T}
  109125. _
  109126. T{
  109127. \fBvistara\fP
  109128. T} T{
  109129. T}
  109130. _
  109131. T{
  109132. \fBwinrepo\fP
  109133. T} T{
  109134. T}
  109135. _
  109136. .TE
  109137. .SS salt.runners.asam
  109138. .SS Novell ASAM Runner
  109139. .sp
  109140. New in version Beryllium.
  109141. .sp
  109142. Runner to interact with Novell ASAM Fan\-Out Driver
  109143. .INDENT 0.0
  109144. .TP
  109145. .B codeauthor
  109146. Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>
  109147. .UNINDENT
  109148. .sp
  109149. To use this runner, set up the Novell Fan\-Out Driver URL, username and password in the
  109150. master configuration at \fB/etc/salt/master\fP or \fB/etc/salt/master.d/asam.conf\fP:
  109151. .INDENT 0.0
  109152. .INDENT 3.5
  109153. .sp
  109154. .nf
  109155. .ft C
  109156. asam:
  109157. prov1.domain.com
  109158. username: "testuser"
  109159. password: "verybadpass"
  109160. prov2.domain.com
  109161. username: "testuser"
  109162. password: "verybadpass"
  109163. .ft P
  109164. .fi
  109165. .UNINDENT
  109166. .UNINDENT
  109167. .sp
  109168. \fBNOTE:\fP
  109169. .INDENT 0.0
  109170. .INDENT 3.5
  109171. Optionally, \fBprotocol\fP and \fBport\fP can be specified if the Fan\-Out Driver server
  109172. is not using the defaults. Default is \fBprotocol: https\fP and \fBport: 3451\fP\&.
  109173. .UNINDENT
  109174. .UNINDENT
  109175. .INDENT 0.0
  109176. .TP
  109177. .B salt.runners.asam.add_platform(name, platform_set, server_url)
  109178. To add an ASAM platform using the specified ASAM platform set on the Novell
  109179. Fan\-Out Driver
  109180. .sp
  109181. CLI Example:
  109182. .INDENT 7.0
  109183. .INDENT 3.5
  109184. .sp
  109185. .nf
  109186. .ft C
  109187. salt\-run asam.add_platform my\-test\-vm test\-platform\-set prov1.domain.com
  109188. .ft P
  109189. .fi
  109190. .UNINDENT
  109191. .UNINDENT
  109192. .UNINDENT
  109193. .INDENT 0.0
  109194. .TP
  109195. .B salt.runners.asam.list_platform_sets(server_url)
  109196. To list all ASAM platform sets present on the Novell Fan\-Out Driver
  109197. .sp
  109198. CLI Example:
  109199. .INDENT 7.0
  109200. .INDENT 3.5
  109201. .sp
  109202. .nf
  109203. .ft C
  109204. salt\-run asam.list_platform_sets prov1.domain.com
  109205. .ft P
  109206. .fi
  109207. .UNINDENT
  109208. .UNINDENT
  109209. .UNINDENT
  109210. .INDENT 0.0
  109211. .TP
  109212. .B salt.runners.asam.list_platforms(server_url)
  109213. To list all ASAM platforms present on the Novell Fan\-Out Driver
  109214. .sp
  109215. CLI Example:
  109216. .INDENT 7.0
  109217. .INDENT 3.5
  109218. .sp
  109219. .nf
  109220. .ft C
  109221. salt\-run asam.list_platforms prov1.domain.com
  109222. .ft P
  109223. .fi
  109224. .UNINDENT
  109225. .UNINDENT
  109226. .UNINDENT
  109227. .INDENT 0.0
  109228. .TP
  109229. .B salt.runners.asam.remove_platform(name, server_url)
  109230. To remove specified ASAM platform from the Novell Fan\-Out Driver
  109231. .sp
  109232. CLI Example:
  109233. .INDENT 7.0
  109234. .INDENT 3.5
  109235. .sp
  109236. .nf
  109237. .ft C
  109238. salt\-run asam.remove_platform my\-test\-vm prov1.domain.com
  109239. .ft P
  109240. .fi
  109241. .UNINDENT
  109242. .UNINDENT
  109243. .UNINDENT
  109244. .SS salt.runners.drac
  109245. .sp
  109246. Manage Dell DRAC from the Master
  109247. .sp
  109248. The login credentials need to be configured in the Salt master
  109249. configuration file.
  109250. .INDENT 0.0
  109251. .INDENT 3.5
  109252. .sp
  109253. .nf
  109254. .ft C
  109255. drac:
  109256. username: admin
  109257. password: secret
  109258. .ft P
  109259. .fi
  109260. .UNINDENT
  109261. .UNINDENT
  109262. .INDENT 0.0
  109263. .TP
  109264. .B salt.runners.drac.poweroff(hostname, timeout=20, username=None, password=None)
  109265. Power server off
  109266. .sp
  109267. CLI Example:
  109268. .INDENT 7.0
  109269. .INDENT 3.5
  109270. .sp
  109271. .nf
  109272. .ft C
  109273. salt\-run drac.poweroff example.com
  109274. .ft P
  109275. .fi
  109276. .UNINDENT
  109277. .UNINDENT
  109278. .UNINDENT
  109279. .INDENT 0.0
  109280. .TP
  109281. .B salt.runners.drac.poweron(hostname, timeout=20, username=None, password=None)
  109282. Power server on
  109283. .sp
  109284. CLI Example:
  109285. .INDENT 7.0
  109286. .INDENT 3.5
  109287. .sp
  109288. .nf
  109289. .ft C
  109290. salt\-run drac.poweron example.com
  109291. .ft P
  109292. .fi
  109293. .UNINDENT
  109294. .UNINDENT
  109295. .UNINDENT
  109296. .INDENT 0.0
  109297. .TP
  109298. .B salt.runners.drac.pxe(hostname, timeout=20, username=None, password=None)
  109299. Connect to the Dell DRAC and have the boot order set to PXE
  109300. and power cycle the system to PXE boot
  109301. .sp
  109302. CLI Example:
  109303. .INDENT 7.0
  109304. .INDENT 3.5
  109305. .sp
  109306. .nf
  109307. .ft C
  109308. salt\-run drac.pxe example.com
  109309. .ft P
  109310. .fi
  109311. .UNINDENT
  109312. .UNINDENT
  109313. .UNINDENT
  109314. .INDENT 0.0
  109315. .TP
  109316. .B salt.runners.drac.reboot(hostname, timeout=20, username=None, password=None)
  109317. Reboot a server using the Dell DRAC
  109318. .sp
  109319. CLI Example:
  109320. .INDENT 7.0
  109321. .INDENT 3.5
  109322. .sp
  109323. .nf
  109324. .ft C
  109325. salt\-run drac.reboot example.com
  109326. .ft P
  109327. .fi
  109328. .UNINDENT
  109329. .UNINDENT
  109330. .UNINDENT
  109331. .INDENT 0.0
  109332. .TP
  109333. .B salt.runners.drac.version(hostname, timeout=20, username=None, password=None)
  109334. Display the version of DRAC
  109335. .sp
  109336. CLI Example:
  109337. .INDENT 7.0
  109338. .INDENT 3.5
  109339. .sp
  109340. .nf
  109341. .ft C
  109342. salt\-run drac.version example.com
  109343. .ft P
  109344. .fi
  109345. .UNINDENT
  109346. .UNINDENT
  109347. .UNINDENT
  109348. .SS salt.runners.f5
  109349. .sp
  109350. Runner to provide F5 Load Balancer functionality
  109351. .INDENT 0.0
  109352. .TP
  109353. .B depends
  109354. .INDENT 7.0
  109355. .IP \(bu 2
  109356. pycontrol Python module
  109357. .UNINDENT
  109358. .TP
  109359. .B configuration
  109360. In order to connect to a F5 Load Balancer, you must specify
  109361. in the Salt master configuration the currently available load balancers
  109362. .INDENT 7.0
  109363. .INDENT 3.5
  109364. .sp
  109365. .nf
  109366. .ft C
  109367. load_balancers:
  109368. bigip1.example.com:
  109369. username: admin
  109370. password: secret
  109371. bigip2.example.com:
  109372. username: admin
  109373. password: secret
  109374. .ft P
  109375. .fi
  109376. .UNINDENT
  109377. .UNINDENT
  109378. .UNINDENT
  109379. .INDENT 0.0
  109380. .TP
  109381. .B class salt.runners.f5.F5Mgmt(lb, username, password)
  109382. .INDENT 7.0
  109383. .TP
  109384. .B add_pool_member(name, port, pool_name)
  109385. Add a node to a pool
  109386. .UNINDENT
  109387. .INDENT 7.0
  109388. .TP
  109389. .B check_member_pool(member, pool_name)
  109390. Check a pool member exists in a specific pool
  109391. .UNINDENT
  109392. .INDENT 7.0
  109393. .TP
  109394. .B check_pool(name)
  109395. Check to see if a pool exists
  109396. .UNINDENT
  109397. .INDENT 7.0
  109398. .TP
  109399. .B check_virtualserver(name)
  109400. Check to see if a virtual server exists
  109401. .UNINDENT
  109402. .INDENT 7.0
  109403. .TP
  109404. .B create_pool(name, method=u\(aqROUND_ROBIN\(aq)
  109405. Create a pool on the F5 load balancer
  109406. .UNINDENT
  109407. .INDENT 7.0
  109408. .TP
  109409. .B create_vs(name, ip, port, protocol, profile, pool_name)
  109410. Create a virtual server
  109411. .UNINDENT
  109412. .INDENT 7.0
  109413. .TP
  109414. .B lbmethods()
  109415. List all the load balancer methods
  109416. .UNINDENT
  109417. .UNINDENT
  109418. .INDENT 0.0
  109419. .TP
  109420. .B salt.runners.f5.add_pool_member(lb, name, port, pool_name)
  109421. Add a node to a pool
  109422. .sp
  109423. CLI Examples:
  109424. .INDENT 7.0
  109425. .INDENT 3.5
  109426. .sp
  109427. .nf
  109428. .ft C
  109429. salt\-run f5.add_pool_member load_balancer 10.0.0.1 80 my_pool
  109430. .ft P
  109431. .fi
  109432. .UNINDENT
  109433. .UNINDENT
  109434. .UNINDENT
  109435. .INDENT 0.0
  109436. .TP
  109437. .B salt.runners.f5.check_member_pool(lb, member, pool_name)
  109438. Check a pool member exists in a specific pool
  109439. .sp
  109440. CLI Examples:
  109441. .INDENT 7.0
  109442. .INDENT 3.5
  109443. .sp
  109444. .nf
  109445. .ft C
  109446. salt\-run f5.check_member_pool load_balancer 10.0.0.1 my_pool
  109447. .ft P
  109448. .fi
  109449. .UNINDENT
  109450. .UNINDENT
  109451. .UNINDENT
  109452. .INDENT 0.0
  109453. .TP
  109454. .B salt.runners.f5.check_pool(lb, name)
  109455. Check to see if a pool exists
  109456. .sp
  109457. CLI Examples:
  109458. .INDENT 7.0
  109459. .INDENT 3.5
  109460. .sp
  109461. .nf
  109462. .ft C
  109463. salt\-run f5.check_pool load_balancer pool_name
  109464. .ft P
  109465. .fi
  109466. .UNINDENT
  109467. .UNINDENT
  109468. .UNINDENT
  109469. .INDENT 0.0
  109470. .TP
  109471. .B salt.runners.f5.check_virtualserver(lb, name)
  109472. Check to see if a virtual server exists
  109473. .sp
  109474. CLI Examples:
  109475. .INDENT 7.0
  109476. .INDENT 3.5
  109477. .sp
  109478. .nf
  109479. .ft C
  109480. salt\-run f5.check_virtualserver load_balancer virtual_server
  109481. .ft P
  109482. .fi
  109483. .UNINDENT
  109484. .UNINDENT
  109485. .UNINDENT
  109486. .INDENT 0.0
  109487. .TP
  109488. .B salt.runners.f5.create_pool(lb, name, method=u\(aqROUND_ROBIN\(aq)
  109489. Create a pool on the F5 load balancer
  109490. .sp
  109491. CLI Examples:
  109492. .INDENT 7.0
  109493. .INDENT 3.5
  109494. .sp
  109495. .nf
  109496. .ft C
  109497. salt\-run f5.create_pool load_balancer pool_name loadbalance_method
  109498. salt\-run f5.create_pool load_balancer my_pool ROUND_ROBIN
  109499. .ft P
  109500. .fi
  109501. .UNINDENT
  109502. .UNINDENT
  109503. .UNINDENT
  109504. .INDENT 0.0
  109505. .TP
  109506. .B salt.runners.f5.create_vs(lb, name, ip, port, protocol, profile, pool_name)
  109507. Create a virtual server
  109508. .sp
  109509. CLI Examples:
  109510. .INDENT 7.0
  109511. .INDENT 3.5
  109512. .sp
  109513. .nf
  109514. .ft C
  109515. salt\-run f5.create_vs lbalancer vs_name 10.0.0.1 80 tcp http poolname
  109516. .ft P
  109517. .fi
  109518. .UNINDENT
  109519. .UNINDENT
  109520. .UNINDENT
  109521. .SS salt.runners.launchd
  109522. .sp
  109523. Manage launchd plist files
  109524. .INDENT 0.0
  109525. .TP
  109526. .B salt.runners.launchd.write_launchd_plist(program)
  109527. Write a launchd plist for managing salt\-master or salt\-minion
  109528. .sp
  109529. CLI Example:
  109530. .INDENT 7.0
  109531. .INDENT 3.5
  109532. .sp
  109533. .nf
  109534. .ft C
  109535. salt\-run launchd.write_launchd_plist salt\-master
  109536. .ft P
  109537. .fi
  109538. .UNINDENT
  109539. .UNINDENT
  109540. .UNINDENT
  109541. .SS salt.runners.spacewalk
  109542. .SS Spacewalk Runner
  109543. .sp
  109544. New in version 2016.3.0.
  109545. .sp
  109546. Runner to interact with Spacewalk using Spacewalk API
  109547. .INDENT 0.0
  109548. .TP
  109549. .B codeauthor
  109550. Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>, Joachim Werner <\fI\%joe@suse.com\fP>, Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>
  109551. .TP
  109552. .B maintainer
  109553. Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>
  109554. .UNINDENT
  109555. .sp
  109556. To use this runner, set up the Spacewalk URL, username and password in the
  109557. master configuration at \fB/etc/salt/master\fP or \fB/etc/salt/master.d/spacewalk.conf\fP:
  109558. .INDENT 0.0
  109559. .INDENT 3.5
  109560. .sp
  109561. .nf
  109562. .ft C
  109563. spacewalk:
  109564. spacewalk01.domain.com:
  109565. username: \(aqtestuser\(aq
  109566. password: \(aqverybadpass\(aq
  109567. spacewalk02.domain.com:
  109568. username: \(aqtestuser\(aq
  109569. password: \(aqverybadpass\(aq
  109570. .ft P
  109571. .fi
  109572. .UNINDENT
  109573. .UNINDENT
  109574. .sp
  109575. \fBNOTE:\fP
  109576. .INDENT 0.0
  109577. .INDENT 3.5
  109578. Optionally, \fBprotocol\fP can be specified if the spacewalk server is
  109579. not using the defaults. Default is \fBprotocol: https\fP\&.
  109580. .UNINDENT
  109581. .UNINDENT
  109582. .INDENT 0.0
  109583. .TP
  109584. .B salt.runners.spacewalk.addGroupsToKey(server, activation_key, groups)
  109585. Add server groups to a activation key
  109586. .sp
  109587. CLI Example:
  109588. .INDENT 7.0
  109589. .INDENT 3.5
  109590. .sp
  109591. .nf
  109592. .ft C
  109593. salt\-run spacewalk.addGroupsToKey spacewalk01.domain.com 1\-my\-key \(aq[group1, group2]\(aq
  109594. .ft P
  109595. .fi
  109596. .UNINDENT
  109597. .UNINDENT
  109598. .UNINDENT
  109599. .INDENT 0.0
  109600. .TP
  109601. .B salt.runners.spacewalk.api(server, command, *args, **kwargs)
  109602. Call the Spacewalk xmlrpc api.
  109603. .sp
  109604. CLI Example:
  109605. .INDENT 7.0
  109606. .INDENT 3.5
  109607. .sp
  109608. .nf
  109609. .ft C
  109610. salt\-run spacewalk.api spacewalk01.domain.com systemgroup.create MyGroup Description
  109611. salt\-run spacewalk.api spacewalk01.domain.com systemgroup.create arguments=\(aq["MyGroup", "Description"]\(aq
  109612. .ft P
  109613. .fi
  109614. .UNINDENT
  109615. .UNINDENT
  109616. .sp
  109617. State Example:
  109618. .INDENT 7.0
  109619. .INDENT 3.5
  109620. .sp
  109621. .nf
  109622. .ft C
  109623. create_group:
  109624. salt.runner:
  109625. \- name: spacewalk.api
  109626. \- server: spacewalk01.domain.com
  109627. \- command: systemgroup.create
  109628. \- arguments:
  109629. \- MyGroup
  109630. \- Description
  109631. .ft P
  109632. .fi
  109633. .UNINDENT
  109634. .UNINDENT
  109635. .UNINDENT
  109636. .INDENT 0.0
  109637. .TP
  109638. .B salt.runners.spacewalk.deleteAllActivationKeys(server)
  109639. Delete all activation keys from Spacewalk
  109640. .sp
  109641. CLI Example:
  109642. .INDENT 7.0
  109643. .INDENT 3.5
  109644. .sp
  109645. .nf
  109646. .ft C
  109647. salt\-run spacewalk.deleteAllActivationKeys spacewalk01.domain.com
  109648. .ft P
  109649. .fi
  109650. .UNINDENT
  109651. .UNINDENT
  109652. .UNINDENT
  109653. .INDENT 0.0
  109654. .TP
  109655. .B salt.runners.spacewalk.deleteAllGroups(server)
  109656. Delete all server groups from Spacewalk
  109657. .UNINDENT
  109658. .INDENT 0.0
  109659. .TP
  109660. .B salt.runners.spacewalk.deleteAllSystems(server)
  109661. Delete all systems from Spacewalk
  109662. .sp
  109663. CLI Example:
  109664. .INDENT 7.0
  109665. .INDENT 3.5
  109666. .sp
  109667. .nf
  109668. .ft C
  109669. salt\-run spacewalk.deleteAllSystems spacewalk01.domain.com
  109670. .ft P
  109671. .fi
  109672. .UNINDENT
  109673. .UNINDENT
  109674. .UNINDENT
  109675. .INDENT 0.0
  109676. .TP
  109677. .B salt.runners.spacewalk.unregister(name, server_url)
  109678. Unregister specified server from Spacewalk
  109679. .sp
  109680. CLI Example:
  109681. .INDENT 7.0
  109682. .INDENT 3.5
  109683. .sp
  109684. .nf
  109685. .ft C
  109686. salt\-run spacewalk.unregister my\-test\-vm spacewalk01.domain.com
  109687. .ft P
  109688. .fi
  109689. .UNINDENT
  109690. .UNINDENT
  109691. .UNINDENT
  109692. .SS salt.runners.test
  109693. .sp
  109694. This runner is used only for test purposes and servers no production purpose
  109695. .INDENT 0.0
  109696. .TP
  109697. .B salt.runners.test.arg(*args, **kwargs)
  109698. Output the given args and kwargs
  109699. .sp
  109700. Kwargs will be filtered for \(aqprivate\(aq keynames.
  109701. .UNINDENT
  109702. .INDENT 0.0
  109703. .TP
  109704. .B salt.runners.test.get_opts()
  109705. New in version 2018.3.0.
  109706. .sp
  109707. Return the configuration options of the master.
  109708. .sp
  109709. CLI Example:
  109710. .INDENT 7.0
  109711. .INDENT 3.5
  109712. .sp
  109713. .nf
  109714. .ft C
  109715. salt\-run test.get_opts
  109716. .ft P
  109717. .fi
  109718. .UNINDENT
  109719. .UNINDENT
  109720. .UNINDENT
  109721. .INDENT 0.0
  109722. .TP
  109723. .B salt.runners.test.metasyntactic(locality=u\(aqus\(aq)
  109724. Return common metasyntactic variables for the given locality
  109725. .UNINDENT
  109726. .INDENT 0.0
  109727. .TP
  109728. .B salt.runners.test.raw_arg(*args, **kwargs)
  109729. Output the given args and kwargs
  109730. .UNINDENT
  109731. .INDENT 0.0
  109732. .TP
  109733. .B salt.runners.test.sleep(s_time=10)
  109734. Sleep t seconds, then return True
  109735. .UNINDENT
  109736. .INDENT 0.0
  109737. .TP
  109738. .B salt.runners.test.stdout_print()
  109739. Print \(aqfoo\(aq and return \(aqbar\(aq
  109740. .UNINDENT
  109741. .INDENT 0.0
  109742. .TP
  109743. .B salt.runners.test.stream()
  109744. Return True
  109745. .UNINDENT
  109746. .SS sdb modules
  109747. .TS
  109748. center;
  109749. |l|l|.
  109750. _
  109751. T{
  109752. \fBcache\fP
  109753. T} T{
  109754. T}
  109755. _
  109756. T{
  109757. \fBconfidant\fP
  109758. T} T{
  109759. An SDB module for getting credentials from confidant.
  109760. T}
  109761. _
  109762. T{
  109763. \fBconsul\fP
  109764. T} T{
  109765. Consul sdb Module
  109766. T}
  109767. _
  109768. T{
  109769. \fBcouchdb\fP
  109770. T} T{
  109771. T}
  109772. _
  109773. T{
  109774. \fBenv\fP
  109775. T} T{
  109776. Environment sdb Module
  109777. T}
  109778. _
  109779. T{
  109780. \fBetcd_db\fP
  109781. T} T{
  109782. etcd Database Module
  109783. T}
  109784. _
  109785. T{
  109786. \fBkeyring_db\fP
  109787. T} T{
  109788. Keyring Database Module
  109789. T}
  109790. _
  109791. T{
  109792. \fBmemcached\fP
  109793. T} T{
  109794. Memcached sdb Module
  109795. T}
  109796. _
  109797. T{
  109798. \fBredis_sdb\fP
  109799. T} T{
  109800. Redis SDB module
  109801. T}
  109802. _
  109803. T{
  109804. \fBrest\fP
  109805. T} T{
  109806. T}
  109807. _
  109808. T{
  109809. \fBsqlite3\fP
  109810. T} T{
  109811. SQLite sdb Module
  109812. T}
  109813. _
  109814. T{
  109815. \fBtism\fP
  109816. T} T{
  109817. T}
  109818. _
  109819. T{
  109820. \fBvault\fP
  109821. T} T{
  109822. Vault SDB Module
  109823. T}
  109824. _
  109825. T{
  109826. \fByaml\fP
  109827. T} T{
  109828. T}
  109829. _
  109830. .TE
  109831. .SS salt.sdb.confidant
  109832. .sp
  109833. An SDB module for getting credentials from confidant.
  109834. .SS Configuring the Confidant module
  109835. .sp
  109836. The module can be configured via sdb in the minion config:
  109837. .INDENT 0.0
  109838. .INDENT 3.5
  109839. .sp
  109840. .nf
  109841. .ft C
  109842. confidant:
  109843. driver: confidant
  109844. # The URL of the confidant web service
  109845. url: \(aqhttps://confidant\-production.example.com\(aq
  109846. # The context to use for KMS authentication
  109847. auth_context:
  109848. from: example\-production\-iad
  109849. to: confidant\-production\-iad
  109850. user_type: service
  109851. # The KMS master key to use for authentication
  109852. auth_key: "alias/authnz"
  109853. # Cache file for KMS auth token
  109854. token_cache_file: /run/confidant/confidant_token
  109855. # The duration of the validity of a token, in minutes
  109856. token_duration: 60
  109857. # key, keyid and region can be defined in the profile, but it\(aqs generally
  109858. # best to use IAM roles or environment variables for AWS auth.
  109859. keyid: 98nh9h9h908h09kjjk
  109860. key: jhf908gyeghehe0he0g8h9u0j0n0n09hj09h0
  109861. region: us\-east\-1
  109862. .ft P
  109863. .fi
  109864. .UNINDENT
  109865. .UNINDENT
  109866. .INDENT 0.0
  109867. .TP
  109868. .B depends
  109869. confidant\-common, confidant\-client
  109870. .UNINDENT
  109871. .SS Module Documentation
  109872. .INDENT 0.0
  109873. .TP
  109874. .B salt.sdb.confidant.get(key, profile=None)
  109875. Read pillar data from Confidant via its API.
  109876. .sp
  109877. CLI Example:
  109878. .INDENT 7.0
  109879. .INDENT 3.5
  109880. salt myminion sdb.get \(aqsdb://confidant/credentials\(aq
  109881. .UNINDENT
  109882. .UNINDENT
  109883. .sp
  109884. Valid keys are: credentials, credentials_metadata, result. credentials
  109885. returns a dict of joined credential_pairs, credentials_metadata returns a
  109886. dict of metadata relevant to the credentials mapped to the confidant
  109887. service, and result returns a bool that can be used to determine if the sdb
  109888. call succeeded or failed to fetch credentials from confidant (or from local
  109889. cache). If result is false, the data in credentials or credentials_metadata
  109890. can\(aqt be trusted.
  109891. .UNINDENT
  109892. .SS salt.sdb.consul module
  109893. .sp
  109894. Consul sdb Module
  109895. .INDENT 0.0
  109896. .TP
  109897. .B maintainer
  109898. SaltStack
  109899. .TP
  109900. .B maturity
  109901. New
  109902. .TP
  109903. .B platform
  109904. all
  109905. .UNINDENT
  109906. .sp
  109907. This module allows access to Consul using an \fBsdb://\fP URI
  109908. .sp
  109909. Like all sdb modules, the Consul module requires a configuration profile to
  109910. be configured in either the minion or master configuration file. This profile
  109911. requires very little. For example:
  109912. .INDENT 0.0
  109913. .INDENT 3.5
  109914. .sp
  109915. .nf
  109916. .ft C
  109917. myconsul:
  109918. driver: consul
  109919. host: 127.0.0.1
  109920. port: 8500
  109921. token: b6376760\-a8bb\-edd5\-fcda\-33bc13bfc556
  109922. scheme: http
  109923. consistency: default
  109924. dc: dev
  109925. verify: True
  109926. .ft P
  109927. .fi
  109928. .UNINDENT
  109929. .UNINDENT
  109930. .sp
  109931. The \fBdriver\fP refers to the Consul module, all other options are optional.
  109932. For option details see: \fI\%https://python\-consul.readthedocs.io/en/latest/#consul\fP
  109933. .INDENT 0.0
  109934. .TP
  109935. .B salt.sdb.consul.get(key, profile=None)
  109936. .UNINDENT
  109937. .INDENT 0.0
  109938. .TP
  109939. .B salt.sdb.consul.get_conn(profile)
  109940. Return a client object for accessing consul
  109941. .UNINDENT
  109942. .INDENT 0.0
  109943. .TP
  109944. .B salt.sdb.consul.set_(key, value, profile=None)
  109945. .UNINDENT
  109946. .SS salt.sdb.env module
  109947. .sp
  109948. Environment sdb Module
  109949. .INDENT 0.0
  109950. .TP
  109951. .B maintainer
  109952. SaltStack
  109953. .TP
  109954. .B maturity
  109955. New
  109956. .TP
  109957. .B depends
  109958. None
  109959. .TP
  109960. .B platform
  109961. all
  109962. .UNINDENT
  109963. .sp
  109964. This module allows access to environment variables using an \fBsdb://\fP URI.
  109965. .sp
  109966. Example configuration for this module:
  109967. .INDENT 0.0
  109968. .INDENT 3.5
  109969. .sp
  109970. .nf
  109971. .ft C
  109972. osenv:
  109973. driver: env
  109974. .ft P
  109975. .fi
  109976. .UNINDENT
  109977. .UNINDENT
  109978. .SS WARNING:
  109979. .sp
  109980. OS environment variables will be available
  109981. to read via SDB.
  109982. Please make sure you don\(aqt have any sensitive data
  109983. in your environment variables!!
  109984. .sp
  109985. Example usage of sdb env module:
  109986. .INDENT 0.0
  109987. .INDENT 3.5
  109988. .sp
  109989. .nf
  109990. .ft C
  109991. set some env var:
  109992. cmd.run:
  109993. \- name: echo {{ salt[\(aqsdb.set\(aq](\(aqsdb://osenv/foo\(aq, \(aqbar\(aq) }}
  109994. \- order: 1
  109995. {% if salt[\(aqsdb.get\(aq](\(aqsdb://osenv/foo\(aq) == \(aqbar\(aq %}
  109996. always\-changes\-and\-succeeds:
  109997. test.succeed_with_changes:
  109998. \- name: foo
  109999. {% else %}
  110000. always\-changes\-and\-fails:
  110001. test.fail_with_changes:
  110002. \- name: foo
  110003. {% endif %}
  110004. .ft P
  110005. .fi
  110006. .UNINDENT
  110007. .UNINDENT
  110008. .sp
  110009. The above example will return success.
  110010. .sp
  110011. The \fBenv\fP sdb module can also be used with salt cloud.
  110012. Assuming you have exported the environment variable named
  110013. \fBcompute\fP (and have \fBosenv\fP defined).
  110014. The example below will look for the salt cloud config key \fBcompute_name\fP
  110015. in the environment:
  110016. .INDENT 0.0
  110017. .INDENT 3.5
  110018. .sp
  110019. .nf
  110020. .ft C
  110021. my\-openstack\-config:
  110022. compute_name: sdb://osenv/compute
  110023. ..snip
  110024. .ft P
  110025. .fi
  110026. .UNINDENT
  110027. .UNINDENT
  110028. .INDENT 0.0
  110029. .TP
  110030. .B salt.sdb.env.get(key, profile=None)
  110031. Get a value
  110032. .UNINDENT
  110033. .INDENT 0.0
  110034. .TP
  110035. .B salt.sdb.env.set_(key, value, profile=None)
  110036. Set a key/value pair
  110037. .UNINDENT
  110038. .SS salt.sdb.etcd_db
  110039. .sp
  110040. etcd Database Module
  110041. .INDENT 0.0
  110042. .TP
  110043. .B maintainer
  110044. SaltStack
  110045. .TP
  110046. .B maturity
  110047. New
  110048. .TP
  110049. .B depends
  110050. python\-etcd
  110051. .TP
  110052. .B platform
  110053. all
  110054. .UNINDENT
  110055. .sp
  110056. New in version 2015.5.0.
  110057. .sp
  110058. This module allows access to the etcd database using an \fBsdb://\fP URI. This
  110059. package is located at \fBhttps://pypi.python.org/pypi/python\-etcd\fP\&.
  110060. .sp
  110061. Like all sdb modules, the etcd module requires a configuration profile to
  110062. be configured in either the minion or master configuration file. This profile
  110063. requires very little. In the example:
  110064. .INDENT 0.0
  110065. .INDENT 3.5
  110066. .sp
  110067. .nf
  110068. .ft C
  110069. myetcd:
  110070. driver: etcd
  110071. etcd.host: 127.0.0.1
  110072. etcd.port: 2379
  110073. .ft P
  110074. .fi
  110075. .UNINDENT
  110076. .UNINDENT
  110077. .sp
  110078. The \fBdriver\fP refers to the etcd module, \fBetcd.host\fP refers to the host that
  110079. is hosting the etcd database and \fBetcd.port\fP refers to the port on that host.
  110080. .INDENT 0.0
  110081. .INDENT 3.5
  110082. .sp
  110083. .nf
  110084. .ft C
  110085. password: sdb://myetcd/mypassword
  110086. .ft P
  110087. .fi
  110088. .UNINDENT
  110089. .UNINDENT
  110090. .INDENT 0.0
  110091. .TP
  110092. .B salt.sdb.etcd_db.delete(key, service=None, profile=None)
  110093. Get a value from the etcd service
  110094. .UNINDENT
  110095. .INDENT 0.0
  110096. .TP
  110097. .B salt.sdb.etcd_db.get(key, service=None, profile=None)
  110098. Get a value from the etcd service
  110099. .UNINDENT
  110100. .INDENT 0.0
  110101. .TP
  110102. .B salt.sdb.etcd_db.set_(key, value, service=None, profile=None)
  110103. Set a key/value pair in the etcd service
  110104. .UNINDENT
  110105. .SS salt.sdb.keyring_db
  110106. .sp
  110107. Keyring Database Module
  110108. .INDENT 0.0
  110109. .TP
  110110. .B maintainer
  110111. SaltStack
  110112. .TP
  110113. .B maturity
  110114. New
  110115. .TP
  110116. .B depends
  110117. keyring
  110118. .TP
  110119. .B platform
  110120. all
  110121. .UNINDENT
  110122. .sp
  110123. This module allows access to the keyring package using an \fBsdb://\fP URI. This
  110124. package is located at \fBhttps://pypi.python.org/pypi/keyring\fP\&.
  110125. .sp
  110126. Care must be taken when using keyring. Not all keyend backends are supported on
  110127. all operating systems. Also, many backends require an agent to be running in
  110128. order to work. For instance, the "Secret Service" backend requires a compatible
  110129. agent such as \fBgnome\-keyring\-daemon\fP or \fBkwallet\fP to be running. The
  110130. keyczar backend does not seem to enjoy the benefits of an agent, and so using
  110131. it will require either that the password is typed in manually (which is
  110132. unreasonable for the salt\-minion and salt\-master daemons, especially in
  110133. production) or an agent is written for it.
  110134. .sp
  110135. Like all sdb modules, the keyring module requires a configuration profile to
  110136. be configured in either the minion or master configuration file. This profile
  110137. requires very little. In the example:
  110138. .INDENT 0.0
  110139. .INDENT 3.5
  110140. .sp
  110141. .nf
  110142. .ft C
  110143. mykeyring:
  110144. driver: keyring
  110145. service: system
  110146. .ft P
  110147. .fi
  110148. .UNINDENT
  110149. .UNINDENT
  110150. .sp
  110151. The \fBdriver\fP refers to the keyring module, \fBservice\fP refers to the service
  110152. that will be used inside of keyring (which may be likened unto a database
  110153. table) and \fBmykeyring\fP refers to the name that will appear in the URI:
  110154. .INDENT 0.0
  110155. .INDENT 3.5
  110156. .sp
  110157. .nf
  110158. .ft C
  110159. password: sdb://mykeyring/mypassword
  110160. .ft P
  110161. .fi
  110162. .UNINDENT
  110163. .UNINDENT
  110164. .sp
  110165. The underlying backend configuration must be configured via keyring itself. For
  110166. examples and documentation, see keyring:
  110167. .sp
  110168. \fI\%https://pypi.python.org/pypi/keyring\fP
  110169. .sp
  110170. New in version 2014.1.4.
  110171. .INDENT 0.0
  110172. .TP
  110173. .B salt.sdb.keyring_db.get(key, service=None, profile=None)
  110174. Get a value from a keyring service
  110175. .UNINDENT
  110176. .INDENT 0.0
  110177. .TP
  110178. .B salt.sdb.keyring_db.set_(key, value, service=None, profile=None)
  110179. Set a key/value pair in a keyring service
  110180. .UNINDENT
  110181. .SS salt.sdb.memcached
  110182. .sp
  110183. Memcached sdb Module
  110184. .INDENT 0.0
  110185. .TP
  110186. .B maintainer
  110187. SaltStack
  110188. .TP
  110189. .B maturity
  110190. New
  110191. .TP
  110192. .B depends
  110193. python\-memcached
  110194. .TP
  110195. .B platform
  110196. all
  110197. .UNINDENT
  110198. .sp
  110199. This module allows access to memcached using an \fBsdb://\fP URI. This
  110200. package is located at \fBhttps://pypi.python.org/pypi/python\-memcached\fP\&.
  110201. .sp
  110202. Like all sdb modules, the memcached module requires a configuration profile to
  110203. be configured in either the minion or master configuration file. This profile
  110204. requires very little. In the example:
  110205. .INDENT 0.0
  110206. .INDENT 3.5
  110207. .sp
  110208. .nf
  110209. .ft C
  110210. mymemcache:
  110211. driver: memcached
  110212. memcached.host: localhost
  110213. memcached.port: 11211
  110214. .ft P
  110215. .fi
  110216. .UNINDENT
  110217. .UNINDENT
  110218. .sp
  110219. The \fBdriver\fP refers to the memcached module, \fBhost\fP and \fBport\fP the
  110220. memcached server to connect to (defaults to \fBlocalhost\fP and \fB11211\fP,
  110221. and \fBmymemcached\fP refers to the name that will appear in the URI:
  110222. .INDENT 0.0
  110223. .INDENT 3.5
  110224. .sp
  110225. .nf
  110226. .ft C
  110227. password: sdb://mymemcached/mykey
  110228. .ft P
  110229. .fi
  110230. .UNINDENT
  110231. .UNINDENT
  110232. .INDENT 0.0
  110233. .TP
  110234. .B salt.sdb.memcached.get(key, profile=None)
  110235. Get a value from memcached
  110236. .UNINDENT
  110237. .INDENT 0.0
  110238. .TP
  110239. .B salt.sdb.memcached.set_(key, value, profile=None)
  110240. Set a key/value pair in memcached
  110241. .UNINDENT
  110242. .SS salt.sdb.redis_sdb module
  110243. .SS Redis SDB module
  110244. .INDENT 0.0
  110245. .INDENT 3.5
  110246. New in version 2019.2.0.
  110247. .UNINDENT
  110248. .UNINDENT
  110249. .sp
  110250. This module allows access to Redis using an \fBsdb://\fP URI.
  110251. .sp
  110252. Like all SDB modules, the Redis module requires a configuration profile to
  110253. be configured in either the minion or master configuration file. This profile
  110254. requires very little. For example:
  110255. .INDENT 0.0
  110256. .INDENT 3.5
  110257. .sp
  110258. .nf
  110259. .ft C
  110260. sdb_redis:
  110261. driver: redis
  110262. host: 127.0.0.1
  110263. port: 6379
  110264. password: pass
  110265. db: 1
  110266. .ft P
  110267. .fi
  110268. .UNINDENT
  110269. .UNINDENT
  110270. .sp
  110271. The \fBdriver\fP refers to the Redis module, all other options are optional.
  110272. For option details see: \fI\%https://redis\-py.readthedocs.io/en/latest/\fP\&.
  110273. .INDENT 0.0
  110274. .TP
  110275. .B salt.sdb.redis_sdb.delete(key, profile=None)
  110276. Delete a key from the Redis SDB.
  110277. .UNINDENT
  110278. .INDENT 0.0
  110279. .TP
  110280. .B salt.sdb.redis_sdb.get(key, profile=None)
  110281. Get a value from the Redis SDB.
  110282. .UNINDENT
  110283. .INDENT 0.0
  110284. .TP
  110285. .B salt.sdb.redis_sdb.set_(key, value, profile=None)
  110286. Set a value into the Redis SDB.
  110287. .UNINDENT
  110288. .SS salt.sdb.sqlite3
  110289. .sp
  110290. SQLite sdb Module
  110291. .INDENT 0.0
  110292. .TP
  110293. .B maintainer
  110294. SaltStack
  110295. .TP
  110296. .B maturity
  110297. New
  110298. .TP
  110299. .B platform
  110300. all
  110301. .UNINDENT
  110302. .sp
  110303. This module allows access to sqlite3 using an \fBsdb://\fP URI
  110304. .sp
  110305. Like all sdb modules, the sqlite3 module requires a configuration profile to
  110306. be configured in either the minion or master configuration file. This profile
  110307. requires very little. For example:
  110308. .INDENT 0.0
  110309. .INDENT 3.5
  110310. .sp
  110311. .nf
  110312. .ft C
  110313. mysqlite:
  110314. driver: sqlite3
  110315. database: /tmp/sdb.sqlite
  110316. table: sdb
  110317. create_table: True
  110318. .ft P
  110319. .fi
  110320. .UNINDENT
  110321. .UNINDENT
  110322. .sp
  110323. The \fBdriver\fP refers to the sqlite3 module, \fBdatabase\fP refers to the sqlite3
  110324. database file. \fBtable\fP is the table within the db that will hold keys and
  110325. values (defaults to \fBsdb\fP). The database and table will be created if they
  110326. do not exist.
  110327. .SS Advanced Usage:
  110328. .sp
  110329. Instead of a table name, it is possible to provide custom SQL statements to
  110330. create the table(s) and get and set values.
  110331. .INDENT 0.0
  110332. .INDENT 3.5
  110333. .sp
  110334. .nf
  110335. .ft C
  110336. myadvanced
  110337. driver: sqlite3
  110338. database: /tmp/sdb\-advanced.sqlite
  110339. create_statements:
  110340. \- "CREATE TABLE advanced (a text, b text, c blob, d blob)"
  110341. \- "CREATE INDEX myidx ON advanced (a)"
  110342. get_query: "SELECT d FROM advanced WHERE a=:key"
  110343. set_query: "INSERT OR REPLACE INTO advanced (a, d) VALUES (:key, :value)"
  110344. .ft P
  110345. .fi
  110346. .UNINDENT
  110347. .UNINDENT
  110348. .INDENT 0.0
  110349. .TP
  110350. .B salt.sdb.sqlite3.get(key, profile=None)
  110351. Get a value from sqlite3
  110352. .UNINDENT
  110353. .INDENT 0.0
  110354. .TP
  110355. .B salt.sdb.sqlite3.set_(key, value, profile=None)
  110356. Set a key/value pair in sqlite3
  110357. .UNINDENT
  110358. .SS salt.sdb.vault module
  110359. .sp
  110360. Vault SDB Module
  110361. .INDENT 0.0
  110362. .TP
  110363. .B maintainer
  110364. SaltStack
  110365. .TP
  110366. .B maturity
  110367. New
  110368. .TP
  110369. .B platform
  110370. all
  110371. .UNINDENT
  110372. .sp
  110373. New in version 2016.11.0.
  110374. .sp
  110375. This module allows access to Hashicorp Vault using an \fBsdb://\fP URI.
  110376. .sp
  110377. Base configuration instructions are documented in the execution module docs.
  110378. Below are noted extra configuration required for the sdb module, but the base
  110379. configuration must also be completed.
  110380. .sp
  110381. Like all sdb modules, the vault module requires a configuration profile to
  110382. be configured in either the minion configuration file or a pillar. This profile
  110383. requires only setting the \fBdriver\fP parameter to \fBvault\fP:
  110384. .INDENT 0.0
  110385. .INDENT 3.5
  110386. .sp
  110387. .nf
  110388. .ft C
  110389. myvault:
  110390. driver: vault
  110391. .ft P
  110392. .fi
  110393. .UNINDENT
  110394. .UNINDENT
  110395. .sp
  110396. Once configured you can access data using a URL such as:
  110397. .INDENT 0.0
  110398. .INDENT 3.5
  110399. .sp
  110400. .nf
  110401. .ft C
  110402. password: sdb://myvault/secret/passwords/mypassword
  110403. .ft P
  110404. .fi
  110405. .UNINDENT
  110406. .UNINDENT
  110407. .sp
  110408. In this URL, \fBmyvault\fP refers to the configuration profile,
  110409. \fBsecret/passwords\fP is the path where the data resides, and \fBmypassword\fP is
  110410. the key of the data to return.
  110411. .sp
  110412. The above URI is analogous to running the following vault command:
  110413. .INDENT 0.0
  110414. .INDENT 3.5
  110415. .sp
  110416. .nf
  110417. .ft C
  110418. $ vault read \-field=mypassword secret/passwords
  110419. .ft P
  110420. .fi
  110421. .UNINDENT
  110422. .UNINDENT
  110423. .INDENT 0.0
  110424. .TP
  110425. .B salt.sdb.vault.get(key, profile=None)
  110426. Get a value from the vault service
  110427. .UNINDENT
  110428. .INDENT 0.0
  110429. .TP
  110430. .B salt.sdb.vault.set_(key, value, profile=None)
  110431. Set a key/value pair in the vault service
  110432. .UNINDENT
  110433. .SS serializer modules
  110434. .TS
  110435. center;
  110436. |l|l|.
  110437. _
  110438. T{
  110439. \fBconfigparser\fP
  110440. T} T{
  110441. salt.serializers.configparser
  110442. T}
  110443. _
  110444. T{
  110445. \fI\%json\fP
  110446. T} T{
  110447. 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.
  110448. T}
  110449. _
  110450. T{
  110451. \fBmsgpack\fP
  110452. T} T{
  110453. salt.serializers.msgpack
  110454. T}
  110455. _
  110456. T{
  110457. \fBplist\fP
  110458. T} T{
  110459. salt.serializers.plist
  110460. T}
  110461. _
  110462. T{
  110463. \fBpython\fP
  110464. T} T{
  110465. T}
  110466. _
  110467. T{
  110468. \fBtoml\fP
  110469. T} T{
  110470. salt.serializers.toml
  110471. T}
  110472. _
  110473. T{
  110474. \fByaml\fP
  110475. T} T{
  110476. T}
  110477. _
  110478. T{
  110479. \fByamlex\fP
  110480. T} T{
  110481. T}
  110482. _
  110483. .TE
  110484. .SS salt.serializers.configparser module
  110485. .SS salt.serializers.configparser
  110486. .sp
  110487. New in version 2016.3.0.
  110488. .sp
  110489. Implements a configparser serializer.
  110490. .INDENT 0.0
  110491. .TP
  110492. .B salt.serializers.configparser.deserialize(stream_or_string, **options)
  110493. Deserialize any string or stream like object into a Python data structure.
  110494. .INDENT 7.0
  110495. .TP
  110496. .B Parameters
  110497. .INDENT 7.0
  110498. .IP \(bu 2
  110499. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110500. .IP \(bu 2
  110501. \fBoptions\fP \-\- options given to lower configparser module.
  110502. .UNINDENT
  110503. .UNINDENT
  110504. .UNINDENT
  110505. .INDENT 0.0
  110506. .TP
  110507. .B salt.serializers.configparser.serialize(obj, **options)
  110508. Serialize Python data to a configparser formatted string or file.
  110509. .INDENT 7.0
  110510. .TP
  110511. .B Parameters
  110512. .INDENT 7.0
  110513. .IP \(bu 2
  110514. \fBobj\fP \-\- the data structure to serialize
  110515. .IP \(bu 2
  110516. \fBoptions\fP \-\- options given to lower configparser module.
  110517. .UNINDENT
  110518. .UNINDENT
  110519. .UNINDENT
  110520. .SS salt.serializers.msgpack
  110521. .SS salt.serializers.msgpack
  110522. .sp
  110523. Implements MsgPack serializer.
  110524. .INDENT 0.0
  110525. .TP
  110526. .B salt.serializers.msgpack.deserialize(stream_or_string, **options)
  110527. Deserialize any string of stream like object into a Python data structure.
  110528. .INDENT 7.0
  110529. .TP
  110530. .B Parameters
  110531. .INDENT 7.0
  110532. .IP \(bu 2
  110533. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110534. .IP \(bu 2
  110535. \fBoptions\fP \-\- options given to lower msgpack module.
  110536. .UNINDENT
  110537. .UNINDENT
  110538. .UNINDENT
  110539. .INDENT 0.0
  110540. .TP
  110541. .B salt.serializers.msgpack.serialize(obj, **options)
  110542. Serialize Python data to MsgPack.
  110543. .INDENT 7.0
  110544. .TP
  110545. .B Parameters
  110546. .INDENT 7.0
  110547. .IP \(bu 2
  110548. \fBobj\fP \-\- the data structure to serialize
  110549. .IP \(bu 2
  110550. \fBoptions\fP \-\- options given to lower msgpack module.
  110551. .UNINDENT
  110552. .UNINDENT
  110553. .UNINDENT
  110554. .SS salt.serializers.plist
  110555. .SS salt.serializers.plist
  110556. .sp
  110557. New in version 3001.
  110558. .sp
  110559. Implements plist serializer.
  110560. .sp
  110561. Wrapper around plistlib.
  110562. .INDENT 0.0
  110563. .TP
  110564. .B salt.serializers.plist.deserialize(stream_or_string, **options)
  110565. Deserialize any string or stream like object into a Python data structure.
  110566. .INDENT 7.0
  110567. .TP
  110568. .B Parameters
  110569. .INDENT 7.0
  110570. .IP \(bu 2
  110571. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110572. .IP \(bu 2
  110573. \fBoptions\fP \-\- options given to lower plist module.
  110574. .UNINDENT
  110575. .TP
  110576. .B Returns
  110577. Deserialized data structure.
  110578. .UNINDENT
  110579. .UNINDENT
  110580. .INDENT 0.0
  110581. .TP
  110582. .B salt.serializers.plist.serialize(value, **options)
  110583. Serialize Python data to plist. To create a binary plist pass
  110584. \fBfmt: FMT_BINARY\fP as an option.
  110585. .INDENT 7.0
  110586. .TP
  110587. .B Parameters
  110588. .INDENT 7.0
  110589. .IP \(bu 2
  110590. \fBobj\fP \-\- the data structure to serialize
  110591. .IP \(bu 2
  110592. \fBoptions\fP \-\- options given to lower plist module.
  110593. .UNINDENT
  110594. .TP
  110595. .B Returns
  110596. bytes of serialized plist.
  110597. .UNINDENT
  110598. .UNINDENT
  110599. .SS salt.serializers.toml
  110600. .SS salt.serializers.toml
  110601. .sp
  110602. Implements TOML serializer.
  110603. .sp
  110604. It\(aqs just a wrapper around pytoml module.
  110605. .INDENT 0.0
  110606. .TP
  110607. .B salt.serializers.toml.deserialize(stream_or_string, **options)
  110608. Deserialize from TOML into Python data structure.
  110609. .INDENT 7.0
  110610. .TP
  110611. .B Parameters
  110612. .INDENT 7.0
  110613. .IP \(bu 2
  110614. \fBstream_or_string\fP \-\- toml stream or string to deserialize.
  110615. .IP \(bu 2
  110616. \fBoptions\fP \-\- options given to lower pytoml module.
  110617. .UNINDENT
  110618. .UNINDENT
  110619. .UNINDENT
  110620. .INDENT 0.0
  110621. .TP
  110622. .B salt.serializers.toml.serialize(obj, **options)
  110623. Serialize Python data to TOML.
  110624. .INDENT 7.0
  110625. .TP
  110626. .B Parameters
  110627. .INDENT 7.0
  110628. .IP \(bu 2
  110629. \fBobj\fP \-\- the data structure to serialize.
  110630. .IP \(bu 2
  110631. \fBoptions\fP \-\- options given to lower pytoml module.
  110632. .UNINDENT
  110633. .UNINDENT
  110634. .UNINDENT
  110635. .SS state modules
  110636. .TS
  110637. center;
  110638. |l|l|.
  110639. _
  110640. T{
  110641. \fBacme\fP
  110642. T} T{
  110643. T}
  110644. _
  110645. T{
  110646. \fBalias\fP
  110647. T} T{
  110648. Configuration of email aliases
  110649. T}
  110650. _
  110651. T{
  110652. \fBalternatives\fP
  110653. T} T{
  110654. Configuration of the alternatives system
  110655. T}
  110656. _
  110657. T{
  110658. \fBansiblegate\fP
  110659. T} T{
  110660. T}
  110661. _
  110662. T{
  110663. \fBapache\fP
  110664. T} T{
  110665. T}
  110666. _
  110667. T{
  110668. \fBapache_conf\fP
  110669. T} T{
  110670. T}
  110671. _
  110672. T{
  110673. \fBapache_module\fP
  110674. T} T{
  110675. Manage Apache Modules
  110676. T}
  110677. _
  110678. T{
  110679. \fBapache_site\fP
  110680. T} T{
  110681. Manage Apache Sites
  110682. T}
  110683. _
  110684. T{
  110685. \fBaptpkg\fP
  110686. T} T{
  110687. T}
  110688. _
  110689. T{
  110690. \fBarchive\fP
  110691. T} T{
  110692. T}
  110693. _
  110694. T{
  110695. \fBartifactory\fP
  110696. T} T{
  110697. This state downloads artifacts from artifactory.
  110698. T}
  110699. _
  110700. T{
  110701. \fBat\fP
  110702. T} T{
  110703. Configuration disposable regularly scheduled tasks for at.
  110704. T}
  110705. _
  110706. T{
  110707. \fBaugeas\fP
  110708. T} T{
  110709. T}
  110710. _
  110711. T{
  110712. \fBaws_sqs\fP
  110713. T} T{
  110714. Manage SQS Queues
  110715. T}
  110716. _
  110717. T{
  110718. \fBazurearm_compute\fP
  110719. T} T{
  110720. Azure (ARM) Compute State Module
  110721. T}
  110722. _
  110723. T{
  110724. \fBazurearm_dns\fP
  110725. T} T{
  110726. Azure (ARM) DNS State Module
  110727. T}
  110728. _
  110729. T{
  110730. \fBazurearm_network\fP
  110731. T} T{
  110732. Azure (ARM) Network State Module
  110733. T}
  110734. _
  110735. T{
  110736. \fBazurearm_resource\fP
  110737. T} T{
  110738. T}
  110739. _
  110740. T{
  110741. \fBbeacon\fP
  110742. T} T{
  110743. Management of the Salt beacons
  110744. T}
  110745. _
  110746. T{
  110747. \fBbigip\fP
  110748. T} T{
  110749. T}
  110750. _
  110751. T{
  110752. \fBblockdev\fP
  110753. T} T{
  110754. T}
  110755. _
  110756. T{
  110757. \fBboto3_elasticache\fP
  110758. T} T{
  110759. Manage Elasticache with boto3
  110760. T}
  110761. _
  110762. T{
  110763. \fBboto3_elasticsearch\fP
  110764. T} T{
  110765. T}
  110766. _
  110767. T{
  110768. \fBboto3_route53\fP
  110769. T} T{
  110770. T}
  110771. _
  110772. T{
  110773. \fBboto3_sns\fP
  110774. T} T{
  110775. T}
  110776. _
  110777. T{
  110778. \fBboto_apigateway\fP
  110779. T} T{
  110780. T}
  110781. _
  110782. T{
  110783. \fBboto_asg\fP
  110784. T} T{
  110785. T}
  110786. _
  110787. T{
  110788. \fBboto_cfn\fP
  110789. T} T{
  110790. T}
  110791. _
  110792. T{
  110793. \fBboto_cloudfront\fP
  110794. T} T{
  110795. Manage CloudFront distributions
  110796. T}
  110797. _
  110798. T{
  110799. \fBboto_cloudtrail\fP
  110800. T} T{
  110801. T}
  110802. _
  110803. T{
  110804. \fBboto_cloudwatch_alarm\fP
  110805. T} T{
  110806. T}
  110807. _
  110808. T{
  110809. \fBboto_cloudwatch_event\fP
  110810. T} T{
  110811. T}
  110812. _
  110813. T{
  110814. \fBboto_cognitoidentity\fP
  110815. T} T{
  110816. Manage CognitoIdentity Functions
  110817. T}
  110818. _
  110819. T{
  110820. \fBboto_datapipeline\fP
  110821. T} T{
  110822. T}
  110823. _
  110824. T{
  110825. \fBboto_dynamodb\fP
  110826. T} T{
  110827. T}
  110828. _
  110829. T{
  110830. \fBboto_ec2\fP
  110831. T} T{
  110832. T}
  110833. _
  110834. T{
  110835. \fBboto_elasticache\fP
  110836. T} T{
  110837. Manage Elasticache
  110838. T}
  110839. _
  110840. T{
  110841. \fBboto_elasticsearch_domain\fP
  110842. T} T{
  110843. T}
  110844. _
  110845. T{
  110846. \fBboto_elb\fP
  110847. T} T{
  110848. T}
  110849. _
  110850. T{
  110851. \fBboto_elbv2\fP
  110852. T} T{
  110853. Manage AWS Application Load Balancer
  110854. T}
  110855. _
  110856. T{
  110857. \fBboto_iam\fP
  110858. T} T{
  110859. T}
  110860. _
  110861. T{
  110862. \fBboto_iam_role\fP
  110863. T} T{
  110864. T}
  110865. _
  110866. T{
  110867. \fBboto_iot\fP
  110868. T} T{
  110869. T}
  110870. _
  110871. T{
  110872. \fBboto_kinesis\fP
  110873. T} T{
  110874. Manage Kinesis Streams
  110875. T}
  110876. _
  110877. T{
  110878. \fBboto_kms\fP
  110879. T} T{
  110880. T}
  110881. _
  110882. T{
  110883. \fBboto_lambda\fP
  110884. T} T{
  110885. T}
  110886. _
  110887. T{
  110888. \fBboto_lc\fP
  110889. T} T{
  110890. Manage Launch Configurations
  110891. T}
  110892. _
  110893. T{
  110894. \fBboto_rds\fP
  110895. T} T{
  110896. T}
  110897. _
  110898. T{
  110899. \fBboto_route53\fP
  110900. T} T{
  110901. T}
  110902. _
  110903. T{
  110904. \fBboto_s3\fP
  110905. T} T{
  110906. T}
  110907. _
  110908. T{
  110909. \fBboto_s3_bucket\fP
  110910. T} T{
  110911. T}
  110912. _
  110913. T{
  110914. \fBboto_secgroup\fP
  110915. T} T{
  110916. T}
  110917. _
  110918. T{
  110919. \fBboto_sns\fP
  110920. T} T{
  110921. Manage SNS Topics
  110922. T}
  110923. _
  110924. T{
  110925. \fBboto_sqs\fP
  110926. T} T{
  110927. T}
  110928. _
  110929. T{
  110930. \fBboto_vpc\fP
  110931. T} T{
  110932. T}
  110933. _
  110934. T{
  110935. \fBbower\fP
  110936. T} T{
  110937. Installation of Bower Packages
  110938. T}
  110939. _
  110940. T{
  110941. \fBbtrfs\fP
  110942. T} T{
  110943. .INDENT 0.0
  110944. .TP
  110945. .B maintainer
  110946. Alberto Planas <\fI\%aplanas@suse.com\fP>
  110947. .UNINDENT
  110948. T}
  110949. _
  110950. T{
  110951. \fBcabal\fP
  110952. T} T{
  110953. T}
  110954. _
  110955. T{
  110956. \fBceph\fP
  110957. T} T{
  110958. T}
  110959. _
  110960. T{
  110961. \fBchef\fP
  110962. T} T{
  110963. Execute Chef client runs
  110964. T}
  110965. _
  110966. T{
  110967. \fBchocolatey\fP
  110968. T} T{
  110969. T}
  110970. _
  110971. T{
  110972. \fBchronos_job\fP
  110973. T} T{
  110974. Configure Chronos jobs via a salt proxy.
  110975. T}
  110976. _
  110977. T{
  110978. \fBcimc\fP
  110979. T} T{
  110980. A state module to manage Cisco UCS chassis devices.
  110981. T}
  110982. _
  110983. T{
  110984. \fBcisconso\fP
  110985. T} T{
  110986. T}
  110987. _
  110988. T{
  110989. \fBcloud\fP
  110990. T} T{
  110991. T}
  110992. _
  110993. T{
  110994. \fI\%cmd\fP
  110995. T} T{
  110996. A generic class to build line\-oriented command interpreters.
  110997. T}
  110998. _
  110999. T{
  111000. \fBcomposer\fP
  111001. T} T{
  111002. Installation of Composer Packages
  111003. T}
  111004. _
  111005. T{
  111006. \fBcron\fP
  111007. T} T{
  111008. T}
  111009. _
  111010. T{
  111011. \fBcryptdev\fP
  111012. T} T{
  111013. Opening of Encrypted Devices
  111014. T}
  111015. _
  111016. T{
  111017. \fBcsf\fP
  111018. T} T{
  111019. CSF Ip tables management
  111020. T}
  111021. _
  111022. T{
  111023. \fBcyg\fP
  111024. T} T{
  111025. Installation of Cygwin packages.
  111026. T}
  111027. _
  111028. T{
  111029. \fBddns\fP
  111030. T} T{
  111031. Dynamic DNS updates
  111032. T}
  111033. _
  111034. T{
  111035. \fBdebconfmod\fP
  111036. T} T{
  111037. Management of debconf selections
  111038. T}
  111039. _
  111040. T{
  111041. \fBdellchassis\fP
  111042. T} T{
  111043. Manage chassis via Salt Proxies.
  111044. T}
  111045. _
  111046. T{
  111047. \fBdisk\fP
  111048. T} T{
  111049. Disk monitoring state
  111050. T}
  111051. _
  111052. T{
  111053. \fBdocker_container\fP
  111054. T} T{
  111055. T}
  111056. _
  111057. T{
  111058. \fBdocker_image\fP
  111059. T} T{
  111060. T}
  111061. _
  111062. T{
  111063. \fBdocker_network\fP
  111064. T} T{
  111065. T}
  111066. _
  111067. T{
  111068. \fBdocker_volume\fP
  111069. T} T{
  111070. T}
  111071. _
  111072. T{
  111073. \fBdrac\fP
  111074. T} T{
  111075. T}
  111076. _
  111077. T{
  111078. \fBdvs\fP
  111079. T} T{
  111080. Manage VMware distributed virtual switches (DVSs) and their distributed virtual portgroups (DVportgroups).
  111081. T}
  111082. _
  111083. T{
  111084. \fBelasticsearch\fP
  111085. T} T{
  111086. T}
  111087. _
  111088. T{
  111089. \fBelasticsearch_index\fP
  111090. T} T{
  111091. State module to manage Elasticsearch indices
  111092. T}
  111093. _
  111094. T{
  111095. \fBelasticsearch_index_template\fP
  111096. T} T{
  111097. State module to manage Elasticsearch index templates
  111098. T}
  111099. _
  111100. T{
  111101. \fBenviron\fP
  111102. T} T{
  111103. T}
  111104. _
  111105. T{
  111106. \fBeselect\fP
  111107. T} T{
  111108. Management of Gentoo configuration using eselect
  111109. T}
  111110. _
  111111. T{
  111112. \fBesxcluster\fP
  111113. T} T{
  111114. T}
  111115. _
  111116. T{
  111117. \fBesxdatacenter\fP
  111118. T} T{
  111119. Salt states to create and manage VMware vSphere datacenters (datacenters).
  111120. T}
  111121. _
  111122. T{
  111123. \fBesxi\fP
  111124. T} T{
  111125. T}
  111126. _
  111127. T{
  111128. \fBesxvm\fP
  111129. T} T{
  111130. T}
  111131. _
  111132. T{
  111133. \fBetcd_mod\fP
  111134. T} T{
  111135. Manage etcd Keys
  111136. T}
  111137. _
  111138. T{
  111139. \fBethtool\fP
  111140. T} T{
  111141. Configuration of network device
  111142. T}
  111143. _
  111144. T{
  111145. \fBevent\fP
  111146. T} T{
  111147. T}
  111148. _
  111149. T{
  111150. \fBfile\fP
  111151. T} T{
  111152. T}
  111153. _
  111154. T{
  111155. \fBfirewall\fP
  111156. T} T{
  111157. State to check firewall configurations
  111158. T}
  111159. _
  111160. T{
  111161. \fBfirewalld\fP
  111162. T} T{
  111163. T}
  111164. _
  111165. T{
  111166. \fBgem\fP
  111167. T} T{
  111168. Installation of Ruby modules packaged as gems
  111169. T}
  111170. _
  111171. T{
  111172. \fBgit\fP
  111173. T} T{
  111174. T}
  111175. _
  111176. T{
  111177. \fBgithub\fP
  111178. T} T{
  111179. Github User State Module
  111180. T}
  111181. _
  111182. T{
  111183. \fBglance\fP
  111184. T} T{
  111185. Managing Images in OpenStack Glance
  111186. T}
  111187. _
  111188. T{
  111189. \fBglance_image\fP
  111190. T} T{
  111191. Management of OpenStack Glance Images
  111192. T}
  111193. _
  111194. T{
  111195. \fBglassfish\fP
  111196. T} T{
  111197. Manage Glassfish/Payara server ..
  111198. T}
  111199. _
  111200. T{
  111201. \fBglusterfs\fP
  111202. T} T{
  111203. T}
  111204. _
  111205. T{
  111206. \fBgnomedesktop\fP
  111207. T} T{
  111208. Configuration of the GNOME desktop
  111209. T}
  111210. _
  111211. T{
  111212. \fBgpg\fP
  111213. T} T{
  111214. Management of the GPG keychains
  111215. T}
  111216. _
  111217. T{
  111218. \fBgrafana\fP
  111219. T} T{
  111220. T}
  111221. _
  111222. T{
  111223. \fBgrafana4_dashboard\fP
  111224. T} T{
  111225. T}
  111226. _
  111227. T{
  111228. \fBgrafana4_datasource\fP
  111229. T} T{
  111230. T}
  111231. _
  111232. T{
  111233. \fBgrafana4_org\fP
  111234. T} T{
  111235. T}
  111236. _
  111237. T{
  111238. \fBgrafana4_user\fP
  111239. T} T{
  111240. T}
  111241. _
  111242. T{
  111243. \fBgrafana_dashboard\fP
  111244. T} T{
  111245. T}
  111246. _
  111247. T{
  111248. \fBgrafana_datasource\fP
  111249. T} T{
  111250. Manage Grafana v2.0 data sources
  111251. T}
  111252. _
  111253. T{
  111254. \fBgrains\fP
  111255. T} T{
  111256. Manage grains on the minion
  111257. T}
  111258. _
  111259. T{
  111260. \fBgroup\fP
  111261. T} T{
  111262. T}
  111263. _
  111264. T{
  111265. \fBheat\fP
  111266. T} T{
  111267. T}
  111268. _
  111269. T{
  111270. \fBhelm\fP
  111271. T} T{
  111272. T}
  111273. _
  111274. T{
  111275. \fBhg\fP
  111276. T} T{
  111277. T}
  111278. _
  111279. T{
  111280. \fBhighstate_doc\fP
  111281. T} T{
  111282. To be used with processors in module \fIhighstate_doc\fP\&.
  111283. T}
  111284. _
  111285. T{
  111286. \fBhost\fP
  111287. T} T{
  111288. T}
  111289. _
  111290. T{
  111291. \fBhttp\fP
  111292. T} T{
  111293. HTTP monitoring states
  111294. T}
  111295. _
  111296. T{
  111297. \fBicinga2\fP
  111298. T} T{
  111299. T}
  111300. _
  111301. T{
  111302. \fBifttt\fP
  111303. T} T{
  111304. Trigger an event in IFTTT
  111305. T}
  111306. _
  111307. T{
  111308. \fBincron\fP
  111309. T} T{
  111310. Management of incron, the inotify cron
  111311. T}
  111312. _
  111313. T{
  111314. \fBinfluxdb08_database\fP
  111315. T} T{
  111316. Management of Influxdb 0.8 databases
  111317. T}
  111318. _
  111319. T{
  111320. \fBinfluxdb08_user\fP
  111321. T} T{
  111322. Management of InfluxDB 0.8 users
  111323. T}
  111324. _
  111325. T{
  111326. \fBinfluxdb_continuous_query\fP
  111327. T} T{
  111328. Management of Influxdb continuous queries
  111329. T}
  111330. _
  111331. T{
  111332. \fBinfluxdb_database\fP
  111333. T} T{
  111334. Management of Influxdb databases
  111335. T}
  111336. _
  111337. T{
  111338. \fBinfluxdb_retention_policy\fP
  111339. T} T{
  111340. Management of Influxdb retention policies
  111341. T}
  111342. _
  111343. T{
  111344. \fBinfluxdb_user\fP
  111345. T} T{
  111346. Management of InfluxDB users
  111347. T}
  111348. _
  111349. T{
  111350. \fBinfoblox_a\fP
  111351. T} T{
  111352. Infoblox A record management.
  111353. T}
  111354. _
  111355. T{
  111356. \fBinfoblox_cname\fP
  111357. T} T{
  111358. Infoblox CNAME management.
  111359. T}
  111360. _
  111361. T{
  111362. \fBinfoblox_host_record\fP
  111363. T} T{
  111364. Infoblox host record management.
  111365. T}
  111366. _
  111367. T{
  111368. \fBinfoblox_range\fP
  111369. T} T{
  111370. Infoblox host record management.
  111371. T}
  111372. _
  111373. T{
  111374. \fBini_manage\fP
  111375. T} T{
  111376. T}
  111377. _
  111378. T{
  111379. \fBipmi\fP
  111380. T} T{
  111381. Manage IPMI devices over LAN
  111382. T}
  111383. _
  111384. T{
  111385. \fBipset\fP
  111386. T} T{
  111387. Management of ipsets
  111388. T}
  111389. _
  111390. T{
  111391. \fBiptables\fP
  111392. T} T{
  111393. T}
  111394. _
  111395. T{
  111396. \fBjboss7\fP
  111397. T} T{
  111398. T}
  111399. _
  111400. T{
  111401. \fBjenkins\fP
  111402. T} T{
  111403. T}
  111404. _
  111405. T{
  111406. \fBjunos\fP
  111407. T} T{
  111408. State modules to interact with Junos devices.
  111409. T}
  111410. _
  111411. T{
  111412. \fBkapacitor\fP
  111413. T} T{
  111414. T}
  111415. _
  111416. T{
  111417. \fBkernelpkg\fP
  111418. T} T{
  111419. Manage kernel packages and active kernel version
  111420. T}
  111421. _
  111422. T{
  111423. \fBkeyboard\fP
  111424. T} T{
  111425. Management of keyboard layouts
  111426. T}
  111427. _
  111428. T{
  111429. \fBkeystone\fP
  111430. T} T{
  111431. Management of Keystone users
  111432. T}
  111433. _
  111434. T{
  111435. \fBkeystone_domain\fP
  111436. T} T{
  111437. Management of OpenStack Keystone Domains
  111438. T}
  111439. _
  111440. T{
  111441. \fBkeystone_endpoint\fP
  111442. T} T{
  111443. Management of OpenStack Keystone Endpoints
  111444. T}
  111445. _
  111446. T{
  111447. \fBkeystone_group\fP
  111448. T} T{
  111449. Management of OpenStack Keystone Groups
  111450. T}
  111451. _
  111452. T{
  111453. \fBkeystone_project\fP
  111454. T} T{
  111455. Management of OpenStack Keystone Projects
  111456. T}
  111457. _
  111458. T{
  111459. \fBkeystone_role\fP
  111460. T} T{
  111461. Management of OpenStack Keystone Roles
  111462. T}
  111463. _
  111464. T{
  111465. \fBkeystone_role_grant\fP
  111466. T} T{
  111467. Management of OpenStack Keystone Role Grants
  111468. T}
  111469. _
  111470. T{
  111471. \fBkeystone_service\fP
  111472. T} T{
  111473. Management of OpenStack Keystone Services
  111474. T}
  111475. _
  111476. T{
  111477. \fBkeystone_user\fP
  111478. T} T{
  111479. Management of OpenStack Keystone Users
  111480. T}
  111481. _
  111482. T{
  111483. \fBkeystore\fP
  111484. T} T{
  111485. State management of a java keystore
  111486. T}
  111487. _
  111488. T{
  111489. \fBkmod\fP
  111490. T} T{
  111491. Loading and unloading of kernel modules
  111492. T}
  111493. _
  111494. T{
  111495. \fBkubernetes\fP
  111496. T} T{
  111497. Manage kubernetes resources as salt states
  111498. T}
  111499. _
  111500. T{
  111501. \fBlayman\fP
  111502. T} T{
  111503. Management of Gentoo Overlays using layman
  111504. T}
  111505. _
  111506. T{
  111507. \fBldap\fP
  111508. T} T{
  111509. T}
  111510. _
  111511. T{
  111512. \fBlibcloud_dns\fP
  111513. T} T{
  111514. T}
  111515. _
  111516. T{
  111517. \fBlibcloud_loadbalancer\fP
  111518. T} T{
  111519. T}
  111520. _
  111521. T{
  111522. \fBlibcloud_storage\fP
  111523. T} T{
  111524. T}
  111525. _
  111526. T{
  111527. \fBlinux_acl\fP
  111528. T} T{
  111529. T}
  111530. _
  111531. T{
  111532. \fBlocale\fP
  111533. T} T{
  111534. Management of languages/locales
  111535. T}
  111536. _
  111537. T{
  111538. \fBlogadm\fP
  111539. T} T{
  111540. T}
  111541. _
  111542. T{
  111543. \fBlogrotate\fP
  111544. T} T{
  111545. Module for managing logrotate.
  111546. T}
  111547. _
  111548. T{
  111549. \fBloop\fP
  111550. T} T{
  111551. Loop state
  111552. T}
  111553. _
  111554. T{
  111555. \fBlvm\fP
  111556. T} T{
  111557. T}
  111558. _
  111559. T{
  111560. \fBlvs_server\fP
  111561. T} T{
  111562. Management of LVS (Linux Virtual Server) Real Server
  111563. T}
  111564. _
  111565. T{
  111566. \fBlvs_service\fP
  111567. T} T{
  111568. Management of LVS (Linux Virtual Server) Service
  111569. T}
  111570. _
  111571. T{
  111572. \fBlxc\fP
  111573. T} T{
  111574. Manage Linux Containers
  111575. T}
  111576. _
  111577. T{
  111578. \fBlxd\fP
  111579. T} T{
  111580. Manage LXD profiles.
  111581. T}
  111582. _
  111583. T{
  111584. \fBlxd_container\fP
  111585. T} T{
  111586. Manage LXD containers.
  111587. T}
  111588. _
  111589. T{
  111590. \fBlxd_image\fP
  111591. T} T{
  111592. Manage LXD images.
  111593. T}
  111594. _
  111595. T{
  111596. \fBlxd_profile\fP
  111597. T} T{
  111598. Manage LXD profiles.
  111599. T}
  111600. _
  111601. T{
  111602. \fBmac_assistive\fP
  111603. T} T{
  111604. T}
  111605. _
  111606. T{
  111607. \fBmac_keychain\fP
  111608. T} T{
  111609. T}
  111610. _
  111611. T{
  111612. \fBmac_xattr\fP
  111613. T} T{
  111614. Allows you to manage extended attributes on files or directories
  111615. T}
  111616. _
  111617. T{
  111618. \fBmacdefaults\fP
  111619. T} T{
  111620. T}
  111621. _
  111622. T{
  111623. \fBmacpackage\fP
  111624. T} T{
  111625. T}
  111626. _
  111627. T{
  111628. \fBmakeconf\fP
  111629. T} T{
  111630. Management of Gentoo make.conf
  111631. T}
  111632. _
  111633. T{
  111634. \fBmarathon_app\fP
  111635. T} T{
  111636. Configure Marathon apps via a salt proxy.
  111637. T}
  111638. _
  111639. T{
  111640. \fBmdadm_raid\fP
  111641. T} T{
  111642. T}
  111643. _
  111644. T{
  111645. \fBmemcached\fP
  111646. T} T{
  111647. T}
  111648. _
  111649. T{
  111650. \fBmodjk\fP
  111651. T} T{
  111652. State to control Apache modjk
  111653. T}
  111654. _
  111655. T{
  111656. \fBmodjk_worker\fP
  111657. T} T{
  111658. Manage modjk workers
  111659. T}
  111660. _
  111661. T{
  111662. \fBmodule\fP
  111663. T} T{
  111664. T}
  111665. _
  111666. T{
  111667. \fBmongodb_database\fP
  111668. T} T{
  111669. Management of MongoDB Databases
  111670. T}
  111671. _
  111672. T{
  111673. \fBmongodb_user\fP
  111674. T} T{
  111675. Management of MongoDB Users
  111676. T}
  111677. _
  111678. T{
  111679. \fBmonit\fP
  111680. T} T{
  111681. Monit state
  111682. T}
  111683. _
  111684. T{
  111685. \fBmount\fP
  111686. T} T{
  111687. Mounting of filesystems
  111688. T}
  111689. _
  111690. T{
  111691. \fBmssql_database\fP
  111692. T} T{
  111693. Management of Microsoft SQLServer Databases
  111694. T}
  111695. _
  111696. T{
  111697. \fBmssql_login\fP
  111698. T} T{
  111699. Management of Microsoft SQLServer Logins
  111700. T}
  111701. _
  111702. T{
  111703. \fBmssql_role\fP
  111704. T} T{
  111705. Management of Microsoft SQLServer Databases
  111706. T}
  111707. _
  111708. T{
  111709. \fBmssql_user\fP
  111710. T} T{
  111711. Management of Microsoft SQLServer Users
  111712. T}
  111713. _
  111714. T{
  111715. \fBmsteams\fP
  111716. T} T{
  111717. Send a message card to Microsoft Teams
  111718. T}
  111719. _
  111720. T{
  111721. \fBmysql_database\fP
  111722. T} T{
  111723. Management of MySQL databases (schemas)
  111724. T}
  111725. _
  111726. T{
  111727. \fBmysql_grants\fP
  111728. T} T{
  111729. Management of MySQL grants (user permissions)
  111730. T}
  111731. _
  111732. T{
  111733. \fBmysql_query\fP
  111734. T} T{
  111735. T}
  111736. _
  111737. T{
  111738. \fBmysql_user\fP
  111739. T} T{
  111740. T}
  111741. _
  111742. T{
  111743. \fBnet_napalm_yang\fP
  111744. T} T{
  111745. T}
  111746. _
  111747. T{
  111748. \fBnetacl\fP
  111749. T} T{
  111750. T}
  111751. _
  111752. T{
  111753. \fBnetconfig\fP
  111754. T} T{
  111755. T}
  111756. _
  111757. T{
  111758. \fBnetntp\fP
  111759. T} T{
  111760. T}
  111761. _
  111762. T{
  111763. \fBnetsnmp\fP
  111764. T} T{
  111765. T}
  111766. _
  111767. T{
  111768. \fBnetusers\fP
  111769. T} T{
  111770. T}
  111771. _
  111772. T{
  111773. \fBnetwork\fP
  111774. T} T{
  111775. T}
  111776. _
  111777. T{
  111778. \fBneutron_network\fP
  111779. T} T{
  111780. Management of OpenStack Neutron Networks
  111781. T}
  111782. _
  111783. T{
  111784. \fBneutron_secgroup\fP
  111785. T} T{
  111786. Management of OpenStack Neutron Security Groups
  111787. T}
  111788. _
  111789. T{
  111790. \fBneutron_secgroup_rule\fP
  111791. T} T{
  111792. Management of OpenStack Neutron Security Group Rules
  111793. T}
  111794. _
  111795. T{
  111796. \fBneutron_subnet\fP
  111797. T} T{
  111798. Management of OpenStack Neutron Subnets
  111799. T}
  111800. _
  111801. T{
  111802. \fBnexus\fP
  111803. T} T{
  111804. This state downloads artifacts from Nexus 3.x.
  111805. T}
  111806. _
  111807. T{
  111808. \fBnfs_export\fP
  111809. T} T{
  111810. T}
  111811. _
  111812. T{
  111813. \fBnftables\fP
  111814. T} T{
  111815. T}
  111816. _
  111817. T{
  111818. \fBnpm\fP
  111819. T} T{
  111820. Installation of NPM Packages
  111821. T}
  111822. _
  111823. T{
  111824. \fBntp\fP
  111825. T} T{
  111826. T}
  111827. _
  111828. T{
  111829. \fBnxos\fP
  111830. T} T{
  111831. State module for Cisco NX\-OS Switch Proxy and Native minions
  111832. T}
  111833. _
  111834. T{
  111835. \fBnxos_upgrade\fP
  111836. T} T{
  111837. Manage NX\-OS System Image Upgrades.
  111838. T}
  111839. _
  111840. T{
  111841. \fBopenstack_config\fP
  111842. T} T{
  111843. Manage OpenStack configuration file settings.
  111844. T}
  111845. _
  111846. T{
  111847. \fBopenvswitch_bridge\fP
  111848. T} T{
  111849. Management of Open vSwitch bridges.
  111850. T}
  111851. _
  111852. T{
  111853. \fBopenvswitch_port\fP
  111854. T} T{
  111855. Management of Open vSwitch ports.
  111856. T}
  111857. _
  111858. T{
  111859. \fBopsgenie\fP
  111860. T} T{
  111861. Create/Close an alert in OpsGenie
  111862. T}
  111863. _
  111864. T{
  111865. \fBpagerduty\fP
  111866. T} T{
  111867. Create an Event in PagerDuty
  111868. T}
  111869. _
  111870. T{
  111871. \fBpagerduty_escalation_policy\fP
  111872. T} T{
  111873. Manage PagerDuty escalation policies.
  111874. T}
  111875. _
  111876. T{
  111877. \fBpagerduty_schedule\fP
  111878. T} T{
  111879. Manage PagerDuty schedules.
  111880. T}
  111881. _
  111882. T{
  111883. \fBpagerduty_service\fP
  111884. T} T{
  111885. Manage PagerDuty services
  111886. T}
  111887. _
  111888. T{
  111889. \fBpagerduty_user\fP
  111890. T} T{
  111891. Manage PagerDuty users.
  111892. T}
  111893. _
  111894. T{
  111895. \fBpanos\fP
  111896. T} T{
  111897. A state module to manage Palo Alto network devices.
  111898. T}
  111899. _
  111900. T{
  111901. \fBpbm\fP
  111902. T} T{
  111903. T}
  111904. _
  111905. T{
  111906. \fBpcs\fP
  111907. T} T{
  111908. T}
  111909. _
  111910. T{
  111911. \fBpdbedit\fP
  111912. T} T{
  111913. T}
  111914. _
  111915. T{
  111916. \fBpecl\fP
  111917. T} T{
  111918. Installation of PHP Extensions Using pecl
  111919. T}
  111920. _
  111921. T{
  111922. \fBpip_state\fP
  111923. T} T{
  111924. T}
  111925. _
  111926. T{
  111927. \fBpkg\fP
  111928. T} T{
  111929. T}
  111930. _
  111931. T{
  111932. \fBpkgbuild\fP
  111933. T} T{
  111934. The pkgbuild state is the front of Salt package building backend.
  111935. T}
  111936. _
  111937. T{
  111938. \fBpkgng\fP
  111939. T} T{
  111940. Manage package remote repo using FreeBSD pkgng
  111941. T}
  111942. _
  111943. T{
  111944. \fBpkgrepo\fP
  111945. T} T{
  111946. T}
  111947. _
  111948. T{
  111949. \fBportage_config\fP
  111950. T} T{
  111951. Management of Portage package configuration on Gentoo
  111952. T}
  111953. _
  111954. T{
  111955. \fBports\fP
  111956. T} T{
  111957. T}
  111958. _
  111959. T{
  111960. \fBpostgres_cluster\fP
  111961. T} T{
  111962. Management of PostgreSQL clusters
  111963. T}
  111964. _
  111965. T{
  111966. \fBpostgres_database\fP
  111967. T} T{
  111968. Management of PostgreSQL databases
  111969. T}
  111970. _
  111971. T{
  111972. \fBpostgres_extension\fP
  111973. T} T{
  111974. T}
  111975. _
  111976. T{
  111977. \fBpostgres_group\fP
  111978. T} T{
  111979. T}
  111980. _
  111981. T{
  111982. \fBpostgres_initdb\fP
  111983. T} T{
  111984. Initialization of PostgreSQL data directory
  111985. T}
  111986. _
  111987. T{
  111988. \fBpostgres_language\fP
  111989. T} T{
  111990. Management of PostgreSQL languages
  111991. T}
  111992. _
  111993. T{
  111994. \fBpostgres_privileges\fP
  111995. T} T{
  111996. Management of PostgreSQL Privileges
  111997. T}
  111998. _
  111999. T{
  112000. \fBpostgres_schema\fP
  112001. T} T{
  112002. Management of PostgreSQL schemas
  112003. T}
  112004. _
  112005. T{
  112006. \fBpostgres_tablespace\fP
  112007. T} T{
  112008. T}
  112009. _
  112010. T{
  112011. \fBpostgres_user\fP
  112012. T} T{
  112013. T}
  112014. _
  112015. T{
  112016. \fBpowerpath\fP
  112017. T} T{
  112018. Powerpath configuration support
  112019. T}
  112020. _
  112021. T{
  112022. \fBprobes\fP
  112023. T} T{
  112024. T}
  112025. _
  112026. T{
  112027. \fBprocess\fP
  112028. T} T{
  112029. Process Management
  112030. T}
  112031. _
  112032. T{
  112033. \fBproxy\fP
  112034. T} T{
  112035. T}
  112036. _
  112037. T{
  112038. \fBpushover\fP
  112039. T} T{
  112040. Send a message to PushOver
  112041. T}
  112042. _
  112043. T{
  112044. \fBpyenv\fP
  112045. T} T{
  112046. Managing python installations with pyenv
  112047. T}
  112048. _
  112049. T{
  112050. \fBpyrax_queues\fP
  112051. T} T{
  112052. Manage Rackspace Queues
  112053. T}
  112054. _
  112055. T{
  112056. \fBquota\fP
  112057. T} T{
  112058. Management of POSIX Quotas
  112059. T}
  112060. _
  112061. T{
  112062. \fBrabbitmq_cluster\fP
  112063. T} T{
  112064. T}
  112065. _
  112066. T{
  112067. \fBrabbitmq_plugin\fP
  112068. T} T{
  112069. Manage RabbitMQ Plugins
  112070. T}
  112071. _
  112072. T{
  112073. \fBrabbitmq_policy\fP
  112074. T} T{
  112075. T}
  112076. _
  112077. T{
  112078. \fBrabbitmq_upstream\fP
  112079. T} T{
  112080. T}
  112081. _
  112082. T{
  112083. \fBrabbitmq_user\fP
  112084. T} T{
  112085. T}
  112086. _
  112087. T{
  112088. \fBrabbitmq_vhost\fP
  112089. T} T{
  112090. T}
  112091. _
  112092. T{
  112093. \fBrbac_solaris\fP
  112094. T} T{
  112095. Management of Solaris RBAC
  112096. T}
  112097. _
  112098. T{
  112099. \fBrbenv\fP
  112100. T} T{
  112101. Managing Ruby installations with rbenv
  112102. T}
  112103. _
  112104. T{
  112105. \fBrdp\fP
  112106. T} T{
  112107. Manage RDP Service on Windows servers
  112108. T}
  112109. _
  112110. T{
  112111. \fBredismod\fP
  112112. T} T{
  112113. Management of Redis server
  112114. T}
  112115. _
  112116. T{
  112117. \fBreg\fP
  112118. T} T{
  112119. T}
  112120. _
  112121. T{
  112122. \fBrsync\fP
  112123. T} T{
  112124. T}
  112125. _
  112126. T{
  112127. \fBrvm\fP
  112128. T} T{
  112129. Managing Ruby installations and gemsets with Ruby Version Manager (RVM)
  112130. T}
  112131. _
  112132. T{
  112133. \fBsalt_proxy\fP
  112134. T} T{
  112135. Salt proxy state
  112136. T}
  112137. _
  112138. T{
  112139. \fBsaltmod\fP
  112140. T} T{
  112141. T}
  112142. _
  112143. T{
  112144. \fBsaltutil\fP
  112145. T} T{
  112146. Saltutil State
  112147. T}
  112148. _
  112149. T{
  112150. \fBschedule\fP
  112151. T} T{
  112152. Management of the Salt scheduler
  112153. T}
  112154. _
  112155. T{
  112156. \fBselinux\fP
  112157. T} T{
  112158. Management of SELinux rules
  112159. T}
  112160. _
  112161. T{
  112162. \fBserverdensity_device\fP
  112163. T} T{
  112164. T}
  112165. _
  112166. T{
  112167. \fBservice\fP
  112168. T} T{
  112169. T}
  112170. _
  112171. T{
  112172. \fBslack\fP
  112173. T} T{
  112174. Send a message to Slack
  112175. T}
  112176. _
  112177. T{
  112178. \fBsmartos\fP
  112179. T} T{
  112180. T}
  112181. _
  112182. T{
  112183. \fBsmtp\fP
  112184. T} T{
  112185. Sending Messages via SMTP
  112186. T}
  112187. _
  112188. T{
  112189. \fBsnapper\fP
  112190. T} T{
  112191. Managing implicit state and baselines using snapshots
  112192. T}
  112193. _
  112194. T{
  112195. \fBsolrcloud\fP
  112196. T} T{
  112197. T}
  112198. _
  112199. T{
  112200. \fBsplunk\fP
  112201. T} T{
  112202. Splunk User State Module
  112203. T}
  112204. _
  112205. T{
  112206. \fBsplunk_search\fP
  112207. T} T{
  112208. Splunk Search State Module
  112209. T}
  112210. _
  112211. T{
  112212. \fBsqlite3\fP
  112213. T} T{
  112214. Management of SQLite3 databases
  112215. T}
  112216. _
  112217. T{
  112218. \fBssh_auth\fP
  112219. T} T{
  112220. Control of entries in SSH authorized_key files
  112221. T}
  112222. _
  112223. T{
  112224. \fBssh_known_hosts\fP
  112225. T} T{
  112226. T}
  112227. _
  112228. T{
  112229. \fBstateconf\fP
  112230. T} T{
  112231. Stateconf System
  112232. T}
  112233. _
  112234. T{
  112235. \fBstatus\fP
  112236. T} T{
  112237. Minion status monitoring
  112238. T}
  112239. _
  112240. T{
  112241. \fBstatuspage\fP
  112242. T} T{
  112243. StatusPage
  112244. T}
  112245. _
  112246. T{
  112247. \fBsupervisord\fP
  112248. T} T{
  112249. Interaction with the Supervisor daemon
  112250. T}
  112251. _
  112252. T{
  112253. \fBsvn\fP
  112254. T} T{
  112255. T}
  112256. _
  112257. T{
  112258. \fBsysctl\fP
  112259. T} T{
  112260. Configuration of the kernel using sysctl
  112261. T}
  112262. _
  112263. T{
  112264. \fBsyslog_ng\fP
  112265. T} T{
  112266. State module for syslog_ng
  112267. T}
  112268. _
  112269. T{
  112270. \fBsysrc\fP
  112271. T} T{
  112272. State to work with sysrc
  112273. T}
  112274. _
  112275. T{
  112276. \fBtelemetry_alert\fP
  112277. T} T{
  112278. Manage Telemetry alert configurations
  112279. T}
  112280. _
  112281. T{
  112282. \fI\%test\fP
  112283. T} T{
  112284. T}
  112285. _
  112286. T{
  112287. \fBtestinframod\fP
  112288. T} T{
  112289. T}
  112290. _
  112291. T{
  112292. \fBtimezone\fP
  112293. T} T{
  112294. Management of timezones
  112295. T}
  112296. _
  112297. T{
  112298. \fBtls\fP
  112299. T} T{
  112300. Enforce state for SSL/TLS
  112301. T}
  112302. _
  112303. T{
  112304. \fBtomcat\fP
  112305. T} T{
  112306. Manage Apache Tomcat web applications
  112307. T}
  112308. _
  112309. T{
  112310. \fBtrafficserver\fP
  112311. T} T{
  112312. Control Apache Traffic Server
  112313. T}
  112314. _
  112315. T{
  112316. \fBtuned\fP
  112317. T} T{
  112318. Interface to Red Hat tuned\-adm module
  112319. T}
  112320. _
  112321. T{
  112322. \fBuptime\fP
  112323. T} T{
  112324. Monitor Web Server with Uptime
  112325. T}
  112326. _
  112327. T{
  112328. \fBuser\fP
  112329. T} T{
  112330. T}
  112331. _
  112332. T{
  112333. \fBvagrant\fP
  112334. T} T{
  112335. T}
  112336. _
  112337. T{
  112338. \fBvault\fP
  112339. T} T{
  112340. States for managing Hashicorp Vault.
  112341. T}
  112342. _
  112343. T{
  112344. \fBvbox_guest\fP
  112345. T} T{
  112346. VirtualBox Guest Additions installer state
  112347. T}
  112348. _
  112349. T{
  112350. \fBvictorops\fP
  112351. T} T{
  112352. Create an Event in VictorOps
  112353. T}
  112354. _
  112355. T{
  112356. \fBvirt\fP
  112357. T} T{
  112358. T}
  112359. _
  112360. T{
  112361. \fBvirtualenv_mod\fP
  112362. T} T{
  112363. T}
  112364. _
  112365. T{
  112366. \fBwebutil\fP
  112367. T} T{
  112368. T}
  112369. _
  112370. T{
  112371. \fBwin_certutil\fP
  112372. T} T{
  112373. T}
  112374. _
  112375. T{
  112376. \fBwin_dacl\fP
  112377. T} T{
  112378. Windows Object Access Control Lists
  112379. T}
  112380. _
  112381. T{
  112382. \fBwin_dism\fP
  112383. T} T{
  112384. T}
  112385. _
  112386. T{
  112387. \fBwin_dns_client\fP
  112388. T} T{
  112389. Module for configuring DNS Client on Windows systems
  112390. T}
  112391. _
  112392. T{
  112393. \fBwin_firewall\fP
  112394. T} T{
  112395. State for configuring Windows Firewall
  112396. T}
  112397. _
  112398. T{
  112399. \fBwin_iis\fP
  112400. T} T{
  112401. Microsoft IIS site management
  112402. T}
  112403. _
  112404. T{
  112405. \fBwin_lgpo\fP
  112406. T} T{
  112407. T}
  112408. _
  112409. T{
  112410. \fBwin_license\fP
  112411. T} T{
  112412. T}
  112413. _
  112414. T{
  112415. \fBwin_network\fP
  112416. T} T{
  112417. T}
  112418. _
  112419. T{
  112420. \fBwin_path\fP
  112421. T} T{
  112422. T}
  112423. _
  112424. T{
  112425. \fBwin_pki\fP
  112426. T} T{
  112427. Microsoft certificate management via the Pki PowerShell module.
  112428. T}
  112429. _
  112430. T{
  112431. \fBwin_powercfg\fP
  112432. T} T{
  112433. T}
  112434. _
  112435. T{
  112436. \fBwin_servermanager\fP
  112437. T} T{
  112438. T}
  112439. _
  112440. T{
  112441. \fBwin_smtp_server\fP
  112442. T} T{
  112443. T}
  112444. _
  112445. T{
  112446. \fBwin_snmp\fP
  112447. T} T{
  112448. Module for managing SNMP service settings on Windows servers.
  112449. T}
  112450. _
  112451. T{
  112452. \fBwin_system\fP
  112453. T} T{
  112454. T}
  112455. _
  112456. T{
  112457. \fBwin_wua\fP
  112458. T} T{
  112459. T}
  112460. _
  112461. T{
  112462. \fBwin_wusa\fP
  112463. T} T{
  112464. T}
  112465. _
  112466. T{
  112467. \fBwinrepo\fP
  112468. T} T{
  112469. T}
  112470. _
  112471. T{
  112472. \fBwordpress\fP
  112473. T} T{
  112474. This state module is used to manage Wordpress installations
  112475. T}
  112476. _
  112477. T{
  112478. \fBx509\fP
  112479. T} T{
  112480. Manage X509 Certificates
  112481. T}
  112482. _
  112483. T{
  112484. \fBxml\fP
  112485. T} T{
  112486. XML Manager
  112487. T}
  112488. _
  112489. T{
  112490. \fBxmpp\fP
  112491. T} T{
  112492. Sending Messages over XMPP
  112493. T}
  112494. _
  112495. T{
  112496. \fBzabbix_action\fP
  112497. T} T{
  112498. New in version 2017.7.
  112499. T}
  112500. _
  112501. T{
  112502. \fBzabbix_host\fP
  112503. T} T{
  112504. T}
  112505. _
  112506. T{
  112507. \fBzabbix_hostgroup\fP
  112508. T} T{
  112509. Management of Zabbix host groups.
  112510. T}
  112511. _
  112512. T{
  112513. \fBzabbix_mediatype\fP
  112514. T} T{
  112515. Management of Zabbix mediatypes.
  112516. T}
  112517. _
  112518. T{
  112519. \fBzabbix_template\fP
  112520. T} T{
  112521. New in version 2017.7.
  112522. T}
  112523. _
  112524. T{
  112525. \fBzabbix_user\fP
  112526. T} T{
  112527. T}
  112528. _
  112529. T{
  112530. \fBzabbix_usergroup\fP
  112531. T} T{
  112532. Management of Zabbix user groups.
  112533. T}
  112534. _
  112535. T{
  112536. \fBzabbix_usermacro\fP
  112537. T} T{
  112538. Management of Zabbix usermacros.
  112539. T}
  112540. _
  112541. T{
  112542. \fBzabbix_valuemap\fP
  112543. T} T{
  112544. New in version 2017.7.
  112545. T}
  112546. _
  112547. T{
  112548. \fBzcbuildout\fP
  112549. T} T{
  112550. Management of zc.buildout
  112551. T}
  112552. _
  112553. T{
  112554. \fBzenoss\fP
  112555. T} T{
  112556. State to manage monitoring in Zenoss.
  112557. T}
  112558. _
  112559. T{
  112560. \fBzfs\fP
  112561. T} T{
  112562. T}
  112563. _
  112564. T{
  112565. \fBzk_concurrency\fP
  112566. T} T{
  112567. Control concurrency of steps within state execution using zookeeper
  112568. T}
  112569. _
  112570. T{
  112571. \fBzone\fP
  112572. T} T{
  112573. T}
  112574. _
  112575. T{
  112576. \fBzookeeper\fP
  112577. T} T{
  112578. .INDENT 0.0
  112579. .TP
  112580. .B depends
  112581. kazoo
  112582. .UNINDENT
  112583. T}
  112584. _
  112585. T{
  112586. \fBzpool\fP
  112587. T} T{
  112588. T}
  112589. _
  112590. .TE
  112591. .SS salt.states.alias
  112592. .sp
  112593. Configuration of email aliases
  112594. .sp
  112595. The mail aliases file can be managed to contain definitions for specific email
  112596. aliases:
  112597. .INDENT 0.0
  112598. .INDENT 3.5
  112599. .sp
  112600. .nf
  112601. .ft C
  112602. username:
  112603. alias.present:
  112604. \- target: user@example.com
  112605. .ft P
  112606. .fi
  112607. .UNINDENT
  112608. .UNINDENT
  112609. .INDENT 0.0
  112610. .INDENT 3.5
  112611. .sp
  112612. .nf
  112613. .ft C
  112614. thomas:
  112615. alias.present:
  112616. \- target: thomas@example.com
  112617. .ft P
  112618. .fi
  112619. .UNINDENT
  112620. .UNINDENT
  112621. .sp
  112622. The default alias file is set to \fB/etc/aliases\fP, as defined in Salt\(aqs
  112623. \fBconfig execution module\fP\&. To change the alias
  112624. file from the default location, set the following in your minion config:
  112625. .INDENT 0.0
  112626. .INDENT 3.5
  112627. .sp
  112628. .nf
  112629. .ft C
  112630. aliases.file: /my/alias/file
  112631. .ft P
  112632. .fi
  112633. .UNINDENT
  112634. .UNINDENT
  112635. .INDENT 0.0
  112636. .TP
  112637. .B salt.states.alias.absent(name)
  112638. Ensure that the named alias is absent
  112639. .INDENT 7.0
  112640. .TP
  112641. .B name
  112642. The alias to remove
  112643. .UNINDENT
  112644. .UNINDENT
  112645. .INDENT 0.0
  112646. .TP
  112647. .B salt.states.alias.present(name, target)
  112648. Ensures that the named alias is present with the given target or list of
  112649. targets. If the alias exists but the target differs from the previous
  112650. entry, the target(s) will be overwritten. If the alias does not exist, the
  112651. alias will be created.
  112652. .INDENT 7.0
  112653. .TP
  112654. .B name
  112655. The local user/address to assign an alias to
  112656. .TP
  112657. .B target
  112658. The forwarding address
  112659. .UNINDENT
  112660. .UNINDENT
  112661. .SS salt.states.alternatives
  112662. .sp
  112663. Configuration of the alternatives system
  112664. .sp
  112665. Control the alternatives system
  112666. .INDENT 0.0
  112667. .INDENT 3.5
  112668. .sp
  112669. .nf
  112670. .ft C
  112671. {% set my_hadoop_conf = \(aq/opt/hadoop/conf\(aq %}
  112672. {{ my_hadoop_conf }}:
  112673. file.directory
  112674. hadoop\-0.20\-conf:
  112675. alternatives.install:
  112676. \- name: hadoop\-0.20\-conf
  112677. \- link: /etc/hadoop\-0.20/conf
  112678. \- path: {{ my_hadoop_conf }}
  112679. \- priority: 30
  112680. \- require:
  112681. \- file: {{ my_hadoop_conf }}
  112682. hadoop\-0.20\-conf:
  112683. alternatives.remove:
  112684. \- name: hadoop\-0.20\-conf
  112685. \- path: {{ my_hadoop_conf }}
  112686. .ft P
  112687. .fi
  112688. .UNINDENT
  112689. .UNINDENT
  112690. .INDENT 0.0
  112691. .TP
  112692. .B salt.states.alternatives.auto(name)
  112693. New in version 0.17.0.
  112694. .sp
  112695. Instruct alternatives to use the highest priority
  112696. path for <name>
  112697. .INDENT 7.0
  112698. .TP
  112699. .B name
  112700. is the master name for this link group
  112701. (e.g. pager)
  112702. .UNINDENT
  112703. .UNINDENT
  112704. .INDENT 0.0
  112705. .TP
  112706. .B salt.states.alternatives.install(name, link, path, priority)
  112707. Install new alternative for defined <name>
  112708. .INDENT 7.0
  112709. .TP
  112710. .B name
  112711. is the master name for this link group
  112712. (e.g. pager)
  112713. .TP
  112714. .B link
  112715. is the symlink pointing to /etc/alternatives/<name>.
  112716. (e.g. /usr/bin/pager)
  112717. .TP
  112718. .B path
  112719. is the location of the new alternative target.
  112720. NB: This file / directory must already exist.
  112721. (e.g. /usr/bin/less)
  112722. .TP
  112723. .B priority
  112724. is an integer; options with higher numbers have higher priority in
  112725. automatic mode.
  112726. .UNINDENT
  112727. .UNINDENT
  112728. .INDENT 0.0
  112729. .TP
  112730. .B salt.states.alternatives.remove(name, path)
  112731. Removes installed alternative for defined <name> and <path>
  112732. or fallback to default alternative, if some defined before.
  112733. .INDENT 7.0
  112734. .TP
  112735. .B name
  112736. is the master name for this link group
  112737. (e.g. pager)
  112738. .TP
  112739. .B path
  112740. is the location of one of the alternative target files.
  112741. (e.g. /usr/bin/less)
  112742. .UNINDENT
  112743. .UNINDENT
  112744. .INDENT 0.0
  112745. .TP
  112746. .B salt.states.alternatives.set_(name, path)
  112747. New in version 0.17.0.
  112748. .sp
  112749. Sets alternative for <name> to <path>, if <path> is defined
  112750. as an alternative for <name>.
  112751. .INDENT 7.0
  112752. .TP
  112753. .B name
  112754. is the master name for this link group
  112755. (e.g. pager)
  112756. .TP
  112757. .B path
  112758. is the location of one of the alternative target files.
  112759. (e.g. /usr/bin/less)
  112760. .UNINDENT
  112761. .INDENT 7.0
  112762. .INDENT 3.5
  112763. .sp
  112764. .nf
  112765. .ft C
  112766. foo:
  112767. alternatives.set:
  112768. \- path: /usr/bin/foo\-2.0
  112769. .ft P
  112770. .fi
  112771. .UNINDENT
  112772. .UNINDENT
  112773. .UNINDENT
  112774. .SS salt.states.apache_module
  112775. .sp
  112776. Manage Apache Modules
  112777. .sp
  112778. New in version 2014.7.0.
  112779. .sp
  112780. Enable and disable apache modules.
  112781. .INDENT 0.0
  112782. .INDENT 3.5
  112783. .sp
  112784. .nf
  112785. .ft C
  112786. Enable cgi module:
  112787. apache_module.enabled:
  112788. \- name: cgi
  112789. Disable cgi module:
  112790. apache_module.disabled:
  112791. \- name: cgi
  112792. .ft P
  112793. .fi
  112794. .UNINDENT
  112795. .UNINDENT
  112796. .INDENT 0.0
  112797. .TP
  112798. .B salt.states.apache_module.disabled(name)
  112799. Ensure an Apache module is disabled.
  112800. .sp
  112801. New in version 2016.3.0.
  112802. .INDENT 7.0
  112803. .TP
  112804. .B name
  112805. Name of the Apache module
  112806. .UNINDENT
  112807. .UNINDENT
  112808. .INDENT 0.0
  112809. .TP
  112810. .B salt.states.apache_module.enabled(name)
  112811. Ensure an Apache module is enabled.
  112812. .sp
  112813. New in version 2016.3.0.
  112814. .INDENT 7.0
  112815. .TP
  112816. .B name
  112817. Name of the Apache module
  112818. .UNINDENT
  112819. .UNINDENT
  112820. .SS salt.states.apache_site module
  112821. .sp
  112822. Manage Apache Sites
  112823. .sp
  112824. New in version 2016.3.0.
  112825. .sp
  112826. Enable and disable apache sites.
  112827. .INDENT 0.0
  112828. .INDENT 3.5
  112829. .sp
  112830. .nf
  112831. .ft C
  112832. Enable default site:
  112833. apache_site.enabled:
  112834. \- name: default
  112835. Disable default site:
  112836. apache_site.disabled:
  112837. \- name: default
  112838. .ft P
  112839. .fi
  112840. .UNINDENT
  112841. .UNINDENT
  112842. .INDENT 0.0
  112843. .TP
  112844. .B salt.states.apache_site.disabled(name)
  112845. Ensure an Apache site is disabled.
  112846. .INDENT 7.0
  112847. .TP
  112848. .B name
  112849. Name of the Apache site
  112850. .UNINDENT
  112851. .UNINDENT
  112852. .INDENT 0.0
  112853. .TP
  112854. .B salt.states.apache_site.enabled(name)
  112855. Ensure an Apache site is enabled.
  112856. .INDENT 7.0
  112857. .TP
  112858. .B name
  112859. Name of the Apache site
  112860. .UNINDENT
  112861. .UNINDENT
  112862. .SS salt.states.artifactory
  112863. .sp
  112864. This state downloads artifacts from artifactory.
  112865. .INDENT 0.0
  112866. .TP
  112867. .B salt.states.artifactory.downloaded(name, artifact, target_dir=u\(aq/tmp\(aq, target_file=None, use_literal_group_id=False)
  112868. Ensures that the artifact from artifactory exists at given location. If it doesn\(aqt exist, then
  112869. it will be downloaded. If it already exists then the checksum of existing file is checked against checksum
  112870. in artifactory. If it is different then the step will fail.
  112871. .INDENT 7.0
  112872. .TP
  112873. .B artifact
  112874. Details of the artifact to be downloaded from artifactory. Various options are:
  112875. .INDENT 7.0
  112876. .IP \(bu 2
  112877. artifactory_url: URL of the artifactory instance
  112878. .IP \(bu 2
  112879. repository: Repository in artifactory
  112880. .IP \(bu 2
  112881. artifact_id: Artifact ID
  112882. .IP \(bu 2
  112883. group_id: Group ID
  112884. .IP \(bu 2
  112885. packaging: Packaging
  112886. .IP \(bu 2
  112887. classifier: Classifier
  112888. .. versionadded:: 2015.8.0
  112889. .IP \(bu 2
  112890. .INDENT 2.0
  112891. .TP
  112892. .B version: Version
  112893. One of the following:
  112894. \- Version to download
  112895. \- \fBlatest\fP \- Download the latest release of this artifact
  112896. \- \fBlatest_snapshot\fP \- Download the latest snapshot for this artifact
  112897. .UNINDENT
  112898. .IP \(bu 2
  112899. username: Artifactory username
  112900. .. versionadded:: 2015.8.0
  112901. .IP \(bu 2
  112902. password: Artifactory password
  112903. .. versionadded:: 2015.8.0
  112904. .UNINDENT
  112905. .TP
  112906. .B target_dir
  112907. Directory where the artifact should be downloaded. By default it is downloaded to /tmp directory.
  112908. .TP
  112909. .B target_file
  112910. Target file to download artifact to. By default file name is resolved by artifactory.
  112911. .UNINDENT
  112912. .sp
  112913. An example to download an artifact to a specific file:
  112914. .INDENT 7.0
  112915. .INDENT 3.5
  112916. .sp
  112917. .nf
  112918. .ft C
  112919. jboss_module_downloaded:
  112920. artifactory.downloaded:
  112921. \- artifact:
  112922. artifactory_url: http://artifactory.intranet.example.com/artifactory
  112923. repository: \(aqlibs\-release\-local\(aq
  112924. artifact_id: \(aqmodule\(aq
  112925. group_id: \(aqcom.company.module\(aq
  112926. packaging: \(aqjar\(aq
  112927. classifier: \(aqsources\(aq
  112928. version: \(aq1.0\(aq
  112929. \- target_file: /opt/jboss7/modules/com/company/lib/module.jar
  112930. .ft P
  112931. .fi
  112932. .UNINDENT
  112933. .UNINDENT
  112934. .sp
  112935. Download artifact to the folder (automatically resolves file name):
  112936. .INDENT 7.0
  112937. .INDENT 3.5
  112938. .sp
  112939. .nf
  112940. .ft C
  112941. jboss_module_downloaded:
  112942. artifactory.downloaded:
  112943. \- artifact:
  112944. artifactory_url: http://artifactory.intranet.example.com/artifactory
  112945. repository: \(aqlibs\-release\-local\(aq
  112946. artifact_id: \(aqmodule\(aq
  112947. group_id: \(aqcom.company.module\(aq
  112948. packaging: \(aqjar\(aq
  112949. classifier: \(aqsources\(aq
  112950. version: \(aq1.0\(aq
  112951. \- target_dir: /opt/jboss7/modules/com/company/lib
  112952. .ft P
  112953. .fi
  112954. .UNINDENT
  112955. .UNINDENT
  112956. .UNINDENT
  112957. .SS salt.states.at
  112958. .SS Configuration disposable regularly scheduled tasks for at.
  112959. .sp
  112960. The at state can be add disposable regularly scheduled tasks for your system.
  112961. .INDENT 0.0
  112962. .TP
  112963. .B salt.states.at.absent(name, jobid=None, **kwargs)
  112964. Changed in version 2017.7.0.
  112965. .sp
  112966. Remove a job from queue
  112967. .INDENT 7.0
  112968. .TP
  112969. .B jobid: string|int
  112970. Specific jobid to remove
  112971. .TP
  112972. .B tag
  112973. string
  112974. Job\(aqs tag
  112975. .TP
  112976. .B runas
  112977. string
  112978. Runs user\-specified jobs
  112979. .TP
  112980. .B kwargs
  112981. Addition kwargs can be provided to filter jobs.
  112982. See output of \fIat.jobcheck\fP for more.
  112983. .UNINDENT
  112984. .INDENT 7.0
  112985. .INDENT 3.5
  112986. .sp
  112987. .nf
  112988. .ft C
  112989. example1:
  112990. at.absent:
  112991. .ft P
  112992. .fi
  112993. .UNINDENT
  112994. .UNINDENT
  112995. .sp
  112996. \fBWARNING:\fP
  112997. .INDENT 7.0
  112998. .INDENT 3.5
  112999. this will remove all jobs!
  113000. .UNINDENT
  113001. .UNINDENT
  113002. .INDENT 7.0
  113003. .INDENT 3.5
  113004. .sp
  113005. .nf
  113006. .ft C
  113007. example2:
  113008. at.absent:
  113009. \- year: 13
  113010. .ft P
  113011. .fi
  113012. .UNINDENT
  113013. .UNINDENT
  113014. .INDENT 7.0
  113015. .INDENT 3.5
  113016. .sp
  113017. .nf
  113018. .ft C
  113019. example3:
  113020. at.absent:
  113021. \- tag: rose
  113022. .ft P
  113023. .fi
  113024. .UNINDENT
  113025. .UNINDENT
  113026. .INDENT 7.0
  113027. .INDENT 3.5
  113028. .sp
  113029. .nf
  113030. .ft C
  113031. example4:
  113032. at.absent:
  113033. \- tag: rose
  113034. \- day: 13
  113035. \- hour: 16
  113036. .ft P
  113037. .fi
  113038. .UNINDENT
  113039. .UNINDENT
  113040. .INDENT 7.0
  113041. .INDENT 3.5
  113042. .sp
  113043. .nf
  113044. .ft C
  113045. example5:
  113046. at.absent:
  113047. \- jobid: 4
  113048. .ft P
  113049. .fi
  113050. .UNINDENT
  113051. .UNINDENT
  113052. .UNINDENT
  113053. .INDENT 0.0
  113054. .TP
  113055. .B salt.states.at.mod_watch(name, **kwargs)
  113056. The at watcher, called to invoke the watch command.
  113057. .sp
  113058. \fBNOTE:\fP
  113059. .INDENT 7.0
  113060. .INDENT 3.5
  113061. This state exists to support special handling of the \fBwatch\fP
  113062. requisite\&. It should not be called directly.
  113063. .sp
  113064. Parameters for this function should be set by the state being triggered.
  113065. .UNINDENT
  113066. .UNINDENT
  113067. .INDENT 7.0
  113068. .TP
  113069. .B name
  113070. The name of the atjob
  113071. .UNINDENT
  113072. .UNINDENT
  113073. .INDENT 0.0
  113074. .TP
  113075. .B salt.states.at.present(name, timespec, tag=None, user=None, job=None, unique_tag=False)
  113076. Changed in version 2017.7.0.
  113077. .sp
  113078. Add a job to queue.
  113079. .INDENT 7.0
  113080. .TP
  113081. .B job
  113082. string
  113083. Command to run.
  113084. .TP
  113085. .B timespec
  113086. string
  113087. The \(aqtimespec\(aq follows the format documented in the at(1) manpage.
  113088. .TP
  113089. .B tag
  113090. string
  113091. Make a tag for the job.
  113092. .TP
  113093. .B user
  113094. string
  113095. The user to run the at job
  113096. .. versionadded:: 2014.1.4
  113097. .TP
  113098. .B unique_tag
  113099. boolean
  113100. If set to True job will not be added if a job with the tag exists.
  113101. .. versionadded:: 2017.7.0
  113102. .UNINDENT
  113103. .INDENT 7.0
  113104. .INDENT 3.5
  113105. .sp
  113106. .nf
  113107. .ft C
  113108. rose:
  113109. at.present:
  113110. \- job: \(aqecho "I love saltstack" > love\(aq
  113111. \- timespec: \(aq9:09 11/09/13\(aq
  113112. \- tag: love
  113113. \- user: jam
  113114. .ft P
  113115. .fi
  113116. .UNINDENT
  113117. .UNINDENT
  113118. .UNINDENT
  113119. .INDENT 0.0
  113120. .TP
  113121. .B salt.states.at.watch(name, timespec, tag=None, user=None, job=None, unique_tag=False)
  113122. New in version 2017.7.0.
  113123. .sp
  113124. Add an at job if trigger by watch
  113125. .INDENT 7.0
  113126. .TP
  113127. .B job
  113128. string
  113129. Command to run.
  113130. .TP
  113131. .B timespec
  113132. string
  113133. The \(aqtimespec\(aq follows the format documented in the at(1) manpage.
  113134. .TP
  113135. .B tag
  113136. string
  113137. Make a tag for the job.
  113138. .TP
  113139. .B user
  113140. string
  113141. The user to run the at job
  113142. .. versionadded:: 2014.1.4
  113143. .TP
  113144. .B unique_tag
  113145. boolean
  113146. If set to True job will not be added if a job with the tag exists.
  113147. .. versionadded:: 2017.7.0
  113148. .UNINDENT
  113149. .INDENT 7.0
  113150. .INDENT 3.5
  113151. .sp
  113152. .nf
  113153. .ft C
  113154. minion_restart:
  113155. at.watch:
  113156. \- job: \(aqsalt\-call \-\-local service.restart salt\-minion\(aq
  113157. \- timespec: \(aqnow +1 min\(aq
  113158. \- tag: minion_restart
  113159. \- unique_tag: trye
  113160. \- watch:
  113161. \- file: /etc/salt/minion
  113162. .ft P
  113163. .fi
  113164. .UNINDENT
  113165. .UNINDENT
  113166. .UNINDENT
  113167. .SS salt.states.aws_sqs
  113168. .sp
  113169. Manage SQS Queues
  113170. .sp
  113171. Create and destroy SQS queues. Be aware that this interacts with Amazon\(aqs
  113172. services, and so may incur charges.
  113173. .sp
  113174. This module uses the awscli tool provided by Amazon. This can be downloaded
  113175. from pip. Also check the documentation for awscli for configuration
  113176. information.
  113177. .INDENT 0.0
  113178. .INDENT 3.5
  113179. .sp
  113180. .nf
  113181. .ft C
  113182. myqueue:
  113183. aws_sqs.exists:
  113184. \- region: eu\-west\-1
  113185. .ft P
  113186. .fi
  113187. .UNINDENT
  113188. .UNINDENT
  113189. .INDENT 0.0
  113190. .TP
  113191. .B salt.states.aws_sqs.absent(name, region, user=None, opts=False)
  113192. Remove the named SQS queue if it exists.
  113193. .INDENT 7.0
  113194. .TP
  113195. .B name
  113196. Name of the SQS queue.
  113197. .TP
  113198. .B region
  113199. Region to remove the queue from
  113200. .TP
  113201. .B user
  113202. Name of the user performing the SQS operations
  113203. .TP
  113204. .B opts
  113205. Include additional arguments and options to the aws command line
  113206. .UNINDENT
  113207. .UNINDENT
  113208. .INDENT 0.0
  113209. .TP
  113210. .B salt.states.aws_sqs.exists(name, region, user=None, opts=False)
  113211. Ensure the SQS queue exists.
  113212. .INDENT 7.0
  113213. .TP
  113214. .B name
  113215. Name of the SQS queue.
  113216. .TP
  113217. .B region
  113218. Region to create the queue
  113219. .TP
  113220. .B user
  113221. Name of the user performing the SQS operations
  113222. .TP
  113223. .B opts
  113224. Include additional arguments and options to the aws command line
  113225. .UNINDENT
  113226. .UNINDENT
  113227. .SS salt.states.azurearm_compute
  113228. .sp
  113229. Azure (ARM) Compute State Module
  113230. .sp
  113231. New in version 2019.2.0.
  113232. .INDENT 0.0
  113233. .TP
  113234. .B maintainer
  113235. <\fI\%devops@decisionlab.io\fP>
  113236. .TP
  113237. .B maturity
  113238. new
  113239. .TP
  113240. .B depends
  113241. .INDENT 7.0
  113242. .IP \(bu 2
  113243. \fI\%azure\fP >= 2.0.0
  113244. .IP \(bu 2
  113245. \fI\%azure\-common\fP >= 1.1.8
  113246. .IP \(bu 2
  113247. \fI\%azure\-mgmt\fP >= 1.0.0
  113248. .IP \(bu 2
  113249. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113250. .IP \(bu 2
  113251. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113252. .IP \(bu 2
  113253. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113254. .IP \(bu 2
  113255. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113256. .IP \(bu 2
  113257. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113258. .IP \(bu 2
  113259. \fI\%azure\-storage\fP >= 0.34.3
  113260. .IP \(bu 2
  113261. \fI\%msrestazure\fP >= 0.4.21
  113262. .UNINDENT
  113263. .TP
  113264. .B platform
  113265. linux
  113266. .TP
  113267. .B configuration
  113268. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113269. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113270. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113271. .sp
  113272. Required provider parameters:
  113273. .INDENT 7.0
  113274. .TP
  113275. .B if using username and password:
  113276. .INDENT 7.0
  113277. .IP \(bu 2
  113278. \fBsubscription_id\fP
  113279. .IP \(bu 2
  113280. \fBusername\fP
  113281. .IP \(bu 2
  113282. \fBpassword\fP
  113283. .UNINDENT
  113284. .TP
  113285. .B if using a service principal:
  113286. .INDENT 7.0
  113287. .IP \(bu 2
  113288. \fBsubscription_id\fP
  113289. .IP \(bu 2
  113290. \fBtenant\fP
  113291. .IP \(bu 2
  113292. \fBclient_id\fP
  113293. .IP \(bu 2
  113294. \fBsecret\fP
  113295. .UNINDENT
  113296. .UNINDENT
  113297. .sp
  113298. Optional provider parameters:
  113299. .INDENT 7.0
  113300. .TP
  113301. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113302. .INDENT 7.0
  113303. .IP \(bu 2
  113304. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113305. .IP \(bu 2
  113306. \fBAZURE_CHINA_CLOUD\fP
  113307. .IP \(bu 2
  113308. \fBAZURE_US_GOV_CLOUD\fP
  113309. .IP \(bu 2
  113310. \fBAZURE_GERMAN_CLOUD\fP
  113311. .UNINDENT
  113312. .UNINDENT
  113313. .sp
  113314. Example Pillar for Azure Resource Manager authentication:
  113315. .INDENT 7.0
  113316. .INDENT 3.5
  113317. .sp
  113318. .nf
  113319. .ft C
  113320. azurearm:
  113321. user_pass_auth:
  113322. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113323. username: fletch
  113324. password: 123pass
  113325. mysubscription:
  113326. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113327. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113328. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113329. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113330. cloud_environment: AZURE_PUBLIC_CLOUD
  113331. .ft P
  113332. .fi
  113333. .UNINDENT
  113334. .UNINDENT
  113335. .sp
  113336. Example states using Azure Resource Manager authentication:
  113337. .INDENT 7.0
  113338. .INDENT 3.5
  113339. .sp
  113340. .nf
  113341. .ft C
  113342. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113343. Ensure availability set exists:
  113344. azurearm_compute.availability_set_present:
  113345. \- name: my_avail_set
  113346. \- resource_group: my_rg
  113347. \- virtual_machines:
  113348. \- my_vm1
  113349. \- my_vm2
  113350. \- tags:
  113351. how_awesome: very
  113352. contact_name: Elmer Fudd Gantry
  113353. \- connection_auth: {{ profile }}
  113354. Ensure availability set is absent:
  113355. azurearm_compute.availability_set_absent:
  113356. \- name: other_avail_set
  113357. \- resource_group: my_rg
  113358. \- connection_auth: {{ profile }}
  113359. .ft P
  113360. .fi
  113361. .UNINDENT
  113362. .UNINDENT
  113363. .UNINDENT
  113364. .INDENT 0.0
  113365. .TP
  113366. .B salt.states.azurearm_compute.availability_set_absent(name, resource_group, connection_auth=None)
  113367. New in version 2019.2.0.
  113368. .sp
  113369. Ensure an availability set does not exist in a resource group.
  113370. .INDENT 7.0
  113371. .TP
  113372. .B Parameters
  113373. .INDENT 7.0
  113374. .IP \(bu 2
  113375. \fBname\fP \-\- Name of the availability set.
  113376. .IP \(bu 2
  113377. \fBresource_group\fP \-\- Name of the resource group containing the availability set.
  113378. .IP \(bu 2
  113379. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113380. Azure Resource Manager API.
  113381. .UNINDENT
  113382. .UNINDENT
  113383. .UNINDENT
  113384. .INDENT 0.0
  113385. .TP
  113386. .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)
  113387. New in version 2019.2.0.
  113388. .sp
  113389. Ensure an availability set exists.
  113390. .INDENT 7.0
  113391. .TP
  113392. .B Parameters
  113393. .INDENT 7.0
  113394. .IP \(bu 2
  113395. \fBname\fP \-\- Name of the availability set.
  113396. .IP \(bu 2
  113397. \fBresource_group\fP \-\- The resource group assigned to the availability set.
  113398. .IP \(bu 2
  113399. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the availability set object.
  113400. .IP \(bu 2
  113401. \fBplatform_update_domain_count\fP \-\- An optional parameter which indicates groups of virtual machines and underlying physical hardware that can be
  113402. rebooted at the same time.
  113403. .IP \(bu 2
  113404. \fBplatform_fault_domain_count\fP \-\- An optional parameter which defines the group of virtual machines that share a common power source and network
  113405. switch.
  113406. .IP \(bu 2
  113407. \fBvirtual_machines\fP \-\- A list of names of existing virtual machines to be included in the availability set.
  113408. .IP \(bu 2
  113409. \fBsku\fP \-\- The availability set SKU, which specifies whether the availability set is managed or not. Possible values are
  113410. \(aqAligned\(aq or \(aqClassic\(aq. An \(aqAligned\(aq availability set is managed, \(aqClassic\(aq is not.
  113411. .IP \(bu 2
  113412. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113413. Azure Resource Manager API.
  113414. .UNINDENT
  113415. .UNINDENT
  113416. .sp
  113417. Example usage:
  113418. .INDENT 7.0
  113419. .INDENT 3.5
  113420. .sp
  113421. .nf
  113422. .ft C
  113423. Ensure availability set exists:
  113424. azurearm_compute.availability_set_present:
  113425. \- name: aset1
  113426. \- resource_group: group1
  113427. \- platform_update_domain_count: 5
  113428. \- platform_fault_domain_count: 3
  113429. \- sku: aligned
  113430. \- tags:
  113431. contact_name: Elmer Fudd Gantry
  113432. \- connection_auth: {{ profile }}
  113433. \- require:
  113434. \- azurearm_resource: Ensure resource group exists
  113435. .ft P
  113436. .fi
  113437. .UNINDENT
  113438. .UNINDENT
  113439. .UNINDENT
  113440. .SS salt.states.azurearm_dns module
  113441. .sp
  113442. Azure (ARM) DNS State Module
  113443. .sp
  113444. New in version 3000.
  113445. .INDENT 0.0
  113446. .TP
  113447. .B maintainer
  113448. <\fI\%devops@eitr.tech\fP>
  113449. .TP
  113450. .B maturity
  113451. new
  113452. .TP
  113453. .B depends
  113454. .INDENT 7.0
  113455. .IP \(bu 2
  113456. \fI\%azure\fP >= 2.0.0
  113457. .IP \(bu 2
  113458. \fI\%azure\-common\fP >= 1.1.8
  113459. .IP \(bu 2
  113460. \fI\%azure\-mgmt\fP >= 1.0.0
  113461. .IP \(bu 2
  113462. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113463. .IP \(bu 2
  113464. \fI\%azure\-mgmt\-dns\fP >= 1.0.1
  113465. .IP \(bu 2
  113466. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113467. .IP \(bu 2
  113468. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113469. .IP \(bu 2
  113470. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113471. .IP \(bu 2
  113472. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113473. .IP \(bu 2
  113474. \fI\%azure\-storage\fP >= 0.34.3
  113475. .IP \(bu 2
  113476. \fI\%msrestazure\fP >= 0.4.21
  113477. .UNINDENT
  113478. .TP
  113479. .B platform
  113480. linux
  113481. .TP
  113482. .B configuration
  113483. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113484. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113485. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113486. .UNINDENT
  113487. .sp
  113488. Required provider parameters:
  113489. .INDENT 0.0
  113490. .INDENT 3.5
  113491. if using username and password:
  113492. .INDENT 0.0
  113493. .INDENT 3.5
  113494. .INDENT 0.0
  113495. .IP \(bu 2
  113496. \fBsubscription_id\fP
  113497. .IP \(bu 2
  113498. \fBusername\fP
  113499. .IP \(bu 2
  113500. \fBpassword\fP
  113501. .UNINDENT
  113502. .UNINDENT
  113503. .UNINDENT
  113504. .sp
  113505. if using a service principal:
  113506. .INDENT 0.0
  113507. .INDENT 3.5
  113508. .INDENT 0.0
  113509. .IP \(bu 2
  113510. \fBsubscription_id\fP
  113511. .IP \(bu 2
  113512. \fBtenant\fP
  113513. .IP \(bu 2
  113514. \fBclient_id\fP
  113515. .IP \(bu 2
  113516. \fBsecret\fP
  113517. .UNINDENT
  113518. .UNINDENT
  113519. .UNINDENT
  113520. .UNINDENT
  113521. .UNINDENT
  113522. .sp
  113523. Optional provider parameters:
  113524. .INDENT 0.0
  113525. .INDENT 3.5
  113526. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113527. .sp
  113528. Possible values:
  113529. .INDENT 0.0
  113530. .INDENT 3.5
  113531. .INDENT 0.0
  113532. .IP \(bu 2
  113533. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113534. .IP \(bu 2
  113535. \fBAZURE_CHINA_CLOUD\fP
  113536. .IP \(bu 2
  113537. \fBAZURE_US_GOV_CLOUD\fP
  113538. .IP \(bu 2
  113539. \fBAZURE_GERMAN_CLOUD\fP
  113540. .UNINDENT
  113541. .UNINDENT
  113542. .UNINDENT
  113543. .sp
  113544. Example Pillar for Azure Resource Manager authentication:
  113545. .INDENT 0.0
  113546. .INDENT 3.5
  113547. .sp
  113548. .nf
  113549. .ft C
  113550. azurearm:
  113551. user_pass_auth:
  113552. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113553. username: fletch
  113554. password: 123pass
  113555. mysubscription:
  113556. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113557. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113558. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113559. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113560. cloud_environment: AZURE_PUBLIC_CLOUD
  113561. .ft P
  113562. .fi
  113563. .UNINDENT
  113564. .UNINDENT
  113565. .sp
  113566. Example states using Azure Resource Manager authentication:
  113567. .INDENT 0.0
  113568. .INDENT 3.5
  113569. .sp
  113570. .nf
  113571. .ft C
  113572. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113573. Ensure DNS zone exists:
  113574. azurearm_dns.zone_present:
  113575. \- name: contoso.com
  113576. \- resource_group: my_rg
  113577. \- tags:
  113578. how_awesome: very
  113579. contact_name: Elmer Fudd Gantry
  113580. \- connection_auth: {{ profile }}
  113581. Ensure DNS 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. \- tags:
  113591. how_awesome: very
  113592. contact_name: Elmer Fudd Gantry
  113593. \- connection_auth: {{ profile }}
  113594. Ensure DNS record set is absent:
  113595. azurearm_dns.record_set_absent:
  113596. \- name: web
  113597. \- zone_name: contoso.com
  113598. \- resource_group: my_rg
  113599. \- record_type: A
  113600. \- connection_auth: {{ profile }}
  113601. Ensure DNS zone is absent:
  113602. azurearm_dns.zone_absent:
  113603. \- name: contoso.com
  113604. \- resource_group: my_rg
  113605. \- connection_auth: {{ profile }}
  113606. .ft P
  113607. .fi
  113608. .UNINDENT
  113609. .UNINDENT
  113610. .UNINDENT
  113611. .UNINDENT
  113612. .INDENT 0.0
  113613. .TP
  113614. .B salt.states.azurearm_dns.record_set_absent(name, zone_name, resource_group, connection_auth=None)
  113615. New in version 3000.
  113616. .sp
  113617. Ensure a record set does not exist in the DNS zone.
  113618. .INDENT 7.0
  113619. .TP
  113620. .B Parameters
  113621. .INDENT 7.0
  113622. .IP \(bu 2
  113623. \fBname\fP \-\- Name of the record set.
  113624. .IP \(bu 2
  113625. \fBzone_name\fP \-\- Name of the DNS zone.
  113626. .IP \(bu 2
  113627. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113628. .IP \(bu 2
  113629. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113630. Azure Resource Manager API.
  113631. .UNINDENT
  113632. .UNINDENT
  113633. .UNINDENT
  113634. .INDENT 0.0
  113635. .TP
  113636. .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)
  113637. New in version 3000.
  113638. .sp
  113639. Ensure a record set exists in a DNS zone.
  113640. .INDENT 7.0
  113641. .TP
  113642. .B Parameters
  113643. .INDENT 7.0
  113644. .IP \(bu 2
  113645. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  113646. .IP \(bu 2
  113647. \fBzone_name\fP \-\- Name of the DNS zone (without a terminating dot).
  113648. .IP \(bu 2
  113649. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113650. .IP \(bu 2
  113651. \fBrecord_type\fP \-\- The type of DNS record in this record set. Record sets of type SOA can be updated but not created
  113652. (they are created when the DNS zone is created). Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq,
  113653. \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  113654. .IP \(bu 2
  113655. \fBif_match\fP \-\- The etag of the record set. Omit this value to always overwrite the current record set. Specify the last\-seen
  113656. etag value to prevent accidentally overwritting any concurrent changes.
  113657. .IP \(bu 2
  113658. \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
  113659. will be ignored.
  113660. .IP \(bu 2
  113661. \fBetag\fP \-\- The etag of the record set. \fI\%Etags\fP are
  113662. used to handle concurrent changes to the same resource safely.
  113663. .IP \(bu 2
  113664. \fBmetadata\fP \-\- A dictionary of strings can be passed as tag metadata to the record set object.
  113665. .IP \(bu 2
  113666. \fBttl\fP \-\- The TTL (time\-to\-live) of the records in the record set. Required when specifying record information.
  113667. .IP \(bu 2
  113668. \fBarecords\fP \-\- The list of A records in the record set. View the
  113669. \fI\%Azure SDK documentation\fP
  113670. to create a list of dictionaries representing the record objects.
  113671. .IP \(bu 2
  113672. \fBaaaa_records\fP \-\- The list of AAAA records in the record set. View the
  113673. \fI\%Azure SDK documentation\fP
  113674. to create a list of dictionaries representing the record objects.
  113675. .IP \(bu 2
  113676. \fBmx_records\fP \-\- The list of MX records in the record set. View the
  113677. \fI\%Azure SDK documentation\fP
  113678. to create a list of dictionaries representing the record objects.
  113679. .IP \(bu 2
  113680. \fBns_records\fP \-\- The list of NS records in the record set. View the
  113681. \fI\%Azure SDK documentation\fP
  113682. to create a list of dictionaries representing the record objects.
  113683. .IP \(bu 2
  113684. \fBptr_records\fP \-\- The list of PTR records in the record set. View the
  113685. \fI\%Azure SDK documentation\fP
  113686. to create a list of dictionaries representing the record objects.
  113687. .IP \(bu 2
  113688. \fBsrv_records\fP \-\- The list of SRV records in the record set. View the
  113689. \fI\%Azure SDK documentation\fP
  113690. to create a list of dictionaries representing the record objects.
  113691. .IP \(bu 2
  113692. \fBtxt_records\fP \-\- The list of TXT records in the record set. View the
  113693. \fI\%Azure SDK documentation\fP
  113694. to create a list of dictionaries representing the record objects.
  113695. .IP \(bu 2
  113696. \fBcname_record\fP \-\- The CNAME record in the record set. View the
  113697. \fI\%Azure SDK documentation\fP
  113698. to create a dictionary representing the record object.
  113699. .IP \(bu 2
  113700. \fBsoa_record\fP \-\- The SOA record in the record set. View the
  113701. \fI\%Azure SDK documentation\fP
  113702. to create a dictionary representing the record object.
  113703. .IP \(bu 2
  113704. \fBcaa_records\fP \-\- The list of CAA records in the record set. View the
  113705. \fI\%Azure SDK documentation\fP
  113706. to create a list of dictionaries representing the record objects.
  113707. .IP \(bu 2
  113708. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113709. Azure Resource Manager API.
  113710. .UNINDENT
  113711. .UNINDENT
  113712. .sp
  113713. Example usage:
  113714. .INDENT 7.0
  113715. .INDENT 3.5
  113716. .sp
  113717. .nf
  113718. .ft C
  113719. Ensure record set exists:
  113720. azurearm_dns.record_set_present:
  113721. \- name: web
  113722. \- zone_name: contoso.com
  113723. \- resource_group: my_rg
  113724. \- record_type: A
  113725. \- ttl: 300
  113726. \- arecords:
  113727. \- ipv4_address: 10.0.0.1
  113728. \- metadata:
  113729. how_awesome: very
  113730. contact_name: Elmer Fudd Gantry
  113731. \- connection_auth: {{ profile }}
  113732. .ft P
  113733. .fi
  113734. .UNINDENT
  113735. .UNINDENT
  113736. .UNINDENT
  113737. .INDENT 0.0
  113738. .TP
  113739. .B salt.states.azurearm_dns.zone_absent(name, resource_group, connection_auth=None)
  113740. New in version 3000.
  113741. .sp
  113742. Ensure a DNS zone does not exist in the resource group.
  113743. .INDENT 7.0
  113744. .TP
  113745. .B Parameters
  113746. .INDENT 7.0
  113747. .IP \(bu 2
  113748. \fBname\fP \-\- Name of the DNS zone.
  113749. .IP \(bu 2
  113750. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113751. .IP \(bu 2
  113752. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113753. Azure Resource Manager API.
  113754. .UNINDENT
  113755. .UNINDENT
  113756. .UNINDENT
  113757. .INDENT 0.0
  113758. .TP
  113759. .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)
  113760. New in version 3000.
  113761. .sp
  113762. Ensure a DNS zone exists.
  113763. .INDENT 7.0
  113764. .TP
  113765. .B Parameters
  113766. .INDENT 7.0
  113767. .IP \(bu 2
  113768. \fBname\fP \-\- Name of the DNS zone (without a terminating dot).
  113769. .IP \(bu 2
  113770. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113771. .IP \(bu 2
  113772. \fBetag\fP \-\- The etag of the zone. \fI\%Etags\fP are used
  113773. to handle concurrent changes to the same resource safely.
  113774. .IP \(bu 2
  113775. \fBif_match\fP \-\- The etag of the DNS zone. Omit this value to always overwrite the current zone. Specify the last\-seen etag
  113776. value to prevent accidentally overwritting any concurrent changes.
  113777. .IP \(bu 2
  113778. \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
  113779. be ignored.
  113780. .IP \(bu 2
  113781. \fBregistration_virtual_networks\fP \-\-
  113782. .sp
  113783. A list of references to virtual networks that register hostnames in this DNS zone. This is only when zone_type
  113784. is Private. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113785. .IP \(bu 2
  113786. \fBresolution_virtual_networks\fP \-\-
  113787. .sp
  113788. A list of references to virtual networks that resolve records in this DNS zone. This is only when zone_type is
  113789. Private. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113790. .IP \(bu 2
  113791. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the DNS zone object.
  113792. .IP \(bu 2
  113793. \fBzone_type\fP \-\- .INDENT 2.0
  113794. .TP
  113795. .B The type of this DNS zone (Public or Private). Possible values include: \(aqPublic\(aq, \(aqPrivate\(aq. Default value: \(aqPublic\(aq
  113796. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113797. .UNINDENT
  113798. .IP \(bu 2
  113799. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113800. Azure Resource Manager API.
  113801. .UNINDENT
  113802. .UNINDENT
  113803. .sp
  113804. Example usage:
  113805. .INDENT 7.0
  113806. .INDENT 3.5
  113807. .sp
  113808. .nf
  113809. .ft C
  113810. Ensure DNS zone exists:
  113811. azurearm_dns.zone_present:
  113812. \- name: contoso.com
  113813. \- resource_group: my_rg
  113814. \- zone_type: Private
  113815. \- registration_virtual_networks:
  113816. \- /subscriptions/{{ sub }}/resourceGroups/my_rg/providers/Microsoft.Network/virtualNetworks/test_vnet
  113817. \- tags:
  113818. how_awesome: very
  113819. contact_name: Elmer Fudd Gantry
  113820. \- connection_auth: {{ profile }}
  113821. .ft P
  113822. .fi
  113823. .UNINDENT
  113824. .UNINDENT
  113825. .UNINDENT
  113826. .SS salt.states.azurearm_network
  113827. .sp
  113828. Azure (ARM) Network State Module
  113829. .sp
  113830. New in version 2019.2.0.
  113831. .INDENT 0.0
  113832. .TP
  113833. .B maintainer
  113834. <\fI\%devops@decisionlab.io\fP>
  113835. .TP
  113836. .B maturity
  113837. new
  113838. .TP
  113839. .B depends
  113840. .INDENT 7.0
  113841. .IP \(bu 2
  113842. \fI\%azure\fP >= 2.0.0
  113843. .IP \(bu 2
  113844. \fI\%azure\-common\fP >= 1.1.8
  113845. .IP \(bu 2
  113846. \fI\%azure\-mgmt\fP >= 1.0.0
  113847. .IP \(bu 2
  113848. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113849. .IP \(bu 2
  113850. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113851. .IP \(bu 2
  113852. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113853. .IP \(bu 2
  113854. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113855. .IP \(bu 2
  113856. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113857. .IP \(bu 2
  113858. \fI\%azure\-storage\fP >= 0.34.3
  113859. .IP \(bu 2
  113860. \fI\%msrestazure\fP >= 0.4.21
  113861. .UNINDENT
  113862. .TP
  113863. .B platform
  113864. linux
  113865. .TP
  113866. .B configuration
  113867. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113868. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113869. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113870. .sp
  113871. Required provider parameters:
  113872. .INDENT 7.0
  113873. .TP
  113874. .B if using username and password:
  113875. .INDENT 7.0
  113876. .IP \(bu 2
  113877. \fBsubscription_id\fP
  113878. .IP \(bu 2
  113879. \fBusername\fP
  113880. .IP \(bu 2
  113881. \fBpassword\fP
  113882. .UNINDENT
  113883. .TP
  113884. .B if using a service principal:
  113885. .INDENT 7.0
  113886. .IP \(bu 2
  113887. \fBsubscription_id\fP
  113888. .IP \(bu 2
  113889. \fBtenant\fP
  113890. .IP \(bu 2
  113891. \fBclient_id\fP
  113892. .IP \(bu 2
  113893. \fBsecret\fP
  113894. .UNINDENT
  113895. .UNINDENT
  113896. .sp
  113897. Optional provider parameters:
  113898. .INDENT 7.0
  113899. .TP
  113900. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113901. .INDENT 7.0
  113902. .IP \(bu 2
  113903. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113904. .IP \(bu 2
  113905. \fBAZURE_CHINA_CLOUD\fP
  113906. .IP \(bu 2
  113907. \fBAZURE_US_GOV_CLOUD\fP
  113908. .IP \(bu 2
  113909. \fBAZURE_GERMAN_CLOUD\fP
  113910. .UNINDENT
  113911. .UNINDENT
  113912. .sp
  113913. Example Pillar for Azure Resource Manager authentication:
  113914. .INDENT 7.0
  113915. .INDENT 3.5
  113916. .sp
  113917. .nf
  113918. .ft C
  113919. azurearm:
  113920. user_pass_auth:
  113921. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113922. username: fletch
  113923. password: 123pass
  113924. mysubscription:
  113925. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113926. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113927. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113928. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113929. cloud_environment: AZURE_PUBLIC_CLOUD
  113930. .ft P
  113931. .fi
  113932. .UNINDENT
  113933. .UNINDENT
  113934. .sp
  113935. Example states using Azure Resource Manager authentication:
  113936. .INDENT 7.0
  113937. .INDENT 3.5
  113938. .sp
  113939. .nf
  113940. .ft C
  113941. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113942. Ensure virtual network exists:
  113943. azurearm_network.virtual_network_present:
  113944. \- name: my_vnet
  113945. \- resource_group: my_rg
  113946. \- address_prefixes:
  113947. \- \(aq10.0.0.0/8\(aq
  113948. \- \(aq192.168.0.0/16\(aq
  113949. \- dns_servers:
  113950. \- \(aq8.8.8.8\(aq
  113951. \- tags:
  113952. how_awesome: very
  113953. contact_name: Elmer Fudd Gantry
  113954. \- connection_auth: {{ profile }}
  113955. Ensure virtual network is absent:
  113956. azurearm_network.virtual_network_absent:
  113957. \- name: other_vnet
  113958. \- resource_group: my_rg
  113959. \- connection_auth: {{ profile }}
  113960. .ft P
  113961. .fi
  113962. .UNINDENT
  113963. .UNINDENT
  113964. .UNINDENT
  113965. .INDENT 0.0
  113966. .TP
  113967. .B salt.states.azurearm_network.load_balancer_absent(name, resource_group, connection_auth=None)
  113968. New in version 2019.2.0.
  113969. .sp
  113970. Ensure a load balancer does not exist in the resource group.
  113971. .INDENT 7.0
  113972. .TP
  113973. .B Parameters
  113974. .INDENT 7.0
  113975. .IP \(bu 2
  113976. \fBname\fP \-\- Name of the load balancer.
  113977. .IP \(bu 2
  113978. \fBresource_group\fP \-\- The resource group assigned to the load balancer.
  113979. .IP \(bu 2
  113980. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113981. Azure Resource Manager API.
  113982. .UNINDENT
  113983. .UNINDENT
  113984. .UNINDENT
  113985. .INDENT 0.0
  113986. .TP
  113987. .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)
  113988. New in version 2019.2.0.
  113989. .sp
  113990. Ensure a load balancer exists.
  113991. .INDENT 7.0
  113992. .TP
  113993. .B Parameters
  113994. .INDENT 7.0
  113995. .IP \(bu 2
  113996. \fBname\fP \-\- Name of the load balancer.
  113997. .IP \(bu 2
  113998. \fBresource_group\fP \-\- The resource group assigned to the load balancer.
  113999. .IP \(bu 2
  114000. \fBsku\fP \-\- The load balancer SKU, which can be \(aqBasic\(aq or \(aqStandard\(aq.
  114001. .IP \(bu 2
  114002. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the load balancer object.
  114003. .IP \(bu 2
  114004. \fBfrontend_ip_configurations\fP \-\-
  114005. .sp
  114006. An optional list of dictionaries representing valid FrontendIPConfiguration objects. A frontend IP
  114007. configuration can be either private (using private IP address and subnet parameters) or public (using a
  114008. reference to a public IP address object). Valid parameters are:
  114009. .INDENT 2.0
  114010. .IP \(bu 2
  114011. \fBname\fP: The name of the resource that is unique within a resource group.
  114012. .IP \(bu 2
  114013. \fBprivate_ip_address\fP: The private IP address of the IP configuration. Required if
  114014. \(aqprivate_ip_allocation_method\(aq is \(aqStatic\(aq.
  114015. .IP \(bu 2
  114016. \fBprivate_ip_allocation_method\fP: The Private IP allocation method. Possible values are: \(aqStatic\(aq and
  114017. \(aqDynamic\(aq.
  114018. .IP \(bu 2
  114019. \fBsubnet\fP: Name of an existing subnet inside of which the frontend IP will reside.
  114020. .IP \(bu 2
  114021. \fBpublic_ip_address\fP: Name of an existing public IP address which will be assigned to the frontend IP object.
  114022. .UNINDENT
  114023. .IP \(bu 2
  114024. \fBbackend_address_pools\fP \-\- An optional list of dictionaries representing valid BackendAddressPool objects. Only the \(aqname\(aq parameter is
  114025. valid for a BackendAddressPool dictionary. All other parameters are read\-only references from other objects
  114026. linking to the backend address pool. Inbound traffic is randomly load balanced across IPs in the backend IPs.
  114027. .IP \(bu 2
  114028. \fBprobes\fP \-\-
  114029. .sp
  114030. An optional list of dictionaries representing valid Probe objects. Valid parameters are:
  114031. .INDENT 2.0
  114032. .IP \(bu 2
  114033. \fBname\fP: The name of the resource that is unique within a resource group.
  114034. .IP \(bu 2
  114035. \fBprotocol\fP: The protocol of the endpoint. Possible values are \(aqHttp\(aq or \(aqTcp\(aq. If \(aqTcp\(aq is specified, a
  114036. received ACK is required for the probe to be successful. If \(aqHttp\(aq is specified, a 200 OK response from the
  114037. specified URI is required for the probe to be successful.
  114038. .IP \(bu 2
  114039. \fBport\fP: The port for communicating the probe. Possible values range from 1 to 65535, inclusive.
  114040. .IP \(bu 2
  114041. \fBinterval_in_seconds\fP: The interval, in seconds, for how frequently to probe the endpoint for health status.
  114042. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two
  114043. full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5.
  114044. .IP \(bu 2
  114045. \fBnumber_of_probes\fP: The number of probes where if no response, will result in stopping further traffic from
  114046. being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower
  114047. than the typical times used in Azure.
  114048. .IP \(bu 2
  114049. \fBrequest_path\fP: The URI used for requesting health status from the VM. Path is required if a protocol is
  114050. set to \(aqHttp\(aq. Otherwise, it is not allowed. There is no default value.
  114051. .UNINDENT
  114052. .IP \(bu 2
  114053. \fBload_balancing_rules\fP \-\-
  114054. .sp
  114055. An optional list of dictionaries representing valid LoadBalancingRule objects. Valid parameters are:
  114056. .INDENT 2.0
  114057. .IP \(bu 2
  114058. \fBname\fP: The name of the resource that is unique within a resource group.
  114059. .IP \(bu 2
  114060. \fBload_distribution\fP: The load distribution policy for this rule. Possible values are \(aqDefault\(aq, \(aqSourceIP\(aq,
  114061. and \(aqSourceIPProtocol\(aq.
  114062. .IP \(bu 2
  114063. \fBfrontend_port\fP: The port for the external endpoint. Port numbers for each rule must be unique within the
  114064. Load Balancer. Acceptable values are between 0 and 65534. Note that value 0 enables \(aqAny Port\(aq.
  114065. .IP \(bu 2
  114066. \fBbackend_port\fP: The port used for internal connections on the endpoint. Acceptable values are between 0 and
  114067. 65535. Note that value 0 enables \(aqAny Port\(aq.
  114068. .IP \(bu 2
  114069. \fBidle_timeout_in_minutes\fP: The timeout for the TCP idle connection. The value can be set between 4 and 30
  114070. minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
  114071. .IP \(bu 2
  114072. \fBenable_floating_ip\fP: Configures a virtual machine\(aqs endpoint for the floating IP capability required
  114073. to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn
  114074. Availability Groups in SQL server. This setting can\(aqt be changed after you create the endpoint.
  114075. .IP \(bu 2
  114076. \fBdisable_outbound_snat\fP: Configures SNAT for the VMs in the backend pool to use the public IP address
  114077. specified in the frontend of the load balancing rule.
  114078. .IP \(bu 2
  114079. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the load balancing rule
  114080. object.
  114081. .IP \(bu 2
  114082. \fBbackend_address_pool\fP: Name of the backend address pool object used by the load balancing rule object.
  114083. Inbound traffic is randomly load balanced across IPs in the backend IPs.
  114084. .IP \(bu 2
  114085. \fBprobe\fP: Name of the probe object used by the load balancing rule object.
  114086. .UNINDENT
  114087. .IP \(bu 2
  114088. \fBinbound_nat_rules\fP \-\-
  114089. .sp
  114090. An optional list of dictionaries representing valid InboundNatRule objects. Defining inbound NAT rules on your
  114091. load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from
  114092. virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an
  114093. Inbound NAT pool. They have to reference individual inbound NAT rules. Valid parameters are:
  114094. .INDENT 2.0
  114095. .IP \(bu 2
  114096. \fBname\fP: The name of the resource that is unique within a resource group.
  114097. .IP \(bu 2
  114098. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the inbound NAT rule
  114099. object.
  114100. .IP \(bu 2
  114101. \fBprotocol\fP: Possible values include \(aqUdp\(aq, \(aqTcp\(aq, or \(aqAll\(aq.
  114102. .IP \(bu 2
  114103. \fBfrontend_port\fP: The port for the external endpoint. Port numbers for each rule must be unique within the
  114104. Load Balancer. Acceptable values range from 1 to 65534.
  114105. .IP \(bu 2
  114106. \fBbackend_port\fP: The port used for the internal endpoint. Acceptable values range from 1 to 65535.
  114107. .IP \(bu 2
  114108. \fBidle_timeout_in_minutes\fP: The timeout for the TCP idle connection. The value can be set between 4 and 30
  114109. minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
  114110. .IP \(bu 2
  114111. \fBenable_floating_ip\fP: Configures a virtual machine\(aqs endpoint for the floating IP capability required
  114112. to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn
  114113. Availability Groups in SQL server. This setting can\(aqt be changed after you create the endpoint.
  114114. .UNINDENT
  114115. .IP \(bu 2
  114116. \fBinbound_nat_pools\fP \-\-
  114117. .sp
  114118. An optional list of dictionaries representing valid InboundNatPool objects. They define an external port range
  114119. for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created
  114120. automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an
  114121. Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools
  114122. are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot
  114123. reference an inbound NAT pool. They have to reference individual inbound NAT rules. Valid parameters are:
  114124. .INDENT 2.0
  114125. .IP \(bu 2
  114126. \fBname\fP: The name of the resource that is unique within a resource group.
  114127. .IP \(bu 2
  114128. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the inbound NAT pool
  114129. object.
  114130. .IP \(bu 2
  114131. \fBprotocol\fP: Possible values include \(aqUdp\(aq, \(aqTcp\(aq, or \(aqAll\(aq.
  114132. .IP \(bu 2
  114133. \fBfrontend_port_range_start\fP: The first port number in the range of external ports that will be used to
  114134. provide Inbound NAT to NICs associated with a load balancer. Acceptable values range between 1 and 65534.
  114135. .IP \(bu 2
  114136. \fBfrontend_port_range_end\fP: The last port number in the range of external ports that will be used to
  114137. provide Inbound NAT to NICs associated with a load balancer. Acceptable values range between 1 and 65535.
  114138. .IP \(bu 2
  114139. \fBbackend_port\fP: The port used for internal connections to the endpoint. Acceptable values are between 1 and
  114140. 65535.
  114141. .UNINDENT
  114142. .IP \(bu 2
  114143. \fBoutbound_nat_rules\fP \-\-
  114144. .sp
  114145. An optional list of dictionaries representing valid OutboundNatRule objects. Valid parameters are:
  114146. .INDENT 2.0
  114147. .IP \(bu 2
  114148. \fBname\fP: The name of the resource that is unique within a resource group.
  114149. .IP \(bu 2
  114150. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the outbound NAT rule
  114151. object.
  114152. .IP \(bu 2
  114153. \fBbackend_address_pool\fP: Name of the backend address pool object used by the outbound NAT rule object.
  114154. Outbound traffic is randomly load balanced across IPs in the backend IPs.
  114155. .IP \(bu 2
  114156. \fBallocated_outbound_ports\fP: The number of outbound ports to be used for NAT.
  114157. .UNINDENT
  114158. .IP \(bu 2
  114159. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114160. Azure Resource Manager API.
  114161. .UNINDENT
  114162. .UNINDENT
  114163. .sp
  114164. Example usage:
  114165. .INDENT 7.0
  114166. .INDENT 3.5
  114167. .sp
  114168. .nf
  114169. .ft C
  114170. Ensure load balancer exists:
  114171. azurearm_network.load_balancer_present:
  114172. \- name: lb1
  114173. \- resource_group: group1
  114174. \- location: eastus
  114175. \- frontend_ip_configurations:
  114176. \- name: lb1_feip1
  114177. public_ip_address: pub_ip1
  114178. \- backend_address_pools:
  114179. \- name: lb1_bepool1
  114180. \- probes:
  114181. \- name: lb1_webprobe1
  114182. protocol: tcp
  114183. port: 80
  114184. interval_in_seconds: 5
  114185. number_of_probes: 2
  114186. \- load_balancing_rules:
  114187. \- name: lb1_webprobe1
  114188. protocol: tcp
  114189. frontend_port: 80
  114190. backend_port: 80
  114191. idle_timeout_in_minutes: 4
  114192. frontend_ip_configuration: lb1_feip1
  114193. backend_address_pool: lb1_bepool1
  114194. probe: lb1_webprobe1
  114195. \- tags:
  114196. contact_name: Elmer Fudd Gantry
  114197. \- connection_auth: {{ profile }}
  114198. \- require:
  114199. \- azurearm_resource: Ensure resource group exists
  114200. \- azurearm_network: Ensure public IP exists
  114201. .ft P
  114202. .fi
  114203. .UNINDENT
  114204. .UNINDENT
  114205. .UNINDENT
  114206. .INDENT 0.0
  114207. .TP
  114208. .B salt.states.azurearm_network.network_interface_absent(name, resource_group, connection_auth=None)
  114209. New in version 2019.2.0.
  114210. .sp
  114211. Ensure a network interface does not exist in the resource group.
  114212. .INDENT 7.0
  114213. .TP
  114214. .B Parameters
  114215. .INDENT 7.0
  114216. .IP \(bu 2
  114217. \fBname\fP \-\- Name of the network interface.
  114218. .IP \(bu 2
  114219. \fBresource_group\fP \-\- The resource group assigned to the network interface.
  114220. .IP \(bu 2
  114221. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114222. Azure Resource Manager API.
  114223. .UNINDENT
  114224. .UNINDENT
  114225. .UNINDENT
  114226. .INDENT 0.0
  114227. .TP
  114228. .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)
  114229. New in version 2019.2.0.
  114230. .sp
  114231. Ensure a network interface exists.
  114232. .INDENT 7.0
  114233. .TP
  114234. .B Parameters
  114235. .INDENT 7.0
  114236. .IP \(bu 2
  114237. \fBname\fP \-\- Name of the network interface.
  114238. .IP \(bu 2
  114239. \fBip_configurations\fP \-\- A list of dictionaries representing valid NetworkInterfaceIPConfiguration objects. The \(aqname\(aq key is required at
  114240. minimum. At least one IP Configuration must be present.
  114241. .IP \(bu 2
  114242. \fBsubnet\fP \-\- Name of the existing subnet assigned to the network interface.
  114243. .IP \(bu 2
  114244. \fBvirtual_network\fP \-\- Name of the existing virtual network containing the subnet.
  114245. .IP \(bu 2
  114246. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114247. .IP \(bu 2
  114248. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the network interface object.
  114249. .IP \(bu 2
  114250. \fBnetwork_security_group\fP \-\- The name of the existing network security group to assign to the network interface.
  114251. .IP \(bu 2
  114252. \fBvirtual_machine\fP \-\- The name of the existing virtual machine to assign to the network interface.
  114253. .IP \(bu 2
  114254. \fBdns_settings\fP \-\-
  114255. .sp
  114256. An optional dictionary representing a valid NetworkInterfaceDnsSettings object. Valid parameters are:
  114257. .INDENT 2.0
  114258. .IP \(bu 2
  114259. \fBdns_servers\fP: List of DNS server IP addresses. Use \(aqAzureProvidedDNS\(aq to switch to Azure provided DNS
  114260. resolution. \(aqAzureProvidedDNS\(aq value cannot be combined with other IPs, it must be the only value in
  114261. dns_servers collection.
  114262. .IP \(bu 2
  114263. \fBinternal_dns_name_label\fP: Relative DNS name for this NIC used for internal communications between VMs in
  114264. the same virtual network.
  114265. .IP \(bu 2
  114266. \fBinternal_fqdn\fP: Fully qualified DNS name supporting internal communications between VMs in the same virtual
  114267. network.
  114268. .IP \(bu 2
  114269. \fBinternal_domain_name_suffix\fP: Even if internal_dns_name_label is not specified, a DNS entry is created for
  114270. the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of
  114271. internal_domain_name_suffix.
  114272. .UNINDENT
  114273. .IP \(bu 2
  114274. \fBmac_address\fP \-\- Optional string containing the MAC address of the network interface.
  114275. .IP \(bu 2
  114276. \fBprimary\fP \-\- Optional boolean allowing the interface to be set as the primary network interface on a virtual machine
  114277. with multiple interfaces attached.
  114278. .IP \(bu 2
  114279. \fBenable_accelerated_networking\fP \-\- Optional boolean indicating whether accelerated networking should be enabled for the interface.
  114280. .IP \(bu 2
  114281. \fBenable_ip_forwarding\fP \-\- Optional boolean indicating whether IP forwarding should be enabled for the interface.
  114282. .IP \(bu 2
  114283. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114284. Azure Resource Manager API.
  114285. .UNINDENT
  114286. .UNINDENT
  114287. .sp
  114288. Example usage:
  114289. .INDENT 7.0
  114290. .INDENT 3.5
  114291. .sp
  114292. .nf
  114293. .ft C
  114294. Ensure network interface exists:
  114295. azurearm_network.network_interface_present:
  114296. \- name: iface1
  114297. \- subnet: vnet1_sn1
  114298. \- virtual_network: vnet1
  114299. \- resource_group: group1
  114300. \- ip_configurations:
  114301. \- name: iface1_ipc1
  114302. public_ip_address: pub_ip2
  114303. \- dns_settings:
  114304. internal_dns_name_label: decisionlab\-int\-test\-label
  114305. \- primary: True
  114306. \- enable_accelerated_networking: True
  114307. \- enable_ip_forwarding: False
  114308. \- network_security_group: nsg1
  114309. \- connection_auth: {{ profile }}
  114310. \- require:
  114311. \- azurearm_network: Ensure subnet exists
  114312. \- azurearm_network: Ensure network security group exists
  114313. \- azurearm_network: Ensure another public IP exists
  114314. .ft P
  114315. .fi
  114316. .UNINDENT
  114317. .UNINDENT
  114318. .UNINDENT
  114319. .INDENT 0.0
  114320. .TP
  114321. .B salt.states.azurearm_network.network_security_group_absent(name, resource_group, connection_auth=None)
  114322. New in version 2019.2.0.
  114323. .sp
  114324. Ensure a network security group does not exist in the resource group.
  114325. .INDENT 7.0
  114326. .TP
  114327. .B Parameters
  114328. .INDENT 7.0
  114329. .IP \(bu 2
  114330. \fBname\fP \-\- Name of the network security group.
  114331. .IP \(bu 2
  114332. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114333. .IP \(bu 2
  114334. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114335. Azure Resource Manager API.
  114336. .UNINDENT
  114337. .UNINDENT
  114338. .UNINDENT
  114339. .INDENT 0.0
  114340. .TP
  114341. .B salt.states.azurearm_network.network_security_group_present(name, resource_group, tags=None, security_rules=None, connection_auth=None, **kwargs)
  114342. New in version 2019.2.0.
  114343. .sp
  114344. Ensure a network security group exists.
  114345. .INDENT 7.0
  114346. .TP
  114347. .B Parameters
  114348. .INDENT 7.0
  114349. .IP \(bu 2
  114350. \fBname\fP \-\- Name of the network security group.
  114351. .IP \(bu 2
  114352. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114353. .IP \(bu 2
  114354. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the network security group object.
  114355. .IP \(bu 2
  114356. \fBsecurity_rules\fP \-\- An optional list of dictionaries representing valid SecurityRule objects. See the
  114357. documentation for the security_rule_present state or security_rule_create_or_update execution module
  114358. for more information on required and optional parameters for security rules. The rules are only
  114359. managed if this parameter is present. When this parameter is absent, implemented rules will not be removed,
  114360. and will merely become unmanaged.
  114361. .IP \(bu 2
  114362. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114363. Azure Resource Manager API.
  114364. .UNINDENT
  114365. .UNINDENT
  114366. .sp
  114367. Example usage:
  114368. .INDENT 7.0
  114369. .INDENT 3.5
  114370. .sp
  114371. .nf
  114372. .ft C
  114373. Ensure network security group exists:
  114374. azurearm_network.network_security_group_present:
  114375. \- name: nsg1
  114376. \- resource_group: group1
  114377. \- security_rules:
  114378. \- name: nsg1_rule1
  114379. priority: 100
  114380. protocol: tcp
  114381. access: allow
  114382. direction: outbound
  114383. source_address_prefix: virtualnetwork
  114384. destination_address_prefix: internet
  114385. source_port_range: \(aq*\(aq
  114386. destination_port_range: \(aq*\(aq
  114387. \- name: nsg1_rule2
  114388. priority: 101
  114389. protocol: tcp
  114390. access: allow
  114391. direction: inbound
  114392. source_address_prefix: internet
  114393. destination_address_prefix: virtualnetwork
  114394. source_port_range: \(aq*\(aq
  114395. destination_port_ranges:
  114396. \- \(aq80\(aq
  114397. \- \(aq443\(aq
  114398. \- tags:
  114399. contact_name: Elmer Fudd Gantry
  114400. \- connection_auth: {{ profile }}
  114401. \- require:
  114402. \- azurearm_resource: Ensure resource group exists
  114403. .ft P
  114404. .fi
  114405. .UNINDENT
  114406. .UNINDENT
  114407. .UNINDENT
  114408. .INDENT 0.0
  114409. .TP
  114410. .B salt.states.azurearm_network.public_ip_address_absent(name, resource_group, connection_auth=None)
  114411. New in version 2019.2.0.
  114412. .sp
  114413. Ensure a public IP address does not exist in the resource group.
  114414. .INDENT 7.0
  114415. .TP
  114416. .B Parameters
  114417. .INDENT 7.0
  114418. .IP \(bu 2
  114419. \fBname\fP \-\- Name of the public IP address.
  114420. .IP \(bu 2
  114421. \fBresource_group\fP \-\- The resource group assigned to the public IP address.
  114422. .IP \(bu 2
  114423. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114424. Azure Resource Manager API.
  114425. .UNINDENT
  114426. .UNINDENT
  114427. .UNINDENT
  114428. .INDENT 0.0
  114429. .TP
  114430. .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)
  114431. New in version 2019.2.0.
  114432. .sp
  114433. Ensure a public IP address exists.
  114434. .INDENT 7.0
  114435. .TP
  114436. .B Parameters
  114437. .INDENT 7.0
  114438. .IP \(bu 2
  114439. \fBname\fP \-\- Name of the public IP address.
  114440. .IP \(bu 2
  114441. \fBresource_group\fP \-\- The resource group assigned to the public IP address.
  114442. .IP \(bu 2
  114443. \fBdns_settings\fP \-\- An optional dictionary representing a valid PublicIPAddressDnsSettings object. Parameters include
  114444. \(aqdomain_name_label\(aq and \(aqreverse_fqdn\(aq, which accept strings. The \(aqdomain_name_label\(aq parameter is concatenated
  114445. with the regionalized DNS zone make up the fully qualified domain name associated with the public IP address.
  114446. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS
  114447. system. The \(aqreverse_fqdn\(aq parameter is a user\-visible, fully qualified domain name that resolves to this public
  114448. IP address. If the reverse FQDN is specified, then a PTR DNS record is created pointing from the IP address in
  114449. the in\-addr.arpa domain to the reverse FQDN.
  114450. .IP \(bu 2
  114451. \fBsku\fP \-\- The public IP address SKU, which can be \(aqBasic\(aq or \(aqStandard\(aq.
  114452. .IP \(bu 2
  114453. \fBpublic_ip_allocation_method\fP \-\- The public IP allocation method. Possible values are: \(aqStatic\(aq and \(aqDynamic\(aq.
  114454. .IP \(bu 2
  114455. \fBpublic_ip_address_version\fP \-\- The public IP address version. Possible values are: \(aqIPv4\(aq and \(aqIPv6\(aq.
  114456. .IP \(bu 2
  114457. \fBidle_timeout_in_minutes\fP \-\- An integer representing the idle timeout of the public IP address.
  114458. .IP \(bu 2
  114459. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the public IP address object.
  114460. .IP \(bu 2
  114461. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114462. Azure Resource Manager API.
  114463. .UNINDENT
  114464. .UNINDENT
  114465. .sp
  114466. Example usage:
  114467. .INDENT 7.0
  114468. .INDENT 3.5
  114469. .sp
  114470. .nf
  114471. .ft C
  114472. Ensure public IP exists:
  114473. azurearm_network.public_ip_address_present:
  114474. \- name: pub_ip1
  114475. \- resource_group: group1
  114476. \- dns_settings:
  114477. domain_name_label: decisionlab\-ext\-test\-label
  114478. \- sku: basic
  114479. \- public_ip_allocation_method: static
  114480. \- public_ip_address_version: ipv4
  114481. \- idle_timeout_in_minutes: 4
  114482. \- tags:
  114483. contact_name: Elmer Fudd Gantry
  114484. \- connection_auth: {{ profile }}
  114485. \- require:
  114486. \- azurearm_resource: Ensure resource group exists
  114487. .ft P
  114488. .fi
  114489. .UNINDENT
  114490. .UNINDENT
  114491. .UNINDENT
  114492. .INDENT 0.0
  114493. .TP
  114494. .B salt.states.azurearm_network.route_absent(name, route_table, resource_group, connection_auth=None)
  114495. New in version 2019.2.0.
  114496. .sp
  114497. Ensure a route table does not exist in the resource group.
  114498. .INDENT 7.0
  114499. .TP
  114500. .B Parameters
  114501. .INDENT 7.0
  114502. .IP \(bu 2
  114503. \fBname\fP \-\- Name of the route table.
  114504. .IP \(bu 2
  114505. \fBroute_table\fP \-\- The name of the existing route table containing the route.
  114506. .IP \(bu 2
  114507. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114508. .IP \(bu 2
  114509. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114510. Azure Resource Manager API.
  114511. .UNINDENT
  114512. .UNINDENT
  114513. .UNINDENT
  114514. .INDENT 0.0
  114515. .TP
  114516. .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)
  114517. New in version 2019.2.0.
  114518. .sp
  114519. Ensure a route exists within a route table.
  114520. .INDENT 7.0
  114521. .TP
  114522. .B Parameters
  114523. .INDENT 7.0
  114524. .IP \(bu 2
  114525. \fBname\fP \-\- Name of the route.
  114526. .IP \(bu 2
  114527. \fBaddress_prefix\fP \-\- The destination CIDR to which the route applies.
  114528. .IP \(bu 2
  114529. \fBnext_hop_type\fP \-\- The type of Azure hop the packet should be sent to. Possible values are: \(aqVirtualNetworkGateway\(aq, \(aqVnetLocal\(aq,
  114530. \(aqInternet\(aq, \(aqVirtualAppliance\(aq, and \(aqNone\(aq.
  114531. .IP \(bu 2
  114532. \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
  114533. type is \(aqVirtualAppliance\(aq.
  114534. .IP \(bu 2
  114535. \fBroute_table\fP \-\- The name of the existing route table which will contain the route.
  114536. .IP \(bu 2
  114537. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114538. .IP \(bu 2
  114539. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114540. Azure Resource Manager API.
  114541. .UNINDENT
  114542. .UNINDENT
  114543. .sp
  114544. Example usage:
  114545. .INDENT 7.0
  114546. .INDENT 3.5
  114547. .sp
  114548. .nf
  114549. .ft C
  114550. Ensure route exists:
  114551. azurearm_network.route_present:
  114552. \- name: rt1_route2
  114553. \- route_table: rt1
  114554. \- resource_group: group1
  114555. \- address_prefix: \(aq192.168.0.0/16\(aq
  114556. \- next_hop_type: vnetlocal
  114557. \- connection_auth: {{ profile }}
  114558. \- require:
  114559. \- azurearm_network: Ensure route table exists
  114560. .ft P
  114561. .fi
  114562. .UNINDENT
  114563. .UNINDENT
  114564. .UNINDENT
  114565. .INDENT 0.0
  114566. .TP
  114567. .B salt.states.azurearm_network.route_table_absent(name, resource_group, connection_auth=None)
  114568. New in version 2019.2.0.
  114569. .sp
  114570. Ensure a route table does not exist in the resource group.
  114571. .INDENT 7.0
  114572. .TP
  114573. .B Parameters
  114574. .INDENT 7.0
  114575. .IP \(bu 2
  114576. \fBname\fP \-\- Name of the route table.
  114577. .IP \(bu 2
  114578. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114579. .IP \(bu 2
  114580. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114581. Azure Resource Manager API.
  114582. .UNINDENT
  114583. .UNINDENT
  114584. .UNINDENT
  114585. .INDENT 0.0
  114586. .TP
  114587. .B salt.states.azurearm_network.route_table_present(name, resource_group, tags=None, routes=None, disable_bgp_route_propagation=None, connection_auth=None, **kwargs)
  114588. New in version 2019.2.0.
  114589. .sp
  114590. Ensure a route table exists.
  114591. .INDENT 7.0
  114592. .TP
  114593. .B Parameters
  114594. .INDENT 7.0
  114595. .IP \(bu 2
  114596. \fBname\fP \-\- Name of the route table.
  114597. .IP \(bu 2
  114598. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114599. .IP \(bu 2
  114600. \fBroutes\fP \-\- An optional list of dictionaries representing valid Route objects contained within a route table. See the
  114601. documentation for the route_present state or route_create_or_update execution module for more information on
  114602. required and optional parameters for routes. The routes are only managed if this parameter is present. When this
  114603. parameter is absent, implemented routes will not be removed, and will merely become unmanaged.
  114604. .IP \(bu 2
  114605. \fBdisable_bgp_route_propagation\fP \-\- An optional boolean parameter setting whether to disable the routes learned by BGP on the route table.
  114606. .IP \(bu 2
  114607. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the route table object.
  114608. .IP \(bu 2
  114609. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114610. Azure Resource Manager API.
  114611. .UNINDENT
  114612. .UNINDENT
  114613. .sp
  114614. Example usage:
  114615. .INDENT 7.0
  114616. .INDENT 3.5
  114617. .sp
  114618. .nf
  114619. .ft C
  114620. Ensure route table exists:
  114621. azurearm_network.route_table_present:
  114622. \- name: rt1
  114623. \- resource_group: group1
  114624. \- routes:
  114625. \- name: rt1_route1
  114626. address_prefix: \(aq0.0.0.0/0\(aq
  114627. next_hop_type: internet
  114628. \- name: rt1_route2
  114629. address_prefix: \(aq192.168.0.0/16\(aq
  114630. next_hop_type: vnetlocal
  114631. \- tags:
  114632. contact_name: Elmer Fudd Gantry
  114633. \- connection_auth: {{ profile }}
  114634. \- require:
  114635. \- azurearm_resource: Ensure resource group exists
  114636. .ft P
  114637. .fi
  114638. .UNINDENT
  114639. .UNINDENT
  114640. .UNINDENT
  114641. .INDENT 0.0
  114642. .TP
  114643. .B salt.states.azurearm_network.security_rule_absent(name, security_group, resource_group, connection_auth=None)
  114644. New in version 2019.2.0.
  114645. .sp
  114646. Ensure a security rule does not exist in the network security group.
  114647. .INDENT 7.0
  114648. .TP
  114649. .B Parameters
  114650. .INDENT 7.0
  114651. .IP \(bu 2
  114652. \fBname\fP \-\- Name of the security rule.
  114653. .IP \(bu 2
  114654. \fBsecurity_group\fP \-\- The network security group containing the security rule.
  114655. .IP \(bu 2
  114656. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114657. .IP \(bu 2
  114658. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114659. Azure Resource Manager API.
  114660. .UNINDENT
  114661. .UNINDENT
  114662. .UNINDENT
  114663. .INDENT 0.0
  114664. .TP
  114665. .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)
  114666. New in version 2019.2.0.
  114667. .sp
  114668. Ensure a security rule exists.
  114669. .INDENT 7.0
  114670. .TP
  114671. .B Parameters
  114672. .INDENT 7.0
  114673. .IP \(bu 2
  114674. \fBname\fP \-\- Name of the security rule.
  114675. .IP \(bu 2
  114676. \fBaccess\fP \-\- \(aqallow\(aq or \(aqdeny\(aq
  114677. .IP \(bu 2
  114678. \fBdirection\fP \-\- \(aqinbound\(aq or \(aqoutbound\(aq
  114679. .IP \(bu 2
  114680. \fBpriority\fP \-\- Integer between 100 and 4096 used for ordering rule application.
  114681. .IP \(bu 2
  114682. \fBprotocol\fP \-\- \(aqtcp\(aq, \(aqudp\(aq, or \(aq*\(aq
  114683. .IP \(bu 2
  114684. \fBsecurity_group\fP \-\- The name of the existing network security group to contain the security rule.
  114685. .IP \(bu 2
  114686. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114687. .IP \(bu 2
  114688. \fBdescription\fP \-\- Optional description of the security rule.
  114689. .IP \(bu 2
  114690. \fBdestination_address_prefix\fP \-\- The CIDR or destination IP range. Asterix \(aq*\(aq can also be used to match all destination IPs.
  114691. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  114692. If this is an ingress rule, specifies where network traffic originates from.
  114693. .IP \(bu 2
  114694. \fBdestination_port_range\fP \-\- The destination port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  114695. can also be used to match all ports.
  114696. .IP \(bu 2
  114697. \fBsource_address_prefix\fP \-\- The CIDR or source IP range. Asterix \(aq*\(aq can also be used to match all source IPs.
  114698. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  114699. If this is an ingress rule, specifies where network traffic originates from.
  114700. .IP \(bu 2
  114701. \fBsource_port_range\fP \-\- The source port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  114702. can also be used to match all ports.
  114703. .IP \(bu 2
  114704. \fBdestination_address_prefixes\fP \-\- A list of destination_address_prefix values. This parameter overrides destination_address_prefix
  114705. and will cause any value entered there to be ignored.
  114706. .IP \(bu 2
  114707. \fBdestination_port_ranges\fP \-\- A list of destination_port_range values. This parameter overrides destination_port_range
  114708. and will cause any value entered there to be ignored.
  114709. .IP \(bu 2
  114710. \fBsource_address_prefixes\fP \-\- A list of source_address_prefix values. This parameter overrides source_address_prefix
  114711. and will cause any value entered there to be ignored.
  114712. .IP \(bu 2
  114713. \fBsource_port_ranges\fP \-\- A list of source_port_range values. This parameter overrides source_port_range
  114714. and will cause any value entered there to be ignored.
  114715. .IP \(bu 2
  114716. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114717. Azure Resource Manager API.
  114718. .UNINDENT
  114719. .UNINDENT
  114720. .sp
  114721. Example usage:
  114722. .INDENT 7.0
  114723. .INDENT 3.5
  114724. .sp
  114725. .nf
  114726. .ft C
  114727. Ensure security rule exists:
  114728. azurearm_network.security_rule_present:
  114729. \- name: nsg1_rule2
  114730. \- security_group: nsg1
  114731. \- resource_group: group1
  114732. \- priority: 101
  114733. \- protocol: tcp
  114734. \- access: allow
  114735. \- direction: inbound
  114736. \- source_address_prefix: internet
  114737. \- destination_address_prefix: virtualnetwork
  114738. \- source_port_range: \(aq*\(aq
  114739. \- destination_port_ranges:
  114740. \- \(aq80\(aq
  114741. \- \(aq443\(aq
  114742. \- connection_auth: {{ profile }}
  114743. \- require:
  114744. \- azurearm_network: Ensure network security group exists
  114745. .ft P
  114746. .fi
  114747. .UNINDENT
  114748. .UNINDENT
  114749. .UNINDENT
  114750. .INDENT 0.0
  114751. .TP
  114752. .B salt.states.azurearm_network.subnet_absent(name, virtual_network, resource_group, connection_auth=None)
  114753. New in version 2019.2.0.
  114754. .sp
  114755. Ensure a virtual network does not exist in the virtual network.
  114756. .INDENT 7.0
  114757. .TP
  114758. .B Parameters
  114759. .INDENT 7.0
  114760. .IP \(bu 2
  114761. \fBname\fP \-\- Name of the subnet.
  114762. .IP \(bu 2
  114763. \fBvirtual_network\fP \-\- Name of the existing virtual network containing the subnet.
  114764. .IP \(bu 2
  114765. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114766. .IP \(bu 2
  114767. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114768. Azure Resource Manager API.
  114769. .UNINDENT
  114770. .UNINDENT
  114771. .UNINDENT
  114772. .INDENT 0.0
  114773. .TP
  114774. .B salt.states.azurearm_network.subnet_present(name, address_prefix, virtual_network, resource_group, security_group=None, route_table=None, connection_auth=None, **kwargs)
  114775. New in version 2019.2.0.
  114776. .sp
  114777. Ensure a subnet exists.
  114778. .INDENT 7.0
  114779. .TP
  114780. .B Parameters
  114781. .INDENT 7.0
  114782. .IP \(bu 2
  114783. \fBname\fP \-\- Name of the subnet.
  114784. .IP \(bu 2
  114785. \fBaddress_prefix\fP \-\- A CIDR block used by the subnet within the virtual network.
  114786. .IP \(bu 2
  114787. \fBvirtual_network\fP \-\- Name of the existing virtual network to contain the subnet.
  114788. .IP \(bu 2
  114789. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114790. .IP \(bu 2
  114791. \fBsecurity_group\fP \-\- The name of the existing network security group to assign to the subnet.
  114792. .IP \(bu 2
  114793. \fBroute_table\fP \-\- The name of the existing route table to assign to the subnet.
  114794. .IP \(bu 2
  114795. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114796. Azure Resource Manager API.
  114797. .UNINDENT
  114798. .UNINDENT
  114799. .sp
  114800. Example usage:
  114801. .INDENT 7.0
  114802. .INDENT 3.5
  114803. .sp
  114804. .nf
  114805. .ft C
  114806. Ensure subnet exists:
  114807. azurearm_network.subnet_present:
  114808. \- name: vnet1_sn1
  114809. \- virtual_network: vnet1
  114810. \- resource_group: group1
  114811. \- address_prefix: \(aq192.168.1.0/24\(aq
  114812. \- security_group: nsg1
  114813. \- route_table: rt1
  114814. \- connection_auth: {{ profile }}
  114815. \- require:
  114816. \- azurearm_network: Ensure virtual network exists
  114817. \- azurearm_network: Ensure network security group exists
  114818. \- azurearm_network: Ensure route table exists
  114819. .ft P
  114820. .fi
  114821. .UNINDENT
  114822. .UNINDENT
  114823. .UNINDENT
  114824. .INDENT 0.0
  114825. .TP
  114826. .B salt.states.azurearm_network.virtual_network_absent(name, resource_group, connection_auth=None)
  114827. New in version 2019.2.0.
  114828. .sp
  114829. Ensure a virtual network does not exist in the resource group.
  114830. .INDENT 7.0
  114831. .TP
  114832. .B Parameters
  114833. .INDENT 7.0
  114834. .IP \(bu 2
  114835. \fBname\fP \-\- Name of the virtual network.
  114836. .IP \(bu 2
  114837. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114838. .IP \(bu 2
  114839. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114840. Azure Resource Manager API.
  114841. .UNINDENT
  114842. .UNINDENT
  114843. .UNINDENT
  114844. .INDENT 0.0
  114845. .TP
  114846. .B salt.states.azurearm_network.virtual_network_present(name, address_prefixes, resource_group, dns_servers=None, tags=None, connection_auth=None, **kwargs)
  114847. New in version 2019.2.0.
  114848. .sp
  114849. Ensure a virtual network exists.
  114850. .INDENT 7.0
  114851. .TP
  114852. .B Parameters
  114853. .INDENT 7.0
  114854. .IP \(bu 2
  114855. \fBname\fP \-\- Name of the virtual network.
  114856. .IP \(bu 2
  114857. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114858. .IP \(bu 2
  114859. \fBaddress_prefixes\fP \-\- A list of CIDR blocks which can be used by subnets within the virtual network.
  114860. .IP \(bu 2
  114861. \fBdns_servers\fP \-\- A list of DNS server addresses.
  114862. .IP \(bu 2
  114863. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the virtual network object.
  114864. .IP \(bu 2
  114865. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114866. Azure Resource Manager API.
  114867. .UNINDENT
  114868. .UNINDENT
  114869. .sp
  114870. Example usage:
  114871. .INDENT 7.0
  114872. .INDENT 3.5
  114873. .sp
  114874. .nf
  114875. .ft C
  114876. Ensure virtual network exists:
  114877. azurearm_network.virtual_network_present:
  114878. \- name: vnet1
  114879. \- resource_group: group1
  114880. \- address_prefixes:
  114881. \- \(aq10.0.0.0/8\(aq
  114882. \- \(aq192.168.0.0/16\(aq
  114883. \- dns_servers:
  114884. \- \(aq8.8.8.8\(aq
  114885. \- tags:
  114886. contact_name: Elmer Fudd Gantry
  114887. \- connection_auth: {{ profile }}
  114888. \- require:
  114889. \- azurearm_resource: Ensure resource group exists
  114890. .ft P
  114891. .fi
  114892. .UNINDENT
  114893. .UNINDENT
  114894. .UNINDENT
  114895. .SS salt.states.beacon
  114896. .SS Management of the Salt beacons
  114897. .sp
  114898. New in version 2015.8.0.
  114899. .INDENT 0.0
  114900. .INDENT 3.5
  114901. .sp
  114902. .nf
  114903. .ft C
  114904. ps:
  114905. beacon.present:
  114906. \- save: True
  114907. \- enable: False
  114908. \- services:
  114909. salt\-master: running
  114910. apache2: stopped
  114911. sh:
  114912. beacon.present: []
  114913. load:
  114914. beacon.present:
  114915. \- averages:
  114916. 1m:
  114917. \- 0.0
  114918. \- 2.0
  114919. 5m:
  114920. \- 0.0
  114921. \- 1.5
  114922. 15m:
  114923. \- 0.1
  114924. \- 1.0
  114925. \&.. versionadded:: 3000
  114926. Beginning in the 3000 release, multiple copies of a beacon can be configured
  114927. using the \(ga\(gabeacon_module\(ga\(ga parameter.
  114928. inotify_infs:
  114929. beacon.present:
  114930. \- save: True
  114931. \- enable: True
  114932. \- files:
  114933. /etc/infs.conf:
  114934. mask:
  114935. \- create
  114936. \- delete
  114937. \- modify
  114938. recurse: True
  114939. auto_add: True
  114940. \- interval: 10
  114941. \- beacon_module: inotify
  114942. \- disable_during_state_run: True
  114943. inotify_ntp:
  114944. beacon.present:
  114945. \- save: True
  114946. \- enable: True
  114947. \- files:
  114948. /etc/ntp.conf:
  114949. mask:
  114950. \- create
  114951. \- delete
  114952. \- modify
  114953. recurse: True
  114954. auto_add: True
  114955. \- interval: 10
  114956. \- beacon_module: inotify
  114957. \- disable_during_state_run: True
  114958. .ft P
  114959. .fi
  114960. .UNINDENT
  114961. .UNINDENT
  114962. .INDENT 0.0
  114963. .TP
  114964. .B salt.states.beacon.absent(name, save=False, **kwargs)
  114965. Ensure beacon is absent.
  114966. .INDENT 7.0
  114967. .TP
  114968. .B name
  114969. The name of the beacon that is ensured absent.
  114970. .TP
  114971. .B save
  114972. True/False, if True the beacons.conf file be updated too. Default is False.
  114973. .UNINDENT
  114974. .sp
  114975. Example:
  114976. .INDENT 7.0
  114977. .INDENT 3.5
  114978. .sp
  114979. .nf
  114980. .ft C
  114981. remove_beacon:
  114982. beacon.absent:
  114983. \- name: ps
  114984. \- save: True
  114985. .ft P
  114986. .fi
  114987. .UNINDENT
  114988. .UNINDENT
  114989. .UNINDENT
  114990. .INDENT 0.0
  114991. .TP
  114992. .B salt.states.beacon.disabled(name, **kwargs)
  114993. Disable a beacon.
  114994. .INDENT 7.0
  114995. .TP
  114996. .B name
  114997. The name of the beacon to disable.
  114998. .UNINDENT
  114999. .sp
  115000. Example:
  115001. .INDENT 7.0
  115002. .INDENT 3.5
  115003. .sp
  115004. .nf
  115005. .ft C
  115006. disable_beacon:
  115007. beacon.disabled:
  115008. \- name: psp
  115009. .ft P
  115010. .fi
  115011. .UNINDENT
  115012. .UNINDENT
  115013. .UNINDENT
  115014. .INDENT 0.0
  115015. .TP
  115016. .B salt.states.beacon.enabled(name, **kwargs)
  115017. Enable a beacon.
  115018. .INDENT 7.0
  115019. .TP
  115020. .B name
  115021. The name of the beacon to enable.
  115022. .UNINDENT
  115023. .sp
  115024. Example:
  115025. .INDENT 7.0
  115026. .INDENT 3.5
  115027. .sp
  115028. .nf
  115029. .ft C
  115030. enable_beacon:
  115031. beacon.enabled:
  115032. \- name: ps
  115033. .ft P
  115034. .fi
  115035. .UNINDENT
  115036. .UNINDENT
  115037. .UNINDENT
  115038. .INDENT 0.0
  115039. .TP
  115040. .B salt.states.beacon.present(name, save=False, **kwargs)
  115041. Ensure beacon is configured with the included beacon data.
  115042. .INDENT 7.0
  115043. .TP
  115044. .B name
  115045. The name of the beacon to ensure is configured.
  115046. .TP
  115047. .B save
  115048. True/False, if True the beacons.conf file be updated too. Default is False.
  115049. .UNINDENT
  115050. .sp
  115051. Example:
  115052. .INDENT 7.0
  115053. .INDENT 3.5
  115054. .sp
  115055. .nf
  115056. .ft C
  115057. ps_beacon:
  115058. beacon.present:
  115059. \- name: ps
  115060. \- save: True
  115061. \- enable: False
  115062. \- services:
  115063. salt\-master: running
  115064. apache2: stopped
  115065. .ft P
  115066. .fi
  115067. .UNINDENT
  115068. .UNINDENT
  115069. .UNINDENT
  115070. .SS salt.states.boto3_elasticache module
  115071. .SS Manage Elasticache with boto3
  115072. .sp
  115073. New in version 2017.7.0.
  115074. .sp
  115075. Create, destroy and update Elasticache clusters. Be aware that this interacts
  115076. with Amazon\(aqs services, and so may incur charges.
  115077. .sp
  115078. This module uses boto3 behind the scenes \- as a result it inherits any limitations
  115079. it boto3\(aqs implementation of the AWS API. It is also designed to as directly as
  115080. possible leverage boto3\(aqs parameter naming and semantics. This allows one to use
  115081. \fI\%http://boto3.readthedocs.io/en/latest/reference/services/elasticache.html\fP as an
  115082. excellent source for details too involved to reiterate here.
  115083. .sp
  115084. Note: This module is designed to be transparent ("intentionally ignorant" is the
  115085. phrase I used to describe it to my boss) to new AWS / boto options \- since all
  115086. AWS API params are passed directly through both the state and executions modules,
  115087. any new args to existing functions which become available after this documentation
  115088. is written should work immediately.
  115089. .sp
  115090. Brand new API calls, of course, would still require new functions to be added :)
  115091. .sp
  115092. This module accepts explicit elasticache credentials but can also utilize IAM
  115093. roles assigned to the instance through Instance Profiles. Dynamic credentials are
  115094. then automatically obtained from AWS API and no further configuration is necessary.
  115095. More information is available
  115096. \fI\%here\fP\&.
  115097. .sp
  115098. If IAM roles are not used you need to specify them either in a pillar file or
  115099. in the minion\(aqs config file:
  115100. .INDENT 0.0
  115101. .INDENT 3.5
  115102. .sp
  115103. .nf
  115104. .ft C
  115105. elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
  115106. elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115107. .ft P
  115108. .fi
  115109. .UNINDENT
  115110. .UNINDENT
  115111. .sp
  115112. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  115113. passed in as a dict, or as a string to pull from pillars or minion config:
  115114. .INDENT 0.0
  115115. .INDENT 3.5
  115116. .sp
  115117. .nf
  115118. .ft C
  115119. myprofile:
  115120. keyid: GKTADJGHEIQSXMKKRBJ08H
  115121. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115122. region: us\-east\-1
  115123. .ft P
  115124. .fi
  115125. .UNINDENT
  115126. .UNINDENT
  115127. .INDENT 0.0
  115128. .INDENT 3.5
  115129. .sp
  115130. .nf
  115131. .ft C
  115132. Ensure myelasticache exists:
  115133. boto3_elasticache.present:
  115134. \- name: myelasticache
  115135. \- engine: redis
  115136. \- cache_node_type: cache.t1.micro
  115137. \- num_cache_nodes: 1
  115138. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115139. \- region: us\-east\-1
  115140. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  115141. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115142. .ft P
  115143. .fi
  115144. .UNINDENT
  115145. .UNINDENT
  115146. .INDENT 0.0
  115147. .INDENT 3.5
  115148. .sp
  115149. .nf
  115150. .ft C
  115151. # Using a profile from pillars
  115152. Ensure myelasticache exists:
  115153. boto3_elasticache.present:
  115154. \- name: myelasticache
  115155. \- engine: redis
  115156. \- cache_node_type: cache.t1.micro
  115157. \- num_cache_nodes: 1
  115158. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115159. \- region: us\-east\-1
  115160. \- profile: myprofile
  115161. .ft P
  115162. .fi
  115163. .UNINDENT
  115164. .UNINDENT
  115165. .INDENT 0.0
  115166. .INDENT 3.5
  115167. .sp
  115168. .nf
  115169. .ft C
  115170. # Passing in a profile
  115171. Ensure myelasticache exists:
  115172. boto3_elasticache.present:
  115173. \- name: myelasticache
  115174. \- engine: redis
  115175. \- cache_node_type: cache.t1.micro
  115176. \- num_cache_nodes: 1
  115177. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115178. \- region: us\-east\-1
  115179. \- profile:
  115180. keyid: GKTADJGHEIQSXMKKRBJ08H
  115181. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115182. .ft P
  115183. .fi
  115184. .UNINDENT
  115185. .UNINDENT
  115186. .INDENT 0.0
  115187. .TP
  115188. .B salt.states.boto3_elasticache.cache_cluster_absent(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)
  115189. Ensure a given cache cluster is deleted.
  115190. .INDENT 7.0
  115191. .TP
  115192. .B name
  115193. Name of the cache cluster.
  115194. .TP
  115195. .B wait
  115196. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115197. resource is in the desired state. Zero meaning to return success or failure immediately
  115198. of course. Note that waiting for the cluster to become available is generally the
  115199. better course, as failure to do so will often lead to subsequent failures when managing
  115200. dependent resources.
  115201. .TP
  115202. .B CacheClusterId
  115203. The node group (shard) identifier.
  115204. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115205. .TP
  115206. .B FinalSnapshotIdentifier
  115207. The user\-supplied name of a final cache cluster snapshot. This is the unique name
  115208. that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the
  115209. cache cluster immediately afterward.
  115210. .TP
  115211. .B region
  115212. Region to connect to.
  115213. .TP
  115214. .B key
  115215. Secret key to be used.
  115216. .TP
  115217. .B keyid
  115218. Access key to be used.
  115219. .TP
  115220. .B profile
  115221. A dict with region, key and keyid, or a pillar key (string)
  115222. that contains a dict with region, key and keyid.
  115223. .UNINDENT
  115224. .UNINDENT
  115225. .INDENT 0.0
  115226. .TP
  115227. .B salt.states.boto3_elasticache.cache_cluster_present(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)
  115228. Ensure a given cache cluster exists.
  115229. .INDENT 7.0
  115230. .TP
  115231. .B name
  115232. Name of the cache cluster (cache cluster id).
  115233. .TP
  115234. .B wait
  115235. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115236. resource is in the desired state. Zero meaning to return success or failure immediately
  115237. of course. Note that waiting for the cluster to become available is generally the
  115238. better course, as failure to do so will often lead to subsequent failures when managing
  115239. dependent resources.
  115240. .TP
  115241. .B security_groups
  115242. One or more VPC security groups (names and/or IDs) associated with the cache cluster.
  115243. .sp
  115244. \fBNOTE:\fP
  115245. .INDENT 7.0
  115246. .INDENT 3.5
  115247. This is additive with any sec groups provided via the
  115248. SecurityGroupIds parameter below. Use this parameter ONLY when you
  115249. are creating a cluster in a VPC.
  115250. .UNINDENT
  115251. .UNINDENT
  115252. .TP
  115253. .B CacheClusterId
  115254. The node group (shard) identifier. This parameter is stored as a lowercase string.
  115255. .sp
  115256. Constraints:
  115257. .INDENT 7.0
  115258. .IP \(bu 2
  115259. A name must contain from 1 to 20 alphanumeric characters or hyphens.
  115260. .IP \(bu 2
  115261. The first character must be a letter.
  115262. .IP \(bu 2
  115263. A name cannot end with a hyphen or contain two consecutive hyphens.
  115264. .UNINDENT
  115265. .sp
  115266. \fBNOTE:\fP
  115267. .INDENT 7.0
  115268. .INDENT 3.5
  115269. In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs
  115270. not provided.
  115271. .UNINDENT
  115272. .UNINDENT
  115273. .TP
  115274. .B ReplicationGroupId
  115275. The ID of the replication group to which this cache cluster should belong. If this
  115276. parameter is specified, the cache cluster is added to the specified replication
  115277. group as a read replica; otherwise, the cache cluster is a standalone primary that
  115278. is not part of any replication group. If the specified replication group is
  115279. Multi\-AZ enabled and the Availability Zone is not specified, the cache cluster is
  115280. created in Availability Zones that provide the best spread of read replicas across
  115281. Availability Zones.
  115282. .TP
  115283. .B AZMode
  115284. Specifies whether the nodes in this Memcached cluster are created in a single
  115285. Availability Zone or created across multiple Availability Zones in the cluster\(aqs
  115286. region. If the AZMode and PreferredAvailabilityZones are not specified,
  115287. ElastiCache assumes single\-az mode.
  115288. .sp
  115289. \fBNOTE:\fP
  115290. .INDENT 7.0
  115291. .INDENT 3.5
  115292. This parameter is ONLY supported for Memcached cache clusters.
  115293. .UNINDENT
  115294. .UNINDENT
  115295. .TP
  115296. .B PreferredAvailabilityZone
  115297. The EC2 Availability Zone in which the cache cluster is created. All nodes
  115298. belonging to this Memcached cache cluster are placed in the preferred Availability
  115299. Zone. If you want to create your nodes across multiple Availability Zones, use
  115300. PreferredAvailabilityZones.
  115301. .sp
  115302. Default: System chosen Availability Zone.
  115303. .TP
  115304. .B PreferredAvailabilityZones
  115305. A list of the Availability Zones in which cache nodes are created. The order of
  115306. the zones in the list is not important. The number of Availability Zones listed
  115307. must equal the value of NumCacheNodes. If you want all the nodes in the same
  115308. Availability Zone, use PreferredAvailabilityZone instead, or repeat the
  115309. Availability Zone multiple times in the list.
  115310. .sp
  115311. Default: System chosen Availability Zones.
  115312. .sp
  115313. \fBNOTE:\fP
  115314. .INDENT 7.0
  115315. .INDENT 3.5
  115316. This option is ONLY supported on Memcached.
  115317. .sp
  115318. If you are creating your cache cluster in an Amazon VPC
  115319. (recommended) you can only locate nodes in Availability Zones that
  115320. are associated with the subnets in the selected subnet group.
  115321. .UNINDENT
  115322. .UNINDENT
  115323. .TP
  115324. .B NumCacheNodes
  115325. The initial (integer) number of cache nodes that the cache cluster has.
  115326. .sp
  115327. \fBNOTE:\fP
  115328. .INDENT 7.0
  115329. .INDENT 3.5
  115330. For clusters running Redis, this value must be 1.
  115331. .sp
  115332. For clusters running Memcached, this value must be between 1 and 20.
  115333. .UNINDENT
  115334. .UNINDENT
  115335. .TP
  115336. .B CacheNodeType
  115337. The compute and memory capacity of the nodes in the node group (shard).
  115338. Valid node types (and pricing for them) are exhaustively described at
  115339. \fI\%https://aws.amazon.com/elasticache/pricing/\fP
  115340. .sp
  115341. \fBNOTE:\fP
  115342. .INDENT 7.0
  115343. .INDENT 3.5
  115344. .INDENT 0.0
  115345. .INDENT 3.5
  115346. All T2 instances must be created in a VPC
  115347. .UNINDENT
  115348. .UNINDENT
  115349. .sp
  115350. Redis backup/restore is not supported for Redis (cluster mode
  115351. disabled) T1 and T2 instances. Backup/restore is supported on Redis
  115352. (cluster mode enabled) T2 instances.
  115353. .sp
  115354. Redis Append\-only files (AOF) functionality is not supported for T1
  115355. or T2 instances.
  115356. .UNINDENT
  115357. .UNINDENT
  115358. .TP
  115359. .B Engine
  115360. The name of the cache engine to be used for this cache cluster. Valid values for
  115361. this parameter are: memcached | redis
  115362. .TP
  115363. .B EngineVersion
  115364. The version number of the cache engine to be used for this cache cluster. To view
  115365. the supported cache engine versions, use the DescribeCacheEngineVersions operation.
  115366. .sp
  115367. \fBNOTE:\fP
  115368. .INDENT 7.0
  115369. .INDENT 3.5
  115370. You can upgrade to a newer engine version but you cannot downgrade
  115371. to an earlier engine version. If you want to use an earlier engine
  115372. version, you must delete the existing cache cluster or replication
  115373. group and create it anew with the earlier engine version.
  115374. .UNINDENT
  115375. .UNINDENT
  115376. .TP
  115377. .B CacheParameterGroupName
  115378. The name of the parameter group to associate with this cache cluster. If this
  115379. argument is omitted, the default parameter group for the specified engine is used.
  115380. You cannot use any parameter group which has cluster\-enabled=\(aqyes\(aq when creating
  115381. a cluster.
  115382. .TP
  115383. .B CacheSubnetGroupName
  115384. The name of the Cache Subnet Group to be used for the cache cluster. Use this
  115385. parameter ONLY when you are creating a cache cluster within a VPC.
  115386. .sp
  115387. \fBNOTE:\fP
  115388. .INDENT 7.0
  115389. .INDENT 3.5
  115390. If you\(aqre going to launch your cluster in an Amazon VPC, you need
  115391. to create a subnet group before you start creating a cluster.
  115392. .UNINDENT
  115393. .UNINDENT
  115394. .TP
  115395. .B CacheSecurityGroupNames
  115396. A list of Cache Security Group names to associate with this cache cluster. Use
  115397. this parameter ONLY when you are creating a cache cluster outside of a VPC.
  115398. .TP
  115399. .B SecurityGroupIds
  115400. One or more VPC security groups associated with the cache cluster. Use this
  115401. parameter ONLY when you are creating a cache cluster within a VPC.
  115402. .TP
  115403. .B Tags
  115404. A list of tags to be added to this resource. Note that due to shortcomings in the
  115405. AWS API for Elasticache, these can only be set during resource creation \- later
  115406. modification is not (currently) supported.
  115407. .TP
  115408. .B SnapshotArns
  115409. A single\-element string list containing an Amazon Resource Name (ARN) that
  115410. uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
  115411. file is used to populate the node group (shard). The Amazon S3 object name in
  115412. the ARN cannot contain any commas.
  115413. .sp
  115414. \fBNOTE:\fP
  115415. .INDENT 7.0
  115416. .INDENT 3.5
  115417. This parameter is ONLY valid if the Engine parameter is redis.
  115418. .UNINDENT
  115419. .UNINDENT
  115420. .TP
  115421. .B SnapshotName
  115422. The name of a Redis snapshot from which to restore data into the new node group
  115423. (shard). The snapshot status changes to restoring while the new node group (shard)
  115424. is being created.
  115425. .sp
  115426. \fBNOTE:\fP
  115427. .INDENT 7.0
  115428. .INDENT 3.5
  115429. This parameter is ONLY valid if the Engine parameter is redis.
  115430. .UNINDENT
  115431. .UNINDENT
  115432. .TP
  115433. .B PreferredMaintenanceWindow
  115434. Specifies the weekly time range during which maintenance on the cache cluster is
  115435. permitted. It is specified as a range in the format ddd:hh24:mi\-ddd:hh24:mi
  115436. (24H Clock UTC). The minimum maintenance window is a 60 minute period.
  115437. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
  115438. .sp
  115439. Example: sun:23:00\-mon:01:30
  115440. .TP
  115441. .B Port
  115442. The port number on which each of the cache nodes accepts connections.
  115443. .sp
  115444. Default: 6379
  115445. .TP
  115446. .B NotificationTopicArn
  115447. The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS)
  115448. topic to which notifications are sent.
  115449. .sp
  115450. \fBNOTE:\fP
  115451. .INDENT 7.0
  115452. .INDENT 3.5
  115453. The Amazon SNS topic owner must be the same as the cache cluster
  115454. owner.
  115455. .UNINDENT
  115456. .UNINDENT
  115457. .TP
  115458. .B AutoMinorVersionUpgrade
  115459. This (boolean) parameter is currently disabled.
  115460. .TP
  115461. .B SnapshotRetentionLimit
  115462. The number of days for which ElastiCache retains automatic snapshots before
  115463. deleting them.
  115464. .sp
  115465. Default: 0 (i.e., automatic backups are disabled for this cache cluster).
  115466. .sp
  115467. \fBNOTE:\fP
  115468. .INDENT 7.0
  115469. .INDENT 3.5
  115470. This parameter is ONLY valid if the Engine parameter is redis.
  115471. .UNINDENT
  115472. .UNINDENT
  115473. .TP
  115474. .B SnapshotWindow
  115475. The daily time range (in UTC) during which ElastiCache begins taking a daily
  115476. snapshot of your node group (shard). If you do not specify this parameter,
  115477. ElastiCache automatically chooses an appropriate time range.
  115478. .sp
  115479. Example: 05:00\-09:00
  115480. .sp
  115481. \fBNOTE:\fP
  115482. .INDENT 7.0
  115483. .INDENT 3.5
  115484. This parameter is ONLY valid if the Engine parameter is redis.
  115485. .UNINDENT
  115486. .UNINDENT
  115487. .TP
  115488. .B AuthToken
  115489. The password used to access a password protected server.
  115490. .sp
  115491. Password constraints:
  115492. .INDENT 7.0
  115493. .IP \(bu 2
  115494. Must be only printable ASCII characters.
  115495. .IP \(bu 2
  115496. Must be at least 16 characters and no more than 128 characters in length.
  115497. .IP \(bu 2
  115498. Cannot contain any of the following characters: \(aq/\(aq, \(aq"\(aq, or "@".
  115499. .UNINDENT
  115500. .TP
  115501. .B CacheNodeIdsToRemove
  115502. A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002,
  115503. etc.). This parameter is only valid when NumCacheNodes is less than the existing number of
  115504. cache nodes. The number of cache node IDs supplied in this parameter must match the
  115505. difference between the existing number of cache nodes in the cluster or pending cache nodes,
  115506. whichever is greater, and the value of NumCacheNodes in the request.
  115507. .TP
  115508. .B NewAvailabilityZones
  115509. The list of Availability Zones where the new Memcached cache nodes are created.
  115510. This parameter is only valid when NumCacheNodes in the request is greater than the sum of
  115511. the number of active cache nodes and the number of cache nodes pending creation (which may
  115512. be zero). The number of Availability Zones supplied in this list must match the cache nodes
  115513. being added in this request.
  115514. Note: This option is only supported on Memcached clusters.
  115515. .TP
  115516. .B NotificationTopicStatus
  115517. The status of the SNS notification topic. Notifications are sent only if the status is active.
  115518. .sp
  115519. Valid values: active | inactive
  115520. .TP
  115521. .B region
  115522. Region to connect to.
  115523. .TP
  115524. .B key
  115525. Secret key to be used.
  115526. .TP
  115527. .B keyid
  115528. Access key to be used.
  115529. .TP
  115530. .B profile
  115531. A dict with region, key and keyid, or a pillar key (string) that
  115532. contains a dict with region, key and keyid.
  115533. .UNINDENT
  115534. .UNINDENT
  115535. .INDENT 0.0
  115536. .TP
  115537. .B salt.states.boto3_elasticache.cache_subnet_group_absent(name, region=None, key=None, keyid=None, profile=None, **args)
  115538. Ensure a given cache subnet group is deleted.
  115539. .INDENT 7.0
  115540. .TP
  115541. .B name
  115542. Name of the cache subnet group.
  115543. .TP
  115544. .B CacheSubnetGroupName
  115545. A name for the cache subnet group.
  115546. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115547. .TP
  115548. .B region
  115549. Region to connect to.
  115550. .TP
  115551. .B key
  115552. Secret key to be used.
  115553. .TP
  115554. .B keyid
  115555. Access key to be used.
  115556. .TP
  115557. .B profile
  115558. A dict with region, key and keyid, or a pillar key (string)
  115559. that contains a dict with region, key and keyid.
  115560. .UNINDENT
  115561. .UNINDENT
  115562. .INDENT 0.0
  115563. .TP
  115564. .B salt.states.boto3_elasticache.cache_subnet_group_present(name, subnets=None, region=None, key=None, keyid=None, profile=None, **args)
  115565. Ensure cache subnet group exists.
  115566. .INDENT 7.0
  115567. .TP
  115568. .B name
  115569. A name for the cache subnet group. This value is stored as a lowercase string.
  115570. Constraints: Must contain no more than 255 alphanumeric characters or hyphens.
  115571. .TP
  115572. .B subnets
  115573. A list of VPC subnets (IDs, Names, or a mix) for the cache subnet group.
  115574. .TP
  115575. .B CacheSubnetGroupName
  115576. A name for the cache subnet group. This value is stored as a lowercase string.
  115577. Constraints: Must contain no more than 255 alphanumeric characters or hyphens.
  115578. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115579. .TP
  115580. .B CacheSubnetGroupDescription
  115581. A description for the cache subnet group.
  115582. .TP
  115583. .B SubnetIds
  115584. A list of VPC subnet IDs for the cache subnet group. This is ADDITIVE with \(aqsubnets\(aq above.
  115585. .TP
  115586. .B region
  115587. Region to connect to.
  115588. .TP
  115589. .B key
  115590. Secret key to be used.
  115591. .TP
  115592. .B keyid
  115593. Access key to be used.
  115594. .TP
  115595. .B profile
  115596. A dict with region, key and keyid, or a pillar key (string) that
  115597. contains a dict with region, key and keyid.
  115598. .UNINDENT
  115599. .UNINDENT
  115600. .INDENT 0.0
  115601. .TP
  115602. .B salt.states.boto3_elasticache.replication_group_absent(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)
  115603. Ensure a given replication group is deleted.
  115604. .INDENT 7.0
  115605. .TP
  115606. .B name
  115607. Name of the replication group.
  115608. .TP
  115609. .B wait
  115610. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115611. resource is in the desired state. Zero meaning to return success or failure immediately
  115612. of course. Note that waiting for the cluster to become available is generally the
  115613. better course, as failure to do so will often lead to subsequent failures when managing
  115614. dependent resources.
  115615. .TP
  115616. .B ReplicationGroupId
  115617. The replication group identifier.
  115618. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115619. .TP
  115620. .B RetainPrimaryCluster
  115621. If set to true, all of the read replicas are deleted, but the primary node is retained.
  115622. .TP
  115623. .B FinalSnapshotIdentifier
  115624. The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from
  115625. the primary node in the cluster, rather than one of the replicas; this is to ensure that
  115626. it captures the freshest data. After the final snapshot is taken, the replication group is
  115627. immediately deleted.
  115628. .TP
  115629. .B region
  115630. Region to connect to.
  115631. .TP
  115632. .B key
  115633. Secret key to be used.
  115634. .TP
  115635. .B keyid
  115636. Access key to be used.
  115637. .TP
  115638. .B profile
  115639. A dict with region, key and keyid, or a pillar key (string)
  115640. that contains a dict with region, key and keyid.
  115641. .UNINDENT
  115642. .UNINDENT
  115643. .INDENT 0.0
  115644. .TP
  115645. .B salt.states.boto3_elasticache.replication_group_present(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)
  115646. Ensure a replication group exists and is in the given state.
  115647. .INDENT 7.0
  115648. .TP
  115649. .B name
  115650. Name of replication group
  115651. .TP
  115652. .B wait
  115653. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115654. resource is in the desired state. Zero meaning to return success or failure immediately
  115655. of course. Note that waiting for the cluster to become available is generally the
  115656. better course, as failure to do so will often lead to subsequent failures when managing
  115657. dependent resources.
  115658. .TP
  115659. .B security_groups
  115660. One or more VPC security groups (names and/or IDs) associated with the cache cluster.
  115661. .sp
  115662. \fBNOTE:\fP
  115663. .INDENT 7.0
  115664. .INDENT 3.5
  115665. This is additive with any sec groups provided via the
  115666. SecurityGroupIds parameter below. Use this parameter ONLY when you
  115667. are creating a cluster in a VPC.
  115668. .UNINDENT
  115669. .UNINDENT
  115670. .TP
  115671. .B ReplicationGroupId
  115672. The replication group identifier. This parameter is stored as a lowercase string.
  115673. .sp
  115674. Constraints:
  115675. .INDENT 7.0
  115676. .IP \(bu 2
  115677. A name must contain from 1 to 20 alphanumeric characters or hyphens.
  115678. .IP \(bu 2
  115679. The first character must be a letter.
  115680. .IP \(bu 2
  115681. A name cannot end with a hyphen or contain two consecutive hyphens.
  115682. .UNINDENT
  115683. .sp
  115684. \fBNOTE:\fP
  115685. .INDENT 7.0
  115686. .INDENT 3.5
  115687. In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs
  115688. not provided.
  115689. .UNINDENT
  115690. .UNINDENT
  115691. .TP
  115692. .B ReplicationGroupDescription
  115693. A user\-created description for the replication group.
  115694. .TP
  115695. .B PrimaryClusterId
  115696. The identifier of the cache cluster that serves as the primary for this replication group.
  115697. This cache cluster must already exist and have a status of available. This parameter is
  115698. not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified.
  115699. .TP
  115700. .B AutomaticFailoverEnabled
  115701. Specifies whether a read\-only replica is automatically promoted to read/write primary if
  115702. the existing primary fails. If true, Multi\-AZ is enabled for this replication group. If
  115703. false, Multi\-AZ is disabled for this replication group.
  115704. .sp
  115705. Default: False
  115706. .sp
  115707. \fBNOTE:\fP
  115708. .INDENT 7.0
  115709. .INDENT 3.5
  115710. AutomaticFailoverEnabled must be enabled for Redis (cluster mode
  115711. enabled) replication groups.
  115712. .sp
  115713. ElastiCache Multi\-AZ replication groups is not supported on:
  115714. .INDENT 0.0
  115715. .IP \(bu 2
  115716. Redis versions earlier than 2.8.6.
  115717. .IP \(bu 2
  115718. Redis (cluster mode disabled): T1 and T2 node types.
  115719. .IP \(bu 2
  115720. Redis (cluster mode enabled): T2 node types.
  115721. .UNINDENT
  115722. .UNINDENT
  115723. .UNINDENT
  115724. .TP
  115725. .B NumCacheClusters
  115726. The number of clusters this replication group initially has. This parameter is not used
  115727. if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead.
  115728. If Multi\-AZ is enabled , the value of this parameter must be at least 2. The maximum
  115729. permitted value for NumCacheClusters is 6 (primary plus 5 replicas).
  115730. .TP
  115731. .B PreferredCacheClusterAZs
  115732. A list of EC2 Availability Zones in which the replication group\(aqs cache clusters are
  115733. created. The order of the Availability Zones in the list is the order in which clusters
  115734. are allocated. The primary cluster is created in the first AZ in the list. This parameter
  115735. is not used if there is more than one node group (shard). You should use
  115736. NodeGroupConfiguration instead. The number of Availability Zones listed must equal the
  115737. value of NumCacheClusters.
  115738. .sp
  115739. Default: System chosen Availability Zones.
  115740. .sp
  115741. \fBNOTE:\fP
  115742. .INDENT 7.0
  115743. .INDENT 3.5
  115744. If you are creating your replication group in an Amazon VPC
  115745. (recommended), you can only locate cache clusters in Availability
  115746. Zones associated with the subnets in the selected subnet group.
  115747. .UNINDENT
  115748. .UNINDENT
  115749. .TP
  115750. .B NumNodeGroups
  115751. An optional parameter that specifies the number of node groups (shards)
  115752. for this Redis (cluster mode enabled) replication group. For Redis
  115753. (cluster mode disabled) either omit this parameter or set it to 1.
  115754. .sp
  115755. Default: 1
  115756. .TP
  115757. .B ReplicasPerNodeGroup
  115758. An optional parameter that specifies the number of replica nodes in
  115759. each node group (shard). Valid values are: 0 to 5
  115760. .TP
  115761. .B NodeGroupConfiguration
  115762. A list of node group (shard) configuration options. Each node group (shard) configuration
  115763. has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.
  115764. If you\(aqre creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled)
  115765. replication group, you can use this parameter to configure one node group (shard) or you
  115766. can omit this parameter. For fiddly details of the expected data layout of this param, see
  115767. \fI\%http://boto3.readthedocs.io/en/latest/reference/services/elasticache.html\fP?#ElastiCache.Client.create_replication_group
  115768. .TP
  115769. .B CacheNodeType
  115770. The compute and memory capacity of the nodes in the node group (shard).
  115771. See \fI\%https://aws.amazon.com/elasticache/pricing/\fP for current sizing, prices, and constraints.
  115772. .TP
  115773. .B Engine
  115774. The name of the cache engine to be used for the cache clusters in this replication group.
  115775. .TP
  115776. .B EngineVersion
  115777. The version number of the cache engine to be used for the cache clusters in this replication
  115778. group. To view the supported cache engine versions, use the DescribeCacheEngineVersions
  115779. operation.
  115780. .sp
  115781. \fBNOTE:\fP
  115782. .INDENT 7.0
  115783. .INDENT 3.5
  115784. You can upgrade to a newer engine version but you cannot downgrade
  115785. to an earlier engine version. If you want to use an earlier engine
  115786. version, you must delete the existing cache cluster or replication
  115787. group and create it anew with the earlier engine version.
  115788. .UNINDENT
  115789. .UNINDENT
  115790. .TP
  115791. .B CacheParameterGroupName
  115792. The name of the parameter group to associate with this replication group. If this argument
  115793. is omitted, the default cache parameter group for the specified engine is used.
  115794. .sp
  115795. \fBNOTE:\fP
  115796. .INDENT 7.0
  115797. .INDENT 3.5
  115798. If you are running Redis version 3.2.4 or later, only one node
  115799. group (shard), and want to use a default parameter group, we
  115800. recommend that you specify the parameter group by name.
  115801. .sp
  115802. To create a Redis (cluster mode disabled) replication group, use
  115803. CacheParameterGroupName=default.redis3.2
  115804. .sp
  115805. To create a Redis (cluster mode enabled) replication group, use
  115806. CacheParameterGroupName=default.redis3.2.cluster.on
  115807. .UNINDENT
  115808. .UNINDENT
  115809. .TP
  115810. .B CacheSubnetGroupName
  115811. The name of the cache subnet group to be used for the replication group.
  115812. .sp
  115813. \fBNOTE:\fP
  115814. .INDENT 7.0
  115815. .INDENT 3.5
  115816. If you\(aqre going to launch your cluster in an Amazon VPC, you need
  115817. to create a s group before you start creating a cluster. For more
  115818. information, see Subnets and Subnet Groups.
  115819. .UNINDENT
  115820. .UNINDENT
  115821. .TP
  115822. .B CacheSecurityGroupNames
  115823. A list of cache security group names to associate with this replication group.
  115824. .TP
  115825. .B SecurityGroupIds
  115826. One or more Amazon VPC security groups associated with this replication group. Use this
  115827. parameter only when you are creating a replication group in an VPC.
  115828. .TP
  115829. .B Tags
  115830. A list of tags to be added to this resource. Note that due to shortcomings in the
  115831. AWS API for Elasticache, these can only be set during resource creation \- later
  115832. modification is not (currently) supported.
  115833. .TP
  115834. .B SnapshotArns
  115835. A list of ARNs that uniquely identify the Redis RDB snapshot files stored in Amazon S3.
  115836. These snapshot files are used to populate the replication group. The Amazon S3 object name
  115837. in the ARN cannot contain any commas. The list must match the number of node groups (shards)
  115838. in the replication group, which means you cannot repartition.
  115839. .sp
  115840. \fBNOTE:\fP
  115841. .INDENT 7.0
  115842. .INDENT 3.5
  115843. This parameter is only valid if the Engine parameter is redis.
  115844. .UNINDENT
  115845. .UNINDENT
  115846. .TP
  115847. .B SnapshotName
  115848. The name of a snapshot from which to restore data into the new replication group. The
  115849. snapshot status changes to restoring while the new replication group is being created.
  115850. Note: This parameter is only valid if the Engine parameter is redis.
  115851. .TP
  115852. .B PreferredMaintenanceWindow
  115853. Specifies the weekly time range during which maintenance on the cluster is performed. It is
  115854. specified as a range in the format ddd:hh24:mi\-ddd:hh24:mi (24H Clock UTC). The minimum
  115855. maintenance window is a 60 minute period.
  115856. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
  115857. .sp
  115858. Example: sun:23:00\-mon:01:30
  115859. .TP
  115860. .B Port
  115861. The port number on which each member of the replication group accepts connections.
  115862. .TP
  115863. .B NotificationTopicArn
  115864. The ARN of an SNS topic to which notifications are sent.
  115865. .sp
  115866. \fBNOTE:\fP
  115867. .INDENT 7.0
  115868. .INDENT 3.5
  115869. The SNS topic owner must be the same as the cache cluster owner.
  115870. .UNINDENT
  115871. .UNINDENT
  115872. .TP
  115873. .B AutoMinorVersionUpgrade
  115874. This parameter is currently disabled.
  115875. .TP
  115876. .B SnapshotRetentionLimit
  115877. The number of days for which ElastiCache will retain automatic snapshots before deleting
  115878. them.
  115879. .sp
  115880. Default: 0 (that is, automatic backups are disabled for this cache cluster).
  115881. .sp
  115882. \fBNOTE:\fP
  115883. .INDENT 7.0
  115884. .INDENT 3.5
  115885. This parameter is only valid if the Engine parameter is redis.
  115886. .UNINDENT
  115887. .UNINDENT
  115888. .TP
  115889. .B SnapshotWindow
  115890. The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of
  115891. your node group (shard). If you do not specify this parameter, ElastiCache automatically
  115892. chooses an appropriate time range.
  115893. .sp
  115894. Example: 05:00\-09:00
  115895. .sp
  115896. \fBNOTE:\fP
  115897. .INDENT 7.0
  115898. .INDENT 3.5
  115899. This parameter is only valid if the Engine parameter is redis.
  115900. .UNINDENT
  115901. .UNINDENT
  115902. .TP
  115903. .B AuthToken
  115904. The password used to access a password protected server.
  115905. Password constraints:
  115906. .INDENT 7.0
  115907. .IP \(bu 2
  115908. Must be only printable ASCII characters.
  115909. .IP \(bu 2
  115910. Must be at least 16 characters and no more than 128 characters in length.
  115911. .IP \(bu 2
  115912. Cannot contain any of the following characters: \(aq/\(aq, \(aq"\(aq, or "@".
  115913. .UNINDENT
  115914. .TP
  115915. .B SnapshottingClusterId
  115916. The cache cluster ID that is used as the daily snapshot source for the replication group.
  115917. .TP
  115918. .B NotificationTopicStatus
  115919. The status of the SNS notification topic. Notifications are sent only if the status is active.
  115920. Valid values: active | inactive
  115921. .TP
  115922. .B region
  115923. Region to connect to.
  115924. .TP
  115925. .B key
  115926. Secret key to be used.
  115927. .TP
  115928. .B keyid
  115929. Access key to be used.
  115930. .TP
  115931. .B profile
  115932. A dict with region, key and keyid, or a pillar key (string)
  115933. that contains a dict with region, key and keyid.
  115934. .UNINDENT
  115935. .UNINDENT
  115936. .SS salt.states.boto_cloudfront
  115937. .sp
  115938. Manage CloudFront distributions
  115939. .sp
  115940. New in version 2018.3.0.
  115941. .sp
  115942. Create, update and destroy CloudFront distributions.
  115943. .sp
  115944. This module accepts explicit AWS credentials but can also utilize
  115945. IAM roles assigned to the instance through Instance Profiles.
  115946. Dynamic credentials are then automatically obtained from AWS API
  115947. and no further configuration is necessary.
  115948. More information available \fI\%here\fP\&.
  115949. .sp
  115950. If IAM roles are not used you need to specify them,
  115951. either in a pillar file or in the minion\(aqs config file:
  115952. .INDENT 0.0
  115953. .INDENT 3.5
  115954. .sp
  115955. .nf
  115956. .ft C
  115957. cloudfront.keyid: GKTADJGHEIQSXMKKRBJ08H
  115958. cloudfront.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115959. .ft P
  115960. .fi
  115961. .UNINDENT
  115962. .UNINDENT
  115963. .sp
  115964. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP, and \fBregion\fP via a profile,
  115965. either passed in as a dict, or a string to pull from pillars or minion config:
  115966. .INDENT 0.0
  115967. .INDENT 3.5
  115968. .sp
  115969. .nf
  115970. .ft C
  115971. myprofile:
  115972. keyid: GKTADJGHEIQSXMKKRBJ08H
  115973. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115974. region: us\-east\-1
  115975. .ft P
  115976. .fi
  115977. .UNINDENT
  115978. .UNINDENT
  115979. .INDENT 0.0
  115980. .INDENT 3.5
  115981. .sp
  115982. .nf
  115983. .ft C
  115984. aws:
  115985. region:
  115986. us\-east\-1:
  115987. profile:
  115988. keyid: GKTADJGHEIQSXMKKRBJ08H
  115989. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115990. region: us\-east\-1
  115991. .ft P
  115992. .fi
  115993. .UNINDENT
  115994. .UNINDENT
  115995. .INDENT 0.0
  115996. .TP
  115997. .B depends
  115998. boto3
  115999. .UNINDENT
  116000. .INDENT 0.0
  116001. .TP
  116002. .B salt.states.boto_cloudfront.present(name, config, tags, region=None, key=None, keyid=None, profile=None)
  116003. Ensure the CloudFront distribution is present.
  116004. .INDENT 7.0
  116005. .TP
  116006. .B name (string)
  116007. Name of the CloudFront distribution
  116008. .TP
  116009. .B config (dict)
  116010. Configuration for the distribution
  116011. .TP
  116012. .B tags (dict)
  116013. Tags to associate with the distribution
  116014. .TP
  116015. .B region (string)
  116016. Region to connect to
  116017. .TP
  116018. .B key (string)
  116019. Secret key to use
  116020. .TP
  116021. .B keyid (string)
  116022. Access key to use
  116023. .TP
  116024. .B profile (dict or string)
  116025. A dict with region, key, and keyid,
  116026. or a pillar key (string) that contains such a dict.
  116027. .UNINDENT
  116028. .sp
  116029. Example:
  116030. .INDENT 7.0
  116031. .INDENT 3.5
  116032. .sp
  116033. .nf
  116034. .ft C
  116035. Manage my_distribution CloudFront distribution:
  116036. boto_cloudfront.present:
  116037. \- name: my_distribution
  116038. \- config:
  116039. Comment: \(aqpartial config shown, most parameters elided\(aq
  116040. Enabled: True
  116041. \- tags:
  116042. testing_key: testing_value
  116043. .ft P
  116044. .fi
  116045. .UNINDENT
  116046. .UNINDENT
  116047. .UNINDENT
  116048. .SS salt.states.boto_cognitoidentity module
  116049. .SS Manage CognitoIdentity Functions
  116050. .sp
  116051. New in version 2016.11.0.
  116052. .sp
  116053. Create and destroy CognitoIdentity identity pools. Be aware that this interacts with
  116054. Amazon\(aqs services, and so may incur charges.
  116055. .sp
  116056. This module uses \fBboto3\fP, which can be installed via package, or pip.
  116057. .sp
  116058. This module accepts explicit vpc credentials but can also utilize
  116059. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116060. credentials are then automatically obtained from AWS API and no further
  116061. configuration is necessary. More information available \fI\%here\fP\&.
  116062. .sp
  116063. If IAM roles are not used you need to specify them either in a pillar file or
  116064. in the minion\(aqs config file:
  116065. .INDENT 0.0
  116066. .INDENT 3.5
  116067. .sp
  116068. .nf
  116069. .ft C
  116070. vpc.keyid: GKTADJGHEIQSXMKKRBJ08H
  116071. vpc.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116072. .ft P
  116073. .fi
  116074. .UNINDENT
  116075. .UNINDENT
  116076. .sp
  116077. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile,
  116078. either passed in as a dict, or as a string to pull from pillars or minion
  116079. config:
  116080. .INDENT 0.0
  116081. .INDENT 3.5
  116082. .sp
  116083. .nf
  116084. .ft C
  116085. myprofile:
  116086. keyid: GKTADJGHEIQSXMKKRBJ08H
  116087. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116088. region: us\-east\-1
  116089. .ft P
  116090. .fi
  116091. .UNINDENT
  116092. .UNINDENT
  116093. .INDENT 0.0
  116094. .INDENT 3.5
  116095. .sp
  116096. .nf
  116097. .ft C
  116098. Ensure function exists:
  116099. boto_cognitoidentity.pool_present:
  116100. \- PoolName: my_identity_pool
  116101. \- region: us\-east\-1
  116102. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116103. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116104. .ft P
  116105. .fi
  116106. .UNINDENT
  116107. .UNINDENT
  116108. .INDENT 0.0
  116109. .TP
  116110. .B salt.states.boto_cognitoidentity.pool_absent(name, IdentityPoolName, RemoveAllMatched=False, region=None, key=None, keyid=None, profile=None)
  116111. Ensure cognito identity pool with passed properties is absent.
  116112. .INDENT 7.0
  116113. .TP
  116114. .B name
  116115. The name of the state definition.
  116116. .TP
  116117. .B IdentityPoolName
  116118. Name of the Cognito Identity Pool. Please note that this may
  116119. match multiple pools with the same given name, in which case,
  116120. all will be removed.
  116121. .TP
  116122. .B RemoveAllMatched
  116123. If True, all identity pools with the matching IdentityPoolName
  116124. will be removed. If False and there are more than one identity pool
  116125. with the matching IdentityPoolName, no action will be taken. If False
  116126. and there is only one identity pool with the matching IdentityPoolName,
  116127. the identity pool will be removed.
  116128. .TP
  116129. .B region
  116130. Region to connect to.
  116131. .TP
  116132. .B key
  116133. Secret key to be used.
  116134. .TP
  116135. .B keyid
  116136. Access key to be used.
  116137. .TP
  116138. .B profile
  116139. A dict with region, key and keyid, or a pillar key (string) that
  116140. contains a dict with region, key and keyid.
  116141. .UNINDENT
  116142. .UNINDENT
  116143. .INDENT 0.0
  116144. .TP
  116145. .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)
  116146. Ensure Cognito Identity Pool exists.
  116147. .INDENT 7.0
  116148. .TP
  116149. .B name
  116150. The name of the state definition
  116151. .TP
  116152. .B IdentityPoolName
  116153. Name of the Cognito Identity Pool
  116154. .TP
  116155. .B AuthenticatedRole
  116156. An IAM role name or ARN that will be associated with temporary AWS
  116157. credentials for an authenticated cognito identity.
  116158. .TP
  116159. .B AllowUnauthenticatedIdentities
  116160. Whether to allow anonymous user identities
  116161. .TP
  116162. .B UnauthenticatedRole
  116163. An IAM role name or ARN that will be associated with anonymous
  116164. user identities
  116165. .TP
  116166. .B SupportedLoginProviders
  116167. A dictionary or pillar that contains key:value pairs mapping provider
  116168. names to provider app IDs.
  116169. .TP
  116170. .B DeveloperProviderName
  116171. A string which is the domain by which Cognito will refer to your users.
  116172. This name acts as a placeholder that allows your backend and the Cognito
  116173. service to communicate about the developer provider. Once you have set a
  116174. developer provider name, you cannot change it. Please take care in setting
  116175. this parameter.
  116176. .TP
  116177. .B OpenIdConnectProviderARNs
  116178. A list or pillar name that contains a list of OpenID Connect provider ARNs.
  116179. .TP
  116180. .B region
  116181. Region to connect to.
  116182. .TP
  116183. .B key
  116184. Secret key to be used.
  116185. .TP
  116186. .B keyid
  116187. Access key to be used.
  116188. .TP
  116189. .B profile
  116190. A dict with region, key and keyid, or a pillar key (string) that
  116191. contains a dict with region, key and keyid.
  116192. .UNINDENT
  116193. .UNINDENT
  116194. .SS salt.states.boto_elasticache
  116195. .SS Manage Elasticache
  116196. .sp
  116197. New in version 2014.7.0.
  116198. .sp
  116199. Create, destroy and update Elasticache clusters. Be aware that this interacts
  116200. with Amazon\(aqs services, and so may incur charges.
  116201. .sp
  116202. Note: This module currently only supports creation and deletion of
  116203. elasticache resources and will not modify clusters when their configuration
  116204. changes in your state files.
  116205. .sp
  116206. This module uses \fBboto\fP, which can be installed via package, or pip.
  116207. .sp
  116208. This module accepts explicit elasticache credentials but can also utilize
  116209. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116210. credentials are then automatically obtained from AWS API and no further
  116211. configuration is necessary. More information available \fI\%here\fP\&.
  116212. .sp
  116213. If IAM roles are not used you need to specify them either in a pillar file or
  116214. in the minion\(aqs config file:
  116215. .INDENT 0.0
  116216. .INDENT 3.5
  116217. .sp
  116218. .nf
  116219. .ft C
  116220. elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
  116221. elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116222. .ft P
  116223. .fi
  116224. .UNINDENT
  116225. .UNINDENT
  116226. .sp
  116227. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116228. passed in as a dict, or as a string to pull from pillars or minion config:
  116229. .INDENT 0.0
  116230. .INDENT 3.5
  116231. .sp
  116232. .nf
  116233. .ft C
  116234. myprofile:
  116235. keyid: GKTADJGHEIQSXMKKRBJ08H
  116236. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116237. region: us\-east\-1
  116238. .ft P
  116239. .fi
  116240. .UNINDENT
  116241. .UNINDENT
  116242. .INDENT 0.0
  116243. .INDENT 3.5
  116244. .sp
  116245. .nf
  116246. .ft C
  116247. Ensure myelasticache exists:
  116248. boto_elasticache.present:
  116249. \- name: myelasticache
  116250. \- engine: redis
  116251. \- cache_node_type: cache.t1.micro
  116252. \- num_cache_nodes: 1
  116253. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116254. \- region: us\-east\-1
  116255. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116256. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116257. # Using a profile from pillars
  116258. Ensure myelasticache exists:
  116259. boto_elasticache.present:
  116260. \- name: myelasticache
  116261. \- engine: redis
  116262. \- cache_node_type: cache.t1.micro
  116263. \- num_cache_nodes: 1
  116264. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116265. \- region: us\-east\-1
  116266. \- profile: myprofile
  116267. # Passing in a profile
  116268. Ensure myelasticache exists:
  116269. boto_elasticache.present:
  116270. \- name: myelasticache
  116271. \- engine: redis
  116272. \- cache_node_type: cache.t1.micro
  116273. \- num_cache_nodes: 1
  116274. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116275. \- region: us\-east\-1
  116276. \- profile:
  116277. keyid: GKTADJGHEIQSXMKKRBJ08H
  116278. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116279. .ft P
  116280. .fi
  116281. .UNINDENT
  116282. .UNINDENT
  116283. .INDENT 0.0
  116284. .TP
  116285. .B salt.states.boto_elasticache.absent(name, wait=True, region=None, key=None, keyid=None, profile=None)
  116286. Ensure the named elasticache cluster is deleted.
  116287. .INDENT 7.0
  116288. .TP
  116289. .B name
  116290. Name of the cache cluster.
  116291. .TP
  116292. .B wait
  116293. Boolean. Wait for confirmation from boto that the cluster is in the
  116294. deleting state.
  116295. .TP
  116296. .B region
  116297. Region to connect to.
  116298. .TP
  116299. .B key
  116300. Secret key to be used.
  116301. .TP
  116302. .B keyid
  116303. Access key to be used.
  116304. .TP
  116305. .B profile
  116306. A dict with region, key and keyid, or a pillar key (string)
  116307. that contains a dict with region, key and keyid.
  116308. .UNINDENT
  116309. .UNINDENT
  116310. .INDENT 0.0
  116311. .TP
  116312. .B salt.states.boto_elasticache.cache_cluster_absent(*args, **kwargs)
  116313. .UNINDENT
  116314. .INDENT 0.0
  116315. .TP
  116316. .B salt.states.boto_elasticache.cache_cluster_present(*args, **kwargs)
  116317. .UNINDENT
  116318. .INDENT 0.0
  116319. .TP
  116320. .B salt.states.boto_elasticache.creategroup(name, primary_cluster_id, replication_group_description, wait=None, region=None, key=None, keyid=None, profile=None)
  116321. Ensure the a replication group is create.
  116322. .INDENT 7.0
  116323. .TP
  116324. .B name
  116325. Name of replication group
  116326. .TP
  116327. .B wait
  116328. Waits for the group to be available
  116329. .TP
  116330. .B primary_cluster_id
  116331. Name of the master cache node
  116332. .TP
  116333. .B replication_group_description
  116334. Description for the group
  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)
  116347. that contains a dict with region, key and keyid.
  116348. .UNINDENT
  116349. .UNINDENT
  116350. .INDENT 0.0
  116351. .TP
  116352. .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)
  116353. Ensure the cache cluster exists.
  116354. .INDENT 7.0
  116355. .TP
  116356. .B name
  116357. Name of the cache cluster (cache cluster id).
  116358. .TP
  116359. .B engine
  116360. The name of the cache engine to be used for this cache cluster. Valid
  116361. values are memcached or redis.
  116362. .TP
  116363. .B cache_node_type
  116364. The compute and memory capacity of the nodes in the cache cluster.
  116365. 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
  116366. .TP
  116367. .B num_cache_nodes
  116368. The number of cache nodes that the cache cluster will have.
  116369. .TP
  116370. .B preferred_availability_zone
  116371. The EC2 Availability Zone in which the cache cluster will be created.
  116372. All cache nodes belonging to a cache cluster are placed in the
  116373. preferred availability zone.
  116374. .TP
  116375. .B port
  116376. The port number on which each of the cache nodes will accept
  116377. connections.
  116378. .TP
  116379. .B cache_parameter_group_name
  116380. The name of the cache parameter group to associate with this cache
  116381. cluster. If this argument is omitted, the default cache parameter group
  116382. for the specified engine will be used.
  116383. .TP
  116384. .B cache_security_group_names
  116385. A list of cache security group names to associate with this cache
  116386. cluster. Use this parameter only when you are creating a cluster
  116387. outside of a VPC.
  116388. .TP
  116389. .B replication_group_id
  116390. The replication group to which this cache cluster should belong. If
  116391. this parameter is specified, the cache cluster will be added to the
  116392. specified replication group as a read replica; otherwise, the cache
  116393. cluster will be a standalone primary that is not part of any
  116394. replication group.
  116395. .TP
  116396. .B auto_minor_version_upgrade
  116397. Determines whether minor engine upgrades will be applied automatically
  116398. to the cache cluster during the maintenance window. A value of True
  116399. allows these upgrades to occur; False disables automatic upgrades.
  116400. .TP
  116401. .B security_group_ids
  116402. One or more VPC security groups associated with the cache cluster. Use
  116403. this parameter only when you are creating a cluster in a VPC.
  116404. .TP
  116405. .B cache_subnet_group_name
  116406. The name of the cache subnet group to be used for the cache cluster.
  116407. Use this parameter only when you are creating a cluster in a VPC.
  116408. .TP
  116409. .B engine_version
  116410. The version number of the cache engine to be used for this cluster.
  116411. .TP
  116412. .B notification_topic_arn
  116413. The Amazon Resource Name (ARN) of the Amazon Simple Notification
  116414. Service (SNS) topic to which notifications will be sent. The Amazon SNS
  116415. topic owner must be the same as the cache cluster owner.
  116416. .TP
  116417. .B preferred_maintenance_window
  116418. The weekly time range (in UTC) during which system maintenance can
  116419. occur. Example: sun:05:00\-sun:09:00
  116420. .TP
  116421. .B wait
  116422. Boolean. Wait for confirmation from boto that the cluster is in the
  116423. available state.
  116424. .TP
  116425. .B region
  116426. Region to connect to.
  116427. .TP
  116428. .B key
  116429. Secret key to be used.
  116430. .TP
  116431. .B keyid
  116432. Access key to be used.
  116433. .TP
  116434. .B profile
  116435. A dict with region, key and keyid, or a pillar key (string)
  116436. that contains a dict with region, key and keyid.
  116437. .UNINDENT
  116438. .UNINDENT
  116439. .INDENT 0.0
  116440. .TP
  116441. .B salt.states.boto_elasticache.replication_group_absent(name, tags=None, region=None, key=None, keyid=None, profile=None)
  116442. .UNINDENT
  116443. .INDENT 0.0
  116444. .TP
  116445. .B salt.states.boto_elasticache.replication_group_present(*args, **kwargs)
  116446. .UNINDENT
  116447. .INDENT 0.0
  116448. .TP
  116449. .B salt.states.boto_elasticache.subnet_group_absent(name, tags=None, region=None, key=None, keyid=None, profile=None)
  116450. .UNINDENT
  116451. .INDENT 0.0
  116452. .TP
  116453. .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)
  116454. Ensure ElastiCache subnet group exists.
  116455. .sp
  116456. New in version 2015.8.0.
  116457. .INDENT 7.0
  116458. .TP
  116459. .B name
  116460. The name for the ElastiCache subnet group. This value is stored as a lowercase string.
  116461. .TP
  116462. .B subnet_ids
  116463. A list of VPC subnet IDs for the cache subnet group. Exclusive with subnet_names.
  116464. .TP
  116465. .B subnet_names
  116466. A list of VPC subnet names for the cache subnet group. Exclusive with subnet_ids.
  116467. .TP
  116468. .B description
  116469. Subnet group description.
  116470. .TP
  116471. .B tags
  116472. A list of tags.
  116473. .TP
  116474. .B region
  116475. Region to connect to.
  116476. .TP
  116477. .B key
  116478. Secret key to be used.
  116479. .TP
  116480. .B keyid
  116481. Access key to be used.
  116482. .TP
  116483. .B profile
  116484. A dict with region, key and keyid, or a pillar key (string) that
  116485. contains a dict with region, key and keyid.
  116486. .UNINDENT
  116487. .UNINDENT
  116488. .SS salt.states.boto_elbv2 module
  116489. .sp
  116490. Manage AWS Application Load Balancer
  116491. .sp
  116492. New in version 2017.7.0.
  116493. .sp
  116494. Add and remove targets from an ALB target group.
  116495. .sp
  116496. This module uses \fBboto3\fP, which can be installed via package, or pip.
  116497. .sp
  116498. This module accepts explicit alb credentials but can also utilize
  116499. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116500. credentials are then automatically obtained from AWS API and no further
  116501. configuration is necessary. More information available \fI\%here\fP\&.
  116502. .sp
  116503. If IAM roles are not used you need to specify them either in a pillar file or
  116504. in the minion\(aqs config file:
  116505. .INDENT 0.0
  116506. .INDENT 3.5
  116507. .sp
  116508. .nf
  116509. .ft C
  116510. elbv2.keyid: GKTADJGHEIQSXMKKRBJ08H
  116511. elbv2.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116512. elbv2.region: us\-west\-2
  116513. .ft P
  116514. .fi
  116515. .UNINDENT
  116516. .UNINDENT
  116517. .sp
  116518. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116519. passed in as a dict, or as a string to pull from pillars or minion config:
  116520. .INDENT 0.0
  116521. .INDENT 3.5
  116522. .sp
  116523. .nf
  116524. .ft C
  116525. myprofile:
  116526. keyid: GKTADJGHEIQSXMKKRBJ08H
  116527. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116528. region: us\-east\-1
  116529. .ft P
  116530. .fi
  116531. .UNINDENT
  116532. .UNINDENT
  116533. .INDENT 0.0
  116534. .TP
  116535. .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)
  116536. New in version 2017.11.0.
  116537. .sp
  116538. Create target group if not present.
  116539. .INDENT 7.0
  116540. .TP
  116541. .B name
  116542. (string) \- The name of the target group.
  116543. .TP
  116544. .B protocol
  116545. (string) \- The protocol to use for routing traffic to the targets
  116546. .TP
  116547. .B port
  116548. (int) \- The port on which the targets receive traffic. This port is used unless
  116549. you specify a port override when registering the traffic.
  116550. .TP
  116551. .B vpc_id
  116552. (string) \- The identifier of the virtual private cloud (VPC).
  116553. .TP
  116554. .B health_check_protocol
  116555. (string) \- The protocol the load balancer uses when performing health check on
  116556. targets. The default is the HTTP protocol.
  116557. .TP
  116558. .B health_check_port
  116559. (string) \- The port the load balancer uses when performing health checks on
  116560. targets. The default is \(aqtraffic\-port\(aq, which indicates the port on which each
  116561. target receives traffic from the load balancer.
  116562. .TP
  116563. .B health_check_path
  116564. (string) \- The ping path that is the destination on the targets for health
  116565. checks. The default is /.
  116566. .TP
  116567. .B health_check_interval_seconds
  116568. (integer) \- The approximate amount of time, in seconds, between health checks
  116569. of an individual target. The default is 30 seconds.
  116570. .TP
  116571. .B health_check_timeout_seconds
  116572. (integer) \- The amount of time, in seconds, during which no response from a
  116573. target means a failed health check. The default is 5 seconds.
  116574. .TP
  116575. .B healthy_threshold_count
  116576. (integer) \- The number of consecutive health checks successes required before
  116577. considering an unhealthy target healthy. The default is 5.
  116578. .TP
  116579. .B unhealthy_threshold_count
  116580. (integer) \- The number of consecutive health check failures required before
  116581. considering a target unhealthy. The default is 2.
  116582. .TP
  116583. .B returns
  116584. (bool) \- True on success, False on failure.
  116585. .UNINDENT
  116586. .sp
  116587. CLI example:
  116588. .. code\-block:: yaml
  116589. .INDENT 7.0
  116590. .INDENT 3.5
  116591. .INDENT 0.0
  116592. .TP
  116593. .B create\-target:
  116594. .INDENT 7.0
  116595. .TP
  116596. .B boto_elb2.create_targets_group:
  116597. .INDENT 7.0
  116598. .IP \(bu 2
  116599. name: myALB
  116600. .IP \(bu 2
  116601. protocol: https
  116602. .IP \(bu 2
  116603. port: 443
  116604. .IP \(bu 2
  116605. vpc_id: myVPC
  116606. .UNINDENT
  116607. .UNINDENT
  116608. .UNINDENT
  116609. .UNINDENT
  116610. .UNINDENT
  116611. .UNINDENT
  116612. .INDENT 0.0
  116613. .TP
  116614. .B salt.states.boto_elbv2.delete_target_group(name, region=None, key=None, keyid=None, profile=None)
  116615. Delete target group.
  116616. .INDENT 7.0
  116617. .TP
  116618. .B name
  116619. (string) \- The Amazon Resource Name (ARN) of the resource.
  116620. .TP
  116621. .B returns
  116622. (bool) \- True on success, False on failure.
  116623. .UNINDENT
  116624. .sp
  116625. CLI example:
  116626. .INDENT 7.0
  116627. .INDENT 3.5
  116628. .sp
  116629. .nf
  116630. .ft C
  116631. check\-target:
  116632. boto_elb2.delete_targets_group:
  116633. \- name: myALB
  116634. \- protocol: https
  116635. \- port: 443
  116636. \- vpc_id: myVPC
  116637. .ft P
  116638. .fi
  116639. .UNINDENT
  116640. .UNINDENT
  116641. .UNINDENT
  116642. .INDENT 0.0
  116643. .TP
  116644. .B salt.states.boto_elbv2.targets_deregistered(name, targets, region=None, key=None, keyid=None, profile=None, **kwargs)
  116645. Remove targets to an Application Load Balancer target group.
  116646. .INDENT 7.0
  116647. .TP
  116648. .B name
  116649. The ARN of the Application Load Balancer Target Group to remove targets from.
  116650. .TP
  116651. .B targets
  116652. A list of target IDs or a string of a single target registered to the target group to be removed
  116653. .UNINDENT
  116654. .sp
  116655. New in version Unknown.
  116656. .INDENT 7.0
  116657. .INDENT 3.5
  116658. .sp
  116659. .nf
  116660. .ft C
  116661. remove\-targets:
  116662. boto_elb.targets_deregistered:
  116663. \- name: arn:myloadbalancer
  116664. \- targets:
  116665. \- instance\-id1
  116666. \- instance\-id2
  116667. .ft P
  116668. .fi
  116669. .UNINDENT
  116670. .UNINDENT
  116671. .UNINDENT
  116672. .INDENT 0.0
  116673. .TP
  116674. .B salt.states.boto_elbv2.targets_registered(name, targets, region=None, key=None, keyid=None, profile=None, **kwargs)
  116675. New in version 2017.7.0.
  116676. .sp
  116677. Add targets to an Application Load Balancer target group. This state will not remove targets.
  116678. .INDENT 7.0
  116679. .TP
  116680. .B name
  116681. The ARN of the Application Load Balancer Target Group to add targets to.
  116682. .TP
  116683. .B targets
  116684. A list of target IDs or a string of a single target that this target group should
  116685. distribute traffic to.
  116686. .UNINDENT
  116687. .INDENT 7.0
  116688. .INDENT 3.5
  116689. .sp
  116690. .nf
  116691. .ft C
  116692. add\-targets:
  116693. boto_elb.targets_registered:
  116694. \- name: arn:myloadbalancer
  116695. \- targets:
  116696. \- instance\-id1
  116697. \- instance\-id2
  116698. .ft P
  116699. .fi
  116700. .UNINDENT
  116701. .UNINDENT
  116702. .UNINDENT
  116703. .SS salt.states.boto_kinesis module
  116704. .SS Manage Kinesis Streams
  116705. .sp
  116706. New in version 2017.7.0.
  116707. .sp
  116708. Create and destroy Kinesis streams. Be aware that this interacts with Amazon\(aqs
  116709. services, and so may incur charges.
  116710. .sp
  116711. This module uses \fBboto3\fP, which can be installed via package, or pip.
  116712. .sp
  116713. This module accepts explicit Kinesis credentials but can also utilize
  116714. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116715. credentials are then automatically obtained from AWS API and no further
  116716. configuration is necessary. More information available \fI\%here\fP\&.
  116717. .sp
  116718. If IAM roles are not used you need to specify them either in a pillar file or
  116719. in the minion\(aqs config file:
  116720. .INDENT 0.0
  116721. .INDENT 3.5
  116722. .sp
  116723. .nf
  116724. .ft C
  116725. keyid: GKTADJGHEIQSXMKKRBJ08H
  116726. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116727. region: us\-east\-1
  116728. .ft P
  116729. .fi
  116730. .UNINDENT
  116731. .UNINDENT
  116732. .sp
  116733. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a
  116734. profile, either passed in as a dict, or as a string to pull from
  116735. pillars or minion config:
  116736. .INDENT 0.0
  116737. .INDENT 3.5
  116738. .sp
  116739. .nf
  116740. .ft C
  116741. myprofile:
  116742. keyid: GKTADJGHEIQSXMKKRBJ08H
  116743. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116744. region: us\-east\-1
  116745. .ft P
  116746. .fi
  116747. .UNINDENT
  116748. .UNINDENT
  116749. .INDENT 0.0
  116750. .INDENT 3.5
  116751. .sp
  116752. .nf
  116753. .ft C
  116754. Ensure Kinesis stream does not exist:
  116755. boto_kinesis.absent:
  116756. \- name: new_stream
  116757. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116758. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116759. \- region: us\-east\-1
  116760. Ensure Kinesis stream exists:
  116761. boto_kinesis.present:
  116762. \- name: new_stream
  116763. \- retention_hours: 168
  116764. \- enhanced_monitoring: [\(aqALL\(aq]
  116765. \- num_shards: 2
  116766. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116767. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116768. \- region: us\-east\-1
  116769. .ft P
  116770. .fi
  116771. .UNINDENT
  116772. .UNINDENT
  116773. .INDENT 0.0
  116774. .TP
  116775. .B salt.states.boto_kinesis.absent(name, region=None, key=None, keyid=None, profile=None)
  116776. Delete the kinesis stream, if it exists.
  116777. .INDENT 7.0
  116778. .TP
  116779. .B name (string)
  116780. Stream name
  116781. .TP
  116782. .B region (string)
  116783. Region to connect to.
  116784. .TP
  116785. .B key (string)
  116786. Secret key to be used.
  116787. .TP
  116788. .B keyid (string)
  116789. Access key to be used.
  116790. .TP
  116791. .B profile (dict)
  116792. A dict with region, key and keyid, or a pillar key (string)
  116793. that contains a dict with region, key and keyid.
  116794. .UNINDENT
  116795. .UNINDENT
  116796. .INDENT 0.0
  116797. .TP
  116798. .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)
  116799. Ensure the kinesis stream is properly configured and scaled.
  116800. .INDENT 7.0
  116801. .TP
  116802. .B name (string)
  116803. Stream name
  116804. .TP
  116805. .B retention_hours (int)
  116806. Retain data for this many hours.
  116807. AWS allows minimum 24 hours, maximum 168 hours.
  116808. .TP
  116809. .B enhanced_monitoring (list of string)
  116810. Turn on enhanced monitoring for the specified shard\-level metrics.
  116811. Pass in [\(aqALL\(aq] or True for all metrics, [] or False for no metrics.
  116812. Turn on individual metrics by passing in a list: [\(aqIncomingBytes\(aq, \(aqOutgoingBytes\(aq]
  116813. Note that if only some metrics are supplied, the remaining metrics will be turned off.
  116814. .TP
  116815. .B num_shards (int)
  116816. Reshard stream (if necessary) to this number of shards
  116817. !!!!! Resharding is expensive! Each split or merge can take up to 30 seconds,
  116818. and the reshard method balances the partition space evenly.
  116819. Resharding from N to N+1 can require 2N operations.
  116820. Resharding is much faster with powers of 2 (e.g. 2^N to 2^N+1) !!!!!
  116821. .TP
  116822. .B do_reshard (boolean)
  116823. If set to False, this script will NEVER reshard the stream,
  116824. regardless of other input. Useful for testing.
  116825. .TP
  116826. .B region (string)
  116827. Region to connect to.
  116828. .TP
  116829. .B key (string)
  116830. Secret key to be used.
  116831. .TP
  116832. .B keyid (string)
  116833. Access key to be used.
  116834. .TP
  116835. .B profile (dict)
  116836. A dict with region, key and keyid, or a pillar key (string)
  116837. that contains a dict with region, key and keyid.
  116838. .UNINDENT
  116839. .UNINDENT
  116840. .SS salt.states.boto_lc
  116841. .sp
  116842. Manage Launch Configurations
  116843. .sp
  116844. New in version 2014.7.0.
  116845. .sp
  116846. Create and destroy Launch Configurations. Be aware that this interacts with
  116847. Amazon\(aqs services, and so may incur charges.
  116848. .sp
  116849. A limitation of this module is that you can not modify launch configurations
  116850. once they have been created. If a launch configuration with the specified name
  116851. exists, this module will always report success, even if the specified
  116852. configuration doesn\(aqt match. This is due to a limitation in Amazon\(aqs launch
  116853. configuration API, as it only allows launch configurations to be created and
  116854. deleted.
  116855. .sp
  116856. Also note that a launch configuration that\(aqs in use by an autoscale group can
  116857. not be deleted until the autoscale group is no longer using it. This may affect
  116858. the way in which you want to order your states.
  116859. .sp
  116860. This module uses \fBboto\fP, which can be installed via package, or pip.
  116861. .sp
  116862. This module accepts explicit autoscale credentials but can also utilize
  116863. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116864. credentials are then automatically obtained from AWS API and no further
  116865. configuration is necessary. More information available \fI\%here\fP\&.
  116866. .sp
  116867. If IAM roles are not used you need to specify them either in a pillar file or
  116868. in the minion\(aqs config file:
  116869. .INDENT 0.0
  116870. .INDENT 3.5
  116871. .sp
  116872. .nf
  116873. .ft C
  116874. asg.keyid: GKTADJGHEIQSXMKKRBJ08H
  116875. asg.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116876. .ft P
  116877. .fi
  116878. .UNINDENT
  116879. .UNINDENT
  116880. .sp
  116881. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116882. passed in as a dict, or as a string to pull from pillars or minion config:
  116883. .INDENT 0.0
  116884. .INDENT 3.5
  116885. .sp
  116886. .nf
  116887. .ft C
  116888. myprofile:
  116889. keyid: GKTADJGHEIQSXMKKRBJ08H
  116890. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116891. region: us\-east\-1
  116892. .ft P
  116893. .fi
  116894. .UNINDENT
  116895. .UNINDENT
  116896. .sp
  116897. Credential information is shared with autoscale groups as launch configurations
  116898. and autoscale groups are completely dependent on each other.
  116899. .INDENT 0.0
  116900. .INDENT 3.5
  116901. .sp
  116902. .nf
  116903. .ft C
  116904. Ensure mylc exists:
  116905. boto_lc.present:
  116906. \- name: mylc
  116907. \- image_id: ami\-0b9c9f62
  116908. \- key_name: mykey
  116909. \- security_groups:
  116910. \- mygroup
  116911. \- instance_type: m1.small
  116912. \- instance_monitoring: true
  116913. \- block_device_mappings:
  116914. \- \(aq/dev/sda1\(aq:
  116915. size: 20
  116916. volume_type: \(aqio1\(aq
  116917. iops: 220
  116918. delete_on_termination: true
  116919. \- cloud_init:
  116920. boothooks:
  116921. \(aqdisable\-master.sh\(aq: |
  116922. #!/bin/bash
  116923. echo "manual" > /etc/init/salt\-master.override
  116924. scripts:
  116925. \(aqrun_salt.sh\(aq: |
  116926. #!/bin/bash
  116927. add\-apt\-repository \-y ppa:saltstack/salt
  116928. apt\-get update
  116929. apt\-get install \-y salt\-minion
  116930. salt\-call state.highstate
  116931. \- region: us\-east\-1
  116932. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116933. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116934. # Using a profile from pillars.
  116935. Ensure mylc exists:
  116936. boto_lc.present:
  116937. \- name: mylc
  116938. \- image_id: ami\-0b9c9f62
  116939. \- profile: myprofile
  116940. # Passing in a profile.
  116941. Ensure mylc exists:
  116942. boto_lc.present:
  116943. \- name: mylc
  116944. \- image_id: ami\-0b9c9f62
  116945. \- profile:
  116946. keyid: GKTADJGHEIQSXMKKRBJ08H
  116947. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116948. region: us\-east\-1
  116949. .ft P
  116950. .fi
  116951. .UNINDENT
  116952. .UNINDENT
  116953. .INDENT 0.0
  116954. .TP
  116955. .B salt.states.boto_lc.absent(name, region=None, key=None, keyid=None, profile=None)
  116956. Ensure the named launch configuration is deleted.
  116957. .INDENT 7.0
  116958. .TP
  116959. .B name
  116960. Name of the launch configuration.
  116961. .TP
  116962. .B region
  116963. The region to connect to.
  116964. .TP
  116965. .B key
  116966. Secret key to be used.
  116967. .TP
  116968. .B keyid
  116969. Access key to be used.
  116970. .TP
  116971. .B profile
  116972. A dict with region, key and keyid, or a pillar key (string)
  116973. that contains a dict with region, key and keyid.
  116974. .UNINDENT
  116975. .UNINDENT
  116976. .INDENT 0.0
  116977. .TP
  116978. .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)
  116979. Ensure the launch configuration exists.
  116980. .INDENT 7.0
  116981. .TP
  116982. .B name
  116983. Name of the launch configuration.
  116984. .TP
  116985. .B image_id
  116986. AMI to use for instances. AMI must exist or creation of the launch
  116987. configuration will fail.
  116988. .TP
  116989. .B key_name
  116990. Name of the EC2 key pair to use for instances. Key must exist or
  116991. creation of the launch configuration will fail.
  116992. .TP
  116993. .B vpc_id
  116994. The VPC id where the security groups are defined. Only necessary when
  116995. using named security groups that exist outside of the default VPC.
  116996. Mutually exclusive with vpc_name.
  116997. .TP
  116998. .B vpc_name
  116999. Name of the VPC where the security groups are defined. Only Necessary
  117000. when using named security groups that exist outside of the default VPC.
  117001. Mutually exclusive with vpc_id.
  117002. .TP
  117003. .B security_groups
  117004. List of Names or security group id’s of the security groups with which
  117005. to associate the EC2 instances or VPC instances, respectively. Security
  117006. groups must exist, or creation of the launch configuration will fail.
  117007. .TP
  117008. .B user_data
  117009. The user data available to launched EC2 instances.
  117010. .TP
  117011. .B cloud_init
  117012. A dict of cloud_init configuration. Currently supported keys:
  117013. boothooks, scripts and cloud\-config.
  117014. Mutually exclusive with user_data.
  117015. .TP
  117016. .B instance_type
  117017. The instance type. ex: m1.small.
  117018. .TP
  117019. .B kernel_id
  117020. The kernel id for the instance.
  117021. .TP
  117022. .B ramdisk_id
  117023. The RAM disk ID for the instance.
  117024. .TP
  117025. .B block_device_mappings
  117026. A dict of block device mappings that contains a dict
  117027. with volume_type, delete_on_termination, iops, size, encrypted,
  117028. snapshot_id.
  117029. .INDENT 7.0
  117030. .TP
  117031. .B volume_type
  117032. Indicates what volume type to use. Valid values are standard, io1, gp2.
  117033. Default is standard.
  117034. .TP
  117035. .B delete_on_termination
  117036. Whether the volume should be explicitly marked for deletion when its instance is
  117037. terminated (True), or left around (False). If not provided, or None is explicitly passed,
  117038. the default AWS behaviour is used, which is True for ROOT volumes of instances, and
  117039. False for all others.
  117040. .TP
  117041. .B iops
  117042. For Provisioned IOPS (SSD) volumes only. The number of I/O operations per
  117043. second (IOPS) to provision for the volume.
  117044. .TP
  117045. .B size
  117046. Desired volume size (in GiB).
  117047. .TP
  117048. .B encrypted
  117049. Indicates whether the volume should be encrypted. Encrypted EBS volumes must
  117050. be attached to instances that support Amazon EBS encryption. Volumes that are
  117051. created from encrypted snapshots are automatically encrypted. There is no way
  117052. to create an encrypted volume from an unencrypted snapshot or an unencrypted
  117053. volume from an encrypted snapshot.
  117054. .UNINDENT
  117055. .TP
  117056. .B instance_monitoring
  117057. Whether instances in group are launched with detailed monitoring.
  117058. .TP
  117059. .B spot_price
  117060. The spot price you are bidding. Only applies if you are building an
  117061. autoscaling group with spot instances.
  117062. .TP
  117063. .B instance_profile_name
  117064. The name or the Amazon Resource Name (ARN) of the instance profile
  117065. associated with the IAM role for the instance. Instance profile must
  117066. exist or the creation of the launch configuration will fail.
  117067. .TP
  117068. .B ebs_optimized
  117069. Specifies whether the instance is optimized for EBS I/O (true) or not
  117070. (false).
  117071. .TP
  117072. .B associate_public_ip_address
  117073. Used for Auto Scaling groups that launch instances into an Amazon
  117074. Virtual Private Cloud. Specifies whether to assign a public IP address
  117075. to each instance launched in a Amazon VPC.
  117076. .TP
  117077. .B region
  117078. The region to connect to.
  117079. .TP
  117080. .B key
  117081. Secret key to be used.
  117082. .TP
  117083. .B keyid
  117084. Access key to be used.
  117085. .TP
  117086. .B profile
  117087. A dict with region, key and keyid, or a pillar key (string)
  117088. that contains a dict with region, key and keyid.
  117089. .UNINDENT
  117090. .UNINDENT
  117091. .SS salt.states.boto_sns
  117092. .sp
  117093. Manage SNS Topics
  117094. .sp
  117095. Create and destroy SNS topics. Be aware that this interacts with Amazon\(aqs
  117096. services, and so may incur charges.
  117097. .sp
  117098. This module uses \fBboto\fP, which can be installed via package, or pip.
  117099. .sp
  117100. This module accepts explicit AWS credentials but can also utilize
  117101. IAM roles assigned to the instance through Instance Profiles. Dynamic
  117102. credentials are then automatically obtained from AWS API and no further
  117103. configuration is necessary. More information available \fI\%here\fP\&.
  117104. .sp
  117105. If IAM roles are not used you need to specify them either in a pillar file or
  117106. in the minion\(aqs config file:
  117107. .INDENT 0.0
  117108. .INDENT 3.5
  117109. .sp
  117110. .nf
  117111. .ft C
  117112. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  117113. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117114. .ft P
  117115. .fi
  117116. .UNINDENT
  117117. .UNINDENT
  117118. .sp
  117119. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  117120. passed in as a dict, or as a string to pull from pillars or minion config:
  117121. .INDENT 0.0
  117122. .INDENT 3.5
  117123. .sp
  117124. .nf
  117125. .ft C
  117126. myprofile:
  117127. keyid: GKTADJGHEIQSXMKKRBJ08H
  117128. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117129. region: us\-east\-1
  117130. .ft P
  117131. .fi
  117132. .UNINDENT
  117133. .UNINDENT
  117134. .INDENT 0.0
  117135. .INDENT 3.5
  117136. .sp
  117137. .nf
  117138. .ft C
  117139. mytopic:
  117140. boto_sns.present:
  117141. \- region: us\-east\-1
  117142. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  117143. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117144. # Using a profile from pillars
  117145. mytopic:
  117146. boto_sns.present:
  117147. \- region: us\-east\-1
  117148. \- profile: mysnsprofile
  117149. # Passing in a profile
  117150. mytopic:
  117151. boto_sns.present:
  117152. \- region: us\-east\-1
  117153. \- profile:
  117154. keyid: GKTADJGHEIQSXMKKRBJ08H
  117155. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117156. .ft P
  117157. .fi
  117158. .UNINDENT
  117159. .UNINDENT
  117160. .INDENT 0.0
  117161. .TP
  117162. .B salt.states.boto_sns.absent(name, region=None, key=None, keyid=None, profile=None, unsubscribe=False)
  117163. Ensure the named sns topic is deleted.
  117164. .INDENT 7.0
  117165. .TP
  117166. .B name
  117167. Name of the SNS topic.
  117168. .TP
  117169. .B region
  117170. Region to connect to.
  117171. .TP
  117172. .B key
  117173. Secret key to be used.
  117174. .TP
  117175. .B keyid
  117176. Access key to be used.
  117177. .TP
  117178. .B profile
  117179. A dict with region, key and keyid, or a pillar key (string)
  117180. that contains a dict with region, key and keyid.
  117181. .TP
  117182. .B unsubscribe
  117183. If True, unsubscribe all subcriptions to the SNS topic before
  117184. deleting the SNS topic
  117185. .sp
  117186. New in version 2016.11.0.
  117187. .UNINDENT
  117188. .UNINDENT
  117189. .INDENT 0.0
  117190. .TP
  117191. .B salt.states.boto_sns.present(name, subscriptions=None, region=None, key=None, keyid=None, profile=None)
  117192. Ensure the SNS topic exists.
  117193. .INDENT 7.0
  117194. .TP
  117195. .B name
  117196. Name of the SNS topic.
  117197. .TP
  117198. .B subscriptions
  117199. List of SNS subscriptions.
  117200. .sp
  117201. Each subscription is a dictionary with a protocol and endpoint key:
  117202. .INDENT 7.0
  117203. .INDENT 3.5
  117204. .sp
  117205. .nf
  117206. .ft C
  117207. [
  117208. {\(aqprotocol\(aq: \(aqhttps\(aq, \(aqendpoint\(aq: \(aqhttps://www.example.com/sns\-endpoint\(aq},
  117209. {\(aqprotocol\(aq: \(aqsqs\(aq, \(aqendpoint\(aq: \(aqarn:aws:sqs:us\-west\-2:123456789012:MyQueue\(aq}
  117210. ]
  117211. .ft P
  117212. .fi
  117213. .UNINDENT
  117214. .UNINDENT
  117215. .TP
  117216. .B region
  117217. Region to connect to.
  117218. .TP
  117219. .B key
  117220. Secret key to be used.
  117221. .TP
  117222. .B keyid
  117223. Access key to be used.
  117224. .TP
  117225. .B profile
  117226. A dict with region, key and keyid, or a pillar key (string)
  117227. that contains a dict with region, key and keyid.
  117228. .UNINDENT
  117229. .UNINDENT
  117230. .SS salt.states.bower
  117231. .SS Installation of Bower Packages
  117232. .sp
  117233. These states manage the installed packages using Bower.
  117234. Note that npm, git and bower must be installed for these states to be
  117235. available, so bower states should include requisites to pkg.installed states
  117236. for the packages which provide npm and git (simply \fBnpm\fP and \fBgit\fP in most
  117237. cases), and npm.installed state for the package which provides bower.
  117238. .sp
  117239. Example:
  117240. .INDENT 0.0
  117241. .INDENT 3.5
  117242. .sp
  117243. .nf
  117244. .ft C
  117245. npm:
  117246. pkg.installed
  117247. git:
  117248. pkg.installed
  117249. bower:
  117250. npm.installed
  117251. require:
  117252. \- pkg: npm
  117253. \- pkg: git
  117254. underscore:
  117255. bower.installed:
  117256. \- dir: /path/to/project
  117257. \- require:
  117258. \- npm: bower
  117259. .ft P
  117260. .fi
  117261. .UNINDENT
  117262. .UNINDENT
  117263. .INDENT 0.0
  117264. .TP
  117265. .B salt.states.bower.bootstrap(name, user=None)
  117266. Bootstraps a frontend distribution.
  117267. .sp
  117268. Will execute \(aqbower install\(aq on the specified directory.
  117269. .INDENT 7.0
  117270. .TP
  117271. .B user
  117272. The user to run Bower with
  117273. .UNINDENT
  117274. .UNINDENT
  117275. .INDENT 0.0
  117276. .TP
  117277. .B salt.states.bower.installed(name, dir, pkgs=None, user=None, env=None)
  117278. Verify that the given package is installed and is at the correct version
  117279. (if specified).
  117280. .INDENT 7.0
  117281. .INDENT 3.5
  117282. .sp
  117283. .nf
  117284. .ft C
  117285. underscore:
  117286. bower.installed:
  117287. \- dir: /path/to/project
  117288. \- user: someuser
  117289. jquery#2.0:
  117290. bower.installed:
  117291. \- dir: /path/to/project
  117292. .ft P
  117293. .fi
  117294. .UNINDENT
  117295. .UNINDENT
  117296. .INDENT 7.0
  117297. .TP
  117298. .B name
  117299. The package to install
  117300. .TP
  117301. .B dir
  117302. The target directory in which to install the package
  117303. .TP
  117304. .B pkgs
  117305. A list of packages to install with a single Bower invocation;
  117306. specifying this argument will ignore the \fBname\fP argument
  117307. .TP
  117308. .B user
  117309. The user to run Bower with
  117310. .TP
  117311. .B env
  117312. A list of environment variables to be set prior to execution. The
  117313. format is the same as the \fBcmd.run\fP\&.
  117314. state function.
  117315. .UNINDENT
  117316. .UNINDENT
  117317. .INDENT 0.0
  117318. .TP
  117319. .B salt.states.bower.pruned(name, user=None, env=None)
  117320. New in version 2017.7.0.
  117321. .sp
  117322. Cleans up local bower_components directory.
  117323. .sp
  117324. Will execute \(aqbower prune\(aq on the specified directory (param: name)
  117325. .INDENT 7.0
  117326. .TP
  117327. .B user
  117328. The user to run Bower with
  117329. .UNINDENT
  117330. .UNINDENT
  117331. .INDENT 0.0
  117332. .TP
  117333. .B salt.states.bower.removed(name, dir, user=None)
  117334. Verify that the given package is not installed.
  117335. .INDENT 7.0
  117336. .TP
  117337. .B dir
  117338. The target directory in which to install the package
  117339. .TP
  117340. .B user
  117341. The user to run Bower with
  117342. .UNINDENT
  117343. .UNINDENT
  117344. .SS salt.states.btrfs
  117345. .INDENT 0.0
  117346. .TP
  117347. .B maintainer
  117348. Alberto Planas <\fI\%aplanas@suse.com\fP>
  117349. .TP
  117350. .B maturity
  117351. new
  117352. .TP
  117353. .B depends
  117354. None
  117355. .TP
  117356. .B platform
  117357. Linux
  117358. .UNINDENT
  117359. .INDENT 0.0
  117360. .TP
  117361. .B salt.states.btrfs.properties(*args, **kwargs)
  117362. Makes sure that a list of properties are set in a subvolume, file
  117363. or device.
  117364. .INDENT 7.0
  117365. .TP
  117366. .B name
  117367. Name of the object to change
  117368. .TP
  117369. .B device
  117370. Device where the object lives, if None, the device will be in
  117371. name
  117372. .TP
  117373. .B use_default
  117374. If True, this subvolume will be resolved to the default
  117375. subvolume assigned during the create operation
  117376. .TP
  117377. .B properties
  117378. Dictionary of properties
  117379. .UNINDENT
  117380. .sp
  117381. Valid properties are \(aqro\(aq, \(aqlabel\(aq or \(aqcompression\(aq. Check the
  117382. documentation to see where those properties are valid for each
  117383. object.
  117384. .UNINDENT
  117385. .INDENT 0.0
  117386. .TP
  117387. .B salt.states.btrfs.subvolume_created(*args, **kwargs)
  117388. Makes sure that a btrfs subvolume is present.
  117389. .INDENT 7.0
  117390. .TP
  117391. .B name
  117392. Name of the subvolume to add
  117393. .TP
  117394. .B device
  117395. Device where to create the subvolume
  117396. .TP
  117397. .B qgroupids
  117398. Add the newly created subcolume to a qgroup. This parameter
  117399. is a list
  117400. .TP
  117401. .B set_default
  117402. If True, this new subvolume will be set as default when
  117403. mounted, unless subvol option in mount is used
  117404. .TP
  117405. .B copy_on_write
  117406. If false, set the subvolume with chattr +C
  117407. .TP
  117408. .B force_set_default
  117409. If false and the subvolume is already present, it will not
  117410. force it as default if \fBset_default\fP is True
  117411. .UNINDENT
  117412. .UNINDENT
  117413. .INDENT 0.0
  117414. .TP
  117415. .B salt.states.btrfs.subvolume_deleted(*args, **kwargs)
  117416. Makes sure that a btrfs subvolume is removed.
  117417. .INDENT 7.0
  117418. .TP
  117419. .B name
  117420. Name of the subvolume to remove
  117421. .TP
  117422. .B device
  117423. Device where to remove the subvolume
  117424. .TP
  117425. .B commit
  117426. Wait until the transaction is over
  117427. .UNINDENT
  117428. .UNINDENT
  117429. .SS salt.states.chef
  117430. .SS Execute Chef client runs
  117431. .sp
  117432. Run chef\-client or chef\-solo
  117433. .INDENT 0.0
  117434. .INDENT 3.5
  117435. .sp
  117436. .nf
  117437. .ft C
  117438. my\-chef\-run:
  117439. chef.client:
  117440. \- override\-runlist: \(aqdemo1,demo2\(aq
  117441. \- server: \(aqhttps://chef.domain.com\(aq
  117442. default\-chef\-run:
  117443. chef.client: []
  117444. my\-solo\-run:
  117445. chef.solo:
  117446. \- environment: dev
  117447. .ft P
  117448. .fi
  117449. .UNINDENT
  117450. .UNINDENT
  117451. .INDENT 0.0
  117452. .TP
  117453. .B salt.states.chef.client(name, **kwargs)
  117454. .INDENT 7.0
  117455. .TP
  117456. .B name
  117457. Unique identifier for the state. Does not affect the Chef run.
  117458. .TP
  117459. .B server
  117460. The chef server URL
  117461. .TP
  117462. .B client_key
  117463. Set the client key file location
  117464. .TP
  117465. .B config
  117466. The configuration file to use
  117467. .TP
  117468. .B config\-file\-jail
  117469. Directory under which config files are allowed to be loaded
  117470. (no client.rb or knife.rb outside this path will be loaded).
  117471. .TP
  117472. .B environment
  117473. Set the Chef Environment on the node
  117474. .TP
  117475. .B group
  117476. Group to set privilege to
  117477. .TP
  117478. .B json\-attributes
  117479. Load attributes from a JSON file or URL
  117480. .TP
  117481. .B localmode
  117482. Point chef\-client at local repository if True
  117483. .TP
  117484. .B log_level
  117485. Set the log level (debug, info, warn, error, fatal)
  117486. .TP
  117487. .B logfile
  117488. Set the log file location
  117489. .TP
  117490. .B node\-name
  117491. The node name for this client
  117492. .TP
  117493. .B override\-runlist
  117494. Replace current run list with specified items for a single run
  117495. .TP
  117496. .B pid
  117497. Set the PID file location, defaults to /tmp/chef\-client.pid
  117498. .TP
  117499. .B run\-lock\-timeout
  117500. Set maximum duration to wait for another client run to finish,
  117501. default is indefinitely.
  117502. .TP
  117503. .B runlist
  117504. Permanently replace current run list with specified items
  117505. .TP
  117506. .B user
  117507. User to set privilege to
  117508. .TP
  117509. .B validation_key
  117510. Set the validation key file location, used for registering new clients
  117511. .UNINDENT
  117512. .UNINDENT
  117513. .INDENT 0.0
  117514. .TP
  117515. .B salt.states.chef.solo(name, **kwargs)
  117516. .INDENT 7.0
  117517. .TP
  117518. .B name
  117519. Unique identifier for the state. Does not affect the Chef run.
  117520. .TP
  117521. .B config
  117522. The configuration file to use
  117523. .TP
  117524. .B environment
  117525. Set the Chef Environment on the node
  117526. .TP
  117527. .B group
  117528. Group to set privilege to
  117529. .TP
  117530. .B json\-attributes
  117531. Load attributes from a JSON file or URL
  117532. .TP
  117533. .B log_level
  117534. Set the log level (debug, info, warn, error, fatal)
  117535. .TP
  117536. .B logfile
  117537. Set the log file location
  117538. .TP
  117539. .B node\-name
  117540. The node name for this client
  117541. .TP
  117542. .B override\-runlist
  117543. Replace current run list with specified items for a single run
  117544. .TP
  117545. .B recipe\-url
  117546. Pull down a remote gzipped tarball of recipes and untar it to
  117547. the cookbook cache
  117548. .TP
  117549. .B run\-lock\-timeout
  117550. Set maximum duration to wait for another client run to finish,
  117551. default is indefinitely.
  117552. .TP
  117553. .B user
  117554. User to set privilege to
  117555. .UNINDENT
  117556. .UNINDENT
  117557. .SS salt.states.chronos_job module
  117558. .sp
  117559. Configure Chronos jobs via a salt proxy.
  117560. .INDENT 0.0
  117561. .INDENT 3.5
  117562. .sp
  117563. .nf
  117564. .ft C
  117565. my_job:
  117566. chronos_job.config:
  117567. \- config:
  117568. schedule: "R//PT2S"
  117569. command: "echo \(aqhi\(aq"
  117570. owner: "me@example.com"
  117571. .ft P
  117572. .fi
  117573. .UNINDENT
  117574. .UNINDENT
  117575. .sp
  117576. New in version 2015.8.2.
  117577. .INDENT 0.0
  117578. .TP
  117579. .B salt.states.chronos_job.absent(name)
  117580. Ensure that the chronos job with the given name is not present.
  117581. .INDENT 7.0
  117582. .TP
  117583. .B Parameters
  117584. \fBname\fP \-\- The app name
  117585. .TP
  117586. .B Returns
  117587. A standard Salt changes dictionary
  117588. .UNINDENT
  117589. .UNINDENT
  117590. .INDENT 0.0
  117591. .TP
  117592. .B salt.states.chronos_job.config(name, config)
  117593. Ensure that the chronos job with the given name is present and is configured
  117594. to match the given config values.
  117595. .INDENT 7.0
  117596. .TP
  117597. .B Parameters
  117598. .INDENT 7.0
  117599. .IP \(bu 2
  117600. \fBname\fP \-\- The job name
  117601. .IP \(bu 2
  117602. \fBconfig\fP \-\- The configuration to apply (dict)
  117603. .UNINDENT
  117604. .TP
  117605. .B Returns
  117606. A standard Salt changes dictionary
  117607. .UNINDENT
  117608. .UNINDENT
  117609. .SS salt.states.cimc
  117610. .sp
  117611. A state module to manage Cisco UCS chassis devices.
  117612. .INDENT 0.0
  117613. .TP
  117614. .B codeauthor
  117615. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  117616. .TP
  117617. .B maturity
  117618. new
  117619. .TP
  117620. .B depends
  117621. none
  117622. .TP
  117623. .B platform
  117624. unix
  117625. .UNINDENT
  117626. .SS About
  117627. .sp
  117628. This state module was designed to handle connections to a Cisco Unified Computing System (UCS) chassis. This module
  117629. relies on the CIMC proxy module to interface with the device.
  117630. .sp
  117631. \fBSEE ALSO:\fP
  117632. .INDENT 0.0
  117633. .INDENT 3.5
  117634. \fBCIMC Proxy Module\fP
  117635. .UNINDENT
  117636. .UNINDENT
  117637. .INDENT 0.0
  117638. .TP
  117639. .B salt.states.cimc.hostname(name, hostname=None)
  117640. Ensures that the hostname is set to the specified value.
  117641. .sp
  117642. New in version 2019.2.0.
  117643. .sp
  117644. name: The name of the module function to execute.
  117645. .sp
  117646. hostname(str): The hostname of the server.
  117647. .sp
  117648. SLS Example:
  117649. .INDENT 7.0
  117650. .INDENT 3.5
  117651. .sp
  117652. .nf
  117653. .ft C
  117654. set_name:
  117655. cimc.hostname:
  117656. \- hostname: foobar
  117657. .ft P
  117658. .fi
  117659. .UNINDENT
  117660. .UNINDENT
  117661. .UNINDENT
  117662. .INDENT 0.0
  117663. .TP
  117664. .B salt.states.cimc.logging_levels(name, remote=None, local=None)
  117665. Ensures that the logging levels are set on the device. The logging levels
  117666. must match the following options: emergency, alert, critical, error, warning,
  117667. notice, informational, debug.
  117668. .sp
  117669. New in version 2019.2.0.
  117670. .sp
  117671. name: The name of the module function to execute.
  117672. .sp
  117673. remote(str): The logging level for SYSLOG logs.
  117674. .sp
  117675. local(str): The logging level for the local device.
  117676. .sp
  117677. SLS Example:
  117678. .INDENT 7.0
  117679. .INDENT 3.5
  117680. .sp
  117681. .nf
  117682. .ft C
  117683. logging_levels:
  117684. cimc.logging_levels:
  117685. \- remote: informational
  117686. \- local: notice
  117687. .ft P
  117688. .fi
  117689. .UNINDENT
  117690. .UNINDENT
  117691. .UNINDENT
  117692. .INDENT 0.0
  117693. .TP
  117694. .B salt.states.cimc.ntp(name, servers)
  117695. Ensures that the NTP servers are configured. Servers are provided as an individual string or list format. Only four
  117696. NTP servers will be reviewed. Any entries past four will be ignored.
  117697. .sp
  117698. name: The name of the module function to execute.
  117699. .sp
  117700. servers(str, list): The IP address or FQDN of the NTP servers.
  117701. .sp
  117702. SLS Example:
  117703. .INDENT 7.0
  117704. .INDENT 3.5
  117705. .sp
  117706. .nf
  117707. .ft C
  117708. ntp_configuration_list:
  117709. cimc.ntp:
  117710. \- servers:
  117711. \- foo.bar.com
  117712. \- 10.10.10.10
  117713. ntp_configuration_str:
  117714. cimc.ntp:
  117715. \- servers: foo.bar.com
  117716. .ft P
  117717. .fi
  117718. .UNINDENT
  117719. .UNINDENT
  117720. .UNINDENT
  117721. .INDENT 0.0
  117722. .TP
  117723. .B salt.states.cimc.power_configuration(name, policy=None, delayType=None, delayValue=None)
  117724. Ensures that the power configuration is configured on the system. This is
  117725. only available on some C\-Series servers.
  117726. .sp
  117727. New in version 2019.2.0.
  117728. .sp
  117729. name: The name of the module function to execute.
  117730. .sp
  117731. policy(str): The action to be taken when chassis power is restored after
  117732. an unexpected power loss. This can be one of the following:
  117733. .INDENT 7.0
  117734. .INDENT 3.5
  117735. reset: The server is allowed to boot up normally when power is
  117736. restored. The server can restart immediately or, optionally, after a
  117737. fixed or random delay.
  117738. .sp
  117739. stay\-off: The server remains off until it is manually restarted.
  117740. .sp
  117741. last\-state: The server restarts and the system attempts to restore
  117742. any processes that were running before power was lost.
  117743. .UNINDENT
  117744. .UNINDENT
  117745. .sp
  117746. delayType(str): If the selected policy is reset, the restart can be
  117747. delayed with this option. This can be one of the following:
  117748. .INDENT 7.0
  117749. .INDENT 3.5
  117750. fixed: The server restarts after a fixed delay.
  117751. .sp
  117752. random: The server restarts after a random delay.
  117753. .UNINDENT
  117754. .UNINDENT
  117755. .sp
  117756. delayValue(int): If a fixed delay is selected, once chassis power is
  117757. restored and the Cisco IMC has finished rebooting, the system waits for
  117758. the specified number of seconds before restarting the server. Enter an
  117759. integer between 0 and 240.
  117760. .sp
  117761. SLS Example:
  117762. .INDENT 7.0
  117763. .INDENT 3.5
  117764. .sp
  117765. .nf
  117766. .ft C
  117767. reset_power:
  117768. cimc.power_configuration:
  117769. \- policy: reset
  117770. \- delayType: fixed
  117771. \- delayValue: 0
  117772. power_off:
  117773. cimc.power_configuration:
  117774. \- policy: stay\-off
  117775. .ft P
  117776. .fi
  117777. .UNINDENT
  117778. .UNINDENT
  117779. .UNINDENT
  117780. .INDENT 0.0
  117781. .TP
  117782. .B salt.states.cimc.syslog(name, primary=None, secondary=None)
  117783. Ensures that the syslog servers are set to the specified values. A value of None will be ignored.
  117784. .sp
  117785. name: The name of the module function to execute.
  117786. .sp
  117787. primary(str): The IP address or FQDN of the primary syslog server.
  117788. .sp
  117789. secondary(str): The IP address or FQDN of the secondary syslog server.
  117790. .sp
  117791. SLS Example:
  117792. .INDENT 7.0
  117793. .INDENT 3.5
  117794. .sp
  117795. .nf
  117796. .ft C
  117797. syslog_configuration:
  117798. cimc.syslog:
  117799. \- primary: 10.10.10.10
  117800. \- secondary: foo.bar.com
  117801. .ft P
  117802. .fi
  117803. .UNINDENT
  117804. .UNINDENT
  117805. .UNINDENT
  117806. .INDENT 0.0
  117807. .TP
  117808. .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)
  117809. Ensures that a user is configured on the device. Due to being unable to
  117810. verify the user password. This is a forced operation.
  117811. .sp
  117812. New in version 2019.2.0.
  117813. .sp
  117814. name: The name of the module function to execute.
  117815. .sp
  117816. id(int): The user ID slot on the device.
  117817. .sp
  117818. user(str): The username of the user.
  117819. .sp
  117820. priv(str): The privilege level of the user.
  117821. .sp
  117822. password(str): The password of the user.
  117823. .sp
  117824. status(str): The status of the user. Can be either active or inactive.
  117825. .sp
  117826. SLS Example:
  117827. .INDENT 7.0
  117828. .INDENT 3.5
  117829. .sp
  117830. .nf
  117831. .ft C
  117832. user_configuration:
  117833. cimc.user:
  117834. \- id: 11
  117835. \- user: foo
  117836. \- priv: admin
  117837. \- password: mypassword
  117838. \- status: active
  117839. .ft P
  117840. .fi
  117841. .UNINDENT
  117842. .UNINDENT
  117843. .UNINDENT
  117844. .SS salt.states.composer
  117845. .SS Installation of Composer Packages
  117846. .sp
  117847. These states manage the installed packages for composer for PHP. Note that
  117848. either composer is installed and accessible via a bin directory or you can pass
  117849. the location of composer in the state.
  117850. .INDENT 0.0
  117851. .INDENT 3.5
  117852. .sp
  117853. .nf
  117854. .ft C
  117855. get\-composer:
  117856. cmd.run:
  117857. \- name: \(aqCURL=\(gawhich curl\(ga; $CURL \-sS https://getcomposer.org/installer | php\(aq
  117858. \- unless: test \-f /usr/local/bin/composer
  117859. \- cwd: /root/
  117860. install\-composer:
  117861. cmd.wait:
  117862. \- name: mv /root/composer.phar /usr/local/bin/composer
  117863. \- cwd: /root/
  117864. \- watch:
  117865. \- cmd: get\-composer
  117866. /path/to/project:
  117867. composer.installed:
  117868. \- no_dev: true
  117869. \- require:
  117870. \- cmd: install\-composer
  117871. # Without composer installed in your PATH
  117872. # Note: composer.phar must be executable for state to work properly
  117873. /path/to/project:
  117874. composer.installed:
  117875. \- composer: /path/to/composer.phar
  117876. \- php: /usr/local/bin/php
  117877. \- no_dev: true
  117878. .ft P
  117879. .fi
  117880. .UNINDENT
  117881. .UNINDENT
  117882. .INDENT 0.0
  117883. .TP
  117884. .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)
  117885. Verify that the correct versions of composer dependencies are present.
  117886. .INDENT 7.0
  117887. .TP
  117888. .B name
  117889. Directory location of the \fBcomposer.json\fP file.
  117890. .TP
  117891. .B composer
  117892. Location of the \fBcomposer.phar\fP file. If not set composer will
  117893. just execute \fBcomposer\fP as if it is installed globally.
  117894. (i.e. \fB/path/to/composer.phar\fP)
  117895. .TP
  117896. .B php
  117897. Location of the php executable to use with composer.
  117898. (i.e. \fB/usr/bin/php\fP)
  117899. .TP
  117900. .B user
  117901. Which system user to run composer as.
  117902. .sp
  117903. New in version 2014.1.4.
  117904. .TP
  117905. .B prefer_source
  117906. \fB\-\-prefer\-source\fP option of composer.
  117907. .TP
  117908. .B prefer_dist
  117909. \fB\-\-prefer\-dist\fP option of composer.
  117910. .TP
  117911. .B no_scripts
  117912. \fB\-\-no\-scripts\fP option of composer.
  117913. .TP
  117914. .B no_plugins
  117915. \fB\-\-no\-plugins\fP option of composer.
  117916. .TP
  117917. .B optimize
  117918. \fB\-\-optimize\-autoloader\fP option of composer. Recommended for production.
  117919. .TP
  117920. .B no_dev
  117921. \fB\-\-no\-dev\fP option for composer. Recommended for production.
  117922. .TP
  117923. .B quiet
  117924. \fB\-\-quiet\fP option for composer. Whether or not to return output from composer.
  117925. .TP
  117926. .B composer_home
  117927. \fB$COMPOSER_HOME\fP environment variable
  117928. .TP
  117929. .B always_check
  117930. If \fBTrue\fP, \fIalways\fP run \fBcomposer install\fP in the directory. This is the
  117931. default behavior. If \fBFalse\fP, only run \fBcomposer install\fP if there is no
  117932. vendor directory present.
  117933. .TP
  117934. .B env
  117935. A list of environment variables to be set prior to execution.
  117936. .UNINDENT
  117937. .UNINDENT
  117938. .INDENT 0.0
  117939. .TP
  117940. .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)
  117941. Composer update the directory to ensure we have the latest versions
  117942. of all project dependencies.
  117943. .INDENT 7.0
  117944. .TP
  117945. .B name
  117946. Directory location of the \fBcomposer.json\fP file.
  117947. .TP
  117948. .B composer
  117949. Location of the \fBcomposer.phar\fP file. If not set composer will
  117950. just execute \fBcomposer\fP as if it is installed globally.
  117951. (i.e. /path/to/composer.phar)
  117952. .TP
  117953. .B php
  117954. Location of the php executable to use with composer.
  117955. (i.e. \fB/usr/bin/php\fP)
  117956. .TP
  117957. .B user
  117958. Which system user to run composer as.
  117959. .sp
  117960. New in version 2014.1.4.
  117961. .TP
  117962. .B prefer_source
  117963. \fB\-\-prefer\-source\fP option of composer.
  117964. .TP
  117965. .B prefer_dist
  117966. \fB\-\-prefer\-dist\fP option of composer.
  117967. .TP
  117968. .B no_scripts
  117969. \fB\-\-no\-scripts\fP option of composer.
  117970. .TP
  117971. .B no_plugins
  117972. \fB\-\-no\-plugins\fP option of composer.
  117973. .TP
  117974. .B optimize
  117975. \fB\-\-optimize\-autoloader\fP option of composer. Recommended for production.
  117976. .TP
  117977. .B no_dev
  117978. \fB\-\-no\-dev\fP option for composer. Recommended for production.
  117979. .TP
  117980. .B quiet
  117981. \fB\-\-quiet\fP option for composer. Whether or not to return output from composer.
  117982. .TP
  117983. .B composer_home
  117984. \fB$COMPOSER_HOME\fP environment variable
  117985. .TP
  117986. .B env
  117987. A list of environment variables to be set prior to execution.
  117988. .UNINDENT
  117989. .UNINDENT
  117990. .SS salt.states.cryptdev module
  117991. .SS Opening of Encrypted Devices
  117992. .sp
  117993. Ensure that an encrypted device is mapped with the \fImapped\fP function:
  117994. .INDENT 0.0
  117995. .INDENT 3.5
  117996. .sp
  117997. .nf
  117998. .ft C
  117999. mappedname:
  118000. cryptdev.mapped:
  118001. \- device: /dev/sdb1
  118002. \- keyfile: /etc/keyfile.key
  118003. \- opts:
  118004. \- size=256
  118005. swap:
  118006. crypted.mapped:
  118007. \- device: /dev/sdx4
  118008. \- keyfile: /dev/urandom
  118009. \- opts: swap,cipher=aes\-cbc\-essiv:sha256,size=256
  118010. mappedbyuuid:
  118011. crypted.mapped:
  118012. \- device: UUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314
  118013. \- keyfile: /etc/keyfile.key
  118014. \- config: /etc/alternate\-crypttab
  118015. .ft P
  118016. .fi
  118017. .UNINDENT
  118018. .UNINDENT
  118019. .sp
  118020. New in version 2018.3.0.
  118021. .INDENT 0.0
  118022. .TP
  118023. .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)
  118024. Verify that a device is mapped
  118025. .INDENT 7.0
  118026. .TP
  118027. .B name
  118028. The name under which the device is to be mapped
  118029. .TP
  118030. .B device
  118031. The device name, typically the device node, such as \fB/dev/sdb1\fP
  118032. or \fBUUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314\fP\&.
  118033. .TP
  118034. .B keyfile
  118035. Either \fBNone\fP if the password is to be entered manually on boot, or
  118036. an absolute path to a keyfile. If the password is to be asked
  118037. interactively, the mapping cannot be performed with \fBimmediate=True\fP\&.
  118038. .TP
  118039. .B opts
  118040. A list object of options or a comma delimited list
  118041. .TP
  118042. .B config
  118043. Set an alternative location for the crypttab, if the map is persistent,
  118044. Default is \fB/etc/crypttab\fP
  118045. .TP
  118046. .B persist
  118047. Set if the map should be saved in the crypttab, Default is \fBTrue\fP
  118048. .TP
  118049. .B immediate
  118050. Set if the device mapping should be executed immediately. Requires that
  118051. the keyfile not be \fBNone\fP, because the password cannot be asked
  118052. interactively. Note that options are not passed through on the initial
  118053. mapping. Default is \fBFalse\fP\&.
  118054. .TP
  118055. .B match_on
  118056. A name or list of crypttab properties on which this state should be applied.
  118057. Default is \fBname\fP, meaning that the line is matched only by the name
  118058. parameter. If the desired configuration requires two devices mapped to
  118059. the same name, supply a list of parameters to match on.
  118060. .UNINDENT
  118061. .UNINDENT
  118062. .INDENT 0.0
  118063. .TP
  118064. .B salt.states.cryptdev.unmapped(name, config=u\(aq/etc/crypttab\(aq, persist=True, immediate=False)
  118065. Ensure that a device is unmapped
  118066. .INDENT 7.0
  118067. .TP
  118068. .B name
  118069. The name to ensure is not mapped
  118070. .TP
  118071. .B config
  118072. Set an alternative location for the crypttab, if the map is persistent,
  118073. Default is \fB/etc/crypttab\fP
  118074. .TP
  118075. .B persist
  118076. Set if the map should be removed from the crypttab. Default is \fBTrue\fP
  118077. .TP
  118078. .B immediate
  118079. Set if the device should be unmapped immediately. Default is \fBFalse\fP\&.
  118080. .UNINDENT
  118081. .UNINDENT
  118082. .SS salt.states.csf module
  118083. .SS CSF Ip tables management
  118084. .INDENT 0.0
  118085. .TP
  118086. .B depends
  118087. .INDENT 7.0
  118088. .IP \(bu 2
  118089. csf utility
  118090. .UNINDENT
  118091. .TP
  118092. .B configuration
  118093. See \fI\%http://download.configserver.com/csf/install.txt\fP
  118094. for setup instructions.
  118095. .UNINDENT
  118096. .INDENT 0.0
  118097. .INDENT 3.5
  118098. .sp
  118099. .nf
  118100. .ft C
  118101. Simply allow/deny rules:
  118102. csf.rule_present:
  118103. ip: 1.2.3.4
  118104. method: allow
  118105. .ft P
  118106. .fi
  118107. .UNINDENT
  118108. .UNINDENT
  118109. .INDENT 0.0
  118110. .TP
  118111. .B salt.states.csf.nics_skip(name, nics, ipv6)
  118112. Alias for \fI\%csf.nics_skipped\fP
  118113. .UNINDENT
  118114. .INDENT 0.0
  118115. .TP
  118116. .B salt.states.csf.nics_skipped(name, nics, ipv6=False)
  118117. .INDENT 7.0
  118118. .TP
  118119. .B name
  118120. Meaningless arg, but required for state.
  118121. .TP
  118122. .B nics
  118123. A list of nics to skip.
  118124. .TP
  118125. .B ipv6
  118126. Boolean. Set to true if you want to skip
  118127. the ipv6 interface. Default false (ipv4).
  118128. .UNINDENT
  118129. .UNINDENT
  118130. .INDENT 0.0
  118131. .TP
  118132. .B salt.states.csf.option_present(name, value, reload=False)
  118133. Ensure the state of a particular option/setting in csf.
  118134. .INDENT 7.0
  118135. .TP
  118136. .B name
  118137. The option name in csf.conf
  118138. .TP
  118139. .B value
  118140. The value it should be set to.
  118141. .TP
  118142. .B reload
  118143. Boolean. If set to true, csf will be reloaded after.
  118144. .UNINDENT
  118145. .UNINDENT
  118146. .INDENT 0.0
  118147. .TP
  118148. .B salt.states.csf.ports_open(name, ports, proto=u\(aqtcp\(aq, direction=u\(aqin\(aq)
  118149. Ensure ports are open for a protocol, in a direction.
  118150. e.g. \- proto=\(aqtcp\(aq, direction=\(aqin\(aq would set the values
  118151. for TCP_IN in the csf.conf file.
  118152. .INDENT 7.0
  118153. .TP
  118154. .B ports
  118155. A list of ports that should be open.
  118156. .TP
  118157. .B proto
  118158. The protocol. May be one of \(aqtcp\(aq, \(aqudp\(aq,
  118159. \(aqtcp6\(aq, or \(aqudp6\(aq.
  118160. .TP
  118161. .B direction
  118162. Choose \(aqin\(aq, \(aqout\(aq, or both to indicate the port
  118163. should be opened for inbound traffic, outbound
  118164. traffic, or both.
  118165. .UNINDENT
  118166. .UNINDENT
  118167. .INDENT 0.0
  118168. .TP
  118169. .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)
  118170. Ensure iptable is not present.
  118171. .INDENT 7.0
  118172. .TP
  118173. .B name
  118174. The ip address or CIDR for the rule.
  118175. .TP
  118176. .B method
  118177. The type of rule. Either \(aqallow\(aq or \(aqdeny\(aq.
  118178. .TP
  118179. .B port
  118180. Optional port to be open or closed for the
  118181. iptables rule.
  118182. .TP
  118183. .B proto
  118184. The protocol. Either \(aqtcp\(aq, \(aqudp\(aq.
  118185. Only applicable if port is specified.
  118186. .TP
  118187. .B direction
  118188. The diretion of traffic to apply the rule to.
  118189. Either \(aqin\(aq, or \(aqout\(aq. Only applicable if
  118190. port is specified.
  118191. .TP
  118192. .B port_origin
  118193. Specifies either the source or destination
  118194. port is relevant for this rule. Only applicable
  118195. if port is specified. Either \(aqs\(aq, or \(aqd\(aq.
  118196. .TP
  118197. .B ip_origin
  118198. Specifies whether the ip in this rule refers to
  118199. the source or destination ip. Either \(aqs\(aq, or
  118200. \(aqd\(aq. Only applicable if port is specified.
  118201. .TP
  118202. .B ttl
  118203. How long the rule should exist. If supplied,
  118204. \fIcsf.tempallow()\fP or csf.tempdeny()\(ga are used.
  118205. .TP
  118206. .B reload
  118207. Reload the csf service after applying this rule.
  118208. Default false.
  118209. .UNINDENT
  118210. .UNINDENT
  118211. .INDENT 0.0
  118212. .TP
  118213. .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)
  118214. Ensure iptable rule exists.
  118215. .INDENT 7.0
  118216. .TP
  118217. .B name
  118218. The ip address or CIDR for the rule.
  118219. .TP
  118220. .B method
  118221. The type of rule. Either \(aqallow\(aq or \(aqdeny\(aq.
  118222. .TP
  118223. .B port
  118224. Optional port to be open or closed for the
  118225. iptables rule.
  118226. .TP
  118227. .B proto
  118228. The protocol. Either \(aqtcp\(aq, or \(aqudp\(aq.
  118229. Only applicable if port is specified.
  118230. .TP
  118231. .B direction
  118232. The diretion of traffic to apply the rule to.
  118233. Either \(aqin\(aq, or \(aqout\(aq. Only applicable if
  118234. port is specified.
  118235. .TP
  118236. .B port_origin
  118237. Specifies either the source or destination
  118238. port is relevant for this rule. Only applicable
  118239. if port is specified. Either \(aqs\(aq, or \(aqd\(aq.
  118240. .TP
  118241. .B ip_origin
  118242. Specifies whether the ip in this rule refers to
  118243. the source or destination ip. Either \(aqs\(aq, or
  118244. \(aqd\(aq. Only applicable if port is specified.
  118245. .TP
  118246. .B ttl
  118247. How long the rule should exist. If supplied,
  118248. \fIcsf.tempallow()\fP or csf.tempdeny()\(ga are used.
  118249. .TP
  118250. .B comment
  118251. An optional comment to appear after the rule
  118252. as a #comment .
  118253. .TP
  118254. .B reload
  118255. Reload the csf service after applying this rule.
  118256. Default false.
  118257. .UNINDENT
  118258. .UNINDENT
  118259. .INDENT 0.0
  118260. .TP
  118261. .B salt.states.csf.testing_off(name, reload=False)
  118262. Ensure testing mode is enabled in csf.
  118263. .INDENT 7.0
  118264. .TP
  118265. .B reload
  118266. Reload CSF after changing the testing status.
  118267. Default false.
  118268. .UNINDENT
  118269. .UNINDENT
  118270. .INDENT 0.0
  118271. .TP
  118272. .B salt.states.csf.testing_on(name, reload=False)
  118273. Ensure testing mode is enabled in csf.
  118274. .INDENT 7.0
  118275. .TP
  118276. .B reload
  118277. Reload CSF after changing the testing status.
  118278. Default false.
  118279. .UNINDENT
  118280. .UNINDENT
  118281. .SS salt.states.cyg
  118282. .sp
  118283. Installation of Cygwin packages.
  118284. .sp
  118285. A state module to manage cygwin packages. Packages can be installed
  118286. or removed.
  118287. .INDENT 0.0
  118288. .INDENT 3.5
  118289. .sp
  118290. .nf
  118291. .ft C
  118292. dos2unix:
  118293. cyg.installed
  118294. .ft P
  118295. .fi
  118296. .UNINDENT
  118297. .UNINDENT
  118298. .INDENT 0.0
  118299. .TP
  118300. .B class salt.states.cyg.DictDiffer(current_dict, past_dict)
  118301. Calculate the difference between two dictionaries.
  118302. .INDENT 7.0
  118303. .IP 1. 3
  118304. items added
  118305. .IP 2. 3
  118306. items removed
  118307. .IP 3. 3
  118308. keys same in both but changed values
  118309. .IP 4. 3
  118310. keys same in both and unchanged values
  118311. .UNINDENT
  118312. .INDENT 7.0
  118313. .TP
  118314. .B added()
  118315. Return a set of additions to past_dict.
  118316. .UNINDENT
  118317. .INDENT 7.0
  118318. .TP
  118319. .B changed()
  118320. Return a set of the keys with changed values.
  118321. .UNINDENT
  118322. .INDENT 7.0
  118323. .TP
  118324. .B removed()
  118325. Return a set of things removed from past_dict.
  118326. .UNINDENT
  118327. .INDENT 7.0
  118328. .TP
  118329. .B same()
  118330. True if the two dicts are the same.
  118331. .UNINDENT
  118332. .INDENT 7.0
  118333. .TP
  118334. .B unchanged()
  118335. Return a set of the keys with unchanged values.
  118336. .UNINDENT
  118337. .UNINDENT
  118338. .INDENT 0.0
  118339. .TP
  118340. .B salt.states.cyg.installed(name, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118341. Make sure that a package is installed.
  118342. .INDENT 7.0
  118343. .TP
  118344. .B name
  118345. The name of the package to install
  118346. .TP
  118347. .B cyg_arch
  118348. x86_64
  118349. The cygwin architecture to install the package into.
  118350. Current options are x86 and x86_64
  118351. .TP
  118352. .B mirrors
  118353. None
  118354. List of mirrors to check.
  118355. None will use a default mirror (kernel.org)
  118356. .UNINDENT
  118357. .sp
  118358. CLI Example:
  118359. .INDENT 7.0
  118360. .INDENT 3.5
  118361. .sp
  118362. .nf
  118363. .ft C
  118364. rsync:
  118365. cyg.installed:
  118366. \- mirrors:
  118367. \- http://mirror/without/public/key: ""
  118368. \- http://mirror/with/public/key: http://url/of/public/key
  118369. .ft P
  118370. .fi
  118371. .UNINDENT
  118372. .UNINDENT
  118373. .UNINDENT
  118374. .INDENT 0.0
  118375. .TP
  118376. .B salt.states.cyg.removed(name, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118377. Make sure that a package is not installed.
  118378. .INDENT 7.0
  118379. .TP
  118380. .B name
  118381. The name of the package to uninstall
  118382. .TP
  118383. .B cyg_arch
  118384. x86_64
  118385. The cygwin architecture to remove the package from.
  118386. Current options are x86 and x86_64
  118387. .TP
  118388. .B mirrors
  118389. None
  118390. List of mirrors to check.
  118391. None will use a default mirror (kernel.org)
  118392. .UNINDENT
  118393. .sp
  118394. CLI Example:
  118395. .INDENT 7.0
  118396. .INDENT 3.5
  118397. .sp
  118398. .nf
  118399. .ft C
  118400. rsync:
  118401. cyg.removed:
  118402. \- mirrors:
  118403. \- http://mirror/without/public/key: ""
  118404. \- http://mirror/with/public/key: http://url/of/public/key
  118405. .ft P
  118406. .fi
  118407. .UNINDENT
  118408. .UNINDENT
  118409. .UNINDENT
  118410. .INDENT 0.0
  118411. .TP
  118412. .B salt.states.cyg.updated(name=None, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118413. Make sure all packages are up to date.
  118414. .INDENT 7.0
  118415. .TP
  118416. .B name
  118417. None
  118418. No affect, salt fails poorly without the arg available
  118419. .TP
  118420. .B cyg_arch
  118421. x86_64
  118422. The cygwin architecture to update.
  118423. Current options are x86 and x86_64
  118424. .TP
  118425. .B mirrors
  118426. None
  118427. List of mirrors to check.
  118428. None will use a default mirror (kernel.org)
  118429. .UNINDENT
  118430. .sp
  118431. CLI Example:
  118432. .INDENT 7.0
  118433. .INDENT 3.5
  118434. .sp
  118435. .nf
  118436. .ft C
  118437. rsync:
  118438. cyg.updated:
  118439. \- mirrors:
  118440. \- http://mirror/without/public/key: ""
  118441. \- http://mirror/with/public/key: http://url/of/public/key
  118442. .ft P
  118443. .fi
  118444. .UNINDENT
  118445. .UNINDENT
  118446. .UNINDENT
  118447. .SS salt.states.ddns
  118448. .SS Dynamic DNS updates
  118449. .sp
  118450. Ensure a DNS record is present or absent utilizing RFC 2136
  118451. type dynamic updates.
  118452. .INDENT 0.0
  118453. .TP
  118454. .B depends
  118455. .INDENT 7.0
  118456. .IP \(bu 2
  118457. \fI\%dnspython\fP
  118458. .UNINDENT
  118459. .UNINDENT
  118460. .sp
  118461. \fBNOTE:\fP
  118462. .INDENT 0.0
  118463. .INDENT 3.5
  118464. The \fBdnspython\fP module is required when managing DDNS using a TSIG key.
  118465. If you are not using a TSIG key, DDNS is allowed by ACLs based on IP
  118466. address and the \fBdnspython\fP module is not required.
  118467. .UNINDENT
  118468. .UNINDENT
  118469. .sp
  118470. Example:
  118471. .INDENT 0.0
  118472. .INDENT 3.5
  118473. .sp
  118474. .nf
  118475. .ft C
  118476. webserver:
  118477. ddns.present:
  118478. \- zone: example.com
  118479. \- ttl: 60
  118480. \- data: 111.222.333.444
  118481. \- nameserver: 123.234.345.456
  118482. \- keyfile: /srv/salt/dnspy_tsig_key.txt
  118483. .ft P
  118484. .fi
  118485. .UNINDENT
  118486. .UNINDENT
  118487. .INDENT 0.0
  118488. .TP
  118489. .B salt.states.ddns.absent(name, zone, data=None, rdtype=None, **kwargs)
  118490. Ensures that the named DNS record is absent.
  118491. .INDENT 7.0
  118492. .TP
  118493. .B name
  118494. The host portion of the DNS record, e.g., \(aqwebserver\(aq. Name and zone
  118495. are concatenated when the entry is created unless name includes a
  118496. trailing dot, so make sure that information is not duplicated in these
  118497. two arguments.
  118498. .TP
  118499. .B zone
  118500. The zone to check
  118501. .TP
  118502. .B data
  118503. Data for the DNS record. E.g., the IP address for an A record. If omitted,
  118504. all records matching name (and rdtype, if provided) will be purged.
  118505. .TP
  118506. .B rdtype
  118507. DNS resource type. If omitted, all types will be purged.
  118508. .TP
  118509. .B \fB**kwargs\fP
  118510. Additional arguments the ddns.update function may need (e.g.
  118511. nameserver, keyfile, keyname). Note that the nsupdate key file can’t
  118512. be reused by this function, the keyfile and other arguments must
  118513. follow the \fI\%dnspython\fP spec.
  118514. .UNINDENT
  118515. .UNINDENT
  118516. .INDENT 0.0
  118517. .TP
  118518. .B salt.states.ddns.present(name, zone, ttl, data, rdtype=u\(aqA\(aq, **kwargs)
  118519. Ensures that the named DNS record is present with the given ttl.
  118520. .INDENT 7.0
  118521. .TP
  118522. .B name
  118523. The host portion of the DNS record, e.g., \(aqwebserver\(aq. Name and zone
  118524. are concatenated when the entry is created unless name includes a
  118525. trailing dot, so make sure that information is not duplicated in these
  118526. two arguments.
  118527. .TP
  118528. .B zone
  118529. The zone to check/update
  118530. .TP
  118531. .B ttl
  118532. TTL for the record
  118533. .TP
  118534. .B data
  118535. Data for the DNS record. E.g., the IP address for an A record.
  118536. .TP
  118537. .B rdtype
  118538. DNS resource type. Default \(aqA\(aq.
  118539. .TP
  118540. .B \fB**kwargs\fP
  118541. Additional arguments the ddns.update function may need (e.g.
  118542. nameserver, keyfile, keyname). Note that the nsupdate key file can’t
  118543. be reused by this function, the keyfile and other arguments must
  118544. follow the \fI\%dnspython\fP spec.
  118545. .UNINDENT
  118546. .UNINDENT
  118547. .SS salt.states.debconfmod
  118548. .SS Management of debconf selections
  118549. .INDENT 0.0
  118550. .TP
  118551. .B depends
  118552. .INDENT 7.0
  118553. .IP \(bu 2
  118554. debconf\-utils package
  118555. .UNINDENT
  118556. .UNINDENT
  118557. .sp
  118558. The debconfmod state module manages the enforcement of debconf selections,
  118559. this state can set those selections prior to package installation.
  118560. .SS Available Functions
  118561. .sp
  118562. The debconfmod state has two functions, the \fBset\fP and \fBset_file\fP functions
  118563. .INDENT 0.0
  118564. .TP
  118565. .B set
  118566. Set debconf selections from the state itself
  118567. .TP
  118568. .B set_file
  118569. Set debconf selections from a file
  118570. .UNINDENT
  118571. .INDENT 0.0
  118572. .INDENT 3.5
  118573. .sp
  118574. .nf
  118575. .ft C
  118576. nullmailer\-debconf:
  118577. debconf.set:
  118578. \- name: nullmailer
  118579. \- data:
  118580. \(aqshared/mailname\(aq: {\(aqtype\(aq: \(aqstring\(aq, \(aqvalue\(aq: \(aqserver.domain.tld\(aq}
  118581. \(aqnullmailer/relayhost\(aq: {\(aqtype\(aq: \(aqstring\(aq, \(aqvalue\(aq: \(aqmail.domain.tld\(aq}
  118582. ferm\-debconf:
  118583. debconf.set:
  118584. \- name: ferm
  118585. \- data:
  118586. \(aqferm/enable\(aq: {\(aqtype\(aq: \(aqboolean\(aq, \(aqvalue\(aq: True}
  118587. .ft P
  118588. .fi
  118589. .UNINDENT
  118590. .UNINDENT
  118591. .sp
  118592. \fBNOTE:\fP
  118593. .INDENT 0.0
  118594. .INDENT 3.5
  118595. Due to how PyYAML imports nested dicts (see here),
  118596. the values in the \fBdata\fP dict must be indented four spaces instead of two.
  118597. .UNINDENT
  118598. .UNINDENT
  118599. .sp
  118600. If you\(aqre setting debconf values that requires \fIdpkg\-reconfigure\fP, you can use
  118601. the \fBonchanges\fP requisite to reconfigure your package:
  118602. .INDENT 0.0
  118603. .INDENT 3.5
  118604. .sp
  118605. .nf
  118606. .ft C
  118607. set\-default\-shell:
  118608. debconf.set:
  118609. \- name: dash
  118610. \- data:
  118611. \(aqdash/sh\(aq: {\(aqtype\(aq: \(aqboolean\(aq, \(aqvalue\(aq: false}
  118612. reconfigure\-dash:
  118613. cmd.run:
  118614. \- name: dpkg\-reconfigure \-f noninteractive dash
  118615. \- onchanges:
  118616. \- debconf: set\-default\-shell
  118617. .ft P
  118618. .fi
  118619. .UNINDENT
  118620. .UNINDENT
  118621. .sp
  118622. Every time the \fBset\-default\-shell\fP state changes, the \fBreconfigure\-dash\fP
  118623. state will also run.
  118624. .sp
  118625. \fBNOTE:\fP
  118626. .INDENT 0.0
  118627. .INDENT 3.5
  118628. For boolean types, the value should be \fBtrue\fP or \fBfalse\fP, not
  118629. \fB\(aqtrue\(aq\fP or \fB\(aqfalse\(aq\fP\&.
  118630. .UNINDENT
  118631. .UNINDENT
  118632. .INDENT 0.0
  118633. .TP
  118634. .B salt.states.debconfmod.set(name, data, **kwargs)
  118635. Set debconf selections
  118636. .INDENT 7.0
  118637. .INDENT 3.5
  118638. .sp
  118639. .nf
  118640. .ft C
  118641. <state_id>:
  118642. debconf.set:
  118643. \- name: <name>
  118644. \- data:
  118645. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118646. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118647. <state_id>:
  118648. debconf.set:
  118649. \- name: <name>
  118650. \- data:
  118651. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118652. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118653. .ft P
  118654. .fi
  118655. .UNINDENT
  118656. .UNINDENT
  118657. .INDENT 7.0
  118658. .TP
  118659. .B name:
  118660. The package name to set answers for.
  118661. .TP
  118662. .B data:
  118663. A set of questions/answers for debconf. Note that everything under
  118664. this must be indented twice.
  118665. .TP
  118666. .B question:
  118667. The question the is being pre\-answered
  118668. .TP
  118669. .B type:
  118670. The type of question that is being asked (string, boolean, select, etc.)
  118671. .TP
  118672. .B value:
  118673. The answer to the question
  118674. .UNINDENT
  118675. .UNINDENT
  118676. .INDENT 0.0
  118677. .TP
  118678. .B salt.states.debconfmod.set_file(name, source, template=None, context=None, defaults=None, **kwargs)
  118679. Set debconf selections from a file or a template
  118680. .INDENT 7.0
  118681. .INDENT 3.5
  118682. .sp
  118683. .nf
  118684. .ft C
  118685. <state_id>:
  118686. debconf.set_file:
  118687. \- source: salt://pathto/pkg.selections
  118688. <state_id>:
  118689. debconf.set_file:
  118690. \- source: salt://pathto/pkg.selections?saltenv=myenvironment
  118691. <state_id>:
  118692. debconf.set_file:
  118693. \- source: salt://pathto/pkg.selections.jinja2
  118694. \- template: jinja
  118695. \- context:
  118696. some_value: "false"
  118697. .ft P
  118698. .fi
  118699. .UNINDENT
  118700. .UNINDENT
  118701. .INDENT 7.0
  118702. .TP
  118703. .B source:
  118704. The location of the file containing the package selections
  118705. .TP
  118706. .B template
  118707. If this setting is applied then the named templating engine will be
  118708. used to render the package selections file, currently jinja, mako, and
  118709. wempy are supported
  118710. .TP
  118711. .B context
  118712. Overrides default context variables passed to the template.
  118713. .TP
  118714. .B defaults
  118715. Default context passed to the template.
  118716. .UNINDENT
  118717. .UNINDENT
  118718. .SS salt.states.dellchassis
  118719. .sp
  118720. Manage chassis via Salt Proxies.
  118721. .sp
  118722. New in version 2015.8.2.
  118723. .sp
  118724. Below is an example state that sets basic parameters:
  118725. .INDENT 0.0
  118726. .INDENT 3.5
  118727. .sp
  118728. .nf
  118729. .ft C
  118730. my\-dell\-chassis:
  118731. dellchassis.chassis:
  118732. \- chassis_name: my\-dell\-chassis
  118733. \- datacenter: dc\-1\-us
  118734. \- location: my\-location
  118735. \- mode: 2
  118736. \- idrac_launch: 1
  118737. \- slot_names:
  118738. \- server\-1: my\-slot\-name
  118739. \- server\-2: my\-other\-slot\-name
  118740. \- blade_power_states:
  118741. \- server\-1: on
  118742. \- server\-2: off
  118743. \- server\-3: powercycle
  118744. .ft P
  118745. .fi
  118746. .UNINDENT
  118747. .UNINDENT
  118748. .sp
  118749. However, it is possible to place the entire set of chassis configuration
  118750. data in pillar. Here\(aqs an example pillar structure:
  118751. .INDENT 0.0
  118752. .INDENT 3.5
  118753. .sp
  118754. .nf
  118755. .ft C
  118756. proxy:
  118757. host: 10.27.20.18
  118758. admin_username: root
  118759. fallback_admin_username: root
  118760. passwords:
  118761. \- super\-secret
  118762. \- old\-secret
  118763. proxytype: fx2
  118764. chassis:
  118765. name: fx2\-1
  118766. username: root
  118767. password: saltstack1
  118768. datacenter: london
  118769. location: rack\-1\-shelf\-3
  118770. management_mode: 2
  118771. idrac_launch: 0
  118772. slot_names:
  118773. \- \(aqserver\-1\(aq: blade1
  118774. \- \(aqserver\-2\(aq: blade2
  118775. servers:
  118776. server\-1:
  118777. idrac_password: saltstack1
  118778. ipmi_over_lan: True
  118779. ip: 172.17.17.132
  118780. netmask: 255.255.0.0
  118781. gateway: 172.17.17.1
  118782. server\-2:
  118783. idrac_password: saltstack1
  118784. ipmi_over_lan: True
  118785. ip: 172.17.17.2
  118786. netmask: 255.255.0.0
  118787. gateway: 172.17.17.1
  118788. server\-3:
  118789. idrac_password: saltstack1
  118790. ipmi_over_lan: True
  118791. ip: 172.17.17.20
  118792. netmask: 255.255.0.0
  118793. gateway: 172.17.17.1
  118794. server\-4:
  118795. idrac_password: saltstack1
  118796. ipmi_over_lan: True
  118797. ip: 172.17.17.2
  118798. netmask: 255.255.0.0
  118799. gateway: 172.17.17.1
  118800. switches:
  118801. switch\-1:
  118802. ip: 192.168.1.2
  118803. netmask: 255.255.255.0
  118804. gateway: 192.168.1.1
  118805. snmp: nonpublic
  118806. password: saltstack1
  118807. switch\-2:
  118808. ip: 192.168.1.3
  118809. netmask: 255.255.255.0
  118810. gateway: 192.168.1.1
  118811. snmp: nonpublic
  118812. password: saltstack1
  118813. .ft P
  118814. .fi
  118815. .UNINDENT
  118816. .UNINDENT
  118817. .sp
  118818. And to go with it, here\(aqs an example state that pulls the data from the
  118819. pillar stated above:
  118820. .INDENT 0.0
  118821. .INDENT 3.5
  118822. .sp
  118823. .nf
  118824. .ft C
  118825. {% set details = pillar.get(\(aqproxy:chassis\(aq, {}) %}
  118826. standup\-step1:
  118827. dellchassis.chassis:
  118828. \- name: {{ details[\(aqname\(aq] }}
  118829. \- location: {{ details[\(aqlocation\(aq] }}
  118830. \- mode: {{ details[\(aqmanagement_mode\(aq] }}
  118831. \- idrac_launch: {{ details[\(aqidrac_launch\(aq] }}
  118832. \- slot_names:
  118833. {% for entry details[\(aqslot_names\(aq] %}
  118834. \- {{ next(iter(entry)) }}: {{ entry[next(iter(entry))] }}
  118835. {% endfor %}
  118836. blade_powercycle:
  118837. dellchassis.chassis:
  118838. \- blade_power_states:
  118839. \- server\-1: powercycle
  118840. \- server\-2: powercycle
  118841. \- server\-3: powercycle
  118842. \- server\-4: powercycle
  118843. # Set idrac_passwords for blades. racadm needs them to be called \(aqserver\-x\(aq
  118844. {% for k, v in details[\(aqservers\(aq].iteritems() %}
  118845. {{ k }}:
  118846. dellchassis.blade_idrac:
  118847. \- idrac_password: {{ v[\(aqidrac_password\(aq] }}
  118848. {% endfor %}
  118849. # Set management ip addresses, passwords, and snmp strings for switches
  118850. {% for k, v in details[\(aqswitches\(aq].iteritems() %}
  118851. {{ k }}\-switch\-setup:
  118852. dellchassis.switch:
  118853. \- name: {{ k }}
  118854. \- ip: {{ v[\(aqip\(aq] }}
  118855. \- netmask: {{ v[\(aqnetmask\(aq] }}
  118856. \- gateway: {{ v[\(aqgateway\(aq] }}
  118857. \- password: {{ v[\(aqpassword\(aq] }}
  118858. \- snmp: {{ v[\(aqsnmp\(aq] }}
  118859. {% endfor %}
  118860. .ft P
  118861. .fi
  118862. .UNINDENT
  118863. .UNINDENT
  118864. .sp
  118865. \fBNOTE:\fP
  118866. .INDENT 0.0
  118867. .INDENT 3.5
  118868. This state module relies on the dracr.py execution module, which runs racadm commands on
  118869. the chassis, blades, etc. The racadm command runs very slowly and, depending on your state,
  118870. the proxy minion return might timeout before the racadm commands have completed. If you
  118871. are repeatedly seeing minions timeout after state calls, please use the \fB\-t\fP CLI argument
  118872. to increase the timeout variable.
  118873. .sp
  118874. For example:
  118875. .INDENT 0.0
  118876. .INDENT 3.5
  118877. .sp
  118878. .nf
  118879. .ft C
  118880. salt \(aq*\(aq state.sls my\-dell\-chasis\-state\-name \-t 60
  118881. .ft P
  118882. .fi
  118883. .UNINDENT
  118884. .UNINDENT
  118885. .UNINDENT
  118886. .UNINDENT
  118887. .sp
  118888. \fBNOTE:\fP
  118889. .INDENT 0.0
  118890. .INDENT 3.5
  118891. The Dell CMC units perform adequately but many iDRACs are \fBexcruciatingly\fP
  118892. slow. Some functions can take minutes to execute.
  118893. .UNINDENT
  118894. .UNINDENT
  118895. .INDENT 0.0
  118896. .TP
  118897. .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)
  118898. Set parameters for iDRAC in a blade.
  118899. .INDENT 7.0
  118900. .TP
  118901. .B Parameters
  118902. .INDENT 7.0
  118903. .IP \(bu 2
  118904. \fBidrac_password\fP \-\- Password to use to connect to the iDRACs directly
  118905. (idrac_ipmi and idrac_dnsname must be set directly on the iDRAC. They
  118906. can\(aqt be set through the CMC. If this password is present, use it
  118907. instead of the CMC password)
  118908. .IP \(bu 2
  118909. \fBidrac_ipmi\fP \-\- Enable/Disable IPMI over LAN
  118910. .IP \(bu 2
  118911. \fBidrac_ip\fP \-\- Set IP address for iDRAC
  118912. .IP \(bu 2
  118913. \fBidrac_netmask\fP \-\- Set netmask for iDRAC
  118914. .IP \(bu 2
  118915. \fBidrac_gateway\fP \-\- Set gateway for iDRAC
  118916. .IP \(bu 2
  118917. \fBidrac_dhcp\fP \-\- Turn on DHCP for iDRAC (True turns on, False does
  118918. nothing becaause setting a static IP will disable DHCP).
  118919. .UNINDENT
  118920. .TP
  118921. .B Returns
  118922. A standard Salt changes dictionary
  118923. .UNINDENT
  118924. .sp
  118925. NOTE: If any of the IP address settings is configured, all of ip, netmask,
  118926. and gateway must be present
  118927. .UNINDENT
  118928. .INDENT 0.0
  118929. .TP
  118930. .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)
  118931. Manage a Dell Chassis.
  118932. .INDENT 7.0
  118933. .TP
  118934. .B chassis_name
  118935. The name of the chassis.
  118936. .TP
  118937. .B datacenter
  118938. The datacenter in which the chassis is located
  118939. .TP
  118940. .B location
  118941. The location of the chassis.
  118942. .TP
  118943. .B password
  118944. Password for the chassis. Note: If this password is set for the chassis,
  118945. the current implementation of this state will set this password both on
  118946. the chassis and the iDrac passwords on any configured blades. If the
  118947. password for the blades should be distinct, they should be set separately
  118948. with the blade_idrac function.
  118949. .TP
  118950. .B mode
  118951. The management mode of the chassis. Viable options are:
  118952. .INDENT 7.0
  118953. .IP \(bu 2
  118954. 0: None
  118955. .IP \(bu 2
  118956. 1: Monitor
  118957. .IP \(bu 2
  118958. 2: Manage and Monitor
  118959. .UNINDENT
  118960. .TP
  118961. .B idrac_launch
  118962. The iDRAC launch method of the chassis. Viable options are:
  118963. .INDENT 7.0
  118964. .IP \(bu 2
  118965. 0: Disabled (launch iDRAC using IP address)
  118966. .IP \(bu 2
  118967. 1: Enabled (launch iDRAC using DNS name)
  118968. .UNINDENT
  118969. .TP
  118970. .B slot_names
  118971. The names of the slots, provided as a list identified by
  118972. their slot numbers.
  118973. .TP
  118974. .B blade_power_states
  118975. The power states of a blade server, provided as a list and
  118976. identified by their server numbers. Viable options are:
  118977. .INDENT 7.0
  118978. .INDENT 3.5
  118979. .INDENT 0.0
  118980. .IP \(bu 2
  118981. on: Ensure the blade server is powered on.
  118982. .IP \(bu 2
  118983. off: Ensure the blade server is powered off.
  118984. .IP \(bu 2
  118985. powercycle: Power cycle the blade server.
  118986. .UNINDENT
  118987. .UNINDENT
  118988. .UNINDENT
  118989. .UNINDENT
  118990. .sp
  118991. Example:
  118992. .INDENT 7.0
  118993. .INDENT 3.5
  118994. .sp
  118995. .nf
  118996. .ft C
  118997. my\-dell\-chassis:
  118998. dellchassis.chassis:
  118999. \- chassis_name: my\-dell\-chassis
  119000. \- location: my\-location
  119001. \- datacenter: london
  119002. \- mode: 2
  119003. \- idrac_launch: 1
  119004. \- slot_names:
  119005. \- 1: my\-slot\-name
  119006. \- 2: my\-other\-slot\-name
  119007. \- blade_power_states:
  119008. \- server\-1: on
  119009. \- server\-2: off
  119010. \- server\-3: powercycle
  119011. .ft P
  119012. .fi
  119013. .UNINDENT
  119014. .UNINDENT
  119015. .UNINDENT
  119016. .INDENT 0.0
  119017. .TP
  119018. .B salt.states.dellchassis.firmware_update(hosts=None, directory=u\(aq\(aq)
  119019. .INDENT 7.0
  119020. .INDENT 3.5
  119021. State to update the firmware on host
  119022. using the \fBracadm\fP command
  119023. .INDENT 0.0
  119024. .TP
  119025. .B firmwarefile
  119026. filename (string) starting with \fBsalt://\fP
  119027. .TP
  119028. .B host
  119029. string representing the hostname
  119030. supplied to the \fBracadm\fP command
  119031. .TP
  119032. .B directory
  119033. Directory name where firmwarefile
  119034. will be downloaded
  119035. .UNINDENT
  119036. .UNINDENT
  119037. .UNINDENT
  119038. .INDENT 7.0
  119039. .INDENT 3.5
  119040. .sp
  119041. .nf
  119042. .ft C
  119043. dell\-chassis\-firmware\-update:
  119044. dellchassis.firmware_update:
  119045. hosts:
  119046. cmc:
  119047. salt://firmware_cmc.exe
  119048. server\-1:
  119049. salt://firmware.exe
  119050. directory: /opt/firmwares
  119051. .ft P
  119052. .fi
  119053. .UNINDENT
  119054. .UNINDENT
  119055. .UNINDENT
  119056. .INDENT 0.0
  119057. .TP
  119058. .B salt.states.dellchassis.switch(name, ip=None, netmask=None, gateway=None, dhcp=None, password=None, snmp=None)
  119059. Manage switches in a Dell Chassis.
  119060. .INDENT 7.0
  119061. .TP
  119062. .B name
  119063. The switch designation (e.g. switch\-1, switch\-2)
  119064. .TP
  119065. .B ip
  119066. The Static IP Address of the switch
  119067. .TP
  119068. .B netmask
  119069. The netmask for the static IP
  119070. .TP
  119071. .B gateway
  119072. The gateway for the static IP
  119073. .TP
  119074. .B dhcp
  119075. True: Enable DHCP
  119076. False: Do not change DHCP setup
  119077. (disabling DHCP is automatic when a static IP is set)
  119078. .TP
  119079. .B password
  119080. The access (root) password for the switch
  119081. .TP
  119082. .B snmp
  119083. The SNMP community string for the switch
  119084. .UNINDENT
  119085. .sp
  119086. Example:
  119087. .INDENT 7.0
  119088. .INDENT 3.5
  119089. .sp
  119090. .nf
  119091. .ft C
  119092. my\-dell\-chassis:
  119093. dellchassis.switch:
  119094. \- switch: switch\-1
  119095. \- ip: 192.168.1.1
  119096. \- netmask: 255.255.255.0
  119097. \- gateway: 192.168.1.254
  119098. \- dhcp: True
  119099. \- password: secret
  119100. \- snmp: public
  119101. .ft P
  119102. .fi
  119103. .UNINDENT
  119104. .UNINDENT
  119105. .UNINDENT
  119106. .SS salt.states.disk
  119107. .sp
  119108. Disk monitoring state
  119109. .sp
  119110. Monitor the state of disk resources.
  119111. .sp
  119112. The \fBdisk.status\fP function can be used to report that the used space of a
  119113. filesystem is within the specified limits.
  119114. .INDENT 0.0
  119115. .INDENT 3.5
  119116. .sp
  119117. .nf
  119118. .ft C
  119119. used_space:
  119120. disk.status:
  119121. \- name: /dev/xda1
  119122. \- maximum: 79%
  119123. \- minimum: 11%
  119124. .ft P
  119125. .fi
  119126. .UNINDENT
  119127. .UNINDENT
  119128. .sp
  119129. It can be used with an \fBonfail\fP requisite, for example, to take additional
  119130. action in response to or in preparation for other states.
  119131. .INDENT 0.0
  119132. .INDENT 3.5
  119133. .sp
  119134. .nf
  119135. .ft C
  119136. storage_threshold:
  119137. disk.status:
  119138. \- name: /dev/xda1
  119139. \- maximum: 97%
  119140. clear_cache:
  119141. cmd.run:
  119142. \- name: rm \-r /var/cache/app
  119143. \- onfail:
  119144. \- disk: storage_threshold
  119145. .ft P
  119146. .fi
  119147. .UNINDENT
  119148. .UNINDENT
  119149. .sp
  119150. To use kilobytes (KB) for \fBminimum\fP and \fBmaximum\fP rather than percents,
  119151. specify the \fBabsolute\fP flag:
  119152. .INDENT 0.0
  119153. .INDENT 3.5
  119154. .sp
  119155. .nf
  119156. .ft C
  119157. used_space:
  119158. disk.status:
  119159. \- name: /dev/xda1
  119160. \- minimum: 1024 KB
  119161. \- maximum: 1048576 KB
  119162. \- absolute: True
  119163. .ft P
  119164. .fi
  119165. .UNINDENT
  119166. .UNINDENT
  119167. .INDENT 0.0
  119168. .TP
  119169. .B salt.states.disk.status(name, maximum=None, minimum=None, absolute=False, free=False)
  119170. Return the current disk usage stats for the named mount point
  119171. .INDENT 7.0
  119172. .TP
  119173. .B name
  119174. Disk mount or directory for which to check used space
  119175. .TP
  119176. .B maximum
  119177. The maximum disk utilization
  119178. .TP
  119179. .B minimum
  119180. The minimum disk utilization
  119181. .TP
  119182. .B absolute
  119183. By default, the utilization is measured in percentage. Set
  119184. the \fIabsolute\fP flag to use kilobytes.
  119185. .sp
  119186. New in version 2016.11.0.
  119187. .TP
  119188. .B free
  119189. By default, \fIminimum\fP & \fImaximum\fP refer to the amount of used space.
  119190. Set to \fITrue\fP to evaluate the free space instead.
  119191. .UNINDENT
  119192. .UNINDENT
  119193. .SS salt.states.dvs module
  119194. .sp
  119195. Manage VMware distributed virtual switches (DVSs) and their distributed virtual
  119196. portgroups (DVportgroups).
  119197. .INDENT 0.0
  119198. .TP
  119199. .B codeauthor
  119200. \fIAlexandru Bleotu <alexandru.bleotu@morganstaley.com>\fP
  119201. .UNINDENT
  119202. Examples
  119203. .sp
  119204. Several settings can be changed for DVSs and DVporgroups. Here are two examples
  119205. covering all of the settings. Fewer settings can be used
  119206. .SS DVS
  119207. .INDENT 0.0
  119208. .INDENT 3.5
  119209. .sp
  119210. .nf
  119211. .ft C
  119212. \(aqname\(aq: \(aqdvs1\(aq,
  119213. \(aqmax_mtu\(aq: 1000,
  119214. \(aquplink_names\(aq: [
  119215. \(aqdvUplink1\(aq,
  119216. \(aqdvUplink2\(aq,
  119217. \(aqdvUplink3\(aq
  119218. ],
  119219. \(aqcapability\(aq: {
  119220. \(aqportgroup_operation_supported\(aq: false,
  119221. \(aqoperation_supported\(aq: true,
  119222. \(aqport_operation_supported\(aq: false
  119223. },
  119224. \(aqlacp_api_version\(aq: \(aqmultipleLag\(aq,
  119225. \(aqcontact_email\(aq: \(aqfoo@email.com\(aq,
  119226. \(aqproduct_info\(aq: {
  119227. \(aqversion\(aq:
  119228. \(aq6.0.0\(aq,
  119229. \(aqvendor\(aq:
  119230. \(aqVMware,
  119231. Inc.\(aq,
  119232. \(aqname\(aq:
  119233. \(aqDVS\(aq
  119234. },
  119235. \(aqnetwork_resource_management_enabled\(aq: true,
  119236. \(aqcontact_name\(aq: \(aqme@email.com\(aq,
  119237. \(aqinfrastructure_traffic_resource_pools\(aq: [
  119238. {
  119239. \(aqreservation\(aq: 0,
  119240. \(aqlimit\(aq: 1000,
  119241. \(aqshare_level\(aq: \(aqhigh\(aq,
  119242. \(aqkey\(aq: \(aqmanagement\(aq,
  119243. \(aqnum_shares\(aq: 100
  119244. },
  119245. {
  119246. \(aqreservation\(aq: 0,
  119247. \(aqlimit\(aq: \-1,
  119248. \(aqshare_level\(aq: \(aqnormal\(aq,
  119249. \(aqkey\(aq: \(aqfaultTolerance\(aq,
  119250. \(aqnum_shares\(aq: 50
  119251. },
  119252. {
  119253. \(aqreservation\(aq: 0,
  119254. \(aqlimit\(aq: 32000,
  119255. \(aqshare_level\(aq: \(aqnormal\(aq,
  119256. \(aqkey\(aq: \(aqvmotion\(aq,
  119257. \(aqnum_shares\(aq: 50
  119258. },
  119259. {
  119260. \(aqreservation\(aq: 10000,
  119261. \(aqlimit\(aq: \-1,
  119262. \(aqshare_level\(aq: \(aqnormal\(aq,
  119263. \(aqkey\(aq: \(aqvirtualMachine\(aq,
  119264. \(aqnum_shares\(aq: 50
  119265. },
  119266. {
  119267. \(aqreservation\(aq: 0,
  119268. \(aqlimit\(aq: \-1,
  119269. \(aqshare_level\(aq: \(aqcustom\(aq,
  119270. \(aqkey\(aq: \(aqiSCSI\(aq,
  119271. \(aqnum_shares\(aq: 75
  119272. },
  119273. {
  119274. \(aqreservation\(aq: 0,
  119275. \(aqlimit\(aq: \-1,
  119276. \(aqshare_level\(aq: \(aqnormal\(aq,
  119277. \(aqkey\(aq: \(aqnfs\(aq,
  119278. \(aqnum_shares\(aq: 50
  119279. },
  119280. {
  119281. \(aqreservation\(aq: 0,
  119282. \(aqlimit\(aq: \-1,
  119283. \(aqshare_level\(aq: \(aqnormal\(aq,
  119284. \(aqkey\(aq: \(aqhbr\(aq,
  119285. \(aqnum_shares\(aq: 50
  119286. },
  119287. {
  119288. \(aqreservation\(aq: 8750,
  119289. \(aqlimit\(aq: 15000,
  119290. \(aqshare_level\(aq: \(aqhigh\(aq,
  119291. \(aqkey\(aq: \(aqvsan\(aq,
  119292. \(aqnum_shares\(aq: 100
  119293. },
  119294. {
  119295. \(aqreservation\(aq: 0,
  119296. \(aqlimit\(aq: \-1,
  119297. \(aqshare_level\(aq: \(aqnormal\(aq,
  119298. \(aqkey\(aq: \(aqvdp\(aq,
  119299. \(aqnum_shares\(aq: 50
  119300. }
  119301. ],
  119302. \(aqlink_discovery_protocol\(aq: {
  119303. \(aqoperation\(aq:
  119304. \(aqlisten\(aq,
  119305. \(aqprotocol\(aq:
  119306. \(aqcdp\(aq
  119307. },
  119308. \(aqnetwork_resource_control_version\(aq: \(aqversion3\(aq,
  119309. \(aqdescription\(aq: \(aqManaged by Salt. Random settings.\(aq
  119310. .ft P
  119311. .fi
  119312. .UNINDENT
  119313. .UNINDENT
  119314. .sp
  119315. Note: The mandatory attribute is: \fBname\fP\&.
  119316. .SS Portgroup
  119317. .INDENT 0.0
  119318. .INDENT 3.5
  119319. .sp
  119320. .nf
  119321. .ft C
  119322. \(aqsecurity_policy\(aq: {
  119323. \(aqallow_promiscuous\(aq: true,
  119324. \(aqmac_changes\(aq: false,
  119325. \(aqforged_transmits\(aq: true
  119326. },
  119327. \(aqname\(aq: \(aqvmotion\-v702\(aq,
  119328. \(aqout_shaping\(aq: {
  119329. \(aqenabled\(aq: true,
  119330. \(aqaverage_bandwidth\(aq: 1500,
  119331. \(aqburst_size\(aq: 4096,
  119332. \(aqpeak_bandwidth\(aq: 1500
  119333. },
  119334. \(aqnum_ports\(aq: 128,
  119335. \(aqteaming\(aq: {
  119336. \(aqport_order\(aq: {
  119337. \(aqactive\(aq: [
  119338. \(aqdvUplink2\(aq
  119339. ],
  119340. \(aqstandby\(aq: [
  119341. \(aqdvUplink1\(aq
  119342. ]
  119343. },
  119344. \(aqnotify_switches\(aq: false,
  119345. \(aqreverse_policy\(aq: true,
  119346. \(aqrolling_order\(aq: false,
  119347. \(aqpolicy\(aq: \(aqfailover_explicit\(aq,
  119348. \(aqfailure_criteria\(aq: {
  119349. \(aqcheck_error_percent\(aq: true,
  119350. \(aqfull_duplex\(aq: false,
  119351. \(aqcheck_duplex\(aq: false,
  119352. \(aqpercentage\(aq: 50,
  119353. \(aqcheck_speed\(aq: \(aqminimum\(aq,
  119354. \(aqspeed\(aq: 20,
  119355. \(aqcheck_beacon\(aq: true
  119356. }
  119357. },
  119358. \(aqtype\(aq: \(aqearlyBinding\(aq,
  119359. \(aqvlan_id\(aq: 100,
  119360. \(aqdescription\(aq: \(aqManaged by Salt. Random settings.\(aq
  119361. .ft P
  119362. .fi
  119363. .UNINDENT
  119364. .UNINDENT
  119365. .sp
  119366. Note: The mandatory attributes are: \fBname\fP, \fBtype\fP\&.
  119367. .SS Dependencies
  119368. .INDENT 0.0
  119369. .IP \(bu 2
  119370. pyVmomi Python Module
  119371. .UNINDENT
  119372. .SS pyVmomi
  119373. .sp
  119374. PyVmomi can be installed via pip:
  119375. .INDENT 0.0
  119376. .INDENT 3.5
  119377. .sp
  119378. .nf
  119379. .ft C
  119380. pip install pyVmomi
  119381. .ft P
  119382. .fi
  119383. .UNINDENT
  119384. .UNINDENT
  119385. .sp
  119386. \fBNOTE:\fP
  119387. .INDENT 0.0
  119388. .INDENT 3.5
  119389. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  119390. versions of Python. If using version 6.0 of pyVmomi, Python 2.7.9,
  119391. or newer must be present. This is due to an upstream dependency
  119392. in pyVmomi 6.0 that is not supported in Python versions 2.7 to 2.7.8. If the
  119393. version of Python is not in the supported range, you will need to install an
  119394. earlier version of pyVmomi. See \fI\%Issue #29537\fP for more information.
  119395. .UNINDENT
  119396. .UNINDENT
  119397. .sp
  119398. Based on the note above, to install an earlier version of pyVmomi than the
  119399. version currently listed in PyPi, run the following:
  119400. .INDENT 0.0
  119401. .INDENT 3.5
  119402. .sp
  119403. .nf
  119404. .ft C
  119405. pip install pyVmomi==5.5.0.2014.1.1
  119406. .ft P
  119407. .fi
  119408. .UNINDENT
  119409. .UNINDENT
  119410. .sp
  119411. The 5.5.0.2014.1.1 is a known stable version that this original ESXi State
  119412. Module was developed against.
  119413. .INDENT 0.0
  119414. .TP
  119415. .B salt.states.dvs.dvs_configured(name, dvs)
  119416. Configures a DVS.
  119417. .sp
  119418. Creates a new DVS, if it doesn\(aqt exist in the provided datacenter or
  119419. reconfigures it if configured differently.
  119420. .INDENT 7.0
  119421. .TP
  119422. .B dvs
  119423. DVS dict representations (see module sysdocs)
  119424. .UNINDENT
  119425. .UNINDENT
  119426. .INDENT 0.0
  119427. .TP
  119428. .B salt.states.dvs.portgroups_configured(name, dvs, portgroups)
  119429. Configures portgroups on a DVS.
  119430. .sp
  119431. Creates/updates/removes portgroups in a provided DVS
  119432. .INDENT 7.0
  119433. .TP
  119434. .B dvs
  119435. Name of the DVS
  119436. .TP
  119437. .B portgroups
  119438. Portgroup dict representations (see module sysdocs)
  119439. .UNINDENT
  119440. .UNINDENT
  119441. .INDENT 0.0
  119442. .TP
  119443. .B salt.states.dvs.uplink_portgroup_configured(name, dvs, uplink_portgroup)
  119444. Configures the uplink portgroup on a DVS. The state assumes there is only
  119445. one uplink portgroup.
  119446. .INDENT 7.0
  119447. .TP
  119448. .B dvs
  119449. Name of the DVS
  119450. .TP
  119451. .B upling_portgroup
  119452. Uplink portgroup dict representations (see module sysdocs)
  119453. .UNINDENT
  119454. .UNINDENT
  119455. .SS salt.states.elasticsearch_index
  119456. .sp
  119457. State module to manage Elasticsearch indices
  119458. .sp
  119459. New in version 2015.8.0.
  119460. .sp
  119461. Deprecated since version 2017.7.0: Use elasticsearch state instead
  119462. .INDENT 0.0
  119463. .TP
  119464. .B salt.states.elasticsearch_index.absent(name)
  119465. Ensure that the named index is absent.
  119466. .INDENT 7.0
  119467. .TP
  119468. .B name
  119469. Name of the index to remove
  119470. .UNINDENT
  119471. .UNINDENT
  119472. .INDENT 0.0
  119473. .TP
  119474. .B salt.states.elasticsearch_index.present(name, definition=None)
  119475. New in version 2015.8.0.
  119476. .sp
  119477. Changed in version 2017.3.0: Marked \fBdefinition\fP as optional.
  119478. .sp
  119479. Ensure that the named index is present.
  119480. .INDENT 7.0
  119481. .TP
  119482. .B name
  119483. Name of the index to add
  119484. .TP
  119485. .B definition
  119486. Optional dict for creation parameters as per \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-create\-index.html\fP
  119487. .UNINDENT
  119488. .sp
  119489. \fBExample:\fP
  119490. .INDENT 7.0
  119491. .INDENT 3.5
  119492. .sp
  119493. .nf
  119494. .ft C
  119495. # Default settings
  119496. mytestindex:
  119497. elasticsearch_index.present
  119498. # Extra settings
  119499. mytestindex2:
  119500. elasticsearch_index.present:
  119501. \- definition:
  119502. settings:
  119503. index:
  119504. number_of_shards: 10
  119505. .ft P
  119506. .fi
  119507. .UNINDENT
  119508. .UNINDENT
  119509. .UNINDENT
  119510. .SS salt.states.elasticsearch_index_template
  119511. .sp
  119512. State module to manage Elasticsearch index templates
  119513. .sp
  119514. New in version 2015.8.0.
  119515. .sp
  119516. Deprecated since version 2017.7.0: Use elasticsearch state instead
  119517. .INDENT 0.0
  119518. .TP
  119519. .B salt.states.elasticsearch_index_template.absent(name)
  119520. Ensure that the named index template is absent.
  119521. .INDENT 7.0
  119522. .TP
  119523. .B name
  119524. Name of the index to remove
  119525. .UNINDENT
  119526. .UNINDENT
  119527. .INDENT 0.0
  119528. .TP
  119529. .B salt.states.elasticsearch_index_template.present(name, definition)
  119530. New in version 2015.8.0.
  119531. .sp
  119532. Changed in version 2017.3.0: Marked \fBdefinition\fP as required.
  119533. .sp
  119534. Ensure that the named index templat eis present.
  119535. .INDENT 7.0
  119536. .TP
  119537. .B name
  119538. Name of the index to add
  119539. .TP
  119540. .B definition
  119541. Required dict for creation parameters as per \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-templates.html\fP
  119542. .UNINDENT
  119543. .sp
  119544. \fBExample:\fP
  119545. .INDENT 7.0
  119546. .INDENT 3.5
  119547. .sp
  119548. .nf
  119549. .ft C
  119550. mytestindex2_template:
  119551. elasticsearch_index_template.present:
  119552. \- definition:
  119553. template: logstash\-*
  119554. order: 1
  119555. settings:
  119556. number_of_shards: 1
  119557. .ft P
  119558. .fi
  119559. .UNINDENT
  119560. .UNINDENT
  119561. .UNINDENT
  119562. .SS salt.states.eselect
  119563. .SS Management of Gentoo configuration using eselect
  119564. .sp
  119565. A state module to manage Gentoo configuration via eselect
  119566. .INDENT 0.0
  119567. .TP
  119568. .B salt.states.eselect.set_(name, target, module_parameter=None, action_parameter=None)
  119569. Verify that the given module is set to the given target
  119570. .INDENT 7.0
  119571. .TP
  119572. .B name
  119573. The name of the module
  119574. .TP
  119575. .B target
  119576. The target to be set for this module
  119577. .TP
  119578. .B module_parameter
  119579. additional params passed to the defined module
  119580. .TP
  119581. .B action_parameter
  119582. additional params passed to the defined action
  119583. .UNINDENT
  119584. .INDENT 7.0
  119585. .INDENT 3.5
  119586. .sp
  119587. .nf
  119588. .ft C
  119589. profile:
  119590. eselect.set:
  119591. \- target: hardened/linux/amd64
  119592. .ft P
  119593. .fi
  119594. .UNINDENT
  119595. .UNINDENT
  119596. .UNINDENT
  119597. .SS salt.states.esxdatacenter module
  119598. .sp
  119599. Salt states to create and manage VMware vSphere datacenters (datacenters).
  119600. .INDENT 0.0
  119601. .TP
  119602. .B codeauthor
  119603. \fIAlexandru Bleotu <alexandru.bleotu@morganstaley.com>\fP
  119604. .UNINDENT
  119605. .SS Dependencies
  119606. .INDENT 0.0
  119607. .IP \(bu 2
  119608. pyVmomi Python Module
  119609. .UNINDENT
  119610. .SS States
  119611. .SS datacenter_configured
  119612. .sp
  119613. Makes sure a datacenter exists and is correctly configured.
  119614. .sp
  119615. If the state is run by an \fBesxdatacenter\fP minion, the name of the datacenter
  119616. is retrieved from the proxy details, otherwise the datacenter has the same name
  119617. as the state.
  119618. .sp
  119619. Supported proxies: esxdatacenter
  119620. .sp
  119621. Example:
  119622. .sp
  119623. 1. Make sure that a datacenter named \fBtarget_dc\fP exists on the vCenter, using a
  119624. \fBesxdatacenter\fP proxy:
  119625. .sp
  119626. Proxy minion configuration (connects passthrough to the vCenter):
  119627. .INDENT 0.0
  119628. .INDENT 3.5
  119629. .sp
  119630. .nf
  119631. .ft C
  119632. proxy:
  119633. proxytype: esxdatacenter
  119634. datacenter: target_dc
  119635. vcenter: vcenter.fake.com
  119636. mechanism: sspi
  119637. domain: fake.com
  119638. principal: host
  119639. .ft P
  119640. .fi
  119641. .UNINDENT
  119642. .UNINDENT
  119643. .sp
  119644. State configuration:
  119645. .INDENT 0.0
  119646. .INDENT 3.5
  119647. .sp
  119648. .nf
  119649. .ft C
  119650. datacenter_state:
  119651. esxdatacenter.datacenter_configured
  119652. .ft P
  119653. .fi
  119654. .UNINDENT
  119655. .UNINDENT
  119656. .INDENT 0.0
  119657. .TP
  119658. .B salt.states.esxdatacenter.datacenter_configured(name)
  119659. Makes sure a datacenter exists.
  119660. .sp
  119661. If the state is run by an \fBesxdatacenter\fP minion, the name of the
  119662. datacenter is retrieved from the proxy details, otherwise the datacenter
  119663. has the same name as the state.
  119664. .sp
  119665. Supported proxies: esxdatacenter
  119666. .INDENT 7.0
  119667. .TP
  119668. .B name:
  119669. Datacenter name. Ignored if the proxytype is \fBesxdatacenter\fP\&.
  119670. .UNINDENT
  119671. .UNINDENT
  119672. .SS salt.states.etcd_mod
  119673. .SS Manage etcd Keys
  119674. .sp
  119675. New in version 2015.8.0.
  119676. .INDENT 0.0
  119677. .TP
  119678. .B depends
  119679. .INDENT 7.0
  119680. .IP \(bu 2
  119681. python\-etcd
  119682. .UNINDENT
  119683. .UNINDENT
  119684. .sp
  119685. This state module supports setting and removing keys from etcd.
  119686. .SS Configuration
  119687. .sp
  119688. To work with an etcd server you must configure an etcd profile. The etcd config
  119689. can be set in either the Salt Minion configuration file or in pillar:
  119690. .INDENT 0.0
  119691. .INDENT 3.5
  119692. .sp
  119693. .nf
  119694. .ft C
  119695. my_etd_config:
  119696. etcd.host: 127.0.0.1
  119697. etcd.port: 4001
  119698. .ft P
  119699. .fi
  119700. .UNINDENT
  119701. .UNINDENT
  119702. .sp
  119703. It is technically possible to configure etcd without using a profile, but this
  119704. is not considered to be a best practice, especially when multiple etcd servers
  119705. or clusters are available.
  119706. .INDENT 0.0
  119707. .INDENT 3.5
  119708. .sp
  119709. .nf
  119710. .ft C
  119711. etcd.host: 127.0.0.1
  119712. etcd.port: 4001
  119713. .ft P
  119714. .fi
  119715. .UNINDENT
  119716. .UNINDENT
  119717. .sp
  119718. \fBNOTE:\fP
  119719. .INDENT 0.0
  119720. .INDENT 3.5
  119721. The etcd configuration can also be set in the Salt Master config file,
  119722. but in order to use any etcd configurations defined in the Salt Master
  119723. config, the \fBpillar_opts\fP must be set to \fBTrue\fP\&.
  119724. .sp
  119725. Be aware that setting \fBpillar_opts\fP to \fBTrue\fP has security implications
  119726. as this makes all master configuration settings available in all minion\(aqs
  119727. pillars.
  119728. .UNINDENT
  119729. .UNINDENT
  119730. .sp
  119731. Etcd profile configuration can be overridden using following arguments: \fBhost\fP,
  119732. \fBport\fP, \fBusername\fP, \fBpassword\fP, \fBca\fP, \fBclient_key\fP and \fBclient_cert\fP\&.
  119733. .INDENT 0.0
  119734. .INDENT 3.5
  119735. .sp
  119736. .nf
  119737. .ft C
  119738. my\-value:
  119739. etcd.set:
  119740. \- name: /path/to/key
  119741. \- value: value
  119742. \- host: 127.0.0.1
  119743. \- port: 2379
  119744. \- username: user
  119745. \- password: pass
  119746. .ft P
  119747. .fi
  119748. .UNINDENT
  119749. .UNINDENT
  119750. .SS Available Functions
  119751. .INDENT 0.0
  119752. .IP \(bu 2
  119753. \fBset\fP
  119754. .sp
  119755. This will set a value to a key in etcd. Changes will be returned if the key
  119756. has been created or the value of the key has been updated. This
  119757. means you can watch these states for changes.
  119758. .INDENT 2.0
  119759. .INDENT 3.5
  119760. .sp
  119761. .nf
  119762. .ft C
  119763. /foo/bar/baz:
  119764. etcd.set:
  119765. \- value: foo
  119766. \- profile: my_etcd_config
  119767. .ft P
  119768. .fi
  119769. .UNINDENT
  119770. .UNINDENT
  119771. .IP \(bu 2
  119772. \fBwait_set\fP
  119773. .sp
  119774. Performs the same functionality as \fBset\fP but only if a watch requisite is \fBTrue\fP\&.
  119775. .INDENT 2.0
  119776. .INDENT 3.5
  119777. .sp
  119778. .nf
  119779. .ft C
  119780. /some/file.txt:
  119781. file.managed:
  119782. \- source: salt://file.txt
  119783. /foo/bar/baz:
  119784. etcd.wait_set:
  119785. \- value: foo
  119786. \- profile: my_etcd_config
  119787. \- watch:
  119788. \- file: /some/file.txt
  119789. .ft P
  119790. .fi
  119791. .UNINDENT
  119792. .UNINDENT
  119793. .IP \(bu 2
  119794. \fBrm\fP
  119795. .sp
  119796. This will delete a key from etcd. If the key exists then changes will be
  119797. returned and thus you can watch for changes on the state, if the key does
  119798. not exist then no changes will occur.
  119799. .INDENT 2.0
  119800. .INDENT 3.5
  119801. .sp
  119802. .nf
  119803. .ft C
  119804. /foo/bar/baz:
  119805. etcd.rm:
  119806. \- profile: my_etcd_config
  119807. .ft P
  119808. .fi
  119809. .UNINDENT
  119810. .UNINDENT
  119811. .IP \(bu 2
  119812. \fBwait_rm\fP
  119813. .sp
  119814. Performs the same functionality as \fBrm\fP but only if a watch requisite is \fBTrue\fP\&.
  119815. .INDENT 2.0
  119816. .INDENT 3.5
  119817. .sp
  119818. .nf
  119819. .ft C
  119820. /some/file.txt:
  119821. file.managed:
  119822. \- source: salt://file.txt
  119823. /foo/bar/baz:
  119824. etcd.wait_rm:
  119825. \- profile: my_etcd_config
  119826. \- watch:
  119827. \- file: /some/file.txt
  119828. .ft P
  119829. .fi
  119830. .UNINDENT
  119831. .UNINDENT
  119832. .UNINDENT
  119833. .INDENT 0.0
  119834. .TP
  119835. .B salt.states.etcd_mod.directory(name, profile=None, **kwargs)
  119836. Create a directory in etcd.
  119837. .INDENT 7.0
  119838. .TP
  119839. .B name
  119840. The etcd directory name, for example: \fB/foo/bar/baz\fP\&.
  119841. .TP
  119842. .B profile
  119843. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119844. been defined in the Salt Master config.
  119845. .INDENT 7.0
  119846. .INDENT 3.5
  119847. .sp
  119848. .nf
  119849. .ft C
  119850. my_etd_config:
  119851. etcd.host: 127.0.0.1
  119852. etcd.port: 4001
  119853. .ft P
  119854. .fi
  119855. .UNINDENT
  119856. .UNINDENT
  119857. .UNINDENT
  119858. .UNINDENT
  119859. .INDENT 0.0
  119860. .TP
  119861. .B salt.states.etcd_mod.mod_watch(name, **kwargs)
  119862. The etcd watcher, called to invoke the watch command.
  119863. When called, execute a etcd function based on a watch call requisite.
  119864. .sp
  119865. \fBNOTE:\fP
  119866. .INDENT 7.0
  119867. .INDENT 3.5
  119868. This state exists to support special handling of the \fBwatch\fP
  119869. requisite\&. It should not be called directly.
  119870. .sp
  119871. Parameters for this function should be set by the state being triggered.
  119872. .UNINDENT
  119873. .UNINDENT
  119874. .UNINDENT
  119875. .INDENT 0.0
  119876. .TP
  119877. .B salt.states.etcd_mod.rm(name, recurse=False, profile=None, **kwargs)
  119878. Deletes a key from etcd
  119879. .INDENT 7.0
  119880. .TP
  119881. .B name
  119882. The etcd key name to remove, for example \fB/foo/bar/baz\fP\&.
  119883. .TP
  119884. .B recurse
  119885. Optional, defaults to \fBFalse\fP\&. If \fBTrue\fP performs a recursive delete.
  119886. .TP
  119887. .B profile
  119888. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119889. been defined in the Salt Master config.
  119890. .INDENT 7.0
  119891. .INDENT 3.5
  119892. .sp
  119893. .nf
  119894. .ft C
  119895. my_etd_config:
  119896. etcd.host: 127.0.0.1
  119897. etcd.port: 4001
  119898. .ft P
  119899. .fi
  119900. .UNINDENT
  119901. .UNINDENT
  119902. .UNINDENT
  119903. .UNINDENT
  119904. .INDENT 0.0
  119905. .TP
  119906. .B salt.states.etcd_mod.set_(name, value, profile=None, **kwargs)
  119907. Set a key in etcd
  119908. .INDENT 7.0
  119909. .TP
  119910. .B name
  119911. The etcd key name, for example: \fB/foo/bar/baz\fP\&.
  119912. .TP
  119913. .B value
  119914. The value the key should contain.
  119915. .TP
  119916. .B profile
  119917. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119918. been defined in the Salt Master config.
  119919. .INDENT 7.0
  119920. .INDENT 3.5
  119921. .sp
  119922. .nf
  119923. .ft C
  119924. my_etd_config:
  119925. etcd.host: 127.0.0.1
  119926. etcd.port: 4001
  119927. .ft P
  119928. .fi
  119929. .UNINDENT
  119930. .UNINDENT
  119931. .UNINDENT
  119932. .UNINDENT
  119933. .INDENT 0.0
  119934. .TP
  119935. .B salt.states.etcd_mod.wait_rm(name, recurse=False, profile=None, **kwargs)
  119936. Deletes a key from etcd only if the watch statement calls it.
  119937. This function is also aliased as \fBwait_rm\fP\&.
  119938. .INDENT 7.0
  119939. .TP
  119940. .B name
  119941. The etcd key name to remove, for example \fB/foo/bar/baz\fP\&.
  119942. .TP
  119943. .B recurse
  119944. Optional, defaults to \fBFalse\fP\&. If \fBTrue\fP performs a recursive
  119945. delete, see: \fI\%https://python\-etcd.readthedocs.io/en/latest/#delete\-a\-key\fP\&.
  119946. .TP
  119947. .B profile
  119948. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119949. been defined in the Salt Master config.
  119950. .INDENT 7.0
  119951. .INDENT 3.5
  119952. .sp
  119953. .nf
  119954. .ft C
  119955. my_etd_config:
  119956. etcd.host: 127.0.0.1
  119957. etcd.port: 4001
  119958. .ft P
  119959. .fi
  119960. .UNINDENT
  119961. .UNINDENT
  119962. .UNINDENT
  119963. .UNINDENT
  119964. .INDENT 0.0
  119965. .TP
  119966. .B salt.states.etcd_mod.wait_set(name, value, profile=None, **kwargs)
  119967. Set a key in etcd only if the watch statement calls it. This function is
  119968. also aliased as \fBwait_set\fP\&.
  119969. .INDENT 7.0
  119970. .TP
  119971. .B name
  119972. The etcd key name, for example: \fB/foo/bar/baz\fP\&.
  119973. .TP
  119974. .B value
  119975. The value the key should contain.
  119976. .TP
  119977. .B profile
  119978. The etcd profile to use that has been configured on the Salt Master,
  119979. this is optional and defaults to \fBNone\fP\&.
  119980. .INDENT 7.0
  119981. .INDENT 3.5
  119982. .sp
  119983. .nf
  119984. .ft C
  119985. my_etd_config:
  119986. etcd.host: 127.0.0.1
  119987. etcd.port: 4001
  119988. .ft P
  119989. .fi
  119990. .UNINDENT
  119991. .UNINDENT
  119992. .UNINDENT
  119993. .UNINDENT
  119994. .SS salt.states.ethtool module
  119995. .sp
  119996. Configuration of network device
  119997. .sp
  119998. New in version 2016.11.0.
  119999. .INDENT 0.0
  120000. .TP
  120001. .B codeauthor
  120002. Krzysztof Pawlowski <\fI\%msciciel@msciciel.eu\fP>
  120003. .TP
  120004. .B maturity
  120005. new
  120006. .TP
  120007. .B depends
  120008. python\-ethtool
  120009. .TP
  120010. .B platform
  120011. linux
  120012. .UNINDENT
  120013. .INDENT 0.0
  120014. .INDENT 3.5
  120015. .sp
  120016. .nf
  120017. .ft C
  120018. eth0:
  120019. ethtool.coalesce:
  120020. \- name: eth0
  120021. \- rx_usecs: 24
  120022. \- tx_usecs: 48
  120023. eth0:
  120024. ethtool.ring:
  120025. \- name: eth0
  120026. \- rx: 1024
  120027. \- tx: 1024
  120028. eth0:
  120029. ethtool.offload:
  120030. \- name: eth0
  120031. \- tcp_segmentation_offload: on
  120032. .ft P
  120033. .fi
  120034. .UNINDENT
  120035. .UNINDENT
  120036. .INDENT 0.0
  120037. .TP
  120038. .B salt.states.ethtool.coalesce(name, **kwargs)
  120039. Manage coalescing settings of network device
  120040. .INDENT 7.0
  120041. .TP
  120042. .B name
  120043. Interface name to apply coalescing settings
  120044. .UNINDENT
  120045. .INDENT 7.0
  120046. .INDENT 3.5
  120047. .sp
  120048. .nf
  120049. .ft C
  120050. eth0:
  120051. ethtool.coalesce:
  120052. \- name: eth0
  120053. \- adaptive_rx: on
  120054. \- adaptive_tx: on
  120055. \- rx_usecs: 24
  120056. \- rx_frame: 0
  120057. \- rx_usecs_irq: 0
  120058. \- rx_frames_irq: 0
  120059. \- tx_usecs: 48
  120060. \- tx_frames: 0
  120061. \- tx_usecs_irq: 0
  120062. \- tx_frames_irq: 0
  120063. \- stats_block_usecs: 0
  120064. \- pkt_rate_low: 0
  120065. \- rx_usecs_low: 0
  120066. \- rx_frames_low: 0
  120067. \- tx_usecs_low: 0
  120068. \- tx_frames_low: 0
  120069. \- pkt_rate_high: 0
  120070. \- rx_usecs_high: 0
  120071. \- rx_frames_high: 0
  120072. \- tx_usecs_high: 0
  120073. \- tx_frames_high: 0
  120074. \- sample_interval: 0
  120075. .ft P
  120076. .fi
  120077. .UNINDENT
  120078. .UNINDENT
  120079. .UNINDENT
  120080. .INDENT 0.0
  120081. .TP
  120082. .B salt.states.ethtool.offload(name, **kwargs)
  120083. Manage protocol offload and other features of network device
  120084. .INDENT 7.0
  120085. .TP
  120086. .B name
  120087. Interface name to apply coalescing settings
  120088. .UNINDENT
  120089. .INDENT 7.0
  120090. .INDENT 3.5
  120091. .sp
  120092. .nf
  120093. .ft C
  120094. eth0:
  120095. ethtool.offload:
  120096. \- name: eth0
  120097. \- tcp_segmentation_offload: on
  120098. .ft P
  120099. .fi
  120100. .UNINDENT
  120101. .UNINDENT
  120102. .UNINDENT
  120103. .INDENT 0.0
  120104. .TP
  120105. .B salt.states.ethtool.ring(name, **kwargs)
  120106. Manage rx/tx ring parameters of network device
  120107. .sp
  120108. Use \(aqmax\(aq word to set with factory maximum
  120109. .INDENT 7.0
  120110. .TP
  120111. .B name
  120112. Interface name to apply ring parameters
  120113. .UNINDENT
  120114. .INDENT 7.0
  120115. .INDENT 3.5
  120116. .sp
  120117. .nf
  120118. .ft C
  120119. eth0:
  120120. ethtool.ring:
  120121. \- name: eth0
  120122. \- rx: 1024
  120123. \- rx_mini: 0
  120124. \- rx_jumbo: 0
  120125. \- tx: max
  120126. .ft P
  120127. .fi
  120128. .UNINDENT
  120129. .UNINDENT
  120130. .UNINDENT
  120131. .SS salt.states.firewall module
  120132. .sp
  120133. State to check firewall configurations
  120134. .sp
  120135. New in version 2016.3.0.
  120136. .INDENT 0.0
  120137. .TP
  120138. .B salt.states.firewall.check(name, port=None, **kwargs)
  120139. Checks if there is an open connection from the minion to the defined
  120140. host on a specific port.
  120141. .INDENT 7.0
  120142. .TP
  120143. .B name
  120144. host name or ip address to test connection to
  120145. .TP
  120146. .B port
  120147. The port to test the connection on
  120148. .TP
  120149. .B kwargs
  120150. .INDENT 7.0
  120151. .TP
  120152. .B Additional parameters, parameters allowed are:
  120153. proto (tcp or udp)
  120154. family (ipv4 or ipv6)
  120155. timeout
  120156. .UNINDENT
  120157. .UNINDENT
  120158. .INDENT 7.0
  120159. .INDENT 3.5
  120160. .sp
  120161. .nf
  120162. .ft C
  120163. testgoogle:
  120164. firewall.check:
  120165. \- name: \(aqgoogle.com\(aq
  120166. \- port: 80
  120167. \- proto: \(aqtcp\(aq
  120168. .ft P
  120169. .fi
  120170. .UNINDENT
  120171. .UNINDENT
  120172. .UNINDENT
  120173. .SS salt.states.gem
  120174. .SS Installation of Ruby modules packaged as gems
  120175. .sp
  120176. A state module to manage rubygems. Gems can be set up to be installed
  120177. or removed. This module will use RVM or rbenv if they are installed. In that case,
  120178. you can specify what ruby version and gemset to target.
  120179. .INDENT 0.0
  120180. .INDENT 3.5
  120181. .sp
  120182. .nf
  120183. .ft C
  120184. addressable:
  120185. gem.installed:
  120186. \- user: rvm
  120187. \- ruby: jruby@jgemset
  120188. .ft P
  120189. .fi
  120190. .UNINDENT
  120191. .UNINDENT
  120192. .INDENT 0.0
  120193. .TP
  120194. .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)
  120195. Make sure that a gem is installed.
  120196. .INDENT 7.0
  120197. .TP
  120198. .B name
  120199. The name of the gem to install
  120200. .TP
  120201. .B ruby: None
  120202. Only for RVM or rbenv installations: the ruby version and gemset to
  120203. target.
  120204. .TP
  120205. .B gem_bin: None
  120206. Custom \fBgem\fP command to run instead of the default.
  120207. Use this to install gems to a non\-default ruby install. If you are
  120208. using rvm or rbenv use the ruby argument instead.
  120209. .TP
  120210. .B user: None
  120211. The user under which to run the \fBgem\fP command
  120212. .sp
  120213. New in version 0.17.0.
  120214. .TP
  120215. .B version
  120216. None
  120217. Specify the version to install for the gem.
  120218. Doesn\(aqt play nice with multiple gems at once
  120219. .TP
  120220. .B rdoc
  120221. False
  120222. Generate RDoc documentation for the gem(s).
  120223. .TP
  120224. .B ri
  120225. False
  120226. Generate RI documentation for the gem(s).
  120227. .TP
  120228. .B pre_releases
  120229. False
  120230. Install pre\-release version of gem(s) if available.
  120231. .TP
  120232. .B proxy
  120233. None
  120234. Use the specified HTTP proxy server for all outgoing traffic.
  120235. Format: \fI\%http://hostname[:port\fP]
  120236. .TP
  120237. .B source
  120238. None
  120239. Use the specified HTTP gem source server to download gem.
  120240. Format: \fI\%http://hostname[:port\fP]
  120241. .UNINDENT
  120242. .UNINDENT
  120243. .INDENT 0.0
  120244. .TP
  120245. .B salt.states.gem.removed(name, ruby=None, user=None, gem_bin=None)
  120246. Make sure that a gem is not installed.
  120247. .INDENT 7.0
  120248. .TP
  120249. .B name
  120250. The name of the gem to uninstall
  120251. .TP
  120252. .B gem_bin
  120253. None
  120254. Full path to \fBgem\fP binary to use.
  120255. .TP
  120256. .B ruby
  120257. None
  120258. If RVM or rbenv are installed, the ruby version and gemset to use.
  120259. Ignored if \fBgem_bin\fP is specified.
  120260. .TP
  120261. .B user: None
  120262. The user under which to run the \fBgem\fP command
  120263. .sp
  120264. New in version 0.17.0.
  120265. .UNINDENT
  120266. .UNINDENT
  120267. .INDENT 0.0
  120268. .TP
  120269. .B salt.states.gem.sources_add(name, ruby=None, user=None)
  120270. Make sure that a gem source is added.
  120271. .INDENT 7.0
  120272. .TP
  120273. .B name
  120274. The URL of the gem source to be added
  120275. .TP
  120276. .B ruby: None
  120277. For RVM or rbenv installations: the ruby version and gemset to target.
  120278. .TP
  120279. .B user: None
  120280. The user under which to run the \fBgem\fP command
  120281. .sp
  120282. New in version 0.17.0.
  120283. .UNINDENT
  120284. .UNINDENT
  120285. .INDENT 0.0
  120286. .TP
  120287. .B salt.states.gem.sources_remove(name, ruby=None, user=None)
  120288. Make sure that a gem source is removed.
  120289. .INDENT 7.0
  120290. .TP
  120291. .B name
  120292. The URL of the gem source to be removed
  120293. .TP
  120294. .B ruby: None
  120295. For RVM or rbenv installations: the ruby version and gemset to target.
  120296. .TP
  120297. .B user: None
  120298. The user under which to run the \fBgem\fP command
  120299. .sp
  120300. New in version 0.17.0.
  120301. .UNINDENT
  120302. .UNINDENT
  120303. .SS salt.states.github module
  120304. .sp
  120305. Github User State Module
  120306. .sp
  120307. New in version 2016.3.0..
  120308. .sp
  120309. This state is used to ensure presence of users in the Organization.
  120310. .INDENT 0.0
  120311. .INDENT 3.5
  120312. .sp
  120313. .nf
  120314. .ft C
  120315. ensure user test is present in github:
  120316. github.present:
  120317. \- name: \(aqExample TestUser1\(aq
  120318. \- email: example@domain.com
  120319. \- username: \(aqgitexample\(aq
  120320. .ft P
  120321. .fi
  120322. .UNINDENT
  120323. .UNINDENT
  120324. .INDENT 0.0
  120325. .TP
  120326. .B salt.states.github.absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120327. Ensure a github user is absent
  120328. .INDENT 7.0
  120329. .INDENT 3.5
  120330. .sp
  120331. .nf
  120332. .ft C
  120333. ensure user test is absent in github:
  120334. github.absent:
  120335. \- name: \(aqExample TestUser1\(aq
  120336. \- email: example@domain.com
  120337. \- username: \(aqgitexample\(aq
  120338. .ft P
  120339. .fi
  120340. .UNINDENT
  120341. .UNINDENT
  120342. .sp
  120343. The following parameters are required:
  120344. .INDENT 7.0
  120345. .TP
  120346. .B name
  120347. Github handle of the user in organization
  120348. .UNINDENT
  120349. .UNINDENT
  120350. .INDENT 0.0
  120351. .TP
  120352. .B salt.states.github.present(name, profile=u\(aqgithub\(aq, **kwargs)
  120353. Ensure a user is present
  120354. .INDENT 7.0
  120355. .INDENT 3.5
  120356. .sp
  120357. .nf
  120358. .ft C
  120359. ensure user test is present in github:
  120360. github.present:
  120361. \- name: \(aqgitexample\(aq
  120362. .ft P
  120363. .fi
  120364. .UNINDENT
  120365. .UNINDENT
  120366. .sp
  120367. The following parameters are required:
  120368. .INDENT 7.0
  120369. .TP
  120370. .B name
  120371. This is the github handle of the user in the organization
  120372. .UNINDENT
  120373. .UNINDENT
  120374. .INDENT 0.0
  120375. .TP
  120376. .B salt.states.github.repo_absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120377. Ensure a repo is absent.
  120378. .sp
  120379. Example:
  120380. .INDENT 7.0
  120381. .INDENT 3.5
  120382. .sp
  120383. .nf
  120384. .ft C
  120385. ensure repo test is absent in github:
  120386. github.repo_absent:
  120387. \- name: \(aqtest\(aq
  120388. .ft P
  120389. .fi
  120390. .UNINDENT
  120391. .UNINDENT
  120392. .sp
  120393. The following parameters are required:
  120394. .INDENT 7.0
  120395. .TP
  120396. .B name
  120397. This is the name of the repository in the organization.
  120398. .UNINDENT
  120399. .sp
  120400. New in version 2016.11.0.
  120401. .UNINDENT
  120402. .INDENT 0.0
  120403. .TP
  120404. .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)
  120405. Ensure a repository is present
  120406. .INDENT 7.0
  120407. .TP
  120408. .B name
  120409. This is the name of the repository.
  120410. .TP
  120411. .B description
  120412. The description of the repository.
  120413. .TP
  120414. .B homepage
  120415. The URL with more information about the repository.
  120416. .TP
  120417. .B private
  120418. The visiblity of the repository. Note that private repositories require
  120419. a paid GitHub account.
  120420. .TP
  120421. .B has_issues
  120422. Whether to enable issues for this repository.
  120423. .TP
  120424. .B has_wiki
  120425. Whether to enable the wiki for this repository.
  120426. .TP
  120427. .B has_downloads
  120428. Whether to enable downloads for this repository.
  120429. .TP
  120430. .B auto_init
  120431. Whether to create an initial commit with an empty README.
  120432. .TP
  120433. .B gitignore_template
  120434. The desired language or platform for a .gitignore, e.g "Haskell".
  120435. .TP
  120436. .B license_template
  120437. The desired LICENSE template to apply, e.g "mit" or "mozilla".
  120438. .TP
  120439. .B teams
  120440. The teams for which this repo should belong to, specified as a dict of
  120441. team name to permission (\(aqpull\(aq, \(aqpush\(aq or \(aqadmin\(aq).
  120442. .sp
  120443. New in version 2017.7.0.
  120444. .UNINDENT
  120445. .sp
  120446. Example:
  120447. .INDENT 7.0
  120448. .INDENT 3.5
  120449. .sp
  120450. .nf
  120451. .ft C
  120452. Ensure repo my\-repo is present in github:
  120453. github.repo_present:
  120454. \- name: \(aqmy\-repo\(aq
  120455. \- description: \(aqMy very important repository\(aq
  120456. .ft P
  120457. .fi
  120458. .UNINDENT
  120459. .UNINDENT
  120460. .sp
  120461. New in version 2016.11.0.
  120462. .UNINDENT
  120463. .INDENT 0.0
  120464. .TP
  120465. .B salt.states.github.team_absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120466. Ensure a team is absent.
  120467. .sp
  120468. Example:
  120469. .INDENT 7.0
  120470. .INDENT 3.5
  120471. .sp
  120472. .nf
  120473. .ft C
  120474. ensure team test is present in github:
  120475. github.team_absent:
  120476. \- name: \(aqtest\(aq
  120477. .ft P
  120478. .fi
  120479. .UNINDENT
  120480. .UNINDENT
  120481. .sp
  120482. The following parameters are required:
  120483. .INDENT 7.0
  120484. .TP
  120485. .B name
  120486. This is the name of the team in the organization.
  120487. .UNINDENT
  120488. .sp
  120489. New in version 2016.11.0.
  120490. .UNINDENT
  120491. .INDENT 0.0
  120492. .TP
  120493. .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)
  120494. Ensure a team is present
  120495. .INDENT 7.0
  120496. .TP
  120497. .B name
  120498. This is the name of the team in the organization.
  120499. .TP
  120500. .B description
  120501. The description of the team.
  120502. .TP
  120503. .B repo_names
  120504. The names of repositories to add the team to.
  120505. .TP
  120506. .B privacy
  120507. The level of privacy for the team, can be \(aqsecret\(aq or \(aqclosed\(aq. Defaults
  120508. to secret.
  120509. .TP
  120510. .B permission
  120511. The default permission for new repositories added to the team, can be
  120512. \(aqpull\(aq, \(aqpush\(aq or \(aqadmin\(aq. Defaults to pull.
  120513. .TP
  120514. .B members
  120515. The members belonging to the team, specified as a dict of member name to
  120516. optional configuration. Options include \(aqenforce_mfa_from\(aq and \(aqmfa_exempt\(aq.
  120517. .TP
  120518. .B enforce_mfa
  120519. Whether to enforce MFA requirements on members of the team. If True then
  120520. all members without \fImfa_exempt: True\fP configured will be removed from
  120521. the team. Note that \fIno_mfa_grace_seconds\fP may be set to allow members
  120522. a grace period.
  120523. .TP
  120524. .B no_mfa_grace_seconds
  120525. The number of seconds of grace time that a member will have to enable MFA
  120526. before being removed from the team. The grace period will begin from
  120527. \fIenforce_mfa_from\fP on the member configuration, which defaults to
  120528. 1970/01/01.
  120529. .UNINDENT
  120530. .sp
  120531. Example:
  120532. .INDENT 7.0
  120533. .INDENT 3.5
  120534. .sp
  120535. .nf
  120536. .ft C
  120537. Ensure team test is present in github:
  120538. github.team_present:
  120539. \- name: \(aqtest\(aq
  120540. \- members:
  120541. user1: {}
  120542. user2: {}
  120543. Ensure team test_mfa is present in github:
  120544. github.team_present:
  120545. \- name: \(aqtest_mfa\(aq
  120546. \- members:
  120547. user1:
  120548. enforce_mfa_from: 2016/06/15
  120549. \- enforce_mfa: True
  120550. .ft P
  120551. .fi
  120552. .UNINDENT
  120553. .UNINDENT
  120554. .sp
  120555. New in version 2016.11.0.
  120556. .UNINDENT
  120557. .SS salt.states.glance
  120558. .SS Managing Images in OpenStack Glance
  120559. .INDENT 0.0
  120560. .TP
  120561. .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)
  120562. Checks if given image is present with properties
  120563. set as specified.
  120564. .sp
  120565. An image should got through the stages \(aqqueued\(aq, \(aqsaving\(aq
  120566. before becoming \(aqactive\(aq. The attribute \(aqchecksum\(aq can
  120567. only be checked once the image is active.
  120568. If you don\(aqt specify \(aqwait_for\(aq but \(aqchecksum\(aq the function
  120569. will wait for the image to become active before comparing
  120570. checksums. If you don\(aqt specify checksum either the function
  120571. will return when the image reached \(aqsaving\(aq.
  120572. The default timeout for both is 30 seconds.
  120573. .INDENT 7.0
  120574. .TP
  120575. .B Supported properties:
  120576. .INDENT 7.0
  120577. .IP \(bu 2
  120578. visibility (\(aqpublic\(aq or \(aqprivate\(aq)
  120579. .IP \(bu 2
  120580. protected (bool)
  120581. .IP \(bu 2
  120582. checksum (string, md5sum)
  120583. .IP \(bu 2
  120584. location (URL, to copy from)
  120585. .IP \(bu 2
  120586. disk_format (\(aqraw\(aq (default), \(aqvhd\(aq, \(aqvhdx\(aq, \(aqvmdk\(aq, \(aqvdi\(aq, \(aqiso\(aq,
  120587. \(aqqcow2\(aq, \(aqaki\(aq, \(aqari\(aq or \(aqami\(aq)
  120588. .UNINDENT
  120589. .UNINDENT
  120590. .UNINDENT
  120591. .SS salt.states.glance_image
  120592. .SS Management of OpenStack Glance Images
  120593. .sp
  120594. New in version 2018.3.0.
  120595. .INDENT 0.0
  120596. .TP
  120597. .B depends
  120598. shade
  120599. .TP
  120600. .B configuration
  120601. see \fBsalt.modules.glanceng\fP for setup instructions
  120602. .UNINDENT
  120603. .sp
  120604. Example States
  120605. .INDENT 0.0
  120606. .INDENT 3.5
  120607. .sp
  120608. .nf
  120609. .ft C
  120610. create image:
  120611. glance_image.present:
  120612. \- name: cirros
  120613. \- filename: cirros.raw
  120614. \- image_format: raw
  120615. delete image:
  120616. glance_image.absent:
  120617. \- name: cirros
  120618. .ft P
  120619. .fi
  120620. .UNINDENT
  120621. .UNINDENT
  120622. .INDENT 0.0
  120623. .TP
  120624. .B salt.states.glance_image.absent(name, auth=None)
  120625. Ensure image does not exist
  120626. .INDENT 7.0
  120627. .TP
  120628. .B name
  120629. Name of the image
  120630. .UNINDENT
  120631. .UNINDENT
  120632. .INDENT 0.0
  120633. .TP
  120634. .B salt.states.glance_image.present(name, auth=None, **kwargs)
  120635. Ensure image exists and is up\-to\-date
  120636. .INDENT 7.0
  120637. .TP
  120638. .B name
  120639. Name of the image
  120640. .TP
  120641. .B enabled
  120642. Boolean to control if image is enabled
  120643. .TP
  120644. .B description
  120645. An arbitrary description of the image
  120646. .UNINDENT
  120647. .UNINDENT
  120648. .SS salt.states.glassfish module
  120649. .sp
  120650. Manage Glassfish/Payara server
  120651. .. versionadded:: Carbon
  120652. .sp
  120653. Management of glassfish using its RESTful API
  120654. You can setup connection parameters like this
  120655. .INDENT 0.0
  120656. .INDENT 3.5
  120657. .sp
  120658. .nf
  120659. .ft C
  120660. \- server:
  120661. \- ssl: true
  120662. \- url: localhost
  120663. \- port: 4848
  120664. \- user: admin
  120665. \- password: changeit
  120666. .ft P
  120667. .fi
  120668. .UNINDENT
  120669. .UNINDENT
  120670. .INDENT 0.0
  120671. .TP
  120672. .B salt.states.glassfish.connection_factory_absent(name, both=True, server=None)
  120673. Ensures the transaction factory is absent.
  120674. .INDENT 7.0
  120675. .TP
  120676. .B name
  120677. Name of the connection factory
  120678. .TP
  120679. .B both
  120680. Delete both the pool and the resource, defaults to \fBtrue\fP
  120681. .UNINDENT
  120682. .UNINDENT
  120683. .INDENT 0.0
  120684. .TP
  120685. .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)
  120686. Ensures that the Connection Factory is present
  120687. .INDENT 7.0
  120688. .TP
  120689. .B name
  120690. Name of the connection factory
  120691. .TP
  120692. .B restype
  120693. Type of the connection factory, can be either \fBconnection_factory\fP,
  120694. \fBqueue_connection_factory\(ga or \(ga\(gatopic_connection_factory\fP,
  120695. defaults to \fBconnection_factory\fP
  120696. .TP
  120697. .B description
  120698. Description of the connection factory
  120699. .TP
  120700. .B enabled
  120701. Is the connection factory enabled? defaults to \fBtrue\fP
  120702. .TP
  120703. .B min_size
  120704. Minimum and initial number of connections in the pool, defaults to \fB1\fP
  120705. .TP
  120706. .B max_size
  120707. Maximum number of connections that can be created in the pool, defaults to \fB250\fP
  120708. .TP
  120709. .B resize_quantity
  120710. Number of connections to be removed when idle_timeout expires, defaults to \fB2\fP
  120711. .TP
  120712. .B idle_timeout
  120713. Maximum time a connection can remain idle in the pool, in seconds, defaults to \fB300\fP
  120714. .TP
  120715. .B wait_timeout
  120716. Maximum time a caller can wait before timeout, in seconds, defaults to \fB60\fP
  120717. .TP
  120718. .B reconnect_on_failure
  120719. Close all connections and reconnect on failure (or reconnect only when used), defaults to \fBfalse\fP
  120720. .TP
  120721. .B transaction_support
  120722. Level of transaction support, can be either \fBXATransaction\fP, \fBLocalTransaction\fP or \fBNoTransaction\fP
  120723. .TP
  120724. .B connection_validation
  120725. Connection validation is required, defaults to \fBfalse\fP
  120726. .UNINDENT
  120727. .UNINDENT
  120728. .INDENT 0.0
  120729. .TP
  120730. .B salt.states.glassfish.destination_absent(name, server=None)
  120731. Ensures that the JMS Destination doesn\(aqt exists
  120732. .INDENT 7.0
  120733. .TP
  120734. .B name
  120735. Name of the JMS Destination
  120736. .UNINDENT
  120737. .UNINDENT
  120738. .INDENT 0.0
  120739. .TP
  120740. .B salt.states.glassfish.destination_present(name, physical, restype=u\(aqqueue\(aq, description=u\(aq\(aq, enabled=True, server=None)
  120741. Ensures that the JMS Destination Resource (queue or topic) is present
  120742. .INDENT 7.0
  120743. .TP
  120744. .B name
  120745. The JMS Queue/Topic name
  120746. .TP
  120747. .B physical
  120748. The Physical destination name
  120749. .TP
  120750. .B restype
  120751. The JMS Destination resource type, either \fBqueue\fP or \fBtopic\fP, defaults is \fBqueue\fP
  120752. .TP
  120753. .B description
  120754. A description of the resource
  120755. .TP
  120756. .B enabled
  120757. Defaults to \fBTrue\fP
  120758. .UNINDENT
  120759. .UNINDENT
  120760. .INDENT 0.0
  120761. .TP
  120762. .B salt.states.glassfish.jdbc_datasource_absent(name, both=True, server=None)
  120763. Ensures the JDBC Datasource doesn\(aqt exists
  120764. .INDENT 7.0
  120765. .TP
  120766. .B name
  120767. Name of the datasource
  120768. .TP
  120769. .B both
  120770. Delete both the pool and the resource, defaults to \fBtrue\fP
  120771. .UNINDENT
  120772. .UNINDENT
  120773. .INDENT 0.0
  120774. .TP
  120775. .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)
  120776. Ensures that the JDBC Datasource exists
  120777. .INDENT 7.0
  120778. .TP
  120779. .B name
  120780. Name of the datasource
  120781. .TP
  120782. .B description
  120783. Description of the datasource
  120784. .TP
  120785. .B enabled
  120786. Is the datasource enabled? defaults to \fBtrue\fP
  120787. .TP
  120788. .B restype
  120789. Resource type, can be \fBdatasource\fP, \fBxa_datasource\fP,
  120790. \fBconnection_pool_datasource\fP or \fBdriver\fP, defaults to \fBdatasource\fP
  120791. .TP
  120792. .B vendor
  120793. SQL Server type, currently supports \fBmysql\fP,
  120794. \fBpostgresql\fP and \fBmssql\fP, defaults to \fBmysql\fP
  120795. .TP
  120796. .B sql_url
  120797. URL of the server in jdbc form
  120798. .TP
  120799. .B sql_user
  120800. Username for the server
  120801. .TP
  120802. .B sql_password
  120803. Password for that username
  120804. .TP
  120805. .B min_size
  120806. Minimum and initial number of connections in the pool, defaults to \fB8\fP
  120807. .TP
  120808. .B max_size
  120809. Maximum number of connections that can be created in the pool, defaults to \fB32\fP
  120810. .TP
  120811. .B resize_quantity
  120812. Number of connections to be removed when idle_timeout expires, defaults to \fB2\fP
  120813. .TP
  120814. .B idle_timeout
  120815. Maximum time a connection can remain idle in the pool, in seconds, defaults to \fB300\fP
  120816. .TP
  120817. .B wait_timeout
  120818. Maximum time a caller can wait before timeout, in seconds, defaults to \fB60\fP
  120819. .TP
  120820. .B non_transactional
  120821. Return non\-transactional connections
  120822. .TP
  120823. .B transaction_isolation
  120824. Defaults to the JDBC driver default
  120825. .TP
  120826. .B isolation_guaranteed
  120827. All connections use the same isolation level
  120828. .UNINDENT
  120829. .UNINDENT
  120830. .INDENT 0.0
  120831. .TP
  120832. .B salt.states.glassfish.system_properties_absent(name, server=None)
  120833. Ensures that the system property doesn\(aqt exists
  120834. .INDENT 7.0
  120835. .TP
  120836. .B name
  120837. Name of the system property
  120838. .UNINDENT
  120839. .UNINDENT
  120840. .INDENT 0.0
  120841. .TP
  120842. .B salt.states.glassfish.system_properties_present(server=None, **kwargs)
  120843. Ensures that the system properties are present
  120844. .INDENT 7.0
  120845. .TP
  120846. .B properties
  120847. The system properties
  120848. .UNINDENT
  120849. .UNINDENT
  120850. .SS salt.states.gnomedesktop
  120851. .SS Configuration of the GNOME desktop
  120852. .sp
  120853. Control the GNOME settings
  120854. .INDENT 0.0
  120855. .INDENT 3.5
  120856. .sp
  120857. .nf
  120858. .ft C
  120859. localdesktop_wm_prefs:
  120860. gnomedesktop.wm_preferences:
  120861. \- user: username
  120862. \- audible_bell: false
  120863. \- action_double_click_titlebar: \(aqtoggle\-maximize\(aq
  120864. \- visual_bell: true
  120865. \- num_workspaces: 6
  120866. localdesktop_lockdown:
  120867. gnomedesktop.desktop_lockdown:
  120868. \- user: username
  120869. \- disable_user_switching: true
  120870. localdesktop_interface:
  120871. gnomedesktop.desktop_interface:
  120872. \- user: username
  120873. \- clock_show_date: true
  120874. \- clock_format: 12h
  120875. .ft P
  120876. .fi
  120877. .UNINDENT
  120878. .UNINDENT
  120879. .INDENT 0.0
  120880. .TP
  120881. .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)
  120882. desktop_interface: sets values in the org.gnome.desktop.interface schema
  120883. .UNINDENT
  120884. .INDENT 0.0
  120885. .TP
  120886. .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)
  120887. desktop_lockdown: sets values in the org.gnome.desktop.lockdown schema
  120888. .UNINDENT
  120889. .INDENT 0.0
  120890. .TP
  120891. .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)
  120892. wm_preferences: sets values in the org.gnome.desktop.wm.preferences schema
  120893. .UNINDENT
  120894. .SS salt.states.gpg module
  120895. .SS Management of the GPG keychains
  120896. .sp
  120897. New in version 2016.3.0.
  120898. .INDENT 0.0
  120899. .TP
  120900. .B salt.states.gpg.absent(name, keys=None, user=None, gnupghome=None, **kwargs)
  120901. Ensure GPG public key is absent in keychain
  120902. .INDENT 7.0
  120903. .TP
  120904. .B name
  120905. The unique name or keyid for the GPG public key.
  120906. .TP
  120907. .B keys
  120908. The keyId or keyIds to add to the GPG keychain.
  120909. .TP
  120910. .B user
  120911. Remove GPG keys from the specified user\(aqs keychain
  120912. .TP
  120913. .B gnupghome
  120914. Override GNUPG Home directory
  120915. .UNINDENT
  120916. .UNINDENT
  120917. .INDENT 0.0
  120918. .TP
  120919. .B salt.states.gpg.present(name, keys=None, user=None, keyserver=None, gnupghome=None, trust=None, **kwargs)
  120920. Ensure GPG public key is present in keychain
  120921. .INDENT 7.0
  120922. .TP
  120923. .B name
  120924. The unique name or keyid for the GPG public key.
  120925. .TP
  120926. .B keys
  120927. The keyId or keyIds to add to the GPG keychain.
  120928. .TP
  120929. .B user
  120930. Add GPG keys to the specified user\(aqs keychain
  120931. .TP
  120932. .B keyserver
  120933. The keyserver to retrieve the keys from.
  120934. .TP
  120935. .B gnupghome
  120936. Override GNUPG Home directory
  120937. .TP
  120938. .B trust
  120939. Trust level for the key in the keychain,
  120940. ignored by default. Valid trust levels:
  120941. expired, unknown, not_trusted, marginally,
  120942. fully, ultimately
  120943. .UNINDENT
  120944. .UNINDENT
  120945. .SS salt.states.grafana_datasource module
  120946. .sp
  120947. Manage Grafana v2.0 data sources
  120948. .sp
  120949. New in version 2016.3.0.
  120950. .INDENT 0.0
  120951. .INDENT 3.5
  120952. .sp
  120953. .nf
  120954. .ft C
  120955. grafana:
  120956. grafana_timeout: 3
  120957. grafana_token: qwertyuiop
  120958. grafana_url: \(aqhttps://url.com\(aq
  120959. .ft P
  120960. .fi
  120961. .UNINDENT
  120962. .UNINDENT
  120963. .INDENT 0.0
  120964. .INDENT 3.5
  120965. .sp
  120966. .nf
  120967. .ft C
  120968. Ensure influxdb data source is present:
  120969. grafana_datasource.present:
  120970. \- name: influxdb
  120971. \- type: influxdb
  120972. \- url: http://localhost:8086
  120973. \- access: proxy
  120974. \- basic_auth: true
  120975. \- basic_auth_user: myuser
  120976. \- basic_auth_password: mypass
  120977. \- is_default: true
  120978. .ft P
  120979. .fi
  120980. .UNINDENT
  120981. .UNINDENT
  120982. .INDENT 0.0
  120983. .TP
  120984. .B salt.states.grafana_datasource.absent(name, profile=u\(aqgrafana\(aq)
  120985. Ensure that a data source is present.
  120986. .INDENT 7.0
  120987. .TP
  120988. .B name
  120989. Name of the data source to remove.
  120990. .UNINDENT
  120991. .UNINDENT
  120992. .INDENT 0.0
  120993. .TP
  120994. .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)
  120995. Ensure that a data source is present.
  120996. .INDENT 7.0
  120997. .TP
  120998. .B name
  120999. Name of the data source.
  121000. .TP
  121001. .B type
  121002. Which type of data source it is (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  121003. .TP
  121004. .B url
  121005. The URL to the data source API.
  121006. .TP
  121007. .B user
  121008. Optional \- user to authenticate with the data source
  121009. .TP
  121010. .B password
  121011. Optional \- password to authenticate with the data source
  121012. .TP
  121013. .B basic_auth
  121014. Optional \- set to True to use HTTP basic auth to authenticate with the
  121015. data source.
  121016. .TP
  121017. .B basic_auth_user
  121018. Optional \- HTTP basic auth username.
  121019. .TP
  121020. .B basic_auth_password
  121021. Optional \- HTTP basic auth password.
  121022. .TP
  121023. .B is_default
  121024. Default: False
  121025. .UNINDENT
  121026. .UNINDENT
  121027. .SS salt.states.grains
  121028. .SS Manage grains on the minion
  121029. .sp
  121030. This state allows for grains to be set.
  121031. .sp
  121032. Grains set or altered with this module are stored in the \(aqgrains\(aq
  121033. file on the minions, By default, this file is located at: \fB/etc/salt/grains\fP
  121034. .sp
  121035. \fBNOTE:\fP
  121036. .INDENT 0.0
  121037. .INDENT 3.5
  121038. This does \fBNOT\fP override any grains set in the minion config file.
  121039. .UNINDENT
  121040. .UNINDENT
  121041. .INDENT 0.0
  121042. .TP
  121043. .B salt.states.grains.absent(name, destructive=False, delimiter=\(aq:\(aq, force=False)
  121044. New in version 2014.7.0.
  121045. .sp
  121046. Delete a grain from the grains config file
  121047. .INDENT 7.0
  121048. .TP
  121049. .B name
  121050. The grain name
  121051. .TP
  121052. .B destructive
  121053. If destructive is True, delete the entire grain. If
  121054. destructive is False, set the grain\(aqs value to None. Defaults to False.
  121055. .TP
  121056. .B force
  121057. If force is True, the existing grain will be overwritten
  121058. regardless of its existing or provided value type. Defaults to False
  121059. .sp
  121060. New in version v2015.8.2.
  121061. .TP
  121062. .B delimiter
  121063. A delimiter different from the default can be provided.
  121064. .sp
  121065. New in version v2015.8.2.
  121066. .UNINDENT
  121067. .sp
  121068. Changed in version v2015.8.2.
  121069. .sp
  121070. This state now support nested grains and complex values. It is also more
  121071. conservative: if a grain has a value that is a list or a dict, it will
  121072. not be removed unless the \fIforce\fP parameter is True.
  121073. .INDENT 7.0
  121074. .INDENT 3.5
  121075. .sp
  121076. .nf
  121077. .ft C
  121078. grain_name:
  121079. grains.absent
  121080. .ft P
  121081. .fi
  121082. .UNINDENT
  121083. .UNINDENT
  121084. .UNINDENT
  121085. .INDENT 0.0
  121086. .TP
  121087. .B salt.states.grains.append(name, value, convert=False, delimiter=\(aq:\(aq)
  121088. New in version 2014.7.0.
  121089. .sp
  121090. Append a value to a list in the grains config file. The grain that is being
  121091. appended to (name) must exist before the new value can be added.
  121092. .INDENT 7.0
  121093. .TP
  121094. .B name
  121095. The grain name
  121096. .TP
  121097. .B value
  121098. The value to append
  121099. .TP
  121100. .B convert
  121101. If convert is True, convert non\-list contents into a list.
  121102. If convert is False and the grain contains non\-list contents, an error
  121103. is given. Defaults to False.
  121104. .TP
  121105. .B delimiter
  121106. A delimiter different from the default can be provided.
  121107. .sp
  121108. New in version v2015.8.2.
  121109. .UNINDENT
  121110. .INDENT 7.0
  121111. .INDENT 3.5
  121112. .sp
  121113. .nf
  121114. .ft C
  121115. grain_name:
  121116. grains.append:
  121117. \- value: to_be_appended
  121118. .ft P
  121119. .fi
  121120. .UNINDENT
  121121. .UNINDENT
  121122. .UNINDENT
  121123. .INDENT 0.0
  121124. .TP
  121125. .B salt.states.grains.exists(name, delimiter=\(aq:\(aq)
  121126. Ensure that a grain is set
  121127. .INDENT 7.0
  121128. .TP
  121129. .B name
  121130. The grain name
  121131. .TP
  121132. .B delimiter
  121133. A delimiter different from the default can be provided.
  121134. .UNINDENT
  121135. .sp
  121136. Check whether a grain exists. Does not attempt to check or set the value.
  121137. .UNINDENT
  121138. .INDENT 0.0
  121139. .TP
  121140. .B salt.states.grains.list_absent(name, value, delimiter=\(aq:\(aq)
  121141. Delete a value from a grain formed as a list.
  121142. .sp
  121143. New in version 2014.1.0.
  121144. .INDENT 7.0
  121145. .TP
  121146. .B name
  121147. The grain name.
  121148. .TP
  121149. .B value
  121150. The value to delete from the grain list.
  121151. .TP
  121152. .B delimiter
  121153. A delimiter different from the default \fB:\fP can be provided.
  121154. .sp
  121155. New in version v2015.8.2.
  121156. .UNINDENT
  121157. .sp
  121158. The grain should be \fI\%list type\fP
  121159. .INDENT 7.0
  121160. .INDENT 3.5
  121161. .sp
  121162. .nf
  121163. .ft C
  121164. roles:
  121165. grains.list_absent:
  121166. \- value: db
  121167. .ft P
  121168. .fi
  121169. .UNINDENT
  121170. .UNINDENT
  121171. .sp
  121172. For multiple grains, the syntax looks like:
  121173. .INDENT 7.0
  121174. .INDENT 3.5
  121175. .sp
  121176. .nf
  121177. .ft C
  121178. roles:
  121179. grains.list_absent:
  121180. \- value:
  121181. \- web
  121182. \- dev
  121183. .ft P
  121184. .fi
  121185. .UNINDENT
  121186. .UNINDENT
  121187. .UNINDENT
  121188. .INDENT 0.0
  121189. .TP
  121190. .B salt.states.grains.list_present(name, value, delimiter=\(aq:\(aq)
  121191. New in version 2014.1.0.
  121192. .sp
  121193. Ensure the value is present in the list\-type grain. Note: If the grain that is
  121194. provided in \fBname\fP is not present on the system, this new grain will be created
  121195. with the corresponding provided value.
  121196. .INDENT 7.0
  121197. .TP
  121198. .B name
  121199. The grain name.
  121200. .TP
  121201. .B value
  121202. The value is present in the list type grain.
  121203. .TP
  121204. .B delimiter
  121205. A delimiter different from the default \fB:\fP can be provided.
  121206. .sp
  121207. New in version v2015.8.2.
  121208. .UNINDENT
  121209. .sp
  121210. The grain should be \fI\%list type\fP
  121211. .INDENT 7.0
  121212. .INDENT 3.5
  121213. .sp
  121214. .nf
  121215. .ft C
  121216. roles:
  121217. grains.list_present:
  121218. \- value: web
  121219. .ft P
  121220. .fi
  121221. .UNINDENT
  121222. .UNINDENT
  121223. .sp
  121224. For multiple grains, the syntax looks like:
  121225. .INDENT 7.0
  121226. .INDENT 3.5
  121227. .sp
  121228. .nf
  121229. .ft C
  121230. roles:
  121231. grains.list_present:
  121232. \- value:
  121233. \- web
  121234. \- dev
  121235. .ft P
  121236. .fi
  121237. .UNINDENT
  121238. .UNINDENT
  121239. .UNINDENT
  121240. .INDENT 0.0
  121241. .TP
  121242. .B salt.states.grains.make_hashable(list_grain, result=None)
  121243. Ensure that a list grain is hashable.
  121244. .INDENT 7.0
  121245. .TP
  121246. .B list_grain
  121247. The list grain that should be hashable
  121248. .TP
  121249. .B result
  121250. This function is recursive, so it must be possible to use a
  121251. sublist as parameter to the function. Should not be used by a caller
  121252. outside of the function.
  121253. .UNINDENT
  121254. .sp
  121255. Make it possible to compare two list grains to each other if the list
  121256. contains complex objects.
  121257. .UNINDENT
  121258. .INDENT 0.0
  121259. .TP
  121260. .B salt.states.grains.present(name, value, delimiter=\(aq:\(aq, force=False)
  121261. Ensure that a grain is set
  121262. .sp
  121263. Changed in version v2015.8.2.
  121264. .INDENT 7.0
  121265. .TP
  121266. .B name
  121267. The grain name
  121268. .TP
  121269. .B value
  121270. The value to set on the grain
  121271. .TP
  121272. .B force
  121273. If force is True, the existing grain will be overwritten
  121274. regardless of its existing or provided value type. Defaults to False
  121275. .sp
  121276. New in version v2015.8.2.
  121277. .TP
  121278. .B delimiter
  121279. A delimiter different from the default can be provided.
  121280. .sp
  121281. New in version v2015.8.2.
  121282. .UNINDENT
  121283. .sp
  121284. It is now capable to set a grain to a complex value (ie. lists and dicts)
  121285. and supports nested grains as well.
  121286. .sp
  121287. If the grain does not yet exist, a new grain is set to the given value. For
  121288. a nested grain, the necessary keys are created if they don\(aqt exist. If
  121289. a given key is an existing value, it will be converted, but an existing value
  121290. different from the given key will fail the state.
  121291. .sp
  121292. If the grain with the given name exists, its value is updated to the new
  121293. value unless its existing or provided value is complex (list or dict). Use
  121294. \fIforce: True\fP to overwrite.
  121295. .INDENT 7.0
  121296. .INDENT 3.5
  121297. .sp
  121298. .nf
  121299. .ft C
  121300. cheese:
  121301. grains.present:
  121302. \- value: edam
  121303. nested_grain_with_complex_value:
  121304. grains.present:
  121305. \- name: icinga:Apache SSL
  121306. \- value:
  121307. \- command: check_https
  121308. \- params: \-H localhost \-p 443 \-S
  121309. with,a,custom,delimiter:
  121310. grains.present:
  121311. \- value: yay
  121312. \- delimiter: \(aq,\(aq
  121313. .ft P
  121314. .fi
  121315. .UNINDENT
  121316. .UNINDENT
  121317. .UNINDENT
  121318. .SS salt.states.helm module
  121319. .INDENT 0.0
  121320. .TP
  121321. .B salt.states.helm.release_absent(name, namespace=None, flags=None, kvflags=None)
  121322. Make sure the release name is absent.
  121323. .INDENT 7.0
  121324. .TP
  121325. .B name
  121326. (string) The release name to uninstall.
  121327. .TP
  121328. .B namespace
  121329. (string) The namespace scope for this request.
  121330. .TP
  121331. .B flags
  121332. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121333. .TP
  121334. .B kvflags
  121335. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121336. .UNINDENT
  121337. .sp
  121338. Example:
  121339. .INDENT 7.0
  121340. .INDENT 3.5
  121341. .sp
  121342. .nf
  121343. .ft C
  121344. helm_release_is_absent:
  121345. helm.release_absent:
  121346. \- name: release_name
  121347. # In dry\-run mode.
  121348. helm_release_is_absent_dry\-run:
  121349. helm.release_absent:
  121350. \- name: release_name
  121351. \- flags:
  121352. \- dry\-run
  121353. .ft P
  121354. .fi
  121355. .UNINDENT
  121356. .UNINDENT
  121357. .UNINDENT
  121358. .INDENT 0.0
  121359. .TP
  121360. .B salt.states.helm.release_present(name, chart, values=None, version=None, namespace=None, set=None, flags=None, kvflags=None)
  121361. Make sure the release name is present.
  121362. .INDENT 7.0
  121363. .TP
  121364. .B name
  121365. (string) The release name to install.
  121366. .TP
  121367. .B chart
  121368. (string) The chart to install.
  121369. .TP
  121370. .B values
  121371. (string) Absolute path to the values.yaml file.
  121372. .TP
  121373. .B version
  121374. (string) The exact chart version to install. If this is not specified, the latest version is installed.
  121375. .TP
  121376. .B namespace
  121377. (string) The namespace scope for this request.
  121378. .TP
  121379. .B set
  121380. (string or list) Set a values on the command line.
  121381. .TP
  121382. .B flags
  121383. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121384. .TP
  121385. .B kvflags
  121386. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121387. .UNINDENT
  121388. .sp
  121389. Example:
  121390. .INDENT 7.0
  121391. .INDENT 3.5
  121392. .sp
  121393. .nf
  121394. .ft C
  121395. helm_release_is_present:
  121396. helm.release_present:
  121397. \- name: release_name
  121398. \- chart: repo/chart
  121399. # In dry\-run mode.
  121400. helm_release_is_present_dry\-run:
  121401. helm.release_present:
  121402. \- name: release_name
  121403. \- chart: repo/chart
  121404. \- flags:
  121405. \- dry\-run
  121406. # With values.yaml file.
  121407. helm_release_is_present_values:
  121408. helm.release_present:
  121409. \- name: release_name
  121410. \- chart: repo/chart
  121411. \- kvflags:
  121412. values: /path/to/values.yaml
  121413. .ft P
  121414. .fi
  121415. .UNINDENT
  121416. .UNINDENT
  121417. .UNINDENT
  121418. .INDENT 0.0
  121419. .TP
  121420. .B salt.states.helm.repo_managed(name, present=None, absent=None, prune=False, repo_update=False, namespace=None, flags=None, kvflags=None)
  121421. Make sure the repository is updated.
  121422. .INDENT 7.0
  121423. .TP
  121424. .B name
  121425. (string) Not used.
  121426. .TP
  121427. .B present
  121428. (list) List of repository to be present. It\(aqs a list of dict: [{\(aqname\(aq: \(aqlocal_name\(aq, \(aqurl\(aq: \(aqrepository_url\(aq}]
  121429. .TP
  121430. .B absent
  121431. (list) List of local name repository to be absent.
  121432. .TP
  121433. .B prune
  121434. (boolean \- default: False) If True, all repository already present but not in the present list would be removed.
  121435. .TP
  121436. .B repo_update
  121437. (boolean \- default: False) If True, the Helm repository is updated after a repository add or remove.
  121438. .TP
  121439. .B namespace
  121440. (string) The namespace scope for this request.
  121441. .TP
  121442. .B flags
  121443. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121444. .TP
  121445. .B kvflags
  121446. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121447. .UNINDENT
  121448. .sp
  121449. Example:
  121450. .INDENT 7.0
  121451. .INDENT 3.5
  121452. .sp
  121453. .nf
  121454. .ft C
  121455. helm_repository_is_managed:
  121456. helm.repo_managed:
  121457. \- present:
  121458. \- name: local_name_1
  121459. url: repository_url
  121460. \- absent:
  121461. \- local_name_2
  121462. .ft P
  121463. .fi
  121464. .UNINDENT
  121465. .UNINDENT
  121466. .UNINDENT
  121467. .INDENT 0.0
  121468. .TP
  121469. .B salt.states.helm.repo_updated(name, namespace=None, flags=None, kvflags=None)
  121470. Make sure the repository is updated.
  121471. To execute after a repository changes.
  121472. .INDENT 7.0
  121473. .TP
  121474. .B name
  121475. (string) Not used.
  121476. .TP
  121477. .B namespace
  121478. (string) The namespace scope for this request.
  121479. .TP
  121480. .B flags
  121481. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121482. .TP
  121483. .B kvflags
  121484. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121485. .UNINDENT
  121486. .sp
  121487. Example:
  121488. .INDENT 7.0
  121489. .INDENT 3.5
  121490. .sp
  121491. .nf
  121492. .ft C
  121493. helm_repository_is_updated:
  121494. helm.repo_updated
  121495. .ft P
  121496. .fi
  121497. .UNINDENT
  121498. .UNINDENT
  121499. .UNINDENT
  121500. .SS salt.states.highstate_doc module
  121501. .sp
  121502. To be used with processors in module \fIhighstate_doc\fP\&.
  121503. .INDENT 0.0
  121504. .TP
  121505. .B salt.states.highstate_doc.note(name, source=None, contents=None, **kwargs)
  121506. Add content to a document generated using \fIhighstate_doc.render\fP\&.
  121507. .sp
  121508. This state does not preform any tasks on the host. It only is used in highstate_doc lowstate processors
  121509. to include extra documents.
  121510. .INDENT 7.0
  121511. .INDENT 3.5
  121512. .sp
  121513. .nf
  121514. .ft C
  121515. {{sls}} example note:
  121516. highstate_doc.note:
  121517. \- name: example note
  121518. \- require_in:
  121519. \- pkg: somepackage
  121520. \- contents: |
  121521. example \(gahighstate_doc.note\(ga
  121522. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  121523. This state does not do anything to the system! It is only used by a \(gaprocessor\(ga
  121524. you can use \(garequisites\(ga and \(gaorder\(ga to move your docs around the rendered file.
  121525. .. this message appare above the \(gapkg: somepackage\(ga state.
  121526. \- source: salt://{{tpldir}}/also_include_a_file.md
  121527. {{sls}} extra help:
  121528. highstate_doc.note:
  121529. \- name: example
  121530. \- order: 0
  121531. \- source: salt://{{tpldir}}/HELP.md
  121532. .ft P
  121533. .fi
  121534. .UNINDENT
  121535. .UNINDENT
  121536. .UNINDENT
  121537. .SS salt.states.http
  121538. .sp
  121539. HTTP monitoring states
  121540. .sp
  121541. Perform an HTTP query and statefully return the result
  121542. .sp
  121543. New in version 2015.5.0.
  121544. .INDENT 0.0
  121545. .TP
  121546. .B salt.states.http.query(name, match=None, match_type=u\(aqstring\(aq, status=None, status_type=u\(aqstring\(aq, wait_for=None, **kwargs)
  121547. Perform an HTTP query and statefully return the result
  121548. .sp
  121549. Passes through all the parameters described in the
  121550. \fButils.http.query function\fP:
  121551. .INDENT 7.0
  121552. .TP
  121553. .B name
  121554. The name of the query.
  121555. .TP
  121556. .B match
  121557. Specifies a pattern to look for in the return text. By default, this will
  121558. perform a string comparison of looking for the value of match in the return
  121559. text.
  121560. .TP
  121561. .B match_type
  121562. Specifies the type of pattern matching to use on match. Default is \fBstring\fP, but
  121563. can also be set to \fBpcre\fP to use regular expression matching if a more
  121564. complex pattern matching is required.
  121565. .sp
  121566. \fBNOTE:\fP
  121567. .INDENT 7.0
  121568. .INDENT 3.5
  121569. Despite the name of \fBmatch_type\fP for this argument, this setting
  121570. actually uses Python\(aqs \fBre.search()\fP function rather than Python\(aqs
  121571. \fBre.match()\fP function.
  121572. .UNINDENT
  121573. .UNINDENT
  121574. .TP
  121575. .B status
  121576. The status code for a URL for which to be checked. Can be used instead of
  121577. or in addition to the \fBmatch\fP setting. This can be passed as an individual status code
  121578. or a list of status codes.
  121579. .TP
  121580. .B status_type
  121581. Specifies the type of pattern matching to use for status. Default is \fBstring\fP, but
  121582. can also be set to \fBpcre\fP to use regular expression matching if a more
  121583. complex pattern matching is required. Additionally, if a list of strings representing
  121584. statuses is given, the type \fBlist\fP can be used.
  121585. .sp
  121586. New in version 3000.
  121587. .sp
  121588. \fBNOTE:\fP
  121589. .INDENT 7.0
  121590. .INDENT 3.5
  121591. Despite the name of \fBmatch_type\fP for this argument, this setting
  121592. actually uses Python\(aqs \fBre.search()\fP function rather than Python\(aqs
  121593. \fBre.match()\fP function.
  121594. .UNINDENT
  121595. .UNINDENT
  121596. .UNINDENT
  121597. .sp
  121598. If both \fBmatch\fP and \fBstatus\fP options are set, both settings will be checked.
  121599. However, note that if only one option is \fBTrue\fP and the other is \fBFalse\fP,
  121600. then \fBFalse\fP will be returned. If this case is reached, the comments in the
  121601. return data will contain troubleshooting information.
  121602. .sp
  121603. For more information about the \fBhttp.query\fP state, refer to the
  121604. HTTP Tutorial\&.
  121605. .INDENT 7.0
  121606. .INDENT 3.5
  121607. .sp
  121608. .nf
  121609. .ft C
  121610. query_example:
  121611. http.query:
  121612. \- name: \(aqhttp://example.com/\(aq
  121613. \- status: 200
  121614. query_example2:
  121615. http.query:
  121616. \- name: \(aqhttp://example.com/\(aq
  121617. \- status:
  121618. \- 200
  121619. \- 201
  121620. \- status_type: list
  121621. .ft P
  121622. .fi
  121623. .UNINDENT
  121624. .UNINDENT
  121625. .UNINDENT
  121626. .INDENT 0.0
  121627. .TP
  121628. .B salt.states.http.wait_for_successful_query(name, wait_for=300, **kwargs)
  121629. Like query but, repeat and wait until match/match_type or status is fulfilled. State returns result from last
  121630. query state in case of success or if no successful query was made within wait_for timeout.
  121631. .INDENT 7.0
  121632. .TP
  121633. .B name
  121634. The name of the query.
  121635. .TP
  121636. .B wait_for
  121637. Total time to wait for requests that succeed.
  121638. .TP
  121639. .B request_interval
  121640. Optional interval to delay requests by N seconds to reduce the number of requests sent.
  121641. .UNINDENT
  121642. .sp
  121643. \fBNOTE:\fP
  121644. .INDENT 7.0
  121645. .INDENT 3.5
  121646. All other arguments are passed to the http.query state.
  121647. .UNINDENT
  121648. .UNINDENT
  121649. .UNINDENT
  121650. .SS salt.states.ifttt
  121651. .SS Trigger an event in IFTTT
  121652. .sp
  121653. This state is useful for trigging events in IFTTT.
  121654. .sp
  121655. New in version 2015.8.0.
  121656. .INDENT 0.0
  121657. .INDENT 3.5
  121658. .sp
  121659. .nf
  121660. .ft C
  121661. ifttt\-event:
  121662. ifttt.trigger_event:
  121663. \- event: TestEvent
  121664. \- value1: \(aqThis state was executed successfully.\(aq
  121665. \- value2: \(aqAnother value we can send.\(aq
  121666. \- value3: \(aqA third value we can send.\(aq
  121667. .ft P
  121668. .fi
  121669. .UNINDENT
  121670. .UNINDENT
  121671. .sp
  121672. The api key can be specified in the master or minion configuration like below:
  121673. .. code\-block:: yaml
  121674. .INDENT 0.0
  121675. .INDENT 3.5
  121676. .INDENT 0.0
  121677. .TP
  121678. .B ifttt:
  121679. secret_key: bzMRb\-KKIAaNOwKEEw792J7Eb\-B3z7muhdhYblJn4V6
  121680. .UNINDENT
  121681. .UNINDENT
  121682. .UNINDENT
  121683. .INDENT 0.0
  121684. .TP
  121685. .B salt.states.ifttt.trigger_event(name, event, value1=None, value2=None, value3=None)
  121686. Trigger an event in IFTTT
  121687. .INDENT 7.0
  121688. .INDENT 3.5
  121689. .sp
  121690. .nf
  121691. .ft C
  121692. ifttt\-event:
  121693. ifttt.trigger_event:
  121694. \- event: TestEvent
  121695. \- value1: \(aqA value that we want to send.\(aq
  121696. \- value2: \(aqA second value that we want to send.\(aq
  121697. \- value3: \(aqA third value that we want to send.\(aq
  121698. .ft P
  121699. .fi
  121700. .UNINDENT
  121701. .UNINDENT
  121702. .sp
  121703. The following parameters are required:
  121704. .INDENT 7.0
  121705. .TP
  121706. .B name
  121707. The unique name for this event.
  121708. .TP
  121709. .B event
  121710. The name of the event to trigger in IFTTT.
  121711. .UNINDENT
  121712. .sp
  121713. The following parameters are optional:
  121714. .INDENT 7.0
  121715. .TP
  121716. .B value1
  121717. One of the values that we can send to IFTT.
  121718. .TP
  121719. .B value2
  121720. One of the values that we can send to IFTT.
  121721. .TP
  121722. .B value3
  121723. One of the values that we can send to IFTT.
  121724. .UNINDENT
  121725. .UNINDENT
  121726. .SS salt.states.incron
  121727. .SS Management of incron, the inotify cron
  121728. .sp
  121729. The incron state module allows for user incrontabs to be cleanly managed.
  121730. .sp
  121731. Incron declarations require a number of parameters. The parameters needed
  121732. to be declared: \fBpath\fP, \fBmask\fP, and \fBcmd\fP\&. The \fBuser\fP whose incrontab is to be edited
  121733. also needs to be defined.
  121734. .sp
  121735. When making changes to an existing incron job, the \fBpath\fP declaration is the unique
  121736. factor, so if an existing cron that looks like this:
  121737. .INDENT 0.0
  121738. .INDENT 3.5
  121739. .sp
  121740. .nf
  121741. .ft C
  121742. Watch for modifications in /home/user:
  121743. incron.present:
  121744. \- user: root
  121745. \- path: /home/user
  121746. \- mask:
  121747. \- IN_MODIFY
  121748. \- cmd: \(aqecho "$$ $@"\(aq
  121749. .ft P
  121750. .fi
  121751. .UNINDENT
  121752. .UNINDENT
  121753. .sp
  121754. Is changed to this:
  121755. .INDENT 0.0
  121756. .INDENT 3.5
  121757. .sp
  121758. .nf
  121759. .ft C
  121760. Watch for modifications and access in /home/user:
  121761. incron.present:
  121762. \- user: root
  121763. \- path: /home/user
  121764. \- mask:
  121765. \- IN_MODIFY
  121766. \- IN_ACCESS
  121767. \- cmd: \(aqecho "$$ $@"\(aq
  121768. .ft P
  121769. .fi
  121770. .UNINDENT
  121771. .UNINDENT
  121772. .sp
  121773. Then the existing cron will be updated, but if the cron command is changed,
  121774. then a new cron job will be added to the user\(aqs crontab.
  121775. .sp
  121776. New in version 0.17.0.
  121777. .INDENT 0.0
  121778. .TP
  121779. .B salt.states.incron.absent(name, path, mask, cmd, user=u\(aqroot\(aq)
  121780. Verifies that the specified incron job is absent for the specified user; only
  121781. the name is matched when removing a incron job.
  121782. .INDENT 7.0
  121783. .TP
  121784. .B name
  121785. Unique comment describing the entry
  121786. .TP
  121787. .B path
  121788. The path that should be watched
  121789. .TP
  121790. .B user
  121791. The name of the user who\(aqs crontab needs to be modified, defaults to
  121792. the root user
  121793. .TP
  121794. .B mask
  121795. The mask of events that should be monitored for
  121796. .TP
  121797. .B cmd
  121798. The cmd that should be executed
  121799. .UNINDENT
  121800. .UNINDENT
  121801. .INDENT 0.0
  121802. .TP
  121803. .B salt.states.incron.present(name, path, mask, cmd, user=u\(aqroot\(aq)
  121804. Verifies that the specified incron job is present for the specified user.
  121805. For more advanced information about what exactly can be set in the cron
  121806. timing parameters, check your incron system\(aqs documentation. Most Unix\-like
  121807. systems\(aq incron documentation can be found via the incrontab man page:
  121808. \fBman 5 incrontab\fP\&.
  121809. .INDENT 7.0
  121810. .TP
  121811. .B name
  121812. Unique comment describing the entry
  121813. .TP
  121814. .B path
  121815. The path that should be watched
  121816. .TP
  121817. .B user
  121818. The name of the user who\(aqs crontab needs to be modified, defaults to
  121819. the root user
  121820. .TP
  121821. .B mask
  121822. The mask of events that should be monitored for
  121823. .TP
  121824. .B cmd
  121825. The cmd that should be executed
  121826. .UNINDENT
  121827. .UNINDENT
  121828. .SS salt.states.influxdb08_database module
  121829. .SS Management of Influxdb 0.8 databases
  121830. .sp
  121831. (compatible with InfluxDB version 0.5\-0.8)
  121832. .sp
  121833. New in version 2014.7.0.
  121834. .INDENT 0.0
  121835. .TP
  121836. .B salt.states.influxdb08_database.absent(name, user=None, password=None, host=None, port=None)
  121837. Ensure that the named database is absent
  121838. .INDENT 7.0
  121839. .TP
  121840. .B name
  121841. The name of the database to remove
  121842. .TP
  121843. .B user
  121844. The user to connect as (must be able to remove the database)
  121845. .TP
  121846. .B password
  121847. The password of the user
  121848. .TP
  121849. .B host
  121850. The host to connect to
  121851. .TP
  121852. .B port
  121853. The port to connect to
  121854. .UNINDENT
  121855. .UNINDENT
  121856. .INDENT 0.0
  121857. .TP
  121858. .B salt.states.influxdb08_database.present(name, user=None, password=None, host=None, port=None)
  121859. Ensure that the named database is present
  121860. .INDENT 7.0
  121861. .TP
  121862. .B name
  121863. The name of the database to create
  121864. .TP
  121865. .B user
  121866. The user to connect as (must be able to remove the database)
  121867. .TP
  121868. .B password
  121869. The password of the user
  121870. .TP
  121871. .B host
  121872. The host to connect to
  121873. .TP
  121874. .B port
  121875. The port to connect to
  121876. .UNINDENT
  121877. .UNINDENT
  121878. .SS salt.states.influxdb08_user module
  121879. .SS Management of InfluxDB 0.8 users
  121880. .sp
  121881. (compatible with InfluxDB version 0.5\-0.8)
  121882. .sp
  121883. New in version 2014.7.0.
  121884. .INDENT 0.0
  121885. .TP
  121886. .B salt.states.influxdb08_user.absent(name, database=None, user=None, password=None, host=None, port=None)
  121887. Ensure that the named cluster admin or database user is absent.
  121888. .INDENT 7.0
  121889. .TP
  121890. .B name
  121891. The name of the user to remove
  121892. .TP
  121893. .B database
  121894. The database to remove the user from
  121895. .TP
  121896. .B user
  121897. The user to connect as (must be able to remove the user)
  121898. .TP
  121899. .B password
  121900. The password of the user
  121901. .TP
  121902. .B host
  121903. The host to connect to
  121904. .TP
  121905. .B port
  121906. The port to connect to
  121907. .UNINDENT
  121908. .UNINDENT
  121909. .INDENT 0.0
  121910. .TP
  121911. .B salt.states.influxdb08_user.present(name, passwd, database=None, user=None, password=None, host=None, port=None)
  121912. Ensure that the cluster admin or database user is present.
  121913. .INDENT 7.0
  121914. .TP
  121915. .B name
  121916. The name of the user to manage
  121917. .TP
  121918. .B passwd
  121919. The password of the user
  121920. .TP
  121921. .B database
  121922. The database to create the user in
  121923. .TP
  121924. .B user
  121925. The user to connect as (must be able to create the user)
  121926. .TP
  121927. .B password
  121928. The password of the user
  121929. .TP
  121930. .B host
  121931. The host to connect to
  121932. .TP
  121933. .B port
  121934. The port to connect to
  121935. .UNINDENT
  121936. .UNINDENT
  121937. .SS salt.states.influxdb_continuous_query module
  121938. .SS Management of Influxdb continuous queries
  121939. .sp
  121940. New in version 2017.7.0.
  121941. .sp
  121942. (compatible with InfluxDB version 0.9+)
  121943. .INDENT 0.0
  121944. .TP
  121945. .B salt.states.influxdb_continuous_query.absent(name, database, **client_args)
  121946. Ensure that given continuous query is absent.
  121947. .INDENT 7.0
  121948. .TP
  121949. .B name
  121950. Name of the continuous query to remove.
  121951. .TP
  121952. .B database
  121953. Name of the database that the continuous query was defined on.
  121954. .UNINDENT
  121955. .UNINDENT
  121956. .INDENT 0.0
  121957. .TP
  121958. .B salt.states.influxdb_continuous_query.present(name, database, query, resample_time=None, coverage_period=None, **client_args)
  121959. Ensure that given continuous query is present.
  121960. .INDENT 7.0
  121961. .TP
  121962. .B name
  121963. Name of the continuous query to create.
  121964. .TP
  121965. .B database
  121966. Database to create continuous query on.
  121967. .TP
  121968. .B query
  121969. The query content
  121970. .TP
  121971. .B resample_time
  121972. None
  121973. Duration between continuous query resampling.
  121974. .TP
  121975. .B coverage_period
  121976. None
  121977. Duration specifying time period per sample.
  121978. .UNINDENT
  121979. .UNINDENT
  121980. .SS salt.states.influxdb_database
  121981. .SS Management of Influxdb databases
  121982. .sp
  121983. (compatible with InfluxDB version 0.9+)
  121984. .INDENT 0.0
  121985. .TP
  121986. .B salt.states.influxdb_database.absent(name, **client_args)
  121987. Ensure that given database is absent.
  121988. .INDENT 7.0
  121989. .TP
  121990. .B name
  121991. Name of the database to remove.
  121992. .UNINDENT
  121993. .UNINDENT
  121994. .INDENT 0.0
  121995. .TP
  121996. .B salt.states.influxdb_database.present(name, **client_args)
  121997. Ensure that given database is present.
  121998. .INDENT 7.0
  121999. .TP
  122000. .B name
  122001. Name of the database to create.
  122002. .UNINDENT
  122003. .UNINDENT
  122004. .SS salt.states.influxdb_retention_policy module
  122005. .SS Management of Influxdb retention policies
  122006. .sp
  122007. New in version 2017.7.0.
  122008. .sp
  122009. (compatible with InfluxDB version 0.9+)
  122010. .INDENT 0.0
  122011. .TP
  122012. .B salt.states.influxdb_retention_policy.absent(name, database, **client_args)
  122013. Ensure that given retention policy is absent.
  122014. .INDENT 7.0
  122015. .TP
  122016. .B name
  122017. Name of the retention policy to remove.
  122018. .TP
  122019. .B database
  122020. Name of the database that the retention policy was defined on.
  122021. .UNINDENT
  122022. .UNINDENT
  122023. .INDENT 0.0
  122024. .TP
  122025. .B salt.states.influxdb_retention_policy.convert_duration(duration)
  122026. Convert the a duration string into XXhYYmZZs format
  122027. .INDENT 7.0
  122028. .TP
  122029. .B duration
  122030. Duration to convert
  122031. .TP
  122032. .B Returns: duration_string
  122033. String representation of duration in XXhYYmZZs format
  122034. .UNINDENT
  122035. .UNINDENT
  122036. .INDENT 0.0
  122037. .TP
  122038. .B salt.states.influxdb_retention_policy.present(name, database, duration=u\(aq7d\(aq, replication=1, default=False, **client_args)
  122039. Ensure that given retention policy is present.
  122040. .INDENT 7.0
  122041. .TP
  122042. .B name
  122043. Name of the retention policy to create.
  122044. .TP
  122045. .B database
  122046. Database to create retention policy on.
  122047. .UNINDENT
  122048. .UNINDENT
  122049. .SS salt.states.influxdb_user
  122050. .SS Management of InfluxDB users
  122051. .sp
  122052. (compatible with InfluxDB version 0.9+)
  122053. .INDENT 0.0
  122054. .TP
  122055. .B salt.states.influxdb_user.absent(name, **client_args)
  122056. Ensure that given user is absent.
  122057. .INDENT 7.0
  122058. .TP
  122059. .B name
  122060. The name of the user to manage
  122061. .UNINDENT
  122062. .UNINDENT
  122063. .INDENT 0.0
  122064. .TP
  122065. .B salt.states.influxdb_user.present(name, passwd, admin=False, grants=None, **client_args)
  122066. Ensure that given user is present.
  122067. .INDENT 7.0
  122068. .TP
  122069. .B name
  122070. Name of the user to manage
  122071. .TP
  122072. .B passwd
  122073. Password of the user
  122074. .TP
  122075. .B admin
  122076. False
  122077. Whether the user should have cluster administration
  122078. privileges or not.
  122079. .TP
  122080. .B grants
  122081. Optional \- Dict of database:privilege items associated with
  122082. the user. Example:
  122083. .INDENT 7.0
  122084. .TP
  122085. .B grants:
  122086. foo_db: read
  122087. bar_db: all
  122088. .UNINDENT
  122089. .UNINDENT
  122090. .sp
  122091. \fBExample:\fP
  122092. .INDENT 7.0
  122093. .INDENT 3.5
  122094. .sp
  122095. .nf
  122096. .ft C
  122097. example user present in influxdb:
  122098. influxdb_user.present:
  122099. \- name: example
  122100. \- passwd: somepassword
  122101. \- admin: False
  122102. \- grants:
  122103. foo_db: read
  122104. bar_db: all
  122105. .ft P
  122106. .fi
  122107. .UNINDENT
  122108. .UNINDENT
  122109. .UNINDENT
  122110. .SS salt.states.infoblox_a
  122111. .sp
  122112. Infoblox A record management.
  122113. .sp
  122114. functions accept api_opts:
  122115. .INDENT 0.0
  122116. .INDENT 3.5
  122117. api_verifyssl: verify SSL [default to True or pillar value]
  122118. api_url: server to connect to [default to pillar value]
  122119. api_username: [default to pillar value]
  122120. api_password: [default to pillar value]
  122121. .UNINDENT
  122122. .UNINDENT
  122123. .INDENT 0.0
  122124. .TP
  122125. .B salt.states.infoblox_a.absent(name=None, ipv4addr=None, **api_opts)
  122126. Ensure infoblox A record is removed.
  122127. .sp
  122128. State example:
  122129. .INDENT 7.0
  122130. .INDENT 3.5
  122131. .sp
  122132. .nf
  122133. .ft C
  122134. infoblox_a.absent:
  122135. \- name: example\-ha\-0.domain.com
  122136. infoblox_a.absent:
  122137. \- name:
  122138. \- ipv4addr: 127.0.23.23
  122139. .ft P
  122140. .fi
  122141. .UNINDENT
  122142. .UNINDENT
  122143. .UNINDENT
  122144. .INDENT 0.0
  122145. .TP
  122146. .B salt.states.infoblox_a.present(name=None, ipv4addr=None, data=None, ensure_data=True, **api_opts)
  122147. Ensure infoblox A record.
  122148. .sp
  122149. When you wish to update a hostname ensure \fIname\fP is set to the hostname
  122150. of the current record. You can give a new name in the \fIdata.name\fP\&.
  122151. .sp
  122152. State example:
  122153. .INDENT 7.0
  122154. .INDENT 3.5
  122155. .sp
  122156. .nf
  122157. .ft C
  122158. infoblox_a.present:
  122159. \- name: example\-ha\-0.domain.com
  122160. \- data:
  122161. name: example\-ha\-0.domain.com
  122162. ipv4addr: 123.0.31.2
  122163. view: Internal
  122164. .ft P
  122165. .fi
  122166. .UNINDENT
  122167. .UNINDENT
  122168. .UNINDENT
  122169. .SS salt.states.infoblox_cname
  122170. .sp
  122171. Infoblox CNAME management.
  122172. .sp
  122173. functions accept api_opts:
  122174. .INDENT 0.0
  122175. .INDENT 3.5
  122176. api_verifyssl: verify SSL [default to True or pillar value]
  122177. api_url: server to connect to [default to pillar value]
  122178. api_username: [default to pillar value]
  122179. api_password: [default to pillar value]
  122180. .UNINDENT
  122181. .UNINDENT
  122182. .INDENT 0.0
  122183. .TP
  122184. .B salt.states.infoblox_cname.absent(name=None, canonical=None, **api_opts)
  122185. Ensure the CNAME with the given name or canonical name is removed
  122186. .UNINDENT
  122187. .INDENT 0.0
  122188. .TP
  122189. .B salt.states.infoblox_cname.present(name=None, data=None, ensure_data=True, **api_opts)
  122190. Ensure the CNAME with the given data is present.
  122191. .INDENT 7.0
  122192. .TP
  122193. .B name
  122194. CNAME of record
  122195. .TP
  122196. .B data
  122197. raw CNAME api data see: \fI\%https://INFOBLOX/wapidoc\fP
  122198. .UNINDENT
  122199. .sp
  122200. State example:
  122201. .INDENT 7.0
  122202. .INDENT 3.5
  122203. .sp
  122204. .nf
  122205. .ft C
  122206. infoblox_cname.present:
  122207. \- name: example\-ha\-0.domain.com
  122208. \- data:
  122209. name: example\-ha\-0.domain.com
  122210. canonical: example.domain.com
  122211. zone: example.com
  122212. view: Internal
  122213. comment: Example comment
  122214. infoblox_cname.present:
  122215. \- name: example\-ha\-0.domain.com
  122216. \- data:
  122217. name: example\-ha\-0.domain.com
  122218. canonical: example.domain.com
  122219. zone: example.com
  122220. view: Internal
  122221. comment: Example comment
  122222. \- api_url: https://INFOBLOX/wapi/v1.2.1
  122223. \- api_username: username
  122224. \- api_password: passwd
  122225. .ft P
  122226. .fi
  122227. .UNINDENT
  122228. .UNINDENT
  122229. .UNINDENT
  122230. .SS salt.states.infoblox_host_record
  122231. .sp
  122232. Infoblox host record management.
  122233. .sp
  122234. functions accept api_opts:
  122235. .INDENT 0.0
  122236. .INDENT 3.5
  122237. api_verifyssl: verify SSL [default to True or pillar value]
  122238. api_url: server to connect to [default to pillar value]
  122239. api_username: [default to pillar value]
  122240. api_password: [default to pillar value]
  122241. .UNINDENT
  122242. .UNINDENT
  122243. .INDENT 0.0
  122244. .TP
  122245. .B salt.states.infoblox_host_record.absent(name=None, ipv4addr=None, mac=None, **api_opts)
  122246. Ensure the host with the given Name ipv4addr or mac is removed.
  122247. .sp
  122248. State example:
  122249. .INDENT 7.0
  122250. .INDENT 3.5
  122251. .sp
  122252. .nf
  122253. .ft C
  122254. infoblox_host_record.absent:
  122255. \- name: hostname.of.record.to.remove
  122256. infoblox_host_record.absent:
  122257. \- name:
  122258. \- ipv4addr: 192.168.0.1
  122259. infoblox_host_record.absent:
  122260. \- name:
  122261. \- mac: 12:02:12:31:23:43
  122262. .ft P
  122263. .fi
  122264. .UNINDENT
  122265. .UNINDENT
  122266. .UNINDENT
  122267. .INDENT 0.0
  122268. .TP
  122269. .B salt.states.infoblox_host_record.present(name=None, data=None, ensure_data=True, **api_opts)
  122270. This will ensure that a host with the provided name exists.
  122271. This will try to ensure that the state of the host matches the given data
  122272. If the host is not found then one will be created.
  122273. .sp
  122274. When trying to update a hostname ensure \fIname\fP is set to the hostname
  122275. of the current record. You can give a new name in the \fIdata.name\fP\&.
  122276. .INDENT 7.0
  122277. .TP
  122278. .B Avoid race conditions, use func:nextavailableip:
  122279. .INDENT 7.0
  122280. .IP \(bu 2
  122281. func:nextavailableip:network/ZG54dfgsrDFEFfsfsLzA:10.0.0.0/8/default
  122282. .IP \(bu 2
  122283. func:nextavailableip:10.0.0.0/8
  122284. .IP \(bu 2
  122285. func:nextavailableip:10.0.0.0/8,externalconfigure_for_dns
  122286. .IP \(bu 2
  122287. func:nextavailableip:10.0.0.3\-10.0.0.10
  122288. .UNINDENT
  122289. .UNINDENT
  122290. .sp
  122291. State Example:
  122292. .INDENT 7.0
  122293. .INDENT 3.5
  122294. .sp
  122295. .nf
  122296. .ft C
  122297. # this would update \(gaoriginal_hostname.example.ca\(ga to changed \(gadata\(ga.
  122298. infoblox_host_record.present:
  122299. \- name: original_hostname.example.ca
  122300. \- data: {\(aqnamhostname.example.cae\(aq: \(aqhostname.example.ca\(aq,
  122301. \(aqaliases\(aq: [\(aqhostname.math.example.ca\(aq],
  122302. \(aqextattrs\(aq: [{\(aqBusiness Contact\(aq: {\(aqvalue\(aq: \(aqEXAMPLE@example.ca\(aq}}],
  122303. \(aqipv4addrs\(aq: [{\(aqconfigure_for_dhcp\(aq: True,
  122304. \(aqipv4addr\(aq: \(aqfunc:nextavailableip:129.97.139.0/24\(aq,
  122305. \(aqmac\(aq: \(aq00:50:56:84:6e:ae\(aq}],
  122306. \(aqipv6addrs\(aq: [], }
  122307. .ft P
  122308. .fi
  122309. .UNINDENT
  122310. .UNINDENT
  122311. .UNINDENT
  122312. .SS salt.states.infoblox_range
  122313. .sp
  122314. Infoblox host record management.
  122315. .sp
  122316. functions accept api_opts:
  122317. .INDENT 0.0
  122318. .INDENT 3.5
  122319. api_verifyssl: verify SSL [default to True or pillar value]
  122320. api_url: server to connect to [default to pillar value]
  122321. api_username: [default to pillar value]
  122322. api_password: [default to pillar value]
  122323. .UNINDENT
  122324. .UNINDENT
  122325. .INDENT 0.0
  122326. .TP
  122327. .B salt.states.infoblox_range.absent(name=None, start_addr=None, end_addr=None, data=None, **api_opts)
  122328. Ensure the range is removed
  122329. .sp
  122330. Supplying the end of the range is optional.
  122331. .sp
  122332. State example:
  122333. .INDENT 7.0
  122334. .INDENT 3.5
  122335. .sp
  122336. .nf
  122337. .ft C
  122338. infoblox_range.absent:
  122339. \- name: \(aqvlan10\(aq
  122340. infoblox_range.absent:
  122341. \- name:
  122342. \- start_addr: 127.0.1.20
  122343. .ft P
  122344. .fi
  122345. .UNINDENT
  122346. .UNINDENT
  122347. .UNINDENT
  122348. .INDENT 0.0
  122349. .TP
  122350. .B salt.states.infoblox_range.present(name=None, start_addr=None, end_addr=None, data=None, **api_opts)
  122351. Ensure range record is present.
  122352. .INDENT 7.0
  122353. .TP
  122354. .B infoblox_range.present:
  122355. start_addr: \(aq129.97.150.160\(aq,
  122356. end_addr: \(aq129.97.150.170\(aq,
  122357. .UNINDENT
  122358. .sp
  122359. Verbose state example:
  122360. .INDENT 7.0
  122361. .INDENT 3.5
  122362. .sp
  122363. .nf
  122364. .ft C
  122365. infoblox_range.present:
  122366. data: {
  122367. \(aqalways_update_dns\(aq: False,
  122368. \(aqauthority\(aq: False,
  122369. \(aqcomment\(aq: \(aqrange of IP addresses used for salt.. was used for ghost images deployment\(aq,
  122370. \(aqddns_generate_hostname\(aq: True,
  122371. \(aqdeny_all_clients\(aq: False,
  122372. \(aqdeny_bootp\(aq: False,
  122373. \(aqdisable\(aq: False,
  122374. \(aqemail_list\(aq: [],
  122375. \(aqenable_ddns\(aq: False,
  122376. \(aqenable_dhcp_thresholds\(aq: False,
  122377. \(aqenable_email_warnings\(aq: False,
  122378. \(aqenable_ifmap_publishing\(aq: False,
  122379. \(aqenable_snmp_warnings\(aq: False,
  122380. \(aqend_addr\(aq: \(aq129.97.150.169\(aq,
  122381. \(aqexclude\(aq: [],
  122382. \(aqextattrs\(aq: {},
  122383. \(aqfingerprint_filter_rules\(aq: [],
  122384. \(aqhigh_water_mark\(aq: 95,
  122385. \(aqhigh_water_mark_reset\(aq: 85,
  122386. \(aqignore_dhcp_option_list_request\(aq: False,
  122387. \(aqlease_scavenge_time\(aq: \-1,
  122388. \(aqlogic_filter_rules\(aq: [],
  122389. \(aqlow_water_mark\(aq: 0,
  122390. \(aqlow_water_mark_reset\(aq: 10,
  122391. \(aqmac_filter_rules\(aq: [],
  122392. \(aqmember\(aq: {\(aq_struct\(aq: \(aqdhcpmember\(aq,
  122393. \(aqipv4addr\(aq: \(aq129.97.128.9\(aq,
  122394. \(aqname\(aq: \(aqcn\-dhcp\-mc.example.ca\(aq},
  122395. \(aqms_options\(aq: [],
  122396. \(aqnac_filter_rules\(aq: [],
  122397. \(aqname\(aq: \(aqghost\-range\(aq,
  122398. \(aqnetwork\(aq: \(aq129.97.150.0/24\(aq,
  122399. \(aqnetwork_view\(aq: \(aqdefault\(aq,
  122400. \(aqoption_filter_rules\(aq: [],
  122401. \(aqoptions\(aq: [{\(aqname\(aq: \(aqdhcp\-lease\-time\(aq,
  122402. \(aqnum\(aq: 51,
  122403. \(aquse_option\(aq: False,
  122404. \(aqvalue\(aq: \(aq43200\(aq,
  122405. \(aqvendor_class\(aq: \(aqDHCP\(aq}],
  122406. \(aqrecycle_leases\(aq: True,
  122407. \(aqrelay_agent_filter_rules\(aq: [],
  122408. \(aqserver_association_type\(aq: \(aqMEMBER\(aq,
  122409. \(aqstart_addr\(aq: \(aq129.97.150.160\(aq,
  122410. \(aqupdate_dns_on_lease_renewal\(aq: False,
  122411. \(aquse_authority\(aq: False,
  122412. \(aquse_bootfile\(aq: False,
  122413. \(aquse_bootserver\(aq: False,
  122414. \(aquse_ddns_domainname\(aq: False,
  122415. \(aquse_ddns_generate_hostname\(aq: True,
  122416. \(aquse_deny_bootp\(aq: False,
  122417. \(aquse_email_list\(aq: False,
  122418. \(aquse_enable_ddns\(aq: False,
  122419. \(aquse_enable_dhcp_thresholds\(aq: False,
  122420. \(aquse_enable_ifmap_publishing\(aq: False,
  122421. \(aquse_ignore_dhcp_option_list_request\(aq: False,
  122422. \(aquse_known_clients\(aq: False,
  122423. \(aquse_lease_scavenge_time\(aq: False,
  122424. \(aquse_nextserver\(aq: False,
  122425. \(aquse_options\(aq: False,
  122426. \(aquse_recycle_leases\(aq: False,
  122427. \(aquse_unknown_clients\(aq: False,
  122428. \(aquse_update_dns_on_lease_renewal\(aq: False
  122429. }
  122430. .ft P
  122431. .fi
  122432. .UNINDENT
  122433. .UNINDENT
  122434. .UNINDENT
  122435. .SS salt.states.ipmi
  122436. .SS Manage IPMI devices over LAN
  122437. .sp
  122438. The following configuration defaults can be defined in the
  122439. minion, master config or pillar:
  122440. .INDENT 0.0
  122441. .INDENT 3.5
  122442. .sp
  122443. .nf
  122444. .ft C
  122445. ipmi.config:
  122446. api_host: 127.0.0.1
  122447. api_user: admin
  122448. api_pass: apassword
  122449. api_port: 623
  122450. api_kg: None
  122451. .ft P
  122452. .fi
  122453. .UNINDENT
  122454. .UNINDENT
  122455. .sp
  122456. Every call can override the config defaults:
  122457. .INDENT 0.0
  122458. .INDENT 3.5
  122459. .sp
  122460. .nf
  122461. .ft C
  122462. ensure myipmi system is set to network boot:
  122463. ipmi.boot_device:
  122464. \- name: network
  122465. \- api_host: myipmi.hostname.com
  122466. \- api_user: root
  122467. \- api_pass: apassword
  122468. \- api_kg: None
  122469. ensure myipmi system is powered on:
  122470. ipmi.power:
  122471. \- name: boot
  122472. \- api_host: myipmi.hostname.com
  122473. \- api_user: root
  122474. \- api_pass: apassword
  122475. .ft P
  122476. .fi
  122477. .UNINDENT
  122478. .UNINDENT
  122479. .INDENT 0.0
  122480. .TP
  122481. .B salt.states.ipmi.boot_device(name=u\(aqdefault\(aq, **kwargs)
  122482. Request power state change
  122483. .INDENT 7.0
  122484. .TP
  122485. .B name = \fBdefault\fP
  122486. .INDENT 7.0
  122487. .IP \(bu 2
  122488. network \-\- Request network boot
  122489. .IP \(bu 2
  122490. hd \-\- Boot from hard drive
  122491. .IP \(bu 2
  122492. safe \-\- Boot from hard drive, requesting \(aqsafe mode\(aq
  122493. .IP \(bu 2
  122494. optical \-\- boot from CD/DVD/BD drive
  122495. .IP \(bu 2
  122496. setup \-\- Boot into setup utility
  122497. .IP \(bu 2
  122498. default \-\- remove any IPMI directed boot device request
  122499. .UNINDENT
  122500. .TP
  122501. .B kwargs
  122502. .INDENT 7.0
  122503. .IP \(bu 2
  122504. api_host=localhost
  122505. .IP \(bu 2
  122506. api_user=admin
  122507. .IP \(bu 2
  122508. api_pass=
  122509. .IP \(bu 2
  122510. api_port=623
  122511. .IP \(bu 2
  122512. api_kg=None
  122513. .UNINDENT
  122514. .UNINDENT
  122515. .UNINDENT
  122516. .INDENT 0.0
  122517. .TP
  122518. .B salt.states.ipmi.power(name=u\(aqpower_on\(aq, wait=300, **kwargs)
  122519. Request power state change
  122520. .INDENT 7.0
  122521. .TP
  122522. .B name
  122523. .INDENT 7.0
  122524. .TP
  122525. .B Ensure power state one of:
  122526. .INDENT 7.0
  122527. .IP \(bu 2
  122528. power_on \-\- system turn on
  122529. .IP \(bu 2
  122530. power_off \-\- system turn off (without waiting for OS)
  122531. .IP \(bu 2
  122532. shutdown \-\- request OS proper shutdown
  122533. .IP \(bu 2
  122534. reset \-\- reset (without waiting for OS)
  122535. .IP \(bu 2
  122536. boot \-\- If system is off, then \(aqon\(aq, else \(aqreset\(aq
  122537. .UNINDENT
  122538. .UNINDENT
  122539. .TP
  122540. .B wait
  122541. wait X seconds for the job to complete before forcing.
  122542. (defaults to 300 seconds)
  122543. .TP
  122544. .B kwargs
  122545. .INDENT 7.0
  122546. .IP \(bu 2
  122547. api_host=localhost
  122548. .IP \(bu 2
  122549. api_user=admin
  122550. .IP \(bu 2
  122551. api_pass=
  122552. .IP \(bu 2
  122553. api_port=623
  122554. .IP \(bu 2
  122555. api_kg=None
  122556. .UNINDENT
  122557. .UNINDENT
  122558. .UNINDENT
  122559. .INDENT 0.0
  122560. .TP
  122561. .B salt.states.ipmi.user_absent(name, channel=14, **kwargs)
  122562. Remove user
  122563. Delete all user (uid) records having the matching name.
  122564. .INDENT 7.0
  122565. .TP
  122566. .B name
  122567. string name of user to delete
  122568. .TP
  122569. .B channel
  122570. channel to remove user access from defaults to 14 for auto.
  122571. .TP
  122572. .B kwargs
  122573. .INDENT 7.0
  122574. .IP \(bu 2
  122575. api_host=localhost
  122576. .IP \(bu 2
  122577. api_user=admin
  122578. .IP \(bu 2
  122579. api_pass=
  122580. .IP \(bu 2
  122581. api_port=623
  122582. .IP \(bu 2
  122583. api_kg=None
  122584. .UNINDENT
  122585. .UNINDENT
  122586. .UNINDENT
  122587. .INDENT 0.0
  122588. .TP
  122589. .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)
  122590. Ensure IPMI user and user privileges.
  122591. .INDENT 7.0
  122592. .TP
  122593. .B name
  122594. name of user (limit 16 bytes)
  122595. .TP
  122596. .B uid
  122597. user id number (1 to 7)
  122598. .TP
  122599. .B password
  122600. user password (limit 16 bytes)
  122601. .TP
  122602. .B channel
  122603. ipmi channel defaults to 14 for auto
  122604. .TP
  122605. .B callback
  122606. User Restricted to Callback
  122607. .INDENT 7.0
  122608. .TP
  122609. .B False = User Privilege Limit is determined by the User Privilege Limit
  122610. parameter privilege_level, for both callback and non\-callback connections.
  122611. .TP
  122612. .B True = User Privilege Limit is determined by the privilege_level
  122613. parameter for callback connections, but is restricted to Callback
  122614. level for non\-callback connections. Thus, a user can only initiate
  122615. a Callback when they \(aqcall in\(aq to the BMC, but once the callback
  122616. connection has been made, the user could potentially establish a
  122617. session as an Operator.
  122618. .UNINDENT
  122619. .TP
  122620. .B link_auth
  122621. User Link authentication
  122622. True/False
  122623. user name and password information will be used for link
  122624. authentication, e.g. PPP CHAP) for the given channel. Link
  122625. authentication itself is a global setting for the channel and is
  122626. enabled/disabled via the serial/modem configuration parameters.
  122627. .TP
  122628. .B ipmi_msg
  122629. User IPMI Messaging
  122630. True/False
  122631. user name and password information will be used for IPMI
  122632. Messaging. In this case, \(aqIPMI Messaging\(aq refers to the ability to
  122633. execute generic IPMI commands that are not associated with a
  122634. particular payload type. For example, if IPMI Messaging is disabled for
  122635. a user, but that user is enabled for activating the SOL
  122636. payload type, then IPMI commands associated with SOL and session
  122637. management, such as Get SOL Configuration Parameters and Close Session
  122638. are available, but generic IPMI commands such as Get SEL Time are
  122639. unavailable.)
  122640. ipmi_msg
  122641. .TP
  122642. .B privilege_level
  122643. .INDENT 7.0
  122644. .IP \(bu 2
  122645. callback
  122646. .IP \(bu 2
  122647. user
  122648. .IP \(bu 2
  122649. operator
  122650. .IP \(bu 2
  122651. administrator
  122652. .IP \(bu 2
  122653. proprietary
  122654. .IP \(bu 2
  122655. no_access
  122656. .UNINDENT
  122657. .TP
  122658. .B kwargs
  122659. .INDENT 7.0
  122660. .IP \(bu 2
  122661. api_host=localhost
  122662. .IP \(bu 2
  122663. api_user=admin
  122664. .IP \(bu 2
  122665. api_pass=
  122666. .IP \(bu 2
  122667. api_port=623
  122668. .IP \(bu 2
  122669. api_kg=None
  122670. .UNINDENT
  122671. .UNINDENT
  122672. .UNINDENT
  122673. .SS salt.states.ipset
  122674. .SS Management of ipsets
  122675. .sp
  122676. This is an ipset\-specific module designed to manage IPSets for use
  122677. in IPTables Firewalls.
  122678. .INDENT 0.0
  122679. .INDENT 3.5
  122680. .sp
  122681. .nf
  122682. .ft C
  122683. setname:
  122684. ipset.set_present:
  122685. \- set_type: bitmap:ip
  122686. \- range: 192.168.0.0/16
  122687. \- comment: True
  122688. setname:
  122689. ipset.set_absent:
  122690. \- set_type: bitmap:ip
  122691. \- range: 192.168.0.0/16
  122692. \- comment: True
  122693. setname_entries:
  122694. ipset.present:
  122695. \- set_name: setname
  122696. \- entry: 192.168.0.3
  122697. \- comment: Hello
  122698. \- require:
  122699. \- ipset: baz
  122700. setname_entries:
  122701. ipset.present:
  122702. \- set_name: setname
  122703. \- entry:
  122704. \- 192.168.0.3
  122705. \- 192.168.1.3
  122706. \- comment: Hello
  122707. \- require:
  122708. \- ipset: baz
  122709. setname_entries:
  122710. ipset.absent:
  122711. \- set_name: setname
  122712. \- entry:
  122713. \- 192.168.0.3
  122714. \- 192.168.1.3
  122715. \- comment: Hello
  122716. \- require:
  122717. \- ipset: baz
  122718. setname:
  122719. ipset.flush:
  122720. .ft P
  122721. .fi
  122722. .UNINDENT
  122723. .UNINDENT
  122724. .INDENT 0.0
  122725. .TP
  122726. .B salt.states.ipset.absent(name, entry=None, entries=None, family=u\(aqipv4\(aq, **kwargs)
  122727. New in version 2014.7.0.
  122728. .sp
  122729. Remove a entry or entries from a chain
  122730. .INDENT 7.0
  122731. .TP
  122732. .B name
  122733. A user\-defined name to call this entry by in another part of a state or
  122734. formula. This should not be an actual entry.
  122735. .TP
  122736. .B family
  122737. Network family, ipv4 or ipv6.
  122738. .UNINDENT
  122739. .UNINDENT
  122740. .INDENT 0.0
  122741. .TP
  122742. .B salt.states.ipset.flush(name, family=u\(aqipv4\(aq, **kwargs)
  122743. New in version 2014.7.0.
  122744. .sp
  122745. Flush current ipset set
  122746. .INDENT 7.0
  122747. .TP
  122748. .B family
  122749. Networking family, either ipv4 or ipv6
  122750. .UNINDENT
  122751. .UNINDENT
  122752. .INDENT 0.0
  122753. .TP
  122754. .B salt.states.ipset.present(name, entry=None, family=u\(aqipv4\(aq, **kwargs)
  122755. New in version 2014.7.0.
  122756. .sp
  122757. Append a entry to a set
  122758. .INDENT 7.0
  122759. .TP
  122760. .B name
  122761. A user\-defined name to call this entry by in another part of a state or
  122762. formula. This should not be an actual entry.
  122763. .TP
  122764. .B entry
  122765. A single entry to add to a set or a list of entries to add to a set
  122766. .TP
  122767. .B family
  122768. Network family, ipv4 or ipv6.
  122769. .UNINDENT
  122770. .UNINDENT
  122771. .INDENT 0.0
  122772. .TP
  122773. .B salt.states.ipset.set_absent(name, family=u\(aqipv4\(aq, **kwargs)
  122774. New in version 2014.7.0.
  122775. .sp
  122776. Verify the set is absent.
  122777. .INDENT 7.0
  122778. .TP
  122779. .B family
  122780. Networking family, either ipv4 or ipv6
  122781. .UNINDENT
  122782. .UNINDENT
  122783. .INDENT 0.0
  122784. .TP
  122785. .B salt.states.ipset.set_present(name, set_type, family=u\(aqipv4\(aq, **kwargs)
  122786. New in version 2014.7.0.
  122787. .sp
  122788. Verify the set exists.
  122789. .INDENT 7.0
  122790. .TP
  122791. .B name
  122792. A user\-defined set name.
  122793. .TP
  122794. .B set_type
  122795. The type for the set.
  122796. .TP
  122797. .B family
  122798. Networking family, either ipv4 or ipv6
  122799. .UNINDENT
  122800. .UNINDENT
  122801. .SS salt.states.junos module
  122802. .SS State modules to interact with Junos devices.
  122803. .INDENT 0.0
  122804. .TP
  122805. .B maturity
  122806. new
  122807. .TP
  122808. .B dependencies
  122809. junos\-eznc, jxmlease
  122810. .UNINDENT
  122811. .sp
  122812. \fBNOTE:\fP
  122813. .INDENT 0.0
  122814. .INDENT 3.5
  122815. Those who wish to use junos\-eznc (PyEZ) version >= 2.1.0, must
  122816. use the latest salt code from github until the next release.
  122817. .UNINDENT
  122818. .UNINDENT
  122819. .sp
  122820. Refer to \fBjunos\fP for information on connecting to junos proxy.
  122821. .INDENT 0.0
  122822. .TP
  122823. .B salt.states.junos.cli(*args, **kwargs)
  122824. Executes the CLI commands and reuturns the text output.
  122825. .INDENT 7.0
  122826. .INDENT 3.5
  122827. .sp
  122828. .nf
  122829. .ft C
  122830. show version:
  122831. junos.cli:
  122832. \- format: xml
  122833. get software version of device:
  122834. junos.cli:
  122835. \- name: show version
  122836. \- format: text
  122837. \- dest: /home/user/show_version.log
  122838. .ft P
  122839. .fi
  122840. .UNINDENT
  122841. .UNINDENT
  122842. .INDENT 7.0
  122843. .TP
  122844. .B Parameters
  122845. .INDENT 7.0
  122846. .IP \(bu 2
  122847. \fBRequired\fP \-\- .INDENT 2.0
  122848. .IP \(bu 2
  122849. name:
  122850. The command that need to be executed on Junos CLI.
  122851. .UNINDENT
  122852. .IP \(bu 2
  122853. \fBOptional\fP \-\- .INDENT 2.0
  122854. .IP \(bu 2
  122855. .INDENT 2.0
  122856. .TP
  122857. .B kwargs: Keyworded arguments which can be provided like\-
  122858. .INDENT 7.0
  122859. .IP \(bu 2
  122860. format:
  122861. Format in which to get the CLI output. (text or xml, default = \(aqtext\(aq)
  122862. .IP \(bu 2
  122863. timeout:
  122864. Set NETCONF RPC timeout. Can be used for commands which
  122865. take a while to execute. (default = 30 seconds)
  122866. .IP \(bu 2
  122867. dest:
  122868. The destination file where the CLI output can be stored. (default = None)
  122869. .UNINDENT
  122870. .UNINDENT
  122871. .UNINDENT
  122872. .UNINDENT
  122873. .UNINDENT
  122874. .UNINDENT
  122875. .INDENT 0.0
  122876. .TP
  122877. .B salt.states.junos.commit(*args, **kwargs)
  122878. Commits the changes loaded into the candidate configuration.
  122879. .INDENT 7.0
  122880. .INDENT 3.5
  122881. .sp
  122882. .nf
  122883. .ft C
  122884. commit the changes:
  122885. junos.commit:
  122886. \- confirm: 10
  122887. .ft P
  122888. .fi
  122889. .UNINDENT
  122890. .UNINDENT
  122891. .INDENT 7.0
  122892. .TP
  122893. .B Parameters
  122894. \fBOptional\fP \-\- .INDENT 7.0
  122895. .IP \(bu 2
  122896. .INDENT 2.0
  122897. .TP
  122898. .B kwargs: Keyworded arguments which can be provided like\-
  122899. .INDENT 7.0
  122900. .IP \(bu 2
  122901. timeout:
  122902. Set NETCONF RPC timeout. Can be used for commands which take a while to execute. (default = 30 seconds)
  122903. .IP \(bu 2
  122904. comment:
  122905. Provide a comment to the commit. (default = None)
  122906. .IP \(bu 2
  122907. confirm:
  122908. 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.
  122909. .IP \(bu 2
  122910. sync:
  122911. 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)
  122912. .IP \(bu 2
  122913. force_sync:
  122914. On dual control plane systems, force the candidate configuration
  122915. on one control plane to be copied to the other control plane.
  122916. .IP \(bu 2
  122917. full:
  122918. When set to True requires all the daemons to check and evaluate the new configuration.
  122919. .IP \(bu 2
  122920. detail:
  122921. When true return commit detail.
  122922. .UNINDENT
  122923. .UNINDENT
  122924. .UNINDENT
  122925. .UNINDENT
  122926. .UNINDENT
  122927. .INDENT 0.0
  122928. .TP
  122929. .B salt.states.junos.commit_check(*args, **kwargs)
  122930. Perform a commit check on the configuration.
  122931. .INDENT 7.0
  122932. .INDENT 3.5
  122933. .sp
  122934. .nf
  122935. .ft C
  122936. perform commit check:
  122937. junos.commit_check
  122938. .ft P
  122939. .fi
  122940. .UNINDENT
  122941. .UNINDENT
  122942. .UNINDENT
  122943. .INDENT 0.0
  122944. .TP
  122945. .B salt.states.junos.diff(*args, **kwargs)
  122946. Changed in version 3001.
  122947. .sp
  122948. Gets the difference between the candidate and the current configuration.
  122949. .INDENT 7.0
  122950. .INDENT 3.5
  122951. .sp
  122952. .nf
  122953. .ft C
  122954. get the diff:
  122955. junos.diff:
  122956. \- d_id: 10
  122957. .ft P
  122958. .fi
  122959. .UNINDENT
  122960. .UNINDENT
  122961. .INDENT 7.0
  122962. .TP
  122963. .B Parameters
  122964. \fBOptional\fP \-\- .INDENT 7.0
  122965. .IP \(bu 2
  122966. d_id:
  122967. The rollback diff id (d_id) value [0\-49]. (default = 0)
  122968. .UNINDENT
  122969. .UNINDENT
  122970. .UNINDENT
  122971. .INDENT 0.0
  122972. .TP
  122973. .B salt.states.junos.file_copy(*args, **kwargs)
  122974. Copies the file from the local device to the junos device.
  122975. .INDENT 7.0
  122976. .INDENT 3.5
  122977. .sp
  122978. .nf
  122979. .ft C
  122980. /home/m2/info.txt:
  122981. junos.file_copy:
  122982. \- dest: info_copy.txt
  122983. .ft P
  122984. .fi
  122985. .UNINDENT
  122986. .UNINDENT
  122987. .INDENT 7.0
  122988. .TP
  122989. .B Parameters
  122990. \fBRequired\fP \-\- .INDENT 7.0
  122991. .IP \(bu 2
  122992. src:
  122993. The sorce path where the file is kept.
  122994. .IP \(bu 2
  122995. dest:
  122996. The destination path where the file will be copied.
  122997. .UNINDENT
  122998. .UNINDENT
  122999. .UNINDENT
  123000. .INDENT 0.0
  123001. .TP
  123002. .B salt.states.junos.get_table(*args, **kwargs)
  123003. New in version 3001.
  123004. .sp
  123005. Retrieve data from a Junos device using Tables/Views
  123006. .INDENT 7.0
  123007. .INDENT 3.5
  123008. .sp
  123009. .nf
  123010. .ft C
  123011. get route details:
  123012. junos.get_table:
  123013. \- table: RouteTable
  123014. \- table_file: routes.yml
  123015. get interface details:
  123016. junos.get_table:
  123017. \- table: EthPortTable
  123018. \- table_file: ethport.yml
  123019. \- table_args:
  123020. interface_name: ge\-0/0/0
  123021. .ft P
  123022. .fi
  123023. .UNINDENT
  123024. .UNINDENT
  123025. .INDENT 7.0
  123026. .TP
  123027. .B name (required)
  123028. task definition
  123029. .TP
  123030. .B table (required)
  123031. Name of PyEZ Table
  123032. .TP
  123033. .B file
  123034. YAML file that has the table specified in table parameter
  123035. .TP
  123036. .B path:
  123037. Path of location of the YAML file.
  123038. defaults to op directory in jnpr.junos.op
  123039. .TP
  123040. .B target:
  123041. if command need to run on FPC, can specify fpc target
  123042. .TP
  123043. .B key:
  123044. To overwrite key provided in YAML
  123045. .TP
  123046. .B key_items:
  123047. To select only given key items
  123048. .TP
  123049. .B filters:
  123050. To select only filter for the dictionary from columns
  123051. .TP
  123052. .B template_args:
  123053. key/value pair which should render Jinja template command
  123054. .UNINDENT
  123055. .UNINDENT
  123056. .INDENT 0.0
  123057. .TP
  123058. .B salt.states.junos.install_config(*args, **kwargs)
  123059. Loads and commits the configuration provided.
  123060. .INDENT 7.0
  123061. .INDENT 3.5
  123062. .sp
  123063. .nf
  123064. .ft C
  123065. Install the mentioned config:
  123066. junos.install_config:
  123067. \- name: salt://configs/interface.set
  123068. \- timeout: 100
  123069. \- diffs_file: \(aq/var/log/diff\(aq
  123070. .ft P
  123071. .fi
  123072. .UNINDENT
  123073. .UNINDENT
  123074. .INDENT 7.0
  123075. .INDENT 3.5
  123076. .sp
  123077. .nf
  123078. .ft C
  123079. Install the mentioned config:
  123080. junos.install_config:
  123081. \- path: salt://configs/interface.set
  123082. \- timeout: 100
  123083. \- template_vars:
  123084. interface_name: lo0
  123085. description: Creating interface via SaltStack.
  123086. .ft P
  123087. .fi
  123088. .UNINDENT
  123089. .UNINDENT
  123090. .INDENT 7.0
  123091. .TP
  123092. .B name
  123093. Path where the configuration/template file is present. If the file has
  123094. a \fB*.conf\fP extension, the content is treated as text format. If the
  123095. file has a \fB*.xml\fP extension, the content is treated as XML format. If
  123096. the file has a \fB*.set\fP extension, the content is treated as Junos OS
  123097. \fBset\fP commands
  123098. .TP
  123099. .B template_vars
  123100. The dictionary of data for the jinja variables present in the jinja
  123101. template
  123102. .TP
  123103. .B timeout
  123104. 30
  123105. Set NETCONF RPC timeout. Can be used for commands which take a while to
  123106. execute.
  123107. .TP
  123108. .B overwrite
  123109. False
  123110. Set to \fBTrue\fP if you want this file is to completely replace the
  123111. configuration file. Sets action to override
  123112. .sp
  123113. \fBNOTE:\fP
  123114. .INDENT 7.0
  123115. .INDENT 3.5
  123116. This option cannot be used if \fBformat\fP is "set".
  123117. .UNINDENT
  123118. .UNINDENT
  123119. .TP
  123120. .B merge
  123121. False
  123122. If set to \fBTrue\fP will set the load\-config action to merge.
  123123. the default load\-config action is \(aqreplace\(aq for xml/json/text config
  123124. .TP
  123125. .B comment
  123126. Provide a comment to the commit. (default = None)
  123127. .TP
  123128. .B confirm
  123129. Provide time in minutes for commit confirmation. If this option is
  123130. specified, the commit will be rolled back in the given time unless the
  123131. commit is confirmed.
  123132. .TP
  123133. .B diffs_file
  123134. Path to the file where the diff (difference in old configuration and the
  123135. committed configuration) will be stored.
  123136. .sp
  123137. \fBNOTE:\fP
  123138. .INDENT 7.0
  123139. .INDENT 3.5
  123140. The file will be stored on the proxy minion. To push the files to the
  123141. master use \fBcp.push\fP\&.
  123142. .UNINDENT
  123143. .UNINDENT
  123144. .UNINDENT
  123145. .UNINDENT
  123146. .INDENT 0.0
  123147. .TP
  123148. .B salt.states.junos.install_os(*args, **kwargs)
  123149. Installs the given image on the device. After the installation is complete
  123150. the device is rebooted, if reboot=True is given as a keyworded argument.
  123151. .INDENT 7.0
  123152. .INDENT 3.5
  123153. .sp
  123154. .nf
  123155. .ft C
  123156. salt://images/junos_image.tgz:
  123157. junos.install_os:
  123158. \- timeout: 100
  123159. \- reboot: True
  123160. .ft P
  123161. .fi
  123162. .UNINDENT
  123163. .UNINDENT
  123164. .INDENT 7.0
  123165. .TP
  123166. .B Parameters
  123167. .INDENT 7.0
  123168. .IP \(bu 2
  123169. \fBRequired\fP \-\- .INDENT 2.0
  123170. .IP \(bu 2
  123171. path:
  123172. Path where the image file is present on the pro xy minion.
  123173. .UNINDENT
  123174. .IP \(bu 2
  123175. \fBOptional\fP \-\- .INDENT 2.0
  123176. .IP \(bu 2
  123177. .INDENT 2.0
  123178. .TP
  123179. .B kwargs: keyworded arguments to be given such as timeout, reboot etc
  123180. .INDENT 7.0
  123181. .IP \(bu 2
  123182. timeout:
  123183. Set NETCONF RPC timeout. Can be used to RPCs which
  123184. take a while to execute. (default = 30 seconds)
  123185. .IP \(bu 2
  123186. reboot:
  123187. Whether to reboot after installation (default = False)
  123188. .IP \(bu 2
  123189. no_copy:
  123190. When True the software package will not be SCP’d to the device. (default = False)
  123191. .UNINDENT
  123192. .UNINDENT
  123193. .UNINDENT
  123194. .UNINDENT
  123195. .UNINDENT
  123196. .UNINDENT
  123197. .INDENT 0.0
  123198. .TP
  123199. .B salt.states.junos.load(*args, **kwargs)
  123200. Loads the configuration provided onto the junos device.
  123201. .INDENT 7.0
  123202. .INDENT 3.5
  123203. .sp
  123204. .nf
  123205. .ft C
  123206. Install the mentioned config:
  123207. junos.load:
  123208. \- name: salt://configs/interface.set
  123209. .ft P
  123210. .fi
  123211. .UNINDENT
  123212. .UNINDENT
  123213. .INDENT 7.0
  123214. .INDENT 3.5
  123215. .sp
  123216. .nf
  123217. .ft C
  123218. Install the mentioned config:
  123219. junos.load:
  123220. \- name: salt://configs/interface.set
  123221. \- template_vars:
  123222. interface_name: lo0
  123223. description: Creating interface via SaltStack.
  123224. .ft P
  123225. .fi
  123226. .UNINDENT
  123227. .UNINDENT
  123228. .sp
  123229. Sample template:
  123230. .INDENT 7.0
  123231. .INDENT 3.5
  123232. .sp
  123233. .nf
  123234. .ft C
  123235. set interfaces {{ interface_name }} unit 0
  123236. .ft P
  123237. .fi
  123238. .UNINDENT
  123239. .UNINDENT
  123240. .INDENT 7.0
  123241. .TP
  123242. .B name
  123243. Path where the configuration/template file is present. If the file has
  123244. a \fB*.conf\fP extension, the content is treated as text format. If the
  123245. file has a \fB*.xml\fP extension, the content is treated as XML format. If
  123246. the file has a \fB*.set\fP extension, the content is treated as Junos OS
  123247. \fBset\fP commands.
  123248. .TP
  123249. .B overwrite
  123250. False
  123251. Set to \fBTrue\fP if you want this file is to completely replace the
  123252. configuration file.
  123253. .sp
  123254. \fBNOTE:\fP
  123255. .INDENT 7.0
  123256. .INDENT 3.5
  123257. This option cannot be used if \fBformat\fP is "set".
  123258. .UNINDENT
  123259. .UNINDENT
  123260. .TP
  123261. .B merge
  123262. False
  123263. If set to \fBTrue\fP will set the load\-config action to merge.
  123264. the default load\-config action is \(aqreplace\(aq for xml/json/text config
  123265. .TP
  123266. .B update
  123267. False
  123268. Compare a complete loaded configuration against the candidate
  123269. configuration. For each hierarchy level or configuration object that is
  123270. different in the two configurations, the version in the loaded
  123271. configuration replaces the version in the candidate configuration. When
  123272. the configuration is later committed, only system processes that are
  123273. affected by the changed configuration elements parse the new
  123274. configuration. This action is supported from PyEZ 2.1 (default = False)
  123275. .TP
  123276. .B template_vars
  123277. Variables to be passed into the template processing engine in addition
  123278. to those present in __pillar__, __opts__, __grains__, etc.
  123279. You may reference these variables in your template like so:
  123280. {{ template_vars["var_name"] }}
  123281. .UNINDENT
  123282. .UNINDENT
  123283. .INDENT 0.0
  123284. .TP
  123285. .B salt.states.junos.lock(*args, **kwargs)
  123286. Attempts an exclusive lock on the candidate configuration. This
  123287. is a non\-blocking call.
  123288. .sp
  123289. \fBNOTE:\fP
  123290. .INDENT 7.0
  123291. .INDENT 3.5
  123292. Any user who wishes to use lock, must necessarily unlock the
  123293. configuration too. Ensure \fI\%unlock\fP
  123294. is called in the same orchestration run in which the lock is called.
  123295. .UNINDENT
  123296. .UNINDENT
  123297. .INDENT 7.0
  123298. .INDENT 3.5
  123299. .sp
  123300. .nf
  123301. .ft C
  123302. lock the config:
  123303. junos.lock
  123304. .ft P
  123305. .fi
  123306. .UNINDENT
  123307. .UNINDENT
  123308. .UNINDENT
  123309. .INDENT 0.0
  123310. .TP
  123311. .B salt.states.junos.resultdecorator(function)
  123312. .UNINDENT
  123313. .INDENT 0.0
  123314. .TP
  123315. .B salt.states.junos.rollback(*args, **kwargs)
  123316. Rollbacks the committed changes.
  123317. .INDENT 7.0
  123318. .INDENT 3.5
  123319. .sp
  123320. .nf
  123321. .ft C
  123322. rollback the changes:
  123323. junos.rollback:
  123324. \- id: 5
  123325. .ft P
  123326. .fi
  123327. .UNINDENT
  123328. .UNINDENT
  123329. .INDENT 7.0
  123330. .TP
  123331. .B Parameters
  123332. \fBOptional\fP \-\- .INDENT 7.0
  123333. .IP \(bu 2
  123334. id:
  123335. The rollback id value [0\-49]. (default = 0)
  123336. .IP \(bu 2
  123337. .INDENT 2.0
  123338. .TP
  123339. .B kwargs: Keyworded arguments which can be provided like\-
  123340. .INDENT 7.0
  123341. .IP \(bu 2
  123342. timeout:
  123343. Set NETCONF RPC timeout. Can be used for commands which
  123344. take a while to execute. (default = 30 seconds)
  123345. .IP \(bu 2
  123346. comment:
  123347. Provide a comment to the commit. (default = None)
  123348. .IP \(bu 2
  123349. confirm:
  123350. 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.
  123351. .IP \(bu 2
  123352. diffs_file:
  123353. Path to the file where any diffs will be written. (default = None)
  123354. .UNINDENT
  123355. .UNINDENT
  123356. .UNINDENT
  123357. .UNINDENT
  123358. .UNINDENT
  123359. .INDENT 0.0
  123360. .TP
  123361. .B salt.states.junos.rpc(*args, **kwargs)
  123362. Executes the given rpc. The returned data can be stored in a file
  123363. by specifying the destination path with dest as an argument
  123364. .INDENT 7.0
  123365. .INDENT 3.5
  123366. .sp
  123367. .nf
  123368. .ft C
  123369. get\-interface\-information:
  123370. junos.rpc:
  123371. \- dest: /home/user/rpc.log
  123372. \- interface_name: lo0
  123373. fetch interface information with terse:
  123374. junos.rpc:
  123375. \- name: get\-interface\-information
  123376. \- terse: True
  123377. .ft P
  123378. .fi
  123379. .UNINDENT
  123380. .UNINDENT
  123381. .INDENT 7.0
  123382. .TP
  123383. .B Parameters
  123384. .INDENT 7.0
  123385. .IP \(bu 2
  123386. \fBRequired\fP \-\- .INDENT 2.0
  123387. .IP \(bu 2
  123388. name:
  123389. The rpc to be executed. (default = None)
  123390. .UNINDENT
  123391. .IP \(bu 2
  123392. \fBOptional\fP \-\- .INDENT 2.0
  123393. .IP \(bu 2
  123394. dest:
  123395. Destination file where the rpc output is stored. (default = None)
  123396. Note that the file will be stored on the proxy minion. To push the
  123397. files to the master use the salt\(aqs following execution module: \fBcp.push\fP
  123398. .IP \(bu 2
  123399. format:
  123400. The format in which the rpc reply must be stored in file specified in the dest
  123401. (used only when dest is specified) (default = xml)
  123402. .IP \(bu 2
  123403. .INDENT 2.0
  123404. .TP
  123405. .B kwargs: keyworded arguments taken by rpc call like\-
  123406. .INDENT 7.0
  123407. .IP \(bu 2
  123408. timeout: 30
  123409. Set NETCONF RPC timeout. Can be used for commands which
  123410. take a while to execute. (default= 30 seconds)
  123411. .IP \(bu 2
  123412. filter:
  123413. Only to be used with \(aqget\-config\(aq rpc to get specific configuration.
  123414. .IP \(bu 2
  123415. terse:
  123416. Amount of information you want.
  123417. .IP \(bu 2
  123418. interface_name:
  123419. Name of the interface whose information you want.
  123420. .UNINDENT
  123421. .UNINDENT
  123422. .UNINDENT
  123423. .UNINDENT
  123424. .UNINDENT
  123425. .UNINDENT
  123426. .INDENT 0.0
  123427. .TP
  123428. .B salt.states.junos.set_hostname(*args, **kwargs)
  123429. Changes the hostname of the device.
  123430. .INDENT 7.0
  123431. .INDENT 3.5
  123432. .sp
  123433. .nf
  123434. .ft C
  123435. device_name:
  123436. junos.set_hostname:
  123437. \- comment: "Host\-name set via saltstack."
  123438. .ft P
  123439. .fi
  123440. .UNINDENT
  123441. .UNINDENT
  123442. .INDENT 7.0
  123443. .TP
  123444. .B Parameters
  123445. .INDENT 7.0
  123446. .IP \(bu 2
  123447. \fBRequired\fP \-\- .INDENT 2.0
  123448. .IP \(bu 2
  123449. hostname: The name to be set. (default = None)
  123450. .UNINDENT
  123451. .IP \(bu 2
  123452. \fBOptional\fP \-\- .INDENT 2.0
  123453. .IP \(bu 2
  123454. .INDENT 2.0
  123455. .TP
  123456. .B kwargs: Keyworded arguments which can be provided like\-
  123457. .INDENT 7.0
  123458. .IP \(bu 2
  123459. timeout:
  123460. Set NETCONF RPC timeout. Can be used for commands
  123461. which take a while to execute. (default = 30 seconds)
  123462. .IP \(bu 2
  123463. comment:
  123464. Provide a comment to the commit. (default = None)
  123465. .IP \(bu 2
  123466. confirm:
  123467. 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.
  123468. .UNINDENT
  123469. .UNINDENT
  123470. .UNINDENT
  123471. .UNINDENT
  123472. .UNINDENT
  123473. .UNINDENT
  123474. .INDENT 0.0
  123475. .TP
  123476. .B salt.states.junos.shutdown(*args, **kwargs)
  123477. Shuts down the device.
  123478. .INDENT 7.0
  123479. .INDENT 3.5
  123480. .sp
  123481. .nf
  123482. .ft C
  123483. shut the device:
  123484. junos.shutdown:
  123485. \- in_min: 10
  123486. .ft P
  123487. .fi
  123488. .UNINDENT
  123489. .UNINDENT
  123490. .INDENT 7.0
  123491. .TP
  123492. .B Parameters
  123493. \fBOptional\fP \-\- .INDENT 7.0
  123494. .IP \(bu 2
  123495. .INDENT 2.0
  123496. .TP
  123497. .B kwargs:
  123498. .INDENT 7.0
  123499. .IP \(bu 2
  123500. reboot:
  123501. Whether to reboot instead of shutdown. (default=False)
  123502. .IP \(bu 2
  123503. at:
  123504. Specify time for reboot. (To be used only if reboot=yes)
  123505. .IP \(bu 2
  123506. in_min:
  123507. Specify delay in minutes for shutdown
  123508. .UNINDENT
  123509. .UNINDENT
  123510. .UNINDENT
  123511. .UNINDENT
  123512. .UNINDENT
  123513. .INDENT 0.0
  123514. .TP
  123515. .B salt.states.junos.unlock(*args, **kwargs)
  123516. Unlocks the candidate configuration.
  123517. .INDENT 7.0
  123518. .INDENT 3.5
  123519. .sp
  123520. .nf
  123521. .ft C
  123522. unlock the config:
  123523. junos.unlock
  123524. .ft P
  123525. .fi
  123526. .UNINDENT
  123527. .UNINDENT
  123528. .UNINDENT
  123529. .INDENT 0.0
  123530. .TP
  123531. .B salt.states.junos.zeroize(*args, **kwargs)
  123532. Resets the device to default factory settings.
  123533. .INDENT 7.0
  123534. .INDENT 3.5
  123535. .sp
  123536. .nf
  123537. .ft C
  123538. reset my device:
  123539. junos.zeroize
  123540. .ft P
  123541. .fi
  123542. .UNINDENT
  123543. .UNINDENT
  123544. .sp
  123545. name: can be anything
  123546. .UNINDENT
  123547. .SS salt.states.kernelpkg
  123548. .SS Manage kernel packages and active kernel version
  123549. .sp
  123550. Example state to install the latest kernel from package repositories:
  123551. .INDENT 0.0
  123552. .INDENT 3.5
  123553. .sp
  123554. .nf
  123555. .ft C
  123556. install\-latest\-kernel:
  123557. kernelpkg.latest_installed: []
  123558. .ft P
  123559. .fi
  123560. .UNINDENT
  123561. .UNINDENT
  123562. .sp
  123563. Example state to boot the system if a new kernel has been installed:
  123564. .INDENT 0.0
  123565. .INDENT 3.5
  123566. .sp
  123567. .nf
  123568. .ft C
  123569. boot\-latest\-kernel:
  123570. kernelpkg.latest_active:
  123571. \- at_time: 1
  123572. .ft P
  123573. .fi
  123574. .UNINDENT
  123575. .UNINDENT
  123576. .sp
  123577. Example state chaining the install and reboot operations:
  123578. .INDENT 0.0
  123579. .INDENT 3.5
  123580. .sp
  123581. .nf
  123582. .ft C
  123583. install\-latest\-kernel:
  123584. kernelpkg.latest_installed: []
  123585. boot\-latest\-kernel:
  123586. kernelpkg.latest_active:
  123587. \- at_time: 1
  123588. \- onchanges:
  123589. \- kernelpkg: install\-latest\-kernel
  123590. .ft P
  123591. .fi
  123592. .UNINDENT
  123593. .UNINDENT
  123594. .sp
  123595. Chaining can also be achieved using wait/listen requisites:
  123596. .INDENT 0.0
  123597. .INDENT 3.5
  123598. .sp
  123599. .nf
  123600. .ft C
  123601. install\-latest\-kernel:
  123602. kernel.latest_installed: []
  123603. boot\-latest\-kernel:
  123604. kernel.latest_wait:
  123605. \- at_time: 1
  123606. \- listen:
  123607. \- kernel: install\-latest\-kernel
  123608. .ft P
  123609. .fi
  123610. .UNINDENT
  123611. .UNINDENT
  123612. .INDENT 0.0
  123613. .TP
  123614. .B salt.states.kernelpkg.latest_active(name, at_time=None, **kwargs)
  123615. Initiate a reboot if the running kernel is not the latest one installed.
  123616. .sp
  123617. \fBNOTE:\fP
  123618. .INDENT 7.0
  123619. .INDENT 3.5
  123620. This state does not install any patches. It only compares the running
  123621. kernel version number to other kernel versions also installed in the
  123622. system. If the running version is not the latest one installed, this
  123623. state will reboot the system.
  123624. .sp
  123625. See \fBkernelpkg.upgrade\fP and
  123626. \fI\%latest_installed()\fP
  123627. for ways to install new kernel packages.
  123628. .sp
  123629. This module does not attempt to understand or manage boot loader configurations
  123630. it is possible to have a new kernel installed, but a boot loader configuration
  123631. that will never activate it. For this reason, it would not be advisable to
  123632. schedule this state to run automatically.
  123633. .sp
  123634. Because this state function may cause the system to reboot, it may be preferable
  123635. to move it to the very end of the state run.
  123636. See \fI\%latest_wait()\fP
  123637. for a waitable state that can be called with the \fIlisten\fP requesite.
  123638. .UNINDENT
  123639. .UNINDENT
  123640. .INDENT 7.0
  123641. .TP
  123642. .B name
  123643. Arbitrary name for the state. Does not affect behavior.
  123644. .TP
  123645. .B at_time
  123646. The wait time in minutes before the system will be rebooted.
  123647. .UNINDENT
  123648. .UNINDENT
  123649. .INDENT 0.0
  123650. .TP
  123651. .B salt.states.kernelpkg.latest_installed(name, **kwargs)
  123652. Ensure that the latest version of the kernel available in the
  123653. repositories is installed.
  123654. .sp
  123655. \fBNOTE:\fP
  123656. .INDENT 7.0
  123657. .INDENT 3.5
  123658. This state only installs the kernel, but does not activate it.
  123659. The new kernel should become active at the next reboot.
  123660. See \fBkernelpkg.needs_reboot\fP for details on
  123661. how to detect this condition, and \fI\%latest_active()\fP
  123662. to initiale a reboot when needed.
  123663. .UNINDENT
  123664. .UNINDENT
  123665. .INDENT 7.0
  123666. .TP
  123667. .B name
  123668. Arbitrary name for the state. Does not affect behavior.
  123669. .UNINDENT
  123670. .UNINDENT
  123671. .INDENT 0.0
  123672. .TP
  123673. .B salt.states.kernelpkg.latest_wait(name, at_time=None, **kwargs)
  123674. Initiate a reboot if the running kernel is not the latest one installed. This is the
  123675. waitable version of \fI\%latest_active()\fP and
  123676. will not take any action unless triggered by a watch or listen requesite.
  123677. .sp
  123678. \fBNOTE:\fP
  123679. .INDENT 7.0
  123680. .INDENT 3.5
  123681. Because this state function may cause the system to reboot, it may be preferable
  123682. to move it to the very end of the state run using \fIlisten\fP or \fIlisten_in\fP requisites.
  123683. .INDENT 0.0
  123684. .INDENT 3.5
  123685. .sp
  123686. .nf
  123687. .ft C
  123688. system\-up\-to\-date:
  123689. pkg.uptodate:
  123690. \- refresh: true
  123691. boot\-latest\-kernel:
  123692. kernelpkg.latest_wait:
  123693. \- at_time: 1
  123694. \- listen:
  123695. \- pkg: system\-up\-to\-date
  123696. .ft P
  123697. .fi
  123698. .UNINDENT
  123699. .UNINDENT
  123700. .UNINDENT
  123701. .UNINDENT
  123702. .INDENT 7.0
  123703. .TP
  123704. .B name
  123705. Arbitrary name for the state. Does not affect behavior.
  123706. .TP
  123707. .B at_time
  123708. The wait time in minutes before the system will be rebooted.
  123709. .UNINDENT
  123710. .UNINDENT
  123711. .INDENT 0.0
  123712. .TP
  123713. .B salt.states.kernelpkg.mod_watch(name, sfun, **kwargs)
  123714. Execute a kernelpkg state based on a watch or listen call
  123715. .UNINDENT
  123716. .SS salt.states.keyboard
  123717. .SS Management of keyboard layouts
  123718. .sp
  123719. The keyboard layout can be managed for the system:
  123720. .INDENT 0.0
  123721. .INDENT 3.5
  123722. .sp
  123723. .nf
  123724. .ft C
  123725. us:
  123726. keyboard.system
  123727. .ft P
  123728. .fi
  123729. .UNINDENT
  123730. .UNINDENT
  123731. .sp
  123732. Or it can be managed for XOrg:
  123733. .INDENT 0.0
  123734. .INDENT 3.5
  123735. .sp
  123736. .nf
  123737. .ft C
  123738. us:
  123739. keyboard.xorg
  123740. .ft P
  123741. .fi
  123742. .UNINDENT
  123743. .UNINDENT
  123744. .INDENT 0.0
  123745. .TP
  123746. .B salt.states.keyboard.system(name)
  123747. Set the keyboard layout for the system
  123748. .INDENT 7.0
  123749. .TP
  123750. .B name
  123751. The keyboard layout to use
  123752. .UNINDENT
  123753. .UNINDENT
  123754. .INDENT 0.0
  123755. .TP
  123756. .B salt.states.keyboard.xorg(name)
  123757. Set the keyboard layout for XOrg
  123758. .INDENT 7.0
  123759. .TP
  123760. .B layout
  123761. The keyboard layout to use
  123762. .UNINDENT
  123763. .UNINDENT
  123764. .SS salt.states.keystone
  123765. .SS Management of Keystone users
  123766. .INDENT 0.0
  123767. .TP
  123768. .B depends
  123769. .INDENT 7.0
  123770. .IP \(bu 2
  123771. keystoneclient Python module
  123772. .UNINDENT
  123773. .TP
  123774. .B configuration
  123775. See \fBsalt.modules.keystone\fP for setup instructions.
  123776. .UNINDENT
  123777. .INDENT 0.0
  123778. .INDENT 3.5
  123779. .sp
  123780. .nf
  123781. .ft C
  123782. Keystone tenants:
  123783. keystone.tenant_present:
  123784. \- names:
  123785. \- admin
  123786. \- demo
  123787. \- service
  123788. Keystone roles:
  123789. keystone.role_present:
  123790. \- names:
  123791. \- admin
  123792. \- Member
  123793. admin:
  123794. keystone.user_present:
  123795. \- password: R00T_4CC3SS
  123796. \- email: admin@domain.com
  123797. \- roles:
  123798. admin: # tenants
  123799. \- admin # roles
  123800. service:
  123801. \- admin
  123802. \- Member
  123803. \- require:
  123804. \- keystone: Keystone tenants
  123805. \- keystone: Keystone roles
  123806. nova:
  123807. keystone.user_present:
  123808. \- password: \(aq$up3rn0v4\(aq
  123809. \- email: nova@domain.com
  123810. \- tenant: service
  123811. \- roles:
  123812. service:
  123813. \- admin
  123814. \- require:
  123815. \- keystone: Keystone tenants
  123816. \- keystone: Keystone roles
  123817. demo:
  123818. keystone.user_present:
  123819. \- password: \(aqd3m0n$trati0n\(aq
  123820. \- email: demo@domain.com
  123821. \- tenant: demo
  123822. \- roles:
  123823. demo:
  123824. \- Member
  123825. \- require:
  123826. \- keystone: Keystone tenants
  123827. \- keystone: Keystone roles
  123828. nova service:
  123829. keystone.service_present:
  123830. \- name: nova
  123831. \- service_type: compute
  123832. \- description: OpenStack Compute Service
  123833. .ft P
  123834. .fi
  123835. .UNINDENT
  123836. .UNINDENT
  123837. .INDENT 0.0
  123838. .TP
  123839. .B salt.states.keystone.endpoint_absent(name, region=None, profile=None, interface=None, **connection_args)
  123840. Ensure that the endpoint for a service doesn\(aqt exist in Keystone catalog
  123841. .INDENT 7.0
  123842. .TP
  123843. .B name
  123844. The name of the service whose endpoints should not exist
  123845. .TP
  123846. .B region (optional)
  123847. The region of the endpoint. Defaults to \fBRegionOne\fP\&.
  123848. .TP
  123849. .B interface
  123850. The interface type, which describes the visibility
  123851. of the endpoint. (for V3 API)
  123852. .UNINDENT
  123853. .UNINDENT
  123854. .INDENT 0.0
  123855. .TP
  123856. .B salt.states.keystone.endpoint_present(name, publicurl=None, internalurl=None, adminurl=None, region=None, profile=None, url=None, interface=None, **connection_args)
  123857. Ensure the specified endpoints exists for service
  123858. .INDENT 7.0
  123859. .TP
  123860. .B name
  123861. The Service name
  123862. .TP
  123863. .B publicurl
  123864. The public url of service endpoint (for V2 API)
  123865. .TP
  123866. .B internalurl
  123867. The internal url of service endpoint (for V2 API)
  123868. .TP
  123869. .B adminurl
  123870. The admin url of the service endpoint (for V2 API)
  123871. .TP
  123872. .B region
  123873. The region of the endpoint
  123874. .TP
  123875. .B url
  123876. The endpoint URL (for V3 API)
  123877. .TP
  123878. .B interface
  123879. The interface type, which describes the visibility
  123880. of the endpoint. (for V3 API)
  123881. .UNINDENT
  123882. .UNINDENT
  123883. .INDENT 0.0
  123884. .TP
  123885. .B salt.states.keystone.project_absent(name, profile=None, **connection_args)
  123886. Ensure that the keystone project is absent.
  123887. Alias for tenant_absent from V2 API to fulfill
  123888. V3 API naming convention.
  123889. .sp
  123890. New in version 2016.11.0.
  123891. .INDENT 7.0
  123892. .TP
  123893. .B name
  123894. The name of the project that should not exist
  123895. .UNINDENT
  123896. .INDENT 7.0
  123897. .INDENT 3.5
  123898. .sp
  123899. .nf
  123900. .ft C
  123901. delete_nova:
  123902. keystone.project_absent:
  123903. \- name: nova
  123904. .ft P
  123905. .fi
  123906. .UNINDENT
  123907. .UNINDENT
  123908. .UNINDENT
  123909. .INDENT 0.0
  123910. .TP
  123911. .B salt.states.keystone.project_present(name, description=None, enabled=True, profile=None, **connection_args)
  123912. Ensures that the keystone project exists
  123913. Alias for tenant_present from V2 API to fulfill
  123914. V3 API naming convention.
  123915. .sp
  123916. New in version 2016.11.0.
  123917. .INDENT 7.0
  123918. .TP
  123919. .B name
  123920. The name of the project to manage
  123921. .TP
  123922. .B description
  123923. The description to use for this project
  123924. .TP
  123925. .B enabled
  123926. Availability state for this project
  123927. .UNINDENT
  123928. .INDENT 7.0
  123929. .INDENT 3.5
  123930. .sp
  123931. .nf
  123932. .ft C
  123933. nova:
  123934. keystone.project_present:
  123935. \- enabled: True
  123936. \- description: \(aqNova Compute Service\(aq
  123937. .ft P
  123938. .fi
  123939. .UNINDENT
  123940. .UNINDENT
  123941. .UNINDENT
  123942. .INDENT 0.0
  123943. .TP
  123944. .B salt.states.keystone.role_absent(name, profile=None, **connection_args)
  123945. Ensure that the keystone role is absent.
  123946. .INDENT 7.0
  123947. .TP
  123948. .B name
  123949. The name of the role that should not exist
  123950. .UNINDENT
  123951. .UNINDENT
  123952. .INDENT 0.0
  123953. .TP
  123954. .B salt.states.keystone.role_present(name, profile=None, **connection_args)
  123955. \(aq
  123956. Ensures that the keystone role exists
  123957. .INDENT 7.0
  123958. .TP
  123959. .B name
  123960. The name of the role that should be present
  123961. .UNINDENT
  123962. .UNINDENT
  123963. .INDENT 0.0
  123964. .TP
  123965. .B salt.states.keystone.service_absent(name, profile=None, **connection_args)
  123966. Ensure that the service doesn\(aqt exist in Keystone catalog
  123967. .INDENT 7.0
  123968. .TP
  123969. .B name
  123970. The name of the service that should not exist
  123971. .UNINDENT
  123972. .UNINDENT
  123973. .INDENT 0.0
  123974. .TP
  123975. .B salt.states.keystone.service_present(name, service_type, description=None, profile=None, **connection_args)
  123976. Ensure service present in Keystone catalog
  123977. .INDENT 7.0
  123978. .TP
  123979. .B name
  123980. The name of the service
  123981. .TP
  123982. .B service_type
  123983. The type of Openstack Service
  123984. .TP
  123985. .B description (optional)
  123986. Description of the service
  123987. .UNINDENT
  123988. .UNINDENT
  123989. .INDENT 0.0
  123990. .TP
  123991. .B salt.states.keystone.tenant_absent(name, profile=None, **connection_args)
  123992. Ensure that the keystone tenant is absent.
  123993. .INDENT 7.0
  123994. .TP
  123995. .B name
  123996. The name of the tenant that should not exist
  123997. .UNINDENT
  123998. .UNINDENT
  123999. .INDENT 0.0
  124000. .TP
  124001. .B salt.states.keystone.tenant_present(name, description=None, enabled=True, profile=None, **connection_args)
  124002. Ensures that the keystone tenant exists
  124003. .INDENT 7.0
  124004. .TP
  124005. .B name
  124006. The name of the tenant to manage
  124007. .TP
  124008. .B description
  124009. The description to use for this tenant
  124010. .TP
  124011. .B enabled
  124012. Availability state for this tenant
  124013. .UNINDENT
  124014. .UNINDENT
  124015. .INDENT 0.0
  124016. .TP
  124017. .B salt.states.keystone.user_absent(name, profile=None, **connection_args)
  124018. Ensure that the keystone user is absent.
  124019. .INDENT 7.0
  124020. .TP
  124021. .B name
  124022. The name of the user that should not exist
  124023. .UNINDENT
  124024. .UNINDENT
  124025. .INDENT 0.0
  124026. .TP
  124027. .B salt.states.keystone.user_present(name, password, email, tenant=None, enabled=True, roles=None, profile=None, password_reset=True, project=None, **connection_args)
  124028. Ensure that the keystone user is present with the specified properties.
  124029. .INDENT 7.0
  124030. .TP
  124031. .B name
  124032. The name of the user to manage
  124033. .TP
  124034. .B password
  124035. The password to use for this user.
  124036. .sp
  124037. \fBNOTE:\fP
  124038. .INDENT 7.0
  124039. .INDENT 3.5
  124040. If the user already exists and a different password was set for
  124041. the user than the one specified here, the password for the user
  124042. will be updated. Please set the \fBpassword_reset\fP option to
  124043. \fBFalse\fP if this is not the desired behavior.
  124044. .UNINDENT
  124045. .UNINDENT
  124046. .TP
  124047. .B password_reset
  124048. Whether or not to reset password after initial set. Defaults to
  124049. \fBTrue\fP\&.
  124050. .TP
  124051. .B email
  124052. The email address for this user
  124053. .TP
  124054. .B tenant
  124055. The tenant (name) for this user
  124056. .TP
  124057. .B project
  124058. The project (name) for this user (overrides tenant in api v3)
  124059. .TP
  124060. .B enabled
  124061. Availability state for this user
  124062. .TP
  124063. .B roles
  124064. The roles the user should have under given tenants.
  124065. Passed as a dictionary mapping tenant names to a list
  124066. of roles in this tenant, i.e.:
  124067. .INDENT 7.0
  124068. .INDENT 3.5
  124069. .sp
  124070. .nf
  124071. .ft C
  124072. roles:
  124073. admin: # tenant
  124074. \- admin # role
  124075. service:
  124076. \- admin
  124077. \- Member
  124078. .ft P
  124079. .fi
  124080. .UNINDENT
  124081. .UNINDENT
  124082. .UNINDENT
  124083. .UNINDENT
  124084. .SS salt.states.keystone_domain
  124085. .SS Management of OpenStack Keystone Domains
  124086. .sp
  124087. New in version 2018.3.0.
  124088. .INDENT 0.0
  124089. .TP
  124090. .B depends
  124091. shade
  124092. .TP
  124093. .B configuration
  124094. see \fBsalt.modules.keystoneng\fP for setup instructions
  124095. .UNINDENT
  124096. .sp
  124097. Example States
  124098. .INDENT 0.0
  124099. .INDENT 3.5
  124100. .sp
  124101. .nf
  124102. .ft C
  124103. create domain:
  124104. keystone_domain.present:
  124105. \- name: domain1
  124106. create domain with optional params:
  124107. keystone_domain.present:
  124108. \- name: domain1
  124109. \- enabled: False
  124110. \- description: \(aqmy domain\(aq
  124111. delete domain:
  124112. keystone_domain.absent:
  124113. \- name: domain1
  124114. .ft P
  124115. .fi
  124116. .UNINDENT
  124117. .UNINDENT
  124118. .INDENT 0.0
  124119. .TP
  124120. .B salt.states.keystone_domain.absent(name, auth=None)
  124121. Ensure domain does not exist
  124122. .INDENT 7.0
  124123. .TP
  124124. .B name
  124125. Name of the domain
  124126. .UNINDENT
  124127. .UNINDENT
  124128. .INDENT 0.0
  124129. .TP
  124130. .B salt.states.keystone_domain.present(name, auth=None, **kwargs)
  124131. Ensure domain exists and is up\-to\-date
  124132. .INDENT 7.0
  124133. .TP
  124134. .B name
  124135. Name of the domain
  124136. .TP
  124137. .B enabled
  124138. Boolean to control if domain is enabled
  124139. .TP
  124140. .B description
  124141. An arbitrary description of the domain
  124142. .UNINDENT
  124143. .UNINDENT
  124144. .SS salt.states.keystone_endpoint
  124145. .SS Management of OpenStack Keystone Endpoints
  124146. .sp
  124147. New in version 2018.3.0.
  124148. .INDENT 0.0
  124149. .TP
  124150. .B depends
  124151. shade
  124152. .TP
  124153. .B configuration
  124154. see \fBsalt.modules.keystoneng\fP for setup instructions
  124155. .UNINDENT
  124156. .sp
  124157. Example States
  124158. .INDENT 0.0
  124159. .INDENT 3.5
  124160. .sp
  124161. .nf
  124162. .ft C
  124163. create endpoint:
  124164. keystone_endpoint.present:
  124165. \- name: public
  124166. \- url: https://example.org:9292
  124167. \- region: RegionOne
  124168. \- service_name: glance
  124169. destroy endpoint:
  124170. keystone_endpoint.absent:
  124171. \- name: public
  124172. \- url: https://example.org:9292
  124173. \- region: RegionOne
  124174. \- service_name: glance
  124175. create multiple endpoints:
  124176. keystone_endpoint.absent:
  124177. \- names:
  124178. \- public
  124179. \- admin
  124180. \- internal
  124181. \- url: https://example.org:9292
  124182. \- region: RegionOne
  124183. \- service_name: glance
  124184. .ft P
  124185. .fi
  124186. .UNINDENT
  124187. .UNINDENT
  124188. .INDENT 0.0
  124189. .TP
  124190. .B salt.states.keystone_endpoint.absent(name, service_name, auth=None, **kwargs)
  124191. Ensure an endpoint does not exists
  124192. .INDENT 7.0
  124193. .TP
  124194. .B name
  124195. Interface name
  124196. .TP
  124197. .B url
  124198. URL of the endpoint
  124199. .TP
  124200. .B service_name
  124201. Service name or ID
  124202. .TP
  124203. .B region
  124204. The region name to assign the endpoint
  124205. .UNINDENT
  124206. .UNINDENT
  124207. .INDENT 0.0
  124208. .TP
  124209. .B salt.states.keystone_endpoint.present(name, service_name, auth=None, **kwargs)
  124210. Ensure an endpoint exists and is up\-to\-date
  124211. .INDENT 7.0
  124212. .TP
  124213. .B name
  124214. Interface name
  124215. .TP
  124216. .B url
  124217. URL of the endpoint
  124218. .TP
  124219. .B service_name
  124220. Service name or ID
  124221. .TP
  124222. .B region
  124223. The region name to assign the endpoint
  124224. .TP
  124225. .B enabled
  124226. Boolean to control if endpoint is enabled
  124227. .UNINDENT
  124228. .UNINDENT
  124229. .SS salt.states.keystone_group
  124230. .SS Management of OpenStack Keystone Groups
  124231. .sp
  124232. New in version 2018.3.0.
  124233. .INDENT 0.0
  124234. .TP
  124235. .B depends
  124236. shade
  124237. .TP
  124238. .B configuration
  124239. see \fBsalt.modules.keystoneng\fP for setup instructions
  124240. .UNINDENT
  124241. .sp
  124242. Example States
  124243. .INDENT 0.0
  124244. .INDENT 3.5
  124245. .sp
  124246. .nf
  124247. .ft C
  124248. create group:
  124249. keystone_group.present:
  124250. \- name: group1
  124251. delete group:
  124252. keystone_group.absent:
  124253. \- name: group1
  124254. create group with optional params:
  124255. keystone_group.present:
  124256. \- name: group1
  124257. \- domain: domain1
  124258. \- description: \(aqmy group\(aq
  124259. .ft P
  124260. .fi
  124261. .UNINDENT
  124262. .UNINDENT
  124263. .INDENT 0.0
  124264. .TP
  124265. .B salt.states.keystone_group.absent(name, auth=None, **kwargs)
  124266. Ensure group does not exist
  124267. .INDENT 7.0
  124268. .TP
  124269. .B name
  124270. Name of the group
  124271. .TP
  124272. .B domain
  124273. The name or id of the domain
  124274. .UNINDENT
  124275. .UNINDENT
  124276. .INDENT 0.0
  124277. .TP
  124278. .B salt.states.keystone_group.present(name, auth=None, **kwargs)
  124279. Ensure an group exists and is up\-to\-date
  124280. .INDENT 7.0
  124281. .TP
  124282. .B name
  124283. Name of the group
  124284. .TP
  124285. .B domain
  124286. The name or id of the domain
  124287. .TP
  124288. .B description
  124289. An arbitrary description of the group
  124290. .UNINDENT
  124291. .UNINDENT
  124292. .SS salt.states.keystone_project
  124293. .SS Management of OpenStack Keystone Projects
  124294. .sp
  124295. New in version 2018.3.0.
  124296. .INDENT 0.0
  124297. .TP
  124298. .B depends
  124299. shade
  124300. .TP
  124301. .B configuration
  124302. see \fBsalt.modules.keystoneng\fP for setup instructions
  124303. .UNINDENT
  124304. .sp
  124305. Example States
  124306. .INDENT 0.0
  124307. .INDENT 3.5
  124308. .sp
  124309. .nf
  124310. .ft C
  124311. create project:
  124312. keystone_project.present:
  124313. \- name: project1
  124314. delete project:
  124315. keystone_project.absent:
  124316. \- name: project1
  124317. create project with optional params:
  124318. keystone_project.present:
  124319. \- name: project1
  124320. \- domain: domain1
  124321. \- enabled: False
  124322. \- description: \(aqmy project\(aq
  124323. .ft P
  124324. .fi
  124325. .UNINDENT
  124326. .UNINDENT
  124327. .INDENT 0.0
  124328. .TP
  124329. .B salt.states.keystone_project.absent(name, auth=None, **kwargs)
  124330. Ensure a project does not exists
  124331. .INDENT 7.0
  124332. .TP
  124333. .B name
  124334. Name of the project
  124335. .TP
  124336. .B domain
  124337. The name or id of the domain
  124338. .UNINDENT
  124339. .UNINDENT
  124340. .INDENT 0.0
  124341. .TP
  124342. .B salt.states.keystone_project.present(name, auth=None, **kwargs)
  124343. Ensure a project exists and is up\-to\-date
  124344. .INDENT 7.0
  124345. .TP
  124346. .B name
  124347. Name of the project
  124348. .TP
  124349. .B domain
  124350. The name or id of the domain
  124351. .TP
  124352. .B description
  124353. An arbitrary description of the project
  124354. .UNINDENT
  124355. .UNINDENT
  124356. .SS salt.states.keystone_role
  124357. .SS Management of OpenStack Keystone Roles
  124358. .sp
  124359. New in version 2018.3.0.
  124360. .INDENT 0.0
  124361. .TP
  124362. .B depends
  124363. shade
  124364. .TP
  124365. .B configuration
  124366. see \fBsalt.modules.keystoneng\fP for setup instructions
  124367. .UNINDENT
  124368. .sp
  124369. Example States
  124370. .INDENT 0.0
  124371. .INDENT 3.5
  124372. .sp
  124373. .nf
  124374. .ft C
  124375. create role:
  124376. keystone_role.present:
  124377. \- name: role1
  124378. delete role:
  124379. keystone_role.absent:
  124380. \- name: role1
  124381. create role with optional params:
  124382. keystone_role.present:
  124383. \- name: role1
  124384. \- description: \(aqmy group\(aq
  124385. .ft P
  124386. .fi
  124387. .UNINDENT
  124388. .UNINDENT
  124389. .INDENT 0.0
  124390. .TP
  124391. .B salt.states.keystone_role.absent(name, auth=None, **kwargs)
  124392. Ensure role does not exist
  124393. .INDENT 7.0
  124394. .TP
  124395. .B name
  124396. Name of the role
  124397. .UNINDENT
  124398. .UNINDENT
  124399. .INDENT 0.0
  124400. .TP
  124401. .B salt.states.keystone_role.present(name, auth=None, **kwargs)
  124402. Ensure an role exists
  124403. .INDENT 7.0
  124404. .TP
  124405. .B name
  124406. Name of the role
  124407. .TP
  124408. .B description
  124409. An arbitrary description of the role
  124410. .UNINDENT
  124411. .UNINDENT
  124412. .SS salt.states.keystone_role_grant
  124413. .SS Management of OpenStack Keystone Role Grants
  124414. .sp
  124415. New in version 2018.3.0.
  124416. .INDENT 0.0
  124417. .TP
  124418. .B depends
  124419. shade
  124420. .TP
  124421. .B configuration
  124422. see \fBsalt.modules.keystoneng\fP for setup instructions
  124423. .UNINDENT
  124424. .sp
  124425. Example States
  124426. .INDENT 0.0
  124427. .INDENT 3.5
  124428. .sp
  124429. .nf
  124430. .ft C
  124431. create group:
  124432. keystone_group.present:
  124433. \- name: group1
  124434. delete group:
  124435. keystone_group.absent:
  124436. \- name: group1
  124437. create group with optional params:
  124438. keystone_group.present:
  124439. \- name: group1
  124440. \- domain: domain1
  124441. \- description: \(aqmy group\(aq
  124442. .ft P
  124443. .fi
  124444. .UNINDENT
  124445. .UNINDENT
  124446. .INDENT 0.0
  124447. .TP
  124448. .B salt.states.keystone_role_grant.absent(name, auth=None, **kwargs)
  124449. .UNINDENT
  124450. .INDENT 0.0
  124451. .TP
  124452. .B salt.states.keystone_role_grant.present(name, auth=None, **kwargs)
  124453. .UNINDENT
  124454. .SS salt.states.keystone_service
  124455. .SS Management of OpenStack Keystone Services
  124456. .sp
  124457. New in version 2018.3.0.
  124458. .INDENT 0.0
  124459. .TP
  124460. .B depends
  124461. shade
  124462. .TP
  124463. .B configuration
  124464. see \fBsalt.modules.keystoneng\fP for setup instructions
  124465. .UNINDENT
  124466. .sp
  124467. Example States
  124468. .INDENT 0.0
  124469. .INDENT 3.5
  124470. .sp
  124471. .nf
  124472. .ft C
  124473. create service:
  124474. keystone_service.present:
  124475. \- name: glance
  124476. \- type: image
  124477. delete service:
  124478. keystone_service.absent:
  124479. \- name: glance
  124480. create service with optional params:
  124481. keystone_service.present:
  124482. \- name: glance
  124483. \- type: image
  124484. \- enabled: False
  124485. \- description: \(aqOpenStack Image\(aq
  124486. .ft P
  124487. .fi
  124488. .UNINDENT
  124489. .UNINDENT
  124490. .INDENT 0.0
  124491. .TP
  124492. .B salt.states.keystone_service.absent(name, auth=None)
  124493. Ensure service does not exist
  124494. .INDENT 7.0
  124495. .TP
  124496. .B name
  124497. Name of the service
  124498. .UNINDENT
  124499. .UNINDENT
  124500. .INDENT 0.0
  124501. .TP
  124502. .B salt.states.keystone_service.present(name, auth=None, **kwargs)
  124503. Ensure an service exists and is up\-to\-date
  124504. .INDENT 7.0
  124505. .TP
  124506. .B name
  124507. Name of the group
  124508. .TP
  124509. .B type
  124510. Service type
  124511. .TP
  124512. .B enabled
  124513. Boolean to control if service is enabled
  124514. .TP
  124515. .B description
  124516. An arbitrary description of the service
  124517. .UNINDENT
  124518. .UNINDENT
  124519. .SS salt.states.keystone_user
  124520. .SS Management of OpenStack Keystone Users
  124521. .sp
  124522. New in version 2018.3.0.
  124523. .INDENT 0.0
  124524. .TP
  124525. .B depends
  124526. shade
  124527. .TP
  124528. .B configuration
  124529. see \fBsalt.modules.keystoneng\fP for setup instructions
  124530. .UNINDENT
  124531. .sp
  124532. Example States
  124533. .INDENT 0.0
  124534. .INDENT 3.5
  124535. .sp
  124536. .nf
  124537. .ft C
  124538. create user:
  124539. keystone_user.present:
  124540. \- name: user1
  124541. delete user:
  124542. keystone_user.absent:
  124543. \- name: user1
  124544. create user with optional params:
  124545. keystone_user.present:
  124546. \- name: user1
  124547. \- domain: domain1
  124548. \- enabled: False
  124549. \- password: password123
  124550. \- email: "user1@example.org"
  124551. \- description: \(aqmy user\(aq
  124552. .ft P
  124553. .fi
  124554. .UNINDENT
  124555. .UNINDENT
  124556. .INDENT 0.0
  124557. .TP
  124558. .B salt.states.keystone_user.absent(name, auth=None, **kwargs)
  124559. Ensure user does not exists
  124560. .INDENT 7.0
  124561. .TP
  124562. .B name
  124563. Name of the user
  124564. .TP
  124565. .B domain
  124566. The name or id of the domain
  124567. .UNINDENT
  124568. .UNINDENT
  124569. .INDENT 0.0
  124570. .TP
  124571. .B salt.states.keystone_user.present(name, auth=None, **kwargs)
  124572. Ensure domain exists and is up\-to\-date
  124573. .INDENT 7.0
  124574. .TP
  124575. .B name
  124576. Name of the domain
  124577. .TP
  124578. .B domain
  124579. The name or id of the domain
  124580. .TP
  124581. .B enabled
  124582. Boolean to control if domain is enabled
  124583. .TP
  124584. .B description
  124585. An arbitrary description of the domain
  124586. .TP
  124587. .B password
  124588. The user password
  124589. .TP
  124590. .B email
  124591. The users email address
  124592. .UNINDENT
  124593. .UNINDENT
  124594. .SS salt.states.keystore
  124595. .sp
  124596. State management of a java keystore
  124597. .INDENT 0.0
  124598. .TP
  124599. .B salt.states.keystore.managed(name, passphrase, entries, force_remove=False)
  124600. Create or manage a java keystore.
  124601. .INDENT 7.0
  124602. .TP
  124603. .B name
  124604. The path to the keystore file
  124605. .TP
  124606. .B passphrase
  124607. The password to the keystore
  124608. .TP
  124609. .B entries
  124610. A list containing an alias, certificate, and optional private_key.
  124611. The certificate and private_key can be a file or a string
  124612. .INDENT 7.0
  124613. .INDENT 3.5
  124614. .sp
  124615. .nf
  124616. .ft C
  124617. \- entries:
  124618. \- alias: hostname2
  124619. certificate: /path/to/cert.crt
  124620. private_key: /path/to/key.key
  124621. \- alias: stringhost
  124622. certificate: |
  124623. \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-
  124624. MIICEjCCAXsCAg36MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG
  124625. ...
  124626. 2VguKv4SWjRFoRkIfIlHX0qVviMhSlNy2ioFLy7JcPZb+v3ftDGywUqcBiVDoea0
  124627. \-\-\-\-\-END CERTIFICATE\-\-\-\-\-
  124628. .ft P
  124629. .fi
  124630. .UNINDENT
  124631. .UNINDENT
  124632. .TP
  124633. .B force_remove
  124634. If True will cause the state to remove any entries found in the keystore which are not
  124635. defined in the state. The default is False.
  124636. .UNINDENT
  124637. .sp
  124638. Example
  124639. .INDENT 7.0
  124640. .INDENT 3.5
  124641. .sp
  124642. .nf
  124643. .ft C
  124644. define_keystore:
  124645. keystore.managed:
  124646. \- name: /path/to/keystore
  124647. \- passphrase: changeit
  124648. \- force_remove: True
  124649. \- entries:
  124650. \- alias: hostname1
  124651. certificate: /path/to/cert.crt
  124652. \- alias: remotehost
  124653. certificate: /path/to/cert2.crt
  124654. private_key: /path/to/key2.key
  124655. \- alias: pillarhost
  124656. certificate: {{ salt.pillar.get(\(aqpath:to:cert\(aq) }}
  124657. .ft P
  124658. .fi
  124659. .UNINDENT
  124660. .UNINDENT
  124661. .UNINDENT
  124662. .SS salt.states.kmod
  124663. .SS Loading and unloading of kernel modules
  124664. .sp
  124665. The Kernel modules on a system can be managed cleanly with the kmod state
  124666. module:
  124667. .INDENT 0.0
  124668. .INDENT 3.5
  124669. .sp
  124670. .nf
  124671. .ft C
  124672. add_kvm:
  124673. kmod.present:
  124674. \- name: kvm_amd
  124675. remove_beep:
  124676. kmod.absent:
  124677. \- name: pcspkr
  124678. .ft P
  124679. .fi
  124680. .UNINDENT
  124681. .UNINDENT
  124682. .sp
  124683. Multiple modules can be specified for both kmod.present and kmod.absent.
  124684. .INDENT 0.0
  124685. .INDENT 3.5
  124686. .sp
  124687. .nf
  124688. .ft C
  124689. add_sound:
  124690. kmod.present:
  124691. \- mods:
  124692. \- snd_hda_codec_hdmi
  124693. \- snd_hda_codec
  124694. \- snd_hwdep
  124695. \- snd_hda_core
  124696. \- snd_pcm
  124697. \- snd_timer
  124698. \- snd
  124699. .ft P
  124700. .fi
  124701. .UNINDENT
  124702. .UNINDENT
  124703. .INDENT 0.0
  124704. .TP
  124705. .B salt.states.kmod.absent(name, persist=False, comment=True, mods=None)
  124706. Verify that the named kernel module is not loaded
  124707. .INDENT 7.0
  124708. .TP
  124709. .B name
  124710. The name of the kernel module to verify is not loaded
  124711. .TP
  124712. .B persist
  124713. Remove module from \fB/etc/modules\fP
  124714. .TP
  124715. .B comment
  124716. Comment out module in \fB/etc/modules\fP rather than remove it
  124717. .TP
  124718. .B mods
  124719. A list of modules to verify are unloaded. If this argument is used,
  124720. the \fBname\fP argument, although still required, is not used, and
  124721. becomes a placeholder
  124722. .sp
  124723. New in version 2016.3.0.
  124724. .UNINDENT
  124725. .UNINDENT
  124726. .INDENT 0.0
  124727. .TP
  124728. .B salt.states.kmod.present(name, persist=False, mods=None)
  124729. Ensure that the specified kernel module is loaded
  124730. .INDENT 7.0
  124731. .TP
  124732. .B name
  124733. The name of the kernel module to verify is loaded
  124734. .TP
  124735. .B persist
  124736. Also add module to \fB/etc/modules\fP
  124737. .TP
  124738. .B mods
  124739. A list of modules to verify are loaded. If this argument is used, the
  124740. \fBname\fP argument, although still required, is not used, and becomes a
  124741. placeholder
  124742. .sp
  124743. New in version 2016.3.0.
  124744. .UNINDENT
  124745. .UNINDENT
  124746. .SS salt.states.kubernetes
  124747. .SS Manage kubernetes resources as salt states
  124748. .sp
  124749. NOTE: This module requires the proper pillar values set. See
  124750. salt.modules.kubernetesmod for more information.
  124751. .sp
  124752. \fBWARNING:\fP
  124753. .INDENT 0.0
  124754. .INDENT 3.5
  124755. Configuration options will change in 2019.2.0.
  124756. .UNINDENT
  124757. .UNINDENT
  124758. .sp
  124759. The kubernetes module is used to manage different kubernetes resources.
  124760. .INDENT 0.0
  124761. .INDENT 3.5
  124762. .sp
  124763. .nf
  124764. .ft C
  124765. my\-nginx:
  124766. kubernetes.deployment_present:
  124767. \- namespace: default
  124768. metadata:
  124769. app: frontend
  124770. spec:
  124771. replicas: 1
  124772. template:
  124773. metadata:
  124774. labels:
  124775. run: my\-nginx
  124776. spec:
  124777. containers:
  124778. \- name: my\-nginx
  124779. image: nginx
  124780. ports:
  124781. \- containerPort: 80
  124782. my\-mariadb:
  124783. kubernetes.deployment_absent:
  124784. \- namespace: default
  124785. # kubernetes deployment as specified inside of
  124786. # a file containing the definition of the the
  124787. # deployment using the official kubernetes format
  124788. redis\-master\-deployment:
  124789. kubernetes.deployment_present:
  124790. \- name: redis\-master
  124791. \- source: salt://k8s/redis\-master\-deployment.yml
  124792. require:
  124793. \- pip: kubernetes\-python\-module
  124794. # kubernetes service as specified inside of
  124795. # a file containing the definition of the the
  124796. # service using the official kubernetes format
  124797. redis\-master\-service:
  124798. kubernetes.service_present:
  124799. \- name: redis\-master
  124800. \- source: salt://k8s/redis\-master\-service.yml
  124801. require:
  124802. \- kubernetes.deployment_present: redis\-master
  124803. # kubernetes deployment as specified inside of
  124804. # a file containing the definition of the the
  124805. # deployment using the official kubernetes format
  124806. # plus some jinja directives
  124807. nginx\-source\-template:
  124808. kubernetes.deployment_present:
  124809. \- source: salt://k8s/nginx.yml.jinja
  124810. \- template: jinja
  124811. require:
  124812. \- pip: kubernetes\-python\-module
  124813. # Kubernetes secret
  124814. k8s\-secret:
  124815. kubernetes.secret_present:
  124816. \- name: top\-secret
  124817. data:
  124818. key1: value1
  124819. key2: value2
  124820. key3: value3
  124821. .ft P
  124822. .fi
  124823. .UNINDENT
  124824. .UNINDENT
  124825. .INDENT 0.0
  124826. .TP
  124827. .B salt.states.kubernetes.configmap_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124828. Ensures that the named configmap is absent from the given namespace.
  124829. .INDENT 7.0
  124830. .TP
  124831. .B name
  124832. The name of the configmap
  124833. .TP
  124834. .B namespace
  124835. The namespace holding the configmap. The \(aqdefault\(aq one is going to be
  124836. used unless a different one is specified.
  124837. .UNINDENT
  124838. .UNINDENT
  124839. .INDENT 0.0
  124840. .TP
  124841. .B salt.states.kubernetes.configmap_present(name, namespace=\(aqdefault\(aq, data=None, source=None, template=None, **kwargs)
  124842. Ensures that the named configmap is present inside of the specified namespace
  124843. with the given data.
  124844. If the configmap exists it will be replaced.
  124845. .INDENT 7.0
  124846. .TP
  124847. .B name
  124848. The name of the configmap.
  124849. .TP
  124850. .B namespace
  124851. The namespace holding the configmap. The \(aqdefault\(aq one is going to be
  124852. used unless a different one is specified.
  124853. .TP
  124854. .B data
  124855. The dictionary holding the configmaps.
  124856. .TP
  124857. .B source
  124858. A file containing the data of the configmap in plain format.
  124859. .TP
  124860. .B template
  124861. Template engine to be used to render the source file.
  124862. .UNINDENT
  124863. .UNINDENT
  124864. .INDENT 0.0
  124865. .TP
  124866. .B salt.states.kubernetes.deployment_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124867. Ensures that the named deployment is absent from the given namespace.
  124868. .INDENT 7.0
  124869. .TP
  124870. .B name
  124871. The name of the deployment
  124872. .TP
  124873. .B namespace
  124874. The name of the namespace
  124875. .UNINDENT
  124876. .UNINDENT
  124877. .INDENT 0.0
  124878. .TP
  124879. .B salt.states.kubernetes.deployment_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  124880. Ensures that the named deployment is present inside of the specified
  124881. namespace with the given metadata and spec.
  124882. If the deployment exists it will be replaced.
  124883. .INDENT 7.0
  124884. .TP
  124885. .B name
  124886. The name of the deployment.
  124887. .TP
  124888. .B namespace
  124889. The namespace holding the deployment. The \(aqdefault\(aq one is going to be
  124890. used unless a different one is specified.
  124891. .TP
  124892. .B metadata
  124893. The metadata of the deployment object.
  124894. .TP
  124895. .B spec
  124896. The spec of the deployment object.
  124897. .TP
  124898. .B source
  124899. A file containing the definition of the deployment (metadata and
  124900. spec) in the official kubernetes format.
  124901. .TP
  124902. .B template
  124903. Template engine to be used to render the source file.
  124904. .UNINDENT
  124905. .UNINDENT
  124906. .INDENT 0.0
  124907. .TP
  124908. .B salt.states.kubernetes.namespace_absent(name, **kwargs)
  124909. Ensures that the named namespace is absent.
  124910. .INDENT 7.0
  124911. .TP
  124912. .B name
  124913. The name of the namespace
  124914. .UNINDENT
  124915. .UNINDENT
  124916. .INDENT 0.0
  124917. .TP
  124918. .B salt.states.kubernetes.namespace_present(name, **kwargs)
  124919. Ensures that the named namespace is present.
  124920. .INDENT 7.0
  124921. .TP
  124922. .B name
  124923. The name of the namespace.
  124924. .UNINDENT
  124925. .UNINDENT
  124926. .INDENT 0.0
  124927. .TP
  124928. .B salt.states.kubernetes.node_label_absent(name, node, **kwargs)
  124929. Ensures that the named label is absent from the node.
  124930. .INDENT 7.0
  124931. .TP
  124932. .B name
  124933. The name of the label
  124934. .TP
  124935. .B node
  124936. The name of the node
  124937. .UNINDENT
  124938. .UNINDENT
  124939. .INDENT 0.0
  124940. .TP
  124941. .B salt.states.kubernetes.node_label_folder_absent(name, node, **kwargs)
  124942. Ensures the label folder doesn\(aqt exist on the specified node.
  124943. .INDENT 7.0
  124944. .TP
  124945. .B name
  124946. The name of label folder
  124947. .TP
  124948. .B node
  124949. The name of the node
  124950. .UNINDENT
  124951. .UNINDENT
  124952. .INDENT 0.0
  124953. .TP
  124954. .B salt.states.kubernetes.node_label_present(name, node, value, **kwargs)
  124955. Ensures that the named label is set on the named node
  124956. with the given value.
  124957. If the label exists it will be replaced.
  124958. .INDENT 7.0
  124959. .TP
  124960. .B name
  124961. The name of the label.
  124962. .TP
  124963. .B value
  124964. Value of the label.
  124965. .TP
  124966. .B node
  124967. Node to change.
  124968. .UNINDENT
  124969. .UNINDENT
  124970. .INDENT 0.0
  124971. .TP
  124972. .B salt.states.kubernetes.pod_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124973. Ensures that the named pod is absent from the given namespace.
  124974. .INDENT 7.0
  124975. .TP
  124976. .B name
  124977. The name of the pod
  124978. .TP
  124979. .B namespace
  124980. The name of the namespace
  124981. .UNINDENT
  124982. .UNINDENT
  124983. .INDENT 0.0
  124984. .TP
  124985. .B salt.states.kubernetes.pod_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  124986. Ensures that the named pod is present inside of the specified
  124987. namespace with the given metadata and spec.
  124988. If the pod exists it will be replaced.
  124989. .INDENT 7.0
  124990. .TP
  124991. .B name
  124992. The name of the pod.
  124993. .TP
  124994. .B namespace
  124995. The namespace holding the pod. The \(aqdefault\(aq one is going to be
  124996. used unless a different one is specified.
  124997. .TP
  124998. .B metadata
  124999. The metadata of the pod object.
  125000. .TP
  125001. .B spec
  125002. The spec of the pod object.
  125003. .TP
  125004. .B source
  125005. A file containing the definition of the pod (metadata and
  125006. spec) in the official kubernetes format.
  125007. .TP
  125008. .B template
  125009. Template engine to be used to render the source file.
  125010. .UNINDENT
  125011. .UNINDENT
  125012. .INDENT 0.0
  125013. .TP
  125014. .B salt.states.kubernetes.secret_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  125015. Ensures that the named secret is absent from the given namespace.
  125016. .INDENT 7.0
  125017. .TP
  125018. .B name
  125019. The name of the secret
  125020. .TP
  125021. .B namespace
  125022. The name of the namespace
  125023. .UNINDENT
  125024. .UNINDENT
  125025. .INDENT 0.0
  125026. .TP
  125027. .B salt.states.kubernetes.secret_present(name, namespace=\(aqdefault\(aq, data=None, source=None, template=None, **kwargs)
  125028. Ensures that the named secret is present inside of the specified namespace
  125029. with the given data.
  125030. If the secret exists it will be replaced.
  125031. .INDENT 7.0
  125032. .TP
  125033. .B name
  125034. The name of the secret.
  125035. .TP
  125036. .B namespace
  125037. The namespace holding the secret. The \(aqdefault\(aq one is going to be
  125038. used unless a different one is specified.
  125039. .TP
  125040. .B data
  125041. The dictionary holding the secrets.
  125042. .TP
  125043. .B source
  125044. A file containing the data of the secret in plain format.
  125045. .TP
  125046. .B template
  125047. Template engine to be used to render the source file.
  125048. .UNINDENT
  125049. .UNINDENT
  125050. .INDENT 0.0
  125051. .TP
  125052. .B salt.states.kubernetes.service_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  125053. Ensures that the named service is absent from the given namespace.
  125054. .INDENT 7.0
  125055. .TP
  125056. .B name
  125057. The name of the service
  125058. .TP
  125059. .B namespace
  125060. The name of the namespace
  125061. .UNINDENT
  125062. .UNINDENT
  125063. .INDENT 0.0
  125064. .TP
  125065. .B salt.states.kubernetes.service_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  125066. Ensures that the named service is present inside of the specified namespace
  125067. with the given metadata and spec.
  125068. If the deployment exists it will be replaced.
  125069. .INDENT 7.0
  125070. .TP
  125071. .B name
  125072. The name of the service.
  125073. .TP
  125074. .B namespace
  125075. The namespace holding the service. The \(aqdefault\(aq one is going to be
  125076. used unless a different one is specified.
  125077. .TP
  125078. .B metadata
  125079. The metadata of the service object.
  125080. .TP
  125081. .B spec
  125082. The spec of the service object.
  125083. .TP
  125084. .B source
  125085. A file containing the definition of the service (metadata and
  125086. spec) in the official kubernetes format.
  125087. .TP
  125088. .B template
  125089. Template engine to be used to render the source file.
  125090. .UNINDENT
  125091. .UNINDENT
  125092. .SS salt.states.layman
  125093. .SS Management of Gentoo Overlays using layman
  125094. .sp
  125095. A state module to manage Gentoo package overlays via layman
  125096. .INDENT 0.0
  125097. .INDENT 3.5
  125098. .sp
  125099. .nf
  125100. .ft C
  125101. sunrise:
  125102. layman.present
  125103. .ft P
  125104. .fi
  125105. .UNINDENT
  125106. .UNINDENT
  125107. .INDENT 0.0
  125108. .TP
  125109. .B salt.states.layman.absent(name)
  125110. Verify that the overlay is absent
  125111. .INDENT 7.0
  125112. .TP
  125113. .B name
  125114. The name of the overlay to delete
  125115. .UNINDENT
  125116. .UNINDENT
  125117. .INDENT 0.0
  125118. .TP
  125119. .B salt.states.layman.present(name)
  125120. Verify that the overlay is present
  125121. .INDENT 7.0
  125122. .TP
  125123. .B name
  125124. The name of the overlay to add
  125125. .UNINDENT
  125126. .UNINDENT
  125127. .SS salt.states.locale
  125128. .SS Management of languages/locales
  125129. .sp
  125130. Manage the available locales and the system default:
  125131. .INDENT 0.0
  125132. .INDENT 3.5
  125133. .sp
  125134. .nf
  125135. .ft C
  125136. us_locale:
  125137. locale.present:
  125138. \- name: en_US.UTF\-8
  125139. default_locale:
  125140. locale.system:
  125141. \- name: en_US.UTF\-8
  125142. \- require:
  125143. \- locale: us_locale
  125144. .ft P
  125145. .fi
  125146. .UNINDENT
  125147. .UNINDENT
  125148. .INDENT 0.0
  125149. .TP
  125150. .B salt.states.locale.present(name)
  125151. Generate a locale if it is not present
  125152. .sp
  125153. New in version 2014.7.0.
  125154. .INDENT 7.0
  125155. .TP
  125156. .B name
  125157. The name of the locale to be present. Some distributions require the
  125158. charmap to be specified as part of the locale at this point.
  125159. .UNINDENT
  125160. .UNINDENT
  125161. .INDENT 0.0
  125162. .TP
  125163. .B salt.states.locale.system(name)
  125164. Set the locale for the system
  125165. .INDENT 7.0
  125166. .TP
  125167. .B name
  125168. The name of the locale to use
  125169. .UNINDENT
  125170. .UNINDENT
  125171. .SS salt.states.logrotate module
  125172. .sp
  125173. Module for managing logrotate.
  125174. .sp
  125175. New in version 2017.7.0.
  125176. .INDENT 0.0
  125177. .TP
  125178. .B salt.states.logrotate.set_(name, key, value, setting=None, conf_file=u\(aq/etc/logrotate.conf\(aq)
  125179. Set a new value for a specific configuration line.
  125180. .INDENT 7.0
  125181. .TP
  125182. .B Parameters
  125183. .INDENT 7.0
  125184. .IP \(bu 2
  125185. \fBkey\fP (\fI\%str\fP) \-\- The command or block to configure.
  125186. .IP \(bu 2
  125187. \fBvalue\fP (\fI\%str\fP) \-\- The command value or command of the block specified by the key parameter.
  125188. .IP \(bu 2
  125189. \fBsetting\fP (\fI\%str\fP) \-\- The command value for the command specified by the value parameter.
  125190. .IP \(bu 2
  125191. \fBconf_file\fP (\fI\%str\fP) \-\- The logrotate configuration file.
  125192. .UNINDENT
  125193. .UNINDENT
  125194. .sp
  125195. Example of usage with only the required arguments:
  125196. .INDENT 7.0
  125197. .INDENT 3.5
  125198. .sp
  125199. .nf
  125200. .ft C
  125201. logrotate\-rotate:
  125202. logrotate.set:
  125203. \- key: rotate
  125204. \- value: 2
  125205. .ft P
  125206. .fi
  125207. .UNINDENT
  125208. .UNINDENT
  125209. .sp
  125210. Example of usage specifying all available arguments:
  125211. .INDENT 7.0
  125212. .INDENT 3.5
  125213. .sp
  125214. .nf
  125215. .ft C
  125216. logrotate\-wtmp\-rotate:
  125217. logrotate.set:
  125218. \- key: /var/log/wtmp
  125219. \- value: rotate
  125220. \- setting: 2
  125221. \- conf_file: /etc/logrotate.conf
  125222. .ft P
  125223. .fi
  125224. .UNINDENT
  125225. .UNINDENT
  125226. .UNINDENT
  125227. .SS salt.states.loop module
  125228. .sp
  125229. Loop state
  125230. .sp
  125231. Allows for looping over execution modules.
  125232. .sp
  125233. New in version 2017.7.0.
  125234. .sp
  125235. In both examples below, the execution module function \fBboto_elb.get_instance_health\fP
  125236. returns a list of dicts. The condition checks the \fBstate\fP\-key of the first dict
  125237. in the returned list and compares its value to the string \fIInService\fP\&.
  125238. .INDENT 0.0
  125239. .INDENT 3.5
  125240. .sp
  125241. .nf
  125242. .ft C
  125243. wait_for_service_to_be_healthy:
  125244. loop.until:
  125245. \- name: boto_elb.get_instance_health
  125246. \- condition: m_ret[0][\(aqstate\(aq] == \(aqInService\(aq
  125247. \- period: 5
  125248. \- timeout: 20
  125249. \- m_args:
  125250. \- {{ elb }}
  125251. \- m_kwargs:
  125252. keyid: {{ access_key }}
  125253. key: {{ secret_key }}
  125254. instances: "{{ instance }}"
  125255. .ft P
  125256. .fi
  125257. .UNINDENT
  125258. .UNINDENT
  125259. .sp
  125260. \fBWARNING:\fP
  125261. .INDENT 0.0
  125262. .INDENT 3.5
  125263. This state allows arbitrary python code to be executed through the condition
  125264. parameter which is literally evaluated within the state. Please use caution.
  125265. .UNINDENT
  125266. .UNINDENT
  125267. .sp
  125268. Changed in version 3000.
  125269. .sp
  125270. A version that does not use eval is now available. It uses either the python \fBoperator\fP
  125271. to compare the result of the function called in \fBname\fP, which can be one of the
  125272. following: lt, le, eq (default), ne, ge, gt.
  125273. Alternatively, \fIcompare_operator\fP can be filled with a function from an execution
  125274. module in \fB__salt__\fP or \fB__utils__\fP like the example below.
  125275. The function \fBdata.subdict_match\fP checks if the
  125276. \fBexpected\fP expression matches the data returned by calling the \fBname\fP function
  125277. (with passed \fBargs\fP and \fBkwargs\fP).
  125278. .INDENT 0.0
  125279. .INDENT 3.5
  125280. .sp
  125281. .nf
  125282. .ft C
  125283. Wait for service to be healthy:
  125284. loop.until_no_eval:
  125285. \- name: boto_elb.get_instance_health
  125286. \- expected: \(aq0:state:InService\(aq
  125287. \- compare_operator: data.subdict_match
  125288. \- period: 5
  125289. \- timeout: 20
  125290. \- args:
  125291. \- {{ elb }}
  125292. \- kwargs:
  125293. keyid: {{ access_key }}
  125294. key: {{ secret_key }}
  125295. instances: "{{ instance }}"
  125296. .ft P
  125297. .fi
  125298. .UNINDENT
  125299. .UNINDENT
  125300. .INDENT 0.0
  125301. .TP
  125302. .B salt.states.loop.until(name, m_args=None, m_kwargs=None, condition=None, period=1, timeout=60)
  125303. Loop over an execution module until a condition is met.
  125304. .INDENT 7.0
  125305. .TP
  125306. .B Parameters
  125307. .INDENT 7.0
  125308. .IP \(bu 2
  125309. \fBname\fP (\fI\%str\fP) \-\- The name of the execution module
  125310. .IP \(bu 2
  125311. \fBm_args\fP (\fI\%list\fP) \-\- The execution module\(aqs positional arguments
  125312. .IP \(bu 2
  125313. \fBm_kwargs\fP (\fI\%dict\fP) \-\- The execution module\(aqs keyword arguments
  125314. .IP \(bu 2
  125315. \fBcondition\fP (\fI\%str\fP) \-\- The condition which must be met for the loop to break.
  125316. This should contain \fBm_ret\fP which is the return from the execution module.
  125317. .IP \(bu 2
  125318. \fBperiod\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- The number of seconds to wait between executions
  125319. .IP \(bu 2
  125320. \fBtimeout\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- The timeout in seconds
  125321. .UNINDENT
  125322. .UNINDENT
  125323. .UNINDENT
  125324. .INDENT 0.0
  125325. .TP
  125326. .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)
  125327. Generic waiter state that waits for a specific salt function to produce an
  125328. expected result.
  125329. The state fails if the function does not exist or raises an exception,
  125330. or does not produce the expected result within the allotted retries.
  125331. .INDENT 7.0
  125332. .TP
  125333. .B Parameters
  125334. .INDENT 7.0
  125335. .IP \(bu 2
  125336. \fBname\fP (\fI\%str\fP) \-\- Name of the module.function to call
  125337. .IP \(bu 2
  125338. \fBexpected\fP \-\- Expected return value. This can be almost anything.
  125339. .IP \(bu 2
  125340. \fBcompare_operator\fP (\fI\%str\fP) \-\- Operator to use to compare the result of the
  125341. module.function call with the expected value. This can be anything present
  125342. in __salt__ or __utils__. Will be called with 2 args: result, expected.
  125343. .IP \(bu 2
  125344. \fBtimeout\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Abort after this amount of seconds (excluding init_wait).
  125345. .IP \(bu 2
  125346. \fBperiod\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Time (in seconds) to wait between attempts.
  125347. .IP \(bu 2
  125348. \fBinit_wait\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Time (in seconds) to wait before trying anything.
  125349. .IP \(bu 2
  125350. \fBargs\fP (\fI\%list\fP) \-\- args to pass to the salt module.function.
  125351. .IP \(bu 2
  125352. \fBkwargs\fP (\fI\%dict\fP) \-\- kwargs to pass to the salt module.function.
  125353. .UNINDENT
  125354. .UNINDENT
  125355. .sp
  125356. New in version 3000.
  125357. .UNINDENT
  125358. .SS salt.states.lvs_server
  125359. .SS Management of LVS (Linux Virtual Server) Real Server
  125360. .INDENT 0.0
  125361. .TP
  125362. .B salt.states.lvs_server.absent(name, protocol=None, service_address=None, server_address=None)
  125363. Ensure the LVS Real Server in specified service is absent.
  125364. .INDENT 7.0
  125365. .TP
  125366. .B name
  125367. The name of the LVS server.
  125368. .TP
  125369. .B protocol
  125370. The service protocol(only support \fBtcp\fP, \fBudp\fP and \fBfwmark\fP service).
  125371. .TP
  125372. .B service_address
  125373. The LVS service address.
  125374. .TP
  125375. .B server_address
  125376. The LVS real server address.
  125377. .UNINDENT
  125378. .UNINDENT
  125379. .INDENT 0.0
  125380. .TP
  125381. .B salt.states.lvs_server.present(name, protocol=None, service_address=None, server_address=None, packet_forward_method=u\(aqdr\(aq, weight=1)
  125382. Ensure that the named service is present.
  125383. .INDENT 7.0
  125384. .TP
  125385. .B name
  125386. The LVS server name
  125387. .TP
  125388. .B protocol
  125389. The service protocol
  125390. .TP
  125391. .B service_address
  125392. The LVS service address
  125393. .TP
  125394. .B server_address
  125395. The real server address.
  125396. .TP
  125397. .B packet_forward_method
  125398. The LVS packet forwarding method(\fBdr\fP for direct routing, \fBtunnel\fP for tunneling, \fBnat\fP for network access translation).
  125399. .TP
  125400. .B weight
  125401. The capacity of a server relative to the others in the pool.
  125402. .UNINDENT
  125403. .INDENT 7.0
  125404. .INDENT 3.5
  125405. .sp
  125406. .nf
  125407. .ft C
  125408. lvsrs:
  125409. lvs_server.present:
  125410. \- protocol: tcp
  125411. \- service_address: 1.1.1.1:80
  125412. \- server_address: 192.168.0.11:8080
  125413. \- packet_forward_method: dr
  125414. \- weight: 10
  125415. .ft P
  125416. .fi
  125417. .UNINDENT
  125418. .UNINDENT
  125419. .UNINDENT
  125420. .SS salt.states.lvs_service
  125421. .SS Management of LVS (Linux Virtual Server) Service
  125422. .INDENT 0.0
  125423. .TP
  125424. .B salt.states.lvs_service.absent(name, protocol=None, service_address=None)
  125425. Ensure the LVS service is absent.
  125426. .INDENT 7.0
  125427. .TP
  125428. .B name
  125429. The name of the LVS service
  125430. .TP
  125431. .B protocol
  125432. The service protocol
  125433. .TP
  125434. .B service_address
  125435. The LVS service address
  125436. .UNINDENT
  125437. .UNINDENT
  125438. .INDENT 0.0
  125439. .TP
  125440. .B salt.states.lvs_service.present(name, protocol=None, service_address=None, scheduler=u\(aqwlc\(aq)
  125441. Ensure that the named service is present.
  125442. .INDENT 7.0
  125443. .TP
  125444. .B name
  125445. The LVS service name
  125446. .TP
  125447. .B protocol
  125448. The service protocol
  125449. .TP
  125450. .B service_address
  125451. The LVS service address
  125452. .TP
  125453. .B scheduler
  125454. Algorithm for allocating TCP connections and UDP datagrams to real servers.
  125455. .UNINDENT
  125456. .INDENT 7.0
  125457. .INDENT 3.5
  125458. .sp
  125459. .nf
  125460. .ft C
  125461. lvstest:
  125462. lvs_service.present:
  125463. \- service_address: 1.1.1.1:80
  125464. \- protocol: tcp
  125465. \- scheduler: rr
  125466. .ft P
  125467. .fi
  125468. .UNINDENT
  125469. .UNINDENT
  125470. .UNINDENT
  125471. .SS salt.states.lxc
  125472. .SS Manage Linux Containers
  125473. .INDENT 0.0
  125474. .TP
  125475. .B salt.states.lxc.absent(name, stop=False, path=None)
  125476. Ensure a container is not present, destroying it if present
  125477. .INDENT 7.0
  125478. .TP
  125479. .B name
  125480. Name of the container to destroy
  125481. .TP
  125482. .B stop
  125483. stop before destroying
  125484. default: false
  125485. .sp
  125486. New in version 2015.5.2.
  125487. .TP
  125488. .B path
  125489. path to the container parent
  125490. default: /var/lib/lxc (system default)
  125491. .sp
  125492. New in version 2015.8.0.
  125493. .UNINDENT
  125494. .INDENT 7.0
  125495. .INDENT 3.5
  125496. .sp
  125497. .nf
  125498. .ft C
  125499. web01:
  125500. lxc.absent
  125501. .ft P
  125502. .fi
  125503. .UNINDENT
  125504. .UNINDENT
  125505. .UNINDENT
  125506. .INDENT 0.0
  125507. .TP
  125508. .B salt.states.lxc.edited_conf(name, lxc_conf=None, lxc_conf_unset=None)
  125509. .sp
  125510. \fBWARNING:\fP
  125511. .INDENT 7.0
  125512. .INDENT 3.5
  125513. This state is unsuitable for setting parameters that appear more than
  125514. once in an LXC config file, or parameters which must appear in a
  125515. certain order (such as when configuring more than one network
  125516. interface).
  125517. .sp
  125518. \fI\%Issue #35523\fP was opened to track the addition of a suitable replacement
  125519. or fix.
  125520. .UNINDENT
  125521. .UNINDENT
  125522. .sp
  125523. Edit LXC configuration options
  125524. .sp
  125525. Deprecated since version 2015.5.0.
  125526. .INDENT 7.0
  125527. .TP
  125528. .B path
  125529. path to the container parent
  125530. default: /var/lib/lxc (system default)
  125531. .sp
  125532. New in version 2015.8.0.
  125533. .UNINDENT
  125534. .INDENT 7.0
  125535. .INDENT 3.5
  125536. .sp
  125537. .nf
  125538. .ft C
  125539. setconf:
  125540. lxc.edited_conf:
  125541. \- name: ubuntu
  125542. \- lxc_conf:
  125543. \- network.ipv4.ip: 10.0.3.6
  125544. \- lxc_conf_unset:
  125545. \- lxc.utsname
  125546. .ft P
  125547. .fi
  125548. .UNINDENT
  125549. .UNINDENT
  125550. .UNINDENT
  125551. .INDENT 0.0
  125552. .TP
  125553. .B salt.states.lxc.frozen(name, start=True, path=None)
  125554. New in version 2015.5.0.
  125555. .sp
  125556. Ensure that a container is frozen
  125557. .sp
  125558. \fBNOTE:\fP
  125559. .INDENT 7.0
  125560. .INDENT 3.5
  125561. This state does not enforce the existence of the named container, it
  125562. just freezes the container if it is running. To ensure that the named
  125563. container exists, use \fI\%lxc.present\fP\&.
  125564. .UNINDENT
  125565. .UNINDENT
  125566. .INDENT 7.0
  125567. .TP
  125568. .B name
  125569. The name of the container
  125570. .TP
  125571. .B path
  125572. path to the container parent
  125573. default: /var/lib/lxc (system default)
  125574. .sp
  125575. New in version 2015.8.0.
  125576. .TP
  125577. .B start
  125578. True
  125579. Start container first, if necessary. If \fBFalse\fP, then this state will
  125580. fail if the container is not running.
  125581. .UNINDENT
  125582. .INDENT 7.0
  125583. .INDENT 3.5
  125584. .sp
  125585. .nf
  125586. .ft C
  125587. web01:
  125588. lxc.frozen
  125589. web02:
  125590. lxc.frozen:
  125591. \- start: False
  125592. .ft P
  125593. .fi
  125594. .UNINDENT
  125595. .UNINDENT
  125596. .UNINDENT
  125597. .INDENT 0.0
  125598. .TP
  125599. .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)
  125600. Changed in version 2015.8.0: The \fBlxc.created\fP state has been renamed
  125601. to \fBlxc.present\fP, and the \fBlxc.cloned\fP
  125602. state has been merged into this state.
  125603. .sp
  125604. Create the named container if it does not exist
  125605. .INDENT 7.0
  125606. .TP
  125607. .B name
  125608. The name of the container to be created
  125609. .TP
  125610. .B path
  125611. path to the container parent
  125612. default: /var/lib/lxc (system default)
  125613. .sp
  125614. New in version 2015.8.0.
  125615. .TP
  125616. .B running
  125617. False.INDENT 7.0
  125618. .IP \(bu 2
  125619. If \fBTrue\fP, ensure that the container is running
  125620. .IP \(bu 2
  125621. If \fBFalse\fP, ensure that the container is stopped
  125622. .IP \(bu 2
  125623. If \fBNone\fP, do nothing with regards to the running state of the
  125624. container
  125625. .UNINDENT
  125626. .sp
  125627. New in version 2015.8.0.
  125628. .TP
  125629. .B clone_from
  125630. Create named container as a clone of the specified container
  125631. .TP
  125632. .B snapshot
  125633. False
  125634. Use Copy On Write snapshots (LVM). Only supported with \fBclone_from\fP\&.
  125635. .TP
  125636. .B profile
  125637. Profile to use in container creation (see the LXC Tutorial for more information). Values in a
  125638. profile will be overridden by the parameters listed below.
  125639. .TP
  125640. .B network_profile
  125641. Network Profile to use in container creation
  125642. (see the LXC Tutorial
  125643. for more information). Values in a profile will be overridden by
  125644. the parameters listed below.
  125645. .sp
  125646. New in version 2015.5.2.
  125647. .UNINDENT
  125648. .sp
  125649. \fBContainer Creation Arguments\fP
  125650. .INDENT 7.0
  125651. .TP
  125652. .B template
  125653. The template to use. For example, \fBubuntu\fP or \fBfedora\fP\&.
  125654. For a full list of available templates, check out
  125655. the \fBlxc.templates\fP function.
  125656. .sp
  125657. Conflicts with the \fBimage\fP argument.
  125658. .sp
  125659. \fBNOTE:\fP
  125660. .INDENT 7.0
  125661. .INDENT 3.5
  125662. The \fBdownload\fP template requires the following three parameters
  125663. to be defined in \fBoptions\fP:
  125664. .INDENT 0.0
  125665. .IP \(bu 2
  125666. \fBdist\fP \- The name of the distribution
  125667. .IP \(bu 2
  125668. \fBrelease\fP \- Release name/version
  125669. .IP \(bu 2
  125670. \fBarch\fP \- Architecture of the container
  125671. .UNINDENT
  125672. .sp
  125673. The available images can be listed using the \fBlxc.images\fP function.
  125674. .UNINDENT
  125675. .UNINDENT
  125676. .UNINDENT
  125677. .sp
  125678. options
  125679. .INDENT 7.0
  125680. .INDENT 3.5
  125681. New in version 2015.5.0.
  125682. .sp
  125683. Template\-specific options to pass to the lxc\-create command. These
  125684. correspond to the long options (ones beginning with two dashes) that
  125685. the template script accepts. For example:
  125686. .INDENT 0.0
  125687. .INDENT 3.5
  125688. .sp
  125689. .nf
  125690. .ft C
  125691. web01:
  125692. lxc.present:
  125693. \- template: download
  125694. \- options:
  125695. dist: centos
  125696. release: 6
  125697. arch: amd64
  125698. .ft P
  125699. .fi
  125700. .UNINDENT
  125701. .UNINDENT
  125702. .sp
  125703. Remember to double\-indent the options, due to how PyYAML works\&.
  125704. .sp
  125705. For available template options, refer to the lxc template scripts
  125706. which are usually located under \fB/usr/share/lxc/templates\fP,
  125707. or run \fBlxc\-create \-t <template> \-h\fP\&.
  125708. .UNINDENT
  125709. .UNINDENT
  125710. .INDENT 7.0
  125711. .TP
  125712. .B image
  125713. A tar archive to use as the rootfs for the container. Conflicts with
  125714. the \fBtemplate\fP argument.
  125715. .TP
  125716. .B backing
  125717. The type of storage to use. Set to \fBlvm\fP to use an LVM group.
  125718. Defaults to filesystem within /var/lib/lxc.
  125719. .TP
  125720. .B fstype
  125721. Filesystem type to use on LVM logical volume
  125722. .TP
  125723. .B size
  125724. Size of the volume to create. Only applicable if \fBbacking\fP is set to
  125725. \fBlvm\fP\&.
  125726. .TP
  125727. .B vgname
  125728. lxc
  125729. Name of the LVM volume group in which to create the volume for this
  125730. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125731. .TP
  125732. .B lvname
  125733. Name of the LVM logical volume in which to create the volume for this
  125734. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125735. .TP
  125736. .B thinpool
  125737. Name of a pool volume that will be used for thin\-provisioning this
  125738. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125739. .UNINDENT
  125740. .UNINDENT
  125741. .INDENT 0.0
  125742. .TP
  125743. .B salt.states.lxc.running(name, restart=False, path=None)
  125744. Changed in version 2015.5.0: The \fBlxc.started\fP state has been renamed
  125745. to \fBlxc.running\fP
  125746. .sp
  125747. Ensure that a container is running
  125748. .sp
  125749. \fBNOTE:\fP
  125750. .INDENT 7.0
  125751. .INDENT 3.5
  125752. This state does not enforce the existence of the named container, it
  125753. just starts the container if it is not running. To ensure that the
  125754. named container exists, use \fI\%lxc.present\fP\&.
  125755. .UNINDENT
  125756. .UNINDENT
  125757. .INDENT 7.0
  125758. .TP
  125759. .B name
  125760. The name of the container
  125761. .TP
  125762. .B path
  125763. path to the container parent
  125764. default: /var/lib/lxc (system default)
  125765. .sp
  125766. New in version 2015.8.0.
  125767. .TP
  125768. .B restart
  125769. False
  125770. Restart container if it is already running
  125771. .UNINDENT
  125772. .INDENT 7.0
  125773. .INDENT 3.5
  125774. .sp
  125775. .nf
  125776. .ft C
  125777. web01:
  125778. lxc.running
  125779. web02:
  125780. lxc.running:
  125781. \- restart: True
  125782. .ft P
  125783. .fi
  125784. .UNINDENT
  125785. .UNINDENT
  125786. .UNINDENT
  125787. .INDENT 0.0
  125788. .TP
  125789. .B salt.states.lxc.set_pass(name, **kwargs)
  125790. Deprecated since version 2015.5.0.
  125791. .sp
  125792. This state function has been disabled, as it did not conform to design
  125793. guidelines. Specifically, due to the fact that \fBlxc.set_password\fP uses \fBchpasswd(8)\fP to set the password,
  125794. there was no method to make this action idempotent (in other words, the
  125795. password would be changed every time). This makes this state redundant,
  125796. since the following state will do the same thing:
  125797. .INDENT 7.0
  125798. .INDENT 3.5
  125799. .sp
  125800. .nf
  125801. .ft C
  125802. setpass:
  125803. module.run:
  125804. \- name: set_pass
  125805. \- m_name: root
  125806. \- password: secret
  125807. .ft P
  125808. .fi
  125809. .UNINDENT
  125810. .UNINDENT
  125811. .UNINDENT
  125812. .INDENT 0.0
  125813. .TP
  125814. .B salt.states.lxc.stopped(name, kill=False, path=None)
  125815. Ensure that a container is stopped
  125816. .sp
  125817. \fBNOTE:\fP
  125818. .INDENT 7.0
  125819. .INDENT 3.5
  125820. This state does not enforce the existence of the named container, it
  125821. just stops the container if it running or frozen. To ensure that the
  125822. named container exists, use \fI\%lxc.present\fP, or use the \fI\%lxc.absent\fP state to ensure that the container does not
  125823. exist.
  125824. .UNINDENT
  125825. .UNINDENT
  125826. .INDENT 7.0
  125827. .TP
  125828. .B name
  125829. The name of the container
  125830. .TP
  125831. .B path
  125832. path to the container parent
  125833. default: /var/lib/lxc (system default)
  125834. .sp
  125835. New in version 2015.8.0.
  125836. .TP
  125837. .B kill
  125838. False
  125839. Do not wait for the container to stop, kill all tasks in the container.
  125840. Older LXC versions will stop containers like this irrespective of this
  125841. argument.
  125842. .sp
  125843. New in version 2015.5.0.
  125844. .UNINDENT
  125845. .INDENT 7.0
  125846. .INDENT 3.5
  125847. .sp
  125848. .nf
  125849. .ft C
  125850. web01:
  125851. lxc.stopped
  125852. .ft P
  125853. .fi
  125854. .UNINDENT
  125855. .UNINDENT
  125856. .UNINDENT
  125857. .SS salt.states.lxd module
  125858. .sp
  125859. Manage LXD profiles.
  125860. .sp
  125861. New in version 2019.2.0.
  125862. .INDENT 0.0
  125863. .TP
  125864. .B maintainer
  125865. René Jochum <\fI\%rene@jochums.at\fP>
  125866. .TP
  125867. .B maturity
  125868. new
  125869. .TP
  125870. .B depends
  125871. python\-pylxd
  125872. .TP
  125873. .B platform
  125874. Linux
  125875. .UNINDENT
  125876. .INDENT 0.0
  125877. .TP
  125878. .B salt.states.lxd.authenticate(name, remote_addr, password, cert, key, verify_cert=True)
  125879. Authenticate with a remote peer.
  125880. .INDENT 7.0
  125881. .TP
  125882. .B remote_addr :
  125883. An URL to a remote Server, you also have to give cert and key if you
  125884. provide remote_addr!
  125885. .INDENT 7.0
  125886. .TP
  125887. .B Examples:
  125888. \fI\%https://myserver.lan:8443\fP
  125889. /var/lib/mysocket.sock
  125890. .UNINDENT
  125891. .TP
  125892. .B password :
  125893. The PaSsW0rD
  125894. .TP
  125895. .B cert :
  125896. PEM Formatted SSL Zertifikate.
  125897. .INDENT 7.0
  125898. .TP
  125899. .B Examples:
  125900. /root/.config/lxc/client.crt
  125901. .UNINDENT
  125902. .TP
  125903. .B key :
  125904. PEM Formatted SSL Key.
  125905. .INDENT 7.0
  125906. .TP
  125907. .B Examples:
  125908. /root/.config/lxc/client.key
  125909. .UNINDENT
  125910. .TP
  125911. .B verify_cert
  125912. True
  125913. Wherever to verify the cert, this is by default True
  125914. but in the most cases you want to set it off as LXD
  125915. normally uses self\-signed certificates.
  125916. .TP
  125917. .B name:
  125918. Ignore this. This is just here for salt.
  125919. .UNINDENT
  125920. .UNINDENT
  125921. .INDENT 0.0
  125922. .TP
  125923. .B salt.states.lxd.config_managed(name, value, force_password=False)
  125924. Manage a LXD Server config setting.
  125925. .INDENT 7.0
  125926. .TP
  125927. .B name :
  125928. The name of the config key.
  125929. .TP
  125930. .B value :
  125931. Its value.
  125932. .TP
  125933. .B force_password
  125934. False
  125935. Set this to True if you want to set the password on every run.
  125936. .sp
  125937. As we can\(aqt retrieve the password from LXD we can\(aqt check
  125938. if the current one is the same as the given one.
  125939. .UNINDENT
  125940. .UNINDENT
  125941. .INDENT 0.0
  125942. .TP
  125943. .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)
  125944. Initializes the LXD Daemon, as LXD doesn\(aqt tell if its initialized
  125945. we touch the done_file and check if it exist.
  125946. .sp
  125947. This can only be called once per host unless you remove the done_file.
  125948. .INDENT 7.0
  125949. .TP
  125950. .B name :
  125951. Ignore this. This is just here for salt.
  125952. .TP
  125953. .B storage_backend :
  125954. Storage backend to use (zfs or dir, default: dir)
  125955. .TP
  125956. .B trust_password :
  125957. Password required to add new clients
  125958. .TP
  125959. .B network_address
  125960. None
  125961. Address to bind LXD to (default: none)
  125962. .TP
  125963. .B network_port
  125964. None
  125965. Port to bind LXD to (Default: 8443)
  125966. .TP
  125967. .B storage_create_device
  125968. None
  125969. Setup device based storage using this DEVICE
  125970. .TP
  125971. .B storage_create_loop
  125972. None
  125973. Setup loop based storage with this SIZE in GB
  125974. .TP
  125975. .B storage_pool
  125976. None
  125977. Storage pool to use or create
  125978. .TP
  125979. .B done_file :
  125980. Path where we check that this method has been called,
  125981. as it can run only once and there\(aqs currently no way
  125982. to ask LXD if init has been called.
  125983. .UNINDENT
  125984. .UNINDENT
  125985. .SS salt.states.lxd_container module
  125986. .sp
  125987. Manage LXD containers.
  125988. .sp
  125989. New in version 2019.2.0.
  125990. .INDENT 0.0
  125991. .TP
  125992. .B maintainer
  125993. René Jochum <\fI\%rene@jochums.at\fP>
  125994. .TP
  125995. .B maturity
  125996. new
  125997. .TP
  125998. .B depends
  125999. python\-pylxd
  126000. .TP
  126001. .B platform
  126002. Linux
  126003. .UNINDENT
  126004. .INDENT 0.0
  126005. .TP
  126006. .B salt.states.lxd_container.absent(name, stop=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126007. Ensure a LXD container is not present, destroying it if present
  126008. .INDENT 7.0
  126009. .TP
  126010. .B name :
  126011. The name of the container to destroy
  126012. .TP
  126013. .B stop :
  126014. stop before destroying
  126015. default: false
  126016. .TP
  126017. .B remote_addr :
  126018. An URL to a remote Server, you also have to give cert and key if you
  126019. provide remote_addr!
  126020. .INDENT 7.0
  126021. .TP
  126022. .B Examples:
  126023. \fI\%https://myserver.lan:8443\fP
  126024. /var/lib/mysocket.sock
  126025. .UNINDENT
  126026. .TP
  126027. .B cert :
  126028. PEM Formatted SSL Zertifikate.
  126029. .INDENT 7.0
  126030. .TP
  126031. .B Examples:
  126032. ~/.config/lxc/client.crt
  126033. .UNINDENT
  126034. .TP
  126035. .B key :
  126036. PEM Formatted SSL Key.
  126037. .INDENT 7.0
  126038. .TP
  126039. .B Examples:
  126040. ~/.config/lxc/client.key
  126041. .UNINDENT
  126042. .TP
  126043. .B verify_cert
  126044. True
  126045. Wherever to verify the cert, this is by default True
  126046. but in the most cases you want to set it off as LXD
  126047. normally uses self\-signed certificates.
  126048. .UNINDENT
  126049. .UNINDENT
  126050. .INDENT 0.0
  126051. .TP
  126052. .B salt.states.lxd_container.frozen(name, start=True, remote_addr=None, cert=None, key=None, verify_cert=True)
  126053. Ensure a LXD container is frozen, start and freeze it if start is true
  126054. .INDENT 7.0
  126055. .TP
  126056. .B name :
  126057. The name of the container to freeze
  126058. .TP
  126059. .B start :
  126060. start and freeze it
  126061. .TP
  126062. .B remote_addr :
  126063. An URL to a remote Server, you also have to give cert and key if you
  126064. provide remote_addr!
  126065. .INDENT 7.0
  126066. .TP
  126067. .B Examples:
  126068. \fI\%https://myserver.lan:8443\fP
  126069. /var/lib/mysocket.sock
  126070. .UNINDENT
  126071. .TP
  126072. .B cert :
  126073. PEM Formatted SSL Zertifikate.
  126074. .INDENT 7.0
  126075. .TP
  126076. .B Examples:
  126077. ~/.config/lxc/client.crt
  126078. .UNINDENT
  126079. .TP
  126080. .B key :
  126081. PEM Formatted SSL Key.
  126082. .INDENT 7.0
  126083. .TP
  126084. .B Examples:
  126085. ~/.config/lxc/client.key
  126086. .UNINDENT
  126087. .TP
  126088. .B verify_cert
  126089. True
  126090. Wherever to verify the cert, this is by default True
  126091. but in the most cases you want to set it off as LXD
  126092. normally uses self\-signed certificates.
  126093. .UNINDENT
  126094. .UNINDENT
  126095. .INDENT 0.0
  126096. .TP
  126097. .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)
  126098. Ensure a container is migrated to another host
  126099. .sp
  126100. If the container is running, it either must be shut down
  126101. first (use stop_and_start=True) or criu must be installed
  126102. on the source and destination machines.
  126103. .sp
  126104. For this operation both certs need to be authenticated,
  126105. use \fBlxd.authenticate <salt.states.lxd.authenticate\fP
  126106. to authenticate your cert(s).
  126107. .INDENT 7.0
  126108. .TP
  126109. .B name :
  126110. The container to migrate
  126111. .TP
  126112. .B remote_addr :
  126113. An URL to the destination remote Server
  126114. .INDENT 7.0
  126115. .TP
  126116. .B Examples:
  126117. \fI\%https://myserver.lan:8443\fP
  126118. /var/lib/mysocket.sock
  126119. .UNINDENT
  126120. .TP
  126121. .B cert :
  126122. PEM Formatted SSL Zertifikate.
  126123. .INDENT 7.0
  126124. .TP
  126125. .B Examples:
  126126. ~/.config/lxc/client.crt
  126127. .UNINDENT
  126128. .TP
  126129. .B key :
  126130. PEM Formatted SSL Key.
  126131. .INDENT 7.0
  126132. .TP
  126133. .B Examples:
  126134. ~/.config/lxc/client.key
  126135. .UNINDENT
  126136. .TP
  126137. .B verify_cert
  126138. True
  126139. Wherever to verify the cert, this is by default True
  126140. but in the most cases you want to set it off as LXD
  126141. normally uses self\-signed certificates.
  126142. .TP
  126143. .B src_remote_addr :
  126144. An URL to the source remote Server
  126145. .INDENT 7.0
  126146. .TP
  126147. .B Examples:
  126148. \fI\%https://myserver.lan:8443\fP
  126149. /var/lib/mysocket.sock
  126150. .UNINDENT
  126151. .TP
  126152. .B stop_and_start:
  126153. Stop before migrating and start after
  126154. .TP
  126155. .B src_cert :
  126156. PEM Formatted SSL Zertifikate, if None we copy "cert"
  126157. .INDENT 7.0
  126158. .TP
  126159. .B Examples:
  126160. ~/.config/lxc/client.crt
  126161. .UNINDENT
  126162. .TP
  126163. .B src_key :
  126164. PEM Formatted SSL Key, if None we copy "key"
  126165. .INDENT 7.0
  126166. .TP
  126167. .B Examples:
  126168. ~/.config/lxc/client.key
  126169. .UNINDENT
  126170. .TP
  126171. .B src_verify_cert :
  126172. Wherever to verify the cert, if None we copy "verify_cert"
  126173. .UNINDENT
  126174. .UNINDENT
  126175. .INDENT 0.0
  126176. .TP
  126177. .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)
  126178. Create the named container if it does not exist
  126179. .INDENT 7.0
  126180. .TP
  126181. .B name
  126182. The name of the container to be created
  126183. .TP
  126184. .B running
  126185. None.INDENT 7.0
  126186. .IP \(bu 2
  126187. If \fBTrue\fP, ensure that the container is running
  126188. .IP \(bu 2
  126189. If \fBFalse\fP, ensure that the container is stopped
  126190. .IP \(bu 2
  126191. If \fBNone\fP, do nothing with regards to the running state of the
  126192. container
  126193. .UNINDENT
  126194. .TP
  126195. .B source
  126196. None
  126197. Can be either a string containing an image alias:
  126198. .INDENT 7.0
  126199. .INDENT 3.5
  126200. .sp
  126201. .nf
  126202. .ft C
  126203. "xenial/amd64"
  126204. .ft P
  126205. .fi
  126206. .UNINDENT
  126207. .UNINDENT
  126208. .sp
  126209. or an dict with type "image" with alias:
  126210. .INDENT 7.0
  126211. .INDENT 3.5
  126212. .sp
  126213. .nf
  126214. .ft C
  126215. {"type": "image",
  126216. "alias": "xenial/amd64"}
  126217. .ft P
  126218. .fi
  126219. .UNINDENT
  126220. .UNINDENT
  126221. .sp
  126222. or image with "fingerprint":
  126223. .INDENT 7.0
  126224. .INDENT 3.5
  126225. .sp
  126226. .nf
  126227. .ft C
  126228. {"type": "image",
  126229. "fingerprint": "SHA\-256"}
  126230. .ft P
  126231. .fi
  126232. .UNINDENT
  126233. .UNINDENT
  126234. .sp
  126235. or image with "properties":
  126236. .INDENT 7.0
  126237. .INDENT 3.5
  126238. .sp
  126239. .nf
  126240. .ft C
  126241. {"type": "image",
  126242. "properties": {
  126243. "os": "ubuntu",
  126244. "release": "14.04",
  126245. "architecture": "x86_64"
  126246. }}
  126247. .ft P
  126248. .fi
  126249. .UNINDENT
  126250. .UNINDENT
  126251. .sp
  126252. or none:
  126253. .INDENT 7.0
  126254. .INDENT 3.5
  126255. .sp
  126256. .nf
  126257. .ft C
  126258. {"type": "none"}
  126259. .ft P
  126260. .fi
  126261. .UNINDENT
  126262. .UNINDENT
  126263. .sp
  126264. or copy:
  126265. .INDENT 7.0
  126266. .INDENT 3.5
  126267. .sp
  126268. .nf
  126269. .ft C
  126270. {"type": "copy",
  126271. "source": "my\-old\-container"}
  126272. .ft P
  126273. .fi
  126274. .UNINDENT
  126275. .UNINDENT
  126276. .TP
  126277. .B profiles
  126278. [\(aqdefault\(aq]
  126279. List of profiles to apply on this container
  126280. .TP
  126281. .B config :
  126282. A config dict or None (None = unset).
  126283. .sp
  126284. Can also be a list:
  126285. .INDENT 7.0
  126286. .INDENT 3.5
  126287. .sp
  126288. .nf
  126289. .ft C
  126290. [{\(aqkey\(aq: \(aqboot.autostart\(aq, \(aqvalue\(aq: 1},
  126291. {\(aqkey\(aq: \(aqsecurity.privileged\(aq, \(aqvalue\(aq: \(aq1\(aq}]
  126292. .ft P
  126293. .fi
  126294. .UNINDENT
  126295. .UNINDENT
  126296. .TP
  126297. .B devices :
  126298. A device dict or None (None = unset).
  126299. .TP
  126300. .B architecture
  126301. \(aqx86_64\(aq
  126302. Can be one of the following:
  126303. .INDENT 7.0
  126304. .IP \(bu 2
  126305. unknown
  126306. .IP \(bu 2
  126307. i686
  126308. .IP \(bu 2
  126309. x86_64
  126310. .IP \(bu 2
  126311. armv7l
  126312. .IP \(bu 2
  126313. aarch64
  126314. .IP \(bu 2
  126315. ppc
  126316. .IP \(bu 2
  126317. ppc64
  126318. .IP \(bu 2
  126319. ppc64le
  126320. .IP \(bu 2
  126321. s390x
  126322. .UNINDENT
  126323. .TP
  126324. .B ephemeral
  126325. False
  126326. Destroy this container after stop?
  126327. .TP
  126328. .B restart_on_change
  126329. False
  126330. Restart the container when we detect changes on the config or
  126331. its devices?
  126332. .TP
  126333. .B remote_addr :
  126334. An URL to a remote Server, you also have to give cert and key if you
  126335. provide remote_addr!
  126336. .INDENT 7.0
  126337. .TP
  126338. .B Examples:
  126339. \fI\%https://myserver.lan:8443\fP
  126340. /var/lib/mysocket.sock
  126341. .UNINDENT
  126342. .TP
  126343. .B cert :
  126344. PEM Formatted SSL Zertifikate.
  126345. .INDENT 7.0
  126346. .TP
  126347. .B Examples:
  126348. ~/.config/lxc/client.crt
  126349. .UNINDENT
  126350. .TP
  126351. .B key :
  126352. PEM Formatted SSL Key.
  126353. .INDENT 7.0
  126354. .TP
  126355. .B Examples:
  126356. ~/.config/lxc/client.key
  126357. .UNINDENT
  126358. .TP
  126359. .B verify_cert
  126360. True
  126361. Wherever to verify the cert, this is by default True
  126362. but in the most cases you want to set it off as LXD
  126363. normally uses self\-signed certificates.
  126364. .UNINDENT
  126365. .UNINDENT
  126366. .INDENT 0.0
  126367. .TP
  126368. .B salt.states.lxd_container.running(name, restart=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126369. Ensure a LXD container is running and restart it if restart is True
  126370. .INDENT 7.0
  126371. .TP
  126372. .B name :
  126373. The name of the container to start/restart.
  126374. .TP
  126375. .B restart :
  126376. restart the container if it is already started.
  126377. .TP
  126378. .B remote_addr :
  126379. An URL to a remote Server, you also have to give cert and key if you
  126380. provide remote_addr!
  126381. .INDENT 7.0
  126382. .TP
  126383. .B Examples:
  126384. \fI\%https://myserver.lan:8443\fP
  126385. /var/lib/mysocket.sock
  126386. .UNINDENT
  126387. .TP
  126388. .B cert :
  126389. PEM Formatted SSL Zertifikate.
  126390. .INDENT 7.0
  126391. .TP
  126392. .B Examples:
  126393. ~/.config/lxc/client.crt
  126394. .UNINDENT
  126395. .TP
  126396. .B key :
  126397. PEM Formatted SSL Key.
  126398. .INDENT 7.0
  126399. .TP
  126400. .B Examples:
  126401. ~/.config/lxc/client.key
  126402. .UNINDENT
  126403. .TP
  126404. .B verify_cert
  126405. True
  126406. Wherever to verify the cert, this is by default True
  126407. but in the most cases you want to set it off as LXD
  126408. normally uses self\-signed certificates.
  126409. .UNINDENT
  126410. .UNINDENT
  126411. .INDENT 0.0
  126412. .TP
  126413. .B salt.states.lxd_container.stopped(name, kill=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126414. Ensure a LXD container is stopped, kill it if kill is true else stop it
  126415. .INDENT 7.0
  126416. .TP
  126417. .B name :
  126418. The name of the container to stop
  126419. .TP
  126420. .B kill :
  126421. kill if true
  126422. .TP
  126423. .B remote_addr :
  126424. An URL to a remote Server, you also have to give cert and key if you
  126425. provide remote_addr!
  126426. .INDENT 7.0
  126427. .TP
  126428. .B Examples:
  126429. \fI\%https://myserver.lan:8443\fP
  126430. /var/lib/mysocket.sock
  126431. .UNINDENT
  126432. .TP
  126433. .B cert :
  126434. PEM Formatted SSL Zertifikate.
  126435. .INDENT 7.0
  126436. .TP
  126437. .B Examples:
  126438. ~/.config/lxc/client.crt
  126439. .UNINDENT
  126440. .TP
  126441. .B key :
  126442. PEM Formatted SSL Key.
  126443. .INDENT 7.0
  126444. .TP
  126445. .B Examples:
  126446. ~/.config/lxc/client.key
  126447. .UNINDENT
  126448. .TP
  126449. .B verify_cert
  126450. True
  126451. Wherever to verify the cert, this is by default True
  126452. but in the most cases you want to set it off as LXD
  126453. normally uses self\-signed certificates.
  126454. .UNINDENT
  126455. .UNINDENT
  126456. .SS salt.states.lxd_image module
  126457. .sp
  126458. Manage LXD images.
  126459. .sp
  126460. New in version 2019.2.0.
  126461. .INDENT 0.0
  126462. .TP
  126463. .B maintainer
  126464. René Jochum <\fI\%rene@jochums.at\fP>
  126465. .TP
  126466. .B maturity
  126467. new
  126468. .TP
  126469. .B depends
  126470. python\-pylxd
  126471. .TP
  126472. .B platform
  126473. Linux
  126474. .UNINDENT
  126475. .INDENT 0.0
  126476. .TP
  126477. .B salt.states.lxd_image.absent(name, remote_addr=None, cert=None, key=None, verify_cert=True)
  126478. .INDENT 7.0
  126479. .TP
  126480. .B name :
  126481. An alias or fingerprint of the image to check and delete.
  126482. .TP
  126483. .B remote_addr :
  126484. An URL to a remote Server, you also have to give cert and key if you
  126485. provide remote_addr!
  126486. .INDENT 7.0
  126487. .TP
  126488. .B Examples:
  126489. \fI\%https://myserver.lan:8443\fP
  126490. /var/lib/mysocket.sock
  126491. .UNINDENT
  126492. .TP
  126493. .B cert :
  126494. PEM Formatted SSL Zertifikate.
  126495. .INDENT 7.0
  126496. .TP
  126497. .B Examples:
  126498. ~/.config/lxc/client.crt
  126499. .UNINDENT
  126500. .TP
  126501. .B key :
  126502. PEM Formatted SSL Key.
  126503. .INDENT 7.0
  126504. .TP
  126505. .B Examples:
  126506. ~/.config/lxc/client.key
  126507. .UNINDENT
  126508. .TP
  126509. .B verify_cert
  126510. True
  126511. Wherever to verify the cert, this is by default True
  126512. but in the most cases you want to set it off as LXD
  126513. normally uses self\-signed certificates.
  126514. .UNINDENT
  126515. .UNINDENT
  126516. .INDENT 0.0
  126517. .TP
  126518. .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)
  126519. Ensure an image exists, copy it else from source
  126520. .INDENT 7.0
  126521. .TP
  126522. .B name :
  126523. An alias of the image, this is used to check if the image exists and
  126524. it will be added as alias to the image on copy/create.
  126525. .TP
  126526. .B source :
  126527. Source dict.
  126528. .sp
  126529. For an LXD to LXD copy:
  126530. .INDENT 7.0
  126531. .INDENT 3.5
  126532. .sp
  126533. .nf
  126534. .ft C
  126535. source:
  126536. type: lxd
  126537. name: ubuntu/xenial/amd64 # This can also be a fingerprint.
  126538. remote_addr: https://images.linuxcontainers.org:8443
  126539. cert: ~/.config/lxd/client.crt
  126540. key: ~/.config/lxd/client.key
  126541. verify_cert: False
  126542. .ft P
  126543. .fi
  126544. .UNINDENT
  126545. .UNINDENT
  126546. .sp
  126547. From file:
  126548. .INDENT 7.0
  126549. .INDENT 3.5
  126550. .sp
  126551. .nf
  126552. .ft C
  126553. source:
  126554. type: file
  126555. filename: salt://lxd/files/busybox.tar.xz
  126556. saltenv: base
  126557. .ft P
  126558. .fi
  126559. .UNINDENT
  126560. .UNINDENT
  126561. .sp
  126562. From simplestreams:
  126563. .INDENT 7.0
  126564. .INDENT 3.5
  126565. .sp
  126566. .nf
  126567. .ft C
  126568. source:
  126569. type: simplestreams
  126570. server: https://cloud\-images.ubuntu.com/releases
  126571. name: xenial/amd64
  126572. .ft P
  126573. .fi
  126574. .UNINDENT
  126575. .UNINDENT
  126576. .sp
  126577. From an URL:
  126578. .INDENT 7.0
  126579. .INDENT 3.5
  126580. .sp
  126581. .nf
  126582. .ft C
  126583. source:
  126584. type: url
  126585. url: https://dl.stgraber.org/lxd
  126586. .ft P
  126587. .fi
  126588. .UNINDENT
  126589. .UNINDENT
  126590. .TP
  126591. .B aliases :
  126592. List of aliases to append, can be empty.
  126593. .TP
  126594. .B public :
  126595. .INDENT 7.0
  126596. .TP
  126597. .B Make this image public available on this instance?
  126598. None on source_type LXD means copy source
  126599. None on source_type file means False
  126600. .UNINDENT
  126601. .TP
  126602. .B auto_update :
  126603. .INDENT 7.0
  126604. .TP
  126605. .B Try to auto\-update from the original source?
  126606. None on source_type LXD means copy source
  126607. source_type file does not have auto\-update.
  126608. .UNINDENT
  126609. .TP
  126610. .B remote_addr :
  126611. An URL to a remote Server, you also have to give cert and key if you
  126612. provide remote_addr!
  126613. .INDENT 7.0
  126614. .TP
  126615. .B Examples:
  126616. \fI\%https://myserver.lan:8443\fP
  126617. /var/lib/mysocket.sock
  126618. .UNINDENT
  126619. .TP
  126620. .B cert :
  126621. PEM Formatted SSL Zertifikate.
  126622. .INDENT 7.0
  126623. .TP
  126624. .B Examples:
  126625. ~/.config/lxc/client.crt
  126626. .UNINDENT
  126627. .TP
  126628. .B key :
  126629. PEM Formatted SSL Key.
  126630. .INDENT 7.0
  126631. .TP
  126632. .B Examples:
  126633. ~/.config/lxc/client.key
  126634. .UNINDENT
  126635. .TP
  126636. .B verify_cert
  126637. True
  126638. Wherever to verify the cert, this is by default True
  126639. but in the most cases you want to set it off as LXD
  126640. normally uses self\-signed certificates.
  126641. .UNINDENT
  126642. .UNINDENT
  126643. .SS salt.states.lxd_profile module
  126644. .sp
  126645. Manage LXD profiles.
  126646. .sp
  126647. New in version 2019.2.0.
  126648. .INDENT 0.0
  126649. .TP
  126650. .B maintainer
  126651. René Jochum <\fI\%rene@jochums.at\fP>
  126652. .TP
  126653. .B maturity
  126654. new
  126655. .TP
  126656. .B depends
  126657. python\-pylxd
  126658. .TP
  126659. .B platform
  126660. Linux
  126661. .UNINDENT
  126662. .INDENT 0.0
  126663. .TP
  126664. .B salt.states.lxd_profile.absent(name, remote_addr=None, cert=None, key=None, verify_cert=True)
  126665. Ensure a LXD profile is not present, removing it if present.
  126666. .INDENT 7.0
  126667. .TP
  126668. .B name :
  126669. The name of the profile to remove.
  126670. .TP
  126671. .B remote_addr :
  126672. An URL to a remote Server, you also have to give cert and key if you
  126673. provide remote_addr!
  126674. .INDENT 7.0
  126675. .TP
  126676. .B Examples:
  126677. \fI\%https://myserver.lan:8443\fP
  126678. /var/lib/mysocket.sock
  126679. .UNINDENT
  126680. .TP
  126681. .B cert :
  126682. PEM Formatted SSL Zertifikate.
  126683. .INDENT 7.0
  126684. .TP
  126685. .B Examples:
  126686. ~/.config/lxc/client.crt
  126687. .UNINDENT
  126688. .TP
  126689. .B key :
  126690. PEM Formatted SSL Key.
  126691. .INDENT 7.0
  126692. .TP
  126693. .B Examples:
  126694. ~/.config/lxc/client.key
  126695. .UNINDENT
  126696. .TP
  126697. .B verify_cert
  126698. True
  126699. Wherever to verify the cert, this is by default True
  126700. but in the most cases you want to set it off as LXD
  126701. normally uses self\-signed certificates.
  126702. .UNINDENT
  126703. .sp
  126704. See the \fIrequests\-docs\fP for the SSL stuff.
  126705. .UNINDENT
  126706. .INDENT 0.0
  126707. .TP
  126708. .B salt.states.lxd_profile.present(name, description=None, config=None, devices=None, remote_addr=None, cert=None, key=None, verify_cert=True)
  126709. Creates or updates LXD profiles
  126710. .INDENT 7.0
  126711. .TP
  126712. .B name :
  126713. The name of the profile to create/update
  126714. .TP
  126715. .B description :
  126716. A description string
  126717. .TP
  126718. .B config :
  126719. A config dict or None (None = unset).
  126720. .INDENT 7.0
  126721. .TP
  126722. .B Can also be a list:
  126723. .INDENT 7.0
  126724. .TP
  126725. .B [{\(aqkey\(aq: \(aqboot.autostart\(aq, \(aqvalue\(aq: 1},
  126726. {\(aqkey\(aq: \(aqsecurity.privileged\(aq, \(aqvalue\(aq: \(aq1\(aq}]
  126727. .UNINDENT
  126728. .UNINDENT
  126729. .TP
  126730. .B devices :
  126731. A device dict or None (None = unset).
  126732. .TP
  126733. .B remote_addr :
  126734. An URL to a remote Server, you also have to give cert and key if you
  126735. provide remote_addr!
  126736. .INDENT 7.0
  126737. .TP
  126738. .B Examples:
  126739. \fI\%https://myserver.lan:8443\fP
  126740. /var/lib/mysocket.sock
  126741. .UNINDENT
  126742. .TP
  126743. .B cert :
  126744. PEM Formatted SSL Zertifikate.
  126745. .INDENT 7.0
  126746. .TP
  126747. .B Examples:
  126748. ~/.config/lxc/client.crt
  126749. .UNINDENT
  126750. .TP
  126751. .B key :
  126752. PEM Formatted SSL Key.
  126753. .INDENT 7.0
  126754. .TP
  126755. .B Examples:
  126756. ~/.config/lxc/client.key
  126757. .UNINDENT
  126758. .TP
  126759. .B verify_cert
  126760. True
  126761. Wherever to verify the cert, this is by default True
  126762. but in the most cases you want to set it off as LXD
  126763. normally uses self\-signed certificates.
  126764. .UNINDENT
  126765. .sp
  126766. See the \fI\%lxd\-docs\fP for the details about the config and devices dicts.
  126767. See the \fIrequests\-docs\fP for the SSL stuff.
  126768. .UNINDENT
  126769. .SS salt.states.mac_xattr module
  126770. .SS Allows you to manage extended attributes on files or directories
  126771. .sp
  126772. Install, enable and disable assistive access on macOS minions
  126773. .INDENT 0.0
  126774. .INDENT 3.5
  126775. .sp
  126776. .nf
  126777. .ft C
  126778. /path/to/file:
  126779. xattr.exists:
  126780. \- attributes:
  126781. \- com.file.attr=test
  126782. \- com.apple.quarantine=0x00001111
  126783. .ft P
  126784. .fi
  126785. .UNINDENT
  126786. .UNINDENT
  126787. .INDENT 0.0
  126788. .TP
  126789. .B salt.states.mac_xattr.delete(name, attributes)
  126790. Make sure the given attributes are deleted from the file/directory
  126791. .INDENT 7.0
  126792. .TP
  126793. .B name
  126794. The path to the file/directory
  126795. .TP
  126796. .B attributes
  126797. The attributes that should be removed from the file/directory, this is accepted as
  126798. an array.
  126799. .UNINDENT
  126800. .UNINDENT
  126801. .INDENT 0.0
  126802. .TP
  126803. .B salt.states.mac_xattr.exists(name, attributes)
  126804. Make sure the given attributes exist on the file/directory
  126805. .INDENT 7.0
  126806. .TP
  126807. .B name
  126808. The path to the file/directory
  126809. .TP
  126810. .B attributes
  126811. The attributes that should exist on the file/directory, this is accepted as
  126812. an array, with key and value split with an equals sign, if you want to specify
  126813. a hex value then add 0x to the beginning of the value.
  126814. .UNINDENT
  126815. .UNINDENT
  126816. .SS salt.states.makeconf
  126817. .SS Management of Gentoo make.conf
  126818. .sp
  126819. A state module to manage Gentoo\(aqs \fBmake.conf\fP file
  126820. .INDENT 0.0
  126821. .INDENT 3.5
  126822. .sp
  126823. .nf
  126824. .ft C
  126825. makeopts:
  126826. makeconf.present:
  126827. \- value: \(aq\-j3\(aq
  126828. .ft P
  126829. .fi
  126830. .UNINDENT
  126831. .UNINDENT
  126832. .INDENT 0.0
  126833. .TP
  126834. .B salt.states.makeconf.absent(name)
  126835. Verify that the variable is not in the \fBmake.conf\fP\&.
  126836. .INDENT 7.0
  126837. .TP
  126838. .B name
  126839. The variable name. This will automatically be converted to upper
  126840. case since variables in \fBmake.conf\fP are in upper case
  126841. .UNINDENT
  126842. .UNINDENT
  126843. .INDENT 0.0
  126844. .TP
  126845. .B salt.states.makeconf.present(name, value=None, contains=None, excludes=None)
  126846. Verify that the variable is in the \fBmake.conf\fP and has the provided
  126847. settings. If value is set, contains and excludes will be ignored.
  126848. .INDENT 7.0
  126849. .TP
  126850. .B name
  126851. The variable name. This will automatically be converted to upper
  126852. case since variables in \fBmake.conf\fP are in upper case
  126853. .TP
  126854. .B value
  126855. Enforce that the value of the variable is set to the provided value
  126856. .TP
  126857. .B contains
  126858. Enforce that the value of the variable contains the provided value
  126859. .TP
  126860. .B excludes
  126861. Enforce that the value of the variable does not contain the provided
  126862. value.
  126863. .UNINDENT
  126864. .UNINDENT
  126865. .SS salt.states.marathon_app module
  126866. .sp
  126867. Configure Marathon apps via a salt proxy.
  126868. .INDENT 0.0
  126869. .INDENT 3.5
  126870. .sp
  126871. .nf
  126872. .ft C
  126873. my_app:
  126874. marathon_app.config:
  126875. \- config:
  126876. cmd: "while [ true ] ; do echo \(aqHello Marathon\(aq ; sleep 5 ; done"
  126877. cpus: 0.1
  126878. mem: 10
  126879. instances: 3
  126880. .ft P
  126881. .fi
  126882. .UNINDENT
  126883. .UNINDENT
  126884. .sp
  126885. New in version 2015.8.2.
  126886. .INDENT 0.0
  126887. .TP
  126888. .B salt.states.marathon_app.absent(name)
  126889. Ensure that the marathon app with the given id is not present.
  126890. .INDENT 7.0
  126891. .TP
  126892. .B Parameters
  126893. \fBname\fP \-\- The app name/id
  126894. .TP
  126895. .B Returns
  126896. A standard Salt changes dictionary
  126897. .UNINDENT
  126898. .UNINDENT
  126899. .INDENT 0.0
  126900. .TP
  126901. .B salt.states.marathon_app.config(name, config)
  126902. Ensure that the marathon app with the given id is present and is configured
  126903. to match the given config values.
  126904. .INDENT 7.0
  126905. .TP
  126906. .B Parameters
  126907. .INDENT 7.0
  126908. .IP \(bu 2
  126909. \fBname\fP \-\- The app name/id
  126910. .IP \(bu 2
  126911. \fBconfig\fP \-\- The configuration to apply (dict)
  126912. .UNINDENT
  126913. .TP
  126914. .B Returns
  126915. A standard Salt changes dictionary
  126916. .UNINDENT
  126917. .UNINDENT
  126918. .INDENT 0.0
  126919. .TP
  126920. .B salt.states.marathon_app.running(name, restart=False, force=True)
  126921. Ensure that the marathon app with the given id is present and restart if set.
  126922. .INDENT 7.0
  126923. .TP
  126924. .B Parameters
  126925. .INDENT 7.0
  126926. .IP \(bu 2
  126927. \fBname\fP \-\- The app name/id
  126928. .IP \(bu 2
  126929. \fBrestart\fP \-\- Restart the app
  126930. .IP \(bu 2
  126931. \fBforce\fP \-\- Override the current deployment
  126932. .UNINDENT
  126933. .TP
  126934. .B Returns
  126935. A standard Salt changes dictionary
  126936. .UNINDENT
  126937. .UNINDENT
  126938. .SS salt.states.modjk
  126939. .sp
  126940. State to control Apache modjk
  126941. .INDENT 0.0
  126942. .TP
  126943. .B salt.states.modjk.worker_activated(name, workers=None, profile=u\(aqdefault\(aq)
  126944. Activate all the workers in the modjk load balancer
  126945. .sp
  126946. Example:
  126947. .INDENT 7.0
  126948. .INDENT 3.5
  126949. .sp
  126950. .nf
  126951. .ft C
  126952. loadbalancer:
  126953. modjk.worker_activated:
  126954. \- workers:
  126955. \- app1
  126956. \- app2
  126957. .ft P
  126958. .fi
  126959. .UNINDENT
  126960. .UNINDENT
  126961. .UNINDENT
  126962. .INDENT 0.0
  126963. .TP
  126964. .B salt.states.modjk.worker_disabled(name, workers=None, profile=u\(aqdefault\(aq)
  126965. Disable all the workers in the modjk load balancer
  126966. .sp
  126967. Example:
  126968. .INDENT 7.0
  126969. .INDENT 3.5
  126970. .sp
  126971. .nf
  126972. .ft C
  126973. loadbalancer:
  126974. modjk.worker_disabled:
  126975. \- workers:
  126976. \- app1
  126977. \- app2
  126978. .ft P
  126979. .fi
  126980. .UNINDENT
  126981. .UNINDENT
  126982. .UNINDENT
  126983. .INDENT 0.0
  126984. .TP
  126985. .B salt.states.modjk.worker_recover(name, workers=None, profile=u\(aqdefault\(aq)
  126986. Recover all the workers in the modjk load balancer
  126987. .sp
  126988. Example:
  126989. .INDENT 7.0
  126990. .INDENT 3.5
  126991. .sp
  126992. .nf
  126993. .ft C
  126994. loadbalancer:
  126995. modjk.worker_recover:
  126996. \- workers:
  126997. \- app1
  126998. \- app2
  126999. .ft P
  127000. .fi
  127001. .UNINDENT
  127002. .UNINDENT
  127003. .UNINDENT
  127004. .INDENT 0.0
  127005. .TP
  127006. .B salt.states.modjk.worker_stopped(name, workers=None, profile=u\(aqdefault\(aq)
  127007. Stop all the workers in the modjk load balancer
  127008. .sp
  127009. Example:
  127010. .INDENT 7.0
  127011. .INDENT 3.5
  127012. .sp
  127013. .nf
  127014. .ft C
  127015. loadbalancer:
  127016. modjk.worker_stopped:
  127017. \- workers:
  127018. \- app1
  127019. \- app2
  127020. .ft P
  127021. .fi
  127022. .UNINDENT
  127023. .UNINDENT
  127024. .UNINDENT
  127025. .SS salt.states.modjk_worker
  127026. .SS Manage modjk workers
  127027. .sp
  127028. Send commands to a \fBmodjk\fP load balancer via the peer system.
  127029. .sp
  127030. This module can be used with the prereq
  127031. requisite to remove/add the worker from the load balancer before
  127032. deploying/restarting service.
  127033. .sp
  127034. Mandatory Settings:
  127035. .INDENT 0.0
  127036. .IP \(bu 2
  127037. The minion needs to have permission to publish the \fBmodjk.*\fP
  127038. functions (see here for information on configuring
  127039. peer publishing permissions)
  127040. .IP \(bu 2
  127041. The modjk load balancer must be configured as stated in the \fBmodjk\fP
  127042. execution module \fBdocumentation\fP
  127043. .UNINDENT
  127044. .INDENT 0.0
  127045. .TP
  127046. .B salt.states.modjk_worker.activate(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  127047. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  127048. releases must use \fBexpr_form\fP\&.
  127049. .sp
  127050. Activate the named worker from the lbn load balancers at the targeted
  127051. minions
  127052. .sp
  127053. Example:
  127054. .INDENT 7.0
  127055. .INDENT 3.5
  127056. .sp
  127057. .nf
  127058. .ft C
  127059. disable\-before\-deploy:
  127060. modjk_worker.activate:
  127061. \- name: {{ grains[\(aqid\(aq] }}
  127062. \- lbn: application
  127063. \- target: \(aqroles:balancer\(aq
  127064. \- tgt_type: grain
  127065. .ft P
  127066. .fi
  127067. .UNINDENT
  127068. .UNINDENT
  127069. .UNINDENT
  127070. .INDENT 0.0
  127071. .TP
  127072. .B salt.states.modjk_worker.disable(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  127073. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  127074. releases must use \fBexpr_form\fP\&.
  127075. .sp
  127076. Disable the named worker from the lbn load balancers at the targeted
  127077. minions. The worker will get traffic only for current sessions and won\(aqt
  127078. get new ones.
  127079. .sp
  127080. Example:
  127081. .INDENT 7.0
  127082. .INDENT 3.5
  127083. .sp
  127084. .nf
  127085. .ft C
  127086. disable\-before\-deploy:
  127087. modjk_worker.disable:
  127088. \- name: {{ grains[\(aqid\(aq] }}
  127089. \- lbn: application
  127090. \- target: \(aqroles:balancer\(aq
  127091. \- tgt_type: grain
  127092. .ft P
  127093. .fi
  127094. .UNINDENT
  127095. .UNINDENT
  127096. .UNINDENT
  127097. .INDENT 0.0
  127098. .TP
  127099. .B salt.states.modjk_worker.stop(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  127100. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  127101. releases must use \fBexpr_form\fP\&.
  127102. .sp
  127103. Stop the named worker from the lbn load balancers at the targeted minions
  127104. The worker won\(aqt get any traffic from the lbn
  127105. .sp
  127106. Example:
  127107. .INDENT 7.0
  127108. .INDENT 3.5
  127109. .sp
  127110. .nf
  127111. .ft C
  127112. disable\-before\-deploy:
  127113. modjk_worker.stop:
  127114. \- name: {{ grains[\(aqid\(aq] }}
  127115. \- lbn: application
  127116. \- target: \(aqroles:balancer\(aq
  127117. \- tgt_type: grain
  127118. .ft P
  127119. .fi
  127120. .UNINDENT
  127121. .UNINDENT
  127122. .UNINDENT
  127123. .SS salt.states.mongodb_database
  127124. .SS Management of MongoDB Databases
  127125. .INDENT 0.0
  127126. .TP
  127127. .B depends
  127128. .INDENT 7.0
  127129. .IP \(bu 2
  127130. pymongo Python module
  127131. .UNINDENT
  127132. .UNINDENT
  127133. .sp
  127134. Only deletion is supported, creation doesn\(aqt make sense and can be done using
  127135. \fBmongodb_user.present\fP\&.
  127136. .INDENT 0.0
  127137. .TP
  127138. .B salt.states.mongodb_database.absent(name, user=None, password=None, host=None, port=None, authdb=None)
  127139. Ensure that the named database is absent. Note that creation doesn\(aqt make
  127140. sense in MongoDB.
  127141. .INDENT 7.0
  127142. .TP
  127143. .B name
  127144. The name of the database to remove
  127145. .TP
  127146. .B user
  127147. The user to connect as (must be able to create the user)
  127148. .TP
  127149. .B password
  127150. The password of the user
  127151. .TP
  127152. .B host
  127153. The host to connect to
  127154. .TP
  127155. .B port
  127156. The port to connect to
  127157. .TP
  127158. .B authdb
  127159. The database in which to authenticate
  127160. .UNINDENT
  127161. .UNINDENT
  127162. .SS salt.states.mongodb_user
  127163. .SS Management of MongoDB Users
  127164. .INDENT 0.0
  127165. .TP
  127166. .B depends
  127167. .INDENT 7.0
  127168. .IP \(bu 2
  127169. pymongo Python module
  127170. .UNINDENT
  127171. .UNINDENT
  127172. .INDENT 0.0
  127173. .TP
  127174. .B salt.states.mongodb_user.absent(name, user=None, password=None, host=None, port=None, database=u\(aqadmin\(aq, authdb=None)
  127175. Ensure that the named user is absent
  127176. .INDENT 7.0
  127177. .TP
  127178. .B name
  127179. The name of the user to remove
  127180. .TP
  127181. .B user
  127182. MongoDB user with sufficient privilege to create the user
  127183. .TP
  127184. .B password
  127185. Password for the admin user specified by the \fBuser\fP parameter
  127186. .TP
  127187. .B host
  127188. The hostname/IP address of the MongoDB server
  127189. .TP
  127190. .B port
  127191. The port on which MongoDB is listening
  127192. .TP
  127193. .B database
  127194. The database from which to remove the user specified by the \fBname\fP
  127195. parameter
  127196. .TP
  127197. .B authdb
  127198. The database in which to authenticate
  127199. .UNINDENT
  127200. .UNINDENT
  127201. .INDENT 0.0
  127202. .TP
  127203. .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)
  127204. Ensure that the user is present with the specified properties
  127205. .INDENT 7.0
  127206. .TP
  127207. .B name
  127208. The name of the user to manage
  127209. .TP
  127210. .B passwd
  127211. The password of the user to manage
  127212. .TP
  127213. .B user
  127214. MongoDB user with sufficient privilege to create the user
  127215. .TP
  127216. .B password
  127217. Password for the admin user specified with the \fBuser\fP parameter
  127218. .TP
  127219. .B host
  127220. The hostname/IP address of the MongoDB server
  127221. .TP
  127222. .B port
  127223. The port on which MongoDB is listening
  127224. .TP
  127225. .B database
  127226. The database in which to create the user
  127227. .sp
  127228. \fBNOTE:\fP
  127229. .INDENT 7.0
  127230. .INDENT 3.5
  127231. If the database doesn\(aqt exist, it will be created.
  127232. .UNINDENT
  127233. .UNINDENT
  127234. .TP
  127235. .B authdb
  127236. The database in which to authenticate
  127237. .TP
  127238. .B roles
  127239. The roles assigned to user specified with the \fBname\fP parameter
  127240. .UNINDENT
  127241. .sp
  127242. Example:
  127243. .INDENT 7.0
  127244. .INDENT 3.5
  127245. .sp
  127246. .nf
  127247. .ft C
  127248. mongouser\-myapp:
  127249. mongodb_user.present:
  127250. \- name: myapp
  127251. \- passwd: password\-of\-myapp
  127252. \- database: admin
  127253. # Connect as admin:sekrit
  127254. \- user: admin
  127255. \- password: sekrit
  127256. \- roles:
  127257. \- readWrite
  127258. \- userAdmin
  127259. \- dbOwner
  127260. .ft P
  127261. .fi
  127262. .UNINDENT
  127263. .UNINDENT
  127264. .UNINDENT
  127265. .SS salt.states.monit
  127266. .SS Monit state
  127267. .sp
  127268. Manage monit states
  127269. .INDENT 0.0
  127270. .INDENT 3.5
  127271. .sp
  127272. .nf
  127273. .ft C
  127274. monit_enable_service_monitoring:
  127275. monit.monitor:
  127276. \- name: service
  127277. monit_disable_service_monitoring:
  127278. monit.unmonitor:
  127279. \- name: service
  127280. .ft P
  127281. .fi
  127282. .UNINDENT
  127283. .UNINDENT
  127284. .sp
  127285. \fBNOTE:\fP
  127286. .INDENT 0.0
  127287. .INDENT 3.5
  127288. Use of these states require that the \fBmonit\fP
  127289. execution module is available.
  127290. .UNINDENT
  127291. .UNINDENT
  127292. .INDENT 0.0
  127293. .TP
  127294. .B salt.states.monit.monitor(name)
  127295. Get the summary from module monit and try to see if service is
  127296. being monitored. If not then monitor the service.
  127297. .UNINDENT
  127298. .INDENT 0.0
  127299. .TP
  127300. .B salt.states.monit.unmonitor(name)
  127301. Get the summary from module monit and try to see if service is
  127302. being monitored. If it is then stop monitoring the service.
  127303. .UNINDENT
  127304. .SS salt.states.mount
  127305. .SS Mounting of filesystems
  127306. .sp
  127307. Mount any type of mountable filesystem with the mounted function:
  127308. .INDENT 0.0
  127309. .INDENT 3.5
  127310. .sp
  127311. .nf
  127312. .ft C
  127313. /mnt/sdb:
  127314. mount.mounted:
  127315. \- device: /dev/sdb1
  127316. \- fstype: ext4
  127317. \- mkmnt: True
  127318. \- opts:
  127319. \- defaults
  127320. /srv/bigdata:
  127321. mount.mounted:
  127322. \- device: UUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314
  127323. \- fstype: xfs
  127324. \- opts: nobootwait,noatime,nodiratime,nobarrier,logbufs=8
  127325. \- dump: 0
  127326. \- pass_num: 2
  127327. \- persist: True
  127328. \- mkmnt: True
  127329. /var/lib/bigdata:
  127330. mount.mounted:
  127331. \- device: /srv/bigdata
  127332. \- fstype: none
  127333. \- opts: bind
  127334. \- dump: 0
  127335. \- pass_num: 0
  127336. \- persist: True
  127337. \- mkmnt: True
  127338. .ft P
  127339. .fi
  127340. .UNINDENT
  127341. .UNINDENT
  127342. .INDENT 0.0
  127343. .TP
  127344. .B salt.states.mount.fstab_absent(name, fs_file, mount_by=None, config=u\(aq/etc/fstab\(aq)
  127345. Makes sure that a fstab mount point is absent.
  127346. .INDENT 7.0
  127347. .TP
  127348. .B name
  127349. The name of block device. Can be any valid fs_spec value.
  127350. .TP
  127351. .B fs_file
  127352. Mount point (target) for the filesystem.
  127353. .TP
  127354. .B mount_by
  127355. Select the final value for fs_spec. Can be [\fBNone\fP,
  127356. \fBdevice\fP, \fBlabel\fP, \fBuuid\fP, \fBpartlabel\fP,
  127357. \fBpartuuid\fP]. If \fBNone\fP, the value for fs_spect will be the
  127358. parameter \fBname\fP, in other case will search the correct
  127359. value based on the device name. For example, for \fBuuid\fP, the
  127360. value for fs_spec will be of type \(aqUUID=xxx\(aq instead of the
  127361. device name set in \fBname\fP\&.
  127362. .TP
  127363. .B config
  127364. Place where the fstab file lives
  127365. .UNINDENT
  127366. .UNINDENT
  127367. .INDENT 0.0
  127368. .TP
  127369. .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)
  127370. Makes sure that a fstab mount point is present.
  127371. .INDENT 7.0
  127372. .TP
  127373. .B name
  127374. The name of block device. Can be any valid fs_spec value.
  127375. .TP
  127376. .B fs_file
  127377. Mount point (target) for the filesystem.
  127378. .TP
  127379. .B fs_vfstype
  127380. The type of the filesystem (e.g. ext4, xfs, btrfs, ...)
  127381. .TP
  127382. .B fs_mntops
  127383. The mount options associated with the filesystem. Default is
  127384. \fBdefaults\fP\&.
  127385. .TP
  127386. .B fs_freq
  127387. Field is used by dump to determine which fs need to be
  127388. dumped. Default is \fB0\fP
  127389. .TP
  127390. .B fs_passno
  127391. Field is used by fsck to determine the order in which
  127392. filesystem checks are done at boot time. Default is \fB0\fP
  127393. .TP
  127394. .B mount_by
  127395. Select the final value for fs_spec. Can be [\fBNone\fP,
  127396. \fBdevice\fP, \fBlabel\fP, \fBuuid\fP, \fBpartlabel\fP,
  127397. \fBpartuuid\fP]. If \fBNone\fP, the value for fs_spect will be the
  127398. parameter \fBname\fP, in other case will search the correct
  127399. value based on the device name. For example, for \fBuuid\fP, the
  127400. value for fs_spec will be of type \(aqUUID=xxx\(aq instead of the
  127401. device name set in \fBname\fP\&.
  127402. .TP
  127403. .B config
  127404. Place where the fstab file lives. Default is \fB/etc/fstab\fP
  127405. .TP
  127406. .B mount
  127407. Set if the mount should be mounted immediately. Default is
  127408. \fBTrue\fP
  127409. .TP
  127410. .B match_on
  127411. A name or list of fstab properties on which this state should
  127412. be applied. Default is \fBauto\fP, a special value indicating
  127413. to guess based on fstype. In general, \fBauto\fP matches on
  127414. name for recognized special devices and device otherwise.
  127415. .TP
  127416. .B not_change
  127417. By default, if the entry is found in the fstab file but is
  127418. different from the expected content (like different options),
  127419. the entry will be replaced with the correct content. If this
  127420. parameter is set to \fBTrue\fP and the line is found, the
  127421. original content will be preserved.
  127422. .UNINDENT
  127423. .UNINDENT
  127424. .INDENT 0.0
  127425. .TP
  127426. .B salt.states.mount.mod_watch(name, user=None, **kwargs)
  127427. The mounted watcher, called to invoke the watch command.
  127428. .sp
  127429. \fBNOTE:\fP
  127430. .INDENT 7.0
  127431. .INDENT 3.5
  127432. This state exists to support special handling of the \fBwatch\fP
  127433. requisite\&. It should not be called directly.
  127434. .sp
  127435. Parameters for this function should be set by the state being triggered.
  127436. .UNINDENT
  127437. .UNINDENT
  127438. .INDENT 7.0
  127439. .TP
  127440. .B name
  127441. The name of the mount point
  127442. .UNINDENT
  127443. .UNINDENT
  127444. .INDENT 0.0
  127445. .TP
  127446. .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)
  127447. Verify that a device is mounted
  127448. .INDENT 7.0
  127449. .TP
  127450. .B name
  127451. The path to the location where the device is to be mounted
  127452. .TP
  127453. .B device
  127454. The device name, typically the device node, such as \fB/dev/sdb1\fP
  127455. or \fBUUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314\fP or \fBLABEL=DATA\fP
  127456. .TP
  127457. .B fstype
  127458. The filesystem type, this will be \fBxfs\fP, \fBext2/3/4\fP in the case of classic
  127459. filesystems, \fBfuse\fP in the case of fuse mounts, and \fBnfs\fP in the case of nfs mounts
  127460. .TP
  127461. .B mkmnt
  127462. If the mount point is not present then the state will fail, set \fBmkmnt: True\fP
  127463. to create the mount point if it is otherwise not present
  127464. .TP
  127465. .B opts
  127466. A list object of options or a comma delimited list
  127467. .TP
  127468. .B dump
  127469. The dump value to be passed into the fstab, Default is \fB0\fP
  127470. .TP
  127471. .B pass_num
  127472. The pass value to be passed into the fstab, Default is \fB0\fP
  127473. .TP
  127474. .B config
  127475. Set an alternative location for the fstab, Default is \fB/etc/fstab\fP
  127476. .TP
  127477. .B persist
  127478. Set if the mount should be saved in the fstab, Default is \fBTrue\fP
  127479. .TP
  127480. .B mount
  127481. Set if the mount should be mounted immediately, Default is \fBTrue\fP
  127482. .TP
  127483. .B user
  127484. The account used to execute the mount; this defaults to the user salt is
  127485. running as on the minion
  127486. .TP
  127487. .B match_on
  127488. A name or list of fstab properties on which this state should be applied.
  127489. Default is \fBauto\fP, a special value indicating to guess based on fstype.
  127490. In general, \fBauto\fP matches on name for recognized special devices and
  127491. device otherwise.
  127492. .TP
  127493. .B device_name_regex
  127494. A list of device exact names or regular expressions which should
  127495. not force a remount. For example, glusterfs may be mounted with a
  127496. comma\-separated list of servers in fstab, but the /proc/self/mountinfo
  127497. will show only the first available server.
  127498. .INDENT 7.0
  127499. .INDENT 3.5
  127500. .sp
  127501. .nf
  127502. .ft C
  127503. {% set glusterfs_ip_list = [\(aq10.0.0.1\(aq, \(aq10.0.0.2\(aq, \(aq10.0.0.3\(aq] %}
  127504. mount glusterfs volume:
  127505. mount.mounted:
  127506. \- name: /mnt/glusterfs_mount_point
  127507. \- device: {{ glusterfs_ip_list|join(\(aq,\(aq) }}:/volume_name
  127508. \- fstype: glusterfs
  127509. \- opts: _netdev,rw,defaults,direct\-io\-mode=disable
  127510. \- mkmnt: True
  127511. \- persist: True
  127512. \- dump: 0
  127513. \- pass_num: 0
  127514. \- device_name_regex:
  127515. \- ({{ glusterfs_ip_list|join(\(aq|\(aq) }}):/volume_name
  127516. .ft P
  127517. .fi
  127518. .UNINDENT
  127519. .UNINDENT
  127520. .sp
  127521. New in version 2016.11.0.
  127522. .TP
  127523. .B extra_mount_invisible_options
  127524. A list of extra options that are not visible through the
  127525. \fB/proc/self/mountinfo\fP interface.
  127526. .sp
  127527. If a option is not visible through this interface it will always remount
  127528. the device. This option extends the builtin \fBmount_invisible_options\fP
  127529. list.
  127530. .TP
  127531. .B extra_mount_invisible_keys
  127532. A list of extra key options that are not visible through the
  127533. \fB/proc/self/mountinfo\fP interface.
  127534. .sp
  127535. If a key option is not visible through this interface it will always
  127536. remount the device. This option extends the builtin
  127537. \fBmount_invisible_keys\fP list.
  127538. .sp
  127539. A good example for a key option is the password option:
  127540. .INDENT 7.0
  127541. .INDENT 3.5
  127542. .sp
  127543. .nf
  127544. .ft C
  127545. password=badsecret
  127546. .ft P
  127547. .fi
  127548. .UNINDENT
  127549. .UNINDENT
  127550. .TP
  127551. .B extra_mount_ignore_fs_keys
  127552. A dict of filesystem options which should not force a remount. This will update
  127553. the internal dictionary. The dict should look like this:
  127554. .INDENT 7.0
  127555. .INDENT 3.5
  127556. .sp
  127557. .nf
  127558. .ft C
  127559. {
  127560. \(aqramfs\(aq: [\(aqsize\(aq]
  127561. }
  127562. .ft P
  127563. .fi
  127564. .UNINDENT
  127565. .UNINDENT
  127566. .TP
  127567. .B extra_mount_translate_options
  127568. A dict of mount options that gets translated when mounted. To prevent a remount
  127569. add additional options to the default dictionary. This will update the internal
  127570. dictionary. The dictionary should look like this:
  127571. .INDENT 7.0
  127572. .INDENT 3.5
  127573. .sp
  127574. .nf
  127575. .ft C
  127576. {
  127577. \(aqtcp\(aq: \(aqproto=tcp\(aq,
  127578. \(aqudp\(aq: \(aqproto=udp\(aq
  127579. }
  127580. .ft P
  127581. .fi
  127582. .UNINDENT
  127583. .UNINDENT
  127584. .TP
  127585. .B hidden_opts
  127586. A list of mount options that will be ignored when considering a remount
  127587. as part of the state application
  127588. .sp
  127589. New in version 2015.8.2.
  127590. .UNINDENT
  127591. .UNINDENT
  127592. .INDENT 0.0
  127593. .TP
  127594. .B salt.states.mount.swap(name, persist=True, config=u\(aq/etc/fstab\(aq)
  127595. Activates a swap device
  127596. .INDENT 7.0
  127597. .INDENT 3.5
  127598. .sp
  127599. .nf
  127600. .ft C
  127601. /root/swapfile:
  127602. mount.swap
  127603. .ft P
  127604. .fi
  127605. .UNINDENT
  127606. .UNINDENT
  127607. .sp
  127608. \fBNOTE:\fP
  127609. .INDENT 7.0
  127610. .INDENT 3.5
  127611. \fBswap\fP does not currently support LABEL
  127612. .UNINDENT
  127613. .UNINDENT
  127614. .UNINDENT
  127615. .INDENT 0.0
  127616. .TP
  127617. .B salt.states.mount.unmounted(name, device=None, config=u\(aq/etc/fstab\(aq, persist=False, user=None, **kwargs)
  127618. New in version 0.17.0.
  127619. .sp
  127620. Verify that a device is not mounted
  127621. .INDENT 7.0
  127622. .TP
  127623. .B name
  127624. The path to the location where the device is to be unmounted from
  127625. .TP
  127626. .B device
  127627. The device to be unmounted. This is optional because the device could
  127628. be mounted in multiple places.
  127629. .sp
  127630. New in version 2015.5.0.
  127631. .TP
  127632. .B config
  127633. Set an alternative location for the fstab, Default is \fB/etc/fstab\fP
  127634. .TP
  127635. .B persist
  127636. Set if the mount should be purged from the fstab, Default is \fBFalse\fP
  127637. .TP
  127638. .B user
  127639. The user to own the mount; this defaults to the user salt is
  127640. running as on the minion
  127641. .UNINDENT
  127642. .UNINDENT
  127643. .SS salt.states.mssql_database module
  127644. .SS Management of Microsoft SQLServer Databases
  127645. .sp
  127646. The mssql_database module is used to create
  127647. and manage SQL Server Databases
  127648. .INDENT 0.0
  127649. .INDENT 3.5
  127650. .sp
  127651. .nf
  127652. .ft C
  127653. yolo:
  127654. mssql_database.present
  127655. .ft P
  127656. .fi
  127657. .UNINDENT
  127658. .UNINDENT
  127659. .INDENT 0.0
  127660. .TP
  127661. .B salt.states.mssql_database.absent(name, **kwargs)
  127662. Ensure that the named database is absent
  127663. .INDENT 7.0
  127664. .TP
  127665. .B name
  127666. The name of the database to remove
  127667. .UNINDENT
  127668. .UNINDENT
  127669. .INDENT 0.0
  127670. .TP
  127671. .B salt.states.mssql_database.present(name, containment=u\(aqNONE\(aq, options=None, **kwargs)
  127672. Ensure that the named database is present with the specified options
  127673. .INDENT 7.0
  127674. .TP
  127675. .B name
  127676. The name of the database to manage
  127677. .TP
  127678. .B containment
  127679. Defaults to NONE
  127680. .TP
  127681. .B options
  127682. Can be a list of strings, a dictionary, or a list of dictionaries
  127683. .UNINDENT
  127684. .UNINDENT
  127685. .SS salt.states.mssql_login module
  127686. .SS Management of Microsoft SQLServer Logins
  127687. .sp
  127688. The mssql_login module is used to create
  127689. and manage SQL Server Logins
  127690. .INDENT 0.0
  127691. .INDENT 3.5
  127692. .sp
  127693. .nf
  127694. .ft C
  127695. frank:
  127696. mssql_login.present
  127697. \- domain: mydomain
  127698. .ft P
  127699. .fi
  127700. .UNINDENT
  127701. .UNINDENT
  127702. .INDENT 0.0
  127703. .TP
  127704. .B salt.states.mssql_login.absent(name, **kwargs)
  127705. Ensure that the named login is absent
  127706. .INDENT 7.0
  127707. .TP
  127708. .B name
  127709. The name of the login to remove
  127710. .UNINDENT
  127711. .UNINDENT
  127712. .INDENT 0.0
  127713. .TP
  127714. .B salt.states.mssql_login.present(name, password=None, domain=None, server_roles=None, options=None, **kwargs)
  127715. Checks existence of the named login.
  127716. If not present, creates the login with the specified roles and options.
  127717. .INDENT 7.0
  127718. .TP
  127719. .B name
  127720. The name of the login to manage
  127721. .TP
  127722. .B password
  127723. Creates a SQL Server authentication login
  127724. Since hashed passwords are varbinary values, if the
  127725. new_login_password is \(aqlong\(aq, it will be considered
  127726. to be HASHED.
  127727. .TP
  127728. .B domain
  127729. Creates a Windows authentication login.
  127730. Needs to be NetBIOS domain or hostname
  127731. .TP
  127732. .B server_roles
  127733. Add this login to all the server roles in the list
  127734. .TP
  127735. .B options
  127736. Can be a list of strings, a dictionary, or a list of dictionaries
  127737. .UNINDENT
  127738. .UNINDENT
  127739. .SS salt.states.mssql_role module
  127740. .SS Management of Microsoft SQLServer Databases
  127741. .sp
  127742. The mssql_role module is used to create
  127743. and manage SQL Server Roles
  127744. .INDENT 0.0
  127745. .INDENT 3.5
  127746. .sp
  127747. .nf
  127748. .ft C
  127749. yolo:
  127750. mssql_role.present
  127751. .ft P
  127752. .fi
  127753. .UNINDENT
  127754. .UNINDENT
  127755. .INDENT 0.0
  127756. .TP
  127757. .B salt.states.mssql_role.absent(name, **kwargs)
  127758. Ensure that the named database is absent
  127759. .INDENT 7.0
  127760. .TP
  127761. .B name
  127762. The name of the database to remove
  127763. .UNINDENT
  127764. .UNINDENT
  127765. .INDENT 0.0
  127766. .TP
  127767. .B salt.states.mssql_role.present(name, owner=None, grants=None, **kwargs)
  127768. Ensure that the named database is present with the specified options
  127769. .INDENT 7.0
  127770. .TP
  127771. .B name
  127772. The name of the database to manage
  127773. .TP
  127774. .B owner
  127775. Adds owner using AUTHORIZATION option
  127776. .TP
  127777. .B Grants
  127778. Can only be a list of strings
  127779. .UNINDENT
  127780. .UNINDENT
  127781. .SS salt.states.mssql_user module
  127782. .SS Management of Microsoft SQLServer Users
  127783. .sp
  127784. The mssql_user module is used to create
  127785. and manage SQL Server Users
  127786. .INDENT 0.0
  127787. .INDENT 3.5
  127788. .sp
  127789. .nf
  127790. .ft C
  127791. frank:
  127792. mssql_user.present:
  127793. \- database: yolo
  127794. .ft P
  127795. .fi
  127796. .UNINDENT
  127797. .UNINDENT
  127798. .INDENT 0.0
  127799. .TP
  127800. .B salt.states.mssql_user.absent(name, **kwargs)
  127801. Ensure that the named user is absent
  127802. .INDENT 7.0
  127803. .TP
  127804. .B name
  127805. The username of the user to remove
  127806. .UNINDENT
  127807. .UNINDENT
  127808. .INDENT 0.0
  127809. .TP
  127810. .B salt.states.mssql_user.present(name, login=None, domain=None, database=None, roles=None, options=None, **kwargs)
  127811. Checks existence of the named user.
  127812. If not present, creates the user with the specified roles and options.
  127813. .INDENT 7.0
  127814. .TP
  127815. .B name
  127816. The name of the user to manage
  127817. .TP
  127818. .B login
  127819. If not specified, will be created WITHOUT LOGIN
  127820. .TP
  127821. .B domain
  127822. Creates a Windows authentication user.
  127823. Needs to be NetBIOS domain or hostname
  127824. .TP
  127825. .B database
  127826. The database of the user (not the login)
  127827. .TP
  127828. .B roles
  127829. Add this user to all the roles in the list
  127830. .TP
  127831. .B options
  127832. Can be a list of strings, a dictionary, or a list of dictionaries
  127833. .UNINDENT
  127834. .UNINDENT
  127835. .SS salt.states.msteams module
  127836. .SS Send a message card to Microsoft Teams
  127837. .sp
  127838. This state is useful for sending messages to Teams during state runs.
  127839. .sp
  127840. New in version 2017.7.0.
  127841. .INDENT 0.0
  127842. .INDENT 3.5
  127843. .sp
  127844. .nf
  127845. .ft C
  127846. teams\-message:
  127847. msteams.post_card:
  127848. \- message: \(aqThis state was executed successfully.\(aq
  127849. \- hook_url: https://outlook.office.com/webhook/837
  127850. .ft P
  127851. .fi
  127852. .UNINDENT
  127853. .UNINDENT
  127854. .sp
  127855. The hook_url can be specified in the master or minion configuration like below:
  127856. .INDENT 0.0
  127857. .INDENT 3.5
  127858. .sp
  127859. .nf
  127860. .ft C
  127861. msteams:
  127862. hook_url: https://outlook.office.com/webhook/837
  127863. .ft P
  127864. .fi
  127865. .UNINDENT
  127866. .UNINDENT
  127867. .INDENT 0.0
  127868. .TP
  127869. .B salt.states.msteams.post_card(name, message, hook_url=None, title=None, theme_color=None)
  127870. Send a message to a Microsft Teams channel
  127871. .INDENT 7.0
  127872. .INDENT 3.5
  127873. .sp
  127874. .nf
  127875. .ft C
  127876. send\-msteams\-message:
  127877. msteams.post_card:
  127878. \- message: \(aqThis state was executed successfully.\(aq
  127879. \- hook_url: https://outlook.office.com/webhook/837
  127880. .ft P
  127881. .fi
  127882. .UNINDENT
  127883. .UNINDENT
  127884. .sp
  127885. The following parameters are required:
  127886. .INDENT 7.0
  127887. .TP
  127888. .B message
  127889. The message that is to be sent to the MS Teams channel.
  127890. .UNINDENT
  127891. .sp
  127892. The following parameters are optional:
  127893. .INDENT 7.0
  127894. .TP
  127895. .B hook_url
  127896. The webhook URL given configured in Teams interface,
  127897. if not specified in the configuration options of master or minion.
  127898. .TP
  127899. .B title
  127900. The title for the card posted to the channel
  127901. .TP
  127902. .B theme_color
  127903. A hex code for the desired highlight color
  127904. .UNINDENT
  127905. .UNINDENT
  127906. .SS salt.states.mysql_database
  127907. .SS Management of MySQL databases (schemas)
  127908. .INDENT 0.0
  127909. .TP
  127910. .B depends
  127911. .INDENT 7.0
  127912. .IP \(bu 2
  127913. MySQLdb Python module
  127914. .UNINDENT
  127915. .TP
  127916. .B configuration
  127917. See \fBsalt.modules.mysql\fP for setup instructions.
  127918. .UNINDENT
  127919. .sp
  127920. The mysql_database module is used to create and manage MySQL databases.
  127921. Databases can be set as either absent or present.
  127922. .INDENT 0.0
  127923. .INDENT 3.5
  127924. .sp
  127925. .nf
  127926. .ft C
  127927. frank:
  127928. mysql_database.present
  127929. .ft P
  127930. .fi
  127931. .UNINDENT
  127932. .UNINDENT
  127933. .INDENT 0.0
  127934. .TP
  127935. .B salt.states.mysql_database.absent(name, **connection_args)
  127936. Ensure that the named database is absent
  127937. .INDENT 7.0
  127938. .TP
  127939. .B name
  127940. The name of the database to remove
  127941. .UNINDENT
  127942. .UNINDENT
  127943. .INDENT 0.0
  127944. .TP
  127945. .B salt.states.mysql_database.present(name, character_set=None, collate=None, **connection_args)
  127946. Ensure that the named database is present with the specified properties
  127947. .INDENT 7.0
  127948. .TP
  127949. .B name
  127950. The name of the database to manage
  127951. .UNINDENT
  127952. .UNINDENT
  127953. .SS salt.states.mysql_grants
  127954. .SS Management of MySQL grants (user permissions)
  127955. .INDENT 0.0
  127956. .TP
  127957. .B depends
  127958. .INDENT 7.0
  127959. .IP \(bu 2
  127960. MySQLdb Python module
  127961. .UNINDENT
  127962. .TP
  127963. .B configuration
  127964. See \fBsalt.modules.mysql\fP for setup instructions.
  127965. .UNINDENT
  127966. .sp
  127967. The mysql_grants module is used to grant and revoke MySQL permissions.
  127968. .sp
  127969. The \fBname\fP you pass in purely symbolic and does not have anything to do
  127970. with the grant itself.
  127971. .sp
  127972. The \fBdatabase\fP parameter needs to specify a \(aqpriv_level\(aq in the same
  127973. specification as defined in the MySQL documentation:
  127974. .INDENT 0.0
  127975. .IP \(bu 2
  127976. *
  127977. .IP \(bu 2
  127978. *.*
  127979. .IP \(bu 2
  127980. db_name.*
  127981. .IP \(bu 2
  127982. db_name.tbl_name
  127983. .IP \(bu 2
  127984. etc...
  127985. .UNINDENT
  127986. .sp
  127987. This state is not able to set password for the permission from the
  127988. specified host. See \fBsalt.states.mysql_user\fP for further
  127989. instructions.
  127990. .INDENT 0.0
  127991. .INDENT 3.5
  127992. .sp
  127993. .nf
  127994. .ft C
  127995. frank_exampledb:
  127996. mysql_grants.present:
  127997. \- grant: select,insert,update
  127998. \- database: exampledb.*
  127999. \- user: frank
  128000. \- host: localhost
  128001. frank_otherdb:
  128002. mysql_grants.present:
  128003. \- grant: all privileges
  128004. \- database: otherdb.*
  128005. \- user: frank
  128006. restricted_singletable:
  128007. mysql_grants.present:
  128008. \- grant: select
  128009. \- database: somedb.sometable
  128010. \- user: joe
  128011. .ft P
  128012. .fi
  128013. .UNINDENT
  128014. .UNINDENT
  128015. .INDENT 0.0
  128016. .TP
  128017. .B salt.states.mysql_grants.absent(name, grant=None, database=None, user=None, host=u\(aqlocalhost\(aq, grant_option=False, escape=True, **connection_args)
  128018. Ensure that the grant is absent
  128019. .INDENT 7.0
  128020. .TP
  128021. .B name
  128022. The name (key) of the grant to add
  128023. .TP
  128024. .B grant
  128025. The grant priv_type (i.e. select,insert,update OR all privileges)
  128026. .TP
  128027. .B database
  128028. The database priv_level (i.e. db.tbl OR db.*)
  128029. .TP
  128030. .B user
  128031. The user to apply the grant to
  128032. .TP
  128033. .B host
  128034. The network/host that the grant should apply to
  128035. .UNINDENT
  128036. .UNINDENT
  128037. .INDENT 0.0
  128038. .TP
  128039. .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)
  128040. Ensure that the grant is present with the specified properties
  128041. .INDENT 7.0
  128042. .TP
  128043. .B name
  128044. The name (key) of the grant to add
  128045. .TP
  128046. .B grant
  128047. The grant priv_type (i.e. select,insert,update OR all privileges)
  128048. .TP
  128049. .B database
  128050. The database priv_level (i.e. db.tbl OR db.*)
  128051. .TP
  128052. .B user
  128053. The user to apply the grant to
  128054. .TP
  128055. .B host
  128056. The network/host that the grant should apply to
  128057. .TP
  128058. .B grant_option
  128059. Adds the WITH GRANT OPTION to the defined grant. Default is \fBFalse\fP
  128060. .TP
  128061. .B escape
  128062. Defines if the database value gets escaped or not. Default is \fBTrue\fP
  128063. .TP
  128064. .B revoke_first
  128065. By default, MySQL will not do anything if you issue a command to grant
  128066. privileges that are more restrictive than what\(aqs already in place. This
  128067. effectively means that you cannot downgrade permissions without first
  128068. revoking permissions applied to a db.table/user pair first.
  128069. .sp
  128070. To have Salt forcibly revoke perms before applying a new grant, enable
  128071. the \(aqrevoke_first options.
  128072. .sp
  128073. WARNING: This will \fIremove\fP permissions for a database before attempting
  128074. to apply new permissions. There is no guarantee that new permissions
  128075. will be applied correctly which can leave your database security in an
  128076. unknown and potentially dangerous state.
  128077. Use with caution!
  128078. .sp
  128079. Default is \fBFalse\fP
  128080. .TP
  128081. .B ssl_option
  128082. Adds the specified ssl options for the connecting user as requirements for
  128083. this grant. Value is a list of single\-element dicts corresponding to the
  128084. list of ssl options to use.
  128085. .sp
  128086. Possible key/value pairings for the dicts in the value:
  128087. .INDENT 7.0
  128088. .INDENT 3.5
  128089. .sp
  128090. .nf
  128091. .ft C
  128092. \- SSL: True
  128093. \- X509: True
  128094. \- SUBJECT: <subject>
  128095. \- ISSUER: <issuer>
  128096. \- CIPHER: <cipher>
  128097. .ft P
  128098. .fi
  128099. .UNINDENT
  128100. .UNINDENT
  128101. .sp
  128102. The non\-boolean ssl options take a string as their values, which should
  128103. be an appropriate value as specified by the MySQL documentation for these
  128104. options.
  128105. .sp
  128106. Default is \fBFalse\fP (no ssl options will be used)
  128107. .UNINDENT
  128108. .UNINDENT
  128109. .SS salt.states.neutron_network
  128110. .SS Management of OpenStack Neutron Networks
  128111. .sp
  128112. New in version 2018.3.0.
  128113. .INDENT 0.0
  128114. .TP
  128115. .B depends
  128116. shade
  128117. .TP
  128118. .B configuration
  128119. see \fBsalt.modules.neutronng\fP for setup instructions
  128120. .UNINDENT
  128121. .sp
  128122. Example States
  128123. .INDENT 0.0
  128124. .INDENT 3.5
  128125. .sp
  128126. .nf
  128127. .ft C
  128128. create network:
  128129. neutron_network.present:
  128130. \- name: network1
  128131. delete network:
  128132. neutron_network.absent:
  128133. \- name: network1
  128134. create network with optional params:
  128135. neutron_network.present:
  128136. \- name: network1
  128137. \- vlan: 200
  128138. \- shared: False
  128139. \- external: False
  128140. \- project: project1
  128141. .ft P
  128142. .fi
  128143. .UNINDENT
  128144. .UNINDENT
  128145. .INDENT 0.0
  128146. .TP
  128147. .B salt.states.neutron_network.absent(name, auth=None, **kwargs)
  128148. Ensure a network does not exists
  128149. .INDENT 7.0
  128150. .TP
  128151. .B name
  128152. Name of the network
  128153. .UNINDENT
  128154. .UNINDENT
  128155. .INDENT 0.0
  128156. .TP
  128157. .B salt.states.neutron_network.present(name, auth=None, **kwargs)
  128158. Ensure a network exists and is up\-to\-date
  128159. .INDENT 7.0
  128160. .TP
  128161. .B name
  128162. Name of the network
  128163. .TP
  128164. .B provider
  128165. A dict of network provider options.
  128166. .TP
  128167. .B shared
  128168. Set the network as shared.
  128169. .TP
  128170. .B external
  128171. Whether this network is externally accessible.
  128172. .TP
  128173. .B admin_state_up
  128174. Set the network administrative state to up.
  128175. .TP
  128176. .B vlan
  128177. Vlan ID. Alias for provider
  128178. .INDENT 7.0
  128179. .IP \(bu 2
  128180. physical_network: provider
  128181. .IP \(bu 2
  128182. network_type: vlan
  128183. .IP \(bu 2
  128184. segmentation_id: (vlan id)
  128185. .UNINDENT
  128186. .UNINDENT
  128187. .UNINDENT
  128188. .SS salt.states.neutron_secgroup
  128189. .SS Management of OpenStack Neutron Security Groups
  128190. .sp
  128191. New in version 2018.3.0.
  128192. .INDENT 0.0
  128193. .TP
  128194. .B depends
  128195. shade
  128196. .TP
  128197. .B configuration
  128198. see \fBsalt.modules.neutronng\fP for setup instructions
  128199. .UNINDENT
  128200. .sp
  128201. Example States
  128202. .INDENT 0.0
  128203. .INDENT 3.5
  128204. .sp
  128205. .nf
  128206. .ft C
  128207. create security group;
  128208. neutron_secgroup.present:
  128209. \- name: security_group1
  128210. \- description: "Very Secure Security Group"
  128211. delete security group:
  128212. neutron_secgroup.absent:
  128213. \- name_or_id: security_group1
  128214. \- project_name: Project1
  128215. create security group with optional params:
  128216. neutron_secgroup.present:
  128217. \- name: security_group1
  128218. \- description: "Very Secure Security Group"
  128219. \- project_id: 1dcac318a83b4610b7a7f7ba01465548
  128220. create security group with optional params:
  128221. neutron_secgroup.present:
  128222. \- name: security_group1
  128223. \- description: "Very Secure Security Group"
  128224. \- project_name: Project1
  128225. .ft P
  128226. .fi
  128227. .UNINDENT
  128228. .UNINDENT
  128229. .INDENT 0.0
  128230. .TP
  128231. .B salt.states.neutron_secgroup.absent(name, auth=None, **kwargs)
  128232. Ensure a security group does not exist
  128233. .INDENT 7.0
  128234. .TP
  128235. .B name
  128236. Name of the security group
  128237. .UNINDENT
  128238. .UNINDENT
  128239. .INDENT 0.0
  128240. .TP
  128241. .B salt.states.neutron_secgroup.present(name, auth=None, **kwargs)
  128242. Ensure a security group exists.
  128243. .sp
  128244. You can supply either project_name or project_id.
  128245. .sp
  128246. Creating a default security group will not show up as a change;
  128247. it gets created through the lookup process.
  128248. .INDENT 7.0
  128249. .TP
  128250. .B name
  128251. Name of the security group
  128252. .TP
  128253. .B description
  128254. Description of the security group
  128255. .TP
  128256. .B project_name
  128257. Name of Project
  128258. .TP
  128259. .B project_id
  128260. ID of Project
  128261. .UNINDENT
  128262. .UNINDENT
  128263. .SS salt.states.neutron_secgroup_rule
  128264. .SS Management of OpenStack Neutron Security Group Rules
  128265. .sp
  128266. New in version 2018.3.0.
  128267. .INDENT 0.0
  128268. .TP
  128269. .B depends
  128270. shade
  128271. .TP
  128272. .B configuration
  128273. see \fBsalt.modules.neutronng\fP for setup instructions
  128274. .UNINDENT
  128275. .sp
  128276. Example States
  128277. .INDENT 0.0
  128278. .INDENT 3.5
  128279. .sp
  128280. .nf
  128281. .ft C
  128282. create security group rule:
  128283. neutron_secgroup_rule.present:
  128284. \- name: security_group1
  128285. \- project_name: Project1
  128286. \- protocol: icmp
  128287. delete security group:
  128288. neutron_secgroup_rule.absent:
  128289. \- name_or_id: security_group1
  128290. create security group with optional params:
  128291. neutron_secgroup_rule.present:
  128292. \- name: security_group1
  128293. \- description: "Very Secure Security Group"
  128294. \- project_id: 1dcac318a83b4610b7a7f7ba01465548
  128295. .ft P
  128296. .fi
  128297. .UNINDENT
  128298. .UNINDENT
  128299. .INDENT 0.0
  128300. .TP
  128301. .B salt.states.neutron_secgroup_rule.absent(name, auth=None, **kwargs)
  128302. Ensure a security group rule does not exist
  128303. .INDENT 7.0
  128304. .TP
  128305. .B name
  128306. name or id of the security group rule to delete
  128307. .TP
  128308. .B rule_id
  128309. uuid of the rule to delete
  128310. .TP
  128311. .B project_id
  128312. id of project to delete rule from
  128313. .UNINDENT
  128314. .UNINDENT
  128315. .INDENT 0.0
  128316. .TP
  128317. .B salt.states.neutron_secgroup_rule.present(name, auth=None, **kwargs)
  128318. Ensure a security group rule exists
  128319. .INDENT 7.0
  128320. .TP
  128321. .B defaults: port_range_min=None, port_range_max=None, protocol=None,
  128322. remote_ip_prefix=None, remote_group_id=None, direction=\(aqingress\(aq,
  128323. ethertype=\(aqIPv4\(aq, project_id=None
  128324. .TP
  128325. .B name
  128326. Name of the security group to associate with this rule
  128327. .TP
  128328. .B project_name
  128329. Name of the project associated with the security group
  128330. .TP
  128331. .B protocol
  128332. The protocol that is matched by the security group rule.
  128333. Valid values are None, tcp, udp, and icmp.
  128334. .UNINDENT
  128335. .UNINDENT
  128336. .SS salt.states.neutron_subnet
  128337. .SS Management of OpenStack Neutron Subnets
  128338. .sp
  128339. New in version 2018.3.0.
  128340. .INDENT 0.0
  128341. .TP
  128342. .B depends
  128343. shade
  128344. .TP
  128345. .B configuration
  128346. see \fBsalt.modules.neutronng\fP for setup instructions
  128347. .UNINDENT
  128348. .sp
  128349. Example States
  128350. .INDENT 0.0
  128351. .INDENT 3.5
  128352. .sp
  128353. .nf
  128354. .ft C
  128355. create subnet:
  128356. neutron_subnet.present:
  128357. \- name: subnet1
  128358. \- network_name_or_id: network1
  128359. \- cidr: 192.168.199.0/24
  128360. delete subnet:
  128361. neutron_subnet.absent:
  128362. \- name: subnet2
  128363. create subnet with optional params:
  128364. neutron_subnet.present:
  128365. \- name: subnet1
  128366. \- network_name_or_id: network1
  128367. \- enable_dhcp: True
  128368. \- cidr: 192.168.199.0/24
  128369. \- allocation_pools:
  128370. \- start: 192.168.199.5
  128371. end: 192.168.199.250
  128372. \- host_routes:
  128373. \- destination: 192.168..0.0/24
  128374. nexthop: 192.168.0.1
  128375. \- gateway_ip: 192.168.199.1
  128376. \- dns_nameservers:
  128377. \- 8.8.8.8
  128378. \- 8.8.8.7
  128379. create ipv6 subnet:
  128380. neutron_subnet.present:
  128381. \- name: v6subnet1
  128382. \- network_name_or_id: network1
  128383. \- ip_version: 6
  128384. .ft P
  128385. .fi
  128386. .UNINDENT
  128387. .UNINDENT
  128388. .INDENT 0.0
  128389. .TP
  128390. .B salt.states.neutron_subnet.absent(name, auth=None)
  128391. Ensure a subnet does not exists
  128392. .INDENT 7.0
  128393. .TP
  128394. .B name
  128395. Name of the subnet
  128396. .UNINDENT
  128397. .UNINDENT
  128398. .INDENT 0.0
  128399. .TP
  128400. .B salt.states.neutron_subnet.present(name, auth=None, **kwargs)
  128401. Ensure a subnet exists and is up\-to\-date
  128402. .INDENT 7.0
  128403. .TP
  128404. .B name
  128405. Name of the subnet
  128406. .TP
  128407. .B network_name_or_id
  128408. The unique name or ID of the attached network.
  128409. If a non\-unique name is supplied, an exception is raised.
  128410. .TP
  128411. .B allocation_pools
  128412. A list of dictionaries of the start and end addresses
  128413. for the allocation pools
  128414. .TP
  128415. .B gateway_ip
  128416. The gateway IP address.
  128417. .TP
  128418. .B dns_nameservers
  128419. A list of DNS name servers for the subnet.
  128420. .TP
  128421. .B host_routes
  128422. A list of host route dictionaries for the subnet.
  128423. .TP
  128424. .B ipv6_ra_mode
  128425. IPv6 Router Advertisement mode.
  128426. Valid values are: ‘dhcpv6\-stateful’, ‘dhcpv6\-stateless’, or ‘slaac’.
  128427. .TP
  128428. .B ipv6_address_mode
  128429. IPv6 address mode.
  128430. Valid values are: ‘dhcpv6\-stateful’, ‘dhcpv6\-stateless’, or ‘slaac’.
  128431. .UNINDENT
  128432. .UNINDENT
  128433. .SS salt.states.nexus module
  128434. .sp
  128435. This state downloads artifacts from Nexus 3.x.
  128436. .sp
  128437. New in version 2018.3.0.
  128438. .INDENT 0.0
  128439. .TP
  128440. .B salt.states.nexus.downloaded(name, artifact, target_dir=u\(aq/tmp\(aq, target_file=None)
  128441. Ensures that the artifact from nexus exists at given location. If it doesn\(aqt exist, then
  128442. it will be downloaded. If it already exists then the checksum of existing file is checked
  128443. against checksum in nexus. If it is different then the step will fail.
  128444. .INDENT 7.0
  128445. .TP
  128446. .B artifact
  128447. Details of the artifact to be downloaded from nexus. Various options are:
  128448. .INDENT 7.0
  128449. .IP \(bu 2
  128450. nexus_url: URL of the nexus instance
  128451. .IP \(bu 2
  128452. repository: Repository in nexus
  128453. .IP \(bu 2
  128454. artifact_id: Artifact ID
  128455. .IP \(bu 2
  128456. group_id: Group ID
  128457. .IP \(bu 2
  128458. packaging: Packaging
  128459. .IP \(bu 2
  128460. classifier: Classifier
  128461. .IP \(bu 2
  128462. .INDENT 2.0
  128463. .TP
  128464. .B version: Version
  128465. One of the following:
  128466. \- Version to download
  128467. \- \fBlatest\fP \- Download the latest release of this artifact
  128468. \- \fBlatest_snapshot\fP \- Download the latest snapshot for this artifact
  128469. .UNINDENT
  128470. .IP \(bu 2
  128471. username: nexus username
  128472. .IP \(bu 2
  128473. password: nexus password
  128474. .UNINDENT
  128475. .TP
  128476. .B target_dir
  128477. Directory where the artifact should be downloaded. By default it is downloaded to /tmp directory.
  128478. .TP
  128479. .B target_file
  128480. Target file to download artifact to. By default file name is resolved by nexus.
  128481. .UNINDENT
  128482. .sp
  128483. An example to download an artifact to a specific file:
  128484. .INDENT 7.0
  128485. .INDENT 3.5
  128486. .sp
  128487. .nf
  128488. .ft C
  128489. jboss_module_downloaded:
  128490. nexus.downloaded:
  128491. \- artifact:
  128492. nexus_url: http://nexus.intranet.example.com/repository
  128493. repository: \(aqlibs\-release\-local\(aq
  128494. artifact_id: \(aqmodule\(aq
  128495. group_id: \(aqcom.company.module\(aq
  128496. packaging: \(aqjar\(aq
  128497. classifier: \(aqsources\(aq
  128498. version: \(aq1.0\(aq
  128499. \- target_file: /opt/jboss7/modules/com/company/lib/module.jar
  128500. .ft P
  128501. .fi
  128502. .UNINDENT
  128503. .UNINDENT
  128504. .sp
  128505. Download artifact to the folder (automatically resolves file name):
  128506. .INDENT 7.0
  128507. .INDENT 3.5
  128508. .sp
  128509. .nf
  128510. .ft C
  128511. maven_artifact_downloaded:
  128512. nexus.downloaded:
  128513. \- artifact:
  128514. nexus_url: http://nexus.intranet.example.com/repository
  128515. repository: \(aqmaven\-releases\(aq
  128516. artifact_id: \(aqmodule\(aq
  128517. group_id: \(aqcom.company.module\(aq
  128518. packaging: \(aqzip\(aq
  128519. classifier: \(aqdist\(aq
  128520. version: \(aq1.0\(aq
  128521. \- target_dir: /opt/maven/modules/com/company/release
  128522. .ft P
  128523. .fi
  128524. .UNINDENT
  128525. .UNINDENT
  128526. .UNINDENT
  128527. .SS salt.states.npm
  128528. .SS Installation of NPM Packages
  128529. .sp
  128530. These states manage the installed packages for node.js using the Node Package
  128531. Manager (npm). Note that npm must be installed for these states to be
  128532. available, so npm states should include a requisite to a pkg.installed state
  128533. for the package which provides npm (simply \fBnpm\fP in most cases). Example:
  128534. .INDENT 0.0
  128535. .INDENT 3.5
  128536. .sp
  128537. .nf
  128538. .ft C
  128539. npm:
  128540. pkg.installed
  128541. yaml:
  128542. npm.installed:
  128543. \- require:
  128544. \- pkg: npm
  128545. .ft P
  128546. .fi
  128547. .UNINDENT
  128548. .UNINDENT
  128549. .INDENT 0.0
  128550. .TP
  128551. .B salt.states.npm.bootstrap(name, user=None, silent=True)
  128552. Bootstraps a node.js application.
  128553. .sp
  128554. Will execute \(aqnpm install \-\-json\(aq on the specified directory.
  128555. .INDENT 7.0
  128556. .TP
  128557. .B user
  128558. The user to run NPM with
  128559. .sp
  128560. New in version 0.17.0.
  128561. .UNINDENT
  128562. .UNINDENT
  128563. .INDENT 0.0
  128564. .TP
  128565. .B salt.states.npm.cache_cleaned(name=None, user=None, force=False)
  128566. Ensure that the given package is not cached.
  128567. .sp
  128568. If no package is specified, this ensures the entire cache is cleared.
  128569. .INDENT 7.0
  128570. .TP
  128571. .B name
  128572. The name of the package to remove from the cache, or None for all packages
  128573. .TP
  128574. .B user
  128575. The user to run NPM with
  128576. .TP
  128577. .B force
  128578. Force cleaning of cache. Required for npm@5 and greater
  128579. .sp
  128580. New in version 2016.11.6.
  128581. .UNINDENT
  128582. .UNINDENT
  128583. .INDENT 0.0
  128584. .TP
  128585. .B salt.states.npm.installed(name, pkgs=None, dir=None, user=None, force_reinstall=False, registry=None, env=None)
  128586. Verify that the given package is installed and is at the correct version
  128587. (if specified).
  128588. .INDENT 7.0
  128589. .INDENT 3.5
  128590. .sp
  128591. .nf
  128592. .ft C
  128593. coffee\-script:
  128594. npm.installed:
  128595. \- user: someuser
  128596. coffee\-script@1.0.1:
  128597. npm.installed: []
  128598. .ft P
  128599. .fi
  128600. .UNINDENT
  128601. .UNINDENT
  128602. .INDENT 7.0
  128603. .TP
  128604. .B name
  128605. The package to install
  128606. .sp
  128607. Changed in version 2014.7.2: This parameter is no longer lowercased by salt so that
  128608. case\-sensitive NPM package names will work.
  128609. .TP
  128610. .B pkgs
  128611. A list of packages to install with a single npm invocation; specifying
  128612. this argument will ignore the \fBname\fP argument
  128613. .sp
  128614. New in version 2014.7.0.
  128615. .TP
  128616. .B dir
  128617. The target directory in which to install the package, or None for
  128618. global installation
  128619. .TP
  128620. .B user
  128621. The user to run NPM with
  128622. .sp
  128623. New in version 0.17.0.
  128624. .TP
  128625. .B registry
  128626. The NPM registry from which to install the package
  128627. .sp
  128628. New in version 2014.7.0.
  128629. .TP
  128630. .B env
  128631. A list of environment variables to be set prior to execution. The
  128632. format is the same as the \fBcmd.run\fP\&.
  128633. state function.
  128634. .sp
  128635. New in version 2014.7.0.
  128636. .TP
  128637. .B force_reinstall
  128638. Install the package even if it is already installed
  128639. .UNINDENT
  128640. .UNINDENT
  128641. .INDENT 0.0
  128642. .TP
  128643. .B salt.states.npm.removed(name, dir=None, user=None)
  128644. Verify that the given package is not installed.
  128645. .INDENT 7.0
  128646. .TP
  128647. .B dir
  128648. The target directory in which to install the package, or None for
  128649. global installation
  128650. .TP
  128651. .B user
  128652. The user to run NPM with
  128653. .sp
  128654. New in version 0.17.0.
  128655. .UNINDENT
  128656. .UNINDENT
  128657. .SS salt.states.nxos module
  128658. .sp
  128659. State module for Cisco NX\-OS Switch Proxy and Native minions
  128660. .sp
  128661. For documentation on setting up the nxos proxy minion look in the documentation
  128662. for \fBsalt.proxy.nxos\fP\&.
  128663. .INDENT 0.0
  128664. .TP
  128665. .B salt.states.nxos.config_absent(name)
  128666. Ensure a specific configuration line does not exist in the running config
  128667. .INDENT 7.0
  128668. .TP
  128669. .B name
  128670. config line to remove
  128671. .UNINDENT
  128672. .sp
  128673. Examples:
  128674. .INDENT 7.0
  128675. .INDENT 3.5
  128676. .sp
  128677. .nf
  128678. .ft C
  128679. add snmp group:
  128680. nxos.config_absent:
  128681. \- names:
  128682. \- snmp\-server community randoSNMPstringHERE group network\-operator
  128683. \- snmp\-server community AnotherRandomSNMPSTring group network\-admin
  128684. .ft P
  128685. .fi
  128686. .UNINDENT
  128687. .UNINDENT
  128688. .sp
  128689. \fBNOTE:\fP
  128690. .INDENT 7.0
  128691. .INDENT 3.5
  128692. For certain cases extra lines could be removed based on dependencies.
  128693. In this example, included after the example for config_present, the
  128694. ACLs would be removed because they depend on the existence of the
  128695. group.
  128696. .UNINDENT
  128697. .UNINDENT
  128698. .UNINDENT
  128699. .INDENT 0.0
  128700. .TP
  128701. .B salt.states.nxos.config_present(name)
  128702. Ensure a specific configuration line exists in the running config
  128703. .INDENT 7.0
  128704. .TP
  128705. .B name
  128706. config line to set
  128707. .UNINDENT
  128708. .sp
  128709. Examples:
  128710. .INDENT 7.0
  128711. .INDENT 3.5
  128712. .sp
  128713. .nf
  128714. .ft C
  128715. add snmp group:
  128716. nxos.config_present:
  128717. \- names:
  128718. \- snmp\-server community randoSNMPstringHERE group network\-operator
  128719. \- snmp\-server community AnotherRandomSNMPSTring group network\-admin
  128720. add snmp acl:
  128721. nxos.config_present:
  128722. \- names:
  128723. \- snmp\-server community randoSNMPstringHERE use\-acl snmp\-acl\-ro
  128724. \- snmp\-server community AnotherRandomSNMPSTring use\-acl snmp\-acl\-rw
  128725. .ft P
  128726. .fi
  128727. .UNINDENT
  128728. .UNINDENT
  128729. .UNINDENT
  128730. .INDENT 0.0
  128731. .TP
  128732. .B salt.states.nxos.replace(name, repl, full_match=False)
  128733. Replace all instances of a string or full line in the running config
  128734. .INDENT 7.0
  128735. .TP
  128736. .B name
  128737. String to replace
  128738. .TP
  128739. .B repl
  128740. The replacement text
  128741. .TP
  128742. .B full_match
  128743. Whether \fIname\fP will match the full line or only a subset of the line.
  128744. Defaults to False. When False, .* is added around \fIname\fP for matching
  128745. in the \fIshow run\fP config.
  128746. .UNINDENT
  128747. .sp
  128748. Examples:
  128749. .INDENT 7.0
  128750. .INDENT 3.5
  128751. .sp
  128752. .nf
  128753. .ft C
  128754. replace snmp string:
  128755. nxos.replace:
  128756. \- name: randoSNMPstringHERE
  128757. \- repl: NEWrandoSNMPstringHERE
  128758. replace full snmp string:
  128759. nxos.replace:
  128760. \- name: ^snmp\-server community randoSNMPstringHERE group network\-operator$
  128761. \- repl: snmp\-server community NEWrandoSNMPstringHERE group network\-operator
  128762. \- full_match: True
  128763. .ft P
  128764. .fi
  128765. .UNINDENT
  128766. .UNINDENT
  128767. .sp
  128768. \fBNOTE:\fP
  128769. .INDENT 7.0
  128770. .INDENT 3.5
  128771. The first example will replace the SNMP string on both the group and
  128772. the ACL, so you will not lose the ACL setting. Because the second is
  128773. an exact match of the line, when the group is removed, the ACL is
  128774. removed, but not readded, because it was not matched.
  128775. .UNINDENT
  128776. .UNINDENT
  128777. .UNINDENT
  128778. .INDENT 0.0
  128779. .TP
  128780. .B salt.states.nxos.user_absent(name)
  128781. Ensure a user is not present
  128782. .INDENT 7.0
  128783. .TP
  128784. .B name
  128785. username to remove if it exists
  128786. .UNINDENT
  128787. .sp
  128788. Examples:
  128789. .INDENT 7.0
  128790. .INDENT 3.5
  128791. .sp
  128792. .nf
  128793. .ft C
  128794. delete:
  128795. nxos.user_absent:
  128796. \- name: daniel
  128797. .ft P
  128798. .fi
  128799. .UNINDENT
  128800. .UNINDENT
  128801. .UNINDENT
  128802. .INDENT 0.0
  128803. .TP
  128804. .B salt.states.nxos.user_present(name, password=None, roles=None, encrypted=False, crypt_salt=None, algorithm=u\(aqsha256\(aq)
  128805. Ensure a user is present with the specified groups
  128806. .INDENT 7.0
  128807. .TP
  128808. .B name
  128809. Name of user
  128810. .TP
  128811. .B password
  128812. Encrypted or Plain Text password for user
  128813. .TP
  128814. .B roles
  128815. List of roles the user should be assigned. Any roles not in this list will be removed
  128816. .TP
  128817. .B encrypted
  128818. Whether the password is encrypted already or not. Defaults to False
  128819. .TP
  128820. .B crypt_salt
  128821. Salt to use when encrypting the password. Default is None (salt is
  128822. randomly generated for unhashed passwords)
  128823. .TP
  128824. .B algorithm
  128825. Algorithm to use for hashing password. Defaults to sha256.
  128826. Accepts md5, blowfish, sha256, sha512
  128827. .UNINDENT
  128828. .sp
  128829. Examples:
  128830. .INDENT 7.0
  128831. .INDENT 3.5
  128832. .sp
  128833. .nf
  128834. .ft C
  128835. create:
  128836. nxos.user_present:
  128837. \- name: daniel
  128838. \- roles:
  128839. \- vdc\-admin
  128840. set_password:
  128841. nxos.user_present:
  128842. \- name: daniel
  128843. \- password: admin
  128844. \- roles:
  128845. \- network\-admin
  128846. update:
  128847. nxos.user_present:
  128848. \- name: daniel
  128849. \- password: AiN9jaoP
  128850. \- roles:
  128851. \- network\-admin
  128852. \- vdc\-admin
  128853. .ft P
  128854. .fi
  128855. .UNINDENT
  128856. .UNINDENT
  128857. .UNINDENT
  128858. .SS salt.states.nxos_upgrade module
  128859. .sp
  128860. Manage NX\-OS System Image Upgrades.
  128861. .INDENT 0.0
  128862. .TP
  128863. .B maturity
  128864. new
  128865. .TP
  128866. .B platform
  128867. nxos
  128868. .TP
  128869. .B codeauthor
  128870. Michael G Wiebe
  128871. .UNINDENT
  128872. .sp
  128873. For documentation on setting up the nxos proxy minion look in the documentation
  128874. for \fBsalt.proxy.nxos\fP\&.
  128875. .INDENT 0.0
  128876. .TP
  128877. .B salt.states.nxos_upgrade.image_running(name, system_image, kickstart_image=None, issu=True, **kwargs)
  128878. Ensure the NX\-OS system image is running on the device.
  128879. .INDENT 7.0
  128880. .TP
  128881. .B name
  128882. Name of the salt state task
  128883. .TP
  128884. .B system_image
  128885. Name of the system image file on bootflash:
  128886. .TP
  128887. .B kickstart_image
  128888. Name of the kickstart image file on bootflash:
  128889. This is not needed if the system_image is a combined system and
  128890. kickstart image
  128891. Default: None
  128892. .TP
  128893. .B issu
  128894. Ensure the correct system is running on the device using an in service
  128895. software upgrade, or force a disruptive upgrade by setting the option
  128896. to False.
  128897. Default: False
  128898. .TP
  128899. .B timeout
  128900. Timeout in seconds for long running \(aqinstall all\(aq upgrade command.
  128901. Default: 900
  128902. .UNINDENT
  128903. .sp
  128904. Examples:
  128905. .INDENT 7.0
  128906. .INDENT 3.5
  128907. .sp
  128908. .nf
  128909. .ft C
  128910. upgrade_software_image_n9k:
  128911. nxos.image_running:
  128912. \- name: Ensure nxos.7.0.3.I7.5a.bin is running
  128913. \- system_image: nxos.7.0.3.I7.5a.bin
  128914. \- issu: True
  128915. upgrade_software_image_n7k:
  128916. nxos.image_running:
  128917. \- name: Ensure n7000\-s2\-kickstart.8.0.1.bin is running
  128918. \- kickstart_image: n7000\-s2\-kickstart.8.0.1.bin
  128919. \- system_image: n7000\-s2\-dk9.8.0.1.bin
  128920. \- issu: False
  128921. .ft P
  128922. .fi
  128923. .UNINDENT
  128924. .UNINDENT
  128925. .UNINDENT
  128926. .SS salt.states.openstack_config
  128927. .sp
  128928. Manage OpenStack configuration file settings.
  128929. .INDENT 0.0
  128930. .TP
  128931. .B maintainer
  128932. Jeffrey C. Ollie <\fI\%jeff@ocjtech.us\fP>
  128933. .TP
  128934. .B maturity
  128935. new
  128936. .TP
  128937. .B depends
  128938. .TP
  128939. .B platform
  128940. linux
  128941. .UNINDENT
  128942. .INDENT 0.0
  128943. .TP
  128944. .B salt.states.openstack_config.absent(name, filename, section, parameter=None)
  128945. Ensure a value is not set in an OpenStack configuration file.
  128946. .INDENT 7.0
  128947. .TP
  128948. .B filename
  128949. The full path to the configuration file
  128950. .TP
  128951. .B section
  128952. The section in which the parameter will be set
  128953. .TP
  128954. .B parameter (optional)
  128955. The parameter to change. If the parameter is not supplied, the name will be used as the parameter.
  128956. .UNINDENT
  128957. .UNINDENT
  128958. .INDENT 0.0
  128959. .TP
  128960. .B salt.states.openstack_config.present(name, filename, section, value, parameter=None)
  128961. Ensure a value is set in an OpenStack configuration file.
  128962. .INDENT 7.0
  128963. .TP
  128964. .B filename
  128965. The full path to the configuration file
  128966. .TP
  128967. .B section
  128968. The section in which the parameter will be set
  128969. .TP
  128970. .B parameter (optional)
  128971. The parameter to change. If the parameter is not supplied, the name will be used as the parameter.
  128972. .TP
  128973. .B value
  128974. The value to set
  128975. .UNINDENT
  128976. .UNINDENT
  128977. .SS salt.states.openvswitch_bridge module
  128978. .sp
  128979. Management of Open vSwitch bridges.
  128980. .INDENT 0.0
  128981. .TP
  128982. .B salt.states.openvswitch_bridge.absent(name)
  128983. Ensures that the named bridge does not exist, eventually deletes it.
  128984. .INDENT 7.0
  128985. .TP
  128986. .B Parameters
  128987. \fBname\fP \-\- The name of the bridge.
  128988. .UNINDENT
  128989. .UNINDENT
  128990. .INDENT 0.0
  128991. .TP
  128992. .B salt.states.openvswitch_bridge.present(name)
  128993. Ensures that the named bridge exists, eventually creates it.
  128994. .INDENT 7.0
  128995. .TP
  128996. .B Parameters
  128997. \fBname\fP \-\- The name of the bridge.
  128998. .UNINDENT
  128999. .UNINDENT
  129000. .SS salt.states.openvswitch_port module
  129001. .sp
  129002. Management of Open vSwitch ports.
  129003. .INDENT 0.0
  129004. .TP
  129005. .B salt.states.openvswitch_port.absent(name, bridge=None)
  129006. Ensures that the named port exists on bridge, eventually deletes it.
  129007. If bridge is not set, port is removed from whatever bridge contains it.
  129008. .INDENT 7.0
  129009. .TP
  129010. .B Parameters
  129011. .INDENT 7.0
  129012. .IP \(bu 2
  129013. \fBname\fP \-\- The name of the port.
  129014. .IP \(bu 2
  129015. \fBbridge\fP \-\- The name of the bridge.
  129016. .UNINDENT
  129017. .UNINDENT
  129018. .UNINDENT
  129019. .INDENT 0.0
  129020. .TP
  129021. .B salt.states.openvswitch_port.present(name, bridge, tunnel_type=None, id=None, remote=None, dst_port=None, internal=False)
  129022. Ensures that the named port exists on bridge, eventually creates it.
  129023. .INDENT 7.0
  129024. .TP
  129025. .B Parameters
  129026. .INDENT 7.0
  129027. .IP \(bu 2
  129028. \fBname\fP \-\- The name of the port.
  129029. .IP \(bu 2
  129030. \fBbridge\fP \-\- The name of the bridge.
  129031. .IP \(bu 2
  129032. \fBtunnel_type\fP \-\- Optional type of interface to create, currently supports: vlan, vxlan and gre.
  129033. .IP \(bu 2
  129034. \fBid\fP \-\- Optional tunnel\(aqs key.
  129035. .IP \(bu 2
  129036. \fBremote\fP \-\- Remote endpoint\(aqs IP address.
  129037. .IP \(bu 2
  129038. \fBdst_port\fP \-\- Port to use when creating tunnelport in the switch.
  129039. .IP \(bu 2
  129040. \fBinternal\fP \-\- Create an internal port if one does not exist
  129041. .UNINDENT
  129042. .UNINDENT
  129043. .UNINDENT
  129044. .SS salt.states.opsgenie
  129045. .SS Create/Close an alert in OpsGenie
  129046. .sp
  129047. New in version 2018.3.0.
  129048. .sp
  129049. This state is useful for creating or closing alerts in OpsGenie
  129050. during state runs.
  129051. .INDENT 0.0
  129052. .INDENT 3.5
  129053. .sp
  129054. .nf
  129055. .ft C
  129056. used_space:
  129057. disk.status:
  129058. \- name: /
  129059. \- maximum: 79%
  129060. \- minimum: 20%
  129061. opsgenie_create_action_sender:
  129062. opsgenie.create_alert:
  129063. \- api_key: XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX
  129064. \- reason: \(aqDisk capacity is out of designated range.\(aq
  129065. \- name: disk.status
  129066. \- onfail:
  129067. \- disk: used_space
  129068. opsgenie_close_action_sender:
  129069. opsgenie.close_alert:
  129070. \- api_key: XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX
  129071. \- name: disk.status
  129072. \- require:
  129073. \- disk: used_space
  129074. .ft P
  129075. .fi
  129076. .UNINDENT
  129077. .UNINDENT
  129078. .INDENT 0.0
  129079. .TP
  129080. .B salt.states.opsgenie.close_alert(name=None, api_key=None, reason=u\(aqConditions are met.\(aq, action_type=u\(aqClose\(aq)
  129081. Close an alert in OpsGenie. It\(aqs a wrapper function for create_alert.
  129082. Example usage with Salt\(aqs requisites and other global state arguments
  129083. could be found above.
  129084. .sp
  129085. Required Parameters:
  129086. .INDENT 7.0
  129087. .TP
  129088. .B name
  129089. It will be used as alert\(aqs alias. If you want to use the close
  129090. functionality you must provide name field for both states like
  129091. in above case.
  129092. .UNINDENT
  129093. .sp
  129094. Optional Parameters:
  129095. .INDENT 7.0
  129096. .TP
  129097. .B api_key
  129098. It\(aqs the API Key you\(aqve copied while adding integration in OpsGenie.
  129099. .TP
  129100. .B reason
  129101. It will be used as alert\(aqs default message in OpsGenie.
  129102. .TP
  129103. .B action_type
  129104. OpsGenie supports the default values Create/Close for action_type.
  129105. You can customize this field with OpsGenie\(aqs custom actions for
  129106. other purposes like adding notes or acknowledging alerts.
  129107. .UNINDENT
  129108. .UNINDENT
  129109. .INDENT 0.0
  129110. .TP
  129111. .B salt.states.opsgenie.create_alert(name=None, api_key=None, reason=None, action_type=u\(aqCreate\(aq)
  129112. Create an alert in OpsGenie. Example usage with Salt\(aqs requisites and other
  129113. global state arguments could be found above.
  129114. .sp
  129115. Required Parameters:
  129116. .INDENT 7.0
  129117. .TP
  129118. .B api_key
  129119. It\(aqs the API Key you\(aqve copied while adding integration in OpsGenie.
  129120. .TP
  129121. .B reason
  129122. It will be used as alert\(aqs default message in OpsGenie.
  129123. .UNINDENT
  129124. .sp
  129125. Optional Parameters:
  129126. .INDENT 7.0
  129127. .TP
  129128. .B name
  129129. It will be used as alert\(aqs alias. If you want to use the close
  129130. functionality you must provide name field for both states like
  129131. in above case.
  129132. .TP
  129133. .B action_type
  129134. OpsGenie supports the default values Create/Close for action_type.
  129135. You can customize this field with OpsGenie\(aqs custom actions for
  129136. other purposes like adding notes or acknowledging alerts.
  129137. .UNINDENT
  129138. .UNINDENT
  129139. .SS salt.states.pagerduty
  129140. .SS Create an Event in PagerDuty
  129141. .sp
  129142. New in version 2014.1.0.
  129143. .sp
  129144. This state is useful for creating events on the PagerDuty service during state
  129145. runs.
  129146. .INDENT 0.0
  129147. .INDENT 3.5
  129148. .sp
  129149. .nf
  129150. .ft C
  129151. server\-warning\-message:
  129152. pagerduty.create_event:
  129153. \- name: \(aqThis is a server warning message\(aq
  129154. \- details: \(aqThis is a much more detailed message\(aq
  129155. \- service_key: 9abcd123456789efabcde362783cdbaf
  129156. \- profile: my\-pagerduty\-account
  129157. .ft P
  129158. .fi
  129159. .UNINDENT
  129160. .UNINDENT
  129161. .INDENT 0.0
  129162. .TP
  129163. .B salt.states.pagerduty.create_event(name, details, service_key, profile)
  129164. Create an event on the PagerDuty service
  129165. .INDENT 7.0
  129166. .INDENT 3.5
  129167. .sp
  129168. .nf
  129169. .ft C
  129170. server\-warning\-message:
  129171. pagerduty.create_event:
  129172. \- name: \(aqThis is a server warning message\(aq
  129173. \- details: \(aqThis is a much more detailed message\(aq
  129174. \- service_key: 9abcd123456789efabcde362783cdbaf
  129175. \- profile: my\-pagerduty\-account
  129176. .ft P
  129177. .fi
  129178. .UNINDENT
  129179. .UNINDENT
  129180. .sp
  129181. The following parameters are required:
  129182. .INDENT 7.0
  129183. .TP
  129184. .B name
  129185. This is a short description of the event.
  129186. .TP
  129187. .B details
  129188. This can be a more detailed description of the event.
  129189. .TP
  129190. .B service_key
  129191. This key can be found by using pagerduty.list_services.
  129192. .TP
  129193. .B profile
  129194. This refers to the configuration profile to use to connect to the
  129195. PagerDuty service.
  129196. .UNINDENT
  129197. .UNINDENT
  129198. .SS salt.states.pagerduty_escalation_policy
  129199. .sp
  129200. Manage PagerDuty escalation policies.
  129201. .sp
  129202. Schedules and users can be referenced by pagerduty ID, or by name, or by email address.
  129203. .sp
  129204. For example:
  129205. .INDENT 0.0
  129206. .INDENT 3.5
  129207. .sp
  129208. .nf
  129209. .ft C
  129210. ensure test escalation policy:
  129211. pagerduty_escalation_policy.present:
  129212. \- name: bruce test escalation policy
  129213. \- escalation_rules:
  129214. \- targets:
  129215. \- type: schedule
  129216. id: \(aqbruce test schedule level1\(aq
  129217. \- type: user
  129218. id: \(aqBruce Sherrod\(aq
  129219. escalation_delay_in_minutes: 15
  129220. \- targets:
  129221. \- type: schedule
  129222. id: \(aqbruce test schedule level2\(aq
  129223. escalation_delay_in_minutes: 15
  129224. \- targets:
  129225. \- type: user
  129226. id: \(aqBruce TestUser1\(aq
  129227. \- type: user
  129228. id: \(aqBruce TestUser2\(aq
  129229. \- type: user
  129230. id: \(aqBruce TestUser3\(aq
  129231. \- type: user
  129232. id: \(aqbruce+test4@lyft.com\(aq
  129233. escalation_delay_in_minutes: 15
  129234. .ft P
  129235. .fi
  129236. .UNINDENT
  129237. .UNINDENT
  129238. .INDENT 0.0
  129239. .TP
  129240. .B salt.states.pagerduty_escalation_policy.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129241. Ensure that a PagerDuty escalation policy does not exist.
  129242. Accepts all the arguments that pagerduty_escalation_policy.present accepts;
  129243. but ignores all arguments except the name.
  129244. .sp
  129245. Name can be the escalation policy id or the escalation policy name.
  129246. .UNINDENT
  129247. .INDENT 0.0
  129248. .TP
  129249. .B salt.states.pagerduty_escalation_policy.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129250. Ensure that a pagerduty escalation policy exists. Will create or update as needed.
  129251. .sp
  129252. This method accepts as args everything defined in
  129253. \fI\%https://developer.pagerduty.com/documentation/rest/escalation_policies/create\fP\&.
  129254. In addition, user and schedule id\(aqs will be translated from name (or email address)
  129255. into PagerDuty unique ids. For example:
  129256. .INDENT 7.0
  129257. .INDENT 3.5
  129258. .sp
  129259. .nf
  129260. .ft C
  129261. .ft P
  129262. .fi
  129263. .UNINDENT
  129264. .UNINDENT
  129265. .INDENT 7.0
  129266. .TP
  129267. .B pagerduty_escalation_policy.present:
  129268. .INDENT 7.0
  129269. .IP \(bu 2
  129270. name: bruce test escalation policy
  129271. .IP \(bu 2
  129272. .INDENT 2.0
  129273. .TP
  129274. .B escalation_rules:
  129275. .INDENT 7.0
  129276. .IP \(bu 2
  129277. .INDENT 2.0
  129278. .TP
  129279. .B targets:
  129280. .INDENT 7.0
  129281. .IP \(bu 2
  129282. type: schedule
  129283. id: \(aqbruce test schedule level1\(aq
  129284. .IP \(bu 2
  129285. type: user
  129286. id: \(aqBruce Sherrod\(aq
  129287. .UNINDENT
  129288. .UNINDENT
  129289. .UNINDENT
  129290. .UNINDENT
  129291. .UNINDENT
  129292. .UNINDENT
  129293. .sp
  129294. In this example, \(aqBruce Sherrod\(aq will be looked up and replaced with the
  129295. PagerDuty id (usually a 7 digit all\-caps string, e.g. PX6GQL7)
  129296. .UNINDENT
  129297. .SS salt.states.pagerduty_schedule
  129298. .sp
  129299. Manage PagerDuty schedules.
  129300. .sp
  129301. Example:
  129302. .INDENT 0.0
  129303. .INDENT 3.5
  129304. .sp
  129305. .nf
  129306. .ft C
  129307. ensure test schedule:
  129308. pagerduty_schedule.present:
  129309. \- name: \(aqbruce test schedule level1\(aq
  129310. \- schedule:
  129311. name: \(aqbruce test schedule level1\(aq
  129312. time_zone: \(aqPacific Time (US & Canada)\(aq
  129313. schedule_layers:
  129314. \- name: \(aqSchedule Layer 1\(aq
  129315. start: \(aq2015\-01\-01T00:00:00\(aq
  129316. users:
  129317. \- user:
  129318. \(aqid\(aq: \(aqBruce TestUser1\(aq
  129319. member_order: 1
  129320. \- user:
  129321. \(aqid\(aq: \(aqBruce TestUser2\(aq
  129322. member_order: 2
  129323. \- user:
  129324. \(aqid\(aq: \(aqbruce+test3@lyft.com\(aq
  129325. member_order: 3
  129326. \- user:
  129327. \(aqid\(aq: \(aqbruce+test4@lyft.com\(aq
  129328. member_order: 4
  129329. rotation_virtual_start: \(aq2015\-01\-01T00:00:00\(aq
  129330. priority: 1
  129331. rotation_turn_length_seconds: 604800
  129332. .ft P
  129333. .fi
  129334. .UNINDENT
  129335. .UNINDENT
  129336. .INDENT 0.0
  129337. .TP
  129338. .B salt.states.pagerduty_schedule.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129339. Ensure that a pagerduty schedule does not exist.
  129340. Name can be pagerduty schedule id or pagerduty schedule name.
  129341. .UNINDENT
  129342. .INDENT 0.0
  129343. .TP
  129344. .B salt.states.pagerduty_schedule.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129345. Ensure that a pagerduty schedule exists.
  129346. This method accepts as args everything defined in
  129347. \fI\%https://developer.pagerduty.com/documentation/rest/schedules/create\fP\&.
  129348. This means that most arguments are in a dict called "schedule."
  129349. .sp
  129350. User id\(aqs can be pagerduty id, or name, or email address.
  129351. .UNINDENT
  129352. .SS salt.states.pagerduty_service
  129353. .sp
  129354. Manage PagerDuty services
  129355. .sp
  129356. Escalation policies can be referenced by pagerduty ID or by namea.
  129357. .sp
  129358. For example:
  129359. .INDENT 0.0
  129360. .INDENT 3.5
  129361. .sp
  129362. .nf
  129363. .ft C
  129364. ensure test service
  129365. pagerduty_service.present:
  129366. \- name: \(aqmy service\(aq
  129367. \- escalation_policy_id: \(aqmy escalation policy\(aq
  129368. \- type: nagios
  129369. .ft P
  129370. .fi
  129371. .UNINDENT
  129372. .UNINDENT
  129373. .INDENT 0.0
  129374. .TP
  129375. .B salt.states.pagerduty_service.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129376. Ensure a pagerduty service does not exist.
  129377. Name can be the service name or pagerduty service id.
  129378. .UNINDENT
  129379. .INDENT 0.0
  129380. .TP
  129381. .B salt.states.pagerduty_service.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129382. Ensure pagerduty service exists.
  129383. This method accepts as arguments everything defined in
  129384. \fI\%https://developer.pagerduty.com/documentation/rest/services/create\fP
  129385. .sp
  129386. Note that many arguments are mutually exclusive, depending on the "type" argument.
  129387. .sp
  129388. Examples:
  129389. .INDENT 7.0
  129390. .INDENT 3.5
  129391. .sp
  129392. .nf
  129393. .ft C
  129394. # create a PagerDuty email service at test\-email@DOMAIN.pagerduty.com
  129395. ensure generic email service exists:
  129396. pagerduty_service.present:
  129397. \- name: my email service
  129398. \- service:
  129399. description: "email service controlled by salt"
  129400. escalation_policy_id: "my escalation policy"
  129401. type: "generic_email"
  129402. service_key: "test\-email"
  129403. .ft P
  129404. .fi
  129405. .UNINDENT
  129406. .UNINDENT
  129407. .INDENT 7.0
  129408. .INDENT 3.5
  129409. .sp
  129410. .nf
  129411. .ft C
  129412. # create a pagerduty service using cloudwatch integration
  129413. ensure my cloudwatch service exists:
  129414. pagerduty_service.present:
  129415. \- name: my cloudwatch service
  129416. \- service:
  129417. escalation_policy_id: "my escalation policy"
  129418. type: aws_cloudwatch
  129419. description: "my cloudwatch service controlled by salt"
  129420. .ft P
  129421. .fi
  129422. .UNINDENT
  129423. .UNINDENT
  129424. .UNINDENT
  129425. .SS salt.states.pagerduty_user
  129426. .sp
  129427. Manage PagerDuty users.
  129428. Example.INDENT 0.0
  129429. .INDENT 3.5
  129430. .sp
  129431. .nf
  129432. .ft C
  129433. .ft P
  129434. .fi
  129435. .UNINDENT
  129436. .UNINDENT
  129437. .INDENT 0.0
  129438. .TP
  129439. .B ensure bruce test user 1:
  129440. .INDENT 7.0
  129441. .TP
  129442. .B pagerduty.user_present:
  129443. .INDENT 7.0
  129444. .IP \(bu 2
  129445. name: \(aqBruce TestUser1\(aq
  129446. .IP \(bu 2
  129447. email: \fI\%bruce+test1@lyft.com\fP
  129448. .IP \(bu 2
  129449. requester_id: P1GV5NT
  129450. .UNINDENT
  129451. .UNINDENT
  129452. .UNINDENT
  129453. .INDENT 0.0
  129454. .TP
  129455. .B salt.states.pagerduty_user.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129456. Ensure pagerduty user does not exist.
  129457. Name can be pagerduty id, email address, or user name.
  129458. .UNINDENT
  129459. .INDENT 0.0
  129460. .TP
  129461. .B salt.states.pagerduty_user.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129462. Ensure pagerduty user exists.
  129463. Arguments match those supported by
  129464. \fI\%https://developer.pagerduty.com/documentation/rest/users/create\fP\&.
  129465. .UNINDENT
  129466. .SS salt.states.panos
  129467. .sp
  129468. A state module to manage Palo Alto network devices.
  129469. .INDENT 0.0
  129470. .TP
  129471. .B codeauthor
  129472. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  129473. .TP
  129474. .B maturity
  129475. new
  129476. .TP
  129477. .B depends
  129478. none
  129479. .TP
  129480. .B platform
  129481. unix
  129482. .UNINDENT
  129483. .SS About
  129484. .sp
  129485. This state module was designed to handle connections to a Palo Alto based
  129486. firewall. This module relies on the Palo Alto proxy module to interface with the devices.
  129487. .sp
  129488. This state module is designed to give extreme flexibility in the control over XPATH values on the PANOS device. It
  129489. exposes the core XML API commands and allows state modules to chain complex XPATH commands.
  129490. .sp
  129491. Below is an example of how to construct a security rule and move to the top of the policy. This will take a config
  129492. lock to prevent execution during the operation, then remove the lock. After the XPATH has been deployed, it will
  129493. commit to the device.
  129494. .INDENT 0.0
  129495. .INDENT 3.5
  129496. .sp
  129497. .nf
  129498. .ft C
  129499. panos/takelock:
  129500. panos.add_config_lock
  129501. panos/service_tcp_22:
  129502. panos.set_config:
  129503. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/service
  129504. \- value: <entry name=\(aqtcp\-22\(aq><protocol><tcp><port>22</port></tcp></protocol></entry>
  129505. \- commit: False
  129506. panos/create_rule1:
  129507. panos.set_config:
  129508. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules
  129509. \- value: \(aq
  129510. <entry name="rule1">
  129511. <from><member>trust</member></from>
  129512. <to><member>untrust</member></to>
  129513. <source><member>10.0.0.1</member></source>
  129514. <destination><member>10.0.1.1</member></destination>
  129515. <service><member>tcp\-22</member></service>
  129516. <application><member>any</member></application>
  129517. <action>allow</action>
  129518. <disabled>no</disabled>
  129519. </entry>\(aq
  129520. \- commit: False
  129521. panos/moveruletop:
  129522. panos.move_config:
  129523. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129524. \- where: top
  129525. \- commit: False
  129526. panos/removelock:
  129527. panos.remove_config_lock
  129528. panos/commit:
  129529. panos.commit_config
  129530. .ft P
  129531. .fi
  129532. .UNINDENT
  129533. .UNINDENT
  129534. .SS Version Specific Configurations
  129535. .sp
  129536. Palo Alto devices running different versions will have different supported features and different command structures. In
  129537. order to account for this, the proxy module can be leveraged to check if the panos device is at a specific revision
  129538. level.
  129539. .sp
  129540. The proxy[\(aqpanos.is_required_version\(aq] method will check if a panos device is currently running a version equal or
  129541. greater than the passed version. For example, proxy[\(aqpanos.is_required_version\(aq](\(aq7.0.0\(aq) would match both 7.1.0 and
  129542. 8.0.0.
  129543. .INDENT 0.0
  129544. .INDENT 3.5
  129545. .sp
  129546. .nf
  129547. .ft C
  129548. {% if proxy[\(aqpanos.is_required_version\(aq](\(aq8.0.0\(aq) %}
  129549. panos/deviceconfig/system/motd\-and\-banner:
  129550. panos.set_config:
  129551. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/deviceconfig/system/motd\-and\-banner
  129552. \- value: |
  129553. <banner\-header>BANNER TEXT</banner\-header>
  129554. <banner\-header\-color>color2</banner\-header\-color>
  129555. <banner\-header\-text\-color>color18</banner\-header\-text\-color>
  129556. <banner\-header\-footer\-match>yes</banner\-header\-footer\-match>
  129557. \- commit: False
  129558. {% endif %}
  129559. .ft P
  129560. .fi
  129561. .UNINDENT
  129562. .UNINDENT
  129563. .sp
  129564. \fBSEE ALSO:\fP
  129565. .INDENT 0.0
  129566. .INDENT 3.5
  129567. \fBPalo Alto Proxy Module\fP
  129568. .UNINDENT
  129569. .UNINDENT
  129570. .INDENT 0.0
  129571. .TP
  129572. .B salt.states.panos.add_config_lock(name)
  129573. Prevent other users from changing configuration until the lock is released.
  129574. .sp
  129575. name: The name of the module function to execute.
  129576. .sp
  129577. SLS Example:
  129578. .INDENT 7.0
  129579. .INDENT 3.5
  129580. .sp
  129581. .nf
  129582. .ft C
  129583. panos/takelock:
  129584. panos.add_config_lock
  129585. .ft P
  129586. .fi
  129587. .UNINDENT
  129588. .UNINDENT
  129589. .UNINDENT
  129590. .INDENT 0.0
  129591. .TP
  129592. .B salt.states.panos.address_exists(name, addressname=None, vsys=1, ipnetmask=None, iprange=None, fqdn=None, description=None, commit=False)
  129593. Ensures that an address object exists in the configured state. If it does not exist or is not configured with the
  129594. specified attributes, it will be adjusted to match the specified values.
  129595. .sp
  129596. This module will only process a single address type (ip\-netmask, ip\-range, or fqdn). It will process the specified
  129597. value if the following order: ip\-netmask, ip\-range, fqdn. For proper execution, only specify a single address
  129598. type.
  129599. .sp
  129600. name: The name of the module function to execute.
  129601. .sp
  129602. addressname(str): The name of the address object. The name is case\-sensitive and can have up to 31 characters,
  129603. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  129604. Panorama, unique within its device group and any ancestor or descendant device groups.
  129605. .sp
  129606. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129607. .sp
  129608. ipnetmask(str): The IPv4 or IPv6 address or IP address range using the format ip_address/mask or ip_address where
  129609. the mask is the number of significant binary digits used for the network portion of the address. Ideally, for IPv6,
  129610. you specify only the network portion, not the host portion.
  129611. .sp
  129612. iprange(str): A range of addresses using the format ip_address–ip_address where both addresses can be IPv4 or both
  129613. can be IPv6.
  129614. .sp
  129615. fqdn(str): A fully qualified domain name format. The FQDN initially resolves at commit time. Entries are
  129616. subsequently refreshed when the firewall performs a check every 30 minutes; all changes in the IP address for the
  129617. entries are picked up at the refresh cycle.
  129618. .sp
  129619. description(str): A description for the policy (up to 255 characters).
  129620. .sp
  129621. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129622. .sp
  129623. SLS Example:
  129624. .INDENT 7.0
  129625. .INDENT 3.5
  129626. .sp
  129627. .nf
  129628. .ft C
  129629. panos/address/h\-10.10.10.10:
  129630. panos.address_exists:
  129631. \- addressname: h\-10.10.10.10
  129632. \- vsys: 1
  129633. \- ipnetmask: 10.10.10.10
  129634. \- commit: False
  129635. panos/address/10.0.0.1\-10.0.0.50:
  129636. panos.address_exists:
  129637. \- addressname: r\-10.0.0.1\-10.0.0.50
  129638. \- vsys: 1
  129639. \- iprange: 10.0.0.1\-10.0.0.50
  129640. \- commit: False
  129641. panos/address/foo.bar.com:
  129642. panos.address_exists:
  129643. \- addressname: foo.bar.com
  129644. \- vsys: 1
  129645. \- fqdn: foo.bar.com
  129646. \- description: My fqdn object
  129647. \- commit: False
  129648. .ft P
  129649. .fi
  129650. .UNINDENT
  129651. .UNINDENT
  129652. .UNINDENT
  129653. .INDENT 0.0
  129654. .TP
  129655. .B salt.states.panos.address_group_exists(name, groupname=None, vsys=1, members=None, description=None, commit=False)
  129656. Ensures that an address group object exists in the configured state. If it does not exist or is not configured with
  129657. the specified attributes, it will be adjusted to match the specified values.
  129658. .sp
  129659. This module will enforce group membership. If a group exists and contains members this state does not include,
  129660. those members will be removed and replaced with the specified members in the state.
  129661. .sp
  129662. name: The name of the module function to execute.
  129663. .sp
  129664. groupname(str): The name of the address group object. The name is case\-sensitive and can have up to 31 characters,
  129665. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  129666. Panorama, unique within its device group and any ancestor or descendant device groups.
  129667. .sp
  129668. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129669. .sp
  129670. members(str, list): The members of the address group. These must be valid address objects or address groups on the
  129671. system that already exist prior to the execution of this state.
  129672. .sp
  129673. description(str): A description for the policy (up to 255 characters).
  129674. .sp
  129675. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129676. .sp
  129677. SLS Example:
  129678. .INDENT 7.0
  129679. .INDENT 3.5
  129680. .sp
  129681. .nf
  129682. .ft C
  129683. panos/address\-group/my\-group:
  129684. panos.address_group_exists:
  129685. \- groupname: my\-group
  129686. \- vsys: 1
  129687. \- members:
  129688. \- my\-address\-object
  129689. \- my\-other\-address\-group
  129690. \- description: A group that needs to exist
  129691. \- commit: False
  129692. .ft P
  129693. .fi
  129694. .UNINDENT
  129695. .UNINDENT
  129696. .UNINDENT
  129697. .INDENT 0.0
  129698. .TP
  129699. .B salt.states.panos.clone_config(name, xpath=None, newname=None, commit=False)
  129700. Clone a specific XPATH and set it to a new name.
  129701. .sp
  129702. name: The name of the module function to execute.
  129703. .sp
  129704. xpath(str): The XPATH of the configuration API tree to clone.
  129705. .sp
  129706. newname(str): The new name of the XPATH clone.
  129707. .sp
  129708. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129709. .sp
  129710. SLS Example:
  129711. .INDENT 7.0
  129712. .INDENT 3.5
  129713. .sp
  129714. .nf
  129715. .ft C
  129716. panos/clonerule:
  129717. panos.clone_config:
  129718. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules&from=/config/devices/
  129719. entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129720. \- value: rule2
  129721. \- commit: True
  129722. .ft P
  129723. .fi
  129724. .UNINDENT
  129725. .UNINDENT
  129726. .UNINDENT
  129727. .INDENT 0.0
  129728. .TP
  129729. .B salt.states.panos.commit_config(name)
  129730. Commits the candidate configuration to the running configuration.
  129731. .sp
  129732. name: The name of the module function to execute.
  129733. .sp
  129734. SLS Example:
  129735. .INDENT 7.0
  129736. .INDENT 3.5
  129737. .sp
  129738. .nf
  129739. .ft C
  129740. panos/commit:
  129741. panos.commit_config
  129742. .ft P
  129743. .fi
  129744. .UNINDENT
  129745. .UNINDENT
  129746. .UNINDENT
  129747. .INDENT 0.0
  129748. .TP
  129749. .B salt.states.panos.delete_config(name, xpath=None, commit=False)
  129750. Deletes a Palo Alto XPATH to a specific value.
  129751. .sp
  129752. Use the xpath parameter to specify the location of the object to be deleted.
  129753. .sp
  129754. name: The name of the module function to execute.
  129755. .sp
  129756. xpath(str): The XPATH of the configuration API tree to control.
  129757. .sp
  129758. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129759. .sp
  129760. SLS Example:
  129761. .INDENT 7.0
  129762. .INDENT 3.5
  129763. .sp
  129764. .nf
  129765. .ft C
  129766. panos/deletegroup:
  129767. panos.delete_config:
  129768. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address\-group/entry[@name=\(aqtest\(aq]
  129769. \- commit: True
  129770. .ft P
  129771. .fi
  129772. .UNINDENT
  129773. .UNINDENT
  129774. .UNINDENT
  129775. .INDENT 0.0
  129776. .TP
  129777. .B salt.states.panos.download_software(name, version=None, synch=False, check=False)
  129778. Ensures that a software version is downloaded.
  129779. .sp
  129780. name: The name of the module function to execute.
  129781. .sp
  129782. version(str): The software version to check. If this version is not already downloaded, it will attempt to download
  129783. the file from Palo Alto.
  129784. .sp
  129785. synch(bool): If true, after downloading the file it will be synched to its peer.
  129786. .sp
  129787. check(bool): If true, the PANOS device will first attempt to pull the most recent software inventory list from Palo
  129788. Alto.
  129789. .sp
  129790. SLS Example:
  129791. .INDENT 7.0
  129792. .INDENT 3.5
  129793. .sp
  129794. .nf
  129795. .ft C
  129796. panos/version8.0.0:
  129797. panos.download_software:
  129798. \- version: 8.0.0
  129799. \- synch: False
  129800. \- check: True
  129801. .ft P
  129802. .fi
  129803. .UNINDENT
  129804. .UNINDENT
  129805. .UNINDENT
  129806. .INDENT 0.0
  129807. .TP
  129808. .B salt.states.panos.edit_config(name, xpath=None, value=None, commit=False)
  129809. Edits a Palo Alto XPATH to a specific value. This will always overwrite the existing value, even if it is not
  129810. changed.
  129811. .sp
  129812. You can replace an existing object hierarchy at a specified location in the configuration with a new value. Use
  129813. the xpath parameter to specify the location of the object, including the node to be replaced.
  129814. .sp
  129815. This is the recommended state to enforce configurations on a xpath.
  129816. .sp
  129817. name: The name of the module function to execute.
  129818. .sp
  129819. xpath(str): The XPATH of the configuration API tree to control.
  129820. .sp
  129821. value(str): The XML value to edit. This must be a child to the XPATH.
  129822. .sp
  129823. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129824. .sp
  129825. SLS Example:
  129826. .INDENT 7.0
  129827. .INDENT 3.5
  129828. .sp
  129829. .nf
  129830. .ft C
  129831. panos/addressgroup:
  129832. panos.edit_config:
  129833. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address\-group/entry[@name=\(aqtest\(aq]
  129834. \- value: <static><entry name=\(aqtest\(aq><member>abc</member><member>xyz</member></entry></static>
  129835. \- commit: True
  129836. .ft P
  129837. .fi
  129838. .UNINDENT
  129839. .UNINDENT
  129840. .UNINDENT
  129841. .INDENT 0.0
  129842. .TP
  129843. .B salt.states.panos.move_config(name, xpath=None, where=None, dst=None, commit=False)
  129844. Moves a XPATH value to a new location.
  129845. .sp
  129846. Use the xpath parameter to specify the location of the object to be moved, the where parameter to
  129847. specify type of move, and dst parameter to specify the destination path.
  129848. .sp
  129849. name: The name of the module function to execute.
  129850. .sp
  129851. xpath(str): The XPATH of the configuration API tree to move.
  129852. .sp
  129853. where(str): The type of move to execute. Valid options are after, before, top, bottom. The after and before
  129854. options will require the dst option to specify the destination of the action. The top action will move the
  129855. XPATH to the top of its structure. The botoom action will move the XPATH to the bottom of its structure.
  129856. .sp
  129857. dst(str): Optional. Specifies the destination to utilize for a move action. This is ignored for the top
  129858. or bottom action.
  129859. .sp
  129860. commit(bool): If true the firewall will commit the changes, if false do not commit changes. If the operation is
  129861. not successful, it will not commit.
  129862. .sp
  129863. SLS Example:
  129864. .INDENT 7.0
  129865. .INDENT 3.5
  129866. .sp
  129867. .nf
  129868. .ft C
  129869. panos/moveruletop:
  129870. panos.move_config:
  129871. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129872. \- where: top
  129873. \- commit: True
  129874. panos/moveruleafter:
  129875. panos.move_config:
  129876. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129877. \- where: after
  129878. \- dst: rule2
  129879. \- commit: True
  129880. .ft P
  129881. .fi
  129882. .UNINDENT
  129883. .UNINDENT
  129884. .UNINDENT
  129885. .INDENT 0.0
  129886. .TP
  129887. .B salt.states.panos.remove_config_lock(name)
  129888. Release config lock previously held.
  129889. .sp
  129890. name: The name of the module function to execute.
  129891. .sp
  129892. SLS Example:
  129893. .INDENT 7.0
  129894. .INDENT 3.5
  129895. .sp
  129896. .nf
  129897. .ft C
  129898. panos/takelock:
  129899. panos.remove_config_lock
  129900. .ft P
  129901. .fi
  129902. .UNINDENT
  129903. .UNINDENT
  129904. .UNINDENT
  129905. .INDENT 0.0
  129906. .TP
  129907. .B salt.states.panos.rename_config(name, xpath=None, newname=None, commit=False)
  129908. Rename a Palo Alto XPATH to a specific value. This will always rename the value even if a change is not needed.
  129909. .sp
  129910. name: The name of the module function to execute.
  129911. .sp
  129912. xpath(str): The XPATH of the configuration API tree to control.
  129913. .sp
  129914. newname(str): The new name of the XPATH value.
  129915. .sp
  129916. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129917. .sp
  129918. SLS Example:
  129919. .INDENT 7.0
  129920. .INDENT 3.5
  129921. .sp
  129922. .nf
  129923. .ft C
  129924. panos/renamegroup:
  129925. panos.rename_config:
  129926. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address/entry[@name=\(aqold_address\(aq]
  129927. \- value: new_address
  129928. \- commit: True
  129929. .ft P
  129930. .fi
  129931. .UNINDENT
  129932. .UNINDENT
  129933. .UNINDENT
  129934. .INDENT 0.0
  129935. .TP
  129936. .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)
  129937. Ensures that a security rule exists on the device. Also, ensure that all configurations are set appropriately.
  129938. .sp
  129939. This method will create the rule if it does not exist. If the rule does exist, it will ensure that the
  129940. configurations are set appropriately.
  129941. .sp
  129942. If the rule does not exist and is created, any value that is not provided will be provided as the default.
  129943. The action, to, from, source, destination, application, and service fields are mandatory and must be provided.
  129944. .sp
  129945. This will enforce the exact match of the rule. For example, if the rule is currently configured with the log\-end
  129946. option, but this option is not specified in the state method, it will be removed and reset to the system default.
  129947. .sp
  129948. It is strongly recommended to specify all options to ensure proper operation.
  129949. .sp
  129950. When defining the profile group settings, the device can only support either a profile group or individual settings.
  129951. If both are specified, the profile group will be preferred and the individual settings are ignored. If neither are
  129952. specified, the value will be set to system default of none.
  129953. .sp
  129954. name: The name of the module function to execute.
  129955. .sp
  129956. rulename(str): The name of the security rule. The name is case\-sensitive and can have up to 31 characters, which
  129957. can be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on Panorama,
  129958. unique within its device group and any ancestor or descendant device groups.
  129959. .sp
  129960. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129961. .sp
  129962. action(str): The action that the security rule will enforce. Valid options are: allow, deny, drop, reset\-client,
  129963. reset\-server, reset\-both.
  129964. .sp
  129965. disabled(bool): Controls if the rule is disabled. Set \(aqTrue\(aq to disable and \(aqFalse\(aq to enable.
  129966. .sp
  129967. sourcezone(str, list): The source zone(s). The value \(aqany\(aq will match all zones.
  129968. .sp
  129969. destinationzone(str, list): The destination zone(s). The value \(aqany\(aq will match all zones.
  129970. .sp
  129971. source(str, list): The source address(es). The value \(aqany\(aq will match all addresses.
  129972. .sp
  129973. destination(str, list): The destination address(es). The value \(aqany\(aq will match all addresses.
  129974. .sp
  129975. application(str, list): The application(s) matched. The value \(aqany\(aq will match all applications.
  129976. .sp
  129977. service(str, list): The service(s) matched. The value \(aqany\(aq will match all services. The value
  129978. \(aqapplication\-default\(aq will match based upon the application defined ports.
  129979. .sp
  129980. description(str): A description for the policy (up to 255 characters).
  129981. .sp
  129982. logsetting(str): The name of a valid log forwarding profile.
  129983. .sp
  129984. logstart(bool): Generates a traffic log entry for the start of a session (disabled by default).
  129985. .sp
  129986. logend(bool): Generates a traffic log entry for the end of a session (enabled by default).
  129987. .sp
  129988. negatesource(bool): Match all but the specified source addresses.
  129989. .sp
  129990. negatedestination(bool): Match all but the specified destination addresses.
  129991. .sp
  129992. profilegroup(str): A valid profile group name.
  129993. .sp
  129994. datafilter(str): A valid data filter profile name. Ignored with the profilegroup option set.
  129995. .sp
  129996. fileblock(str): A valid file blocking profile name. Ignored with the profilegroup option set.
  129997. .sp
  129998. spyware(str): A valid spyware profile name. Ignored with the profilegroup option set.
  129999. .sp
  130000. urlfilter(str): A valid URL filtering profile name. Ignored with the profilegroup option set.
  130001. .sp
  130002. virus(str): A valid virus profile name. Ignored with the profilegroup option set.
  130003. .sp
  130004. vulnerability(str): A valid vulnerability profile name. Ignored with the profilegroup option set.
  130005. .sp
  130006. wildfire(str): A valid vulnerability profile name. Ignored with the profilegroup option set.
  130007. .sp
  130008. move(str): An optional argument that ensure the rule is moved to a specific location. Valid options are \(aqtop\(aq,
  130009. \(aqbottom\(aq, \(aqbefore\(aq, or \(aqafter\(aq. The \(aqbefore\(aq and \(aqafter\(aq options require the use of the \(aqmovetarget\(aq argument
  130010. to define the location of the move request.
  130011. .sp
  130012. movetarget(str): An optional argument that defines the target of the move operation if the move argument is
  130013. set to \(aqbefore\(aq or \(aqafter\(aq.
  130014. .sp
  130015. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130016. .sp
  130017. SLS Example:
  130018. .INDENT 7.0
  130019. .INDENT 3.5
  130020. .sp
  130021. .nf
  130022. .ft C
  130023. panos/rulebase/security/rule01:
  130024. panos.security_rule_exists:
  130025. \- rulename: rule01
  130026. \- vsys: 1
  130027. \- action: allow
  130028. \- disabled: False
  130029. \- sourcezone: untrust
  130030. \- destinationzone: trust
  130031. \- source:
  130032. \- 10.10.10.0/24
  130033. \- 1.1.1.1
  130034. \- destination:
  130035. \- 2.2.2.2\-2.2.2.4
  130036. \- application:
  130037. \- any
  130038. \- service:
  130039. \- tcp\-25
  130040. \- description: My test security rule
  130041. \- logsetting: logprofile
  130042. \- logstart: False
  130043. \- logend: True
  130044. \- negatesource: False
  130045. \- negatedestination: False
  130046. \- profilegroup: myprofilegroup
  130047. \- move: top
  130048. \- commit: False
  130049. panos/rulebase/security/rule01:
  130050. panos.security_rule_exists:
  130051. \- rulename: rule01
  130052. \- vsys: 1
  130053. \- action: allow
  130054. \- disabled: False
  130055. \- sourcezone: untrust
  130056. \- destinationzone: trust
  130057. \- source:
  130058. \- 10.10.10.0/24
  130059. \- 1.1.1.1
  130060. \- destination:
  130061. \- 2.2.2.2\-2.2.2.4
  130062. \- application:
  130063. \- any
  130064. \- service:
  130065. \- tcp\-25
  130066. \- description: My test security rule
  130067. \- logsetting: logprofile
  130068. \- logstart: False
  130069. \- logend: False
  130070. \- datafilter: foobar
  130071. \- fileblock: foobar
  130072. \- spyware: foobar
  130073. \- urlfilter: foobar
  130074. \- virus: foobar
  130075. \- vulnerability: foobar
  130076. \- wildfire: foobar
  130077. \- move: after
  130078. \- movetarget: rule02
  130079. \- commit: False
  130080. .ft P
  130081. .fi
  130082. .UNINDENT
  130083. .UNINDENT
  130084. .UNINDENT
  130085. .INDENT 0.0
  130086. .TP
  130087. .B salt.states.panos.service_exists(name, servicename=None, vsys=1, protocol=None, port=None, description=None, commit=False)
  130088. Ensures that a service object exists in the configured state. If it does not exist or is not configured with the
  130089. specified attributes, it will be adjusted to match the specified values.
  130090. .sp
  130091. name: The name of the module function to execute.
  130092. .sp
  130093. servicename(str): The name of the security object. The name is case\-sensitive and can have up to 31 characters,
  130094. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  130095. Panorama, unique within its device group and any ancestor or descendant device groups.
  130096. .sp
  130097. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  130098. .sp
  130099. protocol(str): The protocol that is used by the service object. The only valid options are tcp and udp.
  130100. .sp
  130101. port(str): The port number that is used by the service object. This can be specified as a single integer or a
  130102. valid range of ports.
  130103. .sp
  130104. description(str): A description for the policy (up to 255 characters).
  130105. .sp
  130106. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130107. .sp
  130108. SLS Example:
  130109. .INDENT 7.0
  130110. .INDENT 3.5
  130111. .sp
  130112. .nf
  130113. .ft C
  130114. panos/service/tcp\-80:
  130115. panos.service_exists:
  130116. \- servicename: tcp\-80
  130117. \- vsys: 1
  130118. \- protocol: tcp
  130119. \- port: 80
  130120. \- description: Hypertext Transfer Protocol
  130121. \- commit: False
  130122. panos/service/udp\-500\-550:
  130123. panos.service_exists:
  130124. \- servicename: udp\-500\-550
  130125. \- vsys: 3
  130126. \- protocol: udp
  130127. \- port: 500\-550
  130128. \- commit: False
  130129. .ft P
  130130. .fi
  130131. .UNINDENT
  130132. .UNINDENT
  130133. .UNINDENT
  130134. .INDENT 0.0
  130135. .TP
  130136. .B salt.states.panos.service_group_exists(name, groupname=None, vsys=1, members=None, description=None, commit=False)
  130137. Ensures that a service group object exists in the configured state. If it does not exist or is not configured with
  130138. the specified attributes, it will be adjusted to match the specified values.
  130139. .sp
  130140. This module will enforce group membership. If a group exists and contains members this state does not include,
  130141. those members will be removed and replaced with the specified members in the state.
  130142. .sp
  130143. name: The name of the module function to execute.
  130144. .sp
  130145. groupname(str): The name of the service group object. The name is case\-sensitive and can have up to 31 characters,
  130146. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  130147. Panorama, unique within its device group and any ancestor or descendant device groups.
  130148. .sp
  130149. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  130150. .sp
  130151. members(str, list): The members of the service group. These must be valid service objects or service groups on the
  130152. system that already exist prior to the execution of this state.
  130153. .sp
  130154. description(str): A description for the policy (up to 255 characters).
  130155. .sp
  130156. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130157. .sp
  130158. SLS Example:
  130159. .INDENT 7.0
  130160. .INDENT 3.5
  130161. .sp
  130162. .nf
  130163. .ft C
  130164. panos/service\-group/my\-group:
  130165. panos.service_group_exists:
  130166. \- groupname: my\-group
  130167. \- vsys: 1
  130168. \- members:
  130169. \- tcp\-80
  130170. \- custom\-port\-group
  130171. \- description: A group that needs to exist
  130172. \- commit: False
  130173. .ft P
  130174. .fi
  130175. .UNINDENT
  130176. .UNINDENT
  130177. .UNINDENT
  130178. .INDENT 0.0
  130179. .TP
  130180. .B salt.states.panos.set_config(name, xpath=None, value=None, commit=False)
  130181. Sets a Palo Alto XPATH to a specific value. This will always overwrite the existing value, even if it is not
  130182. changed.
  130183. .sp
  130184. You can add or create a new object at a specified location in the configuration hierarchy. Use the xpath parameter
  130185. to specify the location of the object in the configuration
  130186. .sp
  130187. name: The name of the module function to execute.
  130188. .sp
  130189. xpath(str): The XPATH of the configuration API tree to control.
  130190. .sp
  130191. value(str): The XML value to set. This must be a child to the XPATH.
  130192. .sp
  130193. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130194. .sp
  130195. SLS Example:
  130196. .INDENT 7.0
  130197. .INDENT 3.5
  130198. .sp
  130199. .nf
  130200. .ft C
  130201. panos/hostname:
  130202. panos.set_config:
  130203. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/deviceconfig/system
  130204. \- value: <hostname>foobar</hostname>
  130205. \- commit: True
  130206. .ft P
  130207. .fi
  130208. .UNINDENT
  130209. .UNINDENT
  130210. .UNINDENT
  130211. .SS salt.states.pecl
  130212. .SS Installation of PHP Extensions Using pecl
  130213. .sp
  130214. These states manage the installed pecl extensions. Note that php\-pear must be
  130215. installed for these states to be available, so pecl states should include a
  130216. requisite to a pkg.installed state for the package which provides pecl
  130217. (\fBphp\-pear\fP in most cases). Example:
  130218. .INDENT 0.0
  130219. .INDENT 3.5
  130220. .sp
  130221. .nf
  130222. .ft C
  130223. php\-pear:
  130224. pkg.installed
  130225. mongo:
  130226. pecl.installed:
  130227. \- require:
  130228. \- pkg: php\-pear
  130229. .ft P
  130230. .fi
  130231. .UNINDENT
  130232. .UNINDENT
  130233. .INDENT 0.0
  130234. .TP
  130235. .B salt.states.pecl.installed(name, version=None, defaults=False, force=False, preferred_state=u\(aqstable\(aq)
  130236. New in version 0.17.0.
  130237. .sp
  130238. Make sure that a pecl extension is installed.
  130239. .INDENT 7.0
  130240. .TP
  130241. .B name
  130242. The pecl extension name to install
  130243. .TP
  130244. .B version
  130245. The pecl extension version to install. This option may be
  130246. ignored to install the latest stable version.
  130247. .TP
  130248. .B defaults
  130249. Use default answers for extensions such as pecl_http which ask
  130250. questions before installation. Without this option, the pecl.installed
  130251. state will hang indefinitely when trying to install these extensions.
  130252. .TP
  130253. .B force
  130254. Whether to force the installed version or not
  130255. .TP
  130256. .B preferred_state
  130257. The pecl extension state to install
  130258. .UNINDENT
  130259. .UNINDENT
  130260. .INDENT 0.0
  130261. .TP
  130262. .B salt.states.pecl.removed(name)
  130263. Make sure that a pecl extension is not installed.
  130264. .INDENT 7.0
  130265. .TP
  130266. .B name
  130267. The pecl extension name to uninstall
  130268. .UNINDENT
  130269. .UNINDENT
  130270. .SS salt.states.pkgbuild
  130271. .sp
  130272. The pkgbuild state is the front of Salt package building backend. It
  130273. automatically builds DEB and RPM packages from specified sources
  130274. .sp
  130275. New in version 2015.8.0.
  130276. .INDENT 0.0
  130277. .INDENT 3.5
  130278. .sp
  130279. .nf
  130280. .ft C
  130281. salt_2015.5.2:
  130282. pkgbuild.built:
  130283. \- runas: thatch
  130284. \- results:
  130285. \- salt\-2015.5.2\-2.el7.centos.noarch.rpm
  130286. \- salt\-api\-2015.5.2\-2.el7.centos.noarch.rpm
  130287. \- salt\-cloud\-2015.5.2\-2.el7.centos.noarch.rpm
  130288. \- salt\-master\-2015.5.2\-2.el7.centos.noarch.rpm
  130289. \- salt\-minion\-2015.5.2\-2.el7.centos.noarch.rpm
  130290. \- salt\-ssh\-2015.5.2\-2.el7.centos.noarch.rpm
  130291. \- salt\-syndic\-2015.5.2\-2.el7.centos.noarch.rpm
  130292. \- dest_dir: /tmp/pkg
  130293. \- spec: salt://pkg/salt/spec/salt.spec
  130294. \- template: jinja
  130295. \- deps:
  130296. \- salt://pkg/salt/sources/required_dependency.rpm
  130297. \- tgt: epel\-7\-x86_64
  130298. \- sources:
  130299. \- salt://pkg/salt/sources/logrotate.salt
  130300. \- salt://pkg/salt/sources/README.fedora
  130301. \- salt://pkg/salt/sources/salt\-2015.5.2.tar.gz
  130302. \- salt://pkg/salt/sources/salt\-2015.5.2\-tests.patch
  130303. \- salt://pkg/salt/sources/salt\-api
  130304. \- salt://pkg/salt/sources/salt\-api.service
  130305. \- salt://pkg/salt/sources/salt\-master
  130306. \- salt://pkg/salt/sources/salt\-master.service
  130307. \- salt://pkg/salt/sources/salt\-minion
  130308. \- salt://pkg/salt/sources/salt\-minion.service
  130309. \- salt://pkg/salt/sources/saltpkg.sls
  130310. \- salt://pkg/salt/sources/salt\-syndic
  130311. \- salt://pkg/salt/sources/salt\-syndic.service
  130312. \- salt://pkg/salt/sources/SaltTesting\-2015.5.8.tar.gz
  130313. /tmp/pkg:
  130314. pkgbuild.repo
  130315. .ft P
  130316. .fi
  130317. .UNINDENT
  130318. .UNINDENT
  130319. .INDENT 0.0
  130320. .TP
  130321. .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)
  130322. Ensure that the named package is built and exists in the named directory
  130323. .INDENT 7.0
  130324. .TP
  130325. .B name
  130326. The name to track the build, the name value is otherwise unused
  130327. .TP
  130328. .B runas
  130329. The user to run the build process as
  130330. .TP
  130331. .B dest_dir
  130332. The directory on the minion to place the built package(s)
  130333. .TP
  130334. .B spec
  130335. The location of the spec file (used for rpms)
  130336. .TP
  130337. .B sources
  130338. The list of package sources
  130339. .TP
  130340. .B tgt
  130341. The target platform to run the build on
  130342. .TP
  130343. .B template
  130344. Run the spec file through a templating engine
  130345. .sp
  130346. Changed in version 2015.8.2: This argument is now optional, allowing for no templating engine to
  130347. be used if none is desired.
  130348. .TP
  130349. .B deps
  130350. Packages required to ensure that the named package is built
  130351. can be hosted on either the salt master server or on an HTTP
  130352. or FTP server. Both HTTPS and HTTP are supported as well as
  130353. downloading directly from Amazon S3 compatible URLs with both
  130354. pre\-configured and automatic IAM credentials
  130355. .TP
  130356. .B env
  130357. A dictionary of environment variables to be set prior to execution.
  130358. Example:
  130359. .INDENT 7.0
  130360. .INDENT 3.5
  130361. .sp
  130362. .nf
  130363. .ft C
  130364. \- env:
  130365. DEB_BUILD_OPTIONS: \(aqnocheck\(aq
  130366. .ft P
  130367. .fi
  130368. .UNINDENT
  130369. .UNINDENT
  130370. .sp
  130371. \fBWARNING:\fP
  130372. .INDENT 7.0
  130373. .INDENT 3.5
  130374. The above illustrates a common PyYAML pitfall, that \fByes\fP,
  130375. \fBno\fP, \fBon\fP, \fBoff\fP, \fBtrue\fP, and \fBfalse\fP are all loaded as
  130376. boolean \fBTrue\fP and \fBFalse\fP values, and must be enclosed in
  130377. quotes to be used as strings. More info on this (and other) PyYAML
  130378. idiosyncrasies can be found here\&.
  130379. .UNINDENT
  130380. .UNINDENT
  130381. .TP
  130382. .B results
  130383. The names of the expected rpms that will be built
  130384. .TP
  130385. .B force
  130386. False
  130387. If \fBTrue\fP, packages will be built even if they already exist in the
  130388. \fBdest_dir\fP\&. This is useful when building a package for continuous or
  130389. nightly package builds.
  130390. .sp
  130391. New in version 2015.8.2.
  130392. .TP
  130393. .B saltenv
  130394. The saltenv to use for files downloaded from the salt filesever
  130395. .TP
  130396. .B log_dir
  130397. /var/log/salt/rpmbuild
  130398. Root directory for log files created from the build. Logs will be
  130399. organized by package name, version, OS release, and CPU architecture
  130400. under this directory.
  130401. .sp
  130402. New in version 2015.8.2.
  130403. .UNINDENT
  130404. .UNINDENT
  130405. .INDENT 0.0
  130406. .TP
  130407. .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)
  130408. Make a package repository and optionally sign it and packages present
  130409. .sp
  130410. The name is directory to turn into a repo. This state is best used
  130411. with onchanges linked to your package building states.
  130412. .INDENT 7.0
  130413. .TP
  130414. .B name
  130415. The directory to find packages that will be in the repository
  130416. .TP
  130417. .B keyid
  130418. Changed in version 2016.3.0.
  130419. .sp
  130420. Optional Key ID to use in signing packages and repository.
  130421. Utilizes Public and Private keys associated with keyid which have
  130422. been loaded into the minion\(aqs Pillar data.
  130423. .sp
  130424. For example, contents from a Pillar data file with named Public
  130425. and Private keys as follows:
  130426. .INDENT 7.0
  130427. .INDENT 3.5
  130428. .sp
  130429. .nf
  130430. .ft C
  130431. gpg_pkg_priv_key: |
  130432. \-\-\-\-\-BEGIN PGP PRIVATE KEY BLOCK\-\-\-\-\-
  130433. Version: GnuPG v1
  130434. lQO+BFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b
  130435. w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc
  130436. .
  130437. .
  130438. Ebe+8JCQTwqSXPRTzXmy/b5WXDeM79CkLWvuGpXFor76D+ECMRPv/rawukEcNptn
  130439. R5OmgHqvydEnO4pWbn8JzQO9YX/Us0SMHBVzLC8eIi5ZIopzalvX
  130440. =JvW8
  130441. \-\-\-\-\-END PGP PRIVATE KEY BLOCK\-\-\-\-\-
  130442. gpg_pkg_priv_keyname: gpg_pkg_key.pem
  130443. gpg_pkg_pub_key: |
  130444. \-\-\-\-\-BEGIN PGP PUBLIC KEY BLOCK\-\-\-\-\-
  130445. Version: GnuPG v1
  130446. mQENBFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b
  130447. w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc
  130448. .
  130449. .
  130450. bYP7t5iwJmQzRMyFInYRt77wkJBPCpJc9FPNebL9vlZcN4zv0KQta+4alcWivvoP
  130451. 4QIxE+/+trC6QRw2m2dHk6aAeq/J0Sc7ilZufwnNA71hf9SzRIwcFXMsLx4iLlki
  130452. inNqW9c=
  130453. =s1CX
  130454. \-\-\-\-\-END PGP PUBLIC KEY BLOCK\-\-\-\-\-
  130455. gpg_pkg_pub_keyname: gpg_pkg_key.pub
  130456. .ft P
  130457. .fi
  130458. .UNINDENT
  130459. .UNINDENT
  130460. .TP
  130461. .B env
  130462. Changed in version 2016.3.0.
  130463. .sp
  130464. A dictionary of environment variables to be utilized in creating the
  130465. repository. Example:
  130466. .INDENT 7.0
  130467. .INDENT 3.5
  130468. .sp
  130469. .nf
  130470. .ft C
  130471. \- env:
  130472. OPTIONS: \(aqask\-passphrase\(aq
  130473. .ft P
  130474. .fi
  130475. .UNINDENT
  130476. .UNINDENT
  130477. .sp
  130478. \fBWARNING:\fP
  130479. .INDENT 7.0
  130480. .INDENT 3.5
  130481. The above illustrates a common \fBPyYAML\fP pitfall, that \fByes\fP,
  130482. \fBno\fP, \fBon\fP, \fBoff\fP, \fBtrue\fP, and \fBfalse\fP are all loaded as
  130483. boolean \fBTrue\fP and \fBFalse\fP values, and must be enclosed in
  130484. quotes to be used as strings. More info on this (and other)
  130485. \fBPyYAML\fP idiosyncrasies can be found here\&.
  130486. .sp
  130487. Use of \fBOPTIONS\fP on some platforms, for example:
  130488. \fBask\-passphrase\fP, will require \fBgpg\-agent\fP or similar to cache
  130489. passphrases.
  130490. .UNINDENT
  130491. .UNINDENT
  130492. .sp
  130493. \fBNOTE:\fP
  130494. .INDENT 7.0
  130495. .INDENT 3.5
  130496. This parameter is not used for making \fByum\fP repositories.
  130497. .UNINDENT
  130498. .UNINDENT
  130499. .TP
  130500. .B use_passphrase
  130501. False
  130502. New in version 2016.3.0.
  130503. .sp
  130504. Use a passphrase with the signing key presented in \fBkeyid\fP\&.
  130505. Passphrase is received from Pillar data which could be passed on the
  130506. command line with \fBpillar\fP parameter. For example:
  130507. .INDENT 7.0
  130508. .INDENT 3.5
  130509. .sp
  130510. .nf
  130511. .ft C
  130512. pillar=\(aq{ "gpg_passphrase" : "my_passphrase" }\(aq
  130513. .ft P
  130514. .fi
  130515. .UNINDENT
  130516. .UNINDENT
  130517. .TP
  130518. .B gnupghome
  130519. /etc/salt/gpgkeys
  130520. New in version 2016.3.0.
  130521. .sp
  130522. Location where GPG related files are stored, used with \(aqkeyid\(aq
  130523. .TP
  130524. .B runas
  130525. builder
  130526. New in version 2016.3.0.
  130527. .sp
  130528. User to create the repository as, and optionally sign packages.
  130529. .sp
  130530. \fBNOTE:\fP
  130531. .INDENT 7.0
  130532. .INDENT 3.5
  130533. Ensure the user has correct permissions to any files and
  130534. directories which are to be utilized.
  130535. .UNINDENT
  130536. .UNINDENT
  130537. .TP
  130538. .B timeout
  130539. 15.0
  130540. New in version 2016.3.4.
  130541. .sp
  130542. Timeout in seconds to wait for the prompt for inputting the passphrase.
  130543. .UNINDENT
  130544. .UNINDENT
  130545. .SS salt.states.pkgng
  130546. .SS Manage package remote repo using FreeBSD pkgng
  130547. .sp
  130548. Salt can manage the URL pkgng pulls packages from.
  130549. ATM the state and module are small so use cases are
  130550. typically rather simple:
  130551. .INDENT 0.0
  130552. .INDENT 3.5
  130553. .sp
  130554. .nf
  130555. .ft C
  130556. pkgng_clients:
  130557. pkgng.update_packaging_site:
  130558. \- name: "http://192.168.0.2"
  130559. .ft P
  130560. .fi
  130561. .UNINDENT
  130562. .UNINDENT
  130563. .INDENT 0.0
  130564. .TP
  130565. .B salt.states.pkgng.update_packaging_site(name)
  130566. .UNINDENT
  130567. .SS salt.states.portage_config
  130568. .SS Management of Portage package configuration on Gentoo
  130569. .sp
  130570. A state module to manage Portage configuration on Gentoo
  130571. .INDENT 0.0
  130572. .INDENT 3.5
  130573. .sp
  130574. .nf
  130575. .ft C
  130576. salt:
  130577. portage_config.flags:
  130578. \- use:
  130579. \- openssl
  130580. .ft P
  130581. .fi
  130582. .UNINDENT
  130583. .UNINDENT
  130584. .INDENT 0.0
  130585. .TP
  130586. .B salt.states.portage_config.flags(name, use=None, accept_keywords=None, env=None, license=None, properties=None, unmask=False, mask=False)
  130587. Enforce the given flags on the given package or \fBDEPEND\fP atom.
  130588. .sp
  130589. \fBWARNING:\fP
  130590. .INDENT 7.0
  130591. .INDENT 3.5
  130592. In most cases, the affected package(s) need to be rebuilt in
  130593. order to apply the changes.
  130594. .UNINDENT
  130595. .UNINDENT
  130596. .INDENT 7.0
  130597. .TP
  130598. .B name
  130599. The name of the package or its DEPEND atom
  130600. .TP
  130601. .B use
  130602. A list of \fBUSE\fP flags
  130603. .TP
  130604. .B accept_keywords
  130605. A list of keywords to accept. \fB~ARCH\fP means current host arch, and will
  130606. be translated into a line without keywords
  130607. .TP
  130608. .B env
  130609. A list of environment files
  130610. .TP
  130611. .B license
  130612. A list of accepted licenses
  130613. .TP
  130614. .B properties
  130615. A list of additional properties
  130616. .TP
  130617. .B unmask
  130618. A boolean to unmask the package
  130619. .TP
  130620. .B mask
  130621. A boolean to mask the package
  130622. .UNINDENT
  130623. .UNINDENT
  130624. .SS salt.states.postgres_cluster module
  130625. .SS Management of PostgreSQL clusters
  130626. .sp
  130627. The postgres_cluster state module is used to manage PostgreSQL clusters.
  130628. Clusters can be set as either absent or present
  130629. .INDENT 0.0
  130630. .INDENT 3.5
  130631. .sp
  130632. .nf
  130633. .ft C
  130634. create cluster 9.3 main:
  130635. postgres_cluster.present:
  130636. \- name: \(aqmain\(aq
  130637. \- version: \(aq9.3\(aq
  130638. .ft P
  130639. .fi
  130640. .UNINDENT
  130641. .UNINDENT
  130642. .INDENT 0.0
  130643. .TP
  130644. .B salt.states.postgres_cluster.absent(version, name)
  130645. Ensure that the named cluster is absent
  130646. .INDENT 7.0
  130647. .TP
  130648. .B version
  130649. Version of the postgresql server of the cluster to remove
  130650. .TP
  130651. .B name
  130652. The name of the cluster to remove
  130653. .sp
  130654. New in version 2015.XX.
  130655. .UNINDENT
  130656. .UNINDENT
  130657. .INDENT 0.0
  130658. .TP
  130659. .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)
  130660. Ensure that the named cluster is present with the specified properties.
  130661. For more information about all of these options see man pg_createcluster(1)
  130662. .INDENT 7.0
  130663. .TP
  130664. .B version
  130665. Version of the postgresql cluster
  130666. .TP
  130667. .B name
  130668. The name of the cluster
  130669. .TP
  130670. .B port
  130671. Cluster port
  130672. .TP
  130673. .B encoding
  130674. The character encoding scheme to be used in this database
  130675. .TP
  130676. .B locale
  130677. Locale with which to create cluster
  130678. .TP
  130679. .B datadir
  130680. Where the cluster is stored
  130681. .TP
  130682. .B allow_group_access
  130683. Allows users in the same group as the cluster owner to read all cluster files created by initdb
  130684. .TP
  130685. .B data_checksums
  130686. Use checksums on data pages
  130687. .TP
  130688. .B wal_segsize
  130689. Set the WAL segment size, in megabytes
  130690. .sp
  130691. New in version 2015.XX.
  130692. .UNINDENT
  130693. .UNINDENT
  130694. .SS salt.states.postgres_database
  130695. .SS Management of PostgreSQL databases
  130696. .sp
  130697. The postgres_database module is used to create and manage Postgres databases.
  130698. Databases can be set as either absent or present
  130699. .INDENT 0.0
  130700. .INDENT 3.5
  130701. .sp
  130702. .nf
  130703. .ft C
  130704. frank:
  130705. postgres_database.present
  130706. .ft P
  130707. .fi
  130708. .UNINDENT
  130709. .UNINDENT
  130710. .INDENT 0.0
  130711. .TP
  130712. .B salt.states.postgres_database.absent(name, user=None, maintenance_db=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130713. Ensure that the named database is absent
  130714. .INDENT 7.0
  130715. .TP
  130716. .B name
  130717. The name of the database to remove
  130718. .TP
  130719. .B db_user
  130720. database username if different from config or default
  130721. .TP
  130722. .B db_password
  130723. user password if any password for a specified user
  130724. .TP
  130725. .B db_host
  130726. Database host if different from config or default
  130727. .TP
  130728. .B db_port
  130729. Database port if different from config or default
  130730. .TP
  130731. .B user
  130732. System user all operations should be performed on behalf of
  130733. .sp
  130734. New in version 0.17.0.
  130735. .UNINDENT
  130736. .UNINDENT
  130737. .INDENT 0.0
  130738. .TP
  130739. .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)
  130740. Ensure that the named database is present with the specified properties.
  130741. For more information about all of these options see man createdb(1)
  130742. .INDENT 7.0
  130743. .TP
  130744. .B name
  130745. The name of the database to manage
  130746. .TP
  130747. .B tablespace
  130748. Default tablespace for the database
  130749. .TP
  130750. .B encoding
  130751. The character encoding scheme to be used in this database
  130752. .TP
  130753. .B lc_collate
  130754. The LC_COLLATE setting to be used in this database
  130755. .TP
  130756. .B lc_ctype
  130757. The LC_CTYPE setting to be used in this database
  130758. .TP
  130759. .B owner
  130760. The username of the database owner
  130761. .TP
  130762. .B owner_recurse
  130763. Recurse owner change to all relations in the database
  130764. .TP
  130765. .B template
  130766. The template database from which to build this database
  130767. .TP
  130768. .B user
  130769. System user all operations should be performed on behalf of
  130770. .TP
  130771. .B db_user
  130772. database username if different from config or default
  130773. .TP
  130774. .B db_password
  130775. user password if any password for a specified user
  130776. .TP
  130777. .B db_host
  130778. Database host if different from config or default
  130779. .TP
  130780. .B db_port
  130781. Database port if different from config or default
  130782. .sp
  130783. New in version 0.17.0.
  130784. .UNINDENT
  130785. .UNINDENT
  130786. .SS salt.states.postgres_initdb
  130787. .SS Initialization of PostgreSQL data directory
  130788. .sp
  130789. The postgres_initdb module is used to initialize the postgresql
  130790. data directory.
  130791. .sp
  130792. New in version 2016.3.0.
  130793. .INDENT 0.0
  130794. .INDENT 3.5
  130795. .sp
  130796. .nf
  130797. .ft C
  130798. pgsql\-data\-dir:
  130799. postgres_initdb.present:
  130800. \- name: /var/lib/pgsql/data
  130801. \- auth: password
  130802. \- user: postgres
  130803. \- password: strong_password
  130804. \- encoding: UTF8
  130805. \- locale: C
  130806. \- runas: postgres
  130807. \- allow_group_access: True
  130808. \- data_checksums: True
  130809. \- wal_segsize: 32
  130810. .ft P
  130811. .fi
  130812. .UNINDENT
  130813. .UNINDENT
  130814. .INDENT 0.0
  130815. .TP
  130816. .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)
  130817. Initialize the PostgreSQL data directory
  130818. .INDENT 7.0
  130819. .TP
  130820. .B name
  130821. The name of the directory to initialize
  130822. .TP
  130823. .B user
  130824. The database superuser name
  130825. .TP
  130826. .B password
  130827. The password to set for the postgres user
  130828. .TP
  130829. .B auth
  130830. The default authentication method for local connections
  130831. .TP
  130832. .B encoding
  130833. The default encoding for new databases
  130834. .TP
  130835. .B locale
  130836. The default locale for new databases
  130837. .TP
  130838. .B waldir
  130839. The transaction log (WAL) directory (default is to keep WAL
  130840. inside the data directory)
  130841. .sp
  130842. New in version 2019.2.0.
  130843. .TP
  130844. .B checksums
  130845. If True, the cluster will be created with data page checksums.
  130846. .sp
  130847. \fBNOTE:\fP
  130848. .INDENT 7.0
  130849. .INDENT 3.5
  130850. Data page checksums are supported since PostgreSQL 9.3.
  130851. .UNINDENT
  130852. .UNINDENT
  130853. .sp
  130854. New in version 2019.2.0.
  130855. .TP
  130856. .B runas
  130857. The system user the operation should be performed on behalf of
  130858. .UNINDENT
  130859. .UNINDENT
  130860. .SS salt.states.postgres_language
  130861. .SS Management of PostgreSQL languages
  130862. .sp
  130863. The postgres_language module is used to create and manage Postgres languages.
  130864. Languages can be set as either absent or present
  130865. .sp
  130866. New in version 2016.3.0.
  130867. .INDENT 0.0
  130868. .INDENT 3.5
  130869. .sp
  130870. .nf
  130871. .ft C
  130872. plpgsql:
  130873. postgres_language.present:
  130874. \- maintenance_db: testdb
  130875. .ft P
  130876. .fi
  130877. .UNINDENT
  130878. .UNINDENT
  130879. .INDENT 0.0
  130880. .INDENT 3.5
  130881. .sp
  130882. .nf
  130883. .ft C
  130884. plpgsql:
  130885. postgres_language.absent:
  130886. \- maintenance_db: testdb
  130887. .ft P
  130888. .fi
  130889. .UNINDENT
  130890. .UNINDENT
  130891. .INDENT 0.0
  130892. .TP
  130893. .B salt.states.postgres_language.absent(name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130894. Ensure that a named language is absent in the specified
  130895. database.
  130896. .INDENT 7.0
  130897. .TP
  130898. .B name
  130899. The name of the language to remove
  130900. .TP
  130901. .B maintenance_db
  130902. The name of the database in which the language is to be installed
  130903. .TP
  130904. .B user
  130905. System user all operations should be performed on behalf of
  130906. .TP
  130907. .B db_user
  130908. database username if different from config or default
  130909. .TP
  130910. .B db_password
  130911. user password if any password for a specified user
  130912. .TP
  130913. .B db_host
  130914. Database host if different from config or default
  130915. .TP
  130916. .B db_port
  130917. Database port if different from config or default
  130918. .UNINDENT
  130919. .UNINDENT
  130920. .INDENT 0.0
  130921. .TP
  130922. .B salt.states.postgres_language.present(name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130923. Ensure that a named language is present in the specified
  130924. database.
  130925. .INDENT 7.0
  130926. .TP
  130927. .B name
  130928. The name of the language to install
  130929. .TP
  130930. .B maintenance_db
  130931. The name of the database in which the language is to be installed
  130932. .TP
  130933. .B user
  130934. System user all operations should be performed on behalf of
  130935. .TP
  130936. .B db_user
  130937. database username if different from config or default
  130938. .TP
  130939. .B db_password
  130940. user password if any password for a specified user
  130941. .TP
  130942. .B db_host
  130943. Database host if different from config or default
  130944. .TP
  130945. .B db_port
  130946. Database port if different from config or default
  130947. .UNINDENT
  130948. .UNINDENT
  130949. .SS salt.states.postgres_privileges
  130950. .SS Management of PostgreSQL Privileges
  130951. .sp
  130952. The postgres_privileges module is used to manage Postgres privileges.
  130953. Privileges can be set as either absent or present.
  130954. .sp
  130955. Privileges can be set on the following database object types:
  130956. .INDENT 0.0
  130957. .IP \(bu 2
  130958. database
  130959. .IP \(bu 2
  130960. schema
  130961. .IP \(bu 2
  130962. tablespace
  130963. .IP \(bu 2
  130964. table
  130965. .IP \(bu 2
  130966. sequence
  130967. .IP \(bu 2
  130968. language
  130969. .IP \(bu 2
  130970. group
  130971. .UNINDENT
  130972. .sp
  130973. Setting the grant option is supported as well.
  130974. .sp
  130975. New in version 2016.3.0.
  130976. .INDENT 0.0
  130977. .INDENT 3.5
  130978. .sp
  130979. .nf
  130980. .ft C
  130981. baruwa:
  130982. postgres_privileges.present:
  130983. \- object_name: awl
  130984. \- object_type: table
  130985. \- privileges:
  130986. \- SELECT
  130987. \- INSERT
  130988. \- DELETE
  130989. \- grant_option: False
  130990. \- prepend: public
  130991. \- maintenance_db: testdb
  130992. .ft P
  130993. .fi
  130994. .UNINDENT
  130995. .UNINDENT
  130996. .INDENT 0.0
  130997. .INDENT 3.5
  130998. .sp
  130999. .nf
  131000. .ft C
  131001. andrew:
  131002. postgres_privileges.present:
  131003. \- object_name: admins
  131004. \- object_type: group
  131005. \- grant_option: False
  131006. \- maintenance_db: testdb
  131007. .ft P
  131008. .fi
  131009. .UNINDENT
  131010. .UNINDENT
  131011. .INDENT 0.0
  131012. .INDENT 3.5
  131013. .sp
  131014. .nf
  131015. .ft C
  131016. baruwa:
  131017. postgres_privileges.absent:
  131018. \- object_name: awl
  131019. \- object_type: table
  131020. \- privileges:
  131021. \- SELECT
  131022. \- INSERT
  131023. \- DELETE
  131024. \- prepend: public
  131025. \- maintenance_db: testdb
  131026. .ft P
  131027. .fi
  131028. .UNINDENT
  131029. .UNINDENT
  131030. .INDENT 0.0
  131031. .INDENT 3.5
  131032. .sp
  131033. .nf
  131034. .ft C
  131035. andrew:
  131036. postgres_privileges.absent:
  131037. \- object_name: admins
  131038. \- object_type: group
  131039. \- maintenance_db: testdb
  131040. .ft P
  131041. .fi
  131042. .UNINDENT
  131043. .UNINDENT
  131044. .INDENT 0.0
  131045. .TP
  131046. .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)
  131047. Revoke the requested privilege(s) on the specificed object(s)
  131048. .INDENT 7.0
  131049. .TP
  131050. .B name
  131051. Name of the role whose privileges should be revoked
  131052. .TP
  131053. .B object_name
  131054. Name of the object on which the revoke is to be performed
  131055. .TP
  131056. .B object_type
  131057. The object type, which can be one of the following:
  131058. .INDENT 7.0
  131059. .IP \(bu 2
  131060. table
  131061. .IP \(bu 2
  131062. sequence
  131063. .IP \(bu 2
  131064. schema
  131065. .IP \(bu 2
  131066. tablespace
  131067. .IP \(bu 2
  131068. language
  131069. .IP \(bu 2
  131070. database
  131071. .IP \(bu 2
  131072. group
  131073. .IP \(bu 2
  131074. function
  131075. .UNINDENT
  131076. .sp
  131077. View permissions should specify \fIobject_type: table\fP\&.
  131078. .TP
  131079. .B privileges
  131080. Comma separated list of privileges to revoke, from the list below:
  131081. .INDENT 7.0
  131082. .IP \(bu 2
  131083. INSERT
  131084. .IP \(bu 2
  131085. CREATE
  131086. .IP \(bu 2
  131087. TRUNCATE
  131088. .IP \(bu 2
  131089. CONNECT
  131090. .IP \(bu 2
  131091. TRIGGER
  131092. .IP \(bu 2
  131093. SELECT
  131094. .IP \(bu 2
  131095. USAGE
  131096. .IP \(bu 2
  131097. TEMPORARY
  131098. .IP \(bu 2
  131099. UPDATE
  131100. .IP \(bu 2
  131101. EXECUTE
  131102. .IP \(bu 2
  131103. REFERENCES
  131104. .IP \(bu 2
  131105. DELETE
  131106. .IP \(bu 2
  131107. ALL
  131108. .UNINDENT
  131109. .INDENT 7.0
  131110. .TP
  131111. .B note
  131112. privileges should not be set when revoking group membership
  131113. .UNINDENT
  131114. .TP
  131115. .B prepend
  131116. Table and Sequence object types live under a schema so this should be
  131117. provided if the object is not under the default \fIpublic\fP schema
  131118. .TP
  131119. .B maintenance_db
  131120. The name of the database in which the language is to be installed
  131121. .TP
  131122. .B user
  131123. System user all operations should be performed on behalf of
  131124. .TP
  131125. .B db_user
  131126. database username if different from config or default
  131127. .TP
  131128. .B db_password
  131129. user password if any password for a specified user
  131130. .TP
  131131. .B db_host
  131132. Database host if different from config or default
  131133. .TP
  131134. .B db_port
  131135. Database port if different from config or default
  131136. .UNINDENT
  131137. .UNINDENT
  131138. .INDENT 0.0
  131139. .TP
  131140. .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)
  131141. Grant the requested privilege(s) on the specified object to a role
  131142. .INDENT 7.0
  131143. .TP
  131144. .B name
  131145. Name of the role to which privileges should be granted
  131146. .TP
  131147. .B object_name
  131148. Name of the object on which the grant is to be performed.
  131149. \(aqALL\(aq may be used for objects of type \(aqtable\(aq or \(aqsequence\(aq.
  131150. .TP
  131151. .B object_type
  131152. The object type, which can be one of the following:
  131153. .INDENT 7.0
  131154. .IP \(bu 2
  131155. table
  131156. .IP \(bu 2
  131157. sequence
  131158. .IP \(bu 2
  131159. schema
  131160. .IP \(bu 2
  131161. tablespace
  131162. .IP \(bu 2
  131163. language
  131164. .IP \(bu 2
  131165. database
  131166. .IP \(bu 2
  131167. group
  131168. .IP \(bu 2
  131169. function
  131170. .UNINDENT
  131171. .sp
  131172. View permissions should specify \fIobject_type: table\fP\&.
  131173. .TP
  131174. .B privileges
  131175. List of privileges to grant, from the list below:
  131176. .INDENT 7.0
  131177. .IP \(bu 2
  131178. INSERT
  131179. .IP \(bu 2
  131180. CREATE
  131181. .IP \(bu 2
  131182. TRUNCATE
  131183. .IP \(bu 2
  131184. CONNECT
  131185. .IP \(bu 2
  131186. TRIGGER
  131187. .IP \(bu 2
  131188. SELECT
  131189. .IP \(bu 2
  131190. USAGE
  131191. .IP \(bu 2
  131192. TEMPORARY
  131193. .IP \(bu 2
  131194. UPDATE
  131195. .IP \(bu 2
  131196. EXECUTE
  131197. .IP \(bu 2
  131198. REFERENCES
  131199. .IP \(bu 2
  131200. DELETE
  131201. .IP \(bu 2
  131202. ALL
  131203. .UNINDENT
  131204. .INDENT 7.0
  131205. .TP
  131206. .B note
  131207. privileges should not be set when granting group membership
  131208. .UNINDENT
  131209. .TP
  131210. .B grant_option
  131211. If grant_option is set to True, the recipient of the privilege can
  131212. in turn grant it to others
  131213. .TP
  131214. .B prepend
  131215. Table and Sequence object types live under a schema so this should be
  131216. provided if the object is not under the default \fIpublic\fP schema
  131217. .TP
  131218. .B maintenance_db
  131219. The name of the database in which the language is to be installed
  131220. .TP
  131221. .B user
  131222. System user all operations should be performed on behalf of
  131223. .TP
  131224. .B db_user
  131225. database username if different from config or default
  131226. .TP
  131227. .B db_password
  131228. user password if any password for a specified user
  131229. .TP
  131230. .B db_host
  131231. Database host if different from config or default
  131232. .TP
  131233. .B db_port
  131234. Database port if different from config or default
  131235. .UNINDENT
  131236. .UNINDENT
  131237. .SS salt.states.postgres_schema
  131238. .SS Management of PostgreSQL schemas
  131239. .sp
  131240. The postgres_schemas module is used to create and manage Postgres schemas.
  131241. .INDENT 0.0
  131242. .INDENT 3.5
  131243. .sp
  131244. .nf
  131245. .ft C
  131246. public:
  131247. postgres_schema.present \(aqdbname\(aq \(aqname\(aq
  131248. .ft P
  131249. .fi
  131250. .UNINDENT
  131251. .UNINDENT
  131252. .INDENT 0.0
  131253. .TP
  131254. .B salt.states.postgres_schema.absent(dbname, name, user=None, db_user=None, db_password=None, db_host=None, db_port=None)
  131255. Ensure that the named schema is absent.
  131256. .INDENT 7.0
  131257. .TP
  131258. .B dbname
  131259. The database\(aqs name will work on
  131260. .TP
  131261. .B name
  131262. The name of the schema to remove
  131263. .TP
  131264. .B user
  131265. system user all operations should be performed on behalf of
  131266. .TP
  131267. .B db_user
  131268. database username if different from config or default
  131269. .TP
  131270. .B db_password
  131271. user password if any password for a specified user
  131272. .TP
  131273. .B db_host
  131274. Database host if different from config or default
  131275. .TP
  131276. .B db_port
  131277. Database port if different from config or default
  131278. .UNINDENT
  131279. .UNINDENT
  131280. .INDENT 0.0
  131281. .TP
  131282. .B salt.states.postgres_schema.present(dbname, name, owner=None, user=None, db_user=None, db_password=None, db_host=None, db_port=None)
  131283. Ensure that the named schema is present in the database.
  131284. .INDENT 7.0
  131285. .TP
  131286. .B dbname
  131287. The database\(aqs name will work on
  131288. .TP
  131289. .B name
  131290. The name of the schema to manage
  131291. .TP
  131292. .B user
  131293. system user all operations should be performed on behalf of
  131294. .TP
  131295. .B db_user
  131296. database username if different from config or default
  131297. .TP
  131298. .B db_password
  131299. user password if any password for a specified user
  131300. .TP
  131301. .B db_host
  131302. Database host if different from config or default
  131303. .TP
  131304. .B db_port
  131305. Database port if different from config or default
  131306. .UNINDENT
  131307. .UNINDENT
  131308. .SS salt.states.powerpath
  131309. .SS Powerpath configuration support
  131310. .sp
  131311. Allows configuration of EMC Powerpath. Currently
  131312. only addition/deletion of licenses is supported.
  131313. .INDENT 0.0
  131314. .INDENT 3.5
  131315. .sp
  131316. .nf
  131317. .ft C
  131318. key:
  131319. powerpath.license_present: []
  131320. .ft P
  131321. .fi
  131322. .UNINDENT
  131323. .UNINDENT
  131324. .INDENT 0.0
  131325. .TP
  131326. .B salt.states.powerpath.license_absent(name)
  131327. Ensures that the specified PowerPath license key is absent
  131328. on the host.
  131329. .INDENT 7.0
  131330. .TP
  131331. .B name
  131332. The license key to ensure is absent
  131333. .UNINDENT
  131334. .UNINDENT
  131335. .INDENT 0.0
  131336. .TP
  131337. .B salt.states.powerpath.license_present(name)
  131338. Ensures that the specified PowerPath license key is present
  131339. on the host.
  131340. .INDENT 7.0
  131341. .TP
  131342. .B name
  131343. The license key to ensure is present
  131344. .UNINDENT
  131345. .UNINDENT
  131346. .SS salt.states.process
  131347. .SS Process Management
  131348. .sp
  131349. Ensure a process matching a given pattern is absent.
  131350. .INDENT 0.0
  131351. .INDENT 3.5
  131352. .sp
  131353. .nf
  131354. .ft C
  131355. httpd\-absent:
  131356. process.absent:
  131357. \- name: apache2
  131358. .ft P
  131359. .fi
  131360. .UNINDENT
  131361. .UNINDENT
  131362. .INDENT 0.0
  131363. .TP
  131364. .B salt.states.process.absent(name, user=None, signal=None)
  131365. Ensures that the named command is not running.
  131366. .INDENT 7.0
  131367. .TP
  131368. .B name
  131369. The pattern to match.
  131370. .TP
  131371. .B user
  131372. The user to which the process belongs
  131373. .TP
  131374. .B signal
  131375. Signal to send to the process(es).
  131376. .UNINDENT
  131377. .UNINDENT
  131378. .SS salt.states.pushover
  131379. .SS Send a message to PushOver
  131380. .sp
  131381. This state is useful for sending messages to PushOver during state runs.
  131382. .sp
  131383. New in version 2015.5.0.
  131384. .INDENT 0.0
  131385. .INDENT 3.5
  131386. .sp
  131387. .nf
  131388. .ft C
  131389. pushover\-message:
  131390. pushover.post_message:
  131391. \- user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131392. \- token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131393. \- title: Salt Returner
  131394. \- device: phone
  131395. \- priority: \-1
  131396. \- expire: 3600
  131397. \- retry: 5
  131398. \- message: \(aqThis state was executed successfully.\(aq
  131399. .ft P
  131400. .fi
  131401. .UNINDENT
  131402. .UNINDENT
  131403. .sp
  131404. The api key can be specified in the master or minion configuration like below:
  131405. .. code\-block:: yaml
  131406. .INDENT 0.0
  131407. .INDENT 3.5
  131408. .INDENT 0.0
  131409. .TP
  131410. .B pushover:
  131411. token: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  131412. .UNINDENT
  131413. .UNINDENT
  131414. .UNINDENT
  131415. .INDENT 0.0
  131416. .TP
  131417. .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)
  131418. Send a message to a PushOver channel.
  131419. .INDENT 7.0
  131420. .INDENT 3.5
  131421. .sp
  131422. .nf
  131423. .ft C
  131424. pushover\-message:
  131425. pushover.post_message:
  131426. \- user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131427. \- token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131428. \- title: Salt Returner
  131429. \- device: phone
  131430. \- priority: \-1
  131431. \- expire: 3600
  131432. \- retry: 5
  131433. .ft P
  131434. .fi
  131435. .UNINDENT
  131436. .UNINDENT
  131437. .sp
  131438. The following parameters are required:
  131439. .INDENT 7.0
  131440. .TP
  131441. .B name
  131442. The unique name for this event.
  131443. .TP
  131444. .B user
  131445. The user or group of users to send the message to. Must be ID of user, not name
  131446. or email address.
  131447. .TP
  131448. .B message
  131449. The message that is to be sent to the PushOver channel.
  131450. .UNINDENT
  131451. .sp
  131452. The following parameters are optional:
  131453. .INDENT 7.0
  131454. .TP
  131455. .B title
  131456. The title to use for the message.
  131457. .TP
  131458. .B device
  131459. The device for the user to send the message to.
  131460. .TP
  131461. .B priority
  131462. The priority for the message.
  131463. .TP
  131464. .B expire
  131465. The message should expire after specified amount of seconds.
  131466. .TP
  131467. .B retry
  131468. The message should be resent this many times.
  131469. .TP
  131470. .B token
  131471. The token for PushOver to use for authentication,
  131472. if not specified in the configuration options of master or minion.
  131473. .UNINDENT
  131474. .UNINDENT
  131475. .SS salt.states.pyenv
  131476. .SS Managing python installations with pyenv
  131477. .sp
  131478. This module is used to install and manage python installations with pyenv.
  131479. Different versions of python can be installed, and uninstalled. pyenv will
  131480. be installed automatically the first time it is needed and can be updated
  131481. later. This module will \fInot\fP automatically install packages which pyenv
  131482. will need to compile the versions of python.
  131483. .sp
  131484. If pyenv is run as the root user then it will be installed to /usr/local/pyenv,
  131485. otherwise it will be installed to the users ~/.pyenv directory. To make
  131486. pyenv available in the shell you may need to add the pyenv/shims and pyenv/bin
  131487. directories to the users PATH. If you are installing as root and want other
  131488. users to be able to access pyenv then you will need to add pyenv_ROOT to
  131489. their environment.
  131490. .sp
  131491. This is how a state configuration could look like:
  131492. .INDENT 0.0
  131493. .INDENT 3.5
  131494. .sp
  131495. .nf
  131496. .ft C
  131497. pyenv\-deps:
  131498. pkg.installed:
  131499. \- pkgs:
  131500. \- make
  131501. \- build\-essential
  131502. \- libssl\-dev
  131503. \- zlib1g\-dev
  131504. \- libbz2\-dev
  131505. \- libreadline\-dev
  131506. \- libsqlite3\-dev
  131507. \- wget
  131508. \- curl
  131509. \- llvm
  131510. python\-2.6:
  131511. pyenv.absent:
  131512. \- require:
  131513. \- pkg: pyenv\-deps
  131514. python\-2.7.6:
  131515. pyenv.installed:
  131516. \- default: True
  131517. \- require:
  131518. \- pkg: pyenv\-deps
  131519. .ft P
  131520. .fi
  131521. .UNINDENT
  131522. .UNINDENT
  131523. .sp
  131524. \fBNOTE:\fP
  131525. .INDENT 0.0
  131526. .INDENT 3.5
  131527. Git needs to be installed and available via PATH if pyenv is to be
  131528. installed automatically by the module.
  131529. .UNINDENT
  131530. .UNINDENT
  131531. .INDENT 0.0
  131532. .TP
  131533. .B salt.states.pyenv.absent(name, user=None)
  131534. Verify that the specified python is not installed with pyenv. pyenv
  131535. is installed if necessary.
  131536. .INDENT 7.0
  131537. .TP
  131538. .B name
  131539. The version of python to uninstall
  131540. .TP
  131541. .B user: None
  131542. The user to run pyenv as.
  131543. .sp
  131544. New in version 0.17.0.
  131545. .UNINDENT
  131546. .sp
  131547. New in version 0.16.0.
  131548. .UNINDENT
  131549. .INDENT 0.0
  131550. .TP
  131551. .B salt.states.pyenv.install_pyenv(name, user=None)
  131552. Install pyenv if not installed. Allows you to require pyenv be installed
  131553. prior to installing the plugins. Useful if you want to install pyenv
  131554. plugins via the git or file modules and need them installed before
  131555. installing any rubies.
  131556. .sp
  131557. Use the pyenv.root configuration option to set the path for pyenv if you
  131558. want a system wide install that is not in a user home dir.
  131559. .INDENT 7.0
  131560. .TP
  131561. .B user: None
  131562. The user to run pyenv as.
  131563. .UNINDENT
  131564. .UNINDENT
  131565. .INDENT 0.0
  131566. .TP
  131567. .B salt.states.pyenv.installed(name, default=False, user=None)
  131568. Verify that the specified python is installed with pyenv. pyenv is
  131569. installed if necessary.
  131570. .INDENT 7.0
  131571. .TP
  131572. .B name
  131573. The version of python to install
  131574. .TP
  131575. .B default
  131576. False
  131577. Whether to make this python the default.
  131578. .TP
  131579. .B user: None
  131580. The user to run pyenv as.
  131581. .sp
  131582. New in version 0.17.0.
  131583. .UNINDENT
  131584. .sp
  131585. New in version 0.16.0.
  131586. .UNINDENT
  131587. .SS salt.states.pyrax_queues
  131588. .SS Manage Rackspace Queues
  131589. .sp
  131590. New in version 2015.5.0.
  131591. .sp
  131592. Create and destroy Rackspace queues. Be aware that this interacts with
  131593. Rackspace\(aqs services, and so may incur charges.
  131594. .sp
  131595. This module uses \fBpyrax\fP, which can be installed via package, or pip.
  131596. This module is greatly inspired by boto_* modules from SaltStack code source.
  131597. .INDENT 0.0
  131598. .INDENT 3.5
  131599. .sp
  131600. .nf
  131601. .ft C
  131602. myqueue:
  131603. pyrax_queues.present:
  131604. \- provider: my\-pyrax
  131605. myqueue:
  131606. pyrax_queues.absent:
  131607. \- provider: my\-pyrax
  131608. .ft P
  131609. .fi
  131610. .UNINDENT
  131611. .UNINDENT
  131612. .INDENT 0.0
  131613. .TP
  131614. .B salt.states.pyrax_queues.absent(name, provider)
  131615. Ensure the named Rackspace queue is deleted.
  131616. .INDENT 7.0
  131617. .TP
  131618. .B name
  131619. Name of the Rackspace queue.
  131620. .TP
  131621. .B provider
  131622. Salt Cloud provider
  131623. .UNINDENT
  131624. .UNINDENT
  131625. .INDENT 0.0
  131626. .TP
  131627. .B salt.states.pyrax_queues.present(name, provider)
  131628. Ensure the RackSpace queue exists.
  131629. .INDENT 7.0
  131630. .TP
  131631. .B name
  131632. Name of the Rackspace queue.
  131633. .TP
  131634. .B provider
  131635. Salt Cloud Provider
  131636. .UNINDENT
  131637. .UNINDENT
  131638. .SS salt.states.quota
  131639. .SS Management of POSIX Quotas
  131640. .sp
  131641. The quota can be managed for the system:
  131642. .INDENT 0.0
  131643. .INDENT 3.5
  131644. .sp
  131645. .nf
  131646. .ft C
  131647. /:
  131648. quota.mode:
  131649. mode: off
  131650. quotatype: user
  131651. .ft P
  131652. .fi
  131653. .UNINDENT
  131654. .UNINDENT
  131655. .INDENT 0.0
  131656. .TP
  131657. .B salt.states.quota.mode(name, mode, quotatype)
  131658. Set the quota for the system
  131659. .INDENT 7.0
  131660. .TP
  131661. .B name
  131662. The filesystem to set the quota mode on
  131663. .TP
  131664. .B mode
  131665. Whether the quota system is on or off
  131666. .TP
  131667. .B quotatype
  131668. Must be \fBuser\fP or \fBgroup\fP
  131669. .UNINDENT
  131670. .UNINDENT
  131671. .SS salt.states.rabbitmq_plugin
  131672. .SS Manage RabbitMQ Plugins
  131673. .sp
  131674. New in version 2014.1.0.
  131675. .sp
  131676. Example:
  131677. .INDENT 0.0
  131678. .INDENT 3.5
  131679. .sp
  131680. .nf
  131681. .ft C
  131682. some_plugin:
  131683. rabbitmq_plugin.enabled: []
  131684. .ft P
  131685. .fi
  131686. .UNINDENT
  131687. .UNINDENT
  131688. .INDENT 0.0
  131689. .TP
  131690. .B salt.states.rabbitmq_plugin.disabled(name, runas=None)
  131691. Ensure the RabbitMQ plugin is disabled.
  131692. .INDENT 7.0
  131693. .TP
  131694. .B name
  131695. The name of the plugin
  131696. .TP
  131697. .B runas
  131698. The user to run the rabbitmq\-plugin command as
  131699. .UNINDENT
  131700. .UNINDENT
  131701. .INDENT 0.0
  131702. .TP
  131703. .B salt.states.rabbitmq_plugin.enabled(name, runas=None)
  131704. Ensure the RabbitMQ plugin is enabled.
  131705. .INDENT 7.0
  131706. .TP
  131707. .B name
  131708. The name of the plugin
  131709. .TP
  131710. .B runas
  131711. The user to run the rabbitmq\-plugin command as
  131712. .UNINDENT
  131713. .UNINDENT
  131714. .SS salt.states.rbac_solaris
  131715. .sp
  131716. Management of Solaris RBAC
  131717. .INDENT 0.0
  131718. .TP
  131719. .B maintainer
  131720. Jorge Schrauwen <\fI\%sjorge@blackdot.be\fP>
  131721. .TP
  131722. .B maturity
  131723. new
  131724. .TP
  131725. .B depends
  131726. rbac_solaris,solaris_user
  131727. .TP
  131728. .B platform
  131729. solaris,illumos
  131730. .UNINDENT
  131731. .sp
  131732. New in version 2016.11.0.
  131733. .INDENT 0.0
  131734. .INDENT 3.5
  131735. .sp
  131736. .nf
  131737. .ft C
  131738. sjorge:
  131739. rbac.managed:
  131740. \- roles:
  131741. \- netcfg
  131742. \- profiles:
  131743. \- System Power
  131744. \- authorizations:
  131745. \- solaris.audit.*
  131746. .ft P
  131747. .fi
  131748. .UNINDENT
  131749. .UNINDENT
  131750. .INDENT 0.0
  131751. .TP
  131752. .B salt.states.rbac_solaris.managed(name, roles=None, profiles=None, authorizations=None)
  131753. Manage RBAC properties for user
  131754. .INDENT 7.0
  131755. .TP
  131756. .B name
  131757. string
  131758. username
  131759. .TP
  131760. .B roles
  131761. list
  131762. list of roles for user
  131763. .TP
  131764. .B profiles
  131765. list
  131766. list of profiles for user
  131767. .TP
  131768. .B authorizations
  131769. list
  131770. list of authorizations for user
  131771. .UNINDENT
  131772. .sp
  131773. \fBWARNING:\fP
  131774. .INDENT 7.0
  131775. .INDENT 3.5
  131776. All existing roles, profiles and authorizations will be replaced!
  131777. An empty list will remove everything.
  131778. .sp
  131779. Set the property to \fINone\fP to not manage it.
  131780. .UNINDENT
  131781. .UNINDENT
  131782. .UNINDENT
  131783. .SS salt.states.rbenv
  131784. .SS Managing Ruby installations with rbenv
  131785. .sp
  131786. This module is used to install and manage ruby installations with rbenv and the
  131787. ruby\-build plugin. Different versions of ruby can be installed, and uninstalled.
  131788. Rbenv will be installed automatically the first time it is needed and can be
  131789. updated later. This module will \fInot\fP automatically install packages which rbenv
  131790. will need to compile the versions of ruby. If your version of ruby fails to
  131791. install, refer to the ruby\-build documentation to verify you are not missing any
  131792. dependencies: \fI\%https://github.com/rbenv/ruby\-build/wiki\fP
  131793. .sp
  131794. If rbenv is run as the root user then it will be installed to /usr/local/rbenv,
  131795. otherwise it will be installed to the users ~/.rbenv directory. To make
  131796. rbenv available in the shell you may need to add the rbenv/shims and rbenv/bin
  131797. directories to the users PATH. If you are installing as root and want other
  131798. users to be able to access rbenv then you will need to add RBENV_ROOT to
  131799. their environment.
  131800. .sp
  131801. The following state configuration demonstrates how to install Ruby 1.9.x
  131802. and 2.x using rbenv on Ubuntu/Debian:
  131803. .INDENT 0.0
  131804. .INDENT 3.5
  131805. .sp
  131806. .nf
  131807. .ft C
  131808. rbenv\-deps:
  131809. pkg.installed:
  131810. \- names:
  131811. \- bash
  131812. \- git
  131813. \- openssl
  131814. \- libssl\-dev
  131815. \- make
  131816. \- curl
  131817. \- autoconf
  131818. \- bison
  131819. \- build\-essential
  131820. \- libffi\-dev
  131821. \- libyaml\-dev
  131822. \- libreadline6\-dev
  131823. \- zlib1g\-dev
  131824. \- libncurses5\-dev
  131825. ruby\-1.9.3\-p429:
  131826. rbenv.absent:
  131827. \- require:
  131828. \- pkg: rbenv\-deps
  131829. ruby\-2.0.0\-p598:
  131830. rbenv.installed:
  131831. \- default: True
  131832. \- require:
  131833. \- pkg: rbenv\-deps
  131834. .ft P
  131835. .fi
  131836. .UNINDENT
  131837. .UNINDENT
  131838. .INDENT 0.0
  131839. .TP
  131840. .B salt.states.rbenv.absent(name, user=None)
  131841. Verify that the specified ruby is not installed with rbenv. Rbenv
  131842. is installed if necessary.
  131843. .INDENT 7.0
  131844. .TP
  131845. .B name
  131846. The version of ruby to uninstall
  131847. .TP
  131848. .B user: None
  131849. The user to run rbenv as.
  131850. .sp
  131851. New in version 0.17.0.
  131852. .UNINDENT
  131853. .sp
  131854. New in version 0.16.0.
  131855. .UNINDENT
  131856. .INDENT 0.0
  131857. .TP
  131858. .B salt.states.rbenv.install_rbenv(name, user=None)
  131859. Install rbenv if not installed. Allows you to require rbenv be installed
  131860. prior to installing the plugins. Useful if you want to install rbenv
  131861. plugins via the git or file modules and need them installed before
  131862. installing any rubies.
  131863. .sp
  131864. Use the rbenv.root configuration option to set the path for rbenv if you
  131865. want a system wide install that is not in a user home dir.
  131866. .INDENT 7.0
  131867. .TP
  131868. .B user: None
  131869. The user to run rbenv as.
  131870. .UNINDENT
  131871. .UNINDENT
  131872. .INDENT 0.0
  131873. .TP
  131874. .B salt.states.rbenv.installed(name, default=False, user=None)
  131875. Verify that the specified ruby is installed with rbenv. Rbenv is
  131876. installed if necessary.
  131877. .INDENT 7.0
  131878. .TP
  131879. .B name
  131880. The version of ruby to install
  131881. .TP
  131882. .B default
  131883. False
  131884. Whether to make this ruby the default.
  131885. .TP
  131886. .B user: None
  131887. The user to run rbenv as.
  131888. .sp
  131889. New in version 0.17.0.
  131890. .UNINDENT
  131891. .sp
  131892. New in version 0.16.0.
  131893. .UNINDENT
  131894. .SS salt.states.rdp
  131895. .sp
  131896. Manage RDP Service on Windows servers
  131897. .INDENT 0.0
  131898. .TP
  131899. .B salt.states.rdp.disabled(name)
  131900. Disable the RDP service
  131901. .UNINDENT
  131902. .INDENT 0.0
  131903. .TP
  131904. .B salt.states.rdp.enabled(name)
  131905. Enable the RDP service and make sure access to the RDP
  131906. port is allowed in the firewall configuration
  131907. .UNINDENT
  131908. .SS salt.states.redismod
  131909. .SS Management of Redis server
  131910. .sp
  131911. New in version 2014.7.0.
  131912. .INDENT 0.0
  131913. .TP
  131914. .B depends
  131915. .INDENT 7.0
  131916. .IP \(bu 2
  131917. redis Python module
  131918. .UNINDENT
  131919. .TP
  131920. .B configuration
  131921. See \fBsalt.modules.redis\fP for setup instructions.
  131922. .UNINDENT
  131923. .INDENT 0.0
  131924. .INDENT 3.5
  131925. .sp
  131926. .nf
  131927. .ft C
  131928. key_in_redis:
  131929. redis.string:
  131930. \- value: string data
  131931. .ft P
  131932. .fi
  131933. .UNINDENT
  131934. .UNINDENT
  131935. .sp
  131936. The redis server information specified in the minion config file can be
  131937. overridden in states using the following arguments: \fBhost\fP, \fBpost\fP, \fBdb\fP,
  131938. \fBpassword\fP\&.
  131939. .INDENT 0.0
  131940. .INDENT 3.5
  131941. .sp
  131942. .nf
  131943. .ft C
  131944. key_in_redis:
  131945. redis.string:
  131946. \- value: string data
  131947. \- host: localhost
  131948. \- port: 6379
  131949. \- db: 0
  131950. \- password: somuchkittycat
  131951. .ft P
  131952. .fi
  131953. .UNINDENT
  131954. .UNINDENT
  131955. .INDENT 0.0
  131956. .TP
  131957. .B salt.states.redismod.absent(name, keys=None, **connection_args)
  131958. Ensure key absent from redis
  131959. .INDENT 7.0
  131960. .TP
  131961. .B name
  131962. Key to ensure absent from redis
  131963. .TP
  131964. .B keys
  131965. list of keys to ensure absent, name will be ignored if this is used
  131966. .UNINDENT
  131967. .UNINDENT
  131968. .INDENT 0.0
  131969. .TP
  131970. .B salt.states.redismod.slaveof(name, sentinel_host=None, sentinel_port=None, sentinel_password=None, **connection_args)
  131971. Set this redis instance as a slave.
  131972. .INDENT 7.0
  131973. .TP
  131974. .B name
  131975. Master to make this a slave of
  131976. .TP
  131977. .B sentinel_host
  131978. Ip of the sentinel to check for the master
  131979. .TP
  131980. .B sentinel_port
  131981. Port of the sentinel to check for the master
  131982. .UNINDENT
  131983. .UNINDENT
  131984. .INDENT 0.0
  131985. .TP
  131986. .B salt.states.redismod.string(name, value, expire=None, expireat=None, **connection_args)
  131987. Ensure that the key exists in redis with the value specified
  131988. .INDENT 7.0
  131989. .TP
  131990. .B name
  131991. Redis key to manage
  131992. .TP
  131993. .B value
  131994. Data to persist in key
  131995. .TP
  131996. .B expire
  131997. Sets time to live for key in seconds
  131998. .TP
  131999. .B expireat
  132000. Sets expiration time for key via UNIX timestamp, overrides \fIexpire\fP
  132001. .UNINDENT
  132002. .UNINDENT
  132003. .SS salt.states.rvm
  132004. .SS Managing Ruby installations and gemsets with Ruby Version Manager (RVM)
  132005. .sp
  132006. This module is used to install and manage ruby installations and
  132007. gemsets with RVM, the Ruby Version Manager. Different versions of ruby
  132008. can be installed and gemsets created. RVM itself will be installed
  132009. automatically if it\(aqs not present. This module will not automatically
  132010. install packages that RVM depends on or ones that are needed to build
  132011. ruby. If you want to run RVM as an unprivileged user (recommended) you
  132012. will have to create this user yourself. This is how a state
  132013. configuration could look like:
  132014. .INDENT 0.0
  132015. .INDENT 3.5
  132016. .sp
  132017. .nf
  132018. .ft C
  132019. rvm:
  132020. group.present: []
  132021. user.present:
  132022. \- gid: rvm
  132023. \- home: /home/rvm
  132024. \- require:
  132025. \- group: rvm
  132026. rvm\-deps:
  132027. pkg.installed:
  132028. \- pkgs:
  132029. \- bash
  132030. \- coreutils
  132031. \- gzip
  132032. \- bzip2
  132033. \- gawk
  132034. \- sed
  132035. \- curl
  132036. \- git\-core
  132037. \- subversion
  132038. mri\-deps:
  132039. pkg.installed:
  132040. \- pkgs:
  132041. \- build\-essential
  132042. \- openssl
  132043. \- libreadline6
  132044. \- libreadline6\-dev
  132045. \- curl
  132046. \- git\-core
  132047. \- zlib1g
  132048. \- zlib1g\-dev
  132049. \- libssl\-dev
  132050. \- libyaml\-dev
  132051. \- libsqlite3\-0
  132052. \- libsqlite3\-dev
  132053. \- sqlite3
  132054. \- libxml2\-dev
  132055. \- libxslt1\-dev
  132056. \- autoconf
  132057. \- libc6\-dev
  132058. \- libncurses5\-dev
  132059. \- automake
  132060. \- libtool
  132061. \- bison
  132062. \- subversion
  132063. \- ruby
  132064. jruby\-deps:
  132065. pkg.installed:
  132066. \- pkgs:
  132067. \- curl
  132068. \- g++
  132069. \- openjdk\-6\-jre\-headless
  132070. ruby\-1.9.2:
  132071. rvm.installed:
  132072. \- default: True
  132073. \- user: rvm
  132074. \- require:
  132075. \- pkg: rvm\-deps
  132076. \- pkg: mri\-deps
  132077. \- user: rvm
  132078. jruby:
  132079. rvm.installed:
  132080. \- user: rvm
  132081. \- require:
  132082. \- pkg: rvm\-deps
  132083. \- pkg: jruby\-deps
  132084. \- user: rvm
  132085. jgemset:
  132086. rvm.gemset_present:
  132087. \- ruby: jruby
  132088. \- user: rvm
  132089. \- require:
  132090. \- rvm: jruby
  132091. mygemset:
  132092. rvm.gemset_present:
  132093. \- ruby: ruby\-1.9.2
  132094. \- user: rvm
  132095. \- require:
  132096. \- rvm: ruby\-1.9.2
  132097. .ft P
  132098. .fi
  132099. .UNINDENT
  132100. .UNINDENT
  132101. .INDENT 0.0
  132102. .TP
  132103. .B salt.states.rvm.gemset_present(name, ruby=u\(aqdefault\(aq, user=None)
  132104. Verify that the gemset is present.
  132105. .INDENT 7.0
  132106. .TP
  132107. .B name
  132108. The name of the gemset.
  132109. .TP
  132110. .B ruby: default
  132111. The ruby version this gemset belongs to.
  132112. .TP
  132113. .B user: None
  132114. The user to run rvm as.
  132115. .sp
  132116. New in version 0.17.0.
  132117. .UNINDENT
  132118. .UNINDENT
  132119. .INDENT 0.0
  132120. .TP
  132121. .B salt.states.rvm.installed(name, default=False, user=None, opts=None, env=None)
  132122. Verify that the specified ruby is installed with RVM. RVM is
  132123. installed when necessary.
  132124. .INDENT 7.0
  132125. .TP
  132126. .B name
  132127. The version of ruby to install
  132128. .TP
  132129. .B default
  132130. False
  132131. Whether to make this ruby the default.
  132132. .TP
  132133. .B user: None
  132134. The user to run rvm as.
  132135. .TP
  132136. .B env: None
  132137. A list of environment variables to set (ie, RUBY_CONFIGURE_OPTS)
  132138. .TP
  132139. .B opts: None
  132140. A list of option flags to pass to RVM (ie \-C, \-\-patch)
  132141. .sp
  132142. New in version 0.17.0.
  132143. .UNINDENT
  132144. .UNINDENT
  132145. .SS salt.states.salt_proxy module
  132146. .sp
  132147. Salt proxy state
  132148. .sp
  132149. New in version 2015.8.2.
  132150. .sp
  132151. State to deploy and run salt\-proxy processes
  132152. on a minion.
  132153. .sp
  132154. Set up pillar data for your proxies per the documentation.
  132155. .sp
  132156. Run the state as below
  132157. .sp
  132158. \&..code\-block:: yaml
  132159. .INDENT 0.0
  132160. .INDENT 3.5
  132161. .INDENT 0.0
  132162. .TP
  132163. .B salt\-proxy\-configure:
  132164. .INDENT 7.0
  132165. .TP
  132166. .B salt_proxy.configure_proxy:
  132167. .INDENT 7.0
  132168. .IP \(bu 2
  132169. proxyname: p8000
  132170. .IP \(bu 2
  132171. start: True
  132172. .UNINDENT
  132173. .UNINDENT
  132174. .UNINDENT
  132175. .UNINDENT
  132176. .UNINDENT
  132177. .sp
  132178. This state will configure the salt proxy settings
  132179. within /etc/salt/proxy (if /etc/salt/proxy doesn\(aqt exists)
  132180. and start the salt\-proxy process (default true),
  132181. if it isn\(aqt already running.
  132182. .INDENT 0.0
  132183. .TP
  132184. .B salt.states.salt_proxy.configure_proxy(name, proxyname=u\(aqp8000\(aq, start=True)
  132185. Create the salt proxy file and start the proxy process
  132186. if required
  132187. .INDENT 7.0
  132188. .TP
  132189. .B Parameters
  132190. .INDENT 7.0
  132191. .IP \(bu 2
  132192. \fBname\fP \-\- The name of this state
  132193. .IP \(bu 2
  132194. \fBproxyname\fP \-\- Name to be used for this proxy (should match entries in pillar)
  132195. .IP \(bu 2
  132196. \fBstart\fP \-\- Boolean indicating if the process should be started
  132197. .UNINDENT
  132198. .UNINDENT
  132199. .sp
  132200. Example:
  132201. .sp
  132202. \&..code\-block:: yaml
  132203. .INDENT 7.0
  132204. .INDENT 3.5
  132205. .INDENT 0.0
  132206. .TP
  132207. .B salt\-proxy\-configure:
  132208. .INDENT 7.0
  132209. .TP
  132210. .B salt_proxy.configure_proxy:
  132211. .INDENT 7.0
  132212. .IP \(bu 2
  132213. proxyname: p8000
  132214. .IP \(bu 2
  132215. start: True
  132216. .UNINDENT
  132217. .UNINDENT
  132218. .UNINDENT
  132219. .UNINDENT
  132220. .UNINDENT
  132221. .UNINDENT
  132222. .SS salt.states.saltutil
  132223. .SS Saltutil State
  132224. .sp
  132225. This state wraps the saltutil execution modules to make them easier to run
  132226. from a states. Rather than needing to to use \fBmodule.run\fP this state allows for
  132227. improved change detection.
  132228. .INDENT 0.0
  132229. .INDENT 3.5
  132230. .UNINDENT
  132231. .UNINDENT
  132232. .INDENT 0.0
  132233. .TP
  132234. .B salt.states.saltutil.sync_all(name, **kwargs)
  132235. Performs the same task as saltutil.sync_all module
  132236. See \fBsaltutil module for full list of options\fP
  132237. .INDENT 7.0
  132238. .INDENT 3.5
  132239. .sp
  132240. .nf
  132241. .ft C
  132242. sync_everything:
  132243. saltutil.sync_all:
  132244. \- refresh: True
  132245. .ft P
  132246. .fi
  132247. .UNINDENT
  132248. .UNINDENT
  132249. .UNINDENT
  132250. .INDENT 0.0
  132251. .TP
  132252. .B salt.states.saltutil.sync_beacons(name, **kwargs)
  132253. Performs the same task as saltutil.sync_beacons module
  132254. See \fBsaltutil module for full list of options\fP
  132255. .INDENT 7.0
  132256. .INDENT 3.5
  132257. .sp
  132258. .nf
  132259. .ft C
  132260. sync_everything:
  132261. saltutil.sync_beacons:
  132262. \- refresh: True
  132263. .ft P
  132264. .fi
  132265. .UNINDENT
  132266. .UNINDENT
  132267. .UNINDENT
  132268. .INDENT 0.0
  132269. .TP
  132270. .B salt.states.saltutil.sync_clouds(name, **kwargs)
  132271. Performs the same task as saltutil.sync_clouds module
  132272. See \fBsaltutil module for full list of options\fP
  132273. .INDENT 7.0
  132274. .INDENT 3.5
  132275. .sp
  132276. .nf
  132277. .ft C
  132278. sync_everything:
  132279. saltutil.sync_clouds:
  132280. \- refresh: True
  132281. .ft P
  132282. .fi
  132283. .UNINDENT
  132284. .UNINDENT
  132285. .UNINDENT
  132286. .INDENT 0.0
  132287. .TP
  132288. .B salt.states.saltutil.sync_engines(name, **kwargs)
  132289. Performs the same task as saltutil.sync_engines module
  132290. See \fBsaltutil module for full list of options\fP
  132291. .INDENT 7.0
  132292. .INDENT 3.5
  132293. .sp
  132294. .nf
  132295. .ft C
  132296. sync_everything:
  132297. saltutil.sync_engines:
  132298. \- refresh: True
  132299. .ft P
  132300. .fi
  132301. .UNINDENT
  132302. .UNINDENT
  132303. .UNINDENT
  132304. .INDENT 0.0
  132305. .TP
  132306. .B salt.states.saltutil.sync_executors(name, **kwargs)
  132307. Performs the same task as saltutil.sync_executors module
  132308. See \fBsaltutil module for full list of options\fP
  132309. .INDENT 7.0
  132310. .INDENT 3.5
  132311. .sp
  132312. .nf
  132313. .ft C
  132314. sync_everything:
  132315. saltutil.sync_executors:
  132316. \- refresh: True
  132317. .ft P
  132318. .fi
  132319. .UNINDENT
  132320. .UNINDENT
  132321. .UNINDENT
  132322. .INDENT 0.0
  132323. .TP
  132324. .B salt.states.saltutil.sync_grains(name, **kwargs)
  132325. Performs the same task as saltutil.sync_grains module
  132326. See \fBsaltutil module for full list of options\fP
  132327. .INDENT 7.0
  132328. .INDENT 3.5
  132329. .sp
  132330. .nf
  132331. .ft C
  132332. sync_everything:
  132333. saltutil.sync_grains:
  132334. \- refresh: True
  132335. .ft P
  132336. .fi
  132337. .UNINDENT
  132338. .UNINDENT
  132339. .UNINDENT
  132340. .INDENT 0.0
  132341. .TP
  132342. .B salt.states.saltutil.sync_log_handlers(name, **kwargs)
  132343. Performs the same task as saltutil.sync_log_handlers module
  132344. See \fBsaltutil module for full list of options\fP
  132345. .INDENT 7.0
  132346. .INDENT 3.5
  132347. .sp
  132348. .nf
  132349. .ft C
  132350. sync_everything:
  132351. saltutil.sync_log_handlers:
  132352. \- refresh: True
  132353. .ft P
  132354. .fi
  132355. .UNINDENT
  132356. .UNINDENT
  132357. .UNINDENT
  132358. .INDENT 0.0
  132359. .TP
  132360. .B salt.states.saltutil.sync_matchers(name, **kwargs)
  132361. Performs the same task as saltutil.sync_matchers module
  132362. See \fBsaltutil module for full list of options\fP
  132363. .INDENT 7.0
  132364. .INDENT 3.5
  132365. .sp
  132366. .nf
  132367. .ft C
  132368. sync_everything:
  132369. saltutil.sync_matchers:
  132370. \- refresh: True
  132371. .ft P
  132372. .fi
  132373. .UNINDENT
  132374. .UNINDENT
  132375. .UNINDENT
  132376. .INDENT 0.0
  132377. .TP
  132378. .B salt.states.saltutil.sync_modules(name, **kwargs)
  132379. Performs the same task as saltutil.sync_modules module
  132380. See \fBsaltutil module for full list of options\fP
  132381. .INDENT 7.0
  132382. .INDENT 3.5
  132383. .sp
  132384. .nf
  132385. .ft C
  132386. sync_everything:
  132387. saltutil.sync_modules:
  132388. \- refresh: True
  132389. .ft P
  132390. .fi
  132391. .UNINDENT
  132392. .UNINDENT
  132393. .UNINDENT
  132394. .INDENT 0.0
  132395. .TP
  132396. .B salt.states.saltutil.sync_output(name, **kwargs)
  132397. Performs the same task as saltutil.sync_output module
  132398. See \fBsaltutil module for full list of options\fP
  132399. .INDENT 7.0
  132400. .INDENT 3.5
  132401. .sp
  132402. .nf
  132403. .ft C
  132404. sync_everything:
  132405. saltutil.sync_output:
  132406. \- refresh: True
  132407. .ft P
  132408. .fi
  132409. .UNINDENT
  132410. .UNINDENT
  132411. .UNINDENT
  132412. .INDENT 0.0
  132413. .TP
  132414. .B salt.states.saltutil.sync_outputters(name, **kwargs)
  132415. Performs the same task as saltutil.sync_outputters module
  132416. See \fBsaltutil module for full list of options\fP
  132417. .INDENT 7.0
  132418. .INDENT 3.5
  132419. .sp
  132420. .nf
  132421. .ft C
  132422. sync_everything:
  132423. saltutil.sync_outputters:
  132424. \- refresh: True
  132425. .ft P
  132426. .fi
  132427. .UNINDENT
  132428. .UNINDENT
  132429. .UNINDENT
  132430. .INDENT 0.0
  132431. .TP
  132432. .B salt.states.saltutil.sync_pillar(name, **kwargs)
  132433. Performs the same task as saltutil.sync_pillar module
  132434. See \fBsaltutil module for full list of options\fP
  132435. .INDENT 7.0
  132436. .INDENT 3.5
  132437. .sp
  132438. .nf
  132439. .ft C
  132440. sync_everything:
  132441. saltutil.sync_pillar:
  132442. \- refresh: True
  132443. .ft P
  132444. .fi
  132445. .UNINDENT
  132446. .UNINDENT
  132447. .UNINDENT
  132448. .INDENT 0.0
  132449. .TP
  132450. .B salt.states.saltutil.sync_proxymodules(name, **kwargs)
  132451. Performs the same task as saltutil.sync_proxymodules module
  132452. See \fBsaltutil module for full list of options\fP
  132453. .INDENT 7.0
  132454. .INDENT 3.5
  132455. .sp
  132456. .nf
  132457. .ft C
  132458. sync_everything:
  132459. saltutil.sync_proxymodules:
  132460. \- refresh: True
  132461. .ft P
  132462. .fi
  132463. .UNINDENT
  132464. .UNINDENT
  132465. .UNINDENT
  132466. .INDENT 0.0
  132467. .TP
  132468. .B salt.states.saltutil.sync_renderers(name, **kwargs)
  132469. Performs the same task as saltutil.sync_renderers module
  132470. See \fBsaltutil module for full list of options\fP
  132471. .INDENT 7.0
  132472. .INDENT 3.5
  132473. .sp
  132474. .nf
  132475. .ft C
  132476. sync_everything:
  132477. saltutil.sync_renderers:
  132478. \- refresh: True
  132479. .ft P
  132480. .fi
  132481. .UNINDENT
  132482. .UNINDENT
  132483. .UNINDENT
  132484. .INDENT 0.0
  132485. .TP
  132486. .B salt.states.saltutil.sync_returners(name, **kwargs)
  132487. Performs the same task as saltutil.sync_returners module
  132488. See \fBsaltutil module for full list of options\fP
  132489. .INDENT 7.0
  132490. .INDENT 3.5
  132491. .sp
  132492. .nf
  132493. .ft C
  132494. sync_everything:
  132495. saltutil.sync_returners:
  132496. \- refresh: True
  132497. .ft P
  132498. .fi
  132499. .UNINDENT
  132500. .UNINDENT
  132501. .UNINDENT
  132502. .INDENT 0.0
  132503. .TP
  132504. .B salt.states.saltutil.sync_sdb(name, **kwargs)
  132505. Performs the same task as saltutil.sync_sdb module
  132506. See \fBsaltutil module for full list of options\fP
  132507. .INDENT 7.0
  132508. .INDENT 3.5
  132509. .sp
  132510. .nf
  132511. .ft C
  132512. sync_everything:
  132513. saltutil.sync_sdb:
  132514. \- refresh: True
  132515. .ft P
  132516. .fi
  132517. .UNINDENT
  132518. .UNINDENT
  132519. .UNINDENT
  132520. .INDENT 0.0
  132521. .TP
  132522. .B salt.states.saltutil.sync_serializers(name, **kwargs)
  132523. Performs the same task as saltutil.sync_serializers module
  132524. See \fBsaltutil module for full list of options\fP
  132525. .INDENT 7.0
  132526. .INDENT 3.5
  132527. .sp
  132528. .nf
  132529. .ft C
  132530. sync_everything:
  132531. saltutil.sync_serializers:
  132532. \- refresh: True
  132533. .ft P
  132534. .fi
  132535. .UNINDENT
  132536. .UNINDENT
  132537. .UNINDENT
  132538. .INDENT 0.0
  132539. .TP
  132540. .B salt.states.saltutil.sync_states(name, **kwargs)
  132541. Performs the same task as saltutil.sync_states module
  132542. See \fBsaltutil module for full list of options\fP
  132543. .INDENT 7.0
  132544. .INDENT 3.5
  132545. .sp
  132546. .nf
  132547. .ft C
  132548. sync_everything:
  132549. saltutil.sync_states:
  132550. \- refresh: True
  132551. .ft P
  132552. .fi
  132553. .UNINDENT
  132554. .UNINDENT
  132555. .UNINDENT
  132556. .INDENT 0.0
  132557. .TP
  132558. .B salt.states.saltutil.sync_thorium(name, **kwargs)
  132559. Performs the same task as saltutil.sync_thorium module
  132560. See \fBsaltutil module for full list of options\fP
  132561. .INDENT 7.0
  132562. .INDENT 3.5
  132563. .sp
  132564. .nf
  132565. .ft C
  132566. sync_everything:
  132567. saltutil.sync_thorium:
  132568. \- refresh: True
  132569. .ft P
  132570. .fi
  132571. .UNINDENT
  132572. .UNINDENT
  132573. .UNINDENT
  132574. .INDENT 0.0
  132575. .TP
  132576. .B salt.states.saltutil.sync_utils(name, **kwargs)
  132577. Performs the same task as saltutil.sync_utils module
  132578. See \fBsaltutil module for full list of options\fP
  132579. .INDENT 7.0
  132580. .INDENT 3.5
  132581. .sp
  132582. .nf
  132583. .ft C
  132584. sync_everything:
  132585. saltutil.sync_utils:
  132586. \- refresh: True
  132587. .ft P
  132588. .fi
  132589. .UNINDENT
  132590. .UNINDENT
  132591. .UNINDENT
  132592. .SS salt.states.schedule
  132593. .SS Management of the Salt scheduler
  132594. .INDENT 0.0
  132595. .INDENT 3.5
  132596. .sp
  132597. .nf
  132598. .ft C
  132599. job3:
  132600. schedule.present:
  132601. \- function: test.ping
  132602. \- seconds: 3600
  132603. \- splay: 10
  132604. This will schedule the command: test.ping every 3600 seconds
  132605. (every hour) splaying the time between 0 and 10 seconds
  132606. job2:
  132607. schedule.present:
  132608. \- function: test.ping
  132609. \- seconds: 15
  132610. \- splay:
  132611. start: 10
  132612. end: 20
  132613. This will schedule the command: test.ping every 15 seconds
  132614. splaying the time between 10 and 20 seconds
  132615. job1:
  132616. schedule.present:
  132617. \- function: state.sls
  132618. \- job_args:
  132619. \- httpd
  132620. \- job_kwargs:
  132621. test: True
  132622. \- when:
  132623. \- Monday 5:00pm
  132624. \- Tuesday 3:00pm
  132625. \- Wednesday 5:00pm
  132626. \- Thursday 3:00pm
  132627. \- Friday 5:00pm
  132628. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132629. Wednesday and Friday, and 3pm on Tuesday and Thursday. Requires that
  132630. python\-dateutil is installed on the minion.
  132631. job1:
  132632. schedule.present:
  132633. \- function: state.sls
  132634. \- job_args:
  132635. \- httpd
  132636. \- job_kwargs:
  132637. test: True
  132638. \- cron: \(aq*/5 * * * *\(aq
  132639. Scheduled jobs can also be specified using the format used by cron. This will
  132640. schedule the command: state.sls httpd test=True to run every 5 minutes. Requires
  132641. that python\-croniter is installed on the minion.
  132642. job1:
  132643. schedule.present:
  132644. \- function: state.sls
  132645. \- job_args:
  132646. \- httpd
  132647. \- job_kwargs:
  132648. test: True
  132649. \- when:
  132650. \- Monday 5:00pm
  132651. \- Tuesday 3:00pm
  132652. \- Wednesday 5:00pm
  132653. \- Thursday 3:00pm
  132654. \- Friday 5:00pm
  132655. \- returner: xmpp
  132656. \- return_config: xmpp_state_run
  132657. \- return_kwargs:
  132658. recipient: user@domain.com
  132659. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132660. Wednesday and Friday, and 3pm on Tuesday and Thursday. Using the xmpp returner
  132661. to return the results of the scheduled job, with the alternative configuration
  132662. options found in the xmpp_state_run section.
  132663. job1:
  132664. schedule.present:
  132665. \- function: state.sls
  132666. \- job_args:
  132667. \- httpd
  132668. \- job_kwargs:
  132669. test: True
  132670. \- hours: 1
  132671. \- skip_during_range:
  132672. \- start: 2pm
  132673. \- end: 3pm
  132674. \- run_after_skip_range: True
  132675. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132676. Wednesday and Friday, and 3pm on Tuesday and Thursday. Requires that
  132677. python\-dateutil is installed on the minion.
  132678. .ft P
  132679. .fi
  132680. .UNINDENT
  132681. .UNINDENT
  132682. .INDENT 0.0
  132683. .TP
  132684. .B salt.states.schedule.absent(name, **kwargs)
  132685. Ensure a job is absent from the schedule
  132686. .INDENT 7.0
  132687. .TP
  132688. .B name
  132689. The unique name that is given to the scheduled job.
  132690. .TP
  132691. .B persist
  132692. Whether the job should persist between minion restarts, defaults to True.
  132693. .UNINDENT
  132694. .UNINDENT
  132695. .INDENT 0.0
  132696. .TP
  132697. .B salt.states.schedule.disabled(name, **kwargs)
  132698. Ensure a job is disabled in the schedule
  132699. .INDENT 7.0
  132700. .TP
  132701. .B name
  132702. The unique name that is given to the scheduled job.
  132703. .TP
  132704. .B persist
  132705. Whether the job should persist between minion restarts, defaults to True.
  132706. .UNINDENT
  132707. .UNINDENT
  132708. .INDENT 0.0
  132709. .TP
  132710. .B salt.states.schedule.enabled(name, **kwargs)
  132711. Ensure a job is enabled in the schedule
  132712. .INDENT 7.0
  132713. .TP
  132714. .B name
  132715. The unique name that is given to the scheduled job.
  132716. .TP
  132717. .B persist
  132718. Whether the job should persist between minion restarts, defaults to True.
  132719. .UNINDENT
  132720. .UNINDENT
  132721. .INDENT 0.0
  132722. .TP
  132723. .B salt.states.schedule.present(name, **kwargs)
  132724. Ensure a job is present in the schedule
  132725. .INDENT 7.0
  132726. .TP
  132727. .B name
  132728. The unique name that is given to the scheduled job.
  132729. .TP
  132730. .B seconds
  132731. The scheduled job will be executed after the specified
  132732. number of seconds have passed.
  132733. .TP
  132734. .B minutes
  132735. The scheduled job will be executed after the specified
  132736. number of minutes have passed.
  132737. .TP
  132738. .B hours
  132739. The scheduled job will be executed after the specified
  132740. number of hours have passed.
  132741. .TP
  132742. .B days
  132743. The scheduled job will be executed after the specified
  132744. number of days have passed.
  132745. .TP
  132746. .B when
  132747. This will schedule the job at the specified time(s).
  132748. The when parameter must be a single value or a dictionary
  132749. with the date string(s) using the dateutil format.
  132750. Requires python\-dateutil.
  132751. .TP
  132752. .B cron
  132753. This will schedule the job at the specified time(s)
  132754. using the crontab format.
  132755. Requires python\-croniter.
  132756. .TP
  132757. .B run_on_start
  132758. Whether the job will run when Salt minion starts, or the job will be
  132759. skipped \fBonce\fP and run at the next scheduled run. Value should be a
  132760. boolean.
  132761. .TP
  132762. .B function
  132763. The function that should be executed by the scheduled job.
  132764. .TP
  132765. .B job_args
  132766. The arguments that will be used by the scheduled job.
  132767. .TP
  132768. .B job_kwargs
  132769. The keyword arguments that will be used by the scheduled job.
  132770. .TP
  132771. .B maxrunning
  132772. Ensure that there are no more than N copies of a particular job running.
  132773. .TP
  132774. .B jid_include
  132775. Include the job into the job cache.
  132776. .TP
  132777. .B splay
  132778. The amount of time in seconds to splay a scheduled job.
  132779. Can be specified as a single value in seconds or as a dictionary
  132780. range with \(aqstart\(aq and \(aqend\(aq values.
  132781. .TP
  132782. .B range
  132783. This will schedule the command within the range specified.
  132784. The range parameter must be a dictionary with the date strings
  132785. using the dateutil format. Requires python\-dateutil.
  132786. .TP
  132787. .B once
  132788. This will schedule a job to run once on the specified date.
  132789. .TP
  132790. .B once_fmt
  132791. The default date format is ISO 8601 but can be overridden by
  132792. also specifying the \fBonce_fmt\fP option.
  132793. .TP
  132794. .B enabled
  132795. Whether the job should be enabled or disabled. Value should be a boolean.
  132796. .TP
  132797. .B return_job
  132798. Whether to return information to the Salt master upon job completion.
  132799. .TP
  132800. .B metadata
  132801. Using the metadata parameter special values can be associated with
  132802. a scheduled job. These values are not used in the execution of the job,
  132803. but can be used to search for specific jobs later if combined with the
  132804. return_job parameter. The metadata parameter must be specified as a
  132805. dictionary, othewise it will be ignored.
  132806. .TP
  132807. .B returner
  132808. The returner to use to return the results of the scheduled job.
  132809. .TP
  132810. .B return_config
  132811. The alternative configuration to use for returner configuration options.
  132812. .TP
  132813. .B return_kwargs
  132814. Any individual returner configuration items to override. Should be passed
  132815. as a dictionary.
  132816. .TP
  132817. .B persist
  132818. Whether the job should persist between minion restarts, defaults to True.
  132819. .TP
  132820. .B skip_during_range
  132821. This will ensure that the scheduled command does not run within the
  132822. range specified. The range parameter must be a dictionary with the
  132823. date strings using the dateutil format. Requires python\-dateutil.
  132824. .TP
  132825. .B run_after_skip_range
  132826. Whether the job should run immediately after the skip_during_range time
  132827. period ends.
  132828. .UNINDENT
  132829. .UNINDENT
  132830. .SS salt.states.selinux
  132831. .SS Management of SELinux rules
  132832. .sp
  132833. If SELinux is available for the running system, the mode can be managed and
  132834. booleans can be set.
  132835. .INDENT 0.0
  132836. .INDENT 3.5
  132837. .sp
  132838. .nf
  132839. .ft C
  132840. enforcing:
  132841. selinux.mode
  132842. samba_create_home_dirs:
  132843. selinux.boolean:
  132844. \- value: True
  132845. \- persist: True
  132846. nginx:
  132847. selinux.module:
  132848. \- enabled: False
  132849. .ft P
  132850. .fi
  132851. .UNINDENT
  132852. .UNINDENT
  132853. .sp
  132854. \fBNOTE:\fP
  132855. .INDENT 0.0
  132856. .INDENT 3.5
  132857. Use of these states require that the \fBselinux\fP
  132858. execution module is available.
  132859. .UNINDENT
  132860. .UNINDENT
  132861. .INDENT 0.0
  132862. .TP
  132863. .B salt.states.selinux.boolean(name, value, persist=False)
  132864. Set up an SELinux boolean
  132865. .INDENT 7.0
  132866. .TP
  132867. .B name
  132868. The name of the boolean to set
  132869. .TP
  132870. .B value
  132871. The value to set on the boolean
  132872. .TP
  132873. .B persist
  132874. Defaults to False, set persist to true to make the boolean apply on a
  132875. reboot
  132876. .UNINDENT
  132877. .UNINDENT
  132878. .INDENT 0.0
  132879. .TP
  132880. .B salt.states.selinux.fcontext_policy_absent(name, filetype=u\(aqa\(aq, sel_type=None, sel_user=None, sel_level=None)
  132881. New in version 2017.7.0.
  132882. .sp
  132883. Makes sure an SELinux file context policy for a given filespec
  132884. (name), filetype and SELinux context type is absent.
  132885. .INDENT 7.0
  132886. .TP
  132887. .B name
  132888. filespec of the file or directory. Regex syntax is allowed.
  132889. .TP
  132890. .B filetype
  132891. The SELinux filetype specification. Use one of [a, f, d, c, b,
  132892. s, l, p]. See also \fIman semanage\-fcontext\fP\&. Defaults to \(aqa\(aq
  132893. (all files).
  132894. .TP
  132895. .B sel_type
  132896. The SELinux context type. There are many.
  132897. .TP
  132898. .B sel_user
  132899. The SELinux user.
  132900. .TP
  132901. .B sel_level
  132902. The SELinux MLS range.
  132903. .UNINDENT
  132904. .UNINDENT
  132905. .INDENT 0.0
  132906. .TP
  132907. .B salt.states.selinux.fcontext_policy_applied(name, recursive=False)
  132908. New in version 2017.7.0.
  132909. .sp
  132910. Checks and makes sure the SELinux policies for a given filespec are
  132911. applied.
  132912. .UNINDENT
  132913. .INDENT 0.0
  132914. .TP
  132915. .B salt.states.selinux.fcontext_policy_present(name, sel_type, filetype=u\(aqa\(aq, sel_user=None, sel_level=None)
  132916. New in version 2017.7.0.
  132917. .sp
  132918. Makes sure a SELinux policy for a given filespec (name), filetype
  132919. and SELinux context type is present.
  132920. .INDENT 7.0
  132921. .TP
  132922. .B name
  132923. filespec of the file or directory. Regex syntax is allowed.
  132924. .TP
  132925. .B sel_type
  132926. SELinux context type. There are many.
  132927. .TP
  132928. .B filetype
  132929. The SELinux filetype specification. Use one of [a, f, d, c, b,
  132930. s, l, p]. See also \fIman semanage\-fcontext\fP\&. Defaults to \(aqa\(aq
  132931. (all files).
  132932. .TP
  132933. .B sel_user
  132934. The SELinux user.
  132935. .TP
  132936. .B sel_level
  132937. The SELinux MLS range.
  132938. .UNINDENT
  132939. .UNINDENT
  132940. .INDENT 0.0
  132941. .TP
  132942. .B salt.states.selinux.mode(name)
  132943. Verifies the mode SELinux is running in, can be set to enforcing,
  132944. permissive, or disabled
  132945. .sp
  132946. \fBNOTE:\fP
  132947. .INDENT 7.0
  132948. .INDENT 3.5
  132949. A change to or from disabled mode requires a system reboot. You will
  132950. need to perform this yourself.
  132951. .UNINDENT
  132952. .UNINDENT
  132953. .INDENT 7.0
  132954. .TP
  132955. .B name
  132956. The mode to run SELinux in, permissive, enforcing, or disabled.
  132957. .UNINDENT
  132958. .UNINDENT
  132959. .INDENT 0.0
  132960. .TP
  132961. .B salt.states.selinux.module(name, module_state=u\(aqEnabled\(aq, version=u\(aqany\(aq, **opts)
  132962. Enable/Disable and optionally force a specific version for an SELinux module
  132963. .INDENT 7.0
  132964. .TP
  132965. .B name
  132966. The name of the module to control
  132967. .TP
  132968. .B module_state
  132969. Should the module be enabled or disabled?
  132970. .TP
  132971. .B version
  132972. Defaults to no preference, set to a specified value if required.
  132973. Currently can only alert if the version is incorrect.
  132974. .TP
  132975. .B install
  132976. Setting to True installs module
  132977. .TP
  132978. .B source
  132979. Points to module source file, used only when install is True
  132980. .TP
  132981. .B remove
  132982. Setting to True removes module
  132983. .UNINDENT
  132984. .sp
  132985. New in version 2016.3.0.
  132986. .UNINDENT
  132987. .INDENT 0.0
  132988. .TP
  132989. .B salt.states.selinux.module_install(name)
  132990. Installs custom SELinux module from given file
  132991. .INDENT 7.0
  132992. .TP
  132993. .B name
  132994. Path to file with module to install
  132995. .UNINDENT
  132996. .sp
  132997. New in version 2016.11.6.
  132998. .UNINDENT
  132999. .INDENT 0.0
  133000. .TP
  133001. .B salt.states.selinux.module_remove(name)
  133002. Removes SELinux module
  133003. .INDENT 7.0
  133004. .TP
  133005. .B name
  133006. The name of the module to remove
  133007. .UNINDENT
  133008. .sp
  133009. New in version 2016.11.6.
  133010. .UNINDENT
  133011. .INDENT 0.0
  133012. .TP
  133013. .B salt.states.selinux.port_policy_absent(name, sel_type=None, protocol=None, port=None)
  133014. New in version 2019.2.0.
  133015. .sp
  133016. Makes sure an SELinux port policy for a given port, protocol and SELinux context type is absent.
  133017. .INDENT 7.0
  133018. .TP
  133019. .B name
  133020. The protocol and port spec. Can be formatted as \fB(tcp|udp)/(port|port\-range)\fP\&.
  133021. .TP
  133022. .B sel_type
  133023. The SELinux Type. Optional; can be used in determining if policy is present,
  133024. ignored by \fBsemanage port \-\-delete\fP\&.
  133025. .TP
  133026. .B protocol
  133027. The protocol for the port, \fBtcp\fP or \fBudp\fP\&. Required if name is not formatted.
  133028. .TP
  133029. .B port
  133030. The port or port range. Required if name is not formatted.
  133031. .UNINDENT
  133032. .UNINDENT
  133033. .INDENT 0.0
  133034. .TP
  133035. .B salt.states.selinux.port_policy_present(name, sel_type, protocol=None, port=None, sel_range=None)
  133036. New in version 2019.2.0.
  133037. .sp
  133038. Makes sure an SELinux port policy for a given port, protocol and SELinux context type is present.
  133039. .INDENT 7.0
  133040. .TP
  133041. .B name
  133042. The protocol and port spec. Can be formatted as \fB(tcp|udp)/(port|port\-range)\fP\&.
  133043. .TP
  133044. .B sel_type
  133045. The SELinux Type.
  133046. .TP
  133047. .B protocol
  133048. The protocol for the port, \fBtcp\fP or \fBudp\fP\&. Required if name is not formatted.
  133049. .TP
  133050. .B port
  133051. The port or port range. Required if name is not formatted.
  133052. .TP
  133053. .B sel_range
  133054. The SELinux MLS/MCS Security Range.
  133055. .UNINDENT
  133056. .UNINDENT
  133057. .SS salt.states.slack
  133058. .SS Send a message to Slack
  133059. .sp
  133060. This state is useful for sending messages to Slack during state runs.
  133061. .sp
  133062. New in version 2015.5.0.
  133063. .INDENT 0.0
  133064. .INDENT 3.5
  133065. .sp
  133066. .nf
  133067. .ft C
  133068. slack\-message:
  133069. slack.post_message:
  133070. \- channel: \(aq#general\(aq
  133071. \- from_name: SuperAdmin
  133072. \- message: \(aqThis state was executed successfully.\(aq
  133073. \- api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  133074. .ft P
  133075. .fi
  133076. .UNINDENT
  133077. .UNINDENT
  133078. .sp
  133079. The api key can be specified in the master or minion configuration like below:
  133080. .INDENT 0.0
  133081. .INDENT 3.5
  133082. .sp
  133083. .nf
  133084. .ft C
  133085. slack:
  133086. api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  133087. .ft P
  133088. .fi
  133089. .UNINDENT
  133090. .UNINDENT
  133091. .INDENT 0.0
  133092. .TP
  133093. .B salt.states.slack.post_message(name, **kwargs)
  133094. Send a message to a Slack channel.
  133095. .INDENT 7.0
  133096. .INDENT 3.5
  133097. .sp
  133098. .nf
  133099. .ft C
  133100. slack\-message:
  133101. slack.post_message:
  133102. \- channel: \(aq#general\(aq
  133103. \- from_name: SuperAdmin
  133104. \- message: \(aqThis state was executed successfully.\(aq
  133105. \- api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  133106. .ft P
  133107. .fi
  133108. .UNINDENT
  133109. .UNINDENT
  133110. .sp
  133111. The following parameters are required:
  133112. .INDENT 7.0
  133113. .TP
  133114. .B api_key parameters:
  133115. .INDENT 7.0
  133116. .TP
  133117. .B name
  133118. The unique name for this event.
  133119. .TP
  133120. .B channel
  133121. The channel to send the message to. Can either be the ID or the name.
  133122. .TP
  133123. .B from_name
  133124. The name of that is to be shown in the "from" field.
  133125. .TP
  133126. .B message
  133127. The message that is to be sent to the Slack channel.
  133128. .UNINDENT
  133129. .sp
  133130. The following parameters are optional:
  133131. .INDENT 7.0
  133132. .TP
  133133. .B api_key
  133134. The api key for Slack to use for authentication,
  133135. if not specified in the configuration options of master or minion.
  133136. .TP
  133137. .B icon
  133138. URL to an image to use as the icon for this message
  133139. .UNINDENT
  133140. .TP
  133141. .B webhook parameters:
  133142. .INDENT 7.0
  133143. .TP
  133144. .B name
  133145. The unique name for this event.
  133146. .TP
  133147. .B message
  133148. The message that is to be sent to the Slack channel.
  133149. .TP
  133150. .B color
  133151. The color of border of left side
  133152. .TP
  133153. .B short
  133154. An optional flag indicating whether the value is short
  133155. enough to be displayed side\-by\-side with other values.
  133156. .TP
  133157. .B webhook
  133158. The identifier of WebHook (URL or token).
  133159. .TP
  133160. .B channel
  133161. The channel to use instead of the WebHook default.
  133162. .TP
  133163. .B username
  133164. Username to use instead of WebHook default.
  133165. .TP
  133166. .B icon_emoji
  133167. Icon to use instead of WebHook default.
  133168. .UNINDENT
  133169. .UNINDENT
  133170. .UNINDENT
  133171. .SS salt.states.smtp
  133172. .SS Sending Messages via SMTP
  133173. .sp
  133174. New in version 2014.7.0.
  133175. .sp
  133176. This state is useful for firing messages during state runs, using the SMTP
  133177. protocol
  133178. .INDENT 0.0
  133179. .INDENT 3.5
  133180. .sp
  133181. .nf
  133182. .ft C
  133183. server\-warning\-message:
  133184. smtp.send_msg:
  133185. \- name: \(aqThis is a server warning message\(aq
  133186. \- profile: my\-smtp\-account
  133187. \- recipient: admins@example.com
  133188. .ft P
  133189. .fi
  133190. .UNINDENT
  133191. .UNINDENT
  133192. .INDENT 0.0
  133193. .TP
  133194. .B salt.states.smtp.send_msg(name, recipient, subject, sender=None, profile=None, use_ssl=u\(aqTrue\(aq, attachments=None)
  133195. Send a message via SMTP
  133196. .INDENT 7.0
  133197. .INDENT 3.5
  133198. .sp
  133199. .nf
  133200. .ft C
  133201. server\-warning\-message:
  133202. smtp.send_msg:
  133203. \- name: \(aqThis is a server warning message\(aq
  133204. \- profile: my\-smtp\-account
  133205. \- subject: \(aqMessage from Salt\(aq
  133206. \- recipient: admin@example.com
  133207. \- sender: admin@example.com
  133208. \- use_ssl: True
  133209. \- attachments:
  133210. \- /var/log/syslog
  133211. \- /var/log/messages
  133212. .ft P
  133213. .fi
  133214. .UNINDENT
  133215. .UNINDENT
  133216. .INDENT 7.0
  133217. .TP
  133218. .B name
  133219. The message to send via SMTP
  133220. .UNINDENT
  133221. .UNINDENT
  133222. .SS salt.states.snapper module
  133223. .SS Managing implicit state and baselines using snapshots
  133224. .sp
  133225. New in version 2016.11.0.
  133226. .sp
  133227. Salt can manage state against explicitly defined state, for example
  133228. if your minion state is defined by:
  133229. .INDENT 0.0
  133230. .INDENT 3.5
  133231. .sp
  133232. .nf
  133233. .ft C
  133234. /etc/config_file:
  133235. file.managed:
  133236. \- source: salt://configs/myconfig
  133237. .ft P
  133238. .fi
  133239. .UNINDENT
  133240. .UNINDENT
  133241. .sp
  133242. If someone modifies this file, the next application of the highstate will
  133243. allow the admin to correct this deviation and the file will be corrected.
  133244. .sp
  133245. Now, what happens if somebody creates a file \fB/etc/new_config_file\fP and
  133246. deletes \fB/etc/important_config_file\fP? Unless you have a explicit rule, this
  133247. change will go unnoticed.
  133248. .sp
  133249. The snapper state module allows you to manage state implicitly, in addition
  133250. to explicit rules, in order to define a baseline and iterate with explicit
  133251. rules as they show that they work in production.
  133252. .sp
  133253. The workflow is: once you have a working and audited system, you would create
  133254. your baseline snapshot (eg. with \fBsalt tgt snapper.create_snapshot\fP) and
  133255. define in your state this baseline using the identifier of the snapshot
  133256. (in this case: 20):
  133257. .INDENT 0.0
  133258. .INDENT 3.5
  133259. .sp
  133260. .nf
  133261. .ft C
  133262. my_baseline:
  133263. snapper.baseline_snapshot:
  133264. \- number: 20
  133265. \- include_diff: False
  133266. \- ignore:
  133267. \- /var/log
  133268. \- /var/cache
  133269. .ft P
  133270. .fi
  133271. .UNINDENT
  133272. .UNINDENT
  133273. .sp
  133274. Baseline snapshots can be also referenced by tag. Most recent baseline snapshot
  133275. is used in case of multiple snapshots with the same tag:
  133276. .INDENT 0.0
  133277. .INDENT 3.5
  133278. .INDENT 0.0
  133279. .TP
  133280. .B my_baseline_external_storage:
  133281. .INDENT 7.0
  133282. .TP
  133283. .B snapper.baseline_snapshot:
  133284. .INDENT 7.0
  133285. .IP \(bu 2
  133286. tag: my_custom_baseline_tag
  133287. .IP \(bu 2
  133288. config: external
  133289. .IP \(bu 2
  133290. ignore:
  133291. \- /mnt/tmp_files/
  133292. .UNINDENT
  133293. .UNINDENT
  133294. .UNINDENT
  133295. .UNINDENT
  133296. .UNINDENT
  133297. .sp
  133298. If you have this state, and you haven\(aqt done changes to the system since the
  133299. snapshot, and you add a user, the state will show you the changes (including
  133300. full diffs) to \fB/etc/passwd\fP, \fB/etc/shadow\fP, etc if you call it
  133301. with \fBtest=True\fP and will undo all changes if you call it without.
  133302. .sp
  133303. This allows you to add more explicit state knowing that you are starting from a
  133304. very well defined state, and that you can audit any change that is not part
  133305. of your explicit configuration.
  133306. .sp
  133307. So after you made this your state, you decided to introduce a change in your
  133308. configuration:
  133309. .INDENT 0.0
  133310. .INDENT 3.5
  133311. .sp
  133312. .nf
  133313. .ft C
  133314. my_baseline:
  133315. snapper.baseline_snapshot:
  133316. \- number: 20
  133317. \- ignore:
  133318. \- /var/log
  133319. \- /var/cache
  133320. hosts_entry:
  133321. file.blockreplace:
  133322. \- name: /etc/hosts
  133323. \- content: \(aqFirst line of content\(aq
  133324. \- append_if_not_found: True
  133325. .ft P
  133326. .fi
  133327. .UNINDENT
  133328. .UNINDENT
  133329. .sp
  133330. The change in \fB/etc/hosts\fP will be done after any other change that deviates
  133331. from the specified snapshot are reverted. This could be for example,
  133332. modifications to the \fB/etc/passwd\fP file or changes in the \fB/etc/hosts\fP
  133333. that could render your the \fBhosts_entry\fP rule void or dangerous.
  133334. .sp
  133335. Once you take a new snapshot and you update the baseline snapshot number to
  133336. include the change in \fB/etc/hosts\fP the \fBhosts_entry\fP rule will basically
  133337. do nothing. You are free to leave it there for documentation, to ensure that
  133338. the change is made in case the snapshot is wrong, but if you remove anything
  133339. that comes after the \fBsnapper.baseline_snapshot\fP as it will have no effect;
  133340. by the moment the state is evaluated, the baseline state was already applied
  133341. and include this change.
  133342. .sp
  133343. \fBWARNING:\fP
  133344. .INDENT 0.0
  133345. .INDENT 3.5
  133346. Make sure you specify the baseline state before other rules, otherwise
  133347. the baseline state will revert all changes if they are not present in
  133348. the snapshot.
  133349. .UNINDENT
  133350. .UNINDENT
  133351. .sp
  133352. \fBWARNING:\fP
  133353. .INDENT 0.0
  133354. .INDENT 3.5
  133355. Do not specify more than one baseline rule as only the last one will
  133356. affect the result.
  133357. .UNINDENT
  133358. .UNINDENT
  133359. .INDENT 0.0
  133360. .TP
  133361. .B codeauthor
  133362. Duncan Mac\-Vicar P. <\fI\%dmacvicar@suse.de\fP>
  133363. .TP
  133364. .B codeauthor
  133365. Pablo Suárez Hernández <\fI\%psuarezhernandez@suse.de\fP>
  133366. .TP
  133367. .B maturity
  133368. new
  133369. .TP
  133370. .B platform
  133371. Linux
  133372. .UNINDENT
  133373. .INDENT 0.0
  133374. .TP
  133375. .B salt.states.snapper.baseline_snapshot(name, number=None, tag=None, include_diff=True, config=u\(aqroot\(aq, ignore=None)
  133376. Enforces that no file is modified comparing against a previously
  133377. defined snapshot identified by number.
  133378. .INDENT 7.0
  133379. .TP
  133380. .B number
  133381. Number of selected baseline snapshot.
  133382. .TP
  133383. .B tag
  133384. Tag of the selected baseline snapshot. Most recent baseline baseline
  133385. snapshot is used in case of multiple snapshots with the same tag.
  133386. (\fItag\fP and \fInumber\fP cannot be used at the same time)
  133387. .TP
  133388. .B include_diff
  133389. Include a diff in the response (Default: True)
  133390. .TP
  133391. .B config
  133392. Snapper config name (Default: root)
  133393. .TP
  133394. .B ignore
  133395. List of files to ignore. (Default: None)
  133396. .UNINDENT
  133397. .UNINDENT
  133398. .SS salt.states.splunk
  133399. .sp
  133400. Splunk User State Module
  133401. .sp
  133402. New in version 2016.3.0..
  133403. .sp
  133404. This state is used to ensure presence of users in splunk.
  133405. .INDENT 0.0
  133406. .INDENT 3.5
  133407. .sp
  133408. .nf
  133409. .ft C
  133410. ensure example test user 1:
  133411. splunk.present:
  133412. \- name: \(aqExample TestUser1\(aq
  133413. \- email: example@domain.com
  133414. .ft P
  133415. .fi
  133416. .UNINDENT
  133417. .UNINDENT
  133418. .INDENT 0.0
  133419. .TP
  133420. .B salt.states.splunk.absent(email, profile=u\(aqsplunk\(aq, **kwargs)
  133421. Ensure a splunk user is absent
  133422. .INDENT 7.0
  133423. .INDENT 3.5
  133424. .sp
  133425. .nf
  133426. .ft C
  133427. ensure example test user 1:
  133428. splunk.absent:
  133429. \- email: \(aqexample@domain.com\(aq
  133430. \- name: \(aqexampleuser\(aq
  133431. .ft P
  133432. .fi
  133433. .UNINDENT
  133434. .UNINDENT
  133435. .sp
  133436. The following parameters are required:
  133437. .INDENT 7.0
  133438. .TP
  133439. .B email
  133440. This is the email of the user in splunk
  133441. .TP
  133442. .B name
  133443. This is the splunk username used to identify the user.
  133444. .UNINDENT
  133445. .UNINDENT
  133446. .INDENT 0.0
  133447. .TP
  133448. .B salt.states.splunk.present(email, profile=u\(aqsplunk\(aq, **kwargs)
  133449. Ensure a user is present
  133450. .INDENT 7.0
  133451. .INDENT 3.5
  133452. .sp
  133453. .nf
  133454. .ft C
  133455. ensure example test user 1:
  133456. splunk.user_present:
  133457. \- realname: \(aqExample TestUser1\(aq
  133458. \- name: \(aqexampleuser\(aq
  133459. \- email: \(aqexample@domain.com\(aq
  133460. \- roles: [\(aquser\(aq]
  133461. .ft P
  133462. .fi
  133463. .UNINDENT
  133464. .UNINDENT
  133465. .sp
  133466. The following parameters are required:
  133467. .INDENT 7.0
  133468. .TP
  133469. .B email
  133470. This is the email of the user in splunk
  133471. .UNINDENT
  133472. .UNINDENT
  133473. .SS salt.states.splunk_search
  133474. .sp
  133475. Splunk Search State Module
  133476. .sp
  133477. New in version 2015.5.0.
  133478. .sp
  133479. This state is used to ensure presence of splunk searches.
  133480. .INDENT 0.0
  133481. .INDENT 3.5
  133482. .sp
  133483. .nf
  133484. .ft C
  133485. server\-warning\-message:
  133486. splunk_search.present:
  133487. \- name: This is the splunk search name
  133488. \- search: index=main sourcetype=
  133489. .ft P
  133490. .fi
  133491. .UNINDENT
  133492. .UNINDENT
  133493. .INDENT 0.0
  133494. .TP
  133495. .B salt.states.splunk_search.absent(name, profile=u\(aqsplunk\(aq)
  133496. Ensure a search is absent
  133497. .INDENT 7.0
  133498. .INDENT 3.5
  133499. .sp
  133500. .nf
  133501. .ft C
  133502. API Error Search:
  133503. splunk_search.absent
  133504. .ft P
  133505. .fi
  133506. .UNINDENT
  133507. .UNINDENT
  133508. .sp
  133509. The following parameters are required:
  133510. .INDENT 7.0
  133511. .TP
  133512. .B name
  133513. This is the name of the search in splunk
  133514. .UNINDENT
  133515. .UNINDENT
  133516. .INDENT 0.0
  133517. .TP
  133518. .B salt.states.splunk_search.present(name, profile=u\(aqsplunk\(aq, **kwargs)
  133519. Ensure a search is present
  133520. .INDENT 7.0
  133521. .INDENT 3.5
  133522. .sp
  133523. .nf
  133524. .ft C
  133525. API Error Search:
  133526. splunk_search.present:
  133527. search: index=main sourcetype=blah
  133528. template: alert_5min
  133529. .ft P
  133530. .fi
  133531. .UNINDENT
  133532. .UNINDENT
  133533. .sp
  133534. The following parameters are required:
  133535. .INDENT 7.0
  133536. .TP
  133537. .B name
  133538. This is the name of the search in splunk
  133539. .UNINDENT
  133540. .UNINDENT
  133541. .SS salt.states.sqlite3
  133542. .SS Management of SQLite3 databases
  133543. .sp
  133544. New in version 2016.3.0.
  133545. .INDENT 0.0
  133546. .TP
  133547. .B depends
  133548. .INDENT 7.0
  133549. .IP \(bu 2
  133550. SQLite3 Python Module
  133551. .UNINDENT
  133552. .TP
  133553. .B configuration
  133554. See \fBsalt.modules.sqlite3\fP for setup instructions
  133555. .UNINDENT
  133556. .sp
  133557. The sqlite3 module is used to create and manage sqlite3 databases
  133558. and execute queries
  133559. .sp
  133560. Here is an example of creating a table using sql statements:
  133561. .INDENT 0.0
  133562. .INDENT 3.5
  133563. .sp
  133564. .nf
  133565. .ft C
  133566. users:
  133567. sqlite3.table_present:
  133568. \- db: /var/www/data/app.sqlite
  133569. \- 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)
  133570. .ft P
  133571. .fi
  133572. .UNINDENT
  133573. .UNINDENT
  133574. .sp
  133575. Here is an example of creating a table using yaml/jinja instead of sql:
  133576. .INDENT 0.0
  133577. .INDENT 3.5
  133578. .sp
  133579. .nf
  133580. .ft C
  133581. users:
  133582. sqlite3.table_present:
  133583. \- db: /var/www/app.sqlite
  133584. \- schema:
  133585. \- email TEXT COLLATE NOCASE UNIQUE NOT NULL
  133586. \- firstname TEXT NOT NULL
  133587. \- lastname TEXT NOT NULL
  133588. \- company TEXT NOT NULL
  133589. \- password BLOB NOT NULL
  133590. \- salt BLOB NOT NULL
  133591. .ft P
  133592. .fi
  133593. .UNINDENT
  133594. .UNINDENT
  133595. .sp
  133596. Here is an example of making sure a table is absent:
  133597. .INDENT 0.0
  133598. .INDENT 3.5
  133599. .sp
  133600. .nf
  133601. .ft C
  133602. badservers:
  133603. sqlite3.table_absent:
  133604. \- db: /var/www/data/users.sqlite
  133605. .ft P
  133606. .fi
  133607. .UNINDENT
  133608. .UNINDENT
  133609. .sp
  133610. Sometimes you would to have specific data in tables to be used by other services
  133611. Here is an example of making sure rows with specific data exist:
  133612. .INDENT 0.0
  133613. .INDENT 3.5
  133614. .sp
  133615. .nf
  133616. .ft C
  133617. user_john_doe_xyz:
  133618. sqlite3.row_present:
  133619. \- db: /var/www/app.sqlite
  133620. \- table: users
  133621. \- where_sql: email=\(aqjohn.doe@companyxyz.com\(aq
  133622. \- data:
  133623. email: john.doe@companyxyz.com
  133624. lastname: doe
  133625. firstname: john
  133626. company: companyxyz.com
  133627. password: abcdef012934125
  133628. salt: abcdef012934125
  133629. \- require:
  133630. \- sqlite3: users
  133631. .ft P
  133632. .fi
  133633. .UNINDENT
  133634. .UNINDENT
  133635. .sp
  133636. Here is an example of removing a row from a table:
  133637. .INDENT 0.0
  133638. .INDENT 3.5
  133639. .sp
  133640. .nf
  133641. .ft C
  133642. user_john_doe_abc:
  133643. sqlite3.row_absent:
  133644. \- db: /var/www/app.sqlite
  133645. \- table: users
  133646. \- where_sql: email="john.doe@companyabc.com"
  133647. \- require:
  133648. \- sqlite3: users
  133649. .ft P
  133650. .fi
  133651. .UNINDENT
  133652. .UNINDENT
  133653. .sp
  133654. Note that there is no explicit state to perform random queries, however, this
  133655. can be approximated with sqlite3\(aqs module functions and module.run:
  133656. .INDENT 0.0
  133657. .INDENT 3.5
  133658. .sp
  133659. .nf
  133660. .ft C
  133661. zone\-delete:
  133662. module.run:
  133663. \- name: sqlite3.modify
  133664. \- db: {{ db }}
  133665. \- sql: "DELETE FROM records WHERE id > {{ count[0] }} AND domain_id = {{ domain_id }}"
  133666. \- watch:
  133667. \- sqlite3: zone\-insert\-12
  133668. .ft P
  133669. .fi
  133670. .UNINDENT
  133671. .UNINDENT
  133672. .INDENT 0.0
  133673. .TP
  133674. .B salt.states.sqlite3.row_absent(name, db, table, where_sql, where_args=None)
  133675. Makes sure the specified row is absent in db. If multiple rows
  133676. match where_sql, then the state will fail.
  133677. .INDENT 7.0
  133678. .TP
  133679. .B name
  133680. Only used as the unique ID
  133681. .TP
  133682. .B db
  133683. The database file name
  133684. .TP
  133685. .B table
  133686. The table name to check
  133687. .TP
  133688. .B where_sql
  133689. The sql to select the row to check
  133690. .TP
  133691. .B where_args
  133692. The list parameters to substitute in where_sql
  133693. .UNINDENT
  133694. .UNINDENT
  133695. .INDENT 0.0
  133696. .TP
  133697. .B salt.states.sqlite3.row_present(name, db, table, data, where_sql, where_args=None, update=False)
  133698. Checks to make sure the given row exists. If row exists and update is True
  133699. then row will be updated with data. Otherwise it will leave existing
  133700. row unmodified and check it against data. If the existing data
  133701. doesn\(aqt match data_check the state will fail. If the row doesn\(aqt
  133702. exist then it will insert data into the table. If more than one
  133703. row matches, then the state will fail.
  133704. .INDENT 7.0
  133705. .TP
  133706. .B name
  133707. Only used as the unique ID
  133708. .TP
  133709. .B db
  133710. The database file name
  133711. .TP
  133712. .B table
  133713. The table name to check the data
  133714. .TP
  133715. .B data
  133716. The dictionary of key/value pairs to check against if
  133717. row exists, insert into the table if it doesn\(aqt
  133718. .TP
  133719. .B where_sql
  133720. The sql to select the row to check
  133721. .TP
  133722. .B where_args
  133723. The list parameters to substitute in where_sql
  133724. .TP
  133725. .B update
  133726. True will replace the existing row with data
  133727. When False and the row exists and data does not equal
  133728. the row data then the state will fail
  133729. .UNINDENT
  133730. .UNINDENT
  133731. .INDENT 0.0
  133732. .TP
  133733. .B salt.states.sqlite3.table_absent(name, db)
  133734. Make sure the specified table does not exist
  133735. .INDENT 7.0
  133736. .TP
  133737. .B name
  133738. The name of the table
  133739. .TP
  133740. .B db
  133741. The name of the database file
  133742. .UNINDENT
  133743. .UNINDENT
  133744. .INDENT 0.0
  133745. .TP
  133746. .B salt.states.sqlite3.table_present(name, db, schema, force=False)
  133747. Make sure the specified table exists with the specified schema
  133748. .INDENT 7.0
  133749. .TP
  133750. .B name
  133751. The name of the table
  133752. .TP
  133753. .B db
  133754. The name of the database file
  133755. .TP
  133756. .B schema
  133757. The dictionary containing the schema information
  133758. .TP
  133759. .B force
  133760. If the name of the table exists and force is set to False,
  133761. the state will fail. If force is set to True, the existing
  133762. table will be replaced with the new table
  133763. .UNINDENT
  133764. .UNINDENT
  133765. .SS salt.states.ssh_auth
  133766. .SS Control of entries in SSH authorized_key files
  133767. .sp
  133768. The information stored in a user\(aqs SSH authorized key file can be easily
  133769. controlled via the ssh_auth state. Defaults can be set by the enc, options,
  133770. and comment keys. These defaults can be overridden by including them in the
  133771. name.
  133772. .sp
  133773. Since the YAML specification limits the length of simple keys to 1024
  133774. characters, and since SSH keys are often longer than that, you may have
  133775. to use a YAML \(aqexplicit key\(aq, as demonstrated in the second example below.
  133776. .INDENT 0.0
  133777. .INDENT 3.5
  133778. .sp
  133779. .nf
  133780. .ft C
  133781. AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==:
  133782. ssh_auth.present:
  133783. \- user: root
  133784. \- enc: ssh\-dss
  133785. ? AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==...
  133786. :
  133787. ssh_auth.present:
  133788. \- user: root
  133789. \- enc: ssh\-dss
  133790. thatch:
  133791. ssh_auth.present:
  133792. \- user: root
  133793. \- source: salt://ssh_keys/thatch.id_rsa.pub
  133794. \- config: \(aq%h/.ssh/authorized_keys\(aq
  133795. sshkeys:
  133796. ssh_auth.present:
  133797. \- user: root
  133798. \- enc: ssh\-rsa
  133799. \- options:
  133800. \- option1="value1"
  133801. \- option2="value2 flag2"
  133802. \- comment: myuser
  133803. \- names:
  133804. \- AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==
  133805. \- ssh\-dss AAAAB3NzaCL0sQ9fJ5bYTEyY== user@domain
  133806. \- option3="value3" ssh\-dss AAAAB3NzaC1kcQ9J5bYTEyY== other@testdomain
  133807. \- AAAAB3NzaC1kcQ9fJFF435bYTEyY== newcomment
  133808. sshkeys:
  133809. ssh_auth.manage:
  133810. \- user: root
  133811. \- enc: ssh\-rsa
  133812. \- options:
  133813. \- option1="value1"
  133814. \- option2="value2 flag2"
  133815. \- comment: myuser
  133816. \- ssh_keys:
  133817. \- AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==
  133818. \- ssh\-dss AAAAB3NzaCL0sQ9fJ5bYTEyY== user@domain
  133819. \- option3="value3" ssh\-dss AAAAB3NzaC1kcQ9J5bYTEyY== other@testdomain
  133820. \- AAAAB3NzaC1kcQ9fJFF435bYTEyY== newcomment
  133821. .ft P
  133822. .fi
  133823. .UNINDENT
  133824. .UNINDENT
  133825. .INDENT 0.0
  133826. .TP
  133827. .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)
  133828. Verifies that the specified SSH key is absent
  133829. .INDENT 7.0
  133830. .TP
  133831. .B name
  133832. The SSH key to manage
  133833. .TP
  133834. .B user
  133835. The user who owns the SSH authorized keys file to modify
  133836. .TP
  133837. .B enc
  133838. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133839. or ssh\-dss
  133840. .TP
  133841. .B comment
  133842. The comment to be placed with the SSH public key
  133843. .TP
  133844. .B options
  133845. The options passed to the key, pass a list object
  133846. .TP
  133847. .B source
  133848. The source file for the key(s). Can contain any number of public keys,
  133849. in standard "authorized_keys" format. If this is set, comment, enc and
  133850. options will be ignored.
  133851. .sp
  133852. New in version 2015.8.0.
  133853. .TP
  133854. .B config
  133855. The location of the authorized keys file relative to the user\(aqs home
  133856. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133857. %h for username and home path supported.
  133858. .TP
  133859. .B fingerprint_hash_type
  133860. The public key fingerprint hash type that the public key fingerprint
  133861. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133862. .sp
  133863. New in version 2016.11.7.
  133864. .UNINDENT
  133865. .UNINDENT
  133866. .INDENT 0.0
  133867. .TP
  133868. .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)
  133869. New in version 3000.
  133870. .sp
  133871. Ensures that only the specified ssh_keys are present for the specified user
  133872. .INDENT 7.0
  133873. .TP
  133874. .B ssh_keys
  133875. The SSH key to manage
  133876. .TP
  133877. .B user
  133878. The user who owns the SSH authorized keys file to modify
  133879. .TP
  133880. .B enc
  133881. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133882. or ssh\-dss
  133883. .TP
  133884. .B comment
  133885. The comment to be placed with the SSH public key
  133886. .TP
  133887. .B source
  133888. The source file for the key(s). Can contain any number of public keys,
  133889. in standard "authorized_keys" format. If this is set, comment and enc
  133890. will be ignored.
  133891. .UNINDENT
  133892. .sp
  133893. \fBNOTE:\fP
  133894. .INDENT 7.0
  133895. .INDENT 3.5
  133896. The source file must contain keys in the format \fB<enc> <key>
  133897. <comment>\fP\&. If you have generated a keypair using PuTTYgen, then you
  133898. will need to do the following to retrieve an OpenSSH\-compatible public
  133899. key.
  133900. .INDENT 0.0
  133901. .IP 1. 3
  133902. In PuTTYgen, click \fBLoad\fP, and select the \fIprivate\fP key file (not
  133903. the public key), and click \fBOpen\fP\&.
  133904. .IP 2. 3
  133905. Copy the public key from the box labeled \fBPublic key for pasting
  133906. into OpenSSH authorized_keys file\fP\&.
  133907. .IP 3. 3
  133908. Paste it into a new file.
  133909. .UNINDENT
  133910. .UNINDENT
  133911. .UNINDENT
  133912. .INDENT 7.0
  133913. .TP
  133914. .B options
  133915. The options passed to the keys, pass a list object
  133916. .TP
  133917. .B config
  133918. The location of the authorized keys file relative to the user\(aqs home
  133919. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133920. %h for username and home path supported.
  133921. .TP
  133922. .B fingerprint_hash_type
  133923. The public key fingerprint hash type that the public key fingerprint
  133924. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133925. .UNINDENT
  133926. .UNINDENT
  133927. .INDENT 0.0
  133928. .TP
  133929. .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)
  133930. Verifies that the specified SSH key is present for the specified user
  133931. .INDENT 7.0
  133932. .TP
  133933. .B name
  133934. The SSH key to manage
  133935. .TP
  133936. .B user
  133937. The user who owns the SSH authorized keys file to modify
  133938. .TP
  133939. .B enc
  133940. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133941. or ssh\-dss
  133942. .TP
  133943. .B comment
  133944. The comment to be placed with the SSH public key
  133945. .TP
  133946. .B source
  133947. The source file for the key(s). Can contain any number of public keys,
  133948. in standard "authorized_keys" format. If this is set, comment and enc
  133949. will be ignored.
  133950. .UNINDENT
  133951. .sp
  133952. \fBNOTE:\fP
  133953. .INDENT 7.0
  133954. .INDENT 3.5
  133955. The source file must contain keys in the format \fB<enc> <key>
  133956. <comment>\fP\&. If you have generated a keypair using PuTTYgen, then you
  133957. will need to do the following to retrieve an OpenSSH\-compatible public
  133958. key.
  133959. .INDENT 0.0
  133960. .IP 1. 3
  133961. In PuTTYgen, click \fBLoad\fP, and select the \fIprivate\fP key file (not
  133962. the public key), and click \fBOpen\fP\&.
  133963. .IP 2. 3
  133964. Copy the public key from the box labeled \fBPublic key for pasting
  133965. into OpenSSH authorized_keys file\fP\&.
  133966. .IP 3. 3
  133967. Paste it into a new file.
  133968. .UNINDENT
  133969. .UNINDENT
  133970. .UNINDENT
  133971. .INDENT 7.0
  133972. .TP
  133973. .B options
  133974. The options passed to the key, pass a list object
  133975. .TP
  133976. .B config
  133977. The location of the authorized keys file relative to the user\(aqs home
  133978. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133979. %h for username and home path supported.
  133980. .TP
  133981. .B fingerprint_hash_type
  133982. The public key fingerprint hash type that the public key fingerprint
  133983. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133984. .UNINDENT
  133985. .UNINDENT
  133986. .SS salt.states.stateconf
  133987. .SS Stateconf System
  133988. .sp
  133989. The stateconf system is intended for use only with the stateconf renderer. This
  133990. State module presents the set function. This function does not execute any
  133991. functionality, but is used to interact with the stateconf renderer.
  133992. .INDENT 0.0
  133993. .TP
  133994. .B salt.states.stateconf.context(name, **kwargs)
  133995. No\-op state to support state config via the stateconf renderer.
  133996. .UNINDENT
  133997. .INDENT 0.0
  133998. .TP
  133999. .B salt.states.stateconf.set(name, **kwargs)
  134000. No\-op state to support state config via the stateconf renderer.
  134001. .UNINDENT
  134002. .SS salt.states.status
  134003. .sp
  134004. Minion status monitoring
  134005. .sp
  134006. Maps to the \fIstatus\fP execution module.
  134007. .INDENT 0.0
  134008. .TP
  134009. .B salt.states.status.loadavg(name, maximum=None, minimum=None)
  134010. Return the current load average for the specified minion. Available values
  134011. for name are \fI1\-min\fP, \fI5\-min\fP and \fI15\-min\fP\&. \fIminimum\fP and \fImaximum\fP values
  134012. should be passed in as strings.
  134013. .UNINDENT
  134014. .INDENT 0.0
  134015. .TP
  134016. .B salt.states.status.process(name)
  134017. Return whether the specified signature is found in the process tree. This
  134018. differs slightly from the services states, in that it may refer to a
  134019. process that is not managed via the init system.
  134020. .UNINDENT
  134021. .SS salt.states.statuspage
  134022. .SS StatusPage
  134023. .sp
  134024. Manage the \fI\%StatusPage\fP configuration.
  134025. .sp
  134026. In the minion configuration file, the following block is required:
  134027. .INDENT 0.0
  134028. .INDENT 3.5
  134029. .sp
  134030. .nf
  134031. .ft C
  134032. statuspage:
  134033. api_key: <API_KEY>
  134034. page_id: <PAGE_ID>
  134035. .ft P
  134036. .fi
  134037. .UNINDENT
  134038. .UNINDENT
  134039. .sp
  134040. New in version 2017.7.0.
  134041. .INDENT 0.0
  134042. .TP
  134043. .B salt.states.statuspage.create(name, endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  134044. Insert a new entry under a specific endpoint.
  134045. .INDENT 7.0
  134046. .TP
  134047. .B endpoint: incidents
  134048. Insert under this specific endpoint.
  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. .TP
  134062. .B kwargs
  134063. Other params.
  134064. .UNINDENT
  134065. .sp
  134066. SLS Example:
  134067. .INDENT 7.0
  134068. .INDENT 3.5
  134069. .sp
  134070. .nf
  134071. .ft C
  134072. create\-my\-component:
  134073. statuspage.create:
  134074. \- endpoint: components
  134075. \- name: my component
  134076. \- group_id: 993vgplshj12
  134077. .ft P
  134078. .fi
  134079. .UNINDENT
  134080. .UNINDENT
  134081. .UNINDENT
  134082. .INDENT 0.0
  134083. .TP
  134084. .B salt.states.statuspage.delete(name, endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None)
  134085. Remove an entry from an endpoint.
  134086. .INDENT 7.0
  134087. .TP
  134088. .B endpoint: incidents
  134089. Request a specific endpoint.
  134090. .TP
  134091. .B page_id
  134092. Page ID. Can also be specified in the config file.
  134093. .TP
  134094. .B api_key
  134095. API key. Can also be specified in the config file.
  134096. .TP
  134097. .B api_version: 1
  134098. API version. Can also be specified in the config file.
  134099. .TP
  134100. .B api_url
  134101. Custom API URL in case the user has a StatusPage service running in a custom environment.
  134102. .UNINDENT
  134103. .sp
  134104. SLS Example:
  134105. .INDENT 7.0
  134106. .INDENT 3.5
  134107. .sp
  134108. .nf
  134109. .ft C
  134110. delete\-my\-component:
  134111. statuspage.delete:
  134112. \- endpoint: components
  134113. \- id: ftgks51sfs2d
  134114. .ft P
  134115. .fi
  134116. .UNINDENT
  134117. .UNINDENT
  134118. .UNINDENT
  134119. .INDENT 0.0
  134120. .TP
  134121. .B salt.states.statuspage.managed(name, config, api_url=None, page_id=None, api_key=None, api_version=None, pace=1, allow_empty=False)
  134122. Manage the StatusPage configuration.
  134123. .INDENT 7.0
  134124. .TP
  134125. .B config
  134126. Dictionary with the expected configuration of the StatusPage.
  134127. The main level keys of this dictionary represent the endpoint name.
  134128. If a certain endpoint does not exist in this structure, it will be ignored / not configured.
  134129. .TP
  134130. .B page_id
  134131. Page ID. Can also be specified in the config file.
  134132. .TP
  134133. .B api_key
  134134. API key. Can also be specified in the config file.
  134135. .TP
  134136. .B api_version: 1
  134137. API version. Can also be specified in the config file.
  134138. .TP
  134139. .B api_url
  134140. Custom API URL in case the user has a StatusPage service running in a custom environment.
  134141. .TP
  134142. .B pace: 1
  134143. Max requests per second allowed by the API.
  134144. .TP
  134145. .B allow_empty: False
  134146. Allow empty config.
  134147. .UNINDENT
  134148. .sp
  134149. SLS example:
  134150. .INDENT 7.0
  134151. .INDENT 3.5
  134152. .sp
  134153. .nf
  134154. .ft C
  134155. my\-statuspage\-config:
  134156. statuspage.managed:
  134157. \- config:
  134158. components:
  134159. \- name: component1
  134160. group_id: uy4g37rf
  134161. \- name: component2
  134162. group_id: 3n4uyu4gf
  134163. incidents:
  134164. \- name: incident1
  134165. status: resolved
  134166. impact: major
  134167. backfilled: false
  134168. \- name: incident2
  134169. status: investigating
  134170. impact: minor
  134171. .ft P
  134172. .fi
  134173. .UNINDENT
  134174. .UNINDENT
  134175. .UNINDENT
  134176. .INDENT 0.0
  134177. .TP
  134178. .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)
  134179. Update attribute(s) of a specific endpoint.
  134180. .INDENT 7.0
  134181. .TP
  134182. .B id
  134183. The unique ID of the enpoint entry.
  134184. .TP
  134185. .B endpoint: incidents
  134186. Endpoint name.
  134187. .TP
  134188. .B page_id
  134189. Page ID. Can also be specified in the config file.
  134190. .TP
  134191. .B api_key
  134192. API key. Can also be specified in the config file.
  134193. .TP
  134194. .B api_version: 1
  134195. API version. Can also be specified in the config file.
  134196. .TP
  134197. .B api_url
  134198. Custom API URL in case the user has a StatusPage service running in a custom environment.
  134199. .UNINDENT
  134200. .sp
  134201. SLS Example:
  134202. .INDENT 7.0
  134203. .INDENT 3.5
  134204. .sp
  134205. .nf
  134206. .ft C
  134207. update\-my\-incident:
  134208. statuspage.update:
  134209. \- id: dz959yz2nd4l
  134210. \- status: resolved
  134211. .ft P
  134212. .fi
  134213. .UNINDENT
  134214. .UNINDENT
  134215. .UNINDENT
  134216. .SS salt.states.supervisord
  134217. .SS Interaction with the Supervisor daemon
  134218. .INDENT 0.0
  134219. .INDENT 3.5
  134220. .sp
  134221. .nf
  134222. .ft C
  134223. wsgi_server:
  134224. supervisord.running:
  134225. \- require:
  134226. \- pkg: supervisor
  134227. \- watch:
  134228. \- file: /etc/nginx/sites\-enabled/wsgi_server.conf
  134229. .ft P
  134230. .fi
  134231. .UNINDENT
  134232. .UNINDENT
  134233. .INDENT 0.0
  134234. .TP
  134235. .B salt.states.supervisord.dead(name, user=None, conf_file=None, bin_env=None, **kwargs)
  134236. Ensure the named service is dead (not running).
  134237. .INDENT 7.0
  134238. .TP
  134239. .B name
  134240. Service name as defined in the supervisor configuration file
  134241. .TP
  134242. .B user
  134243. Name of the user to run the supervisorctl command
  134244. .sp
  134245. New in version 0.17.0.
  134246. .TP
  134247. .B conf_file
  134248. path to supervisorctl config file
  134249. .TP
  134250. .B bin_env
  134251. path to supervisorctl bin or path to virtualenv with supervisor
  134252. installed
  134253. .UNINDENT
  134254. .UNINDENT
  134255. .INDENT 0.0
  134256. .TP
  134257. .B salt.states.supervisord.mod_watch(name, restart=True, update=False, user=None, conf_file=None, bin_env=None, **kwargs)
  134258. The supervisord watcher, called to invoke the watch command.
  134259. Always restart on watch
  134260. .sp
  134261. \fBNOTE:\fP
  134262. .INDENT 7.0
  134263. .INDENT 3.5
  134264. This state exists to support special handling of the \fBwatch\fP
  134265. requisite\&. It should not be called directly.
  134266. .sp
  134267. Parameters for this function should be set by the state being triggered.
  134268. .UNINDENT
  134269. .UNINDENT
  134270. .UNINDENT
  134271. .INDENT 0.0
  134272. .TP
  134273. .B salt.states.supervisord.running(name, restart=False, update=False, user=None, conf_file=None, bin_env=None, **kwargs)
  134274. Ensure the named service is running.
  134275. .INDENT 7.0
  134276. .TP
  134277. .B name
  134278. Service name as defined in the supervisor configuration file
  134279. .TP
  134280. .B restart
  134281. Whether to force a restart
  134282. .TP
  134283. .B update
  134284. Whether to update the supervisor configuration.
  134285. .TP
  134286. .B user
  134287. Name of the user to run the supervisorctl command
  134288. .sp
  134289. New in version 0.17.0.
  134290. .TP
  134291. .B conf_file
  134292. path to supervisorctl config file
  134293. .TP
  134294. .B bin_env
  134295. path to supervisorctl bin or path to virtualenv with supervisor
  134296. installed
  134297. .UNINDENT
  134298. .UNINDENT
  134299. .SS salt.states.sysctl
  134300. .SS Configuration of the kernel using sysctl
  134301. .sp
  134302. Control the kernel sysctl system.
  134303. .INDENT 0.0
  134304. .INDENT 3.5
  134305. .sp
  134306. .nf
  134307. .ft C
  134308. vm.swappiness:
  134309. sysctl.present:
  134310. \- value: 20
  134311. .ft P
  134312. .fi
  134313. .UNINDENT
  134314. .UNINDENT
  134315. .INDENT 0.0
  134316. .TP
  134317. .B salt.states.sysctl.present(name, value, config=None, ignore=False)
  134318. Ensure that the named sysctl value is set in memory and persisted to the
  134319. named configuration file. The default sysctl configuration file is
  134320. /etc/sysctl.conf
  134321. .INDENT 7.0
  134322. .TP
  134323. .B name
  134324. The name of the sysctl value to edit
  134325. .TP
  134326. .B value
  134327. The sysctl value to apply
  134328. .TP
  134329. .B config
  134330. The location of the sysctl configuration file. If not specified, the
  134331. proper location will be detected based on platform.
  134332. .TP
  134333. .B ignore
  134334. \&..versionadded:: neon
  134335. .sp
  134336. Adds \-\-ignore to sysctl commands. This suppresses errors in environments
  134337. where sysctl settings may have been disabled in kernel boot configuration.
  134338. Defaults to False
  134339. .UNINDENT
  134340. .UNINDENT
  134341. .SS salt.states.syslog_ng
  134342. .SS State module for syslog_ng
  134343. .INDENT 0.0
  134344. .TP
  134345. .B maintainer
  134346. Tibor Benke <\fI\%btibi@sch.bme.hu\fP>
  134347. .TP
  134348. .B maturity
  134349. new
  134350. .TP
  134351. .B depends
  134352. cmd, ps, syslog_ng
  134353. .TP
  134354. .B platform
  134355. all
  134356. .UNINDENT
  134357. .INDENT 0.0
  134358. .TP
  134359. .B Users can generate syslog\-ng configuration files from YAML format or use
  134360. plain ones and reload, start, or stop their syslog\-ng by using this module.
  134361. .UNINDENT
  134362. .SS Details
  134363. .sp
  134364. The service module is not available on all system, so this module includes
  134365. \fI\%syslog_ng.reloaded\fP,
  134366. \fI\%syslog_ng.stopped\fP,
  134367. and \fI\%syslog_ng.started\fP functions.
  134368. If the service module is available on the computers, users should use that.
  134369. .sp
  134370. Users can generate syslog\-ng configuration with
  134371. \fI\%syslog_ng.config\fP function.
  134372. For more information see syslog\-ng state usage\&.
  134373. .SS Syslog\-ng configuration file format
  134374. .sp
  134375. The syntax of a configuration snippet in syslog\-ng.conf:
  134376. .INDENT 0.0
  134377. .INDENT 3.5
  134378. .INDENT 0.0
  134379. .INDENT 3.5
  134380. object_type object_id {<options>};
  134381. .UNINDENT
  134382. .UNINDENT
  134383. .UNINDENT
  134384. .UNINDENT
  134385. .sp
  134386. These constructions are also called statements. There are options inside of them:
  134387. .INDENT 0.0
  134388. .INDENT 3.5
  134389. .INDENT 0.0
  134390. .INDENT 3.5
  134391. option(parameter1, parameter2); option2(parameter1, parameter2);
  134392. .UNINDENT
  134393. .UNINDENT
  134394. .UNINDENT
  134395. .UNINDENT
  134396. .sp
  134397. You can find more information about syslog\-ng\(aqs configuration syntax in the
  134398. Syslog\-ng Admin guide:
  134399. \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
  134400. .INDENT 0.0
  134401. .TP
  134402. .B salt.states.syslog_ng.config(name, config, write=True)
  134403. Builds syslog\-ng configuration.
  134404. .sp
  134405. name : the id of the Salt document
  134406. config : the parsed YAML code
  134407. write : if True, it writes the config into the configuration file,
  134408. otherwise just returns it
  134409. .UNINDENT
  134410. .INDENT 0.0
  134411. .TP
  134412. .B salt.states.syslog_ng.reloaded(name)
  134413. Reloads syslog\-ng.
  134414. .UNINDENT
  134415. .INDENT 0.0
  134416. .TP
  134417. .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)
  134418. Ensures, that syslog\-ng is started via the given parameters.
  134419. .sp
  134420. Users shouldn\(aqt use this function, if the service module is available on
  134421. their system.
  134422. .UNINDENT
  134423. .INDENT 0.0
  134424. .TP
  134425. .B salt.states.syslog_ng.stopped(name=None)
  134426. Kills syslog\-ng.
  134427. .UNINDENT
  134428. .SS salt.states.sysrc
  134429. .sp
  134430. State to work with sysrc
  134431. .INDENT 0.0
  134432. .TP
  134433. .B salt.states.sysrc.absent(name, **kwargs)
  134434. Ensure a sysrc variable is absent.
  134435. .INDENT 7.0
  134436. .TP
  134437. .B name
  134438. The variable name to set
  134439. .TP
  134440. .B file
  134441. (optional) The rc file to add the variable to.
  134442. .TP
  134443. .B jail
  134444. (option) the name or JID of the jail to set the value in.
  134445. .UNINDENT
  134446. .UNINDENT
  134447. .INDENT 0.0
  134448. .TP
  134449. .B salt.states.sysrc.managed(name, value, **kwargs)
  134450. Ensure a sysrc variable is set to a specific value.
  134451. .INDENT 7.0
  134452. .TP
  134453. .B name
  134454. The variable name to set
  134455. .TP
  134456. .B value
  134457. Value to set the variable to
  134458. .TP
  134459. .B file
  134460. (optional) The rc file to add the variable to.
  134461. .TP
  134462. .B jail
  134463. (option) the name or JID of the jail to set the value in.
  134464. .UNINDENT
  134465. .sp
  134466. Example:
  134467. .INDENT 7.0
  134468. .INDENT 3.5
  134469. .sp
  134470. .nf
  134471. .ft C
  134472. syslogd:
  134473. sysrc.managed:
  134474. \- name: syslogd_flags
  134475. \- value: \-ss
  134476. .ft P
  134477. .fi
  134478. .UNINDENT
  134479. .UNINDENT
  134480. .UNINDENT
  134481. .SS salt.states.telemetry_alert
  134482. .SS Manage Telemetry alert configurations
  134483. .sp
  134484. New in version 2016.3.0.
  134485. .sp
  134486. Create, Update and destroy Mongo Telemetry alert configurations.
  134487. .sp
  134488. This module uses requests, which can be installed via package, or pip.
  134489. .sp
  134490. This module accepts explicit credential (telemetry api key)
  134491. or can also read api key credentials from a pillar.
  134492. Example:
  134493. .INDENT 0.0
  134494. .INDENT 3.5
  134495. .sp
  134496. .nf
  134497. .ft C
  134498. ensure telemetry alert X is defined on deployment Y:
  134499. telemetry_alert.present:
  134500. \- deployment_id: "rs\-XXXXXX"
  134501. \- metric_name: "testMetric"
  134502. \- alert_config:
  134503. max: 1
  134504. filter: SERVER_ROLE_MONGOD_PRIMARY
  134505. escalate_to: "example@pagerduty.com"
  134506. \- name: "**MANAGED BY ORCA DO NOT EDIT BY HAND** manages alarm on testMetric"
  134507. .ft P
  134508. .fi
  134509. .UNINDENT
  134510. .UNINDENT
  134511. .INDENT 0.0
  134512. .TP
  134513. .B salt.states.telemetry_alert.absent(name, deployment_id, metric_name, api_key=None, profile=u\(aqtelemetry\(aq)
  134514. Ensure the telemetry alert config is deleted
  134515. .INDENT 7.0
  134516. .TP
  134517. .B name
  134518. An optional description of the alarms (not currently supported by telemetry API)
  134519. .TP
  134520. .B deployment_id
  134521. Specifies the ID of the root deployment resource
  134522. (replica set cluster or sharded cluster) to which this alert definition is attached
  134523. .TP
  134524. .B metric_name
  134525. Specifies the unique ID of the metric to whose values these thresholds will be applied
  134526. .TP
  134527. .B api_key
  134528. Telemetry api key for the user
  134529. .TP
  134530. .B profile
  134531. A dict with telemetry config data. If present, will be used instead of
  134532. api_key.
  134533. .UNINDENT
  134534. .UNINDENT
  134535. .INDENT 0.0
  134536. .TP
  134537. .B salt.states.telemetry_alert.present(name, deployment_id, metric_name, alert_config, api_key=None, profile=u\(aqtelemetry\(aq)
  134538. Ensure the telemetry alert exists.
  134539. .INDENT 7.0
  134540. .TP
  134541. .B name
  134542. An optional description of the alarm (not currently supported by telemetry API)
  134543. .TP
  134544. .B deployment_id
  134545. Specifies the ID of the root deployment resource
  134546. (replica set cluster or sharded cluster) to which this alert definition is attached
  134547. .TP
  134548. .B metric_name
  134549. Specifies the unique ID of the metric to whose values these thresholds will be applied
  134550. .TP
  134551. .B alert_config: Is a list of dictionaries where each dict contains the following fields:
  134552. .INDENT 7.0
  134553. .TP
  134554. .B filter
  134555. By default the alert will apply to the deployment and all its constituent resources.
  134556. If the alert only applies to a subset of those resources, a filter may be specified to narrow this scope.
  134557. .TP
  134558. .B min
  134559. the smallest "ok" value the metric may take on; if missing or null, no minimum is enforced.
  134560. .TP
  134561. .B max
  134562. the largest "ok" value the metric may take on; if missing or null, no maximum is enforced.
  134563. .TP
  134564. .B notify_all
  134565. Used to indicate if you want to alert both onCallEngineer and apiNotifications
  134566. .UNINDENT
  134567. .TP
  134568. .B api_key
  134569. Telemetry api key for the user
  134570. .TP
  134571. .B profile
  134572. A dict of telemetry config information. If present, will be used instead of
  134573. api_key.
  134574. .UNINDENT
  134575. .UNINDENT
  134576. .SS salt.states.timezone
  134577. .SS Management of timezones
  134578. .sp
  134579. The timezone can be managed for the system:
  134580. .INDENT 0.0
  134581. .INDENT 3.5
  134582. .sp
  134583. .nf
  134584. .ft C
  134585. America/Denver:
  134586. timezone.system
  134587. .ft P
  134588. .fi
  134589. .UNINDENT
  134590. .UNINDENT
  134591. .sp
  134592. The system and the hardware clock are not necessarily set to the same time.
  134593. By default, the hardware clock is set to localtime, meaning it is set to the
  134594. same time as the system clock. If \fIutc\fP is set to True, then the hardware clock
  134595. will be set to UTC, and the system clock will be an offset of that.
  134596. .INDENT 0.0
  134597. .INDENT 3.5
  134598. .sp
  134599. .nf
  134600. .ft C
  134601. America/Denver:
  134602. timezone.system:
  134603. \- utc: True
  134604. .ft P
  134605. .fi
  134606. .UNINDENT
  134607. .UNINDENT
  134608. .sp
  134609. The Ubuntu community documentation contains an explanation of this setting, as
  134610. it applies to systems that dual\-boot with Windows. This is explained in greater
  134611. detail \fI\%here\fP\&.
  134612. .INDENT 0.0
  134613. .TP
  134614. .B salt.states.timezone.system(name, utc=True)
  134615. Set the timezone for the system.
  134616. .INDENT 7.0
  134617. .TP
  134618. .B name
  134619. The name of the timezone to use (e.g.: America/Denver)
  134620. .TP
  134621. .B utc
  134622. Whether or not to set the hardware clock to UTC (default is True)
  134623. .UNINDENT
  134624. .UNINDENT
  134625. .SS salt.states.tls
  134626. .SS Enforce state for SSL/TLS
  134627. .INDENT 0.0
  134628. .TP
  134629. .B salt.states.tls.valid_certificate(name, weeks=0, days=0, hours=0, minutes=0, seconds=0)
  134630. Verify that a TLS certificate is valid now and (optionally) will be valid
  134631. for the time specified through weeks, days, hours, minutes, and seconds.
  134632. .UNINDENT
  134633. .SS salt.states.tomcat
  134634. .SS Manage Apache Tomcat web applications
  134635. .sp
  134636. \fBNOTE:\fP
  134637. .INDENT 0.0
  134638. .INDENT 3.5
  134639. This state requires the Tomcat Manager webapp to be installed and running.
  134640. .UNINDENT
  134641. .UNINDENT
  134642. .sp
  134643. The following grains/pillars must be set for communication with Tomcat Manager
  134644. to work:
  134645. .INDENT 0.0
  134646. .INDENT 3.5
  134647. .sp
  134648. .nf
  134649. .ft C
  134650. tomcat\-manager:
  134651. user: \(aqtomcat\-manager\(aq
  134652. passwd: \(aqPassw0rd\(aq
  134653. .ft P
  134654. .fi
  134655. .UNINDENT
  134656. .UNINDENT
  134657. .SS Configuring Tomcat Manager
  134658. .sp
  134659. To manage webapps via the Tomcat Manager, you\(aqll need to configure
  134660. a valid user in the file \fBconf/tomcat\-users.xml\fP\&.
  134661. .sp
  134662. conf/tomcat\-users.xml
  134663. .INDENT 0.0
  134664. .INDENT 3.5
  134665. .sp
  134666. .nf
  134667. .ft C
  134668. <?xml version=\(aq1.0\(aq encoding=\(aqutf\-8\(aq?>
  134669. <tomcat\-users>
  134670. <role rolename="manager\-script"/>
  134671. <user username="tomcat\-manager" password="Passw0rd" roles="manager\-script"/>
  134672. </tomcat\-users>
  134673. .ft P
  134674. .fi
  134675. .UNINDENT
  134676. .UNINDENT
  134677. Notes.INDENT 0.0
  134678. .IP \(bu 2
  134679. Using multiple versions (aka. parallel deployments) on the same context
  134680. path is not supported.
  134681. .IP \(bu 2
  134682. More information about the Tomcat Manager:
  134683. \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/manager\-howto.html\fP
  134684. .IP \(bu 2
  134685. If you use only this module for deployments you might want to restrict
  134686. access to the manager so it\(aqs only accessible via localhost.
  134687. For more info: \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/manager\-howto.html#Configuring_Manager_Application_Access\fP
  134688. .IP \(bu 2
  134689. .INDENT 2.0
  134690. .TP
  134691. .B Last tested on:
  134692. .INDENT 7.0
  134693. .TP
  134694. .B Tomcat Version:
  134695. Apache Tomcat/7.0.54
  134696. .TP
  134697. .B JVM Vendor:
  134698. Oracle Corporation
  134699. .TP
  134700. .B JVM Version:
  134701. 1.8.0_101\-b13
  134702. .TP
  134703. .B OS Architecture:
  134704. amd64
  134705. .TP
  134706. .B OS Name:
  134707. Linux
  134708. .TP
  134709. .B OS Version:
  134710. 3.10.0\-327.22.2.el7.x86_64
  134711. .UNINDENT
  134712. .UNINDENT
  134713. .UNINDENT
  134714. .INDENT 0.0
  134715. .TP
  134716. .B salt.states.tomcat.mod_watch(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134717. The tomcat watcher, called to invoke the watch command.
  134718. When called, it will reload the webapp in question
  134719. .sp
  134720. \fBNOTE:\fP
  134721. .INDENT 7.0
  134722. .INDENT 3.5
  134723. This state exists to support special handling of the \fBwatch\fP
  134724. requisite\&. It should not be called directly.
  134725. .sp
  134726. Parameters for this function should be set by the state being triggered.
  134727. .UNINDENT
  134728. .UNINDENT
  134729. .UNINDENT
  134730. .INDENT 0.0
  134731. .TP
  134732. .B salt.states.tomcat.undeployed(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134733. Enforce that the WAR will be undeployed from the server
  134734. .INDENT 7.0
  134735. .TP
  134736. .B name
  134737. The context path to undeploy.
  134738. .TP
  134739. .B url
  134740. \fI\%http://localhost:8080/manager\fP
  134741. The URL of the server with the Tomcat Manager webapp.
  134742. .TP
  134743. .B timeout
  134744. 180
  134745. Timeout for HTTP request to the Tomcat Manager.
  134746. .UNINDENT
  134747. .sp
  134748. Example:
  134749. .INDENT 7.0
  134750. .INDENT 3.5
  134751. .sp
  134752. .nf
  134753. .ft C
  134754. jenkins:
  134755. tomcat.undeployed:
  134756. \- name: /ran
  134757. \- require:
  134758. \- service: application\-service
  134759. .ft P
  134760. .fi
  134761. .UNINDENT
  134762. .UNINDENT
  134763. .UNINDENT
  134764. .INDENT 0.0
  134765. .TP
  134766. .B salt.states.tomcat.wait(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134767. Wait for the Tomcat Manager to load.
  134768. .sp
  134769. Notice that if tomcat is not running we won\(aqt wait for it start and the
  134770. state will fail. This state can be required in the tomcat.war_deployed
  134771. state to make sure tomcat is running and that the manager is running as
  134772. well and ready for deployment.
  134773. .INDENT 7.0
  134774. .TP
  134775. .B url
  134776. \fI\%http://localhost:8080/manager\fP
  134777. The URL of the server with the Tomcat Manager webapp.
  134778. .TP
  134779. .B timeout
  134780. 180
  134781. Timeout for HTTP request to the Tomcat Manager.
  134782. .UNINDENT
  134783. .sp
  134784. Example:
  134785. .INDENT 7.0
  134786. .INDENT 3.5
  134787. .sp
  134788. .nf
  134789. .ft C
  134790. tomcat\-service:
  134791. service.running:
  134792. \- name: tomcat
  134793. \- enable: True
  134794. wait\-for\-tomcatmanager:
  134795. tomcat.wait:
  134796. \- timeout: 300
  134797. \- require:
  134798. \- service: tomcat\-service
  134799. jenkins:
  134800. tomcat.war_deployed:
  134801. \- name: /ran
  134802. \- war: salt://jenkins\-1.2.4.war
  134803. \- require:
  134804. \- tomcat: wait\-for\-tomcatmanager
  134805. .ft P
  134806. .fi
  134807. .UNINDENT
  134808. .UNINDENT
  134809. .UNINDENT
  134810. .INDENT 0.0
  134811. .TP
  134812. .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)
  134813. Enforce that the WAR will be deployed and started in the context path,
  134814. while making use of WAR versions in the filename.
  134815. .sp
  134816. \fBNOTE:\fP
  134817. .INDENT 7.0
  134818. .INDENT 3.5
  134819. For more info about Tomcats file paths and context naming, please see
  134820. \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/config/context.html#Naming\fP
  134821. .UNINDENT
  134822. .UNINDENT
  134823. .INDENT 7.0
  134824. .TP
  134825. .B name
  134826. The context path to deploy (incl. forward slash) the WAR to.
  134827. .TP
  134828. .B war
  134829. Absolute path to WAR file (should be accessible by the user running
  134830. Tomcat) or a path supported by the \fBsalt.modules.cp.get_url\fP function.
  134831. .TP
  134832. .B force
  134833. False
  134834. Force deployment even if the version strings are the same.
  134835. Disabled by default.
  134836. .TP
  134837. .B url
  134838. \fI\%http://localhost:8080/manager\fP
  134839. The URL of the Tomcat Web Application Manager.
  134840. .TP
  134841. .B timeout
  134842. 180
  134843. Timeout for HTTP requests to the Tomcat Manager.
  134844. .TP
  134845. .B temp_war_location
  134846. None
  134847. Use another location to temporarily copy the WAR file to.
  134848. By default the system\(aqs temp directory is used.
  134849. .TP
  134850. .B version
  134851. \(aq\(aq
  134852. Specify the WAR version. If this argument is provided, it overrides
  134853. the version encoded in the WAR file name, if one is present.
  134854. .sp
  134855. New in version 2015.8.6.
  134856. .sp
  134857. Use \fBFalse\fP or blank value to prevent guessing the version and keeping it blank.
  134858. .sp
  134859. New in version 2016.11.0.
  134860. .UNINDENT
  134861. .sp
  134862. Example:
  134863. .INDENT 7.0
  134864. .INDENT 3.5
  134865. .sp
  134866. .nf
  134867. .ft C
  134868. jenkins:
  134869. tomcat.war_deployed:
  134870. \- name: /salt\-powered\-jenkins
  134871. \- war: salt://jenkins\-1.2.4.war
  134872. \- require:
  134873. \- service: application\-service
  134874. .ft P
  134875. .fi
  134876. .UNINDENT
  134877. .UNINDENT
  134878. .sp
  134879. \fBNOTE:\fP
  134880. .INDENT 7.0
  134881. .INDENT 3.5
  134882. Be aware that in the above example the WAR \fBjenkins\-1.2.4.war\fP will
  134883. be deployed to the context path \fBsalt\-powered\-jenkins##1.2.4\fP\&. To avoid this
  134884. either specify a version yourself, or set version to \fBFalse\fP\&.
  134885. .UNINDENT
  134886. .UNINDENT
  134887. .UNINDENT
  134888. .SS salt.states.trafficserver
  134889. .SS Control Apache Traffic Server
  134890. .sp
  134891. New in version 2015.8.0.
  134892. .INDENT 0.0
  134893. .TP
  134894. .B salt.states.trafficserver.bounce_cluster(name)
  134895. Bounce all Traffic Server nodes in the cluster. Bouncing Traffic Server
  134896. shuts down and immediately restarts Traffic Server, node\-by\-node.
  134897. .INDENT 7.0
  134898. .INDENT 3.5
  134899. .sp
  134900. .nf
  134901. .ft C
  134902. bounce_ats_cluster:
  134903. trafficserver.bounce_cluster
  134904. .ft P
  134905. .fi
  134906. .UNINDENT
  134907. .UNINDENT
  134908. .UNINDENT
  134909. .INDENT 0.0
  134910. .TP
  134911. .B salt.states.trafficserver.bounce_local(name, drain=False)
  134912. Bounce Traffic Server on the local node. Bouncing Traffic Server shuts down
  134913. and immediately restarts the Traffic Server node.
  134914. .sp
  134915. This option modifies the behavior of traffic_line \-b and traffic_line \-L
  134916. such that traffic_server is not shut down until the number of active client
  134917. connections drops to the number given by the
  134918. proxy.config.restart.active_client_threshold configuration variable.
  134919. .INDENT 7.0
  134920. .INDENT 3.5
  134921. .sp
  134922. .nf
  134923. .ft C
  134924. bounce_ats_local:
  134925. trafficserver.bounce_local
  134926. bounce_ats_local:
  134927. trafficserver.bounce_local
  134928. \- drain: True
  134929. .ft P
  134930. .fi
  134931. .UNINDENT
  134932. .UNINDENT
  134933. .UNINDENT
  134934. .INDENT 0.0
  134935. .TP
  134936. .B salt.states.trafficserver.clear_cluster(name)
  134937. Clears accumulated statistics on all nodes in the cluster.
  134938. .INDENT 7.0
  134939. .INDENT 3.5
  134940. .sp
  134941. .nf
  134942. .ft C
  134943. clear_ats_cluster:
  134944. trafficserver.clear_cluster
  134945. .ft P
  134946. .fi
  134947. .UNINDENT
  134948. .UNINDENT
  134949. .UNINDENT
  134950. .INDENT 0.0
  134951. .TP
  134952. .B salt.states.trafficserver.clear_node(name)
  134953. Clears accumulated statistics on the local node.
  134954. .INDENT 7.0
  134955. .INDENT 3.5
  134956. .sp
  134957. .nf
  134958. .ft C
  134959. clear_ats_node:
  134960. trafficserver.clear_node
  134961. .ft P
  134962. .fi
  134963. .UNINDENT
  134964. .UNINDENT
  134965. .UNINDENT
  134966. .INDENT 0.0
  134967. .TP
  134968. .B salt.states.trafficserver.config(name, value)
  134969. Set Traffic Server configuration variable values.
  134970. .INDENT 7.0
  134971. .INDENT 3.5
  134972. .sp
  134973. .nf
  134974. .ft C
  134975. proxy.config.proxy_name:
  134976. trafficserver.config:
  134977. \- value: cdn.site.domain.tld
  134978. OR
  134979. traffic_server_setting:
  134980. trafficserver.config:
  134981. \- name: proxy.config.proxy_name
  134982. \- value: cdn.site.domain.tld
  134983. .ft P
  134984. .fi
  134985. .UNINDENT
  134986. .UNINDENT
  134987. .UNINDENT
  134988. .INDENT 0.0
  134989. .TP
  134990. .B salt.states.trafficserver.offline(name, path)
  134991. Mark a cache storage device as offline. The storage is identified by a path
  134992. which must match exactly a path specified in storage.config. This removes
  134993. the storage from the cache and redirects requests that would have used this
  134994. storage to other storage. This has exactly the same effect as a disk
  134995. failure for that storage. This does not persist across restarts of the
  134996. traffic_server process.
  134997. .INDENT 7.0
  134998. .INDENT 3.5
  134999. .sp
  135000. .nf
  135001. .ft C
  135002. offline_ats_path:
  135003. trafficserver.offline:
  135004. \- path: /path/to/cache
  135005. .ft P
  135006. .fi
  135007. .UNINDENT
  135008. .UNINDENT
  135009. .UNINDENT
  135010. .INDENT 0.0
  135011. .TP
  135012. .B salt.states.trafficserver.refresh(name)
  135013. Initiate a Traffic Server configuration file reread. Use this command to
  135014. update the running configuration after any configuration file modification.
  135015. .sp
  135016. The timestamp of the last reconfiguration event (in seconds since epoch) is
  135017. published in the proxy.node.config.reconfigure_time metric.
  135018. .INDENT 7.0
  135019. .INDENT 3.5
  135020. .sp
  135021. .nf
  135022. .ft C
  135023. refresh_ats:
  135024. trafficserver.refresh
  135025. .ft P
  135026. .fi
  135027. .UNINDENT
  135028. .UNINDENT
  135029. .UNINDENT
  135030. .INDENT 0.0
  135031. .TP
  135032. .B salt.states.trafficserver.restart_cluster(name)
  135033. Restart the traffic_manager process and the traffic_server process on all
  135034. the nodes in a cluster.
  135035. .INDENT 7.0
  135036. .INDENT 3.5
  135037. .sp
  135038. .nf
  135039. .ft C
  135040. restart_ats_cluster:
  135041. trafficserver.restart_cluster
  135042. .ft P
  135043. .fi
  135044. .UNINDENT
  135045. .UNINDENT
  135046. .UNINDENT
  135047. .INDENT 0.0
  135048. .TP
  135049. .B salt.states.trafficserver.restart_local(name, drain=False)
  135050. Restart the traffic_manager and traffic_server processes on the local node.
  135051. .sp
  135052. This option modifies the behavior of traffic_line \-b and traffic_line \-L
  135053. such that traffic_server is not shut down until the number of active client
  135054. connections drops to the number given by the
  135055. proxy.config.restart.active_client_threshold configuration variable.
  135056. .INDENT 7.0
  135057. .INDENT 3.5
  135058. .sp
  135059. .nf
  135060. .ft C
  135061. restart_ats_local:
  135062. trafficserver.restart_local
  135063. restart_ats_local_drain:
  135064. trafficserver.restart_local
  135065. \- drain: True
  135066. .ft P
  135067. .fi
  135068. .UNINDENT
  135069. .UNINDENT
  135070. .UNINDENT
  135071. .INDENT 0.0
  135072. .TP
  135073. .B salt.states.trafficserver.shutdown(name)
  135074. Shut down Traffic Server on the local node.
  135075. .INDENT 7.0
  135076. .INDENT 3.5
  135077. .sp
  135078. .nf
  135079. .ft C
  135080. shutdown_ats:
  135081. trafficserver.shutdown
  135082. .ft P
  135083. .fi
  135084. .UNINDENT
  135085. .UNINDENT
  135086. .UNINDENT
  135087. .INDENT 0.0
  135088. .TP
  135089. .B salt.states.trafficserver.startup(name)
  135090. Start Traffic Server on the local node.
  135091. .INDENT 7.0
  135092. .INDENT 3.5
  135093. .sp
  135094. .nf
  135095. .ft C
  135096. startup_ats:
  135097. trafficserver.startup
  135098. .ft P
  135099. .fi
  135100. .UNINDENT
  135101. .UNINDENT
  135102. .UNINDENT
  135103. .INDENT 0.0
  135104. .TP
  135105. .B salt.states.trafficserver.zero_cluster(name)
  135106. Reset performance statistics to zero across the cluster.
  135107. .INDENT 7.0
  135108. .INDENT 3.5
  135109. .sp
  135110. .nf
  135111. .ft C
  135112. zero_ats_cluster:
  135113. trafficserver.zero_cluster
  135114. .ft P
  135115. .fi
  135116. .UNINDENT
  135117. .UNINDENT
  135118. .UNINDENT
  135119. .INDENT 0.0
  135120. .TP
  135121. .B salt.states.trafficserver.zero_node(name)
  135122. Reset performance statistics to zero on the local node.
  135123. .INDENT 7.0
  135124. .INDENT 3.5
  135125. .sp
  135126. .nf
  135127. .ft C
  135128. zero_ats_node:
  135129. trafficserver.zero_node
  135130. .ft P
  135131. .fi
  135132. .UNINDENT
  135133. .UNINDENT
  135134. .UNINDENT
  135135. .SS salt.states.tuned
  135136. .sp
  135137. Interface to Red Hat tuned\-adm module
  135138. .INDENT 0.0
  135139. .TP
  135140. .B maintainer
  135141. Syed Ali <\fI\%alicsyed@gmail.com\fP>
  135142. .TP
  135143. .B maturity
  135144. new
  135145. .TP
  135146. .B depends
  135147. cmd.run
  135148. .TP
  135149. .B platform
  135150. Linux
  135151. .UNINDENT
  135152. .INDENT 0.0
  135153. .TP
  135154. .B salt.states.tuned.off(name=None)
  135155. Turns \(aqtuned\(aq off.
  135156. Example tuned.sls file for turning tuned off:
  135157. .INDENT 7.0
  135158. .TP
  135159. .B tuned:
  135160. tuned.off: []
  135161. .TP
  135162. .B To see a valid list of states call execution module:
  135163. \fBtuned.list\fP
  135164. .UNINDENT
  135165. .UNINDENT
  135166. .INDENT 0.0
  135167. .TP
  135168. .B salt.states.tuned.profile(name)
  135169. This state module allows you to modify system tuned parameters
  135170. .sp
  135171. Example tuned.sls file to set profile to virtual\-guest
  135172. .INDENT 7.0
  135173. .TP
  135174. .B tuned:
  135175. .INDENT 7.0
  135176. .TP
  135177. .B tuned:
  135178. .INDENT 7.0
  135179. .IP \(bu 2
  135180. profile
  135181. .IP \(bu 2
  135182. name: virtual\-guest
  135183. .UNINDENT
  135184. .UNINDENT
  135185. .TP
  135186. .B name
  135187. tuned profile name to set the system to
  135188. .TP
  135189. .B To see a valid list of states call execution module:
  135190. \fBtuned.list\fP
  135191. .UNINDENT
  135192. .UNINDENT
  135193. .SS salt.states.uptime
  135194. .SS Monitor Web Server with Uptime
  135195. .sp
  135196. \fI\%Uptime\fP is an open source
  135197. remote monitoring application using Node.js, MongoDB, and Twitter
  135198. Bootstrap.
  135199. .sp
  135200. \fBWARNING:\fP
  135201. .INDENT 0.0
  135202. .INDENT 3.5
  135203. This state module is beta. It might be changed later to include
  135204. more or less automation.
  135205. .UNINDENT
  135206. .UNINDENT
  135207. .sp
  135208. \fBNOTE:\fP
  135209. .INDENT 0.0
  135210. .INDENT 3.5
  135211. This state module requires a pillar to specify the location of
  135212. your uptime install
  135213. .INDENT 0.0
  135214. .INDENT 3.5
  135215. .sp
  135216. .nf
  135217. .ft C
  135218. uptime:
  135219. application_url: "http://uptime\-url.example.org"
  135220. .ft P
  135221. .fi
  135222. .UNINDENT
  135223. .UNINDENT
  135224. .UNINDENT
  135225. .UNINDENT
  135226. .sp
  135227. Example:
  135228. .INDENT 0.0
  135229. .INDENT 3.5
  135230. .sp
  135231. .nf
  135232. .ft C
  135233. url:
  135234. uptime.monitored
  135235. url/sitemap.xml:
  135236. uptime.monitored:
  135237. \- polling: 600 # every hour
  135238. .ft P
  135239. .fi
  135240. .UNINDENT
  135241. .UNINDENT
  135242. .INDENT 0.0
  135243. .TP
  135244. .B salt.states.uptime.monitored(name, **params)
  135245. Makes sure an URL is monitored by uptime. Checks if URL is already
  135246. monitored, and if not, adds it.
  135247. .UNINDENT
  135248. .SS salt.states.vault module
  135249. .sp
  135250. States for managing Hashicorp Vault.
  135251. Currently handles policies. Configuration instructions are documented in the execution module docs.
  135252. .INDENT 0.0
  135253. .TP
  135254. .B maintainer
  135255. SaltStack
  135256. .TP
  135257. .B maturity
  135258. new
  135259. .TP
  135260. .B platform
  135261. all
  135262. .UNINDENT
  135263. .sp
  135264. New in version 2017.7.0.
  135265. .INDENT 0.0
  135266. .TP
  135267. .B salt.states.vault.policy_present(name, rules)
  135268. Ensure a Vault policy with the given name and rules is present.
  135269. .INDENT 7.0
  135270. .TP
  135271. .B name
  135272. The name of the policy
  135273. .TP
  135274. .B rules
  135275. Rules formatted as in\-line HCL
  135276. .UNINDENT
  135277. .INDENT 7.0
  135278. .INDENT 3.5
  135279. .sp
  135280. .nf
  135281. .ft C
  135282. demo\-policy:
  135283. vault.policy_present:
  135284. \- name: foo/bar
  135285. \- rules: |
  135286. path "secret/top\-secret/*" {
  135287. policy = "deny"
  135288. }
  135289. path "secret/not\-very\-secret/*" {
  135290. policy = "write"
  135291. }
  135292. .ft P
  135293. .fi
  135294. .UNINDENT
  135295. .UNINDENT
  135296. .UNINDENT
  135297. .SS salt.states.vbox_guest
  135298. .sp
  135299. VirtualBox Guest Additions installer state
  135300. .INDENT 0.0
  135301. .TP
  135302. .B salt.states.vbox_guest.additions_installed(name, reboot=False, upgrade_os=False)
  135303. Ensure that the VirtualBox Guest Additions are installed. Uses the CD,
  135304. connected by VirtualBox.
  135305. .INDENT 7.0
  135306. .TP
  135307. .B name
  135308. The name has no functional value and is only used as a tracking
  135309. reference.
  135310. .TP
  135311. .B reboot
  135312. False
  135313. Restart OS to complete installation.
  135314. .TP
  135315. .B upgrade_os
  135316. False
  135317. Upgrade OS (to ensure the latests version of kernel and developer tools
  135318. installed).
  135319. .UNINDENT
  135320. .UNINDENT
  135321. .INDENT 0.0
  135322. .TP
  135323. .B salt.states.vbox_guest.additions_removed(name, force=False)
  135324. Ensure that the VirtualBox Guest Additions are removed. Uses the CD,
  135325. connected by VirtualBox.
  135326. .sp
  135327. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  135328. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  135329. .INDENT 7.0
  135330. .TP
  135331. .B name
  135332. The name has no functional value and is only used as a tracking
  135333. reference.
  135334. .TP
  135335. .B force
  135336. Force VirtualBox Guest Additions removing.
  135337. .UNINDENT
  135338. .UNINDENT
  135339. .INDENT 0.0
  135340. .TP
  135341. .B salt.states.vbox_guest.grant_access_to_shared_folders_to(name, users=None)
  135342. Grant access to auto\-mounted shared folders to the users.
  135343. .sp
  135344. User is specified by its name. To grant access for several users use
  135345. argument \fIusers\fP\&.
  135346. .INDENT 7.0
  135347. .TP
  135348. .B name
  135349. Name of the user to grant access to auto\-mounted shared folders to.
  135350. .TP
  135351. .B users
  135352. List of names of users to grant access to auto\-mounted shared folders to.
  135353. If specified, \fIname\fP will not be taken into account.
  135354. .UNINDENT
  135355. .UNINDENT
  135356. .SS salt.states.victorops
  135357. .SS Create an Event in VictorOps
  135358. .sp
  135359. New in version 2015.8.0.
  135360. .sp
  135361. This state is useful for creating events on the
  135362. VictorOps service during state runs.
  135363. .INDENT 0.0
  135364. .INDENT 3.5
  135365. .sp
  135366. .nf
  135367. .ft C
  135368. webserver\-warning\-message:
  135369. victorops.create_event:
  135370. \- message_type: \(aqCRITICAL\(aq
  135371. \- entity_id: \(aqwebserver/diskspace\(aq
  135372. \- state_message: \(aqWebserver diskspace is low.\(aq
  135373. .ft P
  135374. .fi
  135375. .UNINDENT
  135376. .UNINDENT
  135377. .INDENT 0.0
  135378. .TP
  135379. .B salt.states.victorops.create_event(name, message_type, routing_key=u\(aqeveryone\(aq, **kwargs)
  135380. Create an event on the VictorOps service
  135381. .INDENT 7.0
  135382. .INDENT 3.5
  135383. .sp
  135384. .nf
  135385. .ft C
  135386. webserver\-warning\-message:
  135387. victorops.create_event:
  135388. \- message_type: \(aqCRITICAL\(aq
  135389. \- entity_id: \(aqwebserver/diskspace\(aq
  135390. \- state_message: \(aqWebserver diskspace is low.\(aq
  135391. database\-server\-warning\-message:
  135392. victorops.create_event:
  135393. \- message_type: \(aqWARNING\(aq
  135394. \- entity_id: \(aqdb_server/load\(aq
  135395. \- state_message: \(aqDatabase Server load is high.\(aq
  135396. \- entity_is_host: True
  135397. \- entity_display_name: \(aqdbdserver.example.com\(aq
  135398. .ft P
  135399. .fi
  135400. .UNINDENT
  135401. .UNINDENT
  135402. .sp
  135403. The following parameters are required:
  135404. .INDENT 7.0
  135405. .TP
  135406. .B name
  135407. This is a short description of the event.
  135408. .TP
  135409. .B message_type
  135410. One of the following values: INFO, WARNING, ACKNOWLEDGEMENT, CRITICAL, RECOVERY.
  135411. .UNINDENT
  135412. .sp
  135413. The following parameters are optional:
  135414. .INDENT 7.0
  135415. .INDENT 3.5
  135416. .INDENT 0.0
  135417. .TP
  135418. .B routing_key
  135419. The key for where messages should be routed. By default, sent to \(aqeveryone\(aq route.
  135420. .TP
  135421. .B entity_id
  135422. The name of alerting entity. If not provided, a random name will be assigned.
  135423. .TP
  135424. .B timestamp
  135425. Timestamp of the alert in seconds since epoch. Defaults to the time the alert is received at VictorOps.
  135426. .TP
  135427. .B timestamp_fmt
  135428. The date format for the timestamp parameter. Defaults to \(aq\(aq%Y\-%m\-%dT%H:%M:%S\(aq.
  135429. .TP
  135430. .B state_start_time
  135431. The time this entity entered its current state (seconds since epoch). Defaults to the time alert is received.
  135432. .TP
  135433. .B state_start_time_fmt
  135434. The date format for the timestamp parameter. Defaults to \(aq%Y\-%m\-%dT%H:%M:%S\(aq.
  135435. .TP
  135436. .B state_message
  135437. Any additional status information from the alert item.
  135438. .TP
  135439. .B entity_is_host
  135440. Used within VictorOps to select the appropriate display format for the incident.
  135441. .TP
  135442. .B entity_display_name
  135443. Used within VictorOps to display a human\-readable name for the entity.
  135444. .TP
  135445. .B ack_message
  135446. A user entered comment for the acknowledgment.
  135447. .TP
  135448. .B ack_author
  135449. The user that acknowledged the incident.
  135450. .UNINDENT
  135451. .UNINDENT
  135452. .UNINDENT
  135453. .UNINDENT
  135454. .SS salt.states.win_dacl
  135455. .sp
  135456. Windows Object Access Control Lists
  135457. .INDENT 0.0
  135458. .TP
  135459. .B Ensure an ACL is present
  135460. .INDENT 7.0
  135461. .TP
  135462. .B parameters:
  135463. name \- the path of the object
  135464. objectType \- Registry/File/Directory
  135465. user \- user account or SID for the ace
  135466. permission \- permission for the ace (see module win_acl for available permissions for each objectType)
  135467. acetype \- Allow/Deny
  135468. propagation \- how the ACL should apply to child objects (see module win_acl for available propagation types)
  135469. .UNINDENT
  135470. .INDENT 7.0
  135471. .INDENT 3.5
  135472. .sp
  135473. .nf
  135474. .ft C
  135475. addAcl:
  135476. win_dacl.present:
  135477. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135478. \- objectType: Registry
  135479. \- user: FakeUser
  135480. \- permission: FullControl
  135481. \- acetype: ALLOW
  135482. \- propagation: KEY&SUBKEYS
  135483. .ft P
  135484. .fi
  135485. .UNINDENT
  135486. .UNINDENT
  135487. .TP
  135488. .B Ensure an ACL does not exist
  135489. .INDENT 7.0
  135490. .TP
  135491. .B parameters:
  135492. name \- the path of the object
  135493. objectType \- Registry/File/Directory
  135494. user \- user account or SID for the ace
  135495. permission \- permission for the ace (see module win_acl for available permissions for each objectType)
  135496. acetype \- Allow/Deny
  135497. propagation \- how the ACL should apply to child objects (see module win_acl for available propagation types)
  135498. .UNINDENT
  135499. .INDENT 7.0
  135500. .INDENT 3.5
  135501. .sp
  135502. .nf
  135503. .ft C
  135504. removeAcl:
  135505. win_dacl.absent:
  135506. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135507. \- objectType: Registry
  135508. \- user: FakeUser
  135509. \- permission: FulLControl
  135510. \- acetype: ALLOW
  135511. \- propagation: KEY&SUBKEYS
  135512. .ft P
  135513. .fi
  135514. .UNINDENT
  135515. .UNINDENT
  135516. .TP
  135517. .B Ensure an object is inheriting permissions
  135518. .INDENT 7.0
  135519. .TP
  135520. .B parameters:
  135521. name \- the path of the object
  135522. objectType \- Registry/File/Directory
  135523. clear_existing_acl \- True/False \- when inheritance is enabled, should the existing ACL be kept or cleared out
  135524. .UNINDENT
  135525. .INDENT 7.0
  135526. .INDENT 3.5
  135527. .sp
  135528. .nf
  135529. .ft C
  135530. eInherit:
  135531. win_dacl.enableinheritance:
  135532. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135533. \- objectType: Registry
  135534. \- clear_existing_acl: True
  135535. .ft P
  135536. .fi
  135537. .UNINDENT
  135538. .UNINDENT
  135539. .TP
  135540. .B Ensure an object is not inheriting permissions
  135541. .INDENT 7.0
  135542. .TP
  135543. .B parameters:
  135544. name \- the path of the object
  135545. objectType \- Registry/File/Directory
  135546. copy_inherited_acl \- True/False \- if inheritance is enabled, should the inherited permissions be copied to the ACL when inheritance is disabled
  135547. .UNINDENT
  135548. .INDENT 7.0
  135549. .INDENT 3.5
  135550. .sp
  135551. .nf
  135552. .ft C
  135553. dInherit:
  135554. win_dacl.disableinheritance:
  135555. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135556. \- objectType: Registry
  135557. \- copy_inherited_acl: False
  135558. .ft P
  135559. .fi
  135560. .UNINDENT
  135561. .UNINDENT
  135562. .UNINDENT
  135563. .INDENT 0.0
  135564. .TP
  135565. .B salt.states.win_dacl.absent(name, objectType, user, permission, acetype, propagation)
  135566. Ensure an ACL does not exist
  135567. .UNINDENT
  135568. .INDENT 0.0
  135569. .TP
  135570. .B salt.states.win_dacl.disinherit(name, objectType, copy_inherited_acl=True)
  135571. Ensure an object is not inheriting ACLs from its parent
  135572. .UNINDENT
  135573. .INDENT 0.0
  135574. .TP
  135575. .B salt.states.win_dacl.inherit(name, objectType, clear_existing_acl=False)
  135576. Ensure an object is inheriting ACLs from its parent
  135577. .UNINDENT
  135578. .INDENT 0.0
  135579. .TP
  135580. .B salt.states.win_dacl.present(name, objectType, user, permission, acetype, propagation)
  135581. Ensure an ACE is present
  135582. .UNINDENT
  135583. .SS salt.states.win_dns_client
  135584. .sp
  135585. Module for configuring DNS Client on Windows systems
  135586. .INDENT 0.0
  135587. .TP
  135588. .B salt.states.win_dns_client.dns_dhcp(name, interface=u\(aqLocal Area Connection\(aq)
  135589. Configure the DNS server list from DHCP Server
  135590. .UNINDENT
  135591. .INDENT 0.0
  135592. .TP
  135593. .B salt.states.win_dns_client.dns_exists(name, servers=None, interface=u\(aqLocal Area Connection\(aq, replace=False)
  135594. Configure the DNS server list in the specified interface
  135595. .sp
  135596. Example:
  135597. .INDENT 7.0
  135598. .INDENT 3.5
  135599. .sp
  135600. .nf
  135601. .ft C
  135602. config_dns_servers:
  135603. win_dns_client.dns_exists:
  135604. \- replace: True #remove any servers not in the "servers" list, default is False
  135605. \- servers:
  135606. \- 8.8.8.8
  135607. \- 8.8.8.9
  135608. .ft P
  135609. .fi
  135610. .UNINDENT
  135611. .UNINDENT
  135612. .UNINDENT
  135613. .INDENT 0.0
  135614. .TP
  135615. .B salt.states.win_dns_client.primary_suffix(name, suffix=None, updates=False)
  135616. New in version 2014.7.0.
  135617. .sp
  135618. Configure the global primary DNS suffix of a DHCP client.
  135619. .INDENT 7.0
  135620. .TP
  135621. .B suffix
  135622. None
  135623. The suffix which is advertised for this client when acquiring a DHCP lease
  135624. When none is set, the explicitly configured DNS suffix will be removed.
  135625. .TP
  135626. .B updates
  135627. False
  135628. Allow syncing the DNS suffix with the AD domain when the client\(aqs AD domain membership changes
  135629. .UNINDENT
  135630. .INDENT 7.0
  135631. .INDENT 3.5
  135632. .sp
  135633. .nf
  135634. .ft C
  135635. primary_dns_suffix:
  135636. win_dns_client.primary_suffix:
  135637. \- suffix: sub.domain.tld
  135638. \- updates: True
  135639. .ft P
  135640. .fi
  135641. .UNINDENT
  135642. .UNINDENT
  135643. .UNINDENT
  135644. .SS salt.states.win_firewall
  135645. .sp
  135646. State for configuring Windows Firewall
  135647. .INDENT 0.0
  135648. .TP
  135649. .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)
  135650. Add a new inbound or outbound rule to the firewall policy
  135651. .INDENT 7.0
  135652. .TP
  135653. .B Parameters
  135654. .INDENT 7.0
  135655. .IP \(bu 2
  135656. \fBname\fP (\fI\%str\fP) \-\- The name of the rule. Must be unique and cannot be "all".
  135657. Required.
  135658. .IP \(bu 2
  135659. \fBlocalport\fP (\fI\%int\fP) \-\- The port the rule applies to. Must be a number between
  135660. 0 and 65535. Can be a range. Can specify multiple ports separated by
  135661. commas. Required.
  135662. .IP \(bu 2
  135663. \fBprotocol\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135664. .sp
  135665. The protocol. Can be any of the following:
  135666. .INDENT 2.0
  135667. .IP \(bu 2
  135668. A number between 0 and 255
  135669. .IP \(bu 2
  135670. icmpv4
  135671. .IP \(bu 2
  135672. icmpv6
  135673. .IP \(bu 2
  135674. tcp
  135675. .IP \(bu 2
  135676. udp
  135677. .IP \(bu 2
  135678. any
  135679. .UNINDENT
  135680. .IP \(bu 2
  135681. \fBaction\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135682. .sp
  135683. The action the rule performs. Can be any of the
  135684. following:
  135685. .INDENT 2.0
  135686. .IP \(bu 2
  135687. allow
  135688. .IP \(bu 2
  135689. block
  135690. .IP \(bu 2
  135691. bypass
  135692. .UNINDENT
  135693. .IP \(bu 2
  135694. \fBdir\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\- The direction. Can be \fBin\fP or \fBout\fP\&.
  135695. .IP \(bu 2
  135696. \fBremoteip\fP (\fIOptional\fP\fI [\fP\fI\%str\fP\fI]\fP) \-\-
  135697. .sp
  135698. The remote IP. Can be any of the following:
  135699. .INDENT 2.0
  135700. .IP \(bu 2
  135701. any
  135702. .IP \(bu 2
  135703. localsubnet
  135704. .IP \(bu 2
  135705. dns
  135706. .IP \(bu 2
  135707. dhcp
  135708. .IP \(bu 2
  135709. wins
  135710. .IP \(bu 2
  135711. defaultgateway
  135712. .IP \(bu 2
  135713. Any valid IPv4 address (192.168.0.12)
  135714. .IP \(bu 2
  135715. Any valid IPv6 address (2002:9b3b:1a31:4:208:74ff:fe39:6c43)
  135716. .IP \(bu 2
  135717. Any valid subnet (192.168.1.0/24)
  135718. .IP \(bu 2
  135719. Any valid range of IP addresses (192.168.0.1\-192.168.0.12)
  135720. .IP \(bu 2
  135721. A list of valid IP addresses
  135722. .UNINDENT
  135723. .sp
  135724. Can be combinations of the above separated by commas.
  135725. .sp
  135726. New in version 2016.11.6.
  135727. .UNINDENT
  135728. .UNINDENT
  135729. .sp
  135730. Example:
  135731. .INDENT 7.0
  135732. .INDENT 3.5
  135733. .sp
  135734. .nf
  135735. .ft C
  135736. open_smb_port:
  135737. win_firewall.add_rule:
  135738. \- name: SMB (445)
  135739. \- localport: 445
  135740. \- protocol: tcp
  135741. \- action: allow
  135742. .ft P
  135743. .fi
  135744. .UNINDENT
  135745. .UNINDENT
  135746. .UNINDENT
  135747. .INDENT 0.0
  135748. .TP
  135749. .B salt.states.win_firewall.disabled(name=u\(aqallprofiles\(aq)
  135750. Disable all the firewall profiles (Windows only)
  135751. .INDENT 7.0
  135752. .TP
  135753. .B Parameters
  135754. \fBprofile\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135755. .sp
  135756. The name of the profile to disable. Default is
  135757. \fBallprofiles\fP\&. Valid options are:
  135758. .INDENT 7.0
  135759. .IP \(bu 2
  135760. allprofiles
  135761. .IP \(bu 2
  135762. domainprofile
  135763. .IP \(bu 2
  135764. privateprofile
  135765. .IP \(bu 2
  135766. publicprofile
  135767. .UNINDENT
  135768. .UNINDENT
  135769. .sp
  135770. Example:
  135771. .INDENT 7.0
  135772. .INDENT 3.5
  135773. .sp
  135774. .nf
  135775. .ft C
  135776. # To disable the domain profile
  135777. disable_domain:
  135778. win_firewall.disabled:
  135779. \- name: domainprofile
  135780. # To disable all profiles
  135781. disable_all:
  135782. win_firewall.disabled:
  135783. \- name: allprofiles
  135784. .ft P
  135785. .fi
  135786. .UNINDENT
  135787. .UNINDENT
  135788. .UNINDENT
  135789. .INDENT 0.0
  135790. .TP
  135791. .B salt.states.win_firewall.enabled(name=u\(aqallprofiles\(aq)
  135792. Enable all the firewall profiles (Windows only)
  135793. .INDENT 7.0
  135794. .TP
  135795. .B Parameters
  135796. \fBprofile\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135797. .sp
  135798. The name of the profile to enable. Default is
  135799. \fBallprofiles\fP\&. Valid options are:
  135800. .INDENT 7.0
  135801. .IP \(bu 2
  135802. allprofiles
  135803. .IP \(bu 2
  135804. domainprofile
  135805. .IP \(bu 2
  135806. privateprofile
  135807. .IP \(bu 2
  135808. publicprofile
  135809. .UNINDENT
  135810. .UNINDENT
  135811. .sp
  135812. Example:
  135813. .INDENT 7.0
  135814. .INDENT 3.5
  135815. .sp
  135816. .nf
  135817. .ft C
  135818. # To enable the domain profile
  135819. enable_domain:
  135820. win_firewall.enabled:
  135821. \- name: domainprofile
  135822. # To enable all profiles
  135823. enable_all:
  135824. win_firewall.enabled:
  135825. \- name: allprofiles
  135826. .ft P
  135827. .fi
  135828. .UNINDENT
  135829. .UNINDENT
  135830. .UNINDENT
  135831. .SS salt.states.win_iis module
  135832. .sp
  135833. Microsoft IIS site management
  135834. .sp
  135835. This module provides the ability to add/remove websites and application pools
  135836. from Microsoft IIS.
  135837. .sp
  135838. New in version 2016.3.0.
  135839. .INDENT 0.0
  135840. .TP
  135841. .B salt.states.win_iis.container_setting(name, container, settings=None)
  135842. Set the value of the setting for an IIS container.
  135843. .INDENT 7.0
  135844. .TP
  135845. .B Parameters
  135846. .INDENT 7.0
  135847. .IP \(bu 2
  135848. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS container.
  135849. .IP \(bu 2
  135850. \fBcontainer\fP (\fI\%str\fP) \-\- The type of IIS container. The container types are:
  135851. AppPools, Sites, SslBindings
  135852. .IP \(bu 2
  135853. \fBsettings\fP (\fI\%str\fP) \-\- A dictionary of the setting names and their values.
  135854. Example of usage for the \fBAppPools\fP container:
  135855. .UNINDENT
  135856. .UNINDENT
  135857. .INDENT 7.0
  135858. .INDENT 3.5
  135859. .sp
  135860. .nf
  135861. .ft C
  135862. site0\-apppool\-setting:
  135863. win_iis.container_setting:
  135864. \- name: site0
  135865. \- container: AppPools
  135866. \- settings:
  135867. managedPipelineMode: Integrated
  135868. processModel.maxProcesses: 1
  135869. processModel.userName: TestUser
  135870. processModel.password: TestPassword
  135871. processModel.identityType: SpecificUser
  135872. .ft P
  135873. .fi
  135874. .UNINDENT
  135875. .UNINDENT
  135876. .sp
  135877. Example of usage for the \fBSites\fP container:
  135878. .INDENT 7.0
  135879. .INDENT 3.5
  135880. .sp
  135881. .nf
  135882. .ft C
  135883. site0\-site\-setting:
  135884. win_iis.container_setting:
  135885. \- name: site0
  135886. \- container: Sites
  135887. \- settings:
  135888. logFile.logFormat: W3C
  135889. logFile.period: Daily
  135890. limits.maxUrlSegments: 32
  135891. .ft P
  135892. .fi
  135893. .UNINDENT
  135894. .UNINDENT
  135895. .UNINDENT
  135896. .INDENT 0.0
  135897. .TP
  135898. .B salt.states.win_iis.create_app(name, site, sourcepath, apppool=None)
  135899. Create an IIS application.
  135900. .INDENT 7.0
  135901. .TP
  135902. .B Parameters
  135903. .INDENT 7.0
  135904. .IP \(bu 2
  135905. \fBname\fP (\fI\%str\fP) \-\- The IIS application.
  135906. .IP \(bu 2
  135907. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135908. .IP \(bu 2
  135909. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path.
  135910. .IP \(bu 2
  135911. \fBapppool\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  135912. .UNINDENT
  135913. .UNINDENT
  135914. .sp
  135915. Example of usage with only the required arguments:
  135916. .INDENT 7.0
  135917. .INDENT 3.5
  135918. .sp
  135919. .nf
  135920. .ft C
  135921. site0\-v1\-app:
  135922. win_iis.create_app:
  135923. \- name: v1
  135924. \- site: site0
  135925. \- sourcepath: C:\einetpub\esite0\ev1
  135926. .ft P
  135927. .fi
  135928. .UNINDENT
  135929. .UNINDENT
  135930. .sp
  135931. Example of usage specifying all available arguments:
  135932. .INDENT 7.0
  135933. .INDENT 3.5
  135934. .sp
  135935. .nf
  135936. .ft C
  135937. site0\-v1\-app:
  135938. win_iis.create_app:
  135939. \- name: v1
  135940. \- site: site0
  135941. \- sourcepath: C:\einetpub\esite0\ev1
  135942. \- apppool: site0
  135943. .ft P
  135944. .fi
  135945. .UNINDENT
  135946. .UNINDENT
  135947. .UNINDENT
  135948. .INDENT 0.0
  135949. .TP
  135950. .B salt.states.win_iis.create_apppool(name)
  135951. Create an IIS application pool.
  135952. .INDENT 7.0
  135953. .TP
  135954. .B Parameters
  135955. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  135956. .UNINDENT
  135957. .sp
  135958. Usage:
  135959. .INDENT 7.0
  135960. .INDENT 3.5
  135961. .sp
  135962. .nf
  135963. .ft C
  135964. site0\-apppool:
  135965. win_iis.create_apppool:
  135966. \- name: site0
  135967. .ft P
  135968. .fi
  135969. .UNINDENT
  135970. .UNINDENT
  135971. .UNINDENT
  135972. .INDENT 0.0
  135973. .TP
  135974. .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)
  135975. Create an IIS binding.
  135976. .INDENT 7.0
  135977. .TP
  135978. .B Parameters
  135979. .INDENT 7.0
  135980. .IP \(bu 2
  135981. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135982. .IP \(bu 2
  135983. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  135984. .IP \(bu 2
  135985. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  135986. .IP \(bu 2
  135987. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  135988. .IP \(bu 2
  135989. \fBprotocol\fP (\fI\%str\fP) \-\- The application protocol of the binding.
  135990. .IP \(bu 2
  135991. \fBsslflags\fP (\fI\%str\fP) \-\- The flags representing certificate type and storage of the binding.
  135992. .UNINDENT
  135993. .UNINDENT
  135994. .sp
  135995. Example of usage with only the required arguments:
  135996. .INDENT 7.0
  135997. .INDENT 3.5
  135998. .sp
  135999. .nf
  136000. .ft C
  136001. site0\-https\-binding:
  136002. win_iis.create_binding:
  136003. \- site: site0
  136004. .ft P
  136005. .fi
  136006. .UNINDENT
  136007. .UNINDENT
  136008. .sp
  136009. Example of usage specifying all available arguments:
  136010. .INDENT 7.0
  136011. .INDENT 3.5
  136012. .sp
  136013. .nf
  136014. .ft C
  136015. site0\-https\-binding:
  136016. win_iis.create_binding:
  136017. \- site: site0
  136018. \- hostheader: site0.local
  136019. \- ipaddress: \(aq*\(aq
  136020. \- port: 443
  136021. \- protocol: https
  136022. \- sslflags: 0
  136023. .ft P
  136024. .fi
  136025. .UNINDENT
  136026. .UNINDENT
  136027. .UNINDENT
  136028. .INDENT 0.0
  136029. .TP
  136030. .B salt.states.win_iis.create_cert_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=443, sslflags=0)
  136031. Assign a certificate to an IIS binding.
  136032. .INDENT 7.0
  136033. .TP
  136034. .B Parameters
  136035. .INDENT 7.0
  136036. .IP \(bu 2
  136037. \fBname\fP (\fI\%str\fP) \-\- The thumbprint of the certificate.
  136038. .IP \(bu 2
  136039. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136040. .IP \(bu 2
  136041. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136042. .IP \(bu 2
  136043. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136044. .IP \(bu 2
  136045. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136046. .IP \(bu 2
  136047. \fBsslflags\fP (\fI\%str\fP) \-\- Flags representing certificate type and certificate storage of the binding.
  136048. .UNINDENT
  136049. .UNINDENT
  136050. .sp
  136051. Example of usage with only the required arguments:
  136052. .INDENT 7.0
  136053. .INDENT 3.5
  136054. .sp
  136055. .nf
  136056. .ft C
  136057. site0\-cert\-binding:
  136058. win_iis.create_cert_binding:
  136059. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136060. \- site: site0
  136061. .ft P
  136062. .fi
  136063. .UNINDENT
  136064. .UNINDENT
  136065. .sp
  136066. Example of usage specifying all available arguments:
  136067. .INDENT 7.0
  136068. .INDENT 3.5
  136069. .sp
  136070. .nf
  136071. .ft C
  136072. site0\-cert\-binding:
  136073. win_iis.create_cert_binding:
  136074. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136075. \- site: site0
  136076. \- hostheader: site0.local
  136077. \- ipaddress: 192.168.1.199
  136078. \- port: 443
  136079. \- sslflags: 1
  136080. .ft P
  136081. .fi
  136082. .UNINDENT
  136083. .UNINDENT
  136084. .sp
  136085. New in version 2016.11.0.
  136086. .UNINDENT
  136087. .INDENT 0.0
  136088. .TP
  136089. .B salt.states.win_iis.create_vdir(name, site, sourcepath, app=u\(aq/\(aq)
  136090. Create an IIS virtual directory.
  136091. .INDENT 7.0
  136092. .TP
  136093. .B Parameters
  136094. .INDENT 7.0
  136095. .IP \(bu 2
  136096. \fBname\fP (\fI\%str\fP) \-\- The virtual directory name.
  136097. .IP \(bu 2
  136098. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136099. .IP \(bu 2
  136100. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path.
  136101. .IP \(bu 2
  136102. \fBapp\fP (\fI\%str\fP) \-\- The IIS application.
  136103. .UNINDENT
  136104. .UNINDENT
  136105. .sp
  136106. Example of usage with only the required arguments:
  136107. .INDENT 7.0
  136108. .INDENT 3.5
  136109. .sp
  136110. .nf
  136111. .ft C
  136112. site0\-foo\-vdir:
  136113. win_iis.create_vdir:
  136114. \- name: foo
  136115. \- site: site0
  136116. \- sourcepath: C:\einetpub\evdirs\efoo
  136117. .ft P
  136118. .fi
  136119. .UNINDENT
  136120. .UNINDENT
  136121. .sp
  136122. Example of usage specifying all available arguments:
  136123. .INDENT 7.0
  136124. .INDENT 3.5
  136125. .sp
  136126. .nf
  136127. .ft C
  136128. site0\-foo\-vdir:
  136129. win_iis.create_vdir:
  136130. \- name: foo
  136131. \- site: site0
  136132. \- sourcepath: C:\einetpub\evdirs\efoo
  136133. \- app: v1
  136134. .ft P
  136135. .fi
  136136. .UNINDENT
  136137. .UNINDENT
  136138. .UNINDENT
  136139. .INDENT 0.0
  136140. .TP
  136141. .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)
  136142. Ensure the website has been deployed.
  136143. .INDENT 7.0
  136144. .TP
  136145. .B Parameters
  136146. .INDENT 7.0
  136147. .IP \(bu 2
  136148. \fBname\fP (\fI\%str\fP) \-\- The IIS site name.
  136149. .IP \(bu 2
  136150. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path of the IIS site.
  136151. .IP \(bu 2
  136152. \fBapppool\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  136153. .IP \(bu 2
  136154. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136155. .IP \(bu 2
  136156. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136157. .IP \(bu 2
  136158. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136159. .IP \(bu 2
  136160. \fBprotocol\fP (\fI\%str\fP) \-\- The application protocol of the binding.
  136161. .UNINDENT
  136162. .UNINDENT
  136163. .sp
  136164. Example of usage with only the required arguments. This will default to using the default application pool
  136165. assigned by IIS:
  136166. .INDENT 7.0
  136167. .INDENT 3.5
  136168. .sp
  136169. .nf
  136170. .ft C
  136171. site0\-deployed:
  136172. win_iis.deployed:
  136173. \- name: site0
  136174. \- sourcepath: C:\einetpub\esite0
  136175. .ft P
  136176. .fi
  136177. .UNINDENT
  136178. .UNINDENT
  136179. .sp
  136180. Example of usage specifying all available arguments:
  136181. .INDENT 7.0
  136182. .INDENT 3.5
  136183. .sp
  136184. .nf
  136185. .ft C
  136186. site0\-deployed:
  136187. win_iis.deployed:
  136188. \- name: site0
  136189. \- sourcepath: C:\einetpub\esite0
  136190. \- apppool: site0
  136191. \- hostheader: site0.local
  136192. \- ipaddress: \(aq*\(aq
  136193. \- port: 443
  136194. \- protocol: https
  136195. .ft P
  136196. .fi
  136197. .UNINDENT
  136198. .UNINDENT
  136199. .UNINDENT
  136200. .INDENT 0.0
  136201. .TP
  136202. .B salt.states.win_iis.remove_app(name, site)
  136203. Remove an IIS application.
  136204. .INDENT 7.0
  136205. .TP
  136206. .B Parameters
  136207. .INDENT 7.0
  136208. .IP \(bu 2
  136209. \fBname\fP (\fI\%str\fP) \-\- The application name.
  136210. .IP \(bu 2
  136211. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136212. .UNINDENT
  136213. .UNINDENT
  136214. .sp
  136215. Usage:
  136216. .INDENT 7.0
  136217. .INDENT 3.5
  136218. .sp
  136219. .nf
  136220. .ft C
  136221. site0\-v1\-app\-remove:
  136222. win_iis.remove_app:
  136223. \- name: v1
  136224. \- site: site0
  136225. .ft P
  136226. .fi
  136227. .UNINDENT
  136228. .UNINDENT
  136229. .UNINDENT
  136230. .INDENT 0.0
  136231. .TP
  136232. .B salt.states.win_iis.remove_apppool(name)
  136233. Remove an IIS application pool.
  136234. .INDENT 7.0
  136235. .TP
  136236. .B Parameters
  136237. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  136238. .UNINDENT
  136239. .sp
  136240. Usage:
  136241. .INDENT 7.0
  136242. .INDENT 3.5
  136243. .sp
  136244. .nf
  136245. .ft C
  136246. defaultapppool\-remove:
  136247. win_iis.remove_apppool:
  136248. \- name: DefaultAppPool
  136249. .ft P
  136250. .fi
  136251. .UNINDENT
  136252. .UNINDENT
  136253. .UNINDENT
  136254. .INDENT 0.0
  136255. .TP
  136256. .B salt.states.win_iis.remove_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=80)
  136257. Remove an IIS binding.
  136258. .INDENT 7.0
  136259. .TP
  136260. .B Parameters
  136261. .INDENT 7.0
  136262. .IP \(bu 2
  136263. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136264. .IP \(bu 2
  136265. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136266. .IP \(bu 2
  136267. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136268. .IP \(bu 2
  136269. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136270. .UNINDENT
  136271. .UNINDENT
  136272. .sp
  136273. Example of usage with only the required arguments:
  136274. .INDENT 7.0
  136275. .INDENT 3.5
  136276. .sp
  136277. .nf
  136278. .ft C
  136279. site0\-https\-binding\-remove:
  136280. win_iis.remove_binding:
  136281. \- site: site0
  136282. .ft P
  136283. .fi
  136284. .UNINDENT
  136285. .UNINDENT
  136286. .sp
  136287. Example of usage specifying all available arguments:
  136288. .INDENT 7.0
  136289. .INDENT 3.5
  136290. .sp
  136291. .nf
  136292. .ft C
  136293. site0\-https\-binding\-remove:
  136294. win_iis.remove_binding:
  136295. \- site: site0
  136296. \- hostheader: site0.local
  136297. \- ipaddress: \(aq*\(aq
  136298. \- port: 443
  136299. .ft P
  136300. .fi
  136301. .UNINDENT
  136302. .UNINDENT
  136303. .UNINDENT
  136304. .INDENT 0.0
  136305. .TP
  136306. .B salt.states.win_iis.remove_cert_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=443)
  136307. Remove a certificate from an IIS binding.
  136308. .INDENT 7.0
  136309. .TP
  136310. .B Parameters
  136311. .INDENT 7.0
  136312. .IP \(bu 2
  136313. \fBname\fP (\fI\%str\fP) \-\- The thumbprint of the certificate.
  136314. .IP \(bu 2
  136315. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136316. .IP \(bu 2
  136317. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136318. .IP \(bu 2
  136319. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136320. .IP \(bu 2
  136321. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136322. .UNINDENT
  136323. .UNINDENT
  136324. .sp
  136325. Example of usage with only the required arguments:
  136326. .INDENT 7.0
  136327. .INDENT 3.5
  136328. .sp
  136329. .nf
  136330. .ft C
  136331. site0\-cert\-binding\-remove:
  136332. win_iis.remove_cert_binding:
  136333. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136334. \- site: site0
  136335. .ft P
  136336. .fi
  136337. .UNINDENT
  136338. .UNINDENT
  136339. .sp
  136340. Example of usage specifying all available arguments:
  136341. .INDENT 7.0
  136342. .INDENT 3.5
  136343. .sp
  136344. .nf
  136345. .ft C
  136346. site0\-cert\-binding\-remove:
  136347. win_iis.remove_cert_binding:
  136348. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136349. \- site: site0
  136350. \- hostheader: site0.local
  136351. \- ipaddress: 192.168.1.199
  136352. \- port: 443
  136353. .ft P
  136354. .fi
  136355. .UNINDENT
  136356. .UNINDENT
  136357. .sp
  136358. New in version 2016.11.0.
  136359. .UNINDENT
  136360. .INDENT 0.0
  136361. .TP
  136362. .B salt.states.win_iis.remove_site(name)
  136363. Delete a website from IIS.
  136364. .INDENT 7.0
  136365. .TP
  136366. .B Parameters
  136367. \fBname\fP (\fI\%str\fP) \-\- The IIS site name.
  136368. .UNINDENT
  136369. .sp
  136370. Usage:
  136371. .INDENT 7.0
  136372. .INDENT 3.5
  136373. .sp
  136374. .nf
  136375. .ft C
  136376. defaultwebsite\-remove:
  136377. win_iis.remove_site:
  136378. \- name: Default Web Site
  136379. .ft P
  136380. .fi
  136381. .UNINDENT
  136382. .UNINDENT
  136383. .UNINDENT
  136384. .INDENT 0.0
  136385. .TP
  136386. .B salt.states.win_iis.remove_vdir(name, site, app=u\(aq/\(aq)
  136387. Remove an IIS virtual directory.
  136388. .INDENT 7.0
  136389. .TP
  136390. .B Parameters
  136391. .INDENT 7.0
  136392. .IP \(bu 2
  136393. \fBname\fP (\fI\%str\fP) \-\- The virtual directory name.
  136394. .IP \(bu 2
  136395. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136396. .IP \(bu 2
  136397. \fBapp\fP (\fI\%str\fP) \-\- The IIS application.
  136398. .UNINDENT
  136399. .UNINDENT
  136400. .sp
  136401. Example of usage with only the required arguments:
  136402. .INDENT 7.0
  136403. .INDENT 3.5
  136404. .sp
  136405. .nf
  136406. .ft C
  136407. site0\-foo\-vdir\-remove:
  136408. win_iis.remove_vdir:
  136409. \- name: foo
  136410. \- site: site0
  136411. .ft P
  136412. .fi
  136413. .UNINDENT
  136414. .UNINDENT
  136415. .sp
  136416. Example of usage specifying all available arguments:
  136417. .INDENT 7.0
  136418. .INDENT 3.5
  136419. .sp
  136420. .nf
  136421. .ft C
  136422. site0\-foo\-vdir\-remove:
  136423. win_iis.remove_vdir:
  136424. \- name: foo
  136425. \- site: site0
  136426. \- app: v1
  136427. .ft P
  136428. .fi
  136429. .UNINDENT
  136430. .UNINDENT
  136431. .UNINDENT
  136432. .INDENT 0.0
  136433. .TP
  136434. .B salt.states.win_iis.set_app(name, site, settings=None)
  136435. New in version 2017.7.0.
  136436. .sp
  136437. Set the value of the setting for an IIS web application.
  136438. .sp
  136439. \fBNOTE:\fP
  136440. .INDENT 7.0
  136441. .INDENT 3.5
  136442. This function only configures existing app. Params are case sensitive.
  136443. .UNINDENT
  136444. .UNINDENT
  136445. .INDENT 7.0
  136446. .TP
  136447. .B Parameters
  136448. .INDENT 7.0
  136449. .IP \(bu 2
  136450. \fBname\fP (\fI\%str\fP) \-\- The IIS application.
  136451. .IP \(bu 2
  136452. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136453. .IP \(bu 2
  136454. \fBsettings\fP (\fI\%str\fP) \-\- A dictionary of the setting names and their values.
  136455. .UNINDENT
  136456. .UNINDENT
  136457. .sp
  136458. Available settings:
  136459. .INDENT 7.0
  136460. .IP \(bu 2
  136461. \fBphysicalPath\fP \- The physical path of the webapp
  136462. .IP \(bu 2
  136463. \fBapplicationPool\fP \- The application pool for the webapp
  136464. .IP \(bu 2
  136465. \fBuserName\fP "connectAs" user
  136466. .IP \(bu 2
  136467. \fBpassword\fP "connectAs" password for user
  136468. .UNINDENT
  136469. .INDENT 7.0
  136470. .TP
  136471. .B Return type
  136472. \fI\%bool\fP
  136473. .UNINDENT
  136474. .sp
  136475. Example of usage:
  136476. .INDENT 7.0
  136477. .INDENT 3.5
  136478. .sp
  136479. .nf
  136480. .ft C
  136481. site0\-webapp\-setting:
  136482. win_iis.set_app:
  136483. \- name: app0
  136484. \- site: Default Web Site
  136485. \- settings:
  136486. userName: domain\e\euser
  136487. password: pass
  136488. physicalPath: c:\einetpub\ewwwroot
  136489. applicationPool: appPool0
  136490. .ft P
  136491. .fi
  136492. .UNINDENT
  136493. .UNINDENT
  136494. .UNINDENT
  136495. .INDENT 0.0
  136496. .TP
  136497. .B salt.states.win_iis.webconfiguration_settings(name, settings=None)
  136498. Set the value of webconfiguration settings.
  136499. .INDENT 7.0
  136500. .TP
  136501. .B Parameters
  136502. .INDENT 7.0
  136503. .IP \(bu 2
  136504. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS PSPath containing the settings.
  136505. Possible PSPaths are :
  136506. MACHINE, MACHINE/WEBROOT, IIS:, IIS:Sitessitename, ...
  136507. .IP \(bu 2
  136508. \fBsettings\fP (\fI\%dict\fP) \-\- Dictionaries of dictionaries.
  136509. You can match a specific item in a collection with this syntax inside a key:
  136510. \(aqCollection[{name: site0}].logFile.directory\(aq
  136511. .UNINDENT
  136512. .UNINDENT
  136513. .sp
  136514. Example of usage for the \fBMACHINE/WEBROOT\fP PSPath:
  136515. .INDENT 7.0
  136516. .INDENT 3.5
  136517. .sp
  136518. .nf
  136519. .ft C
  136520. MACHINE\-WEBROOT\-level\-security:
  136521. win_iis.webconfiguration_settings:
  136522. \- name: \(aqMACHINE/WEBROOT\(aq
  136523. \- settings:
  136524. system.web/authentication/forms:
  136525. requireSSL: True
  136526. protection: "All"
  136527. credentials.passwordFormat: "SHA1"
  136528. system.web/httpCookies:
  136529. httpOnlyCookies: True
  136530. .ft P
  136531. .fi
  136532. .UNINDENT
  136533. .UNINDENT
  136534. .sp
  136535. Example of usage for the \fBIIS:\eSites\esite0\fP PSPath:
  136536. .INDENT 7.0
  136537. .INDENT 3.5
  136538. .sp
  136539. .nf
  136540. .ft C
  136541. site0\-IIS\-Sites\-level\-security:
  136542. win_iis.webconfiguration_settings:
  136543. \- name: \(aqIIS:\eSites\esite0\(aq
  136544. \- settings:
  136545. system.webServer/httpErrors:
  136546. errorMode: "DetailedLocalOnly"
  136547. system.webServer/security/requestFiltering:
  136548. allowDoubleEscaping: False
  136549. verbs.Collection:
  136550. \- verb: TRACE
  136551. allowed: False
  136552. fileExtensions.allowUnlisted: False
  136553. .ft P
  136554. .fi
  136555. .UNINDENT
  136556. .UNINDENT
  136557. .sp
  136558. Example of usage for the \fBIIS:\e\fP PSPath with a collection matching:
  136559. .INDENT 7.0
  136560. .INDENT 3.5
  136561. .sp
  136562. .nf
  136563. .ft C
  136564. site0\-IIS\-level\-security:
  136565. win_iis.webconfiguration_settings:
  136566. \- name: \(aqIIS:\e\(aq
  136567. \- settings:
  136568. system.applicationHost/sites:
  136569. \(aqCollection[{name: site0}].logFile.directory\(aq: \(aqC:\elogs\eiis\esite0\(aq
  136570. .ft P
  136571. .fi
  136572. .UNINDENT
  136573. .UNINDENT
  136574. .UNINDENT
  136575. .SS salt.states.win_pki module
  136576. .sp
  136577. Microsoft certificate management via the Pki PowerShell module.
  136578. .INDENT 0.0
  136579. .TP
  136580. .B platform
  136581. Windows
  136582. .UNINDENT
  136583. .sp
  136584. New in version 2016.11.0.
  136585. .INDENT 0.0
  136586. .TP
  136587. .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)
  136588. Import the certificate file into the given certificate store.
  136589. .INDENT 7.0
  136590. .TP
  136591. .B Parameters
  136592. .INDENT 7.0
  136593. .IP \(bu 2
  136594. \fBname\fP (\fI\%str\fP) \-\- The path of the certificate file to import.
  136595. .IP \(bu 2
  136596. \fBcert_format\fP (\fI\%str\fP) \-\- The certificate format. Specify \(aqcer\(aq for X.509, or \(aqpfx\(aq for PKCS #12.
  136597. .IP \(bu 2
  136598. \fBcontext\fP (\fI\%str\fP) \-\- The name of the certificate store location context.
  136599. .IP \(bu 2
  136600. \fBstore\fP (\fI\%str\fP) \-\- The name of the certificate store.
  136601. .IP \(bu 2
  136602. \fBexportable\fP (\fI\%bool\fP) \-\- Mark the certificate as exportable. Only applicable to pfx format.
  136603. .IP \(bu 2
  136604. \fBpassword\fP (\fI\%str\fP) \-\- The password of the certificate. Only applicable to pfx format.
  136605. .IP \(bu 2
  136606. \fBsaltenv\fP (\fI\%str\fP) \-\- The environment the file resides in.
  136607. .UNINDENT
  136608. .UNINDENT
  136609. .sp
  136610. Example of usage with only the required arguments:
  136611. .INDENT 7.0
  136612. .INDENT 3.5
  136613. .sp
  136614. .nf
  136615. .ft C
  136616. site0\-cert\-imported:
  136617. win_pki.import_cert:
  136618. \- name: salt://win/webserver/certs/site0.cer
  136619. .ft P
  136620. .fi
  136621. .UNINDENT
  136622. .UNINDENT
  136623. .sp
  136624. Example of usage specifying all available arguments:
  136625. .INDENT 7.0
  136626. .INDENT 3.5
  136627. .sp
  136628. .nf
  136629. .ft C
  136630. site0\-cert\-imported:
  136631. win_pki.import_cert:
  136632. \- name: salt://win/webserver/certs/site0.pfx
  136633. \- cert_format: pfx
  136634. \- context: LocalMachine
  136635. \- store: My
  136636. \- exportable: True
  136637. \- password: TestPassword
  136638. \- saltenv: base
  136639. .ft P
  136640. .fi
  136641. .UNINDENT
  136642. .UNINDENT
  136643. .UNINDENT
  136644. .INDENT 0.0
  136645. .TP
  136646. .B salt.states.win_pki.remove_cert(name, thumbprint, context=u\(aqLocalMachine\(aq, store=u\(aqMy\(aq)
  136647. Remove the certificate from the given certificate store.
  136648. .INDENT 7.0
  136649. .TP
  136650. .B Parameters
  136651. .INDENT 7.0
  136652. .IP \(bu 2
  136653. \fBthumbprint\fP (\fI\%str\fP) \-\- The thumbprint value of the target certificate.
  136654. .IP \(bu 2
  136655. \fBcontext\fP (\fI\%str\fP) \-\- The name of the certificate store location context.
  136656. .IP \(bu 2
  136657. \fBstore\fP (\fI\%str\fP) \-\- The name of the certificate store.
  136658. .UNINDENT
  136659. .UNINDENT
  136660. .sp
  136661. Example of usage with only the required arguments:
  136662. .INDENT 7.0
  136663. .INDENT 3.5
  136664. .sp
  136665. .nf
  136666. .ft C
  136667. site0\-cert\-removed:
  136668. win_pki.remove_cert:
  136669. \- thumbprint: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136670. .ft P
  136671. .fi
  136672. .UNINDENT
  136673. .UNINDENT
  136674. .sp
  136675. Example of usage specifying all available arguments:
  136676. .INDENT 7.0
  136677. .INDENT 3.5
  136678. .sp
  136679. .nf
  136680. .ft C
  136681. site0\-cert\-removed:
  136682. win_pki.remove_cert:
  136683. \- thumbprint: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136684. \- context: LocalMachine
  136685. \- store: My
  136686. .ft P
  136687. .fi
  136688. .UNINDENT
  136689. .UNINDENT
  136690. .UNINDENT
  136691. .SS salt.states.win_snmp module
  136692. .sp
  136693. Module for managing SNMP service settings on Windows servers.
  136694. .INDENT 0.0
  136695. .TP
  136696. .B salt.states.win_snmp.agent_settings(name, contact, location, services=None)
  136697. Manage the SNMP sysContact, sysLocation, and sysServices settings.
  136698. .INDENT 7.0
  136699. .TP
  136700. .B Parameters
  136701. .INDENT 7.0
  136702. .IP \(bu 2
  136703. \fBcontact\fP (\fI\%str\fP) \-\- The SNMP contact.
  136704. .IP \(bu 2
  136705. \fBlocation\fP (\fI\%str\fP) \-\- The SNMP location.
  136706. .IP \(bu 2
  136707. \fBservices\fP (\fI\%str\fP) \-\- A list of selected services.
  136708. .UNINDENT
  136709. .UNINDENT
  136710. .sp
  136711. Example of usage:
  136712. .INDENT 7.0
  136713. .INDENT 3.5
  136714. .sp
  136715. .nf
  136716. .ft C
  136717. snmp\-agent\-settings:
  136718. win_snmp.agent_settings:
  136719. \- contact: Test Contact
  136720. \- location: Test Location
  136721. \- services:
  136722. \- Physical
  136723. \- Internet
  136724. .ft P
  136725. .fi
  136726. .UNINDENT
  136727. .UNINDENT
  136728. .UNINDENT
  136729. .INDENT 0.0
  136730. .TP
  136731. .B salt.states.win_snmp.auth_traps_enabled(name, status=True)
  136732. Manage the sending of authentication traps.
  136733. .INDENT 7.0
  136734. .TP
  136735. .B Parameters
  136736. \fBstatus\fP (\fI\%bool\fP) \-\- The enabled status.
  136737. .UNINDENT
  136738. .sp
  136739. Example of usage:
  136740. .INDENT 7.0
  136741. .INDENT 3.5
  136742. .sp
  136743. .nf
  136744. .ft C
  136745. snmp\-auth\-traps:
  136746. win_snmp.auth_traps_enabled:
  136747. \- status: True
  136748. .ft P
  136749. .fi
  136750. .UNINDENT
  136751. .UNINDENT
  136752. .UNINDENT
  136753. .INDENT 0.0
  136754. .TP
  136755. .B salt.states.win_snmp.community_names(name, communities=None)
  136756. Manage the SNMP accepted community names and their permissions.
  136757. .INDENT 7.0
  136758. .TP
  136759. .B Parameters
  136760. \fBcommunities\fP (\fI\%str\fP) \-\- A dictionary of SNMP communities and permissions.
  136761. .UNINDENT
  136762. .sp
  136763. Example of usage:
  136764. .INDENT 7.0
  136765. .INDENT 3.5
  136766. .sp
  136767. .nf
  136768. .ft C
  136769. snmp\-community\-names:
  136770. win_snmp.community_names:
  136771. \- communities:
  136772. TestCommunity: Read Only
  136773. OtherCommunity: Read Write
  136774. .ft P
  136775. .fi
  136776. .UNINDENT
  136777. .UNINDENT
  136778. .UNINDENT
  136779. .SS salt.states.wordpress module
  136780. .sp
  136781. This state module is used to manage Wordpress installations
  136782. .INDENT 0.0
  136783. .TP
  136784. .B depends
  136785. wp binary from \fI\%http://wp\-cli.org/\fP
  136786. .UNINDENT
  136787. .INDENT 0.0
  136788. .TP
  136789. .B salt.states.wordpress.activated(name, path, user)
  136790. Activate wordpress plugins
  136791. .INDENT 7.0
  136792. .TP
  136793. .B name
  136794. name of plugin to activate
  136795. .TP
  136796. .B path
  136797. path to wordpress installation
  136798. .TP
  136799. .B user
  136800. user who should own the files in the wordpress installation
  136801. .UNINDENT
  136802. .INDENT 7.0
  136803. .INDENT 3.5
  136804. .sp
  136805. .nf
  136806. .ft C
  136807. HyperDB:
  136808. wordpress.activated:
  136809. \- path: /var/www/html
  136810. \- user: apache
  136811. .ft P
  136812. .fi
  136813. .UNINDENT
  136814. .UNINDENT
  136815. .UNINDENT
  136816. .INDENT 0.0
  136817. .TP
  136818. .B salt.states.wordpress.deactivated(name, path, user)
  136819. Deactivate wordpress plugins
  136820. .INDENT 7.0
  136821. .TP
  136822. .B name
  136823. name of plugin to deactivate
  136824. .TP
  136825. .B path
  136826. path to wordpress installation
  136827. .TP
  136828. .B user
  136829. user who should own the files in the wordpress installation
  136830. .UNINDENT
  136831. .INDENT 7.0
  136832. .INDENT 3.5
  136833. .sp
  136834. .nf
  136835. .ft C
  136836. HyperDB:
  136837. wordpress.deactivated:
  136838. \- path: /var/www/html
  136839. \- user: apache
  136840. .ft P
  136841. .fi
  136842. .UNINDENT
  136843. .UNINDENT
  136844. .UNINDENT
  136845. .INDENT 0.0
  136846. .TP
  136847. .B salt.states.wordpress.installed(name, user, admin_user, admin_password, admin_email, title, url)
  136848. Run the initial setup of wordpress
  136849. .INDENT 7.0
  136850. .TP
  136851. .B name
  136852. path to the wordpress installation
  136853. .TP
  136854. .B user
  136855. user that owns the files for the wordpress installation
  136856. .TP
  136857. .B admin_user
  136858. username for wordpress website administrator user
  136859. .TP
  136860. .B admin_password
  136861. password for wordpress website administrator user
  136862. .TP
  136863. .B admin_email
  136864. email for wordpress website administrator user
  136865. .TP
  136866. .B title
  136867. title for the wordpress website
  136868. .TP
  136869. .B url
  136870. url for the wordpress website
  136871. .UNINDENT
  136872. .INDENT 7.0
  136873. .INDENT 3.5
  136874. .sp
  136875. .nf
  136876. .ft C
  136877. /var/www/html:
  136878. wordpress.installed:
  136879. \- title: Daniel\(aqs Awesome Blog
  136880. \- user: apache
  136881. \- admin_user: dwallace
  136882. \- admin_email: dwallace@example.com
  136883. \- admin_password: password123
  136884. \- url: https://blog.dwallace.com
  136885. .ft P
  136886. .fi
  136887. .UNINDENT
  136888. .UNINDENT
  136889. .UNINDENT
  136890. .SS salt.states.x509
  136891. .sp
  136892. Manage X509 Certificates
  136893. .sp
  136894. New in version 2015.8.0.
  136895. .INDENT 0.0
  136896. .TP
  136897. .B depends
  136898. M2Crypto
  136899. .UNINDENT
  136900. .sp
  136901. This module can enable managing a complete PKI infrastructure including creating private keys, CAs,
  136902. certificates and CRLs. It includes the ability to generate a private key on a server, and have the
  136903. corresponding public key sent to a remote CA to create a CA signed certificate. This can be done in
  136904. a secure manner, where private keys are always generated locally and never moved across the network.
  136905. .sp
  136906. Here is a simple example scenario. In this example \fBca\fP is the ca server,
  136907. and \fBwww\fP is a web server that needs a certificate signed by \fBca\fP\&.
  136908. .sp
  136909. For remote signing, peers must be permitted to remotely call the
  136910. \fBsign_remote_certificate\fP function.
  136911. .sp
  136912. /etc/salt/master.d/peer.conf
  136913. .INDENT 0.0
  136914. .INDENT 3.5
  136915. .sp
  136916. .nf
  136917. .ft C
  136918. peer:
  136919. .*:
  136920. \- sign_remote_certificate
  136921. .ft P
  136922. .fi
  136923. .UNINDENT
  136924. .UNINDENT
  136925. .sp
  136926. /srv/salt/top.sls
  136927. .INDENT 0.0
  136928. .INDENT 3.5
  136929. .sp
  136930. .nf
  136931. .ft C
  136932. base:
  136933. \(aq*\(aq:
  136934. \- cert
  136935. \(aqca\(aq:
  136936. \- ca
  136937. \(aqwww\(aq:
  136938. \- www
  136939. .ft P
  136940. .fi
  136941. .UNINDENT
  136942. .UNINDENT
  136943. .sp
  136944. This state creates the CA key, certificate and signing policy. It also publishes the certificate to
  136945. the mine where it can be easily retrieved by other minions.
  136946. .sp
  136947. /srv/salt/ca.sls
  136948. .INDENT 0.0
  136949. .INDENT 3.5
  136950. .sp
  136951. .nf
  136952. .ft C
  136953. salt\-minion:
  136954. service.running:
  136955. \- enable: True
  136956. \- watch:
  136957. \- file: /etc/salt/minion.d/x509.conf
  136958. /etc/salt/minion.d/x509.conf:
  136959. file.managed:
  136960. \- source: salt://x509.conf
  136961. /etc/pki:
  136962. file.directory
  136963. /etc/pki/issued_certs:
  136964. file.directory
  136965. /etc/pki/ca.crt:
  136966. x509.private_key_managed:
  136967. \- name: /etc/pki/ca.key
  136968. \- bits: 4096
  136969. \- backup: True
  136970. /etc/pki/ca.crt:
  136971. x509.certificate_managed:
  136972. \- signing_private_key: /etc/pki/ca.key
  136973. \- CN: ca.example.com
  136974. \- C: US
  136975. \- ST: Utah
  136976. \- L: Salt Lake City
  136977. \- basicConstraints: "critical CA:true"
  136978. \- keyUsage: "critical cRLSign, keyCertSign"
  136979. \- subjectKeyIdentifier: hash
  136980. \- authorityKeyIdentifier: keyid,issuer:always
  136981. \- days_valid: 3650
  136982. \- days_remaining: 0
  136983. \- backup: True
  136984. \- require:
  136985. \- file: /etc/pki
  136986. .ft P
  136987. .fi
  136988. .UNINDENT
  136989. .UNINDENT
  136990. .sp
  136991. The signing policy defines properties that override any property requested or included in a CRL. It also
  136992. can define a restricted list of minions which are allowed to remotely invoke this signing policy.
  136993. .sp
  136994. /srv/salt/x509.conf
  136995. .INDENT 0.0
  136996. .INDENT 3.5
  136997. .sp
  136998. .nf
  136999. .ft C
  137000. mine_functions:
  137001. x509.get_pem_entries: [/etc/pki/ca.crt]
  137002. x509_signing_policies:
  137003. www:
  137004. \- minions: \(aqwww\(aq
  137005. \- signing_private_key: /etc/pki/ca.key
  137006. \- signing_cert: /etc/pki/ca.crt
  137007. \- C: US
  137008. \- ST: Utah
  137009. \- L: Salt Lake City
  137010. \- basicConstraints: "critical CA:false"
  137011. \- keyUsage: "critical keyEncipherment"
  137012. \- subjectKeyIdentifier: hash
  137013. \- authorityKeyIdentifier: keyid,issuer:always
  137014. \- days_valid: 90
  137015. \- copypath: /etc/pki/issued_certs/
  137016. .ft P
  137017. .fi
  137018. .UNINDENT
  137019. .UNINDENT
  137020. .sp
  137021. This state will instruct all minions to trust certificates signed by our new CA.
  137022. Using Jinja to strip newlines from the text avoids dealing with newlines in the rendered YAML,
  137023. and the \fBsign_remote_certificate\fP state will
  137024. handle properly formatting the text before writing the output.
  137025. .sp
  137026. /srv/salt/cert.sls
  137027. .INDENT 0.0
  137028. .INDENT 3.5
  137029. .sp
  137030. .nf
  137031. .ft C
  137032. /usr/local/share/ca\-certificates:
  137033. file.directory
  137034. /usr/local/share/ca\-certificates/intca.crt:
  137035. x509.pem_managed:
  137036. \- 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) }}
  137037. .ft P
  137038. .fi
  137039. .UNINDENT
  137040. .UNINDENT
  137041. .sp
  137042. This state creates a private key then requests a certificate signed by ca according to the www policy.
  137043. .sp
  137044. /srv/salt/www.sls
  137045. .INDENT 0.0
  137046. .INDENT 3.5
  137047. .sp
  137048. .nf
  137049. .ft C
  137050. /etc/pki/www.crt:
  137051. x509.private_key_managed:
  137052. \- name: /etc/pki/www.key
  137053. \- bits: 4096
  137054. \- backup: True
  137055. /etc/pki/www.crt:
  137056. x509.certificate_managed:
  137057. \- ca_server: ca
  137058. \- signing_policy: www
  137059. \- public_key: /etc/pki/www.key
  137060. \- CN: www.example.com
  137061. \- days_remaining: 30
  137062. \- backup: True
  137063. .ft P
  137064. .fi
  137065. .UNINDENT
  137066. .UNINDENT
  137067. .sp
  137068. This other state creates a private key then requests a certificate signed by ca
  137069. according to the www policy but adds a strict date range for the certificate to
  137070. be considered valid.
  137071. .sp
  137072. /srv/salt/www\-time\-limited.sls
  137073. .INDENT 0.0
  137074. .INDENT 3.5
  137075. .sp
  137076. .nf
  137077. .ft C
  137078. /etc/pki/www\-time\-limited.crt:
  137079. x509.certificate_managed:
  137080. \- ca_server: ca
  137081. \- signing_policy: www
  137082. \- public_key: /etc/pki/www\-time\-limited.key
  137083. \- CN: www.example.com
  137084. \- not_before: 2019\-05\-05 00:00:00
  137085. \- not_after: 2020\-05\-05 14:30:00
  137086. \- backup: True
  137087. .ft P
  137088. .fi
  137089. .UNINDENT
  137090. .UNINDENT
  137091. .INDENT 0.0
  137092. .TP
  137093. .B salt.states.x509.certificate_managed(name, days_remaining=90, append_certs=None, managed_private_key=None, **kwargs)
  137094. Manage a Certificate
  137095. .INDENT 7.0
  137096. .TP
  137097. .B name
  137098. Path to the certificate
  137099. .TP
  137100. .B days_remaining
  137101. 90
  137102. Recreate the certificate if the number of days remaining on it
  137103. are less than this number. The value should be less than
  137104. \fBdays_valid\fP, otherwise the certificate will be recreated
  137105. every time the state is run. A value of 0 disables automatic
  137106. renewal.
  137107. .TP
  137108. .B append_certs:
  137109. A list of certificates to be appended to the managed file.
  137110. They must be valid PEM files, otherwise an error will be thrown.
  137111. .TP
  137112. .B managed_private_key:
  137113. Has no effect since v2016.11 and will be removed in Salt Aluminium.
  137114. Use a separate x509.private_key_managed call instead.
  137115. .TP
  137116. .B kwargs:
  137117. Any arguments supported by \fBx509.create_certificate\fP or \fBfile.managed\fP are supported.
  137118. .TP
  137119. .B not_before:
  137120. Initial validity date for the certificate. This date must be specified
  137121. in the format \(aq%Y\-%m\-%d %H:%M:%S\(aq.
  137122. .sp
  137123. New in version 3001.
  137124. .TP
  137125. .B not_after:
  137126. Final validity date for the certificate. This date must be specified in
  137127. the format \(aq%Y\-%m\-%d %H:%M:%S\(aq.
  137128. .sp
  137129. New in version 3001.
  137130. .UNINDENT
  137131. .sp
  137132. Examples:
  137133. .INDENT 7.0
  137134. .INDENT 3.5
  137135. .sp
  137136. .nf
  137137. .ft C
  137138. /etc/pki/ca.crt:
  137139. x509.certificate_managed:
  137140. \- signing_private_key: /etc/pki/ca.key
  137141. \- CN: ca.example.com
  137142. \- C: US
  137143. \- ST: Utah
  137144. \- L: Salt Lake City
  137145. \- basicConstraints: "critical CA:true"
  137146. \- keyUsage: "critical cRLSign, keyCertSign"
  137147. \- subjectKeyIdentifier: hash
  137148. \- authorityKeyIdentifier: keyid,issuer:always
  137149. \- days_valid: 3650
  137150. \- days_remaining: 0
  137151. \- backup: True
  137152. .ft P
  137153. .fi
  137154. .UNINDENT
  137155. .UNINDENT
  137156. .INDENT 7.0
  137157. .INDENT 3.5
  137158. .sp
  137159. .nf
  137160. .ft C
  137161. /etc/ssl/www.crt:
  137162. x509.certificate_managed:
  137163. \- ca_server: pki
  137164. \- signing_policy: www
  137165. \- public_key: /etc/ssl/www.key
  137166. \- CN: www.example.com
  137167. \- days_valid: 90
  137168. \- days_remaining: 30
  137169. \- backup: True
  137170. .ft P
  137171. .fi
  137172. .UNINDENT
  137173. .UNINDENT
  137174. .UNINDENT
  137175. .INDENT 0.0
  137176. .TP
  137177. .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)
  137178. Manage a Certificate Revocation List
  137179. .INDENT 7.0
  137180. .TP
  137181. .B name
  137182. Path to the certificate
  137183. .TP
  137184. .B signing_private_key
  137185. The private key that will be used to sign the CRL. This is
  137186. usually your CA\(aqs private key.
  137187. .TP
  137188. .B signing_private_key_passphrase
  137189. Passphrase to decrypt the private key.
  137190. .TP
  137191. .B signing_cert
  137192. The certificate of the authority that will be used to sign the CRL.
  137193. This is usually your CA\(aqs certificate.
  137194. .TP
  137195. .B revoked
  137196. A list of certificates to revoke. Must include either a serial number or a
  137197. the certificate itself. Can optionally include the revocation date and
  137198. notAfter date from the certificate. See example below for details.
  137199. .TP
  137200. .B days_valid
  137201. 100
  137202. The number of days the certificate should be valid for.
  137203. .TP
  137204. .B digest
  137205. The digest to use for signing the CRL. This has no effect on versions
  137206. of pyOpenSSL less than 0.14.
  137207. .TP
  137208. .B days_remaining
  137209. 30
  137210. The CRL should be automatically recreated if there are less than
  137211. \fBdays_remaining\fP days until the CRL expires. Set to 0 to disable
  137212. automatic renewal.
  137213. .TP
  137214. .B include_expired
  137215. False
  137216. If \fBTrue\fP, include expired certificates in the CRL.
  137217. .TP
  137218. .B kwargs
  137219. Any arguments supported by \fBfile.managed\fP are supported.
  137220. .UNINDENT
  137221. .sp
  137222. Example:
  137223. .INDENT 7.0
  137224. .INDENT 3.5
  137225. .sp
  137226. .nf
  137227. .ft C
  137228. /etc/pki/ca.crl:
  137229. x509.crl_managed:
  137230. \- signing_private_key: /etc/pki/myca.key
  137231. \- signing_cert: /etc/pki/myca.crt
  137232. \- revoked:
  137233. \- compromized_Web_key:
  137234. \- certificate: /etc/pki/certs/badweb.crt
  137235. \- revocation_date: 2015\-03\-01 00:00:00
  137236. \- reason: keyCompromise
  137237. \- terminated_vpn_user:
  137238. \- serial_number: D6:D2:DC:D8:4D:5C:C0:F4
  137239. \- not_after: 2016\-01\-01 00:00:00
  137240. \- revocation_date: 2015\-02\-25 00:00:00
  137241. \- reason: cessationOfOperation
  137242. .ft P
  137243. .fi
  137244. .UNINDENT
  137245. .UNINDENT
  137246. .UNINDENT
  137247. .INDENT 0.0
  137248. .TP
  137249. .B salt.states.x509.csr_managed(name, **kwargs)
  137250. Manage a Certificate Signing Request
  137251. .INDENT 7.0
  137252. .TP
  137253. .B name:
  137254. Path to the CSR
  137255. .TP
  137256. .B properties:
  137257. The properties to be added to the certificate request, including items like subject, extensions
  137258. and public key. See above for valid properties.
  137259. .TP
  137260. .B kwargs:
  137261. Any arguments supported by \fBfile.managed\fP are supported.
  137262. .UNINDENT
  137263. .sp
  137264. Example:
  137265. .INDENT 7.0
  137266. .INDENT 3.5
  137267. .sp
  137268. .nf
  137269. .ft C
  137270. /etc/pki/mycert.csr:
  137271. x509.csr_managed:
  137272. \- private_key: /etc/pki/mycert.key
  137273. \- CN: www.example.com
  137274. \- C: US
  137275. \- ST: Utah
  137276. \- L: Salt Lake City
  137277. \- keyUsage: \(aqcritical dataEncipherment\(aq
  137278. .ft P
  137279. .fi
  137280. .UNINDENT
  137281. .UNINDENT
  137282. .UNINDENT
  137283. .INDENT 0.0
  137284. .TP
  137285. .B salt.states.x509.pem_managed(name, text, backup=False, **kwargs)
  137286. Manage the contents of a PEM file directly with the content in text, ensuring correct formatting.
  137287. .INDENT 7.0
  137288. .TP
  137289. .B name:
  137290. The path to the file to manage
  137291. .TP
  137292. .B text:
  137293. The PEM formatted text to write.
  137294. .TP
  137295. .B kwargs:
  137296. Any arguments supported by \fBfile.managed\fP are supported.
  137297. .UNINDENT
  137298. .UNINDENT
  137299. .INDENT 0.0
  137300. .TP
  137301. .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)
  137302. Manage a private key\(aqs existence.
  137303. .INDENT 7.0
  137304. .TP
  137305. .B name:
  137306. Path to the private key
  137307. .TP
  137308. .B bits:
  137309. Key length in bits. Default 2048.
  137310. .TP
  137311. .B passphrase:
  137312. Passphrase for encrypting the private key.
  137313. .TP
  137314. .B cipher:
  137315. Cipher for encrypting the private key.
  137316. .TP
  137317. .B new:
  137318. Always create a new key. Defaults to \fBFalse\fP\&.
  137319. Combining new with \fBprereq\fP
  137320. can allow key rotation whenever a new certificate is generated.
  137321. .TP
  137322. .B overwrite:
  137323. Overwrite an existing private key if the provided passphrase cannot decrypt it.
  137324. .TP
  137325. .B verbose:
  137326. Provide visual feedback on stdout, dots while key is generated.
  137327. Default is True.
  137328. .sp
  137329. New in version 2016.11.0.
  137330. .TP
  137331. .B kwargs:
  137332. Any kwargs supported by file.managed are supported.
  137333. .UNINDENT
  137334. .sp
  137335. Example:
  137336. .sp
  137337. The JINJA templating in this example ensures a private key is generated if the file doesn\(aqt exist
  137338. and that a new private key is generated whenever the certificate that uses it is to be renewed.
  137339. .INDENT 7.0
  137340. .INDENT 3.5
  137341. .sp
  137342. .nf
  137343. .ft C
  137344. /etc/pki/www.key:
  137345. x509.private_key_managed:
  137346. \- bits: 4096
  137347. \- new: True
  137348. {% if salt[\(aqfile.file_exists\(aq](\(aq/etc/pki/www.key\(aq) \-%}
  137349. \- prereq:
  137350. \- x509: /etc/pki/www.crt
  137351. {%\- endif %}
  137352. .ft P
  137353. .fi
  137354. .UNINDENT
  137355. .UNINDENT
  137356. .UNINDENT
  137357. .SS salt.states.xml
  137358. .SS XML Manager
  137359. .sp
  137360. State management of XML files
  137361. .INDENT 0.0
  137362. .TP
  137363. .B salt.states.xml.value_present(name, xpath, value, **kwargs)
  137364. New in version 3000.
  137365. .sp
  137366. Manages a given XML file
  137367. .INDENT 7.0
  137368. .TP
  137369. .B name
  137370. string
  137371. The location of the XML file to manage, as an absolute path.
  137372. .TP
  137373. .B xpath
  137374. string
  137375. xpath location to manage
  137376. .TP
  137377. .B value
  137378. string
  137379. value to ensure present
  137380. .UNINDENT
  137381. .INDENT 7.0
  137382. .INDENT 3.5
  137383. .sp
  137384. .nf
  137385. .ft C
  137386. ensure_value_true:
  137387. xml.value_present:
  137388. \- name: /tmp/test.xml
  137389. \- xpath: .//playwright[@id=\(aq1\(aq]
  137390. \- value: William Shakespeare
  137391. .ft P
  137392. .fi
  137393. .UNINDENT
  137394. .UNINDENT
  137395. .UNINDENT
  137396. .SS salt.states.xmpp
  137397. .SS Sending Messages over XMPP
  137398. .sp
  137399. New in version 2014.1.0.
  137400. .sp
  137401. This state is useful for firing messages during state runs, using the XMPP
  137402. protocol
  137403. .INDENT 0.0
  137404. .INDENT 3.5
  137405. .sp
  137406. .nf
  137407. .ft C
  137408. server\-warning\-message:
  137409. xmpp.send_msg:
  137410. \- name: \(aqThis is a server warning message\(aq
  137411. \- profile: my\-xmpp\-account
  137412. \- recipient: admins@xmpp.example.com/salt
  137413. .ft P
  137414. .fi
  137415. .UNINDENT
  137416. .UNINDENT
  137417. .INDENT 0.0
  137418. .TP
  137419. .B salt.states.xmpp.send_msg(name, recipient, profile)
  137420. Send a message to an XMPP user
  137421. .INDENT 7.0
  137422. .INDENT 3.5
  137423. .sp
  137424. .nf
  137425. .ft C
  137426. server\-warning\-message:
  137427. xmpp.send_msg:
  137428. \- name: \(aqThis is a server warning message\(aq
  137429. \- profile: my\-xmpp\-account
  137430. \- recipient: admins@xmpp.example.com/salt
  137431. .ft P
  137432. .fi
  137433. .UNINDENT
  137434. .UNINDENT
  137435. .INDENT 7.0
  137436. .TP
  137437. .B name
  137438. The message to send to the XMPP user
  137439. .UNINDENT
  137440. .UNINDENT
  137441. .INDENT 0.0
  137442. .TP
  137443. .B salt.states.xmpp.send_msg_multi(name, profile, recipients=None, rooms=None)
  137444. Send a message to an list of recipients or rooms
  137445. .INDENT 7.0
  137446. .INDENT 3.5
  137447. .sp
  137448. .nf
  137449. .ft C
  137450. server\-warning\-message:
  137451. xmpp.send_msg:
  137452. \- name: \(aqThis is a server warning message\(aq
  137453. \- profile: my\-xmpp\-account
  137454. \- recipients:
  137455. \- admins@xmpp.example.com/salt
  137456. \- rooms:
  137457. \- qa@conference.xmpp.example.com
  137458. .ft P
  137459. .fi
  137460. .UNINDENT
  137461. .UNINDENT
  137462. .INDENT 7.0
  137463. .TP
  137464. .B name
  137465. The message to send to the XMPP user
  137466. .UNINDENT
  137467. .UNINDENT
  137468. .SS salt.states.zabbix_action
  137469. .sp
  137470. New in version 2017.7.
  137471. .sp
  137472. Management of Zabbix Action object over Zabbix API.
  137473. .INDENT 0.0
  137474. .TP
  137475. .B codeauthor
  137476. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  137477. .UNINDENT
  137478. .INDENT 0.0
  137479. .TP
  137480. .B salt.states.zabbix_action.absent(name, **kwargs)
  137481. Makes the Zabbix Action to be absent (either does not exist or delete it).
  137482. .INDENT 7.0
  137483. .TP
  137484. .B Parameters
  137485. .INDENT 7.0
  137486. .IP \(bu 2
  137487. \fBname\fP \-\- Zabbix Action name
  137488. .IP \(bu 2
  137489. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137490. .IP \(bu 2
  137491. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137492. .IP \(bu 2
  137493. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137494. .UNINDENT
  137495. .UNINDENT
  137496. .INDENT 7.0
  137497. .INDENT 3.5
  137498. .sp
  137499. .nf
  137500. .ft C
  137501. zabbix\-action\-absent:
  137502. zabbix_action.absent:
  137503. \- name: Action name
  137504. .ft P
  137505. .fi
  137506. .UNINDENT
  137507. .UNINDENT
  137508. .UNINDENT
  137509. .INDENT 0.0
  137510. .TP
  137511. .B salt.states.zabbix_action.present(name, params, **kwargs)
  137512. Creates Zabbix Action object or if differs update it according defined parameters
  137513. .INDENT 7.0
  137514. .TP
  137515. .B Parameters
  137516. .INDENT 7.0
  137517. .IP \(bu 2
  137518. \fBname\fP \-\- Zabbix Action name
  137519. .IP \(bu 2
  137520. \fBparams\fP \-\- Definition of the Zabbix Action
  137521. .IP \(bu 2
  137522. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137523. .IP \(bu 2
  137524. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137525. .IP \(bu 2
  137526. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137527. .UNINDENT
  137528. .UNINDENT
  137529. .sp
  137530. 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
  137531. system into), put a dictionary with two keys "query_object" and "query_name" instead of the value.
  137532. In this example we want to get object id of hostgroup named "Virtual machines" and "Databases".
  137533. .INDENT 7.0
  137534. .INDENT 3.5
  137535. .sp
  137536. .nf
  137537. .ft C
  137538. zabbix\-action\-present:
  137539. zabbix_action.present:
  137540. \- name: VMs
  137541. \- params:
  137542. eventsource: 2
  137543. status: 0
  137544. filter:
  137545. evaltype: 2
  137546. conditions:
  137547. \- conditiontype: 24
  137548. operator: 2
  137549. value: \(aqvirtual\(aq
  137550. \- conditiontype: 24
  137551. operator: 2
  137552. value: \(aqkvm\(aq
  137553. operations:
  137554. \- operationtype: 2
  137555. \- operationtype: 4
  137556. opgroup:
  137557. \- groupid:
  137558. query_object: hostgroup
  137559. query_name: Virtual machines
  137560. \- groupid:
  137561. query_object: hostgroup
  137562. query_name: Databases
  137563. .ft P
  137564. .fi
  137565. .UNINDENT
  137566. .UNINDENT
  137567. .UNINDENT
  137568. .SS salt.states.zabbix_hostgroup module
  137569. .sp
  137570. Management of Zabbix host groups.
  137571. .INDENT 0.0
  137572. .TP
  137573. .B codeauthor
  137574. Jiri Kotlin <\fI\%jiri.kotlin@ultimum.io\fP>
  137575. .UNINDENT
  137576. .INDENT 0.0
  137577. .TP
  137578. .B salt.states.zabbix_hostgroup.absent(name, **kwargs)
  137579. Ensures that the host group does not exist, eventually delete host group.
  137580. .sp
  137581. New in version 2016.3.0.
  137582. .INDENT 7.0
  137583. .TP
  137584. .B Parameters
  137585. .INDENT 7.0
  137586. .IP \(bu 2
  137587. \fBname\fP \-\- name of the host group
  137588. .IP \(bu 2
  137589. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137590. .IP \(bu 2
  137591. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137592. .IP \(bu 2
  137593. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137594. .UNINDENT
  137595. .UNINDENT
  137596. .INDENT 7.0
  137597. .INDENT 3.5
  137598. .sp
  137599. .nf
  137600. .ft C
  137601. delete_testing_host_group:
  137602. zabbix_hostgroup.absent:
  137603. \- name: \(aqMy hostgroup name\(aq
  137604. .ft P
  137605. .fi
  137606. .UNINDENT
  137607. .UNINDENT
  137608. .UNINDENT
  137609. .INDENT 0.0
  137610. .TP
  137611. .B salt.states.zabbix_hostgroup.present(name, **kwargs)
  137612. Ensures that the host group exists, eventually creates new host group.
  137613. .sp
  137614. New in version 2016.3.0.
  137615. .INDENT 7.0
  137616. .TP
  137617. .B Parameters
  137618. .INDENT 7.0
  137619. .IP \(bu 2
  137620. \fBname\fP \-\- name of the host group
  137621. .IP \(bu 2
  137622. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137623. .IP \(bu 2
  137624. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137625. .IP \(bu 2
  137626. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137627. .UNINDENT
  137628. .UNINDENT
  137629. .INDENT 7.0
  137630. .INDENT 3.5
  137631. .sp
  137632. .nf
  137633. .ft C
  137634. create_testing_host_group:
  137635. zabbix_hostgroup.present:
  137636. \- name: \(aqMy hostgroup name\(aq
  137637. .ft P
  137638. .fi
  137639. .UNINDENT
  137640. .UNINDENT
  137641. .UNINDENT
  137642. .SS salt.states.zabbix_mediatype module
  137643. .sp
  137644. Management of Zabbix mediatypes.
  137645. .INDENT 0.0
  137646. .TP
  137647. .B codeauthor
  137648. Raymond Kuiper <\fI\%qix@the\-wired.net\fP>
  137649. .UNINDENT
  137650. .INDENT 0.0
  137651. .TP
  137652. .B salt.states.zabbix_mediatype.absent(name, **kwargs)
  137653. Ensures that the mediatype does not exist, eventually deletes the mediatype.
  137654. .INDENT 7.0
  137655. .TP
  137656. .B Parameters
  137657. .INDENT 7.0
  137658. .IP \(bu 2
  137659. \fBname\fP \-\- name of the mediatype
  137660. .IP \(bu 2
  137661. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137662. .IP \(bu 2
  137663. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137664. .IP \(bu 2
  137665. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137666. .UNINDENT
  137667. .UNINDENT
  137668. .INDENT 7.0
  137669. .INDENT 3.5
  137670. .sp
  137671. .nf
  137672. .ft C
  137673. delete_mediatype:
  137674. zabbix_mediatype.absent:
  137675. \- name: \(aqEmail\(aq
  137676. .ft P
  137677. .fi
  137678. .UNINDENT
  137679. .UNINDENT
  137680. .UNINDENT
  137681. .INDENT 0.0
  137682. .TP
  137683. .B salt.states.zabbix_mediatype.present(name, mediatype, **kwargs)
  137684. Creates new mediatype.
  137685. NOTE: This function accepts all standard mediatype properties: keyword argument names differ depending on your
  137686. zabbix version, see:
  137687. \fI\%https://www.zabbix.com/documentation/3.0/manual/api/reference/host/object#host_inventory\fP
  137688. .INDENT 7.0
  137689. .TP
  137690. .B Parameters
  137691. .INDENT 7.0
  137692. .IP \(bu 2
  137693. \fBname\fP \-\- name of the mediatype
  137694. .IP \(bu 2
  137695. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137696. .IP \(bu 2
  137697. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137698. .IP \(bu 2
  137699. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137700. .UNINDENT
  137701. .UNINDENT
  137702. .INDENT 7.0
  137703. .INDENT 3.5
  137704. .sp
  137705. .nf
  137706. .ft C
  137707. make_new_mediatype:
  137708. zabbix_mediatype.present:
  137709. \- name: \(aqEmail\(aq
  137710. \- mediatype: 0
  137711. \- smtp_server: smtp.example.com
  137712. \- smtp_hello: zabbix.example.com
  137713. \- smtp_email: zabbix@example.com
  137714. .ft P
  137715. .fi
  137716. .UNINDENT
  137717. .UNINDENT
  137718. .UNINDENT
  137719. .SS salt.states.zabbix_template
  137720. .sp
  137721. New in version 2017.7.
  137722. .sp
  137723. Management of Zabbix Template object over Zabbix API.
  137724. .INDENT 0.0
  137725. .TP
  137726. .B codeauthor
  137727. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  137728. .UNINDENT
  137729. .INDENT 0.0
  137730. .TP
  137731. .B salt.states.zabbix_template.absent(name, **kwargs)
  137732. Makes the Zabbix Template to be absent (either does not exist or delete it).
  137733. .INDENT 7.0
  137734. .TP
  137735. .B Parameters
  137736. .INDENT 7.0
  137737. .IP \(bu 2
  137738. \fBname\fP \-\- Zabbix Template name
  137739. .IP \(bu 2
  137740. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137741. .IP \(bu 2
  137742. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137743. .IP \(bu 2
  137744. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137745. .UNINDENT
  137746. .UNINDENT
  137747. .INDENT 7.0
  137748. .INDENT 3.5
  137749. .sp
  137750. .nf
  137751. .ft C
  137752. zabbix\-template\-absent:
  137753. zabbix_template.absent:
  137754. \- name: Ceph OSD
  137755. .ft P
  137756. .fi
  137757. .UNINDENT
  137758. .UNINDENT
  137759. .UNINDENT
  137760. .INDENT 0.0
  137761. .TP
  137762. .B salt.states.zabbix_template.is_present(name, **kwargs)
  137763. Check if Zabbix Template already exists.
  137764. .INDENT 7.0
  137765. .TP
  137766. .B Parameters
  137767. .INDENT 7.0
  137768. .IP \(bu 2
  137769. \fBname\fP \-\- Zabbix Template name
  137770. .IP \(bu 2
  137771. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137772. .IP \(bu 2
  137773. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137774. .IP \(bu 2
  137775. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137776. .UNINDENT
  137777. .UNINDENT
  137778. .INDENT 7.0
  137779. .INDENT 3.5
  137780. .sp
  137781. .nf
  137782. .ft C
  137783. does_zabbix\-template\-exist:
  137784. zabbix_template.is_present:
  137785. \- name: Template OS Linux
  137786. .ft P
  137787. .fi
  137788. .UNINDENT
  137789. .UNINDENT
  137790. .UNINDENT
  137791. .INDENT 0.0
  137792. .TP
  137793. .B salt.states.zabbix_template.present(name, params, static_host_list=True, **kwargs)
  137794. Creates Zabbix Template object or if differs update it according defined parameters. See Zabbix API documentation.
  137795. .sp
  137796. Zabbix API version: >3.0
  137797. .INDENT 7.0
  137798. .TP
  137799. .B Parameters
  137800. .INDENT 7.0
  137801. .IP \(bu 2
  137802. \fBname\fP \-\- Zabbix Template name
  137803. .IP \(bu 2
  137804. \fBparams\fP \-\- Additional parameters according to Zabbix API documentation
  137805. .IP \(bu 2
  137806. \fBstatic_host_list\fP \-\- If hosts assigned to the template are controlled
  137807. only by this state or can be also assigned externally
  137808. .IP \(bu 2
  137809. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137810. .IP \(bu 2
  137811. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137812. .IP \(bu 2
  137813. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137814. .UNINDENT
  137815. .UNINDENT
  137816. .sp
  137817. \fBNOTE:\fP
  137818. .INDENT 7.0
  137819. .INDENT 3.5
  137820. If there is a need to get a value from current zabbix online (e.g. ids of host groups you want the template
  137821. to be associated with), put a dictionary with two keys "query_object" and "query_name" instead of the value.
  137822. In this example we want to create template named "Testing Template", assign it to hostgroup Templates,
  137823. link it to two ceph nodes and create a macro.
  137824. .UNINDENT
  137825. .UNINDENT
  137826. .sp
  137827. \fBNOTE:\fP
  137828. .INDENT 7.0
  137829. .INDENT 3.5
  137830. IMPORTANT NOTE:
  137831. Objects (except for template name) are identified by name (or by other key in some exceptional cases)
  137832. so changing name of object means deleting old one and creating new one with new ID !!!
  137833. .UNINDENT
  137834. .UNINDENT
  137835. .sp
  137836. \fBNOTE:\fP
  137837. .INDENT 7.0
  137838. .INDENT 3.5
  137839. .INDENT 0.0
  137840. .TP
  137841. .B NOT SUPPORTED FEATURES:
  137842. .INDENT 7.0
  137843. .IP \(bu 2
  137844. linked templates
  137845. .IP \(bu 2
  137846. trigger dependencies
  137847. .IP \(bu 2
  137848. groups and group prototypes for host prototypes
  137849. .UNINDENT
  137850. .UNINDENT
  137851. .UNINDENT
  137852. .UNINDENT
  137853. .sp
  137854. SLS Example:
  137855. .INDENT 7.0
  137856. .INDENT 3.5
  137857. .sp
  137858. .nf
  137859. .ft C
  137860. zabbix\-template\-present:
  137861. zabbix_template.present:
  137862. \- name: Testing Template
  137863. # Do not touch existing assigned hosts
  137864. # True will detach all other hosts than defined here
  137865. \- static_host_list: False
  137866. \- params:
  137867. description: Template for Ceph nodes
  137868. groups:
  137869. # groups must already exist
  137870. # template must be at least in one hostgroup
  137871. \- groupid:
  137872. query_object: hostgroup
  137873. query_name: Templates
  137874. macros:
  137875. \- macro: "{$CEPH_CLUSTER_NAME}"
  137876. value: ceph
  137877. hosts:
  137878. # hosts must already exist
  137879. \- hostid:
  137880. query_object: host
  137881. query_name: ceph\-osd\-01
  137882. \- hostid:
  137883. query_object: host
  137884. query_name: ceph\-osd\-02
  137885. # templates:
  137886. # Linked templates \- not supported by state module but can be linked manually (will not be touched)
  137887. applications:
  137888. \- name: Ceph OSD
  137889. items:
  137890. \- name: Ceph OSD avg fill item
  137891. key_: ceph.osd_avg_fill
  137892. type: 2
  137893. value_type: 0
  137894. delay: 60
  137895. units: \(aq%\(aq
  137896. description: \(aqAverage fill of OSD\(aq
  137897. applications:
  137898. \- applicationid:
  137899. query_object: application
  137900. query_name: Ceph OSD
  137901. triggers:
  137902. \- description: "Ceph OSD filled more that 90%"
  137903. expression: "{{\(aq{\(aq}}Testing Template:ceph.osd_avg_fill.last(){{\(aq}\(aq}}>90"
  137904. priority: 4
  137905. discoveries:
  137906. \- name: Mounted filesystem discovery
  137907. key_: vfs.fs.discovery
  137908. type: 0
  137909. delay: 60
  137910. itemprototypes:
  137911. \- name: Free disk space on {{\(aq{#\(aq}}FSNAME}
  137912. key_: vfs.fs.size[{{\(aq{#\(aq}}FSNAME},free]
  137913. type: 0
  137914. value_type: 3
  137915. delay: 60
  137916. applications:
  137917. \- applicationid:
  137918. query_object: application
  137919. query_name: Ceph OSD
  137920. triggerprototypes:
  137921. \- description: "Free disk space is less than 20% on volume {{\(aq{#\(aq}}FSNAME{{\(aq}\(aq}}"
  137922. expression: "{{\(aq{\(aq}}Testing Template:vfs.fs.size[{{\(aq{#\(aq}}FSNAME},free].last(){{\(aq}\(aq}}<20"
  137923. graphs:
  137924. \- name: Ceph OSD avg fill graph
  137925. width: 900
  137926. height: 200
  137927. graphtype: 0
  137928. gitems:
  137929. \- color: F63100
  137930. itemid:
  137931. query_object: item
  137932. query_name: Ceph OSD avg fill item
  137933. screens:
  137934. \- name: Ceph
  137935. hsize: 1
  137936. vsize: 1
  137937. screenitems:
  137938. \- x: 0
  137939. y: 0
  137940. resourcetype: 0
  137941. resourceid:
  137942. query_object: graph
  137943. query_name: Ceph OSD avg fill graph
  137944. .ft P
  137945. .fi
  137946. .UNINDENT
  137947. .UNINDENT
  137948. .UNINDENT
  137949. .SS salt.states.zabbix_usergroup module
  137950. .sp
  137951. Management of Zabbix user groups.
  137952. .INDENT 0.0
  137953. .TP
  137954. .B codeauthor
  137955. Jiri Kotlin <\fI\%jiri.kotlin@ultimum.io\fP>
  137956. .UNINDENT
  137957. .INDENT 0.0
  137958. .TP
  137959. .B salt.states.zabbix_usergroup.absent(name, **kwargs)
  137960. Ensures that the user group does not exist, eventually delete user group.
  137961. .sp
  137962. New in version 2016.3.0.
  137963. .INDENT 7.0
  137964. .TP
  137965. .B Parameters
  137966. .INDENT 7.0
  137967. .IP \(bu 2
  137968. \fBname\fP \-\- name of the user group
  137969. .IP \(bu 2
  137970. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137971. .IP \(bu 2
  137972. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137973. .IP \(bu 2
  137974. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137975. .UNINDENT
  137976. .UNINDENT
  137977. .INDENT 7.0
  137978. .INDENT 3.5
  137979. .sp
  137980. .nf
  137981. .ft C
  137982. delete_thai_monks_usrgrp:
  137983. zabbix_usergroup.absent:
  137984. \- name: \(aqThai monks\(aq
  137985. .ft P
  137986. .fi
  137987. .UNINDENT
  137988. .UNINDENT
  137989. .UNINDENT
  137990. .INDENT 0.0
  137991. .TP
  137992. .B salt.states.zabbix_usergroup.present(name, **kwargs)
  137993. Creates new user group.
  137994. NOTE: This function accepts all standard user group properties: keyword argument names differ depending on your
  137995. zabbix version, see:
  137996. \fI\%https://www.zabbix.com/documentation/2.0/manual/appendix/api/usergroup/definitions#user_group\fP
  137997. .sp
  137998. New in version 2016.3.0.
  137999. .INDENT 7.0
  138000. .TP
  138001. .B Parameters
  138002. .INDENT 7.0
  138003. .IP \(bu 2
  138004. \fBname\fP \-\- name of the user group
  138005. .IP \(bu 2
  138006. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138007. .IP \(bu 2
  138008. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138009. .IP \(bu 2
  138010. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138011. .UNINDENT
  138012. .UNINDENT
  138013. .INDENT 7.0
  138014. .INDENT 3.5
  138015. .sp
  138016. .nf
  138017. .ft C
  138018. make_new_thai_monks_usergroup:
  138019. zabbix_usergroup.present:
  138020. \- name: \(aqThai monks\(aq
  138021. \- gui_access: 1
  138022. \- debug_mode: 0
  138023. \- users_status: 0
  138024. .ft P
  138025. .fi
  138026. .UNINDENT
  138027. .UNINDENT
  138028. .UNINDENT
  138029. .SS salt.states.zabbix_usermacro module
  138030. .sp
  138031. Management of Zabbix usermacros.
  138032. :codeauthor: Raymond Kuiper <\fI\%qix@the\-wired.net\fP>
  138033. .INDENT 0.0
  138034. .TP
  138035. .B salt.states.zabbix_usermacro.absent(name, hostid=None, **kwargs)
  138036. Ensures that the mediatype does not exist, eventually deletes the mediatype.
  138037. .INDENT 7.0
  138038. .TP
  138039. .B Parameters
  138040. .INDENT 7.0
  138041. .IP \(bu 2
  138042. \fBname\fP \-\- name of the usermacro
  138043. .IP \(bu 2
  138044. \fBhostid\fP \-\- id\(aqs of the hosts to apply the usermacro on, if missing a global usermacro is assumed.
  138045. .IP \(bu 2
  138046. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138047. .IP \(bu 2
  138048. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138049. .IP \(bu 2
  138050. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138051. .UNINDENT
  138052. .UNINDENT
  138053. .INDENT 7.0
  138054. .INDENT 3.5
  138055. .sp
  138056. .nf
  138057. .ft C
  138058. delete_usermacro:
  138059. zabbix_usermacro.absent:
  138060. \- name: \(aq{$SNMP_COMMUNITY}\(aq
  138061. .ft P
  138062. .fi
  138063. .UNINDENT
  138064. .UNINDENT
  138065. .UNINDENT
  138066. .INDENT 0.0
  138067. .TP
  138068. .B salt.states.zabbix_usermacro.present(name, value, hostid=None, **kwargs)
  138069. Creates a new usermacro.
  138070. .INDENT 7.0
  138071. .TP
  138072. .B Parameters
  138073. .INDENT 7.0
  138074. .IP \(bu 2
  138075. \fBname\fP \-\- name of the usermacro
  138076. .IP \(bu 2
  138077. \fBvalue\fP \-\- value of the usermacro
  138078. .IP \(bu 2
  138079. \fBhostid\fP \-\- id\(aqs of the hosts to apply the usermacro on, if missing a global usermacro is assumed.
  138080. .IP \(bu 2
  138081. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138082. .IP \(bu 2
  138083. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138084. .IP \(bu 2
  138085. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138086. .UNINDENT
  138087. .UNINDENT
  138088. .INDENT 7.0
  138089. .INDENT 3.5
  138090. .sp
  138091. .nf
  138092. .ft C
  138093. override host usermacro:
  138094. zabbix_usermacro.present:
  138095. \- name: \(aq{$SNMP_COMMUNITY}\(aq\(aq
  138096. \- value: \(aqpublic\(aq
  138097. \- hostid: 21
  138098. .ft P
  138099. .fi
  138100. .UNINDENT
  138101. .UNINDENT
  138102. .UNINDENT
  138103. .SS salt.states.zabbix_valuemap
  138104. .sp
  138105. New in version 2017.7.
  138106. .sp
  138107. Management of Zabbix Valuemap object over Zabbix API.
  138108. .INDENT 0.0
  138109. .TP
  138110. .B codeauthor
  138111. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  138112. .UNINDENT
  138113. .INDENT 0.0
  138114. .TP
  138115. .B salt.states.zabbix_valuemap.absent(name, **kwargs)
  138116. Makes the Zabbix Value map to be absent (either does not exist or delete it).
  138117. .INDENT 7.0
  138118. .TP
  138119. .B Parameters
  138120. .INDENT 7.0
  138121. .IP \(bu 2
  138122. \fBname\fP \-\- Zabbix Value map name
  138123. .IP \(bu 2
  138124. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138125. .IP \(bu 2
  138126. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138127. .IP \(bu 2
  138128. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138129. .UNINDENT
  138130. .UNINDENT
  138131. .INDENT 7.0
  138132. .INDENT 3.5
  138133. .sp
  138134. .nf
  138135. .ft C
  138136. zabbix\-valuemap\-absent:
  138137. zabbix_valuemap.absent:
  138138. \- name: Value map name
  138139. .ft P
  138140. .fi
  138141. .UNINDENT
  138142. .UNINDENT
  138143. .UNINDENT
  138144. .INDENT 0.0
  138145. .TP
  138146. .B salt.states.zabbix_valuemap.present(name, params, **kwargs)
  138147. Creates Zabbix Value map object or if differs update it according defined parameters
  138148. .INDENT 7.0
  138149. .TP
  138150. .B Parameters
  138151. .INDENT 7.0
  138152. .IP \(bu 2
  138153. \fBname\fP \-\- Zabbix Value map name
  138154. .IP \(bu 2
  138155. \fBparams\fP \-\- Definition of the Zabbix Value map
  138156. .IP \(bu 2
  138157. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138158. .IP \(bu 2
  138159. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138160. .IP \(bu 2
  138161. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138162. .UNINDENT
  138163. .UNINDENT
  138164. .INDENT 7.0
  138165. .INDENT 3.5
  138166. .sp
  138167. .nf
  138168. .ft C
  138169. zabbix\-valuemap\-present:
  138170. zabbix_valuemap.present:
  138171. \- name: Number mapping
  138172. \- params:
  138173. mappings:
  138174. \- value: 1
  138175. newvalue: one
  138176. \- value: 2
  138177. newvalue: two
  138178. .ft P
  138179. .fi
  138180. .UNINDENT
  138181. .UNINDENT
  138182. .UNINDENT
  138183. .SS salt.states.zcbuildout
  138184. .SS Management of zc.buildout
  138185. .sp
  138186. This module is inspired from minitage\(aqs buildout maker
  138187. (\fI\%https://github.com/minitage/minitage/blob/master/src/minitage/core/makers/buildout.py\fP)
  138188. .sp
  138189. New in version 2016.3.0.
  138190. .sp
  138191. \fBNOTE:\fP
  138192. .INDENT 0.0
  138193. .INDENT 3.5
  138194. This state module is beta; the API is subject to change and no promise
  138195. as to performance or functionality is yet present
  138196. .UNINDENT
  138197. .UNINDENT
  138198. .SS Available Functions
  138199. .INDENT 0.0
  138200. .IP \(bu 2
  138201. built
  138202. .INDENT 2.0
  138203. .INDENT 3.5
  138204. .sp
  138205. .nf
  138206. .ft C
  138207. installed1
  138208. buildout.installed:
  138209. \- name: /path/to/buildout
  138210. installed2
  138211. buildout.installed:
  138212. \- name: /path/to/buildout
  138213. \- parts:
  138214. \- a
  138215. \- b
  138216. \- python: /path/to/pythonpath/bin/python
  138217. \- unless: /bin/test_something_installed
  138218. \- onlyif: /bin/test_else_installed
  138219. .ft P
  138220. .fi
  138221. .UNINDENT
  138222. .UNINDENT
  138223. .UNINDENT
  138224. .INDENT 0.0
  138225. .TP
  138226. .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)
  138227. Install buildout in a specific directory
  138228. .sp
  138229. It is a thin wrapper to modules.buildout.buildout
  138230. .INDENT 7.0
  138231. .TP
  138232. .B name
  138233. directory to execute in
  138234. .UNINDENT
  138235. .sp
  138236. quiet
  138237. .INDENT 7.0
  138238. .INDENT 3.5
  138239. do not output console & logs
  138240. .UNINDENT
  138241. .UNINDENT
  138242. .INDENT 7.0
  138243. .TP
  138244. .B config
  138245. buildout config to use (default: buildout.cfg)
  138246. .TP
  138247. .B parts
  138248. specific buildout parts to run
  138249. .TP
  138250. .B user
  138251. user used to run buildout as
  138252. .sp
  138253. New in version 2014.1.4.
  138254. .TP
  138255. .B env
  138256. environment variables to set when running
  138257. .TP
  138258. .B buildout_ver
  138259. force a specific buildout version (1 | 2)
  138260. .TP
  138261. .B test_release
  138262. buildout accept test release
  138263. .TP
  138264. .B new_st
  138265. Forcing use of setuptools >= 0.7
  138266. .TP
  138267. .B distribute
  138268. use distribute over setuptools if possible
  138269. .TP
  138270. .B offline
  138271. does buildout run offline
  138272. .TP
  138273. .B python
  138274. python to use
  138275. .TP
  138276. .B debug
  138277. run buildout with \-D debug flag
  138278. .TP
  138279. .B onlyif
  138280. Only execute cmd if statement on the host return 0
  138281. .TP
  138282. .B unless
  138283. Do not execute cmd if statement on the host return 0
  138284. .TP
  138285. .B newest
  138286. run buildout in newest mode
  138287. .TP
  138288. .B verbose
  138289. run buildout in verbose mode (\-vvvvv)
  138290. .TP
  138291. .B use_vt
  138292. Use the new salt VT to stream output [experimental]
  138293. .TP
  138294. .B loglevel
  138295. loglevel for buildout commands
  138296. .UNINDENT
  138297. .UNINDENT
  138298. .SS salt.states.zenoss
  138299. .sp
  138300. State to manage monitoring in Zenoss.
  138301. .sp
  138302. New in version 2016.3.0.
  138303. .sp
  138304. This state module depends on the \(aqzenoss\(aq Salt execution module.
  138305. .sp
  138306. Allows for setting a state of minions in Zenoss using the Zenoss API. Currently Zenoss 4.x and 5.x are supported.
  138307. .INDENT 0.0
  138308. .INDENT 3.5
  138309. .sp
  138310. .nf
  138311. .ft C
  138312. enable_monitoring:
  138313. zenoss.monitored:
  138314. \- name: web01.example.com
  138315. \- device_class: /Servers/Linux
  138316. \- collector: localhost
  138317. \- prod_state: 1000
  138318. .ft P
  138319. .fi
  138320. .UNINDENT
  138321. .UNINDENT
  138322. .INDENT 0.0
  138323. .TP
  138324. .B salt.states.zenoss.monitored(name, device_class=None, collector=u\(aqlocalhost\(aq, prod_state=None)
  138325. Ensure a device is monitored. The \(aqname\(aq given will be used for Zenoss device name and should be resolvable.
  138326. .INDENT 7.0
  138327. .INDENT 3.5
  138328. .sp
  138329. .nf
  138330. .ft C
  138331. enable_monitoring:
  138332. zenoss.monitored:
  138333. \- name: web01.example.com
  138334. \- device_class: /Servers/Linux
  138335. \- collector: localhost
  138336. \- prod_state: 1000
  138337. .ft P
  138338. .fi
  138339. .UNINDENT
  138340. .UNINDENT
  138341. .UNINDENT
  138342. .SS salt.states.zk_concurrency
  138343. .SS Control concurrency of steps within state execution using zookeeper
  138344. .INDENT 0.0
  138345. .TP
  138346. .B depends
  138347. kazoo
  138348. .TP
  138349. .B configuration
  138350. See \fBsalt.modules.zookeeper\fP for setup instructions.
  138351. .UNINDENT
  138352. .sp
  138353. This module allows you to "wrap" a state\(aqs execution with concurrency control.
  138354. This is useful to protect against all hosts executing highstate simultaneously
  138355. if your services don\(aqt all HUP restart. The common way of protecting against this
  138356. is to run in batch mode, but that doesn\(aqt protect from another person running
  138357. the same batch command (and thereby having 2x the number of nodes deploying at once).
  138358. .sp
  138359. This module will bock while acquiring a slot, meaning that however the command gets
  138360. called it will coordinate with zookeeper to ensure that no more than max_concurrency
  138361. steps are executing with a single path.
  138362. .INDENT 0.0
  138363. .INDENT 3.5
  138364. .sp
  138365. .nf
  138366. .ft C
  138367. acquire_lock:
  138368. zk_concurrency.lock:
  138369. \- name: /trafficeserver
  138370. \- zk_hosts: \(aqzookeeper:2181\(aq
  138371. \- max_concurrency: 4
  138372. \- prereq:
  138373. \- service: trafficserver
  138374. trafficserver:
  138375. service.running:
  138376. \- watch:
  138377. \- file: /etc/trafficserver/records.config
  138378. /etc/trafficserver/records.config:
  138379. file.managed:
  138380. \- source: salt://records.config
  138381. release_lock:
  138382. zk_concurrency.unlock:
  138383. \- name: /trafficserver
  138384. \- require:
  138385. \- service: trafficserver
  138386. .ft P
  138387. .fi
  138388. .UNINDENT
  138389. .UNINDENT
  138390. .sp
  138391. This example would allow the file state to change, but would limit the
  138392. concurrency of the trafficserver service restart to 4.
  138393. .INDENT 0.0
  138394. .TP
  138395. .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)
  138396. Block state execution until you are able to get the lock (or hit the timeout)
  138397. .UNINDENT
  138398. .INDENT 0.0
  138399. .TP
  138400. .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)
  138401. Ensure that there are \fImin_nodes\fP in the party at \fIname\fP, optionally blocking if not available.
  138402. .UNINDENT
  138403. .INDENT 0.0
  138404. .TP
  138405. .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)
  138406. Remove lease from semaphore.
  138407. .UNINDENT
  138408. .SS salt.states.zookeeper
  138409. .INDENT 0.0
  138410. .TP
  138411. .B depends
  138412. kazoo
  138413. .TP
  138414. .B configuration
  138415. See \fBsalt.modules.zookeeper\fP for setup instructions.
  138416. .UNINDENT
  138417. .SS ACLS
  138418. .sp
  138419. For more information about acls, please checkout the kazoo documentation.
  138420. .sp
  138421. \fI\%http://kazoo.readthedocs.io/en/latest/api/security.html#kazoo.security.make_digest_acl\fP
  138422. .sp
  138423. The following options can be included in the acl dictionary:
  138424. .INDENT 0.0
  138425. .INDENT 3.5
  138426. .INDENT 0.0
  138427. .TP
  138428. .B param username
  138429. Username to use for the ACL.
  138430. .TP
  138431. .B param password
  138432. A plain\-text password to hash.
  138433. .TP
  138434. .B param write
  138435. Write permission.
  138436. .TP
  138437. .B type write
  138438. bool
  138439. .TP
  138440. .B param create
  138441. Create permission.
  138442. .TP
  138443. .B type create
  138444. bool
  138445. .TP
  138446. .B param delete
  138447. Delete permission.
  138448. .TP
  138449. .B type delete
  138450. bool
  138451. .TP
  138452. .B param admin
  138453. Admin permission.
  138454. .TP
  138455. .B type admin
  138456. bool
  138457. .TP
  138458. .B param all
  138459. All permissions.
  138460. .TP
  138461. .B type all
  138462. bool
  138463. .UNINDENT
  138464. .UNINDENT
  138465. .UNINDENT
  138466. .INDENT 0.0
  138467. .TP
  138468. .B salt.states.zookeeper.absent(name, version=\-1, recursive=False, profile=None, hosts=None, scheme=None, username=None, password=None, default_acl=None)
  138469. Make sure znode is absent
  138470. .INDENT 7.0
  138471. .TP
  138472. .B name
  138473. path to znode
  138474. .TP
  138475. .B version
  138476. Specify the version which should be deleted
  138477. Default: \-1 (always match)
  138478. .TP
  138479. .B recursive
  138480. Boolean to indicate if children should be recursively deleted
  138481. Default: False
  138482. .TP
  138483. .B profile
  138484. Configured Zookeeper profile to authenticate with (Default: None)
  138485. .TP
  138486. .B hosts
  138487. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138488. .TP
  138489. .B scheme
  138490. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138491. .TP
  138492. .B username
  138493. Username to authenticate (Default: None)
  138494. .TP
  138495. .B password
  138496. Password to authenticate (Default: None)
  138497. .TP
  138498. .B default_acl
  138499. Default acls to assign if a node is created in this connection (Default: None)
  138500. .UNINDENT
  138501. .INDENT 7.0
  138502. .INDENT 3.5
  138503. .sp
  138504. .nf
  138505. .ft C
  138506. delete znode:
  138507. zookeeper.absent:
  138508. \- name: /test
  138509. \- recursive: True
  138510. .ft P
  138511. .fi
  138512. .UNINDENT
  138513. .UNINDENT
  138514. .UNINDENT
  138515. .INDENT 0.0
  138516. .TP
  138517. .B salt.states.zookeeper.acls(name, acls, version=\-1, profile=None, hosts=None, scheme=None, username=None, password=None, default_acl=None)
  138518. Update acls on a znode
  138519. .INDENT 7.0
  138520. .TP
  138521. .B name
  138522. path to znode
  138523. .TP
  138524. .B acls
  138525. list of acl dictionaries to set on znode
  138526. .TP
  138527. .B version
  138528. Specify the version which should be deleted
  138529. Default: \-1 (always match)
  138530. .TP
  138531. .B profile
  138532. Configured Zookeeper profile to authenticate with (Default: None)
  138533. .TP
  138534. .B hosts
  138535. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138536. .TP
  138537. .B scheme
  138538. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138539. .TP
  138540. .B username
  138541. Username to authenticate (Default: None)
  138542. .TP
  138543. .B password
  138544. Password to authenticate (Default: None)
  138545. .TP
  138546. .B default_acl
  138547. Default acls to assign if a node is created in this connection (Default: None)
  138548. .UNINDENT
  138549. .INDENT 7.0
  138550. .INDENT 3.5
  138551. .sp
  138552. .nf
  138553. .ft C
  138554. update acls:
  138555. zookeeper.acls:
  138556. \- name: /test/name
  138557. \- acls:
  138558. \- username: daniel
  138559. password: test
  138560. all: True
  138561. \- username: gtmanfred
  138562. password: test
  138563. all: True
  138564. .ft P
  138565. .fi
  138566. .UNINDENT
  138567. .UNINDENT
  138568. .UNINDENT
  138569. .INDENT 0.0
  138570. .TP
  138571. .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)
  138572. Make sure znode is present in the correct state with the correct acls
  138573. .INDENT 7.0
  138574. .TP
  138575. .B name
  138576. path to znode
  138577. .TP
  138578. .B value
  138579. value znode should be set to
  138580. .TP
  138581. .B acls
  138582. list of acl dictionaries to set on znode (make sure the ones salt is connected with are included)
  138583. Default: None
  138584. .TP
  138585. .B ephemeral
  138586. Boolean to indicate if ephemeral znode should be created
  138587. Default: False
  138588. .TP
  138589. .B sequence
  138590. Boolean to indicate if znode path is suffixed with a unique index
  138591. Default: False
  138592. .TP
  138593. .B makepath
  138594. Boolean to indicate if the parent paths should be created
  138595. Default: False
  138596. .TP
  138597. .B version
  138598. For updating, specify the version which should be updated
  138599. Default: \-1 (always match)
  138600. .TP
  138601. .B profile
  138602. Configured Zookeeper profile to authenticate with (Default: None)
  138603. .TP
  138604. .B hosts
  138605. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138606. .TP
  138607. .B scheme
  138608. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138609. .TP
  138610. .B username
  138611. Username to authenticate (Default: None)
  138612. .TP
  138613. .B password
  138614. Password to authenticate (Default: None)
  138615. .TP
  138616. .B default_acl
  138617. Default acls to assign if a node is created in this connection (Default: None)
  138618. .UNINDENT
  138619. .INDENT 7.0
  138620. .INDENT 3.5
  138621. .sp
  138622. .nf
  138623. .ft C
  138624. add znode:
  138625. zookeeper.present:
  138626. \- name: /test/name
  138627. \- value: gtmanfred
  138628. \- makepath: True
  138629. update znode:
  138630. zookeeper.present:
  138631. \- name: /test/name
  138632. \- value: daniel
  138633. \- acls:
  138634. \- username: daniel
  138635. password: test
  138636. read: true
  138637. \- username: gtmanfred
  138638. password: test
  138639. read: true
  138640. write: true
  138641. create: true
  138642. delete: true
  138643. admin: true
  138644. \- makepath: True
  138645. .ft P
  138646. .fi
  138647. .UNINDENT
  138648. .UNINDENT
  138649. .UNINDENT
  138650. .SS thorium modules
  138651. .TS
  138652. center;
  138653. |l|l|.
  138654. _
  138655. T{
  138656. \fBcalc\fP
  138657. T} T{
  138658. T}
  138659. _
  138660. T{
  138661. \fBcheck\fP
  138662. T} T{
  138663. T}
  138664. _
  138665. T{
  138666. \fBfile\fP
  138667. T} T{
  138668. T}
  138669. _
  138670. T{
  138671. \fBkey\fP
  138672. T} T{
  138673. T}
  138674. _
  138675. T{
  138676. \fBlocal\fP
  138677. T} T{
  138678. T}
  138679. _
  138680. T{
  138681. \fBreg\fP
  138682. T} T{
  138683. T}
  138684. _
  138685. T{
  138686. \fBrunner\fP
  138687. T} T{
  138688. T}
  138689. _
  138690. T{
  138691. \fBstatus\fP
  138692. T} T{
  138693. T}
  138694. _
  138695. T{
  138696. \fBtimer\fP
  138697. T} T{
  138698. T}
  138699. _
  138700. T{
  138701. \fBwheel\fP
  138702. T} T{
  138703. T}
  138704. _
  138705. .TE
  138706. .SS token modules
  138707. .TS
  138708. center;
  138709. |l|l|.
  138710. _
  138711. T{
  138712. \fBlocalfs\fP
  138713. T} T{
  138714. T}
  138715. _
  138716. T{
  138717. \fBrediscluster\fP
  138718. T} T{
  138719. T}
  138720. _
  138721. .TE
  138722. .SS master tops modules
  138723. .TS
  138724. center;
  138725. |l|l|.
  138726. _
  138727. T{
  138728. \fBcobbler\fP
  138729. T} T{
  138730. Cobbler Tops
  138731. T}
  138732. _
  138733. T{
  138734. \fBext_nodes\fP
  138735. T} T{
  138736. T}
  138737. _
  138738. T{
  138739. \fBmongo\fP
  138740. T} T{
  138741. Read tops data from a mongodb collection
  138742. T}
  138743. _
  138744. T{
  138745. \fBreclass_adapter\fP
  138746. T} T{
  138747. Read tops data from a reclass database
  138748. T}
  138749. _
  138750. T{
  138751. \fBsaltclass\fP
  138752. T} T{
  138753. T}
  138754. _
  138755. T{
  138756. \fBvarstack_top\fP
  138757. T} T{
  138758. Use \fI\%Varstack\fP to provide tops data
  138759. T}
  138760. _
  138761. .TE
  138762. .SS salt.tops.cobbler
  138763. .SS Cobbler Tops
  138764. .sp
  138765. Cobbler Tops is a master tops subsystem used to look up mapping information
  138766. from Cobbler via its API. The same cobbler.* parameters are used for both
  138767. the Cobbler tops and Cobbler pillar modules.
  138768. .INDENT 0.0
  138769. .INDENT 3.5
  138770. .sp
  138771. .nf
  138772. .ft C
  138773. master_tops:
  138774. cobbler: {}
  138775. cobbler.url: https://example.com/cobbler_api #default is http://localhost/cobbler_api
  138776. cobbler.user: username # default is no username
  138777. cobbler.password: password # default is no password
  138778. .ft P
  138779. .fi
  138780. .UNINDENT
  138781. .UNINDENT
  138782. .SS Module Documentation
  138783. .INDENT 0.0
  138784. .TP
  138785. .B salt.tops.cobbler.top(**kwargs)
  138786. Look up top data in Cobbler for a minion.
  138787. .UNINDENT
  138788. .SS salt.tops.mongo
  138789. .sp
  138790. Read tops data from a mongodb collection
  138791. .sp
  138792. This module will load tops data from a mongo collection. It uses the node\(aqs id
  138793. for lookups.
  138794. .SS Salt Master Mongo Configuration
  138795. .sp
  138796. The module shares the same base mongo connection variables as
  138797. \fBsalt.returners.mongo_return\fP\&. These variables go in your master
  138798. config file.
  138799. .INDENT 0.0
  138800. .INDENT 3.5
  138801. .INDENT 0.0
  138802. .IP \(bu 2
  138803. \fBmongo.db\fP \- The mongo database to connect to. Defaults to \fB\(aqsalt\(aq\fP\&.
  138804. .IP \(bu 2
  138805. \fBmongo.host\fP \- The mongo host to connect to. Supports replica sets by
  138806. specifying all hosts in the set, comma\-delimited. Defaults to \fB\(aqsalt\(aq\fP\&.
  138807. .IP \(bu 2
  138808. \fBmongo.port\fP \- The port that the mongo database is running on. Defaults
  138809. to \fB27017\fP\&.
  138810. .IP \(bu 2
  138811. \fBmongo.user\fP \- The username for connecting to mongo. Only required if
  138812. you are using mongo authentication. Defaults to \fB\(aq\(aq\fP\&.
  138813. .IP \(bu 2
  138814. \fBmongo.password\fP \- The password for connecting to mongo. Only required
  138815. if you are using mongo authentication. Defaults to \fB\(aq\(aq\fP\&.
  138816. .UNINDENT
  138817. .UNINDENT
  138818. .UNINDENT
  138819. .SS Configuring the Mongo Tops Subsystem
  138820. .INDENT 0.0
  138821. .INDENT 3.5
  138822. .sp
  138823. .nf
  138824. .ft C
  138825. master_tops:
  138826. mongo:
  138827. collection: tops
  138828. id_field: _id
  138829. re_replace: ""
  138830. re_pattern: \e.example\e.com
  138831. states_field: states
  138832. environment_field: environment
  138833. .ft P
  138834. .fi
  138835. .UNINDENT
  138836. .UNINDENT
  138837. .SS Module Documentation
  138838. .INDENT 0.0
  138839. .TP
  138840. .B salt.tops.mongo.top(**kwargs)
  138841. Connect to a mongo database and read per\-node tops data.
  138842. .INDENT 7.0
  138843. .TP
  138844. .B Parameters
  138845. .INDENT 7.0
  138846. .IP \(bu 2
  138847. \fBcollection\fP (\fI*\fP) \-\- The mongodb collection to read data from. Defaults to
  138848. \fB\(aqtops\(aq\fP\&.
  138849. .IP \(bu 2
  138850. \fBid_field\fP (\fI*\fP) \-\- The field in the collection that represents an individual
  138851. minion id. Defaults to \fB\(aq_id\(aq\fP\&.
  138852. .IP \(bu 2
  138853. \fBre_pattern\fP (\fI*\fP) \-\- If your naming convention in the collection is shorter
  138854. than the minion id, you can use this to trim the name.
  138855. \fIre_pattern\fP will be used to match the name, and \fIre_replace\fP will
  138856. be used to replace it. Backrefs are supported as they are in the
  138857. Python standard library. If \fBNone\fP, no mangling of the name will
  138858. be performed \- the collection will be searched with the entire
  138859. minion id. Defaults to \fBNone\fP\&.
  138860. .IP \(bu 2
  138861. \fBre_replace\fP (\fI*\fP) \-\- Use as the replacement value in node ids matched with
  138862. \fIre_pattern\fP\&. Defaults to \(aq\(aq. Feel free to use backreferences here.
  138863. .IP \(bu 2
  138864. \fBstates_field\fP (\fI*\fP) \-\- The name of the field providing a list of states.
  138865. .IP \(bu 2
  138866. \fBenvironment_field\fP (\fI*\fP) \-\- The name of the field providing the environment.
  138867. Defaults to \fBenvironment\fP\&.
  138868. .UNINDENT
  138869. .UNINDENT
  138870. .UNINDENT
  138871. .SS salt.tops.reclass_adapter
  138872. .sp
  138873. Read tops data from a reclass database
  138874. .sp
  138875. This master_tops plugin provides access to
  138876. the \fBreclass\fP database, such that state information (top data) are retrieved
  138877. from \fBreclass\fP\&.
  138878. .sp
  138879. You can find more information about \fBreclass\fP at
  138880. \fI\%http://reclass.pantsfullofunix.net\fP\&.
  138881. .sp
  138882. To use the plugin, add it to the \fBmaster_tops\fP list in the Salt master config
  138883. and tell \fBreclass\fP by way of a few options how and where to find the
  138884. inventory:
  138885. .INDENT 0.0
  138886. .INDENT 3.5
  138887. .sp
  138888. .nf
  138889. .ft C
  138890. master_tops:
  138891. reclass:
  138892. storage_type: yaml_fs
  138893. inventory_base_uri: /srv/salt
  138894. .ft P
  138895. .fi
  138896. .UNINDENT
  138897. .UNINDENT
  138898. .sp
  138899. This would cause \fBreclass\fP to read the inventory from YAML files in
  138900. \fB/srv/salt/nodes\fP and \fB/srv/salt/classes\fP\&.
  138901. .sp
  138902. If you are also using \fBreclass\fP as \fBext_pillar\fP plugin, and you want to
  138903. avoid having to specify the same information for both, use YAML anchors (take
  138904. note of the differing data types for \fBext_pillar\fP and \fBmaster_tops\fP):
  138905. .INDENT 0.0
  138906. .INDENT 3.5
  138907. .sp
  138908. .nf
  138909. .ft C
  138910. reclass: &reclass
  138911. storage_type: yaml_fs
  138912. inventory_base_uri: /srv/salt
  138913. reclass_source_path: ~/code/reclass
  138914. ext_pillar:
  138915. \- reclass: *reclass
  138916. master_tops:
  138917. reclass: *reclass
  138918. .ft P
  138919. .fi
  138920. .UNINDENT
  138921. .UNINDENT
  138922. .sp
  138923. If you want to run reclass from source, rather than installing it, you can
  138924. either let the master know via the \fBPYTHONPATH\fP environment variable, or by
  138925. setting the configuration option, like in the example above.
  138926. .INDENT 0.0
  138927. .TP
  138928. .B salt.tops.reclass_adapter.top(**kwargs)
  138929. Query \fBreclass\fP for the top data (states of the minions).
  138930. .UNINDENT
  138931. .SS salt.tops.varstack_top
  138932. .sp
  138933. Use \fI\%Varstack\fP to provide tops data
  138934. .sp
  138935. This master_tops plugin provides access to
  138936. the \fBvarstack\fP hierarchical yaml files, so you can user \fBvarstack\fP as a full
  138937. \fBexternal node classifier\fP and
  138938. store state information (top data) in it.
  138939. .SS Configuring Varstack
  138940. .sp
  138941. To use varstack as a master top external node classifier, install varstack
  138942. as documented. Then, add to your master\(aqs configuration:
  138943. .INDENT 0.0
  138944. .INDENT 3.5
  138945. .sp
  138946. .nf
  138947. .ft C
  138948. master_tops:
  138949. varstack: /path/to/the/config/file/varstack.yaml
  138950. .ft P
  138951. .fi
  138952. .UNINDENT
  138953. .UNINDENT
  138954. .sp
  138955. Varstack will then use /path/to/the/config/file/varstack.yaml (usually
  138956. /etc/varstack.yaml) to determine which configuration
  138957. data to return as adapter information. From there you can take a look at the
  138958. \fI\%README\fP of
  138959. varstack to learn how this file is evaluated. The ENC part will just return
  138960. the \(aqstates\(aq dictionary for the node.
  138961. .sp
  138962. Ie, if my.fqdn.yaml file contains:
  138963. .INDENT 0.0
  138964. .INDENT 3.5
  138965. .sp
  138966. .nf
  138967. .ft C
  138968. \-\-\-
  138969. states:
  138970. \- sudo
  138971. \- openssh
  138972. \- apache
  138973. \- salt.minion
  138974. .ft P
  138975. .fi
  138976. .UNINDENT
  138977. .UNINDENT
  138978. .sp
  138979. these will be returned as {\(aqbase\(aq: [\(aqsudo\(aq, \(aqopenssh\(aq, \(aqapache\(aq, \(aqsalt.minion\(aq]} and
  138980. managed by salt as if given from a top.sls file.
  138981. .INDENT 0.0
  138982. .TP
  138983. .B salt.tops.varstack_top.top(**kwargs)
  138984. Query \fBvarstack\fP for the top data (states of the minions).
  138985. .UNINDENT
  138986. .SS wheel modules
  138987. .TS
  138988. center;
  138989. |l|l|.
  138990. _
  138991. T{
  138992. \fBconfig\fP
  138993. T} T{
  138994. T}
  138995. _
  138996. T{
  138997. \fBerror\fP
  138998. T} T{
  138999. T}
  139000. _
  139001. T{
  139002. \fBfile_roots\fP
  139003. T} T{
  139004. T}
  139005. _
  139006. T{
  139007. \fBkey\fP
  139008. T} T{
  139009. T}
  139010. _
  139011. T{
  139012. \fBminions\fP
  139013. T} T{
  139014. T}
  139015. _
  139016. T{
  139017. \fBpillar_roots\fP
  139018. T} T{
  139019. T}
  139020. _
  139021. .TE
  139022. .SH APIS
  139023. .SS Python client API
  139024. .sp
  139025. Salt provides several entry points for interfacing with Python applications.
  139026. These entry points are often referred to as \fB*Client()\fP APIs. Each client
  139027. accesses different parts of Salt, either from the master or from a minion. Each
  139028. client is detailed below.
  139029. .sp
  139030. \fBSEE ALSO:\fP
  139031. .INDENT 0.0
  139032. .INDENT 3.5
  139033. There are many ways to access Salt programmatically.
  139034. .sp
  139035. Salt can be used from CLI scripts as well as via a REST interface.
  139036. .sp
  139037. See Salt\(aqs outputter system to retrieve structured
  139038. data from Salt as JSON, or as shell\-friendly text, or many other formats.
  139039. .sp
  139040. See the \fBstate.event\fP runner to utilize
  139041. Salt\(aqs event bus from shell scripts.
  139042. .sp
  139043. Salt\(aqs \fI\%netapi module\fP provides access to Salt externally via a REST interface.
  139044. Review the \fI\%netapi module\fP documentation for more information.
  139045. .UNINDENT
  139046. .UNINDENT
  139047. .SS Salt\(aqs \fBopts\fP dictionary
  139048. .sp
  139049. Some clients require access to Salt\(aqs \fBopts\fP dictionary. (The dictionary
  139050. representation of the master or
  139051. minion config files.)
  139052. .sp
  139053. A common pattern for fetching the \fBopts\fP dictionary is to defer to
  139054. environment variables if they exist or otherwise fetch the config from the
  139055. default location.
  139056. .SS Salt\(aqs Loader Interface
  139057. .sp
  139058. Modules in the Salt ecosystem are loaded into memory using a custom loader
  139059. system. This allows modules to have conditional requirements (OS, OS version,
  139060. installed libraries, etc) and allows Salt to inject special variables
  139061. (\fB__salt__\fP, \fB__opts__\fP, etc).
  139062. .sp
  139063. Most modules can be manually loaded. This is often useful in third\-party Python
  139064. apps or when writing tests. However some modules require and expect a full,
  139065. running Salt system underneath. Notably modules that facilitate
  139066. master\-to\-minion communication such as the \fBmine\fP,
  139067. \fBpublish\fP, and \fBpeer\fP execution
  139068. modules. The error \fBKeyError: \(aqmaster_uri\(aq\fP is a likely indicator for this
  139069. situation. In those instances use the \fBCaller\fP class
  139070. to execute those modules instead.
  139071. .sp
  139072. Each module type has a corresponding loader function.
  139073. .SS Salt\(aqs Client Interfaces
  139074. .SS LocalClient
  139075. .SS Salt Caller
  139076. .SS Salt Proxy Caller
  139077. .SS RunnerClient
  139078. .SS WheelClient
  139079. .SS CloudClient
  139080. .SS SSHClient
  139081. .SS \fBnetapi\fP modules
  139082. .SS Introduction to netapi modules
  139083. .sp
  139084. netapi modules provide API\-centric access to Salt. Usually externally\-facing
  139085. services such as REST or WebSockets, XMPP, XMLRPC, etc.
  139086. .sp
  139087. In general netapi modules bind to a port and start a service. They are
  139088. purposefully open\-ended. A single module can be configured to run as well as
  139089. multiple modules simultaneously.
  139090. .sp
  139091. netapi modules are enabled by adding configuration to your Salt Master config
  139092. file and then starting the \fBsalt\-api\fP daemon. Check the docs for each
  139093. module to see external requirements and configuration settings.
  139094. .sp
  139095. Communication with Salt and Salt satellite projects is done using Salt\(aqs own
  139096. Python API\&. A list of available client interfaces is below.
  139097. .INDENT 0.0
  139098. .INDENT 3.5
  139099. .IP "salt\-api"
  139100. .sp
  139101. Prior to Salt\(aqs 2014.7.0 release, netapi modules lived in the separate sister
  139102. projected \fBsalt\-api\fP\&. That project has been merged into the main Salt
  139103. project.
  139104. .UNINDENT
  139105. .UNINDENT
  139106. .sp
  139107. \fBSEE ALSO:\fP
  139108. .INDENT 0.0
  139109. .INDENT 3.5
  139110. The full list of netapi modules
  139111. .UNINDENT
  139112. .UNINDENT
  139113. .SS Client interfaces
  139114. .sp
  139115. Salt\(aqs client interfaces expose executing functions by crafting a dictionary of
  139116. values that are mapped to function arguments. This allows calling functions
  139117. simply by creating a data structure. (And this is exactly how much of Salt\(aqs
  139118. own internals work!)
  139119. .SS Writing netapi modules
  139120. .sp
  139121. \fBnetapi\fP modules, put simply, bind a port and start a service.
  139122. They are purposefully open\-ended and can be used to present a variety of
  139123. external interfaces to Salt, and even present multiple interfaces at once.
  139124. .sp
  139125. \fBSEE ALSO:\fP
  139126. .INDENT 0.0
  139127. .INDENT 3.5
  139128. The full list of netapi modules
  139129. .UNINDENT
  139130. .UNINDENT
  139131. .SS Configuration
  139132. .sp
  139133. All \fBnetapi\fP configuration is done in the Salt master
  139134. config and takes a form similar to the following:
  139135. .INDENT 0.0
  139136. .INDENT 3.5
  139137. .sp
  139138. .nf
  139139. .ft C
  139140. rest_cherrypy:
  139141. port: 8000
  139142. debug: True
  139143. ssl_crt: /etc/pki/tls/certs/localhost.crt
  139144. ssl_key: /etc/pki/tls/certs/localhost.key
  139145. .ft P
  139146. .fi
  139147. .UNINDENT
  139148. .UNINDENT
  139149. .SS The \fB__virtual__\fP function
  139150. .sp
  139151. Like all module types in Salt, \fBnetapi\fP modules go through
  139152. Salt\(aqs loader interface to determine if they should be loaded into memory and
  139153. then executed.
  139154. .sp
  139155. The \fB__virtual__\fP function in the module makes this determination and should
  139156. return \fBFalse\fP or a string that will serve as the name of the module. If the
  139157. module raises an \fBImportError\fP or any other errors, it will not be loaded.
  139158. .SS The \fBstart\fP function
  139159. .sp
  139160. The \fBstart()\fP function will be called for each \fBnetapi\fP
  139161. module that is loaded. This function should contain the server loop that
  139162. actually starts the service. This is started in a multiprocess.
  139163. .SS Multiple instances
  139164. .sp
  139165. New in version 2016.11.0.
  139166. .sp
  139167. \fBrest_cherrypy\fP and \fBrest_tornado\fP
  139168. support running multiple instances by copying and renaming entire directory
  139169. of those. To start the copied multiple \fBnetapi\fP modules, add
  139170. configuration blocks for the copied \fBnetapi\fP modules in the
  139171. Salt Master config. The name of each added configuration block must match
  139172. with the name of each directory of the copied \fBnetapi\fP module.
  139173. .SS Inline documentation
  139174. .sp
  139175. As with the rest of Salt, it is a best\-practice to include liberal inline
  139176. documentation in the form of a module docstring and docstrings on any classes,
  139177. methods, and functions in your \fBnetapi\fP module.
  139178. .SS Loader “magic” methods
  139179. .sp
  139180. The loader makes the \fB__opts__\fP data structure available to any function in
  139181. a \fBnetapi\fP module.
  139182. .SH ARCHITECTURE
  139183. .sp
  139184. If you are used to configuration management tools that require you to plan
  139185. down to the last detail before you install anything, you are probably wondering
  139186. why this section doesn\(aqt appear before the installation instructions. With
  139187. Salt, you can switch to a high availability architecture at any time, and add
  139188. additional components to scale your deployment as you go.
  139189. .sp
  139190. Since a single Salt master can manage thousands of systems, we usually
  139191. recommend that you start by deploying a single Salt master, and then modifying
  139192. your deployment as needed for redundancy, geographical distribution, and scale.
  139193. .SS High Availability Features in Salt
  139194. .sp
  139195. Salt supports several features for high availability and fault tolerance.
  139196. Brief documentation for these features is listed alongside their configuration
  139197. parameters in Configuration file examples\&.
  139198. .SS Multimaster
  139199. .sp
  139200. Salt minions can connect to multiple masters at one time by configuring the
  139201. \fImaster\fP configuration parameter as a YAML list of all the available masters. By
  139202. default, all masters are "hot", meaning that any master can direct commands to
  139203. the Salt infrastructure.
  139204. .sp
  139205. In a multimaster configuration, each master must have the same cryptographic
  139206. keys, and minion keys must be accepted on all masters separately. The contents
  139207. of file_roots and pillar_roots need to be kept in sync with processes external
  139208. to Salt as well
  139209. .sp
  139210. A tutorial on setting up multimaster with "hot" masters is here:
  139211. .sp
  139212. Multimaster Tutorial
  139213. .SS Multimaster with Failover
  139214. .sp
  139215. Changing the \fBmaster_type\fP parameter from \fBstr\fP to \fBfailover\fP will cause
  139216. minions to connect to the first responding master in the list of masters. Every
  139217. \fBmaster_alive_interval\fP seconds the minions will check to make
  139218. sure the current master is still responding. If the master does not respond,
  139219. the minion will attempt to connect to the next master in the list. If the
  139220. minion runs out of masters, the list will be recycled in case dead masters have
  139221. been restored. Note that \fBmaster_alive_interval\fP must be present
  139222. in the minion configuration, or else the recurring job to check master status
  139223. will not get scheduled.
  139224. .sp
  139225. Failover can be combined with PKI\-style encrypted keys, but PKI is NOT
  139226. REQUIRED to use failover.
  139227. .sp
  139228. Multimaster with PKI and Failover is discussed in
  139229. this tutorial
  139230. .sp
  139231. \fBmaster_type: failover\fP can be combined with \fBmaster_shuffle: True\fP
  139232. to spread minion connections across all masters (one master per
  139233. minion, not each minion connecting to all masters). Adding Salt Syndics
  139234. into the mix makes it possible to create a load\-balanced Salt infrastructure.
  139235. If a master fails, minions will notice and select another master from the
  139236. available list.
  139237. .SS Syndic
  139238. .sp
  139239. Salt\(aqs Syndic feature is a way to create differing infrastructure
  139240. topologies. It is not strictly an HA feature, but can be treated as such.
  139241. .sp
  139242. With the syndic, a Salt infrastructure can be partitioned in such a way that
  139243. certain masters control certain segments of the infrastructure, and "Master
  139244. of Masters" nodes can control multiple segments underneath them.
  139245. .sp
  139246. Syndics are covered in depth in Salt Syndic\&.
  139247. .SS Syndic with Multimaster
  139248. .sp
  139249. New in version 2015.5.0.
  139250. .sp
  139251. Syndic with Multimaster lets you connect a syndic to multiple masters to provide
  139252. an additional layer of redundancy in a syndic configuration.
  139253. .sp
  139254. Syndics are covered in depth in Salt Syndic\&.
  139255. .SS Salt Syndic
  139256. .sp
  139257. The most basic or typical Salt topology consists of a single Master node
  139258. controlling a group of Minion nodes. An intermediate node type, called Syndic,
  139259. when used offers greater structural flexibility and scalability in the
  139260. construction of Salt topologies than topologies constructed only out of Master
  139261. and Minion node types.
  139262. .sp
  139263. A Syndic node can be thought of as a special passthrough Minion node. A Syndic
  139264. node consists of a \fBsalt\-syndic\fP daemon and a \fBsalt\-master\fP daemon running
  139265. on the same system. The \fBsalt\-master\fP daemon running on the Syndic node
  139266. controls a group of lower level Minion nodes and the \fBsalt\-syndic\fP daemon
  139267. connects higher level Master node, sometimes called a Master of Masters.
  139268. .sp
  139269. The \fBsalt\-syndic\fP daemon relays publications and events between the Master
  139270. node and the local \fBsalt\-master\fP daemon. This gives the Master node control
  139271. over the Minion nodes attached to the \fBsalt\-master\fP daemon running on the
  139272. Syndic node.
  139273. .SS Configuring the Syndic
  139274. .sp
  139275. To setup a Salt Syndic you need to tell the Syndic node and its Master node
  139276. about each other. If your Master node is located at \fB10.10.0.1\fP, then your
  139277. configurations would be:
  139278. .sp
  139279. On the Syndic node:
  139280. .INDENT 0.0
  139281. .INDENT 3.5
  139282. .sp
  139283. .nf
  139284. .ft C
  139285. # /etc/salt/master
  139286. syndic_master: 10.10.0.1 # may be either an IP address or a hostname
  139287. .ft P
  139288. .fi
  139289. .UNINDENT
  139290. .UNINDENT
  139291. .INDENT 0.0
  139292. .INDENT 3.5
  139293. .sp
  139294. .nf
  139295. .ft C
  139296. # /etc/salt/minion
  139297. # id is shared by the salt\-syndic daemon and a possible salt\-minion daemon
  139298. # on the Syndic node
  139299. id: my_syndic
  139300. .ft P
  139301. .fi
  139302. .UNINDENT
  139303. .UNINDENT
  139304. .sp
  139305. On the Master node:
  139306. .INDENT 0.0
  139307. .INDENT 3.5
  139308. .sp
  139309. .nf
  139310. .ft C
  139311. # /etc/salt/master
  139312. order_masters: True
  139313. .ft P
  139314. .fi
  139315. .UNINDENT
  139316. .UNINDENT
  139317. .sp
  139318. The \fBsyndic_master\fP option tells the Syndic node where to find the
  139319. Master node in the same way that the \fBmaster\fP option tells a
  139320. Minion node where to find a Master node.
  139321. .sp
  139322. The \fBid\fP option is used by the \fBsalt\-syndic\fP daemon to identify
  139323. with the Master node and if unset will default to the hostname or IP address of
  139324. the Syndic just as with a Minion.
  139325. .sp
  139326. The \fBorder_masters\fP option configures the Master node to send
  139327. extra information with its publications that is needed by Syndic nodes
  139328. connected directly to it.
  139329. .sp
  139330. \fBNOTE:\fP
  139331. .INDENT 0.0
  139332. .INDENT 3.5
  139333. Each Syndic must provide its own \fBfile_roots\fP directory. Files will not
  139334. be automatically transferred from the Master node.
  139335. .UNINDENT
  139336. .UNINDENT
  139337. .SS Configuring the Syndic with Multimaster
  139338. .sp
  139339. New in version 2015.5.0.
  139340. .sp
  139341. Syndic with Multimaster lets you connect a syndic to multiple masters to provide
  139342. an additional layer of redundancy in a syndic configuration.
  139343. .sp
  139344. Higher level masters should first be configured in a multimaster configuration.
  139345. See Multimaster Tutorial\&.
  139346. .sp
  139347. On the syndic, the \fBsyndic_master\fP option is populated with
  139348. a list of the higher level masters.
  139349. .sp
  139350. Since each syndic is connected to each master, jobs sent from any master are
  139351. forwarded to minions that are connected to each syndic. If the \fBmaster_id\fP value
  139352. is set in the master config on the higher level masters, job results are returned
  139353. to the master that originated the request in a best effort fashion. Events/jobs
  139354. without a \fBmaster_id\fP are returned to any available master.
  139355. .SS Running the Syndic
  139356. .sp
  139357. The \fBsalt\-syndic\fP daemon is a separate process that needs to be started in
  139358. addition to the \fBsalt\-master\fP daemon running on the Syndic node. Starting
  139359. the \fBsalt\-syndic\fP daemon is the same as starting the other Salt daemons.
  139360. .sp
  139361. The Master node in many ways sees the Syndic as an ordinary Minion node. In
  139362. particular, the Master will need to accept the Syndic\(aqs Minion key as it would
  139363. for any other Minion.
  139364. .sp
  139365. On the Syndic node:
  139366. .INDENT 0.0
  139367. .INDENT 3.5
  139368. .sp
  139369. .nf
  139370. .ft C
  139371. # salt\-syndic
  139372. or
  139373. # service salt\-syndic start
  139374. .ft P
  139375. .fi
  139376. .UNINDENT
  139377. .UNINDENT
  139378. .sp
  139379. On the Master node:
  139380. .INDENT 0.0
  139381. .INDENT 3.5
  139382. .sp
  139383. .nf
  139384. .ft C
  139385. # salt\-key \-a my_syndic
  139386. .ft P
  139387. .fi
  139388. .UNINDENT
  139389. .UNINDENT
  139390. .sp
  139391. The Master node will now be able to control the Minion nodes connected to the
  139392. Syndic. Only the Syndic key will be listed in the Master node\(aqs key registry
  139393. but this also means that key activity between the Syndic\(aqs Minions and the
  139394. Syndic does not encumber the Master node. In this way, the Syndic\(aqs key on the
  139395. Master node can be thought of as a placeholder for the keys of all the Minion
  139396. and Syndic nodes beneath it, giving the Master node a clear, high level
  139397. structural view on the Salt cluster.
  139398. .sp
  139399. On the Master node:
  139400. .INDENT 0.0
  139401. .INDENT 3.5
  139402. .sp
  139403. .nf
  139404. .ft C
  139405. # salt\-key \-L
  139406. Accepted Keys:
  139407. my_syndic
  139408. Denied Keys:
  139409. Unaccepted Keys:
  139410. Rejected Keys:
  139411. # salt \(aq*\(aq test.version
  139412. minion_1:
  139413. 2018.3.4
  139414. minion_2:
  139415. 2018.3.4
  139416. minion_4:
  139417. 2018.3.4
  139418. minion_3:
  139419. 2018.3.4
  139420. .ft P
  139421. .fi
  139422. .UNINDENT
  139423. .UNINDENT
  139424. .SS Topology
  139425. .sp
  139426. A Master node (a node which is itself not a Syndic to another higher level
  139427. Master node) must run a \fBsalt\-master\fP daemon and optionally a \fBsalt\-minion\fP
  139428. daemon.
  139429. .sp
  139430. A Syndic node must run \fBsalt\-syndic\fP and \fBsalt\-master\fP daemons and
  139431. optionally a \fBsalt\-minion\fP daemon.
  139432. .sp
  139433. A Minion node must run a \fBsalt\-minion\fP daemon.
  139434. .sp
  139435. When a \fBsalt\-master\fP daemon issues a command, it will be received by the
  139436. Syndic and Minion nodes directly connected to it. A Minion node will process
  139437. the command in the way it ordinarily would. On a Syndic node, the
  139438. \fBsalt\-syndic\fP daemon will relay the command to the \fBsalt\-master\fP daemon
  139439. running on the Syndic node, which then propagates the command to the Minions
  139440. and Syndics connected to it.
  139441. .sp
  139442. When events and job return data are generated by \fBsalt\-minion\fP daemons, they
  139443. are aggregated by the \fBsalt\-master\fP daemon they are connected to, which
  139444. \fBsalt\-master\fP daemon then relays the data back through its \fBsalt\-syndic\fP
  139445. daemon until the data reaches the Master or Syndic node that issued the command.
  139446. .SS Syndic wait
  139447. .sp
  139448. \fBsyndic_wait\fP is a master configuration file setting that specifies the number of
  139449. seconds the Salt client should wait for additional syndics to check in with their
  139450. lists of expected minions before giving up. This value defaults to \fB5\fP seconds.
  139451. .sp
  139452. The \fBsyndic_wait\fP setting is necessary because the higher\-level master does not
  139453. have a way of knowing which minions are below the syndics. The higher\-level master
  139454. has its own list of expected minions and the masters below them have their own lists
  139455. as well, so the Salt client does not how long to wait for all returns. The
  139456. \fBsyndic_wait\fP option allows time for all minions to return to the Salt client.
  139457. .sp
  139458. \fBNOTE:\fP
  139459. .INDENT 0.0
  139460. .INDENT 3.5
  139461. To reduce the amount of time the CLI waits for Minions to respond, install
  139462. a Minion on the Syndic or tune the value of the \fBsyndic_wait\fP
  139463. configuration.
  139464. .UNINDENT
  139465. .UNINDENT
  139466. .sp
  139467. While it is possible to run a Syndic without a Minion installed on the same
  139468. system, it is recommended, for a faster CLI response time, to do so. Without a
  139469. Minion installed on the Syndic node, the timeout value of \fBsyndic_wait\fP
  139470. increases significantly \- about three\-fold. With a Minion installed on the
  139471. Syndic, the CLI timeout resides at the value defined in \fBsyndic_wait\fP\&.
  139472. .sp
  139473. \fBNOTE:\fP
  139474. .INDENT 0.0
  139475. .INDENT 3.5
  139476. If you have a very large infrastructure or many layers of Syndics, you may
  139477. find that the CLI doesn\(aqt wait long enough for the Syndics to return their
  139478. events. If you think this is the case, you can set the
  139479. \fBsyndic_wait\fP value in the Master configs on the Master or
  139480. Syndic nodes from which commands are executed. The default value is \fB5\fP,
  139481. and should work for the majority of deployments.
  139482. .UNINDENT
  139483. .UNINDENT
  139484. .sp
  139485. In order for a Master or Syndic node to return information from Minions that
  139486. are below their Syndics, the CLI requires a short wait time in order to allow
  139487. the Syndics to gather responses from their Minions. This value is defined in
  139488. the \fBsyndic_wait\fP config option and has a default of five seconds.
  139489. .SS Syndic config options
  139490. .sp
  139491. These are the options that can be used to configure a Syndic node. Note that
  139492. other than \fBid\fP, Syndic config options are placed in the Master config on the
  139493. Syndic node.
  139494. .INDENT 0.0
  139495. .INDENT 3.5
  139496. .INDENT 0.0
  139497. .IP \(bu 2
  139498. \fBid\fP: Syndic id (shared by the \fBsalt\-syndic\fP daemon with a
  139499. potential \fBsalt\-minion\fP daemon on the same system)
  139500. .IP \(bu 2
  139501. \fBsyndic_master\fP: Master node IP address or hostname
  139502. .IP \(bu 2
  139503. \fBsyndic_master_port\fP: Master node ret_port
  139504. .IP \(bu 2
  139505. \fBsyndic_log_file\fP: path to the logfile (absolute or not)
  139506. .IP \(bu 2
  139507. \fBsyndic_pidfile\fP: path to the pidfile (absolute or not)
  139508. .IP \(bu 2
  139509. \fBsyndic_wait\fP: time in seconds to wait on returns from this syndic
  139510. .UNINDENT
  139511. .UNINDENT
  139512. .UNINDENT
  139513. .SS Minion Data Cache
  139514. .sp
  139515. Beginning with Salt 2016.11.0, the Pluggable Minion Data Cache
  139516. was introduced. The minion data cache contains the Salt Mine data, minion grains, and minion
  139517. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  139518. module, but other external data stores can be used instead.
  139519. .sp
  139520. Using a pluggable minion cache modules allows for the data stored on a Salt Master about
  139521. Salt Minions to be replicated on other Salt Masters the Minion is connected to. Please see
  139522. the Minion Data Cache documentation for more information and configuration
  139523. examples.
  139524. .SH MINION DATA CACHE
  139525. .sp
  139526. New in version 2016.11.0.
  139527. .sp
  139528. The Minion data cache contains the Salt Mine data, minion grains and minion
  139529. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  139530. module to save the data in a \fBmsgpack\fP file on the Salt Master.
  139531. .SS Pluggable Data Cache
  139532. .sp
  139533. While the default Minion data cache is the \fBlocalfs\fP cache, other external
  139534. data stores can also be used to store this data such as the \fBconsul\fP module.
  139535. To configure a Salt Master to use a different data store, the \fBcache\fP
  139536. setting needs to be established:
  139537. .INDENT 0.0
  139538. .INDENT 3.5
  139539. .sp
  139540. .nf
  139541. .ft C
  139542. cache: consul
  139543. .ft P
  139544. .fi
  139545. .UNINDENT
  139546. .UNINDENT
  139547. .sp
  139548. The pluggable data cache streamlines using various Salt topologies such as a
  139549. Multi\-Master or Salt Syndics configuration
  139550. by allowing the data stored on the Salt Master about a Salt Minion to be available to
  139551. other Salt Syndics or Salt Masters that a Salt Minion is connected to.
  139552. .sp
  139553. Additional minion data cache modules can be easily created by modeling the custom data
  139554. store after one of the existing cache modules.
  139555. .sp
  139556. See cache modules for a current list.
  139557. .SS Configuring the Minion Data Cache
  139558. .sp
  139559. The default \fBlocalfs\fP Minion data cache module doesn\(aqt require any
  139560. configuration. External data cache modules with external data stores such as
  139561. Consul require a configuration setting in the master config.
  139562. .sp
  139563. Here\(aqs an example config for Consul:
  139564. .INDENT 0.0
  139565. .INDENT 3.5
  139566. .sp
  139567. .nf
  139568. .ft C
  139569. consul.host: 127.0.0.1
  139570. consul.port: 8500
  139571. consul.token: None
  139572. consul.scheme: http
  139573. consul.consistency: default
  139574. consul.dc: dc1
  139575. consul.verify: True
  139576. cache: consul
  139577. .ft P
  139578. .fi
  139579. .UNINDENT
  139580. .UNINDENT
  139581. .SH SLOTS
  139582. .sp
  139583. New in version 2018.3.0.
  139584. .sp
  139585. Changed in version 3000.
  139586. .sp
  139587. \fBNOTE:\fP
  139588. .INDENT 0.0
  139589. .INDENT 3.5
  139590. This functionality is under development and could be changed in the
  139591. future releases
  139592. .UNINDENT
  139593. .UNINDENT
  139594. .sp
  139595. Many times it is useful to store the results of a command during the course of
  139596. an execution. Salt Slots are designed to allow you to store this information and
  139597. use it later during the highstate or other job
  139598. execution.
  139599. .sp
  139600. Slots extend the state syntax and allows you to do things right before the
  139601. state function is executed. So you can make a decision in the last moment right
  139602. before a state is executed.
  139603. .SS Execution functions
  139604. .sp
  139605. \fBNOTE:\fP
  139606. .INDENT 0.0
  139607. .INDENT 3.5
  139608. Using execution modules return data as a state values is a first step
  139609. of Slots development. Other functionality is under development.
  139610. .UNINDENT
  139611. .UNINDENT
  139612. .sp
  139613. Slots allow you to use the return from a remote\-execution function as an
  139614. argument value in states.
  139615. .sp
  139616. Slot syntax looks close to the simple python function call.
  139617. .INDENT 0.0
  139618. .INDENT 3.5
  139619. .sp
  139620. .nf
  139621. .ft C
  139622. __slot__:salt:<module>.<function>(<args>, ..., <kwargs...>, ...)
  139623. .ft P
  139624. .fi
  139625. .UNINDENT
  139626. .UNINDENT
  139627. .sp
  139628. For the 3000 release, this syntax has been updated to support parsing functions
  139629. which return dictionaries and for appending text to the slot result.
  139630. .INDENT 0.0
  139631. .INDENT 3.5
  139632. .sp
  139633. .nf
  139634. .ft C
  139635. __slot__:salt:<module>.<function>(<args>..., <kwargs...>, ...).dictionary ~ append
  139636. .ft P
  139637. .fi
  139638. .UNINDENT
  139639. .UNINDENT
  139640. .sp
  139641. There are some specifics in the syntax coming from the execution functions
  139642. nature and a desire to simplify the user experience. First one is that you
  139643. don\(aqt need to quote the strings passed to the slots functions. The second one
  139644. is that all arguments handled as strings.
  139645. .sp
  139646. Here is a simple example:
  139647. .INDENT 0.0
  139648. .INDENT 3.5
  139649. .sp
  139650. .nf
  139651. .ft C
  139652. copy\-some\-file:
  139653. file.copy:
  139654. \- name: __slot__:salt:test.echo(text=/tmp/some_file)
  139655. \- source: __slot__:salt:test.echo(/etc/hosts)
  139656. .ft P
  139657. .fi
  139658. .UNINDENT
  139659. .UNINDENT
  139660. .sp
  139661. This will execute the \fBtest.echo\fP execution
  139662. functions right before calling the state. The functions in the example will
  139663. return \fI/tmp/some_file\fP and \fI/etc/hosts\fP strings that will be used as a target
  139664. and source arguments in the state function \fIfile.copy\fP\&.
  139665. .sp
  139666. Here is an example of result parsing and appending:
  139667. .INDENT 0.0
  139668. .INDENT 3.5
  139669. .sp
  139670. .nf
  139671. .ft C
  139672. file\-in\-user\-home:
  139673. file.copy:
  139674. \- name: __slot__:salt:user.info(someuser).home ~ /subdirectory
  139675. \- source: salt://somefile
  139676. .ft P
  139677. .fi
  139678. .UNINDENT
  139679. .UNINDENT
  139680. .SH WINDOWS
  139681. .sp
  139682. This section contains details on the Windows Package Manager, and specific information you need
  139683. to use Salt on Windows.
  139684. .SS Windows Software Repository
  139685. .sp
  139686. \fBNOTE:\fP
  139687. .INDENT 0.0
  139688. .INDENT 3.5
  139689. In 2015.8.0 and later, the Windows Software Repository cache is compiled on
  139690. the Salt Minion, which enables pillar, grains and other things to be
  139691. available during compilation time. To support this new functionality,
  139692. a next\-generation (ng) package repository was created. See the
  139693. \fI\%Changes in Version 2015.8.0\fP for details.
  139694. .UNINDENT
  139695. .UNINDENT
  139696. .sp
  139697. The SaltStack Windows Software Repository provides a package manager and software
  139698. repository similar to what is provided by yum and apt on Linux. This repository
  139699. enables the installation of software using the installers on remote Windows
  139700. systems.
  139701. .sp
  139702. In many senses, the operation is similar to that of
  139703. the other package managers salt is aware of:
  139704. .INDENT 0.0
  139705. .IP \(bu 2
  139706. the \fBpkg.installed\fP and similar states work on Windows.
  139707. .IP \(bu 2
  139708. the \fBpkg.install\fP and similar module functions work on Windows.
  139709. .UNINDENT
  139710. .sp
  139711. High level differences to yum and apt are:
  139712. .INDENT 0.0
  139713. .IP \(bu 2
  139714. The repository metadata (SLS files) is hosted through either salt or
  139715. git.
  139716. .IP \(bu 2
  139717. Packages can be downloaded from within the salt repository, a git
  139718. repository or from HTTP(S) or FTP URLs.
  139719. .IP \(bu 2
  139720. No dependencies are managed. Dependencies between packages needs to
  139721. be managed manually.
  139722. .UNINDENT
  139723. .sp
  139724. Requirements:
  139725. .INDENT 0.0
  139726. .IP \(bu 2
  139727. GitPython 0.3 or later, or pygit2 0.20.3 with libgit 0.20.0 or later installed
  139728. on your Salt master. The Windows package definitions are downloaded
  139729. and updated using Git.
  139730. .UNINDENT
  139731. .SS Configuration
  139732. .SS Populate the Repository
  139733. .sp
  139734. The SLS files used to install Windows packages are not distributed by default with
  139735. Salt. Run the following command to initialize the repository on your Salt
  139736. master:
  139737. .INDENT 0.0
  139738. .INDENT 3.5
  139739. .sp
  139740. .nf
  139741. .ft C
  139742. salt\-run winrepo.update_git_repos
  139743. .ft P
  139744. .fi
  139745. .UNINDENT
  139746. .UNINDENT
  139747. .SS Sync Repo to Windows Minions
  139748. .sp
  139749. Run \fBpkg.refresh_db\fP on each of your Windows minions to synchronize
  139750. the package repository.
  139751. .INDENT 0.0
  139752. .INDENT 3.5
  139753. .sp
  139754. .nf
  139755. .ft C
  139756. salt \-G \(aqos:windows\(aq pkg.refresh_db
  139757. .ft P
  139758. .fi
  139759. .UNINDENT
  139760. .UNINDENT
  139761. .sp
  139762. \fBNOTE:\fP
  139763. .INDENT 0.0
  139764. .INDENT 3.5
  139765. Use \fBpkg.refresh_db\fP from 2016.11 when developing new Windows package
  139766. definitions to check for errors in the definitions against one or more
  139767. Windows minions.
  139768. .UNINDENT
  139769. .UNINDENT
  139770. .SS Install Windows Software
  139771. .sp
  139772. After completing the configuration steps, you are ready to manage software on your
  139773. Windows minions.
  139774. .SS Show Installed Packages
  139775. .INDENT 0.0
  139776. .INDENT 3.5
  139777. .sp
  139778. .nf
  139779. .ft C
  139780. salt \-G \(aqos:windows\(aq pkg.list_pkgs
  139781. .ft P
  139782. .fi
  139783. .UNINDENT
  139784. .UNINDENT
  139785. .SS Install a Package
  139786. .sp
  139787. You can query the available version of a package using the Salt pkg module.
  139788. .INDENT 0.0
  139789. .INDENT 3.5
  139790. .sp
  139791. .nf
  139792. .ft C
  139793. salt winminion pkg.list_available firefox
  139794. winminion:
  139795. \- 15.0.1
  139796. \- 16.0.2
  139797. \- 17.0.1
  139798. .ft P
  139799. .fi
  139800. .UNINDENT
  139801. .UNINDENT
  139802. .sp
  139803. As you can see, there are three versions of Firefox available for installation.
  139804. You can refer a software package by its \fBname\fP or its \fBfull_name\fP surround
  139805. by single quotes.
  139806. .INDENT 0.0
  139807. .INDENT 3.5
  139808. .sp
  139809. .nf
  139810. .ft C
  139811. salt winminion pkg.install \(aqfirefox\(aq
  139812. .ft P
  139813. .fi
  139814. .UNINDENT
  139815. .UNINDENT
  139816. .sp
  139817. The above line will install the latest version of Firefox.
  139818. .INDENT 0.0
  139819. .INDENT 3.5
  139820. .sp
  139821. .nf
  139822. .ft C
  139823. salt winminion pkg.install \(aqfirefox\(aq version=16.0.2
  139824. .ft P
  139825. .fi
  139826. .UNINDENT
  139827. .UNINDENT
  139828. .sp
  139829. The above line will install version 16.0.2 of Firefox.
  139830. .sp
  139831. If a different version of the package is already installed it will be replaced
  139832. with the version in the winrepo (only if the package itself supports live
  139833. updating).
  139834. .sp
  139835. You can also specify the full name:
  139836. .INDENT 0.0
  139837. .INDENT 3.5
  139838. .sp
  139839. .nf
  139840. .ft C
  139841. salt winminion pkg.install \(aqMozilla Firefox 17.0.1 (x86 en\-US)\(aq
  139842. .ft P
  139843. .fi
  139844. .UNINDENT
  139845. .UNINDENT
  139846. .SS Uninstall Windows Software
  139847. .sp
  139848. Uninstall software using the pkg module:
  139849. .INDENT 0.0
  139850. .INDENT 3.5
  139851. .sp
  139852. .nf
  139853. .ft C
  139854. salt winminion pkg.remove firefox
  139855. salt winminion pkg.purge firefox
  139856. .ft P
  139857. .fi
  139858. .UNINDENT
  139859. .UNINDENT
  139860. .sp
  139861. \fBNOTE:\fP
  139862. .INDENT 0.0
  139863. .INDENT 3.5
  139864. \fBpkg.purge\fP just executes \fBpkg.remove\fP on Windows. At some point in the
  139865. future \fBpkg.purge\fP may direct the installer to remove all configs and
  139866. settings for software packages that support that option.
  139867. .UNINDENT
  139868. .UNINDENT
  139869. .SS Repository Location
  139870. .sp
  139871. Salt maintains a repository of SLS files to install a large number of Windows
  139872. packages:
  139873. .INDENT 0.0
  139874. .IP \(bu 2
  139875. 2015.8.0 and later minions: \fI\%https://github.com/saltstack/salt\-winrepo\-ng\fP
  139876. .IP \(bu 2
  139877. Earlier releases: \fI\%https://github.com/saltstack/salt\-winrepo\fP
  139878. .UNINDENT
  139879. .sp
  139880. By default, these repositories are mirrored to \fB/srv/salt/win/repo\-ng\fP
  139881. and \fB/srv/salt/win/repo\fP\&.
  139882. .sp
  139883. This location can be changed in the master config file by setting the
  139884. \fBwinrepo_dir_ng\fP and \fBwinrepo_dir\fP options.
  139885. .SS Maintaining Windows Repo Definitions in Git Repositories
  139886. .sp
  139887. Windows software package definitions can be hosted in one or more Git
  139888. repositories. The default repositories are hosted on GitHub by SaltStack. These
  139889. include software definition files for various open source software projects.
  139890. These software definition files are \fB\&.sls\fP files. There are two default
  139891. repositories: \fBsalt\-winrepo\fP and \fBsalt\-winrepo\-ng\fP\&. \fBsalt\-winrepo\fP
  139892. contains software definition files for older minions (older than 2015.8.0).
  139893. \fBsalt\-winrepo\-ng\fP is for newer minions (2015.8.0 and newer).
  139894. .sp
  139895. Each software definition file contains all the information salt needs to install
  139896. that software on a minion including the HTTP or FTP locations of the installer
  139897. files, required command\-line switches for silent install, etc. Anyone is welcome
  139898. to send a pull request to this repo to add new package definitions. The repos
  139899. can be browsed here:
  139900. \fI\%salt\-winrepo\fP
  139901. \fI\%salt\-winrepo\-ng\fP
  139902. .sp
  139903. \fBNOTE:\fP
  139904. .INDENT 0.0
  139905. .INDENT 3.5
  139906. The newer software definition files are run through the salt\(aqs parser which
  139907. allows for the use of jinja.
  139908. .UNINDENT
  139909. .UNINDENT
  139910. .sp
  139911. Configure which git repositories the master can search for package definitions
  139912. by modifying or extending the \fBwinrepo_remotes\fP and
  139913. \fBwinrepo_remotes_ng\fP options.
  139914. .sp
  139915. \fBIMPORTANT:\fP
  139916. .INDENT 0.0
  139917. .INDENT 3.5
  139918. \fBwinrepo_remotes\fP was called \fBwin_gitrepos\fP in Salt versions earlier
  139919. than 2015.8.0
  139920. .UNINDENT
  139921. .UNINDENT
  139922. .sp
  139923. Package definitions are pulled down from the online git repository by running the
  139924. \fBwinrepo.update_git_repos\fP runner.
  139925. This command is run on the master:
  139926. .INDENT 0.0
  139927. .INDENT 3.5
  139928. .sp
  139929. .nf
  139930. .ft C
  139931. salt\-run winrepo.update_git_repos
  139932. .ft P
  139933. .fi
  139934. .UNINDENT
  139935. .UNINDENT
  139936. .sp
  139937. This will pull down the software definition files for older minions
  139938. (\fBsalt\-winrepo\fP) and new minions (\fBsalt\-winrepo\-ng\fP). They are stored in the
  139939. \fBfile_roots\fP under \fBwin/repo/salt\-winrepo\fP and
  139940. \fBwin/repo\-ng/salt\-winrepo\-ng\fP respectively.
  139941. .sp
  139942. \fBIMPORTANT:\fP
  139943. .INDENT 0.0
  139944. .INDENT 3.5
  139945. If you have customized software definition files that aren\(aqt maintained in a
  139946. repository, those should be stored under \fBwin/repo\fP for older minions and
  139947. \fBwin/repo\-ng\fP for newer minions. The reason for this is that the contents
  139948. of \fBwin/repo/salt\-winrepo\fP and \fBwin/repo\-ng/salt\-winrepo\-ng\fP are wiped
  139949. out every time you run a \fBwinrepo.update_git_repos\fP\&.
  139950. .sp
  139951. Additionally, when you run \fBwinrepo.genrepo\fP and \fBpkg.refresh_db\fP the
  139952. entire contents under \fBwin/repo\fP and \fBwin/repo\-ng\fP, to include all
  139953. subdirectories, are used to create the meta database file.
  139954. .UNINDENT
  139955. .UNINDENT
  139956. .sp
  139957. The next step (if you have older minions) is to create the meta database file for the
  139958. repo (\fBwinrepo.p\fP). This is done by running the
  139959. \fBwinrepo.genrepo\fP runner. This is also run
  139960. on the master:
  139961. .INDENT 0.0
  139962. .INDENT 3.5
  139963. .sp
  139964. .nf
  139965. .ft C
  139966. salt\-run winrepo.genrepo
  139967. .ft P
  139968. .fi
  139969. .UNINDENT
  139970. .UNINDENT
  139971. .sp
  139972. \fBNOTE:\fP
  139973. .INDENT 0.0
  139974. .INDENT 3.5
  139975. If you have only 2015.8.0 and newer minions, you no longer need to run
  139976. \fBsalt\-run winrepo.genrepo\fP on the master.
  139977. .UNINDENT
  139978. .UNINDENT
  139979. .sp
  139980. Finally, you need to refresh the minion database by running the
  139981. \fBpkg.refresh_db\fP command. This is run
  139982. on the master as well:
  139983. .INDENT 0.0
  139984. .INDENT 3.5
  139985. .sp
  139986. .nf
  139987. .ft C
  139988. salt \(aq*\(aq pkg.refresh_db
  139989. .ft P
  139990. .fi
  139991. .UNINDENT
  139992. .UNINDENT
  139993. .sp
  139994. On older minions (older than 2015.8.0) this will copy the winrepo.p file down to
  139995. the minion. On newer minions (2015.8.0 and newer) this will copy all the
  139996. software definition files (.sls) down to the minion and then create the meta
  139997. database file (\fBwinrepo.p\fP) locally. The reason this is done locally is because the
  139998. jinja needs to be parsed using the minion\(aqs grains.
  139999. .sp
  140000. \fBIMPORTANT:\fP
  140001. .INDENT 0.0
  140002. .INDENT 3.5
  140003. Every time you modify the software definition files on the master, either by
  140004. running \fBsalt\-run winrepo.update_git_repos\fP, modifying existing files, or
  140005. by creating your own, you need to refresh the database on your minions. For
  140006. older minions, that means running \fBsalt\-run winrepo.genrepo\fP and then
  140007. \fBsalt \(aq*\(aq pkg.refresh_db\fP\&. For newer minions (2015.8.0 and newer) it is
  140008. just \fBsalt \(aq*\(aq pkg.refresh_db\fP\&.
  140009. .UNINDENT
  140010. .UNINDENT
  140011. .sp
  140012. \fBNOTE:\fP
  140013. .INDENT 0.0
  140014. .INDENT 3.5
  140015. If the \fBwinrepo.genrepo\fP or the \fBpkg.refresh_db\fP fails, it is likely a
  140016. problem with the jinja in one of the software definition files. This will
  140017. cause the operations to stop. You\(aqll need to fix the syntax in order for the
  140018. meta database file to be created successfully.
  140019. .UNINDENT
  140020. .UNINDENT
  140021. .sp
  140022. To disable one of the repos, set it to an empty list \fB[]\fP in the master
  140023. config. For example, to disable \fBwinrepo_remotes\fP set the following
  140024. in the master config file:
  140025. .INDENT 0.0
  140026. .INDENT 3.5
  140027. .sp
  140028. .nf
  140029. .ft C
  140030. winrepo_remotes: []
  140031. .ft P
  140032. .fi
  140033. .UNINDENT
  140034. .UNINDENT
  140035. .SS Creating a Package Definition SLS File
  140036. .sp
  140037. The package definition file is a YAML file that contains all the information
  140038. needed to install a piece of software using salt. It defines information about
  140039. the package to include version, full name, flags required for the installer and
  140040. uninstaller, whether or not to use the Windows task scheduler to install the
  140041. package, where to find the installation package, etc.
  140042. .sp
  140043. Take a look at this example for Firefox:
  140044. .INDENT 0.0
  140045. .INDENT 3.5
  140046. .sp
  140047. .nf
  140048. .ft C
  140049. firefox:
  140050. \(aq17.0.1\(aq:
  140051. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 17.0.1.exe\(aq
  140052. full_name: Mozilla Firefox 17.0.1 (x86 en\-US)
  140053. locale: en_US
  140054. reboot: False
  140055. install_flags: \(aq\-ms\(aq
  140056. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  140057. uninstall_flags: \(aq/S\(aq
  140058. \(aq16.0.2\(aq:
  140059. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 16.0.2.exe\(aq
  140060. full_name: Mozilla Firefox 16.0.2 (x86 en\-US)
  140061. locale: en_US
  140062. reboot: False
  140063. install_flags: \(aq\-ms\(aq
  140064. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  140065. uninstall_flags: \(aq/S\(aq
  140066. \(aq15.0.1\(aq:
  140067. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 15.0.1.exe\(aq
  140068. full_name: Mozilla Firefox 15.0.1 (x86 en\-US)
  140069. locale: en_US
  140070. reboot: False
  140071. install_flags: \(aq\-ms\(aq
  140072. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  140073. uninstall_flags: \(aq/S\(aq
  140074. .ft P
  140075. .fi
  140076. .UNINDENT
  140077. .UNINDENT
  140078. .sp
  140079. Each software definition file begins with a package name for the software. As in
  140080. the example above \fBfirefox\fP\&. The next line is indented two spaces and contains
  140081. the version to be defined. As in the example above, a software definition file
  140082. can define multiple versions for the same piece of software. The lines following
  140083. the version are indented two more spaces and contain all the information needed
  140084. to install that package.
  140085. .sp
  140086. \fBWARNING:\fP
  140087. .INDENT 0.0
  140088. .INDENT 3.5
  140089. The package name and the \fBfull_name\fP must be unique to all other packages
  140090. in the software repository.
  140091. .UNINDENT
  140092. .UNINDENT
  140093. .sp
  140094. The version line is the version for the package to be installed. It is used when
  140095. you need to install a specific version of a piece of software.
  140096. .sp
  140097. \fBWARNING:\fP
  140098. .INDENT 0.0
  140099. .INDENT 3.5
  140100. The version must be enclosed in quotes, otherwise the YAML parser will
  140101. remove trailing zeros.
  140102. .UNINDENT
  140103. .UNINDENT
  140104. .sp
  140105. \fBNOTE:\fP
  140106. .INDENT 0.0
  140107. .INDENT 3.5
  140108. There are unique situations where previous versions are unavailable. Take
  140109. Google Chrome for example. There is only one URL provided for a standalone
  140110. installation of Google Chrome.
  140111. .sp
  140112. (\fI\%https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\fP)
  140113. .sp
  140114. When a new version is released, the URL just points to the new version. To
  140115. handle situations such as these, set the version to \fIlatest\fP\&. Salt will
  140116. install the version of Chrome at the URL and report that version. Here\(aqs an
  140117. example:
  140118. .UNINDENT
  140119. .UNINDENT
  140120. .INDENT 0.0
  140121. .INDENT 3.5
  140122. .sp
  140123. .nf
  140124. .ft C
  140125. chrome:
  140126. latest:
  140127. full_name: \(aqGoogle Chrome\(aq
  140128. installer: \(aqhttps://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\(aq
  140129. install_flags: \(aq/qn /norestart\(aq
  140130. uninstaller: \(aqhttps://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\(aq
  140131. uninstall_flags: \(aq/qn /norestart\(aq
  140132. msiexec: True
  140133. locale: en_US
  140134. reboot: False
  140135. .ft P
  140136. .fi
  140137. .UNINDENT
  140138. .UNINDENT
  140139. .sp
  140140. Available parameters are as follows:
  140141. .INDENT 0.0
  140142. .TP
  140143. .B param str full_name
  140144. The Full Name for the software as shown in "Programs and Features" in the
  140145. control panel. You can also get this information by installing the package
  140146. manually and then running \fBpkg.list_pkgs\fP\&. Here\(aqs an example of the output
  140147. from \fBpkg.list_pkgs\fP:
  140148. .INDENT 7.0
  140149. .INDENT 3.5
  140150. .sp
  140151. .nf
  140152. .ft C
  140153. salt \(aqtest\-2008\(aq pkg.list_pkgs
  140154. test\-2008
  140155. \-\-\-\-\-\-\-\-\-\-
  140156. 7\-Zip 9.20 (x64 edition):
  140157. 9.20.00.0
  140158. Microsoft .NET Framework 4 Client Profile:
  140159. 4.0.30319,4.0.30319
  140160. Microsoft .NET Framework 4 Extended:
  140161. 4.0.30319,4.0.30319
  140162. Microsoft Visual C++ 2008 Redistributable \- x64 9.0.21022:
  140163. 9.0.21022
  140164. Mozilla Firefox 17.0.1 (x86 en\-US):
  140165. 17.0.1
  140166. Mozilla Maintenance Service:
  140167. 17.0.1
  140168. NSClient++ (x64):
  140169. 0.3.8.76
  140170. Notepad++:
  140171. 6.4.2
  140172. Salt Minion 0.16.0:
  140173. 0.16.0
  140174. .ft P
  140175. .fi
  140176. .UNINDENT
  140177. .UNINDENT
  140178. .sp
  140179. Notice the Full Name for Firefox: \fBMozilla Firefox 17.0.0 (x86 en\-US)\fP\&.
  140180. That\(aqs exactly what\(aqs in the \fBfull_name\fP parameter in the software
  140181. definition file.
  140182. .sp
  140183. If any of the software installed on the machine matches one of the software
  140184. definition files in the repository, the full_name will be automatically
  140185. renamed to the package name. The example below shows the \fBpkg.list_pkgs\fP
  140186. for a machine that already has Mozilla Firefox 17.0.1 installed.
  140187. .INDENT 7.0
  140188. .INDENT 3.5
  140189. .sp
  140190. .nf
  140191. .ft C
  140192. test\-2008:
  140193. \-\-\-\-\-\-\-\-\-\-
  140194. 7zip:
  140195. 9.20.00.0
  140196. Microsoft .NET Framework 4 Client Profile:
  140197. 4.0.30319,4.0.30319
  140198. Microsoft .NET Framework 4 Extended:
  140199. 4.0.30319,4.0.30319
  140200. Microsoft Visual C++ 2008 Redistributable \- x64 9.0.21022:
  140201. 9.0.21022
  140202. Mozilla Maintenance Service:
  140203. 17.0.1
  140204. Notepad++:
  140205. 6.4.2
  140206. Salt Minion 0.16.0:
  140207. 0.16.0
  140208. firefox:
  140209. 17.0.1
  140210. nsclient:
  140211. 0.3.9.328
  140212. .ft P
  140213. .fi
  140214. .UNINDENT
  140215. .UNINDENT
  140216. .sp
  140217. \fBIMPORTANT:\fP
  140218. .INDENT 7.0
  140219. .INDENT 3.5
  140220. The version number and \fBfull_name\fP need to match the output from
  140221. \fBpkg.list_pkgs\fP so that the status can be verified when running a
  140222. highstate.
  140223. .UNINDENT
  140224. .UNINDENT
  140225. .sp
  140226. \fBNOTE:\fP
  140227. .INDENT 7.0
  140228. .INDENT 3.5
  140229. It is still possible to successfully install packages using
  140230. \fBpkg.install\fP, even if the \fBfull_name\fP or the version number don\(aqt
  140231. match. However, this can make troubleshooting issues difficult, so be
  140232. careful.
  140233. .UNINDENT
  140234. .UNINDENT
  140235. .sp
  140236. \fBTIP:\fP
  140237. .INDENT 7.0
  140238. .INDENT 3.5
  140239. To force salt to display the full name when there\(aqs already an existing
  140240. package definition file on the system, you can pass a bogus \fBsaltenv\fP
  140241. parameter to the command like so: \fBpkg.list_pkgs saltenv=NotARealEnv\fP
  140242. .UNINDENT
  140243. .UNINDENT
  140244. .TP
  140245. .B param str installer
  140246. The path to the \fB\&.exe\fP or \fB\&.msi\fP to use to install the package. This can
  140247. be a path or a URL. If it is a URL or a salt path (\fBsalt://\fP), the package
  140248. will be cached locally and then executed. If it is a path to a file on disk
  140249. or a file share, it will be executed directly.
  140250. .sp
  140251. \fBNOTE:\fP
  140252. .INDENT 7.0
  140253. .INDENT 3.5
  140254. If storing software in the same location as the winrepo it is best
  140255. practice to place each installer in its own directory rather than the
  140256. root of winrepo. Then you can place your package definition file in the
  140257. same directory. It is best practice to name the file \fBinit.sls\fP\&. This
  140258. will be picked up by \fBpkg.refresh_db\fP and processed properly.
  140259. .UNINDENT
  140260. .UNINDENT
  140261. .TP
  140262. .B param str install_flags
  140263. Any flags that need to be passed to the installer to make it perform a
  140264. silent install. These can often be found by adding \fB/?\fP or \fB/h\fP when
  140265. running the installer from the command\-line. A great resource for finding
  140266. these silent install flags can be found on the WPKG project\(aqs \fI\%wiki\fP:
  140267. .sp
  140268. \fBWARNING:\fP
  140269. .INDENT 7.0
  140270. .INDENT 3.5
  140271. Salt will not return if the installer is waiting for user input so it is
  140272. imperative that the software package being installed has the ability to
  140273. install silently.
  140274. .UNINDENT
  140275. .UNINDENT
  140276. .TP
  140277. .B param str uninstaller
  140278. The path to the program used to uninstall this software. This can be the
  140279. path to the same \fIexe\fP or \fImsi\fP used to install the software. It can also be
  140280. a GUID. You can find this value in the registry under the following keys:
  140281. .INDENT 7.0
  140282. .INDENT 3.5
  140283. .INDENT 0.0
  140284. .IP \(bu 2
  140285. Software\eMicrosoft\eWindows\eCurrentVersion\eUninstall
  140286. .IP \(bu 2
  140287. Software\eWOW6432Node\eMicrosoft\eWindows\eCurrentVersion\eUninstall
  140288. .UNINDENT
  140289. .UNINDENT
  140290. .UNINDENT
  140291. .TP
  140292. .B param str uninstall_flags
  140293. Any flags that need to be passed to the uninstaller to make it perform a
  140294. silent uninstall. These can often be found by adding \fB/?\fP or \fB/h\fP when
  140295. running the uninstaller from the command\-line. A great resource for finding
  140296. these silent install flags can be found on the WPKG project\(aqs \fI\%wiki\fP:
  140297. .sp
  140298. \fBWARNING:\fP
  140299. .INDENT 7.0
  140300. .INDENT 3.5
  140301. Salt will not return if the uninstaller is waiting for user input so it
  140302. is imperative that the software package being uninstalled has the
  140303. ability to uninstall silently.
  140304. .UNINDENT
  140305. .UNINDENT
  140306. .sp
  140307. Here are some examples of installer and uninstaller settings:
  140308. .INDENT 7.0
  140309. .INDENT 3.5
  140310. .sp
  140311. .nf
  140312. .ft C
  140313. 7zip:
  140314. \(aq9.20.00.0\(aq:
  140315. installer: salt://win/repo/7zip/7z920\-x64.msi
  140316. full_name: 7\-Zip 9.20 (x64 edition)
  140317. reboot: False
  140318. install_flags: \(aq/qn /norestart\(aq
  140319. msiexec: True
  140320. uninstaller: \(aq{23170F69\-40C1\-2702\-0920\-000001000000}\(aq
  140321. uninstall_flags: \(aq/qn /norestart\(aq
  140322. .ft P
  140323. .fi
  140324. .UNINDENT
  140325. .UNINDENT
  140326. .sp
  140327. Alternatively the \fBuninstaller\fP can also simply repeat the URL of an msi
  140328. file:
  140329. .INDENT 7.0
  140330. .INDENT 3.5
  140331. .sp
  140332. .nf
  140333. .ft C
  140334. 7zip:
  140335. \(aq9.20.00.0\(aq:
  140336. installer: salt://win/repo/7zip/7z920\-x64.msi
  140337. full_name: 7\-Zip 9.20 (x64 edition)
  140338. reboot: False
  140339. install_flags: \(aq/qn /norestart\(aq
  140340. msiexec: True
  140341. uninstaller: salt://win/repo/7zip/7z920\-x64.msi
  140342. uninstall_flags: \(aq/qn /norestart\(aq
  140343. .ft P
  140344. .fi
  140345. .UNINDENT
  140346. .UNINDENT
  140347. .TP
  140348. .B param msiexec
  140349. This tells salt to use \fBmsiexec /i\fP to install the package and
  140350. \fBmsiexec /x\fP to uninstall. This is for \fB\&.msi\fP installations. Possible
  140351. options are: True, False or the path to \fBmsiexec.exe\fP on your system
  140352. .INDENT 7.0
  140353. .INDENT 3.5
  140354. .sp
  140355. .nf
  140356. .ft C
  140357. 7zip:
  140358. \(aq9.20.00.0\(aq:
  140359. installer: salt://win/repo/7zip/7z920\-x64.msi
  140360. full_name: 7\-Zip 9.20 (x64 edition)
  140361. reboot: False
  140362. install_flags: \(aq/qn /norestart\(aq
  140363. msiexec: \(aqC:\eWindows\eSystem32\emsiexec.exe\(aq
  140364. uninstaller: salt://win/repo/7zip/7z920\-x64.msi
  140365. uninstall_flags: \(aq/qn /norestart\(aq
  140366. .ft P
  140367. .fi
  140368. .UNINDENT
  140369. .UNINDENT
  140370. .TP
  140371. .B param bool allusers
  140372. This parameter is specific to \fB\&.msi\fP installations. It tells \fBmsiexec\fP
  140373. to install the software for all users. The default is \fBTrue\fP\&.
  140374. .TP
  140375. .B param bool cache_dir
  140376. If \fBTrue\fP and the installer URL begins with \fBsalt://\fP, the entire
  140377. directory where the installer resides will be recursively cached. This is
  140378. useful for installers that depend on other files in the same directory for
  140379. installation.
  140380. .sp
  140381. \fBWARNING:\fP
  140382. .INDENT 7.0
  140383. .INDENT 3.5
  140384. Be aware that all files and directories in the same location as the
  140385. installer file will be copied down to the minion. If you place your
  140386. installer file in the root of winrepo (\fB/srv/salt/win/repo\-ng\fP) and
  140387. \fBcache_dir: True\fP the entire contents of winrepo will be cached to
  140388. the minion. Therefore, it is best practice to place your installer files
  140389. in a subdirectory if they are to be stored in winrepo.
  140390. .UNINDENT
  140391. .UNINDENT
  140392. .TP
  140393. .B param str cache_file
  140394. When the installer URL begins with \fBsalt://\fP, this indicates a single file
  140395. to copy down for use with the installer. It is copied to the same location
  140396. as the installer. Use this over \fBcache_dir\fP if there are many files in the
  140397. directory and you only need a specific file and don\(aqt want to cache
  140398. additional files that may reside in the installer directory.
  140399. .sp
  140400. Here\(aqs an example for a software package that has dependent files:
  140401. .INDENT 7.0
  140402. .INDENT 3.5
  140403. .sp
  140404. .nf
  140405. .ft C
  140406. sqlexpress:
  140407. \(aq12.0.2000.8\(aq:
  140408. installer: \(aqsalt://win/repo/sqlexpress/setup.exe\(aq
  140409. full_name: Microsoft SQL Server 2014 Setup (English)
  140410. reboot: False
  140411. install_flags: \(aq/ACTION=install /IACCEPTSQLSERVERLICENSETERMS /Q\(aq
  140412. cache_dir: True
  140413. .ft P
  140414. .fi
  140415. .UNINDENT
  140416. .UNINDENT
  140417. .TP
  140418. .B param bool use_scheduler
  140419. If \fBTrue\fP, Windows will use the task scheduler to run the installation.
  140420. This is useful for running the Salt installation itself as the installation
  140421. process kills any currently running instances of Salt.
  140422. .TP
  140423. .B param str source_hash
  140424. This tells Salt to compare a hash sum of the installer to the provided hash
  140425. sum before execution. The value can be formatted as
  140426. \fB<hash_algorithm>=<hash_sum>\fP, or it can be a URI to a file containing the
  140427. hash sum.
  140428. .sp
  140429. For a list of supported algorithms, see the \fI\%hashlib documentation\fP\&.
  140430. .sp
  140431. Here\(aqs an example of source_hash usage:
  140432. .INDENT 7.0
  140433. .INDENT 3.5
  140434. .sp
  140435. .nf
  140436. .ft C
  140437. messageanalyzer:
  140438. \(aq4.0.7551.0\(aq:
  140439. full_name: \(aqMicrosoft Message Analyzer\(aq
  140440. installer: \(aqsalt://win/repo/messageanalyzer/MessageAnalyzer64.msi\(aq
  140441. install_flags: \(aq/quiet /norestart\(aq
  140442. uninstaller: \(aq{1CC02C23\-8FCD\-487E\-860C\-311EC0A0C933}\(aq
  140443. uninstall_flags: \(aq/quiet /norestart\(aq
  140444. msiexec: True
  140445. source_hash: \(aqsha1=62875ff451f13b10a8ff988f2943e76a4735d3d4\(aq
  140446. .ft P
  140447. .fi
  140448. .UNINDENT
  140449. .UNINDENT
  140450. .TP
  140451. .B param bool reboot
  140452. Not implemented
  140453. .TP
  140454. .B param str locale
  140455. Not implemented
  140456. .UNINDENT
  140457. .sp
  140458. Examples can be found at \fI\%https://github.com/saltstack/salt\-winrepo\-ng\fP
  140459. .SS Managing Windows Software on a Standalone Windows Minion
  140460. .sp
  140461. The Windows Package Repository functions similar in a standalone environment,
  140462. with a few differences in the configuration.
  140463. .sp
  140464. To replace the winrepo runner that is used on the Salt master, an \fBexecution module\fP exists to provide the same functionality to standalone
  140465. minions. The functions are named the same as the ones in the runner, and are
  140466. used in the same way; the only difference is that \fBsalt\-call\fP is used instead
  140467. of \fBsalt\-run\fP:
  140468. .INDENT 0.0
  140469. .INDENT 3.5
  140470. .sp
  140471. .nf
  140472. .ft C
  140473. salt\-call winrepo.update_git_repos
  140474. salt\-call winrepo.genrepo
  140475. salt\-call pkg.refresh_db
  140476. .ft P
  140477. .fi
  140478. .UNINDENT
  140479. .UNINDENT
  140480. .sp
  140481. After executing the previous commands the repository on the standalone system
  140482. is ready to use.
  140483. .SS Custom Location for Repository SLS Files
  140484. .sp
  140485. If \fBfile_roots\fP has not been modified in the minion
  140486. configuration, then no additional configuration needs to be added to the
  140487. minion configuration. The \fBwinrepo.genrepo\fP function from the \fBwinrepo\fP execution module will by default look for the
  140488. filename specified by \fBwinrepo_cachefile\fP within
  140489. \fBC:\esalt\esrv\esalt\ewin\erepo\fP\&.
  140490. .sp
  140491. If the \fBfile_roots\fP parameter has been modified, then
  140492. \fBwinrepo_dir\fP must be modified to fall within that path, at the
  140493. proper relative path. For example, if the \fBbase\fP environment in
  140494. \fBfile_roots\fP points to \fBD:\efoo\fP, and
  140495. \fBwinrepo_source_dir\fP is \fBsalt://win/repo\fP, then
  140496. \fBwinrepo_dir\fP must be set to \fBD:\efoo\ewin\erepo\fP to ensure that
  140497. \fBwinrepo.genrepo\fP puts the cachefile
  140498. into right location.
  140499. .SS Configuration options for Minions 2015.8.0 and later
  140500. .sp
  140501. On newer minions (2015.8.0 and later), the \fBwinrepo_source_dir\fP
  140502. config parameter (default: \fBsalt://win/repo\-ng\fP) controls where
  140503. \fBpkg.refresh_db\fP looks for the software
  140504. definition files that will be downloaded to the minion and used to generate the
  140505. local database file (\fBwinrepo.p\fP).
  140506. .sp
  140507. Software package definitions are automatically refreshed if stale after
  140508. \fBwinrepo_cache_expire_max\fP\&. Running a highstate normal forces the
  140509. refresh of the package definition and generation of the meta database, unless
  140510. the meta database is younger than \fBwinrepo_cache_expire_max\fP\&.
  140511. Refreshing the package definitions can take some time, these options were
  140512. introduced to allow more control of when it occurs.
  140513. .sp
  140514. It\(aqs important use \fBpkg.refresh_db\fP
  140515. to check for errors and ensure the latest package definition is on any minion
  140516. your testing new definitions on.
  140517. .SS Configuration options for Minions before 2015.8.0
  140518. .sp
  140519. On older minions (before 2015.8.0), the \fBwinrepo_source_dir\fP
  140520. config parameter (default: \fBsalt://win/repo\fP) controls where
  140521. \fBpkg.refresh_db\fP looks for the cachefile
  140522. (default: \fBwinrepo.p\fP). This means that the default location for the winrepo
  140523. cachefile would be \fBsalt://win/repo/winrepo.p\fP\&. Both :conf_minion:
  140524. winrepo_source_dir\(ga and \fBwinrepo_cachefile\fP can be adjusted to
  140525. match the actual location of this file on the Salt fileserver.
  140526. .sp
  140527. If connected to a master, the minion will by default look for the winrepo
  140528. cachefile (the file generated by the \fBwinrepo.genrepo runner\fP) at \fBsalt://win/repo/winrepo.p\fP\&. If the
  140529. cachefile is in a different path on the salt fileserver, then
  140530. \fBwin_repo_cachefile\fP will need to be updated to reflect the proper
  140531. location.
  140532. .SS Changes in Version 2015.8.0
  140533. .sp
  140534. Git repository management for the Windows Software Repository has changed
  140535. in version 2015.8.0, and several master/minion config parameters have been
  140536. renamed to make their naming more consistent with each other.
  140537. .sp
  140538. For a list of the winrepo config options, see here for master config options, and here for configuration options for masterless Windows
  140539. minions.
  140540. .sp
  140541. On the master, the \fBwinrepo.update_git_repos\fP runner has been updated to use either
  140542. \fI\%pygit2\fP or \fI\%GitPython\fP to checkout the git repositories containing repo data. If
  140543. \fI\%pygit2\fP or \fI\%GitPython\fP is installed, existing winrepo git checkouts should be
  140544. removed after upgrading to 2015.8.0, to allow them to be checked out again by
  140545. running \fBwinrepo.update_git_repos\fP\&.
  140546. .sp
  140547. If neither \fI\%GitPython\fP nor \fI\%pygit2\fP are installed, then Salt will fall back to
  140548. the pre\-existing behavior for \fBwinrepo.update_git_repos\fP, and a warning will be logged in the
  140549. master log.
  140550. .sp
  140551. \fBNOTE:\fP
  140552. .INDENT 0.0
  140553. .INDENT 3.5
  140554. Standalone Windows minions do not support the new \fI\%GitPython\fP/\fI\%pygit2\fP
  140555. functionality, and will instead use the \fBgit.latest\fP state to keep repositories up\-to\-date. More
  140556. information on how to use the Windows Software Repo on a standalone minion
  140557. can be found \fI\%here\fP\&.
  140558. .UNINDENT
  140559. .UNINDENT
  140560. .SS Config Parameters Renamed
  140561. .sp
  140562. Many of the legacy winrepo configuration parameters have changed in version 2015.8.0
  140563. to make the naming more consistent. The old parameter names will still work,
  140564. but a warning will be logged indicating that the old name is deprecated.
  140565. .sp
  140566. Below are the parameters which have changed for version 2015.8.0:
  140567. .SS Master Config
  140568. .TS
  140569. center;
  140570. |l|l|.
  140571. _
  140572. T{
  140573. Old Name
  140574. T} T{
  140575. New Name
  140576. T}
  140577. _
  140578. T{
  140579. win_repo
  140580. T} T{
  140581. \fBwinrepo_dir\fP
  140582. T}
  140583. _
  140584. T{
  140585. win_repo_mastercachefile
  140586. T} T{
  140587. \fBwinrepo_cachefile\fP
  140588. T}
  140589. _
  140590. T{
  140591. win_gitrepos
  140592. T} T{
  140593. \fBwinrepo_remotes\fP
  140594. T}
  140595. _
  140596. .TE
  140597. .sp
  140598. \fBNOTE:\fP
  140599. .INDENT 0.0
  140600. .INDENT 3.5
  140601. \fBwinrepo_cachefile\fP is no longer used by 2015.8.0 and later minions, and
  140602. the \fBwinrepo_dir\fP setting is replaced by \fBwinrepo_dir_ng\fP for 2015.8.0
  140603. and later minions.
  140604. .UNINDENT
  140605. .UNINDENT
  140606. .sp
  140607. See here for detailed information on all
  140608. master config options for the Windows Repo.
  140609. .SS Minion Config
  140610. .TS
  140611. center;
  140612. |l|l|.
  140613. _
  140614. T{
  140615. Old Name
  140616. T} T{
  140617. New Name
  140618. T}
  140619. _
  140620. T{
  140621. win_repo
  140622. T} T{
  140623. \fBwinrepo_dir\fP
  140624. T}
  140625. _
  140626. T{
  140627. win_repo_cachefile
  140628. T} T{
  140629. \fBwinrepo_cachefile\fP
  140630. T}
  140631. _
  140632. T{
  140633. win_gitrepos
  140634. T} T{
  140635. \fBwinrepo_remotes\fP
  140636. T}
  140637. _
  140638. .TE
  140639. .sp
  140640. See here for detailed information on all
  140641. minion config options for the Windows Repo.
  140642. .SS \fI\%pygit2\fP/\fI\%GitPython\fP Support for Maintaining Git Repos
  140643. .sp
  140644. The \fBwinrepo.update_git_repos\fP
  140645. runner (and the corresponding \fBremote execution function\fP for standalone minions) now makes use
  140646. of the same underlying code used by the Git Fileserver Backend and \fBGit External Pillar\fP to
  140647. maintain and update its local clones of git repositories. If a compatible
  140648. version of either \fI\%pygit2\fP (0.20.3 and later) or \fI\%GitPython\fP (0.3.0 or later) is
  140649. installed, then Salt will use it instead of the old method (which invokes the
  140650. \fBgit.latest\fP state).
  140651. .sp
  140652. \fBNOTE:\fP
  140653. .INDENT 0.0
  140654. .INDENT 3.5
  140655. If compatible versions of both \fI\%pygit2\fP and \fI\%GitPython\fP are installed, then
  140656. Salt will prefer \fI\%pygit2\fP, to override this behavior use the
  140657. \fBwinrepo_provider\fP configuration parameter:
  140658. .INDENT 0.0
  140659. .INDENT 3.5
  140660. .sp
  140661. .nf
  140662. .ft C
  140663. winrepo_provider: gitpython
  140664. .ft P
  140665. .fi
  140666. .UNINDENT
  140667. .UNINDENT
  140668. .sp
  140669. The \fBwinrepo execution module\fP (discussed
  140670. above in the \fI\%Managing Windows Software on a Standalone Windows Minion\fP section) does not yet officially support the new
  140671. \fI\%pygit2\fP/\fI\%GitPython\fP functionality, but if either \fI\%pygit2\fP or \fI\%GitPython\fP is
  140672. installed into Salt\(aqs bundled Python then it \fIshould\fP work. However, it
  140673. should be considered experimental at this time.
  140674. .UNINDENT
  140675. .UNINDENT
  140676. .sp
  140677. To minimize potential issues, it is a good idea to remove any winrepo git
  140678. repositories that were checked out by the old (pre\-2015.8.0) winrepo code when
  140679. upgrading the master to 2015.8.0 or later, and run
  140680. \fBwinrepo.update_git_repos\fP to
  140681. clone them anew after the master is started.
  140682. .sp
  140683. Additional added features include the ability to access authenticated git
  140684. repositories (\fBNOTE:\fP \fI\%pygit2\fP only), and to set per\-remote config settings.
  140685. An example of this would be the following:
  140686. .INDENT 0.0
  140687. .INDENT 3.5
  140688. .sp
  140689. .nf
  140690. .ft C
  140691. winrepo_remotes:
  140692. \- https://github.com/saltstack/salt\-winrepo.git
  140693. \- git@github.com:myuser/myrepo.git:
  140694. \- pubkey: /path/to/key.pub
  140695. \- privkey: /path/to/key
  140696. \- passphrase: myaw3s0m3pa$$phr4$3
  140697. \- https://github.com/myuser/privaterepo.git:
  140698. \- user: mygithubuser
  140699. \- password: CorrectHorseBatteryStaple
  140700. .ft P
  140701. .fi
  140702. .UNINDENT
  140703. .UNINDENT
  140704. .sp
  140705. \fBNOTE:\fP
  140706. .INDENT 0.0
  140707. .INDENT 3.5
  140708. Per\-remote configuration settings work in the same fashion as they do in
  140709. gitfs, with global parameters being overridden by their per\-remote
  140710. counterparts (for instance, setting \fBwinrepo_passphrase\fP would
  140711. set a global passphrase for winrepo that would apply to all SSH\-based
  140712. remotes, unless overridden by a \fBpassphrase\fP per\-remote parameter).
  140713. .sp
  140714. See here for more a more in\-depth
  140715. explanation of how per\-remote configuration works in gitfs, the same
  140716. principles apply to winrepo.
  140717. .UNINDENT
  140718. .UNINDENT
  140719. .sp
  140720. There are a couple other changes in how Salt manages git repos using
  140721. \fI\%pygit2\fP/\fI\%GitPython\fP\&. First of all, a \fBclean\fP argument has been added to the
  140722. \fBwinrepo.update_git_repos\fP
  140723. runner, which (if set to \fBTrue\fP) will tell the runner to dispose of
  140724. directories under the \fBwinrepo_dir\fP which are not explicitly
  140725. configured. This prevents the need to manually remove these directories when a
  140726. repo is removed from the config file. To clean these old directories, just pass
  140727. \fBclean=True\fP, like so:
  140728. .INDENT 0.0
  140729. .INDENT 3.5
  140730. .sp
  140731. .nf
  140732. .ft C
  140733. salt\-run winrepo.update_git_repos clean=True
  140734. .ft P
  140735. .fi
  140736. .UNINDENT
  140737. .UNINDENT
  140738. .sp
  140739. However, if a mix of git and non\-git Windows Repo definition files are being
  140740. used, then this should \fInot\fP be used, as it will remove the directories
  140741. containing non\-git definitions.
  140742. .sp
  140743. The other major change is that collisions between repo names are now detected,
  140744. and the \fBwinrepo.update_git_repos\fP runner will not proceed if any are
  140745. detected. Consider the following configuration:
  140746. .INDENT 0.0
  140747. .INDENT 3.5
  140748. .sp
  140749. .nf
  140750. .ft C
  140751. winrepo_remotes:
  140752. \- https://foo.com/bar/baz.git
  140753. \- https://mydomain.tld/baz.git
  140754. \- https://github.com/foobar/baz
  140755. .ft P
  140756. .fi
  140757. .UNINDENT
  140758. .UNINDENT
  140759. .sp
  140760. The \fBwinrepo.update_git_repos\fP
  140761. runner will refuse to update repos here, as all three of these repos would be
  140762. checked out to the same directory. To work around this, a per\-remote parameter
  140763. called \fBname\fP can be used to resolve these conflicts:
  140764. .INDENT 0.0
  140765. .INDENT 3.5
  140766. .sp
  140767. .nf
  140768. .ft C
  140769. winrepo_remotes:
  140770. \- https://foo.com/bar/baz.git
  140771. \- https://mydomain.tld/baz.git:
  140772. \- name: baz_junior
  140773. \- https://github.com/foobar/baz:
  140774. \- name: baz_the_third
  140775. .ft P
  140776. .fi
  140777. .UNINDENT
  140778. .UNINDENT
  140779. .SS Troubleshooting
  140780. .SS Incorrect name/version
  140781. .sp
  140782. If the package seems to install properly, but salt reports a failure then it is
  140783. likely you have a version or \fBfull_name\fP mismatch.
  140784. .sp
  140785. Check the exact \fBfull_name\fP and version used by the package. Use
  140786. \fBpkg.list_pkgs\fP to check that the names and version exactly match what is
  140787. installed.
  140788. .SS Changes to sls files not being picked up
  140789. .sp
  140790. Ensure you have (re)generated the repository cache file (for older minions) and
  140791. then updated the repository cache on the relevant minions:
  140792. .INDENT 0.0
  140793. .INDENT 3.5
  140794. .sp
  140795. .nf
  140796. .ft C
  140797. salt\-run winrepo.genrepo
  140798. salt winminion pkg.refresh_db
  140799. .ft P
  140800. .fi
  140801. .UNINDENT
  140802. .UNINDENT
  140803. .SS Packages management under Windows 2003
  140804. .sp
  140805. On Windows server 2003, you need to install optional Windows component "wmi
  140806. Windows installer provider" to have full list of installed packages. If you
  140807. don\(aqt have this, salt\-minion can\(aqt report some installed software.
  140808. .SS How Success and Failure are Reported
  140809. .sp
  140810. The install state/module function of the Windows package manager works roughly
  140811. as follows:
  140812. .INDENT 0.0
  140813. .IP 1. 3
  140814. Execute \fBpkg.list_pkgs\fP and store the result
  140815. .IP 2. 3
  140816. Check if any action needs to be taken. (i.e. compare required package
  140817. and version against \fBpkg.list_pkgs\fP results)
  140818. .IP 3. 3
  140819. If so, run the installer command.
  140820. .IP 4. 3
  140821. Execute \fBpkg.list_pkgs\fP and compare to the result stored from
  140822. before installation.
  140823. .IP 5. 3
  140824. Success/Failure/Changes will be reported based on the differences
  140825. between the original and final \fBpkg.list_pkgs\fP results.
  140826. .UNINDENT
  140827. .sp
  140828. If there are any problems in using the package manager it is likely due to the
  140829. data in your sls files not matching the difference between the pre and post
  140830. \fBpkg.list_pkgs\fP results.
  140831. .SS Windows\-specific Behaviour
  140832. .sp
  140833. Salt is capable of managing Windows systems, however due to various differences
  140834. between the operating systems, there are some things you need to keep in mind.
  140835. .sp
  140836. This document will contain any quirks that apply across Salt or generally across
  140837. multiple module functions. Any Windows\-specific behavior for particular module
  140838. functions will be documented in the module function documentation. Therefore
  140839. this document should be read in conjunction with the module function
  140840. documentation.
  140841. .SS Group parameter for files
  140842. .sp
  140843. Salt was originally written for managing Unix\-based systems, and therefore the
  140844. file module functions were designed around that security model. Rather than
  140845. trying to shoehorn that model on to Windows, Salt ignores these parameters and
  140846. makes non\-applicable module functions unavailable instead.
  140847. .sp
  140848. One of the commonly ignored parameters is the \fBgroup\fP parameter for managing
  140849. files. Under Windows, while files do have a \(aqprimary group\(aq property, this is
  140850. rarely used. It generally has no bearing on permissions unless intentionally
  140851. configured and is most commonly used to provide Unix compatibility (e.g.
  140852. Services For Unix, NFS services).
  140853. .sp
  140854. Because of this, any file module functions that typically require a group, do
  140855. not under Windows. Attempts to directly use file module functions that operate
  140856. on the group (e.g. \fBfile.chgrp\fP) will return a pseudo\-value and cause a log
  140857. message to appear. No group parameters will be acted on.
  140858. .sp
  140859. If you do want to access and change the \(aqprimary group\(aq property and understand
  140860. the implications, use the \fBfile.get_pgid\fP or \fBfile.get_pgroup\fP functions or
  140861. the \fBpgroup\fP parameter on the \fBfile.chown\fP module function.
  140862. .SS Dealing with case\-insensitive but case\-preserving names
  140863. .sp
  140864. Windows is case\-insensitive, but however preserves the case of names and it is
  140865. this preserved form that is returned from system functions. This causes some
  140866. issues with Salt because it assumes case\-sensitive names. These issues
  140867. generally occur in the state functions and can cause bizarre looking errors.
  140868. .sp
  140869. To avoid such issues, always pretend Windows is case\-sensitive and use the right
  140870. case for names, e.g. specify \fBuser=Administrator\fP instead of
  140871. \fBuser=administrator\fP\&.
  140872. .sp
  140873. Follow \fI\%issue #11801\fP for any changes to this behavior.
  140874. .SS Dealing with various username forms
  140875. .sp
  140876. Salt does not understand the various forms that Windows usernames can come in,
  140877. e.g. username, mydomain\eusername, \fI\%username@mydomain.tld\fP can all refer to the
  140878. same user. In fact, Salt generally only considers the raw username value, i.e.
  140879. the username without the domain or host information.
  140880. .sp
  140881. Using these alternative forms will likely confuse Salt and cause odd errors to
  140882. happen. Use only the raw username value in the correct case to avoid problems.
  140883. .sp
  140884. Follow \fI\%issue #11801\fP for any changes to this behavior.
  140885. .SS Specifying the None group
  140886. .sp
  140887. Each Windows system has built\-in _None_ group. This is the default \(aqprimary
  140888. group\(aq for files for users not on a domain environment.
  140889. .sp
  140890. Unfortunately, the word _None_ has special meaning in Python \- it is a special
  140891. value indicating \(aqnothing\(aq, similar to \fBnull\fP or \fBnil\fP in other languages.
  140892. .sp
  140893. To specify the None group, it must be specified in quotes, e.g.
  140894. \fB\&./salt \(aq*\(aq file.chpgrp C:\epath\eto\efile "\(aqNone\(aq"\fP\&.
  140895. .SS Symbolic link loops
  140896. .sp
  140897. Under Windows, if any symbolic link loops are detected or if there are too many
  140898. levels of symlinks (defaults to 64), an error is always raised.
  140899. .sp
  140900. For some functions, this behavior is different to the behavior on Unix
  140901. platforms. In general, avoid symlink loops on either platform.
  140902. .SH DEVELOPING SALT
  140903. .SS Overview
  140904. .sp
  140905. In its most typical use, Salt is a software application in which clients,
  140906. called "minions" can be commanded and controlled from a central command server
  140907. called a "master".
  140908. .sp
  140909. Commands are normally issued to the minions (via the master) by calling a
  140910. client script simply called, \(aqsalt\(aq.
  140911. .sp
  140912. Salt features a pluggable transport system to issue commands from a master to
  140913. minions. The default transport is ZeroMQ.
  140914. .SS Salt Client
  140915. .SS Overview
  140916. .sp
  140917. The salt client is run on the same machine as the Salt Master and communicates
  140918. with the salt\-master to issue commands and to receive the results and display
  140919. them to the user.
  140920. .sp
  140921. The primary abstraction for the salt client is called \(aqLocalClient\(aq.
  140922. .sp
  140923. When LocalClient wants to publish a command to minions, it connects to the
  140924. master by issuing a request to the master\(aqs ReqServer (TCP: 4506)
  140925. .sp
  140926. The LocalClient system listens to responses for its requests by listening to
  140927. the master event bus publisher (master_event_pub.ipc).
  140928. .SS Salt Master
  140929. .SS Overview
  140930. .sp
  140931. The salt\-master daemon runs on the designated Salt master and performs
  140932. functions such as authenticating minions, sending, and receiving requests
  140933. from connected minions and sending and receiving requests and replies to the
  140934. \(aqsalt\(aq CLI.
  140935. .SS Moving Pieces
  140936. .sp
  140937. When a Salt master starts up, a number of processes are started, all of which
  140938. are called \(aqsalt\-master\(aq in a process\-list but have various role categories.
  140939. .sp
  140940. Among those categories are:
  140941. .INDENT 0.0
  140942. .INDENT 3.5
  140943. .INDENT 0.0
  140944. .IP \(bu 2
  140945. Publisher
  140946. .IP \(bu 2
  140947. EventPublisher
  140948. .IP \(bu 2
  140949. MWorker
  140950. .UNINDENT
  140951. .UNINDENT
  140952. .UNINDENT
  140953. .SS Publisher
  140954. .sp
  140955. The Publisher process is responsible for sending commands over the designated
  140956. transport to connected minions. The Publisher is bound to the following:
  140957. .INDENT 0.0
  140958. .INDENT 3.5
  140959. .INDENT 0.0
  140960. .IP \(bu 2
  140961. TCP: port 4505
  140962. .IP \(bu 2
  140963. IPC: publish_pull.ipc
  140964. .UNINDENT
  140965. .UNINDENT
  140966. .UNINDENT
  140967. .sp
  140968. Each salt minion establishes a connection to the master Publisher.
  140969. .SS EventPublisher
  140970. .sp
  140971. The EventPublisher publishes master events out to any event listeners. It is
  140972. bound to the following:
  140973. .INDENT 0.0
  140974. .INDENT 3.5
  140975. .INDENT 0.0
  140976. .IP \(bu 2
  140977. IPC: master_event_pull.ipc
  140978. .IP \(bu 2
  140979. IPC: master_event_pub.ipc
  140980. .UNINDENT
  140981. .UNINDENT
  140982. .UNINDENT
  140983. .SS MWorker
  140984. .sp
  140985. Worker processes manage the back\-end operations for the Salt Master.
  140986. .sp
  140987. The number of workers is equivalent to the number of \(aqworker_threads\(aq
  140988. specified in the master configuration and is always at least one.
  140989. .sp
  140990. Workers are bound to the following:
  140991. .INDENT 0.0
  140992. .INDENT 3.5
  140993. .INDENT 0.0
  140994. .IP \(bu 2
  140995. IPC: workers.ipc
  140996. .UNINDENT
  140997. .UNINDENT
  140998. .UNINDENT
  140999. .SS ReqServer
  141000. .sp
  141001. The Salt request server takes requests and distributes them to available MWorker
  141002. processes for processing. It also receives replies back from minions.
  141003. .INDENT 0.0
  141004. .TP
  141005. .B The ReqServer is bound to the following:
  141006. .INDENT 7.0
  141007. .IP \(bu 2
  141008. TCP: 4506
  141009. .IP \(bu 2
  141010. IPC: workers.ipc
  141011. .UNINDENT
  141012. .UNINDENT
  141013. .sp
  141014. Each salt minion establishes a connection to the master ReqServer.
  141015. .SS Job Flow
  141016. .sp
  141017. The Salt master works by always publishing commands to all connected minions
  141018. and the minions decide if the command is meant for them by checking themselves
  141019. against the command target.
  141020. .sp
  141021. The typical lifecycle of a salt job from the perspective of the master
  141022. might be as follows:
  141023. .INDENT 0.0
  141024. .IP 1. 4
  141025. A command is issued on the CLI. For example, \(aqsalt my_minion test.version\(aq.
  141026. .IP 2. 4
  141027. The \(aqsalt\(aq command uses LocalClient to generate a request to the salt master
  141028. by connecting to the ReqServer on \fI\%TCP:4506\fP and issuing the job.
  141029. .IP 3. 4
  141030. The salt\-master ReqServer sees the request and passes it to an available
  141031. MWorker over workers.ipc.
  141032. .IP 4. 4
  141033. A worker picks up the request and handles it. First, it checks to ensure
  141034. that the requested user has permissions to issue the command. Then, it sends
  141035. the publish command to all connected minions. For the curious, this happens
  141036. in ClearFuncs.publish().
  141037. .IP 5. 4
  141038. The worker announces on the master event bus that it is about to publish a
  141039. job to connected minions. This happens by placing the event on the master
  141040. event bus (master_event_pull.ipc) where the EventPublisher picks it up and
  141041. distributes it to all connected event listeners on master_event_pub.ipc.
  141042. .IP 6. 4
  141043. The message to the minions is encrypted and sent to the Publisher via IPC on
  141044. publish_pull.ipc.
  141045. .IP 7. 4
  141046. Connected minions have a TCP session established with the Publisher on TCP
  141047. port 4505 where they await commands. When the Publisher receives the job
  141048. over publish_pull, it sends the jobs across the wire to the minions for
  141049. processing.
  141050. .IP 8. 4
  141051. After the minions receive the request, they decrypt it and perform any
  141052. requested work, if they determine that they are targeted to do so.
  141053. .IP 9. 4
  141054. When the minion is ready to respond, it publishes the result of its job back
  141055. to the master by sending the encrypted result back to the master on TCP 4506
  141056. where it is again picked up by the ReqServer and forwarded to an available
  141057. MWorker for processing. (Again, this happens by passing this message across
  141058. workers.ipc to an available worker.)
  141059. .IP 10. 4
  141060. When the MWorker receives the job it decrypts it and fires an event onto
  141061. the master event bus (master_event_pull.ipc). (Again for the curious, this
  141062. happens in AESFuncs._return().
  141063. .IP 11. 4
  141064. The EventPublisher sees this event and re\-publishes it on the bus to all
  141065. connected listeners of the master event bus (on master_event_pub.ipc). This
  141066. is where the LocalClient has been waiting, listening to the event bus for
  141067. minion replies. It gathers the job and stores the result.
  141068. .IP 12. 4
  141069. When all targeted minions have replied or the timeout has been exceeded,
  141070. the salt client displays the results of the job to the user on the CLI.
  141071. .UNINDENT
  141072. .SS Salt Minion
  141073. .SS Overview
  141074. .sp
  141075. The salt\-minion is a single process that sits on machines to be managed by
  141076. Salt. It can either operate as a stand\-alone daemon which accepts commands
  141077. locally via \(aqsalt\-call\(aq or it can connect back to a master and receive commands
  141078. remotely.
  141079. .sp
  141080. When starting up, salt minions connect \fIback\fP to a master defined in the minion
  141081. config file. They connect to two ports on the master:
  141082. .INDENT 0.0
  141083. .INDENT 3.5
  141084. .INDENT 0.0
  141085. .IP \(bu 2
  141086. .INDENT 2.0
  141087. .TP
  141088. .B TCP: 4505
  141089. This is the connection to the master Publisher. It is on this port that
  141090. the minion receives jobs from the master.
  141091. .UNINDENT
  141092. .IP \(bu 2
  141093. .INDENT 2.0
  141094. .TP
  141095. .B TCP: 4506
  141096. This is the connection to the master ReqServer. It is on this port that
  141097. the minion sends job results back to the master.
  141098. .UNINDENT
  141099. .UNINDENT
  141100. .UNINDENT
  141101. .UNINDENT
  141102. .SS Event System
  141103. .sp
  141104. Similar to the master, a salt\-minion has its own event system that operates
  141105. over IPC by default. The minion event system operates on a push/pull system
  141106. with IPC files at minion_event_<unique_id>_pub.ipc and
  141107. minion_event_<unique_id>_pull.ipc.
  141108. .sp
  141109. The astute reader might ask why have an event bus at all with a single\-process
  141110. daemon. The answer is that the salt\-minion may fork other processes as required
  141111. to do the work without blocking the main salt\-minion process and this
  141112. necessitates a mechanism by which those processes can communicate with each
  141113. other. Secondarily, this provides a bus by which any user with sufficient
  141114. permissions can read or write to the bus as a common interface with the salt
  141115. minion.
  141116. .SS Minion Job Flow
  141117. .sp
  141118. When a salt minion starts up, it attempts to connect to the Publisher and the
  141119. ReqServer on the salt master. It then attempts to authenticate and once the
  141120. minion has successfully authenticated, it simply listens for jobs.
  141121. .sp
  141122. Jobs normally come either come from the \(aqsalt\-call\(aq script run by a local user
  141123. on the salt minion or they can come directly from a master.
  141124. .sp
  141125. The job flow on a minion, coming from the master via a \(aqsalt\(aq command is as
  141126. follows:
  141127. .sp
  141128. 1) A master publishes a job that is received by a minion as outlined by the
  141129. master\(aqs job flow above.
  141130. 2) The minion is polling its receive socket that\(aqs connected to the master
  141131. Publisher (TCP 4505 on master). When it detects an incoming message, it picks it
  141132. up from the socket and decrypts it.
  141133. 3) A new minion process or thread is created and provided with the contents of the
  141134. decrypted message. The _thread_return() method is provided with the contents of
  141135. the received message.
  141136. 4) The new minion thread is created. The _thread_return() function starts up
  141137. and actually calls out to the requested function contained in the job.
  141138. 5) The requested function runs and returns a result. [Still in thread.]
  141139. 6) The result of the function that\(aqs run is encrypted and returned to the
  141140. master\(aqs ReqServer (TCP 4506 on master). [Still in thread.]
  141141. 7) Thread exits. Because the main thread was only blocked for the time that it
  141142. took to initialize the worker thread, many other requests could have been
  141143. received and processed during this time.
  141144. .SS A Note on ClearFuncs vs. AESFuncs
  141145. .sp
  141146. A common source of confusion is determining when messages are passed in the
  141147. clear and when they are passed using encryption. There are two rules governing
  141148. this behaviour:
  141149. .sp
  141150. 1) ClearFuncs is used for intra\-master communication and during the initial
  141151. authentication handshake between a minion and master during the key exchange.
  141152. 2) AESFuncs is used everywhere else.
  141153. .SS Changelog
  141154. .sp
  141155. With the addition of \fI\%SEP 01\fP the \fI\%keepachangelog\fP format was introduced into
  141156. our CHANGELOG.md file. The Salt project is using the \fI\%towncrier\fP tool to manage
  141157. the CHANGELOG.md file. The reason this tool was added to manage the changelog
  141158. was because we were previously managing the file manually and it would cause
  141159. many merge conflicts. This tool allows us to add changelog entries into separate
  141160. files and before a release we simply need to run \fBtowncrier \-\-version=<version>\fP
  141161. for it to compile the changelog correctly.
  141162. .SS How do I add a changelog entry
  141163. .sp
  141164. To add a changelog entry you will need to add a file in the \fIchangelog\fP directory.
  141165. The file name should follow the syntax \fB<issue #>.<type>\fP\&.
  141166. .sp
  141167. The types are in alignment with keepachangelog:
  141168. .INDENT 0.0
  141169. .INDENT 3.5
  141170. .INDENT 0.0
  141171. .TP
  141172. .B removed:
  141173. any features that have been removed
  141174. .TP
  141175. .B deprecated:
  141176. any features that will soon be removed
  141177. .TP
  141178. .B changed:
  141179. any changes in current existing features
  141180. .TP
  141181. .B fixed:
  141182. any bug fixes
  141183. .TP
  141184. .B added:
  141185. any new features added
  141186. .UNINDENT
  141187. .UNINDENT
  141188. .UNINDENT
  141189. .sp
  141190. For example if you are fixing a bug for issue number #1234 your filename would
  141191. look like this: changelog/1234.fixed. The contents of the file should contain
  141192. a summary of what you are fixing. If there is a legitimate reason to not include
  141193. an issue number with a given contribution you can add the PR number as the file
  141194. name (\fB<PR #>.<type>\fP).
  141195. .sp
  141196. If your PR does not align with any of the types, then you do not need to add a
  141197. changelog entry.
  141198. .SS How to generate the changelog
  141199. .sp
  141200. This step is only used when we need to generate the changelog right before releasing.
  141201. You should NOT run towncrier on your PR, unless you are preparing the final PR
  141202. to update the changelog before a release.
  141203. .sp
  141204. You can run the \fItowncrier\fP tool directly or you can use nox to help run the command
  141205. and ensure towncrier is installed in a virtual environment. The instructions below
  141206. will detail both approaches.
  141207. .sp
  141208. If you want to see what output towncrier will produce before generating the change log
  141209. you can run towncrier in draft mode:
  141210. .INDENT 0.0
  141211. .INDENT 3.5
  141212. .sp
  141213. .nf
  141214. .ft C
  141215. towncrier \-\-draft \-\-version=3001
  141216. .ft P
  141217. .fi
  141218. .UNINDENT
  141219. .UNINDENT
  141220. .INDENT 0.0
  141221. .INDENT 3.5
  141222. .sp
  141223. .nf
  141224. .ft C
  141225. nox \-e \(aqchangelog(draft=True)\(aq \-\- 3000.1
  141226. .ft P
  141227. .fi
  141228. .UNINDENT
  141229. .UNINDENT
  141230. .sp
  141231. Version will need to be set to whichever version we are about to release. Once you are
  141232. confident the draft output looks correct you can now generate the changelog by running:
  141233. .INDENT 0.0
  141234. .INDENT 3.5
  141235. .sp
  141236. .nf
  141237. .ft C
  141238. towncrier \-\-version=3001
  141239. .ft P
  141240. .fi
  141241. .UNINDENT
  141242. .UNINDENT
  141243. .INDENT 0.0
  141244. .INDENT 3.5
  141245. .sp
  141246. .nf
  141247. .ft C
  141248. nox \-e \(aqchangelog(draft=False)\(aq \-\- 3000.1
  141249. .ft P
  141250. .fi
  141251. .UNINDENT
  141252. .UNINDENT
  141253. .sp
  141254. After this is run towncrier will automatically remove all the files in the changelog directory.
  141255. .SS Contributing
  141256. .sp
  141257. There is a great need for contributions to Salt and patches are welcome! The
  141258. goal here is to make contributions clear, make sure there is a trail for where
  141259. the code has come from, and most importantly, to give credit where credit is
  141260. due!
  141261. .sp
  141262. There are a number of ways to contribute to Salt development, including (but
  141263. not limited to):
  141264. .INDENT 0.0
  141265. .IP \(bu 2
  141266. filing well\-written bug reports
  141267. .IP \(bu 2
  141268. enhancing the documentation
  141269. .IP \(bu 2
  141270. providing workarounds, patches, and other code without tests
  141271. .IP \(bu 2
  141272. engaging in constructive discussion
  141273. .IP \(bu 2
  141274. helping out in \fI\%#salt on Freenode\fP,
  141275. the \fI\%Community Slack\fP,
  141276. the \fI\%salt\-users\fP mailing list,
  141277. a \fI\%SaltStack meetup\fP,
  141278. or \fI\%Server Fault\fP\&.
  141279. .IP \(bu 2
  141280. telling others about problems you solved with Salt
  141281. .UNINDENT
  141282. .sp
  141283. If this or other Salt documentation is unclear, please review Writing
  141284. Salt Documentation\&. PRs are welcome!
  141285. .SS Quickstart
  141286. .sp
  141287. If you just want to get started before reading the rest of this guide, you can
  141288. get the process started by running the following:
  141289. .INDENT 0.0
  141290. .INDENT 3.5
  141291. .sp
  141292. .nf
  141293. .ft C
  141294. python3 \-m pip install \-\-user pre\-commit
  141295. git clone \-\-origin upstream https://github.com/saltstack/salt.git
  141296. cd salt
  141297. pre\-commit install
  141298. .ft P
  141299. .fi
  141300. .UNINDENT
  141301. .UNINDENT
  141302. .sp
  141303. While those commands are running, finish reading the rest of this guide.
  141304. .SS Pre\-commit
  141305. .sp
  141306. To reduce friction during the development process, SaltStack uses \fI\%pre\-commit\fP\&. This tool adds pre\-commit hooks to git to automate several
  141307. processes that used to be manual. Rather than having to remember to run several
  141308. different tools before you commit, you only have to run \fBgit commit\fP, and you
  141309. will be notified about style and lint issues before you ever open a PR.
  141310. .sp
  141311. \fBWARNING:\fP
  141312. .INDENT 0.0
  141313. .INDENT 3.5
  141314. Currently there is an issue with the pip\-tools\-compile pre\-commit hook on windows.
  141315. The details around this issue are included here:
  141316. \fI\%https://github.com/saltstack/salt/issues/56642\fP\&.
  141317. Please ensure you export \fBSKIP=pip\-tools\-compile\fP to skip pip\-tools\-compile.
  141318. .UNINDENT
  141319. .UNINDENT
  141320. .SS Salt Coding Style
  141321. .sp
  141322. After the 3000 release, SaltStack is \fI\%joining the ranks\fP of projects
  141323. in adopting the \fI\%Black code formatter\fP in order to ease the adoption
  141324. of a unified code formatting style.
  141325. .sp
  141326. Where Black is silent, SaltStack has its own coding style guide that informs
  141327. contributors on various style points. Please review the Salt Coding Style documentation for information about Salt\(aqs particular coding
  141328. patterns.
  141329. .sp
  141330. Within the Salt Coding Style documentation, there is a
  141331. section about running Salt\(aqs \fB\&.testing.pylintrc\fP file. SaltStack recommends
  141332. running the \fB\&.testing.pylintrc\fP file on any files you are changing with your
  141333. code contribution before submitting a pull request to Salt\(aqs repository.
  141334. .sp
  141335. If you\(aqve installed \fBpre\-commit\fP, this will automatically happen before each
  141336. commit. Otherwise, see the Linting documentation
  141337. for more information.
  141338. .SS Copyright Headers
  141339. .sp
  141340. Copyright headers are not needed for files in the Salt project. Files that have
  141341. existing copyright headers should be considered legacy and not an example to
  141342. follow.
  141343. .SS New Features
  141344. .sp
  141345. Feature requests through Salt go through a multi\-stage process.
  141346. .sp
  141347. All features are added to major releases only. Salt does not accept
  141348. feature additions in bug\-fix branches. Therefore, all feature work
  141349. is done exclusively in the develop branch.
  141350. .sp
  141351. To formally propose a new feature, the proposal must take the form
  141352. of an RFC. To create an RFC, copy the template file found in the rfcs/
  141353. directory of the Salt codebase and fill the outline with the reasoning
  141354. for the new feature and with implementation details.
  141355. .sp
  141356. Upon submitting the written RFC via a pull\-request, it will be reviewed
  141357. by the core development team as well as the community. Once discussed
  141358. and agreed upon, the RFC may be merged.
  141359. .sp
  141360. A merged RFC indicates that a feature has been accepted and will be
  141361. added to an upcoming release of Salt.
  141362. .SS Sending a GitHub pull request
  141363. .sp
  141364. Sending pull requests on GitHub is the preferred method for receiving
  141365. contributions. The workflow advice below mirrors \fI\%GitHub\(aqs own guide\fP and is well worth reading.
  141366. .INDENT 0.0
  141367. .IP 1. 3
  141368. \fI\%Fork saltstack/salt\fP on GitHub.
  141369. .IP 2. 3
  141370. Make a local clone of your fork. (Skip this step if you followed
  141371. the Quickstart)
  141372. .INDENT 3.0
  141373. .INDENT 3.5
  141374. .sp
  141375. .nf
  141376. .ft C
  141377. git clone git@github.com:my\-account/salt.git
  141378. cd salt
  141379. .ft P
  141380. .fi
  141381. .UNINDENT
  141382. .UNINDENT
  141383. .IP 3. 3
  141384. Add \fI\%saltstack/salt\fP as a git remote.
  141385. .INDENT 3.0
  141386. .INDENT 3.5
  141387. .sp
  141388. .nf
  141389. .ft C
  141390. git remote add upstream https://github.com/saltstack/salt.git
  141391. .ft P
  141392. .fi
  141393. .UNINDENT
  141394. .UNINDENT
  141395. .sp
  141396. If you followed the Quickstart, you\(aqll add your own remote instead
  141397. .INDENT 3.0
  141398. .INDENT 3.5
  141399. .sp
  141400. .nf
  141401. .ft C
  141402. git remote add my\-account git@github.com:my\-account/salt.git
  141403. .ft P
  141404. .fi
  141405. .UNINDENT
  141406. .UNINDENT
  141407. .IP 4. 3
  141408. Create a new branch in your clone.
  141409. .sp
  141410. \fBNOTE:\fP
  141411. .INDENT 3.0
  141412. .INDENT 3.5
  141413. A branch should have one purpose. For example, "Fix bug X," or "Add
  141414. feature Y". Multiple unrelated fixes and/or features should be
  141415. isolated into separate branches.
  141416. .UNINDENT
  141417. .UNINDENT
  141418. .INDENT 3.0
  141419. .INDENT 3.5
  141420. .sp
  141421. .nf
  141422. .ft C
  141423. git fetch upstream
  141424. git checkout \-b fix\-broken\-thing upstream/master
  141425. .ft P
  141426. .fi
  141427. .UNINDENT
  141428. .UNINDENT
  141429. .IP 5. 3
  141430. Edit and commit changes to your branch.
  141431. .INDENT 3.0
  141432. .INDENT 3.5
  141433. .sp
  141434. .nf
  141435. .ft C
  141436. vim path/to/file1 path/to/file2 tests/test_file1.py tests/test_file2.py
  141437. git diff
  141438. git add path/to/file1 path/to/file2
  141439. git commit
  141440. .ft P
  141441. .fi
  141442. .UNINDENT
  141443. .UNINDENT
  141444. .sp
  141445. Write a short, descriptive commit title and a longer commit message if
  141446. necessary. Use an imperative style for the title.
  141447. .sp
  141448. GOOD
  141449. .INDENT 3.0
  141450. .INDENT 3.5
  141451. .sp
  141452. .nf
  141453. .ft C
  141454. Fix broken things in file1 and file2
  141455. Fixes #31337
  141456. We needed to make this change because the underlying dependency
  141457. changed. Now this uses the up\-to\-date API.
  141458. # Please enter the commit message for your changes. Lines starting
  141459. # with \(aq#\(aq will be ignored, and an empty message aborts the commit.
  141460. # On branch fix\-broken\-thing
  141461. # Changes to be committed:
  141462. # modified: path/to/file1
  141463. # modified: path/to/file2
  141464. .ft P
  141465. .fi
  141466. .UNINDENT
  141467. .UNINDENT
  141468. .sp
  141469. BAD
  141470. .INDENT 3.0
  141471. .INDENT 3.5
  141472. .sp
  141473. .nf
  141474. .ft C
  141475. Fixes broken things
  141476. # Please enter the commit message for your changes. Lines starting
  141477. # with \(aq#\(aq will be ignored, and an empty message aborts the commit.
  141478. # On branch fix\-broken\-thing
  141479. # Changes to be committed:
  141480. # modified: path/to/file1
  141481. # modified: path/to/file2
  141482. .ft P
  141483. .fi
  141484. .UNINDENT
  141485. .UNINDENT
  141486. .sp
  141487. Taking a few moments to explain \fIwhy\fP you made a change will save time
  141488. and effort in the future when others come to investigate a change. A
  141489. clear explanation of why something changed can help future developers
  141490. avoid introducing bugs, or breaking an edge case.
  141491. .sp
  141492. \fBNOTE:\fP
  141493. .INDENT 3.0
  141494. .INDENT 3.5
  141495. If your change fixes a bug or implements a feature already filed in the
  141496. \fI\%issue tracker\fP, be sure to
  141497. \fI\%reference the issue\fP
  141498. number in the commit message body.
  141499. .UNINDENT
  141500. .UNINDENT
  141501. .sp
  141502. If you get stuck, there are many introductory Git resources on
  141503. \fI\%https://help.github.com/en\fP\&.
  141504. .IP 6. 3
  141505. Push your locally\-committed changes to your GitHub fork.
  141506. .INDENT 3.0
  141507. .INDENT 3.5
  141508. .sp
  141509. .nf
  141510. .ft C
  141511. git push \-u origin fix\-broken\-thing
  141512. .ft P
  141513. .fi
  141514. .UNINDENT
  141515. .UNINDENT
  141516. .sp
  141517. or
  141518. .INDENT 3.0
  141519. .INDENT 3.5
  141520. .sp
  141521. .nf
  141522. .ft C
  141523. git push \-u origin add\-cool\-feature
  141524. .ft P
  141525. .fi
  141526. .UNINDENT
  141527. .UNINDENT
  141528. .sp
  141529. \fBNOTE:\fP
  141530. .INDENT 3.0
  141531. .INDENT 3.5
  141532. You may want to rebase before pushing to work out any potential
  141533. conflicts:
  141534. .INDENT 0.0
  141535. .INDENT 3.5
  141536. .sp
  141537. .nf
  141538. .ft C
  141539. git fetch upstream
  141540. git rebase upstream/master fix\-broken\-thing
  141541. git push \-u origin fix\-broken\-thing
  141542. .ft P
  141543. .fi
  141544. .UNINDENT
  141545. .UNINDENT
  141546. .sp
  141547. If you do rebase, and the push is rejected with a
  141548. \fB(non\-fast\-forward)\fP comment, then run \fBgit status\fP\&. You will
  141549. likely see a message about the branches diverging:
  141550. .INDENT 0.0
  141551. .INDENT 3.5
  141552. .sp
  141553. .nf
  141554. .ft C
  141555. On branch fix\-broken\-thing
  141556. Your branch and \(aqorigin/fix\-broken\-thing\(aq have diverged,
  141557. and have 1 and 2 different commits each, respectively.
  141558. (use "git pull" to merge the remote branch into yours)
  141559. nothing to commit, working tree clean
  141560. .ft P
  141561. .fi
  141562. .UNINDENT
  141563. .UNINDENT
  141564. .sp
  141565. Do \fBNOT\fP perform a \fBgit pull\fP or \fBgit merge\fP here. Instead, add
  141566. \fB\-\-force\-with\-lease\fP to the end of the \fBgit push\fP command to get the changes
  141567. pushed to your fork. Pulling or merging, while they will resolve the
  141568. non\-fast\-forward issue, will likely add extra commits to the pull
  141569. request which were not part of your changes.
  141570. .UNINDENT
  141571. .UNINDENT
  141572. .IP 7. 3
  141573. Find the branch on your GitHub salt fork.
  141574. .sp
  141575. \fI\%https://github.com/my\-account/salt/branches/fix\-broken\-thing\fP
  141576. .IP 8. 3
  141577. Open a new pull request.
  141578. .sp
  141579. Click on \fBPull Request\fP on the right near the top of the page,
  141580. .sp
  141581. \fI\%https://github.com/my\-account/salt/pull/new/fix\-broken\-thing\fP
  141582. .INDENT 3.0
  141583. .IP 1. 3
  141584. Choose \fBmaster\fP as the base Salt branch.
  141585. .IP 2. 3
  141586. Review that the proposed changes are what you expect.
  141587. .IP 3. 3
  141588. Write a descriptive comment. If you added good information to your git
  141589. commit message, they will already be present here. Include links to
  141590. related issues (e.g. \(aqFixes #31337.\(aq) in the comment field.
  141591. .IP 4. 3
  141592. Click \fBCreate pull request\fP\&.
  141593. .UNINDENT
  141594. .IP 9. 3
  141595. Salt project members will review your pull request and automated tests will
  141596. run on it.
  141597. .sp
  141598. If you recognize any test failures as being related to your proposed
  141599. changes or if a reviewer asks for modifications:
  141600. .INDENT 3.0
  141601. .IP 1. 3
  141602. Make the new changes in your local clone on the same local branch.
  141603. .IP 2. 3
  141604. Push the branch to GitHub again using the same commands as before.
  141605. .IP 3. 3
  141606. New and updated commits will be added to the pull request automatically.
  141607. .IP 4. 3
  141608. Feel free to add a comment to the discussion.
  141609. .UNINDENT
  141610. .UNINDENT
  141611. .sp
  141612. \fBNOTE:\fP
  141613. .INDENT 0.0
  141614. .INDENT 3.5
  141615. Jenkins
  141616. .sp
  141617. Pull request against \fI\%saltstack/salt\fP are automatically tested on a
  141618. variety of operating systems and configurations. On average these tests
  141619. take a couple of hours. Depending on your GitHub notification settings
  141620. you may also receive an email message about the test results.
  141621. .sp
  141622. Test progress and results can be found at \fI\%https://jenkinsci.saltstack.com/\fP\&.
  141623. .UNINDENT
  141624. .UNINDENT
  141625. .SS Salt\(aqs Branch Topology
  141626. .sp
  141627. Salt will only have one active branch \- \fBmaster\fP\&.
  141628. This will include bug fixes, features and CVE “Common Vulnerabilities and Exposures”.
  141629. .sp
  141630. The release will be cut from the master when the time comes for a new release,
  141631. which should be every 3 to 4 months.
  141632. .sp
  141633. To be able to merge code:
  141634. .INDENT 0.0
  141635. .INDENT 3.5
  141636. .INDENT 0.0
  141637. .IP 1. 3
  141638. The code must have a well\-written test.
  141639. Note that you are only expected to write tests for what you did, not the whole modules or function.
  141640. .IP 2. 3
  141641. All tests must pass.
  141642. .UNINDENT
  141643. .UNINDENT
  141644. .UNINDENT
  141645. .sp
  141646. The SaltStack employee that reviews your pull request might request changes or deny the pull request for various reasons.
  141647. .sp
  141648. Salt uses a typical branch strategy \- \fBmaster\fP is the next expected release.
  141649. Code should only make it to \fBmaster\fP once it\(aqs production ready. This means
  141650. that typical changes (fixes, features) should have accompanying tests.
  141651. .SS Closing GitHub issues from commits
  141652. .sp
  141653. SaltStack encourages using \fI\%the magic keywords to close a GitHub issue\fP\&. These should appear in the commit message text
  141654. directly.
  141655. .SS Release Naming Convention
  141656. .sp
  141657. A new convention will start when Salt releases Salt 3000.
  141658. Every new release name will increment by one ‘Salt last_release_number + 1’.
  141659. .sp
  141660. This naming convention is very different from past releases, which was \(aqYYYY.MM.PATCH\(aq.
  141661. .SS Handling CVE
  141662. .sp
  141663. If a CVE is discovered, Salt will create a new release that \fBonly\fP contains the tests and patch for the CVE.
  141664. This method should improve the upgrade process by reducing the chances of breaking something.
  141665. .SS Backporting Pull Requests
  141666. .sp
  141667. On rare occasions, a serious bug will be found in the middle of a release
  141668. cycle. These bugs will require a point release. Contributors should still
  141669. submit fixes directly to \fBmaster\fP, but they should also call attention to the
  141670. fact that it addresses a critical issue and will need to be back\-ported.
  141671. .SS Keeping Salt Forks in Sync
  141672. .sp
  141673. Salt advances quickly. It is therefore critical to pull upstream changes from
  141674. upstream into your fork on a regular basis. Nothing is worse than putting hard
  141675. work into a pull request only to see bunches of merge conflicts because it has
  141676. diverged too far from upstream.
  141677. .sp
  141678. \fBSEE ALSO:\fP
  141679. .INDENT 0.0
  141680. .INDENT 3.5
  141681. \fI\%GitHub Fork a Repo Guide\fP
  141682. .UNINDENT
  141683. .UNINDENT
  141684. .sp
  141685. The following assumes \fBorigin\fP is the name of your fork and \fBupstream\fP is
  141686. the name of the main \fI\%saltstack/salt\fP repository.
  141687. .INDENT 0.0
  141688. .IP 1. 3
  141689. View existing remotes.
  141690. .INDENT 3.0
  141691. .INDENT 3.5
  141692. .sp
  141693. .nf
  141694. .ft C
  141695. git remote \-v
  141696. .ft P
  141697. .fi
  141698. .UNINDENT
  141699. .UNINDENT
  141700. .IP 2. 3
  141701. Add the \fBupstream\fP remote.
  141702. .INDENT 3.0
  141703. .INDENT 3.5
  141704. .sp
  141705. .nf
  141706. .ft C
  141707. # For ssh github
  141708. git remote add upstream git@github.com:saltstack/salt.git
  141709. # For https github
  141710. git remote add upstream https://github.com/saltstack/salt.git
  141711. .ft P
  141712. .fi
  141713. .UNINDENT
  141714. .UNINDENT
  141715. .IP 3. 3
  141716. Pull upstream changes into your clone.
  141717. .INDENT 3.0
  141718. .INDENT 3.5
  141719. .sp
  141720. .nf
  141721. .ft C
  141722. git fetch upstream
  141723. .ft P
  141724. .fi
  141725. .UNINDENT
  141726. .UNINDENT
  141727. .IP 4. 3
  141728. Update your copy of the \fBmaster\fP branch.
  141729. .INDENT 3.0
  141730. .INDENT 3.5
  141731. .sp
  141732. .nf
  141733. .ft C
  141734. git checkout master
  141735. git merge \-\-ff\-only upstream/master
  141736. .ft P
  141737. .fi
  141738. .UNINDENT
  141739. .UNINDENT
  141740. .sp
  141741. If Git complains that a fast\-forward merge is not possible, you have local
  141742. commits.
  141743. .INDENT 3.0
  141744. .IP \(bu 2
  141745. Run \fBgit pull \-\-rebase origin master\fP to rebase your changes on top of
  141746. the upstream changes.
  141747. .IP \(bu 2
  141748. Or, run \fBgit branch <branch\-name>\fP to create a new branch with your
  141749. commits. You will then need to reset your \fBmaster\fP branch before
  141750. updating it with the changes from upstream.
  141751. .UNINDENT
  141752. .sp
  141753. If Git complains that local files will be overwritten, you have changes to
  141754. files in your working directory. Run \fBgit status\fP to see the files in
  141755. question.
  141756. .IP 5. 3
  141757. Update your fork.
  141758. .INDENT 3.0
  141759. .INDENT 3.5
  141760. .sp
  141761. .nf
  141762. .ft C
  141763. git push origin master
  141764. .ft P
  141765. .fi
  141766. .UNINDENT
  141767. .UNINDENT
  141768. .IP 6. 3
  141769. Repeat the previous two steps for any other branches you work with, such as
  141770. the current release branch.
  141771. .UNINDENT
  141772. .SS Posting patches to the mailing list
  141773. .sp
  141774. Patches will also be accepted by email. Format patches using \fI\%git
  141775. format\-patch\fP and send them to the \fI\%salt\-users\fP mailing list. The contributor
  141776. will then get credit for the patch, and the Salt community will have an archive
  141777. of the patch and a place for discussion.
  141778. .SS Issue and Pull Request Labeling System
  141779. .sp
  141780. SaltStack uses several labeling schemes to help facilitate code contributions
  141781. and bug resolution. See the Labels and Milestones documentation for more information.
  141782. .SS Mentionbot
  141783. .sp
  141784. SaltStack runs a mention\-bot which notifies contributors who might be able
  141785. to help review incoming pull\-requests based on their past contribution to
  141786. files which are being changed.
  141787. .sp
  141788. If you do not wish to receive these notifications, please add your GitHub
  141789. handle to the blacklist line in the \fB\&.mention\-bot\fP file located in the
  141790. root of the Salt repository.
  141791. .SS Bootstrap Script Changes
  141792. .sp
  141793. Salt\(aqs Bootstrap Script, known as \fI\%bootstrap\-salt.sh\fP in the Salt repo, has its own
  141794. repository, contributing guidelines, and release cadence.
  141795. .sp
  141796. All changes to the Bootstrap Script should be made to \fI\%salt\-bootstrap repo\fP\&. Any
  141797. pull requests made to the \fI\%bootstrap\-salt.sh\fP file in the Salt repository will be
  141798. automatically overwritten upon the next stable release of the Bootstrap Script.
  141799. .sp
  141800. For more information on the release process or how to contribute to the Bootstrap
  141801. Script, see the Bootstrap Script\(aqs \fI\%Contributing Guidelines\fP\&.
  141802. .SS Deprecating Code
  141803. .sp
  141804. Salt should remain backwards compatible, though sometimes, this backwards
  141805. compatibility needs to be broken because a specific feature and/or solution is
  141806. no longer necessary or required. At first one might think, let me change this
  141807. code, it seems that it\(aqs not used anywhere else so it should be safe to remove.
  141808. Then, once there\(aqs a new release, users complain about functionality which was
  141809. removed and they where using it, etc. This should, at all costs, be avoided,
  141810. and, in these cases, \fIthat\fP specific code should be deprecated.
  141811. .sp
  141812. In order to give users enough time to migrate from the old code behavior to the
  141813. new behavior, the deprecation time frame should be carefully determined based
  141814. on the significance and complexity of the changes required by the user.
  141815. .sp
  141816. Salt feature releases are based on the Periodic Table. Any new features going
  141817. into the develop branch will be named after the next element in the Periodic
  141818. Table. For example, Beryllium was the feature release name of the develop
  141819. branch before the 2015.8 branch was tagged. At that point in time, any new
  141820. features going into the develop branch after 2015.8 was branched were part of
  141821. the Boron feature release.
  141822. .sp
  141823. A deprecation warning should be in place for at least two major releases before
  141824. the deprecated code and its accompanying deprecation warning are removed. More
  141825. time should be given for more complex changes. For example, if the current
  141826. release under development is \fB3001\fP, the deprecated code and associated
  141827. warnings should remain in place and warn for at least \fBAluminum\fP\&.
  141828. .sp
  141829. To help in this deprecation task, salt provides
  141830. \fBsalt.utils.versions.warn_until\fP\&. The
  141831. idea behind this helper function is to show the deprecation warning to the user
  141832. until salt reaches the provided version. Once that provided version is equaled
  141833. \fBsalt.utils.versions.warn_until\fP will
  141834. raise a \fI\%RuntimeError\fP making salt stop its execution. This stoppage is
  141835. unpleasant and will remind the developer that the deprecation limit has been
  141836. reached and that the code can then be safely removed.
  141837. .sp
  141838. Consider the following example:
  141839. .INDENT 0.0
  141840. .INDENT 3.5
  141841. .sp
  141842. .nf
  141843. .ft C
  141844. def some_function(bar=False, foo=None):
  141845. if foo is not None:
  141846. salt.utils.versions.warn_until(
  141847. "Aluminum",
  141848. "The \(aqfoo\(aq argument has been deprecated and its "
  141849. "functionality removed, as such, its usage is no longer "
  141850. "required.",
  141851. )
  141852. .ft P
  141853. .fi
  141854. .UNINDENT
  141855. .UNINDENT
  141856. .sp
  141857. Development begins on the \fBAluminum\fP release when the \fBMagnesium\fP branch is
  141858. forked from the develop branch. Once this occurs, all uses of the
  141859. \fBwarn_until\fP function targeting \fBAluminum\fP, along with the code they are
  141860. warning about should be removed from the code.
  141861. .SS Python 2 Deprecation FAQ
  141862. .SS FAQ
  141863. .INDENT 0.0
  141864. .IP \(bu 2
  141865. \fI\%Python 2 Deprecation FAQ\fP
  141866. .INDENT 2.0
  141867. .IP \(bu 2
  141868. \fI\%Why are we deprecating Python 2?\fP
  141869. .IP \(bu 2
  141870. \fI\%Was this announced/decided before making the change?\fP
  141871. .IP \(bu 2
  141872. \fI\%Can I contribute Python 2 code?\fP
  141873. .IP \(bu 2
  141874. \fI\%What if my OS does not include Python 3 packages? Or, how do I upgrade from Salt on Python 2 to Salt on Python 3?\fP
  141875. .INDENT 2.0
  141876. .IP \(bu 2
  141877. \fI\%On Modern Platforms\fP
  141878. .IP \(bu 2
  141879. \fI\%On Other Platforms\fP
  141880. .INDENT 2.0
  141881. .IP \(bu 2
  141882. \fI\%Build Your Own\fP
  141883. .IP \(bu 2
  141884. \fI\%pop\-build distributions\fP
  141885. .UNINDENT
  141886. .UNINDENT
  141887. .IP \(bu 2
  141888. \fI\%Will you support a Python 3 master with an older Python 2 minion?\fP
  141889. .IP \(bu 2
  141890. \fI\%Will you support Python 2 master with a new Python 3 minion?\fP
  141891. .IP \(bu 2
  141892. \fI\%How does this impact Salt\-SSH support?\fP
  141893. .IP \(bu 2
  141894. \fI\%What is your plan for removing Python 2 code?\fP
  141895. .IP \(bu 2
  141896. \fI\%Will Salt continue to package for Python 2?\fP
  141897. .UNINDENT
  141898. .UNINDENT
  141899. .SS Why are we deprecating Python 2?
  141900. .sp
  141901. Python 2.7.18 was the final release of Python2, released in April 2020.
  141902. At this point, Python 2 will no longer receive any unpaid support. The
  141903. Python core developers are focusing their efforts on improving and
  141904. enhancing Python 3. Additionally, many libraries that Salt depends on
  141905. have also dropped Python 2 support.
  141906. .sp
  141907. To take advantage of continued support and improvements, Salt is joining
  141908. the ranks of projects that are dropping legacy Python support in favor
  141909. of Python 3.
  141910. .SS Was this announced/decided before making the change?
  141911. .sp
  141912. \fI\%SEP
  141913. 5\fP
  141914. was approved in April, 2019.
  141915. .SS Can I contribute Python 2 code?
  141916. .sp
  141917. For several years, Salt has been a Python 2/3 codebase, requiring Python
  141918. 3 support for all contributions. The only changes contributors can
  141919. expect to this process is that we will now accept Python 3\-only code
  141920. changes.
  141921. .sp
  141922. While there \fIis\fP a significant subset of Python that is compatible with
  141923. both Python 3 and legacy Python, changes requiring \fBsix\fP or otherwise
  141924. removing Python 3\-only code will not be accepted.
  141925. .SS What if my OS does not include Python 3 packages? Or, how do I upgrade from Salt on Python 2 to Salt on Python 3?
  141926. .sp
  141927. There are several options to upgrade to Python 3.
  141928. .SS On Modern Platforms
  141929. .sp
  141930. At this point, most modern Linux distributions have Python 3 packages.
  141931. Ubuntu 20.04 LTS has moved to Python 3.8 as it’s default system Python.
  141932. .SS On Other Platforms
  141933. .SS Build Your Own
  141934. .sp
  141935. If your current distribution does not have Python 3 it’s \fI\%pretty simple
  141936. to use Salt\fP to build
  141937. and distribute Python 3 on your own. Installing Python 3 and pip
  141938. installing Salt gives you the most control over your distribution.
  141939. .SS \fBpop\-build\fP distributions
  141940. .sp
  141941. Another approach is to use the \fBpop\-build\fP distribution of Salt. With
  141942. the Sodium release we will begin releasing packages for Salt using
  141943. \fBpop\-build\fP, in tandem with our normal build process. The
  141944. \fBpop\-build\fP distribution will contain Salt, Python, and any necessary
  141945. dependencies, which will make it trivial to have a completely supported
  141946. version of Salt.
  141947. .SS Will you support a Python 3 master with an older Python 2 minion?
  141948. .sp
  141949. Yes! Our policy of keeping newer masters backwards compatible with \fIat
  141950. least\fP the most recent minion version is not changing. You should be
  141951. able to run modern Salt Masters on Python 3 with slightly older minions
  141952. running on legacy Python. Of course, if you want your minions to be able
  141953. to take advantage of the newest features in Salt, upgrading to Python 3
  141954. will be necessary.
  141955. .SS Will you support Python 2 master with a new Python 3 minion?
  141956. .sp
  141957. In keeping with our existing policy, we make no guarantees about older
  141958. masters with newer minions. It \fImay\fP work, but breakages are common and
  141959. should be expected.
  141960. .SS How does this impact Salt\-SSH support?
  141961. .sp
  141962. Salt\-SSH will need Python 3 on the target minions. We will be upgrading
  141963. Salt\-SSH to provide instructions or recommendations on adding Python3 if
  141964. it is not detected.
  141965. .SS What is your plan for removing Python 2 code?
  141966. .sp
  141967. Legacy Python code will be gradually removed from the Salt codebase.
  141968. .sp
  141969. While we could remove most of it at once, that introduces a high level
  141970. of risk. Instead, beginning with the Sodium (v3001) release, Salt will
  141971. simply drop support for Python 2. PRs will no longer be required to
  141972. support Python 2 before merging.
  141973. .sp
  141974. Over time, as modules are changed, \fBsix\fP and other legacy Python
  141975. syntax will be removed. It may be at some point in the future it becomes
  141976. necessary to remove the last vestiges of legacy Python from Salt, but
  141977. currently the plan is to take a more measured approach.
  141978. .SS Will Salt continue to package for Python 2?
  141979. .sp
  141980. No.\ Beginning with Sodium (v3001), Salt will no longer release packages
  141981. for, or support Python 2.
  141982. .SS Installing Salt for development
  141983. .sp
  141984. Clone the repository using:
  141985. .INDENT 0.0
  141986. .INDENT 3.5
  141987. .sp
  141988. .nf
  141989. .ft C
  141990. git clone https://github.com/saltstack/salt
  141991. .ft P
  141992. .fi
  141993. .UNINDENT
  141994. .UNINDENT
  141995. .sp
  141996. \fBNOTE:\fP
  141997. .INDENT 0.0
  141998. .INDENT 3.5
  141999. tags
  142000. .sp
  142001. Just cloning the repository is enough to work with Salt and make
  142002. contributions. However, fetching additional tags from git is required to
  142003. have Salt report the correct version for itself. To do this, first
  142004. add the git repository as an upstream source:
  142005. .INDENT 0.0
  142006. .INDENT 3.5
  142007. .sp
  142008. .nf
  142009. .ft C
  142010. git remote add upstream https://github.com/saltstack/salt
  142011. .ft P
  142012. .fi
  142013. .UNINDENT
  142014. .UNINDENT
  142015. .sp
  142016. Fetching tags is done with the git \(aqfetch\(aq utility:
  142017. .INDENT 0.0
  142018. .INDENT 3.5
  142019. .sp
  142020. .nf
  142021. .ft C
  142022. git fetch \-\-tags upstream
  142023. .ft P
  142024. .fi
  142025. .UNINDENT
  142026. .UNINDENT
  142027. .UNINDENT
  142028. .UNINDENT
  142029. .sp
  142030. Create a new \fI\%virtualenv\fP:
  142031. .INDENT 0.0
  142032. .INDENT 3.5
  142033. .sp
  142034. .nf
  142035. .ft C
  142036. virtualenv /path/to/your/virtualenv
  142037. .ft P
  142038. .fi
  142039. .UNINDENT
  142040. .UNINDENT
  142041. .sp
  142042. Avoid making your \fI\%virtualenv path too long\fP\&.
  142043. .sp
  142044. On Arch Linux, where Python 3 is the default installation of Python, use
  142045. the \fBvirtualenv2\fP command instead of \fBvirtualenv\fP\&.
  142046. .sp
  142047. On Gentoo you must use \fB\-\-system\-site\-packages\fP to enable pkg and portage_config
  142048. functionality
  142049. .sp
  142050. \fBNOTE:\fP
  142051. .INDENT 0.0
  142052. .INDENT 3.5
  142053. Using system Python modules in the virtualenv
  142054. .sp
  142055. To use already\-installed python modules in virtualenv (instead of having pip
  142056. download and compile new ones), run \fBvirtualenv \-\-system\-site\-packages\fP
  142057. Using this method eliminates the requirement to install the salt dependencies
  142058. again, although it does assume that the listed modules are all installed in the
  142059. system PYTHONPATH at the time of virtualenv creation.
  142060. .UNINDENT
  142061. .UNINDENT
  142062. .sp
  142063. \fBNOTE:\fP
  142064. .INDENT 0.0
  142065. .INDENT 3.5
  142066. Python development package
  142067. .sp
  142068. Be sure to install python devel package in order to install required Python
  142069. modules. In Debian/Ubuntu run \fBsudo apt\-get install \-y python\-dev\fP\&. In RedHat
  142070. based system install \fBpython\-devel\fP
  142071. .UNINDENT
  142072. .UNINDENT
  142073. .sp
  142074. Activate the virtualenv:
  142075. .INDENT 0.0
  142076. .INDENT 3.5
  142077. .sp
  142078. .nf
  142079. .ft C
  142080. source /path/to/your/virtualenv/bin/activate
  142081. .ft P
  142082. .fi
  142083. .UNINDENT
  142084. .UNINDENT
  142085. .sp
  142086. Install Salt (and dependencies) into the virtualenv:
  142087. .INDENT 0.0
  142088. .INDENT 3.5
  142089. .sp
  142090. .nf
  142091. .ft C
  142092. pip install pyzmq PyYAML pycrypto msgpack\-python jinja2 psutil futures tornado
  142093. pip install \-e ./salt # the path to the salt git clone from above
  142094. .ft P
  142095. .fi
  142096. .UNINDENT
  142097. .UNINDENT
  142098. .sp
  142099. \fBNOTE:\fP
  142100. .INDENT 0.0
  142101. .INDENT 3.5
  142102. Installing psutil
  142103. .sp
  142104. Python header files are required to build this module, otherwise the pip
  142105. install will fail. If your distribution separates binaries and headers into
  142106. separate packages, make sure that you have the headers installed. In most
  142107. Linux distributions which split the headers into their own package, this
  142108. can be done by installing the \fBpython\-dev\fP or \fBpython\-devel\fP package.
  142109. For other platforms, the package will likely be similarly named.
  142110. .UNINDENT
  142111. .UNINDENT
  142112. .sp
  142113. \fBNOTE:\fP
  142114. .INDENT 0.0
  142115. .INDENT 3.5
  142116. Installing dependencies on macOS.
  142117. .sp
  142118. You can install needed dependencies on macOS using homebrew or macports.
  142119. See macOS Installation
  142120. .UNINDENT
  142121. .UNINDENT
  142122. .sp
  142123. \fBWARNING:\fP
  142124. .INDENT 0.0
  142125. .INDENT 3.5
  142126. Installing on RedHat\-based Distros
  142127. .sp
  142128. If installing from pip (or from source using \fBsetup.py install\fP), be
  142129. advised that the \fByum\-utils\fP package is needed for Salt to manage
  142130. packages on RedHat\-based systems.
  142131. .UNINDENT
  142132. .UNINDENT
  142133. .SS Running a self\-contained development version
  142134. .sp
  142135. During development it is easiest to be able to run the Salt master and minion
  142136. that are installed in the virtualenv you created above, and also to have all
  142137. the configuration, log, and cache files contained in the virtualenv as well.
  142138. .sp
  142139. The \fB/path/to/your/virtualenv\fP referenced multiple times below is also
  142140. available in the variable \fB$VIRTUAL_ENV\fP once the virtual environment is
  142141. activated.
  142142. .sp
  142143. Copy the master and minion config files into your virtualenv:
  142144. .INDENT 0.0
  142145. .INDENT 3.5
  142146. .sp
  142147. .nf
  142148. .ft C
  142149. mkdir \-p /path/to/your/virtualenv/etc/salt/pki/{master,minion}
  142150. cp ./salt/conf/master ./salt/conf/minion /path/to/your/virtualenv/etc/salt/
  142151. .ft P
  142152. .fi
  142153. .UNINDENT
  142154. .UNINDENT
  142155. .sp
  142156. Edit the master config file:
  142157. .INDENT 0.0
  142158. .IP 1. 3
  142159. Uncomment and change the \fBuser: root\fP value to your own user.
  142160. .IP 2. 3
  142161. Uncomment and change the \fBroot_dir: /\fP value to point to
  142162. \fB/path/to/your/virtualenv\fP\&.
  142163. .IP 3. 3
  142164. Uncomment and change the \fBpki_dir: /etc/salt/pki/master\fP value to point to
  142165. \fB/path/to/your/virtualenv/etc/salt/pki/master\fP
  142166. .IP 4. 3
  142167. If you are running version 0.11.1 or older, uncomment, and change the
  142168. \fBpidfile: /var/run/salt\-master.pid\fP value to point to
  142169. \fB/path/to/your/virtualenv/salt\-master.pid\fP\&.
  142170. .IP 5. 3
  142171. If you are also running a non\-development version of Salt you will have to
  142172. change the \fBpublish_port\fP and \fBret_port\fP values as well.
  142173. .UNINDENT
  142174. .sp
  142175. Edit the minion config file:
  142176. .INDENT 0.0
  142177. .IP 1. 3
  142178. Repeat the edits you made in the master config for the \fBuser\fP and
  142179. \fBroot_dir\fP values as well as any port changes.
  142180. .IP 2. 3
  142181. Uncomment and change the \fBpki_dir: /etc/salt/pki/minion\fP value to point to
  142182. \fB/path/to/your/virtualenv/etc/salt/pki/minion\fP
  142183. .IP 3. 3
  142184. If you are running version 0.11.1 or older, uncomment, and change the
  142185. \fBpidfile: /var/run/salt\-minion.pid\fP value to point to
  142186. \fB/path/to/your/virtualenv/salt\-minion.pid\fP\&.
  142187. .IP 4. 3
  142188. Uncomment and change the \fBmaster: salt\fP value to point at \fBlocalhost\fP\&.
  142189. .IP 5. 3
  142190. Uncomment and change the \fBid:\fP value to something descriptive like
  142191. "saltdev". This isn\(aqt strictly necessary but it will serve as a reminder of
  142192. which Salt installation you are working with.
  142193. .IP 6. 3
  142194. If you changed the \fBret_port\fP value in the master config because you are
  142195. also running a non\-development version of Salt, then you will have to
  142196. change the \fBmaster_port\fP value in the minion config to match.
  142197. .UNINDENT
  142198. .sp
  142199. \fBNOTE:\fP
  142200. .INDENT 0.0
  142201. .INDENT 3.5
  142202. Using \fIsalt\-call\fP with a Standalone Minion
  142203. .sp
  142204. If you plan to run \fIsalt\-call\fP with this self\-contained development
  142205. environment in a masterless setup, you should invoke \fIsalt\-call\fP with
  142206. \fB\-c /path/to/your/virtualenv/etc/salt\fP so that salt can find the minion
  142207. config file. Without the \fB\-c\fP option, Salt finds its config files in
  142208. \fI/etc/salt\fP\&.
  142209. .UNINDENT
  142210. .UNINDENT
  142211. .sp
  142212. Start the master and minion, accept the minion\(aqs key, and verify your local Salt
  142213. installation is working:
  142214. .INDENT 0.0
  142215. .INDENT 3.5
  142216. .sp
  142217. .nf
  142218. .ft C
  142219. cd /path/to/your/virtualenv
  142220. salt\-master \-c ./etc/salt \-d
  142221. salt\-minion \-c ./etc/salt \-d
  142222. salt\-key \-c ./etc/salt \-L
  142223. salt\-key \-c ./etc/salt \-A
  142224. salt \-c ./etc/salt \(aq*\(aq test.version
  142225. .ft P
  142226. .fi
  142227. .UNINDENT
  142228. .UNINDENT
  142229. .sp
  142230. Running the master and minion in debug mode can be helpful when developing. To
  142231. do this, add \fB\-l debug\fP to the calls to \fBsalt\-master\fP and \fBsalt\-minion\fP\&.
  142232. If you would like to log to the console instead of to the log file, remove the
  142233. \fB\-d\fP\&.
  142234. .sp
  142235. \fBNOTE:\fP
  142236. .INDENT 0.0
  142237. .INDENT 3.5
  142238. Too long socket path?
  142239. .sp
  142240. Once the minion starts, you may see an error like the following:
  142241. .INDENT 0.0
  142242. .INDENT 3.5
  142243. .sp
  142244. .nf
  142245. .ft C
  142246. zmq.core.error.ZMQError: ipc path "/path/to/your/virtualenv/
  142247. var/run/salt/minion/minion_event_7824dcbcfd7a8f6755939af70b96249f_pub.ipc"
  142248. is longer than 107 characters (sizeof(sockaddr_un.sun_path)).
  142249. .ft P
  142250. .fi
  142251. .UNINDENT
  142252. .UNINDENT
  142253. .sp
  142254. This means that the path to the socket the minion is using is too long. This is
  142255. a system limitation, so the only workaround is to reduce the length of this
  142256. path. This can be done in a couple different ways:
  142257. .INDENT 0.0
  142258. .IP 1. 3
  142259. Create your virtualenv in a path that is short enough.
  142260. .IP 2. 3
  142261. Edit the \fBsock_dir\fP minion config variable and reduce its
  142262. length. Remember that this path is relative to the value you set in
  142263. \fBroot_dir\fP\&.
  142264. .UNINDENT
  142265. .sp
  142266. \fBNOTE:\fP The socket path is limited to 107 characters on Solaris and Linux,
  142267. and 103 characters on BSD\-based systems.
  142268. .UNINDENT
  142269. .UNINDENT
  142270. .sp
  142271. \fBNOTE:\fP
  142272. .INDENT 0.0
  142273. .INDENT 3.5
  142274. File descriptor limits
  142275. .sp
  142276. Ensure that the system open file limit is raised to at least 2047:
  142277. .INDENT 0.0
  142278. .INDENT 3.5
  142279. .sp
  142280. .nf
  142281. .ft C
  142282. # check your current limit
  142283. ulimit \-n
  142284. # raise the limit. persists only until reboot
  142285. # use \(aqlimit descriptors 2047\(aq for c\-shell
  142286. ulimit \-n 2047
  142287. .ft P
  142288. .fi
  142289. .UNINDENT
  142290. .UNINDENT
  142291. .sp
  142292. To set file descriptors on macOS, refer to the macOS Installation instructions.
  142293. .UNINDENT
  142294. .UNINDENT
  142295. .SS Changing Default Paths
  142296. .sp
  142297. Instead of updating your configuration files to point to the new root directory
  142298. and having to pass the new configuration directory path to all of Salt\(aqs CLI
  142299. tools, you can explicitly tweak the default system paths that Salt expects:
  142300. .INDENT 0.0
  142301. .INDENT 3.5
  142302. .sp
  142303. .nf
  142304. .ft C
  142305. GENERATE_SALT_SYSPATHS=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142306. \-e ./salt # the path to the salt git clone from above
  142307. .ft P
  142308. .fi
  142309. .UNINDENT
  142310. .UNINDENT
  142311. .sp
  142312. You can now call all of Salt\(aqs CLI tools without explicitly passing the configuration directory.
  142313. .SS Additional Options
  142314. .sp
  142315. If you want to distribute your virtualenv, you probably don\(aqt want to include
  142316. Salt\(aqs clone \fB\&.git/\fP directory, and, without it, Salt won\(aqt report the
  142317. accurate version. You can tell \fBsetup.py\fP to generate the hardcoded version
  142318. information which is distributable:
  142319. .INDENT 0.0
  142320. .INDENT 3.5
  142321. .sp
  142322. .nf
  142323. .ft C
  142324. GENERATE_SALT_SYSPATHS=1 WRITE_SALT_VERSION=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142325. \-e ./salt # the path to the salt git clone from above
  142326. .ft P
  142327. .fi
  142328. .UNINDENT
  142329. .UNINDENT
  142330. .sp
  142331. Instead of passing those two environmental variables, you can just pass a
  142332. single one which will trigger the other two:
  142333. .INDENT 0.0
  142334. .INDENT 3.5
  142335. .sp
  142336. .nf
  142337. .ft C
  142338. MIMIC_SALT_INSTALL=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142339. \-e ./salt # the path to the salt git clone from above
  142340. .ft P
  142341. .fi
  142342. .UNINDENT
  142343. .UNINDENT
  142344. .sp
  142345. This last one will grant you an editable salt installation with hardcoded
  142346. system paths and version information.
  142347. .SS Installing Salt from the Python Package Index
  142348. .sp
  142349. If you are installing using \fBeasy_install\fP, you will need to define a
  142350. \fBUSE_SETUPTOOLS\fP environment variable, otherwise dependencies will not
  142351. be installed:
  142352. .INDENT 0.0
  142353. .INDENT 3.5
  142354. .sp
  142355. .nf
  142356. .ft C
  142357. USE_SETUPTOOLS=1 easy_install salt
  142358. .ft P
  142359. .fi
  142360. .UNINDENT
  142361. .UNINDENT
  142362. .SS Editing and previewing the documentation
  142363. .sp
  142364. You need \fBsphinx\-build\fP command to build the docs. In Debian/Ubuntu this is
  142365. provided in the \fBpython\-sphinx\fP package. Sphinx can also be installed
  142366. to a virtualenv using pip:
  142367. .INDENT 0.0
  142368. .INDENT 3.5
  142369. .sp
  142370. .nf
  142371. .ft C
  142372. pip install Sphinx==1.3.1
  142373. .ft P
  142374. .fi
  142375. .UNINDENT
  142376. .UNINDENT
  142377. .sp
  142378. Change to salt documentation directory, then:
  142379. .INDENT 0.0
  142380. .INDENT 3.5
  142381. .sp
  142382. .nf
  142383. .ft C
  142384. cd doc; make html
  142385. .ft P
  142386. .fi
  142387. .UNINDENT
  142388. .UNINDENT
  142389. .INDENT 0.0
  142390. .IP \(bu 2
  142391. This will build the HTML docs. Run \fBmake\fP without any arguments to see the
  142392. available make targets, which include \fBhtml\fP, \fBman\fP, and
  142393. \fBtext\fP\&.
  142394. .IP \(bu 2
  142395. The docs then are built within the \fBdocs/_build/\fP folder. To update
  142396. the docs after making changes, run \fBmake\fP again.
  142397. .IP \(bu 2
  142398. The docs use \fI\%reStructuredText\fP
  142399. for markup.
  142400. See a live demo at \fI\%http://rst.ninjs.org/\fP\&.
  142401. .IP \(bu 2
  142402. The help information on each module or state is culled from the python code
  142403. that runs for that piece. Find them in \fBsalt/modules/\fP or \fBsalt/states/\fP\&.
  142404. .IP \(bu 2
  142405. To build the docs on Arch Linux, the \fBpython2\-sphinx\fP package is
  142406. required. Additionally, it is necessary to tell \fBmake\fP where to find
  142407. the proper \fBsphinx\-build\fP binary, like so:
  142408. .UNINDENT
  142409. .INDENT 0.0
  142410. .INDENT 3.5
  142411. .sp
  142412. .nf
  142413. .ft C
  142414. make SPHINXBUILD=sphinx\-build2 html
  142415. .ft P
  142416. .fi
  142417. .UNINDENT
  142418. .UNINDENT
  142419. .INDENT 0.0
  142420. .IP \(bu 2
  142421. To build the docs on RHEL/CentOS 6, the \fBpython\-sphinx10\fP package
  142422. must be installed from EPEL, and the following make command must be used:
  142423. .UNINDENT
  142424. .INDENT 0.0
  142425. .INDENT 3.5
  142426. .sp
  142427. .nf
  142428. .ft C
  142429. make SPHINXBUILD=sphinx\-build html
  142430. .ft P
  142431. .fi
  142432. .UNINDENT
  142433. .UNINDENT
  142434. .sp
  142435. Once you\(aqve updated the documentation, you can run the following command to
  142436. launch a simple Python HTTP server to see your changes:
  142437. .INDENT 0.0
  142438. .INDENT 3.5
  142439. .sp
  142440. .nf
  142441. .ft C
  142442. cd _build/html; python \-m SimpleHTTPServer
  142443. .ft P
  142444. .fi
  142445. .UNINDENT
  142446. .UNINDENT
  142447. .SS Running unit and integration tests
  142448. .sp
  142449. Run the test suite with following command:
  142450. .INDENT 0.0
  142451. .INDENT 3.5
  142452. .sp
  142453. .nf
  142454. .ft C
  142455. \&./setup.py test
  142456. .ft P
  142457. .fi
  142458. .UNINDENT
  142459. .UNINDENT
  142460. .sp
  142461. See here for more information regarding the test suite.
  142462. .SS Issue and Pull Request Labeling System
  142463. .sp
  142464. SaltStack uses several labeling schemes to help facilitate code contributions
  142465. and bug resolution. See the Labels and Milestones documentation for more information.
  142466. .SS GitHub Labels and Milestones
  142467. .sp
  142468. SaltStack uses several label categories, as well as milestones, to triage
  142469. incoming issues and pull requests in the GitHub issue tracker. Labels are used
  142470. to sort issues by type, priority, severity, status, functional area, functional
  142471. group, and targeted release and pull requests by status, functional area,
  142472. functional group, type of change, and test status. Milestones are used to
  142473. indicate whether an issue is fully triaged or is scheduled to be fixed by
  142474. SaltStack in an upcoming sprint.
  142475. .SS Milestones
  142476. .sp
  142477. All issues are assigned to a milestone, whereas pull requests are almost never
  142478. assigned to a milestone as the mean lifetime of pull requests is short enough
  142479. that there is no need to track them temporally.
  142480. .sp
  142481. SaltStack uses milestones to indicate which issues are blocked on submitter or
  142482. upstream actions, are approved, or are scheduled to be fixed or implemented in
  142483. an upcoming sprint. If an issue is not attached to a sprint milestone, you are
  142484. welcome to work on it at your own desire and convenience. If it is attached to
  142485. a sprint milestone and you have already begun working on it or have a solution
  142486. in mind or have other ideas related to the issue, you are encouraged to
  142487. coordinate with the assignee via the GitHub issue tracker to create the best
  142488. possible solution or implementation.
  142489. .INDENT 0.0
  142490. .IP \(bu 2
  142491. \fBApproved\fP \- The issue has been validated and has all necessary information.
  142492. .IP \(bu 2
  142493. \fBBlocked\fP \- The issue is waiting on actions by parties outside of
  142494. SaltStack, such as receiving more information from the submitter or
  142495. resolution of an upstream issue. This milestone is usually applied in
  142496. conjunction with the labels \fBInfo Needed\fP, \fBQuestion\fP,
  142497. \fBExpected Behavior\fP, \fBWon\(aqt Fix For Now\fP, or \fBUpstream Bug\fP\&.
  142498. .UNINDENT
  142499. .SS Labels
  142500. .sp
  142501. Labels are used to sort and describe issues and pull requests. Some labels are
  142502. usually reserved for one or the other, though most labels may be applied to
  142503. both.
  142504. .sp
  142505. New issues will receive at least one label and a milestone, and new pull
  142506. requests will receive at least one label. Except for the \fI\%functional area\fP and \fI\%functional group\fP
  142507. label categories, issues will generally receive only up to one label per
  142508. category.
  142509. .SS Type
  142510. .sp
  142511. Issues are categorized into one of several types. Type labels are almost never
  142512. used for pull requests. GitHub treats pull requests like issues in many ways,
  142513. so a pull request could be considered an issue with an implicit \fBPull
  142514. Request\fP type label applied.
  142515. .INDENT 0.0
  142516. .IP \(bu 2
  142517. \fBFeature\fP \- The issue is a request for new functionality including changes,
  142518. enhancements, refactors, etc.
  142519. .IP \(bu 2
  142520. \fBBug\fP \- The issue documents broken, incorrect, or confusing behavior. This
  142521. label is always accompanied by a \fI\%severity label\fP\&.
  142522. .IP \(bu 2
  142523. \fBDuplicate\fP \- The issue is a duplicate of another feature request or bug
  142524. report.
  142525. .IP \(bu 2
  142526. \fBUpstream Bug\fP \- The issue is a result of an upstream issue.
  142527. .IP \(bu 2
  142528. \fBQuestion\fP \- The issue is more of a question than a request for new
  142529. features or a report of broken features, but can sometimes lead to further
  142530. discussion or changes of confusing or incongruous behavior or documentation.
  142531. .IP \(bu 2
  142532. \fBExpected Behavior\fP \- The issue is a bug report of intended functionality.
  142533. .UNINDENT
  142534. .SS Priority
  142535. .sp
  142536. An issue\(aqs priority is relative to its \fI\%functional area\fP\&. If a bug report, for example, about \fBgitfs\fP
  142537. indicates that all users of \fBgitfs\fP will encounter this bug, then a \fBP1\fP
  142538. label will be applied, even though users who are not using \fBgitfs\fP will not
  142539. encounter the bug. If a feature is requested by many users, it may be given a
  142540. high priority.
  142541. .INDENT 0.0
  142542. .IP \(bu 2
  142543. \fBP1\fP \- The issue will be seen by all users.
  142544. .IP \(bu 2
  142545. \fBP2\fP \- The issue will be seen by most users.
  142546. .IP \(bu 2
  142547. \fBP3\fP \- The issue will be seen by about half of users.
  142548. .IP \(bu 2
  142549. \fBP4\fP \- The issue will not be seen by most users. Usually the issue is a
  142550. very specific use case or corner case.
  142551. .UNINDENT
  142552. .SS Severity
  142553. .sp
  142554. Severity labels are almost always only applied to issues labeled \fBBug\fP\&.
  142555. .INDENT 0.0
  142556. .IP \(bu 2
  142557. \fBBlocker\fP \- The issue is blocking an impending release.
  142558. .IP \(bu 2
  142559. \fBCritical\fP \- The issue causes data loss, crashes or hangs salt processes,
  142560. makes the system unresponsive, etc.
  142561. .IP \(bu 2
  142562. \fBHigh Severity\fP \- The issue reports incorrect functionality, bad
  142563. functionality, a confusing user experience, etc.
  142564. .IP \(bu 2
  142565. \fBMedium Severity\fP \- The issue reports cosmetic items, formatting, spelling,
  142566. colors, etc.
  142567. .UNINDENT
  142568. .SS Functional Area
  142569. .sp
  142570. Many major components of Salt have corresponding GitHub labels. These labels
  142571. are applied to all issues and pull requests as is reasonably appropriate. They
  142572. are useful in organizing issues and pull requests according to the source code
  142573. relevant to issues or the source code changed by pull requests.
  142574. .INDENT 0.0
  142575. .IP \(bu 2
  142576. \fBExecution Module\fP
  142577. .IP \(bu 2
  142578. \fBFile Servers\fP
  142579. .IP \(bu 2
  142580. \fBGrains\fP
  142581. .IP \(bu 2
  142582. \fBMulti\-Master\fP
  142583. .IP \(bu 2
  142584. \fBPackaging\fP Related to packaging of Salt, not Salt\(aqs support for package management.
  142585. .IP \(bu 2
  142586. \fBPillar\fP
  142587. .IP \(bu 2
  142588. \fBRAET\fP
  142589. .IP \(bu 2
  142590. \fBReturners\fP
  142591. .IP \(bu 2
  142592. \fBRunners\fP
  142593. .IP \(bu 2
  142594. \fBSPM\fP
  142595. .IP \(bu 2
  142596. \fBSalt\-API\fP
  142597. .IP \(bu 2
  142598. \fBSalt\-Cloud\fP
  142599. .IP \(bu 2
  142600. \fBSalt\-SSH\fP
  142601. .IP \(bu 2
  142602. \fBSalt\-Syndic\fP
  142603. .IP \(bu 2
  142604. \fBState Module\fP
  142605. .IP \(bu 2
  142606. \fBTests\fP
  142607. .IP \(bu 2
  142608. \fBTransport\fP
  142609. .IP \(bu 2
  142610. \fBWindows\fP
  142611. .IP \(bu 2
  142612. \fBZMQ\fP
  142613. .UNINDENT
  142614. .SS Functional Group
  142615. .sp
  142616. These labels sort issues and pull requests according to the internal SaltStack
  142617. engineering teams.
  142618. .INDENT 0.0
  142619. .IP \(bu 2
  142620. \fBCore\fP \- The issue or pull request relates to code that is central or
  142621. existential to Salt itself.
  142622. .IP \(bu 2
  142623. \fBPlatform\fP \- The issue or pull request relates to support and integration
  142624. with various platforms like traditional operating systems as well as
  142625. containers, platform\-based utilities like filesystems, command schedulers,
  142626. etc., and system\-based applications like webservers, databases, etc.
  142627. .IP \(bu 2
  142628. \fBRIoT\fP \- The issue or pull request relates to support and integration with
  142629. various abstract systems like cloud providers, hypervisors, API\-based
  142630. services, etc.
  142631. .IP \(bu 2
  142632. \fBConsole\fP \- The issue or pull request relates to the SaltStack enterprise
  142633. console.
  142634. .IP \(bu 2
  142635. \fBDocumentation\fP \- The issue or pull request relates to documentation.
  142636. .UNINDENT
  142637. .SS Status
  142638. .sp
  142639. Status labels are used to define and track the state of issues and pull
  142640. requests. Not all potential statuses correspond to a label, but some statuses
  142641. are common enough that labels have been created for them. If an issue has not
  142642. been moved beyond the \fBBlocked\fP milestone, it is very likely that it will
  142643. only have a status label.
  142644. .INDENT 0.0
  142645. .IP \(bu 2
  142646. \fBBugfix \- back\-port\fP The pull request needs to be back\-ported to an older
  142647. release branch. This is done by recreating the pull request against that branch. Once the back\-port is
  142648. completed, this label is replaced with a \fBBugfix \- [Done] back\-ported\fP
  142649. label. Normally, new features should go into the develop and bug fixes into
  142650. the oldest supported release branch, see here\&.
  142651. .IP \(bu 2
  142652. \fBBugfix \- [Done] back\-ported\fP \- The pull request has been back\-ported to an
  142653. older branch.
  142654. .IP \(bu 2
  142655. \fBCannot Reproduce\fP \- The issue is a bug and has been reviewed by a
  142656. SaltStack engineer, but it cannot be replicated with the provided information
  142657. and context. Those involved with the bug will need to work through
  142658. additional ideas until the bug can be isolated and verified.
  142659. .IP \(bu 2
  142660. \fBConfirmed\fP \- The issue is a bug and has been confirmed by a SaltStack
  142661. engineer, who often documents a minimal working example that reproduces the
  142662. bug.
  142663. .IP \(bu 2
  142664. \fBFixed Pending Verification\fP \- The issue is a bug and has been fixed by one
  142665. or more pull requests, which should link to the issue. Closure of the issue
  142666. is contingent upon confirmation of resolution from the submitter. If the
  142667. submitter reports a negative confirmation, this label is removed. If no
  142668. response is given after a few weeks, then the issue will be assumed fixed and
  142669. closed.
  142670. .IP \(bu 2
  142671. \fBInfo Needed\fP \- The issue needs more information before it can be verified
  142672. and resolved. For a feature request this may include a description of the
  142673. use cases. Almost all bug reports need to include at least the versions of
  142674. salt and its dependencies, the system type and version, commands used, debug
  142675. logs, error messages, and relevant configs.
  142676. .IP \(bu 2
  142677. \fBPending Changes\fP \- The pull request needs additional changes before it can
  142678. be merged.
  142679. .IP \(bu 2
  142680. \fBPending Discussion\fP \- The issue or pull request needs more discussion
  142681. before it can be closed or merged. The status of the issue or pull request
  142682. is not clear or apparent enough for definite action to be taken, or
  142683. additional input from SaltStack, the submitter, or another party has been
  142684. requested.
  142685. .sp
  142686. If the issue is not a pull request, once the discussion has arrived at a
  142687. cogent conclusion, this label will be removed and the issue will be accepted.
  142688. If it is a pull request, the results of the discussion may require additional
  142689. changes and thus, a \fBPending Changes\fP label.
  142690. .IP \(bu 2
  142691. \fBWon\(aqt Fix for Now\fP \- The issue is legitimate, but it is not something the
  142692. SaltStack team is currently able or willing to fix or implement. Issues
  142693. having this label may be revisited in the future.
  142694. .UNINDENT
  142695. .SS Type of Change
  142696. .sp
  142697. Every pull request should receive a change label. These labels measure the
  142698. quantity of change as well as the significance of the change. The amount of
  142699. change and the importance of the code area changed are considered, but often
  142700. the depth of secondary code review required and the potential repercussions of
  142701. the change may also advise the label choice.
  142702. .sp
  142703. Core code areas include: state compiler, crypto engine, master and minion and
  142704. syndic daemons, transport, pillar rendering, loader, transport layer, event
  142705. system, salt.utils, client, cli, logging, netapi, runner engine, templating
  142706. engine, top file compilation, file client, file server, mine, salt\-ssh, test
  142707. runner, etc.
  142708. .sp
  142709. Non\-core code usually constitutes the specific set of plugins for each of the
  142710. several plugin layers of Salt: execution modules, states, runners, returners,
  142711. clouds, etc.
  142712. .INDENT 0.0
  142713. .IP \(bu 2
  142714. \fBMinor Change\fP
  142715. .INDENT 2.0
  142716. .IP \(bu 2
  142717. Less than 64 lines changed, or
  142718. .IP \(bu 2
  142719. Less than 8 core lines changed
  142720. .UNINDENT
  142721. .IP \(bu 2
  142722. \fBMedium Change\fP
  142723. .INDENT 2.0
  142724. .IP \(bu 2
  142725. Less than 256 lines changed, or
  142726. .IP \(bu 2
  142727. Less than 64 core lines changed
  142728. .UNINDENT
  142729. .IP \(bu 2
  142730. \fBMaster Change\fP
  142731. .INDENT 2.0
  142732. .IP \(bu 2
  142733. More than 256 lines changed, or
  142734. .IP \(bu 2
  142735. More than 64 core lines changed
  142736. .UNINDENT
  142737. .IP \(bu 2
  142738. \fBExpert Change\fP
  142739. .INDENT 2.0
  142740. .IP \(bu 2
  142741. Needs specialized, in\-depth review
  142742. .UNINDENT
  142743. .UNINDENT
  142744. .SS Test Status
  142745. .sp
  142746. These labels relate to the status of the automated tests that run on pull
  142747. requests. If the tests on a pull request fail and are not overridden by one of
  142748. these labels, the pull request submitter needs to update the code and/or tests
  142749. so that the tests pass and the pull request can be merged.
  142750. .INDENT 0.0
  142751. .IP \(bu 2
  142752. \fBLint\fP \- The pull request has passed all tests except for the code lint
  142753. checker.
  142754. .IP \(bu 2
  142755. \fBTests Passed\fP \- The pull request has passed all tests even though some
  142756. test results are negative. Sometimes the automated testing infrastructure
  142757. will encounter internal errors unrelated to the code change in the pull
  142758. request that cause test runs to fail. These errors can be caused by cloud
  142759. host and network issues and also Jenkins issues like erroneously accumulating
  142760. workspace artifacts, resource exhaustion, and bugs that arise from long
  142761. running Jenkins processes.
  142762. .UNINDENT
  142763. .SS Other
  142764. .sp
  142765. These labels indicate miscellaneous issue types or statuses that are common or
  142766. important enough to be tracked and sorted with labels.
  142767. .INDENT 0.0
  142768. .IP \(bu 2
  142769. \fBAwesome\fP \- The pull request implements an especially well crafted
  142770. solution, or a very difficult but necessary change.
  142771. .IP \(bu 2
  142772. \fBHelp Wanted\fP \- The issue appears to have a simple solution. Issues having
  142773. this label should be a good starting place for new contributors to Salt.
  142774. .IP \(bu 2
  142775. \fBNeeds Testcase\fP \- The issue or pull request relates to a feature that
  142776. needs test coverage. The pull request containing the tests should reference
  142777. the issue or pull request having this label, whereupon the label should be
  142778. removed.
  142779. .IP \(bu 2
  142780. \fBRegression\fP \- The issue is a bug that breaks functionality known to work
  142781. in previous releases.
  142782. .IP \(bu 2
  142783. \fBStory\fP \- The issue is used by a SaltStack engineer to track progress on
  142784. multiple related issues in a single place.
  142785. .IP \(bu 2
  142786. \fBStretch\fP \- The issue is an optional goal for the current sprint but may
  142787. not be delivered.
  142788. .IP \(bu 2
  142789. \fBZD\fP \- The issue is related to a Zendesk customer support ticket.
  142790. .IP \(bu 2
  142791. \fB<Release>\fP \- The issue is scheduled to be implemented by \fB<Release>\fP\&.
  142792. See here for a discussion of Salt\(aqs release
  142793. codenames.
  142794. .UNINDENT
  142795. .SS Logging Internals
  142796. .sp
  142797. TODO
  142798. .SS Package Providers
  142799. .sp
  142800. This page contains guidelines for writing package providers.
  142801. .SS Package Functions
  142802. .sp
  142803. One of the most important features of Salt is package management. There is no
  142804. shortage of package managers, so in the interest of providing a consistent
  142805. experience in \fBpkg\fP states, there are certain functions
  142806. that should be present in a package provider. Note that these are subject to
  142807. change as new features are added or existing features are enhanced.
  142808. .SS list_pkgs
  142809. .sp
  142810. This function should declare an empty dict, and then add packages to it by
  142811. calling \fBpkg_resource.add_pkg\fP, like
  142812. so:
  142813. .INDENT 0.0
  142814. .INDENT 3.5
  142815. .sp
  142816. .nf
  142817. .ft C
  142818. __salt__["pkg_resource.add_pkg"](ret, name, version)
  142819. .ft P
  142820. .fi
  142821. .UNINDENT
  142822. .UNINDENT
  142823. .sp
  142824. The last thing that should be done before returning is to execute
  142825. \fBpkg_resource.sort_pkglist\fP\&. This
  142826. function does not presently do anything to the return dict, but will be used in
  142827. future versions of Salt.
  142828. .INDENT 0.0
  142829. .INDENT 3.5
  142830. .sp
  142831. .nf
  142832. .ft C
  142833. __salt__["pkg_resource.sort_pkglist"](ret)
  142834. .ft P
  142835. .fi
  142836. .UNINDENT
  142837. .UNINDENT
  142838. .sp
  142839. \fBlist_pkgs\fP returns a dictionary of installed packages, with the keys being
  142840. the package names and the values being the version installed. Example return
  142841. data:
  142842. .INDENT 0.0
  142843. .INDENT 3.5
  142844. .sp
  142845. .nf
  142846. .ft C
  142847. {"foo": "1.2.3\-4", "bar": "5.6.7\-8"}
  142848. .ft P
  142849. .fi
  142850. .UNINDENT
  142851. .UNINDENT
  142852. .SS latest_version
  142853. .sp
  142854. Accepts an arbitrary number of arguments. Each argument is a package name. The
  142855. return value for a package will be an empty string if the package is not found
  142856. or if the package is up\-to\-date. The only case in which a non\-empty string is
  142857. returned is if the package is available for new installation (i.e. not already
  142858. installed) or if there is an upgrade available.
  142859. .sp
  142860. If only one argument was passed, this function return a string, otherwise a
  142861. dict of name/version pairs is returned.
  142862. .sp
  142863. This function must also accept \fB**kwargs\fP, in order to receive the
  142864. \fBfromrepo\fP and \fBrepo\fP keyword arguments from pkg states. Where supported,
  142865. these arguments should be used to find the install/upgrade candidate in the
  142866. specified repository. The \fBfromrepo\fP kwarg takes precedence over \fBrepo\fP, so
  142867. if both of those kwargs are present, the repository specified in \fBfromrepo\fP
  142868. should be used. However, if \fBrepo\fP is used instead of \fBfromrepo\fP, it should
  142869. still work, to preserve backwards compatibility with older versions of Salt.
  142870. .SS version
  142871. .sp
  142872. Like \fBlatest_version\fP, accepts an arbitrary number of arguments and
  142873. returns a string if a single package name was passed, or a dict of name/value
  142874. pairs if more than one was passed. The only difference is that the return
  142875. values are the currently\-installed versions of whatever packages are passed. If
  142876. the package is not installed, an empty string is returned for that package.
  142877. .SS upgrade_available
  142878. .sp
  142879. Deprecated and destined to be removed. For now, should just do the following:
  142880. .INDENT 0.0
  142881. .INDENT 3.5
  142882. .sp
  142883. .nf
  142884. .ft C
  142885. return __salt__["pkg.latest_version"](name) != ""
  142886. .ft P
  142887. .fi
  142888. .UNINDENT
  142889. .UNINDENT
  142890. .SS install
  142891. .sp
  142892. The following arguments are required and should default to \fBNone\fP:
  142893. .INDENT 0.0
  142894. .IP 1. 3
  142895. name (for single\-package pkg states)
  142896. .IP 2. 3
  142897. pkgs (for multiple\-package pkg states)
  142898. .IP 3. 3
  142899. sources (for binary package file installation)
  142900. .UNINDENT
  142901. .sp
  142902. The first thing that this function should do is call
  142903. \fBpkg_resource.parse_targets\fP
  142904. (see below). This function will convert the SLS input into a more easily parsed
  142905. data structure.
  142906. \fBpkg_resource.parse_targets\fP may
  142907. need to be modified to support your new package provider, as it does things
  142908. like parsing package metadata which cannot be done for every package management
  142909. system.
  142910. .INDENT 0.0
  142911. .INDENT 3.5
  142912. .sp
  142913. .nf
  142914. .ft C
  142915. pkg_params, pkg_type = __salt__["pkg_resource.parse_targets"](name, pkgs, sources)
  142916. .ft P
  142917. .fi
  142918. .UNINDENT
  142919. .UNINDENT
  142920. .sp
  142921. Two values will be returned to the \fBinstall\fP function. The first of
  142922. them will be a dictionary. The keys of this dictionary will be package names,
  142923. though the values will differ depending on what kind of installation is being
  142924. done:
  142925. .INDENT 0.0
  142926. .IP \(bu 2
  142927. If \fBname\fP was provided (and \fBpkgs\fP was not), then there will
  142928. be a single key in the dictionary, and its value will be \fBNone\fP\&. Once the
  142929. data has been returned, if the \fBversion\fP keyword argument was
  142930. provided, then it should replace the \fBNone\fP value in the dictionary.
  142931. .IP \(bu 2
  142932. If \fBpkgs\fP was provided, then \fBname\fP is ignored, and the
  142933. dictionary will contain one entry for each package in the \fBpkgs\fP
  142934. list. The values in the dictionary will be \fBNone\fP if a version was not
  142935. specified for the package, and the desired version if specified. See the
  142936. \fBMultiple Package Installation Options\fP section of the
  142937. \fBpkg.installed\fP state for more info.
  142938. .IP \(bu 2
  142939. If \fBsources\fP was provided, then \fBname\fP is ignored, and the
  142940. dictionary values will be the path/URI for the package.
  142941. .UNINDENT
  142942. .sp
  142943. The second return value will be a string with two possible values:
  142944. \fBrepository\fP or \fBfile\fP\&. The \fBinstall\fP function can use this value
  142945. (if necessary) to build the proper command to install the targeted package(s).
  142946. .sp
  142947. Both before and after the installing the target(s), you should run
  142948. \fBlist_pkgs\fP to obtain a list of the installed packages. You should then
  142949. return the output of \fBsalt.utils.data.compare_dicts()\fP:
  142950. .INDENT 0.0
  142951. .INDENT 3.5
  142952. .sp
  142953. .nf
  142954. .ft C
  142955. return salt.utils.data.compare_dicts(old, new)
  142956. .ft P
  142957. .fi
  142958. .UNINDENT
  142959. .UNINDENT
  142960. .SS remove
  142961. .sp
  142962. Removes the passed package and return a list of the packages removed.
  142963. .SS Package Repo Functions
  142964. .sp
  142965. There are some functions provided by \fBpkg\fP which are specific to package
  142966. repositories, and not to packages themselves. When writing modules for new
  142967. package managers, these functions should be made available as stated below, in
  142968. order to provide compatibility with the \fBpkgrepo\fP state.
  142969. .sp
  142970. All repo functions should accept a basedir option, which defines which
  142971. directory repository configuration should be found in. The default for this
  142972. is dictated by the repo manager that is being used, and rarely needs to be
  142973. changed.
  142974. .INDENT 0.0
  142975. .INDENT 3.5
  142976. .sp
  142977. .nf
  142978. .ft C
  142979. basedir = "/etc/yum.repos.d"
  142980. __salt__["pkg.list_repos"](basedir)
  142981. .ft P
  142982. .fi
  142983. .UNINDENT
  142984. .UNINDENT
  142985. .SS list_repos
  142986. .sp
  142987. Lists the repositories that are currently configured on this system.
  142988. .INDENT 0.0
  142989. .INDENT 3.5
  142990. .sp
  142991. .nf
  142992. .ft C
  142993. __salt__["pkg.list_repos"]()
  142994. .ft P
  142995. .fi
  142996. .UNINDENT
  142997. .UNINDENT
  142998. .sp
  142999. Returns a dictionary, in the following format:
  143000. .INDENT 0.0
  143001. .INDENT 3.5
  143002. .sp
  143003. .nf
  143004. .ft C
  143005. {\(aqreponame\(aq: \(aqconfig_key_1\(aq: \(aqconfig value 1\(aq,
  143006. \(aqconfig_key_2\(aq: \(aqconfig value 2\(aq,
  143007. \(aqconfig_key_3\(aq: [\(aqlist item 1 (when appropriate)\(aq,
  143008. \(aqlist item 2 (when appropriate)]}
  143009. .ft P
  143010. .fi
  143011. .UNINDENT
  143012. .UNINDENT
  143013. .SS get_repo
  143014. .sp
  143015. Displays all local configuration for a specific repository.
  143016. .INDENT 0.0
  143017. .INDENT 3.5
  143018. .sp
  143019. .nf
  143020. .ft C
  143021. __salt__["pkg.get_repo"](repo="myrepo")
  143022. .ft P
  143023. .fi
  143024. .UNINDENT
  143025. .UNINDENT
  143026. .sp
  143027. The information is formatted in much the same way as list_repos, but is
  143028. specific to only one repo.
  143029. .INDENT 0.0
  143030. .INDENT 3.5
  143031. .sp
  143032. .nf
  143033. .ft C
  143034. {\(aqconfig_key_1\(aq: \(aqconfig value 1\(aq,
  143035. \(aqconfig_key_2\(aq: \(aqconfig value 2\(aq,
  143036. \(aqconfig_key_3\(aq: [\(aqlist item 1 (when appropriate)\(aq,
  143037. \(aqlist item 2 (when appropriate)]}
  143038. .ft P
  143039. .fi
  143040. .UNINDENT
  143041. .UNINDENT
  143042. .SS del_repo
  143043. .sp
  143044. Removes the local configuration for a specific repository. Requires a \fIrepo\fP
  143045. argument, which must match the locally configured name. This function returns
  143046. a string, which informs the user as to whether or not the operation was a
  143047. success.
  143048. .INDENT 0.0
  143049. .INDENT 3.5
  143050. .sp
  143051. .nf
  143052. .ft C
  143053. __salt__["pkg.del_repo"](repo="myrepo")
  143054. .ft P
  143055. .fi
  143056. .UNINDENT
  143057. .UNINDENT
  143058. .SS mod_repo
  143059. .sp
  143060. Modify the local configuration for one or more option for a configured repo.
  143061. This is also the way to create new repository configuration on the local
  143062. system; if a repo is specified which does not yet exist, it will be created.
  143063. .sp
  143064. The options specified for this function are specific to the system; please
  143065. refer to the documentation for your specific repo manager for specifics.
  143066. .INDENT 0.0
  143067. .INDENT 3.5
  143068. .sp
  143069. .nf
  143070. .ft C
  143071. __salt__["pkg.mod_repo"](repo="myrepo", url="http://myurl.com/repo")
  143072. .ft P
  143073. .fi
  143074. .UNINDENT
  143075. .UNINDENT
  143076. .SS Low\-Package Functions
  143077. .sp
  143078. In general, the standard package functions as describes above will meet your
  143079. needs. These functions use the system\(aqs native repo manager (for instance,
  143080. yum or the apt tools). In most cases, the repo manager is actually separate
  143081. from the package manager. For instance, yum is usually a front\-end for rpm, and
  143082. apt is usually a front\-end for dpkg. When possible, the package functions that
  143083. use those package managers directly should do so through the low package
  143084. functions.
  143085. .sp
  143086. It is normal and sane for \fBpkg\fP to make calls to \fBlowpkgs\fP, but \fBlowpkg\fP
  143087. must never make calls to \fBpkg\fP\&. This is affects functions which are required
  143088. by both \fBpkg\fP and \fBlowpkg\fP, but the technique in \fBpkg\fP is more performant
  143089. than what is available to \fBlowpkg\fP\&. When this is the case, the \fBlowpkg\fP
  143090. function that requires that technique must still use the \fBlowpkg\fP version.
  143091. .SS list_pkgs
  143092. .sp
  143093. Returns a dict of packages installed, including the package name and version.
  143094. Can accept a list of packages; if none are specified, then all installed
  143095. packages will be listed.
  143096. .INDENT 0.0
  143097. .INDENT 3.5
  143098. .sp
  143099. .nf
  143100. .ft C
  143101. installed = __salt__["lowpkg.list_pkgs"]("foo", "bar")
  143102. .ft P
  143103. .fi
  143104. .UNINDENT
  143105. .UNINDENT
  143106. .sp
  143107. Example output:
  143108. .INDENT 0.0
  143109. .INDENT 3.5
  143110. .sp
  143111. .nf
  143112. .ft C
  143113. {"foo": "1.2.3\-4", "bar": "5.6.7\-8"}
  143114. .ft P
  143115. .fi
  143116. .UNINDENT
  143117. .UNINDENT
  143118. .SS verify
  143119. .sp
  143120. Many (but not all) package management systems provide a way to verify that the
  143121. files installed by the package manager have or have not changed. This function
  143122. accepts a list of packages; if none are specified, all packages will be
  143123. included.
  143124. .INDENT 0.0
  143125. .INDENT 3.5
  143126. .sp
  143127. .nf
  143128. .ft C
  143129. installed = __salt__["lowpkg.verify"]("httpd")
  143130. .ft P
  143131. .fi
  143132. .UNINDENT
  143133. .UNINDENT
  143134. .sp
  143135. Example output:
  143136. .INDENT 0.0
  143137. .INDENT 3.5
  143138. .sp
  143139. .nf
  143140. .ft C
  143141. {
  143142. "/etc/httpd/conf/httpd.conf": {
  143143. "mismatch": ["size", "md5sum", "mtime"],
  143144. "type": "config",
  143145. }
  143146. }
  143147. .ft P
  143148. .fi
  143149. .UNINDENT
  143150. .UNINDENT
  143151. .SS file_list
  143152. .sp
  143153. Lists all of the files installed by all packages specified. If not packages are
  143154. specified, then all files for all known packages are returned.
  143155. .INDENT 0.0
  143156. .INDENT 3.5
  143157. .sp
  143158. .nf
  143159. .ft C
  143160. installed = __salt__["lowpkg.file_list"]("httpd", "apache")
  143161. .ft P
  143162. .fi
  143163. .UNINDENT
  143164. .UNINDENT
  143165. .sp
  143166. This function does not return which files belong to which packages; all files
  143167. are returned as one giant list (hence the \fIfile_list\fP function name. However,
  143168. This information is still returned inside of a dict, so that it can provide
  143169. any errors to the user in a sane manner.
  143170. .INDENT 0.0
  143171. .INDENT 3.5
  143172. .sp
  143173. .nf
  143174. .ft C
  143175. {
  143176. "errors": ["package apache is not installed"],
  143177. "files": ["/etc/httpd", "/etc/httpd/conf", "/etc/httpd/conf.d", "...SNIP..."],
  143178. }
  143179. .ft P
  143180. .fi
  143181. .UNINDENT
  143182. .UNINDENT
  143183. .SS file_dict
  143184. .sp
  143185. Lists all of the files installed by all packages specified. If not packages are
  143186. specified, then all files for all known packages are returned.
  143187. .INDENT 0.0
  143188. .INDENT 3.5
  143189. .sp
  143190. .nf
  143191. .ft C
  143192. installed = __salt__["lowpkg.file_dict"]("httpd", "apache", "kernel")
  143193. .ft P
  143194. .fi
  143195. .UNINDENT
  143196. .UNINDENT
  143197. .sp
  143198. Unlike \fIfile_list\fP, this function will break down which files belong to which
  143199. packages. It will also return errors in the same manner as \fIfile_list\fP\&.
  143200. .INDENT 0.0
  143201. .INDENT 3.5
  143202. .sp
  143203. .nf
  143204. .ft C
  143205. {
  143206. "errors": ["package apache is not installed"],
  143207. "packages": {
  143208. "httpd": ["/etc/httpd", "/etc/httpd/conf", "...SNIP..."],
  143209. "kernel": [
  143210. "/boot/.vmlinuz\-2.6.32\-279.el6.x86_64.hmac",
  143211. "/boot/System.map\-2.6.32\-279.el6.x86_64",
  143212. "...SNIP...",
  143213. ],
  143214. },
  143215. }
  143216. .ft P
  143217. .fi
  143218. .UNINDENT
  143219. .UNINDENT
  143220. .SS Pull Requests
  143221. .sp
  143222. Salt is a large software project with many developers working together. We
  143223. encourage all Salt users to contribute new features, bug fixes and
  143224. documentation fixes. For those who haven\(aqt contributed to a large software
  143225. project before we encourage you to consider the following questions when
  143226. preparing a pull request.
  143227. .sp
  143228. This isn\(aqt an exhaustive list and these aren\(aqt necessarily hard and fast rules,
  143229. but these are things we consider when reviewing a pull request.
  143230. .INDENT 0.0
  143231. .IP \(bu 2
  143232. Does this change work on all platforms? In cases where it does not, is an
  143233. appropriate and easy\-to\-understand reason presented to the user? Is it
  143234. documented as\-such? Have we thought about all the possible ways this code
  143235. might be used and accounted as best we can for them?
  143236. .IP \(bu 2
  143237. Will this code work on versions of all Python we support? Will it work on
  143238. future versions?
  143239. .IP \(bu 2
  143240. Are Python reserved keywords used? Are variables named in a way that will
  143241. make it easy for the next person to understand what\(aqs going on?
  143242. .IP \(bu 2
  143243. Does this code present a security risk in any way? What is the worst possible
  143244. thing that an attacker could do with this code? If dangerous cases are
  143245. possible, is it appropriate to document them? If so, has this been done?
  143246. Would this change pass muster with a professional security audit? Is it
  143247. obvious to a person using this code what the risks are?
  143248. .IP \(bu 2
  143249. Is it readable? Does it conform to our \fI\%style guide\fP? Is the code documented
  143250. such that the next person who comes along will be able to read and understand
  143251. it? Most especially, are edge\-cases documented to avoid regressions? Will it
  143252. be immediately evident to the next person who comes along why this change was
  143253. made?
  143254. .UNINDENT
  143255. .INDENT 0.0
  143256. .IP \(bu 2
  143257. If appropriate, has the person who wrote the code which is being modified
  143258. been notified and included in the process?
  143259. .IP \(bu 2
  143260. What are the performance implications of this change? Is there a more
  143261. efficient way to structure the logic and if so, does making the change
  143262. balance itself against readability in a sensible way? Do the performance
  143263. characteristics of the code change based on the way it is being invoked
  143264. (i.e., through an API or various command\-line tools.) Will it be easy to
  143265. profile this change if it might be a problem?
  143266. .IP \(bu 2
  143267. Are caveats considered and documented in the change?
  143268. .IP \(bu 2
  143269. Will the code scale? More critically, will it scale in \fIboth\fP directions?
  143270. Salt runs in data\-centers and on Raspberry Pi installations in the Sahara. It
  143271. needs to work on big servers and tiny devices.
  143272. .IP \(bu 2
  143273. Is appropriate documentation written both in public\-facing docs and in\-line?
  143274. How will the user know how to use this? What will they do if it doesn\(aqt work
  143275. as expected? Is this something a new user will understand? Can a user know
  143276. all they need to about this functionality by reading the public docs?
  143277. .IP \(bu 2
  143278. Is this a change in behavior? If so, is it in the appropriate branch? Are
  143279. deprecation warnings necessary? Have those changes been fully documented?
  143280. Have we fully thought through what implications a change in behavior might
  143281. have?
  143282. .IP \(bu 2
  143283. How has the code been tested? If appropriate are there automated tests which
  143284. cover this? Is it likely to regress? If so, how has the potential of that
  143285. regression been mitigated? What is the plan for ensuring that this code works
  143286. going forward?
  143287. .IP \(bu 2
  143288. If it\(aqs asynchronous code, what is the potential for a race condition?
  143289. .IP \(bu 2
  143290. Is this code an original work? If it\(aqs borrowed from another project or found
  143291. online are the appropriate licensing/attribution considerations handled?
  143292. .IP \(bu 2
  143293. Is the reason for the change fully explained in the PR? If not for review,
  143294. this is necessary so that somebody in the future can go back and figure out
  143295. why it was necessary.
  143296. .IP \(bu 2
  143297. Is the intended behavior of the change clear? How will that behavior be known
  143298. to future contributors and to users?
  143299. .IP \(bu 2
  143300. Does this code handle errors in a reasonable way? Have we gone back through
  143301. the stack as much as possible to make sure that an error cannot be raised
  143302. that we do not account for? Are errors tested for as well as proper
  143303. functionality?
  143304. .IP \(bu 2
  143305. If the code relies on external libraries, do we properly handle old versions
  143306. of them? Do we require a specific version and if so is this version check
  143307. implemented? Is the library available on the same platforms that module in
  143308. question claims to support? If the code was written and tested against a
  143309. particular library, have we documented that fact?
  143310. .IP \(bu 2
  143311. Can this code freeze/hang/crash a running daemon? Can it stall a state run?
  143312. Are there infinite loops? Are appropriate timeouts implemented?
  143313. .IP \(bu 2
  143314. Is the function interface well documented? If argument types can not be
  143315. inferred by introspection, are they documented?
  143316. .IP \(bu 2
  143317. Are resources such as file\-handles cleaned\-up after they are used?
  143318. .IP \(bu 2
  143319. Is it possible that a reference\-cycle exists between objects that will leak
  143320. memory?
  143321. .IP \(bu 2
  143322. Has the code been linted and does it pass all tests?
  143323. .IP \(bu 2
  143324. Does the change fully address the problem or is it limited to a small surface
  143325. area? By this, I mean that it should be clear that the submitter has looked
  143326. for other cases in the function or module where the given case might also be
  143327. addressed. If additional changes are necessary are they documented in the
  143328. code as a FIXME or the PR and in Github as an issue to be tracked?
  143329. .IP \(bu 2
  143330. Will the code throw errors/warnings/stacktraces to the console during normal
  143331. operation?
  143332. .IP \(bu 2
  143333. Has all the debugging been removed?
  143334. .IP \(bu 2
  143335. Does the code log any sensitive data? Does it show sensitive data in process
  143336. lists? Does it store sensitive data to disk and if so, does it do so in a
  143337. secure manner? Are there potential race conditions in between writing the
  143338. data to disk and setting the appropriate permissions?
  143339. .IP \(bu 2
  143340. Is it clear from the solution that the problem is well\-understood? How can
  143341. somebody who has never seen the problem feel confident that this proposed
  143342. change is the best one?
  143343. .IP \(bu 2
  143344. What\(aqs hard\-coded that might not need to be? Are we making sensible decisions
  143345. for the user and allowing them to tune and change things where appropriate?
  143346. .IP \(bu 2
  143347. Are utility functions used where appropriate? Does this change re\-implement
  143348. something we already have code for?
  143349. .IP \(bu 2
  143350. Is the right thing being fixed? There are cases where it\(aqs appropriate to fix
  143351. a test and cases where it\(aqs appropriate to fix the code that\(aqs under test.
  143352. Which is best for the user? Is this change a shortcut or a solution that will
  143353. be solid in the months and years to come?
  143354. .IP \(bu 2
  143355. How will this code react to changes elsewhere in the code base? What is it
  143356. coupled to and have we fully thought through how best to present a coherent
  143357. interface to consumers of a given function or method?
  143358. .IP \(bu 2
  143359. Does this PR try to fix too many bugs/problems at once?
  143360. .IP \(bu 2
  143361. Should this be split into multiple PRs to make them easier to test and reason
  143362. about?
  143363. .UNINDENT
  143364. .SS Pull Request Requirements
  143365. .sp
  143366. The following outlines what is required before a pull request can be merged into
  143367. the salt project. For each of these requirements, an exception can be made
  143368. that requires 3 approvals before merge. The exceptions are detailed more below.
  143369. .SS All PR requirements
  143370. .INDENT 0.0
  143371. .INDENT 3.5
  143372. .INDENT 0.0
  143373. .IP \(bu 2
  143374. Approval Required: approval review from core team member OR 1 approval review
  143375. from captain of working group
  143376. .IP \(bu 2
  143377. Cannot merge your own PR until 1 reviewer approves from defined list above that
  143378. is not the author.
  143379. .IP \(bu 2
  143380. All Tests Pass
  143381. .UNINDENT
  143382. .UNINDENT
  143383. .UNINDENT
  143384. .SS Bug Fix PR requirements
  143385. .INDENT 0.0
  143386. .INDENT 3.5
  143387. .INDENT 0.0
  143388. .IP \(bu 2
  143389. Test Coverage: regression test written to cover bug fix. Contributors only need
  143390. to write test coverage for their specific changes.
  143391. .IP \(bu 2
  143392. Point to the issue the PR is resolving. If there is not an issue one will need
  143393. to be created.
  143394. .UNINDENT
  143395. .UNINDENT
  143396. .UNINDENT
  143397. .SS Feature PR requirements
  143398. .INDENT 0.0
  143399. .INDENT 3.5
  143400. .INDENT 0.0
  143401. .IP \(bu 2
  143402. Test Coverage: tests written to cover new feature. Contributors only need to write
  143403. test coverage for their specific changes.
  143404. .IP \(bu 2
  143405. Release Notes: Add note in release notes of new feature for relative release.
  143406. .IP \(bu 2
  143407. Add .. versionadded:: <release> to module\(aqs documentation. If you are not certain
  143408. which release your fix will be included in you can include TBD and the PR reviewer
  143409. will let you know the correct name of the release you need to update to the versionadded.
  143410. .UNINDENT
  143411. .UNINDENT
  143412. .UNINDENT
  143413. .SS Exceptions to all requirements
  143414. .sp
  143415. As previously stated, all of the above requirements can be bypassed with 3 approvals.
  143416. PR\(aqs that do not require tests include:
  143417. .INDENT 0.0
  143418. .INDENT 3.5
  143419. .INDENT 0.0
  143420. .IP \(bu 2
  143421. documentation
  143422. .IP \(bu 2
  143423. cosmetic changes (for example changing from log.debug to log.trace)
  143424. .IP \(bu 2
  143425. fixing tests
  143426. .IP \(bu 2
  143427. pylint
  143428. .IP \(bu 2
  143429. changes outside of the salt directory
  143430. .UNINDENT
  143431. .UNINDENT
  143432. .UNINDENT
  143433. .SS Reporting Bugs
  143434. .sp
  143435. Salt uses GitHub to track open issues and feature requests.
  143436. .sp
  143437. To file a bug, please navigate to the \fI\%new issue page for the Salt project\fP\&.
  143438. .sp
  143439. In an issue report, please include the following information:
  143440. .INDENT 0.0
  143441. .INDENT 3.5
  143442. .INDENT 0.0
  143443. .IP \(bu 2
  143444. The output of \fBsalt \-\-versions\-report\fP from the relevant machines. This
  143445. can also be gathered remotely by using \fBsalt <my_tgt>
  143446. test.versions_report\fP\&.
  143447. .IP \(bu 2
  143448. A description of the problem including steps taken to cause the issue to
  143449. occur and the expected behaviour.
  143450. .IP \(bu 2
  143451. Any steps taken to attempt to remediate the problem.
  143452. .IP \(bu 2
  143453. Any configuration options set in a configuration file that may be relevant.
  143454. .IP \(bu 2
  143455. A reproduceable test case. This may be as simple as an SLS file that
  143456. illustrates a problem or it may be a link to a repository that contains a
  143457. number of SLS files that can be used together to re\-produce a problem. If
  143458. the problem is transitory, any information that can be used to try and
  143459. reproduce the problem is helpful.
  143460. .IP \(bu 2
  143461. [Optional] The output of each salt component (master/minion/CLI) running
  143462. with the \fB\-ldebug\fP flag set.
  143463. .UNINDENT
  143464. .sp
  143465. \fBNOTE:\fP
  143466. .INDENT 0.0
  143467. .INDENT 3.5
  143468. Please be certain to scrub any logs or SLS files for sensitive data!
  143469. .UNINDENT
  143470. .UNINDENT
  143471. .UNINDENT
  143472. .UNINDENT
  143473. .SS Salt Topology
  143474. .sp
  143475. Salt is based on a powerful, asynchronous, network topology using ZeroMQ. Many
  143476. ZeroMQ systems are in place to enable communication. The central idea is to
  143477. have the fastest communication possible.
  143478. .SS Servers
  143479. .sp
  143480. The Salt Master runs 2 network services. First is the ZeroMQ PUB system. This
  143481. service by default runs on port \fB4505\fP and can be configured via the
  143482. \fBpublish_port\fP option in the master configuration.
  143483. .sp
  143484. Second is the ZeroMQ REP system. This is a separate interface used for all
  143485. bi\-directional communication with minions. By default this system binds to
  143486. port \fB4506\fP and can be configured via the \fBret_port\fP option in the master.
  143487. .SS PUB/SUB
  143488. .sp
  143489. The commands sent out via the salt client are broadcast out to the minions via
  143490. ZeroMQ PUB/SUB. This is done by allowing the minions to maintain a connection
  143491. back to the Salt Master and then all connections are informed to download the
  143492. command data at once. The command data is kept extremely small (usually less
  143493. than 1K) so it is not a burden on the network.
  143494. .SS Return
  143495. .sp
  143496. The PUB/SUB system is a one way communication, so once a publish is sent out
  143497. the PUB interface on the master has no further communication with the minion.
  143498. The minion, after running the command, then sends the command\(aqs return data
  143499. back to the master via the \fBret_port\fP\&.
  143500. .SS Developing Salt Tutorial
  143501. .sp
  143502. This tutorial assumes you have:
  143503. .INDENT 0.0
  143504. .IP \(bu 2
  143505. a web browser
  143506. .IP \(bu 2
  143507. a GitHub account (\fB<my_account>\fP)
  143508. .IP \(bu 2
  143509. a command line (CLI)
  143510. .IP \(bu 2
  143511. git
  143512. .IP \(bu 2
  143513. a text editor
  143514. .UNINDENT
  143515. .SS Fork
  143516. .sp
  143517. In your browser, navigate to the \fBsaltstack/salt\fP \fI\%GitHub repository\fP\&.
  143518. .sp
  143519. Click on \fBFork\fP (\fI\%https://github.com/saltstack/salt/#fork\-destination\-box\fP).
  143520. .sp
  143521. \fBNOTE:\fP
  143522. .INDENT 0.0
  143523. .INDENT 3.5
  143524. If you have more than one GitHub presence, for example if you are a member
  143525. of a team, GitHub will ask you into which area to clone Salt. If you don\(aqt
  143526. know where, then select your personal GitHub account.
  143527. .UNINDENT
  143528. .UNINDENT
  143529. .SS Clone
  143530. .sp
  143531. In your CLI, navigate to the directory into which you want clone the Salt
  143532. codebase and submit the following command:
  143533. .INDENT 0.0
  143534. .INDENT 3.5
  143535. .sp
  143536. .nf
  143537. .ft C
  143538. $ git clone https://github.com/<my_account>/salt.git
  143539. .ft P
  143540. .fi
  143541. .UNINDENT
  143542. .UNINDENT
  143543. .sp
  143544. where \fB<my_account>\fP is the name of your GitHub account. After the clone has
  143545. completed, add SaltStack as a second remote and fetch any changes from
  143546. \fBupstream\fP\&.
  143547. .INDENT 0.0
  143548. .INDENT 3.5
  143549. .sp
  143550. .nf
  143551. .ft C
  143552. $ cd salt
  143553. $ git remote add upstream https://github.com/saltstack/salt.git
  143554. $ git fetch upstream
  143555. .ft P
  143556. .fi
  143557. .UNINDENT
  143558. .UNINDENT
  143559. .sp
  143560. For this tutorial, we will be working off from the \fBmaster\fP branch, which is
  143561. the default branch for the SaltStack GitHub project. This branch needs to
  143562. track \fBupstream/master\fP so that we will get all upstream changes when they
  143563. happen.
  143564. .INDENT 0.0
  143565. .INDENT 3.5
  143566. .sp
  143567. .nf
  143568. .ft C
  143569. $ git checkout master
  143570. $ git branch \-\-set\-upstream\-to upstream/master
  143571. .ft P
  143572. .fi
  143573. .UNINDENT
  143574. .UNINDENT
  143575. .SS Fetch
  143576. .sp
  143577. Fetch any \fBupstream\fP changes on the \fBmaster\fP branch and sync them to your
  143578. local copy of the branch with a single command:
  143579. .INDENT 0.0
  143580. .INDENT 3.5
  143581. .sp
  143582. .nf
  143583. .ft C
  143584. $ git pull \-\-rebase
  143585. .ft P
  143586. .fi
  143587. .UNINDENT
  143588. .UNINDENT
  143589. .sp
  143590. \fBNOTE:\fP
  143591. .INDENT 0.0
  143592. .INDENT 3.5
  143593. For an explanation on \fBpull\fP vs \fBpull \-\-rebase\fP and other excellent
  143594. points, see \fI\%this article\fP by
  143595. Mislav Marohnić.
  143596. .UNINDENT
  143597. .UNINDENT
  143598. .SS Branch
  143599. .sp
  143600. Now we are ready to get to work. Consult the \fI\%sprint beginner bug list\fP
  143601. and select an execution module whose \fB__virtual__\fP function needs to be
  143602. updated. I\(aqll select the \fBalternatives\fP module.
  143603. .sp
  143604. Create a new branch off from \fBmaster\fP\&. Be sure to name it something short
  143605. and descriptive.
  143606. .INDENT 0.0
  143607. .INDENT 3.5
  143608. .sp
  143609. .nf
  143610. .ft C
  143611. $ git checkout \-b virt_ret
  143612. .ft P
  143613. .fi
  143614. .UNINDENT
  143615. .UNINDENT
  143616. .SS Edit
  143617. .sp
  143618. Edit the file you have selected, and verify that the changes are correct.
  143619. .INDENT 0.0
  143620. .INDENT 3.5
  143621. .sp
  143622. .nf
  143623. .ft C
  143624. $ vim salt/modules/alternatives.py
  143625. $ git diff
  143626. .ft P
  143627. .fi
  143628. .UNINDENT
  143629. .UNINDENT
  143630. .INDENT 0.0
  143631. .INDENT 3.5
  143632. .sp
  143633. .nf
  143634. .ft C
  143635. diff \-\-git a/salt/modules/alternatives.py b/salt/modules/alternatives.py
  143636. index 1653e5f..30c0a59 100644
  143637. \-\-\- a/salt/modules/alternatives.py
  143638. +++ b/salt/modules/alternatives.py
  143639. @@ \-30,7 +30,7 @@ def __virtual__():
  143640. \(aq\(aq\(aq
  143641. if os.path.isdir(\(aq/etc/alternatives\(aq):
  143642. return True
  143643. \- return False
  143644. + return (False, \(aqCannot load alternatives module: /etc/alternatives dir not found\(aq)
  143645. def _get_cmd():
  143646. .ft P
  143647. .fi
  143648. .UNINDENT
  143649. .UNINDENT
  143650. .SS Commit
  143651. .sp
  143652. Stage and commit the changes. Write a descriptive commit summary, but try to
  143653. keep it less than 50 characters. Review your commit.
  143654. .INDENT 0.0
  143655. .INDENT 3.5
  143656. .sp
  143657. .nf
  143658. .ft C
  143659. $ git add salt/modules/alternatives.py
  143660. $ git commit \-m \(aqmodules.alternatives: __virtual__ return err msg\(aq
  143661. $ git show
  143662. .ft P
  143663. .fi
  143664. .UNINDENT
  143665. .UNINDENT
  143666. .sp
  143667. \fBNOTE:\fP
  143668. .INDENT 0.0
  143669. .INDENT 3.5
  143670. If you need more room to describe the changes in your commit, run \fBgit
  143671. commit\fP (without the \fB\-m\fP, message, option) and you will be presented
  143672. with an editor. The first line is the commit summary and should still be
  143673. 50 characters or less. The following paragraphs you create are free form
  143674. and will be preserved as part of the commit.
  143675. .UNINDENT
  143676. .UNINDENT
  143677. .SS Push
  143678. .sp
  143679. Push your branch to your GitHub account. You will likely need to enter your
  143680. GitHub username and password.
  143681. .INDENT 0.0
  143682. .INDENT 3.5
  143683. .sp
  143684. .nf
  143685. .ft C
  143686. $ git push origin virt_ret
  143687. Username for \(aqhttps://github.com\(aq: <my_account>
  143688. Password for \(aqhttps://<my_account>@github.com\(aq:
  143689. .ft P
  143690. .fi
  143691. .UNINDENT
  143692. .UNINDENT
  143693. .sp
  143694. \fBNOTE:\fP
  143695. .INDENT 0.0
  143696. .INDENT 3.5
  143697. If authentication over https does not work, you can alternatively setup
  143698. \fI\%ssh keys\fP\&. Once
  143699. you have done this, you may need add the keys to your git repository
  143700. configuration
  143701. .INDENT 0.0
  143702. .INDENT 3.5
  143703. .sp
  143704. .nf
  143705. .ft C
  143706. $ git config ssh.key ~/.ssh/<key_name>
  143707. .ft P
  143708. .fi
  143709. .UNINDENT
  143710. .UNINDENT
  143711. .sp
  143712. where \fB<key_name>\fP is the file name of the private key you created.
  143713. .UNINDENT
  143714. .UNINDENT
  143715. .SS Merge
  143716. .sp
  143717. In your browser, navigate to the \fI\%new pull request\fP page on the \fBsaltstack/salt\fP
  143718. GitHub repository and click on \fBcompare across forks\fP\&. Select
  143719. \fB<my_account>\fP from the list of head forks and the branch you are wanting to
  143720. merge into \fBmaster\fP (\fBvirt_ret\fP in this case).
  143721. .sp
  143722. When you have finished reviewing the changes, click \fBCreate pull request\fP\&.
  143723. .sp
  143724. If your pull request contains only a single commit, the title and comment will
  143725. be taken from that commit\(aqs summary and message, otherwise the branch name is
  143726. used for the title. Edit these fields as necessary and click \fBCreate pull
  143727. request\fP\&.
  143728. .sp
  143729. \fBNOTE:\fP
  143730. .INDENT 0.0
  143731. .INDENT 3.5
  143732. Although these instructions seem to be the official pull request procedure
  143733. on github\(aqs website, here are two alternative methods that are simpler.
  143734. .INDENT 0.0
  143735. .IP \(bu 2
  143736. If you navigate to your clone of salt,
  143737. \fBhttps://github.com/<my_account>/salt\fP, depending on how old your
  143738. branch is or how recently you pushed updates on it, you may be presented
  143739. with a button to create a pull request with your branch.
  143740. .IP \(bu 2
  143741. I find it easiest to edit the following URL:
  143742. .sp
  143743. \fBhttps://github.com/saltstack/salt/compare/master...<my_account>:virt_ret\fP
  143744. .UNINDENT
  143745. .UNINDENT
  143746. .UNINDENT
  143747. .SS Resources
  143748. .sp
  143749. GitHub offers many great tutorials on various aspects of the git\- and
  143750. GitHub\-centric development workflow:
  143751. .sp
  143752. \fI\%https://help.github.com/\fP
  143753. .sp
  143754. There are many topics covered by the Salt Developer documentation:
  143755. .sp
  143756. \fI\%https://docs.saltstack.com/en/latest/topics/development/index.html\fP
  143757. .sp
  143758. The contributing documentation presents more details on specific contributing
  143759. topics:
  143760. .sp
  143761. \fI\%https://docs.saltstack.com/en/latest/topics/development/contributing.html\fP
  143762. .SS Modular Systems
  143763. .sp
  143764. When first working with Salt, it is not always clear where all of the modular
  143765. components are and what they do. Salt comes loaded with more modular systems
  143766. than many users are aware of, making Salt very easy to extend in many places.
  143767. .sp
  143768. The most commonly used modular systems are execution modules and states. But
  143769. the modular systems extend well beyond the more easily exposed components
  143770. and are often added to Salt to make the complete system more flexible.
  143771. .SS Developing New Modules
  143772. .SS Interactive Debugging
  143773. .sp
  143774. Sometimes debugging with \fBprint()\fP and extra logs sprinkled everywhere is not
  143775. the best strategy.
  143776. .sp
  143777. IPython is a helpful debug tool that has an interactive python environment
  143778. which can be embedded in python programs.
  143779. .sp
  143780. First the system will require IPython to be installed.
  143781. .INDENT 0.0
  143782. .INDENT 3.5
  143783. .sp
  143784. .nf
  143785. .ft C
  143786. # Debian
  143787. apt\-get install ipython
  143788. # Arch Linux
  143789. pacman \-Syu ipython2
  143790. # RHEL/CentOS (via EPEL)
  143791. yum install python\-ipython
  143792. .ft P
  143793. .fi
  143794. .UNINDENT
  143795. .UNINDENT
  143796. .sp
  143797. Now, in the troubling python module, add the following line at a location where
  143798. the debugger should be started:
  143799. .INDENT 0.0
  143800. .INDENT 3.5
  143801. .sp
  143802. .nf
  143803. .ft C
  143804. test = "test123"
  143805. import IPython
  143806. IPython.embed_kernel()
  143807. .ft P
  143808. .fi
  143809. .UNINDENT
  143810. .UNINDENT
  143811. .sp
  143812. After running a Salt command that hits that line, the following will show up in
  143813. the log file:
  143814. .INDENT 0.0
  143815. .INDENT 3.5
  143816. .sp
  143817. .nf
  143818. .ft C
  143819. [CRITICAL] To connect another client to this kernel, use:
  143820. [IPKernelApp] \-\-existing kernel\-31271.json
  143821. .ft P
  143822. .fi
  143823. .UNINDENT
  143824. .UNINDENT
  143825. .sp
  143826. Now on the system that invoked \fBembed_kernel\fP, run the following command from
  143827. a shell:
  143828. .INDENT 0.0
  143829. .INDENT 3.5
  143830. .sp
  143831. .nf
  143832. .ft C
  143833. # NOTE: use ipython2 instead of ipython for Arch Linux
  143834. ipython console \-\-existing
  143835. .ft P
  143836. .fi
  143837. .UNINDENT
  143838. .UNINDENT
  143839. .sp
  143840. This provides a console that has access to all the vars and functions, and even
  143841. supports tab\-completion.
  143842. .INDENT 0.0
  143843. .INDENT 3.5
  143844. .sp
  143845. .nf
  143846. .ft C
  143847. print(test)
  143848. test123
  143849. .ft P
  143850. .fi
  143851. .UNINDENT
  143852. .UNINDENT
  143853. .sp
  143854. To exit IPython and continue running Salt, press \fBCtrl\-d\fP to logout.
  143855. .SS Special Module Contents
  143856. .sp
  143857. These are things that may be defined by the module to influence various things.
  143858. .SS __virtual__
  143859. .SS __virtual_aliases__
  143860. .SS __virtualname__
  143861. .SS __init__
  143862. .sp
  143863. Called before \fB__virtual__()\fP
  143864. .SS __proxyenabled__
  143865. .sp
  143866. grains and proxy modules
  143867. .sp
  143868. __proxyenabled__ as a list containing the names of the proxy types that the module supports.
  143869. .SS __load__
  143870. .SS __func_alias__
  143871. .SS __outputter__
  143872. .SS Dunder Dictionaries
  143873. .sp
  143874. Salt provides several special "dunder" dictionaries as a convenience for Salt
  143875. development. These include \fB__opts__\fP, \fB__context__\fP, \fB__salt__\fP, and
  143876. others. This document will describe each dictionary and detail where they exist
  143877. and what information and/or functionality they provide.
  143878. .sp
  143879. The following dunder dictionaries are always defined, but may be empty
  143880. .INDENT 0.0
  143881. .IP \(bu 2
  143882. \fB__context__\fP
  143883. .IP \(bu 2
  143884. \fB__grains__\fP
  143885. .IP \(bu 2
  143886. \fB__pillar__\fP
  143887. .IP \(bu 2
  143888. \fB__opts__\fP
  143889. .UNINDENT
  143890. .SS __opts__
  143891. .sp
  143892. Defined in: All modules
  143893. .sp
  143894. The \fB__opts__\fP dictionary contains all of the options passed in the
  143895. configuration file for the master or minion.
  143896. .sp
  143897. \fBNOTE:\fP
  143898. .INDENT 0.0
  143899. .INDENT 3.5
  143900. In many places in salt, instead of pulling raw data from the __opts__
  143901. dict, configuration data should be pulled from the salt \fIget\fP functions
  143902. such as config.get, aka \- \fB__salt__[\(aqconfig.get\(aq](\(aqfoo:bar\(aq)\fP
  143903. The \fIget\fP functions also allow for dict traversal via the \fI:\fP delimiter.
  143904. Consider using get functions whenever using \fB__opts__\fP or \fB__pillar__\fP
  143905. and \fB__grains__\fP (when using grains for configuration data)
  143906. .UNINDENT
  143907. .UNINDENT
  143908. .sp
  143909. The configuration file data made available in the \fB__opts__\fP dictionary is the
  143910. configuration data relative to the running daemon. If the modules are loaded and
  143911. executed by the master, then the master configuration data is available, if the
  143912. modules are executed by the minion, then the minion configuration is
  143913. available. Any additional information passed into the respective configuration
  143914. files is made available
  143915. .SS __salt__
  143916. .sp
  143917. Defined in: Auth, Beacons, Engines, Execution, Executors, Outputters, Pillars,
  143918. Proxies, Renderers, Returners, Runners, SDB, SSH Wrappers, State, Thorium
  143919. .sp
  143920. \fB__salt__\fP contains the execution module functions. This allows for all
  143921. functions to be called as they have been set up by the salt loader.
  143922. .INDENT 0.0
  143923. .INDENT 3.5
  143924. .sp
  143925. .nf
  143926. .ft C
  143927. __salt__["cmd.run"]("fdisk \-l")
  143928. __salt__["network.ip_addrs"]()
  143929. .ft P
  143930. .fi
  143931. .UNINDENT
  143932. .UNINDENT
  143933. .sp
  143934. \fBNOTE:\fP
  143935. .INDENT 0.0
  143936. .INDENT 3.5
  143937. When used in runners or outputters, \fB__salt__\fP references other
  143938. runner/outputter modules, and not execution modules.
  143939. .UNINDENT
  143940. .UNINDENT
  143941. .SS __grains__
  143942. .sp
  143943. Filled in for: Execution, Pillar, Renderer, Returner, SSH Wrapper, State.
  143944. .sp
  143945. The \fB__grains__\fP dictionary contains the grains data generated by the minion
  143946. that is currently being worked with. In execution modules, state modules and
  143947. returners this is the grains of the minion running the calls, when generating
  143948. the external pillar the \fB__grains__\fP is the grains data from the minion that
  143949. the pillar is being generated for.
  143950. .sp
  143951. While \fB__grains__\fP is defined for every module, it\(aqs only filled in for some.
  143952. .SS __pillar__
  143953. .sp
  143954. Filled in for: Execution, Renderer, Returner, SSH Wrapper, State
  143955. .sp
  143956. The \fB__pillar__\fP dictionary contains the pillar for the respective minion.
  143957. .sp
  143958. While \fB__pillar__\fP is defined for every module, it\(aqs only filled in for some.
  143959. .SS __ext_pillar__
  143960. .sp
  143961. Filled in for: Pillar
  143962. .sp
  143963. The \fB__ext_pillar__\fP dictionary contains the external pillar modules.
  143964. .SS __context__
  143965. .sp
  143966. During a state run the \fB__context__\fP dictionary persists across all states
  143967. that are run and then is destroyed when the state ends.
  143968. .sp
  143969. When running an execution module \fB__context__\fP persists across all module
  143970. executions until the modules are refreshed; such as when
  143971. \fBsaltutil.sync_all\fP or
  143972. \fBstate.apply\fP are executed.
  143973. .sp
  143974. A great place to see how to use \fB__context__\fP is in the cp.py module in
  143975. salt/modules/cp.py. The fileclient authenticates with the master when it is
  143976. instantiated and then is used to copy files to the minion. Rather than create a
  143977. new fileclient for each file that is to be copied down, one instance of the
  143978. fileclient is instantiated in the \fB__context__\fP dictionary and is reused for
  143979. each file. Here is an example from salt/modules/cp.py:
  143980. .INDENT 0.0
  143981. .INDENT 3.5
  143982. .sp
  143983. .nf
  143984. .ft C
  143985. if not "cp.fileclient" in __context__:
  143986. __context__["cp.fileclient"] = salt.fileclient.get_file_client(__opts__)
  143987. .ft P
  143988. .fi
  143989. .UNINDENT
  143990. .UNINDENT
  143991. .sp
  143992. \fBNOTE:\fP
  143993. .INDENT 0.0
  143994. .INDENT 3.5
  143995. Because __context__ may or may not have been destroyed, always be
  143996. sure to check for the existence of the key in __context__ and
  143997. generate the key before using it.
  143998. .UNINDENT
  143999. .UNINDENT
  144000. .SS __utils__
  144001. .sp
  144002. Defined in: Cloud, Engine, Execution, File Server, Grain, Pillar, Proxy, Roster, Runner, SDB, State
  144003. .SS __proxy__
  144004. .sp
  144005. Defined in: Beacon, Engine, Execution, Executor, Proxy, Renderer, Returner, State, Util
  144006. .SS __runner__
  144007. .sp
  144008. Defined in: Engine, Roster, Thorium
  144009. .sp
  144010. \fBNOTE:\fP
  144011. .INDENT 0.0
  144012. .INDENT 3.5
  144013. When used in engines, it should be called __runners__ (plural)
  144014. .UNINDENT
  144015. .UNINDENT
  144016. .SS __executors__
  144017. .sp
  144018. Defined in: Executor
  144019. .SS __ret__
  144020. .sp
  144021. Defined in: Proxy
  144022. .SS __thorium__
  144023. .sp
  144024. Defined in: Thorium
  144025. .SS __states__
  144026. .sp
  144027. Defined in: Renderers, State
  144028. .SS __serializers__
  144029. .sp
  144030. Defined in: State
  144031. .SS __sdb__
  144032. .sp
  144033. Defined in: SDB
  144034. .SS Additional Globals
  144035. .sp
  144036. Defined for: Runners, Execution Modules, Wheels
  144037. .INDENT 0.0
  144038. .IP \(bu 2
  144039. \fB__jid__\fP: The job ID
  144040. .IP \(bu 2
  144041. \fB__user__\fP: The user
  144042. .IP \(bu 2
  144043. \fB__tag__\fP: The jid tag
  144044. .IP \(bu 2
  144045. \fB__jid_event__\fP: A \fBsalt.utils.event.NamespacedEvent\fP\&.
  144046. .UNINDENT
  144047. .sp
  144048. \fBNamespacedEvent\fP defines a single
  144049. method \fBfire_event\fP, that takes data and tag. The Runner docs has examples.
  144050. .SS Configuration Options
  144051. .sp
  144052. A number of configuration options can affect the load process. This is a quick
  144053. list of them:
  144054. .INDENT 0.0
  144055. .IP \(bu 2
  144056. \fBautoload_dynamic_modules\fP (\fBMinion\fP)
  144057. .IP \(bu 2
  144058. \fBcython_enable\fP (\fBMinion\fP, \fBMaster\fP)
  144059. .IP \(bu 2
  144060. \fBdisable_modules\fP (\fBMinion\fP)
  144061. .IP \(bu 2
  144062. \fBdisable_returners\fP (\fBMinion\fP)
  144063. .IP \(bu 2
  144064. \fBenable_zip_modules\fP (\fBMinion\fP)
  144065. .IP \(bu 2
  144066. \fBextension_modules\fP (\fBMaster\fP)
  144067. .IP \(bu 2
  144068. \fBextmod_whitelist\fP (\fBMinion\fP, \fBMaster\fP)
  144069. .IP \(bu 2
  144070. \fBextmod_blacklist\fP (\fBMinion\fP, \fBMaster\fP)
  144071. .IP \(bu 2
  144072. \fBwhitelist_modules\fP (\fBMinion\fP)
  144073. .IP \(bu 2
  144074. \fBgrains_dirs\fP (\fBMinion\fP)
  144075. .IP \(bu 2
  144076. \fBmodule_dirs\fP (\fBMinion\fP, \fBMaster\fP)
  144077. .IP \(bu 2
  144078. \fBoutputter_dirs\fP (\fBMinion\fP, \fBMaster\fP)
  144079. .IP \(bu 2
  144080. \fBproviders\fP (\fBMinion\fP)
  144081. .IP \(bu 2
  144082. \fBrender_dirs\fP (\fBMinion\fP)
  144083. .IP \(bu 2
  144084. \fBreturner_dirs\fP (\fBMinion\fP)
  144085. .IP \(bu 2
  144086. \fBrunner_dirs\fP (\fBMaster\fP)
  144087. .IP \(bu 2
  144088. \fBstates_dirs\fP (\fBMinion\fP)
  144089. .IP \(bu 2
  144090. \fButils_dirs\fP (\fBMinion\fP)
  144091. .UNINDENT
  144092. .SS Loading Modules
  144093. .sp
  144094. Modules come primarily from several sources:
  144095. .INDENT 0.0
  144096. .IP \(bu 2
  144097. The Salt package itself
  144098. .IP \(bu 2
  144099. The Salt File Server
  144100. .IP \(bu 2
  144101. The extmods directory
  144102. .IP \(bu 2
  144103. Secondary packages installed
  144104. .UNINDENT
  144105. .sp
  144106. Using one source to override another is not supported.
  144107. .SS The Salt Package
  144108. .sp
  144109. Salt itself ships with a large number of modules. These are part of the Salt
  144110. package itself and don\(aqt require the user to do anything to use them. (Although
  144111. a number of them have additional dependencies and/or configuration.)
  144112. .SS The Salt File Server
  144113. .sp
  144114. The user may add modules by simply placing them in special directories in their
  144115. fileserver\&.
  144116. .sp
  144117. The name of the directory inside of the file server is the directory name
  144118. prepended by underscore, such as:
  144119. .INDENT 0.0
  144120. .IP \(bu 2
  144121. \fB_grains\fP
  144122. .IP \(bu 2
  144123. \fB_modules\fP
  144124. .IP \(bu 2
  144125. \fB_states\fP
  144126. .UNINDENT
  144127. .sp
  144128. Modules must be synced before they can be used. This can happen a few ways,
  144129. discussed below.
  144130. .sp
  144131. \fBNOTE:\fP
  144132. .INDENT 0.0
  144133. .INDENT 3.5
  144134. Using saltenvs besides \fBbase\fP may not work in all contexts.
  144135. .UNINDENT
  144136. .UNINDENT
  144137. .SS Sync Via States
  144138. .sp
  144139. The minion configuration contains an option \fBautoload_dynamic_modules\fP
  144140. which defaults to \fBTrue\fP\&. This option makes the state system refresh all
  144141. dynamic modules when states are run. To disable this behavior set
  144142. \fBautoload_dynamic_modules\fP to \fBFalse\fP in the minion config.
  144143. .sp
  144144. When dynamic modules are autoloaded via states, only the modules defined in the
  144145. same saltenvs as the states currently being run.
  144146. .SS Sync Via the saltutil Module
  144147. .sp
  144148. The saltutil module has a number of functions that can be used to sync all
  144149. or specific dynamic modules. The \fBsaltutil.sync_*\fP
  144150. \fBexecution functions\fP and
  144151. \fBrunner functions\fP can be used to sync modules
  144152. to minions and the master, respectively.
  144153. .SS The extmods Directory
  144154. .sp
  144155. Any files places in the directory set by \fBextension_modules\fP settings
  144156. (\fBminion\fP,
  144157. \fBmaster\fP, default
  144158. \fB/var/cache/salt/*/extmods\fP) can also be loaded as modules. Note that these
  144159. directories are also used by the \fBsaltutil.sync_*\fP functions (mentioned
  144160. above) and files may be overwritten.
  144161. .SS Secondary Packages
  144162. .sp
  144163. Third\-party packages may also add modules to Salt if they are installed in the
  144164. same system and Python environment as the Salt Minion or Master.
  144165. .sp
  144166. This is done via setuptools entry points:
  144167. .INDENT 0.0
  144168. .INDENT 3.5
  144169. .sp
  144170. .nf
  144171. .ft C
  144172. setup(
  144173. # ...
  144174. entry_points={"salt.loader": ["module_dirs=spirofs.loader:module"]},
  144175. # ...
  144176. )
  144177. .ft P
  144178. .fi
  144179. .UNINDENT
  144180. .UNINDENT
  144181. .sp
  144182. Note that these are not synced from the Salt Master to the Minions. They must be
  144183. installed independently on each Minion.
  144184. .SS Module Types
  144185. .sp
  144186. The specific names used by each loading method above are as follows. See sections below
  144187. for a short summary of each of these systems.
  144188. .TS
  144189. center;
  144190. |l|l|l|l|.
  144191. _
  144192. T{
  144193. Module Type
  144194. T} T{
  144195. Salt Package Name
  144196. T} T{
  144197. FS/Directory Name
  144198. T} T{
  144199. Entry Point
  144200. T}
  144201. _
  144202. T{
  144203. Auth
  144204. T} T{
  144205. \fBsalt.auth\fP (index)
  144206. T} T{
  144207. \fBauth\fP [1]
  144208. T} T{
  144209. \fBauth_dirs\fP
  144210. T}
  144211. _
  144212. T{
  144213. Beacon
  144214. T} T{
  144215. \fBsalt.beacons\fP (index)
  144216. T} T{
  144217. \fBbeacons\fP
  144218. T} T{
  144219. \fBbeacons_dirs\fP
  144220. T}
  144221. _
  144222. T{
  144223. Cache
  144224. T} T{
  144225. \fBsalt.cache\fP (index)
  144226. T} T{
  144227. \fBcache\fP
  144228. T} T{
  144229. \fBcache_dirs\fP
  144230. T}
  144231. _
  144232. T{
  144233. Cloud
  144234. T} T{
  144235. \fBsalt.cloud.clouds\fP (index)
  144236. T} T{
  144237. \fBclouds\fP
  144238. T} T{
  144239. \fBcloud_dirs\fP
  144240. T}
  144241. _
  144242. T{
  144243. Engine
  144244. T} T{
  144245. \fBsalt.engines\fP (index)
  144246. T} T{
  144247. \fBengines\fP
  144248. T} T{
  144249. \fBengines_dirs\fP
  144250. T}
  144251. _
  144252. T{
  144253. Execution
  144254. T} T{
  144255. \fBsalt.modules\fP (index)
  144256. T} T{
  144257. \fBmodules\fP
  144258. T} T{
  144259. \fBmodule_dirs\fP
  144260. T}
  144261. _
  144262. T{
  144263. Executor
  144264. T} T{
  144265. \fBsalt.executors\fP (index)
  144266. T} T{
  144267. \fBexecutors\fP
  144268. T} T{
  144269. \fBexecutor_dirs\fP
  144270. T}
  144271. _
  144272. T{
  144273. File Server
  144274. T} T{
  144275. \fBsalt.fileserver\fP (index)
  144276. T} T{
  144277. \fBfileserver\fP
  144278. T} T{
  144279. \fBfileserver_dirs\fP
  144280. T}
  144281. _
  144282. T{
  144283. Grain
  144284. T} T{
  144285. \fBsalt.grains\fP (index)
  144286. T} T{
  144287. \fBgrains\fP
  144288. T} T{
  144289. \fBgrains_dirs\fP
  144290. T}
  144291. _
  144292. T{
  144293. Log Handler
  144294. T} T{
  144295. \fBsalt.log.handlers\fP (index)
  144296. T} T{
  144297. \fBlog_handlers\fP
  144298. T} T{
  144299. \fBlog_handlers_dirs\fP
  144300. T}
  144301. _
  144302. T{
  144303. Matcher
  144304. T} T{
  144305. \fBsalt.matchers\fP
  144306. T} T{
  144307. \fBmatchers\fP
  144308. T} T{
  144309. \fBmatchers_dirs\fP
  144310. T}
  144311. _
  144312. T{
  144313. Metaproxy
  144314. T} T{
  144315. \fBsalt.metaproxy\fP
  144316. T} T{
  144317. \fBmetaproxy\fP [1]
  144318. T} T{
  144319. \fBmetaproxy_dirs\fP
  144320. T}
  144321. _
  144322. T{
  144323. Net API
  144324. T} T{
  144325. \fBsalt.netapi\fP (index)
  144326. T} T{
  144327. \fBnetapi\fP [1]
  144328. T} T{
  144329. \fBnetapi_dirs\fP
  144330. T}
  144331. _
  144332. T{
  144333. Outputter
  144334. T} T{
  144335. \fBsalt.output\fP (index)
  144336. T} T{
  144337. \fBoutput\fP
  144338. T} T{
  144339. \fBoutputter_dirs\fP
  144340. T}
  144341. _
  144342. T{
  144343. Pillar
  144344. T} T{
  144345. \fBsalt.pillar\fP (index)
  144346. T} T{
  144347. \fBpillar\fP
  144348. T} T{
  144349. \fBpillar_dirs\fP
  144350. T}
  144351. _
  144352. T{
  144353. Proxy
  144354. T} T{
  144355. \fBsalt.proxy\fP (index)
  144356. T} T{
  144357. \fBproxy\fP
  144358. T} T{
  144359. \fBproxy_dirs\fP
  144360. T}
  144361. _
  144362. T{
  144363. Queue
  144364. T} T{
  144365. \fBsalt.queues\fP (index)
  144366. T} T{
  144367. \fBqueues\fP
  144368. T} T{
  144369. \fBqueue_dirs\fP
  144370. T}
  144371. _
  144372. T{
  144373. Renderer
  144374. T} T{
  144375. \fBsalt.renderers\fP (index)
  144376. T} T{
  144377. \fBrenderers\fP
  144378. T} T{
  144379. \fBrender_dirs\fP
  144380. T}
  144381. _
  144382. T{
  144383. Returner
  144384. T} T{
  144385. \fBsalt.returners\fP (index)
  144386. T} T{
  144387. \fBreturners\fP
  144388. T} T{
  144389. \fBreturner_dirs\fP
  144390. T}
  144391. _
  144392. T{
  144393. Roster
  144394. T} T{
  144395. \fBsalt.roster\fP (index)
  144396. T} T{
  144397. \fBroster\fP
  144398. T} T{
  144399. \fBroster_dirs\fP
  144400. T}
  144401. _
  144402. T{
  144403. Runner
  144404. T} T{
  144405. \fBsalt.runners\fP (index)
  144406. T} T{
  144407. \fBrunners\fP
  144408. T} T{
  144409. \fBrunner_dirs\fP
  144410. T}
  144411. _
  144412. T{
  144413. SDB
  144414. T} T{
  144415. \fBsalt.sdb\fP (index)
  144416. T} T{
  144417. \fBsdb\fP
  144418. T} T{
  144419. \fBsdb_dirs\fP
  144420. T}
  144421. _
  144422. T{
  144423. Serializer
  144424. T} T{
  144425. \fBsalt.serializers\fP (index)
  144426. T} T{
  144427. \fBserializers\fP [1]
  144428. T} T{
  144429. \fBserializers_dirs\fP
  144430. T}
  144431. _
  144432. T{
  144433. SPM pkgdb
  144434. T} T{
  144435. \fBsalt.spm.pkgdb\fP
  144436. T} T{
  144437. \fBpkgdb\fP [1]
  144438. T} T{
  144439. \fBpkgdb_dirs\fP
  144440. T}
  144441. _
  144442. T{
  144443. SPM pkgfiles
  144444. T} T{
  144445. \fBsalt.spm.pkgfiles\fP
  144446. T} T{
  144447. \fBpkgfiles\fP [1]
  144448. T} T{
  144449. \fBpkgfiles_dirs\fP
  144450. T}
  144451. _
  144452. T{
  144453. SSH Wrapper
  144454. T} T{
  144455. \fBsalt.client.ssh.wrapper\fP
  144456. T} T{
  144457. \fBwrapper\fP [1]
  144458. T} T{
  144459. \fBwrapper_dirs\fP
  144460. T}
  144461. _
  144462. T{
  144463. State
  144464. T} T{
  144465. \fBsalt.states\fP (index)
  144466. T} T{
  144467. \fBstates\fP
  144468. T} T{
  144469. \fBstates_dirs\fP
  144470. T}
  144471. _
  144472. T{
  144473. Thorium
  144474. T} T{
  144475. \fBsalt.thorium\fP (index)
  144476. T} T{
  144477. \fBthorium\fP
  144478. T} T{
  144479. \fBthorium_dirs\fP
  144480. T}
  144481. _
  144482. T{
  144483. Tokens
  144484. T} T{
  144485. \fBsalt.tokens\fP
  144486. T} T{
  144487. \fBtokens\fP
  144488. T} T{
  144489. \fBtokens_dirs\fP
  144490. T}
  144491. _
  144492. T{
  144493. Top
  144494. T} T{
  144495. \fBsalt.tops\fP (index)
  144496. T} T{
  144497. \fBtops\fP
  144498. T} T{
  144499. \fBtop_dirs\fP
  144500. T}
  144501. _
  144502. T{
  144503. Util
  144504. T} T{
  144505. \fBsalt.utils\fP
  144506. T} T{
  144507. \fButils\fP
  144508. T} T{
  144509. \fButils_dirs\fP
  144510. T}
  144511. _
  144512. T{
  144513. Wheel
  144514. T} T{
  144515. \fBsalt.wheels\fP (index)
  144516. T} T{
  144517. \fBwheel\fP
  144518. T} T{
  144519. \fBwheel_dirs\fP
  144520. T}
  144521. _
  144522. .TE
  144523. .IP [1] 5
  144524. These modules cannot be loaded from the Salt File Server.
  144525. .sp
  144526. \fBNOTE:\fP
  144527. .INDENT 0.0
  144528. .INDENT 3.5
  144529. While it is possible to import modules directly with the import statement,
  144530. it is strongly recommended that the appropriate
  144531. dunder dictionary is used to access them
  144532. instead. This is because a number of factors affect module names, module
  144533. selection, and module overloading.
  144534. .UNINDENT
  144535. .UNINDENT
  144536. .SS Auth
  144537. .sp
  144538. The auth module system allows for external authentication routines to be easily
  144539. added into Salt. The \fIauth\fP function needs to be implemented to satisfy the
  144540. requirements of an auth module. Use the \fBpam\fP module as an example.
  144541. .sp
  144542. See External Authentication System for more about
  144543. authentication in Salt.
  144544. .SS Beacon
  144545. .INDENT 0.0
  144546. .IP \(bu 2
  144547. Writing Beacons
  144548. .UNINDENT
  144549. .sp
  144550. Beacons are polled by the Salt event loop to monitor non\-salt processes. See
  144551. Beacons for more information about the beacon system.
  144552. .SS Cache
  144553. .sp
  144554. The minion cache is used by the master to store various information about
  144555. minions. See Minion Data Cache for more information.
  144556. .SS Cloud
  144557. .sp
  144558. Cloud modules are backend implementations used by Salt Cloud\&.
  144559. .SS Engine
  144560. .sp
  144561. Engines are open\-ended services managed by the Salt daemon (both master and
  144562. minion). They may interact with event loop, call other modules, or a variety of
  144563. non\-salt tasks. See Salt Engines for complete details.
  144564. .SS Execution
  144565. .sp
  144566. Execution modules make up the core of the functionality used by Salt to
  144567. interact with client systems. The execution modules create the core system
  144568. management library used by all Salt systems, including states, which
  144569. interact with minion systems.
  144570. .sp
  144571. Execution modules are completely open ended in their execution. They can
  144572. be used to do anything required on a minion, from installing packages to
  144573. detecting information about the system. The only restraint in execution
  144574. modules is that the defined functions always return a JSON serializable
  144575. object.
  144576. .SS Executor
  144577. .sp
  144578. Executors control how execution modules get called. The default is to just call
  144579. them, but this can be customized.
  144580. .SS File Server
  144581. .sp
  144582. The file server module system is used to create file server backends used by the
  144583. Salt Master. These modules need to implement the functions used in the
  144584. fileserver subsystem. Use the \fBgitfs\fP module as an example.
  144585. .sp
  144586. See File Server Backends for more information.
  144587. .SS Grains
  144588. .INDENT 0.0
  144589. .IP \(bu 2
  144590. writing\-grains
  144591. .UNINDENT
  144592. .sp
  144593. Grain modules define extra routines to populate grains data. All defined
  144594. public functions will be executed and MUST return a Python dict object. The
  144595. dict keys will be added to the grains made available to the minion.
  144596. .sp
  144597. See Grains for more.
  144598. .SS Log Handler
  144599. .sp
  144600. Log handlers allows the logs from salt (master or minion) to be sent to log
  144601. aggregation systems.
  144602. .SS Matcher
  144603. .sp
  144604. Matcher modules are used to define the minion targeting expressions\&.
  144605. For now, it is only possible to override the existing matchers
  144606. (the required CLI plumbing for custom matchers is not implemented yet).
  144607. .SS Metaproxy
  144608. .sp
  144609. Metaproxy is an abstraction layer above the existing proxy minion. It enables
  144610. adding different types of proxy minions that can still load existing proxymodules.
  144611. .SS Net API
  144612. .sp
  144613. Net API modules are the actual server implementation used by Salt API.
  144614. .SS Output
  144615. .sp
  144616. The output modules supply the outputter system with routines to display data
  144617. in the terminal. These modules are very simple and only require the \fIoutput\fP
  144618. function to execute. The default system outputter is the \fBnested\fP module.
  144619. .SS Pillar
  144620. .SS External Pillars
  144621. .sp
  144622. Salt provides a mechanism for generating pillar data by calling external
  144623. pillar interfaces. This document will describe an outline of an ext_pillar
  144624. module.
  144625. .SS Location
  144626. .sp
  144627. Salt expects to find your \fBext_pillar\fP module in the same location where it
  144628. looks for other python modules. If the \fBextension_modules\fP option in your
  144629. Salt master configuration is set, Salt will look for a \fBpillar\fP directory
  144630. under there and load all the modules it finds. Otherwise, it will look in
  144631. your Python site\-packages \fBsalt/pillar\fP directory.
  144632. .SS Configuration
  144633. .sp
  144634. The external pillars that are called when a minion refreshes its pillars is
  144635. controlled by the \fBext_pillar\fP option in the Salt master configuration. You
  144636. can pass a single argument, a list of arguments or a dictionary of arguments
  144637. to your pillar:
  144638. .INDENT 0.0
  144639. .INDENT 3.5
  144640. .sp
  144641. .nf
  144642. .ft C
  144643. ext_pillar:
  144644. \- example_a: some argument
  144645. \- example_b:
  144646. \- argumentA
  144647. \- argumentB
  144648. \- example_c:
  144649. keyA: valueA
  144650. keyB: valueB
  144651. .ft P
  144652. .fi
  144653. .UNINDENT
  144654. .UNINDENT
  144655. .SS The Module
  144656. .SS Imports and Logging
  144657. .sp
  144658. Import modules your external pillar module needs. You should first include
  144659. generic modules that come with stock Python:
  144660. .INDENT 0.0
  144661. .INDENT 3.5
  144662. .sp
  144663. .nf
  144664. .ft C
  144665. import logging
  144666. .ft P
  144667. .fi
  144668. .UNINDENT
  144669. .UNINDENT
  144670. .sp
  144671. And then start logging. This is an idiomatic way of setting up logging in Salt:
  144672. .INDENT 0.0
  144673. .INDENT 3.5
  144674. .sp
  144675. .nf
  144676. .ft C
  144677. log = logging.getLogger(__name__)
  144678. .ft P
  144679. .fi
  144680. .UNINDENT
  144681. .UNINDENT
  144682. .sp
  144683. Finally, load modules that are specific to what you are doing. You should catch
  144684. import errors and set a flag that the \fB__virtual__\fP function can use later.
  144685. .INDENT 0.0
  144686. .INDENT 3.5
  144687. .sp
  144688. .nf
  144689. .ft C
  144690. try:
  144691. import weird_thing
  144692. EXAMPLE_A_LOADED = True
  144693. except ImportError:
  144694. EXAMPLE_A_LOADED = False
  144695. .ft P
  144696. .fi
  144697. .UNINDENT
  144698. .UNINDENT
  144699. .SS Options
  144700. .sp
  144701. If you define an \fB__opts__\fP dictionary, it will be merged into the
  144702. \fB__opts__\fP dictionary handed to the \fBext_pillar\fP function later. This is a
  144703. good place to put default configuration items. The convention is to name
  144704. things \fBmodulename.option\fP\&.
  144705. .INDENT 0.0
  144706. .INDENT 3.5
  144707. .sp
  144708. .nf
  144709. .ft C
  144710. __opts__ = {"example_a.someconfig": 137}
  144711. .ft P
  144712. .fi
  144713. .UNINDENT
  144714. .UNINDENT
  144715. .SS Initialization
  144716. .sp
  144717. If you define an \fB__init__\fP function, it will be called with the following
  144718. signature:
  144719. .INDENT 0.0
  144720. .INDENT 3.5
  144721. .sp
  144722. .nf
  144723. .ft C
  144724. def __init__(__opts__):
  144725. # Do init work here
  144726. ...
  144727. .ft P
  144728. .fi
  144729. .UNINDENT
  144730. .UNINDENT
  144731. .sp
  144732. \fBNote\fP: The \fB__init__\fP function is ran every time a particular minion causes
  144733. the external pillar to be called, so don\(aqt put heavy initialization code here.
  144734. The \fB__init__\fP functionality is a side\-effect of the Salt loader, so it may
  144735. not be as useful in pillars as it is in other Salt items.
  144736. .SS __virtual__
  144737. .sp
  144738. If you define a \fB__virtual__\fP function, you can control whether or not this
  144739. module is visible. If it returns \fBFalse\fP then Salt ignores this module. If
  144740. it returns a string, then that string will be how Salt identifies this external
  144741. pillar in its \fBext_pillar\fP configuration. If you\(aqre not renaming the module,
  144742. simply return \fBTrue\fP in the \fB__virtual__\fP function, which is the same as if
  144743. this function did not exist, then, the name Salt\(aqs \fBext_pillar\fP will use to
  144744. identify this module is its conventional name in Python.
  144745. .sp
  144746. This is useful to write modules that can be installed on all Salt masters, but
  144747. will only be visible if a particular piece of software your module requires is
  144748. installed.
  144749. .INDENT 0.0
  144750. .INDENT 3.5
  144751. .sp
  144752. .nf
  144753. .ft C
  144754. # This external pillar will be known as \(gaexample_a\(ga
  144755. def __virtual__():
  144756. if EXAMPLE_A_LOADED:
  144757. return True
  144758. return False
  144759. .ft P
  144760. .fi
  144761. .UNINDENT
  144762. .UNINDENT
  144763. .INDENT 0.0
  144764. .INDENT 3.5
  144765. .sp
  144766. .nf
  144767. .ft C
  144768. # This external pillar will be known as \(gasomething_else\(ga
  144769. __virtualname__ = "something_else"
  144770. def __virtual__():
  144771. if EXAMPLE_A_LOADED:
  144772. return __virtualname__
  144773. return False
  144774. .ft P
  144775. .fi
  144776. .UNINDENT
  144777. .UNINDENT
  144778. .SS ext_pillar
  144779. .sp
  144780. This is where the real work of an external pillar is done. If this module is
  144781. active and has a function called \fBext_pillar\fP, whenever a minion updates its
  144782. pillar this function is called.
  144783. .sp
  144784. How it is called depends on how it is configured in the Salt master
  144785. configuration. The first argument is always the current pillar dictionary, this
  144786. contains pillar items that have already been added, starting with the data from
  144787. \fBpillar_roots\fP, and then from any already\-ran external pillars.
  144788. .sp
  144789. Using our example above:
  144790. .INDENT 0.0
  144791. .INDENT 3.5
  144792. .sp
  144793. .nf
  144794. .ft C
  144795. ext_pillar(id, pillar, "some argument") # example_a
  144796. ext_pillar(id, pillar, "argumentA", "argumentB") # example_b
  144797. ext_pillar(id, pillar, keyA="valueA", keyB="valueB") # example_c
  144798. .ft P
  144799. .fi
  144800. .UNINDENT
  144801. .UNINDENT
  144802. .sp
  144803. In the \fBexample_a\fP case, \fBpillar\fP will contain the items from the
  144804. \fBpillar_roots\fP, in \fBexample_b\fP \fBpillar\fP will contain that plus the items
  144805. added by \fBexample_a\fP, and in \fBexample_c\fP \fBpillar\fP will contain that plus
  144806. the items added by \fBexample_b\fP\&. In all three cases, \fBid\fP will contain the
  144807. ID of the minion making the pillar request.
  144808. .sp
  144809. This function should return a dictionary, the contents of which are merged in
  144810. with all of the other pillars and returned to the minion. \fBNote\fP: this function
  144811. is called once for each minion that fetches its pillar data.
  144812. .INDENT 0.0
  144813. .INDENT 3.5
  144814. .sp
  144815. .nf
  144816. .ft C
  144817. def ext_pillar(minion_id, pillar, *args, **kwargs):
  144818. my_pillar = {"external_pillar": {}}
  144819. my_pillar["external_pillar"] = get_external_pillar_dictionary()
  144820. return my_pillar
  144821. .ft P
  144822. .fi
  144823. .UNINDENT
  144824. .UNINDENT
  144825. .sp
  144826. You can call pillar with the dictionary\(aqs top name to retrieve its data.
  144827. From above example, \(aqexternal_pillar\(aq is the top dictionary name. Therefore:
  144828. .INDENT 0.0
  144829. .INDENT 3.5
  144830. .sp
  144831. .nf
  144832. .ft C
  144833. salt \(aq*\(aq pillar.get external_pillar
  144834. .ft P
  144835. .fi
  144836. .UNINDENT
  144837. .UNINDENT
  144838. .sp
  144839. You shouldn\(aqt just add items to \fBpillar\fP and return that, since that will
  144840. cause Salt to merge data that already exists. Rather, just return the items
  144841. you are adding or changing. You could, however, use \fBpillar\fP in your module
  144842. to make some decision based on pillar data that already exists.
  144843. .sp
  144844. This function has access to some useful globals:
  144845. .INDENT 0.0
  144846. .TP
  144847. .B __opts__
  144848. A dictionary of mostly Salt configuration options. If you had an
  144849. \fB__opts__\fP dictionary defined in your module, those values will be
  144850. included.
  144851. .TP
  144852. .B __salt__
  144853. A dictionary of Salt module functions, useful so you don\(aqt have to
  144854. duplicate functions that already exist. E.g.
  144855. \fB__salt__[\(aqcmd.run\(aq]( \(aqls \-l\(aq )\fP \fBNote\fP, runs on the \fImaster\fP
  144856. .TP
  144857. .B __grains__
  144858. A dictionary of the grains of the minion making this pillar call.
  144859. .UNINDENT
  144860. .SS Example configuration
  144861. .sp
  144862. As an example, if you wanted to add external pillar via the \fBcmd_json\fP
  144863. external pillar, add something like this to your master config:
  144864. .INDENT 0.0
  144865. .INDENT 3.5
  144866. .sp
  144867. .nf
  144868. .ft C
  144869. ext_pillar:
  144870. \- cmd_json: \(aqecho {\e"arg\e":\e"value\e"}\(aq
  144871. .ft P
  144872. .fi
  144873. .UNINDENT
  144874. .UNINDENT
  144875. .SS Reminder
  144876. .sp
  144877. Just as with traditional pillars, external pillars must be refreshed in order for
  144878. minions to see any fresh data:
  144879. .INDENT 0.0
  144880. .INDENT 3.5
  144881. .sp
  144882. .nf
  144883. .ft C
  144884. salt \(aq*\(aq saltutil.refresh_pillar
  144885. .ft P
  144886. .fi
  144887. .UNINDENT
  144888. .UNINDENT
  144889. .sp
  144890. Used to define optional external pillar systems. The pillar generated via
  144891. the filesystem pillar is passed into external pillars. This is commonly used
  144892. as a bridge to database data for pillar, but is also the backend to the libvirt
  144893. state used to generate and sign libvirt certificates on the fly.
  144894. .SS Proxy
  144895. .sp
  144896. Proxy Minions are a way to manage devices that cannot run
  144897. a full minion directly.
  144898. .SS Renderers
  144899. .sp
  144900. Renderers are the system used to render sls files into salt highdata for the
  144901. state compiler. They can be as simple as the \fBpy\fP renderer and as complex as
  144902. \fBstateconf\fP and \fBpydsl\fP\&.
  144903. .SS Returners
  144904. .sp
  144905. Returners are used to send data from minions to external sources, commonly
  144906. databases. A full returner will implement all routines to be supported as an
  144907. external job cache. Use the \fBredis\fP returner as an example.
  144908. .SS Roster
  144909. .sp
  144910. The Roster system is used by Salt SSH to enumerate devices.
  144911. .SS Runners
  144912. .sp
  144913. Runners are purely master\-side execution sequences.
  144914. .SS SDB
  144915. .INDENT 0.0
  144916. .IP \(bu 2
  144917. Writing SDB Modules
  144918. .UNINDENT
  144919. .sp
  144920. SDB is a way to store data that\(aqs not associated with a minion. See
  144921. Storing Data in Other Databases\&.
  144922. .SS Serializer
  144923. .sp
  144924. Primarily used with \fBfile.serialize\fP\&.
  144925. .SS State
  144926. .sp
  144927. State modules are used to define the state interfaces used by Salt States.
  144928. These modules are restrictive in that they must follow a number of rules to
  144929. function properly.
  144930. .sp
  144931. \fBNOTE:\fP
  144932. .INDENT 0.0
  144933. .INDENT 3.5
  144934. State modules define the available routines in sls files. If calling
  144935. an execution module directly is desired, take a look at the \fImodule\fP
  144936. state.
  144937. .UNINDENT
  144938. .UNINDENT
  144939. .SS SPM pkgdb
  144940. .INDENT 0.0
  144941. .IP \(bu 2
  144942. SPM Development Guide: Package Database
  144943. .UNINDENT
  144944. .sp
  144945. pkgdb modules provides storage backends to the package database.
  144946. .SS SPM pkgfiles
  144947. .INDENT 0.0
  144948. .IP \(bu 2
  144949. SPM Development Guide: Package Database
  144950. .UNINDENT
  144951. .sp
  144952. pkgfiles modules handle the actual installation.
  144953. .SS SSH Wrapper
  144954. .SS SSH Wrapper
  144955. .SS Salt\-SSH Background
  144956. .sp
  144957. Salt\-SSH works by creating a tar ball of salt, a bunch of python modules, and a generated
  144958. short minion config. It then copies this onto the destination host over ssh, then
  144959. uses that host\(aqs local python install to run \fBsalt\-client \-\-local\fP with any requested modules.
  144960. It does not automatically copy over states or cache files and since it is uses a local file_client,
  144961. modules that rely on \fBcp.cache*\fP functionality do not work.
  144962. .SS SSH Wrapper modules
  144963. .sp
  144964. To support cp modules or other functionality which might not otherwise work in the remote environment,
  144965. a wrapper module can be created. These modules are run from the salt\-master initiating the salt\-ssh
  144966. command and can include logic to support the needed functionality. SSH Wrapper modules are located in
  144967. /salt/client/ssh/wrapper/ and are named the same as the execution module being extended. Any functions
  144968. defined inside of the wrapper module are called from the \fBsalt\-ssh module.function argument\fP
  144969. command rather than executing on the minion.
  144970. .SS State Module example
  144971. .sp
  144972. Running salt states on an salt\-ssh minion, obviously requires the state files themselves. To support this,
  144973. a state module wrapper script exists at salt/client/ssh/wrapper/state.py, and includes standard state
  144974. functions like \fBapply\fP, \fBsls\fP,
  144975. and \fBhighstate\fP\&. When executing \fBsalt\-ssh minion state.highstate\fP,
  144976. these wrapper functions are used and include the logic to walk the low_state output for that minion to
  144977. determine files used, gather needed files, tar them together, transfer the tar file to the minion over
  144978. ssh, and run a state on the ssh minion. This state then extracts the tar file, applies the needed states
  144979. and data, and cleans up the transferred files.
  144980. .SS Wrapper Handling
  144981. .sp
  144982. From the wrapper script any invocations of \fB__salt__[\(aqsome.module\(aq]()\fP do not run on the master
  144983. which is running the wrapper, but instead magically are invoked on the minion over ssh.
  144984. Should the function being called exist in the wrapper, the wrapper function will be
  144985. used instead.
  144986. .sp
  144987. One way of supporting this workflow may be to create a wrapper function which performs the needed file
  144988. copy operations. Now that files are resident on the ssh minion, the next step is to run the original
  144989. execution module function. But since that function name was already overridden by the wrapper, a
  144990. function alias can be created in the original execution module, which can then be called from the
  144991. wrapper.
  144992. .SS Example
  144993. .sp
  144994. The saltcheck module needs sls and tst files on the minion to function. The invocation of
  144995. \fBsaltcheck.run_state_tests\fP is run from
  144996. the wrapper module, and is responsible for performing the needed file copy. The
  144997. \fBsaltcheck\fP execution module includes an alias line of
  144998. \fBrun_state_tests_ssh = salt.utils.functools.alias_function(run_state_tests, \(aqrun_state_tests_ssh\(aq)\fP
  144999. which creates an alias of \fBrun_state_tests\fP with the name \fBrun_state_tests_ssh\fP\&. At the end of
  145000. the \fBrun_state_tests\fP function in the wrapper module, it then calls
  145001. \fB__salt__[\(aqsaltcheck.run_state_tests_ssh\(aq]()\fP\&. Since this function does not exist in the wrapper script,
  145002. the call is made on the remote minion, which then having the needed files, runs as expected.
  145003. .sp
  145004. Replacement execution modules for Salt SSH\&.
  145005. .SS Thorium
  145006. .sp
  145007. Modules for use in the Thorium event reactor.
  145008. .SS Tokens
  145009. .sp
  145010. Token stores for External Authentication\&. See the
  145011. \fBsalt.tokens\fP docstring for details.
  145012. .sp
  145013. \fBNOTE:\fP
  145014. .INDENT 0.0
  145015. .INDENT 3.5
  145016. The runner to load tokens modules is
  145017. \fBsaltutil.sync_eauth_tokens\fP\&.
  145018. .UNINDENT
  145019. .UNINDENT
  145020. .SS Tops
  145021. .sp
  145022. Tops modules are used to convert external data sources into top file data for
  145023. the state system.
  145024. .SS Util
  145025. .sp
  145026. Just utility modules to use with other modules via \fB__utils__\fP (see
  145027. Dunder Dictionaries).
  145028. .SS Wheel
  145029. .sp
  145030. The wheel system is used to manage master side management routines. These
  145031. routines are primarily intended for the API to enable master configuration.
  145032. .SS Salt Extend
  145033. .sp
  145034. \fBsalt\-extend\fP is a templating tool for extending SaltStack. If you\(aqre looking to add a module to
  145035. SaltStack, then the \fBsalt\-extend\fP utility can guide you through the process.
  145036. .sp
  145037. You can use Salt Extend to quickly create templated modules for adding new behaviours to some of the module subsystems within Salt.
  145038. .sp
  145039. Salt Extend takes a template directory and merges it into a SaltStack source code directory.
  145040. .SS Command line usage
  145041. .sp
  145042. \fISee\fP salt\-extend
  145043. .SS Choosing a template
  145044. .sp
  145045. The following templates are available:
  145046. .SS module
  145047. .sp
  145048. Creates a new execution module within salt/modules/{{module_name}}.py
  145049. .SS module_unit
  145050. .sp
  145051. Creates a new execution module unit test suite within tests/unit/modules/test_{{module_name}}.py
  145052. .SS state
  145053. .sp
  145054. Creates a new state module within salt/states/{{module_name}}.py
  145055. .SS state_unit
  145056. .sp
  145057. Creates a new state module unit test suite within tests/unit/states/test_{{module_name}}.py
  145058. .SS Adding templates
  145059. .INDENT 0.0
  145060. .IP 1. 3
  145061. Create a directory under <src>/templates
  145062. .IP 2. 3
  145063. Create a file \fBtemplate.yml\fP containing properties for
  145064. .UNINDENT
  145065. .INDENT 0.0
  145066. .INDENT 3.5
  145067. .INDENT 0.0
  145068. .IP \(bu 2
  145069. \fBdescription\fP \- a description of the template
  145070. .IP \(bu 2
  145071. \fBquestions\fP \- a collection of additional questions to ask the user, the name of the item will
  145072. be used as the key in the context dictionary within the jinja template.
  145073. .INDENT 2.0
  145074. .IP \(bu 2
  145075. \fBquestion\fP \- The question to ask the user, as a string
  145076. .IP \(bu 2
  145077. \fBdefault\fP \- (optional) the default value, can contain Jinja2 template syntax and has access to the default context properties
  145078. .UNINDENT
  145079. .UNINDENT
  145080. .UNINDENT
  145081. .UNINDENT
  145082. .SS Example template.yml
  145083. .INDENT 0.0
  145084. .INDENT 3.5
  145085. .sp
  145086. .nf
  145087. .ft C
  145088. description: "Execution module"
  145089. questions:
  145090. depending_libraries:
  145091. question: "What libraries does this module depend upon?"
  145092. virtual_name:
  145093. question: "What module virtual name to use?"
  145094. default: "{{module_name}}"
  145095. .ft P
  145096. .fi
  145097. .UNINDENT
  145098. .UNINDENT
  145099. .INDENT 0.0
  145100. .IP 3. 3
  145101. Create the files within <src>/templates/<your template> to match the target
  145102. .UNINDENT
  145103. .sp
  145104. \fBNOTE:\fP
  145105. .INDENT 0.0
  145106. .INDENT 3.5
  145107. File names can contain Jinja 2 template syntax, e.g. \fI\(aq{{module_name}}.py}}\(aq\fP
  145108. .UNINDENT
  145109. .UNINDENT
  145110. .SS Example file in the template directory
  145111. .INDENT 0.0
  145112. .INDENT 3.5
  145113. .sp
  145114. .nf
  145115. .ft C
  145116. print("Hello {{module_name}}")
  145117. __virtual__ = "{{__virtual_name__}}"
  145118. .ft P
  145119. .fi
  145120. .UNINDENT
  145121. .UNINDENT
  145122. .SS Default context properties
  145123. .sp
  145124. The default context provides the following properties
  145125. .INDENT 0.0
  145126. .IP \(bu 2
  145127. \fBdescription\fP \- A description of the template
  145128. .IP \(bu 2
  145129. \fBshort_description\fP \- A short description of the module as entered by the user
  145130. .IP \(bu 2
  145131. \fBversion\fP \- The version name of the next release
  145132. .IP \(bu 2
  145133. \fBmodule_name\fP \- The module name as entered by the user
  145134. .IP \(bu 2
  145135. \fBrelease_date\fP \- The current date in the format \fIYYYY\-MM\-DD\fP
  145136. .IP \(bu 2
  145137. \fByear\fP \- The current year in the format \fIYYYY\fP
  145138. .UNINDENT
  145139. .sp
  145140. As well as any additional properties entered from the questions section of \fBtemplate.yml\fP
  145141. .SS API
  145142. .SS salt.utils.extend module
  145143. .SS Salt\(aqs Test Suite
  145144. .sp
  145145. Salt comes with a powerful integration and unit test suite allowing for
  145146. the fully automated run of integration and/or unit tests from a single
  145147. interface. It uses the combination of pytest, nox and \fI\%Kitchen Salt\fP to
  145148. run these tests. Nox is used to manage all of the test python dependencies.
  145149. When you run the test runner with nox, you will be installing the same
  145150. python dependencies that we use to run our test suite on PRs and branch tests.
  145151. \fI\%Kitchen Salt\fP is used to spin up our virtual machines based off of golden
  145152. images. These virtual machines use the \fI\%salt\-jenkins\fP sls states to configure
  145153. any system dependencies.
  145154. .sp
  145155. To learn the basics of how Salt\(aqs test suite works, be sure to check
  145156. out the Salt\(aqs Test Suite: An Introduction
  145157. tutorial.
  145158. .SS Nox
  145159. .sp
  145160. Nox is used to manage all of the python dependencies used in the test suite
  145161. and spins up the different nox sessions. You can look at the \fBnoxfile.py\fP
  145162. in the salt repo to view all of the current nox configurations. In that file
  145163. you will notice various nox sessions. When creating each of these sessions,
  145164. nox will create a virtualenv with the specified interpreter. Once the virtualenv
  145165. is created it will also install all of the required python dependencies
  145166. required for that session and run the tests.
  145167. .sp
  145168. For example if you want to run all of the tests using the zeromq transport on
  145169. python3 you would need to specify the zeromq transport and python3.
  145170. .INDENT 0.0
  145171. .INDENT 3.5
  145172. .sp
  145173. .nf
  145174. .ft C
  145175. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq
  145176. .ft P
  145177. .fi
  145178. .UNINDENT
  145179. .UNINDENT
  145180. .sp
  145181. To run all the tests but on the tcp transport, you would need to specify the tcp session.
  145182. .INDENT 0.0
  145183. .INDENT 3.5
  145184. .sp
  145185. .nf
  145186. .ft C
  145187. nox \-e \(aqpytest\-tcp\-3(coverage=False)\(aq
  145188. .ft P
  145189. .fi
  145190. .UNINDENT
  145191. .UNINDENT
  145192. .sp
  145193. You can view all available sessions by running:
  145194. .INDENT 0.0
  145195. .INDENT 3.5
  145196. .sp
  145197. .nf
  145198. .ft C
  145199. nox \-\-list\-sessions
  145200. .ft P
  145201. .fi
  145202. .UNINDENT
  145203. .UNINDENT
  145204. .sp
  145205. For the most part you will only need nox to run the test suite, as this tool
  145206. will install the exact same python dependencies we use to run on our test runs.
  145207. The exception to this is when a system dependency is required, for example \fBmysql\fP\&.
  145208. These system dependencies are installed with sls states managed in the \fI\%salt\-jenkins\fP
  145209. repo or you can manually install the dependency yourself.
  145210. .SS System Dependencies
  145211. .sp
  145212. The system dependencies are installed from the \fI\%salt\-jenkins\fP repo. The
  145213. \fBgolden\-images\-provision\fP state is what is run to determine what dependencies
  145214. to install on which platform.
  145215. We run this state only when we want to update our current VM images with new
  145216. dependencies.
  145217. .SS Kitchen Salt
  145218. .sp
  145219. We also use \fI\%Kitchen Salt\fP to spin up the VM\(aqs used for testing. You can view the
  145220. kitchen\-salt \fI\%getting started\fP for instructions on how to install and set it up.
  145221. \fI\%Kitchen Salt\fP uses Test Kitchen to spin up the VM or container in the configured
  145222. provider. Once the VM is spun up, \fI\%Kitchen Salt\fP can install salt and run a particular
  145223. set of states. In the case of our branch and PR tests we create "Golden Images" which
  145224. run the \fI\%salt\-jenkins\fP states and install salt system dependencies beforehand. We only
  145225. update these "Golden Images" when we need to upgrade or install a system dependency. You can
  145226. view the \fI\%kitchen\-salt jenkins setup\fP docs for instructions on how to set up \fI\%Kitchen Salt\fP
  145227. similar to the jenkins environment we use to run branch and PR tests.
  145228. .SS Test Directory Structure
  145229. .sp
  145230. Salt\(aqs test suite is located in the \fBtests/\fP directory in the root of
  145231. Salt\(aqs codebase.
  145232. .sp
  145233. With the migration to PyTest, Salt has created a separate directory for tests
  145234. that are written taking advantage of the full pottential of PyTest. These are
  145235. located under \fBtests/pytests\fP\&.
  145236. .sp
  145237. As for the old test suite, it is divided into two main groups:
  145238. .INDENT 0.0
  145239. .IP \(bu 2
  145240. Integration Tests
  145241. .IP \(bu 2
  145242. Unit Tests
  145243. .UNINDENT
  145244. .sp
  145245. Within each of these groups, the directory structure roughly mirrors the
  145246. structure of Salt\(aqs own codebase. Notice that there are directories for
  145247. \fBstates\fP, \fBmodules\fP, \fBrunners\fP, \fBoutput\fP, and more in each testing
  145248. group.
  145249. .sp
  145250. The files that are housed in the \fBmodules\fP directory of either the unit
  145251. or the integration testing factions contain respective integration or unit
  145252. test files for Salt execution modules.
  145253. .sp
  145254. The PyTest only tests under \fBtests/pytests\fP should, more or less, follow the
  145255. same grouping as the old test suite.
  145256. .SS Integration Tests
  145257. .sp
  145258. The Integration section of Salt\(aqs test suite start up a number of Salt
  145259. daemons to test functionality in a live environment. These daemons
  145260. include two Salt Masters, one Syndic, and two Minions. This allows the
  145261. Syndic interface to be tested and Master/Minion communication to be
  145262. verified. All of the integration tests are executed as live Salt commands
  145263. sent through the started daemons.
  145264. .sp
  145265. Integration tests are particularly good at testing modules, states, and
  145266. shell commands, among other segments of Salt\(aqs ecosystem. By utilizing
  145267. the integration test daemons, integration tests are easy to write. They
  145268. are also SaltStack\(aqs generally preferred method of adding new tests.
  145269. .sp
  145270. The discussion in the Integration vs. Unit
  145271. section of the testing tutorial is
  145272. beneficial in learning why you might want to write integration tests
  145273. vs. unit tests. Both testing arenas add value to Salt\(aqs test suite and
  145274. you should consider adding both types of tests if possible and appropriate
  145275. when contributing to Salt.
  145276. .INDENT 0.0
  145277. .IP \(bu 2
  145278. Integration Test Documentation
  145279. .UNINDENT
  145280. .SS Unit Tests
  145281. .sp
  145282. Unit tests do not spin up any Salt daemons, but instead find their value
  145283. in testing singular implementations of individual functions. Instead of
  145284. testing against specific interactions, unit tests should be used to test
  145285. a function\(aqs logic as well as any \fBreturn\fP or \fBraises\fP statements.
  145286. Unit tests also rely heavily on mocking external resources.
  145287. .sp
  145288. The discussion in the Integration vs. Unit
  145289. section of the testing tutorial is useful
  145290. in determining when you should consider writing unit tests instead of,
  145291. or in addition to, integration tests when contributing to Salt.
  145292. .INDENT 0.0
  145293. .IP \(bu 2
  145294. Unit Test Documentation
  145295. .UNINDENT
  145296. .SS Running The Tests
  145297. .sp
  145298. There is only one requirement to install, to quickly get started
  145299. running salt\(aqs test suite: \fBnox\fP\&.
  145300. .INDENT 0.0
  145301. .INDENT 3.5
  145302. .sp
  145303. .nf
  145304. .ft C
  145305. pip install nox
  145306. .ft P
  145307. .fi
  145308. .UNINDENT
  145309. .UNINDENT
  145310. .sp
  145311. Once this requirement is installed, you can use the \fBnox\fP binary to run
  145312. all of the tests included in Salt\(aqs test suite:
  145313. .INDENT 0.0
  145314. .INDENT 3.5
  145315. .sp
  145316. .nf
  145317. .ft C
  145318. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq
  145319. .ft P
  145320. .fi
  145321. .UNINDENT
  145322. .UNINDENT
  145323. .sp
  145324. For more information about options you can pass the test runner, see the
  145325. \fB\-\-help\fP option:
  145326. .INDENT 0.0
  145327. .INDENT 3.5
  145328. .sp
  145329. .nf
  145330. .ft C
  145331. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- \-\-help
  145332. .ft P
  145333. .fi
  145334. .UNINDENT
  145335. .UNINDENT
  145336. .SS Running Test Subsections
  145337. .sp
  145338. Instead of running the entire test suite all at once, which can take a long time,
  145339. there are several ways to run only specific groups of tests or individual tests:
  145340. .INDENT 0.0
  145341. .IP \(bu 2
  145342. Run \fI\%unit tests only\fP: \fBnox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/\fP
  145343. .IP \(bu 2
  145344. Run unit and integration tests for states: \fBnox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/states/ tests/integration/states/\fP
  145345. .IP \(bu 2
  145346. Run integration tests for an individual module: \fBnox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/test_virt.py\fP
  145347. .IP \(bu 2
  145348. Run unit tests for an individual module: \fBnox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/modules/test_virt.py\fP
  145349. .IP \(bu 2
  145350. Run an individual test by using the class and test name (this example is for the
  145351. \fBtest_default_kvm_profile\fP test in the \fBtests/integration/module/test_virt.py\fP):
  145352. \fBnox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/integration/modules/test_virt.py::VirtTest::test_default_kvm_profile\fP
  145353. .UNINDENT
  145354. .sp
  145355. For more specific examples of how to run various test subsections or individual
  145356. tests, please see the \fI\%pytest\fP documentation on how to run specific tests or
  145357. the Running Specific Tests
  145358. section of the Salt\(aqs Test Suite: An Introduction
  145359. tutorial.
  145360. .SS Running Unit Tests Without Integration Test Daemons
  145361. .sp
  145362. Since the unit tests do not require a master or minion to execute, it is often useful to be able to
  145363. run unit tests individually, or as a whole group, without having to start up the integration testing
  145364. daemons. Starting up the master, minion, and syndic daemons takes a lot of time before the tests can
  145365. even start running and is unnecessary to run unit tests. To run unit tests without invoking the
  145366. integration test daemons, simply add the unit directory as an argument:
  145367. .INDENT 0.0
  145368. .INDENT 3.5
  145369. .sp
  145370. .nf
  145371. .ft C
  145372. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- tests/unit/
  145373. .ft P
  145374. .fi
  145375. .UNINDENT
  145376. .UNINDENT
  145377. .sp
  145378. All of the other options to run individual tests, entire classes of tests, or
  145379. entire test modules still apply.
  145380. .SS Running Destructive Integration Tests
  145381. .sp
  145382. Salt is used to change the settings and behavior of systems. In order to
  145383. effectively test Salt\(aqs functionality, some integration tests are written to
  145384. make actual changes to the underlying system. These tests are referred to as
  145385. "destructive tests". Some examples of destructive tests are changes may be
  145386. testing the addition of a user or installing packages. By default,
  145387. destructive tests are disabled and will be skipped.
  145388. .sp
  145389. Generally, destructive tests should clean up after themselves by attempting to
  145390. restore the system to its original state. For instance, if a new user is created
  145391. during a test, the user should be deleted after the related test(s) have
  145392. completed. However, no guarantees are made that test clean\-up will complete
  145393. successfully. Therefore, running destructive tests should be done with caution.
  145394. .sp
  145395. \fBNOTE:\fP
  145396. .INDENT 0.0
  145397. .INDENT 3.5
  145398. Running destructive tests will change the underlying system.
  145399. Use caution when running destructive tests.
  145400. .UNINDENT
  145401. .UNINDENT
  145402. .sp
  145403. To run tests marked as destructive, set the \fB\-\-run\-destructive\fP flag:
  145404. .INDENT 0.0
  145405. .INDENT 3.5
  145406. .sp
  145407. .nf
  145408. .ft C
  145409. nox \-e \(aqpytest\-zeromq\-3(coverage=False)\(aq \-\- \-\-run\-destructive
  145410. .ft P
  145411. .fi
  145412. .UNINDENT
  145413. .UNINDENT
  145414. .SS Running Cloud Provider Tests
  145415. .sp
  145416. Salt\(aqs testing suite also includes integration tests to assess the successful
  145417. creation and deletion of cloud instances using Salt\-Cloud for
  145418. providers supported by Salt\-Cloud.
  145419. .sp
  145420. The cloud provider tests are off by default and run on sample configuration files
  145421. provided in \fBtests/integration/files/conf/cloud.providers.d/\fP\&. In order to run
  145422. the cloud provider tests, valid credentials, which differ per provider, must be
  145423. supplied. Each credential item that must be supplied is indicated by an empty
  145424. string value and should be edited by the user before running the tests. For
  145425. example, DigitalOcean requires a client key and an api key to operate. Therefore,
  145426. the default cloud provider configuration file for DigitalOcean looks like this:
  145427. .INDENT 0.0
  145428. .INDENT 3.5
  145429. .sp
  145430. .nf
  145431. .ft C
  145432. digitalocean\-config:
  145433. driver: digitalocean
  145434. client_key: \(aq\(aq
  145435. api_key: \(aq\(aq
  145436. location: New York 1
  145437. .ft P
  145438. .fi
  145439. .UNINDENT
  145440. .UNINDENT
  145441. .sp
  145442. As indicated by the empty string values, the \fBclient_key\fP and the \fBapi_key\fP
  145443. must be provided:
  145444. .INDENT 0.0
  145445. .INDENT 3.5
  145446. .sp
  145447. .nf
  145448. .ft C
  145449. digitalocean\-config:
  145450. driver: digitalocean
  145451. client_key: wFGEwgregeqw3435gDger
  145452. api_key: GDE43t43REGTrkilg43934t34qT43t4dgegerGEgg
  145453. location: New York 1
  145454. .ft P
  145455. .fi
  145456. .UNINDENT
  145457. .UNINDENT
  145458. .sp
  145459. \fBNOTE:\fP
  145460. .INDENT 0.0
  145461. .INDENT 3.5
  145462. When providing credential information in cloud provider configuration files,
  145463. do not include the single quotes.
  145464. .UNINDENT
  145465. .UNINDENT
  145466. .sp
  145467. Once all of the valid credentials for the cloud provider have been supplied, the
  145468. cloud provider tests can be run by setting the \fB\-\-cloud\-provider\-tests\fP flag:
  145469. .INDENT 0.0
  145470. .INDENT 3.5
  145471. .sp
  145472. .nf
  145473. .ft C
  145474. nox \-e \(aqpytest\-cloud\-3(coverage=False)\(aq
  145475. .ft P
  145476. .fi
  145477. .UNINDENT
  145478. .UNINDENT
  145479. .SS Automated Test Runs
  145480. .sp
  145481. SaltStack maintains a Jenkins server to allow for the execution of tests
  145482. across supported platforms. The tests executed from Salt\(aqs Jenkins server
  145483. create fresh virtual machines for each test run, then execute destructive
  145484. tests on the new, clean virtual machine.
  145485. .sp
  145486. SaltStack\(aqs Jenkins server continuously runs the entire test suite,
  145487. including destructive tests, on an array of various supported operating
  145488. systems throughout the day. Each actively supported branch of Salt\(aqs
  145489. repository runs the tests located in the respective branch\(aqs code. Each set
  145490. of branch tests also includes a pylint run. These branch tests help ensure
  145491. the viability of Salt code at any given point in time as pull requests
  145492. are merged into branches throughout the day.
  145493. .sp
  145494. In addition to branch tests, SaltStack\(aqs Jenkins server also runs tests
  145495. on pull requests. These pull request tests include a smaller set of
  145496. virtual machines that run on the branch tests. The pull request tests,
  145497. like the branch tests, include a pylint test as well.
  145498. .sp
  145499. When a pull request is submitted to Salt\(aqs repository on GitHub, the suite
  145500. of pull request tests are started by Jenkins. These tests are used to
  145501. gauge the pull request\(aqs viability to merge into Salt\(aqs codebase. If these
  145502. initial tests pass, the pull request can then merged into the Salt branch
  145503. by one of Salt\(aqs core developers, pending their discretion. If the initial
  145504. tests fail, core developers may request changes to the pull request. If the
  145505. failure is unrelated to the changes in question, core developers may merge
  145506. the pull request despite the initial failure.
  145507. .sp
  145508. As soon as the pull request is merged, the changes will be added to the
  145509. next branch test run on Jenkins.
  145510. .sp
  145511. For a full list of currently running test environments, go to
  145512. \fI\%https://jenkinsci.saltstack.com\fP\&.
  145513. .SS Using Salt\-Cloud on Jenkins
  145514. .sp
  145515. For testing Salt on Jenkins, SaltStack uses Salt\-Cloud to
  145516. spin up virtual machines. The script using Salt\-Cloud to accomplish this is
  145517. open source and can be found here: \fI\%https://github.com/saltstack/salt/blob/master/tests/jenkins.py\fP
  145518. .SS Writing Tests
  145519. .sp
  145520. The salt testing infrastructure is divided into two classes of tests,
  145521. integration tests and unit tests. These terms may be defined differently in
  145522. other contexts, but for Salt they are defined this way:
  145523. .INDENT 0.0
  145524. .IP \(bu 2
  145525. Unit Test: Tests which validate isolated code blocks and do not require
  145526. external interfaces such as \fBsalt\-call\fP or any of the salt daemons.
  145527. .IP \(bu 2
  145528. Integration Test: Tests which validate externally accessible features.
  145529. .UNINDENT
  145530. .sp
  145531. Salt testing uses unittest2 from the python standard library and MagicMock.
  145532. .INDENT 0.0
  145533. .IP \(bu 2
  145534. Writing integration tests
  145535. .IP \(bu 2
  145536. Writing unit tests
  145537. .UNINDENT
  145538. .SS Naming Conventions
  145539. .sp
  145540. Any function in either integration test files or unit test files that is doing
  145541. the actual testing, such as functions containing assertions, must start with
  145542. \fBtest_\fP:
  145543. .INDENT 0.0
  145544. .INDENT 3.5
  145545. .sp
  145546. .nf
  145547. .ft C
  145548. def test_user_present(self):
  145549. ...
  145550. .ft P
  145551. .fi
  145552. .UNINDENT
  145553. .UNINDENT
  145554. .sp
  145555. When functions in test files are not prepended with \fBtest_\fP, the function
  145556. acts as a normal, helper function and is not run as a test by the test suite.
  145557. .SS Submitting New Tests
  145558. .sp
  145559. Which branch of the Salt codebase should new tests be written against? The location
  145560. of where new tests should be submitted depends largely on the reason you\(aqre writing
  145561. the tests.
  145562. .SS Tests for New Features
  145563. .sp
  145564. If you are adding new functionality to Salt, please write the tests for this new
  145565. feature in the same pull request as the new feature. New features should always be
  145566. submitted to the \fBmaster\fP branch.
  145567. .sp
  145568. If you have already submitted the new feature, but did not write tests in the original
  145569. pull request that has already been merged, please feel free to submit a new pull
  145570. request containing tests. If the feature was recently added to Salt\(aqs \fBmaster\fP
  145571. branch, then the tests should be added there as well. However, if the feature was
  145572. added to \fBmaster\fP some time ago and is already present in one or more release
  145573. branches, please refer to the \fI\%Tests for Entire Files or Functions\fP section below
  145574. for more details about where to submit tests for functions or files that do not
  145575. already have tests.
  145576. .SS Tests to Accompany a Bugfix
  145577. .sp
  145578. If you are writing tests for code that fixes a bug in Salt, please write the test
  145579. in the same pull request as the bugfix. If you\(aqre unsure of where to submit your
  145580. bugfix and accompanying test, please review the
  145581. Which Salt Branch? documentation in Salt\(aqs
  145582. Contributing guide.
  145583. .SS Tests for Entire Files or Functions
  145584. .sp
  145585. Sometimes entire files in Salt are completely untested. If you are writing tests for
  145586. a file that doesn\(aqt have any tests written for it, write your test against the
  145587. earliest supported release branch that contains the file or function you\(aqre testing.
  145588. .sp
  145589. Once your tests are submitted in a pull request and is merged into the branch in
  145590. question, the tests you wrote will be merged\-forward by SaltStack core engineers and
  145591. the new tests will propagate to the newer release branches. That way the tests you
  145592. wrote will apply to all current and relevant release branches, and not just the \fBmaster\fP
  145593. branch, for example. This methodology will help protect against regressions on older
  145594. files in Salt\(aqs codebase.
  145595. .sp
  145596. There may be times when the tests you write against an older branch fail in the
  145597. merge\-forward process because functionality has changed in newer release branches.
  145598. In these cases, a Salt core developer may reach out to you for advice on the tests in
  145599. question if the path forward is unclear.
  145600. .sp
  145601. \fBNOTE:\fP
  145602. .INDENT 0.0
  145603. .INDENT 3.5
  145604. If tests are written against a file in an older release branch and then merged forward,
  145605. there may be new functionality in the file that is present in the new release branch
  145606. that is untested.It would be wise to see if new functionality could use additional
  145607. testing once the test file has propagated to newer release branches.
  145608. .UNINDENT
  145609. .UNINDENT
  145610. .SS Test Helpers
  145611. .sp
  145612. Several Salt\-specific helpers are available. A full list is available by inspecting
  145613. functions exported in \fItests.support.helpers\fP\&.
  145614. .sp
  145615. \fI@expensiveTest\fP \-\- Designates a test which typically requires a relatively costly
  145616. external resource, like a cloud virtual machine. This decorator is not normally
  145617. used by developers outside of the Salt core team.
  145618. .sp
  145619. \fI@destructiveTest\fP \-\- Marks a test as potentially destructive. It will not be run
  145620. by the test runner unless the \fB\-run\-destructive\fP test is expressly passed.
  145621. .sp
  145622. \fI@requires_network\fP \-\- Requires a network connection for the test to operate
  145623. successfully. If a network connection is not detected, the test will not run.
  145624. .sp
  145625. \fI@requires_salt_modules\fP \-\- Requires all the modules in a list of modules in
  145626. order for the test to be executed. Otherwise, the test is skipped.
  145627. .sp
  145628. \fI@requires_system_grains\fP \-\- Loads and passes the grains on the system as an
  145629. keyword argument to the test function with the name \fIgrains\fP\&.
  145630. .sp
  145631. \fI@skip_if_binaries_missing([\(aqlist\(aq, \(aqof\(aq, \(aqbinaries\(aq])\fP \-\- If called from inside a test,
  145632. the test will be skipped if the binaries are not all present on the system.
  145633. .sp
  145634. \fI@skip_if_not_root\fP \-\- If the test is not executed as root, it will be skipped.
  145635. .sp
  145636. \fI@with_system_user\fP \-\- Creates and optionally destroys a system user within a test case.
  145637. See implementation details in \fItests.support.helpers\fP for details.
  145638. .sp
  145639. \fI@with_system_group\fP \-\- Creates and optionally destroys a system group within a test case.
  145640. See implementation details in \fItests.support.helpers\fP for details.
  145641. .sp
  145642. \fI@with_system_user_and_group\fP \-\- Creates and optionally destroys a system user and group
  145643. within a test case. See implementation details in \fItests.support.helpers\fP for details.
  145644. .SS Integration Tests
  145645. .sp
  145646. The Salt integration tests come with a number of classes and methods which
  145647. allow for components to be easily tested. These classes are generally inherited
  145648. from and provide specific methods for hooking into the running integration test
  145649. environment created by the integration tests.
  145650. .sp
  145651. It is noteworthy that since integration tests validate against a running
  145652. environment that they are generally the preferred means to write tests.
  145653. .sp
  145654. The integration system is all located under \fBtests/integration\fP in the Salt
  145655. source tree. Each directory within \fBtests/integration\fP corresponds to a
  145656. directory in Salt\(aqs tree structure. For example, the integration tests for the
  145657. \fBtest.py\fP Salt module that is located in \fBsalt/modules\fP should also be
  145658. named \fBtest.py\fP and reside in \fBtests/integration/modules\fP\&.
  145659. .SS Preparing to Write Integration Tests
  145660. .sp
  145661. This guide assumes that your Salt development environment is already configured
  145662. and that you have a basic understanding of contributing to the Salt codebase.
  145663. If you\(aqre unfamiliar with either of these topics, please refer to the
  145664. Installing Salt for Development and the
  145665. Contributing pages, respectively.
  145666. .sp
  145667. This documentation also assumes that you have an understanding of how to
  145668. run Salt\(aqs test suite, including running the
  145669. test subsections, and running a single
  145670. integration test file, class, or individual test.
  145671. .SS Best Practices
  145672. .sp
  145673. Integration tests should be written to the following specifications.
  145674. .SS What to Test?
  145675. .sp
  145676. Since integration tests are used to validate against a running Salt environment,
  145677. integration tests should be written with the Salt components, and their various
  145678. interactions, in mind.
  145679. .INDENT 0.0
  145680. .IP \(bu 2
  145681. Isolate testing functionality. Don\(aqt rely on the pass or failure of other,
  145682. separate tests.
  145683. .IP \(bu 2
  145684. Individual tests should test against a single behavior.
  145685. .IP \(bu 2
  145686. Since it occasionally takes some effort to "set up" an individual test, it may
  145687. be necessary to call several functions within a single test. However, be sure
  145688. that once the work has been done to set up a test, make sure you are clear
  145689. about the functionality that is being tested.
  145690. .UNINDENT
  145691. .SS Naming Conventions
  145692. .sp
  145693. Test names and docstrings should indicate what functionality is being tested.
  145694. Test functions are named \fBtest_<fcn>_<test\-name>\fP where \fB<fcn>\fP is the
  145695. function being tested and \fB<test\-name>\fP describes the behavior being tested.
  145696. .sp
  145697. In order for integration tests to get picked up during a run of the test suite,
  145698. each individual test must be prepended with the \fBtest_\fP naming syntax, as
  145699. described above.
  145700. .sp
  145701. If a function does not start with \fBtest_\fP, then the function acts as a "normal"
  145702. function and is not considered a testing function. It will not be included in the
  145703. test run or testing output.
  145704. .SS The setUp and tearDown Functions
  145705. .sp
  145706. There are two special functions that can be utilized in the integration side of
  145707. Salt\(aqs test suite: \fBsetUp\fP and \fBtearDown\fP\&. While these functions are not
  145708. required in all test files, there are many examples in Salt\(aqs integration
  145709. test suite illustrating the broad usefulness of each function.
  145710. .sp
  145711. The \fBsetUp\fP function is used to set up any repetitive or useful tasks that the
  145712. tests in a test class need before running. For example, any of the \fBmac_*\fP
  145713. integration tests should only run on macOS machines. The \fBsetUp\fP function can
  145714. be used to test for the presence of the \fBDarwin\fP kernel. If the \fBDarwin\fP
  145715. kernel is not present, then the test should be skipped.
  145716. .INDENT 0.0
  145717. .INDENT 3.5
  145718. .sp
  145719. .nf
  145720. .ft C
  145721. def setUp(self):
  145722. """
  145723. Sets up test requirements
  145724. """
  145725. os_grain = self.run_function("grains.item", ["kernel"])
  145726. if os_grain["kernel"] not in "Darwin":
  145727. self.skipTest("Test not applicable to \(aq{kernel}\(aq kernel".format(**os_grain))
  145728. .ft P
  145729. .fi
  145730. .UNINDENT
  145731. .UNINDENT
  145732. .sp
  145733. The \fBsetUp\fP function can be used for many things. The above code snippet is
  145734. only one example. Another example might be to ensure that a particular setting
  145735. is present before running tests that would require the setting.
  145736. .sp
  145737. The \fBtearDown\fP function is used to clean up after any tests. This function is
  145738. useful for restoring any settings that might have been changed during the test
  145739. run.
  145740. .sp
  145741. \fBNOTE:\fP
  145742. .INDENT 0.0
  145743. .INDENT 3.5
  145744. The \fBsetUp\fP and \fBtearDown\fP functions run before and after each test
  145745. in the test class that the \fBsetUp\fP and \fBtearDown\fP functions are defined.
  145746. .UNINDENT
  145747. .UNINDENT
  145748. .sp
  145749. Be sure to read the \fI\%Destructive vs Non\-Destructive Tests\fP section when
  145750. using any kind of destructive functions that might alter the system running the
  145751. test suite in either the \fBsetUp\fP or \fBtearDown\fP function definitions.
  145752. .SS Testing Order
  145753. .sp
  145754. The test functions within a test class do not run in the order they were defined,
  145755. but instead run in lexicographical order.
  145756. .sp
  145757. Note that if any \fBsetUp\fP or \fBtearDown\fP functions are defined in the class,
  145758. those functions will run before (for \fBsetUp\fP) or after (for \fBtearDown\fP) each
  145759. test case.
  145760. .SS Integration Classes
  145761. .sp
  145762. The integration classes are located in \fBtests/integration/__init__.py\fP and
  145763. can be extended therein. There are four classes available to extend:
  145764. .INDENT 0.0
  145765. .IP \(bu 2
  145766. \fI\%ModuleCase\fP
  145767. .IP \(bu 2
  145768. \fI\%ShellCase\fP
  145769. .IP \(bu 2
  145770. \fI\%SSHCase\fP
  145771. .IP \(bu 2
  145772. \fI\%SyndicCase\fP
  145773. .UNINDENT
  145774. .SS ModuleCase
  145775. .sp
  145776. Used to define executions run via the master to minions and to call
  145777. single modules and states. The available testing functions are:
  145778. .SS run_function
  145779. .sp
  145780. Run a single salt function and condition the return down to match the
  145781. behavior of the raw function call. This will run the command and only
  145782. return the results from a single minion to verify.
  145783. .SS run_state
  145784. .sp
  145785. Run the state.single command and return the state return structure.
  145786. .SS minion_run
  145787. .sp
  145788. Run a single salt function on the \(aqminion\(aq target and condition the
  145789. return down to match the behavior of the raw function call.
  145790. .SS ShellCase
  145791. .sp
  145792. Shell out to the scripts which ship with Salt. The testing functions are:
  145793. .SS run_cp
  145794. .sp
  145795. Execute salt\-cp. Pass in the argument string as it would be
  145796. passed on the command line.
  145797. .SS run_call
  145798. .sp
  145799. Execute salt\-call, pass in the argument string as it would be
  145800. passed on the command line.
  145801. .SS run_cloud
  145802. .sp
  145803. Execute the salt\-cloud command. Pass in the argument string as
  145804. it would be passed on the command line.
  145805. .SS run_key
  145806. .sp
  145807. Execute the salt\-key command. Pass in the argument string as it
  145808. would be passed on the command line.
  145809. .SS run_run
  145810. .sp
  145811. Execute the salt\-run command. Pass in the argument string as it
  145812. would be passed on the command line.
  145813. .SS run_run_plus
  145814. .sp
  145815. Execute the runner function the and return the return data and output in a dict
  145816. .SS run_salt
  145817. .sp
  145818. Execute the salt command. Pass in the argument string as it would be
  145819. passed on the command line.
  145820. .SS run_script
  145821. .sp
  145822. Execute a salt script with the given argument string.
  145823. .SS run_ssh
  145824. .sp
  145825. Execute the salt\-ssh. Pass in the argument string as it would be
  145826. passed on the command line.
  145827. .SS SSHCase
  145828. .sp
  145829. Used to execute remote commands via salt\-ssh. The available methods are
  145830. as follows:
  145831. .SS run_function
  145832. .sp
  145833. Run a single salt function via salt\-ssh and condition the return down to
  145834. match the behavior of the raw function call. This will run the command
  145835. and only return the results from a single minion to verify.
  145836. .SS SyndicCase
  145837. .sp
  145838. Used to execute remote commands via a syndic and is only used to verify
  145839. the capabilities of the Salt Syndic. The available methods are as follows:
  145840. .SS run_function
  145841. .sp
  145842. Run a single salt function and condition the return down to match the
  145843. behavior of the raw function call. This will run the command and only
  145844. return the results from a single minion to verify.
  145845. .SS Examples
  145846. .sp
  145847. The following sections define simple integration tests present in Salt\(aqs
  145848. integration test suite for each type of testing class.
  145849. .SS Module Example via ModuleCase Class
  145850. .sp
  145851. Import the integration module, this module is already added to the python path
  145852. by the test execution. Inherit from the \fBintegration.ModuleCase\fP class.
  145853. .sp
  145854. Now the workhorse method \fBrun_function\fP can be used to test a module:
  145855. .INDENT 0.0
  145856. .INDENT 3.5
  145857. .sp
  145858. .nf
  145859. .ft C
  145860. import os
  145861. from tests.support.case import ModuleCase
  145862. class TestModuleTest(ModuleCase):
  145863. """
  145864. Validate the test module
  145865. """
  145866. def test_ping(self):
  145867. """
  145868. test.ping
  145869. """
  145870. self.assertTrue(self.run_function("test.ping"))
  145871. def test_echo(self):
  145872. """
  145873. test.echo
  145874. """
  145875. self.assertEqual(self.run_function("test.echo", ["text"]), "text")
  145876. .ft P
  145877. .fi
  145878. .UNINDENT
  145879. .UNINDENT
  145880. .sp
  145881. The fist example illustrates the testing master issuing a \fBtest.ping\fP call
  145882. to a testing minion. The test asserts that the minion returned with a \fBTrue\fP
  145883. value to the master from the \fBtest.ping\fP call.
  145884. .sp
  145885. The second example similarly verifies that the minion executed the
  145886. \fBtest.echo\fP command with the \fBtext\fP argument. The \fBassertEqual\fP call
  145887. maintains that the minion ran the function and returned the data as expected
  145888. to the master.
  145889. .SS Shell Example via ShellCase
  145890. .sp
  145891. Validating the shell commands can be done via shell tests:
  145892. .INDENT 0.0
  145893. .INDENT 3.5
  145894. .sp
  145895. .nf
  145896. .ft C
  145897. import sys
  145898. import shutil
  145899. import tempfile
  145900. from tests.support.case import ShellCase
  145901. class KeyTest(ShellCase):
  145902. """
  145903. Test salt\-key script
  145904. """
  145905. _call_binary_ = "salt\-key"
  145906. def test_list(self):
  145907. """
  145908. test salt\-key \-L
  145909. """
  145910. data = self.run_key("\-L")
  145911. expect = [
  145912. "Unaccepted Keys:",
  145913. "Accepted Keys:",
  145914. "minion",
  145915. "sub_minion",
  145916. "Rejected:",
  145917. "",
  145918. ]
  145919. self.assertEqual(data, expect)
  145920. .ft P
  145921. .fi
  145922. .UNINDENT
  145923. .UNINDENT
  145924. .sp
  145925. This example verifies that the \fBsalt\-key\fP command executes and returns as
  145926. expected by making use of the \fBrun_key\fP method.
  145927. .SS SSH Example via SSHCase
  145928. .sp
  145929. Testing salt\-ssh functionality can be done using the SSHCase test class:
  145930. .INDENT 0.0
  145931. .INDENT 3.5
  145932. .sp
  145933. .nf
  145934. .ft C
  145935. from tests.support.case import SSHCase
  145936. class SSHGrainsTest(SSHCase):
  145937. \(aq\(aq\(aq
  145938. Test salt\-ssh grains functionality
  145939. Depend on proper environment set by integration.SSHCase class
  145940. \(aq\(aq\(aq
  145941. def test_grains_id(self):
  145942. \(aq\(aq\(aq
  145943. Test salt\-ssh grains id work for localhost.
  145944. \(aq\(aq\(aq
  145945. cmd = self.run_function(\(aqgrains.get\(aq, [\(aqid\(aq])
  145946. self.assertEqual(cmd, \(aqlocalhost\(aq)
  145947. .ft P
  145948. .fi
  145949. .UNINDENT
  145950. .UNINDENT
  145951. .SS Testing Event System via SaltMinionEventAssertsMixin
  145952. .sp
  145953. The fundamentially asynchronous nature of Salt makes testing the event system a challenge.
  145954. The \fBSaltMinionEventAssertsMixin\fP provides a facility for testing that events were received
  145955. on a minion event bus.
  145956. .INDENT 0.0
  145957. .INDENT 3.5
  145958. .sp
  145959. .nf
  145960. .ft C
  145961. import salt.utils.event
  145962. from tests.support.mixins import SaltEventAssertsMixin
  145963. class TestEvent(SaltEventAssertsMixin):
  145964. """
  145965. Example test of firing an event and receiving it
  145966. """
  145967. def test_event(self):
  145968. e = salt.utils.event.get_event(
  145969. "minion", sock_dir=self.minion_opts["sock_dir"], opts=self.minion_opts
  145970. )
  145971. e.fire_event({"a": "b"}, "/test_event")
  145972. self.assertMinionEventReceived({"a": "b"})
  145973. .ft P
  145974. .fi
  145975. .UNINDENT
  145976. .UNINDENT
  145977. .SS Syndic Example via SyndicCase
  145978. .sp
  145979. Testing Salt\(aqs Syndic can be done via the SyndicCase test class:
  145980. .INDENT 0.0
  145981. .INDENT 3.5
  145982. .sp
  145983. .nf
  145984. .ft C
  145985. from tests.support.case import SyndicCase
  145986. class TestSyndic(SyndicCase):
  145987. """
  145988. Validate the syndic interface by testing the test module
  145989. """
  145990. def test_ping(self):
  145991. """
  145992. test.ping
  145993. """
  145994. self.assertTrue(self.run_function("test.ping"))
  145995. .ft P
  145996. .fi
  145997. .UNINDENT
  145998. .UNINDENT
  145999. .sp
  146000. This example verifies that a \fBtest.ping\fP command is issued from the testing
  146001. master, is passed through to the testing syndic, down to the minion, and back
  146002. up again by using the \fBrun_function\fP located with in the \fBSyndicCase\fP test
  146003. class.
  146004. .SS Integration Test Files
  146005. .sp
  146006. Since using Salt largely involves configuring states, editing files, and changing
  146007. system data, the integration test suite contains a directory named \fBfiles\fP to
  146008. aid in testing functions that require files. Various Salt integration tests use
  146009. these example files to test against instead of altering system files and data.
  146010. .sp
  146011. Each directory within \fBtests/integration/files\fP contain files that accomplish
  146012. different tasks, based on the needs of the integration tests using those files.
  146013. For example, \fBtests/integration/files/ssh\fP is used to bootstrap the test runner
  146014. for salt\-ssh testing, while \fBtests/integration/files/pillar\fP contains files
  146015. storing data needed to test various pillar functions.
  146016. .sp
  146017. The \fBtests/integration/files\fP directory also includes an integration state tree.
  146018. The integration state tree can be found at \fBtests/integration/files/file/base\fP\&.
  146019. .sp
  146020. The following example demonstrates how integration files can be used with ModuleCase
  146021. to test states:
  146022. .INDENT 0.0
  146023. .INDENT 3.5
  146024. .sp
  146025. .nf
  146026. .ft C
  146027. # Import python libs
  146028. from __future__ import absolute_import
  146029. import os
  146030. import shutil
  146031. # Import Salt Testing libs
  146032. from tests.support.case import ModuleCase
  146033. from tests.support.paths import FILES, TMP
  146034. from tests.support.mixins import SaltReturnAssertsMixin
  146035. # Import salt libs
  146036. import salt.utils.files
  146037. HFILE = os.path.join(TMP, "hosts")
  146038. class HostTest(ModuleCase, SaltReturnAssertsMixin):
  146039. """
  146040. Validate the host state
  146041. """
  146042. def setUp(self):
  146043. shutil.copyfile(os.path.join(FILES, "hosts"), HFILE)
  146044. super(HostTest, self).setUp()
  146045. def tearDown(self):
  146046. if os.path.exists(HFILE):
  146047. os.remove(HFILE)
  146048. super(HostTest, self).tearDown()
  146049. def test_present(self):
  146050. """
  146051. host.present
  146052. """
  146053. name = "spam.bacon"
  146054. ip = "10.10.10.10"
  146055. ret = self.run_state("host.present", name=name, ip=ip)
  146056. self.assertSaltTrueReturn(ret)
  146057. with salt.utils.files.fopen(HFILE) as fp_:
  146058. output = fp_.read()
  146059. self.assertIn("{0}\et\et{1}".format(ip, name), output)
  146060. .ft P
  146061. .fi
  146062. .UNINDENT
  146063. .UNINDENT
  146064. .sp
  146065. To access the integration files, a variable named \fBFILES\fP points to the
  146066. \fBtests/integration/files\fP directory. This is where the referenced
  146067. \fBhost.present\fP sls file resides.
  146068. .sp
  146069. In addition to the static files in the integration state tree, the location
  146070. \fBTMP\fP can also be used to store temporary files that the test system
  146071. will clean up when the execution finishes.
  146072. .SS Destructive vs Non\-Destructive Tests
  146073. .sp
  146074. Since Salt is used to change the settings and behavior of systems, one testing
  146075. approach is to run tests that make actual changes to the underlying system. This
  146076. is where the concept of destructive integration tests comes into play. Tests can
  146077. be written to alter the system they are running on. This capability is what fills
  146078. in the gap needed to properly test aspects of system management like package
  146079. installation.
  146080. .sp
  146081. Any test that changes the underlying system in any way, such as creating or
  146082. deleting users, installing packages, or changing permissions should include the
  146083. \fB@destructive\fP decorator to signal system changes and should be written with
  146084. care. System changes executed within a destructive test should also be restored
  146085. once the related tests have completed. For example, if a new user is created to
  146086. test a module, the same user should be removed after the test is completed to
  146087. maintain system integrity.
  146088. .sp
  146089. To write a destructive test, import, and use the destructiveTest decorator for
  146090. the test method:
  146091. .INDENT 0.0
  146092. .INDENT 3.5
  146093. .sp
  146094. .nf
  146095. .ft C
  146096. from tests.support.case import ModuleCase
  146097. from tests.support.helpers import destructiveTest, skip_if_not_root
  146098. class DestructiveExampleModuleTest(ModuleCase):
  146099. """
  146100. Demonstrate a destructive test
  146101. """
  146102. @destructiveTest
  146103. @skip_if_not_root
  146104. def test_user_not_present(self):
  146105. """
  146106. This is a DESTRUCTIVE TEST it creates a new user on the minion.
  146107. And then destroys that user.
  146108. """
  146109. ret = self.run_state("user.present", name="salt_test")
  146110. self.assertSaltTrueReturn(ret)
  146111. ret = self.run_state("user.absent", name="salt_test")
  146112. self.assertSaltTrueReturn(ret)
  146113. .ft P
  146114. .fi
  146115. .UNINDENT
  146116. .UNINDENT
  146117. .SS Cloud Provider Tests
  146118. .sp
  146119. Cloud provider integration tests are used to assess Salt\-Cloud\(aqs
  146120. ability to create and destroy cloud instances for various supported cloud providers.
  146121. Cloud provider tests inherit from the ShellCase Integration Class.
  146122. .sp
  146123. Any new cloud provider test files should be added to the \fBtests/integration/cloud/providers/\fP
  146124. directory. Each cloud provider test file also requires a sample cloud profile and cloud
  146125. provider configuration file in the integration test file directory located at
  146126. \fBtests/integration/files/conf/cloud.*.d/\fP\&.
  146127. .sp
  146128. The following is an example of the default profile configuration file for Digital
  146129. Ocean, located at: \fBtests/integration/files/conf/cloud.profiles.d/digitalocean.conf\fP:
  146130. .INDENT 0.0
  146131. .INDENT 3.5
  146132. .sp
  146133. .nf
  146134. .ft C
  146135. digitalocean\-test:
  146136. provider: digitalocean\-config
  146137. image: Ubuntu 14.04 x64
  146138. size: 512MB
  146139. .ft P
  146140. .fi
  146141. .UNINDENT
  146142. .UNINDENT
  146143. .sp
  146144. Each cloud provider requires different configuration credentials. Therefore, sensitive
  146145. information such as API keys or passwords should be omitted from the cloud provider
  146146. configuration file and replaced with an empty string. The necessary credentials can
  146147. be provided by the user by editing the provider configuration file before running the
  146148. tests.
  146149. .sp
  146150. The following is an example of the default provider configuration file for Digital
  146151. Ocean, located at: \fBtests/integration/files/conf/cloud.providers.d/digitalocean.conf\fP:
  146152. .INDENT 0.0
  146153. .INDENT 3.5
  146154. .sp
  146155. .nf
  146156. .ft C
  146157. digitalocean\-config:
  146158. driver: digitalocean
  146159. client_key: \(aq\(aq
  146160. api_key: \(aq\(aq
  146161. location: New York 1
  146162. .ft P
  146163. .fi
  146164. .UNINDENT
  146165. .UNINDENT
  146166. .sp
  146167. In addition to providing the necessary cloud profile and provider files in the integration
  146168. test suite file structure, appropriate checks for if the configuration files exist and
  146169. contain valid information are also required in the test class\(aqs \fBsetUp\fP function:
  146170. .INDENT 0.0
  146171. .INDENT 3.5
  146172. .sp
  146173. .nf
  146174. .ft C
  146175. from tests.support.case import ShellCase
  146176. from tests.support.paths import FILES
  146177. class LinodeTest(ShellCase):
  146178. \(aq\(aq\(aq
  146179. Integration tests for the Linode cloud provider in Salt\-Cloud
  146180. \(aq\(aq\(aq
  146181. def setUp(self):
  146182. \(aq\(aq\(aq
  146183. Sets up the test requirements
  146184. \(aq\(aq\(aq
  146185. super(LinodeTest, self).setUp()
  146186. # check if appropriate cloud provider and profile files are present
  146187. profile_str = \(aqlinode\-config:\(aq
  146188. provider = \(aqlinode\(aq
  146189. providers = self.run_cloud(\(aq\-\-list\-providers\(aq)
  146190. if profile_str not in providers:
  146191. self.skipTest(
  146192. \(aqConfiguration file for {0} was not found. Check {0}.conf files \(aq
  146193. \(aqin tests/integration/files/conf/cloud.*.d/ to run these tests.\(aq
  146194. .format(provider)
  146195. )
  146196. # check if apikey and password are present
  146197. path = os.path.join(FILES,
  146198. \(aqconf\(aq,
  146199. \(aqcloud.providers.d\(aq,
  146200. provider + \(aq.conf\(aq)
  146201. config = cloud_providers_config(path)
  146202. api = config[\(aqlinode\-config\(aq][\(aqlinode\(aq][\(aqapikey\(aq]
  146203. password = config[\(aqlinode\-config\(aq][\(aqlinode\(aq][\(aqpassword\(aq]
  146204. if api == \(aq\(aq or password == \(aq\(aq:
  146205. self.skipTest(
  146206. \(aqAn api key and password must be provided to run these tests. Check \(aq
  146207. \(aqtests/integration/files/conf/cloud.providers.d/{0}.conf\(aq.format(
  146208. provider
  146209. )
  146210. )
  146211. .ft P
  146212. .fi
  146213. .UNINDENT
  146214. .UNINDENT
  146215. .sp
  146216. Repeatedly creating and destroying instances on cloud providers can be costly.
  146217. Therefore, cloud provider tests are off by default and do not run automatically. To
  146218. run the cloud provider tests, the \fB\-\-cloud\-provider\-tests\fP flag must be provided:
  146219. .INDENT 0.0
  146220. .INDENT 3.5
  146221. .sp
  146222. .nf
  146223. .ft C
  146224. \&./tests/runtests.py \-\-cloud\-provider\-tests
  146225. .ft P
  146226. .fi
  146227. .UNINDENT
  146228. .UNINDENT
  146229. .sp
  146230. Since cloud provider tests do not run automatically, all provider tests must be
  146231. preceded with the \fB@expensiveTest\fP decorator. The expensive test decorator is
  146232. necessary because it signals to the test suite that the
  146233. \fB\-\-cloud\-provider\-tests\fP flag is required to run the cloud provider tests.
  146234. .sp
  146235. To write a cloud provider test, import, and use the expensiveTest decorator for
  146236. the test function:
  146237. .INDENT 0.0
  146238. .INDENT 3.5
  146239. .sp
  146240. .nf
  146241. .ft C
  146242. from tests.support.helpers import expensiveTest
  146243. @expensiveTest
  146244. def test_instance(self):
  146245. """
  146246. Test creating an instance on Linode
  146247. """
  146248. name = "linode\-testing"
  146249. # create the instance
  146250. instance = self.run_cloud("\-p linode\-test {0}".format(name))
  146251. str = " {0}".format(name)
  146252. # check if instance with salt installed returned as expected
  146253. try:
  146254. self.assertIn(str, instance)
  146255. except AssertionError:
  146256. self.run_cloud("\-d {0} \-\-assume\-yes".format(name))
  146257. raise
  146258. # delete the instance
  146259. delete = self.run_cloud("\-d {0} \-\-assume\-yes".format(name))
  146260. str = " True"
  146261. try:
  146262. self.assertIn(str, delete)
  146263. except AssertionError:
  146264. raise
  146265. .ft P
  146266. .fi
  146267. .UNINDENT
  146268. .UNINDENT
  146269. .SS Adding New Directories
  146270. .sp
  146271. If the corresponding Salt directory does not exist within
  146272. \fBtests/integration\fP, the new directory must be created along with the
  146273. appropriate test file to maintain Salt\(aqs testing directory structure.
  146274. .sp
  146275. In order for Salt\(aqs test suite to recognize tests within the newly
  146276. created directory, options to run the new integration tests must be added to
  146277. \fBtests/runtests.py\fP\&. Examples of the necessary options that must be added
  146278. can be found here: \fI\%https://github.com/saltstack/salt/blob/master/tests/runtests.py\fP\&. The functions that need to be
  146279. edited are \fBsetup_additional_options\fP, \fBvalidate_options\fP, and
  146280. \fBrun_integration_tests\fP\&.
  146281. .SS Writing Unit Tests
  146282. .SS Introduction
  146283. .sp
  146284. Like many software projects, Salt has two broad\-based testing approaches \-\-
  146285. integration testing and unit testing. While integration testing focuses on the
  146286. interaction between components in a sandboxed environment, unit testing focuses
  146287. on the singular implementation of individual functions.
  146288. .sp
  146289. Unit tests should be used specifically to test a function\(aqs logic. Unit tests
  146290. rely on mocking external resources.
  146291. .sp
  146292. While unit tests are good for ensuring consistent results, they are most
  146293. useful when they do not require more than a few mocks. Effort should be
  146294. made to mock as many external resources as possible. This effort is encouraged,
  146295. but not required. Sometimes the isolation provided by completely mocking the
  146296. external dependencies is not worth the effort of mocking those dependencies.
  146297. .sp
  146298. In these cases, requiring an external library to be installed on the
  146299. system before running the test file is a useful way to strike this balance.
  146300. For example, the unit tests for the MySQL execution module require the
  146301. presence of the MySQL python bindings on the system running the test file
  146302. before proceeding to run the tests.
  146303. .sp
  146304. Overly detailed mocking can also result in decreased test readability and
  146305. brittleness as the tests are more likely to fail when the code or its
  146306. dependencies legitimately change. In these cases, it is better to add
  146307. dependencies to the test runner dependency state.
  146308. .SS Preparing to Write a Unit Test
  146309. .sp
  146310. This guide assumes that your Salt development environment is already configured
  146311. and that you have a basic understanding of contributing to the Salt codebase.
  146312. If you\(aqre unfamiliar with either of these topics, please refer to the
  146313. Installing Salt for Development and the
  146314. Contributing pages, respectively.
  146315. .sp
  146316. This documentation also assumes that you have an understanding of how to
  146317. run Salt\(aqs test suite, including running the
  146318. unit test subsection, running the unit tests
  146319. without testing daemons to speed up
  146320. development wait times, and running a unit test file, class, or individual test.
  146321. .SS Best Practices
  146322. .sp
  146323. Unit tests should be written to the following specifications.
  146324. .SS What to Test?
  146325. .sp
  146326. Since unit testing focuses on the singular implementation of individual functions,
  146327. unit tests should be used specifically to test a function\(aqs logic. The following
  146328. guidelines should be followed when writing unit tests for Salt\(aqs test suite:
  146329. .INDENT 0.0
  146330. .IP \(bu 2
  146331. Each \fBraise\fP and \fBreturn\fP statement needs to be independently tested.
  146332. .IP \(bu 2
  146333. Isolate testing functionality. Don\(aqt rely on the pass or failure of other,
  146334. separate tests.
  146335. .IP \(bu 2
  146336. Test functions should contain only one assertion.
  146337. .IP \(bu 2
  146338. Many Salt execution modules are merely wrappers for distribution\-specific
  146339. functionality. If there isn\(aqt any logic present in a simple execution module,
  146340. consider writing an integration test instead of
  146341. heavily mocking a call to an external dependency.
  146342. .UNINDENT
  146343. .SS Mocking Test Data
  146344. .sp
  146345. A reasonable effort needs to be made to mock external resources used in the
  146346. code being tested, such as APIs, function calls, external data either
  146347. globally available or passed in through function arguments, file data, etc.
  146348. .INDENT 0.0
  146349. .IP \(bu 2
  146350. Test functions should contain only one assertion and all necessary mock code
  146351. and data for that assertion.
  146352. .IP \(bu 2
  146353. External resources should be mocked in order to "block all of the exits". If a
  146354. test function fails because something in an external library wasn\(aqt mocked
  146355. properly (or at all), this test is not addressing all of the "exits" a function
  146356. may experience. We want the Salt code and logic to be tested, specifically.
  146357. .IP \(bu 2
  146358. Consider the fragility and longevity of a test. If the test is so tightly coupled
  146359. to the code being tested, this makes a test unnecessarily fragile.
  146360. .IP \(bu 2
  146361. Make sure you are not mocking the function to be tested so vigorously that the
  146362. test return merely tests the mocked output. The test should always be testing
  146363. a function\(aqs logic.
  146364. .UNINDENT
  146365. .SS Mocking Loader Modules
  146366. .sp
  146367. Salt loader modules use a series of globally available dunder variables,
  146368. \fB__salt__\fP, \fB__opts__\fP, \fB__pillar__\fP, etc. To facilitate testing these
  146369. modules a mixin class was created, \fBLoaderModuleMockMixin\fP which can be found
  146370. in \fBtests/support/mixins.py\fP\&. The reason for the existence of this class is
  146371. because historically one would add these dunder
  146372. variables directly on the imported module. This, however, introduces unexpected
  146373. behavior when running the full test suite since those attributes would not be
  146374. removed once we were done testing the module and would therefore leak to other
  146375. modules being tested with unpredictable results. This is the kind of work that
  146376. should be deferred to mock, and that\(aqs exactly what this mixin class does.
  146377. .sp
  146378. As an example, if one needs to specify some options which should be available
  146379. to the module being tested one should do:
  146380. .INDENT 0.0
  146381. .INDENT 3.5
  146382. .sp
  146383. .nf
  146384. .ft C
  146385. import salt.modules.somemodule as somemodule
  146386. class SomeModuleTest(TestCase, LoaderModuleMockMixin):
  146387. def setup_loader_modules(self):
  146388. return {somemodule: {"__opts__": {"test": True}}}
  146389. .ft P
  146390. .fi
  146391. .UNINDENT
  146392. .UNINDENT
  146393. .sp
  146394. Consider this more extensive example from
  146395. \fBtests/unit/modules/test_libcloud_dns.py\fP:
  146396. .INDENT 0.0
  146397. .INDENT 3.5
  146398. .sp
  146399. .nf
  146400. .ft C
  146401. # Import Python Libs
  146402. from __future__ import absolute_import
  146403. # Import Salt Testing Libs
  146404. from tests.support.mixins import LoaderModuleMockMixin
  146405. from tests.support.unit import TestCase
  146406. from tests.support.mock import patch, MagicMock
  146407. import salt.modules.libcloud_dns as libcloud_dns
  146408. class MockDNSDriver(object):
  146409. def __init__(self):
  146410. pass
  146411. def get_mock_driver():
  146412. return MockDNSDriver()
  146413. @patch("salt.modules.libcloud_dns._get_driver", MagicMock(return_value=MockDNSDriver()))
  146414. class LibcloudDnsModuleTestCase(TestCase, LoaderModuleMockMixin):
  146415. def setup_loader_modules(self):
  146416. module_globals = {
  146417. "__salt__": {
  146418. "config.option": MagicMock(
  146419. return_value={"test": {"driver": "test", "key": "2orgk34kgk34g"}}
  146420. )
  146421. }
  146422. }
  146423. if libcloud_dns.HAS_LIBCLOUD is False:
  146424. module_globals["sys.modules"] = {"libcloud": MagicMock()}
  146425. return {libcloud_dns: module_globals}
  146426. .ft P
  146427. .fi
  146428. .UNINDENT
  146429. .UNINDENT
  146430. .sp
  146431. What happens in the above example is we mock a call to
  146432. \fI__salt__[\(aqconfig.option\(aq]\fP to return the configuration needed for the
  146433. execution of the tests. Additionally, if the \fBlibcloud\fP library is not
  146434. available, since that\(aqs not actually part of what\(aqs being tested, we mocked that
  146435. import by patching \fBsys.modules\fP when tests are running.
  146436. .SS Mocking Filehandles
  146437. .sp
  146438. \fBNOTE:\fP
  146439. .INDENT 0.0
  146440. .INDENT 3.5
  146441. This documentation applies to the 2018.3 release cycle and newer. The
  146442. extended functionality for \fBmock_open\fP described below does not exist in
  146443. the 2017.7 and older release branches.
  146444. .UNINDENT
  146445. .UNINDENT
  146446. .sp
  146447. Opening files in Salt is done using \fBsalt.utils.files.fopen()\fP\&. When testing
  146448. code that reads from files, the \fBmock_open\fP helper can be used to mock
  146449. filehandles. Note that is not the same \fBmock_open\fP as
  146450. \fI\%unittest.mock.mock_open()\fP from the Python standard library, but rather
  146451. a separate implementation which has additional functionality.
  146452. .INDENT 0.0
  146453. .INDENT 3.5
  146454. .sp
  146455. .nf
  146456. .ft C
  146457. from tests.support.unit import TestCase
  146458. from tests.support.mock import patch, mock_open
  146459. import salt.modules.mymod as mymod
  146460. class MyAwesomeTestCase(TestCase):
  146461. def test_something(self):
  146462. fopen_mock = mock_open(read_data="foo\enbar\enbaz\en")
  146463. with patch("salt.utils.files.fopen", fopen_mock):
  146464. result = mymod.myfunc()
  146465. assert result is True
  146466. .ft P
  146467. .fi
  146468. .UNINDENT
  146469. .UNINDENT
  146470. .sp
  146471. This will force any filehandle opened to mimic a filehandle which, when read,
  146472. produces the specified contents.
  146473. .sp
  146474. \fBIMPORTANT:\fP
  146475. .INDENT 0.0
  146476. .INDENT 3.5
  146477. \fBString Types\fP
  146478. .sp
  146479. When running tests on Python 2, \fBmock_open\fP will convert any \fBunicode\fP
  146480. types to \fBstr\fP types to more closely reproduce Python 2 behavior (file
  146481. reads are always \fBstr\fP types in Python 2, irrespective of mode).
  146482. .sp
  146483. However, when configuring your read_data, make sure that you are using
  146484. bytestrings (e.g. \fBb\(aqfoo\enbar\enbaz\en\(aq\fP) when the code you are testing is
  146485. opening a file for binary reading, otherwise the tests will fail on Python
  146486. 3. The mocked filehandles produced by \fBmock_open\fP will raise a
  146487. \fI\%TypeError\fP if you attempt to read a bytestring when opening for
  146488. non\-binary reading, and similarly will not let you read a string when
  146489. opening a file for binary reading. They will also not permit bytestrings to
  146490. be "written" if the mocked filehandle was opened for non\-binary writing,
  146491. and vice\-versa when opened for non\-binary writing. These enhancements force
  146492. test writers to write more accurate tests.
  146493. .UNINDENT
  146494. .UNINDENT
  146495. .SS More Complex Scenarios
  146496. .SS Multiple File Paths
  146497. .sp
  146498. What happens when the code being tested reads from more than one file? For
  146499. those cases, you can pass \fBread_data\fP as a dictionary:
  146500. .INDENT 0.0
  146501. .INDENT 3.5
  146502. .sp
  146503. .nf
  146504. .ft C
  146505. import textwrap
  146506. from tests.support.unit import TestCase
  146507. from tests.support.mock import patch, mock_open
  146508. import salt.modules.mymod as mymod
  146509. class MyAwesomeTestCase(TestCase):
  146510. def test_something(self):
  146511. contents = {
  146512. "/etc/foo.conf": textwrap.dedent(
  146513. """\e
  146514. foo
  146515. bar
  146516. baz
  146517. """
  146518. ),
  146519. "/etc/b*.conf": textwrap.dedent(
  146520. """\e
  146521. one
  146522. two
  146523. three
  146524. """
  146525. ),
  146526. }
  146527. fopen_mock = mock_open(read_data=contents)
  146528. with patch("salt.utils.files.fopen", fopen_mock):
  146529. result = mymod.myfunc()
  146530. assert result is True
  146531. .ft P
  146532. .fi
  146533. .UNINDENT
  146534. .UNINDENT
  146535. .sp
  146536. This would make \fBsalt.utils.files.fopen()\fP produce filehandles with different
  146537. contents depending on which file was being opened by the code being tested.
  146538. \fB/etc/foo.conf\fP and any file matching the pattern \fB/etc/b*.conf\fP would
  146539. work, while opening any other path would result in a
  146540. \fI\%FileNotFoundError\fP being raised (in Python 2, an \fBIOError\fP).
  146541. .sp
  146542. Since file patterns are supported, it is possible to use a pattern of \fB\(aq*\(aq\fP
  146543. to define a fallback if no other patterns match the filename being opened. The
  146544. below two \fBmock_open\fP calls would produce identical results:
  146545. .INDENT 0.0
  146546. .INDENT 3.5
  146547. .sp
  146548. .nf
  146549. .ft C
  146550. mock_open(read_data="foo\en")
  146551. mock_open(read_data={"*": "foo\en"})
  146552. .ft P
  146553. .fi
  146554. .UNINDENT
  146555. .UNINDENT
  146556. .sp
  146557. \fBNOTE:\fP
  146558. .INDENT 0.0
  146559. .INDENT 3.5
  146560. Take care when specifying the \fBread_data\fP as a dictionary, in cases where
  146561. the patterns overlap (e.g. when both \fB/etc/b*.conf\fP and \fB/etc/bar.conf\fP
  146562. are in the \fBread_data\fP). Dictionary iteration order will determine which
  146563. pattern is attempted first, second, etc., with the exception of \fB*\fP which
  146564. is used when no other pattern matches. If your test case calls for
  146565. specifying overlapping patterns, and you are not running Python 3.6 or
  146566. newer, then an \fBOrderedDict\fP can be used to ensure matching is handled in
  146567. the desired way:
  146568. .INDENT 0.0
  146569. .INDENT 3.5
  146570. .sp
  146571. .nf
  146572. .ft C
  146573. contents = OrderedDict()
  146574. contents["/etc/bar.conf"] = "foo\enbar\enbaz\en"
  146575. contents["/etc/b*.conf"] = IOError(errno.EACCES, "Permission denied")
  146576. contents["*"] = \(aqThis is a fallback for files not beginning with "/etc/b"\en\(aq
  146577. fopen_mock = mock_open(read_data=contents)
  146578. .ft P
  146579. .fi
  146580. .UNINDENT
  146581. .UNINDENT
  146582. .UNINDENT
  146583. .UNINDENT
  146584. .SS Raising Exceptions
  146585. .sp
  146586. Instead of a string, an exception can also be used as the \fBread_data\fP:
  146587. .INDENT 0.0
  146588. .INDENT 3.5
  146589. .sp
  146590. .nf
  146591. .ft C
  146592. import errno
  146593. from tests.support.unit import TestCase
  146594. from tests.support.mock import patch, mock_open
  146595. import salt.modules.mymod as mymod
  146596. class MyAwesomeTestCase(TestCase):
  146597. def test_something(self):
  146598. exc = IOError(errno.EACCES, "Permission denied")
  146599. fopen_mock = mock_open(read_data=exc)
  146600. with patch("salt.utils.files.fopen", fopen_mock):
  146601. mymod.myfunc()
  146602. .ft P
  146603. .fi
  146604. .UNINDENT
  146605. .UNINDENT
  146606. .sp
  146607. The above example would raise the specified exception when any file is opened.
  146608. The expectation would be that \fBmymod.myfunc()\fP would gracefully handle the
  146609. IOError, so a failure to do that would result in it being raised and causing
  146610. the test to fail.
  146611. .SS Multiple File Contents
  146612. .sp
  146613. For cases in which a file is being read more than once, and it is necessary to
  146614. test a function\(aqs behavior based on what the file looks like the second (or
  146615. third, etc.) time it is read, just specify the contents for that file as a
  146616. list. Each time the file is opened, \fBmock_open\fP will cycle through the list
  146617. and produce a mocked filehandle with the specified contents. For example:
  146618. .INDENT 0.0
  146619. .INDENT 3.5
  146620. .sp
  146621. .nf
  146622. .ft C
  146623. import errno
  146624. import textwrap
  146625. from tests.support.unit import TestCase
  146626. from tests.support.mock import patch, mock_open
  146627. import salt.modules.mymod as mymod
  146628. class MyAwesomeTestCase(TestCase):
  146629. def test_something(self):
  146630. contents = {
  146631. "/etc/foo.conf": [
  146632. textwrap.dedent(
  146633. """\e
  146634. foo
  146635. bar
  146636. """
  146637. ),
  146638. textwrap.dedent(
  146639. """\e
  146640. foo
  146641. bar
  146642. baz
  146643. """
  146644. ),
  146645. ],
  146646. "/etc/b*.conf": [
  146647. IOError(errno.ENOENT, "No such file or directory"),
  146648. textwrap.dedent(
  146649. """\e
  146650. one
  146651. two
  146652. three
  146653. """
  146654. ),
  146655. ],
  146656. }
  146657. fopen_mock = mock_open(read_data=contents)
  146658. with patch("salt.utils.files.fopen", fopen_mock):
  146659. result = mymod.myfunc()
  146660. assert result is True
  146661. .ft P
  146662. .fi
  146663. .UNINDENT
  146664. .UNINDENT
  146665. .sp
  146666. Using this example, the first time \fB/etc/foo.conf\fP is opened, it will
  146667. simulate a file with the first string in the list as its contents, while the
  146668. second time it is opened, the simulated file\(aqs contents will be the second
  146669. string in the list.
  146670. .sp
  146671. If no more items remain in the list, then attempting to open the file will
  146672. raise a \fI\%RuntimeError\fP\&. In the example above, if \fB/etc/foo.conf\fP were
  146673. to be opened a third time, a \fI\%RuntimeError\fP would be raised.
  146674. .sp
  146675. Note that exceptions can also be mixed in with strings when using this
  146676. technique. In the above example, if \fB/etc/bar.conf\fP were to be opened twice,
  146677. the first time would simulate the file not existing, while the second time
  146678. would simulate a file with string defined in the second element of the list.
  146679. .sp
  146680. \fBNOTE:\fP
  146681. .INDENT 0.0
  146682. .INDENT 3.5
  146683. Notice that the second path in the \fBcontents\fP dictionary above
  146684. (\fB/etc/b*.conf\fP) contains an asterisk. The items in the list are cycled
  146685. through for each match of a given pattern (\fInot\fP separately for each
  146686. individual file path), so this means that only two files matching that
  146687. pattern could be opened before the next one would raise a
  146688. \fI\%RuntimeError\fP\&.
  146689. .UNINDENT
  146690. .UNINDENT
  146691. .SS Accessing the Mocked Filehandles in a Test
  146692. .sp
  146693. \fBNOTE:\fP
  146694. .INDENT 0.0
  146695. .INDENT 3.5
  146696. The code for the \fBMockOpen\fP, \fBMockCall\fP, and \fBMockFH\fP classes
  146697. (referenced below) can be found in \fBtests/support/mock.py\fP\&. There are
  146698. extensive unit tests for them located in \fBtests/unit/test_mock.py\fP\&.
  146699. .UNINDENT
  146700. .UNINDENT
  146701. .sp
  146702. The above examples simply show how to mock \fBsalt.utils.files.fopen()\fP to
  146703. simulate files with the contents you desire, but you can also access the mocked
  146704. filehandles (and more), and use them to craft assertions in your tests. To do
  146705. so, just add an \fBas\fP clause to the end of the \fBpatch\fP statement:
  146706. .INDENT 0.0
  146707. .INDENT 3.5
  146708. .sp
  146709. .nf
  146710. .ft C
  146711. fopen_mock = mock_open(read_data="foo\enbar\enbaz\en")
  146712. with patch("salt.utils.files.fopen", fopen_mock) as m_open:
  146713. # do testing here
  146714. ...
  146715. ...
  146716. .ft P
  146717. .fi
  146718. .UNINDENT
  146719. .UNINDENT
  146720. .sp
  146721. When doing this, \fBm_open\fP will be a \fBMockOpen\fP instance. It will contain
  146722. several useful attributes:
  146723. .INDENT 0.0
  146724. .IP \(bu 2
  146725. \fBread_data\fP \- A dictionary containing the \fBread_data\fP passed when
  146726. \fBmock_open\fP was invoked. In the event that \fI\%multiple file paths\fP are not used, then this will be a
  146727. dictionary mapping \fB*\fP to the \fBread_data\fP passed to \fBmock_open\fP\&.
  146728. .IP \(bu 2
  146729. \fBcall_count\fP \- An integer representing how many times
  146730. \fBsalt.utils.files.fopen()\fP was called to open a file.
  146731. .IP \(bu 2
  146732. \fBcalls\fP \- A list of \fBMockCall\fP objects. A \fBMockCall\fP object is a simple
  146733. class which stores the arguments passed to it, making the positional
  146734. arguments available via its \fBargs\fP attribute, and the keyword arguments
  146735. available via its \fBkwargs\fP attribute.
  146736. .INDENT 2.0
  146737. .INDENT 3.5
  146738. .sp
  146739. .nf
  146740. .ft C
  146741. from tests.support.unit import TestCase
  146742. from tests.support.mock import patch, mock_open, MockCall
  146743. import salt.modules.mymod as mymod
  146744. class MyAwesomeTestCase(TestCase):
  146745. def test_something(self):
  146746. with patch("salt.utils.files.fopen", mock_open(read_data=b"foo\en")) as m_open:
  146747. mymod.myfunc()
  146748. # Assert that only two opens attempted
  146749. assert m_open.call_count == 2
  146750. # Assert that only /etc/foo.conf was opened
  146751. assert all(call.args[0] == "/etc/foo.conf" for call in m_open.calls)
  146752. # Asser that the first open was for binary read, and the
  146753. # second was for binary write.
  146754. assert m_open.calls == [
  146755. MockCall("/etc/foo.conf", "rb"),
  146756. MockCall("/etc/foo.conf", "wb"),
  146757. ]
  146758. .ft P
  146759. .fi
  146760. .UNINDENT
  146761. .UNINDENT
  146762. .sp
  146763. Note that \fBMockCall\fP is imported from \fBtests.support.mock\fP in the above
  146764. example. Also, the second assert above is redundant since it is covered in
  146765. the final assert, but both are included simply as an example.
  146766. .IP \(bu 2
  146767. \fBfilehandles\fP \- A dictionary mapping the unique file paths opened, to lists
  146768. of \fBMockFH\fP objects. Each open creates a unique \fBMockFH\fP object. Each
  146769. \fBMockFH\fP object itself has a number of useful attributes:
  146770. .INDENT 2.0
  146771. .IP \(bu 2
  146772. \fBfilename\fP \- The path to the file which was opened using
  146773. \fBsalt.utils.files.fopen()\fP
  146774. .IP \(bu 2
  146775. \fBcall\fP \- A \fBMockCall\fP object representing the arguments passed to
  146776. \fBsalt.utils.files.fopen()\fP\&. Note that this \fBMockCall\fP is also available
  146777. in the parent \fBMockOpen\fP instance\(aqs \fBcalls\fP list.
  146778. .IP \(bu 2
  146779. The following methods are mocked using \fI\%unittest.mock.Mock\fP
  146780. objects, and Mock\(aqs built\-in asserts (as well as the call data) can be used
  146781. as you would with any other Mock object:
  146782. .INDENT 2.0
  146783. .IP \(bu 2
  146784. \fB\&.read()\fP
  146785. .IP \(bu 2
  146786. \fB\&.readlines()\fP
  146787. .IP \(bu 2
  146788. \fB\&.readline()\fP
  146789. .IP \(bu 2
  146790. \fB\&.close()\fP
  146791. .IP \(bu 2
  146792. \fB\&.write()\fP
  146793. .IP \(bu 2
  146794. \fB\&.writelines()\fP
  146795. .IP \(bu 2
  146796. \fB\&.seek()\fP
  146797. .UNINDENT
  146798. .IP \(bu 2
  146799. The read functions (\fB\&.read()\fP, \fB\&.readlines()\fP, \fB\&.readline()\fP) all
  146800. work as expected, as does iterating through the file line by line (i.e.
  146801. \fBfor line in fh:\fP).
  146802. .IP \(bu 2
  146803. The \fB\&.tell()\fP method is also implemented in such a way that it updates
  146804. after each time the mocked filehandle is read, and will report the correct
  146805. position. The one caveat here is that \fB\&.seek()\fP doesn\(aqt actually work
  146806. (it\(aqs simply mocked), and will not change the position. Additionally,
  146807. neither \fB\&.write()\fP or \fB\&.writelines()\fP will modify the mocked
  146808. filehandle\(aqs contents.
  146809. .IP \(bu 2
  146810. The attributes \fB\&.write_calls\fP and \fB\&.writelines_calls\fP (no parenthesis)
  146811. are available as shorthands and correspond to lists containing the contents
  146812. passed for all calls to \fB\&.write()\fP and \fB\&.writelines()\fP, respectively.
  146813. .UNINDENT
  146814. .UNINDENT
  146815. .SS Examples
  146816. .INDENT 0.0
  146817. .INDENT 3.5
  146818. .sp
  146819. .nf
  146820. .ft C
  146821. with patch("salt.utils.files.fopen", mock_open(read_data=contents)) as m_open:
  146822. # Run the code you are unit testing
  146823. mymod.myfunc()
  146824. # Check that only the expected file was opened, and that it was opened
  146825. # only once.
  146826. assert m_open.call_count == 1
  146827. assert list(m_open.filehandles) == ["/etc/foo.conf"]
  146828. # "opens" will be a list of all the mocked filehandles opened
  146829. opens = m_open.filehandles["/etc/foo.conf"]
  146830. # Check that we wrote the expected lines ("expected" here is assumed to
  146831. # be a list of strings)
  146832. assert opens[0].write_calls == expected
  146833. .ft P
  146834. .fi
  146835. .UNINDENT
  146836. .UNINDENT
  146837. .INDENT 0.0
  146838. .INDENT 3.5
  146839. .sp
  146840. .nf
  146841. .ft C
  146842. with patch("salt.utils.files.fopen", mock_open(read_data=contents)) as m_open:
  146843. # Run the code you are unit testing
  146844. mymod.myfunc()
  146845. # Check that .readlines() was called (remember, it\(aqs a Mock)
  146846. m_open.filehandles["/etc/foo.conf"][0].readlines.assert_called()
  146847. .ft P
  146848. .fi
  146849. .UNINDENT
  146850. .UNINDENT
  146851. .INDENT 0.0
  146852. .INDENT 3.5
  146853. .sp
  146854. .nf
  146855. .ft C
  146856. with patch("salt.utils.files.fopen", mock_open(read_data=contents)) as m_open:
  146857. # Run the code you are unit testing
  146858. mymod.myfunc()
  146859. # Check that we read the file and also wrote to it
  146860. m_open.filehandles["/etc/foo.conf"][0].read.assert_called_once()
  146861. m_open.filehandles["/etc/foo.conf"][1].writelines.assert_called_once()
  146862. .ft P
  146863. .fi
  146864. .UNINDENT
  146865. .UNINDENT
  146866. .SS Naming Conventions
  146867. .sp
  146868. Test names and docstrings should indicate what functionality is being tested.
  146869. Test functions are named \fBtest_<fcn>_<test\-name>\fP where \fB<fcn>\fP is the function
  146870. being tested and \fB<test\-name>\fP describes the \fBraise\fP or \fBreturn\fP being tested.
  146871. .sp
  146872. Unit tests for \fBsalt/.../<module>.py\fP are contained in a file called
  146873. \fBtests/unit/.../test_<module>.py\fP, e.g. the tests for \fBsalt/modules/fib.py\fP
  146874. are in \fBtests/unit/modules/test_fib.py\fP\&.
  146875. .sp
  146876. In order for unit tests to get picked up during a run of the unit test suite, each
  146877. unit test file must be prefixed with \fBtest_\fP and each individual test must be
  146878. prepended with the \fBtest_\fP naming syntax, as described above.
  146879. .sp
  146880. If a function does not start with \fBtest_\fP, then the function acts as a "normal"
  146881. function and is not considered a testing function. It will not be included in the
  146882. test run or testing output. The same principle applies to unit test files that
  146883. do not have the \fBtest_*.py\fP naming syntax. This test file naming convention
  146884. is how the test runner recognizes that a test file contains unit tests.
  146885. .SS Imports
  146886. .sp
  146887. Most commonly, the following imports are necessary to create a unit test:
  146888. .INDENT 0.0
  146889. .INDENT 3.5
  146890. .sp
  146891. .nf
  146892. .ft C
  146893. from tests.support.unit import TestCase
  146894. .ft P
  146895. .fi
  146896. .UNINDENT
  146897. .UNINDENT
  146898. .sp
  146899. If you need mock support to your tests, please also import:
  146900. .INDENT 0.0
  146901. .INDENT 3.5
  146902. .sp
  146903. .nf
  146904. .ft C
  146905. from tests.support.mock import MagicMock, patch, call
  146906. .ft P
  146907. .fi
  146908. .UNINDENT
  146909. .UNINDENT
  146910. .SS Evaluating Truth
  146911. .sp
  146912. A longer discussion on the types of assertions one can make can be found by
  146913. reading \fI\%Python\(aqs documentation on unit testing\fP\&.
  146914. .SS Tests Using Mock Objects
  146915. .sp
  146916. In many cases, the purpose of a Salt module is to interact with some external
  146917. system, whether it be to control a database, manipulate files on a filesystem
  146918. or something else. In these varied cases, it\(aqs necessary to design a unit test
  146919. which can test the function whilst replacing functions which might actually
  146920. call out to external systems. One might think of this as "blocking the exits"
  146921. for code under tests and redirecting the calls to external systems with our own
  146922. code which produces known results during the duration of the test.
  146923. .sp
  146924. To achieve this behavior, Salt makes heavy use of the \fI\%MagicMock package\fP\&.
  146925. .sp
  146926. To understand how one might integrate Mock into writing a unit test for Salt,
  146927. let\(aqs imagine a scenario in which we\(aqre testing an execution module that\(aqs
  146928. designed to operate on a database. Furthermore, let\(aqs imagine two separate
  146929. methods, here presented in pseduo\-code in an imaginary execution module called
  146930. \(aqdb.py\(aq.
  146931. .INDENT 0.0
  146932. .INDENT 3.5
  146933. .sp
  146934. .nf
  146935. .ft C
  146936. def create_user(username):
  146937. qry = "CREATE USER {0}".format(username)
  146938. execute_query(qry)
  146939. def execute_query(qry):
  146940. # Connect to a database and actually do the query...
  146941. ...
  146942. .ft P
  146943. .fi
  146944. .UNINDENT
  146945. .UNINDENT
  146946. .sp
  146947. Here, let\(aqs imagine that we want to create a unit test for the \fIcreate_user\fP
  146948. function. In doing so, we want to avoid any calls out to an external system and
  146949. so while we are running our unit tests, we want to replace the actual
  146950. interaction with a database with a function that can capture the parameters
  146951. sent to it and return pre\-defined values. Therefore, our task is clear \-\- to
  146952. write a unit test which tests the functionality of \fIcreate_user\fP while also
  146953. replacing \(aqexecute_query\(aq with a mocked function.
  146954. .sp
  146955. To begin, we set up the skeleton of our class much like we did before, but with
  146956. additional imports for MagicMock:
  146957. .INDENT 0.0
  146958. .INDENT 3.5
  146959. .sp
  146960. .nf
  146961. .ft C
  146962. # Import Salt Testing libs
  146963. from tests.support.unit import TestCase
  146964. # Import Salt execution module to test
  146965. from salt.modules import db
  146966. # Import Mock libraries
  146967. from tests.support.mock import MagicMock, patch, call
  146968. # Create test case class and inherit from Salt\(aqs customized TestCase
  146969. # Skip this test case if we don\(aqt have access to mock!
  146970. class DbTestCase(TestCase):
  146971. def test_create_user(self):
  146972. # First, we replace \(aqexecute_query\(aq with our own mock function
  146973. with patch.object(db, "execute_query", MagicMock()) as db_exq:
  146974. # Now that the exits are blocked, we can run the function under test.
  146975. db.create_user("testuser")
  146976. # We could now query our mock object to see which calls were made
  146977. # to it.
  146978. ## print db_exq.mock_calls
  146979. # Construct a call object that simulates the way we expected
  146980. # execute_query to have been called.
  146981. expected_call = call("CREATE USER testuser")
  146982. # Compare the expected call with the list of actual calls. The
  146983. # test will succeed or fail depending on the output of this
  146984. # assertion.
  146985. db_exq.assert_has_calls(expected_call)
  146986. .ft P
  146987. .fi
  146988. .UNINDENT
  146989. .UNINDENT
  146990. .SS Modifying \fB__salt__\fP In Place
  146991. .sp
  146992. At times, it becomes necessary to make modifications to a module\(aqs view of
  146993. functions in its own \fB__salt__\fP dictionary. Luckily, this process is quite
  146994. easy.
  146995. .sp
  146996. Below is an example that uses MagicMock\(aqs \fBpatch\fP functionality to insert a
  146997. function into \fB__salt__\fP that\(aqs actually a MagicMock instance.
  146998. .INDENT 0.0
  146999. .INDENT 3.5
  147000. .sp
  147001. .nf
  147002. .ft C
  147003. def show_patch(self):
  147004. with patch.dict(my_module.__salt__,
  147005. {\(aqfunction.to_replace\(aq: MagicMock()}):
  147006. # From this scope, carry on with testing, with a modified __salt__!
  147007. .ft P
  147008. .fi
  147009. .UNINDENT
  147010. .UNINDENT
  147011. .SS A Simple Example
  147012. .sp
  147013. Let\(aqs assume that we\(aqre testing a very basic function in an imaginary Salt
  147014. execution module. Given a module called \fBfib.py\fP that has a function called
  147015. \fBcalculate(num_of_results)\fP, which given a \fBnum_of_results\fP, produces a list of
  147016. sequential Fibonacci numbers of that length.
  147017. .sp
  147018. A unit test to test this function might be commonly placed in a file called
  147019. \fBtests/unit/modules/test_fib.py\fP\&. The convention is to place unit tests for
  147020. Salt execution modules in \fBtest/unit/modules/\fP and to name the tests module
  147021. prefixed with \fBtest_*.py\fP\&.
  147022. .sp
  147023. Tests are grouped around test cases, which are logically grouped sets of tests
  147024. against a piece of functionality in the tested software. Test cases are created
  147025. as Python classes in the unit test module. To return to our example, here\(aqs how
  147026. we might write the skeleton for testing \fBfib.py\fP:
  147027. .INDENT 0.0
  147028. .INDENT 3.5
  147029. .sp
  147030. .nf
  147031. .ft C
  147032. # Import Salt Testing libs
  147033. from tests.support.unit import TestCase
  147034. # Import Salt execution module to test
  147035. import salt.modules.fib as fib
  147036. # Create test case class and inherit from Salt\(aqs customized TestCase
  147037. class FibTestCase(TestCase):
  147038. """
  147039. This class contains a set of functions that test salt.modules.fib.
  147040. """
  147041. def test_fib(self):
  147042. """
  147043. To create a unit test, we should prefix the name with \(gatest_\(aq so
  147044. that it\(aqs recognized by the test runner.
  147045. """
  147046. fib_five = (0, 1, 1, 2, 3)
  147047. self.assertEqual(fib.calculate(5), fib_five)
  147048. .ft P
  147049. .fi
  147050. .UNINDENT
  147051. .UNINDENT
  147052. .sp
  147053. At this point, the test can now be run, either individually or as a part of a
  147054. full run of the test runner. To ease development, a single test can be
  147055. executed:
  147056. .INDENT 0.0
  147057. .INDENT 3.5
  147058. .sp
  147059. .nf
  147060. .ft C
  147061. tests/runtests.py \-v \-n unit.modules.test_fib
  147062. .ft P
  147063. .fi
  147064. .UNINDENT
  147065. .UNINDENT
  147066. .sp
  147067. This will report the status of the test: success, failure, or error. The
  147068. \fB\-v\fP flag increases output verbosity.
  147069. .INDENT 0.0
  147070. .INDENT 3.5
  147071. .sp
  147072. .nf
  147073. .ft C
  147074. tests/runtests.py \-n unit.modules.test_fib \-v
  147075. .ft P
  147076. .fi
  147077. .UNINDENT
  147078. .UNINDENT
  147079. .sp
  147080. To review the results of a particular run, take a note of the log location
  147081. given in the output for each test:
  147082. .INDENT 0.0
  147083. .INDENT 3.5
  147084. .sp
  147085. .nf
  147086. .ft C
  147087. Logging tests on /var/folders/nl/d809xbq577l3qrbj3ymtpbq80000gn/T/salt\-runtests.log
  147088. .ft P
  147089. .fi
  147090. .UNINDENT
  147091. .UNINDENT
  147092. .SS A More Complete Example
  147093. .sp
  147094. Consider the following function from salt/modules/linux_sysctl.py.
  147095. .INDENT 0.0
  147096. .INDENT 3.5
  147097. .sp
  147098. .nf
  147099. .ft C
  147100. def get(name):
  147101. """
  147102. Return a single sysctl parameter for this minion
  147103. CLI Example:
  147104. .. code\-block:: bash
  147105. salt \(aq*\(aq sysctl.get net.ipv4.ip_forward
  147106. """
  147107. cmd = "sysctl \-n {0}".format(name)
  147108. out = __salt__["cmd.run"](cmd)
  147109. return out
  147110. .ft P
  147111. .fi
  147112. .UNINDENT
  147113. .UNINDENT
  147114. .sp
  147115. This function is very simple, comprising only four source lines of code and
  147116. having only one return statement, so we know only one test is needed. There
  147117. are also two inputs to the function, the \fBname\fP function argument and the call
  147118. to \fB__salt__[\(aqcmd.run\(aq]()\fP, both of which need to be appropriately mocked.
  147119. .sp
  147120. Mocking a function parameter is straightforward, whereas mocking a function
  147121. call will require, in this case, the use of MagicMock. For added isolation, we
  147122. will also redefine the \fB__salt__\fP dictionary such that it only contains
  147123. \fB\(aqcmd.run\(aq\fP\&.
  147124. .INDENT 0.0
  147125. .INDENT 3.5
  147126. .sp
  147127. .nf
  147128. .ft C
  147129. # Import Salt Libs
  147130. import salt.modules.linux_sysictl as linux_sysctl
  147131. # Import Salt Testing Libs
  147132. from tests.support.mixins import LoaderModuleMockMixin
  147133. from tests.support.unit import TestCase
  147134. from tests.support.mock import MagicMock, patch
  147135. class LinuxSysctlTestCase(TestCase, LoaderModuleMockMixin):
  147136. """
  147137. TestCase for salt.modules.linux_sysctl module
  147138. """
  147139. def test_get(self):
  147140. """
  147141. Tests the return of get function
  147142. """
  147143. mock_cmd = MagicMock(return_value=1)
  147144. with patch.dict(linux_sysctl.__salt__, {"cmd.run": mock_cmd}):
  147145. self.assertEqual(linux_sysctl.get("net.ipv4.ip_forward"), 1)
  147146. .ft P
  147147. .fi
  147148. .UNINDENT
  147149. .UNINDENT
  147150. .sp
  147151. Since \fBget()\fP has only one raise or return statement and that statement is a
  147152. success condition, the test function is simply named \fBtest_get()\fP\&. As
  147153. described, the single function call parameter, \fBname\fP is mocked with
  147154. \fBnet.ipv4.ip_forward\fP and \fB__salt__[\(aqcmd.run\(aq]\fP is replaced by a MagicMock
  147155. function object. We are only interested in the return value of
  147156. \fB__salt__[\(aqcmd.run\(aq]\fP, which MagicMock allows us by specifying via
  147157. \fBreturn_value=1\fP\&. Finally, the test itself tests for equality between the
  147158. return value of \fBget()\fP and the expected return of \fB1\fP\&. This assertion is
  147159. expected to succeed because \fBget()\fP will determine its return value from
  147160. \fB__salt__[\(aqcmd.run\(aq]\fP, which we have mocked to return \fB1\fP\&.
  147161. .SS A Complex Example
  147162. .sp
  147163. Now consider the \fBassign()\fP function from the same
  147164. salt/modules/linux_sysctl.py source file.
  147165. .INDENT 0.0
  147166. .INDENT 3.5
  147167. .sp
  147168. .nf
  147169. .ft C
  147170. def assign(name, value):
  147171. """
  147172. Assign a single sysctl parameter for this minion
  147173. CLI Example:
  147174. .. code\-block:: bash
  147175. salt \(aq*\(aq sysctl.assign net.ipv4.ip_forward 1
  147176. """
  147177. value = str(value)
  147178. sysctl_file = "/proc/sys/{0}".format(name.replace(".", "/"))
  147179. if not os.path.exists(sysctl_file):
  147180. raise CommandExecutionError("sysctl {0} does not exist".format(name))
  147181. ret = {}
  147182. cmd = \(aqsysctl \-w {0}="{1}"\(aq.format(name, value)
  147183. data = __salt__["cmd.run_all"](cmd)
  147184. out = data["stdout"]
  147185. err = data["stderr"]
  147186. # Example:
  147187. # # sysctl \-w net.ipv4.tcp_rmem="4096 87380 16777216"
  147188. # net.ipv4.tcp_rmem = 4096 87380 16777216
  147189. regex = re.compile(r"^{0}\es+=\es+{1}$".format(re.escape(name), re.escape(value)))
  147190. if not regex.match(out) or "Invalid argument" in str(err):
  147191. if data["retcode"] != 0 and err:
  147192. error = err
  147193. else:
  147194. error = out
  147195. raise CommandExecutionError("sysctl \-w failed: {0}".format(error))
  147196. new_name, new_value = out.split(" = ", 1)
  147197. ret[new_name] = new_value
  147198. return ret
  147199. .ft P
  147200. .fi
  147201. .UNINDENT
  147202. .UNINDENT
  147203. .sp
  147204. This function contains two raise statements and one return statement, so we
  147205. know that we will need (at least) three tests. It has two function arguments
  147206. and many references to non\-builtin functions. In the tests below you will see
  147207. that MagicMock\(aqs \fBpatch()\fP method may be used as a context manager or as a
  147208. decorator. When patching the salt dunders however, please use the context
  147209. manager approach.
  147210. .sp
  147211. There are three test functions, one for each raise and return statement in the
  147212. source function. Each function is self\-contained and contains all and only the
  147213. mocks and data needed to test the raise or return statement it is concerned
  147214. with.
  147215. .INDENT 0.0
  147216. .INDENT 3.5
  147217. .sp
  147218. .nf
  147219. .ft C
  147220. # Import Salt Libs
  147221. import salt.modules.linux_sysctl as linux_sysctl
  147222. from salt.exceptions import CommandExecutionError
  147223. # Import Salt Testing Libs
  147224. from tests.support.mixins import LoaderModuleMockMixin
  147225. from tests.support.unit import TestCase
  147226. from tests.support.mock import MagicMock, patch
  147227. class LinuxSysctlTestCase(TestCase, LoaderModuleMockMixin):
  147228. """
  147229. TestCase for salt.modules.linux_sysctl module
  147230. """
  147231. @patch("os.path.exists", MagicMock(return_value=False))
  147232. def test_assign_proc_sys_failed(self):
  147233. """
  147234. Tests if /proc/sys/<kernel\-subsystem> exists or not
  147235. """
  147236. cmd = {
  147237. "pid": 1337,
  147238. "retcode": 0,
  147239. "stderr": "",
  147240. "stdout": "net.ipv4.ip_forward = 1",
  147241. }
  147242. mock_cmd = MagicMock(return_value=cmd)
  147243. with patch.dict(linux_sysctl.__salt__, {"cmd.run_all": mock_cmd}):
  147244. self.assertRaises(
  147245. CommandExecutionError, linux_sysctl.assign, "net.ipv4.ip_forward", 1
  147246. )
  147247. @patch("os.path.exists", MagicMock(return_value=True))
  147248. def test_assign_cmd_failed(self):
  147249. """
  147250. Tests if the assignment was successful or not
  147251. """
  147252. cmd = {
  147253. "pid": 1337,
  147254. "retcode": 0,
  147255. "stderr": \(aqsysctl: setting key "net.ipv4.ip_forward": Invalid argument\(aq,
  147256. "stdout": "net.ipv4.ip_forward = backward",
  147257. }
  147258. mock_cmd = MagicMock(return_value=cmd)
  147259. with patch.dict(linux_sysctl.__salt__, {"cmd.run_all": mock_cmd}):
  147260. self.assertRaises(
  147261. CommandExecutionError,
  147262. linux_sysctl.assign,
  147263. "net.ipv4.ip_forward",
  147264. "backward",
  147265. )
  147266. @patch("os.path.exists", MagicMock(return_value=True))
  147267. def test_assign_success(self):
  147268. """
  147269. Tests the return of successful assign function
  147270. """
  147271. cmd = {
  147272. "pid": 1337,
  147273. "retcode": 0,
  147274. "stderr": "",
  147275. "stdout": "net.ipv4.ip_forward = 1",
  147276. }
  147277. ret = {"net.ipv4.ip_forward": "1"}
  147278. mock_cmd = MagicMock(return_value=cmd)
  147279. with patch.dict(linux_sysctl.__salt__, {"cmd.run_all": mock_cmd}):
  147280. self.assertEqual(linux_sysctl.assign("net.ipv4.ip_forward", 1), ret)
  147281. .ft P
  147282. .fi
  147283. .UNINDENT
  147284. .UNINDENT
  147285. .SS SaltStack Git Policy
  147286. .sp
  147287. The SaltStack team follows a git policy to maintain stability and consistency
  147288. with the repository.
  147289. .sp
  147290. The git policy has been developed to encourage contributions and make contributing
  147291. to Salt as easy as possible. Code contributors to SaltStack projects DO NOT NEED
  147292. TO READ THIS DOCUMENT, because all contributions come into SaltStack via a single
  147293. gateway to make it as easy as possible for contributors to give us code.
  147294. .sp
  147295. The primary rule of git management in SaltStack is to make life easy on
  147296. contributors and developers to send in code. Simplicity is always a goal!
  147297. .SS New Code Entry
  147298. .sp
  147299. All new SaltStack code should be submitted against either the \fBdevelop\fP branch
  147300. or a point release branch, depending on the nature of the submission. Please see
  147301. the Which Salt Branch? section of Salt\(aqs
  147302. Contributing documentation or the Release Branching
  147303. section below for more information.
  147304. .SS Release Branching
  147305. .sp
  147306. SaltStack maintains two types of releases, \fBFeature Releases\fP and
  147307. \fBPoint Releases\fP (also commonly referred to as \fBBugfix Releases\fP\&. A
  147308. feature release is managed by incrementing the first or second release point
  147309. number, so 2015.5.5 \-> 2015.8.0 signifies a feature release
  147310. and 2015.8.0 \-> 2015.8.1 signifies a point release.
  147311. .SS Feature Release Branching
  147312. .sp
  147313. Each feature release is maintained in a dedicated git branch derived from the
  147314. last applicable release commit on develop. All file changes relevant to the
  147315. feature release will be completed in the develop branch prior to the creation
  147316. of the feature release branch. The feature release branch will be named after
  147317. the relevant numbers to the feature release, which constitute the first two
  147318. numbers. This means that the release branch for the 2015.8.0 series is named
  147319. 2015.8.
  147320. .sp
  147321. A feature release branch is created with the following command:
  147322. .INDENT 0.0
  147323. .INDENT 3.5
  147324. .sp
  147325. .nf
  147326. .ft C
  147327. # git checkout \-b 2015.8 # From the develop branch
  147328. # git push origin 2015.8
  147329. .ft P
  147330. .fi
  147331. .UNINDENT
  147332. .UNINDENT
  147333. .SS Point Releases
  147334. .sp
  147335. Each point release is derived from its parent release branch. Constructing point
  147336. releases is a critical aspect of Salt development and is managed by members of
  147337. the core development team. Point releases comprise bug and security fixes. Bug
  147338. fixes can be made against a point release branch in one of two ways: the bug
  147339. fix can be submitted directly against the point release branch, or an attempt
  147340. can be made to back\-port the fix to the point release branch.
  147341. .sp
  147342. Bug fixes should be made against the earliest supported release branch on which
  147343. the bug is present. The Salt development team regularly merges older point
  147344. release branches forward into newer point release branches. That way, the bug
  147345. fixes that are submitted to older release branches can cascade up through all
  147346. related release branches.
  147347. .sp
  147348. For more information, please see the Which Salt Branch?
  147349. section of Salt\(aqs Contributing documentation.
  147350. .sp
  147351. Generally point releases are made every 2 months or if there is a security fix
  147352. they can be made sooner.
  147353. .sp
  147354. The point release is designated by branching (ex 2019.2.1) and then tagging (v2019.2.1)
  147355. from that newly created release branch when its determined the release is stable.
  147356. From the tag point a new source tarball is generated and published to PyPI,
  147357. and a release announcement is made.
  147358. .SS Salt Conventions
  147359. .SS Writing Salt Documentation
  147360. .sp
  147361. Salt\(aqs documentation is built using the \fI\%Sphinx\fP documentation system. It can
  147362. be built in a large variety of output formats including HTML, PDF, ePub, and
  147363. manpage.
  147364. .sp
  147365. All the documentation is contained in the main Salt repository. Speaking
  147366. broadly, most of the narrative documentation is contained within the
  147367. \fI\%https://github.com/saltstack/salt/blob/master/doc\fP subdirectory and most of the reference and API documentation is
  147368. written inline with Salt\(aqs Python code and extracted using a Sphinx extension.
  147369. .SS Style
  147370. .sp
  147371. The Salt project recommends the \fI\%IEEE style guide\fP as a general reference for
  147372. writing guidelines. Those guidelines are not strictly enforced but rather serve
  147373. as an excellent resource for technical writing questions. The \fI\%NCBI style
  147374. guide\fP is another very approachable resource.
  147375. .SS Point\-of\-view
  147376. .sp
  147377. Use third\-person perspective and avoid "I", "we", "you" forms of address.
  147378. Identify the addressee specifically e.g., "users should", "the compiler does",
  147379. etc.
  147380. .SS Active voice
  147381. .sp
  147382. Use active voice and present\-tense. Avoid filler words.
  147383. .SS Title capitalization
  147384. .sp
  147385. Document titles and section titles within a page should follow normal sentence
  147386. capitalization rules. Words that are capitalized as part of a regular sentence
  147387. should be capitalized in a title and otherwise left as lowercase. Punctuation
  147388. can be omitted unless it aids the intent of the title (e.g., exclamation points
  147389. or question marks).
  147390. .sp
  147391. For example:
  147392. .INDENT 0.0
  147393. .INDENT 3.5
  147394. .sp
  147395. .nf
  147396. .ft C
  147397. This is a main heading
  147398. ======================
  147399. Paragraph.
  147400. This is an exciting sub\-heading!
  147401. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  147402. Paragraph.
  147403. .ft P
  147404. .fi
  147405. .UNINDENT
  147406. .UNINDENT
  147407. .SS Serial Commas
  147408. .sp
  147409. According to Wikipedia: In English punctuation, a serial comma or series comma
  147410. (also called Oxford comma and Harvard comma) is a comma placed immediately
  147411. before the coordinating conjunction (usually "and", "or", or "nor") in a series of
  147412. three or more terms. For example, a list of three countries might be punctuated
  147413. either as "France, Italy, and Spain" (with the serial comma), or as "France,
  147414. Italy and Spain" (without the serial comma)."
  147415. .sp
  147416. When writing a list that includes three or more items, the serial comma should
  147417. always be used.
  147418. .SS Documenting modules
  147419. .sp
  147420. Documentation for Salt\(aqs various module types is inline in the code. During the
  147421. documentation build process it is extracted and formatted into the final HTML,
  147422. PDF, etc format.
  147423. .SS Inline documentation
  147424. .sp
  147425. Python has special multi\-line strings called docstrings as the first element in
  147426. a function or class. These strings allow documentation to live alongside the
  147427. code and can contain special formatting. For example:
  147428. .INDENT 0.0
  147429. .INDENT 3.5
  147430. .sp
  147431. .nf
  147432. .ft C
  147433. def my_function(value):
  147434. """
  147435. Upper\-case the given value
  147436. Usage:
  147437. .. code\-block:: python
  147438. val = \(aqa string\(aq
  147439. new_val = myfunction(val)
  147440. print(new_val) # \(aqA STRING\(aq
  147441. :param value: a string
  147442. :return: a copy of \(ga\(gavalue\(ga\(ga that has been upper\-cased
  147443. """
  147444. return value.upper()
  147445. .ft P
  147446. .fi
  147447. .UNINDENT
  147448. .UNINDENT
  147449. .SS Specify a release for additions or changes
  147450. .sp
  147451. New functions or changes to existing functions should include a marker that
  147452. denotes what Salt release will be affected. For example:
  147453. .INDENT 0.0
  147454. .INDENT 3.5
  147455. .sp
  147456. .nf
  147457. .ft C
  147458. def my_function(value):
  147459. """
  147460. Upper\-case the given value
  147461. .. versionadded:: 2014.7.0
  147462. <...snip...>
  147463. """
  147464. return value.upper()
  147465. .ft P
  147466. .fi
  147467. .UNINDENT
  147468. .UNINDENT
  147469. .sp
  147470. For changes to a function:
  147471. .INDENT 0.0
  147472. .INDENT 3.5
  147473. .sp
  147474. .nf
  147475. .ft C
  147476. def my_function(value, strip=False):
  147477. """
  147478. Upper\-case the given value
  147479. .. versionchanged:: 2016.3.0
  147480. Added a flag to also strip whitespace from the string.
  147481. <...snip...>
  147482. """
  147483. if strip:
  147484. return value.upper().strip()
  147485. return value.upper()
  147486. .ft P
  147487. .fi
  147488. .UNINDENT
  147489. .UNINDENT
  147490. .SS Adding module documentation to the index
  147491. .sp
  147492. Each module type has an index listing all modules of that type. For example:
  147493. all\-salt.modules, all\-salt.states, all\-salt.renderers\&.
  147494. New modules must be added to the index manually.
  147495. .INDENT 0.0
  147496. .IP 1. 3
  147497. Edit the file for the module type:
  147498. \fI\%execution modules\fP,
  147499. \fI\%state modules\fP,
  147500. \fI\%renderer modules\fP, etc.
  147501. .IP 2. 3
  147502. Add the new module to the alphebetized list.
  147503. .IP 3. 3
  147504. \fI\%Build the documentation\fP which will generate an \fB\&.rst\fP
  147505. file for the new module in the same directory as the \fBindex.rst\fP\&.
  147506. .IP 4. 3
  147507. Commit the changes to \fBindex.rst\fP and the new \fB\&.rst\fP file and send a
  147508. pull request.
  147509. .UNINDENT
  147510. .SS Cross\-references
  147511. .sp
  147512. The Sphinx documentation system contains a wide variety of cross\-referencing
  147513. capabilities.
  147514. .SS Glossary entries
  147515. .sp
  147516. Link to glossary entries using the \fI\%term role\fP\&. A
  147517. cross\-reference should be added the first time a Salt\-specific term is used in
  147518. a document.
  147519. .INDENT 0.0
  147520. .INDENT 3.5
  147521. .sp
  147522. .nf
  147523. .ft C
  147524. A common way to encapsulate master\-side functionality is by writing a
  147525. custom :term:\(gaRunner Function\(ga. Custom Runner Functions are easy to write.
  147526. .ft P
  147527. .fi
  147528. .UNINDENT
  147529. .UNINDENT
  147530. .SS Index entries
  147531. .sp
  147532. Sphinx automatically generates many kinds of index entries, but it is
  147533. occasionally useful to manually add items to the index.
  147534. .sp
  147535. One method is to use the \fI\%index directive\fP above the document or section that
  147536. should appear in the index.
  147537. .INDENT 0.0
  147538. .INDENT 3.5
  147539. .sp
  147540. .nf
  147541. .ft C
  147542. \&.. index:: ! Event, event bus, event system
  147543. see: Reactor; Event
  147544. .ft P
  147545. .fi
  147546. .UNINDENT
  147547. .UNINDENT
  147548. .sp
  147549. Another method is to use the \fI\%index role\fP inline with the text that should
  147550. appear in the index. The index entry is created and the target text is left
  147551. otherwise intact.
  147552. .INDENT 0.0
  147553. .INDENT 3.5
  147554. .sp
  147555. .nf
  147556. .ft C
  147557. Information about the :index:\(gaSalt Reactor\(ga
  147558. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  147559. Paragraph.
  147560. .ft P
  147561. .fi
  147562. .UNINDENT
  147563. .UNINDENT
  147564. .SS Documents and sections
  147565. .sp
  147566. Each document should contain a unique top\-level label of the form:
  147567. .INDENT 0.0
  147568. .INDENT 3.5
  147569. .sp
  147570. .nf
  147571. .ft C
  147572. \&.. _my\-page:
  147573. My page
  147574. =======
  147575. Paragraph.
  147576. .ft P
  147577. .fi
  147578. .UNINDENT
  147579. .UNINDENT
  147580. .sp
  147581. Unique labels can be linked using the \fI\%ref role\fP\&. This allows cross\-references
  147582. to survive document renames or movement.
  147583. .INDENT 0.0
  147584. .INDENT 3.5
  147585. .sp
  147586. .nf
  147587. .ft C
  147588. For more information see :ref:\(gamy\-page\(ga.
  147589. .ft P
  147590. .fi
  147591. .UNINDENT
  147592. .UNINDENT
  147593. .sp
  147594. Note, the \fB:doc:\fP role should \fInot\fP be used to link documents together.
  147595. .SS Modules
  147596. .sp
  147597. Cross\-references to Salt modules can be added using Sphinx\(aqs Python domain
  147598. roles. For example, to create a link to the \fBtest.ping\fP function:
  147599. .INDENT 0.0
  147600. .INDENT 3.5
  147601. .sp
  147602. .nf
  147603. .ft C
  147604. A useful execution module to test active communication with a minion is the
  147605. :py:func:\(gatest.ping <salt.modules.test.ping>\(ga function.
  147606. .ft P
  147607. .fi
  147608. .UNINDENT
  147609. .UNINDENT
  147610. .sp
  147611. Salt modules can be referenced as well:
  147612. .INDENT 0.0
  147613. .INDENT 3.5
  147614. .sp
  147615. .nf
  147616. .ft C
  147617. The :py:mod:\(gatest module <salt.modules.test>\(ga contains many useful
  147618. functions for inspecting an active Salt connection.
  147619. .ft P
  147620. .fi
  147621. .UNINDENT
  147622. .UNINDENT
  147623. .sp
  147624. The same syntax works for all modules types:
  147625. .INDENT 0.0
  147626. .INDENT 3.5
  147627. .sp
  147628. .nf
  147629. .ft C
  147630. One of the workhorse state module functions in Salt is the
  147631. :py:func:\(gafile.managed <salt.states.file.managed>\(ga function.
  147632. .ft P
  147633. .fi
  147634. .UNINDENT
  147635. .UNINDENT
  147636. .SS Settings
  147637. .sp
  147638. Individual settings in the Salt Master or Salt Minion configuration files are
  147639. cross\-referenced using two custom roles, \fBconf_master\fP, and \fBconf_minion\fP\&.
  147640. .INDENT 0.0
  147641. .INDENT 3.5
  147642. .sp
  147643. .nf
  147644. .ft C
  147645. The :conf_minion:\(gaminion ID <id>\(ga setting is a unique identifier for a
  147646. single minion.
  147647. .ft P
  147648. .fi
  147649. .UNINDENT
  147650. .UNINDENT
  147651. .SS Documentation Changes and Fixes
  147652. .sp
  147653. Documentation changes and fixes should be made against the earliest supported
  147654. release branch that the update applies to. The practice of updating a release
  147655. branch instead of making all documentation changes against Salt\(aqs main, default
  147656. branch, \fBmaster\fP, is necessary in order for the docs to be as up\-to\-date as
  147657. possible when the docs are built.
  147658. .sp
  147659. The workflow mentioned above is also in line with the recommendations outlined
  147660. in Salt\(aqs contributing page. You can read more about how to choose where
  147661. to submit documentation fixes by reading the which\-salt\-branch section.
  147662. .sp
  147663. For an explanation of how to submit changes against various branches, see the
  147664. github\-pull\-request section. Specifically, see the section describing
  147665. how to \fBCreate a new branch\fP and the steps that follow.
  147666. .SS Building the documentation
  147667. .INDENT 0.0
  147668. .IP 1. 3
  147669. Install Sphinx using a system package manager or pip. The package name is
  147670. often of the form \fBpython\-sphinx\fP\&. There are no other dependencies.
  147671. .IP 2. 3
  147672. Build the documentation using the provided Makefile or \fB\&.bat\fP file on
  147673. Windows.
  147674. .INDENT 3.0
  147675. .INDENT 3.5
  147676. .sp
  147677. .nf
  147678. .ft C
  147679. cd /path/to/salt/doc
  147680. make html
  147681. .ft P
  147682. .fi
  147683. .UNINDENT
  147684. .UNINDENT
  147685. .IP 3. 3
  147686. The generated documentation will be written to the \fBdoc/_build/<format>\fP
  147687. directory.
  147688. .IP 4. 3
  147689. A useful method of viewing the HTML documentation locally is to start
  147690. Python\(aqs built\-in HTTP server:
  147691. .sp
  147692. Python 3:
  147693. .INDENT 3.0
  147694. .INDENT 3.5
  147695. .sp
  147696. .nf
  147697. .ft C
  147698. cd /path/to/salt/doc/_build/html
  147699. python3 \-m http.server
  147700. .ft P
  147701. .fi
  147702. .UNINDENT
  147703. .UNINDENT
  147704. .sp
  147705. Python 2:
  147706. .INDENT 3.0
  147707. .INDENT 3.5
  147708. .sp
  147709. .nf
  147710. .ft C
  147711. cd /path/to/salt/doc/_build/html
  147712. python \-m SimpleHTTPServer
  147713. .ft P
  147714. .fi
  147715. .UNINDENT
  147716. .UNINDENT
  147717. .sp
  147718. Then pull up the documentation in a web browser at \fI\%http://localhost:8000/\fP\&.
  147719. .UNINDENT
  147720. .SS Salt Formulas
  147721. .sp
  147722. Formulas are pre\-written Salt States. They are as open\-ended as Salt States
  147723. themselves and can be used for tasks such as installing a package, configuring,
  147724. and starting a service, setting up users or permissions, and many other common
  147725. tasks.
  147726. .sp
  147727. All official Salt Formulas are found as separate Git repositories in the
  147728. "saltstack\-formulas" organization on GitHub:
  147729. .sp
  147730. \fI\%https://github.com/saltstack\-formulas\fP
  147731. .sp
  147732. As a simple example, to install the popular Apache web server (using the normal
  147733. defaults for the underlying distro) simply include the
  147734. \fI\%apache\-formula\fP from a top file:
  147735. .INDENT 0.0
  147736. .INDENT 3.5
  147737. .sp
  147738. .nf
  147739. .ft C
  147740. base:
  147741. \(aqweb*\(aq:
  147742. \- apache
  147743. .ft P
  147744. .fi
  147745. .UNINDENT
  147746. .UNINDENT
  147747. .SS Installation
  147748. .sp
  147749. Each Salt Formula is an individual Git repository designed as a drop\-in
  147750. addition to an existing Salt State tree. Formulas can be installed in the
  147751. following ways.
  147752. .SS Adding a Formula as a GitFS remote
  147753. .sp
  147754. One design goal of Salt\(aqs GitFS fileserver backend was to facilitate reusable
  147755. States. GitFS is a quick and natural way to use Formulas.
  147756. .INDENT 0.0
  147757. .IP 1. 3
  147758. Install any necessary dependencies and configure GitFS\&.
  147759. .IP 2. 3
  147760. Add one or more Formula repository URLs as remotes in the
  147761. \fBgitfs_remotes\fP list in the Salt Master configuration file:
  147762. .INDENT 3.0
  147763. .INDENT 3.5
  147764. .sp
  147765. .nf
  147766. .ft C
  147767. gitfs_remotes:
  147768. \- https://github.com/saltstack\-formulas/apache\-formula
  147769. \- https://github.com/saltstack\-formulas/memcached\-formula
  147770. .ft P
  147771. .fi
  147772. .UNINDENT
  147773. .UNINDENT
  147774. .sp
  147775. \fBWe strongly recommend forking a formula repository\fP into your own GitHub
  147776. account to avoid unexpected changes to your infrastructure.
  147777. .sp
  147778. Many Salt Formulas are highly active repositories so pull new changes with
  147779. care. Plus any additions you make to your fork can be easily sent back
  147780. upstream with a quick pull request!
  147781. .IP 3. 3
  147782. Restart the Salt master.
  147783. .UNINDENT
  147784. .sp
  147785. Beginning with the 2018.3.0 release, using formulas with GitFS is now much more
  147786. convenient for deployments which use many different fileserver environments
  147787. (i.e. saltenvs). Using the all_saltenvs
  147788. parameter, files from a single git branch/tag will appear in all environments.
  147789. See here for more information on this feature.
  147790. .SS Adding a Formula directory manually
  147791. .sp
  147792. Formulas are simply directories that can be copied onto the local file system
  147793. by using Git to clone the repository or by downloading and expanding a tarball
  147794. or zip file of the repository. The directory structure is designed to work with
  147795. \fBfile_roots\fP in the Salt master configuration.
  147796. .INDENT 0.0
  147797. .IP 1. 3
  147798. Clone or download the repository into a directory:
  147799. .INDENT 3.0
  147800. .INDENT 3.5
  147801. .sp
  147802. .nf
  147803. .ft C
  147804. mkdir \-p /srv/formulas
  147805. cd /srv/formulas
  147806. git clone https://github.com/saltstack\-formulas/apache\-formula.git
  147807. # or
  147808. mkdir \-p /srv/formulas
  147809. cd /srv/formulas
  147810. wget https://github.com/saltstack\-formulas/apache\-formula/archive/master.tar.gz
  147811. tar xf apache\-formula\-master.tar.gz
  147812. .ft P
  147813. .fi
  147814. .UNINDENT
  147815. .UNINDENT
  147816. .IP 2. 3
  147817. Add the new directory to \fBfile_roots\fP:
  147818. .INDENT 3.0
  147819. .INDENT 3.5
  147820. .sp
  147821. .nf
  147822. .ft C
  147823. file_roots:
  147824. base:
  147825. \- /srv/salt
  147826. \- /srv/formulas/apache\-formula
  147827. .ft P
  147828. .fi
  147829. .UNINDENT
  147830. .UNINDENT
  147831. .IP 3. 3
  147832. Restart the Salt Master.
  147833. .UNINDENT
  147834. .SS Usage
  147835. .sp
  147836. Each Formula is intended to be immediately usable with sane defaults without
  147837. any additional configuration. Many formulas are also configurable by including
  147838. data in Pillar; see the \fBpillar.example\fP file in each Formula repository
  147839. for available options.
  147840. .SS Including a Formula in an existing State tree
  147841. .sp
  147842. Formula may be included in an existing \fBsls\fP file. This is often useful when
  147843. a state you are writing needs to \fBrequire\fP or \fBextend\fP a state defined in
  147844. the formula.
  147845. .sp
  147846. Here is an example of a state that uses the \fI\%epel\-formula\fP in a
  147847. \fBrequire\fP declaration which directs Salt to not install the \fBpython26\fP
  147848. package until after the EPEL repository has also been installed:
  147849. .INDENT 0.0
  147850. .INDENT 3.5
  147851. .sp
  147852. .nf
  147853. .ft C
  147854. include:
  147855. \- epel
  147856. python26:
  147857. pkg.installed:
  147858. \- require:
  147859. \- pkg: epel
  147860. .ft P
  147861. .fi
  147862. .UNINDENT
  147863. .UNINDENT
  147864. .SS Including a Formula from a Top File
  147865. .sp
  147866. Some Formula perform completely standalone installations that are not
  147867. referenced from other state files. It is usually cleanest to include these
  147868. Formula directly from a Top File.
  147869. .sp
  147870. For example the easiest way to set up an OpenStack deployment on a single
  147871. machine is to include the \fI\%openstack\-standalone\-formula\fP directly from
  147872. a \fBtop.sls\fP file:
  147873. .INDENT 0.0
  147874. .INDENT 3.5
  147875. .sp
  147876. .nf
  147877. .ft C
  147878. base:
  147879. \(aqmyopenstackmaster\(aq:
  147880. \- openstack
  147881. .ft P
  147882. .fi
  147883. .UNINDENT
  147884. .UNINDENT
  147885. .sp
  147886. Quickly deploying OpenStack across several dedicated machines could also be
  147887. done directly from a Top File and may look something like this:
  147888. .INDENT 0.0
  147889. .INDENT 3.5
  147890. .sp
  147891. .nf
  147892. .ft C
  147893. base:
  147894. \(aqcontroller\(aq:
  147895. \- openstack.horizon
  147896. \- openstack.keystone
  147897. \(aqhyper\-*\(aq:
  147898. \- openstack.nova
  147899. \- openstack.glance
  147900. \(aqstorage\-*\(aq:
  147901. \- openstack.swift
  147902. .ft P
  147903. .fi
  147904. .UNINDENT
  147905. .UNINDENT
  147906. .SS Configuring Formula using Pillar
  147907. .sp
  147908. Salt Formulas are designed to work out of the box with no additional
  147909. configuration. However, many Formula support additional configuration and
  147910. customization through Pillar\&. Examples of available options can
  147911. be found in a file named \fBpillar.example\fP in the root directory of each
  147912. Formula repository.
  147913. .SS Using Formula with your own states
  147914. .sp
  147915. Remember that Formula are regular Salt States and can be used with all Salt\(aqs
  147916. normal state mechanisms. Formula can be required from other States with
  147917. requisites\-require declarations, they can be modified using \fBextend\fP,
  147918. they can made to watch other states with requisites\-watch\-in\&.
  147919. .sp
  147920. The following example uses the stock \fI\%apache\-formula\fP alongside a
  147921. custom state to create a vhost on a Debian/Ubuntu system and to reload the
  147922. Apache service whenever the vhost is changed.
  147923. .INDENT 0.0
  147924. .INDENT 3.5
  147925. .sp
  147926. .nf
  147927. .ft C
  147928. # Include the stock, upstream apache formula.
  147929. include:
  147930. \- apache
  147931. # Use the watch_in requisite to cause the apache service state to reload
  147932. # apache whenever the my\-example\-com\-vhost state changes.
  147933. my\-example\-com\-vhost:
  147934. file:
  147935. \- managed
  147936. \- name: /etc/apache2/sites\-available/my\-example\-com
  147937. \- watch_in:
  147938. \- service: apache
  147939. .ft P
  147940. .fi
  147941. .UNINDENT
  147942. .UNINDENT
  147943. .sp
  147944. Don\(aqt be shy to read through the source for each Formula!
  147945. .SS Reporting problems & making additions
  147946. .sp
  147947. Each Formula is a separate repository on GitHub. If you encounter a bug with a
  147948. Formula please file an issue in the respective repository! Send fixes and
  147949. additions as a pull request. Add tips and tricks to the repository wiki.
  147950. .SS Writing Formulas
  147951. .sp
  147952. Each Formula is a separate repository in the \fI\%saltstack\-formulas\fP organization
  147953. on GitHub.
  147954. .SS Get involved creating new Formulas
  147955. .sp
  147956. The best way to create new Formula repositories for now is to create a
  147957. repository in your own account on GitHub and notify a SaltStack employee when
  147958. it is ready. We will add you to the Contributors team on the
  147959. \fI\%saltstack\-formulas\fP organization and help you transfer the repository over.
  147960. Ping a SaltStack employee on IRC (\fB#salt\fP on Freenode), join the
  147961. \fB#formulas\fP channel on the \fI\%salt\-slack\fP (bridged to \fB#saltstack\-formulas\fP
  147962. on Freenode) or send an email to the \fI\%salt\-users\fP mailing list. Note that the
  147963. IRC logs are available at \fI\%https://freenode.logbot.info/salt\fP and
  147964. \fI\%https://freenode.logbot.info/saltstack\-formulas\fP respectively.
  147965. .sp
  147966. There are a lot of repositories in that organization! Team members can manage
  147967. which repositories they are subscribed to on GitHub\(aqs watching page:
  147968. \fI\%https://github.com/watching\fP\&.
  147969. .sp
  147970. Members of the Contributors team are welcome to participate in reviewing pull
  147971. requests across the Organization. Some repositories will have regular
  147972. contributors and some repositories will not. As you get involved in a
  147973. repository be sure to communicate with any other contributors there on pull
  147974. requests that are large or have breaking changes.
  147975. .sp
  147976. In general it is best to have another Contributor review and merge any pull
  147977. requests that you open. Feel free to \fI\%at\-mention\fP other regular contributors
  147978. to a repository and request a review. However, there are a lot of formula
  147979. repositories so if a repository does not yet have regular contributors or if
  147980. your pull request has stayed open for more than a couple days feel free to
  147981. "selfie\-merge" your own pull request.
  147982. .SS Style
  147983. .sp
  147984. Maintainability, readability, and reusability are all marks of a good Salt sls
  147985. file. This section contains several suggestions and examples.
  147986. .INDENT 0.0
  147987. .INDENT 3.5
  147988. .sp
  147989. .nf
  147990. .ft C
  147991. # Deploy the stable master branch unless version overridden by passing
  147992. # Pillar at the CLI or via the Reactor.
  147993. deploy_myapp:
  147994. git.latest:
  147995. \- name: git@github.com/myco/myapp.git
  147996. \- version: {{ salt.pillar.get(\(aqmyapp:version\(aq, \(aqmaster\(aq) }}
  147997. .ft P
  147998. .fi
  147999. .UNINDENT
  148000. .UNINDENT
  148001. .SS Use a descriptive State ID
  148002. .sp
  148003. The ID of a state is used as a unique identifier that may be referenced via
  148004. other states in requisites\&. It must be unique across the
  148005. whole state tree (it is a key in a dictionary, after
  148006. all).
  148007. .sp
  148008. In addition a state ID should be descriptive and serve as a high\-level hint of
  148009. what it will do, or manage, or change. For example, \fBdeploy_webapp\fP, or
  148010. \fBapache\fP, or \fBreload_firewall\fP\&.
  148011. .SS Use \fBmodule.function\fP notation
  148012. .sp
  148013. So\-called "short\-declaration" notation is preferred for referencing state
  148014. modules and state functions. It provides a consistent pattern of
  148015. \fBmodule.function\fP shared between Salt States, the Reactor, Salt
  148016. Mine, the Scheduler, as well as with the CLI.
  148017. .INDENT 0.0
  148018. .INDENT 3.5
  148019. .sp
  148020. .nf
  148021. .ft C
  148022. # Do
  148023. apache:
  148024. pkg.installed:
  148025. \- name: httpd
  148026. # Don\(aqt
  148027. apache:
  148028. pkg:
  148029. \- installed
  148030. \- name: httpd
  148031. .ft P
  148032. .fi
  148033. .UNINDENT
  148034. .UNINDENT
  148035. .sp
  148036. Salt\(aqs state compiler will transform "short\-decs" into the longer format
  148037. when compiling the human\-friendly highstate structure into the
  148038. machine\-friendly lowstate structure\&.
  148039. .SS Specify the \fBname\fP parameter
  148040. .sp
  148041. Use a unique and permanent identifier for the state ID and reserve \fBname\fP for
  148042. data with variability.
  148043. .sp
  148044. The name declaration is a required parameter for all
  148045. state functions. The state ID will implicitly be used as \fBname\fP if it is not
  148046. explicitly set in the state.
  148047. .sp
  148048. In many state functions the \fBname\fP parameter is used for data that varies
  148049. such as OS\-specific package names, OS\-specific file system paths, repository
  148050. addresses, etc. Any time the ID of a state changes all references to that ID
  148051. must also be changed. Use a permanent ID when writing a state the first time to
  148052. future\-proof that state and allow for easier refactors down the road.
  148053. .SS Comment state files
  148054. .sp
  148055. YAML allows comments at varying indentation levels. It is a good practice to
  148056. comment state files. Use vertical whitespace to visually separate different
  148057. concepts or actions.
  148058. .INDENT 0.0
  148059. .INDENT 3.5
  148060. .sp
  148061. .nf
  148062. .ft C
  148063. # Start with a high\-level description of the current sls file.
  148064. # Explain the scope of what it will do or manage.
  148065. # Comment individual states as necessary.
  148066. update_a_config_file:
  148067. # Provide details on why an unusual choice was made. For example:
  148068. #
  148069. # This template is fetched from a third\-party and does not fit our
  148070. # company norm of using Jinja. This must be processed using Mako.
  148071. file.managed:
  148072. \- name: /path/to/file.cfg
  148073. \- source: salt://path/to/file.cfg.template
  148074. \- template: mako
  148075. # Provide a description or explanation that did not fit within the state
  148076. # ID. For example:
  148077. #
  148078. # Update the application\(aqs last\-deployed timestamp.
  148079. # This is a workaround until Bob configures Jenkins to automate RPM
  148080. # builds of the app.
  148081. cmd.run:
  148082. # FIXME: Joe needs this to run on Windows by next quarter. Switch these
  148083. # from shell commands to Salt\(aqs file.managed and file.replace state
  148084. # modules.
  148085. \- name: |
  148086. touch /path/to/file_last_updated
  148087. sed \-e \(aqs/foo/bar/g\(aq /path/to/file_environment
  148088. \- onchanges:
  148089. \- file: a_config_file
  148090. .ft P
  148091. .fi
  148092. .UNINDENT
  148093. .UNINDENT
  148094. .sp
  148095. Be careful to use Jinja comments for commenting Jinja code and YAML comments
  148096. for commenting YAML code.
  148097. .INDENT 0.0
  148098. .INDENT 3.5
  148099. .sp
  148100. .nf
  148101. .ft C
  148102. # BAD EXAMPLE
  148103. # The Jinja in this YAML comment is still executed!
  148104. # {% set apache_is_installed = \(aqapache\(aq in salt.pkg.list_pkgs() %}
  148105. # GOOD EXAMPLE
  148106. # The Jinja in this Jinja comment will not be executed.
  148107. {# {% set apache_is_installed = \(aqapache\(aq in salt.pkg.list_pkgs() %} #}
  148108. .ft P
  148109. .fi
  148110. .UNINDENT
  148111. .UNINDENT
  148112. .SS Easy on the Jinja!
  148113. .sp
  148114. Jinja templating provides vast flexibility and power when building Salt sls
  148115. files. It can also create an unmaintainable tangle of logic and data. Speaking
  148116. broadly, Jinja is best used when kept apart from the states (as much as is
  148117. possible).
  148118. .sp
  148119. Below are guidelines and examples of how Jinja can be used effectively.
  148120. .SS Know the evaluation and execution order
  148121. .sp
  148122. High\-level knowledge of how Salt states are compiled and run is useful when
  148123. writing states.
  148124. .sp
  148125. The default \fBrenderer\fP setting in Salt is Jinja piped to YAML.
  148126. Each is a separate step. Each step is not aware of the previous or following
  148127. step. Jinja is not YAML aware, YAML is not Jinja aware; they cannot share
  148128. variables or interact.
  148129. .INDENT 0.0
  148130. .IP \(bu 2
  148131. Whatever the Jinja step produces must be valid YAML.
  148132. .IP \(bu 2
  148133. Whatever the YAML step produces must be a valid highstate data
  148134. structure\&. (This is also true of the final step
  148135. for any of the alternate renderers in Salt.)
  148136. .IP \(bu 2
  148137. Highstate can be thought of as a human\-friendly data structure; easy to write
  148138. and easy to read.
  148139. .IP \(bu 2
  148140. Salt\(aqs state compiler validates the highstate and
  148141. compiles it to low state.
  148142. .IP \(bu 2
  148143. Low state can be thought of as a machine\-friendly data structure. It is a
  148144. list of dictionaries that each map directly to a function call.
  148145. .IP \(bu 2
  148146. Salt\(aqs state system finally starts and executes on each "chunk" in the low
  148147. state. Remember that requisites are evaluated at runtime.
  148148. .IP \(bu 2
  148149. The return for each function call is added to the "running" dictionary which
  148150. is the final output at the end of the state run.
  148151. .UNINDENT
  148152. .sp
  148153. The full evaluation and execution order:
  148154. .INDENT 0.0
  148155. .INDENT 3.5
  148156. .sp
  148157. .nf
  148158. .ft C
  148159. Jinja \-> YAML \-> Highstate \-> low state \-> execution
  148160. .ft P
  148161. .fi
  148162. .UNINDENT
  148163. .UNINDENT
  148164. .SS Avoid changing the underlying system with Jinja
  148165. .sp
  148166. Avoid calling commands from Jinja that change the underlying system. Commands
  148167. run via Jinja do not respect Salt\(aqs dry\-run mode (\fBtest=True\fP)! This is
  148168. usually in conflict with the idempotent nature of Salt states unless the
  148169. command being run is also idempotent.
  148170. .SS Inspect the local system
  148171. .sp
  148172. A common use for Jinja in Salt states is to gather information about the
  148173. underlying system. The \fBgrains\fP dictionary available in the Jinja context is
  148174. a great example of common data points that Salt itself has already gathered.
  148175. Less common values are often found by running commands. For example:
  148176. .INDENT 0.0
  148177. .INDENT 3.5
  148178. .sp
  148179. .nf
  148180. .ft C
  148181. {% set is_selinux_enabled = salt.cmd.run(\(aqsestatus\(aq) == \(aq1\(aq %}
  148182. .ft P
  148183. .fi
  148184. .UNINDENT
  148185. .UNINDENT
  148186. .sp
  148187. This is usually best done with a variable assignment in order to separate the
  148188. data from the state that will make use of the data.
  148189. .SS Gather external data
  148190. .sp
  148191. One of the most common uses for Jinja is to pull external data into the state
  148192. file. External data can come from anywhere like API calls or database queries,
  148193. but it most commonly comes from flat files on the file system or Pillar data
  148194. from the Salt Master. For example:
  148195. .INDENT 0.0
  148196. .INDENT 3.5
  148197. .sp
  148198. .nf
  148199. .ft C
  148200. {% set some_data = salt.pillar.get(\(aqsome_data\(aq, {\(aqsane default\(aq: True}) %}
  148201. {# or #}
  148202. {% import_yaml \(aqpath/to/file.yaml\(aq as some_data %}
  148203. {# or #}
  148204. {% import_json \(aqpath/to/file.json\(aq as some_data %}
  148205. {# or #}
  148206. {% import_text \(aqpath/to/ssh_key.pub\(aq as ssh_pub_key %}
  148207. {# or #}
  148208. {% from \(aqpath/to/other_file.jinja\(aq import some_data with context %}
  148209. .ft P
  148210. .fi
  148211. .UNINDENT
  148212. .UNINDENT
  148213. .sp
  148214. This is usually best done with a variable assignment in order to separate the
  148215. data from the state that will make use of the data.
  148216. .SS Light conditionals and looping
  148217. .sp
  148218. Jinja is extremely powerful for programmatically generating Salt states. It is
  148219. also easy to overuse. As a rule of thumb, if it is hard to read it will be hard
  148220. to maintain!
  148221. .sp
  148222. Separate Jinja control\-flow statements from the states as much as is possible
  148223. to create readable states. Limit Jinja within states to simple variable
  148224. lookups.
  148225. .sp
  148226. Below is a simple example of a readable loop:
  148227. .INDENT 0.0
  148228. .INDENT 3.5
  148229. .sp
  148230. .nf
  148231. .ft C
  148232. {% for user in salt.pillar.get(\(aqlist_of_users\(aq, []) %}
  148233. {# Ensure unique state IDs when looping. #}
  148234. {{ user.name }}\-{{ loop.index }}:
  148235. user.present:
  148236. \- name: {{ user.name }}
  148237. \- shell: {{ user.shell }}
  148238. {% endfor %}
  148239. .ft P
  148240. .fi
  148241. .UNINDENT
  148242. .UNINDENT
  148243. .sp
  148244. Avoid putting a Jinja conditionals within Salt states where possible.
  148245. Readability suffers and the correct YAML indentation is difficult to see in the
  148246. surrounding visual noise. Parametrization (discussed below) and variables are
  148247. both useful techniques to avoid this. For example:
  148248. .INDENT 0.0
  148249. .INDENT 3.5
  148250. .sp
  148251. .nf
  148252. .ft C
  148253. {# \-\-\-\- Bad example \-\-\-\- #}
  148254. apache:
  148255. pkg.installed:
  148256. {% if grains.os_family == \(aqRedHat\(aq %}
  148257. \- name: httpd
  148258. {% elif grains.os_family == \(aqDebian\(aq %}
  148259. \- name: apache2
  148260. {% endif %}
  148261. {# \-\-\-\- Better example \-\-\-\- #}
  148262. {% if grains.os_family == \(aqRedHat\(aq %}
  148263. {% set name = \(aqhttpd\(aq %}
  148264. {% elif grains.os_family == \(aqDebian\(aq %}
  148265. {% set name = \(aqapache2\(aq %}
  148266. {% endif %}
  148267. apache:
  148268. pkg.installed:
  148269. \- name: {{ name }}
  148270. {# \-\-\-\- Good example \-\-\-\- #}
  148271. {% set name = {
  148272. \(aqRedHat\(aq: \(aqhttpd\(aq,
  148273. \(aqDebian\(aq: \(aqapache2\(aq,
  148274. }.get(grains.os_family) %}
  148275. apache:
  148276. pkg.installed:
  148277. \- name: {{ name }}
  148278. .ft P
  148279. .fi
  148280. .UNINDENT
  148281. .UNINDENT
  148282. .sp
  148283. Dictionaries are useful to effectively "namespace" a collection of variables.
  148284. This is useful with parametrization (discussed below). Dictionaries are also
  148285. easily combined and merged. And they can be directly serialized into YAML which
  148286. is often easier than trying to create valid YAML through templating. For
  148287. example:
  148288. .INDENT 0.0
  148289. .INDENT 3.5
  148290. .sp
  148291. .nf
  148292. .ft C
  148293. {# \-\-\-\- Bad example \-\-\-\- #}
  148294. haproxy_conf:
  148295. file.managed:
  148296. \- name: /etc/haproxy/haproxy.cfg
  148297. \- template: jinja
  148298. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148299. \- source: salt://haproxy/external_haproxy.cfg
  148300. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148301. \- source: salt://haproxy/internal_haproxy.cfg
  148302. {% endif %}
  148303. \- context:
  148304. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148305. ssl_termination: True
  148306. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148307. ssl_termination: False
  148308. {% endif %}
  148309. {# \-\-\-\- Better example \-\-\-\- #}
  148310. {% load_yaml as haproxy_defaults %}
  148311. common_settings:
  148312. bind_port: 80
  148313. internal_loadbalancer:
  148314. source: salt://haproxy/internal_haproxy.cfg
  148315. settings:
  148316. bind_port: 8080
  148317. ssl_termination: False
  148318. external_loadbalancer:
  148319. source: salt://haproxy/external_haproxy.cfg
  148320. settings:
  148321. ssl_termination: True
  148322. {% endload %}
  148323. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148324. {% set haproxy = haproxy_defaults[\(aqexternal_loadbalancer\(aq] %}
  148325. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148326. {% set haproxy = haproxy_defaults[\(aqinternal_loadbalancer\(aq] %}
  148327. {% endif %}
  148328. {% do haproxy.settings.update(haproxy_defaults.common_settings) %}
  148329. haproxy_conf:
  148330. file.managed:
  148331. \- name: /etc/haproxy/haproxy.cfg
  148332. \- template: jinja
  148333. \- source: {{ haproxy.source }}
  148334. \- context: {{ haproxy.settings | yaml() }}
  148335. .ft P
  148336. .fi
  148337. .UNINDENT
  148338. .UNINDENT
  148339. .sp
  148340. There is still room for improvement in the above example. For example,
  148341. extracting into an external file or replacing the if\-elif conditional with a
  148342. function call to filter the correct data more succinctly. However, the state
  148343. itself is simple and legible, the data is separate and also simple and legible.
  148344. And those suggested improvements can be made at some future date without
  148345. altering the state at all!
  148346. .SS Avoid heavy logic and programming
  148347. .sp
  148348. Jinja is not Python. It was made by Python programmers and shares many
  148349. semantics and some syntax but it does not allow for abitrary Python function
  148350. calls or Python imports. Jinja is a fast and efficient templating language but
  148351. the syntax can be verbose and visually noisy.
  148352. .sp
  148353. Once Jinja use within an sls file becomes slightly complicated \-\- long chains
  148354. of if\-elif\-elif\-else statements, nested conditionals, complicated dictionary
  148355. merges, wanting to use sets \-\- instead consider using a different Salt
  148356. renderer, such as the Python renderer. As a rule of thumb, if it is hard to
  148357. read it will be hard to maintain \-\- switch to a format that is easier to read.
  148358. .sp
  148359. Using alternate renderers is very simple to do using Salt\(aqs "she\-bang" syntax
  148360. at the top of the file. The Python renderer must simply return the correct
  148361. highstate data structure\&. The following
  148362. example is a state tree of two sls files, one simple and one complicated.
  148363. .sp
  148364. \fB/srv/salt/top.sls\fP:
  148365. .INDENT 0.0
  148366. .INDENT 3.5
  148367. .sp
  148368. .nf
  148369. .ft C
  148370. base:
  148371. \(aq*\(aq:
  148372. \- common_configuration
  148373. \- roles_configuration
  148374. .ft P
  148375. .fi
  148376. .UNINDENT
  148377. .UNINDENT
  148378. .sp
  148379. \fB/srv/salt/common_configuration.sls\fP:
  148380. .INDENT 0.0
  148381. .INDENT 3.5
  148382. .sp
  148383. .nf
  148384. .ft C
  148385. common_users:
  148386. user.present:
  148387. \- names:
  148388. \- larry
  148389. \- curly
  148390. \- moe
  148391. .ft P
  148392. .fi
  148393. .UNINDENT
  148394. .UNINDENT
  148395. .sp
  148396. \fB/srv/salt/roles_configuration\fP:
  148397. .INDENT 0.0
  148398. .INDENT 3.5
  148399. .sp
  148400. .nf
  148401. .ft C
  148402. #!py
  148403. def run():
  148404. list_of_roles = set()
  148405. # This example has the minion id in the form \(aqweb\-03\-dev\(aq.
  148406. # Easily access the grains dictionary:
  148407. try:
  148408. app, instance_number, environment = __grains__["id"].split("\-")
  148409. instance_number = int(instance_number)
  148410. except ValueError:
  148411. app, instance_number, environment = ["Unknown", 0, "dev"]
  148412. list_of_roles.add(app)
  148413. if app == "web" and environment == "dev":
  148414. list_of_roles.add("primary")
  148415. list_of_roles.add("secondary")
  148416. elif app == "web" and environment == "staging":
  148417. if instance_number == 0:
  148418. list_of_roles.add("primary")
  148419. else:
  148420. list_of_roles.add("secondary")
  148421. # Easily cross\-call Salt execution modules:
  148422. if __salt__["myutils.query_valid_ec2_instance"]():
  148423. list_of_roles.add("is_ec2_instance")
  148424. return {
  148425. "set_roles_grains": {
  148426. "grains.present": [{"name": "roles"}, {"value": list(list_of_roles)},],
  148427. },
  148428. }
  148429. .ft P
  148430. .fi
  148431. .UNINDENT
  148432. .UNINDENT
  148433. .SS Jinja Macros
  148434. .sp
  148435. In Salt sls files Jinja macros are useful for one thing and one thing only:
  148436. creating mini templates that can be reused and rendered on demand. Do not fall
  148437. into the trap of thinking of macros as functions; Jinja is not Python (see
  148438. above).
  148439. .sp
  148440. Macros are useful for creating reusable, parameterized states. For example:
  148441. .INDENT 0.0
  148442. .INDENT 3.5
  148443. .sp
  148444. .nf
  148445. .ft C
  148446. {% macro user_state(state_id, user_name, shell=\(aq/bin/bash\(aq, groups=[]) %}
  148447. {{ state_id }}:
  148448. user.present:
  148449. \- name: {{ user_name }}
  148450. \- shell: {{ shell }}
  148451. \- groups: {{ groups | json() }}
  148452. {% endmacro %}
  148453. {% for user_info in salt.pillar.get(\(aqmy_users\(aq, []) %}
  148454. {{ user_state(\(aquser_number_\(aq ~ loop.index, **user_info) }}
  148455. {% endfor %}
  148456. .ft P
  148457. .fi
  148458. .UNINDENT
  148459. .UNINDENT
  148460. .sp
  148461. Macros are also useful for creating one\-off "serializers" that can accept a
  148462. data structure and write that out as a domain\-specific configuration file. For
  148463. example, the following macro could be used to write a php.ini config file:
  148464. .sp
  148465. \fB/srv/salt/php.sls\fP:
  148466. .INDENT 0.0
  148467. .INDENT 3.5
  148468. .sp
  148469. .nf
  148470. .ft C
  148471. php_ini:
  148472. file.managed:
  148473. \- name: /etc/php.ini
  148474. \- source: salt://php.ini.tmpl
  148475. \- template: jinja
  148476. \- context:
  148477. php_ini_settings: {{ salt.pillar.get(\(aqphp_ini\(aq, {}) | json() }}
  148478. .ft P
  148479. .fi
  148480. .UNINDENT
  148481. .UNINDENT
  148482. .sp
  148483. \fB/srv/pillar/php.sls\fP:
  148484. .INDENT 0.0
  148485. .INDENT 3.5
  148486. .sp
  148487. .nf
  148488. .ft C
  148489. php_ini:
  148490. PHP:
  148491. engine: \(aqOn\(aq
  148492. short_open_tag: \(aqOff\(aq
  148493. error_reporting: \(aqE_ALL & ~E_DEPRECATED & ~E_STRICT\(aq
  148494. .ft P
  148495. .fi
  148496. .UNINDENT
  148497. .UNINDENT
  148498. .sp
  148499. \fB/srv/salt/php.ini.tmpl\fP:
  148500. .INDENT 0.0
  148501. .INDENT 3.5
  148502. .sp
  148503. .nf
  148504. .ft C
  148505. {% macro php_ini_serializer(data) %}
  148506. {% for section_name, name_val_pairs in data.items() %}
  148507. [{{ section_name }}]
  148508. {% for name, val in name_val_pairs.items() \-%}
  148509. {{ name }} = "{{ val }}"
  148510. {% endfor %}
  148511. {% endfor %}
  148512. {% endmacro %}
  148513. ; File managed by Salt at <{{ source }}>.
  148514. ; Your changes will be overwritten.
  148515. {{ php_ini_serializer(php_ini_settings) }}
  148516. .ft P
  148517. .fi
  148518. .UNINDENT
  148519. .UNINDENT
  148520. .SS Abstracting static defaults into a lookup table
  148521. .sp
  148522. Separate data that a state uses from the state itself to increases the
  148523. flexibility and reusability of a state.
  148524. .sp
  148525. An obvious and common example of this is platform\-specific package names and
  148526. file system paths. Another example is sane defaults for an application, or
  148527. common settings within a company or organization. Organizing such data as a
  148528. dictionary (aka hash map, lookup table, associative array) often provides a
  148529. lightweight namespacing and allows for quick and easy lookups. In addition,
  148530. using a dictionary allows for easily merging and overriding static values
  148531. within a lookup table with dynamic values fetched from Pillar.
  148532. .sp
  148533. A strong convention in Salt Formulas is to place platform\-specific data, such
  148534. as package names and file system paths, into a file named \fBmap.jinja\fP
  148535. that is placed alongside the state files.
  148536. .sp
  148537. The following is an example from the MySQL Formula.
  148538. The \fBgrains.filter_by\fP function
  148539. performs a lookup on that table using the \fBos_family\fP grain (by default).
  148540. .sp
  148541. The result is that the \fBmysql\fP variable is assigned to a \fIsubset\fP of
  148542. the lookup table for the current platform. This allows states to reference, for
  148543. example, the name of a package without worrying about the underlying OS. The
  148544. syntax for referencing a value is a normal dictionary lookup in Jinja, such as
  148545. \fB{{ mysql[\(aqservice\(aq] }}\fP or the shorthand \fB{{ mysql.service }}\fP\&.
  148546. .sp
  148547. \fBmap.jinja\fP:
  148548. .INDENT 0.0
  148549. .INDENT 3.5
  148550. .sp
  148551. .nf
  148552. .ft C
  148553. {% set mysql = salt[\(aqgrains.filter_by\(aq]({
  148554. \(aqDebian\(aq: {
  148555. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148556. \(aqclient\(aq: \(aqmysql\-client\(aq,
  148557. \(aqservice\(aq: \(aqmysql\(aq,
  148558. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148559. \(aqpython\(aq: \(aqpython\-mysqldb\(aq,
  148560. },
  148561. \(aqRedHat\(aq: {
  148562. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148563. \(aqclient\(aq: \(aqmysql\(aq,
  148564. \(aqservice\(aq: \(aqmysqld\(aq,
  148565. \(aqconfig\(aq: \(aq/etc/my.cnf\(aq,
  148566. \(aqpython\(aq: \(aqMySQL\-python\(aq,
  148567. },
  148568. \(aqGentoo\(aq: {
  148569. \(aqserver\(aq: \(aqdev\-db/mysql\(aq,
  148570. \(aqclient\(aq: \(aqdev\-db/mysql\(aq,
  148571. \(aqservice\(aq: \(aqmysql\(aq,
  148572. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148573. \(aqpython\(aq: \(aqdev\-python/mysql\-python\(aq,
  148574. },
  148575. }, merge=salt[\(aqpillar.get\(aq](\(aqmysql:lookup\(aq)) %}
  148576. .ft P
  148577. .fi
  148578. .UNINDENT
  148579. .UNINDENT
  148580. .sp
  148581. Values defined in the map file can be fetched for the current platform in any
  148582. state file using the following syntax:
  148583. .INDENT 0.0
  148584. .INDENT 3.5
  148585. .sp
  148586. .nf
  148587. .ft C
  148588. {% from "mysql/map.jinja" import mysql with context %}
  148589. mysql\-server:
  148590. pkg.installed:
  148591. \- name: {{ mysql.server }}
  148592. service.running:
  148593. \- name: {{ mysql.service }}
  148594. .ft P
  148595. .fi
  148596. .UNINDENT
  148597. .UNINDENT
  148598. .SS Organizing Pillar data
  148599. .sp
  148600. It is considered a best practice to make formulas expect \fBall\fP
  148601. formula\-related parameters to be placed under second\-level \fBlookup\fP key,
  148602. within a main namespace designated for holding data for particular
  148603. service/software/etc, managed by the formula:
  148604. .INDENT 0.0
  148605. .INDENT 3.5
  148606. .sp
  148607. .nf
  148608. .ft C
  148609. mysql:
  148610. lookup:
  148611. version: 5.7.11
  148612. .ft P
  148613. .fi
  148614. .UNINDENT
  148615. .UNINDENT
  148616. .SS Collecting common values
  148617. .sp
  148618. Common values can be collected into a \fIbase\fP dictionary. This
  148619. minimizes repetition of identical values in each of the
  148620. \fBlookup_dict\fP sub\-dictionaries. Now only the values that are
  148621. different from the base must be specified by the alternates:
  148622. .sp
  148623. \fBmap.jinja\fP:
  148624. .INDENT 0.0
  148625. .INDENT 3.5
  148626. .sp
  148627. .nf
  148628. .ft C
  148629. {% set mysql = salt[\(aqgrains.filter_by\(aq]({
  148630. \(aqdefault\(aq: {
  148631. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148632. \(aqclient\(aq: \(aqmysql\-client\(aq,
  148633. \(aqservice\(aq: \(aqmysql\(aq,
  148634. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148635. \(aqpython\(aq: \(aqpython\-mysqldb\(aq,
  148636. },
  148637. \(aqDebian\(aq: {
  148638. },
  148639. \(aqRedHat\(aq: {
  148640. \(aqclient\(aq: \(aqmysql\(aq,
  148641. \(aqservice\(aq: \(aqmysqld\(aq,
  148642. \(aqconfig\(aq: \(aq/etc/my.cnf\(aq,
  148643. \(aqpython\(aq: \(aqMySQL\-python\(aq,
  148644. },
  148645. \(aqGentoo\(aq: {
  148646. \(aqserver\(aq: \(aqdev\-db/mysql\(aq,
  148647. \(aqclient\(aq: \(aqdev\-db/mysql\(aq,
  148648. \(aqpython\(aq: \(aqdev\-python/mysql\-python\(aq,
  148649. },
  148650. },
  148651. merge=salt[\(aqpillar.get\(aq](\(aqmysql:lookup\(aq), base=\(aqdefault\(aq) %}
  148652. .ft P
  148653. .fi
  148654. .UNINDENT
  148655. .UNINDENT
  148656. .SS Overriding values in the lookup table
  148657. .sp
  148658. Allow static values within lookup tables to be overridden. This is a simple
  148659. pattern which once again increases flexibility and reusability for state files.
  148660. .sp
  148661. The \fBmerge\fP argument in \fBfilter_by\fP
  148662. specifies the location of a dictionary in Pillar that can be used to override
  148663. values returned from the lookup table. If the value exists in Pillar it will
  148664. take precedence.
  148665. .sp
  148666. This is useful when software or configuration files is installed to
  148667. non\-standard locations or on unsupported platforms. For example, the following
  148668. Pillar would replace the \fBconfig\fP value from the call above.
  148669. .INDENT 0.0
  148670. .INDENT 3.5
  148671. .sp
  148672. .nf
  148673. .ft C
  148674. mysql:
  148675. lookup:
  148676. config: /usr/local/etc/mysql/my.cnf
  148677. .ft P
  148678. .fi
  148679. .UNINDENT
  148680. .UNINDENT
  148681. .sp
  148682. \fBNOTE:\fP
  148683. .INDENT 0.0
  148684. .INDENT 3.5
  148685. Protecting Expansion of Content with Special Characters
  148686. .sp
  148687. When templating keep in mind that YAML does have special characters for
  148688. quoting, flows, and other special structure and content. When a Jinja
  148689. substitution may have special characters that will be incorrectly parsed by
  148690. YAML care must be taken. It is a good policy to use the \fByaml_encode\fP or
  148691. the \fByaml_dquote\fP Jinja filters:
  148692. .INDENT 0.0
  148693. .INDENT 3.5
  148694. .sp
  148695. .nf
  148696. .ft C
  148697. {%\- set foo = 7.7 %}
  148698. {%\- set bar = none %}
  148699. {%\- set baz = true %}
  148700. {%\- set zap = \(aqThe word of the day is "salty".\(aq %}
  148701. {%\- set zip = \(aq"The quick brown fox . . ."\(aq %}
  148702. foo: {{ foo|yaml_encode }}
  148703. bar: {{ bar|yaml_encode }}
  148704. baz: {{ baz|yaml_encode }}
  148705. zap: {{ zap|yaml_encode }}
  148706. zip: {{ zip|yaml_dquote }}
  148707. .ft P
  148708. .fi
  148709. .UNINDENT
  148710. .UNINDENT
  148711. .sp
  148712. The above will be rendered as below:
  148713. .INDENT 0.0
  148714. .INDENT 3.5
  148715. .sp
  148716. .nf
  148717. .ft C
  148718. foo: 7.7
  148719. bar: null
  148720. baz: true
  148721. zap: "The word of the day is \e"salty\e"."
  148722. zip: "\e"The quick brown fox . . .\e""
  148723. .ft P
  148724. .fi
  148725. .UNINDENT
  148726. .UNINDENT
  148727. .UNINDENT
  148728. .UNINDENT
  148729. .sp
  148730. The \fBfilter_by\fP function performs a
  148731. simple dictionary lookup but also allows for fetching data from Pillar and
  148732. overriding data stored in the lookup table. That same workflow can be easily
  148733. performed without using \fBfilter_by\fP; other dictionaries besides data from
  148734. Pillar can also be used.
  148735. .INDENT 0.0
  148736. .INDENT 3.5
  148737. .sp
  148738. .nf
  148739. .ft C
  148740. {% set lookup_table = {...} %}
  148741. {% do lookup_table.update(salt.pillar.get(\(aqmy:custom:data\(aq)) %}
  148742. .ft P
  148743. .fi
  148744. .UNINDENT
  148745. .UNINDENT
  148746. .SS When to use lookup tables
  148747. .sp
  148748. The \fBmap.jinja\fP file is only a convention within Salt Formulas. This greater
  148749. pattern is useful for a wide variety of data in a wide variety of workflows.
  148750. This pattern is not limited to pulling data from a single file or data source.
  148751. This pattern is useful in States, Pillar and the Reactor, for example.
  148752. .sp
  148753. Working with a data structure instead of, say, a config file allows the data to
  148754. be cobbled together from multiple sources (local files, remote Pillar, database
  148755. queries, etc), combined, overridden, and searched.
  148756. .sp
  148757. Below are a few examples of what lookup tables may be useful for and how they
  148758. may be used and represented.
  148759. .SS Platform\-specific information
  148760. .sp
  148761. An obvious pattern and one used heavily in Salt Formulas is extracting
  148762. platform\-specific information such as package names and file system paths in
  148763. a file named \fBmap.jinja\fP\&. The pattern is explained in detail above.
  148764. .SS Sane defaults
  148765. .sp
  148766. Application settings can be a good fit for this pattern. Store default
  148767. settings along with the states themselves and keep overrides and sensitive
  148768. settings in Pillar. Combine both into a single dictionary and then write the
  148769. application config or settings file.
  148770. .sp
  148771. The example below stores most of the Apache Tomcat \fBserver.xml\fP file
  148772. alongside the Tomcat states and then allows values to be updated or augmented
  148773. via Pillar. (This example uses the BadgerFish format for transforming JSON to
  148774. XML.)
  148775. .sp
  148776. \fB/srv/salt/tomcat/defaults.yaml\fP:
  148777. .INDENT 0.0
  148778. .INDENT 3.5
  148779. .sp
  148780. .nf
  148781. .ft C
  148782. Server:
  148783. \(aq@port\(aq: \(aq8005\(aq
  148784. \(aq@shutdown\(aq: SHUTDOWN
  148785. GlobalNamingResources:
  148786. Resource:
  148787. \(aq@auth\(aq: Container
  148788. \(aq@description\(aq: User database that can be updated and saved
  148789. \(aq@factory\(aq: org.apache.catalina.users.MemoryUserDatabaseFactory
  148790. \(aq@name\(aq: UserDatabase
  148791. \(aq@pathname\(aq: conf/tomcat\-users.xml
  148792. \(aq@type\(aq: org.apache.catalina.UserDatabase
  148793. # <...snip...>
  148794. .ft P
  148795. .fi
  148796. .UNINDENT
  148797. .UNINDENT
  148798. .sp
  148799. \fB/srv/pillar/tomcat.sls\fP:
  148800. .INDENT 0.0
  148801. .INDENT 3.5
  148802. .sp
  148803. .nf
  148804. .ft C
  148805. appX:
  148806. server_xml_overrides:
  148807. Server:
  148808. Service:
  148809. \(aq@name\(aq: Catalina
  148810. Connector:
  148811. \(aq@port\(aq: \(aq8009\(aq
  148812. \(aq@protocol\(aq: AJP/1.3
  148813. \(aq@redirectPort\(aq: \(aq8443\(aq
  148814. # <...snip...>
  148815. .ft P
  148816. .fi
  148817. .UNINDENT
  148818. .UNINDENT
  148819. .sp
  148820. \fB/srv/salt/tomcat/server_xml.sls\fP:
  148821. .INDENT 0.0
  148822. .INDENT 3.5
  148823. .sp
  148824. .nf
  148825. .ft C
  148826. {% import_yaml \(aqtomcat/defaults.yaml\(aq as server_xml_defaults %}
  148827. {% set server_xml_final_values = salt.pillar.get(
  148828. \(aqappX:server_xml_overrides\(aq,
  148829. default=server_xml_defaults,
  148830. merge=True)
  148831. %}
  148832. appX_server_xml:
  148833. file.serialize:
  148834. \- name: /etc/tomcat/server.xml
  148835. \- dataset: {{ server_xml_final_values | json() }}
  148836. \- formatter: xml_badgerfish
  148837. .ft P
  148838. .fi
  148839. .UNINDENT
  148840. .UNINDENT
  148841. .sp
  148842. The \fBfile.serialize\fP state can provide a
  148843. shorthand for creating some files from data structures. There are also many
  148844. examples within Salt Formulas of creating one\-off "serializers" (often as Jinja
  148845. macros) that reformat a data structure to a specific config file format. For
  148846. example, look at the\(gaNginx vhosts\(ga_ states or the \fI\%php.ini\fP file template.
  148847. .SS Environment specific information
  148848. .sp
  148849. A single state can be reused when it is parameterized as described in the
  148850. section below, by separating the data the state will use from the state that
  148851. performs the work. This can be the difference between deploying \fIApplication X\fP
  148852. and \fIApplication Y\fP, or the difference between production and development. For
  148853. example:
  148854. .sp
  148855. \fB/srv/salt/app/deploy.sls\fP:
  148856. .INDENT 0.0
  148857. .INDENT 3.5
  148858. .sp
  148859. .nf
  148860. .ft C
  148861. {# Load the map file. #}
  148862. {% import_yaml \(aqapp/defaults.yaml\(aq as app_defaults %}
  148863. {# Extract the relevant subset for the app configured on the current
  148864. machine (configured via a grain in this example). #}
  148865. {% app = app_defaults.get(salt.grains.get(\(aqrole\(aq)) %}
  148866. {# Allow values from Pillar to (optionally) update values from the lookup
  148867. table. #}
  148868. {% do app_defaults.update(salt.pillar.get(\(aqmyapp\(aq, {})) %}
  148869. deploy_application:
  148870. git.latest:
  148871. \- name: {{ app.repo_url }}
  148872. \- version: {{ app.version }}
  148873. \- target: {{ app.deploy_dir }}
  148874. myco/myapp/deployed:
  148875. event.send:
  148876. \- data:
  148877. version: {{ app.version }}
  148878. \- onchanges:
  148879. \- git: deploy_application
  148880. .ft P
  148881. .fi
  148882. .UNINDENT
  148883. .UNINDENT
  148884. .sp
  148885. \fB/srv/salt/app/defaults.yaml\fP:
  148886. .INDENT 0.0
  148887. .INDENT 3.5
  148888. .sp
  148889. .nf
  148890. .ft C
  148891. appX:
  148892. repo_url: git@github.com/myco/appX.git
  148893. target: /var/www/appX
  148894. version: master
  148895. appY:
  148896. repo_url: git@github.com/myco/appY.git
  148897. target: /var/www/appY
  148898. version: v1.2.3.4
  148899. .ft P
  148900. .fi
  148901. .UNINDENT
  148902. .UNINDENT
  148903. .SS Single\-purpose SLS files
  148904. .sp
  148905. Each sls file in a Formula should strive to do a single thing. This increases
  148906. the reusability of this file by keeping unrelated tasks from getting coupled
  148907. together.
  148908. .sp
  148909. As an example, the base Apache formula should only install the Apache httpd
  148910. server and start the httpd service. This is the basic, expected behavior when
  148911. installing Apache. It should not perform additional changes such as set the
  148912. Apache configuration file or create vhosts.
  148913. .sp
  148914. If a formula is single\-purpose as in the example above, other formulas, and
  148915. also other states can \fBinclude\fP and use that formula with requisites
  148916. without also including undesirable or unintended side\-effects.
  148917. .sp
  148918. The following is a best\-practice example for a reusable Apache formula. (This
  148919. skips platform\-specific options for brevity. See the full
  148920. \fI\%apache\-formula\fP for more.)
  148921. .INDENT 0.0
  148922. .INDENT 3.5
  148923. .sp
  148924. .nf
  148925. .ft C
  148926. # apache/init.sls
  148927. apache:
  148928. pkg.installed:
  148929. [...]
  148930. service.running:
  148931. [...]
  148932. # apache/mod_wsgi.sls
  148933. include:
  148934. \- apache
  148935. mod_wsgi:
  148936. pkg.installed:
  148937. [...]
  148938. \- require:
  148939. \- pkg: apache
  148940. # apache/conf.sls
  148941. include:
  148942. \- apache
  148943. apache_conf:
  148944. file.managed:
  148945. [...]
  148946. \- watch_in:
  148947. \- service: apache
  148948. .ft P
  148949. .fi
  148950. .UNINDENT
  148951. .UNINDENT
  148952. .sp
  148953. To illustrate a bad example, say the above Apache formula installed Apache and
  148954. also created a default vhost. The mod_wsgi state would not be able to include
  148955. the Apache formula to create that dependency tree without also installing the
  148956. unneeded default vhost.
  148957. .sp
  148958. \fI\%Formulas should be reusable\fP\&. Avoid coupling
  148959. unrelated actions together.
  148960. .SS Parameterization
  148961. .sp
  148962. \fIParameterization is a key feature of Salt Formulas\fP and also for Salt
  148963. States. Parameterization allows a single Formula to be reused across many
  148964. operating systems; to be reused across production, development, or staging
  148965. environments; and to be reused by many people all with varying goals.
  148966. .sp
  148967. Writing states, specifying ordering and dependencies is the part that takes the
  148968. longest to write and to test. Filling those states out with data such as users
  148969. or package names or file locations is the easy part. How many users, what those
  148970. users are named, or where the files live are all implementation details that
  148971. \fBshould be parameterized\fP\&. This separation between a state and the data that
  148972. populates a state creates a reusable formula.
  148973. .sp
  148974. In the example below the data that populates the state can come from anywhere
  148975. \-\- it can be hard\-coded at the top of the state, it can come from an external
  148976. file, it can come from Pillar, it can come from an execution function call, or
  148977. it can come from a database query. The state itself doesn\(aqt change regardless
  148978. of where the data comes from. Production data will vary from development data
  148979. will vary from data from one company to another, however the state itself stays
  148980. the same.
  148981. .INDENT 0.0
  148982. .INDENT 3.5
  148983. .sp
  148984. .nf
  148985. .ft C
  148986. {% set user_list = [
  148987. {\(aqname\(aq: \(aqlarry\(aq, \(aqshell\(aq: \(aqbash\(aq},
  148988. {\(aqname\(aq: \(aqcurly\(aq, \(aqshell\(aq: \(aqbash\(aq},
  148989. {\(aqname\(aq: \(aqmoe\(aq, \(aqshell\(aq: \(aqzsh\(aq},
  148990. ] %}
  148991. {# or #}
  148992. {% set user_list = salt[\(aqpillar.get\(aq](\(aquser_list\(aq) %}
  148993. {# or #}
  148994. {% load_json "default_users.json" as user_list %}
  148995. {# or #}
  148996. {% set user_list = salt[\(aqacme_utils.get_user_list\(aq]() %}
  148997. {% for user in list_list %}
  148998. {{ user.name }}:
  148999. user.present:
  149000. \- name: {{ user.name }}
  149001. \- shell: {{ user.shell }}
  149002. {% endfor %}
  149003. .ft P
  149004. .fi
  149005. .UNINDENT
  149006. .UNINDENT
  149007. .SS Configuration
  149008. .sp
  149009. Formulas should strive to use the defaults of the underlying platform, followed
  149010. by defaults from the upstream project, followed by sane defaults for the
  149011. formula itself.
  149012. .sp
  149013. As an example, a formula to install Apache \fBshould not\fP change the default
  149014. Apache configuration file installed by the OS package. However, the Apache
  149015. formula \fBshould\fP include a state to change or override the default
  149016. configuration file.
  149017. .SS Pillar overrides
  149018. .sp
  149019. Pillar lookups must use the safe \fBget()\fP
  149020. and must provide a default value. Create local variables using the Jinja
  149021. \fBset\fP construct to increase readability and to avoid potentially hundreds or
  149022. thousands of function calls across a large state tree.
  149023. .INDENT 0.0
  149024. .INDENT 3.5
  149025. .sp
  149026. .nf
  149027. .ft C
  149028. {% from "apache/map.jinja" import apache with context %}
  149029. {% set settings = salt[\(aqpillar.get\(aq](\(aqapache\(aq, {}) %}
  149030. mod_status:
  149031. file.managed:
  149032. \- name: {{ apache.conf_dir }}
  149033. \- source: {{ settings.get(\(aqmod_status_conf\(aq, \(aqsalt://apache/mod_status.conf\(aq) }}
  149034. \- template: {{ settings.get(\(aqtemplate_engine\(aq, \(aqjinja\(aq) }}
  149035. .ft P
  149036. .fi
  149037. .UNINDENT
  149038. .UNINDENT
  149039. .sp
  149040. Any default values used in the Formula must also be documented in the
  149041. \fBpillar.example\fP file in the root of the repository. Comments should be
  149042. used liberally to explain the intent of each configuration value. In addition,
  149043. users should be able copy\-and\-paste the contents of this file into their own
  149044. Pillar to make any desired changes.
  149045. .SS Scripting
  149046. .sp
  149047. Remember that both State files and Pillar files can easily call out to Salt
  149048. execution modules and have access to all the system
  149049. grains as well.
  149050. .INDENT 0.0
  149051. .INDENT 3.5
  149052. .sp
  149053. .nf
  149054. .ft C
  149055. {% if \(aq/storage\(aq in salt[\(aqmount.active\(aq]() %}
  149056. /usr/local/etc/myfile.conf:
  149057. file:
  149058. \- symlink
  149059. \- target: /storage/myfile.conf
  149060. {% endif %}
  149061. .ft P
  149062. .fi
  149063. .UNINDENT
  149064. .UNINDENT
  149065. .sp
  149066. Jinja macros to encapsulate logic or conditionals are discouraged in favor of
  149067. writing custom execution modules in Python.
  149068. .SS Repository structure
  149069. .sp
  149070. A basic Formula repository should have the following layout:
  149071. .INDENT 0.0
  149072. .INDENT 3.5
  149073. .sp
  149074. .nf
  149075. .ft C
  149076. foo\-formula
  149077. |\-\- foo/
  149078. | |\-\- map.jinja
  149079. | |\-\- init.sls
  149080. | \(ga\-\- bar.sls
  149081. |\-\- CHANGELOG.rst
  149082. |\-\- LICENSE
  149083. |\-\- pillar.example
  149084. |\-\- README.rst
  149085. \(ga\-\- VERSION
  149086. .ft P
  149087. .fi
  149088. .UNINDENT
  149089. .UNINDENT
  149090. .sp
  149091. \fBSEE ALSO:\fP
  149092. .INDENT 0.0
  149093. .INDENT 3.5
  149094. \fI\%template\-formula\fP
  149095. .sp
  149096. The \fI\%template\-formula\fP repository has a pre\-built layout that
  149097. serves as the basic structure for a new formula repository. Just copy the
  149098. files from there and edit them.
  149099. .UNINDENT
  149100. .UNINDENT
  149101. .SS \fBREADME.rst\fP
  149102. .sp
  149103. The README should detail each available \fB\&.sls\fP file by explaining what it
  149104. does, whether it has any dependencies on other formulas, whether it has a
  149105. target platform, and any other installation or usage instructions or tips.
  149106. .sp
  149107. A sample skeleton for the \fBREADME.rst\fP file:
  149108. .INDENT 0.0
  149109. .INDENT 3.5
  149110. .sp
  149111. .nf
  149112. .ft C
  149113. ===
  149114. foo
  149115. ===
  149116. Install and configure the FOO service.
  149117. **NOTE**
  149118. See the full \(gaSalt Formulas installation and usage instructions
  149119. <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>\(ga_.
  149120. Available states
  149121. ================
  149122. \&.. contents::
  149123. :local:
  149124. \(ga\(gafoo\(ga\(ga
  149125. \-\-\-\-\-\-\-
  149126. Install the \(ga\(gafoo\(ga\(ga package and enable the service.
  149127. \(ga\(gafoo.bar\(ga\(ga
  149128. \-\-\-\-\-\-\-\-\-\-\-
  149129. Install the \(ga\(gabar\(ga\(ga package.
  149130. .ft P
  149131. .fi
  149132. .UNINDENT
  149133. .UNINDENT
  149134. .SS \fBCHANGELOG.rst\fP
  149135. .sp
  149136. The \fBCHANGELOG.rst\fP file should detail the individual versions, their
  149137. release date and a set of bullet points for each version highlighting the
  149138. overall changes in a given version of the formula.
  149139. .sp
  149140. A sample skeleton for the \fICHANGELOG.rst\fP file:
  149141. .sp
  149142. \fBCHANGELOG.rst\fP:
  149143. .INDENT 0.0
  149144. .INDENT 3.5
  149145. .sp
  149146. .nf
  149147. .ft C
  149148. foo formula
  149149. ===========
  149150. 0.0.2 (2013\-01\-01)
  149151. \- Re\-organized formula file layout
  149152. \- Fixed filename used for upstart logger template
  149153. \- Allow for pillar message to have default if none specified
  149154. .ft P
  149155. .fi
  149156. .UNINDENT
  149157. .UNINDENT
  149158. .SS Versioning
  149159. .sp
  149160. Formula are versioned according to Semantic Versioning, \fI\%https://semver.org/\fP\&.
  149161. .sp
  149162. \fBNOTE:\fP
  149163. .INDENT 0.0
  149164. .INDENT 3.5
  149165. Given a version number MAJOR.MINOR.PATCH, increment the:
  149166. .INDENT 0.0
  149167. .IP 1. 3
  149168. MAJOR version when you make incompatible API changes,
  149169. .IP 2. 3
  149170. MINOR version when you add functionality in a backwards\-compatible manner, and
  149171. .IP 3. 3
  149172. PATCH version when you make backwards\-compatible bug fixes.
  149173. .UNINDENT
  149174. .sp
  149175. Additional labels for pre\-release and build metadata are available as extensions
  149176. to the MAJOR.MINOR.PATCH format.
  149177. .UNINDENT
  149178. .UNINDENT
  149179. .sp
  149180. Formula versions are tracked using Git tags as well as the \fBVERSION\fP file
  149181. in the formula repository. The \fBVERSION\fP file should contain the currently
  149182. released version of the particular formula.
  149183. .SS Testing Formulas
  149184. .sp
  149185. A smoke\-test for invalid Jinja, invalid YAML, or an invalid Salt state
  149186. structure can be performed by with the \fBstate.show_sls\fP function:
  149187. .INDENT 0.0
  149188. .INDENT 3.5
  149189. .sp
  149190. .nf
  149191. .ft C
  149192. salt \(aq*\(aq state.show_sls apache
  149193. .ft P
  149194. .fi
  149195. .UNINDENT
  149196. .UNINDENT
  149197. .sp
  149198. Salt Formulas can then be tested by running each \fB\&.sls\fP file via
  149199. \fBstate.apply\fP and checking the output for
  149200. the success or failure of each state in the Formula. This should be done for
  149201. each supported platform.
  149202. .SS SaltStack Packaging Guide
  149203. .sp
  149204. Since Salt provides a powerful toolkit for system management and automation,
  149205. the package can be spit into a number of sub\-tools. While packaging Salt as
  149206. a single package containing all components is perfectly acceptable, the split
  149207. packages should follow this convention.
  149208. .SS Patching Salt For Distributions
  149209. .sp
  149210. The occasion may arise where Salt source and default configurations may need
  149211. to be patched. It is preferable if Salt is only patched to include platform
  149212. specific additions or to fix release time bugs. It is preferable that
  149213. configuration settings and operations remain in the default state, as changes
  149214. here lowers the user experience for users moving across distributions.
  149215. .sp
  149216. In the event where a packager finds a need to change the default configuration
  149217. it is advised to add the files to the master.d or minion.d directories.
  149218. .SS Source Files
  149219. .sp
  149220. Release packages should always be built from the source tarball distributed via
  149221. pypi. Release packages should \fINEVER\fP use a git checkout as the source for
  149222. distribution.
  149223. .SS Single Package
  149224. .sp
  149225. Shipping Salt as a single package, where the minion, master, and all tools are
  149226. together is perfectly acceptable and practiced by distributions such as
  149227. FreeBSD.
  149228. .SS Split Package
  149229. .sp
  149230. Salt Should always be split in a standard way, with standard dependencies, this lowers
  149231. cross distribution confusion about what components are going to be shipped with
  149232. specific packages. These packages can be defined from the Salt Source as of
  149233. Salt 2014.1.0:
  149234. .SS Salt Common
  149235. .sp
  149236. The \fIsalt\-common\fP or \fIsalt\fP package should contain the files provided by the
  149237. salt python package, or all files distributed from the \fBsalt/\fP directory in
  149238. the source distribution packages. The documentation contained under the
  149239. \fBdoc/\fP directory can be a part of this package but splitting out a doc
  149240. package is preferred.
  149241. Since salt\-call is the entry point to utilize the libs and is useful for all
  149242. salt packages it is included in the salt\-common package.
  149243. .SS Name
  149244. .INDENT 0.0
  149245. .IP \(bu 2
  149246. \fIsalt\fP OR \fIsalt\-common\fP
  149247. .UNINDENT
  149248. .SS Files
  149249. .INDENT 0.0
  149250. .IP \(bu 2
  149251. \fIsalt/*\fP
  149252. .IP \(bu 2
  149253. \fIman/salt.7\fP
  149254. .IP \(bu 2
  149255. \fIscripts/salt\-call\fP
  149256. .IP \(bu 2
  149257. \fItests/*\fP
  149258. .IP \(bu 2
  149259. \fIman/salt\-call.1\fP
  149260. .UNINDENT
  149261. .SS Depends
  149262. .INDENT 0.0
  149263. .IP \(bu 2
  149264. \fIPython 2.6\-2.7\fP
  149265. .IP \(bu 2
  149266. \fIPyYAML\fP
  149267. .IP \(bu 2
  149268. \fIJinja2\fP
  149269. .UNINDENT
  149270. .SS Salt Master
  149271. .sp
  149272. The \fIsalt\-master\fP package contains the applicable scripts, related man
  149273. pages and init information for the given platform.
  149274. .SS Name
  149275. .INDENT 0.0
  149276. .IP \(bu 2
  149277. \fIsalt\-master\fP
  149278. .UNINDENT
  149279. .SS Files
  149280. .INDENT 0.0
  149281. .IP \(bu 2
  149282. \fIscripts/salt\-master\fP
  149283. .IP \(bu 2
  149284. \fIscripts/salt\fP
  149285. .IP \(bu 2
  149286. \fIscripts/salt\-run\fP
  149287. .IP \(bu 2
  149288. \fIscripts/salt\-key\fP
  149289. .IP \(bu 2
  149290. \fIscripts/salt\-cp\fP
  149291. .IP \(bu 2
  149292. \fIpkg/<master init data>\fP
  149293. .IP \(bu 2
  149294. \fIman/salt.1\fP
  149295. .IP \(bu 2
  149296. \fIman/salt\-master.1\fP
  149297. .IP \(bu 2
  149298. \fIman/salt\-run.1\fP
  149299. .IP \(bu 2
  149300. \fIman/salt\-key.1\fP
  149301. .IP \(bu 2
  149302. \fIman/salt\-cp.1\fP
  149303. .IP \(bu 2
  149304. \fIconf/master\fP
  149305. .UNINDENT
  149306. .SS Depends
  149307. .INDENT 0.0
  149308. .IP \(bu 2
  149309. \fISalt Common\fP
  149310. .IP \(bu 2
  149311. \fIZeroMQ\fP >= 3.2
  149312. .IP \(bu 2
  149313. \fIPyZMQ\fP >= 2.10
  149314. .IP \(bu 2
  149315. \fIPyCrypto\fP
  149316. .IP \(bu 2
  149317. \fIM2Crypto\fP
  149318. .IP \(bu 2
  149319. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149320. .UNINDENT
  149321. .SS Salt Syndic
  149322. .sp
  149323. The Salt Syndic package can be rolled completely into the Salt Master package.
  149324. Platforms which start services as part of the package deployment need to
  149325. maintain a separate \fIsalt\-syndic\fP package (primarily Debian based platforms).
  149326. .sp
  149327. The Syndic may optionally not depend on the anything more than the Salt Master since
  149328. the master will bring in all needed dependencies, but fall back to the platform
  149329. specific packaging guidelines.
  149330. .SS Name
  149331. .INDENT 0.0
  149332. .IP \(bu 2
  149333. \fIsalt\-syndic\fP
  149334. .UNINDENT
  149335. .SS Files
  149336. .INDENT 0.0
  149337. .IP \(bu 2
  149338. \fIscripts/salt\-syndic\fP
  149339. .IP \(bu 2
  149340. \fIpkg/<syndic init data>\fP
  149341. .IP \(bu 2
  149342. \fIman/salt\-syndic.1\fP
  149343. .UNINDENT
  149344. .SS Depends
  149345. .INDENT 0.0
  149346. .IP \(bu 2
  149347. \fISalt Common\fP
  149348. .IP \(bu 2
  149349. \fISalt Master\fP
  149350. .IP \(bu 2
  149351. \fIZeroMQ\fP >= 3.2
  149352. .IP \(bu 2
  149353. \fIPyZMQ\fP >= 2.10
  149354. .IP \(bu 2
  149355. \fIPyCrypto\fP
  149356. .IP \(bu 2
  149357. \fIM2Crypto\fP
  149358. .IP \(bu 2
  149359. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149360. .UNINDENT
  149361. .SS Salt Minion
  149362. .sp
  149363. The Minion is a standalone package and should not be split beyond the
  149364. \fIsalt\-minion\fP and \fIsalt\-common\fP packages.
  149365. .SS Name
  149366. .INDENT 0.0
  149367. .IP \(bu 2
  149368. \fIsalt\-minion\fP
  149369. .UNINDENT
  149370. .SS Files
  149371. .INDENT 0.0
  149372. .IP \(bu 2
  149373. \fIscripts/salt\-minion\fP
  149374. .IP \(bu 2
  149375. \fIpkg/<minion init data>\fP
  149376. .IP \(bu 2
  149377. \fIman/salt\-minion.1\fP
  149378. .IP \(bu 2
  149379. \fIconf/minion\fP
  149380. .UNINDENT
  149381. .SS Depends
  149382. .INDENT 0.0
  149383. .IP \(bu 2
  149384. \fISalt Common\fP
  149385. .IP \(bu 2
  149386. \fIZeroMQ\fP >= 3.2
  149387. .IP \(bu 2
  149388. \fIPyZMQ\fP >= 2.10
  149389. .IP \(bu 2
  149390. \fIPyCrypto\fP
  149391. .IP \(bu 2
  149392. \fIM2Crypto\fP
  149393. .IP \(bu 2
  149394. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149395. .UNINDENT
  149396. .SS Salt SSH
  149397. .sp
  149398. Since Salt SSH does not require the same dependencies as the minion and master, it
  149399. should be split out.
  149400. .SS Name
  149401. .INDENT 0.0
  149402. .IP \(bu 2
  149403. \fIsalt\-ssh\fP
  149404. .UNINDENT
  149405. .SS Files
  149406. .INDENT 0.0
  149407. .IP \(bu 2
  149408. \fIscripts/salt\-ssh\fP
  149409. .IP \(bu 2
  149410. \fIman/salt\-ssh.1\fP
  149411. .IP \(bu 2
  149412. \fIconf/cloud*\fP
  149413. .UNINDENT
  149414. .SS Depends
  149415. .INDENT 0.0
  149416. .IP \(bu 2
  149417. \fISalt Common\fP
  149418. .IP \(bu 2
  149419. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149420. .UNINDENT
  149421. .SS Salt Cloud
  149422. .sp
  149423. As of Salt 2014.1.0 Salt Cloud is included in the same repo as Salt. This
  149424. can be split out into a separate package or it can be included in the
  149425. salt\-master package.
  149426. .SS Name
  149427. .INDENT 0.0
  149428. .IP \(bu 2
  149429. \fIsalt\-cloud\fP
  149430. .UNINDENT
  149431. .SS Files
  149432. .INDENT 0.0
  149433. .IP \(bu 2
  149434. \fIscripts/salt\-cloud\fP
  149435. .IP \(bu 2
  149436. \fIman/salt\-cloud.1\fP
  149437. .UNINDENT
  149438. .SS Depends
  149439. .INDENT 0.0
  149440. .IP \(bu 2
  149441. \fISalt Common\fP
  149442. .IP \(bu 2
  149443. \fIapache libcloud\fP >= 0.14.0
  149444. .UNINDENT
  149445. .SS Salt Doc
  149446. .sp
  149447. The documentation package is very distribution optional. A completely split
  149448. package will split out the documentation, but some platform conventions do not
  149449. prefer this.
  149450. If the documentation is not split out, it should be included with the
  149451. \fISalt Common\fP package.
  149452. .SS Name
  149453. .INDENT 0.0
  149454. .IP \(bu 2
  149455. \fIsalt\-doc\fP
  149456. .UNINDENT
  149457. .SS Files
  149458. .INDENT 0.0
  149459. .IP \(bu 2
  149460. \fIdoc/*\fP
  149461. .UNINDENT
  149462. .SS Optional Depends
  149463. .INDENT 0.0
  149464. .IP \(bu 2
  149465. \fISalt Common\fP
  149466. .IP \(bu 2
  149467. \fIPython Sphinx\fP
  149468. .IP \(bu 2
  149469. \fIMake\fP
  149470. .UNINDENT
  149471. .SS Salt Release Process
  149472. .sp
  149473. The goal for Salt projects is to cut a new feature release every three to
  149474. four months. This document outlines the process for these releases, and the
  149475. subsequent bug fix releases which follow.
  149476. .SS Feature Release Process
  149477. .sp
  149478. When a new release is ready to be cut, the person responsible for cutting the
  149479. release will follow the following steps (written using the 3000 release as an
  149480. example):
  149481. .INDENT 0.0
  149482. .IP 1. 4
  149483. Create first public draft of release notes with major features.
  149484. .IP 2. 4
  149485. Remove any deprecations for the upcoming release.
  149486. .IP 3. 4
  149487. Ensure all required features are merged.
  149488. .IP 4. 4
  149489. Create issue to start the process of deprecating for the next feature release.
  149490. .IP 5. 4
  149491. Run through a manual test run based off of the head of the feature branch.
  149492. .IP 6. 4
  149493. Update all name references to version number in the docs. For example
  149494. all neon references in the docs needs to be moved to v3000
  149495. .IP 7. 4
  149496. Review the release notes with major features.
  149497. .IP 8. 4
  149498. Generate the new man pages for the release.
  149499. .IP 9. 4
  149500. Create internal RC tag for testing from the head of the master branch.
  149501. .IP 10. 4
  149502. Build latest windows, mac, ubuntu, debian and redhat packages.
  149503. .IP 11. 4
  149504. Run manual and package tests against new RC packages.
  149505. .IP 12. 4
  149506. Push the internal tag live to salt\(aqs repo.
  149507. .IP 13. 4
  149508. Publish release archive to pypi based off tag.
  149509. .IP 14. 4
  149510. Push the RC packages live.
  149511. .IP 15. 4
  149512. Announce new RC to salt\-users and salt\-announce google groups.
  149513. .IP 16. 4
  149514. Triage incoming issues based on the new RC release.
  149515. .IP 17. 4
  149516. Fix RC issues once they are categorized as a release blocker.
  149517. .IP 18. 4
  149518. Depending on the issues found during the RC process make a decesion
  149519. on whether to release based off the RC or go through another RC process
  149520. .IP 19. 4
  149521. If a RC is categorized as stable, build all required packages.
  149522. .IP 20. 4
  149523. Test all release packages.
  149524. .IP 21. 4
  149525. Test links from \fI\%repo.saltstack.com\fP\&.
  149526. .IP 22. 4
  149527. Update installation instructions with new release number at \fI\%repo.saltstack.com\fP\&.
  149528. .IP 23. 4
  149529. Update and build docs to include new version (3000) as the latest.
  149530. .IP 24. 4
  149531. Pre\-announce on salt\-users google group that we are about to update our repo.
  149532. .IP 25. 4
  149533. Publish release (v3000) archive to pypi based off tag.
  149534. .IP 26. 4
  149535. Publish all packages live to repo.
  149536. .IP 27. 4
  149537. Publish the docs.
  149538. .IP 28. 4
  149539. Create release at \fI\%github\fP
  149540. .IP 29. 4
  149541. Update win\-repo\-ng with new salt versions.
  149542. .IP 30. 4
  149543. Announce release is live to irc, salt\-users, salt\-announce and release slack
  149544. community channel.
  149545. .UNINDENT
  149546. .SS Bugfix Releases
  149547. .sp
  149548. Once a feature release branch has been cut from the \fBmaster\fP branch, if
  149549. serious bugs or a CVE is found for the most recent release a bugfix release
  149550. will need to be cut. A temporary branch will be created based off of the previous
  149551. release tag. For example, if it is determined that a 3000.1 release needs to occur
  149552. a 3000.1 branch will be created based off of the v3000 tag. The fixes that need
  149553. to go into 3000.1 will be added and merged into this branch. Here are the steps
  149554. for a bugfix release.
  149555. .INDENT 0.0
  149556. .IP 1. 4
  149557. Ensure all required bug fixes are merged.
  149558. .IP 2. 4
  149559. Create release branch with the version of the release. (ex. 3000.1)
  149560. .IP 3. 4
  149561. Create jenkins jobs that test the new release branch.
  149562. .IP 4. 4
  149563. Run through a manual test run based off of the head of the branch.
  149564. .IP 5. 4
  149565. Generate the new man pages for the release.
  149566. .IP 6. 4
  149567. Create internal tag for testing.(ex v3000.1)
  149568. .IP 7. 4
  149569. Build all release packages.
  149570. .IP 8. 4
  149571. Run manual and package tests against new packages.
  149572. .IP 9. 4
  149573. Update installation instructions with new release number at \fI\%repo.saltstack.com\fP\&.
  149574. .IP 10. 4
  149575. Update and build docs to include new version. (ex. 3000.1)
  149576. .IP 11. 4
  149577. Pre\-announce on salt\-users google groups that we are about to update our repo.
  149578. .IP 12. 4
  149579. Push the internal tag live to salt\(aqs repo.
  149580. .IP 13. 4
  149581. Publish release archive to pypi based off tag.
  149582. .IP 14. 4
  149583. Push the packages live.
  149584. .IP 15. 4
  149585. Publish release (v3000) archive to pypi based off tag.
  149586. .IP 16. 4
  149587. Publish all packages live to repo.
  149588. .IP 17. 4
  149589. Publish the docs.
  149590. .IP 18. 4
  149591. Create release at \fI\%github\fP
  149592. .IP 19. 4
  149593. Update win\-repo\-ng with new salt versions.
  149594. .IP 20. 4
  149595. Announce release is live to irc, salt\-users, salt\-announce and release slack channel.
  149596. .UNINDENT
  149597. .sp
  149598. For more information about the difference between the \fBmaster\fP branch and
  149599. bugfix release branches, please refer to the Which Salt Branch? section of Salt\(aqs Contributing
  149600. documentation.
  149601. .SS Salt Coding Style
  149602. .sp
  149603. To make it easier to contribute and read Salt code, SaltStack has \fI\%adopted
  149604. Black\fP as its code formatter. There are a few places where Black is
  149605. silent, and this guide should be used in those cases.
  149606. .sp
  149607. Coding style is NEVER grounds to reject code contributions, and is never
  149608. grounds to talk down to another member of the community (There are no grounds
  149609. to treat others without respect, especially people working to improve Salt)!
  149610. .SS Linting
  149611. .sp
  149612. Most Salt style conventions are codified in Salt\(aqs \fB\&.testing.pylintrc\fP file.
  149613. Salt\(aqs pylint file has two dependencies: \fI\%pylint\fP and \fI\%saltpylint\fP\&. You can
  149614. install these dependencies with \fBpip\fP:
  149615. .INDENT 0.0
  149616. .INDENT 3.5
  149617. .sp
  149618. .nf
  149619. .ft C
  149620. pip install pylint
  149621. pip install saltpylint
  149622. .ft P
  149623. .fi
  149624. .UNINDENT
  149625. .UNINDENT
  149626. .sp
  149627. The \fB\&.testing.pylintrc\fP file is found in the root of the Salt project and can
  149628. be passed as an argument to the \fI\%pylint\fP program as follows:
  149629. .INDENT 0.0
  149630. .INDENT 3.5
  149631. .sp
  149632. .nf
  149633. .ft C
  149634. pylint \-\-rcfile=/path/to/salt/.testing.pylintrc salt/dir/to/lint
  149635. .ft P
  149636. .fi
  149637. .UNINDENT
  149638. .UNINDENT
  149639. .sp
  149640. \fBNOTE:\fP
  149641. .INDENT 0.0
  149642. .INDENT 3.5
  149643. There are two pylint files in the \fBsalt\fP directory. One is the
  149644. \fB\&.pylintrc\fP file and the other is the \fB\&.testing.pylintrc\fP file. The
  149645. tests that run in Jenkins against GitHub Pull Requests use
  149646. \fB\&.testing.pylintrc\fP\&. The \fBtesting.pylintrc\fP file is a little less
  149647. strict than the \fB\&.pylintrc\fP and is used to make it easier for contributors
  149648. to submit changes. The \fB\&.pylintrc\fP file can be used for linting, but the
  149649. \fBtesting.pylintrc\fP is the source of truth when submitting pull requests.
  149650. .UNINDENT
  149651. .UNINDENT
  149652. .SS Variables
  149653. .sp
  149654. Variables should be a minimum of three characters and should provide an
  149655. easy\-to\-understand name of the object being represented.
  149656. .sp
  149657. When keys and values are iterated over, descriptive names should be used
  149658. to represent the temporary variables.
  149659. .sp
  149660. Multi\-word variables should be separated by an underscore.
  149661. .sp
  149662. Variables which are two\-letter words should have an underscore appended
  149663. to them to pad them to three characters.
  149664. .SS Formatting Strings
  149665. .sp
  149666. All strings which require formatting should use the \fI\&.format\fP string method:
  149667. .INDENT 0.0
  149668. .INDENT 3.5
  149669. .sp
  149670. .nf
  149671. .ft C
  149672. data = "some text"
  149673. more = "{0} and then some".format(data)
  149674. .ft P
  149675. .fi
  149676. .UNINDENT
  149677. .UNINDENT
  149678. .sp
  149679. Make sure to use indices or identifiers in the format brackets, since empty
  149680. brackets are not supported by python 2.6.
  149681. .sp
  149682. Please do NOT use printf formatting.
  149683. .SS Docstring Conventions
  149684. .sp
  149685. When adding a new function or state, where possible try to use a
  149686. \fBversionadded\fP directive to denote when the function, state, or parameter was added.
  149687. .INDENT 0.0
  149688. .INDENT 3.5
  149689. .sp
  149690. .nf
  149691. .ft C
  149692. def new_func(msg=""):
  149693. """
  149694. .. versionadded:: 0.16.0
  149695. Prints what was passed to the function.
  149696. msg : None
  149697. The string to be printed.
  149698. """
  149699. print(msg)
  149700. .ft P
  149701. .fi
  149702. .UNINDENT
  149703. .UNINDENT
  149704. .sp
  149705. If you are uncertain what version should be used, either consult a core
  149706. developer in IRC or bring this up when opening your pull request and a core developer will let you know what
  149707. version to add. Typically this will be the next element in the \fI\%periodic table\fP\&.
  149708. .sp
  149709. Similar to the above, when an existing function or state is modified (for
  149710. example, when an argument is added), then under the explanation of that new
  149711. argument a \fBversionadded\fP directive should be used to note the version in
  149712. which the new argument was added. If an argument\(aqs function changes
  149713. significantly, the \fBversionchanged\fP directive can be used to clarify this:
  149714. .INDENT 0.0
  149715. .INDENT 3.5
  149716. .sp
  149717. .nf
  149718. .ft C
  149719. def new_func(msg="", signature=""):
  149720. """
  149721. .. versionadded:: 0.16.0
  149722. Prints what was passed to the function.
  149723. msg : None
  149724. The string to be printed. Will be prepended with \(aqGreetings! \(aq.
  149725. .. versionchanged:: 0.17.1
  149726. signature : None
  149727. An optional signature.
  149728. .. versionadded 0.17.0
  149729. """
  149730. print("Greetings! {0}\en\en{1}".format(msg, signature))
  149731. .ft P
  149732. .fi
  149733. .UNINDENT
  149734. .UNINDENT
  149735. .SS Dictionaries
  149736. .sp
  149737. Dictionaries should be initialized using \fI{}\fP instead of \fIdict()\fP\&.
  149738. .sp
  149739. See \fI\%here\fP for an in\-depth discussion of this topic.
  149740. .SS Imports
  149741. .sp
  149742. Salt code prefers importing modules and not explicit functions. This is both a
  149743. style and functional preference. The functional preference originates around
  149744. the fact that the module import system used by pluggable modules will include
  149745. callable objects (functions) that exist in the direct module namespace. This
  149746. is not only messy, but may unintentionally expose code python libs to the Salt
  149747. interface and pose a security problem.
  149748. .sp
  149749. To say this more directly with an example, this is \fIGOOD\fP:
  149750. .INDENT 0.0
  149751. .INDENT 3.5
  149752. .sp
  149753. .nf
  149754. .ft C
  149755. import os
  149756. def minion_path():
  149757. path = os.path.join(self.opts["cachedir"], "minions")
  149758. return path
  149759. .ft P
  149760. .fi
  149761. .UNINDENT
  149762. .UNINDENT
  149763. .sp
  149764. This on the other hand is \fIDISCOURAGED\fP:
  149765. .INDENT 0.0
  149766. .INDENT 3.5
  149767. .sp
  149768. .nf
  149769. .ft C
  149770. from os.path import join
  149771. def minion_path():
  149772. path = join(self.opts["cachedir"], "minions")
  149773. return path
  149774. .ft P
  149775. .fi
  149776. .UNINDENT
  149777. .UNINDENT
  149778. .sp
  149779. The time when this is changed is for importing exceptions, generally directly
  149780. importing exceptions is preferred:
  149781. .sp
  149782. This is a good way to import exceptions:
  149783. .INDENT 0.0
  149784. .INDENT 3.5
  149785. .sp
  149786. .nf
  149787. .ft C
  149788. from salt.exceptions import CommandExecutionError
  149789. .ft P
  149790. .fi
  149791. .UNINDENT
  149792. .UNINDENT
  149793. .SS Absolute Imports
  149794. .sp
  149795. Although \fI\%absolute imports\fP seems like an awesome idea, please do not use it.
  149796. Extra care would be necessary all over salt\(aqs code in order for absolute
  149797. imports to work as supposed. Believe it, it has been tried before and, as a
  149798. tried example, by renaming \fBsalt.modules.sysmod\fP to \fBsalt.modules.sys\fP, all
  149799. other salt modules which needed to import \fBsys\fP would have to
  149800. also import \fBabsolute_import\fP, which should be
  149801. avoided.
  149802. .sp
  149803. \fBNOTE:\fP
  149804. .INDENT 0.0
  149805. .INDENT 3.5
  149806. An exception to this rule is the \fBabsolute_import\fP from \fB__future__\fP at
  149807. the top of each file within the Salt project. This import is necessary for
  149808. Py3 compatibility. This particular import looks like this:
  149809. .INDENT 0.0
  149810. .INDENT 3.5
  149811. .sp
  149812. .nf
  149813. .ft C
  149814. from __future__ import absolute_import
  149815. .ft P
  149816. .fi
  149817. .UNINDENT
  149818. .UNINDENT
  149819. .sp
  149820. This import is required for all new Salt files and is a good idea to add to
  149821. any custom states or modules. However, the practice of avoiding absolute
  149822. imports still applies to all other cases as to avoid a name conflict.
  149823. .UNINDENT
  149824. .UNINDENT
  149825. .SS Code Churn
  149826. .sp
  149827. Many pull requests have been submitted that only churn code in the name of
  149828. PEP 8. Code churn is a leading source of bugs and is \fBstrongly discouraged\fP\&.
  149829. While style fixes are encouraged they should be isolated to a single file per
  149830. commit, and the changes should be legitimate, if there are any questions about
  149831. whether a style change is legitimate please reference this document and the
  149832. official PEP 8 (\fI\%https://legacy.python.org/dev/peps/pep\-0008/\fP) document before
  149833. changing code. Many claims that a change is PEP 8 have been invalid, please
  149834. double check before committing fixes.
  149835. .SS Salt code and internals
  149836. .sp
  149837. Reference documentation on Salt\(aqs internal code.
  149838. .SS Contents
  149839. .SS salt.aggregation
  149840. .SS Exceptions
  149841. .sp
  149842. Salt\-specific exceptions should be thrown as often as possible so the various
  149843. interfaces to Salt (CLI, API, etc) can handle those errors appropriately and
  149844. display error messages appropriately.
  149845. .TS
  149846. center;
  149847. |l|l|.
  149848. _
  149849. T{
  149850. \fBsalt.exceptions\fP
  149851. T} T{
  149852. This module is a central location for all salt exceptions
  149853. T}
  149854. _
  149855. .TE
  149856. .SS salt.exceptions
  149857. .sp
  149858. This module is a central location for all salt exceptions
  149859. .INDENT 0.0
  149860. .TP
  149861. .B exception salt.exceptions.ArgumentValueError(message=u\(aq\(aq, info=None)
  149862. Used when an invalid argument was passed to a command execution
  149863. .UNINDENT
  149864. .INDENT 0.0
  149865. .TP
  149866. .B exception salt.exceptions.AuthenticationError(message=u\(aq\(aq)
  149867. If sha256 signature fails during decryption
  149868. .UNINDENT
  149869. .INDENT 0.0
  149870. .TP
  149871. .B exception salt.exceptions.AuthorizationError(message=u\(aq\(aq)
  149872. Thrown when runner or wheel execution fails due to permissions
  149873. .UNINDENT
  149874. .INDENT 0.0
  149875. .TP
  149876. .B exception salt.exceptions.CheckError(message=u\(aq\(aq, info=None)
  149877. Used when a check fails
  149878. .UNINDENT
  149879. .INDENT 0.0
  149880. .TP
  149881. .B exception salt.exceptions.CommandExecutionError(message=u\(aq\(aq, info=None)
  149882. Used when a module runs a command which returns an error and wants
  149883. to show the user the output gracefully instead of dying
  149884. .UNINDENT
  149885. .INDENT 0.0
  149886. .TP
  149887. .B exception salt.exceptions.CommandNotFoundError(message=u\(aq\(aq)
  149888. Used in modules or grains when a required binary is not available
  149889. .UNINDENT
  149890. .INDENT 0.0
  149891. .TP
  149892. .B exception salt.exceptions.EauthAuthenticationError(message=u\(aq\(aq)
  149893. Thrown when eauth authentication fails
  149894. .UNINDENT
  149895. .INDENT 0.0
  149896. .TP
  149897. .B exception salt.exceptions.FileLockError(message, time_start=None, *args, **kwargs)
  149898. Used when an error occurs obtaining a file lock
  149899. .UNINDENT
  149900. .INDENT 0.0
  149901. .TP
  149902. .B exception salt.exceptions.FileserverConfigError(message=u\(aq\(aq)
  149903. Used when invalid fileserver settings are detected
  149904. .UNINDENT
  149905. .INDENT 0.0
  149906. .TP
  149907. .B exception salt.exceptions.GitLockError(errno, message, *args, **kwargs)
  149908. Raised when an uncaught error occurs in the midst of obtaining an
  149909. update/checkout lock in salt.utils.gitfs.
  149910. .sp
  149911. NOTE: While this uses the errno param similar to an OSError, this exception
  149912. class is \fInot\fP as subclass of OSError. This is done intentionally, so that
  149913. this exception class can be caught in a try/except without being caught as
  149914. an OSError.
  149915. .UNINDENT
  149916. .INDENT 0.0
  149917. .TP
  149918. .B exception salt.exceptions.GitRemoteError(message=u\(aq\(aq)
  149919. Used by GitFS to denote a problem with the existence of the "origin" remote
  149920. or part of its configuration
  149921. .UNINDENT
  149922. .INDENT 0.0
  149923. .TP
  149924. .B exception salt.exceptions.InvalidConfigError(message=u\(aq\(aq, info=None)
  149925. Used when the config is invalid
  149926. .UNINDENT
  149927. .INDENT 0.0
  149928. .TP
  149929. .B exception salt.exceptions.InvalidEntityError(message=u\(aq\(aq, info=None)
  149930. Used when an entity fails validation
  149931. .UNINDENT
  149932. .INDENT 0.0
  149933. .TP
  149934. .B exception salt.exceptions.LoaderError(message=u\(aq\(aq)
  149935. Problems loading the right renderer
  149936. .UNINDENT
  149937. .INDENT 0.0
  149938. .TP
  149939. .B exception salt.exceptions.LoggingRuntimeError
  149940. Raised when we encounter an error while logging
  149941. .UNINDENT
  149942. .INDENT 0.0
  149943. .TP
  149944. .B exception salt.exceptions.MasterExit
  149945. Rise when the master exits
  149946. .UNINDENT
  149947. .INDENT 0.0
  149948. .TP
  149949. .B exception salt.exceptions.MinionError(message=u\(aq\(aq)
  149950. Minion problems reading uris such as salt:// or http://
  149951. .UNINDENT
  149952. .INDENT 0.0
  149953. .TP
  149954. .B exception salt.exceptions.MissingSmb(message=u\(aq\(aq)
  149955. Raised when no smb library is found.
  149956. .UNINDENT
  149957. .INDENT 0.0
  149958. .TP
  149959. .B exception salt.exceptions.NotImplemented(message=u\(aq\(aq)
  149960. Used when a module runs a command which returns an error and wants
  149961. to show the user the output gracefully instead of dying
  149962. .UNINDENT
  149963. .INDENT 0.0
  149964. .TP
  149965. .B exception salt.exceptions.NxosCliError(message=u\(aq\(aq)
  149966. NX\-OS Cli Error raised when Cli command rejected by the NX\-OS device
  149967. .UNINDENT
  149968. .INDENT 0.0
  149969. .TP
  149970. .B exception salt.exceptions.NxosClientError(message=u\(aq\(aq)
  149971. NX\-OS Client Error raised for problems connecting to the NX\-OS device
  149972. .UNINDENT
  149973. .INDENT 0.0
  149974. .TP
  149975. .B exception salt.exceptions.NxosError(message=u\(aq\(aq)
  149976. NX\-OS Base Exception class
  149977. .UNINDENT
  149978. .INDENT 0.0
  149979. .TP
  149980. .B exception salt.exceptions.NxosRequestNotSupported(message=u\(aq\(aq)
  149981. Raised for unsupported client requests
  149982. .UNINDENT
  149983. .INDENT 0.0
  149984. .TP
  149985. .B exception salt.exceptions.PkgParseError(message=u\(aq\(aq)
  149986. Used when of the pkg modules cannot correctly parse the output from
  149987. the CLI tool (pacman, yum, apt, aptitude, etc)
  149988. .UNINDENT
  149989. .INDENT 0.0
  149990. .TP
  149991. .B exception salt.exceptions.PublishError(message=u\(aq\(aq)
  149992. Problems encountered when trying to publish a command
  149993. .UNINDENT
  149994. .INDENT 0.0
  149995. .TP
  149996. .B exception salt.exceptions.SaltCacheError(message=u\(aq\(aq)
  149997. Thrown when a problem was encountered trying to read or write from the salt cache
  149998. .UNINDENT
  149999. .INDENT 0.0
  150000. .TP
  150001. .B exception salt.exceptions.SaltClientError(message=u\(aq\(aq)
  150002. Problem reading the master root key
  150003. .UNINDENT
  150004. .INDENT 0.0
  150005. .TP
  150006. .B exception salt.exceptions.SaltClientTimeout(message, jid=None, *args, **kwargs)
  150007. Thrown when a job sent through one of the Client interfaces times out
  150008. .sp
  150009. Takes the \fBjid\fP as a parameter
  150010. .UNINDENT
  150011. .INDENT 0.0
  150012. .TP
  150013. .B exception salt.exceptions.SaltCloudConfigError(message=u\(aq\(aq)
  150014. Raised when a configuration setting is not found and should exist.
  150015. .UNINDENT
  150016. .INDENT 0.0
  150017. .TP
  150018. .B exception salt.exceptions.SaltCloudException(message=u\(aq\(aq)
  150019. Generic Salt Cloud Exception
  150020. .UNINDENT
  150021. .INDENT 0.0
  150022. .TP
  150023. .B exception salt.exceptions.SaltCloudExecutionFailure(message=u\(aq\(aq)
  150024. Raised when too much failures have occurred while querying/waiting for data.
  150025. .UNINDENT
  150026. .INDENT 0.0
  150027. .TP
  150028. .B exception salt.exceptions.SaltCloudExecutionTimeout(message=u\(aq\(aq)
  150029. Raised when too much time has passed while querying/waiting for data.
  150030. .UNINDENT
  150031. .INDENT 0.0
  150032. .TP
  150033. .B exception salt.exceptions.SaltCloudNotFound(message=u\(aq\(aq)
  150034. Raised when some cloud provider function cannot find what\(aqs being searched.
  150035. .UNINDENT
  150036. .INDENT 0.0
  150037. .TP
  150038. .B exception salt.exceptions.SaltCloudPasswordError(message=u\(aq\(aq)
  150039. Raise when virtual terminal password input failed
  150040. .UNINDENT
  150041. .INDENT 0.0
  150042. .TP
  150043. .B exception salt.exceptions.SaltCloudSystemExit(message, exit_code=1)
  150044. This exception is raised when the execution should be stopped.
  150045. .UNINDENT
  150046. .INDENT 0.0
  150047. .TP
  150048. .B exception salt.exceptions.SaltConfigurationError(message=u\(aq\(aq)
  150049. Configuration error
  150050. .UNINDENT
  150051. .INDENT 0.0
  150052. .TP
  150053. .B exception salt.exceptions.SaltDaemonNotRunning(message=u\(aq\(aq)
  150054. Throw when a running master/minion/syndic is not running but is needed to
  150055. perform the requested operation (e.g., eauth).
  150056. .UNINDENT
  150057. .INDENT 0.0
  150058. .TP
  150059. .B exception salt.exceptions.SaltDeserializationError(message=u\(aq\(aq)
  150060. Thrown when salt cannot deserialize data.
  150061. .UNINDENT
  150062. .INDENT 0.0
  150063. .TP
  150064. .B exception salt.exceptions.SaltException(message=u\(aq\(aq)
  150065. Base exception class; all Salt\-specific exceptions should subclass this
  150066. .INDENT 7.0
  150067. .TP
  150068. .B pack()
  150069. Pack this exception into a serializable dictionary that is safe for
  150070. transport via msgpack
  150071. .UNINDENT
  150072. .UNINDENT
  150073. .INDENT 0.0
  150074. .TP
  150075. .B exception salt.exceptions.SaltInvocationError(message=u\(aq\(aq)
  150076. Used when the wrong number of arguments are sent to modules or invalid
  150077. arguments are specified on the command line
  150078. .UNINDENT
  150079. .INDENT 0.0
  150080. .TP
  150081. .B exception salt.exceptions.SaltMasterError(message=u\(aq\(aq)
  150082. Problem reading the master root key
  150083. .UNINDENT
  150084. .INDENT 0.0
  150085. .TP
  150086. .B exception salt.exceptions.SaltMasterUnresolvableError(message=u\(aq\(aq)
  150087. Problem resolving the name of the Salt master
  150088. .UNINDENT
  150089. .INDENT 0.0
  150090. .TP
  150091. .B exception salt.exceptions.SaltNoMinionsFound(message=u\(aq\(aq)
  150092. An attempt to retrieve a list of minions failed
  150093. .UNINDENT
  150094. .INDENT 0.0
  150095. .TP
  150096. .B exception salt.exceptions.SaltRenderError(message, line_num=None, buf=u\(aq\(aq, marker=u\(aq <======================\(aq, trace=None)
  150097. Used when a renderer needs to raise an explicit error. If a line number and
  150098. buffer string are passed, get_context will be invoked to get the location
  150099. of the error.
  150100. .UNINDENT
  150101. .INDENT 0.0
  150102. .TP
  150103. .B exception salt.exceptions.SaltReqTimeoutError(message=u\(aq\(aq)
  150104. Thrown when a salt master request call fails to return within the timeout
  150105. .UNINDENT
  150106. .INDENT 0.0
  150107. .TP
  150108. .B exception salt.exceptions.SaltRunnerError(message=u\(aq\(aq)
  150109. Problem in runner
  150110. .UNINDENT
  150111. .INDENT 0.0
  150112. .TP
  150113. .B exception salt.exceptions.SaltSyndicMasterError(message=u\(aq\(aq)
  150114. Problem while proxying a request in the syndication master
  150115. .UNINDENT
  150116. .INDENT 0.0
  150117. .TP
  150118. .B exception salt.exceptions.SaltSystemExit(code=0, msg=None)
  150119. This exception is raised when an unsolvable problem is found. There\(aqs
  150120. nothing else to do, salt should just exit.
  150121. .UNINDENT
  150122. .INDENT 0.0
  150123. .TP
  150124. .B exception salt.exceptions.SaltWheelError(message=u\(aq\(aq)
  150125. Problem in wheel
  150126. .UNINDENT
  150127. .INDENT 0.0
  150128. .TP
  150129. .B exception salt.exceptions.TemplateError(message=u\(aq\(aq)
  150130. Used when a custom error is triggered in a template
  150131. .UNINDENT
  150132. .INDENT 0.0
  150133. .TP
  150134. .B exception salt.exceptions.TimedProcTimeoutError(message=u\(aq\(aq)
  150135. Thrown when a timed subprocess does not terminate within the timeout,
  150136. or if the specified timeout is not an int or a float
  150137. .UNINDENT
  150138. .INDENT 0.0
  150139. .TP
  150140. .B exception salt.exceptions.TimeoutError(message=u\(aq\(aq)
  150141. Thrown when an opration cannot be completet within a given time limit.
  150142. .UNINDENT
  150143. .INDENT 0.0
  150144. .TP
  150145. .B exception salt.exceptions.TokenAuthenticationError(message=u\(aq\(aq)
  150146. Thrown when token authentication fails
  150147. .UNINDENT
  150148. .INDENT 0.0
  150149. .TP
  150150. .B exception salt.exceptions.VMwareApiError(message=u\(aq\(aq, info=None)
  150151. Used when representing a generic VMware API error
  150152. .UNINDENT
  150153. .INDENT 0.0
  150154. .TP
  150155. .B exception salt.exceptions.VMwareConnectionError(message=u\(aq\(aq, info=None)
  150156. Used when the client fails to connect to a either a VMware vCenter server or
  150157. to a ESXi host
  150158. .UNINDENT
  150159. .INDENT 0.0
  150160. .TP
  150161. .B exception salt.exceptions.VMwareFileNotFoundError(message=u\(aq\(aq, info=None)
  150162. Used when representing a generic VMware error if a file not found
  150163. .UNINDENT
  150164. .INDENT 0.0
  150165. .TP
  150166. .B exception salt.exceptions.VMwareMultipleObjectsError(message=u\(aq\(aq, info=None)
  150167. Used when multiple objects were retrieved (and one was expected)
  150168. .UNINDENT
  150169. .INDENT 0.0
  150170. .TP
  150171. .B exception salt.exceptions.VMwareNotFoundError(message=u\(aq\(aq, info=None)
  150172. Used when a VMware object was not found
  150173. .UNINDENT
  150174. .INDENT 0.0
  150175. .TP
  150176. .B exception salt.exceptions.VMwareObjectExistsError(message=u\(aq\(aq, info=None)
  150177. Used when a VMware object already exists
  150178. .UNINDENT
  150179. .INDENT 0.0
  150180. .TP
  150181. .B exception salt.exceptions.VMwareObjectNotFoundError(message=u\(aq\(aq, info=None)
  150182. Used when a VMware object was not found
  150183. .UNINDENT
  150184. .INDENT 0.0
  150185. .TP
  150186. .B exception salt.exceptions.VMwareObjectRetrievalError(message=u\(aq\(aq, info=None)
  150187. Used when a VMware object cannot be retrieved
  150188. .UNINDENT
  150189. .INDENT 0.0
  150190. .TP
  150191. .B exception salt.exceptions.VMwarePowerOnError(message=u\(aq\(aq, info=None)
  150192. Used when error occurred during power on
  150193. .UNINDENT
  150194. .INDENT 0.0
  150195. .TP
  150196. .B exception salt.exceptions.VMwareRuntimeError(message=u\(aq\(aq, info=None)
  150197. Used when a runtime error is encountered when communicating with the
  150198. vCenter
  150199. .UNINDENT
  150200. .INDENT 0.0
  150201. .TP
  150202. .B exception salt.exceptions.VMwareSaltError(message=u\(aq\(aq, info=None)
  150203. Used when a VMware object cannot be retrieved
  150204. .UNINDENT
  150205. .INDENT 0.0
  150206. .TP
  150207. .B exception salt.exceptions.VMwareSystemError(message=u\(aq\(aq, info=None)
  150208. Used when representing a generic VMware system error
  150209. .UNINDENT
  150210. .INDENT 0.0
  150211. .TP
  150212. .B exception salt.exceptions.VMwareVmCreationError(message=u\(aq\(aq, info=None)
  150213. Used when a configuration parameter is incorrect
  150214. .UNINDENT
  150215. .INDENT 0.0
  150216. .TP
  150217. .B exception salt.exceptions.VMwareVmRegisterError(message=u\(aq\(aq, info=None)
  150218. Used when a configuration parameter is incorrect
  150219. .UNINDENT
  150220. .INDENT 0.0
  150221. .TP
  150222. .B salt.exceptions.get_error_message(error)
  150223. Get human readable message from Python Exception
  150224. .UNINDENT
  150225. .SS The Salt Fileserver and Client
  150226. .SS Introduction
  150227. .sp
  150228. Salt has a modular fileserver, and multiple client classes which are used to
  150229. interact with it. This page serves as a developer\(aqs reference, to help explain
  150230. how the fileserver and clients both work.
  150231. .SS Fileserver
  150232. .sp
  150233. The fileserver is not a daemon, so the fileserver and client are not a true
  150234. server and client in the traditional sense. Instead, the fileserver is simply a
  150235. class (\fBsalt.fileserver.Fileserver\fP), located in
  150236. \fI\%salt/fileserver/__init__.py\fP\&. This class has access to the configured
  150237. fileserver backends via a loader instance, referenced as \fBself.servers\fP\&. When
  150238. a request comes in from the fileclient, it will ultimately result in a
  150239. \fBFileserver\fP class function being run.
  150240. .sp
  150241. The functions in this class will run corresponding functions in the configured
  150242. fileserver backends to perform the requested action. So, in summary:
  150243. .INDENT 0.0
  150244. .IP 1. 3
  150245. A fileclient class makes a request...
  150246. .IP 2. 3
  150247. which triggers the fileserver to run a function...
  150248. .IP 3. 3
  150249. which runs a named function in each of the configured backends.
  150250. .UNINDENT
  150251. .sp
  150252. Not all of the functions will always execute on every configured backend. For
  150253. instance, the \fBfind_file\fP function in the fileserver will stop when it finds
  150254. a match, so if it finds a match for the desired path in the first configured
  150255. backend, it won\(aqt proceed and try to find the file in the next backend in the
  150256. list.
  150257. .sp
  150258. Additionally, not all backends implement all functions in the
  150259. \fBsalt.fileserver.Fileserver\fP class. For instance, there is a function called
  150260. \fBupdate\fP, which exists to update remote fileservers such as the \fBgit\fP,
  150261. \fBhg\fP, and \fBsvn\fP backends. This action has no use however in the \fBroots\fP
  150262. backend, so it is simply not implemented there, and thus the \fBroots\fP backend
  150263. will be skipped if the \fBupdate\fP function is run on the fileserver.
  150264. .sp
  150265. Backends for the fileserver are located in \fI\%salt/fileserver/\fP (the files not
  150266. named \fB__init__.py\fP).
  150267. .SS Fileclient
  150268. .sp
  150269. There are three fileclient classes:
  150270. .SS salt.fileclient.RemoteClient
  150271. .sp
  150272. This client is used when \fBfile_client\fP is set to \fBremote\fP\&. This
  150273. is how minions request files from the master.
  150274. .sp
  150275. Functions in this client will craft a payload and send it to the master via the
  150276. transport channel. This is the same way that the minion asks the minion to do
  150277. other things, such as updating and requesting data from the mine. The payload
  150278. will be a dictionary with a key called \fBcmd\fP, and other values as needed.
  150279. .sp
  150280. Payloads sent via the transport channel are processed my an MWorker instance on
  150281. the master, and the MWorker\(aqs \fB_handle_aes()\fP function will execute the
  150282. command. The command will be a function attribute of the
  150283. \fBsalt.master.AESFuncs\fP class. The AESFuncs class\(aq \fB__setup_fileserver()\fP
  150284. function instantiates a \fBsalt.fileserver.Fileserver\fP instance and maps its
  150285. member functions to AESFuncs attributes. This is what makes the fileserver
  150286. functions available remotely. The result of the function is returned back
  150287. through the transport channel to the minion.
  150288. .sp
  150289. Transporting files is done in chunks, the size of which is decided by the
  150290. \fBfile_buffer_size\fP config option. If you look at the \fBserve_file()\fP
  150291. function in any of the fileserver backends, you can see how the \fBloc\fP value
  150292. in the payload determines the offset so that an intermediate chunk of the file
  150293. can be served. The RemoteClient\(aqs \fBget_file()\fP function will loop until the
  150294. end of the file is reached, retrieving one chunk at a time.
  150295. .SS salt.fileclient.FSClient
  150296. .sp
  150297. This client is used when \fBfile_client\fP is set to \fBlocal\fP\&. This
  150298. is how masterless minions request files.
  150299. .sp
  150300. This class inherits from the RemoteClient, but instead of using a transport
  150301. channel (zmq, tcp, etc.), it uses a "fake" transport channel
  150302. (\fBsalt.fileserver.FSChan\fP), which implements its own \fBsend()\fP function.
  150303. Thus, when a function that the FSClient inherits from the RemoteClient runs
  150304. \fBself.channel.send()\fP, it\(aqs actually calling
  150305. \fBsalt.fileserver.FSChan.send()\fP, which calls corresponding functions in the
  150306. \fBsalt.fileserver.Fileserver()\fP class. The result is that local file requests
  150307. use the same code as remote file requests, they just bypass sending them
  150308. through an actual transport channel and instead call them on the FSChan\(aqs
  150309. Fileserver instance.
  150310. .SS salt.fileclient.LocalClient
  150311. .sp
  150312. This client is now used exclusively by Pillar. This used to be used when
  150313. \fBfile_client\fP was set to \fBlocal\fP, but the \fBFSChan\fP class was
  150314. written to allow minions with \fBfile_client: local\fP to access the full set of
  150315. backends. This class will probably be renamed at some point as it is often
  150316. confused with \fBsalt.client.LocalClient\fP\&.
  150317. .SS The \fBcp\fP Module
  150318. .sp
  150319. Most of the user\-facing interaction with the fileclient happens via the
  150320. \fBcp\fP module. The functions in this module instantiate a
  150321. fileclient instance (if one is not already saved to the \fB__context__\fP
  150322. dunder) and run fileclient functions.
  150323. .SS Updating the Fileserver
  150324. .sp
  150325. The master daemon spawns a process dedicated to routine maintenance tasks upon
  150326. startup. This process runs an instance of \fBsalt.master.Maintenance\fP, which
  150327. loops forever, running a series of functions and then sleeping for a length of
  150328. time determined by the \fBloop_interval\fP config option. One of the
  150329. maintenance tasks is to update the fileserver, and it essentially runs
  150330. \fBsalt.fileserver.Fileserver.update()\fP, which as we know from above will run
  150331. all configured backends\(aq \fBupdate()\fP functions, if present. This is now remote
  150332. fileservers like \fBgit\fP, \fBhg\fP, and \fBsvn\fP stay up\-to\-date.
  150333. .sp
  150334. For the local file_client (FSClient), since it does not interact with the
  150335. master, upon spawning of its FSChan it will update the fileserver.
  150336. .SS Salt opts dictionary
  150337. .sp
  150338. It is very common in the Salt codebase to see \fIopts\fP referred to in a number of
  150339. contexts.
  150340. .sp
  150341. For example, it can be seen as \fI__opts__\fP in certain cases, or simply as \fIopts\fP
  150342. as an argument to a function in others.
  150343. .sp
  150344. Simply put, this data structure is a dictionary of Salt\(aqs runtime configuration
  150345. information that\(aqs passed around in order for functions to know how Salt is configured.
  150346. .sp
  150347. When writing Python code to use specific parts of Salt, it may become necessary
  150348. to initialize a copy of \fIopts\fP from scratch in order to have it available for a
  150349. given function.
  150350. .sp
  150351. To do so, use the utility functions available in \fIsalt.config\fP\&.
  150352. .sp
  150353. As an example, here is how one might generate and print an options dictionary
  150354. for a minion instance:
  150355. .INDENT 0.0
  150356. .INDENT 3.5
  150357. .sp
  150358. .nf
  150359. .ft C
  150360. import salt.config
  150361. opts = salt.config.minion_config("/etc/salt/minion")
  150362. print(opts)
  150363. .ft P
  150364. .fi
  150365. .UNINDENT
  150366. .UNINDENT
  150367. .sp
  150368. To generate and display \fIopts\fP for a master, the process is similar:
  150369. .INDENT 0.0
  150370. .INDENT 3.5
  150371. .sp
  150372. .nf
  150373. .ft C
  150374. import salt.config
  150375. opts = salt.config.master_config("/etc/salt/master")
  150376. print(opts)
  150377. .ft P
  150378. .fi
  150379. .UNINDENT
  150380. .UNINDENT
  150381. .SS Unicode in Salt
  150382. .sp
  150383. Though Unicode handling in large projects can often be complex, Salt adheres to
  150384. several basic rules to help developers handle Unicode correctly.
  150385. .sp
  150386. (For a basic introduction to this problem, see Ned Batchelder\(aqs
  150387. \fIexcellent intoroduction to the topic <http://nedbatchelder.com/text/unipain/unipain.html>\fP\&.
  150388. .sp
  150389. Salt\(aqs basic workflow for Unicode handling is as follows:
  150390. .INDENT 0.0
  150391. .IP 1. 3
  150392. Salt should convert whatever data is passed on CLI/API to Unicode.
  150393. Internally, everything that Salt does should be Unicode unless it is
  150394. printing to the screen or writing to storage.
  150395. .IP 2. 3
  150396. Modules and various Salt pluggable systems use incoming data assuming Unicode.
  150397. .INDENT 3.0
  150398. .TP
  150399. .B 2.1) For Salt modules that query an API; the module should convert the data
  150400. received from the API into Unicode.
  150401. .TP
  150402. .B 2.2) For Salt modules that shell out to get output; the module should
  150403. convert data received into Unicode. (This does not apply if using the
  150404. \fBcmd\fP execution module, which should handle
  150405. this for you.
  150406. .TP
  150407. .B 2.3) For Salt modules which print directly to the console (not via an
  150408. outputter) or which write directly to disk, a string should be encoded
  150409. when appropriate. To handle this conversion, the global variable
  150410. \fB__salt_system_encoding__\fP is available, which declares the locale of
  150411. the system that Salt is running on.
  150412. .UNINDENT
  150413. .IP 3. 3
  150414. When a function in a Salt module returns a string, it should return a
  150415. \fBunicode\fP type in Python 2.
  150416. .IP 4. 3
  150417. When Salt delivers the data to an outputter or a returner, it is the job of
  150418. the outputter or returner to encode the Unicode before displaying it on the
  150419. console or writing it to storage.
  150420. .UNINDENT
  150421. .SS Salt Community Projects
  150422. .sp
  150423. This page contains links to Salt\-related projects created by community members.
  150424. If you come across a useful project please add it to the list!
  150425. .SS Hubblestack
  150426. .sp
  150427. Hubble is a modular, open\-source security compliance framework built on top of
  150428. SaltStack. The project provides on\-demand profile\-based auditing, real\-time
  150429. security event notifications, automated remediation, alerting and reporting.
  150430. .sp
  150431. \fI\%https://hubblestack.io/\fP
  150432. .SS alkali
  150433. .sp
  150434. alkali is a collections of SaltStack states and pillar data that provide just
  150435. the basics for provisioning Linux instances that may be built upon. alkali is
  150436. a starter kit of sorts, to help new users to SaltStack get up\-and\-running
  150437. quickly with the most commonly used, core packages.
  150438. .sp
  150439. \fI\%https://github.com/zulily/alkali\fP
  150440. .SS buoyant
  150441. .sp
  150442. buoyant leverages docker to provide an alternative to VM\-centric SaltStack
  150443. development environments. buoyant containers may be spun up nearly instantly,
  150444. once an initial docker image has been built.
  150445. .sp
  150446. \fI\%https://github.com/zulily/buoyant\fP
  150447. .SS Salt Sandbox
  150448. .sp
  150449. Salt Sandbox is a multi\-VM Vagrant\-based Salt development environment used
  150450. for creating and testing new Salt state modules outside of your production
  150451. environment. It\(aqs also a great way to learn firsthand about Salt and its
  150452. remote execution capabilities.
  150453. .sp
  150454. \fI\%https://github.com/elasticdog/salt\-sandbox\fP
  150455. .SS Salt Vagrant Demo
  150456. .sp
  150457. A Salt Demo using Vagrant.
  150458. .sp
  150459. \fI\%https://github.com/UtahDave/salt\-vagrant\-demo\fP
  150460. .SH RELEASE NOTES
  150461. .sp
  150462. See the version numbers page for more
  150463. information about the version numbering scheme.
  150464. .SS Latest Branch Release
  150465. .sp
  150466. Release Candidate
  150467. .SS Previous Releases
  150468. .SS Salt 3001 Release Notes \- Codename Sodium
  150469. .SS Python 2 Deprecation
  150470. .sp
  150471. Python 2 support has been dropped in Salt 3001. See
  150472. \fI\%https://community.saltstack.com/blog/sunsetting\-python\-2\-support/\fP for more
  150473. info.
  150474. .SS Salt mine updates
  150475. .SS Syntax update
  150476. .sp
  150477. The syntax for defining salt functions in config or pillar files has changed to
  150478. also support the syntax used in \fBmodule.run\fP\&.
  150479. The old syntax for the mine_function \- as a dict, or as a list with dicts that
  150480. contain more than exactly one key \- is still supported but discouraged in favor
  150481. of the more uniform syntax of module.run.
  150482. .SS State updates
  150483. .sp
  150484. The \fBcreates\fP state requisite has been migrated from the
  150485. \fBdocker_container\fP and \fBcmd\fP
  150486. states to become a global option. This acts similar to an equivalent
  150487. \fBunless: test \-f filename\fP but can also accept a list of filenames. This allows
  150488. all states to take advantage of the enhanced functionality released in Neon, of allowing
  150489. salt execution modules for requisite checks.
  150490. .SS State Execution Module
  150491. .sp
  150492. The \fBstate.test\fP function
  150493. can be used to test a state on a minion. This works by executing the
  150494. \fBstate.apply\fP function while forcing the \fBtest\fP kwarg
  150495. to \fBTrue\fP so that the \fBstate.apply\fP function is not required to be called by the
  150496. user directly. This also allows you to add the \fBstate.test\fP function to a minion\(aqs
  150497. \fBminion_blackout_whitelist\fP pillar if you wish to be able to test a state while a
  150498. minion is in blackout.
  150499. .SS New Grains
  150500. .SS systempath
  150501. .sp
  150502. This grain provides the same information as the \fBpath\fP grain, only formatted
  150503. as a list of directories.
  150504. .SS Salt\-SSH updates
  150505. .SS ssh_pre_flight
  150506. .sp
  150507. A new Salt\-SSH roster option \fBssh_pre_flight\fP has been added. This enables you to run a
  150508. script before Salt\-SSH tries to run any commands. You can set this option in the roster
  150509. for a specific minion or use the \fBroster_defaults\fP to set it for all minions.
  150510. .sp
  150511. Example for setting \fBssh_pre_flight\fP for specific host in roster file
  150512. .INDENT 0.0
  150513. .INDENT 3.5
  150514. .sp
  150515. .nf
  150516. .ft C
  150517. minion1:
  150518. host: localhost
  150519. user: root
  150520. passwd: P@ssword
  150521. ssh_pre_flight: /srv/salt/pre_flight.sh
  150522. .ft P
  150523. .fi
  150524. .UNINDENT
  150525. .UNINDENT
  150526. .sp
  150527. Example for setting \fBssh_pre_flight\fP using roster_defaults, so all minions
  150528. run this script.
  150529. .INDENT 0.0
  150530. .INDENT 3.5
  150531. .sp
  150532. .nf
  150533. .ft C
  150534. roster_defaults:
  150535. ssh_pre_flight: /srv/salt/pre_flight.sh
  150536. .ft P
  150537. .fi
  150538. .UNINDENT
  150539. .UNINDENT
  150540. .sp
  150541. The \fBssh_pre_flight\fP script will only run if the thin dir is not currently on the
  150542. minion. If you want to force the script to run you have the following options:
  150543. .INDENT 0.0
  150544. .IP \(bu 2
  150545. Wipe the thin dir on the targeted minion using the \-w arg.
  150546. .IP \(bu 2
  150547. Set ssh_run_pre_flight to True in the config.
  150548. .IP \(bu 2
  150549. Run salt\-ssh with the \-\-pre\-flight arg.
  150550. .UNINDENT
  150551. .SS set_path
  150552. .sp
  150553. A new salt\-ssh roster option \fIset_path\fP has been added. This allows you to set
  150554. the path environment variable used to run the salt\-ssh command on the target minion.
  150555. You can set this setting in your roster file like so:
  150556. .INDENT 0.0
  150557. .INDENT 3.5
  150558. .sp
  150559. .nf
  150560. .ft C
  150561. minion1:
  150562. host: localhost
  150563. user: root
  150564. passwd: P@ssword
  150565. set_path: \(aq$PATH:/usr/local/bin/\(aq
  150566. .ft P
  150567. .fi
  150568. .UNINDENT
  150569. .UNINDENT
  150570. .SS auto_detect
  150571. .sp
  150572. You can now auto detect the dependencies to be packed into the salt thin when using
  150573. the \fBssh_ext_alternatives\fP feature.
  150574. .INDENT 0.0
  150575. .INDENT 3.5
  150576. .sp
  150577. .nf
  150578. .ft C
  150579. ssh_ext_alternatives:
  150580. 2019.2: # Namespace, can be anything.
  150581. py\-version: [2, 7] # Constraint to specific interpreter version
  150582. path: /opt/2019.2/salt # Main Salt installation directory.
  150583. auto_detect: True # Auto detect dependencies
  150584. py_bin: /usr/bin/python2.7 # Python binary path used to auto detect dependencies
  150585. .ft P
  150586. .fi
  150587. .UNINDENT
  150588. .UNINDENT
  150589. .sp
  150590. This new \fBauto_detect\fP option needs to be set to True in your \fBssh_ext_alternatives\fP configuration.
  150591. Salt\-ssh will attempt to auto detect the file paths required for the default dependencies to include
  150592. in the thin. If you have a dependency already set in your configuration, it will not attempt to auto
  150593. detect for that dependency.
  150594. .sp
  150595. You can also set the \fBpy_bin\fP option to set the python binary to be used to auto detect the
  150596. dependencies. If \fBpy_bin\fP is not set, it will attempt to use the major Python version set in
  150597. \fBpy\-version\fP\&. For example, if you set \fBpy\-version\fP to be \fB[2, 7]\fP it will attempt to find and
  150598. use the \fBpython2\fP binary.
  150599. .SS State Changes
  150600. .INDENT 0.0
  150601. .IP \(bu 2
  150602. Adding a new option for the State compiler, \fBdisabled_requisites\fP will allow
  150603. requisites to be disabled during State runs.
  150604. .UNINDENT
  150605. .SS Salt Renderer updates
  150606. .sp
  150607. A new renderer for toml files has been added.
  150608. .INDENT 0.0
  150609. .INDENT 3.5
  150610. .sp
  150611. .nf
  150612. .ft C
  150613. #!jinja|toml
  150614. {% set myvar = "sometext" %}
  150615. [["some id"."test.nop"]]
  150616. name = "{{ myvar }}"
  150617. [["some id"."test.nop"]]
  150618. txt = "hello"
  150619. [["some id"."test.nop"]]
  150620. "somekey" = "somevalue"
  150621. .ft P
  150622. .fi
  150623. .UNINDENT
  150624. .UNINDENT
  150625. .SS Execution Module updates
  150626. .SS Vault Module
  150627. .sp
  150628. The \fBvault module\fP has been updated with the ability
  150629. to cache generated tokens. By specifying \fBuses\fP and optionally \fBttl\fP, the token generated on
  150630. behalf of the minion will be allowed to persist and function for the defined time period
  150631. or number of uses. Setting \fBuses: 0\fP creates an unlimited use token, that is only constrained by
  150632. the \fBttl\fP\&.
  150633. .INDENT 0.0
  150634. .INDENT 3.5
  150635. .sp
  150636. .nf
  150637. .ft C
  150638. vault:
  150639. auth:
  150640. uses: 25
  150641. .ft P
  150642. .fi
  150643. .UNINDENT
  150644. .UNINDENT
  150645. .sp
  150646. This functionality is configured by default on the master and is thus shared behavior for all minion token generation.
  150647. To delegate use count to individual minions, specify \fBallow_minion_override: True\fP in the master config, and define
  150648. \fBuses\fP and \fBttl\fP in the minion config as directed above.
  150649. .INDENT 0.0
  150650. .INDENT 3.5
  150651. .sp
  150652. .nf
  150653. .ft C
  150654. vault:
  150655. auth:
  150656. method: token
  150657. allow_minion_override: True
  150658. .ft P
  150659. .fi
  150660. .UNINDENT
  150661. .UNINDENT
  150662. .sp
  150663. Additionally, the vault module now supports Vault secrets backend version 2. The approperate secrets backend will be
  150664. automatically detected, and cached in the same credentials file as long lived vault tokens mentioned above. For any
  150665. configurations that worked around KV v2 handling by adding a manual data key to the end of vault lookups,
  150666. \fBsalt[\(aqvault\(aq].read_secret(\(aqsecret/my/secret\(aq)[\(aqdata\(aq]\fP, these are automatically detected and will continue to
  150667. function, but will generate a debug log message and can be removed.
  150668. .sp
  150669. The long lived token and secret metadata cache file can be cleared with the new \fBvault.clear_token_cache\fP
  150670. execution function.
  150671. .SS Salt 3000 Release Notes \- Codename Neon
  150672. .SS Security Advisory
  150673. .sp
  150674. For historical reasons, Salt requires PyCrypto as a "lowest common
  150675. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  150676. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  150677. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  150678. .SS New Versioning
  150679. .sp
  150680. The neon release has removed the date versioning. Going forward we will
  150681. use a non\-date based version schema beginning at 3000. The version will
  150682. be MAJOR.PATCH. For a planned release containing features and/or bug fixes
  150683. the MAJOR version will be incremented. Please review the approved
  150684. \fI\%SEP\fP
  150685. for further details.
  150686. .sp
  150687. The new versioning scheme is PEP 440 compliant, but distutils.StrictVersion
  150688. will result in an error \fBinvalid version number\fP\&. If using StrictVersion to
  150689. compare Salt\(aqs versions, please use LooseVersion. There is also the packaging
  150690. library you can use to compare versions. Another alternative is using the
  150691. \fBsalt version module\fP
  150692. .SS Python 3.8 Not Supported
  150693. .sp
  150694. Please note that running Salt with Python 3.8 is currently not supported.
  150695. It is recommended to not use a version higher than 3.7.
  150696. .SS Vendored Tornado Code Base
  150697. .sp
  150698. The Tornado code base has been included as \fBsalt.ext.tornado\fP\&. This was done
  150699. to provide a consistent version of Tornado across all operating systems while
  150700. we continue to work on upgrading Tornado to a recent version. New code that
  150701. uses Tornado should import the module from \fBsalt.ext.tornado\fP instead of
  150702. importing the system version of Tornado.
  150703. .SS Msgpack 1.0.0rc1 Incompatibility
  150704. .sp
  150705. Salt is currently incompatible with msgpack 1.0.0rc1. We recommend using
  150706. versions < 1.0.0 . This impacts the Salt Master\(aqs ability to run commands
  150707. against minions. Please see \fI\%Issue 56007\fP
  150708. for more details and updates.
  150709. .SS Pip Installing Salt On Windows
  150710. .sp
  150711. This release will not install correctly on windows when using pip to install salt.
  150712. This issue is addressed in \fI\%PR 56099\fP\&.
  150713. The workaround for this issue is:
  150714. .INDENT 0.0
  150715. .INDENT 3.5
  150716. .sp
  150717. .nf
  150718. .ft C
  150719. pip install "pywin32==224" "WMI==1.4.9"
  150720. .ft P
  150721. .fi
  150722. .UNINDENT
  150723. .UNINDENT
  150724. .sp
  150725. Those using the Salt Windows Installer are not affected by this issue.
  150726. .SS Saltcheck Updates
  150727. .sp
  150728. Available since 2018.3, the \fBsaltcheck module\fP
  150729. has been enhanced to:
  150730. .INDENT 0.0
  150731. .IP \(bu 2
  150732. Support saltenv environments
  150733. .IP \(bu 2
  150734. Associate tests with states by naming convention
  150735. .IP \(bu 2
  150736. Adds report_highstate_tests function
  150737. .IP \(bu 2
  150738. Adds empty and notempty assertions
  150739. .IP \(bu 2
  150740. Adds skip keyword
  150741. .IP \(bu 2
  150742. Adds print_result keyword
  150743. .IP \(bu 2
  150744. Adds assertion_section keyword
  150745. .IP \(bu 2
  150746. Use saltcheck.state_apply to run state.apply for test setup or teardown
  150747. .IP \(bu 2
  150748. Changes output to display test time
  150749. .IP \(bu 2
  150750. Works with salt\-ssh
  150751. .UNINDENT
  150752. .sp
  150753. Saltcheck provides unittest like functionality requiring only the knowledge of
  150754. salt module execution and yaml. Saltcheck uses salt modules to return data, then
  150755. runs an assertion against that return. This allows for testing with all the
  150756. features included in salt modules.
  150757. .sp
  150758. In order to run state and highstate saltcheck tests, a sub\-folder in the state directory
  150759. must be created and named \fBsaltcheck\-tests\fP\&. Tests for a state should be created in files
  150760. ending in \fB*.tst\fP and placed in the \fBsaltcheck\-tests\fP folder. \fBtst\fP files are run
  150761. through the salt rendering system, enabling tests to be written in yaml (or renderer of choice),
  150762. and include jinja, as well as the usual grain and pillar information. Like states, multiple tests can
  150763. be specified in a \fBtst\fP file. Multiple \fBtst\fP files can be created in the \fBsaltcheck\-tests\fP
  150764. folder, and should be named the same as the associated state. The \fBid\fP of a test works in the
  150765. same manner as in salt state files and should be unique and descriptive.
  150766. .SS Usage
  150767. .sp
  150768. Example file system layout:
  150769. .INDENT 0.0
  150770. .INDENT 3.5
  150771. .sp
  150772. .nf
  150773. .ft C
  150774. /srv/salt/apache/
  150775. init.sls
  150776. config.sls
  150777. saltcheck\-tests/
  150778. init.tst
  150779. config.tst
  150780. deployment_validation.tst
  150781. .ft P
  150782. .fi
  150783. .UNINDENT
  150784. .UNINDENT
  150785. .sp
  150786. Tests can be run for each state by name, for all \fBapache/saltcheck/*.tst\fP files,
  150787. or for all states assigned to the minion in top.sls. Tests may also be created
  150788. with no associated state. These tests will be run through the use of
  150789. \fBsaltcheck.run_state_tests\fP, but will not be automatically run by
  150790. \fBsaltcheck.run_highstate_tests\fP\&.
  150791. .INDENT 0.0
  150792. .INDENT 3.5
  150793. .sp
  150794. .nf
  150795. .ft C
  150796. salt \(aq*\(aq saltcheck.run_state_tests apache,apache.config
  150797. salt \(aq*\(aq saltcheck.run_state_tests apache check_all=True
  150798. salt \(aq*\(aq saltcheck.run_highstate_tests
  150799. salt \(aq*\(aq saltcheck.run_state_tests apache.deployment_validation
  150800. .ft P
  150801. .fi
  150802. .UNINDENT
  150803. .UNINDENT
  150804. .SS Example Tests
  150805. .INDENT 0.0
  150806. .INDENT 3.5
  150807. .sp
  150808. .nf
  150809. .ft C
  150810. {# will run the common salt state before further testing #}
  150811. setup_test_environment:
  150812. module_and_function: saltcheck.state_apply
  150813. args:
  150814. \- common
  150815. pillar\-data:
  150816. data: value
  150817. {% for package in ["apache2", "openssh"] %}
  150818. {# or another example #}
  150819. {# for package in salt[\(aqpillar.get\(aq]("packages") #}
  150820. jinja_test_{{ package }}_latest:
  150821. module_and_function: pkg.upgrade_available
  150822. args:
  150823. \- {{ package }}
  150824. assertion: assertFalse
  150825. {% endfor %}
  150826. validate_user_present_and_shell:
  150827. module_and_function: user.info
  150828. args:
  150829. \- root
  150830. assertion: assertEqual
  150831. expected\-return: /bin/bash
  150832. assertion_section: shell
  150833. print_result: False
  150834. skip_test:
  150835. module_and_function: pkg.upgrade_available
  150836. args:
  150837. \- apache2
  150838. assertion: assertFalse
  150839. skip: True
  150840. .ft P
  150841. .fi
  150842. .UNINDENT
  150843. .UNINDENT
  150844. .SS Output Format Changes
  150845. .sp
  150846. Saltcheck output has been enhanced to display the time taken per test. This results
  150847. in a change to the output format.
  150848. .sp
  150849. Previous Output:
  150850. .INDENT 0.0
  150851. .INDENT 3.5
  150852. .sp
  150853. .nf
  150854. .ft C
  150855. local:
  150856. |_
  150857. \-\-\-\-\-\-\-\-\-\-
  150858. ntp:
  150859. \-\-\-\-\-\-\-\-\-\-
  150860. ntp\-client\-installed:
  150861. Pass
  150862. ntp\-service\-status:
  150863. Pass
  150864. |_
  150865. \-\-\-\-\-\-\-\-\-\-
  150866. TEST RESULTS:
  150867. \-\-\-\-\-\-\-\-\-\-
  150868. Failed:
  150869. 0
  150870. Missing Tests:
  150871. 0
  150872. Passed:
  150873. 2
  150874. .ft P
  150875. .fi
  150876. .UNINDENT
  150877. .UNINDENT
  150878. .sp
  150879. New output:
  150880. .INDENT 0.0
  150881. .INDENT 3.5
  150882. .sp
  150883. .nf
  150884. .ft C
  150885. local:
  150886. |_
  150887. \-\-\-\-\-\-\-\-\-\-
  150888. ntp:
  150889. \-\-\-\-\-\-\-\-\-\-
  150890. ntp\-client\-installed:
  150891. \-\-\-\-\-\-\-\-\-\-
  150892. duration:
  150893. 1.0408
  150894. status:
  150895. Pass
  150896. ntp\-service\-status:
  150897. \-\-\-\-\-\-\-\-\-\-
  150898. duration:
  150899. 1.464
  150900. status:
  150901. Pass
  150902. |_
  150903. \-\-\-\-\-\-\-\-\-\-
  150904. TEST RESULTS:
  150905. \-\-\-\-\-\-\-\-\-\-
  150906. Execution Time:
  150907. 2.5048
  150908. Failed:
  150909. 0
  150910. Missing Tests:
  150911. 0
  150912. Passed:
  150913. 2
  150914. Skipped:
  150915. 0
  150916. .ft P
  150917. .fi
  150918. .UNINDENT
  150919. .UNINDENT
  150920. .SS Unless and onlyif Enhancements
  150921. .sp
  150922. The \fBunless\fP and \fBonlyif\fP requisites can now be operated with salt modules.
  150923. The dictionary must contain an argument \fBfun\fP which is the module that is
  150924. being run, and everything else must be passed in under the args key or will be
  150925. passed as individual kwargs to the module function.
  150926. .sp
  150927. \fBNOTE:\fP
  150928. .INDENT 0.0
  150929. .INDENT 3.5
  150930. Certain states have an \fBunless\fP/\fBonlyif\fP implementation that predates this feature, and may not work as expected:
  150931. .INDENT 0.0
  150932. .IP \(bu 2
  150933. states.git
  150934. .IP \(bu 2
  150935. states.cmd
  150936. .IP \(bu 2
  150937. states.macpackage
  150938. .IP \(bu 2
  150939. states.file
  150940. .IP \(bu 2
  150941. states.docker_container
  150942. .UNINDENT
  150943. .UNINDENT
  150944. .UNINDENT
  150945. .sp
  150946. Examples:
  150947. .INDENT 0.0
  150948. .INDENT 3.5
  150949. .sp
  150950. .nf
  150951. .ft C
  150952. check external ip address:
  150953. http.query:
  150954. \- name: https://icanhazip.com
  150955. \- status: 200
  150956. \- onlyif:
  150957. \- fun: file.file_exists
  150958. path: /usr/local/bin/whatever
  150959. .ft P
  150960. .fi
  150961. .UNINDENT
  150962. .UNINDENT
  150963. .sp
  150964. is equivalent to
  150965. .INDENT 0.0
  150966. .INDENT 3.5
  150967. .sp
  150968. .nf
  150969. .ft C
  150970. check another ip address:
  150971. http.query:
  150972. \- name: https://icanhazip.com
  150973. \- status: 200
  150974. \- onlyif:
  150975. \- test \-f /tmp/fnord.txt
  150976. .ft P
  150977. .fi
  150978. .UNINDENT
  150979. .UNINDENT
  150980. .sp
  150981. Another example:
  150982. .INDENT 0.0
  150983. .INDENT 3.5
  150984. .sp
  150985. .nf
  150986. .ft C
  150987. set mysql root password:
  150988. debconf.set:
  150989. \- name: mysql\-server\-5.7
  150990. \- data:
  150991. \(aqmysql\-server/root_password\(aq: {\(aqtype\(aq: \(aqpassword\(aq, \(aqvalue\(aq: {{pillar[\(aqmysql.pass\(aq]}} }
  150992. \- unless:
  150993. \- fun: pkg.version
  150994. args:
  150995. \- mysql\-server\-5.7
  150996. .ft P
  150997. .fi
  150998. .UNINDENT
  150999. .UNINDENT
  151000. .SS Keystore State and Module
  151001. .sp
  151002. A new \fBstate\fP and
  151003. \fBexecution module\fP for manaing Java
  151004. Keystore files is now included. It allows for adding/removing/listing
  151005. as well as managing keystore files.
  151006. .INDENT 0.0
  151007. .INDENT 3.5
  151008. .sp
  151009. .nf
  151010. .ft C
  151011. # salt\-call keystore.list /path/to/keystore.jks changeit
  151012. local:
  151013. |_
  151014. \-\-\-\-\-\-\-\-\-\-
  151015. alias:
  151016. hostname1
  151017. expired:
  151018. True
  151019. sha1:
  151020. CB:5E:DE:50:57:99:51:87:8E:2E:67:13:C5:3B:E9:38:EB:23:7E:40
  151021. type:
  151022. TrustedCertEntry
  151023. valid_start:
  151024. August 22 2012
  151025. valid_until:
  151026. August 21 2017
  151027. .ft P
  151028. .fi
  151029. .UNINDENT
  151030. .UNINDENT
  151031. .INDENT 0.0
  151032. .INDENT 3.5
  151033. .sp
  151034. .nf
  151035. .ft C
  151036. define_keystore:
  151037. keystore.managed:
  151038. \- name: /tmp/statestore.jks
  151039. \- passphrase: changeit
  151040. \- force_remove: True
  151041. \- entries:
  151042. \- alias: hostname1
  151043. certificate: /tmp/testcert.crt
  151044. \- alias: remotehost
  151045. certificate: /tmp/512.cert
  151046. private_key: /tmp/512.key
  151047. \- alias: stringhost
  151048. certificate: |
  151049. \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-
  151050. MIICEjCCAX
  151051. Hn+GmxZA
  151052. \-\-\-\-\-END CERTIFICATE\-\-\-\-\-
  151053. .ft P
  151054. .fi
  151055. .UNINDENT
  151056. .UNINDENT
  151057. .SS XML Module
  151058. .sp
  151059. A new state and execution module for editing XML files is now included. Currently it allows for
  151060. editing values from an xpath query, or editing XML IDs.
  151061. .INDENT 0.0
  151062. .INDENT 3.5
  151063. .sp
  151064. .nf
  151065. .ft C
  151066. # salt\-call xml.set_attribute /tmp/test.xml ".//actor[@id=\(aq3\(aq]" editedby "Jane Doe"
  151067. local:
  151068. True
  151069. # salt\-call xml.get_attribute /tmp/test.xml ".//actor[@id=\(aq3\(aq]"
  151070. local:
  151071. \-\-\-\-\-\-\-\-\-\-
  151072. editedby:
  151073. Jane Doe
  151074. id:
  151075. 3
  151076. # salt\-call xml.get_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]"
  151077. local:
  151078. Liam Neeson
  151079. # salt\-call xml.set_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]" "Patrick Stewart"
  151080. local:
  151081. True
  151082. # salt\-call xml.get_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]"
  151083. local:
  151084. Patrick Stewart
  151085. .ft P
  151086. .fi
  151087. .UNINDENT
  151088. .UNINDENT
  151089. .INDENT 0.0
  151090. .INDENT 3.5
  151091. .sp
  151092. .nf
  151093. .ft C
  151094. ensure_value_true:
  151095. xml.value_present:
  151096. \- name: /tmp/test.xml
  151097. \- xpath: .//actor[@id=\(aq1\(aq]
  151098. \- value: William Shatner
  151099. .ft P
  151100. .fi
  151101. .UNINDENT
  151102. .UNINDENT
  151103. .SS LGPO Execution Module
  151104. .sp
  151105. Multiple fixes were made to the \fBwin_lgpo\fP to
  151106. expand support for additional policies and improve performance. Issues with
  151107. encoding and unsupported characters (smart\-quotes, em\-dash, etc) found in the
  151108. ADML files as well as whitespace in some policies have been addressed.
  151109. .sp
  151110. Speed enhancements include:
  151111. .INDENT 0.0
  151112. .IP \(bu 2
  151113. Caching the compiled xml from ADMX/ADML files in \fB__context__\fP
  151114. .IP \(bu 2
  151115. Lowercasing all keys before compiling XML to remove an expensive XPath lookup
  151116. .UNINDENT
  151117. .sp
  151118. Additional functionality:
  151119. .INDENT 0.0
  151120. .IP \(bu 2
  151121. Adds the \fBlgpo.get_policy\fP
  151122. function that allows you to get the current settings for a single policy.
  151123. .IP \(bu 2
  151124. Changes some policy names that were overly long
  151125. .UNINDENT
  151126. .SS LGPO State Module
  151127. .sp
  151128. Multiple changes were made to the \fBwin_lgpo\fP
  151129. state to improve performance.
  151130. .sp
  151131. It now uses the \fBlgpo.get_policy\fP
  151132. function instead of the \fBlgpo.get\fP to avoid
  151133. reloading all settings on the machine at the beginning and end of each state
  151134. run.
  151135. .sp
  151136. Supports the new shorter policy names but also attempts to resolve the older,
  151137. longer policy names.
  151138. .SS Win_network Salt Util
  151139. .sp
  151140. Now uses .NET libraries to obtain Interface information on Windows systems that
  151141. support it. Unsupported systems fall back to the more expensive WMI calls. This
  151142. is important as this data is gathered for grains and occurs each time a process
  151143. is forked.
  151144. .SS Jinja enhancements
  151145. .SS Troubleshooting Jinja map files
  151146. .sp
  151147. A new \fBexecution module\fP for \fBmap.jinja\fP troubleshooting
  151148. has been added.
  151149. .sp
  151150. Assuming the map is loaded in your formula SLS as follows:
  151151. .INDENT 0.0
  151152. .INDENT 3.5
  151153. .sp
  151154. .nf
  151155. .ft C
  151156. {% from "myformula/map.jinja" import myformula with context %}
  151157. .ft P
  151158. .fi
  151159. .UNINDENT
  151160. .UNINDENT
  151161. .sp
  151162. The following command can be used to load the map and check the results:
  151163. .INDENT 0.0
  151164. .INDENT 3.5
  151165. .sp
  151166. .nf
  151167. .ft C
  151168. salt myminion jinja.load_map myformula/map.jinja myformula
  151169. .ft P
  151170. .fi
  151171. .UNINDENT
  151172. .UNINDENT
  151173. .sp
  151174. The module can be also used to test \fBjson\fP and \fByaml\fP maps:
  151175. .INDENT 0.0
  151176. .INDENT 3.5
  151177. .sp
  151178. .nf
  151179. .ft C
  151180. salt myminion jinja.import_yaml myformula/defaults.yaml
  151181. salt myminion jinja.import_json myformula/defaults.json
  151182. .ft P
  151183. .fi
  151184. .UNINDENT
  151185. .UNINDENT
  151186. .SS json_query filter
  151187. .sp
  151188. A port of Ansible \fBjson_query\fP Jinja filter has been added. It allows
  151189. making queries against JSON data using \fI\%JMESPath language\fP\&. Could be used to
  151190. filter \fBpillar\fP data, \fByaml\fP maps, and also useful with \fBhttp_query\fP\&.
  151191. .sp
  151192. Depends on the \fI\%jmespath\fP Python module.
  151193. .SS Slot Syntax Updates
  151194. .sp
  151195. The slot syntax has been updated to support parsing dictionary responses and to append text.
  151196. .INDENT 0.0
  151197. .INDENT 3.5
  151198. .sp
  151199. .nf
  151200. .ft C
  151201. demo dict parsing and append:
  151202. test.configurable_test_state:
  151203. \- name: slot example
  151204. \- changes: False
  151205. \- comment: __slot__:salt:test.arg(shell="/bin/bash").kwargs.shell ~ /appended
  151206. .ft P
  151207. .fi
  151208. .UNINDENT
  151209. .UNINDENT
  151210. .INDENT 0.0
  151211. .INDENT 3.5
  151212. .sp
  151213. .nf
  151214. .ft C
  151215. local:
  151216. \-\-\-\-\-\-\-\-\-\-
  151217. ID: demo dict parsing and append
  151218. Function: test.configurable_test_state
  151219. Name: slot example
  151220. Result: True
  151221. Comment: /bin/bash/appended
  151222. Started: 09:59:58.623575
  151223. Duration: 1.229 ms
  151224. Changes:
  151225. .ft P
  151226. .fi
  151227. .UNINDENT
  151228. .UNINDENT
  151229. .sp
  151230. Also, slot parsing is now supported inside of nested state data structures (dicts, lists, unless/onlyif args):
  151231. .INDENT 0.0
  151232. .INDENT 3.5
  151233. .sp
  151234. .nf
  151235. .ft C
  151236. demo slot parsing for nested elements:
  151237. file.managed:
  151238. \- name: /tmp/slot.txt
  151239. \- source: salt://slot.j2
  151240. \- template: jinja
  151241. \- context:
  151242. # Slot inside of the nested context dictionary
  151243. variable: __slot__:salt:test.echo(a_value)
  151244. \- unless:
  151245. \- fun: file.search
  151246. args:
  151247. # Slot as unless argument
  151248. \- __slot__:salt:test.echo(/tmp/slot.txt)
  151249. \- "DO NOT OVERRIDE"
  151250. ignore_if_missing: True
  151251. .ft P
  151252. .fi
  151253. .UNINDENT
  151254. .UNINDENT
  151255. .SS State Changes
  151256. .INDENT 0.0
  151257. .IP \(bu 2
  151258. The \fBfile.symlink\fP state was
  151259. fixed to remove existing file system entries other than files,
  151260. directories and symbolic links properly.
  151261. .IP \(bu 2
  151262. The \fBonchanges\fP and \fBprereq\fP requisites now behave
  151263. properly in test mode, due to removing \fBpchanges\fP\&.
  151264. .IP \(bu 2
  151265. Added new \fBssh_auth.manage\fP state to
  151266. ensure only the specified ssh keys are present for the specified user.
  151267. .IP \(bu 2
  151268. Added new \fBsaltutil\fP state to use instead of
  151269. \fBmodule.run\fP to more easily handle change.
  151270. .UNINDENT
  151271. .SS Module Changes
  151272. .INDENT 0.0
  151273. .IP \(bu 2
  151274. Added new \fBboto_ssm\fP module to set and query
  151275. secrets in AWS SSM parameters.
  151276. .IP \(bu 2
  151277. The \fBfile.remove\fP module was
  151278. fixed to remove file system entries other than files, directories
  151279. and symbolic links properly.
  151280. .IP \(bu 2
  151281. The \fBdebian_ip\fP module used by the
  151282. \fBnetwork.managed\fP state has been
  151283. heavily refactored. The order that options appear in inet/inet6 blocks may
  151284. produce cosmetic changes. Many options without an \(aqipvX\(aq prefix will now be
  151285. shared between inet and inet6 blocks. The options \fBenable_ipv4\fP and
  151286. \fBenabled_ipv6\fP will now fully remove relevant inet/inet6 blocks. Overriding
  151287. options by prefixing them with \(aqipvX\(aq will now work with most options (i.e.
  151288. \fBdns\fP can be overridden by \fBipv4dns\fP or \fBipv6dns\fP). The \fBproto\fP option
  151289. is now required.
  151290. .UNINDENT
  151291. .SS Enhancements to Engines
  151292. .sp
  151293. Multiple copies of a particular Salt engine can be configured by including
  151294. the \fBengine_module\fP parameter in the engine configuration.
  151295. .INDENT 0.0
  151296. .INDENT 3.5
  151297. .sp
  151298. .nf
  151299. .ft C
  151300. engines:
  151301. \- production_logstash:
  151302. host: production_log.my_network.com
  151303. port: 5959
  151304. proto: tcp
  151305. engine_module: logstash
  151306. \- develop_logstash:
  151307. host: develop_log.my_network.com
  151308. port: 5959
  151309. proto: tcp
  151310. engine_module: logstash
  151311. .ft P
  151312. .fi
  151313. .UNINDENT
  151314. .UNINDENT
  151315. .INDENT 0.0
  151316. .IP \(bu 2
  151317. A new \fBfluent engine\fP has been
  151318. added to export Salt events to fluentd.
  151319. .INDENT 2.0
  151320. .INDENT 3.5
  151321. .sp
  151322. .nf
  151323. .ft C
  151324. engines:
  151325. \- fluent
  151326. host: localhost
  151327. port: 24224
  151328. .ft P
  151329. .fi
  151330. .UNINDENT
  151331. .UNINDENT
  151332. .INDENT 2.0
  151333. .INDENT 3.5
  151334. .sp
  151335. .nf
  151336. .ft C
  151337. <source>
  151338. @type forward
  151339. port 24224
  151340. </source>
  151341. <match saltstack.**>
  151342. @type file
  151343. path /var/log/td\-agent/saltstack
  151344. </match>
  151345. .ft P
  151346. .fi
  151347. .UNINDENT
  151348. .UNINDENT
  151349. .UNINDENT
  151350. .SS Enhancements to Beacons
  151351. .sp
  151352. Multiple copies of a particular Salt beacon can be configured by including
  151353. the \fBbeacon_module\fP parameter in the beacon configuration.
  151354. .INDENT 0.0
  151355. .INDENT 3.5
  151356. .INDENT 0.0
  151357. .INDENT 3.5
  151358. .sp
  151359. .nf
  151360. .ft C
  151361. beacons:
  151362. watch_importand_file:
  151363. \- files:
  151364. /etc/important_file: {}
  151365. \- beacon_module: inotify
  151366. watch_another_file:
  151367. \- files:
  151368. /etc/another_file: {}
  151369. \- beacon_module: inotify
  151370. .ft P
  151371. .fi
  151372. .UNINDENT
  151373. .UNINDENT
  151374. .UNINDENT
  151375. .UNINDENT
  151376. .SS Enhancements to chroot
  151377. .INDENT 0.0
  151378. .IP \(bu 2
  151379. New functions added to chroot \fBapply\fP,
  151380. \fBsls\fP, and
  151381. \fBhighstate\fP that allow executing
  151382. states in sls files or running apply/highstate inside of a chroot.
  151383. .UNINDENT
  151384. .SS Minion\-side ACL
  151385. .sp
  151386. Salt has had master\-side ACL for the salt mine for some time, where the master
  151387. configuration contained \fImine_get\fP that specified which minions could request
  151388. which functions. However, now you can specify which minions can access a function
  151389. in the salt mine function definition itself (or when calling \fBmine.send\fP).
  151390. This targeting works the same as the generic minion targeting as specified
  151391. here\&. The parameters used are \fBallow_tgt\fP and \fBallow_tgt_type\fP\&.
  151392. See also the documentation of the Salt Mine\&. Please
  151393. note that if you want to use this new feature both your minion and masters will need
  151394. to be on atleast version 3000.
  151395. .SS Deprecations
  151396. .SS Raet Deprecated
  151397. .INDENT 0.0
  151398. .IP \(bu 2
  151399. The Raet transport has been deprecated. Please use the supported
  151400. transport protocols tcp or zeromq.
  151401. .UNINDENT
  151402. .SS Module Deprecations
  151403. .INDENT 0.0
  151404. .IP \(bu 2
  151405. The hipchat module has been removed due to the service being retired.
  151406. \fBGoogle Chat\fP,
  151407. \fBMS Teams\fP, or
  151408. \fBSlack\fP may be suitable replacements.
  151409. .IP \(bu 2
  151410. The \fBdockermod\fP module has been
  151411. changed as follows:
  151412. .INDENT 2.0
  151413. .INDENT 3.5
  151414. .INDENT 0.0
  151415. .IP \(bu 2
  151416. Support for the \fBtags\fP kwarg has been removed from the
  151417. \fBdockermod.resolve_tag\fP
  151418. function.
  151419. .IP \(bu 2
  151420. Support for the \fBnetwork_id\fP kwarg has been removed from the
  151421. \fBdockermod.connect_container_to_network\fP
  151422. function. Please use \fBnet_id\fP instead.
  151423. .IP \(bu 2
  151424. Support for the \fBname\fP kwarg has been removed from the
  151425. \fBdockermod.sls_build\fP
  151426. function. Please use \fBrepository\fP and \fBtag\fP instead.
  151427. .IP \(bu 2
  151428. Support for the \fBimage\fP kwarg has been removed from the following
  151429. functions. In all cases, please use both the \fBrepository\fP and \fBtag\fP
  151430. options instead:
  151431. .INDENT 2.0
  151432. .INDENT 3.5
  151433. .INDENT 0.0
  151434. .IP \(bu 2
  151435. \fBdockermod.build\fP
  151436. .IP \(bu 2
  151437. \fBdockermod.commit\fP
  151438. .IP \(bu 2
  151439. \fBdockermod.import\fP
  151440. .IP \(bu 2
  151441. \fBdockermod.load\fP
  151442. .IP \(bu 2
  151443. \fBdockermod.tag\fP
  151444. .UNINDENT
  151445. .UNINDENT
  151446. .UNINDENT
  151447. .UNINDENT
  151448. .UNINDENT
  151449. .UNINDENT
  151450. .IP \(bu 2
  151451. The heat module has removed the \fBenviroment\fP kwarg from the
  151452. \fBheat.create_stack\fP and
  151453. \fBheat.update_stack\fP functions due
  151454. to a spelling error. Please use \fBenvironment\fP instead.
  151455. .IP \(bu 2
  151456. The \fBssh\fP execution module has been
  151457. changed as follows:
  151458. .INDENT 2.0
  151459. .INDENT 3.5
  151460. .INDENT 0.0
  151461. .IP \(bu 2
  151462. Support for the \fBssh.get_known_host\fP function has been removed. Please use the
  151463. \fBssh.get_known_host_entries\fP
  151464. function instead.
  151465. .IP \(bu 2
  151466. Support for the \fBssh.recv_known_host\fP function has been removed. Please use the
  151467. \fBssh.recv_known_host_entries\fP
  151468. function instead.
  151469. .UNINDENT
  151470. .UNINDENT
  151471. .UNINDENT
  151472. .IP \(bu 2
  151473. The :py:mod\(gafirewalld <salt.modules.firewalld>\(ga module has been changed as
  151474. follows:
  151475. .INDENT 2.0
  151476. .INDENT 3.5
  151477. .INDENT 0.0
  151478. .IP \(bu 2
  151479. The default setting for the \fBforce_masquerade\fP option in the
  151480. \fBfirewalld.add_port <salt.module.firewalld.add_port()\fP function has changed
  151481. from \fBTrue\fP to \fBFalse\fP\&.
  151482. .IP \(bu 2
  151483. Support for the \fBforce_masquerade\fP option in the
  151484. \fBfirewalld.add_port_fwd <salt.module.firewalld.add_port_fwd()\fP function has
  151485. been changed from \fBTrue\fP to \fBFalse\fP\&.
  151486. .UNINDENT
  151487. .UNINDENT
  151488. .UNINDENT
  151489. .UNINDENT
  151490. .SS State Deprecations
  151491. .INDENT 0.0
  151492. .IP \(bu 2
  151493. The hipchat state has been removed due to the service being retired.
  151494. \fBMS Teams\fP or
  151495. \fBSlack\fP may be suitable replacements.
  151496. .IP \(bu 2
  151497. The cmd state module has removed the \fBquiet\fP kwarg from the
  151498. \fBcmd.run\fP function. Please
  151499. set \fBoutput_loglevel\fP to \fBquiet\fP instead.
  151500. .IP \(bu 2
  151501. The heat state module has removed the \fBenviroment\fP kwarg from the
  151502. \fBheat.deployed\fP function due
  151503. to a spelling error. Please use \fBenvironment\fP instead.
  151504. .IP \(bu 2
  151505. The :py:mod\(gafirewalld <salt.states.firewalld>\(ga state has been changed as follows:
  151506. .INDENT 2.0
  151507. .INDENT 3.5
  151508. .INDENT 0.0
  151509. .IP \(bu 2
  151510. The default setting for the \fBprune_services\fP option in the
  151511. \fBfirewalld.present\fP function has changed
  151512. from \fBTrue\fP to \fBFalse\fP\&.
  151513. .UNINDENT
  151514. .UNINDENT
  151515. .UNINDENT
  151516. .UNINDENT
  151517. .SS Fileserver Deprecations
  151518. .INDENT 0.0
  151519. .IP \(bu 2
  151520. The hgfs fileserver had the following config options removed:
  151521. .INDENT 2.0
  151522. .INDENT 3.5
  151523. .INDENT 0.0
  151524. .IP \(bu 2
  151525. The \fBhgfs_env_whitelist\fP config option has been removed in favor of \fBhgfs_saltenv_whitelist\fP\&.
  151526. .IP \(bu 2
  151527. The \fBhgfs_env_blacklist\fP config option has been removed in favor of \fBhgfs_saltenv_blacklist\fP\&.
  151528. .UNINDENT
  151529. .UNINDENT
  151530. .UNINDENT
  151531. .IP \(bu 2
  151532. The svnfs fileserver had the following config options removed:
  151533. .INDENT 2.0
  151534. .INDENT 3.5
  151535. .INDENT 0.0
  151536. .IP \(bu 2
  151537. The \fBsvnfs_env_whitelist\fP config option has been removed in favor of \fBsvnfs_saltenv_whitelist\fP\&.
  151538. .IP \(bu 2
  151539. The \fBsvnfs_env_blacklist\fP config option has been removed in favor of \fBsvnfs_saltenv_blacklist\fP\&.
  151540. .UNINDENT
  151541. .UNINDENT
  151542. .UNINDENT
  151543. .IP \(bu 2
  151544. The gitfs fileserver had the following config options removed:
  151545. .INDENT 2.0
  151546. .INDENT 3.5
  151547. .INDENT 0.0
  151548. .IP \(bu 2
  151549. The \fBgitfs_env_whitelist\fP config option has been removed in favor of \fBgitfs_saltenv_whitelist\fP\&.
  151550. .IP \(bu 2
  151551. The \fBgitfs_env_blacklist\fP config option has been removed in favor of \fBgitfs_saltenv_blacklist\fP\&.
  151552. .UNINDENT
  151553. .UNINDENT
  151554. .UNINDENT
  151555. .UNINDENT
  151556. .SS Engine Removal
  151557. .INDENT 0.0
  151558. .IP \(bu 2
  151559. The hipchat engine has been removed due to the service being retired. For users migrating
  151560. to Slack, the \fBslack\fP engine may be a suitable replacement.
  151561. .UNINDENT
  151562. .SS Returner Removal
  151563. .INDENT 0.0
  151564. .IP \(bu 2
  151565. The hipchat returner has been removed due to the service being retired. For users migrating
  151566. to Slack, the \fBslack\fP returner may be a suitable
  151567. replacement.
  151568. .UNINDENT
  151569. .SS Grain Deprecations
  151570. .sp
  151571. For \fBsmartos\fP some grains have been deprecated. These grains have been removed.
  151572. .INDENT 0.0
  151573. .INDENT 3.5
  151574. .INDENT 0.0
  151575. .IP \(bu 2
  151576. The \fBhypervisor_uuid\fP has been replaced with \fBmdata:sdc:server_uuid\fP grain.
  151577. .IP \(bu 2
  151578. The \fBdatacenter\fP has been replaced with \fBmdata:sdc:datacenter_name\fP grain.
  151579. .UNINDENT
  151580. .UNINDENT
  151581. .UNINDENT
  151582. .SS Cloud Deprecations
  151583. .INDENT 0.0
  151584. .IP \(bu 2
  151585. The nova cloud driver has been removed in favor of the openstack cloud driver.
  151586. .UNINDENT
  151587. .SS Jinja Filter Deprecations
  151588. .INDENT 0.0
  151589. .IP \(bu 2
  151590. The following jinja filters are set to be removed in the Aluminium release:
  151591. .INDENT 2.0
  151592. .IP \(bu 2
  151593. \fBjson_decode_dict\fP in favor of \fBtojson\fP
  151594. .IP \(bu 2
  151595. \fBjson_decode_list\fP in favor of \fBtojson\fP
  151596. .UNINDENT
  151597. .UNINDENT
  151598. .SS Utils Deprecations
  151599. .INDENT 0.0
  151600. .IP \(bu 2
  151601. All of the functions in salt.utils.__init__.py have been removed. These
  151602. include:
  151603. .INDENT 2.0
  151604. .INDENT 3.5
  151605. .INDENT 0.0
  151606. .IP \(bu 2
  151607. \fIsalt.utils.option\fP
  151608. .IP \(bu 2
  151609. \fIsalt.utils.required_module_list\fP
  151610. .IP \(bu 2
  151611. \fIsalt.utils.required_modules_error\fP
  151612. .IP \(bu 2
  151613. \fIsalt.utils.get_accumulator_dir\fP\&. Please use \fBsalt.state.get_accumulator_dir()\fP instead.
  151614. .IP \(bu 2
  151615. \fIsalt.utils.fnmatch_multiple\fP\&. Please use \fBsalt.utils.itertools.fnmatch_multiple()\fP instead.
  151616. .IP \(bu 2
  151617. \fIsalt.utils.appendproctitle\fP\&. Please use \fBsalt.utils.process.appendproctitle()\fP instead.
  151618. .IP \(bu 2
  151619. \fIsalt.utils.daemonize\fP\&. Please use \fBsalt.utils.process.daemonize()\fP instead.
  151620. .IP \(bu 2
  151621. \fIsalt.utils.daemonize_if\fP\&. Please use \fBsalt.utils.process.daemonize_if()\fP instead.
  151622. .IP \(bu 2
  151623. \fIsalt.utils.reinit_crypto\fP\&. Please use \fBsalt.utils.crypt.reinit_crypto()\fP instead.
  151624. .IP \(bu 2
  151625. \fIsalt.utils.pem_finger\fP\&. Please use \fBsalt.utils.crypt.pem_finger()\fP instead.
  151626. .IP \(bu 2
  151627. \fIsalt.utils.to_bytes\fP\&. Please use \fBsalt.utils.stringutils.to_bytes()\fP instead.
  151628. .IP \(bu 2
  151629. \fIsalt.utils.to_str\fP\&. Please use \fBsalt.utils.stringutils.to_str()\fP instead.
  151630. .IP \(bu 2
  151631. \fIsalt.utils.to_unicode\fP\&. Please use \fBsalt.utils.stringutils.to_unicode()\fP instead.
  151632. .IP \(bu 2
  151633. \fIsalt.utils.str_to_num\fP\&. Please use \fBsalt.utils.stringutils.to_num()\fP instead.
  151634. .IP \(bu 2
  151635. \fIsalt.utils.is_quoted\fP\&. Please use \fBsalt.utils.stringutils.is_quoted()\fP instead.
  151636. .IP \(bu 2
  151637. \fIsalt.utils.dequote\fP\&. Please use \fBsalt.utils.stringutils.dequote()\fP instead.
  151638. .IP \(bu 2
  151639. \fIsalt.utils.is_hex\fP\&. Please use \fBsalt.utils.stringutils.is_hex()\fP instead.
  151640. .IP \(bu 2
  151641. \fIsalt.utils.is_bin_str\fP\&. Please use \fBsalt.utils.stringutils.is_binary()\fP instead.
  151642. .IP \(bu 2
  151643. \fIsalt.utils.rand_string\fP\&. Please use \fBsalt.utils.stringutils.random()\fP instead.
  151644. .IP \(bu 2
  151645. \fIsalt.utils.contains_whitespace\fP\&. Please use \fBsalt.utils.stringutils.contains_whitespace()\fP instead.
  151646. .IP \(bu 2
  151647. \fIsalt.utils.build_whitespace_split_regex\fP\&. Please use \fBsalt.utils.stringutils.build_whitespace_split_regex()\fP instead.
  151648. .IP \(bu 2
  151649. \fIsalt.utils.expr_match\fP\&. Please use \fBsalt.utils.stringutils.expr_match()\fP instead.
  151650. .IP \(bu 2
  151651. \fIsalt.utils.check_whitelist_blacklist\fP\&. Please use \fBsalt.utils.stringutils.check_whitelist_blacklist()\fP instead.
  151652. .IP \(bu 2
  151653. \fIsalt.utils.check_include_exclude\fP\&.Please use \fBsalt.utils.stringutils.check_include_exclude()\fP instead.
  151654. .IP \(bu 2
  151655. \fIsalt.utils.print_cli\fP\&.Please use \fBsalt.utils.stringutils.print_cli()\fP instead.
  151656. .IP \(bu 2
  151657. \fIsalt.utils.clean_kwargs\fP\&.Please use \fBsalt.utils.args.clean_kwargs()\fP instead.
  151658. .IP \(bu 2
  151659. \fIsalt.utils.invalid_kwargs\fP\&.Please use \fBsalt.utils.args.invalid_kwargs()\fP instead.
  151660. .IP \(bu 2
  151661. \fIsalt.utils.shlex_split\fP\&.Please use \fBsalt.utils.args.shlex_split()\fP instead.
  151662. .IP \(bu 2
  151663. \fIsalt.utils.arg_lookup\fP\&.Please use \fBsalt.utils.args.arg_lookup()\fP instead.
  151664. .IP \(bu 2
  151665. \fIsalt.utils.argspec_report\fP\&.Please use \fBsalt.utils.args.argspec_report()\fP instead.
  151666. .IP \(bu 2
  151667. \fIsalt.utils.split_input\fP\&.Please use \fBsalt.utils.args.split_input()\fP instead.
  151668. .IP \(bu 2
  151669. \fIsalt.utils.test_mode\fP\&.Please use \fBsalt.utils.args.test_mode()\fP instead.
  151670. .IP \(bu 2
  151671. \fIsalt.utils.format_call\fP\&.Please use \fBsalt.utils.args.format_call()\fP instead.
  151672. .IP \(bu 2
  151673. \fIsalt.utils.which\fP\&.Please use \fBsalt.utils.path.which()\fP instead.
  151674. .IP \(bu 2
  151675. \fIsalt.utils.which_bin\fP\&.Please use \fBsalt.utils.path.which_bin()\fP instead.
  151676. .IP \(bu 2
  151677. \fIsalt.utils.path_join\fP\&.Please use \fBsalt.utils.path.join()\fP instead.
  151678. .IP \(bu 2
  151679. \fIsalt.utils.check_or_die\fP\&.Please use \fBsalt.utils.path.check_or_die()\fP instead.
  151680. .IP \(bu 2
  151681. \fIsalt.utils.sanitize_win_path_string\fP\&.Please use \fBsalt.utils.path.sanitize_win_path()\fP instead.
  151682. .IP \(bu 2
  151683. \fIsalt.utils.rand_str\fP\&.Please use \fBsalt.utils.hashutils.random_hash()\fP instead.
  151684. .IP \(bu 2
  151685. \fIsalt.utils.get_hash\fP\&.Please use \fBsalt.utils.hashutils.get_hash()\fP instead.
  151686. .IP \(bu 2
  151687. \fIsalt.utils.is_windows\fP\&.Please use \fBsalt.utils.platform.is_windows()\fP instead.
  151688. .IP \(bu 2
  151689. \fIsalt.utils.is_proxy\fP\&.Please use \fBsalt.utils.platform.is_proxy()\fP instead.
  151690. .IP \(bu 2
  151691. \fIsalt.utils.is_linux\fP\&.Please use \fBsalt.utils.platform.is_linux()\fP instead.
  151692. .IP \(bu 2
  151693. \fIsalt.utils.is_darwin\fP\&.Please use \fBsalt.utils.platform.is_darwin()\fP instead.
  151694. .IP \(bu 2
  151695. \fIsalt.utils.is_sunos\fP\&.Please use \fBsalt.utils.platform.is_sunos()\fP instead.
  151696. .IP \(bu 2
  151697. \fIsalt.utils.is_smartos\fP\&.Please use \fBsalt.utils.platform.is_smartos()\fP instead.
  151698. .IP \(bu 2
  151699. \fIsalt.utils.is_smartos_globalzone\fP\&.Please use \fBsalt.utils.platform.is_smartos_globalzone()\fP instead.
  151700. .IP \(bu 2
  151701. \fIsalt.utils.is_smartos_zone\fP\&.Please use \fBsalt.utils.platform.is_smartos_zone()\fP instead.
  151702. .IP \(bu 2
  151703. \fIsalt.utils.is_freebsd\fP\&.Please use \fBsalt.utils.platform.is_freebsd()\fP instead.
  151704. .IP \(bu 2
  151705. \fIsalt.utils.is_netbsd\fP\&.Please use \fBsalt.utils.platform.is_netbsd()\fP instead.
  151706. .IP \(bu 2
  151707. \fIsalt.utils.is_openbsd\fP\&.Please use \fBsalt.utils.platform.is_openbsd()\fP instead.
  151708. .IP \(bu 2
  151709. \fIsalt.utils.is_aix\fP\&.Please use \fBsalt.utils.platform.is_aix()\fP instead.
  151710. .IP \(bu 2
  151711. \fIsalt.utils.safe_rm\fP\&.Please use \fBsalt.utils.files.safe_rm()\fP instead.
  151712. .IP \(bu 2
  151713. \fIsalt.utils.is_empty\fP\&.Please use \fBsalt.utils.files.is_empty()\fP instead.
  151714. .IP \(bu 2
  151715. \fIsalt.utils.fopen\fP\&.Please use \fBsalt.utils.files.fopen()\fP instead.
  151716. .IP \(bu 2
  151717. \fIsalt.utils.flopen\fP\&.Please use \fBsalt.utils.files.flopen()\fP instead.
  151718. .IP \(bu 2
  151719. \fIsalt.utils.fpopen\fP\&.Please use \fBsalt.utils.files.fpopen()\fP instead.
  151720. .IP \(bu 2
  151721. \fIsalt.utils.rm_rf\fP\&.Please use \fBsalt.utils.files.rm_rf()\fP instead.
  151722. .IP \(bu 2
  151723. \fIsalt.utils.mkstemp\fP\&.Please use \fBsalt.utils.files.mkstemp()\fP instead.
  151724. .IP \(bu 2
  151725. \fIsalt.utils.istextfile\fP\&.Please use \fBsalt.utils.files.is_text_file()\fP instead.
  151726. .IP \(bu 2
  151727. \fIsalt.utils.is_bin_file\fP\&.Please use \fBsalt.utils.files.is_binary()\fP instead.
  151728. .IP \(bu 2
  151729. \fIsalt.utils.list_files\fP\&.Please use \fBsalt.utils.files.list_files()\fP instead.
  151730. .IP \(bu 2
  151731. \fIsalt.utils.safe_walk\fP\&.Please use \fBsalt.utils.files.safe_walk()\fP instead.
  151732. .IP \(bu 2
  151733. \fIsalt.utils.st_mode_to_octal\fP\&.Please use \fBsalt.utils.files.st_mode_to_octal()\fP instead.
  151734. .IP \(bu 2
  151735. \fIsalt.utils.normalize_mode\fP\&.Please use \fBsalt.utils.files.normalize_mode()\fP instead.
  151736. .IP \(bu 2
  151737. \fIsalt.utils.human_size_to_bytes\fP\&.Please use \fBsalt.utils.files.human_size_to_bytes()\fP instead.
  151738. .IP \(bu 2
  151739. \fIsalt.utils.backup_minion\fP\&.Please use \fBsalt.utils.files.backup_minion()\fP instead.
  151740. .IP \(bu 2
  151741. \fIsalt.utils.str_version_to_evr\fP\&.Please use \fBsalt.utils.pkg.rpm.version_to_evr()\fP instead.
  151742. .IP \(bu 2
  151743. \fIsalt.utils.parse_docstring\fP\&.Please use \fBsalt.utils.doc.parse_docstring()\fP instead.
  151744. .IP \(bu 2
  151745. \fIsalt.utils.compare_versions\fP\&.Please use \fBsalt.utils.versions.compare()\fP instead.
  151746. .IP \(bu 2
  151747. \fIsalt.utils.version_cmp\fP\&.Please use \fBsalt.utils.versions.version_cmp()\fP instead.
  151748. .IP \(bu 2
  151749. \fIsalt.utils.warn_until\fP\&.Please use \fBsalt.utils.versions.warn_until()\fP instead.
  151750. .IP \(bu 2
  151751. \fIsalt.utils.kwargs_warn_until\fP\&.Please use \fBsalt.utils.versions.kwargs_warn_until()\fP instead.
  151752. .IP \(bu 2
  151753. \fIsalt.utils.get_color_theme\fP\&.Please use \fBsalt.utils.color.get_color_theme()\fP instead.
  151754. .IP \(bu 2
  151755. \fIsalt.utils.get_colors\fP\&.Please use \fBsalt.utils.color.get_colors()\fP instead.
  151756. .IP \(bu 2
  151757. \fIsalt.utils.gen_state_tag\fP\&.Please use \fBsalt.utils.state.gen_tag()\fP instead.
  151758. .IP \(bu 2
  151759. \fIsalt.utils.search_onfail_requisites\fP\&.Please use \fBsalt.utils.state.search_onfail_requisites()\fP instead.
  151760. .IP \(bu 2
  151761. \fIsalt.utils.check_onfail_requisites\fP\&.Please use \fBsalt.utils.state.check_onfail_requisites()\fP instead.
  151762. .IP \(bu 2
  151763. \fIsalt.utils.check_state_result\fP\&.Please use \fBsalt.utils.state.check_result()\fP instead.
  151764. .IP \(bu 2
  151765. \fIsalt.utils.get_user\fP\&.Please use \fBsalt.utils.user.get_user()\fP instead.
  151766. .IP \(bu 2
  151767. \fIsalt.utils.get_uid\fP\&.Please use \fBsalt.utils.user.get_uid()\fP instead.
  151768. .IP \(bu 2
  151769. \fIsalt.utils.get_specific_user\fP\&.Please use \fBsalt.utils.user.get_specific_user()\fP instead.
  151770. .IP \(bu 2
  151771. \fIsalt.utils.chugid\fP\&.Please use \fBsalt.utils.user.chugid()\fP instead.
  151772. .IP \(bu 2
  151773. \fIsalt.utils.chugid_and_umask\fP\&.Please use \fBsalt.utils.user.chugid_and_umask()\fP instead.
  151774. .IP \(bu 2
  151775. \fIsalt.utils.get_default_group\fP\&.Please use \fBsalt.utils.user.get_default_group()\fP instead.
  151776. .IP \(bu 2
  151777. \fIsalt.utils.get_group_list\fP\&.Please use \fBsalt.utils.user.get_group_list()\fP instead.
  151778. .IP \(bu 2
  151779. \fIsalt.utils.get_group_dict\fP\&.Please use \fBsalt.utils.user.get_group_dict()\fP instead.
  151780. .IP \(bu 2
  151781. \fIsalt.utils.get_gid_list\fP\&.Please use \fBsalt.utils.user.get_gid_list()\fP instead.
  151782. .IP \(bu 2
  151783. \fIsalt.utils.get_gid\fP\&.Please use \fBsalt.utils.user.get_gid()\fP instead.
  151784. .IP \(bu 2
  151785. \fIsalt.utils.enable_ctrl_logoff_handler\fP\&.Please use \fBsalt.utils.win_functions.enable_ctrl_logoff_handler()\fP instead.
  151786. .IP \(bu 2
  151787. \fIsalt.utils.traverse_dict\fP\&.Please use \fBsalt.utils.data.traverse_dict()\fP instead.
  151788. .IP \(bu 2
  151789. \fIsalt.utils.traverse_dict_and_list\fP\&.Please use \fBsalt.utils.data.traverse_dict_and_list()\fP instead.
  151790. .IP \(bu 2
  151791. \fIsalt.utils.filter_by\fP\&.Please use \fBsalt.utils.data.filter_by()\fP instead.
  151792. .IP \(bu 2
  151793. \fIsalt.utils.subdict_match\fP\&.Please use \fBsalt.utils.data.subdict_match()\fP instead.
  151794. .IP \(bu 2
  151795. \fIsalt.utils.substr_in_list\fP\&.Please use \fBsalt.utils.data.substr_in_list()\fP instead.
  151796. .IP \(bu 2
  151797. \fIsalt.utils.is_dictlist\fP\&.Please use \fBsalt.utils.data.is_dictlist()\fP instead.
  151798. .IP \(bu 2
  151799. \fIsalt.utils.repack_dictlist\fP\&.Please use \fBsalt.utils.data.repack_dictlist()\fP instead.
  151800. .IP \(bu 2
  151801. \fIsalt.utils.compare_dicts\fP\&.Please use \fBsalt.utils.data.compare_dicts()\fP instead.
  151802. .IP \(bu 2
  151803. \fIsalt.utils.compare_lists\fP\&.Please use \fBsalt.utils.data.compare_lists()\fP instead.
  151804. .IP \(bu 2
  151805. \fIsalt.utils.decode_dict\fP\&.Please use \fBsalt.utils.data.encode_dict()\fP instead.
  151806. .IP \(bu 2
  151807. \fIsalt.utils.decode_list\fP\&.Please use \fBsalt.utils.data.encode_list()\fP instead.
  151808. .IP \(bu 2
  151809. \fIsalt.utils.exactly_n\fP\&.Please use \fBsalt.utils.data.exactly_n()\fP instead.
  151810. .IP \(bu 2
  151811. \fIsalt.utils.exactly_one\fP\&.Please use \fBsalt.utils.data.exactly_one()\fP instead.
  151812. .IP \(bu 2
  151813. \fIsalt.utils.is_list\fP\&.Please use \fBsalt.utils.data.is_list()\fP instead.
  151814. .IP \(bu 2
  151815. \fIsalt.utils.is_iter\fP\&.Please use \fBsalt.utils.data.is_iter()\fP instead.
  151816. .IP \(bu 2
  151817. \fIsalt.utils.isorted\fP\&.Please use \fBsalt.utils.data.sorted_ignorecase()\fP instead.
  151818. .IP \(bu 2
  151819. \fIsalt.utils.is_true\fP\&.Please use \fBsalt.utils.data.is_true()\fP instead.
  151820. .IP \(bu 2
  151821. \fIsalt.utils.mysql_to_dict\fP\&.Please use \fBsalt.utils.data.mysql_to_dict()\fP instead.
  151822. .IP \(bu 2
  151823. \fIsalt.utils.simple_types_filter\fP\&.Please use \fBsalt.utils.data.simple_types_filter()\fP instead.
  151824. .IP \(bu 2
  151825. \fIsalt.utils.ip_bracket\fP\&.Please use \fBsalt.utils.zeromq.ip_bracket()\fP instead.
  151826. .IP \(bu 2
  151827. \fIsalt.utils.gen_mac\fP\&.Please use \fBsalt.utils.network.gen_mac()\fP instead.
  151828. .IP \(bu 2
  151829. \fIsalt.utils.mac_str_to_bytes\fP\&.Please use \fBsalt.utils.network.mac_str_to_bytes()\fP instead.
  151830. .IP \(bu 2
  151831. \fIsalt.utils.refresh_dns\fP\&.Please use \fBsalt.utils.network.refresh_dns()\fP instead.
  151832. .IP \(bu 2
  151833. \fIsalt.utils.dns_check\fP\&.Please use \fBsalt.utils.network.dns_check()\fP instead.
  151834. .IP \(bu 2
  151835. \fIsalt.utils.get_context\fP\&.Please use \fBsalt.utils.stringutils.get_context()\fP instead.
  151836. .IP \(bu 2
  151837. \fIsalt.utils.get_master_key\fP\&.Please use \fBsalt.utils.master.get_master_key()\fP instead.
  151838. .IP \(bu 2
  151839. \fIsalt.utils.get_values_of_matching_keys\fP\&.Please use \fBsalt.utils.master.get_values_of_matching_keys()\fP instead.
  151840. .IP \(bu 2
  151841. \fIsalt.utils.date_cast\fP\&.Please use \fBsalt.utils.dateutils.date_cast()\fP instead.
  151842. .IP \(bu 2
  151843. \fIsalt.utils.date_format\fP\&.Please use \fBsalt.utils.dateutils.strftime()\fP instead.
  151844. .IP \(bu 2
  151845. \fIsalt.utils.total_seconds\fP\&.Please use \fBsalt.utils.dateutils.total_seconds()\fP instead.
  151846. .IP \(bu 2
  151847. \fIsalt.utils.find_json\fP\&.Please use \fBsalt.utils.json.find_json()\fP instead.
  151848. .IP \(bu 2
  151849. \fIsalt.utils.import_json\fP\&.Please use \fBsalt.utils.json.import_json()\fP instead.
  151850. .IP \(bu 2
  151851. \fIsalt.utils.namespaced_function\fP\&.Please use \fBsalt.utils.functools.namespaced_function()\fP instead.
  151852. .IP \(bu 2
  151853. \fIsalt.utils.alias_function\fP\&.Please use \fBsalt.utils.functools.alias_function()\fP instead.
  151854. .IP \(bu 2
  151855. \fIsalt.utils.profile_func\fP\&.Please use \fBsalt.utils.profile.profile_func()\fP instead.
  151856. .IP \(bu 2
  151857. \fIsalt.utils.activate_profile\fP\&.Please use \fBsalt.utils.profile.activate_profile()\fP instead.
  151858. .IP \(bu 2
  151859. \fIsalt.utils.output_profile\fP\&.Please use \fBsalt.utils.profile.output_profile()\fP instead.
  151860. .UNINDENT
  151861. .UNINDENT
  151862. .UNINDENT
  151863. .UNINDENT
  151864. .SS salt.auth.Authorize Class Removal
  151865. .INDENT 0.0
  151866. .IP \(bu 2
  151867. The salt.auth.Authorize Class inside of the \fIsalt/auth/__init__.py\fP file has been removed and
  151868. the \fIany_auth\fP method inside of the file \fIsalt/utils/minions.py\fP\&. These method and classes were
  151869. not being used inside of the salt code base.
  151870. .UNINDENT
  151871. .SS Salt 3000.1 Release Notes
  151872. .sp
  151873. Version 3000.1 is a bugfix release for 3000\&.
  151874. .SS Statistics
  151875. .INDENT 0.0
  151876. .IP \(bu 2
  151877. Total Merges: \fB53\fP
  151878. .IP \(bu 2
  151879. Total Issue References: \fB15\fP
  151880. .IP \(bu 2
  151881. Total PR References: \fB54\fP
  151882. .IP \(bu 2
  151883. 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)
  151884. .UNINDENT
  151885. .SS Changelog for v3000..v3000.1
  151886. .sp
  151887. \fIGenerated at: 2020\-03\-27 16:48:41 UTC\fP
  151888. .INDENT 0.0
  151889. .IP \(bu 2
  151890. \fBPR\fP \fI\%#56455\fP: (\fI\%s0undt3ch\fP) Fix gitpython windows requirement
  151891. @ \fI2020\-03\-27 16:31:57 UTC\fP
  151892. .INDENT 2.0
  151893. .IP \(bu 2
  151894. c5a700e01e Merge pull request \fI\%#56455\fP from s0undt3ch/hotfix/gitpython
  151895. .IP \(bu 2
  151896. d9791c393f Revert and fix windows requirements
  151897. .IP \(bu 2
  151898. 4b573c1c94 Revert "Fix win deps"
  151899. .UNINDENT
  151900. .IP \(bu 2
  151901. \fBPR\fP \fI\%#56446\fP: (\fI\%frogunder\fP) 3000.1 releasenotes updates
  151902. @ \fI2020\-03\-24 20:28:23 UTC\fP
  151903. .INDENT 2.0
  151904. .IP \(bu 2
  151905. 7ba36325d9 Merge pull request \fI\%#56446\fP from frogunder/releasenotes_3000.1_updates
  151906. .IP \(bu 2
  151907. 6b47f474af 3000.1 releasenotes updates
  151908. .UNINDENT
  151909. .IP \(bu 2
  151910. \fBPR\fP \fI\%#56435\fP: (\fI\%twangboy\fP) Update mac build scripts
  151911. @ \fI2020\-03\-24 19:47:40 UTC\fP
  151912. .INDENT 2.0
  151913. .IP \(bu 2
  151914. 4d2bc7004d Merge pull request \fI\%#56435\fP from twangboy/update_mac_build_scripts
  151915. .IP \(bu 2
  151916. 5d244b0aa6 Merge branch \(aqmaster\(aq into update_mac_build_scripts
  151917. .IP \(bu 2
  151918. 8fdf52a243 Update gitpython to 2.1.15
  151919. .IP \(bu 2
  151920. afcedc5232 Remove \-\-ignore\-installed
  151921. .IP \(bu 2
  151922. e6cc2a6192 Separate pyobjc requirements
  151923. .IP \(bu 2
  151924. 262ad2e98a Compile static requirements
  151925. .IP \(bu 2
  151926. 224f72d0f2 Update noxfile and .precommit
  151927. .IP \(bu 2
  151928. 68a36f2e37 Add req_ext.txt
  151929. .IP \(bu 2
  151930. 5851a5c2cd Roll back changes, fix dependencies
  151931. .UNINDENT
  151932. .IP \(bu 2
  151933. \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)
  151934. .IP \(bu 2
  151935. \fBPR\fP \fI\%#56436\fP: (\fI\%Ch3LL\fP) Fix \fI\%#56433\fP \- test_pip_installed_specific_env
  151936. @ \fI2020\-03\-24 19:47:20 UTC\fP
  151937. .INDENT 2.0
  151938. .IP \(bu 2
  151939. 8a8ae8ebe4 Merge pull request \fI\%#56436\fP from Ch3LL/pip_custom_pypi
  151940. .IP \(bu 2
  151941. 55655ff96c Merge branch \(aqmaster\(aq into pip_custom_pypi
  151942. .UNINDENT
  151943. .IP \(bu 2
  151944. \fBPR\fP \fI\%#56423\fP: (\fI\%Ch3LL\fP) Update changelog with package fixes
  151945. @ \fI2020\-03\-24 16:42:17 UTC\fP
  151946. .INDENT 2.0
  151947. .IP \(bu 2
  151948. 3a993d73a9 Merge pull request \fI\%#56423\fP from Ch3LL/changelog_again
  151949. .IP \(bu 2
  151950. 963c16e1a7 update pr number for mac build changes in changelog
  151951. .IP \(bu 2
  151952. 83e22b77c7 Update changelog with package fixes
  151953. .UNINDENT
  151954. .IP \(bu 2
  151955. \fBPR\fP \fI\%#56417\fP: (\fI\%twangboy\fP) Update mac build scripts
  151956. @ \fI2020\-03\-23 18:45:34 UTC\fP
  151957. .INDENT 2.0
  151958. .IP \(bu 2
  151959. d2a5bd8add Merge pull request \fI\%#56417\fP from twangboy/update_mac_build_scripts
  151960. .IP \(bu 2
  151961. 3bda8ddb82 Update noxfile and pre\-commit
  151962. .IP \(bu 2
  151963. de58c52d66 Merge branch \(aqupdate_mac_build_scripts\(aq of \fI\%https://github.com/twangboy/salt\fP into update_mac_build_scripts
  151964. .INDENT 2.0
  151965. .IP \(bu 2
  151966. e7f08d5349 Update static requirements
  151967. .IP \(bu 2
  151968. a53977de5b Merge branch \(aqupdate_mac_build_scripts\(aq of github.com:twangboy/salt into update_mac_build_scripts
  151969. .IP \(bu 2
  151970. 04e5cde9dd \fIpkg/osx/req_ext.txt\fP no longer exists
  151971. .IP \(bu 2
  151972. be4a272d07 Update static requirements
  151973. .UNINDENT
  151974. .IP \(bu 2
  151975. 02dfe4119c Add pyobjc in its own requirements file
  151976. .IP \(bu 2
  151977. 6b2ac2be64 Remove pyobjc, enforce pip install location
  151978. .IP \(bu 2
  151979. 30ca5d04ec Remove cryptography, it gets installed by pyopenssl
  151980. .IP \(bu 2
  151981. fda8abf4a8 Update static requirements
  151982. .IP \(bu 2
  151983. 732ecc83c1 Update pre\-commit config
  151984. .IP \(bu 2
  151985. 1fa9864e3d Don\(aqt set a version for pyopenssl
  151986. .IP \(bu 2
  151987. 461b198978 Update dependencies, remove req_ext.txt
  151988. .UNINDENT
  151989. .IP \(bu 2
  151990. \fBPR\fP \fI\%#56418\fP: (\fI\%Ch3LL\fP) Ensure version.py included before we install
  151991. @ \fI2020\-03\-23 18:27:46 UTC\fP
  151992. .INDENT 2.0
  151993. .IP \(bu 2
  151994. 74575a6993 Merge pull request \fI\%#56418\fP from Ch3LL/egg_version
  151995. .IP \(bu 2
  151996. 85d7c784ef Fix integration setup egg test
  151997. .IP \(bu 2
  151998. a8a22a4040 Ensure version.py included before we install
  151999. .IP \(bu 2
  152000. 86fe450c82 Fix \fI\%#56433\fP \- test_pip_installed_specific_env
  152001. .UNINDENT
  152002. .IP \(bu 2
  152003. \fBPR\fP \fI\%#56403\fP: (\fI\%frogunder\fP) update 3000.1 releasenotes
  152004. @ \fI2020\-03\-17 23:50:21 UTC\fP
  152005. .INDENT 2.0
  152006. .IP \(bu 2
  152007. 249367b462 Merge pull request \fI\%#56403\fP from frogunder/update_releasenotes_3000.1
  152008. .IP \(bu 2
  152009. 9d972c96e8 update 3000.1 releasenotes
  152010. .UNINDENT
  152011. .IP \(bu 2
  152012. \fBPR\fP \fI\%#56398\fP: (\fI\%Ch3LL\fP) Add additional PRs to 3000.1 changelog
  152013. @ \fI2020\-03\-17 18:08:15 UTC\fP
  152014. .INDENT 2.0
  152015. .IP \(bu 2
  152016. 0de5c1e136 Merge pull request \fI\%#56398\fP from Ch3LL/change_3000.1
  152017. .IP \(bu 2
  152018. 79c337b3db Add additional PRs to 3000.1 changelog
  152019. .UNINDENT
  152020. .IP \(bu 2
  152021. \fBPR\fP \fI\%#56376\fP: (\fI\%twangboy\fP) Fix win deps
  152022. @ \fI2020\-03\-17 17:02:46 UTC\fP
  152023. .INDENT 2.0
  152024. .IP \(bu 2
  152025. 5ac09decb9 Merge pull request \fI\%#56376\fP from twangboy/fix_win_deps
  152026. .IP \(bu 2
  152027. 6c83beeb9e Fix win deps
  152028. .UNINDENT
  152029. .IP \(bu 2
  152030. \fBPR\fP \fI\%#56378\fP: (\fI\%Ch3LL\fP) Include _version.py if building wheel
  152031. @ \fI2020\-03\-17 17:01:33 UTC\fP
  152032. .INDENT 2.0
  152033. .IP \(bu 2
  152034. e72a8d2cbc Merge pull request \fI\%#56378\fP from Ch3LL/wheel_version
  152035. .IP \(bu 2
  152036. 22cccd2107 Use virtualenv test helper that already exists and fix setup.py
  152037. .IP \(bu 2
  152038. 293b1fddf2 cleanup code
  152039. .IP \(bu 2
  152040. ddfb065bfb add bdist_wheel test
  152041. .IP \(bu 2
  152042. fceff0287c ensure name is included in new version
  152043. .IP \(bu 2
  152044. 0cbf6d3246 Ensure SaltStackVersion attributes in _version.py correct
  152045. .IP \(bu 2
  152046. 39cdf5382d Include _version.py if building wheel
  152047. .UNINDENT
  152048. .IP \(bu 2
  152049. \fBPR\fP \fI\%#56387\fP: (\fI\%bryceml\fP) update gpg key expiration date
  152050. @ \fI2020\-03\-17 16:59:30 UTC\fP
  152051. .INDENT 2.0
  152052. .IP \(bu 2
  152053. 6a9326fb70 Merge pull request \fI\%#56387\fP from bryceml/update_gpg_key
  152054. .IP \(bu 2
  152055. b74b26ccf3 update gpg key expiration date
  152056. .UNINDENT
  152057. .IP \(bu 2
  152058. \fBPR\fP \fI\%#55822\fP: (\fI\%cmcmarrow\fP) fix_Indefinitely_code
  152059. @ \fI2020\-03\-16 17:34:11 UTC\fP
  152060. .INDENT 2.0
  152061. .IP \(bu 2
  152062. fcee692c4a Merge pull request \fI\%#55822\fP from cmcmarrow/win_task_repeat
  152063. .IP \(bu 2
  152064. e257fb2804 Merge branch \(aqmaster\(aq into win_task_repeat
  152065. .IP \(bu 2
  152066. 07cada0f8f Merge branch \(aqmaster\(aq into win_task_repeat
  152067. .IP \(bu 2
  152068. 4b80301338 Merge branch \(aqmaster\(aq into win_task_repeat
  152069. .IP \(bu 2
  152070. 9df94569c4 Merge branch \(aqmaster\(aq into win_task_repeat
  152071. .IP \(bu 2
  152072. 22a2d0b9ec Merge branch \(aqmaster\(aq into win_task_repeat
  152073. .IP \(bu 2
  152074. dee9c134e7 Merge branch \(aqmaster\(aq into win_task_repeat
  152075. .IP \(bu 2
  152076. beaf05d514 Update test_win_task.py
  152077. .IP \(bu 2
  152078. 6e923f75fc Merge branch \(aqmaster\(aq into win_task_repeat
  152079. .IP \(bu 2
  152080. 5839da81ee add test
  152081. .IP \(bu 2
  152082. 2aa6338ed0 fix Indefinitely code
  152083. .UNINDENT
  152084. .IP \(bu 2
  152085. \fBPR\fP \fI\%#56373\fP: (\fI\%frogunder\fP) update 3000.1 releasenotes
  152086. @ \fI2020\-03\-13 18:58:43 UTC\fP
  152087. .INDENT 2.0
  152088. .IP \(bu 2
  152089. c11ef89200 Merge pull request \fI\%#56373\fP from frogunder/releasenotes_3000.1
  152090. .IP \(bu 2
  152091. a5ca8b5277 Fix doc test errors
  152092. .IP \(bu 2
  152093. 47e483187e update 3000.1 releasenotes
  152094. .UNINDENT
  152095. .IP \(bu 2
  152096. \fBPR\fP \fI\%#56365\fP: (\fI\%Ch3LL\fP) Update 3000.1 changelog
  152097. @ \fI2020\-03\-13 17:21:02 UTC\fP
  152098. .INDENT 2.0
  152099. .IP \(bu 2
  152100. 62857a9f0e Merge pull request \fI\%#56365\fP from Ch3LL/changelog_3000.1
  152101. .IP \(bu 2
  152102. 851d7d8fc7 Update 3000.1 changelog
  152103. .UNINDENT
  152104. .IP \(bu 2
  152105. \fBPR\fP \fI\%#56360\fP: (\fI\%Ch3LL\fP) Use virtualenv 20.0.10 for macosx tests
  152106. @ \fI2020\-03\-13 16:39:57 UTC\fP
  152107. .INDENT 2.0
  152108. .IP \(bu 2
  152109. a660e96fb2 Merge pull request \fI\%#56360\fP from Ch3LL/mac_virtual
  152110. .IP \(bu 2
  152111. abda125086 Update static requirements files
  152112. .IP \(bu 2
  152113. dca3390c0c skip zcbuildout state test when virtualenv 20.0.0
  152114. .IP \(bu 2
  152115. fdeae1f0e1 Use virtualenv 20.0.10 for macosx tests
  152116. .UNINDENT
  152117. .IP \(bu 2
  152118. \fBISSUE\fP \fI\%#56324\fP: (\fI\%kiemlicz\fP) Cannot use Saltcheck module (refs: \fI\%#56327\fP)
  152119. .IP \(bu 2
  152120. \fBPR\fP \fI\%#56327\fP: (\fI\%mchugh19\fP) keep cache_copied_files variable a list
  152121. @ \fI2020\-03\-13 16:39:32 UTC\fP
  152122. .INDENT 2.0
  152123. .IP \(bu 2
  152124. d8fc07274c Merge pull request \fI\%#56327\fP from mchugh19/56324
  152125. .IP \(bu 2
  152126. e1e2df2b1d Merge branch \(aqmaster\(aq into 56324
  152127. .IP \(bu 2
  152128. 6d7572706d use includes for saltcheck integration test
  152129. .IP \(bu 2
  152130. 5b7073b01d keep cache_copied_files variable a list
  152131. .UNINDENT
  152132. .IP \(bu 2
  152133. \fBPR\fP \fI\%#56023\fP: (\fI\%cmcmarrow\fP) add fix for bin_env
  152134. @ \fI2020\-03\-13 16:39:09 UTC\fP
  152135. .INDENT 2.0
  152136. .IP \(bu 2
  152137. 2d31d61ab9 Merge pull request \fI\%#56023\fP from cmcmarrow/binary_fix_pip_bin_env
  152138. .IP \(bu 2
  152139. f780fd013e Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  152140. .IP \(bu 2
  152141. d642c7c270 Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  152142. .IP \(bu 2
  152143. 82b39d26f8 Merge branch \(aqbinary_fix_pip_bin_env\(aq of \fI\%https://github.com/cmcmarrow/salt\fP into binary_fix_pip_bin_env
  152144. .INDENT 2.0
  152145. .IP \(bu 2
  152146. a5fa22528a Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  152147. .UNINDENT
  152148. .IP \(bu 2
  152149. 10ca0fa5d6 fix space
  152150. .IP \(bu 2
  152151. 22fff6c180 fix _pip_bin_env
  152152. .IP \(bu 2
  152153. d5425e6630 Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  152154. .IP \(bu 2
  152155. ceda3fde00 add full support for when missing kwargs or args
  152156. .IP \(bu 2
  152157. cf4ab215b5 add fix for bin_env
  152158. .UNINDENT
  152159. .IP \(bu 2
  152160. \fBPR\fP \fI\%#56310\fP: (\fI\%twangboy\fP) Only process ADMX files when loading policies
  152161. @ \fI2020\-03\-11 23:47:50 UTC\fP
  152162. .INDENT 2.0
  152163. .IP \(bu 2
  152164. 19bb6aae0c Merge pull request \fI\%#56310\fP from twangboy/fix_lgpo_admx
  152165. .IP \(bu 2
  152166. 4bc5b05586 Fix some lint
  152167. .IP \(bu 2
  152168. ce282f9754 Mark destructive test
  152169. .IP \(bu 2
  152170. 8af09c31ca Add test case
  152171. .IP \(bu 2
  152172. 547d35cf4c Only process ADMX files when loading policies
  152173. .UNINDENT
  152174. .IP \(bu 2
  152175. \fBPR\fP \fI\%#56272\fP: (\fI\%twangboy\fP) Properly resolve the policy name
  152176. @ \fI2020\-03\-11 22:11:02 UTC\fP
  152177. .INDENT 2.0
  152178. .IP \(bu 2
  152179. 2d78931eaf Merge pull request \fI\%#56272\fP from twangboy/fix_lgpo_names
  152180. .IP \(bu 2
  152181. 233ed12472 Add comments to helper function
  152182. .IP \(bu 2
  152183. a7369e41d7 Remove redundent code... some more
  152184. .IP \(bu 2
  152185. 1db3052b94 Consolidate duplicate code
  152186. .IP \(bu 2
  152187. b25b56299d Fix failing PY2 tests
  152188. .IP \(bu 2
  152189. 36a24ac28f Only load adml data once
  152190. .IP \(bu 2
  152191. bc13be6850 Add some tests
  152192. .IP \(bu 2
  152193. 2e9be6e461 Properly resolve the policy name
  152194. .UNINDENT
  152195. .IP \(bu 2
  152196. \fBPR\fP \fI\%#56358\fP: (\fI\%s0undt3ch\fP) Fix version instantiation when minor is an empty string
  152197. @ \fI2020\-03\-11 22:10:04 UTC\fP
  152198. .INDENT 2.0
  152199. .IP \(bu 2
  152200. c6c6e2e3d9 Merge pull request \fI\%#56358\fP from s0undt3ch/hotfix/version\-parsing
  152201. .IP \(bu 2
  152202. cb22e78502 Fix version instantiation when minor is an empty string
  152203. .UNINDENT
  152204. .IP \(bu 2
  152205. \fBPR\fP \fI\%#56160\fP: (\fI\%twangboy\fP) Fix issue with existing reg_dword entries
  152206. @ \fI2020\-03\-11 22:09:21 UTC\fP
  152207. .INDENT 2.0
  152208. .IP \(bu 2
  152209. b33047c574 Merge pull request \fI\%#56160\fP from twangboy/fix_reg_dword
  152210. .IP \(bu 2
  152211. 80650c2a8c Make test more explicit
  152212. .IP \(bu 2
  152213. 67dd1c18c7 Fix issue with existing reg_dword entries
  152214. .UNINDENT
  152215. .IP \(bu 2
  152216. \fBPR\fP \fI\%#56337\fP: (\fI\%twangboy\fP) Handle Adapter Type 53 and Undefined Types
  152217. @ \fI2020\-03\-11 22:08:19 UTC\fP
  152218. .INDENT 2.0
  152219. .IP \(bu 2
  152220. 8f23706871 Merge pull request \fI\%#56337\fP from twangboy/fix_win_network_type
  152221. .IP \(bu 2
  152222. 18a31a0b22 Merge branch \(aqmaster\(aq into fix_win_network_type
  152223. .IP \(bu 2
  152224. d92914ad91 Merge branch \(aqmaster\(aq into fix_win_network_type
  152225. .IP \(bu 2
  152226. 224629bdeb Handle Adapter Type 53 and Undefined Types
  152227. .UNINDENT
  152228. .IP \(bu 2
  152229. \fBPR\fP \fI\%#56060\fP: (\fI\%twangboy\fP) Fix regex string for **Del and **DelVals
  152230. @ \fI2020\-03\-11 22:05:43 UTC\fP
  152231. .INDENT 2.0
  152232. .IP \(bu 2
  152233. e551ff6a31 Merge pull request \fI\%#56060\fP from twangboy/fix_lgpo_regex
  152234. .IP \(bu 2
  152235. ca260ef582 Use byte\-strings in the test
  152236. .IP \(bu 2
  152237. 7c81874a5b Add some tests
  152238. .IP \(bu 2
  152239. 944b022f33 Fix regex string for **Del and **DelVals
  152240. .UNINDENT
  152241. .IP \(bu 2
  152242. \fBISSUE\fP \fI\%#56131\fP: (\fI\%thusoy\fP) Salt v3000 crashes with unless clause if pip is missing (refs: \fI\%#56215\fP)
  152243. .IP \(bu 2
  152244. \fBPR\fP \fI\%#56215\fP: (\fI\%dwoz\fP) Fix for unless requisite when pip is not installed
  152245. @ \fI2020\-03\-11 22:04:30 UTC\fP
  152246. .INDENT 2.0
  152247. .IP \(bu 2
  152248. c9bc9431c1 Merge pull request \fI\%#56215\fP from dwoz/issue\-56131
  152249. .IP \(bu 2
  152250. 5dd8f8eabe Fix linter
  152251. .IP \(bu 2
  152252. 7492c2f7c7 Remove crufty prints from test
  152253. .IP \(bu 2
  152254. 8ceaa6e6f3 Only remove pip relasted modules
  152255. .IP \(bu 2
  152256. 69b21e5e68 Add regression test for issue 56131
  152257. .IP \(bu 2
  152258. 9d23f55adc Fix for unless requisite when pip is not installed
  152259. .UNINDENT
  152260. .IP \(bu 2
  152261. \fBPR\fP \fI\%#56339\fP: (\fI\%twangboy\fP) Fix win_dns_client when used with scheduler
  152262. @ \fI2020\-03\-11 22:01:32 UTC\fP
  152263. .INDENT 2.0
  152264. .IP \(bu 2
  152265. 74b67ea741 Merge pull request \fI\%#56339\fP from twangboy/fix_win_dns_client
  152266. .IP \(bu 2
  152267. d6a4fbe85d Fix bad test (lint)
  152268. .IP \(bu 2
  152269. 47bd67373f Add some tests
  152270. .IP \(bu 2
  152271. 995975649a Add missing import, improve docs
  152272. .UNINDENT
  152273. .IP \(bu 2
  152274. \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)
  152275. .IP \(bu 2
  152276. \fBPR\fP \fI\%#56290\fP: (\fI\%lorengordon\fP) Ensures popping lgpo.secedit_data does not throw KeyError
  152277. @ \fI2020\-03\-11 17:27:04 UTC\fP
  152278. .INDENT 2.0
  152279. .IP \(bu 2
  152280. 7701e8762d Merge pull request \fI\%#56290\fP from lorengordon/pop\-secdata
  152281. .IP \(bu 2
  152282. 62453bb6ce Merge branch \(aqmaster\(aq into pop\-secdata
  152283. .IP \(bu 2
  152284. 95d5cea9ff Merge branch \(aqmaster\(aq into pop\-secdata
  152285. .IP \(bu 2
  152286. 2979158a8b Tests the \fIif _secedits:\fP logic path in \fIlgpo.set_\fP
  152287. .IP \(bu 2
  152288. d1f776178c Ensures popping lgpo.secedit_data does not throw KeyError
  152289. .UNINDENT
  152290. .IP \(bu 2
  152291. \fBISSUE\fP \fI\%#56119\fP: (\fI\%finalduty\fP) Release notes for v3000 do not mention changes to \fIslspath\fP variable (refs: \fI\%#56341\fP)
  152292. .IP \(bu 2
  152293. \fBPR\fP \fI\%#56341\fP: (\fI\%dwoz\fP) Revert "Don\(aqt remove one directory level from slspath"
  152294. @ \fI2020\-03\-11 17:03:33 UTC\fP
  152295. .INDENT 2.0
  152296. .IP \(bu 2
  152297. 84c60708cd Merge pull request \fI\%#56341\fP from dwoz/issue\-56119
  152298. .IP \(bu 2
  152299. afe6e84c36 Clarify slspath documentation
  152300. .IP \(bu 2
  152301. 6dfc098fd1 Add debug for test asserts
  152302. .IP \(bu 2
  152303. 9fa9dab8b2 Fix linter warts
  152304. .IP \(bu 2
  152305. fd702bdd44 Add regression test for \fI\%#56119\fP
  152306. .IP \(bu 2
  152307. 3d3b673cec Revert "Don\(aqt remove one directory level from slspath"
  152308. .UNINDENT
  152309. .IP \(bu 2
  152310. \fBPR\fP \fI\%#56185\fP: (\fI\%terminalmage\fP) Fix regression in service states with reload argument
  152311. @ \fI2020\-03\-11 16:45:58 UTC\fP
  152312. .INDENT 2.0
  152313. .IP \(bu 2
  152314. 4f9813a49c Merge pull request \fI\%#56185\fP from terminalmage/issue56167
  152315. .IP \(bu 2
  152316. 65b3f4c9a0 Merge branch \(aqmaster\(aq into issue56167
  152317. .IP \(bu 2
  152318. 7b41a00b4f Merge branch \(aqmaster\(aq into issue56167
  152319. .IP \(bu 2
  152320. 8f7034d946 Merge branch \(aqmaster\(aq into issue56167
  152321. .IP \(bu 2
  152322. e9fbb634e1 Skip on OSX for now
  152323. .IP \(bu 2
  152324. 5996280241 Add __opts__ and __grains__ just in case
  152325. .IP \(bu 2
  152326. af3e841d08 Fix failing test
  152327. .IP \(bu 2
  152328. 586f21aedc Add functional test
  152329. .IP \(bu 2
  152330. 1afb9c10f0 Fix regression in service states with reload argument
  152331. .UNINDENT
  152332. .IP \(bu 2
  152333. \fBPR\fP \fI\%#56068\fP: (\fI\%s0undt3ch\fP) Update the bootstrap script to latest version, v2020.02.24
  152334. @ \fI2020\-03\-11 16:44:23 UTC\fP
  152335. .INDENT 2.0
  152336. .IP \(bu 2
  152337. 74f8b2a926 Merge pull request \fI\%#56068\fP from s0undt3ch/hotfix/update\-bootstrap
  152338. .IP \(bu 2
  152339. ce83b190ed Merge branch \(aqmaster\(aq into hotfix/update\-bootstrap
  152340. .IP \(bu 2
  152341. ccd231d82d Merge branch \(aqmaster\(aq into hotfix/update\-bootstrap
  152342. .IP \(bu 2
  152343. 88a52f88ff Update the bootstrap script to latest version, v2020.02.24
  152344. .IP \(bu 2
  152345. 012fb5bc4b Update the bootstrap script to latest version, v2020.02.04
  152346. .UNINDENT
  152347. .IP \(bu 2
  152348. \fBPR\fP \fI\%#56321\fP: (\fI\%oeuftete\fP) Tidy up formatting in boto_secgroup docs
  152349. @ \fI2020\-03\-11 08:14:48 UTC\fP
  152350. .INDENT 2.0
  152351. .IP \(bu 2
  152352. 154257e2e9 Merge pull request \fI\%#56321\fP from oeuftete/tidy\-boto\-secgroup\-docs
  152353. .IP \(bu 2
  152354. 616f11b33e Merge branch \(aqmaster\(aq into tidy\-boto\-secgroup\-docs
  152355. .IP \(bu 2
  152356. 412bb4d62d Tidy up formatting in boto_secgroup docs
  152357. .UNINDENT
  152358. .IP \(bu 2
  152359. \fBPR\fP \fI\%#56336\fP: (\fI\%Ch3LL\fP) Fix test_issue_2594_non_invalidated_cache test (update zope.interface)
  152360. @ \fI2020\-03\-11 00:08:43 UTC\fP
  152361. .INDENT 2.0
  152362. .IP \(bu 2
  152363. 11d33e3d90 Merge pull request \fI\%#56336\fP from Ch3LL/fix_56330
  152364. .IP \(bu 2
  152365. bbf37e090b Fix test_issue_2594_non_invalidated_cache test (update zope.interface)
  152366. .UNINDENT
  152367. .IP \(bu 2
  152368. \fBPR\fP \fI\%#56346\fP: (\fI\%frogunder\fP) Update man pages to 3000.1
  152369. @ \fI2020\-03\-11 00:07:31 UTC\fP
  152370. .INDENT 2.0
  152371. .IP \(bu 2
  152372. a640bd30fc Merge pull request \fI\%#56346\fP from frogunder/man_pages_3000_1
  152373. .IP \(bu 2
  152374. 6d7c1b6482 Update man pages to 3000.1
  152375. .UNINDENT
  152376. .IP \(bu 2
  152377. \fBPR\fP \fI\%#56099\fP: (\fI\%s0undt3ch\fP) Fix Windows and macOS requirements handling in setup.py
  152378. @ \fI2020\-03\-11 00:04:37 UTC\fP
  152379. .INDENT 2.0
  152380. .IP \(bu 2
  152381. 2f783d247e Merge pull request \fI\%#56099\fP from s0undt3ch/hotfix/requirements
  152382. .IP \(bu 2
  152383. c19f4a3fae Merge branch \(aqmaster\(aq into hotfix/requirements
  152384. .IP \(bu 2
  152385. 1e7bc8fc8f Also take into account macOS requirements
  152386. .IP \(bu 2
  152387. 7eef14952c Also include req_win.txt
  152388. .UNINDENT
  152389. .IP \(bu 2
  152390. \fBPR\fP \fI\%#56218\fP: (\fI\%raddessi\fP) Changed StrictVersion checking of setuptools to LooseVersion
  152391. @ \fI2020\-03\-10 23:59:54 UTC\fP
  152392. .INDENT 2.0
  152393. .IP \(bu 2
  152394. 7c4d879073 Merge pull request \fI\%#56218\fP from raddessi/master.v3000\-conda
  152395. .IP \(bu 2
  152396. 44556f6d57 Merge branch \(aqmaster\(aq into master.v3000\-conda
  152397. .IP \(bu 2
  152398. 566c03b786 Merge branch \(aqmaster\(aq into master.v3000\-conda
  152399. .IP \(bu 2
  152400. 82773a9799 Removed now\-unused StrictVersion import from setup.py
  152401. .IP \(bu 2
  152402. 31bb0f7cd1 Changed StrictVersion checking of setuptools to LooseVersion
  152403. .UNINDENT
  152404. .IP \(bu 2
  152405. \fBPR\fP \fI\%#56128\fP: (\fI\%waynew\fP) Update CHANGELOG with release date and unreleased.
  152406. @ \fI2020\-03\-10 23:58:15 UTC\fP
  152407. .INDENT 2.0
  152408. .IP \(bu 2
  152409. acbd3556e5 Merge pull request \fI\%#56128\fP from waynew/master
  152410. .IP \(bu 2
  152411. e3216db3e5 Update CHANGELOG with release date and unreleased.
  152412. .UNINDENT
  152413. .IP \(bu 2
  152414. \fBPR\fP \fI\%#55937\fP: (\fI\%twangboy\fP) Update windows build scripts
  152415. @ \fI2020\-03\-10 23:55:55 UTC\fP
  152416. .INDENT 2.0
  152417. .IP \(bu 2
  152418. 12140545ab Merge pull request \fI\%#55937\fP from twangboy/update_deps
  152419. .IP \(bu 2
  152420. f00a504a48 Add back the pylauncher
  152421. .IP \(bu 2
  152422. 30b9c32356 Revert changes to req and req_win
  152423. .IP \(bu 2
  152424. 98dc0e970c Fix some warts in the build_env scripts
  152425. .IP \(bu 2
  152426. 8404141f65 Update dependencies
  152427. .UNINDENT
  152428. .IP \(bu 2
  152429. \fBPR\fP \fI\%#55906\fP: (\fI\%sjorge\fP) smartos.vm_present could not handle nics with vrrp_vrid property
  152430. @ \fI2020\-03\-10 23:54:44 UTC\fP
  152431. .INDENT 2.0
  152432. .IP \(bu 2
  152433. 485a47cdf1 Merge pull request \fI\%#55906\fP from sjorge/smartos_vrrp
  152434. .IP \(bu 2
  152435. 5bd7dd009a Merge branch \(aqmaster\(aq into smartos_vrrp
  152436. .IP \(bu 2
  152437. f77719c179 smartos state should handle vrrp config
  152438. .UNINDENT
  152439. .IP \(bu 2
  152440. \fBISSUE\fP \fI\%#55185\fP: (\fI\%sjorge\fP) salt.modules.pdbedit doesn\(aqt work on samba older than 4.8 (refs: \fI\%#55894\fP)
  152441. .IP \(bu 2
  152442. \fBPR\fP \fI\%#55894\fP: (\fI\%sjorge\fP) \fI\%#55185\fP pdbedit module should check for version 4.8.x or newer
  152443. @ \fI2020\-03\-10 23:54:21 UTC\fP
  152444. .INDENT 2.0
  152445. .IP \(bu 2
  152446. 1fa8555360 Merge pull request \fI\%#55894\fP from sjorge/pdbedit_55185
  152447. .IP \(bu 2
  152448. 9dc7b71122 Merge branch \(aqmaster\(aq into pdbedit_55185
  152449. .UNINDENT
  152450. .IP \(bu 2
  152451. \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)
  152452. .IP \(bu 2
  152453. \fBPR\fP \fI\%#56197\fP: (\fI\%lorengordon\fP) Allows use of inline powershell for cmd.script args
  152454. @ \fI2020\-03\-10 23:52:47 UTC\fP
  152455. .INDENT 2.0
  152456. .IP \(bu 2
  152457. 3e57d58db2 Merge pull request \fI\%#56197\fP from lorengordon/file\-or\-no\-file
  152458. .IP \(bu 2
  152459. fcd1699f5e Allows use of inline powershell for cmd.script args
  152460. .IP \(bu 2
  152461. be2e67c0a0 Tests that powershell processes inline powershell in args
  152462. .UNINDENT
  152463. .IP \(bu 2
  152464. \fBISSUE\fP \fI\%#53152\fP: (\fI\%jbeaird\fP) daily highstate fails after 2019.2 upgrade (refs: \fI\%#56149\fP)
  152465. .IP \(bu 2
  152466. \fBPR\fP \fI\%#56149\fP: (\fI\%garethgreenaway\fP) [master] Fix to scheduler for use of when and splay
  152467. @ \fI2020\-03\-10 23:52:16 UTC\fP
  152468. .INDENT 2.0
  152469. .IP \(bu 2
  152470. 547c73e4cc Merge pull request \fI\%#56149\fP from garethgreenaway/53152_fix_schedule_when_splay
  152471. .IP \(bu 2
  152472. 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.
  152473. .UNINDENT
  152474. .IP \(bu 2
  152475. \fBPR\fP \fI\%#56345\fP: (\fI\%s0undt3ch\fP) Bump Windows Py3 builds timeout to 10 hours
  152476. @ \fI2020\-03\-10 20:43:41 UTC\fP
  152477. .INDENT 2.0
  152478. .IP \(bu 2
  152479. 192ce76a95 Merge pull request \fI\%#56345\fP from s0undt3ch/hotfix/win\-py3\-timeouts
  152480. .IP \(bu 2
  152481. 11bdc38ae3 Bump Windows 2019 Py3 builds timeout to 10 hours
  152482. .UNINDENT
  152483. .IP \(bu 2
  152484. \fBPR\fP \fI\%#55888\fP: (\fI\%s0undt3ch\fP) Disable codecov PR comments and status checks
  152485. @ \fI2020\-03\-10 15:45:52 UTC\fP
  152486. .INDENT 2.0
  152487. .IP \(bu 2
  152488. a204906c80 Merge pull request \fI\%#55888\fP from s0undt3ch/hotfix/coverage\-reporting
  152489. .IP \(bu 2
  152490. 4b8dc8a586 Disable codecov PR comments and status checks
  152491. .IP \(bu 2
  152492. cb0f4dff87 Apply the suggestion given by the codecov team
  152493. .UNINDENT
  152494. .IP \(bu 2
  152495. \fBISSUE\fP \fI\%#56177\fP: (\fI\%jodok\fP) mysql states fail because conv is \(ga\(ga instead of None (refs: \fI\%#56174\fP)
  152496. .IP \(bu 2
  152497. \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)
  152498. .IP \(bu 2
  152499. \fBISSUE\fP \fI\%#56124\fP: (\fI\%ymasson\fP) MySQL state and module broken after upgrade to 3000 (refs: \fI\%#56174\fP)
  152500. .IP \(bu 2
  152501. \fBPR\fP \fI\%#56174\fP: (\fI\%garethgreenaway\fP) [master] MySQL module fixes
  152502. @ \fI2020\-03\-10 04:03:23 UTC\fP
  152503. .INDENT 2.0
  152504. .IP \(bu 2
  152505. 3e913631bb Merge pull request \fI\%#56174\fP from garethgreenaway/56124_mysql_module_state_fixes
  152506. .IP \(bu 2
  152507. fcc061368b Removing quotes from the plugin_status query. Updating tests to reflect changes.
  152508. .IP \(bu 2
  152509. 3dc66393b2 Adding better error reporting around plugins. Updating tests. Only attempt to delete a user if they exist.
  152510. .IP \(bu 2
  152511. 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.
  152512. .IP \(bu 2
  152513. 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.
  152514. .IP \(bu 2
  152515. 5bfd67c13e Minor tweak to mysql module. Fixing failing tests.
  152516. .IP \(bu 2
  152517. e871a3ffd1 Various fixes to the mysql module to break out the handling of user management into different functions based on MySQL variant.
  152518. .UNINDENT
  152519. .IP \(bu 2
  152520. \fBISSUE\fP \fI\%#56063\fP: (\fI\%terminalmage\fP) [master] Traceback in esxi grain module on import (refs: \fI\%#56094\fP)
  152521. .IP \(bu 2
  152522. \fBPR\fP \fI\%#56094\fP: (\fI\%dwoz\fP) Fix type error in TornadoImporter
  152523. @ \fI2020\-03\-10 01:39:08 UTC\fP
  152524. .INDENT 2.0
  152525. .IP \(bu 2
  152526. 211c88bfbc Merge pull request \fI\%#56094\fP from dwoz/fix_56063
  152527. .IP \(bu 2
  152528. 7b1632e8e3 Fix type error in TornadoImporter
  152529. .UNINDENT
  152530. .IP \(bu 2
  152531. \fBPR\fP \fI\%#56172\fP: (\fI\%Ch3LL\fP) Only change mine data if using new allow_tgt feature
  152532. @ \fI2020\-03\-10 01:34:27 UTC\fP
  152533. .INDENT 2.0
  152534. .IP \(bu 2
  152535. fb5252fc53 Merge pull request \fI\%#56172\fP from Ch3LL/mine_g
  152536. .IP \(bu 2
  152537. f4c9c2a5cf Fix docs
  152538. .IP \(bu 2
  152539. 6c914caec8 Use different targeting for windows/linux
  152540. .IP \(bu 2
  152541. f6348127dc Only change mine data if using new allow_tgt feature
  152542. .UNINDENT
  152543. .IP \(bu 2
  152544. \fBISSUE\fP \fI\%#56121\fP: (\fI\%githubcdr\fP) salt\-minion broken after upgrade to 3000 (refs: \fI\%#56143\fP)
  152545. .IP \(bu 2
  152546. \fBISSUE\fP \fI\%#51854\fP: (\fI\%Oloremo\fP) Fluorine: minion_pillar_cache: True leads to exception (refs: \fI\%#56143\fP, \fI\%#52195\fP)
  152547. .IP \(bu 2
  152548. \fBPR\fP \fI\%#56143\fP: (\fI\%waynew\fP) Use encoding when caching pillar data
  152549. @ \fI2020\-03\-10 01:33:37 UTC\fP
  152550. .INDENT 2.0
  152551. .IP \(bu 2
  152552. \fBPR\fP \fI\%#52195\fP: (\fI\%waynew\fP) Use encoding when caching pillar data (refs: \fI\%#56143\fP)
  152553. .IP \(bu 2
  152554. 8a8e9c9c5f Merge pull request \fI\%#56143\fP from waynew/51854\-minion\-pillar\-cache\-exception
  152555. .IP \(bu 2
  152556. 58cc9488aa Merge branch \(aqmaster\(aq into 51854\-minion\-pillar\-cache\-exception
  152557. .UNINDENT
  152558. .IP \(bu 2
  152559. \fBPR\fP \fI\%#56082\fP: (\fI\%Ch3LL\fP) Fix saltversioninfo grain for new version
  152560. @ \fI2020\-03\-10 01:32:11 UTC\fP
  152561. .INDENT 2.0
  152562. .IP \(bu 2
  152563. 9f27caa7d0 Merge pull request \fI\%#56082\fP from Ch3LL/ver_grains
  152564. .IP \(bu 2
  152565. e6abd6d31b ensure full_info/noc_info work with new versioning
  152566. .IP \(bu 2
  152567. bcc520ccc4 Add saltversioninfo grains test
  152568. .IP \(bu 2
  152569. 510e149b87 Fix saltversioninfo grain for new version
  152570. .UNINDENT
  152571. .IP \(bu 2
  152572. \fBPR\fP \fI\%#56285\fP: (\fI\%UtahDave\fP) Add missing colon.
  152573. @ \fI2020\-03\-09 22:22:17 UTC\fP
  152574. .INDENT 2.0
  152575. .IP \(bu 2
  152576. 602ff3b9f1 Merge pull request \fI\%#56285\fP from UtahDave/fix_f5_doc
  152577. .IP \(bu 2
  152578. 1034013831 Add missing colon.
  152579. .UNINDENT
  152580. .IP \(bu 2
  152581. \fBPR\fP \fI\%#56333\fP: (\fI\%Ch3LL\fP) add pylint ignore in django returner
  152582. @ \fI2020\-03\-09 20:42:42 UTC\fP
  152583. .INDENT 2.0
  152584. .IP \(bu 2
  152585. de5184a206 Merge pull request \fI\%#56333\fP from Ch3LL/lint_fix
  152586. .IP \(bu 2
  152587. 6a213a429a add pylint ignore in django returner
  152588. .IP \(bu 2
  152589. 759290a055 Use encoding when caching pillar data
  152590. .UNINDENT
  152591. .IP \(bu 2
  152592. \fBISSUE\fP \fI\%#56080\fP: (\fI\%sagetherage\fP) Update release notes, pip download page and install docs on pycrpto (refs: \fI\%#56095\fP)
  152593. .IP \(bu 2
  152594. \fBPR\fP \fI\%#56095\fP: (\fI\%waynew\fP) Provide security advisory for PyCrypto
  152595. @ \fI2020\-02\-10 18:42:00 UTC\fP
  152596. .INDENT 2.0
  152597. .IP \(bu 2
  152598. 9adc2214c3 Merge pull request \fI\%#56095\fP from waynew/crypto\-warning
  152599. .IP \(bu 2
  152600. 484bc51f4b Add warnings to a couple of other places
  152601. .IP \(bu 2
  152602. 2711c04ca9 Provide security advisory for PyCrypto
  152603. .UNINDENT
  152604. .IP \(bu 2
  152605. \fBPR\fP \fI\%#56092\fP: (\fI\%twangboy\fP) Add LGPO and Network PRs to changelogs
  152606. @ \fI2020\-02\-10 18:17:28 UTC\fP
  152607. .INDENT 2.0
  152608. .IP \(bu 2
  152609. 1acd492bb9 Merge pull request \fI\%#56092\fP from twangboy/waynew\-update\-changelog
  152610. .IP \(bu 2
  152611. 4e03620d4e Fix a docs issue
  152612. .IP \(bu 2
  152613. e7b64277e1 Add LGPO and Network PRs to changelogs
  152614. .UNINDENT
  152615. .IP \(bu 2
  152616. \fBPR\fP \fI\%#56115\fP: (\fI\%s0undt3ch\fP) Add information about the pip install salt on windows issue.
  152617. @ \fI2020\-02\-10 17:33:44 UTC\fP
  152618. .INDENT 2.0
  152619. .IP \(bu 2
  152620. 65d59b0ee9 Merge pull request \fI\%#56115\fP from s0undt3ch/hotfix/release\-notes
  152621. .IP \(bu 2
  152622. aeac9f36cd Add information about the pip install salt on windows issue.
  152623. .IP \(bu 2
  152624. a5179434e7 Merge branch \(aqmaster\(aq into pdbedit_55185
  152625. .IP \(bu 2
  152626. 95d46d6cc8 \fI\%#55185\fP pdbedit module should check for version 4.8.x or newer
  152627. .UNINDENT
  152628. .UNINDENT
  152629. .SS Salt 3000.2 Release Notes
  152630. .sp
  152631. Version 3000.2 is a CVE\-fix release for 3000\&.
  152632. .SS Security Fix
  152633. .sp
  152634. \fBCVE\-2020\-11651\fP
  152635. .sp
  152636. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  152637. The salt\-master process ClearFuncs class does not properly validate
  152638. method calls. This allows a remote user to access some methods without
  152639. authentication. These methods can be used to retrieve user tokens from
  152640. the salt master and/or run arbitrary commands on salt minions.
  152641. .sp
  152642. \fBCVE\-2020\-11652\fP
  152643. .sp
  152644. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  152645. The salt\-master process ClearFuncs class allows access to some methods
  152646. that improperly sanitize paths. These methods allow arbitrary
  152647. directory access to authenticated users.
  152648. .SS Known Issue
  152649. .sp
  152650. Part of the fix for CVE\-2020\-11651 added better validation of the methods allowed to be called by remote clients.
  152651. Both AESFuncs and ClearFuncs now have an explicit list of methods that can be called.
  152652. The name of one of these whitlisted methods on AESFuncs had a typo.
  152653. The _minion_runner method should be minion_runner (without the underscore prefix).
  152654. This typo breaks the publish module’s runner method.
  152655. Calling runners, for example:
  152656. .INDENT 0.0
  152657. .INDENT 3.5
  152658. .sp
  152659. .nf
  152660. .ft C
  152661. salt minion publish.runner manage.down
  152662. .ft P
  152663. .fi
  152664. .UNINDENT
  152665. .UNINDENT
  152666. .sp
  152667. Will not work, and you will receive and empty reply from the salt master.
  152668. .sp
  152669. This will be addressed in the 3001 release of Salt set for mid\-June 2020.
  152670. .SS Salt 3000.3 Release Notes
  152671. .sp
  152672. Version 3000.3 is a bug\-fix release for 3000\&.
  152673. .SS Statistics
  152674. .INDENT 0.0
  152675. .IP \(bu 2
  152676. Total Merges: \fB2\fP
  152677. .IP \(bu 2
  152678. Total Issue References: \fB2\fP
  152679. .IP \(bu 2
  152680. Total PR References: \fB2\fP
  152681. .IP \(bu 2
  152682. Contributors: \fB2\fP (\fI\%dwoz\fP, \fI\%frogunder\fP)
  152683. .UNINDENT
  152684. .SS Changelog for v3000.2..v3000.3
  152685. .sp
  152686. \fIGenerated at: 2020\-05\-06 02:53:12 UTC\fP
  152687. .INDENT 0.0
  152688. .IP \(bu 2
  152689. \fBPR\fP \fI\%#57097\fP: (\fI\%frogunder\fP) Update man_pages 3000.3
  152690. @ \fI2020\-05\-05 22:13:09 UTC\fP
  152691. .IP \(bu 2
  152692. \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)
  152693. .IP \(bu 2
  152694. \fBISSUE\fP \fI\%#57016\fP: (\fI\%idontwanttosignin\fP) [BUG] Requested method not exposed: minion_runner (refs: \fI\%#57100\fP)
  152695. .IP \(bu 2
  152696. \fBPR\fP \fI\%#57100\fP: (\fI\%dwoz\fP) Address Issues in CVE Release
  152697. @ \fI2020\-05\-05 22:09:25 UTC\fP
  152698. .UNINDENT
  152699. .SS Salt 2019.2.0 Release Notes \- Codename Fluorine
  152700. .SS Python 2.7 Deprecation
  152701. .sp
  152702. In light of Python 2.7 reaching its End of Life (EOL) on Jan 1st 2020,
  152703. Python 2 will be deprecated from SaltStack no earlier than the 3001
  152704. release, that is either the 3001 release or a later release.
  152705. This decision is pending further community discussion.
  152706. .SS Known Issues
  152707. .sp
  152708. The following are known issues for the 2019.2.0 release and will be fixed for 2019.2.1:
  152709. .INDENT 0.0
  152710. .IP \(bu 2
  152711. \fI\%#51699\fP
  152712. .UNINDENT
  152713. .SS Non\-Backward\-Compatible Change to YAML Renderer
  152714. .sp
  152715. In earlier releases, this was considered valid usage in Python 2, assuming that
  152716. \fBdata\fP was a list or dictionary containing keys/values which are \fBunicode\fP
  152717. types:
  152718. .INDENT 0.0
  152719. .INDENT 3.5
  152720. .sp
  152721. .nf
  152722. .ft C
  152723. /etc/foo.conf:
  152724. file.managed:
  152725. \- source: salt://foo.conf.jinja
  152726. \- template: jinja
  152727. \- context:
  152728. data: {{ data }}
  152729. .ft P
  152730. .fi
  152731. .UNINDENT
  152732. .UNINDENT
  152733. .sp
  152734. One common use case for this is when using one of Salt\(aqs \fBcustom
  152735. Jinja filters\fP which return lists or dictionaries, such
  152736. as the \fBipv4\fP filter.
  152737. .sp
  152738. In Python 2, Jinja will render the \fBunicode\fP string types within the
  152739. list/dictionary with the "u" prefix (e.g. \fB{u\(aqfoo\(aq: u\(aqbar\(aq}\fP). While not
  152740. valid YAML, earlier releases would successfully load these values.
  152741. .sp
  152742. As of this release, the above SLS would result in an error message. To allow
  152743. for a data structure to be dumped directly into your SLS file, use the \fI\%tojson
  152744. Jinja filter\fP:
  152745. .INDENT 0.0
  152746. .INDENT 3.5
  152747. .sp
  152748. .nf
  152749. .ft C
  152750. /etc/foo.conf:
  152751. file.managed:
  152752. \- source: salt://foo.conf.jinja
  152753. \- template: jinja
  152754. \- context:
  152755. data: {{ data|tojson }}
  152756. .ft P
  152757. .fi
  152758. .UNINDENT
  152759. .UNINDENT
  152760. .sp
  152761. Another example where the new filter needs to be used is the following state example:
  152762. .INDENT 0.0
  152763. .INDENT 3.5
  152764. .sp
  152765. .nf
  152766. .ft C
  152767. grafana_packages:
  152768. pkg.installed:
  152769. \- names: {{ server.pkgs }}
  152770. .ft P
  152771. .fi
  152772. .UNINDENT
  152773. .UNINDENT
  152774. .sp
  152775. This will fail when pkgs is a list or dictionary. You will need to update the state:
  152776. .INDENT 0.0
  152777. .INDENT 3.5
  152778. .sp
  152779. .nf
  152780. .ft C
  152781. grafana_packages:
  152782. pkg.installed:
  152783. \- names: {{ server.pkgs|tojson }}
  152784. .ft P
  152785. .fi
  152786. .UNINDENT
  152787. .UNINDENT
  152788. .sp
  152789. This test case has also been tested with the \fByaml\fP and \fBjson\fP filters successfully.
  152790. .sp
  152791. \fBNOTE:\fP
  152792. .INDENT 0.0
  152793. .INDENT 3.5
  152794. This filter was added in Jinja 2.9. However, fear not! The 2018.3.3 release
  152795. added a \fBtojson\fP filter which will be used if this filter is not already
  152796. present, making it available on platforms like RHEL 7 and Ubuntu 14.04
  152797. which provide older versions of Jinja.
  152798. .UNINDENT
  152799. .UNINDENT
  152800. .sp
  152801. \fBIMPORTANT:\fP
  152802. .INDENT 0.0
  152803. .INDENT 3.5
  152804. The \fBjson_encode_dict\fP and \fBjson_encode_list\fP filters
  152805. do not actually dump the results to JSON. Since \fBtojson\fP accomplishes
  152806. what those filters were designed to do, they are now deprecated and will be
  152807. removed in the 3000 release. The \fBtojson\fP filter should be used in all
  152808. cases where \fBjson_encode_dict\fP and \fBjson_encode_list\fP
  152809. would have been used.
  152810. .UNINDENT
  152811. .UNINDENT
  152812. .SS Ansible Playbook State and Execution Modules
  152813. .sp
  152814. Along with the including the \fBansible modules\fP in the Oxygen release, running playbooks has been
  152815. added in 2019.2.0 with the \fBplaybooks function\fP\&. This also includes an \fBansible
  152816. playbooks state module\fP which can be used
  152817. on a targeted host to run ansible playbooks, or used in an
  152818. orchestration state runner.
  152819. .INDENT 0.0
  152820. .INDENT 3.5
  152821. .sp
  152822. .nf
  152823. .ft C
  152824. install nginx:
  152825. ansible.playbooks:
  152826. \- name: install.yml
  152827. \- git_repo: git://github.com/gtmanfred/playbook.git
  152828. \- git_kwargs:
  152829. rev: master
  152830. .ft P
  152831. .fi
  152832. .UNINDENT
  152833. .UNINDENT
  152834. .sp
  152835. The playbooks modules also includes the ability to specify a git repo to clone
  152836. and use, or a specific directory can to used when running the playbook.
  152837. .SS Network Automation
  152838. .sp
  152839. Beginning with this release, Salt provides much broader support for a variety
  152840. of network operating systems, and features for configuration manipulation or
  152841. operational command execution.
  152842. .SS NetBox
  152843. .sp
  152844. Added in the previous release, 2018.3.0, the capabilities of the
  152845. \fBnetbox\fP Execution Module have been extended, with a
  152846. much longer list of available features:
  152847. .INDENT 0.0
  152848. .IP \(bu 2
  152849. \fBnetbox.create_circuit\fP
  152850. .IP \(bu 2
  152851. \fBnetbox.create_circuit_provider\fP
  152852. .IP \(bu 2
  152853. \fBnetbox.create_circuit_termination\fP
  152854. .IP \(bu 2
  152855. \fBnetbox.create_circuit_type\fP
  152856. .IP \(bu 2
  152857. \fBnetbox.create_device\fP
  152858. .IP \(bu 2
  152859. \fBnetbox.create_device_role\fP
  152860. .IP \(bu 2
  152861. \fBnetbox.create_device_type\fP
  152862. .IP \(bu 2
  152863. \fBnetbox.create_interface\fP
  152864. .IP \(bu 2
  152865. \fBnetbox.create_interface_connection\fP
  152866. .IP \(bu 2
  152867. \fBnetbox.create_inventory_item\fP
  152868. .IP \(bu 2
  152869. \fBnetbox.create_ipaddress\fP
  152870. .IP \(bu 2
  152871. \fBnetbox.create_manufacturer\fP
  152872. .IP \(bu 2
  152873. \fBnetbox.create_platform\fP
  152874. .IP \(bu 2
  152875. \fBnetbox.create_site\fP
  152876. .IP \(bu 2
  152877. \fBnetbox.delete_interface\fP
  152878. .IP \(bu 2
  152879. \fBnetbox.delete_inventory_item\fP
  152880. .IP \(bu 2
  152881. \fBnetbox.delete_ipaddress\fP
  152882. .IP \(bu 2
  152883. \fBnetbox.get_circuit_provider\fP
  152884. .IP \(bu 2
  152885. \fBnetbox.get_interfaces\fP
  152886. .IP \(bu 2
  152887. \fBnetbox.get_ipaddresses\fP
  152888. .IP \(bu 2
  152889. \fBnetbox.make_interface_child\fP
  152890. .IP \(bu 2
  152891. \fBnetbox.make_interface_lag\fP
  152892. .IP \(bu 2
  152893. \fBnetbox.openconfig_interfaces\fP
  152894. .IP \(bu 2
  152895. \fBnetbox.openconfig_lacp\fP
  152896. .IP \(bu 2
  152897. \fBnetbox.update_device\fP
  152898. .IP \(bu 2
  152899. \fBnetbox.update_interface\fP
  152900. .UNINDENT
  152901. .sp
  152902. Besides this Execution Module, Salt users can load data directly from NetBox
  152903. into the device Pillar, via the \fBnetbox\fP External
  152904. Pillar module.
  152905. .SS Netmiko
  152906. .sp
  152907. \fI\%Netmiko\fP, the multi\-vendor library to
  152908. simplify Paramiko SSH connections to network devices, is now officially
  152909. integrated into Salt. The network community can use it via the
  152910. \fBnetmiko\fP Proxy Module or directly from any Salt
  152911. Minions, passing the connection credentials \- see the documentation for the
  152912. \fBnetmiko\fP Execution Module.
  152913. .SS Arista
  152914. .sp
  152915. Arista switches can now be managed running under the \fBpyeapi\fP Proxy Module, and execute RPC requests via the
  152916. \fBpyeapi\fP Execution Module.
  152917. .SS Cisco Nexus
  152918. .sp
  152919. While support for SSH\-based operations has been added in the release codename
  152920. Carbon (2016.11), the new \fBnxos_api\fP Proxy Module
  152921. and \fBnxos_api\fP allow management of Cisco Nexus
  152922. switches via the NX\-API.
  152923. .sp
  152924. It is important to note that these modules don\(aqt have third party dependencies,
  152925. therefore they can be used straight away from any Salt Minion. This also means
  152926. that the user may be able to install the regular Salt Minion on the Nexus
  152927. switch directly and manage the network devices like a regular server.
  152928. .SS General\-purpose Modules
  152929. .sp
  152930. The new \fBciscoconfparse\fP Execution Module
  152931. can be used for basic configuration parsing, audit or validation for a variety
  152932. of network platforms having Cisco IOS style configuration (one space
  152933. indentation), as well as brace\-delimited configuration style.
  152934. .sp
  152935. The \fBiosconfig\fP can be used for various
  152936. configuration manipulation for Cisco IOS style configuration, such as:
  152937. \fBconfiguration cleanup\fP,
  152938. \fBtree representation of the config\fP, etc.
  152939. .SS NAPALM
  152940. .SS Commit At and Commit Confirmed
  152941. .sp
  152942. Beginning with this release, NAPALM users are able to execute scheduled commits
  152943. (broadly known as "commit at") and "commit confirmed" (revert the configuration
  152944. change unless the user confirms by running another command). These features are
  152945. available via the \fBcommit_in\fP, \fBcommit_at\fP, \fBrevert_in\fP, or \fBrevert_at\fP
  152946. arguments for the
  152947. \fBnet.load_config\fP and
  152948. \fBnet.load_template\fP execution
  152949. functions, or \fBnetconfig.managed\fP\&.
  152950. .sp
  152951. The counterpart execution functions
  152952. \fBnet.confirm_commit\fP, or
  152953. \fBnet.cancel_commit\fP, as well
  152954. as the State functions
  152955. \fBnetconfig.commit_cancelled\fP, or
  152956. \fBnetconfig.commit_confirmed\fP can
  152957. be used to confirm or cancel a commit.
  152958. .sp
  152959. Please note that the commit confirmed and commit cancelled functionalities are
  152960. available for any platform whether the network devices supports the features
  152961. natively or not. However, be cautious and make sure you read and understand the
  152962. caveats before using them in production.
  152963. .SS Multiple Templates Rendered Simultaneously
  152964. .sp
  152965. The \fBtemplate_name\fP argument of the
  152966. \fBnet.load_template\fP Execution
  152967. and \fBnetconfig.managed\fP State function now
  152968. supports a list of templates. This is particularly useful when a very large
  152969. Jinja template is split into multiple smaller and easier to read templates that
  152970. can eventually be reused in other States. For example, the following syntax is
  152971. not correct to manage the configuration of NTP and BGP simultaneously, using
  152972. two different templates and changing the device configuration through one
  152973. single commit:
  152974. .INDENT 0.0
  152975. .INDENT 3.5
  152976. .sp
  152977. .nf
  152978. .ft C
  152979. manage_bgp_and_ntp:
  152980. netconfig.managed:
  152981. \- template_name:
  152982. \- salt://templates/bgp.jinja
  152983. \- salt://templates/ntp.jinja
  152984. \- context:
  152985. bpg: {{ pillar.bgp }}
  152986. ntp: {{ pillar.ntp }}
  152987. .ft P
  152988. .fi
  152989. .UNINDENT
  152990. .UNINDENT
  152991. .SS Connection Re\-establishment on Demand
  152992. .sp
  152993. Beginning with this release, any NAPALM command executed when
  152994. running under a NAPALM Proxy Minion supports the \fBforce_reconnect\fP
  152995. magic argument.
  152996. .sp
  152997. Proxy Minions generally establish a connection with the remote network
  152998. device at the time of the Minion startup and that connection is going to be
  152999. used forever.
  153000. .sp
  153001. If one would need to execute a command on the device but is connecting using
  153002. different parameters (due to various causes, e.g., unable to authenticate
  153003. the user specified in the Pillar as the authentication system \- say
  153004. TACACS+ is not available, or the DNS resolver is currently down and would
  153005. like to temporarily use the IP address instead, etc.), it implies updating
  153006. the Pillar data and restarting the Proxy Minion process restart.
  153007. In particular cases like that, you can pass the \fBforce_reconnect=True\fP
  153008. keyword argument, together with the alternative connection details, to
  153009. enforce the command to be executed over a separate connection.
  153010. .sp
  153011. For example, if the usual command is \fBsalt \(aq*\(aq net.arp\fP, you can use the
  153012. following to connect using a different username instead:
  153013. .INDENT 0.0
  153014. .INDENT 3.5
  153015. .sp
  153016. .nf
  153017. .ft C
  153018. salt \(aq*\(aq net.arp username=my\-alt\-usr force_reconnect=True
  153019. .ft P
  153020. .fi
  153021. .UNINDENT
  153022. .UNINDENT
  153023. .sp
  153024. The same goes with any of the other configuration arguments required for the
  153025. NAPALM connection \- see \fBNAPALM proxy documentation\fP\&.
  153026. .SS Configuration Replace Features
  153027. .sp
  153028. To replace various configuration chunks, you can use the new
  153029. \fBnet.replace_pattern\fP
  153030. execution function, or the
  153031. \fBnetconfig.replace_pattern\fP State
  153032. function. For example, if you want to update your configuration and rename
  153033. a BGP policy referenced in many places, you can do so by running:
  153034. .INDENT 0.0
  153035. .INDENT 3.5
  153036. .sp
  153037. .nf
  153038. .ft C
  153039. salt \(aq*\(aq net.replace_pattern OLD\-POLICY\-CONFIG new\-policy\-config
  153040. .ft P
  153041. .fi
  153042. .UNINDENT
  153043. .UNINDENT
  153044. .sp
  153045. Similarly, you can also replace entire configuration blocks using the
  153046. \fBnet.blockreplace\fP function.
  153047. .SS Configuration Save Features
  153048. .sp
  153049. The \fBnet.save_config\fP function
  153050. can be used to save the configuration of the managed device into a file. For
  153051. the State subsystem, the \fBnetconfig.saved\fP
  153052. function has been added which provides a complete list of facilities when
  153053. managing the target file where the configuration of the network device can be
  153054. saved.
  153055. .sp
  153056. For example, backup the running configuration of each device under its own
  153057. directory tree:
  153058. .INDENT 0.0
  153059. .INDENT 3.5
  153060. .sp
  153061. .nf
  153062. .ft C
  153063. /var/backups/{{ opts.id }}/running.cfg:
  153064. netconfig.saved:
  153065. \- source: running
  153066. \- makedirs: true
  153067. .ft P
  153068. .fi
  153069. .UNINDENT
  153070. .UNINDENT
  153071. .sp
  153072. All the new network automation modules mentioned above are directly exposed to
  153073. the NAPALM users, without requiring any architectural changes, just eventually
  153074. install some requirements:
  153075. .SS Junos
  153076. .sp
  153077. The features from the existing \fBjunos\fP Execution
  153078. Module are available via the following functions:
  153079. .INDENT 0.0
  153080. .IP \(bu 2
  153081. \fBnapalm.junos_cli\fP: Execute a CLI
  153082. command and return the output as text or Python dictionary.
  153083. .IP \(bu 2
  153084. \fBnapalm.junos_rpc\fP: Execute an RPC
  153085. request on the remote Junos device, and return the result as a Python
  153086. dictionary, easy to digest and manipulate.
  153087. .IP \(bu 2
  153088. \fBnapalm.junos_install_os\fP:
  153089. Install the given image on the device.
  153090. .IP \(bu 2
  153091. \fBnapalm.junos_facts\fP: The complete
  153092. list of Junos facts collected by the \fBjunos\-eznc\fP underlying library.
  153093. .UNINDENT
  153094. .sp
  153095. \fBNOTE:\fP
  153096. .INDENT 0.0
  153097. .INDENT 3.5
  153098. To be able to use these features, you muse ensure that you meet the
  153099. requirements for the \fBjunos\fP module. As
  153100. \fBjunos\-eznc\fP is already a dependency of NAPALM, you will only have to
  153101. install \fBjxmlease\fP\&.
  153102. .UNINDENT
  153103. .UNINDENT
  153104. .sp
  153105. Usage examples:
  153106. .INDENT 0.0
  153107. .INDENT 3.5
  153108. .sp
  153109. .nf
  153110. .ft C
  153111. salt \(aq*\(aq napalm.junos_cli \(aqshow arp\(aq format=xml
  153112. salt \(aq*\(aq napalm.junos_rpc get\-interface\-information
  153113. .ft P
  153114. .fi
  153115. .UNINDENT
  153116. .UNINDENT
  153117. .SS Netmiko
  153118. .sp
  153119. The features from the newly added \fBnetmiko\fP
  153120. Execution Module are available as:
  153121. .INDENT 0.0
  153122. .IP \(bu 2
  153123. \fBnapalm.netmiko_commands\fP:
  153124. Execute one or more commands to be execute on the remote device, via Netmiko,
  153125. and return the output as a text.
  153126. .IP \(bu 2
  153127. \fBnapalm.netmiko_config\fP: Load
  153128. a list of configuration command on the remote device, via Netmiko. The
  153129. commands can equally be loaded from a local or remote path, and passed
  153130. through Salt\(aqs template rendering pipeline (by default using \fBJinja\fP as the
  153131. template rendering engine).
  153132. .UNINDENT
  153133. .sp
  153134. Usage examples:
  153135. .INDENT 0.0
  153136. .INDENT 3.5
  153137. .sp
  153138. .nf
  153139. .ft C
  153140. salt \(aq*\(aq napalm.netmiko_commands \(aqshow version\(aq \(aqshow interfaces\(aq
  153141. salt \(aq*\(aq napalm.netmiko_config config_file=https://bit.ly/2sgljCB
  153142. .ft P
  153143. .fi
  153144. .UNINDENT
  153145. .UNINDENT
  153146. .SS Arista pyeapi
  153147. .sp
  153148. For various operations and various extension modules, the following features
  153149. have been added to gate functionality from the
  153150. \fBpyeapi\fP module:
  153151. .INDENT 0.0
  153152. .IP \(bu 2
  153153. \fBnapalm.pyeapi_run_commands\fP: Execute a list of commands on
  153154. the Arista switch, via the \fBpyeapi\fP library.
  153155. .IP \(bu 2
  153156. \fBnapalm.pyeapi_config\fP:
  153157. Configure the Arista switch with the specified commands, via the \fBpyeapi\fP
  153158. Python library. Similarly to
  153159. \fBnapalm.netmiko_config\fP, you
  153160. can use both local and remote files, with or without templating.
  153161. .UNINDENT
  153162. .sp
  153163. Usage examples:
  153164. .INDENT 0.0
  153165. .INDENT 3.5
  153166. .sp
  153167. .nf
  153168. .ft C
  153169. salt \(aq*\(aq napalm.pyeapi_run_commands \(aqshow version\(aq \(aqshow interfaces\(aq
  153170. salt \(aq*\(aq napalm.pyeapi_config config_file=salt://path/to/template.jinja
  153171. .ft P
  153172. .fi
  153173. .UNINDENT
  153174. .UNINDENT
  153175. .SS Cisco NX\-API
  153176. .sp
  153177. In the exact same way as above, the user has absolute control by using the
  153178. following primitives to manage Cisco Nexus switches via the NX\-API:
  153179. .INDENT 0.0
  153180. .IP \(bu 2
  153181. \fBnapalm.nxos_api_show\fP: Execute
  153182. one or more show (non\-configuration) commands, and return the output as plain
  153183. text or Python dictionary.
  153184. .IP \(bu 2
  153185. \fBnapalm.nxos_api_rpc\fP: Execute
  153186. arbitrary RPC requests via the Nexus API.
  153187. .IP \(bu 2
  153188. \fBnapalm.nxos_api_config\fP:
  153189. Configures the Nexus switch with the specified commands, via the NX\-API. The
  153190. commands can be loaded from the command line, or a local or remote file,
  153191. eventually rendered using the templating engine of choice (default:
  153192. \fBjinja\fP).
  153193. .UNINDENT
  153194. .sp
  153195. Usage examples:
  153196. .INDENT 0.0
  153197. .INDENT 3.5
  153198. .sp
  153199. .nf
  153200. .ft C
  153201. salt \(aq*\(aq napalm.nxos_api_show \(aqshow bgp sessions\(aq \(aqshow processes\(aq raw_text=False
  153202. .ft P
  153203. .fi
  153204. .UNINDENT
  153205. .UNINDENT
  153206. .SS Ciscoconfparse
  153207. .sp
  153208. The following list of function may be handy when manipulating Cisco IOS or
  153209. Junos style configurations:
  153210. .INDENT 0.0
  153211. .IP \(bu 2
  153212. \fBnapalm.config_filter_lines\fP: Return a list of detailed
  153213. matches, for the configuration blocks (parent\-child relationship) whose
  153214. parent and children respect the regular expressions provided.
  153215. .IP \(bu 2
  153216. \fBnapalm.config_find_lines\fP:
  153217. Return the configuration lines that match the regular expression provided.
  153218. .IP \(bu 2
  153219. \fBnapalm.config_lines_w_child\fP:
  153220. Return the configuration lines that match a regular expression, having child
  153221. lines matching the child regular expression.
  153222. .IP \(bu 2
  153223. \fBnapalm.config_lines_wo_child\fP:
  153224. Return the configuration lines that match a regular expression, that don\(aqt
  153225. have child lines matching the child regular expression.
  153226. .UNINDENT
  153227. .sp
  153228. \fBNOTE:\fP
  153229. .INDENT 0.0
  153230. .INDENT 3.5
  153231. These functions require the \fBciscoconfparse\fP Python library to be
  153232. installed.
  153233. .UNINDENT
  153234. .UNINDENT
  153235. .sp
  153236. Usage example (find interfaces that are administratively shut down):
  153237. .INDENT 0.0
  153238. .INDENT 3.5
  153239. .sp
  153240. .nf
  153241. .ft C
  153242. salt \(aq*\(aq napalm.config_lines_w_child \(aqinterface\(aq \(aqshutdown\(aq
  153243. .ft P
  153244. .fi
  153245. .UNINDENT
  153246. .UNINDENT
  153247. .SS IOSConfig
  153248. .sp
  153249. For Cisco IOS style configuration, the following features have been added to
  153250. the \fBnapalm\fP Execution Module:
  153251. .INDENT 0.0
  153252. .IP \(bu 2
  153253. \fBnapalm.config_tree\fP: Transform
  153254. Cisco IOS style configuration to structured Python dictionary, using the
  153255. configuration of the interrogated network device.
  153256. .IP \(bu 2
  153257. \fBnapalm.config_merge_tree\fP:
  153258. Return the merge tree of the configuration of the managed network device with
  153259. a different configuration to be merged with (without actually loading any
  153260. changes on the device).
  153261. .IP \(bu 2
  153262. \fBnapalm.config_merge_text\fP:
  153263. Return the merge result (as text) of the configuration of the managed network
  153264. device with a different configuration to be merged with.
  153265. .IP \(bu 2
  153266. \fBnapalm.config_merge_diff\fP:
  153267. Return the merge diff after merging the configuration of the managed network
  153268. device with a different configuration (without actually loading any changes
  153269. on the device).
  153270. .UNINDENT
  153271. .SS SCP
  153272. .sp
  153273. Reusing the already available connection credentials provided for NAPALM, the
  153274. following features are now available:
  153275. .INDENT 0.0
  153276. .IP \(bu 2
  153277. \fBnapalm.scp_put\fP: Transfer files and
  153278. directories to remote network device.
  153279. .IP \(bu 2
  153280. \fBnapalm.scp_get\fP: Transfer files and
  153281. directories from remote network device to the localhost of the Minion.
  153282. .UNINDENT
  153283. .SS PeeringDB
  153284. .sp
  153285. The \fBpeeringdb\fP Execution Module is useful to
  153286. gather information about other networks you can potentially peer with, and
  153287. automatically establish BGP sessions, e.g., given just a specific AS number,
  153288. the rest of the data (i.e., IP addresses, locations where the remote network is
  153289. available, etc.) is retrieved from PeeringDB, and the session configuration is
  153290. automated with minimal to no effort (typing the IP addresses manually can be
  153291. both tedious and error prone).
  153292. .SS New Docker Proxy Minion
  153293. .sp
  153294. Docker containers can now be treated as actual minions without installing salt
  153295. in the container, using the new \fBdocker proxy minion\fP\&.
  153296. .sp
  153297. This proxy minion uses the \fBdocker executor\fP to
  153298. pass commands to the docker container using \fBdocker.call\fP\&. Any state module calls are passed through the
  153299. corresponding function from the \fBdocker\fP
  153300. module.
  153301. .INDENT 0.0
  153302. .INDENT 3.5
  153303. .sp
  153304. .nf
  153305. .ft C
  153306. proxy:
  153307. proxytype: docker
  153308. name: keen_proskuriakova
  153309. .ft P
  153310. .fi
  153311. .UNINDENT
  153312. .UNINDENT
  153313. .SS Terraform Salt\-SSH Roster
  153314. .sp
  153315. You can now dynamically generate a Salt\-SSH roster from the terraform resources
  153316. defined with \fI\%terraform\-provider\-salt\fP\&.
  153317. .sp
  153318. This allows you to combine both terraform and Salt\-SSH to provision and
  153319. configure your hosts. See the \fBterraform roster\fP for
  153320. an example on how to setup and use.
  153321. .SS Grains Dictionary Passed into Custom Grains
  153322. .sp
  153323. Starting in this release, if a custom grains function accepts a variable named
  153324. \fBgrains\fP, the Grains dictionary of the already compiled grains will be passed
  153325. in. Because of the non\-deterministic order that grains are rendered in, the
  153326. only grains that can be relied upon to be passed in are \fBcore.py\fP grains,
  153327. since those are compiled first.
  153328. .SS More Precise \fBvirtual\fP Grain
  153329. .sp
  153330. This release improves the accuracy of the \fBvirtual\fP grain when running Salt in
  153331. a nested virtualization environment (e.g. \fBsystemd\-nspawn\fP container inside a
  153332. VM) and having \fBvirt\-what\fP installed.
  153333. .sp
  153334. Until now, the \fBvirtual\fP grain was determined by matching against all output
  153335. lines of \fBvirt\-what\fP instead of individual items which could lead to not quite
  153336. precise results (e.g. reporting \fBHyperV\fP inside a \fBsystemd\-nspawn\fP container
  153337. running within a Hyper\-V\-based VM.
  153338. .SS Configurable Module Environment
  153339. .sp
  153340. Salt modules (states, execution modules, returners, etc.) now can have custom
  153341. environment variables applied when running shell commands. This can be
  153342. configured by setting a \fBsystem\-environment\fP key either in Grains or Pillar.
  153343. The syntax is as follows:
  153344. .INDENT 0.0
  153345. .INDENT 3.5
  153346. .sp
  153347. .nf
  153348. .ft C
  153349. system\-environment:
  153350. <type>
  153351. <module>:
  153352. # Namespace for all functions in the module
  153353. _:
  153354. <key>: <value>
  153355. # Namespace only for particular function in the module
  153356. <function>:
  153357. <key>: <value>
  153358. .ft P
  153359. .fi
  153360. .UNINDENT
  153361. .UNINDENT
  153362. .INDENT 0.0
  153363. .IP \(bu 2
  153364. \fB<type>\fP would be the type of module (i.e. \fBstates\fP, \fBmodules\fP, etc.).
  153365. .IP \(bu 2
  153366. \fB<module>\fP would be the module\(aqs name.
  153367. .sp
  153368. \fBNOTE:\fP
  153369. .INDENT 2.0
  153370. .INDENT 3.5
  153371. The module name can be either the virtual name (e.g. \fBpkg\fP), or the
  153372. physical name (e.g. \fByumpkg\fP).
  153373. .UNINDENT
  153374. .UNINDENT
  153375. .IP \(bu 2
  153376. \fB<function>\fP would be the function name within that module. To apply
  153377. environment variables to \fIall\fP functions in a given module, use an underscore
  153378. (i.e. \fB_\fP) as the function name. For example, to set the same environment
  153379. variable for all package management functions, the following could be used:
  153380. .INDENT 2.0
  153381. .INDENT 3.5
  153382. .sp
  153383. .nf
  153384. .ft C
  153385. system\-environment:
  153386. modules:
  153387. pkg:
  153388. _:
  153389. SOMETHING: for_all
  153390. .ft P
  153391. .fi
  153392. .UNINDENT
  153393. .UNINDENT
  153394. .sp
  153395. To set an environment variable in \fBpkg.install\fP only:
  153396. .INDENT 2.0
  153397. .INDENT 3.5
  153398. .sp
  153399. .nf
  153400. .ft C
  153401. system\-environment:
  153402. modules:
  153403. pkg:
  153404. install:
  153405. LC_ALL: en_GB.UTF\-8
  153406. .ft P
  153407. .fi
  153408. .UNINDENT
  153409. .UNINDENT
  153410. .sp
  153411. To set the same variable but only for SUSE minions (which use zypper for
  153412. package management):
  153413. .INDENT 2.0
  153414. .INDENT 3.5
  153415. .sp
  153416. .nf
  153417. .ft C
  153418. system\-environment:
  153419. modules:
  153420. zypper:
  153421. install:
  153422. LC_ALL: en_GB.UTF\-8
  153423. .ft P
  153424. .fi
  153425. .UNINDENT
  153426. .UNINDENT
  153427. .UNINDENT
  153428. .sp
  153429. \fBNOTE:\fP
  153430. .INDENT 0.0
  153431. .INDENT 3.5
  153432. This is not supported throughout Salt; the module must explicitly support
  153433. this feature (though this may change in the future). As of this release,
  153434. the only modules which support this are the following \fBpkg\fP virtual
  153435. modules:
  153436. .INDENT 0.0
  153437. .IP \(bu 2
  153438. \fBaptpkg\fP
  153439. .IP \(bu 2
  153440. \fByumpkg\fP
  153441. .IP \(bu 2
  153442. \fBzypper\fP
  153443. .UNINDENT
  153444. .UNINDENT
  153445. .UNINDENT
  153446. .SS "Virtual Package" Support Dropped for APT
  153447. .sp
  153448. In APT, some packages have an associated list of packages which they provide.
  153449. This allows one to do things like run \fBapt\-get install foo\fP when the real
  153450. package name is \fBfoo1.0\fP, and get the right package installed.
  153451. .sp
  153452. Salt has traditionally designated as "virtual packages" those which are
  153453. provided by an installed package, but for which there is no real package by
  153454. that name installed. Given the above example, if one were to run a
  153455. \fBpkg.installed\fP state for a package named
  153456. \fBfoo\fP, then \fBpkg.list_pkgs\fP would
  153457. show a package version of simply \fB1\fP for package \fBfoo\fP, denoting that it is
  153458. a virtual package.
  153459. .sp
  153460. However, while this makes certain aspects of package management convenient,
  153461. there are issues with this approach that make relying on "virtual packages"
  153462. problematic. For instance, Ubuntu has four different mutually\-conflicting
  153463. packages for \fBnginx\fP:
  153464. .INDENT 0.0
  153465. .IP \(bu 2
  153466. \fI\%nginx\-core\fP
  153467. .IP \(bu 2
  153468. \fI\%nginx\-full\fP
  153469. .IP \(bu 2
  153470. \fI\%nginx\-light\fP
  153471. .IP \(bu 2
  153472. \fI\%nginx\-extras\fP
  153473. .UNINDENT
  153474. .sp
  153475. All four of these provide \fBnginx\fP\&. Yet there is an \fI\%nginx\fP package as well,
  153476. which has no actual content and merely has dependencies on any one of the above
  153477. four packages. If one used \fBnginx\fP in a \fBpkg.installed\fP state, and none of the above four packages were
  153478. installed, then the \fI\%nginx\fP metapackage would be installed, which would pull in
  153479. \fInginx\-core_\fP\&. Later, if \fBnginx\fP were used in a \fBpkg.removed\fP state, the \fI\%nginx\fP metapackage would be removed,
  153480. leaving \fI\%nginx\-core\fP installed. The result would be that, since \fInginx\-core_\fP
  153481. provides \fInginx_\fP, Salt would now see \fI\%nginx\fP as an installed virtual package,
  153482. and the \fBpkg.removed\fP state would fail.
  153483. Moreover, \fInginx would not actually have been removed\fP, since \fI\%nginx\-core\fP would
  153484. remain installed.
  153485. .sp
  153486. Starting with this release, Salt will no longer support using "virtual package"
  153487. names in \fBpkg\fP states, and package names will need to be specified using the
  153488. proper package name. The \fBpkg.list_repo_pkgs\fP function can be used to find matching
  153489. package names in the repositories, given a package name (or glob):
  153490. .INDENT 0.0
  153491. .INDENT 3.5
  153492. .sp
  153493. .nf
  153494. .ft C
  153495. # salt myminion pkg.list_repo_pkgs \(aqnginx*\(aq
  153496. myminion:
  153497. \-\-\-\-\-\-\-\-\-\-
  153498. nginx:
  153499. \- 1.10.3\-0ubuntu0.16.04.2
  153500. \- 1.9.15\-0ubuntu1
  153501. nginx\-common:
  153502. \- 1.10.3\-0ubuntu0.16.04.2
  153503. \- 1.9.15\-0ubuntu1
  153504. nginx\-core:
  153505. \- 1.10.3\-0ubuntu0.16.04.2
  153506. \- 1.9.15\-0ubuntu1
  153507. nginx\-core\-dbg:
  153508. \- 1.10.3\-0ubuntu0.16.04.2
  153509. \- 1.9.15\-0ubuntu1
  153510. nginx\-doc:
  153511. \- 1.10.3\-0ubuntu0.16.04.2
  153512. \- 1.9.15\-0ubuntu1
  153513. nginx\-extras:
  153514. \- 1.10.3\-0ubuntu0.16.04.2
  153515. \- 1.9.15\-0ubuntu1
  153516. nginx\-extras\-dbg:
  153517. \- 1.10.3\-0ubuntu0.16.04.2
  153518. \- 1.9.15\-0ubuntu1
  153519. nginx\-full:
  153520. \- 1.10.3\-0ubuntu0.16.04.2
  153521. \- 1.9.15\-0ubuntu1
  153522. nginx\-full\-dbg:
  153523. \- 1.10.3\-0ubuntu0.16.04.2
  153524. \- 1.9.15\-0ubuntu1
  153525. nginx\-light:
  153526. \- 1.10.3\-0ubuntu0.16.04.2
  153527. \- 1.9.15\-0ubuntu1
  153528. nginx\-light\-dbg:
  153529. \- 1.10.3\-0ubuntu0.16.04.2
  153530. \- 1.9.15\-0ubuntu1
  153531. .ft P
  153532. .fi
  153533. .UNINDENT
  153534. .UNINDENT
  153535. .sp
  153536. Alternatively, the newly\-added \fBpkg.show\fP
  153537. function can be used to get more detailed information about a given package and
  153538. help determine what package name is correct:
  153539. .INDENT 0.0
  153540. .INDENT 3.5
  153541. .sp
  153542. .nf
  153543. .ft C
  153544. # salt myminion pkg.show \(aqnginx*\(aq filter=description,provides
  153545. myminion:
  153546. \-\-\-\-\-\-\-\-\-\-
  153547. nginx:
  153548. \-\-\-\-\-\-\-\-\-\-
  153549. 1.10.3\-0ubuntu0.16.04.2:
  153550. \-\-\-\-\-\-\-\-\-\-
  153551. Description:
  153552. small, powerful, scalable web/proxy server
  153553. 1.9.15\-0ubuntu1:
  153554. \-\-\-\-\-\-\-\-\-\-
  153555. Description:
  153556. small, powerful, scalable web/proxy server
  153557. nginx\-common:
  153558. \-\-\-\-\-\-\-\-\-\-
  153559. 1.10.3\-0ubuntu0.16.04.2:
  153560. \-\-\-\-\-\-\-\-\-\-
  153561. Description:
  153562. small, powerful, scalable web/proxy server \- common files
  153563. 1.9.15\-0ubuntu1:
  153564. \-\-\-\-\-\-\-\-\-\-
  153565. Description:
  153566. small, powerful, scalable web/proxy server \- common files
  153567. nginx\-core:
  153568. \-\-\-\-\-\-\-\-\-\-
  153569. 1.10.3\-0ubuntu0.16.04.2:
  153570. \-\-\-\-\-\-\-\-\-\-
  153571. Description:
  153572. nginx web/proxy server (core version)
  153573. Provides:
  153574. httpd, httpd\-cgi, nginx
  153575. 1.9.15\-0ubuntu1:
  153576. \-\-\-\-\-\-\-\-\-\-
  153577. Description:
  153578. nginx web/proxy server (core version)
  153579. Provides:
  153580. httpd, httpd\-cgi, nginx
  153581. nginx\-core\-dbg:
  153582. \-\-\-\-\-\-\-\-\-\-
  153583. 1.10.3\-0ubuntu0.16.04.2:
  153584. \-\-\-\-\-\-\-\-\-\-
  153585. Description:
  153586. nginx web/proxy server (core version) \- debugging symbols
  153587. 1.9.15\-0ubuntu1:
  153588. \-\-\-\-\-\-\-\-\-\-
  153589. Description:
  153590. nginx web/proxy server (core version) \- debugging symbols
  153591. nginx\-doc:
  153592. \-\-\-\-\-\-\-\-\-\-
  153593. 1.10.3\-0ubuntu0.16.04.2:
  153594. \-\-\-\-\-\-\-\-\-\-
  153595. Description:
  153596. small, powerful, scalable web/proxy server \- documentation
  153597. 1.9.15\-0ubuntu1:
  153598. \-\-\-\-\-\-\-\-\-\-
  153599. Description:
  153600. small, powerful, scalable web/proxy server \- documentation
  153601. nginx\-extras:
  153602. \-\-\-\-\-\-\-\-\-\-
  153603. 1.10.3\-0ubuntu0.16.04.2:
  153604. \-\-\-\-\-\-\-\-\-\-
  153605. Description:
  153606. nginx web/proxy server (extended version)
  153607. Provides:
  153608. httpd, httpd\-cgi, nginx
  153609. 1.9.15\-0ubuntu1:
  153610. \-\-\-\-\-\-\-\-\-\-
  153611. Description:
  153612. nginx web/proxy server (extended version)
  153613. Provides:
  153614. httpd, httpd\-cgi, nginx
  153615. nginx\-extras\-dbg:
  153616. \-\-\-\-\-\-\-\-\-\-
  153617. 1.10.3\-0ubuntu0.16.04.2:
  153618. \-\-\-\-\-\-\-\-\-\-
  153619. Description:
  153620. nginx web/proxy server (extended version) \- debugging symbols
  153621. 1.9.15\-0ubuntu1:
  153622. \-\-\-\-\-\-\-\-\-\-
  153623. Description:
  153624. nginx web/proxy server (extended version) \- debugging symbols
  153625. nginx\-full:
  153626. \-\-\-\-\-\-\-\-\-\-
  153627. 1.10.3\-0ubuntu0.16.04.2:
  153628. \-\-\-\-\-\-\-\-\-\-
  153629. Description:
  153630. nginx web/proxy server (standard version)
  153631. Provides:
  153632. httpd, httpd\-cgi, nginx
  153633. 1.9.15\-0ubuntu1:
  153634. \-\-\-\-\-\-\-\-\-\-
  153635. Description:
  153636. nginx web/proxy server (standard version)
  153637. Provides:
  153638. httpd, httpd\-cgi, nginx
  153639. nginx\-full\-dbg:
  153640. \-\-\-\-\-\-\-\-\-\-
  153641. 1.10.3\-0ubuntu0.16.04.2:
  153642. \-\-\-\-\-\-\-\-\-\-
  153643. Description:
  153644. nginx web/proxy server (standard version) \- debugging symbols
  153645. 1.9.15\-0ubuntu1:
  153646. \-\-\-\-\-\-\-\-\-\-
  153647. Description:
  153648. nginx web/proxy server (standard version) \- debugging symbols
  153649. nginx\-light:
  153650. \-\-\-\-\-\-\-\-\-\-
  153651. 1.10.3\-0ubuntu0.16.04.2:
  153652. \-\-\-\-\-\-\-\-\-\-
  153653. Description:
  153654. nginx web/proxy server (basic version)
  153655. Provides:
  153656. httpd, httpd\-cgi, nginx
  153657. 1.9.15\-0ubuntu1:
  153658. \-\-\-\-\-\-\-\-\-\-
  153659. Description:
  153660. nginx web/proxy server (basic version)
  153661. Provides:
  153662. httpd, httpd\-cgi, nginx
  153663. nginx\-light\-dbg:
  153664. \-\-\-\-\-\-\-\-\-\-
  153665. 1.10.3\-0ubuntu0.16.04.2:
  153666. \-\-\-\-\-\-\-\-\-\-
  153667. Description:
  153668. nginx web/proxy server (basic version) \- debugging symbols
  153669. 1.9.15\-0ubuntu1:
  153670. \-\-\-\-\-\-\-\-\-\-
  153671. Description:
  153672. nginx web/proxy server (basic version) \- debugging symbols
  153673. .ft P
  153674. .fi
  153675. .UNINDENT
  153676. .UNINDENT
  153677. .SS Minion Startup Events
  153678. .sp
  153679. When a minion starts up it sends a notification on the event bus with a tag
  153680. that looks like this: \fBsalt/minion/<minion_id>/start\fP\&. For historical reasons
  153681. the minion also sends a similar event with an event tag like this:
  153682. \fBminion_start\fP\&. This duplication can cause a lot of clutter on the event bus
  153683. when there are many minions. Set \fBenable_legacy_startup_events: False\fP in the
  153684. minion config to ensure only the \fBsalt/minion/<minion_id>/start\fP events are
  153685. sent.
  153686. .sp
  153687. The new \fBenable_legacy_startup_events\fP minion config option
  153688. defaults to \fBTrue\fP, but will be set to default to \fBFalse\fP beginning with
  153689. the 3001 release of Salt.
  153690. .sp
  153691. The Salt Syndic currently sends an old style \fBsyndic_start\fP event as well. The
  153692. syndic respects \fBenable_legacy_startup_events\fP as well.
  153693. .SS Failhard changes
  153694. .sp
  153695. It is now possible to override a global failhard setting with a state\-level
  153696. failhard setting. This is most useful in case where global failhard is set to
  153697. \fBTrue\fP and you want the execution not to stop for a specific state that
  153698. could fail, by setting the state level failhard to \fBFalse\fP\&.
  153699. This also allows for the use of \fBonfail*\fP\-requisites, which would previously
  153700. be ignored when a global failhard was set to \fBTrue\fP\&.
  153701. This is a deviation from previous behavior, where the global failhard setting
  153702. always resulted in an immediate stop whenever any state failed (regardless
  153703. of whether the failing state had a failhard setting of its own, or whether
  153704. any \fBonfail*\fP\-requisites were used).
  153705. .SS Pass Through Options to \fBfile.serialize\fP State
  153706. .sp
  153707. This allows for more granular control over the way in which the dataset is
  153708. serialized. See the documentation for the new \fBserializer_opts\fP and
  153709. \fBdeserializer_opts\fP options in the \fBfile.serialize\fP state for more information.
  153710. .SS \fBfile.patch\fP State Rewritten
  153711. .sp
  153712. The \fBfile.patch\fP state has been rewritten with
  153713. several new features:
  153714. .INDENT 0.0
  153715. .IP \(bu 2
  153716. Patch sources can now be remote files instead of only \fBsalt://\fP URLs
  153717. .IP \(bu 2
  153718. Multi\-file patches are now supported
  153719. .IP \(bu 2
  153720. Patch files can be templated
  153721. .UNINDENT
  153722. .sp
  153723. In addition, it is no longer necessary to specify what the hash of the patched
  153724. file should be.
  153725. .SS New no_proxy Minion Configuration
  153726. .sp
  153727. Pass a list of hosts using the \fBno_proxy\fP minion config option to bypass an HTTP
  153728. proxy.
  153729. .sp
  153730. \fBNOTE:\fP
  153731. .INDENT 0.0
  153732. .INDENT 3.5
  153733. This key does nothing unless proxy_host is configured and it does not support
  153734. any kind of wildcards.
  153735. .UNINDENT
  153736. .UNINDENT
  153737. .INDENT 0.0
  153738. .INDENT 3.5
  153739. .sp
  153740. .nf
  153741. .ft C
  153742. no_proxy: [ \(aq127.0.0.1\(aq, \(aqfoo.tld\(aq ]
  153743. .ft P
  153744. .fi
  153745. .UNINDENT
  153746. .UNINDENT
  153747. .SS Changes to \fBslack\fP Engine
  153748. .sp
  153749. The output returned to Slack from functions run using this engine is now
  153750. formatted using that function\(aqs proper outputter. Earlier releases would format
  153751. the output in YAML for all functions except for when states were run.
  153752. .SS Enhancements to \fBwtmp\fP Beacon
  153753. .sp
  153754. A new key, \fBaction\fP, has been added to the events fired by this beacon, which
  153755. will contain either the string \fBlogin\fP or \fBlogout\fP\&. This will simplify
  153756. reactors which use this beacon\(aqs data, as it will no longer be necessary to
  153757. check the integer value of the \fBtype\fP key to know whether the event is a
  153758. login or logout.
  153759. .sp
  153760. Additionally, in the event that your platform has a non\-standard \fButmp.h\fP,
  153761. you can now configure which type numbers indicate a login and logout.
  153762. .sp
  153763. See the \fBwtmp beacon documentation\fP for more
  153764. information.
  153765. .SS Deprecated and Removed Options
  153766. .SS API Removed Arguments
  153767. .sp
  153768. Support for LocalClient\(aqs \fBexpr_form\fP argument has
  153769. been removed. Please use \fBtgt_type\fP instead. This change was made due to
  153770. numerous reports of confusion among community members, since the targeting
  153771. method is published to minions as \fBtgt_type\fP, and appears as \fBtgt_type\fP
  153772. in the job cache as well.
  153773. .sp
  153774. Those who are using the LocalClient (either directly,
  153775. or implicitly via a netapi module) need to update
  153776. their code to use \fBtgt_type\fP\&.
  153777. .INDENT 0.0
  153778. .INDENT 3.5
  153779. .sp
  153780. .nf
  153781. .ft C
  153782. >>> import salt.client
  153783. >>> local = salt.client.LocalClient()
  153784. >>> local.cmd(\(aq*\(aq, \(aqcmd.run\(aq, [\(aqwhoami\(aq], tgt_type=\(aqglob\(aq)
  153785. {\(aqjerry\(aq: \(aqroot\(aq}
  153786. .ft P
  153787. .fi
  153788. .UNINDENT
  153789. .UNINDENT
  153790. .SS Minion Configuration Deprecated Option
  153791. .sp
  153792. The \fBmaster_shuffle\fP configuration option is deprecated as of the
  153793. \fB2019.2.0\fP release. Please use the \fBrandom_master\fP option instead.
  153794. .SS Module Removed Options
  153795. .INDENT 0.0
  153796. .IP \(bu 2
  153797. The \fBnapalm_network\fP module has been
  153798. changed as follows:
  153799. .INDENT 2.0
  153800. .INDENT 3.5
  153801. .INDENT 0.0
  153802. .IP \(bu 2
  153803. Support for the \fBtemplate_path\fP has been removed from
  153804. \fBnet.load_template\fP
  153805. function. This is because support for NAPALM native templates has been
  153806. dropped.
  153807. .UNINDENT
  153808. .UNINDENT
  153809. .UNINDENT
  153810. .IP \(bu 2
  153811. The \fBpip\fP module has been changed as follows:
  153812. .INDENT 2.0
  153813. .INDENT 3.5
  153814. .INDENT 0.0
  153815. .IP \(bu 2
  153816. Support for the \fBno_chown\fP option has been removed from
  153817. \fBpip.install\fP function.
  153818. .UNINDENT
  153819. .UNINDENT
  153820. .UNINDENT
  153821. .IP \(bu 2
  153822. The \fBtrafficserver\fP module has been
  153823. changed as follows:
  153824. .INDENT 2.0
  153825. .INDENT 3.5
  153826. .INDENT 0.0
  153827. .IP \(bu 2
  153828. The \fBtrafficserver.match_var\fP function was removed. Please use
  153829. \fBtrafficserver.match_metric\fP instead.
  153830. .IP \(bu 2
  153831. The \fBtrafficserver.read_var\fP function was removed. Please use
  153832. \fBtrafficserver.read_config\fP instead.
  153833. .IP \(bu 2
  153834. The \fBtrafficserver.set_var\fP function was removed. Please use
  153835. \fBtrafficserver.set_config\fP instead.
  153836. .UNINDENT
  153837. .UNINDENT
  153838. .UNINDENT
  153839. .IP \(bu 2
  153840. The \fBwin_update\fP module has been removed. It has been replaced by
  153841. \fBwin_wua\fP\&.
  153842. .IP \(bu 2
  153843. The \fBwin_wua\fP module has been changed as
  153844. follows:
  153845. .INDENT 2.0
  153846. .INDENT 3.5
  153847. .INDENT 0.0
  153848. .IP \(bu 2
  153849. The \fBwin_wua.download_update\fP and \fBwin_wua.download_updates\fP
  153850. functions have been removed. Please use \fBwin_wua.download\fP instead.
  153851. .IP \(bu 2
  153852. The \fBwin_wua.install_update\fP and \fBwin_wua.install_updates\fP
  153853. functions have been removed. Please use \fBwin_wua.install\fP instead.
  153854. .IP \(bu 2
  153855. The \fBwin_wua.list_update\fP function has been removed. Please use
  153856. functions have been removed. Please use \fBwin_wua.get\fP instead.
  153857. .IP \(bu 2
  153858. The \fBwin_wua.list_updates\fP function has been removed. Please use
  153859. functions have been removed. Please use \fBwin_wua.list\fP instead.
  153860. .UNINDENT
  153861. .UNINDENT
  153862. .UNINDENT
  153863. .UNINDENT
  153864. .SS Pillar Removed Option
  153865. .INDENT 0.0
  153866. .IP \(bu 2
  153867. The \fBvault\fP external pillar has been changed as
  153868. follows:
  153869. .INDENT 2.0
  153870. .INDENT 3.5
  153871. .INDENT 0.0
  153872. .IP \(bu 2
  153873. Support for the \fBprofile\fP argument was removed. Any options passed up
  153874. until and following the first \fBpath=\fP are discarded.
  153875. .UNINDENT
  153876. .UNINDENT
  153877. .UNINDENT
  153878. .UNINDENT
  153879. .SS Roster Removed Option
  153880. .INDENT 0.0
  153881. .IP \(bu 2
  153882. The \fBcache\fP roster has been changed as follows:
  153883. .INDENT 2.0
  153884. .INDENT 3.5
  153885. .INDENT 0.0
  153886. .IP \(bu 2
  153887. Support for \fBroster_order\fP as a list or tuple has been removed. As of
  153888. the \fB2019.2.0\fP release, \fBroster_order\fP must be a dictionary.
  153889. .IP \(bu 2
  153890. The \fBroster_order\fP option now includes IPv6 in addition to IPv4 for the
  153891. \fBprivate\fP, \fBpublic\fP, \fBglobal\fP or \fBlocal\fP settings. The syntax for
  153892. these settings has changed to \fBipv4\-*\fP or \fBipv6\-*\fP, respectively.
  153893. .UNINDENT
  153894. .UNINDENT
  153895. .UNINDENT
  153896. .UNINDENT
  153897. .SS State Removed Modules and Options
  153898. .INDENT 0.0
  153899. .IP \(bu 2
  153900. The \fBdocker\fP state module has been removed
  153901. .INDENT 2.0
  153902. .INDENT 3.5
  153903. .INDENT 0.0
  153904. .IP \(bu 2
  153905. In 2017.7.0, the states from this module were
  153906. split into four separate state modules:
  153907. .INDENT 2.0
  153908. .INDENT 3.5
  153909. .INDENT 0.0
  153910. .IP \(bu 2
  153911. \fBdocker_container\fP
  153912. .IP \(bu 2
  153913. \fBdocker_image\fP
  153914. .IP \(bu 2
  153915. \fBdocker_volume\fP
  153916. .IP \(bu 2
  153917. \fBdocker_network\fP
  153918. .UNINDENT
  153919. .UNINDENT
  153920. .UNINDENT
  153921. .IP \(bu 2
  153922. The \fBdocker\fP module remained, for backward\-compatibility, but it has now
  153923. been removed. Please update SLS files to use the new state names:
  153924. .INDENT 2.0
  153925. .INDENT 3.5
  153926. .INDENT 0.0
  153927. .IP \(bu 2
  153928. \fBdocker.running\fP => \fBdocker_container.running\fP
  153929. .IP \(bu 2
  153930. \fBdocker.stopped\fP => \fBdocker_container.stopped\fP
  153931. .IP \(bu 2
  153932. \fBdocker.absent\fP => \fBdocker_container.absent\fP
  153933. .IP \(bu 2
  153934. \fBdocker.network_present\fP => \fBdocker_network.present\fP
  153935. .IP \(bu 2
  153936. \fBdocker.network_absent\fP => \fBdocker_network.absent\fP
  153937. .IP \(bu 2
  153938. \fBdocker.image_present\fP => \fBdocker_image.present\fP
  153939. .IP \(bu 2
  153940. \fBdocker.image_absent\fP => \fBdocker_image.absent\fP
  153941. .IP \(bu 2
  153942. \fBdocker.volume_present\fP => \fBdocker_volume.present\fP
  153943. .IP \(bu 2
  153944. \fBdocker.volume_absent\fP => \fBdocker_volume.absent\fP
  153945. .UNINDENT
  153946. .UNINDENT
  153947. .UNINDENT
  153948. .UNINDENT
  153949. .UNINDENT
  153950. .UNINDENT
  153951. .IP \(bu 2
  153952. The \fBdocker_network\fP state module has
  153953. been changed as follows:
  153954. .INDENT 2.0
  153955. .INDENT 3.5
  153956. .INDENT 0.0
  153957. .IP \(bu 2
  153958. The \fBdriver\fP option has been removed from
  153959. \fBdocker_network.absent\fP\&. It
  153960. had no functionality, as the state simply deletes the specified network
  153961. name if it exists.
  153962. .UNINDENT
  153963. .UNINDENT
  153964. .UNINDENT
  153965. .IP \(bu 2
  153966. The deprecated \fBref\fP option has been removed from the
  153967. \fBgit.detached\fP state. Please use \fBrev\fP
  153968. instead.
  153969. .IP \(bu 2
  153970. The \fBk8s\fP state module has been removed in favor of the \fBkubernetes\fP state mdoule. Please update SLS files as follows:
  153971. .INDENT 2.0
  153972. .INDENT 3.5
  153973. .INDENT 0.0
  153974. .IP \(bu 2
  153975. In place of \fBk8s.label_present\fP, use
  153976. \fBkubernetes.node_label_present\fP
  153977. .IP \(bu 2
  153978. In place of \fBk8s.label_absent\fP, use
  153979. \fBkubernetes.node_label_absent\fP
  153980. .IP \(bu 2
  153981. In place of \fBk8s.label_folder_absent\fP, use
  153982. \fBkubernetes.node_label_folder_absent\fP
  153983. .UNINDENT
  153984. .UNINDENT
  153985. .UNINDENT
  153986. .IP \(bu 2
  153987. Support for the \fBtemplate_path\fP option in the \fBnetconfig.managed
  153988. <salt.states.netconfig.managed()\fP state has been removed. This is because
  153989. support for NAPALM native templates has been dropped.
  153990. .IP \(bu 2
  153991. Support for the \fBno_chown\fP option in the
  153992. \fBpip.insalled\fP state has been removed.
  153993. .IP \(bu 2
  153994. The \fBtrafficserver.set_var\fP
  153995. state has been removed. Please use \fBtrafficserver.config\fP instead.
  153996. .IP \(bu 2
  153997. Support for the \fBno_chown\fP option in the
  153998. :py:func\(gavirtualenv.managed <salt.states.virtualenv.managed>\(ga function has
  153999. been removed.
  154000. .IP \(bu 2
  154001. The \fBwin_update\fP state module has been removed. It has been replaced by
  154002. \fBwin_wua\fP\&.
  154003. .IP \(bu 2
  154004. Support for virtual packages has been removed from the
  154005. py:mod:\fIpkg state <salt.states.pkg>\fP\&.
  154006. .UNINDENT
  154007. .SS Utils Removed Options
  154008. .sp
  154009. The \fBcloud\fP utils module had the following changes:
  154010. .INDENT 0.0
  154011. .IP \(bu 2
  154012. Support for the \fBcache_nodes_ip\fP function in \fBsalt utils module\fP
  154013. has been removed. The function was incomplete and non\-functional.
  154014. .UNINDENT
  154015. .sp
  154016. The \fBvault\fP utils module had the following changes:
  154017. .INDENT 0.0
  154018. .IP \(bu 2
  154019. Support for specifying Vault connection data within a \(aqprofile\(aq has been removed.
  154020. Please see the \fBvault execution module\fP documentation for
  154021. details on the new configuration schema.
  154022. .UNINDENT
  154023. .SS Dependency Deprecations
  154024. .sp
  154025. Salt\-Cloud has been updated to use the \fBpypsexec\fP Python library instead of the
  154026. \fBwinexe\fP executable. Both \fBwinexe\fP and \fBpypsexec\fP run remote commands
  154027. against Windows OSes. Since \fBwinexe\fP is not packaged for every system, it has
  154028. been deprecated in favor of \fBpypsexec\fP\&.
  154029. .sp
  154030. Salt\-Cloud has deprecated the use \fBimpacket\fP in favor of \fBsmbprotocol\fP\&.
  154031. This changes was made because \fBimpacket\fP is not compatible with Python 3.
  154032. .SS SaltSSH Major Updates
  154033. .sp
  154034. SaltSSH now works across different major Python versions. Python 2.7 ~ Python 3.x
  154035. are now supported transparently. Requirement is, however, that the SaltMaster should
  154036. have installed Salt, including all related dependencies for Python 2 and Python 3.
  154037. Everything needs to be importable from the respective Python environment.
  154038. .sp
  154039. SaltSSH can bundle up an arbitrary version of Salt. If there would be an old box for
  154040. example, running an outdated and unsupported Python 2.6, it is still possible from
  154041. a SaltMaster with Python 3.5 or newer to access it. This feature requires an additional
  154042. configuration in /etc/salt/master as follows:
  154043. .INDENT 0.0
  154044. .INDENT 3.5
  154045. .sp
  154046. .nf
  154047. .ft C
  154048. ssh_ext_alternatives:
  154049. 2016.3: # Namespace, can be actually anything.
  154050. py\-version: [2, 6] # Constraint to specific interpreter version
  154051. path: /opt/2016.3/salt # Main Salt installation
  154052. dependencies: # List of dependencies and their installation paths
  154053. jinja2: /opt/jinja2
  154054. yaml: /opt/yaml
  154055. tornado: /opt/tornado
  154056. msgpack: /opt/msgpack
  154057. certifi: /opt/certifi
  154058. singledispatch: /opt/singledispatch.py
  154059. singledispatch_helpers: /opt/singledispatch_helpers.py
  154060. markupsafe: /opt/markupsafe
  154061. backports_abc: /opt/backports_abc.py
  154062. .ft P
  154063. .fi
  154064. .UNINDENT
  154065. .UNINDENT
  154066. .sp
  154067. It is also possible to use several alternative versions of Salt. You can for
  154068. instance generate a minimal tarball using runners and include that. But this is
  154069. only possible, when such specific Salt version is also available on the Master
  154070. machine, although does not need to be directly installed together with the
  154071. older Python interpreter.
  154072. .sp
  154073. SaltSSH now support private key\(aqs passphrase. You can configure it by:
  154074. .INDENT 0.0
  154075. .IP \(bu 2
  154076. \fI\-\-priv\-passwd\fP for salt\-ssh cli
  154077. .IP \(bu 2
  154078. \fIsalt_priv_passwd\fP for salt master configure file
  154079. .IP \(bu 2
  154080. \fIpriv_passwd\fP for salt roster file
  154081. .UNINDENT
  154082. .SS State Module Changes
  154083. .SS \fBsalt\fP State Module (used in orchestration)
  154084. .sp
  154085. The \fBtest\fP option now defaults to None. A value of \fBTrue\fP or \fBFalse\fP set
  154086. here is passed to the state being run and can be used to override a \fBtest:
  154087. True\fP option set in the minion\(aqs config file. In previous releases the
  154088. minion\(aqs config option would take precedence and it would be impossible to run
  154089. an orchestration on a minion with test mode set to True in the config file.
  154090. .sp
  154091. If a minion is not in permanent test mode due to the config file and the \(aqtest\(aq
  154092. argument here is left as None then a value of \fBtest=True\fP on the command\-line is
  154093. passed correctly to the minion to run an orchestration in test mode. At present
  154094. it is not possible to pass \fBtest=False\fP on the command\-line to override a
  154095. minion in permanent test mode and so the \fBtest: False\fP option must still be set
  154096. in the orchestration file.
  154097. .SS \fBevent.send\fP State
  154098. .sp
  154099. The \fBevent.send\fP state does not know the
  154100. results of the sent event, so returns changed every state run. It can now be
  154101. set to return changed or unchanged.
  154102. .SS \fBinfluxdb_user.present\fP Influxdb User Module State
  154103. .sp
  154104. The \fBpassword\fP parameter has been changed to \fBpasswd\fP to remove the
  154105. name collusion with the influxdb client configuration (\fBclient_kwargs\fP)
  154106. allowing management of users when authentication is enabled on the influxdb
  154107. instance
  154108. .sp
  154109. Old behavior:
  154110. .INDENT 0.0
  154111. .INDENT 3.5
  154112. .sp
  154113. .nf
  154114. .ft C
  154115. influxdb_user.present:
  154116. \- name: exampleuser
  154117. \- password: exampleuserpassword
  154118. \- user: admin
  154119. \- password: adminpassword
  154120. .ft P
  154121. .fi
  154122. .UNINDENT
  154123. .UNINDENT
  154124. .sp
  154125. New behavior:
  154126. .INDENT 0.0
  154127. .INDENT 3.5
  154128. .sp
  154129. .nf
  154130. .ft C
  154131. influxdb_user.present:
  154132. \- name: exampleuser
  154133. \- passwd: exampleuserpassword
  154134. \- user: admin
  154135. \- password: adminpassword
  154136. .ft P
  154137. .fi
  154138. .UNINDENT
  154139. .UNINDENT
  154140. .SS \fBwinrepo_cache_expire_min\fP Windows Package Definitions Caching
  154141. .sp
  154142. The \fBwinrepo_cache_expire_min\fP has been changed from 0 to 1800 (30 minutes)
  154143. For example if you run highstate the package definitions are normally updated,
  154144. however now if the package definitions are younger than \fBwinrepo_cache_expire_min\fP
  154145. (30 minutes) the package definitions will not be refreshed, reducing the amount
  154146. of time taken to run a 2nd highstate. To get the old behaviour change the value
  154147. back to 0 in the minion configuration file. This also effects the behaviour of
  154148. other functions which default to refresh. The \fBpkg.refresh_db\fP will always
  154149. refresh the package definitions.
  154150. .SS LDAP External Authentication
  154151. .SS freeipa \fBgroupattribute\fP support
  154152. .sp
  154153. Previously, if Salt was using external authentication against a freeipa LDAP
  154154. system it could only search for users via the \fBaccountattributename\fP field.
  154155. This release add an additional search using the \fBgroupattribute\fP field as
  154156. well. The original \fBaccountattributename\fP search is done first then the
  154157. \fBgroupattribute\fP allowing for backward compatibility with previous Salt
  154158. releases.
  154159. .SS Jinja Include Relative Paths
  154160. .sp
  154161. When a jinja include template name begins with \fB\&./\fP or
  154162. \fB\&../\fP then the import will be relative to the importing file.
  154163. .sp
  154164. Prior practices required the following construct:
  154165. .INDENT 0.0
  154166. .INDENT 3.5
  154167. .sp
  154168. .nf
  154169. .ft C
  154170. {% from tpldir ~ \(aq/foo\(aq import bar %}
  154171. .ft P
  154172. .fi
  154173. .UNINDENT
  154174. .UNINDENT
  154175. .sp
  154176. A more "natural" construct is now supported:
  154177. .INDENT 0.0
  154178. .INDENT 3.5
  154179. .sp
  154180. .nf
  154181. .ft C
  154182. {% from \(aq./foo\(aq import bar %}
  154183. .ft P
  154184. .fi
  154185. .UNINDENT
  154186. .UNINDENT
  154187. .sp
  154188. Comparatively when importing from a parent directory \- prior practice:
  154189. .INDENT 0.0
  154190. .INDENT 3.5
  154191. .sp
  154192. .nf
  154193. .ft C
  154194. {% from tpldir ~ \(aq/../foo\(aq import bar %}
  154195. .ft P
  154196. .fi
  154197. .UNINDENT
  154198. .UNINDENT
  154199. .sp
  154200. New style for including from a parent directory:
  154201. .INDENT 0.0
  154202. .INDENT 3.5
  154203. .sp
  154204. .nf
  154205. .ft C
  154206. {% from \(aq../foo\(aq import bar %}
  154207. .ft P
  154208. .fi
  154209. .UNINDENT
  154210. .UNINDENT
  154211. .SS salt\-api
  154212. .SS salt\-api Windows support
  154213. .sp
  154214. Previously, salt\-api was was not supported on the Microsoft Windows platforms. Now it is!
  154215. salt\-api provides a RESTful interface to a running Salt system. It allows
  154216. for viewing minions, runners, and jobs as well as running execution modules
  154217. and runners of a running Salt system through a REST API that returns JSON.
  154218. See \fI\%Salt\-API\fP documentation.
  154219. .. _Salt\-API: \fI\%https://docs.saltstack.com/en/latest/topics/netapi/index.html\fP
  154220. .SS Logging Changes
  154221. .SS Include Job ID (JID) in Minion and Master Logs
  154222. .sp
  154223. The Job ID (JID) can now be optionally included in both the minion and master logs
  154224. by including \fBjid\fP in either the \fBlog_fmt_console\fP or \fBlog_fmt_logfile\fP
  154225. configuration option:
  154226. .INDENT 0.0
  154227. .INDENT 3.5
  154228. .sp
  154229. .nf
  154230. .ft C
  154231. log_fmt_console: "[%(levelname)\-8s] %(jid)s %(message)s"
  154232. .ft P
  154233. .fi
  154234. .UNINDENT
  154235. .UNINDENT
  154236. .sp
  154237. The will cause the JID to be included in any log entries that are related to a
  154238. particular Salt job. The JID will be included using the default format,
  154239. \fB[JID: %(jid)s]\fP but can be overriden with the \fBlog_fmt_jid\fP configuration item.
  154240. .INDENT 0.0
  154241. .INDENT 3.5
  154242. .sp
  154243. .nf
  154244. .ft C
  154245. log_fmt_jid: "[JID: %(jid)s]"
  154246. .ft P
  154247. .fi
  154248. .UNINDENT
  154249. .UNINDENT
  154250. .SS Security
  154251. .SS Windows runas changes
  154252. .sp
  154253. A password is no longer required with \fBrunas\fP under normal circumstances.
  154254. The password option is only needed if the minion process is run under a
  154255. restricted (non\-administrator) account. In the aforementioned case, a password
  154256. is only required when using the \fBrunas\fP argument to run command as a
  154257. different user.
  154258. .SS New Modules
  154259. .SS Execution Modules
  154260. .INDENT 0.0
  154261. .IP \(bu 2
  154262. \fBsalt.modules.ciscoconfparse_mod\fP
  154263. .IP \(bu 2
  154264. \fBsalt.modules.jira\fP
  154265. .IP \(bu 2
  154266. \fBsalt.modules.google_chat\fP
  154267. .IP \(bu 2
  154268. \fBsalt.modules.iosconfig\fP
  154269. .IP \(bu 2
  154270. \fBsalt.modules.netmiko\fP
  154271. .IP \(bu 2
  154272. \fBsalt.modules.nxos_api\fP
  154273. .IP \(bu 2
  154274. \fBsalt.modules.peeringdb\fP
  154275. .IP \(bu 2
  154276. \fBsalt.modules.purefb\fP
  154277. .IP \(bu 2
  154278. \fBsalt.modules.pyeapi\fP
  154279. .UNINDENT
  154280. .SS Pillar Modules
  154281. .INDENT 0.0
  154282. .IP \(bu 2
  154283. \fBnetbox\fP
  154284. .UNINDENT
  154285. .SS Proxy Modules
  154286. .INDENT 0.0
  154287. .IP \(bu 2
  154288. \fBsalt.proxy.netmiko\fP
  154289. .IP \(bu 2
  154290. \fBsalt.proxy.nxos_api\fP
  154291. .IP \(bu 2
  154292. \fBsalt.proxy.pyeapi\fP
  154293. .UNINDENT
  154294. .SS Salt 2019.2.1 Release Notes
  154295. .sp
  154296. Version 2019.2.1 is a bugfix release for 2019.2.0\&.
  154297. .SS Known Issues
  154298. .INDENT 0.0
  154299. .IP \(bu 2
  154300. \fBISSUE\fP \fI\%#54751\fP: Proxy minion fails to start. Fix planned in 2019.2.2 release.
  154301. .IP \(bu 2
  154302. \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.
  154303. .IP \(bu 2
  154304. \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.
  154305. .IP \(bu 2
  154306. \fBISSUE\fP \fI\%#54731\fP: Returners (except for default salt master returner) not loading properly in Py3. Fix planned in 2019.2.2 release.
  154307. .IP \(bu 2
  154308. \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.
  154309. .IP \(bu 2
  154310. \fBISSUE\fP \fI\%#54765\fP: Jinja from import is broken. Fix planned in 2019.2.2 release.
  154311. .IP \(bu 2
  154312. \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.
  154313. .IP \(bu 2
  154314. \fBISSUE\fP \fI\%#54759\fP: Deprecation warnings for pyzmq. No fix date available yet.
  154315. .UNINDENT
  154316. .SS Change to YAML Renderer
  154317. .INDENT 0.0
  154318. .INDENT 3.5
  154319. .sp
  154320. .nf
  154321. .ft C
  154322. /etc/foo.conf:
  154323. file.managed:
  154324. \- source: salt://foo.conf.jinja
  154325. \- template: jinja
  154326. \- context:
  154327. data: {{ data }}
  154328. .ft P
  154329. .fi
  154330. .UNINDENT
  154331. .UNINDENT
  154332. .sp
  154333. In 2019.2.0, the above SLS will result in an error message following changes to
  154334. the YAML renderer that now require the new Jinja filter \fItojson\fP\&.
  154335. .INDENT 0.0
  154336. .INDENT 3.5
  154337. .sp
  154338. .nf
  154339. .ft C
  154340. /etc/foo.conf:
  154341. file.managed:
  154342. \- source: salt://foo.conf.jinja
  154343. \- template: jinja
  154344. \- context:
  154345. data: {{ data|tojson }}
  154346. .ft P
  154347. .fi
  154348. .UNINDENT
  154349. .UNINDENT
  154350. .sp
  154351. In 2019.2.1, we introduce a new configuration option for both the Salt master and Salt minion
  154352. configurations to be able to support the older YAML renderer. Using the option
  154353. \fBuse_yamlloader_old\fP will allow the YAML renderer to function as before.
  154354. .SS Statistics
  154355. .INDENT 0.0
  154356. .IP \(bu 2
  154357. Total Merges: \fB541\fP
  154358. .IP \(bu 2
  154359. Total Issue References: \fB70\fP
  154360. .IP \(bu 2
  154361. Total PR References: \fB355\fP
  154362. .IP \(bu 2
  154363. 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)
  154364. .UNINDENT
  154365. .SS Changelog for v2019.2.0..v2019.2.1
  154366. .sp
  154367. \fIGenerated at: 2019\-09\-09 19:56:22 UTC\fP
  154368. .INDENT 0.0
  154369. .IP \(bu 2
  154370. \fBISSUE\fP \fI\%#54429\fP: (\fI\%frogunder\fP) [2019.2.1] Sudo user error (refs: \fI\%#54433\fP)
  154371. .IP \(bu 2
  154372. \fBPR\fP \fI\%#54433\fP: (\fI\%dwoz\fP) Re\-gen executors with proper arguments
  154373. @ \fI2019\-09\-09 19:14:05 UTC\fP
  154374. .INDENT 2.0
  154375. .IP \(bu 2
  154376. 62fc61c Merge pull request \fI\%#54433\fP from dwoz/sudo_minion
  154377. .IP \(bu 2
  154378. e08eb19 Merge branch \(aq2019.2.1\(aq into sudo_minion
  154379. .UNINDENT
  154380. .IP \(bu 2
  154381. \fBPR\fP \fI\%#54434\fP: (\fI\%frogunder\fP) fix_docs
  154382. @ \fI2019\-09\-09 18:55:28 UTC\fP
  154383. .INDENT 2.0
  154384. .IP \(bu 2
  154385. 76fac57 Merge pull request \fI\%#54434\fP from frogunder/fix_doc
  154386. .IP \(bu 2
  154387. 2d22d73 fix_docs error
  154388. .IP \(bu 2
  154389. a266a5c fix_docs
  154390. .IP \(bu 2
  154391. db5464a Fix linter warts
  154392. .IP \(bu 2
  154393. 144a600 Re\-gen executors with proper arguments
  154394. .UNINDENT
  154395. .IP \(bu 2
  154396. \fBPR\fP \fI\%#54424\fP: (\fI\%frogunder\fP) remove in progress from release_notes 2019.2.1
  154397. @ \fI2019\-09\-05 23:11:03 UTC\fP
  154398. .INDENT 2.0
  154399. .IP \(bu 2
  154400. 4071dcb Merge pull request \fI\%#54424\fP from frogunder/releasenotes_201921_new
  154401. .IP \(bu 2
  154402. b66436f Update 2019.2.1.rst
  154403. .IP \(bu 2
  154404. bcfef11 remove in progress from release_notes 2019.2.1
  154405. .UNINDENT
  154406. .IP \(bu 2
  154407. \fBPR\fP \fI\%#54416\fP: (\fI\%frogunder\fP) Update man_pages for 2019.2.1
  154408. @ \fI2019\-09\-05 22:48:51 UTC\fP
  154409. .INDENT 2.0
  154410. .IP \(bu 2
  154411. c1587cc Merge pull request \fI\%#54416\fP from frogunder/man_pages_201921
  154412. .IP \(bu 2
  154413. 6f7c4ee Update man_pages for 2019.2.1
  154414. .UNINDENT
  154415. .IP \(bu 2
  154416. \fBPR\fP \fI\%#54419\fP: (\fI\%frogunder\fP) releasenotes 2019.2.1
  154417. @ \fI2019\-09\-05 22:48:42 UTC\fP
  154418. .INDENT 2.0
  154419. .IP \(bu 2
  154420. 3118e2f Merge pull request \fI\%#54419\fP from frogunder/release_notes_201921
  154421. .IP \(bu 2
  154422. 2caee96 Update doc/topics/releases/2019.2.1.rst
  154423. .IP \(bu 2
  154424. ffabde2 Update 2019.2.1.rst
  154425. .IP \(bu 2
  154426. dd6426d Update doc/topics/releases/2019.2.1.rst
  154427. .IP \(bu 2
  154428. 9d4239c Update doc/topics/releases/2019.2.1.rst
  154429. .IP \(bu 2
  154430. 8c60ae4 Update doc/topics/releases/2019.2.1.rst
  154431. .IP \(bu 2
  154432. 72cb24c releasenotes 2019.2.1
  154433. .UNINDENT
  154434. .IP \(bu 2
  154435. \fBPR\fP \fI\%#54409\fP: (\fI\%dwoz\fP) Point salt\-call to correct multi\-master configs
  154436. @ \fI2019\-09\-04 20:08:24 UTC\fP
  154437. .INDENT 2.0
  154438. .IP \(bu 2
  154439. 04e28cf Merge pull request \fI\%#54409\fP from dwoz/mm_log
  154440. .IP \(bu 2
  154441. e207de6 Point salt\-call to correct multi\-master configs
  154442. .UNINDENT
  154443. .IP \(bu 2
  154444. \fBPR\fP \fI\%#54396\fP: (\fI\%dwoz\fP) Use different logging port for multimaster tests
  154445. @ \fI2019\-09\-03 23:20:23 UTC\fP
  154446. .INDENT 2.0
  154447. .IP \(bu 2
  154448. 2c281e0 Merge pull request \fI\%#54396\fP from dwoz/multimaster_logging
  154449. .IP \(bu 2
  154450. 104e0a0 Use different logging port for multimaster tests
  154451. .UNINDENT
  154452. .IP \(bu 2
  154453. \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)
  154454. .IP \(bu 2
  154455. \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)
  154456. .IP \(bu 2
  154457. \fBPR\fP \fI\%#54388\fP: (\fI\%dwoz\fP) 54256 re fix empty api token 2019.2.1
  154458. @ \fI2019\-09\-03 23:19:20 UTC\fP
  154459. .INDENT 2.0
  154460. .IP \(bu 2
  154461. \fBPR\fP \fI\%#54325\fP: (\fI\%waynew\fP) Delete bad API token files (refs: \fI\%#54388\fP)
  154462. .IP \(bu 2
  154463. \fBPR\fP \fI\%#54324\fP: (\fI\%waynew\fP) Delete bad API token files (refs: \fI\%#54325\fP, \fI\%#54388\fP)
  154464. .IP \(bu 2
  154465. 730a007 Merge pull request \fI\%#54388\fP from dwoz/54256\-re\-fix\-empty\-api\-token\-2019.2.1
  154466. .IP \(bu 2
  154467. 80651d3 Fix linter
  154468. .IP \(bu 2
  154469. 982ed3d Delete bad API token files
  154470. .UNINDENT
  154471. .IP \(bu 2
  154472. \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)
  154473. .IP \(bu 2
  154474. \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)
  154475. .IP \(bu 2
  154476. \fBPR\fP \fI\%#54376\fP: (\fI\%dwoz\fP) Move tokens in place with an atomic operation
  154477. @ \fI2019\-09\-03 20:40:50 UTC\fP
  154478. .INDENT 2.0
  154479. .IP \(bu 2
  154480. 11016ce Merge pull request \fI\%#54376\fP from dwoz/tmp_token
  154481. .IP \(bu 2
  154482. 0b28c60 Fix linter complaints
  154483. .IP \(bu 2
  154484. 8e33343 Move tokens in place with an atomic operation
  154485. .UNINDENT
  154486. .IP \(bu 2
  154487. \fBPR\fP \fI\%#54386\fP: (\fI\%twangboy\fP) Fix unit.utils.test_win_dacl (2019.2.1)
  154488. @ \fI2019\-09\-03 16:57:25 UTC\fP
  154489. .INDENT 2.0
  154490. .IP \(bu 2
  154491. 5161203 Merge pull request \fI\%#54386\fP from twangboy/fix_test_win_dacl_2019.2.1
  154492. .IP \(bu 2
  154493. b8fa7d3 Sort the perms
  154494. .UNINDENT
  154495. .IP \(bu 2
  154496. \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
  154497. @ \fI2019\-08\-29 23:26:50 UTC\fP
  154498. .INDENT 2.0
  154499. .IP \(bu 2
  154500. b4caaad Merge pull request \fI\%#54355\fP from s0undt3ch/hotfix/test\-daemons\-2019.2.1
  154501. .IP \(bu 2
  154502. 561c0a2 Have the started processes log instead of just writing to stdout/stderr
  154503. .IP \(bu 2
  154504. c2a3115 Don\(aqt overwritethe stderr logger
  154505. .UNINDENT
  154506. .IP \(bu 2
  154507. \fBPR\fP \fI\%#54353\fP: (\fI\%cmcmarrow\fP) adds @skipIf not windows
  154508. @ \fI2019\-08\-29 19:33:11 UTC\fP
  154509. .INDENT 2.0
  154510. .IP \(bu 2
  154511. ce5b109 Merge pull request \fI\%#54353\fP from cmcmarrow/2019_win_system_skip
  154512. .IP \(bu 2
  154513. 8e28074 adds @skipIf not windows
  154514. .UNINDENT
  154515. .IP \(bu 2
  154516. \fBPR\fP \fI\%#54338\fP: (\fI\%dwoz\fP) Log server closes completely during shutdown
  154517. @ \fI2019\-08\-29 17:14:05 UTC\fP
  154518. .INDENT 2.0
  154519. .IP \(bu 2
  154520. 94c03e5 Merge pull request \fI\%#54338\fP from dwoz/logging_fixup
  154521. .IP \(bu 2
  154522. a3e227e Log server closes completely durring shutdown
  154523. .UNINDENT
  154524. .IP \(bu 2
  154525. \fBPR\fP \fI\%#54327\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Catch the AccessDenied exception and continue when running under Py3.
  154526. @ \fI2019\-08\-29 16:59:34 UTC\fP
  154527. .INDENT 2.0
  154528. .IP \(bu 2
  154529. 490ee69 Merge pull request \fI\%#54327\fP from garethgreenaway/more_test_program_fixes
  154530. .IP \(bu 2
  154531. 97b4d86 Catch the AccessDenied exception and continue when running under Py3.
  154532. .UNINDENT
  154533. .IP \(bu 2
  154534. \fBPR\fP \fI\%#54316\fP: (\fI\%Akm0d\fP) Azure cleanup
  154535. @ \fI2019\-08\-27 16:14:09 UTC\fP
  154536. .INDENT 2.0
  154537. .IP \(bu 2
  154538. bb911c3 Merge pull request \fI\%#54316\fP from Akm0d/azure\-cleanup
  154539. .IP \(bu 2
  154540. 2072773 pass longer timeout to msazure destroyinstance
  154541. .IP \(bu 2
  154542. 34eb477 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into azure\-cleanup
  154543. .IP \(bu 2
  154544. 7ae48b1 Allow azure tests enough time to clean up interfaces
  154545. .IP \(bu 2
  154546. b45ae74 Clean up azure instances properly
  154547. .UNINDENT
  154548. .IP \(bu 2
  154549. \fBPR\fP \fI\%#54314\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Do not raise the exception in testprogram.py
  154550. @ \fI2019\-08\-26 23:59:37 UTC\fP
  154551. .INDENT 2.0
  154552. .IP \(bu 2
  154553. 9334e4e Merge pull request \fI\%#54314\fP from garethgreenaway/testprogram_access_denied_do_not_raise
  154554. .IP \(bu 2
  154555. a53bacb Do not raise the exception if a process can not be access, just continue
  154556. .UNINDENT
  154557. .IP \(bu 2
  154558. \fBPR\fP \fI\%#54305\fP: (\fI\%dwoz\fP) Fix wart in test_process tests on windows
  154559. @ \fI2019\-08\-26 17:59:12 UTC\fP
  154560. .INDENT 2.0
  154561. .IP \(bu 2
  154562. 71fb051 Merge pull request \fI\%#54305\fP from dwoz/winfix
  154563. .IP \(bu 2
  154564. 4e68860 Fix wart in test_process tests on windows
  154565. .UNINDENT
  154566. .IP \(bu 2
  154567. \fBPR\fP \fI\%#54303\fP: (\fI\%dwoz\fP) Fix wart in periodic callback interval
  154568. @ \fI2019\-08\-24 20:04:35 UTC\fP
  154569. .INDENT 2.0
  154570. .IP \(bu 2
  154571. 4d80f0a Merge pull request \fI\%#54303\fP from dwoz/periodic_cb
  154572. .IP \(bu 2
  154573. bf5f7de Fix wart in periodic callback interval
  154574. .UNINDENT
  154575. .IP \(bu 2
  154576. \fBISSUE\fP \fI\%#54219\fP: (\fI\%KChandrashekhar\fP) integration.shell.test_call.py and tests/integration/shell/test_proxy.py (refs: \fI\%#54259\fP)
  154577. .IP \(bu 2
  154578. \fBISSUE\fP \fI\%#54153\fP: (\fI\%KChandrashekhar\fP) Ubuntu 16.04 Proxy failures (refs: \fI\%#54259\fP)
  154579. .IP \(bu 2
  154580. \fBPR\fP \fI\%#54259\fP: (\fI\%dwoz\fP) Call os.fork less to avoid race conditions
  154581. @ \fI2019\-08\-24 02:12:42 UTC\fP
  154582. .INDENT 2.0
  154583. .IP \(bu 2
  154584. 5838851 Merge pull request \fI\%#54259\fP from dwoz/less_forking
  154585. .IP \(bu 2
  154586. bf4d0dd Fix process list tests on windows py3
  154587. .IP \(bu 2
  154588. 316ec78 Allow more time for slow test
  154589. .IP \(bu 2
  154590. 9baf86f Do not remove attributes from process class
  154591. .IP \(bu 2
  154592. e7b6aa8 Clean up cruft
  154593. .IP \(bu 2
  154594. ed7103a Attempt to fix integration.shell.test_call test
  154595. .IP \(bu 2
  154596. 659c805 Change noise log to debug
  154597. .IP \(bu 2
  154598. 0660b1a Clean up typoes
  154599. .IP \(bu 2
  154600. 9f1fe42 Call os.fork less to avoid race conditions
  154601. .UNINDENT
  154602. .IP \(bu 2
  154603. \fBISSUE\fP \fI\%#50814\fP: (\fI\%doesitblend\fP) Minion continues trying down master (refs: \fI\%#54239\fP, \fI\%#53417\fP)
  154604. .IP \(bu 2
  154605. \fBISSUE\fP \fI\%#49680\fP: (\fI\%doesitblend\fP) Beacon events handled differently than event.send (refs: \fI\%#53344\fP, \fI\%#54239\fP)
  154606. .IP \(bu 2
  154607. \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)
  154608. .IP \(bu 2
  154609. \fBPR\fP \fI\%#54247\fP: (\fI\%DmitryKuzmenko\fP) 2019.2.1 with multimaster bb fixes
  154610. @ \fI2019\-08\-23 20:19:19 UTC\fP
  154611. .INDENT 2.0
  154612. .IP \(bu 2
  154613. \fBPR\fP \fI\%#54239\fP: (\fI\%DmitryKuzmenko\fP) Multimaster tests with bb fixes (refs: \fI\%#54247\fP)
  154614. .IP \(bu 2
  154615. \fBPR\fP \fI\%#53848\fP: (\fI\%DmitryKuzmenko\fP) Features/multimaster tests (refs: \fI\%#54239\fP)
  154616. .IP \(bu 2
  154617. \fBPR\fP \fI\%#53417\fP: (\fI\%DmitryKuzmenko\fP) Multimaster minion hang on fire_master (refs: \fI\%#54239\fP, \fI\%#53848\fP)
  154618. .IP \(bu 2
  154619. \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)
  154620. .IP \(bu 2
  154621. 531f3aa Merge pull request \fI\%#54247\fP from DSRCorporation/2019.2.1_with_multimaster_bb_fixes
  154622. .IP \(bu 2
  154623. 62cd8cd Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154624. .UNINDENT
  154625. .IP \(bu 2
  154626. \fBPR\fP \fI\%#54235\fP: (\fI\%github\-abcde\fP) Fix 46034 2019.2.1
  154627. @ \fI2019\-08\-22 22:32:09 UTC\fP
  154628. .INDENT 2.0
  154629. .IP \(bu 2
  154630. 993c341 Merge pull request \fI\%#54235\fP from ogd\-software/fix_46034\-2019.2.1
  154631. .IP \(bu 2
  154632. 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.
  154633. .IP \(bu 2
  154634. c95dd4d Add test for this specific bugfix
  154635. .IP \(bu 2
  154636. efc29d8 Prevent yamlify_arg from stomping "!"
  154637. .UNINDENT
  154638. .IP \(bu 2
  154639. \fBPR\fP \fI\%#54282\fP: (\fI\%Akm0d\fP) clean up renamed instances in the teardown
  154640. @ \fI2019\-08\-22 22:13:51 UTC\fP
  154641. .INDENT 2.0
  154642. .IP \(bu 2
  154643. 5d1a4d0 Merge pull request \fI\%#54282\fP from Akm0d/clean\-up\-renamed
  154644. .IP \(bu 2
  154645. 11c1117 Removed redundant parenthesis
  154646. .IP \(bu 2
  154647. 802235d don\(aqt delete shutting down ec2 instances
  154648. .IP \(bu 2
  154649. 3602942 reversed the order in which an instance was renamed
  154650. .IP \(bu 2
  154651. 5500ede renamed _alt_name function
  154652. .IP \(bu 2
  154653. 23beab4 clean up renamed instances in the teardown
  154654. .UNINDENT
  154655. .IP \(bu 2
  154656. \fBPR\fP \fI\%#54252\fP: (\fI\%s0undt3ch\fP) [2019.2.1] More control on spun test daemons on git pillar tests
  154657. @ \fI2019\-08\-22 22:13:08 UTC\fP
  154658. .INDENT 2.0
  154659. .IP \(bu 2
  154660. c181f5a Merge pull request \fI\%#54252\fP from s0undt3ch/hotfix/git\-pillar\-2019.2.1
  154661. .IP \(bu 2
  154662. 4eb85fa Skip tests on RHEL family < 7
  154663. .IP \(bu 2
  154664. 64a1be8 Don\(aqt even go through the transport to get the system grains
  154665. .IP \(bu 2
  154666. d0f8efa Don\(aqt keep recreating the git repos. Restore from backup.
  154667. .IP \(bu 2
  154668. 6114e9d All prep work is done in \fIsetUpClass\fP\&.
  154669. .IP \(bu 2
  154670. 5b030dd Daemons are now started/stopped on tests, not by salt
  154671. .IP \(bu 2
  154672. ed60f0d We don\(aqt actually need grains
  154673. .IP \(bu 2
  154674. 911446d Lock \fIuwsgi\fP requirement.
  154675. .INDENT 2.0
  154676. .INDENT 3.5
  154677. .INDENT 0.0
  154678. .IP \(bu 2
  154679. 805f0ac Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154680. .UNINDENT
  154681. .UNINDENT
  154682. .UNINDENT
  154683. .UNINDENT
  154684. .IP \(bu 2
  154685. \fBPR\fP \fI\%#54214\fP: (\fI\%Ch3LL\fP) Remove unnecessary logging from minion.py
  154686. @ \fI2019\-08\-22 18:08:26 UTC\fP
  154687. .INDENT 2.0
  154688. .IP \(bu 2
  154689. b40cdbf Merge pull request \fI\%#54214\fP from Ch3LL/fix_logging
  154690. .IP \(bu 2
  154691. 8fd24cf Remove unnecessary logging from minion.py
  154692. .INDENT 2.0
  154693. .INDENT 3.5
  154694. .INDENT 0.0
  154695. .IP \(bu 2
  154696. 9d28098 Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154697. .UNINDENT
  154698. .UNINDENT
  154699. .UNINDENT
  154700. .UNINDENT
  154701. .IP \(bu 2
  154702. \fBPR\fP \fI\%#54277\fP: (\fI\%dwoz\fP) Win runas plus
  154703. @ \fI2019\-08\-21 23:59:16 UTC\fP
  154704. .INDENT 2.0
  154705. .IP \(bu 2
  154706. de77762 Merge pull request \fI\%#54277\fP from dwoz/win_runas_plus
  154707. .IP \(bu 2
  154708. f719591 Update tests
  154709. .IP \(bu 2
  154710. d8749d9 Do not remove attributes from process class
  154711. .IP \(bu 2
  154712. ac5a2a4 Only close handle if it got created
  154713. .UNINDENT
  154714. .IP \(bu 2
  154715. \fBPR\fP \fI\%#54278\fP: (\fI\%Akm0d\fP) Correctly detect when an ms_azure instance is deleted
  154716. @ \fI2019\-08\-21 23:14:01 UTC\fP
  154717. .INDENT 2.0
  154718. .IP \(bu 2
  154719. 93cf40a Merge pull request \fI\%#54278\fP from Akm0d/cloud\-test\-logging
  154720. .IP \(bu 2
  154721. 2dc1520 Merge branch \(aq2019.2.1\(aq into cloud\-test\-logging
  154722. .IP \(bu 2
  154723. 3867448 Fixed incorrect arguments
  154724. .IP \(bu 2
  154725. bdce5f4 Fix detecting msazure deletion with multiple tries
  154726. .UNINDENT
  154727. .IP \(bu 2
  154728. \fBPR\fP \fI\%#54263\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Exit test suite if test daemons fail to start
  154729. @ \fI2019\-08\-21 22:06:52 UTC\fP
  154730. .INDENT 2.0
  154731. .IP \(bu 2
  154732. 94f77a0 Merge pull request \fI\%#54263\fP from s0undt3ch/hotfix/test\-daemons\-2019.2.1
  154733. .IP \(bu 2
  154734. 655efd6 Rearrange logging termination
  154735. .IP \(bu 2
  154736. 28fa5d2 Prevent traceback on python interpreter shutdown
  154737. .IP \(bu 2
  154738. 9035731 Write to stderr a message with the exit code
  154739. .IP \(bu 2
  154740. 566c620 Exit the test suite if one of the test daemons fails to start
  154741. .UNINDENT
  154742. .IP \(bu 2
  154743. \fBPR\fP \fI\%#54270\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Speedup testing helpers decorators
  154744. @ \fI2019\-08\-21 20:33:25 UTC\fP
  154745. .INDENT 2.0
  154746. .IP \(bu 2
  154747. 3b9fd44 Merge pull request \fI\%#54270\fP from s0undt3ch/hotfix/requires\-system\-grains\-2019.2.1
  154748. .IP \(bu 2
  154749. 9f99bff Speedup testing helpers decorators
  154750. .UNINDENT
  154751. .IP \(bu 2
  154752. \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)
  154753. .IP \(bu 2
  154754. \fBPR\fP \fI\%#54274\fP: (\fI\%felippeb\fP) \fI\%#53931\fP never fail on codecov curls
  154755. @ \fI2019\-08\-21 18:12:19 UTC\fP
  154756. .INDENT 2.0
  154757. .IP \(bu 2
  154758. 2c4afa0 Merge pull request \fI\%#54274\fP from felippeb/2019.2.1
  154759. .IP \(bu 2
  154760. 9c0b216 \fI\%#53931\fP never fail on codecov curls
  154761. .UNINDENT
  154762. .IP \(bu 2
  154763. \fBPR\fP \fI\%#54264\fP: (\fI\%dwoz\fP) Fix unit utils jinja when run on their own
  154764. @ \fI2019\-08\-21 17:22:10 UTC\fP
  154765. .INDENT 2.0
  154766. .IP \(bu 2
  154767. b3c70c3 Merge pull request \fI\%#54264\fP from dwoz/jinja_units
  154768. .IP \(bu 2
  154769. 10a6d53 Fix unit utils jinja when run on thier own
  154770. .UNINDENT
  154771. .IP \(bu 2
  154772. \fBPR\fP \fI\%#54266\fP: (\fI\%Akm0d\fP) Fix incorrect types on failing cloud tests
  154773. @ \fI2019\-08\-21 17:14:40 UTC\fP
  154774. .INDENT 2.0
  154775. .IP \(bu 2
  154776. 308ba55 Merge pull request \fI\%#54266\fP from Akm0d/cloud_test_ultimate_fix
  154777. .IP \(bu 2
  154778. ff2125a Invert assertion to test for instance gone
  154779. .IP \(bu 2
  154780. 82136a8 test for ec2 instance shutting down
  154781. .IP \(bu 2
  154782. 283f631 run cloud \-\-query if delete string is not available
  154783. .IP \(bu 2
  154784. 33e6b6d changed deprecated assertEquals
  154785. .IP \(bu 2
  154786. 41e6bc8 Cloud tests run correctly everywhere
  154787. .IP \(bu 2
  154788. 03a8b2c reverted literal_eval
  154789. .UNINDENT
  154790. .IP \(bu 2
  154791. \fBPR\fP \fI\%#54251\fP: (\fI\%Akm0d\fP) reduced query calls to salt\-cloud
  154792. @ \fI2019\-08\-20 20:10:59 UTC\fP
  154793. .INDENT 2.0
  154794. .IP \(bu 2
  154795. 25d0b52 Merge pull request \fI\%#54251\fP from Akm0d/cloud_test_optimization
  154796. .IP \(bu 2
  154797. 5fe6bfc Optimized salt\-cloud queries
  154798. .IP \(bu 2
  154799. 43418a4 Merge pull request \fI\%#7\fP from Ch3LL/cloud_provider_files
  154800. .INDENT 2.0
  154801. .IP \(bu 2
  154802. b93944b Remove joyent config cloud test files
  154803. .IP \(bu 2
  154804. bd37849 Rename provider azure\-config to azurearm\-config
  154805. .UNINDENT
  154806. .IP \(bu 2
  154807. e7c06cb Added longer delays for ec2 tests
  154808. .IP \(bu 2
  154809. 5ceb47e Correctly check for GCE and EC2 deletion
  154810. .IP \(bu 2
  154811. 52c178c Added pretty yaml formatting to cloud\-test logs
  154812. .IP \(bu 2
  154813. 4fc5e9e re\-fixed simultaneous GCE tests
  154814. .IP \(bu 2
  154815. 326e9f2 Merge pull request \fI\%#6\fP from Ch3LL/cloud_provider_files
  154816. .INDENT 2.0
  154817. .IP \(bu 2
  154818. adb1464 fix pylint
  154819. .IP \(bu 2
  154820. 51ce819 Move provider config setup into Setup/Teardown class
  154821. .UNINDENT
  154822. .IP \(bu 2
  154823. e58b40a Merge pull request \fI\%#5\fP from Ch3LL/cloud_provider_files
  154824. .INDENT 2.0
  154825. .IP \(bu 2
  154826. ab8adcc Only use the provider conf.d file we are testing
  154827. .UNINDENT
  154828. .IP \(bu 2
  154829. 76609ad Merge branch \(aq2019.2.1\(aq into cloud_test_optimization
  154830. .IP \(bu 2
  154831. f764bc0 Clean up expensive queries
  154832. .IP \(bu 2
  154833. b3d02df reduced query calls to salt\-cloud
  154834. .UNINDENT
  154835. .IP \(bu 2
  154836. \fBPR\fP \fI\%#54240\fP: (\fI\%Ch3LL\fP) Fix TypeError python3 in get_image_id ec2 cloud
  154837. @ \fI2019\-08\-20 20:10:01 UTC\fP
  154838. .INDENT 2.0
  154839. .IP \(bu 2
  154840. ba81ca3 Merge pull request \fI\%#54240\fP from Ch3LL/get_image_ec2
  154841. .IP \(bu 2
  154842. a3a39f3 Use ami variable instead in test
  154843. .IP \(bu 2
  154844. dc1ae52 Fix TypeError python3 in get_image_id
  154845. .INDENT 2.0
  154846. .INDENT 3.5
  154847. .INDENT 0.0
  154848. .IP \(bu 2
  154849. d6ad475 Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154850. .UNINDENT
  154851. .UNINDENT
  154852. .UNINDENT
  154853. .UNINDENT
  154854. .IP \(bu 2
  154855. \fBPR\fP \fI\%#54246\fP: (\fI\%dwoz\fP) Cut down on log noise
  154856. @ \fI2019\-08\-19 17:20:03 UTC\fP
  154857. .INDENT 2.0
  154858. .IP \(bu 2
  154859. 8404ec2 Merge pull request \fI\%#54246\fP from dwoz/log_noise
  154860. .IP \(bu 2
  154861. e572711 Cut down on log noise
  154862. .UNINDENT
  154863. .IP \(bu 2
  154864. \fBPR\fP \fI\%#54245\fP: (\fI\%dwoz\fP) Fix the sshd pid file
  154865. @ \fI2019\-08\-19 17:19:32 UTC\fP
  154866. .INDENT 2.0
  154867. .IP \(bu 2
  154868. 5b3e925 Merge pull request \fI\%#54245\fP from dwoz/sshd_pid_file
  154869. .IP \(bu 2
  154870. df95347 Fix the sshd pid file
  154871. .UNINDENT
  154872. .IP \(bu 2
  154873. \fBPR\fP \fI\%#54237\fP: (\fI\%dwoz\fP) Do not dup2 things without fileno
  154874. @ \fI2019\-08\-18 17:13:29 UTC\fP
  154875. .INDENT 2.0
  154876. .IP \(bu 2
  154877. 268803b Merge pull request \fI\%#54237\fP from dwoz/dup2
  154878. .IP \(bu 2
  154879. 2ebd22b Fix linter
  154880. .IP \(bu 2
  154881. 63c616a Do not dup2 things without fileno
  154882. .INDENT 2.0
  154883. .INDENT 3.5
  154884. .INDENT 0.0
  154885. .IP \(bu 2
  154886. 0b33498 Workaround for beacons.list_available slowness.
  154887. .IP \(bu 2
  154888. b7a1058 Minor: Better support of named multimaster tests.
  154889. .IP \(bu 2
  154890. a5cccdf Minor: remove unneded logging
  154891. .IP \(bu 2
  154892. 314bbb3 Support tcp transport in multimaster tests. Minor beacon update.
  154893. .IP \(bu 2
  154894. fcb8ff0 Properly set HAS_IPTABLES from __virtual__ return.
  154895. .IP \(bu 2
  154896. a75db01 Multimaster related fixup: don\(aqt run test engine on minions
  154897. .IP \(bu 2
  154898. 8a88542 Multimaster beacons fix: put list into a dict to fire on the bus
  154899. .IP \(bu 2
  154900. 790fb41 Inotify beacons test logging and cleanup update
  154901. .IP \(bu 2
  154902. d84c8851 Inotify beacon test fixes and improvements.
  154903. .IP \(bu 2
  154904. 472ffc0 Give minion more time to handle beacon creation.
  154905. .IP \(bu 2
  154906. 17ceee0 Fixed Lint errors
  154907. .IP \(bu 2
  154908. 0bcf53c Fixed the unicode and timing inotify test issues.
  154909. .IP \(bu 2
  154910. f17bcf3 Improved assertion error diagnostic for master down test.
  154911. .IP \(bu 2
  154912. db0bae8 Run multimaster as well tests when no specific group is set
  154913. .IP \(bu 2
  154914. 723f363 Ignore the multimaster minion subgroup test in module names test.
  154915. .IP \(bu 2
  154916. 612191c Fixed lint failures
  154917. .IP \(bu 2
  154918. c1efae6 Multimaster test for events handling on master disconnect
  154919. .IP \(bu 2
  154920. 1654fe8 Multimaster inotify beacons test
  154921. .IP \(bu 2
  154922. 65dc47c Multimaster tests environment and test module test.
  154923. .IP \(bu 2
  154924. 2c178b0 Moved annoying message to trace log level.
  154925. .IP \(bu 2
  154926. 3e497c1 Handle minion events asynchronously.
  154927. .IP \(bu 2
  154928. 909323a Tests fixes
  154929. .IP \(bu 2
  154930. 6dad18f Cleanup event object
  154931. .IP \(bu 2
  154932. 2bf55be Run beacons on the only one minion instance. Return to all masters.
  154933. .UNINDENT
  154934. .UNINDENT
  154935. .UNINDENT
  154936. .UNINDENT
  154937. .IP \(bu 2
  154938. \fBPR\fP \fI\%#54121\fP: (\fI\%Akm0d\fP) Refactored cloud tests
  154939. @ \fI2019\-08\-16 17:24:14 UTC\fP
  154940. .INDENT 2.0
  154941. .IP \(bu 2
  154942. 27d89bd Merge pull request \fI\%#54121\fP from Akm0d/gce_cloud_test
  154943. .IP \(bu 2
  154944. 48c57b3 Try multiple times to detect deletion of an instance
  154945. .IP \(bu 2
  154946. 74300eb return a valid set
  154947. .IP \(bu 2
  154948. 2d63b87 Wait for an instance to be fully created if necessary
  154949. .IP \(bu 2
  154950. 83ad8b3 Merge branch \(aq2019.2.1\(aq of github.com:SaltStack/salt into gce_cloud_test
  154951. .UNINDENT
  154952. .IP \(bu 2
  154953. \fBISSUE\fP \fI\%#54174\fP: (\fI\%dwoz\fP) SignalHandlingMultiprocessingProcess bugs (refs: \fI\%#54204\fP)
  154954. .IP \(bu 2
  154955. \fBPR\fP \fI\%#54204\fP: (\fI\%dwoz\fP) Fix signal handling in subprocesses
  154956. @ \fI2019\-08\-16 00:46:40 UTC\fP
  154957. .INDENT 2.0
  154958. .IP \(bu 2
  154959. c5ee91c Merge pull request \fI\%#54204\fP from dwoz/signal_proc
  154960. .IP \(bu 2
  154961. 09e5e49 Merge branch \(aq2019.2.1\(aq into signal_proc
  154962. .UNINDENT
  154963. .IP \(bu 2
  154964. \fBISSUE\fP \fI\%#7745\fP: (\fI\%mgwilliams\fP) yaml \(aqmodule\(aq has no attribute \(aqDumper\(aq (refs: \fI\%#54223\fP)
  154965. .IP \(bu 2
  154966. \fBPR\fP \fI\%#54223\fP: (\fI\%dwoz\fP) Test verify logs without a whole minion
  154967. @ \fI2019\-08\-16 00:46:09 UTC\fP
  154968. .INDENT 2.0
  154969. .IP \(bu 2
  154970. 99a8fc5 Merge pull request \fI\%#54223\fP from dwoz/7754_test_removal
  154971. .IP \(bu 2
  154972. 4be711e Fix up linter warts
  154973. .IP \(bu 2
  154974. 7573826 Remove crufty un\-needed tests
  154975. .IP \(bu 2
  154976. effa77d Test verify logs without a whole minion
  154977. .INDENT 2.0
  154978. .IP \(bu 2
  154979. b40f41f Revert fallback to default signals change
  154980. .IP \(bu 2
  154981. 1d83b10 Fix signal handling in subprocesses
  154982. .INDENT 2.0
  154983. .IP \(bu 2
  154984. f90fe66 Reverted foo/bar creds per \fI\%#46265\fP
  154985. .IP \(bu 2
  154986. 3f56bad Reduced the amount of informtaion in debuggings tatements
  154987. .IP \(bu 2
  154988. de53bf0 Merge branch \(aq2019.2.1\(aq of github.com:SaltStack/salt into gce_cloud_test
  154989. .UNINDENT
  154990. .UNINDENT
  154991. .UNINDENT
  154992. .IP \(bu 2
  154993. \fBPR\fP \fI\%#54203\fP: (\fI\%dwoz\fP) Run transport test loops in single thread
  154994. @ \fI2019\-08\-15 20:10:20 UTC\fP
  154995. .INDENT 2.0
  154996. .IP \(bu 2
  154997. 8d440e0 Merge pull request \fI\%#54203\fP from dwoz/transport_tests
  154998. .IP \(bu 2
  154999. 22b9d38 Run transsport test loops in single thread
  155000. .INDENT 2.0
  155001. .IP \(bu 2
  155002. f6180a6 Even better logging of errors
  155003. .IP \(bu 2
  155004. a15dc4b better formatting and error reporting
  155005. .IP \(bu 2
  155006. 51fbc2a better logging on instance create failure
  155007. .IP \(bu 2
  155008. 1f7dd52 removed hack fixes from gce
  155009. .IP \(bu 2
  155010. 31cdc7c WAR ROOM SKIP GCE TESTS
  155011. .IP \(bu 2
  155012. 7d603be hasattr cannot find parent properties starting with __
  155013. .IP \(bu 2
  155014. 686cab9 Separated assertInstanceDestroy and _destry_instance
  155015. .IP \(bu 2
  155016. 158a38c Revert "Removed subclass from cloud name"
  155017. .IP \(bu 2
  155018. b7cf43d Removed subclass from cloud name
  155019. .IP \(bu 2
  155020. 8c5eb18 fixed pylint error on format string
  155021. .IP \(bu 2
  155022. 59e20bc Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155023. .UNINDENT
  155024. .UNINDENT
  155025. .IP \(bu 2
  155026. \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
  155027. @ \fI2019\-08\-13 21:44:41 UTC\fP
  155028. .INDENT 2.0
  155029. .IP \(bu 2
  155030. a05018e Merge pull request \fI\%#54191\fP from garethgreenaway/test_program_test_mininion
  155031. .IP \(bu 2
  155032. 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.
  155033. .UNINDENT
  155034. .IP \(bu 2
  155035. \fBPR\fP \fI\%#54202\fP: (\fI\%waynew\fP) Only run one filter test
  155036. @ \fI2019\-08\-13 21:33:32 UTC\fP
  155037. .INDENT 2.0
  155038. .IP \(bu 2
  155039. e5e9299 Merge pull request \fI\%#54202\fP from waynew/shorter\-jinja\-ssh\-tests
  155040. .IP \(bu 2
  155041. c333ac8 Only run one filter test
  155042. .INDENT 2.0
  155043. .IP \(bu 2
  155044. 5912f24 Switched to Azurearm over msazure
  155045. .UNINDENT
  155046. .UNINDENT
  155047. .IP \(bu 2
  155048. \fBPR\fP \fI\%#54172\fP: (\fI\%Ch3LL\fP) Migrate from azure to azurearm tests
  155049. @ \fI2019\-08\-13 20:07:34 UTC\fP
  155050. .INDENT 2.0
  155051. .IP \(bu 2
  155052. a13cb3e Merge pull request \fI\%#54172\fP from Ch3LL/azurearm_tests
  155053. .IP \(bu 2
  155054. 465523f Migrate from azure to azurearm tests
  155055. .UNINDENT
  155056. .IP \(bu 2
  155057. \fBISSUE\fP \fI\%#50535\fP: (\fI\%wyardley\fP) salt errors with current azure\-storage because of no version set (refs: \fI\%#50567\fP)
  155058. .IP \(bu 2
  155059. \fBPR\fP \fI\%#54173\fP: (\fI\%Ch3LL\fP) Cherry Pick \fI\%#50567\fP and \fI\%#53238\fP into 2019.2.1
  155060. @ \fI2019\-08\-13 20:07:09 UTC\fP
  155061. .INDENT 2.0
  155062. .IP \(bu 2
  155063. \fBPR\fP \fI\%#53238\fP: (\fI\%nicholasmhughes\fP) Azure: Fixed ability to pass SSH key to Linux VMs (refs: \fI\%#54173\fP)
  155064. .IP \(bu 2
  155065. \fBPR\fP \fI\%#50567\fP: (\fI\%rombert\fP) azurefs: gracefully handle AttributeError (refs: \fI\%#54173\fP)
  155066. .IP \(bu 2
  155067. 39d0c59 Merge pull request \fI\%#54173\fP from Ch3LL/azure_fixes
  155068. .IP \(bu 2
  155069. 9052eaf reverting log string handling
  155070. .IP \(bu 2
  155071. a1a61ee fixed ability to pass ssh key to Linux VMs
  155072. .IP \(bu 2
  155073. 4a141a1 azurefs: gracefully handle AttributeError
  155074. .INDENT 2.0
  155075. .IP \(bu 2
  155076. 6fa28de fixed underscore
  155077. .INDENT 2.0
  155078. .IP \(bu 2
  155079. c35379a Moved finding installer into class
  155080. .UNINDENT
  155081. .IP \(bu 2
  155082. 95484f8 Moved finding installer into class
  155083. .IP \(bu 2
  155084. a86ae34 moved installer finder to SetUp method
  155085. .IP \(bu 2
  155086. 933964a removed default user/pass from profitbricks test file
  155087. .IP \(bu 2
  155088. 2a2437d fixed dictionary access
  155089. .IP \(bu 2
  155090. b9ee411 Fixed broken tests
  155091. .IP \(bu 2
  155092. 80efd26 fixed misspelled provider information
  155093. .IP \(bu 2
  155094. 511779b removed unused imports
  155095. .IP \(bu 2
  155096. 1cd1c13 setUp all cloud tests the same way
  155097. .IP \(bu 2
  155098. d322408 Got rid of unnecessary delay
  155099. .IP \(bu 2
  155100. 98ba18c fixed pylint error
  155101. .IP \(bu 2
  155102. c34c17e Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155103. .UNINDENT
  155104. .UNINDENT
  155105. .IP \(bu 2
  155106. \fBPR\fP \fI\%#54178\fP: (\fI\%dwoz\fP) Fix flaky set_computer_name in mac_system module
  155107. @ \fI2019\-08\-12 18:26:40 UTC\fP
  155108. .INDENT 2.0
  155109. .IP \(bu 2
  155110. 19f4d5e Merge pull request \fI\%#54178\fP from dwoz/mac_computer_name
  155111. .IP \(bu 2
  155112. e51100e Fix skip on non macos platforms
  155113. .IP \(bu 2
  155114. a3a9d92 Fix linter
  155115. .IP \(bu 2
  155116. c499d44 Revert unwanted flaky from non computer name tests
  155117. .IP \(bu 2
  155118. 941fcc8 Fix flaky set_computer_name in mac_system module
  155119. .INDENT 2.0
  155120. .INDENT 3.5
  155121. .INDENT 0.0
  155122. .IP \(bu 2
  155123. 90e8350 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155124. .UNINDENT
  155125. .UNINDENT
  155126. .UNINDENT
  155127. .UNINDENT
  155128. .IP \(bu 2
  155129. \fBPR\fP \fI\%#54180\fP: (\fI\%dwoz\fP) Point test\-kitchen to my keepalive_maxcount branch
  155130. @ \fI2019\-08\-12 18:18:26 UTC\fP
  155131. .INDENT 2.0
  155132. .IP \(bu 2
  155133. 6fe6799 Merge pull request \fI\%#54180\fP from dwoz/keepalive_maxcount
  155134. .IP \(bu 2
  155135. dc9ee21 Add reminder about kitchen version
  155136. .IP \(bu 2
  155137. 19a1f1b Point test\-kitchen to my keepalive_maxcount branch
  155138. .INDENT 2.0
  155139. .IP \(bu 2
  155140. 60f8351 Fixed failing Ec2 Tests
  155141. .IP \(bu 2
  155142. e2f085c removed py3\-only function call
  155143. .IP \(bu 2
  155144. 4406c57 fixed lint errors, more descriptive fails
  155145. .IP \(bu 2
  155146. 6840d5f assert instances exist in unified way
  155147. .IP \(bu 2
  155148. 03da233 skip EOL joyent tests, secure delete instances
  155149. .IP \(bu 2
  155150. 3123bb1 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155151. .UNINDENT
  155152. .UNINDENT
  155153. .IP \(bu 2
  155154. \fBISSUE\fP \fI\%#53306\fP: (\fI\%doesitblend\fP) Fully Qualify CMD on Windows Minions (refs: \fI\%#53311\fP, \fI\%#54033\fP)
  155155. .IP \(bu 2
  155156. \fBPR\fP \fI\%#54033\fP: (\fI\%twangboy\fP) Backport \fI\%#53311\fP to 2019.2.1
  155157. @ \fI2019\-08\-09 16:46:36 UTC\fP
  155158. .INDENT 2.0
  155159. .IP \(bu 2
  155160. \fBPR\fP \fI\%#53311\fP: (\fI\%doesitblend\fP) Add fully qualified cmd call (refs: \fI\%#54033\fP)
  155161. .IP \(bu 2
  155162. 9f5302d Merge pull request \fI\%#54033\fP from twangboy/fix_win_service_2019.2.1
  155163. .IP \(bu 2
  155164. 2850fab Merge branch \(aq2019.2.1\(aq into fix_win_service_2019.2.1
  155165. .IP \(bu 2
  155166. 0e2a2b8 Merge branch \(aq2019.2.1\(aq into fix_win_service_2019.2.1
  155167. .IP \(bu 2
  155168. 16c704e Backport \fI\%#53311\fP to 2019.2.1
  155169. .UNINDENT
  155170. .IP \(bu 2
  155171. \fBPR\fP \fI\%#53900\fP: (\fI\%twangboy\fP) Fix inconsistent full names in LGPO
  155172. @ \fI2019\-08\-09 09:15:41 UTC\fP
  155173. .INDENT 2.0
  155174. .IP \(bu 2
  155175. c0e49d9 Merge pull request \fI\%#53900\fP from twangboy/fix_lgpo
  155176. .IP \(bu 2
  155177. e05abdf Merge branch \(aq2019.2.1\(aq into fix_lgpo
  155178. .IP \(bu 2
  155179. e4e71cd Remove duplicate test
  155180. .IP \(bu 2
  155181. 68c632b Add some tests
  155182. .IP \(bu 2
  155183. 3c34075 Fall back to slower method if new method not available
  155184. .IP \(bu 2
  155185. 0108bcd Avoid using the lowercase method in XPath
  155186. .IP \(bu 2
  155187. fcc0405 Fix telemetry issue, add some timining logs
  155188. .UNINDENT
  155189. .IP \(bu 2
  155190. \fBPR\fP \fI\%#52818\fP: (\fI\%twangboy\fP) Add watchdog as a bundled dependency on Windows
  155191. @ \fI2019\-08\-09 04:26:54 UTC\fP
  155192. .INDENT 2.0
  155193. .IP \(bu 2
  155194. 9eb2938 Merge pull request \fI\%#52818\fP from twangboy/add_watchdog
  155195. .IP \(bu 2
  155196. 2658634 pre\-commit
  155197. .IP \(bu 2
  155198. 35691f2 Add watchdog to Linux and OSX .in files
  155199. .IP \(bu 2
  155200. 5ef5969 Rremove opensuse 42 static files
  155201. .IP \(bu 2
  155202. ec285d0 Remove watchdog from the rest of the .in files
  155203. .IP \(bu 2
  155204. 86e64ae Remove unused import, remove Windows reference
  155205. .IP \(bu 2
  155206. b934d53 Remove watchdog from windows.in
  155207. .IP \(bu 2
  155208. cfaee96 Fix and unify watchdog beacon tests for all OS\(aqs
  155209. .IP \(bu 2
  155210. cc73204 Put Windows tests in their own class
  155211. .IP \(bu 2
  155212. 6fbf1a3 Remove unused import... lint
  155213. .IP \(bu 2
  155214. 832a1db Fix windowsisms
  155215. .IP \(bu 2
  155216. 4f47d50 Update static requirements
  155217. .IP \(bu 2
  155218. 762fe3b Remove some fluff
  155219. .IP \(bu 2
  155220. 946076c Add watchdog for tests
  155221. .IP \(bu 2
  155222. 02248dc Fix modified test to account for OS variances
  155223. .IP \(bu 2
  155224. 15ee479 Compile static requirements
  155225. .IP \(bu 2
  155226. 78a5723 Add watchdog to Linux and OSX .in files
  155227. .IP \(bu 2
  155228. 9a0f08a Update static requirements
  155229. .IP \(bu 2
  155230. 5cad13b Rremove opensuse 42 static files
  155231. .IP \(bu 2
  155232. 1f05fce Remove watchdog from the rest of the .in files
  155233. .IP \(bu 2
  155234. 121595a Remove unused import, remove Windows reference
  155235. .IP \(bu 2
  155236. c410a4b Remove watchdog from windows.in
  155237. .IP \(bu 2
  155238. 05a0845 Fix and unify watchdog beacon tests for all OS\(aqs
  155239. .IP \(bu 2
  155240. 200e230 Put Windows tests in their own class
  155241. .IP \(bu 2
  155242. 6cc8d96 Remove unused import... lint
  155243. .IP \(bu 2
  155244. a4abb72 Fix windowsisms
  155245. .IP \(bu 2
  155246. 005bed9 Update static requirements
  155247. .IP \(bu 2
  155248. c1bc627 Remove some fluff
  155249. .IP \(bu 2
  155250. 92c8d47 Add watchdog for tests
  155251. .IP \(bu 2
  155252. 9544624 Add watchdog as a bundled dependency on Windows
  155253. .UNINDENT
  155254. .IP \(bu 2
  155255. \fBPR\fP \fI\%#54143\fP: (\fI\%Akm0d\fP) Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  155256. @ \fI2019\-08\-09 01:05:26 UTC\fP
  155257. .INDENT 2.0
  155258. .IP \(bu 2
  155259. \fBPR\fP \fI\%#53734\fP: (\fI\%Akm0d\fP) Don\(aqt call potentially missing shade library (refs: \fI\%#54143\fP)
  155260. .IP \(bu 2
  155261. 5bef520 Merge pull request \fI\%#54143\fP from Akm0d/openstack_fix
  155262. .IP \(bu 2
  155263. 3f58885 Merge branch \(aq2019.2.1\(aq into openstack_fix
  155264. .IP \(bu 2
  155265. 71f5f38 Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  155266. .INDENT 2.0
  155267. .INDENT 3.5
  155268. .INDENT 0.0
  155269. .IP \(bu 2
  155270. 29ee7ce removed print statements, optimized query
  155271. .IP \(bu 2
  155272. 14b7539 added back print statements for easy debug
  155273. .IP \(bu 2
  155274. 823b3b2 Removed print statements and broken re
  155275. .IP \(bu 2
  155276. 9696ed9 experiment with sublcass names
  155277. .IP \(bu 2
  155278. 2fa6157 more verbose instance names based on test
  155279. .IP \(bu 2
  155280. 2acb2df undercased non\-const variable and added print statements
  155281. .IP \(bu 2
  155282. c5e875d Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155283. .UNINDENT
  155284. .UNINDENT
  155285. .UNINDENT
  155286. .UNINDENT
  155287. .IP \(bu 2
  155288. \fBPR\fP \fI\%#54001\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Porting metaproxy changes in \fI\%#50183\fP to 2019.2.1
  155289. @ \fI2019\-08\-08 04:24:31 UTC\fP
  155290. .INDENT 2.0
  155291. .IP \(bu 2
  155292. \fBPR\fP \fI\%#50183\fP: (\fI\%cro\fP) Allow proxy minion types to be dynamically loaded (refs: \fI\%#54001\fP)
  155293. .IP \(bu 2
  155294. 584e3f2 Merge pull request \fI\%#54001\fP from garethgreenaway/add_metaproxy_2019_2_1
  155295. .IP \(bu 2
  155296. 8353467 Merge branch \(aqadd_metaproxy_2019_2_1\(aq of github.com:garethgreenaway/salt into add_metaproxy_2019_2_1
  155297. .INDENT 2.0
  155298. .IP \(bu 2
  155299. 1892d86 Merge branch \(aq2019.2.1\(aq into add_metaproxy_2019_2_1
  155300. .UNINDENT
  155301. .IP \(bu 2
  155302. ab72e1b Adding unit.test_proxy_minion to ignore list
  155303. .IP \(bu 2
  155304. 09f6fed Removing match tests, functionality does not exist in 2019.2.1
  155305. .IP \(bu 2
  155306. 4af95e4 Adding tests to ensure _metaproxy_call to called when ProxyMinion objects are created.
  155307. .IP \(bu 2
  155308. d162a88 Adding salt/metaproxy/proxy.py and tests/unit/modules/test_match.py
  155309. .IP \(bu 2
  155310. 51726b1 POrting metaproxy changes in \fI\%#50183\fP to 2019.2.1
  155311. .UNINDENT
  155312. .IP \(bu 2
  155313. \fBISSUE\fP \fI\%#51008\fP: (\fI\%cdalvaro\fP) cwd option not working with cmd.run and runas (refs: \fI\%#52632\fP, \fI\%#54079\fP)
  155314. .IP \(bu 2
  155315. \fBPR\fP \fI\%#54136\fP: (\fI\%ScoreUnder\fP) Fix cmd.run on MacOS (rebased)
  155316. @ \fI2019\-08\-08 04:20:31 UTC\fP
  155317. .INDENT 2.0
  155318. .IP \(bu 2
  155319. \fBPR\fP \fI\%#54079\fP: (\fI\%ScoreUnder\fP) Fix cmd.run on MacOS \-\- wrong environment variables (refs: \fI\%#54136\fP)
  155320. .IP \(bu 2
  155321. \fBPR\fP \fI\%#52632\fP: (\fI\%cdalvaro\fP) Prevent shell injection as root with cmd.run on macOS (refs: \fI\%#54079\fP)
  155322. .IP \(bu 2
  155323. \fBPR\fP \fI\%#47212\fP: (\fI\%weswhet\fP) fix macOS running as user. (refs: \fI\%#54079\fP)
  155324. .IP \(bu 2
  155325. bf863d0 Merge pull request \fI\%#54136\fP from ScoreUnder/2019.2.1\-patch\-macos\-cmd.run
  155326. .IP \(bu 2
  155327. 1182eb9 Add integration test justifying strange use of braces after cd in cmd.run
  155328. .IP \(bu 2
  155329. 733d2e7 Fixes to ITs
  155330. .IP \(bu 2
  155331. da38993 Add integration tests for cwd/runas changes on MacOS
  155332. .IP \(bu 2
  155333. ab8b39c Fix environment in cmd.run runas on MacOS
  155334. .INDENT 2.0
  155335. .INDENT 3.5
  155336. .INDENT 0.0
  155337. .IP \(bu 2
  155338. c9cb18f Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  155339. .IP \(bu 2
  155340. 5ef8414 Added more verbose logging to cloud tests
  155341. .IP \(bu 2
  155342. 2f3942f better logging and fail messages
  155343. .IP \(bu 2
  155344. 9454f4c Fixed pylint errors and temporary print statements
  155345. .IP \(bu 2
  155346. fd13ce1 Further refactored cloud test code
  155347. .IP \(bu 2
  155348. b03cc48 Assume the instance exists and needs to be deleted
  155349. .IP \(bu 2
  155350. 0991ff5 fixed pylint errors and failed tests
  155351. .IP \(bu 2
  155352. 55e502a Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  155353. .UNINDENT
  155354. .UNINDENT
  155355. .UNINDENT
  155356. .UNINDENT
  155357. .IP \(bu 2
  155358. \fBPR\fP \fI\%#53974\fP: (\fI\%Ch3LL\fP) [2019.2.1] Add pygit2 requirement
  155359. @ \fI2019\-08\-06 17:32:05 UTC\fP
  155360. .INDENT 2.0
  155361. .IP \(bu 2
  155362. e268b95 Merge pull request \fI\%#53974\fP from Ch3LL/add_pygit2
  155363. .IP \(bu 2
  155364. 11864a0 Merge branch \(aq2019.2.1\(aq into add_pygit2
  155365. .IP \(bu 2
  155366. d1b1452 Merge branch \(aq2019.2.1\(aq into add_pygit2
  155367. .IP \(bu 2
  155368. a5698cc Merge branch \(aq2019.2.1\(aq into add_pygit2
  155369. .IP \(bu 2
  155370. 7dd97a6 Merge branch \(aq2019.2.1\(aq into add_pygit2
  155371. .IP \(bu 2
  155372. 358974a Skip Pygit2 tests on windows
  155373. .IP \(bu 2
  155374. bc64961 Use accurate \fI\%file:///\fP URI on windows for gitfs tests
  155375. .IP \(bu 2
  155376. 894f958 Fix GitFS support for pygit2 >= 0.28.0
  155377. .IP \(bu 2
  155378. 4580030 [2019.2.1] Add pygit2 requirement
  155379. .INDENT 2.0
  155380. .INDENT 3.5
  155381. .INDENT 0.0
  155382. .IP \(bu 2
  155383. 4009bb5 fixed pylint errors
  155384. .IP \(bu 2
  155385. 459b16d put cloudtest base in separate file so that only one change needs to be made
  155386. .IP \(bu 2
  155387. 8e72335 Merge branch \(aqgce_cloud_test\(aq of github.com:Akm0d/salt into gce_cloud_test
  155388. .INDENT 2.0
  155389. .IP \(bu 2
  155390. 0e2621e Merge branch \(aq2019.2.1\(aq into gce_cloud_test
  155391. .UNINDENT
  155392. .IP \(bu 2
  155393. 9f98b16 finished merge
  155394. .UNINDENT
  155395. .UNINDENT
  155396. .UNINDENT
  155397. .UNINDENT
  155398. .IP \(bu 2
  155399. \fBPR\fP \fI\%#54108\fP: (\fI\%dwoz\fP) More robust azure instance deletion
  155400. @ \fI2019\-08\-03 03:58:20 UTC\fP
  155401. .INDENT 2.0
  155402. .IP \(bu 2
  155403. 46f5e2e Merge pull request \fI\%#54108\fP from dwoz/azure_test
  155404. .IP \(bu 2
  155405. 754b719 Fix linter
  155406. .IP \(bu 2
  155407. 773235d Fix missing time import
  155408. .IP \(bu 2
  155409. 5a8f2ec More robust azure instance deletion
  155410. .UNINDENT
  155411. .IP \(bu 2
  155412. \fBPR\fP \fI\%#54017\fP: (\fI\%dmurphy18\fP) Allow for main thread having terminated pid, before ThreadPoolExecutor threads
  155413. @ \fI2019\-08\-02 18:11:48 UTC\fP
  155414. .INDENT 2.0
  155415. .IP \(bu 2
  155416. 2cb5a0b Merge pull request \fI\%#54017\fP from dmurphy18/fix_deb9_build90_tests
  155417. .IP \(bu 2
  155418. 2866520 Skip process kill tests on Windows
  155419. .IP \(bu 2
  155420. 5577f14 Clean up lint errors
  155421. .IP \(bu 2
  155422. 4ca709e Merge branch \(aq2019.2.1\(aq into fix_deb9_build90_tests
  155423. .IP \(bu 2
  155424. 264c767 Merge pull request \fI\%#1\fP from dwoz/fix_deb9_build90_tests
  155425. .INDENT 2.0
  155426. .IP \(bu 2
  155427. 9bb9466 Add unit tests for weird pid does not exist cases
  155428. .IP \(bu 2
  155429. 64d9752 Add warning messages to help determine why pids do not exist
  155430. .UNINDENT
  155431. .IP \(bu 2
  155432. 406d382 Adjusted for review comments
  155433. .IP \(bu 2
  155434. 2d20fbe Adjusted try/except statements on process checking
  155435. .IP \(bu 2
  155436. e189177 Removed typos
  155437. .IP \(bu 2
  155438. 2e3ca43 Updated for review comments
  155439. .IP \(bu 2
  155440. 68c29af Allow for main thread having terminated pid, before ThreadPoolExecutor threads
  155441. .INDENT 2.0
  155442. .INDENT 3.5
  155443. .INDENT 0.0
  155444. .IP \(bu 2
  155445. e3158c8 refactored all cloud tests
  155446. .IP \(bu 2
  155447. 194e0c7 Refactored GCE cloud test
  155448. .UNINDENT
  155449. .UNINDENT
  155450. .UNINDENT
  155451. .UNINDENT
  155452. .IP \(bu 2
  155453. \fBPR\fP \fI\%#54080\fP: (\fI\%dmurphy18\fP) Disabling random website tests till allow for quota usage
  155454. @ \fI2019\-07\-31 21:16:54 UTC\fP
  155455. .INDENT 2.0
  155456. .IP \(bu 2
  155457. 4e2efcd Merge pull request \fI\%#54080\fP from dmurphy18/u1804_py3_random_skip
  155458. .IP \(bu 2
  155459. 0660e6e Disabling random website tests till allow for quota usage
  155460. .UNINDENT
  155461. .IP \(bu 2
  155462. \fBPR\fP \fI\%#54063\fP: (\fI\%twangboy\fP) Make the skip apply to any system missing crypt
  155463. @ \fI2019\-07\-30 19:22:07 UTC\fP
  155464. .INDENT 2.0
  155465. .IP \(bu 2
  155466. dbbbcc9 Merge pull request \fI\%#54063\fP from twangboy/fix_test_pycrypto_2019.2.1
  155467. .IP \(bu 2
  155468. 6fcf035 Make the skip apply to any system missing crypt
  155469. .UNINDENT
  155470. .IP \(bu 2
  155471. \fBPR\fP \fI\%#54050\fP: (\fI\%cmcmarrow\fP) fixs integration terminate error
  155472. @ \fI2019\-07\-30 13:38:55 UTC\fP
  155473. .INDENT 2.0
  155474. .IP \(bu 2
  155475. 4df6271 Merge pull request \fI\%#54050\fP from cmcmarrow/integration_terminate_fix
  155476. .IP \(bu 2
  155477. ebb07f4 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155478. .UNINDENT
  155479. .IP \(bu 2
  155480. \fBPR\fP \fI\%#54057\fP: (\fI\%dmurphy18\fP) Added support for is_fedora and skip Minion test test_issue_7754 on Fedora
  155481. @ \fI2019\-07\-29 22:41:25 UTC\fP
  155482. .INDENT 2.0
  155483. .IP \(bu 2
  155484. 9d1bd63 Merge pull request \fI\%#54057\fP from dmurphy18/fix_fedora30_test
  155485. .IP \(bu 2
  155486. 30f3bda Added support for is_fedora and skip Minion test test_issue_7754
  155487. .IP \(bu 2
  155488. b3293a9 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155489. .UNINDENT
  155490. .IP \(bu 2
  155491. \fBISSUE\fP \fI\%#53948\fP: (\fI\%KChandrashekhar\fP) integration.shell.test_call.CallTest.test_issue_2731_masterless (refs: \fI\%#54040\fP)
  155492. .IP \(bu 2
  155493. \fBISSUE\fP \fI\%#2731\fP: (\fI\%cwood\fP) Masterless Broken in 0.10.5 (refs: \fI\%#54040\fP)
  155494. .IP \(bu 2
  155495. \fBPR\fP \fI\%#54040\fP: (\fI\%waynew\fP) Remove dead test
  155496. @ \fI2019\-07\-29 17:23:45 UTC\fP
  155497. .INDENT 2.0
  155498. .IP \(bu 2
  155499. 5d3bcd7 Merge pull request \fI\%#54040\fP from waynew/remove\-dead\-test
  155500. .IP \(bu 2
  155501. e9a5a57 Remove dead test
  155502. .INDENT 2.0
  155503. .IP \(bu 2
  155504. ba3e867 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155505. .UNINDENT
  155506. .UNINDENT
  155507. .IP \(bu 2
  155508. \fBPR\fP \fI\%#54051\fP: (\fI\%twangboy\fP) Skip get time test
  155509. @ \fI2019\-07\-29 16:54:50 UTC\fP
  155510. .INDENT 2.0
  155511. .IP \(bu 2
  155512. 70ffcec Merge pull request \fI\%#54051\fP from twangboy/fix_test_system
  155513. .IP \(bu 2
  155514. ceaba05 Skip get time test
  155515. .UNINDENT
  155516. .IP \(bu 2
  155517. \fBPR\fP \fI\%#54038\fP: (\fI\%Ch3LL\fP) Pyton3 digitial ocean test fix: to_str on key
  155518. @ \fI2019\-07\-29 16:54:19 UTC\fP
  155519. .INDENT 2.0
  155520. .IP \(bu 2
  155521. 4aed833 Merge pull request \fI\%#54038\fP from Ch3LL/do_py3_fix
  155522. .IP \(bu 2
  155523. f7346db Pyton3 digitial ocean test fix: to_str on key
  155524. .INDENT 2.0
  155525. .INDENT 3.5
  155526. .INDENT 0.0
  155527. .IP \(bu 2
  155528. 05cd93f fixs integration terminate error
  155529. .IP \(bu 2
  155530. 69c3106 fixs integration terminate error
  155531. .UNINDENT
  155532. .UNINDENT
  155533. .UNINDENT
  155534. .UNINDENT
  155535. .IP \(bu 2
  155536. \fBPR\fP \fI\%#53735\fP: (\fI\%twangboy\fP) Fix Windows tests in test_system
  155537. @ \fI2019\-07\-26 22:38:28 UTC\fP
  155538. .INDENT 2.0
  155539. .IP \(bu 2
  155540. 3cedacd Merge pull request \fI\%#53735\fP from twangboy/fix_test_system
  155541. .IP \(bu 2
  155542. a9e9c97 Add timeouts and account for those in assert
  155543. .IP \(bu 2
  155544. d3a160e Merge branch \(aq2019.2.1\(aq into fix_test_system
  155545. .IP \(bu 2
  155546. f95f0e7 Merge branch \(aq2019.2.1\(aq into fix_test_system
  155547. .IP \(bu 2
  155548. 87e02b8 Use setUpClass
  155549. .IP \(bu 2
  155550. 6a685bd Fix some tests in the Windows Class
  155551. .UNINDENT
  155552. .IP \(bu 2
  155553. \fBPR\fP \fI\%#53953\fP: (\fI\%Ch3LL\fP) Send SIGTERM to webserver in teardown of gitfs tests
  155554. @ \fI2019\-07\-25 21:12:42 UTC\fP
  155555. .INDENT 2.0
  155556. .IP \(bu 2
  155557. cc1cda1 Merge pull request \fI\%#53953\fP from Ch3LL/improve_git_test
  155558. .IP \(bu 2
  155559. 347ea1e Use Sigkill and add time.sleep befor check
  155560. .IP \(bu 2
  155561. 637bf95 Merge branch \(aq2019.2.1\(aq into improve_git_test
  155562. .IP \(bu 2
  155563. c0be147 Send SIGTERM webserver during teardown of gitfs tests
  155564. .IP \(bu 2
  155565. b776c0c Check if gitfs server fails to setup for tests
  155566. .UNINDENT
  155567. .IP \(bu 2
  155568. \fBPR\fP \fI\%#53999\fP: (\fI\%Ch3LL\fP) Generate new key each time for digital ocean key test
  155569. @ \fI2019\-07\-25 21:07:45 UTC\fP
  155570. .INDENT 2.0
  155571. .IP \(bu 2
  155572. 2324167 Merge pull request \fI\%#53999\fP from Ch3LL/fix_digital_ocean
  155573. .IP \(bu 2
  155574. b0b6e3b Generate new key each time for digital ocean key test
  155575. .UNINDENT
  155576. .IP \(bu 2
  155577. \fBPR\fP \fI\%#53970\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Adding a WAR ROOM Skip for test_directory_clean_require_with_name
  155578. @ \fI2019\-07\-25 21:03:49 UTC\fP
  155579. .INDENT 2.0
  155580. .IP \(bu 2
  155581. 32fec66 Merge pull request \fI\%#53970\fP from garethgreenaway/osx_skip_test_directory_clean_require_with_name
  155582. .IP \(bu 2
  155583. 362b84a Adding a WAR ROOM Skip for test_directory_clean_require_with_name
  155584. .UNINDENT
  155585. .IP \(bu 2
  155586. \fBPR\fP \fI\%#54003\fP: (\fI\%dwoz\fP) War room skip for tcp build
  155587. @ \fI2019\-07\-24 22:52:18 UTC\fP
  155588. .INDENT 2.0
  155589. .IP \(bu 2
  155590. 213dfff Merge pull request \fI\%#54003\fP from dwoz/skip_test
  155591. .IP \(bu 2
  155592. 6cdb8fa War room skip for tcp build
  155593. .UNINDENT
  155594. .IP \(bu 2
  155595. \fBPR\fP \fI\%#53897\fP: (\fI\%cmcmarrow\fP) patches salt grains locale_info decode error
  155596. @ \fI2019\-07\-23 13:19:00 UTC\fP
  155597. .INDENT 2.0
  155598. .IP \(bu 2
  155599. 048c097 Merge pull request \fI\%#53897\fP from cmcmarrow/timezone_fix
  155600. .IP \(bu 2
  155601. d9e402d Merge branch \(aq2019.2.1\(aq into timezone_fix
  155602. .UNINDENT
  155603. .IP \(bu 2
  155604. \fBPR\fP \fI\%#53920\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update CI pipelines. Remove old jenkins cruft.
  155605. @ \fI2019\-07\-20 12:33:01 UTC\fP
  155606. .INDENT 2.0
  155607. .IP \(bu 2
  155608. 9a846b4 Merge pull request \fI\%#53920\fP from s0undt3ch/hotfix/ci\-pipelines\-2019.2.1
  155609. .IP \(bu 2
  155610. b09963b Update CI pipelines. Remove old jenkins cruft.
  155611. .UNINDENT
  155612. .IP \(bu 2
  155613. \fBPR\fP \fI\%#53728\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Disabling test_get_set_computer_name on OS X and Py3
  155614. @ \fI2019\-07\-19 17:18:33 UTC\fP
  155615. .INDENT 2.0
  155616. .IP \(bu 2
  155617. 15accef Merge pull request \fI\%#53728\fP from garethgreenaway/2019_2_1_mac_system_disable_test_get_set_computer_name
  155618. .IP \(bu 2
  155619. a6d853c Merge branch \(aq2019.2.1\(aq into 2019_2_1_mac_system_disable_test_get_set_computer_name
  155620. .IP \(bu 2
  155621. 5d537ed Missing six import. Updating skip message.
  155622. .IP \(bu 2
  155623. ac6dccd Disabling test_get_set_computer_name on OS X and Py3.
  155624. .UNINDENT
  155625. .IP \(bu 2
  155626. \fBPR\fP \fI\%#53913\fP: (\fI\%garethgreenaway\fP) [2019.2.1] skip test_issue_2594_non_invalidated_cache on MacOS
  155627. @ \fI2019\-07\-19 17:17:36 UTC\fP
  155628. .INDENT 2.0
  155629. .IP \(bu 2
  155630. a54ec89 Merge pull request \fI\%#53913\fP from garethgreenaway/disable_test_issue_2594_non_invalidated_cache_macos
  155631. .IP \(bu 2
  155632. c65c5d5 Skip the test test_issue_2594_non_invalidated_cache on MacOS where it is flakey.
  155633. .UNINDENT
  155634. .IP \(bu 2
  155635. \fBPR\fP \fI\%#53902\fP: (\fI\%twangboy\fP) Skip tests that modify date or time
  155636. @ \fI2019\-07\-18 17:53:31 UTC\fP
  155637. .INDENT 2.0
  155638. .IP \(bu 2
  155639. b091eb7 Merge pull request \fI\%#53902\fP from twangboy/skip_dt
  155640. .IP \(bu 2
  155641. 76cf936 Skip tests that modify date or time
  155642. .UNINDENT
  155643. .IP \(bu 2
  155644. \fBPR\fP \fI\%#53901\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Don\(aqt fail when combining coverage files
  155645. @ \fI2019\-07\-18 17:46:32 UTC\fP
  155646. .INDENT 2.0
  155647. .IP \(bu 2
  155648. 22b7b1a Merge pull request \fI\%#53901\fP from s0undt3ch/hotfix/wrap\-coverage\-combine
  155649. .IP \(bu 2
  155650. b459a48 Don\(aqt fail when combining coverage files
  155651. .UNINDENT
  155652. .IP \(bu 2
  155653. \fBPR\fP \fI\%#53542\fP: (\fI\%dwoz\fP) Fix leak of SaltMessageClient instances when using tcp transport
  155654. @ \fI2019\-07\-18 17:44:44 UTC\fP
  155655. .INDENT 2.0
  155656. .IP \(bu 2
  155657. 84e798a Merge pull request \fI\%#53542\fP from dwoz/tcp_leak
  155658. .IP \(bu 2
  155659. 3daeb4f Update TCP pipelines
  155660. .IP \(bu 2
  155661. 52f9556 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155662. .IP \(bu 2
  155663. f5313fd Fix tcp message client test
  155664. .IP \(bu 2
  155665. 3419bf5 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155666. .IP \(bu 2
  155667. 3125cd3 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155668. .IP \(bu 2
  155669. 9a33582 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155670. .IP \(bu 2
  155671. 7eb5d41 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155672. .IP \(bu 2
  155673. 481372b Fix torando loop thread issue
  155674. .IP \(bu 2
  155675. aff15d4 Fix linter wart
  155676. .IP \(bu 2
  155677. 9606db7 Comment the tcp message client test better
  155678. .IP \(bu 2
  155679. dcf576f Add unit test for tcp message client close method
  155680. .IP \(bu 2
  155681. 4420556 Download artifacts for tcp jobs
  155682. .IP \(bu 2
  155683. e6a09dd Merge remote\-tracking branch \(aqorigin/tcp_leak\(aq into tcp_leak
  155684. .INDENT 2.0
  155685. .IP \(bu 2
  155686. f484f3f Merge branch \(aq2019.2.1\(aq into tcp_leak
  155687. .UNINDENT
  155688. .IP \(bu 2
  155689. 4a37234 Add tcp suffix to github notifications
  155690. .IP \(bu 2
  155691. 4a2848b Add transport PR tests
  155692. .IP \(bu 2
  155693. 9a4b407 Fix leak of SaltMessageClient instances when using tcp transport
  155694. .INDENT 2.0
  155695. .INDENT 3.5
  155696. .INDENT 0.0
  155697. .IP \(bu 2
  155698. 592f3fe undo test
  155699. .IP \(bu 2
  155700. bc550ad wip pytest test david
  155701. .IP \(bu 2
  155702. 75571e4 fixs timezone decode error
  155703. .IP \(bu 2
  155704. d041660 fixes timezone decode error
  155705. .IP \(bu 2
  155706. 1ddd1a9 fixs timezone decode error
  155707. .IP \(bu 2
  155708. e75dafa patches timezone grain
  155709. .IP \(bu 2
  155710. eaca473 patches salt grains locale_info decode error
  155711. .UNINDENT
  155712. .UNINDENT
  155713. .UNINDENT
  155714. .UNINDENT
  155715. .IP \(bu 2
  155716. \fBPR\fP \fI\%#53873\fP: (\fI\%bryceml\fP) increase sleep time between kitchen create failures to account for ap...
  155717. @ \fI2019\-07\-16 23:46:09 UTC\fP
  155718. .INDENT 2.0
  155719. .IP \(bu 2
  155720. 61e9efd Merge pull request \fI\%#53873\fP from bryceml/2019.2.1\-increase\-sleep
  155721. .IP \(bu 2
  155722. aae0bf6 increase sleep time between kitchen create failures to account for api limits
  155723. .UNINDENT
  155724. .IP \(bu 2
  155725. \fBPR\fP \fI\%#53750\fP: (\fI\%twangboy\fP) Fix memory error when the test suite cleans up (2019.2.1)
  155726. @ \fI2019\-07\-16 23:00:07 UTC\fP
  155727. .INDENT 2.0
  155728. .IP \(bu 2
  155729. 317d9af Merge pull request \fI\%#53750\fP from twangboy/fix_helpers
  155730. .IP \(bu 2
  155731. fa0e9c3 Merge branch \(aq2019.2.1\(aq into fix_helpers
  155732. .UNINDENT
  155733. .IP \(bu 2
  155734. \fBPR\fP \fI\%#53851\fP: (\fI\%dwoz\fP) Master stats revert
  155735. @ \fI2019\-07\-16 16:05:38 UTC\fP
  155736. .INDENT 2.0
  155737. .IP \(bu 2
  155738. 6c2b3a5 Merge pull request \fI\%#53851\fP from dwoz/master_stats_revert
  155739. .IP \(bu 2
  155740. 0bc72e4 Revert "Merge pull request \fI\%#53822\fP from dwoz/master_stats_test"
  155741. .IP \(bu 2
  155742. 4553ba7 Revert "Merge pull request \fI\%#53829\fP from saltstack/fix_stats_2019.2.1"
  155743. .UNINDENT
  155744. .IP \(bu 2
  155745. \fBPR\fP \fI\%#53829\fP: (\fI\%dwoz\fP) Fix stats on windows
  155746. @ \fI2019\-07\-12 01:03:47 UTC\fP
  155747. .INDENT 2.0
  155748. .IP \(bu 2
  155749. 5064027 Merge pull request \fI\%#53829\fP from saltstack/fix_stats_2019.2.1
  155750. .IP \(bu 2
  155751. 9f2d20d Fix stats on windows
  155752. .UNINDENT
  155753. .IP \(bu 2
  155754. \fBPR\fP \fI\%#53826\fP: (\fI\%dmurphy18\fP) WAR ROOM test skip till rewritten to allow for dnf on RHEL 8 and F30
  155755. @ \fI2019\-07\-12 00:39:11 UTC\fP
  155756. .INDENT 2.0
  155757. .IP \(bu 2
  155758. 971eda3 Merge pull request \fI\%#53826\fP from dmurphy18/fedora30_fixes
  155759. .IP \(bu 2
  155760. 34b261d WAR ROOM test skip till rewritten to allow for dnf on RHEL 8 and Fedora 30
  155761. .UNINDENT
  155762. .IP \(bu 2
  155763. \fBPR\fP \fI\%#53822\fP: (\fI\%dwoz\fP) Enable master stats for tests
  155764. @ \fI2019\-07\-11 23:37:55 UTC\fP
  155765. .INDENT 2.0
  155766. .IP \(bu 2
  155767. ba33d76 Merge pull request \fI\%#53822\fP from dwoz/master_stats_test
  155768. .IP \(bu 2
  155769. d2b8315 Enable master stats for tests
  155770. .IP \(bu 2
  155771. 3471422 Fix memory error when the test suite cleans up
  155772. .UNINDENT
  155773. .IP \(bu 2
  155774. \fBPR\fP \fI\%#53591\fP: (\fI\%twangboy\fP) Fix whitelist errors in \fItest_boto_*\fP state tests on Windows
  155775. @ \fI2019\-07\-07 05:45:21 UTC\fP
  155776. .INDENT 2.0
  155777. .IP \(bu 2
  155778. 1756156 Merge pull request \fI\%#53591\fP from twangboy/fix_boto_tests
  155779. .IP \(bu 2
  155780. ba8ba26 Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155781. .UNINDENT
  155782. .IP \(bu 2
  155783. \fBISSUE\fP \fI\%#53532\fP: (\fI\%dafyddj\fP) win_lgpo.py: crash caused by empty presentation text element (refs: \fI\%#53662\fP)
  155784. .IP \(bu 2
  155785. \fBPR\fP \fI\%#53688\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#53662\fP (2019.2.1)
  155786. @ \fI2019\-07\-07 05:44:25 UTC\fP
  155787. .INDENT 2.0
  155788. .IP \(bu 2
  155789. \fBPR\fP \fI\%#53662\fP: (\fI\%lomeroe\fP) Update win_lgpo (refs: \fI\%#53688\fP)
  155790. .IP \(bu 2
  155791. 464464c Merge pull request \fI\%#53688\fP from twangboy/mf_53662
  155792. .IP \(bu 2
  155793. c19dc97 Merge branch \(aq2019.2.1\(aq into mf_53662
  155794. .UNINDENT
  155795. .IP \(bu 2
  155796. \fBISSUE\fP \fI\%#52391\fP: (\fI\%rsmekala\fP) Port Junos\-related bug fixes from develop to 2019.2 (refs: \fI\%#52401\fP)
  155797. .IP \(bu 2
  155798. \fBPR\fP \fI\%#52401\fP: (\fI\%rsmekala\fP) Port Junos\-related bug fixes from develop to 2019.2
  155799. @ \fI2019\-07\-06 21:50:51 UTC\fP
  155800. .INDENT 2.0
  155801. .IP \(bu 2
  155802. \fBPR\fP \fI\%#51164\fP: (\fI\%rsmekala\fP) Updates to salt\-junos modules (refs: \fI\%#52401\fP)
  155803. .IP \(bu 2
  155804. 1a76e00 Merge pull request \fI\%#52401\fP from rsmekala/2019.2.1
  155805. .IP \(bu 2
  155806. 345938d Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155807. .IP \(bu 2
  155808. 326f9f4 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155809. .IP \(bu 2
  155810. c11a004 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155811. .IP \(bu 2
  155812. 33b45d2 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155813. .IP \(bu 2
  155814. af66fac Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155815. .IP \(bu 2
  155816. 211b169 Ported relevant fixes from unit.modules.test_junos from develop to 2019.2
  155817. .IP \(bu 2
  155818. 0c51bc9 Ported relevant fixes from states.junos from develop to 2019.2
  155819. .IP \(bu 2
  155820. a966ad1 Ported relevant fixes from proxy.junos from develop to 2019.2
  155821. .IP \(bu 2
  155822. 263e9f5 Ported relevant fixes from modules.junos from develop to 2019.2
  155823. .INDENT 2.0
  155824. .INDENT 3.5
  155825. .INDENT 0.0
  155826. .IP \(bu 2
  155827. b9033b9 Merge branch \(aq2019.2.1\(aq into mf_53662
  155828. .IP \(bu 2
  155829. 75e740e Merge forward \fI\%#53662\fP
  155830. .INDENT 2.0
  155831. .IP \(bu 2
  155832. 8ace391 Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155833. .UNINDENT
  155834. .UNINDENT
  155835. .UNINDENT
  155836. .UNINDENT
  155837. .UNINDENT
  155838. .IP \(bu 2
  155839. \fBPR\fP \fI\%#53585\fP: (\fI\%twangboy\fP) Fix \fItest_winrepo\fP on Windows
  155840. @ \fI2019\-07\-06 15:15:47 UTC\fP
  155841. .INDENT 2.0
  155842. .IP \(bu 2
  155843. 056f596 Merge pull request \fI\%#53585\fP from twangboy/fix_test_winrepo
  155844. .IP \(bu 2
  155845. c1f8cba Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155846. .UNINDENT
  155847. .IP \(bu 2
  155848. \fBPR\fP \fI\%#53590\fP: (\fI\%twangboy\fP) Fix \fItest status\fP on Windows
  155849. @ \fI2019\-07\-06 15:15:13 UTC\fP
  155850. .INDENT 2.0
  155851. .IP \(bu 2
  155852. db950f2 Merge pull request \fI\%#53590\fP from twangboy/fix_test_status
  155853. .IP \(bu 2
  155854. 67750b7 Merge branch \(aq2019.2.1\(aq into fix_test_status
  155855. .IP \(bu 2
  155856. b667045 Merge branch \(aq2019.2.1\(aq into fix_test_status
  155857. .IP \(bu 2
  155858. 9b4338a Merge branch \(aq2019.2.1\(aq into fix_test_status
  155859. .IP \(bu 2
  155860. 2735b19 Add __grains__
  155861. .IP \(bu 2
  155862. bb12da9 Load grains properly
  155863. .INDENT 2.0
  155864. .INDENT 3.5
  155865. .INDENT 0.0
  155866. .IP \(bu 2
  155867. 91da774 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155868. .UNINDENT
  155869. .UNINDENT
  155870. .UNINDENT
  155871. .UNINDENT
  155872. .IP \(bu 2
  155873. \fBPR\fP \fI\%#53556\fP: (\fI\%twangboy\fP) Fixes an issue with line endings in the jinja renderer
  155874. @ \fI2019\-07\-05 23:06:01 UTC\fP
  155875. .INDENT 2.0
  155876. .IP \(bu 2
  155877. becaf12 Merge pull request \fI\%#53556\fP from twangboy/fix_test_pillar
  155878. .IP \(bu 2
  155879. ac405d1 Merge branch \(aq2019.2.1\(aq into fix_test_pillar
  155880. .UNINDENT
  155881. .IP \(bu 2
  155882. \fBPR\fP \fI\%#53557\fP: (\fI\%twangboy\fP) Fix test_pydsl on Windows
  155883. @ \fI2019\-07\-05 22:36:40 UTC\fP
  155884. .INDENT 2.0
  155885. .IP \(bu 2
  155886. 7a5111b Merge pull request \fI\%#53557\fP from twangboy/fix_test_pydsl
  155887. .IP \(bu 2
  155888. d9df951 Merge branch \(aq2019.2.1\(aq into fix_test_pydsl
  155889. .IP \(bu 2
  155890. 1619c68 Merge branch \(aq2019.2.1\(aq into fix_test_pydsl
  155891. .IP \(bu 2
  155892. 2c3e91d Fix test_pydsl on Windows
  155893. .INDENT 2.0
  155894. .INDENT 3.5
  155895. .INDENT 0.0
  155896. .IP \(bu 2
  155897. 137f4a4 Merge branch \(aq2019.2.1\(aq into fix_test_pillar
  155898. .IP \(bu 2
  155899. 4a96252 Fixes an issue with line endings in the jinja renderer
  155900. .INDENT 2.0
  155901. .INDENT 3.5
  155902. .INDENT 0.0
  155903. .IP \(bu 2
  155904. c8c8bc0 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155905. .IP \(bu 2
  155906. 8373865 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155907. .IP \(bu 2
  155908. a818396 Split out the tests, patch test=True
  155909. .INDENT 2.0
  155910. .INDENT 3.5
  155911. .INDENT 0.0
  155912. .IP \(bu 2
  155913. 62041eb Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155914. .UNINDENT
  155915. .UNINDENT
  155916. .UNINDENT
  155917. .UNINDENT
  155918. .UNINDENT
  155919. .UNINDENT
  155920. .UNINDENT
  155921. .UNINDENT
  155922. .UNINDENT
  155923. .UNINDENT
  155924. .IP \(bu 2
  155925. \fBPR\fP \fI\%#53653\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Log which address failed to resolve
  155926. @ \fI2019\-07\-05 18:29:31 UTC\fP
  155927. .INDENT 2.0
  155928. .IP \(bu 2
  155929. 8f05226 Merge pull request \fI\%#53653\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  155930. .IP \(bu 2
  155931. f44253c Merge branch \(aq2019.2.1\(aq into hotfix/fix\-nox\-bypass\-2019.2.1
  155932. .IP \(bu 2
  155933. 0ead7fe Log which address failed to resolve
  155934. .UNINDENT
  155935. .IP \(bu 2
  155936. \fBPR\fP \fI\%#53725\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Archive the kitchen logs
  155937. @ \fI2019\-07\-05 18:19:50 UTC\fP
  155938. .INDENT 2.0
  155939. .IP \(bu 2
  155940. f750f44 Merge pull request \fI\%#53725\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155941. .IP \(bu 2
  155942. 118fbf7 Improve slack message
  155943. .IP \(bu 2
  155944. 62a2ee8 Archive the kitchen logs
  155945. .UNINDENT
  155946. .IP \(bu 2
  155947. \fBPR\fP \fI\%#53689\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#52593\fP (2019.2.1)
  155948. @ \fI2019\-07\-05 14:58:10 UTC\fP
  155949. .INDENT 2.0
  155950. .IP \(bu 2
  155951. \fBPR\fP \fI\%#52593\fP: (\fI\%twangboy\fP) Update setup.py (refs: \fI\%#53689\fP)
  155952. .IP \(bu 2
  155953. 0c6009f Merge pull request \fI\%#53689\fP from twangboy/fix_setup_2019.2.1
  155954. .IP \(bu 2
  155955. c6f3da5 Merge branch \(aq2019.2.1\(aq into fix_setup_2019.2.1
  155956. .UNINDENT
  155957. .IP \(bu 2
  155958. \fBPR\fP \fI\%#53690\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#52065\fP (2019.2.1)
  155959. @ \fI2019\-07\-05 14:55:12 UTC\fP
  155960. .INDENT 2.0
  155961. .IP \(bu 2
  155962. \fBPR\fP \fI\%#52065\fP: (\fI\%twangboy\fP) Use the dism binary that matches system architecture (refs: \fI\%#53690\fP)
  155963. .IP \(bu 2
  155964. 54c4220 Merge pull request \fI\%#53690\fP from twangboy/fix_win_dism_2019.2.1
  155965. .IP \(bu 2
  155966. fae9f1a Merge branch \(aq2019.2.1\(aq into fix_win_dism_2019.2.1
  155967. .UNINDENT
  155968. .IP \(bu 2
  155969. \fBPR\fP \fI\%#53719\fP: (\fI\%s0undt3ch\fP) [2019.2.1] PR Pipeline Enhancements
  155970. @ \fI2019\-07\-04 20:29:06 UTC\fP
  155971. .INDENT 2.0
  155972. .IP \(bu 2
  155973. 78c45eb Merge pull request \fI\%#53719\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155974. .IP \(bu 2
  155975. 76b99fd Enhance lint report
  155976. .IP \(bu 2
  155977. 45f19af Use milestones to abort previous, still running, builds, on new builds
  155978. .UNINDENT
  155979. .IP \(bu 2
  155980. \fBPR\fP \fI\%#53697\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Add Fedora 30 requirements files
  155981. @ \fI2019\-07\-04 04:26:02 UTC\fP
  155982. .INDENT 2.0
  155983. .IP \(bu 2
  155984. 3db4ddb Merge pull request \fI\%#53697\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155985. .IP \(bu 2
  155986. 36198cd Delete Opensuse 42 static requirements
  155987. .IP \(bu 2
  155988. 4413626 Delete Fedora 28 static requirements
  155989. .IP \(bu 2
  155990. 41809e5 Add Fedora 30 requirements files
  155991. .UNINDENT
  155992. .IP \(bu 2
  155993. \fBPR\fP \fI\%#53680\fP: (\fI\%Ch3LL\fP) Pytest 5.0 contextmanager str: call value on ExceptionInfo objects
  155994. @ \fI2019\-07\-04 00:12:56 UTC\fP
  155995. .INDENT 2.0
  155996. .IP \(bu 2
  155997. f5c5da4 Merge pull request \fI\%#53680\fP from Ch3LL/pytest_5_changes
  155998. .IP \(bu 2
  155999. b5e2b0b Merge branch \(aq2019.2.1\(aq into pytest_5_changes
  156000. .UNINDENT
  156001. .IP \(bu 2
  156002. \fBPR\fP \fI\%#53682\fP: (\fI\%twangboy\fP) Fix compare issue in lgpo state module
  156003. @ \fI2019\-07\-03 04:43:22 UTC\fP
  156004. .INDENT 2.0
  156005. .IP \(bu 2
  156006. 727843c Merge pull request \fI\%#53682\fP from twangboy/fix_lock_1740_lgpo
  156007. .IP \(bu 2
  156008. 62450db Merge branch \(aq2019.2.1\(aq into fix_lock_1740_lgpo
  156009. .IP \(bu 2
  156010. f6276a3 Fix compare issue in lgpo state module
  156011. .INDENT 2.0
  156012. .IP \(bu 2
  156013. 110b953 Pytest 5.0 contextmanager str: call value on ExceptionInfo objects
  156014. .IP \(bu 2
  156015. b71b655 Merge forward \fI\%#52065\fP
  156016. .IP \(bu 2
  156017. 023c47d Fix typo
  156018. .IP \(bu 2
  156019. 43dd7b3 Merge Forward \fI\%#52593\fP
  156020. .UNINDENT
  156021. .UNINDENT
  156022. .IP \(bu 2
  156023. \fBPR\fP \fI\%#53678\fP: (\fI\%twangboy\fP) Fix LGPO when string object is None
  156024. @ \fI2019\-07\-02 23:47:05 UTC\fP
  156025. .INDENT 2.0
  156026. .IP \(bu 2
  156027. 491bfa8 Merge pull request \fI\%#53678\fP from twangboy/fix_lock_1688_lgpo
  156028. .IP \(bu 2
  156029. 7b05bf8 Merge branch \(aq2019.2.1\(aq into fix_lock_1688_lgpo
  156030. .UNINDENT
  156031. .IP \(bu 2
  156032. \fBPR\fP \fI\%#53220\fP: (\fI\%twangboy\fP) Don\(aqt remove the pythonwin directory (2019.2.1)
  156033. @ \fI2019\-07\-02 22:43:43 UTC\fP
  156034. .INDENT 2.0
  156035. .IP \(bu 2
  156036. 4a4a91b Merge pull request \fI\%#53220\fP from twangboy/fix_pywin32_2019.2.1
  156037. .IP \(bu 2
  156038. 748bf1c Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  156039. .UNINDENT
  156040. .IP \(bu 2
  156041. \fBPR\fP \fI\%#53614\fP: (\fI\%Ch3LL\fP) Increase flaky attempts on mac tests using systemsetup
  156042. @ \fI2019\-07\-02 21:33:56 UTC\fP
  156043. .INDENT 2.0
  156044. .IP \(bu 2
  156045. c2befe2 Merge pull request \fI\%#53614\fP from Ch3LL/mac_flaky
  156046. .IP \(bu 2
  156047. 5460031 Merge branch \(aq2019.2.1\(aq into mac_flaky
  156048. .IP \(bu 2
  156049. 7dcaaf0 Increase flaky attempts on mac tests using systemsetup
  156050. .UNINDENT
  156051. .IP \(bu 2
  156052. \fBPR\fP \fI\%#53624\fP: (\fI\%Ch3LL\fP) Allow yaml list notation for nodegroup expansion
  156053. @ \fI2019\-07\-02 21:32:43 UTC\fP
  156054. .INDENT 2.0
  156055. .IP \(bu 2
  156056. 02461cb Merge pull request \fI\%#53624\fP from Ch3LL/nodegroup_group_list
  156057. .IP \(bu 2
  156058. 475d904 Merge branch \(aq2019.2.1\(aq into nodegroup_group_list
  156059. .IP \(bu 2
  156060. fbb15cd Add nodegroup list test
  156061. .IP \(bu 2
  156062. ee59d39 Merge branch \(aq2019.2.1\(aq into nodegroup_group_list
  156063. .IP \(bu 2
  156064. d236bd4 Allow yaml list notation for nodegroup expansion
  156065. .UNINDENT
  156066. .IP \(bu 2
  156067. \fBPR\fP \fI\%#53562\fP: (\fI\%Ch3LL\fP) Move create key call into try/except in Digital Ocean key test
  156068. @ \fI2019\-07\-02 16:08:08 UTC\fP
  156069. .INDENT 2.0
  156070. .IP \(bu 2
  156071. 8857dbd Merge pull request \fI\%#53562\fP from Ch3LL/do_key_test
  156072. .IP \(bu 2
  156073. 315eb35 Merge branch \(aq2019.2.1\(aq into do_key_test
  156074. .IP \(bu 2
  156075. 75ac708 Merge branch \(aq2019.2.1\(aq into do_key_test
  156076. .IP \(bu 2
  156077. 128ba07 Move create key call into try/except in Digital Ocean key test
  156078. .INDENT 2.0
  156079. .INDENT 3.5
  156080. .INDENT 0.0
  156081. .IP \(bu 2
  156082. 22d4a3a Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  156083. .IP \(bu 2
  156084. 6bb6df7 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  156085. .IP \(bu 2
  156086. 534c984 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  156087. .IP \(bu 2
  156088. 382c637 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  156089. .IP \(bu 2
  156090. fb4090d update py3 script
  156091. .IP \(bu 2
  156092. 0ea70ba Don\(aqt remove pythonwin directory
  156093. .INDENT 2.0
  156094. .INDENT 3.5
  156095. .INDENT 0.0
  156096. .IP \(bu 2
  156097. ba37276 Use string_types instead of text_types
  156098. .IP \(bu 2
  156099. f6d0084 Add some unit tests, raise error on non\-string types
  156100. .IP \(bu 2
  156101. 35ed8be Create function for encoding string values
  156102. .IP \(bu 2
  156103. c4c1082 Return encoded null when string value is None
  156104. .UNINDENT
  156105. .UNINDENT
  156106. .UNINDENT
  156107. .UNINDENT
  156108. .UNINDENT
  156109. .UNINDENT
  156110. .UNINDENT
  156111. .IP \(bu 2
  156112. \fBPR\fP \fI\%#53627\fP: (\fI\%dmurphy18\fP) Cherry pick pr 53370 from 2018.3 into 2019.2.1
  156113. @ \fI2019\-06\-28 19:54:13 UTC\fP
  156114. .INDENT 2.0
  156115. .IP \(bu 2
  156116. 164aaeb Merge pull request \fI\%#53627\fP from dmurphy18/cherry\-pick\-pr\-53370
  156117. .IP \(bu 2
  156118. 450d23d Merge branch \(aq2019.2.1\(aq into cherry\-pick\-pr\-53370
  156119. .UNINDENT
  156120. .IP \(bu 2
  156121. \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)
  156122. .IP \(bu 2
  156123. \fBPR\fP \fI\%#53587\fP: (\fI\%cro\fP) Forward port from 2018.3 Add event_listen_queue_max_seconds to fix \fI\%#53411\fP
  156124. @ \fI2019\-06\-28 16:49:46 UTC\fP
  156125. .INDENT 2.0
  156126. .IP \(bu 2
  156127. \fBPR\fP \fI\%#53412\fP: (\fI\%cro\fP) Stale events 53411 (refs: \fI\%#53587\fP)
  156128. .IP \(bu 2
  156129. 6559e4c Merge pull request \fI\%#53587\fP from cro/53412\-2019.2.1
  156130. .IP \(bu 2
  156131. 9e69bd4 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  156132. .IP \(bu 2
  156133. 949a026 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  156134. .IP \(bu 2
  156135. f5d81c9 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  156136. .IP \(bu 2
  156137. d74c313 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  156138. .IP \(bu 2
  156139. b3c3f52 Make doc build test pass.
  156140. .IP \(bu 2
  156141. 8001130 Add event_listen_queue_max_seconds to fix \fI\%#53411\fP
  156142. .INDENT 2.0
  156143. .INDENT 3.5
  156144. .INDENT 0.0
  156145. .IP \(bu 2
  156146. 34e38d7 Merge branch \(aq2019.2.1\(aq into cherry\-pick\-pr\-53370
  156147. .UNINDENT
  156148. .UNINDENT
  156149. .UNINDENT
  156150. .UNINDENT
  156151. .IP \(bu 2
  156152. \fBISSUE\fP \fI\%#53283\fP: (\fI\%Ch3LL\fP) integration.states.test_file.FileTest.test_directory_broken_symlink (refs: \fI\%#53295\fP)
  156153. .IP \(bu 2
  156154. \fBPR\fP \fI\%#53295\fP: (\fI\%DmitryKuzmenko\fP) Recurse kwarg of state.directory state shall be a list or None
  156155. @ \fI2019\-06\-27 23:20:10 UTC\fP
  156156. .INDENT 2.0
  156157. .IP \(bu 2
  156158. 14efced Merge pull request \fI\%#53295\fP from DSRCorporation/bugs/test_file_recurse_set
  156159. .IP \(bu 2
  156160. 2927b78 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  156161. .IP \(bu 2
  156162. 9c01670 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  156163. .IP \(bu 2
  156164. 571d82a Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  156165. .IP \(bu 2
  156166. ee8f0e3 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  156167. .IP \(bu 2
  156168. 013e04c Recurse kwarg of state.directory state shall be a list of None
  156169. .UNINDENT
  156170. .IP \(bu 2
  156171. \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)
  156172. .IP \(bu 2
  156173. \fBISSUE\fP \fI\%#52245\fP: (\fI\%twangboy\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  156174. .IP \(bu 2
  156175. \fBPR\fP \fI\%#53466\fP: (\fI\%dwoz\fP) More robust beacon state test
  156176. @ \fI2019\-06\-27 23:17:01 UTC\fP
  156177. .INDENT 2.0
  156178. .IP \(bu 2
  156179. 75175bb Merge pull request \fI\%#53466\fP from dwoz/test_pres_abs
  156180. .IP \(bu 2
  156181. f24bf06 Use new pipeline format
  156182. .IP \(bu 2
  156183. a74580b Clean up cruft
  156184. .IP \(bu 2
  156185. 68958f5 Do not create duplicate minion ids
  156186. .IP \(bu 2
  156187. c47eeb4 Add amazon 2 to PR tests
  156188. .IP \(bu 2
  156189. dc90b47 More robust beacon state test
  156190. .INDENT 2.0
  156191. .INDENT 3.5
  156192. .INDENT 0.0
  156193. .IP \(bu 2
  156194. 95b1819 Initial working tests for gpg fixes and import keys, signing
  156195. .IP \(bu 2
  156196. b2c9ae2 Update access to str/bytes with to_unicode/to_bytes for Python 3
  156197. .UNINDENT
  156198. .UNINDENT
  156199. .UNINDENT
  156200. .UNINDENT
  156201. .IP \(bu 2
  156202. \fBPR\fP \fI\%#53609\fP: (\fI\%s0undt3ch\fP) CI Pipelines. Timeout after getting a node. Report exit code.
  156203. @ \fI2019\-06\-27 16:09:54 UTC\fP
  156204. .INDENT 2.0
  156205. .IP \(bu 2
  156206. 582ac5f Merge pull request \fI\%#53609\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  156207. .IP \(bu 2
  156208. 024be84 CI Pipelines. Timeout after getting a node. Report exit code.
  156209. .UNINDENT
  156210. .IP \(bu 2
  156211. \fBPR\fP \fI\%#53574\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Minor fixes/adjustments to the new CI pipelines
  156212. @ \fI2019\-06\-25 18:48:25 UTC\fP
  156213. .INDENT 2.0
  156214. .IP \(bu 2
  156215. f568796 Merge pull request \fI\%#53574\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  156216. .IP \(bu 2
  156217. e85e2f4 Minor fixes/adjustments to the new CI pipelines
  156218. .UNINDENT
  156219. .IP \(bu 2
  156220. \fBPR\fP \fI\%#53584\fP: (\fI\%dwoz\fP) Add unit tests for recent SaltCacheLoader changes
  156221. @ \fI2019\-06\-24 23:40:43 UTC\fP
  156222. .INDENT 2.0
  156223. .IP \(bu 2
  156224. \fBPR\fP \fI\%#53563\fP: (\fI\%twangboy\fP) SaltCacheLoader does not create multiple FileClients (refs: \fI\%#53584\fP)
  156225. .IP \(bu 2
  156226. 77b7fc4 Merge pull request \fI\%#53584\fP from dwoz/client_cache
  156227. .IP \(bu 2
  156228. e9b61dc Add unit tests for recent SaltCacheLoader changes
  156229. .INDENT 2.0
  156230. .INDENT 3.5
  156231. .INDENT 0.0
  156232. .IP \(bu 2
  156233. 5558a0a Add reg to the whitelist
  156234. .UNINDENT
  156235. .UNINDENT
  156236. .UNINDENT
  156237. .UNINDENT
  156238. .IP \(bu 2
  156239. \fBPR\fP \fI\%#53563\fP: (\fI\%twangboy\fP) SaltCacheLoader does not create multiple FileClients (refs: \fI\%#53584\fP)
  156240. @ \fI2019\-06\-22 23:23:03 UTC\fP
  156241. .INDENT 2.0
  156242. .IP \(bu 2
  156243. 6ed6c31 Merge pull request \fI\%#53563\fP from twangboy/py3_windows_hang
  156244. .IP \(bu 2
  156245. 369720e Allow the file_client to be overridden
  156246. .IP \(bu 2
  156247. f6c592c Don\(aqt instantiate the file_client every time
  156248. .UNINDENT
  156249. .IP \(bu 2
  156250. \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
  156251. @ \fI2019\-06\-21 13:47:41 UTC\fP
  156252. .INDENT 2.0
  156253. .IP \(bu 2
  156254. c606952 Merge pull request \fI\%#53432\fP from garethgreenaway/2019_2_1_mac_fixes
  156255. .IP \(bu 2
  156256. 1974f11 Disabling a couple more tests in integration.modules.test_cp that hang on OS X and Py2.
  156257. .IP \(bu 2
  156258. 7721151 Fixing lint.
  156259. .IP \(bu 2
  156260. 1d4e228 Updating various skips for tests to only skip if OS is OS X and Python is Python2.
  156261. .IP \(bu 2
  156262. 01dafdc Skipping integration.modules.test_cp.CPModuleTest.test_get_file_str_https on OS X
  156263. .IP \(bu 2
  156264. c02db20 Disabling integration.modules.test_state.StateModuleTest.test_parallel_state_with_long_tag
  156265. .IP \(bu 2
  156266. 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.
  156267. .IP \(bu 2
  156268. cf76027 Removing wrong import of skipIf
  156269. .IP \(bu 2
  156270. b10e1e7 Moving the skipIf for OS X from the beacon state tests to the renderer state tests.
  156271. .IP \(bu 2
  156272. d2fef9a Disabling beacon state tests on OS X for the time being.
  156273. .IP \(bu 2
  156274. 1741bb0 Adding some timeouts to see if it helps the tests pass on OS X.
  156275. .IP \(bu 2
  156276. fd0ba0a Ensure the user and group used by @with_system_user_and_group are consistent.
  156277. .IP \(bu 2
  156278. e03ab81 Using salt.utils.path.which to find false, on OSX it lives under /usr/bin/
  156279. .IP \(bu 2
  156280. 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.
  156281. .IP \(bu 2
  156282. ee3cbc7 fix to how the depends decorator works. Only run the dependancy commands for the module we\(aqre checking.
  156283. .IP \(bu 2
  156284. 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.
  156285. .IP \(bu 2
  156286. 9767ddd Format for the sqlite3 databse used for the assistive information changed in Mojave, additional columns added.
  156287. .IP \(bu 2
  156288. 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.
  156289. .UNINDENT
  156290. .IP \(bu 2
  156291. \fBPR\fP \fI\%#53526\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update pipelines to work on old and new jenkins
  156292. @ \fI2019\-06\-20 15:29:13 UTC\fP
  156293. .INDENT 2.0
  156294. .IP \(bu 2
  156295. 59e2a1f Merge pull request \fI\%#53526\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  156296. .IP \(bu 2
  156297. 24d6d09 Update pipelines to work on old and new jenkins
  156298. .UNINDENT
  156299. .IP \(bu 2
  156300. \fBPR\fP \fI\%#53210\fP: (\fI\%Ch3LL\fP) Cherry\-Pick \fI\%#52787\fP into 2019.2.1
  156301. @ \fI2019\-06\-20 13:33:13 UTC\fP
  156302. .INDENT 2.0
  156303. .IP \(bu 2
  156304. \fBPR\fP \fI\%#52787\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to test_pip state sls files (refs: \fI\%#53210\fP)
  156305. .IP \(bu 2
  156306. f5f80af Merge pull request \fI\%#53210\fP from Ch3LL/cp\-52787
  156307. .IP \(bu 2
  156308. f27c434 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156309. .UNINDENT
  156310. .IP \(bu 2
  156311. \fBPR\fP \fI\%#53467\fP: (\fI\%twangboy\fP) Check valid username first (fixes failing symlink test)
  156312. @ \fI2019\-06\-19 17:04:30 UTC\fP
  156313. .INDENT 2.0
  156314. .IP \(bu 2
  156315. fd6cb35 Merge pull request \fI\%#53467\fP from twangboy/fix_test_win_file
  156316. .IP \(bu 2
  156317. 92950c5 Merge branch \(aq2019.2.1\(aq into fix_test_win_file
  156318. .IP \(bu 2
  156319. 6a21edb Merge branch \(aq2019.2.1\(aq into fix_test_win_file
  156320. .IP \(bu 2
  156321. 31ce1fb Fix some lint, skip some tests
  156322. .IP \(bu 2
  156323. 6de4db6 Monkeypatch in the class instead of globally
  156324. .IP \(bu 2
  156325. d663a1f Fix the failing BlockReplace test cases on Windows
  156326. .IP \(bu 2
  156327. 299f88f Update test_managed_contents
  156328. .IP \(bu 2
  156329. 81110e5 Fix test_file_copy_make_dirs that was failing on Linux
  156330. .IP \(bu 2
  156331. 8d0529d Fix some lint
  156332. .IP \(bu 2
  156333. 4a9c020 Fix issues with win_runas
  156334. .IP \(bu 2
  156335. bceffa1 Remove privs message
  156336. .IP \(bu 2
  156337. 54be0a6 Verify username early in win_runas
  156338. .UNINDENT
  156339. .IP \(bu 2
  156340. \fBPR\fP \fI\%#53475\fP: (\fI\%Ch3LL\fP) Add pypsexec requirement for cloud tests
  156341. @ \fI2019\-06\-19 13:30:25 UTC\fP
  156342. .INDENT 2.0
  156343. .IP \(bu 2
  156344. 3230078 Merge pull request \fI\%#53475\fP from Ch3LL/add_pypsexec
  156345. .IP \(bu 2
  156346. ab59a55 Merge branch \(aq2019.2.1\(aq into add_pypsexec
  156347. .IP \(bu 2
  156348. f954363 Merge branch \(aq2019.2.1\(aq into add_pypsexec
  156349. .IP \(bu 2
  156350. 8f7cbfc Merge branch \(aq2019.2.1\(aq into add_pypsexec
  156351. .IP \(bu 2
  156352. fa22b39 Add pypsexec requirement for cloud tests
  156353. .UNINDENT
  156354. .IP \(bu 2
  156355. \fBPR\fP \fI\%#53491\fP: (\fI\%Ch3LL\fP) Update test_gen_hash for macosx
  156356. @ \fI2019\-06\-19 13:16:04 UTC\fP
  156357. .INDENT 2.0
  156358. .IP \(bu 2
  156359. bdd7c2c Merge pull request \fI\%#53491\fP from Ch3LL/crypt_test_mac
  156360. .IP \(bu 2
  156361. 85e96bd Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  156362. .IP \(bu 2
  156363. 700338e Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  156364. .IP \(bu 2
  156365. 4ce7fb1 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  156366. .IP \(bu 2
  156367. 832ded6 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  156368. .IP \(bu 2
  156369. 775b8c2 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  156370. .IP \(bu 2
  156371. 0832b49 Update test_gen_hash for macosx
  156372. .UNINDENT
  156373. .IP \(bu 2
  156374. \fBPR\fP \fI\%#53494\fP: (\fI\%Ch3LL\fP) Always delete digital ocean key for test_key_management test
  156375. @ \fI2019\-06\-19 13:14:51 UTC\fP
  156376. .INDENT 2.0
  156377. .IP \(bu 2
  156378. 8c2e952 Merge pull request \fI\%#53494\fP from Ch3LL/do_cloud_test
  156379. .IP \(bu 2
  156380. 5053eab Merge branch \(aq2019.2.1\(aq into do_cloud_test
  156381. .IP \(bu 2
  156382. 64a3e8d Merge branch \(aq2019.2.1\(aq into do_cloud_test
  156383. .IP \(bu 2
  156384. 45c0c43 Merge branch \(aq2019.2.1\(aq into do_cloud_test
  156385. .IP \(bu 2
  156386. 3826c56 Allows delete digital ocean key for test_key_management test
  156387. .INDENT 2.0
  156388. .INDENT 3.5
  156389. .INDENT 0.0
  156390. .IP \(bu 2
  156391. 6b6dc66 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156392. .UNINDENT
  156393. .UNINDENT
  156394. .UNINDENT
  156395. .UNINDENT
  156396. .IP \(bu 2
  156397. \fBPR\fP \fI\%#53434\fP: (\fI\%weswhet\fP) Update documentation for newer mac_service module.
  156398. @ \fI2019\-06\-19 01:15:19 UTC\fP
  156399. .INDENT 2.0
  156400. .IP \(bu 2
  156401. 2e3778b Merge pull request \fI\%#53434\fP from weswhet/patch\-2
  156402. .IP \(bu 2
  156403. 89398a9 Update salt.modules.service.rst
  156404. .IP \(bu 2
  156405. b9c1b1a Update salt.modules.service.rst
  156406. .IP \(bu 2
  156407. a962a64 Merge branch \(aq2019.2.1\(aq into patch\-2
  156408. .UNINDENT
  156409. .IP \(bu 2
  156410. \fBPR\fP \fI\%#53498\fP: (\fI\%amendlik\fP) Fix broken documentation links
  156411. @ \fI2019\-06\-18 23:44:05 UTC\fP
  156412. .INDENT 2.0
  156413. .IP \(bu 2
  156414. f72ebba Merge pull request \fI\%#53498\fP from amendlik/links
  156415. .IP \(bu 2
  156416. e360a70 Fix broken documentation links for service virtual module
  156417. .IP \(bu 2
  156418. 56f65ec Fix broken documentation links for pkg virtual module
  156419. .INDENT 2.0
  156420. .IP \(bu 2
  156421. 010a2c5 Update documentation for newer mac_service module.
  156422. .INDENT 2.0
  156423. .INDENT 3.5
  156424. .INDENT 0.0
  156425. .IP \(bu 2
  156426. 1bbdc7f Merge branch \(aq2019.2.1\(aq into cp\-52787
  156427. .UNINDENT
  156428. .UNINDENT
  156429. .UNINDENT
  156430. .UNINDENT
  156431. .UNINDENT
  156432. .IP \(bu 2
  156433. \fBPR\fP \fI\%#53514\fP: (\fI\%Ch3LL\fP) Revert logging changes from \fI\%#53492\fP
  156434. @ \fI2019\-06\-18 20:49:04 UTC\fP
  156435. .INDENT 2.0
  156436. .IP \(bu 2
  156437. \fBPR\fP \fI\%#53492\fP: (\fI\%dwoz\fP) Fix syndic connection when using tcp transport (refs: \fI\%#53514\fP)
  156438. .IP \(bu 2
  156439. 0793272 Merge pull request \fI\%#53514\fP from Ch3LL/disable_py3_logging
  156440. .IP \(bu 2
  156441. 8c8f0ac import six runtests log handler
  156442. .IP \(bu 2
  156443. f442b33 Revert "Enable logging for test runs on py3"
  156444. .INDENT 2.0
  156445. .INDENT 3.5
  156446. .INDENT 0.0
  156447. .IP \(bu 2
  156448. b62be16 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156449. .UNINDENT
  156450. .UNINDENT
  156451. .UNINDENT
  156452. .UNINDENT
  156453. .IP \(bu 2
  156454. \fBPR\fP \fI\%#53485\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Workaround nox\(aqs install only flag
  156455. @ \fI2019\-06\-18 09:35:34 UTC\fP
  156456. .INDENT 2.0
  156457. .IP \(bu 2
  156458. 98285f9 Merge pull request \fI\%#53485\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  156459. .IP \(bu 2
  156460. 69e1d84 Workaround nox\(aqs install only flag
  156461. .INDENT 2.0
  156462. .INDENT 3.5
  156463. .INDENT 0.0
  156464. .IP \(bu 2
  156465. 8622bba Merge branch \(aq2019.2.1\(aq into cp\-52787
  156466. .UNINDENT
  156467. .UNINDENT
  156468. .UNINDENT
  156469. .UNINDENT
  156470. .IP \(bu 2
  156471. \fBPR\fP \fI\%#53369\fP: (\fI\%Akm0d\fP) Added refs to AIX module documentation
  156472. @ \fI2019\-06\-17 20:29:01 UTC\fP
  156473. .INDENT 2.0
  156474. .IP \(bu 2
  156475. ff7370e Merge pull request \fI\%#53369\fP from Akm0d/aix_docs
  156476. .IP \(bu 2
  156477. 2ece253 Merge branch \(aq2019.2.1\(aq into aix_docs
  156478. .IP \(bu 2
  156479. f2eda45 Merge branch \(aq2019.2.1\(aq into aix_docs
  156480. .IP \(bu 2
  156481. 3e793ac Merge branch \(aq2019.2.1\(aq into aix_docs
  156482. .IP \(bu 2
  156483. e800641 Merge branch \(aq2019.2.1\(aq into aix_docs
  156484. .IP \(bu 2
  156485. 0ef9892 Merge branch \(aq2019.2.1\(aq into aix_docs
  156486. .IP \(bu 2
  156487. 65cb718 Merge branch \(aq2019.2.1\(aq into aix_docs
  156488. .IP \(bu 2
  156489. 32f4d7e Merge branch \(aq2019.2.1\(aq into aix_docs
  156490. .IP \(bu 2
  156491. a59f45e Merge branch \(aq2019.2.1\(aq into aix_docs
  156492. .IP \(bu 2
  156493. 29f89a4 Merge branch \(aq2019.2.1\(aq into aix_docs
  156494. .IP \(bu 2
  156495. e74345c Merge branch \(aq2019.2.1\(aq into aix_docs
  156496. .IP \(bu 2
  156497. 28fbd11 Merge branch \(aq2019.2.1\(aq into aix_docs
  156498. .IP \(bu 2
  156499. 60129f0 Merge branch \(aqaix_docs\(aq of github.com:Akm0d/salt into aix_docs
  156500. .INDENT 2.0
  156501. .IP \(bu 2
  156502. a1c4abc Merge branch \(aq2019.2.1\(aq into aix_docs
  156503. .IP \(bu 2
  156504. e2c9fcc Merge branch \(aq2019.2.1\(aq into aix_docs
  156505. .UNINDENT
  156506. .IP \(bu 2
  156507. fd197d3 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into aix_docs
  156508. .IP \(bu 2
  156509. 6d42cf7 Merge branch \(aqaix_docs\(aq of github.com:Akm0d/salt into aix_docs
  156510. .INDENT 2.0
  156511. .IP \(bu 2
  156512. fae6045 Merge branch \(aq2019.2.1\(aq into aix_docs
  156513. .UNINDENT
  156514. .IP \(bu 2
  156515. 97145b0 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into aix_docs
  156516. .IP \(bu 2
  156517. 6d16343 Updated \(aqused for\(aq description of aixpkg
  156518. .IP \(bu 2
  156519. 6092683 Added aixpkg to index
  156520. .IP \(bu 2
  156521. 2867d07 Added refs to AIX module documentation
  156522. .INDENT 2.0
  156523. .INDENT 3.5
  156524. .INDENT 0.0
  156525. .IP \(bu 2
  156526. 458fe9f Merge branch \(aq2019.2.1\(aq into cp\-52787
  156527. .UNINDENT
  156528. .UNINDENT
  156529. .UNINDENT
  156530. .UNINDENT
  156531. .IP \(bu 2
  156532. \fBPR\fP \fI\%#53461\fP: (\fI\%waynew\fP) Update file.chattr
  156533. @ \fI2019\-06\-14 21:16:52 UTC\fP
  156534. .INDENT 2.0
  156535. .IP \(bu 2
  156536. 8df7684 Merge pull request \fI\%#53461\fP from waynew/fix\-chattr\-problems
  156537. .IP \(bu 2
  156538. a8d8174 Merge branch \(aq2019.2.1\(aq into fix\-chattr\-problems
  156539. .UNINDENT
  156540. .IP \(bu 2
  156541. \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)
  156542. .IP \(bu 2
  156543. \fBISSUE\fP \fI\%#52245\fP: (\fI\%twangboy\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  156544. .IP \(bu 2
  156545. \fBPR\fP \fI\%#53493\fP: (\fI\%dwoz\fP) Cherry\-pick and merge beacon event change
  156546. @ \fI2019\-06\-14 20:36:10 UTC\fP
  156547. .INDENT 2.0
  156548. .IP \(bu 2
  156549. cfe866d Merge pull request \fI\%#53493\fP from dwoz/cherry_pick_test_fix
  156550. .IP \(bu 2
  156551. fb104bb Cherry\-pick and merge beacon event change
  156552. .UNINDENT
  156553. .IP \(bu 2
  156554. \fBPR\fP \fI\%#53492\fP: (\fI\%dwoz\fP) Fix syndic connection when using tcp transport (refs: \fI\%#53514\fP)
  156555. @ \fI2019\-06\-14 19:23:41 UTC\fP
  156556. .INDENT 2.0
  156557. .IP \(bu 2
  156558. a1f4136 Merge pull request \fI\%#53492\fP from dwoz/tcp_syndic_fix
  156559. .IP \(bu 2
  156560. 17c983b Fix linter
  156561. .IP \(bu 2
  156562. 9339425 Enable logging for test runs on py3
  156563. .IP \(bu 2
  156564. f1b65d1 Fix syndic connection when using tcp transport
  156565. .UNINDENT
  156566. .IP \(bu 2
  156567. \fBPR\fP \fI\%#53437\fP: (\fI\%twangboy\fP) Fix failing symlink test
  156568. @ \fI2019\-06\-12 22:53:32 UTC\fP
  156569. .INDENT 2.0
  156570. .IP \(bu 2
  156571. e852596 Merge pull request \fI\%#53437\fP from twangboy/fix_test_win_file
  156572. .IP \(bu 2
  156573. 8c30dbd Add priv info to error message
  156574. .IP \(bu 2
  156575. a7d41a8 Make them non\-destructive tests
  156576. .IP \(bu 2
  156577. d8bede0 Remove duplicate test
  156578. .IP \(bu 2
  156579. 89aaf2e Remove duplicate test
  156580. .IP \(bu 2
  156581. 184ec4a Skip test on linux
  156582. .IP \(bu 2
  156583. c97ea99 Mark it a destructive test
  156584. .IP \(bu 2
  156585. 9da7090 Fix failing symlink test
  156586. .UNINDENT
  156587. .IP \(bu 2
  156588. \fBPR\fP \fI\%#53408\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Fix static requirements
  156589. @ \fI2019\-06\-12 22:52:33 UTC\fP
  156590. .INDENT 2.0
  156591. .IP \(bu 2
  156592. a92836b Merge pull request \fI\%#53408\fP from s0undt3ch/hotfix/fix\-pkg\-reqs\-2019.2.1
  156593. .IP \(bu 2
  156594. 19629a0 Fix \fIunit.templates.test_jinja.TestCustomExtensions.test_http_query\fP
  156595. .IP \(bu 2
  156596. 5aee99b Take into account the packaging requirements for OSX
  156597. .IP \(bu 2
  156598. b9618f6 Take into account the packaging requirements for windows
  156599. .IP \(bu 2
  156600. ff63ae4 Stop compiling static TCP requirements.
  156601. .INDENT 2.0
  156602. .IP \(bu 2
  156603. 62e590b Update file.chattr
  156604. .UNINDENT
  156605. .UNINDENT
  156606. .IP \(bu 2
  156607. \fBPR\fP \fI\%#53165\fP: (\fI\%Ch3LL\fP) Update ami\(aqs used for windows cloud tests
  156608. @ \fI2019\-06\-11 15:54:41 UTC\fP
  156609. .INDENT 2.0
  156610. .IP \(bu 2
  156611. ab9fe46 Merge pull request \fI\%#53165\fP from Ch3LL/ami_window_cloud
  156612. .IP \(bu 2
  156613. 1d0b0a6 Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156614. .IP \(bu 2
  156615. a77a05c Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156616. .IP \(bu 2
  156617. a1204dc Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156618. .IP \(bu 2
  156619. d15c8f2 Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156620. .IP \(bu 2
  156621. 941778f Update ami\(aqs used for windows cloud tests
  156622. .IP \(bu 2
  156623. \fBPR\fP \fI\%saltstack/salt#53332\fP: (\fI\%s0undt3ch\fP) Non optional full test runs for 2019.2.1 (refs: \fI\%#53431\fP)
  156624. .UNINDENT
  156625. .IP \(bu 2
  156626. \fBPR\fP \fI\%#53431\fP: (\fI\%dwoz\fP) Revert "Non optional full test runs for 2019.2.1"
  156627. @ \fI2019\-06\-10 21:44:30 UTC\fP
  156628. .INDENT 2.0
  156629. .IP \(bu 2
  156630. d806b58 Merge pull request \fI\%#53431\fP from saltstack/revert\-53332\-hotfix/full\-test\-run\-2019.2.1
  156631. .IP \(bu 2
  156632. 701218c Revert "Non optional full test runs for 2019.2.1"
  156633. .UNINDENT
  156634. .IP \(bu 2
  156635. \fBISSUE\fP \fI\%#52174\fP: (\fI\%amendlik\fP) file.stat function not working under Python 3 (refs: \fI\%#53430\fP)
  156636. .INDENT 2.0
  156637. .IP \(bu 2
  156638. \fBPR\fP \fI\%#53430\fP: (\fI\%Akm0d\fP) Cherry\-pick \fI\%#52174\fP into 2019.2.1
  156639. .INDENT 2.0
  156640. .INDENT 3.5
  156641. .INDENT 0.0
  156642. .IP \(bu 2
  156643. 7811971 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156644. .UNINDENT
  156645. .UNINDENT
  156646. .UNINDENT
  156647. .UNINDENT
  156648. .IP \(bu 2
  156649. \fBPR\fP \fI\%#53389\fP: (\fI\%bryceml\fP) only keep last 10 builds of every pr on jenkins to reduce disk usage
  156650. @ \fI2019\-06\-10 17:18:48 UTC\fP
  156651. .INDENT 2.0
  156652. .IP \(bu 2
  156653. 6b800a2 Merge pull request \fI\%#53389\fP from bryceml/2019.2.1
  156654. .IP \(bu 2
  156655. 05368a1 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  156656. .UNINDENT
  156657. .IP \(bu 2
  156658. \fBPR\fP \fI\%#53332\fP: (\fI\%s0undt3ch\fP) Non optional full test runs for 2019.2.1
  156659. @ \fI2019\-06\-10 15:51:41 UTC\fP
  156660. .INDENT 2.0
  156661. .IP \(bu 2
  156662. fe18c40 Merge pull request \fI\%#53332\fP from s0undt3ch/hotfix/full\-test\-run\-2019.2.1
  156663. .IP \(bu 2
  156664. 2372733 Merge branch \(aq2019.2.1\(aq into hotfix/full\-test\-run\-2019.2.1
  156665. .IP \(bu 2
  156666. f8bd47b Merge branch \(aq2019.2.1\(aq into hotfix/full\-test\-run\-2019.2.1
  156667. .IP \(bu 2
  156668. 45c3c06 Non optional full test runs for 2019.2.1
  156669. .INDENT 2.0
  156670. .INDENT 3.5
  156671. .INDENT 0.0
  156672. .IP \(bu 2
  156673. 928b05f only fetch pr target branch instead of all branches to save time and disk space
  156674. .IP \(bu 2
  156675. ccc6106 only keep last 10 builds of every pr on jenkins to reduce disk usage
  156676. .INDENT 2.0
  156677. .INDENT 3.5
  156678. .INDENT 0.0
  156679. .IP \(bu 2
  156680. b970bde Merge branch \(aq2019.2.1\(aq into cp\-52787
  156681. .UNINDENT
  156682. .UNINDENT
  156683. .UNINDENT
  156684. .UNINDENT
  156685. .UNINDENT
  156686. .UNINDENT
  156687. .UNINDENT
  156688. .IP \(bu 2
  156689. \fBPR\fP \fI\%#53287\fP: (\fI\%twangboy\fP) Fix win system
  156690. @ \fI2019\-06\-06 23:35:47 UTC\fP
  156691. .INDENT 2.0
  156692. .IP \(bu 2
  156693. d0810d7 Merge pull request \fI\%#53287\fP from twangboy/fix_win_system
  156694. .IP \(bu 2
  156695. 0fc88fb Add TypeError
  156696. .IP \(bu 2
  156697. 5b4160d Try NumberOfEnabledCores
  156698. .IP \(bu 2
  156699. 49cbfd4 Add a note about skipping unavailable items
  156700. .IP \(bu 2
  156701. 044b56b Fix get_system_info for older versions of Windows
  156702. .UNINDENT
  156703. .IP \(bu 2
  156704. \fBISSUE\fP \fI\%#52173\fP: (\fI\%amendlik\fP) file.directory fails to check directory permissions correctly (refs: \fI\%#53385\fP)
  156705. .INDENT 2.0
  156706. .IP \(bu 2
  156707. \fBPR\fP \fI\%#53385\fP: (\fI\%Akm0d\fP) Check dir_mode recursively in file.directory
  156708. .UNINDENT
  156709. .IP \(bu 2
  156710. \fBPR\fP \fI\%#53386\fP: (\fI\%dwoz\fP) Fix missing import
  156711. @ \fI2019\-06\-06 20:45:59 UTC\fP
  156712. .INDENT 2.0
  156713. .IP \(bu 2
  156714. cf98b83 Merge pull request \fI\%#53386\fP from dwoz/missing_import
  156715. .IP \(bu 2
  156716. a23d6d9 Fix missing import
  156717. .UNINDENT
  156718. .IP \(bu 2
  156719. \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)
  156720. .INDENT 2.0
  156721. .IP \(bu 2
  156722. \fBPR\fP \fI\%#53240\fP: (\fI\%FireGrace\fP) change .next() to next() py2=>py3 leftover
  156723. .UNINDENT
  156724. .IP \(bu 2
  156725. \fBISSUE\fP \fI\%#53274\fP: (\fI\%Ch3LL\fP) integration.states.test_pkg failing on amazon 1 py2 (refs: \fI\%#53323\fP)
  156726. .IP \(bu 2
  156727. \fBPR\fP \fI\%#53323\fP: (\fI\%dmurphy18\fP) Fix for issue \fI\%#53274\fP, test on Amazon Linux 1
  156728. @ \fI2019\-06\-06 17:31:18 UTC\fP
  156729. .INDENT 2.0
  156730. .IP \(bu 2
  156731. 18991f9 Merge pull request \fI\%#53323\fP from dmurphy18/fix_53274
  156732. .IP \(bu 2
  156733. 6814852 Merge branch \(aq2019.2.1\(aq into fix_53274
  156734. .IP \(bu 2
  156735. bb6c97a Merge branch \(aq2019.2.1\(aq into fix_53274
  156736. .IP \(bu 2
  156737. b84833d Merge branch \(aq2019.2.1\(aq into fix_53274
  156738. .IP \(bu 2
  156739. 7085f36 Fixed pylint issue on PR not showing when run pylint locally
  156740. .IP \(bu 2
  156741. 1200031 Updated to use package bash\-doc if Amazon Linux 1 after review comments
  156742. .IP \(bu 2
  156743. b2a4a5e Fix for issue \fI\%#53274\fP, test on Amazon Linux 1
  156744. .IP \(bu 2
  156745. \fBPR\fP \fI\%#53356\fP: (\fI\%Akm0d\fP) Updated paramiko to version 2.2.3 for python3.7 support
  156746. .UNINDENT
  156747. .IP \(bu 2
  156748. \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)
  156749. .IP \(bu 2
  156750. \fBPR\fP \fI\%#53273\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Switch docs building under Py3
  156751. @ \fI2019\-06\-05 10:01:03 UTC\fP
  156752. .INDENT 2.0
  156753. .IP \(bu 2
  156754. 1cf57e9 Merge pull request \fI\%#53273\fP from s0undt3ch/hotfix/py3\-nox\-docs\-2019.2.1
  156755. .IP \(bu 2
  156756. 98653c0 Allow docs to be built on Python >= 3.5, not just Python 3.6
  156757. .IP \(bu 2
  156758. c54f06f Have sphinx turn errors into warnings
  156759. .IP \(bu 2
  156760. 07f4327 Switch docs building under Py3
  156761. .UNINDENT
  156762. .IP \(bu 2
  156763. \fBPR\fP \fI\%#53361\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Only make a new log record if it\(aqs a dictionary.
  156764. @ \fI2019\-06\-05 09:56:15 UTC\fP
  156765. .INDENT 2.0
  156766. .IP \(bu 2
  156767. dfd36a2 Merge pull request \fI\%#53361\fP from s0undt3ch/hotfix/fix\-mp\-logging\-2019.2.1
  156768. .IP \(bu 2
  156769. d70d61f Fully revert 962b11687
  156770. .UNINDENT
  156771. .IP \(bu 2
  156772. \fBISSUE\fP \fI\%#53171\fP: (\fI\%twangboy\fP) integration.states.test_network.NetworkTest.test_managed (refs: \fI\%#53351\fP)
  156773. .IP \(bu 2
  156774. \fBPR\fP \fI\%#53351\fP: (\fI\%waynew\fP) Add checks for Amazon Linux to ip module
  156775. @ \fI2019\-06\-04 19:25:58 UTC\fP
  156776. .INDENT 2.0
  156777. .IP \(bu 2
  156778. 5efb670 Merge pull request \fI\%#53351\fP from waynew/53171\-fix\-network\-managed
  156779. .IP \(bu 2
  156780. e801afe Add checks for Amazon Linux to ip module
  156781. .UNINDENT
  156782. .IP \(bu 2
  156783. \fBPR\fP \fI\%#53242\fP: (\fI\%s0undt3ch\fP) [2019.2.1] newer msgpack ipc fixes
  156784. @ \fI2019\-06\-03 23:39:09 UTC\fP
  156785. .INDENT 2.0
  156786. .IP \(bu 2
  156787. \fBPR\fP \fI\%#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53242\fP)
  156788. .IP \(bu 2
  156789. \fBPR\fP \fI\%#52755\fP: (\fI\%dwoz\fP) Fix non raw msg pack msg decoding (refs: \fI\%#53242\fP)
  156790. .IP \(bu 2
  156791. \fBPR\fP \fI\%#52488\fP: (\fI\%terminalmage\fP) Fix deprecation warning in msgpack >= 0.5.2 (2018.3) (refs: \fI\%#52755\fP)
  156792. .IP \(bu 2
  156793. \fBPR\fP \fI\%#52487\fP: (\fI\%terminalmage\fP) Fix deprecation warning in msgpack >= 0.5.2 (develop) (refs: \fI\%#53242\fP)
  156794. .IP \(bu 2
  156795. ce5d79a Merge pull request \fI\%#53242\fP from s0undt3ch/hotfix/msgpack\-ipc\-2019.2.1
  156796. .IP \(bu 2
  156797. d27a524 Merge branch \(aq2019.2.1\(aq into hotfix/msgpack\-ipc\-2019.2.1
  156798. .UNINDENT
  156799. .IP \(bu 2
  156800. \fBPR\fP \fI\%#53289\fP: (\fI\%cmcmarrow\fP) stops pylint E1120 from showing
  156801. @ \fI2019\-06\-01 04:57:27 UTC\fP
  156802. .INDENT 2.0
  156803. .IP \(bu 2
  156804. df448c2 Merge pull request \fI\%#53289\fP from cmcmarrow/test_kubernetes_lint_failures_silenced
  156805. .IP \(bu 2
  156806. 03eacac Merge branch \(aq2019.2.1\(aq into test_kubernetes_lint_failures_silenced
  156807. .UNINDENT
  156808. .IP \(bu 2
  156809. \fBPR\fP \fI\%#53304\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Refactor Jenkins PR pipelines to download artifacts after timeout
  156810. @ \fI2019\-05\-31 17:10:19 UTC\fP
  156811. .INDENT 2.0
  156812. .IP \(bu 2
  156813. 6fac22b Merge pull request \fI\%#53304\fP from s0undt3ch/hotfix/jenkins\-pipelines\-refactor\-2019.2.1
  156814. .IP \(bu 2
  156815. 6e778ef Refactor Jenkins PR pipelines to download artifacts after timeout
  156816. .UNINDENT
  156817. .IP \(bu 2
  156818. \fBPR\fP \fI\%#53297\fP: (\fI\%s0undt3ch\fP) [2019.2.1] The TCP transport needs the exact same requirements as the ZeroMQ one
  156819. @ \fI2019\-05\-30 19:42:29 UTC\fP
  156820. .INDENT 2.0
  156821. .IP \(bu 2
  156822. d359513 Merge pull request \fI\%#53297\fP from s0undt3ch/hotfix/tcp\-transport\-tests
  156823. .IP \(bu 2
  156824. bec7fa5 The TCP transport needs the exact same requirements as the ZeroMQ one
  156825. .IP \(bu 2
  156826. f93e7d3 stops pylint E1120 from showing
  156827. .IP \(bu 2
  156828. cbe6423 stops pylint E1120 from showing
  156829. .IP \(bu 2
  156830. c5a5d43 test_kubernetes_lint_failures_silenced
  156831. .IP \(bu 2
  156832. b838395 test_kubernetes_lint_failures_silenced
  156833. .IP \(bu 2
  156834. 997d0a8 stops pylint E1120 from showing
  156835. .INDENT 2.0
  156836. .IP \(bu 2
  156837. 5542fa8 Add the missing, and required, top pillar file.
  156838. .IP \(bu 2
  156839. 0ae2ef0 Under Py2 we still want raw to be set to True
  156840. .IP \(bu 2
  156841. 714d663 Re\-submit \fI\%#52934\fP fixed after being reverted in \fI\%#52755\fP
  156842. .IP \(bu 2
  156843. 243b512 Update msgpack calls for newer msgpack
  156844. .INDENT 2.0
  156845. .INDENT 3.5
  156846. .INDENT 0.0
  156847. .IP \(bu 2
  156848. 0f9077b Merge branch \(aq2019.2.1\(aq into cp\-52787
  156849. .UNINDENT
  156850. .UNINDENT
  156851. .UNINDENT
  156852. .UNINDENT
  156853. .UNINDENT
  156854. .IP \(bu 2
  156855. \fBPR\fP \fI\%#53264\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Minion blackout tests \- Add the missing, and required, top pillar file
  156856. @ \fI2019\-05\-29 07:30:45 UTC\fP
  156857. .INDENT 2.0
  156858. .IP \(bu 2
  156859. 50e31ec Merge pull request \fI\%#53264\fP from s0undt3ch/2019.2.1
  156860. .IP \(bu 2
  156861. acabb70 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  156862. .UNINDENT
  156863. .IP \(bu 2
  156864. \fBPR\fP \fI\%#52966\fP: (\fI\%s0undt3ch\fP) Always run the full test suite on the 2019.2.1 release branch
  156865. @ \fI2019\-05\-28 15:43:12 UTC\fP
  156866. .INDENT 2.0
  156867. .IP \(bu 2
  156868. 749c626 Merge pull request \fI\%#52966\fP from s0undt3ch/hotfix/full\-test\-run
  156869. .IP \(bu 2
  156870. 247c461 Always run the full test suite on the 2019.2.1 release branch
  156871. .UNINDENT
  156872. .IP \(bu 2
  156873. \fBPR\fP \fI\%#53138\fP: (\fI\%frogunder\fP) vultr cloudtest fix
  156874. @ \fI2019\-05\-28 14:34:22 UTC\fP
  156875. .INDENT 2.0
  156876. .IP \(bu 2
  156877. a7afd31 Merge pull request \fI\%#53138\fP from frogunder/fix_vultr_cloudtest
  156878. .IP \(bu 2
  156879. 9f4550c vultr cloudtest fix
  156880. .INDENT 2.0
  156881. .IP \(bu 2
  156882. 912b9b3 Add the missing, and required, top pillar file.
  156883. .INDENT 2.0
  156884. .INDENT 3.5
  156885. .INDENT 0.0
  156886. .IP \(bu 2
  156887. 9d21b75 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156888. .UNINDENT
  156889. .UNINDENT
  156890. .UNINDENT
  156891. .UNINDENT
  156892. .UNINDENT
  156893. .IP \(bu 2
  156894. \fBPR\fP \fI\%#53258\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Fix multiprocessing logging queue dict changing during iteration errors
  156895. @ \fI2019\-05\-27 19:26:27 UTC\fP
  156896. .INDENT 2.0
  156897. .IP \(bu 2
  156898. d011beb Merge pull request \fI\%#53258\fP from s0undt3ch/2019.2.1
  156899. .IP \(bu 2
  156900. ad01dd2 More robust minion blackout tests
  156901. .IP \(bu 2
  156902. a0346d1 Try harder to get the minion grains
  156903. .IP \(bu 2
  156904. 36717bd Try and address the test flakyness
  156905. .IP \(bu 2
  156906. ce07d8c Add more information when the assertion fails
  156907. .IP \(bu 2
  156908. b99e914 Attempt to fix mine tests
  156909. .IP \(bu 2
  156910. fca981c One more known to return None
  156911. .IP \(bu 2
  156912. 951df48 One more known to return None
  156913. .IP \(bu 2
  156914. eb5fd3e Fix \fIintegration.modules.test_mine.MineTest.test_get\fP for sub_minion
  156915. .IP \(bu 2
  156916. 26314f5 Fix multiprocessing logging queue dict changing during iteration errors
  156917. .UNINDENT
  156918. .IP \(bu 2
  156919. \fBPR\fP \fI\%#53153\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Add Amazon Linux 2018.3 and 2 static requirements
  156920. @ \fI2019\-05\-27 12:02:20 UTC\fP
  156921. .INDENT 2.0
  156922. .IP \(bu 2
  156923. b69e080 Merge pull request \fI\%#53153\fP from s0undt3ch/2019.2.1
  156924. .IP \(bu 2
  156925. 166067c Use \fIcurrentBuild.resultIsBetterOrEqualTo\fP instead
  156926. .IP \(bu 2
  156927. cefdd90 Stop error messages about missing roster file on syndic master
  156928. .IP \(bu 2
  156929. 6bf8f46 Don\(aqt complain when attempting to close sockets at this stage
  156930. .IP \(bu 2
  156931. e3f3cc9 Add Amazon Linux 2018.3 and 2 static requirements
  156932. .IP \(bu 2
  156933. 872acc0 Switch the ubuntu\-14.04 exception with amzn\-1
  156934. .IP \(bu 2
  156935. \fBPR\fP \fI\%saltstack/salt#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53235\fP)
  156936. .UNINDENT
  156937. .IP \(bu 2
  156938. \fBPR\fP \fI\%#53235\fP: (\fI\%s0undt3ch\fP) Revert "Update msgpack calls for newer msgpack"
  156939. @ \fI2019\-05\-24 13:35:20 UTC\fP
  156940. .INDENT 2.0
  156941. .IP \(bu 2
  156942. 14aeeea Merge pull request \fI\%#53235\fP from saltstack/revert\-52934\-fix_msgpack
  156943. .IP \(bu 2
  156944. 3295aea Revert "Update msgpack calls for newer msgpack"
  156945. .UNINDENT
  156946. .IP \(bu 2
  156947. \fBPR\fP \fI\%#53131\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update to salt\-bootstrap v2019.05.20
  156948. @ \fI2019\-05\-24 07:45:57 UTC\fP
  156949. .INDENT 2.0
  156950. .IP \(bu 2
  156951. 6923427 Merge pull request \fI\%#53131\fP from s0undt3ch/hotfix/update\-bootstrap\-2019.2.1
  156952. .IP \(bu 2
  156953. 4cce4f4 Merge branch \(aq2019.2.1\(aq into hotfix/update\-bootstrap\-2019.2.1
  156954. .IP \(bu 2
  156955. 6751ee1 Merge branch \(aq2019.2.1\(aq into hotfix/update\-bootstrap\-2019.2.1
  156956. .IP \(bu 2
  156957. 6988e07 Update to salt\-bootstrap v2019.05.20
  156958. .UNINDENT
  156959. .IP \(bu 2
  156960. \fBPR\fP \fI\%#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53242\fP)
  156961. @ \fI2019\-05\-23 23:18:23 UTC\fP
  156962. .INDENT 2.0
  156963. .IP \(bu 2
  156964. a61db20 Merge pull request \fI\%#52934\fP from twangboy/fix_msgpack
  156965. .IP \(bu 2
  156966. f02a12e Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156967. .IP \(bu 2
  156968. 7e2cd34 Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156969. .IP \(bu 2
  156970. bc9ce8e Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156971. .IP \(bu 2
  156972. 0abd1ec Update msgpack calls for newer msgpack
  156973. .INDENT 2.0
  156974. .INDENT 3.5
  156975. .INDENT 0.0
  156976. .IP \(bu 2
  156977. 3366d59 update pylint exceptoin
  156978. .IP \(bu 2
  156979. 6c452b3 removing unwanted commits from this branch
  156980. .IP \(bu 2
  156981. e0b0ba8 Handling in flaky when maximum number of attempts raised and the exception should be raised. Different approaches depending on Py2 vs Py3.
  156982. .IP \(bu 2
  156983. 434dcda Disabling two tests when using Python 3 and OS X
  156984. .IP \(bu 2
  156985. 5784e80 Disabling integration.shell.test_minion.MinionTest.test_issue_7754 test on OS X because it hangs the test suite.
  156986. .IP \(bu 2
  156987. 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.
  156988. .IP \(bu 2
  156989. 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.
  156990. .UNINDENT
  156991. .UNINDENT
  156992. .UNINDENT
  156993. .UNINDENT
  156994. .IP \(bu 2
  156995. \fBPR\fP \fI\%#53192\fP: (\fI\%twangboy\fP) Skip \fItest_gen_hash\fP test on Windows
  156996. @ \fI2019\-05\-23 05:33:13 UTC\fP
  156997. .INDENT 2.0
  156998. .IP \(bu 2
  156999. 8a57270 Merge pull request \fI\%#53192\fP from twangboy/skip_test_gen_hash
  157000. .IP \(bu 2
  157001. 758d020 Skip test on Windows
  157002. .UNINDENT
  157003. .IP \(bu 2
  157004. \fBPR\fP \fI\%#53157\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_file.WinFileTestCase.test_issue_52002_check_file_remove_symlink\fP
  157005. @ \fI2019\-05\-22 22:32:26 UTC\fP
  157006. .INDENT 2.0
  157007. .IP \(bu 2
  157008. 446e70c Merge pull request \fI\%#53157\fP from twangboy/fix_test_win_file_symlink
  157009. .IP \(bu 2
  157010. 5672076 Merge branch \(aq2019.2.1\(aq into fix_test_win_file_symlink
  157011. .UNINDENT
  157012. .IP \(bu 2
  157013. \fBPR\fP \fI\%#53141\fP: (\fI\%Ch3LL\fP) Check for all non\-word characters when calling secure_password
  157014. @ \fI2019\-05\-22 17:24:54 UTC\fP
  157015. .INDENT 2.0
  157016. .IP \(bu 2
  157017. 6fbe9aa Merge pull request \fI\%#53141\fP from Ch3LL/shadow_fed_fix
  157018. .IP \(bu 2
  157019. a3c4066 Merge branch \(aq2019.2.1\(aq into shadow_fed_fix
  157020. .UNINDENT
  157021. .IP \(bu 2
  157022. \fBPR\fP \fI\%#53161\fP: (\fI\%Ch3LL\fP) Add HAS_REQUIRED_CRYPTO var for m2crypto in joyent
  157023. @ \fI2019\-05\-22 13:36:07 UTC\fP
  157024. .INDENT 2.0
  157025. .IP \(bu 2
  157026. fb29512 Merge pull request \fI\%#53161\fP from Ch3LL/joyent_m2crypto
  157027. .IP \(bu 2
  157028. 08d03e0 Add HAS_REQUIRED_CRYPTO var for m2crypto in joyent
  157029. .IP \(bu 2
  157030. 16ef3d2 Merge branch \(aq2019.2.1\(aq into shadow_fed_fix
  157031. .IP \(bu 2
  157032. 09ff867 Check for all non\-word when calling secure_password
  157033. .INDENT 2.0
  157034. .IP \(bu 2
  157035. 334c93b Elevate token before creating symlink
  157036. .UNINDENT
  157037. .UNINDENT
  157038. .IP \(bu 2
  157039. \fBPR\fP \fI\%#53073\fP: (\fI\%Ch3LL\fP) salt\-ssh: python binary exists before version check
  157040. @ \fI2019\-05\-20 22:36:34 UTC\fP
  157041. .INDENT 2.0
  157042. .IP \(bu 2
  157043. 85e9b2f Merge pull request \fI\%#53073\fP from Ch3LL/ssh_py3_log
  157044. .IP \(bu 2
  157045. 383e781 Improve logging in salt\-ssh gen_thin
  157046. .IP \(bu 2
  157047. 4371434 salt\-ssh: python binary exists before version check
  157048. .UNINDENT
  157049. .IP \(bu 2
  157050. \fBPR\fP \fI\%#52957\fP: (\fI\%Ch3LL\fP) Set default_flow_style=None in yaml.dump calls
  157051. @ \fI2019\-05\-16 19:42:35 UTC\fP
  157052. .INDENT 2.0
  157053. .IP \(bu 2
  157054. bd02ea6 Merge pull request \fI\%#52957\fP from Ch3LL/yaml_flow_style
  157055. .IP \(bu 2
  157056. 5f6581a Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  157057. .UNINDENT
  157058. .IP \(bu 2
  157059. \fBPR\fP \fI\%#53072\fP: (\fI\%Ch3LL\fP) Backport \fI\%#52754\fP into 2019.2.1
  157060. @ \fI2019\-05\-16 19:29:22 UTC\fP
  157061. .INDENT 2.0
  157062. .IP \(bu 2
  157063. \fBPR\fP \fI\%#52754\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to multiprocessing queue when using MacOS (refs: \fI\%#53072\fP)
  157064. .IP \(bu 2
  157065. f410346 Merge pull request \fI\%#53072\fP from Ch3LL/bp\-52754\-2019.2.1
  157066. .IP \(bu 2
  157067. 13e5e55 The maximum for the multiprocessing queue on MacOS is 32767, so if we running on MacOS then we use that maximum.
  157068. .UNINDENT
  157069. .IP \(bu 2
  157070. \fBISSUE\fP \fI\%#52817\fP: (\fI\%waynew\fP) unit.modules.test_telegram.TelegramModuleTest.test_post_message (refs: \fI\%#52972\fP)
  157071. .IP \(bu 2
  157072. \fBPR\fP \fI\%#52972\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fix to unit.modules.test_telegram
  157073. @ \fI2019\-05\-15 07:50:13 UTC\fP
  157074. .INDENT 2.0
  157075. .IP \(bu 2
  157076. 06fa91b Merge pull request \fI\%#52972\fP from garethgreenaway/52817_unit_modules_test_telegram_telegrammoduletest_test_post_message
  157077. .IP \(bu 2
  157078. cea7131 Removing global declaration.
  157079. .IP \(bu 2
  157080. 5bf9a95 Fixing lint.
  157081. .IP \(bu 2
  157082. 4d3c46d fixing broken unit.modules.test_telegram test.
  157083. .UNINDENT
  157084. .IP \(bu 2
  157085. \fBPR\fP \fI\%#53025\fP: (\fI\%Ch3LL\fP) Change package name for suse pkg tests
  157086. @ \fI2019\-05\-15 07:41:44 UTC\fP
  157087. .INDENT 2.0
  157088. .IP \(bu 2
  157089. d340cbc Merge pull request \fI\%#53025\fP from Ch3LL/suse15_pkg_test
  157090. .IP \(bu 2
  157091. 0a213ee Change package name for suse pkg tests
  157092. .UNINDENT
  157093. .IP \(bu 2
  157094. \fBPR\fP \fI\%#53020\fP: (\fI\%Ch3LL\fP) Change ssh tops log message to debug
  157095. @ \fI2019\-05\-14 16:56:42 UTC\fP
  157096. .INDENT 2.0
  157097. .IP \(bu 2
  157098. c56fbb0 Merge pull request \fI\%#53020\fP from Ch3LL/ssh_tops
  157099. .IP \(bu 2
  157100. cbbc764 Merge branch \(aq2019.2.1\(aq into ssh_tops
  157101. .UNINDENT
  157102. .IP \(bu 2
  157103. \fBPR\fP \fI\%#52973\fP: (\fI\%twangboy\fP) Fix \fIintegration.states.test_pip_state.PipStateTest.test_issue_2028_pip_installed_state\fP on Windows
  157104. @ \fI2019\-05\-13 20:56:28 UTC\fP
  157105. .INDENT 2.0
  157106. .IP \(bu 2
  157107. ce099aa Merge pull request \fI\%#52973\fP from twangboy/fix_test_pip_state
  157108. .IP \(bu 2
  157109. 21838a1 Merge branch \(aq2019.2.1\(aq into fix_test_pip_state
  157110. .UNINDENT
  157111. .IP \(bu 2
  157112. \fBPR\fP \fI\%#52986\fP: (\fI\%Ch3LL\fP) Revert "Make sure \-\-run\-expensive runtests.py arg works"
  157113. @ \fI2019\-05\-13 19:38:17 UTC\fP
  157114. .INDENT 2.0
  157115. .IP \(bu 2
  157116. 055d374 Merge pull request \fI\%#52986\fP from Ch3LL/expensive_revert
  157117. .IP \(bu 2
  157118. 368c012 Revert "Make sure \-\-run\-expensive runtests.py arg works"
  157119. .IP \(bu 2
  157120. cce263e Merge branch \(aq2019.2.1\(aq into fix_test_pip_state
  157121. .IP \(bu 2
  157122. 351d415 Return path to Python instead of None
  157123. .INDENT 2.0
  157124. .IP \(bu 2
  157125. c0538d2 Change ssh tops log message to debug
  157126. .IP \(bu 2
  157127. e317186 Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  157128. .UNINDENT
  157129. .UNINDENT
  157130. .IP \(bu 2
  157131. \fBPR\fP \fI\%#52968\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Salt >= 2018.3.x supports Py3.7
  157132. @ \fI2019\-05\-12 21:44:57 UTC\fP
  157133. .INDENT 2.0
  157134. .IP \(bu 2
  157135. ee05da5 Merge pull request \fI\%#52968\fP from s0undt3ch/2019.2.1
  157136. .IP \(bu 2
  157137. 73c3726 Salt >= 2018.3.x supports Py3.7
  157138. .UNINDENT
  157139. .IP \(bu 2
  157140. \fBISSUE\fP \fI\%#50310\fP: (\fI\%xuhcc\fP) acme.cert falsely reports changes (refs: \fI\%#50400\fP)
  157141. .IP \(bu 2
  157142. \fBPR\fP \fI\%#52796\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50400\fP and \fI\%#50402\fP into 2019.2.1
  157143. @ \fI2019\-05\-10 19:30:12 UTC\fP
  157144. .INDENT 2.0
  157145. .IP \(bu 2
  157146. \fBPR\fP \fI\%#50402\fP: (\fI\%xuhcc\fP) Fix typo in salt.modules.acme (refs: \fI\%#52796\fP)
  157147. .IP \(bu 2
  157148. \fBPR\fP \fI\%#50400\fP: (\fI\%xuhcc\fP) Fix incorrect change reporting in acme.cert (refs: \fI\%#50402\fP, \fI\%#52796\fP)
  157149. .IP \(bu 2
  157150. cae51c2 Merge pull request \fI\%#52796\fP from Ch3LL/bp\-50400
  157151. .IP \(bu 2
  157152. 0c2e3e7 Merge branch \(aq2019.2.1\(aq into bp\-50400
  157153. .IP \(bu 2
  157154. 1268e3e Merge branch \(aq2019.2.1\(aq into bp\-50400
  157155. .IP \(bu 2
  157156. 09fa9e3 Fix typo
  157157. .IP \(bu 2
  157158. 9be5c0c Fix incorrect change reporting in acme.cert
  157159. .INDENT 2.0
  157160. .INDENT 3.5
  157161. .INDENT 0.0
  157162. .IP \(bu 2
  157163. 9a27fb3 Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  157164. .UNINDENT
  157165. .UNINDENT
  157166. .UNINDENT
  157167. .UNINDENT
  157168. .IP \(bu 2
  157169. \fBPR\fP \fI\%#52770\fP: (\fI\%twangboy\fP) Fix test_file_managed_should_fall_back_to_binary on Windows
  157170. @ \fI2019\-05\-09 20:35:02 UTC\fP
  157171. .INDENT 2.0
  157172. .IP \(bu 2
  157173. 20cccd8 Merge pull request \fI\%#52770\fP from twangboy/fix_test_file
  157174. .IP \(bu 2
  157175. ac27e69 Merge branch \(aq2019.2.1\(aq into fix_test_file
  157176. .IP \(bu 2
  157177. 30a5093 Merge branch \(aq2019.2.1\(aq into fix_test_file
  157178. .IP \(bu 2
  157179. c08b10d Merge branch \(aq2019.2.1\(aq into fix_test_file
  157180. .IP \(bu 2
  157181. 340ee23 Pass encoding to _validate_str_list
  157182. .INDENT 2.0
  157183. .INDENT 3.5
  157184. .INDENT 0.0
  157185. .IP \(bu 2
  157186. 0d0e354 Fix yamldumper test for both py2/py3
  157187. .IP \(bu 2
  157188. 20bc954 Update docs for yamldumper test
  157189. .IP \(bu 2
  157190. bf648e5 Update tests/unit/utils/test_yamldumper.py
  157191. .IP \(bu 2
  157192. 70d578a Set default_flow_style=None in yaml.dump calls
  157193. .UNINDENT
  157194. .UNINDENT
  157195. .UNINDENT
  157196. .UNINDENT
  157197. .IP \(bu 2
  157198. \fBPR\fP \fI\%#52943\fP: (\fI\%Ch3LL\fP) Fix elasticsearch state module: allow user to define empty aliases
  157199. @ \fI2019\-05\-09 15:46:38 UTC\fP
  157200. .INDENT 2.0
  157201. .IP \(bu 2
  157202. 4437764 Merge pull request \fI\%#52943\fP from Ch3LL/fix_elastisearch
  157203. .IP \(bu 2
  157204. 451fb7e Merge branch \(aq2019.2.1\(aq into fix_elastisearch
  157205. .IP \(bu 2
  157206. ebff9b9 Fix elasticsearch state module: allow user to define empty aliases
  157207. .UNINDENT
  157208. .IP \(bu 2
  157209. \fBPR\fP \fI\%#52952\fP: (\fI\%s0undt3ch\fP) [2019.2.1] More nox changes and test fixes
  157210. @ \fI2019\-05\-09 15:03:07 UTC\fP
  157211. .INDENT 2.0
  157212. .IP \(bu 2
  157213. 9b290b6 Merge pull request \fI\%#52952\fP from s0undt3ch/merge\-forward/2018.3\-to\-2019.2.1\-cherry
  157214. .IP \(bu 2
  157215. a06d7ce We need to call the decorator
  157216. .IP \(bu 2
  157217. 77185af Partial revert since this is a class method
  157218. .IP \(bu 2
  157219. f5c5771 Lint fixes
  157220. .IP \(bu 2
  157221. 3e43c87 Revert "fix compare_versions method"
  157222. .IP \(bu 2
  157223. 0e139bf Fix \fIGOLDEN_IMAGES_CI_BRANCH\fP value
  157224. .IP \(bu 2
  157225. 12a9408 Add Py3.7 static requirements
  157226. .IP \(bu 2
  157227. 8e505fb Move tests to existing test modules
  157228. .IP \(bu 2
  157229. 4681609 \fItests/unit/config/__init__.py\fP \-> \fItests/unit/config/test_config.py\fP
  157230. .IP \(bu 2
  157231. b1dc7f6 Pin to \fImoto<=1.3.7\fP because of \fI\%https://github.com/spulec/moto/pull/1952\fP
  157232. .IP \(bu 2
  157233. 0ffe7ca We no longer test againt Ubuntu 14.04 which reached EOL
  157234. .IP \(bu 2
  157235. 33743fc Don\(aqt traceback when trying to close a closed socket
  157236. .IP \(bu 2
  157237. da2e147 Always cleanup the changed environ
  157238. .IP \(bu 2
  157239. 087c74d No globals in tests, specially dictionaries!
  157240. .IP \(bu 2
  157241. a814fc0 Fix underscore wart (and linter)
  157242. .IP \(bu 2
  157243. 74b8f5f Fix deprecation warning in msgpack >= 0.5.2
  157244. .IP \(bu 2
  157245. 962b116 Try to address dict changing during iteration
  157246. .IP \(bu 2
  157247. c58af57 Tweak codeclimate settings for less noise
  157248. .IP \(bu 2
  157249. 5bb7869 fix linter
  157250. .IP \(bu 2
  157251. 0b81841 Cherry\-pick test fix
  157252. .IP \(bu 2
  157253. 99f9e1c fix compare_versions method
  157254. .UNINDENT
  157255. .IP \(bu 2
  157256. \fBPR\fP \fI\%#52853\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Bring nox into 2019.2.1
  157257. @ \fI2019\-05\-09 09:52:42 UTC\fP
  157258. .INDENT 2.0
  157259. .IP \(bu 2
  157260. a510edf Merge pull request \fI\%#52853\fP from s0undt3ch/merge\-forward/2018.3\-to\-2019.2.1\-cherry
  157261. .IP \(bu 2
  157262. a8f7b46 Test is not destructive.
  157263. .IP \(bu 2
  157264. 63663cf We no longer test againt Ubuntu 14.04 which reached EOL
  157265. .IP \(bu 2
  157266. 62574ee Typo
  157267. .IP \(bu 2
  157268. e3e3761 Proper english in requirements comments
  157269. .IP \(bu 2
  157270. e9f6a12 \fIidentical_signature_wrapper\fP adds \fI__wrapped__\fP to function globals
  157271. .IP \(bu 2
  157272. 10283b4 Upload coverage reports on full test runs
  157273. .IP \(bu 2
  157274. 6e0b61b Less flaky mine tests
  157275. .IP \(bu 2
  157276. 3709ed7 msgpack returns string_types
  157277. .IP \(bu 2
  157278. a36b15e Add regression test
  157279. .IP \(bu 2
  157280. ce782ff Fix non raw msg pack msg decoding
  157281. .IP \(bu 2
  157282. f193f0f Update Issue Template: questions removed
  157283. .IP \(bu 2
  157284. 4417095 Fix underscore wart (and linter)
  157285. .IP \(bu 2
  157286. e6c2ae4 Fix deprecation warning in msgpack >= 0.5.2
  157287. .IP \(bu 2
  157288. 6375944 Add ubuntu1804 to pr tests
  157289. .IP \(bu 2
  157290. 8fdb04d SIGKILL is not alwasy available use a local variable
  157291. .IP \(bu 2
  157292. 4d6b8da Fix linter
  157293. .IP \(bu 2
  157294. 759bccc Fix test_doc on windows by using grep yay!
  157295. .IP \(bu 2
  157296. 0ce086d Fix remaining failures on ubuntu 1404 and add to PR tests
  157297. .IP \(bu 2
  157298. fdf80fd Change py3 windows timeout from 6 to 8 hours
  157299. .IP \(bu 2
  157300. b0aa287 Fix missing class wart
  157301. .IP \(bu 2
  157302. 21ecb74 fix linter
  157303. .IP \(bu 2
  157304. 62c0f9f Skip tests when no libcloud
  157305. .IP \(bu 2
  157306. 1d92290 Fix unused import
  157307. .IP \(bu 2
  157308. 72cdc91 Fix linter
  157309. .IP \(bu 2
  157310. 238fd0f Fix broken pip state
  157311. .IP \(bu 2
  157312. 89533ba Fix \fINOX_ENV_NAME\fP
  157313. .IP \(bu 2
  157314. 7cfc9e8 Fix \fINOX_ENV_NAME\fP
  157315. .IP \(bu 2
  157316. 2087c91 Fix \fINOX_ENV_NAME\fP
  157317. .IP \(bu 2
  157318. 2f1aff5 Rename kitchen\-centos6\-py3 to kitchen\-centos6\-py2
  157319. .IP \(bu 2
  157320. 1eea990 Fix linter
  157321. .IP \(bu 2
  157322. 52ca668 Skip tests when no libcloud
  157323. .IP \(bu 2
  157324. 2cf4b98 Add centos\-6\-py2 and debain 8,9 py2 and 3 to PR tests
  157325. .IP \(bu 2
  157326. 522599d Dont fail just because some random process died
  157327. .IP \(bu 2
  157328. 34cef86 Ignore super not called
  157329. .IP \(bu 2
  157330. b7ace9c Fix linter
  157331. .IP \(bu 2
  157332. aceb6d3 Skip libcloud unit tests when no libcloud
  157333. .IP \(bu 2
  157334. f73420b Install mock on Python < 3.6
  157335. .IP \(bu 2
  157336. 28fbde1 Add \fImoto\fP to the windows dependencies
  157337. .IP \(bu 2
  157338. 8cbecc1 Pin kubernetes to <4.0
  157339. .IP \(bu 2
  157340. 2acb0f3 Make sure \-\-run\-expensive runtests.py arg works
  157341. .IP \(bu 2
  157342. 22cae20 Remove ref restriciton from kitche\-salt
  157343. .IP \(bu 2
  157344. 67095df Add \(aqrunFull\(aq build parameter for PR tests
  157345. .IP \(bu 2
  157346. 12d8d35 Stop w32time before and start after testing
  157347. .IP \(bu 2
  157348. 7f1c22c Skip tests that fail on Windows
  157349. .IP \(bu 2
  157350. f4ae97f Upgrade etcd to > 0.4.2
  157351. .IP \(bu 2
  157352. 381f5fe Limit and reduce the ammount of log records sent over the wire
  157353. .IP \(bu 2
  157354. 0c94b5d More entries to ignore
  157355. .IP \(bu 2
  157356. c3a21f5 As a script, not as a module
  157357. .IP \(bu 2
  157358. 8948b69 Include \fICOVERAGE_FILE\fP as an env variable.
  157359. .IP \(bu 2
  157360. 0af561e Each generated script is now prepared for code coverage
  157361. .IP \(bu 2
  157362. 294d6f4 Use the system\(aqs path separator
  157363. .IP \(bu 2
  157364. e52ab87 Always combine and generate the XML coverage report
  157365. .IP \(bu 2
  157366. 666ca9f Fix proxy minion startup issue on the test suite
  157367. .IP \(bu 2
  157368. 7838ace \fIimpacket\fP does not support Py3
  157369. .IP \(bu 2
  157370. ba8d0fe Allow \fI\-\-install\-only\fP to gather the required information
  157371. .IP \(bu 2
  157372. eed7d68 Create nox lint virtualenvs before running them
  157373. .IP \(bu 2
  157374. e9e57cf Syndic roster not in 2017.7.9
  157375. .IP \(bu 2
  157376. 111c63a4d Create the roster even when not running ssh
  157377. .IP \(bu 2
  157378. 11c02a0 Fix unit.test_loader.LoaderGlobalsTest.test_states
  157379. .IP \(bu 2
  157380. 8694db1 Fix windows tests
  157381. .IP \(bu 2
  157382. 82e9ac5 Avoid race condition in even assertions
  157383. .IP \(bu 2
  157384. 9443451 Revert part of 927219c since it is not a fix
  157385. .IP \(bu 2
  157386. 5fee762 Fix timeout logic
  157387. .IP \(bu 2
  157388. 517650f check timeout when queue empty
  157389. .IP \(bu 2
  157390. 7c0a9af fix linter
  157391. .IP \(bu 2
  157392. 961dc40 Ignore missing variable in six module
  157393. .IP \(bu 2
  157394. 0f5a7f0 Fix typo
  157395. .IP \(bu 2
  157396. 6c8c418 Do not limit event assert to first event
  157397. .IP \(bu 2
  157398. 3042292 Wait longer for ping reaction
  157399. .IP \(bu 2
  157400. 8c10f5f Fix xml block causing docs to fail
  157401. .IP \(bu 2
  157402. 6e5768a Add a nox session for the Jenkins tornado jobs
  157403. .IP \(bu 2
  157404. 43321e8 Add a cloud nox session for both runtests and pytest
  157405. .IP \(bu 2
  157406. b6b4e95 Lint cleanup
  157407. .IP \(bu 2
  157408. 0670614 Add tests for wraps
  157409. .IP \(bu 2
  157410. 1670b5d Use functools.wraps with decorators
  157411. .IP \(bu 2
  157412. 5ae263c Update static requirements for 2018.3 branch
  157413. .IP \(bu 2
  157414. 3482c4d Disable code coverage uploads.
  157415. .IP \(bu 2
  157416. 0e5bc67 Lint fixes
  157417. .IP \(bu 2
  157418. 337c737 Update CI jobs to point to 2018.3
  157419. .IP \(bu 2
  157420. 72e8603 Skip test if required cypto libs are not available
  157421. .IP \(bu 2
  157422. e6bc9f8 Default to Cryptodome, fallback to PyCrypto
  157423. .IP \(bu 2
  157424. b2b0764 Be aware of the different path separators
  157425. .IP \(bu 2
  157426. 7e79b18 We need to make sure the virtualenv path entry is removed when searching
  157427. .IP \(bu 2
  157428. ff6d3c6 We don\(aqt need to be root to run these tests
  157429. .IP \(bu 2
  157430. 5965ab4 Disable progress bars on pip installs
  157431. .IP \(bu 2
  157432. f86a44e Use the real python executable path when running within a virtualenv
  157433. .IP \(bu 2
  157434. 3d407e8 Add a helper to return the path to the real pytohn executable
  157435. .IP \(bu 2
  157436. ea9d246 We must also provide \fIvenv_bin\fP when running within a virtualenv
  157437. .IP \(bu 2
  157438. 31e91b0 Fix pip tests, in particular under windows
  157439. .IP \(bu 2
  157440. 493f493 Don\(aqt fail if pkg_resources is not importable
  157441. .IP \(bu 2
  157442. a1eb400 Specify the SHA we need
  157443. .IP \(bu 2
  157444. 0b01f21 Let\(aqs fully unload pip
  157445. .IP \(bu 2
  157446. 0b6f848 Fix docker entries
  157447. .IP \(bu 2
  157448. 870b899 Remove unused argument
  157449. .IP \(bu 2
  157450. 1656cb4 Disable re\-runing failed tests for now
  157451. .IP \(bu 2
  157452. 6db4141 Also ignore multiprocessing coverage files
  157453. .IP \(bu 2
  157454. 83dc97d Actually write the lint reports.
  157455. .IP \(bu 2
  157456. 5f97270 Try to make sure some pip internal functions are always present in sys.modules after reloads
  157457. .IP \(bu 2
  157458. 0090c55 Try and address the fact that some python packages are only provided by the distro
  157459. .IP \(bu 2
  157460. 4a072fe These tests aren\(aqt destructive
  157461. .IP \(bu 2
  157462. 5c7a956 Don\(aqt fail the build if the issue was sending a slack notification
  157463. .IP \(bu 2
  157464. 361ef6e Don\(aqt try to change ownership on non existing paths
  157465. .IP \(bu 2
  157466. 7b17352 More insight(context) on failure reports
  157467. .IP \(bu 2
  157468. 93b6b95 Lock supervisor to 3.3.5, last kown working(passing tests) version
  157469. .IP \(bu 2
  157470. 51114aa Watch out for too long shebang\(aqs
  157471. .IP \(bu 2
  157472. d97fe82 The output is important to know why it failed.
  157473. .IP \(bu 2
  157474. 9fef385 Strings and integers are not comparable under Python 3
  157475. .IP \(bu 2
  157476. d308dce Be verbose in a CI context
  157477. .IP \(bu 2
  157478. 8b7105e Fix failed tests re\-run logic
  157479. .IP \(bu 2
  157480. d6d8db1 Blacklist \fIenum34\fP on Py>=3.4. Update requirements.
  157481. .IP \(bu 2
  157482. 1cd00c0 Update PR CI jobs for nox
  157483. .IP \(bu 2
  157484. 19a83d5 Blacklist pycrypto and install pycryptodome instead
  157485. .IP \(bu 2
  157486. 91376b3 Ignore the generated docs archive
  157487. .IP \(bu 2
  157488. 207b83a Update compiled requirements
  157489. .IP \(bu 2
  157490. 535e7a7 Add TCP transport nox sessions
  157491. .IP \(bu 2
  157492. 680b3e5 Compile requirements for the TCP transport
  157493. .IP \(bu 2
  157494. 49a1ebe Throw error when running either on Py<2.7 or Py>=3.7
  157495. .IP \(bu 2
  157496. 10528b9 Don\(aqt repeat filed tests on missing/empty failed test files file
  157497. .IP \(bu 2
  157498. 4886809 We currently only support running lint under Py2.7
  157499. .IP \(bu 2
  157500. a76981b Remove dead code
  157501. .IP \(bu 2
  157502. 7b2c1ce Don\(aqt require six
  157503. .IP \(bu 2
  157504. a27ed35 Add nox env to build docs
  157505. .IP \(bu 2
  157506. e1b3f1d Lock docs python requirements
  157507. .IP \(bu 2
  157508. c8de644 Fix lint issues under tests
  157509. .IP \(bu 2
  157510. 0372718 Fix lint issues on salt
  157511. .IP \(bu 2
  157512. 9eab9f4 Add nox session/env/target to run lint against Salt and its test suite
  157513. .IP \(bu 2
  157514. 123f771 Lock lint requirements
  157515. .IP \(bu 2
  157516. 8df33ad Back to \fI+apache\-libcloud==1.0.0\fP and skip windows for now
  157517. .IP \(bu 2
  157518. 43e3ae6 Bump apache\-libcloud requirement because 1.0.0 fails to install on windows
  157519. .IP \(bu 2
  157520. d5f7813 Remove requiremens for platforms which aren\(aqt tested under Py3
  157521. .IP \(bu 2
  157522. 8f02ee9 Recompile requirements
  157523. .IP \(bu 2
  157524. 66626f2 Remove pycryptodome from compiled requirements files
  157525. .IP \(bu 2
  157526. 75693e5 Use pycryptodomex on windows and PyCrypto on the rest
  157527. .IP \(bu 2
  157528. 4a9c19c Update(fix) requirements
  157529. .IP \(bu 2
  157530. 33a3467 We don\(aqt test OSX nor Windows under Py3.4
  157531. .IP \(bu 2
  157532. fd44fce We want a more verbose pip\-compile output
  157533. .IP \(bu 2
  157534. c2ae2d5 We now compile requirements for each of the supported minor version
  157535. .IP \(bu 2
  157536. 6ee1260 Static requirements are now placed on \fIpy<major>.<minor>\fP subdirectories
  157537. .IP \(bu 2
  157538. 3504804 The required crypto library is pulled in from zeromq.txt or raet.txt
  157539. .IP \(bu 2
  157540. 3ffe03c PyZMQ is pulled in from zeromq.txt
  157541. .IP \(bu 2
  157542. 7c2fe16 Instead of quoting session parameters, proxy nox sessions
  157543. .IP \(bu 2
  157544. d3ae77b Add separate crypto sessions
  157545. .IP \(bu 2
  157546. 0399620 Parametrize the transport
  157547. .IP \(bu 2
  157548. d33fd03 Update/Generate static requirements to new layout
  157549. .IP \(bu 2
  157550. 52ac533 Add pre\-commit config to generate static requirements
  157551. .IP \(bu 2
  157552. 3cfcb13 Be aware of the new static requirements layout
  157553. .IP \(bu 2
  157554. dc7e16a Don\(aqt lock the docker requirement. It\(aqs not locked on the other platforms
  157555. .IP \(bu 2
  157556. 5476ba2 Kubernetes 3.0.0 does include the requirements files. pip\-compile chokes on that
  157557. .IP \(bu 2
  157558. 79a8261 Previously generated requirements were py2 only
  157559. .IP \(bu 2
  157560. 1e29666 IOFLO is pulled in from the raet requirements
  157561. .IP \(bu 2
  157562. 4945e35 Fix pylint on 2017.7.9
  157563. .IP \(bu 2
  157564. 036bf68 Rerun failed tests
  157565. .IP \(bu 2
  157566. 03a9601 Ignore \fI\&.nox\fP directory
  157567. .IP \(bu 2
  157568. 50cb630 We have long files
  157569. .IP \(bu 2
  157570. db2392f Update CodeClimate settings
  157571. .IP \(bu 2
  157572. 899c80e Fix integration.client.test_kwarg test timeouts
  157573. .UNINDENT
  157574. .IP \(bu 2
  157575. \fBISSUE\fP \fI\%#52836\fP: (\fI\%Ch3LL\fP) unit.utils.test_args.ArgsTestCase.test_argspec_report failing (refs: \fI\%#52852\fP)
  157576. .IP \(bu 2
  157577. \fBPR\fP \fI\%#52852\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fixes to unit.utils.test_args.test_argspec_report
  157578. @ \fI2019\-05\-07 19:25:48 UTC\fP
  157579. .INDENT 2.0
  157580. .IP \(bu 2
  157581. 77355e2 Merge pull request \fI\%#52852\fP from garethgreenaway/52836_test_argspec_report_failing
  157582. .IP \(bu 2
  157583. eee5a38 Merge branch \(aq2019.2.1\(aq into 52836_test_argspec_report_failing
  157584. .UNINDENT
  157585. .IP \(bu 2
  157586. \fBPR\fP \fI\%#52845\fP: (\fI\%Ch3LL\fP) Backport \fI\%#52780\fP into 2019.2.1
  157587. @ \fI2019\-05\-07 16:27:21 UTC\fP
  157588. .INDENT 2.0
  157589. .IP \(bu 2
  157590. \fBPR\fP \fI\%#52780\fP: (\fI\%sbrennan4\fP) Handle ipv6 in _netlink_tool_remote_on (refs: \fI\%#52845\fP)
  157591. .IP \(bu 2
  157592. dcc5fde Merge pull request \fI\%#52845\fP from Ch3LL/bp\-52780
  157593. .IP \(bu 2
  157594. dfff09b Merge branch \(aq2019.2.1\(aq into bp\-52780
  157595. .UNINDENT
  157596. .IP \(bu 2
  157597. \fBPR\fP \fI\%#52851\fP: (\fI\%Ch3LL\fP) Reload matcher loader when ext_pillar_first set
  157598. @ \fI2019\-05\-07 13:12:07 UTC\fP
  157599. .INDENT 2.0
  157600. .IP \(bu 2
  157601. 2e4f296 Merge pull request \fI\%#52851\fP from Ch3LL/matcher_ext_pillar
  157602. .IP \(bu 2
  157603. bdcae5d Add docs for new reload kwarg
  157604. .IP \(bu 2
  157605. fc70884 Reload matcher loader when ext_pillar_first set
  157606. .IP \(bu 2
  157607. 8ac74e2 Merge branch \(aq2019.2.1\(aq into bp\-52780
  157608. .IP \(bu 2
  157609. 226c7ce Merge branch \(aq2019.2.1\(aq into bp\-52780
  157610. .IP \(bu 2
  157611. c1eae84 Add test
  157612. .IP \(bu 2
  157613. 69fe65b Use rsplit
  157614. .INDENT 2.0
  157615. .INDENT 3.5
  157616. .INDENT 0.0
  157617. .IP \(bu 2
  157618. 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.
  157619. .UNINDENT
  157620. .UNINDENT
  157621. .UNINDENT
  157622. .UNINDENT
  157623. .IP \(bu 2
  157624. \fBPR\fP \fI\%#52842\fP: (\fI\%s0undt3ch\fP) \fIlibcrypto.OpenSSL_version_num\fP might be a callable
  157625. @ \fI2019\-05\-06 17:00:37 UTC\fP
  157626. .INDENT 2.0
  157627. .IP \(bu 2
  157628. cc7a0d1 Merge pull request \fI\%#52842\fP from s0undt3ch/2019.2.1
  157629. .IP \(bu 2
  157630. a944017 \fIlibcrypto.OpenSSL_version_num\fP might be a callable
  157631. .UNINDENT
  157632. .IP \(bu 2
  157633. \fBPR\fP \fI\%#52839\fP: (\fI\%twangboy\fP) Add support for EC2
  157634. @ \fI2019\-05\-04 17:28:54 UTC\fP
  157635. .INDENT 2.0
  157636. .IP \(bu 2
  157637. b625a6a Merge pull request \fI\%#52839\fP from twangboy/fix_test_grain
  157638. .IP \(bu 2
  157639. 1c9b372 Add support for EC2
  157640. .UNINDENT
  157641. .IP \(bu 2
  157642. \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)
  157643. .IP \(bu 2
  157644. \fBPR\fP \fI\%#52767\fP: (\fI\%Ch3LL\fP) [2019.2.1] Add tests to PR \fI\%#51983\fP
  157645. @ \fI2019\-05\-03 08:35:27 UTC\fP
  157646. .INDENT 2.0
  157647. .IP \(bu 2
  157648. \fBPR\fP \fI\%#51983\fP: (\fI\%arsiesys\fP) encode topic before using hashlib (refs: \fI\%#52767\fP)
  157649. .IP \(bu 2
  157650. 6002939 Merge pull request \fI\%#52767\fP from Ch3LL/zmq_filter_test
  157651. .IP \(bu 2
  157652. 1ee8f37 Merge branch \(aq2019.2.1\(aq into zmq_filter_test
  157653. .IP \(bu 2
  157654. d74b6ee Merge branch \(aq2019.2.1\(aq into zmq_filter_test
  157655. .IP \(bu 2
  157656. 3210274 Fix linter warnings
  157657. .IP \(bu 2
  157658. e7c9d6e increase timeout when gathering results
  157659. .IP \(bu 2
  157660. 784786d Add zmq_filter unit tests
  157661. .IP \(bu 2
  157662. 805c5ee encode topic before using hashlib
  157663. .UNINDENT
  157664. .IP \(bu 2
  157665. \fBPR\fP \fI\%#52827\fP: (\fI\%twangboy\fP) Add pymssql dependency for Windows builds
  157666. @ \fI2019\-05\-03 08:21:40 UTC\fP
  157667. .INDENT 2.0
  157668. .IP \(bu 2
  157669. 5996932 Merge pull request \fI\%#52827\fP from twangboy/add_pymssql
  157670. .IP \(bu 2
  157671. 6f0b8e2 Add pymssql dependency for Windows builds
  157672. .UNINDENT
  157673. .IP \(bu 2
  157674. \fBISSUE\fP \fI\%#52717\fP: (\fI\%Ch3LL\fP) debian9 tests segmentation fault (refs: \fI\%#52797\fP)
  157675. .IP \(bu 2
  157676. \fBPR\fP \fI\%#52797\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Only run the libcrypto init if less than OpenSSL 1.1.0
  157677. @ \fI2019\-05\-03 05:12:31 UTC\fP
  157678. .INDENT 2.0
  157679. .IP \(bu 2
  157680. e3918c5 Merge pull request \fI\%#52797\fP from garethgreenaway/52717_debian_tests_segmentation_fault
  157681. .IP \(bu 2
  157682. 7ab0961 Merge branch \(aq52717_debian_tests_segmentation_fault\(aq of github.com:garethgreenaway/salt into 52717_debian_tests_segmentation_fault
  157683. .INDENT 2.0
  157684. .IP \(bu 2
  157685. f8d816e Merge branch \(aq2019.2.1\(aq into 52717_debian_tests_segmentation_fault
  157686. .UNINDENT
  157687. .UNINDENT
  157688. .IP \(bu 2
  157689. \fBPR\fP \fI\%#52771\fP: (\fI\%twangboy\fP) Fix \fItest_gpg\fP tests on Windows
  157690. @ \fI2019\-05\-02 13:30:18 UTC\fP
  157691. .INDENT 2.0
  157692. .IP \(bu 2
  157693. b68544f Merge pull request \fI\%#52771\fP from twangboy/fix_test_gpg
  157694. .IP \(bu 2
  157695. c7f45c2 Pass encoding to stringutils.to_unicode
  157696. .UNINDENT
  157697. .IP \(bu 2
  157698. \fBPR\fP \fI\%#52783\fP: (\fI\%Ch3LL\fP) Fix boto_apigateway tests for PyYAML 5.1
  157699. @ \fI2019\-05\-02 13:26:34 UTC\fP
  157700. .INDENT 2.0
  157701. .IP \(bu 2
  157702. 316d05b Merge pull request \fI\%#52783\fP from Ch3LL/fix_boto_yaml
  157703. .IP \(bu 2
  157704. cde29cb Fix boto_apigateway tests for PyYAML 5.1
  157705. .IP \(bu 2
  157706. 6ffbca5 Fixing lint.
  157707. .IP \(bu 2
  157708. e24f2f8 Only run the libcrypto init if less than OpenSSL 1.1.0.
  157709. .UNINDENT
  157710. .IP \(bu 2
  157711. \fBPR\fP \fI\%#52769\fP: (\fI\%twangboy\fP) Remove domain grain from tests for Windows
  157712. @ \fI2019\-04\-30 21:14:26 UTC\fP
  157713. .INDENT 2.0
  157714. .IP \(bu 2
  157715. 3509465 Merge pull request \fI\%#52769\fP from twangboy/fix_test_core
  157716. .IP \(bu 2
  157717. 0049f85 Remove domain grain from tests
  157718. .UNINDENT
  157719. .IP \(bu 2
  157720. \fBPR\fP \fI\%#52768\fP: (\fI\%twangboy\fP) Remove pchanges... again...
  157721. @ \fI2019\-04\-30 20:24:27 UTC\fP
  157722. .INDENT 2.0
  157723. .IP \(bu 2
  157724. 30dc14b Merge pull request \fI\%#52768\fP from twangboy/fix_test_win_dacl
  157725. .IP \(bu 2
  157726. 123b607 Remove pchanges... again...
  157727. .UNINDENT
  157728. .IP \(bu 2
  157729. \fBPR\fP \fI\%#52753\fP: (\fI\%twangboy\fP) Skip test_gen_thin_compression_fallback_py3
  157730. @ \fI2019\-04\-30 03:36:27 UTC\fP
  157731. .INDENT 2.0
  157732. .IP \(bu 2
  157733. 3e46f51 Merge pull request \fI\%#52753\fP from twangboy/skip_test_gen_thin
  157734. .IP \(bu 2
  157735. 811b381 Skip test_gen_thin_compression_fallback_py3
  157736. .UNINDENT
  157737. .IP \(bu 2
  157738. \fBISSUE\fP \fI\%#52721\fP: (\fI\%Ch3LL\fP) unit.cloud.clouds.test_ec2 test failing (refs: \fI\%#52736\fP)
  157739. .IP \(bu 2
  157740. \fBPR\fP \fI\%#52736\fP: (\fI\%dwoz\fP) Skip password decryption test when no libraries available
  157741. @ \fI2019\-04\-29 17:07:56 UTC\fP
  157742. .INDENT 2.0
  157743. .IP \(bu 2
  157744. 6bfca94 Merge pull request \fI\%#52736\fP from dwoz/ec2test
  157745. .IP \(bu 2
  157746. 04ad027 Merge branch \(aq2019.2.1\(aq into ec2test
  157747. .UNINDENT
  157748. .IP \(bu 2
  157749. \fBPR\fP \fI\%#52624\fP: (\fI\%tanlingyun2005\fP) fix TypeError: argument of type int is not iterable
  157750. @ \fI2019\-04\-29 13:15:42 UTC\fP
  157751. .INDENT 2.0
  157752. .IP \(bu 2
  157753. 9a1ed78 Merge pull request \fI\%#52624\fP from tanlingyun2005/2019.2.1
  157754. .IP \(bu 2
  157755. 2c6867e add test case to tests/unit/cli/test_batch.py
  157756. .IP \(bu 2
  157757. cb7742e Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157758. .IP \(bu 2
  157759. c943900 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157760. .IP \(bu 2
  157761. d4abddd fix TypeError: argument of type int is not iterable
  157762. .IP \(bu 2
  157763. ed908b3 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157764. .IP \(bu 2
  157765. 463b60e Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157766. .IP \(bu 2
  157767. 65ee219 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/tanlingyun2005/salt\fP into 2019.2.1
  157768. .INDENT 2.0
  157769. .IP \(bu 2
  157770. f71168d Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157771. .UNINDENT
  157772. .IP \(bu 2
  157773. 509c797 bug fix salt/cli/batch.py
  157774. .IP \(bu 2
  157775. 211915c fix salt/cli/batch.py TypeError: argument of type int is not iterable
  157776. .IP \(bu 2
  157777. 070ae84 fix TypeError: argument of type int is not iterable
  157778. .INDENT 2.0
  157779. .INDENT 3.5
  157780. .INDENT 0.0
  157781. .IP \(bu 2
  157782. b770f96 Skip test requiring crypto when none available
  157783. .IP \(bu 2
  157784. e52b390 Warn when password decrypton requested but not possible
  157785. .UNINDENT
  157786. .UNINDENT
  157787. .UNINDENT
  157788. .UNINDENT
  157789. .IP \(bu 2
  157790. \fBPR\fP \fI\%#52696\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50087\fP into 2019.2.1
  157791. @ \fI2019\-04\-25 20:33:13 UTC\fP
  157792. .INDENT 2.0
  157793. .IP \(bu 2
  157794. \fBPR\fP \fI\%#50087\fP: (\fI\%rbthomp\fP) Fix applying of attributes for returner rawfile_json (refs: \fI\%#52696\fP)
  157795. .IP \(bu 2
  157796. 806307a Merge pull request \fI\%#52696\fP from Ch3LL/bp\-50087
  157797. .IP \(bu 2
  157798. 66e97e7 Fix applying of attributes for returner rawfile_json
  157799. .UNINDENT
  157800. .IP \(bu 2
  157801. \fBPR\fP \fI\%#52659\fP: (\fI\%twangboy\fP) Fix issues with the win_file tests
  157802. @ \fI2019\-04\-22 23:34:36 UTC\fP
  157803. .INDENT 2.0
  157804. .IP \(bu 2
  157805. 174f558 Merge pull request \fI\%#52659\fP from twangboy/fix_test_win_file
  157806. .IP \(bu 2
  157807. 915c780 Fix issues with the win_file tests
  157808. .UNINDENT
  157809. .IP \(bu 2
  157810. \fBPR\fP \fI\%#52655\fP: (\fI\%dwoz\fP) Parse chattr version and fix test case
  157811. @ \fI2019\-04\-22 01:46:29 UTC\fP
  157812. .INDENT 2.0
  157813. .IP \(bu 2
  157814. d1a61a6 Merge pull request \fI\%#52655\fP from dwoz/cron_test_fix
  157815. .IP \(bu 2
  157816. e69fcc5 Fix typo
  157817. .IP \(bu 2
  157818. 859d088 Merge remote\-tracking branch \(aqorigin/cron_test_fix\(aq into cron_test_fix
  157819. .INDENT 2.0
  157820. .IP \(bu 2
  157821. 7f7bb90 Merge branch \(aq2019.2.1\(aq into cron_test_fix
  157822. .UNINDENT
  157823. .UNINDENT
  157824. .IP \(bu 2
  157825. \fBPR\fP \fI\%#52601\fP: (\fI\%Ch3LL\fP) Cherry\-Pick \fI\%#52415\fP into 2019.2.1
  157826. @ \fI2019\-04\-21 19:33:03 UTC\fP
  157827. .INDENT 2.0
  157828. .IP \(bu 2
  157829. \fBPR\fP \fI\%#52415\fP: (\fI\%Ch3LL\fP) Backport \fI\%#49832\fP into 2018.3 (refs: \fI\%#52601\fP)
  157830. .IP \(bu 2
  157831. \fBPR\fP \fI\%#49832\fP: (\fI\%terminalmage\fP) Replace pchanges with changes to make onchanges/prereq work in test mode (refs: \fI\%#52415\fP)
  157832. .IP \(bu 2
  157833. f7d823c Merge pull request \fI\%#52601\fP from Ch3LL/cp\-52415
  157834. .IP \(bu 2
  157835. ecd6802 Merge branch \(aq2019.2.1\(aq into cp\-52415
  157836. .IP \(bu 2
  157837. 538d5cf Remove pchanges from win_dacl
  157838. .IP \(bu 2
  157839. 81b865f use same newfile message on linux for windows file state
  157840. .IP \(bu 2
  157841. 93bdd08 Update dict correctly in file state
  157842. .IP \(bu 2
  157843. f3c7f27 remove pchanges for windows file modules
  157844. .IP \(bu 2
  157845. fb3b75d Fix tests for pchanges backport into 2018.3
  157846. .IP \(bu 2
  157847. 0f296bb Update kernelpkg test to reflect pchanges removal
  157848. .IP \(bu 2
  157849. 885d6ff Update file.touch unit tests to reflect addition of changes in test mode
  157850. .IP \(bu 2
  157851. 4bc5fd0 Add integration tests for test mode onchanges/prereq
  157852. .IP \(bu 2
  157853. ed214c4 Make it possible to use prereq with test and saltmod state mods
  157854. .IP \(bu 2
  157855. ceb3f4d Add repack_state_returns to TestCase
  157856. .IP \(bu 2
  157857. 982e693 Add exception logging in flaky decorator
  157858. .IP \(bu 2
  157859. 0ba0ddf Add test mode changes to file.touch state
  157860. .IP \(bu 2
  157861. 6db2beb Replace "pchanges" with "changes" to fix onchanges/prereq requisites
  157862. .INDENT 2.0
  157863. .INDENT 3.5
  157864. .INDENT 0.0
  157865. .IP \(bu 2
  157866. 169c2d5 Chattr version py3 fix
  157867. .IP \(bu 2
  157868. cf88c27 Fix linter issues
  157869. .IP \(bu 2
  157870. 0ea007d Parse chattr version and fix test case
  157871. .UNINDENT
  157872. .UNINDENT
  157873. .UNINDENT
  157874. .UNINDENT
  157875. .IP \(bu 2
  157876. \fBISSUE\fP \fI\%#52508\fP: (\fI\%Ch3LL\fP) integration.modules.test_publish test failures (refs: \fI\%#52645\fP)
  157877. .IP \(bu 2
  157878. \fBPR\fP \fI\%#52645\fP: (\fI\%dwoz\fP) Fix salt.modules.publish and salt.states.x509 tests
  157879. @ \fI2019\-04\-20 08:17:19 UTC\fP
  157880. .INDENT 2.0
  157881. .IP \(bu 2
  157882. af4f204 Merge pull request \fI\%#52645\fP from dwoz/test_fixes
  157883. .IP \(bu 2
  157884. 9b6f9f9 Clean up cruft
  157885. .IP \(bu 2
  157886. c3971a5 Fix salt.modules.publish and salt.states.x509 tests
  157887. .UNINDENT
  157888. .IP \(bu 2
  157889. \fBPR\fP \fI\%#52629\fP: (\fI\%dwoz\fP) Fix event assertion race condition
  157890. @ \fI2019\-04\-19 19:03:20 UTC\fP
  157891. .INDENT 2.0
  157892. .IP \(bu 2
  157893. \fBPR\fP \fI\%#52540\fP: (\fI\%dwoz\fP) Fix race condition in event assertion (refs: \fI\%#52629\fP)
  157894. .IP \(bu 2
  157895. 0a4d2d9 Merge pull request \fI\%#52629\fP from dwoz/ping_wait_2019.2.1
  157896. .IP \(bu 2
  157897. c001022 Fix linter
  157898. .IP \(bu 2
  157899. 423f6f9 Fix vent assertion race condition
  157900. .UNINDENT
  157901. .IP \(bu 2
  157902. \fBPR\fP \fI\%#52619\fP: (\fI\%dwoz\fP) Remove unused method from pytest engine
  157903. @ \fI2019\-04\-18 23:45:35 UTC\fP
  157904. .INDENT 2.0
  157905. .IP \(bu 2
  157906. 4859e6c Merge pull request \fI\%#52619\fP from dwoz/pytest_engine_2019.2.1
  157907. .IP \(bu 2
  157908. 105784a Remove unused method from pytest engine
  157909. .UNINDENT
  157910. .IP \(bu 2
  157911. \fBPR\fP \fI\%#52614\fP: (\fI\%Ch3LL\fP) [2019.2.1] Update integration.modules.test_network.NetworkTest.test_network_ping…
  157912. @ \fI2019\-04\-18 21:54:28 UTC\fP
  157913. .INDENT 2.0
  157914. .IP \(bu 2
  157915. 77943e5 Merge pull request \fI\%#52614\fP from Ch3LL/cp\-test_network\-2019.2.1
  157916. .IP \(bu 2
  157917. 27c79d2 Update integration.modules.test_network.NetworkTest.test_network_ping test address
  157918. .UNINDENT
  157919. .IP \(bu 2
  157920. \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)
  157921. .IP \(bu 2
  157922. \fBPR\fP \fI\%#52615\fP: (\fI\%twangboy\fP) Bring 51661 into 2019.2.1
  157923. @ \fI2019\-04\-18 21:53:35 UTC\fP
  157924. .INDENT 2.0
  157925. .IP \(bu 2
  157926. \fBPR\fP \fI\%#51661\fP: (\fI\%sathieu\fP) git_pillar: Fix all_saltenvs on base env (refs: \fI\%#52615\fP)
  157927. .IP \(bu 2
  157928. \fBPR\fP \fI\%#51597\fP: (\fI\%sathieu\fP) git_pillar: Fix all_saltenvs on base env (refs: \fI\%#51661\fP)
  157929. .IP \(bu 2
  157930. \fBPR\fP \fI\%#50768\fP: (\fI\%sathieu\fP) git_pillar: Add support for all_saltenvs parameter (refs: \fI\%#51597\fP, \fI\%#51661\fP)
  157931. .IP \(bu 2
  157932. c6b4986 Merge pull request \fI\%#52615\fP from twangboy/gitfs_2019.2.1
  157933. .IP \(bu 2
  157934. d952674 Merge branch \(aq2019.2.1\(aq into gitfs_2019.2.1
  157935. .UNINDENT
  157936. .IP \(bu 2
  157937. \fBISSUE\fP \fI\%#52547\fP: (\fI\%cbosdo\fP) virt.purge throws a libvirt exception on Xen hypervisor (refs: \fI\%#52548\fP)
  157938. .IP \(bu 2
  157939. \fBPR\fP \fI\%#52548\fP: (\fI\%cbosdo\fP) Virt purge fix
  157940. @ \fI2019\-04\-18 20:07:36 UTC\fP
  157941. .INDENT 2.0
  157942. .IP \(bu 2
  157943. 8ee15a9 Merge pull request \fI\%#52548\fP from cbosdo/virt\-purge\-fix
  157944. .IP \(bu 2
  157945. 6ca8f4b Try/except undefineFlags() as this operation is not supported on bhyve
  157946. .INDENT 2.0
  157947. .IP \(bu 2
  157948. 5a0464b Bring 51661 into 2019.2.1
  157949. .UNINDENT
  157950. .UNINDENT
  157951. .IP \(bu 2
  157952. \fBPR\fP \fI\%#52591\fP: (\fI\%Ch3LL\fP) [2019.2.1] Update test_schema to mirror the new ValidationErrors in 3.0.0
  157953. @ \fI2019\-04\-18 16:34:22 UTC\fP
  157954. .INDENT 2.0
  157955. .IP \(bu 2
  157956. e03aed5 Merge pull request \fI\%#52591\fP from Ch3LL/fix_jsonschema_2019.2
  157957. .IP \(bu 2
  157958. e09be842 Update test_schema to mirror the new ValidationErrors in 3.0.0
  157959. .UNINDENT
  157960. .IP \(bu 2
  157961. \fBISSUE\fP \fI\%#52525\fP: (\fI\%lomeroe\fP) deserializer_opts are not passed the serializer in file.serialize (refs: \fI\%#52526\fP)
  157962. .IP \(bu 2
  157963. \fBPR\fP \fI\%#52526\fP: (\fI\%lomeroe\fP) Fix use of deserializer_opts in file.serialize
  157964. @ \fI2019\-04\-17 14:08:52 UTC\fP
  157965. .INDENT 2.0
  157966. .IP \(bu 2
  157967. 21d6365 Merge pull request \fI\%#52526\fP from lomeroe/deserializer_opts_fix
  157968. .IP \(bu 2
  157969. ea0520c update test for serialization opts
  157970. .IP \(bu 2
  157971. 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.
  157972. .UNINDENT
  157973. .IP \(bu 2
  157974. \fBISSUE\fP \fI\%#49147\fP: (\fI\%furgerf\fP) Log filled with "Exception occurred while Subscriber handling stream: Already reading" (refs: \fI\%#51963\fP)
  157975. .IP \(bu 2
  157976. \fBPR\fP \fI\%#52570\fP: (\fI\%DmitryKuzmenko\fP) Simplify IPCClient and prevent corrupt messages (Turn 2) 2019.2
  157977. @ \fI2019\-04\-17 14:03:02 UTC\fP
  157978. .INDENT 2.0
  157979. .IP \(bu 2
  157980. \fBPR\fP \fI\%#52564\fP: (\fI\%DmitryKuzmenko\fP) Simplify IPCClient and prevent corrupt messages (Turn 2) (refs: \fI\%#52570\fP)
  157981. .IP \(bu 2
  157982. \fBPR\fP \fI\%#52445\fP: (\fI\%dwoz\fP) Simplify IPCClient and prevent corrupt messages (refs: \fI\%#52564\fP)
  157983. .IP \(bu 2
  157984. \fBPR\fP \fI\%#51963\fP: (\fI\%DmitryKuzmenko\fP) Allow multiple instances of IPCMessageSubscriber in one process (refs: \fI\%#52564\fP)
  157985. .IP \(bu 2
  157986. e522ffe Merge pull request \fI\%#52570\fP from DSRCorporation/bugs/revert_51963_2019.2
  157987. .IP \(bu 2
  157988. fabbcac A couple of race conditions fixes and a test update.
  157989. .IP \(bu 2
  157990. 9c85734 Drop singleton from IPCClient
  157991. .IP \(bu 2
  157992. 7cf6d54 Revert "Support parallel work of multiple IPCMEssageSubscribers in one process"
  157993. .IP \(bu 2
  157994. 7f26e76 Revert "Update doc conf with the new import \fItornado.queues\fP"
  157995. .IP \(bu 2
  157996. 69e9416 Revert "Minor: Fix typo in docstring"
  157997. .UNINDENT
  157998. .IP \(bu 2
  157999. \fBISSUE\fP \fI\%#52449\fP: (\fI\%Ch3LL\fP) integration.cloud.clouds.test_gce.GCETest.test_instance_extra failure (refs: \fI\%#52551\fP)
  158000. .IP \(bu 2
  158001. \fBPR\fP \fI\%#52551\fP: (\fI\%garethgreenaway\fP) [2019.2] Marking the two tests in test_gce as flaky
  158002. @ \fI2019\-04\-17 14:00:39 UTC\fP
  158003. .INDENT 2.0
  158004. .IP \(bu 2
  158005. b173406 Merge pull request \fI\%#52551\fP from garethgreenaway/52449_test_gce_random_failures
  158006. .IP \(bu 2
  158007. 28af717 Marking the two tests in test_gce as flaky.
  158008. .UNINDENT
  158009. .IP \(bu 2
  158010. \fBISSUE\fP \fI\%#51842\fP: (\fI\%mattLLVW\fP) salt.auth.django docs use wrong model name (refs: \fI\%#52553\fP)
  158011. .IP \(bu 2
  158012. \fBPR\fP \fI\%#52553\fP: (\fI\%mattLLVW\fP) fix: \fI\%#51842\fP
  158013. @ \fI2019\-04\-17 13:59:45 UTC\fP
  158014. .INDENT 2.0
  158015. .IP \(bu 2
  158016. 8352362 Merge pull request \fI\%#52553\fP from mattLLVW/fix_django_auth_docs
  158017. .IP \(bu 2
  158018. 3baeedf fix: \fI\%#51842\fP
  158019. .UNINDENT
  158020. .IP \(bu 2
  158021. \fBISSUE\fP \fI\%#52134\fP: (\fI\%sploenix\fP) Regression: Include list of pillar files under different keys in 2019.2 (refs: \fI\%#52490\fP)
  158022. .IP \(bu 2
  158023. \fBISSUE\fP \fI\%#22063\fP: (\fI\%jeanpralo\fP) Wildcard inside top.sls file for pillar (refs: \fI\%#52490\fP)
  158024. .IP \(bu 2
  158025. \fBPR\fP \fI\%#52490\fP: (\fI\%dwoz\fP) Fix pillar include regression
  158026. @ \fI2019\-04\-17 13:54:39 UTC\fP
  158027. .INDENT 2.0
  158028. .IP \(bu 2
  158029. 9faa49c Merge pull request \fI\%#52490\fP from dwoz/issue_52134
  158030. .IP \(bu 2
  158031. 876dd18 Fix merge wart
  158032. .IP \(bu 2
  158033. 2ed650b Merge remote\-tracking branch \(aqsaltstack/2019.2\(aq into issue_52134
  158034. .IP \(bu 2
  158035. b0af11f Run include tests when pillar source changes
  158036. .IP \(bu 2
  158037. 307cec6 Fix pillar tests
  158038. .IP \(bu 2
  158039. 1a33bde import __future__.absolute_import
  158040. .IP \(bu 2
  158041. 5dc5de9 Use file encoding and add docstring
  158042. .IP \(bu 2
  158043. e84cd41 Fix pillar include wart
  158044. .IP \(bu 2
  158045. c79f496 Add pillar include tests
  158046. .IP \(bu 2
  158047. 7745242 Revert "Fix \fI\%#22063\fP: pillar wildcard support include"
  158048. .UNINDENT
  158049. .IP \(bu 2
  158050. \fBPR\fP \fI\%#52552\fP: (\fI\%twangboy\fP) Bring 52170 into 2019.2
  158051. @ \fI2019\-04\-17 13:54:17 UTC\fP
  158052. .INDENT 2.0
  158053. .IP \(bu 2
  158054. \fBPR\fP \fI\%#52170\fP: (\fI\%twangboy\fP) Fix issue when task doesn\(aqt have delay_random defined (refs: \fI\%#52552\fP)
  158055. .IP \(bu 2
  158056. b0c0237 Merge pull request \fI\%#52552\fP from twangboy/fix_win_task_2019.2
  158057. .IP \(bu 2
  158058. fd19cca Remove some warts in the docs
  158059. .IP \(bu 2
  158060. deb0b10 Fix some lint
  158061. .IP \(bu 2
  158062. a279d45 Final doc fixes
  158063. .IP \(bu 2
  158064. 58f0cd2 Fix docs... attempt 6
  158065. .IP \(bu 2
  158066. a66716e Fix docs... attempt 5
  158067. .IP \(bu 2
  158068. f6f3381 Fix docs... attempt 4
  158069. .IP \(bu 2
  158070. 18cfc15 Fix docs... attempt 3
  158071. .IP \(bu 2
  158072. c691e0d More doc fixes
  158073. .IP \(bu 2
  158074. e01077b Fix docs issue... maybe...
  158075. .IP \(bu 2
  158076. b649495 Honor 80 character line limit
  158077. .IP \(bu 2
  158078. eba4507 Bring 52170 into 2019.2
  158079. .UNINDENT
  158080. .IP \(bu 2
  158081. \fBPR\fP \fI\%#52528\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158082. @ \fI2019\-04\-17 13:53:46 UTC\fP
  158083. .INDENT 2.0
  158084. .IP \(bu 2
  158085. cc0cd5d Merge pull request \fI\%#52528\fP from Ch3LL/merge\-2019.2
  158086. .IP \(bu 2
  158087. 87cf385 increase timeout on test_state for windows
  158088. .IP \(bu 2
  158089. 3442202 Increase timeout for test_kwarg tests
  158090. .IP \(bu 2
  158091. 2c3ff2f Merge branch \(aq2019.2\(aq into merge\-2019.2
  158092. .UNINDENT
  158093. .IP \(bu 2
  158094. \fBPR\fP \fI\%#52534\fP: (\fI\%twangboy\fP) Add TLS support up to TLS 1.2
  158095. @ \fI2019\-04\-13 22:56:41 UTC\fP
  158096. .INDENT 2.0
  158097. .IP \(bu 2
  158098. e91240b Merge pull request \fI\%#52534\fP from twangboy/tls_support_2019.2
  158099. .IP \(bu 2
  158100. 9ec54c4 Add TLS support up to TLS 1.2
  158101. .INDENT 2.0
  158102. .IP \(bu 2
  158103. 474efa1 Fix pylint and state test failure
  158104. .IP \(bu 2
  158105. 048a82e Merge branch \(aq2019.2\(aq into merge\-2019.2
  158106. .UNINDENT
  158107. .UNINDENT
  158108. .IP \(bu 2
  158109. \fBPR\fP \fI\%#52536\fP: (\fI\%twangboy\fP) Bring \fI\%#52191\fP into 2019.2 branch
  158110. @ \fI2019\-04\-12 21:31:23 UTC\fP
  158111. .INDENT 2.0
  158112. .IP \(bu 2
  158113. \fBPR\fP \fI\%#52191\fP: (\fI\%twangboy\fP) Fix issue where version doesn\(aqt detect when check_remote=True (refs: \fI\%#52536\fP)
  158114. .IP \(bu 2
  158115. 2c42e4d Merge pull request \fI\%#52536\fP from twangboy/fix_choco_2019.2
  158116. .IP \(bu 2
  158117. b394ad5 Bring \fI\%#52191\fP into 2019.2 branch
  158118. .IP \(bu 2
  158119. 795a7f6 Fix windows tests \- increase timeout
  158120. .IP \(bu 2
  158121. c70772c Fix linux state tests\- add new comment
  158122. .IP \(bu 2
  158123. 2941567 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158124. .IP \(bu 2
  158125. 262516c Merge pull request \fI\%#52209\fP from twangboy/fix_choco_retcode
  158126. .INDENT 2.0
  158127. .IP \(bu 2
  158128. 7aec2d3 Merge branch \(aq2018.3\(aq into fix_choco_retcode
  158129. .IP \(bu 2
  158130. bfdc47b Handle new enhanced retcode 2
  158131. .UNINDENT
  158132. .IP \(bu 2
  158133. dd7a4ba Merge pull request \fI\%#52046\fP from twangboy/use_reg_timezone
  158134. .INDENT 2.0
  158135. .IP \(bu 2
  158136. fc8e970 Merge branch \(aq2018.3\(aq into use_reg_timezone
  158137. .IP \(bu 2
  158138. d0987e6 Merge branch \(aq2018.3\(aq into use_reg_timezone
  158139. .IP \(bu 2
  158140. 1bf0cbc Merge branch \(aq2018.3\(aq into use_reg_timezone
  158141. .IP \(bu 2
  158142. b466f8a Merge branch \(aq2018.3\(aq into use_reg_timezone
  158143. .IP \(bu 2
  158144. 34bdae5 Merge branch \(aq2018.3\(aq into use_reg_timezone
  158145. .IP \(bu 2
  158146. 9a8afa6 Fix tests, add null byte test
  158147. .IP \(bu 2
  158148. 59b1d4f Revert back to using reg to get timezone
  158149. .UNINDENT
  158150. .IP \(bu 2
  158151. 0d09608 Merge pull request \fI\%#52396\fP from dmurphy18/fix_aix_ssh
  158152. .INDENT 2.0
  158153. .IP \(bu 2
  158154. 8bfa340 Correct typo
  158155. .IP \(bu 2
  158156. 6d98577 Altered code to support salt\-ssh on AIX
  158157. .UNINDENT
  158158. .IP \(bu 2
  158159. 576478e Merge pull request \fI\%#52473\fP from Ch3LL/bp\-49437
  158160. .INDENT 2.0
  158161. .IP \(bu 2
  158162. 781385f Merge branch \(aq2018.3\(aq into bp\-49437
  158163. .IP \(bu 2
  158164. 3a3114d Fix merge conflict wart
  158165. .IP \(bu 2
  158166. bbfd412 Merge branch \(aq2018.3\(aq into bp\-49437
  158167. .IP \(bu 2
  158168. 48ee82d Merge branch \(aq2018.3\(aq into bp\-49437
  158169. .IP \(bu 2
  158170. f66d474 Add support to avoid calling refresh_db in opkg.del_repo
  158171. .UNINDENT
  158172. .IP \(bu 2
  158173. d830bc6 Merge pull request \fI\%#52493\fP from dwoz/ping_reaction_test
  158174. .INDENT 2.0
  158175. .IP \(bu 2
  158176. 8b05e77 Merge branch \(aq2018.3\(aq into ping_reaction_test
  158177. .IP \(bu 2
  158178. 7083d21 Merge branch \(aq2018.3\(aq into ping_reaction_test
  158179. .IP \(bu 2
  158180. 7c963c1 Merge branch \(aq2018.3\(aq into ping_reaction_test
  158181. .IP \(bu 2
  158182. 75ddeb3 fix linter
  158183. .IP \(bu 2
  158184. e3e1d2e fix reactor ping test
  158185. .UNINDENT
  158186. .IP \(bu 2
  158187. 9b7a0d1 Merge pull request \fI\%#52505\fP from bloomberg/2018_zmq_uri
  158188. .INDENT 2.0
  158189. .IP \(bu 2
  158190. b682ec5 transport.zmq: fix bug introduced by b7df7e75cf2
  158191. .UNINDENT
  158192. .IP \(bu 2
  158193. 452bbeb Merge pull request \fI\%#52512\fP from dwoz/supervisord_2018.3
  158194. .INDENT 2.0
  158195. .IP \(bu 2
  158196. cd5cd7d The exit code matters.
  158197. .UNINDENT
  158198. .IP \(bu 2
  158199. 53228ae Merge pull request \fI\%#52475\fP from Ch3LL/bp\-49464
  158200. .INDENT 2.0
  158201. .IP \(bu 2
  158202. a891fd3 Make opkg.del_repo be compatible with pkrepo state module
  158203. .UNINDENT
  158204. .IP \(bu 2
  158205. 6e79e24 Merge pull request \fI\%#52500\fP from terminalmage/invalid\-archive\-source
  158206. .INDENT 2.0
  158207. .IP \(bu 2
  158208. e9d175b Fix traceback when invalid source passed to archive.extracted
  158209. .UNINDENT
  158210. .IP \(bu 2
  158211. 2df74ca Merge pull request \fI\%#52476\fP from bloomberg/win_cmd_2018
  158212. .INDENT 2.0
  158213. .IP \(bu 2
  158214. 0e0c42e 2018 backport: modules.cmdmod: handle windows environ better
  158215. .UNINDENT
  158216. .IP \(bu 2
  158217. 4dfb2f8 Merge pull request \fI\%#52474\fP from Ch3LL/bp\-49984
  158218. .INDENT 2.0
  158219. .IP \(bu 2
  158220. c8d547e Use prune option in Pygit2 provider when fetching
  158221. .UNINDENT
  158222. .IP \(bu 2
  158223. d699485 Merge pull request \fI\%#52393\fP from waynew/52087\-mine\-delete\-test\-enhancements
  158224. .INDENT 2.0
  158225. .IP \(bu 2
  158226. e3f5be3 Use uncommon item in mine delete test
  158227. .UNINDENT
  158228. .IP \(bu 2
  158229. 89bd258 Merge pull request \fI\%#52445\fP from dwoz/ipc_fixes_2018.3
  158230. .INDENT 2.0
  158231. .IP \(bu 2
  158232. 1bdaf29 Ensure exceptions in service future are handled
  158233. .IP \(bu 2
  158234. c7ad732 Use six.reraise for py3 compatability
  158235. .IP \(bu 2
  158236. 29999b0 Close message service on subscriber close
  158237. .IP \(bu 2
  158238. 47203f7 Fix ipc unit tests
  158239. .IP \(bu 2
  158240. 2b35437 Fix linter issues
  158241. .IP \(bu 2
  158242. 503cdd2 Remove IPCClient singleton
  158243. .IP \(bu 2
  158244. b374034 Re\-raise queued exceptions with traceback
  158245. .UNINDENT
  158246. .UNINDENT
  158247. .IP \(bu 2
  158248. \fBISSUE\fP \fI\%#51879\fP: (\fI\%whytewolf\fP) 2019.2.0 binary pillar unicode error returns. (refs: \fI\%#52334\fP)
  158249. .IP \(bu 2
  158250. \fBPR\fP \fI\%#52334\fP: (\fI\%waynew\fP) 51879 fix binary pillar return error
  158251. @ \fI2019\-04\-12 03:45:17 UTC\fP
  158252. .INDENT 2.0
  158253. .IP \(bu 2
  158254. 6eb2bce Merge pull request \fI\%#52334\fP from waynew/51879\-fix\-binary\-pillar\-return\-error
  158255. .IP \(bu 2
  158256. ead856e Merge branch \(aq2019.2\(aq into 51879\-fix\-binary\-pillar\-return\-error
  158257. .IP \(bu 2
  158258. 2aa971d lint cleanup
  158259. .IP \(bu 2
  158260. 28c2945 keep_pillar not needed
  158261. .IP \(bu 2
  158262. fb010c0 Add binary pillar to the docs
  158263. .IP \(bu 2
  158264. f2aebf9 Assume file contents are binary
  158265. .IP \(bu 2
  158266. 2b8c782 Test gpg render with replace newlines
  158267. .IP \(bu 2
  158268. c4b385b Allow binary pillar data
  158269. .IP \(bu 2
  158270. 604b671 Return binary data from gpg renderer
  158271. .IP \(bu 2
  158272. 32aafab Ignore vscode and fix swap ignore
  158273. .UNINDENT
  158274. .IP \(bu 2
  158275. \fBISSUE\fP \fI\%#52041\fP: (\fI\%arsiesys\fP) 2019.2 influxdb_retention_policy.present broken when used extra arguments (refs: \fI\%#52043\fP)
  158276. .IP \(bu 2
  158277. \fBPR\fP \fI\%#52043\fP: (\fI\%arsiesys\fP) fix missing client_args in influxdb module
  158278. @ \fI2019\-04\-12 03:43:03 UTC\fP
  158279. .INDENT 2.0
  158280. .IP \(bu 2
  158281. 2d59705 Merge pull request \fI\%#52043\fP from arsiesys/fix_influxdb_state_rp
  158282. .IP \(bu 2
  158283. e617c5b Merge branch \(aq2019.2\(aq into fix_influxdb_state_rp
  158284. .IP \(bu 2
  158285. 7661860 fix missing client_args in influxdb module
  158286. .UNINDENT
  158287. .IP \(bu 2
  158288. \fBPR\fP \fI\%#52146\fP: (\fI\%twangboy\fP) Add missing symlink test
  158289. @ \fI2019\-04\-12 00:51:16 UTC\fP
  158290. .INDENT 2.0
  158291. .IP \(bu 2
  158292. 1b969c3 Merge pull request \fI\%#52146\fP from twangboy/fix_test_symlink_2019.2
  158293. .IP \(bu 2
  158294. 8e1c882 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  158295. .IP \(bu 2
  158296. a429542 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  158297. .IP \(bu 2
  158298. 401c253 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  158299. .IP \(bu 2
  158300. cce6200 Fixing lint
  158301. .IP \(bu 2
  158302. c7cb009 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  158303. .IP \(bu 2
  158304. 3eae05a Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  158305. .IP \(bu 2
  158306. 83bed46 Add missing symlink test
  158307. .UNINDENT
  158308. .IP \(bu 2
  158309. \fBPR\fP \fI\%#52341\fP: (\fI\%cbosdo\fP) virt.pool_running: fix pool start
  158310. @ \fI2019\-04\-12 00:14:52 UTC\fP
  158311. .INDENT 2.0
  158312. .IP \(bu 2
  158313. 7a1b8ca Merge pull request \fI\%#52341\fP from cbosdo/virt\-state\-fixes
  158314. .IP \(bu 2
  158315. 89f0bd8 Merge branch \(aq2019.2\(aq into virt\-state\-fixes
  158316. .IP \(bu 2
  158317. 25b9681 virt.pool_running: fix pool start
  158318. .IP \(bu 2
  158319. 30981d2 Remove unneeded kwargs in virt states
  158320. .IP \(bu 2
  158321. 0871c02 virt: allow defining the VM type and arch when creating it
  158322. .IP \(bu 2
  158323. 1c65d25 Updating running domains in virt.running
  158324. .IP \(bu 2
  158325. 13d7819 Add missing virt states unit tests
  158326. .IP \(bu 2
  158327. 0681d86 virt.running support for all virt.init options
  158328. .IP \(bu 2
  158329. c6a444b Add test case for virt.running
  158330. .IP \(bu 2
  158331. 2db7a98 Let virt running state provide errors
  158332. .UNINDENT
  158333. .IP \(bu 2
  158334. \fBISSUE\fP \fI\%#52350\fP: (\fI\%Ch3LL\fP) Re\-Add Python 2 unicode string literals in YAML renderer (refs: \fI\%#52427\fP)
  158335. .IP \(bu 2
  158336. \fBPR\fP \fI\%#52427\fP: (\fI\%garethgreenaway\fP) [2019.2] Support for old yaml render
  158337. @ \fI2019\-04\-12 00:06:37 UTC\fP
  158338. .INDENT 2.0
  158339. .IP \(bu 2
  158340. 6040282 Merge pull request \fI\%#52427\fP from garethgreenaway/52350_readd_and_gate_unicode_string_literal_support
  158341. .IP \(bu 2
  158342. 82f010a Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  158343. .IP \(bu 2
  158344. ae81fee Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  158345. .IP \(bu 2
  158346. b618d44 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  158347. .IP \(bu 2
  158348. b191bc0 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  158349. .IP \(bu 2
  158350. 38a9818 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  158351. .IP \(bu 2
  158352. 2767984 Removing logging entry
  158353. .IP \(bu 2
  158354. 71cd303 Adding missing yamlloader_old.py
  158355. .IP \(bu 2
  158356. f848aa4 Adding support back in with, a gated configuration option, for the old YAML Loader.
  158357. .UNINDENT
  158358. .IP \(bu 2
  158359. \fBISSUE\fP \fI\%#51865\fP: (\fI\%magenbrot\fP) salt.match.search_by resulting in \(aqNone\(aq since 2019.2 (refs: \fI\%#52234\fP)
  158360. .IP \(bu 2
  158361. \fBPR\fP \fI\%#52234\fP: (\fI\%garethgreenaway\fP) [2019.2] Fixes to matchers when used in pillar
  158362. @ \fI2019\-04\-12 00:05:48 UTC\fP
  158363. .INDENT 2.0
  158364. .IP \(bu 2
  158365. 05ba7c5 Merge pull request \fI\%#52234\fP from garethgreenaway/51865_match_search_by_master
  158366. .IP \(bu 2
  158367. 1760245 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  158368. .IP \(bu 2
  158369. d50f011 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  158370. .IP \(bu 2
  158371. b0cbb60 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  158372. .IP \(bu 2
  158373. 799a08b Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  158374. .IP \(bu 2
  158375. 21891d6 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  158376. .IP \(bu 2
  158377. a2173d7 Fixing a typo where attempting to get a list from __opts__ instead of an individual item
  158378. .IP \(bu 2
  158379. 6a5b5b2 swapping out if...else approach for __opts__.get approach.
  158380. .IP \(bu 2
  158381. 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.
  158382. .UNINDENT
  158383. .IP \(bu 2
  158384. \fBPR\fP \fI\%#52160\fP: (\fI\%cbosdo\fP) Virt whitespace fix
  158385. @ \fI2019\-04\-12 00:04:25 UTC\fP
  158386. .INDENT 2.0
  158387. .IP \(bu 2
  158388. 80d7aea Merge pull request \fI\%#52160\fP from cbosdo/virt\-whitespace\-fix
  158389. .IP \(bu 2
  158390. fd1f539 Merge branch \(aq2019.2\(aq into virt\-whitespace\-fix
  158391. .IP \(bu 2
  158392. b297e7d virt: handle whitespaces in VM names
  158393. .UNINDENT
  158394. .IP \(bu 2
  158395. \fBISSUE\fP \fI\%#51832\fP: (\fI\%nocturo\fP) pillar include stopped working (refs: \fI\%#52008\fP)
  158396. .IP \(bu 2
  158397. \fBPR\fP \fI\%#52008\fP: (\fI\%waynew\fP) Allow \fI/\fP in pillar includes
  158398. @ \fI2019\-04\-12 00:02:40 UTC\fP
  158399. .INDENT 2.0
  158400. .IP \(bu 2
  158401. b551bbd Merge pull request \fI\%#52008\fP from waynew/51832\-re\-allow\-slash\-includes
  158402. .IP \(bu 2
  158403. ee3115f Allow leading dots and / as pillar separators
  158404. .IP \(bu 2
  158405. 29c676d Ensure _closing exists
  158406. .IP \(bu 2
  158407. eb517e1 Swap \(aq/\(aq for \(aq.\(aq when matching
  158408. .UNINDENT
  158409. .IP \(bu 2
  158410. \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)
  158411. .IP \(bu 2
  158412. \fBPR\fP \fI\%#51937\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to test state functions to allow arguments that mod_watch uses
  158413. @ \fI2019\-04\-11 23:57:44 UTC\fP
  158414. .INDENT 2.0
  158415. .IP \(bu 2
  158416. d3159cb Merge pull request \fI\%#51937\fP from garethgreenaway/51821_ensure_result_comment_changes_valid_arguments
  158417. .IP \(bu 2
  158418. 86c63b5 Merge branch \(aq2019.2\(aq into 51821_ensure_result_comment_changes_valid_arguments
  158419. .IP \(bu 2
  158420. 0966d61 Merge branch \(aq2019.2\(aq into 51821_ensure_result_comment_changes_valid_arguments
  158421. .IP \(bu 2
  158422. 5527dff Ensure the comment, changes, and result are valid arguments for various test state functions as they are valid arguments for mod_watch.
  158423. .UNINDENT
  158424. .IP \(bu 2
  158425. \fBISSUE\fP \fI\%#51818\fP: (\fI\%syphernl\fP) salt.nacl.dec: expected str, bytearray, or unicode (refs: \fI\%#51913\fP)
  158426. .IP \(bu 2
  158427. \fBPR\fP \fI\%#51913\fP: (\fI\%garethgreenaway\fP) [2019.2] Fixes to utils/nacl.py
  158428. @ \fI2019\-04\-11 23:56:57 UTC\fP
  158429. .INDENT 2.0
  158430. .IP \(bu 2
  158431. 7be0428 Merge pull request \fI\%#51913\fP from garethgreenaway/51818_fix_when_sk_is_empty
  158432. .IP \(bu 2
  158433. 55d7488 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158434. .IP \(bu 2
  158435. b2128e8 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158436. .IP \(bu 2
  158437. cb01a1b Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158438. .IP \(bu 2
  158439. 1a1e333 Merge branch \(aq51818_fix_when_sk_is_empty\(aq of github.com:garethgreenaway/salt into 51818_fix_when_sk_is_empty
  158440. .INDENT 2.0
  158441. .IP \(bu 2
  158442. 102f0a3 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158443. .IP \(bu 2
  158444. 7fd04ec Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158445. .UNINDENT
  158446. .IP \(bu 2
  158447. dd23069 Adding tests for NACL changes.
  158448. .IP \(bu 2
  158449. c314f51 Correctly handle the situation when with the secret key or public key values are empty.
  158450. .UNINDENT
  158451. .IP \(bu 2
  158452. \fBISSUE\fP \fI\%#52116\fP: (\fI\%lordcirth\fP) host.present always returns None when in test=True (refs: \fI\%#52399\fP)
  158453. .IP \(bu 2
  158454. \fBPR\fP \fI\%#52399\fP: (\fI\%waynew\fP) Bring host.present in line with Salt\(aqs test conventions
  158455. @ \fI2019\-04\-11 23:32:28 UTC\fP
  158456. .INDENT 2.0
  158457. .IP \(bu 2
  158458. d6f0971 Merge pull request \fI\%#52399\fP from waynew/52116\-fix\-host\-present\-fail
  158459. .IP \(bu 2
  158460. 8440ae1 Merge branch \(aq2019.2\(aq into 52116\-fix\-host\-present\-fail
  158461. .IP \(bu 2
  158462. dd002fd Fix linter
  158463. .IP \(bu 2
  158464. 9d1b2a0 Only return None on host.present changes when test
  158465. .UNINDENT
  158466. .IP \(bu 2
  158467. \fBPR\fP \fI\%#52477\fP: (\fI\%mattp\-\fP) 2019.2 backport \fI\%#52472\fP modules.cmdmod: handle windows environ better
  158468. @ \fI2019\-04\-11 23:13:34 UTC\fP
  158469. .INDENT 2.0
  158470. .IP \(bu 2
  158471. \fBPR\fP \fI\%#52472\fP: (\fI\%mattp\-\fP) modules.cmdmod: handle windows environ better (refs: \fI\%#52476\fP, \fI\%#52477\fP)
  158472. .IP \(bu 2
  158473. 7c709cf Merge pull request \fI\%#52477\fP from bloomberg/win_cmd_2019
  158474. .IP \(bu 2
  158475. 736a437 2019.2 bacpkport: modules.cmdmod: handle windows environ better
  158476. .UNINDENT
  158477. .IP \(bu 2
  158478. \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)
  158479. .IP \(bu 2
  158480. \fBPR\fP \fI\%#52423\fP: (\fI\%bbinet\fP) Remove unused salt.crypt import
  158481. @ \fI2019\-04\-11 21:44:41 UTC\fP
  158482. .INDENT 2.0
  158483. .IP \(bu 2
  158484. \fBPR\fP \fI\%#51655\fP: (\fI\%garethgreenaway\fP) [2017.7] Removing unused salt.crypt imports (refs: \fI\%#52423\fP)
  158485. .IP \(bu 2
  158486. b0d3c76 Merge pull request \fI\%#52423\fP from bbinet/unused\-salt\-crypt
  158487. .IP \(bu 2
  158488. dc330e7 Merge branch \(aq2019.2\(aq into unused\-salt\-crypt
  158489. .IP \(bu 2
  158490. 4b26dea Merge branch \(aq2019.2\(aq into unused\-salt\-crypt
  158491. .IP \(bu 2
  158492. 9607c38 Also remove unused salt.crypt import in pillar/__init__.py
  158493. .IP \(bu 2
  158494. 49f2631 Remove unused salt.crypt import
  158495. .UNINDENT
  158496. .IP \(bu 2
  158497. \fBPR\fP \fI\%#52506\fP: (\fI\%mattp\-\fP) 2019.2: transport.zmq: fix bug introduced by b7df7e75cf2
  158498. @ \fI2019\-04\-11 21:12:51 UTC\fP
  158499. .INDENT 2.0
  158500. .IP \(bu 2
  158501. 4bb9185 Merge pull request \fI\%#52506\fP from bloomberg/2019_zmq_uri
  158502. .IP \(bu 2
  158503. 1e9dd7f transport.zmq: fix bug introduced by b7df7e75cf2
  158504. .UNINDENT
  158505. .IP \(bu 2
  158506. \fBISSUE\fP \fI\%#52462\fP: (\fI\%Ch3LL\fP) integration.states.test_supervisord test failing (refs: \fI\%#52513\fP, \fI\%#52512\fP)
  158507. .IP \(bu 2
  158508. \fBPR\fP \fI\%#52513\fP: (\fI\%dwoz\fP) [2019.2] Fix supervisord
  158509. @ \fI2019\-04\-11 21:09:17 UTC\fP
  158510. .INDENT 2.0
  158511. .IP \(bu 2
  158512. 1532642 Merge pull request \fI\%#52513\fP from dwoz/supervisord_2019.2
  158513. .IP \(bu 2
  158514. dc9ace6 The exit code matters.
  158515. .UNINDENT
  158516. .IP \(bu 2
  158517. \fBPR\fP \fI\%#52496\fP: (\fI\%dwoz\fP) Fix wart in IPC merge forward
  158518. @ \fI2019\-04\-11 05:19:02 UTC\fP
  158519. .INDENT 2.0
  158520. .IP \(bu 2
  158521. \fBPR\fP \fI\%#52482\fP: (\fI\%dwoz\fP) Ipc fixes 2019.2 (refs: \fI\%#52496\fP)
  158522. .IP \(bu 2
  158523. 978084d Merge pull request \fI\%#52496\fP from dwoz/ipc_wart
  158524. .IP \(bu 2
  158525. 9805f38 Fix wart in IPC merge forward
  158526. .UNINDENT
  158527. .IP \(bu 2
  158528. \fBPR\fP \fI\%#52482\fP: (\fI\%dwoz\fP) Ipc fixes 2019.2 (refs: \fI\%#52496\fP)
  158529. @ \fI2019\-04\-10 19:53:58 UTC\fP
  158530. .INDENT 2.0
  158531. .IP \(bu 2
  158532. 791b646 Merge pull request \fI\%#52482\fP from dwoz/ipc_fixes_2019.2
  158533. .IP \(bu 2
  158534. f45d29b Remove un\-needed test
  158535. .IP \(bu 2
  158536. 0141b7f Fix merge wart
  158537. .IP \(bu 2
  158538. 82150f0 Remove un\-used import
  158539. .IP \(bu 2
  158540. c9ec8b1 Ensure exceptions in service future are handled
  158541. .IP \(bu 2
  158542. 25f5a90 Use six.reraise for py3 compatability
  158543. .IP \(bu 2
  158544. 6d80789 Fix ipc unit tests
  158545. .IP \(bu 2
  158546. c80da32 Fix linter issues
  158547. .IP \(bu 2
  158548. 024b4b6 Remove IPCClient singleton
  158549. .IP \(bu 2
  158550. f1d0e02 Re\-raise queued exceptions with traceback
  158551. .UNINDENT
  158552. .IP \(bu 2
  158553. \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)
  158554. .IP \(bu 2
  158555. \fBPR\fP \fI\%#51992\fP: (\fI\%garethgreenaway\fP) [2019.2] Swapping pchanges for changes in file state.
  158556. @ \fI2019\-04\-09 19:38:57 UTC\fP
  158557. .INDENT 2.0
  158558. .IP \(bu 2
  158559. 3173673 Merge pull request \fI\%#51992\fP from garethgreenaway/51932_show_diff_when_test_True
  158560. .IP \(bu 2
  158561. 7c4abd6 changes needs to be a dictionary.
  158562. .IP \(bu 2
  158563. ac950b3 Merge branch \(aq2019.2\(aq into 51932_show_diff_when_test_True
  158564. .UNINDENT
  158565. .IP \(bu 2
  158566. \fBPR\fP \fI\%#52413\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158567. @ \fI2019\-04\-08 16:19:49 UTC\fP
  158568. .INDENT 2.0
  158569. .IP \(bu 2
  158570. bd3ad7b Merge pull request \fI\%#52413\fP from Ch3LL/merge\-2019.2
  158571. .IP \(bu 2
  158572. 30783f4 Merge branch \(aq2019.2\(aq into merge\-2019.2
  158573. .UNINDENT
  158574. .IP \(bu 2
  158575. \fBPR\fP \fI\%#52151\fP: (\fI\%simonflood\fP) Fix typo in actual 2019.2.0 release notes
  158576. @ \fI2019\-04\-08 13:36:28 UTC\fP
  158577. .INDENT 2.0
  158578. .IP \(bu 2
  158579. \fBPR\fP \fI\%#51861\fP: (\fI\%simonflood\fP) Fix typo in 2019.2.0 release notes (refs: \fI\%#52151\fP)
  158580. .IP \(bu 2
  158581. a18abf2 Merge pull request \fI\%#52151\fP from simonflood/patch\-2
  158582. .IP \(bu 2
  158583. a4a5521 Merge branch \(aq2019.2\(aq into patch\-2
  158584. .IP \(bu 2
  158585. 3d31102 Fix typo in actual 2019.2.0 release notes
  158586. .INDENT 2.0
  158587. .IP \(bu 2
  158588. 16733da Merge branch \(aq2019.2\(aq into merge\-2019.2
  158589. .IP \(bu 2
  158590. fe13214 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158591. .INDENT 2.0
  158592. .IP \(bu 2
  158593. b6028b9 Merge pull request \fI\%#52403\fP from bdrung/fix\-test\-conditions
  158594. .INDENT 2.0
  158595. .IP \(bu 2
  158596. e74f78f Skip ExtendTestCase if templates directory is missing
  158597. .IP \(bu 2
  158598. 0473683 Skip SampleConfTest if sample conf directories are missing
  158599. .UNINDENT
  158600. .IP \(bu 2
  158601. e5a755d Merge pull request \fI\%#52250\fP from twangboy/fix_grains
  158602. .INDENT 2.0
  158603. .IP \(bu 2
  158604. a77ec81 Merge branch \(aq2018.3\(aq into fix_grains
  158605. .IP \(bu 2
  158606. b405391 Refer to the windowsdomain grain
  158607. .IP \(bu 2
  158608. e103561 Add some documentation about the domain grain on Windows
  158609. .IP \(bu 2
  158610. c874831 Don\(aqt set the domain grain to windowsdomain
  158611. .IP \(bu 2
  158612. 65eb461 Add a test for windows grains
  158613. .IP \(bu 2
  158614. 173d1e7 Fix the domain grain on Windows
  158615. .INDENT 2.0
  158616. .INDENT 3.5
  158617. .INDENT 0.0
  158618. .IP \(bu 2
  158619. 0ce0c04 Merge branch \(aq2019.2\(aq into 51932_show_diff_when_test_True
  158620. .UNINDENT
  158621. .UNINDENT
  158622. .UNINDENT
  158623. .UNINDENT
  158624. .UNINDENT
  158625. .UNINDENT
  158626. .UNINDENT
  158627. .IP \(bu 2
  158628. \fBISSUE\fP \fI\%#51869\fP: (\fI\%eimantaszd\fP) x509.sign_remote_certificate not working after upgrade to 2019.2.0 (refs: \fI\%#52381\fP)
  158629. .IP \(bu 2
  158630. \fBPR\fP \fI\%#52381\fP: (\fI\%dwoz\fP) Fix issue \fI\%#51869\fP and add cert signing test
  158631. @ \fI2019\-04\-05 20:36:11 UTC\fP
  158632. .INDENT 2.0
  158633. .IP \(bu 2
  158634. 6bae227 Merge pull request \fI\%#52381\fP from dwoz/issue_51869
  158635. .IP \(bu 2
  158636. cd78485 Merge branch \(aq2019.2\(aq into issue_51869
  158637. .UNINDENT
  158638. .IP \(bu 2
  158639. \fBISSUE\fP \fI\%#21927\fP: (\fI\%jfindlay\fP) network.traceroute intermittently stacktraces (refs: \fI\%#52370\fP)
  158640. .IP \(bu 2
  158641. \fBPR\fP \fI\%#52370\fP: (\fI\%jfindlay\fP) Fix network.traceroute exec module function
  158642. @ \fI2019\-04\-03 16:39:20 UTC\fP
  158643. .INDENT 2.0
  158644. .IP \(bu 2
  158645. c1063cf Merge pull request \fI\%#52370\fP from jfindlay/traceroute
  158646. .IP \(bu 2
  158647. 2f49231 modules.network: update unit test
  158648. .IP \(bu 2
  158649. 5b64fc0 modules.network: log and skip problematic traceroute lines
  158650. .IP \(bu 2
  158651. e33f5c1 modules.network: standardize util check
  158652. .UNINDENT
  158653. .IP \(bu 2
  158654. \fBPR\fP \fI\%#52397\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158655. @ \fI2019\-04\-02 22:12:45 UTC\fP
  158656. .INDENT 2.0
  158657. .IP \(bu 2
  158658. 3675f1e Merge pull request \fI\%#52397\fP from garethgreenaway/merge\-2019.2
  158659. .IP \(bu 2
  158660. 28e76b1 Merge branch \(aq2018.3\(aq into merge\-2019.2
  158661. .IP \(bu 2
  158662. 28f947e Merge pull request \fI\%#52213\fP from garethgreenaway/beacon_state_dont_save_test_true
  158663. .INDENT 2.0
  158664. .IP \(bu 2
  158665. 7f83b4b Swapping out if state looking for test in opts for a __opts__.get
  158666. .IP \(bu 2
  158667. e1cf599 Merge branch \(aq2018.3\(aq into beacon_state_dont_save_test_true
  158668. .IP \(bu 2
  158669. b751122 Merge branch \(aq2018.3\(aq into beacon_state_dont_save_test_true
  158670. .IP \(bu 2
  158671. a901ec4 Don\(aqt save beacons when test=True
  158672. .UNINDENT
  158673. .IP \(bu 2
  158674. 10d041b Merge pull request \fI\%#52344\fP from twangboy/os_release_embedded
  158675. .INDENT 2.0
  158676. .IP \(bu 2
  158677. 74ab4d3 Use old way to get osrelease if new way fails
  158678. .UNINDENT
  158679. .IP \(bu 2
  158680. e88d3ba Merge pull request \fI\%#52345\fP from garethgreenaway/52197_incron_cannot_have_comments
  158681. .INDENT 2.0
  158682. .IP \(bu 2
  158683. 070837a Merge branch \(aq2018.3\(aq into 52197_incron_cannot_have_comments
  158684. .IP \(bu 2
  158685. 8461608 Updating the incron module, state module and tests to remove use of comments.
  158686. .INDENT 2.0
  158687. .INDENT 3.5
  158688. .INDENT 0.0
  158689. .IP \(bu 2
  158690. 855f31a Remove un\-used file
  158691. .IP \(bu 2
  158692. affd9b8 Fix setup/teardown methods
  158693. .IP \(bu 2
  158694. 215bf93 Refresh after modifying tmp pillars
  158695. .IP \(bu 2
  158696. 95c3aba Add config for listener
  158697. .IP \(bu 2
  158698. 5d231f4 remove unused import
  158699. .IP \(bu 2
  158700. 8c1b1db Use tmp pillar for signing policies
  158701. .IP \(bu 2
  158702. a0e2458 fix unused import
  158703. .IP \(bu 2
  158704. 7f5f7dd Fix requisite path
  158705. .IP \(bu 2
  158706. 5630498 Fix signing policies path
  158707. .IP \(bu 2
  158708. 0bd0826 Fix issue \fI\%#51869\fP and add cert signing test
  158709. .UNINDENT
  158710. .UNINDENT
  158711. .UNINDENT
  158712. .UNINDENT
  158713. .UNINDENT
  158714. .IP \(bu 2
  158715. \fBPR\fP \fI\%#52347\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158716. @ \fI2019\-03\-28 16:41:53 UTC\fP
  158717. .INDENT 2.0
  158718. .IP \(bu 2
  158719. 27e6cbf Merge pull request \fI\%#52347\fP from Ch3LL/merge\-2019.2
  158720. .IP \(bu 2
  158721. 63962b5 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158722. .IP \(bu 2
  158723. bda3ca2 Merge pull request \fI\%#51749\fP from terminal\-labs/salt\-cloud\-map\-alt\-update
  158724. .INDENT 2.0
  158725. .IP \(bu 2
  158726. 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.
  158727. .IP \(bu 2
  158728. 364ef06 Added mention of map file alternative for minion configuration options.
  158729. .UNINDENT
  158730. .IP \(bu 2
  158731. a743fff Merge pull request \fI\%#52113\fP from twangboy/fix_lgpo
  158732. .INDENT 2.0
  158733. .IP \(bu 2
  158734. bb4a704 Merge branch \(aq2018.3\(aq into fix_lgpo
  158735. .IP \(bu 2
  158736. 7186405 Merge branch \(aq2018.3\(aq into fix_lgpo
  158737. .IP \(bu 2
  158738. 7656331 Change default language from 1033 to en_US
  158739. .UNINDENT
  158740. .IP \(bu 2
  158741. 7040643 Merge pull request \fI\%#52172\fP from garethgreenaway/51959_fix_acl_present_output
  158742. .INDENT 2.0
  158743. .IP \(bu 2
  158744. 8c53890 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158745. .IP \(bu 2
  158746. 0bdde94 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158747. .IP \(bu 2
  158748. c5337e1 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158749. .IP \(bu 2
  158750. 889660f Fixing lint.
  158751. .IP \(bu 2
  158752. bfdb669 Updating the reverse octal lookup dictionary. Updating tests.
  158753. .IP \(bu 2
  158754. 24c907b Adding additional permissions to the lookup.
  158755. .IP \(bu 2
  158756. 4b99afa Fixing the output when there are changes for the ACL state so the permissions are shown and not the octal number.
  158757. .UNINDENT
  158758. .IP \(bu 2
  158759. 45d6cad Merge pull request \fI\%#52283\fP from dmurphy18/fix_cpe_name_amzn2
  158760. .INDENT 2.0
  158761. .IP \(bu 2
  158762. cbe5f7d Update to allow for malformed CPE_NAME from some OS\(aqs
  158763. .UNINDENT
  158764. .IP \(bu 2
  158765. 14a6b9d Merge pull request \fI\%#52306\fP from terminal\-labs/replace\-ping\-with\-version
  158766. .INDENT 2.0
  158767. .IP \(bu 2
  158768. c04ba6e Changed a text artifact from the ping function to supporting text for the version function.
  158769. .IP \(bu 2
  158770. 0b1eb00 Replaced \fItest.ping\fP with \fItest.version\fP Result of issue \fI\%#52277\fP
  158771. .UNINDENT
  158772. .IP \(bu 2
  158773. 7b2b521 Merge pull request \fI\%#51963\fP from DSRCorporation/bugs/49147_ipc_subscriber
  158774. .INDENT 2.0
  158775. .IP \(bu 2
  158776. 37aeba3 Minor: Fix typo in docstring
  158777. .IP \(bu 2
  158778. cc46e9c Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158779. .IP \(bu 2
  158780. 23733bd Regression test for parallel IPCMessageSubscriber support
  158781. .IP \(bu 2
  158782. 2bc2a7d Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158783. .IP \(bu 2
  158784. 684bf58 Update doc conf with the new import \fItornado.queues\fP
  158785. .IP \(bu 2
  158786. 008cf49 Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158787. .IP \(bu 2
  158788. 01e9a3d Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158789. .IP \(bu 2
  158790. 710ab50 Support parallel work of multiple IPCMEssageSubscribers in one process
  158791. .UNINDENT
  158792. .IP \(bu 2
  158793. 87bb513 Fix failing symlink test (\fI\%#52145\fP)
  158794. .IP \(bu 2
  158795. 8255901 document \fIregex_replace\fP Jinja filter (\fI\%#52326\fP)
  158796. .IP \(bu 2
  158797. 3211397 Merge pull request \fI\%#52310\fP from garethgreenaway/merge\-2018.3
  158798. .INDENT 2.0
  158799. .IP \(bu 2
  158800. 9324b83 Merge branch \(aq2018.3\(aq into merge\-2018.3
  158801. .UNINDENT
  158802. .IP \(bu 2
  158803. 71e9b66 Merge pull request \fI\%#52312\fP from terminal\-labs/zone\-clarification
  158804. .INDENT 2.0
  158805. .IP \(bu 2
  158806. ae0e18f Merge branch \(aq2018.3\(aq into zone\-clarification
  158807. .IP \(bu 2
  158808. e8c8dba Added in an explaination of the \-\-zone flag approved in \fI\%#52251\fP
  158809. .INDENT 2.0
  158810. .IP \(bu 2
  158811. 4908ed3 Merge branch \(aq2017.7\(aq into merge\-2018.3
  158812. .IP \(bu 2
  158813. b6a0161 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158814. .INDENT 2.0
  158815. .IP \(bu 2
  158816. 1f99e28 Let\(aqs not include raet by default
  158817. .UNINDENT
  158818. .IP \(bu 2
  158819. 4306779 Merge branch \(aq2017.7.9\(aq into 2017.7
  158820. .INDENT 2.0
  158821. .IP \(bu 2
  158822. 36ed50d Lock to unittest\-xml\-reporting 2.2.1
  158823. .UNINDENT
  158824. .IP \(bu 2
  158825. 3e6cb79 Merge branch \(aq2017.7.9\(aq into 2017.7
  158826. .INDENT 2.0
  158827. .IP \(bu 2
  158828. 57348ca Add static requirements for Arch linux
  158829. .IP \(bu 2
  158830. cc6fb46 Additionally ignore files in nox virtualenvs and CI artifacts directories
  158831. .UNINDENT
  158832. .IP \(bu 2
  158833. bf9c55e Previously have setuptools\-git installed if ioflo is to be installed
  158834. .IP \(bu 2
  158835. 973e1ca Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158836. .INDENT 2.0
  158837. .IP \(bu 2
  158838. 981335a Revert "Avoid a traceback on tornado.testing test classes"
  158839. .UNINDENT
  158840. .IP \(bu 2
  158841. f48ba6a Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158842. .INDENT 2.0
  158843. .IP \(bu 2
  158844. b039cec Windows now has a static requirements file and no longer needs hacks
  158845. .IP \(bu 2
  158846. a86af2b Merge pull request \fI\%#52226\fP from dwoz/jenkins_build
  158847. .INDENT 2.0
  158848. .IP \(bu 2
  158849. 8c0f46b Use windows state to bootstrap windows builds
  158850. .UNINDENT
  158851. .IP \(bu 2
  158852. 7263956 Lock coverage and xml\-unittest\-reporting versions
  158853. .IP \(bu 2
  158854. dce4ffa Avoid a traceback on tornado.testing test classes
  158855. .UNINDENT
  158856. .UNINDENT
  158857. .UNINDENT
  158858. .UNINDENT
  158859. .IP \(bu 2
  158860. \fBPR\fP \fI\%#52314\fP: (\fI\%twangboy\fP) Add the ability to pass a timeout to beacons
  158861. @ \fI2019\-03\-27 19:11:13 UTC\fP
  158862. .INDENT 2.0
  158863. .IP \(bu 2
  158864. d3f4c9d Merge pull request \fI\%#52314\fP from twangboy/fix_beacon_tests
  158865. .IP \(bu 2
  158866. a5fa99a Add missing **kwargs
  158867. .IP \(bu 2
  158868. 7e88d04 Add the ability to pass a timeout to beacons
  158869. .UNINDENT
  158870. .IP \(bu 2
  158871. \fBPR\fP \fI\%#52311\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158872. @ \fI2019\-03\-26 18:31:32 UTC\fP
  158873. .INDENT 2.0
  158874. .IP \(bu 2
  158875. bad4e47 Merge pull request \fI\%#52311\fP from garethgreenaway/merge\-2019.2
  158876. .IP \(bu 2
  158877. 11cd485 Merge branch \(aq2018.3\(aq into merge\-2019.2
  158878. .IP \(bu 2
  158879. 582d306 Merge pull request \fI\%#52307\fP from Akm0d/doc_fix
  158880. .INDENT 2.0
  158881. .IP \(bu 2
  158882. 4da0fd6 Fix x509 inconsistent file name in state example
  158883. .UNINDENT
  158884. .IP \(bu 2
  158885. 2cdf48e Merge pull request \fI\%#52276\fP from terminal\-labs/replace\-github\-dead\-link
  158886. .INDENT 2.0
  158887. .IP \(bu 2
  158888. a2fbbe0 Merge branch \(aq2018.3\(aq into replace\-github\-dead\-link
  158889. .UNINDENT
  158890. .IP \(bu 2
  158891. 8fa0e51 Merge pull request \fI\%#52290\fP from Akm0d/doc_fix
  158892. .INDENT 2.0
  158893. .IP \(bu 2
  158894. ca00e4b Merge branch \(aq2018.3\(aq of github.com:saltstack/salt into doc_fix
  158895. .IP \(bu 2
  158896. 8e1ec15 Add missing master/minion docs for log_rotate*
  158897. .INDENT 2.0
  158898. .IP \(bu 2
  158899. 08728cf Merge branch \(aq2018.3\(aq into replace\-github\-dead\-link
  158900. .UNINDENT
  158901. .UNINDENT
  158902. .IP \(bu 2
  158903. d2fd84f Merge pull request \fI\%#51724\fP from clinta/docker\-create\-with\-ip
  158904. .INDENT 2.0
  158905. .IP \(bu 2
  158906. c933663 Merge branch \(aq2018.3\(aq into docker\-create\-with\-ip
  158907. .UNINDENT
  158908. .IP \(bu 2
  158909. 838a7aa Merge pull request \fI\%#51753\fP from terminal\-labs/docs\-sphinx\-ref\-deadlink\-fix
  158910. .INDENT 2.0
  158911. .IP \(bu 2
  158912. f2b6abd Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158913. .IP \(bu 2
  158914. 9857f53 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158915. .IP \(bu 2
  158916. 8a11d27 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158917. .IP \(bu 2
  158918. 842ec84 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158919. .IP \(bu 2
  158920. 9275207 Merge branch \(aq2017.7\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158921. .IP \(bu 2
  158922. 2330c2a makefile had an old sphinx\-doc link, updated to new general front page of sphinx docs.
  158923. .IP \(bu 2
  158924. 8d70e3b Replaced all bad sphinx links with ones from the new sphinx doc site.
  158925. .IP \(bu 2
  158926. ebdffcd replaced two python sphinx deadlinks with sphinx new relevant documentation pages.
  158927. .INDENT 2.0
  158928. .INDENT 3.5
  158929. .INDENT 0.0
  158930. .IP \(bu 2
  158931. a4e3e34 Merge branch \(aq2018.3\(aq into docker\-create\-with\-ip
  158932. .UNINDENT
  158933. .UNINDENT
  158934. .UNINDENT
  158935. .UNINDENT
  158936. .IP \(bu 2
  158937. efb9ec0 Merge pull request \fI\%#52215\fP from garethgreenaway/bp\-52212
  158938. .INDENT 2.0
  158939. .IP \(bu 2
  158940. 65857ef Merge branch \(aq2018.3\(aq into bp\-52212
  158941. .IP \(bu 2
  158942. a96bf24 Back\-port PR \fI\%#52212\fP to 2018.3
  158943. .INDENT 2.0
  158944. .INDENT 3.5
  158945. .INDENT 0.0
  158946. .IP \(bu 2
  158947. c6e553c add networking_config to container_create for custom network_mode
  158948. .IP \(bu 2
  158949. 5c99dbd add test to expose ip not added to custom network \fI\%#51723\fP
  158950. .UNINDENT
  158951. .UNINDENT
  158952. .UNINDENT
  158953. .UNINDENT
  158954. .IP \(bu 2
  158955. 679c4b2 Merge pull request \fI\%#52269\fP from garethgreenaway/merge\-2018.3
  158956. .INDENT 2.0
  158957. .IP \(bu 2
  158958. ee58560 Merge branch \(aq2018.3\(aq into merge\-2018.3
  158959. .UNINDENT
  158960. .IP \(bu 2
  158961. 418e543 Merge pull request \fI\%#52261\fP from dwoz/update_kitchen
  158962. .INDENT 2.0
  158963. .IP \(bu 2
  158964. a87c6ea Use windows state to bootstrap windows builds
  158965. .IP \(bu 2
  158966. 1aa1bd8 Merge branch \(aq2017.7\(aq into merge\-2018.3
  158967. .IP \(bu 2
  158968. 2962e94 Lock coverage and xml\-unittest\-reporting versions
  158969. .IP \(bu 2
  158970. 595303b Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158971. .INDENT 2.0
  158972. .IP \(bu 2
  158973. 55e150c Proper setup and teardown
  158974. .IP \(bu 2
  158975. b9b6009 Don\(aqt run distro on windows
  158976. .IP \(bu 2
  158977. 3cb5c82 Merge pull request \fI\%#52208\fP from s0undt3ch/2017.7.9
  158978. .UNINDENT
  158979. .IP \(bu 2
  158980. b14dbc9 Merge branch \(aq2017.7.9\(aq into 2017.7
  158981. .INDENT 2.0
  158982. .IP \(bu 2
  158983. 6a789a1 Update static requirements
  158984. .IP \(bu 2
  158985. cee9480 Lock PyYAML to < 5.1
  158986. .IP \(bu 2
  158987. a4f241d The kitchen nox verifier already takes care of the sinlge \fI\-v\fP flag.
  158988. .IP \(bu 2
  158989. 0cb641e Fix static requirements search bad logic
  158990. .IP \(bu 2
  158991. 45a3e4a \fIdistro\fP reports Opensuse 15 as Opensuse Leap 15
  158992. .IP \(bu 2
  158993. de7bb24 Ubuntu 18.04 locked requirements files
  158994. .IP \(bu 2
  158995. bc08e3c Ubuntu 16.04 locked requirements files
  158996. .IP \(bu 2
  158997. 0d353d2 Ubuntu 14.04 locked requirements files
  158998. .IP \(bu 2
  158999. 1186122 Opensuse 42 locked requirements files
  159000. .IP \(bu 2
  159001. fa6888b Opensuse 15 locked requirements files
  159002. .IP \(bu 2
  159003. b6578b8 Fedora 29 locked requirements files
  159004. .IP \(bu 2
  159005. 777dbb0 Fedora 28 locked requirements files
  159006. .IP \(bu 2
  159007. 4388fa9 Debian 9 locked requirements files
  159008. .IP \(bu 2
  159009. 2f9030f Debian 8 locked requirements files
  159010. .IP \(bu 2
  159011. 1b18ec5 CentOS 7 locked requirements files
  159012. .IP \(bu 2
  159013. 6e9f0c0 CentOS 6 locked requirements
  159014. .IP \(bu 2
  159015. 7415846 Start handling static(and platform specific) requirements files
  159016. .IP \(bu 2
  159017. ea4d370 Allow overriding some requirements based on distro information
  159018. .IP \(bu 2
  159019. 17017a1 Merge pull request \fI\%#51361\fP from olipovch/cloud\-sync\-after\-install
  159020. .INDENT 2.0
  159021. .IP \(bu 2
  159022. 8fde3a0 Merge branch \(aq2017.7\(aq into cloud\-sync\-after\-install
  159023. .IP \(bu 2
  159024. ab00151 Fix salt\-cloud sync_after_install functionality
  159025. .UNINDENT
  159026. .UNINDENT
  159027. .IP \(bu 2
  159028. ff54f53 The kitchen nox verifier already takes care of the sinlge \fI\-v\fP flag.
  159029. .IP \(bu 2
  159030. a2aa708 Fix static requirements search bad logic
  159031. .IP \(bu 2
  159032. 621b047 \fIdistro\fP reports Opensuse 15 as Opensuse Leap 15
  159033. .IP \(bu 2
  159034. bc00a26 Ubuntu 18.04 locked requirements files
  159035. .IP \(bu 2
  159036. d5ed9e1 Ubuntu 16.04 locked requirements files
  159037. .IP \(bu 2
  159038. 03879bf Ubuntu 14.04 locked requirements files
  159039. .IP \(bu 2
  159040. c3d7a18 Opensuse 42 locked requirements files
  159041. .IP \(bu 2
  159042. b29d986 Opensuse 15 locked requirements files
  159043. .IP \(bu 2
  159044. 73154d0 Fedora 29 locked requirements files
  159045. .IP \(bu 2
  159046. bf36cd4 Fedora 28 locked requirements files
  159047. .IP \(bu 2
  159048. 52cc5bb Debian 9 locked requirements files
  159049. .IP \(bu 2
  159050. cb4a823 Debian 8 locked requirements files
  159051. .IP \(bu 2
  159052. 2128a79 CentOS 7 locked requirements files
  159053. .IP \(bu 2
  159054. 4a29e93 CentOS 6 locked requirements
  159055. .IP \(bu 2
  159056. 0d96e64 Start handling static(and platform specific) requirements files
  159057. .UNINDENT
  159058. .IP \(bu 2
  159059. 0fc82bd Merge pull request \fI\%#52193\fP from Ch3LL/bp\-47005
  159060. .INDENT 2.0
  159061. .IP \(bu 2
  159062. 1a54fd1 Merge branch \(aq2018.3\(aq into bp\-47005
  159063. .UNINDENT
  159064. .IP \(bu 2
  159065. 0f3cd2a Merge pull request \fI\%#52194\fP from Ch3LL/bp\-52149
  159066. .INDENT 2.0
  159067. .IP \(bu 2
  159068. bff3f3c Merge branch \(aq2018.3\(aq into bp\-52149
  159069. .IP \(bu 2
  159070. 7e459a1 example names parameter in file.managed state
  159071. .INDENT 2.0
  159072. .IP \(bu 2
  159073. f68caa6 Merge branch \(aq2018.3\(aq into bp\-47005
  159074. .UNINDENT
  159075. .UNINDENT
  159076. .IP \(bu 2
  159077. 85be178 Merge pull request \fI\%#52201\fP from max\-arnold/rename\-beacon\-validate
  159078. .INDENT 2.0
  159079. .IP \(bu 2
  159080. e1e9a2b Merge branch \(aq2018.3\(aq into rename\-beacon\-validate
  159081. .UNINDENT
  159082. .IP \(bu 2
  159083. 0383ac3 Merge pull request \fI\%#52189\fP from Ch3LL/merge\-2018.3
  159084. .INDENT 2.0
  159085. .IP \(bu 2
  159086. 9972980 Merge branch \(aq2018.3\(aq into merge\-2018.3
  159087. .IP \(bu 2
  159088. 79962ab Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  159089. .INDENT 2.0
  159090. .IP \(bu 2
  159091. fd6068e Allow overriding some requirements based on distro information
  159092. .IP \(bu 2
  159093. 659ec11 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  159094. .INDENT 2.0
  159095. .IP \(bu 2
  159096. 18bbbec We need to nest require \fIreq_win.txt\fP
  159097. .UNINDENT
  159098. .IP \(bu 2
  159099. 956a84c Merge pull request \fI\%#51995\fP from s0undt3ch/2017.7
  159100. .INDENT 2.0
  159101. .IP \(bu 2
  159102. 0bf9d62 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  159103. .IP \(bu 2
  159104. baf776b Merge pull request \fI\%#51974\fP from s0undt3ch/features/nox\-2017.7
  159105. .IP \(bu 2
  159106. ee4df3a Lint fixes
  159107. .IP \(bu 2
  159108. 56f841f Windows needs special treatment
  159109. .IP \(bu 2
  159110. c3cb447 Requirements fixes
  159111. .IP \(bu 2
  159112. 6a67531 We need a fixed winrm\-fs so that dotfiles are also included
  159113. .IP \(bu 2
  159114. 15c6a53 use kitchen\-salt from my fork for now
  159115. .UNINDENT
  159116. .IP \(bu 2
  159117. b745332 Merge pull request \fI\%#51800\fP from dwoz/typo_fix
  159118. .INDENT 2.0
  159119. .IP \(bu 2
  159120. 5bbe5e0 Fix up docstring
  159121. .IP \(bu 2
  159122. 9f3c583 Fix typo in docstring
  159123. .INDENT 2.0
  159124. .IP \(bu 2
  159125. 75acce1 Rename obsolete beacon validation function
  159126. .IP \(bu 2
  159127. d1700f3 Merge branch \(aq2018.3\(aq into bp\-47005
  159128. .UNINDENT
  159129. .UNINDENT
  159130. .UNINDENT
  159131. .UNINDENT
  159132. .IP \(bu 2
  159133. 03f228d Merge pull request \fI\%#52112\fP from Ch3LL/proxy_gs
  159134. .INDENT 2.0
  159135. .IP \(bu 2
  159136. 7ad4758 Update device names in proxy getting started docs
  159137. .INDENT 2.0
  159138. .INDENT 3.5
  159139. .INDENT 0.0
  159140. .IP \(bu 2
  159141. 25ae7c8 remove freebsd\-upstream reference
  159142. .IP \(bu 2
  159143. b70c45c Remove salt FreeBSD repo which is now 2 years out of date
  159144. .INDENT 2.0
  159145. .INDENT 3.5
  159146. .INDENT 0.0
  159147. .IP \(bu 2
  159148. 62e5404 github issue tracker link and sends you to the url for listed issues.
  159149. .IP \(bu 2
  159150. 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.
  159151. .UNINDENT
  159152. .UNINDENT
  159153. .UNINDENT
  159154. .UNINDENT
  159155. .UNINDENT
  159156. .UNINDENT
  159157. .UNINDENT
  159158. .UNINDENT
  159159. .IP \(bu 2
  159160. \fBPR\fP \fI\%#52190\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159161. @ \fI2019\-03\-23 01:09:33 UTC\fP
  159162. .INDENT 2.0
  159163. .IP \(bu 2
  159164. 3ac6dbd Merge pull request \fI\%#52190\fP from Ch3LL/merge\-2019.2
  159165. .IP \(bu 2
  159166. 68c02b9 Merge branch \(aq2019.2\(aq into merge\-2019.2
  159167. .UNINDENT
  159168. .IP \(bu 2
  159169. \fBPR\fP \fI\%#52240\fP: (\fI\%soer7022\fP) Fix Typos "swtich" to "switch"
  159170. @ \fI2019\-03\-23 00:08:50 UTC\fP
  159171. .INDENT 2.0
  159172. .IP \(bu 2
  159173. f5fc807 Merge pull request \fI\%#52240\fP from soer7022/patch\-2
  159174. .IP \(bu 2
  159175. d130832 Merge branch \(aq2019.2\(aq into patch\-2
  159176. .IP \(bu 2
  159177. 3b6fdf8 Merge branch \(aq2019.2\(aq into patch\-2
  159178. .IP \(bu 2
  159179. 5db7a3f Fix Typos "swtich" to "switch"
  159180. .INDENT 2.0
  159181. .INDENT 3.5
  159182. .INDENT 0.0
  159183. .IP \(bu 2
  159184. 34d601e Merge branch \(aq2019.2\(aq into merge\-2019.2
  159185. .UNINDENT
  159186. .UNINDENT
  159187. .UNINDENT
  159188. .UNINDENT
  159189. .IP \(bu 2
  159190. \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)
  159191. .IP \(bu 2
  159192. \fBPR\fP \fI\%#52040\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to rsync state
  159193. @ \fI2019\-03\-21 19:08:19 UTC\fP
  159194. .INDENT 2.0
  159195. .IP \(bu 2
  159196. a00245e Merge pull request \fI\%#52040\fP from garethgreenaway/52036_rsync_state_no_changes_when_error
  159197. .IP \(bu 2
  159198. 09d1672 Merge branch \(aq2019.2\(aq into 52036_rsync_state_no_changes_when_error
  159199. .UNINDENT
  159200. .IP \(bu 2
  159201. \fBPR\fP \fI\%#51962\fP: (\fI\%Ch3LL\fP) Update 2019.2.0 release notes with other tojson example
  159202. @ \fI2019\-03\-21 16:37:43 UTC\fP
  159203. .INDENT 2.0
  159204. .IP \(bu 2
  159205. 5387821 Merge pull request \fI\%#51962\fP from Ch3LL/rn_update
  159206. .IP \(bu 2
  159207. f63bae9 Merge branch \(aq2019.2\(aq into rn_update
  159208. .UNINDENT
  159209. .IP \(bu 2
  159210. \fBPR\fP \fI\%#52262\fP: (\fI\%dwoz\fP) Use windows state to bootstrap windows builds
  159211. @ \fI2019\-03\-20 22:12:25 UTC\fP
  159212. .INDENT 2.0
  159213. .IP \(bu 2
  159214. 0fe7f28 Merge pull request \fI\%#52262\fP from dwoz/update_kitcen_2019.2
  159215. .IP \(bu 2
  159216. 49d529d Use windows state to bootstrap windows builds
  159217. .IP \(bu 2
  159218. e2c3f93 Merge branch \(aq2019.2\(aq into rn_update
  159219. .IP \(bu 2
  159220. 164398f Merge branch \(aq2019.2\(aq into rn_update
  159221. .IP \(bu 2
  159222. c04b2a0 Merge branch \(aq2019.2\(aq into rn_update
  159223. .IP \(bu 2
  159224. 9ca6e50 Update doc/topics/releases/2019.2.0.rst
  159225. .IP \(bu 2
  159226. 052f193 add additional formatting to 2019.2.0 release notes
  159227. .IP \(bu 2
  159228. a6ca59a Update 2019.2.0 release notes with other tojson example
  159229. .INDENT 2.0
  159230. .INDENT 3.5
  159231. .INDENT 0.0
  159232. .IP \(bu 2
  159233. 84cd46c Merge branch \(aq52036_rsync_state_no_changes_when_error\(aq of github.com:garethgreenaway/salt into 52036_rsync_state_no_changes_when_error
  159234. .INDENT 2.0
  159235. .IP \(bu 2
  159236. 4a126b3 Merge branch \(aq2019.2\(aq into 52036_rsync_state_no_changes_when_error
  159237. .UNINDENT
  159238. .IP \(bu 2
  159239. d5d3117 Removing debugging statements
  159240. .IP \(bu 2
  159241. 0fb859d Adding a test for the rsync state
  159242. .IP \(bu 2
  159243. 4c678e6 When the retcode is non\-zero, there are no changes so should include the default empty dictionary.
  159244. .IP \(bu 2
  159245. c6ba2e6 Fix lint for test_win_file
  159246. .IP \(bu 2
  159247. 9ada8d9 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  159248. .IP \(bu 2
  159249. f8c0266 Allow overriding some requirements based on distro information
  159250. .IP \(bu 2
  159251. c58c775 Merge pull request \fI\%#52035\fP from Ch3LL/bp\-52012
  159252. .INDENT 2.0
  159253. .IP \(bu 2
  159254. 37666bd Merge branch \(aq2018.3\(aq into bp\-52012
  159255. .UNINDENT
  159256. .IP \(bu 2
  159257. 54ff3fe Merge pull request \fI\%#51935\fP from Ch3LL/py3_doc
  159258. .INDENT 2.0
  159259. .IP \(bu 2
  159260. b217f94 Merge branch \(aq2018.3\(aq into py3_doc
  159261. .IP \(bu 2
  159262. 605bfaf Update futures dependency for python2 only
  159263. .IP \(bu 2
  159264. 072cd84 Update supported python versions in installation docs
  159265. .UNINDENT
  159266. .IP \(bu 2
  159267. 892cdae Merge pull request \fI\%#52038\fP from terminalmage/docs
  159268. .INDENT 2.0
  159269. .IP \(bu 2
  159270. 4d82146 Minor documentation tweak for file.replace state
  159271. .UNINDENT
  159272. .IP \(bu 2
  159273. a7a9754 Merge pull request \fI\%#51896\fP from twangboy/win_disks
  159274. .INDENT 2.0
  159275. .IP \(bu 2
  159276. 057d415 Merge branch \(aq2018.3\(aq into win_disks
  159277. .IP \(bu 2
  159278. 0d419e3 Fix some lint
  159279. .IP \(bu 2
  159280. aa61dab Add tests
  159281. .IP \(bu 2
  159282. 9f6ec53 Add all attached drives to the disks grain
  159283. .UNINDENT
  159284. .IP \(bu 2
  159285. 48d298c Merge pull request \fI\%#51918\fP from twangboy/fix_compat
  159286. .INDENT 2.0
  159287. .IP \(bu 2
  159288. a791901 Fix compat, add tests
  159289. .IP \(bu 2
  159290. 2837bb9 Fix _compat for py3
  159291. .UNINDENT
  159292. .IP \(bu 2
  159293. 02328a6 Merge pull request \fI\%#52030\fP from Ch3LL/bp\-52004
  159294. .INDENT 2.0
  159295. .IP \(bu 2
  159296. b4e3183 Fixed comparison of \fINone\fP with constants
  159297. .UNINDENT
  159298. .IP \(bu 2
  159299. aa82fcc Merge pull request \fI\%#52029\fP from Ch3LL/bp\-52003
  159300. .INDENT 2.0
  159301. .IP \(bu 2
  159302. fcac9f3 Skip Test on Non\-Windows systems
  159303. .IP \(bu 2
  159304. f42d17d Derive from LoaderModuleMockMixin
  159305. .IP \(bu 2
  159306. 5052017 Define __opts__ dict
  159307. .IP \(bu 2
  159308. b7b571e Define __opts__ dict
  159309. .IP \(bu 2
  159310. ee3ad08 Define __opts__ dict
  159311. .IP \(bu 2
  159312. 64d8451 Use default file module
  159313. .IP \(bu 2
  159314. 886ef19 Fix name of makedirs_ method
  159315. .IP \(bu 2
  159316. 4cc5f77 Check for path to be a symlink
  159317. .UNINDENT
  159318. .IP \(bu 2
  159319. 5ff1725 Merge pull request \fI\%#52028\fP from Ch3LL/bp\-50384
  159320. .INDENT 2.0
  159321. .IP \(bu 2
  159322. 6493eb0 Fix issue \fI\%#50381\fP
  159323. .INDENT 2.0
  159324. .INDENT 3.5
  159325. .INDENT 0.0
  159326. .IP \(bu 2
  159327. f2b4ec8 Don\(aqt log debug messages during close
  159328. .UNINDENT
  159329. .UNINDENT
  159330. .UNINDENT
  159331. .UNINDENT
  159332. .IP \(bu 2
  159333. 7ab1281 Merge pull request \fI\%#51936\fP from gtmanfred/2018.3
  159334. .INDENT 2.0
  159335. .IP \(bu 2
  159336. faa3471 Merge branch \(aq2018.3\(aq into 2018.3
  159337. .UNINDENT
  159338. .IP \(bu 2
  159339. 2ebfa22 Merge pull request \fI\%#51967\fP from twangboy/add_compat_tests
  159340. .INDENT 2.0
  159341. .IP \(bu 2
  159342. 2056578 Merge branch \(aq2018.3\(aq into add_compat_tests
  159343. .IP \(bu 2
  159344. e85f004 Merge branch \(aq2018.3\(aq into add_compat_tests
  159345. .IP \(bu 2
  159346. ea69062 Fix lint
  159347. .IP \(bu 2
  159348. eb984f5 Add unit tests for _compat.py
  159349. .UNINDENT
  159350. .IP \(bu 2
  159351. c8e2971 Merge pull request \fI\%#51980\fP from Ch3LL/merge\-2018.3
  159352. .INDENT 2.0
  159353. .IP \(bu 2
  159354. 9adc19e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  159355. .INDENT 2.0
  159356. .IP \(bu 2
  159357. bfaa6a9 Merge pull request \fI\%#51895\fP from twangboy/win_update_2017.7
  159358. .INDENT 2.0
  159359. .IP \(bu 2
  159360. b2cb1eb Merge branch \(aq2017.7\(aq into win_update_2017.7
  159361. .UNINDENT
  159362. .IP \(bu 2
  159363. 7d6280d Merge pull request \fI\%#51875\fP from dwoz/avoid_ssl_race
  159364. .INDENT 2.0
  159365. .IP \(bu 2
  159366. e99654d Merge branch \(aq2017.7\(aq into avoid_ssl_race
  159367. .UNINDENT
  159368. .IP \(bu 2
  159369. c0bb1f7 Merge pull request \fI\%#51850\fP from waynew/cherry\-pick\-ping\-fix
  159370. .INDENT 2.0
  159371. .IP \(bu 2
  159372. 6da495f Fix linter
  159373. .IP \(bu 2
  159374. f78b360 fix reactor ping test
  159375. .UNINDENT
  159376. .IP \(bu 2
  159377. ad7a9ec Merge pull request \fI\%#51893\fP from twangboy/gate_zfs_2017.7
  159378. .INDENT 2.0
  159379. .IP \(bu 2
  159380. e0d58eb Gate zfs module on Windows
  159381. .IP \(bu 2
  159382. f758a10 Avoid race condition when initializing OpenSSL
  159383. .IP \(bu 2
  159384. 0f125db Add __virtual__ to win_update
  159385. .UNINDENT
  159386. .IP \(bu 2
  159387. 864d4be Merge pull request \fI\%#51770\fP from Ch3LL/doc_conf_2017
  159388. .INDENT 2.0
  159389. .IP \(bu 2
  159390. 25d9ca2 Update release versions for the 2017.7 branch
  159391. .UNINDENT
  159392. .IP \(bu 2
  159393. 3cf3099 Merge pull request \fI\%#51774\fP from terminal\-labs/py3\-server\-docs\-update
  159394. .INDENT 2.0
  159395. .IP \(bu 2
  159396. 1f00c89 Added in python 3 server according to the consensus from \fI\%#51748\fP
  159397. .IP \(bu 2
  159398. bfb9d87 added the python3 command for startign the python http server.
  159399. .UNINDENT
  159400. .IP \(bu 2
  159401. b4153d3 Merge pull request \fI\%#51757\fP from twangboy/fix_case_2017.7
  159402. .INDENT 2.0
  159403. .IP \(bu 2
  159404. 6b0b5d2 Fix failing py3 tests
  159405. .IP \(bu 2
  159406. feb29f3 Make recurse and directory case sensitive
  159407. .UNINDENT
  159408. .UNINDENT
  159409. .UNINDENT
  159410. .IP \(bu 2
  159411. 2c4dff6 Merge pull request \fI\%#51905\fP from aplanas/fix_mount
  159412. .INDENT 2.0
  159413. .IP \(bu 2
  159414. ac688df mount: fix extra \-t parameter
  159415. .UNINDENT
  159416. .IP \(bu 2
  159417. 4b2c8cc Merge pull request \fI\%#51815\fP from garethgreenaway/51673_multiple_file_sections_with_excludes
  159418. .INDENT 2.0
  159419. .IP \(bu 2
  159420. 58ef51d Merge branch \(aq2018.3\(aq into 51673_multiple_file_sections_with_excludes
  159421. .IP \(bu 2
  159422. 8c4485d Merge branch \(aq2018.3\(aq into 51673_multiple_file_sections_with_excludes
  159423. .IP \(bu 2
  159424. b55a894 Fixing some code that was not working correctly with Python 3.
  159425. .IP \(bu 2
  159426. 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.
  159427. .UNINDENT
  159428. .IP \(bu 2
  159429. 1bf3fc8 Merge pull request \fI\%#51867\fP from Oloremo/mysql\-module\-fix\-for\-python3
  159430. .INDENT 2.0
  159431. .IP \(bu 2
  159432. dfcfebd Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159433. .IP \(bu 2
  159434. b6d217c Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159435. .IP \(bu 2
  159436. 9745b0a Fixed typo
  159437. .IP \(bu 2
  159438. 8149e9e Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159439. .IP \(bu 2
  159440. 58d8a2e Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159441. .IP \(bu 2
  159442. f964962 Added handling of empty server_version
  159443. .IP \(bu 2
  159444. 58791e9 Decode mysql_version for python3 compatibility
  159445. .UNINDENT
  159446. .IP \(bu 2
  159447. 7f05abf Merge pull request \fI\%#51908\fP from garethgreenaway/51862_icinga_fixes
  159448. .INDENT 2.0
  159449. .IP \(bu 2
  159450. 233dbaf Adding __salt__ to utils/icinga so cmd.run_all is available.
  159451. .INDENT 2.0
  159452. .INDENT 3.5
  159453. .INDENT 0.0
  159454. .IP \(bu 2
  159455. 1e7490c update kubernetesmod in index.rst
  159456. .IP \(bu 2
  159457. 1f3be1c fix import in test
  159458. .IP \(bu 2
  159459. 8572c17 rename kubernetes module to kubernetesmod
  159460. .UNINDENT
  159461. .UNINDENT
  159462. .UNINDENT
  159463. .UNINDENT
  159464. .UNINDENT
  159465. .UNINDENT
  159466. .UNINDENT
  159467. .UNINDENT
  159468. .IP \(bu 2
  159469. \fBPR\fP \fI\%#52032\fP: (\fI\%Ch3LL\fP) Add azure state and execution modules to doc index
  159470. @ \fI2019\-03\-11 15:46:49 UTC\fP
  159471. .INDENT 2.0
  159472. .IP \(bu 2
  159473. 7d6b53c Merge pull request \fI\%#52032\fP from Ch3LL/fix_azure_docs
  159474. .IP \(bu 2
  159475. 8a8a5fa Add azure module ref pages and fix doc errors
  159476. .IP \(bu 2
  159477. 6a1d06a fix additional azure state module doc errors
  159478. .IP \(bu 2
  159479. 65d8f27 Update doc failures in azure modules
  159480. .IP \(bu 2
  159481. 92dbe2a Merge branch \(aq2019.2\(aq into fix_azure_docs
  159482. .UNINDENT
  159483. .IP \(bu 2
  159484. \fBPR\fP \fI\%#52037\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51201\fP into 2019.2
  159485. @ \fI2019\-03\-07 19:45:18 UTC\fP
  159486. .INDENT 2.0
  159487. .IP \(bu 2
  159488. \fBPR\fP \fI\%#51201\fP: (\fI\%terminalmage\fP) Lint: Fix str\-format\-in\-logging, len\-as\-condition, etc. (2) (refs: \fI\%#52037\fP)
  159489. .IP \(bu 2
  159490. 96935c9 Merge pull request \fI\%#52037\fP from Ch3LL/bp\-51201
  159491. .IP \(bu 2
  159492. 1fb0697 Remove develop modules not needed in 2019.2
  159493. .IP \(bu 2
  159494. e3adc2f Lint: Fix str\-format\-in\-logging, len\-as\-condition, etc. (2)
  159495. .UNINDENT
  159496. .IP \(bu 2
  159497. \fBPR\fP \fI\%#52034\fP: (\fI\%terminalmage\fP) fileclient: Fix traceback when template file cannot be cached
  159498. @ \fI2019\-03\-07 19:41:24 UTC\fP
  159499. .INDENT 2.0
  159500. .IP \(bu 2
  159501. 75398e4 Merge pull request \fI\%#52034\fP from terminalmage/fix\-get\-template
  159502. .IP \(bu 2
  159503. 744dfd9 fileclient: Fix traceback when template file cannot be cached
  159504. .UNINDENT
  159505. .IP \(bu 2
  159506. \fBPR\fP \fI\%#51984\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159507. @ \fI2019\-03\-07 17:58:42 UTC\fP
  159508. .INDENT 2.0
  159509. .IP \(bu 2
  159510. 7af4f5c Merge pull request \fI\%#51984\fP from Ch3LL/merge\-2019.2
  159511. .IP \(bu 2
  159512. 54ea40a Merge branch \(aq2019.2\(aq into merge\-2019.2
  159513. .IP \(bu 2
  159514. 227ddbb Fix linter
  159515. .IP \(bu 2
  159516. a168913 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  159517. .INDENT 2.0
  159518. .IP \(bu 2
  159519. c68744a Merge pull request \fI\%#51975\fP from s0undt3ch/features/nox\-2018.3
  159520. .INDENT 2.0
  159521. .IP \(bu 2
  159522. af4ae91 Lint fixes
  159523. .IP \(bu 2
  159524. 33955c9 Windows needs special treatment
  159525. .IP \(bu 2
  159526. d4f899f Requirements fixes
  159527. .IP \(bu 2
  159528. e550c60 We need a fixed winrm\-fs so that dotfiles are also included
  159529. .IP \(bu 2
  159530. ada1ef3 use kitchen\-salt from my fork for now
  159531. .UNINDENT
  159532. .IP \(bu 2
  159533. a689177 Merge pull request \fI\%#51807\fP from Ch3LL/2018.3.5_rn
  159534. .INDENT 2.0
  159535. .IP \(bu 2
  159536. 2c0b85c Add 2018.3.5 release notes
  159537. .UNINDENT
  159538. .IP \(bu 2
  159539. 6aee2c4 Merge pull request \fI\%#51806\fP from twangboy/fix_beacon
  159540. .INDENT 2.0
  159541. .IP \(bu 2
  159542. 2bf6179 Fix some lint
  159543. .IP \(bu 2
  159544. 0f38eea Add lowercase test
  159545. .IP \(bu 2
  159546. 1459985 Make sure drive letter is uppercase for re compare
  159547. .IP \(bu 2
  159548. 7cdc660 Add some tests
  159549. .IP \(bu 2
  159550. 48ae8c6 Fix disk.usage beacon on Windows
  159551. .UNINDENT
  159552. .IP \(bu 2
  159553. da815ba Merge pull request \fI\%#51966\fP from twangboy/use_winapi_com
  159554. .INDENT 2.0
  159555. .IP \(bu 2
  159556. a38300b Use winapi.com instead of coinitialize
  159557. .UNINDENT
  159558. .IP \(bu 2
  159559. 7673c69 Merge pull request \fI\%#51920\fP from twangboy/add_zabbix
  159560. .INDENT 2.0
  159561. .IP \(bu 2
  159562. e2d496c Add zabbix to the Windows builds
  159563. .UNINDENT
  159564. .IP \(bu 2
  159565. 77c2796 Merge pull request \fI\%#51802\fP from garethgreenaway/merge\-2018.3.4
  159566. .INDENT 2.0
  159567. .IP \(bu 2
  159568. 2e20939 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159569. .IP \(bu 2
  159570. 769f002 Merge branch \(aq2018.3.4\(aq into merge\-2018.3.4
  159571. .INDENT 2.0
  159572. .IP \(bu 2
  159573. b53a843 Merge pull request \fI\%#51713\fP from dwoz/gemstestagain_2018.3.4
  159574. .INDENT 2.0
  159575. .IP \(bu 2
  159576. f2c6631 Merge branch \(aq2018.3.4\(aq into gemstestagain_2018.3.4
  159577. .IP \(bu 2
  159578. 1c82d24 Fix ruby gems tests, again
  159579. .UNINDENT
  159580. .UNINDENT
  159581. .UNINDENT
  159582. .IP \(bu 2
  159583. 496525d Merge pull request \fI\%#51930\fP from Ch3LL/release_docs
  159584. .INDENT 2.0
  159585. .IP \(bu 2
  159586. 9a68136 Update release documentation
  159587. .UNINDENT
  159588. .IP \(bu 2
  159589. a027c97 Merge pull request \fI\%#51931\fP from Ch3LL/bp_51298
  159590. .INDENT 2.0
  159591. .IP \(bu 2
  159592. 873cabd Roll back some changes to _compat.py
  159593. .IP \(bu 2
  159594. 1fcb0ff Fix edge case when minion ID is a 16\-character string
  159595. .UNINDENT
  159596. .IP \(bu 2
  159597. 1fa2072 Merge pull request \fI\%#51892\fP from twangboy/gate_zfs
  159598. .INDENT 2.0
  159599. .IP \(bu 2
  159600. fbc2c0c Gate zfs grain on Windows
  159601. .UNINDENT
  159602. .IP \(bu 2
  159603. 89b0991 Merge pull request \fI\%#51836\fP from stratusjerry/backport_49039_2018.3
  159604. .INDENT 2.0
  159605. .IP \(bu 2
  159606. 35fdc4c Update win_pkg.py
  159607. .UNINDENT
  159608. .IP \(bu 2
  159609. c1ab63d Merge pull request \fI\%#51771\fP from Ch3LL/doc_conf_2018
  159610. .INDENT 2.0
  159611. .IP \(bu 2
  159612. 904beb3 [2018.3] change build_type and release in doc/conf.py
  159613. .IP \(bu 2
  159614. 3efcea5 Update release versions for the 2018.3 branch
  159615. .UNINDENT
  159616. .IP \(bu 2
  159617. 98f1b03 Merge pull request \fI\%#51775\fP from garethgreenaway/merge\-2017.7
  159618. .INDENT 2.0
  159619. .IP \(bu 2
  159620. 92ffe03 fixing lint
  159621. .IP \(bu 2
  159622. 73b601d Merge branch \(aq2017.7\(aq into merge\-2017.7
  159623. .IP \(bu 2
  159624. e04f735 Merge pull request \fI\%#51502\fP from ogd\-software/51501\-states\-boto3_route53.py\-fails\-to\-validate\-ALIAS\-A\-records
  159625. .INDENT 2.0
  159626. .IP \(bu 2
  159627. e69ce9d Merge branch \(aq2017.7\(aq into 51501\-states\-boto3_route53.py\-fails\-to\-validate\-ALIAS\-A\-records
  159628. .IP \(bu 2
  159629. 5093406 Implement PEP8 E711 styling fix
  159630. .IP \(bu 2
  159631. 7640e90 Ensure boto3_route53 correctly validates existing ALIAS records
  159632. .IP \(bu 2
  159633. ff633b0 Ensure boto3_route53 survives attempts to validate ALIAS records
  159634. .UNINDENT
  159635. .IP \(bu 2
  159636. 9c128aa Merge pull request \fI\%#51732\fP from s0undt3ch/features/nox\-2017.7
  159637. .INDENT 2.0
  159638. .IP \(bu 2
  159639. 328989d Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159640. .UNINDENT
  159641. .IP \(bu 2
  159642. 99ce48d Merge pull request \fI\%#51712\fP from dwoz/gemstestagain
  159643. .INDENT 2.0
  159644. .IP \(bu 2
  159645. 0d3b227 Fix ruby gems tests, again
  159646. .UNINDENT
  159647. .IP \(bu 2
  159648. 18452c4 Merge pull request \fI\%#51528\fP from twangboy/backport_51471
  159649. .INDENT 2.0
  159650. .IP \(bu 2
  159651. 8c79f02 Merge branch \(aq2017.7\(aq into backport_51471
  159652. .IP \(bu 2
  159653. 20a7ee5 Backport 51471
  159654. .UNINDENT
  159655. .IP \(bu 2
  159656. ee80ce3 Merge pull request \fI\%#51655\fP from garethgreenaway/49661_starting_salt_master_openssl
  159657. .INDENT 2.0
  159658. .IP \(bu 2
  159659. f647b95 Merge branch \(aq2017.7\(aq into 49661_starting_salt_master_openssl
  159660. .IP \(bu 2
  159661. 1831e64 Removing options from libcrypto.OPENSSL_init_crypto so it will simply use the defaults.
  159662. .IP \(bu 2
  159663. 8d0f801 removing salt.crypt from payload.py which is not used and causing salt\-key to break.
  159664. .IP \(bu 2
  159665. a5a54c4 Removing unused import which is causing salt\-master to not start when using openssl 1.1.1\-1.
  159666. .INDENT 2.0
  159667. .INDENT 3.5
  159668. .INDENT 0.0
  159669. .IP \(bu 2
  159670. c9c082c Fix azurearm field list doc error
  159671. .IP \(bu 2
  159672. af0537f Add azure state and execution modules to doc index
  159673. .UNINDENT
  159674. .UNINDENT
  159675. .UNINDENT
  159676. .UNINDENT
  159677. .UNINDENT
  159678. .UNINDENT
  159679. .UNINDENT
  159680. .IP \(bu 2
  159681. \fBPR\fP \fI\%#52004\fP: (\fI\%chdamianos\fP) Fixed comparison of \fINone\fP with constants (refs: \fI\%#52030\fP)
  159682. @ \fI2019\-03\-06 17:41:52 UTC\fP
  159683. .INDENT 2.0
  159684. .IP \(bu 2
  159685. 01bcff0 Merge pull request \fI\%#52004\fP from chdamianos/fix\-constants\-comparison
  159686. .IP \(bu 2
  159687. 6fd60af Fixed comparison of \fINone\fP with constants
  159688. .UNINDENT
  159689. .IP \(bu 2
  159690. \fBPR\fP \fI\%#51981\fP: (\fI\%bryceml\fP) Fix typo in 2019.2.0 release notes
  159691. @ \fI2019\-03\-05 23:59:33 UTC\fP
  159692. .INDENT 2.0
  159693. .IP \(bu 2
  159694. 8d6bb5d Merge pull request \fI\%#51981\fP from bryceml/2019.2
  159695. .IP \(bu 2
  159696. ecf0ef0 Fix typo in 2019.2.0 release notes
  159697. .INDENT 2.0
  159698. .INDENT 3.5
  159699. .INDENT 0.0
  159700. .IP \(bu 2
  159701. a65e621 Adding an additional note warning that the file will not be changed because test=True, but could be changed by other states.
  159702. .IP \(bu 2
  159703. 6c0dcf2 Swapping pchanges for changes in file state.
  159704. .UNINDENT
  159705. .UNINDENT
  159706. .UNINDENT
  159707. .UNINDENT
  159708. .IP \(bu 2
  159709. \fBISSUE\fP \fI\%#51825\fP: (\fI\%OrangeDog\fP) schedule.disable doesn\(aqt work in 2019.2.0 (refs: \fI\%#51855\fP)
  159710. .IP \(bu 2
  159711. \fBPR\fP \fI\%#51855\fP: (\fI\%garethgreenaway\fP) [2019.2] Global enable/disable was being ignored
  159712. @ \fI2019\-03\-05 19:40:34 UTC\fP
  159713. .INDENT 2.0
  159714. .IP \(bu 2
  159715. c3105df Merge pull request \fI\%#51855\fP from garethgreenaway/51825_scheduled_global_enabled
  159716. .IP \(bu 2
  159717. 301e773 Merge branch \(aq51825_scheduled_global_enabled\(aq of github.com:garethgreenaway/salt into 51825_scheduled_global_enabled
  159718. .INDENT 2.0
  159719. .IP \(bu 2
  159720. ae7ab06 Merge branch \(aq2019.2\(aq into 51825_scheduled_global_enabled
  159721. .IP \(bu 2
  159722. ff13833 Merge branch \(aq2019.2\(aq into 51825_scheduled_global_enabled
  159723. .UNINDENT
  159724. .IP \(bu 2
  159725. 9e7e4ed Fixing broken add_job test.
  159726. .IP \(bu 2
  159727. 72466a5 Global enable/disable was being ignored
  159728. .UNINDENT
  159729. .IP \(bu 2
  159730. \fBISSUE\fP \fI\%#51745\fP: (\fI\%fayak\fP) Systemd update 241 on archlinux breaks systemd.py version() function (refs: \fI\%#51946\fP)
  159731. .IP \(bu 2
  159732. \fBPR\fP \fI\%#51946\fP: (\fI\%Ethyling\fP) Fix retrieve systemd version using regex
  159733. @ \fI2019\-03\-05 19:20:19 UTC\fP
  159734. .INDENT 2.0
  159735. .IP \(bu 2
  159736. be28623 Merge pull request \fI\%#51946\fP from Ethyling/fix\-systemd\-version
  159737. .IP \(bu 2
  159738. b557707 Add test for systemd version from git describe
  159739. .IP \(bu 2
  159740. 94809d0 Fix retrieve systemd version using regex
  159741. .UNINDENT
  159742. .IP \(bu 2
  159743. \fBISSUE\fP \fI\%#51816\fP: (\fI\%jkrauz\fP) pillar_ldap broken in 2019.2.0 (refs: \fI\%#51964\fP)
  159744. .IP \(bu 2
  159745. \fBPR\fP \fI\%#51964\fP: (\fI\%dwoz\fP) [2019.2] Make sure ldap attrs are string types on python 2
  159746. @ \fI2019\-03\-05 19:18:30 UTC\fP
  159747. .INDENT 2.0
  159748. .IP \(bu 2
  159749. c310022 Merge pull request \fI\%#51964\fP from dwoz/issue_51816
  159750. .IP \(bu 2
  159751. a879140 Merge branch \(aq2019.2\(aq into issue_51816
  159752. .IP \(bu 2
  159753. 0e61cf3 Fix linter errors/warnings
  159754. .IP \(bu 2
  159755. 171217a Revert debug logging
  159756. .IP \(bu 2
  159757. 8c641c6 make LDAP attr defaults string types on py2
  159758. .UNINDENT
  159759. .IP \(bu 2
  159760. \fBPR\fP \fI\%#51976\fP: (\fI\%s0undt3ch\fP) [2019.2] Nox fixes
  159761. @ \fI2019\-03\-05 18:56:49 UTC\fP
  159762. .INDENT 2.0
  159763. .IP \(bu 2
  159764. cb817f1 Merge pull request \fI\%#51976\fP from s0undt3ch/features/nox\-2019.2
  159765. .IP \(bu 2
  159766. 0b4e68c Lint fixes
  159767. .IP \(bu 2
  159768. 257b3fc Windows needs special treatment
  159769. .IP \(bu 2
  159770. b298da0 Requirements fixes
  159771. .IP \(bu 2
  159772. 4f45a7e We need a fixed winrm\-fs so that dotfiles are also included
  159773. .IP \(bu 2
  159774. fa70af2 use kitchen\-salt from my fork for now
  159775. .UNINDENT
  159776. .IP \(bu 2
  159777. \fBPR\fP \fI\%#51761\fP: (\fI\%sdodsley\fP) Add new module to release notes for 2019.2.0
  159778. @ \fI2019\-03\-05 09:44:56 UTC\fP
  159779. .INDENT 2.0
  159780. .IP \(bu 2
  159781. \fBPR\fP \fI\%#51681\fP: (\fI\%sdodsley\fP) Add new module to release notes for 2019.2.0 (refs: \fI\%#51761\fP)
  159782. .IP \(bu 2
  159783. f867e6e Merge pull request \fI\%#51761\fP from sdodsley/cheery_pick_fb_releasenotes
  159784. .IP \(bu 2
  159785. 80192c8 Add new module to release notes for 2019.2.0
  159786. .UNINDENT
  159787. .IP \(bu 2
  159788. \fBPR\fP \fI\%#51799\fP: (\fI\%s0undt3ch\fP) Catch attribute error
  159789. @ \fI2019\-03\-05 09:38:08 UTC\fP
  159790. .INDENT 2.0
  159791. .IP \(bu 2
  159792. 08e3956 Merge pull request \fI\%#51799\fP from s0undt3ch/2019.2
  159793. .IP \(bu 2
  159794. 342244a Merge branch \(aq2019.2\(aq into 2019.2
  159795. .IP \(bu 2
  159796. 3e8a17e Catch attribute error
  159797. .UNINDENT
  159798. .IP \(bu 2
  159799. \fBPR\fP \fI\%#51810\fP: (\fI\%Ch3LL\fP) Add 2019.2.1 release notes
  159800. @ \fI2019\-03\-05 09:26:47 UTC\fP
  159801. .INDENT 2.0
  159802. .IP \(bu 2
  159803. ff5d7d6 Merge pull request \fI\%#51810\fP from Ch3LL/2019.2.1_rn
  159804. .IP \(bu 2
  159805. aaee5fa Add 2019.2.1 release notes
  159806. .UNINDENT
  159807. .IP \(bu 2
  159808. \fBISSUE\fP \fI\%#51824\fP: (\fI\%OrangeDog\fP) schedule.present state not idempotent in 2019.2.0 (refs: \fI\%#51849\fP)
  159809. .IP \(bu 2
  159810. \fBPR\fP \fI\%#51849\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to schedule.list function to filter out attributes that are None
  159811. @ \fI2019\-03\-01 19:56:17 UTC\fP
  159812. .INDENT 2.0
  159813. .IP \(bu 2
  159814. \fBPR\fP \fI\%#51647\fP: (\fI\%dwoz\fP) [develop] increase batch test timeout on windows (refs: \fI\%#51849\fP)
  159815. .IP \(bu 2
  159816. 3732004 Merge pull request \fI\%#51849\fP from garethgreenaway/51824_splay_breaking_schedule_present
  159817. .IP \(bu 2
  159818. a0af441 Merge branch \(aq2019.2\(aq into 51824_splay_breaking_schedule_present
  159819. .UNINDENT
  159820. .IP \(bu 2
  159821. \fBPR\fP \fI\%#51878\fP: (\fI\%Ch3LL\fP) Add new terraform salt\-ssh roster feature to release notes
  159822. @ \fI2019\-02\-27 19:18:49 UTC\fP
  159823. .INDENT 2.0
  159824. .IP \(bu 2
  159825. 3fdb564 Merge pull request \fI\%#51878\fP from Ch3LL/terraform_rn
  159826. .IP \(bu 2
  159827. 502d197 fix spelling error in release notes
  159828. .IP \(bu 2
  159829. 4d53b41 Add new terraform salt\-ssh roster feature to release notes
  159830. .UNINDENT
  159831. .IP \(bu 2
  159832. \fBPR\fP \fI\%#51837\fP: (\fI\%stratusjerry\fP) Update win_pkg.py
  159833. @ \fI2019\-02\-26 16:51:35 UTC\fP
  159834. .INDENT 2.0
  159835. .IP \(bu 2
  159836. \fBPR\fP \fI\%#49039\fP: (\fI\%stratusjerry\fP) Update win_pkg.py (refs: \fI\%#51836\fP, \fI\%#51837\fP)
  159837. .IP \(bu 2
  159838. e63c872 Merge pull request \fI\%#51837\fP from stratusjerry/backport_49039_2019.2
  159839. .IP \(bu 2
  159840. 531b23d Update win_pkg.py
  159841. .IP \(bu 2
  159842. 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.
  159843. .UNINDENT
  159844. .IP \(bu 2
  159845. \fBPR\fP \fI\%#51772\fP: (\fI\%Ch3LL\fP) Update release versions for the 2019.2 branch
  159846. @ \fI2019\-02\-25 14:16:40 UTC\fP
  159847. .INDENT 2.0
  159848. .IP \(bu 2
  159849. 27dd9fb Merge pull request \fI\%#51772\fP from Ch3LL/doc_conf_2019
  159850. .IP \(bu 2
  159851. f28cc9b [2019.2] change build_type and release in doc/conf.py
  159852. .IP \(bu 2
  159853. 4c670e2 Update release versions for the 2019.2 branch
  159854. .UNINDENT
  159855. .IP \(bu 2
  159856. \fBPR\fP \fI\%#51776\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159857. @ \fI2019\-02\-24 22:08:58 UTC\fP
  159858. .INDENT 2.0
  159859. .IP \(bu 2
  159860. 45425a4 Merge pull request \fI\%#51776\fP from garethgreenaway/merge\-2018.3
  159861. .IP \(bu 2
  159862. 186306a reverting change in release notes, adding change to doc/ref/modules/all/index.rst.
  159863. .IP \(bu 2
  159864. 1ef140a Fixing lint.
  159865. .IP \(bu 2
  159866. 6173578 Fixing lint errors
  159867. .IP \(bu 2
  159868. 38dcab9 fixing lint
  159869. .IP \(bu 2
  159870. e37fc20 Merge branch \(aq2018.3\(aq into merge\-2018.3
  159871. .IP \(bu 2
  159872. 7e3e71c Merge pull request \fI\%#51756\fP from twangboy/fix_case_sensitive
  159873. .INDENT 2.0
  159874. .IP \(bu 2
  159875. 4c55040 Fix failing py3 tests
  159876. .IP \(bu 2
  159877. 64f45f8 Make recurse and directory case sensitive
  159878. .UNINDENT
  159879. .IP \(bu 2
  159880. e75fc1c Merge pull request \fI\%#51747\fP from ymasson/fix_mysql_grants
  159881. .INDENT 2.0
  159882. .IP \(bu 2
  159883. f614dd7 Fix escaping for special charaters
  159884. .UNINDENT
  159885. .IP \(bu 2
  159886. b1f7e85 Merge pull request \fI\%#51387\fP from chrillux/make\-binarydata\-output\-possible
  159887. .INDENT 2.0
  159888. .IP \(bu 2
  159889. 010393e Make binary data output possible
  159890. .UNINDENT
  159891. .IP \(bu 2
  159892. 3475813 Merge pull request \fI\%#51694\fP from assafShapira/2018.3
  159893. .INDENT 2.0
  159894. .IP \(bu 2
  159895. 895b97a Merge branch \(aq2018.3\(aq into 2018.3
  159896. .IP \(bu 2
  159897. 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
  159898. .UNINDENT
  159899. .IP \(bu 2
  159900. c7136cb Merge pull request \fI\%#51738\fP from garethgreenaway/nftables_cleanup
  159901. .INDENT 2.0
  159902. .IP \(bu 2
  159903. 8201d1e Fixing lint.
  159904. .IP \(bu 2
  159905. d681064 Merge branch \(aq2018.3\(aq into nftables_cleanup
  159906. .IP \(bu 2
  159907. e37458e Fixing a couple tests.
  159908. .IP \(bu 2
  159909. ed1b743 Additional cleanup. Adding additional documentation for state module.
  159910. .IP \(bu 2
  159911. dc4afbb More updates to nftables module, state modules, and unit tests.
  159912. .IP \(bu 2
  159913. 3ec96e3 initial work to cleanup the nftables module, state module, and the unit tests.
  159914. .UNINDENT
  159915. .IP \(bu 2
  159916. 2121049 Merge pull request \fI\%#51733\fP from s0undt3ch/features/nox\-2018.3
  159917. .INDENT 2.0
  159918. .IP \(bu 2
  159919. 97532c2 Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159920. .UNINDENT
  159921. .IP \(bu 2
  159922. f4adf33 Merge pull request \fI\%#51728\fP from gtmanfred/virtualnames
  159923. .INDENT 2.0
  159924. .IP \(bu 2
  159925. 61b4390 fix modulenames from virtualnames tests
  159926. .UNINDENT
  159927. .IP \(bu 2
  159928. d681fb9 Merge pull request \fI\%#51721\fP from dwoz/solarisipstests
  159929. .INDENT 2.0
  159930. .IP \(bu 2
  159931. 3263d31 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into solarisipstests
  159932. .UNINDENT
  159933. .IP \(bu 2
  159934. fb0a538 Merge pull request \fI\%#51676\fP from Ch3LL/merge\-2018.3.4
  159935. .INDENT 2.0
  159936. .IP \(bu 2
  159937. 8111479 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159938. .UNINDENT
  159939. .IP \(bu 2
  159940. e08f08d Merge pull request \fI\%#50812\fP from gtmanfred/virtualnames
  159941. .INDENT 2.0
  159942. .IP \(bu 2
  159943. d59952f Merge branch \(aq2018.3\(aq into virtualnames
  159944. .IP \(bu 2
  159945. 33bb5bf fix use of virtualname
  159946. .INDENT 2.0
  159947. .IP \(bu 2
  159948. 2ca1253 Merge branch \(aqmerge\-2018.3.4\(aq of github.com:Ch3LL/salt into merge\-2018.3.4
  159949. .INDENT 2.0
  159950. .IP \(bu 2
  159951. 6d6910a Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159952. .UNINDENT
  159953. .IP \(bu 2
  159954. b5a6265 Fix ruby gems tests, again
  159955. .IP \(bu 2
  159956. 05f2797 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159957. .IP \(bu 2
  159958. 9f0999f Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159959. .IP \(bu 2
  159960. 139daa8 Merge branch \(aq2018.3.4\(aq into 2018.3
  159961. .INDENT 2.0
  159962. .IP \(bu 2
  159963. 9741289 Merge pull request \fI\%#51646\fP from dwoz/batch_exit_2018.3.4
  159964. .INDENT 2.0
  159965. .IP \(bu 2
  159966. a8f25bb increase batch test timeout on windows
  159967. .INDENT 2.0
  159968. .INDENT 3.5
  159969. .INDENT 0.0
  159970. .IP \(bu 2
  159971. 9caafec Skip solarisips when not on solaris
  159972. .UNINDENT
  159973. .UNINDENT
  159974. .UNINDENT
  159975. .UNINDENT
  159976. .UNINDENT
  159977. .UNINDENT
  159978. .UNINDENT
  159979. .IP \(bu 2
  159980. 31c6785 Merge pull request \fI\%#51714\fP from dwoz/gemstestagain_2018.3
  159981. .INDENT 2.0
  159982. .IP \(bu 2
  159983. fab74bb Fix ruby gems tests, again
  159984. .UNINDENT
  159985. .IP \(bu 2
  159986. 39aadfb Merge pull request \fI\%#51689\fP from gtmanfred/2018.3
  159987. .INDENT 2.0
  159988. .IP \(bu 2
  159989. 8c35d51 fix import
  159990. .IP \(bu 2
  159991. 6a55cfdf specify minimum version of shade module
  159992. .UNINDENT
  159993. .IP \(bu 2
  159994. a475b70 Merge pull request \fI\%#51469\fP from s0undt3ch/hotfix/fix\-suse\-locale\-docker
  159995. .INDENT 2.0
  159996. .IP \(bu 2
  159997. 14f49b5 Don\(aqt prevent \fIget_locale\fP from working when running under docker
  159998. .UNINDENT
  159999. .IP \(bu 2
  160000. a59585d Merge pull request \fI\%#51671\fP from Ch3LL/merge\-2018.3
  160001. .INDENT 2.0
  160002. .IP \(bu 2
  160003. 64322db Fix is_windows utils call
  160004. .IP \(bu 2
  160005. a5c8df0 Fix pylint
  160006. .IP \(bu 2
  160007. 547889b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  160008. .INDENT 2.0
  160009. .IP \(bu 2
  160010. bcc13db Merge pull request \fI\%#51562\fP from gilbrechbuhler/fix_rabbitmq_policy_change_check
  160011. .INDENT 2.0
  160012. .IP \(bu 2
  160013. ed2b1e1 Fix RabbitMQ policy definition update check
  160014. .UNINDENT
  160015. .IP \(bu 2
  160016. cafaa98 Merge pull request \fI\%#51648\fP from dwoz/increase_wait
  160017. .INDENT 2.0
  160018. .IP \(bu 2
  160019. e2377a9 Merge branch \(aq2017.7\(aq into increase_wait
  160020. .UNINDENT
  160021. .IP \(bu 2
  160022. e3d28d9 Merge pull request \fI\%#51643\fP from dwoz/batch_exit
  160023. .INDENT 2.0
  160024. .IP \(bu 2
  160025. 42d1d02 increase batch test timeout on windows
  160026. .IP \(bu 2
  160027. 7c2d7a4 Increase minion wait for slow boxes
  160028. .UNINDENT
  160029. .IP \(bu 2
  160030. b5ae53a Merge pull request \fI\%#51631\fP from Ch3LL/lint\-2017
  160031. .INDENT 2.0
  160032. .IP \(bu 2
  160033. c0aa4dc Fix linter by ignoring async await check.
  160034. .IP \(bu 2
  160035. 396622c Merge branch \(aq2017.7\(aq into lint\-2017
  160036. .UNINDENT
  160037. .IP \(bu 2
  160038. ba8d0ea Merge pull request \fI\%#51547\fP from s0undt3ch/2017.7
  160039. .INDENT 2.0
  160040. .IP \(bu 2
  160041. 8e009e0 Allow NOT to install pip dependencies
  160042. .UNINDENT
  160043. .IP \(bu 2
  160044. 30ce509 Merge pull request \fI\%#51182\fP from lmf\-mx/darwin\-plist\-update
  160045. .INDENT 2.0
  160046. .IP \(bu 2
  160047. 4297c0d Merge branch \(aq2017.7\(aq into darwin\-plist\-update
  160048. .UNINDENT
  160049. .IP \(bu 2
  160050. 68ac07f Merge pull request \fI\%#51442\fP from dwoz/multi_master
  160051. .INDENT 2.0
  160052. .IP \(bu 2
  160053. 40cb4db Merge branch \(aq2017.7\(aq into multi_master
  160054. .IP \(bu 2
  160055. 2dc5171 Hanlde multi_master failover when daemonized
  160056. .UNINDENT
  160057. .IP \(bu 2
  160058. 8df083c Merge pull request \fI\%#51608\fP from dwoz/wait_minions_2017.7
  160059. .INDENT 2.0
  160060. .IP \(bu 2
  160061. c55359f fix linter
  160062. .IP \(bu 2
  160063. 4702e22 Wait for minions to be pingable before starting tests
  160064. .INDENT 2.0
  160065. .IP \(bu 2
  160066. 5afa0a1 Merge branch \(aq2017.7\(aq into darwin\-plist\-update
  160067. .IP \(bu 2
  160068. f46e8be Fix service name in minion plist
  160069. .INDENT 2.0
  160070. .INDENT 3.5
  160071. .INDENT 0.0
  160072. .IP \(bu 2
  160073. 1da9cd9 Fix pylint on 2017.7
  160074. .UNINDENT
  160075. .UNINDENT
  160076. .UNINDENT
  160077. .UNINDENT
  160078. .UNINDENT
  160079. .IP \(bu 2
  160080. 39122ca Merge pull request \fI\%#51589\fP from dwoz/script_fix_2017.7
  160081. .INDENT 2.0
  160082. .IP \(bu 2
  160083. 8697ce7 Disable pylint checks, only for 2017.7
  160084. .IP \(bu 2
  160085. e5972f5 Use the code directory instead of cwd for python path
  160086. .UNINDENT
  160087. .UNINDENT
  160088. .UNINDENT
  160089. .IP \(bu 2
  160090. b8764fd Merge pull request \fI\%#51680\fP from Ch3LL/bp\-50336
  160091. .INDENT 2.0
  160092. .IP \(bu 2
  160093. 3502dbb states.gpg: fix missing existing keys; modules.gpg: fix set trust level command
  160094. .UNINDENT
  160095. .UNINDENT
  160096. .IP \(bu 2
  160097. \fBPR\fP \fI\%#51734\fP: (\fI\%s0undt3ch\fP) [2019.2] Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  160098. @ \fI2019\-02\-21 17:39:29 UTC\fP
  160099. .INDENT 2.0
  160100. .IP \(bu 2
  160101. 1894082 Merge pull request \fI\%#51734\fP from s0undt3ch/features/nox\-2019.2
  160102. .IP \(bu 2
  160103. 01b74c0 Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  160104. .UNINDENT
  160105. .IP \(bu 2
  160106. \fBPR\fP \fI\%#51707\fP: (\fI\%isbm\fP) Bugfix: pillar refresh
  160107. @ \fI2019\-02\-21 15:12:49 UTC\fP
  160108. .INDENT 2.0
  160109. .IP \(bu 2
  160110. 74db589 Merge pull request \fI\%#51707\fP from isbm/isbm\-pillar\-refresh\-fix
  160111. .IP \(bu 2
  160112. 269ae76 Refresh matchers and beacons on pillar refresh
  160113. .UNINDENT
  160114. .IP \(bu 2
  160115. \fBPR\fP \fI\%#51674\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  160116. @ \fI2019\-02\-20 17:35:07 UTC\fP
  160117. .INDENT 2.0
  160118. .IP \(bu 2
  160119. 82cbd98 Merge pull request \fI\%#51674\fP from Ch3LL/merge\-2019.2
  160120. .IP \(bu 2
  160121. 4171271 Fix pylint, remove unused import
  160122. .IP \(bu 2
  160123. 3f14619 Remove skipif and change expected return for solarisips test
  160124. .IP \(bu 2
  160125. d3660d5 Merge branch \(aq2019.2\(aq into merge\-2019.2
  160126. .UNINDENT
  160127. .IP \(bu 2
  160128. \fBPR\fP \fI\%#51715\fP: (\fI\%dwoz\fP) [2019.2] Fix ruby gems tests, again
  160129. @ \fI2019\-02\-19 21:44:21 UTC\fP
  160130. .INDENT 2.0
  160131. .IP \(bu 2
  160132. 7a82c65 Merge pull request \fI\%#51715\fP from dwoz/gemstestagain_2019.2
  160133. .IP \(bu 2
  160134. 95ce288 Fix ruby gems tests, again
  160135. .IP \(bu 2
  160136. 043efa0 Skip solarisips when not on solaris
  160137. .IP \(bu 2
  160138. 7ed0d7d Fix ruby gems tests, again
  160139. .IP \(bu 2
  160140. b46eac3 Merge branch \(aq2019.2\(aq into merge\-2019.2
  160141. .UNINDENT
  160142. .IP \(bu 2
  160143. \fBPR\fP \fI\%#51561\fP: (\fI\%isbm\fP) SaltSSH: fix delay when creating thin TAR
  160144. @ \fI2019\-02\-19 10:15:47 UTC\fP
  160145. .INDENT 2.0
  160146. .IP \(bu 2
  160147. 0bd2d6e Merge pull request \fI\%#51561\fP from isbm/isbm\-saltssh\-thintar\-delay\-fix
  160148. .IP \(bu 2
  160149. 2b02975 Give up on sync for Py3 because of the way tests for py2 are written here
  160150. .IP \(bu 2
  160151. f79c81a Update UT mocking, adjusting for temporary file
  160152. .IP \(bu 2
  160153. 2f90054 Use temporary filename instead of output directly to the "thin.tgz"
  160154. .IP \(bu 2
  160155. d841164 Copy over the result, cleanup afterwards
  160156. .IP \(bu 2
  160157. c6792ee Add a function that reserves temporary filename for further tarball generation
  160158. .UNINDENT
  160159. .IP \(bu 2
  160160. \fBPR\fP \fI\%#51678\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2019.2.0.rc1 to 2019.2
  160161. @ \fI2019\-02\-17 19:02:33 UTC\fP
  160162. .INDENT 2.0
  160163. .IP \(bu 2
  160164. 5f9764a Merge pull request \fI\%#51678\fP from Ch3LL/merge\-2019.2.0.rc
  160165. .IP \(bu 2
  160166. f8372ca Merge branch \(aq2019.2\(aq into merge\-2019.2.0.rc
  160167. .UNINDENT
  160168. .IP \(bu 2
  160169. \fBISSUE\fP \fI\%#51503\fP: (\fI\%garethhowell\fP) smartos.image_present fails with "does not exist" (refs: \fI\%#51383\fP)
  160170. .IP \(bu 2
  160171. \fBISSUE\fP \fI\%#51351\fP: (\fI\%garethhowell\fP) Exception using smartos.vm_present to create docker zone (refs: \fI\%#51383\fP)
  160172. .IP \(bu 2
  160173. \fBPR\fP \fI\%#51679\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51383\fP into 2019.2
  160174. @ \fI2019\-02\-16 00:31:06 UTC\fP
  160175. .INDENT 2.0
  160176. .IP \(bu 2
  160177. \fBPR\fP \fI\%#51383\fP: (\fI\%sjorge\fP) imgadm module should deal with invalid images better (refs: \fI\%#51679\fP)
  160178. .IP \(bu 2
  160179. 2036c8a Merge pull request \fI\%#51679\fP from Ch3LL/bp\-51383
  160180. .IP \(bu 2
  160181. e4971fc imgadm module should deal with invalid images better
  160182. .IP \(bu 2
  160183. 58f2407 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  160184. .INDENT 2.0
  160185. .IP \(bu 2
  160186. 6292f86 Revert "Remove custom grains module from 2018.3 branch"
  160187. .IP \(bu 2
  160188. 92bd6b9 Fix salt.utils.is_windows call
  160189. .IP \(bu 2
  160190. ffa2f5f Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  160191. .IP \(bu 2
  160192. a8898f6 Merge pull request \fI\%#51635\fP from lomeroe/lgpo_boolean_element_fix
  160193. .INDENT 2.0
  160194. .IP \(bu 2
  160195. b97c2b2 Merge branch \(aq2018.3\(aq into lgpo_boolean_element_fix
  160196. .IP \(bu 2
  160197. 5a98fb9 Merge branch \(aq2018.3\(aq into lgpo_boolean_element_fix
  160198. .UNINDENT
  160199. .IP \(bu 2
  160200. abd3760 Merge pull request \fI\%#51610\fP from garethgreenaway/51266_schedule_enable_disable_break_save
  160201. .INDENT 2.0
  160202. .IP \(bu 2
  160203. fbacb35 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  160204. .UNINDENT
  160205. .IP \(bu 2
  160206. 6765eea Merge pull request \fI\%#51649\fP from dwoz/increase_wait_2018.3
  160207. .INDENT 2.0
  160208. .IP \(bu 2
  160209. 9c964ef Merge branch \(aq2018.3\(aq into increase_wait_2018.3
  160210. .UNINDENT
  160211. .IP \(bu 2
  160212. 852a6be Merge pull request \fI\%#51644\fP from dwoz/batch_exit_2018.3
  160213. .INDENT 2.0
  160214. .IP \(bu 2
  160215. 1087d10 increase batch test timeout on windows
  160216. .IP \(bu 2
  160217. 918030e Increase minion wait for slow boxes
  160218. .IP \(bu 2
  160219. 3d52b26 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  160220. .UNINDENT
  160221. .IP \(bu 2
  160222. dadf414 Merge pull request \fI\%#51637\fP from twangboy/backport_50887_2018.3
  160223. .INDENT 2.0
  160224. .IP \(bu 2
  160225. d8d2b86 backport \fI\%#50887\fP
  160226. .UNINDENT
  160227. .IP \(bu 2
  160228. a55e8f6 Merge pull request \fI\%#51626\fP from twangboy/fix_lgpo_2018.3
  160229. .INDENT 2.0
  160230. .IP \(bu 2
  160231. b2c9c3b Use makedirs instead of mkdir
  160232. .INDENT 2.0
  160233. .INDENT 3.5
  160234. .INDENT 0.0
  160235. .IP \(bu 2
  160236. 2be2f42 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  160237. .UNINDENT
  160238. .UNINDENT
  160239. .UNINDENT
  160240. .UNINDENT
  160241. .IP \(bu 2
  160242. 0f1a411 Merge pull request \fI\%#51187\fP from menglong81/fix\-broken\-thing
  160243. .INDENT 2.0
  160244. .IP \(bu 2
  160245. 298ad5c Merge branch \(aq2018.3\(aq into fix\-broken\-thing
  160246. .IP \(bu 2
  160247. d879d18 fix broken network.py
  160248. .IP \(bu 2
  160249. 76770f3 ss commmand replace to netstat command
  160250. .IP \(bu 2
  160251. 241707e ss commmand replace to netstat command
  160252. .INDENT 2.0
  160253. .INDENT 3.5
  160254. .INDENT 0.0
  160255. .IP \(bu 2
  160256. deeefc7 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  160257. .UNINDENT
  160258. .UNINDENT
  160259. .UNINDENT
  160260. .UNINDENT
  160261. .IP \(bu 2
  160262. 7ed5189 Merge pull request \fI\%#51613\fP from twangboy/fix_51566
  160263. .INDENT 2.0
  160264. .IP \(bu 2
  160265. 1206a94 Merge branch \(aq2018.3\(aq into fix_51566
  160266. .UNINDENT
  160267. .IP \(bu 2
  160268. 8b06d06 Merge pull request \fI\%#51630\fP from twangboy/add_tests_51534
  160269. .INDENT 2.0
  160270. .IP \(bu 2
  160271. ddc017c Merge branch \(aq2018.3\(aq into add_tests_51534
  160272. .UNINDENT
  160273. .IP \(bu 2
  160274. c4bbe1a Merge pull request \fI\%#51177\fP from nullify005/51069\-ri\-and\-rdoc\-removed
  160275. .INDENT 2.0
  160276. .IP \(bu 2
  160277. 6b1a201 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  160278. .IP \(bu 2
  160279. f339608 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  160280. .IP \(bu 2
  160281. e586370 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  160282. .IP \(bu 2
  160283. 13d3288 Fix lint issues
  160284. .IP \(bu 2
  160285. 5de5e64 Update tests
  160286. .IP \(bu 2
  160287. 22eda16 Fix lint violations
  160288. .IP \(bu 2
  160289. 2e6252c Support rubygems 3 cli param changes
  160290. .INDENT 2.0
  160291. .INDENT 3.5
  160292. .INDENT 0.0
  160293. .IP \(bu 2
  160294. 9e3a01b Use existing file instead of tzutil
  160295. .IP \(bu 2
  160296. 30c1832 Use tempfile to get temp dir
  160297. .IP \(bu 2
  160298. e3d3c5a Add tests for issue 51309
  160299. .IP \(bu 2
  160300. 1168141 Add test for explicit lists
  160301. .IP \(bu 2
  160302. 84f5d63 Merge branch \(aq2018.3\(aq into fix_51566
  160303. .IP \(bu 2
  160304. 7376cb9 Handle explicit lists properly
  160305. .INDENT 2.0
  160306. .INDENT 3.5
  160307. .INDENT 0.0
  160308. .IP \(bu 2
  160309. 28fc070 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  160310. .IP \(bu 2
  160311. 0760133 adding integration.scheduler.test_helpers to various files to by pass the test_module_name_source_match check.
  160312. .IP \(bu 2
  160313. 1552fba lint cleanup
  160314. .IP \(bu 2
  160315. 086066b Adding a test to ensure _get_schedule which is used by the save functionality works when there is an enabled attribute.
  160316. .IP \(bu 2
  160317. 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.
  160318. .IP \(bu 2
  160319. 5ed8eb6 Properly create the value for a "True" boolean element item
  160320. .UNINDENT
  160321. .UNINDENT
  160322. .UNINDENT
  160323. .UNINDENT
  160324. .UNINDENT
  160325. .UNINDENT
  160326. .UNINDENT
  160327. .IP \(bu 2
  160328. f1e29c8 Merge pull request \fI\%#51548\fP from s0undt3ch/2018.3
  160329. .INDENT 2.0
  160330. .IP \(bu 2
  160331. 611065e Merge branch \(aq2018.3\(aq into 2018.3
  160332. .UNINDENT
  160333. .IP \(bu 2
  160334. 00a6246 Merge pull request \fI\%#51622\fP from brejoc/2018.3\-empty\-job\-workaround
  160335. .INDENT 2.0
  160336. .IP \(bu 2
  160337. d263410 Prevents crash when there is no job entry
  160338. .IP \(bu 2
  160339. 5342305 Allow NOT to install pip dependencies
  160340. .UNINDENT
  160341. .IP \(bu 2
  160342. fdb13a3 Merge pull request \fI\%#51523\fP from lomeroe/solarisips_fixes
  160343. .INDENT 2.0
  160344. .IP \(bu 2
  160345. e8e91e3 Merge branch \(aq2018.3\(aq into solarisips_fixes
  160346. .IP \(bu 2
  160347. b7bfe17 lint fixes
  160348. .IP \(bu 2
  160349. cdaccf4 add tests to validate command being sent to cmd.run_all
  160350. .IP \(bu 2
  160351. eaa229d add unit test
  160352. .IP \(bu 2
  160353. 432428d Don\(aqt assume that each item in "pkgs" is a dict (as packed by pkg.installed state).
  160354. .UNINDENT
  160355. .IP \(bu 2
  160356. e3d5fbe Merge pull request \fI\%#51577\fP from garethgreenaway/merge\-2017.7
  160357. .INDENT 2.0
  160358. .IP \(bu 2
  160359. e060b97 Merge branch \(aq2018.3\(aq into merge\-2017.7
  160360. .IP \(bu 2
  160361. 3eee038 Fixing a couple issues that did not merge properly.
  160362. .IP \(bu 2
  160363. 25b2ca6 Merge branch \(aq2018.3\(aq into merge\-2017.7
  160364. .IP \(bu 2
  160365. c337fce Merge branch \(aq2018.3\(aq into merge\-2017.7
  160366. .IP \(bu 2
  160367. f9d6828 Fixing missed merge.
  160368. .IP \(bu 2
  160369. a041775 Merge branch \(aq2017.7\(aq into merge\-2017.7
  160370. .INDENT 2.0
  160371. .IP \(bu 2
  160372. 61889ba Merge pull request \fI\%#51452\fP from terminalmage/bp\-50963
  160373. .INDENT 2.0
  160374. .IP \(bu 2
  160375. 54d2e02 Merge branch \(aq2017.7\(aq into bp\-50963
  160376. .UNINDENT
  160377. .IP \(bu 2
  160378. 0c989f0 Merge pull request \fI\%#51437\fP from twangboy/fix_raise_2017.7
  160379. .INDENT 2.0
  160380. .IP \(bu 2
  160381. ecd1637 Merge branch \(aq2017.7\(aq into fix_raise_2017.7
  160382. .IP \(bu 2
  160383. f3c9cd4 Add missing raise statement
  160384. .INDENT 2.0
  160385. .IP \(bu 2
  160386. d06526c Allow for kwargs to be used in object initialization
  160387. .IP \(bu 2
  160388. 0e760b5 pip states: Use case\-insensitive dictionaries for pip.list return
  160389. .IP \(bu 2
  160390. 5ca9f82 Add a CaseInsensitiveDict implementation
  160391. .IP \(bu 2
  160392. 2aaa9f9 pip.installed: Fix traceback when _find_key doesn\(aqt return a match
  160393. .UNINDENT
  160394. .UNINDENT
  160395. .IP \(bu 2
  160396. 67b7d28 Merge pull request \fI\%#51370\fP from dwoz/setup_py_req_fix
  160397. .INDENT 2.0
  160398. .IP \(bu 2
  160399. e1e06a0 Fix python 3 path for shell test cases
  160400. .IP \(bu 2
  160401. 09cd5fc Merge branch \(aq2017.7\(aq into setup_py_req_fix
  160402. .IP \(bu 2
  160403. 0de189d Handle pipenv like version restrictions
  160404. .UNINDENT
  160405. .IP \(bu 2
  160406. e9b3d94 Merge pull request \fI\%#51367\fP from dwoz/cloud_config_2017
  160407. .INDENT 2.0
  160408. .IP \(bu 2
  160409. 3f4c5a3e Merge branch \(aqcloud_config_2017\(aq of github.com:dwoz/salt into cloud_config_2017
  160410. .INDENT 2.0
  160411. .IP \(bu 2
  160412. 8b8d41a Merge branch \(aq2017.7\(aq into cloud_config_2017
  160413. .UNINDENT
  160414. .IP \(bu 2
  160415. 7bb4ceb Fix python 3 path for shell test cases
  160416. .IP \(bu 2
  160417. a2bbf4d Fix linter issues
  160418. .IP \(bu 2
  160419. 004d9b8 Cloud provider and profile configs are merged
  160420. .UNINDENT
  160421. .IP \(bu 2
  160422. 3a21afa Coverage on windows chokes with the tox env var \fICOVERAGE_PROCESS_START\fP
  160423. .IP \(bu 2
  160424. 1c62e27 Switch required PyTest dependency
  160425. .IP \(bu 2
  160426. b80320d Merge pull request \fI\%#51402\fP from dwoz/win_test_fix
  160427. .INDENT 2.0
  160428. .IP \(bu 2
  160429. 21359e6 Merge branch \(aq2017.7\(aq into win_test_fix
  160430. .UNINDENT
  160431. .IP \(bu 2
  160432. 1199530 Merge pull request \fI\%#51397\fP from dwoz/gemstest
  160433. .INDENT 2.0
  160434. .IP \(bu 2
  160435. 43ac36e Use gems.github.com no longer exists, use gemcutter.org
  160436. .IP \(bu 2
  160437. bac652f Add testing path to run_script commands
  160438. .UNINDENT
  160439. .IP \(bu 2
  160440. f511ad2 Merge pull request \fI\%#51227\fP from astronouth7303/doc\-modules\-additional\-globals
  160441. .INDENT 2.0
  160442. .IP \(bu 2
  160443. cbe1e17 Merge branch \(aq2017.7\(aq into doc\-modules\-additional\-globals
  160444. .UNINDENT
  160445. .IP \(bu 2
  160446. 2a9bf17 Merge pull request \fI\%#51312\fP from s0undt3ch/features/tox\-runtests
  160447. .INDENT 2.0
  160448. .IP \(bu 2
  160449. 3840af8 "Tell" coverage to track subprocesses.
  160450. .IP \(bu 2
  160451. f67a529 Remove unused imports
  160452. .IP \(bu 2
  160453. 15ab061 Show objects on assertion failure
  160454. .IP \(bu 2
  160455. 0281fc5 Don\(aqt fail the test because of order
  160456. .IP \(bu 2
  160457. 9a31be7 Don\(aqt call \fI\&.keys()\fP on dictionaries
  160458. .IP \(bu 2
  160459. 97ced3a Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  160460. .IP \(bu 2
  160461. 8d2c4d2 Remove duplicate dependency
  160462. .IP \(bu 2
  160463. 5eec144 Add \fI\&.coveragerc\fP
  160464. .IP \(bu 2
  160465. aa108d5 Run tests from tox, wether runtests or pytest
  160466. .IP \(bu 2
  160467. 80a3826 Update TODO
  160468. .IP \(bu 2
  160469. 1945c30 Document the client\-defined dunders
  160470. .UNINDENT
  160471. .UNINDENT
  160472. .UNINDENT
  160473. .IP \(bu 2
  160474. 5bb9b32 Merge pull request \fI\%#51393\fP from garethgreenaway/various_documentation_fixes
  160475. .INDENT 2.0
  160476. .IP \(bu 2
  160477. 8bb7535 Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160478. .IP \(bu 2
  160479. c15406a Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160480. .IP \(bu 2
  160481. 33bb4e4 Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160482. .IP \(bu 2
  160483. 3582f6e Fixing the underline.
  160484. .IP \(bu 2
  160485. a8f42a0 Various documentation fixes.
  160486. .UNINDENT
  160487. .IP \(bu 2
  160488. 884981f Merge pull request \fI\%#51465\fP from ezh/50556
  160489. .INDENT 2.0
  160490. .IP \(bu 2
  160491. a3ee70c fix \fI\%#50556\fP state.orchestrate_show_sls
  160492. .UNINDENT
  160493. .IP \(bu 2
  160494. 231d6e2 Merge pull request \fI\%#51541\fP from bdrung/silence\-linux_distribution\-deprecation\-warning
  160495. .INDENT 2.0
  160496. .IP \(bu 2
  160497. c4feea1 Merge branch \(aq2018.3\(aq into silence\-linux_distribution\-deprecation\-warning
  160498. .IP \(bu 2
  160499. e1dcbb5 Silence linux_distribution deprecation warning
  160500. .UNINDENT
  160501. .IP \(bu 2
  160502. f87d5ec Merge pull request \fI\%#51558\fP from bdrung/test\-zypp\-plugin
  160503. .INDENT 2.0
  160504. .IP \(bu 2
  160505. c34967d Merge branch \(aq2018.3\(aq into test\-zypp\-plugin
  160506. .UNINDENT
  160507. .IP \(bu 2
  160508. edb1093 Merge pull request \fI\%#51609\fP from dwoz/wait_minions_2018.3
  160509. .INDENT 2.0
  160510. .IP \(bu 2
  160511. d794edb fix linter
  160512. .IP \(bu 2
  160513. d6720d2 Wait for minions to be pingable before starting tests
  160514. .UNINDENT
  160515. .IP \(bu 2
  160516. 8d79359 Merge pull request \fI\%#51599\fP from terminalmage/bp\-51510
  160517. .INDENT 2.0
  160518. .IP \(bu 2
  160519. ed194c7 grains: assign os_family Debian to Debian derivative TurnKey Linux
  160520. .UNINDENT
  160521. .IP \(bu 2
  160522. 24aa083 Merge pull request \fI\%#51598\fP from terminalmage/add\-grain\-option\-documentation
  160523. .INDENT 2.0
  160524. .IP \(bu 2
  160525. 4ee9440 Improve ec2 pillar documentation
  160526. .IP \(bu 2
  160527. 9c02104 Add link to metadata grain module docs
  160528. .IP \(bu 2
  160529. 997ce26 Add documentation for the metadata_server_grains config option
  160530. .UNINDENT
  160531. .IP \(bu 2
  160532. d89c489 Merge pull request \fI\%#51491\fP from terminalmage/issue51268
  160533. .INDENT 2.0
  160534. .IP \(bu 2
  160535. 550e9ab Don\(aqt log shell warning if output_loglevel is quiet
  160536. .INDENT 2.0
  160537. .INDENT 3.5
  160538. .INDENT 0.0
  160539. .IP \(bu 2
  160540. 7678c28 Do not load zyppnotify file on module import
  160541. .UNINDENT
  160542. .UNINDENT
  160543. .UNINDENT
  160544. .UNINDENT
  160545. .IP \(bu 2
  160546. c6dfded Merge pull request \fI\%#51588\fP from dwoz/script_fix_2018.3
  160547. .INDENT 2.0
  160548. .IP \(bu 2
  160549. cbac390 Use the code directory instead of cwd for python path
  160550. .UNINDENT
  160551. .UNINDENT
  160552. .UNINDENT
  160553. .IP \(bu 2
  160554. \fBPR\fP \fI\%#51658\fP: (\fI\%dwoz\fP) [2019.2] Let memcopy make the null bytes, better py3 support
  160555. @ \fI2019\-02\-15 05:42:37 UTC\fP
  160556. .INDENT 2.0
  160557. .IP \(bu 2
  160558. \fBPR\fP \fI\%#51586\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2 (refs: \fI\%#51658\fP)
  160559. .IP \(bu 2
  160560. 1ea6f4b Merge pull request \fI\%#51658\fP from dwoz/pip_test_fix
  160561. .IP \(bu 2
  160562. c811a70 Let memcopy make the null bytes, better py3 support
  160563. .UNINDENT
  160564. .IP \(bu 2
  160565. \fBPR\fP \fI\%#51650\fP: (\fI\%dwoz\fP) [2019.2] Increase minion wait for slow boxes
  160566. @ \fI2019\-02\-14 16:31:59 UTC\fP
  160567. .INDENT 2.0
  160568. .IP \(bu 2
  160569. 22a04c1 Merge pull request \fI\%#51650\fP from dwoz/increase_wait_2019.2
  160570. .IP \(bu 2
  160571. ad294f3 Merge branch \(aq2019.2\(aq into increase_wait_2019.2
  160572. .UNINDENT
  160573. .IP \(bu 2
  160574. \fBPR\fP \fI\%#51645\fP: (\fI\%dwoz\fP) [2019.2] increase batch test timeout on windows
  160575. @ \fI2019\-02\-14 16:29:26 UTC\fP
  160576. .INDENT 2.0
  160577. .IP \(bu 2
  160578. a0982f7 Merge pull request \fI\%#51645\fP from dwoz/batch_exit_2019.2
  160579. .IP \(bu 2
  160580. 1a882d7 Merge branch \(aq2019.2\(aq into batch_exit_2019.2
  160581. .UNINDENT
  160582. .IP \(bu 2
  160583. \fBPR\fP \fI\%#51586\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2 (refs: \fI\%#51658\fP)
  160584. @ \fI2019\-02\-14 16:25:29 UTC\fP
  160585. .INDENT 2.0
  160586. .IP \(bu 2
  160587. 705a62d Merge pull request \fI\%#51586\fP from garethgreenaway/merge\-2018.3
  160588. .IP \(bu 2
  160589. 09fb3e7 Merge branch \(aq2019.2\(aq into merge\-2018.3
  160590. .IP \(bu 2
  160591. 95c505a Merge branch \(aq2019.2\(aq into merge\-2018.3
  160592. .IP \(bu 2
  160593. 4abd9d0 Merge branch \(aq2019.2\(aq into merge\-2018.3
  160594. .IP \(bu 2
  160595. 6c99cb1 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160596. .INDENT 2.0
  160597. .IP \(bu 2
  160598. 41e25a6 Merge pull request \fI\%#51580\fP from garethgreenaway/merge\-2018.3.4
  160599. .INDENT 2.0
  160600. .IP \(bu 2
  160601. 84e15ce Fixing lint
  160602. .IP \(bu 2
  160603. e891b3f Merge branch \(aq2018.3.4\(aq into merge\-2018.3.4
  160604. .IP \(bu 2
  160605. d0cad3e Merge pull request \fI\%#51553\fP from twangboy/update_libsodium
  160606. .INDENT 2.0
  160607. .IP \(bu 2
  160608. 4177f64 Update url to libsodium for mac builds
  160609. .UNINDENT
  160610. .IP \(bu 2
  160611. 564a65a Merge pull request \fI\%#51544\fP from twangboy/fix_test_ssh_2018.3.4
  160612. .INDENT 2.0
  160613. .IP \(bu 2
  160614. 7771632 Fix ssh on Windows
  160615. .UNINDENT
  160616. .IP \(bu 2
  160617. b4299a3 Merge pull request \fI\%#51532\fP from frogunder/new_releasenotes
  160618. .INDENT 2.0
  160619. .IP \(bu 2
  160620. 09faf0b Merge branch \(aq2018.3.4\(aq into new_releasenotes
  160621. .IP \(bu 2
  160622. c6bfe53 2018.3.4 releasenotes
  160623. .UNINDENT
  160624. .IP \(bu 2
  160625. c37bdb7 Merge pull request \fI\%#51534\fP from twangboy/fix_51309
  160626. .INDENT 2.0
  160627. .IP \(bu 2
  160628. 3ad95bc Convert data to string using salt util
  160629. .UNINDENT
  160630. .IP \(bu 2
  160631. 5b41af3 Merge pull request \fI\%#51530\fP from garethgreenaway/48204_mysql_module_handle_mariadb_versions
  160632. .INDENT 2.0
  160633. .IP \(bu 2
  160634. cdf5298 Later versions of MariaDB still support "ALL PRIVILEGES"
  160635. .IP \(bu 2
  160636. d31c902 Updating the mysql module to handle MariDB versions.
  160637. .UNINDENT
  160638. .IP \(bu 2
  160639. f3f345c Merge pull request \fI\%#51529\fP from frogunder/releasenotes
  160640. .INDENT 2.0
  160641. .IP \(bu 2
  160642. fb678ee fix escaped asterisks
  160643. .IP \(bu 2
  160644. 6a4f0da 2018.3.4 releasenotes
  160645. .UNINDENT
  160646. .IP \(bu 2
  160647. a37fb7d Merge pull request \fI\%#51525\fP from twangboy/backport_51095_2018.3.4
  160648. .INDENT 2.0
  160649. .IP \(bu 2
  160650. b6acc92 Backport 51095
  160651. .UNINDENT
  160652. .IP \(bu 2
  160653. 602ddc8 Merge pull request \fI\%#51520\fP from frogunder/man_pages
  160654. .INDENT 2.0
  160655. .IP \(bu 2
  160656. 0cbe3f8 Update man pages for 2018.3.4
  160657. .UNINDENT
  160658. .IP \(bu 2
  160659. 1f981c6 Merge pull request \fI\%#51429\fP from yosnoop/replace\-noclass\-with\-nocl\-for\-dig
  160660. .INDENT 2.0
  160661. .IP \(bu 2
  160662. 5231e73 Merge branch \(aq2018.3.4\(aq into replace\-noclass\-with\-nocl\-for\-dig
  160663. .IP \(bu 2
  160664. 14e6fb7 In case the test machine can\(aqt resolve
  160665. .IP \(bu 2
  160666. 95e8a2f The +nocl is supported much wider than +noclass
  160667. .IP \(bu 2
  160668. a00d708 Test dig options for salt.utils.dns.lookup
  160669. .UNINDENT
  160670. .IP \(bu 2
  160671. 209ef32 Merge pull request \fI\%#51441\fP from Ch3LL/bp\-51366
  160672. .INDENT 2.0
  160673. .IP \(bu 2
  160674. 5bc466e Fix python 3 path for shell test cases
  160675. .IP \(bu 2
  160676. 5351e5c Add testing path to run_script commands
  160677. .IP \(bu 2
  160678. 2d8a364 Fix linter issues
  160679. .IP \(bu 2
  160680. 9b8718a Cloud provider and profile configs are merged
  160681. .UNINDENT
  160682. .IP \(bu 2
  160683. 90a8682 Merge pull request \fI\%#51458\fP from twangboy/add_py2_warning
  160684. .INDENT 2.0
  160685. .IP \(bu 2
  160686. 05522c0 Merge branch \(aq2018.3.4\(aq into add_py2_warning
  160687. .UNINDENT
  160688. .IP \(bu 2
  160689. b492021 Merge pull request \fI\%#51460\fP from twangboy/update_installer_mac_2018.3.4
  160690. .INDENT 2.0
  160691. .IP \(bu 2
  160692. 3c92688 Merge branch \(aq2018.3.4\(aq into update_installer_mac_2018.3.4
  160693. .UNINDENT
  160694. .IP \(bu 2
  160695. 892d98c Merge pull request \fI\%#51471\fP from twangboy/fix_test_win_dns_client
  160696. .INDENT 2.0
  160697. .IP \(bu 2
  160698. c9f6b01 Merge branch \(aq2018.3.4\(aq into fix_test_win_dns_client
  160699. .UNINDENT
  160700. .IP \(bu 2
  160701. a05305d Merge pull request \fI\%#51462\fP from ShantonRU/fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  160702. .INDENT 2.0
  160703. .IP \(bu 2
  160704. d3ef2cb Merge branch \(aq2018.3.4\(aq into fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  160705. .IP \(bu 2
  160706. f47dda6 Fix improper use of socket authentication in mysql.user_chpass
  160707. .IP \(bu 2
  160708. ed62a2f Fix insecure SQL queries in mysql.user_chpass
  160709. .INDENT 2.0
  160710. .IP \(bu 2
  160711. 33922c9 Fix the failing dns test on Windows
  160712. .UNINDENT
  160713. .UNINDENT
  160714. .IP \(bu 2
  160715. 48936c2 Merge pull request \fI\%#51445\fP from terminalmage/fix\-custom\-grains\-traceback
  160716. .INDENT 2.0
  160717. .IP \(bu 2
  160718. 191235d Remove custom grains module from 2018.3 branch
  160719. .IP \(bu 2
  160720. 72fd1a2 Roll back icon change
  160721. .IP \(bu 2
  160722. 7dd1704 Add welcome_py2.rtf
  160723. .IP \(bu 2
  160724. c93e9e3 Add Py2 Warning to installer package
  160725. .IP \(bu 2
  160726. b658900 Add Py2 Warning for Py2 Installer
  160727. .UNINDENT
  160728. .IP \(bu 2
  160729. a880e42 Merge pull request \fI\%#51438\fP from twangboy/fix_raise_2018.3.4
  160730. .INDENT 2.0
  160731. .IP \(bu 2
  160732. 5830fad Add missing raise statement
  160733. .UNINDENT
  160734. .IP \(bu 2
  160735. 28b898c Merge pull request \fI\%#51432\fP from Ch3LL/bp\-51324
  160736. .INDENT 2.0
  160737. .IP \(bu 2
  160738. bd41ff0 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  160739. .UNINDENT
  160740. .IP \(bu 2
  160741. 01717d2 Merge pull request \fI\%#51377\fP from twangboy/fix_auditpol_2018.3.4
  160742. .INDENT 2.0
  160743. .IP \(bu 2
  160744. 19e5181 Fix issue when directory doesn\(aqt exist
  160745. .UNINDENT
  160746. .IP \(bu 2
  160747. 43a9d2f Merge pull request \fI\%#51338\fP from Ch3LL/bp\-51207
  160748. .INDENT 2.0
  160749. .IP \(bu 2
  160750. 345ae67 Backport PR# 50771 to 2018.3 branch
  160751. .UNINDENT
  160752. .IP \(bu 2
  160753. 3dcd11d Merge pull request \fI\%#51337\fP from Ch3LL/bp\-51170
  160754. .INDENT 2.0
  160755. .IP \(bu 2
  160756. 4e85505 Merge branch \(aq2018.3.4\(aq into bp\-51170
  160757. .UNINDENT
  160758. .IP \(bu 2
  160759. 7656aa5 Merge pull request \fI\%#51340\fP from Ch3LL/bp\-51252
  160760. .INDENT 2.0
  160761. .IP \(bu 2
  160762. e74a6c6 Fix py3 managed.file test failure
  160763. .IP \(bu 2
  160764. 6f2c7cf Remoe un\-needed log statement
  160765. .IP \(bu 2
  160766. 824950c Fix 50221 regression test on Windows
  160767. .IP \(bu 2
  160768. 1840af9 peserve newlines from pillar data for file.managed
  160769. .UNINDENT
  160770. .IP \(bu 2
  160771. e90ca1d Merge pull request \fI\%#51290\fP from s0undt3ch/hotfix/fix\-network
  160772. .INDENT 2.0
  160773. .IP \(bu 2
  160774. da3aace Merge branch \(aq2018.3.4\(aq into hotfix/fix\-network
  160775. .IP \(bu 2
  160776. 04f16b8 Fix tests. We no longer get \fIipaddress\fP instances back.
  160777. .IP \(bu 2
  160778. c3fa82a Fix minion start issue
  160779. .INDENT 2.0
  160780. .IP \(bu 2
  160781. c893dc4 Fix saltmod roster test
  160782. .IP \(bu 2
  160783. b61854f Roster defines the roster system not a file
  160784. .IP \(bu 2
  160785. 484bab4 Fix linter
  160786. .IP \(bu 2
  160787. 5e2db2f Honor roster file for ssh orchestrations
  160788. .UNINDENT
  160789. .UNINDENT
  160790. .IP \(bu 2
  160791. c8db7e3 Merge pull request \fI\%#51317\fP from terminalmage/fix\-pr\-50417
  160792. .INDENT 2.0
  160793. .IP \(bu 2
  160794. 4be2891 Merge branch \(aq2018.3.4\(aq into fix\-pr\-50417
  160795. .UNINDENT
  160796. .IP \(bu 2
  160797. e246fdb Merge pull request \fI\%#51311\fP from twangboy/fix_test_file.test_managed
  160798. .INDENT 2.0
  160799. .IP \(bu 2
  160800. f4177e0 Remove mode parameter on Windows
  160801. .IP \(bu 2
  160802. 4c4ded3 Fix regression in dynamic pillarenv
  160803. .UNINDENT
  160804. .IP \(bu 2
  160805. 40b20126 Merge pull request \fI\%#51292\fP from Ch3LL/bp\-51226
  160806. .INDENT 2.0
  160807. .IP \(bu 2
  160808. aba114e Merge branch \(aq2018.3.4\(aq into bp\-51226
  160809. .UNINDENT
  160810. .IP \(bu 2
  160811. fc0bec5 Merge pull request \fI\%#51295\fP from Ch3LL/bp\-51279
  160812. .INDENT 2.0
  160813. .IP \(bu 2
  160814. 5c4a7a4 Merge branch \(aq2018.3.4\(aq into bp\-51279
  160815. .UNINDENT
  160816. .IP \(bu 2
  160817. dacd1ea Merge pull request \fI\%#51293\fP from Ch3LL/bp\-51233\-2
  160818. .INDENT 2.0
  160819. .IP \(bu 2
  160820. a155fd7 Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  160821. .IP \(bu 2
  160822. 53ba068 When test=True and there are permissions changes, report it.
  160823. .IP \(bu 2
  160824. d2eba77 Remove network.py patch
  160825. .IP \(bu 2
  160826. d431c71 Add __context__ support
  160827. .INDENT 2.0
  160828. .IP \(bu 2
  160829. de6c13d Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  160830. .UNINDENT
  160831. .UNINDENT
  160832. .IP \(bu 2
  160833. 1abffb2 Merge pull request \fI\%#51278\fP from dwoz/issue51248
  160834. .INDENT 2.0
  160835. .IP \(bu 2
  160836. c614198 Use pillar roots validation method
  160837. .IP \(bu 2
  160838. 0d2b0c6 Fix linter warnings
  160839. .IP \(bu 2
  160840. 5b98895 Fix wart in pillar_roots validation
  160841. .UNINDENT
  160842. .UNINDENT
  160843. .IP \(bu 2
  160844. f7d50b1 Merge pull request \fI\%#50784\fP from sathieu/dynamic_file_roots
  160845. .INDENT 2.0
  160846. .IP \(bu 2
  160847. 7ca2aa4 Allow dynamic file_roots
  160848. .UNINDENT
  160849. .IP \(bu 2
  160850. 5e840a5 Merge pull request \fI\%#51527\fP from garethgreenaway/bp\-51475
  160851. .INDENT 2.0
  160852. .IP \(bu 2
  160853. 801abf2 Fix Elasticsearch retuner
  160854. .UNINDENT
  160855. .IP \(bu 2
  160856. 1f6da6a Merge pull request \fI\%#50921\fP from terminalmage/issue49894
  160857. .INDENT 2.0
  160858. .IP \(bu 2
  160859. a35c023 Don\(aqt use a decorator that assumes /etc/apt/sources.list.d exists
  160860. .IP \(bu 2
  160861. 6a62e79 Add integration test for architecture support
  160862. .IP \(bu 2
  160863. 67ae5a5 Add support for architectures for APT pkgrepo.managed states
  160864. .UNINDENT
  160865. .IP \(bu 2
  160866. 3f17776 Actually, remove python\-ldap. It needs system deps. Have salt\-jenkins do it.
  160867. .IP \(bu 2
  160868. afcb6bd Fix the \fIldap\fP pacakge name in requirements/tests.txt
  160869. .IP \(bu 2
  160870. 588cb87 Merge pull request \fI\%#51454\fP from terminalmage/fix\-deprecation\-warning
  160871. .INDENT 2.0
  160872. .IP \(bu 2
  160873. 529cce0 Fix deprecation warning in nested outputter
  160874. .UNINDENT
  160875. .IP \(bu 2
  160876. 13de0b8 Merge pull request \fI\%#50963\fP from terminalmage/issue50942
  160877. .INDENT 2.0
  160878. .IP \(bu 2
  160879. c84be3f Allow for kwargs to be used in object initialization
  160880. .IP \(bu 2
  160881. 2bf93fd pip states: Use case\-insensitive dictionaries for pip.list return
  160882. .IP \(bu 2
  160883. 792f054 Add a CaseInsensitiveDict implementation
  160884. .IP \(bu 2
  160885. 1410164 pip.installed: Fix traceback when _find_key doesn\(aqt return a match
  160886. .UNINDENT
  160887. .IP \(bu 2
  160888. 60953b7 Merge pull request \fI\%#51366\fP from dwoz/cloud_config_merge
  160889. .INDENT 2.0
  160890. .IP \(bu 2
  160891. ae351eb Fix python 3 path for shell test cases
  160892. .IP \(bu 2
  160893. 48062c8 Merge branch \(aq2018.3\(aq into cloud_config_merge
  160894. .IP \(bu 2
  160895. eeea289 Add testing path to run_script commands
  160896. .IP \(bu 2
  160897. 542d857 Fix linter issues
  160898. .IP \(bu 2
  160899. a8af3ba Cloud provider and profile configs are merged
  160900. .UNINDENT
  160901. .IP \(bu 2
  160902. 9ab2ec6 Coverage on windows chokes with the tox env var \fICOVERAGE_PROCESS_START\fP
  160903. .IP \(bu 2
  160904. 4994c38 Switch required PyTest dependency
  160905. .IP \(bu 2
  160906. 89710a7 Merge pull request \fI\%#51401\fP from dwoz/run_script_win
  160907. .INDENT 2.0
  160908. .IP \(bu 2
  160909. 77fdf35 Add testing path to run_script commands
  160910. .UNINDENT
  160911. .IP \(bu 2
  160912. 1438a62 Merge pull request \fI\%#51389\fP from terminalmage/proxy\-fixes
  160913. .INDENT 2.0
  160914. .IP \(bu 2
  160915. 3cec85e Normalize results if test proxy is enabled
  160916. .UNINDENT
  160917. .IP \(bu 2
  160918. 8acd9e5 Merge pull request \fI\%#51368\fP from s0undt3ch/hotfix/tests
  160919. .INDENT 2.0
  160920. .IP \(bu 2
  160921. f4e1692 Fix test
  160922. .UNINDENT
  160923. .IP \(bu 2
  160924. ab60782 Merge pull request \fI\%#51319\fP from terminalmage/issue51255
  160925. .INDENT 2.0
  160926. .IP \(bu 2
  160927. 04eb66b Merge branch \(aq2018.3\(aq into issue51255
  160928. .UNINDENT
  160929. .IP \(bu 2
  160930. fdf2cf4 Merge pull request \fI\%#51250\fP from yosnoop/fix\-salt\-utils\-dns\-lookup
  160931. .INDENT 2.0
  160932. .IP \(bu 2
  160933. 0ddfad1 Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160934. .IP \(bu 2
  160935. 9fb4abe Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160936. .IP \(bu 2
  160937. 67e4131 Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160938. .IP \(bu 2
  160939. 9a34bcd Unit test for lookup with servers option
  160940. .IP \(bu 2
  160941. 9498fdc Fix _lookup_host to make it work when server specified
  160942. .IP \(bu 2
  160943. af867e1 Remove excessive whitespaces
  160944. .IP \(bu 2
  160945. 0d074a4 Fix a comment
  160946. .IP \(bu 2
  160947. 1363d2b Proper way to specify _server_ to query with _host_
  160948. .IP \(bu 2
  160949. 7b2facc Fix broken lookup in salt/utils/dns.py
  160950. .UNINDENT
  160951. .IP \(bu 2
  160952. 73528a5 Merge pull request \fI\%#51339\fP from dwoz/aws_role_backport
  160953. .INDENT 2.0
  160954. .IP \(bu 2
  160955. 156f532 Backport aws role support
  160956. .UNINDENT
  160957. .IP \(bu 2
  160958. 7908875 Merge pull request \fI\%#51341\fP from Ch3LL/bp\-51299
  160959. .INDENT 2.0
  160960. .IP \(bu 2
  160961. e3080f1 Add sleep before sending stop over UDP
  160962. .UNINDENT
  160963. .IP \(bu 2
  160964. 326425c Merge pull request \fI\%#51352\fP from garethgreenaway/fixing_service_beacon_documentation
  160965. .INDENT 2.0
  160966. .IP \(bu 2
  160967. 021fe85 Fixing the documentation for the service beacon. If not options are provided for the service then there needs to be an empty dictionary.
  160968. .UNINDENT
  160969. .IP \(bu 2
  160970. 14a84e8 Merge pull request \fI\%#51333\fP from Ch3LL/merge\-2018.3
  160971. .INDENT 2.0
  160972. .IP \(bu 2
  160973. 27d7a89 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160974. .UNINDENT
  160975. .IP \(bu 2
  160976. 31b921f Merge pull request \fI\%#51304\fP from terminalmage/issue51270
  160977. .INDENT 2.0
  160978. .IP \(bu 2
  160979. 36673fb Merge branch \(aq2018.3\(aq into issue51270
  160980. .UNINDENT
  160981. .IP \(bu 2
  160982. 2c3aef7 Merge pull request \fI\%#51313\fP from s0undt3ch/features/tox\-runtests\-2018.3
  160983. .INDENT 2.0
  160984. .IP \(bu 2
  160985. 2eafc5c "Tell" coverage to track subprocesses.
  160986. .IP \(bu 2
  160987. f6babeb Remove unused imports
  160988. .IP \(bu 2
  160989. ff6824c Don\(aqt fail the test because of order
  160990. .IP \(bu 2
  160991. 4d12ccb Show objects on assertion failure
  160992. .IP \(bu 2
  160993. ee2f10a Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  160994. .IP \(bu 2
  160995. 4f4d019 Remove duplicate dependency
  160996. .IP \(bu 2
  160997. 1d4b9f5 Add \fI\&.coveragerc\fP
  160998. .IP \(bu 2
  160999. 78c6d68 Run tests from tox, wether runtests or pytest
  161000. .IP \(bu 2
  161001. c02757d gitfs: Fix use of deprecated pygit2 function
  161002. .INDENT 2.0
  161003. .IP \(bu 2
  161004. ae62ebc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  161005. .IP \(bu 2
  161006. 9309639 Merge pull request \fI\%#51305\fP from s0undt3ch/2017.7
  161007. .INDENT 2.0
  161008. .IP \(bu 2
  161009. 09b20df Add 2017.7 codecov config
  161010. .UNINDENT
  161011. .IP \(bu 2
  161012. 4fa2a02 Merge pull request \fI\%#51267\fP from ethframe/fix\-file\-directory
  161013. .INDENT 2.0
  161014. .IP \(bu 2
  161015. c108825 Fix missing file error in file.directory.
  161016. .INDENT 2.0
  161017. .INDENT 3.5
  161018. .INDENT 0.0
  161019. .IP \(bu 2
  161020. ad17ac5 Fix mocks to reflect changes to git.latest state
  161021. .IP \(bu 2
  161022. c817213 Don\(aqt try to run git.config_get_regexp from nonexistant cwd
  161023. .IP \(bu 2
  161024. f8c3e44 git.latest: add auth to merge/reset calls when LFS used with SSH auth
  161025. .INDENT 2.0
  161026. .INDENT 3.5
  161027. .INDENT 0.0
  161028. .IP \(bu 2
  161029. 4b11d6b increase batch test timeout on windows
  161030. .IP \(bu 2
  161031. a5af9c5 Increase minion wait for slow boxes
  161032. .UNINDENT
  161033. .UNINDENT
  161034. .UNINDENT
  161035. .UNINDENT
  161036. .UNINDENT
  161037. .UNINDENT
  161038. .UNINDENT
  161039. .UNINDENT
  161040. .UNINDENT
  161041. .UNINDENT
  161042. .UNINDENT
  161043. .IP \(bu 2
  161044. \fBPR\fP \fI\%#51549\fP: (\fI\%s0undt3ch\fP) [2019.2] Allow NOT to install pip dependencies
  161045. @ \fI2019\-02\-13 18:16:52 UTC\fP
  161046. .INDENT 2.0
  161047. .IP \(bu 2
  161048. e7ee04e Merge pull request \fI\%#51549\fP from s0undt3ch/2019.2
  161049. .IP \(bu 2
  161050. d2125aa Allow NOT to install pip dependencies
  161051. .UNINDENT
  161052. .IP \(bu 2
  161053. \fBPR\fP \fI\%#51595\fP: (\fI\%mirceaulinic\fP) Fix ipaddress imports
  161054. @ \fI2019\-02\-13 17:33:08 UTC\fP
  161055. .INDENT 2.0
  161056. .IP \(bu 2
  161057. c96464b Merge pull request \fI\%#51595\fP from mirceaulinic/mircea/port\-824e0e5
  161058. .IP \(bu 2
  161059. 91bcb4f Merge branch \(aq2019.2\(aq into mircea/port\-824e0e5
  161060. .IP \(bu 2
  161061. 84fc76d Fix ipaddress imports
  161062. .UNINDENT
  161063. .IP \(bu 2
  161064. \fBPR\fP \fI\%#51517\fP: (\fI\%damianosSemmle\fP) Fixed string format index out of range error
  161065. @ \fI2019\-02\-13 08:18:38 UTC\fP
  161066. .INDENT 2.0
  161067. .IP \(bu 2
  161068. e3c9a3e Merge pull request \fI\%#51517\fP from damianosSemmle/fix\-string\-format\-index
  161069. .IP \(bu 2
  161070. c0959e2 Merge branch \(aq2019.2\(aq into fix\-string\-format\-index
  161071. .UNINDENT
  161072. .IP \(bu 2
  161073. \fBPR\fP \fI\%#51581\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2019.2.0rc1 to 2019.2
  161074. @ \fI2019\-02\-13 04:11:15 UTC\fP
  161075. .INDENT 2.0
  161076. .IP \(bu 2
  161077. 82500bb Merge pull request \fI\%#51581\fP from garethgreenaway/merge\-2019.2.0rc1
  161078. .IP \(bu 2
  161079. b00e7e8 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  161080. .UNINDENT
  161081. .IP \(bu 2
  161082. \fBPR\fP \fI\%#51607\fP: (\fI\%dwoz\fP) [2019.2] Wait for minions to be pingable before starting tests
  161083. @ \fI2019\-02\-13 00:48:47 UTC\fP
  161084. .INDENT 2.0
  161085. .IP \(bu 2
  161086. edb5e94 Merge pull request \fI\%#51607\fP from dwoz/wait_minions_2019.2
  161087. .IP \(bu 2
  161088. ab0a6a3 fix linter
  161089. .IP \(bu 2
  161090. f2e4a30 Wait for minions to be pingable before starting tests
  161091. .UNINDENT
  161092. .IP \(bu 2
  161093. \fBPR\fP \fI\%#51584\fP: (\fI\%dwoz\fP) [2019.2] Use the code directory instead of cwd for python path
  161094. @ \fI2019\-02\-12 18:43:46 UTC\fP
  161095. .INDENT 2.0
  161096. .IP \(bu 2
  161097. 1e0275e Merge pull request \fI\%#51584\fP from dwoz/script_fixes
  161098. .IP \(bu 2
  161099. dbf4356 Use the code directory instead of cwd for python path
  161100. .IP \(bu 2
  161101. cd24006 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  161102. .IP \(bu 2
  161103. 6e55164 Merge branch \(aq2019.2.0.rc1\(aq into merge\-2019.2.0rc1
  161104. .INDENT 2.0
  161105. .IP \(bu 2
  161106. ac73745 Merge branch \(aq2019.2\(aq into fix\-string\-format\-index
  161107. .UNINDENT
  161108. .UNINDENT
  161109. .IP \(bu 2
  161110. \fBPR\fP \fI\%#51583\fP: (\fI\%dwoz\fP) Add testing path to run_script commands
  161111. @ \fI2019\-02\-11 21:38:51 UTC\fP
  161112. .INDENT 2.0
  161113. .IP \(bu 2
  161114. f446c52 Merge pull request \fI\%#51583\fP from dwoz/scriptfix
  161115. .IP \(bu 2
  161116. e49ba86 Add testing path to run_script commands
  161117. .IP \(bu 2
  161118. 788f7e0 Fixed string format index out of range error
  161119. .UNINDENT
  161120. .IP \(bu 2
  161121. \fBPR\fP \fI\%#51405\fP: (\fI\%aplanas\fP) Documentation: fix typo in "equivalent"
  161122. @ \fI2019\-02\-01 21:11:12 UTC\fP
  161123. .INDENT 2.0
  161124. .IP \(bu 2
  161125. c3e27be Merge pull request \fI\%#51405\fP from aplanas/backport_49669
  161126. .IP \(bu 2
  161127. 58279b4 Documentation: fix typo in "equivalent"
  161128. .UNINDENT
  161129. .IP \(bu 2
  161130. \fBPR\fP \fI\%#51406\fP: (\fI\%aplanas\fP) states_pt3: fix rST link format
  161131. @ \fI2019\-02\-01 21:10:43 UTC\fP
  161132. .INDENT 2.0
  161133. .IP \(bu 2
  161134. 5c26652 Merge pull request \fI\%#51406\fP from aplanas/backport_49670
  161135. .IP \(bu 2
  161136. 204432d Merge branch \(aq2019.2\(aq into backport_49670
  161137. .UNINDENT
  161138. .IP \(bu 2
  161139. \fBPR\fP \fI\%#51426\fP: (\fI\%aplanas\fP) mount: cache blkid information
  161140. @ \fI2019\-02\-01 21:09:51 UTC\fP
  161141. .INDENT 2.0
  161142. .IP \(bu 2
  161143. fb70bd3 Merge pull request \fI\%#51426\fP from aplanas/backport_51135
  161144. .IP \(bu 2
  161145. ac790a6 Merge branch \(aq2019.2\(aq into backport_51135
  161146. .IP \(bu 2
  161147. 66743d6 mount: cache blkid information
  161148. .UNINDENT
  161149. .IP \(bu 2
  161150. \fBPR\fP \fI\%#51425\fP: (\fI\%aplanas\fP) cmdmod: add sysfs into the chroot
  161151. @ \fI2019\-02\-01 21:09:00 UTC\fP
  161152. .INDENT 2.0
  161153. .IP \(bu 2
  161154. 2e8bf05 Merge pull request \fI\%#51425\fP from aplanas/backport_51094
  161155. .IP \(bu 2
  161156. 9193106 cmdmod: add sysfs into the chroot
  161157. .UNINDENT
  161158. .IP \(bu 2
  161159. \fBPR\fP \fI\%#51419\fP: (\fI\%aplanas\fP) file: update attributes for lsattr and chattr
  161160. @ \fI2019\-02\-01 21:04:54 UTC\fP
  161161. .INDENT 2.0
  161162. .IP \(bu 2
  161163. d7a47f0 Merge pull request \fI\%#51419\fP from aplanas/backport_50607
  161164. .IP \(bu 2
  161165. ab8a8b8 file: update attributes for lsattr and chattr
  161166. .UNINDENT
  161167. .IP \(bu 2
  161168. \fBPR\fP \fI\%#51414\fP: (\fI\%aplanas\fP) service: SUSE is not based on sysvinit anymore
  161169. @ \fI2019\-02\-01 21:02:33 UTC\fP
  161170. .INDENT 2.0
  161171. .IP \(bu 2
  161172. 7e020dd Merge pull request \fI\%#51414\fP from aplanas/backport_50396
  161173. .IP \(bu 2
  161174. b5cff17 service: SUSE is not based on sysvinit anymore
  161175. .UNINDENT
  161176. .IP \(bu 2
  161177. \fBPR\fP \fI\%#51408\fP: (\fI\%aplanas\fP) parted: fix the ordering of list command
  161178. @ \fI2019\-02\-01 21:00:19 UTC\fP
  161179. .INDENT 2.0
  161180. .IP \(bu 2
  161181. \fBPR\fP \fI\%#50473\fP: (\fI\%aplanas\fP) parted: support variable length output for print (refs: \fI\%#51408\fP)
  161182. .IP \(bu 2
  161183. \fBPR\fP \fI\%#49804\fP: (\fI\%aplanas\fP) parted: fix the ordering of list command (refs: \fI\%#51408\fP)
  161184. .IP \(bu 2
  161185. 9f87dda Merge pull request \fI\%#51408\fP from aplanas/backport_49804
  161186. .IP \(bu 2
  161187. 467daf2 parted: support variable length output for print
  161188. .IP \(bu 2
  161189. da2e632 parted: fix the ordering of list command
  161190. .UNINDENT
  161191. .IP \(bu 2
  161192. \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)
  161193. .IP \(bu 2
  161194. \fBPR\fP \fI\%#51410\fP: (\fI\%aplanas\fP) Fix lowpkg.diff documentation and parameter name
  161195. @ \fI2019\-02\-01 20:57:50 UTC\fP
  161196. .INDENT 2.0
  161197. .IP \(bu 2
  161198. 7e14499 Merge pull request \fI\%#51410\fP from aplanas/backport_50126
  161199. .IP \(bu 2
  161200. d38622e Fix lowpkg.diff documentation and parameter name
  161201. .INDENT 2.0
  161202. .IP \(bu 2
  161203. e61a077 states_pt3: fix rST link format
  161204. .UNINDENT
  161205. .UNINDENT
  161206. .IP \(bu 2
  161207. \fBPR\fP \fI\%#51404\fP: (\fI\%aplanas\fP) blockdev: fix url from comment
  161208. @ \fI2019\-01\-30 20:05:54 UTC\fP
  161209. .INDENT 2.0
  161210. .IP \(bu 2
  161211. a16461b Merge pull request \fI\%#51404\fP from aplanas/backport_49668
  161212. .IP \(bu 2
  161213. da2e30d blockdev: fix url from comment
  161214. .UNINDENT
  161215. .IP \(bu 2
  161216. \fBPR\fP \fI\%#51407\fP: (\fI\%aplanas\fP) parted: fix _validate_partition_boundary
  161217. @ \fI2019\-01\-30 20:05:02 UTC\fP
  161218. .INDENT 2.0
  161219. .IP \(bu 2
  161220. 756c367 Merge pull request \fI\%#51407\fP from aplanas/backport_49803
  161221. .IP \(bu 2
  161222. b004b33 parted: fix _validate_partition_boundary
  161223. .UNINDENT
  161224. .IP \(bu 2
  161225. \fBPR\fP \fI\%#51435\fP: (\fI\%damianosSemmle\fP) Fixed not raised exceptions
  161226. @ \fI2019\-01\-30 18:32:57 UTC\fP
  161227. .INDENT 2.0
  161228. .IP \(bu 2
  161229. 1d45664 Merge pull request \fI\%#51435\fP from damianosSemmle/fix\-raise\-exception
  161230. .IP \(bu 2
  161231. 7a9ff59 Fixed not raised exceptions
  161232. .UNINDENT
  161233. .IP \(bu 2
  161234. \fBPR\fP \fI\%#51336\fP: (\fI\%Ch3LL\fP) [2019.2] Merge Forward from 2019.2.0.rc1 to 2019.2
  161235. @ \fI2019\-01\-27 23:55:08 UTC\fP
  161236. .INDENT 2.0
  161237. .IP \(bu 2
  161238. d4b9093 Merge pull request \fI\%#51336\fP from Ch3LL/merge\-2019.2.0rc1
  161239. .IP \(bu 2
  161240. 62a20b1 Remove unused import
  161241. .IP \(bu 2
  161242. 2284ea5 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  161243. .IP \(bu 2
  161244. 18bf236 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  161245. .UNINDENT
  161246. .IP \(bu 2
  161247. \fBPR\fP \fI\%#51334\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161248. @ \fI2019\-01\-27 23:49:32 UTC\fP
  161249. .INDENT 2.0
  161250. .IP \(bu 2
  161251. 02b43a0 Merge pull request \fI\%#51334\fP from Ch3LL/merge\-2019.2
  161252. .IP \(bu 2
  161253. 25ec653 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  161254. .INDENT 2.0
  161255. .IP \(bu 2
  161256. f62cc11 Merge pull request \fI\%#51324\fP from garethgreenaway/1257_something_something_bytes_argh_python2
  161257. .INDENT 2.0
  161258. .IP \(bu 2
  161259. bd7072f Merge branch \(aq2018.3\(aq into 1257_something_something_bytes_argh_python2
  161260. .UNINDENT
  161261. .IP \(bu 2
  161262. b44cd84 Merge pull request \fI\%#51323\fP from garethgreenaway/network_dns_check_test
  161263. .INDENT 2.0
  161264. .IP \(bu 2
  161265. 055eadc Merge branch \(aq2018.3\(aq into network_dns_check_test
  161266. .UNINDENT
  161267. .IP \(bu 2
  161268. be57a0f Merge pull request \fI\%#51321\fP from terminalmage/issue51256
  161269. .INDENT 2.0
  161270. .IP \(bu 2
  161271. d9c4462 Fix 500 error when using wheel_async
  161272. .IP \(bu 2
  161273. c847f54 Swap passed addr for string rather than ipaddress object.
  161274. .IP \(bu 2
  161275. 87f3972 removing another debugging log.
  161276. .IP \(bu 2
  161277. ad64efb Use MagicMock
  161278. .IP \(bu 2
  161279. 172ad2e removing debugging
  161280. .IP \(bu 2
  161281. 5812eae Adding a test to ensure dns_check works as expected.
  161282. .IP \(bu 2
  161283. 0e542c5 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  161284. .UNINDENT
  161285. .IP \(bu 2
  161286. 85e7ac6 Merge pull request \fI\%#51306\fP from s0undt3ch/2018.3
  161287. .INDENT 2.0
  161288. .IP \(bu 2
  161289. 5f0f296 Add 2018.3 codecov config
  161290. .UNINDENT
  161291. .IP \(bu 2
  161292. 5a398a3 Merge pull request \fI\%#51207\fP from twangboy/fix_test_pkg
  161293. .INDENT 2.0
  161294. .IP \(bu 2
  161295. d4ab6d8 Merge branch \(aq2018.3\(aq into fix_test_pkg
  161296. .UNINDENT
  161297. .IP \(bu 2
  161298. 7a97cb4 Merge pull request \fI\%#51252\fP from dwoz/issue\-50221
  161299. .INDENT 2.0
  161300. .IP \(bu 2
  161301. f96828a Merge branch \(aq2018.3\(aq into issue\-50221
  161302. .UNINDENT
  161303. .IP \(bu 2
  161304. 253f5e4 Merge pull request \fI\%#51264\fP from gtmanfred/2018.3
  161305. .INDENT 2.0
  161306. .IP \(bu 2
  161307. f3ebd32 Merge branch \(aq2018.3\(aq into 2018.3
  161308. .UNINDENT
  161309. .IP \(bu 2
  161310. aacc047 Merge pull request \fI\%#51274\fP from twangboy/fix_network
  161311. .INDENT 2.0
  161312. .IP \(bu 2
  161313. 344bf65 Fix tests. We no longer get \fIipaddress\fP instances back.
  161314. .IP \(bu 2
  161315. 345aa5b Fix minion start issue
  161316. .INDENT 2.0
  161317. .IP \(bu 2
  161318. f553be7 tuples don\(aqt have pop
  161319. .IP \(bu 2
  161320. 55ea80e don\(aqt shadow builtin
  161321. .IP \(bu 2
  161322. 6148c50 an argument is not always needed to be passed to open a file
  161323. .UNINDENT
  161324. .UNINDENT
  161325. .IP \(bu 2
  161326. 8a89cb2 Merge pull request \fI\%#51279\fP from twangboy/backport_lgpo
  161327. .INDENT 2.0
  161328. .IP \(bu 2
  161329. 06b1545 Remove network.py patch
  161330. .IP \(bu 2
  161331. 2356f25 Add __context__ support
  161332. .INDENT 2.0
  161333. .IP \(bu 2
  161334. a5255f0 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into issue\-50221
  161335. .UNINDENT
  161336. .UNINDENT
  161337. .IP \(bu 2
  161338. 6796e65 Merge pull request \fI\%#51276\fP from garethgreenaway/merge\-2018.3
  161339. .INDENT 2.0
  161340. .IP \(bu 2
  161341. 44ddc43 Merge branch \(aq2018.3\(aq into merge\-2018.3
  161342. .UNINDENT
  161343. .IP \(bu 2
  161344. 0adde9b Merge pull request \fI\%#51220\fP from sathieu/artifactory\-classifier\-2018.3
  161345. .INDENT 2.0
  161346. .IP \(bu 2
  161347. a85f146 fixes \fI\%#31179\fP by appling the same logic as used in the nexus module
  161348. .UNINDENT
  161349. .IP \(bu 2
  161350. f6a7cad Merge pull request \fI\%#51225\fP from astronouth7303/loader\-docs\-2018.3
  161351. .INDENT 2.0
  161352. .IP \(bu 2
  161353. 6e7da95 Add the tokens system.
  161354. .IP \(bu 2
  161355. 7e2838c Add reference to the execution module docs
  161356. .IP \(bu 2
  161357. f30f9e8 Remove search system
  161358. .IP \(bu 2
  161359. f0cc183 Fileserver modules can be loaded from the fileserver.
  161360. .UNINDENT
  161361. .IP \(bu 2
  161362. 1a2f680 Merge pull request \fI\%#51239\fP from garethgreenaway/51208_file_manage_escaped_double_quotes
  161363. .INDENT 2.0
  161364. .IP \(bu 2
  161365. 4251c0c Merge branch \(aq2018.3\(aq into 51208_file_manage_escaped_double_quotes
  161366. .IP \(bu 2
  161367. 6a9daa7 Merge branch \(aq2018.3\(aq into 51208_file_manage_escaped_double_quotes
  161368. .IP \(bu 2
  161369. 0bf468c Fixing lint. Using a constant intead of looking for the condition in the string.
  161370. .IP \(bu 2
  161371. a233dbc Ensuring we can handle a string that contains single quote + an escaped double quote.
  161372. .UNINDENT
  161373. .IP \(bu 2
  161374. d614127 Merge pull request \fI\%#51261\fP from OrangeDog/patch\-2
  161375. .INDENT 2.0
  161376. .IP \(bu 2
  161377. d809b9b Avoid double\-counting errors and ignore test runs
  161378. .IP \(bu 2
  161379. 6ca7deb Remove unused host parameter and average/disaster keys
  161380. .IP \(bu 2
  161381. 2d44527 Just let zabbix_sender use the config file
  161382. .IP \(bu 2
  161383. 6404e2c Fix fallback command so it\(aqs actually run
  161384. .IP \(bu 2
  161385. b79a55a Fix KeyError in Zabbix returner
  161386. .INDENT 2.0
  161387. .INDENT 3.5
  161388. .INDENT 0.0
  161389. .IP \(bu 2
  161390. 0971035 Merge branch \(aq2018.3\(aq into merge\-2018.3
  161391. .IP \(bu 2
  161392. 243dc06 Merge branch \(aq2017.7\(aq into merge\-2018.3
  161393. .INDENT 2.0
  161394. .IP \(bu 2
  161395. acfb7d8 Update pytest requirements
  161396. .IP \(bu 2
  161397. c19479b Move all of PyTest requirements to its own requiremnts file
  161398. .IP \(bu 2
  161399. 39e633f Merge pull request \fI\%#51246\fP from garethgreenaway/bp\-50358
  161400. .INDENT 2.0
  161401. .IP \(bu 2
  161402. c33c558 Backport \fI\%#50358\fP to 2017.7
  161403. .IP \(bu 2
  161404. c1ea10f Fix py3 managed.file test failure
  161405. .IP \(bu 2
  161406. 537114c Remoe un\-needed log statement
  161407. .IP \(bu 2
  161408. ac978f0 Fix 50221 regression test on Windows
  161409. .IP \(bu 2
  161410. 65f38b5 peserve newlines from pillar data for file.managed
  161411. .IP \(bu 2
  161412. 464d813 Merge branch \(aq2018.3\(aq into fix_test_pkg
  161413. .UNINDENT
  161414. .UNINDENT
  161415. .UNINDENT
  161416. .UNINDENT
  161417. .UNINDENT
  161418. .UNINDENT
  161419. .IP \(bu 2
  161420. 276d621 Merge pull request \fI\%#51197\fP from Ch3LL/tag_manager
  161421. .INDENT 2.0
  161422. .IP \(bu 2
  161423. b9a0705 Merge branch \(aq2018.3\(aq into tag_manager
  161424. .IP \(bu 2
  161425. 210238b Merge branch \(aq2018.3\(aq into tag_manager
  161426. .IP \(bu 2
  161427. 827d6c3 Merge branch \(aq2018.3\(aq into tag_manager
  161428. .IP \(bu 2
  161429. fcdfe69 Add Google Tag Manager to Docs
  161430. .UNINDENT
  161431. .IP \(bu 2
  161432. c8e70a9 Merge pull request \fI\%#51206\fP from terminalmage/fix\-reload
  161433. .INDENT 2.0
  161434. .IP \(bu 2
  161435. 8e23a6c Add missing import
  161436. .IP \(bu 2
  161437. 31ca7c6 Fix usage of reload for PY3 compatibility
  161438. .UNINDENT
  161439. .IP \(bu 2
  161440. 41ae390 Merge pull request \fI\%#51231\fP from terminalmage/issue51056
  161441. .INDENT 2.0
  161442. .IP \(bu 2
  161443. 4a61477 Clarify documentation for the the gitfs "all_saltenvs" config param
  161444. .INDENT 2.0
  161445. .INDENT 3.5
  161446. .INDENT 0.0
  161447. .IP \(bu 2
  161448. 0574476 Merge branch \(aq2018.3\(aq into fix_test_pkg
  161449. .IP \(bu 2
  161450. b91b2c6 Backport PR# 50771 to 2018.3 branch
  161451. .UNINDENT
  161452. .UNINDENT
  161453. .UNINDENT
  161454. .UNINDENT
  161455. .UNINDENT
  161456. .UNINDENT
  161457. .IP \(bu 2
  161458. \fBPR\fP \fI\%#51314\fP: (\fI\%s0undt3ch\fP) [2019.2] Allow running runtests.py using tox
  161459. @ \fI2019\-01\-25 18:56:01 UTC\fP
  161460. .INDENT 2.0
  161461. .IP \(bu 2
  161462. 95607d1 Merge pull request \fI\%#51314\fP from s0undt3ch/features/tox\-runtests\-2019.2
  161463. .IP \(bu 2
  161464. 39fb981 "Tell" coverage to track subprocesses.
  161465. .IP \(bu 2
  161466. f27589a Remove unused imports
  161467. .IP \(bu 2
  161468. 3000d20 Fix tests. We no longer get \fIipaddress\fP instances back.
  161469. .IP \(bu 2
  161470. 8fcf235 Fix minion start issue
  161471. .IP \(bu 2
  161472. a26ba7f Don\(aqt fail the test because of order
  161473. .IP \(bu 2
  161474. 138ca2e Show objects on assertion failure
  161475. .IP \(bu 2
  161476. 840b3d2 Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  161477. .IP \(bu 2
  161478. 716bda4 Remove duplicate dependency
  161479. .IP \(bu 2
  161480. 6d62156 Add \fI\&.coveragerc\fP
  161481. .IP \(bu 2
  161482. 6bb56ce Run tests from tox, wether runtests or pytest
  161483. .UNINDENT
  161484. .IP \(bu 2
  161485. \fBPR\fP \fI\%#51307\fP: (\fI\%s0undt3ch\fP) Add 2019.2 codecov config
  161486. @ \fI2019\-01\-24 13:34:25 UTC\fP
  161487. .INDENT 2.0
  161488. .IP \(bu 2
  161489. b348034 Merge pull request \fI\%#51307\fP from s0undt3ch/2019.2
  161490. .IP \(bu 2
  161491. 495aa5c Add 2019.2 codecov config
  161492. .UNINDENT
  161493. .IP \(bu 2
  161494. \fBPR\fP \fI\%#51280\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2019.2.0rc1 to 2019.2
  161495. @ \fI2019\-01\-23 07:08:32 UTC\fP
  161496. .INDENT 2.0
  161497. .IP \(bu 2
  161498. d224096 Merge pull request \fI\%#51280\fP from garethgreenaway/merge\-2019.2\-rc
  161499. .IP \(bu 2
  161500. e78ede2 Merge branch \(aq2019.2\(aq into merge\-2019.2\-rc
  161501. .IP \(bu 2
  161502. a425de6 Merge branch \(aq2019.2.0.rc1\(aq into merge\-2019.2\-rc
  161503. .UNINDENT
  161504. .IP \(bu 2
  161505. \fBPR\fP \fI\%#51277\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161506. @ \fI2019\-01\-23 07:01:29 UTC\fP
  161507. .INDENT 2.0
  161508. .IP \(bu 2
  161509. 8596ee4 Merge pull request \fI\%#51277\fP from garethgreenaway/merge\-2019.2
  161510. .IP \(bu 2
  161511. f05e754 Merge branch \(aq2019.2\(aq into merge\-2019.2
  161512. .UNINDENT
  161513. .IP \(bu 2
  161514. \fBISSUE\fP \fI\%#51273\fP: (\fI\%isbm\fP) How to properly fix API? (refs: \fI\%#51285\fP)
  161515. .IP \(bu 2
  161516. \fBPR\fP \fI\%#51285\fP: (\fI\%garethgreenaway\fP) [2019.2] Add metadata to accepted keyword arguments
  161517. @ \fI2019\-01\-22 23:07:44 UTC\fP
  161518. .INDENT 2.0
  161519. .IP \(bu 2
  161520. 8cca51b Merge pull request \fI\%#51285\fP from garethgreenaway/51273_metadata_auth_keyword_argument
  161521. .IP \(bu 2
  161522. bd82d80 Ensure metadata is an accepted keyword argument for authentication functions.
  161523. .IP \(bu 2
  161524. d0d5726 Merge branch \(aq2018.3\(aq into merge\-2019.2
  161525. .IP \(bu 2
  161526. a6a9040 Merge pull request \fI\%#51179\fP from terminalmage/fix\-regex\-chars
  161527. .INDENT 2.0
  161528. .IP \(bu 2
  161529. 9951b8d Fix possible oversight in nodegroup modifications
  161530. .UNINDENT
  161531. .IP \(bu 2
  161532. d5acd5b Merge pull request \fI\%#51170\fP from dwoz/issue51158
  161533. .INDENT 2.0
  161534. .IP \(bu 2
  161535. b69c002 Fix saltmod roster test
  161536. .IP \(bu 2
  161537. 2594f24 Roster defines the roster system not a file
  161538. .IP \(bu 2
  161539. 05836b3 Merge branch \(aq2018.3\(aq into issue51158
  161540. .IP \(bu 2
  161541. bf47f6f Fix linter
  161542. .IP \(bu 2
  161543. 6223596 Honor roster file for ssh orchestrations
  161544. .UNINDENT
  161545. .IP \(bu 2
  161546. 5543a53 Update pytest requirements
  161547. .IP \(bu 2
  161548. f958df5 Move all of PyTest requirements to its own requiremnts file
  161549. .IP \(bu 2
  161550. 8f8ebbc Merge pull request \fI\%#51226\fP from garethgreenaway/51195_handle_spaces_in_fstab_opts
  161551. .INDENT 2.0
  161552. .IP \(bu 2
  161553. 1902ce8 Merge branch \(aq2018.3\(aq into 51195_handle_spaces_in_fstab_opts
  161554. .UNINDENT
  161555. .IP \(bu 2
  161556. e3a9e99 Merge pull request \fI\%#51233\fP from Ch3LL/bp\-51105
  161557. .INDENT 2.0
  161558. .IP \(bu 2
  161559. eef49e8 Merge branch \(aq2018.3\(aq into bp\-51105
  161560. .UNINDENT
  161561. .IP \(bu 2
  161562. e53e9b1 Merge pull request \fI\%#51230\fP from Ch3LL/merge\-2018.3
  161563. .INDENT 2.0
  161564. .IP \(bu 2
  161565. 0ef7675 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  161566. .IP \(bu 2
  161567. 4a12c5f Merge pull request \fI\%#50852\fP from mirceaulinic/fix\-capirca
  161568. .INDENT 2.0
  161569. .IP \(bu 2
  161570. fa91267 Merge branch \(aq2017.7\(aq into fix\-capirca
  161571. .IP \(bu 2
  161572. 71913ff Merge branch \(aq2017.7\(aq into fix\-capirca
  161573. .IP \(bu 2
  161574. 6fc3484 Lint?
  161575. .IP \(bu 2
  161576. 3d56750 Extra newline for lint
  161577. .IP \(bu 2
  161578. 5176cd8 Improve the Capirca and related modules for ACL config generation
  161579. .UNINDENT
  161580. .IP \(bu 2
  161581. 3f4759b Merge pull request \fI\%#50923\fP from astronouth7303/patch\-2
  161582. .INDENT 2.0
  161583. .IP \(bu 2
  161584. 4f631a6 Document {% include %}
  161585. .UNINDENT
  161586. .IP \(bu 2
  161587. 210e817 Merge pull request \fI\%#51111\fP from s0undt3ch/2017.7
  161588. .INDENT 2.0
  161589. .IP \(bu 2
  161590. 08e0ae7 Update to salt\-bootstrap v2019.01.08
  161591. .INDENT 2.0
  161592. .IP \(bu 2
  161593. c3520aa Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  161594. .IP \(bu 2
  161595. cd80548 When test=True and there are permissions changes, report it.
  161596. .IP \(bu 2
  161597. 89345eb Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  161598. .UNINDENT
  161599. .UNINDENT
  161600. .UNINDENT
  161601. .UNINDENT
  161602. .IP \(bu 2
  161603. \fBISSUE\fP \fI\%#50538\fP: (\fI\%sjorge\fP) salt.modules.pdbedit broken on Samba 4.9.x (refs: \fI\%#50540\fP, \fI\%#51221\fP)
  161604. .IP \(bu 2
  161605. \fBPR\fP \fI\%#51221\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50538\fP into 2019.2
  161606. @ \fI2019\-01\-18 22:42:36 UTC\fP
  161607. .INDENT 2.0
  161608. .IP \(bu 2
  161609. \fBPR\fP \fI\%#50540\fP: (\fI\%sjorge\fP) Fix pdbedit module on samba 4.9 (Fixes \fI\%#50538\fP)
  161610. .IP \(bu 2
  161611. 0ccd5c3 Merge pull request \fI\%#51221\fP from Ch3LL/bp\-50540
  161612. .IP \(bu 2
  161613. 223e7c0 Merge branch \(aq2019.2\(aq into bp\-50540
  161614. .UNINDENT
  161615. .IP \(bu 2
  161616. \fBPR\fP \fI\%#51232\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161617. @ \fI2019\-01\-18 20:51:37 UTC\fP
  161618. .INDENT 2.0
  161619. .IP \(bu 2
  161620. 3edaf18 Merge pull request \fI\%#51232\fP from Ch3LL/merge\-2019.2
  161621. .IP \(bu 2
  161622. 3b966f3 Merge branch \(aq2019.2\(aq into merge\-2019.2
  161623. .IP \(bu 2
  161624. ffe23fa Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  161625. .INDENT 2.0
  161626. .IP \(bu 2
  161627. 26008ef Merge pull request \fI\%#51212\fP from sathieu/file_roots_slash
  161628. .INDENT 2.0
  161629. .IP \(bu 2
  161630. b769f18 Allow slash in file_roots envs
  161631. .IP \(bu 2
  161632. f9437e2 Test for file_roots envs with slash leads to "No such file or directory"
  161633. .UNINDENT
  161634. .IP \(bu 2
  161635. 5916282 Merge pull request \fI\%#51209\fP from garethgreenaway/bp\-51124
  161636. .INDENT 2.0
  161637. .IP \(bu 2
  161638. 82acce4 Handle encoding when opening file for both py2/py3
  161639. .UNINDENT
  161640. .IP \(bu 2
  161641. 094bd33 Merge pull request \fI\%#51184\fP from twangboy/fix_auditpol
  161642. .INDENT 2.0
  161643. .IP \(bu 2
  161644. 2e68d35 directly call cmd.run_all
  161645. .UNINDENT
  161646. .IP \(bu 2
  161647. ac71922 Merge pull request \fI\%#51191\fP from Ch3LL/bp\-50918
  161648. .INDENT 2.0
  161649. .IP \(bu 2
  161650. 7300d84 Skip debian tests on Windows
  161651. .IP \(bu 2
  161652. 4622433 Fix \fItest_debian_ip\fP on Windows
  161653. .UNINDENT
  161654. .IP \(bu 2
  161655. e7f53a3 Merge pull request \fI\%#51144\fP from jgleissner/2018.3\-azurearm\-py3
  161656. .INDENT 2.0
  161657. .IP \(bu 2
  161658. 3178f1a msazure.py: remove unused imports
  161659. .IP \(bu 2
  161660. 99a4b9d azurearm: fix list_locations
  161661. .IP \(bu 2
  161662. aebe34b azurearm: fix show_instance function
  161663. .IP \(bu 2
  161664. d80669f msazure: fix object_to_dict for python 3
  161665. .UNINDENT
  161666. .IP \(bu 2
  161667. 1206f92 Merge pull request \fI\%#51171\fP from twangboy/fix_crypt
  161668. .INDENT 2.0
  161669. .IP \(bu 2
  161670. 6caa93b Add random sleep time to avoid overloading Windows
  161671. .UNINDENT
  161672. .IP \(bu 2
  161673. a96deed Merge pull request \fI\%#51174\fP from jpsv/2018.3
  161674. .INDENT 2.0
  161675. .IP \(bu 2
  161676. 055823e Update opsgenie.py
  161677. .IP \(bu 2
  161678. 501c8df Merge branch \(aq2018.3\(aq into 2018.3
  161679. .IP \(bu 2
  161680. 220aa8a Update opsgenie.py
  161681. .IP \(bu 2
  161682. 5dc21cc Update to from V1 API to V2
  161683. .IP \(bu 2
  161684. f93ce7c Update to V2 API
  161685. .UNINDENT
  161686. .IP \(bu 2
  161687. 563d487 Merge pull request \fI\%#51010\fP from amendlik/ldap\-groups
  161688. .INDENT 2.0
  161689. .IP \(bu 2
  161690. cd336ed Merge branch \(aq2018.3\(aq into ldap\-groups
  161691. .IP \(bu 2
  161692. 94f8ee4 Update unit tests for auth.ldap
  161693. .IP \(bu 2
  161694. 08e36d0 Allow unauthenticated bind for listing LDAP groups
  161695. .UNINDENT
  161696. .IP \(bu 2
  161697. 6dc3752 Merge pull request \fI\%#51112\fP from s0undt3ch/2018.3
  161698. .INDENT 2.0
  161699. .IP \(bu 2
  161700. 4f1d846 Update to salt\-bootstrap v2019.01.08
  161701. .UNINDENT
  161702. .IP \(bu 2
  161703. b19c990 Merge pull request \fI\%#51097\fP from terminalmage/fix\-keyerror\-raise
  161704. .INDENT 2.0
  161705. .IP \(bu 2
  161706. a3c0b49 Fix poorly\-written test
  161707. .IP \(bu 2
  161708. c0ff7b1 Fix more incorrect exception raises
  161709. .IP \(bu 2
  161710. f11dbcc Fix improper KeyError raise
  161711. .UNINDENT
  161712. .IP \(bu 2
  161713. 8920a86 Merge pull request \fI\%#51169\fP from twangboy/fix_git_state
  161714. .INDENT 2.0
  161715. .IP \(bu 2
  161716. f2d1180 More descriptive error when missing GitPython or PyGit2
  161717. .UNINDENT
  161718. .IP \(bu 2
  161719. 58eede6 Merge pull request \fI\%#51173\fP from dwoz/issue51160
  161720. .INDENT 2.0
  161721. .IP \(bu 2
  161722. 11cc7b3 Remove un\-needed test
  161723. .IP \(bu 2
  161724. 0f87812 Merge develop, Revert exception handling
  161725. .IP \(bu 2
  161726. 7365a1a Pass bytes to idna
  161727. .UNINDENT
  161728. .IP \(bu 2
  161729. 83c38c6 Revert "wordsmithing"
  161730. .IP \(bu 2
  161731. a40739c wordsmithing
  161732. .IP \(bu 2
  161733. b348ace Make sure blackout tests clean up after themselves. Properly.
  161734. .IP \(bu 2
  161735. 68a12d5 These should not be considered destructive tests
  161736. .IP \(bu 2
  161737. 475404d fix docstring quote style
  161738. .IP \(bu 2
  161739. 71c3574 Revert "backport test improvements from develop"
  161740. .IP \(bu 2
  161741. e32d219 backport test improvements from develop Bogus random test failures forklifted from develop at 414bfe61a4fbe6f84be32242924f23c7126c24d6
  161742. .IP \(bu 2
  161743. 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. "
  161744. .IP \(bu 2
  161745. 27254fc syntax error bad parentheses
  161746. .IP \(bu 2
  161747. 24bb94f Don\(aqt ip_bracket addresses returned by check_dns.
  161748. .IP \(bu 2
  161749. 02b825e expose error in tests
  161750. .IP \(bu 2
  161751. 0a92c46 Need more detail on test failure
  161752. .IP \(bu 2
  161753. 3574698 ip_address does not need str() and parse_host_port handles ipv6 or ipv4
  161754. .IP \(bu 2
  161755. 7a6bc57 avoid TypeError by not constructing an ip_address from an ip_address
  161756. .IP \(bu 2
  161757. 35410dd try to debug error in tests (revert me)
  161758. .IP \(bu 2
  161759. 2f8ca47 wordsmithing
  161760. .IP \(bu 2
  161761. 1dd1f7d parsing logic error
  161762. .IP \(bu 2
  161763. 98041c1 minimize diff
  161764. .IP \(bu 2
  161765. c92a247 don\(aqt try to handle/log test exception
  161766. .IP \(bu 2
  161767. eb60586 remove bad extra test assertion inside exception handler
  161768. .IP \(bu 2
  161769. e1e5d87 checking for truthiness better than len
  161770. .IP \(bu 2
  161771. a984a43 typo in ipaddress.IPv6Address()
  161772. .IP \(bu 2
  161773. 5fc6c60 clear up lint, disambiguation
  161774. .IP \(bu 2
  161775. 8c6dfea lint pep8 whitespace
  161776. .IP \(bu 2
  161777. f9594b8 don\(aqt test invalid combination
  161778. .IP \(bu 2
  161779. de823fd fix good_host_ports iteration
  161780. .IP \(bu 2
  161781. c5a5b34 test assertion correction
  161782. .IP \(bu 2
  161783. e169e0d fixup rebase merge goof
  161784. .IP \(bu 2
  161785. d28bab6 fix test setup
  161786. .IP \(bu 2
  161787. 42c710e lint pep8
  161788. .IP \(bu 2
  161789. 15c6deb fix horrible mistakes
  161790. .IP \(bu 2
  161791. c092baf fix indentation doh
  161792. .IP \(bu 2
  161793. 9080745 debug ipaddress.ip_address TypeError
  161794. .IP \(bu 2
  161795. 8bd82f4 debug ipaddress.ip_address TypeError
  161796. .IP \(bu 2
  161797. 080ab70 fix parse_host_port() parse error on hostname only arg
  161798. .IP \(bu 2
  161799. 571603c coverage for master host:port ipv4 and ipv6 config value support fix test_parse_host_port bad values lint
  161800. .IP \(bu 2
  161801. f14ff16 fix minion zmq connecting to master configured as IPv6 address
  161802. .IP \(bu 2
  161803. 9d72f13 pylint E741 triggers error in salt\-pylint E8741 (unhandled)
  161804. .IP \(bu 2
  161805. 2052838 avoid error on (redundant) is_ip check
  161806. .IP \(bu 2
  161807. 0eaeb1e avoid error on (redundant) is_ip check
  161808. .IP \(bu 2
  161809. f8bd08e fix parse_host_port() is_ip call
  161810. .IP \(bu 2
  161811. 89519fe fix parse_host_port() parse error on hostname only arg
  161812. .IP \(bu 2
  161813. 1417528 fix parse_host_port() bad exception on hostname only arg
  161814. .IP \(bu 2
  161815. 194a024 coverage for master host:port ipv4 and ipv6 config value support fix test_parse_host_port bad values lint
  161816. .IP \(bu 2
  161817. df73388 fix minion zmq connecting to master configured as IPv6 address
  161818. .IP \(bu 2
  161819. 06854cf Merge pull request \fI\%#51147\fP from Ch3LL/merge\-2018.3
  161820. .INDENT 2.0
  161821. .IP \(bu 2
  161822. d39d8b7 Merge branch \(aq2018.3\(aq into merge\-2018.3
  161823. .UNINDENT
  161824. .IP \(bu 2
  161825. b79c09e Merge pull request \fI\%#51161\fP from amendlik/long\-hostname
  161826. .INDENT 2.0
  161827. .IP \(bu 2
  161828. 6fcc4ad Merge branch \(aq2018.3\(aq into long\-hostname
  161829. .UNINDENT
  161830. .IP \(bu 2
  161831. 1424734 Merge pull request \fI\%#51159\fP from rkrieger/fix\-issue\-51067
  161832. .INDENT 2.0
  161833. .IP \(bu 2
  161834. 1440ccf Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  161835. .IP \(bu 2
  161836. 1a4e307 Ignore exceptions when generating the minion ID
  161837. .UNINDENT
  161838. .IP \(bu 2
  161839. 5e37326 Merge pull request \fI\%#51146\fP from terminalmage/fix\-vsphere\-tuple\-issue
  161840. .INDENT 2.0
  161841. .IP \(bu 2
  161842. 5d60022 Fix invalid assignment in vsphere module
  161843. .UNINDENT
  161844. .IP \(bu 2
  161845. fad8621 Merge pull request \fI\%#51154\fP from twangboy/auditpol
  161846. .INDENT 2.0
  161847. .IP \(bu 2
  161848. 9064376 Add support for Advanced Audit policies
  161849. .UNINDENT
  161850. .IP \(bu 2
  161851. f7a100c Merge pull request \fI\%#51151\fP from Ch3LL/bp_51061
  161852. .INDENT 2.0
  161853. .IP \(bu 2
  161854. 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.
  161855. .UNINDENT
  161856. .IP \(bu 2
  161857. 3a50a57 Merge pull request \fI\%#51150\fP from Ch3LL/bp\-49508
  161858. .INDENT 2.0
  161859. .IP \(bu 2
  161860. 7ae53ad Do not silently ignore errors.
  161861. .IP \(bu 2
  161862. deb0134 Convert to string before sending via \(aqpublish\(aq.
  161863. .IP \(bu 2
  161864. 651c551 Use to_str salt.utils when writing to a file.
  161865. .UNINDENT
  161866. .IP \(bu 2
  161867. 8bb589d Merge pull request \fI\%#51152\fP from garethgreenaway/50433_handle_grants_better
  161868. .INDENT 2.0
  161869. .IP \(bu 2
  161870. f7caa4d Fixing lint
  161871. .IP \(bu 2
  161872. e8c8c0f Adding some tests to ensure "ALL PRIVILEGES" is handled correctly in 8.0 and 5.6
  161873. .IP \(bu 2
  161874. 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.
  161875. .INDENT 2.0
  161876. .IP \(bu 2
  161877. 74edfd9 Fix pylint
  161878. .IP \(bu 2
  161879. 81a3d47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  161880. .IP \(bu 2
  161881. 8a76a19 Merge pull request \fI\%#50858\fP from jasonarewhy/bugfix\-2017.7/ubuntu\-networking\-searchdomain
  161882. .INDENT 2.0
  161883. .IP \(bu 2
  161884. 3395a3d Merge branch \(aq2017.7\(aq into bugfix\-2017.7/ubuntu\-networking\-searchdomain
  161885. .IP \(bu 2
  161886. 69d25aa update debian_ip test
  161887. .IP \(bu 2
  161888. a6b896c get searchdomain in Ubuntu 12+
  161889. .UNINDENT
  161890. .UNINDENT
  161891. .UNINDENT
  161892. .IP \(bu 2
  161893. dda1ebb Merge pull request \fI\%#51133\fP from 5uper5hoot/issue\-\fI\%#50849\fP
  161894. .INDENT 2.0
  161895. .IP \(bu 2
  161896. ec14e13 Fixes mysql server version comparison.
  161897. .UNINDENT
  161898. .IP \(bu 2
  161899. 9d4321d Merge pull request \fI\%#50878\fP from max\-arnold/output\-docs
  161900. .INDENT 2.0
  161901. .IP \(bu 2
  161902. d7403da Fix profile outputter docs
  161903. .UNINDENT
  161904. .IP \(bu 2
  161905. ce87504 Merge pull request \fI\%#51076\fP from OrangeDog/patch\-1
  161906. .INDENT 2.0
  161907. .IP \(bu 2
  161908. 568e4fb Revert add \-> check
  161909. .IP \(bu 2
  161910. 4d7ebe7 Typos in index_template_present documentation
  161911. .UNINDENT
  161912. .IP \(bu 2
  161913. d08abf4 Merge pull request \fI\%#51081\fP from garethgreenaway/merge\-2018.3
  161914. .INDENT 2.0
  161915. .IP \(bu 2
  161916. 027804a Merge branch \(aq2018.3\(aq into merge\-2018.3
  161917. .UNINDENT
  161918. .IP \(bu 2
  161919. 335088b Merge pull request \fI\%#51080\fP from garethgreenaway/50966_nxos_ensure_kwargs_list
  161920. .IP \(bu 2
  161921. 230a66b Merge branch \(aq2018.3\(aq into 50966_nxos_ensure_kwargs_list
  161922. .IP \(bu 2
  161923. 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.
  161924. .IP \(bu 2
  161925. a20791b Merge branch \(aq2018.3\(aq into merge\-2018.3
  161926. .IP \(bu 2
  161927. 9386aab Merge branch \(aq2017.7\(aq into merge\-2018.3
  161928. .IP \(bu 2
  161929. 998feca Merge pull request \fI\%#51030\fP from terminalmage/issue38502
  161930. .IP \(bu 2
  161931. 6dbd81f Add unit test to ensure we don\(aqt diff bare repos
  161932. .IP \(bu 2
  161933. 3c4b243 Merge branch \(aq2019.2\(aq into bp\-50540
  161934. .UNINDENT
  161935. .UNINDENT
  161936. .IP \(bu 2
  161937. \fBPR\fP \fI\%#51234\fP: (\fI\%KChandrashekhar\fP) Added a note in Release notes about py 2.7 EOL
  161938. @ \fI2019\-01\-18 15:53:51 UTC\fP
  161939. .INDENT 2.0
  161940. .IP \(bu 2
  161941. e6ab913 Merge pull request \fI\%#51234\fP from KChandrashekhar/2019.2\-docs
  161942. .IP \(bu 2
  161943. e4afc81 Addressing Megan\(aqs comment to fix the py2.7 deprecation message in release notes
  161944. .IP \(bu 2
  161945. 8ec0296 Added a note in Release notes about py 2.7 EOL
  161946. .UNINDENT
  161947. .IP \(bu 2
  161948. \fBPR\fP \fI\%#51198\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2019.2.0.rc1 to 2019.2
  161949. @ \fI2019\-01\-17 21:23:34 UTC\fP
  161950. .INDENT 2.0
  161951. .IP \(bu 2
  161952. 644ef8c Merge pull request \fI\%#51198\fP from Ch3LL/merge\-2019.2\-rc
  161953. .IP \(bu 2
  161954. 810c611 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  161955. .IP \(bu 2
  161956. 3f61e77 Fix pdbedit module on samba 4.9 (Fixes \fI\%#50538\fP)
  161957. .UNINDENT
  161958. .IP \(bu 2
  161959. \fBPR\fP \fI\%#51148\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161960. @ \fI2019\-01\-14 22:49:02 UTC\fP
  161961. .INDENT 2.0
  161962. .IP \(bu 2
  161963. 12901c3 Merge pull request \fI\%#51148\fP from Ch3LL/merge\-2019.2
  161964. .IP \(bu 2
  161965. 1d7329a Fix pylint
  161966. .IP \(bu 2
  161967. 5271636 Fixes mysql server version comparison.
  161968. .IP \(bu 2
  161969. 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.
  161970. .IP \(bu 2
  161971. d0f2d15 Revert add \-> check
  161972. .IP \(bu 2
  161973. 437d8b5 Typos in index_template_present documentation
  161974. .IP \(bu 2
  161975. 3bf189e Add unit test to ensure we don\(aqt diff bare repos
  161976. .IP \(bu 2
  161977. 2f8e391 Fix profile outputter docs
  161978. .UNINDENT
  161979. .IP \(bu 2
  161980. \fBPR\fP \fI\%#51100\fP: (\fI\%dwoz\fP) Fix typo in method name (2019.2)
  161981. @ \fI2019\-01\-08 18:12:23 UTC\fP
  161982. .INDENT 2.0
  161983. .IP \(bu 2
  161984. 4c2d76d Merge pull request \fI\%#51100\fP from dwoz/cloud_typo
  161985. .IP \(bu 2
  161986. 60f53d0 Fix typo in method name
  161987. .UNINDENT
  161988. .IP \(bu 2
  161989. \fBPR\fP \fI\%#51099\fP: (\fI\%terminalmage\fP) Fix improper exception raises (2019.2)
  161990. @ \fI2019\-01\-08 17:55:53 UTC\fP
  161991. .INDENT 2.0
  161992. .IP \(bu 2
  161993. 39b28f4 Merge pull request \fI\%#51099\fP from terminalmage/fix\-exception\-raise
  161994. .IP \(bu 2
  161995. 2a25530 Fix improper exception raise
  161996. .UNINDENT
  161997. .IP \(bu 2
  161998. \fBPR\fP \fI\%#51084\fP: (\fI\%s0undt3ch\fP) [fluorine] Cleanup the singleton instances map.
  161999. @ \fI2019\-01\-07 22:03:29 UTC\fP
  162000. .INDENT 2.0
  162001. .IP \(bu 2
  162002. 8827193 Merge pull request \fI\%#51084\fP from s0undt3ch/merge\-singleton\-last\-ref\-close\-fluorine
  162003. .IP \(bu 2
  162004. 979fbac Merge branch \(aq2019.2\(aq into merge\-singleton\-last\-ref\-close\-fluorine
  162005. .IP \(bu 2
  162006. 63f051a Merge branch \(aq2019.2\(aq into merge\-singleton\-last\-ref\-close\-fluorine
  162007. .IP \(bu 2
  162008. bd6c46d Cleanup the singleton instances map.
  162009. .UNINDENT
  162010. .UNINDENT
  162011. .SS Salt 2019.2.2 Release Notes
  162012. .sp
  162013. Version 2019.2.2 is a bugfix release for 2019.2.0\&.
  162014. .SS Statistics
  162015. .INDENT 0.0
  162016. .IP \(bu 2
  162017. Total Merges: \fB26\fP
  162018. .IP \(bu 2
  162019. Total Issue References: \fB12\fP
  162020. .IP \(bu 2
  162021. Total PR References: \fB26\fP
  162022. .IP \(bu 2
  162023. 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)
  162024. .UNINDENT
  162025. .SS Changelog for v2019.2.1..v2019.2.2
  162026. .sp
  162027. \fIGenerated at: 2019\-10\-11 20:54:15 UTC\fP
  162028. .INDENT 0.0
  162029. .IP \(bu 2
  162030. \fBPR\fP \fI\%#54919\fP: (\fI\%twangboy\fP) Add missing docs for win_wusa state and module (2019.2.1)
  162031. @ \fI2019\-10\-11 18:28:11 UTC\fP
  162032. .INDENT 2.0
  162033. .IP \(bu 2
  162034. 7d253bc Merge pull request \fI\%#54919\fP from twangboy/update_docs
  162035. .IP \(bu 2
  162036. 57ff199 Add docs for win_wusa
  162037. .UNINDENT
  162038. .IP \(bu 2
  162039. \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)
  162040. .IP \(bu 2
  162041. \fBPR\fP \fI\%#54942\fP: (\fI\%dwoz\fP) Fix for 54941 pillar_refresh regression
  162042. @ \fI2019\-10\-11 18:27:31 UTC\fP
  162043. .INDENT 2.0
  162044. .IP \(bu 2
  162045. 2f817bc Merge pull request \fI\%#54942\fP from dwoz/fix\-54941
  162046. .IP \(bu 2
  162047. cb5d326 Add a test for 54941 using test.ping
  162048. .IP \(bu 2
  162049. 348d1c4 Add regression tests for issue 54941
  162050. .IP \(bu 2
  162051. 766f3ca Initial commit of a potential fix for 54941
  162052. .UNINDENT
  162053. .IP \(bu 2
  162054. \fBPR\fP \fI\%#54897\fP: (\fI\%bryceml\fP) update version numbers to be correct
  162055. @ \fI2019\-10\-05 01:59:14 UTC\fP
  162056. .INDENT 2.0
  162057. .IP \(bu 2
  162058. f783108 Merge pull request \fI\%#54897\fP from bryceml/2019.2.1_fix_docs
  162059. .IP \(bu 2
  162060. e9a2a70 update version numbers to be correct
  162061. .UNINDENT
  162062. .IP \(bu 2
  162063. \fBPR\fP \fI\%#54894\fP: (\fI\%bryceml\fP) 2019.2.1 fix docs
  162064. @ \fI2019\-10\-04 22:31:26 UTC\fP
  162065. .INDENT 2.0
  162066. .IP \(bu 2
  162067. 3233663 Merge pull request \fI\%#54894\fP from bryceml/2019.2.1_fix_docs
  162068. .IP \(bu 2
  162069. 2456aaa Porting PR \fI\%#52948\fP to 2019.2.1
  162070. .IP \(bu 2
  162071. 94a1e3b Porting PR \fI\%#52752\fP to 2019.2.1
  162072. .IP \(bu 2
  162073. c7b7474 modifying saltconf ads
  162074. .IP \(bu 2
  162075. d48057b add new saltconf ads
  162076. .UNINDENT
  162077. .IP \(bu 2
  162078. \fBPR\fP \fI\%#54858\fP: (\fI\%frogunder\fP) remove in progress from releasenotes 2019.2.2
  162079. @ \fI2019\-10\-02 20:42:59 UTC\fP
  162080. .INDENT 2.0
  162081. .IP \(bu 2
  162082. 4b06eca Merge pull request \fI\%#54858\fP from frogunder/releasenotes_remove2019.2.2
  162083. .IP \(bu 2
  162084. a697abd remove in progress from releasenotes 2019.2.2
  162085. .UNINDENT
  162086. .IP \(bu 2
  162087. \fBPR\fP \fI\%#54854\fP: (\fI\%frogunder\fP) releasenotes 2019.2.2
  162088. @ \fI2019\-10\-02 18:58:21 UTC\fP
  162089. .INDENT 2.0
  162090. .IP \(bu 2
  162091. aaf2d1c Merge pull request \fI\%#54854\fP from frogunder/release_notes_2019.2.2
  162092. .IP \(bu 2
  162093. a41dc59 Update 2019.2.2.rst
  162094. .IP \(bu 2
  162095. 9bea043 releasenotes 2019.2.2
  162096. .UNINDENT
  162097. .IP \(bu 2
  162098. \fBPR\fP \fI\%#54852\fP: (\fI\%frogunder\fP) Update man pages for 2019.2.2
  162099. @ \fI2019\-10\-02 18:27:07 UTC\fP
  162100. .INDENT 2.0
  162101. .IP \(bu 2
  162102. 10d433f Merge pull request \fI\%#54852\fP from frogunder/man_pages_2019.2.2
  162103. .IP \(bu 2
  162104. 92bc4b2 Update man pages for 2019.2.2
  162105. .UNINDENT
  162106. .IP \(bu 2
  162107. \fBPR\fP \fI\%#54845\fP: (\fI\%s0undt3ch\fP) Remove debug print
  162108. @ \fI2019\-10\-02 17:38:21 UTC\fP
  162109. .INDENT 2.0
  162110. .IP \(bu 2
  162111. 8ca6b20 Merge pull request \fI\%#54845\fP from s0undt3ch/hotfix/event\-return\-fix\-2019.2.1
  162112. .IP \(bu 2
  162113. 3937890 Remove debug print
  162114. .UNINDENT
  162115. .IP \(bu 2
  162116. \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)
  162117. .IP \(bu 2
  162118. \fBPR\fP \fI\%#54826\fP: (\fI\%dwoz\fP) Fix issue 54755 and add regression tests
  162119. @ \fI2019\-10\-01 20:07:46 UTC\fP
  162120. .INDENT 2.0
  162121. .IP \(bu 2
  162122. 9e3914a Merge pull request \fI\%#54826\fP from dwoz/issue_54755
  162123. .IP \(bu 2
  162124. 0bad9cb Handle locals and globals separatly
  162125. .IP \(bu 2
  162126. bcbe9a2 Only purge pip when needed
  162127. .IP \(bu 2
  162128. d2f98ca Fix issue 54755 and add regression tests
  162129. .UNINDENT
  162130. .IP \(bu 2
  162131. \fBPR\fP \fI\%#54830\fP: (\fI\%frogunder\fP) Add known issues to 2019.2.1 release notes
  162132. @ \fI2019\-10\-01 16:23:30 UTC\fP
  162133. .INDENT 2.0
  162134. .IP \(bu 2
  162135. ba569d0 Merge pull request \fI\%#54830\fP from frogunder/update_relasenotes_2019.2.1
  162136. .IP \(bu 2
  162137. 8cdb27b Update 2019.2.1.rst
  162138. .IP \(bu 2
  162139. 14f955c Add known issues to 2019.2.1 release notes
  162140. .UNINDENT
  162141. .IP \(bu 2
  162142. \fBISSUE\fP \fI\%#54521\fP: (\fI\%Oloremo\fP) [Regression] Failhard, batch and retcodes (refs: \fI\%#54806\fP)
  162143. .IP \(bu 2
  162144. \fBPR\fP \fI\%#54806\fP: (\fI\%Oloremo\fP) [Regression] Batch with failhard fix
  162145. @ \fI2019\-10\-01 14:51:47 UTC\fP
  162146. .INDENT 2.0
  162147. .IP \(bu 2
  162148. 433b6fa Merge pull request \fI\%#54806\fP from Oloremo/failhard\-batch\-fix\-2019.2.1
  162149. .IP \(bu 2
  162150. 6684793 Merge branch \(aq2019.2.1\(aq into failhard\-batch\-fix\-2019.2.1
  162151. .IP \(bu 2
  162152. 3e0e928 Added tests for cli and runner
  162153. .IP \(bu 2
  162154. 2416516 Made batch work properly with failhard in cli and runner
  162155. .UNINDENT
  162156. .IP \(bu 2
  162157. \fBISSUE\fP \fI\%#54820\fP: (\fI\%OrangeDog\fP) schedule.present not idempotent when scheduler disabled (refs: \fI\%#54828\fP)
  162158. .IP \(bu 2
  162159. \fBPR\fP \fI\%#54828\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fix global disabling code in scheduler
  162160. @ \fI2019\-10\-01 09:27:49 UTC\fP
  162161. .INDENT 2.0
  162162. .IP \(bu 2
  162163. ed94aa5 Merge pull request \fI\%#54828\fP from garethgreenaway/54820_fix_schedule_disabled_job_enabled_bug
  162164. .IP \(bu 2
  162165. 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.
  162166. .UNINDENT
  162167. .IP \(bu 2
  162168. \fBPR\fP \fI\%#54778\fP: (\fI\%Akm0d\fP) fix broken salt\-cloud openstack query
  162169. @ \fI2019\-10\-01 09:23:27 UTC\fP
  162170. .INDENT 2.0
  162171. .IP \(bu 2
  162172. 435b40c Merge pull request \fI\%#54778\fP from Akm0d/master_openstack_query_fix
  162173. .IP \(bu 2
  162174. ba4ba2a fixed pylint errors in openstack test
  162175. .IP \(bu 2
  162176. d9a8517 Added openstack tests for openstack \-\-query fix
  162177. .IP \(bu 2
  162178. 59214ad Fallback to image id if we don\(aqt have an image name
  162179. .IP \(bu 2
  162180. 3a42a4d fixed pylint error
  162181. .IP \(bu 2
  162182. 0074d18 created unit tests for openstack
  162183. .IP \(bu 2
  162184. 4255e3e Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into HEAD
  162185. .IP \(bu 2
  162186. 1c2821b Return a configured provider, not a bool
  162187. .IP \(bu 2
  162188. c585550 fix broken salt\-cloud openstack query
  162189. .UNINDENT
  162190. .IP \(bu 2
  162191. \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)
  162192. .IP \(bu 2
  162193. \fBPR\fP \fI\%#54823\fP: (\fI\%dhiltonp\fP) ip_bracket can now accept ipv6 addresses with brackets
  162194. @ \fI2019\-10\-01 01:13:34 UTC\fP
  162195. .INDENT 2.0
  162196. .IP \(bu 2
  162197. 93b1c4d Merge pull request \fI\%#54823\fP from dhiltonp/maybe\-bracket
  162198. .IP \(bu 2
  162199. faa1d98 ip_bracket can now accept ipv6 addresses with brackets
  162200. .UNINDENT
  162201. .IP \(bu 2
  162202. \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)
  162203. .IP \(bu 2
  162204. \fBPR\fP \fI\%#54807\fP: (\fI\%dwoz\fP) Fix pip state pip >=10.0 and <=18.0
  162205. @ \fI2019\-09\-30 09:20:14 UTC\fP
  162206. .INDENT 2.0
  162207. .IP \(bu 2
  162208. \fBPR\fP \fI\%#54772\fP: (\fI\%OrlandoArcapix\fP) Fix import of pip modules (refs: \fI\%#54807\fP)
  162209. .IP \(bu 2
  162210. b61b30d Merge pull request \fI\%#54807\fP from dwoz/patch\-2
  162211. .IP \(bu 2
  162212. 664806b Add unit test for pip state fix
  162213. .IP \(bu 2
  162214. e637658 Revert change to pip version query
  162215. .IP \(bu 2
  162216. 42810a2 Fix import of pip modules
  162217. .UNINDENT
  162218. .IP \(bu 2
  162219. \fBISSUE\fP \fI\%#54741\fP: (\fI\%kjkeane\fP) Schedulers Fail to Run (refs: \fI\%#54799\fP)
  162220. .IP \(bu 2
  162221. \fBPR\fP \fI\%#54799\fP: (\fI\%garethgreenaway\fP) Fix to scheduler when job without a time element is run with schedule.run_job
  162222. @ \fI2019\-09\-30 00:19:43 UTC\fP
  162223. .INDENT 2.0
  162224. .IP \(bu 2
  162225. 4ee1ff6 Merge pull request \fI\%#54799\fP from garethgreenaway/54741_run_job_fails_without_time_element
  162226. .IP \(bu 2
  162227. 44caa81 Merge branch \(aq54741_run_job_fails_without_time_element\(aq of github.com:garethgreenaway/salt into 54741_run_job_fails_without_time_element
  162228. .INDENT 2.0
  162229. .IP \(bu 2
  162230. 3ae4f75 Merge branch \(aq2019.2.1\(aq into 54741_run_job_fails_without_time_element
  162231. .UNINDENT
  162232. .IP \(bu 2
  162233. 8afd2d8 Removing extra, unnecessary code.
  162234. .IP \(bu 2
  162235. 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.
  162236. .IP \(bu 2
  162237. 7d716d6 Fixing lint.
  162238. .IP \(bu 2
  162239. 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.
  162240. .UNINDENT
  162241. .IP \(bu 2
  162242. \fBPR\fP \fI\%#54785\fP: (\fI\%Ch3LL\fP) Fix state.show_states when sls file missing in top file
  162243. @ \fI2019\-09\-30 00:00:34 UTC\fP
  162244. .INDENT 2.0
  162245. .IP \(bu 2
  162246. b90c3f2 Merge pull request \fI\%#54785\fP from Ch3LL/fix_show_states
  162247. .IP \(bu 2
  162248. 96540be Clean up files after state.show_states test
  162249. .IP \(bu 2
  162250. ad265ae Fix state.show_states when sls file missing
  162251. .UNINDENT
  162252. .IP \(bu 2
  162253. \fBISSUE\fP \fI\%#54768\fP: (\fI\%paul\-palmer\fP) 2019.2.1 Some Jinja imports not found (refs: \fI\%#54780\fP)
  162254. .IP \(bu 2
  162255. \fBISSUE\fP \fI\%#54765\fP: (\fI\%awerner\fP) 2019.2.1: Jinja from import broken (refs: \fI\%#54780\fP)
  162256. .IP \(bu 2
  162257. \fBPR\fP \fI\%#54780\fP: (\fI\%dwoz\fP) Fix masterless jinja imports
  162258. @ \fI2019\-09\-29 22:12:48 UTC\fP
  162259. .INDENT 2.0
  162260. .IP \(bu 2
  162261. b9459e6 Merge pull request \fI\%#54780\fP from dwoz/fix\-masterless\-jinja\-imports
  162262. .IP \(bu 2
  162263. 5d873cc Merge branch \(aq2019.2.1\(aq into fix\-masterless\-jinja\-imports
  162264. .IP \(bu 2
  162265. e901a83 Add regression tests for jinja import bug
  162266. .IP \(bu 2
  162267. 3925bb7 Fix broken jinja imports in masterless salt\-call
  162268. .UNINDENT
  162269. .IP \(bu 2
  162270. \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)
  162271. .IP \(bu 2
  162272. \fBPR\fP \fI\%#54777\fP: (\fI\%javierbertoli\fP) Fix minion\(aqs remove_periodic_callback()
  162273. @ \fI2019\-09\-29 21:33:53 UTC\fP
  162274. .INDENT 2.0
  162275. .IP \(bu 2
  162276. 4c240e5 Merge pull request \fI\%#54777\fP from netmanagers/2019.2.1
  162277. .IP \(bu 2
  162278. 459c790 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  162279. .UNINDENT
  162280. .IP \(bu 2
  162281. \fBPR\fP \fI\%#54805\fP: (\fI\%bryceml\fP) improve lint job
  162282. @ \fI2019\-09\-29 21:24:05 UTC\fP
  162283. .INDENT 2.0
  162284. .IP \(bu 2
  162285. 83f8f5c Merge pull request \fI\%#54805\fP from bryceml/2019.2.1_update_lint_salt
  162286. .IP \(bu 2
  162287. ffa4ed6 improve lint job
  162288. .IP \(bu 2
  162289. fa1a767 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  162290. .UNINDENT
  162291. .IP \(bu 2
  162292. \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)
  162293. .IP \(bu 2
  162294. \fBPR\fP \fI\%#54783\fP: (\fI\%garethgreenaway\fP) Ensure metaproxy directory is included in sdist
  162295. @ \fI2019\-09\-29 02:17:23 UTC\fP
  162296. .INDENT 2.0
  162297. .IP \(bu 2
  162298. 6b43fbe Merge pull request \fI\%#54783\fP from garethgreenaway/54751_fixing_missing_metaproxy_directory
  162299. .IP \(bu 2
  162300. 67d9938 Merge branch \(aq2019.2.1\(aq into 54751_fixing_missing_metaproxy_directory
  162301. .IP \(bu 2
  162302. a35e609 Adding __init__.py to metaproxy directory so that metaproxy is included when running setup.py.
  162303. .UNINDENT
  162304. .IP \(bu 2
  162305. \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)
  162306. .IP \(bu 2
  162307. \fBPR\fP \fI\%#54784\fP: (\fI\%dhiltonp\fP) fix dns_check to return uri\-compatible ipv6 addresses, add tests
  162308. @ \fI2019\-09\-28 08:36:51 UTC\fP
  162309. .INDENT 2.0
  162310. .IP \(bu 2
  162311. 7912b67 Merge pull request \fI\%#54784\fP from dhiltonp/ipv46
  162312. .IP \(bu 2
  162313. 042a101 Merge branch \(aq2019.2.1\(aq into ipv46
  162314. .UNINDENT
  162315. .IP \(bu 2
  162316. \fBPR\fP \fI\%#54779\fP: (\fI\%frogunder\fP) Add 2019.2.2 release notes
  162317. @ \fI2019\-09\-27 17:45:46 UTC\fP
  162318. .INDENT 2.0
  162319. .IP \(bu 2
  162320. 2f94b44 Merge pull request \fI\%#54779\fP from frogunder/releasenotes_2019.2.2
  162321. .IP \(bu 2
  162322. 67f564b Add 2019.2.2 release notes
  162323. .IP \(bu 2
  162324. ac6b54f Merge branch \(aq2019.2.1\(aq into ipv46
  162325. .IP \(bu 2
  162326. 93ebd09 update mock (py2) from 2.0.0 to 3.0.5
  162327. .IP \(bu 2
  162328. 37bcc4c fix dns_check to return uri\-compatible ipv6 addresses, add tests
  162329. .INDENT 2.0
  162330. .IP \(bu 2
  162331. dd86c46 Merge pull request \fI\%#1\fP from waynew/pull/54777\-callback\-typo
  162332. .INDENT 2.0
  162333. .IP \(bu 2
  162334. a57f7d0 Add tests
  162335. .UNINDENT
  162336. .IP \(bu 2
  162337. c19d0b0 Fix minion\(aqs remove_periodic_callback()
  162338. .UNINDENT
  162339. .UNINDENT
  162340. .IP \(bu 2
  162341. \fBPR\fP \fI\%#54731\fP: (\fI\%pizzapanther\fP) Fix returners not loading properly
  162342. @ \fI2019\-09\-26 17:24:27 UTC\fP
  162343. .INDENT 2.0
  162344. .IP \(bu 2
  162345. 46bec3c Merge pull request \fI\%#54731\fP from pizzapanther/not\-so\-__new__\-and\-shiny
  162346. .IP \(bu 2
  162347. bdf24f4 Make sure we tests salt\-master\(aqs \fIevent_return\fP setting
  162348. .IP \(bu 2
  162349. 5499518 remove unnecessary import
  162350. .IP \(bu 2
  162351. 3f8a382 fix module import
  162352. .IP \(bu 2
  162353. 0746aa7 remove __new__ method since it was removed from parent class
  162354. .UNINDENT
  162355. .IP \(bu 2
  162356. \fBPR\fP \fI\%#54706\fP: (\fI\%bryceml\fP) 2019.2.1 ruby
  162357. @ \fI2019\-09\-23 16:00:27 UTC\fP
  162358. .INDENT 2.0
  162359. .IP \(bu 2
  162360. e2b86bf Merge pull request \fI\%#54706\fP from bryceml/2019.2.1_ruby
  162361. .IP \(bu 2
  162362. 168a6c1 switch to ruby 2.6.3
  162363. .UNINDENT
  162364. .UNINDENT
  162365. .SS Salt 2019.2.3 Release Notes
  162366. .sp
  162367. Version 2019.2.3 is a CVE\-fix release for 2019.2.0\&.
  162368. .SS Security Fix
  162369. .sp
  162370. \fBCVE\-2019\-17361\fP
  162371. .sp
  162372. With the Salt NetAPI enabled in addition to having a SSH roster defined,
  162373. unauthenticated access is possible when specifying the client as SSH.
  162374. Additionally, when the raw_shell option is specified any arbitrary command
  162375. may be run on the Salt master when specifying SSH options.
  162376. .SS Salt 2019.2.4 Release Notes
  162377. .sp
  162378. Version 2019.2.4 is a CVE\-fix release for 2019.2.0\&.
  162379. .SS Security Fix
  162380. .sp
  162381. \fBCVE\-2020\-11651\fP
  162382. .sp
  162383. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  162384. The salt\-master process ClearFuncs class does not properly validate
  162385. method calls. This allows a remote user to access some methods without
  162386. authentication. These methods can be used to retrieve user tokens from
  162387. the salt master and/or run arbitrary commands on salt minions.
  162388. .sp
  162389. \fBCVE\-2020\-11652\fP
  162390. .sp
  162391. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  162392. The salt\-master process ClearFuncs class allows access to some methods
  162393. that improperly sanitize paths. These methods allow arbitrary
  162394. directory access to authenticated users.
  162395. .SS Known Issue
  162396. .sp
  162397. Part of the fix for CVE\-2020\-11651 added better validation of the methods allowed to be called by remote clients.
  162398. Both AESFuncs and ClearFuncs now have an explicit list of methods that can be called.
  162399. The name of one of these whitlisted methods on AESFuncs had a typo.
  162400. The _minion_runner method should be minion_runner (without the underscore prefix).
  162401. This typo breaks the publish module’s runner method.
  162402. Calling runners, for example:
  162403. .INDENT 0.0
  162404. .INDENT 3.5
  162405. .sp
  162406. .nf
  162407. .ft C
  162408. salt minion publish.runner manage.down
  162409. .ft P
  162410. .fi
  162411. .UNINDENT
  162412. .UNINDENT
  162413. .sp
  162414. Will not work, and you will receive and empty reply from the salt master.
  162415. .sp
  162416. This will be addressed in the 3001 release of Salt set for mid\-June 2020.
  162417. .SS Salt 2019.2.5 Release Notes
  162418. .sp
  162419. Version 2019.2.5 is a bug\-fix release for 2019.2.0\&.
  162420. .SS Statistics
  162421. .INDENT 0.0
  162422. .IP \(bu 2
  162423. Total Merges: \fB2\fP
  162424. .IP \(bu 2
  162425. Total Issue References: \fB2\fP
  162426. .IP \(bu 2
  162427. Total PR References: \fB2\fP
  162428. .IP \(bu 2
  162429. Contributors: \fB2\fP (\fI\%dwoz\fP, \fI\%frogunder\fP)
  162430. .UNINDENT
  162431. .SS Changelog for v2019.2.4..v2019.2.5
  162432. .sp
  162433. \fIGenerated at: 2020\-05\-05 22:43:12 UTC\fP
  162434. .INDENT 0.0
  162435. .IP \(bu 2
  162436. \fBPR\fP \fI\%#57096\fP: (\fI\%frogunder\fP) Update man_pages 2019.2.5
  162437. @ \fI2020\-05\-05 22:10:46 UTC\fP
  162438. .INDENT 2.0
  162439. .IP \(bu 2
  162440. 6877b7259a Merge pull request \fI\%#57096\fP from frogunder/man_pages_2019.2.5
  162441. .IP \(bu 2
  162442. 58ea351a59 Update man_pages 2019.2.5
  162443. .UNINDENT
  162444. .IP \(bu 2
  162445. \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)
  162446. .IP \(bu 2
  162447. \fBISSUE\fP \fI\%#57016\fP: (\fI\%idontwanttosignin\fP) [BUG] Requested method not exposed: minion_runner (refs: \fI\%#57090\fP)
  162448. .IP \(bu 2
  162449. \fBPR\fP \fI\%#57090\fP: (\fI\%dwoz\fP) Address Issues in CVE Release
  162450. @ \fI2020\-05\-05 22:09:25 UTC\fP
  162451. .INDENT 2.0
  162452. .IP \(bu 2
  162453. 8fe0f66f94 Merge pull request \fI\%#57090\fP from dwoz/bugs_n_stuff
  162454. .IP \(bu 2
  162455. f3e8590bac Describe SEPs
  162456. .IP \(bu 2
  162457. aa1a9d340d Update hardening doc to mention 4505/4506
  162458. .IP \(bu 2
  162459. ca303f7c0c Add link to salt\-announce to documentation
  162460. .IP \(bu 2
  162461. c63253ef9c Address issues in cve release
  162462. .UNINDENT
  162463. .UNINDENT
  162464. .SS Salt 2018.3.0 Release Notes \- Codename Oxygen
  162465. .sp
  162466. \fBWARNING:\fP
  162467. .INDENT 0.0
  162468. .INDENT 3.5
  162469. If you are using Jinja to dump lists or dictionaries in your SLS files,
  162470. this will now cause errors in Python 2 since Jinja does not produce
  162471. YAML\-compatible output when strings in the data structures contain unicode
  162472. types. The dictionary must be passed through a Jinja filter to produce
  162473. YAML\-compatible strings.
  162474. .sp
  162475. The below is an example of invalid SLS:
  162476. .INDENT 0.0
  162477. .INDENT 3.5
  162478. .sp
  162479. .nf
  162480. .ft C
  162481. /etc/foo.conf:
  162482. file.mangaged:
  162483. \- source: salt://foo.conf
  162484. \- template: jinja
  162485. \- defaults: {{ mydict }}
  162486. .ft P
  162487. .fi
  162488. .UNINDENT
  162489. .UNINDENT
  162490. .sp
  162491. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  162492. filters:
  162493. .INDENT 0.0
  162494. .INDENT 3.5
  162495. .sp
  162496. .nf
  162497. .ft C
  162498. /etc/foo.conf:
  162499. file.mangaged:
  162500. \- source: salt://foo.conf
  162501. \- template: jinja
  162502. \- defaults: {{ mydict | json }}
  162503. .ft P
  162504. .fi
  162505. .UNINDENT
  162506. .UNINDENT
  162507. .UNINDENT
  162508. .UNINDENT
  162509. .SS Unicode/Python 3 Compatibility Improvements
  162510. .sp
  162511. This release fixes a number of nagging issues with Unicode strings in Salt
  162512. under Python 2 (ex. \fB\(aqascii\(aq codec can\(aqt decode byte 0xd0\fP). For best
  162513. results, use a UTF\-8 locale (such as by setting the \fBLANG\fP environment
  162514. variable to one which supports UTF\-8. For example \fBen_US.UTF\-8\fP,
  162515. \fBde_DE.UTF\-8\fP, \fBru_RU.UTF\-8\fP, \fBC.UTF\-8\fP).
  162516. .sp
  162517. Additionally, a number of Python 3 compatibility fixes have been made, many of
  162518. them having to do with file I/O and str/bytes mismatches.
  162519. .sp
  162520. We continue to work toward improving both Unicode and Python 3 compatibility
  162521. and welcome any feedback.
  162522. .SS Lots of Docker Improvements
  162523. .SS Much Improved Support for Docker Networking
  162524. .sp
  162525. The \fBdocker_network.present\fP
  162526. state has undergone a full rewrite, which includes the following improvements:
  162527. .SS Full API Support for Network Management
  162528. .sp
  162529. The improvements made to input handling in the
  162530. \fBdocker_container.running\fP
  162531. state for 2017.7.0 have now been expanded to \fBdocker_network.present\fP\&. This brings with it full support for all
  162532. tunable configuration arguments.
  162533. .SS Custom Subnets
  162534. .sp
  162535. Custom subnets can now be configured. Both IPv4 and mixed IPv4/IPv6 networks
  162536. are supported. See here for
  162537. more information.
  162538. .SS Network Configuration in \fBdocker_container.running\fP States
  162539. .sp
  162540. A long\-requested feature has finally been added! It is now possible to
  162541. configure static IPv4/IPv6 addresses, as well as links and labels. See
  162542. here for more
  162543. information.
  162544. .sp
  162545. \fBNOTE:\fP
  162546. .INDENT 0.0
  162547. .INDENT 3.5
  162548. While the \fBcontainers\fP argument to \fBdocker_network.present\fP will continue to be supported, it
  162549. will no longer be the recommended way of ensuring that a container is
  162550. attached to a network.
  162551. .UNINDENT
  162552. .UNINDENT
  162553. .SS Improved Handling of Images from Custom Registries
  162554. .sp
  162555. Rather than attempting to parse the tag from the passed image name, Salt will
  162556. now resolve that tag down to an image ID and use that ID instead.
  162557. .sp
  162558. \fBIMPORTANT:\fP
  162559. .INDENT 0.0
  162560. .INDENT 3.5
  162561. Due to this change, there are some backward\-incompatible changes to image
  162562. management. See below for a full list of these changes.
  162563. .UNINDENT
  162564. .UNINDENT
  162565. .SS Backward\-incompatible Changes to Docker Image Management
  162566. .sp
  162567. Passing image names to the following functions must now be done using separate
  162568. \fBrepository\fP and \fBtag\fP arguments:
  162569. .INDENT 0.0
  162570. .IP \(bu 2
  162571. \fBdocker.build\fP
  162572. .IP \(bu 2
  162573. \fBdocker.commit\fP
  162574. .IP \(bu 2
  162575. \fBdocker.import\fP
  162576. .IP \(bu 2
  162577. \fBdocker.load\fP
  162578. .IP \(bu 2
  162579. \fBdocker.tag\fP
  162580. .IP \(bu 2
  162581. \fBdocker.sls_build\fP
  162582. .UNINDENT
  162583. .sp
  162584. Additionally, the \fBtag\fP argument must now be explicitly passed to the
  162585. \fBdocker_image.present\fP state,
  162586. unless the image is being pulled from a docker registry.
  162587. .SS State and Execution Module Support for \fBdocker run\fP Functionality
  162588. .sp
  162589. The \fBdocker_container.running\fP
  162590. state is good for containers which run services, but it is not as useful for
  162591. cases in which the container only needs to run once. The \fBstart\fP argument to
  162592. \fBdocker_container.running\fP can
  162593. be set to \fBFalse\fP to prevent the container from being started again on a
  162594. subsequent run, but for many use cases this is not sufficient. Therefore, the
  162595. \fBdocker.run_container\fP
  162596. remote\-execution function was added. When used on the Salt CLI, it will return
  162597. information about the container, such as its name, ID, exit code, and any
  162598. output it produces.
  162599. .sp
  162600. State support has also been added via the \fBdocker_container.run\fP state. This state is modeled after the
  162601. \fBcmd.run\fP state, and includes arguments like
  162602. \fBonlyif\fP, \fBunless\fP, and \fBcreates\fP to control whether or not the container
  162603. is run.
  162604. .SS Full API Support for \fBdocker.logs\fP
  162605. .sp
  162606. This function now supports all of the functions that its Docker API counterpart
  162607. does, allowing you to do things like include timestamps, and also suppress
  162608. stdout/stderr, etc. in the return.
  162609. .SS \fIstart\fP Argument Added to \fBdocker.create\fP Function
  162610. .sp
  162611. This removes the need to run \fBdocker.start\fP separately when creating containers on the
  162612. Salt CLI.
  162613. .INDENT 0.0
  162614. .INDENT 3.5
  162615. .sp
  162616. .nf
  162617. .ft C
  162618. salt myminion docker.create image=foo/bar:baz command=/path/to/command start=True
  162619. .ft P
  162620. .fi
  162621. .UNINDENT
  162622. .UNINDENT
  162623. .SS Use SaltSSH Minions like regular Master\-Minions
  162624. .sp
  162625. The Master process can now also call SSH minions as if they were connected to
  162626. the master using ZeroMQ. By setting \fBenable_ssh_minions: True\fP in the master
  162627. config file, the master will create a Salt SSH client process which connects to
  162628. the minion and returns the output for the \fBsalt\fP CLI to use like a regular
  162629. minion. This can be used anywhere the LocalClient is used.
  162630. .SS Exceptions Raised for Authentication/Authorization Errors
  162631. .sp
  162632. When sending \fBpublish\fP commands via \fBmaster.py\fP and \fBmasterapi.py\fP and an
  162633. authorization or authentication problem is encountered, Salt will now raise the
  162634. appropriate exceptions instead of returning an empty string: \fB\(aq\(aq\fP\&.
  162635. .sp
  162636. The reasoning behind this change is to make it easier to debug various scenarios
  162637. surrounding authentication and authorization issues more effectively.
  162638. .SS Comparison Operators in Package Installation
  162639. .sp
  162640. Salt now supports using comparison operators (e.g. \fB>=1.2.3\fP) when installing
  162641. packages on minions which use \fByum/dnf\fP or
  162642. \fBapt\fP\&. This is supported both in the
  162643. \fBpkg.installed\fP state and in the \fBpkg.install\fP
  162644. remote execution function.
  162645. .SS Master Tops Changes
  162646. .sp
  162647. When both Master Tops and a
  162648. Top File produce SLS matches for a given minion, the matches
  162649. were being merged in an unpredictable manner which did not preserve ordering. This has
  162650. been changed. The top file matches now execute in the expected order, followed
  162651. by any master tops matches that are not matched via a top file.
  162652. .sp
  162653. To make master tops matches execute first, followed by top file matches, set
  162654. the new \fBmaster_tops_first\fP minion config option to \fBTrue\fP\&.
  162655. .SS Several Jinja Filters Renamed
  162656. .sp
  162657. The following Jinja filters (originally added in 2017.7.0) have been renamed
  162658. due to the fact that they were inaccurately named when initially added. The
  162659. original names will be supported until the 3000 release of Salt.
  162660. .INDENT 0.0
  162661. .IP \(bu 2
  162662. \fBrand_str\fP renamed to \fBrandom_hash\fP
  162663. .IP \(bu 2
  162664. \fBjinja_decode_dict\fP renamed to \fBjinja_encode_dict\fP
  162665. .IP \(bu 2
  162666. \fBjinja_decode_list\fP renamed to \fBjinja_encode_list\fP
  162667. .UNINDENT
  162668. .SS Return Codes for Runner/Wheel Functions
  162669. .sp
  162670. When using orchestration, runner and wheel
  162671. functions used to report a \fBTrue\fP result if the function ran to completion
  162672. without raising an exception. It is now possible to set a return code in the
  162673. \fB__context__\fP dictionary, allowing runner and wheel functions to report that
  162674. they failed. Here\(aqs some example pseudocode:
  162675. .INDENT 0.0
  162676. .INDENT 3.5
  162677. .sp
  162678. .nf
  162679. .ft C
  162680. def myrunner():
  162681. ...
  162682. # do stuff
  162683. ...
  162684. if some_error_condition:
  162685. __context__["retcode"] = 1
  162686. return result
  162687. .ft P
  162688. .fi
  162689. .UNINDENT
  162690. .UNINDENT
  162691. .SS Variable Update Intervals for Fileserver Backends
  162692. .sp
  162693. Prior to this release, fileservers would be updated as part of a dedicated
  162694. "maintenance" process, in which various routine maintenance tasks were
  162695. performed. This tied the update interval to the \fBloop_interval\fP
  162696. config option, and also forced all fileservers to update at the same interval.
  162697. .sp
  162698. 2018.3.0 adds the following configuration options for the various fileserver
  162699. backends:
  162700. .INDENT 0.0
  162701. .IP \(bu 2
  162702. \fBroots_update_interval\fP
  162703. .IP \(bu 2
  162704. \fBazurefs_update_interval\fP
  162705. .IP \(bu 2
  162706. \fBgitfs_update_interval\fP
  162707. .IP \(bu 2
  162708. \fBhgfs_update_interval\fP
  162709. .IP \(bu 2
  162710. \fBminionfs_update_interval\fP
  162711. .IP \(bu 2
  162712. \fBs3fs_update_interval\fP
  162713. .IP \(bu 2
  162714. \fBsvnfs_update_interval\fP
  162715. .UNINDENT
  162716. .sp
  162717. These allow for update intervals to be set for each individual backend. The
  162718. default value for each of these is 60 seconds.
  162719. .sp
  162720. In addition, for GitFS it is also possible to apply
  162721. intervals to individual remotes. See here for
  162722. examples.
  162723. .sp
  162724. \fBNOTE:\fP
  162725. .INDENT 0.0
  162726. .INDENT 3.5
  162727. git_pillar does not yet support variable update intervals, this is targeted
  162728. for the next feature release (2019.2.0).
  162729. .UNINDENT
  162730. .UNINDENT
  162731. .SS LDAP via External Authentication Changes
  162732. .sp
  162733. In this release of Salt, if LDAP Bind Credentials are supplied, then
  162734. these credentials will be used for all LDAP access except the first
  162735. authentication when a job is submitted. The first authentication will
  162736. use the user\(aqs credentials as passed on the CLI. This behavior is to
  162737. accommodate certain two\-factor authentication schemes where the authentication
  162738. token can only be used once.
  162739. .sp
  162740. In previous releases the bind credentials would only be used to determine
  162741. the LDAP user\(aqs existence and group membership. The user\(aqs LDAP credentials
  162742. were used from then on.
  162743. .SS Stormpath External Authentication Removed
  162744. .sp
  162745. Per Stormpath\(aqs announcement, their API will be shutting down on 8/17/2017 at
  162746. noon PST so the Stormpath external authentication module has been removed.
  162747. .sp
  162748. \fI\%https://stormpath.com/oktaplusstormpath\fP
  162749. .SS New (Proxy) Minion Configuration Options
  162750. .sp
  162751. To be able to connect the Minion to the Master using a certain source IP address
  162752. or port, the following options have been added:
  162753. .INDENT 0.0
  162754. .IP \(bu 2
  162755. \fBsource_interface_name\fP
  162756. .IP \(bu 2
  162757. \fBsource_address\fP
  162758. .IP \(bu 2
  162759. \fBsource_ret_port\fP
  162760. .IP \(bu 2
  162761. \fBsource_publish_port\fP
  162762. .UNINDENT
  162763. .SS \fBenvironment\fP config option renamed to \fBsaltenv\fP
  162764. .sp
  162765. The \fBenvironment\fP config option predates referring to a salt
  162766. fileserver environment as a \fBsaltenv\fP\&. To pin a minion to a single
  162767. environment for running states, one would use \fBenvironment\fP, but
  162768. overriding that environment would be done with the \fBsaltenv\fP argument. For
  162769. consistency, \fBenvironment\fP is now simply referred to as
  162770. \fBsaltenv\fP\&. There are no plans to deprecate or remove
  162771. \fBenvironment\fP, if used it will log a warning and its value will be
  162772. used as \fBsaltenv\fP\&.
  162773. .SS \fBlock_saltenv\fP config option added
  162774. .sp
  162775. If set to \fBTrue\fP, this option will prevent a minion from allowing the
  162776. \fBsaltenv\fP argument to override the value set in \fBsaltenv\fP when
  162777. running states.
  162778. .SS Failed Minions for State/Function Orchestration Jobs Added to Changes Dictionary
  162779. .sp
  162780. For orchestration jobs which run states (or run remote execution functions and
  162781. also use a fail function to indicate
  162782. success or failure), minions which have \fBFalse\fP results were previously
  162783. included as a formatted string in the comment field of the return for that
  162784. orchestration job. This made the failed returns difficult to parse
  162785. programatically\&. The
  162786. failed returns in these cases are now included in the changes dictionary,
  162787. making for much easier parsing.
  162788. .SS Grains
  162789. .INDENT 0.0
  162790. .IP \(bu 2
  162791. \fBfc_wwn\fP \- Show all fibre channel world wide port names for a host, must be
  162792. enabled with \fIfibre_channel_grains\fP
  162793. .IP \(bu 2
  162794. \fBiscsi_iqn\fP \- Show the iSCSI IQN name for a host
  162795. .IP \(bu 2
  162796. \fBswap_total\fP \- Show the configured swap_total for Linux, *BSD, OS X and
  162797. Solaris/SunOS
  162798. .IP \(bu 2
  162799. \fBvirtual\fP:
  162800. .INDENT 2.0
  162801. .INDENT 3.5
  162802. .INDENT 0.0
  162803. .IP \(bu 2
  162804. identifies reports KVM and VMM hypervisors when running an OpenBSD guest
  162805. .IP \(bu 2
  162806. for detecting Solaris Logical Domains (LDOMs) running on T\-Series SPARC
  162807. hardware. The \fBvirtual_subtype\fP grain is populated as a list of domain
  162808. roles.
  162809. .UNINDENT
  162810. .UNINDENT
  162811. .UNINDENT
  162812. .UNINDENT
  162813. .SS Salt Minion Auto\-discovery
  162814. .sp
  162815. Using auto\-discovery, the Salt Minion now no longer needs to be configured
  162816. against a specific DNS name or IP address of a Master.
  162817. .sp
  162818. For this feature Salt Master now requires port 4520 for UDP broadcast packets to be opened
  162819. and the Salt Minion be able to send UDP packets to the same port.
  162820. .SS Configuration
  162821. .sp
  162822. By default, automatic discovery is disabled.
  162823. .sp
  162824. \fBWARNING:\fP
  162825. .INDENT 0.0
  162826. .INDENT 3.5
  162827. Due to the current limitations that will be changing in a future release,
  162828. before you turn on auto\-discovery, make sure your network is secured and
  162829. trusted.
  162830. .UNINDENT
  162831. .UNINDENT
  162832. .sp
  162833. Auto\-discovery is configured on Master and Minion. Both of them are configured via the \fBdiscovery\fP option
  162834. as follows:
  162835. .sp
  162836. \fBMaster configuration\fP
  162837. .sp
  162838. To use the default configuration, which accepts any minion, simply set \fBdiscovery\fP to True:
  162839. .INDENT 0.0
  162840. .INDENT 3.5
  162841. .sp
  162842. .nf
  162843. .ft C
  162844. discovery: true
  162845. .ft P
  162846. .fi
  162847. .UNINDENT
  162848. .UNINDENT
  162849. .sp
  162850. A sub\-option called \fImapping\fP allows auto\-discovery to help find the proper
  162851. Master. The mapping contains an arbitrary set of key/value pairs, which the
  162852. Minion configuration can target. By default, no mappings are set.
  162853. .sp
  162854. Example:
  162855. .INDENT 0.0
  162856. .INDENT 3.5
  162857. .sp
  162858. .nf
  162859. .ft C
  162860. discovery:
  162861. mapping:
  162862. description: SES 5.0
  162863. node: 1
  162864. .ft P
  162865. .fi
  162866. .UNINDENT
  162867. .UNINDENT
  162868. .sp
  162869. It is also possible to change the port used from the default of \fB4520\fP, by
  162870. setting a \fBport\fP option under the Master\(aqs \fBdiscovery\fP configuration:
  162871. .INDENT 0.0
  162872. .INDENT 3.5
  162873. .sp
  162874. .nf
  162875. .ft C
  162876. discovery:
  162877. port: 4567
  162878. .ft P
  162879. .fi
  162880. .UNINDENT
  162881. .UNINDENT
  162882. .sp
  162883. \fBNOTE:\fP
  162884. .INDENT 0.0
  162885. .INDENT 3.5
  162886. When using a port number other than the default, the Minion\(aqs \fBdiscovery\fP
  162887. configuration must \fIalso\fP have a port specified, otherwise the Minion will
  162888. still attempt to contact the Master on port \fB4520\fP\&.
  162889. .UNINDENT
  162890. .UNINDENT
  162891. .sp
  162892. \fBMinion configuration\fP
  162893. .sp
  162894. In addition to the \fBmapping\fP and \fBport\fP options, the following additional options are available to Minions:
  162895. .INDENT 0.0
  162896. .IP \(bu 2
  162897. \fBattempts\fP \- This option specifies how many broadcast requests should be
  162898. sent to the network, waiting for any Master response. Each attempt takes a
  162899. couple of seconds, so raising this value may result in a slower Minion
  162900. startup. Note that, on a properly\-configured network, autodiscovery should
  162901. succeed on the first attempt. By default, this value is set to \fB3\fP\&.
  162902. .IP \(bu 2
  162903. \fBmatch\fP \- This option can be set to either \fBall\fP or \fBany\fP, and it
  162904. determines how the values configured in \fBmapping\fP are matched. If set to
  162905. \fBall\fP, then all of the key/value pairs in the Minion\(aqs \fBmapping\fP must
  162906. match a given Master. If set to \fBany\fP (the default), then any match to a
  162907. key/value mapping will constitute a match.
  162908. .IP \(bu 2
  162909. \fBpause\fP \- The interval in seconds between attempts (default: 5).
  162910. .IP \(bu 2
  162911. \fBfibre_channel_grains\fP \- Enables the \fBfc_wwn\fP grain. (Default: False)
  162912. .IP \(bu 2
  162913. \fBiscsi_grains\fP \- Enables the \fBiscsi_iqn\fP grain. (Default: False)
  162914. .UNINDENT
  162915. .SS Connection to a type instead of DNS
  162916. .sp
  162917. By now each Minion was connecting to a Master by DNS or IP address. From now on
  162918. it is possible also to connect to a _type_ of a Master. For example, in a
  162919. network there are three different Masters, each corresponds for a particular
  162920. niche or environment or specific role etc. The Minion is supposed to connect
  162921. only to one of those Masters that is described appropriately.
  162922. .sp
  162923. To achieve such an effect, each \fB/etc/salt/master\fP configuration should have
  162924. a \fBdiscovery\fP option, which should have a \fBmapping\fP element with arbitrary
  162925. key/value pairs. The same configuration should be on the Minion, so then when
  162926. mapping matches, Minion recognises Master as its connection target.
  162927. .sp
  162928. Example for Master configuration (\fB/etc/salt/master\fP):
  162929. .INDENT 0.0
  162930. .INDENT 3.5
  162931. .sp
  162932. .nf
  162933. .ft C
  162934. discovery:
  162935. mapping:
  162936. description: SES 5.0
  162937. node: 1
  162938. .ft P
  162939. .fi
  162940. .UNINDENT
  162941. .UNINDENT
  162942. .sp
  162943. The example above describes a system that is running a particular product,
  162944. where \fBdescription\fP is an arbitrary key and \fBSES 5.0\fP is just a string. In
  162945. order to match exactly this Master, the following configuration at Minion
  162946. should be present:
  162947. .INDENT 0.0
  162948. .INDENT 3.5
  162949. .sp
  162950. .nf
  162951. .ft C
  162952. discovery:
  162953. match: all # Can be "all" or "any"
  162954. mapping:
  162955. description: SES 5.0
  162956. node: 1
  162957. .ft P
  162958. .fi
  162959. .UNINDENT
  162960. .UNINDENT
  162961. .sp
  162962. Notice \fBmatch\fP criteria is set to \fBall\fP\&. This would mean that from all
  162963. found Masters select only that, which \fBdescription\fP is set to \fBSES 5.0\fP
  162964. _and_ \fBnode\fP is set to \fB1\fP\&. All other Masters will be ignored.
  162965. .SS Limitations
  162966. .sp
  162967. This feature has a couple of _temporary_ limitations that are subject to change
  162968. in the future:
  162969. .INDENT 0.0
  162970. .IP \(bu 2
  162971. Only one Master on the network is supported. Currently the Minion cannot
  162972. select which Master out of few the same to choose. This will change to
  162973. choosing the Master that is least loaded.
  162974. .IP \(bu 2
  162975. Minions will accept _any_ master that matches connection criteria without any
  162976. particular security applied (priv/pub key check, signature, fingerprint etc).
  162977. That implies that administrator is expected to know his network and make sure
  162978. it is clean.
  162979. .UNINDENT
  162980. .SS New Modules
  162981. .INDENT 0.0
  162982. .IP \(bu 2
  162983. \fBsalt.modules.purefa\fP
  162984. .UNINDENT
  162985. .SS New NaCl Renderer
  162986. .sp
  162987. A new renderer has been added for encrypted data.
  162988. .SS New support for Cisco UCS Chassis
  162989. .sp
  162990. The salt proxy minion now allows for control of Cisco USC chassis. See
  162991. the \fBcimc\fP modules for details.
  162992. .SS New support for Cassandra v3
  162993. .sp
  162994. The \fBcassandra_cql\fP module now supports Cassandra v3 which has changed
  162995. its internal schema to define keyspaces and columns.
  162996. .SS New salt\-ssh roster
  162997. .sp
  162998. A new roster has been added that allows users to pull in a list of hosts
  162999. for salt\-ssh targeting from a \fB~/.ssh\fP configuration. For full details,
  163000. please see the \fBsshconfig\fP roster.
  163001. .SS New GitFS Features
  163002. .sp
  163003. Two new features which affect how GitFS maps branches/tags to fileserver
  163004. environments (i.e. \fBsaltenvs\fP) have been added:
  163005. .INDENT 0.0
  163006. .IP 1. 3
  163007. It is now possible to completely turn off Salt\(aqs default mapping logic
  163008. (aside from the mapping of the \fBbase\fP saltenv). This can be triggered
  163009. using the new \fBgitfs_disable_saltenv_mapping\fP config option.
  163010. .sp
  163011. \fBNOTE:\fP
  163012. .INDENT 3.0
  163013. .INDENT 3.5
  163014. When this is disabled, only the \fBbase\fP saltenv and any configured
  163015. using per\-saltenv configuration parameters will be available.
  163016. .UNINDENT
  163017. .UNINDENT
  163018. .IP 2. 3
  163019. The types of refs which Salt will use as saltenvs can now be controlled. In
  163020. previous releases, branches and tags were both mapped as environments, and
  163021. individual commit SHAs could be specified as saltenvs in states (and when
  163022. caching files using \fBcp.cache_file\fP).
  163023. Using the new \fBgitfs_ref_types\fP config option, the types of
  163024. refs which are used as saltenvs can be restricted. This makes it possible to
  163025. ignore all tags and use branches only, and also to keep SHAs from being made
  163026. available as saltenvs.
  163027. .UNINDENT
  163028. .SS Additional output modes
  163029. .sp
  163030. The \fBstate_output\fP parameter now supports \fBfull_id\fP, \fBchanges_id\fP and
  163031. \fBterse_id\fP\&. Just like \fBmixed_id\fP, these use the state ID as name in the
  163032. highstate output. For more information on these output modes, see the docs for
  163033. the \fBHighstate Outputter\fP\&.
  163034. .SS Windows
  163035. .SS Python Version
  163036. .sp
  163037. Python 2 Windows API was design when Windows did not support Unicode. Windows
  163038. now supports Unicode however to keep backwards compatibility Python 2 Windows
  163039. API has not been changed. Python 3 Windows API supports Unicode. Salt Python 3
  163040. installer is the recommend choice for users who need characters other than
  163041. Non\-ASCII (7bit) characters.
  163042. .SS \fBpkg\fP Execution module changes
  163043. .sp
  163044. Significant changes have been made to the \fBwin_pkg\fP
  163045. execution module. Users should test this release against their existing package
  163046. sls definition files. These changes are also in 2016.11.9 & 2017.7.3.
  163047. .INDENT 0.0
  163048. .IP \(bu 2
  163049. \fBpkg.list_available\fP no longer defaults to refreshing the winrepo meta
  163050. database.
  163051. .IP \(bu 2
  163052. \fBpkg.install\fP without a \fBversion\fP parameter no longer upgrades software
  163053. if the software is already installed. Use \fBpkg.install version=latest\fP or
  163054. in a state use \fBpkg.latest\fP to get the old behavior.
  163055. .IP \(bu 2
  163056. \fBpkg.list_pkgs\fP now returns multiple versions if software installed more
  163057. than once.
  163058. .IP \(bu 2
  163059. \fBpkg.list_pkgs\fP now returns \(aqNot Found\(aq when the version is not found
  163060. instead of \(aq(value not set)\(aq which matches the contents of the sls
  163061. definitions.
  163062. .IP \(bu 2
  163063. \fBpkg.remove()\fP will wait up to 3 seconds (normally about a second) to detect
  163064. changes in the registry after removing software, improving reporting of
  163065. version changes.
  163066. .IP \(bu 2
  163067. \fBpkg.remove()\fP can remove \fBlatest\fP software, if \fBlatest\fP is defined in
  163068. sls definition.
  163069. .IP \(bu 2
  163070. Documentation was update for the execution module to match the style in new
  163071. versions, some corrections as well.
  163072. .IP \(bu 2
  163073. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  163074. called with a command line string instead of a list. Some sls files in
  163075. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  163076. (i.e. the use of \fB&\fP).
  163077. .IP \(bu 2
  163078. Some execution module functions results, now behavour more like their
  163079. Unix/Linux versions.
  163080. .UNINDENT
  163081. .SS Installer
  163082. .SS Changes to config handling
  163083. .sp
  163084. Behavior with existing configuration has changed. With previous windows
  163085. installers the existing config was used and the master and minion id could be
  163086. modified via the installer. It was problematic in that it didn\(aqt account for
  163087. configuration that may be defined in the \fBminion.d\fP directory. This change
  163088. gives you the option via a drop\-down list to use one of the following:
  163089. .INDENT 0.0
  163090. .IP \(bu 2
  163091. Default Config: Use the config that comes with the installer
  163092. .IP \(bu 2
  163093. Existing Config: Use the current config without changes
  163094. .IP \(bu 2
  163095. Custom Config: Select a custom config using the file picker
  163096. .UNINDENT
  163097. .sp
  163098. The existing config option will only be available if the installer detects an
  163099. existing config. If there is an existing config, and you choose \fBDefault\fP or
  163100. \fBCustom\fP, the existing config will be deleted, including the \fBminion.d\fP
  163101. directory, and replaced by your selection.
  163102. .sp
  163103. The \fBDefault Config\fP and \fBCustom Config\fP options will allow you to modify
  163104. the Master and the Minion ID. \fBExisting Config\fP will leave the existing
  163105. configuration unchanged.
  163106. .sp
  163107. These settings can be defined on the command line using the following switches:
  163108. .INDENT 0.0
  163109. .IP \(bu 2
  163110. \fB/default\-config\fP
  163111. .IP \(bu 2
  163112. \fB/custom\-config=C:\ePath\eTo\eCustom\eConfig\eminion\fP
  163113. .UNINDENT
  163114. .sp
  163115. If neither option is passed and there is an existing config, the default is to
  163116. use the existing config. If there is no existing config (new install) the
  163117. default config will be used.
  163118. .SS Multi\-master configuration
  163119. .sp
  163120. The installer now has the ability to apply a multi\-master configuration either
  163121. from the GUI or the command line. The \fBmaster\fP field in the GUI can accept
  163122. either a single master or a comma\-separated list of masters. The command\-line
  163123. switch (\fB/master=\fP) can accept the same.
  163124. .SS Command\-line help
  163125. .sp
  163126. The Windows installer will now display command\-line help when a help switch
  163127. (\fB/?\fP) is passed.
  163128. .SS New utils module \fBsalt.utils.pkg.win\fP
  163129. .sp
  163130. A new utils module has been added, which gathers information about windows
  163131. installed software. This is currently not used by any salt execution module or
  163132. state at this time. Users are encouraged to run this and report any issues.
  163133. Running the command with the \fBdetail\fP option will be useful for anyone
  163134. developing windows package definitions. With salt installed in the default
  163135. location the following command will print the help message.
  163136. .INDENT 0.0
  163137. .INDENT 3.5
  163138. .sp
  163139. .nf
  163140. .ft C
  163141. chcp 65001
  163142. c:\esalt\ebin\epython.exe c:\esalt\ebin\elib\esite\-packages\esalt\eutils\epkg\ewin.py
  163143. c:\esalt\ebin\epython.exe c:\esalt\ebin\elib\esite\-packages\esalt\eutils\epkg\ewin.py detail system
  163144. .ft P
  163145. .fi
  163146. .UNINDENT
  163147. .UNINDENT
  163148. .SS Salt Cloud Features
  163149. .SS OpenStack Revamp
  163150. .sp
  163151. The OpenStack Driver has been rewritten mostly from scratch. Salt is now using
  163152. the \fIshade driver <https://docs.openstack.org/shade/latest/>\fP\&.
  163153. .sp
  163154. With this, the \fBnova\fP driver is being deprecated.
  163155. .sp
  163156. \fBopenstack driver\fP
  163157. .sp
  163158. There have also been several new modules and states added for managing OpenStack
  163159. setups using shade as well.
  163160. .sp
  163161. \fBkeystone\fP
  163162. \fBkeystone role grant\fP
  163163. \fBkeystone group\fP
  163164. \fBkeystone role\fP
  163165. \fBkeystone service\fP
  163166. \fBkeystone user\fP
  163167. \fBkeystone domain\fP
  163168. \fBkeystone project\fP
  163169. \fBkeystone endpoint\fP
  163170. \fBglance\fP
  163171. \fBglance_image\fP
  163172. \fBneutron\fP
  163173. \fBneutron subnet\fP
  163174. \fBneutron secgroup\fP
  163175. \fBneutron secgroup rule\fP
  163176. \fBneutron network\fP
  163177. .SS Pre\-Flight Commands
  163178. .sp
  163179. Support has been added for specified "preflight commands" to run on a VM before
  163180. the deploy script is run. These must be defined as a list in a cloud configuration
  163181. file. For example:
  163182. .INDENT 0.0
  163183. .INDENT 3.5
  163184. .sp
  163185. .nf
  163186. .ft C
  163187. my\-cloud\-profile:
  163188. provider: linode\-config
  163189. image: Ubuntu 16.04 LTS
  163190. size: Linode 2048
  163191. preflight_cmds:
  163192. \- whoami
  163193. \- echo \(aqhello world!\(aq
  163194. .ft P
  163195. .fi
  163196. .UNINDENT
  163197. .UNINDENT
  163198. .sp
  163199. These commands will run in sequence \fBbefore\fP the bootstrap script is executed.
  163200. .SS New salt\-cloud Grains
  163201. .sp
  163202. When salt\-cloud creates a new minion, it will now add grain information
  163203. to the minion configuration file, identifying the resources originally used
  163204. to create it.
  163205. .sp
  163206. The generated grain information will appear similar to:
  163207. .INDENT 0.0
  163208. .INDENT 3.5
  163209. .sp
  163210. .nf
  163211. .ft C
  163212. grains:
  163213. salt\-cloud:
  163214. driver: ec2
  163215. provider: my_ec2:ec2
  163216. profile: ec2\-web
  163217. .ft P
  163218. .fi
  163219. .UNINDENT
  163220. .UNINDENT
  163221. .sp
  163222. The generation of salt\-cloud grains can be suppressed by the
  163223. option \fBenable_cloud_grains: \(aqFalse\(aq\fP in the cloud configuration file.
  163224. .SS Upgraded Saltify Driver
  163225. .sp
  163226. The salt\-cloud Saltify driver is used to provision machines which
  163227. are not controlled by a dedicated cloud supervisor (such as typical hardware
  163228. machines) by pushing a salt\-bootstrap command to them and accepting them on
  163229. the salt master. Creation of a node has been its only function and no other
  163230. salt\-cloud commands were implemented.
  163231. .sp
  163232. With this upgrade, it can use the salt\-api to provide advanced control,
  163233. such as rebooting a machine, querying it along with conventional cloud minions,
  163234. and, ultimately, disconnecting it from its master.
  163235. .sp
  163236. After disconnection from ("destroying" on) one master, a machine can be
  163237. re\-purposed by connecting to ("creating" on) a subsequent master.
  163238. .SS New Vagrant Driver
  163239. .sp
  163240. The salt\-cloud Vagrant driver brings virtual machines running in a limited
  163241. environment, such as a programmer\(aqs workstation, under salt\-cloud control.
  163242. This can be useful for experimentation, instruction, or testing salt configurations.
  163243. .sp
  163244. Using salt\-api on the master, and a salt\-minion running on the host computer,
  163245. the Vagrant driver can create (\fBvagrant up\fP), restart (\fBvagrant reload\fP),
  163246. and destroy (\fBvagrant destroy\fP) VMs, as controlled by salt\-cloud profiles
  163247. which designate a \fBVagrantfile\fP on the host machine.
  163248. .sp
  163249. The master can be a very limited machine, such as a Raspberry Pi, or a small
  163250. VagrantBox VM.
  163251. .SS Python PyWinRM Module
  163252. .sp
  163253. Versions of \fBpywinrm>=0.2.1\fP are finally able to disable validation of self
  163254. signed certificates. Here for more information.
  163255. .SS DigitalOcean
  163256. .sp
  163257. The DigitalOcean driver has been renamed to conform to the company name. The
  163258. new driver name is \fBdigitalocean\fP\&. The old name \fBdigital_ocean\fP and a
  163259. short one \fBdo\fP will still be supported through virtual aliases, this is
  163260. mostly cosmetic.
  163261. .SS Azure Cloud
  163262. .sp
  163263. The azure sdk used for the \fBazurearm\fP cloud driver now depends on
  163264. \fBazure\-cli>=2.0.12\fP
  163265. .SS New \fBsaltclass\fP pillar/master_tops modules
  163266. .sp
  163267. 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.
  163268. 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.
  163269. .sp
  163270. \fBFeatures\fP
  163271. .INDENT 0.0
  163272. .IP \(bu 2
  163273. Define your nodes through hierarchical class inheritance
  163274. .IP \(bu 2
  163275. Reuse your reclass data with minimal modifications
  163276. .INDENT 2.0
  163277. .INDENT 3.5
  163278. .INDENT 0.0
  163279. .IP \(bu 2
  163280. applications => states
  163281. .IP \(bu 2
  163282. parameters => pillars
  163283. .UNINDENT
  163284. .UNINDENT
  163285. .UNINDENT
  163286. .IP \(bu 2
  163287. Use Jinja templating in your yaml definitions
  163288. .IP \(bu 2
  163289. Access to the following Salt objects in Jinja
  163290. .INDENT 2.0
  163291. .INDENT 3.5
  163292. .INDENT 0.0
  163293. .IP \(bu 2
  163294. \fB__opts__\fP
  163295. .IP \(bu 2
  163296. \fB__salt__\fP
  163297. .IP \(bu 2
  163298. \fB__grains__\fP
  163299. .IP \(bu 2
  163300. \fB__pillars__\fP
  163301. .IP \(bu 2
  163302. \fBminion_id\fP
  163303. .UNINDENT
  163304. .UNINDENT
  163305. .UNINDENT
  163306. .IP \(bu 2
  163307. Chose how to merge or override your lists using ^ character (see examples)
  163308. .IP \(bu 2
  163309. Expand variables ${} with possibility to escape them if needed ${} (see
  163310. examples)
  163311. .IP \(bu 2
  163312. Ignores missing node/class and will simply return empty without breaking the
  163313. pillar module completely \- will be logged
  163314. .UNINDENT
  163315. .sp
  163316. An example subset of data is available here:
  163317. \fI\%https://git.mauras.ch/salt/saltclass/src/branch/master/examples\fP
  163318. .TS
  163319. center;
  163320. |l|l|.
  163321. _
  163322. T{
  163323. Terms usable in yaml files
  163324. T} T{
  163325. Description
  163326. T}
  163327. _
  163328. T{
  163329. classes
  163330. T} T{
  163331. A list of classes that will be processed in order
  163332. T}
  163333. _
  163334. T{
  163335. states
  163336. T} T{
  163337. A list of states that will be returned by master_tops function
  163338. T}
  163339. _
  163340. T{
  163341. pillars
  163342. T} T{
  163343. A yaml dictionary that will be returned by the ext_pillar function
  163344. T}
  163345. _
  163346. T{
  163347. environment
  163348. T} T{
  163349. Node saltenv that will be used by master_tops
  163350. T}
  163351. _
  163352. .TE
  163353. .sp
  163354. A class consists of:
  163355. .INDENT 0.0
  163356. .IP \(bu 2
  163357. zero or more parent classes
  163358. .IP \(bu 2
  163359. zero or more states
  163360. .IP \(bu 2
  163361. any number of pillars
  163362. .UNINDENT
  163363. .sp
  163364. A child class can override pillars from a parent class. A node definition is a
  163365. class in itself with an added \fBenvironment\fP parameter for \fBsaltenv\fP
  163366. definition.
  163367. .sp
  163368. \fBClass Names\fP
  163369. .sp
  163370. Class names mimic salt way of defining states and pillar files.
  163371. This means that \fBdefault.users\fP class name will correspond to one of these:
  163372. .INDENT 0.0
  163373. .IP \(bu 2
  163374. \fB<saltclass_path>/classes/default/users.yml\fP
  163375. .IP \(bu 2
  163376. \fB<saltclass_path>/classes/default/users/init.yml\fP
  163377. .UNINDENT
  163378. .sp
  163379. \fBSaltclass Tree\fP
  163380. .sp
  163381. A saltclass tree would look like this:
  163382. .INDENT 0.0
  163383. .INDENT 3.5
  163384. .sp
  163385. .nf
  163386. .ft C
  163387. <saltclass_path>
  163388. ├── classes
  163389. │ ├── app
  163390. │ │ ├── borgbackup.yml
  163391. │ │ └── ssh
  163392. │ │ └── server.yml
  163393. │ ├── default
  163394. │ │ ├── init.yml
  163395. │ │ ├── motd.yml
  163396. │ │ └── users.yml
  163397. │ ├── roles
  163398. │ │ ├── app.yml
  163399. │ │ └── nginx
  163400. │ │ ├── init.yml
  163401. │ │ └── server.yml
  163402. │ └── subsidiaries
  163403. │ ├── gnv.yml
  163404. │ ├── qls.yml
  163405. │ └── zrh.yml
  163406. └── nodes
  163407. ├── geneva
  163408. │ └── gnv.node1.yml
  163409. ├── lausanne
  163410. │ ├── qls.node1.yml
  163411. │ └── qls.node2.yml
  163412. ├── node127.yml
  163413. └── zurich
  163414. ├── zrh.node1.yml
  163415. ├── zrh.node2.yml
  163416. └── zrh.node3.yml
  163417. .ft P
  163418. .fi
  163419. .UNINDENT
  163420. .UNINDENT
  163421. .sp
  163422. \fBExamples\fP
  163423. .sp
  163424. \fB<saltclass_path>/nodes/lausanne/qls.node1.yml\fP
  163425. .INDENT 0.0
  163426. .INDENT 3.5
  163427. .sp
  163428. .nf
  163429. .ft C
  163430. environment: base
  163431. classes:
  163432. {% for class in [\(aqdefault\(aq] %}
  163433. \- {{ class }}
  163434. {% endfor %}
  163435. \- subsidiaries.{{ __grains__[\(aqid\(aq].split(\(aq.\(aq)[0] }}
  163436. .ft P
  163437. .fi
  163438. .UNINDENT
  163439. .UNINDENT
  163440. .sp
  163441. \fB<saltclass_path>/classes/default/init.yml\fP
  163442. .INDENT 0.0
  163443. .INDENT 3.5
  163444. .sp
  163445. .nf
  163446. .ft C
  163447. classes:
  163448. \- default.users
  163449. \- default.motd
  163450. states:
  163451. \- openssh
  163452. pillars:
  163453. default:
  163454. network:
  163455. dns:
  163456. srv1: 192.168.0.1
  163457. srv2: 192.168.0.2
  163458. domain: example.com
  163459. ntp:
  163460. srv1: 192.168.10.10
  163461. srv2: 192.168.10.20
  163462. .ft P
  163463. .fi
  163464. .UNINDENT
  163465. .UNINDENT
  163466. .sp
  163467. \fB<saltclass_path>/classes/subsidiaries/gnv.yml\fP
  163468. .INDENT 0.0
  163469. .INDENT 3.5
  163470. .sp
  163471. .nf
  163472. .ft C
  163473. pillars:
  163474. default:
  163475. network:
  163476. sub: Geneva
  163477. dns:
  163478. srv1: 10.20.0.1
  163479. srv2: 10.20.0.2
  163480. srv3: 192.168.1.1
  163481. domain: gnv.example.com
  163482. users:
  163483. adm1:
  163484. uid: 1210
  163485. gid: 1210
  163486. gecos: \(aqSuper user admin1\(aq
  163487. homedir: /srv/app/adm1
  163488. adm3:
  163489. uid: 1203
  163490. gid: 1203
  163491. gecos: \(aqSuper user adm
  163492. .ft P
  163493. .fi
  163494. .UNINDENT
  163495. .UNINDENT
  163496. .sp
  163497. Variable expansions:
  163498. .sp
  163499. Escaped variables are rendered as is \- \fB${test}\fP
  163500. .sp
  163501. Missing variables are rendered as is \- \fB${net:dns:srv2}\fP
  163502. .INDENT 0.0
  163503. .INDENT 3.5
  163504. .sp
  163505. .nf
  163506. .ft C
  163507. pillars:
  163508. app:
  163509. config:
  163510. dns:
  163511. srv1: ${default:network:dns:srv1}
  163512. srv2: ${net:dns:srv2}
  163513. uri: https://application.domain/call?\e${test}
  163514. prod_parameters:
  163515. \- p1
  163516. \- p2
  163517. \- p3
  163518. pkg:
  163519. \- app\-core
  163520. \- app\-backend
  163521. .ft P
  163522. .fi
  163523. .UNINDENT
  163524. .UNINDENT
  163525. .sp
  163526. List override:
  163527. .sp
  163528. Not using \fB^\fP as the first entry will simply merge the lists
  163529. .INDENT 0.0
  163530. .INDENT 3.5
  163531. .sp
  163532. .nf
  163533. .ft C
  163534. pillars:
  163535. app:
  163536. pkg:
  163537. \- ^
  163538. \- app\-frontend
  163539. .ft P
  163540. .fi
  163541. .UNINDENT
  163542. .UNINDENT
  163543. .sp
  163544. \fBKnown limitation\fP
  163545. .sp
  163546. Currently you can\(aqt have both a variable and an escaped variable in the same
  163547. string as the escaped one will not be correctly rendered \- \(aq${xx}\(aq will stay
  163548. as is instead of being rendered as \(aq${xx}\(aq
  163549. .SS Lists of comments in state returns
  163550. .sp
  163551. State functions can now return a list of strings for the \fBcomment\fP field, as
  163552. opposed to only a single string. This is meant to ease writing states with
  163553. multiple or multi\-part comments.
  163554. .SS Beacon configuration changes
  163555. .sp
  163556. In order to remain consistent and to align with other Salt components such as
  163557. states, support for configuring beacons using dictionary based configuration
  163558. has been deprecated in favor of list based configuration. All beacons have a
  163559. validation function which will check the configuration for the correct format
  163560. and only load if the validation passes.
  163561. .SS avahi_announce
  163562. .sp
  163563. Old behavior:
  163564. .INDENT 0.0
  163565. .INDENT 3.5
  163566. .sp
  163567. .nf
  163568. .ft C
  163569. beacons:
  163570. avahi_announce:
  163571. run_once: True
  163572. servicetype: _demo._tcp
  163573. port: 1234
  163574. txt:
  163575. ProdName: grains.productname
  163576. SerialNo: grains.serialnumber
  163577. Comments: \(aqthis is a test\(aq
  163578. .ft P
  163579. .fi
  163580. .UNINDENT
  163581. .UNINDENT
  163582. .sp
  163583. New behavior:
  163584. .INDENT 0.0
  163585. .INDENT 3.5
  163586. .sp
  163587. .nf
  163588. .ft C
  163589. beacons:
  163590. avahi_announce:
  163591. \- run_once: True
  163592. \- servicetype: _demo._tcp
  163593. \- port: 1234
  163594. \- txt:
  163595. ProdName: grains.productname
  163596. SerialNo: grains.serialnumber
  163597. Comments: \(aqthis is a test\(aq
  163598. .ft P
  163599. .fi
  163600. .UNINDENT
  163601. .UNINDENT
  163602. .SS bonjour_announce
  163603. .sp
  163604. Old behavior:
  163605. .INDENT 0.0
  163606. .INDENT 3.5
  163607. .sp
  163608. .nf
  163609. .ft C
  163610. beacons:
  163611. bonjour_announce:
  163612. run_once: True
  163613. servicetype: _demo._tcp
  163614. port: 1234
  163615. txt:
  163616. ProdName: grains.productname
  163617. SerialNo: grains.serialnumber
  163618. Comments: \(aqthis is a test\(aq
  163619. .ft P
  163620. .fi
  163621. .UNINDENT
  163622. .UNINDENT
  163623. .sp
  163624. New behavior:
  163625. .INDENT 0.0
  163626. .INDENT 3.5
  163627. .sp
  163628. .nf
  163629. .ft C
  163630. beacons:
  163631. bonjour_announce:
  163632. \- run_once: True
  163633. \- servicetype: _demo._tcp
  163634. \- port: 1234
  163635. \- txt:
  163636. ProdName: grains.productname
  163637. SerialNo: grains.serialnumber
  163638. Comments: \(aqthis is a test\(aq
  163639. .ft P
  163640. .fi
  163641. .UNINDENT
  163642. .UNINDENT
  163643. .SS btmp
  163644. .sp
  163645. Old behavior:
  163646. .INDENT 0.0
  163647. .INDENT 3.5
  163648. .sp
  163649. .nf
  163650. .ft C
  163651. beacons:
  163652. btmp: {}
  163653. .ft P
  163654. .fi
  163655. .UNINDENT
  163656. .UNINDENT
  163657. .sp
  163658. New behavior:
  163659. .INDENT 0.0
  163660. .INDENT 3.5
  163661. .sp
  163662. .nf
  163663. .ft C
  163664. beacons:
  163665. btmp: []
  163666. .ft P
  163667. .fi
  163668. .UNINDENT
  163669. .UNINDENT
  163670. .SS glxinfo
  163671. .sp
  163672. Old behavior:
  163673. .INDENT 0.0
  163674. .INDENT 3.5
  163675. .sp
  163676. .nf
  163677. .ft C
  163678. beacons:
  163679. glxinfo:
  163680. user: frank
  163681. screen_event: True
  163682. .ft P
  163683. .fi
  163684. .UNINDENT
  163685. .UNINDENT
  163686. .sp
  163687. New behavior:
  163688. .INDENT 0.0
  163689. .INDENT 3.5
  163690. .sp
  163691. .nf
  163692. .ft C
  163693. beacons:
  163694. glxinfo:
  163695. \- user: frank
  163696. \- screen_event: True
  163697. .ft P
  163698. .fi
  163699. .UNINDENT
  163700. .UNINDENT
  163701. .SS haproxy
  163702. .sp
  163703. Old behavior:
  163704. .INDENT 0.0
  163705. .INDENT 3.5
  163706. .sp
  163707. .nf
  163708. .ft C
  163709. beacons:
  163710. haproxy:
  163711. \- www\-backend:
  163712. threshold: 45
  163713. servers:
  163714. \- web1
  163715. \- web2
  163716. \- interval: 120
  163717. .ft P
  163718. .fi
  163719. .UNINDENT
  163720. .UNINDENT
  163721. .sp
  163722. New behavior:
  163723. .INDENT 0.0
  163724. .INDENT 3.5
  163725. .sp
  163726. .nf
  163727. .ft C
  163728. beacons:
  163729. haproxy:
  163730. \- backends:
  163731. www\-backend:
  163732. threshold: 45
  163733. servers:
  163734. \- web1
  163735. \- web2
  163736. \- interval: 120
  163737. .ft P
  163738. .fi
  163739. .UNINDENT
  163740. .UNINDENT
  163741. .SS inotify
  163742. .sp
  163743. Old behavior:
  163744. .INDENT 0.0
  163745. .INDENT 3.5
  163746. .sp
  163747. .nf
  163748. .ft C
  163749. beacons:
  163750. inotify:
  163751. /path/to/file/or/dir:
  163752. mask:
  163753. \- open
  163754. \- create
  163755. \- close_write
  163756. recurse: True
  163757. auto_add: True
  163758. exclude:
  163759. \- /path/to/file/or/dir/exclude1
  163760. \- /path/to/file/or/dir/exclude2
  163761. \- /path/to/file/or/dir/regex[a\-m]*$:
  163762. regex: True
  163763. coalesce: True
  163764. .ft P
  163765. .fi
  163766. .UNINDENT
  163767. .UNINDENT
  163768. .sp
  163769. New behavior:
  163770. .INDENT 0.0
  163771. .INDENT 3.5
  163772. .sp
  163773. .nf
  163774. .ft C
  163775. beacons:
  163776. inotify:
  163777. \- files:
  163778. /path/to/file/or/dir:
  163779. mask:
  163780. \- open
  163781. \- create
  163782. \- close_write
  163783. recurse: True
  163784. auto_add: True
  163785. exclude:
  163786. \- /path/to/file/or/dir/exclude1
  163787. \- /path/to/file/or/dir/exclude2
  163788. \- /path/to/file/or/dir/regex[a\-m]*$:
  163789. regex: True
  163790. \- coalesce: True
  163791. .ft P
  163792. .fi
  163793. .UNINDENT
  163794. .UNINDENT
  163795. .SS journald
  163796. .sp
  163797. Old behavior:
  163798. .INDENT 0.0
  163799. .INDENT 3.5
  163800. .sp
  163801. .nf
  163802. .ft C
  163803. beacons:
  163804. journald:
  163805. sshd:
  163806. SYSLOG_IDENTIFIER: sshd
  163807. PRIORITY: 6
  163808. .ft P
  163809. .fi
  163810. .UNINDENT
  163811. .UNINDENT
  163812. .sp
  163813. New behavior:
  163814. .INDENT 0.0
  163815. .INDENT 3.5
  163816. .sp
  163817. .nf
  163818. .ft C
  163819. beacons:
  163820. journald:
  163821. \- services:
  163822. sshd:
  163823. SYSLOG_IDENTIFIER: sshd
  163824. PRIORITY: 6
  163825. .ft P
  163826. .fi
  163827. .UNINDENT
  163828. .UNINDENT
  163829. .SS load
  163830. .sp
  163831. Old behavior:
  163832. .INDENT 0.0
  163833. .INDENT 3.5
  163834. .sp
  163835. .nf
  163836. .ft C
  163837. beacons:
  163838. load:
  163839. 1m:
  163840. \- 0.0
  163841. \- 2.0
  163842. 5m:
  163843. \- 0.0
  163844. \- 1.5
  163845. 15m:
  163846. \- 0.1
  163847. \- 1.0
  163848. emitatstartup: True
  163849. onchangeonly: False
  163850. .ft P
  163851. .fi
  163852. .UNINDENT
  163853. .UNINDENT
  163854. .sp
  163855. New behavior:
  163856. .INDENT 0.0
  163857. .INDENT 3.5
  163858. .sp
  163859. .nf
  163860. .ft C
  163861. beacons:
  163862. load:
  163863. \- averages:
  163864. 1m:
  163865. \- 0.0
  163866. \- 2.0
  163867. 5m:
  163868. \- 0.0
  163869. \- 1.5
  163870. 15m:
  163871. \- 0.1
  163872. \- 1.0
  163873. \- emitatstartup: True
  163874. \- onchangeonly: False
  163875. .ft P
  163876. .fi
  163877. .UNINDENT
  163878. .UNINDENT
  163879. .SS log
  163880. .sp
  163881. Old behavior:
  163882. .INDENT 0.0
  163883. .INDENT 3.5
  163884. .sp
  163885. .nf
  163886. .ft C
  163887. beacons:
  163888. log:
  163889. file: <path>
  163890. <tag>:
  163891. regex: <pattern>
  163892. .ft P
  163893. .fi
  163894. .UNINDENT
  163895. .UNINDENT
  163896. .sp
  163897. New behavior:
  163898. .INDENT 0.0
  163899. .INDENT 3.5
  163900. .sp
  163901. .nf
  163902. .ft C
  163903. beacons:
  163904. log:
  163905. \- file: <path>
  163906. \- tags:
  163907. <tag>:
  163908. regex: <pattern>
  163909. .ft P
  163910. .fi
  163911. .UNINDENT
  163912. .UNINDENT
  163913. .SS network_info
  163914. .sp
  163915. Old behavior:
  163916. .INDENT 0.0
  163917. .INDENT 3.5
  163918. .sp
  163919. .nf
  163920. .ft C
  163921. beacons:
  163922. network_info:
  163923. \- eth0:
  163924. type: equal
  163925. bytes_sent: 100000
  163926. bytes_recv: 100000
  163927. packets_sent: 100000
  163928. packets_recv: 100000
  163929. errin: 100
  163930. errout: 100
  163931. dropin: 100
  163932. dropout: 100
  163933. .ft P
  163934. .fi
  163935. .UNINDENT
  163936. .UNINDENT
  163937. .sp
  163938. New behavior:
  163939. .INDENT 0.0
  163940. .INDENT 3.5
  163941. .sp
  163942. .nf
  163943. .ft C
  163944. beacons:
  163945. network_info:
  163946. \- interfaces:
  163947. eth0:
  163948. type: equal
  163949. bytes_sent: 100000
  163950. bytes_recv: 100000
  163951. packets_sent: 100000
  163952. packets_recv: 100000
  163953. errin: 100
  163954. errout: 100
  163955. dropin: 100
  163956. dropout: 100
  163957. .ft P
  163958. .fi
  163959. .UNINDENT
  163960. .UNINDENT
  163961. .SS network_settings
  163962. .sp
  163963. Old behavior:
  163964. .INDENT 0.0
  163965. .INDENT 3.5
  163966. .sp
  163967. .nf
  163968. .ft C
  163969. beacons:
  163970. network_settings:
  163971. eth0:
  163972. ipaddr:
  163973. promiscuity:
  163974. onvalue: 1
  163975. eth1:
  163976. linkmode:
  163977. .ft P
  163978. .fi
  163979. .UNINDENT
  163980. .UNINDENT
  163981. .sp
  163982. New behavior:
  163983. .INDENT 0.0
  163984. .INDENT 3.5
  163985. .sp
  163986. .nf
  163987. .ft C
  163988. beacons:
  163989. network_settings:
  163990. \- interfaces:
  163991. \- eth0:
  163992. ipaddr:
  163993. promiscuity:
  163994. onvalue: 1
  163995. \- eth1:
  163996. linkmode:
  163997. .ft P
  163998. .fi
  163999. .UNINDENT
  164000. .UNINDENT
  164001. .SS proxy_example
  164002. .sp
  164003. Old behavior:
  164004. .INDENT 0.0
  164005. .INDENT 3.5
  164006. .sp
  164007. .nf
  164008. .ft C
  164009. beacons:
  164010. proxy_example:
  164011. endpoint: beacon
  164012. .ft P
  164013. .fi
  164014. .UNINDENT
  164015. .UNINDENT
  164016. .sp
  164017. New behavior:
  164018. .INDENT 0.0
  164019. .INDENT 3.5
  164020. .sp
  164021. .nf
  164022. .ft C
  164023. beacons:
  164024. proxy_example:
  164025. \- endpoint: beacon
  164026. .ft P
  164027. .fi
  164028. .UNINDENT
  164029. .UNINDENT
  164030. .SS ps
  164031. .sp
  164032. Old behavior:
  164033. .INDENT 0.0
  164034. .INDENT 3.5
  164035. .sp
  164036. .nf
  164037. .ft C
  164038. beacons:
  164039. ps:
  164040. \- salt\-master: running
  164041. \- mysql: stopped
  164042. .ft P
  164043. .fi
  164044. .UNINDENT
  164045. .UNINDENT
  164046. .sp
  164047. New behavior:
  164048. .INDENT 0.0
  164049. .INDENT 3.5
  164050. .sp
  164051. .nf
  164052. .ft C
  164053. beacons:
  164054. ps:
  164055. \- processes:
  164056. salt\-master: running
  164057. mysql: stopped
  164058. .ft P
  164059. .fi
  164060. .UNINDENT
  164061. .UNINDENT
  164062. .SS salt_proxy
  164063. .sp
  164064. Old behavior:
  164065. .INDENT 0.0
  164066. .INDENT 3.5
  164067. .sp
  164068. .nf
  164069. .ft C
  164070. beacons:
  164071. salt_proxy:
  164072. \- p8000: {}
  164073. \- p8001: {}
  164074. .ft P
  164075. .fi
  164076. .UNINDENT
  164077. .UNINDENT
  164078. .sp
  164079. New behavior:
  164080. .INDENT 0.0
  164081. .INDENT 3.5
  164082. .sp
  164083. .nf
  164084. .ft C
  164085. beacons:
  164086. salt_proxy:
  164087. \- proxies:
  164088. p8000: {}
  164089. p8001: {}
  164090. .ft P
  164091. .fi
  164092. .UNINDENT
  164093. .UNINDENT
  164094. .SS sensehat
  164095. .sp
  164096. Old behavior:
  164097. .INDENT 0.0
  164098. .INDENT 3.5
  164099. .sp
  164100. .nf
  164101. .ft C
  164102. beacons:
  164103. sensehat:
  164104. humidity: 70%
  164105. temperature: [20, 40]
  164106. temperature_from_pressure: 40
  164107. pressure: 1500
  164108. .ft P
  164109. .fi
  164110. .UNINDENT
  164111. .UNINDENT
  164112. .sp
  164113. New behavior:
  164114. .INDENT 0.0
  164115. .INDENT 3.5
  164116. .sp
  164117. .nf
  164118. .ft C
  164119. beacons:
  164120. sensehat:
  164121. \- sensors:
  164122. humidity: 70%
  164123. temperature: [20, 40]
  164124. temperature_from_pressure: 40
  164125. pressure: 1500
  164126. .ft P
  164127. .fi
  164128. .UNINDENT
  164129. .UNINDENT
  164130. .SS service
  164131. .sp
  164132. Old behavior:
  164133. .INDENT 0.0
  164134. .INDENT 3.5
  164135. .sp
  164136. .nf
  164137. .ft C
  164138. beacons:
  164139. service:
  164140. salt\-master:
  164141. mysql:
  164142. .ft P
  164143. .fi
  164144. .UNINDENT
  164145. .UNINDENT
  164146. .sp
  164147. New behavior:
  164148. .INDENT 0.0
  164149. .INDENT 3.5
  164150. .sp
  164151. .nf
  164152. .ft C
  164153. beacons:
  164154. service:
  164155. \- services:
  164156. nginx:
  164157. onchangeonly: True
  164158. delay: 30
  164159. uncleanshutdown: /run/nginx.pid
  164160. .ft P
  164161. .fi
  164162. .UNINDENT
  164163. .UNINDENT
  164164. .SS sh
  164165. .sp
  164166. Old behavior:
  164167. .INDENT 0.0
  164168. .INDENT 3.5
  164169. .sp
  164170. .nf
  164171. .ft C
  164172. beacons:
  164173. sh: {}
  164174. .ft P
  164175. .fi
  164176. .UNINDENT
  164177. .UNINDENT
  164178. .sp
  164179. New behavior:
  164180. .INDENT 0.0
  164181. .INDENT 3.5
  164182. .sp
  164183. .nf
  164184. .ft C
  164185. beacons:
  164186. sh: []
  164187. .ft P
  164188. .fi
  164189. .UNINDENT
  164190. .UNINDENT
  164191. .SS status
  164192. .sp
  164193. Old behavior:
  164194. .INDENT 0.0
  164195. .INDENT 3.5
  164196. .sp
  164197. .nf
  164198. .ft C
  164199. beacons:
  164200. status: {}
  164201. .ft P
  164202. .fi
  164203. .UNINDENT
  164204. .UNINDENT
  164205. .sp
  164206. New behavior:
  164207. .INDENT 0.0
  164208. .INDENT 3.5
  164209. .sp
  164210. .nf
  164211. .ft C
  164212. beacons:
  164213. status: []
  164214. .ft P
  164215. .fi
  164216. .UNINDENT
  164217. .UNINDENT
  164218. .SS telegram_bot_msg
  164219. .sp
  164220. Old behavior:
  164221. .INDENT 0.0
  164222. .INDENT 3.5
  164223. .sp
  164224. .nf
  164225. .ft C
  164226. beacons:
  164227. telegram_bot_msg:
  164228. token: "<bot access token>"
  164229. accept_from:
  164230. \- "<valid username>"
  164231. interval: 10
  164232. .ft P
  164233. .fi
  164234. .UNINDENT
  164235. .UNINDENT
  164236. .sp
  164237. New behavior:
  164238. .INDENT 0.0
  164239. .INDENT 3.5
  164240. .sp
  164241. .nf
  164242. .ft C
  164243. beacons:
  164244. telegram_bot_msg:
  164245. \- token: "<bot access token>"
  164246. \- accept_from:
  164247. \- "<valid username>"
  164248. \- interval: 10
  164249. .ft P
  164250. .fi
  164251. .UNINDENT
  164252. .UNINDENT
  164253. .SS twilio_txt_msg
  164254. .sp
  164255. Old behavior:
  164256. .INDENT 0.0
  164257. .INDENT 3.5
  164258. .sp
  164259. .nf
  164260. .ft C
  164261. beacons:
  164262. twilio_txt_msg:
  164263. account_sid: "<account sid>"
  164264. auth_token: "<auth token>"
  164265. twilio_number: "+15555555555"
  164266. interval: 10
  164267. .ft P
  164268. .fi
  164269. .UNINDENT
  164270. .UNINDENT
  164271. .sp
  164272. New behavior:
  164273. .INDENT 0.0
  164274. .INDENT 3.5
  164275. .sp
  164276. .nf
  164277. .ft C
  164278. beacons:
  164279. twilio_txt_msg:
  164280. \- account_sid: "<account sid>"
  164281. \- auth_token: "<auth token>"
  164282. \- twilio_number: "+15555555555"
  164283. \- interval: 10
  164284. .ft P
  164285. .fi
  164286. .UNINDENT
  164287. .UNINDENT
  164288. .SS wtmp
  164289. .sp
  164290. Old behavior:
  164291. .INDENT 0.0
  164292. .INDENT 3.5
  164293. .sp
  164294. .nf
  164295. .ft C
  164296. beacons:
  164297. wtmp: {}
  164298. .ft P
  164299. .fi
  164300. .UNINDENT
  164301. .UNINDENT
  164302. .sp
  164303. New behavior:
  164304. .INDENT 0.0
  164305. .INDENT 3.5
  164306. .sp
  164307. .nf
  164308. .ft C
  164309. beacons:
  164310. wtmp: []
  164311. .ft P
  164312. .fi
  164313. .UNINDENT
  164314. .UNINDENT
  164315. .SS New requisites available in state compiler
  164316. .SS require_any
  164317. .sp
  164318. The use of \fBrequire_any\fP demands that one of the required states executes
  164319. before the dependent state. The state containing the \fBrequire_any\fP requisite
  164320. is defined as the dependent state. The states specified in the \fBrequire_any\fP
  164321. statement are defined as the required states. If at least one of the required
  164322. state\(aqs execution succeeds, the dependent state will then execute. If all of
  164323. the executions by the required states fail, the dependent state will not
  164324. execute.
  164325. .SS watch_any
  164326. .sp
  164327. The state containing the \fBwatch_any\fP requisite is defined as the watching
  164328. state. The states specified in the \fBwatch_any\fP statement are defined as the
  164329. watched states. When the watched states execute, they will return a dictionary
  164330. containing a key named "changes".
  164331. .sp
  164332. If the "result" of any of the watched states is \fBTrue\fP, the watching state
  164333. \fIwill execute normally\fP, and if all of them are \fBFalse\fP, the watching state
  164334. will never run. This part of \fBwatch\fP mirrors the functionality of the
  164335. \fBrequire\fP requisite.
  164336. .sp
  164337. If the "result" of any of the watched states is \fBTrue\fP \fIand\fP the "changes"
  164338. key contains a populated dictionary (changes occurred in the watched state),
  164339. then the \fBwatch\fP requisite can add additional behavior. This additional
  164340. behavior is defined by the \fBmod_watch\fP function within the watching state
  164341. module. If the \fBmod_watch\fP function exists in the watching state module, it
  164342. will be called \fIin addition to\fP the normal watching state. The return data from
  164343. the \fBmod_watch\fP function is what will be returned to the master in this case;
  164344. the return data from the main watching function is discarded.
  164345. .sp
  164346. If the "changes" key contains an empty dictionary, the \fBwatch\fP requisite acts
  164347. exactly like the \fBrequire\fP requisite (the watching state will execute if
  164348. "result" is \fBTrue\fP, and fail if "result" is \fBFalse\fP in the watched state).
  164349. .SS onchanges_any
  164350. .sp
  164351. The \fBonchanges_any\fP requisite makes a state only apply one of the required
  164352. states generates changes, and if one of the watched state\(aqs "result" is
  164353. \fBTrue\fP\&. This can be a useful way to execute a post hook after changing
  164354. aspects of a system.
  164355. .SS onfail_any
  164356. .sp
  164357. The \fBonfail_any\fP requisite allows for reactions to happen strictly as a
  164358. response to the failure of at least one other state. This can be used in a
  164359. number of ways, such as executing a second attempt to set up a service or begin
  164360. to execute a separate thread of states because of a failure.
  164361. .sp
  164362. The \fBonfail_any\fP requisite is applied in the same way as \fBrequire_any\fP and
  164363. \fBwatch_any\fP\&.
  164364. .SS Basic Slots support in state compiler
  164365. .sp
  164366. Slots extend the state syntax and allows you to do things right before the
  164367. state function is executed. So you can make a decision in the last moment right
  164368. before a state is executed.
  164369. .sp
  164370. Slot syntax looks close to the simple python function call. Here is a simple example:
  164371. .INDENT 0.0
  164372. .INDENT 3.5
  164373. .sp
  164374. .nf
  164375. .ft C
  164376. copy\-some\-file:
  164377. file.copy:
  164378. \- name: __slot__:salt:test.echo(text=/tmp/some_file)
  164379. \- source: __slot__:salt:test.echo(/etc/hosts)
  164380. .ft P
  164381. .fi
  164382. .UNINDENT
  164383. .UNINDENT
  164384. .sp
  164385. Read more here\&.
  164386. .SS Cryptographic layer changes
  164387. .sp
  164388. M2Crypto is coming back. We are making the crypto backend modular but in this
  164389. release M2Crypto is enabled if it\(aqs importable by Python. If not Cryptodome or
  164390. PyCrypto is used as it was in the previous releases. M2Crypto is used in the
  164391. same way as PyCrypto so there would be no compatibility issues, different nodes
  164392. could use different backends.
  164393. .SS NaCL Module and Runner changes
  164394. .sp
  164395. In addition to argument changes in both the NaCL module and runner for future
  164396. removal in the 3000 release, the default "box_type" has changed from
  164397. \fBsecretbox\fP to \fBsealedbox\fP\&. SecretBox is data encrypted using private key
  164398. \fBsk\fP and Sealedbox is encrypted using public key \fBpk\fP\&.
  164399. .SS \fButils\fP functions reorganized into separate modules
  164400. .sp
  164401. The Salt utility functions from \fBsalt.utils\fP (typically used by those
  164402. developing extension modules for Salt) have been moved into different modules,
  164403. grouped logically based on their functionality. The old function names will
  164404. continue to work until the \fB3000\fP release of Salt (due around Q1 2019).
  164405. .sp
  164406. The renamed functions are:
  164407. .INDENT 0.0
  164408. .IP \(bu 2
  164409. \fBsalt.utils.appendproctitle\fP: use \fBsalt.utils.process.appendproctitle\fP
  164410. instead.
  164411. .IP \(bu 2
  164412. \fBsalt.utils.daemonize\fP: use \fBsalt.utils.process.daemonize\fP instead.
  164413. .IP \(bu 2
  164414. \fBsalt.utils.daemonize_if\fP: use \fBsalt.utils.process.daemonize_if\fP instead.
  164415. .IP \(bu 2
  164416. \fBsalt.utils.reinit_crypto\fP: use \fBsalt.utils.crypt.reinit_crypto\fP instead.
  164417. .IP \(bu 2
  164418. \fBsalt.utils.pem_finger\fP: use \fBsalt.utils.crypt.pem_finger\fP instead.
  164419. .IP \(bu 2
  164420. \fBsalt.utils.to_bytes\fP: use \fBsalt.utils.stringutils.to_bytes\fP instead.
  164421. .IP \(bu 2
  164422. \fBsalt.utils.to_str\fP: use \fBsalt.utils.stringutils.to_str\fP instead.
  164423. .IP \(bu 2
  164424. \fBsalt.utils.to_unicode\fP: use \fBsalt.utils.stringutils.to_unicode\fP instead.
  164425. .IP \(bu 2
  164426. \fBsalt.utils.str_to_num\fP: use \fBsalt.utils.stringutils.to_num\fP instead.
  164427. .IP \(bu 2
  164428. \fBsalt.utils.is_quoted\fP: use \fBsalt.utils.stringutils.is_quoted\fP instead.
  164429. .IP \(bu 2
  164430. \fBsalt.utils.dequote\fP: use \fBsalt.utils.stringutils.dequote\fP instead.
  164431. .IP \(bu 2
  164432. \fBsalt.utils.is_hex\fP: use \fBsalt.utils.stringutils.is_hex\fP instead.
  164433. .IP \(bu 2
  164434. \fBsalt.utils.is_bin_str\fP: use \fBsalt.utils.stringutils.is_bin_str\fP instead.
  164435. .IP \(bu 2
  164436. \fBsalt.utils.rand_string\fP: use \fBsalt.utils.stringutils.random\fP instead.
  164437. .IP \(bu 2
  164438. \fBsalt.utils.contains_whitespace\fP: use
  164439. \fBsalt.utils.stringutils.contains_whitespace\fP instead.
  164440. .IP \(bu 2
  164441. \fBsalt.utils.build_whitespace_split_regex\fP: use
  164442. \fBsalt.utils.stringutils.build_whitespace_split_regex\fP instead.
  164443. .IP \(bu 2
  164444. \fBsalt.utils.expr_match\fP: use \fBsalt.utils.stringutils.expr_match\fP instead.
  164445. .IP \(bu 2
  164446. \fBsalt.utils.check_whitelist_blacklist\fP: use
  164447. \fBsalt.utils.stringutils.check_whitelist_blacklist\fP instead.
  164448. .IP \(bu 2
  164449. \fBsalt.utils.check_include_exclude\fP: use
  164450. \fBsalt.utils.stringutils.check_include_exclude\fP instead.
  164451. .IP \(bu 2
  164452. \fBsalt.utils.print_cli\fP: use \fBsalt.utils.stringutils.print_cli\fP instead.
  164453. .IP \(bu 2
  164454. \fBsalt.utils.clean_kwargs\fP: use \fBsalt.utils.args.clean_kwargs\fP instead.
  164455. .IP \(bu 2
  164456. \fBsalt.utils.invalid_kwargs\fP: use \fBsalt.utils.args.invalid_kwargs\fP
  164457. instead.
  164458. .IP \(bu 2
  164459. \fBsalt.utils.shlex_split\fP: use \fBsalt.utils.args.shlex_split\fP instead.
  164460. .IP \(bu 2
  164461. \fBsalt.utils.arg_lookup\fP: use \fBsalt.utils.args.arg_lookup\fP instead.
  164462. .IP \(bu 2
  164463. \fBsalt.utils.argspec_report\fP: use \fBsalt.utils.args.argspec_report\fP
  164464. instead.
  164465. .IP \(bu 2
  164466. \fBsalt.utils.split_input\fP: use \fBsalt.utils.args.split_input\fP instead.
  164467. .IP \(bu 2
  164468. \fBsalt.utils.test_mode\fP: use \fBsalt.utils.args.test_mode\fP instead.
  164469. .IP \(bu 2
  164470. \fBsalt.utils.format_call\fP: use \fBsalt.utils.args.format_call\fP instead.
  164471. .IP \(bu 2
  164472. \fBsalt.utils.which\fP: use \fBsalt.utils.path.which\fP instead.
  164473. .IP \(bu 2
  164474. \fBsalt.utils.which_bin\fP: use \fBsalt.utils.path.which_bin\fP instead.
  164475. .IP \(bu 2
  164476. \fBsalt.utils.path_join\fP: use \fBsalt.utils.path.join\fP instead.
  164477. .IP \(bu 2
  164478. \fBsalt.utils.check_or_die\fP: use \fBsalt.utils.path.check_or_die\fP instead.
  164479. .IP \(bu 2
  164480. \fBsalt.utils.sanitize_win_path_string\fP: use
  164481. \fBsalt.utils.path.sanitize_win_path\fP instead.
  164482. .IP \(bu 2
  164483. \fBsalt.utils.rand_str\fP: use \fBsalt.utils.hashutils.random_hash\fP instead.
  164484. .IP \(bu 2
  164485. \fBsalt.utils.get_hash\fP: use \fBsalt.utils.hashutils.get_hash\fP instead.
  164486. .IP \(bu 2
  164487. \fBsalt.utils.is_windows\fP: use \fBsalt.utils.platform.is_windows\fP instead.
  164488. .IP \(bu 2
  164489. \fBsalt.utils.is_proxy\fP: use \fBsalt.utils.platform.is_proxy\fP instead.
  164490. .IP \(bu 2
  164491. \fBsalt.utils.is_linux\fP: use \fBsalt.utils.platform.is_linux\fP instead.
  164492. .IP \(bu 2
  164493. \fBsalt.utils.is_darwin\fP: use \fBsalt.utils.platform.is_darwin\fP instead.
  164494. .IP \(bu 2
  164495. \fBsalt.utils.is_sunos\fP: use \fBsalt.utils.platform.is_sunos\fP instead.
  164496. .IP \(bu 2
  164497. \fBsalt.utils.is_smartos\fP: use \fBsalt.utils.platform.is_smartos\fP instead.
  164498. .IP \(bu 2
  164499. \fBsalt.utils.is_smartos_globalzone\fP: use
  164500. \fBsalt.utils.platform.is_smartos_globalzone\fP instead.
  164501. .IP \(bu 2
  164502. \fBsalt.utils.is_smartos_zone\fP: use \fBsalt.utils.platform.is_smartos_zone\fP
  164503. instead.
  164504. .IP \(bu 2
  164505. \fBsalt.utils.is_freebsd\fP: use \fBsalt.utils.platform.is_freebsd\fP instead.
  164506. .IP \(bu 2
  164507. \fBsalt.utils.is_netbsd\fP: use \fBsalt.utils.platform.is_netbsd\fP instead.
  164508. .IP \(bu 2
  164509. \fBsalt.utils.is_openbsd\fP: use \fBsalt.utils.platform.is_openbsd\fP instead.
  164510. .IP \(bu 2
  164511. \fBsalt.utils.is_aix\fP: use \fBsalt.utils.platform.is_aix\fP instead.
  164512. .IP \(bu 2
  164513. \fBsalt.utils.safe_rm\fP: use \fBsalt.utils.files.safe_rm\fP instead.
  164514. .IP \(bu 2
  164515. \fBsalt.utils.is_empty\fP: use \fBsalt.utils.files.is_empty\fP instead.
  164516. .IP \(bu 2
  164517. \fBsalt.utils.fopen\fP: use \fBsalt.utils.files.fopen\fP instead.
  164518. .IP \(bu 2
  164519. \fBsalt.utils.flopen\fP: use \fBsalt.utils.files.flopen\fP instead.
  164520. .IP \(bu 2
  164521. \fBsalt.utils.fpopen\fP: use \fBsalt.utils.files.fpopen\fP instead.
  164522. .IP \(bu 2
  164523. \fBsalt.utils.rm_rf\fP: use \fBsalt.utils.files.rm_rf\fP instead.
  164524. .IP \(bu 2
  164525. \fBsalt.utils.mkstemp\fP: use \fBsalt.utils.files.mkstemp\fP instead.
  164526. .IP \(bu 2
  164527. \fBsalt.utils.istextfile\fP: use \fBsalt.utils.files.is_text_file\fP instead.
  164528. .IP \(bu 2
  164529. \fBsalt.utils.is_bin_file\fP: use \fBsalt.utils.files.is_binary\fP instead.
  164530. .IP \(bu 2
  164531. \fBsalt.utils.list_files\fP: use \fBsalt.utils.files.list_files\fP instead.
  164532. .IP \(bu 2
  164533. \fBsalt.utils.safe_walk\fP: use \fBsalt.utils.files.safe_walk\fP instead.
  164534. .IP \(bu 2
  164535. \fBsalt.utils.st_mode_to_octal\fP: use \fBsalt.utils.files.st_mode_to_octal\fP
  164536. instead.
  164537. .IP \(bu 2
  164538. \fBsalt.utils.normalize_mode\fP: use \fBsalt.utils.files.normalize_mode\fP
  164539. instead.
  164540. .IP \(bu 2
  164541. \fBsalt.utils.human_size_to_bytes\fP: use
  164542. \fBsalt.utils.files.human_size_to_bytes\fP instead.
  164543. .IP \(bu 2
  164544. \fBsalt.utils.backup_minion\fP: use \fBsalt.utils.files.backup_minion\fP instead.
  164545. .IP \(bu 2
  164546. \fBsalt.utils.str_version_to_evr\fP: use \fBsalt.utils.pkg.rpm.version_to_evr\fP
  164547. instead.
  164548. .IP \(bu 2
  164549. \fBsalt.utils.parse_docstring\fP: use \fBsalt.utils.doc.parse_docstring\fP
  164550. instead.
  164551. .IP \(bu 2
  164552. \fBsalt.utils.compare_versions\fP: use \fBsalt.utils.versions.compare\fP instead.
  164553. .IP \(bu 2
  164554. \fBsalt.utils.version_cmp\fP: use \fBsalt.utils.versions.version_cmp\fP instead.
  164555. .IP \(bu 2
  164556. \fBsalt.utils.warn_until\fP: use \fBsalt.utils.versions.warn_until\fP instead.
  164557. .IP \(bu 2
  164558. \fBsalt.utils.kwargs_warn_until\fP: use
  164559. \fBsalt.utils.versions.kwargs_warn_until\fP instead.
  164560. .IP \(bu 2
  164561. \fBsalt.utils.get_color_theme\fP: use \fBsalt.utils.color.get_color_theme\fP
  164562. instead.
  164563. .IP \(bu 2
  164564. \fBsalt.utils.get_colors\fP: use \fBsalt.utils.color.get_colors\fP instead.
  164565. .IP \(bu 2
  164566. \fBsalt.utils.gen_state_tag\fP: use \fBsalt.utils.state.gen_tag\fP instead.
  164567. .IP \(bu 2
  164568. \fBsalt.utils.search_onfail_requisites\fP: use
  164569. \fBsalt.utils.state.search_onfail_requisites\fP instead.
  164570. .IP \(bu 2
  164571. \fBsalt.utils.check_state_result\fP: use \fBsalt.utils.state.check_result\fP
  164572. instead.
  164573. .IP \(bu 2
  164574. \fBsalt.utils.get_user\fP: use \fBsalt.utils.user.get_user\fP instead.
  164575. .IP \(bu 2
  164576. \fBsalt.utils.get_uid\fP: use \fBsalt.utils.user.get_uid\fP instead.
  164577. .IP \(bu 2
  164578. \fBsalt.utils.get_specific_user\fP: use \fBsalt.utils.user.get_specific_user\fP
  164579. instead.
  164580. .IP \(bu 2
  164581. \fBsalt.utils.chugid\fP: use \fBsalt.utils.user.chugid\fP instead.
  164582. .IP \(bu 2
  164583. \fBsalt.utils.chugid_and_umask\fP: use \fBsalt.utils.user.chugid_and_umask\fP
  164584. instead.
  164585. .IP \(bu 2
  164586. \fBsalt.utils.get_default_group\fP: use \fBsalt.utils.user.get_default_group\fP
  164587. instead.
  164588. .IP \(bu 2
  164589. \fBsalt.utils.get_group_list\fP: use \fBsalt.utils.user.get_group_list\fP
  164590. instead.
  164591. .IP \(bu 2
  164592. \fBsalt.utils.get_group_dict\fP: use \fBsalt.utils.user.get_group_dict\fP
  164593. instead.
  164594. .IP \(bu 2
  164595. \fBsalt.utils.get_gid_list\fP: use \fBsalt.utils.user.get_gid_list\fP instead.
  164596. .IP \(bu 2
  164597. \fBsalt.utils.get_gid\fP: use \fBsalt.utils.user.get_gid\fP instead.
  164598. .IP \(bu 2
  164599. \fBsalt.utils.enable_ctrl_logoff_handler\fP: use
  164600. \fBsalt.utils.win_functions.enable_ctrl_logoff_handler\fP instead.
  164601. .IP \(bu 2
  164602. \fBsalt.utils.traverse_dict\fP: use \fBsalt.utils.data.traverse_dict\fP instead.
  164603. .IP \(bu 2
  164604. \fBsalt.utils.traverse_dict_and_list\fP: use
  164605. \fBsalt.utils.data.traverse_dict_and_list\fP instead.
  164606. .IP \(bu 2
  164607. \fBsalt.utils.filter_by\fP: use \fBsalt.utils.data.filter_by\fP instead.
  164608. .IP \(bu 2
  164609. \fBsalt.utils.subdict_match\fP: use \fBsalt.utils.data.subdict_match\fP instead.
  164610. .IP \(bu 2
  164611. \fBsalt.utils.substr_in_list\fP: use \fBsalt.utils.data.substr_in_list\fP instead.
  164612. .IP \(bu 2
  164613. \fBsalt.utils.is_dictlist\fP: use \fBsalt.utils.data.is_dictlist\fP\&.
  164614. .IP \(bu 2
  164615. \fBsalt.utils.repack_dictlist\fP: use \fBsalt.utils.data.repack_dictlist\fP
  164616. instead.
  164617. .IP \(bu 2
  164618. \fBsalt.utils.compare_dicts\fP: use \fBsalt.utils.data.compare_dicts\fP instead.
  164619. .IP \(bu 2
  164620. \fBsalt.utils.compare_lists\fP: use \fBsalt.utils.data.compare_lists\fP instead.
  164621. .IP \(bu 2
  164622. \fBsalt.utils.decode_dict\fP: use \fBsalt.utils.data.encode_dict\fP instead.
  164623. .IP \(bu 2
  164624. \fBsalt.utils.decode_list\fP: use \fBsalt.utils.data.encode_list\fP instead.
  164625. .IP \(bu 2
  164626. \fBsalt.utils.exactly_n\fP: use \fBsalt.utils.data.exactly_n\fP instead.
  164627. .IP \(bu 2
  164628. \fBsalt.utils.exactly_one\fP: use \fBsalt.utils.data.exactly_one\fP instead.
  164629. .IP \(bu 2
  164630. \fBsalt.utils.is_list\fP: use \fBsalt.utils.data.is_list\fP instead.
  164631. .IP \(bu 2
  164632. \fBsalt.utils.is_iter\fP: use \fBsalt.utils.data.is_iter\fP instead.
  164633. .IP \(bu 2
  164634. \fBsalt.utils.isorted\fP: use \fBsalt.utils.data.sorted_ignorecase\fP instead.
  164635. .IP \(bu 2
  164636. \fBsalt.utils.is_true\fP: use \fBsalt.utils.data.is_true\fP instead.
  164637. .IP \(bu 2
  164638. \fBsalt.utils.mysql_to_dict\fP: use \fBsalt.utils.data.mysql_to_dict\fP instead.
  164639. .IP \(bu 2
  164640. \fBsalt.utils.simple_types_filter\fP: use
  164641. \fBsalt.utils.data.simple_types_filter\fP instead.
  164642. .IP \(bu 2
  164643. \fBsalt.utils.ip_bracket\fP: use \fBsalt.utils.zeromq.ip_bracket\fP instead.
  164644. .IP \(bu 2
  164645. \fBsalt.utils.gen_mac\fP: use \fBsalt.utils.network.gen_mac\fP instead.
  164646. .IP \(bu 2
  164647. \fBsalt.utils.mac_str_to_bytes\fP: use \fBsalt.utils.network.mac_str_to_bytes\fP
  164648. instead.
  164649. .IP \(bu 2
  164650. \fBsalt.utils.refresh_dns\fP: use \fBsalt.utils.network.refresh_dns\fP instead.
  164651. .IP \(bu 2
  164652. \fBsalt.utils.dns_check\fP: use \fBsalt.utils.network.dns_check\fP instead.
  164653. .IP \(bu 2
  164654. \fBsalt.utils.get_context\fP: use \fBsalt.utils.stringutils.get_context\fP instead.
  164655. .IP \(bu 2
  164656. \fBsalt.utils.get_master_key\fP: use \fBsalt.utils.master.get_master_key\fP
  164657. instead.
  164658. .IP \(bu 2
  164659. \fBsalt.utils.get_values_of_matching_keys\fP: use
  164660. \fBsalt.utils.master.get_values_of_matching_keys\fP instead.
  164661. .IP \(bu 2
  164662. \fBsalt.utils.date_cast\fP: use \fBsalt.utils.dateutils.date_cast\fP instead.
  164663. .IP \(bu 2
  164664. \fBsalt.utils.date_format\fP: use \fBsalt.utils.dateutils.strftime\fP instead.
  164665. .IP \(bu 2
  164666. \fBsalt.utils.total_seconds\fP: use \fBsalt.utils.dateutils.total_seconds\fP
  164667. instead.
  164668. .IP \(bu 2
  164669. \fBsalt.utils.find_json\fP: use \fBsalt.utils.json.find_json\fP instead.
  164670. .IP \(bu 2
  164671. \fBsalt.utils.import_json\fP: use \fBsalt.utils.json.import_json\fP instead.
  164672. .IP \(bu 2
  164673. \fBsalt.utils.namespaced_function\fP: use
  164674. \fBsalt.utils.functools.namespaced_function\fP instead.
  164675. .IP \(bu 2
  164676. \fBsalt.utils.alias_function\fP: use \fBsalt.utils.functools.alias_function\fP
  164677. instead.
  164678. .IP \(bu 2
  164679. \fBsalt.utils.profile_func\fP: use \fBsalt.utils.profile.profile_func\fP instead.
  164680. .IP \(bu 2
  164681. \fBsalt.utils.activate_profile\fP: use \fBsalt.utils.profile.activate_profile\fP
  164682. instead.
  164683. .IP \(bu 2
  164684. \fBsalt.utils.output_profile\fP: use \fBsalt.utils.profile.output_profile\fP
  164685. instead.
  164686. .UNINDENT
  164687. .SS Deprecations
  164688. .SS Configuration Option Deprecations
  164689. .INDENT 0.0
  164690. .IP \(bu 2
  164691. The \fBrequests_lib\fP configuration option has been removed. Please use
  164692. \fBbackend\fP instead.
  164693. .UNINDENT
  164694. .SS Profitbricks Cloud Updated Dependency
  164695. .sp
  164696. The minimum version of the \fBprofitbrick\fP python package for the \fBprofitbricks\fP
  164697. cloud driver has changed from 3.0.0 to 3.1.0.
  164698. .SS Execution Module Deprecations
  164699. .INDENT 0.0
  164700. .IP \(bu 2
  164701. The \fBblockdev\fP execution module has been removed. Its functions were merged
  164702. with the \fBdisk\fP module.
  164703. .IP \(bu 2
  164704. The \fBlxc\fP execution module has been changed as
  164705. follows:
  164706. .INDENT 2.0
  164707. .INDENT 3.5
  164708. .INDENT 0.0
  164709. .IP \(bu 2
  164710. The \fBdnsservers\fP option to \fBlxc.cloud_init_interface\fP no longer defaults to
  164711. \fB4.4.4.4\fP and \fB8.8.8.8\fP\&.
  164712. .IP \(bu 2
  164713. The \fBdns_via_dhcp\fP option to \fBlxc.cloud_init_interface\fP now defaults to \fBTrue\fP instead
  164714. of \fBFalse\fP\&.
  164715. .UNINDENT
  164716. .UNINDENT
  164717. .UNINDENT
  164718. .IP \(bu 2
  164719. The \fBwin_psget\fP module has been changed as
  164720. follows:
  164721. .INDENT 2.0
  164722. .INDENT 3.5
  164723. .INDENT 0.0
  164724. .IP \(bu 2
  164725. The \fBpsget.psversion\fP function was removed. Please use
  164726. \fBcmd.shell_info\fP instead.
  164727. .UNINDENT
  164728. .UNINDENT
  164729. .UNINDENT
  164730. .IP \(bu 2
  164731. The \fBwin_service\fP module (which provides
  164732. the \fBservice\fP module on Windows platforms) has been changed as follows:
  164733. .INDENT 2.0
  164734. .INDENT 3.5
  164735. .INDENT 0.0
  164736. .IP \(bu 2
  164737. The \fBconfig\fP function was removed. Please use \fBservice.modify\fP instead.
  164738. .IP \(bu 2
  164739. The following arguments to the \fBservice.create\fP function have been renamed:
  164740. .INDENT 2.0
  164741. .INDENT 3.5
  164742. .INDENT 0.0
  164743. .IP \(bu 2
  164744. \fBbinpath\fP has been renamed to \fBbin_path\fP
  164745. .IP \(bu 2
  164746. \fBdepend\fP has been renamed to \fBdependencies\fP
  164747. .IP \(bu 2
  164748. \fBDisplayName\fP has been renamed to \fBdisplay_name\fP
  164749. .IP \(bu 2
  164750. \fBerror\fP has been renamed to \fBerror_control\fP
  164751. .IP \(bu 2
  164752. \fBgroup\fP has been renamed to \fBload_order_group\fP
  164753. .IP \(bu 2
  164754. \fBobj\fP has been renamed to \fBaccount_name\fP
  164755. .IP \(bu 2
  164756. \fBpassword\fP has been renamed to \fBaccount_password\fP
  164757. .IP \(bu 2
  164758. \fBstart\fP has been renamed to \fBstart_type\fP
  164759. .IP \(bu 2
  164760. \fBtype\fP has been renamed to \fBservice_type\fP
  164761. .UNINDENT
  164762. .UNINDENT
  164763. .UNINDENT
  164764. .UNINDENT
  164765. .UNINDENT
  164766. .UNINDENT
  164767. .IP \(bu 2
  164768. The \fBnacl\fP module has been changed as follows:
  164769. .INDENT 2.0
  164770. .INDENT 3.5
  164771. .INDENT 0.0
  164772. .IP \(bu 2
  164773. The following arguments have been renamed in the \fBnacl.keygen\fP, \fBnacl.enc\fP, and
  164774. \fBnacl.dec\fP:
  164775. .INDENT 2.0
  164776. .INDENT 3.5
  164777. .INDENT 0.0
  164778. .IP \(bu 2
  164779. \fBkey_file\fP has been renamed to \fBsk_file\fP
  164780. .IP \(bu 2
  164781. \fBkey\fP has been renamed to \fBsk\fP
  164782. .UNINDENT
  164783. .UNINDENT
  164784. .UNINDENT
  164785. .UNINDENT
  164786. .UNINDENT
  164787. .UNINDENT
  164788. .UNINDENT
  164789. .SS Runner Deprecations
  164790. .INDENT 0.0
  164791. .IP \(bu 2
  164792. The \fBmanage\fP runner has been changed as follows:
  164793. .INDENT 2.0
  164794. .INDENT 3.5
  164795. .INDENT 0.0
  164796. .IP \(bu 2
  164797. \fBroot_user\fP argument was removed from the \fBmanage.bootstrap\fP function. Please use \fBsalt\-ssh\fP roster
  164798. entries for the host instead.
  164799. .UNINDENT
  164800. .UNINDENT
  164801. .UNINDENT
  164802. .IP \(bu 2
  164803. The \fBnacl\fP runner has been changed as follows:
  164804. .INDENT 2.0
  164805. .INDENT 3.5
  164806. .INDENT 0.0
  164807. .IP \(bu 2
  164808. The following arguments have been renamed in the \fBnacl.keygen\fP, \fBnacl.enc\fP, and
  164809. \fBnacl.dec\fP:
  164810. .INDENT 2.0
  164811. .INDENT 3.5
  164812. .INDENT 0.0
  164813. .IP \(bu 2
  164814. \fBkey_file\fP has been renamed to \fBsk_file\fP
  164815. .IP \(bu 2
  164816. \fBkey\fP has been renamed to \fBsk\fP
  164817. .UNINDENT
  164818. .UNINDENT
  164819. .UNINDENT
  164820. .UNINDENT
  164821. .UNINDENT
  164822. .UNINDENT
  164823. .UNINDENT
  164824. .SS State Deprecations
  164825. .INDENT 0.0
  164826. .IP \(bu 2
  164827. In the \fBarchive\fP state, the
  164828. \fBtar_options\fP and \fBzip_options\fP options were removed. Please use
  164829. \fBoptions\fP instead.
  164830. .IP \(bu 2
  164831. The \fBcmd\fP state had the following changes:
  164832. .INDENT 2.0
  164833. .INDENT 3.5
  164834. .INDENT 0.0
  164835. .IP \(bu 2
  164836. The \fBuser\fP and \fBgroup\fP options were removed from the following functions
  164837. (please use \fBrunas\fP instead):
  164838. .INDENT 2.0
  164839. .INDENT 3.5
  164840. .INDENT 0.0
  164841. .IP \(bu 2
  164842. \fBcmd.run\fP
  164843. .IP \(bu 2
  164844. \fBcmd.script\fP
  164845. .IP \(bu 2
  164846. \fBcmd.wait\fP
  164847. .IP \(bu 2
  164848. \fBcmd.wait_script\fP
  164849. .UNINDENT
  164850. .UNINDENT
  164851. .UNINDENT
  164852. .UNINDENT
  164853. .UNINDENT
  164854. .UNINDENT
  164855. .IP \(bu 2
  164856. In the \fBfile\fP states, the \fBshow_diff\fP option was
  164857. removed in all states where it was previously supported. Please use
  164858. \fBshow_changes\fP instead.
  164859. .UNINDENT
  164860. .SS Grain Deprecations
  164861. .INDENT 0.0
  164862. .IP \(bu 2
  164863. For \fBsmartos\fP, some grains have been deprecated. These grains will be
  164864. removed in 3000:
  164865. .INDENT 2.0
  164866. .INDENT 3.5
  164867. .INDENT 0.0
  164868. .IP \(bu 2
  164869. The \fBhypervisor_uuid\fP grain has been replaced with
  164870. \fBmdata:sdc:server_uuid\fP
  164871. .IP \(bu 2
  164872. The \fBdatacenter\fP grain has been replaced with
  164873. \fBmdata:sdc:datacenter_name\fP
  164874. .UNINDENT
  164875. .UNINDENT
  164876. .UNINDENT
  164877. .UNINDENT
  164878. .SS Pillar Deprecations
  164879. .sp
  164880. The legacy configuration for \fBgit_pillar\fP has been removed. Please use the
  164881. new configuration for \fBgit_pillar\fP which was added in 2015.8.0, which is
  164882. documented \fBhere\fP\&.
  164883. .SS Utils Deprecations
  164884. .INDENT 0.0
  164885. .IP \(bu 2
  164886. In \fBsalt.utils.cloud\fP, the \fBfire_event\fP function now requires a
  164887. \fBsock_dir\fP argument. It was previously optional.
  164888. .UNINDENT
  164889. .SS Other Miscellaneous Deprecations
  164890. .INDENT 0.0
  164891. .IP \(bu 2
  164892. In \fBversion.py\fP, the \fBrc_info\fP function was removed. Please use
  164893. \fBpre_info\fP instead.
  164894. .IP \(bu 2
  164895. Warnings for moving away from the \fBenv\fP option were removed. \fBsaltenv\fP
  164896. should be used instead. The removal of these warnings does not have a
  164897. behavior change. Only the warning text was removed.
  164898. .UNINDENT
  164899. .SS Minion Blackout
  164900. .sp
  164901. During a blackout, minions will not execute any remote execution commands,
  164902. except for \fBsaltutil.refresh_pillar\fP\&. Previously, support was added so that
  164903. blackouts are enabled using a special pillar key, \fBminion_blackout\fP set to
  164904. \fBTrue\fP and an optional pillar key \fBminion_blackout_whitelist\fP to specify
  164905. additional functions that are permitted during blackout. This release adds
  164906. support for using this feature in the grains as well, by using special grains
  164907. keys \fBminion_blackout\fP and \fBminion_blackout_whitelist\fP\&.
  164908. .SS Sentry Log Handler
  164909. .sp
  164910. Configuring sentry raven python client via \fBproject\fP, \fBservers\fP,
  164911. \fBpublic_key and \(ga\(gasecret_key\fP is deprecated and won\(aqt work with sentry
  164912. clients > 3.0. Instead, the \fBdsn\fP config param must be used.
  164913. .SS RAET transport
  164914. .sp
  164915. We haven\(aqt been doing development on RAET for quite some time and decided that
  164916. 2018.3.0 is the time to announce the deprecation. RAET support will be removed
  164917. in 3000. Please consider to move to \fBzeromq\fP or \fBtcp\fP transport instead of
  164918. \fBraet\fP\&.
  164919. .SS Salt 2018.3.1 Release Notes
  164920. .sp
  164921. Version 2018.3.1 is a bugfix release for 2018.3.0\&.
  164922. .SS Statistics
  164923. .INDENT 0.0
  164924. .IP \(bu 2
  164925. Total Merges: \fB525\fP
  164926. .IP \(bu 2
  164927. Total Issue References: \fB74\fP
  164928. .IP \(bu 2
  164929. Total PR References: \fB255\fP
  164930. .IP \(bu 2
  164931. 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)
  164932. .UNINDENT
  164933. .sp
  164934. \fBWARNING:\fP
  164935. .INDENT 0.0
  164936. .INDENT 3.5
  164937. If you are using Jinja to dump lists or dictionaries in your SLS files,
  164938. this will now cause errors in Python 2 since Jinja does not produce
  164939. YAML\-compatible output when strings in the data structures contain unicode
  164940. types. The dictionary must be passed through a Jinja filter to produce
  164941. YAML\-compatible strings.
  164942. .sp
  164943. The below is an example of invalid SLS:
  164944. .INDENT 0.0
  164945. .INDENT 3.5
  164946. .sp
  164947. .nf
  164948. .ft C
  164949. /etc/foo.conf:
  164950. file.mangaged:
  164951. \- source: salt://foo.conf
  164952. \- template: jinja
  164953. \- defaults: {{ mydict }}
  164954. .ft P
  164955. .fi
  164956. .UNINDENT
  164957. .UNINDENT
  164958. .sp
  164959. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  164960. filters:
  164961. .INDENT 0.0
  164962. .INDENT 3.5
  164963. .sp
  164964. .nf
  164965. .ft C
  164966. /etc/foo.conf:
  164967. file.mangaged:
  164968. \- source: salt://foo.conf
  164969. \- template: jinja
  164970. \- defaults: {{ mydict | json }}
  164971. .ft P
  164972. .fi
  164973. .UNINDENT
  164974. .UNINDENT
  164975. .UNINDENT
  164976. .UNINDENT
  164977. .SS Tornado 5.0 Support for Python 2 Only
  164978. .sp
  164979. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  164980. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  164981. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  164982. versions of salt has been delayed to a later release.
  164983. .sp
  164984. For now, to use tornado 5.0, the python 2 version of salt must be used.
  164985. .SS Changes to Slack Engine pillars
  164986. .sp
  164987. When using \fBgroups_pillar_name\fP for the slack engine, the engine should be
  164988. used as part of a salt\-minion process running on the master. This will allow
  164989. the minion to have pillars assigned to it, and will still allow the engine to
  164990. create a LocalClient connection to the master ipc sockets to control
  164991. environments.
  164992. .SS Changes to Automatically Updating the Roster File
  164993. .sp
  164994. In \fB2018.3.0\fP salt\-ssh was configured to automatically update the flat roster
  164995. file if a minion was not found for salt\-ssh. This was decided to be
  164996. undesireable as a default. The \fB\-\-skip\-roster\fP flag has been removed and
  164997. replaced with \fB\-\-update\-roster\fP, which will enable salt\-ssh to add minions
  164998. to the flat roster file. This behavior can also be enabled by setting
  164999. \fBssh_update_roster: True\fP in the master config file.
  165000. .SS Changes to \fBfile.blockreplace\fP State
  165001. .sp
  165002. The \fBappend_newline\fP argument was added to this state. Additionally, to
  165003. improve idempotence, if the string represented by \fBmarker_end\fP is found in
  165004. the middle of the line, the content preceding the marker will be removed when
  165005. the block is replaced. This allows one to remove \fBappend_newline: False\fP from
  165006. the SLS and have the block properly replaced if the end of the content block is
  165007. immediately followed by the \fBmarker_end\fP (i.e. no newline before the marker).
  165008. .sp
  165009. \fBNOTE:\fP
  165010. .INDENT 0.0
  165011. .INDENT 3.5
  165012. This will require changes to your SLS if your \fBmarker_end\fP does not
  165013. include the very beginning of the content you want to keep.
  165014. .UNINDENT
  165015. .UNINDENT
  165016. .sp
  165017. See the \fBfile.blockreplace\fP state
  165018. documentation for further information.
  165019. .SS Changelog for v2018.3.0..v2018.3.1
  165020. .sp
  165021. \fIGenerated at: 2018\-06\-06 17:43:01 UTC\fP
  165022. .INDENT 0.0
  165023. .IP \(bu 2
  165024. \fBISSUE\fP \fI\%#47955\fP: (\fI\%frogunder\fP) 2018.3.1 Creating Windows machine in Amazon using salt\-cloud fails. (refs: \fI\%#47989\fP)
  165025. .IP \(bu 2
  165026. \fBPR\fP \fI\%#47998\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47989\fP to 2018.3.1
  165027. @ \fI2018\-06\-06 17:08:04 UTC\fP
  165028. .INDENT 2.0
  165029. .IP \(bu 2
  165030. \fBPR\fP \fI\%#47989\fP: (\fI\%dwoz\fP) Properly decode password from aws using m2crypto (refs: \fI\%#47998\fP)
  165031. .IP \(bu 2
  165032. 605463ca0d Merge pull request \fI\%#47998\fP from rallytime/bp\-47989
  165033. .IP \(bu 2
  165034. 1b7e9ac2d3 Lint fixes
  165035. .IP \(bu 2
  165036. 0545152ddd Properly decode password from aws using m2crypto
  165037. .UNINDENT
  165038. .IP \(bu 2
  165039. \fBPR\fP \fI\%#47965\fP: (\fI\%Ch3LL\fP) Add PR 47924 from 2018.3 branch
  165040. @ \fI2018\-06\-06 13:54:09 UTC\fP
  165041. .INDENT 2.0
  165042. .IP \(bu 2
  165043. dbc798ac68 Merge pull request \fI\%#47965\fP from Ch3LL/gitpy_mac_3.1
  165044. .IP \(bu 2
  165045. bf608abd44 Catch all exceptions in git import for salt.utils.gitfs
  165046. .UNINDENT
  165047. .IP \(bu 2
  165048. \fBPR\fP \fI\%#47973\fP: (\fI\%terminalmage\fP) salt.modules.testinframod: fix TypeError invoking types.FunctionType
  165049. @ \fI2018\-06\-06 13:53:46 UTC\fP
  165050. .INDENT 2.0
  165051. .IP \(bu 2
  165052. 864d640633 Merge pull request \fI\%#47973\fP from terminalmage/fix\-testinfra
  165053. .IP \(bu 2
  165054. 4518c89484 Lint: Remove unused six import
  165055. .IP \(bu 2
  165056. c6816b2149 salt.modules.testinframod: fix TypeError invoking types.FunctionType
  165057. .UNINDENT
  165058. .IP \(bu 2
  165059. \fBISSUE\fP \fI\%#47236\fP: (\fI\%MorphBonehunter\fP) x509.private_key_managed broken after upgrade to 2018.3.0 (refs: \fI\%#47957\fP)
  165060. .IP \(bu 2
  165061. \fBPR\fP \fI\%#47967\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47957\fP to 2018.3.1
  165062. @ \fI2018\-06\-06 13:53:28 UTC\fP
  165063. .INDENT 2.0
  165064. .IP \(bu 2
  165065. \fBPR\fP \fI\%#47957\fP: (\fI\%garethgreenaway\fP) [2018.8] Ensure x509 passphrase is a string (refs: \fI\%#47967\fP)
  165066. .IP \(bu 2
  165067. 5ddcfff420 Merge pull request \fI\%#47967\fP from rallytime/bp\-47957
  165068. .IP \(bu 2
  165069. 9a55579af1 removing unnecessary change
  165070. .IP \(bu 2
  165071. 329b2e5956 Ensuring that when a passphrase is passed in, it is returned as a string from the passphrase callback.
  165072. .UNINDENT
  165073. .IP \(bu 2
  165074. \fBPR\fP \fI\%#47902\fP: (\fI\%Ch3LL\fP) Remove In Progress for 2018.3.1 Release Notes
  165075. @ \fI2018\-05\-30 18:26:49 UTC\fP
  165076. .INDENT 2.0
  165077. .IP \(bu 2
  165078. 9c964fdbce Merge pull request \fI\%#47902\fP from Ch3LL/rn_in_progress
  165079. .IP \(bu 2
  165080. f560a151cd Remove In Progress for 2018.3.1 Release Notes
  165081. .UNINDENT
  165082. .IP \(bu 2
  165083. \fBPR\fP \fI\%#47897\fP: (\fI\%Ch3LL\fP) Add changelog to 2018.3.1 release notes
  165084. @ \fI2018\-05\-30 15:04:42 UTC\fP
  165085. .INDENT 2.0
  165086. .IP \(bu 2
  165087. ea7b4fdc08 Merge pull request \fI\%#47897\fP from Ch3LL/rn_2018
  165088. .IP \(bu 2
  165089. e27ee273a7 Add == line to changelog line for release notes
  165090. .IP \(bu 2
  165091. 61e56d275d Add changelog to 2018.3.1 release notes
  165092. .UNINDENT
  165093. .IP \(bu 2
  165094. \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)
  165095. .IP \(bu 2
  165096. \fBPR\fP \fI\%#47848\fP: (\fI\%twangboy\fP) Fix some major issues with the LGPO module
  165097. @ \fI2018\-05\-30 13:37:32 UTC\fP
  165098. .INDENT 2.0
  165099. .IP \(bu 2
  165100. f15e636d5e Merge pull request \fI\%#47848\fP from twangboy/fix_47784
  165101. .IP \(bu 2
  165102. 98facf8dc8 Remove log.debug statement in __virtual__
  165103. .IP \(bu 2
  165104. f037fa4064 Fix some major issues with the LGPO module
  165105. .UNINDENT
  165106. .IP \(bu 2
  165107. \fBPR\fP \fI\%#47881\fP: (\fI\%gtmanfred\fP) quote python_version in requirements.txt
  165108. @ \fI2018\-05\-29 21:12:05 UTC\fP
  165109. .INDENT 2.0
  165110. .IP \(bu 2
  165111. 92b8c4c08e Merge pull request \fI\%#47881\fP from gtmanfred/2018.3.1
  165112. .IP \(bu 2
  165113. 3d874b5529 quote python_version in requirements.txt
  165114. .UNINDENT
  165115. .IP \(bu 2
  165116. \fBPR\fP \fI\%#47874\fP: (\fI\%gtmanfred\fP) Tornado 5.0 is only supported on python 2 for now
  165117. @ \fI2018\-05\-29 19:45:44 UTC\fP
  165118. .INDENT 2.0
  165119. .IP \(bu 2
  165120. 705bf8172d Merge pull request \fI\%#47874\fP from gtmanfred/2018.3.1
  165121. .IP \(bu 2
  165122. 13f920415a add tornado5 note to 2018.3.1
  165123. .IP \(bu 2
  165124. aeacd2b749 allow tornado 5.0 to be installed only for python2
  165125. .UNINDENT
  165126. .IP \(bu 2
  165127. \fBPR\fP \fI\%#47820\fP: (\fI\%Ch3LL\fP) Remove output_loglevel in mac_system module
  165128. @ \fI2018\-05\-25 13:10:36 UTC\fP
  165129. .INDENT 2.0
  165130. .IP \(bu 2
  165131. 09e8c5f0cd Merge pull request \fI\%#47820\fP from Ch3LL/mac_system
  165132. .IP \(bu 2
  165133. 362414e53b Remove output_loglevel in mac_system module
  165134. .UNINDENT
  165135. .IP \(bu 2
  165136. \fBPR\fP \fI\%#47798\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47776\fP to 2018.3.1
  165137. @ \fI2018\-05\-23 15:10:43 UTC\fP
  165138. .INDENT 2.0
  165139. .IP \(bu 2
  165140. \fBPR\fP \fI\%#47776\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to failing _before_connect tests (refs: \fI\%#47798\fP)
  165141. .IP \(bu 2
  165142. 7e314c26c8 Merge pull request \fI\%#47798\fP from rallytime/bp\-47776
  165143. .IP \(bu 2
  165144. ae881547d2 Fixing unit.test_minion.MinionTestCase.test_beacons_before_connect and unit.test_minion.MinionTestCase.test_scheduler_before_connect.
  165145. .UNINDENT
  165146. .IP \(bu 2
  165147. \fBPR\fP \fI\%#47782\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47775\fP to 2018.3.1
  165148. @ \fI2018\-05\-22 20:56:37 UTC\fP
  165149. .INDENT 2.0
  165150. .IP \(bu 2
  165151. \fBPR\fP \fI\%#47775\fP: (\fI\%gtmanfred\fP) catch UnsupportedOperation with AssertionError (refs: \fI\%#47782\fP)
  165152. .IP \(bu 2
  165153. 9c610da0bc Merge pull request \fI\%#47782\fP from rallytime/bp\-47775
  165154. .IP \(bu 2
  165155. bab9c966c5 catch UnsupportedOperation with AssertionError
  165156. .UNINDENT
  165157. .IP \(bu 2
  165158. \fBPR\fP \fI\%#47770\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47769\fP to 2018.3.1
  165159. @ \fI2018\-05\-22 17:27:20 UTC\fP
  165160. .INDENT 2.0
  165161. .IP \(bu 2
  165162. \fBPR\fP \fI\%#47769\fP: (\fI\%gtmanfred\fP) skip test that breaks test suite (refs: \fI\%#47770\fP)
  165163. .IP \(bu 2
  165164. 4adf10b20b Merge pull request \fI\%#47770\fP from rallytime/bp\-47769
  165165. .IP \(bu 2
  165166. 3cfb95c7bc skip test that breaks test suite
  165167. .UNINDENT
  165168. .IP \(bu 2
  165169. \fBPR\fP \fI\%#47724\fP: (\fI\%terminalmage\fP) 2 master_tops/ext_nodes fixes
  165170. @ \fI2018\-05\-21 15:59:04 UTC\fP
  165171. .INDENT 2.0
  165172. .IP \(bu 2
  165173. bbe8e62a98 Merge pull request \fI\%#47724\fP from terminalmage/master_tops_fixes
  165174. .IP \(bu 2
  165175. 48b8c5acd1 Merge branch \(aq2018.3.1\(aq into master_tops_fixes
  165176. .IP \(bu 2
  165177. 89b3070d4c Change deprecation warning to debug logging
  165178. .IP \(bu 2
  165179. ceb6e10f87 Fix spurious "Malformed request" error
  165180. .UNINDENT
  165181. .IP \(bu 2
  165182. \fBISSUE\fP \fI\%#47484\fP: (\fI\%whytewolf\fP) Windows: pkg.latest state not updating packages. (refs: \fI\%#47702\fP)
  165183. .IP \(bu 2
  165184. \fBPR\fP \fI\%#47739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47702\fP to 2018.3.1
  165185. @ \fI2018\-05\-21 15:37:03 UTC\fP
  165186. .INDENT 2.0
  165187. .IP \(bu 2
  165188. \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)
  165189. .IP \(bu 2
  165190. 97d6fe7434 Merge pull request \fI\%#47739\fP from rallytime/bp\-47702
  165191. .IP \(bu 2
  165192. f79da64bb0 Update is_windows path to use \fIplatform\fP
  165193. .IP \(bu 2
  165194. f04b19b5b6 Ensure targeted_pkgs always contains value for non\-windows.
  165195. .IP \(bu 2
  165196. 14659f9cad Adjusted based on feed back.
  165197. .IP \(bu 2
  165198. 9f18f7cdf5 Whitespace lint issues
  165199. .IP \(bu 2
  165200. 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
  165201. .UNINDENT
  165202. .IP \(bu 2
  165203. \fBPR\fP \fI\%#47730\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47700\fP to 2018.3.1
  165204. @ \fI2018\-05\-21 15:36:16 UTC\fP
  165205. .INDENT 2.0
  165206. .IP \(bu 2
  165207. \fBPR\fP \fI\%#47700\fP: (\fI\%yannj\-fr\fP) fix roots modification time check (refs: \fI\%#47730\fP)
  165208. .IP \(bu 2
  165209. cfbe0ba73e Merge pull request \fI\%#47730\fP from rallytime/bp\-47700
  165210. .IP \(bu 2
  165211. 9bc35b88ea fix roots modification time check
  165212. .UNINDENT
  165213. .IP \(bu 2
  165214. \fBPR\fP \fI\%#47727\fP: (\fI\%Ch3LL\fP) Fix salt.utils.versions.warn_until spelling
  165215. @ \fI2018\-05\-21 13:41:00 UTC\fP
  165216. .INDENT 2.0
  165217. .IP \(bu 2
  165218. 3614d3d83a Merge pull request \fI\%#47727\fP from Ch3LL/spelling
  165219. .IP \(bu 2
  165220. 47a8de5b73 Fix salt.utils.versions.warn_until spelling
  165221. .UNINDENT
  165222. .IP \(bu 2
  165223. \fBPR\fP \fI\%#47736\fP: (\fI\%Ch3LL\fP) mac_utils test: patch __salt__[\(aqcmd.run*\(aq]
  165224. @ \fI2018\-05\-21 13:38:59 UTC\fP
  165225. .INDENT 2.0
  165226. .IP \(bu 2
  165227. bb45cdaefe Merge pull request \fI\%#47736\fP from Ch3LL/fix_util_mac_test
  165228. .IP \(bu 2
  165229. ee90c779a8 mac_utils test: patch __salt__[\(aqcmd.run*\(aq]
  165230. .UNINDENT
  165231. .IP \(bu 2
  165232. \fBPR\fP \fI\%#47641\fP: (\fI\%gtmanfred\fP) fix _create_stream and tornado 5.0
  165233. @ \fI2018\-05\-18 14:25:36 UTC\fP
  165234. .INDENT 2.0
  165235. .IP \(bu 2
  165236. 43930f8bac Merge pull request \fI\%#47641\fP from gtmanfred/2018.3.1
  165237. .IP \(bu 2
  165238. 037fd92f59 fix pylint
  165239. .IP \(bu 2
  165240. 75d42d8963 Fix last test for tornado
  165241. .IP \(bu 2
  165242. a046512287 allow using tornado 5.0
  165243. .IP \(bu 2
  165244. 05e651f038 fix _create_stream and tornado 5.0
  165245. .UNINDENT
  165246. .IP \(bu 2
  165247. \fBISSUE\fP \fI\%#47532\fP: (\fI\%edgan\fP) roster auto\-add feature in salt\-ssh\-2018.3.0 (refs: \fI\%#47541\fP)
  165248. .IP \(bu 2
  165249. \fBPR\fP \fI\%#47541\fP: (\fI\%gtmanfred\fP) switch skip\-roster to update\-roster
  165250. @ \fI2018\-05\-18 13:29:50 UTC\fP
  165251. .INDENT 2.0
  165252. .IP \(bu 2
  165253. 9f926bcd1a Merge pull request \fI\%#47541\fP from gtmanfred/2018.3
  165254. .IP \(bu 2
  165255. 8c5c780292 switch skip\-roster to update\-roster
  165256. .UNINDENT
  165257. .IP \(bu 2
  165258. \fBPR\fP \fI\%#47719\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47692\fP to 2018.3.1
  165259. @ \fI2018\-05\-18 13:22:02 UTC\fP
  165260. .INDENT 2.0
  165261. .IP \(bu 2
  165262. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic (refs: \fI\%#47719\fP)
  165263. .IP \(bu 2
  165264. a963f1b558 Merge pull request \fI\%#47719\fP from rallytime/bp\-47692
  165265. .IP \(bu 2
  165266. 1d9f247fb7 Default windows to m1.small for ec2\-classic
  165267. .UNINDENT
  165268. .IP \(bu 2
  165269. \fBPR\fP \fI\%#47706\fP: (\fI\%Ch3LL\fP) Add cmd._run_all_quiet to mac_utils and __utils__ in mac_service
  165270. @ \fI2018\-05\-18 01:11:46 UTC\fP
  165271. .INDENT 2.0
  165272. .IP \(bu 2
  165273. c9108893ab Merge pull request \fI\%#47706\fP from Ch3LL/mac_service_util
  165274. .IP \(bu 2
  165275. 3611af699f remove added space
  165276. .IP \(bu 2
  165277. 9921caa143 fix pylint
  165278. .IP \(bu 2
  165279. 317e41d3c0 use cmd._run_quiet and cmd._run_all_quiet instead of importing minion_mods in __salt__
  165280. .IP \(bu 2
  165281. a78652515a Add __salt__ to mac_utils and __utils__ in mac_service
  165282. .UNINDENT
  165283. .IP \(bu 2
  165284. \fBPR\fP \fI\%#47664\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47645\fP to 2018.3.1
  165285. @ \fI2018\-05\-15 18:25:27 UTC\fP
  165286. .INDENT 2.0
  165287. .IP \(bu 2
  165288. \fBPR\fP \fI\%#47645\fP: (\fI\%Ch3LL\fP) query the pip path for test test_issue_2087_missing_pip (refs: \fI\%#47664\fP)
  165289. .IP \(bu 2
  165290. fb3bf1ff3e Merge pull request \fI\%#47664\fP from rallytime/bp\-47645
  165291. .IP \(bu 2
  165292. 0a732d8e66 query the pip path for test test_issue_2087_missing_pip
  165293. .UNINDENT
  165294. .IP \(bu 2
  165295. \fBPR\fP \fI\%#47647\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47601\fP and \fI\%#47643\fP to 2018.3.1
  165296. @ \fI2018\-05\-15 14:07:54 UTC\fP
  165297. .INDENT 2.0
  165298. .IP \(bu 2
  165299. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file (refs: \fI\%#47647\fP)
  165300. .IP \(bu 2
  165301. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas (refs: \fI\%#47647\fP)
  165302. .IP \(bu 2
  165303. 9039fee104 Merge pull request \fI\%#47647\fP from rallytime/bp\-47601\-and\-47643\-2018.3.1
  165304. .IP \(bu 2
  165305. 7214fe17c8 Fix typo
  165306. .IP \(bu 2
  165307. 506dceed17 Remove unwanted file
  165308. .IP \(bu 2
  165309. b6a21dfda3 use ignore\-undefined\-variable
  165310. .IP \(bu 2
  165311. 2429f9fe8a Ignore pylint WindowsError
  165312. .IP \(bu 2
  165313. 2d63682fea Better doc string
  165314. .IP \(bu 2
  165315. ec2adff699 Skip tests when we can not use runas
  165316. .UNINDENT
  165317. .IP \(bu 2
  165318. \fBPR\fP \fI\%#47596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47568\fP to 2018.3.1
  165319. @ \fI2018\-05\-10 22:09:09 UTC\fP
  165320. .INDENT 2.0
  165321. .IP \(bu 2
  165322. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47596\fP)
  165323. .IP \(bu 2
  165324. 17b5265d95 Merge pull request \fI\%#47596\fP from rallytime/bp\-47568
  165325. .IP \(bu 2
  165326. ecf5dc8b9f Add exception logging on serialize/deserialize exceptions
  165327. .IP \(bu 2
  165328. 9659b19819 salt.serializers.yaml/yamlex: remove invalid multi_constructor
  165329. .UNINDENT
  165330. .IP \(bu 2
  165331. \fBPR\fP \fI\%#47595\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47569\fP to 2018.3.1
  165332. @ \fI2018\-05\-10 22:08:53 UTC\fP
  165333. .INDENT 2.0
  165334. .IP \(bu 2
  165335. \fBPR\fP \fI\%#47569\fP: (\fI\%Ch3LL\fP) Update salt.utils.path mock in virtual core test (refs: \fI\%#47595\fP)
  165336. .IP \(bu 2
  165337. c4c400f3e9 Merge pull request \fI\%#47595\fP from rallytime/bp\-47569
  165338. .IP \(bu 2
  165339. 0763f96458 update salt.utils.platform path for virt core test
  165340. .IP \(bu 2
  165341. 718252c1ef Update salt.utils.path mock in virtual core test
  165342. .UNINDENT
  165343. .IP \(bu 2
  165344. \fBPR\fP \fI\%#47599\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47570\fP to 2018.3.1
  165345. @ \fI2018\-05\-10 22:06:44 UTC\fP
  165346. .INDENT 2.0
  165347. .IP \(bu 2
  165348. \fBPR\fP \fI\%#47570\fP: (\fI\%gtmanfred\fP) Update dependency to msgpack (refs: \fI\%#47599\fP)
  165349. .IP \(bu 2
  165350. ec7de14be0 Merge pull request \fI\%#47599\fP from rallytime/bp\-47570
  165351. .IP \(bu 2
  165352. 9334c03da9 Update dependency to msgpack
  165353. .UNINDENT
  165354. .IP \(bu 2
  165355. \fBPR\fP \fI\%#47571\fP: (\fI\%rallytime\fP) [2018.3.1] Update man pages
  165356. @ \fI2018\-05\-10 16:21:57 UTC\fP
  165357. .INDENT 2.0
  165358. .IP \(bu 2
  165359. 2a10d92669 Merge pull request \fI\%#47571\fP from rallytime/man\-pages
  165360. .IP \(bu 2
  165361. ade5e9f664 [2018.3.1] Update man pages
  165362. .UNINDENT
  165363. .IP \(bu 2
  165364. \fBPR\fP \fI\%#47550\fP: (\fI\%pcn\fP) Fixes a bad deletion I did that only surfaced in 2018.3
  165365. @ \fI2018\-05\-09 13:36:33 UTC\fP
  165366. .INDENT 2.0
  165367. .IP \(bu 2
  165368. 85284caaf9 Merge pull request \fI\%#47550\fP from pcn/fix\-disable\-term\-protect\-in\-2018.3
  165369. .IP \(bu 2
  165370. d58a56877c Fixes a bad deletion I did that only surfaced in 2018.3
  165371. .UNINDENT
  165372. .IP \(bu 2
  165373. \fBISSUE\fP \fI\%#47553\fP: (\fI\%douglasjreynolds\fP) Unicode version error in lxc (refs: \fI\%#47554\fP)
  165374. .IP \(bu 2
  165375. \fBPR\fP \fI\%#47554\fP: (\fI\%douglasjreynolds\fP) Converted unicode str version to a LooseVersion; matching line 2080.
  165376. @ \fI2018\-05\-09 13:34:13 UTC\fP
  165377. .INDENT 2.0
  165378. .IP \(bu 2
  165379. f9083ff77e Merge pull request \fI\%#47554\fP from douglasjreynolds/lxc_unicode_fix
  165380. .IP \(bu 2
  165381. e6bce581c6 Converted unicode str version to _LooseVersion to match line 2080.
  165382. .UNINDENT
  165383. .IP \(bu 2
  165384. \fBPR\fP \fI\%#47518\fP: (\fI\%Ch3LL\fP) Fix 47364: ensure we are not caching zfs.is_supported
  165385. @ \fI2018\-05\-09 13:29:07 UTC\fP
  165386. .INDENT 2.0
  165387. .IP \(bu 2
  165388. fe4e79f1de Merge pull request \fI\%#47518\fP from Ch3LL/zfs_support
  165389. .IP \(bu 2
  165390. d19fef963e remove unnecessary patch in zfs.is_supported test
  165391. .IP \(bu 2
  165392. 58c4f29f96 Fix 47364: ensure we are not caching zfs.is_supported
  165393. .UNINDENT
  165394. .IP \(bu 2
  165395. \fBPR\fP \fI\%#47159\fP: (\fI\%terminalmage\fP) Fix for whitelist/blacklist checking for non\-list iterables
  165396. @ \fI2018\-05\-08 20:43:51 UTC\fP
  165397. .INDENT 2.0
  165398. .IP \(bu 2
  165399. 332e9f13a6 Merge pull request \fI\%#47159\fP from terminalmage/whitelist_blacklist\-iter\-fix
  165400. .IP \(bu 2
  165401. ca936de372 Treat empty whitelist/blacklist as no whitelist/blacklist
  165402. .IP \(bu 2
  165403. bcccaf2621 Raise a TypeError when invalid input passed to check_whitelist_blacklist
  165404. .IP \(bu 2
  165405. 2ae510ff2b Fix comment in test
  165406. .IP \(bu 2
  165407. 17398efcf7 Fix for whitelist/blacklist checking for non\-list iterables
  165408. .UNINDENT
  165409. .IP \(bu 2
  165410. \fBPR\fP \fI\%#47514\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165411. @ \fI2018\-05\-08 18:36:54 UTC\fP
  165412. .INDENT 2.0
  165413. .IP \(bu 2
  165414. 21809ddc02 Merge pull request \fI\%#47514\fP from rallytime/merge\-2018.3
  165415. .IP \(bu 2
  165416. e2616b605f Update the pip tests to use the parsing syntax generated in PR \fI\%#47196\fP
  165417. .IP \(bu 2
  165418. b13b59791f Remove double instance of adding \fI\-\-format=json\fP in pip module
  165419. .IP \(bu 2
  165420. 2ad60c7e81 Lint: remove duplicate function in helpers.py
  165421. .IP \(bu 2
  165422. 75480158b3 Lint: cur_version should just be pip_version
  165423. .IP \(bu 2
  165424. 5565d5e9b1 Update old utils paths with new utils paths
  165425. .IP \(bu 2
  165426. 786076ac03 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165427. .INDENT 2.0
  165428. .IP \(bu 2
  165429. 611ca1fc03 Merge pull request \fI\%#47476\fP from gtmanfred/2017.7
  165430. .INDENT 2.0
  165431. .IP \(bu 2
  165432. 1f91a85587 specify cache dir for pip install
  165433. .IP \(bu 2
  165434. 99e150e09c check for kitchen\-vagrant gem before loading windows tests
  165435. .UNINDENT
  165436. .IP \(bu 2
  165437. 7c3f2c56da Merge pull request \fI\%#47412\fP from twangboy/fix_47125
  165438. .INDENT 2.0
  165439. .IP \(bu 2
  165440. c9bab0b8e3 Merge branch \(aq2017.7\(aq into fix_47125
  165441. .IP \(bu 2
  165442. 2600e404d5 Fix overly long line
  165443. .IP \(bu 2
  165444. 5c8db05769 Fix issue where the cwd was being removed
  165445. .UNINDENT
  165446. .IP \(bu 2
  165447. 4846e957c4 Merge pull request \fI\%#47467\fP from twangboy/cleanup_settings
  165448. .INDENT 2.0
  165449. .IP \(bu 2
  165450. 9d498293b1 Remove unused settings, update NSIS
  165451. .UNINDENT
  165452. .IP \(bu 2
  165453. da9871d36b Merge pull request \fI\%#47196\fP from twangboy/fix_47024
  165454. .INDENT 2.0
  165455. .IP \(bu 2
  165456. 14ee5537b9 Add @with_tempdir helper
  165457. .IP \(bu 2
  165458. 6c3b5fa6fa Fix typo
  165459. .IP \(bu 2
  165460. f031710af2 Merge branch \(aq2017.7\(aq into fix_47024
  165461. .IP \(bu 2
  165462. 7c46d9d0d4 Fix integration.modules.test_pip
  165463. .IP \(bu 2
  165464. 22ac81df63 Fix integration.modules.test_pip
  165465. .IP \(bu 2
  165466. 57d98224d4 Merge pull request #9 from terminalmage/twangboy/fix_47024
  165467. .INDENT 2.0
  165468. .IP \(bu 2
  165469. 37a13d8004 Update pip unit tests to reflect changes
  165470. .IP \(bu 2
  165471. 7f86779be0 Lint fix
  165472. .UNINDENT
  165473. .IP \(bu 2
  165474. c48d8f4f61 DRY and other fixes in pip module
  165475. .IP \(bu 2
  165476. b1117896a0 Change from global variable to __context__\(ga\(ga
  165477. .IP \(bu 2
  165478. 3e6e524eca Fix some tests\(ga\(ga
  165479. .IP \(bu 2
  165480. c94f0f20e4 Fix lint error
  165481. .IP \(bu 2
  165482. fd47b21530 Fix merge conflict
  165483. .UNINDENT
  165484. .IP \(bu 2
  165485. e8c4524bae Merge pull request \fI\%#47455\fP from Ch3LL/unreleased_rn
  165486. .INDENT 2.0
  165487. .IP \(bu 2
  165488. b6d0cc2ab7 Add In Progress Warning for 2017.7.6 Release Notes
  165489. .UNINDENT
  165490. .IP \(bu 2
  165491. 2c7a4b6179 Merge pull request \fI\%#47459\fP from gtmanfred/2017.7
  165492. .INDENT 2.0
  165493. .IP \(bu 2
  165494. d228e72477 update ubuntu\-rolling to 18.04
  165495. .UNINDENT
  165496. .IP \(bu 2
  165497. 64a64c0ed7 Merge pull request \fI\%#47462\fP from terminalmage/docs
  165498. .INDENT 2.0
  165499. .IP \(bu 2
  165500. 6d7803ece0 Fix docs build on Sphinx 1.7+
  165501. .UNINDENT
  165502. .IP \(bu 2
  165503. 6cd0d31c03 Merge pull request \fI\%#47438\fP from lomeroe/double_admx_test
  165504. .INDENT 2.0
  165505. .IP \(bu 2
  165506. 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
  165507. .UNINDENT
  165508. .IP \(bu 2
  165509. ed69821d19 Merge pull request \fI\%#47433\fP from s0undt3ch/2017.7
  165510. .INDENT 2.0
  165511. .IP \(bu 2
  165512. 5abadf25d6 Add missing requirements files not commited in \fI\%#47106\fP
  165513. .UNINDENT
  165514. .UNINDENT
  165515. .UNINDENT
  165516. .IP \(bu 2
  165517. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  165518. .IP \(bu 2
  165519. \fBPR\fP \fI\%#47516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47505\fP to 2018.3
  165520. @ \fI2018\-05\-08 13:32:33 UTC\fP
  165521. .INDENT 2.0
  165522. .IP \(bu 2
  165523. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors (refs: \fI\%#47516\fP)
  165524. .IP \(bu 2
  165525. 9559ac7679 Merge pull request \fI\%#47516\fP from rallytime/bp\-47505
  165526. .IP \(bu 2
  165527. 7c60e4071e Raise proper invocation errors
  165528. .UNINDENT
  165529. .IP \(bu 2
  165530. \fBISSUE\fP \fI\%#47502\fP: (\fI\%psagers\fP) service.enable (and .disable) destroys /etc/rc.conf on FreeBSD (refs: \fI\%#47503\fP)
  165531. .IP \(bu 2
  165532. \fBPR\fP \fI\%#47515\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47503\fP to 2018.3
  165533. @ \fI2018\-05\-08 13:32:03 UTC\fP
  165534. .INDENT 2.0
  165535. .IP \(bu 2
  165536. \fBPR\fP \fI\%#47503\fP: (\fI\%psagers\fP) Fix \fI\%#47502\fP: Remove an extraneous (accidentally introduced?) call to rstrip() (refs: \fI\%#47515\fP)
  165537. .IP \(bu 2
  165538. bf79acfbc8 Merge pull request \fI\%#47515\fP from rallytime/bp\-47503
  165539. .IP \(bu 2
  165540. 821dbb88a0 Fix \fI\%#47502\fP: Remove an extraneous (accidentally introduced?) call to rstrip.
  165541. .UNINDENT
  165542. .IP \(bu 2
  165543. \fBISSUE\fP \fI\%#47511\fP: (\fI\%joesusecom\fP) sshconfig salt\-ssh roster is missing in the documentation (refs: \fI\%#47531\fP)
  165544. .IP \(bu 2
  165545. \fBPR\fP \fI\%#47531\fP: (\fI\%gtmanfred\fP) add ssh config doc for rosters
  165546. @ \fI2018\-05\-07 22:26:30 UTC\fP
  165547. .INDENT 2.0
  165548. .IP \(bu 2
  165549. 779b3ed056 Merge pull request \fI\%#47531\fP from gtmanfred/2018.3
  165550. .IP \(bu 2
  165551. 92ded7162c add ssh config doc for rosters
  165552. .UNINDENT
  165553. .IP \(bu 2
  165554. \fBPR\fP \fI\%#47520\fP: (\fI\%rallytime\fP) Cleanup weird spaces
  165555. @ \fI2018\-05\-07 19:50:58 UTC\fP
  165556. .INDENT 2.0
  165557. .IP \(bu 2
  165558. 95b2f9db30 Merge pull request \fI\%#47520\fP from rallytime/cleanup\-spaces
  165559. .IP \(bu 2
  165560. e9cb080a00 Cleanup weird spaces
  165561. .UNINDENT
  165562. .IP \(bu 2
  165563. \fBPR\fP \fI\%#47495\fP: (\fI\%dwoz\fP) Fix crufty nssm.exe reference
  165564. @ \fI2018\-05\-07 19:12:49 UTC\fP
  165565. .INDENT 2.0
  165566. .IP \(bu 2
  165567. 05fc52f124 Merge pull request \fI\%#47495\fP from dwoz/uninstall_wart
  165568. .IP \(bu 2
  165569. caa36c9064 Merge branch \(aq2018.3\(aq into uninstall_wart
  165570. .UNINDENT
  165571. .IP \(bu 2
  165572. \fBISSUE\fP \fI\%#47322\fP: (\fI\%masau\fP) lxc clone not working (refs: \fI\%#47494\fP)
  165573. .IP \(bu 2
  165574. \fBPR\fP \fI\%#47494\fP: (\fI\%ejparker12\fP) Fixed lxc.clone unhandled exception in salt/modules/lxc.py
  165575. @ \fI2018\-05\-07 19:03:58 UTC\fP
  165576. .INDENT 2.0
  165577. .IP \(bu 2
  165578. 3cc7d3ae7c Merge pull request \fI\%#47494\fP from ejparker12/fix\-lxc\-clone
  165579. .IP \(bu 2
  165580. e0e2c9782d Fixed lxc.clone unhandled exception in salt/modules/lxc.py
  165581. .UNINDENT
  165582. .IP \(bu 2
  165583. \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)
  165584. .IP \(bu 2
  165585. \fBPR\fP \fI\%#47497\fP: (\fI\%mateiw\fP) Fix salt\-ssh \-\-extra\-filerefs to include files even if no refs in states to apply
  165586. @ \fI2018\-05\-07 19:02:50 UTC\fP
  165587. .INDENT 2.0
  165588. .IP \(bu 2
  165589. adde83f639 Merge pull request \fI\%#47497\fP from mateiw/2018.3\-fix\-ssh\-extra\-files\-refs\-issue\-47496
  165590. .IP \(bu 2
  165591. d67239aae7 \-\-extra\-filerefs include files even if no refs in states to apply
  165592. .UNINDENT
  165593. .IP \(bu 2
  165594. \fBISSUE\fP \fI\%#47404\fP: (\fI\%shengis\fP) Localized version of yum breaks pkg.install (refs: \fI\%#47441\fP)
  165595. .IP \(bu 2
  165596. \fBPR\fP \fI\%#47441\fP: (\fI\%shengis\fP) Fix _run to reset LANGUAGE env variable
  165597. @ \fI2018\-05\-07 18:29:25 UTC\fP
  165598. .INDENT 2.0
  165599. .IP \(bu 2
  165600. 34b1b1ee53 Merge pull request \fI\%#47441\fP from shengis/fix\-run\-env\-reset
  165601. .IP \(bu 2
  165602. 62fc16b721 Merge branch \(aq2018.3\(aq into fix\-run\-env\-reset
  165603. .IP \(bu 2
  165604. 3b02b0bdc1 Merge branch \(aq2018.3\(aq into fix\-run\-env\-reset
  165605. .IP \(bu 2
  165606. ee2ab38c8c Fix _run to reset LANGUAGE env variable
  165607. .UNINDENT
  165608. .IP \(bu 2
  165609. \fBISSUE\fP \fI\%#47479\fP: (\fI\%whytewolf\fP) win_task.info on py3 throwing error, but works in py2 (refs: \fI\%#47507\fP)
  165610. .IP \(bu 2
  165611. \fBPR\fP \fI\%#47507\fP: (\fI\%gtmanfred\fP) fix win_task for py3
  165612. @ \fI2018\-05\-07 17:41:21 UTC\fP
  165613. .INDENT 2.0
  165614. .IP \(bu 2
  165615. 17cfd4f7cf Merge pull request \fI\%#47507\fP from gtmanfred/2018.3
  165616. .IP \(bu 2
  165617. 19db39f402 fix win_task for py3
  165618. .UNINDENT
  165619. .IP \(bu 2
  165620. \fBPR\fP \fI\%#47472\fP: (\fI\%terminalmage\fP) salt.utils.hashutils: Fix UnicodeEncodeError in several funcs
  165621. @ \fI2018\-05\-07 13:31:07 UTC\fP
  165622. .INDENT 2.0
  165623. .IP \(bu 2
  165624. a4c2df8fb2 Merge pull request \fI\%#47472\fP from terminalmage/hashutils
  165625. .IP \(bu 2
  165626. 7266c9984d salt.utils.hashutils: Fix UnicodeEncodeError in several funcs
  165627. .UNINDENT
  165628. .IP \(bu 2
  165629. \fBPR\fP \fI\%#47485\fP: (\fI\%gtmanfred\fP) add openstack modules to doc index.rst
  165630. @ \fI2018\-05\-07 13:11:42 UTC\fP
  165631. .INDENT 2.0
  165632. .IP \(bu 2
  165633. 8b0a370189 Merge pull request \fI\%#47485\fP from gtmanfred/2018.3
  165634. .IP \(bu 2
  165635. c86163d79f add openstack modules to doc index.rst
  165636. .INDENT 2.0
  165637. .INDENT 3.5
  165638. .INDENT 0.0
  165639. .IP \(bu 2
  165640. 3557fc5fa6 Fix crufty nssm.exe reference
  165641. .UNINDENT
  165642. .UNINDENT
  165643. .UNINDENT
  165644. .UNINDENT
  165645. .IP \(bu 2
  165646. \fBPR\fP \fI\%#47482\fP: (\fI\%gtmanfred\fP) add all autodoc for new salt openstack modules
  165647. @ \fI2018\-05\-04 21:03:38 UTC\fP
  165648. .INDENT 2.0
  165649. .IP \(bu 2
  165650. 8df37f734a Merge pull request \fI\%#47482\fP from gtmanfred/2018.3
  165651. .IP \(bu 2
  165652. 1f65d5cb73 add all autodoc for new salt openstack modules
  165653. .UNINDENT
  165654. .IP \(bu 2
  165655. \fBPR\fP \fI\%#47447\fP: (\fI\%dwoz\fP) Fix failing test due to windows console encoding
  165656. @ \fI2018\-05\-04 16:41:29 UTC\fP
  165657. .INDENT 2.0
  165658. .IP \(bu 2
  165659. d20ca15c5d Merge pull request \fI\%#47447\fP from dwoz/strv
  165660. .IP \(bu 2
  165661. 8c01773833 Use the same non decodable bytes for all tests
  165662. .IP \(bu 2
  165663. 983881a2a1 Add bytes that will not decode using cp1252
  165664. .UNINDENT
  165665. .IP \(bu 2
  165666. \fBPR\fP \fI\%#47466\fP: (\fI\%dwoz\fP) bytes file that decodes the same utf\-8 and cp1252
  165667. @ \fI2018\-05\-04 15:54:24 UTC\fP
  165668. .INDENT 2.0
  165669. .IP \(bu 2
  165670. 8c5b30b541 Merge pull request \fI\%#47466\fP from dwoz/randbytes
  165671. .IP \(bu 2
  165672. fd9bc06aab bytes file that decodes the same utf\-8 and cp1252
  165673. .UNINDENT
  165674. .IP \(bu 2
  165675. \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)
  165676. .IP \(bu 2
  165677. \fBPR\fP \fI\%#47465\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47354\fP to 2018.3
  165678. @ \fI2018\-05\-04 13:06:04 UTC\fP
  165679. .INDENT 2.0
  165680. .IP \(bu 2
  165681. \fBPR\fP \fI\%#47354\fP: (\fI\%folti\fP) fix forward port of \fI\%#46751\fP (refs: \fI\%#47465\fP)
  165682. .IP \(bu 2
  165683. \fBPR\fP \fI\%#46751\fP: (\fI\%folti\fP) top file merging strategy \(aqsame\(aq works again (refs: \fI\%#47354\fP)
  165684. .IP \(bu 2
  165685. 3658604c43 Merge pull request \fI\%#47465\fP from rallytime/bp\-47354
  165686. .IP \(bu 2
  165687. 3df6fa7990 fix forward port of \fI\%#46751\fP
  165688. .UNINDENT
  165689. .IP \(bu 2
  165690. \fBPR\fP \fI\%#47435\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165691. @ \fI2018\-05\-04 13:05:32 UTC\fP
  165692. .INDENT 2.0
  165693. .IP \(bu 2
  165694. fa293f8fac Merge pull request \fI\%#47435\fP from rallytime/merge\-2018.3
  165695. .IP \(bu 2
  165696. be0731da5f Add skipIfs back in for rest_tornado tests
  165697. .IP \(bu 2
  165698. fd98ee3dc1 Lint: Add missing blank line
  165699. .IP \(bu 2
  165700. 561718b20b Update old is_windows utils path to new utils path
  165701. .IP \(bu 2
  165702. a94cdf8a0d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165703. .INDENT 2.0
  165704. .IP \(bu 2
  165705. 7ae3497b0c Merge pull request \fI\%#47429\fP from gtmanfred/2017.7
  165706. .INDENT 2.0
  165707. .IP \(bu 2
  165708. 8ae32033cc server_list_min should use state, not status
  165709. .UNINDENT
  165710. .IP \(bu 2
  165711. 2f5fc4ecc5 Merge pull request \fI\%#47399\fP from isbm/isbm\-zeromq17\-deprecationwarning\-2017.7.2\-v2
  165712. .INDENT 2.0
  165713. .IP \(bu 2
  165714. a36e49fd27 fix pylint
  165715. .IP \(bu 2
  165716. 98b5629b36 Fix imports
  165717. .IP \(bu 2
  165718. d94c0f0152 Remove unnecessary variable
  165719. .IP \(bu 2
  165720. 8e377b5653 Lintfix: E0203 and attribute access
  165721. .IP \(bu 2
  165722. 2aab70b1b8 Install ZMQ handler if <15 version
  165723. .IP \(bu 2
  165724. 296c589f4b Use ZMQ switch utility in the integration tests
  165725. .IP \(bu 2
  165726. ab5fa34d7c Use ZMQ_VERSION_INFO constant everywhere
  165727. .IP \(bu 2
  165728. 43b5558b82 Add trace logging on ZMQ sockets communication
  165729. .IP \(bu 2
  165730. 164204a9fe Remove duplicate code for ZMQ monitor handling
  165731. .IP \(bu 2
  165732. 834b1e4ff0 Remove obsolete ZMQIOLoop direct instance
  165733. .IP \(bu 2
  165734. 1c90cbdb3c Remove an empty line
  165735. .IP \(bu 2
  165736. ef2e0acd66 Add logging on ZMQ socket exception
  165737. .IP \(bu 2
  165738. 38ceed371d Lintfix: ident
  165739. .IP \(bu 2
  165740. 1ece6a5f52 Lintfix: line too long
  165741. .IP \(bu 2
  165742. 4e650c0b44 Remove code duplicate by reusing utilities functions
  165743. .IP \(bu 2
  165744. 57da54b676 Fix imports
  165745. .IP \(bu 2
  165746. 948368e9a1 Add libzmq version info builder
  165747. .IP \(bu 2
  165748. 0b4a17b859 Update log exception message
  165749. .IP \(bu 2
  165750. 116e1809fc Put a message alongside the exception to the logs
  165751. .IP \(bu 2
  165752. 4bc43124b7 Remove unnecessary ZMQ import and check for its presence
  165753. .IP \(bu 2
  165754. 05f4d40269 Use utility for ZMQ import handling in SSH client
  165755. .IP \(bu 2
  165756. 457ef7d9a5 Use utility for ZMQ import handling in flo/zero
  165757. .IP \(bu 2
  165758. 08dee6f5bd Use utility for ZMQ import handling
  165759. .IP \(bu 2
  165760. e2a353cfb0 Remove unnecessary ZMQ extra\-check for cache utils
  165761. .IP \(bu 2
  165762. c8f2cc271d Remove unnecessary ZMQ extra\-check for master utils
  165763. .IP \(bu 2
  165764. 3940667bb9 Remove old ZMQ import handling
  165765. .IP \(bu 2
  165766. f34a53e029 Use ZMQ utility for version check
  165767. .IP \(bu 2
  165768. cbb26dcb28 Use ZMQ installer for master
  165769. .IP \(bu 2
  165770. 453e83210a Add ZMQ version build
  165771. .IP \(bu 2
  165772. af9601e21d Use ZMQ importer utility in async
  165773. .IP \(bu 2
  165774. d50b2b2023 Incorporate tornado\-5 fixes
  165775. .IP \(bu 2
  165776. 1fd9af0655 Add ZMQ backward\-compatibility tornado installer for older versions
  165777. .IP \(bu 2
  165778. ad4b40415c Add one place for handling various ZMQ versions and IOLoop classes
  165779. .UNINDENT
  165780. .IP \(bu 2
  165781. b14e974b5f Merge pull request \fI\%#47343\fP from Ch3LL/win_srv_test
  165782. .INDENT 2.0
  165783. .IP \(bu 2
  165784. 2173b6f549 ensure we are enabling/disabling before test
  165785. .IP \(bu 2
  165786. d58be06751 Add additionatl service module integration tests and enable for windows
  165787. .UNINDENT
  165788. .IP \(bu 2
  165789. b0f3fb577f Merge pull request \fI\%#47375\fP from terminalmage/issue47310
  165790. .INDENT 2.0
  165791. .IP \(bu 2
  165792. fa2bea52bb Remove extra blank line to appease linter
  165793. .IP \(bu 2
  165794. f8ab2be81c Add debug logging if we fail to detect virtual packages
  165795. .IP \(bu 2
  165796. 67c4fc56ac Warn on use of virtual packages in pkg.installed state
  165797. .UNINDENT
  165798. .IP \(bu 2
  165799. 56235032f4 Merge pull request \fI\%#47415\fP from kstreee/fix\-local\-client\-tgt\-bug
  165800. .INDENT 2.0
  165801. .IP \(bu 2
  165802. 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\&.
  165803. .IP \(bu 2
  165804. 4627bad1fd Realizes \(aqtgt\(aq field into actual minions using ckminions to subscribe results of the minions before publishing a payload.
  165805. .UNINDENT
  165806. .IP \(bu 2
  165807. d65ceaee03 Merge pull request \fI\%#47286\fP from baniobloom/vpc_peering_connection_name_fix
  165808. .INDENT 2.0
  165809. .IP \(bu 2
  165810. a968965087 Merge branch \(aq2017.7\(aq into vpc_peering_connection_name_fix
  165811. .UNINDENT
  165812. .IP \(bu 2
  165813. 8a5d4437bb Merge pull request \fI\%#47270\fP from meaksh/2017.7\-fix\-retcode\-on\-schedule\-utils
  165814. .INDENT 2.0
  165815. .IP \(bu 2
  165816. d299cf3385 Merge branch \(aq2017.7\(aq into 2017.7\-fix\-retcode\-on\-schedule\-utils
  165817. .IP \(bu 2
  165818. b6da600fff Initialize __context__ retcode for functions handled via schedule util module
  165819. .UNINDENT
  165820. .IP \(bu 2
  165821. 5b51075384 Merge pull request \fI\%#47371\fP from rallytime/fix\-47264
  165822. .INDENT 2.0
  165823. .IP \(bu 2
  165824. a43485b49c Fix "of pass" typo in grains.delval docs: change to "or pass"
  165825. .UNINDENT
  165826. .IP \(bu 2
  165827. a86e53be66 Merge pull request \fI\%#47389\fP from dwoz/moregittestfix
  165828. .INDENT 2.0
  165829. .IP \(bu 2
  165830. 67745c1362 Older GitPython versions will not have close
  165831. .UNINDENT
  165832. .IP \(bu 2
  165833. a5367eaf63 Merge pull request \fI\%#47388\fP from dwoz/test_pip_fix
  165834. .INDENT 2.0
  165835. .IP \(bu 2
  165836. eb26321e8b Fix missing import
  165837. .UNINDENT
  165838. .IP \(bu 2
  165839. 9b59b991c2 Merge pull request \fI\%#47380\fP from gtmanfred/2017.7
  165840. .INDENT 2.0
  165841. .IP \(bu 2
  165842. 93d1445ec1 add io_loop handling to runtests engine
  165843. .UNINDENT
  165844. .IP \(bu 2
  165845. 37822c0cbb Merge pull request \fI\%#47384\fP from dwoz/test_pip_fix
  165846. .INDENT 2.0
  165847. .IP \(bu 2
  165848. a37a9da1fb Fix py2 version of pip test
  165849. .UNINDENT
  165850. .IP \(bu 2
  165851. eefd96732e Merge pull request \fI\%#47382\fP from dwoz/gitfs_tests
  165852. .INDENT 2.0
  165853. .IP \(bu 2
  165854. 1570708fac Close the repo and fix multiple tests
  165855. .UNINDENT
  165856. .IP \(bu 2
  165857. 57c75ff660 Merge pull request \fI\%#47369\fP from terminalmage/ldap_pillar
  165858. .INDENT 2.0
  165859. .IP \(bu 2
  165860. 085883ae2d Return an empty dict if no search_order in ldap ext_pillar config file
  165861. .UNINDENT
  165862. .IP \(bu 2
  165863. bcc66dd9bf Merge pull request \fI\%#47363\fP from DSRCorporation/bugs/replace_exc_info_with_exception
  165864. .INDENT 2.0
  165865. .IP \(bu 2
  165866. 3f7b93a23c Tornado5.0: Future.exc_info is dropped
  165867. .UNINDENT
  165868. .IP \(bu 2
  165869. bcef34f7e1 Merge pull request \fI\%#47334\fP from terminalmage/ldap_pillar
  165870. .INDENT 2.0
  165871. .IP \(bu 2
  165872. 0175a8687c pillar_ldap: Fix cryptic errors when config file fails to load
  165873. .IP \(bu 2
  165874. 65c3ba7ff1 Remove useless documentation
  165875. .IP \(bu 2
  165876. 5d67cb27de Remove unncessary commented line
  165877. .INDENT 2.0
  165878. .INDENT 3.5
  165879. .INDENT 0.0
  165880. .IP \(bu 2
  165881. 8de3d41adb fixed vpc_peering_connection_name option
  165882. .UNINDENT
  165883. .UNINDENT
  165884. .UNINDENT
  165885. .UNINDENT
  165886. .UNINDENT
  165887. .UNINDENT
  165888. .IP \(bu 2
  165889. \fBPR\fP \fI\%#47464\fP: (\fI\%dwoz\fP) Skip tests not applicable to windows
  165890. @ \fI2018\-05\-04 13:04:38 UTC\fP
  165891. .INDENT 2.0
  165892. .IP \(bu 2
  165893. 51d21afd4f Merge pull request \fI\%#47464\fP from dwoz/skiP_syslog_tests
  165894. .IP \(bu 2
  165895. ca9393b7fb Skip tests not applicable to windows
  165896. .UNINDENT
  165897. .IP \(bu 2
  165898. \fBPR\fP \fI\%#47456\fP: (\fI\%dwoz\fP) Sysname returns text type
  165899. @ \fI2018\-05\-04 02:57:50 UTC\fP
  165900. .INDENT 2.0
  165901. .IP \(bu 2
  165902. 3219430dcc Merge pull request \fI\%#47456\fP from dwoz/sysname
  165903. .IP \(bu 2
  165904. 559ee1961f Sysname returns text type
  165905. .UNINDENT
  165906. .IP \(bu 2
  165907. \fBPR\fP \fI\%#47458\fP: (\fI\%Ch3LL\fP) Add In Progress Warning for 2018.3.1 Release Notes
  165908. @ \fI2018\-05\-03 20:40:46 UTC\fP
  165909. .INDENT 2.0
  165910. .IP \(bu 2
  165911. f3918514a7 Merge pull request \fI\%#47458\fP from Ch3LL/unreleased_rn_2018
  165912. .IP \(bu 2
  165913. 6a261e5e3a Add In Progress Warning for 2018.3.1 Release Notes
  165914. .UNINDENT
  165915. .IP \(bu 2
  165916. \fBPR\fP \fI\%#47448\fP: (\fI\%dwoz\fP) Fix missing import in test suite
  165917. @ \fI2018\-05\-03 14:30:23 UTC\fP
  165918. .INDENT 2.0
  165919. .IP \(bu 2
  165920. 9fbdcbe994 Merge pull request \fI\%#47448\fP from dwoz/transport_import
  165921. .IP \(bu 2
  165922. 7e04eb82e1 Fix missing import in test suite
  165923. .UNINDENT
  165924. .IP \(bu 2
  165925. \fBISSUE\fP \fI\%#47260\fP: (\fI\%mew1033\fP) disable_saltenv_mapping not working as expected (refs: \fI\%#47410\fP)
  165926. .IP \(bu 2
  165927. \fBPR\fP \fI\%#47410\fP: (\fI\%terminalmage\fP) gitfs: Fix identification of base env when saltenv mapping is disabled
  165928. @ \fI2018\-05\-03 14:12:27 UTC\fP
  165929. .INDENT 2.0
  165930. .IP \(bu 2
  165931. 157a32af7f Merge pull request \fI\%#47410\fP from terminalmage/issue47260
  165932. .IP \(bu 2
  165933. 3ab332ad0e Update tests to reflect bugfix
  165934. .IP \(bu 2
  165935. 7b8127f336 gitfs: Fix identification of base env when saltenv mapping is disabled
  165936. .UNINDENT
  165937. .IP \(bu 2
  165938. \fBPR\fP \fI\%#47413\fP: (\fI\%dmurphy18\fP) Repobuild improvements for Ubuntu 18.04 lack of gpg2 and better error checking
  165939. @ \fI2018\-05\-02 16:21:31 UTC\fP
  165940. .INDENT 2.0
  165941. .IP \(bu 2
  165942. 091e4cf9a6 Merge pull request \fI\%#47413\fP from saltstack/repobuild_improv
  165943. .IP \(bu 2
  165944. c064032110 Removed extra spaces for pylint
  165945. .IP \(bu 2
  165946. 20c50b3331 Minor cleanup due to review comments
  165947. .IP \(bu 2
  165948. c143b359e9 Update for Ubuntu 18.04 lack of gpg2 and enhanced error checking
  165949. .UNINDENT
  165950. .IP \(bu 2
  165951. \fBPR\fP \fI\%#47216\fP: (\fI\%twangboy\fP) Reg docs
  165952. @ \fI2018\-05\-02 13:33:27 UTC\fP
  165953. .INDENT 2.0
  165954. .IP \(bu 2
  165955. 5e5774fd37 Merge pull request \fI\%#47216\fP from twangboy/reg_docs
  165956. .IP \(bu 2
  165957. 0beeb58b16 Fix lint, add bytes
  165958. .IP \(bu 2
  165959. bad441f8dc Fix some lint\(ga
  165960. .IP \(bu 2
  165961. af5139c2ff Add additional examples
  165962. .IP \(bu 2
  165963. 24df6ec1b7 Additional docs formatting
  165964. .IP \(bu 2
  165965. ff46b27a60 Update reg docs, fix formatting issues
  165966. .UNINDENT
  165967. .IP \(bu 2
  165968. \fBPR\fP \fI\%#47417\fP: (\fI\%gtmanfred\fP) revert instantiating a Caller Client in the engine
  165969. @ \fI2018\-05\-01 18:58:06 UTC\fP
  165970. .INDENT 2.0
  165971. .IP \(bu 2
  165972. 63baf4c4f8 Merge pull request \fI\%#47417\fP from gtmanfred/slack
  165973. .IP \(bu 2
  165974. 5c8ea7f506 Update slack.py
  165975. .IP \(bu 2
  165976. ee8a5eeb10 revert instantiating a Caller Client in the engine
  165977. .UNINDENT
  165978. .IP \(bu 2
  165979. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP, \fI\%#47106\fP, \fI\%#47433\fP)
  165980. .IP \(bu 2
  165981. \fBPR\fP \fI\%#47368\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165982. @ \fI2018\-05\-01 18:56:20 UTC\fP
  165983. .INDENT 2.0
  165984. .IP \(bu 2
  165985. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47374\fP, \fI\%#47368\fP, \fI\%#47433\fP)
  165986. .IP \(bu 2
  165987. \fBPR\fP \fI\%#46002\fP: (\fI\%isbm\fP) Pyzmq 17.0.0 proper handling (refs: \fI\%#47374\fP, \fI\%#47368\fP)
  165988. .IP \(bu 2
  165989. 0bdfaa5ffe Merge pull request \fI\%#47368\fP from rallytime/merge\-2018.3
  165990. .IP \(bu 2
  165991. 46806e595b Update test assertion comment for pip pkgs
  165992. .IP \(bu 2
  165993. d9d24de49e Lint: Add missing import
  165994. .IP \(bu 2
  165995. c7b73d132e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165996. .INDENT 2.0
  165997. .IP \(bu 2
  165998. 31db8ca7ad Merge pull request \fI\%#47347\fP from dwoz/test_mysql_fix_again
  165999. .INDENT 2.0
  166000. .IP \(bu 2
  166001. add78fb618 Fix linter warnings
  166002. .IP \(bu 2
  166003. 2644cc7553 Fix linter nits
  166004. .IP \(bu 2
  166005. 799c601184 Proper fix for mysql tests
  166006. .UNINDENT
  166007. .UNINDENT
  166008. .IP \(bu 2
  166009. fefc0cc3ca Update old utils paths to use new utils paths
  166010. .IP \(bu 2
  166011. 13e8124031 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166012. .INDENT 2.0
  166013. .IP \(bu 2
  166014. e573236848 Merge pull request \fI\%#47359\fP from gtmanfred/2017.7
  166015. .INDENT 2.0
  166016. .IP \(bu 2
  166017. 6214ed8133 add mention of the formulas channel to the formulas docs
  166018. .UNINDENT
  166019. .IP \(bu 2
  166020. 629503b2a8 Merge pull request \fI\%#47317\fP from dwoz/threadshutdown
  166021. .INDENT 2.0
  166022. .IP \(bu 2
  166023. 6db2a0e4d3 Log exceptions at exception level
  166024. .IP \(bu 2
  166025. d4ae787595 Do not join a thread that is stopped
  166026. .UNINDENT
  166027. .IP \(bu 2
  166028. aacd5cefe3 Merge pull request \fI\%#47304\fP from cachedout/test_cli_timeout_arg
  166029. .INDENT 2.0
  166030. .IP \(bu 2
  166031. 85025af83c Pass timeout to salt CLI for tests
  166032. .UNINDENT
  166033. .IP \(bu 2
  166034. 55534fb659 Merge pull request \fI\%#47311\fP from Ch3LL/firewall_windows
  166035. .INDENT 2.0
  166036. .IP \(bu 2
  166037. 4e16c18c16 Add firewall module windows tests to whitelist
  166038. .IP \(bu 2
  166039. 4b2fc4ec66 Add windows firewall execution modules integration tests
  166040. .UNINDENT
  166041. .IP \(bu 2
  166042. 1667375a80 Merge pull request \fI\%#47348\fP from dwoz/no_symlinks
  166043. .INDENT 2.0
  166044. .IP \(bu 2
  166045. 94a70e847a Ignore gitfs tests when symlinks not enabled
  166046. .UNINDENT
  166047. .IP \(bu 2
  166048. dac04261b5 Merge pull request \fI\%#47342\fP from dwoz/test_mysql_fix
  166049. .INDENT 2.0
  166050. .IP \(bu 2
  166051. 7496f4c5a8 Fix mysql test cases
  166052. .UNINDENT
  166053. .IP \(bu 2
  166054. 34e78ef564 Merge pull request \fI\%#47341\fP from dwoz/inet_pton_fix
  166055. .INDENT 2.0
  166056. .IP \(bu 2
  166057. 85451f48d4 Fix python 3 support for inet_pton function
  166058. .UNINDENT
  166059. .IP \(bu 2
  166060. e4779f3246 Merge pull request \fI\%#47339\fP from dwoz/ssh_key_test_fix
  166061. .INDENT 2.0
  166062. .IP \(bu 2
  166063. e37a93a1ca Remove redundent close call
  166064. .IP \(bu 2
  166065. b2ae5889b7 Close the temporary file handle
  166066. .IP \(bu 2
  166067. 9f7f83a975 Use salt.utils.fopen for line ending consistancy
  166068. .UNINDENT
  166069. .IP \(bu 2
  166070. b221860151 Merge pull request \fI\%#47335\fP from dwoz/pip_test_fix
  166071. .INDENT 2.0
  166072. .IP \(bu 2
  166073. dcb6a22c00 Remove un\-needed string\-escape
  166074. .UNINDENT
  166075. .IP \(bu 2
  166076. 1c527bfd3a Merge pull request \fI\%#47331\fP from dwoz/py3_wingroup_fix
  166077. .INDENT 2.0
  166078. .IP \(bu 2
  166079. cc154ef857 Do not encode usernames
  166080. .UNINDENT
  166081. .IP \(bu 2
  166082. 708078b152 Merge pull request \fI\%#47329\fP from cachedout/frank_credit
  166083. .INDENT 2.0
  166084. .IP \(bu 2
  166085. 33c0644ac4 Credit Frank Spierings
  166086. .UNINDENT
  166087. .IP \(bu 2
  166088. a545e55543 Merge pull request \fI\%#47281\fP from Ch3LL/system_test
  166089. .INDENT 2.0
  166090. .IP \(bu 2
  166091. c9181a75a6 Add destructivetest decorator on tests
  166092. .IP \(bu 2
  166093. 0d0c8987fc Add win_system integration module tests
  166094. .UNINDENT
  166095. .IP \(bu 2
  166096. b64d930df0 Merge pull request \fI\%#47283\fP from Ch3LL/ntp_test
  166097. .INDENT 2.0
  166098. .IP \(bu 2
  166099. ced7f86546 Add windows ntp integration module tests
  166100. .UNINDENT
  166101. .IP \(bu 2
  166102. 910aff910f Merge pull request \fI\%#47314\fP from Ch3LL/net_mac_test
  166103. .INDENT 2.0
  166104. .IP \(bu 2
  166105. 67beb1451c Skip netstat test on macosx as its not supported
  166106. .UNINDENT
  166107. .IP \(bu 2
  166108. 0549ef7c16 Merge pull request \fI\%#47307\fP from rallytime/bp\-47257
  166109. .INDENT 2.0
  166110. .IP \(bu 2
  166111. 6c5b2f92bc Role is not a list but a dictionary
  166112. .UNINDENT
  166113. .IP \(bu 2
  166114. d6ff4689f6 Merge pull request \fI\%#47312\fP from rallytime/update\-bootstrap\-release
  166115. .INDENT 2.0
  166116. .IP \(bu 2
  166117. 765cce06a2 Update bootstrap script to latest release: 2018.04.25
  166118. .UNINDENT
  166119. .IP \(bu 2
  166120. e0765f5719 Merge pull request \fI\%#47279\fP from dwoz/py3_build_fix
  166121. .INDENT 2.0
  166122. .IP \(bu 2
  166123. 21dc1bab91 Pep\-8 line endings
  166124. .IP \(bu 2
  166125. 717abedaf7 Fix comman wart
  166126. .IP \(bu 2
  166127. 4100dcd64c Close might get called more than once
  166128. .IP \(bu 2
  166129. dbe671f943 Stop socket before queue on delete
  166130. .IP \(bu 2
  166131. 9587f5c69e Silence pylint import\-error for six.moves
  166132. .IP \(bu 2
  166133. 4b0c7d3b34 Fix typo
  166134. .IP \(bu 2
  166135. 05adf7c2b1 Use six.moves for queue import
  166136. .IP \(bu 2
  166137. fe340778fa Gracefully shutdown worker threads
  166138. .UNINDENT
  166139. .IP \(bu 2
  166140. 44f19b2f94 Merge pull request \fI\%#47113\fP from jfindlay/iptables_state
  166141. .INDENT 2.0
  166142. .IP \(bu 2
  166143. 8bd08012ee modules,states.iptables support proto for policy ext
  166144. .UNINDENT
  166145. .IP \(bu 2
  166146. b7a6206330 Merge pull request \fI\%#47302\fP from Ch3LL/dead_code
  166147. .INDENT 2.0
  166148. .IP \(bu 2
  166149. daa68b4877 Add virtual grains test for core grains
  166150. .IP \(bu 2
  166151. a59dd2785d Remove dead code in core grains file for virt\-what
  166152. .UNINDENT
  166153. .IP \(bu 2
  166154. e29362acfc Merge pull request \fI\%#47303\fP from baniobloom/bug_fix_doc
  166155. .INDENT 2.0
  166156. .IP \(bu 2
  166157. b97c9df5f3 added clarity on how to figure out what is the oldest supported main release branch
  166158. .UNINDENT
  166159. .IP \(bu 2
  166160. 0d9d55e013 Merge pull request \fI\%#47106\fP from DSRCorporation/bugs/tornado50
  166161. .INDENT 2.0
  166162. .IP \(bu 2
  166163. 39e403b18d Merge branch \(aq2017.7\(aq into bugs/tornado50
  166164. .IP \(bu 2
  166165. 6706b3a2d1 Run off of a temporary config
  166166. .IP \(bu 2
  166167. d6873800d5 Allow running pytest>=3.5.0
  166168. .IP \(bu 2
  166169. 2da3983740 Tornado 5.0 compatibility fixes
  166170. .UNINDENT
  166171. .IP \(bu 2
  166172. 2e014f4746 Merge pull request \fI\%#47271\fP from gtmanfred/amazon
  166173. .INDENT 2.0
  166174. .IP \(bu 2
  166175. 8a53908908 Do not load rh_service module when booted with systemd
  166176. .IP \(bu 2
  166177. e4d1d5bf11 Revert "support amazon linux 2 for service module"
  166178. .UNINDENT
  166179. .IP \(bu 2
  166180. 599b0ed1e9 Merge pull request \fI\%#47246\fP from cloudflare/fix\-44847\-2017.7
  166181. .INDENT 2.0
  166182. .IP \(bu 2
  166183. ad80028104 This way, we can pass flags such as \fBdebug\fP into the state, but also \fBtest\fP\&.
  166184. .UNINDENT
  166185. .IP \(bu 2
  166186. 4e2e1f0719 Merge pull request \fI\%#47220\fP from benediktwerner/fix\-pip\-2017.7
  166187. .INDENT 2.0
  166188. .IP \(bu 2
  166189. 0197c3e973 Fix pip test
  166190. .IP \(bu 2
  166191. 34bf66c09f Fix pip.installed with pip>=10.0.0
  166192. .UNINDENT
  166193. .IP \(bu 2
  166194. 92e606251f Merge pull request \fI\%#47272\fP from rallytime/reg\-windows\-codeowners
  166195. .INDENT 2.0
  166196. .IP \(bu 2
  166197. 9445af0185 Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  166198. .UNINDENT
  166199. .IP \(bu 2
  166200. 9dca5c0221 Merge pull request \fI\%#47252\fP from rallytime/codeowners\-fixes
  166201. .INDENT 2.0
  166202. .IP \(bu 2
  166203. 204b6af92b Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  166204. .UNINDENT
  166205. .IP \(bu 2
  166206. 3de1bb49c8 Merge pull request \fI\%#47177\fP from fpicot/fix_47173_pkg_normalize
  166207. .INDENT 2.0
  166208. .IP \(bu 2
  166209. 149f846f34 fix normalize parameter in pkg.installed
  166210. .UNINDENT
  166211. .IP \(bu 2
  166212. 10e30515dc Merge pull request \fI\%#47251\fP from Ch3LL/pub_fix_rn
  166213. .INDENT 2.0
  166214. .IP \(bu 2
  166215. fa4c2e6575 Update Docs to remove unnecessary + sign
  166216. .UNINDENT
  166217. .IP \(bu 2
  166218. bb7850a431 Merge pull request \fI\%#47249\fP from Ch3LL/pub_fix_rn
  166219. .INDENT 2.0
  166220. .IP \(bu 2
  166221. 24dea24b7e Add CVE number to 2016.3.6 Release
  166222. .UNINDENT
  166223. .IP \(bu 2
  166224. 56933eb0b2 Merge pull request \fI\%#47227\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2017.7
  166225. .INDENT 2.0
  166226. .IP \(bu 2
  166227. fded61f19b Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  166228. .UNINDENT
  166229. .IP \(bu 2
  166230. 9825065048 Merge pull request \fI\%#47167\fP from smitty42/vbox\-skd\-fix
  166231. .INDENT 2.0
  166232. .IP \(bu 2
  166233. 5de53139cd Merge branch \(aq2017.7\(aq into vbox\-skd\-fix
  166234. .UNINDENT
  166235. .IP \(bu 2
  166236. 976f031170 Merge pull request \fI\%#47213\fP from dwoz/py3win
  166237. .INDENT 2.0
  166238. .IP \(bu 2
  166239. ad9c7f63f0 Fix coverate on py3 windows builds
  166240. .IP \(bu 2
  166241. 91252bac95 Adding updates for python3 compatibility and new virtualbox SDK version support.
  166242. .UNINDENT
  166243. .IP \(bu 2
  166244. cebcd6d069 Merge pull request \fI\%#47197\fP from dwoz/testfix
  166245. .INDENT 2.0
  166246. .IP \(bu 2
  166247. 25803c9176 Move process target to top level module namespace
  166248. .UNINDENT
  166249. .IP \(bu 2
  166250. d4269c2b70 Merge pull request \fI\%#47193\fP from Ch3LL/network_test
  166251. .INDENT 2.0
  166252. .IP \(bu 2
  166253. bbf9987c19 Add network module integration tests
  166254. .UNINDENT
  166255. .IP \(bu 2
  166256. c777248a78 Merge pull request \fI\%#47189\fP from Ch3LL/autoruns
  166257. .INDENT 2.0
  166258. .IP \(bu 2
  166259. 6a88bedb7a Add autoruns to windows whitelist
  166260. .IP \(bu 2
  166261. e9e4d4af70 Add autoruns.list integration test for Windows
  166262. .UNINDENT
  166263. .UNINDENT
  166264. .UNINDENT
  166265. .IP \(bu 2
  166266. \fBPR\fP \fI\%#47403\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47356\fP to 2018.3
  166267. @ \fI2018\-05\-01 15:19:06 UTC\fP
  166268. .INDENT 2.0
  166269. .IP \(bu 2
  166270. \fBPR\fP \fI\%#47356\fP: (\fI\%robinro\fP) Fix sysctl translate (refs: \fI\%#47403\fP)
  166271. .IP \(bu 2
  166272. 4e6870305c Merge pull request \fI\%#47403\fP from rallytime/bp\-47356
  166273. .IP \(bu 2
  166274. 9b682bc48e Fix sysctl translate
  166275. .UNINDENT
  166276. .IP \(bu 2
  166277. \fBPR\fP \fI\%#47407\fP: (\fI\%terminalmage\fP) Reduce severity of missing X_update_interval key
  166278. @ \fI2018\-05\-01 15:18:46 UTC\fP
  166279. .INDENT 2.0
  166280. .IP \(bu 2
  166281. 7e0cdd6145 Merge pull request \fI\%#47407\fP from terminalmage/update\-interval\-log
  166282. .IP \(bu 2
  166283. abc592bfff Reduce severity of missing X_update_interval key
  166284. .UNINDENT
  166285. .IP \(bu 2
  166286. \fBISSUE\fP \fI\%#47042\fP: (\fI\%valentin2105\fP) [ERROR] Unable to manage file: \(aqutf8\(aq codec can\(aqt decode byte (refs: \fI\%#47061\fP)
  166287. .IP \(bu 2
  166288. \fBPR\fP \fI\%#47405\fP: (\fI\%terminalmage\fP) Fix file.get_diff regression in 2018.3 branch
  166289. @ \fI2018\-05\-01 15:16:46 UTC\fP
  166290. .INDENT 2.0
  166291. .IP \(bu 2
  166292. \fBPR\fP \fI\%#47061\fP: (\fI\%terminalmage\fP) Fix diffing binary files in file.get_diff (refs: \fI\%#47405\fP)
  166293. .IP \(bu 2
  166294. 1377942bcc Merge pull request \fI\%#47405\fP from terminalmage/binary\-diff
  166295. .IP \(bu 2
  166296. 89ddb08026 Use a lambda instead of defining a one\-line function
  166297. .IP \(bu 2
  166298. b79ff04fda Remove no\-longer\-used enumerate
  166299. .IP \(bu 2
  166300. e03b865359 Add unit test for file.get_diff
  166301. .IP \(bu 2
  166302. 5bdc9e9bd5 Fix UnboundLocalError in file.get_diff
  166303. .UNINDENT
  166304. .IP \(bu 2
  166305. \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)
  166306. .IP \(bu 2
  166307. \fBPR\fP \fI\%#47367\fP: (\fI\%terminalmage\fP) Start docker containers with image name instead of ID
  166308. @ \fI2018\-04\-30 18:46:13 UTC\fP
  166309. .INDENT 2.0
  166310. .IP \(bu 2
  166311. c267e6083e Merge pull request \fI\%#47367\fP from terminalmage/issue47325
  166312. .IP \(bu 2
  166313. 798134caa3 Add regression test for creating images with image name insead of ID
  166314. .IP \(bu 2
  166315. 4ed47e839c Start docker containers with image name instead of ID
  166316. .UNINDENT
  166317. .IP \(bu 2
  166318. \fBISSUE\fP \fI\%#47006\fP: (\fI\%cedwards\fP) marathon & fx2 grain modules cause master and minion failure (refs: \fI\%#47401\fP)
  166319. .IP \(bu 2
  166320. \fBPR\fP \fI\%#47401\fP: (\fI\%gtmanfred\fP) fix proxy virtual checks for marathon and fx2
  166321. @ \fI2018\-04\-30 18:44:46 UTC\fP
  166322. .INDENT 2.0
  166323. .IP \(bu 2
  166324. 3bb00cbb55 Merge pull request \fI\%#47401\fP from gtmanfred/proxy
  166325. .IP \(bu 2
  166326. 99f9231759 fix proxy virtual checks for marathon and fx2
  166327. .UNINDENT
  166328. .IP \(bu 2
  166329. \fBPR\fP \fI\%#47397\fP: (\fI\%rallytime\fP) Add 2018.3.1 Release Notes
  166330. @ \fI2018\-04\-30 14:44:38 UTC\fP
  166331. .INDENT 2.0
  166332. .IP \(bu 2
  166333. c160fe36ce Merge pull request \fI\%#47397\fP from rallytime/2018.3.1\-release\-notes
  166334. .IP \(bu 2
  166335. 3b40cdad2a Add 2018.3.1 Release Notes
  166336. .UNINDENT
  166337. .IP \(bu 2
  166338. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP, \fI\%#47106\fP, \fI\%#47433\fP)
  166339. .IP \(bu 2
  166340. \fBPR\fP \fI\%#47374\fP: (\fI\%DmitryKuzmenko\fP) tornado50 merge forward for 2018.3
  166341. @ \fI2018\-04\-29 16:29:12 UTC\fP
  166342. .INDENT 2.0
  166343. .IP \(bu 2
  166344. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47374\fP, \fI\%#47368\fP, \fI\%#47433\fP)
  166345. .IP \(bu 2
  166346. \fBPR\fP \fI\%#46002\fP: (\fI\%isbm\fP) Pyzmq 17.0.0 proper handling (refs: \fI\%#47374\fP, \fI\%#47368\fP)
  166347. .IP \(bu 2
  166348. 3400f829c4 Merge pull request \fI\%#47374\fP from DSRCorporation/bugs/tornado50\-2018.3
  166349. .IP \(bu 2
  166350. 400999c54f fix pylint
  166351. .IP \(bu 2
  166352. 47b6d409d1 add io_loop handling to runtests engine
  166353. .IP \(bu 2
  166354. fd074fdb7d use salt.utils.zeromq
  166355. .IP \(bu 2
  166356. 4ae33c5d9a Run off of a temporary config
  166357. .IP \(bu 2
  166358. 7938b4906e Allow running pytest>=3.5.0
  166359. .IP \(bu 2
  166360. 34058c181e Tornado 5.0 compatibility fixes
  166361. .UNINDENT
  166362. .IP \(bu 2
  166363. \fBISSUE\fP \fI\%#47124\fP: (\fI\%mchugh19\fP) Vault module problem in 2018.3.0 (refs: \fI\%#47379\fP)
  166364. .IP \(bu 2
  166365. \fBPR\fP \fI\%#47379\fP: (\fI\%dwoz\fP) Properly encode messages when creating/validating signatures with m2crypto
  166366. @ \fI2018\-04\-28 08:38:23 UTC\fP
  166367. .INDENT 2.0
  166368. .IP \(bu 2
  166369. 2afe4bee95 Merge pull request \fI\%#47379\fP from dwoz/m2crypto_regression
  166370. .IP \(bu 2
  166371. 068f2d430d Always sign and verify bytes
  166372. .IP \(bu 2
  166373. 7810ebaba9 Add sign regression tests
  166374. .IP \(bu 2
  166375. f4441c3a1c Adding regression test for 47124
  166376. .UNINDENT
  166377. .IP \(bu 2
  166378. \fBPR\fP \fI\%#47277\fP: (\fI\%morganwillcock\fP) Fix minion crash on NetBSD
  166379. @ \fI2018\-04\-27 15:02:21 UTC\fP
  166380. .INDENT 2.0
  166381. .IP \(bu 2
  166382. 7390b72808 Merge pull request \fI\%#47277\fP from morganwillcock/netbsdswap
  166383. .IP \(bu 2
  166384. 0bcb1a079a Merge branch \(aq2018.3\(aq into netbsdswap
  166385. .IP \(bu 2
  166386. 30478e8c9c Use swapctl for NetBSD
  166387. .UNINDENT
  166388. .IP \(bu 2
  166389. \fBPR\fP \fI\%#47320\fP: (\fI\%twangboy\fP) Change from NSSM to SSM
  166390. @ \fI2018\-04\-27 14:37:50 UTC\fP
  166391. .INDENT 2.0
  166392. .IP \(bu 2
  166393. 2b7c7ef704 Merge pull request \fI\%#47320\fP from twangboy/win_ssm
  166394. .IP \(bu 2
  166395. 5549d83aae Use ssm instead of nssm
  166396. .UNINDENT
  166397. .IP \(bu 2
  166398. \fBPR\fP \fI\%#47308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47287\fP to 2018.3
  166399. @ \fI2018\-04\-27 13:50:49 UTC\fP
  166400. .INDENT 2.0
  166401. .IP \(bu 2
  166402. \fBPR\fP \fI\%#47287\fP: (\fI\%esell\fP) convert unicode ssh pass to str for azure (refs: \fI\%#47308\fP)
  166403. .IP \(bu 2
  166404. b6df5facce Merge pull request \fI\%#47308\fP from rallytime/bp\-47287
  166405. .IP \(bu 2
  166406. 5f392a23fe convert unicode ssh pass to str for azure
  166407. .UNINDENT
  166408. .IP \(bu 2
  166409. \fBISSUE\fP \fI\%#47324\fP: (\fI\%rlschilperoort\fP) archive.extracted keep and/or keep_source not working (refs: \fI\%#47332\fP)
  166410. .IP \(bu 2
  166411. \fBPR\fP \fI\%#47332\fP: (\fI\%garethgreenaway\fP) [2018.3] Removing duplicate code from state/archive.py
  166412. @ \fI2018\-04\-27 13:12:51 UTC\fP
  166413. .INDENT 2.0
  166414. .IP \(bu 2
  166415. efa3aab800 Merge pull request \fI\%#47332\fP from garethgreenaway/47324_archive_extracted_keep_keep_source
  166416. .IP \(bu 2
  166417. cc10bfec6b Removing redundant code which is prevening keep & keep_source from being set.
  166418. .UNINDENT
  166419. .IP \(bu 2
  166420. \fBPR\fP \fI\%#47326\fP: (\fI\%The\-Loeki\fP) Some Redis fixes
  166421. @ \fI2018\-04\-26 17:12:47 UTC\fP
  166422. .INDENT 2.0
  166423. .IP \(bu 2
  166424. 245d62ca16 Merge pull request \fI\%#47326\fP from The\-Loeki/redis\-cache\-sockets
  166425. .IP \(bu 2
  166426. d86fbe5bdd redis_return: add unix_socket_path to docs
  166427. .IP \(bu 2
  166428. ee9f533765 redis_cache: document UNIX socket access
  166429. .IP \(bu 2
  166430. 5337558a5a redis_return: Let redis handle pool creation, add UNIX socket support
  166431. .IP \(bu 2
  166432. c90f83b0f9 redis_return: cluster_mode default to False in __virtual__ to prevent KeyError stacktraces
  166433. .IP \(bu 2
  166434. 71e3286829 redis_return: Fix code blocks in docs
  166435. .IP \(bu 2
  166436. e6605f1c78 redis_cache fix code blox in docs
  166437. .IP \(bu 2
  166438. 40e67747ee redis_cache: add socket to options
  166439. .UNINDENT
  166440. .IP \(bu 2
  166441. \fBPR\fP \fI\%#47319\fP: (\fI\%dwoz\fP) Skip unix group tests on windows.
  166442. @ \fI2018\-04\-26 15:59:35 UTC\fP
  166443. .INDENT 2.0
  166444. .IP \(bu 2
  166445. 27a438f0ff Merge pull request \fI\%#47319\fP from dwoz/skip_tests
  166446. .IP \(bu 2
  166447. d9442d043e Skip tests not applicable to windows
  166448. .UNINDENT
  166449. .IP \(bu 2
  166450. \fBPR\fP \fI\%#47293\fP: (\fI\%dwoz\fP) The grp module is not available on windows
  166451. @ \fI2018\-04\-25 20:22:34 UTC\fP
  166452. .INDENT 2.0
  166453. .IP \(bu 2
  166454. 057f668788 Merge pull request \fI\%#47293\fP from dwoz/win_build_fix
  166455. .IP \(bu 2
  166456. 0386216005 Fix sneaky indention
  166457. .IP \(bu 2
  166458. 082b8d0b3d Use salt.utils.platform
  166459. .IP \(bu 2
  166460. cc2538e08f The grp modules is not available on windows
  166461. .UNINDENT
  166462. .IP \(bu 2
  166463. \fBISSUE\fP \fI\%#46862\fP: (\fI\%kivoli\fP) Setting locale.system fails in 2018.3 (refs: \fI\%#47280\fP, \fI\%#46869\fP)
  166464. .IP \(bu 2
  166465. \fBPR\fP \fI\%#47280\fP: (\fI\%gtmanfred\fP) make sure not to send invalid information
  166466. @ \fI2018\-04\-25 17:46:45 UTC\fP
  166467. .INDENT 2.0
  166468. .IP \(bu 2
  166469. fff4f8c1a5 Merge pull request \fI\%#47280\fP from gtmanfred/localectl
  166470. .IP \(bu 2
  166471. 7c212cbb2d fix pylint
  166472. .IP \(bu 2
  166473. 6754787e8e update localemod tests
  166474. .IP \(bu 2
  166475. 9075070573 make sure not to send invalid information
  166476. .UNINDENT
  166477. .IP \(bu 2
  166478. \fBISSUE\fP \fI\%#46977\fP: (\fI\%gtmanfred\fP) [2018.3.0] Backwards compatibilty breaking change in 2018.3.0 (refs: \fI\%#47038\fP)
  166479. .IP \(bu 2
  166480. \fBPR\fP \fI\%#47038\fP: (\fI\%garethgreenaway\fP) [2018.3] fix to fileclient.py
  166481. @ \fI2018\-04\-25 14:57:04 UTC\fP
  166482. .INDENT 2.0
  166483. .IP \(bu 2
  166484. 205701dcbe Merge pull request \fI\%#47038\fP from garethgreenaway/46977_fixing_fileclient_forward_compatibilty
  166485. .IP \(bu 2
  166486. ba01d2133a Updating version.py to include Magnesium.
  166487. .IP \(bu 2
  166488. 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.
  166489. .UNINDENT
  166490. .IP \(bu 2
  166491. \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)
  166492. .IP \(bu 2
  166493. \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)
  166494. .IP \(bu 2
  166495. \fBPR\fP \fI\%#47060\fP: (\fI\%OrlandoArcapix\fP) Return an empty dict for \(aqchanges\(aq instead of \(aqNone\(aq
  166496. @ \fI2018\-04\-25 14:55:24 UTC\fP
  166497. .INDENT 2.0
  166498. .IP \(bu 2
  166499. \fBPR\fP \fI\%#47048\fP: (\fI\%OrlandoArcapix\fP) Issue46985 fix grafana4 state (refs: \fI\%#47060\fP)
  166500. .IP \(bu 2
  166501. 89daf4fdc7 Merge pull request \fI\%#47060\fP from OrlandoArcapix/Issue47059\-return_dict_from_state
  166502. .IP \(bu 2
  166503. 5378e4fd07 Update grafana_datasource test to check for empty dict being returned on no changes, rather than None
  166504. .IP \(bu 2
  166505. f115452653 Return an empty dict for \(aqchanges\(aq instead of \(aqNone\(aq
  166506. .UNINDENT
  166507. .IP \(bu 2
  166508. \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)
  166509. .IP \(bu 2
  166510. \fBPR\fP \fI\%#47153\fP: (\fI\%terminalmage\fP) salt.modules.ssh: properly encode/decode I/O
  166511. @ \fI2018\-04\-25 14:53:51 UTC\fP
  166512. .INDENT 2.0
  166513. .IP \(bu 2
  166514. 10cc0d312b Merge pull request \fI\%#47153\fP from terminalmage/issue47089
  166515. .IP \(bu 2
  166516. bdb52797f8 salt.modules.ssh: properly encode/decode I/O
  166517. .UNINDENT
  166518. .IP \(bu 2
  166519. \fBISSUE\fP \fI\%#47199\fP: (\fI\%tkaehn\fP) Targeting by list (\-L) broken for minions behind syndic? (refs: \fI\%#47275\fP)
  166520. .IP \(bu 2
  166521. \fBPR\fP \fI\%#47275\fP: (\fI\%terminalmage\fP) Fix false failure events sent when using syndic
  166522. @ \fI2018\-04\-25 13:56:47 UTC\fP
  166523. .INDENT 2.0
  166524. .IP \(bu 2
  166525. b5d64f1a70 Merge pull request \fI\%#47275\fP from terminalmage/issue47199
  166526. .IP \(bu 2
  166527. 8012ad12f8 Fix false failure events sent when using syndic
  166528. .UNINDENT
  166529. .IP \(bu 2
  166530. \fBISSUE\fP \fI\%#47267\fP: (\fI\%skjaro\fP) Problem with beacon diskusage on windows platform in 2018.3 (refs: \fI\%#47284\fP)
  166531. .IP \(bu 2
  166532. \fBPR\fP \fI\%#47284\fP: (\fI\%skjaro\fP) Fix beacon diskusage documentation for the new beahavior mentioned in issue \fI\%#47267\fP
  166533. @ \fI2018\-04\-25 13:52:30 UTC\fP
  166534. .INDENT 2.0
  166535. .IP \(bu 2
  166536. 6215a995d8 Merge pull request \fI\%#47284\fP from skjaro/beacon_diskusage_doc_fix
  166537. .IP \(bu 2
  166538. fcc042aa5f Fix beacon documentation for the new beahavior mentioned in issue \fI\%#47267\fP
  166539. .UNINDENT
  166540. .IP \(bu 2
  166541. \fBPR\fP \fI\%#47291\fP: (\fI\%bosatsu\fP) Fix proxy minion beacon doc
  166542. @ \fI2018\-04\-25 13:42:36 UTC\fP
  166543. .INDENT 2.0
  166544. .IP \(bu 2
  166545. 3ef4fe6ed2 Merge pull request \fI\%#47291\fP from bosatsu/fix\-proxy\-minion\-beacon\-doc
  166546. .IP \(bu 2
  166547. 01980b4c43 Fix topics/releases/2018.3.0.rst to include correct example of proxy_example beacon yaml configuration.
  166548. .IP \(bu 2
  166549. 9682e26eec Fix topics/proxyminion/beacon.rst to include correct example of salt_proxy beacon yaml configuration.
  166550. .UNINDENT
  166551. .IP \(bu 2
  166552. \fBISSUE\fP \fI\%#47239\fP: (\fI\%bosatsu\fP) Unable to load salt_proxy beacon on minion in 2018.3.0 (refs: \fI\%#47255\fP)
  166553. .IP \(bu 2
  166554. \fBPR\fP \fI\%#47255\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to salt_proxy beacon and beacon tests
  166555. @ \fI2018\-04\-25 13:41:51 UTC\fP
  166556. .INDENT 2.0
  166557. .IP \(bu 2
  166558. ea2d68b865 Merge pull request \fI\%#47255\fP from garethgreenaway/47239_fixes_to_salt_proxy_beacon
  166559. .IP \(bu 2
  166560. a2a8d78cb0 Fixing status beacon tests.
  166561. .IP \(bu 2
  166562. 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.
  166563. .UNINDENT
  166564. .IP \(bu 2
  166565. \fBPR\fP \fI\%#47292\fP: (\fI\%dwoz\fP) Fix decorator wart
  166566. @ \fI2018\-04\-25 04:25:23 UTC\fP
  166567. .INDENT 2.0
  166568. .IP \(bu 2
  166569. \fBPR\fP \fI\%#47290\fP: (\fI\%dwoz\fP) Run cache_master test in tmp dir (refs: \fI\%#47292\fP)
  166570. .IP \(bu 2
  166571. 19f9e8258f Merge pull request \fI\%#47292\fP from dwoz/cp_fix_again
  166572. .IP \(bu 2
  166573. 7d045eb235 Fix decorator wart
  166574. .UNINDENT
  166575. .IP \(bu 2
  166576. \fBPR\fP \fI\%#47285\fP: (\fI\%dwoz\fP) Fix reg grains test
  166577. @ \fI2018\-04\-25 00:16:56 UTC\fP
  166578. .INDENT 2.0
  166579. .IP \(bu 2
  166580. da532aa1ac Merge pull request \fI\%#47285\fP from dwoz/core_test_fix
  166581. .IP \(bu 2
  166582. 884f4c1829 Fix extra space
  166583. .IP \(bu 2
  166584. 8a9027c0c9 Fix reg grains test
  166585. .UNINDENT
  166586. .IP \(bu 2
  166587. \fBPR\fP \fI\%#47290\fP: (\fI\%dwoz\fP) Run cache_master test in tmp dir (refs: \fI\%#47292\fP)
  166588. @ \fI2018\-04\-24 23:37:21 UTC\fP
  166589. .INDENT 2.0
  166590. .IP \(bu 2
  166591. f591cff643 Merge pull request \fI\%#47290\fP from dwoz/test_cp_fix
  166592. .IP \(bu 2
  166593. 5ff51affbd Run cache_master test in tmp dir
  166594. .UNINDENT
  166595. .IP \(bu 2
  166596. \fBISSUE\fP \fI\%#47092\fP: (\fI\%syphernl\fP) [2018.3.0] pkg.installed breaks with virtual packages (refs: \fI\%#47250\fP)
  166597. .IP \(bu 2
  166598. \fBISSUE\fP \fI\%#38838\fP: (\fI\%Zorlin\fP) Failing to remove nginx (refs: \fI\%#44455\fP)
  166599. .IP \(bu 2
  166600. \fBPR\fP \fI\%#47250\fP: (\fI\%terminalmage\fP) Fix virtual package detection
  166601. @ \fI2018\-04\-24 19:22:24 UTC\fP
  166602. .INDENT 2.0
  166603. .IP \(bu 2
  166604. \fBPR\fP \fI\%#44455\fP: (\fI\%samodid\fP) Fix for \fI\%#38838\fP (refs: \fI\%#47250\fP)
  166605. .IP \(bu 2
  166606. 6d323aa8f0 Merge pull request \fI\%#47250\fP from terminalmage/issue47092
  166607. .IP \(bu 2
  166608. b8630a70be Fix virtual package detection
  166609. .UNINDENT
  166610. .IP \(bu 2
  166611. \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)
  166612. .IP \(bu 2
  166613. \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)
  166614. @ \fI2018\-04\-24 13:35:21 UTC\fP
  166615. .INDENT 2.0
  166616. .IP \(bu 2
  166617. \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)
  166618. .IP \(bu 2
  166619. 428e915d6a Merge pull request \fI\%#47228\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2018.3
  166620. .IP \(bu 2
  166621. cfbf136ab2 Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  166622. .UNINDENT
  166623. .IP \(bu 2
  166624. \fBISSUE\fP \fI\%#46943\fP: (\fI\%Auha\fP) Slack.Engine could not start (refs: \fI\%#47262\fP, \fI\%#47109\fP)
  166625. .IP \(bu 2
  166626. \fBPR\fP \fI\%#47262\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to targeting in Slack engine
  166627. @ \fI2018\-04\-24 13:18:36 UTC\fP
  166628. .INDENT 2.0
  166629. .IP \(bu 2
  166630. 0b836106b9 Merge pull request \fI\%#47262\fP from garethgreenaway/slack_engine_target_fix
  166631. .IP \(bu 2
  166632. 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.
  166633. .UNINDENT
  166634. .IP \(bu 2
  166635. \fBISSUE\fP \fI\%#47047\fP: (\fI\%Giandom\fP) Pillars aren\(aqt evaluated when alias is passed in Slack Engine (refs: \fI\%#47142\fP)
  166636. .IP \(bu 2
  166637. \fBPR\fP \fI\%#47142\fP: (\fI\%garethgreenaway\fP) [2018.3] pillar and output formatting fixes to Slack engine
  166638. @ \fI2018\-04\-23 19:55:07 UTC\fP
  166639. .INDENT 2.0
  166640. .IP \(bu 2
  166641. 2ed4b38b02 Merge pull request \fI\%#47142\fP from garethgreenaway/47047_passing_pillar_to_slack_aliases
  166642. .IP \(bu 2
  166643. 6f183e1d80 Initial commmit for unit/engines/test_slack_engine
  166644. .IP \(bu 2
  166645. a2840fc230 Only include the rest of the cmdline if the cmd is an alias.
  166646. .IP \(bu 2
  166647. 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.
  166648. .UNINDENT
  166649. .IP \(bu 2
  166650. \fBPR\fP \fI\%#47245\fP: (\fI\%terminalmage\fP) Ensure we pass hexid as bytes when zmq_filtering enabled
  166651. @ \fI2018\-04\-23 16:54:57 UTC\fP
  166652. .INDENT 2.0
  166653. .IP \(bu 2
  166654. 42a0e655dc Merge pull request \fI\%#47245\fP from terminalmage/zeromq\-bytes
  166655. .IP \(bu 2
  166656. a7accc0548 Ensure we pass hexid as bytes when zmq_filtering enabled
  166657. .UNINDENT
  166658. .IP \(bu 2
  166659. \fBPR\fP \fI\%#47242\fP: (\fI\%aesposito91\fP) PY3 fix for zeromq setsockopt
  166660. @ \fI2018\-04\-23 16:38:09 UTC\fP
  166661. .INDENT 2.0
  166662. .IP \(bu 2
  166663. 73525d1460 Merge pull request \fI\%#47242\fP from aesposito91/2018.3
  166664. .IP \(bu 2
  166665. b225351e6d Update napalm_syslog.py
  166666. .UNINDENT
  166667. .IP \(bu 2
  166668. \fBISSUE\fP \fI\%#47117\fP: (\fI\%prashanthtuttu\fP) Napalm / Capirca Issue (refs: \fI\%#47241\fP)
  166669. .IP \(bu 2
  166670. \fBPR\fP \fI\%#47241\fP: (\fI\%mirceaulinic\fP) Fix the imports into the netacl execution and state modules
  166671. @ \fI2018\-04\-23 14:56:32 UTC\fP
  166672. .INDENT 2.0
  166673. .IP \(bu 2
  166674. b78295aee9 Merge pull request \fI\%#47241\fP from cloudflare/fix\-47117
  166675. .IP \(bu 2
  166676. 26c5583264 \fI\%#47117\fP: fix the napalm imports in the netacl state module
  166677. .IP \(bu 2
  166678. 48396467c1 \fI\%#47117\fP: fix the napalm imports in the netacl execution module
  166679. .UNINDENT
  166680. .IP \(bu 2
  166681. \fBPR\fP \fI\%#47219\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing a backward compatibility issue with vault module & runner
  166682. @ \fI2018\-04\-23 14:10:19 UTC\fP
  166683. .INDENT 2.0
  166684. .IP \(bu 2
  166685. 88557ea991 Merge pull request \fI\%#47219\fP from garethgreenaway/vault_backward_compatibility
  166686. .IP \(bu 2
  166687. 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.
  166688. .UNINDENT
  166689. .IP \(bu 2
  166690. \fBPR\fP \fI\%#47186\fP: (\fI\%dmurphy18\fP) backport of issue 46933, updated ZFS handling to Salt 2018.3.x
  166691. @ \fI2018\-04\-23 14:07:06 UTC\fP
  166692. .INDENT 2.0
  166693. .IP \(bu 2
  166694. 370feadbd2 Merge pull request \fI\%#47186\fP from dmurphy18/zfs_backport_46933
  166695. .IP \(bu 2
  166696. 283359d315 Corrected typo in comma\-seprated and 2018.3.0 \-> 2018.3.1
  166697. .IP \(bu 2
  166698. b7f8d5a22f Replace use of Fluorine with 2018.3.0 for comma\-separated warnings
  166699. .IP \(bu 2
  166700. 3f30ab2ed6 ZFS backport of 46933 to 2018.3.1
  166701. .UNINDENT
  166702. .IP \(bu 2
  166703. \fBPR\fP \fI\%#47217\fP: (\fI\%twangboy\fP) Remove installation of pywin32 from setup.py
  166704. @ \fI2018\-04\-23 13:32:54 UTC\fP
  166705. .INDENT 2.0
  166706. .IP \(bu 2
  166707. bf3a67d11b Merge pull request \fI\%#47217\fP from twangboy/fix_setup
  166708. .IP \(bu 2
  166709. eb3d45bb08 Remove installation of pywin32 from setup.py
  166710. .UNINDENT
  166711. .IP \(bu 2
  166712. \fBPR\fP \fI\%#47195\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166713. @ \fI2018\-04\-20 19:25:30 UTC\fP
  166714. .INDENT 2.0
  166715. .IP \(bu 2
  166716. 8e21703f13 Merge pull request \fI\%#47195\fP from rallytime/merge\-2018.3
  166717. .IP \(bu 2
  166718. f90fd8c663 Test fix: file strings must be unicode in master config
  166719. .IP \(bu 2
  166720. bee4948df1 Lint: use full path for event utils function
  166721. .IP \(bu 2
  166722. 120c5446b7 Update old utils paths to new utils paths
  166723. .IP \(bu 2
  166724. 4718d31e53 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166725. .INDENT 2.0
  166726. .IP \(bu 2
  166727. 65f344e371 Merge pull request \fI\%#47184\fP from Ch3LL/status_test
  166728. .INDENT 2.0
  166729. .IP \(bu 2
  166730. 25a84428b8 Add status module integration modules tests for Windows
  166731. .UNINDENT
  166732. .IP \(bu 2
  166733. 965600ad6c Merge pull request \fI\%#47163\fP from rallytime/jenkins\-autodoc
  166734. .INDENT 2.0
  166735. .IP \(bu 2
  166736. 0039395017 Updage jenkins module autodocs to use jenkinsmod name instead
  166737. .UNINDENT
  166738. .IP \(bu 2
  166739. 0a43dde5fc Merge pull request \fI\%#47185\fP from twangboy/add_tests
  166740. .INDENT 2.0
  166741. .IP \(bu 2
  166742. 345daa0423 Add additional integration tests to whitelist
  166743. .UNINDENT
  166744. .IP \(bu 2
  166745. 1a600bb9a4 Merge pull request \fI\%#47172\fP from dwoz/cover_without_admin
  166746. .INDENT 2.0
  166747. .IP \(bu 2
  166748. cadd759727 Use warnings to warn user
  166749. .IP \(bu 2
  166750. 144c68e214 Allow non admin name based runs on windows
  166751. .UNINDENT
  166752. .IP \(bu 2
  166753. d5997d2301 Merge pull request \fI\%#47110\fP from kstreee/fix\-misusing\-of\-timeout
  166754. .INDENT 2.0
  166755. .IP \(bu 2
  166756. 0624aee0ed Fixes misusing of the timeout option.
  166757. .UNINDENT
  166758. .IP \(bu 2
  166759. 87ca2b4003 Merge pull request \fI\%#40961\fP from terminalmage/issue40948
  166760. .INDENT 2.0
  166761. .IP \(bu 2
  166762. 6ba66cca41 Fix incorrect logic in exception check
  166763. .IP \(bu 2
  166764. fed5041c5f Make error more specific to aid in troubleshooting
  166765. .IP \(bu 2
  166766. 8c67ab53b4 Fix path in log message
  166767. .IP \(bu 2
  166768. 3198ca8b19 Make error more explicit when PKI dir not present for salt\-call
  166769. .UNINDENT
  166770. .IP \(bu 2
  166771. f5e63584d4 Merge pull request \fI\%#47134\fP from Ch3LL/user_win_test
  166772. .INDENT 2.0
  166773. .IP \(bu 2
  166774. e7c9bc4038 Add user integration tests for windows OS
  166775. .UNINDENT
  166776. .IP \(bu 2
  166777. da2f6a3fac Merge pull request \fI\%#47131\fP from gtmanfred/cli
  166778. .INDENT 2.0
  166779. .IP \(bu 2
  166780. 1b1c29bf62 add __cli for master processes
  166781. .UNINDENT
  166782. .IP \(bu 2
  166783. 9b8e6ffb8c Merge pull request \fI\%#47129\fP from rallytime/bp\-47121
  166784. .INDENT 2.0
  166785. .IP \(bu 2
  166786. 11da526b21 add ImportError
  166787. .IP \(bu 2
  166788. bd0c23396c fix pip.req import error in pip 10.0.0
  166789. .UNINDENT
  166790. .IP \(bu 2
  166791. eb5ac51a48 Merge pull request \fI\%#47102\fP from gtmanfred/2017.7
  166792. .INDENT 2.0
  166793. .IP \(bu 2
  166794. 3dc93b310b fix tests
  166795. .IP \(bu 2
  166796. 8497e08f8e fix pip module for 10.0.0
  166797. .IP \(bu 2
  166798. 4c07a3d1e9 fix other tests
  166799. .IP \(bu 2
  166800. b71e3d8a04 dont allow using no_use_wheel for pip 10.0.0 or newer
  166801. .UNINDENT
  166802. .IP \(bu 2
  166803. c1dc42e67e Merge pull request \fI\%#47037\fP from twangboy/fix_dev_scripts
  166804. .INDENT 2.0
  166805. .IP \(bu 2
  166806. 990a24d7ed Fix build_env scripts
  166807. .UNINDENT
  166808. .UNINDENT
  166809. .UNINDENT
  166810. .IP \(bu 2
  166811. \fBISSUE\fP \fI\%#46906\fP: (\fI\%whytewolf\fP) Windows failure with PR 46541 (refs: \fI\%#47168\fP)
  166812. .IP \(bu 2
  166813. \fBPR\fP \fI\%#47168\fP: (\fI\%gtmanfred\fP) fix metadata grain for py3 and windows
  166814. @ \fI2018\-04\-20 19:07:50 UTC\fP
  166815. .INDENT 2.0
  166816. .IP \(bu 2
  166817. a56eb7e05d Merge pull request \fI\%#47168\fP from gtmanfred/metadata
  166818. .IP \(bu 2
  166819. 396f7906e3 fix metadata grain for py3 and windows
  166820. .UNINDENT
  166821. .IP \(bu 2
  166822. \fBISSUE\fP \fI\%#46918\fP: (\fI\%AmbicaY\fP) napalm/capirca issue (refs: \fI\%#47202\fP)
  166823. .IP \(bu 2
  166824. \fBPR\fP \fI\%#47202\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#46918\fP: add the TTL field
  166825. @ \fI2018\-04\-20 14:34:09 UTC\fP
  166826. .INDENT 2.0
  166827. .IP \(bu 2
  166828. 6135b76e2c Merge pull request \fI\%#47202\fP from cloudflare/fix\-46918
  166829. .IP \(bu 2
  166830. 1e74141cc0 Fix \fI\%#46918\fP
  166831. .UNINDENT
  166832. .IP \(bu 2
  166833. \fBISSUE\fP \fI\%#47150\fP: (\fI\%srkunze\fP) [Regression] ip_to_host and SSH._expand_target require missing reverse\-lookup (refs: \fI\%#47191\fP)
  166834. .IP \(bu 2
  166835. \fBPR\fP \fI\%#47191\fP: (\fI\%terminalmage\fP) salt\-ssh: Do not attempt to match host/ip to minion ID if reverse lookup fails
  166836. @ \fI2018\-04\-20 14:20:05 UTC\fP
  166837. .INDENT 2.0
  166838. .IP \(bu 2
  166839. 7f1115e611 Merge pull request \fI\%#47191\fP from terminalmage/issue47150
  166840. .IP \(bu 2
  166841. 95a6f075cb Add debug logging when ip_to_host fails
  166842. .IP \(bu 2
  166843. 45696e622b salt\-ssh: Do not attempt to match host/ip to minion ID if reverse lookup fails
  166844. .UNINDENT
  166845. .IP \(bu 2
  166846. \fBPR\fP \fI\%#47122\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166847. @ \fI2018\-04\-19 20:44:18 UTC\fP
  166848. .INDENT 2.0
  166849. .IP \(bu 2
  166850. 1947ffdf56 Merge pull request \fI\%#47122\fP from rallytime/merge\-2018.3
  166851. .IP \(bu 2
  166852. 878fa06134 Test fix: remove tornado testing lib from class
  166853. .IP \(bu 2
  166854. a40f007962 lint: get_context is in stringutils.py now
  166855. .IP \(bu 2
  166856. 3416e398c6 Update old utils paths references to use new paths
  166857. .IP \(bu 2
  166858. 94c2a12be6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166859. .INDENT 2.0
  166860. .IP \(bu 2
  166861. 6a4c0b8a1a Merge pull request \fI\%#47108\fP from dwoz/async_test_fix
  166862. .INDENT 2.0
  166863. .IP \(bu 2
  166864. 3d85e30ce5 AsyncTestCase is required for AsyncEventPublisher
  166865. .UNINDENT
  166866. .IP \(bu 2
  166867. 03892eaf0b Merge pull request \fI\%#47068\fP from cachedout/catch_value_error_socket_test
  166868. .INDENT 2.0
  166869. .IP \(bu 2
  166870. 7db5625632 Catch an operation on a closed socket in a test
  166871. .UNINDENT
  166872. .IP \(bu 2
  166873. 1ea2885ec2 Merge pull request \fI\%#47065\fP from dwoz/jinja_test_fix
  166874. .INDENT 2.0
  166875. .IP \(bu 2
  166876. 673cd31c65 Merge branch \(aq2017.7\(aq into jinja_test_fix
  166877. .UNINDENT
  166878. .IP \(bu 2
  166879. 5293b5b5ca Merge pull request \fI\%#47077\fP from dwoz/test_state_fix
  166880. .INDENT 2.0
  166881. .IP \(bu 2
  166882. 444da3f893 Fix py3 wart (chr vs bytesstring)
  166883. .IP \(bu 2
  166884. e8acca01c2 Fix failing state test by normalizing line endings
  166885. .UNINDENT
  166886. .IP \(bu 2
  166887. ca967de5da Merge pull request \fI\%#47067\fP from gtmanfred/2017.7
  166888. .INDENT 2.0
  166889. .IP \(bu 2
  166890. f913a7859c use the recommended opennebula lookup method
  166891. .UNINDENT
  166892. .IP \(bu 2
  166893. 7fddad6cd9 Merge pull request \fI\%#47064\fP from dwoz/roots_tests_fix
  166894. .INDENT 2.0
  166895. .IP \(bu 2
  166896. 25fd7c0694 fix py3 wart, encode os.linesep
  166897. .IP \(bu 2
  166898. d79f1a1961 Fix fileserver roots tests
  166899. .UNINDENT
  166900. .IP \(bu 2
  166901. 977c6939c4 Merge pull request \fI\%#47069\fP from cachedout/match_timeout_arg
  166902. .INDENT 2.0
  166903. .IP \(bu 2
  166904. b8990f5258 Pass the timeout variable to the CLI when calling salt in tests
  166905. .UNINDENT
  166906. .IP \(bu 2
  166907. 2c4c19c622 Merge pull request \fI\%#47074\fP from dwoz/ignore_artifacts
  166908. .INDENT 2.0
  166909. .IP \(bu 2
  166910. c3941efad0 Kitchn should ignore artifacts directory
  166911. .UNINDENT
  166912. .IP \(bu 2
  166913. c484c0bd71 Merge pull request \fI\%#47055\fP from bloomberg/GH\-47000
  166914. .INDENT 2.0
  166915. .IP \(bu 2
  166916. 8af3f5b874 GH\-47000: add proper handling of full_return in cmd_subset
  166917. .UNINDENT
  166918. .IP \(bu 2
  166919. f3496030cc Merge pull request \fI\%#47039\fP from twangboy/win_fix_winrm_script
  166920. .INDENT 2.0
  166921. .IP \(bu 2
  166922. 6635b9003f Fix winrm powershell script
  166923. .INDENT 2.0
  166924. .INDENT 3.5
  166925. .INDENT 0.0
  166926. .IP \(bu 2
  166927. 46fa2c04de Fix py3 os.linesep wart
  166928. .IP \(bu 2
  166929. 3c565d7e54 Use salt.utils.fopen
  166930. .IP \(bu 2
  166931. aa965310f1 Clean up cruft
  166932. .IP \(bu 2
  166933. efc9866580 Jinja test fixes
  166934. .UNINDENT
  166935. .UNINDENT
  166936. .UNINDENT
  166937. .UNINDENT
  166938. .UNINDENT
  166939. .UNINDENT
  166940. .IP \(bu 2
  166941. \fBPR\fP \fI\%#47162\fP: (\fI\%terminalmage\fP) Partial backport of \fI\%#47161\fP to 2018.3 branch
  166942. @ \fI2018\-04\-19 19:28:47 UTC\fP
  166943. .INDENT 2.0
  166944. .IP \(bu 2
  166945. \fBPR\fP \fI\%#47161\fP: (\fI\%terminalmage\fP) Fix failing pillar unit test (refs: \fI\%#47162\fP)
  166946. .IP \(bu 2
  166947. 291cca7ed8 Merge pull request \fI\%#47162\fP from terminalmage/bp\-47161
  166948. .IP \(bu 2
  166949. d185f97a47 mocked file_roots and pillar_roots should be dicts
  166950. .UNINDENT
  166951. .IP \(bu 2
  166952. \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)
  166953. .IP \(bu 2
  166954. \fBPR\fP \fI\%#47165\fP: (\fI\%terminalmage\fP) Make sure a str type is passed to os.walk
  166955. @ \fI2018\-04\-19 14:59:16 UTC\fP
  166956. .INDENT 2.0
  166957. .IP \(bu 2
  166958. 2ee8006da3 Merge pull request \fI\%#47165\fP from terminalmage/issue47081
  166959. .IP \(bu 2
  166960. 9e29acb477 Make sure a str type is passed to os.walk
  166961. .UNINDENT
  166962. .IP \(bu 2
  166963. \fBPR\fP \fI\%#47070\fP: (\fI\%terminalmage\fP) Use decorators for temp files/dirs in test suite
  166964. @ \fI2018\-04\-19 14:01:48 UTC\fP
  166965. .INDENT 2.0
  166966. .IP \(bu 2
  166967. 6257862bbb Merge pull request \fI\%#47070\fP from terminalmage/with_tempdir
  166968. .IP \(bu 2
  166969. 048728d2b7 Remove unused imports
  166970. .IP \(bu 2
  166971. 879c557264 Use decorators for temp files/dirs in test suite
  166972. .UNINDENT
  166973. .IP \(bu 2
  166974. \fBPR\fP \fI\%#47155\fP: (\fI\%mcalmer\fP) Fix patchinstall for yumpkg
  166975. @ \fI2018\-04\-18 19:24:17 UTC\fP
  166976. .INDENT 2.0
  166977. .IP \(bu 2
  166978. b46365614b Merge pull request \fI\%#47155\fP from mcalmer/fix\-patchinstall
  166979. .IP \(bu 2
  166980. 382afba457 fix invalid string compare
  166981. .IP \(bu 2
  166982. 8c19368938 provide kwargs to pkg_resource.parse_targets required to detect advisory type
  166983. .UNINDENT
  166984. .IP \(bu 2
  166985. \fBISSUE\fP \fI\%#47042\fP: (\fI\%valentin2105\fP) [ERROR] Unable to manage file: \(aqutf8\(aq codec can\(aqt decode byte (refs: \fI\%#47061\fP)
  166986. .IP \(bu 2
  166987. \fBPR\fP \fI\%#47061\fP: (\fI\%terminalmage\fP) Fix diffing binary files in file.get_diff (refs: \fI\%#47405\fP)
  166988. @ \fI2018\-04\-18 18:52:10 UTC\fP
  166989. .INDENT 2.0
  166990. .IP \(bu 2
  166991. 13ae1a2413 Merge pull request \fI\%#47061\fP from terminalmage/issue47042
  166992. .IP \(bu 2
  166993. 87f6cefea3 Rewrite flaky utf8 state to make it easier to troubleshoot
  166994. .IP \(bu 2
  166995. df6e535f05 Fix diffing binary files in file.get_diff
  166996. .UNINDENT
  166997. .IP \(bu 2
  166998. \fBPR\fP \fI\%#47058\fP: (\fI\%terminalmage\fP) Fix calls to file.lsattr when lsattr is not installed
  166999. @ \fI2018\-04\-18 16:30:12 UTC\fP
  167000. .INDENT 2.0
  167001. .IP \(bu 2
  167002. cba0f13cd9 Merge pull request \fI\%#47058\fP from terminalmage/lsattr
  167003. .IP \(bu 2
  167004. eeb067e910 Fix calls to file.lsattr when lsattr is not installed
  167005. .UNINDENT
  167006. .IP \(bu 2
  167007. \fBISSUE\fP \fI\%#46929\fP: (\fI\%noelmcloughlin\fP) 2018.3 regression file.managed.context parsing (refs: \fI\%#47104\fP)
  167008. .IP \(bu 2
  167009. \fBPR\fP \fI\%#47104\fP: (\fI\%terminalmage\fP) yamlloader: Properly handle colons in inline dicts
  167010. @ \fI2018\-04\-18 16:22:47 UTC\fP
  167011. .INDENT 2.0
  167012. .IP \(bu 2
  167013. b96ce23b3f Merge pull request \fI\%#47104\fP from terminalmage/issue46929
  167014. .IP \(bu 2
  167015. 33bf6643cd Add additional test for plain scalars
  167016. .IP \(bu 2
  167017. 508659b682 yamlloader: Properly handle colons in inline dicts
  167018. .UNINDENT
  167019. .IP \(bu 2
  167020. \fBISSUE\fP \fI\%#46887\fP: (\fI\%julientravelaer\fP) ldap.managed broken with 2018.3.0 (refs: \fI\%#47029\fP)
  167021. .IP \(bu 2
  167022. \fBISSUE\fP \fI\%#46859\fP: (\fI\%cheribral\fP) pillar_ldap causing TypeError exceptions in python\-ldap with unicode objects (refs: \fI\%#47029\fP)
  167023. .IP \(bu 2
  167024. \fBPR\fP \fI\%#47076\fP: (\fI\%terminalmage\fP) pillar_ldap: Load config options as str types
  167025. @ \fI2018\-04\-18 16:16:22 UTC\fP
  167026. .INDENT 2.0
  167027. .IP \(bu 2
  167028. \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)
  167029. .IP \(bu 2
  167030. c12697b173 Merge pull request \fI\%#47076\fP from terminalmage/issue46859
  167031. .IP \(bu 2
  167032. c06c859caf pillar_ldap: Load config options as str types
  167033. .UNINDENT
  167034. .IP \(bu 2
  167035. \fBPR\fP \fI\%#47107\fP: (\fI\%twangboy\fP) Fix issues with reg state, add tests
  167036. @ \fI2018\-04\-18 15:53:02 UTC\fP
  167037. .INDENT 2.0
  167038. .IP \(bu 2
  167039. 50bd885ec7 Merge pull request \fI\%#47107\fP from twangboy/fix_46932
  167040. .IP \(bu 2
  167041. ae8ab2ab1a Fix tests for py3, enable tearDown
  167042. .IP \(bu 2
  167043. 3cf4ac1475 Add integration tests for reg state
  167044. .IP \(bu 2
  167045. cc259b146f Cast vdata to appropriate type in reg state
  167046. .UNINDENT
  167047. .IP \(bu 2
  167048. \fBISSUE\fP \fI\%#46909\fP: (\fI\%epelc\fP) Binary \fIcontents_pillar\fP with file.managed raises UnicodeDecodeError (refs: \fI\%#47041\fP)
  167049. .IP \(bu 2
  167050. \fBPR\fP \fI\%#47041\fP: (\fI\%terminalmage\fP) Force null bytes to be str types
  167051. @ \fI2018\-04\-18 14:08:25 UTC\fP
  167052. .INDENT 2.0
  167053. .IP \(bu 2
  167054. d6c59696be Merge pull request \fI\%#47041\fP from terminalmage/issue46909
  167055. .IP \(bu 2
  167056. e4182715be Special check specifically for bytes types
  167057. .IP \(bu 2
  167058. ee90dd5d95 Merge branch \(aq2018.3\(aq into issue46909
  167059. .IP \(bu 2
  167060. 0e99343a7f Use the same way of defining contents in both file.managed states
  167061. .IP \(bu 2
  167062. 5741d287b5 Move back to using null byte check for contents
  167063. .IP \(bu 2
  167064. 8e214c9fa9 file.managed: Add test to ensure binary contents work
  167065. .IP \(bu 2
  167066. 7b7dc94610 Use salt.utils.stringutils.is_binary to check if contents are binary
  167067. .IP \(bu 2
  167068. e3c969da81 PY3: Ensure binary contents work with file.managed
  167069. .IP \(bu 2
  167070. 5d98a8bedd Make salt.utils.stringutils.to_binary work for bytestrings
  167071. .IP \(bu 2
  167072. 1024000369 Force null bytes to be str types
  167073. .UNINDENT
  167074. .IP \(bu 2
  167075. \fBPR\fP \fI\%#47007\fP: (\fI\%twangboy\fP) Fix some issues with the win_servermanager module
  167076. @ \fI2018\-04\-17 20:57:04 UTC\fP
  167077. .INDENT 2.0
  167078. .IP \(bu 2
  167079. 9a9f6524f8 Merge pull request \fI\%#47007\fP from twangboy/fix_46968
  167080. .IP \(bu 2
  167081. 432db7c6ec Lint: Remove unused import
  167082. .IP \(bu 2
  167083. 10341e8f8b Remove erroneous pop statement
  167084. .IP \(bu 2
  167085. 56582f293a Remove redundant try/except block from state\(ga
  167086. .IP \(bu 2
  167087. 6ad2427279 Remove unnecessary try/except blocks
  167088. .IP \(bu 2
  167089. 92eeaa51bd Put some error checking in the shell command
  167090. .UNINDENT
  167091. .IP \(bu 2
  167092. \fBISSUE\fP \fI\%#46943\fP: (\fI\%Auha\fP) Slack.Engine could not start (refs: \fI\%#47262\fP, \fI\%#47109\fP)
  167093. .IP \(bu 2
  167094. \fBPR\fP \fI\%#47109\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to Slack engine
  167095. @ \fI2018\-04\-17 13:56:27 UTC\fP
  167096. .INDENT 2.0
  167097. .IP \(bu 2
  167098. a52137ee36 Merge pull request \fI\%#47109\fP from garethgreenaway/46943_slack_engine_fixes
  167099. .IP \(bu 2
  167100. 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.
  167101. .UNINDENT
  167102. .IP \(bu 2
  167103. \fBPR\fP \fI\%#47045\fP: (\fI\%tankywoo\fP) Fix ba7d00f5 for gentoo pkg.installed method
  167104. @ \fI2018\-04\-17 13:55:45 UTC\fP
  167105. .INDENT 2.0
  167106. .IP \(bu 2
  167107. 6c16a34c44 Merge pull request \fI\%#47045\fP from tankywoo/fix\-gentoo\-pkg\-installed
  167108. .IP \(bu 2
  167109. 551f4e10cf Fix ba7d00f5 for gentoo pkg.installed
  167110. .UNINDENT
  167111. .IP \(bu 2
  167112. \fBPR\fP \fI\%#47053\fP: (\fI\%clan\fP) handle jinja error in <module> level
  167113. @ \fI2018\-04\-16 22:47:54 UTC\fP
  167114. .INDENT 2.0
  167115. .IP \(bu 2
  167116. 86c7cfef56 Merge pull request \fI\%#47053\fP from clan/jinja\-error
  167117. .IP \(bu 2
  167118. a847466946 handle jinja error in <module> level
  167119. .UNINDENT
  167120. .IP \(bu 2
  167121. \fBPR\fP \fI\%#47062\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167122. @ \fI2018\-04\-16 19:58:32 UTC\fP
  167123. .INDENT 2.0
  167124. .IP \(bu 2
  167125. 7bfa608e9f Merge pull request \fI\%#47062\fP from rallytime/merge\-2018.3
  167126. .IP \(bu 2
  167127. 59f5880e72 lint fix
  167128. .IP \(bu 2
  167129. 1ddf8c584b Update old utils files to new new utils files path
  167130. .IP \(bu 2
  167131. 28a79ebba4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167132. .INDENT 2.0
  167133. .IP \(bu 2
  167134. 1700a10ebe Merge pull request \fI\%#46326\fP from kstreee/fix\-client\-local
  167135. .INDENT 2.0
  167136. .IP \(bu 2
  167137. 0f358a9c9e Fixes a timing bug of saltnado\(aqs client local.
  167138. .UNINDENT
  167139. .IP \(bu 2
  167140. c3c00316c5 Merge pull request \fI\%#46913\fP from lomeroe/2017_7\-fix46877
  167141. .INDENT 2.0
  167142. .IP \(bu 2
  167143. 369a0645ed move exception for clarity
  167144. .IP \(bu 2
  167145. 32ce5bfda5 Use configparser serializer object to read psscript.ini and script.ini startup/shutdown script files.
  167146. .UNINDENT
  167147. .IP \(bu 2
  167148. 9e37cfc9d6 Merge pull request \fI\%#47025\fP from terminalmage/fix\-server_id\-windows
  167149. .INDENT 2.0
  167150. .IP \(bu 2
  167151. cb0cf89ed3 Fix server_id grain in PY3 on Windows
  167152. .UNINDENT
  167153. .IP \(bu 2
  167154. 2e193cfb45 Merge pull request \fI\%#47027\fP from rallytime/bp\-44508
  167155. .INDENT 2.0
  167156. .IP \(bu 2
  167157. 8e72f362f4 Add priority field to support the latest capirca.
  167158. .IP \(bu 2
  167159. 112f92baab Add priority field to support the latest capirca.
  167160. .UNINDENT
  167161. .IP \(bu 2
  167162. 385fe2bc1e Merge pull request \fI\%#47020\fP from rallytime/bp\-46970
  167163. .INDENT 2.0
  167164. .IP \(bu 2
  167165. 9373dff52b Update test_pkgrepo.py
  167166. .IP \(bu 2
  167167. 13cf9eb5b1 Removing debugging.
  167168. .IP \(bu 2
  167169. a61a8593e5 Removing suse from pkgrepo comments tests. the pkgrepo functions in SUSE pkg module do not support comments.
  167170. .UNINDENT
  167171. .UNINDENT
  167172. .UNINDENT
  167173. .IP \(bu 2
  167174. \fBPR\fP \fI\%#47066\fP: (\fI\%terminalmage\fP) Fix regression in handling of environment/saltenv
  167175. @ \fI2018\-04\-16 19:57:12 UTC\fP
  167176. .INDENT 2.0
  167177. .IP \(bu 2
  167178. fa27e64a33 Merge pull request \fI\%#47066\fP from terminalmage/issue46979
  167179. .IP \(bu 2
  167180. 5c4c0468ad Fix regression in handling of environment/saltenv
  167181. .UNINDENT
  167182. .IP \(bu 2
  167183. \fBPR\fP \fI\%#47051\fP: (\fI\%rallytime\fP) Simplify LooseVersion check in \fI__virtual__\fP check in mac_assistive module
  167184. @ \fI2018\-04\-13 19:43:33 UTC\fP
  167185. .INDENT 2.0
  167186. .IP \(bu 2
  167187. 8761b81a69 Merge pull request \fI\%#47051\fP from rallytime/fix\-lint
  167188. .IP \(bu 2
  167189. d52b3689d9 Simplify LooseVersion check in \fI__virtual__\fP check in mac_assistive module
  167190. .UNINDENT
  167191. .IP \(bu 2
  167192. \fBPR\fP \fI\%#47057\fP: (\fI\%corywright\fP) Fix copy/paste typo in minionfs tutorial
  167193. @ \fI2018\-04\-13 19:43:01 UTC\fP
  167194. .INDENT 2.0
  167195. .IP \(bu 2
  167196. bbb8018b55 Merge pull request \fI\%#47057\fP from corywright/fix\-minionfs\-whitelist\-docs
  167197. .IP \(bu 2
  167198. 9b7ee97d12 Fix copy/paste typo in minionfs tutorial
  167199. .UNINDENT
  167200. .IP \(bu 2
  167201. \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)
  167202. .IP \(bu 2
  167203. \fBPR\fP \fI\%#47046\fP: (\fI\%clan\fP) switch order of file to be diffed
  167204. @ \fI2018\-04\-13 13:40:13 UTC\fP
  167205. .INDENT 2.0
  167206. .IP \(bu 2
  167207. d5afa4a2c5 Merge pull request \fI\%#47046\fP from clan/file_diff
  167208. .IP \(bu 2
  167209. bb58605c54 switch order of file to be diffed
  167210. .UNINDENT
  167211. .IP \(bu 2
  167212. \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)
  167213. .IP \(bu 2
  167214. \fBPR\fP \fI\%#47048\fP: (\fI\%OrlandoArcapix\fP) Issue46985 fix grafana4 state (refs: \fI\%#47060\fP)
  167215. @ \fI2018\-04\-13 13:34:29 UTC\fP
  167216. .INDENT 2.0
  167217. .IP \(bu 2
  167218. ec9251ecd3 Merge pull request \fI\%#47048\fP from OrlandoArcapix/Issue46985\-fix\-grafana4\-state
  167219. .IP \(bu 2
  167220. 259d747414 Remove accidentally added copy of a file
  167221. .IP \(bu 2
  167222. 6c8c3da74d Return an empty dict instead of \(aqNone\(aq from grafana4 states
  167223. .UNINDENT
  167224. .IP \(bu 2
  167225. \fBPR\fP \fI\%#47017\fP: (\fI\%opdude\fP) Don’t encode a unicode string
  167226. @ \fI2018\-04\-13 13:31:33 UTC\fP
  167227. .INDENT 2.0
  167228. .IP \(bu 2
  167229. d8c4c221cf Merge pull request \fI\%#47017\fP from Unity\-Technologies/hotfix/pip_windows
  167230. .IP \(bu 2
  167231. 838670f626 Don’t encode a unicode string
  167232. .UNINDENT
  167233. .IP \(bu 2
  167234. \fBISSUE\fP \fI\%#46917\fP: (\fI\%boltronics\fP) mysql_grants.present broken with \fIdatabase: somedatabase.*\fP (refs: \fI\%#46919\fP)
  167235. .IP \(bu 2
  167236. \fBPR\fP \fI\%#47019\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46919\fP to 2018.3
  167237. @ \fI2018\-04\-12 19:43:01 UTC\fP
  167238. .INDENT 2.0
  167239. .IP \(bu 2
  167240. \fBPR\fP \fI\%#46919\fP: (\fI\%boltronics\fP) Replace failing is and is not tests with == and != (refs: \fI\%#47019\fP)
  167241. .IP \(bu 2
  167242. 5b7544eaa0 Merge pull request \fI\%#47019\fP from rallytime/bp\-46919
  167243. .IP \(bu 2
  167244. 6837d6c138 Replace failing is and is not tests with == and !=
  167245. .UNINDENT
  167246. .IP \(bu 2
  167247. \fBISSUE\fP \fI\%#46887\fP: (\fI\%julientravelaer\fP) ldap.managed broken with 2018.3.0 (refs: \fI\%#47029\fP)
  167248. .IP \(bu 2
  167249. \fBISSUE\fP \fI\%#46859\fP: (\fI\%cheribral\fP) pillar_ldap causing TypeError exceptions in python\-ldap with unicode objects (refs: \fI\%#47029\fP)
  167250. .IP \(bu 2
  167251. \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)
  167252. @ \fI2018\-04\-12 19:41:29 UTC\fP
  167253. .INDENT 2.0
  167254. .IP \(bu 2
  167255. ac2d54d78a Merge pull request \fI\%#47029\fP from terminalmage/issue46859
  167256. .IP \(bu 2
  167257. ab6314247b ldapmod.py/ldap3.py: Force modlist for search/modify/etc. to be str types
  167258. .IP \(bu 2
  167259. 7691dee4ed Add to_str option to decode funcs
  167260. .UNINDENT
  167261. .IP \(bu 2
  167262. \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)
  167263. .IP \(bu 2
  167264. \fBPR\fP \fI\%#46930\fP: (\fI\%dwoz\fP) Clean up bad public key headers
  167265. @ \fI2018\-04\-12 18:57:37 UTC\fP
  167266. .INDENT 2.0
  167267. .IP \(bu 2
  167268. e6e07720fa Merge pull request \fI\%#46930\fP from dwoz/crptodomekeyfix
  167269. .IP \(bu 2
  167270. f2e484ed54 Merge branch \(aq2018.3\(aq into crptodomekeyfix
  167271. .IP \(bu 2
  167272. e1995a92ee Fix verify signature test
  167273. .IP \(bu 2
  167274. 0ba32118d9 Add test for bad public key without m2crypto
  167275. .IP \(bu 2
  167276. a44c356233 Clean up bad public key headers
  167277. .UNINDENT
  167278. .IP \(bu 2
  167279. \fBISSUE\fP \fI\%#46951\fP: (\fI\%Giandom\fP) Slack engine error using aliases: TypeError unhashable type (refs: \fI\%#47008\fP)
  167280. .IP \(bu 2
  167281. \fBPR\fP \fI\%#47008\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing aliases in slack engine
  167282. @ \fI2018\-04\-12 15:24:40 UTC\fP
  167283. .INDENT 2.0
  167284. .IP \(bu 2
  167285. 0e43becc12 Merge pull request \fI\%#47008\fP from garethgreenaway/46951_fixing_slack_engine_aliases
  167286. .IP \(bu 2
  167287. dc2a72d44f Fixing aliases in slack engine
  167288. .UNINDENT
  167289. .IP \(bu 2
  167290. \fBISSUE\fP \fI\%#46947\fP: (\fI\%Giandom\fP) Slack engine groups error (refs: \fI\%#47009\fP)
  167291. .IP \(bu 2
  167292. \fBPR\fP \fI\%#47009\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to slack engine documentation
  167293. @ \fI2018\-04\-12 15:20:54 UTC\fP
  167294. .INDENT 2.0
  167295. .IP \(bu 2
  167296. c33de7c82d Merge pull request \fI\%#47009\fP from garethgreenaway/46947_slack_documentation_update_catch_non_dicts
  167297. .IP \(bu 2
  167298. f0fadbb4ce Fixing indention for slack documention. Updating try..except to ensure we catch when groups aren\(aqt dicts.
  167299. .UNINDENT
  167300. .IP \(bu 2
  167301. \fBPR\fP \fI\%#47023\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46997\fP to 2018.3
  167302. @ \fI2018\-04\-12 15:05:24 UTC\fP
  167303. .INDENT 2.0
  167304. .IP \(bu 2
  167305. \fBPR\fP \fI\%#46997\fP: (\fI\%LukeCarrier\fP) Fix respository (=> repository) typo in sls_build (refs: \fI\%#47023\fP)
  167306. .IP \(bu 2
  167307. \fBPR\fP \fI\%#44638\fP: (\fI\%terminalmage\fP) Many improvements to docker network and container states (refs: \fI\%#46997\fP)
  167308. .IP \(bu 2
  167309. 68d17c71f1 Merge pull request \fI\%#47023\fP from rallytime/bp\-46997
  167310. .IP \(bu 2
  167311. c2c60f4ffc Fix respository (=> repository) typo in sls_build
  167312. .UNINDENT
  167313. .IP \(bu 2
  167314. \fBPR\fP \fI\%#47026\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167315. @ \fI2018\-04\-12 14:39:41 UTC\fP
  167316. .INDENT 2.0
  167317. .IP \(bu 2
  167318. 9cf3c6406a Merge pull request \fI\%#47026\fP from rallytime/merge\-2018.3
  167319. .IP \(bu 2
  167320. ba70df9d62 Use msgpack utils for loads call, import msgpack for UnpackValueError
  167321. .IP \(bu 2
  167322. 34a478dfe5 Update old fopen path with new utils files path
  167323. .IP \(bu 2
  167324. 590c7fc13f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167325. .INDENT 2.0
  167326. .IP \(bu 2
  167327. 8f994e7cf9 Merge pull request \fI\%#46539\fP from jfoboss/patch\-1
  167328. .INDENT 2.0
  167329. .IP \(bu 2
  167330. 6890122e41 Merge pull request \fI\%#1\fP from twangboy/pull_46539
  167331. .INDENT 2.0
  167332. .IP \(bu 2
  167333. 19c3fadbe5 Fix unit test for win_ntp
  167334. .UNINDENT
  167335. .IP \(bu 2
  167336. 826a8d3099 Fixing \fI\%#46504\fP
  167337. .UNINDENT
  167338. .IP \(bu 2
  167339. 74d70e95a5 Merge pull request \fI\%#46999\fP from gtmanfred/2017.7
  167340. .INDENT 2.0
  167341. .IP \(bu 2
  167342. 791af8f6ce switch pip test package
  167343. .UNINDENT
  167344. .IP \(bu 2
  167345. 8adaf7f526 Merge pull request \fI\%#46023\fP from bloomberg/parallel\-orch
  167346. .INDENT 2.0
  167347. .IP \(bu 2
  167348. 0ac0b3ca29 Merge branch \(aq2017.7\(aq into parallel\-orch
  167349. .UNINDENT
  167350. .IP \(bu 2
  167351. 39d65a39cf Merge pull request \fI\%#46613\fP from myinitialsarepm/fix_puppet.fact_and_puppet.facts
  167352. .INDENT 2.0
  167353. .IP \(bu 2
  167354. 44ecd13abc Update tests to use cmd.run_all
  167355. .IP \(bu 2
  167356. 7d7d40f541 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  167357. .IP \(bu 2
  167358. 0ce1520bd0 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  167359. .IP \(bu 2
  167360. 69e1f6f681 Fix puppet.fact and puppet.facts to use stdout.
  167361. .INDENT 2.0
  167362. .INDENT 3.5
  167363. .INDENT 0.0
  167364. .IP \(bu 2
  167365. 3d5e69600b address lint issues raised by @isbm
  167366. .IP \(bu 2
  167367. a9866c7a03 fix parallel mode py3 compatibility
  167368. .IP \(bu 2
  167369. 6d7730864a removing prereq from test orch
  167370. .IP \(bu 2
  167371. 6c8a25778f add integration test to runners/test_state to exercise parallel
  167372. .IP \(bu 2
  167373. 2c86f16b39 cherry\-pick cdata KeyError prevention from \fI\%#39832\fP
  167374. .IP \(bu 2
  167375. 26a96e8933 record start/stop duration for parallel processes separately
  167376. .IP \(bu 2
  167377. e4844bdf2b revisit previous join() behavior in check_requisites
  167378. .IP \(bu 2
  167379. f00a359cdf join() parallel process instead of a recursive sleep
  167380. .IP \(bu 2
  167381. 6e7007a4dc add parallel support for orchestrations
  167382. .UNINDENT
  167383. .UNINDENT
  167384. .UNINDENT
  167385. .UNINDENT
  167386. .UNINDENT
  167387. .UNINDENT
  167388. .IP \(bu 2
  167389. \fBPR\fP \fI\%#47021\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.modules.test_state_jinja_filters.StateModuleJinjaFiltersTest.test_path_which
  167390. @ \fI2018\-04\-12 13:12:39 UTC\fP
  167391. .INDENT 2.0
  167392. .IP \(bu 2
  167393. d3be828696 Merge pull request \fI\%#47021\fP from garethgreenaway/920_state_module_jinja_filters_test_test_path_which
  167394. .IP \(bu 2
  167395. 2ccf2c5fe0 Fixing test_path_which to check that the filter is available rather than results.
  167396. .UNINDENT
  167397. .IP \(bu 2
  167398. \fBPR\fP \fI\%#47022\fP: (\fI\%corywright\fP) Add auth.file module to auth documentation page
  167399. @ \fI2018\-04\-11 21:11:10 UTC\fP
  167400. .INDENT 2.0
  167401. .IP \(bu 2
  167402. 66e8445b82 Merge pull request \fI\%#47022\fP from corywright/add\-auth\-file\-module\-to\-docs
  167403. .IP \(bu 2
  167404. bd0918fc40 Add auth.file module to auth documentation page
  167405. .UNINDENT
  167406. .IP \(bu 2
  167407. \fBPR\fP \fI\%#45774\fP: (\fI\%twangboy\fP) Fix __virtual__ issue in mac_system.py
  167408. @ \fI2018\-04\-11 14:26:13 UTC\fP
  167409. .INDENT 2.0
  167410. .IP \(bu 2
  167411. 12ecfdee93 Merge pull request \fI\%#45774\fP from twangboy/mac_add_service_util
  167412. .IP \(bu 2
  167413. 5796696617 Fix tests for Py3
  167414. .IP \(bu 2
  167415. 7b40218790 Fix lint, remove sentence from docstring
  167416. .IP \(bu 2
  167417. 781880f0fc Add _available_services function for testing
  167418. .IP \(bu 2
  167419. 6080633613 Add assert_called_with
  167420. .IP \(bu 2
  167421. 1bf70b2033 Add more tests for available_services
  167422. .IP \(bu 2
  167423. b429fc3e74 Add tests for mac_utils
  167424. .IP \(bu 2
  167425. b5f67130cc Used *args and **kwargs
  167426. .IP \(bu 2
  167427. ed061617a2 Fix unicode_literal issue in mac_assistive
  167428. .IP \(bu 2
  167429. 82e17e5fc8 Fix args/kwargs
  167430. .IP \(bu 2
  167431. 455146500a Move some functions into mac_utils
  167432. .IP \(bu 2
  167433. 125586264b Add utilsmac_service.py
  167434. .UNINDENT
  167435. .IP \(bu 2
  167436. \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)
  167437. .IP \(bu 2
  167438. \fBPR\fP \fI\%#47012\fP: (\fI\%terminalmage\fP) Azure: ensure subscription_id is a str type
  167439. @ \fI2018\-04\-11 13:57:08 UTC\fP
  167440. .INDENT 2.0
  167441. .IP \(bu 2
  167442. 79347f108a Merge pull request \fI\%#47012\fP from terminalmage/issue46953
  167443. .IP \(bu 2
  167444. 5192622a32 Azure: ensure subscription_id is a str type
  167445. .UNINDENT
  167446. .IP \(bu 2
  167447. \fBPR\fP \fI\%#46526\fP: (\fI\%Ch3LL\fP) Add tests for new source_* minion options
  167448. @ \fI2018\-04\-10 19:56:45 UTC\fP
  167449. .INDENT 2.0
  167450. .IP \(bu 2
  167451. 6503bf8dfa Merge pull request \fI\%#46526\fP from Ch3LL/ip_conf
  167452. .IP \(bu 2
  167453. c01180ff47 Patch ZMQ versions for master_uri test
  167454. .IP \(bu 2
  167455. da38f332a5 Change comment and salt.utils.network import
  167456. .IP \(bu 2
  167457. e972ebdf1a Add for new source_* minion options
  167458. .UNINDENT
  167459. .IP \(bu 2
  167460. \fBPR\fP \fI\%#46993\fP: (\fI\%L4rS6\fP) Fix: tuple instead of string
  167461. @ \fI2018\-04\-10 17:07:59 UTC\fP
  167462. .INDENT 2.0
  167463. .IP \(bu 2
  167464. 03907d3fce Merge pull request \fI\%#46993\fP from L4rS6/fix\-broken\-keystone\-auth/2018.3
  167465. .IP \(bu 2
  167466. e33ba1b3d5 Fix: tuple instead of string
  167467. .UNINDENT
  167468. .IP \(bu 2
  167469. \fBPR\fP \fI\%#46990\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167470. @ \fI2018\-04\-10 17:07:33 UTC\fP
  167471. .INDENT 2.0
  167472. .IP \(bu 2
  167473. ffaee26540 Merge pull request \fI\%#46990\fP from rallytime/merge\-2018.3
  167474. .IP \(bu 2
  167475. ccc5bad2df Merge branch \(aq2017.7\(aq into merge\-2018.3
  167476. .INDENT 2.0
  167477. .IP \(bu 2
  167478. ba5421d988 Merge pull request \fI\%#46991\fP from gtmanfred/windows
  167479. .INDENT 2.0
  167480. .IP \(bu 2
  167481. 98588c1dc5 use saltstack salt\-jenkins
  167482. .UNINDENT
  167483. .UNINDENT
  167484. .IP \(bu 2
  167485. 2f1cf3e511 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167486. .INDENT 2.0
  167487. .IP \(bu 2
  167488. 00c4067585 Merge pull request \fI\%#46975\fP from gtmanfred/windows
  167489. .INDENT 2.0
  167490. .IP \(bu 2
  167491. 1f69c0d7f8 make sure windows outputs xml junit files
  167492. .IP \(bu 2
  167493. 4a2ec1bbb3 support new versions of winrm\-fs
  167494. .IP \(bu 2
  167495. b9efec8526 remove libnacl on windows
  167496. .IP \(bu 2
  167497. 2edd5eaf9e fix path
  167498. .IP \(bu 2
  167499. b03e272e44 windows work
  167500. .UNINDENT
  167501. .IP \(bu 2
  167502. 3cf2353e41 Merge pull request \fI\%#46945\fP from vutny/doc\-faq\-fix\-jinja
  167503. .INDENT 2.0
  167504. .IP \(bu 2
  167505. bfdf54e61d [DOC] Fix Jinja block in FAQ page
  167506. .UNINDENT
  167507. .IP \(bu 2
  167508. fc2f728665 Merge pull request \fI\%#46925\fP from terminalmage/fix\-file.patch\-docstring
  167509. .INDENT 2.0
  167510. .IP \(bu 2
  167511. 97695657f0 Remove reference to directory support in file.patch state
  167512. .UNINDENT
  167513. .IP \(bu 2
  167514. eef6c518e1 Merge pull request \fI\%#46900\fP from rallytime/bp\-46801
  167515. .INDENT 2.0
  167516. .IP \(bu 2
  167517. 6a41e8b457 rename jenkins to jenkinsmod
  167518. .UNINDENT
  167519. .IP \(bu 2
  167520. 71839b0303 Merge pull request \fI\%#46899\fP from rallytime/bp\-45116
  167521. .INDENT 2.0
  167522. .IP \(bu 2
  167523. b92f908da4 fix adding parameters to http.query from sdb yaml
  167524. .UNINDENT
  167525. .UNINDENT
  167526. .UNINDENT
  167527. .IP \(bu 2
  167528. \fBPR\fP \fI\%#46339\fP: (\fI\%DmitryKuzmenko\fP) SSH State test failures
  167529. @ \fI2018\-04\-10 17:06:51 UTC\fP
  167530. .INDENT 2.0
  167531. .IP \(bu 2
  167532. a34b92ae82 Merge pull request \fI\%#46339\fP from DSRCorporation/bugs/ssh_state_test_failures
  167533. .IP \(bu 2
  167534. bd98c49dc7 Merge branch \(aq2018.3\(aq into bugs/ssh_state_test_failures
  167535. .IP \(bu 2
  167536. 6fdc458a7f Increase timeout for run_run in ShellCase
  167537. .IP \(bu 2
  167538. 8e60cccdfb Give background task more chance to start.
  167539. .IP \(bu 2
  167540. e0b6878fac One more useful assert for better test results.
  167541. .IP \(bu 2
  167542. 92a6c43c73 More logging and assertion fixes. Extended ssh ops timeout.
  167543. .IP \(bu 2
  167544. 6ebdd17ac4 Advanced logging in the failing SSH State tests.
  167545. .UNINDENT
  167546. .IP \(bu 2
  167547. \fBPR\fP \fI\%#46989\fP: (\fI\%Ch3LL\fP) Fix redis cache log debug line
  167548. @ \fI2018\-04\-10 16:35:12 UTC\fP
  167549. .INDENT 2.0
  167550. .IP \(bu 2
  167551. 9924100c44 Merge pull request \fI\%#46989\fP from Ch3LL/redis_log
  167552. .IP \(bu 2
  167553. 6160bc06c6 Fix redis cache log debug line
  167554. .UNINDENT
  167555. .IP \(bu 2
  167556. \fBISSUE\fP \fI\%#46834\fP: (\fI\%oeuftete\fP) strftime filter not found in 2018.3.0 (refs: \fI\%#46848\fP)
  167557. .IP \(bu 2
  167558. \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)
  167559. .IP \(bu 2
  167560. \fBPR\fP \fI\%#46848\fP: (\fI\%garethgreenaway\fP) [2018.8] salt\-ssh jinja filters tests
  167561. @ \fI2018\-04\-10 16:19:51 UTC\fP
  167562. .INDENT 2.0
  167563. .IP \(bu 2
  167564. c6431936cb Merge pull request \fI\%#46848\fP from garethgreenaway/testing_jinja_filters_avaiable_via_salt_ssh
  167565. .IP \(bu 2
  167566. 5fcda3eff8 Merge branch \(aq2018.3\(aq into testing_jinja_filters_avaiable_via_salt_ssh
  167567. .IP \(bu 2
  167568. 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.
  167569. .IP \(bu 2
  167570. f3f42146ca Removing expected from strftime and hashsum tests since the results are always different and we are only concerned about the filter being available.
  167571. .IP \(bu 2
  167572. 860234c045 Fixing lint.
  167573. .IP \(bu 2
  167574. 0891c6b580 fixing docstring
  167575. .IP \(bu 2
  167576. c8945e4b2e cleaning up some imports.
  167577. .IP \(bu 2
  167578. 0599759e5b cleaning up some test doc strings.
  167579. .IP \(bu 2
  167580. 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.
  167581. .IP \(bu 2
  167582. 07d7e3ca01 Adding a new integration test and corresponding state files to test availabilty of jinja filters when using salt\-ssh.
  167583. .UNINDENT
  167584. .IP \(bu 2
  167585. \fBISSUE\fP \fI\%#46880\fP: (\fI\%liquidgecka\fP) rabbitmq_policy broken in 2018.3.0 (refs: \fI\%#46973\fP)
  167586. .IP \(bu 2
  167587. \fBPR\fP \fI\%#46973\fP: (\fI\%rallytime\fP) New "apply_to" kwarg in rabbitmq module should be added at the end
  167588. @ \fI2018\-04\-10 14:42:32 UTC\fP
  167589. .INDENT 2.0
  167590. .IP \(bu 2
  167591. \fBPR\fP \fI\%#41233\fP: (\fI\%dnABic\fP) added parameter apply_to for rabbitmq policy (refs: \fI\%#46973\fP)
  167592. .IP \(bu 2
  167593. fbbcb7584c Merge pull request \fI\%#46973\fP from rallytime/fix\-46880
  167594. .IP \(bu 2
  167595. 8ce21f982c New "apply_to" kwarg in rabbitmq module should be added at the end
  167596. .UNINDENT
  167597. .IP \(bu 2
  167598. \fBISSUE\fP \fI\%#46934\fP: (\fI\%d601\fP) GPG encrypted binary data in pillars breaks in 2018.3.0 (refs: \fI\%#46966\fP)
  167599. .IP \(bu 2
  167600. \fBPR\fP \fI\%#46966\fP: (\fI\%terminalmage\fP) Fix traceback when attempting to decode binary data to unicode
  167601. @ \fI2018\-04\-10 14:08:35 UTC\fP
  167602. .INDENT 2.0
  167603. .IP \(bu 2
  167604. 58f59cfbff Merge pull request \fI\%#46966\fP from terminalmage/issue46934
  167605. .IP \(bu 2
  167606. df43ffdb8f salt.payload.Serial: fix traceback when unpacking binary blob
  167607. .IP \(bu 2
  167608. 40a49358c9 gpg renderer: fix tranceback when decrypted ciphertext contains binary data
  167609. .IP \(bu 2
  167610. 17a88f6a71 Include exc_info in pillar render errors to aid in troubleshooting
  167611. .UNINDENT
  167612. .IP \(bu 2
  167613. \fBISSUE\fP \fI\%#46881\fP: (\fI\%SynPrime\fP) Cron.file \- source file not found (refs: \fI\%#46944\fP)
  167614. .IP \(bu 2
  167615. \fBPR\fP \fI\%#46944\fP: (\fI\%garethgreenaway\fP) [2018.3] cron.file with salt source URL
  167616. @ \fI2018\-04\-10 13:34:03 UTC\fP
  167617. .INDENT 2.0
  167618. .IP \(bu 2
  167619. e33e792e2a Merge pull request \fI\%#46944\fP from garethgreenaway/46881_Cron_file_source_file_not_found
  167620. .IP \(bu 2
  167621. 438aafeb03 Adding kwargs to calls into file module functions
  167622. .IP \(bu 2
  167623. 14d12b1d6b Remove unused imports. Gating tests so they do not run on Windows
  167624. .IP \(bu 2
  167625. 623d96f21a Adding dummy cron file for integration/states/test_cron
  167626. .IP \(bu 2
  167627. c8e01871d6 Adding an integration test to test cron.file.
  167628. .IP \(bu 2
  167629. ddc55d8f9b Fixing bug that made cron.file unable to use a file via a Salt URL.
  167630. .UNINDENT
  167631. .IP \(bu 2
  167632. \fBPR\fP \fI\%#46937\fP: (\fI\%gtmanfred\fP) enable_ssh_minions does not work with subset yet
  167633. @ \fI2018\-04\-07 02:54:56 UTC\fP
  167634. .INDENT 2.0
  167635. .IP \(bu 2
  167636. 08e8782f76 Merge pull request \fI\%#46937\fP from gtmanfred/2018.3
  167637. .IP \(bu 2
  167638. 3fb75e903c enable_ssh_minions does not work with subset yet
  167639. .UNINDENT
  167640. .IP \(bu 2
  167641. \fBPR\fP \fI\%#46936\fP: (\fI\%gtmanfred\fP) don\(aqt copy __pycache__ or .pyc files for kitchen
  167642. @ \fI2018\-04\-06 19:15:46 UTC\fP
  167643. .INDENT 2.0
  167644. .IP \(bu 2
  167645. ac4e7cd73f Merge pull request \fI\%#46936\fP from gtmanfred/2018.3
  167646. .IP \(bu 2
  167647. 91474878fa don\(aqt copy __pycache__ or .pyc files for kitchen
  167648. .UNINDENT
  167649. .IP \(bu 2
  167650. \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)
  167651. .IP \(bu 2
  167652. \fBPR\fP \fI\%#46912\fP: (\fI\%gtmanfred\fP) pull latest vm data after building for openstack shade driver
  167653. @ \fI2018\-04\-06 13:46:42 UTC\fP
  167654. .INDENT 2.0
  167655. .IP \(bu 2
  167656. 8105fd9715 Merge pull request \fI\%#46912\fP from gtmanfred/openstack
  167657. .IP \(bu 2
  167658. 5ef538f8ad pull latest vm data after building for openstack shade driver
  167659. .UNINDENT
  167660. .IP \(bu 2
  167661. \fBPR\fP \fI\%#46908\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167662. @ \fI2018\-04\-05 21:27:03 UTC\fP
  167663. .INDENT 2.0
  167664. .IP \(bu 2
  167665. 735ea12960 Merge pull request \fI\%#46908\fP from rallytime/merge\-2018.3
  167666. .IP \(bu 2
  167667. 102e966512 Remove redundant section in log setup
  167668. .IP \(bu 2
  167669. 177c686b52 Update old utils paths to new utils paths
  167670. .IP \(bu 2
  167671. 0a297e7319 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167672. .INDENT 2.0
  167673. .IP \(bu 2
  167674. d0f5b43753 Merge pull request \fI\%#44926\fP from frogunder/whitelisted_acl
  167675. .INDENT 2.0
  167676. .IP \(bu 2
  167677. 18e460fc30 Merge branch \(aq2017.7\(aq into whitelisted_acl
  167678. .IP \(bu 2
  167679. 1ad4d7d988 fix assert errors
  167680. .IP \(bu 2
  167681. e6a56016df update test
  167682. .IP \(bu 2
  167683. 19a2244cb7 whitelist_acl_test
  167684. .UNINDENT
  167685. .IP \(bu 2
  167686. 7d822f9cec Merge pull request \fI\%#46464\fP from gtmanfred/orchestration
  167687. .INDENT 2.0
  167688. .IP \(bu 2
  167689. 637cdc6b7b fix pylint
  167690. .IP \(bu 2
  167691. 0151013ddb document \fIcli\fP option for cmd_subset
  167692. .IP \(bu 2
  167693. 4a3ed6607d add test for subset in orchestration
  167694. .IP \(bu 2
  167695. 3112359dd6 fix salt subset in orchestrator
  167696. .UNINDENT
  167697. .IP \(bu 2
  167698. 805ed1c964 Merge pull request \fI\%#46879\fP from dwoz/cloudtestfix
  167699. .INDENT 2.0
  167700. .IP \(bu 2
  167701. dc54fc53c3 Fix multiple typos causing tests to fail
  167702. .UNINDENT
  167703. .IP \(bu 2
  167704. f70f6de282 Merge pull request \fI\%#46647\fP from twangboy/win_fix_test_grains
  167705. .INDENT 2.0
  167706. .IP \(bu 2
  167707. c179388b0e Fix the tear down function in integration.modules.test_grains.GrainsAppendTestCase
  167708. .UNINDENT
  167709. .IP \(bu 2
  167710. 91c078ce12 Merge pull request \fI\%#46756\fP from nages13/bugfix\-grain\-virtual_subtype
  167711. .INDENT 2.0
  167712. .IP \(bu 2
  167713. 781f5030a4 Merge branch \(aqbugfix\-grain\-virtual_subtype\(aq of \fI\%https://github.com/nages13/salt\fP into bugfix\-grain\-virtual_subtype
  167714. .INDENT 2.0
  167715. .IP \(bu 2
  167716. cd1ac4b7f9 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167717. .IP \(bu 2
  167718. 0ace76c0e7 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167719. .IP \(bu 2
  167720. 9eb6f5c0d0 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167721. .IP \(bu 2
  167722. 73d6d9d365 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167723. .IP \(bu 2
  167724. a4a17eba6a Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167725. .IP \(bu 2
  167726. bf5034dbdb Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167727. .IP \(bu 2
  167728. 8d12770951 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167729. .UNINDENT
  167730. .IP \(bu 2
  167731. 7e704c0e81 Moved down container check code below hypervisors to validate containers type running in virtual environment. Fixes \fI\%#46754\fP & \fI\%#43405\fP
  167732. .IP \(bu 2
  167733. 710f74c4a6 fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  167734. .UNINDENT
  167735. .IP \(bu 2
  167736. 058bbed221 Merge pull request \fI\%#46799\fP from garethgreenaway/46762_prereq_shenanigans_tests
  167737. .INDENT 2.0
  167738. .IP \(bu 2
  167739. 13875e78cf Fixing documention string for test.
  167740. .IP \(bu 2
  167741. 3d288c44d4 Fixing test documentation
  167742. .IP \(bu 2
  167743. 6cff02ef6a Adding tests for \fI\%#46788\fP
  167744. .UNINDENT
  167745. .IP \(bu 2
  167746. d9770bf3f8 Merge pull request \fI\%#46867\fP from terminalmage/unicode\-logging\-normalization
  167747. .INDENT 2.0
  167748. .IP \(bu 2
  167749. 7652688e83 Backport string arg normalization to 2017.7 branch
  167750. .UNINDENT
  167751. .IP \(bu 2
  167752. 9eb98b1f6e Merge pull request \fI\%#46770\fP from twangboy/fix_46433
  167753. .INDENT 2.0
  167754. .IP \(bu 2
  167755. 89af0a6222 Merge branch \(aq2017.7\(aq into fix_46433
  167756. .IP \(bu 2
  167757. 67b4697578 Remove unused import (ling)
  167758. .IP \(bu 2
  167759. 9302fa5ab0 Clean up code comments
  167760. .IP \(bu 2
  167761. b383b9b330 Change the order of SID Lookup
  167762. .UNINDENT
  167763. .IP \(bu 2
  167764. 9c776cffb7 Merge pull request \fI\%#46839\fP from gtmanfred/tupletarget
  167765. .INDENT 2.0
  167766. .IP \(bu 2
  167767. 3b7208ce27 match tuple for targets as well
  167768. .UNINDENT
  167769. .IP \(bu 2
  167770. 7db251dc11 Merge pull request \fI\%#46845\fP from rallytime/bp\-46817
  167771. .INDENT 2.0
  167772. .IP \(bu 2
  167773. 36a0f6d8ca address filehandle/event leak in async run_job invocations
  167774. .UNINDENT
  167775. .IP \(bu 2
  167776. e3d17ab7bc Merge pull request \fI\%#46847\fP from dwoz/missing\-strdup
  167777. .INDENT 2.0
  167778. .IP \(bu 2
  167779. 55845f4846 strdup from libc is not available on windows
  167780. .UNINDENT
  167781. .IP \(bu 2
  167782. f2dd79f9c4 Merge pull request \fI\%#46776\fP from gtmanfred/2017.7
  167783. .INDENT 2.0
  167784. .IP \(bu 2
  167785. edc1059ee0 fix shrinking list in for loop bug
  167786. .UNINDENT
  167787. .UNINDENT
  167788. .UNINDENT
  167789. .IP \(bu 2
  167790. \fBPR\fP \fI\%#46853\fP: (\fI\%terminalmage\fP) Add back date_format filter
  167791. @ \fI2018\-04\-05 20:33:50 UTC\fP
  167792. .INDENT 2.0
  167793. .IP \(bu 2
  167794. 9a47afc33b Merge pull request \fI\%#46853\fP from terminalmage/date_format_filter
  167795. .IP \(bu 2
  167796. 266d13a665 Add back date_format filter
  167797. .UNINDENT
  167798. .IP \(bu 2
  167799. \fBPR\fP \fI\%#46882\fP: (\fI\%jasperla\fP) Backport \fI\%#46280\fP \fI\%#46849\fP \fI\%#46852\fP to 2018.3
  167800. @ \fI2018\-04\-05 14:29:12 UTC\fP
  167801. .INDENT 2.0
  167802. .IP \(bu 2
  167803. \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)
  167804. .IP \(bu 2
  167805. \fBPR\fP \fI\%#46849\fP: (\fI\%jasperla\fP) Unbreak creating etherstubs on SmartOS (refs: \fI\%#46882\fP)
  167806. .IP \(bu 2
  167807. \fBPR\fP \fI\%#46280\fP: (\fI\%jasperla\fP) Remove unneeded checks for binaries in SmartOS modules (refs: \fI\%#46882\fP)
  167808. .IP \(bu 2
  167809. a064a3e695 Merge pull request \fI\%#46882\fP from jasperla/smartos/backports
  167810. .IP \(bu 2
  167811. 47a66975ff fix creating a nic tag on a link with double 0 in the MAC
  167812. .IP \(bu 2
  167813. a3cb0e576e Unbreak creating etherstubs on SmartOS
  167814. .IP \(bu 2
  167815. e703254990 Remove unneeded checks for binaries in SmartOS modules
  167816. .UNINDENT
  167817. .IP \(bu 2
  167818. \fBPR\fP \fI\%#46873\fP: (\fI\%terminalmage\fP) Attempt UTF\-8 first when decoding/encoding
  167819. @ \fI2018\-04\-05 14:16:28 UTC\fP
  167820. .INDENT 2.0
  167821. .IP \(bu 2
  167822. 4e5e291c99 Merge pull request \fI\%#46873\fP from terminalmage/utf8\-first
  167823. .IP \(bu 2
  167824. cf28eb74aa Don\(aqt log command when output_loglevel == \(aqquiet\(aq
  167825. .IP \(bu 2
  167826. f59cee28db Remove hacky workarounds to get encode/decode tests to pass on Windows
  167827. .IP \(bu 2
  167828. 76e5d81bb4 Remove hacky workaround to get Windows to decode deserialized data properly
  167829. .IP \(bu 2
  167830. 0b5729e58a Remove hacky workaround to get git state/exec module to work properly on Windows
  167831. .IP \(bu 2
  167832. 22ff48518f Attempt UTF\-8 first when decoding/encoding
  167833. .UNINDENT
  167834. .IP \(bu 2
  167835. \fBISSUE\fP \fI\%#43499\fP: (\fI\%tyeapple\fP) zmq setsockopt need to adapt python3 (refs: \fI\%#46874\fP)
  167836. .IP \(bu 2
  167837. \fBPR\fP \fI\%#46878\fP: (\fI\%terminalmage\fP) Backport \fI\%#46874\fP to 2018.3
  167838. @ \fI2018\-04\-05 13:26:04 UTC\fP
  167839. .INDENT 2.0
  167840. .IP \(bu 2
  167841. \fBPR\fP \fI\%#46874\fP: (\fI\%johnj\fP) Use bytestrings for PY3 compatibility when running setsockopt for zmq.SUBSCRIBE (refs: \fI\%#46878\fP)
  167842. .IP \(bu 2
  167843. 1518762465 Merge pull request \fI\%#46878\fP from terminalmage/bp\-46874
  167844. .IP \(bu 2
  167845. d9511d04d4 \fI\%#43499\fP, zmq setsockopt need to adapt python3
  167846. .UNINDENT
  167847. .IP \(bu 2
  167848. \fBISSUE\fP \fI\%#46862\fP: (\fI\%kivoli\fP) Setting locale.system fails in 2018.3 (refs: \fI\%#47280\fP, \fI\%#46869\fP)
  167849. .IP \(bu 2
  167850. \fBPR\fP \fI\%#46869\fP: (\fI\%gtmanfred\fP) Always return dictionary for _localectl_status
  167851. @ \fI2018\-04\-05 13:25:14 UTC\fP
  167852. .INDENT 2.0
  167853. .IP \(bu 2
  167854. 67894e3ee9 Merge pull request \fI\%#46869\fP from gtmanfred/2018.3
  167855. .IP \(bu 2
  167856. 1496e985f7 fix pylint
  167857. .IP \(bu 2
  167858. 75425dfd20 fix tests for localemod
  167859. .IP \(bu 2
  167860. 2d7c7b5e33 Always return dictionary for _localectl_status
  167861. .UNINDENT
  167862. .IP \(bu 2
  167863. \fBPR\fP \fI\%#46870\fP: (\fI\%mirceaulinic\fP) Correct the documentation for two new proxy modules
  167864. @ \fI2018\-04\-04 21:48:41 UTC\fP
  167865. .INDENT 2.0
  167866. .IP \(bu 2
  167867. 58c8ff18e2 Merge pull request \fI\%#46870\fP from cloudflare/proxy\-doc
  167868. .IP \(bu 2
  167869. f4b6184476 Corect and add the cimc proxy module to autodoc
  167870. .IP \(bu 2
  167871. a99bc202b9 Correct & add Panos to autodoc
  167872. .UNINDENT
  167873. .IP \(bu 2
  167874. \fBPR\fP \fI\%#46729\fP: (\fI\%terminalmage\fP) Performance improvement/error catching in expr_match
  167875. @ \fI2018\-04\-04 20:25:57 UTC\fP
  167876. .INDENT 2.0
  167877. .IP \(bu 2
  167878. d7e4b9d755 Merge pull request \fI\%#46729\fP from terminalmage/expr_match
  167879. .IP \(bu 2
  167880. 70cfafe299 Add test case
  167881. .IP \(bu 2
  167882. 250039b11f Restore original variable name
  167883. .IP \(bu 2
  167884. ae0f112a49 Log an exception when non\-string val/expr passed to expr_match
  167885. .IP \(bu 2
  167886. dac42a672b Performance improvement/error catching in expr_match
  167887. .UNINDENT
  167888. .IP \(bu 2
  167889. \fBPR\fP \fI\%#46872\fP: (\fI\%terminalmage\fP) Backport \fI\%#46863\fP to 2018.3
  167890. @ \fI2018\-04\-04 19:04:40 UTC\fP
  167891. .INDENT 2.0
  167892. .IP \(bu 2
  167893. \fBPR\fP \fI\%#46863\fP: (\fI\%TamCore\fP) fixed top function which was broken since commit 002aa88a97e (refs: \fI\%#46872\fP)
  167894. .IP \(bu 2
  167895. e0b383afb5 Merge pull request \fI\%#46872\fP from terminalmage/bp\-46863
  167896. .IP \(bu 2
  167897. be284e5b99 Add skipIf when older mock present
  167898. .IP \(bu 2
  167899. db8faaee56 Add unit tests for ext_nodes master_tops module
  167900. .IP \(bu 2
  167901. ee437f7cbf fixed top function which was broken since commit 002aa88a97e
  167902. .UNINDENT
  167903. .IP \(bu 2
  167904. \fBPR\fP \fI\%#46850\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167905. @ \fI2018\-04\-04 18:07:44 UTC\fP
  167906. .INDENT 2.0
  167907. .IP \(bu 2
  167908. 5c76d98d1a Merge pull request \fI\%#46850\fP from rallytime/merge\-2018.3
  167909. .IP \(bu 2
  167910. a0fcd5c053 Fix test_cp failure: forgot to add tgt to test when @with_tempfile is present
  167911. .IP \(bu 2
  167912. d0202cab72 Resolve bad merge: there should only be one test_get_file_from_env_in_url test
  167913. .IP \(bu 2
  167914. e28f71b418 Lint: use full salt utils path
  167915. .IP \(bu 2
  167916. 4ad50bbdee Update old utils paths to new paths
  167917. .IP \(bu 2
  167918. 893196d3e6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167919. .INDENT 2.0
  167920. .IP \(bu 2
  167921. 1941426218 Merge pull request \fI\%#46838\fP from gtmanfred/npm
  167922. .INDENT 2.0
  167923. .IP \(bu 2
  167924. bff61dd291 use http registry for npm
  167925. .UNINDENT
  167926. .IP \(bu 2
  167927. e544254e7b Merge pull request \fI\%#46823\fP from rallytime/fix\-42312
  167928. .INDENT 2.0
  167929. .IP \(bu 2
  167930. dafa820f93 Improve __virtual__ checks in sensehat module
  167931. .UNINDENT
  167932. .IP \(bu 2
  167933. 37f6d2de35 Merge pull request \fI\%#46641\fP from skizunov/develop3
  167934. .INDENT 2.0
  167935. .IP \(bu 2
  167936. c624aa4827 Make LazyLoader thread safe
  167937. .UNINDENT
  167938. .IP \(bu 2
  167939. 989508b100 Merge pull request \fI\%#46837\fP from rallytime/merge\-2017.7
  167940. .INDENT 2.0
  167941. .IP \(bu 2
  167942. 8522c1d634 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  167943. .IP \(bu 2
  167944. 3e844ed1df Merge pull request \fI\%#46739\fP from rallytime/2016.11_update_version_doc
  167945. .INDENT 2.0
  167946. .IP \(bu 2
  167947. 4d9fc5cc0f Update release versions for the 2016.11 branch
  167948. .UNINDENT
  167949. .UNINDENT
  167950. .IP \(bu 2
  167951. 307e7f35f9 Merge pull request \fI\%#46740\fP from rallytime/2017.7_update_version_doc
  167952. .INDENT 2.0
  167953. .IP \(bu 2
  167954. 7edf98d224 Update 2018.3.0 information and move branch from "latest" to "previous"
  167955. .IP \(bu 2
  167956. 5336e866ac Update release versions for the 2017.7 branch
  167957. .UNINDENT
  167958. .IP \(bu 2
  167959. ebf5dd276f Merge pull request \fI\%#46783\fP from twangboy/fix_46680
  167960. .INDENT 2.0
  167961. .IP \(bu 2
  167962. da5ce25ef3 Fix unit tests on Linux
  167963. .IP \(bu 2
  167964. b7f4f377cd Add space I removed
  167965. .IP \(bu 2
  167966. f1c68a09b5 Fix network.managed test=True on Windows
  167967. .UNINDENT
  167968. .IP \(bu 2
  167969. f652f25cc1 Merge pull request \fI\%#46821\fP from rallytime/fix\-mantest\-failures
  167970. .INDENT 2.0
  167971. .IP \(bu 2
  167972. 209a8029c3 Fix the new test failures from the mantest changes
  167973. .UNINDENT
  167974. .IP \(bu 2
  167975. c460f62081 Merge pull request \fI\%#46800\fP from lomeroe/2017_7\-46627
  167976. .INDENT 2.0
  167977. .IP \(bu 2
  167978. 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
  167979. .UNINDENT
  167980. .IP \(bu 2
  167981. df26f2641e Merge pull request \fI\%#46675\fP from dwoz/inspectlib\-tests
  167982. .INDENT 2.0
  167983. .IP \(bu 2
  167984. d39f4852d8 Handle non\-zero status exception
  167985. .IP \(bu 2
  167986. 83c005802b Handle cases where git can not be found
  167987. .IP \(bu 2
  167988. 628b87d5c4 Skip test when git symlinks are not configured
  167989. .UNINDENT
  167990. .IP \(bu 2
  167991. 4083e7c460 Merge pull request \fI\%#46815\fP from terminalmage/bp\-46809
  167992. .INDENT 2.0
  167993. .IP \(bu 2
  167994. 71d5601507 Fix sharedsecret authentication
  167995. .UNINDENT
  167996. .IP \(bu 2
  167997. 3bac9717f4 Merge pull request \fI\%#46769\fP from dwoz/wincloudtest
  167998. .INDENT 2.0
  167999. .IP \(bu 2
  168000. eabc234e5d Fix config override name
  168001. .IP \(bu 2
  168002. 5c22a0f88d Use aboslute imports
  168003. .IP \(bu 2
  168004. 810042710d Set default cloud test timeout back to 500 seconds
  168005. .IP \(bu 2
  168006. 5ac89ad307 Use winrm_verify_ssl option causing tests to pass
  168007. .IP \(bu 2
  168008. 71858a709c allow not verifying ssl winrm saltcloud
  168009. .IP \(bu 2
  168010. ba5f11476c Adding windows minion tests for salt cloud
  168011. .UNINDENT
  168012. .IP \(bu 2
  168013. f1be939763 Merge pull request \fI\%#46786\fP from twangboy/fix_46757
  168014. .INDENT 2.0
  168015. .IP \(bu 2
  168016. b0053250ff Remove int(), just return \-1
  168017. .IP \(bu 2
  168018. 7d56126d74 Fixes some lint
  168019. .IP \(bu 2
  168020. 49b3e937da Return int(\-1) when pidfile contains invalid data
  168021. .UNINDENT
  168022. .IP \(bu 2
  168023. 89bf24b15c Merge pull request \fI\%#46814\fP from terminalmage/bp\-46772
  168024. .INDENT 2.0
  168025. .IP \(bu 2
  168026. a9f26f2ab8 avoid breaking if AutoRemove is not found
  168027. .IP \(bu 2
  168028. 97779c965d fix container removal if auto_remove was enabled
  168029. .UNINDENT
  168030. .IP \(bu 2
  168031. 5ea4ffbdb6 Merge pull request \fI\%#46813\fP from terminalmage/event\-debug\-log
  168032. .INDENT 2.0
  168033. .IP \(bu 2
  168034. 5d6de3a2eb Get rid of confusing debug logging
  168035. .UNINDENT
  168036. .IP \(bu 2
  168037. e533b7182d Merge pull request \fI\%#46766\fP from twangboy/win_fix_test_git
  168038. .INDENT 2.0
  168039. .IP \(bu 2
  168040. 5afc66452c Remove unused/redundant imports
  168041. .IP \(bu 2
  168042. 88fd72c52c Use with_tempfile decorator where possible
  168043. .UNINDENT
  168044. .IP \(bu 2
  168045. 69d450db84 Merge pull request \fI\%#46778\fP from terminalmage/salt\-jenkins\-906
  168046. .INDENT 2.0
  168047. .IP \(bu 2
  168048. bbfd35d3ea Replace flaky SPM man test
  168049. .UNINDENT
  168050. .IP \(bu 2
  168051. c935ffb740 Merge pull request \fI\%#46788\fP from garethgreenaway/46762_prereq_shenanigans
  168052. .INDENT 2.0
  168053. .IP \(bu 2
  168054. fa7aed6424 Ensure failed tags are added to self.pre.
  168055. .UNINDENT
  168056. .IP \(bu 2
  168057. 395b7f8fdc Merge pull request \fI\%#46655\fP from dwoz/pyobjects\-46350
  168058. .INDENT 2.0
  168059. .IP \(bu 2
  168060. 5aabd442f2 Fix up import and docstring syntax
  168061. .IP \(bu 2
  168062. 62d64c9230 Fix missing import
  168063. .IP \(bu 2
  168064. 18b1730320 Skip test that requires pywin32 on *nix platforms
  168065. .IP \(bu 2
  168066. 45dce1a485 Add reg module to globals
  168067. .IP \(bu 2
  168068. 09f9322981 Fix pep8 wart
  168069. .IP \(bu 2
  168070. 73d06f664b Fix linter error
  168071. .IP \(bu 2
  168072. 009a8f56ea Fix up environ state tests for Windows
  168073. .IP \(bu 2
  168074. b4be10b8fc Fixing cleanUp method to restore environment
  168075. .UNINDENT
  168076. .IP \(bu 2
  168077. af45c49c42 Merge pull request \fI\%#46632\fP from dwoz/file\-recurse\-36802
  168078. .INDENT 2.0
  168079. .IP \(bu 2
  168080. 44db77ae79 Fix lint errors and typo
  168081. .IP \(bu 2
  168082. cb5619537f Only change what is essential for test fix
  168083. .IP \(bu 2
  168084. eb822f5a12 Fix file.recurse w/ clean=True \fI\%#36802\fP
  168085. .UNINDENT
  168086. .IP \(bu 2
  168087. 6e9f504ed1 Merge pull request \fI\%#46751\fP from folti/2017.7
  168088. .INDENT 2.0
  168089. .IP \(bu 2
  168090. 7058f10381 same top merging strategy works again
  168091. .UNINDENT
  168092. .IP \(bu 2
  168093. d3623e0815 Merge pull request \fI\%#46691\fP from Ch3LL/win_group_test
  168094. .INDENT 2.0
  168095. .IP \(bu 2
  168096. 7cda825e90 Add groupadd module integration tests for Windows
  168097. .UNINDENT
  168098. .IP \(bu 2
  168099. 14ab50d3f4 Merge pull request \fI\%#46696\fP from dwoz/win_test_client
  168100. .INDENT 2.0
  168101. .IP \(bu 2
  168102. ec4634fc06 Better explanation in doc strings
  168103. .IP \(bu 2
  168104. d9ae2abb34 Fix splling in docstring
  168105. .IP \(bu 2
  168106. b40efc5db8 Windows test client fixes
  168107. .UNINDENT
  168108. .UNINDENT
  168109. .UNINDENT
  168110. .IP \(bu 2
  168111. \fBPR\fP \fI\%#46851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46844\fP to 2018.3
  168112. @ \fI2018\-04\-04 18:04:59 UTC\fP
  168113. .INDENT 2.0
  168114. .IP \(bu 2
  168115. \fBPR\fP \fI\%#46844\fP: (\fI\%UtahDave\fP) Fix warning format in 2018.3.0 release notes (refs: \fI\%#46851\fP)
  168116. .IP \(bu 2
  168117. b808ba7049 Merge pull request \fI\%#46851\fP from rallytime/bp\-46844
  168118. .IP \(bu 2
  168119. ab2ccea1af Quick grammar fix in 2018.3.0 release notes
  168120. .IP \(bu 2
  168121. af7bad3c7f Fix warning format in 2018.3.0 release notes
  168122. .UNINDENT
  168123. .IP \(bu 2
  168124. \fBISSUE\fP \fI\%#46864\fP: (\fI\%femnad\fP) Attribute Error When Invoking Vault Module Method (refs: \fI\%#46865\fP)
  168125. .IP \(bu 2
  168126. \fBPR\fP \fI\%#46865\fP: (\fI\%femnad\fP) Fix Log Line for Vault Token Generation Debug Line
  168127. @ \fI2018\-04\-04 14:52:00 UTC\fP
  168128. .INDENT 2.0
  168129. .IP \(bu 2
  168130. ea56778e03 Merge pull request \fI\%#46865\fP from femnad/fix\-log\-in\-vault\-runner
  168131. .IP \(bu 2
  168132. 01a5b88e7b Fix Log Line for Vault Token Generation Debug Line
  168133. .UNINDENT
  168134. .IP \(bu 2
  168135. \fBPR\fP \fI\%#46836\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168136. @ \fI2018\-04\-03 16:54:53 UTC\fP
  168137. .INDENT 2.0
  168138. .IP \(bu 2
  168139. a0e168ccee Merge pull request \fI\%#46836\fP from rallytime/merge\-2018.3
  168140. .IP \(bu 2
  168141. e75ba1f502 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168142. .INDENT 2.0
  168143. .IP \(bu 2
  168144. 39235715e6 Merge pull request \fI\%#46792\fP from damon\-atkins/patch\-1
  168145. .IP \(bu 2
  168146. db5b9464e6 provided an example
  168147. .IP \(bu 2
  168148. 41e3e1e253 Update windows information in release notes
  168149. .IP \(bu 2
  168150. 99447fbf49 Added more windows information
  168151. .IP \(bu 2
  168152. d4241006f2 Update 2018.3.0.rst Windows Items, Group topics
  168153. .UNINDENT
  168154. .UNINDENT
  168155. .IP \(bu 2
  168156. \fBISSUE\fP \fI\%#46808\fP: (\fI\%ezh\fP) Sharedsecret authentication is broken (refs: \fI\%#46809\fP)
  168157. .IP \(bu 2
  168158. \fBPR\fP \fI\%#46809\fP: (\fI\%ezh\fP) Fix sharedsecret authentication (refs: \fI\%#46815\fP)
  168159. @ \fI2018\-04\-03 16:53:24 UTC\fP
  168160. .INDENT 2.0
  168161. .IP \(bu 2
  168162. 4a358217a0 Merge pull request \fI\%#46809\fP from ezh/2018.3\-sharedsecret
  168163. .IP \(bu 2
  168164. 20db8f03f7 Merge branch \(aq2018.3\(aq into 2018.3\-sharedsecret
  168165. .IP \(bu 2
  168166. 9df6d18ec7 Fix sharedsecret authentication
  168167. .UNINDENT
  168168. .IP \(bu 2
  168169. \fBPR\fP \fI\%#46820\fP: (\fI\%rallytime\fP) [2018.3] Update the latest release information for docs
  168170. @ \fI2018\-04\-03 14:36:31 UTC\fP
  168171. .INDENT 2.0
  168172. .IP \(bu 2
  168173. 1519d7d895 Merge pull request \fI\%#46820\fP from rallytime/2018.3_update_version_doc
  168174. .IP \(bu 2
  168175. 274f8ee0dd [2018.3] Update the latest release information for docs
  168176. .UNINDENT
  168177. .IP \(bu 2
  168178. \fBPR\fP \fI\%#46731\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46024\fP to 2018.3
  168179. @ \fI2018\-04\-02 19:00:42 UTC\fP
  168180. .INDENT 2.0
  168181. .IP \(bu 2
  168182. \fBPR\fP \fI\%#46024\fP: (\fI\%zmedico\fP) Trivial bug fixes for tagify and fire_args functions (refs: \fI\%#46731\fP)
  168183. .IP \(bu 2
  168184. 07f1141722 Merge pull request \fI\%#46731\fP from rallytime/bp\-46024
  168185. .IP \(bu 2
  168186. ee4ee5b619 fire_args: fix UnboundLocalError: local variable \(aqtag\(aq
  168187. .IP \(bu 2
  168188. 4ce2c21824 tagify: handle integer suffix list
  168189. .UNINDENT
  168190. .IP \(bu 2
  168191. \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)
  168192. .IP \(bu 2
  168193. \fBPR\fP \fI\%#46796\fP: (\fI\%terminalmage\fP) Fix regression introduced in merge\-forward
  168194. @ \fI2018\-04\-02 18:10:22 UTC\fP
  168195. .INDENT 2.0
  168196. .IP \(bu 2
  168197. \fBPR\fP \fI\%#46503\fP: (\fI\%psyer\fP) Fixes stdout user environment corruption (refs: \fI\%#46796\fP)
  168198. .IP \(bu 2
  168199. 4f31c1062d Merge pull request \fI\%#46796\fP from terminalmage/issue46779
  168200. .IP \(bu 2
  168201. f8f9d045ac Add regression test
  168202. .IP \(bu 2
  168203. e0e4e19ba3 Include extra troubleshooting information
  168204. .IP \(bu 2
  168205. dcb0c67309 Fix regression introduced in merge\-forward
  168206. .UNINDENT
  168207. .IP \(bu 2
  168208. \fBPR\fP \fI\%#46690\fP: (\fI\%dincamihai\fP) Fix unicode handling in pkg.info_installed
  168209. @ \fI2018\-03\-29 14:10:48 UTC\fP
  168210. .INDENT 2.0
  168211. .IP \(bu 2
  168212. 4609a7dd85 Merge pull request \fI\%#46690\fP from dincamihai/2018.3
  168213. .IP \(bu 2
  168214. 980adf8253 Fix unicode handling in pkg.info_installed
  168215. .UNINDENT
  168216. .IP \(bu 2
  168217. \fBPR\fP \fI\%#46746\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  168218. @ \fI2018\-03\-28 21:13:07 UTC\fP
  168219. .INDENT 2.0
  168220. .IP \(bu 2
  168221. e5b3c8fa91 Merge pull request \fI\%#46746\fP from rallytime/merge\-2018.3
  168222. .IP \(bu 2
  168223. e8864b7b0b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168224. .INDENT 2.0
  168225. .IP \(bu 2
  168226. 1222bdbc00 Merge pull request \fI\%#46732\fP from rallytime/bp\-46032
  168227. .INDENT 2.0
  168228. .IP \(bu 2
  168229. bf0b962dc0 Workaroung python bug in traceback.format_exc()
  168230. .UNINDENT
  168231. .IP \(bu 2
  168232. 50fe1e9480 Merge pull request \fI\%#46749\fP from vutny/doc\-deprecate\-copr
  168233. .INDENT 2.0
  168234. .IP \(bu 2
  168235. a1cc55da3d [DOC] Remove mentions of COPR repo from RHEL installation page
  168236. .UNINDENT
  168237. .IP \(bu 2
  168238. bd1e8bcc7d Merge pull request \fI\%#46734\fP from terminalmage/busybox
  168239. .INDENT 2.0
  168240. .IP \(bu 2
  168241. 6502b6b4ff Make busybox image builder work with newer busybox releases
  168242. .UNINDENT
  168243. .IP \(bu 2
  168244. c09c6f819c Merge pull request \fI\%#46742\fP from gtmanfred/2017.7
  168245. .INDENT 2.0
  168246. .IP \(bu 2
  168247. fd0e649d1e only use npm test work around on newer versions
  168248. .UNINDENT
  168249. .IP \(bu 2
  168250. 3b6d5eca88 Merge pull request \fI\%#46743\fP from Ch3LL/mac_auth
  168251. .INDENT 2.0
  168252. .IP \(bu 2
  168253. 4f1c42c0e3 Workaround getpwnam in auth test for MacOSX
  168254. .UNINDENT
  168255. .UNINDENT
  168256. .IP \(bu 2
  168257. d0278345fc Update old utils paths to new utils paths
  168258. .IP \(bu 2
  168259. e312efb5e7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168260. .INDENT 2.0
  168261. .IP \(bu 2
  168262. b548a3e742 Merge pull request \fI\%#46171\fP from amaclean199/fix_mysql_grants_comparison
  168263. .INDENT 2.0
  168264. .IP \(bu 2
  168265. 97db3d9766 Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  168266. .IP \(bu 2
  168267. 0565b3980e Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  168268. .IP \(bu 2
  168269. 8af407173d Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  168270. .IP \(bu 2
  168271. 00d13f05c4 Fix mysql grant comparisons by stripping both of escape characters and quotes. Fixes \fI\%#26920\fP
  168272. .UNINDENT
  168273. .IP \(bu 2
  168274. 554400e067 Merge pull request \fI\%#46709\fP from vutny/doc\-faq\-minion\-master\-restart
  168275. .INDENT 2.0
  168276. .IP \(bu 2
  168277. d0929280fc [DOC] Update FAQ about Salt self\-restarting
  168278. .UNINDENT
  168279. .IP \(bu 2
  168280. 3f21e9cc65 Merge pull request \fI\%#46503\fP from psyer/fix\-cmd\-run\-env\-corrupt
  168281. .INDENT 2.0
  168282. .IP \(bu 2
  168283. e8582e80f2 Python 3\-compatibility fix to unit test
  168284. .IP \(bu 2
  168285. 27f651906d Merge pull request \fI\%#1\fP from terminalmage/fix\-cmd\-run\-env\-corrupt
  168286. .INDENT 2.0
  168287. .IP \(bu 2
  168288. 172d3b2e04 Allow cases where no marker was found to proceed without raising exception
  168289. .IP \(bu 2
  168290. 35ad828ab8 Simplify the marker parsing logic
  168291. .UNINDENT
  168292. .IP \(bu 2
  168293. a09f20ab45 fix repr for the linter
  168294. .IP \(bu 2
  168295. 4ee723ac0f Rework how errors are output
  168296. .IP \(bu 2
  168297. dc283940e0 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  168298. .IP \(bu 2
  168299. a91926561f Fix linting problems
  168300. .IP \(bu 2
  168301. e8d3d017f9 fix bytes or str in find command
  168302. .IP \(bu 2
  168303. 0877cfc38f Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  168304. .IP \(bu 2
  168305. 86176d1252 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  168306. .IP \(bu 2
  168307. 3a7cc44ade Add python3 support for byte encoded markers
  168308. .IP \(bu 2
  168309. 09048139c7 Do not show whole env in error
  168310. .IP \(bu 2
  168311. ed94700255 fix missing raise statement
  168312. .IP \(bu 2
  168313. 15868bc88c Fixes stdout user environment corruption
  168314. .UNINDENT
  168315. .IP \(bu 2
  168316. ac2a6616a7 Merge pull request \fI\%#46432\fP from twangboy/win_locales_utf8
  168317. .INDENT 2.0
  168318. .IP \(bu 2
  168319. affa35c30d Revert passing encoding
  168320. .IP \(bu 2
  168321. a0ab27ef15 Merge remote\-tracking branch \(aqdw/win_locales_utf8\(aq into win_locales_utf8
  168322. .INDENT 2.0
  168323. .IP \(bu 2
  168324. 9f95c50061 Use default SLS encoding, fall back to system encoding
  168325. .IP \(bu 2
  168326. 6548d550d0 Use salt.utils.to_unicode
  168327. .IP \(bu 2
  168328. 8c0164fb63 Add ability to specify encoding in sdecode
  168329. .IP \(bu 2
  168330. 2e7985a81c Default to utf\-8 on Windows
  168331. .UNINDENT
  168332. .IP \(bu 2
  168333. 8017860dcc Use salt.utils.to_unicode
  168334. .IP \(bu 2
  168335. c10ed26eab Add ability to specify encoding in sdecode
  168336. .IP \(bu 2
  168337. 8d7e2d0058 Default to utf\-8 on Windows
  168338. .UNINDENT
  168339. .IP \(bu 2
  168340. fadc5e4ba4 Merge pull request \fI\%#46669\fP from terminalmage/pillar\-merge\-order
  168341. .INDENT 2.0
  168342. .IP \(bu 2
  168343. b4a1d34b47 Add option to return to pre\-2017.7.3 pillar include merge order
  168344. .UNINDENT
  168345. .IP \(bu 2
  168346. b90f0d1364 Merge pull request \fI\%#46711\fP from terminalmage/wildcard\-versions\-info
  168347. .INDENT 2.0
  168348. .IP \(bu 2
  168349. fc7d16f1af Add performance reminder for wildcard versions
  168350. .UNINDENT
  168351. .IP \(bu 2
  168352. 6c80d90bb6 Merge pull request \fI\%#46693\fP from dwoz/test_smtp_return
  168353. .INDENT 2.0
  168354. .IP \(bu 2
  168355. 5bf850c67f File and Pillar roots are dictionaries
  168356. .UNINDENT
  168357. .IP \(bu 2
  168358. 9a6bc1418c Merge pull request \fI\%#46543\fP from dafenko/fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168359. .INDENT 2.0
  168360. .IP \(bu 2
  168361. 6d5b2068aa Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168362. .IP \(bu 2
  168363. 5219377313 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168364. .IP \(bu 2
  168365. b7d39caa86 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168366. .IP \(bu 2
  168367. 25f1074a85 Add docstring for added parameters
  168368. .IP \(bu 2
  168369. 973bc13955 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168370. .IP \(bu 2
  168371. 164314a859 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  168372. .IP \(bu 2
  168373. 267ae9f633 Fix missing saltenv and pillarenv in pillar.item
  168374. .UNINDENT
  168375. .IP \(bu 2
  168376. f776040e25 Merge pull request \fI\%#46679\fP from vutny/doc\-state\-pkg
  168377. .INDENT 2.0
  168378. .IP \(bu 2
  168379. 4a730383bf [DOC] Correct examples in \fIpkg\fP state module
  168380. .UNINDENT
  168381. .IP \(bu 2
  168382. 47409eaa6e Merge pull request \fI\%#46646\fP from twangboy/win_fix_test_local_cache
  168383. .INDENT 2.0
  168384. .IP \(bu 2
  168385. 8d93156604 Fix \fIunit.returners.test_local_cache\fP for Windows
  168386. .UNINDENT
  168387. .IP \(bu 2
  168388. 0c2dce0416 Merge pull request \fI\%#46649\fP from terminalmage/issue46595
  168389. .INDENT 2.0
  168390. .IP \(bu 2
  168391. e82a1aa1ec Make server_id consistent on Python 3
  168392. .UNINDENT
  168393. .IP \(bu 2
  168394. 4e7466a21c Merge pull request \fI\%#46588\fP from UtahDave/no_crash_winshell
  168395. .INDENT 2.0
  168396. .IP \(bu 2
  168397. b7842a1777 Update error message.
  168398. .IP \(bu 2
  168399. 95dfdb91ca Don\(aqt stacktrace when salt\-ssh w/o saltwinshell
  168400. .UNINDENT
  168401. .IP \(bu 2
  168402. 33af3cfc7c Merge pull request \fI\%#46631\fP from rallytime/update\-pillar\-unit\-tests
  168403. .INDENT 2.0
  168404. .IP \(bu 2
  168405. 0f728186aa Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  168406. .UNINDENT
  168407. .IP \(bu 2
  168408. d329e7af78 Merge pull request \fI\%#46640\fP from terminalmage/file.copy\-docs
  168409. .INDENT 2.0
  168410. .IP \(bu 2
  168411. 480c5f8faa Clarify the docs for the file.copy state
  168412. .UNINDENT
  168413. .IP \(bu 2
  168414. ff40590c06 Merge pull request \fI\%#46642\fP from vutny/doc\-cloud\-index
  168415. .INDENT 2.0
  168416. .IP \(bu 2
  168417. 51e6aa54a1 [DOC] Unify cloud modules index header
  168418. .UNINDENT
  168419. .IP \(bu 2
  168420. 83ed40c06a Merge pull request \fI\%#46619\fP from rallytime/merge\-2017.7
  168421. .INDENT 2.0
  168422. .IP \(bu 2
  168423. bcbddf5d07 Merge branch \(aq2017.7.5\(aq into \(aq2017.7\(aq
  168424. .INDENT 2.0
  168425. .IP \(bu 2
  168426. 19bb725698 Merge pull request \fI\%#46612\fP from Ch3LL/7.5_rn
  168427. .INDENT 2.0
  168428. .IP \(bu 2
  168429. 6076bfa2ee Add changelog to 2017.7.5 release
  168430. .UNINDENT
  168431. .IP \(bu 2
  168432. 31c78aef11 Merge pull request \fI\%#46572\fP from dmurphy18/update_xxxbuild
  168433. .INDENT 2.0
  168434. .IP \(bu 2
  168435. c87511570d Merge branch \(aq2017.7.5\(aq into update_xxxbuild
  168436. .UNINDENT
  168437. .IP \(bu 2
  168438. cdd768fa4d Merge pull request \fI\%#46577\fP from gtmanfred/2017.7.5
  168439. .INDENT 2.0
  168440. .IP \(bu 2
  168441. 78cbf7b5cd Fix npm issue
  168442. .IP \(bu 2
  168443. c76f7eb028 enable debug logging on the minionlog
  168444. .UNINDENT
  168445. .IP \(bu 2
  168446. e6682c660c Merge pull request \fI\%#46551\fP from terminalmage/salt\-jenkins\-885
  168447. .INDENT 2.0
  168448. .IP \(bu 2
  168449. 703b5e7e65 Change versionadded to show that 2018.3.0 will not have this function
  168450. .IP \(bu 2
  168451. 010d260d06 Rewrite failing Suse pkg integration test
  168452. .IP \(bu 2
  168453. f3f5dec239 zypper.py: fix version argument being ignored
  168454. .IP \(bu 2
  168455. 214f2d6ad3 Add pkg.list_repo_pkgs to zypper.py
  168456. .INDENT 2.0
  168457. .INDENT 3.5
  168458. .INDENT 0.0
  168459. .IP \(bu 2
  168460. 0a541613f2 Additon of \-sa flag to allow for revision numbers other than \-0 or \-1
  168461. .UNINDENT
  168462. .UNINDENT
  168463. .UNINDENT
  168464. .UNINDENT
  168465. .IP \(bu 2
  168466. bd62699ccb Merge pull request \fI\%#46563\fP from gtmanfred/2017.7.5
  168467. .INDENT 2.0
  168468. .IP \(bu 2
  168469. 8d5ab72983 virtualenv version too old for python3.6
  168470. .UNINDENT
  168471. .IP \(bu 2
  168472. 2916708124 Merge pull request \fI\%#46561\fP from gtmanfred/2017.7.5
  168473. .INDENT 2.0
  168474. .IP \(bu 2
  168475. 2c39ac6dfb disable verbose
  168476. .UNINDENT
  168477. .IP \(bu 2
  168478. ee3bff6e32 Merge pull request \fI\%#46537\fP from rallytime/bp\-46529
  168479. .INDENT 2.0
  168480. .IP \(bu 2
  168481. 289c7a228f retry if there is a segfault
  168482. .UNINDENT
  168483. .IP \(bu 2
  168484. 1271536a89 Merge pull request \fI\%#46519\fP from rallytime/man\-pages\-2017.7.5
  168485. .INDENT 2.0
  168486. .IP \(bu 2
  168487. 782a5584f5 Update man pages for 2017.7.5
  168488. .UNINDENT
  168489. .UNINDENT
  168490. .UNINDENT
  168491. .IP \(bu 2
  168492. df12135439 Merge pull request \fI\%#46584\fP from twangboy/lgpo\-46568
  168493. .INDENT 2.0
  168494. .IP \(bu 2
  168495. 661017104b Detect disabled reg_multi_sz elements properly
  168496. .UNINDENT
  168497. .IP \(bu 2
  168498. 2fd3aa487c Merge pull request \fI\%#46624\fP from twangboy/win_fix_installer
  168499. .INDENT 2.0
  168500. .IP \(bu 2
  168501. fa0b0efe46 Fix some installer script inconsistencies
  168502. .UNINDENT
  168503. .IP \(bu 2
  168504. f038e3c452 Merge pull request \fI\%#46571\fP from garethgreenaway/46552_onfail_and_require
  168505. .INDENT 2.0
  168506. .IP \(bu 2
  168507. 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.
  168508. .UNINDENT
  168509. .IP \(bu 2
  168510. 2677330e19 Merge pull request \fI\%#46520\fP from gtmanfred/2017.7
  168511. .INDENT 2.0
  168512. .IP \(bu 2
  168513. caefedc095 make sure utils is empty for pickling for windows
  168514. .IP \(bu 2
  168515. 2883548e6b pass utils to the scheduler for reloading in modules
  168516. .UNINDENT
  168517. .IP \(bu 2
  168518. 7bc3c2e588 Merge pull request \fI\%#46531\fP from terminalmage/issue44299
  168519. .INDENT 2.0
  168520. .IP \(bu 2
  168521. b70c3389da Fix case where no comments specified
  168522. .IP \(bu 2
  168523. ce391c53f4 Add regression test for \fI\%#44299\fP
  168524. .IP \(bu 2
  168525. c3e36a6c94 Fix regression in yumpkg._parse_repo_file()
  168526. .IP \(bu 2
  168527. f0c79e3da3 Slight modification to salt.utils.pkg.rpm.combine_comments()
  168528. .UNINDENT
  168529. .IP \(bu 2
  168530. b80edb5d26 Merge pull request \fI\%#46567\fP from dwoz/runtest\-n\-wart
  168531. .INDENT 2.0
  168532. .IP \(bu 2
  168533. 3b6901e19d Honor named tests when running integration suites
  168534. .UNINDENT
  168535. .IP \(bu 2
  168536. 1dcd22e767 Merge pull request \fI\%#46580\fP from twangboy/win_update_docs_dism
  168537. .INDENT 2.0
  168538. .IP \(bu 2
  168539. d52b99d7a3 Clarify some issues with msu files in win_dism.py
  168540. .UNINDENT
  168541. .IP \(bu 2
  168542. 0a68c22332 Merge pull request \fI\%#46541\fP from gtmanfred/metadata
  168543. .INDENT 2.0
  168544. .IP \(bu 2
  168545. 19bd1d9db5 handle user\-data for metadata grains
  168546. .UNINDENT
  168547. .UNINDENT
  168548. .UNINDENT
  168549. .IP \(bu 2
  168550. \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)
  168551. .IP \(bu 2
  168552. \fBPR\fP \fI\%#46744\fP: (\fI\%garethgreenaway\fP) [2018.3] Ensure salt.utils.dateutils is available for templates via salt\-ssh
  168553. @ \fI2018\-03\-28 21:09:46 UTC\fP
  168554. .INDENT 2.0
  168555. .IP \(bu 2
  168556. ef68df7f3a Merge pull request \fI\%#46744\fP from garethgreenaway/46668_jinja2_filter_strftime_unavailable
  168557. .IP \(bu 2
  168558. 0b30955c00 Including salt.utils.dateutils so various jinja_filters are available when using salt\-ssh.
  168559. .UNINDENT
  168560. .IP \(bu 2
  168561. \fBISSUE\fP \fI\%#46334\fP: (\fI\%sjorge\fP) [2018.3.0rc1] Stacktrace on call to nacl.dec (refs: \fI\%#46426\fP)
  168562. .IP \(bu 2
  168563. \fBPR\fP \fI\%#46720\fP: (\fI\%rallytime\fP) Bump deprecation notices in nacl module & runner to Neon
  168564. @ \fI2018\-03\-27 21:15:46 UTC\fP
  168565. .INDENT 2.0
  168566. .IP \(bu 2
  168567. \fBPR\fP \fI\%#46426\fP: (\fI\%garethgreenaway\fP) [2018.3.0rc1] fixes to nacl module & runner (refs: \fI\%#46639\fP, \fI\%#46720\fP)
  168568. .IP \(bu 2
  168569. 65bb37effd Merge pull request \fI\%#46720\fP from rallytime/bump\-nacl\-deprecation
  168570. .IP \(bu 2
  168571. 5102c0310c Bump deprecation notices in nacl module & runner to Neon
  168572. .UNINDENT
  168573. .IP \(bu 2
  168574. \fBPR\fP \fI\%#46733\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168575. @ \fI2018\-03\-27 18:46:43 UTC\fP
  168576. .INDENT 2.0
  168577. .IP \(bu 2
  168578. c83d9e66fe Merge pull request \fI\%#46733\fP from rallytime/merge\-2018.3
  168579. .IP \(bu 2
  168580. 00d4eb26f3 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168581. .UNINDENT
  168582. .IP \(bu 2
  168583. \fBPR\fP \fI\%#46565\fP: (\fI\%twangboy\fP) Create reg salt util (2018.3)
  168584. @ \fI2018\-03\-26 22:03:33 UTC\fP
  168585. .INDENT 2.0
  168586. .IP \(bu 2
  168587. 0faced1d54 Merge pull request \fI\%#46565\fP from twangboy/win_fix_cmd_powershell_2018.3
  168588. .IP \(bu 2
  168589. 5ee64e9b0e Fix lint (spelling error)
  168590. .IP \(bu 2
  168591. 0de54ed953 Additional tests
  168592. .IP \(bu 2
  168593. fc9ecd75e2 Skip unit.state.test_reg unless on Windows
  168594. .IP \(bu 2
  168595. aa98bdf250 Fix some lint
  168596. .IP \(bu 2
  168597. e0d201a96f Make sure the docs are correct for the tests
  168598. .IP \(bu 2
  168599. f15f92318d Add tests for salt.utils.win_reg
  168600. .IP \(bu 2
  168601. f7112b19a2 Submit \fI\%#46527\fP agains 2018.3
  168602. .UNINDENT
  168603. .IP \(bu 2
  168604. \fBISSUE\fP \fI\%#46334\fP: (\fI\%sjorge\fP) [2018.3.0rc1] Stacktrace on call to nacl.dec (refs: \fI\%#46426\fP)
  168605. .IP \(bu 2
  168606. \fBPR\fP \fI\%#46639\fP: (\fI\%terminalmage\fP) Use the correct path for nacl certificates in Windows
  168607. @ \fI2018\-03\-26 19:20:10 UTC\fP
  168608. .INDENT 2.0
  168609. .IP \(bu 2
  168610. \fBPR\fP \fI\%#46426\fP: (\fI\%garethgreenaway\fP) [2018.3.0rc1] fixes to nacl module & runner (refs: \fI\%#46639\fP, \fI\%#46720\fP)
  168611. .IP \(bu 2
  168612. dd52368f90 Merge pull request \fI\%#46639\fP from terminalmage/nacl\-default\-path
  168613. .IP \(bu 2
  168614. 2f7660fe35 Use the correct path for nacl certificates in Windows
  168615. .UNINDENT
  168616. .IP \(bu 2
  168617. \fBPR\fP \fI\%#46416\fP: (\fI\%dincamihai\fP) Fix cp.push empty file
  168618. @ \fI2018\-03\-26 17:52:47 UTC\fP
  168619. .INDENT 2.0
  168620. .IP \(bu 2
  168621. 2efef52a3e Merge pull request \fI\%#46416\fP from dincamihai/fix\-cp.push\-empty\-file
  168622. .IP \(bu 2
  168623. 536ba0fa1e Fix cp.push empty file
  168624. .UNINDENT
  168625. .IP \(bu 2
  168626. \fBPR\fP \fI\%#46643\fP: (\fI\%mcalmer\fP) fix docker return
  168627. @ \fI2018\-03\-26 15:52:31 UTC\fP
  168628. .INDENT 2.0
  168629. .IP \(bu 2
  168630. 84579e7652 Merge pull request \fI\%#46643\fP from mcalmer/fix\-docker\-return
  168631. .IP \(bu 2
  168632. 3ceb63f607 fix checking test results
  168633. .IP \(bu 2
  168634. af64632bf3 add unit test for failed login
  168635. .IP \(bu 2
  168636. 0fc7989236 make it possible to use login, pull and push from module.run and detect errors
  168637. .UNINDENT
  168638. .IP \(bu 2
  168639. \fBPR\fP \fI\%#46650\fP: (\fI\%Ch3LL\fP) Mirror libnacl imports in test from the nacl module
  168640. @ \fI2018\-03\-26 14:48:40 UTC\fP
  168641. .INDENT 2.0
  168642. .IP \(bu 2
  168643. c67afbeb36 Merge pull request \fI\%#46650\fP from Ch3LL/nacl_test
  168644. .IP \(bu 2
  168645. 9fef8bc431 Mirror libnacl imports in test from the nacl runner
  168646. .IP \(bu 2
  168647. f11d58a8e9 Mirror libnacl imports in test from the nacl module
  168648. .UNINDENT
  168649. .IP \(bu 2
  168650. \fBPR\fP \fI\%#46645\fP: (\fI\%terminalmage\fP) Add Unicode / Python 3 update to 2018.3.0 release notes
  168651. @ \fI2018\-03\-26 14:43:53 UTC\fP
  168652. .INDENT 2.0
  168653. .IP \(bu 2
  168654. 03b58a01cf Merge pull request \fI\%#46645\fP from terminalmage/release\-notes
  168655. .IP \(bu 2
  168656. 986c7bcdae Rewrite unicode/py3 section
  168657. .IP \(bu 2
  168658. 064bc83276 Add Unicode / Python 3 update to 2018.3.0 release notes
  168659. .UNINDENT
  168660. .IP \(bu 2
  168661. \fBISSUE\fP \fI\%#46150\fP: (\fI\%whytewolf\fP) With chocolately.version some packages don\(aqt work with check_remote=True (refs: \fI\%#46661\fP)
  168662. .IP \(bu 2
  168663. \fBPR\fP \fI\%#46661\fP: (\fI\%Kimol\fP) Chocolatey \- Lowered name of local and remote packages before comparing versions.
  168664. @ \fI2018\-03\-26 14:35:39 UTC\fP
  168665. .INDENT 2.0
  168666. .IP \(bu 2
  168667. 308c9ddfc3 Merge pull request \fI\%#46661\fP from Kimol/2018.3\-fix_chocolatey_check_remote_packages
  168668. .IP \(bu 2
  168669. 52581e7918 Removed trailing whitespace
  168670. .IP \(bu 2
  168671. 123a86947c Chocolatey \- Added lowering local packages for unifing both local and remote names to lowercase for comparison.
  168672. .IP \(bu 2
  168673. 4be1a991c2 Lowered name of available packages before comparing with local packages
  168674. .UNINDENT
  168675. .IP \(bu 2
  168676. \fBPR\fP \fI\%#46569\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3 (refs: \fI\%#46631\fP)
  168677. @ \fI2018\-03\-21 20:57:04 UTC\fP
  168678. .INDENT 2.0
  168679. .IP \(bu 2
  168680. 2e1f7c37f7 Merge pull request \fI\%#46569\fP from rallytime/merge\-2018.3
  168681. .IP \(bu 2
  168682. 46ba72fb1c Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  168683. .IP \(bu 2
  168684. fe2d46dd0c Better merge conflict resolution for setup.py windows changes
  168685. .IP \(bu 2
  168686. 8886b61576 Update old utils paths to new paths
  168687. .IP \(bu 2
  168688. 8d1e1e7f94 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168689. .INDENT 2.0
  168690. .IP \(bu 2
  168691. 048b2ba3f6 Merge pull request \fI\%#46547\fP from garethgreenaway/46427_service_module_cumulus
  168692. .INDENT 2.0
  168693. .IP \(bu 2
  168694. edd0b11447 Merge branch \(aq2017.7\(aq into 46427_service_module_cumulus
  168695. .IP \(bu 2
  168696. ea3c16080e Disable the \fIservice\fP module on Cumulus since it is using systemd.
  168697. .UNINDENT
  168698. .IP \(bu 2
  168699. 98e3260b9a Merge pull request \fI\%#46548\fP from Ch3LL/profit_test
  168700. .INDENT 2.0
  168701. .IP \(bu 2
  168702. db96c4e72e check for foo,bar username,password set in profitbrick config
  168703. .UNINDENT
  168704. .IP \(bu 2
  168705. 79f2a76609 Merge pull request \fI\%#46549\fP from Ch3LL/dimension_test
  168706. .INDENT 2.0
  168707. .IP \(bu 2
  168708. bb338c464c Fix dimensionsdata test random_name call
  168709. .UNINDENT
  168710. .IP \(bu 2
  168711. 083846fe0e Merge pull request \fI\%#46529\fP from gtmanfred/kitchen
  168712. .INDENT 2.0
  168713. .IP \(bu 2
  168714. 50d6e2c7be retry if there is a segfault
  168715. .UNINDENT
  168716. .IP \(bu 2
  168717. 5cc11129f1 Merge pull request \fI\%#46511\fP from rallytime/bp\-45769
  168718. .INDENT 2.0
  168719. .IP \(bu 2
  168720. a8ffceda53 Surpress boto WARNING during decode, reference: \fI\%https://github.com/boto/boto/issues/2965\fP
  168721. .UNINDENT
  168722. .IP \(bu 2
  168723. 0e90c8ca6f Merge pull request \fI\%#46493\fP from terminalmage/issue46207
  168724. .INDENT 2.0
  168725. .IP \(bu 2
  168726. f06ff68f10 salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  168727. .UNINDENT
  168728. .IP \(bu 2
  168729. b11a8fc8e0 Merge pull request \fI\%#46450\fP from gtmanfred/salt_runner
  168730. .INDENT 2.0
  168731. .IP \(bu 2
  168732. 7974ff7264 load grains for salt.cmd runner
  168733. .UNINDENT
  168734. .IP \(bu 2
  168735. 22d753364b Merge pull request \fI\%#46337\fP from gtmanfred/2017.7
  168736. .INDENT 2.0
  168737. .IP \(bu 2
  168738. d6d9e36359 add tests for names and listen/listen_in
  168739. .IP \(bu 2
  168740. 3f8e0db572 let listen_in work with names
  168741. .IP \(bu 2
  168742. 7161f4d4df fix listen to be able to handle names
  168743. .UNINDENT
  168744. .IP \(bu 2
  168745. b7191b8782 Merge pull request \fI\%#46413\fP from meaksh/2017.7\-explore\-result\-in\-depth
  168746. .INDENT 2.0
  168747. .IP \(bu 2
  168748. 885751634e Add new unit test to check state.apply within module.run
  168749. .IP \(bu 2
  168750. 9f19ad5264 Rename and fix recursive method
  168751. .IP \(bu 2
  168752. 1476ace558 Fix Python3 and pylint issue
  168753. .IP \(bu 2
  168754. 726ca3044d Explore \(aqmodule.run\(aq response to catch the \(aqresult\(aq in depth
  168755. .UNINDENT
  168756. .IP \(bu 2
  168757. 02a79a2014 Merge pull request \fI\%#46496\fP from gtmanfred/kitchen
  168758. .INDENT 2.0
  168759. .IP \(bu 2
  168760. da002f78d0 include virtualenv path for py3 windows
  168761. .IP \(bu 2
  168762. fe2efe03ea remove duplicate setup
  168763. .UNINDENT
  168764. .IP \(bu 2
  168765. 5c4c182d75 Merge pull request \fI\%#46330\fP from bdrung/fix_kubernetes_test_create_deployments
  168766. .INDENT 2.0
  168767. .IP \(bu 2
  168768. 5008c53c44 Fix ValueError for template in AppsV1beta1DeploymentSpec
  168769. .UNINDENT
  168770. .IP \(bu 2
  168771. c7e05d3ff4 Merge pull request \fI\%#46482\fP from rongshengfang/fix\-keyerror\-in\-instance_present
  168772. .INDENT 2.0
  168773. .IP \(bu 2
  168774. ed8c83e89a Fix KeyError in salt/states/boto_ec2.py when an EIP is being associated to an existing instance with the instance_present state.
  168775. .UNINDENT
  168776. .IP \(bu 2
  168777. 573d51afec Merge pull request \fI\%#46463\fP from terminalmage/mock\-2.0
  168778. .INDENT 2.0
  168779. .IP \(bu 2
  168780. b958b4699c Update requirements files to depend on mock>=2.0.0
  168781. .UNINDENT
  168782. .IP \(bu 2
  168783. a154d35fc7 Merge pull request \fI\%#46422\fP from rallytime/bp\-46300
  168784. .INDENT 2.0
  168785. .IP \(bu 2
  168786. 829dfde8e8 Change stringutils path to old utils path for 2017.7
  168787. .IP \(bu 2
  168788. 91db2e0782 Python 3 support
  168789. .UNINDENT
  168790. .IP \(bu 2
  168791. 2afaca17a1 Merge pull request \fI\%#46320\fP from mcalmer/warn\-kubernetes
  168792. .INDENT 2.0
  168793. .IP \(bu 2
  168794. c493ced415 add warning about future config option change
  168795. .UNINDENT
  168796. .IP \(bu 2
  168797. c7f95581e3 Merge pull request \fI\%#46449\fP from bdrung/make\-doc\-theme\-configurable
  168798. .INDENT 2.0
  168799. .IP \(bu 2
  168800. 4a5da2d144 Make documentation theme configurable
  168801. .UNINDENT
  168802. .IP \(bu 2
  168803. 10ce0e9e20 Merge pull request \fI\%#46162\fP from rallytime/team\-suse\-zypper\-owner
  168804. .INDENT 2.0
  168805. .IP \(bu 2
  168806. 13a295a3b7 Add \fIpkg\fP and \fIsnapper\fP to team\-suse
  168807. .IP \(bu 2
  168808. 35c7b7b0d3 Add btrfs, xfs, yumpkg, and kubernetes file to team\-suse
  168809. .IP \(bu 2
  168810. 485d777ac0 Add team\-suse to CODEOWNERS file for zypper files
  168811. .UNINDENT
  168812. .IP \(bu 2
  168813. cac096b311 Merge pull request \fI\%#46434\fP from gtmanfred/highstate_return
  168814. .INDENT 2.0
  168815. .IP \(bu 2
  168816. d18f1a55a7 fix pylint
  168817. .IP \(bu 2
  168818. 9e2c3f7991 split return key value correctly
  168819. .UNINDENT
  168820. .IP \(bu 2
  168821. 7dd71101ce Merge pull request \fI\%#46455\fP from whytewolf/Issue_44452_unicode_cloud
  168822. .INDENT 2.0
  168823. .IP \(bu 2
  168824. 5fe474b1a8 .format remove fix for \fI\%#44452\fP
  168825. .UNINDENT
  168826. .IP \(bu 2
  168827. 4c8d9026d3 Merge pull request \fI\%#46428\fP from twangboy/win_fix_reqs
  168828. .INDENT 2.0
  168829. .IP \(bu 2
  168830. e7ab97cc17 Remove six as a hard dep for Salt
  168831. .IP \(bu 2
  168832. cc67e5c2ef Set six to 1.11.0
  168833. .UNINDENT
  168834. .IP \(bu 2
  168835. e834d9a63b Merge pull request \fI\%#46454\fP from gtmanfred/kitchen
  168836. .INDENT 2.0
  168837. .IP \(bu 2
  168838. b8ab8434a5 fix windows for kitchen
  168839. .UNINDENT
  168840. .IP \(bu 2
  168841. 2886dca88f Merge pull request \fI\%#46452\fP from gtmanfred/spm_cache_dir
  168842. .INDENT 2.0
  168843. .IP \(bu 2
  168844. 169cf7a4e2 make spm cache_dir instead of all cachedirs
  168845. .UNINDENT
  168846. .IP \(bu 2
  168847. a188984cd9 Merge pull request \fI\%#46446\fP from bdrung/fix\-typos
  168848. .INDENT 2.0
  168849. .IP \(bu 2
  168850. 7e6e80be87 heat: Fix spelling mistake of environment
  168851. .IP \(bu 2
  168852. a3c54b50f6 Fix various spelling mistakes
  168853. .UNINDENT
  168854. .IP \(bu 2
  168855. e35fc5263c Merge pull request \fI\%#46309\fP from bdrung/dynamic\-pillarenv
  168856. .INDENT 2.0
  168857. .IP \(bu 2
  168858. 584b451fd1 Support dynamic pillar_root environment
  168859. .UNINDENT
  168860. .IP \(bu 2
  168861. 35fe9827fe Merge pull request \fI\%#46430\fP from terminalmage/issue44032
  168862. .INDENT 2.0
  168863. .IP \(bu 2
  168864. f9f187e915 Improve reliability/idempotence of file.blockreplace state
  168865. .UNINDENT
  168866. .IP \(bu 2
  168867. 2bad0a21c0 Merge pull request \fI\%#46429\fP from twangboy/win_fix_snmp
  168868. .INDENT 2.0
  168869. .IP \(bu 2
  168870. 8995a9b8de Fix problem with __virtual__ in win_snmp
  168871. .UNINDENT
  168872. .IP \(bu 2
  168873. 93a572f229 Merge pull request \fI\%#46100\fP from jfindlay/resolv_scope
  168874. .INDENT 2.0
  168875. .IP \(bu 2
  168876. d5561bedaf tests.unit.grains.core add scoped IPv6 nameserver
  168877. .IP \(bu 2
  168878. 4e2e62d508 salt.utils.dns parse scope param for ipv6 servers
  168879. .UNINDENT
  168880. .IP \(bu 2
  168881. 5acc1d5c54 Merge pull request \fI\%#46420\fP from bdrung/2017.7
  168882. .INDENT 2.0
  168883. .IP \(bu 2
  168884. e48c13d9e0 Fix SSH client exception if SSH is not found
  168885. .UNINDENT
  168886. .IP \(bu 2
  168887. ca6a76e317 Merge pull request \fI\%#46379\fP from angeloudy/2017.7
  168888. .INDENT 2.0
  168889. .IP \(bu 2
  168890. 3acb59c74c Merge branch \(aq2017.7\(aq into 2017.7
  168891. .IP \(bu 2
  168892. d971e0c08b Fix indent
  168893. .IP \(bu 2
  168894. 269514683f Update http.py
  168895. .IP \(bu 2
  168896. 908c040ac3 Update http.py
  168897. .IP \(bu 2
  168898. 51ba3c135b Update http.py
  168899. .IP \(bu 2
  168900. 14aba24111 fix bytes\-object required error in python 3
  168901. .UNINDENT
  168902. .IP \(bu 2
  168903. 73f9233557 Merge pull request \fI\%#46404\fP from gtmanfred/kitchen
  168904. .INDENT 2.0
  168905. .IP \(bu 2
  168906. c56baa95a8 clone .git for the version tests
  168907. .IP \(bu 2
  168908. 3620611b5b fix unhold package for debian
  168909. .IP \(bu 2
  168910. 5219f7d2ba fix minion log path
  168911. .UNINDENT
  168912. .IP \(bu 2
  168913. ca28cfd4e4 Merge pull request \fI\%#46310\fP from twangboy/win_update_installer_build
  168914. .INDENT 2.0
  168915. .IP \(bu 2
  168916. bcf8b19566 Update the installer build
  168917. .UNINDENT
  168918. .IP \(bu 2
  168919. decccbeca3 Merge pull request \fI\%#46316\fP from twangboy/win_fix_dsc
  168920. .INDENT 2.0
  168921. .IP \(bu 2
  168922. 2042d33d59 Fix issues with the DSC module
  168923. .UNINDENT
  168924. .UNINDENT
  168925. .UNINDENT
  168926. .IP \(bu 2
  168927. \fBPR\fP \fI\%#46620\fP: (\fI\%rallytime\fP) [2018.3] Merge 2018.3.0rc1 into 2018.3
  168928. @ \fI2018\-03\-20 22:45:00 UTC\fP
  168929. .INDENT 2.0
  168930. .IP \(bu 2
  168931. 8cdd56b9dc Merge pull request \fI\%#46620\fP from rallytime/merge\-2018.3.0rc1\-into\-2018.3
  168932. .IP \(bu 2
  168933. b03cda3cea Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168934. .UNINDENT
  168935. .IP \(bu 2
  168936. \fBPR\fP \fI\%#46606\fP: (\fI\%Ch3LL\fP) add autodoc topics for infoblox state modules
  168937. @ \fI2018\-03\-19 21:35:46 UTC\fP
  168938. .INDENT 2.0
  168939. .IP \(bu 2
  168940. 2d2fe22ae2 Merge pull request \fI\%#46606\fP from Ch3LL/infoblox_docs
  168941. .IP \(bu 2
  168942. 6eab6a7dc4 add autodoc topics for infoblox state modules
  168943. .UNINDENT
  168944. .IP \(bu 2
  168945. \fBPR\fP \fI\%#46540\fP: (\fI\%s0undt3ch\fP) Some missing \fIisinstance\fP checks.
  168946. @ \fI2018\-03\-15 16:17:19 UTC\fP
  168947. .INDENT 2.0
  168948. .IP \(bu 2
  168949. 1191d5b379 Merge pull request \fI\%#46540\fP from s0undt3ch/2018.3
  168950. .IP \(bu 2
  168951. fa1d668774 Some missing \fIisinstance\fP checks. Committed again through a PR.
  168952. .UNINDENT
  168953. .IP \(bu 2
  168954. \fBPR\fP \fI\%#46513\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168955. @ \fI2018\-03\-15 15:58:59 UTC\fP
  168956. .INDENT 2.0
  168957. .IP \(bu 2
  168958. 5429438e4b Merge pull request \fI\%#46513\fP from rallytime/merge\-2018.3
  168959. .IP \(bu 2
  168960. aa760334a1 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168961. .UNINDENT
  168962. .IP \(bu 2
  168963. \fBISSUE\fP \fI\%#43208\fP: (\fI\%mitar\fP) Prevent user.present to change uid and gid of existing user (refs: \fI\%#46502\fP)
  168964. .IP \(bu 2
  168965. \fBPR\fP \fI\%#46502\fP: (\fI\%terminalmage\fP) user.present: don\(aqt change uid/gid unless explicitly told to
  168966. @ \fI2018\-03\-13 14:25:20 UTC\fP
  168967. .INDENT 2.0
  168968. .IP \(bu 2
  168969. 3e073c7e8a Merge pull request \fI\%#46502\fP from terminalmage/issue43208
  168970. .IP \(bu 2
  168971. 4106840deb user.present: don\(aqt change uid/gid unless explicitly told to
  168972. .UNINDENT
  168973. .IP \(bu 2
  168974. \fBPR\fP \fI\%#46398\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  168975. @ \fI2018\-03\-12 20:25:19 UTC\fP
  168976. .INDENT 2.0
  168977. .IP \(bu 2
  168978. 7cdb00ca9c Merge pull request \fI\%#46398\fP from rallytime/merge\-2018.3
  168979. .IP \(bu 2
  168980. d22e5ba442 Merge fix: return back \fIwb+\fP mode in \fIcrypt.gen_keys\fP\&.
  168981. .IP \(bu 2
  168982. c7dddaf8ce Lint: Use log variable, not logger.
  168983. .IP \(bu 2
  168984. ca1860cd91 Use new get_umask function in mask calls in virt.py
  168985. .IP \(bu 2
  168986. 19ec7b6de1 Update old utils paths with new utils paths
  168987. .IP \(bu 2
  168988. d83727fdf9 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168989. .INDENT 2.0
  168990. .IP \(bu 2
  168991. 95586678c3 Merge pull request \fI\%#46394\fP from Ch3LL/mac_doc
  168992. .INDENT 2.0
  168993. .IP \(bu 2
  168994. 158add6661 change oxdownload to oxdownload\-{python_version}
  168995. .IP \(bu 2
  168996. 21aa848c89 Add mac py2 and py3 packages to mac installation docs
  168997. .UNINDENT
  168998. .IP \(bu 2
  168999. 07b5d09ac1 Merge pull request \fI\%#46338\fP from rallytime/fix\-44831
  169000. .INDENT 2.0
  169001. .IP \(bu 2
  169002. 90771da999 Remove cmd.wait deprecation reference in docs
  169003. .UNINDENT
  169004. .IP \(bu 2
  169005. 3849e7a085 Merge pull request \fI\%#46333\fP from danlsgiga/issue\-42438
  169006. .INDENT 2.0
  169007. .IP \(bu 2
  169008. 3b13f37b44 Revert changes in the code and change docs instead
  169009. .IP \(bu 2
  169010. 38114a65d8 Fixes color parameter mismatch and handles 204 responses correctly
  169011. .UNINDENT
  169012. .IP \(bu 2
  169013. a8f2f1b063 Merge pull request \fI\%#46322\fP from terminalmage/issue44935
  169014. .INDENT 2.0
  169015. .IP \(bu 2
  169016. 85ac6a9893 yamlify_arg: don\(aqt treat leading dashes as lists
  169017. .UNINDENT
  169018. .IP \(bu 2
  169019. da5c282cb2 Merge pull request \fI\%#46327\fP from samilaine/fix\-vmware\-cloud\-fqdn
  169020. .INDENT 2.0
  169021. .IP \(bu 2
  169022. 4b8dfb326f Modify the way a FQDN is handled in the vmware cloud provider.
  169023. .UNINDENT
  169024. .IP \(bu 2
  169025. 78c45d3786 Merge pull request \fI\%#46318\fP from terminalmage/squelch\-warnings
  169026. .INDENT 2.0
  169027. .IP \(bu 2
  169028. 5889b36646 Skip type\-checking for several gitfs/git_pillar/winrepo params
  169029. .UNINDENT
  169030. .IP \(bu 2
  169031. bb0d6fc263 Merge pull request \fI\%#46312\fP from gtmanfred/2017.7
  169032. .INDENT 2.0
  169033. .IP \(bu 2
  169034. 749ae580ed add module_dirs to salt ssh thin tarball
  169035. .UNINDENT
  169036. .IP \(bu 2
  169037. 88b5f7383d Merge pull request \fI\%#46242\fP from redbaron4/fix\-46127
  169038. .INDENT 2.0
  169039. .IP \(bu 2
  169040. 06dba51617 Make changes from review
  169041. .IP \(bu 2
  169042. 727ebe1056 Merge branch \(aq2017.7\(aq into fix\-46127
  169043. .IP \(bu 2
  169044. 08d1ee8baf Fix Python3 test errors
  169045. .IP \(bu 2
  169046. aa9d709015 Pass env_vars to pip.freeze
  169047. .UNINDENT
  169048. .IP \(bu 2
  169049. a0716643e4 Merge pull request \fI\%#46265\fP from Ch3LL/profit_cloud
  169050. .INDENT 2.0
  169051. .IP \(bu 2
  169052. d4893eab4c Add username/password to profitbricks conf for cloud tests
  169053. .UNINDENT
  169054. .IP \(bu 2
  169055. ed7bffa7e0 Merge pull request \fI\%#46306\fP from rallytime/bp\-46256
  169056. .INDENT 2.0
  169057. .IP \(bu 2
  169058. 6439bce4a8 Don\(aqt install msgpack 0.5.5
  169059. .UNINDENT
  169060. .IP \(bu 2
  169061. 8c2c4e3316 Merge pull request \fI\%#46208\fP from terminalmage/audit\-umask\-usage
  169062. .INDENT 2.0
  169063. .IP \(bu 2
  169064. 9c92aadce8 Disable blacklisted\-function check for legitimate uses
  169065. .IP \(bu 2
  169066. 58a11aaa26 Disable pylint check in salt\-ssh shim
  169067. .IP \(bu 2
  169068. ecadf67659 Blacklist os.umask
  169069. .IP \(bu 2
  169070. 31b1d98fcb Replace direct use of os.umask with use of existing context manager
  169071. .IP \(bu 2
  169072. 82ce546e18 Prevent failed os.makedirs from leaving modified umask in place
  169073. .UNINDENT
  169074. .IP \(bu 2
  169075. 978e869490 Merge pull request \fI\%#46293\fP from eliasp/2017.7\-44624\-py3\-compat
  169076. .INDENT 2.0
  169077. .IP \(bu 2
  169078. 2e08b0d9c8 Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  169079. .UNINDENT
  169080. .IP \(bu 2
  169081. bee4a66d0c Merge pull request \fI\%#46264\fP from terminalmage/issue46128
  169082. .INDENT 2.0
  169083. .IP \(bu 2
  169084. 68000b7211 Fix incorrect merge conflict resolution
  169085. .UNINDENT
  169086. .IP \(bu 2
  169087. 1e0b3aa348 Merge pull request \fI\%#46296\fP from vutny/doc\-pillar\-get
  169088. .INDENT 2.0
  169089. .IP \(bu 2
  169090. 1faa8331e1 [DOC] Add missing params to \fIpillar.get\fP docstring
  169091. .UNINDENT
  169092. .IP \(bu 2
  169093. c490a50452 Merge pull request \fI\%#45874\fP from GwiYeong/2017.7\-local\-client\-hotfix
  169094. .INDENT 2.0
  169095. .IP \(bu 2
  169096. 949aefc82b Merge branch \(aq2017.7\(aq into 2017.7\-local\-client\-hotfix
  169097. .IP \(bu 2
  169098. 45d663f435 fix for local client timeout bug
  169099. .UNINDENT
  169100. .IP \(bu 2
  169101. 8e8a3a2897 Merge pull request \fI\%#46261\fP from rallytime/merge\-2017.7
  169102. .INDENT 2.0
  169103. .IP \(bu 2
  169104. 8256ae5ee5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169105. .INDENT 2.0
  169106. .IP \(bu 2
  169107. 140ef4d6b9 Merge pull request \fI\%#46253\fP from rallytime/doc\-banners
  169108. .INDENT 2.0
  169109. .IP \(bu 2
  169110. 07ed8c7db3 Update docbanner for SaltConf18
  169111. .UNINDENT
  169112. .IP \(bu 2
  169113. 9fe86ee520 Merge pull request \fI\%#46179\fP from wedge\-jarrad/cifs\-remount\-fix
  169114. .INDENT 2.0
  169115. .IP \(bu 2
  169116. 9ca25c4313 Add credentials and secretfile to mount.mounted mount_invisible_keys
  169117. .UNINDENT
  169118. .UNINDENT
  169119. .UNINDENT
  169120. .UNINDENT
  169121. .UNINDENT
  169122. .IP \(bu 2
  169123. \fBPR\fP \fI\%#46421\fP: (\fI\%bdrung\fP) Skip SSHPasswordTests if ssh binary is not found
  169124. @ \fI2018\-03\-09 16:21:02 UTC\fP
  169125. .INDENT 2.0
  169126. .IP \(bu 2
  169127. 9c089aa4de Merge pull request \fI\%#46421\fP from bdrung/skip\-ssh\-tests\-if\-ssh\-is\-missing
  169128. .IP \(bu 2
  169129. 3d6f658309 Skip SSHPasswordTests if ssh binary is not found
  169130. .UNINDENT
  169131. .IP \(bu 2
  169132. \fBPR\fP \fI\%#46453\fP: (\fI\%bdrung\fP) Fix various spelling mistakes in 2018.3
  169133. @ \fI2018\-03\-09 14:48:33 UTC\fP
  169134. .INDENT 2.0
  169135. .IP \(bu 2
  169136. \fBPR\fP \fI\%#46446\fP: (\fI\%bdrung\fP) Fix various typos (refs: \fI\%#46453\fP)
  169137. .IP \(bu 2
  169138. 4cbfde5839 Merge pull request \fI\%#46453\fP from bdrung/fix\-typos\-2018.3
  169139. .IP \(bu 2
  169140. 3d37eca847 Fix various spelling mistakes
  169141. .UNINDENT
  169142. .IP \(bu 2
  169143. \fBISSUE\fP \fI\%#44032\fP: (\fI\%PhilippeAB\fP) blockreplace marker_end isn\(aqt applied with newline (refs: \fI\%#46430\fP)
  169144. .IP \(bu 2
  169145. \fBPR\fP \fI\%#46437\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state (2018.3 branch)
  169146. @ \fI2018\-03\-08 15:38:53 UTC\fP
  169147. .INDENT 2.0
  169148. .IP \(bu 2
  169149. \fBPR\fP \fI\%#46430\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state (refs: \fI\%#46437\fP)
  169150. .IP \(bu 2
  169151. a43d999fb8 Merge pull request \fI\%#46437\fP from terminalmage/issue44032\-2018.3
  169152. .IP \(bu 2
  169153. 4798187035 Improve reliability/idempotence of file.blockreplace state (2018.3 branch)
  169154. .UNINDENT
  169155. .IP \(bu 2
  169156. \fBPR\fP \fI\%#46328\fP: (\fI\%dincamihai\fP) Fix openscap push
  169157. @ \fI2018\-03\-07 17:51:41 UTC\fP
  169158. .INDENT 2.0
  169159. .IP \(bu 2
  169160. 0c66507aff Merge pull request \fI\%#46328\fP from dincamihai/2018.3.0rc1
  169161. .IP \(bu 2
  169162. b5e508f339 Fix openscap push
  169163. .UNINDENT
  169164. .IP \(bu 2
  169165. \fBPR\fP \fI\%#46174\fP: (\fI\%twangboy\fP) Fix a unicode issue with the git module on Windows
  169166. @ \fI2018\-03\-06 18:53:53 UTC\fP
  169167. .INDENT 2.0
  169168. .IP \(bu 2
  169169. 82cb2ea5a0 Merge pull request \fI\%#46174\fP from twangboy/win_fix_test_git_2
  169170. .IP \(bu 2
  169171. 80e3a47dd4 Add output_encoding argument to git state, and add docs
  169172. .IP \(bu 2
  169173. 661a0687ec Fix git utf\-8 issues for Windows
  169174. .UNINDENT
  169175. .IP \(bu 2
  169176. \fBPR\fP \fI\%#46235\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_ssh\fP for Windows
  169177. @ \fI2018\-03\-05 20:39:44 UTC\fP
  169178. .INDENT 2.0
  169179. .IP \(bu 2
  169180. 7690cf8564 Merge pull request \fI\%#46235\fP from twangboy/win_fix_test_ssh
  169181. .IP \(bu 2
  169182. 9ea02d7045 Use write instead of writelines for Windows
  169183. .UNINDENT
  169184. .IP \(bu 2
  169185. \fBPR\fP \fI\%#46332\fP: (\fI\%terminalmage\fP) Update the merge\-forward docs to reference the 2018.3 branch
  169186. @ \fI2018\-03\-05 19:39:56 UTC\fP
  169187. .INDENT 2.0
  169188. .IP \(bu 2
  169189. c4f366cdd9 Merge pull request \fI\%#46332\fP from terminalmage/merge\-forward\-docs
  169190. .IP \(bu 2
  169191. 0411845cec Update the merge\-forward docs to reference the 2018.3 branch
  169192. .UNINDENT
  169193. .IP \(bu 2
  169194. \fBPR\fP \fI\%#46307\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  169195. @ \fI2018\-03\-03 12:56:07 UTC\fP
  169196. .INDENT 2.0
  169197. .IP \(bu 2
  169198. 241611aca5 Merge pull request \fI\%#46307\fP from rallytime/merge\-2018.3
  169199. .IP \(bu 2
  169200. c9fa21f62c Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  169201. .UNINDENT
  169202. .IP \(bu 2
  169203. \fBPR\fP \fI\%#46314\fP: (\fI\%terminalmage\fP) Merge 2017.7 branch into 2018.3
  169204. @ \fI2018\-03\-03 12:54:27 UTC\fP
  169205. .INDENT 2.0
  169206. .IP \(bu 2
  169207. 30c34f0c62 Merge pull request \fI\%#46314\fP from terminalmage/merge\-2017.7\-2018.3
  169208. .IP \(bu 2
  169209. 61ab47ee70 Merge branch \(aq2017.7\(aq into merge\-2017.7\-2018.3
  169210. .INDENT 2.0
  169211. .IP \(bu 2
  169212. 88a3166589 Merge pull request \fI\%#46276\fP from terminalmage/issue44046
  169213. .INDENT 2.0
  169214. .IP \(bu 2
  169215. a14d4daf8c salt.utils.docker.translate_input: operate on deepcopy of kwargs
  169216. .UNINDENT
  169217. .IP \(bu 2
  169218. da60399b8f Merge pull request \fI\%#46183\fP from oeuftete/fix\-docker\-container\-running\-host\-config\-ulimits
  169219. .INDENT 2.0
  169220. .IP \(bu 2
  169221. 5b09644429 Sort lists from Ulimits before comparing
  169222. .IP \(bu 2
  169223. 0b80f02226 Update old dockerng doc ref
  169224. .UNINDENT
  169225. .IP \(bu 2
  169226. 509429f08c Merge pull request \fI\%#46260\fP from terminalmage/git_pillar
  169227. .INDENT 2.0
  169228. .IP \(bu 2
  169229. b1ce2501fd Normalize global git_pillar/winrepo config items
  169230. .UNINDENT
  169231. .IP \(bu 2
  169232. a97a3e6fb0 Merge pull request \fI\%#46101\fP from jfindlay/openrc_ret
  169233. .INDENT 2.0
  169234. .IP \(bu 2
  169235. 2eef3c65a6 tests.unit.modules.gentoo_service add retcode arg
  169236. .IP \(bu 2
  169237. 81ec66fd8b modules.gentoo_service handle stopped retcode
  169238. .UNINDENT
  169239. .IP \(bu 2
  169240. 1a17593c05 Merge pull request \fI\%#46254\fP from rallytime/enterprise\-banner
  169241. .INDENT 2.0
  169242. .IP \(bu 2
  169243. f5fae3dedf Update enterprise banner
  169244. .UNINDENT
  169245. .IP \(bu 2
  169246. 8c50ff32bd Merge pull request \fI\%#46250\fP from terminalmage/runner\-docs
  169247. .INDENT 2.0
  169248. .IP \(bu 2
  169249. 91b4895087 Add documentation to the fileserver runner
  169250. .UNINDENT
  169251. .IP \(bu 2
  169252. 53067cca43 Merge pull request \fI\%#46243\fP from racker\-markh/fix\-openstack\-private\-network\-issue
  169253. .INDENT 2.0
  169254. .IP \(bu 2
  169255. 50c1e140f0 Don\(aqt check deny private_ips already in the original list of private_ips
  169256. .UNINDENT
  169257. .IP \(bu 2
  169258. 15405c8760 Merge pull request \fI\%#46239\fP from terminalmage/issue46109
  169259. .INDENT 2.0
  169260. .IP \(bu 2
  169261. 586d8b0dcf archive.extracted: don\(aqt check source file when if_missing path exists
  169262. .UNINDENT
  169263. .UNINDENT
  169264. .UNINDENT
  169265. .IP \(bu 2
  169266. \fBISSUE\fP \fI\%#33177\fP: (\fI\%robnagler\fP) pillar.stack should not continue after errors (refs: \fI\%#46287\fP)
  169267. .IP \(bu 2
  169268. \fBPR\fP \fI\%#46287\fP: (\fI\%bbinet\fP) Update PillarStack stack.py to latest upstream version
  169269. @ \fI2018\-03\-02 21:39:52 UTC\fP
  169270. .INDENT 2.0
  169271. .IP \(bu 2
  169272. 194b0317ac Merge pull request \fI\%#46287\fP from bbinet/upstream\-pillarstack
  169273. .IP \(bu 2
  169274. b14b6f2c95 Update PillarStack stack.py to latest upstream version
  169275. .UNINDENT
  169276. .IP \(bu 2
  169277. \fBPR\fP \fI\%#46227\fP: (\fI\%Ch3LL\fP) Mock file_client call in smtp return test
  169278. @ \fI2018\-02\-28 22:12:22 UTC\fP
  169279. .INDENT 2.0
  169280. .IP \(bu 2
  169281. 7382654c70 Merge pull request \fI\%#46227\fP from Ch3LL/smtp_file_client
  169282. .IP \(bu 2
  169283. 280dc9a2b6 Mock file_client call in smtp return test
  169284. .UNINDENT
  169285. .IP \(bu 2
  169286. \fBPR\fP \fI\%#46232\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  169287. @ \fI2018\-02\-28 19:16:37 UTC\fP
  169288. .INDENT 2.0
  169289. .IP \(bu 2
  169290. 123625213e Merge pull request \fI\%#46232\fP from rallytime/merge\-2018.3
  169291. .IP \(bu 2
  169292. 04f24c1794 Lint: fix from a bad merge
  169293. .IP \(bu 2
  169294. aad61c77bd Update old utils paths to new paths
  169295. .IP \(bu 2
  169296. 7243baf2c0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  169297. .INDENT 2.0
  169298. .IP \(bu 2
  169299. 633e1208e4 Merge pull request \fI\%#46221\fP from terminalmage/salt\-jenkins\-854
  169300. .INDENT 2.0
  169301. .IP \(bu 2
  169302. 0eb012659c Fix hanging tests in integration suite
  169303. .UNINDENT
  169304. .IP \(bu 2
  169305. 7917277345 Merge pull request \fI\%#46214\fP from vutny/formulas\-readme\-formatting
  169306. .INDENT 2.0
  169307. .IP \(bu 2
  169308. d702846961 [DOC] Replace \fInote\fP rST block for GitHub
  169309. .UNINDENT
  169310. .IP \(bu 2
  169311. a2e099b744 Merge pull request \fI\%#46203\fP from Ch3LL/7.5_release
  169312. .INDENT 2.0
  169313. .IP \(bu 2
  169314. 6ddf3246ce Add 2017.7.5 Release Notes File
  169315. .UNINDENT
  169316. .IP \(bu 2
  169317. 973b227818 Merge pull request \fI\%#46201\fP from rallytime/merge\-2017.7
  169318. .INDENT 2.0
  169319. .IP \(bu 2
  169320. 9ac2101baa Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169321. .IP \(bu 2
  169322. a4c5417d23 Merge pull request \fI\%#46132\fP from rallytime/2016.11_update_version_doc
  169323. .INDENT 2.0
  169324. .IP \(bu 2
  169325. d2196b6df3 Update release versions for the 2016.11 branch
  169326. .UNINDENT
  169327. .UNINDENT
  169328. .IP \(bu 2
  169329. 89cf2e5061 Merge pull request \fI\%#46139\fP from bdrung/os\-grains
  169330. .INDENT 2.0
  169331. .IP \(bu 2
  169332. 0b445f2a37 tests: Add unit tests for _parse_os_release()
  169333. .IP \(bu 2
  169334. f6069b77ed Fix osfinger grain on Debian
  169335. .IP \(bu 2
  169336. 8dde55a761 tests: Add os_grains test cases for Debian
  169337. .IP \(bu 2
  169338. ff02ab9937 tests: Add Ubuntu 17.10 (artful) os_grains test case
  169339. .IP \(bu 2
  169340. 77d5356aba Fix incorrect oscodename grain on Ubuntu
  169341. .IP \(bu 2
  169342. 7e62dc9fd2 tests: Support reading os\-release files from disk
  169343. .IP \(bu 2
  169344. a92ec0db1b Make _parse_os_release() always callable
  169345. .IP \(bu 2
  169346. eee1fe5b38 tests: Dissolve _run_ubuntu_os_grains_tests
  169347. .IP \(bu 2
  169348. 1d6ef731fe tests: Deduplicate _run_os_grains_tests()
  169349. .UNINDENT
  169350. .IP \(bu 2
  169351. c8c71e75ca Merge pull request \fI\%#46133\fP from rallytime/2017.7_update_version_doc
  169352. .INDENT 2.0
  169353. .IP \(bu 2
  169354. 0ed338e643 Update release versions for the 2017.7 branch
  169355. .UNINDENT
  169356. .IP \(bu 2
  169357. 390d592aa6 Merge pull request \fI\%#46185\fP from terminalmage/issue46124
  169358. .INDENT 2.0
  169359. .IP \(bu 2
  169360. 3b58dd0da0 gitfs: Fix detection of base env when its ref is also mapped to a different env
  169361. .UNINDENT
  169362. .IP \(bu 2
  169363. 705caa8cca Merge pull request \fI\%#46148\fP from rallytime/merge\-2017.7
  169364. .INDENT 2.0
  169365. .IP \(bu 2
  169366. 25deebf7a6 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  169367. .INDENT 2.0
  169368. .IP \(bu 2
  169369. b5b083fd26 Merge pull request \fI\%#46074\fP from Ch3LL/update\-7.4
  169370. .INDENT 2.0
  169371. .IP \(bu 2
  169372. 8d0eeeb059 Update 2017.7.4 Release Notes with new fixes
  169373. .UNINDENT
  169374. .IP \(bu 2
  169375. 32f3d00e44 Merge pull request \fI\%#46066\fP from rallytime/pin\-tornado
  169376. .INDENT 2.0
  169377. .IP \(bu 2
  169378. 6dc1a3b9dc Pin tornado version in requirements file
  169379. .UNINDENT
  169380. .IP \(bu 2
  169381. 85761ee650 Merge pull request \fI\%#46036\fP from terminalmage/issue43769
  169382. .INDENT 2.0
  169383. .IP \(bu 2
  169384. e2140d9a84 Mock the ssh.key_is_encrypted utils func
  169385. .IP \(bu 2
  169386. 169924b3fe Move ssh.key_is_encrypted to a utils module temporarily
  169387. .IP \(bu 2
  169388. 54f4d78f7a Only keep ssh.py in the Windows installer
  169389. .IP \(bu 2
  169390. 5f04531e1b Keep ssh state and execution modules in the installer
  169391. .IP \(bu 2
  169392. f2b69f703d git.latest: Fix regression with identity file usage
  169393. .UNINDENT
  169394. .UNINDENT
  169395. .UNINDENT
  169396. .IP \(bu 2
  169397. 10a47dcbc4 Merge pull request \fI\%#46137\fP from damon\-atkins/2017.7_fix_ec2_pillar2
  169398. .INDENT 2.0
  169399. .IP \(bu 2
  169400. 99e7f6a7d3 update ec2 pillar arguments with better names
  169401. .UNINDENT
  169402. .IP \(bu 2
  169403. d74cb14557 Merge pull request \fI\%#46145\fP from terminalmage/issue46004
  169404. .INDENT 2.0
  169405. .IP \(bu 2
  169406. 467ff841cd pillarenv argument should default to None and not the value from opts
  169407. .IP \(bu 2
  169408. 2a185855ea Better solution for fixing the opts munging in pillar.show_pillar runner
  169409. .IP \(bu 2
  169410. e2c4702e0c Update tests to reflect changes to the SaltCacheLoader
  169411. .IP \(bu 2
  169412. f9301fcc34 Document behavior when orchestration runnner invoked with non\-orch states
  169413. .IP \(bu 2
  169414. 9644579cd0 Instantiate the SaltCacheLoader\(aqs fileclient in the __init__
  169415. .IP \(bu 2
  169416. f9a6c86e21 salt.runners.pillar.show_pillar: don\(aqt modify master opts
  169417. .IP \(bu 2
  169418. e0940a9fc4 Properly detect use of the state.orch alias and add orch jid to kwargs
  169419. .UNINDENT
  169420. .UNINDENT
  169421. .UNINDENT
  169422. .IP \(bu 2
  169423. \fBISSUE\fP \fI\%#42932\fP: (\fI\%bobrik\fP) cmd.run with bg: true doesn\(aqt fail properly (refs: \fI\%#46172\fP, \fI\%#45932\fP)
  169424. .IP \(bu 2
  169425. \fBPR\fP \fI\%#46172\fP: (\fI\%The\-Loeki\fP) cmdmod: reimplementation of \fI\%#45932\fP for Oxygen
  169426. @ \fI2018\-02\-28 19:14:26 UTC\fP
  169427. .INDENT 2.0
  169428. .IP \(bu 2
  169429. \fBPR\fP \fI\%#45932\fP: (\fI\%The\-Loeki\fP) Fix cmd run_all bg error (refs: \fI\%#46172\fP)
  169430. .IP \(bu 2
  169431. \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)
  169432. .IP \(bu 2
  169433. 20d869c228 Merge pull request \fI\%#46172\fP from The\-Loeki/fix_cmd_run_all_bg_oxygen
  169434. .IP \(bu 2
  169435. 3ecf5018d0 Merge branch \(aq2018.3\(aq into fix_cmd_run_all_bg_oxygen
  169436. .IP \(bu 2
  169437. b5315e817b Merge branch \(aq2018.3\(aq into fix_cmd_run_all_bg_oxygen
  169438. .IP \(bu 2
  169439. beabf4f06b cmdmod: reimplementation of \fI\%#45932\fP for Oxygen
  169440. .UNINDENT
  169441. .IP \(bu 2
  169442. \fBPR\fP \fI\%#46238\fP: (\fI\%terminalmage\fP) Don\(aqt allow salt.utils.files.fopen() to open stdin/stdout/stderr
  169443. @ \fI2018\-02\-28 19:08:23 UTC\fP
  169444. .INDENT 2.0
  169445. .IP \(bu 2
  169446. 687575b582 Merge pull request \fI\%#46238\fP from terminalmage/fds\-in\-fopen
  169447. .IP \(bu 2
  169448. fe1527a3c4 Don\(aqt allow salt.utils.files.fopen() to open stdin/stdout/stderr
  169449. .UNINDENT
  169450. .IP \(bu 2
  169451. \fBPR\fP \fI\%#46219\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_network\fP for Windows
  169452. @ \fI2018\-02\-28 15:45:02 UTC\fP
  169453. .INDENT 2.0
  169454. .IP \(bu 2
  169455. 3da5dcb313 Merge pull request \fI\%#46219\fP from twangboy/win_fix_inet_pton
  169456. .IP \(bu 2
  169457. 46f1d2cc09 Use six.text_type instead of six.u
  169458. .UNINDENT
  169459. .IP \(bu 2
  169460. \fBPR\fP \fI\%#46228\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pip\fP for Windows
  169461. @ \fI2018\-02\-28 15:37:49 UTC\fP
  169462. .INDENT 2.0
  169463. .IP \(bu 2
  169464. 44343f8063 Merge pull request \fI\%#46228\fP from twangboy/win_fix_test_pip
  169465. .IP \(bu 2
  169466. 415821eee9 Fix encoding issue
  169467. .UNINDENT
  169468. .IP \(bu 2
  169469. \fBPR\fP \fI\%#46198\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  169470. @ \fI2018\-02\-27 15:17:51 UTC\fP
  169471. .INDENT 2.0
  169472. .IP \(bu 2
  169473. adc8950bbe Merge pull request \fI\%#46198\fP from rallytime/merge\-2018.3
  169474. .IP \(bu 2
  169475. 1b4dc71930 Lint fix
  169476. .IP \(bu 2
  169477. 776f2ea5d7 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  169478. .UNINDENT
  169479. .IP \(bu 2
  169480. \fBISSUE\fP \fI\%#45849\fP: (\fI\%Epiclemonaid\fP) XenServer Provisioning errors out on this line. removing it succeeds. (refs: \fI\%#46168\fP)
  169481. .IP \(bu 2
  169482. \fBPR\fP \fI\%#46168\fP: (\fI\%gtmanfred\fP) driver and provider should be specified
  169483. @ \fI2018\-02\-26 16:17:13 UTC\fP
  169484. .INDENT 2.0
  169485. .IP \(bu 2
  169486. 06d2dff3ac Merge pull request \fI\%#46168\fP from gtmanfred/2018.3
  169487. .IP \(bu 2
  169488. ac99bd26db driver and provider should be specified
  169489. .UNINDENT
  169490. .IP \(bu 2
  169491. \fBPR\fP \fI\%#46161\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  169492. @ \fI2018\-02\-26 15:29:39 UTC\fP
  169493. .INDENT 2.0
  169494. .IP \(bu 2
  169495. 605e5eff73 Merge pull request \fI\%#46161\fP from rallytime/merge\-2018.3
  169496. .IP \(bu 2
  169497. 69ac94baca Update utils paths
  169498. .IP \(bu 2
  169499. cffbf52c10 Lint fix: remove extra line
  169500. .IP \(bu 2
  169501. 79bed6cff1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  169502. .INDENT 2.0
  169503. .IP \(bu 2
  169504. 0398ce0482 Merge pull request \fI\%#46135\fP from rallytime/bp\-46088
  169505. .INDENT 2.0
  169506. .IP \(bu 2
  169507. 57a60f62a3 fix kernel subpackages install bug
  169508. .UNINDENT
  169509. .IP \(bu 2
  169510. 1fcbbd1e02 Merge pull request \fI\%#46136\fP from rallytime/bp\-46115
  169511. .INDENT 2.0
  169512. .IP \(bu 2
  169513. 0a481d707f update digitalocean salt\-cloud driver
  169514. .UNINDENT
  169515. .IP \(bu 2
  169516. 11e5e8eb86 Merge pull request \fI\%#45911\fP from twangboy/win_fix_lgpo_unicode
  169517. .INDENT 2.0
  169518. .IP \(bu 2
  169519. bcde5cc625 Update log statement
  169520. .IP \(bu 2
  169521. e9fa53d3b7 Change the Invalid Data Message
  169522. .IP \(bu 2
  169523. c818d4b791 Convert reg values to unicode for debug
  169524. .UNINDENT
  169525. .IP \(bu 2
  169526. 524a6a72a0 Merge pull request \fI\%#46123\fP from gtmanfred/2017.7
  169527. .INDENT 2.0
  169528. .IP \(bu 2
  169529. 8d36730ef7 If no pubkey is passed in openmode fail
  169530. .UNINDENT
  169531. .IP \(bu 2
  169532. e48fa58012 Merge pull request \fI\%#46131\fP from vutny/doc\-formula\-formatting
  169533. .INDENT 2.0
  169534. .IP \(bu 2
  169535. d8fb051e44 [DOC] Fix code\-blocks for reStructuredText
  169536. .UNINDENT
  169537. .IP \(bu 2
  169538. 6cea44ee95 Merge pull request \fI\%#46118\fP from rallytime/bp\-44603
  169539. .INDENT 2.0
  169540. .IP \(bu 2
  169541. 2a2c23c66b Fix acme state to correctly return on test
  169542. .UNINDENT
  169543. .IP \(bu 2
  169544. 16c382b55b Merge pull request \fI\%#46121\fP from rallytime/merge\-2017.7
  169545. .INDENT 2.0
  169546. .IP \(bu 2
  169547. 4c2f504a85 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169548. .INDENT 2.0
  169549. .IP \(bu 2
  169550. e197a0fbc5 Merge pull request \fI\%#46076\fP from rallytime/bp\-46066
  169551. .INDENT 2.0
  169552. .IP \(bu 2
  169553. b94d73c53e Pin tornado version in requirements file
  169554. .UNINDENT
  169555. .IP \(bu 2
  169556. c72c1bde5f Merge pull request \fI\%#46093\fP from wedge\-jarrad/contributing\-doc\-typo
  169557. .INDENT 2.0
  169558. .IP \(bu 2
  169559. 5a0fe104f7 Fix contributing doc typo
  169560. .UNINDENT
  169561. .IP \(bu 2
  169562. 3cb83ea87e Merge pull request \fI\%#45992\fP from bgridley/fix\-routes\-present\-state
  169563. .INDENT 2.0
  169564. .IP \(bu 2
  169565. 679787699c Add vpc_peering_connection_id to describe_route_tables route_keys
  169566. .UNINDENT
  169567. .IP \(bu 2
  169568. 8a60635da0 Merge pull request \fI\%#46000\fP from terminalmage/issue45910
  169569. .INDENT 2.0
  169570. .IP \(bu 2
  169571. 8cf13325ee salt.states.reg.present: Prevent traceback when reg data is binary
  169572. .UNINDENT
  169573. .IP \(bu 2
  169574. 1f44e285dc Merge pull request \fI\%#46011\fP from terminalmage/fix\-solaris\-runas
  169575. .INDENT 2.0
  169576. .IP \(bu 2
  169577. 8ee0a3a28b Move Solaris USER workaround up a bit
  169578. .IP \(bu 2
  169579. 13cdb52690 cmdmod.py: runas workaround for platforms that don\(aqt set a USER env var
  169580. .UNINDENT
  169581. .IP \(bu 2
  169582. 30fb8f7be0 Merge pull request \fI\%#45467\fP from twangboy/win_exclude_hidden
  169583. .INDENT 2.0
  169584. .IP \(bu 2
  169585. ea41215646 Make the regex pattern less greedy
  169586. .IP \(bu 2
  169587. 6d223cffa7 Add tip about passing bogus saltenv
  169588. .IP \(bu 2
  169589. 1282ae3a93 Skip hidden first
  169590. .IP \(bu 2
  169591. 437a457911 Skip hidden dirs in genrepo
  169592. .IP \(bu 2
  169593. 87dc554dc3 Add final updates to docs
  169594. .IP \(bu 2
  169595. 3646d5c897 Fix some docs formatting, add some warnings
  169596. .IP \(bu 2
  169597. 35c81faf5a Log the source_dir when caching the files
  169598. .IP \(bu 2
  169599. 91c3da8dfd Improve docs for pkg.refresh_db
  169600. .IP \(bu 2
  169601. 4803d92707 Add some documentation
  169602. .IP \(bu 2
  169603. 08b82e0875 Fix lint error, use raw
  169604. .IP \(bu 2
  169605. 2f712691cf Exclude hidden directories in pkg.refresh_db
  169606. .UNINDENT
  169607. .UNINDENT
  169608. .UNINDENT
  169609. .IP \(bu 2
  169610. b92346645b Merge pull request \fI\%#46107\fP from amendlik/yumpkg\-assumeyes
  169611. .INDENT 2.0
  169612. .IP \(bu 2
  169613. 8d9a432fb2 Add \-\-assumeyes to yum/dnf commands in yumpkg.refresh_db
  169614. .UNINDENT
  169615. .IP \(bu 2
  169616. 14fe423e0c Merge pull request \fI\%#46094\fP from kstreee/fix\-memory\-leak
  169617. .INDENT 2.0
  169618. .IP \(bu 2
  169619. 48080a1bae Fixes memory leak, saltclients should be cleaned after used.
  169620. .IP \(bu 2
  169621. aba00805f4 Adds set_close_callback function to removes stream instance after closed from a set streams.
  169622. .UNINDENT
  169623. .IP \(bu 2
  169624. 320c2037e1 Merge pull request \fI\%#46097\fP from vutny/fix\-https\-link
  169625. .INDENT 2.0
  169626. .IP \(bu 2
  169627. 2062fd0e5c [DOC] Put https link to the formulas doc page
  169628. .UNINDENT
  169629. .IP \(bu 2
  169630. 0eb137fb4e Merge pull request \fI\%#46103\fP from bdrung/2017.7
  169631. .INDENT 2.0
  169632. .IP \(bu 2
  169633. dd3f936557 Fix skipping Kubernetes tests if client is not installed
  169634. .UNINDENT
  169635. .IP \(bu 2
  169636. c3a938e994 Merge pull request \fI\%#46070\fP from Ch3LL/fix\-doc\-dns
  169637. .INDENT 2.0
  169638. .IP \(bu 2
  169639. 2a5d855d97 add required arg to dns_check jinja doc example
  169640. .UNINDENT
  169641. .IP \(bu 2
  169642. 01042e9d77 Merge pull request \fI\%#46067\fP from rallytime/bp\-45994
  169643. .INDENT 2.0
  169644. .IP \(bu 2
  169645. a07bb48726 Correct formatting for lint
  169646. .IP \(bu 2
  169647. e8678f633d Fix Comment being None not \(aq\(aq and inject quotes into the TXT ChangeRecords
  169648. .UNINDENT
  169649. .IP \(bu 2
  169650. 5e0e2a30e2 Merge pull request \fI\%#45932\fP from The\-Loeki/fix_cmd_run_all_bg
  169651. .INDENT 2.0
  169652. .IP \(bu 2
  169653. f83da27ca5 Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  169654. .IP \(bu 2
  169655. 771758fbca Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  169656. .IP \(bu 2
  169657. c54fcf7a2d cmd: move separate DRY logging blocks into _run, prevent logging on bg=True, don\(aqt use_vt on bg
  169658. .IP \(bu 2
  169659. ebb1f81a9b cmd run: when running in bg, force ignore_retcode=True
  169660. .UNINDENT
  169661. .IP \(bu 2
  169662. 45ace39961 Merge pull request \fI\%#46062\fP from vutny/pg\-user\-state\-fix\-typo
  169663. .INDENT 2.0
  169664. .IP \(bu 2
  169665. a5fbe4e95e Fix typo in postgres_user.present state function
  169666. .UNINDENT
  169667. .IP \(bu 2
  169668. edcb64de76 Merge pull request \fI\%#45763\fP from twangboy/win_fix_path_rehash
  169669. .INDENT 2.0
  169670. .IP \(bu 2
  169671. b9a2bc7b29 Fix hyperlinks
  169672. .IP \(bu 2
  169673. 29912adc15 Move the test_rehash test to test_win_functions
  169674. .IP \(bu 2
  169675. adc594c183 Remove duplicate link
  169676. .IP \(bu 2
  169677. e84628c1eb Add some comments to the code
  169678. .IP \(bu 2
  169679. d50d5f582f Add additional info to docs for \fIbroadcast_setting_change\fP
  169680. .IP \(bu 2
  169681. 3a54e09cd9 Rename setting to message
  169682. .IP \(bu 2
  169683. a3f9e99bc0 Change to a generic function to broadcast change
  169684. .IP \(bu 2
  169685. 79299361c3 Create refresh_environment salt util
  169686. .IP \(bu 2
  169687. 967b83940c Fix rehash function
  169688. .UNINDENT
  169689. .IP \(bu 2
  169690. a46fbc546c Merge pull request \fI\%#46042\fP from jfindlay/file_tree_doc
  169691. .INDENT 2.0
  169692. .IP \(bu 2
  169693. 0ba4954a4b salt.pillar.file_tree revise module documentation
  169694. .IP \(bu 2
  169695. 3c6a5bf967 salt.pillar.file_tree provide better debug info
  169696. .IP \(bu 2
  169697. bb1cdc451e salt.pillar.file_tree no stack trace when nodegroups undefined
  169698. .UNINDENT
  169699. .IP \(bu 2
  169700. de86126dd8 Merge pull request \fI\%#46013\fP from rallytime/bp\-45598
  169701. .INDENT 2.0
  169702. .IP \(bu 2
  169703. 2ea3fef543 No lazy logging
  169704. .IP \(bu 2
  169705. f427b0febc Change formatting style of logging lines per review
  169706. .IP \(bu 2
  169707. ebb244396b Patch around ResourceRecords needing to be present for AliasTarget entries to work
  169708. .UNINDENT
  169709. .UNINDENT
  169710. .UNINDENT
  169711. .IP \(bu 2
  169712. \fBPR\fP \fI\%#46160\fP: (\fI\%rallytime\fP) Mark 2 tests as flaky
  169713. @ \fI2018\-02\-23 19:10:06 UTC\fP
  169714. .INDENT 2.0
  169715. .IP \(bu 2
  169716. 05b771bfd7 Merge pull request \fI\%#46160\fP from rallytime/flaky\-tests
  169717. .IP \(bu 2
  169718. 49e49ae51b Mark 2 tests as flaky
  169719. .UNINDENT
  169720. .IP \(bu 2
  169721. \fBPR\fP \fI\%#46006\fP: (\fI\%dincamihai\fP) Remove obsolete unicode handling in pkg.info_installed
  169722. @ \fI2018\-02\-22 19:22:36 UTC\fP
  169723. .INDENT 2.0
  169724. .IP \(bu 2
  169725. 9b2bc1982c Merge pull request \fI\%#46006\fP from dincamihai/oxygen.rc1
  169726. .IP \(bu 2
  169727. 99079fc442 Remove obsolete unicode handling in pkg.info_installed
  169728. .UNINDENT
  169729. .IP \(bu 2
  169730. \fBPR\fP \fI\%#46078\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  169731. @ \fI2018\-02\-20 21:49:04 UTC\fP
  169732. .INDENT 2.0
  169733. .IP \(bu 2
  169734. 93dab45307 Merge pull request \fI\%#46078\fP from rallytime/merge\-oxygen
  169735. .IP \(bu 2
  169736. 2d0f81fd1b Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  169737. .UNINDENT
  169738. .IP \(bu 2
  169739. \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)
  169740. .IP \(bu 2
  169741. \fBPR\fP \fI\%#46071\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46043\fP to oxygen
  169742. @ \fI2018\-02\-16 19:56:36 UTC\fP
  169743. .INDENT 2.0
  169744. .IP \(bu 2
  169745. \fBPR\fP \fI\%#46043\fP: (\fI\%edgan\fP) Allow zookeeper znode creation to not require an ACL (refs: \fI\%#46071\fP)
  169746. .IP \(bu 2
  169747. 8d99c3b8fe Merge pull request \fI\%#46071\fP from rallytime/bp\-46043
  169748. .IP \(bu 2
  169749. b82c8bd630 Allow zookeeper znode creation to not require an ACL
  169750. .UNINDENT
  169751. .IP \(bu 2
  169752. \fBPR\fP \fI\%#46056\fP: (\fI\%Ch3LL\fP) Fix mac_assistive module not loading
  169753. @ \fI2018\-02\-16 14:57:46 UTC\fP
  169754. .INDENT 2.0
  169755. .IP \(bu 2
  169756. 5a31422432 Merge pull request \fI\%#46056\fP from Ch3LL/ver_mac
  169757. .IP \(bu 2
  169758. e44f5133c5 Fix mac_assistive module not loading
  169759. .UNINDENT
  169760. .IP \(bu 2
  169761. \fBPR\fP \fI\%#46041\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  169762. @ \fI2018\-02\-16 14:55:51 UTC\fP
  169763. .INDENT 2.0
  169764. .IP \(bu 2
  169765. cdca28f5da Merge pull request \fI\%#46041\fP from rallytime/merge\-oxygen
  169766. .IP \(bu 2
  169767. e060a74fd8 Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  169768. .INDENT 2.0
  169769. .IP \(bu 2
  169770. 07e5735471 Merge pull request \fI\%#46016\fP from rallytime/bp\-45826
  169771. .INDENT 2.0
  169772. .IP \(bu 2
  169773. 1916e5c4a4 Fix selinux.fcontext_policy_present for Centos 6
  169774. .UNINDENT
  169775. .IP \(bu 2
  169776. a1f4092811 Merge pull request \fI\%#46015\fP from rallytime/bp\-45785
  169777. .INDENT 2.0
  169778. .IP \(bu 2
  169779. ef6ffb1492 Resolve linting errors
  169780. .IP \(bu 2
  169781. 8047066c46 Remove unused import
  169782. .IP \(bu 2
  169783. 8f7c45935a Add tests for salt.modules.selinux.fcontext_get_policy
  169784. .IP \(bu 2
  169785. bafb7b4e6e Ensure parsed fields are stripped
  169786. .IP \(bu 2
  169787. a830a6e819 m/selinux.fcontext_get_policy allow long filespecs
  169788. .UNINDENT
  169789. .IP \(bu 2
  169790. 96097c037e Merge pull request \fI\%#46012\fP from rallytime/bp\-45462
  169791. .INDENT 2.0
  169792. .IP \(bu 2
  169793. 9f76836a6c emit port cli version, variants as separate args
  169794. .UNINDENT
  169795. .IP \(bu 2
  169796. 1279924f5f Merge pull request \fI\%#45991\fP from terminalmage/fix\-duplicate\-extra\-opts
  169797. .INDENT 2.0
  169798. .IP \(bu 2
  169799. 916766f651 yumpkg: Fix a couple issues with _get_extra_opts
  169800. .UNINDENT
  169801. .IP \(bu 2
  169802. 8b9adc258e Merge pull request \fI\%#46017\fP from rallytime/merge\-2017.7
  169803. .INDENT 2.0
  169804. .IP \(bu 2
  169805. a06645ce71 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  169806. .IP \(bu 2
  169807. 6d534c6e7e Merge pull request \fI\%#46009\fP from Ch3LL/rn_7.4
  169808. .INDENT 2.0
  169809. .IP \(bu 2
  169810. ac0baf4b34 Add 2017.7.4 Release Notes with PRs
  169811. .UNINDENT
  169812. .IP \(bu 2
  169813. ca76a0b328 Merge pull request \fI\%#45981\fP from gtmanfred/2017.7.3
  169814. .INDENT 2.0
  169815. .IP \(bu 2
  169816. 0d448457dc apparently local is not set by default
  169817. .IP \(bu 2
  169818. 2a92f4bc16 use local config for vault when masterless
  169819. .UNINDENT
  169820. .IP \(bu 2
  169821. 6530649dbc Merge pull request \fI\%#45953\fP from rallytime/bp\-45928\-2017.7.3
  169822. .INDENT 2.0
  169823. .IP \(bu 2
  169824. 85363189d1 Fixing vault when used with pillar over salt\-ssh
  169825. .UNINDENT
  169826. .IP \(bu 2
  169827. fb378cebb0 Merge pull request \fI\%#45934\fP from rallytime/bp\-45902
  169828. .INDENT 2.0
  169829. .IP \(bu 2
  169830. bb83e8b345 Add regression test for issue 45893
  169831. .IP \(bu 2
  169832. cdda66d759 Remove duplicated section in docstring and fix example
  169833. .IP \(bu 2
  169834. 4b6351cda6 Check the effective saltenv for cached archive
  169835. .UNINDENT
  169836. .IP \(bu 2
  169837. 0d74151c71 Merge pull request \fI\%#45935\fP from rallytime/bp\-45742
  169838. .INDENT 2.0
  169839. .IP \(bu 2
  169840. 6a0b5f7af3 Removed the chained copy
  169841. .IP \(bu 2
  169842. ad1150fad4 list.copy() is not compatible with python 2.7
  169843. .UNINDENT
  169844. .UNINDENT
  169845. .IP \(bu 2
  169846. d20ff89414 Merge pull request \fI\%#45988\fP from rallytime/bp\-45797
  169847. .INDENT 2.0
  169848. .IP \(bu 2
  169849. 953a400d79 follow symlinks
  169850. .UNINDENT
  169851. .IP \(bu 2
  169852. b18087cee0 Merge pull request \fI\%#45711\fP from bdrung/fix\-unicode\-tests
  169853. .INDENT 2.0
  169854. .IP \(bu 2
  169855. b6181b5ed6 Fix Unicode tests when run with LC_ALL=POSIX
  169856. .UNINDENT
  169857. .IP \(bu 2
  169858. 5271fb1d40 Merge pull request \fI\%#45878\fP from damon\-atkins/2017.7_fix_ec2_pillar
  169859. .INDENT 2.0
  169860. .IP \(bu 2
  169861. 0e74025714 Merge branch \(aq2017.7\(aq into 2017.7_fix_ec2_pillar
  169862. .IP \(bu 2
  169863. b4d0b23891 py3 fix
  169864. .IP \(bu 2
  169865. 75d9e20d8a Add ignoring \(aqterminated\(aq, \(aqstopped\(aq instances, to improve changes of a single match
  169866. .IP \(bu 2
  169867. 0093472a37 added tag_key_list and tag_key_sep to create ec2_tags_list
  169868. .IP \(bu 2
  169869. afb3968aa7 ec2_pillar could not find instance\-id, resolved. add support to use any tag to compare minion id against.
  169870. .UNINDENT
  169871. .IP \(bu 2
  169872. cf367dbd04 Merge pull request \fI\%#45942\fP from terminalmage/issue45679\-2017.7
  169873. .INDENT 2.0
  169874. .IP \(bu 2
  169875. 89cbd72a0d Don\(aqt try to sort ports when translating docker input
  169876. .IP \(bu 2
  169877. 9cd47b39dd Fix incorrect translation of docker port_bindings \-> ports
  169878. .UNINDENT
  169879. .IP \(bu 2
  169880. dae41de7a8 Merge pull request \fI\%#45959\fP from rallytime/state\-doc\-update
  169881. .INDENT 2.0
  169882. .IP \(bu 2
  169883. 6f781cb95d A couple of grammar updates for the state compiler docs
  169884. .UNINDENT
  169885. .IP \(bu 2
  169886. 007214f7bf Merge pull request \fI\%#45908\fP from DimensionDataResearch/fix/issue/45884
  169887. .INDENT 2.0
  169888. .IP \(bu 2
  169889. 1a75786b5a Fix linter warnings.
  169890. .IP \(bu 2
  169891. 82ec0b589c Revert to using salt.utils.cloud.is_public_ip.
  169892. .IP \(bu 2
  169893. 9b6b01873b Fix violations reported by flake8.
  169894. .IP \(bu 2
  169895. a2bc155c73 Use __utils__[\(aqcloud.\(aq] instead of salt.cloud.utils.
  169896. .IP \(bu 2
  169897. 98907a32cb Ensure \(aqauth\(aq parameter is correctly passed to dimensiondata driver.
  169898. .IP \(bu 2
  169899. de26b03e2c Fix copy/paste bug in dimensiondata provider integration test.
  169900. .IP \(bu 2
  169901. 6b1b6be427 Add integration tests for dimensiondata cloud provider.
  169902. .IP \(bu 2
  169903. f6ea9fed7d Ensure that event data provided by the dimensiondata driver is serialisable.
  169904. .UNINDENT
  169905. .IP \(bu 2
  169906. efcbfa868c Merge pull request \fI\%#45985\fP from garethgreenaway/2017_7_fixing_mac_tests_again
  169907. .INDENT 2.0
  169908. .IP \(bu 2
  169909. 7b8dc14433 Missing \fIformat\fP in the call to write.
  169910. .UNINDENT
  169911. .IP \(bu 2
  169912. bf03abd07c Merge pull request \fI\%#45958\fP from garethgreenaway/backport\-fixing_mactests_queue_full
  169913. .INDENT 2.0
  169914. .IP \(bu 2
  169915. 25dffaae91 Backporting \fI\%#45935\fP
  169916. .UNINDENT
  169917. .IP \(bu 2
  169918. bab365d6c6 Merge pull request \fI\%#45949\fP from rallytime/merge\-2017.7
  169919. .INDENT 2.0
  169920. .IP \(bu 2
  169921. f51687e903 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169922. .IP \(bu 2
  169923. 7779fea7ba Merge pull request \fI\%#45940\fP from dmurphy18/fix_aix_cmdmod
  169924. .INDENT 2.0
  169925. .IP \(bu 2
  169926. dd2788419b Fix use of \(aqsu\(aq for AIX to use \(aq\-\(aq
  169927. .UNINDENT
  169928. .UNINDENT
  169929. .IP \(bu 2
  169930. 7fd00ec752 Merge pull request \fI\%#45928\fP from garethgreenaway/45915_fixing_vault_pillar_for_salt_ssh
  169931. .INDENT 2.0
  169932. .IP \(bu 2
  169933. 259e60e5d4 Fixing vault when used with pillar over salt\-ssh
  169934. .UNINDENT
  169935. .IP \(bu 2
  169936. 9d14ad9ccf Merge pull request \fI\%#45925\fP from terminalmage/fix\-spelling
  169937. .INDENT 2.0
  169938. .IP \(bu 2
  169939. 7a143fe454 Fix spelling error in docstring
  169940. .UNINDENT
  169941. .UNINDENT
  169942. .UNINDENT
  169943. .IP \(bu 2
  169944. \fBPR\fP \fI\%#45972\fP: (\fI\%mcalmer\fP) move log_file option to changeable defaults
  169945. @ \fI2018\-02\-15 18:57:24 UTC\fP
  169946. .INDENT 2.0
  169947. .IP \(bu 2
  169948. 057e895faf Merge pull request \fI\%#45972\fP from mcalmer/allow\-salt\-ssh\-define\-log_file
  169949. .IP \(bu 2
  169950. f89a20bf3e move log_file option to changeable defaults
  169951. .UNINDENT
  169952. .IP \(bu 2
  169953. \fBPR\fP \fI\%#46007\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  169954. @ \fI2018\-02\-13 18:50:09 UTC\fP
  169955. .INDENT 2.0
  169956. .IP \(bu 2
  169957. d4377d4678 Merge pull request \fI\%#46007\fP from rallytime/merge\-oxygen
  169958. .IP \(bu 2
  169959. d6c2d0693a Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  169960. .UNINDENT
  169961. .IP \(bu 2
  169962. \fBPR\fP \fI\%#45944\fP: (\fI\%mirceaulinic\fP) Add NetBox module autodoc
  169963. @ \fI2018\-02\-13 00:01:48 UTC\fP
  169964. .INDENT 2.0
  169965. .IP \(bu 2
  169966. 069f790b3c Merge pull request \fI\%#45944\fP from cloudflare/netbox\-autodoc
  169967. .IP \(bu 2
  169968. ed69b987cf Add NetBox module autodoc
  169969. .UNINDENT
  169970. .IP \(bu 2
  169971. \fBPR\fP \fI\%#45984\fP: (\fI\%garethgreenaway\fP) [oxygen] Missing \fIformat\fP in the call to write.
  169972. @ \fI2018\-02\-12 19:06:04 UTC\fP
  169973. .INDENT 2.0
  169974. .IP \(bu 2
  169975. 2a6285d313 Merge pull request \fI\%#45984\fP from garethgreenaway/fixing_mac_tests_again
  169976. .IP \(bu 2
  169977. ae7791d30b Missing \fIformat\fP in the call to write.
  169978. .UNINDENT
  169979. .IP \(bu 2
  169980. \fBPR\fP \fI\%#45922\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  169981. @ \fI2018\-02\-09 20:24:26 UTC\fP
  169982. .INDENT 2.0
  169983. .IP \(bu 2
  169984. 88f481a3df Merge pull request \fI\%#45922\fP from rallytime/merge\-oxygen
  169985. .IP \(bu 2
  169986. 9c49c8d47c Remove extra patch
  169987. .IP \(bu 2
  169988. b96f4cf8ad Remove duplicate import in cmdmod.py
  169989. .IP \(bu 2
  169990. 34ecdffa71 Replace old utils paths with new paths
  169991. .IP \(bu 2
  169992. d80547e0b8 Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  169993. .IP \(bu 2
  169994. 0cbe93cd69 Merge pull request \fI\%#45920\fP from rallytime/merge\-2017.7
  169995. .INDENT 2.0
  169996. .IP \(bu 2
  169997. e4e4744218 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169998. .IP \(bu 2
  169999. 27ff82f996 Merge pull request \fI\%#45864\fP from rallytime/release\-note\-fix
  170000. .INDENT 2.0
  170001. .IP \(bu 2
  170002. 104a24f244 Remove extraneous ] in release notes for 2016.11.9
  170003. .UNINDENT
  170004. .IP \(bu 2
  170005. 5fa010de2b Merge pull request \fI\%#45787\fP from rallytime/2016.11.9_docs
  170006. .INDENT 2.0
  170007. .IP \(bu 2
  170008. a38d4d44fa [2016.11] Bump latest and previous versions
  170009. .UNINDENT
  170010. .UNINDENT
  170011. .IP \(bu 2
  170012. 643a8a5278 Merge pull request \fI\%#45814\fP from gtmanfred/2017.7
  170013. .INDENT 2.0
  170014. .IP \(bu 2
  170015. d8eec9aa97 fix cookies dict size changing in http.query
  170016. .UNINDENT
  170017. .IP \(bu 2
  170018. 3a3f87c16d Merge pull request \fI\%#45877\fP from rallytime/new\-release\-notes
  170019. .INDENT 2.0
  170020. .IP \(bu 2
  170021. f937e8ba81 Add release notes file for 2017.7.4 release
  170022. .UNINDENT
  170023. .IP \(bu 2
  170024. 1c3cc00670 Merge pull request \fI\%#45904\fP from rallytime/bp\-41017
  170025. .INDENT 2.0
  170026. .IP \(bu 2
  170027. 80c56cdcea Fixed typo in pkg state documentation
  170028. .UNINDENT
  170029. .IP \(bu 2
  170030. 317d35bd15 Merge pull request \fI\%#45907\fP from terminalmage/fix\-grains\-backport
  170031. .INDENT 2.0
  170032. .IP \(bu 2
  170033. 6cf7e50cc4 Fix backport of grains fix
  170034. .UNINDENT
  170035. .IP \(bu 2
  170036. dade5f0cab Merge pull request \fI\%#45906\fP from rallytime/bp\-45548
  170037. .INDENT 2.0
  170038. .IP \(bu 2
  170039. 1befa7386c Update x509.py
  170040. .UNINDENT
  170041. .IP \(bu 2
  170042. 82c473a1fe Merge pull request \fI\%#45902\fP from terminalmage/issue45893
  170043. .INDENT 2.0
  170044. .IP \(bu 2
  170045. 9d200efc26 Add regression test for issue 45893
  170046. .IP \(bu 2
  170047. 1468f1d0ff Remove duplicated section in docstring and fix example
  170048. .IP \(bu 2
  170049. 6cc5cd9b8a Check the effective saltenv for cached archive
  170050. .UNINDENT
  170051. .IP \(bu 2
  170052. fdedde3cfb Merge pull request \fI\%#45862\fP from rallytime/bp\-45830
  170053. .INDENT 2.0
  170054. .IP \(bu 2
  170055. 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.
  170056. .UNINDENT
  170057. .IP \(bu 2
  170058. 43a45b42c3 Merge pull request \fI\%#45779\fP from The\-Loeki/patch\-3
  170059. .INDENT 2.0
  170060. .IP \(bu 2
  170061. 8575ae3d52 Merge branch \(aq2017.7\(aq into patch\-3
  170062. .IP \(bu 2
  170063. 47cf00d88e SSH shell shim: Don\(aqt use $() for optimal support
  170064. .UNINDENT
  170065. .IP \(bu 2
  170066. cca997d0da Merge pull request \fI\%#45788\fP from rallytime/2017.7.3_docs
  170067. .INDENT 2.0
  170068. .IP \(bu 2
  170069. d5faf6126b [2017.7] Bump latest and previous versions
  170070. .UNINDENT
  170071. .IP \(bu 2
  170072. 746206cebe Merge pull request \fI\%#45842\fP from rallytime/bp\-45827
  170073. .INDENT 2.0
  170074. .IP \(bu 2
  170075. c631598a87 Fix traceback in disks grains when /sys/block not available
  170076. .UNINDENT
  170077. .IP \(bu 2
  170078. 900aadcd67 Merge pull request \fI\%#45721\fP from garethgreenaway/44978_show_duration_when_no_state_run
  170079. .INDENT 2.0
  170080. .IP \(bu 2
  170081. 359265869f Adding a couple tests to ensure that duration is included in state run results even when states do not run.
  170082. .IP \(bu 2
  170083. 912347abc3 Include the duration when a state does not run, for example when the \fIonchanges\fP requisite is not met.
  170084. .UNINDENT
  170085. .IP \(bu 2
  170086. 80a2d009b4 Merge pull request \fI\%#45517\fP from kstreee/fix\-mkdir
  170087. .INDENT 2.0
  170088. .IP \(bu 2
  170089. 24d41f2451 Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  170090. .UNINDENT
  170091. .IP \(bu 2
  170092. 7a4b1b2e77 Merge pull request \fI\%#45835\fP from kstreee/fix\-missing\-return\-statement
  170093. .INDENT 2.0
  170094. .IP \(bu 2
  170095. 68c7f3dcba Adds a missing return statement.
  170096. .UNINDENT
  170097. .IP \(bu 2
  170098. 0a04f118c2 Merge pull request \fI\%#45840\fP from rallytime/bp\-45603
  170099. .INDENT 2.0
  170100. .IP \(bu 2
  170101. 9653363131 Fix for duplicate entries with pkrepo.managed
  170102. .UNINDENT
  170103. .IP \(bu 2
  170104. bd2178cd5f Merge pull request \fI\%#45716\fP from ciiqr/fix_cmd_script_quoting
  170105. .INDENT 2.0
  170106. .IP \(bu 2
  170107. 217791079b some code cleanup (lint errors and escape_argument as _cmd_quote)
  170108. .IP \(bu 2
  170109. 1c29bc5a3d fixed quoting of script path in cmd.script
  170110. .UNINDENT
  170111. .IP \(bu 2
  170112. 272f912c7c Merge pull request \fI\%#45719\fP from bdrung/fix\-python3\-sphinx\-build
  170113. .INDENT 2.0
  170114. .IP \(bu 2
  170115. 179e8fbe73 doc: Do not mock non\-existing __qualname__ attribute
  170116. .IP \(bu 2
  170117. 971e59ebe2 Drop enforcing new\-style object for SaltYamlSafeLoader
  170118. .UNINDENT
  170119. .IP \(bu 2
  170120. fc04336c3b Merge pull request \fI\%#45764\fP from mchugh19/2017.7
  170121. .INDENT 2.0
  170122. .IP \(bu 2
  170123. 0a7f1a4d75 English better
  170124. .IP \(bu 2
  170125. 37e067c7b5 support amazon linux 2 for service module
  170126. .UNINDENT
  170127. .UNINDENT
  170128. .IP \(bu 2
  170129. \fBPR\fP \fI\%#45861\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  170130. @ \fI2018\-02\-08 13:39:59 UTC\fP
  170131. .INDENT 2.0
  170132. .IP \(bu 2
  170133. 048c18ea42 Merge pull request \fI\%#45861\fP from rallytime/merge\-oxygen
  170134. .IP \(bu 2
  170135. 6d812ac192 Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  170136. .UNINDENT
  170137. .IP \(bu 2
  170138. \fBPR\fP \fI\%#45852\fP: (\fI\%Giandom\fP) fix\-missing\-highstate\-module\-import
  170139. @ \fI2018\-02\-05 15:02:39 UTC\fP
  170140. .INDENT 2.0
  170141. .IP \(bu 2
  170142. 1bd38fb3b7 Merge pull request \fI\%#45852\fP from Giandom/fix\-missing\-highstate\-module\-import
  170143. .IP \(bu 2
  170144. dc5a8f9233 fix\-missing\-highstate\-module\-import
  170145. .UNINDENT
  170146. .IP \(bu 2
  170147. \fBPR\fP \fI\%#45829\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  170148. @ \fI2018\-02\-02 20:20:32 UTC\fP
  170149. .INDENT 2.0
  170150. .IP \(bu 2
  170151. 5f54ce7b5f Merge pull request \fI\%#45829\fP from rallytime/merge\-oxygen
  170152. .IP \(bu 2
  170153. 34a17819ca Add opts to salt.utils.jid.gen_jid call in minion.py
  170154. .IP \(bu 2
  170155. 79d071df9c Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  170156. .IP \(bu 2
  170157. f234bf52f4 Merge pull request \fI\%#45756\fP from roaldnefs/fix\-grafana4\-documentation
  170158. .INDENT 2.0
  170159. .IP \(bu 2
  170160. 92979c0b57 Fix grafana4 states documentation
  170161. .UNINDENT
  170162. .IP \(bu 2
  170163. 685b683db5 Merge pull request \fI\%#45801\fP from rallytime/merge\-2017.7
  170164. .INDENT 2.0
  170165. .IP \(bu 2
  170166. 26e992e011 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  170167. .IP \(bu 2
  170168. 746386d04c Merge pull request \fI\%#45794\fP from vutny/doc\-file\-state\-examples
  170169. .INDENT 2.0
  170170. .IP \(bu 2
  170171. ddfeae6a29 [DOC] Fix code\-block rST directive in file state module
  170172. .UNINDENT
  170173. .IP \(bu 2
  170174. abc9ece214 Merge pull request \fI\%#45780\fP from vutny/doc\-pkgrepo\-zypper
  170175. .IP \(bu 2
  170176. f80c7d8d69 [DOC] Add missing gpgautoimport for pkgrepo.managed
  170177. .UNINDENT
  170178. .IP \(bu 2
  170179. c7d319f3bc Merge pull request \fI\%#45802\fP from rallytime/merge\-2017.7\-from\-2017.7.3
  170180. .INDENT 2.0
  170181. .IP \(bu 2
  170182. eb48513ba0 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  170183. .IP \(bu 2
  170184. 1439da8d76 Merge pull request \fI\%#45755\fP from terminalmage/issue45743
  170185. .IP \(bu 2
  170186. 8af1251c59 salt.crypt: Ensure message is encoded before signing
  170187. .UNINDENT
  170188. .IP \(bu 2
  170189. 96e9232cc2 Merge pull request \fI\%#45761\fP from gtmanfred/2017.7
  170190. .IP \(bu 2
  170191. 280767ed57 generate a jid for cache_jobs on the minion
  170192. .UNINDENT
  170193. .IP \(bu 2
  170194. \fBPR\fP \fI\%#45819\fP: (\fI\%Giandom\fP) oxygen\-added\-highstate\-output\-to\-slack\-engine
  170195. @ \fI2018\-02\-01 18:38:42 UTC\fP
  170196. .INDENT 2.0
  170197. .IP \(bu 2
  170198. 3471796c51 Merge pull request \fI\%#45819\fP from Giandom/oxygen\-added\-highstate\-output\-to\-slack\-engine
  170199. .IP \(bu 2
  170200. 1af8899a9d oxygen\-added\-highstate\-output\-to\-slack\-engine
  170201. .UNINDENT
  170202. .UNINDENT
  170203. .SS Salt 2018.3.2 Release Notes
  170204. .sp
  170205. Version 2018.3.2 is a bugfix release for 2018.3.0\&.
  170206. .sp
  170207. The \fB2018.3.2\fP release contains only a small number of fixes, which are detailed
  170208. below.
  170209. .sp
  170210. This release fixes two critical issues.
  170211. .sp
  170212. The first is Issue \fI\%#48038\fP, which is a critical bug that occurs in a multi\-syndic
  170213. setup where the same job is run multiple times on a minion.
  170214. .sp
  170215. The second issue is \fI\%#48130\fP\&. This bug appears in certain setups where the Master
  170216. reports a Minion time\-out, even though the job is still running on the Minion.
  170217. .sp
  170218. Both of these issues have been fixed with this release.
  170219. .SS Statistics
  170220. .INDENT 0.0
  170221. .IP \(bu 2
  170222. Total Merges: \fB7\fP
  170223. .IP \(bu 2
  170224. Total Issue References: \fB2\fP
  170225. .IP \(bu 2
  170226. Total PR References: \fB10\fP
  170227. .IP \(bu 2
  170228. Contributors: \fB4\fP (\fI\%cro\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%rallytime\fP)
  170229. .UNINDENT
  170230. .sp
  170231. \fBWARNING:\fP
  170232. .INDENT 0.0
  170233. .INDENT 3.5
  170234. If you are using Jinja to dump lists or dictionaries in your SLS files,
  170235. this will now cause errors in Python 2 since Jinja does not produce
  170236. YAML\-compatible output when strings in the data structures contain unicode
  170237. types. The dictionary must be passed through a Jinja filter to produce
  170238. YAML\-compatible strings.
  170239. .sp
  170240. The below is an example of invalid SLS:
  170241. .INDENT 0.0
  170242. .INDENT 3.5
  170243. .sp
  170244. .nf
  170245. .ft C
  170246. /etc/foo.conf:
  170247. file.mangaged:
  170248. \- source: salt://foo.conf
  170249. \- template: jinja
  170250. \- defaults: {{ mydict }}
  170251. .ft P
  170252. .fi
  170253. .UNINDENT
  170254. .UNINDENT
  170255. .sp
  170256. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  170257. filters:
  170258. .INDENT 0.0
  170259. .INDENT 3.5
  170260. .sp
  170261. .nf
  170262. .ft C
  170263. /etc/foo.conf:
  170264. file.mangaged:
  170265. \- source: salt://foo.conf
  170266. \- template: jinja
  170267. \- defaults: {{ mydict | json }}
  170268. .ft P
  170269. .fi
  170270. .UNINDENT
  170271. .UNINDENT
  170272. .UNINDENT
  170273. .UNINDENT
  170274. .SS Changelog for v2018.3.1..v2018.3.2
  170275. .sp
  170276. \fIGenerated at: 2018\-06\-17 19:17:16 UTC\fP
  170277. .INDENT 0.0
  170278. .IP \(bu 2
  170279. \fBISSUE\fP \fI\%#48130\fP: (\fI\%rmarchei\fP) Minion timeouts with 2018.3.1 (refs: \fI\%#48158\fP)
  170280. .IP \(bu 2
  170281. \fBPR\fP \fI\%#48158\fP: (\fI\%gtmanfred\fP) always listen when gathering job info
  170282. @ \fI2018\-06\-17 19:04:03 UTC\fP
  170283. .INDENT 2.0
  170284. .IP \(bu 2
  170285. 521e926458 Merge pull request \fI\%#48158\fP from gtmanfred/2018.3.2
  170286. .IP \(bu 2
  170287. cecf564433 always listen when gathering job info
  170288. .UNINDENT
  170289. .IP \(bu 2
  170290. \fBPR\fP \fI\%#48138\fP: (\fI\%rallytime\fP) Update man pages for 2018.3.2
  170291. @ \fI2018\-06\-14 21:22:34 UTC\fP
  170292. .INDENT 2.0
  170293. .IP \(bu 2
  170294. f154545aff Merge pull request \fI\%#48138\fP from rallytime/man\-pages\-2018.3.2
  170295. .IP \(bu 2
  170296. 8c340134f5 Update man pages for 2018.3.2
  170297. .UNINDENT
  170298. .IP \(bu 2
  170299. \fBPR\fP \fI\%#48137\fP: (\fI\%gtmanfred\fP) [2018.3.2] bootstrap kitchen branch tests with 2017.7.6
  170300. @ \fI2018\-06\-14 21:20:28 UTC\fP
  170301. .INDENT 2.0
  170302. .IP \(bu 2
  170303. b49271b76d Merge pull request \fI\%#48137\fP from gtmanfred/2018.3.2
  170304. .IP \(bu 2
  170305. 6128519e8b bootstrap kitchen branch tests with 2017.7.6
  170306. .UNINDENT
  170307. .IP \(bu 2
  170308. \fBPR\fP \fI\%#48129\fP: (\fI\%rallytime\fP) Add release notes for 2018.3.2
  170309. @ \fI2018\-06\-14 15:48:36 UTC\fP
  170310. .INDENT 2.0
  170311. .IP \(bu 2
  170312. 21aaf1cbc4 Merge pull request \fI\%#48129\fP from rallytime/release\-notes\-2018.3.2
  170313. .IP \(bu 2
  170314. 0b13be0111 Add release notes for 2018.3.2
  170315. .UNINDENT
  170316. .IP \(bu 2
  170317. \fBPR\fP \fI\%#48100\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48014\fP to 2018.3.2
  170318. @ \fI2018\-06\-14 12:54:52 UTC\fP
  170319. .INDENT 2.0
  170320. .IP \(bu 2
  170321. \fBPR\fP \fI\%#48014\fP: (\fI\%cro\fP) Find job pause (refs: \fI\%#48100\fP)
  170322. .IP \(bu 2
  170323. 36b99ae80a Merge pull request \fI\%#48100\fP from rallytime/bp\-48014
  170324. .IP \(bu 2
  170325. 77feccc5c4 Lint: Add blank line
  170326. .IP \(bu 2
  170327. 159b052962 One more case where returner doesn\(aqt respond
  170328. .IP \(bu 2
  170329. 91b45b4cc4 Catch two cases when a returner is not able to be contacted\-\-these would throw a stacktrace.
  170330. .UNINDENT
  170331. .IP \(bu 2
  170332. \fBPR\fP \fI\%#48099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47915\fP to 2018.3.2
  170333. @ \fI2018\-06\-14 12:54:23 UTC\fP
  170334. .INDENT 2.0
  170335. .IP \(bu 2
  170336. \fBPR\fP \fI\%#47915\fP: (\fI\%garethgreenaway\fP) [2018.3] state runner pause resume kill (refs: \fI\%#48099\fP)
  170337. .IP \(bu 2
  170338. 40c1bfdec9 Merge pull request \fI\%#48099\fP from rallytime/bp\-47915
  170339. .IP \(bu 2
  170340. 3556850058 fixing typo in alias_function call.
  170341. .IP \(bu 2
  170342. 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.
  170343. .UNINDENT
  170344. .IP \(bu 2
  170345. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  170346. .IP \(bu 2
  170347. \fBPR\fP \fI\%#48097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48075\fP to 2018.3.2
  170348. @ \fI2018\-06\-14 12:52:44 UTC\fP
  170349. .INDENT 2.0
  170350. .IP \(bu 2
  170351. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed (refs: \fI\%#48097\fP)
  170352. .IP \(bu 2
  170353. 074a97dcfa Merge pull request \fI\%#48097\fP from rallytime/bp\-48075
  170354. .IP \(bu 2
  170355. e4c719b55f Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  170356. .UNINDENT
  170357. .UNINDENT
  170358. .SS Salt 2018.3.3 Release Notes
  170359. .sp
  170360. Version 2018.3.3 is a security and bugfix release for 2018.3.0\&.
  170361. .SS Statistics
  170362. .INDENT 0.0
  170363. .IP \(bu 2
  170364. Total Merges: \fB548\fP
  170365. .IP \(bu 2
  170366. Total Issue References: \fB69\fP
  170367. .IP \(bu 2
  170368. Total PR References: \fB341\fP
  170369. .IP \(bu 2
  170370. 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)
  170371. .UNINDENT
  170372. .sp
  170373. \fBWARNING:\fP
  170374. .INDENT 0.0
  170375. .INDENT 3.5
  170376. If you are using Jinja to dump lists or dictionaries in your SLS files,
  170377. this will now cause errors in Python 2 since Jinja does not produce
  170378. YAML\-compatible output when strings in the data structures contain unicode
  170379. types. The dictionary must be passed through a Jinja filter to produce
  170380. YAML\-compatible strings.
  170381. .sp
  170382. The below is an example of invalid SLS:
  170383. .INDENT 0.0
  170384. .INDENT 3.5
  170385. .sp
  170386. .nf
  170387. .ft C
  170388. /etc/foo.conf:
  170389. file.mangaged:
  170390. \- source: salt://foo.conf
  170391. \- template: jinja
  170392. \- defaults: {{ mydict }}
  170393. .ft P
  170394. .fi
  170395. .UNINDENT
  170396. .UNINDENT
  170397. .sp
  170398. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  170399. filters. Another option would be to use Jinja\(aqs \fI\%tojson\fP filter.
  170400. .INDENT 0.0
  170401. .INDENT 3.5
  170402. .sp
  170403. .nf
  170404. .ft C
  170405. /etc/foo.conf:
  170406. file.mangaged:
  170407. \- source: salt://foo.conf
  170408. \- template: jinja
  170409. \- defaults: {{ mydict | tojson }}
  170410. .ft P
  170411. .fi
  170412. .UNINDENT
  170413. .UNINDENT
  170414. .UNINDENT
  170415. .UNINDENT
  170416. .SS Security Fix
  170417. .sp
  170418. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  170419. .sp
  170420. 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.
  170421. .sp
  170422. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  170423. .SS Changes to win_timezone
  170424. .sp
  170425. Improves timezone detection by using the pytz module.
  170426. .sp
  170427. \fBtimezone.get_offset\fP and \fBtimezone.get_zonecode\fP now work properly.
  170428. .sp
  170429. Adds \fBtimezone.list\fP to list supported timezones in either Windows or Unix
  170430. format.
  170431. .SS New Jinja Filter
  170432. .sp
  170433. The \fBtojson\fP filter (from Jinja 2.9 and later) has been ported to
  170434. Salt, and will be used when this filter is not available. This allows older LTS
  170435. releases such as CentOS 7 and Ubuntu 14.04 to use this filter.
  170436. .sp
  170437. You can use this filter any time you wish to dump a list or dictionary into an
  170438. SLS file, to ensure that the result is able to be loaded by the YAML renderer.
  170439. For example:
  170440. .INDENT 0.0
  170441. .INDENT 3.5
  170442. .sp
  170443. .nf
  170444. .ft C
  170445. foo:
  170446. bar.baz:
  170447. \- some_arg: {{ mydict | tojson }}
  170448. .ft P
  170449. .fi
  170450. .UNINDENT
  170451. .UNINDENT
  170452. .SS MacOSX escape characters with runas
  170453. .sp
  170454. You are now required to escape quotes when using the runas argument with the
  170455. cmd module on macosx.
  170456. .sp
  170457. Example:
  170458. .INDENT 0.0
  170459. .INDENT 3.5
  170460. .sp
  170461. .nf
  170462. .ft C
  170463. cmd.run \(aqecho \(aq\e\(aq\(aqh=\e"baz\e"\(aq\e\(aq\(aq\(aq runas=macuser
  170464. .ft P
  170465. .fi
  170466. .UNINDENT
  170467. .UNINDENT
  170468. .SS Changelog for v2018.3.2..v2018.3.3
  170469. .sp
  170470. \fIGenerated at: 2018\-09\-21 17:45:27 UTC\fP
  170471. .INDENT 0.0
  170472. .IP \(bu 2
  170473. \fBPR\fP \fI\%#49662\fP: (\fI\%dwoz\fP) Fix another bad filename reference in whitelist
  170474. @ \fI2018\-09\-14 22:20:49 UTC\fP
  170475. .INDENT 2.0
  170476. .IP \(bu 2
  170477. 9d8cc0b3f4 Merge pull request \fI\%#49662\fP from dwoz/2018.3.3
  170478. .IP \(bu 2
  170479. e109023013 Fix another bad filename reference in whitelist
  170480. .UNINDENT
  170481. .IP \(bu 2
  170482. \fBPR\fP \fI\%#49655\fP: (\fI\%dwoz\fP) Fix windows test whitelist errors
  170483. @ \fI2018\-09\-14 20:34:56 UTC\fP
  170484. .INDENT 2.0
  170485. .IP \(bu 2
  170486. 6391560d57 Merge pull request \fI\%#49655\fP from dwoz/2018.3.3
  170487. .IP \(bu 2
  170488. 8a4946478e Fix windows test whitelist errors
  170489. .UNINDENT
  170490. .IP \(bu 2
  170491. \fBPR\fP \fI\%#49641\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49632\fP to 2018.3.3
  170492. @ \fI2018\-09\-13 16:46:02 UTC\fP
  170493. .INDENT 2.0
  170494. .IP \(bu 2
  170495. \fBPR\fP \fI\%#49632\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.states.test_file.FileTest.test_directory_max_depth (refs: \fI\%#49641\fP)
  170496. .IP \(bu 2
  170497. 3fb3ffdb37 Merge pull request \fI\%#49641\fP from rallytime/bp\-49632
  170498. .IP \(bu 2
  170499. d11a400825 Fixing failing test under python 3.7 causaed by changes to how os.makedirs sets initial permissions.
  170500. .UNINDENT
  170501. .IP \(bu 2
  170502. \fBPR\fP \fI\%#49633\fP: (\fI\%garethgreenaway\fP) [2018.3.3] Moving test_build_whitespace_split_regex to TestBuildWhitespaceRegex
  170503. @ \fI2018\-09\-13 06:57:01 UTC\fP
  170504. .INDENT 2.0
  170505. .IP \(bu 2
  170506. 0096cf10b5 Merge pull request \fI\%#49633\fP from garethgreenaway/moving_test_into_correct_class
  170507. .IP \(bu 2
  170508. 370de07617 Lint: Add extra blank line
  170509. .IP \(bu 2
  170510. 27b93fcc68 Moving the test_build_whitespace_split_regex test into the TestBuildWhitespaceRegex class.
  170511. .UNINDENT
  170512. .IP \(bu 2
  170513. \fBPR\fP \fI\%#49594\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49580\fP to 2018.3.3
  170514. @ \fI2018\-09\-10 19:59:41 UTC\fP
  170515. .INDENT 2.0
  170516. .IP \(bu 2
  170517. \fBPR\fP \fI\%#49580\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing tests for Python 3.7 (refs: \fI\%#49594\fP)
  170518. .IP \(bu 2
  170519. e3a14e3535 Merge pull request \fI\%#49594\fP from rallytime/bp\-49580
  170520. .IP \(bu 2
  170521. 41a2586fc0 Add file coding line at top of file
  170522. .IP \(bu 2
  170523. 7df3bebf53 Fixing lint.
  170524. .IP \(bu 2
  170525. 5fee38d1db Fixes various tests that were failing under python 3.7.
  170526. .UNINDENT
  170527. .IP \(bu 2
  170528. \fBPR\fP \fI\%#49589\fP: (\fI\%rallytime\fP) Update old utils paths to use new utils paths
  170529. @ \fI2018\-09\-10 16:51:31 UTC\fP
  170530. .INDENT 2.0
  170531. .IP \(bu 2
  170532. 39f9c9c952 Merge pull request \fI\%#49589\fP from rallytime/utils\-paths
  170533. .IP \(bu 2
  170534. 5de2245c11 Update old utils paths to use new utils paths
  170535. .UNINDENT
  170536. .IP \(bu 2
  170537. \fBPR\fP \fI\%#49550\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49548\fP to 2018.3.3
  170538. @ \fI2018\-09\-07 00:36:05 UTC\fP
  170539. .INDENT 2.0
  170540. .IP \(bu 2
  170541. \fBPR\fP \fI\%#49548\fP: (\fI\%garethgreenaway\fP) [2018.3] Disabling State boto tests for Python 3.7+ (refs: \fI\%#49550\fP)
  170542. .IP \(bu 2
  170543. 202da7a94f Merge pull request \fI\%#49550\fP from rallytime/bp\-49548
  170544. .IP \(bu 2
  170545. 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.
  170546. .UNINDENT
  170547. .IP \(bu 2
  170548. \fBPR\fP \fI\%#49542\fP: (\fI\%twangboy\fP) Update openssl
  170549. @ \fI2018\-09\-06 16:11:34 UTC\fP
  170550. .INDENT 2.0
  170551. .IP \(bu 2
  170552. cae2d61568 Merge pull request \fI\%#49542\fP from twangboy/fix_osx_build_3
  170553. .IP \(bu 2
  170554. fe02b2276f Add 1.0.2p shasum file
  170555. .IP \(bu 2
  170556. 5f06dc2762 Fix issues with osx build scripts on 2018.3.3
  170557. .UNINDENT
  170558. .IP \(bu 2
  170559. \fBPR\fP \fI\%#49536\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49524\fP to 2018.3.3
  170560. @ \fI2018\-09\-06 16:00:00 UTC\fP
  170561. .INDENT 2.0
  170562. .IP \(bu 2
  170563. \fBPR\fP \fI\%#49524\fP: (\fI\%garethgreenaway\fP) [2018.3] Disable boto tests under 3.7 (refs: \fI\%#49536\fP)
  170564. .IP \(bu 2
  170565. d9f09da5d9 Merge pull request \fI\%#49536\fP from rallytime/bp\-49524
  170566. .IP \(bu 2
  170567. 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.
  170568. .UNINDENT
  170569. .IP \(bu 2
  170570. \fBPR\fP \fI\%#49535\fP: (\fI\%Ch3LL\fP) Skip test_virt and pip_state requirements tests on macosx
  170571. @ \fI2018\-09\-06 15:59:38 UTC\fP
  170572. .INDENT 2.0
  170573. .IP \(bu 2
  170574. cb934bf0b6 Merge pull request \fI\%#49535\fP from Ch3LL/skip_pip_mac
  170575. .IP \(bu 2
  170576. 50237e9daf Skip test_virt and pip_state requirements tests on macosx
  170577. .UNINDENT
  170578. .IP \(bu 2
  170579. \fBPR\fP \fI\%#49499\fP: (\fI\%rallytime\fP) Pin CherryPy version to < 18.0.0 in requirements files for PY2
  170580. @ \fI2018\-09\-04 18:52:44 UTC\fP
  170581. .INDENT 2.0
  170582. .IP \(bu 2
  170583. 87d3dfe085 Merge pull request \fI\%#49499\fP from rallytime/pin\-cherrypy\-2018.3.3
  170584. .IP \(bu 2
  170585. 9e274335a3 Pin CherryPy version to < 18.0.0 in requirements files for PY2
  170586. .UNINDENT
  170587. .IP \(bu 2
  170588. \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)
  170589. .IP \(bu 2
  170590. \fBPR\fP \fI\%#49467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49451\fP to 2018.3.3
  170591. @ \fI2018\-08\-31 17:38:09 UTC\fP
  170592. .INDENT 2.0
  170593. .IP \(bu 2
  170594. \fBPR\fP \fI\%#49451\fP: (\fI\%gtmanfred\fP) Handle thread shutdown on system exit (refs: \fI\%#49467\fP)
  170595. .IP \(bu 2
  170596. 39fdacc434 Merge pull request \fI\%#49467\fP from rallytime/bp\-49451
  170597. .IP \(bu 2
  170598. b891a0a8d3 add lock for proxy minion process too
  170599. .IP \(bu 2
  170600. 72519878c0 start thread in try block
  170601. .IP \(bu 2
  170602. b878f01662 use finally instead of catching baseexception
  170603. .IP \(bu 2
  170604. de98be6093 use rlock so blocking can be passed in py2
  170605. .IP \(bu 2
  170606. d346b42332 import Callable from collections.abc for python3.7
  170607. .IP \(bu 2
  170608. d7a410070a Handle thread shutdown on system exit
  170609. .UNINDENT
  170610. .IP \(bu 2
  170611. \fBPR\fP \fI\%#49468\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49291\fP and \fI\%#49331\fP to 2018.3.3
  170612. @ \fI2018\-08\-31 17:37:30 UTC\fP
  170613. .INDENT 2.0
  170614. .IP \(bu 2
  170615. \fBPR\fP \fI\%#49331\fP: (\fI\%dwoz\fP) Use salt.utils to ensure string type (refs: \fI\%#49468\fP)
  170616. .IP \(bu 2
  170617. \fBPR\fP \fI\%#49291\fP: (\fI\%dwoz\fP) Add dedent that sets line endings (refs: \fI\%#49468\fP)
  170618. .IP \(bu 2
  170619. 37d1455d69 Merge pull request \fI\%#49468\fP from rallytime/bp\-49291\-and\-49331
  170620. .IP \(bu 2
  170621. 944f8e96c8 Use salt.utils to ensure string type
  170622. .IP \(bu 2
  170623. 6c92ed2021 Fix review nits
  170624. .IP \(bu 2
  170625. 0e18b157e3 Re\-factor dedent to fix warts
  170626. .IP \(bu 2
  170627. b5034067f8 Use salt.utils.to_* functions
  170628. .IP \(bu 2
  170629. 6399d035a4 Add dedent that sets line endings
  170630. .UNINDENT
  170631. .IP \(bu 2
  170632. \fBPR\fP \fI\%#49449\fP: (\fI\%rallytime\fP) Mark status test as flaky
  170633. @ \fI2018\-08\-30 18:10:44 UTC\fP
  170634. .INDENT 2.0
  170635. .IP \(bu 2
  170636. 0cda22e7a9 Merge pull request \fI\%#49449\fP from rallytime/flaky\-test
  170637. .IP \(bu 2
  170638. 0f322bb39f Mark status test as flaky
  170639. .UNINDENT
  170640. .IP \(bu 2
  170641. \fBPR\fP \fI\%#49444\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49299\fP to 2018.3.3
  170642. @ \fI2018\-08\-30 18:10:21 UTC\fP
  170643. .INDENT 2.0
  170644. .IP \(bu 2
  170645. \fBPR\fP \fI\%#49299\fP: (\fI\%dwoz\fP) Work around cmd.run unicode issues in test for now (refs: \fI\%#49444\fP)
  170646. .IP \(bu 2
  170647. bcc5f1a7c1 Merge pull request \fI\%#49444\fP from rallytime/bp\-49299
  170648. .IP \(bu 2
  170649. b8c5a5bb91 Fix string formatting wart in file state tests
  170650. .IP \(bu 2
  170651. 19756022be Fix wart in file state test
  170652. .IP \(bu 2
  170653. ba68388342 Work around cmd.run unicode issues in test for now
  170654. .UNINDENT
  170655. .IP \(bu 2
  170656. \fBPR\fP \fI\%#49448\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49400\fP to 2018.3.3
  170657. @ \fI2018\-08\-30 18:04:29 UTC\fP
  170658. .INDENT 2.0
  170659. .IP \(bu 2
  170660. \fBPR\fP \fI\%#49400\fP: (\fI\%rallytime\fP) Mark pillar refresh test as flaky (refs: \fI\%#49448\fP)
  170661. .IP \(bu 2
  170662. 38713e2db9 Merge pull request \fI\%#49448\fP from rallytime/bp\-49400
  170663. .IP \(bu 2
  170664. b953fe0079 Mark pillar refresh test as flaky
  170665. .UNINDENT
  170666. .IP \(bu 2
  170667. \fBPR\fP \fI\%#49446\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49356\fP to 2018.3.3
  170668. @ \fI2018\-08\-30 18:04:01 UTC\fP
  170669. .INDENT 2.0
  170670. .IP \(bu 2
  170671. \fBPR\fP \fI\%#49356\fP: (\fI\%dwoz\fP) Fix tests that use timed_subprocess for py3 (refs: \fI\%#49446\fP)
  170672. .IP \(bu 2
  170673. d6ddcab351 Merge pull request \fI\%#49446\fP from rallytime/bp\-49356
  170674. .IP \(bu 2
  170675. 8022b0c3d6 Fix tests that use timed_subprocess for py3
  170676. .UNINDENT
  170677. .IP \(bu 2
  170678. \fBPR\fP \fI\%#49445\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49192\fP to 2018.3.3
  170679. @ \fI2018\-08\-30 18:03:44 UTC\fP
  170680. .INDENT 2.0
  170681. .IP \(bu 2
  170682. \fBPR\fP \fI\%#49192\fP: (\fI\%dwoz\fP) Test fixes flaky test and unicode environment key/value (refs: \fI\%#49445\fP)
  170683. .IP \(bu 2
  170684. 1a67956c0f Merge pull request \fI\%#49445\fP from rallytime/bp\-49192
  170685. .IP \(bu 2
  170686. 20148d4438 Test fixes
  170687. .UNINDENT
  170688. .IP \(bu 2
  170689. \fBPR\fP \fI\%#49443\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49197\fP to 2018.3.3
  170690. @ \fI2018\-08\-30 18:03:10 UTC\fP
  170691. .INDENT 2.0
  170692. .IP \(bu 2
  170693. \fBPR\fP \fI\%#49197\fP: (\fI\%dwoz\fP) File state line ending fixes (refs: \fI\%#49443\fP)
  170694. .IP \(bu 2
  170695. 33f59d44de Merge pull request \fI\%#49443\fP from rallytime/bp\-49197
  170696. .IP \(bu 2
  170697. 5fe821978e File state line ending fixes
  170698. .UNINDENT
  170699. .IP \(bu 2
  170700. \fBPR\fP \fI\%#49442\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49180\fP and related fixes to 2018.3.3
  170701. @ \fI2018\-08\-30 18:02:54 UTC\fP
  170702. .INDENT 2.0
  170703. .IP \(bu 2
  170704. \fBPR\fP \fI\%#49186\fP: (\fI\%dwoz\fP) Fix typo in \fI\%#49180\fP (refs: \fI\%#49442\fP)
  170705. .IP \(bu 2
  170706. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49442\fP, \fI\%#49186\fP)
  170707. .IP \(bu 2
  170708. \fBPR\fP \fI\%#49167\fP: (\fI\%dwoz\fP) Fix remaining file state integration tests (py3) (refs: \fI\%#49173\fP, \fI\%#49442\fP)
  170709. .IP \(bu 2
  170710. 60758059c3 Merge pull request \fI\%#49442\fP from rallytime/bp\-49180
  170711. .IP \(bu 2
  170712. e155568957 Fix typo
  170713. .IP \(bu 2
  170714. 608a1ae7ba Account for file renames
  170715. .IP \(bu 2
  170716. e8e6a46a2b Fix directory unit test
  170717. .IP \(bu 2
  170718. 2f865c398e Fix is_windows checks
  170719. .IP \(bu 2
  170720. 6460f7f217 Account for normalized dirs in unit tests
  170721. .IP \(bu 2
  170722. f4b7101a35 Simplify dict keys lookup
  170723. .IP \(bu 2
  170724. 942b68bfc8 Fix remaining file state integration tests (py3)
  170725. .UNINDENT
  170726. .IP \(bu 2
  170727. \fBPR\fP \fI\%#49441\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49240\fP to 2018.3.3
  170728. @ \fI2018\-08\-30 18:02:40 UTC\fP
  170729. .INDENT 2.0
  170730. .IP \(bu 2
  170731. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes (refs: \fI\%#49362\fP, \fI\%#49441\fP)
  170732. .IP \(bu 2
  170733. 1f4906346a Merge pull request \fI\%#49441\fP from rallytime/bp\-49240
  170734. .IP \(bu 2
  170735. 22ed452479 Work around listdir encoding issues on py2 windows
  170736. .IP \(bu 2
  170737. f5be275835 file state test fixes
  170738. .UNINDENT
  170739. .IP \(bu 2
  170740. \fBPR\fP \fI\%#49440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49258\fP to 2018.3.3
  170741. @ \fI2018\-08\-30 18:02:25 UTC\fP
  170742. .INDENT 2.0
  170743. .IP \(bu 2
  170744. \fBPR\fP \fI\%#49258\fP: (\fI\%gtmanfred\fP) flaky tests are flaky (refs: \fI\%#49440\fP)
  170745. .IP \(bu 2
  170746. cc27b67a37 Merge pull request \fI\%#49440\fP from rallytime/bp\-49258
  170747. .IP \(bu 2
  170748. 0191af1423 flaky tests are flaky yo
  170749. .IP \(bu 2
  170750. 720b671dda mark orchestration state tests as flaky
  170751. .UNINDENT
  170752. .IP \(bu 2
  170753. \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)
  170754. .IP \(bu 2
  170755. \fBPR\fP \fI\%#49368\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49322\fP to 2018.3.3
  170756. @ \fI2018\-08\-28 17:15:15 UTC\fP
  170757. .INDENT 2.0
  170758. .IP \(bu 2
  170759. \fBPR\fP \fI\%#49322\fP: (\fI\%dwoz\fP) Encode shell commands explicitly. (refs: \fI\%#49368\fP)
  170760. .IP \(bu 2
  170761. af80e64569 Merge pull request \fI\%#49368\fP from rallytime/bp\-49322
  170762. .IP \(bu 2
  170763. 238853b9ec Encode shell commands explicitly.
  170764. .UNINDENT
  170765. .IP \(bu 2
  170766. \fBPR\fP \fI\%#49363\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49245\fP to 2018.3.3
  170767. @ \fI2018\-08\-28 17:14:18 UTC\fP
  170768. .INDENT 2.0
  170769. .IP \(bu 2
  170770. \fBPR\fP \fI\%#49245\fP: (\fI\%dwoz\fP) Skip grep unit tests on windows (refs: \fI\%#49363\fP)
  170771. .IP \(bu 2
  170772. 0fee3e8786 Merge pull request \fI\%#49363\fP from rallytime/bp\-49245
  170773. .IP \(bu 2
  170774. cc606509d0 Fix is_windows call \- use the right path
  170775. .IP \(bu 2
  170776. 5488fbea38 Skip grep unit tests on windows
  170777. .UNINDENT
  170778. .IP \(bu 2
  170779. \fBPR\fP \fI\%#49361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49244\fP to 2018.3.3
  170780. @ \fI2018\-08\-28 17:12:58 UTC\fP
  170781. .INDENT 2.0
  170782. .IP \(bu 2
  170783. \fBPR\fP \fI\%#49244\fP: (\fI\%dwoz\fP) Test fixes: unit.fileserver.test_gitfs (refs: \fI\%#49361\fP)
  170784. .IP \(bu 2
  170785. dbcd2fc726 Merge pull request \fI\%#49361\fP from rallytime/bp\-49244
  170786. .IP \(bu 2
  170787. e0909d3a25 Simplify by using to_unicode helper
  170788. .IP \(bu 2
  170789. 4723c69092 Older GitPython version do not have a close method
  170790. .IP \(bu 2
  170791. d5fecba716 Fix up fileserver.test_gitfs tests on windows
  170792. .IP \(bu 2
  170793. 4b688f6347 Remove unicode filenames on windows python 2
  170794. .UNINDENT
  170795. .IP \(bu 2
  170796. \fBPR\fP \fI\%#49362\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49240\fP to 2018.3.3
  170797. @ \fI2018\-08\-28 17:00:25 UTC\fP
  170798. .INDENT 2.0
  170799. .IP \(bu 2
  170800. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes (refs: \fI\%#49362\fP, \fI\%#49441\fP)
  170801. .IP \(bu 2
  170802. b4a1e1d365 Merge pull request \fI\%#49362\fP from rallytime/bp\-49240
  170803. .IP \(bu 2
  170804. 16ca5b9694 Work around listdir encoding issues on py2 windows
  170805. .IP \(bu 2
  170806. 7650208dbc file state test fixes
  170807. .UNINDENT
  170808. .IP \(bu 2
  170809. \fBPR\fP \fI\%#49365\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49270\fP to 2018.3.3
  170810. @ \fI2018\-08\-28 16:56:23 UTC\fP
  170811. .INDENT 2.0
  170812. .IP \(bu 2
  170813. \fBPR\fP \fI\%#49270\fP: (\fI\%dwoz\fP) Add async helper to test_sock_path_len (refs: \fI\%#49365\fP)
  170814. .IP \(bu 2
  170815. 9ca9a775ff Merge pull request \fI\%#49365\fP from rallytime/bp\-49270
  170816. .IP \(bu 2
  170817. 1b3f37a8b8 Add async helper to test_sock_path_len
  170818. .UNINDENT
  170819. .IP \(bu 2
  170820. \fBPR\fP \fI\%#49364\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49243\fP to 2018.3.3
  170821. @ \fI2018\-08\-28 16:55:55 UTC\fP
  170822. .INDENT 2.0
  170823. .IP \(bu 2
  170824. \fBPR\fP \fI\%#49243\fP: (\fI\%dwoz\fP) Revert newline translation change (refs: \fI\%#49364\fP)
  170825. .IP \(bu 2
  170826. bbff57da16 Merge pull request \fI\%#49364\fP from rallytime/bp\-49243
  170827. .IP \(bu 2
  170828. 5db77c6229 Revert newline translation change
  170829. .UNINDENT
  170830. .IP \(bu 2
  170831. \fBPR\fP \fI\%#49347\fP: (\fI\%Ch3LL\fP) [2018.3.3] Backport \fI\%#49345\fP
  170832. @ \fI2018\-08\-28 01:54:00 UTC\fP
  170833. .INDENT 2.0
  170834. .IP \(bu 2
  170835. \fBPR\fP \fI\%#49345\fP: (\fI\%gtmanfred\fP) upgrade including linux kernels (refs: \fI\%#49347\fP)
  170836. .IP \(bu 2
  170837. 74b78835b3 Merge pull request \fI\%#49347\fP from Ch3LL/bp_49345_2018.3.3
  170838. .IP \(bu 2
  170839. 7bf5ba83c8 upgrade including linux kernels
  170840. .UNINDENT
  170841. .IP \(bu 2
  170842. \fBPR\fP \fI\%#49323\fP: (\fI\%Ch3LL\fP) Skip nonexistent branch test for git versions <1.7.10
  170843. @ \fI2018\-08\-25 19:52:48 UTC\fP
  170844. .INDENT 2.0
  170845. .IP \(bu 2
  170846. be6691d91b Merge pull request \fI\%#49323\fP from Ch3LL/skip_git
  170847. .IP \(bu 2
  170848. ee3d32f74e Skip nonexistent branch for git versions <1.7.10
  170849. .UNINDENT
  170850. .IP \(bu 2
  170851. \fBISSUE\fP \fI\%#32737\fP: (\fI\%Lothiraldan\fP) No support for compound matcher in external auth configuration (refs: \fI\%#49236\fP)
  170852. .IP \(bu 2
  170853. \fBPR\fP \fI\%#49313\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49236\fP to 2018.3.3
  170854. @ \fI2018\-08\-24 20:59:16 UTC\fP
  170855. .INDENT 2.0
  170856. .IP \(bu 2
  170857. \fBPR\fP \fI\%#49236\fP: (\fI\%terminalmage\fP) Allow compound matching in eauth config expressions (refs: \fI\%#49313\fP)
  170858. .IP \(bu 2
  170859. 64d7b0e4c6 Merge pull request \fI\%#49313\fP from rallytime/bp\-49236
  170860. .IP \(bu 2
  170861. 1a5ef996e3 Add \(aqminion_data_cache: True\(aq to mocked opts for minions unit tests
  170862. .IP \(bu 2
  170863. 549f5d5a86 Allow compound matching in eauth config expressions
  170864. .UNINDENT
  170865. .IP \(bu 2
  170866. \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)
  170867. .IP \(bu 2
  170868. \fBPR\fP \fI\%#49311\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49303\fP to 2018.3.3
  170869. @ \fI2018\-08\-24 17:48:23 UTC\fP
  170870. .INDENT 2.0
  170871. .IP \(bu 2
  170872. \fBPR\fP \fI\%#49303\fP: (\fI\%gtmanfred\fP) use os._exit instead of sys.exit when daemonizing (refs: \fI\%#49311\fP)
  170873. .IP \(bu 2
  170874. 7a89a4c8aa Merge pull request \fI\%#49311\fP from rallytime/bp\-49303
  170875. .IP \(bu 2
  170876. 3fe1387751 use os._exit instead of sys.exit when daemonizing
  170877. .UNINDENT
  170878. .IP \(bu 2
  170879. \fBPR\fP \fI\%#49294\fP: (\fI\%Ch3LL\fP) Move run_function call from __init__ to setup
  170880. @ \fI2018\-08\-24 12:41:35 UTC\fP
  170881. .INDENT 2.0
  170882. .IP \(bu 2
  170883. 7bb356f11e Merge pull request \fI\%#49294\fP from Ch3LL/fed_28_tests
  170884. .IP \(bu 2
  170885. 0a5d44a3db Move run_function call from __init__ to setup
  170886. .UNINDENT
  170887. .IP \(bu 2
  170888. \fBPR\fP \fI\%#49302\fP: (\fI\%twangboy\fP) Fix installer 2018.3.3
  170889. @ \fI2018\-08\-24 12:41:14 UTC\fP
  170890. .INDENT 2.0
  170891. .IP \(bu 2
  170892. a607f9332f Merge pull request \fI\%#49302\fP from twangboy/fix_installer_2018.3.3
  170893. .IP \(bu 2
  170894. 68fd37575e Fix erroneous NSSM reference
  170895. .IP \(bu 2
  170896. 103f2c289e Remove delete vcredist line
  170897. .IP \(bu 2
  170898. 007a16638e Bring installer updates from 2017.7.8 to 2018.3.3
  170899. .UNINDENT
  170900. .IP \(bu 2
  170901. \fBPR\fP \fI\%#49241\fP: (\fI\%terminalmage\fP) Don\(aqt silently catch SystemExit
  170902. @ \fI2018\-08\-22 12:57:58 UTC\fP
  170903. .INDENT 2.0
  170904. .IP \(bu 2
  170905. bc0b4ac513 Merge pull request \fI\%#49241\fP from terminalmage/salt\-jenkins\-1078
  170906. .IP \(bu 2
  170907. 08d144f2c7 Don\(aqt silently catch SystemExit
  170908. .IP \(bu 2
  170909. c0fdb818f7 Don\(aqt use a bare except!
  170910. .UNINDENT
  170911. .IP \(bu 2
  170912. \fBPR\fP \fI\%#49239\fP: (\fI\%Ch3LL\fP) Use yaml\(aqs safe_dump in windows ec2 tests
  170913. @ \fI2018\-08\-22 08:48:13 UTC\fP
  170914. .INDENT 2.0
  170915. .IP \(bu 2
  170916. 0fb9ccf60a Merge pull request \fI\%#49239\fP from Ch3LL/win_yaml_test
  170917. .IP \(bu 2
  170918. f5b42dbb24 import salt.utils.yaml
  170919. .IP \(bu 2
  170920. 67290eaff7 Use yaml\(aqs safe_dump in windows ec2 tests
  170921. .UNINDENT
  170922. .IP \(bu 2
  170923. \fBPR\fP \fI\%#49182\fP: (\fI\%terminalmage\fP) Fix hanging syndic test
  170924. @ \fI2018\-08\-18 12:10:32 UTC\fP
  170925. .INDENT 2.0
  170926. .IP \(bu 2
  170927. 134f125b96 Merge pull request \fI\%#49182\fP from terminalmage/salt\-jenkins\-1078
  170928. .IP \(bu 2
  170929. a2d2cd317b Fix hanging syndic test
  170930. .UNINDENT
  170931. .IP \(bu 2
  170932. \fBPR\fP \fI\%#49172\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49118\fP
  170933. @ \fI2018\-08\-17 20:54:05 UTC\fP
  170934. .INDENT 2.0
  170935. .IP \(bu 2
  170936. \fBPR\fP \fI\%#49118\fP: (\fI\%dwoz\fP) Multiple fixes for integration.states.test_file (refs: \fI\%#49172\fP)
  170937. .IP \(bu 2
  170938. \fBPR\fP \fI\%#49088\fP: (\fI\%dwoz\fP) Multiple file state test fixes (refs: \fI\%#49118\fP)
  170939. .IP \(bu 2
  170940. \fBPR\fP \fI\%#49087\fP: (\fI\%dwoz\fP) Filter out scheme\(aqs that are not valid (refs: \fI\%#49118\fP)
  170941. .IP \(bu 2
  170942. b3a247bfbb Merge pull request \fI\%#49172\fP from Ch3LL/bp\-49118
  170943. .IP \(bu 2
  170944. ce5e17bdbd update is_windows salt.utils to correct path
  170945. .IP \(bu 2
  170946. 3fef112409 Multiple fixes for integration.states.test_file
  170947. .UNINDENT
  170948. .IP \(bu 2
  170949. \fBPR\fP \fI\%#49173\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49167\fP
  170950. @ \fI2018\-08\-17 20:30:27 UTC\fP
  170951. .INDENT 2.0
  170952. .IP \(bu 2
  170953. \fBPR\fP \fI\%#49167\fP: (\fI\%dwoz\fP) Fix remaining file state integration tests (py3) (refs: \fI\%#49173\fP, \fI\%#49442\fP)
  170954. .IP \(bu 2
  170955. 85ffc8db87 Merge pull request \fI\%#49173\fP from Ch3LL/bp\-49167
  170956. .IP \(bu 2
  170957. a1a298a13c Simplify dict keys lookup
  170958. .IP \(bu 2
  170959. 3d26affa10 Fix remaining file state integration tests (py3)
  170960. .UNINDENT
  170961. .IP \(bu 2
  170962. \fBPR\fP \fI\%#49171\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49103\fP
  170963. @ \fI2018\-08\-17 20:23:32 UTC\fP
  170964. .INDENT 2.0
  170965. .IP \(bu 2
  170966. \fBPR\fP \fI\%#49103\fP: (\fI\%dwoz\fP) Install the launcher so we can execute py files (refs: \fI\%#49171\fP)
  170967. .IP \(bu 2
  170968. ee54ea5f73 Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  170969. .IP \(bu 2
  170970. 05a2b91fb2 Install the launcher so we can execute py files
  170971. .UNINDENT
  170972. .IP \(bu 2
  170973. \fBPR\fP \fI\%#49132\fP: (\fI\%Ch3LL\fP) [2018.3.3] backport PR \fI\%#49062\fP
  170974. @ \fI2018\-08\-17 14:51:50 UTC\fP
  170975. .INDENT 2.0
  170976. .IP \(bu 2
  170977. \fBPR\fP \fI\%#49062\fP: (\fI\%weswhet\fP) fix memoize on available macOS services (refs: \fI\%#49132\fP)
  170978. .IP \(bu 2
  170979. 58034c9dc3 Merge pull request \fI\%#49132\fP from Ch3LL/bp\-49062
  170980. .IP \(bu 2
  170981. 990fdb6a52 decorator link fix, updating context names, as well as updating macutils tests for latest changes
  170982. .IP \(bu 2
  170983. 3ab5d282be fixing an issue with memoize on macOS services, switching to useing __context__ instead
  170984. .UNINDENT
  170985. .IP \(bu 2
  170986. \fBPR\fP \fI\%#49142\fP: (\fI\%Ch3LL\fP) Remove \-Z script_arg for cloud tests
  170987. @ \fI2018\-08\-16 16:12:59 UTC\fP
  170988. .INDENT 2.0
  170989. .IP \(bu 2
  170990. 01f8f83cf0 Merge pull request \fI\%#49142\fP from Ch3LL/rm_z_arg
  170991. .IP \(bu 2
  170992. a1ef6a88a6 Remove \-Z script_arg for cloud tests
  170993. .UNINDENT
  170994. .IP \(bu 2
  170995. \fBPR\fP \fI\%#49137\fP: (\fI\%Ch3LL\fP) [2018.3.3] Update bootstrap script to latest release (2018.08.15)
  170996. @ \fI2018\-08\-15 19:49:22 UTC\fP
  170997. .INDENT 2.0
  170998. .IP \(bu 2
  170999. a03828884b Merge pull request \fI\%#49137\fP from Ch3LL/bootstrap_2018.3.3
  171000. .IP \(bu 2
  171001. eb9a612096 [2018.3.3] Update bootstrap script to latest release (2018.08.15)
  171002. .UNINDENT
  171003. .IP \(bu 2
  171004. \fBPR\fP \fI\%#49110\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171005. @ \fI2018\-08\-14 17:11:25 UTC\fP
  171006. .INDENT 2.0
  171007. .IP \(bu 2
  171008. b412bff534 Merge pull request \fI\%#49110\fP from rallytime/merge\-2018.3
  171009. .IP \(bu 2
  171010. 4649f60209 Update old utils paths with new paths
  171011. .IP \(bu 2
  171012. 49c2a784bb Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171013. .INDENT 2.0
  171014. .IP \(bu 2
  171015. d46e23f4c2 Merge pull request \fI\%#49109\fP from rallytime/merge\-2017.7
  171016. .INDENT 2.0
  171017. .IP \(bu 2
  171018. 3c5527f300 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  171019. .IP \(bu 2
  171020. 01cf2c71ff Merge pull request \fI\%#49051\fP from rallytime/bp\-49046
  171021. .INDENT 2.0
  171022. .IP \(bu 2
  171023. fc0817cb35 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  171024. .UNINDENT
  171025. .UNINDENT
  171026. .IP \(bu 2
  171027. 8954dd269f Merge pull request \fI\%#49090\fP from dwoz/file_line_fix
  171028. .INDENT 2.0
  171029. .IP \(bu 2
  171030. 0dca634e3c Search for (but do not include) CRLF line ending
  171031. .UNINDENT
  171032. .IP \(bu 2
  171033. b99edc3dce Merge pull request \fI\%#49088\fP from dwoz/file_hash_diffs
  171034. .INDENT 2.0
  171035. .IP \(bu 2
  171036. 054afb8197 Multiple file state test fixes
  171037. .UNINDENT
  171038. .IP \(bu 2
  171039. 274977b6c4 Merge pull request \fI\%#49087\fP from dwoz/url_file_test_fixes
  171040. .INDENT 2.0
  171041. .IP \(bu 2
  171042. 632b65f975 Filter out scheme\(aqs that are not valid
  171043. .UNINDENT
  171044. .IP \(bu 2
  171045. db5fb3232a Merge pull request \fI\%#49086\fP from rallytime/new\-doc\-img
  171046. .INDENT 2.0
  171047. .IP \(bu 2
  171048. 90954203cb Update the DOCBANNER image for saltconf
  171049. .UNINDENT
  171050. .IP \(bu 2
  171051. af6ec1dce2 Merge pull request \fI\%#49045\fP from twangboy/fix_43164
  171052. .INDENT 2.0
  171053. .IP \(bu 2
  171054. 589456d08f Fix lint errors
  171055. .IP \(bu 2
  171056. e79243566d Add rallytime\(aqs suggestions
  171057. .IP \(bu 2
  171058. d1ae6b3d6d Fix docs for the registry module and state
  171059. .UNINDENT
  171060. .IP \(bu 2
  171061. a840fea1a1 Merge pull request \fI\%#49083\fP from rallytime/bootstrap\-2017.7
  171062. .INDENT 2.0
  171063. .IP \(bu 2
  171064. 358e14cdac [2017.7] Update bootstrap script to latest release
  171065. .UNINDENT
  171066. .IP \(bu 2
  171067. 9db6cd5654 Merge pull request \fI\%#49059\fP from twangboy/fix_37984
  171068. .INDENT 2.0
  171069. .IP \(bu 2
  171070. 7ed45b5b00 Remove import
  171071. .IP \(bu 2
  171072. 7fb1edb469 Fix docs to clarify uptime output on Windows
  171073. .UNINDENT
  171074. .IP \(bu 2
  171075. f9db72f00c Merge pull request \fI\%#49061\fP from saltstack/revert\-48982\-new_logo_2017.7
  171076. .INDENT 2.0
  171077. .IP \(bu 2
  171078. 98a8da728b Revert "New logo 2017.7 (WIP)"
  171079. .UNINDENT
  171080. .IP \(bu 2
  171081. bbcd1869ec Merge pull request \fI\%#48982\fP from newwebash/new_logo_2017.7
  171082. .INDENT 2.0
  171083. .IP \(bu 2
  171084. 5c1c311f77 Update Salt Conf ad
  171085. .IP \(bu 2
  171086. 72dc63c426 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into new_logo_2017.7
  171087. .IP \(bu 2
  171088. 9f4e78a7b9 Revert "Update saltconf ad"
  171089. .IP \(bu 2
  171090. 3ab8cdb882 Update saltconf ad
  171091. .UNINDENT
  171092. .UNINDENT
  171093. .UNINDENT
  171094. .IP \(bu 2
  171095. \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)
  171096. .IP \(bu 2
  171097. \fBPR\fP \fI\%#48901\fP: (\fI\%garethgreenaway\fP) [2018.3] fix to auth/ldap.py
  171098. @ \fI2018\-08\-14 16:10:19 UTC\fP
  171099. .INDENT 2.0
  171100. .IP \(bu 2
  171101. e78fc0e0eb Merge pull request \fI\%#48901\fP from garethgreenaway/48665_auth_ldap_valid_token_failed_auth
  171102. .IP \(bu 2
  171103. d4e4f2e803 Fixing a typo in a comment.
  171104. .IP \(bu 2
  171105. 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.
  171106. .UNINDENT
  171107. .IP \(bu 2
  171108. \fBISSUE\fP \fI\%#49081\fP: (\fI\%frogunder\fP) Fluorine \- I see error/traceback when running minion in debug mode (refs: \fI\%#49085\fP)
  171109. .IP \(bu 2
  171110. \fBPR\fP \fI\%#49099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49085\fP to 2018.3
  171111. @ \fI2018\-08\-14 12:42:51 UTC\fP
  171112. .INDENT 2.0
  171113. .IP \(bu 2
  171114. \fBPR\fP \fI\%#49085\fP: (\fI\%gtmanfred\fP) fix async call to process manager (refs: \fI\%#49099\fP)
  171115. .IP \(bu 2
  171116. 484c1e0123 Merge pull request \fI\%#49099\fP from rallytime/bp\-49085
  171117. .IP \(bu 2
  171118. 024d9cb843 fix async call to process manager
  171119. .UNINDENT
  171120. .IP \(bu 2
  171121. \fBISSUE\fP \fI\%#49018\fP: (\fI\%Ch3LL\fP) add MasterPillarUtil tests (refs: \fI\%#49034\fP)
  171122. .IP \(bu 2
  171123. \fBPR\fP \fI\%#49071\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49034\fP to 2018.3
  171124. @ \fI2018\-08\-13 20:15:31 UTC\fP
  171125. .INDENT 2.0
  171126. .IP \(bu 2
  171127. \fBPR\fP \fI\%#49034\fP: (\fI\%garethgreenaway\fP) [fluorine] Adding tests for MasterPillarUtil (refs: \fI\%#49071\fP)
  171128. .IP \(bu 2
  171129. bc033da677 Merge pull request \fI\%#49071\fP from rallytime/bp\-49034
  171130. .IP \(bu 2
  171131. 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.
  171132. .UNINDENT
  171133. .IP \(bu 2
  171134. \fBPR\fP \fI\%#49077\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49075\fP to 2018.3
  171135. @ \fI2018\-08\-13 20:00:00 UTC\fP
  171136. .INDENT 2.0
  171137. .IP \(bu 2
  171138. \fBPR\fP \fI\%#49075\fP: (\fI\%gtmanfred\fP) fix last async issue (refs: \fI\%#49077\fP)
  171139. .IP \(bu 2
  171140. 90c2f026b3 Merge pull request \fI\%#49077\fP from rallytime/bp\-49075
  171141. .IP \(bu 2
  171142. 5e07b8306b fix last async issue
  171143. .UNINDENT
  171144. .IP \(bu 2
  171145. \fBPR\fP \fI\%#49096\fP: (\fI\%rallytime\fP) Update the DOCBANNER image for saltconf
  171146. @ \fI2018\-08\-13 19:59:39 UTC\fP
  171147. .INDENT 2.0
  171148. .IP \(bu 2
  171149. 6942ef1102 Merge pull request \fI\%#49096\fP from rallytime/new\-doc\-img\-2018.3
  171150. .IP \(bu 2
  171151. 75080705ce Update the DOCBANNER image for saltconf
  171152. .UNINDENT
  171153. .IP \(bu 2
  171154. \fBPR\fP \fI\%#49055\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171155. @ \fI2018\-08\-13 19:20:11 UTC\fP
  171156. .INDENT 2.0
  171157. .IP \(bu 2
  171158. 0e1ed7b923 Merge pull request \fI\%#49055\fP from rallytime/merge\-2018.3
  171159. .IP \(bu 2
  171160. 83a15cb623 Add optimization_order config to mocked opts
  171161. .IP \(bu 2
  171162. ea6883ee55 Update old utils paths to new utils paths
  171163. .IP \(bu 2
  171164. 201031fa8a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171165. .INDENT 2.0
  171166. .IP \(bu 2
  171167. 0d2a495378 Merge pull request \fI\%#49050\fP from rallytime/merge\-2017.7
  171168. .INDENT 2.0
  171169. .IP \(bu 2
  171170. ed6fb8b739 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  171171. .IP \(bu 2
  171172. 189e28691f Merge pull request \fI\%#49044\fP from Ch3LL/vultr_test
  171173. .INDENT 2.0
  171174. .IP \(bu 2
  171175. 0dedfae4d1 increase timeout on vultr cloud integration test
  171176. .UNINDENT
  171177. .IP \(bu 2
  171178. c606a32cf2 Merge pull request \fI\%#49042\fP from rallytime/flaky\-jinja\-test
  171179. .INDENT 2.0
  171180. .IP \(bu 2
  171181. a43d9b4ba6 Mark a jinja template test as flaky
  171182. .UNINDENT
  171183. .IP \(bu 2
  171184. 6415b6f73b Merge pull request \fI\%#49041\fP from Ch3LL/ec2_fix
  171185. .INDENT 2.0
  171186. .IP \(bu 2
  171187. cf7f2459b8 [2017.7.8] backport PR \fI\%#48212\fP
  171188. .UNINDENT
  171189. .IP \(bu 2
  171190. 1db036406b Merge pull request \fI\%#49030\fP from rallytime/update\-client\-tests
  171191. .INDENT 2.0
  171192. .IP \(bu 2
  171193. f08ee6c6ae Update netapi client tests
  171194. .UNINDENT
  171195. .UNINDENT
  171196. .IP \(bu 2
  171197. 70be9ac9b1 Merge pull request \fI\%#49046\fP from garethgreenaway/1022_fixing_test_failing_py3_Debian_test
  171198. .INDENT 2.0
  171199. .IP \(bu 2
  171200. fa2339bb91 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  171201. .UNINDENT
  171202. .IP \(bu 2
  171203. 69c9b0afb1 Merge pull request \fI\%#49036\fP from cspeidel/doc\-fix\-netyang
  171204. .INDENT 2.0
  171205. .IP \(bu 2
  171206. f7ac085eb5 minor doc fix in netyang.py
  171207. .UNINDENT
  171208. .IP \(bu 2
  171209. c5f3fd6b2b Merge pull request \fI\%#48997\fP from AVeenstra/patch\-1
  171210. .INDENT 2.0
  171211. .IP \(bu 2
  171212. 0e535f2c8c Unpacking dict with the six iterator
  171213. .IP \(bu 2
  171214. 5e82685b89 Python 3 related fix in highstate_return.py
  171215. .UNINDENT
  171216. .IP \(bu 2
  171217. c06a3cf531 Merge pull request \fI\%#49021\fP from rallytime/merge\-2017.7
  171218. .INDENT 2.0
  171219. .IP \(bu 2
  171220. ca82b3d57a Merge branch \(aq2017.7.8\(aq into merge\-2017.7
  171221. .INDENT 2.0
  171222. .IP \(bu 2
  171223. f73ba21bc7 Merge pull request \fI\%#49024\fP from rallytime/fix\-deb\-test
  171224. .INDENT 2.0
  171225. .IP \(bu 2
  171226. a9c16d9137 Fix test error in test_compiler jinja check
  171227. .UNINDENT
  171228. .UNINDENT
  171229. .IP \(bu 2
  171230. c6f8429e41 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  171231. .IP \(bu 2
  171232. 6b6d68c615 Merge pull request \fI\%#49020\fP from rallytime/fix\-grains\-test
  171233. .INDENT 2.0
  171234. .IP \(bu 2
  171235. f72a3ac6be Make grains integration test more robust
  171236. .UNINDENT
  171237. .IP \(bu 2
  171238. 92d6c25c7f Merge pull request \fI\%#49002\fP from rallytime/skip\-jinja\-deep\-error\-test
  171239. .INDENT 2.0
  171240. .IP \(bu 2
  171241. 23b66ef8bb Skip test_jinja_deep_error on Debian 8
  171242. .UNINDENT
  171243. .IP \(bu 2
  171244. 41d9f11eb3 Merge pull request \fI\%#48999\fP from rallytime/fix\-boto\-test
  171245. .INDENT 2.0
  171246. .IP \(bu 2
  171247. d0136b1be5 Update expected return value in boto test
  171248. .UNINDENT
  171249. .UNINDENT
  171250. .IP \(bu 2
  171251. 2ddba6391a Merge pull request \fI\%#49010\fP from Ch3LL/univention
  171252. .INDENT 2.0
  171253. .IP \(bu 2
  171254. c09bce9afe Add univention OS to debian os_family mapping
  171255. .UNINDENT
  171256. .IP \(bu 2
  171257. 41bd36842e Merge pull request \fI\%#48636\fP from terminalmage/loader\-fixes
  171258. .INDENT 2.0
  171259. .IP \(bu 2
  171260. 0441cd56ef Add optimization_order to mocking
  171261. .IP \(bu 2
  171262. 2256fad320 Process pycache files after .py files
  171263. .IP \(bu 2
  171264. a78663a301 Lint
  171265. .IP \(bu 2
  171266. 0728b5f8b6 Add note about Python 3.5+ only support for optimization_order
  171267. .IP \(bu 2
  171268. 764969ce08 Add a test to confirm that .py files are still loaded correctly
  171269. .IP \(bu 2
  171270. 0f60beb6b6 Fix bad copypasta
  171271. .IP \(bu 2
  171272. fbcd142ea2 Add configuration docs for optimization_order config option
  171273. .IP \(bu 2
  171274. 8af2d580f3 Only compile the suffix_order/map once per LazyLoader instance
  171275. .IP \(bu 2
  171276. 4b95e5f313 Don\(aqt put __pycache__ dir in the file list
  171277. .IP \(bu 2
  171278. e7c10196da Quiet the byte compiling for PY2
  171279. .IP \(bu 2
  171280. 9338370477 Add unit tests for loader optimization levels
  171281. .IP \(bu 2
  171282. c3622933c1 PY3: Support different optimization levels
  171283. .IP \(bu 2
  171284. 6fc8da5bab Add optimization_order config option with default value
  171285. .IP \(bu 2
  171286. dfe423a1e0 Remove commented\-out log message
  171287. .UNINDENT
  171288. .UNINDENT
  171289. .UNINDENT
  171290. .IP \(bu 2
  171291. \fBPR\fP \fI\%#49084\fP: (\fI\%rallytime\fP) [2018.3] Update bootstrap script to latest release
  171292. @ \fI2018\-08\-13 18:14:42 UTC\fP
  171293. .INDENT 2.0
  171294. .IP \(bu 2
  171295. db7ec46875 Merge pull request \fI\%#49084\fP from rallytime/bootstrap\-2018.3
  171296. .IP \(bu 2
  171297. 28dc8ce954 [2017.7] Update bootstrap script to latest release
  171298. .UNINDENT
  171299. .IP \(bu 2
  171300. \fBPR\fP \fI\%#49052\fP: (\fI\%isbm\fP) Python 3.7 support (backport 2018.3)
  171301. @ \fI2018\-08\-13 13:06:51 UTC\fP
  171302. .INDENT 2.0
  171303. .IP \(bu 2
  171304. b0d5acbe0d Merge pull request \fI\%#49052\fP from isbm/isbm\-python37\-support\-2018.3
  171305. .IP \(bu 2
  171306. 4386a9ca1f Merge branch \(aq2018.3\(aq into isbm\-python37\-support\-2018.3
  171307. .IP \(bu 2
  171308. bc85a5fa98 Fix configuration setting
  171309. .IP \(bu 2
  171310. 47078a300f Remove async keyword, moving it into the kwargs.
  171311. .IP \(bu 2
  171312. 31dccc4fdf fix unicode literals
  171313. .IP \(bu 2
  171314. 990936992c Keep runner API unchanged
  171315. .IP \(bu 2
  171316. 46bafcafef Fix nag\-message
  171317. .IP \(bu 2
  171318. 5c887ac2ae Support original API
  171319. .IP \(bu 2
  171320. 2c22e794d4 Use kwargs instead of directly named parameters
  171321. .IP \(bu 2
  171322. 7d095491d9 Update docstring
  171323. .IP \(bu 2
  171324. 9807e8dbb7 Add \(aqasync\(aq backward compatibility
  171325. .IP \(bu 2
  171326. e8608aa9be Revert api call: it is about "functionname_async" suffix.
  171327. .IP \(bu 2
  171328. 0543578336 Deprecate \(aqasync\(aq parameter in Mandrill API
  171329. .IP \(bu 2
  171330. 1107de0dec Lintfix: PEP8 requires two empty lines
  171331. .IP \(bu 2
  171332. 2a18e335af Fix function signatures in Cassandra module
  171333. .IP \(bu 2
  171334. 603f94e2a3 Cleanup docstrings at module level
  171335. .IP \(bu 2
  171336. b9718d3a09 Fix log error/info/warning and exception messages
  171337. .IP \(bu 2
  171338. 6e77aff69a Fix local opts from CLI
  171339. .IP \(bu 2
  171340. 493e48ddb5 Remove internal variables/properties with the reserved words
  171341. .IP \(bu 2
  171342. be07f64bc4 Change internal function signatures to avoid reserved word
  171343. .IP \(bu 2
  171344. 7d095e0b26 Rename async function to asynchronous
  171345. .IP \(bu 2
  171346. 35eaebb8a4 Fix docstrings
  171347. .IP \(bu 2
  171348. 7a597f19b5 Fix comments
  171349. .IP \(bu 2
  171350. 69920366ae Fix CLI config
  171351. .IP \(bu 2
  171352. 173f3d7aa8 Fix docstring typo
  171353. .IP \(bu 2
  171354. b7da571624 Fix imports
  171355. .IP \(bu 2
  171356. 7ec3954bef Rename module to full wording
  171357. .UNINDENT
  171358. .IP \(bu 2
  171359. \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)
  171360. .IP \(bu 2
  171361. \fBPR\fP \fI\%#49026\fP: (\fI\%dwoz\fP) Fix file.line line endings
  171362. @ \fI2018\-08\-13 13:05:43 UTC\fP
  171363. .INDENT 2.0
  171364. .IP \(bu 2
  171365. 338ecb70ef Merge pull request \fI\%#49026\fP from dwoz/issue_48557
  171366. .IP \(bu 2
  171367. a4d22fda2f Merge remote\-tracking branch \(aqorigin/issue_48557\(aq into issue_48557
  171368. .INDENT 2.0
  171369. .IP \(bu 2
  171370. 702e76cfc9 Merge branch \(aq2018.3\(aq into issue_48557
  171371. .UNINDENT
  171372. .IP \(bu 2
  171373. 6cf93e8fc4 Skip newline in binary mode
  171374. .IP \(bu 2
  171375. 2cf80c1595 Fix linter errors
  171376. .IP \(bu 2
  171377. baf291b4c8 Fix file.line line endings
  171378. .UNINDENT
  171379. .IP \(bu 2
  171380. \fBPR\fP \fI\%#49038\fP: (\fI\%gtmanfred\fP) disable enable_ssh_minions to see if it is slowing down 2018.3 tests
  171381. @ \fI2018\-08\-10 18:07:59 UTC\fP
  171382. .INDENT 2.0
  171383. .IP \(bu 2
  171384. 602fed7806 Merge pull request \fI\%#49038\fP from gtmanfred/slowtest
  171385. .IP \(bu 2
  171386. 6bc44c91c4 remove localhost from tests
  171387. .IP \(bu 2
  171388. 7b168a5aac disable enable_ssh_minions to see if it is slowing down 2018.3 tests
  171389. .UNINDENT
  171390. .IP \(bu 2
  171391. \fBISSUE\fP \fI\%#48996\fP: (\fI\%jils2013\fP) file.get_diff not work on version:2018.3.2 (refs: \fI\%#49033\fP)
  171392. .IP \(bu 2
  171393. \fBPR\fP \fI\%#49033\fP: (\fI\%terminalmage\fP) Fix file.get_diff for remote files
  171394. @ \fI2018\-08\-09 21:06:53 UTC\fP
  171395. .INDENT 2.0
  171396. .IP \(bu 2
  171397. 4eeb75f028 Merge pull request \fI\%#49033\fP from terminalmage/issue48996
  171398. .IP \(bu 2
  171399. 163aea71c8 Lint
  171400. .IP \(bu 2
  171401. d6e5038022 Fix file.get_diff for remote files
  171402. .UNINDENT
  171403. .IP \(bu 2
  171404. \fBISSUE\fP \fI\%#48856\fP: (\fI\%travispaul\fP) Salt fails to start on NetBSD 8 (refs: \fI\%#48926\fP)
  171405. .IP \(bu 2
  171406. \fBPR\fP \fI\%#48926\fP: (\fI\%travispaul\fP) Handle ifconfig output differently for NetBSD >= 8.0
  171407. @ \fI2018\-08\-09 20:07:44 UTC\fP
  171408. .INDENT 2.0
  171409. .IP \(bu 2
  171410. b24c96a292 Merge pull request \fI\%#48926\fP from travispaul/fix\-netbsd\-8\-new\-ifconfig
  171411. .IP \(bu 2
  171412. d59b6d8269 Add unit test for NetBSD 8 ifconfig changes
  171413. .IP \(bu 2
  171414. 80f8a667d1 Handle ifconfig output differently for NetBSD >= 8.0
  171415. .UNINDENT
  171416. .IP \(bu 2
  171417. \fBPR\fP \fI\%#48803\fP: (\fI\%dmurphy18\fP) Support for execution modules and states mount on AIX
  171418. @ \fI2018\-08\-09 17:51:55 UTC\fP
  171419. .INDENT 2.0
  171420. .IP \(bu 2
  171421. 7d6b9ed0a5 Merge pull request \fI\%#48803\fP from dmurphy18/aix_filesystems
  171422. .IP \(bu 2
  171423. 92818f816b Fixes for testing
  171424. .IP \(bu 2
  171425. 77dd7a1743 Adjust unit tests
  171426. .IP \(bu 2
  171427. eaed033cde Updated for review comments and adjusted locking when writing files
  171428. .IP \(bu 2
  171429. 5bf9e6085b Update due to review comments
  171430. .IP \(bu 2
  171431. 9fb5641dc7 Mount unit tests for modules and states for AIX
  171432. .IP \(bu 2
  171433. b28f427432 Save off work after laptop issue
  171434. .IP \(bu 2
  171435. e5c2741fe7 module and states mount support for AIX
  171436. .IP \(bu 2
  171437. b701e16ad0 Further updates to support for mount on AIX
  171438. .IP \(bu 2
  171439. 210076276f Initial support for handling /etc/filesystems on AIX
  171440. .UNINDENT
  171441. .IP \(bu 2
  171442. \fBISSUE\fP \fI\%#48496\fP: (\fI\%icy\fP) Salt\-key unable to delete the certificate Test=True (refs: \fI\%#48929\fP)
  171443. .IP \(bu 2
  171444. \fBPR\fP \fI\%#48929\fP: (\fI\%terminalmage\fP) 2 salt\-key fixes
  171445. @ \fI2018\-08\-09 17:50:07 UTC\fP
  171446. .INDENT 2.0
  171447. .IP \(bu 2
  171448. 2a38905a8a Merge pull request \fI\%#48929\fP from terminalmage/issue48496
  171449. .IP \(bu 2
  171450. 7ac10f9eac 2 salt\-key fixes
  171451. .UNINDENT
  171452. .IP \(bu 2
  171453. \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)
  171454. .IP \(bu 2
  171455. \fBPR\fP \fI\%#49022\fP: (\fI\%dwoz\fP) Document time format idiosyncrasies
  171456. @ \fI2018\-08\-09 17:47:12 UTC\fP
  171457. .INDENT 2.0
  171458. .IP \(bu 2
  171459. bb9d23bfa1 Merge pull request \fI\%#49022\fP from dwoz/47481_docs
  171460. .IP \(bu 2
  171461. 313a3d93d6 Document time format idiosyncrasies
  171462. .UNINDENT
  171463. .IP \(bu 2
  171464. \fBPR\fP \fI\%#48932\fP: (\fI\%twangboy\fP) Fix pkg.install when pkg already installed
  171465. @ \fI2018\-08\-09 17:45:51 UTC\fP
  171466. .INDENT 2.0
  171467. .IP \(bu 2
  171468. 9b6a9ff4f1 Merge pull request \fI\%#48932\fP from twangboy/fix_win_repo
  171469. .IP \(bu 2
  171470. 075ea29d29 remove .lower(), fix debug messages
  171471. .IP \(bu 2
  171472. d7c2f476ac Remove current: version for latest as well
  171473. .IP \(bu 2
  171474. 522ac26459 Fix typo in code comment
  171475. .IP \(bu 2
  171476. 47b2898a85 return empty dict on no changes
  171477. .IP \(bu 2
  171478. 6532706d2f Make the tests run on Linux
  171479. .IP \(bu 2
  171480. cfe55a391a Add tests for pkg.install output
  171481. .IP \(bu 2
  171482. 8ec058f498 Clarify code comment
  171483. .IP \(bu 2
  171484. 8af2cfd54a Fix issues where current is not returned
  171485. .UNINDENT
  171486. .IP \(bu 2
  171487. \fBPR\fP \fI\%#49011\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171488. @ \fI2018\-08\-09 17:34:18 UTC\fP
  171489. .INDENT 2.0
  171490. .IP \(bu 2
  171491. d7b7a92ef6 Merge pull request \fI\%#49011\fP from rallytime/merge\-2018.3
  171492. .IP \(bu 2
  171493. 02670969d0 Apply fix to ssh init file that was there before merge
  171494. .IP \(bu 2
  171495. 7e1f7915e4 Revert "Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh"
  171496. .IP \(bu 2
  171497. 00416d54d1 Revert "add key\-deploy test"
  171498. .IP \(bu 2
  171499. c26fa0d6c4 Mark orchestration test as expensive
  171500. .IP \(bu 2
  171501. fceb6d8d6f Update old utils paths to use new paths
  171502. .IP \(bu 2
  171503. 3e6445a9d6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171504. .INDENT 2.0
  171505. .IP \(bu 2
  171506. b49eeca6e9 Merge pull request \fI\%#49003\fP from rallytime/boto\-test\-2017.7
  171507. .INDENT 2.0
  171508. .IP \(bu 2
  171509. 1a23bb233f Update expected return value in boto test
  171510. .UNINDENT
  171511. .IP \(bu 2
  171512. 51eed1fdfb Merge pull request \fI\%#48988\fP from rallytime/merge\-2017.7
  171513. .INDENT 2.0
  171514. .IP \(bu 2
  171515. df8699e2e7 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  171516. .IP \(bu 2
  171517. a1e54634dc Merge pull request \fI\%#48976\fP from rallytime/tornado
  171518. .INDENT 2.0
  171519. .IP \(bu 2
  171520. 0bd838ab6c Skip unreliable tornado tests
  171521. .UNINDENT
  171522. .IP \(bu 2
  171523. 22713be9c1 Merge pull request \fI\%#48979\fP from rallytime/bp\-48959
  171524. .IP \(bu 2
  171525. 03aa0e49b0 Merge pull request \fI\%#48970\fP from Ch3LL/back_48962
  171526. .INDENT 2.0
  171527. .IP \(bu 2
  171528. 3ce1b8a3c9 Update the elif block to only be true for versions below Debian 9.
  171529. .UNINDENT
  171530. .IP \(bu 2
  171531. e6cea5e3c7 Merge pull request \fI\%#48968\fP from rallytime/man\-pages
  171532. .INDENT 2.0
  171533. .IP \(bu 2
  171534. 64fe3be41a Update man pages for 2017.7.8 release
  171535. .UNINDENT
  171536. .UNINDENT
  171537. .IP \(bu 2
  171538. 10fd4661ff Merge pull request \fI\%#48978\fP from gtmanfred/2017.7
  171539. .INDENT 2.0
  171540. .IP \(bu 2
  171541. 6108363f82 clean up gemfile
  171542. .UNINDENT
  171543. .IP \(bu 2
  171544. 5b2423e527 Merge pull request \fI\%#48959\fP from rallytime/flaky\-tests
  171545. .INDENT 2.0
  171546. .IP \(bu 2
  171547. aaf986d728 Mark one grains test as flaky & convert to pytest notation
  171548. .IP \(bu 2
  171549. e7e5abcf48 Mark 2 matcher tests as flaky
  171550. .UNINDENT
  171551. .IP \(bu 2
  171552. 79994ecab4 Merge pull request \fI\%#48962\fP from garethgreenaway/1022_test_service_disable_debian_part_deux
  171553. .INDENT 2.0
  171554. .IP \(bu 2
  171555. 9e71551b36 Update the elif block to only be true for versions below Debian 9.
  171556. .UNINDENT
  171557. .IP \(bu 2
  171558. 1a1bda00cb Merge pull request \fI\%#48960\fP from dwoz/block_replace_tests
  171559. .INDENT 2.0
  171560. .IP \(bu 2
  171561. 94ac2b4fc7 Multiple block replace test fixes
  171562. .UNINDENT
  171563. .IP \(bu 2
  171564. 93b862f350 Merge pull request \fI\%#48957\fP from whytewolf/beacons_log_doc_change
  171565. .INDENT 2.0
  171566. .IP \(bu 2
  171567. a77fd16869 Update salt.beacons.log to reflect that re module is used for matching.
  171568. .UNINDENT
  171569. .IP \(bu 2
  171570. 0245cffb07 Merge pull request \fI\%#48955\fP from terminalmage/service\-systemd
  171571. .INDENT 2.0
  171572. .IP \(bu 2
  171573. 23f87bd536 Don\(aqt load service.py if minion is running a non\-sysvinit init system
  171574. .UNINDENT
  171575. .IP \(bu 2
  171576. 848d583438 Merge pull request \fI\%#48950\fP from KaiSforza/kitchenfix\-2017.7
  171577. .INDENT 2.0
  171578. .IP \(bu 2
  171579. 5242cb143a Added a quote to kitchen Jenkinsfiles
  171580. .UNINDENT
  171581. .IP \(bu 2
  171582. 928d688d65 Merge pull request \fI\%#48943\fP from rallytime/flaky\-tests
  171583. .INDENT 2.0
  171584. .IP \(bu 2
  171585. 668da57ab9 Mark some shell and runner integration tests as flaky
  171586. .UNINDENT
  171587. .IP \(bu 2
  171588. cd42510d3a Merge pull request \fI\%#48940\fP from rallytime/bp\-48852
  171589. .INDENT 2.0
  171590. .IP \(bu 2
  171591. fa4ef92e79 Record all the artifacts from the build
  171592. .UNINDENT
  171593. .IP \(bu 2
  171594. 43649a68be Merge pull request \fI\%#48935\fP from garethgreenaway/1045_test_pkg_015_installed_held_centos
  171595. .INDENT 2.0
  171596. .IP \(bu 2
  171597. 0bb10107b6 Merge branch \(aq2017.7\(aq into 1045_test_pkg_015_installed_held_centos
  171598. .IP \(bu 2
  171599. 24d5e6a22f Fixing the test_pkg_015_installed_held test to be able to successfully run on CentOS
  171600. .UNINDENT
  171601. .IP \(bu 2
  171602. 2421e2a570 Merge pull request \fI\%#47100\fP from gtmanfred/ssh
  171603. .INDENT 2.0
  171604. .IP \(bu 2
  171605. 5b443af7ae add key\-deploy test
  171606. .IP \(bu 2
  171607. a131c9beeb Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh
  171608. .UNINDENT
  171609. .IP \(bu 2
  171610. d541bd6446 Merge pull request \fI\%#48891\fP from damon\-atkins/2017.7_win_pkg.list_pkgs_not_found
  171611. .INDENT 2.0
  171612. .IP \(bu 2
  171613. a4af1dbfb1 Fix win_pkg issues introduced Jan 2018. If DisplayVersion does not exist it should return version as "Not Found"
  171614. .UNINDENT
  171615. .IP \(bu 2
  171616. 5f6a56f5dc Merge pull request \fI\%#48896\fP from rallytime/bp\-48730
  171617. .INDENT 2.0
  171618. .IP \(bu 2
  171619. 57aa204c9d Merge branch \(aq2017.7\(aq into bp\-48730
  171620. .IP \(bu 2
  171621. 4995922584 Forgot variable in signature
  171622. .IP \(bu 2
  171623. 0503bc18b6 Fix batch install using pkgng
  171624. .UNINDENT
  171625. .IP \(bu 2
  171626. 0c64bba865 Merge pull request \fI\%#48933\fP from garethgreenaway/1022_debian_8_failing_service\-test
  171627. .INDENT 2.0
  171628. .IP \(bu 2
  171629. 280d1d2ad2 Fixing failing test, integration.modules.test_service.ServiceModuleTest.test_service_disable_doesnot_exist, on Debian 8 and higher.
  171630. .UNINDENT
  171631. .IP \(bu 2
  171632. 0c3d2c6a09 Merge pull request \fI\%#48922\fP from rallytime/cache\-doc\-error
  171633. .INDENT 2.0
  171634. .IP \(bu 2
  171635. 8ca89df7e8 Update backticks on job_cache docs
  171636. .UNINDENT
  171637. .IP \(bu 2
  171638. 8d1fc4f8e5 Merge pull request \fI\%#48866\fP from Ch3LL/cmd_win_tests
  171639. .INDENT 2.0
  171640. .IP \(bu 2
  171641. 905da13653 Merge branch \(aq2017.7\(aq into cmd_win_tests
  171642. .UNINDENT
  171643. .IP \(bu 2
  171644. 57d58e7541 Merge pull request \fI\%#48920\fP from rallytime/bp\-48904\-2017.7
  171645. .INDENT 2.0
  171646. .IP \(bu 2
  171647. a55f92954a No rehashing in parallel
  171648. .IP \(bu 2
  171649. 3be11e06fe Add docs for new escape kwarg
  171650. .IP \(bu 2
  171651. 391bb8a411 use a specific path for just the cmd._run call
  171652. .IP \(bu 2
  171653. 62c66ba489 make sure we lower the check on shell
  171654. .IP \(bu 2
  171655. 9312a993a5 Add cmd module integration tests for windows and fix space in path issue
  171656. .UNINDENT
  171657. .UNINDENT
  171658. .UNINDENT
  171659. .IP \(bu 2
  171660. \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)
  171661. .IP \(bu 2
  171662. \fBPR\fP \fI\%#48985\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to salt/modules/file.py
  171663. @ \fI2018\-08\-09 15:03:09 UTC\fP
  171664. .INDENT 2.0
  171665. .IP \(bu 2
  171666. 3325b7d4c0 Merge pull request \fI\%#48985\fP from garethgreenaway/48123_file_directory_recurse_fails_broken_symlink
  171667. .IP \(bu 2
  171668. 10c4eca206 Merge branch \(aq2018.3\(aq into 48123_file_directory_recurse_fails_broken_symlink
  171669. .IP \(bu 2
  171670. 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.
  171671. .UNINDENT
  171672. .IP \(bu 2
  171673. \fBISSUE\fP \fI\%#47695\fP: (\fI\%AmbicaY\fP) Continuous error in the proxy minion logs (refs: \fI\%#49019\fP)
  171674. .IP \(bu 2
  171675. \fBPR\fP \fI\%#49019\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to scheduler when global enabled key is present
  171676. @ \fI2018\-08\-09 13:06:26 UTC\fP
  171677. .INDENT 2.0
  171678. .IP \(bu 2
  171679. d353c02a8c Merge pull request \fI\%#49019\fP from garethgreenaway/47695_fixing_scheduler_bug_when_enabled_is_present
  171680. .IP \(bu 2
  171681. aff1b8f6d4 Lint.
  171682. .IP \(bu 2
  171683. 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.
  171684. .UNINDENT
  171685. .IP \(bu 2
  171686. \fBPR\fP \fI\%#49023\fP: (\fI\%The\-Loeki\fP) Salt SSH appends IdentityFile=agent\-forwarding
  171687. @ \fI2018\-08\-09 12:55:59 UTC\fP
  171688. .INDENT 2.0
  171689. .IP \(bu 2
  171690. a56bc7ffb9 Merge pull request \fI\%#49023\fP from The\-Loeki/patch\-1
  171691. .IP \(bu 2
  171692. 8b53571c70 Salt SSH appends IdentityFile=agent\-forwarding
  171693. .UNINDENT
  171694. .IP \(bu 2
  171695. \fBPR\fP \fI\%#48981\fP: (\fI\%Ch3LL\fP) Add warning to mac runas docs about escaping characters
  171696. @ \fI2018\-08\-08 19:43:43 UTC\fP
  171697. .INDENT 2.0
  171698. .IP \(bu 2
  171699. 4590494b50 Merge pull request \fI\%#48981\fP from Ch3LL/mac_runas_quote
  171700. .IP \(bu 2
  171701. 8269b55b84 remove unnecessary spaces in cmdmod.py docs
  171702. .IP \(bu 2
  171703. 757daf7d7e add runas macosx warning in 2018.3.3 release notes
  171704. .IP \(bu 2
  171705. 4e9e985b14 Add warning to mac runas docs about escaping characters
  171706. .UNINDENT
  171707. .IP \(bu 2
  171708. \fBPR\fP \fI\%#49004\fP: (\fI\%rallytime\fP) Port \fI\%#48999\fP to 2018.3
  171709. @ \fI2018\-08\-08 15:32:46 UTC\fP
  171710. .INDENT 2.0
  171711. .IP \(bu 2
  171712. \fBPR\fP \fI\%#48999\fP: (\fI\%rallytime\fP) Update expected return value in boto test (refs: \fI\%#49004\fP, \fI\%#49003\fP)
  171713. .IP \(bu 2
  171714. b87bf905c2 Merge pull request \fI\%#49004\fP from rallytime/boto\-test\-2018.3
  171715. .IP \(bu 2
  171716. 9f0b9a1073 Update expected return value in boto test
  171717. .UNINDENT
  171718. .IP \(bu 2
  171719. \fBPR\fP \fI\%#48987\fP: (\fI\%twangboy\fP) Fix issue with win_iis.create_cert_binding
  171720. @ \fI2018\-08\-08 13:29:06 UTC\fP
  171721. .INDENT 2.0
  171722. .IP \(bu 2
  171723. 630f61e625 Merge pull request \fI\%#48987\fP from twangboy/fix_48786
  171724. .IP \(bu 2
  171725. 86d0836f90 Fix issue with iterating over None
  171726. .UNINDENT
  171727. .IP \(bu 2
  171728. \fBISSUE\fP \fI\%#48777\fP: (\fI\%jonasgit\fP) file.recurse fails on file contents encoding not utf\-8 (refs: \fI\%#48934\fP)
  171729. .IP \(bu 2
  171730. \fBPR\fP \fI\%#48934\fP: (\fI\%terminalmage\fP) Properly handle latin\-1 encoding in file diffs
  171731. @ \fI2018\-08\-07 21:02:24 UTC\fP
  171732. .INDENT 2.0
  171733. .IP \(bu 2
  171734. ab1a713bc3 Merge pull request \fI\%#48934\fP from terminalmage/issue48777
  171735. .IP \(bu 2
  171736. 52c64e4d51 Fix to_unicode test
  171737. .IP \(bu 2
  171738. e2d19f40b6 Only try latin\-1 from get_diff instead of by default
  171739. .IP \(bu 2
  171740. d39fa889f3 Add stringutils.get_diff to mocks
  171741. .IP \(bu 2
  171742. 5b191c9120 Fix incorrect use of __salt__ when __utils__ is needed
  171743. .IP \(bu 2
  171744. 53ba10ad5f Skip pylint false\-positives
  171745. .IP \(bu 2
  171746. f14f4dae22 Add unit test for latin\-1 fallback, multi\-encoding
  171747. .IP \(bu 2
  171748. 906644a80f PY3 scoping fix
  171749. .IP \(bu 2
  171750. 726dd4331f Add integration test for latin\-1 file diffs
  171751. .IP \(bu 2
  171752. 2dd1f31d23 Use BASE_FILES instead of redundant STATE_DIR
  171753. .IP \(bu 2
  171754. 612ffb5fe8 Use new get_diff helper in file module
  171755. .IP \(bu 2
  171756. c632265802 Make to_unicode/to_str/to_bytes helpers attempt latin\-1
  171757. .IP \(bu 2
  171758. 2a0cb49b01 Add get_diff to salt.utils.stringutils
  171759. .UNINDENT
  171760. .IP \(bu 2
  171761. \fBISSUE\fP \fI\%#47766\fP: (\fI\%zerthimon\fP) salt\-cloud: openstack driver: crash on instance creation (refs: \fI\%#48956\fP)
  171762. .IP \(bu 2
  171763. \fBPR\fP \fI\%#48956\fP: (\fI\%gtmanfred\fP) if booted from volume, use string from image
  171764. @ \fI2018\-08\-07 16:39:45 UTC\fP
  171765. .INDENT 2.0
  171766. .IP \(bu 2
  171767. bad995462c Merge pull request \fI\%#48956\fP from gtmanfred/openstack
  171768. .IP \(bu 2
  171769. 4cb1636c4b if booted from volume, use string from image
  171770. .UNINDENT
  171771. .IP \(bu 2
  171772. \fBISSUE\fP \fI\%#48306\fP: (\fI\%davidscholberg\fP) Documentation update for custom returners used for master job cache (refs: \fI\%#48319\fP)
  171773. .IP \(bu 2
  171774. \fBPR\fP \fI\%#48319\fP: (\fI\%gtmanfred\fP) don\(aqt break older returners right now
  171775. @ \fI2018\-08\-06 13:19:43 UTC\fP
  171776. .INDENT 2.0
  171777. .IP \(bu 2
  171778. 71f587edd7 Merge pull request \fI\%#48319\fP from gtmanfred/jid
  171779. .IP \(bu 2
  171780. 084e7f0ef4 Merge branch \(aq2018.3\(aq into jid
  171781. .IP \(bu 2
  171782. 60661b4cd0 document minions required on save_load
  171783. .IP \(bu 2
  171784. a8c243071d document passing in minions
  171785. .IP \(bu 2
  171786. d49381c0b6 don\(aqt break save_load backwards compat
  171787. .IP \(bu 2
  171788. cfcacf953a don\(aqt break older returners right now
  171789. .UNINDENT
  171790. .IP \(bu 2
  171791. \fBPR\fP \fI\%#48941\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48912\fP to 2018.3
  171792. @ \fI2018\-08\-06 13:09:38 UTC\fP
  171793. .INDENT 2.0
  171794. .IP \(bu 2
  171795. \fBPR\fP \fI\%#48912\fP: (\fI\%maxim\-sermin\fP) make jboss7.py compatible with 2018.3.0 and later (refs: \fI\%#48941\fP)
  171796. .IP \(bu 2
  171797. 1623e53ef4 Merge pull request \fI\%#48941\fP from rallytime/bp\-48912
  171798. .IP \(bu 2
  171799. 3f55b2f89e make jboss7.py compatible with 2018.3.0 and later
  171800. .UNINDENT
  171801. .IP \(bu 2
  171802. \fBPR\fP \fI\%#48897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48863\fP to 2018.3
  171803. @ \fI2018\-08\-05 19:15:51 UTC\fP
  171804. .INDENT 2.0
  171805. .IP \(bu 2
  171806. \fBPR\fP \fI\%#48863\fP: (\fI\%admd\fP) Decode file contents for python2 as well (refs: \fI\%#48897\fP)
  171807. .IP \(bu 2
  171808. 070af9d925 Merge pull request \fI\%#48897\fP from rallytime/bp\-48863
  171809. .IP \(bu 2
  171810. 0ee1940232 Merge branch \(aq2018.3\(aq into bp\-48863
  171811. .IP \(bu 2
  171812. f40b966d99 decode file contents for python2 as well
  171813. .UNINDENT
  171814. .IP \(bu 2
  171815. \fBPR\fP \fI\%#48928\fP: (\fI\%Ch3LL\fP) fix test_runas integration test for macosx
  171816. @ \fI2018\-08\-05 14:24:13 UTC\fP
  171817. .INDENT 2.0
  171818. .IP \(bu 2
  171819. abd7f1312d Merge pull request \fI\%#48928\fP from Ch3LL/mac_runas
  171820. .IP \(bu 2
  171821. 3d6455dbcd remove unecessary comment in setup
  171822. .IP \(bu 2
  171823. 8e30db0217 move destructivetest to testname
  171824. .IP \(bu 2
  171825. 708dec8740 add destructivetest to setup and teardown for runas test
  171826. .IP \(bu 2
  171827. c0730ff968 fix test_runas integration test for macosx
  171828. .UNINDENT
  171829. .IP \(bu 2
  171830. \fBPR\fP \fI\%#48899\fP: (\fI\%Ch3LL\fP) remove base_top_file file in teardown and add sleep
  171831. @ \fI2018\-08\-05 14:23:42 UTC\fP
  171832. .INDENT 2.0
  171833. .IP \(bu 2
  171834. dbd300ff70 Merge pull request \fI\%#48899\fP from Ch3LL/unit_state
  171835. .IP \(bu 2
  171836. 0272cadff8 Merge branch \(aq2018.3\(aq into unit_state
  171837. .IP \(bu 2
  171838. 5896c7fc36 remove base_top_file file in teardown and add sleep
  171839. .UNINDENT
  171840. .IP \(bu 2
  171841. \fBPR\fP \fI\%#48898\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171842. @ \fI2018\-08\-05 14:23:19 UTC\fP
  171843. .INDENT 2.0
  171844. .IP \(bu 2
  171845. ffa1fcc682 Merge pull request \fI\%#48898\fP from rallytime/merge\-2018.3
  171846. .IP \(bu 2
  171847. 1f093cef4a Merge branch \(aq2018.3\(aq into merge\-2018.3
  171848. .IP \(bu 2
  171849. b3a5aa49d7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171850. .INDENT 2.0
  171851. .IP \(bu 2
  171852. e79ccb35b1 Merge pull request \fI\%#48876\fP from Vaelatern/make\-network\-learning\-optional
  171853. .INDENT 2.0
  171854. .IP \(bu 2
  171855. a4905b0e5d Make IP_LEARNING optional
  171856. .UNINDENT
  171857. .IP \(bu 2
  171858. f8bfab4f9f Merge pull request \fI\%#48890\fP from Ch3LL/cmd_test
  171859. .INDENT 2.0
  171860. .IP \(bu 2
  171861. acda4ed9ab add sleep in test_cmd integration test
  171862. .UNINDENT
  171863. .IP \(bu 2
  171864. 52722f6ded Merge pull request \fI\%#48885\fP from rallytime/flaky\-tests\-shadow
  171865. .INDENT 2.0
  171866. .IP \(bu 2
  171867. da871a2d57 Mark shadow module integration test as flaky
  171868. .UNINDENT
  171869. .IP \(bu 2
  171870. bf0895656e Merge pull request \fI\%#48884\fP from rallytime/flaky\-tests\-matchers
  171871. .INDENT 2.0
  171872. .IP \(bu 2
  171873. 38d9eae537 Merge branch \(aq2017.7\(aq into flaky\-tests\-matchers
  171874. .UNINDENT
  171875. .IP \(bu 2
  171876. a567666938 Merge pull request \fI\%#48868\fP from terminalmage/fix\-loader\-race
  171877. .INDENT 2.0
  171878. .IP \(bu 2
  171879. 5f1169b9a2 Fix race when SIGTERM/SIGINT received while lazyloading a module
  171880. .UNINDENT
  171881. .IP \(bu 2
  171882. 0ca0b6f2f2 Merge pull request \fI\%#48883\fP from terminalmage/salt\-jenkins\-1023
  171883. .INDENT 2.0
  171884. .IP \(bu 2
  171885. c61f75cb50 Fix failing git worktree tests
  171886. .INDENT 2.0
  171887. .INDENT 3.5
  171888. .INDENT 0.0
  171889. .IP \(bu 2
  171890. 3660dff13c Separate compound matcher tests into individual tests
  171891. .UNINDENT
  171892. .UNINDENT
  171893. .UNINDENT
  171894. .UNINDENT
  171895. .IP \(bu 2
  171896. a84f5155a1 Merge pull request \fI\%#48869\fP from Ch3LL/mac_shell_tests
  171897. .INDENT 2.0
  171898. .IP \(bu 2
  171899. 3734b1ec89 Catch socket.error exception in testprogram
  171900. .UNINDENT
  171901. .IP \(bu 2
  171902. 7f56b8bf44 Merge pull request \fI\%#48867\fP from rallytime/skip\-tornado\-test
  171903. .INDENT 2.0
  171904. .IP \(bu 2
  171905. 7320aa9104 Skip unreliable tornado test.
  171906. .UNINDENT
  171907. .UNINDENT
  171908. .UNINDENT
  171909. .IP \(bu 2
  171910. \fBPR\fP \fI\%#48893\fP: (\fI\%Ch3LL\fP) handle when ca_certs is None in utils.http
  171911. @ \fI2018\-08\-03 20:30:48 UTC\fP
  171912. .INDENT 2.0
  171913. .IP \(bu 2
  171914. 848e26ed0b Merge pull request \fI\%#48893\fP from Ch3LL/http_tests
  171915. .IP \(bu 2
  171916. 16d251f7ff Merge branch \(aq2018.3\(aq into http_tests
  171917. .IP \(bu 2
  171918. 5674dddb2a handle when ca_certs is None in utils.http
  171919. .UNINDENT
  171920. .IP \(bu 2
  171921. \fBPR\fP \fI\%#48903\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes
  171922. @ \fI2018\-08\-03 19:12:34 UTC\fP
  171923. .INDENT 2.0
  171924. .IP \(bu 2
  171925. \fBPR\fP \fI\%#48877\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes (refs: \fI\%#48903\fP)
  171926. .IP \(bu 2
  171927. f1adf56017 Merge pull request \fI\%#48903\fP from Vaelatern/improve\-salt\-cloud\-python3\-virt
  171928. .IP \(bu 2
  171929. c45447fe0b Wrap ElementTree.tostring to make strs, not bytes
  171930. .UNINDENT
  171931. .IP \(bu 2
  171932. \fBPR\fP \fI\%#48900\fP: (\fI\%Ch3LL\fP) skip getpwnam check on mac in unit test_cmdmod
  171933. @ \fI2018\-08\-03 16:38:51 UTC\fP
  171934. .INDENT 2.0
  171935. .IP \(bu 2
  171936. d23471262d Merge pull request \fI\%#48900\fP from Ch3LL/cmd_unit
  171937. .IP \(bu 2
  171938. b82dd708be skip getpwnam check on mac in unit test_cmdmod
  171939. .UNINDENT
  171940. .IP \(bu 2
  171941. \fBPR\fP \fI\%#48921\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48904\fP to 2018.3
  171942. @ \fI2018\-08\-03 15:17:15 UTC\fP
  171943. .INDENT 2.0
  171944. .IP \(bu 2
  171945. \fBPR\fP \fI\%#48904\fP: (\fI\%KaiSforza\fP) No rehashing in parallel (refs: \fI\%#48921\fP, \fI\%#48920\fP)
  171946. .IP \(bu 2
  171947. d622a49b58 Merge pull request \fI\%#48921\fP from rallytime/bp\-48904
  171948. .IP \(bu 2
  171949. b504625f61 No rehashing in parallel
  171950. .UNINDENT
  171951. .IP \(bu 2
  171952. \fBPR\fP \fI\%#48877\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes (refs: \fI\%#48903\fP)
  171953. @ \fI2018\-08\-02 19:28:56 UTC\fP
  171954. .INDENT 2.0
  171955. .IP \(bu 2
  171956. 1e150923aa Merge pull request \fI\%#48877\fP from Vaelatern/improve\-salt\-cloud\-libvirt\-python3\-libvirt
  171957. .IP \(bu 2
  171958. fb7885315c Wrap ElementTree.tostring to make strs, not bytes
  171959. .UNINDENT
  171960. .IP \(bu 2
  171961. \fBPR\fP \fI\%#48824\fP: (\fI\%rallytime\fP) Bump deprecation in win_servermanager state to Neon
  171962. @ \fI2018\-08\-02 18:01:34 UTC\fP
  171963. .INDENT 2.0
  171964. .IP \(bu 2
  171965. 1fb7d9431b Merge pull request \fI\%#48824\fP from rallytime/win_servermanager_deprecations
  171966. .IP \(bu 2
  171967. 6ef5412528 Bump deprecation in win_servermanager state to Neon
  171968. .UNINDENT
  171969. .IP \(bu 2
  171970. \fBISSUE\fP \fI\%#37512\fP: (\fI\%ChristianBeer\fP) What\(aqs the precedence if multiple master configurations are specified? (refs: \fI\%#48888\fP)
  171971. .IP \(bu 2
  171972. \fBPR\fP \fI\%#48888\fP: (\fI\%terminalmage\fP) Explictly document the configuration override priority
  171973. @ \fI2018\-08\-02 16:57:18 UTC\fP
  171974. .INDENT 2.0
  171975. .IP \(bu 2
  171976. ec8e07e8ce Merge pull request \fI\%#48888\fP from terminalmage/issue37512
  171977. .IP \(bu 2
  171978. 7dce7cde14 Explictly document the configuration override priority
  171979. .UNINDENT
  171980. .IP \(bu 2
  171981. \fBPR\fP \fI\%#48871\fP: (\fI\%dwoz\fP) Remove unicode key pairs from environ after test
  171982. @ \fI2018\-08\-01 22:33:41 UTC\fP
  171983. .INDENT 2.0
  171984. .IP \(bu 2
  171985. d4bb3a0963 Merge pull request \fI\%#48871\fP from dwoz/test_cleanup
  171986. .IP \(bu 2
  171987. f2e15e7f1d Do not re\-define tearDown
  171988. .IP \(bu 2
  171989. 4f8a191a69 Remove unicode key pairs from environ after test
  171990. .UNINDENT
  171991. .IP \(bu 2
  171992. \fBPR\fP \fI\%#48843\fP: (\fI\%isbm\fP) Prevent u\(aqsomething\(aq to appear in help info.
  171993. @ \fI2018\-08\-01 20:38:58 UTC\fP
  171994. .INDENT 2.0
  171995. .IP \(bu 2
  171996. bec79e83a3 Merge pull request \fI\%#48843\fP from isbm/isbm\-log\-level\-names\-fix\-2
  171997. .IP \(bu 2
  171998. a63686180d Merge branch \(aq2018.3\(aq into isbm\-log\-level\-names\-fix\-2
  171999. .IP \(bu 2
  172000. 783c96ac72 Prevent u\(aqsomething\(aq to appear in help info.
  172001. .UNINDENT
  172002. .IP \(bu 2
  172003. \fBPR\fP \fI\%#48855\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172004. @ \fI2018\-08\-01 17:44:59 UTC\fP
  172005. .INDENT 2.0
  172006. .IP \(bu 2
  172007. a8376b537a Merge pull request \fI\%#48855\fP from rallytime/merge\-2018.3
  172008. .IP \(bu 2
  172009. 44998c208e Lint: Fix undefined logger variable
  172010. .IP \(bu 2
  172011. 92c9317a25 Update old utils paths to use new paths
  172012. .IP \(bu 2
  172013. 15bfba7143 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172014. .INDENT 2.0
  172015. .IP \(bu 2
  172016. 05f2d65de3 Merge pull request \fI\%#48853\fP from rallytime/bp\-48850
  172017. .INDENT 2.0
  172018. .IP \(bu 2
  172019. 3c33ee554a Skip tests in integration.shell.test_master
  172020. .UNINDENT
  172021. .IP \(bu 2
  172022. 8a1285239a Merge pull request \fI\%#48426\fP from garethgreenaway/46689_fixing_pkg_held_when_package_is_installed
  172023. .INDENT 2.0
  172024. .IP \(bu 2
  172025. 9b0f5dd212 Fixing identation, removing some unnecessary conditionals.
  172026. .IP \(bu 2
  172027. 727964ab55 One last cleanup.
  172028. .IP \(bu 2
  172029. 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.
  172030. .IP \(bu 2
  172031. 16fb6ae635 Make sure pkg.hold and pkg.unhold are available before running the test.
  172032. .IP \(bu 2
  172033. 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.
  172034. .UNINDENT
  172035. .IP \(bu 2
  172036. c8e69431ff Merge pull request \fI\%#47734\fP from OrlandoArcapix/Issue47689\-pip\-state\-performance
  172037. .INDENT 2.0
  172038. .IP \(bu 2
  172039. 662bd1f780 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172040. .IP \(bu 2
  172041. 66936b4f41 Changed string comparison in pip test to match new confirmation string \- ref PR \fI\%#47734\fP\&.
  172042. .IP \(bu 2
  172043. bb5939d6ef Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172044. .IP \(bu 2
  172045. d6a49ae41c Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172046. .IP \(bu 2
  172047. d4083fc9d1 Merge branch \(aqIssue47689\-pip\-state\-performance\(aq of github.com:OrlandoArcapix/salt into Issue47689\-pip\-state\-performance
  172048. .INDENT 2.0
  172049. .IP \(bu 2
  172050. 779b5fa785 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172051. .UNINDENT
  172052. .IP \(bu 2
  172053. f3653349ab Removed whitespaces at end of added comments lines
  172054. .IP \(bu 2
  172055. db11f2ff4b Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172056. .IP \(bu 2
  172057. eac0178de2 Ref: \fI\%#47689\fP \- document additional kwarg passed to pip._check_if_installed function
  172058. .IP \(bu 2
  172059. 0d19803106 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  172060. .IP \(bu 2
  172061. d3678bf2f3 \fI\%#47689\fP fix lint errors
  172062. .IP \(bu 2
  172063. 4fec8f6bcc \fI\%#47698\fP improve run\-speed of pip package state checks by only loading the current package list once when checking multiple packages
  172064. .UNINDENT
  172065. .IP \(bu 2
  172066. 83a5b3cc47 Merge pull request \fI\%#48844\fP from AVeenstra/fix\-python3\-incompatibility
  172067. .INDENT 2.0
  172068. .IP \(bu 2
  172069. f238779a62 Merge branch \(aq2017.7\(aq into fix\-python3\-incompatibility
  172070. .IP \(bu 2
  172071. 6b1805afc6 Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  172072. .UNINDENT
  172073. .IP \(bu 2
  172074. 136ff6735a Merge pull request \fI\%#48662\fP from slaws/fix\-retention\-schedule\-48637
  172075. .INDENT 2.0
  172076. .IP \(bu 2
  172077. 3c8f5f5b3d pylint fix
  172078. .IP \(bu 2
  172079. 5539eff39e Excluding relative dirs in state.file.retention_schedule
  172080. .UNINDENT
  172081. .IP \(bu 2
  172082. 1fc04f281b Merge pull request \fI\%#48840\fP from gtmanfred/docs
  172083. .INDENT 2.0
  172084. .IP \(bu 2
  172085. 8d2d268c4a fix links in pkg doc.
  172086. .UNINDENT
  172087. .IP \(bu 2
  172088. 0a19f845ea Merge pull request \fI\%#48834\fP from gtmanfred/slsutil
  172089. .INDENT 2.0
  172090. .IP \(bu 2
  172091. f9441d2bef read output of stringio if it is readable
  172092. .UNINDENT
  172093. .IP \(bu 2
  172094. 2e00939a6e Merge pull request \fI\%#48788\fP from Ch3LL/timezone_windows
  172095. .INDENT 2.0
  172096. .IP \(bu 2
  172097. de95a6a215 add unused import to timezone test file
  172098. .IP \(bu 2
  172099. 22e424859e add unused import to import
  172100. .IP \(bu 2
  172101. 0840fc3117 disable pylint import error
  172102. .IP \(bu 2
  172103. f09d1a2c7e Add timzeon windows integration tests and fix get_zone
  172104. .UNINDENT
  172105. .UNINDENT
  172106. .UNINDENT
  172107. .IP \(bu 2
  172108. \fBISSUE\fP \fI\%#48659\fP: (\fI\%dstoliker\fP) file.grep with glob (*) in path produces file not found error (refs: \fI\%#48830\fP)
  172109. .IP \(bu 2
  172110. \fBPR\fP \fI\%#48830\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to file.grep
  172111. @ \fI2018\-07\-31 21:30:04 UTC\fP
  172112. .INDENT 2.0
  172113. .IP \(bu 2
  172114. e23ba01cd2 Merge pull request \fI\%#48830\fP from garethgreenaway/48659_file_grep_glob_fix
  172115. .IP \(bu 2
  172116. 0791b0a03c FileGrepTestCase tests back to 2018.3
  172117. .IP \(bu 2
  172118. 2e01c55e7e Fixing a bug that prevents specifying wildcards for filenames.
  172119. .UNINDENT
  172120. .IP \(bu 2
  172121. \fBPR\fP \fI\%#48814\fP: (\fI\%isbm\fP) dmidecode race conditions check
  172122. @ \fI2018\-07\-31 20:48:29 UTC\fP
  172123. .INDENT 2.0
  172124. .IP \(bu 2
  172125. 9fda70b3d0 Merge pull request \fI\%#48814\fP from isbm/isbm\-2018.3\-smbios\-bugfix
  172126. .IP \(bu 2
  172127. 5f1141dc05 Merge branch \(aq2018.3\(aq into isbm\-2018.3\-smbios\-bugfix
  172128. .IP \(bu 2
  172129. b00ee5feef Update clean clause
  172130. .IP \(bu 2
  172131. b1b2e9c222 Remove multiple returns and combine logic to just one clause
  172132. .IP \(bu 2
  172133. fd77f760ee Rephrase explanatory comment
  172134. .IP \(bu 2
  172135. 1031e06443 Remove unnecessary code
  172136. .IP \(bu 2
  172137. c379b7e4ed Get rid of global variable
  172138. .UNINDENT
  172139. .IP \(bu 2
  172140. \fBPR\fP \fI\%#48804\fP: (\fI\%Ch3LL\fP) Use brew path from which cmd in mac_brew module
  172141. @ \fI2018\-07\-31 20:24:33 UTC\fP
  172142. .INDENT 2.0
  172143. .IP \(bu 2
  172144. 3d16a63ff2 Merge pull request \fI\%#48804\fP from Ch3LL/mac_brew
  172145. .IP \(bu 2
  172146. e818c752b3 Merge branch \(aq2018.3\(aq into mac_brew
  172147. .IP \(bu 2
  172148. 41e3d17f29 Use brew path from which cmd in mac_brew module
  172149. .UNINDENT
  172150. .IP \(bu 2
  172151. \fBPR\fP \fI\%#48836\fP: (\fI\%dwoz\fP) Fix unicode directory listing on py2
  172152. @ \fI2018\-07\-31 20:22:53 UTC\fP
  172153. .INDENT 2.0
  172154. .IP \(bu 2
  172155. 950c1014aa Merge pull request \fI\%#48836\fP from dwoz/unicode_names_py2
  172156. .IP \(bu 2
  172157. 47e158b9f0 Optomize if statement
  172158. .IP \(bu 2
  172159. 9b462394b2 Fix unicode directory listing on py2
  172160. .UNINDENT
  172161. .IP \(bu 2
  172162. \fBPR\fP \fI\%#48847\fP: (\fI\%terminalmage\fP) Update file.blockreplace docs to reflect changed functionality
  172163. @ \fI2018\-07\-31 18:11:30 UTC\fP
  172164. .INDENT 2.0
  172165. .IP \(bu 2
  172166. baf8c5784a Merge pull request \fI\%#48847\fP from terminalmage/issue48695
  172167. .IP \(bu 2
  172168. e2bdf7fb92 Update file.blockreplace docs to reflect changed functionality
  172169. .UNINDENT
  172170. .IP \(bu 2
  172171. \fBPR\fP \fI\%#48587\fP: (\fI\%twangboy\fP) Fix lgpo issue on Py3
  172172. @ \fI2018\-07\-31 18:05:58 UTC\fP
  172173. .INDENT 2.0
  172174. .IP \(bu 2
  172175. 644a1f4ff8 Merge pull request \fI\%#48587\fP from twangboy/fix_lgpo
  172176. .IP \(bu 2
  172177. a42621c817 Write file in normal mode
  172178. .IP \(bu 2
  172179. bfcbdeca3b Fix lgpo issue on Py3
  172180. .UNINDENT
  172181. .IP \(bu 2
  172182. \fBPR\fP \fI\%#48796\fP: (\fI\%Ch3LL\fP) Remove fake su used in integration tests
  172183. @ \fI2018\-07\-31 17:08:54 UTC\fP
  172184. .INDENT 2.0
  172185. .IP \(bu 2
  172186. 2bacc23481 Merge pull request \fI\%#48796\fP from Ch3LL/remove_su
  172187. .IP \(bu 2
  172188. d3b7f2cb18 Remove fake su used in integration tests
  172189. .UNINDENT
  172190. .IP \(bu 2
  172191. \fBISSUE\fP \fI\%#38310\fP: (\fI\%ghost\fP) Unable to checkout external pillar git repo using its git tag (refs: \fI\%#48689\fP)
  172192. .IP \(bu 2
  172193. \fBPR\fP \fI\%#48689\fP: (\fI\%linoplt\fP) Fix ext_pillar remote checkout using tag (pygit2)
  172194. @ \fI2018\-07\-31 16:15:58 UTC\fP
  172195. .INDENT 2.0
  172196. .IP \(bu 2
  172197. 00d06bda76 Merge pull request \fI\%#48689\fP from linoplt/fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  172198. .IP \(bu 2
  172199. eb4361dcc2 Merge branch \(aq2018.3\(aq into fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  172200. .IP \(bu 2
  172201. c20977e3bc Merge branch \(aq2018.3\(aq into fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  172202. .IP \(bu 2
  172203. b0157c215b Fix ext_pillar remote checkout using tag (pygit2)
  172204. .UNINDENT
  172205. .IP \(bu 2
  172206. \fBPR\fP \fI\%#48838\fP: (\fI\%sizgiyaev\fP) Fixed: added additional return code 200 for succeeded vault api request
  172207. @ \fI2018\-07\-31 16:14:22 UTC\fP
  172208. .INDENT 2.0
  172209. .IP \(bu 2
  172210. 5e14e36195 Merge pull request \fI\%#48838\fP from sizgiyaev/fix\-vault\-policy\-state
  172211. .IP \(bu 2
  172212. 02d09c6281 Fixed: added additional return code 200 for succeeded api request
  172213. .UNINDENT
  172214. .IP \(bu 2
  172215. \fBPR\fP \fI\%#48714\fP: (\fI\%dwoz\fP) Always transfer bytes from fileserver roots
  172216. @ \fI2018\-07\-30 22:37:13 UTC\fP
  172217. .INDENT 2.0
  172218. .IP \(bu 2
  172219. 69f81214d1 Merge pull request \fI\%#48714\fP from dwoz/state_echo_fix
  172220. .IP \(bu 2
  172221. ce3ed43dab Always use unix line endings
  172222. .IP \(bu 2
  172223. d5e60090bc Merge pull request \fI\%#2\fP from terminalmage/state_echo_fix
  172224. .INDENT 2.0
  172225. .IP \(bu 2
  172226. 52fc1c955d Simplify file contents in roots fileserver test
  172227. .IP \(bu 2
  172228. b6f73e8e57 Remove trailing whitespace on what should be a blank line
  172229. .UNINDENT
  172230. .IP \(bu 2
  172231. 95329acb1e Fileserver transfers bytes
  172232. .IP \(bu 2
  172233. aa34a80997 Always trasfer bytes from fileserver roots
  172234. .UNINDENT
  172235. .IP \(bu 2
  172236. \fBPR\fP \fI\%#48822\fP: (\fI\%Ch3LL\fP) Fix salt\-ssh state.sls_id TypeError key must be a string
  172237. @ \fI2018\-07\-30 20:29:29 UTC\fP
  172238. .INDENT 2.0
  172239. .IP \(bu 2
  172240. 16ca4ec2eb Merge pull request \fI\%#48822\fP from Ch3LL/ssh_2018_id
  172241. .IP \(bu 2
  172242. 01f6a15da0 Fix salt\-ssh state.sls_id TypeError key must be a string
  172243. .UNINDENT
  172244. .IP \(bu 2
  172245. \fBISSUE\fP \fI\%#47999\fP: (\fI\%arthurlogilab\fP) Carbon returner failing when run through scheduler on log.trace (refs: \fI\%#48757\fP)
  172246. .IP \(bu 2
  172247. \fBPR\fP \fI\%#48791\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48757\fP to 2018.3
  172248. @ \fI2018\-07\-27 21:30:44 UTC\fP
  172249. .INDENT 2.0
  172250. .IP \(bu 2
  172251. \fBPR\fP \fI\%#48757\fP: (\fI\%kuetrzi\fP) Update carbon_return.py (refs: \fI\%#48791\fP)
  172252. .IP \(bu 2
  172253. 488f6716d4 Merge pull request \fI\%#48791\fP from rallytime/bp\-48757
  172254. .IP \(bu 2
  172255. f440ebe91f Update carbon_return.py
  172256. .UNINDENT
  172257. .IP \(bu 2
  172258. \fBPR\fP \fI\%#48799\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172259. @ \fI2018\-07\-27 21:30:13 UTC\fP
  172260. .INDENT 2.0
  172261. .IP \(bu 2
  172262. fae29f4257 Merge pull request \fI\%#48799\fP from rallytime/merge\-2018.3
  172263. .IP \(bu 2
  172264. 487458ad4b Update old utils paths to use new utils paths
  172265. .IP \(bu 2
  172266. 436510796f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172267. .INDENT 2.0
  172268. .IP \(bu 2
  172269. 8e61f3dce0 Merge pull request \fI\%#48742\fP from frogunder/45014
  172270. .INDENT 2.0
  172271. .IP \(bu 2
  172272. f08058b043 Merge branch \(aq45014\(aq of \fI\%https://github.com/frogunder/salt\fP into 45014
  172273. .INDENT 2.0
  172274. .IP \(bu 2
  172275. 757fde70c6 Merge branch \(aq2017.7\(aq into 45014
  172276. .UNINDENT
  172277. .IP \(bu 2
  172278. 33c20c1ec0 fix tests
  172279. .IP \(bu 2
  172280. a7a914060d add windows integration tests for states.file
  172281. .UNINDENT
  172282. .IP \(bu 2
  172283. d74f47b340 Merge pull request \fI\%#48795\fP from rallytime/fix\-48417
  172284. .INDENT 2.0
  172285. .IP \(bu 2
  172286. 5123b17ffd Update linting docs to contain .testing.pylintrc use
  172287. .UNINDENT
  172288. .IP \(bu 2
  172289. bbea9ae936 Merge pull request \fI\%#48789\fP from rallytime/bp\-48783
  172290. .INDENT 2.0
  172291. .IP \(bu 2
  172292. 682a05bebe Threshold was wrong
  172293. .IP \(bu 2
  172294. d4ca0e3a97 test: except for OSError only
  172295. .IP \(bu 2
  172296. 4547231909 Only run lint checks against changed files
  172297. .UNINDENT
  172298. .IP \(bu 2
  172299. 41464d4b39 Merge pull request \fI\%#48731\fP from zer0def/virt\-runner\-init\-args
  172300. .INDENT 2.0
  172301. .IP \(bu 2
  172302. a1fa081ad0 Documentation to missing parameters in virt.init runner.
  172303. .IP \(bu 2
  172304. 365ebdf539 Fixed \fIenable_vnc\fP runner arg being passed into \fIseed_cmd\fP module arg in \fIvirt.init\fP\&.
  172305. .UNINDENT
  172306. .IP \(bu 2
  172307. 169afea16a Merge pull request \fI\%#48749\fP from Ch3LL/logo_docs
  172308. .INDENT 2.0
  172309. .IP \(bu 2
  172310. 73b1fc29f0 Update Saltstack Logo banner on docs.saltstack.com
  172311. .UNINDENT
  172312. .UNINDENT
  172313. .UNINDENT
  172314. .IP \(bu 2
  172315. \fBISSUE\fP \fI\%#48020\fP: (\fI\%calvinhp\fP) mine.get not returning data in a state.orchestrate sls (refs: \fI\%#48765\fP)
  172316. .IP \(bu 2
  172317. \fBPR\fP \fI\%#48765\fP: (\fI\%FedericoCeratto\fP) [2018.3] Fix mine.get not returning data
  172318. @ \fI2018\-07\-27 18:01:06 UTC\fP
  172319. .INDENT 2.0
  172320. .IP \(bu 2
  172321. bd67d2a805 Merge pull request \fI\%#48765\fP from FedericoCeratto/fix_mine.get_not_returning_data
  172322. .IP \(bu 2
  172323. 7183a6e0e8 Workaround for \fI\%#48020\fP
  172324. .UNINDENT
  172325. .IP \(bu 2
  172326. \fBPR\fP \fI\%#48747\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172327. @ \fI2018\-07\-26 18:14:34 UTC\fP
  172328. .INDENT 2.0
  172329. .IP \(bu 2
  172330. 6978ce5d1d Merge pull request \fI\%#48747\fP from rallytime/merge\-2018.3
  172331. .IP \(bu 2
  172332. 4122da40b5 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172333. .INDENT 2.0
  172334. .IP \(bu 2
  172335. 781c6a6c36 Merge pull request \fI\%#48743\fP from rallytime/saltconf\-ad\-2017.7
  172336. .INDENT 2.0
  172337. .IP \(bu 2
  172338. 6df8fd8652 Update DOCBANNER with new SaltConf18 image
  172339. .UNINDENT
  172340. .IP \(bu 2
  172341. ce4e22224e Merge pull request \fI\%#48720\fP from Ch3LL/mac_file_path
  172342. .INDENT 2.0
  172343. .IP \(bu 2
  172344. 01d25fae19 Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  172345. .UNINDENT
  172346. .IP \(bu 2
  172347. 4b9f037d43 Merge pull request \fI\%#48719\fP from Ch3LL/service_mac_state
  172348. .INDENT 2.0
  172349. .IP \(bu 2
  172350. f44a2fc349 Enable service if disabled before running state service tests
  172351. .UNINDENT
  172352. .IP \(bu 2
  172353. b2431eab10 Merge pull request \fI\%#48715\fP from rallytime/flaky\-tests
  172354. .INDENT 2.0
  172355. .IP \(bu 2
  172356. 7332cce567 [2017.7] Mark some tornado tests as flaky
  172357. .UNINDENT
  172358. .IP \(bu 2
  172359. 801eae3b8d Merge pull request \fI\%#48672\fP from frogunder/45012
  172360. .INDENT 2.0
  172361. .IP \(bu 2
  172362. 0747f2e58a add service enabled test
  172363. .UNINDENT
  172364. .UNINDENT
  172365. .UNINDENT
  172366. .IP \(bu 2
  172367. \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)
  172368. .IP \(bu 2
  172369. \fBPR\fP \fI\%#48771\fP: (\fI\%gtmanfred\fP) only do reverse dns lookup on ips for salt\-ssh
  172370. @ \fI2018\-07\-26 15:41:40 UTC\fP
  172371. .INDENT 2.0
  172372. .IP \(bu 2
  172373. 5ea43817ab Merge pull request \fI\%#48771\fP from gtmanfred/2018.3
  172374. .IP \(bu 2
  172375. 535fb8f8e7 only do reverse dns lookup on ips for salt\-ssh
  172376. .UNINDENT
  172377. .IP \(bu 2
  172378. \fBPR\fP \fI\%#48752\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix when state file is integers
  172379. @ \fI2018\-07\-25 15:03:02 UTC\fP
  172380. .INDENT 2.0
  172381. .IP \(bu 2
  172382. f2ef2d3ef6 Merge pull request \fI\%#48752\fP from garethgreenaway/fix_state_file_all_integers
  172383. .IP \(bu 2
  172384. 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.
  172385. .UNINDENT
  172386. .IP \(bu 2
  172387. \fBISSUE\fP \fI\%#46896\fP: (\fI\%Poil\fP) Proxy + file.managed => Comment: Failed to cache xxx invalid arguments to setopt (refs: \fI\%#48754\fP)
  172388. .IP \(bu 2
  172389. \fBPR\fP \fI\%#48754\fP: (\fI\%lomeroe\fP) send proxy/ca_cert parameters as strings (not unicode) to tornado httpclient
  172390. @ \fI2018\-07\-25 14:55:42 UTC\fP
  172391. .INDENT 2.0
  172392. .IP \(bu 2
  172393. 030c921914 Merge pull request \fI\%#48754\fP from lomeroe/fix\-tornado\-proxy
  172394. .IP \(bu 2
  172395. d33056704b pass proxy_user, proxy_password, proxy_host, and ca_certs through salt.utils.stringutils.to_str()
  172396. .UNINDENT
  172397. .IP \(bu 2
  172398. \fBPR\fP \fI\%#48769\fP: (\fI\%Ch3LL\fP) Update Saltstack Logo banner on docs.saltstack.com
  172399. @ \fI2018\-07\-25 14:47:19 UTC\fP
  172400. .INDENT 2.0
  172401. .IP \(bu 2
  172402. 1eee4b136b Merge pull request \fI\%#48769\fP from Ch3LL/update_doc_2018.3
  172403. .IP \(bu 2
  172404. 0cb4bac798 Update Saltstack Logo banner on docs.saltstack.com
  172405. .UNINDENT
  172406. .IP \(bu 2
  172407. \fBPR\fP \fI\%#48760\fP: (\fI\%dwoz\fP) Multiple windows test fixes
  172408. @ \fI2018\-07\-25 11:55:27 UTC\fP
  172409. .INDENT 2.0
  172410. .IP \(bu 2
  172411. 19afa3b023 Merge pull request \fI\%#48760\fP from dwoz/test_file_fixes
  172412. .IP \(bu 2
  172413. a89019e956 Multiple windows test fixes
  172414. .UNINDENT
  172415. .IP \(bu 2
  172416. \fBPR\fP \fI\%#48753\fP: (\fI\%dwoz\fP) Finally fix prepend for real
  172417. @ \fI2018\-07\-25 00:07:15 UTC\fP
  172418. .INDENT 2.0
  172419. .IP \(bu 2
  172420. e6dace3959 Merge pull request \fI\%#48753\fP from dwoz/fix_prepend
  172421. .IP \(bu 2
  172422. 0d1e8ab3f8 Merge branch \(aq2018.3\(aq into fix_prepend
  172423. .UNINDENT
  172424. .IP \(bu 2
  172425. \fBPR\fP \fI\%#48756\fP: (\fI\%dwoz\fP) os.uname is not available on py2 windows
  172426. @ \fI2018\-07\-24 23:38:32 UTC\fP
  172427. .INDENT 2.0
  172428. .IP \(bu 2
  172429. 8aef6d9960 Merge pull request \fI\%#48756\fP from dwoz/core_grains_fix
  172430. .IP \(bu 2
  172431. b7a37ecf11 os.uname is not available on py2 windows
  172432. .UNINDENT
  172433. .IP \(bu 2
  172434. \fBISSUE\fP \fI\%#48536\fP: (\fI\%whytewolf\fP) diskusage beacon does not recognize tmpfs disks in linux. (refs: \fI\%#48718\fP)
  172435. .IP \(bu 2
  172436. \fBPR\fP \fI\%#48718\fP: (\fI\%garethgreenaway\fP) [2018.3] beacon diskusage fixes
  172437. @ \fI2018\-07\-24 17:45:26 UTC\fP
  172438. .INDENT 2.0
  172439. .IP \(bu 2
  172440. 062fe7cccf Merge pull request \fI\%#48718\fP from garethgreenaway/48536_beacon_diskusage_fixes
  172441. .IP \(bu 2
  172442. 38a65e8fb3 Fixing test_diskusage_nomatch and test_diskusage_match_regex
  172443. .IP \(bu 2
  172444. 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.
  172445. .UNINDENT
  172446. .IP \(bu 2
  172447. \fBPR\fP \fI\%#48711\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172448. @ \fI2018\-07\-24 17:38:58 UTC\fP
  172449. .INDENT 2.0
  172450. .IP \(bu 2
  172451. e873621009 Merge pull request \fI\%#48711\fP from rallytime/merge\-2018.3
  172452. .IP \(bu 2
  172453. ea5c063237 Update old utils paths to use new paths
  172454. .IP \(bu 2
  172455. e740d3b208 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172456. .INDENT 2.0
  172457. .IP \(bu 2
  172458. 689c231d2b Merge pull request \fI\%#48691\fP from Ch3LL/win_repo_pkg_test
  172459. .INDENT 2.0
  172460. .IP \(bu 2
  172461. 4b7d6d80c5 Remove unnecessary jinja in curl.sls file
  172462. .IP \(bu 2
  172463. 2bedadfadb Add windows pkg module integration tests
  172464. .UNINDENT
  172465. .IP \(bu 2
  172466. 83e4bba916 Merge pull request \fI\%#48635\fP from nbraud/acme
  172467. .INDENT 2.0
  172468. .IP \(bu 2
  172469. 3673bae9de modules/acme: explicitely ignore the \fIperms\fP return value
  172470. .IP \(bu 2
  172471. 1800a231e8 Fixup some schema expectations
  172472. .IP \(bu 2
  172473. 8c718cb417 acme: Make the private key mode configurable
  172474. .IP \(bu 2
  172475. 917dea6761 modules/acme: Use file.check_perms ret\-morphing powers
  172476. .IP \(bu 2
  172477. d2241ceb2d module/acme: Do not exit early when the certificate already exists
  172478. .IP \(bu 2
  172479. 98af0db826 modules/acme: Set the private key filemode to 0640
  172480. .UNINDENT
  172481. .IP \(bu 2
  172482. 85991680c8 Merge pull request \fI\%#48345\fP from twangboy/fix_48169
  172483. .INDENT 2.0
  172484. .IP \(bu 2
  172485. ead19725b6 Merge branch \(aq2017.7\(aq into fix_48169
  172486. .IP \(bu 2
  172487. 653fbcb383 Fix some docs errata
  172488. .IP \(bu 2
  172489. 8898e5ff11 Add warn_until Fluorine
  172490. .IP \(bu 2
  172491. 707906ac15 Fix unit.state.test_powercfg
  172492. .IP \(bu 2
  172493. 32c5014eb6 Fix unit tests
  172494. .IP \(bu 2
  172495. 0d9c56e540 Add some more logging
  172496. .IP \(bu 2
  172497. b20453de9f Use minutes to set
  172498. .IP \(bu 2
  172499. 7dc7eb11c2 Fix documentation to denote seconds when setting
  172500. .UNINDENT
  172501. .IP \(bu 2
  172502. 96447ce541 Merge pull request \fI\%#48656\fP from Ch3LL/windows_ip_mod
  172503. .INDENT 2.0
  172504. .IP \(bu 2
  172505. 90c3f568b1 Add windows ip module integration tests
  172506. .UNINDENT
  172507. .IP \(bu 2
  172508. 0c5fff3dc8 Merge pull request \fI\%#48638\fP from twangboy/fix_vcredist
  172509. .INDENT 2.0
  172510. .IP \(bu 2
  172511. e30d17099d Use goto instead of if statement
  172512. .IP \(bu 2
  172513. e1042fa084 Remove vcredist for Py3
  172514. .UNINDENT
  172515. .IP \(bu 2
  172516. 1ebd96d909 Merge pull request \fI\%#48664\fP from Ch3LL/srv_disable_mac
  172517. .INDENT 2.0
  172518. .IP \(bu 2
  172519. f1fbfad387 move the disable call up in try block
  172520. .IP \(bu 2
  172521. f60d21bda4 reverse assertion order for service disable test
  172522. .IP \(bu 2
  172523. 3727d1b3b9 switch try/except to match 2018.3
  172524. .IP \(bu 2
  172525. fb953c2369 [2017.7] Fix service.disabled test for macosx
  172526. .UNINDENT
  172527. .IP \(bu 2
  172528. 3da3cf2f3f Merge pull request \fI\%#48625\fP from Ch3LL/ssh_state
  172529. .INDENT 2.0
  172530. .IP \(bu 2
  172531. f590eb2b02 Update state.py
  172532. .IP \(bu 2
  172533. 9790ee3d0d Follow up to PR \fI\%#48555\fP
  172534. .UNINDENT
  172535. .IP \(bu 2
  172536. 33812f78f1 Merge pull request \fI\%#48673\fP from Ch3LL/mac_port
  172537. .INDENT 2.0
  172538. .IP \(bu 2
  172539. 87dd85a220 Use different pub and ret ports for testprogram integration tests
  172540. .UNINDENT
  172541. .IP \(bu 2
  172542. 5f6a7c4d89 Merge pull request \fI\%#48675\fP from Ch3LL/mac_disable
  172543. .INDENT 2.0
  172544. .IP \(bu 2
  172545. c78efab828 Fix mac service.disable tests
  172546. .UNINDENT
  172547. .IP \(bu 2
  172548. 93d2f51d2b Merge pull request \fI\%#48658\fP from wyardley/wyardley\-npm\-json\-output\-2017
  172549. .INDENT 2.0
  172550. .IP \(bu 2
  172551. 7ff3c9c5ff Improve handling of npm json output (\fI\%#43138\fP)
  172552. .UNINDENT
  172553. .IP \(bu 2
  172554. 3e293b0513 Merge pull request \fI\%#48678\fP from OrlandoArcapix/fix\-npm\-dryrun\-test
  172555. .INDENT 2.0
  172556. .IP \(bu 2
  172557. 851a404f6b Fix for issue \fI\%#48677\fP \- return True when no changes are to be made with npm.bootstrap with test=true
  172558. .UNINDENT
  172559. .IP \(bu 2
  172560. 07a1f6520f Merge pull request \fI\%#48580\fP from rallytime/fix\-46884
  172561. .INDENT 2.0
  172562. .IP \(bu 2
  172563. 736b382e91 Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  172564. .UNINDENT
  172565. .IP \(bu 2
  172566. 9874429741 Merge pull request \fI\%#48628\fP from terminalmage/testinfra
  172567. .INDENT 2.0
  172568. .IP \(bu 2
  172569. 5ace9f01ec Fix NameError in testinfra module
  172570. .UNINDENT
  172571. .IP \(bu 2
  172572. 0d4c80205f Merge pull request \fI\%#48651\fP from gtmanfred/pylint\-2017.7
  172573. .INDENT 2.0
  172574. .IP \(bu 2
  172575. b6ee52f859 handle pyzmq for python3.4
  172576. .UNINDENT
  172577. .IP \(bu 2
  172578. 160ae29cf2 Merge pull request \fI\%#48647\fP from gtmanfred/pylint\-2017.7
  172579. .INDENT 2.0
  172580. .IP \(bu 2
  172581. ff818c4ca2 disable checks on pylint
  172582. .UNINDENT
  172583. .IP \(bu 2
  172584. 47b1032efa Merge pull request \fI\%#48593\fP from pritambaral/fix/2017.7\-importlib\-pyc\-loading\-order
  172585. .INDENT 2.0
  172586. .IP \(bu 2
  172587. add7894dee loader: Fix suffix order when importlib is used
  172588. .UNINDENT
  172589. .IP \(bu 2
  172590. 9da7b2ec8d Merge pull request \fI\%#48630\fP from dubb\-b/pipeline\-updates
  172591. .INDENT 2.0
  172592. .IP \(bu 2
  172593. 8594a8dd05 Adding PY_COLORS=1 as PY_COLORS = 1 instead
  172594. .IP \(bu 2
  172595. 314b0e3599 Adding PY_COLORS=1 for python programs to use ANSI Colors
  172596. .IP \(bu 2
  172597. b705e8f7a5 Adding correct spacing to options section
  172598. .IP \(bu 2
  172599. 9d8a7e07db Adding options to Jenkins pipline builds
  172600. .UNINDENT
  172601. .IP \(bu 2
  172602. a8ae2adf64 Merge pull request \fI\%#48633\fP from saltstack/revert\-48610\-2017.7
  172603. .INDENT 2.0
  172604. .IP \(bu 2
  172605. bab4a769d4 Revert "only run pylint on files that change"
  172606. .UNINDENT
  172607. .IP \(bu 2
  172608. 6e32bb7f74 Merge pull request \fI\%#48614\fP from rallytime/bp\-48562
  172609. .INDENT 2.0
  172610. .IP \(bu 2
  172611. cb654bbf2c Add timeouts to all s3 queries
  172612. .UNINDENT
  172613. .IP \(bu 2
  172614. 1b6e6388f8 Merge pull request \fI\%#48588\fP from garethgreenaway/48415_event_send_multi_master
  172615. .INDENT 2.0
  172616. .IP \(bu 2
  172617. fab25af1a9 Adding some quick documention about why we are setting ret=True following the channel.send.
  172618. .IP \(bu 2
  172619. 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.
  172620. .IP \(bu 2
  172621. 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.
  172622. .UNINDENT
  172623. .IP \(bu 2
  172624. 24ffda49ba Merge pull request \fI\%#48610\fP from gtmanfred/2017.7
  172625. .INDENT 2.0
  172626. .IP \(bu 2
  172627. 779d1a3dcb only run pylint on files that change
  172628. .UNINDENT
  172629. .IP \(bu 2
  172630. 5391dd0a8d Merge pull request \fI\%#48584\fP from Ch3LL/mac_user_grp
  172631. .INDENT 2.0
  172632. .IP \(bu 2
  172633. 585ee9db90 Fix grp import for mac in test_user integration test
  172634. .UNINDENT
  172635. .IP \(bu 2
  172636. 61572b6780 Merge pull request \fI\%#48555\fP from Ch3LL/ssh_id
  172637. .INDENT 2.0
  172638. .IP \(bu 2
  172639. f69932f506 fix pylint
  172640. .IP \(bu 2
  172641. 70e36764ee Add more tests for salt\-ssh state.sls_id
  172642. .IP \(bu 2
  172643. dab80e805c Fix state.sls_id to run on ssh minion and not master
  172644. .UNINDENT
  172645. .IP \(bu 2
  172646. aa6dcf39e8 Merge pull request \fI\%#48583\fP from Ch3LL/mac_flaky_tests
  172647. .INDENT 2.0
  172648. .IP \(bu 2
  172649. 4ba2299a87 import flaky decorator on mac tests
  172650. .IP \(bu 2
  172651. 811220b41e Add flaky decorator to mac_system and mac_timezone tests
  172652. .UNINDENT
  172653. .IP \(bu 2
  172654. 6973152057 Merge pull request \fI\%#48534\fP from xetix/fix\-zypper\-latest_version
  172655. .INDENT 2.0
  172656. .IP \(bu 2
  172657. 9985f0b4c1 Lint: remove extra blank line
  172658. .IP \(bu 2
  172659. 5fbead8a36 Merge branch \(aq2017.7\(aq into fix\-zypper\-latest_version
  172660. .IP \(bu 2
  172661. 56ac449271 Merge branch \(aqfix\-zypper\-latest_version\(aq of \fI\%https://github.com/xetix/salt\fP into fix\-zypper\-latest_version
  172662. .INDENT 2.0
  172663. .IP \(bu 2
  172664. 44e87f5a0f Adding testcase for this fix.
  172665. .IP \(bu 2
  172666. 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
  172667. .UNINDENT
  172668. .IP \(bu 2
  172669. db35d0c1e1 Adding testcase for this fix.
  172670. .IP \(bu 2
  172671. 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
  172672. .UNINDENT
  172673. .IP \(bu 2
  172674. 10124034cb Merge pull request \fI\%#48582\fP from dwoz/test_prepend_fix
  172675. .INDENT 2.0
  172676. .IP \(bu 2
  172677. f37571e0bd Merge branch \(aq2017.7\(aq into test_prepend_fix
  172678. .UNINDENT
  172679. .IP \(bu 2
  172680. 13f67335f3 Merge pull request \fI\%#48564\fP from dwoz/test_prepend_fix
  172681. .INDENT 2.0
  172682. .INDENT 3.5
  172683. .INDENT 0.0
  172684. .IP \(bu 2
  172685. 136ddf5f54 Finally fix prepend for real
  172686. .UNINDENT
  172687. .UNINDENT
  172688. .UNINDENT
  172689. .INDENT 2.0
  172690. .IP \(bu 2
  172691. 66b25e65bf Fix failing prepend test
  172692. .UNINDENT
  172693. .IP \(bu 2
  172694. b8ce27729f Merge pull request \fI\%#48558\fP from dwoz/test_file_fix
  172695. .INDENT 2.0
  172696. .IP \(bu 2
  172697. c858bf477f Remove which mock to get the test passing
  172698. .UNINDENT
  172699. .IP \(bu 2
  172700. a15c65202d Merge pull request \fI\%#48552\fP from KaiSforza/jenkins\-junit\-2017
  172701. .INDENT 2.0
  172702. .IP \(bu 2
  172703. 72b1830974 Set up junit in jenkins
  172704. .UNINDENT
  172705. .IP \(bu 2
  172706. f73108026e Merge pull request \fI\%#48550\fP from gtmanfred/2017.7
  172707. .INDENT 2.0
  172708. .IP \(bu 2
  172709. d5c603d9b6 add posargs to tox pylint
  172710. .UNINDENT
  172711. .IP \(bu 2
  172712. 113b0426f8 Merge pull request \fI\%#48535\fP from asnell/asnell\-patch\-2
  172713. .INDENT 2.0
  172714. .IP \(bu 2
  172715. d328f6e43d Update manage_file helptext
  172716. .UNINDENT
  172717. .UNINDENT
  172718. .UNINDENT
  172719. .IP \(bu 2
  172720. \fBPR\fP \fI\%#48744\fP: (\fI\%rallytime\fP) [2018.3] Update DOCBANNER with new SaltConf18 image
  172721. @ \fI2018\-07\-24 17:15:40 UTC\fP
  172722. .INDENT 2.0
  172723. .IP \(bu 2
  172724. 6c7f1c549d Merge pull request \fI\%#48744\fP from rallytime/saltconf\-ad\-2018.3
  172725. .IP \(bu 2
  172726. dbc1f8b772 Update DOCBANNER with new SaltConf18 image
  172727. .UNINDENT
  172728. .IP \(bu 2
  172729. \fBPR\fP \fI\%#48726\fP: (\fI\%dwoz\fP) Skip test when syslog not available
  172730. @ \fI2018\-07\-24 16:12:44 UTC\fP
  172731. .INDENT 2.0
  172732. .IP \(bu 2
  172733. 04ab17a4d6 Merge pull request \fI\%#48726\fP from dwoz/syslogtest
  172734. .IP \(bu 2
  172735. 00f04cfd59 Skip test when syslog not available
  172736. .UNINDENT
  172737. .IP \(bu 2
  172738. \fBPR\fP \fI\%#48727\fP: (\fI\%dwoz\fP) Windows compatible cp test
  172739. @ \fI2018\-07\-24 14:41:34 UTC\fP
  172740. .INDENT 2.0
  172741. .IP \(bu 2
  172742. af837424aa Merge pull request \fI\%#48727\fP from dwoz/file_cp_test_fix
  172743. .IP \(bu 2
  172744. 6e7824266b Windows compatible cp test
  172745. .UNINDENT
  172746. .IP \(bu 2
  172747. \fBISSUE\fP \fI\%#40004\fP: (\fI\%te\-af\-github\fP) svn changes report (refs: \fI\%#47510\fP)
  172748. .IP \(bu 2
  172749. \fBISSUE\fP \fI\%#21025\fP: (\fI\%RobertFach\fP) svn.export reports invalid change data (2014.7.x) (refs: \fI\%#47510\fP)
  172750. .IP \(bu 2
  172751. \fBPR\fP \fI\%#48710\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47510\fP to 2018.3
  172752. @ \fI2018\-07\-23 21:11:18 UTC\fP
  172753. .INDENT 2.0
  172754. .IP \(bu 2
  172755. \fBPR\fP \fI\%#47510\fP: (\fI\%daa\fP) Fix svn export invalid changes data (refs: \fI\%#48710\fP)
  172756. .IP \(bu 2
  172757. 04125b077d Merge pull request \fI\%#48710\fP from rallytime/bp\-47510
  172758. .IP \(bu 2
  172759. ebcd3b1c6b fixed test for svn.export
  172760. .IP \(bu 2
  172761. e79f4aa5cc put name under "new" key in changes dictionary to be in line with svn.latest
  172762. .IP \(bu 2
  172763. 163f99089c made svn.export changes data dictionary, fixes \fI\%#21025\fP, \fI\%#40004\fP
  172764. .INDENT 2.0
  172765. .INDENT 3.5
  172766. .INDENT 0.0
  172767. .IP \(bu 2
  172768. 3a941055c1 Use \fIsalt.utils.platform.is_windows\fP
  172769. .IP \(bu 2
  172770. 33e48f7ad7 Finally fix prepend for real
  172771. .UNINDENT
  172772. .UNINDENT
  172773. .UNINDENT
  172774. .UNINDENT
  172775. .IP \(bu 2
  172776. \fBPR\fP \fI\%#48699\fP: (\fI\%terminalmage\fP) Add missing release notes mention of file.blockreplace changes
  172777. @ \fI2018\-07\-23 13:34:32 UTC\fP
  172778. .INDENT 2.0
  172779. .IP \(bu 2
  172780. e1dd10be70 Merge pull request \fI\%#48699\fP from terminalmage/issue48695
  172781. .IP \(bu 2
  172782. 7ad832c901 Add missing release notes mention of file.blockreplace changes
  172783. .UNINDENT
  172784. .IP \(bu 2
  172785. \fBPR\fP \fI\%#48700\fP: (\fI\%dwoz\fP) Call sync_modules to fix Windows test case
  172786. @ \fI2018\-07\-22 22:23:48 UTC\fP
  172787. .INDENT 2.0
  172788. .IP \(bu 2
  172789. ab44a05fe4 Merge pull request \fI\%#48700\fP from dwoz/ext_mod_test
  172790. .IP \(bu 2
  172791. d731e6bf8e Call sync_all to fix Windows test case
  172792. .UNINDENT
  172793. .IP \(bu 2
  172794. \fBPR\fP \fI\%#48653\fP: (\fI\%terminalmage\fP) docker_container.running: Fix regression in test mode
  172795. @ \fI2018\-07\-20 19:15:47 UTC\fP
  172796. .INDENT 2.0
  172797. .IP \(bu 2
  172798. 6a494205f2 Merge pull request \fI\%#48653\fP from terminalmage/docker\-unboundlocal
  172799. .IP \(bu 2
  172800. b0440871a0 Merge branch \(aq2018.3\(aq into docker\-unboundlocal
  172801. .IP \(bu 2
  172802. 9515dd17ff docker_container.running: Fix regression in test mode
  172803. .UNINDENT
  172804. .IP \(bu 2
  172805. \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)
  172806. .IP \(bu 2
  172807. \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)
  172808. .IP \(bu 2
  172809. \fBPR\fP \fI\%#48685\fP: (\fI\%bbinet\fP) Use empty dict for \(aqchanges\(aq instead of None
  172810. @ \fI2018\-07\-20 17:12:43 UTC\fP
  172811. .INDENT 2.0
  172812. .IP \(bu 2
  172813. \fBPR\fP \fI\%#48671\fP: (\fI\%bbinet\fP) Few fixes to the grafana module and states (refs: \fI\%#48685\fP)
  172814. .IP \(bu 2
  172815. 266c6f250e Merge pull request \fI\%#48685\fP from bbinet/none\-changes
  172816. .IP \(bu 2
  172817. 842eb3da24 Use empty dict for \(aqchanges\(aq instead of None
  172818. .UNINDENT
  172819. .IP \(bu 2
  172820. \fBPR\fP \fI\%#48670\fP: (\fI\%bbinet\fP) Add the "traverse" jinja filter
  172821. @ \fI2018\-07\-20 16:36:21 UTC\fP
  172822. .INDENT 2.0
  172823. .IP \(bu 2
  172824. 5a6f7a085c Merge pull request \fI\%#48670\fP from bbinet/traverse
  172825. .IP \(bu 2
  172826. 32b6d22cf2 Fix RST syntax issue in doc
  172827. .IP \(bu 2
  172828. 37a41226d5 Add the "traverse" jinja filter
  172829. .UNINDENT
  172830. .IP \(bu 2
  172831. \fBPR\fP \fI\%#48594\fP: (\fI\%pritambaral\fP) Backport 48418
  172832. @ \fI2018\-07\-20 14:57:19 UTC\fP
  172833. .INDENT 2.0
  172834. .IP \(bu 2
  172835. \fBPR\fP \fI\%#48418\fP: (\fI\%pritambaral\fP) Fix multi\-sls \fIsalt.state\fP orchestration in masterless systems (refs: \fI\%#48594\fP)
  172836. .IP \(bu 2
  172837. ff11763fd3 Merge pull request \fI\%#48594\fP from pritambaral/bp\-48418
  172838. .IP \(bu 2
  172839. adcee28b84 Fix multi\-sls \fIsalt.state\fP orchestration in masterless systems
  172840. .UNINDENT
  172841. .IP \(bu 2
  172842. \fBISSUE\fP \fI\%#48184\fP: (\fI\%mmulqueen\fP) Invalid DMI prevents salt\-minion from running (refs: \fI\%#48440\fP)
  172843. .IP \(bu 2
  172844. \fBPR\fP \fI\%#48440\fP: (\fI\%mmulqueen\fP) Make core.py tolerant of invalid chars in DMI data
  172845. @ \fI2018\-07\-20 14:48:07 UTC\fP
  172846. .INDENT 2.0
  172847. .IP \(bu 2
  172848. \fBPR\fP \fI\%#48216\fP: (\fI\%Ch3LL\fP) Fix UnicodeDecodeError when reading file to determine virtual grain (refs: \fI\%#48440\fP)
  172849. .IP \(bu 2
  172850. 111908f519 Merge pull request \fI\%#48440\fP from mmulqueen/patch\-1
  172851. .IP \(bu 2
  172852. 5bbbdc74cd Make core.py tolerant of invalid chars in DMI data
  172853. .UNINDENT
  172854. .IP \(bu 2
  172855. \fBPR\fP \fI\%#48663\fP: (\fI\%Ch3LL\fP) [2018.3] Fix service.disabled test for macosx
  172856. @ \fI2018\-07\-20 14:32:22 UTC\fP
  172857. .INDENT 2.0
  172858. .IP \(bu 2
  172859. 4e77b242f2 Merge pull request \fI\%#48663\fP from Ch3LL/srv_disable_mac_2018
  172860. .IP \(bu 2
  172861. bddfbd75d2 reverse assertion order for service disable test
  172862. .IP \(bu 2
  172863. 2bfaf7fe89 Fix service.disabled test for macosx
  172864. .UNINDENT
  172865. .IP \(bu 2
  172866. \fBPR\fP \fI\%#48304\fP: (\fI\%Ch3LL\fP) Fix macosx grains when swapusage returns comma
  172867. @ \fI2018\-07\-20 14:30:59 UTC\fP
  172868. .INDENT 2.0
  172869. .IP \(bu 2
  172870. dfc1582475 Merge pull request \fI\%#48304\fP from Ch3LL/swap_mac
  172871. .IP \(bu 2
  172872. 5d6135e1e2 Fix macosx grains when swapusage returns comma
  172873. .UNINDENT
  172874. .IP \(bu 2
  172875. \fBPR\fP \fI\%#48671\fP: (\fI\%bbinet\fP) Few fixes to the grafana module and states (refs: \fI\%#48685\fP)
  172876. @ \fI2018\-07\-20 13:58:02 UTC\fP
  172877. .INDENT 2.0
  172878. .IP \(bu 2
  172879. 9d7eabd24e Merge pull request \fI\%#48671\fP from bbinet/grafana\-fixes
  172880. .IP \(bu 2
  172881. 3c5083f550 Add support for dry run (test=True) of grafana states
  172882. .IP \(bu 2
  172883. 7e7ae8ace7 influxdb: fix conflicts in function arg names with client_args
  172884. .IP \(bu 2
  172885. 73a24b774a Ignore readOnly option when diffing
  172886. .IP \(bu 2
  172887. 81f0cf8a3f Add missing profile argument to grafana4.get_user_data
  172888. .UNINDENT
  172889. .IP \(bu 2
  172890. \fBPR\fP \fI\%#48650\fP: (\fI\%gtmanfred\fP) [2018.3] handle pyzmq for python3.4
  172891. @ \fI2018\-07\-18 17:34:37 UTC\fP
  172892. .INDENT 2.0
  172893. .IP \(bu 2
  172894. e828167114 Merge pull request \fI\%#48650\fP from gtmanfred/pylint\-2018.3
  172895. .IP \(bu 2
  172896. 3c1882077e handle pyzmq for python3.4
  172897. .UNINDENT
  172898. .IP \(bu 2
  172899. \fBPR\fP \fI\%#48648\fP: (\fI\%gtmanfred\fP) [2018.3] disable checks on pylint
  172900. @ \fI2018\-07\-18 16:21:37 UTC\fP
  172901. .INDENT 2.0
  172902. .IP \(bu 2
  172903. a6f8acf4dc Merge pull request \fI\%#48648\fP from gtmanfred/pylint\-2018.3
  172904. .IP \(bu 2
  172905. 7c34c2965e disable checks on pylint
  172906. .UNINDENT
  172907. .IP \(bu 2
  172908. \fBPR\fP \fI\%#48634\fP: (\fI\%dwoz\fP) Sync modules for state tests
  172909. @ \fI2018\-07\-17 20:33:06 UTC\fP
  172910. .INDENT 2.0
  172911. .IP \(bu 2
  172912. 01c9c59a97 Merge pull request \fI\%#48634\fP from dwoz/state\-module\-test\-fix
  172913. .IP \(bu 2
  172914. 9dfd2ae392 Sync modules for state tests
  172915. .UNINDENT
  172916. .IP \(bu 2
  172917. \fBPR\fP \fI\%#48585\fP: (\fI\%astorath\fP) replaced meta tag
  172918. @ \fI2018\-07\-16 14:11:02 UTC\fP
  172919. .INDENT 2.0
  172920. .IP \(bu 2
  172921. fb7bfc757c Merge pull request \fI\%#48585\fP from astorath/fix\-vault\-meta
  172922. .IP \(bu 2
  172923. 42fd3d5f67 replaced meta tag
  172924. .UNINDENT
  172925. .IP \(bu 2
  172926. \fBPR\fP \fI\%#48579\fP: (\fI\%Ch3LL\fP) Fix python2 syslog returner expecting string bytes not unicode
  172927. @ \fI2018\-07\-13 19:50:16 UTC\fP
  172928. .INDENT 2.0
  172929. .IP \(bu 2
  172930. 4b16537a29 Merge pull request \fI\%#48579\fP from Ch3LL/fix_syslog
  172931. .IP \(bu 2
  172932. d8288a0ffc add unicode type for syslog test for tag
  172933. .IP \(bu 2
  172934. 17e69382d5 Fix python2 syslog returner expecting string bytes not unicode
  172935. .UNINDENT
  172936. .IP \(bu 2
  172937. \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)
  172938. .IP \(bu 2
  172939. \fBPR\fP \fI\%#48547\fP: (\fI\%gtmanfred\fP) fix git.cloned doc versionadded
  172940. @ \fI2018\-07\-13 18:46:25 UTC\fP
  172941. .INDENT 2.0
  172942. .IP \(bu 2
  172943. 3549ce408d Merge pull request \fI\%#48547\fP from gtmanfred/git.cloned
  172944. .IP \(bu 2
  172945. b596a945ea Merge branch \(aq2018.3\(aq into git.cloned
  172946. .IP \(bu 2
  172947. e41f4922a0 fix git.cloned doc versionadded
  172948. .UNINDENT
  172949. .IP \(bu 2
  172950. \fBISSUE\fP \fI\%#48110\fP: (\fI\%whytewolf\fP) file.line on windows not treating unix line endings correctly. (refs: \fI\%#48503\fP)
  172951. .IP \(bu 2
  172952. \fBPR\fP \fI\%#48503\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46291\fP to 2018.3
  172953. @ \fI2018\-07\-13 17:14:47 UTC\fP
  172954. .INDENT 2.0
  172955. .IP \(bu 2
  172956. \fBPR\fP \fI\%#48380\fP: (\fI\%twangboy\fP) Detect and preserve line endings (refs: \fI\%#48503\fP)
  172957. .IP \(bu 2
  172958. \fBPR\fP \fI\%#46291\fP: (\fI\%t0fik\fP) Line mixed line ends (refs: \fI\%#48503\fP)
  172959. .IP \(bu 2
  172960. \fBPR\fP \fI\%#45498\fP: (\fI\%t0fik\fP) Added support for mixed line ending in file (refs: \fI\%#46291\fP)
  172961. .IP \(bu 2
  172962. ee257a1f91 Merge pull request \fI\%#48503\fP from rallytime/bp\-46291
  172963. .IP \(bu 2
  172964. 8bc71688ea Remove /sr.* pattern from test
  172965. .IP \(bu 2
  172966. 5e2e2a63fa Update file unit tests to handle "writelines" change
  172967. .IP \(bu 2
  172968. 5d38aa8b33 Update file.line to use \fIwritelines\fP instead of joining
  172969. .IP \(bu 2
  172970. d0b6e82ecb Add \(aqname\(aq as the passed in filepath for test_line_insert_ensure_before_first_line test
  172971. .IP \(bu 2
  172972. d8920cb61f Update \fItest_line_insert_ensure_before_first_line\fP to use new mock_open methodologies
  172973. .IP \(bu 2
  172974. 475f075d8e Handle list of lines instead of strings in file.line func
  172975. .IP \(bu 2
  172976. b9ddd53b04 Added comments
  172977. .IP \(bu 2
  172978. f3517a1852 List comprehension replaced
  172979. .IP \(bu 2
  172980. adfa3aed0d Empty match on delete or replace not causing IndexError exception
  172981. .IP \(bu 2
  172982. 5169b1f7fd Comprehensions converting to unicode replaced by salt.utils.data.decode_list
  172983. .IP \(bu 2
  172984. d3e8679e05 Removed regex compilation
  172985. .IP \(bu 2
  172986. f29815b49b Fixed file permissions
  172987. .IP \(bu 2
  172988. d2af81e9c7 Make integration green. Added test for mode ensure insert before first line
  172989. .IP \(bu 2
  172990. 9b7df671a5 file.line function refactored
  172991. .IP \(bu 2
  172992. 3af551ebe1 /sr.* pattern should raise exception
  172993. .IP \(bu 2
  172994. 935a9b9d56 test_line_insert_end fixed
  172995. .IP \(bu 2
  172996. 7d6e3ad2e2 Make tests green
  172997. .IP \(bu 2
  172998. 75a7e368a6 Setting end of line
  172999. .IP \(bu 2
  173000. 489e381100 Added _set_line_eol and _get_eol functions
  173001. .IP \(bu 2
  173002. aacbb8c0e2 line function refactored to work on list
  173003. .IP \(bu 2
  173004. de668166f9 _regex_to_static refactored to work on lists
  173005. .IP \(bu 2
  173006. 464eef6fe1 _get_line_indent renamed to _set_line_indent
  173007. .UNINDENT
  173008. .IP \(bu 2
  173009. \fBISSUE\fP \fI\%#48507\fP: (\fI\%emersonveenstra\fP) mysql_grants.present escape option incorrectly reports failure (refs: \fI\%#48561\fP)
  173010. .IP \(bu 2
  173011. \fBPR\fP \fI\%#48561\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to grants in mysql module
  173012. @ \fI2018\-07\-13 14:24:58 UTC\fP
  173013. .INDENT 2.0
  173014. .IP \(bu 2
  173015. 2d923f2943 Merge pull request \fI\%#48561\fP from garethgreenaway/48507_mysql_grants_incorrect_failure
  173016. .IP \(bu 2
  173017. 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.
  173018. .UNINDENT
  173019. .IP \(bu 2
  173020. \fBPR\fP \fI\%#48529\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173021. @ \fI2018\-07\-12 17:59:35 UTC\fP
  173022. .INDENT 2.0
  173023. .IP \(bu 2
  173024. 5b5a930449 Merge pull request \fI\%#48529\fP from rallytime/merge\-2018.3
  173025. .IP \(bu 2
  173026. f9b8c4b257 Use () when using with_tempfile decorator in tests
  173027. .IP \(bu 2
  173028. d3190ca0c0 Update old utils paths to new utils paths
  173029. .IP \(bu 2
  173030. 29b05ffdd1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173031. .INDENT 2.0
  173032. .IP \(bu 2
  173033. 0c0c05c2bc Merge pull request \fI\%#48527\fP from saltstack/revert\-48525\-2017.7
  173034. .INDENT 2.0
  173035. .IP \(bu 2
  173036. 18d06c1a93 Revert "add kazoo for testing zookeeper."
  173037. .UNINDENT
  173038. .IP \(bu 2
  173039. 05bad3e71c Merge pull request \fI\%#48526\fP from twangboy/rollback_certifi\-win32
  173040. .INDENT 2.0
  173041. .IP \(bu 2
  173042. 361b3cdc2f Rollback python\-certifi\-win32
  173043. .UNINDENT
  173044. .IP \(bu 2
  173045. db066effe4 Merge pull request \fI\%#48521\fP from Martin819/2017.7
  173046. .INDENT 2.0
  173047. .IP \(bu 2
  173048. d5d01f6698 Fix for GlusterFS 4.0 and above
  173049. .UNINDENT
  173050. .IP \(bu 2
  173051. ed0bd2bbec Merge pull request \fI\%#48525\fP from gtmanfred/2017.7
  173052. .INDENT 2.0
  173053. .IP \(bu 2
  173054. d7a6bff2b2 add kazoo for testing zookeeper.
  173055. .UNINDENT
  173056. .IP \(bu 2
  173057. ad5a959ab9 Merge pull request \fI\%#48388\fP from garethgreenaway/48277_2017_7_file_roots_wrong
  173058. .INDENT 2.0
  173059. .IP \(bu 2
  173060. 6f11da35a7 Fixing a few things in the new test.
  173061. .IP \(bu 2
  173062. cf747b14ec Fixing lint issue
  173063. .IP \(bu 2
  173064. 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.
  173065. .UNINDENT
  173066. .IP \(bu 2
  173067. 38df812257 Merge pull request \fI\%#48512\fP from gtmanfred/npm
  173068. .INDENT 2.0
  173069. .IP \(bu 2
  173070. 9ba0f6b3a0 pin pm and grunt packages for npm tests
  173071. .UNINDENT
  173072. .IP \(bu 2
  173073. 04ba31147f Merge pull request \fI\%#48513\fP from rallytime/merge\-2017.7
  173074. .INDENT 2.0
  173075. .IP \(bu 2
  173076. a466a4880f Merge branch \(aq2017.7.7\(aq into \(aq2017.7\(aq
  173077. .INDENT 2.0
  173078. .IP \(bu 2
  173079. cfd21ed22c Merge pull request \fI\%#48172\fP from rallytime/2017.7.7\-release\-notes
  173080. .INDENT 2.0
  173081. .IP \(bu 2
  173082. a0ad794132 Update release notes for 2017.7.7
  173083. .UNINDENT
  173084. .IP \(bu 2
  173085. 8af4452134 Merge pull request \fI\%#48157\fP from gtmanfred/2017.7.7
  173086. .INDENT 2.0
  173087. .IP \(bu 2
  173088. d8209e8a40 always listen when gathering job info
  173089. .UNINDENT
  173090. .IP \(bu 2
  173091. b98c52ee51 Merge pull request \fI\%#48140\fP from rallytime/man\-pages\-2017.7.7
  173092. .INDENT 2.0
  173093. .IP \(bu 2
  173094. 8893bf0d4c Update man pages for 2017.7.7
  173095. .UNINDENT
  173096. .IP \(bu 2
  173097. baa0363336 Merge pull request \fI\%#48136\fP from gtmanfred/2017.7.7
  173098. .INDENT 2.0
  173099. .IP \(bu 2
  173100. fce1c31146 bootstrap kitchen branch tests with 2017.7.6
  173101. .UNINDENT
  173102. .IP \(bu 2
  173103. b0ba08f4d9 Merge pull request \fI\%#48134\fP from rallytime/release\-notes\-2017.7.7
  173104. .INDENT 2.0
  173105. .IP \(bu 2
  173106. 217005b8f1 Add missing \fIv\fP for tag reference
  173107. .IP \(bu 2
  173108. d53569d1e3 Add release notes file for 2017.7.7
  173109. .UNINDENT
  173110. .IP \(bu 2
  173111. 084de927fe Merge pull request \fI\%#48098\fP from rallytime/bp\-48075\-2017.7.7
  173112. .INDENT 2.0
  173113. .IP \(bu 2
  173114. e4e62e8b3a Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  173115. .UNINDENT
  173116. .UNINDENT
  173117. .UNINDENT
  173118. .IP \(bu 2
  173119. f0352ea95a Merge pull request \fI\%#48514\fP from gtmanfred/2017.7
  173120. .INDENT 2.0
  173121. .IP \(bu 2
  173122. 739bf92599 upgrade dependencies for pytest tests
  173123. .UNINDENT
  173124. .IP \(bu 2
  173125. 5372b60137 Merge pull request \fI\%#48491\fP from grokrecursion/group\-fix\-v2
  173126. .INDENT 2.0
  173127. .IP \(bu 2
  173128. 1556b37221 fixed pylint errors
  173129. .IP \(bu 2
  173130. f6d9177dab fixed indentation for pep8
  173131. .IP \(bu 2
  173132. b9556bf923 v2 try of gid converted to integer
  173133. .UNINDENT
  173134. .IP \(bu 2
  173135. 16d3daab3c Merge pull request \fI\%#48375\fP from Ch3LL/file_copy
  173136. .INDENT 2.0
  173137. .IP \(bu 2
  173138. d16a790775 Add mode to _makedirs call in file.copy
  173139. .IP \(bu 2
  173140. 2cbcb4fd26 Add user and group to makedirs cmd in file.copy
  173141. .UNINDENT
  173142. .IP \(bu 2
  173143. d38951b1b3 Merge pull request \fI\%#48490\fP from KaiSforza/cifixes
  173144. .INDENT 2.0
  173145. .IP \(bu 2
  173146. 9fe7199af5 Mark failed if anything is found
  173147. .IP \(bu 2
  173148. 6749a6bf19 Stop archiving the docs
  173149. .UNINDENT
  173150. .UNINDENT
  173151. .UNINDENT
  173152. .IP \(bu 2
  173153. \fBPR\fP \fI\%#48553\fP: (\fI\%KaiSforza\fP) Set up junit in jenkins
  173154. @ \fI2018\-07\-12 16:24:01 UTC\fP
  173155. .INDENT 2.0
  173156. .IP \(bu 2
  173157. a95b8efd8a Merge pull request \fI\%#48553\fP from KaiSforza/jenkins\-junit\-2018
  173158. .IP \(bu 2
  173159. 412ffcc956 Set up junit in jenkins
  173160. .UNINDENT
  173161. .IP \(bu 2
  173162. \fBPR\fP \fI\%#48551\fP: (\fI\%gtmanfred\fP) add posargs to tox pylint
  173163. @ \fI2018\-07\-12 14:35:25 UTC\fP
  173164. .INDENT 2.0
  173165. .IP \(bu 2
  173166. c4aed02740 Merge pull request \fI\%#48551\fP from gtmanfred/2018.3
  173167. .IP \(bu 2
  173168. a6a286af28 add posargs to tox pylint
  173169. .UNINDENT
  173170. .IP \(bu 2
  173171. \fBPR\fP \fI\%#48533\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError in sh beacon
  173172. @ \fI2018\-07\-12 13:38:43 UTC\fP
  173173. .INDENT 2.0
  173174. .IP \(bu 2
  173175. 260da0d545 Merge pull request \fI\%#48533\fP from terminalmage/sh\-beacon
  173176. .IP \(bu 2
  173177. 7ac5ac06c9 Fix UnicodeDecodeError in sh beacon
  173178. .UNINDENT
  173179. .IP \(bu 2
  173180. \fBISSUE\fP \fI\%#48519\fP: (\fI\%Lutseslav\fP) Mysql module alter_db quotation missing (refs: \fI\%#48520\fP)
  173181. .IP \(bu 2
  173182. \fBPR\fP \fI\%#48520\fP: (\fI\%Lutseslav\fP) Add quotes to schema name in ALTER DATABASE.
  173183. @ \fI2018\-07\-11 19:15:08 UTC\fP
  173184. .INDENT 2.0
  173185. .IP \(bu 2
  173186. 8761ac2589 Merge pull request \fI\%#48520\fP from Lutseslav/fix\-alter\-databases\-with\-special\-symbols
  173187. .IP \(bu 2
  173188. d088b00ff2 Merge branch \(aq2018.3\(aq into fix\-alter\-databases\-with\-special\-symbols
  173189. .IP \(bu 2
  173190. 59629e9757 Merge branch \(aq2018.3\(aq into fix\-alter\-databases\-with\-special\-symbols
  173191. .IP \(bu 2
  173192. da8336712e Add quotes to schema name in ALTER DATABASE.
  173193. .UNINDENT
  173194. .IP \(bu 2
  173195. \fBPR\fP \fI\%#48528\fP: (\fI\%gtmanfred\fP) add 2018.3 requirements for tox/pytest tests
  173196. @ \fI2018\-07\-11 18:13:40 UTC\fP
  173197. .INDENT 2.0
  173198. .IP \(bu 2
  173199. ad4f7efafd Merge pull request \fI\%#48528\fP from gtmanfred/2018.3
  173200. .IP \(bu 2
  173201. 221559358a add 2018.3 requirements for tox/pytest tests
  173202. .UNINDENT
  173203. .IP \(bu 2
  173204. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP, \fI\%#48398\fP)
  173205. .IP \(bu 2
  173206. \fBPR\fP \fI\%#48508\fP: (\fI\%rallytime\fP) [2018.3] Fix 2 bugs found in the file.check_perms function
  173207. @ \fI2018\-07\-11 15:03:32 UTC\fP
  173208. .INDENT 2.0
  173209. .IP \(bu 2
  173210. \fBPR\fP \fI\%#48399\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to module/file.py (refs: \fI\%#48508\fP)
  173211. .IP \(bu 2
  173212. \fBPR\fP \fI\%#48398\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to module/file.py (refs: \fI\%#48508\fP)
  173213. .IP \(bu 2
  173214. 70e5fcb8a5 Merge pull request \fI\%#48508\fP from rallytime/fix\-file\-bug
  173215. .IP \(bu 2
  173216. 0747eb5476 Move comment string join and test/changes check to bottom of file.check_perms
  173217. .IP \(bu 2
  173218. aefa1dbe21 Fix up bad merge \- remove extra section of "mode" changes
  173219. .UNINDENT
  173220. .IP \(bu 2
  173221. \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)
  173222. .IP \(bu 2
  173223. \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)
  173224. .IP \(bu 2
  173225. \fBPR\fP \fI\%#48389\fP: (\fI\%garethgreenaway\fP) [2018.3] reset file_roots for renderers after compile_pillar
  173226. @ \fI2018\-07\-11 13:13:33 UTC\fP
  173227. .INDENT 2.0
  173228. .IP \(bu 2
  173229. 5a0b274bf1 Merge pull request \fI\%#48389\fP from garethgreenaway/48277_2018_3_file_roots_wrong
  173230. .IP \(bu 2
  173231. 4b492fa633 Removing unused start_time variable from test_orchestration_with_pillar_dot_items test.
  173232. .IP \(bu 2
  173233. 30c5855d20 Fixing a few things in the new test.
  173234. .IP \(bu 2
  173235. 36b7253418 Fixing lint issue
  173236. .IP \(bu 2
  173237. 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.
  173238. .UNINDENT
  173239. .IP \(bu 2
  173240. \fBISSUE\fP \fI\%#48342\fP: (\fI\%jeffclay\fP) UnicodeDecodeError when using cache mysql (refs: \fI\%#48495\fP)
  173241. .IP \(bu 2
  173242. \fBPR\fP \fI\%#48495\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to mysql cache module
  173243. @ \fI2018\-07\-10 12:54:10 UTC\fP
  173244. .INDENT 2.0
  173245. .IP \(bu 2
  173246. f9fd1a889a Merge pull request \fI\%#48495\fP from garethgreenaway/48342_mysql_cache_unicode
  173247. .IP \(bu 2
  173248. 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.
  173249. .UNINDENT
  173250. .IP \(bu 2
  173251. \fBPR\fP \fI\%#48487\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173252. @ \fI2018\-07\-09 18:38:00 UTC\fP
  173253. .INDENT 2.0
  173254. .IP \(bu 2
  173255. fc3eeef6b3 Merge pull request \fI\%#48487\fP from rallytime/merge\-2018.3
  173256. .IP \(bu 2
  173257. 54341d1a8d Update old utils paths to use new utils paths
  173258. .IP \(bu 2
  173259. 68aabff0cf Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173260. .IP \(bu 2
  173261. 22cd4206c4 Merge pull request \fI\%#48472\fP from gtmanfred/2017.7
  173262. .INDENT 2.0
  173263. .IP \(bu 2
  173264. c7a3a7d8bd update jenkins tests to use tox for lint
  173265. .IP \(bu 2
  173266. 44aaac1d33 use tox to run pylint
  173267. .UNINDENT
  173268. .IP \(bu 2
  173269. 27ea8f35ea Merge pull request \fI\%#48476\fP from twangboy/fix_dependencies
  173270. .INDENT 2.0
  173271. .IP \(bu 2
  173272. b0087d425c Add license info
  173273. .IP \(bu 2
  173274. 935f9b560c Fix dependencies
  173275. .UNINDENT
  173276. .IP \(bu 2
  173277. acf42864aa Merge pull request \fI\%#48399\fP from garethgreenaway/48336_2017_7_ensure_chmod_setuid_with_chown
  173278. .INDENT 2.0
  173279. .IP \(bu 2
  173280. 8efd33320f Normalize the mode before we compare it.
  173281. .IP \(bu 2
  173282. 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.
  173283. .UNINDENT
  173284. .IP \(bu 2
  173285. 6166ff6b78 Merge pull request \fI\%#48471\fP from gtmanfred/2017.7
  173286. .INDENT 2.0
  173287. .IP \(bu 2
  173288. 392ab4e51f Add some configurations to tox
  173289. .UNINDENT
  173290. .IP \(bu 2
  173291. 6234d9b15d Merge pull request \fI\%#48433\fP from discogestalt/fix\-redis.hmset
  173292. .INDENT 2.0
  173293. .IP \(bu 2
  173294. 65817ac74d Use clean_kwargs method instead
  173295. .IP \(bu 2
  173296. f7fa7f57c6 Found another issue with redismod.hmset
  173297. .IP \(bu 2
  173298. 5624865f86 Fix issue with redismod.hmset method
  173299. .UNINDENT
  173300. .IP \(bu 2
  173301. aacee0fe2c Merge pull request \fI\%#48428\fP from terminalmage/fix\-jobs.lookup_jid
  173302. .INDENT 2.0
  173303. .IP \(bu 2
  173304. 6509aa9089 Fix outputter detection in jobs.lookup_jid runner
  173305. .UNINDENT
  173306. .IP \(bu 2
  173307. a7e52f0de2 Merge pull request \fI\%#48429\fP from rallytime/bp\-46824
  173308. .INDENT 2.0
  173309. .IP \(bu 2
  173310. 8b4486248d Added ignore_retcode to mock unit tests
  173311. .IP \(bu 2
  173312. f8beab71dd Regression to ignore retcodes on crontab calls
  173313. .UNINDENT
  173314. .IP \(bu 2
  173315. 4576ef20bc Merge pull request \fI\%#48432\fP from dwoz/file\-prepend\-again
  173316. .INDENT 2.0
  173317. .IP \(bu 2
  173318. 349a2b279e Prepend test needs file.touch method
  173319. .UNINDENT
  173320. .UNINDENT
  173321. .IP \(bu 2
  173322. \fBPR\fP \fI\%#48481\fP: (\fI\%terminalmage\fP) Improve the slack engine docs
  173323. @ \fI2018\-07\-09 13:41:15 UTC\fP
  173324. .INDENT 2.0
  173325. .IP \(bu 2
  173326. 4d4d2eacce Merge pull request \fI\%#48481\fP from terminalmage/slack\-engine
  173327. .IP \(bu 2
  173328. 56e8a1eb93 Improve the slack engine docs
  173329. .IP \(bu 2
  173330. dde9c0640d Add information on creating bot users
  173331. .IP \(bu 2
  173332. 513c6af975 Fix inaccurate docs
  173333. .UNINDENT
  173334. .IP \(bu 2
  173335. \fBPR\fP \fI\%#48348\fP: (\fI\%dwoz\fP) Fix multiple git module tests
  173336. @ \fI2018\-07\-06 20:35:58 UTC\fP
  173337. .INDENT 2.0
  173338. .IP \(bu 2
  173339. 491b5b077c Merge pull request \fI\%#48348\fP from dwoz/test_git
  173340. .IP \(bu 2
  173341. 5ca5e060b3 Merge branch \(aq2018.3\(aq into test_git
  173342. .UNINDENT
  173343. .IP \(bu 2
  173344. \fBPR\fP \fI\%#48454\fP: (\fI\%terminalmage\fP) Improve error message when ext_pillar is incorrectly formatted
  173345. @ \fI2018\-07\-06 18:03:44 UTC\fP
  173346. .INDENT 2.0
  173347. .IP \(bu 2
  173348. dd6a6a97c5 Merge pull request \fI\%#48454\fP from terminalmage/issue48107
  173349. .IP \(bu 2
  173350. 269dbab7f6 Improve error message when ext_pillar is incorrectly formatted
  173351. .UNINDENT
  173352. .IP \(bu 2
  173353. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP, \fI\%#48398\fP)
  173354. .IP \(bu 2
  173355. \fBPR\fP \fI\%#48398\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to module/file.py (refs: \fI\%#48508\fP)
  173356. @ \fI2018\-07\-06 18:02:43 UTC\fP
  173357. .INDENT 2.0
  173358. .IP \(bu 2
  173359. a9dc758e73 Merge pull request \fI\%#48398\fP from garethgreenaway/48336_ensure_chmodd_setuid_with_chown
  173360. .IP \(bu 2
  173361. 2454652914 Normalize the mode before we compare it.
  173362. .IP \(bu 2
  173363. 08ad5665de Fixing test to ensure it works under py3
  173364. .IP \(bu 2
  173365. 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.
  173366. .UNINDENT
  173367. .IP \(bu 2
  173368. \fBPR\fP \fI\%#48431\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173369. @ \fI2018\-07\-05 17:23:00 UTC\fP
  173370. .INDENT 2.0
  173371. .IP \(bu 2
  173372. 2baa7f189f Merge pull request \fI\%#48431\fP from rallytime/merge\-2018.3
  173373. .IP \(bu 2
  173374. 3e59dda0b1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173375. .INDENT 2.0
  173376. .IP \(bu 2
  173377. 422441505d Merge pull request \fI\%#48422\fP from rallytime/fix\-48230
  173378. .INDENT 2.0
  173379. .IP \(bu 2
  173380. a6abf85621 Allow file.managed to work with uppercase source_hash in test=true mode
  173381. .IP \(bu 2
  173382. 4c691ac57a Add regression test for Issue \fI\%#48230\fP
  173383. .UNINDENT
  173384. .IP \(bu 2
  173385. 83e387c951 Merge pull request \fI\%#48410\fP from dwoz/service_dead_test_fix
  173386. .INDENT 2.0
  173387. .IP \(bu 2
  173388. 5c0923448d Fix service dead test on windows
  173389. .UNINDENT
  173390. .IP \(bu 2
  173391. d3ba345da5 Merge pull request \fI\%#48413\fP from twangboy/fix_47811
  173392. .INDENT 2.0
  173393. .IP \(bu 2
  173394. c5aad04140 handle unc paths
  173395. .UNINDENT
  173396. .IP \(bu 2
  173397. 827ef2aac4 Merge pull request \fI\%#48416\fP from dwoz/service_integration_fix
  173398. .INDENT 2.0
  173399. .IP \(bu 2
  173400. c43f150dcd Fix service integration test (py3)
  173401. .UNINDENT
  173402. .IP \(bu 2
  173403. 10fe7d2b9b Merge pull request \fI\%#48385\fP from Ch3LL/1update_version_doc_2017.7
  173404. .INDENT 2.0
  173405. .IP \(bu 2
  173406. 3cf335b0b9 Update release versions for the 2017.7 branch
  173407. .UNINDENT
  173408. .IP \(bu 2
  173409. f8a9a037e6 Merge pull request \fI\%#48405\fP from Ch3LL/rm_inprog_2017.7
  173410. .INDENT 2.0
  173411. .IP \(bu 2
  173412. 03ed5167fa [2017.7] Remove In Progress Warning on 2017.7.7
  173413. .UNINDENT
  173414. .IP \(bu 2
  173415. 8ac867c168 Merge pull request \fI\%#48409\fP from dwoz/test_prepend_fix
  173416. .INDENT 2.0
  173417. .IP \(bu 2
  173418. 9c7085b70f Fix file state prepend test
  173419. .UNINDENT
  173420. .IP \(bu 2
  173421. 10e93bff7f Merge pull request \fI\%#48396\fP from dwoz/symlink_test_fix
  173422. .INDENT 2.0
  173423. .IP \(bu 2
  173424. d3456d31e6 Fix file.symlink state test for windows
  173425. .UNINDENT
  173426. .UNINDENT
  173427. .UNINDENT
  173428. .IP \(bu 2
  173429. \fBPR\fP \fI\%#48310\fP: (\fI\%mtorromeo\fP) Backport ini_manage fixes to 2018.3
  173430. @ \fI2018\-07\-05 16:27:19 UTC\fP
  173431. .INDENT 2.0
  173432. .IP \(bu 2
  173433. 432cbbb5ee Merge pull request \fI\%#48310\fP from mtorromeo/ini\-manage\-backports
  173434. .IP \(bu 2
  173435. 88f80fdf77 Fixed pylint useless\-super\-delegation warning.
  173436. .IP \(bu 2
  173437. e20f4cacd4 Uniformed reports between ini.options_absent and ini.options_present
  173438. .IP \(bu 2
  173439. 2c3ae0b6c9 pylint cosmetics.
  173440. .IP \(bu 2
  173441. 0c0d10d18f Fixes dry run false positive when option value is a number.
  173442. .IP \(bu 2
  173443. 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
  173444. .UNINDENT
  173445. .IP \(bu 2
  173446. \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)
  173447. .IP \(bu 2
  173448. \fBPR\fP \fI\%#48441\fP: (\fI\%terminalmage\fP) Switch init system log message to debug
  173449. @ \fI2018\-07\-05 14:43:25 UTC\fP
  173450. .INDENT 2.0
  173451. .IP \(bu 2
  173452. 84fd3d2784 Merge pull request \fI\%#48441\fP from terminalmage/issue48402
  173453. .IP \(bu 2
  173454. d758995763 Switch init system log message to debug
  173455. .UNINDENT
  173456. .IP \(bu 2
  173457. \fBPR\fP \fI\%#48386\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  173458. @ \fI2018\-07\-03 13:37:32 UTC\fP
  173459. .INDENT 2.0
  173460. .IP \(bu 2
  173461. 871c9e3b98 Merge pull request \fI\%#48386\fP from Ch3LL/1update_version_doc_2018.3
  173462. .IP \(bu 2
  173463. 84a1994110 Update release versions for the 2018.3 branch
  173464. .UNINDENT
  173465. .IP \(bu 2
  173466. \fBPR\fP \fI\%#48404\fP: (\fI\%Ch3LL\fP) [2018.3] Remove In Progress Warning on 2017.7.7
  173467. @ \fI2018\-07\-03 13:33:18 UTC\fP
  173468. .INDENT 2.0
  173469. .IP \(bu 2
  173470. ddb83ad4ce Merge pull request \fI\%#48404\fP from Ch3LL/rm_inprog_2018.3
  173471. .IP \(bu 2
  173472. ef288f2a74 [2018.3] Remove In Progress Warning on 2017.7.7
  173473. .UNINDENT
  173474. .IP \(bu 2
  173475. \fBPR\fP \fI\%#48339\fP: (\fI\%terminalmage\fP) Backport tojson filter from \fI\%#48309\fP to 2018.3
  173476. @ \fI2018\-07\-02 17:52:53 UTC\fP
  173477. .INDENT 2.0
  173478. .IP \(bu 2
  173479. \fBPR\fP \fI\%#48309\fP: (\fI\%terminalmage\fP) Drop support for Python 2 unicode string literals in YAML renderer (refs: \fI\%#48339\fP)
  173480. .IP \(bu 2
  173481. 5b38019ca0 Merge pull request \fI\%#48339\fP from terminalmage/backport\-tojson\-filter
  173482. .IP \(bu 2
  173483. 4433bec891 Add release notes for tojson jinja filter
  173484. .IP \(bu 2
  173485. ac36998801 Tweak docs to reflect backported filter
  173486. .IP \(bu 2
  173487. c636b18cf0 Add unit test for tojson filter
  173488. .IP \(bu 2
  173489. e34e39f0e2 Document filter deprecation
  173490. .IP \(bu 2
  173491. b9a4f288b2 Deprecate json_encode_dict and json_encode_list jinja filters
  173492. .IP \(bu 2
  173493. 3896e3468c Use upstream tojson filter, if present
  173494. .IP \(bu 2
  173495. 1499c6abcf Implement tojson jinja filter for those using Jinja < 2.9
  173496. .UNINDENT
  173497. .IP \(bu 2
  173498. \fBISSUE\fP \fI\%#48274\fP: (\fI\%ipmb\fP) s3.get signature failure with + in the object name (refs: \fI\%#48328\fP)
  173499. .IP \(bu 2
  173500. \fBPR\fP \fI\%#48328\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to utils/s3.py
  173501. @ \fI2018\-07\-02 13:22:31 UTC\fP
  173502. .INDENT 2.0
  173503. .IP \(bu 2
  173504. 222c1d65db Merge pull request \fI\%#48328\fP from garethgreenaway/48274_s3_get_signature_fail
  173505. .IP \(bu 2
  173506. 22cafc8334 fixing lint issue
  173507. .IP \(bu 2
  173508. 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.
  173509. .UNINDENT
  173510. .IP \(bu 2
  173511. \fBPR\fP \fI\%#48358\fP: (\fI\%Ch3LL\fP) Fix corrupt public key with m2crypto python3
  173512. @ \fI2018\-07\-02 13:10:32 UTC\fP
  173513. .INDENT 2.0
  173514. .IP \(bu 2
  173515. d3c658bdcf Merge pull request \fI\%#48358\fP from Ch3LL/m2crypto_fix
  173516. .IP \(bu 2
  173517. 8fdd34d430 m2crypto open file in rb mode for pub key
  173518. .IP \(bu 2
  173519. a964db4663 Fix corrupt public key with m2crypto python3
  173520. .UNINDENT
  173521. .IP \(bu 2
  173522. \fBISSUE\fP \fI\%#48367\fP: (\fI\%asenci\fP) salt.proxy.fx2: dictionary changed size during iteration (refs: \fI\%#48368\fP)
  173523. .IP \(bu 2
  173524. \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)
  173525. .IP \(bu 2
  173526. \fBPR\fP \fI\%#48384\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48368\fP to 2018.3
  173527. @ \fI2018\-07\-01 04:19:10 UTC\fP
  173528. .INDENT 2.0
  173529. .IP \(bu 2
  173530. \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)
  173531. .IP \(bu 2
  173532. \fBPR\fP \fI\%#46776\fP: (\fI\%gtmanfred\fP) fix shrinking list in for loop bug (refs: \fI\%#48368\fP)
  173533. .IP \(bu 2
  173534. 2fd63d66dc Merge pull request \fI\%#48384\fP from rallytime/bp\-48368
  173535. .IP \(bu 2
  173536. 430c462f34 Fix issue \fI\%#48367\fP using the same approach as PR \fI\%#46776\fP
  173537. .UNINDENT
  173538. .IP \(bu 2
  173539. \fBPR\fP \fI\%#48394\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173540. @ \fI2018\-07\-01 04:13:03 UTC\fP
  173541. .INDENT 2.0
  173542. .IP \(bu 2
  173543. 3b53e2d206 Merge pull request \fI\%#48394\fP from rallytime/merge\-2018.3
  173544. .IP \(bu 2
  173545. 047f5b5f39 Update old utils paths to new utils paths
  173546. .IP \(bu 2
  173547. c4fd2a0930 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173548. .IP \(bu 2
  173549. 7e25f26837 Merge pull request \fI\%#48362\fP from twangboy/fix_48276
  173550. .INDENT 2.0
  173551. .IP \(bu 2
  173552. 77629f640a Fix module unit tests
  173553. .IP \(bu 2
  173554. b5ca560b73 Fix lint error
  173555. .IP \(bu 2
  173556. 210e280ecf Use explicit parameter names
  173557. .IP \(bu 2
  173558. 776db98a5c Handle missing registry entries
  173559. .UNINDENT
  173560. .IP \(bu 2
  173561. 80222b6b7c Merge pull request \fI\%#48383\fP from rallytime/bp\-48379
  173562. .INDENT 2.0
  173563. .IP \(bu 2
  173564. 9fc7815594 Clean up the workspaces at the end for every job
  173565. .UNINDENT
  173566. .IP \(bu 2
  173567. aa68aa774a Merge pull request \fI\%#48382\fP from rallytime/bp\-48346
  173568. .INDENT 2.0
  173569. .IP \(bu 2
  173570. 6a70ba222e Use the right ssh key to destroy kitchen
  173571. .UNINDENT
  173572. .IP \(bu 2
  173573. 9519f640e7 Merge pull request \fI\%#48381\fP from rallytime/bp\-48330
  173574. .INDENT 2.0
  173575. .IP \(bu 2
  173576. 6857bedcc2 Add warnings plugin to replace violations
  173577. .UNINDENT
  173578. .IP \(bu 2
  173579. 14db0aa35d Merge pull request \fI\%#48363\fP from dubb\-b/2017.7
  173580. .INDENT 2.0
  173581. .IP \(bu 2
  173582. c0b962e28d Changing debug to info for logging
  173583. .UNINDENT
  173584. .IP \(bu 2
  173585. 5b29cd326f Merge pull request \fI\%#48352\fP from Ch3LL/wheel_doc
  173586. .INDENT 2.0
  173587. .IP \(bu 2
  173588. 89ada68165 Add missing key to accept_dict function in wheel docs
  173589. .UNINDENT
  173590. .IP \(bu 2
  173591. 02cf19ee3b Merge pull request \fI\%#48329\fP from rallytime/codeowners\-roster\-files
  173592. .INDENT 2.0
  173593. .IP \(bu 2
  173594. 5e56615e00 Trigger review requests for team\-ssh for roster files
  173595. .UNINDENT
  173596. .IP \(bu 2
  173597. 53cf1794be Merge pull request \fI\%#48349\fP from ralex/fix\-manjaro\-service\-behaviour
  173598. .INDENT 2.0
  173599. .IP \(bu 2
  173600. 6cafce547e Disable the \fIservice\fP module on Manjaro since it is using systemd
  173601. .UNINDENT
  173602. .IP \(bu 2
  173603. 89dfcf3a4e Merge pull request \fI\%#48324\fP from Ch3LL/update_version_doc_2017.7
  173604. .INDENT 2.0
  173605. .IP \(bu 2
  173606. 47845ba810 Update release versions for the 2017.7 branch
  173607. .UNINDENT
  173608. .IP \(bu 2
  173609. ece4c30aac Merge pull request \fI\%#48331\fP from rallytime/bp\-48215
  173610. .INDENT 2.0
  173611. .IP \(bu 2
  173612. 9d6ba3e247 Set jobs to pending when they come in
  173613. .IP \(bu 2
  173614. 727d2b4ffe Use proper creds with githubNotify
  173615. .IP \(bu 2
  173616. d355861c5c Test using different credentials
  173617. .UNINDENT
  173618. .IP \(bu 2
  173619. ab05e00d8c Merge pull request \fI\%#48332\fP from rallytime/bp\-48321
  173620. .INDENT 2.0
  173621. .IP \(bu 2
  173622. d72af6ab4e Jenkins needs the / to get the directory
  173623. .UNINDENT
  173624. .IP \(bu 2
  173625. 21ed5b97ce Merge pull request \fI\%#48295\fP from rallytime/bp\-48193
  173626. .INDENT 2.0
  173627. .IP \(bu 2
  173628. 352fe33fd6 Separate set_result() to a new line apart from Future() call
  173629. .IP \(bu 2
  173630. c0180ff33d Properly configure syndic in test case
  173631. .IP \(bu 2
  173632. d0a98534a9 Properly wait on returns in saltnado
  173633. .UNINDENT
  173634. .IP \(bu 2
  173635. 9aa4687ab9 Merge pull request \fI\%#48117\fP from twangboy/fix_48026
  173636. .INDENT 2.0
  173637. .IP \(bu 2
  173638. dd37f8fbc2 Disable services that are set to manual
  173639. .UNINDENT
  173640. .IP \(bu 2
  173641. caf630487c Merge pull request \fI\%#48207\fP from rallytime/bp\-48189
  173642. .INDENT 2.0
  173643. .IP \(bu 2
  173644. e9d09e0375 Use old is_windows utils path on 2017.7
  173645. .IP \(bu 2
  173646. b965d6c9b3 If pip binary is passed to bin_env, use that pip binary
  173647. .UNINDENT
  173648. .IP \(bu 2
  173649. 06a927b2aa Merge pull request \fI\%#48293\fP from rallytime/bp\-47453
  173650. .INDENT 2.0
  173651. .IP \(bu 2
  173652. e96ab6778e dont reset system locale when running rabbitmqctl commands
  173653. .UNINDENT
  173654. .UNINDENT
  173655. .IP \(bu 2
  173656. \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)
  173657. .IP \(bu 2
  173658. \fBPR\fP \fI\%#47147\fP: (\fI\%eliasp\fP) states.user.present: Make usage of \fIhash_password\fP idempotent
  173659. @ \fI2018\-06\-30 13:29:27 UTC\fP
  173660. .INDENT 2.0
  173661. .IP \(bu 2
  173662. 9b364e25cf Merge pull request \fI\%#47147\fP from eliasp/2018.3\-issue\-45939\-shadow\-hash\-salt
  173663. .IP \(bu 2
  173664. dd3be1d76e Add warning log message when using MD5 for hashing shadow passwords
  173665. .IP \(bu 2
  173666. 5451ab6b7a states.user.present: Make usage of \fIhash_password\fP idempotent
  173667. .UNINDENT
  173668. .IP \(bu 2
  173669. \fBPR\fP \fI\%#48297\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173670. @ \fI2018\-06\-30 12:57:35 UTC\fP
  173671. .INDENT 2.0
  173672. .IP \(bu 2
  173673. 89857ea8b9 Merge pull request \fI\%#48297\fP from rallytime/merge\-2018.3
  173674. .IP \(bu 2
  173675. 9498618418 Use \fIsaltenv\fP opts instead of \fIenvironment\fP
  173676. .IP \(bu 2
  173677. 1c8bd35f28 Update old utils paths to use new utils paths
  173678. .IP \(bu 2
  173679. c7bb8a50b0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173680. .INDENT 2.0
  173681. .IP \(bu 2
  173682. 95ef006e00 Merge pull request \fI\%#48219\fP from zer0def/lxc\-bootstrap\-fixes
  173683. .INDENT 2.0
  173684. .IP \(bu 2
  173685. c77058560b Merge branch \(aq2017.7\(aq into lxc\-bootstrap\-fixes
  173686. .IP \(bu 2
  173687. d63cf3f072 Fixes another case of legacy configuration key usage warning getting in the way of changing container\(aqs state.
  173688. .UNINDENT
  173689. .IP \(bu 2
  173690. 3327181507 Merge pull request \fI\%#48234\fP from dwoz/thin_dir
  173691. .INDENT 2.0
  173692. .IP \(bu 2
  173693. 70c603451b Fix py2 thin dir issues
  173694. .UNINDENT
  173695. .IP \(bu 2
  173696. 83d7d286c4 Merge pull request \fI\%#48080\fP from lusche/2017.7
  173697. .INDENT 2.0
  173698. .IP \(bu 2
  173699. 917dc985fc \fI\%#47984\fP remove the line completly
  173700. .IP \(bu 2
  173701. ba12ee947b Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into 2017.7
  173702. .IP \(bu 2
  173703. dfb13d5051 Bugfix \fI\%#47984\fP messed up cert serial
  173704. .UNINDENT
  173705. .IP \(bu 2
  173706. bccb4dcd46 Merge pull request \fI\%#48232\fP from gtmanfred/cloud
  173707. .INDENT 2.0
  173708. .IP \(bu 2
  173709. d108112e1a do not expand kwargs for cloud.action
  173710. .UNINDENT
  173711. .IP \(bu 2
  173712. 056f43f663 Merge pull request \fI\%#48238\fP from mirceaulinic/fix\-sdb\-cache
  173713. .INDENT 2.0
  173714. .IP \(bu 2
  173715. 51e5fbfa1d SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  173716. .UNINDENT
  173717. .IP \(bu 2
  173718. 731ec0a11a Merge pull request \fI\%#48037\fP from terminalmage/fix\-custom\-types\-sync\-docs
  173719. .INDENT 2.0
  173720. .IP \(bu 2
  173721. 052ae83c4b Update versionchanged
  173722. .IP \(bu 2
  173723. 8b1bd0eda2 Update test to reflect changed argument name
  173724. .IP \(bu 2
  173725. 5e75936198 Change 2018.3.2 to 2018.3.3
  173726. .IP \(bu 2
  173727. c53ad603fc Rename sync \-> sync_mods per review suggestion
  173728. .IP \(bu 2
  173729. e4d67c5fd8 Update docs to include references to new "sync" argument
  173730. .IP \(bu 2
  173731. cb8e6f9fb8 Remove redundant mocking
  173732. .IP \(bu 2
  173733. bc3ad795e9 Add test for sync argument to state.sls
  173734. .IP \(bu 2
  173735. f81ccd1fdd Add sync option to state.apply/state.sls
  173736. .IP \(bu 2
  173737. 8289b07e24 Fix documentation on when custom types are synced
  173738. .UNINDENT
  173739. .IP \(bu 2
  173740. 0bae927048 Merge pull request \fI\%#48249\fP from rallytime/2017.7.7\-release\-notes\-update
  173741. .INDENT 2.0
  173742. .IP \(bu 2
  173743. 36032c8ee7 Update release notes for 2017.7.7
  173744. .UNINDENT
  173745. .IP \(bu 2
  173746. 8e06471817 Merge pull request \fI\%#48242\fP from asnell/asnell\-patch\-1
  173747. .INDENT 2.0
  173748. .IP \(bu 2
  173749. f66bf60073 Add sample list data via command line pillar
  173750. .UNINDENT
  173751. .UNINDENT
  173752. .UNINDENT
  173753. .IP \(bu 2
  173754. \fBPR\fP \fI\%#48364\fP: (\fI\%dubb\-b\fP) Changing debug to info for logging
  173755. @ \fI2018\-06\-28 20:48:24 UTC\fP
  173756. .INDENT 2.0
  173757. .IP \(bu 2
  173758. c5746deb5f Merge pull request \fI\%#48364\fP from dubb\-b/2018.3
  173759. .IP \(bu 2
  173760. d8260b6628 Changing debug to info for logging
  173761. .UNINDENT
  173762. .IP \(bu 2
  173763. \fBPR\fP \fI\%#48354\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.2 to 2018.3
  173764. @ \fI2018\-06\-28 20:26:31 UTC\fP
  173765. .INDENT 2.0
  173766. .IP \(bu 2
  173767. 0202493b60 Merge pull request \fI\%#48354\fP from rallytime/merge\-2018.3.2\-to\-2018.3
  173768. .IP \(bu 2
  173769. fface7cc74 Merge branch \(aq2018.3.2\(aq into \(aq2018.3\(aq
  173770. .UNINDENT
  173771. .IP \(bu 2
  173772. \fBPR\fP \fI\%#48347\fP: (\fI\%dwoz\fP) Fixes fileserver maintenance process on Windows
  173773. @ \fI2018\-06\-28 13:17:42 UTC\fP
  173774. .INDENT 2.0
  173775. .IP \(bu 2
  173776. bbabbbf76b Merge pull request \fI\%#48347\fP from dwoz/sigfix
  173777. .IP \(bu 2
  173778. ccdff5029f Remove unneeded attribute
  173779. .INDENT 2.0
  173780. .INDENT 3.5
  173781. .INDENT 0.0
  173782. .IP \(bu 2
  173783. e8362adf71 fopen does not support encoding
  173784. .IP \(bu 2
  173785. 487161ba8f Fix file encoding on windows
  173786. .IP \(bu 2
  173787. fc760685ee Fix multiple git module tests
  173788. .UNINDENT
  173789. .UNINDENT
  173790. .UNINDENT
  173791. .UNINDENT
  173792. .IP \(bu 2
  173793. \fBPR\fP \fI\%#47975\fP: (\fI\%terminalmage\fP) Add a new git.cloned state
  173794. @ \fI2018\-06\-27 20:53:42 UTC\fP
  173795. .INDENT 2.0
  173796. .IP \(bu 2
  173797. 67303d7901 Merge pull request \fI\%#47975\fP from terminalmage/issue47937
  173798. .IP \(bu 2
  173799. 34b24bb7fa Merge branch \(aq2018.3\(aq into issue47937
  173800. .UNINDENT
  173801. .IP \(bu 2
  173802. \fBPR\fP \fI\%#48323\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  173803. @ \fI2018\-06\-27 13:44:58 UTC\fP
  173804. .INDENT 2.0
  173805. .IP \(bu 2
  173806. 5b8d55428e Merge pull request \fI\%#48323\fP from Ch3LL/update_version_doc_2018.3
  173807. .IP \(bu 2
  173808. b4548aca56 Update release versions for the 2018.3 branch
  173809. .UNINDENT
  173810. .IP \(bu 2
  173811. \fBPR\fP \fI\%#48326\fP: (\fI\%Ch3LL\fP) Remove In Progress Warning for 2018.3.2 Release
  173812. @ \fI2018\-06\-27 13:43:16 UTC\fP
  173813. .INDENT 2.0
  173814. .IP \(bu 2
  173815. 7cf403e313 Merge pull request \fI\%#48326\fP from Ch3LL/rn_remove_in_prog
  173816. .IP \(bu 2
  173817. dfce1ad5ed Remove In Progress Warning for 2018.3.2 Release
  173818. .UNINDENT
  173819. .IP \(bu 2
  173820. \fBPR\fP \fI\%#48301\fP: (\fI\%terminalmage\fP) Fix typos in new mock_open docs
  173821. @ \fI2018\-06\-25 19:08:14 UTC\fP
  173822. .INDENT 2.0
  173823. .IP \(bu 2
  173824. 60ffad5126 Merge pull request \fI\%#48301\fP from terminalmage/docs
  173825. .IP \(bu 2
  173826. 6c33345f05 Fix typos in new mock_open docs
  173827. .UNINDENT
  173828. .IP \(bu 2
  173829. \fBPR\fP \fI\%#48292\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48288\fP to 2018.3
  173830. @ \fI2018\-06\-25 19:07:11 UTC\fP
  173831. .INDENT 2.0
  173832. .IP \(bu 2
  173833. \fBPR\fP \fI\%#48288\fP: (\fI\%rmarchei\fP) fix lsattr.get in file.check_perms (refs: \fI\%#48292\fP)
  173834. .IP \(bu 2
  173835. 4760f87153 Merge pull request \fI\%#48292\fP from rallytime/bp\-48288
  173836. .IP \(bu 2
  173837. d6620573bb fix lsattr.get in file.check_perms
  173838. .UNINDENT
  173839. .IP \(bu 2
  173840. \fBPR\fP \fI\%#48296\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48258\fP to 2018.3
  173841. @ \fI2018\-06\-25 19:04:41 UTC\fP
  173842. .INDENT 2.0
  173843. .IP \(bu 2
  173844. \fBPR\fP \fI\%#48258\fP: (\fI\%nullify005\fP) preserve tuples for ldap modification operations (refs: \fI\%#48296\fP)
  173845. .IP \(bu 2
  173846. 27207fc510 Merge pull request \fI\%#48296\fP from rallytime/bp\-48258
  173847. .IP \(bu 2
  173848. 8b7f36f264 preserve tuples for ldap modification operations
  173849. .UNINDENT
  173850. .IP \(bu 2
  173851. \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)
  173852. .IP \(bu 2
  173853. \fBPR\fP \fI\%#48275\fP: (\fI\%garethgreenaway\fP) [2018.3] Follow up fix to MySQL user for password management
  173854. @ \fI2018\-06\-25 13:23:35 UTC\fP
  173855. .INDENT 2.0
  173856. .IP \(bu 2
  173857. d5265da945 Merge pull request \fI\%#48275\fP from garethgreenaway/mysql_fix_followup
  173858. .IP \(bu 2
  173859. bb024b9115 Removing unnecessary code.
  173860. .IP \(bu 2
  173861. 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.
  173862. .UNINDENT
  173863. .IP \(bu 2
  173864. \fBPR\fP \fI\%#48286\fP: (\fI\%terminalmage\fP) Don\(aqt load the grains again when printing them via salt\-call \-g
  173865. @ \fI2018\-06\-25 13:19:18 UTC\fP
  173866. .INDENT 2.0
  173867. .IP \(bu 2
  173868. 1f306525a7 Merge pull request \fI\%#48286\fP from terminalmage/caller\-print_grains
  173869. .IP \(bu 2
  173870. caa62c051f Don\(aqt load the grains again when printing them via salt\-call \-g
  173871. .UNINDENT
  173872. .IP \(bu 2
  173873. \fBPR\fP \fI\%#48279\fP: (\fI\%terminalmage\fP) Add documentation/further enhancements to rewritten mock_open
  173874. @ \fI2018\-06\-25 13:12:30 UTC\fP
  173875. .INDENT 2.0
  173876. .IP \(bu 2
  173877. 27a0e95174 Merge pull request \fI\%#48279\fP from terminalmage/mock_open\-docs
  173878. .IP \(bu 2
  173879. 65c575ae9c Fix spelling error
  173880. .IP \(bu 2
  173881. 830a624ce8 Ignore IOError when tearing down filehandles not opened for reading
  173882. .IP \(bu 2
  173883. 3b6356f4b0 Raise TypeError when trying to read from filehandles not opened for reading
  173884. .IP \(bu 2
  173885. 09aae0c82b Add more examples and information on strict string types
  173886. .IP \(bu 2
  173887. 8c069d105d Add some mock_open docs
  173888. .IP \(bu 2
  173889. a13d1fe1a0 Update mock_open usage to reflect read_data type enforcement
  173890. .IP \(bu 2
  173891. 374a8ce31f Add more mock_open tests
  173892. .IP \(bu 2
  173893. 0f06adb008 Improve code\-reuse in mock_open tests
  173894. .IP \(bu 2
  173895. 0e8c83bac6 2 MockFH enhancements:
  173896. .UNINDENT
  173897. .IP \(bu 2
  173898. \fBISSUE\fP \fI\%#48141\fP: (\fI\%zerthimon\fP) salt\-api request causes exception (refs: \fI\%#48236\fP)
  173899. .IP \(bu 2
  173900. \fBPR\fP \fI\%#48236\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to cmd_batch
  173901. @ \fI2018\-06\-25 12:58:49 UTC\fP
  173902. .INDENT 2.0
  173903. .IP \(bu 2
  173904. 6ee856631b Merge pull request \fI\%#48236\fP from garethgreenaway/48141_salt_api_local_batch
  173905. .IP \(bu 2
  173906. aea4f7ae14 Fixing test_local_batch
  173907. .IP \(bu 2
  173908. ce3e1eaf2c Removing sort.
  173909. .IP \(bu 2
  173910. 83accf3b20 Fixing test_local_batch
  173911. .IP \(bu 2
  173912. ff14b99752 Fixing a typo in the comment.
  173913. .IP \(bu 2
  173914. 85cef126e0 Adding note about why salt.utils.versions is being re\-imported. Adding a test for local_batch.
  173915. .IP \(bu 2
  173916. 808805fd3d Fixing cmd_batch to work correctly when called via salt\-api.
  173917. .UNINDENT
  173918. .IP \(bu 2
  173919. \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)
  173920. .IP \(bu 2
  173921. \fBPR\fP \fI\%#48228\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql module
  173922. @ \fI2018\-06\-22 15:44:00 UTC\fP
  173923. .INDENT 2.0
  173924. .IP \(bu 2
  173925. 09b036c26e Merge pull request \fI\%#48228\fP from garethgreenaway/48204_mysql_user_password_exception
  173926. .IP \(bu 2
  173927. 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.
  173928. .UNINDENT
  173929. .IP \(bu 2
  173930. \fBPR\fP \fI\%#48252\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173931. @ \fI2018\-06\-22 15:13:42 UTC\fP
  173932. .INDENT 2.0
  173933. .IP \(bu 2
  173934. 67cb5563ef Merge pull request \fI\%#48252\fP from rallytime/merge\-2018.3
  173935. .IP \(bu 2
  173936. 84ec655c24 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173937. .INDENT 2.0
  173938. .IP \(bu 2
  173939. a172f9de84 Merge pull request \fI\%#48226\fP from terminalmage/fix\-alias\-docstring
  173940. .INDENT 2.0
  173941. .IP \(bu 2
  173942. fb237272f5 Don\(aqt display "None" in SaltInvocationError when Salt installed using \-OO
  173943. .IP \(bu 2
  173944. 90c90f5d5c Fix docstring construction in alias_function when Salt installed using \-OO
  173945. .UNINDENT
  173946. .IP \(bu 2
  173947. c6a0207cae Merge pull request \fI\%#48227\fP from Ch3LL/fix_win_tests
  173948. .INDENT 2.0
  173949. .IP \(bu 2
  173950. 236773e3e9 Skip new sha256 files on repo.saltstack.com/windows
  173951. .UNINDENT
  173952. .IP \(bu 2
  173953. 6929423528 Merge pull request \fI\%#48131\fP from bowmanjd\-lms/fix\-apk\-python3
  173954. .INDENT 2.0
  173955. .IP \(bu 2
  173956. f5d2835299 Merge branch \(aq2017.7\(aq into fix\-apk\-python3
  173957. .IP \(bu 2
  173958. 022f9cba50 Fix py3\-incompatible dict.keys()[x] call in apk.py
  173959. .UNINDENT
  173960. .IP \(bu 2
  173961. 868c17377f Merge pull request \fI\%#48185\fP from DSRCorporation/bugs/47901_future_done_exception
  173962. .INDENT 2.0
  173963. .IP \(bu 2
  173964. 5f63316311 Merge branch \(aq2017.7\(aq into bugs/47901_future_done_exception
  173965. .IP \(bu 2
  173966. 9f2dbf94cb Don\(aqt call .exception() on future unless it\(aqs done.
  173967. .UNINDENT
  173968. .IP \(bu 2
  173969. 80a3e37c2e Merge pull request \fI\%#48192\fP from twangboy/fix_pip_version_2017.7
  173970. .INDENT 2.0
  173971. .IP \(bu 2
  173972. 59ae2cc5fc Use \-\-disable\-pip\-version\-check for build_env_#.ps1
  173973. .UNINDENT
  173974. .IP \(bu 2
  173975. 12e2b8882a Merge pull request \fI\%#48201\fP from zer0def/lxc\-bootstrap\-fixes
  173976. .INDENT 2.0
  173977. .IP \(bu 2
  173978. 6f6d3d40d4 Take lxcpath into account when bootstrapping new containers. Version comparison fixes.
  173979. .UNINDENT
  173980. .IP \(bu 2
  173981. e079fce38d Merge pull request \fI\%#48190\fP from terminalmage/fix\-vfstab\-test
  173982. .INDENT 2.0
  173983. .IP \(bu 2
  173984. 8d70d14362 Fix mount.vfstab unit test
  173985. .UNINDENT
  173986. .IP \(bu 2
  173987. c8b9cec986 Merge pull request \fI\%#48115\fP from KaiSforza/pr\-lint\-2017
  173988. .INDENT 2.0
  173989. .IP \(bu 2
  173990. 494727ab39 Add docs, kitchen tests
  173991. .IP \(bu 2
  173992. 317023bb20 Move .jenkins to .ci for future
  173993. .IP \(bu 2
  173994. dedc313cee Make it parallel so we don\(aqt fail right away
  173995. .IP \(bu 2
  173996. cd13426726 Add a .jenkins file to run pylint
  173997. .UNINDENT
  173998. .IP \(bu 2
  173999. fc1752b721 Merge pull request \fI\%#48174\fP from terminalmage/docker\-update\-mine
  174000. .INDENT 2.0
  174001. .IP \(bu 2
  174002. 9af09e0127 Mock config.get due to changes in _refresh_mine_cache
  174003. .IP \(bu 2
  174004. c5802ad465 Fix the version number in versionadded
  174005. .IP \(bu 2
  174006. d403ae58d7 Add unit test for docker.update_mine
  174007. .IP \(bu 2
  174008. 44c275698a Actually it\(aqs more than just add/remove that updates the mine
  174009. .IP \(bu 2
  174010. 0cb6996b07 Add release notes mention of docker.update_mine config option
  174011. .IP \(bu 2
  174012. de05097b20 Add docs for new config option
  174013. .IP \(bu 2
  174014. 04c55a9178 Add note in mine.get_docker docstring about new config item
  174015. .IP \(bu 2
  174016. 4e456255c0 Allow mine update to be disabled using new config option
  174017. .UNINDENT
  174018. .UNINDENT
  174019. .UNINDENT
  174020. .IP \(bu 2
  174021. \fBISSUE\fP \fI\%#48029\fP: (\fI\%vinian\fP) syndic failed to auth when restart salt\-master on syndic master (refs: \fI\%#48034\fP)
  174022. .IP \(bu 2
  174023. \fBPR\fP \fI\%#48034\fP: (\fI\%vinian\fP) restart salt\-syndic when salt\-master restart
  174024. @ \fI2018\-06\-21 20:12:37 UTC\fP
  174025. .INDENT 2.0
  174026. .IP \(bu 2
  174027. 9f0bd90c5b Merge pull request \fI\%#48034\fP from vinian/restart\-salt\-syndic\-when\-salt\-master\-retart
  174028. .IP \(bu 2
  174029. f7652d8c8b restart salt\-syndic when salt\-master restart
  174030. .UNINDENT
  174031. .IP \(bu 2
  174032. \fBPR\fP \fI\%#48250\fP: (\fI\%rallytime\fP) Update release notes for 2018.3.2
  174033. @ \fI2018\-06\-21 18:30:21 UTC\fP
  174034. .INDENT 2.0
  174035. .IP \(bu 2
  174036. ab2ba942ad Merge pull request \fI\%#48250\fP from rallytime/2018.3.2\-release\-notes\-update
  174037. .IP \(bu 2
  174038. 19c104b6cd Update release notes for 2018.3.2
  174039. .UNINDENT
  174040. .IP \(bu 2
  174041. \fBPR\fP \fI\%#48166\fP: (\fI\%terminalmage\fP) Add trace logging and optimize file handling in grains.core.os_data
  174042. @ \fI2018\-06\-21 18:02:33 UTC\fP
  174043. .INDENT 2.0
  174044. .IP \(bu 2
  174045. 51928ff050 Merge pull request \fI\%#48166\fP from terminalmage/salt\-jenkins\-1000
  174046. .IP \(bu 2
  174047. b73df0ab00 Change call_args to call.args to reflect changes to MockFH
  174048. .IP \(bu 2
  174049. 0c2cc07704 remove unused import
  174050. .IP \(bu 2
  174051. b8c0a55cf3 Add test for tell()
  174052. .IP \(bu 2
  174053. 1cbe89feee Implement tell() for filehandle iteration
  174054. .IP \(bu 2
  174055. efb8f49d42 Add tests for read_data being a list, and containing unicode or bytestrings
  174056. .IP \(bu 2
  174057. 38df912fa6 Operate on a copy of the read_data
  174058. .IP \(bu 2
  174059. 71eeae1240 Update mount module unit tests to reflect changes in mock_open
  174060. .IP \(bu 2
  174061. 16c414e120 Update nfs3 module tests to reflect changes in mock_open
  174062. .IP \(bu 2
  174063. b7eab25d6c Update grub_legacy module tests to reflect changes in mock_open
  174064. .IP \(bu 2
  174065. cc002b8fd7 Update new network unit test to reflect changes in mock_open
  174066. .IP \(bu 2
  174067. a8f11594f1 Update new core grains tests to reflect changes in mock_open
  174068. .IP \(bu 2
  174069. 84ce18d956 Update crypt unit tests to reflect changes in mock_open
  174070. .IP \(bu 2
  174071. 67c036dc2d Add MockCall to tests.support.mock to track calls
  174072. .IP \(bu 2
  174073. 2556a1e13d Remove unused import
  174074. .IP \(bu 2
  174075. fd9d700157 Add additional docs to MockOpen class
  174076. .IP \(bu 2
  174077. 6acb4c83ec Update newly added test to reflect renaming of handles attribute
  174078. .IP \(bu 2
  174079. 77e5288d42 Update fibre_channel grains tests to reflect changes in mock_open
  174080. .IP \(bu 2
  174081. ed40371a06 Update timezone module tests to reflect changes in mock_open
  174082. .IP \(bu 2
  174083. fc0aa9934f Track call_count in MockOpen
  174084. .IP \(bu 2
  174085. 2598d2453a Update snapper module tests to reflect changes in mock_open
  174086. .IP \(bu 2
  174087. 51b3faa7b4 Add support for passing multiple strings for a given match in read_data
  174088. .IP \(bu 2
  174089. 55487c175c Fix mock_open call to use new multifile syntax
  174090. .IP \(bu 2
  174091. 7f516ef73a Update puppet module tests to reflect changes in mock_open
  174092. .IP \(bu 2
  174093. 33a97c4ecc Update btmp beacon tests to reflect changes in mock_open
  174094. .IP \(bu 2
  174095. bc027cfa94 Update wtmp beacon tests to reflect changes in mock_open
  174096. .IP \(bu 2
  174097. f5823252bb Track call args/kwargs in MockFH
  174098. .IP \(bu 2
  174099. 335591ca90 Mock the seek function in MockFH
  174100. .IP \(bu 2
  174101. 7eb4b1ae1c Update cp.push test to reflect changes to mock_open
  174102. .IP \(bu 2
  174103. 2be19cfa89 Report correct location when reading using explicit size and EOF reached
  174104. .IP \(bu 2
  174105. 5ec95ba5ca On second thought, actually implement tell()
  174106. .IP \(bu 2
  174107. 19022eb9e5 Add tell mock to MockFH
  174108. .IP \(bu 2
  174109. 4b5a393445 Update junos tests to reflect changes to mock_open
  174110. .IP \(bu 2
  174111. 278a222b09 Update dnsutil tests to reflect changes to mock_open
  174112. .IP \(bu 2
  174113. 4e67955572 Replace the rest of mock_open with a class
  174114. .IP \(bu 2
  174115. 75307a47c5 Update linux_sysctl tests to reflect changes to mock_open
  174116. .IP \(bu 2
  174117. 05c68fd5d9 Use explicit config file and fix remaining mac_sysctl tests
  174118. .IP \(bu 2
  174119. 836fde9a30 Allow Python 2 to accept an exception as read_data
  174120. .IP \(bu 2
  174121. 543385fd02 Add writelines_calls property
  174122. .IP \(bu 2
  174123. 42fa842456 Make read funcs mocks so their calls can be tracked
  174124. .IP \(bu 2
  174125. 675f03c58f Update mac_sysctl tests to reflect new mock_open behavior
  174126. .IP \(bu 2
  174127. 3d2c41d395 Update file module tests to reflect new mock_open behavior
  174128. .IP \(bu 2
  174129. b9200dbc3e add a dict containing the handles to the mock_open return object
  174130. .IP \(bu 2
  174131. 852ba4b982 Add mocked close() function to MockFH
  174132. .IP \(bu 2
  174133. f6b46bc608 Remove unused import
  174134. .IP \(bu 2
  174135. 20f60a769b Add blank lines to appease linter
  174136. .IP \(bu 2
  174137. 48d7cfa6d3 Add multifile tests for mock_open
  174138. .IP \(bu 2
  174139. 1861e9b944 mock_open: rewrite multi\-file support
  174140. .IP \(bu 2
  174141. 5e6b539770 Use function for empty string
  174142. .IP \(bu 2
  174143. cb2620ad2b Update core grains tests to reflect EAFP changes
  174144. .IP \(bu 2
  174145. 5d09b178d7 Separate mocked file contents per filename, not glob
  174146. .IP \(bu 2
  174147. 875102f538 Modify mock_open to support multiple file paths
  174148. .IP \(bu 2
  174149. 096ace74df Move lsb_release parsing into its own function
  174150. .IP \(bu 2
  174151. 6a0828beed Add unit tests for mock_open
  174152. .IP \(bu 2
  174153. 8ba6cadac7 More mock_open bugfixes
  174154. .IP \(bu 2
  174155. 329dea218e Add a bunch of logging for linux os_data core grains
  174156. .IP \(bu 2
  174157. 2c64b270df Add timestamp to the minion\(aqs log_fmt_console
  174158. .UNINDENT
  174159. .IP \(bu 2
  174160. \fBPR\fP \fI\%#48216\fP: (\fI\%Ch3LL\fP) Fix UnicodeDecodeError when reading file to determine virtual grain (refs: \fI\%#48440\fP)
  174161. @ \fI2018\-06\-20 16:53:41 UTC\fP
  174162. .INDENT 2.0
  174163. .IP \(bu 2
  174164. 6072d1ef9c Merge pull request \fI\%#48216\fP from Ch3LL/grains_unicode
  174165. .IP \(bu 2
  174166. c4334f3f14 Fix UnicodeDecodeError when reading file to determine virtual grain
  174167. .UNINDENT
  174168. .IP \(bu 2
  174169. \fBPR\fP \fI\%#48212\fP: (\fI\%Ch3LL\fP) Fix python3 ec2 salt\-cloud TypeError when installing salt (refs: \fI\%#49041\fP)
  174170. @ \fI2018\-06\-20 16:00:21 UTC\fP
  174171. .INDENT 2.0
  174172. .IP \(bu 2
  174173. 77a75ebdcf Merge pull request \fI\%#48212\fP from Ch3LL/py3_ec2
  174174. .IP \(bu 2
  174175. b0d75f459a Fix python3 ec2 salt\-cloud TypeError when installing salt
  174176. .UNINDENT
  174177. .IP \(bu 2
  174178. \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)
  174179. .IP \(bu 2
  174180. \fBPR\fP \fI\%#48209\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47986\fP to 2018.3
  174181. @ \fI2018\-06\-20 13:44:17 UTC\fP
  174182. .INDENT 2.0
  174183. .IP \(bu 2
  174184. \fBPR\fP \fI\%#48080\fP: (\fI\%lusche\fP) Bugfix \fI\%#47984\fP messed up cert serial (refs: \fI\%#48209\fP)
  174185. .IP \(bu 2
  174186. \fBPR\fP \fI\%#47986\fP: (\fI\%jeduardo\fP) Fix serial number writing into CRL files with the x509 module (refs: \fI\%#48209\fP)
  174187. .IP \(bu 2
  174188. de614d31f5 Merge pull request \fI\%#48209\fP from rallytime/bp\-47986
  174189. .IP \(bu 2
  174190. f4b3bd5d2c Changed salt.utils.fopen to salt.utils.files.fopen
  174191. .IP \(bu 2
  174192. 8686872909 Fixed typos, removed repeated unit tests, and applied code fixes suggested by linter.
  174193. .IP \(bu 2
  174194. 382df48a72 Removed useless new line
  174195. .IP \(bu 2
  174196. 5aa99d14c4 Added unit tests for CRL creation and certificate revocation with CRL
  174197. .IP \(bu 2
  174198. cc12844922 Fixed a problem where the OpenSSL bindings refuse to consume unicode strings.
  174199. .IP \(bu 2
  174200. 399cf08860 Stopped converting the certificate hexadecimal serial number to an integer in order to avoid breaking CRLs.
  174201. .UNINDENT
  174202. .IP \(bu 2
  174203. \fBPR\fP \fI\%#48210\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  174204. @ \fI2018\-06\-20 13:43:19 UTC\fP
  174205. .INDENT 2.0
  174206. .IP \(bu 2
  174207. 1f88df6e89 Merge pull request \fI\%#48210\fP from rallytime/merge\-2018.3
  174208. .IP \(bu 2
  174209. dae65da256 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  174210. .UNINDENT
  174211. .IP \(bu 2
  174212. \fBPR\fP \fI\%#48186\fP: (\fI\%rallytime\fP) Add autodoc module for saltcheck.py
  174213. @ \fI2018\-06\-19 19:03:55 UTC\fP
  174214. .INDENT 2.0
  174215. .IP \(bu 2
  174216. 5b4897f050 Merge pull request \fI\%#48186\fP from rallytime/saltcheck\-docs
  174217. .IP \(bu 2
  174218. 314fc2d889 Clean up some doc references
  174219. .IP \(bu 2
  174220. da7603d879 Add autodoc module for saltcheck.py
  174221. .UNINDENT
  174222. .IP \(bu 2
  174223. \fBPR\fP \fI\%#48191\fP: (\fI\%twangboy\fP) Use the \-\-disable\-pip\-version\-check option
  174224. @ \fI2018\-06\-19 18:13:44 UTC\fP
  174225. .INDENT 2.0
  174226. .IP \(bu 2
  174227. 7274a33c80 Merge pull request \fI\%#48191\fP from twangboy/fix_pip_check
  174228. .IP \(bu 2
  174229. 5c00fce6bf Use the \-\-disable\-pip\-version\-check option
  174230. .UNINDENT
  174231. .IP \(bu 2
  174232. \fBISSUE\fP \fI\%#48122\fP: (\fI\%pasmon\fP) Salt minion 2017.7.6 disregards "bin_env" in pip state (refs: \fI\%#48189\fP)
  174233. .IP \(bu 2
  174234. \fBPR\fP \fI\%#48189\fP: (\fI\%gtmanfred\fP) If pip binary is passed to bin_env, use that pip binary (refs: \fI\%#48207\fP)
  174235. @ \fI2018\-06\-19 18:08:13 UTC\fP
  174236. .INDENT 2.0
  174237. .IP \(bu 2
  174238. 96f79b0674 Merge pull request \fI\%#48189\fP from gtmanfred/pip
  174239. .IP \(bu 2
  174240. 96c59f3d93 If pip binary is passed to bin_env, use that pip binary
  174241. .UNINDENT
  174242. .IP \(bu 2
  174243. \fBPR\fP \fI\%#48165\fP: (\fI\%terminalmage\fP) Fix regression with top_file_merging_strategy=same
  174244. @ \fI2018\-06\-19 18:03:07 UTC\fP
  174245. .INDENT 2.0
  174246. .IP \(bu 2
  174247. 71e385501b Merge pull request \fI\%#48165\fP from terminalmage/issue48144
  174248. .IP \(bu 2
  174249. 92ac2a2d6a Remove unused imports
  174250. .IP \(bu 2
  174251. 15a44d5dd4 Remove redundant top file merging tests
  174252. .IP \(bu 2
  174253. 12100d9bd3 Add more top file merging tests
  174254. .IP \(bu 2
  174255. 0ed686cb3f Add unit test for show_top with "same" merging strategy
  174256. .IP \(bu 2
  174257. 35e5492fb7 Revert 7058f10 / 3df6fa7
  174258. .UNINDENT
  174259. .IP \(bu 2
  174260. \fBISSUE\fP \fI\%#46806\fP: (\fI\%ezh\fP) Lack of debug messages on authentication fail. (refs: \fI\%#46807\fP, \fI\%#48179\fP)
  174261. .IP \(bu 2
  174262. \fBPR\fP \fI\%#48179\fP: (\fI\%ezh\fP) 2018.3 auth
  174263. @ \fI2018\-06\-19 14:16:40 UTC\fP
  174264. .INDENT 2.0
  174265. .IP \(bu 2
  174266. \fBPR\fP \fI\%#46807\fP: (\fI\%ezh\fP) Reduce initial authentication setup complexity (refs: \fI\%#48179\fP)
  174267. .IP \(bu 2
  174268. 2a8e1c6539 Merge pull request \fI\%#48179\fP from ezh/2018.3\-auth
  174269. .IP \(bu 2
  174270. 9ed2d2ec55 Fix integration.shell.test_key and integration.shell.test_runner
  174271. .IP \(bu 2
  174272. 26a6f79730 Fix integration tests test_list_acc_wrong_eauth, test_salt_run_with_wrong_eauth
  174273. .IP \(bu 2
  174274. b84c4321c4 Add more verbose debug messages for auth subsystem
  174275. .UNINDENT
  174276. .IP \(bu 2
  174277. \fBPR\fP \fI\%#48188\fP: (\fI\%gtmanfred\fP) allow virtual aliases to be used for the driver name
  174278. @ \fI2018\-06\-18 21:49:16 UTC\fP
  174279. .INDENT 2.0
  174280. .IP \(bu 2
  174281. 0231008cf8 Merge pull request \fI\%#48188\fP from gtmanfred/2018.3
  174282. .IP \(bu 2
  174283. 45249d3e10 allow virtual aliases to be used for the driver name
  174284. .UNINDENT
  174285. .IP \(bu 2
  174286. \fBPR\fP \fI\%#48116\fP: (\fI\%KaiSforza\fP) Add jenkinsfiles to define tests in 2018
  174287. @ \fI2018\-06\-18 21:27:10 UTC\fP
  174288. .INDENT 2.0
  174289. .IP \(bu 2
  174290. 0f95238dca Merge pull request \fI\%#48116\fP from KaiSforza/pr\-lint\-2018
  174291. .IP \(bu 2
  174292. f158bed5bd Add docs, kitchen tests
  174293. .IP \(bu 2
  174294. 904a70c187 Move .jenkins to .ci for future
  174295. .IP \(bu 2
  174296. 365fa0e51f Make it parallel so we don\(aqt fail right away
  174297. .IP \(bu 2
  174298. e594979745 Add a .jenkins file to run pylint
  174299. .UNINDENT
  174300. .IP \(bu 2
  174301. \fBISSUE\fP \fI\%#48146\fP: (\fI\%rmarchei\fP) mysql_query.run: exception on 2018.3 (refs: \fI\%#48164\fP)
  174302. .IP \(bu 2
  174303. \fBPR\fP \fI\%#48164\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql state
  174304. @ \fI2018\-06\-18 13:10:20 UTC\fP
  174305. .INDENT 2.0
  174306. .IP \(bu 2
  174307. 60c9490bdc Merge pull request \fI\%#48164\fP from garethgreenaway/48146_mysql_output_to_file
  174308. .IP \(bu 2
  174309. a040643a82 Accounting for certain situations when the query result is not a string, but actually a dictionary.
  174310. .UNINDENT
  174311. .IP \(bu 2
  174312. \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)
  174313. .IP \(bu 2
  174314. \fBPR\fP \fI\%#48156\fP: (\fI\%garethgreenaway\fP) [2018.3] Unicode fixes for file.line
  174315. @ \fI2018\-06\-17 19:34:08 UTC\fP
  174316. .INDENT 2.0
  174317. .IP \(bu 2
  174318. 85ebcbd3f2 Merge pull request \fI\%#48156\fP from garethgreenaway/48113_ensure_writing_strings_with_file_dot_line
  174319. .IP \(bu 2
  174320. 5a9ef0d1ae Unless we\(aqre using py2 and Windows, ensure we\(aqre writing out a string when using file.line.
  174321. .UNINDENT
  174322. .IP \(bu 2
  174323. \fBPR\fP \fI\%#48161\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174324. @ \fI2018\-06\-17 19:33:29 UTC\fP
  174325. .INDENT 2.0
  174326. .IP \(bu 2
  174327. 33400e72db Merge pull request \fI\%#48161\fP from rallytime/merge\-2018.3
  174328. .IP \(bu 2
  174329. 0733fa1b02 Update utils path for which function to new path
  174330. .IP \(bu 2
  174331. 398cc78224 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174332. .IP \(bu 2
  174333. df2a156338 Merge pull request \fI\%#48061\fP from garethgreenaway/port_47049_2017_7
  174334. .INDENT 2.0
  174335. .IP \(bu 2
  174336. 7c472fed51 Fixing failing test_set_hwclock_aix test.
  174337. .IP \(bu 2
  174338. ccb0acc958 Porting \fI\%#47049\fP to 2017.7.
  174339. .UNINDENT
  174340. .IP \(bu 2
  174341. 5ec3cf2dd4 Merge pull request \fI\%#48143\fP from Ch3LL/fix_long_job
  174342. .INDENT 2.0
  174343. .IP \(bu 2
  174344. 48b5d2e9d3 Add timeout argument to run_salt for ShellCase
  174345. .UNINDENT
  174346. .IP \(bu 2
  174347. e1e566d1f8 Merge pull request \fI\%#48135\fP from rallytime/release\-notes\-2017.7
  174348. .INDENT 2.0
  174349. .IP \(bu 2
  174350. 7a97f157b3 Add missing \fIv\fP for tag reference
  174351. .IP \(bu 2
  174352. 2f2b69ed37 Add "in progress" notation to 2017.7.7 release notes
  174353. .IP \(bu 2
  174354. 06a1151a63 Add release notes file for 2017.7.7
  174355. .IP \(bu 2
  174356. 885b2862ce Move 2017.7.7 release notes to 2017.7.8
  174357. .UNINDENT
  174358. .IP \(bu 2
  174359. ac9dabbfaa Merge pull request \fI\%#48105\fP from rallytime/merge\-2017.7
  174360. .INDENT 2.0
  174361. .IP \(bu 2
  174362. cdb45874de Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  174363. .INDENT 2.0
  174364. .IP \(bu 2
  174365. 16916d6bd2 Merge pull request \fI\%#47880\fP from gtmanfred/2017.7.6
  174366. .INDENT 2.0
  174367. .IP \(bu 2
  174368. 987ae6358b quote python_version in requirements.txt
  174369. .UNINDENT
  174370. .IP \(bu 2
  174371. 27670168ea Merge pull request \fI\%#47875\fP from rallytime/release\-notes\-dot\-six
  174372. .INDENT 2.0
  174373. .IP \(bu 2
  174374. 58dee4c829 Remove sentence about the release being in progress
  174375. .IP \(bu 2
  174376. b3dcb7330e Remove "in progress" too
  174377. .IP \(bu 2
  174378. 99e1df7823 Update 2017.7.6 release notes: remove "unreleased" text
  174379. .UNINDENT
  174380. .IP \(bu 2
  174381. 1f0bada07c Merge pull request \fI\%#47873\fP from gtmanfred/2017.7.6
  174382. .INDENT 2.0
  174383. .IP \(bu 2
  174384. a1c1b5b5cf allow tornado 5.0 to be installed only for python2
  174385. .UNINDENT
  174386. .UNINDENT
  174387. .UNINDENT
  174388. .IP \(bu 2
  174389. 2da56a69d9 Merge pull request \fI\%#48101\fP from rallytime/update\-doc\-refs\-2017.7
  174390. .INDENT 2.0
  174391. .IP \(bu 2
  174392. 7ba6f5fb36 Update 2017.7.7 reference to 2017.7.8
  174393. .UNINDENT
  174394. .IP \(bu 2
  174395. 5a0e3d46e7 Merge pull request \fI\%#48091\fP from terminalmage/fix\-file_roots\-monkeypatching
  174396. .INDENT 2.0
  174397. .IP \(bu 2
  174398. 6fe711ad76 Reverse monkeypatching after test_symlink_list finishes
  174399. .UNINDENT
  174400. .IP \(bu 2
  174401. 053b019a8f Merge pull request \fI\%#48088\fP from rallytime/update_version_doc_2017.7
  174402. .INDENT 2.0
  174403. .IP \(bu 2
  174404. 1b8d1c936b Remove "in progress" info for 2017.7.6 release notes
  174405. .IP \(bu 2
  174406. 9a0f4d190a Update release versions for the 2017.7 branch
  174407. .UNINDENT
  174408. .IP \(bu 2
  174409. d6d2c5ee18 Merge pull request \fI\%#48075\fP from garethgreenaway/48038_jobs_are_not_deduping_minion_side
  174410. .INDENT 2.0
  174411. .IP \(bu 2
  174412. c537b3275b Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  174413. .UNINDENT
  174414. .IP \(bu 2
  174415. aa33cc0b0c Merge pull request \fI\%#48071\fP from terminalmage/gitfs\-docs
  174416. .INDENT 2.0
  174417. .IP \(bu 2
  174418. 24545204b3 Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  174419. .UNINDENT
  174420. .IP \(bu 2
  174421. fb4ceacb88 Merge pull request \fI\%#48053\fP from rallytime/bp\-48040
  174422. .INDENT 2.0
  174423. .IP \(bu 2
  174424. 265b22b194 states/github.py fix for incorrect positional argument
  174425. .UNINDENT
  174426. .IP \(bu 2
  174427. f37dcaac6d Merge pull request \fI\%#48024\fP from gtmanfred/2017.7
  174428. .INDENT 2.0
  174429. .IP \(bu 2
  174430. 56b074ab27 allow specifying a different state to run on converge
  174431. .IP \(bu 2
  174432. cc9c4b4d5a add pytest coverage and xml junits
  174433. .UNINDENT
  174434. .UNINDENT
  174435. .IP \(bu 2
  174436. \fBISSUE\fP \fI\%#48145\fP: (\fI\%max\-arnold\fP) Failed to load ext_pillar saltclass: can only assign an iterable (refs: \fI\%#48155\fP)
  174437. .IP \(bu 2
  174438. \fBPR\fP \fI\%#48155\fP: (\fI\%max\-arnold\fP) Do not fail on empty saltclass classes (fix for \fI\%#48145\fP)
  174439. @ \fI2018\-06\-15 20:21:28 UTC\fP
  174440. .INDENT 2.0
  174441. .IP \(bu 2
  174442. 9aa9a83b10 Merge pull request \fI\%#48155\fP from max\-arnold/2018.3
  174443. .IP \(bu 2
  174444. 63ab02c648 Do not fail on empty saltclass classes declaration \fI\%#48145\fP
  174445. .IP \(bu 2
  174446. 3d4fcbe3aa Add test for issue \fI\%#48145\fP
  174447. .UNINDENT
  174448. .IP \(bu 2
  174449. \fBPR\fP \fI\%#48104\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_status\fP
  174450. @ \fI2018\-06\-15 17:05:34 UTC\fP
  174451. .INDENT 2.0
  174452. .IP \(bu 2
  174453. 152c09cc0c Merge pull request \fI\%#48104\fP from twangboy/fix_test_win_status
  174454. .IP \(bu 2
  174455. 1ec3f436ee Fix test_error_logged_if_process_get_owner_fails
  174456. .UNINDENT
  174457. .IP \(bu 2
  174458. \fBPR\fP \fI\%#48147\fP: (\fI\%brejoc\fP) Fix for sorting of multi\-version packages
  174459. @ \fI2018\-06\-15 17:03:18 UTC\fP
  174460. .INDENT 2.0
  174461. .IP \(bu 2
  174462. 8cf03110d4 Merge pull request \fI\%#48147\fP from brejoc/2018.3\-multi\-version\-fix
  174463. .IP \(bu 2
  174464. 90ed25447d Swtiching to salt.utils.versions like linter suggested
  174465. .IP \(bu 2
  174466. ed09574073 Fix for sorting of multi\-version packages (bsc#1097174 and bsc#1097413)
  174467. .UNINDENT
  174468. .IP \(bu 2
  174469. \fBPR\fP \fI\%#47956\fP: (\fI\%dmurphy18\fP) Improved support for mount on AIX
  174470. @ \fI2018\-06\-15 13:40:01 UTC\fP
  174471. .INDENT 2.0
  174472. .IP \(bu 2
  174473. 2edc5f5442 Merge pull request \fI\%#47956\fP from dmurphy18/aix_mount_support
  174474. .IP \(bu 2
  174475. f2a3e321db Improved support for mount on AIX
  174476. .UNINDENT
  174477. .IP \(bu 2
  174478. \fBISSUE\fP \fI\%#48012\fP: (\fI\%Timandes\fP) Found UnicodeDecodeError when trying to start Salt Master (refs: \fI\%#48081\fP)
  174479. .IP \(bu 2
  174480. \fBPR\fP \fI\%#48081\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError when parsing hosts file with non\-ascii
  174481. @ \fI2018\-06\-15 12:41:13 UTC\fP
  174482. .INDENT 2.0
  174483. .IP \(bu 2
  174484. c05c176782 Merge pull request \fI\%#48081\fP from terminalmage/issue48012
  174485. .IP \(bu 2
  174486. 8d2fb0bf25 Fix cp.push test
  174487. .IP \(bu 2
  174488. e230a7223f Fix definition of test data for wtmp/btmp beacon tests
  174489. .IP \(bu 2
  174490. 82874a8c10 Import six like we do everywhere else
  174491. .IP \(bu 2
  174492. 54f9a2ab54 Remove unused import
  174493. .IP \(bu 2
  174494. 767cc7e87f fix tabs
  174495. .IP \(bu 2
  174496. db19636f56 Get rid of additional newline append
  174497. .IP \(bu 2
  174498. 7427e192ba Fix more crappy mocking
  174499. .IP \(bu 2
  174500. 4eaa5789ce Fix crappy mocking
  174501. .IP \(bu 2
  174502. 248467edac Add regression test for _generate_minion_id()
  174503. .IP \(bu 2
  174504. 5e62d6d45f Fix UnicodeDecodeError when parsing hosts file with non\-ascii
  174505. .IP \(bu 2
  174506. e6a4744f85 Use errno instead of hard\-coding error 2
  174507. .IP \(bu 2
  174508. ff63f36932 Fixes / enhancements for mock_open
  174509. .UNINDENT
  174510. .IP \(bu 2
  174511. \fBPR\fP \fI\%#48133\fP: (\fI\%rallytime\fP) Updates the 2018.3.2 and 2018.3.3 release notes files
  174512. @ \fI2018\-06\-14 21:21:15 UTC\fP
  174513. .INDENT 2.0
  174514. .IP \(bu 2
  174515. \fBPR\fP \fI\%#48129\fP: (\fI\%rallytime\fP) Add release notes for 2018.3.2 (refs: \fI\%#48133\fP)
  174516. .IP \(bu 2
  174517. 5d92e2763a Merge pull request \fI\%#48133\fP from rallytime/release\-notes\-2018.3
  174518. .IP \(bu 2
  174519. afe1e91972 Add "in progress" notation to 2018.3.2 release notes
  174520. .IP \(bu 2
  174521. 3e4272ac09 Add release notes for 2018.3.2
  174522. .IP \(bu 2
  174523. 88c584cb0d Move 2018.3.2 release notes to 2018.3.3
  174524. .UNINDENT
  174525. .IP \(bu 2
  174526. \fBPR\fP \fI\%#48103\fP: (\fI\%terminalmage\fP) Fix for gitfs base env being pinned to commit ID
  174527. @ \fI2018\-06\-14 16:29:24 UTC\fP
  174528. .INDENT 2.0
  174529. .IP \(bu 2
  174530. 0e3f846836 Merge pull request \fI\%#48103\fP from terminalmage/gitfs\-base\-pinned\-to\-commit
  174531. .IP \(bu 2
  174532. 31ab2fe8de Fix for gitfs base env being pinned to commit ID
  174533. .UNINDENT
  174534. .IP \(bu 2
  174535. \fBPR\fP \fI\%#48077\fP: (\fI\%twangboy\fP) Fix issue with \fIsalt.utils.parsers\fP on Windows
  174536. @ \fI2018\-06\-14 16:22:57 UTC\fP
  174537. .INDENT 2.0
  174538. .IP \(bu 2
  174539. 4b6f1c7f75 Merge pull request \fI\%#48077\fP from twangboy/fix_parsers
  174540. .IP \(bu 2
  174541. 0f7d7691a2 Call logger in each case
  174542. .IP \(bu 2
  174543. 0e99dd741c Fix logic for non\-root
  174544. .IP \(bu 2
  174545. 2d2534a688 Fix parsers for Windows, fix tests
  174546. .UNINDENT
  174547. .IP \(bu 2
  174548. \fBPR\fP \fI\%#48096\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_which\fP on Windows
  174549. @ \fI2018\-06\-14 13:15:14 UTC\fP
  174550. .INDENT 2.0
  174551. .IP \(bu 2
  174552. 80332b32a7 Merge pull request \fI\%#48096\fP from twangboy/fix_test_which
  174553. .IP \(bu 2
  174554. d26fc56f13 Use os.sep for paths
  174555. .UNINDENT
  174556. .IP \(bu 2
  174557. \fBPR\fP \fI\%#48102\fP: (\fI\%rallytime\fP) [2018.3] Update 2018.3.2 references to 2018.3.3
  174558. @ \fI2018\-06\-14 13:14:26 UTC\fP
  174559. .INDENT 2.0
  174560. .IP \(bu 2
  174561. 66b2200913 Merge pull request \fI\%#48102\fP from rallytime/update\-doc\-refs\-2018.3
  174562. .IP \(bu 2
  174563. 1c9bcce3d8 Update 2018.3.2 references to 2018.3.3
  174564. .UNINDENT
  174565. .IP \(bu 2
  174566. \fBPR\fP \fI\%#48109\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47851\fP to 2018.3
  174567. @ \fI2018\-06\-14 13:09:04 UTC\fP
  174568. .INDENT 2.0
  174569. .IP \(bu 2
  174570. \fBPR\fP \fI\%#47851\fP: (\fI\%rares\-pop\fP) Fixup! add master.py:FileserverUpdate **kwargs (refs: \fI\%#48109\fP)
  174571. .IP \(bu 2
  174572. 2902ee0b14 Merge pull request \fI\%#48109\fP from rallytime/bp\-47851
  174573. .IP \(bu 2
  174574. e9dc30bf8e Fixup! add master.py:FileserverUpdate **kwargs
  174575. .UNINDENT
  174576. .IP \(bu 2
  174577. \fBISSUE\fP \fI\%#47925\fP: (\fI\%JonGriggs\fP) GitFS looking for files in the master branch only (refs: \fI\%#47943\fP)
  174578. .IP \(bu 2
  174579. \fBPR\fP \fI\%#47943\fP: (\fI\%terminalmage\fP) Make sure we set the effective environment when lock_saltenv is True
  174580. @ \fI2018\-06\-13 20:02:00 UTC\fP
  174581. .INDENT 2.0
  174582. .IP \(bu 2
  174583. 2529292568 Merge pull request \fI\%#47943\fP from terminalmage/issue47925
  174584. .IP \(bu 2
  174585. 534e1a7100 Merge branch \(aq2018.3\(aq into issue47925
  174586. .UNINDENT
  174587. .IP \(bu 2
  174588. \fBPR\fP \fI\%#48089\fP: (\fI\%rallytime\fP) Update release versions for the 2018.3 branch
  174589. @ \fI2018\-06\-13 14:03:44 UTC\fP
  174590. .INDENT 2.0
  174591. .IP \(bu 2
  174592. 9e1d0040e4 Merge pull request \fI\%#48089\fP from rallytime/update_version_doc_2018.3
  174593. .IP \(bu 2
  174594. fad6a0991e Remove "in progress" info for 2018.3.1 release notes
  174595. .IP \(bu 2
  174596. a3b3b0a0e1 Remove "in progress" info for 2017.7.6 release notes
  174597. .IP \(bu 2
  174598. f9be1b9125 Update release versions for the 2018.3 branch
  174599. .UNINDENT
  174600. .IP \(bu 2
  174601. \fBPR\fP \fI\%#48054\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174602. @ \fI2018\-06\-13 12:58:46 UTC\fP
  174603. .INDENT 2.0
  174604. .IP \(bu 2
  174605. b10b7355a0 Merge pull request \fI\%#48054\fP from rallytime/merge\-2018.3
  174606. .IP \(bu 2
  174607. 508d70fabf Update old utils paths to use new paths
  174608. .IP \(bu 2
  174609. 3d2ea16c3a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174610. .INDENT 2.0
  174611. .IP \(bu 2
  174612. ffee3576ec Merge pull request \fI\%#48044\fP from twangboy/wua_add_fail_code
  174613. .INDENT 2.0
  174614. .IP \(bu 2
  174615. d41d0c25eb Add faile code for WinHTTP send/receive error
  174616. .UNINDENT
  174617. .IP \(bu 2
  174618. 871a910fcb Merge pull request \fI\%#48009\fP from dwoz/winswarmfix
  174619. .INDENT 2.0
  174620. .IP \(bu 2
  174621. 5027c7bb84 minionswarm runs on windows
  174622. .UNINDENT
  174623. .IP \(bu 2
  174624. 0dcaead36d Merge pull request \fI\%#47968\fP from gtmanfred/2017.7
  174625. .INDENT 2.0
  174626. .IP \(bu 2
  174627. ae1b0d28bb pass LANG and HOME into tox commands
  174628. .IP \(bu 2
  174629. 8d15b93d00 remove tox virtualenvs from doc tests
  174630. .IP \(bu 2
  174631. e1872e2036 simplify tox.ini
  174632. .IP \(bu 2
  174633. 81bd01f5af add tests.txt for running tests with tox requirements
  174634. .IP \(bu 2
  174635. 556a2067fc fix masterapi test to use testing directory for configs
  174636. .IP \(bu 2
  174637. 5a41f484ef add EXPENSIVE_TESTS
  174638. .IP \(bu 2
  174639. 055cd5a6ba set DESTRUCTIVE_TESTS environment variable for pytest
  174640. .UNINDENT
  174641. .IP \(bu 2
  174642. 42dd6b83eb Merge pull request \fI\%#47978\fP from twangboy/fix_test_pkg
  174643. .INDENT 2.0
  174644. .IP \(bu 2
  174645. 8bb36b3a4b Add try/finally, fix typo in 7zip def file
  174646. .UNINDENT
  174647. .IP \(bu 2
  174648. a67b21ef3d Merge pull request \fI\%#47959\fP from twangboy/fix_test_service
  174649. .INDENT 2.0
  174650. .IP \(bu 2
  174651. 0cd47aa81e Remove unused import
  174652. .IP \(bu 2
  174653. d4b42540e3 Fix failing test when service doesn\(aqt exist
  174654. .UNINDENT
  174655. .IP \(bu 2
  174656. b81d482067 Merge pull request \fI\%#47983\fP from garethgreenaway/backport_47843_2017_7
  174657. .INDENT 2.0
  174658. .IP \(bu 2
  174659. 7b7fb1f5d5 Adding missing test sls file.
  174660. .IP \(bu 2
  174661. 54e51bc627 Backporting \fI\%#47843\fP to 2017.7, updating test for 2017.7.
  174662. .UNINDENT
  174663. .IP \(bu 2
  174664. d56ddad22c Merge pull request \fI\%#47533\fP from twangboy/fix_47178
  174665. .INDENT 2.0
  174666. .IP \(bu 2
  174667. 24717cbc21 Change version added to 2017.7.7
  174668. .IP \(bu 2
  174669. 0592f1bac2 Fix issues with functions that user makedirs on Windows
  174670. .UNINDENT
  174671. .IP \(bu 2
  174672. 5c56b8c755 Merge pull request \fI\%#47827\fP from twangboy/fix_47791
  174673. .INDENT 2.0
  174674. .IP \(bu 2
  174675. fbbd91f09e Add more descriptive debug message
  174676. .IP \(bu 2
  174677. 365f81651b Fix deprecated exception handling
  174678. .IP \(bu 2
  174679. 8dd6710b93 Use local instead of network
  174680. .IP \(bu 2
  174681. 980d99d74b Fix issue when archive is on mapped drive
  174682. .UNINDENT
  174683. .UNINDENT
  174684. .UNINDENT
  174685. .IP \(bu 2
  174686. \fBPR\fP \fI\%#48060\fP: (\fI\%gtmanfred\fP) mark test as expensive
  174687. @ \fI2018\-06\-13 12:58:21 UTC\fP
  174688. .INDENT 2.0
  174689. .IP \(bu 2
  174690. c83818e4f9 Merge pull request \fI\%#48060\fP from gtmanfred/2018.3
  174691. .IP \(bu 2
  174692. 914935c4d4 Merge branch \(aq2018.3\(aq into 2018.3
  174693. .UNINDENT
  174694. .IP \(bu 2
  174695. \fBPR\fP \fI\%#48057\fP: (\fI\%terminalmage\fP) Fix link without target in 2018.3.0 release notes
  174696. @ \fI2018\-06\-11 18:50:17 UTC\fP
  174697. .INDENT 2.0
  174698. .IP \(bu 2
  174699. a4eb41623d Merge pull request \fI\%#48057\fP from terminalmage/docs\-2018.3
  174700. .IP \(bu 2
  174701. 20f71ff6f6 Fix link without target in 2018.3.0 release notes
  174702. .IP \(bu 2
  174703. d8c035e5e5 mark test as expensive
  174704. .UNINDENT
  174705. .IP \(bu 2
  174706. \fBPR\fP \fI\%#48042\fP: (\fI\%terminalmage\fP) Switch to trace level logging for further test failure troubleshooting
  174707. @ \fI2018\-06\-11 14:03:48 UTC\fP
  174708. .INDENT 2.0
  174709. .IP \(bu 2
  174710. 0f9a3122df Merge pull request \fI\%#48042\fP from terminalmage/salt\-jenkins\-1000
  174711. .IP \(bu 2
  174712. b33a0b5eaa Switch to trace level logging for further test failure troubleshooting
  174713. .UNINDENT
  174714. .IP \(bu 2
  174715. \fBPR\fP \fI\%#48041\fP: (\fI\%terminalmage\fP) salt.utils.hashutils: Only decode to utf\-8 on Windows
  174716. @ \fI2018\-06\-11 13:31:41 UTC\fP
  174717. .INDENT 2.0
  174718. .IP \(bu 2
  174719. 6c5389189a Merge pull request \fI\%#48041\fP from terminalmage/hashutils\-fix\-windows
  174720. .IP \(bu 2
  174721. 58c7cd33d7 salt.utils.hashutils: Only decode to utf\-8 on Windows
  174722. .UNINDENT
  174723. .IP \(bu 2
  174724. \fBPR\fP \fI\%#48014\fP: (\fI\%cro\fP) Find job pause
  174725. @ \fI2018\-06\-08 13:48:45 UTC\fP
  174726. .INDENT 2.0
  174727. .IP \(bu 2
  174728. dcae209951 Merge pull request \fI\%#48014\fP from cro/find_job_pause
  174729. .IP \(bu 2
  174730. 440aa67c4f Lint: Add blank line
  174731. .IP \(bu 2
  174732. 7b0e99a511 One more case where returner doesn\(aqt respond
  174733. .IP \(bu 2
  174734. 5abeedf882 Catch two cases when a returner is not able to be contacted\-\-these would throw a stacktrace.
  174735. .UNINDENT
  174736. .IP \(bu 2
  174737. \fBPR\fP \fI\%#47915\fP: (\fI\%garethgreenaway\fP) [2018.3] state runner pause resume kill
  174738. @ \fI2018\-06\-07 16:08:30 UTC\fP
  174739. .INDENT 2.0
  174740. .IP \(bu 2
  174741. ea85f882bc Merge pull request \fI\%#47915\fP from garethgreenaway/state_runner_pause_resume_kill
  174742. .IP \(bu 2
  174743. 2ecbe9c034 fixing typo in alias_function call.
  174744. .IP \(bu 2
  174745. 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.
  174746. .UNINDENT
  174747. .IP \(bu 2
  174748. \fBPR\fP \fI\%#48002\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47923\fP to 2018.3
  174749. @ \fI2018\-06\-07 15:25:39 UTC\fP
  174750. .INDENT 2.0
  174751. .IP \(bu 2
  174752. \fBPR\fP \fI\%#47923\fP: (\fI\%isbm\fP) Prevent crash if files in file.recurse (refs: \fI\%#48002\fP)
  174753. .IP \(bu 2
  174754. 5c11fcde60 Merge pull request \fI\%#48002\fP from rallytime/bp\-47923
  174755. .IP \(bu 2
  174756. 9465e5f1e9 Use to_unicode from stringutils avoid deprecation warning
  174757. .IP \(bu 2
  174758. 73d33cbfc3 Prevent crash if files in file.recurse
  174759. .UNINDENT
  174760. .IP \(bu 2
  174761. \fBPR\fP \fI\%#48003\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174762. @ \fI2018\-06\-07 15:25:19 UTC\fP
  174763. .INDENT 2.0
  174764. .IP \(bu 2
  174765. 3d0a087c71 Merge pull request \fI\%#48003\fP from rallytime/merge\-2018.3
  174766. .IP \(bu 2
  174767. a6533a9332 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174768. .INDENT 2.0
  174769. .IP \(bu 2
  174770. 998a1c13d5 Merge pull request \fI\%#47966\fP from mbunkus/fix\-postfix\-prefix\-free\-key\-names\-assumption
  174771. .INDENT 2.0
  174772. .IP \(bu 2
  174773. 0ae402d1b5 Fix postfix.set_main\(aqs assumption of prefix\-free key names
  174774. .UNINDENT
  174775. .IP \(bu 2
  174776. df50ce7b1b Merge pull request \fI\%#47824\fP from twangboy/fix_setup.py
  174777. .INDENT 2.0
  174778. .IP \(bu 2
  174779. 4538b3abb3 Remove \(aqlen\-as\-condition\(aq disablement
  174780. .IP \(bu 2
  174781. d4efcc3c8b Skip lint errors
  174782. .IP \(bu 2
  174783. 1b3977f8d4 Remove m2crypto download for Windows
  174784. .UNINDENT
  174785. .IP \(bu 2
  174786. 3e91a31134 Merge pull request \fI\%#47922\fP from damon\-atkins/2017.7_win_pkg_keys_fix
  174787. .INDENT 2.0
  174788. .IP \(bu 2
  174789. 7129203b1b Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  174790. .UNINDENT
  174791. .IP \(bu 2
  174792. 8008fca2f6 Merge pull request \fI\%#47933\fP from terminalmage/add\-pillar.get\-docs
  174793. .INDENT 2.0
  174794. .IP \(bu 2
  174795. 4eb022b675 Clarify pillar.get docs
  174796. .UNINDENT
  174797. .IP \(bu 2
  174798. ab565bfaa3 Merge pull request \fI\%#47944\fP from terminalmage/fix\-git.detached\-docs
  174799. .INDENT 2.0
  174800. .IP \(bu 2
  174801. 1d082b4389 Replace use of deprecated argument name in git.detached docstring
  174802. .IP \(bu 2
  174803. 6253793cb6 Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  174804. .IP \(bu 2
  174805. 4ce0fe6546 win_pkg under py3 keys returns a view instead of a list, wrap keys in list()
  174806. .UNINDENT
  174807. .UNINDENT
  174808. .UNINDENT
  174809. .IP \(bu 2
  174810. \fBPR\fP \fI\%#48022\fP: (\fI\%morganwillcock\fP) win_wua state: fix function name in examples
  174811. @ \fI2018\-06\-07 15:03:52 UTC\fP
  174812. .INDENT 2.0
  174813. .IP \(bu 2
  174814. 0a05212f60 Merge pull request \fI\%#48022\fP from morganwillcock/patch\-1
  174815. .IP \(bu 2
  174816. 443f4d6f21 win_wua state: fix function name in examples
  174817. .UNINDENT
  174818. .IP \(bu 2
  174819. \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)
  174820. .IP \(bu 2
  174821. \fBPR\fP \fI\%#48015\fP: (\fI\%garethgreenaway\fP) [2018.3] more unicode nonsense in archive module
  174822. @ \fI2018\-06\-07 14:44:55 UTC\fP
  174823. .INDENT 2.0
  174824. .IP \(bu 2
  174825. 406efb161e Merge pull request \fI\%#48015\fP from garethgreenaway/47546_more_unicode_nonsense
  174826. .IP \(bu 2
  174827. f457f9cb84 Adding a test to ensure archive.list returns the right results when a tar file contains a file with unicode in its name.
  174828. .IP \(bu 2
  174829. 9af49bc595 Ensure member names are decoded before adding to various lists.
  174830. .UNINDENT
  174831. .IP \(bu 2
  174832. \fBISSUE\fP \fI\%#47955\fP: (\fI\%frogunder\fP) 2018.3.1 Creating Windows machine in Amazon using salt\-cloud fails. (refs: \fI\%#47989\fP)
  174833. .IP \(bu 2
  174834. \fBPR\fP \fI\%#47989\fP: (\fI\%dwoz\fP) Properly decode password from aws using m2crypto
  174835. @ \fI2018\-06\-06 20:44:28 UTC\fP
  174836. .INDENT 2.0
  174837. .IP \(bu 2
  174838. 1ce7d6c38a Merge pull request \fI\%#47989\fP from dwoz/awscloud
  174839. .IP \(bu 2
  174840. 23ab2727be Fix linter errors
  174841. .IP \(bu 2
  174842. 6c8daa2b85 Properly decode password from aws using m2crypto
  174843. .UNINDENT
  174844. .IP \(bu 2
  174845. \fBPR\fP \fI\%#47976\fP: (\fI\%terminalmage\fP) Capture and log output of processes that timed out and were killed
  174846. @ \fI2018\-06\-06 19:17:08 UTC\fP
  174847. .INDENT 2.0
  174848. .IP \(bu 2
  174849. 76068c83f5 Merge pull request \fI\%#47976\fP from terminalmage/salt\-jenkins\-1000
  174850. .IP \(bu 2
  174851. 41e5a75027 Add catch_timeout to run_script
  174852. .IP \(bu 2
  174853. 551ada8e4d Capture and log output of processes that timed out and were killed
  174854. .UNINDENT
  174855. .IP \(bu 2
  174856. \fBPR\fP \fI\%#47990\fP: (\fI\%terminalmage\fP) Docs fixes in 2018.3 release branch
  174857. @ \fI2018\-06\-06 17:15:17 UTC\fP
  174858. .INDENT 2.0
  174859. .IP \(bu 2
  174860. f12a52736e Merge pull request \fI\%#47990\fP from terminalmage/2018.3\-docs
  174861. .IP \(bu 2
  174862. f89d2ccd30 Clean up Sphinx warnings
  174863. .IP \(bu 2
  174864. f5fc936865 Add clarifying comment so that we don\(aqt break this
  174865. .IP \(bu 2
  174866. 94849780ac fix docs build error due to IndexError
  174867. .UNINDENT
  174868. .IP \(bu 2
  174869. \fBPR\fP \fI\%#47982\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_dns_client\fP tests
  174870. @ \fI2018\-06\-06 15:02:10 UTC\fP
  174871. .INDENT 2.0
  174872. .IP \(bu 2
  174873. 9d56af3cad Merge pull request \fI\%#47982\fP from twangboy/fix_test_win_dns_client
  174874. .IP \(bu 2
  174875. 2dcdf6788c Force string to ModuleType
  174876. .UNINDENT
  174877. .IP \(bu 2
  174878. \fBPR\fP \fI\%#47985\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_reg\fP test failure
  174879. @ \fI2018\-06\-06 14:56:03 UTC\fP
  174880. .INDENT 2.0
  174881. .IP \(bu 2
  174882. 1b4c72345b Merge pull request \fI\%#47985\fP from twangboy/fix_test_reg
  174883. .IP \(bu 2
  174884. 4ce551811f Remove the unnecessary \fIto_unicode\fP stuff
  174885. .IP \(bu 2
  174886. 863ded39fa Mock \fIreg.cast_vdata\fP
  174887. .UNINDENT
  174888. .IP \(bu 2
  174889. \fBISSUE\fP \fI\%#47236\fP: (\fI\%MorphBonehunter\fP) x509.private_key_managed broken after upgrade to 2018.3.0 (refs: \fI\%#47957\fP)
  174890. .IP \(bu 2
  174891. \fBPR\fP \fI\%#47957\fP: (\fI\%garethgreenaway\fP) [2018.8] Ensure x509 passphrase is a string
  174892. @ \fI2018\-06\-05 13:27:33 UTC\fP
  174893. .INDENT 2.0
  174894. .IP \(bu 2
  174895. 84100570f7 Merge pull request \fI\%#47957\fP from garethgreenaway/47236_ensure_passphrase_is_a_string
  174896. .IP \(bu 2
  174897. 99bad3cca6 removing unnecessary change
  174898. .IP \(bu 2
  174899. e22df8473d Ensuring that when a passphrase is passed in, it is returned as a string from the passphrase callback.
  174900. .INDENT 2.0
  174901. .INDENT 3.5
  174902. .INDENT 0.0
  174903. .IP \(bu 2
  174904. d0cf06a24d Make sure we set the effective environment when lock_saltenv is True
  174905. .INDENT 2.0
  174906. .INDENT 3.5
  174907. .INDENT 0.0
  174908. .IP \(bu 2
  174909. 8da6ce45dc Finish the docstring for git.cloned state
  174910. .IP \(bu 2
  174911. 4a8260a5e5 Add tests for git.cloned state
  174912. .IP \(bu 2
  174913. 311179da05 Add git.cloned state
  174914. .UNINDENT
  174915. .UNINDENT
  174916. .UNINDENT
  174917. .UNINDENT
  174918. .UNINDENT
  174919. .UNINDENT
  174920. .UNINDENT
  174921. .IP \(bu 2
  174922. \fBPR\fP \fI\%#47926\fP: (\fI\%dmurphy18\fP) Backport of PR 47808 to 2018.3, improved grains support for AIX
  174923. @ \fI2018\-06\-04 19:31:24 UTC\fP
  174924. .INDENT 2.0
  174925. .IP \(bu 2
  174926. \fBPR\fP \fI\%#47808\fP: (\fI\%dmurphy18\fP) Updated AIX support for grains reported (refs: \fI\%#47926\fP)
  174927. .IP \(bu 2
  174928. c355da9e0d Merge pull request \fI\%#47926\fP from dmurphy18/backport_pr47808
  174929. .IP \(bu 2
  174930. ac15d2093a Backport of PR 47808 to 2018.3, improved grains support for AIX
  174931. .UNINDENT
  174932. .IP \(bu 2
  174933. \fBPR\fP \fI\%#47927\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174934. @ \fI2018\-06\-04 18:55:12 UTC\fP
  174935. .INDENT 2.0
  174936. .IP \(bu 2
  174937. a46e42ab11 Merge pull request \fI\%#47927\fP from rallytime/merge\-2018.3
  174938. .IP \(bu 2
  174939. 5baab66f4b Lint: Whitespace fix
  174940. .IP \(bu 2
  174941. 7e1d278d19 Update old utils paths to use new utils paths
  174942. .IP \(bu 2
  174943. 3273bbdab7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174944. .INDENT 2.0
  174945. .IP \(bu 2
  174946. a2b588299b Merge pull request \fI\%#47860\fP from terminalmage/state\-writing\-docs
  174947. .INDENT 2.0
  174948. .IP \(bu 2
  174949. 8cb33d3dec Quiet the linter
  174950. .IP \(bu 2
  174951. af51e16f23 Use more elegant RST syntax
  174952. .IP \(bu 2
  174953. 91cd57d1e0 Update mocking to reflect changes in service module
  174954. .IP \(bu 2
  174955. b9ace5a859 Fix crappy mocking
  174956. .IP \(bu 2
  174957. bc9e3acef3 Lint fixes
  174958. .IP \(bu 2
  174959. d37f7e4f04 Add 2017.7.6 release notes
  174960. .IP \(bu 2
  174961. 9dddeeefab Improve documentation on syncing states
  174962. .IP \(bu 2
  174963. f465fa3ca7 Add best practices docs for writing states
  174964. .IP \(bu 2
  174965. 93ee5ee2b0 Fix all Sphinx warnings
  174966. .IP \(bu 2
  174967. 64b9b4d0b8 Clarify that name would override the id declaration
  174968. .UNINDENT
  174969. .IP \(bu 2
  174970. d2f3377b5b Merge pull request \fI\%#47877\fP from dwoz/sleep_audit
  174971. .INDENT 2.0
  174972. .IP \(bu 2
  174973. ebc7cde9cb Revert job chunk wait time change
  174974. .UNINDENT
  174975. .IP \(bu 2
  174976. 735e92093e Merge pull request \fI\%#47917\fP from dwoz/winsuite
  174977. .INDENT 2.0
  174978. .IP \(bu 2
  174979. 118601ebd6 Fix windows tests suite breakage
  174980. .UNINDENT
  174981. .IP \(bu 2
  174982. 63efb76d51 Merge pull request \fI\%#47822\fP from Ch3LL/win_user_test
  174983. .INDENT 2.0
  174984. .IP \(bu 2
  174985. 3a691b405f add user_home path for both windows and linux
  174986. .IP \(bu 2
  174987. 788abf771e Add user state integration tests to windows
  174988. .UNINDENT
  174989. .IP \(bu 2
  174990. b9da4f1221 Merge pull request \fI\%#47876\fP from doesitblend/add\-file\-read\-windows
  174991. .INDENT 2.0
  174992. .IP \(bu 2
  174993. 3f7e7ec327 Add file.read function to Windows module
  174994. .UNINDENT
  174995. .IP \(bu 2
  174996. cbe2ecfae8 Merge pull request \fI\%#47882\fP from frogunder/45013
  174997. .INDENT 2.0
  174998. .IP \(bu 2
  174999. 38d114a2d2 add whoami test
  175000. .UNINDENT
  175001. .UNINDENT
  175002. .UNINDENT
  175003. .IP \(bu 2
  175004. \fBPR\fP \fI\%#47931\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47913\fP to 2018.3
  175005. @ \fI2018\-06\-04 14:39:16 UTC\fP
  175006. .INDENT 2.0
  175007. .IP \(bu 2
  175008. \fBPR\fP \fI\%#47913\fP: (\fI\%rares\-pop\fP) Fixup! beacons/avahi_announce.py finding grains (refs: \fI\%#47931\fP)
  175009. .IP \(bu 2
  175010. 4db1f8c603 Merge pull request \fI\%#47931\fP from rallytime/bp\-47913
  175011. .IP \(bu 2
  175012. c51e732f4d Fixup! beacons/avahi_announce.py finding grains
  175013. .UNINDENT
  175014. .IP \(bu 2
  175015. \fBPR\fP \fI\%#47930\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47725\fP to 2018.3
  175016. @ \fI2018\-06\-04 14:38:58 UTC\fP
  175017. .INDENT 2.0
  175018. .IP \(bu 2
  175019. \fBPR\fP \fI\%#47725\fP: (\fI\%bbczeuz\fP) network_settings beacon: Update example to follow new cfg convention (refs: \fI\%#47930\fP)
  175020. .IP \(bu 2
  175021. d05a6c70d3 Merge pull request \fI\%#47930\fP from rallytime/bp\-47725
  175022. .IP \(bu 2
  175023. 5c666409f3 Spelling fix
  175024. .IP \(bu 2
  175025. cfe0a5bb42 network_settings: Fix doc using new list/dict syntax
  175026. .UNINDENT
  175027. .IP \(bu 2
  175028. \fBPR\fP \fI\%#47557\fP: (\fI\%L4rS6\fP) fix broken rabbitmq list policies in rabbitmq version 3.7
  175029. @ \fI2018\-06\-04 13:25:07 UTC\fP
  175030. .INDENT 2.0
  175031. .IP \(bu 2
  175032. 484d83014b Merge pull request \fI\%#47557\fP from L4rS6/fix\-broken\-rabbitmq\-list\-policies
  175033. .IP \(bu 2
  175034. 6d7ef27557 Merge branch \(aq2018.3\(aq into fix\-broken\-rabbitmq\-list\-policies
  175035. .IP \(bu 2
  175036. e043ea2833 refactored list_policies code and added more tests
  175037. .IP \(bu 2
  175038. eea81feb7b fix broken rabbitmq list policies in rabbitmq version 3.7
  175039. .UNINDENT
  175040. .IP \(bu 2
  175041. \fBPR\fP \fI\%#47949\fP: (\fI\%terminalmage\fP) Continued troubleshooting on salt\-jenkins 1000
  175042. @ \fI2018\-06\-04 13:17:14 UTC\fP
  175043. .INDENT 2.0
  175044. .IP \(bu 2
  175045. 866a2fbf5e Merge pull request \fI\%#47949\fP from terminalmage/salt\-jenkins\-1000
  175046. .IP \(bu 2
  175047. 9c369c6aa8 Remove temp logging from test
  175048. .IP \(bu 2
  175049. af02d5ba7b Add result logging to run_script, make returns DRY
  175050. .UNINDENT
  175051. .IP \(bu 2
  175052. \fBPR\fP \fI\%#47941\fP: (\fI\%terminalmage\fP) Update test logging for salt\-jenkins
  175053. @ \fI2018\-06\-03 02:40:56 UTC\fP
  175054. .INDENT 2.0
  175055. .IP \(bu 2
  175056. 0b85d1273f Merge pull request \fI\%#47941\fP from terminalmage/salt\-jenkins\-1000
  175057. .IP \(bu 2
  175058. fb66368af9 Update test logging for salt\-jenkins 1000
  175059. .UNINDENT
  175060. .IP \(bu 2
  175061. \fBPR\fP \fI\%#47924\fP: (\fI\%Ch3LL\fP) Catch all exceptions in git import for salt.utils.gitfs
  175062. @ \fI2018\-06\-01 21:06:58 UTC\fP
  175063. .INDENT 2.0
  175064. .IP \(bu 2
  175065. 58b5f2b4dd Merge pull request \fI\%#47924\fP from Ch3LL/mac_gitpy
  175066. .IP \(bu 2
  175067. 75c51ad69b Catch all exceptions in git import for salt.utils.gitfs
  175068. .UNINDENT
  175069. .IP \(bu 2
  175070. \fBISSUE\fP \fI\%#47269\fP: (\fI\%isdig\fP) Reopen Windows Minion That Has IAM Role Cannot Access to S3 (refs: \fI\%#47879\fP)
  175071. .IP \(bu 2
  175072. \fBPR\fP \fI\%#47879\fP: (\fI\%dwoz\fP) Fix ami role usage warts \fI\%#47269\fP
  175073. @ \fI2018\-06\-01 14:11:55 UTC\fP
  175074. .INDENT 2.0
  175075. .IP \(bu 2
  175076. b88ec5258d Merge pull request \fI\%#47879\fP from dwoz/ami_role_fix
  175077. .IP \(bu 2
  175078. 3884c2cf5f Fix ami role usage warts \fI\%#47269\fP
  175079. .UNINDENT
  175080. .IP \(bu 2
  175081. \fBPR\fP \fI\%#47788\fP: (\fI\%twangboy\fP) Use pytz to calculate timezones
  175082. @ \fI2018\-05\-31 18:33:20 UTC\fP
  175083. .INDENT 2.0
  175084. .IP \(bu 2
  175085. b09596982b Merge pull request \fI\%#47788\fP from twangboy/fix_47559
  175086. .IP \(bu 2
  175087. 0d229c6182 Merge branch \(aq2018.3\(aq into fix_47559
  175088. .IP \(bu 2
  175089. 9e612ec9e7 Fix markup in release notes
  175090. .IP \(bu 2
  175091. 60499d18f0 Skip test if pytz not present
  175092. .IP \(bu 2
  175093. 72cc361c7b Move pytz to 3rd party import, add to __virtual__
  175094. .IP \(bu 2
  175095. b8a6488688 Update __virtual__ function
  175096. .IP \(bu 2
  175097. 9923176b68 Use __utils__, fix unit tests
  175098. .IP \(bu 2
  175099. 73e033f555 Return offset in the same format as Unix
  175100. .IP \(bu 2
  175101. 5656183c5e Add timezone.list, add 2018.3.2 release notes
  175102. .IP \(bu 2
  175103. 986f6c9b2a Use pytz to calculate timezones
  175104. .UNINDENT
  175105. .IP \(bu 2
  175106. \fBPR\fP \fI\%#47899\fP: (\fI\%terminalmage\fP) salt\-jenkins issue 1000
  175107. @ \fI2018\-05\-31 18:24:49 UTC\fP
  175108. .INDENT 2.0
  175109. .IP \(bu 2
  175110. ae73cb3947 Merge pull request \fI\%#47899\fP from terminalmage/salt\-jenkins\-1000
  175111. .IP \(bu 2
  175112. 25afc932f7 WIP salt\-jenkins issue 1000
  175113. .UNINDENT
  175114. .IP \(bu 2
  175115. \fBPR\fP \fI\%#47753\fP: (\fI\%Ch3LL\fP) Add stderr launchctl helper class and fix service mac tests
  175116. @ \fI2018\-05\-31 18:16:57 UTC\fP
  175117. .INDENT 2.0
  175118. .IP \(bu 2
  175119. 8f78e3aef6 Merge pull request \fI\%#47753\fP from Ch3LL/service_mac
  175120. .IP \(bu 2
  175121. 185c9e9ae2 only stop service if its running
  175122. .IP \(bu 2
  175123. e15e674955 Add stderr launchctl helper class and fix service mac tests
  175124. .UNINDENT
  175125. .IP \(bu 2
  175126. \fBPR\fP \fI\%#47908\fP: (\fI\%meaksh\fP) Align SUSE salt\-master.service \(aqLimitNOFILES\(aq limit with upstream Salt
  175127. @ \fI2018\-05\-31 18:13:27 UTC\fP
  175128. .INDENT 2.0
  175129. .IP \(bu 2
  175130. 828bf39695 Merge pull request \fI\%#47908\fP from meaksh/2018.3\-align\-suse\-salt\-master\-service
  175131. .IP \(bu 2
  175132. efe308013a Align SUSE salt\-master.service \(aqLimitNOFILES\(aq limit with upstream Salt
  175133. .UNINDENT
  175134. .IP \(bu 2
  175135. \fBPR\fP \fI\%#47868\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  175136. @ \fI2018\-05\-30 21:20:38 UTC\fP
  175137. .INDENT 2.0
  175138. .IP \(bu 2
  175139. b4bac9b41b Merge pull request \fI\%#47868\fP from rallytime/merge\-2018.3
  175140. .IP \(bu 2
  175141. e5d386e91c Update solaris core grains test
  175142. .IP \(bu 2
  175143. 267f09c1a0 Lint: Remove unused import
  175144. .IP \(bu 2
  175145. 120ee16b70 Replace old utils paths with new utils paths
  175146. .IP \(bu 2
  175147. dc32b67c03 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  175148. .INDENT 2.0
  175149. .IP \(bu 2
  175150. 4b28e510f1 Merge pull request \fI\%#47853\fP from dwoz/py3\-cloud\-test
  175151. .INDENT 2.0
  175152. .IP \(bu 2
  175153. c2f8aef7c5 Fix for py3 ec2 cloud tests
  175154. .UNINDENT
  175155. .IP \(bu 2
  175156. 215efa6b73 Merge pull request \fI\%#47847\fP from garethgreenaway/47833_reactor_runner_documentation
  175157. .INDENT 2.0
  175158. .IP \(bu 2
  175159. 03676712de Adding some addition documentation to the reactor runner indicating that the reactor system must be active prior to using it.
  175160. .UNINDENT
  175161. .IP \(bu 2
  175162. 0bf651b470 Merge pull request \fI\%#47846\fP from Ch3LL/p_refresh_test
  175163. .INDENT 2.0
  175164. .IP \(bu 2
  175165. 019edad8e4 Fix flaky refresh pillar integration test
  175166. .UNINDENT
  175167. .IP \(bu 2
  175168. 799fce979d Merge pull request \fI\%#47552\fP from twangboy/fix_46981
  175169. .INDENT 2.0
  175170. .IP \(bu 2
  175171. cffc9b7806 Merge branch \(aq2017.7\(aq into fix_46981
  175172. .IP \(bu 2
  175173. 81308a4a44 Add release notes for 2017.7.7
  175174. .IP \(bu 2
  175175. 008af0ac6b Fix unit tests
  175176. .IP \(bu 2
  175177. 87097eefb6 Add comments about how get is returning data
  175178. .IP \(bu 2
  175179. f1f1bfc5c1 Show GPO settings, raise error if trying to set gpo managed settings
  175180. .UNINDENT
  175181. .IP \(bu 2
  175182. ffc2ebc373 Merge pull request \fI\%#47691\fP from lomeroe/solaris_product_grains
  175183. .INDENT 2.0
  175184. .IP \(bu 2
  175185. 6889befc6b Merge branch \(aq2017.7\(aq into solaris_product_grains
  175186. .IP \(bu 2
  175187. 49053bc106 lint fix
  175188. .IP \(bu 2
  175189. 6f185c9179 another lint fix
  175190. .IP \(bu 2
  175191. dbffba6876 fix tons of errors in my tests
  175192. .IP \(bu 2
  175193. 8c9355d34c Lint fix
  175194. .IP \(bu 2
  175195. 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.
  175196. .UNINDENT
  175197. .IP \(bu 2
  175198. 96b7c0cc76 Merge pull request \fI\%#47778\fP from Ch3LL/win_state_pkg
  175199. .INDENT 2.0
  175200. .IP \(bu 2
  175201. e1786de6b0 Merge branch \(aq2017.7\(aq into win_state_pkg
  175202. .IP \(bu 2
  175203. f8c467d3e6 Fix text editor error
  175204. .IP \(bu 2
  175205. 872e162137 Add test_pkg integration state tests to windows
  175206. .UNINDENT
  175207. .IP \(bu 2
  175208. 6f934c2259 Merge pull request \fI\%#47823\fP from Ch3LL/win_dns_test
  175209. .INDENT 2.0
  175210. .IP \(bu 2
  175211. 7848114d6a Add win_dns module integration tests for windows
  175212. .UNINDENT
  175213. .IP \(bu 2
  175214. e63e04602d Merge pull request \fI\%#47838\fP from rallytime/bp\-47810
  175215. .INDENT 2.0
  175216. .IP \(bu 2
  175217. bd2b62fa66 better debug message
  175218. .IP \(bu 2
  175219. 83565c55df Address PR feedback
  175220. .IP \(bu 2
  175221. 50bce3a2f3 make decode_linode_plan_label a private function
  175222. .IP \(bu 2
  175223. 2ba4fc4cea fix raising when a \(aqGB\(aq format invalid plan is supplied
  175224. .IP \(bu 2
  175225. 3afb50d5a2 slight cleanup
  175226. .IP \(bu 2
  175227. 319fbd3406 match quotation mark types properly
  175228. .IP \(bu 2
  175229. 95e0202223 more consistent use of parens in logged warning
  175230. .IP \(bu 2
  175231. f52926ca87 log a warning when the user supplied a label we could decode but was not in the proper format
  175232. .IP \(bu 2
  175233. 121303d827 reduce complexity of get_plan_id by moving decoding of the user\-supplied label to its own function
  175234. .IP \(bu 2
  175235. cf534c7314 Fix Linode plan selection
  175236. .UNINDENT
  175237. .IP \(bu 2
  175238. 9ef6e60617 Merge pull request \fI\%#47805\fP from twangboy/add_sign.bat
  175239. .INDENT 2.0
  175240. .IP \(bu 2
  175241. 66d8b0331a Add sign.bat script for signing packages
  175242. .UNINDENT
  175243. .IP \(bu 2
  175244. 93420950d3 Merge pull request \fI\%#47500\fP from dwoz/winuser
  175245. .INDENT 2.0
  175246. .IP \(bu 2
  175247. 0ca5224cbf Merge branch \(aq2017.7\(aq into winuser
  175248. .IP \(bu 2
  175249. e5948902af Use salt utils method for this_user
  175250. .IP \(bu 2
  175251. a056a293f1 Centeralize test username lookup
  175252. .IP \(bu 2
  175253. 6a6ab69722 Get the current username on windows
  175254. .UNINDENT
  175255. .IP \(bu 2
  175256. 552526f309 Merge pull request \fI\%#47802\fP from rallytime/bp\-40892
  175257. .INDENT 2.0
  175258. .IP \(bu 2
  175259. bb357da084 add minion function to reload beacon \fI\%#35960\fP
  175260. .UNINDENT
  175261. .IP \(bu 2
  175262. c9cccf53b9 Merge pull request \fI\%#47816\fP from Ch3LL/disable_windows
  175263. .INDENT 2.0
  175264. .IP \(bu 2
  175265. 2509d36888 Add windows to service disable ERROR check in tests
  175266. .UNINDENT
  175267. .IP \(bu 2
  175268. 2cb6634c6b Merge pull request \fI\%#47773\fP from frogunder/45011
  175269. .INDENT 2.0
  175270. .IP \(bu 2
  175271. 7c9b0bda33 add win_servermanager.list_available test
  175272. .UNINDENT
  175273. .IP \(bu 2
  175274. e65dece202 Merge pull request \fI\%#47807\fP from dwoz/winrmtests
  175275. .INDENT 2.0
  175276. .IP \(bu 2
  175277. 1f1cc1357a Increase instance size for cloud tests
  175278. .IP \(bu 2
  175279. be8dcd21f1 Try an even bigger timeout
  175280. .UNINDENT
  175281. .UNINDENT
  175282. .UNINDENT
  175283. .IP \(bu 2
  175284. \fBPR\fP \fI\%#47900\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175285. @ \fI2018\-05\-30 18:09:41 UTC\fP
  175286. .INDENT 2.0
  175287. .IP \(bu 2
  175288. 21550dbd2d Merge pull request \fI\%#47900\fP from rallytime/merge\-2018.3.1\-to\-2018.3
  175289. .IP \(bu 2
  175290. 2801eecb26 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175291. .UNINDENT
  175292. .IP \(bu 2
  175293. \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)
  175294. .IP \(bu 2
  175295. \fBPR\fP \fI\%#47843\fP: (\fI\%garethgreenaway\fP) [2018.3] orchestration results False when function is False (refs: \fI\%#47983\fP)
  175296. @ \fI2018\-05\-30 17:21:54 UTC\fP
  175297. .INDENT 2.0
  175298. .IP \(bu 2
  175299. a0bf565741 Merge pull request \fI\%#47843\fP from garethgreenaway/30367_orch_return_false_when_function_fails
  175300. .IP \(bu 2
  175301. 09242697b8 Merge branch \(aq2018.3\(aq into 30367_orch_return_false_when_function_fails
  175302. .UNINDENT
  175303. .IP \(bu 2
  175304. \fBPR\fP \fI\%#47866\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47814\fP to 2018.3
  175305. @ \fI2018\-05\-29 19:55:24 UTC\fP
  175306. .INDENT 2.0
  175307. .IP \(bu 2
  175308. \fBPR\fP \fI\%#47814\fP: (\fI\%travispaul\fP) Bugfixes and unit tests for pkgin module (refs: \fI\%#47866\fP)
  175309. .IP \(bu 2
  175310. da6f7a5538 Merge pull request \fI\%#47866\fP from rallytime/bp\-47814
  175311. .IP \(bu 2
  175312. d50c0ab96b Lint test_pkgin.py
  175313. .IP \(bu 2
  175314. 4dac0b4a31 pkgin latest_version bugfix
  175315. .IP \(bu 2
  175316. 4ae0313797 Bugfixes and unit tests for pkgin module
  175317. .UNINDENT
  175318. .IP \(bu 2
  175319. \fBPR\fP \fI\%#47865\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47600\fP to 2018.3
  175320. @ \fI2018\-05\-29 19:54:44 UTC\fP
  175321. .INDENT 2.0
  175322. .IP \(bu 2
  175323. \fBPR\fP \fI\%#47600\fP: (\fI\%travispaul\fP) Prevent crash on NetBSD and OpenBSD when no swap is configured. (refs: \fI\%#47865\fP)
  175324. .IP \(bu 2
  175325. d9e7f2b5b1 Merge pull request \fI\%#47865\fP from rallytime/bp\-47600
  175326. .IP \(bu 2
  175327. f9f464fa51 Prevent crash on NetBSD and OpenBSD when no swap is configured.
  175328. .UNINDENT
  175329. .IP \(bu 2
  175330. \fBPR\fP \fI\%#47221\fP: (\fI\%azelezni\fP) Fix boto_ec2 unused parameter "network_interfaces"
  175331. @ \fI2018\-05\-29 14:41:35 UTC\fP
  175332. .INDENT 2.0
  175333. .IP \(bu 2
  175334. 61561a8279 Merge pull request \fI\%#47221\fP from azelezni/fix\-boto_ec2\-network_interfaces
  175335. .IP \(bu 2
  175336. 03ee0023eb Fix unused network_interfaces parameter
  175337. .IP \(bu 2
  175338. 1ece61ddfa Fix unused network_interfaces parameter
  175339. .IP \(bu 2
  175340. 3e074be9c3 Fixing lint
  175341. .IP \(bu 2
  175342. 02609b6e61 Adding state files for new test.
  175343. .IP \(bu 2
  175344. 377e34c689 Updating function in saltmod to ensure that the result is a failure if the function being run returns as False.
  175345. .UNINDENT
  175346. .IP \(bu 2
  175347. \fBPR\fP \fI\%#47850\fP: (\fI\%rallytime\fP) Fix autodoc for new swarm module
  175348. @ \fI2018\-05\-26 01:53:16 UTC\fP
  175349. .INDENT 2.0
  175350. .IP \(bu 2
  175351. c4d828c986 Merge pull request \fI\%#47850\fP from rallytime/swarm\-autodoc
  175352. .IP \(bu 2
  175353. 467c8fa45c Fix autodoc for new swarm module
  175354. .UNINDENT
  175355. .IP \(bu 2
  175356. \fBPR\fP \fI\%#47800\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  175357. @ \fI2018\-05\-26 01:17:40 UTC\fP
  175358. .INDENT 2.0
  175359. .IP \(bu 2
  175360. 30b31c5db5 Merge pull request \fI\%#47800\fP from rallytime/merge\-2018.3
  175361. .IP \(bu 2
  175362. 9e3ce39e8c Typo: test_type \-\-> text_type
  175363. .IP \(bu 2
  175364. 8877489386 Fix bad merge caught by test in zpool state
  175365. .IP \(bu 2
  175366. c328450be2 Update old utils paths to new paths
  175367. .IP \(bu 2
  175368. 4abfd26e86 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  175369. .INDENT 2.0
  175370. .IP \(bu 2
  175371. 46618d2ce7 Merge pull request \fI\%#47765\fP from meaksh/2017.7\-fix\-zypper\-error\-reading\-repo
  175372. .INDENT 2.0
  175373. .IP \(bu 2
  175374. 4475ba19b8 Prevent zypper from parsing repo configuration from not .repo files
  175375. .UNINDENT
  175376. .IP \(bu 2
  175377. 0e87559ee3 Merge pull request \fI\%#47781\fP from rallytime/update\-linode\-sizes
  175378. .INDENT 2.0
  175379. .IP \(bu 2
  175380. a90c1b760e Update cloud test profile and docs to use new Linode size lables
  175381. .UNINDENT
  175382. .IP \(bu 2
  175383. 3ddc56cb9b Merge pull request \fI\%#47748\fP from rallytime/merge\-2017.7
  175384. .INDENT 2.0
  175385. .IP \(bu 2
  175386. b75f5ae38e Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175387. .INDENT 2.0
  175388. .IP \(bu 2
  175389. edf94c915e Merge pull request \fI\%#47775\fP from gtmanfred/2017.7.6
  175390. .INDENT 2.0
  175391. .IP \(bu 2
  175392. 548f65d056 catch UnsupportedOperation with AssertionError
  175393. .UNINDENT
  175394. .UNINDENT
  175395. .IP \(bu 2
  175396. 17596f3025 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175397. .INDENT 2.0
  175398. .IP \(bu 2
  175399. 8c38ecd75f Merge pull request \fI\%#47769\fP from gtmanfred/2017.7.6
  175400. .INDENT 2.0
  175401. .IP \(bu 2
  175402. 3fdfc0fa82 skip test that breaks test suite
  175403. .UNINDENT
  175404. .UNINDENT
  175405. .IP \(bu 2
  175406. e458f4a031 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175407. .INDENT 2.0
  175408. .IP \(bu 2
  175409. 0d5b473ce2 Merge pull request \fI\%#47747\fP from Ch3LL/rn_2017.7.6
  175410. .INDENT 2.0
  175411. .IP \(bu 2
  175412. d4aa83b92d Add changelog to 2017.7.6 release notes
  175413. .UNINDENT
  175414. .IP \(bu 2
  175415. 8a5b34f7d9 Merge pull request \fI\%#47702\fP from damon\-atkins/2017.7.6_fix_pkg.latest_state
  175416. .INDENT 2.0
  175417. .IP \(bu 2
  175418. adcc094e08 Merge branch \(aq2017.7.6\(aq into 2017.7.6_fix_pkg.latest_state
  175419. .UNINDENT
  175420. .IP \(bu 2
  175421. d610c192d9 Merge pull request \fI\%#47700\fP from yannj\-fr/2017.7.6
  175422. .INDENT 2.0
  175423. .IP \(bu 2
  175424. 961c1ef61e fix roots modification time check
  175425. .INDENT 2.0
  175426. .IP \(bu 2
  175427. 2a73e905df Merge branch \(aq2017.7.6\(aq into 2017.7.6
  175428. .UNINDENT
  175429. .UNINDENT
  175430. .IP \(bu 2
  175431. 266749420f Merge pull request \fI\%#47632\fP from gtmanfred/2017.7.6
  175432. .INDENT 2.0
  175433. .IP \(bu 2
  175434. 2c50c0d2f5 fix pylint
  175435. .IP \(bu 2
  175436. 4a29057b16 Fix last test for tornado
  175437. .IP \(bu 2
  175438. 550ef2e272 allow using tornado 5.0
  175439. .IP \(bu 2
  175440. 62e468448b handle new _create_stream in tornado 5.0
  175441. .UNINDENT
  175442. .IP \(bu 2
  175443. 2643c356af Merge pull request \fI\%#47720\fP from rallytime/bp\-47692\-2017.7.6
  175444. .INDENT 2.0
  175445. .IP \(bu 2
  175446. 6e5cb36839 Default windows to m1.small for ec2\-classic
  175447. .INDENT 2.0
  175448. .IP \(bu 2
  175449. 20d9785244 fix roots modification time check
  175450. .UNINDENT
  175451. .IP \(bu 2
  175452. aef37dd1ce fix roots modification time check
  175453. .IP \(bu 2
  175454. d51662e053 Ensure targeted_pkgs always contains value for non\-windows.
  175455. .IP \(bu 2
  175456. 83b4224cf8 Adjusted based on feed back.
  175457. .IP \(bu 2
  175458. 12f983ce9f Whitespace lint issues
  175459. .IP \(bu 2
  175460. 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
  175461. .UNINDENT
  175462. .UNINDENT
  175463. .UNINDENT
  175464. .IP \(bu 2
  175465. 0ddc864f90 Merge pull request \fI\%#47779\fP from dwoz/winrmtests
  175466. .INDENT 2.0
  175467. .IP \(bu 2
  175468. d5eafe9d53 Use common timeout variable
  175469. .IP \(bu 2
  175470. 7e948eb540 Increase ec2 cloud timeouts to 1000
  175471. .UNINDENT
  175472. .IP \(bu 2
  175473. 17c4c8443c Merge pull request \fI\%#47430\fP from baniobloom/vpc_association_not_found
  175474. .INDENT 2.0
  175475. .IP \(bu 2
  175476. 0f1d007f91 added catch for VPCAssociationNotFound
  175477. .UNINDENT
  175478. .IP \(bu 2
  175479. 9c5dde1449 Merge pull request \fI\%#47525\fP from baniobloom/duplicate_sec_group_rule
  175480. .INDENT 2.0
  175481. .IP \(bu 2
  175482. dcc35df489 if we are trying to add the same rule then we are already in the desired state, return true
  175483. .UNINDENT
  175484. .IP \(bu 2
  175485. 536ce2fa42 Merge pull request \fI\%#47772\fP from gtmanfred/2017.7
  175486. .INDENT 2.0
  175487. .IP \(bu 2
  175488. 67756a50fd lock down dependencies for kitchen\-salt
  175489. .UNINDENT
  175490. .IP \(bu 2
  175491. 12b330f049 Merge pull request \fI\%#47749\fP from terminalmage/issue47717
  175492. .INDENT 2.0
  175493. .IP \(bu 2
  175494. cd484bef69 Fix "dnf list upgrades" parsing
  175495. .UNINDENT
  175496. .IP \(bu 2
  175497. 5cd18b9e70 Merge pull request \fI\%#47755\fP from dwoz/winrmtests
  175498. .INDENT 2.0
  175499. .IP \(bu 2
  175500. 57dd89e6c3 Default to ec2 classic compatible images
  175501. .IP \(bu 2
  175502. f89668920a Be explicit about winrm setting
  175503. .UNINDENT
  175504. .IP \(bu 2
  175505. f45a96ba1d Merge pull request \fI\%#47668\fP from Ch3LL/win_pkg_test
  175506. .INDENT 2.0
  175507. .IP \(bu 2
  175508. a8981024de Add pkg.latest_version windows test
  175509. .UNINDENT
  175510. .IP \(bu 2
  175511. 7b12444dfa Merge pull request \fI\%#47750\fP from dwoz/cloudtest
  175512. .INDENT 2.0
  175513. .IP \(bu 2
  175514. 63b722ba21 Allow ssh_interface to default to public_ips
  175515. .UNINDENT
  175516. .IP \(bu 2
  175517. 27fbb42210 Merge pull request \fI\%#47737\fP from dwoz/win_timeout
  175518. .INDENT 2.0
  175519. .IP \(bu 2
  175520. e88833a07d Cloud test fixup
  175521. .UNINDENT
  175522. .IP \(bu 2
  175523. 1a93f060fb Merge pull request \fI\%#47729\fP from UtahDave/fix_get_info_doc
  175524. .INDENT 2.0
  175525. .IP \(bu 2
  175526. 443a2d72a2 fix cli example to match function name
  175527. .UNINDENT
  175528. .IP \(bu 2
  175529. 00a13761c7 Merge pull request \fI\%#47682\fP from terminalmage/issue47182
  175530. .INDENT 2.0
  175531. .IP \(bu 2
  175532. d0243e8f23 Suppress spurious lint failure
  175533. .IP \(bu 2
  175534. 3b449f11fc Add regression test for excludes issue
  175535. .IP \(bu 2
  175536. 28a7d2b81c Skip __exclude__ in find_sls_ids
  175537. .UNINDENT
  175538. .IP \(bu 2
  175539. 518f7bcc62 Merge pull request \fI\%#47708\fP from darkpixel/47696\-do\-not\-enumerate\-none
  175540. .INDENT 2.0
  175541. .IP \(bu 2
  175542. 54e9bf9ec9 Merge branch \(aq2017.7\(aq into 47696\-do\-not\-enumerate\-none
  175543. .UNINDENT
  175544. .IP \(bu 2
  175545. cad062eaa7 Merge pull request \fI\%#47681\fP from rallytime/merge\-2017.7
  175546. .INDENT 2.0
  175547. .IP \(bu 2
  175548. 6c06cb3ae3 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175549. .UNINDENT
  175550. .IP \(bu 2
  175551. fd2d45d9c2 Merge pull request \fI\%#47683\fP from Ch3LL/mac_user_test
  175552. .INDENT 2.0
  175553. .IP \(bu 2
  175554. 5a1b25b9c7 Remove unnecessary setUp in states.test_user test for mac
  175555. .UNINDENT
  175556. .IP \(bu 2
  175557. f323799c42 Merge pull request \fI\%#47692\fP from dwoz/win_instance_type
  175558. .INDENT 2.0
  175559. .IP \(bu 2
  175560. 20b6070d54 Default windows to m1.small for ec2\-classic
  175561. .UNINDENT
  175562. .IP \(bu 2
  175563. 990ece5cd5 Merge pull request \fI\%#47665\fP from gtmanfred/cloud
  175564. .INDENT 2.0
  175565. .IP \(bu 2
  175566. fd8a02decb use dictupdate to update the providers dictionary and merge lists
  175567. .UNINDENT
  175568. .IP \(bu 2
  175569. a2ed8cbb7f Merge pull request \fI\%#47151\fP from zer0def/configparser\-defaultsect
  175570. .INDENT 2.0
  175571. .IP \(bu 2
  175572. a8f2ad977e Merge branch \(aq2017.7\(aq into configparser\-defaultsect
  175573. .IP \(bu 2
  175574. cca2a806c9 Made interaction with [DEFAULT] section in ConfigParser as sane as upstream permits.
  175575. .UNINDENT
  175576. .IP \(bu 2
  175577. e6fb8342ef Merge pull request \fI\%#47673\fP from terminalmage/bp\-45808
  175578. .INDENT 2.0
  175579. .IP \(bu 2
  175580. 454291ad62 Fix errors when attempting to cache files with long names or URLs
  175581. .UNINDENT
  175582. .IP \(bu 2
  175583. b0446aab07 Merge pull request \fI\%#47670\fP from gtmanfred/2017.7
  175584. .INDENT 2.0
  175585. .IP \(bu 2
  175586. dfd5a8715f add a pytest.ini and update a dependency for kitchen
  175587. .UNINDENT
  175588. .IP \(bu 2
  175589. 0d06da6944 Merge pull request \fI\%#47626\fP from gtmanfred/2017.7
  175590. .INDENT 2.0
  175591. .IP \(bu 2
  175592. 418364a533 make dev_python27.txt have the same message as dev_python34.txt
  175593. .IP \(bu 2
  175594. d53b44d10f remove lock file
  175595. .IP \(bu 2
  175596. 493ed7f93d use the toml dict format
  175597. .IP \(bu 2
  175598. e0f7cc1447 add proxy tests decorator to pytest conftest
  175599. .IP \(bu 2
  175600. 0a621dd0ec add Pipfile for managing dependencies in salt
  175601. .IP \(bu 2
  175602. f78b81db94 simplify dev and base.txt to single files
  175603. .UNINDENT
  175604. .IP \(bu 2
  175605. a07a8906a0 Merge pull request \fI\%#47578\fP from Ch3LL/mac_service_disabled
  175606. .INDENT 2.0
  175607. .IP \(bu 2
  175608. 6032a01f55 change disable check for upstart service on ubuntu14
  175609. .IP \(bu 2
  175610. 33b4cfbc5b Change service assertion check for systemd platforms
  175611. .IP \(bu 2
  175612. 14896f9743 change codeauthor and class name
  175613. .IP \(bu 2
  175614. 502c5bdff5 Ensure mac_service.disabled is correctly querying services
  175615. .INDENT 2.0
  175616. .INDENT 3.5
  175617. .INDENT 0.0
  175618. .INDENT 3.5
  175619. .INDENT 0.0
  175620. .IP \(bu 2
  175621. 95d4488f01 Merge branch \(aq2017.7.6\(aq into 47696\-do\-not\-enumerate\-none
  175622. .UNINDENT
  175623. .UNINDENT
  175624. .UNINDENT
  175625. .INDENT 0.0
  175626. .IP \(bu 2
  175627. 16c2153385 Merge pull request \fI\%#47667\fP from Ch3LL/mac_user_enable
  175628. .INDENT 2.0
  175629. .IP \(bu 2
  175630. ba40d3d1a1 Update test_mac_user_enable_auto_login to test both py2 and py3
  175631. .UNINDENT
  175632. .IP \(bu 2
  175633. a4921e86c9 Merge pull request \fI\%#47645\fP from Ch3LL/py3_rm_pip
  175634. .INDENT 2.0
  175635. .IP \(bu 2
  175636. 225d90ad4c query the pip path for test test_issue_2087_missing_pip
  175637. .UNINDENT
  175638. .IP \(bu 2
  175639. e441733ac1 Merge pull request \fI\%#47646\fP from rallytime/bp\-47601\-and\-47643
  175640. .INDENT 2.0
  175641. .IP \(bu 2
  175642. 9e1d1a5ef8 Fix typo
  175643. .IP \(bu 2
  175644. 4e94609136 Remove unwanted file
  175645. .IP \(bu 2
  175646. 0109249c78 use ignore\-undefined\-variable
  175647. .IP \(bu 2
  175648. 37caecb7f4 Ignore pylint WindowsError
  175649. .IP \(bu 2
  175650. c1135d90c7 Better doc string
  175651. .IP \(bu 2
  175652. e53d6b9ed9 Skip tests when we can not use runas
  175653. .IP \(bu 2
  175654. 041e4c6ddb Wrap properties loop with a check for None. Closes GH\-47696
  175655. .UNINDENT
  175656. .UNINDENT
  175657. .UNINDENT
  175658. .UNINDENT
  175659. .UNINDENT
  175660. .UNINDENT
  175661. .UNINDENT
  175662. .IP \(bu 2
  175663. \fBPR\fP \fI\%#47581\fP: (\fI\%twangboy\fP) Add get_encoding salt util
  175664. @ \fI2018\-05\-25 20:40:07 UTC\fP
  175665. .INDENT 2.0
  175666. .IP \(bu 2
  175667. da9eaa1825 Merge pull request \fI\%#47581\fP from twangboy/fix_47274
  175668. .IP \(bu 2
  175669. ff6600f25e Merge branch \(aq2018.3\(aq into fix_47274
  175670. .IP \(bu 2
  175671. 6eff2f847b Add suggested changes
  175672. .IP \(bu 2
  175673. e27e9fd1e7 Fix tests on Py3
  175674. .IP \(bu 2
  175675. f398cbbdda Use os.linesep.join instead of textwrap.dedent
  175676. .IP \(bu 2
  175677. 771392e299 Fix unit tests, add newline=\(aq\(aq to io.open
  175678. .IP \(bu 2
  175679. c0f735dde3 Remove comment
  175680. .IP \(bu 2
  175681. 6d877bb48b Add comment
  175682. .IP \(bu 2
  175683. 9f369d3f22 Remove to_encoding, create get_encoding
  175684. .IP \(bu 2
  175685. 68be0f9ed2 Add is_encoding salt util
  175686. .UNINDENT
  175687. .IP \(bu 2
  175688. \fBISSUE\fP \fI\%#47694\fP: (\fI\%thuhak\fP) utils/boto and utils/boto3 load error (refs: \fI\%#47726\fP)
  175689. .IP \(bu 2
  175690. \fBPR\fP \fI\%#47726\fP: (\fI\%gtmanfred\fP) rename boto to botomod
  175691. @ \fI2018\-05\-25 20:37:37 UTC\fP
  175692. .INDENT 2.0
  175693. .IP \(bu 2
  175694. b860d95b2c Merge pull request \fI\%#47726\fP from gtmanfred/2018.3
  175695. .IP \(bu 2
  175696. 43997a466e fix tests
  175697. .IP \(bu 2
  175698. 59180e09a8 switch all salt.utils.boto* calls to __utils__ calls
  175699. .IP \(bu 2
  175700. 7e30f459c9 rename boto to botomod
  175701. .UNINDENT
  175702. .IP \(bu 2
  175703. \fBISSUE\fP \fI\%#47701\fP: (\fI\%babs\fP) elasticsearch.index_template_present state with check_definition: True fails. (refs: \fI\%#47703\fP)
  175704. .IP \(bu 2
  175705. \fBPR\fP \fI\%#47803\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47703\fP to 2018.3
  175706. @ \fI2018\-05\-23 20:12:30 UTC\fP
  175707. .INDENT 2.0
  175708. .IP \(bu 2
  175709. \fBPR\fP \fI\%#47703\fP: (\fI\%babs\fP) Fix elasticsearch.index_template_present with check_definition (refs: \fI\%#47803\fP)
  175710. .IP \(bu 2
  175711. 2a270162d0 Merge pull request \fI\%#47803\fP from rallytime/bp\-47703
  175712. .IP \(bu 2
  175713. 8fce0c562d Fix elasticsearch with check_definition
  175714. .UNINDENT
  175715. .IP \(bu 2
  175716. \fBPR\fP \fI\%#47804\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47761\fP to 2018.3
  175717. @ \fI2018\-05\-23 20:11:55 UTC\fP
  175718. .INDENT 2.0
  175719. .IP \(bu 2
  175720. \fBPR\fP \fI\%#47761\fP: (\fI\%zerthimon\fP) Fix userdata in openstack instances (refs: \fI\%#47804\fP)
  175721. .IP \(bu 2
  175722. 780043e6fd Merge pull request \fI\%#47804\fP from rallytime/bp\-47761
  175723. .IP \(bu 2
  175724. b7bc306333 Fix userdata in openstack instances
  175725. .UNINDENT
  175726. .IP \(bu 2
  175727. \fBPR\fP \fI\%#47776\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to failing _before_connect tests
  175728. @ \fI2018\-05\-23 15:10:35 UTC\fP
  175729. .INDENT 2.0
  175730. .IP \(bu 2
  175731. 1efe891c42 Merge pull request \fI\%#47776\fP from garethgreenaway/970_two_minion_unit_tests_failing
  175732. .IP \(bu 2
  175733. a5011b49ab Merge branch \(aq2018.3\(aq into 970_two_minion_unit_tests_failing
  175734. .IP \(bu 2
  175735. ef24f72169 Fixing unit.test_minion.MinionTestCase.test_beacons_before_connect and unit.test_minion.MinionTestCase.test_scheduler_before_connect.
  175736. .UNINDENT
  175737. .IP \(bu 2
  175738. \fBPR\fP \fI\%#47783\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175739. @ \fI2018\-05\-23 14:51:56 UTC\fP
  175740. .INDENT 2.0
  175741. .IP \(bu 2
  175742. 4a6ca67883 Merge pull request \fI\%#47783\fP from rallytime/merge\-2018.3
  175743. .IP \(bu 2
  175744. 1adb8ea27f Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175745. .UNINDENT
  175746. .IP \(bu 2
  175747. \fBPR\fP \fI\%#47149\fP: (\fI\%meaksh\fP) [2018.3] Strip trailing commas on Linux user\(aqs GECOS fields
  175748. @ \fI2018\-05\-22 21:18:49 UTC\fP
  175749. .INDENT 2.0
  175750. .IP \(bu 2
  175751. f8a6a85d28 Merge pull request \fI\%#47149\fP from meaksh/2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  175752. .IP \(bu 2
  175753. 60ec3230db Merge branch \(aq2018.3\(aq into 2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  175754. .UNINDENT
  175755. .IP \(bu 2
  175756. \fBISSUE\fP \fI\%#46938\fP: (\fI\%racooper\fP) Beacons documentation update for 2018.3 (refs: \fI\%#47740\fP)
  175757. .IP \(bu 2
  175758. \fBPR\fP \fI\%#47740\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating Beacon topic to include list based configuration for Beacons
  175759. @ \fI2018\-05\-21 13:58:01 UTC\fP
  175760. .INDENT 2.0
  175761. .IP \(bu 2
  175762. 19f4137b63 Merge pull request \fI\%#47740\fP from garethgreenaway/46938_beacons_documentation
  175763. .IP \(bu 2
  175764. 5d23ef4dd8 Updating Beacon topic to include list based configuration for Beacons
  175765. .UNINDENT
  175766. .IP \(bu 2
  175767. \fBPR\fP \fI\%#47710\fP: (\fI\%terminalmage\fP) salt.loader: add error logging when whitelist lookup fails
  175768. @ \fI2018\-05\-18 16:56:18 UTC\fP
  175769. .INDENT 2.0
  175770. .IP \(bu 2
  175771. 22807ac756 Merge pull request \fI\%#47710\fP from terminalmage/fix\-loader\-whitelist
  175772. .IP \(bu 2
  175773. 6192391b7b Add additional missing modules to whitelist
  175774. .IP \(bu 2
  175775. 7192c38f66 Change key \-> function to make log message more clear
  175776. .IP \(bu 2
  175777. 91f9fd38fd Fix loader whitelists in unit tests
  175778. .IP \(bu 2
  175779. d4f2662e5b Add error logging when whitelist lookup fails
  175780. .UNINDENT
  175781. .IP \(bu 2
  175782. \fBPR\fP \fI\%#47680\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175783. @ \fI2018\-05\-17 21:30:27 UTC\fP
  175784. .INDENT 2.0
  175785. .IP \(bu 2
  175786. b91c0f5647 Merge pull request \fI\%#47680\fP from rallytime/merge\-2018.3
  175787. .IP \(bu 2
  175788. 9b1773a763 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175789. .UNINDENT
  175790. .IP \(bu 2
  175791. \fBPR\fP \fI\%#47545\fP: (\fI\%dmurphy18\fP) Fix non\-root build and signing for rpm packages
  175792. @ \fI2018\-05\-17 21:20:10 UTC\fP
  175793. .INDENT 2.0
  175794. .IP \(bu 2
  175795. dbf12f9be2 Merge pull request \fI\%#47545\fP from dmurphy18/fix_nonroot_build
  175796. .IP \(bu 2
  175797. 220f887fa6 Fixed review comment, changed file.chown to file.makedirs_perms
  175798. .IP \(bu 2
  175799. b15a1652b5 Changed versionadded from 2018.3.1 to 2018.3.2, to reflect when change should be accepted
  175800. .IP \(bu 2
  175801. 90eb03e375 Additional error checking and minor cleanup
  175802. .IP \(bu 2
  175803. 40d77e03d2 Correct building rpms with non\-root user
  175804. .UNINDENT
  175805. .IP \(bu 2
  175806. \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)
  175807. .IP \(bu 2
  175808. \fBPR\fP \fI\%#47572\fP: (\fI\%garethgreenaway\fP) [2018.3] archive module, filenames with Unicode characters
  175809. @ \fI2018\-05\-17 20:41:11 UTC\fP
  175810. .INDENT 2.0
  175811. .IP \(bu 2
  175812. 69056e5b67 Merge pull request \fI\%#47572\fP from garethgreenaway/47546_archive_non_ascii_filenames
  175813. .IP \(bu 2
  175814. 5e97b8b44a Updating with requested changes.
  175815. .IP \(bu 2
  175816. cc1aa75a2f only convert to bytes when using Python2
  175817. .IP \(bu 2
  175818. 0fe32f4066 Updating integration/modules/test_archive to include filenames with unicode characters.
  175819. .IP \(bu 2
  175820. 5a9cadd125 Accounting for when files in an archive contain non\-ascii characters
  175821. .UNINDENT
  175822. .IP \(bu 2
  175823. \fBPR\fP \fI\%#47661\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  175824. @ \fI2018\-05\-16 15:53:36 UTC\fP
  175825. .INDENT 2.0
  175826. .IP \(bu 2
  175827. cb04d9c37e Merge pull request \fI\%#47661\fP from rallytime/merge\-2018.3
  175828. .IP \(bu 2
  175829. dd3e6f3f0a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  175830. .INDENT 2.0
  175831. .IP \(bu 2
  175832. f63d801858 Merge pull request \fI\%#47639\fP from rallytime/merge\-2017.7
  175833. .INDENT 2.0
  175834. .IP \(bu 2
  175835. 1503f1020f Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175836. .INDENT 2.0
  175837. .IP \(bu 2
  175838. 6f178ca908 Merge pull request \fI\%#47570\fP from gtmanfred/2017.7.6
  175839. .INDENT 2.0
  175840. .IP \(bu 2
  175841. 84aa034e03 Update dependency to msgpack
  175842. .UNINDENT
  175843. .IP \(bu 2
  175844. 98bd598701 Merge pull request \fI\%#47523\fP from rallytime/man\-pages
  175845. .INDENT 2.0
  175846. .IP \(bu 2
  175847. 48ecb78dec [2017.7.6] Update man pages
  175848. .UNINDENT
  175849. .IP \(bu 2
  175850. e608ea9617 Merge pull request \fI\%#47517\fP from rallytime/bp\-47505\-2017.7.6
  175851. .IP \(bu 2
  175852. 0734578533 Raise proper invocation errors
  175853. .UNINDENT
  175854. .UNINDENT
  175855. .IP \(bu 2
  175856. db0eef3e8b Merge pull request \fI\%#47643\fP from dwoz/runas_detect
  175857. .INDENT 2.0
  175858. .IP \(bu 2
  175859. 8c5e54b8b3 Fix typo
  175860. .IP \(bu 2
  175861. 69bc88f1c6 Remove unwanted file
  175862. .UNINDENT
  175863. .IP \(bu 2
  175864. 6dd3ab9f06 Merge pull request \fI\%#47601\fP from dwoz/runas_detect
  175865. .INDENT 2.0
  175866. .IP \(bu 2
  175867. 3235ac08cb use ignore\-undefined\-variable
  175868. .IP \(bu 2
  175869. 58911d510a Ignore pylint WindowsError
  175870. .IP \(bu 2
  175871. 17987d3c5a Better doc string
  175872. .IP \(bu 2
  175873. a48ac26573 Skip tests when we can not use runas
  175874. .UNINDENT
  175875. .IP \(bu 2
  175876. f61ccae627 Merge pull request \fI\%#47611\fP from Ch3LL/deb_doc
  175877. .INDENT 2.0
  175878. .IP \(bu 2
  175879. 6d2ddd050f One more grammar fixup
  175880. .IP \(bu 2
  175881. 2d5ff01261 Grammar fix
  175882. .IP \(bu 2
  175883. 138847c9c4 Update debian install docs to reflect new latest debian releases
  175884. .UNINDENT
  175885. .IP \(bu 2
  175886. 9e2fe284e4 Merge pull request \fI\%#47598\fP from rallytime/bp\-47568\-2017.7
  175887. .INDENT 2.0
  175888. .IP \(bu 2
  175889. 09458c65cf Add exception logging on serialize/deserialize exceptions
  175890. .IP \(bu 2
  175891. c62c855f9c salt.serializers.yaml/yamlex: remove invalid multi_constructor
  175892. .UNINDENT
  175893. .IP \(bu 2
  175894. 8a7913ccc3 Merge pull request \fI\%#47548\fP from Ch3LL/syslog
  175895. .INDENT 2.0
  175896. .IP \(bu 2
  175897. 31f13a4197 sysloghander: check for 3.5.4 python version
  175898. .IP \(bu 2
  175899. a020352a03 Catch Sysloghandler errors when log file does not exist
  175900. .UNINDENT
  175901. .IP \(bu 2
  175902. 82fb6ba366 Merge pull request \fI\%#47508\fP from gtmanfred/2017.7
  175903. .INDENT 2.0
  175904. .IP \(bu 2
  175905. 1a87e7455f allow pulling the mysql_query.run_file to pull from the fileserver
  175906. .UNINDENT
  175907. .IP \(bu 2
  175908. be29b58a09 Merge pull request \fI\%#47562\fP from rallytime/bp\-47513
  175909. .INDENT 2.0
  175910. .IP \(bu 2
  175911. 357bc084b3 fix \fI\%#46546\fP
  175912. .UNINDENT
  175913. .IP \(bu 2
  175914. d3121fcfa4 Merge pull request \fI\%#47471\fP from meaksh/2017.7\-fix\-inconsistent\-scheduled\-jid\-with\-returners
  175915. .INDENT 2.0
  175916. .IP \(bu 2
  175917. f079939500 Do not override jid on returners, only sending back to master
  175918. .UNINDENT
  175919. .IP \(bu 2
  175920. 662f6086db Merge pull request \fI\%#47313\fP from Circuitsoft/2017.7
  175921. .INDENT 2.0
  175922. .IP \(bu 2
  175923. 237560b745 Merge branch \(aq2017.7\(aq into 2017.7
  175924. .IP \(bu 2
  175925. cb674fb1cb Enable opkg as pkgrepo handler on Poky
  175926. .IP \(bu 2
  175927. 7a58fd157e Enable opkg on non\-NILinuxRT systems
  175928. .IP \(bu 2
  175929. 139360c55f Add Poky to OS Information Grains
  175930. .IP \(bu 2
  175931. d74057224d Un\-normalize os_family in pkgrepo state
  175932. .UNINDENT
  175933. .UNINDENT
  175934. .UNINDENT
  175935. .IP \(bu 2
  175936. \fBPR\fP \fI\%#47672\fP: (\fI\%terminalmage\fP) Backport \fI\%#47487\fP to 2018.3
  175937. @ \fI2018\-05\-16 13:55:40 UTC\fP
  175938. .INDENT 2.0
  175939. .IP \(bu 2
  175940. \fBPR\fP \fI\%#47487\fP: (\fI\%rosscdh\fP) bad ref to error fix (refs: \fI\%#47672\fP)
  175941. .IP \(bu 2
  175942. d17a16b648 Merge pull request \fI\%#47672\fP from terminalmage/bp\-47487
  175943. .IP \(bu 2
  175944. 12abbfdcf7 bad ref to error fix
  175945. .UNINDENT
  175946. .IP \(bu 2
  175947. \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)
  175948. .IP \(bu 2
  175949. \fBPR\fP \fI\%#47504\fP: (\fI\%mateiw\fP) Fix pillar propagation in salt\-ssh when overriding pillar in module.run + state.apply
  175950. @ \fI2018\-05\-16 13:55:05 UTC\fP
  175951. .INDENT 2.0
  175952. .IP \(bu 2
  175953. 9d4f5203a7 Merge pull request \fI\%#47504\fP from mateiw/2018.3\-salt\-ssh\-pillar\-propagation\-issue\-47501
  175954. .IP \(bu 2
  175955. 3ffa412ee5 Merge branch \(aq2018.3\(aq into 2018.3\-salt\-ssh\-pillar\-propagation\-issue\-47501
  175956. .IP \(bu 2
  175957. 2f1485e067 Option to merge current pillar with opts[\(aqpillar\(aq] during pillar compile
  175958. .UNINDENT
  175959. .IP \(bu 2
  175960. \fBPR\fP \fI\%#47212\fP: (\fI\%weswhet\fP) fix macOS running as user.
  175961. @ \fI2018\-05\-16 13:54:23 UTC\fP
  175962. .INDENT 2.0
  175963. .IP \(bu 2
  175964. 4fe78bbb9b Merge pull request \fI\%#47212\fP from weswhet/fix\-macos\-runas
  175965. .IP \(bu 2
  175966. 8ee11d74af Merge branch \(aq2018.3\(aq into fix\-macos\-runas
  175967. .IP \(bu 2
  175968. e78fa45927 adding in requested changes
  175969. .IP \(bu 2
  175970. 33c1492099 Merge branch \(aq2018.3\(aq into fix\-macos\-runas
  175971. .IP \(bu 2
  175972. 0ecabcae78 adding in a fix for running commands as a user on macos
  175973. .UNINDENT
  175974. .IP \(bu 2
  175975. \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)
  175976. .IP \(bu 2
  175977. \fBPR\fP \fI\%#47674\fP: (\fI\%terminalmage\fP) Fix regression in table outputter due to unicode types
  175978. @ \fI2018\-05\-16 13:41:04 UTC\fP
  175979. .INDENT 2.0
  175980. .IP \(bu 2
  175981. 0c7439a955 Merge pull request \fI\%#47674\fP from terminalmage/issue47587
  175982. .IP \(bu 2
  175983. 43e3dcd398 Fix Python 3 incompatibility in table outputter
  175984. .IP \(bu 2
  175985. d729656703 Add unit tests for table outputter
  175986. .IP \(bu 2
  175987. 907d182dea Fix regression in table outputter due to unicode strings
  175988. .UNINDENT
  175989. .IP \(bu 2
  175990. \fBPR\fP \fI\%#47617\fP: (\fI\%aesposito91\fP) Update napalm.py
  175991. @ \fI2018\-05\-15 15:44:35 UTC\fP
  175992. .INDENT 2.0
  175993. .IP \(bu 2
  175994. d1a1a594e9 Merge pull request \fI\%#47617\fP from aesposito91/2018.3
  175995. .IP \(bu 2
  175996. 9f5d201dd7 Update napalm.py
  175997. .UNINDENT
  175998. .IP \(bu 2
  175999. \fBISSUE\fP \fI\%#46871\fP: (\fI\%guettli\fP) Sentry Logging Handler (refs: \fI\%#47649\fP)
  176000. .IP \(bu 2
  176001. \fBPR\fP \fI\%#47649\fP: (\fI\%paulcollinsiii\fP) Some additional details about Sentry for the docs
  176002. @ \fI2018\-05\-15 15:41:36 UTC\fP
  176003. .INDENT 2.0
  176004. .IP \(bu 2
  176005. 049abe2850 Merge pull request \fI\%#47649\fP from paulcollinsiii/sentry_docs
  176006. .IP \(bu 2
  176007. 2a8dfd65d7 Some additional details about Sentry for the docs
  176008. .UNINDENT
  176009. .IP \(bu 2
  176010. \fBPR\fP \fI\%#47642\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating templates used by salt\-extend for unicode goodness
  176011. @ \fI2018\-05\-15 15:38:26 UTC\fP
  176012. .INDENT 2.0
  176013. .IP \(bu 2
  176014. 8a21b864df Merge pull request \fI\%#47642\fP from garethgreenaway/unicode_update_salt_extend_templates
  176015. .IP \(bu 2
  176016. 68d73f7afc Updating the templates that the salt\-extend utility uses to include unicode_literals & print_function
  176017. .INDENT 2.0
  176018. .INDENT 3.5
  176019. .INDENT 0.0
  176020. .IP \(bu 2
  176021. 0232a6e1ad Add \(aqother\(aq as valid kwargs for \(aquser.add\(aq method
  176022. .IP \(bu 2
  176023. ff861d9089 Merge branch \(aq2018.3\(aq into 2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  176024. .UNINDENT
  176025. .UNINDENT
  176026. .UNINDENT
  176027. .UNINDENT
  176028. .IP \(bu 2
  176029. \fBPR\fP \fI\%#47603\fP: (\fI\%terminalmage\fP) Move/merge more test modules
  176030. @ \fI2018\-05\-14 20:48:43 UTC\fP
  176031. .INDENT 2.0
  176032. .IP \(bu 2
  176033. 99f53c0a9f Merge pull request \fI\%#47603\fP from terminalmage/more\-test\-renaming
  176034. .IP \(bu 2
  176035. d612bd27e4 Move/merge more test modules
  176036. .UNINDENT
  176037. .IP \(bu 2
  176038. \fBPR\fP \fI\%#47640\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  176039. @ \fI2018\-05\-14 17:59:06 UTC\fP
  176040. .INDENT 2.0
  176041. .IP \(bu 2
  176042. cc3daa88f3 Merge pull request \fI\%#47640\fP from rallytime/merge\-2018.3
  176043. .IP \(bu 2
  176044. 2827c56399 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  176045. .INDENT 2.0
  176046. .INDENT 3.5
  176047. .INDENT 0.0
  176048. .IP \(bu 2
  176049. f1680f1d9b Do make comparisons in a single line
  176050. .IP \(bu 2
  176051. 7dea455c12 Add unit test for new method \(aquser.chother\(aq
  176052. .IP \(bu 2
  176053. 694882632c Add \(aqother\(aq attribute to GECOS fields to avoid inconsistencies with chfn
  176054. .IP \(bu 2
  176055. 6c089c9de1 Fix unsupported chars checking on GECOS fields
  176056. .IP \(bu 2
  176057. d5c9ca0fbc Add unit tests for GECOS fields
  176058. .IP \(bu 2
  176059. ed940c4f58 Strip trailing commas on Linux user GECOS fields
  176060. .UNINDENT
  176061. .UNINDENT
  176062. .UNINDENT
  176063. .UNINDENT
  176064. .IP \(bu 2
  176065. \fBPR\fP \fI\%#47589\fP: (\fI\%Ch3LL\fP) Remove duplicate file id in watch_any doc example
  176066. @ \fI2018\-05\-10 22:06:00 UTC\fP
  176067. .INDENT 2.0
  176068. .IP \(bu 2
  176069. 4ec63dd041 Merge pull request \fI\%#47589\fP from Ch3LL/watch_any_doc
  176070. .IP \(bu 2
  176071. 8cb97a48f5 Add additional state to watch_any doc example
  176072. .IP \(bu 2
  176073. f7223a3bbf Remove duplicate file id in watch_any doc example
  176074. .UNINDENT
  176075. .IP \(bu 2
  176076. \fBPR\fP \fI\%#47564\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176077. @ \fI2018\-05\-10 19:13:36 UTC\fP
  176078. .INDENT 2.0
  176079. .IP \(bu 2
  176080. 9836a7e62b Merge pull request \fI\%#47564\fP from rallytime/merge\-2018.3
  176081. .IP \(bu 2
  176082. 295e302fcf Lint: Fix syntax error from bad merge\-conflict resolution
  176083. .IP \(bu 2
  176084. 25f03ae425 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176085. .IP \(bu 2
  176086. 291d3d3bd8 Merge pull request \fI\%#47540\fP from terminalmage/cmdmod\-home\-fix
  176087. .INDENT 2.0
  176088. .IP \(bu 2
  176089. e4b277f82e Fix corner case where runas user\(aqs HOME env value is incorrect
  176090. .UNINDENT
  176091. .IP \(bu 2
  176092. 49af577b3e Merge pull request \fI\%#47547\fP from terminalmage/gitfs\-tutorial
  176093. .INDENT 2.0
  176094. .IP \(bu 2
  176095. 806ffb298a Add masterless mode docs to gitfs tutorial
  176096. .UNINDENT
  176097. .IP \(bu 2
  176098. 476ba053d1 Merge pull request \fI\%#47538\fP from terminalmage/pip\-docs
  176099. .INDENT 2.0
  176100. .IP \(bu 2
  176101. 98e8ffeba4 Fix/clarify some of the pip module documentation
  176102. .UNINDENT
  176103. .IP \(bu 2
  176104. 7cc8d9d30a Merge pull request \fI\%#47524\fP from dwoz/whitelistlines
  176105. .INDENT 2.0
  176106. .IP \(bu 2
  176107. 2605ff8712 Gracefully handle blank lines in whitelist.txt
  176108. .UNINDENT
  176109. .IP \(bu 2
  176110. f1a5b13072 Merge pull request \fI\%#47527\fP from dwoz/test_file_name
  176111. .INDENT 2.0
  176112. .IP \(bu 2
  176113. 4aea7ca571 Update doc string
  176114. .IP \(bu 2
  176115. b3289e5a1c Fix test file name
  176116. .UNINDENT
  176117. .IP \(bu 2
  176118. e9c1723175 Merge pull request \fI\%#47408\fP from Ch3LL/skip_diskusage
  176119. .INDENT 2.0
  176120. .IP \(bu 2
  176121. 068da8ad7d Merge branch \(aq2017.7\(aq into skip_diskusage
  176122. .IP \(bu 2
  176123. 1a7ffb4e0d return error if diskusage not available
  176124. .IP \(bu 2
  176125. 10bd63a976 Skip status.diskusage integration tests on macsox
  176126. .UNINDENT
  176127. .IP \(bu 2
  176128. 2f50ff7bc8 Merge pull request \fI\%#47480\fP from baniobloom/ConflictingDomainExists
  176129. .INDENT 2.0
  176130. .IP \(bu 2
  176131. d22ed7dffa added handling for the aws error ConflictingDomainExists
  176132. .UNINDENT
  176133. .IP \(bu 2
  176134. 7f53be6e92 Merge pull request \fI\%#47444\fP from terminalmage/render_state\-spurious\-error
  176135. .INDENT 2.0
  176136. .IP \(bu 2
  176137. a1e9fe00fd Skip trying to render a template for a nonexistant SLS file
  176138. .UNINDENT
  176139. .IP \(bu 2
  176140. 50b9c4d79d Merge pull request \fI\%#47478\fP from terminalmage/rename\-pip\-state\-test
  176141. .INDENT 2.0
  176142. .IP \(bu 2
  176143. 9f7a9ebebd Rename pip state test modules to match naming convention
  176144. .UNINDENT
  176145. .IP \(bu 2
  176146. e78ac0f9b7 Merge pull request \fI\%#47505\fP from dwoz/win_dsc_fixes
  176147. .INDENT 2.0
  176148. .IP \(bu 2
  176149. d1fcb40d1c Raise proper invocation errors
  176150. .UNINDENT
  176151. .IP \(bu 2
  176152. 0d4d5047d8 Merge pull request \fI\%#47499\fP from dwoz/win_run_timeout_again
  176153. .INDENT 2.0
  176154. .IP \(bu 2
  176155. c6697b9f16 Move kill process tree and re\-use it
  176156. .UNINDENT
  176157. .IP \(bu 2
  176158. 6a4d0380b1 Merge pull request \fI\%#47493\fP from dwoz/win_run_timeout
  176159. .IP \(bu 2
  176160. fec1233dc4 Add support for windows timeout to run_salt
  176161. .UNINDENT
  176162. .IP \(bu 2
  176163. \fBPR\fP \fI\%#47565\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47440\fP to 2018.3
  176164. @ \fI2018\-05\-10 18:15:50 UTC\fP
  176165. .INDENT 2.0
  176166. .IP \(bu 2
  176167. \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)
  176168. .IP \(bu 2
  176169. b22657ff9e Merge pull request \fI\%#47565\fP from rallytime/bp\-47440
  176170. .IP \(bu 2
  176171. 7c43417d46 addressed feedback
  176172. .IP \(bu 2
  176173. 1abe05207c fix for the race condition, details are here: \fI\%https://github.com/saltstack/salt/issues/33223#issuecomment\-386117236\fP
  176174. .UNINDENT
  176175. .IP \(bu 2
  176176. \fBPR\fP \fI\%#47590\fP: (\fI\%Ch3LL\fP) Fix firewalld prune_services deprecation warning
  176177. @ \fI2018\-05\-10 17:01:48 UTC\fP
  176178. .INDENT 2.0
  176179. .IP \(bu 2
  176180. 17e0fdca6c Merge pull request \fI\%#47590\fP from Ch3LL/firewall_warn
  176181. .IP \(bu 2
  176182. d29b8e0ae2 Fix firewalld prune_services deprecation warning
  176183. .UNINDENT
  176184. .IP \(bu 2
  176185. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47598\fP)
  176186. @ \fI2018\-05\-10 16:21:09 UTC\fP
  176187. .INDENT 2.0
  176188. .IP \(bu 2
  176189. 2fcb108d71 Merge pull request \fI\%#47568\fP from terminalmage/salt\-jenkins\-971
  176190. .UNINDENT
  176191. .IP \(bu 2
  176192. \fBISSUE\fP \fI\%#38671\fP: (\fI\%MikeSpaceG\fP) zpool.get error (refs: \fI\%#47224\fP)
  176193. .IP \(bu 2
  176194. \fBPR\fP \fI\%#47563\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47224\fP to 2018.3
  176195. @ \fI2018\-05\-10 16:18:07 UTC\fP
  176196. .INDENT 2.0
  176197. .IP \(bu 2
  176198. \fBPR\fP \fI\%#47224\fP: (\fI\%sjorge\fP) Zpool zol fixes (refs: \fI\%#47563\fP)
  176199. .IP \(bu 2
  176200. e3ee7053fb Merge pull request \fI\%#47563\fP from rallytime/bp\-47224
  176201. .IP \(bu 2
  176202. 1d191445a7 FIX \fI\%#38671\fP \- zpool.get should support older zfs version
  176203. .IP \(bu 2
  176204. 23705b12cb zpool.scub docs should mention pause is not always available
  176205. .IP \(bu 2
  176206. d73885aa5c Make sure the docs mention that createboot is only available on illumos
  176207. .UNINDENT
  176208. .IP \(bu 2
  176209. \fBPR\fP \fI\%#47569\fP: (\fI\%Ch3LL\fP) Update salt.utils.path mock in virtual core test
  176210. @ \fI2018\-05\-10 15:18:31 UTC\fP
  176211. .INDENT 2.0
  176212. .IP \(bu 2
  176213. 8e26624db3 Merge pull request \fI\%#47569\fP from Ch3LL/core_virt
  176214. .UNINDENT
  176215. .IP \(bu 2
  176216. \fBPR\fP \fI\%#47576\fP: (\fI\%rallytime\fP) [2018.3] Small Documentation Fixes
  176217. @ \fI2018\-05\-10 14:08:11 UTC\fP
  176218. .INDENT 2.0
  176219. .IP \(bu 2
  176220. fc93715eea Merge pull request \fI\%#47576\fP from rallytime/doc\-updates
  176221. .IP \(bu 2
  176222. ca927fc14b Add extra lines that are needed for proper code\-block formatting
  176223. .IP \(bu 2
  176224. b330d763a4 Remove infoblox state autodoc file
  176225. .UNINDENT
  176226. .UNINDENT
  176227. .SS Salt 2018.3.4 Release Notes
  176228. .sp
  176229. Version 2018.3.4 is a bugfix release for 2018.3.0\&.
  176230. .SS State Changes
  176231. .INDENT 0.0
  176232. .IP \(bu 2
  176233. The \fBhost.present\fP state can now remove
  176234. the specified hostname from IPs not specified in the state. This can be done
  176235. by setting the newly\-added \fBclean\fP argument to \fBTrue\fP\&.
  176236. .UNINDENT
  176237. .SS Statistics
  176238. .INDENT 0.0
  176239. .IP \(bu 2
  176240. Total Merges: \fB531\fP
  176241. .IP \(bu 2
  176242. Total Issue References: \fB111\fP
  176243. .IP \(bu 2
  176244. Total PR References: \fB412\fP
  176245. .IP \(bu 2
  176246. 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)
  176247. .UNINDENT
  176248. .SS Changelog for v2018.3.3..v2018.3.4
  176249. .sp
  176250. \fIGenerated at: 2019\-02\-06 20:56:17 UTC\fP
  176251. .INDENT 0.0
  176252. .IP \(bu 2
  176253. \fBPR\fP \fI\%#51525\fP: (\fI\%twangboy\fP) Backport 51095 to 2018.3.4
  176254. @ \fI2019\-02\-06 20:20:37 UTC\fP
  176255. .INDENT 2.0
  176256. .IP \(bu 2
  176257. a37fb7d Merge pull request \fI\%#51525\fP from twangboy/backport_51095_2018.3.4
  176258. .IP \(bu 2
  176259. b6acc92 Backport 51095
  176260. .UNINDENT
  176261. .IP \(bu 2
  176262. \fBPR\fP \fI\%#51520\fP: (\fI\%frogunder\fP) Update man pages for 2018.3.4
  176263. @ \fI2019\-02\-06 18:42:13 UTC\fP
  176264. .INDENT 2.0
  176265. .IP \(bu 2
  176266. 602ddc8 Merge pull request \fI\%#51520\fP from frogunder/man_pages
  176267. .IP \(bu 2
  176268. 0cbe3f8 Update man pages for 2018.3.4
  176269. .UNINDENT
  176270. .IP \(bu 2
  176271. \fBISSUE\fP \fI\%#51428\fP: (\fI\%yosnoop\fP) salt.utils.dns.lookup fails with dig method on EL7 (refs: \fI\%#51429\fP)
  176272. .IP \(bu 2
  176273. \fBPR\fP \fI\%#51429\fP: (\fI\%yosnoop\fP) The +nocl is supported much wider than +noclass
  176274. @ \fI2019\-02\-06 17:48:48 UTC\fP
  176275. .INDENT 2.0
  176276. .IP \(bu 2
  176277. 1f981c6 Merge pull request \fI\%#51429\fP from yosnoop/replace\-noclass\-with\-nocl\-for\-dig
  176278. .IP \(bu 2
  176279. 5231e73 Merge branch \(aq2018.3.4\(aq into replace\-noclass\-with\-nocl\-for\-dig
  176280. .IP \(bu 2
  176281. 14e6fb7 In case the test machine can\(aqt resolve
  176282. .IP \(bu 2
  176283. 95e8a2f The +nocl is supported much wider than +noclass
  176284. .IP \(bu 2
  176285. a00d708 Test dig options for salt.utils.dns.lookup
  176286. .UNINDENT
  176287. .IP \(bu 2
  176288. \fBISSUE\fP \fI\%#49226\fP: (\fI\%defanator\fP) salt\-cloud grains inheritance from provider to profile (2018 vs 2016) (refs: \fI\%#51366\fP)
  176289. .IP \(bu 2
  176290. \fBPR\fP \fI\%#51441\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51366\fP into 2018.3.4
  176291. @ \fI2019\-02\-06 17:42:19 UTC\fP
  176292. .INDENT 2.0
  176293. .IP \(bu 2
  176294. \fBPR\fP \fI\%#51366\fP: (\fI\%dwoz\fP) Cloud provider and profile configs are merged [2018.3] (refs: \fI\%#51441\fP)
  176295. .IP \(bu 2
  176296. 209ef32 Merge pull request \fI\%#51441\fP from Ch3LL/bp\-51366
  176297. .IP \(bu 2
  176298. 5bc466e Fix python 3 path for shell test cases
  176299. .IP \(bu 2
  176300. 5351e5c Add testing path to run_script commands
  176301. .IP \(bu 2
  176302. 2d8a364 Fix linter issues
  176303. .IP \(bu 2
  176304. 9b8718a Cloud provider and profile configs are merged
  176305. .UNINDENT
  176306. .IP \(bu 2
  176307. \fBPR\fP \fI\%#51458\fP: (\fI\%twangboy\fP) Add Py2 Warning for Py2 Installer
  176308. @ \fI2019\-02\-06 17:33:02 UTC\fP
  176309. .INDENT 2.0
  176310. .IP \(bu 2
  176311. 90a8682 Merge pull request \fI\%#51458\fP from twangboy/add_py2_warning
  176312. .IP \(bu 2
  176313. 05522c0 Merge branch \(aq2018.3.4\(aq into add_py2_warning
  176314. .UNINDENT
  176315. .IP \(bu 2
  176316. \fBPR\fP \fI\%#51460\fP: (\fI\%twangboy\fP) Update installer mac 2018.3.4
  176317. @ \fI2019\-02\-06 17:31:18 UTC\fP
  176318. .INDENT 2.0
  176319. .IP \(bu 2
  176320. b492021 Merge pull request \fI\%#51460\fP from twangboy/update_installer_mac_2018.3.4
  176321. .IP \(bu 2
  176322. 3c92688 Merge branch \(aq2018.3.4\(aq into update_installer_mac_2018.3.4
  176323. .UNINDENT
  176324. .IP \(bu 2
  176325. \fBPR\fP \fI\%#51471\fP: (\fI\%twangboy\fP) Fix the failing dns test on Windows
  176326. @ \fI2019\-02\-03 22:03:34 UTC\fP
  176327. .INDENT 2.0
  176328. .IP \(bu 2
  176329. 892d98c Merge pull request \fI\%#51471\fP from twangboy/fix_test_win_dns_client
  176330. .IP \(bu 2
  176331. c9f6b01 Merge branch \(aq2018.3.4\(aq into fix_test_win_dns_client
  176332. .UNINDENT
  176333. .IP \(bu 2
  176334. \fBPR\fP \fI\%#51462\fP: (\fI\%ShantonRU\fP) Fix insecure SQL queries in MySQL module
  176335. @ \fI2019\-02\-01 21:19:20 UTC\fP
  176336. .INDENT 2.0
  176337. .IP \(bu 2
  176338. a05305d Merge pull request \fI\%#51462\fP from ShantonRU/fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  176339. .IP \(bu 2
  176340. d3ef2cb Merge branch \(aq2018.3.4\(aq into fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  176341. .IP \(bu 2
  176342. f47dda6 Fix improper use of socket authentication in mysql.user_chpass
  176343. .IP \(bu 2
  176344. ed62a2f Fix insecure SQL queries in mysql.user_chpass
  176345. .INDENT 2.0
  176346. .IP \(bu 2
  176347. 33922c9 Fix the failing dns test on Windows
  176348. .UNINDENT
  176349. .UNINDENT
  176350. .IP \(bu 2
  176351. \fBPR\fP \fI\%#51445\fP: (\fI\%terminalmage\fP) Remove custom grains module from 2018.3 branch
  176352. @ \fI2019\-02\-01 16:48:13 UTC\fP
  176353. .INDENT 2.0
  176354. .IP \(bu 2
  176355. 48936c2 Merge pull request \fI\%#51445\fP from terminalmage/fix\-custom\-grains\-traceback
  176356. .IP \(bu 2
  176357. 191235d Remove custom grains module from 2018.3 branch
  176358. .IP \(bu 2
  176359. 72fd1a2 Roll back icon change
  176360. .IP \(bu 2
  176361. 7dd1704 Add welcome_py2.rtf
  176362. .IP \(bu 2
  176363. c93e9e3 Add Py2 Warning to installer package
  176364. .IP \(bu 2
  176365. b658900 Add Py2 Warning for Py2 Installer
  176366. .UNINDENT
  176367. .IP \(bu 2
  176368. \fBPR\fP \fI\%#51438\fP: (\fI\%twangboy\fP) Add missing raise statement
  176369. @ \fI2019\-01\-30 20:04:05 UTC\fP
  176370. .INDENT 2.0
  176371. .IP \(bu 2
  176372. a880e42 Merge pull request \fI\%#51438\fP from twangboy/fix_raise_2018.3.4
  176373. .IP \(bu 2
  176374. 5830fad Add missing raise statement
  176375. .UNINDENT
  176376. .IP \(bu 2
  176377. \fBPR\fP \fI\%#51432\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51324\fP into 2018.3.4
  176378. @ \fI2019\-01\-30 17:51:50 UTC\fP
  176379. .INDENT 2.0
  176380. .IP \(bu 2
  176381. \fBPR\fP \fI\%#51324\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to x509 module and test (refs: \fI\%#51432\fP)
  176382. .IP \(bu 2
  176383. 28b898c Merge pull request \fI\%#51432\fP from Ch3LL/bp\-51324
  176384. .IP \(bu 2
  176385. bd41ff0 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  176386. .UNINDENT
  176387. .IP \(bu 2
  176388. \fBPR\fP \fI\%#51377\fP: (\fI\%twangboy\fP) Fix issue when directory doesn\(aqt exist in LGPO module (2018.3.4)
  176389. @ \fI2019\-01\-29 17:33:25 UTC\fP
  176390. .INDENT 2.0
  176391. .IP \(bu 2
  176392. 01717d2 Merge pull request \fI\%#51377\fP from twangboy/fix_auditpol_2018.3.4
  176393. .IP \(bu 2
  176394. 19e5181 Fix issue when directory doesn\(aqt exist
  176395. .UNINDENT
  176396. .IP \(bu 2
  176397. \fBPR\fP \fI\%#51338\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51207\fP into 2018.3.4
  176398. @ \fI2019\-01\-27 23:44:59 UTC\fP
  176399. .INDENT 2.0
  176400. .IP \(bu 2
  176401. \fBPR\fP \fI\%#51207\fP: (\fI\%twangboy\fP) Backport 50771 to 2018.3 (refs: \fI\%#51338\fP)
  176402. .IP \(bu 2
  176403. \fBPR\fP \fI\%#50771\fP: (\fI\%terminalmage\fP) Fix failing opensuse tests (refs: \fI\%#51207\fP)
  176404. .IP \(bu 2
  176405. 43a9d2f Merge pull request \fI\%#51338\fP from Ch3LL/bp\-51207
  176406. .IP \(bu 2
  176407. 345ae67 Backport PR# 50771 to 2018.3 branch
  176408. .UNINDENT
  176409. .IP \(bu 2
  176410. \fBISSUE\fP \fI\%#51158\fP: (\fI\%AndreiPashkin\fP) saltmod.state doesn\(aqt respect "roster" argument (refs: \fI\%#51170\fP)
  176411. .IP \(bu 2
  176412. \fBPR\fP \fI\%#51337\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51170\fP into 2018.3.4
  176413. @ \fI2019\-01\-27 23:44:24 UTC\fP
  176414. .INDENT 2.0
  176415. .IP \(bu 2
  176416. \fBPR\fP \fI\%#51170\fP: (\fI\%dwoz\fP) Honor roster system for ssh orchestrations (refs: \fI\%#51337\fP)
  176417. .IP \(bu 2
  176418. 3dcd11d Merge pull request \fI\%#51337\fP from Ch3LL/bp\-51170
  176419. .IP \(bu 2
  176420. 4e85505 Merge branch \(aq2018.3.4\(aq into bp\-51170
  176421. .UNINDENT
  176422. .IP \(bu 2
  176423. \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)
  176424. .IP \(bu 2
  176425. \fBPR\fP \fI\%#51340\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51252\fP into 2018.3.4
  176426. @ \fI2019\-01\-27 23:42:49 UTC\fP
  176427. .INDENT 2.0
  176428. .IP \(bu 2
  176429. \fBPR\fP \fI\%#51252\fP: (\fI\%dwoz\fP) Peserve newlines from pillar data for file.managed [2018.3] (refs: \fI\%#51340\fP)
  176430. .IP \(bu 2
  176431. 7656aa5 Merge pull request \fI\%#51340\fP from Ch3LL/bp\-51252
  176432. .IP \(bu 2
  176433. e74a6c6 Fix py3 managed.file test failure
  176434. .IP \(bu 2
  176435. 6f2c7cf Remoe un\-needed log statement
  176436. .IP \(bu 2
  176437. 824950c Fix 50221 regression test on Windows
  176438. .IP \(bu 2
  176439. 1840af9 peserve newlines from pillar data for file.managed
  176440. .UNINDENT
  176441. .IP \(bu 2
  176442. \fBPR\fP \fI\%#51290\fP: (\fI\%s0undt3ch\fP) [2018.3.4] Fix minion start
  176443. @ \fI2019\-01\-25 15:14:47 UTC\fP
  176444. .INDENT 2.0
  176445. .IP \(bu 2
  176446. e90ca1d Merge pull request \fI\%#51290\fP from s0undt3ch/hotfix/fix\-network
  176447. .IP \(bu 2
  176448. da3aace Merge branch \(aq2018.3.4\(aq into hotfix/fix\-network
  176449. .IP \(bu 2
  176450. 04f16b8 Fix tests. We no longer get \fIipaddress\fP instances back.
  176451. .IP \(bu 2
  176452. c3fa82a Fix minion start issue
  176453. .INDENT 2.0
  176454. .IP \(bu 2
  176455. c893dc4 Fix saltmod roster test
  176456. .IP \(bu 2
  176457. b61854f Roster defines the roster system not a file
  176458. .IP \(bu 2
  176459. 484bab4 Fix linter
  176460. .IP \(bu 2
  176461. 5e2db2f Honor roster file for ssh orchestrations
  176462. .UNINDENT
  176463. .UNINDENT
  176464. .IP \(bu 2
  176465. \fBPR\fP \fI\%#51317\fP: (\fI\%terminalmage\fP) Fix regression in dynamic pillarenv
  176466. @ \fI2019\-01\-25 09:29:44 UTC\fP
  176467. .INDENT 2.0
  176468. .IP \(bu 2
  176469. c8db7e3 Merge pull request \fI\%#51317\fP from terminalmage/fix\-pr\-50417
  176470. .IP \(bu 2
  176471. 4be2891 Merge branch \(aq2018.3.4\(aq into fix\-pr\-50417
  176472. .UNINDENT
  176473. .IP \(bu 2
  176474. \fBPR\fP \fI\%#51311\fP: (\fI\%twangboy\fP) Fix failing test \fIunit.states.test_file.TestFileState.test_managed\fP on Windows
  176475. @ \fI2019\-01\-24 21:09:35 UTC\fP
  176476. .INDENT 2.0
  176477. .IP \(bu 2
  176478. e246fdb Merge pull request \fI\%#51311\fP from twangboy/fix_test_file.test_managed
  176479. .IP \(bu 2
  176480. f4177e0 Remove mode parameter on Windows
  176481. .IP \(bu 2
  176482. 4c4ded3 Fix regression in dynamic pillarenv
  176483. .UNINDENT
  176484. .IP \(bu 2
  176485. \fBISSUE\fP \fI\%#51195\fP: (\fI\%littleski\fP) fstab improperly escaped when spaces are used in options (refs: \fI\%#51226\fP)
  176486. .IP \(bu 2
  176487. \fBISSUE\fP \fI\%#27160\fP: (\fI\%martinadolfi\fP) salt.states.mount persistence error using spaces in route (refs: \fI\%#39593\fP)
  176488. .IP \(bu 2
  176489. \fBPR\fP \fI\%#51292\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51226\fP into 2018.3.4
  176490. @ \fI2019\-01\-24 11:11:34 UTC\fP
  176491. .INDENT 2.0
  176492. .IP \(bu 2
  176493. \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)
  176494. .IP \(bu 2
  176495. \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)
  176496. .IP \(bu 2
  176497. 40b20126 Merge pull request \fI\%#51292\fP from Ch3LL/bp\-51226
  176498. .IP \(bu 2
  176499. aba114e Merge branch \(aq2018.3.4\(aq into bp\-51226
  176500. .UNINDENT
  176501. .IP \(bu 2
  176502. \fBPR\fP \fI\%#51295\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51279\fP into 2018.3.4
  176503. @ \fI2019\-01\-24 11:10:19 UTC\fP
  176504. .INDENT 2.0
  176505. .IP \(bu 2
  176506. \fBPR\fP \fI\%#51279\fP: (\fI\%twangboy\fP) Backport __context__ support from develop (refs: \fI\%#51295\fP)
  176507. .IP \(bu 2
  176508. fc0bec5 Merge pull request \fI\%#51295\fP from Ch3LL/bp\-51279
  176509. .IP \(bu 2
  176510. 5c4a7a4 Merge branch \(aq2018.3.4\(aq into bp\-51279
  176511. .UNINDENT
  176512. .IP \(bu 2
  176513. \fBPR\fP \fI\%#51293\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51233\fP into 2018.3.4
  176514. @ \fI2019\-01\-24 09:17:49 UTC\fP
  176515. .INDENT 2.0
  176516. .IP \(bu 2
  176517. \fBPR\fP \fI\%#51233\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51105\fP to 2018.3 (refs: \fI\%#51293\fP)
  176518. .IP \(bu 2
  176519. \fBPR\fP \fI\%#51105\fP: (\fI\%garethgreenaway\fP) [develop] Report permission changes in test mode (refs: \fI\%#51233\fP)
  176520. .IP \(bu 2
  176521. dacd1ea Merge pull request \fI\%#51293\fP from Ch3LL/bp\-51233\-2
  176522. .IP \(bu 2
  176523. a155fd7 Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  176524. .IP \(bu 2
  176525. 53ba068 When test=True and there are permissions changes, report it.
  176526. .IP \(bu 2
  176527. d2eba77 Remove network.py patch
  176528. .IP \(bu 2
  176529. d431c71 Add __context__ support
  176530. .INDENT 2.0
  176531. .IP \(bu 2
  176532. de6c13d Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  176533. .UNINDENT
  176534. .UNINDENT
  176535. .IP \(bu 2
  176536. \fBISSUE\fP \fI\%#51248\fP: (\fI\%johnnybubonic\fP) "[WARNING ] The file_roots parameter is not properly formatted, using defaults" (refs: \fI\%#51278\fP)
  176537. .IP \(bu 2
  176538. \fBPR\fP \fI\%#51278\fP: (\fI\%dwoz\fP) Warn about proper validation option
  176539. @ \fI2019\-01\-22 22:13:13 UTC\fP
  176540. .INDENT 2.0
  176541. .IP \(bu 2
  176542. 1abffb2 Merge pull request \fI\%#51278\fP from dwoz/issue51248
  176543. .IP \(bu 2
  176544. c614198 Use pillar roots validation method
  176545. .IP \(bu 2
  176546. 0d2b0c6 Fix linter warnings
  176547. .IP \(bu 2
  176548. 5b98895 Fix wart in pillar_roots validation
  176549. .UNINDENT
  176550. .IP \(bu 2
  176551. \fBPR\fP \fI\%#51230\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176552. @ \fI2019\-01\-18 19:50:10 UTC\fP
  176553. .INDENT 2.0
  176554. .IP \(bu 2
  176555. e53e9b1 Merge pull request \fI\%#51230\fP from Ch3LL/merge\-2018.3
  176556. .IP \(bu 2
  176557. 0ef7675 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176558. .IP \(bu 2
  176559. 4a12c5f Merge pull request \fI\%#50852\fP from mirceaulinic/fix\-capirca
  176560. .INDENT 2.0
  176561. .IP \(bu 2
  176562. fa91267 Merge branch \(aq2017.7\(aq into fix\-capirca
  176563. .IP \(bu 2
  176564. 71913ff Merge branch \(aq2017.7\(aq into fix\-capirca
  176565. .IP \(bu 2
  176566. 6fc3484 Lint?
  176567. .IP \(bu 2
  176568. 3d56750 Extra newline for lint
  176569. .IP \(bu 2
  176570. 5176cd8 Improve the Capirca and related modules for ACL config generation
  176571. .UNINDENT
  176572. .IP \(bu 2
  176573. 3f4759b Merge pull request \fI\%#50923\fP from astronouth7303/patch\-2
  176574. .INDENT 2.0
  176575. .IP \(bu 2
  176576. 4f631a6 Document {% include %}
  176577. .UNINDENT
  176578. .IP \(bu 2
  176579. 210e817 Merge pull request \fI\%#51111\fP from s0undt3ch/2017.7
  176580. .INDENT 2.0
  176581. .IP \(bu 2
  176582. 08e0ae7 Update to salt\-bootstrap v2019.01.08
  176583. .UNINDENT
  176584. .UNINDENT
  176585. .IP \(bu 2
  176586. \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)
  176587. .IP \(bu 2
  176588. \fBISSUE\fP \fI\%#48132\fP: (\fI\%BenjaminSchiborr\fP) Dynamic File Roots (refs: \fI\%#51212\fP)
  176589. .IP \(bu 2
  176590. \fBPR\fP \fI\%#51212\fP: (\fI\%sathieu\fP) Allow slashes in file_roots envs.
  176591. @ \fI2019\-01\-17 17:29:18 UTC\fP
  176592. .INDENT 2.0
  176593. .IP \(bu 2
  176594. 26008ef Merge pull request \fI\%#51212\fP from sathieu/file_roots_slash
  176595. .IP \(bu 2
  176596. b769f18 Allow slash in file_roots envs
  176597. .IP \(bu 2
  176598. f9437e2 Test for file_roots envs with slash leads to "No such file or directory"
  176599. .UNINDENT
  176600. .IP \(bu 2
  176601. \fBPR\fP \fI\%#51209\fP: (\fI\%garethgreenaway\fP) [2018.3] Back\-port PR \fI\%#51124\fP to 2018.3
  176602. @ \fI2019\-01\-17 13:28:32 UTC\fP
  176603. .INDENT 2.0
  176604. .IP \(bu 2
  176605. \fBPR\fP \fI\%#51124\fP: (\fI\%Ch3LL\fP) Handle encoding when opening file for both py2/py3 (refs: \fI\%#51209\fP)
  176606. .IP \(bu 2
  176607. 5916282 Merge pull request \fI\%#51209\fP from garethgreenaway/bp\-51124
  176608. .IP \(bu 2
  176609. 82acce4 Handle encoding when opening file for both py2/py3
  176610. .UNINDENT
  176611. .IP \(bu 2
  176612. \fBPR\fP \fI\%#51184\fP: (\fI\%twangboy\fP) Fix win_lgpo_auditpol salt util on Windows
  176613. @ \fI2019\-01\-16 18:08:01 UTC\fP
  176614. .INDENT 2.0
  176615. .IP \(bu 2
  176616. 094bd33 Merge pull request \fI\%#51184\fP from twangboy/fix_auditpol
  176617. .IP \(bu 2
  176618. 2e68d35 directly call cmd.run_all
  176619. .UNINDENT
  176620. .IP \(bu 2
  176621. \fBPR\fP \fI\%#51191\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50918\fP into 2018.3
  176622. @ \fI2019\-01\-16 18:02:19 UTC\fP
  176623. .INDENT 2.0
  176624. .IP \(bu 2
  176625. \fBPR\fP \fI\%#50918\fP: (\fI\%twangboy\fP) Fix \fItest_debian_ip\fP on Windows (refs: \fI\%#51191\fP)
  176626. .IP \(bu 2
  176627. ac71922 Merge pull request \fI\%#51191\fP from Ch3LL/bp\-50918
  176628. .IP \(bu 2
  176629. 7300d84 Skip debian tests on Windows
  176630. .IP \(bu 2
  176631. 4622433 Fix \fItest_debian_ip\fP on Windows
  176632. .UNINDENT
  176633. .IP \(bu 2
  176634. \fBISSUE\fP \fI\%#49883\fP: (\fI\%kiemlicz\fP) salt\-cloud azurearm is not working (refs: \fI\%#51144\fP)
  176635. .IP \(bu 2
  176636. \fBPR\fP \fI\%#51144\fP: (\fI\%jgleissner\fP) 2018.3 azurearm py3
  176637. @ \fI2019\-01\-15 16:46:35 UTC\fP
  176638. .INDENT 2.0
  176639. .IP \(bu 2
  176640. e7f53a3 Merge pull request \fI\%#51144\fP from jgleissner/2018.3\-azurearm\-py3
  176641. .IP \(bu 2
  176642. 3178f1a msazure.py: remove unused imports
  176643. .IP \(bu 2
  176644. 99a4b9d azurearm: fix list_locations
  176645. .IP \(bu 2
  176646. aebe34b azurearm: fix show_instance function
  176647. .IP \(bu 2
  176648. d80669f msazure: fix object_to_dict for python 3
  176649. .UNINDENT
  176650. .IP \(bu 2
  176651. \fBPR\fP \fI\%#51171\fP: (\fI\%twangboy\fP) Add random sleep time to avoid overloading Windows
  176652. @ \fI2019\-01\-15 16:45:33 UTC\fP
  176653. .INDENT 2.0
  176654. .IP \(bu 2
  176655. 1206f92 Merge pull request \fI\%#51171\fP from twangboy/fix_crypt
  176656. .IP \(bu 2
  176657. 6caa93b Add random sleep time to avoid overloading Windows
  176658. .UNINDENT
  176659. .IP \(bu 2
  176660. \fBPR\fP \fI\%#51174\fP: (\fI\%jpsv\fP) Update OpsGenie to use their V2 API (2018.3)
  176661. @ \fI2019\-01\-15 16:44:54 UTC\fP
  176662. .INDENT 2.0
  176663. .IP \(bu 2
  176664. a96deed Merge pull request \fI\%#51174\fP from jpsv/2018.3
  176665. .IP \(bu 2
  176666. 055823e Update opsgenie.py
  176667. .IP \(bu 2
  176668. 501c8df Merge branch \(aq2018.3\(aq into 2018.3
  176669. .IP \(bu 2
  176670. 220aa8a Update opsgenie.py
  176671. .IP \(bu 2
  176672. 5dc21cc Update to from V1 API to V2
  176673. .IP \(bu 2
  176674. f93ce7c Update to V2 API
  176675. .UNINDENT
  176676. .IP \(bu 2
  176677. \fBISSUE\fP \fI\%#42280\fP: (\fI\%michaelgibson\fP) make ldap eauth 2 factor compatible (refs: \fI\%#42426\fP, \fI\%#45347\fP)
  176678. .IP \(bu 2
  176679. \fBPR\fP \fI\%#51010\fP: (\fI\%amendlik\fP) Allow unauthenticated bind for listing LDAP groups
  176680. @ \fI2019\-01\-15 16:43:42 UTC\fP
  176681. .INDENT 2.0
  176682. .IP \(bu 2
  176683. \fBPR\fP \fI\%#45811\fP: (\fI\%gtmanfred\fP) Fix ldap eauth (refs: \fI\%#51010\fP)
  176684. .IP \(bu 2
  176685. \fBPR\fP \fI\%#45347\fP: (\fI\%amendlik\fP) LDAP group membership (refs: \fI\%#51010\fP)
  176686. .IP \(bu 2
  176687. \fBPR\fP \fI\%#42426\fP: (\fI\%michaelgibson\fP) adding 2\-factor auth capability to ldap eauth module \- \fI\%#42280\fP (refs: \fI\%#45347\fP)
  176688. .IP \(bu 2
  176689. 563d487 Merge pull request \fI\%#51010\fP from amendlik/ldap\-groups
  176690. .IP \(bu 2
  176691. cd336ed Merge branch \(aq2018.3\(aq into ldap\-groups
  176692. .IP \(bu 2
  176693. 94f8ee4 Update unit tests for auth.ldap
  176694. .IP \(bu 2
  176695. 08e36d0 Allow unauthenticated bind for listing LDAP groups
  176696. .UNINDENT
  176697. .IP \(bu 2
  176698. \fBPR\fP \fI\%#51112\fP: (\fI\%s0undt3ch\fP) [2018.3] Update to salt\-bootstrap v2019.01.08
  176699. @ \fI2019\-01\-15 16:42:09 UTC\fP
  176700. .INDENT 2.0
  176701. .IP \(bu 2
  176702. 6dc3752 Merge pull request \fI\%#51112\fP from s0undt3ch/2018.3
  176703. .IP \(bu 2
  176704. 4f1d846 Update to salt\-bootstrap v2019.01.08
  176705. .UNINDENT
  176706. .IP \(bu 2
  176707. \fBPR\fP \fI\%#51097\fP: (\fI\%terminalmage\fP) Fix improper exception raises (2018.3)
  176708. @ \fI2019\-01\-15 16:38:25 UTC\fP
  176709. .INDENT 2.0
  176710. .IP \(bu 2
  176711. b19c990 Merge pull request \fI\%#51097\fP from terminalmage/fix\-keyerror\-raise
  176712. .IP \(bu 2
  176713. a3c0b49 Fix poorly\-written test
  176714. .IP \(bu 2
  176715. c0ff7b1 Fix more incorrect exception raises
  176716. .IP \(bu 2
  176717. f11dbcc Fix improper KeyError raise
  176718. .UNINDENT
  176719. .IP \(bu 2
  176720. \fBPR\fP \fI\%#51169\fP: (\fI\%twangboy\fP) More descriptive error when missing GitPython or PyGit2
  176721. @ \fI2019\-01\-15 16:37:44 UTC\fP
  176722. .INDENT 2.0
  176723. .IP \(bu 2
  176724. 8920a86 Merge pull request \fI\%#51169\fP from twangboy/fix_git_state
  176725. .IP \(bu 2
  176726. f2d1180 More descriptive error when missing GitPython or PyGit2
  176727. .UNINDENT
  176728. .IP \(bu 2
  176729. \fBISSUE\fP \fI\%#51160\fP: (\fI\%amendlik\fP) Minion crashes with long hostname under Python 3 (refs: \fI\%#51173\fP, \fI\%#51161\fP)
  176730. .IP \(bu 2
  176731. \fBPR\fP \fI\%#51173\fP: (\fI\%dwoz\fP) Avoid exceptions by passing bytes to idna
  176732. @ \fI2019\-01\-15 16:32:31 UTC\fP
  176733. .INDENT 2.0
  176734. .IP \(bu 2
  176735. \fBPR\fP \fI\%#51161\fP: (\fI\%amendlik\fP) Ignore exceptions when generating the minion ID (refs: \fI\%#51173\fP)
  176736. .IP \(bu 2
  176737. 58eede6 Merge pull request \fI\%#51173\fP from dwoz/issue51160
  176738. .IP \(bu 2
  176739. 11cc7b3 Remove un\-needed test
  176740. .IP \(bu 2
  176741. 0f87812 Merge develop, Revert exception handling
  176742. .IP \(bu 2
  176743. 7365a1a Pass bytes to idna
  176744. .UNINDENT
  176745. .IP \(bu 2
  176746. \fBPR\fP \fI\%#51147\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176747. @ \fI2019\-01\-15 02:05:51 UTC\fP
  176748. .INDENT 2.0
  176749. .IP \(bu 2
  176750. 06854cf Merge pull request \fI\%#51147\fP from Ch3LL/merge\-2018.3
  176751. .IP \(bu 2
  176752. d39d8b7 Merge branch \(aq2018.3\(aq into merge\-2018.3
  176753. .UNINDENT
  176754. .IP \(bu 2
  176755. \fBISSUE\fP \fI\%#51160\fP: (\fI\%amendlik\fP) Minion crashes with long hostname under Python 3 (refs: \fI\%#51173\fP, \fI\%#51161\fP)
  176756. .IP \(bu 2
  176757. \fBPR\fP \fI\%#51161\fP: (\fI\%amendlik\fP) Ignore exceptions when generating the minion ID (refs: \fI\%#51173\fP)
  176758. @ \fI2019\-01\-14 22:47:54 UTC\fP
  176759. .INDENT 2.0
  176760. .IP \(bu 2
  176761. b79c09e Merge pull request \fI\%#51161\fP from amendlik/long\-hostname
  176762. .IP \(bu 2
  176763. 6fcc4ad Merge branch \(aq2018.3\(aq into long\-hostname
  176764. .UNINDENT
  176765. .IP \(bu 2
  176766. \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)
  176767. .IP \(bu 2
  176768. \fBISSUE\fP \fI\%#3\fP: (\fI\%thatch45\fP) libvirt module (refs: \fI\%#51159\fP)
  176769. .IP \(bu 2
  176770. \fBPR\fP \fI\%#51159\fP: (\fI\%rkrieger\fP) Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  176771. @ \fI2019\-01\-14 18:08:22 UTC\fP
  176772. .INDENT 2.0
  176773. .IP \(bu 2
  176774. 1424734 Merge pull request \fI\%#51159\fP from rkrieger/fix\-issue\-51067
  176775. .IP \(bu 2
  176776. 1440ccf Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  176777. .IP \(bu 2
  176778. 1a4e307 Ignore exceptions when generating the minion ID
  176779. .UNINDENT
  176780. .IP \(bu 2
  176781. \fBPR\fP \fI\%#51146\fP: (\fI\%terminalmage\fP) Fix invalid assignment in vsphere module
  176782. @ \fI2019\-01\-12 21:44:33 UTC\fP
  176783. .INDENT 2.0
  176784. .IP \(bu 2
  176785. 5e37326 Merge pull request \fI\%#51146\fP from terminalmage/fix\-vsphere\-tuple\-issue
  176786. .IP \(bu 2
  176787. 5d60022 Fix invalid assignment in vsphere module
  176788. .UNINDENT
  176789. .IP \(bu 2
  176790. \fBPR\fP \fI\%#51154\fP: (\fI\%twangboy\fP) Add support for Advanced Audit policies
  176791. @ \fI2019\-01\-12 21:43:27 UTC\fP
  176792. .INDENT 2.0
  176793. .IP \(bu 2
  176794. fad8621 Merge pull request \fI\%#51154\fP from twangboy/auditpol
  176795. .IP \(bu 2
  176796. 9064376 Add support for Advanced Audit policies
  176797. .UNINDENT
  176798. .IP \(bu 2
  176799. \fBPR\fP \fI\%#51151\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51061\fP to 2018.3
  176800. @ \fI2019\-01\-12 03:18:44 UTC\fP
  176801. .INDENT 2.0
  176802. .IP \(bu 2
  176803. \fBPR\fP \fI\%#51061\fP: (\fI\%garethgreenaway\fP) [fluorine] fix to salt.utils.vt.Terminal (refs: \fI\%#51151\fP)
  176804. .IP \(bu 2
  176805. f7a100c Merge pull request \fI\%#51151\fP from Ch3LL/bp_51061
  176806. .IP \(bu 2
  176807. 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.
  176808. .UNINDENT
  176809. .IP \(bu 2
  176810. \fBPR\fP \fI\%#51150\fP: (\fI\%Ch3LL\fP) Back\-port \fI\%#49508\fP to 2018.3
  176811. @ \fI2019\-01\-12 03:18:19 UTC\fP
  176812. .INDENT 2.0
  176813. .IP \(bu 2
  176814. \fBPR\fP \fI\%#49508\fP: (\fI\%bergmannf\fP) Fix X509 remote signing on python3 (refs: \fI\%#51150\fP)
  176815. .IP \(bu 2
  176816. 3a50a57 Merge pull request \fI\%#51150\fP from Ch3LL/bp\-49508
  176817. .IP \(bu 2
  176818. 7ae53ad Do not silently ignore errors.
  176819. .IP \(bu 2
  176820. deb0134 Convert to string before sending via \(aqpublish\(aq.
  176821. .IP \(bu 2
  176822. 651c551 Use to_str salt.utils when writing to a file.
  176823. .UNINDENT
  176824. .IP \(bu 2
  176825. \fBISSUE\fP \fI\%#50433\fP: (\fI\%zerthimon\fP) Wildcard grant fails in mysql_grants.present in mysql 8.x (refs: \fI\%#51152\fP)
  176826. .IP \(bu 2
  176827. \fBPR\fP \fI\%#51152\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql module to handle ALL PRIVILEGES grant
  176828. @ \fI2019\-01\-12 03:17:15 UTC\fP
  176829. .INDENT 2.0
  176830. .IP \(bu 2
  176831. 8bb589d Merge pull request \fI\%#51152\fP from garethgreenaway/50433_handle_grants_better
  176832. .IP \(bu 2
  176833. f7caa4d Fixing lint
  176834. .IP \(bu 2
  176835. e8c8c0f Adding some tests to ensure "ALL PRIVILEGES" is handled correctly in 8.0 and 5.6
  176836. .IP \(bu 2
  176837. 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.
  176838. .INDENT 2.0
  176839. .IP \(bu 2
  176840. 74edfd9 Fix pylint
  176841. .IP \(bu 2
  176842. 81a3d47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176843. .IP \(bu 2
  176844. 8a76a19 Merge pull request \fI\%#50858\fP from jasonarewhy/bugfix\-2017.7/ubuntu\-networking\-searchdomain
  176845. .INDENT 2.0
  176846. .IP \(bu 2
  176847. 3395a3d Merge branch \(aq2017.7\(aq into bugfix\-2017.7/ubuntu\-networking\-searchdomain
  176848. .IP \(bu 2
  176849. 69d25aa update debian_ip test
  176850. .IP \(bu 2
  176851. a6b896c get searchdomain in Ubuntu 12+
  176852. .UNINDENT
  176853. .UNINDENT
  176854. .UNINDENT
  176855. .IP \(bu 2
  176856. \fBISSUE\fP \fI\%#50849\fP: (\fI\%5uper5hoot\fP) MySQL version needs to be decoded (refs: \fI\%#51133\fP)
  176857. .IP \(bu 2
  176858. \fBPR\fP \fI\%#51133\fP: (\fI\%5uper5hoot\fP) Fixes mysql server version comparison.
  176859. @ \fI2019\-01\-10 16:45:38 UTC\fP
  176860. .INDENT 2.0
  176861. .IP \(bu 2
  176862. dda1ebb Merge pull request \fI\%#51133\fP from 5uper5hoot/issue\-\fI\%#50849\fP
  176863. .IP \(bu 2
  176864. ec14e13 Fixes mysql server version comparison.
  176865. .UNINDENT
  176866. .IP \(bu 2
  176867. \fBPR\fP \fI\%#50878\fP: (\fI\%max\-arnold\fP) Fix profile outputter docs
  176868. @ \fI2019\-01\-08 18:32:40 UTC\fP
  176869. .INDENT 2.0
  176870. .IP \(bu 2
  176871. 9d4321d Merge pull request \fI\%#50878\fP from max\-arnold/output\-docs
  176872. .IP \(bu 2
  176873. d7403da Fix profile outputter docs
  176874. .UNINDENT
  176875. .IP \(bu 2
  176876. \fBPR\fP \fI\%#51076\fP: (\fI\%OrangeDog\fP) Typos in index_template_present documentation
  176877. @ \fI2019\-01\-08 18:25:20 UTC\fP
  176878. .INDENT 2.0
  176879. .IP \(bu 2
  176880. ce87504 Merge pull request \fI\%#51076\fP from OrangeDog/patch\-1
  176881. .IP \(bu 2
  176882. 568e4fb Revert add \-> check
  176883. .IP \(bu 2
  176884. 4d7ebe7 Typos in index_template_present documentation
  176885. .UNINDENT
  176886. .IP \(bu 2
  176887. \fBPR\fP \fI\%#51081\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176888. @ \fI2019\-01\-07 20:34:16 UTC\fP
  176889. .INDENT 2.0
  176890. .IP \(bu 2
  176891. d08abf4 Merge pull request \fI\%#51081\fP from garethgreenaway/merge\-2018.3
  176892. .IP \(bu 2
  176893. 027804a Merge branch \(aq2018.3\(aq into merge\-2018.3
  176894. .UNINDENT
  176895. .IP \(bu 2
  176896. \fBISSUE\fP \fI\%#50966\fP: (\fI\%klafkoff\fP) 2018.3.3 missing a patch to salt/modules/nxos.py (refs: \fI\%#51080\fP)
  176897. .IP \(bu 2
  176898. \fBPR\fP \fI\%#51080\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to nxos module
  176899. @ \fI2019\-01\-07 18:07:25 UTC\fP
  176900. .INDENT 2.0
  176901. .IP \(bu 2
  176902. 335088b Merge pull request \fI\%#51080\fP from garethgreenaway/50966_nxos_ensure_kwargs_list
  176903. .IP \(bu 2
  176904. 230a66b Merge branch \(aq2018.3\(aq into 50966_nxos_ensure_kwargs_list
  176905. .IP \(bu 2
  176906. 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.
  176907. .INDENT 2.0
  176908. .IP \(bu 2
  176909. a20791b Merge branch \(aq2018.3\(aq into merge\-2018.3
  176910. .UNINDENT
  176911. .UNINDENT
  176912. .IP \(bu 2
  176913. \fBPR\fP \fI\%#51079\fP: (\fI\%terminalmage\fP) Fix shadow.set_date/shadow.set_expire on F28
  176914. @ \fI2019\-01\-07 16:28:36 UTC\fP
  176915. .INDENT 2.0
  176916. .IP \(bu 2
  176917. c47b646 Merge pull request \fI\%#51079\fP from terminalmage/salt\-jenkins\-1238
  176918. .IP \(bu 2
  176919. ccd5c15 Fix shadow.set_date/shadow.set_expire on F28
  176920. .UNINDENT
  176921. .IP \(bu 2
  176922. \fBISSUE\fP \fI\%#47043\fP: (\fI\%xBytez\fP) lsattr slowing down archive.extracted (refs: \fI\%#51044\fP)
  176923. .IP \(bu 2
  176924. \fBPR\fP \fI\%#51044\fP: (\fI\%terminalmage\fP) archive.extracted: Don\(aqt run lsattr when enforcing user/group ownership
  176925. @ \fI2019\-01\-03 19:26:03 UTC\fP
  176926. .INDENT 2.0
  176927. .IP \(bu 2
  176928. aeeb047 Merge pull request \fI\%#51044\fP from terminalmage/issue47043
  176929. .IP \(bu 2
  176930. 787b79a archive.extracted: Don\(aqt run lsattr when enforcing user/group ownership
  176931. .UNINDENT
  176932. .IP \(bu 2
  176933. \fBISSUE\fP \fI\%#50964\fP: (\fI\%gtmanfred\fP) Add a long description to setup.py for the new pypi.org (refs: \fI\%#51031\fP)
  176934. .IP \(bu 2
  176935. \fBPR\fP \fI\%#51034\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#51031\fP to 2018.3
  176936. @ \fI2019\-01\-03 15:42:22 UTC\fP
  176937. .INDENT 2.0
  176938. .IP \(bu 2
  176939. \fBPR\fP \fI\%#51031\fP: (\fI\%waynew\fP) Set long_description (refs: \fI\%#51034\fP)
  176940. .IP \(bu 2
  176941. 04fdae5 Merge pull request \fI\%#51034\fP from garethgreenaway/bp\-51031
  176942. .IP \(bu 2
  176943. cd310c2 Set long_description
  176944. .UNINDENT
  176945. .IP \(bu 2
  176946. \fBISSUE\fP \fI\%#50634\fP: (\fI\%marek\-obuchowicz\fP) Debian pkg.managed gpg/tty issue (refs: \fI\%#50972\fP)
  176947. .IP \(bu 2
  176948. \fBPR\fP \fI\%#50972\fP: (\fI\%pirogoeth\fP) Use gpg\(aqs \-\-batch in apt\-key adv during repo key add
  176949. @ \fI2019\-01\-03 02:34:13 UTC\fP
  176950. .INDENT 2.0
  176951. .IP \(bu 2
  176952. 4685e0e Merge pull request \fI\%#50972\fP from pirogoeth/sjohn/2018.3\-apt\-key\-batch
  176953. .IP \(bu 2
  176954. cd3d755 Merge branch \(aq2018.3\(aq into sjohn/2018.3\-apt\-key\-batch
  176955. .UNINDENT
  176956. .IP \(bu 2
  176957. \fBPR\fP \fI\%#51028\fP: (\fI\%whytewolf\fP) AIX lsattr fix for file module.
  176958. @ \fI2019\-01\-03 01:52:33 UTC\fP
  176959. .INDENT 2.0
  176960. .IP \(bu 2
  176961. 44bc862 Merge pull request \fI\%#51028\fP from whytewolf/aix_lsattr_fix
  176962. .IP \(bu 2
  176963. 1b733c6 Set lsattr functions to return None if \fIsalt.utils.platform.is_aix\fP returns true.
  176964. .IP \(bu 2
  176965. 7410008 Merge branch \(aq2018.3\(aq into sjohn/2018.3\-apt\-key\-batch
  176966. .UNINDENT
  176967. .IP \(bu 2
  176968. \fBPR\fP \fI\%#51018\fP: (\fI\%garethgreenaway\fP) [fluorine] Merge forward from 2017.7 to 2018.3
  176969. @ \fI2019\-01\-01 23:11:02 UTC\fP
  176970. .INDENT 2.0
  176971. .IP \(bu 2
  176972. b4774a8 Merge pull request \fI\%#51018\fP from garethgreenaway/merge\-2018.3
  176973. .INDENT 2.0
  176974. .IP \(bu 2
  176975. 773bf31 Use gpg\(aqs \-\-batch in apt\-key adv during repo key add
  176976. .INDENT 2.0
  176977. .IP \(bu 2
  176978. 9386aab Merge branch \(aq2017.7\(aq into merge\-2018.3
  176979. .IP \(bu 2
  176980. 998feca Merge pull request \fI\%#51030\fP from terminalmage/issue38502
  176981. .INDENT 2.0
  176982. .IP \(bu 2
  176983. 6dbd81f Add unit test to ensure we don\(aqt diff bare repos
  176984. .UNINDENT
  176985. .UNINDENT
  176986. .UNINDENT
  176987. .IP \(bu 2
  176988. 12f7583 Merge branch \(aq2017.7\(aq into merge\-2018.3
  176989. .IP \(bu 2
  176990. 4529150 Merge pull request \fI\%#50977\fP from rallytime/config\-docs
  176991. .INDENT 2.0
  176992. .IP \(bu 2
  176993. 43c39e7 Add documentation to master config docs for job_cache_store_endtime
  176994. .IP \(bu 2
  176995. 887cd07 Add some salt\-api options to the master config docs
  176996. .IP \(bu 2
  176997. 0d49746 Fix some formatting in master config docs
  176998. .UNINDENT
  176999. .IP \(bu 2
  177000. 409594b Merge pull request \fI\%#50991\fP from twangboy/requests_2017.7
  177001. .INDENT 2.0
  177002. .IP \(bu 2
  177003. 32b9d2a Update requests for osx
  177004. .IP \(bu 2
  177005. 413dc72 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into requests_2017.7
  177006. .UNINDENT
  177007. .IP \(bu 2
  177008. e053074 Merge pull request \fI\%#50983\fP from garethgreenaway/bp\-50885
  177009. .INDENT 2.0
  177010. .IP \(bu 2
  177011. 09a8e6e fix a del in cloud vmware that crash when the key isn\(aqt there
  177012. .IP \(bu 2
  177013. 4196690 Update requests to 2.21.0
  177014. .IP \(bu 2
  177015. 23f78b0 Upgrade requests to 2.20.1
  177016. .UNINDENT
  177017. .UNINDENT
  177018. .IP \(bu 2
  177019. \fBPR\fP \fI\%#50990\fP: (\fI\%twangboy\fP) Requests 2018.3
  177020. @ \fI2018\-12\-31 20:19:01 UTC\fP
  177021. .INDENT 2.0
  177022. .IP \(bu 2
  177023. c53723a Merge pull request \fI\%#50990\fP from twangboy/requests_2018.3
  177024. .IP \(bu 2
  177025. e8b9233 Update requests on osx
  177026. .IP \(bu 2
  177027. b22856f Update requests to 2.21.0
  177028. .IP \(bu 2
  177029. 242389b Merge branch \(aq2018.3\(aq of \fI\%https://github.com/saltstack/salt\fP into requests_2018.3
  177030. .IP \(bu 2
  177031. 0d4b799 Upgrade requests to 2.20.1
  177032. .UNINDENT
  177033. .IP \(bu 2
  177034. \fBPR\fP \fI\%#51004\fP: (\fI\%twangboy\fP) Add tests for the win_wusa state and module
  177035. @ \fI2018\-12\-31 20:03:30 UTC\fP
  177036. .INDENT 2.0
  177037. .IP \(bu 2
  177038. cecd108 Merge pull request \fI\%#51004\fP from twangboy/win_wusa
  177039. .IP \(bu 2
  177040. 0e92528 Merge branch \(aq2018.3\(aq into win_wusa
  177041. .IP \(bu 2
  177042. c0d2495 Fix lint, add test docs
  177043. .IP \(bu 2
  177044. 1750270 Add state tests for win_wusa
  177045. .IP \(bu 2
  177046. 6285b64 Update win_wusa and add tests
  177047. .UNINDENT
  177048. .IP \(bu 2
  177049. \fBPR\fP \fI\%#51014\fP: (\fI\%madrisan\fP) ssh module: missing space in error message
  177050. @ \fI2018\-12\-31 19:59:19 UTC\fP
  177051. .INDENT 2.0
  177052. .IP \(bu 2
  177053. 3e0515b Merge pull request \fI\%#51014\fP from madrisan/patch\-1
  177054. .IP \(bu 2
  177055. ab980fb ssh module: missing space in error message
  177056. .UNINDENT
  177057. .IP \(bu 2
  177058. \fBPR\fP \fI\%#50883\fP: (\fI\%terminalmage\fP) Backport \fI\%#49622\fP to 2018.3 branch
  177059. @ \fI2018\-12\-31 19:58:11 UTC\fP
  177060. .INDENT 2.0
  177061. .IP \(bu 2
  177062. \fBPR\fP \fI\%#49622\fP: (\fI\%angeloudy\fP) fix command line options (refs: \fI\%#50883\fP)
  177063. .IP \(bu 2
  177064. 582d6b4 Merge pull request \fI\%#50883\fP from terminalmage/bp\-49622
  177065. .IP \(bu 2
  177066. c93dbfa Update archive.py
  177067. .IP \(bu 2
  177068. 925a9c9 Update archive.py
  177069. .IP \(bu 2
  177070. ed2bed3 fix command line options
  177071. .UNINDENT
  177072. .IP \(bu 2
  177073. \fBPR\fP \fI\%#50945\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.8
  177074. @ \fI2018\-12\-30 00:05:47 UTC\fP
  177075. .INDENT 2.0
  177076. .IP \(bu 2
  177077. fd9711b Merge pull request \fI\%#50945\fP from garethgreenaway/merge\-2017.7
  177078. .IP \(bu 2
  177079. 43b3fa4 Merge branch \(aq2018.3\(aq into merge\-2017.7
  177080. .UNINDENT
  177081. .IP \(bu 2
  177082. \fBISSUE\fP \fI\%#50854\fP: (\fI\%Ch3LL\fP) [fluorine] windows stops when cannot connect to master (refs: \fI\%#50855\fP)
  177083. .IP \(bu 2
  177084. \fBPR\fP \fI\%#51006\fP: (\fI\%dwoz\fP) Let minions try to connect to master indefinitly
  177085. @ \fI2018\-12\-28 21:10:39 UTC\fP
  177086. .INDENT 2.0
  177087. .IP \(bu 2
  177088. \fBPR\fP \fI\%#50855\fP: (\fI\%dwoz\fP) Let minions try to connect to master indefinitly (refs: \fI\%#51006\fP)
  177089. .IP \(bu 2
  177090. b8615e1 Merge pull request \fI\%#51006\fP from dwoz/backport_50855
  177091. .IP \(bu 2
  177092. 5563631 Let minions try to connect to master indefinitly
  177093. .UNINDENT
  177094. .IP \(bu 2
  177095. \fBISSUE\fP \fI\%#50989\fP: (\fI\%mpx8701\fP) SLS error (An exception occurred in this state: Traceback) (refs: \fI\%#51005\fP)
  177096. .IP \(bu 2
  177097. \fBPR\fP \fI\%#51005\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to junos state module
  177098. @ \fI2018\-12\-28 20:51:31 UTC\fP
  177099. .INDENT 2.0
  177100. .IP \(bu 2
  177101. cfed697 Merge pull request \fI\%#51005\fP from garethgreenaway/50989_fixing_junos_state_arguments
  177102. .IP \(bu 2
  177103. 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.
  177104. .IP \(bu 2
  177105. 3cfca8e Merge branch \(aq2018.3\(aq into merge\-2017.7
  177106. .UNINDENT
  177107. .IP \(bu 2
  177108. \fBPR\fP \fI\%#50982\fP: (\fI\%twangboy\fP) Fix issue with LGPO when returning empty dict (2018.3)
  177109. @ \fI2018\-12\-26 19:58:12 UTC\fP
  177110. .INDENT 2.0
  177111. .IP \(bu 2
  177112. daa591b Merge pull request \fI\%#50982\fP from twangboy/fix_lgpo_2018.3
  177113. .IP \(bu 2
  177114. d942934 Get rid of requests import (CaseInsensitiveDict)
  177115. .INDENT 2.0
  177116. .IP \(bu 2
  177117. 6170fa5 Merge branch \(aq2018.3\(aq into merge\-2017.7
  177118. .UNINDENT
  177119. .UNINDENT
  177120. .IP \(bu 2
  177121. \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)
  177122. .IP \(bu 2
  177123. \fBPR\fP \fI\%#50984\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50959\fP to 2018.3
  177124. @ \fI2018\-12\-26 19:29:54 UTC\fP
  177125. .INDENT 2.0
  177126. .IP \(bu 2
  177127. \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)
  177128. .IP \(bu 2
  177129. 110bc66 Merge pull request \fI\%#50984\fP from garethgreenaway/bp\-50959
  177130. .IP \(bu 2
  177131. 20fa5c9 Update sudo.py
  177132. .UNINDENT
  177133. .IP \(bu 2
  177134. \fBPR\fP \fI\%#50958\fP: (\fI\%bdrung\fP) Fix twilio version checking
  177135. @ \fI2018\-12\-25 10:46:15 UTC\fP
  177136. .INDENT 2.0
  177137. .IP \(bu 2
  177138. 8fc89a0 Merge pull request \fI\%#50958\fP from bdrung/fix\-twilio
  177139. .IP \(bu 2
  177140. df8d7b9 Fix twilio version checking
  177141. .INDENT 2.0
  177142. .IP \(bu 2
  177143. d89c9b5 Merge branch \(aq2018.3\(aq into merge\-2017.7
  177144. .UNINDENT
  177145. .UNINDENT
  177146. .IP \(bu 2
  177147. \fBISSUE\fP \fI\%#50947\fP: (\fI\%cachedout\fP) Log full of IPv6 warnings (refs: \fI\%#50962\fP)
  177148. .IP \(bu 2
  177149. \fBPR\fP \fI\%#50962\fP: (\fI\%terminalmage\fP) Remove redundant overrides for ip_address/ip_interface
  177150. @ \fI2018\-12\-21 22:04:34 UTC\fP
  177151. .INDENT 2.0
  177152. .IP \(bu 2
  177153. bb87822 Merge pull request \fI\%#50962\fP from terminalmage/ipv6\-warnings
  177154. .IP \(bu 2
  177155. 773b983 Merge branch \(aq2018.3\(aq into ipv6\-warnings
  177156. .IP \(bu 2
  177157. f3b1254 Remove redundant overrides for ip_address/ip_interface
  177158. .INDENT 2.0
  177159. .IP \(bu 2
  177160. cea01e7 Updating valigdate_tgt to ensure tests pass.
  177161. .IP \(bu 2
  177162. cdc7825 yet another lint fix.
  177163. .IP \(bu 2
  177164. f44a87e One last lint fix.
  177165. .IP \(bu 2
  177166. 45f363b Fixing various lint errors.
  177167. .IP \(bu 2
  177168. 6a65bf9 Merge branch \(aq2017.7\(aq into merge\-2017.7
  177169. .IP \(bu 2
  177170. 747dd69 Merge pull request \fI\%#50876\fP from terminalmage/issue50153
  177171. .INDENT 2.0
  177172. .IP \(bu 2
  177173. 676a12a Fix compound matching in eauth
  177174. .UNINDENT
  177175. .IP \(bu 2
  177176. 07fca64 Merge pull request \fI\%#50909\fP from damon\-atkins/jenkins_pylint
  177177. .INDENT 2.0
  177178. .IP \(bu 2
  177179. da1fc32 change params.CHANGE_BRANCH to env.CHANGE_BRANCH
  177180. .UNINDENT
  177181. .IP \(bu 2
  177182. e7f0ab6 Merge pull request \fI\%#50873\fP from Ch3LL/bp\-50740
  177183. .INDENT 2.0
  177184. .IP \(bu 2
  177185. 5fd9ed9 Merge branch \(aq2017.7\(aq into bp\-50740
  177186. .UNINDENT
  177187. .IP \(bu 2
  177188. 2f77b2d Merge pull request \fI\%#50869\fP from garethgreenaway/50848_mysql_exception_test
  177189. .INDENT 2.0
  177190. .IP \(bu 2
  177191. 3767d4f Merge branch \(aq2017.7\(aq into 50848_mysql_exception_test
  177192. .IP \(bu 2
  177193. af3e145 Cleanup.
  177194. .IP \(bu 2
  177195. b85c5bf Adding a test to ensure exception handling is correct.
  177196. .INDENT 2.0
  177197. .IP \(bu 2
  177198. 4242e64 Merge branch \(aq2017.7\(aq into bp\-50740
  177199. .UNINDENT
  177200. .UNINDENT
  177201. .IP \(bu 2
  177202. a5caab7 Merge pull request \fI\%#50872\fP from Ch3LL/bp\-50864
  177203. .INDENT 2.0
  177204. .IP \(bu 2
  177205. fc9c64b fix typo in file.managed documentation
  177206. .IP \(bu 2
  177207. fd73f86 Catch UnicodeDecodeErrors in id verification
  177208. .UNINDENT
  177209. .UNINDENT
  177210. .UNINDENT
  177211. .IP \(bu 2
  177212. \fBPR\fP \fI\%#50937\fP: (\fI\%Ch3LL\fP) Fix external_pillars documentation
  177213. @ \fI2018\-12\-20 19:15:20 UTC\fP
  177214. .INDENT 2.0
  177215. .IP \(bu 2
  177216. 49f2a35 Merge pull request \fI\%#50937\fP from Ch3LL/pillar_doc
  177217. .IP \(bu 2
  177218. 1f01489 Fix external_pillars documentation
  177219. .UNINDENT
  177220. .IP \(bu 2
  177221. \fBISSUE\fP \fI\%#50919\fP: (\fI\%dpkirchner\fP) state.apply test documentation unclear (refs: \fI\%#50940\fP)
  177222. .IP \(bu 2
  177223. \fBPR\fP \fI\%#50940\fP: (\fI\%terminalmage\fP) Fix confusing state module documentation
  177224. @ \fI2018\-12\-20 18:29:26 UTC\fP
  177225. .INDENT 2.0
  177226. .IP \(bu 2
  177227. 4213527 Merge pull request \fI\%#50940\fP from terminalmage/issue50919
  177228. .IP \(bu 2
  177229. 3318927 Fix confusing state module documentation
  177230. .UNINDENT
  177231. .IP \(bu 2
  177232. \fBPR\fP \fI\%#50929\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_lgpo_netsh\fP on Windows for Py3 (2018.3)
  177233. @ \fI2018\-12\-20 17:50:37 UTC\fP
  177234. .INDENT 2.0
  177235. .IP \(bu 2
  177236. 421e4f4 Merge pull request \fI\%#50929\fP from twangboy/fix_test_lgpo_netsh_2018.3
  177237. .IP \(bu 2
  177238. 01f9beb Fix failing lgpo netsh tests
  177239. .UNINDENT
  177240. .IP \(bu 2
  177241. \fBPR\fP \fI\%#50917\fP: (\fI\%dwoz\fP) Cherry pick test fixes from fluorine
  177242. @ \fI2018\-12\-19 17:56:19 UTC\fP
  177243. .INDENT 2.0
  177244. .IP \(bu 2
  177245. b08b7e1 Merge pull request \fI\%#50917\fP from dwoz/test_fixes
  177246. .IP \(bu 2
  177247. 16d10fb Fix linter warnings
  177248. .IP \(bu 2
  177249. b22f827 Increase and standardize ShellCase timeouts
  177250. .IP \(bu 2
  177251. a5c8c18 Do not pass unicode in environment
  177252. .UNINDENT
  177253. .IP \(bu 2
  177254. \fBPR\fP \fI\%#50913\fP: (\fI\%bdrung\fP) Fix documentation build
  177255. @ \fI2018\-12\-19 16:03:55 UTC\fP
  177256. .INDENT 2.0
  177257. .IP \(bu 2
  177258. 59df6b4 Merge pull request \fI\%#50913\fP from bdrung/fix\-doc\-build
  177259. .IP \(bu 2
  177260. ecdb452 doc: Indroduce MOCK_MODULES_MAPPING
  177261. .IP \(bu 2
  177262. cf64824 doc: Move mock_decorator_with_params up
  177263. .IP \(bu 2
  177264. 08ef669 doc: Address pylint issues in conf.py
  177265. .IP \(bu 2
  177266. 67a3e37 doc: Mark preamble variable as raw string
  177267. .IP \(bu 2
  177268. b1e6080 doc: Fix reference to salt executors
  177269. .IP \(bu 2
  177270. e48b324 doc: Replace xa0 (non\-breaking space) by spaces
  177271. .IP \(bu 2
  177272. b973e7a doc: Fix iterating over the Mock object in Python 3
  177273. .IP \(bu 2
  177274. bb29948 doc: Do not mock non\-existing __mro_entries__ attribute
  177275. .IP \(bu 2
  177276. e6cf3c4 Do not mock json when building the documentation
  177277. .IP \(bu 2
  177278. 4acaf45 Fix sphynx error about tornado.version_info
  177279. .UNINDENT
  177280. .IP \(bu 2
  177281. \fBISSUE\fP \fI\%#50892\fP: (\fI\%cruscio\fP) archive.extracted source_hash is case sensitive (refs: \fI\%#50906\fP)
  177282. .IP \(bu 2
  177283. \fBPR\fP \fI\%#50906\fP: (\fI\%garethgreenaway\fP) [2018.3] Ensure source_hash returned from get_source_sum is lowercase.
  177284. @ \fI2018\-12\-19 04:22:23 UTC\fP
  177285. .INDENT 2.0
  177286. .IP \(bu 2
  177287. f4e6b88 Merge pull request \fI\%#50906\fP from garethgreenaway/50892_archive_extracted_source_hash_case_sensitive
  177288. .IP \(bu 2
  177289. bcf8f06 fixing lint
  177290. .IP \(bu 2
  177291. 543ec7b Ensure source_hash returned from get_source_sum is lowercase.
  177292. .UNINDENT
  177293. .IP \(bu 2
  177294. \fBPR\fP \fI\%#50867\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177295. @ \fI2018\-12\-14 21:32:23 UTC\fP
  177296. .INDENT 2.0
  177297. .IP \(bu 2
  177298. b95b44f Merge pull request \fI\%#50867\fP from Ch3LL/merge\-2018.3
  177299. .IP \(bu 2
  177300. 512293f Remove dunder_dictionaries.rst. Was added to modules/developing.rst
  177301. .IP \(bu 2
  177302. 89b4e09 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  177303. .IP \(bu 2
  177304. 858cfac Merge pull request \fI\%#50863\fP from 5uper5hoot/fix\-issue\-50848
  177305. .INDENT 2.0
  177306. .IP \(bu 2
  177307. c90d201 Unpack exception args in python3 compatible way.
  177308. .UNINDENT
  177309. .IP \(bu 2
  177310. e28b2ba Merge pull request \fI\%#50752\fP from kstreee/fix\-memory\-leak
  177311. .INDENT 2.0
  177312. .IP \(bu 2
  177313. 98cc63a Fixes a memory leak un\-cleared stream connections.
  177314. .UNINDENT
  177315. .IP \(bu 2
  177316. 1f57602 Merge pull request \fI\%#50837\fP from Ch3LL/pyren_doc
  177317. .INDENT 2.0
  177318. .IP \(bu 2
  177319. a873019 Clarify py render docs when data context is available
  177320. .UNINDENT
  177321. .IP \(bu 2
  177322. fdff675 Merge pull request \fI\%#50844\fP from twangboy/fix_grains
  177323. .INDENT 2.0
  177324. .IP \(bu 2
  177325. 473f4d7 Fix some unrelated lint
  177326. .IP \(bu 2
  177327. fd1a072 Fix grains for future windows releases
  177328. .UNINDENT
  177329. .IP \(bu 2
  177330. 32dfaba Merge pull request \fI\%#50816\fP from dubb\-b/2017.7
  177331. .INDENT 2.0
  177332. .IP \(bu 2
  177333. dc7ff48 Pinning bootstrap to the tagged version of salt.
  177334. .UNINDENT
  177335. .IP \(bu 2
  177336. b1e5f3f Merge pull request \fI\%#50709\fP from mattLLVW/service_unmask
  177337. .INDENT 2.0
  177338. .IP \(bu 2
  177339. b199255 Merge branch \(aq2017.7\(aq into service_unmask
  177340. .IP \(bu 2
  177341. 38addd1 salt style guideline
  177342. .IP \(bu 2
  177343. 823c4ad Implement unmask in states.services
  177344. .IP \(bu 2
  177345. 91a6bf5 Functional unmask, must add tests
  177346. .UNINDENT
  177347. .IP \(bu 2
  177348. e4e9563 Merge pull request \fI\%#50633\fP from astronouth7303/loader\-docs
  177349. .INDENT 2.0
  177350. .IP \(bu 2
  177351. 03e3168 whitelist_modules is linked via enable_whitelist_modules for some reason? idk
  177352. .IP \(bu 2
  177353. 5ca1f8e Typos
  177354. .IP \(bu 2
  177355. 7cb1a87 Add a quick index of loader\-related settings
  177356. .IP \(bu 2
  177357. 318ca48 Make a note to not import modules
  177358. .IP \(bu 2
  177359. 6294658 Merge remote\-tracking branch \(aqorigin/2017.7\(aq into loader\-docs
  177360. .IP \(bu 2
  177361. 678958e Editing
  177362. .IP \(bu 2
  177363. 9d59629 Merge branch \(aq2017.7\(aq into loader\-docs
  177364. .IP \(bu 2
  177365. 374d0e9 Finish the last sections
  177366. .IP \(bu 2
  177367. 98da110 Migrate Dynamic Module Distribution to Modular Systems.
  177368. .IP \(bu 2
  177369. 1bdd49d Add more links and write some system summaries
  177370. .IP \(bu 2
  177371. bd3796a Update TOC
  177372. .IP \(bu 2
  177373. 3a9ab1b Merge dunders into developing, expand to cover all dunders.
  177374. .IP \(bu 2
  177375. d06739a Add short writeups for a bunch of systems.
  177376. .IP \(bu 2
  177377. 705e7e4 Add a bunch of cross linking
  177378. .IP \(bu 2
  177379. 40f9b16 Add missing module type sections
  177380. .IP \(bu 2
  177381. 172d8c2 Refactor headings
  177382. .IP \(bu 2
  177383. 53154a0 Oops, missed that
  177384. .IP \(bu 2
  177385. 0dcd341 Possible horrific use of toctrees? maybe
  177386. .IP \(bu 2
  177387. bed3509 Refactor, add a TOC
  177388. .IP \(bu 2
  177389. f647c1d Fill in some missing modules
  177390. .IP \(bu 2
  177391. 9d4b596 Merge branch \(aq2017.7\(aq into loader\-docs
  177392. .IP \(bu 2
  177393. 26468df Add missing blank line
  177394. .IP \(bu 2
  177395. 205fea9 Some more revising
  177396. .IP \(bu 2
  177397. d4a8f7e Remove some code from some links
  177398. .IP \(bu 2
  177399. 65e4199 I feel like it should be up there
  177400. .IP \(bu 2
  177401. d44f5ce Rephrase footnote
  177402. .IP \(bu 2
  177403. 125e46e Add section on how modules get loaded, including giant table of names
  177404. .IP \(bu 2
  177405. 5bfc6c6 Update reference to modules/index
  177406. .IP \(bu 2
  177407. 4b096c1 Move all the module\-development documentation into a single folder
  177408. .UNINDENT
  177409. .IP \(bu 2
  177410. dcdb9b2 Merge pull request \fI\%#50750\fP from bewing/pepa12
  177411. .INDENT 2.0
  177412. .IP \(bu 2
  177413. 9931a41 Fix last key detection in pepa key_value_to_tree
  177414. .UNINDENT
  177415. .IP \(bu 2
  177416. cb85d5d Merge pull request \fI\%#50733\fP from marmarek/patch\-3
  177417. .INDENT 2.0
  177418. .IP \(bu 2
  177419. 1011421 Report salt\-call exit code from ssh_py_shim.py
  177420. .UNINDENT
  177421. .IP \(bu 2
  177422. b086ff3 Merge pull request \fI\%#50756\fP from GwiYeong/local\-client\-fix
  177423. .INDENT 2.0
  177424. .IP \(bu 2
  177425. c488092 fix local client missing minion return
  177426. .UNINDENT
  177427. .UNINDENT
  177428. .IP \(bu 2
  177429. \fBISSUE\fP \fI\%#50850\fP: (\fI\%akrus\fP) key_cache: sched prints error messages in logs (refs: \fI\%#50859\fP)
  177430. .IP \(bu 2
  177431. \fBPR\fP \fI\%#50859\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes for key_cache and python3
  177432. @ \fI2018\-12\-13 23:57:07 UTC\fP
  177433. .INDENT 2.0
  177434. .IP \(bu 2
  177435. 216fa14 Merge pull request \fI\%#50859\fP from garethgreenaway/50850_python_key_cache_file_binary
  177436. .IP \(bu 2
  177437. ebc9a01 When reading and writing the key cache file, when using Python3, ensuring the file is read & written in binary mode.
  177438. .UNINDENT
  177439. .IP \(bu 2
  177440. \fBPR\fP \fI\%#50828\fP: (\fI\%twangboy\fP) Fix issues with lgpo state and util
  177441. @ \fI2018\-12\-13 16:37:33 UTC\fP
  177442. .INDENT 2.0
  177443. .IP \(bu 2
  177444. 6b45aad Merge pull request \fI\%#50828\fP from twangboy/fix_lgpo
  177445. .IP \(bu 2
  177446. 05baa95 Merge branch \(aq2018.3\(aq into fix_lgpo
  177447. .UNINDENT
  177448. .IP \(bu 2
  177449. \fBPR\fP \fI\%#50843\fP: (\fI\%bdrung\fP) Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi
  177450. @ \fI2018\-12\-12 20:36:32 UTC\fP
  177451. .INDENT 2.0
  177452. .IP \(bu 2
  177453. 6ea059d Merge pull request \fI\%#50843\fP from bdrung/fix\-tests
  177454. .IP \(bu 2
  177455. 0d00ae4 Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi
  177456. .UNINDENT
  177457. .IP \(bu 2
  177458. \fBISSUE\fP \fI\%#50829\fP: (\fI\%ghost\fP) process.absent UnicodeDecodeError (refs: \fI\%#50839\fP)
  177459. .IP \(bu 2
  177460. \fBPR\fP \fI\%#50839\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError in ps module
  177461. @ \fI2018\-12\-12 19:59:12 UTC\fP
  177462. .INDENT 2.0
  177463. .IP \(bu 2
  177464. 14d7d1d Merge pull request \fI\%#50839\fP from terminalmage/issue50829
  177465. .IP \(bu 2
  177466. 3a3d9b7 Ensure that unicode types returned from compatibility funcs
  177467. .IP \(bu 2
  177468. 1a00abc Add unit test for _get_proc_cmdline
  177469. .IP \(bu 2
  177470. 9eaa2ed Remove extraneous comments
  177471. .UNINDENT
  177472. .IP \(bu 2
  177473. \fBISSUE\fP \fI\%saltstack/salt#49393\fP: (\fI\%Poil\fP) file.directory recurse not always changing perms (refs: \fI\%#50653\fP)
  177474. .IP \(bu 2
  177475. \fBPR\fP \fI\%#50653\fP: (\fI\%lexvella\fP) Check file_mode in file.directory and _check_directory
  177476. @ \fI2018\-12\-12 16:30:52 UTC\fP
  177477. .INDENT 2.0
  177478. .IP \(bu 2
  177479. 264a042 Merge pull request \fI\%#50653\fP from lexvella/2018.3
  177480. .IP \(bu 2
  177481. 4ea9386 Merge branch \(aq2018.3\(aq into 2018.3
  177482. .IP \(bu 2
  177483. 42e4ab3 Merge branch \(aq2018.3\(aq into 2018.3
  177484. .IP \(bu 2
  177485. 79f6b42 Check file_mode in file.directory and _check_directory
  177486. .INDENT 2.0
  177487. .INDENT 3.5
  177488. .INDENT 0.0
  177489. .IP \(bu 2
  177490. 1233e2b Fix some lint
  177491. .IP \(bu 2
  177492. 56c0e55 Fix issues with lgpo state and util
  177493. .UNINDENT
  177494. .UNINDENT
  177495. .UNINDENT
  177496. .UNINDENT
  177497. .IP \(bu 2
  177498. \fBISSUE\fP \fI\%#45026\fP: (\fI\%angeloudy\fP) bytes error in mysql module (refs: \fI\%#50823\fP)
  177499. .IP \(bu 2
  177500. \fBPR\fP \fI\%#50823\fP: (\fI\%terminalmage\fP) salt.modules.mysql: Decode fetch results before making string comparisons
  177501. @ \fI2018\-12\-11 21:04:41 UTC\fP
  177502. .INDENT 2.0
  177503. .IP \(bu 2
  177504. a8ad17a Merge pull request \fI\%#50823\fP from terminalmage/issue45026
  177505. .IP \(bu 2
  177506. ec8e116 Decode fetch results before making string comparisons
  177507. .UNINDENT
  177508. .IP \(bu 2
  177509. \fBPR\fP \fI\%#50817\fP: (\fI\%dubb\-b\fP) Adding git \(aqv\(aq to the bootstrap options
  177510. @ \fI2018\-12\-11 17:28:10 UTC\fP
  177511. .INDENT 2.0
  177512. .IP \(bu 2
  177513. e31e731 Merge pull request \fI\%#50817\fP from dubb\-b/2018.3
  177514. .IP \(bu 2
  177515. 48fc01f Adding git \(aqv\(aq to the bootstrap options
  177516. .UNINDENT
  177517. .IP \(bu 2
  177518. \fBPR\fP \fI\%#50780\fP: (\fI\%twangboy\fP) Add netsh mechanism in the LGPO module
  177519. @ \fI2018\-12\-10 22:09:20 UTC\fP
  177520. .INDENT 2.0
  177521. .IP \(bu 2
  177522. 9b6b39c Merge pull request \fI\%#50780\fP from twangboy/lgpo_netsh
  177523. .IP \(bu 2
  177524. 5eea728 Fix some lint
  177525. .IP \(bu 2
  177526. f077783 Add some tests
  177527. .IP \(bu 2
  177528. 2dde12a Fix one more lint item
  177529. .IP \(bu 2
  177530. c55b7b4 Fix some lint
  177531. .IP \(bu 2
  177532. 1247598 Add more policies
  177533. .IP \(bu 2
  177534. b2b9795 Fix overly long lines
  177535. .IP \(bu 2
  177536. f18d1aa Add additional policies that use netsh
  177537. .IP \(bu 2
  177538. cb50648 Add versionadded tags
  177539. .IP \(bu 2
  177540. 00cbf26 Add the netsh mechanism to the lgpo module
  177541. .UNINDENT
  177542. .IP \(bu 2
  177543. \fBPR\fP \fI\%#50783\fP: (\fI\%sathieu\fP) gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs
  177544. @ \fI2018\-12\-10 20:34:53 UTC\fP
  177545. .INDENT 2.0
  177546. .IP \(bu 2
  177547. 0351296 Merge pull request \fI\%#50783\fP from sathieu/gitfs_stalerefs_unicode
  177548. .IP \(bu 2
  177549. ef160a6 gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs
  177550. .UNINDENT
  177551. .IP \(bu 2
  177552. \fBISSUE\fP \fI\%#45867\fP: (\fI\%Nick2253\fP) Icinga2 Module uses incorrect paths (refs: \fI\%#50615\fP)
  177553. .IP \(bu 2
  177554. \fBPR\fP \fI\%#50765\fP: (\fI\%ClaudiuPID\fP) Fix icinga2 cert path
  177555. @ \fI2018\-12\-10 18:10:24 UTC\fP
  177556. .INDENT 2.0
  177557. .IP \(bu 2
  177558. \fBPR\fP \fI\%#50615\fP: (\fI\%ClaudiuPID\fP) Fixes icinga2 certs path for newer versions 2.8+ (refs: \fI\%#50765\fP)
  177559. .IP \(bu 2
  177560. deadf9c Merge pull request \fI\%#50765\fP from ClaudiuPID/fix\-icinga2\-cert\-path
  177561. .IP \(bu 2
  177562. ce1842e Merge branch \(aq2018.3\(aq into fix\-icinga2\-cert\-path
  177563. .IP \(bu 2
  177564. 31878d5 Pylint fixes
  177565. .IP \(bu 2
  177566. 47bfba1 Migrated to cmd.run_all and tested on working srv
  177567. .IP \(bu 2
  177568. a1dddce Fixes icinga2 certs path for newer versions 2.8+
  177569. .UNINDENT
  177570. .IP \(bu 2
  177571. \fBPR\fP \fI\%#50692\fP: (\fI\%terminalmage\fP) Update a couple test modules to use with_tempdir/with_tempfile decorators
  177572. @ \fI2018\-12\-10 17:24:02 UTC\fP
  177573. .INDENT 2.0
  177574. .IP \(bu 2
  177575. 9f8289b Merge pull request \fI\%#50692\fP from terminalmage/update\-tests
  177576. .IP \(bu 2
  177577. 36a4a1a Merge branch \(aq2018.3\(aq into update\-tests
  177578. .IP \(bu 2
  177579. be14517 Make x509 tests use tempfiles instead of hard\-coding them
  177580. .IP \(bu 2
  177581. a394cd7 Update file integration tests to use decorator for tempdirs
  177582. .UNINDENT
  177583. .IP \(bu 2
  177584. \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)
  177585. .IP \(bu 2
  177586. \fBPR\fP \fI\%#50768\fP: (\fI\%sathieu\fP) git_pillar: Add support for all_saltenvs parameter
  177587. @ \fI2018\-12\-10 16:39:37 UTC\fP
  177588. .INDENT 2.0
  177589. .IP \(bu 2
  177590. 3a71567 Merge pull request \fI\%#50768\fP from sathieu/git_pillar_all_saltenvs
  177591. .IP \(bu 2
  177592. e971412 git_pillar: Add support for all_saltenvs parameter
  177593. .UNINDENT
  177594. .IP \(bu 2
  177595. \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)
  177596. .IP \(bu 2
  177597. \fBPR\fP \fI\%#50796\fP: (\fI\%dwoz\fP) Fix \fI\%#48801\fP min, max, inact, and warn changes
  177598. @ \fI2018\-12\-10 16:30:14 UTC\fP
  177599. .INDENT 2.0
  177600. .IP \(bu 2
  177601. 12a8447 Merge pull request \fI\%#50796\fP from dwoz/issue48801
  177602. .IP \(bu 2
  177603. 6b95223 fix linter errors
  177604. .IP \(bu 2
  177605. 87a04df Fix \fI\%#48801\fP min, max, inact, and warn changes
  177606. .UNINDENT
  177607. .IP \(bu 2
  177608. \fBISSUE\fP \fI\%#46388\fP: (\fI\%dynek\fP) IPv4 & v6 network configuration on Debian (refs: \fI\%#49355\fP)
  177609. .IP \(bu 2
  177610. \fBISSUE\fP \fI\%#40262\fP: (\fI\%pjediny\fP) Salt enforces configuration from /etc/network/interfaces.d/* to /etc/network/interface (refs: \fI\%#49355\fP)
  177611. .IP \(bu 2
  177612. \fBISSUE\fP \fI\%#38672\fP: (\fI\%valentin2105\fP) IPv6 Network states is incomplete (refs: \fI\%#49355\fP)
  177613. .IP \(bu 2
  177614. \fBPR\fP \fI\%#50804\fP: (\fI\%Ch3LL\fP) Back\-port \fI\%#49355\fP to 2018.3
  177615. @ \fI2018\-12\-10 16:21:31 UTC\fP
  177616. .INDENT 2.0
  177617. .IP \(bu 2
  177618. \fBPR\fP \fI\%#49355\fP: (\fI\%MTecknology\fP) Improve management of interfaces in debian\-based distributions (refs: \fI\%#50804\fP)
  177619. .IP \(bu 2
  177620. \fBPR\fP \fI\%#46980\fP: (\fI\%MTecknology\fP) Fix broken rendering debian_eth.jinja. (refs: \fI\%#49355\fP)
  177621. .IP \(bu 2
  177622. b266e8b Merge pull request \fI\%#50804\fP from Ch3LL/bp\-49355
  177623. .IP \(bu 2
  177624. d34eade Use a temp file instead of /etc/network/interfaces for unit tests.
  177625. .IP \(bu 2
  177626. 622c354 Support reading multiple addresses from interface files.
  177627. .IP \(bu 2
  177628. 15c34fe Support unicode in space\-delimited list; fixes unit tests in py2.
  177629. .IP \(bu 2
  177630. 0b59561 Added documentation about debian interfaces.d/*. (Fixes: \fI\%#40262\fP)
  177631. .IP \(bu 2
  177632. 1b096fb Removed python lint.
  177633. .IP \(bu 2
  177634. 6e41225 Finished adding support for multiple IP addresses.
  177635. .IP \(bu 2
  177636. 4c7df5f Cleaned up documentation/examples in states.network:
  177637. .IP \(bu 2
  177638. 601f434 Added support for \-ipaddrs and \-ipv6ipaddrs to modules.debian_ip().
  177639. .IP \(bu 2
  177640. 638f899 Added support for loopback devices to modules.debian_ip(). (Fixes: \fI\%#38672\fP)
  177641. .IP \(bu 2
  177642. cf61c8d Added a bunch of unit tests for modules.debian_ip.build_interface().
  177643. .IP \(bu 2
  177644. b905cf6 Added support for dns_{nameservers,search} being a list or string.
  177645. .UNINDENT
  177646. .IP \(bu 2
  177647. \fBPR\fP \fI\%#50767\fP: (\fI\%dwoz\fP) Make sure ldap passwords are honored
  177648. @ \fI2018\-12\-05 22:59:17 UTC\fP
  177649. .INDENT 2.0
  177650. .IP \(bu 2
  177651. dc9414c Merge pull request \fI\%#50767\fP from dwoz/ldap_no_pass
  177652. .IP \(bu 2
  177653. 67aa591 Fix linter errors
  177654. .IP \(bu 2
  177655. be3945a Remove crufty import
  177656. .IP \(bu 2
  177657. 91f50a4 Add more ldap auth tests for ZD\-2993
  177658. .IP \(bu 2
  177659. 055a8d5 Make sure ldap passwords are honored
  177660. .UNINDENT
  177661. .IP \(bu 2
  177662. \fBISSUE\fP \fI\%#50364\fP: (\fI\%sathieu\fP) git_pillar mountpoint ignores the root parameter (refs: \fI\%#50626\fP)
  177663. .IP \(bu 2
  177664. \fBPR\fP \fI\%#50626\fP: (\fI\%sathieu\fP) git_pillar: Allow root and mountpoint parameters together
  177665. @ \fI2018\-12\-05 17:46:59 UTC\fP
  177666. .INDENT 2.0
  177667. .IP \(bu 2
  177668. 60aa0d5 Merge pull request \fI\%#50626\fP from sathieu/git_pillar_mountpoint_and_root
  177669. .IP \(bu 2
  177670. 5423c27 git_pillar: Allow root and mountpoint parameters together
  177671. .UNINDENT
  177672. .IP \(bu 2
  177673. \fBPR\fP \fI\%#50745\fP: (\fI\%bbinet\fP) Fix grafana dashboard updating when nothing has changed
  177674. @ \fI2018\-12\-04 19:26:32 UTC\fP
  177675. .INDENT 2.0
  177676. .IP \(bu 2
  177677. c02387e Merge pull request \fI\%#50745\fP from bbinet/fix\-grafana\-dashboard\-update
  177678. .IP \(bu 2
  177679. 7019d47 Fix grafana dashboard updating when nothing has changed
  177680. .UNINDENT
  177681. .IP \(bu 2
  177682. \fBPR\fP \fI\%#50737\fP: (\fI\%garethgreenaway\fP) [develop] Merge forward from 2017.7 to 2018.8
  177683. @ \fI2018\-12\-04 16:02:13 UTC\fP
  177684. .INDENT 2.0
  177685. .IP \(bu 2
  177686. ae81498 Merge pull request \fI\%#50737\fP from garethgreenaway/merge\-2017.7
  177687. .IP \(bu 2
  177688. fde8db5 Merge branch \(aq2017.7\(aq into merge\-2017.7
  177689. .IP \(bu 2
  177690. 246c055 Merge pull request \fI\%#50718\fP from dwoz/run_run_timeout
  177691. .INDENT 2.0
  177692. .IP \(bu 2
  177693. ecd8486 Honor run_run timeout for shell tests
  177694. .UNINDENT
  177695. .IP \(bu 2
  177696. 979b3aa Merge pull request \fI\%#50702\fP from damon\-atkins/jenkins_pylint
  177697. .INDENT 2.0
  177698. .IP \(bu 2
  177699. 5936066 ensure archiveArtifacts are always collected. Use CHANGE_BRANCH to detect merge\-forward
  177700. .UNINDENT
  177701. .IP \(bu 2
  177702. 22acaaa Merge pull request \fI\%#50632\fP from astronouth7303/loader\-exception\-handler
  177703. .INDENT 2.0
  177704. .IP \(bu 2
  177705. 0f72815 Merge branch \(aq2017.7\(aq into loader\-exception\-handler
  177706. .UNINDENT
  177707. .IP \(bu 2
  177708. d9e7be1 Merge pull request \fI\%#50670\fP from damon\-atkins/jenkins_pylint
  177709. .INDENT 2.0
  177710. .IP \(bu 2
  177711. b6d1605 ci/lint corrected filenames and test condition on full lint Also fix CODEOWNER team name
  177712. .INDENT 2.0
  177713. .IP \(bu 2
  177714. 194801a Merge branch \(aqloader\-exception\-handler\(aq of github.com:astronouth7303/salt into loader\-exception\-handler
  177715. .INDENT 2.0
  177716. .IP \(bu 2
  177717. dadeb0d Merge branch \(aq2017.7\(aq into loader\-exception\-handler
  177718. .UNINDENT
  177719. .IP \(bu 2
  177720. 8697744 Use single quotes per style guide
  177721. .IP \(bu 2
  177722. 07868f1 Improve logging output
  177723. .IP \(bu 2
  177724. fb05bd5 Eat an exception from an entry point instead of letting it kill the system.
  177725. .UNINDENT
  177726. .UNINDENT
  177727. .UNINDENT
  177728. .IP \(bu 2
  177729. \fBPR\fP \fI\%#50685\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177730. @ \fI2018\-11\-30 18:46:07 UTC\fP
  177731. .INDENT 2.0
  177732. .IP \(bu 2
  177733. edaa9fe Merge pull request \fI\%#50685\fP from Ch3LL/merge_2018.3
  177734. .IP \(bu 2
  177735. d46aff0 Merge branch 2017.7 into 2018.3
  177736. .INDENT 2.0
  177737. .IP \(bu 2
  177738. 6dc3afc Merge pull request \fI\%#50672\fP from garethgreenaway/49691_file_replace_search_only_return_false
  177739. .INDENT 2.0
  177740. .IP \(bu 2
  177741. 7e7df06 lint
  177742. .IP \(bu 2
  177743. 6b73c76 When using file.replace, with the search_only option, if the pattern does not exist in the file then we should return False.
  177744. .UNINDENT
  177745. .IP \(bu 2
  177746. 1236b51 Merge pull request \fI\%#50659\fP from garethgreenaway/49954_gem_installed_less_than_greater_than_support
  177747. .INDENT 2.0
  177748. .IP \(bu 2
  177749. 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.
  177750. .UNINDENT
  177751. .IP \(bu 2
  177752. 6317f3a Merge pull request \fI\%#50583\fP from damon\-atkins/jenkins_pylint
  177753. .INDENT 2.0
  177754. .IP \(bu 2
  177755. 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/*
  177756. .UNINDENT
  177757. .IP \(bu 2
  177758. 15bf09a Merge pull request \fI\%#50605\fP from Oloremo/fix\-supervisord\-dead\-state\-idempotency
  177759. .INDENT 2.0
  177760. .IP \(bu 2
  177761. ba3f281 Merge branch \(aq2017.7\(aq into fix\-supervisord\-dead\-state\-idempotency
  177762. .IP \(bu 2
  177763. cf9ab84 Merge branch \(aq2017.7\(aq into fix\-supervisord\-dead\-state\-idempotency
  177764. .IP \(bu 2
  177765. af386a2 Fixed the supervisord.dead state idempotency
  177766. .UNINDENT
  177767. .UNINDENT
  177768. .UNINDENT
  177769. .IP \(bu 2
  177770. \fBISSUE\fP \fI\%#50016\fP: (\fI\%abednarik\fP) State augeas.change do not update config file (refs: \fI\%#50690\fP)
  177771. .IP \(bu 2
  177772. \fBPR\fP \fI\%#50690\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to augeas_cfg module
  177773. @ \fI2018\-11\-30 18:44:42 UTC\fP
  177774. .INDENT 2.0
  177775. .IP \(bu 2
  177776. 7cb2405 Merge pull request \fI\%#50690\fP from garethgreenaway/50016_ensure_path_is_str
  177777. .IP \(bu 2
  177778. cec7cb4 Older versions of python\-augeas need the path passed to aug.match to be a string.
  177779. .UNINDENT
  177780. .IP \(bu 2
  177781. \fBISSUE\fP \fI\%#49392\fP: (\fI\%Poil\fP) hosts not replacing existing entry (refs: \fI\%#50657\fP)
  177782. .IP \(bu 2
  177783. \fBPR\fP \fI\%#50657\fP: (\fI\%terminalmage\fP) Rewrite host.present state to allow for removal of entries not matching IP
  177784. @ \fI2018\-11\-29 17:58:40 UTC\fP
  177785. .INDENT 2.0
  177786. .IP \(bu 2
  177787. a5c7639 Merge pull request \fI\%#50657\fP from terminalmage/issue49392
  177788. .IP \(bu 2
  177789. 2ddb587 Add release notes for new "clean" option
  177790. .IP \(bu 2
  177791. e4946f9 Rename "remove" argument to "clean"
  177792. .IP \(bu 2
  177793. 7fd3bce Add remove parameter to host.present state
  177794. .IP \(bu 2
  177795. 2671a30 Add unit tests for host.present state
  177796. .IP \(bu 2
  177797. 30f1b85 Remove non\-matching IPs from hosts file
  177798. .IP \(bu 2
  177799. ec297a0 Performance improvements in hosts module
  177800. .IP \(bu 2
  177801. d1c2038 Add generic ip address validation function
  177802. .IP \(bu 2
  177803. 9f54720 Add ignore ability to process_read_exception
  177804. .UNINDENT
  177805. .IP \(bu 2
  177806. \fBISSUE\fP \fI\%#48759\fP: (\fI\%MyIgel\fP) acme.cert: Fail to update certificate after adding aliases / missing \-\-expand (refs: \fI\%#50683\fP)
  177807. .IP \(bu 2
  177808. \fBPR\fP \fI\%#50683\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to acme module when adding aliases to existing certificate
  177809. @ \fI2018\-11\-29 17:46:54 UTC\fP
  177810. .INDENT 2.0
  177811. .IP \(bu 2
  177812. b604785 Merge pull request \fI\%#50683\fP from garethgreenaway/48759_adding_aliases_include_expand
  177813. .IP \(bu 2
  177814. 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.
  177815. .UNINDENT
  177816. .IP \(bu 2
  177817. \fBISSUE\fP \fI\%#50406\fP: (\fI\%glkappe\fP) salt\-ssh can\(aqt use Mongo returner (refs: \fI\%#50664\fP)
  177818. .IP \(bu 2
  177819. \fBPR\fP \fI\%#50664\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to logic for configuring returners
  177820. @ \fI2018\-11\-28 05:24:30 UTC\fP
  177821. .INDENT 2.0
  177822. .IP \(bu 2
  177823. 15f9ae4 Merge pull request \fI\%#50664\fP from garethgreenaway/50406_salt_ssh_returner_configuration
  177824. .IP \(bu 2
  177825. 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.
  177826. .UNINDENT
  177827. .IP \(bu 2
  177828. \fBPR\fP \fI\%#50652\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_mac_utils\fP on Windows
  177829. @ \fI2018\-11\-27 20:45:41 UTC\fP
  177830. .INDENT 2.0
  177831. .IP \(bu 2
  177832. afbcf03 Merge pull request \fI\%#50652\fP from twangboy/fix_test_mac_utils
  177833. .IP \(bu 2
  177834. c4cb729 Fix path issues with the tests
  177835. .UNINDENT
  177836. .IP \(bu 2
  177837. \fBPR\fP \fI\%#50640\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177838. @ \fI2018\-11\-26 22:33:22 UTC\fP
  177839. .INDENT 2.0
  177840. .IP \(bu 2
  177841. 61a824f Merge pull request \fI\%#50640\fP from garethgreenaway/merge\-2017
  177842. .IP \(bu 2
  177843. 409c98f Merge branch \(aq2018.3\(aq into merge\-2017
  177844. .UNINDENT
  177845. .IP \(bu 2
  177846. \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)
  177847. .IP \(bu 2
  177848. \fBPR\fP \fI\%#50639\fP: (\fI\%dwoz\fP) Handle pipenv like version restrictions
  177849. @ \fI2018\-11\-26 19:42:11 UTC\fP
  177850. .INDENT 2.0
  177851. .IP \(bu 2
  177852. 20a2de3 Merge pull request \fI\%#50639\fP from dwoz/pipfix
  177853. .IP \(bu 2
  177854. 9c6f653 Handle pipenv like version restrictions
  177855. .INDENT 2.0
  177856. .IP \(bu 2
  177857. fced78b lint
  177858. .IP \(bu 2
  177859. 45a1aa3 Merge branch \(aq2017.7\(aq into merge\-2017
  177860. .IP \(bu 2
  177861. b2cf134 Merge pull request \fI\%#50463\fP from dwoz/zmqpubserv
  177862. .INDENT 2.0
  177863. .IP \(bu 2
  177864. a289e3c Merge branch \(aq2017.7\(aq into zmqpubserv
  177865. .UNINDENT
  177866. .IP \(bu 2
  177867. 6679242 Merge pull request \fI\%#50590\fP from garethgreenaway/bp\-50333
  177868. .INDENT 2.0
  177869. .IP \(bu 2
  177870. 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.
  177871. .INDENT 2.0
  177872. .IP \(bu 2
  177873. 39e811b Add issue url to tests
  177874. .IP \(bu 2
  177875. c4d7a43 Add debug log when connecting
  177876. .IP \(bu 2
  177877. 4f81432 Set subscribe via sockopt for better compatibility
  177878. .IP \(bu 2
  177879. 6882209 More reliable pub server publishing
  177880. .UNINDENT
  177881. .UNINDENT
  177882. .UNINDENT
  177883. .UNINDENT
  177884. .IP \(bu 2
  177885. \fBISSUE\fP \fI\%#49957\fP: (\fI\%whytewolf\fP) salt\-master scheduled items ignore maxrunning. (refs: \fI\%#50130\fP)
  177886. .IP \(bu 2
  177887. \fBPR\fP \fI\%#50130\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to schedule maxrunning on master
  177888. @ \fI2018\-11\-26 18:35:35 UTC\fP
  177889. .INDENT 2.0
  177890. .IP \(bu 2
  177891. 5b7ab35 Merge pull request \fI\%#50130\fP from garethgreenaway/49957_master_schedule_ignoring_maxrunning
  177892. .IP \(bu 2
  177893. 2f6dac9 Updating test_maxrunning_master to Mock get_running_jobs.
  177894. .IP \(bu 2
  177895. abda0a4 Reverting changes to doc/conf.py.
  177896. .IP \(bu 2
  177897. 6d072fc Some additional cleanup.
  177898. .IP \(bu 2
  177899. 4bd0406 Adding integration.scheduler.test_maxrunning to ignore list.
  177900. .IP \(bu 2
  177901. 45e160d Adding integration.scheduler.test_maxrunning to filename_map.yml
  177902. .IP \(bu 2
  177903. 2201a46 Fixing lint
  177904. .IP \(bu 2
  177905. 6c0ee32 removing unused cache_jobs function from utils/master.py
  177906. .IP \(bu 2
  177907. c2ed1d4 Adding some logging when the cache files are unable to be removed.
  177908. .IP \(bu 2
  177909. 44940d6 Ensure minion tests using minion options.
  177910. .IP \(bu 2
  177911. 722be43 Fixing lint
  177912. .IP \(bu 2
  177913. 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.
  177914. .IP \(bu 2
  177915. 0d65304 Swapping manual mocking to autodoc_mock_imports
  177916. .UNINDENT
  177917. .IP \(bu 2
  177918. \fBISSUE\fP \fI\%#50542\fP: (\fI\%doug\-stratoscale\fP) mysql.user_exists doesn\(aqt work with Mysql 8.0.13 (refs: \fI\%#50551\fP)
  177919. .IP \(bu 2
  177920. \fBPR\fP \fI\%#50551\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to verify_login in mysql module
  177921. @ \fI2018\-11\-26 17:44:25 UTC\fP
  177922. .INDENT 2.0
  177923. .IP \(bu 2
  177924. 26759c2 Merge pull request \fI\%#50551\fP from garethgreenaway/50542_mysql_ensure_verify_login_uses_connection_host
  177925. .IP \(bu 2
  177926. 96742aed4 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177927. .IP \(bu 2
  177928. eb510a6 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177929. .IP \(bu 2
  177930. 6d2309d Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177931. .IP \(bu 2
  177932. db89b27 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177933. .IP \(bu 2
  177934. 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 %.
  177935. .UNINDENT
  177936. .IP \(bu 2
  177937. \fBPR\fP \fI\%#50619\fP: (\fI\%s0undt3ch\fP) Don\(aqt squash tracebacks and Unicode fixes
  177938. @ \fI2018\-11\-26 17:04:31 UTC\fP
  177939. .INDENT 2.0
  177940. .IP \(bu 2
  177941. 14c4fd5 Merge pull request \fI\%#50619\fP from s0undt3ch/2018.3
  177942. .IP \(bu 2
  177943. a4771d2 UNICODE!
  177944. .IP \(bu 2
  177945. 72205a5 DO! NOT! SQUASH! TRACEBACKS!
  177946. .UNINDENT
  177947. .IP \(bu 2
  177948. \fBISSUE\fP \fI\%#50562\fP: (\fI\%soostdijck\fP) scheduled highstate ignores blackout (refs: \fI\%#50586\fP)
  177949. .IP \(bu 2
  177950. \fBPR\fP \fI\%#50586\fP: (\fI\%garethgreenaway\fP) [2018.3] minion_blackout for scheduled jobs
  177951. @ \fI2018\-11\-23 11:15:38 UTC\fP
  177952. .INDENT 2.0
  177953. .IP \(bu 2
  177954. 59809a1 Merge pull request \fI\%#50586\fP from garethgreenaway/50562_minion_blackout_scheduler
  177955. .IP \(bu 2
  177956. 48673b7 Adding some defaults for minion_blackout code when pillar & grains are not available in opts. Removing some debugging code.
  177957. .IP \(bu 2
  177958. 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.
  177959. .IP \(bu 2
  177960. 2bf8fa5 Adding support for minion_blackout for jobs that are run from the Salt scheduler.
  177961. .UNINDENT
  177962. .IP \(bu 2
  177963. \fBPR\fP \fI\%#50576\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50549\fP to 2018.3
  177964. @ \fI2018\-11\-21 14:39:55 UTC\fP
  177965. .INDENT 2.0
  177966. .IP \(bu 2
  177967. \fBPR\fP \fI\%#50549\fP: (\fI\%cachedout\fP) Add security credits to release notes (refs: \fI\%#50576\fP)
  177968. .IP \(bu 2
  177969. 5c28179 Merge pull request \fI\%#50576\fP from garethgreenaway/bp\-50549
  177970. .IP \(bu 2
  177971. 807068d Typo fix
  177972. .IP \(bu 2
  177973. 2ef8307 Typo fix
  177974. .IP \(bu 2
  177975. 7c8957a Typo fix
  177976. .IP \(bu 2
  177977. c1ca603 Merge branch \(aq2018.3\(aq into bp\-50549
  177978. .IP \(bu 2
  177979. b163380 Add security credits to release notes
  177980. .UNINDENT
  177981. .IP \(bu 2
  177982. \fBPR\fP \fI\%#50599\fP: (\fI\%terminalmage\fP) Merge Sphinx fixes from 2017.7 to 2018.3
  177983. @ \fI2018\-11\-21 13:31:18 UTC\fP
  177984. .INDENT 2.0
  177985. .IP \(bu 2
  177986. c9531d8 Merge pull request \fI\%#50599\fP from terminalmage/merge\-2018.3
  177987. .IP \(bu 2
  177988. ba82b07 Merge remote\-tracking branch \(aqupstream/2017.7\(aq into merge\-2018.3
  177989. .IP \(bu 2
  177990. 1b8a8ac Merge pull request \fI\%#50592\fP from terminalmage/docs\-2017.7
  177991. .INDENT 2.0
  177992. .IP \(bu 2
  177993. db15776 Remove overline from section title
  177994. .IP \(bu 2
  177995. 8127dd5 Disable unused shorturls plugin
  177996. .UNINDENT
  177997. .UNINDENT
  177998. .IP \(bu 2
  177999. \fBISSUE\fP \fI\%#50254\fP: (\fI\%jmcook1\fP) file.line adding line every time (refs: \fI\%#50366\fP)
  178000. .IP \(bu 2
  178001. \fBPR\fP \fI\%#50366\fP: (\fI\%t0fik\fP) 2018.3 fix issue50254
  178002. @ \fI2018\-11\-20 20:31:30 UTC\fP
  178003. .INDENT 2.0
  178004. .IP \(bu 2
  178005. 60b4622 Merge pull request \fI\%#50366\fP from jdsieci/2018.3\-fix\-issue50254
  178006. .IP \(bu 2
  178007. a9b9fa2 Fixed pylint warnigs
  178008. .IP \(bu 2
  178009. 342786b Issue \fI\%#50254\fP fixed
  178010. .IP \(bu 2
  178011. 1ab59e7 Added integration tests
  178012. .IP \(bu 2
  178013. 110f74f Added unit tests reproducing issue
  178014. .UNINDENT
  178015. .IP \(bu 2
  178016. \fBISSUE\fP \fI\%#50558\fP: (\fI\%angeloudy\fP) \(aqtest=True\(aq does not work with artifactory.download (refs: \fI\%#50580\fP)
  178017. .IP \(bu 2
  178018. \fBISSUE\fP \fI\%#50155\fP: (\fI\%mikemartino\fP) artifactory.downloaded state is not respecting test=True (refs: \fI\%#50580\fP)
  178019. .IP \(bu 2
  178020. \fBPR\fP \fI\%#50580\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding test=True to artifactory.download.
  178021. @ \fI2018\-11\-20 16:37:14 UTC\fP
  178022. .INDENT 2.0
  178023. .IP \(bu 2
  178024. 735c9f4 Merge pull request \fI\%#50580\fP from garethgreenaway/50155_artificatory_download_state_test_true
  178025. .IP \(bu 2
  178026. 7dd57d0 Lint.
  178027. .IP \(bu 2
  178028. 3661ee0 Adding test=True to artifactory.download.
  178029. .UNINDENT
  178030. .IP \(bu 2
  178031. \fBISSUE\fP \fI\%#46292\fP: (\fI\%asymetrixs\fP) win_wua should have possibility to specify source file (refs: \fI\%#50397\fP)
  178032. .IP \(bu 2
  178033. \fBPR\fP \fI\%#50577\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50397\fP to 2018.3
  178034. @ \fI2018\-11\-19 21:28:42 UTC\fP
  178035. .INDENT 2.0
  178036. .IP \(bu 2
  178037. \fBPR\fP \fI\%#50397\fP: (\fI\%tlemarchand\fP) Add Win WUSA management, to install Windows Update files (.msu). (refs: \fI\%#50577\fP)
  178038. .IP \(bu 2
  178039. 015834d Merge pull request \fI\%#50577\fP from garethgreenaway/bp\-50397
  178040. .IP \(bu 2
  178041. dd2d872 Documentation
  178042. .IP \(bu 2
  178043. af6d21f Import unicode_literals from future and add versionadded tag
  178044. .IP \(bu 2
  178045. 09dc09d Disable powershell modules list Add list_kbs function
  178046. .IP \(bu 2
  178047. 05852d0 pchanges to changes named parameters
  178048. .IP \(bu 2
  178049. 16525e4 Add Win WUSA management, to install Windows Update files (.msu).
  178050. .UNINDENT
  178051. .IP \(bu 2
  178052. \fBPR\fP \fI\%#50570\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178053. @ \fI2018\-11\-19 20:04:05 UTC\fP
  178054. .INDENT 2.0
  178055. .IP \(bu 2
  178056. 12e0d80 Merge pull request \fI\%#50570\fP from garethgreenaway/merge\-2018.3
  178057. .IP \(bu 2
  178058. 4c85119 merge\-forward 2017.7 to 2018.3
  178059. .IP \(bu 2
  178060. 02238a7 Merge pull request \fI\%#50520\fP from dwoz/issue_50459
  178061. .INDENT 2.0
  178062. .IP \(bu 2
  178063. 1aa2e34 Simplifie and portable homedir lookup
  178064. .IP \(bu 2
  178065. f14f747 Fix windows home dir lookup
  178066. .IP \(bu 2
  178067. d3620c3 Always set .gitconfig dir to user\(aqs home
  178068. .UNINDENT
  178069. .IP \(bu 2
  178070. edd9738 Merge pull request \fI\%#50532\fP from dubb\-b/2017.7
  178071. .INDENT 2.0
  178072. .IP \(bu 2
  178073. 009e52d Adding tag to ec2 cloud tests
  178074. .UNINDENT
  178075. .IP \(bu 2
  178076. b0446f5 Merge pull request \fI\%#50500\fP from terminalmage/2017.7\-docs
  178077. .INDENT 2.0
  178078. .IP \(bu 2
  178079. 870a364 Set docs jenkins job to treat warnings as errors
  178080. .IP \(bu 2
  178081. e03bdcd Update docs references for states with func_alias
  178082. .IP \(bu 2
  178083. 8a2c08f Disable custom sphinx automodule
  178084. .UNINDENT
  178085. .UNINDENT
  178086. .IP \(bu 2
  178087. \fBISSUE\fP \fI\%#50266\fP: (\fI\%4815162342lost\fP) grains.virtual show incorrect info (refs: \fI\%#50519\fP)
  178088. .IP \(bu 2
  178089. \fBPR\fP \fI\%#50519\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to virtual core grain
  178090. @ \fI2018\-11\-16 23:42:18 UTC\fP
  178091. .INDENT 2.0
  178092. .IP \(bu 2
  178093. 6fba83c Merge pull request \fI\%#50519\fP from garethgreenaway/50266_core_virtual_grain_fixes
  178094. .IP \(bu 2
  178095. dcae2f0 Merge branch \(aq2018.3\(aq into 50266_core_virtual_grain_fixes
  178096. .UNINDENT
  178097. .IP \(bu 2
  178098. \fBPR\fP \fI\%#50427\fP: (\fI\%sathieu\fP) Backports git_pillar tests improvements to 2018.3
  178099. @ \fI2018\-11\-16 16:37:29 UTC\fP
  178100. .INDENT 2.0
  178101. .IP \(bu 2
  178102. \fBPR\fP \fI\%#50425\fP: (\fI\%sathieu\fP) git_pillar: Add tests for mountpoint parameter (refs: \fI\%#50427\fP)
  178103. .IP \(bu 2
  178104. \fBPR\fP \fI\%#50407\fP: (\fI\%sathieu\fP) git_pillar: Add tests for root parameter (refs: \fI\%#50427\fP)
  178105. .IP \(bu 2
  178106. \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)
  178107. .IP \(bu 2
  178108. 84edd62 Merge pull request \fI\%#50427\fP from sathieu/bp\-git_pillar_tests
  178109. .IP \(bu 2
  178110. 12ea1cc git_pillar: Add tests for mountpoint parameter
  178111. .IP \(bu 2
  178112. fce467e git_pillar: Add tests for root parameter
  178113. .IP \(bu 2
  178114. ba150a5 Don\(aqt fail on git_pillar tests when destructive tests are not enable
  178115. .UNINDENT
  178116. .IP \(bu 2
  178117. \fBPR\fP \fI\%#50530\fP: (\fI\%terminalmage\fP) Enable proxy/ssh daemons when filename mapping causes those tests to be run
  178118. @ \fI2018\-11\-15 23:03:06 UTC\fP
  178119. .INDENT 2.0
  178120. .IP \(bu 2
  178121. 4651481 Merge pull request \fI\%#50530\fP from terminalmage/salt\-jenkins\-1209
  178122. .IP \(bu 2
  178123. fbee11d Enable proxy/ssh daemons when filename mapping causes those tests to be run
  178124. .IP \(bu 2
  178125. 4f30611 lint
  178126. .IP \(bu 2
  178127. 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.
  178128. .UNINDENT
  178129. .IP \(bu 2
  178130. \fBISSUE\fP \fI\%#50224\fP: (\fI\%mruepp\fP) Augeas changes state with setm not working (refs: \fI\%#50526\fP)
  178131. .IP \(bu 2
  178132. \fBPR\fP \fI\%#50526\fP: (\fI\%terminalmage\fP) Work around augeas\(aq lack of unicode support
  178133. @ \fI2018\-11\-15 17:33:26 UTC\fP
  178134. .INDENT 2.0
  178135. .IP \(bu 2
  178136. 6c07ba4 Merge pull request \fI\%#50526\fP from terminalmage/issue50224
  178137. .IP \(bu 2
  178138. ee246ed Work around augeas\(aq lack of unicode support
  178139. .UNINDENT
  178140. .IP \(bu 2
  178141. \fBPR\fP \fI\%#50503\fP: (\fI\%terminalmage\fP) Set jenkins docs job to treat any warnings as errors (2018.3 branch)
  178142. @ \fI2018\-11\-14 19:30:24 UTC\fP
  178143. .INDENT 2.0
  178144. .IP \(bu 2
  178145. d83da51d Merge pull request \fI\%#50503\fP from terminalmage/2018.3\-docs
  178146. .IP \(bu 2
  178147. a4fc108 Fix docs configuration for renamed logstash engine
  178148. .IP \(bu 2
  178149. 5b06464 Set docs jenkins job to treat warnings as errors
  178150. .IP \(bu 2
  178151. 9b6c669 Update docs references for states with func_alias
  178152. .IP \(bu 2
  178153. 62b5d40 Disable custom sphinx automodule
  178154. .UNINDENT
  178155. .IP \(bu 2
  178156. \fBISSUE\fP \fI\%#48343\fP: (\fI\%bornwitbugs\fP) CPU Beacon TypeError (refs: \fI\%#50514\fP)
  178157. .IP \(bu 2
  178158. \fBPR\fP \fI\%#50514\fP: (\fI\%bornwitbugs\fP) Load beacon fix
  178159. @ \fI2018\-11\-14 19:20:33 UTC\fP
  178160. .INDENT 2.0
  178161. .IP \(bu 2
  178162. fa2f4a5 Merge pull request \fI\%#50514\fP from bornwitbugs/load_beacon_fix
  178163. .IP \(bu 2
  178164. e59ced6 Merge branch \(aq2018.3\(aq of github.com:saltstack/salt into load_beacon_fix
  178165. .UNINDENT
  178166. .IP \(bu 2
  178167. \fBPR\fP \fI\%#50509\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178168. @ \fI2018\-11\-14 17:52:06 UTC\fP
  178169. .INDENT 2.0
  178170. .IP \(bu 2
  178171. a50377b Merge pull request \fI\%#50509\fP from Ch3LL/merge\-2018.3
  178172. .IP \(bu 2
  178173. 178dab3 Merge branch 2017.7 into 2018.3
  178174. .IP \(bu 2
  178175. c00fd43 Merge pull request \fI\%#50493\fP from rallytime/bp\-50362
  178176. .INDENT 2.0
  178177. .IP \(bu 2
  178178. 60559cf Remove flaky test
  178179. .IP \(bu 2
  178180. a696a8f Fix test_matcher on Windows
  178181. .UNINDENT
  178182. .IP \(bu 2
  178183. 3cac1d0 Merge pull request \fI\%#50494\fP from terminalmage/2017.7\-docs
  178184. .INDENT 2.0
  178185. .IP \(bu 2
  178186. d561b26 Late import to fix docs build errors
  178187. .UNINDENT
  178188. .IP \(bu 2
  178189. 0829944 Merge pull request \fI\%#50479\fP from Ch3LL/digital_ocean_location
  178190. .INDENT 2.0
  178191. .IP \(bu 2
  178192. 917781d Lint: Add blank line
  178193. .IP \(bu 2
  178194. 3583519 Update digital ocean location for cloud tests
  178195. .UNINDENT
  178196. .IP \(bu 2
  178197. accf681 Merge pull request \fI\%#50480\fP from terminalmage/docs
  178198. .INDENT 2.0
  178199. .IP \(bu 2
  178200. c34690e Don\(aqt import obsolete Directive class from Sphinx
  178201. .UNINDENT
  178202. .IP \(bu 2
  178203. 2e9b3d2 Merge pull request \fI\%#50478\fP from rallytime/update\-bootstrap\-docs
  178204. .INDENT 2.0
  178205. .IP \(bu 2
  178206. 66b078c Update the bootstrap script documentation to point to bootstrap repo
  178207. .UNINDENT
  178208. .UNINDENT
  178209. .IP \(bu 2
  178210. \fBPR\fP \fI\%#50502\fP: (\fI\%twangboy\fP) Add definition for RestrictRemoteSAM
  178211. @ \fI2018\-11\-14 14:30:38 UTC\fP
  178212. .INDENT 2.0
  178213. .IP \(bu 2
  178214. 55b4914 Merge pull request \fI\%#50502\fP from twangboy/lgpo_2018.3
  178215. .IP \(bu 2
  178216. fe92a3a Add definition for RestrictRemoteSAM
  178217. .UNINDENT
  178218. .IP \(bu 2
  178219. \fBISSUE\fP \fI\%#48734\fP: (\fI\%oddfellow\fP) salt\-run jobs.list_jobs has Target: unknown\-target (refs: \fI\%#50328\fP)
  178220. .IP \(bu 2
  178221. \fBISSUE\fP \fI\%#43453\fP: (\fI\%kunal\-bajpai\fP) Runner job \fIload\fP is never saved to job cache (refs: \fI\%#43454\fP)
  178222. .IP \(bu 2
  178223. \fBPR\fP \fI\%#50328\fP: (\fI\%rallytime\fP) Fix issue with salt\-run jobs.list_jobs where Target: unknown\-target
  178224. @ \fI2018\-11\-13 19:49:58 UTC\fP
  178225. .INDENT 2.0
  178226. .IP \(bu 2
  178227. \fBPR\fP \fI\%#43454\fP: (\fI\%kunal\-bajpai\fP) Fix save_load which is never called for returner jobs (refs: \fI\%#50328\fP)
  178228. .IP \(bu 2
  178229. c1dde7e Merge pull request \fI\%#50328\fP from rallytime/fix\-48734
  178230. .IP \(bu 2
  178231. 2c51cf9 Make target test job more specific to reduce test flakiness
  178232. .IP \(bu 2
  178233. caace3f Rewrite job cache target test to be more robust
  178234. .IP \(bu 2
  178235. b29fcfa New test must be py3 compatible...oops. :)
  178236. .IP \(bu 2
  178237. c684c29 Fix issue \fI\%#48734\fP
  178238. .IP \(bu 2
  178239. 6859e0e Add regression test for issue \fI\%#48734\fP
  178240. .UNINDENT
  178241. .IP \(bu 2
  178242. \fBPR\fP \fI\%#50499\fP: (\fI\%dwoz\fP) Fix 2018.3 build
  178243. @ \fI2018\-11\-13 18:46:54 UTC\fP
  178244. .INDENT 2.0
  178245. .IP \(bu 2
  178246. 351faeb Merge pull request \fI\%#50499\fP from dwoz/build_fix
  178247. .IP \(bu 2
  178248. 5754b4a Fix 2018.3 build
  178249. .UNINDENT
  178250. .IP \(bu 2
  178251. \fBPR\fP \fI\%#50496\fP: (\fI\%terminalmage\fP) Fix 2018.3 docs build warnings
  178252. @ \fI2018\-11\-13 17:21:09 UTC\fP
  178253. .INDENT 2.0
  178254. .IP \(bu 2
  178255. 6f4b23f Merge pull request \fI\%#50496\fP from terminalmage/2018.3\-docs
  178256. .IP \(bu 2
  178257. cb25641 Fix header underline length to avoid another sphinx warning
  178258. .IP \(bu 2
  178259. 9272f7b Fix more sphinx build errors
  178260. .IP \(bu 2
  178261. 18a8104 Late import to fix docs build errors
  178262. .IP \(bu 2
  178263. d457132 Fix sphinx build warnings in 2018.3 branch
  178264. .UNINDENT
  178265. .IP \(bu 2
  178266. \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)
  178267. .IP \(bu 2
  178268. \fBPR\fP \fI\%#50492\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50228\fP and \fI\%#50443\fP to 2018.3
  178269. @ \fI2018\-11\-13 16:59:15 UTC\fP
  178270. .INDENT 2.0
  178271. .IP \(bu 2
  178272. \fBPR\fP \fI\%#50443\fP: (\fI\%weswhet\fP) fix when checking for service Label on macOS (refs: \fI\%#50492\fP)
  178273. .IP \(bu 2
  178274. \fBPR\fP \fI\%#50228\fP: (\fI\%sheagcraig\fP) Fix 50227 malformed plists (refs: \fI\%#50492\fP, \fI\%#50443\fP)
  178275. .IP \(bu 2
  178276. 6b272c1 Merge pull request \fI\%#50492\fP from rallytime/bp\-50228\-and\-50443
  178277. .IP \(bu 2
  178278. 7879a2d Fix logging format
  178279. .IP \(bu 2
  178280. f578392 Lint Fix: add mock_open import
  178281. .IP \(bu 2
  178282. e5b999b add try/except when checking for service Label
  178283. .IP \(bu 2
  178284. 3c36bdd Fix linting errors.
  178285. .IP \(bu 2
  178286. fab57de Write tests to handle invalid launchd plist XML.
  178287. .IP \(bu 2
  178288. bb429b0 Condense service result assertions, add a binary plist test.
  178289. .IP \(bu 2
  178290. a809fef Factor out another helper function, implement broken symlink test.
  178291. .IP \(bu 2
  178292. 216f7ef Update testing for mac_utils services.
  178293. .IP \(bu 2
  178294. 89d8267 Fix trailing\-slash bug in User LaunchAgent appending.
  178295. .IP \(bu 2
  178296. 0e23b6e Handle bad plists by ignoring them, with py2 and py3 specific approaches
  178297. .IP \(bu 2
  178298. fa44149 Avoid \fIAttributeError\fP when checking for exception types.
  178299. .IP \(bu 2
  178300. fd62b33 Add secondary exception handler for malformed plists.
  178301. .IP \(bu 2
  178302. ae6f49b Make test correctly generate a double exception.
  178303. .UNINDENT
  178304. .IP \(bu 2
  178305. \fBPR\fP \fI\%#50486\fP: (\fI\%twangboy\fP) Back port lgpo from Fluorine
  178306. @ \fI2018\-11\-13 09:40:17 UTC\fP
  178307. .INDENT 2.0
  178308. .IP \(bu 2
  178309. da980d9 Merge pull request \fI\%#50486\fP from twangboy/lgpo_2018.3
  178310. .IP \(bu 2
  178311. bbbc07b Back port lgpo from Fluorine
  178312. .UNINDENT
  178313. .IP \(bu 2
  178314. \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)
  178315. .IP \(bu 2
  178316. \fBPR\fP \fI\%#50456\fP: (\fI\%terminalmage\fP) Two bugfixes
  178317. @ \fI2018\-11\-13 06:06:52 UTC\fP
  178318. .INDENT 2.0
  178319. .IP \(bu 2
  178320. 7dd3438 Merge pull request \fI\%#50456\fP from terminalmage/issue50218
  178321. .IP \(bu 2
  178322. 6143408 Add unit test for TimedProc regression
  178323. .IP \(bu 2
  178324. e234abd Add support for list of commands in git states\(aq onlyif/unless
  178325. .IP \(bu 2
  178326. cbf05c8 TimedProc: Don\(aqt assume args is a string
  178327. .IP \(bu 2
  178328. 87de250 Exit gracefully when mod_run_check raises exception
  178329. .UNINDENT
  178330. .IP \(bu 2
  178331. \fBPR\fP \fI\%#50455\fP: (\fI\%dubb\-b\fP) Adding the released version as the bootstrap minion.
  178332. @ \fI2018\-11\-12 22:52:53 UTC\fP
  178333. .INDENT 2.0
  178334. .IP \(bu 2
  178335. d8514e6 Merge pull request \fI\%#50455\fP from dubb\-b/2018.3
  178336. .IP \(bu 2
  178337. fb61482 adding git
  178338. .IP \(bu 2
  178339. 181b8a4 removing stable
  178340. .IP \(bu 2
  178341. fc93ad6 Adding the released version as the bootstrap minion.
  178342. .UNINDENT
  178343. .IP \(bu 2
  178344. \fBPR\fP \fI\%#50483\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50272\fP to 2018.3
  178345. @ \fI2018\-11\-12 22:45:05 UTC\fP
  178346. .INDENT 2.0
  178347. .IP \(bu 2
  178348. \fBPR\fP \fI\%#50272\fP: (\fI\%jyurdal\fP) Fix out of order docker Env comparison (refs: \fI\%#50483\fP)
  178349. .IP \(bu 2
  178350. cfb3351 Merge pull request \fI\%#50483\fP from rallytime/bp\-50272
  178351. .IP \(bu 2
  178352. 0f02da7 Remove unnecessary u prefix from string literals
  178353. .IP \(bu 2
  178354. fc26ae8 Add unit test for comparing containers with the same env vars
  178355. .IP \(bu 2
  178356. cf7cb4b extra blank line after function definition(pylint)
  178357. .IP \(bu 2
  178358. 1de9ce3 Compare sorted docker environment
  178359. .UNINDENT
  178360. .IP \(bu 2
  178361. \fBPR\fP \fI\%#50481\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178362. @ \fI2018\-11\-12 22:44:15 UTC\fP
  178363. .INDENT 2.0
  178364. .IP \(bu 2
  178365. 360ae6a Merge pull request \fI\%#50481\fP from rallytime/merge\-2018.3
  178366. .IP \(bu 2
  178367. 1517bb3 Update old utils paths to use new paths
  178368. .IP \(bu 2
  178369. d8e7c47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178370. .IP \(bu 2
  178371. e5f97cd Merge pull request \fI\%#50467\fP from dwoz/test_kitchen_up
  178372. .INDENT 2.0
  178373. .IP \(bu 2
  178374. 8c5e93e Use patched version of test\-kitchen until next release
  178375. .UNINDENT
  178376. .IP \(bu 2
  178377. b16ff9c Merge pull request \fI\%#50469\fP from dwoz/minion_timeout_test
  178378. .INDENT 2.0
  178379. .IP \(bu 2
  178380. 57f702d Fix linter warning
  178381. .IP \(bu 2
  178382. 686153a Fix up integration.minion.test_timeout
  178383. .UNINDENT
  178384. .IP \(bu 2
  178385. 45b438e Merge pull request \fI\%#50470\fP from dwoz/set_time_flaky
  178386. .INDENT 2.0
  178387. .IP \(bu 2
  178388. 794ba17 Reset date and time after changing
  178389. .UNINDENT
  178390. .IP \(bu 2
  178391. c85561e Merge pull request \fI\%#50442\fP from rallytime/replace\-docbanner
  178392. .INDENT 2.0
  178393. .IP \(bu 2
  178394. 193325d Update docbanner hyperlink
  178395. .UNINDENT
  178396. .IP \(bu 2
  178397. 7200568 Merge pull request \fI\%#50439\fP from rallytime/bootstrap\-contributing\-docs
  178398. .INDENT 2.0
  178399. .IP \(bu 2
  178400. d2158aa Add bootstrap section to contributing docs
  178401. .UNINDENT
  178402. .IP \(bu 2
  178403. cca7a36 Merge pull request \fI\%#50441\fP from rallytime/replace\-docbanner
  178404. .INDENT 2.0
  178405. .IP \(bu 2
  178406. 2af92bd Update SaltConf doc banner
  178407. .UNINDENT
  178408. .IP \(bu 2
  178409. 1e72d20 Merge pull request \fI\%#50414\fP from flassman/backmerge\-for\-typeerror\-windows\-python3
  178410. .INDENT 2.0
  178411. .IP \(bu 2
  178412. 20fff15 use exc.winerror not exc[0] to avoid python3 TypeError
  178413. .UNINDENT
  178414. .IP \(bu 2
  178415. 93095cb Merge pull request \fI\%#50415\fP from flassman/pass\-cwd\-to\-runas_system
  178416. .INDENT 2.0
  178417. .IP \(bu 2
  178418. 0113137 cwd needs to be passed from runas() to runas_system()
  178419. .UNINDENT
  178420. .UNINDENT
  178421. .IP \(bu 2
  178422. \fBISSUE\fP \fI\%#50461\fP: (\fI\%absolutejam\fP) elementaryOS \(aqpkg\(aq __virtual__ returned false (refs: \fI\%#50468\fP)
  178423. .IP \(bu 2
  178424. \fBPR\fP \fI\%#50468\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding elementary override to grains/core.py
  178425. @ \fI2018\-11\-12 16:41:57 UTC\fP
  178426. .INDENT 2.0
  178427. .IP \(bu 2
  178428. 3aaad17 Merge pull request \fI\%#50468\fP from garethgreenaway/50461_fix_elementary_os_family_grain
  178429. .IP \(bu 2
  178430. 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.
  178431. .UNINDENT
  178432. .IP \(bu 2
  178433. \fBISSUE\fP \fI\%#50311\fP: (\fI\%marek\-obuchowicz\fP) pkg.installed state fails even though it suceeded (refs: \fI\%#50590\fP, \fI\%#50333\fP)
  178434. .IP \(bu 2
  178435. \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)
  178436. .IP \(bu 2
  178437. \fBPR\fP \fI\%#50333\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to pkg.installed for sources and hold: True (refs: \fI\%#50590\fP)
  178438. @ \fI2018\-11\-08 18:02:33 UTC\fP
  178439. .INDENT 2.0
  178440. .IP \(bu 2
  178441. \fBPR\fP \fI\%#48426\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to states/pkg.py (refs: \fI\%#50333\fP)
  178442. .IP \(bu 2
  178443. d9179fb Merge pull request \fI\%#50333\fP from garethgreenaway/50311_pkg_installed_fails_sources_hold
  178444. .IP \(bu 2
  178445. 7bc9b3d Merge branch \(aq2018.3\(aq into 50311_pkg_installed_fails_sources_hold
  178446. .IP \(bu 2
  178447. 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.
  178448. .UNINDENT
  178449. .IP \(bu 2
  178450. \fBPR\fP \fI\%#50434\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178451. @ \fI2018\-11\-08 17:40:39 UTC\fP
  178452. .INDENT 2.0
  178453. .IP \(bu 2
  178454. 193c80a Merge pull request \fI\%#50434\fP from rallytime/merge\-2018.3
  178455. .IP \(bu 2
  178456. 83dfbb2 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178457. .INDENT 2.0
  178458. .IP \(bu 2
  178459. ef4509e Merge pull request \fI\%#50370\fP from dwoz/pubd_msg_logs
  178460. .INDENT 2.0
  178461. .IP \(bu 2
  178462. 58ced12 log jid to payload size
  178463. .IP \(bu 2
  178464. 3c537b5 Log message flow to publish daemon
  178465. .UNINDENT
  178466. .UNINDENT
  178467. .UNINDENT
  178468. .IP \(bu 2
  178469. \fBPR\fP \fI\%#50417\fP: (\fI\%meaksh\fP) Get the right target when using "__env__" on git ext_pillar to avoid merging problems
  178470. @ \fI2018\-11\-08 17:07:03 UTC\fP
  178471. .INDENT 2.0
  178472. .IP \(bu 2
  178473. 73ce80f Merge pull request \fI\%#50417\fP from meaksh/2018.3\-fix\-git_pillar\-__env__\-solving\-for\-merging
  178474. .IP \(bu 2
  178475. 71af32d Remove unicode references
  178476. .IP \(bu 2
  178477. b7af5e5 Test git ext_pillar across multiple repos using __env__
  178478. .IP \(bu 2
  178479. 59894e2 Resolve target branch when using __env__
  178480. .UNINDENT
  178481. .IP \(bu 2
  178482. \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)
  178483. .IP \(bu 2
  178484. \fBPR\fP \fI\%#50423\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to sysctl modules and state
  178485. @ \fI2018\-11\-08 14:13:00 UTC\fP
  178486. .INDENT 2.0
  178487. .IP \(bu 2
  178488. e9464c9 Merge pull request \fI\%#50423\fP from garethgreenaway/50292_no_error_log_test_true
  178489. .IP \(bu 2
  178490. 95a7f12 Adding file check and empty list return to freebsd_sysctl.py
  178491. .IP \(bu 2
  178492. 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.
  178493. .UNINDENT
  178494. .IP \(bu 2
  178495. \fBISSUE\fP \fI\%#50420\fP: (\fI\%weswhet\fP) mac_system virtual function fails to load on 2018.3.3 (refs: \fI\%#50421\fP)
  178496. .IP \(bu 2
  178497. \fBPR\fP \fI\%#50421\fP: (\fI\%weswhet\fP) fixing an issue on mac_system where the virtual function wouldnt load
  178498. @ \fI2018\-11\-07 21:57:44 UTC\fP
  178499. .INDENT 2.0
  178500. .IP \(bu 2
  178501. fccf875 Merge pull request \fI\%#50421\fP from weswhet/fix\-mac_system\-loader
  178502. .IP \(bu 2
  178503. 042445d fixing an issue on mac_system where the virtual function wouldnt load
  178504. .UNINDENT
  178505. .IP \(bu 2
  178506. \fBPR\fP \fI\%#50409\fP: (\fI\%casselt\fP) Fix test mode for mount state if device_name_regex is used.
  178507. @ \fI2018\-11\-07 16:04:45 UTC\fP
  178508. .INDENT 2.0
  178509. .IP \(bu 2
  178510. d2fc910 Merge pull request \fI\%#50409\fP from casselt/mount\-device_name_regex\-test\-mode\-fix
  178511. .IP \(bu 2
  178512. 56d5a32 Fix test mode for mount state if device_name_regex is used.
  178513. .UNINDENT
  178514. .IP \(bu 2
  178515. \fBPR\fP \fI\%#50383\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178516. @ \fI2018\-11\-06 15:51:53 UTC\fP
  178517. .INDENT 2.0
  178518. .IP \(bu 2
  178519. c2fda9d Merge pull request \fI\%#50383\fP from rallytime/merge\-2018.3
  178520. .IP \(bu 2
  178521. e993692 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178522. .INDENT 2.0
  178523. .IP \(bu 2
  178524. cd7c95f Merge pull request \fI\%#50128\fP from mgomersbach/fix\-py3\-reload\-compat
  178525. .INDENT 2.0
  178526. .IP \(bu 2
  178527. e453e82 Satisfy pylint, use naming instead of W or E classification
  178528. .IP \(bu 2
  178529. d20581c Merge branch \(aqfix\-py3\-reload\-compat\(aq of github.com:mgomersbach/salt into fix\-py3\-reload\-compat
  178530. .INDENT 2.0
  178531. .IP \(bu 2
  178532. 48c6a4f Merge branch \(aq2017.7\(aq into fix\-py3\-reload\-compat
  178533. .UNINDENT
  178534. .IP \(bu 2
  178535. 5cd9741 Satisfy pylint
  178536. .IP \(bu 2
  178537. a2838db Satisfy pylint checks
  178538. .IP \(bu 2
  178539. 05c598c Fix import error by utilizing six and strict version spec
  178540. .IP \(bu 2
  178541. 95174e6 Merge branch \(aq2017.7\(aq into fix\-py3\-reload\-compat
  178542. .IP \(bu 2
  178543. ab8b5b4 Update workaround to root of file
  178544. .IP \(bu 2
  178545. 37ab1f8 Update workaround to root of file
  178546. .IP \(bu 2
  178547. 253ab11 Workaround for py2 builtin, =<3.3 imp and >=3.4 libimport quirks, solves \fI\%#50127\fP
  178548. .UNINDENT
  178549. .IP \(bu 2
  178550. aa6b149 Merge pull request \fI\%#50354\fP from rallytime/version_num_docs
  178551. .INDENT 2.0
  178552. .IP \(bu 2
  178553. 0621f7d Add a few more feature release codenames to the version_numbers doc
  178554. .UNINDENT
  178555. .IP \(bu 2
  178556. 6472100 Merge pull request \fI\%#50359\fP from dwoz/clitest
  178557. .INDENT 2.0
  178558. .IP \(bu 2
  178559. 18b5d43 Increase cli batch test timeout for increased reliablity
  178560. .UNINDENT
  178561. .IP \(bu 2
  178562. 99c8f35 Merge pull request \fI\%#50345\fP from dwoz/pub_d_logging
  178563. .INDENT 2.0
  178564. .IP \(bu 2
  178565. fd58523 Fix linter warnings
  178566. .IP \(bu 2
  178567. 5e1db3c Fix ZMQ PubServer daemon logging works on winndows
  178568. .IP \(bu 2
  178569. 8899832 Configure logging for ZMQ PubServer daemon
  178570. .UNINDENT
  178571. .IP \(bu 2
  178572. 44f7af4 Merge pull request \fI\%#50350\fP from dubb\-b/2017.7
  178573. .INDENT 2.0
  178574. .IP \(bu 2
  178575. 346a831 Updating the AMI\(aqs and sizes for the test run.
  178576. .UNINDENT
  178577. .IP \(bu 2
  178578. b947a18 Merge pull request \fI\%#50274\fP from rallytime/bp\-41472
  178579. .INDENT 2.0
  178580. .IP \(bu 2
  178581. 0a1e607 When the minion key is denied by the master then exit status 77 (permission denied)
  178582. .UNINDENT
  178583. .IP \(bu 2
  178584. 4725acd Merge pull request \fI\%#50195\fP from damon\-atkins/jenkins_pylint
  178585. .INDENT 2.0
  178586. .IP \(bu 2
  178587. eb13407 capture some extra info
  178588. .UNINDENT
  178589. .IP \(bu 2
  178590. ab8e845 Merge pull request \fI\%#50329\fP from twangboy/fix_cloud_winrm
  178591. .INDENT 2.0
  178592. .IP \(bu 2
  178593. cf5fb04 Check WinRM port before initiating connection
  178594. .UNINDENT
  178595. .IP \(bu 2
  178596. e535b38 Merge pull request \fI\%#50252\fP from dwoz/backport_fs_fix
  178597. .INDENT 2.0
  178598. .IP \(bu 2
  178599. 59ac284 Do not allow age to be a negative number
  178600. .UNINDENT
  178601. .UNINDENT
  178602. .UNINDENT
  178603. .IP \(bu 2
  178604. \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)
  178605. .INDENT 2.0
  178606. .IP \(bu 2
  178607. \fBPR\fP \fI\%saltstack/salt#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50231\fP)
  178608. .UNINDENT
  178609. .IP \(bu 2
  178610. \fBPR\fP \fI\%#50236\fP: (\fI\%rallytime\fP) Fix salt\-cloud UnicodeEncodeError when writing to stdout
  178611. @ \fI2018\-11\-05 22:04:18 UTC\fP
  178612. .INDENT 2.0
  178613. .IP \(bu 2
  178614. \fBPR\fP \fI\%#50235\fP: (\fI\%rallytime\fP) Don\(aqt encode the return values in utils/vt.py (refs: \fI\%#50236\fP)
  178615. .IP \(bu 2
  178616. \fBPR\fP \fI\%#50231\fP: (\fI\%rallytime\fP) Revert "Back\-port \fI\%#50146\fP to 2018.3" (refs: \fI\%#50236\fP)
  178617. .IP \(bu 2
  178618. \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)
  178619. .IP \(bu 2
  178620. \fBPR\fP \fI\%#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50236\fP)
  178621. .IP \(bu 2
  178622. \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)
  178623. .IP \(bu 2
  178624. 46c7dc2d Merge pull request \fI\%#50236\fP from rallytime/fix\-cloud\-vt
  178625. .IP \(bu 2
  178626. c1984c9 Fix salt\-cloud UnicodeEncodeError when writing to stdout
  178627. .UNINDENT
  178628. .IP \(bu 2
  178629. \fBISSUE\fP \fI\%#50062\fP: (\fI\%whytewolf\fP) max_event_size does not always trim large events. (refs: \fI\%#50382\fP)
  178630. .IP \(bu 2
  178631. \fBPR\fP \fI\%#50382\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to utils/dicttrim.py to honor max_event_size with nested dictionaries
  178632. @ \fI2018\-11\-05 20:04:06 UTC\fP
  178633. .INDENT 2.0
  178634. .IP \(bu 2
  178635. ed4fa87 Merge pull request \fI\%#50382\fP from garethgreenaway/50062_max_event_size_does_not_always_trim_large_events
  178636. .IP \(bu 2
  178637. 039f3d1 Increase limit for trimming.
  178638. .IP \(bu 2
  178639. 7f77bfe Adding test for utils/dicttrim.py
  178640. .IP \(bu 2
  178641. 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.
  178642. .UNINDENT
  178643. .IP \(bu 2
  178644. \fBPR\fP \fI\%#50387\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50339\fP to 2018.3
  178645. @ \fI2018\-11\-05 20:03:15 UTC\fP
  178646. .INDENT 2.0
  178647. .IP \(bu 2
  178648. \fBPR\fP \fI\%#50339\fP: (\fI\%bartlaarhoven\fP) The driver requires dependency, not the other way around. (refs: \fI\%#50387\fP)
  178649. .IP \(bu 2
  178650. 493d653 Merge pull request \fI\%#50387\fP from rallytime/bp\-50339
  178651. .IP \(bu 2
  178652. a3f264d Lint: Add extra blank line
  178653. .IP \(bu 2
  178654. bd18412 The driver requires dependency, not the other way around.
  178655. .UNINDENT
  178656. .IP \(bu 2
  178657. \fBISSUE\fP \fI\%#41342\fP: (\fI\%githubcdr\fP) beacons.state does not save as list (refs: \fI\%#50347\fP)
  178658. .IP \(bu 2
  178659. \fBPR\fP \fI\%#50347\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to beacon state module
  178660. @ \fI2018\-11\-05 14:19:41 UTC\fP
  178661. .INDENT 2.0
  178662. .IP \(bu 2
  178663. 3022b7d Merge pull request \fI\%#50347\fP from garethgreenaway/41342_beacon_state_module_fixes
  178664. .IP \(bu 2
  178665. 8885d1f Merge branch \(aq2018.3\(aq into 41342_beacon_state_module_fixes
  178666. .IP \(bu 2
  178667. 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.
  178668. .IP \(bu 2
  178669. 2390f47 Adding SaltReturnAssertsMixin back in
  178670. .IP \(bu 2
  178671. 677d090 Remove zookeeper reference.
  178672. .IP \(bu 2
  178673. 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.
  178674. .UNINDENT
  178675. .IP \(bu 2
  178676. \fBISSUE\fP \fI\%#41583\fP: (\fI\%seanjnkns\fP) mount.swap for swap file test=True results wrong (refs: \fI\%#50358\fP)
  178677. .IP \(bu 2
  178678. \fBPR\fP \fI\%#50358\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to function mount.swap in mount state
  178679. @ \fI2018\-11\-05 14:16:50 UTC\fP
  178680. .INDENT 2.0
  178681. .IP \(bu 2
  178682. 929525a Merge pull request \fI\%#50358\fP from garethgreenaway/41583_mount_swap_test_true_wrong_results
  178683. .IP \(bu 2
  178684. 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.
  178685. .INDENT 2.0
  178686. .INDENT 3.5
  178687. .INDENT 0.0
  178688. .IP \(bu 2
  178689. d07c84d reordering ret dictionary in load test to ascending order
  178690. .IP \(bu 2
  178691. 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
  178692. .IP \(bu 2
  178693. 4114a4f fixing type in load beacon module and adding option validators to config check function along with mock default values in test
  178694. .UNINDENT
  178695. .UNINDENT
  178696. .UNINDENT
  178697. .UNINDENT
  178698. .IP \(bu 2
  178699. \fBISSUE\fP \fI\%#49225\fP: (\fI\%onnodb\fP) [win_lgpo] lgpo_set always reports failure; Registry.pol corruption (refs: \fI\%#50006\fP)
  178700. .IP \(bu 2
  178701. \fBISSUE\fP \fI\%#48782\fP: (\fI\%mike2523\fP) [win_lgpo] Causes corrupt Registry.pol file (refs: \fI\%#50006\fP)
  178702. .IP \(bu 2
  178703. \fBPR\fP \fI\%#50006\fP: (\fI\%lomeroe\fP) Correct more issues in lgpo
  178704. @ \fI2018\-11\-02 16:32:29 UTC\fP
  178705. .INDENT 2.0
  178706. .IP \(bu 2
  178707. 3ffa392 Merge pull request \fI\%#50006\fP from lomeroe/issue48782_2018.3
  178708. .IP \(bu 2
  178709. dc58252 update to use a single line if statement when dealing with prepended text
  178710. .IP \(bu 2
  178711. 0e011ad add runTest method to class for PY2
  178712. .IP \(bu 2
  178713. 377ec09 add a test for \fI\%#47784\fP
  178714. .IP \(bu 2
  178715. 0a14505 change backslashes in comment string to fix lint error
  178716. .IP \(bu 2
  178717. 02181d3 add fix/test for \fI\%#50079\fP
  178718. .IP \(bu 2
  178719. 05f2951 more lint fixes
  178720. .IP \(bu 2
  178721. 94b3335 lint fixes in test
  178722. .IP \(bu 2
  178723. 2a79626 update test to actually work
  178724. .IP \(bu 2
  178725. 42840ec add missing comma in function call
  178726. .IP \(bu 2
  178727. c283f50 Log a warning message instead of an exception when a SID cannot be converted to a username (for user rights assignments)
  178728. .IP \(bu 2
  178729. 271bd70 capture and print exception information
  178730. .IP \(bu 2
  178731. bc94b8e update method for creating size field of **delvals items for py3 compatibility
  178732. .IP \(bu 2
  178733. d9fe28a fix clobbering of admx_search_results which was keeping some policies from being properly detected
  178734. .UNINDENT
  178735. .IP \(bu 2
  178736. \fBPR\fP \fI\%#50340\fP: (\fI\%garethgreenaway\fP) [2018.3] Backporting \fI\%#48087\fP to 2018.3
  178737. @ \fI2018\-11\-01 18:15:37 UTC\fP
  178738. .INDENT 2.0
  178739. .IP \(bu 2
  178740. \fBPR\fP \fI\%#48087\fP: (\fI\%mat813\fP) Fix patching sysctl.conf on FreeBSD. (refs: \fI\%#50340\fP)
  178741. .IP \(bu 2
  178742. 12de4b9 Merge pull request \fI\%#50340\fP from garethgreenaway/backport_48087_to_2018_3
  178743. .IP \(bu 2
  178744. 56c87ff Backporting \fI\%#48087\fP to 2018.3
  178745. .UNINDENT
  178746. .IP \(bu 2
  178747. \fBPR\fP \fI\%#50275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49752\fP to 2018.3
  178748. @ \fI2018\-11\-01 16:50:17 UTC\fP
  178749. .INDENT 2.0
  178750. .IP \(bu 2
  178751. \fBPR\fP \fI\%#49752\fP: (\fI\%jodok\fP) add support for clonenum parameter (refs: \fI\%#50275\fP)
  178752. .IP \(bu 2
  178753. 5e46434 Merge pull request \fI\%#50275\fP from rallytime/bp\-49752
  178754. .IP \(bu 2
  178755. e463d99 Merge branch \(aq2018.3\(aq into bp\-49752
  178756. .IP \(bu 2
  178757. 1e10c6e add support for clonenum parameter
  178758. .UNINDENT
  178759. .IP \(bu 2
  178760. \fBISSUE\fP \fI\%#47425\fP: (\fI\%raddessi\fP) states/netyang.managed ignores models when passed as a kwarg (refs: \fI\%#50301\fP)
  178761. .IP \(bu 2
  178762. \fBPR\fP \fI\%#50316\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50301\fP to 2018.3
  178763. @ \fI2018\-11\-01 16:32:04 UTC\fP
  178764. .INDENT 2.0
  178765. .IP \(bu 2
  178766. \fBPR\fP \fI\%#50301\fP: (\fI\%tonybaloney\fP) Fixes issues raised in \fI\%#47425\fP for states.netyang (refs: \fI\%#50316\fP)
  178767. .IP \(bu 2
  178768. 51e333a Merge pull request \fI\%#50316\fP from rallytime/bp\-50301
  178769. .IP \(bu 2
  178770. 367b689 Merge pull request \fI\%#32\fP from tonybaloney/bp50301
  178771. .INDENT 2.0
  178772. .IP \(bu 2
  178773. 529687a update test assertions
  178774. .UNINDENT
  178775. .IP \(bu 2
  178776. ba526ad remove unused import
  178777. .IP \(bu 2
  178778. 220e57f create 2 simple unit tests for the netyang state module and fix issue in \fI\%#47425\fP
  178779. .IP \(bu 2
  178780. 20bf306 reproduce bug in 47425
  178781. .UNINDENT
  178782. .IP \(bu 2
  178783. \fBPR\fP \fI\%#50290\fP: (\fI\%twangboy\fP) Fix \fItest_state\fP for Windows
  178784. @ \fI2018\-10\-31 19:28:34 UTC\fP
  178785. .INDENT 2.0
  178786. .IP \(bu 2
  178787. af1075b Merge pull request \fI\%#50290\fP from twangboy/fix_test_state
  178788. .IP \(bu 2
  178789. 69c02fc Fix some lint and some typos
  178790. .IP \(bu 2
  178791. d184013 Fix typo
  178792. .IP \(bu 2
  178793. 92b5ea0 Create salt util that copies file security info
  178794. .UNINDENT
  178795. .IP \(bu 2
  178796. \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)
  178797. .IP \(bu 2
  178798. \fBPR\fP \fI\%#50291\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50230\fP to 2018.3
  178799. @ \fI2018\-10\-31 19:22:25 UTC\fP
  178800. .INDENT 2.0
  178801. .IP \(bu 2
  178802. \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)
  178803. .IP \(bu 2
  178804. 045d81c Merge pull request \fI\%#50291\fP from rallytime/bp\-50230
  178805. .IP \(bu 2
  178806. 1aae681 Merge branch \(aq2018.3\(aq into bp\-50230
  178807. .IP \(bu 2
  178808. 1ef712a Add various ssh tests to the filemap for salt/utils/vt.py changes
  178809. .UNINDENT
  178810. .IP \(bu 2
  178811. \fBPR\fP \fI\%#50315\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  178812. @ \fI2018\-10\-31 14:16:34 UTC\fP
  178813. .INDENT 2.0
  178814. .IP \(bu 2
  178815. 00437aa Merge pull request \fI\%#50315\fP from rallytime/merge\-2018.3
  178816. .IP \(bu 2
  178817. 422465e Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  178818. .IP \(bu 2
  178819. 4d9e2a0 Merge pull request \fI\%#50088\fP from vulnbe/fix\-incorrect\-id\-handling\-2018\-3\-3
  178820. .IP \(bu 2
  178821. 619f2f2 Fix incorrect id handling in file state
  178822. .UNINDENT
  178823. .IP \(bu 2
  178824. \fBPR\fP \fI\%#50309\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178825. @ \fI2018\-10\-30 16:07:25 UTC\fP
  178826. .INDENT 2.0
  178827. .IP \(bu 2
  178828. 84ee7a3 Merge pull request \fI\%#50309\fP from rallytime/merge\-2018.3
  178829. .IP \(bu 2
  178830. 381a59d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178831. .IP \(bu 2
  178832. 11fa33e Merge pull request \fI\%#50295\fP from dubb\-b/remove\-cloud\-change
  178833. .INDENT 2.0
  178834. .IP \(bu 2
  178835. 80982ad Removing an un needed change and maybe fixing the lint error
  178836. .UNINDENT
  178837. .IP \(bu 2
  178838. e00c507 Merge pull request \fI\%#50287\fP from whytewolf/boto_vpc
  178839. .INDENT 2.0
  178840. .IP \(bu 2
  178841. 5a39644 minor correction to boto_vpc.route_table_present example, subnet_names was on wrong indent level
  178842. .UNINDENT
  178843. .IP \(bu 2
  178844. 37ae06c Merge pull request \fI\%#50280\fP from gtmanfred/2017.7
  178845. .INDENT 2.0
  178846. .IP \(bu 2
  178847. 5808074 fix InstallRequirement.from_line for pip 18.1
  178848. .UNINDENT
  178849. .UNINDENT
  178850. .IP \(bu 2
  178851. \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)
  178852. .IP \(bu 2
  178853. \fBPR\fP \fI\%#50308\fP: (\fI\%rallytime\fP) Fix matcher grain file
  178854. @ \fI2018\-10\-30 15:27:47 UTC\fP
  178855. .INDENT 2.0
  178856. .IP \(bu 2
  178857. \fBPR\fP \fI\%#50182\fP: (\fI\%terminalmage\fP) Backport runtests.py modifications from develop to 2018.3 (refs: \fI\%#50308\fP)
  178858. .IP \(bu 2
  178859. b805bab Merge pull request \fI\%#50308\fP from rallytime/test\-fixes
  178860. .IP \(bu 2
  178861. f238522 Fix matcher grain file
  178862. .UNINDENT
  178863. .IP \(bu 2
  178864. \fBPR\fP \fI\%#50270\fP: (\fI\%terrible\-broom\fP) apt: speedup installing packages with \(aq>=\(aq or \(aq<=\(aq and reduced memory…
  178865. @ \fI2018\-10\-30 13:24:36 UTC\fP
  178866. .INDENT 2.0
  178867. .IP \(bu 2
  178868. 57fe6cd Merge pull request \fI\%#50270\fP from terrible\-broom/feature/apt\-cache\-show\-instead\-of\-dump
  178869. .IP \(bu 2
  178870. 6c1b05a Lint: add extra blank line
  178871. .IP \(bu 2
  178872. a4df706 fix review notes
  178873. .IP \(bu 2
  178874. d059edd apt: speedup installing packages with \(aq>=\(aq or \(aq<=\(aq and reduced memory consumption
  178875. .UNINDENT
  178876. .IP \(bu 2
  178877. \fBPR\fP \fI\%#50293\fP: (\fI\%gtmanfred\fP) update jenkins version for 2018.3
  178878. @ \fI2018\-10\-29 23:39:34 UTC\fP
  178879. .INDENT 2.0
  178880. .IP \(bu 2
  178881. 6a65402 Merge pull request \fI\%#50293\fP from saltstack/jenkins
  178882. .IP \(bu 2
  178883. fe6fbc4 update jenkins version for 2018.3
  178884. .IP \(bu 2
  178885. \fBPR\fP \fI\%saltstack/salt\-jenkins#1182\fP: (\fI\%gtmanfred\fP) clean up salt.utils for using 2018.3.3 (refs: \fI\%#50289\fP)
  178886. .UNINDENT
  178887. .IP \(bu 2
  178888. \fBPR\fP \fI\%#50289\fP: (\fI\%gtmanfred\fP) ignore empty line in localectl status output
  178889. @ \fI2018\-10\-29 21:39:07 UTC\fP
  178890. .INDENT 2.0
  178891. .IP \(bu 2
  178892. 935f181 Merge pull request \fI\%#50289\fP from gtmanfred/2018.3
  178893. .IP \(bu 2
  178894. fb43061 fix test
  178895. .IP \(bu 2
  178896. 5eb0e37 add extra space to localemod test
  178897. .IP \(bu 2
  178898. e8dc8ba if line in output of localectl is empty, ignore it
  178899. .UNINDENT
  178900. .IP \(bu 2
  178901. \fBPR\fP \fI\%#50276\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178902. @ \fI2018\-10\-29 19:05:15 UTC\fP
  178903. .INDENT 2.0
  178904. .IP \(bu 2
  178905. 10ba8b4 Merge pull request \fI\%#50276\fP from rallytime/merge\-2018.3
  178906. .IP \(bu 2
  178907. f05abb0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178908. .INDENT 2.0
  178909. .IP \(bu 2
  178910. 6ae8a33 Merge pull request \fI\%#50281\fP from dubb\-b/add_subnet
  178911. .INDENT 2.0
  178912. .IP \(bu 2
  178913. 4fdcf7c Lint: Add extra blank line
  178914. .IP \(bu 2
  178915. cebfd8a Fixing lint error
  178916. .IP \(bu 2
  178917. 0da6301 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into add_subnet
  178918. .IP \(bu 2
  178919. 2df6115 Adding subnetID so it knows the right VPC to build the node in.
  178920. .UNINDENT
  178921. .UNINDENT
  178922. .IP \(bu 2
  178923. a0cfbdc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178924. .INDENT 2.0
  178925. .IP \(bu 2
  178926. b94a43b Merge pull request \fI\%#50184\fP from ethanculler/fix\-minion\-return\-exception\-with\-return
  178927. .INDENT 2.0
  178928. .IP \(bu 2
  178929. 283d41c Merge branch \(aq2017.7\(aq into fix\-minion\-return\-exception\-with\-return
  178930. .IP \(bu 2
  178931. a4e54d7 Added handling for minion return exceptions containing the word "return"
  178932. .UNINDENT
  178933. .IP \(bu 2
  178934. 6b009b4 Merge pull request \fI\%#50258\fP from dubb\-b/fix_cloud_ec2
  178935. .INDENT 2.0
  178936. .IP \(bu 2
  178937. 6a1e9f0 Adding securitygroupname as the config instead of securitygroup
  178938. .UNINDENT
  178939. .IP \(bu 2
  178940. 3e1aac9 Merge pull request \fI\%#50251\fP from gtmanfred/2017.7
  178941. .INDENT 2.0
  178942. .IP \(bu 2
  178943. 061e599 bump salt version to 2017.7.8
  178944. .UNINDENT
  178945. .IP \(bu 2
  178946. fe9bc81 Merge pull request \fI\%#50233\fP from Ch3LL/bp\-50232
  178947. .INDENT 2.0
  178948. .IP \(bu 2
  178949. f83460d change order of search engine ids
  178950. .IP \(bu 2
  178951. bf3f217 Update search engine IDs for releases
  178952. .UNINDENT
  178953. .UNINDENT
  178954. .UNINDENT
  178955. .IP \(bu 2
  178956. \fBPR\fP \fI\%#50282\fP: (\fI\%twangboy\fP) Fix \fIunit.beacons.test_diskusage\fP on Windows
  178957. @ \fI2018\-10\-29 18:37:13 UTC\fP
  178958. .INDENT 2.0
  178959. .IP \(bu 2
  178960. 0f1dc08 Merge pull request \fI\%#50282\fP from twangboy/fix_test_diskusage
  178961. .IP \(bu 2
  178962. fd369dd Mock is_windows = False
  178963. .UNINDENT
  178964. .IP \(bu 2
  178965. \fBPR\fP \fI\%#50182\fP: (\fI\%terminalmage\fP) Backport runtests.py modifications from develop to 2018.3 (refs: \fI\%#50308\fP)
  178966. @ \fI2018\-10\-29 16:25:07 UTC\fP
  178967. .INDENT 2.0
  178968. .IP \(bu 2
  178969. f7c2f04 Merge pull request \fI\%#50182\fP from terminalmage/issue50050
  178970. .IP \(bu 2
  178971. 113d76e Revert "Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests"
  178972. .IP \(bu 2
  178973. 3057ca4 Lint fix: add extra blank line in core.py
  178974. .IP \(bu 2
  178975. 8968f9d Revert "Rename test_map_conf test file to respect naming convention"
  178976. .IP \(bu 2
  178977. 85a9395 Remove saltclass pillar unit test for list expansion
  178978. .IP \(bu 2
  178979. 3d95673 Use get_config_dir() instead of self.config_dir
  178980. .IP \(bu 2
  178981. e8b3a62 Add init file back in for unit/client pkg
  178982. .IP \(bu 2
  178983. d527dd2 Rename states/test_libvirt.py into states/test_virt.py
  178984. .IP \(bu 2
  178985. ab4a670 Remove pgjsonb returner unit tests
  178986. .IP \(bu 2
  178987. 68ab3ee Remove "test_custom" from grains section of filename_map
  178988. .IP \(bu 2
  178989. 6814698 Remove test_error from scheduler tests
  178990. .IP \(bu 2
  178991. c55dcf0 Add init file back in for integration/cloud/clouds pkg
  178992. .IP \(bu 2
  178993. f485b4a enable testing only filemaps
  178994. .IP \(bu 2
  178995. dfa05b9 Remove test files for beacons that don\(aqt exist in 2018.3
  178996. .IP \(bu 2
  178997. 85612cf runtests.py: Fix IndexError in \-\-from\-filenames
  178998. .IP \(bu 2
  178999. 25097f9 Make sure from\-filenames intersect with names\-file
  179000. .IP \(bu 2
  179001. ed864ce runtests.py: Accept modified file list from a text file
  179002. .IP \(bu 2
  179003. 059754c Add some doc tests to the filemap that should run on every PR
  179004. .IP \(bu 2
  179005. b1ee2e5 Set a default value for the filename map path
  179006. .IP \(bu 2
  179007. 5ea1024 Add documentation explaining naming convention for test files
  179008. .IP \(bu 2
  179009. 8f790c0 Fix conflicting dict key in filename map
  179010. .IP \(bu 2
  179011. f2e5512 Evan Moar Lint
  179012. .IP \(bu 2
  179013. 65fef9a Moar Lint
  179014. .IP \(bu 2
  179015. 39c2455 Lint
  179016. .IP \(bu 2
  179017. dd20f12 Make sure we always run the module names test
  179018. .IP \(bu 2
  179019. 2ac939e Add test to check test module names and make sure they match the naming convention
  179020. .IP \(bu 2
  179021. 785d298 Add integration.netapi.rest_tornado.test_app to filename map
  179022. .IP \(bu 2
  179023. 662ca0d Rename files to match naming convention
  179024. .IP \(bu 2
  179025. 186d333 Add back changes lost in cherry\-pick
  179026. .IP \(bu 2
  179027. a236531 Add back test accidentally deleted when cherry\-picking
  179028. .IP \(bu 2
  179029. eaa4da3 Rename providers to clouds to respect naming convention
  179030. .IP \(bu 2
  179031. 85b96de Rename some files to avoid them being identified as test modules
  179032. .IP \(bu 2
  179033. bfb6015 Rename/consolidate salt.utils unit tests to conform to naming convention
  179034. .IP \(bu 2
  179035. 84749dd Consolitdate and move salt\-ssh unit tests to proper location
  179036. .IP \(bu 2
  179037. 71825a5 Consolidate and move loader tests to test/unit/test_loader.py
  179038. .IP \(bu 2
  179039. 8326a09 Rename test_map_conf test file to respect naming convention
  179040. .IP \(bu 2
  179041. 6d9c2eb Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests
  179042. .IP \(bu 2
  179043. 1ef43a3 Add additional paths to the filename map
  179044. .IP \(bu 2
  179045. 75e6731 Use the new helper to get the test mods
  179046. .IP \(bu 2
  179047. c3dc8ec Add function to get all of the test modules
  179048. .IP \(bu 2
  179049. c5593bc Rename custom_grains.py so it\(aqs not identified as a test module
  179050. .IP \(bu 2
  179051. 330c211 Consolidate saltclass pillar unit tests into single module
  179052. .IP \(bu 2
  179053. a642619 Rename test pgjsonb returner test file to match naming convention
  179054. .IP \(bu 2
  179055. 6433c48 Don\(aqt import old module name
  179056. .IP \(bu 2
  179057. a97e032 Move helper outside of for loop
  179058. .IP \(bu 2
  179059. 3f1b6fd Add more unit test mapping
  179060. .IP \(bu 2
  179061. ac3406d Fill out the filename map a bit
  179062. .IP \(bu 2
  179063. 07d6f2a Enhancements to \-\-from\-filenames, \-\-filename\-map options
  179064. .IP \(bu 2
  179065. b851a41 Don\(aqt run unit or integration tests unnecessarily
  179066. .IP \(bu 2
  179067. 569276b Add an initial filename_map
  179068. .IP \(bu 2
  179069. 44199b1 Add \-\-from\-filenames and \-\-filename\-map options to parser
  179070. .UNINDENT
  179071. .IP \(bu 2
  179072. \fBPR\fP \fI\%#50267\fP: (\fI\%m03\fP) Fix missing aptly config paths
  179073. @ \fI2018\-10\-29 13:27:23 UTC\fP
  179074. .INDENT 2.0
  179075. .IP \(bu 2
  179076. 1e8b092 Merge pull request \fI\%#50267\fP from m03/fix\-aptly\-config\-paths\-20183
  179077. .IP \(bu 2
  179078. 319bb31 Fix missing aptly config paths
  179079. .UNINDENT
  179080. .IP \(bu 2
  179081. \fBPR\fP \fI\%#50232\fP: (\fI\%Ch3LL\fP) Update search engine IDs for releases (refs: \fI\%#50233\fP)
  179082. @ \fI2018\-10\-25 20:15:08 UTC\fP
  179083. .INDENT 2.0
  179084. .IP \(bu 2
  179085. ab0b022 Merge pull request \fI\%#50232\fP from Ch3LL/search_latest
  179086. .IP \(bu 2
  179087. 3452d9b change order of search engine ids
  179088. .IP \(bu 2
  179089. c9546df Update search engine IDs for releases
  179090. .UNINDENT
  179091. .IP \(bu 2
  179092. \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)
  179093. .INDENT 2.0
  179094. .IP \(bu 2
  179095. \fBPR\fP \fI\%saltstack/salt#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50231\fP)
  179096. .UNINDENT
  179097. .IP \(bu 2
  179098. \fBPR\fP \fI\%#50231\fP: (\fI\%rallytime\fP) Revert "Back\-port \fI\%#50146\fP to 2018.3" (refs: \fI\%#50236\fP)
  179099. @ \fI2018\-10\-25 20:12:15 UTC\fP
  179100. .INDENT 2.0
  179101. .IP \(bu 2
  179102. \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)
  179103. .IP \(bu 2
  179104. 1c8cdf9 Merge pull request \fI\%#50231\fP from saltstack/revert\-50174\-bp\-50146
  179105. .IP \(bu 2
  179106. c76ac1b Revert "Back\-port \fI\%#50146\fP to 2018.3"
  179107. .UNINDENT
  179108. .IP \(bu 2
  179109. \fBISSUE\fP \fI\%#50132\fP: (\fI\%ManicoW\fP) XCP\-ng packages and services management (refs: \fI\%#50140\fP)
  179110. .IP \(bu 2
  179111. \fBPR\fP \fI\%#50172\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50140\fP to 2018.3
  179112. @ \fI2018\-10\-25 14:00:32 UTC\fP
  179113. .INDENT 2.0
  179114. .IP \(bu 2
  179115. \fBPR\fP \fI\%#50140\fP: (\fI\%ManicoW\fP) Adding XCP\-ng support (refs: \fI\%#50172\fP)
  179116. .IP \(bu 2
  179117. 8dd4f43 Merge pull request \fI\%#50172\fP from rallytime/bp\-50140
  179118. .IP \(bu 2
  179119. 02e0ea0 lint fix
  179120. .IP \(bu 2
  179121. 819c46c fix lint errors and code factorization
  179122. .IP \(bu 2
  179123. 8aa3598 Fix lint error
  179124. .IP \(bu 2
  179125. 9092c4e Adding support for XCP\-ng
  179126. .IP \(bu 2
  179127. c516bc5 Adding XCP\-ng to os family map
  179128. .UNINDENT
  179129. .IP \(bu 2
  179130. \fBPR\fP \fI\%#50063\fP: (\fI\%twangboy\fP) Use long when setting REG_QWORD
  179131. @ \fI2018\-10\-25 13:45:03 UTC\fP
  179132. .INDENT 2.0
  179133. .IP \(bu 2
  179134. 9ad43f2 Merge pull request \fI\%#50063\fP from twangboy/fix_50039
  179135. .IP \(bu 2
  179136. 5fdba7d Disable lint error
  179137. .IP \(bu 2
  179138. 84b8dd6 Add tests
  179139. .IP \(bu 2
  179140. 4644bb6 Use long when setting REG_QWORD
  179141. .UNINDENT
  179142. .IP \(bu 2
  179143. \fBISSUE\fP \fI\%#49965\fP: (\fI\%nkrishnakishor\fP) Beacon: Usage in windows (refs: \fI\%#50188\fP)
  179144. .IP \(bu 2
  179145. \fBPR\fP \fI\%#50188\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to diskusage beacon
  179146. @ \fI2018\-10\-25 13:41:19 UTC\fP
  179147. .INDENT 2.0
  179148. .IP \(bu 2
  179149. 01b083e Merge pull request \fI\%#50188\fP from garethgreenaway/49965_beacon_diskusage_windows
  179150. .IP \(bu 2
  179151. 1f0ab27 Merge branch \(aq2018.3\(aq into 49965_beacon_diskusage_windows
  179152. .IP \(bu 2
  179153. 42b3203 Fixing lint
  179154. .IP \(bu 2
  179155. f65fa57 Fixing a bug in the diskusage beacon that prevented it from working on Windows. Adding a couple tests to test functionality on Windows.
  179156. .UNINDENT
  179157. .IP \(bu 2
  179158. \fBPR\fP \fI\%#50214\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179159. @ \fI2018\-10\-25 13:38:40 UTC\fP
  179160. .INDENT 2.0
  179161. .IP \(bu 2
  179162. 9ea51c0 Merge pull request \fI\%#50214\fP from rallytime/merge\-2018.3
  179163. .IP \(bu 2
  179164. 897145c Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179165. .INDENT 2.0
  179166. .IP \(bu 2
  179167. 017d394 Merge pull request \fI\%#50202\fP from Ch3LL/_2017.7.8
  179168. .INDENT 2.0
  179169. .IP \(bu 2
  179170. d520f9a Add tests with filname in token data
  179171. .IP \(bu 2
  179172. d45f6c7 Add empty token salt\-api integration tests
  179173. .IP \(bu 2
  179174. 652dbf6 Ensure that tokens are hex to avoid hanging/errors in cherrypy
  179175. .UNINDENT
  179176. .IP \(bu 2
  179177. f28a4fa Merge pull request \fI\%#50211\fP from channias/fix\-spm\-modules\-install
  179178. .INDENT 2.0
  179179. .IP \(bu 2
  179180. 9b203d5 Fix broken install of additionnal modules in SPM packages
  179181. .UNINDENT
  179182. .IP \(bu 2
  179183. 6b4e07b Merge pull request \fI\%#50212\fP from dwoz/test_no_fail
  179184. .INDENT 2.0
  179185. .IP \(bu 2
  179186. 7f613ac Do not fail if process already ended
  179187. .UNINDENT
  179188. .IP \(bu 2
  179189. 85e22d2 Merge pull request \fI\%#50207\fP from Ch3LL/2update_version_doc_2017.7
  179190. .INDENT 2.0
  179191. .IP \(bu 2
  179192. 198d25c Add 2017.7.8 previous release
  179193. .IP \(bu 2
  179194. d4e26ac Update release versions for the 2017.7 branch
  179195. .UNINDENT
  179196. .IP \(bu 2
  179197. d035695 Merge pull request \fI\%#50205\fP from Ch3LL/rn_2017.7.8
  179198. .INDENT 2.0
  179199. .IP \(bu 2
  179200. 71ee68b [2017.7.8] remove in progress and add security details
  179201. .UNINDENT
  179202. .IP \(bu 2
  179203. ce341f2 Merge pull request \fI\%#50180\fP from max\-arnold/2017.7
  179204. .INDENT 2.0
  179205. .IP \(bu 2
  179206. 881a521 Revert curly braces example for nested dictionaries
  179207. .UNINDENT
  179208. .IP \(bu 2
  179209. 622bb51 Merge pull request \fI\%#50026\fP from damon\-atkins/jenkins_pylint
  179210. .INDENT 2.0
  179211. .IP \(bu 2
  179212. aebce88 Merge branch \(aq2017.7\(aq into jenkins_pylint
  179213. .IP \(bu 2
  179214. 5f708fa use awk to create the other files, so git does not need to search again
  179215. .IP \(bu 2
  179216. 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.
  179217. .UNINDENT
  179218. .IP \(bu 2
  179219. aa66d1b Merge pull request \fI\%#50158\fP from vutny/doc/2017.7/fix\-http\-tutorial
  179220. .INDENT 2.0
  179221. .IP \(bu 2
  179222. fe2d70d [DOC] Fix JSON payload example in HTTP tutorial
  179223. .UNINDENT
  179224. .UNINDENT
  179225. .UNINDENT
  179226. .IP \(bu 2
  179227. \fBISSUE\fP \fI\%#50162\fP: (\fI\%rbthomp\fP) Scheduled job runs in endless loop when using when: and splay: together. (refs: \fI\%#50216\fP)
  179228. .IP \(bu 2
  179229. \fBPR\fP \fI\%#50216\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to scheduler, list of whens plus splay
  179230. @ \fI2018\-10\-25 13:31:26 UTC\fP
  179231. .INDENT 2.0
  179232. .IP \(bu 2
  179233. 51b3fa4 Merge pull request \fI\%#50216\fP from garethgreenaway/50162_when_plus_splay_endless_loop
  179234. .IP \(bu 2
  179235. 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.
  179236. .UNINDENT
  179237. .IP \(bu 2
  179238. \fBPR\fP \fI\%#50190\fP: (\fI\%dwoz\fP) Fix test_managed_file_with_grains_data on Windows
  179239. @ \fI2018\-10\-24 22:43:35 UTC\fP
  179240. .INDENT 2.0
  179241. .IP \(bu 2
  179242. 43303fb Merge pull request \fI\%#50190\fP from dwoz/grains_template_test
  179243. .IP \(bu 2
  179244. b77db48 Fix test_managed_file_with_grains_data on Windows
  179245. .UNINDENT
  179246. .IP \(bu 2
  179247. \fBPR\fP \fI\%#50187\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding fixes to scheduler tests to 2018.3
  179248. @ \fI2018\-10\-24 19:45:32 UTC\fP
  179249. .INDENT 2.0
  179250. .IP \(bu 2
  179251. \fBPR\fP \fI\%#49871\fP: (\fI\%garethgreenaway\fP) [fluorine] Updating scheduler tests for OS X (refs: \fI\%#50187\fP)
  179252. .IP \(bu 2
  179253. 462314b Merge pull request \fI\%#50187\fP from garethgreenaway/port_49871_to_2018_3
  179254. .IP \(bu 2
  179255. 25e7cb6 Merge branch \(aq2018.3\(aq into port_49871_to_2018_3
  179256. .IP \(bu 2
  179257. d232dfb Update test_eval.py
  179258. .IP \(bu 2
  179259. d8d8559 Fixing lint
  179260. .IP \(bu 2
  179261. 76e6232 Removing unnecessary debugging lines
  179262. .IP \(bu 2
  179263. d2d0622 Back porting \fI\%#49871\fP to 2018.3. Adding some additional changes to ensure they are passing on OS X.
  179264. .UNINDENT
  179265. .IP \(bu 2
  179266. \fBPR\fP \fI\%#50201\fP: (\fI\%Ch3LL\fP) [2018.3] Ensure that tokens are hex to avoid hanging/errors in cherrypy
  179267. @ \fI2018\-10\-24 19:44:23 UTC\fP
  179268. .INDENT 2.0
  179269. .IP \(bu 2
  179270. 8ad9a1b Merge pull request \fI\%#50201\fP from Ch3LL/_2018.3.3
  179271. .UNINDENT
  179272. .IP \(bu 2
  179273. \fBPR\fP \fI\%#50208\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  179274. @ \fI2018\-10\-24 15:52:19 UTC\fP
  179275. .INDENT 2.0
  179276. .IP \(bu 2
  179277. 88673ad Merge pull request \fI\%#50208\fP from Ch3LL/2update_version_doc_2018.3
  179278. .IP \(bu 2
  179279. cdbf493 Add 2017.7.8 previous release
  179280. .IP \(bu 2
  179281. 6f775e7 Update release versions for the 2018.3 branch
  179282. .UNINDENT
  179283. .IP \(bu 2
  179284. \fBPR\fP \fI\%#50206\fP: (\fI\%Ch3LL\fP) [2018.3.3] remove in progress and add security details
  179285. @ \fI2018\-10\-24 15:50:50 UTC\fP
  179286. .INDENT 2.0
  179287. .IP \(bu 2
  179288. db8ef1e Merge pull request \fI\%#50206\fP from Ch3LL/rn_2018.3.3
  179289. .IP \(bu 2
  179290. 896caa1 Add 2016.11.10 release notes to 2018.3 branch
  179291. .IP \(bu 2
  179292. 1e34158 [2018.3.3] remove in progress and add security details
  179293. .UNINDENT
  179294. .IP \(bu 2
  179295. \fBPR\fP \fI\%#50200\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50181\fP to 2018.3
  179296. @ \fI2018\-10\-24 15:49:59 UTC\fP
  179297. .INDENT 2.0
  179298. .IP \(bu 2
  179299. \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)
  179300. .IP \(bu 2
  179301. 3d3db70 Merge pull request \fI\%#50200\fP from rallytime/bp\-50181
  179302. .IP \(bu 2
  179303. f3e5399 Ignore testinfra 1.17.0
  179304. .UNINDENT
  179305. .IP \(bu 2
  179306. \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)
  179307. .IP \(bu 2
  179308. \fBPR\fP \fI\%#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50236\fP)
  179309. @ \fI2018\-10\-23 18:16:45 UTC\fP
  179310. .INDENT 2.0
  179311. .IP \(bu 2
  179312. \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)
  179313. .IP \(bu 2
  179314. 5f904dd Merge pull request \fI\%#50174\fP from rallytime/bp\-50146
  179315. .IP \(bu 2
  179316. 601a5b8 Improve handling of non\-ascii characters in terminal output. (Fixes: \fI\%#49523\fP)
  179317. .UNINDENT
  179318. .IP \(bu 2
  179319. \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)
  179320. .IP \(bu 2
  179321. \fBPR\fP \fI\%#50173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50143\fP to 2018.3
  179322. @ \fI2018\-10\-23 17:13:55 UTC\fP
  179323. .INDENT 2.0
  179324. .IP \(bu 2
  179325. \fBPR\fP \fI\%#50143\fP: (\fI\%m03\fP) Fix \fI\%#50142\fP, stringutils.to_none (refs: \fI\%#50173\fP)
  179326. .IP \(bu 2
  179327. \fBPR\fP \fI\%#45429\fP: (\fI\%terminalmage\fP) [PY3] Add unicode_literals to salt.utils modules (R\-S) (refs: \fI\%#50143\fP)
  179328. .IP \(bu 2
  179329. 1cd0339 Merge pull request \fI\%#50173\fP from rallytime/bp\-50143
  179330. .IP \(bu 2
  179331. f5d6080 Add test_to_none
  179332. .IP \(bu 2
  179333. c0ce36b Fix \fI\%#50142\fP, stringutils.to_none
  179334. .UNINDENT
  179335. .IP \(bu 2
  179336. \fBPR\fP \fI\%#50171\fP: (\fI\%terminalmage\fP) Fix invalid RST link in docker_network docs
  179337. @ \fI2018\-10\-23 13:40:36 UTC\fP
  179338. .INDENT 2.0
  179339. .IP \(bu 2
  179340. 9331f1e Merge pull request \fI\%#50171\fP from terminalmage/docs
  179341. .IP \(bu 2
  179342. 7ea1d6c Fix invalid RST link in docker_network docs
  179343. .UNINDENT
  179344. .IP \(bu 2
  179345. \fBPR\fP \fI\%#50161\fP: (\fI\%rmarcinik\fP) Add a missing result for task.info
  179346. @ \fI2018\-10\-23 13:31:43 UTC\fP
  179347. .INDENT 2.0
  179348. .IP \(bu 2
  179349. 16eece3 Merge pull request \fI\%#50161\fP from rmarcinik/patch\-1
  179350. .IP \(bu 2
  179351. 9848f06 Add a missing result for task.info
  179352. .UNINDENT
  179353. .IP \(bu 2
  179354. \fBPR\fP \fI\%#50136\fP: (\fI\%terminalmage\fP) Add some debug logging before and after states gather pillar data
  179355. @ \fI2018\-10\-22 14:40:38 UTC\fP
  179356. .INDENT 2.0
  179357. .IP \(bu 2
  179358. 28bc5e3 Merge pull request \fI\%#50136\fP from terminalmage/debug\-logging
  179359. .IP \(bu 2
  179360. 8592a0b Add some debug logging before and after states gather pillar data
  179361. .UNINDENT
  179362. .IP \(bu 2
  179363. \fBISSUE\fP \fI\%#50129\fP: (\fI\%kmatsoukas\fP) Call to network.get_route fails when interface name contains a dash (refs: \fI\%#50147\fP)
  179364. .IP \(bu 2
  179365. \fBPR\fP \fI\%#50147\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to modules/network.py
  179366. @ \fI2018\-10\-22 14:31:03 UTC\fP
  179367. .INDENT 2.0
  179368. .IP \(bu 2
  179369. 593c7ff Merge pull request \fI\%#50147\fP from garethgreenaway/50129_network_get_route_fails_dash_in_name
  179370. .IP \(bu 2
  179371. 8fa87e3 Update test_network.py
  179372. .IP \(bu 2
  179373. 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.
  179374. .UNINDENT
  179375. .IP \(bu 2
  179376. \fBPR\fP \fI\%#50156\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179377. @ \fI2018\-10\-22 14:24:39 UTC\fP
  179378. .INDENT 2.0
  179379. .IP \(bu 2
  179380. 5c7a7d9 Merge pull request \fI\%#50156\fP from rallytime/merge\-2018.3
  179381. .IP \(bu 2
  179382. 87e20fd Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179383. .IP \(bu 2
  179384. 1a90c4f Merge pull request \fI\%#50144\fP from dwoz/winrm_fs_release
  179385. .INDENT 2.0
  179386. .IP \(bu 2
  179387. 0951d85 Use newest winrm\-fs release
  179388. .UNINDENT
  179389. .IP \(bu 2
  179390. e096560 Merge pull request \fI\%#50113\fP from rallytime/bp\-49989
  179391. .INDENT 2.0
  179392. .IP \(bu 2
  179393. 27c7ac9 Increase centos7\-py2 kitchen pr timeout to 8 hours
  179394. .UNINDENT
  179395. .UNINDENT
  179396. .IP \(bu 2
  179397. \fBPR\fP \fI\%#50148\fP: (\fI\%MTecknology\fP) Proxmox fixups
  179398. @ \fI2018\-10\-22 11:55:10 UTC\fP
  179399. .INDENT 2.0
  179400. .IP \(bu 2
  179401. ce375f4 Merge pull request \fI\%#50148\fP from MTecknology/proxmox\-fixups
  179402. .IP \(bu 2
  179403. 4959947 Race condition still exists at one second timeout.
  179404. .IP \(bu 2
  179405. 3a62f74 Add support for setting root ssh pubkey to proxmox containers.
  179406. .UNINDENT
  179407. .IP \(bu 2
  179408. \fBPR\fP \fI\%#50085\fP: (\fI\%dwoz\fP) Fix \fItest_win_pkg\fP yet again
  179409. @ \fI2018\-10\-19 18:16:16 UTC\fP
  179410. .INDENT 2.0
  179411. .IP \(bu 2
  179412. 0ece06e Merge pull request \fI\%#50085\fP from dwoz/win_pkg_redux
  179413. .IP \(bu 2
  179414. f22630e Merge branch \(aq2018.3\(aq into win_pkg_redux
  179415. .IP \(bu 2
  179416. 0b033a6 Do not allow age to be a negative number
  179417. .IP \(bu 2
  179418. a24d8b8 Debug file list cache
  179419. .IP \(bu 2
  179420. 9f5722a The test is not a flush problem
  179421. .IP \(bu 2
  179422. 071f8a0 Add cache file name to list cache log
  179423. .IP \(bu 2
  179424. 128c2c5 Flush and sync file contents
  179425. .IP \(bu 2
  179426. 7d361d8 Add debug log when file list is returned from cache
  179427. .UNINDENT
  179428. .IP \(bu 2
  179429. \fBPR\fP \fI\%#49980\fP: (\fI\%twangboy\fP) Add support for AddPrinterDrivers
  179430. @ \fI2018\-10\-19 13:19:41 UTC\fP
  179431. .INDENT 2.0
  179432. .IP \(bu 2
  179433. 0069247 Merge pull request \fI\%#49980\fP from twangboy/lgpo_add_printer_drivers
  179434. .IP \(bu 2
  179435. 76c9301 Add support for AddPrinterDrivers
  179436. .UNINDENT
  179437. .IP \(bu 2
  179438. \fBPR\fP \fI\%#50114\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50061\fP to 2018.3
  179439. @ \fI2018\-10\-19 11:46:03 UTC\fP
  179440. .INDENT 2.0
  179441. .IP \(bu 2
  179442. \fBPR\fP \fI\%#50061\fP: (\fI\%rongzeng54\fP) pkg.install bugfix (refs: \fI\%#50114\fP)
  179443. .IP \(bu 2
  179444. de23c83 Merge pull request \fI\%#50114\fP from rallytime/bp\-50061
  179445. .IP \(bu 2
  179446. 1f09104 Add unit test for pkg.install with epoch
  179447. .IP \(bu 2
  179448. af253c6 pkg.install bugfix
  179449. .UNINDENT
  179450. .IP \(bu 2
  179451. \fBISSUE\fP \fI\%#50074\fP: (\fI\%bigpick\fP) Arista EOS Salt Minion \- Debug Log Flooded with Repeated Message (refs: \fI\%#50115\fP)
  179452. .IP \(bu 2
  179453. \fBPR\fP \fI\%#50115\fP: (\fI\%garethgreenaway\fP) [2018.3] Apply scheduler fixes and tests from \fI\%#49104\fP to 2018.3
  179454. @ \fI2018\-10\-19 11:45:31 UTC\fP
  179455. .INDENT 2.0
  179456. .IP \(bu 2
  179457. \fBPR\fP \fI\%#49104\fP: (\fI\%garethgreenaway\fP) [fluorine] Fixes to scheduler for jobs with seconds, minutes, etc. (refs: \fI\%#50115\fP)
  179458. .IP \(bu 2
  179459. 9188bec Merge pull request \fI\%#50115\fP from garethgreenaway/apply_49104_to_2018_3
  179460. .IP \(bu 2
  179461. adb1e79 Apply scheduler fixes and tests from \fI\%#49104\fP to 2018.3
  179462. .UNINDENT
  179463. .IP \(bu 2
  179464. \fBPR\fP \fI\%#50119\fP: (\fI\%terminalmage\fP) Squelch spurious errors logged in unit tests
  179465. @ \fI2018\-10\-19 11:42:31 UTC\fP
  179466. .INDENT 2.0
  179467. .IP \(bu 2
  179468. e892042 Merge pull request \fI\%#50119\fP from terminalmage/boto\-tests
  179469. .IP \(bu 2
  179470. 91812ff Squelch spurious errors logged in unit tests
  179471. .UNINDENT
  179472. .IP \(bu 2
  179473. \fBPR\fP \fI\%#50120\fP: (\fI\%terminalmage\fP) Fix bad merge conflict resolution
  179474. @ \fI2018\-10\-19 11:38:35 UTC\fP
  179475. .INDENT 2.0
  179476. .IP \(bu 2
  179477. 35449b4 Merge pull request \fI\%#50120\fP from terminalmage/salt\-jenkins\-1137
  179478. .IP \(bu 2
  179479. 1ddfd26 Fix bad merge conflict resolution
  179480. .UNINDENT
  179481. .IP \(bu 2
  179482. \fBPR\fP \fI\%#50013\fP: (\fI\%Giandom\fP) Passed kwargs to db_exists in db_remove method
  179483. @ \fI2018\-10\-18 11:28:30 UTC\fP
  179484. .INDENT 2.0
  179485. .IP \(bu 2
  179486. 5123488 Merge pull request \fI\%#50013\fP from Giandom/2018.3
  179487. .IP \(bu 2
  179488. 9c91df3 Merge branch \(aq2018.3\(aq into 2018.3
  179489. .IP \(bu 2
  179490. 06bb245 Merge branch \(aq2018.3\(aq into 2018.3
  179491. .IP \(bu 2
  179492. 04a99e0 Passed kwargs to db_remove
  179493. .UNINDENT
  179494. .IP \(bu 2
  179495. \fBPR\fP \fI\%#50092\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179496. @ \fI2018\-10\-17 19:57:07 UTC\fP
  179497. .INDENT 2.0
  179498. .IP \(bu 2
  179499. aa94f60 Merge pull request \fI\%#50092\fP from rallytime/merge\-2018.3
  179500. .IP \(bu 2
  179501. 8609064 Update old utils paths to use new paths
  179502. .IP \(bu 2
  179503. a984ad8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179504. .INDENT 2.0
  179505. .IP \(bu 2
  179506. 7ec3840 Merge pull request \fI\%#49794\fP from twangboy/fix_groupadd_test
  179507. .INDENT 2.0
  179508. .IP \(bu 2
  179509. 3d3b67d Gate for Windows
  179510. .IP \(bu 2
  179511. decfa52 Check value of result instead of entire dict
  179512. .UNINDENT
  179513. .IP \(bu 2
  179514. e562838 Merge pull request \fI\%#50028\fP from basseed/fix\-windows\-virtual\-grain
  179515. .INDENT 2.0
  179516. .IP \(bu 2
  179517. 8129ac6 removed whitespaces
  179518. .IP \(bu 2
  179519. 82fa866 Fix \fI\%#50015\fP, Windows grain defaults to physical as unix grain
  179520. .UNINDENT
  179521. .UNINDENT
  179522. .UNINDENT
  179523. .IP \(bu 2
  179524. \fBISSUE\fP \fI\%#50073\fP: (\fI\%jorotenev\fP) boto_cloudfront update distribution fails (refs: \fI\%#50082\fP)
  179525. .IP \(bu 2
  179526. \fBPR\fP \fI\%#50082\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing a typo in the boto_cloudfront
  179527. @ \fI2018\-10\-17 19:35:00 UTC\fP
  179528. .INDENT 2.0
  179529. .IP \(bu 2
  179530. d1f2c5d Merge pull request \fI\%#50082\fP from garethgreenaway/50073_fixing_typo_boto_cloudfront
  179531. .IP \(bu 2
  179532. b5b90a1 Fixing a typo in the boto_cloudfront.
  179533. .UNINDENT
  179534. .IP \(bu 2
  179535. \fBPR\fP \fI\%#50090\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to utils/vault.py
  179536. @ \fI2018\-10\-17 13:57:30 UTC\fP
  179537. .INDENT 2.0
  179538. .IP \(bu 2
  179539. 05bd2a0 Merge pull request \fI\%#50090\fP from garethgreenaway/fix_vault_sdb_runner_test
  179540. .IP \(bu 2
  179541. 444a4e5 Merge branch \(aq2018.3\(aq into fix_vault_sdb_runner_test
  179542. .UNINDENT
  179543. .IP \(bu 2
  179544. \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)
  179545. .IP \(bu 2
  179546. \fBPR\fP \fI\%#50080\fP: (\fI\%terminalmage\fP) Ensure all string kwargs passed to Tornado\(aqs httpclient are str types
  179547. @ \fI2018\-10\-16 21:01:41 UTC\fP
  179548. .INDENT 2.0
  179549. .IP \(bu 2
  179550. 7092879 Merge pull request \fI\%#50080\fP from terminalmage/issue49275
  179551. .IP \(bu 2
  179552. 4a6c327 Ensure all string kwargs passed to Tornado\(aqs httpclient are str types
  179553. .UNINDENT
  179554. .IP \(bu 2
  179555. \fBISSUE\fP \fI\%#44979\fP: (\fI\%hunkeelin\fP) Firewalld state cause horrid performance during saltrun. (refs: \fI\%#49811\fP)
  179556. .IP \(bu 2
  179557. \fBPR\fP \fI\%#49811\fP: (\fI\%nhavens\fP) Optimize firewalld state
  179558. @ \fI2018\-10\-16 11:26:46 UTC\fP
  179559. .INDENT 2.0
  179560. .IP \(bu 2
  179561. 45b6da3 Merge pull request \fI\%#49811\fP from nhavens/optimize\-firewalld\-state
  179562. .IP \(bu 2
  179563. 7d6e628 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179564. .IP \(bu 2
  179565. a718b0c Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179566. .IP \(bu 2
  179567. f7299b9 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179568. .IP \(bu 2
  179569. f289618 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179570. .IP \(bu 2
  179571. 41af513 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179572. .IP \(bu 2
  179573. 7cebab4 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179574. .IP \(bu 2
  179575. c38bb7d Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179576. .IP \(bu 2
  179577. abed058 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179578. .IP \(bu 2
  179579. 0ec1f82 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179580. .IP \(bu 2
  179581. db6b23b Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179582. .IP \(bu 2
  179583. 4ca7e12 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179584. .IP \(bu 2
  179585. 4f7c914 fix invalid icmp type handling in firewalld state
  179586. .IP \(bu 2
  179587. 2d2e2eb resolve lint error in firewalld state
  179588. .IP \(bu 2
  179589. 081424d resolve indentation issues in updates to firewalld state
  179590. .IP \(bu 2
  179591. c92c4fe optimize firewalld.present rich rule handling
  179592. .IP \(bu 2
  179593. 25d1daf optimize firewalld.present source handling
  179594. .IP \(bu 2
  179595. 5f62c14 optimize firewalld.present interface handling
  179596. .IP \(bu 2
  179597. 69f2c6c optimize firewalld.present service handling
  179598. .IP \(bu 2
  179599. 71ec8e7 optimize firewalld.present port forward handling
  179600. .IP \(bu 2
  179601. f18e09e optimize firewalld.present open port handling
  179602. .IP \(bu 2
  179603. 35193dc clean up firewalld.present masquerade code (DRY)
  179604. .IP \(bu 2
  179605. 8c88784 optimize firewalld.present icmp block handling
  179606. .UNINDENT
  179607. .IP \(bu 2
  179608. \fBPR\fP \fI\%#50055\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50024\fP to 2018.3
  179609. @ \fI2018\-10\-16 09:14:06 UTC\fP
  179610. .INDENT 2.0
  179611. .IP \(bu 2
  179612. \fBPR\fP \fI\%#50024\fP: (\fI\%rwaweber\fP) docs: Correct napalm topic spelling mistake and smooth out sentence (refs: \fI\%#50055\fP)
  179613. .IP \(bu 2
  179614. b94e0a0 Merge pull request \fI\%#50055\fP from rallytime/bp\-50024
  179615. .IP \(bu 2
  179616. 1ea72a0 docs: Correct spelling mistake and smooth out sentence
  179617. .UNINDENT
  179618. .IP \(bu 2
  179619. \fBPR\fP \fI\%#50056\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50029\fP to 2018.3
  179620. @ \fI2018\-10\-16 09:12:59 UTC\fP
  179621. .INDENT 2.0
  179622. .IP \(bu 2
  179623. \fBPR\fP \fI\%#50029\fP: (\fI\%thebluesnevrdie\fP) Expose docs for Ansible modules (refs: \fI\%#50056\fP)
  179624. .IP \(bu 2
  179625. 14f3fac Merge pull request \fI\%#50056\fP from rallytime/bp\-50029
  179626. .IP \(bu 2
  179627. 2e46a78 Expose docs for Ansible modules
  179628. .UNINDENT
  179629. .IP \(bu 2
  179630. \fBPR\fP \fI\%#50064\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50022\fP to 2018.3
  179631. @ \fI2018\-10\-16 09:09:47 UTC\fP
  179632. .INDENT 2.0
  179633. .IP \(bu 2
  179634. \fBPR\fP \fI\%#50022\fP: (\fI\%bluesliverx\fP) Make test check_pillar more lenient (refs: \fI\%#50064\fP)
  179635. .IP \(bu 2
  179636. f3fe4b6 Merge pull request \fI\%#50064\fP from rallytime/bp\-50022
  179637. .IP \(bu 2
  179638. 40da3ce Make test check_pillar more lenient
  179639. .UNINDENT
  179640. .IP \(bu 2
  179641. \fBISSUE\fP \fI\%#49988\fP: (\fI\%whytewolf\fP) currently http error logging of urls contains full URL including passwords. (refs: \fI\%#50066\fP)
  179642. .IP \(bu 2
  179643. \fBPR\fP \fI\%#50066\fP: (\fI\%garethgreenaway\fP) [2018.3] Redact any passwords from source paths
  179644. @ \fI2018\-10\-16 09:08:25 UTC\fP
  179645. .INDENT 2.0
  179646. .IP \(bu 2
  179647. c2a46ce Merge pull request \fI\%#50066\fP from garethgreenaway/49988_redact_passwords_in_source
  179648. .IP \(bu 2
  179649. 27ef1e0 Redact any passwords that are in http/https based source paths.
  179650. .UNINDENT
  179651. .IP \(bu 2
  179652. \fBPR\fP \fI\%#50068\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating salt.utils.mac_utils
  179653. @ \fI2018\-10\-16 09:07:10 UTC\fP
  179654. .INDENT 2.0
  179655. .IP \(bu 2
  179656. ab2cb51 Merge pull request \fI\%#50068\fP from garethgreenaway/1140_mac_system_tests_2018_3_failing
  179657. .IP \(bu 2
  179658. eedeacb Updating another reference to salt.utils.mac_utils to use __utils__
  179659. .INDENT 2.0
  179660. .INDENT 3.5
  179661. .INDENT 0.0
  179662. .IP \(bu 2
  179663. 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.
  179664. .UNINDENT
  179665. .UNINDENT
  179666. .UNINDENT
  179667. .UNINDENT
  179668. .IP \(bu 2
  179669. \fBPR\fP \fI\%#49987\fP: (\fI\%terminalmage\fP) Make Pillar no longer munge file_roots
  179670. @ \fI2018\-10\-15 21:58:08 UTC\fP
  179671. .INDENT 2.0
  179672. .IP \(bu 2
  179673. 4c4bb5a Merge pull request \fI\%#49987\fP from terminalmage/pillar_roots
  179674. .IP \(bu 2
  179675. f59506d Update tests to reflect behavior changes
  179676. .IP \(bu 2
  179677. 58f5fde Make Pillar no longer munge file_roots
  179678. .UNINDENT
  179679. .IP \(bu 2
  179680. \fBPR\fP \fI\%#50065\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50044\fP to 2018.3
  179681. @ \fI2018\-10\-15 21:32:37 UTC\fP
  179682. .INDENT 2.0
  179683. .IP \(bu 2
  179684. \fBPR\fP \fI\%#50044\fP: (\fI\%mchugh19\fP) add saltclass info from release notes to docs (refs: \fI\%#50065\fP)
  179685. .IP \(bu 2
  179686. 1e377ac Merge pull request \fI\%#50065\fP from rallytime/bp\-50044
  179687. .IP \(bu 2
  179688. 1eaaab7 Doc title formatting must match doc name length
  179689. .IP \(bu 2
  179690. 6ac26b6 add saltclass docs from release notes
  179691. .UNINDENT
  179692. .IP \(bu 2
  179693. \fBPR\fP \fI\%#50038\fP: (\fI\%s0undt3ch\fP) Don\(aqt squash the traceback
  179694. @ \fI2018\-10\-15 20:36:55 UTC\fP
  179695. .INDENT 2.0
  179696. .IP \(bu 2
  179697. 8a6b435 Merge pull request \fI\%#50038\fP from s0undt3ch/2018.3
  179698. .IP \(bu 2
  179699. 852257a Don\(aqt squash the traceback
  179700. .UNINDENT
  179701. .IP \(bu 2
  179702. \fBPR\fP \fI\%#50054\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50004\fP to 2018.3
  179703. @ \fI2018\-10\-15 20:36:03 UTC\fP
  179704. .INDENT 2.0
  179705. .IP \(bu 2
  179706. \fBPR\fP \fI\%#50004\fP: (\fI\%kiemlicz\fP) \fI\%https://github.com/saltstack/salt/issues/49883\fP (refs: \fI\%#50054\fP)
  179707. .IP \(bu 2
  179708. dbfd7ee Merge pull request \fI\%#50054\fP from rallytime/bp\-50004
  179709. .IP \(bu 2
  179710. 88e3202 \fI\%https://github.com/saltstack/salt/issues/49883\fP
  179711. .UNINDENT
  179712. .IP \(bu 2
  179713. \fBPR\fP \fI\%#50057\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179714. @ \fI2018\-10\-15 20:35:46 UTC\fP
  179715. .INDENT 2.0
  179716. .IP \(bu 2
  179717. a9e9974 Merge pull request \fI\%#50057\fP from rallytime/merge\-2018.3
  179718. .IP \(bu 2
  179719. 1b5b018 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179720. .INDENT 2.0
  179721. .IP \(bu 2
  179722. 9eb17ea Merge pull request \fI\%#50047\fP from rallytime/bp\-49605
  179723. .INDENT 2.0
  179724. .IP \(bu 2
  179725. e3a0f7b Add gce fix to 2017.7.9 release notes
  179726. .IP \(bu 2
  179727. e6d86fc document GCE instance credentials configuration
  179728. .IP \(bu 2
  179729. c3a0d1b allow empty service_account_private_key in GCE driver
  179730. .UNINDENT
  179731. .IP \(bu 2
  179732. 6cdd390 Merge pull request \fI\%#50017\fP from gtmanfred/iptables
  179733. .INDENT 2.0
  179734. .IP \(bu 2
  179735. e552e4f Use parse_known_args when checking iptables rules
  179736. .UNINDENT
  179737. .IP \(bu 2
  179738. a6a66b9 Merge pull request \fI\%#50012\fP from dwoz/norm_log
  179739. .INDENT 2.0
  179740. .IP \(bu 2
  179741. f96b29d Use normal log formatting and add jid
  179742. .UNINDENT
  179743. .IP \(bu 2
  179744. 15f86b2 Merge pull request \fI\%#50001\fP from kyentei/doc\-fix\-gpg
  179745. .INDENT 2.0
  179746. .IP \(bu 2
  179747. 3d6ee3e Fix gpg state Documentation
  179748. .UNINDENT
  179749. .IP \(bu 2
  179750. 7a235d7 Merge pull request \fI\%#50000\fP from kyentei/doc\-fix\-lvm
  179751. .INDENT 2.0
  179752. .IP \(bu 2
  179753. c2f3d87 Fix LVM state documentation
  179754. .UNINDENT
  179755. .IP \(bu 2
  179756. 4edd094 Merge pull request \fI\%#49999\fP from kyentei/doc\-fix\-proxy
  179757. .INDENT 2.0
  179758. .IP \(bu 2
  179759. a180ed7 Fix proxy documentation
  179760. .UNINDENT
  179761. .IP \(bu 2
  179762. 58d2302 Merge pull request \fI\%#49998\fP from kyentei/doc\-fix\-process
  179763. .INDENT 2.0
  179764. .IP \(bu 2
  179765. edd4f40 Fix documentation on process.py
  179766. .UNINDENT
  179767. .IP \(bu 2
  179768. 411635b Merge pull request \fI\%#49997\fP from kyentei/doc\-fix\-mysql
  179769. .INDENT 2.0
  179770. .IP \(bu 2
  179771. 01059cc Fix documentation for mysql processlist
  179772. .UNINDENT
  179773. .UNINDENT
  179774. .UNINDENT
  179775. .IP \(bu 2
  179776. \fBPR\fP \fI\%#50060\fP: (\fI\%rallytime\fP) [2018.3] Fix some pylint issues that have popped up recently
  179777. @ \fI2018\-10\-15 20:35:22 UTC\fP
  179778. .INDENT 2.0
  179779. .IP \(bu 2
  179780. f1bcb1f Merge pull request \fI\%#50060\fP from rallytime/fix\-lint
  179781. .IP \(bu 2
  179782. a8f4f39 Merge branch \(aq2018.3\(aq into fix\-lint
  179783. .UNINDENT
  179784. .IP \(bu 2
  179785. \fBISSUE\fP \fI\%#49927\fP: (\fI\%thetaurean\fP) File Tree external pillar fails to render templates in python 3 (refs: \fI\%#49943\fP)
  179786. .IP \(bu 2
  179787. \fBPR\fP \fI\%#50052\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49943\fP to 2018.3
  179788. @ \fI2018\-10\-15 20:06:20 UTC\fP
  179789. .INDENT 2.0
  179790. .IP \(bu 2
  179791. \fBPR\fP \fI\%#49943\fP: (\fI\%thetaurean\fP) Coerce string when calling compile_template_str (refs: \fI\%#50052\fP)
  179792. .IP \(bu 2
  179793. b26b21c Merge pull request \fI\%#50052\fP from rallytime/bp\-49943
  179794. .IP \(bu 2
  179795. d336dec Handle non\-ASCII chars during template data decode
  179796. .IP \(bu 2
  179797. 435afb7 Adjusted import to expose stringutils namespace
  179798. .IP \(bu 2
  179799. 958c630 Coerce string when calling compile_template_str
  179800. .IP \(bu 2
  179801. e73f13d [2018.3] Fix some pylint issues that have popped up recently
  179802. .UNINDENT
  179803. .IP \(bu 2
  179804. \fBPR\fP \fI\%#49809\fP: (\fI\%Ch3LL\fP) Add additional asserts to help investigate test_win_pkg failure
  179805. @ \fI2018\-10\-13 18:00:09 UTC\fP
  179806. .INDENT 2.0
  179807. .IP \(bu 2
  179808. fef7669 Merge pull request \fI\%#49809\fP from Ch3LL/win_pkg_flaky
  179809. .IP \(bu 2
  179810. f795b60 Merge pull request \fI\%#7\fP from dwoz/win_pkg_flaky
  179811. .INDENT 2.0
  179812. .IP \(bu 2
  179813. beaab2a Fix win_pkg test
  179814. .UNINDENT
  179815. .IP \(bu 2
  179816. 75809b4 Merge pull request \fI\%#6\fP from dwoz/win_pkg_flaky
  179817. .INDENT 2.0
  179818. .IP \(bu 2
  179819. e5ea3f1 Try running fsync to avoid fs caching race condition
  179820. .UNINDENT
  179821. .IP \(bu 2
  179822. fd5e842 Merge pull request \fI\%#5\fP from dwoz/win_pkg_flaky
  179823. .INDENT 2.0
  179824. .IP \(bu 2
  179825. c386826 Log results of cache_dir for now
  179826. .UNINDENT
  179827. .IP \(bu 2
  179828. 2cd4058 Merge pull request \fI\%#4\fP from dwoz/win_pkg_flaky
  179829. .INDENT 2.0
  179830. .IP \(bu 2
  179831. 1005b91 Debug win_pkg
  179832. .UNINDENT
  179833. .IP \(bu 2
  179834. 9dce5cc Fix the assertion message order
  179835. .IP \(bu 2
  179836. 18e9a28 Add additional asserts to help investigate test_win_pkg failure
  179837. .UNINDENT
  179838. .IP \(bu 2
  179839. \fBPR\fP \fI\%#49983\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179840. @ \fI2018\-10\-11 13:27:34 UTC\fP
  179841. .INDENT 2.0
  179842. .IP \(bu 2
  179843. 8949873 Merge pull request \fI\%#49983\fP from rallytime/merge\-2018.3
  179844. .IP \(bu 2
  179845. f8e73e8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179846. .INDENT 2.0
  179847. .IP \(bu 2
  179848. a8a3811 Merge pull request \fI\%#49972\fP from rallytime/release\-notes\-2017.7.9
  179849. .INDENT 2.0
  179850. .IP \(bu 2
  179851. 6c00003 Add 2017.7.9 release notes file
  179852. .UNINDENT
  179853. .IP \(bu 2
  179854. 8de58d6 Merge pull request \fI\%#49974\fP from rallytime/bp\-49940
  179855. .INDENT 2.0
  179856. .IP \(bu 2
  179857. a70358a Update mod_watch() description for all states.
  179858. .IP \(bu 2
  179859. bf3d064 Another attempt to clean up service.mod_watch description.
  179860. .IP \(bu 2
  179861. 165b799 Clean up documentation/language in service state. (Fixes \fI\%#40819\fP)
  179862. .UNINDENT
  179863. .IP \(bu 2
  179864. d68e5d3 Merge pull request \fI\%#49978\fP from whytewolf/inotify_doc_change
  179865. .INDENT 2.0
  179866. .IP \(bu 2
  179867. b4d9523 using an exclude list that does not list every operating system leaves open the possability that it would work on those not listed
  179868. .UNINDENT
  179869. .IP \(bu 2
  179870. 89cbbb6 Merge pull request \fI\%#49934\fP from rallytime/fix\-49925
  179871. .INDENT 2.0
  179872. .IP \(bu 2
  179873. 216fd64 Remove event_publisher_pub_hwm and salt_event_pub_hwm from documentation
  179874. .UNINDENT
  179875. .UNINDENT
  179876. .UNINDENT
  179877. .IP \(bu 2
  179878. \fBPR\fP \fI\%#49979\fP: (\fI\%cachedout\fP) Update license date and include NOTICE
  179879. @ \fI2018\-10\-11 12:57:21 UTC\fP
  179880. .INDENT 2.0
  179881. .IP \(bu 2
  179882. c7d2482 Merge pull request \fI\%#49979\fP from cachedout/license_update
  179883. .IP \(bu 2
  179884. b4f148e Break out support and contributing docs into separate files
  179885. .IP \(bu 2
  179886. 1dd0e34 Update license date and include NOTICE
  179887. .UNINDENT
  179888. .IP \(bu 2
  179889. \fBPR\fP \fI\%#49973\fP: (\fI\%rallytime\fP) Add 2018.3.4 release notes file
  179890. @ \fI2018\-10\-10 17:46:04 UTC\fP
  179891. .INDENT 2.0
  179892. .IP \(bu 2
  179893. ef61fc6 Merge pull request \fI\%#49973\fP from rallytime/release\-notes\-2018.3.4
  179894. .IP \(bu 2
  179895. 32e7d90 Add 2018.3.4 release notes file
  179896. .UNINDENT
  179897. .IP \(bu 2
  179898. \fBPR\fP \fI\%#49975\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49958\fP to 2018.3
  179899. @ \fI2018\-10\-10 17:44:56 UTC\fP
  179900. .INDENT 2.0
  179901. .IP \(bu 2
  179902. \fBPR\fP \fI\%#49958\fP: (\fI\%garethgreenaway\fP) [fluorine] Fixes to mac_system.py (refs: \fI\%#49975\fP)
  179903. .IP \(bu 2
  179904. 7d8f10c Merge pull request \fI\%#49975\fP from rallytime/bp\-49958
  179905. .IP \(bu 2
  179906. a229a50 Swap the call for mac_utils.available_services to use __utils__ so mac_utils.available_services has access to __context__
  179907. .UNINDENT
  179908. .IP \(bu 2
  179909. \fBPR\fP \fI\%#49946\fP: (\fI\%isbm\fP) osversion/osversion_info/osmajorrelease grains fixes
  179910. @ \fI2018\-10\-10 14:01:05 UTC\fP
  179911. .INDENT 2.0
  179912. .IP \(bu 2
  179913. c912d3a Merge pull request \fI\%#49946\fP from isbm/isbm\-osversion_info\-fixes
  179914. .IP \(bu 2
  179915. a17ba35 Fix proper part name in the string\-bound CPE
  179916. .IP \(bu 2
  179917. 9d49607 Expand unit test to verify part name
  179918. .IP \(bu 2
  179919. a6b7d01 Remove linebreak
  179920. .IP \(bu 2
  179921. 5376886 Keep CPE_NAME only for opensuse series
  179922. .IP \(bu 2
  179923. 8af3904 Add part parsing
  179924. .IP \(bu 2
  179925. e202b41 Prevent possible crash if CPE_NAME is wrongly written in the distro
  179926. .IP \(bu 2
  179927. 712083d Add unit test for broken CPE_NAME
  179928. .IP \(bu 2
  179929. 1306ddb Add unit test for v2.3 of CPE format
  179930. .IP \(bu 2
  179931. 04b61d3 Add unit test for WFN format of CPE_NAME
  179932. .IP \(bu 2
  179933. 035690f Override VERSION_ID from os\-release, if CPE_NAME is given
  179934. .IP \(bu 2
  179935. 08e235b Remove unnecessary linebreak
  179936. .IP \(bu 2
  179937. 853e163 Add CPE_NAME parsing
  179938. .UNINDENT
  179939. .IP \(bu 2
  179940. \fBISSUE\fP \fI\%#48204\fP: (\fI\%zerthimon\fP) State mysql_user.present Exception with mysql 8.0.11 (refs: \fI\%#49918\fP)
  179941. .IP \(bu 2
  179942. \fBPR\fP \fI\%#49918\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to MySQL module
  179943. @ \fI2018\-10\-10 14:00:11 UTC\fP
  179944. .INDENT 2.0
  179945. .IP \(bu 2
  179946. 18fb5df Merge pull request \fI\%#49918\fP from garethgreenaway/48204_mysql_user_password_exception_part_deux
  179947. .IP \(bu 2
  179948. 92c0680 Merge branch \(aq2018.3\(aq into 48204_mysql_user_password_exception_part_deux
  179949. .IP \(bu 2
  179950. 71e53a3 Cleanup of debugging.
  179951. .IP \(bu 2
  179952. dd96c13 Fixing lint.
  179953. .IP \(bu 2
  179954. ac7da89 Tweaking a couple tests to account for new scenarios with later versions.
  179955. .IP \(bu 2
  179956. 4320c43 Removing __mysql_hash_password, no longer needed.
  179957. .IP \(bu 2
  179958. 0475acf Removing unnecessary empty line.
  179959. .IP \(bu 2
  179960. 9265195 Updating the mysql update to handle changes in version 8.0.11 where PASSWORD was removed. Updating unit tests.
  179961. .UNINDENT
  179962. .IP \(bu 2
  179963. \fBPR\fP \fI\%#49961\fP: (\fI\%dmurphy18\fP) Fix aix grains test for prtconf present
  179964. @ \fI2018\-10\-10 13:38:02 UTC\fP
  179965. .INDENT 2.0
  179966. .IP \(bu 2
  179967. 1c2e5be Merge pull request \fI\%#49961\fP from dmurphy18/fix_aix_grains
  179968. .IP \(bu 2
  179969. f38d543 Correct test for AIX grains prtconf
  179970. .UNINDENT
  179971. .IP \(bu 2
  179972. \fBISSUE\fP \fI\%#49205\fP: (\fI\%ereslibre\fP) Compound targeting includes unexpected targets in the result (refs: \fI\%#49897\fP, \fI\%#49907\fP)
  179973. .IP \(bu 2
  179974. \fBPR\fP \fI\%#49907\fP: (\fI\%brejoc\fP) 2018.3 fix for list compound targeting
  179975. @ \fI2018\-10\-10 13:33:40 UTC\fP
  179976. .INDENT 2.0
  179977. .IP \(bu 2
  179978. \fBPR\fP \fI\%#49897\fP: (\fI\%brejoc\fP) 2017.7 fix for list compound targeting (refs: \fI\%#49907\fP)
  179979. .IP \(bu 2
  179980. \fBPR\fP \fI\%#49435\fP: (\fI\%brejoc\fP) No longer passes missing in list compound engine (refs: \fI\%#49897\fP, \fI\%#49907\fP)
  179981. .IP \(bu 2
  179982. e427306 Merge pull request \fI\%#49907\fP from brejoc/2018.3\-fix\-for\-list\-compound\-targeting
  179983. .IP \(bu 2
  179984. 1bcadb9 Merge branch \(aq2018.3\(aq into 2018.3\-fix\-for\-list\-compound\-targeting
  179985. .IP \(bu 2
  179986. 649c46c Adds check for engine before adding the additional engine argument
  179987. .IP \(bu 2
  179988. 7d0b20c Minor fix for def test_batch_run_grains_targeting
  179989. .IP \(bu 2
  179990. 0d64716 Ignore missing minions only when excluding them with \(aqnot\(aq
  179991. .IP \(bu 2
  179992. 6a5f3cd No longer passes missing in list compound engine
  179993. .UNINDENT
  179994. .IP \(bu 2
  179995. \fBISSUE\fP \fI\%#48599\fP: (\fI\%angeloudy\fP) module ldap3 \(aqTypeError: (\(aqexpected a byte string in the list\(aq\(aq (refs: \fI\%#48666\fP)
  179996. .IP \(bu 2
  179997. \fBPR\fP \fI\%#49947\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48666\fP to 2018.3
  179998. @ \fI2018\-10\-09 17:48:20 UTC\fP
  179999. .INDENT 2.0
  180000. .IP \(bu 2
  180001. \fBPR\fP \fI\%#48666\fP: (\fI\%angeloudy\fP) values need to be bytes when writing back to ldap (refs: \fI\%#49947\fP)
  180002. .IP \(bu 2
  180003. 143c723 Merge pull request \fI\%#49947\fP from rallytime/bp\-48666
  180004. .IP \(bu 2
  180005. 5166917 Update ldap3.py
  180006. .IP \(bu 2
  180007. 05e55bd values need to be bytes when writing to ldap
  180008. .IP \(bu 2
  180009. 0d749e6 values need to be bytes when writing back to ldap
  180010. .UNINDENT
  180011. .IP \(bu 2
  180012. \fBPR\fP \fI\%#49948\fP: (\fI\%rallytime\fP) Skip pillar refresh test
  180013. @ \fI2018\-10\-09 15:20:52 UTC\fP
  180014. .INDENT 2.0
  180015. .IP \(bu 2
  180016. dbf994e Merge pull request \fI\%#49948\fP from rallytime/skip\-flaky\-test
  180017. .IP \(bu 2
  180018. df11c39 Skip pillar refresh test
  180019. .UNINDENT
  180020. .IP \(bu 2
  180021. \fBPR\fP \fI\%#49938\fP: (\fI\%s0undt3ch\fP) Handle missing \fIpkg_resources\fP package
  180022. @ \fI2018\-10\-09 13:41:09 UTC\fP
  180023. .INDENT 2.0
  180024. .IP \(bu 2
  180025. 614d172 Merge pull request \fI\%#49938\fP from s0undt3ch/2018.3
  180026. .IP \(bu 2
  180027. b1c2928 Handle missing \fIpkg_resources\fP package
  180028. .UNINDENT
  180029. .IP \(bu 2
  180030. \fBPR\fP \fI\%#49942\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180031. @ \fI2018\-10\-09 13:38:04 UTC\fP
  180032. .INDENT 2.0
  180033. .IP \(bu 2
  180034. bce12c3 Merge pull request \fI\%#49942\fP from rallytime/merge\-2018.3
  180035. .IP \(bu 2
  180036. 91534ee Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180037. .INDENT 2.0
  180038. .IP \(bu 2
  180039. 327796e Merge pull request \fI\%#49911\fP from dubb\-b/slack\-pr
  180040. .INDENT 2.0
  180041. .IP \(bu 2
  180042. 57e630c Adding failure messages for PR.
  180043. .UNINDENT
  180044. .IP \(bu 2
  180045. cf1df79 Merge pull request \fI\%#49900\fP from dwoz/presence_wart
  180046. .INDENT 2.0
  180047. .IP \(bu 2
  180048. 7bd34f6 Connect before processing presence
  180049. .UNINDENT
  180050. .IP \(bu 2
  180051. 8c4707d Merge pull request \fI\%#49899\fP from twangboy/fix_49892
  180052. .INDENT 2.0
  180053. .IP \(bu 2
  180054. a66765f Remove arrInstalled artifact
  180055. .UNINDENT
  180056. .UNINDENT
  180057. .UNINDENT
  180058. .IP \(bu 2
  180059. \fBPR\fP \fI\%#49930\fP: (\fI\%isbm\fP) Get os_family for RPM distros from the RPM macros
  180060. @ \fI2018\-10\-09 13:31:52 UTC\fP
  180061. .INDENT 2.0
  180062. .IP \(bu 2
  180063. a30c053 Merge pull request \fI\%#49930\fP from isbm/isbm\-osarch\-bugfix
  180064. .IP \(bu 2
  180065. f8a75f1 Fix imports
  180066. .IP \(bu 2
  180067. 70d3de0 Strip and stringify the return for the osarch
  180068. .IP \(bu 2
  180069. a248371 Get os_family for RPM distros from the RPM macros.
  180070. .UNINDENT
  180071. .IP \(bu 2
  180072. \fBPR\fP \fI\%#49868\fP: (\fI\%dwoz\fP) windows shell tests
  180073. @ \fI2018\-10\-08 17:32:20 UTC\fP
  180074. .INDENT 2.0
  180075. .IP \(bu 2
  180076. 99c5dba Merge pull request \fI\%#49868\fP from dwoz/shelltests
  180077. .IP \(bu 2
  180078. 9997f45 Merge branch \(aq2018.3\(aq into shelltests
  180079. .UNINDENT
  180080. .IP \(bu 2
  180081. \fBPR\fP \fI\%#49875\fP: (\fI\%dwoz\fP) Add spm tests to Windows suite
  180082. @ \fI2018\-10\-05 18:13:07 UTC\fP
  180083. .INDENT 2.0
  180084. .IP \(bu 2
  180085. eee82d3 Merge pull request \fI\%#49875\fP from dwoz/win_spm_tests
  180086. .IP \(bu 2
  180087. e76a751 Use os.path.split for more consistancy
  180088. .IP \(bu 2
  180089. bc54d15 Fix wart in spm on windows
  180090. .IP \(bu 2
  180091. df5e271 Add spm tests for windows
  180092. .UNINDENT
  180093. .IP \(bu 2
  180094. \fBPR\fP \fI\%#49872\fP: (\fI\%twangboy\fP) Fix issues with windows file permissions when using reset=True
  180095. @ \fI2018\-10\-05 13:52:07 UTC\fP
  180096. .INDENT 2.0
  180097. .IP \(bu 2
  180098. c0e2404 Merge pull request \fI\%#49872\fP from twangboy/fix_49861
  180099. .IP \(bu 2
  180100. 01bd847 Gate the win_function a little better
  180101. .IP \(bu 2
  180102. bcdb366 Skip on non\-windows systems
  180103. .IP \(bu 2
  180104. 02f6335 Fix some lint
  180105. .IP \(bu 2
  180106. 8ecbe0e Add tests for check_perms
  180107. .IP \(bu 2
  180108. d6e7512 Fix issues with file permissions
  180109. .UNINDENT
  180110. .IP \(bu 2
  180111. \fBISSUE\fP \fI\%#49582\fP: (\fI\%UtahDave\fP) lgpo doesn\(aqt seem to allow for unsetting a gpo setting (refs: \fI\%#49902\fP)
  180112. .IP \(bu 2
  180113. \fBISSUE\fP \fI\%#48661\fP: (\fI\%mike2523\fP) win_lgpo: User Rights Assignment policies (refs: \fI\%#49902\fP)
  180114. .IP \(bu 2
  180115. \fBPR\fP \fI\%#49902\fP: (\fI\%lomeroe\fP) lgpo better comments on user right assignments
  180116. @ \fI2018\-10\-05 13:41:16 UTC\fP
  180117. .INDENT 2.0
  180118. .IP \(bu 2
  180119. d3a909f Merge pull request \fI\%#49902\fP from lomeroe/issue48661_2018.3
  180120. .IP \(bu 2
  180121. 760d8f4 Merge branch \(aq2018.3\(aq into issue48661_2018.3
  180122. .IP \(bu 2
  180123. 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
  180124. .INDENT 2.0
  180125. .INDENT 3.5
  180126. .INDENT 0.0
  180127. .IP \(bu 2
  180128. 75dd5ab Merge branch \(aq2018.3\(aq into shelltests
  180129. .UNINDENT
  180130. .UNINDENT
  180131. .UNINDENT
  180132. .UNINDENT
  180133. .IP \(bu 2
  180134. \fBPR\fP \fI\%#49896\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180135. @ \fI2018\-10\-04 21:00:24 UTC\fP
  180136. .INDENT 2.0
  180137. .IP \(bu 2
  180138. 4eb43af Merge pull request \fI\%#49896\fP from rallytime/merge\-2018.3
  180139. .IP \(bu 2
  180140. 41c8b31 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180141. .IP \(bu 2
  180142. b959033 Merge pull request \fI\%#49739\fP from twangboy/fix_49660
  180143. .INDENT 2.0
  180144. .IP \(bu 2
  180145. f3400ad Merge branch \(aq2017.7\(aq into fix_49660
  180146. .IP \(bu 2
  180147. 0a4f5fc Merge branch \(aq2017.7\(aq into fix_49660
  180148. .IP \(bu 2
  180149. 1f9bbc8 Populate changes dictionary
  180150. .UNINDENT
  180151. .IP \(bu 2
  180152. 71669bd Merge pull request \fI\%#49885\fP from dwoz/gemfile
  180153. .INDENT 2.0
  180154. .IP \(bu 2
  180155. 791e3ff Use dwoz/winrm\-fs for chunked downloads
  180156. .IP \(bu 2
  180157. f3999e1 Move vagrant to its own group
  180158. .UNINDENT
  180159. .IP \(bu 2
  180160. 0662e37 Merge pull request \fI\%#49870\fP from KaiSforza/ci_actually_fail
  180161. .INDENT 2.0
  180162. .IP \(bu 2
  180163. 9ef9206 Actually catch the exception when we fail
  180164. .INDENT 2.0
  180165. .INDENT 3.5
  180166. .INDENT 0.0
  180167. .IP \(bu 2
  180168. 19072f0 Use os.path.split for more consistancy
  180169. .IP \(bu 2
  180170. 6c22459 Merge remote\-tracking branch \(aqorigin/shelltests\(aq into shelltests
  180171. .INDENT 2.0
  180172. .IP \(bu 2
  180173. 43b292f Merge branch \(aq2018.3\(aq into shelltests
  180174. .IP \(bu 2
  180175. 876c040 Fix wart in test_cp module
  180176. .IP \(bu 2
  180177. 9e6ff11 Add syndic tests to whitelist.txt for Windows
  180178. .IP \(bu 2
  180179. 9cab293 Fix wart in spm on windows
  180180. .IP \(bu 2
  180181. 58e9d1b Add spm tests to whitelist.txt for Windows
  180182. .IP \(bu 2
  180183. 7393610 Add more shell integration tests to whitelist
  180184. .IP \(bu 2
  180185. ce85d60 Add shell.test_key to whitelist and fix wart
  180186. .IP \(bu 2
  180187. 6fbadd7 Skip tests not valid on windows
  180188. .IP \(bu 2
  180189. 9debf29 Add shell cp tests and fix them
  180190. .UNINDENT
  180191. .IP \(bu 2
  180192. 8bfa634 Fix warts in integration.shell.test_matcher
  180193. .IP \(bu 2
  180194. 45d2142 Fix wart in test_cp module
  180195. .IP \(bu 2
  180196. 0e4fbc5 Add syndic tests to whitelist.txt for Windows
  180197. .IP \(bu 2
  180198. f72ad01 Fix wart in spm on windows
  180199. .IP \(bu 2
  180200. 4141cc8 Add spm tests to whitelist.txt for Windows
  180201. .IP \(bu 2
  180202. 02ad722 Add more shell integration tests to whitelist
  180203. .IP \(bu 2
  180204. 48275c0 Add shell.test_key to whitelist and fix wart
  180205. .IP \(bu 2
  180206. e5edff4 Skip tests not valid on windows
  180207. .IP \(bu 2
  180208. a389729 Add shell cp tests and fix them
  180209. .UNINDENT
  180210. .UNINDENT
  180211. .UNINDENT
  180212. .UNINDENT
  180213. .UNINDENT
  180214. .IP \(bu 2
  180215. \fBISSUE\fP \fI\%#49744\fP: (\fI\%MTecknology\fP) Group state cannot force empty group membership (refs: \fI\%#49745\fP)
  180216. .IP \(bu 2
  180217. \fBPR\fP \fI\%#49745\fP: (\fI\%MTecknology\fP) Remove all users from group when members list is empty.
  180218. @ \fI2018\-10\-03 13:48:40 UTC\fP
  180219. .INDENT 2.0
  180220. .IP \(bu 2
  180221. 85478cd Merge pull request \fI\%#49745\fP from MTecknology/fix\-49744
  180222. .IP \(bu 2
  180223. 61afb5d Merge branch \(aq2018.3\(aq into fix\-49744
  180224. .IP \(bu 2
  180225. 269bde2 Merge branch \(aq2018.3\(aq into fix\-49744
  180226. .IP \(bu 2
  180227. 0b5d916 Modify if structure, as requested.
  180228. .IP \(bu 2
  180229. f57ce67 Remove all users from group when members list is empty. (Fixes \fI\%#49744\fP)
  180230. .UNINDENT
  180231. .IP \(bu 2
  180232. \fBPR\fP \fI\%#49867\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180233. @ \fI2018\-10\-03 13:23:35 UTC\fP
  180234. .INDENT 2.0
  180235. .IP \(bu 2
  180236. 05cd56b Merge pull request \fI\%#49867\fP from rallytime/merge\-2018.3
  180237. .IP \(bu 2
  180238. b53c3e6 Update old utils paths to use new utils paths
  180239. .IP \(bu 2
  180240. a65c60d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180241. .INDENT 2.0
  180242. .IP \(bu 2
  180243. 7fa2043 Merge pull request \fI\%#49858\fP from Paulo\-Nunes/fix\-requisite\-doc
  180244. .INDENT 2.0
  180245. .IP \(bu 2
  180246. fb6f818 Edit requisite documentation
  180247. .UNINDENT
  180248. .IP \(bu 2
  180249. 0587fbc Merge pull request \fI\%#49828\fP from dwoz/testslogencoding
  180250. .INDENT 2.0
  180251. .IP \(bu 2
  180252. 2b323df Merge branch \(aq2017.7\(aq into testslogencoding
  180253. .IP \(bu 2
  180254. 7ce1b64 Use utf\-8 encoding for salt\-runtests.log
  180255. .UNINDENT
  180256. .IP \(bu 2
  180257. 15ccffd Merge pull request \fI\%#49848\fP from terminalmage/fix\-version\-rst\-2017.7
  180258. .INDENT 2.0
  180259. .IP \(bu 2
  180260. af2dddb Fix badly formatted versionadded directive
  180261. .UNINDENT
  180262. .IP \(bu 2
  180263. 297031b Merge pull request \fI\%#49777\fP from terminalmage/issue49738
  180264. .INDENT 2.0
  180265. .IP \(bu 2
  180266. 8a9945e Update test docstring to reflect switch to using SHA1
  180267. .IP \(bu 2
  180268. 7ddfd72 Switch from base64 encoding to sha1 digest for unique cache filename
  180269. .IP \(bu 2
  180270. 0e26dc6 Explicitly import salt.utils.hashutils
  180271. .IP \(bu 2
  180272. dca90d7 Skip parallel states test on Windows until we can get it to work
  180273. .IP \(bu 2
  180274. 5a11067 Add additional info to the assert to aid in troubleshooting
  180275. .IP \(bu 2
  180276. cb19086 Remove/replace unnecessary setUp/tearDown
  180277. .IP \(bu 2
  180278. b3e9678 Fix parallel states with long ID dec or name
  180279. .UNINDENT
  180280. .IP \(bu 2
  180281. 98c9372 Merge pull request \fI\%#49763\fP from twangboy/fix_49730
  180282. .INDENT 2.0
  180283. .IP \(bu 2
  180284. 99bc8f1 Merge branch \(aq2017.7\(aq into fix_49730
  180285. .IP \(bu 2
  180286. 7a9278b Fix broken tests, add new tests
  180287. .IP \(bu 2
  180288. 2cd1509 Merge branch \(aq2017.7\(aq into fix_49730
  180289. .IP \(bu 2
  180290. defba1c Merge branch \(aq2017.7\(aq into fix_49730
  180291. .IP \(bu 2
  180292. af1ed1c Add/fix tests
  180293. .IP \(bu 2
  180294. 5005a4d Only clear dns entries if you pass []
  180295. .IP \(bu 2
  180296. 048561e Add ability to clear DNS entries on static DNS
  180297. .UNINDENT
  180298. .UNINDENT
  180299. .UNINDENT
  180300. .IP \(bu 2
  180301. \fBPR\fP \fI\%#49876\fP: (\fI\%KaiSforza\fP) Actually catch the exception when we fail
  180302. @ \fI2018\-10\-03 12:26:58 UTC\fP
  180303. .INDENT 2.0
  180304. .IP \(bu 2
  180305. 42b540b Merge pull request \fI\%#49876\fP from KaiSforza/ci_actually_fail_2018
  180306. .IP \(bu 2
  180307. c88a81d Actually catch the exception when we fail
  180308. .UNINDENT
  180309. .IP \(bu 2
  180310. \fBPR\fP \fI\%#49852\fP: (\fI\%terminalmage\fP) Rename logstash engine filename to make it work with the loader
  180311. @ \fI2018\-10\-02 17:42:10 UTC\fP
  180312. .INDENT 2.0
  180313. .IP \(bu 2
  180314. 1c8def9 Merge pull request \fI\%#49852\fP from terminalmage/issue49627
  180315. .IP \(bu 2
  180316. 559cf1b Rename logstash engine filename to make it work with the loader
  180317. .UNINDENT
  180318. .IP \(bu 2
  180319. \fBPR\fP \fI\%#49850\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49798\fP to 2018.3
  180320. @ \fI2018\-10\-02 17:40:29 UTC\fP
  180321. .INDENT 2.0
  180322. .IP \(bu 2
  180323. \fBPR\fP \fI\%#49798\fP: (\fI\%mattp\-\fP) saltnado: teach runner about full_return (refs: \fI\%#49850\fP)
  180324. .IP \(bu 2
  180325. 675df25 Merge pull request \fI\%#49850\fP from rallytime/bp\-49798
  180326. .IP \(bu 2
  180327. 4b6dcd7 saltnado: teach runner about full_return
  180328. .UNINDENT
  180329. .IP \(bu 2
  180330. \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)
  180331. .IP \(bu 2
  180332. \fBPR\fP \fI\%#49846\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49650\fP and \fI\%#49827\fP to 2018.3
  180333. @ \fI2018\-10\-01 20:05:24 UTC\fP
  180334. .INDENT 2.0
  180335. .IP \(bu 2
  180336. \fBPR\fP \fI\%#49827\fP: (\fI\%dgmorrisjr\fP) fixing mis\-spelling of lattrs in file.py, referncing \fI\%#49204\fP (refs: \fI\%#49846\fP)
  180337. .IP \(bu 2
  180338. \fBPR\fP \fI\%#49650\fP: (\fI\%Yxnt\fP) fix aliyun cloud typeerror (refs: \fI\%#49846\fP)
  180339. .IP \(bu 2
  180340. 93d064a Merge pull request \fI\%#49846\fP from rallytime/bp\-49650
  180341. .IP \(bu 2
  180342. fb7fed7 referncing \fI\%#49204\fP, fixing mis\-spelling of lattrs on line 4514 per request from @gtmanfred
  180343. .IP \(bu 2
  180344. ec9fa92 use stringutils instead of hard code
  180345. .IP \(bu 2
  180346. a307ae0 fix aliyun cloud typeerror
  180347. .UNINDENT
  180348. .IP \(bu 2
  180349. \fBISSUE\fP \fI\%#49520\fP: (\fI\%doesitblend\fP) Multi\-master DNS Issue \- minion connect fail (refs: \fI\%#49764\fP)
  180350. .IP \(bu 2
  180351. \fBPR\fP \fI\%#49764\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding retry_dns_count to minion
  180352. @ \fI2018\-10\-01 14:20:03 UTC\fP
  180353. .INDENT 2.0
  180354. .IP \(bu 2
  180355. ec97806 Merge pull request \fI\%#49764\fP from garethgreenaway/49520_multimaster_dns_issue_fix
  180356. .IP \(bu 2
  180357. 30ccc5e Merge branch \(aq2018.3\(aq into 49520_multimaster_dns_issue_fix
  180358. .IP \(bu 2
  180359. 741928b Fixes per request from @rallytime.
  180360. .IP \(bu 2
  180361. 04c5983 Moving the check for an empty self.minions into a io_loop.call_later call.
  180362. .IP \(bu 2
  180363. 44ee2ec Updating default for retry_dns_count
  180364. .IP \(bu 2
  180365. 75f64a6 Removing unneccesary code.
  180366. .IP \(bu 2
  180367. 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.
  180368. .UNINDENT
  180369. .IP \(bu 2
  180370. \fBPR\fP \fI\%#49847\fP: (\fI\%terminalmage\fP) Fix badly formatted versionadded directive (2018.3 branch)
  180371. @ \fI2018\-10\-01 14:04:27 UTC\fP
  180372. .INDENT 2.0
  180373. .IP \(bu 2
  180374. abdab68 Merge pull request \fI\%#49847\fP from terminalmage/fix\-version\-rst\-2018.3
  180375. .IP \(bu 2
  180376. a127548 Fix badly formatted versionadded directive
  180377. .UNINDENT
  180378. .IP \(bu 2
  180379. \fBISSUE\fP \fI\%#49043\fP: (\fI\%awerner\fP) Unicode broken with file.blockreplace on Python2 (refs: \fI\%#49782\fP)
  180380. .IP \(bu 2
  180381. \fBPR\fP \fI\%#49782\fP: (\fI\%dwoz\fP) Fix issue 49043
  180382. @ \fI2018\-10\-01 13:43:02 UTC\fP
  180383. .INDENT 2.0
  180384. .IP \(bu 2
  180385. aca87ab Merge pull request \fI\%#49782\fP from dwoz/issue\-49043
  180386. .IP \(bu 2
  180387. b7d904f Merge branch \(aq2018.3\(aq into issue\-49043
  180388. .IP \(bu 2
  180389. ed35633 Revert diff newline change
  180390. .IP \(bu 2
  180391. 2a901e9 Fix issue 49043
  180392. .UNINDENT
  180393. .IP \(bu 2
  180394. \fBISSUE\fP \fI\%#49671\fP: (\fI\%mchugh19\fP) Vault execution module broken in pillar lookups (refs: \fI\%#49820\fP)
  180395. .IP \(bu 2
  180396. \fBPR\fP \fI\%#49820\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing vault when being used from Pillar
  180397. @ \fI2018\-10\-01 13:40:25 UTC\fP
  180398. .INDENT 2.0
  180399. .IP \(bu 2
  180400. 1a41d1b Merge pull request \fI\%#49820\fP from garethgreenaway/49671_fixing_vault_pillar
  180401. .IP \(bu 2
  180402. a57872f Merge branch \(aq2018.3\(aq into 49671_fixing_vault_pillar
  180403. .IP \(bu 2
  180404. 5f13219 Merge branch \(aq2018.3\(aq into 49671_fixing_vault_pillar
  180405. .IP \(bu 2
  180406. 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.
  180407. .UNINDENT
  180408. .IP \(bu 2
  180409. \fBPR\fP \fI\%#49842\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180410. @ \fI2018\-10\-01 13:21:42 UTC\fP
  180411. .INDENT 2.0
  180412. .IP \(bu 2
  180413. bf9c175 Merge pull request \fI\%#49842\fP from rallytime/merge\-2018.3
  180414. .IP \(bu 2
  180415. 81b0aa7 Add "in progress" notation back to the 2018.3.3 release notes
  180416. .IP \(bu 2
  180417. 0e76103 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180418. .UNINDENT
  180419. .IP \(bu 2
  180420. \fBPR\fP \fI\%#49839\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180421. @ \fI2018\-09\-30 16:32:53 UTC\fP
  180422. .INDENT 2.0
  180423. .IP \(bu 2
  180424. e6382cb Merge pull request \fI\%#49839\fP from rallytime/merge\-2018.3
  180425. .IP \(bu 2
  180426. 179e4b1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180427. .IP \(bu 2
  180428. fd46d35 Merge pull request \fI\%#49823\fP from dubb\-b/timeout_addition
  180429. .INDENT 2.0
  180430. .IP \(bu 2
  180431. b25ac9f Adding some changes for the status
  180432. .IP \(bu 2
  180433. f6d9679 Updating syntax to be better and with new lines
  180434. .IP \(bu 2
  180435. 855ffe6 Adding timeout to all pipelines so that the build aborts
  180436. .UNINDENT
  180437. .UNINDENT
  180438. .IP \(bu 2
  180439. \fBPR\fP \fI\%#49815\fP: (\fI\%isbm\fP) Bugfix/rework: IPv6 scope errors (bp)
  180440. @ \fI2018\-09\-28 19:44:59 UTC\fP
  180441. .INDENT 2.0
  180442. .IP \(bu 2
  180443. fccc08c Merge pull request \fI\%#49815\fP from isbm/isbm\-ipv6\-scope\-errors\-2018.3
  180444. .IP \(bu 2
  180445. c14f26f Reverse skipping tests: if no ipaddress
  180446. .IP \(bu 2
  180447. bb37ba0 Add IPv6 scoped test
  180448. .IP \(bu 2
  180449. facb34a Add additional check
  180450. .IP \(bu 2
  180451. 615b09a Lintfix: W0611
  180452. .IP \(bu 2
  180453. 3ce265e Remove unnecessary manipulation with IPv6 scope outside of the IPv6Address object instance
  180454. .IP \(bu 2
  180455. c314e1c Revert method remapping with pylint updates
  180456. .IP \(bu 2
  180457. 0a86112 Lintfix refactor: remove duplicate returns as not needed
  180458. .IP \(bu 2
  180459. 5932a0d Lintfix
  180460. .IP \(bu 2
  180461. f52ea0b Add Py3.4 old implementation\(aqs fix
  180462. .IP \(bu 2
  180463. 1c02a31 Fix wrong type swap
  180464. .IP \(bu 2
  180465. 54233ca Do not use introspection for method swap
  180466. .IP \(bu 2
  180467. 12038ea Simplify checking clause
  180468. .IP \(bu 2
  180469. 7f2208b Fix py2 case where the same class cannot initialise itself on Python2 via super.
  180470. .IP \(bu 2
  180471. 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
  180472. .IP \(bu 2
  180473. 379ead4 Lintfix: mute not called constructors
  180474. .IP \(bu 2
  180475. 66ec29c Add scope on str
  180476. .IP \(bu 2
  180477. f5644bf Add logging to the ip_interface
  180478. .IP \(bu 2
  180479. 8bb5438 Add real exception message
  180480. .IP \(bu 2
  180481. 693e4d4 Move docstrings to their native places
  180482. .IP \(bu 2
  180483. 77f1c44 Remove duplicated code
  180484. .IP \(bu 2
  180485. 40d0e6b Use ternary operator instead
  180486. .IP \(bu 2
  180487. d05999e Remove multiple returns
  180488. .IP \(bu 2
  180489. 3fde850 Remove unnecessary operator
  180490. .IP \(bu 2
  180491. deb0b4e Remove duplicated code
  180492. .IP \(bu 2
  180493. 8e62633 Remove unnecessary variable for import detection
  180494. .IP \(bu 2
  180495. 7a6ea3b Remove multiple returns and add check for address syntax
  180496. .IP \(bu 2
  180497. b40e1e1 Add debugging to the ip_address method (py2 and py3)
  180498. .IP \(bu 2
  180499. cab5f62 Add logging
  180500. .IP \(bu 2
  180501. eeab9f2 Isolate Py2 and Py3 mode
  180502. .IP \(bu 2
  180503. 49b32b7 Check version via object
  180504. .IP \(bu 2
  180505. 1ae94f1 Override standard IPv6Address class
  180506. .IP \(bu 2
  180507. 5e970ea Fix unicode imports in compat
  180508. .IP \(bu 2
  180509. bbeec4d Fix ipaddress import
  180510. .IP \(bu 2
  180511. 561c99e Remove unused import
  180512. .IP \(bu 2
  180513. 0498e94 Fix ipaddress imports
  180514. .IP \(bu 2
  180515. b4f1a72 Add missing docstrings
  180516. .UNINDENT
  180517. .IP \(bu 2
  180518. \fBPR\fP \fI\%#49784\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180519. @ \fI2018\-09\-28 17:29:30 UTC\fP
  180520. .INDENT 2.0
  180521. .IP \(bu 2
  180522. 804d52c Merge pull request \fI\%#49784\fP from rallytime/merge\-2018.3
  180523. .IP \(bu 2
  180524. c6b9d18 Merge branch \(aq2018.3\(aq into merge\-2018.3
  180525. .IP \(bu 2
  180526. 26461f9 Add helper import comments
  180527. .IP \(bu 2
  180528. 22f055c Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180529. .INDENT 2.0
  180530. .IP \(bu 2
  180531. d2a193b Merge pull request \fI\%#49792\fP from KaiSforza/fixscriptedpipes
  180532. .INDENT 2.0
  180533. .IP \(bu 2
  180534. 5b16996 Fix the new pipelines
  180535. .UNINDENT
  180536. .UNINDENT
  180537. .IP \(bu 2
  180538. dd27d80 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180539. .INDENT 2.0
  180540. .IP \(bu 2
  180541. 8a71a43 Merge pull request \fI\%#49774\fP from KaiSforza/declarativeToScripted
  180542. .INDENT 2.0
  180543. .IP \(bu 2
  180544. cae88f2 Move all pipelines to be fully scripted
  180545. .UNINDENT
  180546. .IP \(bu 2
  180547. 8fe8aac Merge pull request \fI\%#49736\fP from mattLLVW/fix\-file\-touch
  180548. .INDENT 2.0
  180549. .IP \(bu 2
  180550. 1da9f34 Fix test opts in append, prepend states/file.py
  180551. .UNINDENT
  180552. .UNINDENT
  180553. .UNINDENT
  180554. .IP \(bu 2
  180555. \fBPR\fP \fI\%#49790\fP: (\fI\%weswhet\fP) fixing an issue where sentry logger would fail to get tags from grain…
  180556. @ \fI2018\-09\-28 13:39:04 UTC\fP
  180557. .INDENT 2.0
  180558. .IP \(bu 2
  180559. d191b08 Merge pull request \fI\%#49790\fP from weswhet/fixing\-sentry\-logger\-2018.3
  180560. .IP \(bu 2
  180561. 201697d fixing an issue where sentry logger would fail to get tags from grains and some other lint fixes for this file
  180562. .UNINDENT
  180563. .IP \(bu 2
  180564. \fBISSUE\fP \fI\%#49626\fP: (\fI\%PabloLemos\fP) target grains ip_interface no return received (refs: \fI\%#49791\fP)
  180565. .IP \(bu 2
  180566. \fBPR\fP \fI\%#49791\fP: (\fI\%terminalmage\fP) Fix 3 bugs in subdict matching
  180567. @ \fI2018\-09\-28 13:38:34 UTC\fP
  180568. .INDENT 2.0
  180569. .IP \(bu 2
  180570. 4d9fc7c Merge pull request \fI\%#49791\fP from terminalmage/issue49626
  180571. .IP \(bu 2
  180572. 6795472 Add clarifying comment
  180573. .IP \(bu 2
  180574. ac0f800 Fix 3 bugs in subdict matching
  180575. .UNINDENT
  180576. .IP \(bu 2
  180577. \fBPR\fP \fI\%#49806\fP: (\fI\%isbm\fP) Bugfix: zypper ZYPPER_EXIT_NO_REPOS exit code
  180578. @ \fI2018\-09\-28 13:20:36 UTC\fP
  180579. .INDENT 2.0
  180580. .IP \(bu 2
  180581. 52b0472 Merge pull request \fI\%#49806\fP from isbm/isbm\-zypper\-errcode\-6\-bp
  180582. .IP \(bu 2
  180583. 756ef77 Update error list for zypper
  180584. .IP \(bu 2
  180585. 5b02548 Add error logging
  180586. .UNINDENT
  180587. .IP \(bu 2
  180588. \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)
  180589. .IP \(bu 2
  180590. \fBPR\fP \fI\%#49795\fP: (\fI\%gtmanfred\fP) fix test_managed_file_with_grains_data
  180591. @ \fI2018\-09\-26 22:48:36 UTC\fP
  180592. .INDENT 2.0
  180593. .IP \(bu 2
  180594. fee6701 Merge pull request \fI\%#49795\fP from gtmanfred/tests
  180595. .IP \(bu 2
  180596. cf5c179 fix test_managed_file_with_grains_data
  180597. .UNINDENT
  180598. .IP \(bu 2
  180599. \fBPR\fP \fI\%#49786\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49759\fP to 2018.3
  180600. @ \fI2018\-09\-26 18:22:01 UTC\fP
  180601. .INDENT 2.0
  180602. .IP \(bu 2
  180603. \fBPR\fP \fI\%#49759\fP: (\fI\%mattp\-\fP) runners.state.orch: generate jid if missing (refs: \fI\%#49786\fP)
  180604. .IP \(bu 2
  180605. 04e5869 Merge pull request \fI\%#49786\fP from rallytime/bp\-49759
  180606. .IP \(bu 2
  180607. df3791c state.orch: generate jid if missing
  180608. .UNINDENT
  180609. .IP \(bu 2
  180610. \fBPR\fP \fI\%#49770\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180611. @ \fI2018\-09\-25 19:03:25 UTC\fP
  180612. .INDENT 2.0
  180613. .IP \(bu 2
  180614. 4138683 Merge pull request \fI\%#49770\fP from rallytime/merge\-2018.3
  180615. .IP \(bu 2
  180616. d9ed59b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180617. .IP \(bu 2
  180618. f664515 Merge pull request \fI\%#49760\fP from Ch3LL/raid_docs
  180619. .INDENT 2.0
  180620. .IP \(bu 2
  180621. 0eb90c1 Add mdadm as dependency in mdadm state docs
  180622. .UNINDENT
  180623. .IP \(bu 2
  180624. d5a75bf Merge pull request \fI\%#49749\fP from erwindon/docufix
  180625. .INDENT 2.0
  180626. .IP \(bu 2
  180627. baee678 fixed link in documentation
  180628. .UNINDENT
  180629. .IP \(bu 2
  180630. 5ef2def Merge pull request \fI\%#49703\fP from twangboy/fix_49675_2017.7
  180631. .INDENT 2.0
  180632. .IP \(bu 2
  180633. 9127222 Merge branch \(aq2017.7\(aq into fix_49675_2017.7
  180634. .IP \(bu 2
  180635. 4f54422 Fix reboot needed detection
  180636. .UNINDENT
  180637. .IP \(bu 2
  180638. b5726d2 Merge pull request \fI\%#49718\fP from vutny/doc/2017.7/add\-missing\-mock\-kwarg
  180639. .INDENT 2.0
  180640. .IP \(bu 2
  180641. 3e19176 [DOC] Add missing \fImock\fP argument for \fIstate.apply\fP
  180642. .UNINDENT
  180643. .UNINDENT
  180644. .IP \(bu 2
  180645. \fBPR\fP \fI\%#49757\fP: (\fI\%bbinet\fP) Fix influxdb_user state when test=True
  180646. @ \fI2018\-09\-24 19:14:22 UTC\fP
  180647. .INDENT 2.0
  180648. .IP \(bu 2
  180649. db6f68a Merge pull request \fI\%#49757\fP from bbinet/fix\-influxdb_user\-test
  180650. .IP \(bu 2
  180651. 0d9ef4b Fix influxdb_user state when test=True
  180652. .UNINDENT
  180653. .IP \(bu 2
  180654. \fBPR\fP \fI\%#49679\fP: (\fI\%dwoz\fP) Add more tests to whitelist
  180655. @ \fI2018\-09\-22 17:46:50 UTC\fP
  180656. .INDENT 2.0
  180657. .IP \(bu 2
  180658. ec2386e Merge pull request \fI\%#49679\fP from dwoz/whitelist
  180659. .IP \(bu 2
  180660. 0a3d95f Fix linter issues
  180661. .IP \(bu 2
  180662. 4c457c9 Close handles only if they exist
  180663. .IP \(bu 2
  180664. a44b37a Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into whitelist
  180665. .UNINDENT
  180666. .IP \(bu 2
  180667. \fBPR\fP \fI\%#49722\fP: (\fI\%meaksh\fP) Fixes some issues on the Zypper module
  180668. @ \fI2018\-09\-21 13:38:03 UTC\fP
  180669. .INDENT 2.0
  180670. .IP \(bu 2
  180671. 6a3e127 Merge pull request \fI\%#49722\fP from meaksh/2018.3\-fix\-zypper\-issue\-on\-python3
  180672. .IP \(bu 2
  180673. bb9cb6e Fix wrong queryformat for zypper list_provides
  180674. .IP \(bu 2
  180675. d40c034 Fix index error when running on Python 3
  180676. .UNINDENT
  180677. .IP \(bu 2
  180678. \fBPR\fP \fI\%#49720\fP: (\fI\%cstarke\fP) Seperate prlctl and prlsrvctl checks into each requiring function
  180679. @ \fI2018\-09\-21 13:32:46 UTC\fP
  180680. .INDENT 2.0
  180681. .IP \(bu 2
  180682. e7bbb83 Merge pull request \fI\%#49720\fP from cstarke/2018.3
  180683. .IP \(bu 2
  180684. b0be6aa Add documentation for prlctl and prlsrvctl binary requirement
  180685. .IP \(bu 2
  180686. 4f8476b Fix tests; add test for CommandExecutionError
  180687. .IP \(bu 2
  180688. 3c96dd2 Fix tests for parallels module
  180689. .IP \(bu 2
  180690. 9034c4e Add import for CommandExecutionError
  180691. .IP \(bu 2
  180692. 752b6f8 Seperate prlctl and prlsrvctl checks into each requiring function
  180693. .UNINDENT
  180694. .IP \(bu 2
  180695. \fBPR\fP \fI\%#49615\fP: (\fI\%terminalmage\fP) ping_interval: use service.restart instead of signaling
  180696. @ \fI2018\-09\-21 13:26:41 UTC\fP
  180697. .INDENT 2.0
  180698. .IP \(bu 2
  180699. f745e43 Merge pull request \fI\%#49615\fP from terminalmage/ping\-interval
  180700. .IP \(bu 2
  180701. b49b018 Move service name logic to a separate function
  180702. .IP \(bu 2
  180703. 2fddba3 ping_interval: use service.restart instead of signaling
  180704. .UNINDENT
  180705. .IP \(bu 2
  180706. \fBPR\fP \fI\%#49731\fP: (\fI\%terminalmage\fP) Add warning about using jinja filters to dump dicts in Jinja
  180707. @ \fI2018\-09\-21 13:16:04 UTC\fP
  180708. .INDENT 2.0
  180709. .IP \(bu 2
  180710. 0a530d2 Merge pull request \fI\%#49731\fP from terminalmage/jinja\-filter\-warning
  180711. .IP \(bu 2
  180712. 8393560 Add warning about using jinja filters to dump dicts in Jinja
  180713. .UNINDENT
  180714. .IP \(bu 2
  180715. \fBPR\fP \fI\%#49696\fP: (\fI\%jgleissner\fP) loosen azure sdk dependencies in azurearm cloud driver
  180716. @ \fI2018\-09\-20 19:17:15 UTC\fP
  180717. .INDENT 2.0
  180718. .IP \(bu 2
  180719. 91acb82 Merge pull request \fI\%#49696\fP from jgleissner/2018.3\-azurearm\-deps
  180720. .IP \(bu 2
  180721. 467e017 remove unused import from azurearm driver
  180722. .IP \(bu 2
  180723. bad28b6 loosen azure sdk dependencies in azurearm cloud driver
  180724. .UNINDENT
  180725. .IP \(bu 2
  180726. \fBPR\fP \fI\%#49684\fP: (\fI\%twangboy\fP) Detect when system needs reboot after domain join
  180727. @ \fI2018\-09\-20 16:17:50 UTC\fP
  180728. .INDENT 2.0
  180729. .IP \(bu 2
  180730. d434e36 Merge pull request \fI\%#49684\fP from twangboy/fix_49675
  180731. .IP \(bu 2
  180732. 3600467 Fix some try/except blocks, mark a lazy test
  180733. .IP \(bu 2
  180734. 871c11a Fix other functions in the same manner
  180735. .IP \(bu 2
  180736. 1b5bc66 Merge branch \(aq2018.3\(aq into fix_49675
  180737. .IP \(bu 2
  180738. 95e6f54 Detect when system needs reboot after domain join
  180739. .INDENT 2.0
  180740. .INDENT 3.5
  180741. .INDENT 0.0
  180742. .IP \(bu 2
  180743. 9048970 Add some debug info to assert
  180744. .IP \(bu 2
  180745. 536fce6 Increase function timeout
  180746. .IP \(bu 2
  180747. ed4de63 Fix file serialize test
  180748. .IP \(bu 2
  180749. 5ac3738 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into whitelist
  180750. .UNINDENT
  180751. .UNINDENT
  180752. .UNINDENT
  180753. .UNINDENT
  180754. .IP \(bu 2
  180755. \fBPR\fP \fI\%#49710\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180756. @ \fI2018\-09\-19 18:05:50 UTC\fP
  180757. .INDENT 2.0
  180758. .IP \(bu 2
  180759. 936cae5 Merge pull request \fI\%#49710\fP from rallytime/merge\-2018.3
  180760. .IP \(bu 2
  180761. d19c67f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180762. .IP \(bu 2
  180763. 6bd85b5 Merge pull request \fI\%#49706\fP from garethgreenaway/1120_remove_mock_os_path_join
  180764. .INDENT 2.0
  180765. .IP \(bu 2
  180766. 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.
  180767. .UNINDENT
  180768. .IP \(bu 2
  180769. c38dc61 Merge pull request \fI\%#49692\fP from rallytime/bp\-49688
  180770. .INDENT 2.0
  180771. .IP \(bu 2
  180772. fde7575 Order the runtests suites
  180773. .INDENT 2.0
  180774. .INDENT 3.5
  180775. .INDENT 0.0
  180776. .IP \(bu 2
  180777. 1f60753 Do not use close_fds on Windows OS
  180778. .IP \(bu 2
  180779. 4a54c7c Fix file serialize test
  180780. .IP \(bu 2
  180781. 0ec1e1e Increase timeout on flaky test
  180782. .IP \(bu 2
  180783. 6ae924b Skip test that is not applicable on windows
  180784. .IP \(bu 2
  180785. 5980200 Increase timeout on flaky test
  180786. .IP \(bu 2
  180787. 1757edd Increase ModuleTest.run_function timeout
  180788. .IP \(bu 2
  180789. 7c7353c Add more tests to whitelist
  180790. .UNINDENT
  180791. .UNINDENT
  180792. .UNINDENT
  180793. .UNINDENT
  180794. .UNINDENT
  180795. .IP \(bu 2
  180796. \fBPR\fP \fI\%#49708\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49555\fP to 2018.3
  180797. @ \fI2018\-09\-19 13:12:12 UTC\fP
  180798. .INDENT 2.0
  180799. .IP \(bu 2
  180800. \fBPR\fP \fI\%#49555\fP: (\fI\%bergmannf\fP) Change StringIO and BytesIO imports (refs: \fI\%#49708\fP)
  180801. .IP \(bu 2
  180802. b082f79 Merge pull request \fI\%#49708\fP from rallytime/bp\-49555
  180803. .IP \(bu 2
  180804. ed25416 Change StringIO import in python2 to import the class.
  180805. .UNINDENT
  180806. .IP \(bu 2
  180807. \fBPR\fP \fI\%#49707\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49702\fP to 2018.3
  180808. @ \fI2018\-09\-19 13:09:10 UTC\fP
  180809. .INDENT 2.0
  180810. .IP \(bu 2
  180811. \fBPR\fP \fI\%#49702\fP: (\fI\%rallytime\fP) Mark orchestration test as expensive (refs: \fI\%#49707\fP)
  180812. .IP \(bu 2
  180813. 0e97d9e Merge pull request \fI\%#49707\fP from rallytime/bp\-49702
  180814. .IP \(bu 2
  180815. 7ff24e5 Mark orchestration test as expensive
  180816. .UNINDENT
  180817. .IP \(bu 2
  180818. \fBPR\fP \fI\%#49693\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180819. @ \fI2018\-09\-18 20:05:28 UTC\fP
  180820. .INDENT 2.0
  180821. .IP \(bu 2
  180822. 0c4005d Merge pull request \fI\%#49693\fP from rallytime/merge\-2018.3
  180823. .IP \(bu 2
  180824. b39dacf Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180825. .IP \(bu 2
  180826. 37cbd27 Merge pull request \fI\%#49685\fP from rallytime/pillar\-headings
  180827. .INDENT 2.0
  180828. .IP \(bu 2
  180829. 02b2d54 Split intro docs for cmd_yamlex pillar into shorter lines.
  180830. .IP \(bu 2
  180831. c4cbe5b Fix heading line\-lengths
  180832. .UNINDENT
  180833. .IP \(bu 2
  180834. 9bad295 Merge pull request \fI\%#49689\fP from terminalmage/2017.7\-docs
  180835. .INDENT 2.0
  180836. .IP \(bu 2
  180837. 7e5bab7 Fix docs build errors (2017.7 branch)
  180838. .UNINDENT
  180839. .UNINDENT
  180840. .IP \(bu 2
  180841. \fBPR\fP \fI\%#49674\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180842. @ \fI2018\-09\-18 13:37:00 UTC\fP
  180843. .INDENT 2.0
  180844. .IP \(bu 2
  180845. a12176d Merge pull request \fI\%#49674\fP from rallytime/merge\-2018.3
  180846. .IP \(bu 2
  180847. 7bcb809 Merge pull request \fI\%#31\fP from dwoz/merge\-2018.3
  180848. .INDENT 2.0
  180849. .IP \(bu 2
  180850. cb35ebb Account for filename changes
  180851. .UNINDENT
  180852. .IP \(bu 2
  180853. f3b122f Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180854. .UNINDENT
  180855. .IP \(bu 2
  180856. \fBPR\fP \fI\%#49593\fP: (\fI\%dwoz\fP) Add more tests to whitelist for Windows
  180857. @ \fI2018\-09\-17 14:57:44 UTC\fP
  180858. .INDENT 2.0
  180859. .IP \(bu 2
  180860. e636dac Merge pull request \fI\%#49593\fP from dwoz/add_whitelist
  180861. .IP \(bu 2
  180862. 2e1bf13 Merge branch \(aq2018.3\(aq into add_whitelist
  180863. .IP \(bu 2
  180864. 2340a58 Fix runner returns test on Windows
  180865. .IP \(bu 2
  180866. f908cde Merge branch \(aq2018.3\(aq into add_whitelist
  180867. .IP \(bu 2
  180868. be5fccf Fix linter \- blank lines
  180869. .IP \(bu 2
  180870. e51b0f8 Fix binary file manage test
  180871. .IP \(bu 2
  180872. 9e3b44d Fix linter issues
  180873. .IP \(bu 2
  180874. ca1b05e Fix multiple issues in x509 module and state
  180875. .IP \(bu 2
  180876. e603e7a Fix encoding issues in file and x509 states
  180877. .IP \(bu 2
  180878. 7f93c7f Fix map file loading on windows
  180879. .IP \(bu 2
  180880. 2959da0 Add some runners test files to whitelist
  180881. .IP \(bu 2
  180882. bee2902 Make windows file remove return like others
  180883. .IP \(bu 2
  180884. 5770b05 Fix hitelist file order
  180885. .IP \(bu 2
  180886. 10ec8be Fix linter issues
  180887. .IP \(bu 2
  180888. ccbcb55 Add more tests to whitelist for Windows
  180889. .UNINDENT
  180890. .IP \(bu 2
  180891. \fBPR\fP \fI\%#49639\fP: (\fI\%isbm\fP) Retire MD5 checksum for pkg mgmt plugins
  180892. @ \fI2018\-09\-17 14:51:54 UTC\fP
  180893. .INDENT 2.0
  180894. .IP \(bu 2
  180895. 7823839 Merge pull request \fI\%#49639\fP from isbm/isbm\-yumnotify\-md5
  180896. .IP \(bu 2
  180897. 11a94ca Remove an empty line
  180898. .IP \(bu 2
  180899. adb8324 Use SHA256 algorithm for zyppnotify plugin
  180900. .IP \(bu 2
  180901. 27001cf Use SHA256 algorithm for yumnotify plugin
  180902. .UNINDENT
  180903. .IP \(bu 2
  180904. \fBPR\fP \fI\%#49652\fP: (\fI\%rallytime\fP) [2018.3] Merge forwrad from 2018.3.3 to 2018.3
  180905. @ \fI2018\-09\-14 21:20:39 UTC\fP
  180906. .INDENT 2.0
  180907. .IP \(bu 2
  180908. aecbe12 Merge pull request \fI\%#49652\fP from rallytime/merge\-2018.3
  180909. .IP \(bu 2
  180910. a8a3820 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180911. .UNINDENT
  180912. .IP \(bu 2
  180913. \fBPR\fP \fI\%#49646\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180914. @ \fI2018\-09\-14 13:30:22 UTC\fP
  180915. .INDENT 2.0
  180916. .IP \(bu 2
  180917. 530e281 Merge pull request \fI\%#49646\fP from rallytime/merge\-2018.3
  180918. .IP \(bu 2
  180919. 186f57e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180920. .IP \(bu 2
  180921. 3c8ec8a Merge pull request \fI\%#49644\fP from rallytime/mark\-flaky\-test
  180922. .INDENT 2.0
  180923. .IP \(bu 2
  180924. be8a187 Mark grains test as flaky
  180925. .UNINDENT
  180926. .IP \(bu 2
  180927. 8ac66f1 Merge pull request \fI\%#49643\fP from rallytime/bp\-49642
  180928. .INDENT 2.0
  180929. .IP \(bu 2
  180930. accef8c Skip some unreliable tests
  180931. .UNINDENT
  180932. .IP \(bu 2
  180933. 7a75d5e Merge pull request \fI\%#49597\fP from rallytime/bp\-47232
  180934. .INDENT 2.0
  180935. .IP \(bu 2
  180936. c477b70 Fixed usage of ipaddress
  180937. .UNINDENT
  180938. .IP \(bu 2
  180939. 2f6cdd9 Merge pull request \fI\%#49614\fP from rallytime/bp\-49546
  180940. .INDENT 2.0
  180941. .IP \(bu 2
  180942. 0f3881a Skip flaky test on Python 3
  180943. .UNINDENT
  180944. .UNINDENT
  180945. .IP \(bu 2
  180946. \fBPR\fP \fI\%#49642\fP: (\fI\%rallytime\fP) Skip some unreliable tests (refs: \fI\%#49643\fP)
  180947. @ \fI2018\-09\-13 18:24:43 UTC\fP
  180948. .INDENT 2.0
  180949. .IP \(bu 2
  180950. bb1dcdf Merge pull request \fI\%#49642\fP from rallytime/flaky\-tests
  180951. .IP \(bu 2
  180952. 8e74d1c Skip some unreliable tests
  180953. .UNINDENT
  180954. .IP \(bu 2
  180955. \fBPR\fP \fI\%#49629\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180956. @ \fI2018\-09\-13 14:00:08 UTC\fP
  180957. .INDENT 2.0
  180958. .IP \(bu 2
  180959. e319ecc Merge pull request \fI\%#49629\fP from rallytime/merge\-2018.3
  180960. .IP \(bu 2
  180961. b628ad7 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180962. .UNINDENT
  180963. .IP \(bu 2
  180964. \fBPR\fP \fI\%#49632\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.states.test_file.FileTest.test_directory_max_depth
  180965. @ \fI2018\-09\-13 13:51:56 UTC\fP
  180966. .INDENT 2.0
  180967. .IP \(bu 2
  180968. 93d43fa Merge pull request \fI\%#49632\fP from garethgreenaway/fixing_failing_test_python_3_7
  180969. .IP \(bu 2
  180970. 588f744 Fixing failing test under python 3.7 causaed by changes to how os.makedirs sets initial permissions.
  180971. .UNINDENT
  180972. .IP \(bu 2
  180973. \fBPR\fP \fI\%#49580\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing tests for Python 3.7
  180974. @ \fI2018\-09\-12 16:33:35 UTC\fP
  180975. .INDENT 2.0
  180976. .IP \(bu 2
  180977. 7042fc0 Merge pull request \fI\%#49580\fP from garethgreenaway/fixing_failing_test_python_3_7
  180978. .IP \(bu 2
  180979. b6afdae Fixing lint.
  180980. .IP \(bu 2
  180981. d2fb68c Fixes various tests that were failing under python 3.7.
  180982. .UNINDENT
  180983. .IP \(bu 2
  180984. \fBPR\fP \fI\%#49606\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180985. @ \fI2018\-09\-12 14:26:33 UTC\fP
  180986. .INDENT 2.0
  180987. .IP \(bu 2
  180988. ab19082 Merge pull request \fI\%#49606\fP from rallytime/merge\-2018.3
  180989. .IP \(bu 2
  180990. c168268 Update old utils paths to use new paths
  180991. .IP \(bu 2
  180992. 19598d8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180993. .INDENT 2.0
  180994. .IP \(bu 2
  180995. aa560c5 Merge pull request \fI\%#49595\fP from rallytime/merge\-2017.7
  180996. .INDENT 2.0
  180997. .IP \(bu 2
  180998. 09247a3 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  180999. .INDENT 2.0
  181000. .IP \(bu 2
  181001. 4d865b4 Merge pull request \fI\%#49560\fP from rallytime/pkgng\-fix
  181002. .INDENT 2.0
  181003. .IP \(bu 2
  181004. f3e1534 [2017.7.8] Use correct path for is_true function
  181005. .UNINDENT
  181006. .IP \(bu 2
  181007. 92369f0 Merge pull request \fI\%#49541\fP from twangboy/fix_osx_build_2
  181008. .INDENT 2.0
  181009. .IP \(bu 2
  181010. 750d3fa Remove trusted host switches
  181011. .UNINDENT
  181012. .IP \(bu 2
  181013. 397296f Merge pull request \fI\%#49539\fP from twangboy/fix_osx_build_2
  181014. .INDENT 2.0
  181015. .IP \(bu 2
  181016. 6b42e73 Fix issues with build script on OSX
  181017. .UNINDENT
  181018. .UNINDENT
  181019. .UNINDENT
  181020. .IP \(bu 2
  181021. e8171de Merge pull request \fI\%#49596\fP from terminalmage/kill\-bare\-excepts\-with\-fire
  181022. .INDENT 2.0
  181023. .IP \(bu 2
  181024. 729dc08 Kill bare excepts with fire
  181025. .UNINDENT
  181026. .IP \(bu 2
  181027. 63b6643 Merge pull request \fI\%#49578\fP from twangboy/fix_49566
  181028. .INDENT 2.0
  181029. .IP \(bu 2
  181030. 6a5a69c Merge branch \(aq2017.7\(aq into fix_49566
  181031. .UNINDENT
  181032. .IP \(bu 2
  181033. f9a01b7 Merge pull request \fI\%#49584\fP from terminalmage/squelch\-varstack\-error
  181034. .INDENT 2.0
  181035. .IP \(bu 2
  181036. c79a823 Squelch error logging when varstack is not installed
  181037. .UNINDENT
  181038. .IP \(bu 2
  181039. d4d2b36 Merge pull request \fI\%#49579\fP from dwoz/flaky_test
  181040. .INDENT 2.0
  181041. .IP \(bu 2
  181042. dbe40df Increase timeout for flaky git test
  181043. .UNINDENT
  181044. .IP \(bu 2
  181045. 5cbe60b Merge pull request \fI\%#49570\fP from rallytime/doc\-fixes
  181046. .INDENT 2.0
  181047. .IP \(bu 2
  181048. de80bda Fix docstring + import order, move pylint disable to own line
  181049. .IP \(bu 2
  181050. 393bc0f Fix doc build errors in saltnado documentation
  181051. .INDENT 2.0
  181052. .IP \(bu 2
  181053. 6105ebb Use setup.py clean \-\-all
  181054. .UNINDENT
  181055. .UNINDENT
  181056. .UNINDENT
  181057. .UNINDENT
  181058. .IP \(bu 2
  181059. \fBPR\fP \fI\%#49620\fP: (\fI\%dwoz\fP) Adding passing windows nacl runner tests to whitelist
  181060. @ \fI2018\-09\-12 14:19:11 UTC\fP
  181061. .INDENT 2.0
  181062. .IP \(bu 2
  181063. 0ce91d6 Merge pull request \fI\%#49620\fP from dwoz/nacltest
  181064. .IP \(bu 2
  181065. 51500ac Adding passing windows nacl runner tests to whitelist
  181066. .UNINDENT
  181067. .IP \(bu 2
  181068. \fBPR\fP \fI\%#49532\fP: (\fI\%meaksh\fP) Fix wrong \(aqrecurse\(aq behavior on for linux_acl.present/absent states
  181069. @ \fI2018\-09\-12 14:16:15 UTC\fP
  181070. .INDENT 2.0
  181071. .IP \(bu 2
  181072. c1f97c4 Merge pull request \fI\%#49532\fP from meaksh/2018.3\-fix\-linux_acl\-recursive\-problems
  181073. .IP \(bu 2
  181074. cf27069 Fix some pylint issues
  181075. .IP \(bu 2
  181076. a0ed59d Fix recursive cases on linux_acl.absent state
  181077. .IP \(bu 2
  181078. 4a01849 Add unit tests to cover recursive cases of linux_acl states
  181079. .IP \(bu 2
  181080. f739b6f Fix typo on variable name
  181081. .IP \(bu 2
  181082. dc6d1d7 Fix wrong recurse behavior on for linux_acl.present state
  181083. .UNINDENT
  181084. .IP \(bu 2
  181085. \fBISSUE\fP \fI\%#49027\fP: (\fI\%lachlanmunro\fP) x509.certificate_managed certificate is mangled on process under py3 m2crypto (refs: \fI\%#49561\fP)
  181086. .IP \(bu 2
  181087. \fBISSUE\fP \fI\%#49008\fP: (\fI\%lachlanmunro\fP) x509.certificate_managed state fails under py3 m2crypto with "int too large" (refs: \fI\%#49561\fP)
  181088. .IP \(bu 2
  181089. \fBPR\fP \fI\%#49561\fP: (\fI\%dwoz\fP) x509 module and state bug fixes
  181090. @ \fI2018\-09\-11 14:01:43 UTC\fP
  181091. .INDENT 2.0
  181092. .IP \(bu 2
  181093. 283e7d7 Merge pull request \fI\%#49561\fP from dwoz/m2crypto_test
  181094. .IP \(bu 2
  181095. 5e591ea Merge branch \(aq2018.3\(aq into m2crypto_test
  181096. .UNINDENT
  181097. .IP \(bu 2
  181098. \fBPR\fP \fI\%#49592\fP: (\fI\%dwoz\fP) Fix binary file manage test
  181099. @ \fI2018\-09\-10 23:03:18 UTC\fP
  181100. .INDENT 2.0
  181101. .IP \(bu 2
  181102. 4478a44 Merge pull request \fI\%#49592\fP from dwoz/bin_file_fix
  181103. .IP \(bu 2
  181104. 8556c3d Fix binary file manage test
  181105. .UNINDENT
  181106. .IP \(bu 2
  181107. \fBPR\fP \fI\%#49571\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181108. @ \fI2018\-09\-10 12:58:15 UTC\fP
  181109. .INDENT 2.0
  181110. .IP \(bu 2
  181111. 9004422 Merge pull request \fI\%#49571\fP from rallytime/merge\-2018.3
  181112. .IP \(bu 2
  181113. a00aba9 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181114. .INDENT 2.0
  181115. .IP \(bu 2
  181116. 5d267a2 Merge pull request \fI\%#49547\fP from rallytime/bp\-49518
  181117. .INDENT 2.0
  181118. .IP \(bu 2
  181119. 4bb09f7 Skip service module integration tests on CentOS 7
  181120. .UNINDENT
  181121. .IP \(bu 2
  181122. 4948071 Merge pull request \fI\%#49549\fP from rallytime/codeowners\-duplicate
  181123. .INDENT 2.0
  181124. .IP \(bu 2
  181125. 4b257d2 Remove duplicate comment in CODEOWNERS file
  181126. .IP \(bu 2
  181127. faafe74 Merge branch \(aq2018.3\(aq into m2crypto_test
  181128. .UNINDENT
  181129. .UNINDENT
  181130. .UNINDENT
  181131. .IP \(bu 2
  181132. \fBPR\fP \fI\%#49577\fP: (\fI\%dwoz\fP) Multiple unittest fixes for 2018.3 Python 3 Windows
  181133. @ \fI2018\-09\-08 05:53:38 UTC\fP
  181134. .INDENT 2.0
  181135. .IP \(bu 2
  181136. 4669a9a Merge pull request \fI\%#49577\fP from dwoz/unit_test_fixes
  181137. .IP \(bu 2
  181138. aa07b3f Multiple unittest fixes for 2018.3 Python 3 Windows
  181139. .UNINDENT
  181140. .IP \(bu 2
  181141. \fBPR\fP \fI\%#49533\fP: (\fI\%silenius\fP) [cherry\-pick] Optimize postgres groups management
  181142. @ \fI2018\-09\-07 18:58:57 UTC\fP
  181143. .INDENT 2.0
  181144. .IP \(bu 2
  181145. 8b971e5 Merge pull request \fI\%#49533\fP from silenius/2018.3.3
  181146. .IP \(bu 2
  181147. 7eb8d6c Postgress module unit test fix.
  181148. .IP \(bu 2
  181149. b56aedc Optimize postgres groups management
  181150. .UNINDENT
  181151. .IP \(bu 2
  181152. \fBPR\fP \fI\%#49543\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181153. @ \fI2018\-09\-07 18:19:32 UTC\fP
  181154. .INDENT 2.0
  181155. .IP \(bu 2
  181156. 1a41b47 Merge pull request \fI\%#49543\fP from rallytime/merge\-2018.3
  181157. .IP \(bu 2
  181158. cf508a4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181159. .INDENT 2.0
  181160. .IP \(bu 2
  181161. 75a3b52 Merge pull request \fI\%#49527\fP from terminalmage/remove\-special\-envs\-handling
  181162. .INDENT 2.0
  181163. .IP \(bu 2
  181164. 1478a76 Remove special handling for file_envs fileserver func
  181165. .UNINDENT
  181166. .IP \(bu 2
  181167. 13f1d26 Merge pull request \fI\%#49512\fP from rallytime/merge\-2017.7
  181168. .INDENT 2.0
  181169. .IP \(bu 2
  181170. de7ef3d Add "in progess" notation back to 2017.7.8 release notes
  181171. .IP \(bu 2
  181172. edad2dc Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  181173. .INDENT 2.0
  181174. .IP \(bu 2
  181175. d24c96f Merge pull request \fI\%#49505\fP from Ch3LL/rn_7.8_2
  181176. .INDENT 2.0
  181177. .IP \(bu 2
  181178. d40b644 Update 2017.7.8 ChangeLog with new fixes
  181179. .UNINDENT
  181180. .IP \(bu 2
  181181. 0d7b173 Merge pull request \fI\%#49498\fP from rallytime/pin\-cherrypy\-2017.7.8
  181182. .INDENT 2.0
  181183. .IP \(bu 2
  181184. 81a6155 Pin CherryPy version to < 18.0.0 in requirements files for PY2
  181185. .UNINDENT
  181186. .IP \(bu 2
  181187. 52ab2c0 Merge pull request \fI\%#49466\fP from rallytime/bp\-49461
  181188. .INDENT 2.0
  181189. .IP \(bu 2
  181190. 5842800 Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  181191. .UNINDENT
  181192. .IP \(bu 2
  181193. 1bbe7df Merge pull request \fI\%#49284\fP from twangboy/fix_installer_osx
  181194. .INDENT 2.0
  181195. .IP \(bu 2
  181196. a112eaa Fix path to libsodium tarball
  181197. .UNINDENT
  181198. .IP \(bu 2
  181199. e0e8779 Merge pull request \fI\%#49272\fP from twangboy/fix_installer_more
  181200. .INDENT 2.0
  181201. .IP \(bu 2
  181202. a8f054b Add 64bit binaries for KB2999226 to the x86 installer
  181203. .UNINDENT
  181204. .IP \(bu 2
  181205. 0eb6ddf Merge pull request \fI\%#49218\fP from twangboy/fix_installer
  181206. .INDENT 2.0
  181207. .IP \(bu 2
  181208. e8a1d2f Add more descriptive error when KB not found
  181209. .IP \(bu 2
  181210. 71737ea Suppress all ui on vcredist installation
  181211. .IP \(bu 2
  181212. 7dae9bb Fix Windows and OSX installers
  181213. .UNINDENT
  181214. .IP \(bu 2
  181215. e484f26 Merge pull request \fI\%#49116\fP from twangboy/fix_installer
  181216. .INDENT 2.0
  181217. .IP \(bu 2
  181218. 1227095 Add nonfatal switch to VCRedist
  181219. .UNINDENT
  181220. .IP \(bu 2
  181221. 0b9f2f8 Merge pull request \fI\%#49113\fP from Ch3LL/rn_7.8
  181222. .IP \(bu 2
  181223. f6b70bb Add changelog to 2017.7.8 release notes
  181224. .UNINDENT
  181225. .UNINDENT
  181226. .IP \(bu 2
  181227. 208cfe6 Merge pull request \fI\%#49515\fP from rallytime/update\-codeowners
  181228. .INDENT 2.0
  181229. .IP \(bu 2
  181230. 1faab8b Add some files to the CODEOWNERS files for team\-core to own
  181231. .UNINDENT
  181232. .IP \(bu 2
  181233. 34e5174 Merge pull request \fI\%#49327\fP from twangboy/fix_win_service
  181234. .INDENT 2.0
  181235. .IP \(bu 2
  181236. 74e944b Mark test_service_status_running as flaky
  181237. .IP \(bu 2
  181238. c69560c Merge branch \(aq2017.7\(aq into fix_win_service
  181239. .IP \(bu 2
  181240. 53e2e05 Merge branch \(aq2017.7\(aq into fix_win_service
  181241. .IP \(bu 2
  181242. cf3d287 Merge branch \(aq2017.7\(aq into fix_win_service
  181243. .IP \(bu 2
  181244. 1641851 Fix the name of the _cmd_quote test
  181245. .IP \(bu 2
  181246. 97567af Skip tests on Linux systems
  181247. .IP \(bu 2
  181248. 0ca9cd1 Fix some lint
  181249. .IP \(bu 2
  181250. 3800966 Add tests
  181251. .IP \(bu 2
  181252. b0d646d Add more details to the functioning of _cmd_quote
  181253. .IP \(bu 2
  181254. a9856e2 Fix issues with win_service
  181255. .UNINDENT
  181256. .UNINDENT
  181257. .UNINDENT
  181258. .IP \(bu 2
  181259. \fBISSUE\fP \fI\%#49452\fP: (\fI\%gtmanfred\fP) [python3.7] remove usage of collections.abc stuff from the collections shim (refs: \fI\%#49487\fP)
  181260. .IP \(bu 2
  181261. \fBPR\fP \fI\%#49487\fP: (\fI\%garethgreenaway\fP) [2018.3] Swapping out collections imports
  181262. @ \fI2018\-09\-07 15:36:04 UTC\fP
  181263. .INDENT 2.0
  181264. .IP \(bu 2
  181265. baafd6e Merge pull request \fI\%#49487\fP from garethgreenaway/49452_collections_abc
  181266. .IP \(bu 2
  181267. 2fb3ef7 Merge branch \(aq2018.3\(aq into 49452_collections_abc
  181268. .IP \(bu 2
  181269. ebfd7f9 Merge branch \(aq2018.3\(aq into 49452_collections_abc
  181270. .IP \(bu 2
  181271. b27e86b Swapping out the version check for a try...except on the import from collections.abc with a fallback to importing from collections.
  181272. .IP \(bu 2
  181273. d118a9f Updating various imports that have been moved from collections to collections.abc, and will be deprecated in collections beginning in 3.8.
  181274. .INDENT 2.0
  181275. .INDENT 3.5
  181276. .INDENT 0.0
  181277. .IP \(bu 2
  181278. abc9c1a Fix linter issues
  181279. .IP \(bu 2
  181280. 8e42384 Fix multiple issues in x509 module and state
  181281. .IP \(bu 2
  181282. 2a52158 Fix encoding issues in file and x509 states
  181283. .IP \(bu 2
  181284. 49a6da7 Fix map file loading on windows
  181285. .UNINDENT
  181286. .UNINDENT
  181287. .UNINDENT
  181288. .UNINDENT
  181289. .IP \(bu 2
  181290. \fBPR\fP \fI\%#49528\fP: (\fI\%dwoz\fP) Fix merge wart
  181291. @ \fI2018\-09\-06 23:12:39 UTC\fP
  181292. .INDENT 2.0
  181293. .IP \(bu 2
  181294. 06935e9 Merge pull request \fI\%#49528\fP from dwoz/mergetests
  181295. .IP \(bu 2
  181296. 6a4f823 Fix merge wart
  181297. .UNINDENT
  181298. .IP \(bu 2
  181299. \fBPR\fP \fI\%#49548\fP: (\fI\%garethgreenaway\fP) [2018.3] Disabling State boto tests for Python 3.7+
  181300. @ \fI2018\-09\-06 21:50:10 UTC\fP
  181301. .INDENT 2.0
  181302. .IP \(bu 2
  181303. 3298e70 Merge pull request \fI\%#49548\fP from garethgreenaway/1075_disable_boto_tests_part_deux
  181304. .IP \(bu 2
  181305. 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.
  181306. .UNINDENT
  181307. .IP \(bu 2
  181308. \fBPR\fP \fI\%#49521\fP: (\fI\%terminalmage\fP) Fix _get_hash in splay executor
  181309. @ \fI2018\-09\-06 14:06:54 UTC\fP
  181310. .INDENT 2.0
  181311. .IP \(bu 2
  181312. c346825 Merge pull request \fI\%#49521\fP from terminalmage/fix\-splay\-executor
  181313. .IP \(bu 2
  181314. bbb8fe8 Fix _get_hash in splay executor
  181315. .UNINDENT
  181316. .IP \(bu 2
  181317. \fBPR\fP \fI\%#49526\fP: (\fI\%terminalmage\fP) Prevent lookup error when trying to lookup fileserver function from LazyDict
  181318. @ \fI2018\-09\-06 14:01:30 UTC\fP
  181319. .INDENT 2.0
  181320. .IP \(bu 2
  181321. 3f7c89c Merge pull request \fI\%#49526\fP from terminalmage/fix\-backends\-error\-logging
  181322. .IP \(bu 2
  181323. 1f0288e Prevent lookup error when trying to lookup fileserver function from LazyDict
  181324. .UNINDENT
  181325. .IP \(bu 2
  181326. \fBPR\fP \fI\%#49524\fP: (\fI\%garethgreenaway\fP) [2018.3] Disable boto tests under 3.7
  181327. @ \fI2018\-09\-06 13:35:18 UTC\fP
  181328. .INDENT 2.0
  181329. .IP \(bu 2
  181330. bf939f9 Merge pull request \fI\%#49524\fP from garethgreenaway/1075_disable_boto_tests
  181331. .IP \(bu 2
  181332. 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.
  181333. .UNINDENT
  181334. .IP \(bu 2
  181335. \fBPR\fP \fI\%#49511\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  181336. @ \fI2018\-09\-05 19:52:25 UTC\fP
  181337. .INDENT 2.0
  181338. .IP \(bu 2
  181339. f73f2e5 Merge pull request \fI\%#49511\fP from rallytime/merge\-2018.3
  181340. .IP \(bu 2
  181341. 3ffc6c2 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  181342. .UNINDENT
  181343. .IP \(bu 2
  181344. \fBPR\fP \fI\%#49500\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181345. @ \fI2018\-09\-04 19:02:31 UTC\fP
  181346. .INDENT 2.0
  181347. .IP \(bu 2
  181348. 81a49a8 Merge pull request \fI\%#49500\fP from rallytime/merge\-2018.3
  181349. .IP \(bu 2
  181350. 2317b5e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181351. .INDENT 2.0
  181352. .IP \(bu 2
  181353. 1cdaea2 Merge pull request \fI\%#49475\fP from dwoz/flaky_tests
  181354. .INDENT 2.0
  181355. .IP \(bu 2
  181356. f214929 Fix a flaky test and mark another as flaky
  181357. .UNINDENT
  181358. .IP \(bu 2
  181359. 4ac4305 Merge pull request \fI\%#49457\fP from rallytime/labels\-docs
  181360. .INDENT 2.0
  181361. .IP \(bu 2
  181362. d1e51db Remove references to unused milestones in docs
  181363. .UNINDENT
  181364. .IP \(bu 2
  181365. 41dcc3f Merge pull request \fI\%#49461\fP from saltstack/revert\-47100\-ssh
  181366. .INDENT 2.0
  181367. .IP \(bu 2
  181368. 0d7180a Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  181369. .UNINDENT
  181370. .UNINDENT
  181371. .UNINDENT
  181372. .IP \(bu 2
  181373. \fBPR\fP \fI\%#49497\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49473\fP to 2018.3
  181374. @ \fI2018\-09\-04 18:44:25 UTC\fP
  181375. .INDENT 2.0
  181376. .IP \(bu 2
  181377. \fBPR\fP \fI\%#49473\fP: (\fI\%rallytime\fP) Use correct and explicit paths for salt utils libs (refs: \fI\%#49497\fP)
  181378. .IP \(bu 2
  181379. 16ca360 Merge pull request \fI\%#49497\fP from rallytime/bp\-49473
  181380. .IP \(bu 2
  181381. 1aa3935 Lint: Add range import from six
  181382. .IP \(bu 2
  181383. d06f6a5 Use correct and explicit paths for salt utils libs
  181384. .UNINDENT
  181385. .IP \(bu 2
  181386. \fBPR\fP \fI\%#49474\fP: (\fI\%dwoz\fP) Work around git\-python resource leaks
  181387. @ \fI2018\-09\-02 19:42:32 UTC\fP
  181388. .INDENT 2.0
  181389. .IP \(bu 2
  181390. 93df5c4 Merge pull request \fI\%#49474\fP from dwoz/gitfs_unit
  181391. .IP \(bu 2
  181392. 56068e9 Merge branch \(aq2018.3\(aq into gitfs_unit
  181393. .IP \(bu 2
  181394. e697ddc Work around git\-python resource leaks
  181395. .UNINDENT
  181396. .IP \(bu 2
  181397. \fBPR\fP \fI\%#49471\fP: (\fI\%Ch3LL\fP) Remove string conversion on frame object in sigusr1 handler
  181398. @ \fI2018\-09\-02 18:05:13 UTC\fP
  181399. .INDENT 2.0
  181400. .IP \(bu 2
  181401. 43ead5d Merge pull request \fI\%#49471\fP from Ch3LL/debug_sigusr1
  181402. .IP \(bu 2
  181403. 1631b2f Remove string conversion on frame object in sigusr1 handler
  181404. .UNINDENT
  181405. .IP \(bu 2
  181406. \fBPR\fP \fI\%#49454\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181407. @ \fI2018\-08\-31 21:36:34 UTC\fP
  181408. .INDENT 2.0
  181409. .IP \(bu 2
  181410. 764b816 Merge pull request \fI\%#49454\fP from rallytime/merge\-2018.3
  181411. .IP \(bu 2
  181412. a97a7b0 Fix lint and test failures caused by bad merge
  181413. .IP \(bu 2
  181414. f7226f4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181415. .INDENT 2.0
  181416. .IP \(bu 2
  181417. 7a166bc Merge pull request \fI\%#49376\fP from twangboy/fix_48608
  181418. .INDENT 2.0
  181419. .IP \(bu 2
  181420. bf32e0c Merge branch \(aqfix_48608\(aq of \fI\%https://github.com/twangboy/salt\fP into fix_48608
  181421. .INDENT 2.0
  181422. .IP \(bu 2
  181423. 9766f0d Merge branch \(aq2017.7\(aq into fix_48608
  181424. .UNINDENT
  181425. .IP \(bu 2
  181426. fb97b00 Fix broken path to libsodium tarball
  181427. .IP \(bu 2
  181428. 535d83e Fix test for list_users
  181429. .IP \(bu 2
  181430. 40d3f2e Use dscl to get list of users
  181431. .IP \(bu 2
  181432. e426459 Use a set to avoid duplicates
  181433. .UNINDENT
  181434. .IP \(bu 2
  181435. 03d9750 Merge pull request \fI\%#49434\fP from dwoz/cleanup_exception_handling
  181436. .INDENT 2.0
  181437. .IP \(bu 2
  181438. 9daa992 Fix group remove test logic
  181439. .IP \(bu 2
  181440. d74fab7 Clean up exception handling on py3
  181441. .UNINDENT
  181442. .IP \(bu 2
  181443. 7099164 Merge pull request \fI\%#49389\fP from gtmanfred/2017.7
  181444. .INDENT 2.0
  181445. .IP \(bu 2
  181446. 6c01662 remove cmd key from load
  181447. .IP \(bu 2
  181448. bdf3df3 add cli example
  181449. .IP \(bu 2
  181450. 251f321 pass load on
  181451. .IP \(bu 2
  181452. be7c041 add test
  181453. .IP \(bu 2
  181454. 0ace5c1 make file envs compatible with transport format
  181455. .UNINDENT
  181456. .IP \(bu 2
  181457. 24faa5e Merge pull request \fI\%#49408\fP from terminalmage/issue49269
  181458. .INDENT 2.0
  181459. .IP \(bu 2
  181460. d02ec34 Allow our custom yaml dumper to NamespacedDictWrapper objects
  181461. .UNINDENT
  181462. .IP \(bu 2
  181463. 5746fc8 Merge pull request \fI\%#49402\fP from rallytime/bp\-49321
  181464. .INDENT 2.0
  181465. .IP \(bu 2
  181466. 7dec9fc Add flaky decorator to serializer test
  181467. .UNINDENT
  181468. .IP \(bu 2
  181469. 5c723b0 Merge pull request \fI\%#49375\fP from terminalmage/revert\-49185
  181470. .INDENT 2.0
  181471. .IP \(bu 2
  181472. aaea274 Merge branch \(aq2017.7\(aq into revert\-49185
  181473. .IP \(bu 2
  181474. 7372e9d Add minion documentation for enable_gpu_grains
  181475. .IP \(bu 2
  181476. ea1b53c Fix incorrect master docs for enable_gpu_grains
  181477. .IP \(bu 2
  181478. 638210a Add validation type and default minion value for enable_gpu_grains
  181479. .IP \(bu 2
  181480. 49ed156 Add enable_gpu_grains to the minion config stub
  181481. .IP \(bu 2
  181482. d1b7fb4 Revert "Update documentation to correctly state enable_gpu_grains default"
  181483. .UNINDENT
  181484. .IP \(bu 2
  181485. 11d87e4 Merge pull request \fI\%#49387\fP from twangboy/fix_win_repo
  181486. .INDENT 2.0
  181487. .IP \(bu 2
  181488. 2bf7eda Import GLOBAL_ONLY
  181489. .UNINDENT
  181490. .IP \(bu 2
  181491. 651631d Merge pull request \fI\%#49390\fP from dwoz/archive_module
  181492. .INDENT 2.0
  181493. .IP \(bu 2
  181494. b332beb Fix archive tests for py3
  181495. .UNINDENT
  181496. .IP \(bu 2
  181497. c591d2b Merge pull request \fI\%#49385\fP from dwoz/sonofa
  181498. .INDENT 2.0
  181499. .IP \(bu 2
  181500. f9d7dbd The autoruns module has not been renamed
  181501. .UNINDENT
  181502. .IP \(bu 2
  181503. 5d2c9b6 Merge pull request \fI\%#49371\fP from rallytime/bp\-49064
  181504. .INDENT 2.0
  181505. .IP \(bu 2
  181506. bc52f7c Stop running lint on all files when no changes
  181507. .UNINDENT
  181508. .IP \(bu 2
  181509. f1c904e Merge pull request \fI\%#49380\fP from twangboy/doc_48758
  181510. .INDENT 2.0
  181511. .IP \(bu 2
  181512. 6cefbdf Add docs from a comment on issue 48758
  181513. .UNINDENT
  181514. .IP \(bu 2
  181515. b22a43d Merge pull request \fI\%#49324\fP from dwoz/windows_pr_builds
  181516. .INDENT 2.0
  181517. .IP \(bu 2
  181518. 7abd9cd Merge branch \(aq2017.7\(aq into windows_pr_builds
  181519. .UNINDENT
  181520. .IP \(bu 2
  181521. b2e4121 Merge pull request \fI\%#49379\fP from dwoz/whitelistagain
  181522. .INDENT 2.0
  181523. .IP \(bu 2
  181524. 56ea4ee Account for more tests that are not in 2017.7
  181525. .UNINDENT
  181526. .IP \(bu 2
  181527. 7fa9120 Merge pull request \fI\%#49366\fP from rallytime/bp\-49232
  181528. .INDENT 2.0
  181529. .IP \(bu 2
  181530. 74b05ef fix HTTP method for acl_info
  181531. .IP \(bu 2
  181532. b9fa7db Merge branch \(aq2017.7\(aq into windows_pr_builds
  181533. .IP \(bu 2
  181534. 77f5fd3 Merge branch \(aq2017.7\(aq into windows_pr_builds
  181535. .IP \(bu 2
  181536. 7cdba27 Add ci scripts for windows PR builds
  181537. .UNINDENT
  181538. .UNINDENT
  181539. .UNINDENT
  181540. .IP \(bu 2
  181541. \fBPR\fP \fI\%#49025\fP: (\fI\%twangboy\fP) Fix several issues with LGPO
  181542. @ \fI2018\-08\-31 18:25:34 UTC\fP
  181543. .INDENT 2.0
  181544. .IP \(bu 2
  181545. 4ea22e5 Merge pull request \fI\%#49025\fP from twangboy/fix_48661
  181546. .IP \(bu 2
  181547. c27fd18 Merge branch \(aq2018.3\(aq into fix_48661
  181548. .IP \(bu 2
  181549. 222c503 Fix several issues with LGPO
  181550. .UNINDENT
  181551. .IP \(bu 2
  181552. \fBISSUE\fP \fI\%#49281\fP: (\fI\%aarnaud\fP) etcd_cache : Not working for mine (refs: \fI\%#49283\fP)
  181553. .IP \(bu 2
  181554. \fBPR\fP \fI\%#49283\fP: (\fI\%aarnaud\fP) Fix \fI\%#49281\fP etcd_cache with mine cache
  181555. @ \fI2018\-08\-31 18:24:23 UTC\fP
  181556. .INDENT 2.0
  181557. .IP \(bu 2
  181558. dd9ec94 Merge pull request \fI\%#49283\fP from aarnaud/fix\-etcd\-cache
  181559. .IP \(bu 2
  181560. 13e1a17 Merge branch \(aq2018.3\(aq into fix\-etcd\-cache
  181561. .IP \(bu 2
  181562. 6c0fb9c Fix \fI\%#49281\fP etcd_cache with mine cache
  181563. .UNINDENT
  181564. .IP \(bu 2
  181565. \fBPR\fP \fI\%#49459\fP: (\fI\%dwoz\fP) Batch test fix cherry\-pick
  181566. @ \fI2018\-08\-30 23:02:12 UTC\fP
  181567. .INDENT 2.0
  181568. .IP \(bu 2
  181569. 64227f9 Merge pull request \fI\%#49459\fP from dwoz/batch_fix
  181570. .IP \(bu 2
  181571. fc39dcf Simplify cli test fixes
  181572. .UNINDENT
  181573. .IP \(bu 2
  181574. \fBPR\fP \fI\%#49453\fP: (\fI\%dwoz\fP) Fix up py3 git config tests
  181575. @ \fI2018\-08\-30 22:00:19 UTC\fP
  181576. .INDENT 2.0
  181577. .IP \(bu 2
  181578. 75285a3 Merge pull request \fI\%#49453\fP from dwoz/conffix
  181579. .IP \(bu 2
  181580. ac3c379 Fix up py3 git config tests
  181581. .UNINDENT
  181582. .IP \(bu 2
  181583. \fBPR\fP \fI\%#49411\fP: (\fI\%terminalmage\fP) Allow our custom yaml dumper to NamespacedDictWrapper objects (2018.3 branch)
  181584. @ \fI2018\-08\-30 13:05:37 UTC\fP
  181585. .INDENT 2.0
  181586. .IP \(bu 2
  181587. a962efc Merge pull request \fI\%#49411\fP from terminalmage/issue49269\-2018.3
  181588. .IP \(bu 2
  181589. a4cb35b Remove support for overriding the class name
  181590. .IP \(bu 2
  181591. 82a8b73 Allow our custom yaml dumper to NamespacedDictWrapper objects
  181592. .UNINDENT
  181593. .IP \(bu 2
  181594. \fBPR\fP \fI\%#49407\fP: (\fI\%rallytime\fP) Mark pkg module tests and flaky
  181595. @ \fI2018\-08\-30 13:01:31 UTC\fP
  181596. .INDENT 2.0
  181597. .IP \(bu 2
  181598. 8022a3b Merge pull request \fI\%#49407\fP from rallytime/pkg\-flaky
  181599. .IP \(bu 2
  181600. 1609e11 Mark pkg module tests and flaky
  181601. .UNINDENT
  181602. .IP \(bu 2
  181603. \fBPR\fP \fI\%#49406\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  181604. @ \fI2018\-08\-30 13:00:34 UTC\fP
  181605. .INDENT 2.0
  181606. .IP \(bu 2
  181607. 7f8c38a Merge pull request \fI\%#49406\fP from rallytime/merge\-2018.3
  181608. .IP \(bu 2
  181609. 4939ee3 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  181610. .UNINDENT
  181611. .IP \(bu 2
  181612. \fBPR\fP \fI\%#49401\fP: (\fI\%rallytime\fP) Mark output file permissions test as flaky
  181613. @ \fI2018\-08\-29 18:13:12 UTC\fP
  181614. .INDENT 2.0
  181615. .IP \(bu 2
  181616. 68d630f Merge pull request \fI\%#49401\fP from rallytime/flaky\-output\-test
  181617. .IP \(bu 2
  181618. e13216b Mark output file permissions test as flaky
  181619. .UNINDENT
  181620. .IP \(bu 2
  181621. \fBPR\fP \fI\%#49400\fP: (\fI\%rallytime\fP) Mark pillar refresh test as flaky
  181622. @ \fI2018\-08\-29 18:12:51 UTC\fP
  181623. .INDENT 2.0
  181624. .IP \(bu 2
  181625. 23610ed Merge pull request \fI\%#49400\fP from rallytime/flaky\-pillar\-test
  181626. .IP \(bu 2
  181627. fb62af6 Mark pillar refresh test as flaky
  181628. .UNINDENT
  181629. .IP \(bu 2
  181630. \fBISSUE\fP \fI\%#49150\fP: (\fI\%sunyq\fP) hosts.rm_host changes /etc/hosts file with odd characters (refs: \fI\%#49394\fP)
  181631. .IP \(bu 2
  181632. \fBPR\fP \fI\%#49394\fP: (\fI\%sunyq\fP) fix issue\(ga#49150\(ga_ hosts.rm_host changes /etc/hosts with odd characters
  181633. @ \fI2018\-08\-29 13:33:49 UTC\fP
  181634. .INDENT 2.0
  181635. .IP \(bu 2
  181636. 502e91c Merge pull request \fI\%#49394\fP from sunyq/2018.3
  181637. .IP \(bu 2
  181638. 76ba5b6 fix issue\(ga#49150\(ga_ hosts.rm_host changes /etc/hosts with odd characters
  181639. .UNINDENT
  181640. .IP \(bu 2
  181641. \fBPR\fP \fI\%#49386\fP: (\fI\%dwoz\fP) Cherry\-pick whitelist fix.
  181642. @ \fI2018\-08\-29 01:11:05 UTC\fP
  181643. .INDENT 2.0
  181644. .IP \(bu 2
  181645. 2cf2e62 Merge pull request \fI\%#49386\fP from dwoz/whitelistfix
  181646. .IP \(bu 2
  181647. 2b08cf1 Account for more tests that are not in 2017.7
  181648. .UNINDENT
  181649. .IP \(bu 2
  181650. \fBPR\fP \fI\%#49372\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181651. @ \fI2018\-08\-28 19:03:53 UTC\fP
  181652. .INDENT 2.0
  181653. .IP \(bu 2
  181654. ec04282 Merge pull request \fI\%#49372\fP from rallytime/merge\-2018.3
  181655. .IP \(bu 2
  181656. ab6cc1c Update old utils paths to use new paths
  181657. .IP \(bu 2
  181658. ac406c4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181659. .IP \(bu 2
  181660. dfa3861 Merge pull request \fI\%#49354\fP from dwoz/fix_whitelist
  181661. .INDENT 2.0
  181662. .IP \(bu 2
  181663. aeb0fa3 custom_grains tests do not exist
  181664. .UNINDENT
  181665. .IP \(bu 2
  181666. 14b8094 Merge pull request \fI\%#49346\fP from Ch3LL/bp\-49345
  181667. .INDENT 2.0
  181668. .IP \(bu 2
  181669. ce2733e upgrade including linux kernels
  181670. .UNINDENT
  181671. .IP \(bu 2
  181672. d8f2945 Merge pull request \fI\%#49344\fP from cachedout/test_matcher_flaky
  181673. .INDENT 2.0
  181674. .IP \(bu 2
  181675. a34ef2e Matcher test marked flaky
  181676. .UNINDENT
  181677. .IP \(bu 2
  181678. f08e720 Merge pull request \fI\%#49353\fP from dwoz/boto_fix
  181679. .INDENT 2.0
  181680. .IP \(bu 2
  181681. 376019f Do not raise exception if passed bytes
  181682. .UNINDENT
  181683. .IP \(bu 2
  181684. 4690ad0 Merge pull request \fI\%#49339\fP from dwoz/more_tests
  181685. .INDENT 2.0
  181686. .IP \(bu 2
  181687. d50324b Merge branch \(aq2017.7\(aq into more_tests
  181688. .UNINDENT
  181689. .IP \(bu 2
  181690. e371ad9 Merge pull request \fI\%#49341\fP from terminalmage/issue48717
  181691. .INDENT 2.0
  181692. .IP \(bu 2
  181693. 1971d09 Update dynamic git_pillar docs to enclose env name in quotes
  181694. .UNINDENT
  181695. .IP \(bu 2
  181696. 00b58ee Merge pull request \fI\%#49337\fP from dwoz/win_service_test_fix
  181697. .INDENT 2.0
  181698. .IP \(bu 2
  181699. 1c1727e Fix broken service stop test
  181700. .UNINDENT
  181701. .IP \(bu 2
  181702. 81428ed Merge pull request \fI\%#49291\fP from dwoz/dedent
  181703. .INDENT 2.0
  181704. .IP \(bu 2
  181705. 1991198 Fix review nits
  181706. .IP \(bu 2
  181707. 6abc2da Re\-factor dedent to fix warts
  181708. .IP \(bu 2
  181709. 75b2e3d Use salt.utils.to_* functions
  181710. .IP \(bu 2
  181711. fa78a7b Add dedent that sets line endings
  181712. .INDENT 2.0
  181713. .IP \(bu 2
  181714. cd6706e Fix merge wart
  181715. .IP \(bu 2
  181716. b9c344b Fix module.archive tests for win py3
  181717. .IP \(bu 2
  181718. ac60fb8 Comment strange code
  181719. .IP \(bu 2
  181720. 5fefd6f Simplify cli test fixes
  181721. .IP \(bu 2
  181722. 1765d53 Fix archive tests on Windows platform
  181723. .IP \(bu 2
  181724. 06f271f Add archive module tests to whitelist.txt
  181725. .IP \(bu 2
  181726. 9cb8fe2 Add more tests to whitelist for windows
  181727. .IP \(bu 2
  181728. b8af238 Fix indent wart
  181729. .IP \(bu 2
  181730. bc971e4 add doc tests
  181731. .IP \(bu 2
  181732. 8899a5e Add more client tests to whitelist
  181733. .IP \(bu 2
  181734. 14cd7b48 Add cli tests to whitelist
  181735. .IP \(bu 2
  181736. 3e55d10 Platform module doesn\(aqt exist in 2017.7
  181737. .IP \(bu 2
  181738. 2733c02 Use double quotes on windows commands
  181739. .IP \(bu 2
  181740. 0394ece The set command does not work like inline env vars
  181741. .UNINDENT
  181742. .UNINDENT
  181743. .IP \(bu 2
  181744. 1fd5cf1 Merge pull request \fI\%#49320\fP from rallytime/fix\-48694
  181745. .INDENT 2.0
  181746. .IP \(bu 2
  181747. 0964b5e Update documentation for \fI\%#48694\fP and add deprecation warning
  181748. .UNINDENT
  181749. .IP \(bu 2
  181750. c323096 Merge pull request \fI\%#49314\fP from rallytime/bp\-49277
  181751. .INDENT 2.0
  181752. .IP \(bu 2
  181753. 6d691b2 Prepend current directory when path is just filename
  181754. .UNINDENT
  181755. .IP \(bu 2
  181756. c7bae5e Merge pull request \fI\%#49290\fP from rallytime/bp\-44504
  181757. .INDENT 2.0
  181758. .IP \(bu 2
  181759. 6224f7b calling range is going up to the upper limit but not including it
  181760. .UNINDENT
  181761. .IP \(bu 2
  181762. 7a44e59 Merge pull request \fI\%#49289\fP from rallytime/bp\-49170
  181763. .INDENT 2.0
  181764. .IP \(bu 2
  181765. 4c29c17 forcing mine update in the proxy minion as well
  181766. .IP \(bu 2
  181767. b1d581a force mine update on minion start
  181768. .UNINDENT
  181769. .IP \(bu 2
  181770. 221ea22 Merge pull request \fI\%#49278\fP from rallytime/bp\-49253
  181771. .INDENT 2.0
  181772. .IP \(bu 2
  181773. b331b5c skip ID 7 for vmware hard drives
  181774. .UNINDENT
  181775. .UNINDENT
  181776. .IP \(bu 2
  181777. \fBPR\fP \fI\%#49356\fP: (\fI\%dwoz\fP) Fix tests that use timed_subprocess for py3
  181778. @ \fI2018\-08\-28 13:30:08 UTC\fP
  181779. .INDENT 2.0
  181780. .IP \(bu 2
  181781. 1faf6a7 Merge pull request \fI\%#49356\fP from dwoz/cmdmod
  181782. .IP \(bu 2
  181783. 6ffeaae Fix tests that use timed_subprocess for py3
  181784. .UNINDENT
  181785. .IP \(bu 2
  181786. \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)
  181787. .IP \(bu 2
  181788. \fBPR\fP \fI\%#49336\fP: (\fI\%terminalmage\fP) Fix half\-baked comment
  181789. @ \fI2018\-08\-27 00:07:55 UTC\fP
  181790. .INDENT 2.0
  181791. .IP \(bu 2
  181792. \fBPR\fP \fI\%#49305\fP: (\fI\%terminalmage\fP) Allow git.latest to remove local tags which have been removed remotely (refs: \fI\%#49336\fP)
  181793. .IP \(bu 2
  181794. 2d8055e Merge pull request \fI\%#49336\fP from terminalmage/issue48299
  181795. .IP \(bu 2
  181796. 175e161 Fix half\-baked comment
  181797. .UNINDENT
  181798. .IP \(bu 2
  181799. \fBPR\fP \fI\%#49331\fP: (\fI\%dwoz\fP) Use salt.utils to ensure string type
  181800. @ \fI2018\-08\-26 01:42:08 UTC\fP
  181801. .INDENT 2.0
  181802. .IP \(bu 2
  181803. a2e7033 Merge pull request \fI\%#49331\fP from dwoz/strfix
  181804. .IP \(bu 2
  181805. 7513474 Use salt.utils to ensure string type
  181806. .UNINDENT
  181807. .IP \(bu 2
  181808. \fBPR\fP \fI\%#49312\fP: (\fI\%Ch3LL\fP) Fix keyerror in manage.bootstrap
  181809. @ \fI2018\-08\-25 19:55:44 UTC\fP
  181810. .INDENT 2.0
  181811. .IP \(bu 2
  181812. d70eda8 Merge pull request \fI\%#49312\fP from Ch3LL/ssh_list_hosts
  181813. .IP \(bu 2
  181814. da71c97 Fix keyerror in manage.bootstrap
  181815. .UNINDENT
  181816. .IP \(bu 2
  181817. \fBPR\fP \fI\%#49316\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  181818. @ \fI2018\-08\-25 19:53:04 UTC\fP
  181819. .INDENT 2.0
  181820. .IP \(bu 2
  181821. 6b2eba7 Merge pull request \fI\%#49316\fP from rallytime/merge\-2018.3
  181822. .IP \(bu 2
  181823. 39c442c Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  181824. .UNINDENT
  181825. .IP \(bu 2
  181826. \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)
  181827. .IP \(bu 2
  181828. \fBPR\fP \fI\%#49322\fP: (\fI\%dwoz\fP) Encode shell commands explicitly.
  181829. @ \fI2018\-08\-25 04:43:26 UTC\fP
  181830. .INDENT 2.0
  181831. .IP \(bu 2
  181832. 5766e98 Merge pull request \fI\%#49322\fP from dwoz/state_module_test_fix
  181833. .IP \(bu 2
  181834. 1f7d50d Encode shell commands explicitly.
  181835. .UNINDENT
  181836. .IP \(bu 2
  181837. \fBPR\fP \fI\%#49299\fP: (\fI\%dwoz\fP) Work around cmd.run unicode issues in test for now
  181838. @ \fI2018\-08\-25 04:43:03 UTC\fP
  181839. .INDENT 2.0
  181840. .IP \(bu 2
  181841. b47da0a Merge pull request \fI\%#49299\fP from dwoz/test_fix
  181842. .IP \(bu 2
  181843. f4bd644 Fix string formatting wart in file state tests
  181844. .IP \(bu 2
  181845. e84e608 Fix wart in file state test
  181846. .IP \(bu 2
  181847. 71d4465 Work around cmd.run unicode issues in test for now
  181848. .UNINDENT
  181849. .IP \(bu 2
  181850. \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)
  181851. .IP \(bu 2
  181852. \fBPR\fP \fI\%#49305\fP: (\fI\%terminalmage\fP) Allow git.latest to remove local tags which have been removed remotely (refs: \fI\%#49336\fP)
  181853. @ \fI2018\-08\-24 17:29:03 UTC\fP
  181854. .INDENT 2.0
  181855. .IP \(bu 2
  181856. b65890c Merge pull request \fI\%#49305\fP from terminalmage/issue48299
  181857. .IP \(bu 2
  181858. 4a093d9 lint
  181859. .IP \(bu 2
  181860. ed7b994 Gate tag manipulation behind a sync_tags argument
  181861. .IP \(bu 2
  181862. 29de855 Add test for a removed tag
  181863. .IP \(bu 2
  181864. eb9a459 Properly handle tags deleted from remote repository
  181865. .IP \(bu 2
  181866. 916c15a Add git.tag function
  181867. .UNINDENT
  181868. .IP \(bu 2
  181869. \fBISSUE\fP \fI\%#49009\fP: (\fI\%msciciel\fP) file_ignore_regex / file_ignore_glob not working properly (refs: \fI\%#49308\fP)
  181870. .IP \(bu 2
  181871. \fBPR\fP \fI\%#49308\fP: (\fI\%terminalmage\fP) Don\(aqt include ignored paths in mtime map
  181872. @ \fI2018\-08\-24 17:28:41 UTC\fP
  181873. .INDENT 2.0
  181874. .IP \(bu 2
  181875. 459354a Merge pull request \fI\%#49308\fP from terminalmage/issue49009
  181876. .IP \(bu 2
  181877. 2badd7f Don\(aqt include ignored paths in mtime map
  181878. .UNINDENT
  181879. .IP \(bu 2
  181880. \fBPR\fP \fI\%#49282\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181881. @ \fI2018\-08\-24 16:45:50 UTC\fP
  181882. .INDENT 2.0
  181883. .IP \(bu 2
  181884. 914bb09 Merge pull request \fI\%#49282\fP from rallytime/merge\-2018.3
  181885. .IP \(bu 2
  181886. 21a51c9 Add \(aqminion_data_cache: True\(aq to mocked opts for minions unit tests
  181887. .IP \(bu 2
  181888. 196ce3f Call the \fIwith_tempfile\fP decorator correctly for 2018.3
  181889. .IP \(bu 2
  181890. 37f24fd Fix unit test for file state
  181891. .IP \(bu 2
  181892. 6f9a158 Update old utils paths with new paths
  181893. .IP \(bu 2
  181894. c3ecefc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181895. .INDENT 2.0
  181896. .IP \(bu 2
  181897. 879c3ad Merge pull request \fI\%#49262\fP from bloomberg/short\-circuit
  181898. .INDENT 2.0
  181899. .IP \(bu 2
  181900. a3594db extend #488588 to cover SyncAuth class
  181901. .UNINDENT
  181902. .IP \(bu 2
  181903. 1900aff Merge pull request \fI\%#49144\fP from twangboy/fix_48163
  181904. .INDENT 2.0
  181905. .IP \(bu 2
  181906. ff5ec86 Work with seconds
  181907. .IP \(bu 2
  181908. 7264008 Fix some lint (remove whitespace)\(ga
  181909. .IP \(bu 2
  181910. 4f9973d Improve timeout in delete
  181911. .IP \(bu 2
  181912. a6ecb75 Remove testing debug stuff
  181913. .IP \(bu 2
  181914. 7dd7953 Fix start/stop functions
  181915. .IP \(bu 2
  181916. fade0a6 Merge pull request \fI\%#10\fP from damon\-atkins/patch\-1
  181917. .INDENT 2.0
  181918. .IP \(bu 2
  181919. 57c4b9f 2017_win_service_damon
  181920. .UNINDENT
  181921. .IP \(bu 2
  181922. d44eaee Add timeout support to the state
  181923. .IP \(bu 2
  181924. d579b3e Add timeout parameter
  181925. .UNINDENT
  181926. .IP \(bu 2
  181927. 395bae6 Merge pull request \fI\%#49259\fP from gtmanfred/flaky\-2017.7
  181928. .INDENT 2.0
  181929. .IP \(bu 2
  181930. 93a576e flaky tests are flaky yo
  181931. .IP \(bu 2
  181932. f518bd3 mark orchestration state tests as flaky
  181933. .UNINDENT
  181934. .IP \(bu 2
  181935. 62cc0df Merge pull request \fI\%#49231\fP from minusf/mount\-check\-name
  181936. .INDENT 2.0
  181937. .IP \(bu 2
  181938. eb5cab3 fix some underhanging indent while here...
  181939. .IP \(bu 2
  181940. ec2a091 check for mandatory parameters to avoid false positives
  181941. .UNINDENT
  181942. .IP \(bu 2
  181943. d55d484 Merge pull request \fI\%#49242\fP from dwoz/blockreplace_better_fix
  181944. .INDENT 2.0
  181945. .IP \(bu 2
  181946. 72c3727 Use six to make sure content is unicode
  181947. .IP \(bu 2
  181948. 1bf0b18 Better blockfix replace
  181949. .IP \(bu 2
  181950. dd4fcd3 Revert "Multiple block replace test fixes"
  181951. .IP \(bu 2
  181952. d335842 Use os.linesep.join instead of textwrap.dedent
  181953. .UNINDENT
  181954. .IP \(bu 2
  181955. 85f6d36 Merge pull request \fI\%#49236\fP from terminalmage/issue32737
  181956. .INDENT 2.0
  181957. .IP \(bu 2
  181958. 233bbae Allow compound matching in eauth config expressions
  181959. .UNINDENT
  181960. .IP \(bu 2
  181961. 5ba7f60 Merge pull request \fI\%#49187\fP from erwindon/py27fixnumberformat
  181962. .INDENT 2.0
  181963. .IP \(bu 2
  181964. 12261a5 trailing whitespace removal
  181965. .IP \(bu 2
  181966. 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)
  181967. .UNINDENT
  181968. .IP \(bu 2
  181969. f8c55b8 Merge pull request \fI\%#49184\fP from ralish/external_nodes_docs
  181970. .INDENT 2.0
  181971. .IP \(bu 2
  181972. 4fe38dc Merge branch \(aq2017.7\(aq into external_nodes_docs
  181973. .IP \(bu 2
  181974. 2e29b29 Remove obsolete documentation on external_nodes setting
  181975. .UNINDENT
  181976. .IP \(bu 2
  181977. 65205a4 Merge pull request \fI\%#49185\fP from ralish/enable_gpus_grains_doc
  181978. .INDENT 2.0
  181979. .IP \(bu 2
  181980. 2fe675c Update documentation to correctly state enable_gpu_grains default
  181981. .UNINDENT
  181982. .IP \(bu 2
  181983. 5aa282e Merge pull request \fI\%#48032\fP from zer0def/parted\-naming
  181984. .INDENT 2.0
  181985. .IP \(bu 2
  181986. 563ad25 Merge branch \(aq2017.7\(aq into parted\-naming
  181987. .IP \(bu 2
  181988. 07f8631 Fixed partition names with spaces effectively containing only the first word.
  181989. .UNINDENT
  181990. .IP \(bu 2
  181991. 0157eac Merge pull request \fI\%#49164\fP from terminalmage/issue49154
  181992. .INDENT 2.0
  181993. .IP \(bu 2
  181994. c2aba7a Merge branch \(aq2017.7\(aq into issue49154
  181995. .IP \(bu 2
  181996. b4544d7 Add keep_source integration tests
  181997. .IP \(bu 2
  181998. 82638c6 Fix bug in keep_source for non\-templated salt:// file sources
  181999. .UNINDENT
  182000. .IP \(bu 2
  182001. b510441 Merge pull request \fI\%#49179\fP from dwoz/test_unit_states_file
  182002. .INDENT 2.0
  182003. .IP \(bu 2
  182004. 913ea5e Fix directory unit test
  182005. .IP \(bu 2
  182006. 3363238 Account for normalized dirs in unit tests
  182007. .UNINDENT
  182008. .IP \(bu 2
  182009. 7486fd5 Merge pull request \fI\%#49162\fP from erwindon/wheel_error_error
  182010. .INDENT 2.0
  182011. .IP \(bu 2
  182012. ca5df04 Merge branch \(aq2017.7\(aq into wheel_error_error
  182013. .IP \(bu 2
  182014. 4335c5c Must have 2 lines between imports and code
  182015. .IP \(bu 2
  182016. ec1f013 Improved solution as per @dwoz\(aqs suggestion
  182017. .IP \(bu 2
  182018. 20f134e Fixed unknown \(aqexceptions\(aq under Python3 (\fI\%#49152\fP)
  182019. .UNINDENT
  182020. .IP \(bu 2
  182021. 7043286 Merge pull request \fI\%#49143\fP from Ch3LL/bp\-49142
  182022. .INDENT 2.0
  182023. .IP \(bu 2
  182024. d2e73cc Remove \-Z script_arg for cloud tests
  182025. .UNINDENT
  182026. .IP \(bu 2
  182027. 8ab55f5 Merge pull request \fI\%#49167\fP from dwoz/filefix
  182028. .INDENT 2.0
  182029. .IP \(bu 2
  182030. b5ba073 Simplify dict keys lookup
  182031. .IP \(bu 2
  182032. 6844251 Fix remaining file state integration tests (py3)
  182033. .UNINDENT
  182034. .IP \(bu 2
  182035. 90bd560 Merge pull request \fI\%#49163\fP from dwoz/tmp_dir
  182036. .INDENT 2.0
  182037. .IP \(bu 2
  182038. 3384864 add Exception type
  182039. .IP \(bu 2
  182040. 9da79dd0 Allow test suite to finish if tmp dir removal fails
  182041. .UNINDENT
  182042. .IP \(bu 2
  182043. aa01a67 Merge pull request \fI\%#49136\fP from Ch3LL/bootstrap_2017.7
  182044. .INDENT 2.0
  182045. .IP \(bu 2
  182046. de40dfb [2017.7] Update bootstrap script to latest release (2018.08.15)
  182047. .UNINDENT
  182048. .IP \(bu 2
  182049. 29fccbf Merge pull request \fI\%#49118\fP from dwoz/test_file_fixes
  182050. .INDENT 2.0
  182051. .IP \(bu 2
  182052. c6b781e Multiple fixes for integration.states.test_file
  182053. .UNINDENT
  182054. .IP \(bu 2
  182055. 133e400 Merge pull request \fI\%#49103\fP from dwoz/cmd_test_fix
  182056. .IP \(bu 2
  182057. 566a4ea Install the launcher so we can execute py files
  182058. .UNINDENT
  182059. .UNINDENT
  182060. .IP \(bu 2
  182061. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#1075\fP: (\fI\%Ch3LL\fP) [2018.3.3] arch python3 tests do not finish (refs: \fI\%#49303\fP)
  182062. .IP \(bu 2
  182063. \fBPR\fP \fI\%#49303\fP: (\fI\%gtmanfred\fP) use os._exit instead of sys.exit when daemonizing
  182064. @ \fI2018\-08\-24 14:15:54 UTC\fP
  182065. .INDENT 2.0
  182066. .IP \(bu 2
  182067. 4c81c2e Merge pull request \fI\%#49303\fP from gtmanfred/forking
  182068. .IP \(bu 2
  182069. e06ce49 use os._exit instead of sys.exit when daemonizing
  182070. .UNINDENT
  182071. .IP \(bu 2
  182072. \fBPR\fP \fI\%#49276\fP: (\fI\%terminalmage\fP) Fix paths to moved functions
  182073. @ \fI2018\-08\-23 16:38:55 UTC\fP
  182074. .INDENT 2.0
  182075. .IP \(bu 2
  182076. 158c1ca Merge pull request \fI\%#49276\fP from terminalmage/fix\-moved\-funcs
  182077. .IP \(bu 2
  182078. 322a988 Fix paths to moved functions
  182079. .UNINDENT
  182080. .IP \(bu 2
  182081. \fBPR\fP \fI\%#49270\fP: (\fI\%dwoz\fP) Add async helper to test_sock_path_len
  182082. @ \fI2018\-08\-23 16:17:54 UTC\fP
  182083. .INDENT 2.0
  182084. .IP \(bu 2
  182085. ef39f85 Merge pull request \fI\%#49270\fP from dwoz/test_event_fix
  182086. .IP \(bu 2
  182087. 51bf79a Add async helper to test_sock_path_len
  182088. .UNINDENT
  182089. .IP \(bu 2
  182090. \fBPR\fP \fI\%#49199\fP: (\fI\%jacobweinstock\fP) Fix typeerror unicode
  182091. @ \fI2018\-08\-23 14:38:17 UTC\fP
  182092. .INDENT 2.0
  182093. .IP \(bu 2
  182094. 5da743a Merge pull request \fI\%#49199\fP from jacobweinstock/fix\-typeerror\-unicode
  182095. .IP \(bu 2
  182096. 25608ef Merge branch \(aq2018.3\(aq into fix\-typeerror\-unicode
  182097. .IP \(bu 2
  182098. 11ad11c add unicode_literals back to handle logging and other things.
  182099. .IP \(bu 2
  182100. 6944baf add salt.utils.stringutils.to_bytes. add comment on unicode_literals.
  182101. .UNINDENT
  182102. .IP \(bu 2
  182103. \fBISSUE\fP \fI\%#49174\fP: (\fI\%rbthomp\fP) Beacon diskusage reporting incorrect diskusage value. (refs: \fI\%#49264\fP)
  182104. .IP \(bu 2
  182105. \fBPR\fP \fI\%#49264\fP: (\fI\%gtmanfred\fP) fix diskusage beacon
  182106. @ \fI2018\-08\-23 14:36:07 UTC\fP
  182107. .INDENT 2.0
  182108. .IP \(bu 2
  182109. e28f8f1 Merge pull request \fI\%#49264\fP from gtmanfred/diskusage
  182110. .IP \(bu 2
  182111. 15857c2c fix diskusage
  182112. .UNINDENT
  182113. .IP \(bu 2
  182114. \fBPR\fP \fI\%#49253\fP: (\fI\%gtmanfred\fP) skip ID 7 for vmware hard drives (refs: \fI\%#49278\fP)
  182115. @ \fI2018\-08\-23 14:35:31 UTC\fP
  182116. .INDENT 2.0
  182117. .IP \(bu 2
  182118. f6b2b93 Merge pull request \fI\%#49253\fP from gtmanfred/vmware
  182119. .IP \(bu 2
  182120. 6e776ca skip ID 7 for vmware hard drives
  182121. .UNINDENT
  182122. .IP \(bu 2
  182123. \fBISSUE\fP \fI\%#49159\fP: (\fI\%wenxin\-wang\fP) incorrect default value of minion\(aqs \(aqipv6\(aq option (refs: \fI\%#49263\fP)
  182124. .IP \(bu 2
  182125. \fBPR\fP \fI\%#49263\fP: (\fI\%terminalmage\fP) Revert default value for ipv6 to None
  182126. @ \fI2018\-08\-23 13:02:13 UTC\fP
  182127. .INDENT 2.0
  182128. .IP \(bu 2
  182129. 2a2bd48 Merge pull request \fI\%#49263\fP from terminalmage/issue49159
  182130. .IP \(bu 2
  182131. bf5d907 Revert default value for ipv6 to None
  182132. .UNINDENT
  182133. .IP \(bu 2
  182134. \fBPR\fP \fI\%#49244\fP: (\fI\%dwoz\fP) Test fixes: unit.fileserver.test_gitfs
  182135. @ \fI2018\-08\-22 20:19:42 UTC\fP
  182136. .INDENT 2.0
  182137. .IP \(bu 2
  182138. ec32428 Merge pull request \fI\%#49244\fP from dwoz/gitfs_fixes
  182139. .IP \(bu 2
  182140. b533fa1 Simplify by using to_unicode helper
  182141. .IP \(bu 2
  182142. 5a0cda5 Older GitPython version do not have a close method
  182143. .IP \(bu 2
  182144. 7452715 Fix up fileserver.test_gitfs tests on windows
  182145. .IP \(bu 2
  182146. 800aa25 Remove unicode filenames on windows python 2
  182147. .UNINDENT
  182148. .IP \(bu 2
  182149. \fBPR\fP \fI\%#49265\fP: (\fI\%terminalmage\fP) Fix failing unit file module unit tests
  182150. @ \fI2018\-08\-22 19:35:07 UTC\fP
  182151. .INDENT 2.0
  182152. .IP \(bu 2
  182153. 2d7f846 Merge pull request \fI\%#49265\fP from terminalmage/fix\-failing\-file\-tests
  182154. .IP \(bu 2
  182155. 6b51f71 Fix failing unit file module unit tests
  182156. .UNINDENT
  182157. .IP \(bu 2
  182158. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes
  182159. @ \fI2018\-08\-22 18:16:42 UTC\fP
  182160. .INDENT 2.0
  182161. .IP \(bu 2
  182162. 4634752 Merge pull request \fI\%#49240\fP from dwoz/state_tests
  182163. .IP \(bu 2
  182164. 1679a19 Work around listdir encoding issues on py2 windows
  182165. .IP \(bu 2
  182166. 07ed841 file state test fixes
  182167. .UNINDENT
  182168. .IP \(bu 2
  182169. \fBPR\fP \fI\%#49260\fP: (\fI\%gtmanfred\fP) [2018.3] flaky tests
  182170. @ \fI2018\-08\-22 16:40:39 UTC\fP
  182171. .INDENT 2.0
  182172. .IP \(bu 2
  182173. 55ded9f Merge pull request \fI\%#49260\fP from gtmanfred/flaky\-2018.3
  182174. .IP \(bu 2
  182175. 41973ff flaky tests are flaky yo
  182176. .IP \(bu 2
  182177. c927f1b mark orchestration state tests as flaky
  182178. .UNINDENT
  182179. .IP \(bu 2
  182180. \fBPR\fP \fI\%#49245\fP: (\fI\%dwoz\fP) Skip grep unit tests on windows
  182181. @ \fI2018\-08\-22 15:18:08 UTC\fP
  182182. .INDENT 2.0
  182183. .IP \(bu 2
  182184. 6d023ca Merge pull request \fI\%#49245\fP from dwoz/skip_grep_windows
  182185. .IP \(bu 2
  182186. e305891 Skip grep unit tests on windows
  182187. .UNINDENT
  182188. .IP \(bu 2
  182189. \fBPR\fP \fI\%#49243\fP: (\fI\%dwoz\fP) Revert newline translation change
  182190. @ \fI2018\-08\-22 15:12:26 UTC\fP
  182191. .INDENT 2.0
  182192. .IP \(bu 2
  182193. 75beede Merge pull request \fI\%#49243\fP from dwoz/fileserver_tests
  182194. .IP \(bu 2
  182195. 86e3c46 Revert newline translation change
  182196. .UNINDENT
  182197. .IP \(bu 2
  182198. \fBPR\fP \fI\%#48545\fP: (\fI\%bbinet\fP) Fix unreachable ssh\-id\-wrapper template when root_dir is relative
  182199. @ \fI2018\-08\-21 15:12:01 UTC\fP
  182200. .INDENT 2.0
  182201. .IP \(bu 2
  182202. 60605f0 Merge pull request \fI\%#48545\fP from bbinet/fix\-unreacheable\-ssh\-id\-wrapper
  182203. .IP \(bu 2
  182204. 284dcf7 Fix unreachable ssh\-id\-wrapper template when root_dir is relative
  182205. .UNINDENT
  182206. .IP \(bu 2
  182207. \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)
  182208. .IP \(bu 2
  182209. \fBPR\fP \fI\%#49209\fP: (\fI\%gtmanfred\fP) don\(aqt blow up check_perms if lsattr file doesn\(aqt exist
  182210. @ \fI2018\-08\-20 19:02:42 UTC\fP
  182211. .INDENT 2.0
  182212. .IP \(bu 2
  182213. a4c51a9 Merge pull request \fI\%#49209\fP from gtmanfred/lsattr
  182214. .IP \(bu 2
  182215. ab918ca don\(aqt blow up check_perms if lsattr file doesn\(aqt exist
  182216. .UNINDENT
  182217. .IP \(bu 2
  182218. \fBISSUE\fP \fI\%#49060\fP: (\fI\%The\-Loeki\fP) On Py3, redis job cache throws TypeError bytes / str (refs: \fI\%#49190\fP)
  182219. .IP \(bu 2
  182220. \fBPR\fP \fI\%#49190\fP: (\fI\%The\-Loeki\fP) decode_reponses=True on all Redis API interfaces
  182221. @ \fI2018\-08\-20 18:57:26 UTC\fP
  182222. .INDENT 2.0
  182223. .IP \(bu 2
  182224. d29af00 Merge pull request \fI\%#49190\fP from The\-Loeki/redis\-fix
  182225. .IP \(bu 2
  182226. d126318 Merge branch \(aq2018.3\(aq into redis\-fix
  182227. .IP \(bu 2
  182228. 7ff72eb redis cache no utf8 of course
  182229. .IP \(bu 2
  182230. bdaef39 decode_reponses=True on all Redis API interfaces
  182231. .UNINDENT
  182232. .IP \(bu 2
  182233. \fBPR\fP \fI\%#49197\fP: (\fI\%dwoz\fP) File state line ending fixes
  182234. @ \fI2018\-08\-20 18:45:04 UTC\fP
  182235. .INDENT 2.0
  182236. .IP \(bu 2
  182237. 644ba3d Merge pull request \fI\%#49197\fP from dwoz/test_fix
  182238. .IP \(bu 2
  182239. a7cfe35 File state line ending fixes
  182240. .UNINDENT
  182241. .IP \(bu 2
  182242. \fBPR\fP \fI\%#49192\fP: (\fI\%dwoz\fP) Test fixes flaky test and unicode environment key/value
  182243. @ \fI2018\-08\-19 10:48:03 UTC\fP
  182244. .INDENT 2.0
  182245. .IP \(bu 2
  182246. aaa9e37 Merge pull request \fI\%#49192\fP from dwoz/git_test_fix_ng
  182247. .IP \(bu 2
  182248. 8ea89e9 Test fixes
  182249. .UNINDENT
  182250. .IP \(bu 2
  182251. \fBPR\fP \fI\%#49191\fP: (\fI\%The\-Loeki\fP) Make salt.utils.vault._get_connection publicly available
  182252. @ \fI2018\-08\-19 10:39:35 UTC\fP
  182253. .INDENT 2.0
  182254. .IP \(bu 2
  182255. 63cc737 Merge pull request \fI\%#49191\fP from The\-Loeki/vault_publ_conn
  182256. .IP \(bu 2
  182257. cab4192 publicize salt.utils.get_vault_connection()
  182258. .UNINDENT
  182259. .IP \(bu 2
  182260. \fBPR\fP \fI\%#49189\fP: (\fI\%dwoz\fP) Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  182261. @ \fI2018\-08\-18 20:51:59 UTC\fP
  182262. .INDENT 2.0
  182263. .IP \(bu 2
  182264. \fBPR\fP \fI\%#49171\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49103\fP (refs: \fI\%#49189\fP)
  182265. .IP \(bu 2
  182266. \fBPR\fP \fI\%#49103\fP: (\fI\%dwoz\fP) Install the launcher so we can execute py files (refs: \fI\%#49189\fP, \fI\%#49171\fP)
  182267. .IP \(bu 2
  182268. 1d843d4 Merge pull request \fI\%#49189\fP from dwoz/cmd_test_fix
  182269. .IP \(bu 2
  182270. 8fd0c38 Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  182271. .UNINDENT
  182272. .IP \(bu 2
  182273. \fBPR\fP \fI\%#49188\fP: (\fI\%cachedout\fP) Fix bug in test_pkg
  182274. @ \fI2018\-08\-18 17:36:22 UTC\fP
  182275. .INDENT 2.0
  182276. .IP \(bu 2
  182277. 5f905d7 Merge pull request \fI\%#49188\fP from cachedout/fix_test_pkg
  182278. .IP \(bu 2
  182279. 2cd6519 Fix bug in test_pkg
  182280. .UNINDENT
  182281. .IP \(bu 2
  182282. \fBPR\fP \fI\%#49056\fP: (\fI\%Ch3LL\fP) Add orch runner with mine.get integration tests
  182283. @ \fI2018\-08\-18 12:54:48 UTC\fP
  182284. .INDENT 2.0
  182285. .IP \(bu 2
  182286. 6fb8d4a Merge pull request \fI\%#49056\fP from Ch3LL/test_mine
  182287. .IP \(bu 2
  182288. 3a8fed5 Handle race condition when running mine.update in orch mine test
  182289. .IP \(bu 2
  182290. b4e421c Add orch runner with mine.get integration tests
  182291. .UNINDENT
  182292. .IP \(bu 2
  182293. \fBPR\fP \fI\%#49126\fP: (\fI\%The\-Loeki\fP) TLS cert_info fixes
  182294. @ \fI2018\-08\-18 12:19:33 UTC\fP
  182295. .INDENT 2.0
  182296. .IP \(bu 2
  182297. \fBPR\fP \fI\%#49123\fP: (\fI\%The\-Loeki\fP) Fix return of tls.cert_info extensions (refs: \fI\%#49126\fP)
  182298. .IP \(bu 2
  182299. 0d0e11d Merge pull request \fI\%#49126\fP from The\-Loeki/tls\-impr
  182300. .IP \(bu 2
  182301. 22240c0 Merge branch \(aq2018.3\(aq into tls\-impr
  182302. .IP \(bu 2
  182303. 3ce2c3e tls.cert_info: strip newlines/spaces from extensions
  182304. .IP \(bu 2
  182305. d522d01 tls alt_names fix
  182306. .IP \(bu 2
  182307. d435dbc Fix bytes\-return of tls.cert_info extensions
  182308. .IP \(bu 2
  182309. 9c7d3ea TLS cert_info: Accept IP Addresses as valid alt_names
  182310. .IP \(bu 2
  182311. 7d6ecaf tls.check_info: Allow PEM as string input
  182312. .UNINDENT
  182313. .IP \(bu 2
  182314. \fBPR\fP \fI\%#49186\fP: (\fI\%dwoz\fP) Fix typo in \fI\%#49180\fP
  182315. @ \fI2018\-08\-18 12:07:00 UTC\fP
  182316. .INDENT 2.0
  182317. .IP \(bu 2
  182318. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49186\fP)
  182319. .IP \(bu 2
  182320. 7dd70eb Merge pull request \fI\%#49186\fP from dwoz/test_fixes
  182321. .IP \(bu 2
  182322. 95efc51 Fix typo
  182323. .UNINDENT
  182324. .IP \(bu 2
  182325. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49186\fP)
  182326. @ \fI2018\-08\-18 04:08:17 UTC\fP
  182327. .INDENT 2.0
  182328. .IP \(bu 2
  182329. 6d57ac1 Merge pull request \fI\%#49180\fP from dwoz/test_fixes
  182330. .IP \(bu 2
  182331. 3c49544 Account for file renames
  182332. .IP \(bu 2
  182333. acc144d Fix directory unit test
  182334. .IP \(bu 2
  182335. a7ee07a Fix is_windows checks
  182336. .IP \(bu 2
  182337. 74b197f Account for normalized dirs in unit tests
  182338. .IP \(bu 2
  182339. a18d937 Merge pull request \fI\%#49167\fP from dwoz/filefix
  182340. .UNINDENT
  182341. .IP \(bu 2
  182342. \fBPR\fP \fI\%#49091\fP: (\fI\%terminalmage\fP) Rename/re\-organize test files in 2018.3 branch
  182343. @ \fI2018\-08\-17 12:26:44 UTC\fP
  182344. .INDENT 2.0
  182345. .IP \(bu 2
  182346. \fBPR\fP \fI\%#47337\fP: (\fI\%terminalmage\fP) Modify runtests.py to run a subset of tests based on filenames (refs: \fI\%#49091\fP)
  182347. .IP \(bu 2
  182348. 8bda1e5 Merge pull request \fI\%#49091\fP from terminalmage/rename\-test\-files
  182349. .IP \(bu 2
  182350. 3d8523b Fix import for moved module
  182351. .IP \(bu 2
  182352. 613f061 Lint
  182353. .IP \(bu 2
  182354. 81f272f Rename outputter tests to match naming convention
  182355. .IP \(bu 2
  182356. fba0336 Rename venafi test module to bring it closer to the naming convention
  182357. .IP \(bu 2
  182358. 9c14500 Rename exec module integration test files to respect naming convention
  182359. .IP \(bu 2
  182360. 91fa09e Rename providers to clouds to respect naming convention
  182361. .IP \(bu 2
  182362. d56dcdd Rename "providers" dir to "clouds" to respect naming convention
  182363. .IP \(bu 2
  182364. f1b7d54 Rename virtualenv state test module to respect naming convention
  182365. .IP \(bu 2
  182366. c1f94db Split ssh state tests into separate modules to respect naming convention
  182367. .IP \(bu 2
  182368. 9c8ba4a Split mysql database tests into two modules to respect naming convention
  182369. .IP \(bu 2
  182370. d51748e Rename some files to avoid them being identified as test modules
  182371. .IP \(bu 2
  182372. 1fccbf7 Rename acl unit test module to confirm to naming convention
  182373. .IP \(bu 2
  182374. 160223d Consolidate/move fileclient/fileserver tests to conform to naming convention
  182375. .IP \(bu 2
  182376. 1aacf77 Rename/consolidate salt.utils unit tests to conform to naming convention
  182377. .IP \(bu 2
  182378. 5a0990b Rename pillar unit test modules to reflect naming convention
  182379. .IP \(bu 2
  182380. 516594b Consolidate netapi tests and move them to reflect naming convention
  182381. .IP \(bu 2
  182382. 8f5fef5 Consolitdate and move salt\-ssh unit tests to proper location
  182383. .IP \(bu 2
  182384. 9801ce3 Consolidate and move loader tests to test/unit/test_loader.py
  182385. .IP \(bu 2
  182386. f72bbc5 Rename beacon unit test modules to conform with naming convention
  182387. .IP \(bu 2
  182388. fa76cb6 Move inspectlib tests to conform with naming convention
  182389. .IP \(bu 2
  182390. 81e3823 Move shared kernelpkg test cases to tests/support/
  182391. .IP \(bu 2
  182392. e0d95b6 Consolidate misplaced tests into tests/unit/test_config.py
  182393. .IP \(bu 2
  182394. 3a1ec12 Rename slack engine test file to respect naming convention
  182395. .IP \(bu 2
  182396. c9c9d20 Rename test_map_conf test file to respect naming convention
  182397. .IP \(bu 2
  182398. 5c936c0 Rename the aptpkg state module to respect naming convention
  182399. .IP \(bu 2
  182400. ac50eb8 Remove redundant "test" from filename
  182401. .IP \(bu 2
  182402. b03a563 Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests
  182403. .IP \(bu 2
  182404. b49d8df Fix bad copypasta in docstring
  182405. .IP \(bu 2
  182406. 069102b Rename sentry returner test to match naming convention
  182407. .IP \(bu 2
  182408. 2398083 Use tests.support.paths instead of deprecated integration module
  182409. .IP \(bu 2
  182410. ffb842d Move salt.utils.context tests to their proper location
  182411. .IP \(bu 2
  182412. d69069b Move context cache tests to their proper location
  182413. .UNINDENT
  182414. .IP \(bu 2
  182415. \fBPR\fP \fI\%#49062\fP: (\fI\%weswhet\fP) fix memoize on available macOS services
  182416. @ \fI2018\-08\-15 15:34:25 UTC\fP
  182417. .INDENT 2.0
  182418. .IP \(bu 2
  182419. c8510a6 Merge pull request \fI\%#49062\fP from weswhet/fix\-mac\-available\-services
  182420. .IP \(bu 2
  182421. f1b40c4 decorator link fix, updating context names, as well as updating macutils tests for latest changes
  182422. .IP \(bu 2
  182423. 1e4497d fixing an issue with memoize on macOS services, switching to useing __context__ instead
  182424. .UNINDENT
  182425. .IP \(bu 2
  182426. \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)
  182427. .IP \(bu 2
  182428. \fBPR\fP \fI\%#49125\fP: (\fI\%terminalmage\fP) Ensure that we don\(aqt feed jinja2.Markup() a str type
  182429. @ \fI2018\-08\-15 04:02:30 UTC\fP
  182430. .INDENT 2.0
  182431. .IP \(bu 2
  182432. 21435be Merge pull request \fI\%#49125\fP from terminalmage/issue49100
  182433. .IP \(bu 2
  182434. ec258e2 Add integration tests for yaml and json filters
  182435. .IP \(bu 2
  182436. f5f16cf Ensure that we don\(aqt feed jinja2.Markup() a str type
  182437. .UNINDENT
  182438. .UNINDENT
  182439. .SS Salt 2018.3.5 Release Notes
  182440. .sp
  182441. Version 2018.3.5 is a CVE\-fix release for 2018.3.0\&.
  182442. .SS Security Fix
  182443. .sp
  182444. \fBCVE\-2019\-17361\fP
  182445. .sp
  182446. With the Salt NetAPI enabled in addition to having a SSH roster defined,
  182447. unauthenticated access is possible when specifying the client as SSH.
  182448. Additionally, when the raw_shell option is specified any arbitrary command
  182449. may be run on the Salt master when specifying SSH options.
  182450. .SS Salt 2017.7.0 Release Notes \- Codename Nitrogen
  182451. .SS Python 3
  182452. .sp
  182453. The 2017.7 Salt Release adds initial Python 3 support.
  182454. .sp
  182455. 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.
  182456. .SS Python 2.6 Deprecation
  182457. .sp
  182458. 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.
  182459. .sp
  182460. 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
  182461. .SS Known Issues
  182462. .sp
  182463. 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:
  182464. .INDENT 0.0
  182465. .IP \(bu 2
  182466. Joyent
  182467. .IP \(bu 2
  182468. When running under Python 3, users who require Unicode support should ensure that a locale is set on their machines.
  182469. Users using the \fIC\fP locale are advised to switch to a UTF\-aware locale to ensure proper functionality with Salt with Python 3.
  182470. .UNINDENT
  182471. .SS Remember to update the Salt Master first
  182472. .sp
  182473. Salt\(aqs policy has always been that when upgrading, the minion should never be
  182474. on a newer version than the master. Specifically with this update, because of
  182475. changes in the fileclient, the 2017.7 minion requires a 2017.7 master.
  182476. .sp
  182477. Backwards compatibility is still maintained, so older minions can still be used.
  182478. .sp
  182479. More information can be found in the Salt FAQ
  182480. .SS States Added for Management of systemd Unit Masking
  182481. .sp
  182482. The \fBservice.masked\fP and
  182483. \fBservice.umasked\fP states have been
  182484. added to allow Salt to manage masking of systemd units.
  182485. .sp
  182486. Additionally, the following functions in the \fBsystemd\fP execution module have changed to accommodate the fact
  182487. that indefinite and runtime masks can co\-exist for the same unit:
  182488. .INDENT 0.0
  182489. .IP \(bu 2
  182490. \fBservice.masked\fP \- The return from
  182491. this function has changed from previous releases. Before, \fBFalse\fP would be
  182492. returned if the unit was not masked, and the output of \fBsystemctl is\-enabled
  182493. <unit name>\fP would be returned if the unit was masked. However, since
  182494. indefinite and runtime masks can exist for the same unit at the same time,
  182495. this function has been altered to accept a \fBruntime\fP argument. If \fBTrue\fP,
  182496. the minion will be checked for a runtime mask assigned to the named unit. If
  182497. \fBFalse\fP, then the minion will be checked for an indefinite mask. If one is
  182498. found, \fBTrue\fP will be returned. If not, then \fBFalse\fP will be returned.
  182499. .IP \(bu 2
  182500. \fBservice.masked\fP \- This function used
  182501. to just run \fBsystemctl is\-enabled <unit name>\fP and based on the return
  182502. from this function the corresponding mask type would be removed. However, if
  182503. both runtime and indefinite masks are set for the same unit, then \fBsystemctl
  182504. is\-enabled <unit name>\fP would show just the indefinite mask. The indefinite
  182505. mask would be removed, but the runtime mask would remain. The function has
  182506. been modified to accept a \fBruntime\fP argument, and will attempt to remove a
  182507. runtime mask if that argument is set to \fBTrue\fP\&. If set to \fBFalse\fP, it
  182508. will attempt to remove an indefinite mask.
  182509. .UNINDENT
  182510. .sp
  182511. These new \fBruntime\fP arguments default to \fBFalse\fP\&.
  182512. .SS Pillar Encryption
  182513. .sp
  182514. Beginning in 2016.3.0 the CLI pillar data passed to several functions could
  182515. conditionally be passed through a renderer to be decrypted. This functionality
  182516. has now been extended to pillar SLS files as well. See here for detailed documentation on this feature.
  182517. .SS Grains Changes
  182518. .INDENT 0.0
  182519. .IP \(bu 2
  182520. The \fBosmajorrelease\fP grain has been changed from a string to an integer.
  182521. State files, especially those using a templating language like Jinja, may
  182522. need to be adjusted to account for this change.
  182523. .IP \(bu 2
  182524. Add ability to specify disk backing mode in the VMWare salt cloud profile.
  182525. .UNINDENT
  182526. .SS State Module Changes
  182527. .INDENT 0.0
  182528. .IP \(bu 2
  182529. The \fBservice.running\fP and
  182530. \fBservice.dead\fP states now support a
  182531. \fBno_block\fP argument which, when set to \fBTrue\fP on systemd minions, will
  182532. start/stop the service using the \fB\-\-no\-block\fP flag in the \fBsystemctl\fP
  182533. command. On non\-systemd minions, a warning will be issued.
  182534. .IP \(bu 2
  182535. The \fBmodule.run\fP state has dropped its
  182536. previous syntax with \fBm_\fP prefix for reserved keywords. Additionally, it
  182537. allows running several functions in a batch.
  182538. .sp
  182539. \fBNOTE:\fP
  182540. .INDENT 2.0
  182541. .INDENT 3.5
  182542. It is necessary to explicitly turn on the new behavior (see below)
  182543. .UNINDENT
  182544. .UNINDENT
  182545. .INDENT 2.0
  182546. .INDENT 3.5
  182547. .sp
  182548. .nf
  182549. .ft C
  182550. # Before
  182551. run_something:
  182552. module.run:
  182553. \- name: mymodule.something
  182554. \- m_name: \(aqsome name\(aq
  182555. \- kwargs: {
  182556. first_arg: \(aqone\(aq,
  182557. second_arg: \(aqtwo\(aq,
  182558. do_stuff: \(aqTrue\(aq
  182559. }
  182560. # After
  182561. run_something:
  182562. module.run:
  182563. \- mymodule.something:
  182564. \- name: some name
  182565. \- first_arg: one
  182566. \- second_arg: two
  182567. \- do_stuff: True
  182568. .ft P
  182569. .fi
  182570. .UNINDENT
  182571. .UNINDENT
  182572. .sp
  182573. Since a lot of users are already using \fBmodule.run\fP states, this new behavior must currently be
  182574. explicitly turned on, to allow users to take their time updating their SLS
  182575. files. However, please keep in mind that the new syntax will take effect in
  182576. the next feature release of Salt (Oxygen) and the old usage will no longer be
  182577. supported at that time.
  182578. .sp
  182579. Another feature of the new \fBmodule.run\fP is that
  182580. it allows calling many functions in a single batch, such as:
  182581. .INDENT 2.0
  182582. .INDENT 3.5
  182583. .sp
  182584. .nf
  182585. .ft C
  182586. run_something:
  182587. module.run:
  182588. \- mymodule.function_without_parameters:
  182589. \- mymodule.another_function:
  182590. \- myparam
  182591. \- my_other_param
  182592. .ft P
  182593. .fi
  182594. .UNINDENT
  182595. .UNINDENT
  182596. .sp
  182597. In a rare case that you have a function that needs to be called several times but
  182598. with the different parameters, an additional feature of "tagging" is to the
  182599. rescue. In order to tag a function, use a colon delimiter. For example:
  182600. .INDENT 2.0
  182601. .INDENT 3.5
  182602. .sp
  182603. .nf
  182604. .ft C
  182605. run_something:
  182606. module.run:
  182607. \- mymodule.same_function:1:
  182608. \- mymodule.same_function:2:
  182609. \- myparam
  182610. \- my_other_param
  182611. \- mymodule.same_function:3:
  182612. \- foo: bar
  182613. .ft P
  182614. .fi
  182615. .UNINDENT
  182616. .UNINDENT
  182617. .sp
  182618. The example above will run \fImymodule.same_function\fP three times with the
  182619. different parameters.
  182620. .sp
  182621. To enable the new behavior for \fBmodule.run\fP,
  182622. add the following to the minion config file:
  182623. .INDENT 2.0
  182624. .INDENT 3.5
  182625. .sp
  182626. .nf
  182627. .ft C
  182628. use_superseded:
  182629. \- module.run
  182630. .ft P
  182631. .fi
  182632. .UNINDENT
  182633. .UNINDENT
  182634. .IP \(bu 2
  182635. The default for the \fBfingerprint_hash_type\fP option used in the \fBpresent\fP
  182636. function in the \fBssh\fP state changed from
  182637. \fBmd5\fP to \fBsha256\fP\&.
  182638. .UNINDENT
  182639. .SS Execution Module Changes
  182640. .INDENT 0.0
  182641. .IP \(bu 2
  182642. Several functions in the \fBsystemd\fP execution
  182643. module have gained a \fBno_block\fP argument, which when set to \fBTrue\fP will
  182644. use \fB\-\-no\-block\fP in the \fBsystemctl\fP command.
  182645. .IP \(bu 2
  182646. In the \fBsolarisips\fP \fBpkg\fP module, the
  182647. default value for the \fBrefresh\fP argument to the \fBlist_upgrades\fP function
  182648. has been changed from \fBFalse\fP to \fBTrue\fP\&. This makes the function more
  182649. consistent with all of the other \fBpkg\fP modules (The other
  182650. \fBpkg.list_upgrades\fP functions all defaulted to \fBTrue\fP).
  182651. .IP \(bu 2
  182652. The functions which handle masking in the \fBsystemd\fP module have changed. These changes are described
  182653. above alongside the information on the new states which have been added to
  182654. manage masking of systemd units.
  182655. .IP \(bu 2
  182656. The \fBpkg.list_repo_pkgs\fP
  182657. function for yum/dnf\-based distros has had its default output format changed.
  182658. In prior releases, results would be organized by repository. Now, the default
  182659. for each package will be a simple list of versions. To get the old behavior,
  182660. pass \fBbyrepo=True\fP to the function.
  182661. .IP \(bu 2
  182662. A \fBpkg.list_repo_pkgs\fP function has been added for both
  182663. \fBDebian/Ubuntu\fP and
  182664. \fBArch Linux\fP\-based distros.
  182665. .IP \(bu 2
  182666. The \fBsystem\fP module changed its return format
  182667. from "HH:MM AM/PM" to "HH:MM:SS AM/PM" for \fIget_system_time\fP\&.
  182668. .IP \(bu 2
  182669. The default for the \fBfingerprint_hash_type\fP option used in the
  182670. \fBssh\fP execution module changed from \fBmd5\fP to
  182671. \fBsha256\fP\&.
  182672. .UNINDENT
  182673. .SS Proxy Module Changes
  182674. .sp
  182675. The \fBproxy_merge_grains_in_module\fP configuration variable
  182676. introduced in 2016.3, has been changed, defaulting to \fBTrue\fP\&.
  182677. .sp
  182678. The connection with the remote device is kept alive by default, when the
  182679. module implements the \fBalive\fP function and \fBproxy_keep_alive\fP
  182680. is set to \fBTrue\fP\&. The polling interval is set using the
  182681. \fBproxy_keep_alive_interval\fP option which defaults to 1 minute.
  182682. .sp
  182683. The developers are also able to use the \fBproxy_always_alive\fP,
  182684. when designing a proxy module flexible enough to open the
  182685. connection with the remote device only when required.
  182686. .SS Wildcard Versions in \fBpkg.installed\fP States
  182687. .INDENT 0.0
  182688. .IP \(bu 2
  182689. The \fBpkg.installed\fP state now supports
  182690. wildcards in package versions, for the following platforms:
  182691. .INDENT 2.0
  182692. .IP \(bu 2
  182693. SUSE/openSUSE Leap/Thumbleweed
  182694. .IP \(bu 2
  182695. Debian/Ubuntu
  182696. .IP \(bu 2
  182697. RHEL/CentOS
  182698. .IP \(bu 2
  182699. Arch Linux
  182700. .UNINDENT
  182701. .sp
  182702. This support also extends to any derivatives of these distros, which use the
  182703. \fBaptpkg\fP, \fByumpkg\fP, or
  182704. \fBpacman\fP providers for the \fBpkg\fP virtual module.
  182705. .sp
  182706. Using wildcards can be useful for packages where the release name is built into
  182707. the version in some way, such as for RHEL/CentOS which typically has version
  182708. numbers like \fB1.2.34\-5.el7\fP\&. An example of the usage for this would be:
  182709. .INDENT 2.0
  182710. .INDENT 3.5
  182711. .sp
  182712. .nf
  182713. .ft C
  182714. mypkg:
  182715. pkg.installed:
  182716. \- version: \(aq1.2.34*\(aq
  182717. .ft P
  182718. .fi
  182719. .UNINDENT
  182720. .UNINDENT
  182721. .UNINDENT
  182722. .SS Master Configuration Additions
  182723. .INDENT 0.0
  182724. .IP \(bu 2
  182725. \fBsyndic_forward_all_events\fP \- Option on multi\-syndic or single
  182726. when connected to multiple masters to be able to send events to all connected
  182727. masters.
  182728. .IP \(bu 2
  182729. \fBeauth_acl_module\fP \- In case external auth is enabled master can
  182730. get authenticate and get the authorization list from different auth modules.
  182731. .IP \(bu 2
  182732. \fBkeep_acl_in_token\fP \- Option that allows master to build ACL once
  182733. for each user being authenticated and keep it in the token.
  182734. .UNINDENT
  182735. .SS Minion Configuration Additions
  182736. .INDENT 0.0
  182737. .IP \(bu 2
  182738. \fBpillarenv_from_saltenv\fP \- When set to \fBTrue\fP (default is
  182739. \fBFalse\fP), the \fBpillarenv\fP option will take the same value as
  182740. the effective saltenv when running states. This would allow a user to run
  182741. \fBsalt \(aq*\(aq state.apply mysls saltenv=dev\fP, and the SLS for both the state
  182742. and pillar data would be sourced from the \fBdev\fP environment, essentially
  182743. the equivalent of running \fBsalt \(aq*\(aq state.apply mysls saltenv=dev
  182744. pillarenv=dev\fP\&. Note that if \fBpillarenv\fP is set in the minion
  182745. config file, or if \fBpillarenv\fP is provided on the CLI, it will override
  182746. this option.
  182747. .UNINDENT
  182748. .SS salt\-api Changes
  182749. .sp
  182750. The \fBrest_cherrypy\fP netapi module has received a few minor improvements:
  182751. .INDENT 0.0
  182752. .IP \(bu 2
  182753. A CORS bugfix.
  182754. .IP \(bu 2
  182755. A new \fB/token\fP convenience endpoint to generate Salt eauth tokens.
  182756. .IP \(bu 2
  182757. A proof\-of\-concept JavaScript single\-page application intended to demonstrate
  182758. how to use the Server\-Sent Events stream in an application. It is available
  182759. in a default install by visiting the \fB/app\fP URL in a browser.
  182760. .UNINDENT
  182761. .SS Python API Changes
  182762. .SS \fBexpr_form\fP Deprecation
  182763. .sp
  182764. The LocalClient\(aqs \fBexpr_form\fP argument has been
  182765. deprecated and renamed to \fBtgt_type\fP\&. This change was made due to numerous
  182766. reports of confusion among community members, since the targeting method is
  182767. published to minions as \fBtgt_type\fP, and appears as \fBtgt_type\fP in the job
  182768. cache as well.
  182769. .sp
  182770. While \fBexpr_form\fP will continue to be supported until the \fB2019.2.0\fP
  182771. release cycle (two major releases after this one), those who are using the
  182772. LocalClient (either directly, or implictly via a
  182773. netapi module) are encouraged to update their code
  182774. to use \fBtgt_type\fP\&.
  182775. .SS \fBfull_return\fP Argument in \fBLocalClient\fP and \fBRunnerClient\fP
  182776. .sp
  182777. An \fBfull_return\fP argument has been added to the \fBcmd\fP and \fBcmd_sync\fP
  182778. methods in \fBLocalClient\fP and \fBRunnerClient\fP which causes the return data
  182779. structure to include job meta data such as \fBretcode\fP\&.
  182780. .sp
  182781. This is useful at the Python API:
  182782. .INDENT 0.0
  182783. .INDENT 3.5
  182784. .sp
  182785. .nf
  182786. .ft C
  182787. >>> import salt.client
  182788. >>> client = salt.client.LocalClient()
  182789. >>> client.cmd(\(aq*\(aq, \(aqcmd.run\(aq, [\(aqreturn 1\(aq], full_return=True)
  182790. {\(aqjerry\(aq: {\(aqjid\(aq: \(aq20170520151213898053\(aq, \(aqret\(aq: \(aq\(aq, \(aqretcode\(aq: 1}}
  182791. .ft P
  182792. .fi
  182793. .UNINDENT
  182794. .UNINDENT
  182795. .sp
  182796. As well as from salt\-api:
  182797. .INDENT 0.0
  182798. .INDENT 3.5
  182799. .sp
  182800. .nf
  182801. .ft C
  182802. % curl \-b /tmp/cookies.txt \-sS http://localhost:8000 \e
  182803. \-H \(aqContent\-type: application/json\(aq \e
  182804. \-d \(aq[{
  182805. "client": "local",
  182806. "tgt": "*",
  182807. "fun": "cmd.run",
  182808. "arg": ["return 1"],
  182809. "full_return": true
  182810. }]\(aq
  182811. {"return": [{"jerry": {"jid": "20170520151531477653", "retcode": 1, "ret": ""}}]}
  182812. .ft P
  182813. .fi
  182814. .UNINDENT
  182815. .UNINDENT
  182816. .SS Jinja
  182817. .SS Filters
  182818. .sp
  182819. New filters in 2017.7.0:
  182820. .INDENT 0.0
  182821. .IP \(bu 2
  182822. \fBto_bool\fP
  182823. .IP \(bu 2
  182824. \fBexactly_n_true\fP
  182825. .IP \(bu 2
  182826. \fBexactly_one_true\fP
  182827. .IP \(bu 2
  182828. \fBquote\fP
  182829. .IP \(bu 2
  182830. \fBregex_search\fP
  182831. .IP \(bu 2
  182832. \fBregex_match\fP
  182833. .IP \(bu 2
  182834. \fBuuid\fP
  182835. .IP \(bu 2
  182836. \fBis_list\fP
  182837. .IP \(bu 2
  182838. \fBis_iter\fP
  182839. .IP \(bu 2
  182840. \fBmin\fP
  182841. .IP \(bu 2
  182842. \fBmax\fP
  182843. .IP \(bu 2
  182844. \fBavg\fP
  182845. .IP \(bu 2
  182846. \fBunion\fP
  182847. .IP \(bu 2
  182848. \fBintersect\fP
  182849. .IP \(bu 2
  182850. \fBdifference\fP
  182851. .IP \(bu 2
  182852. \fBsymmetric_difference\fP
  182853. .IP \(bu 2
  182854. \fBis_sorted\fP
  182855. .IP \(bu 2
  182856. \fBcompare_lists\fP
  182857. .IP \(bu 2
  182858. \fBcompare_dicts\fP
  182859. .IP \(bu 2
  182860. \fBis_hex\fP
  182861. .IP \(bu 2
  182862. \fBcontains_whitespace\fP
  182863. .IP \(bu 2
  182864. \fBsubstring_in_list\fP
  182865. .IP \(bu 2
  182866. \fBcheck_whitelist_blacklist\fP
  182867. .IP \(bu 2
  182868. \fBdate_format\fP
  182869. .IP \(bu 2
  182870. \fBstr_to_num\fP
  182871. .IP \(bu 2
  182872. \fBto_bytes\fP
  182873. .IP \(bu 2
  182874. \fBjson_decode_list\fP
  182875. .IP \(bu 2
  182876. \fBjson_decode_dict\fP
  182877. .IP \(bu 2
  182878. \fBrand_str\fP
  182879. .IP \(bu 2
  182880. \fBmd5\fP
  182881. .IP \(bu 2
  182882. \fBsha256\fP
  182883. .IP \(bu 2
  182884. \fBsha512\fP
  182885. .IP \(bu 2
  182886. \fBbase64_encode\fP
  182887. .IP \(bu 2
  182888. \fBbase64_decode\fP
  182889. .IP \(bu 2
  182890. \fBhmac\fP
  182891. .IP \(bu 2
  182892. \fBhttp_query\fP
  182893. .IP \(bu 2
  182894. \fBis_ip\fP
  182895. .IP \(bu 2
  182896. \fBis_ipv4\fP
  182897. .IP \(bu 2
  182898. \fBis_ipv6\fP
  182899. .IP \(bu 2
  182900. \fBipaddr\fP
  182901. .IP \(bu 2
  182902. \fBipv4\fP
  182903. .IP \(bu 2
  182904. \fBipv6\fP
  182905. .IP \(bu 2
  182906. \fBnetwork_hosts\fP
  182907. .IP \(bu 2
  182908. \fBnetwork_size\fP
  182909. .IP \(bu 2
  182910. \fBgen_mac\fP
  182911. .IP \(bu 2
  182912. \fBmac_str_to_bytes\fP
  182913. .IP \(bu 2
  182914. \fBdns_check\fP
  182915. .IP \(bu 2
  182916. \fBis_text_file\fP
  182917. .IP \(bu 2
  182918. \fBis_binary_file\fP
  182919. .IP \(bu 2
  182920. \fBis_empty_file\fP
  182921. .IP \(bu 2
  182922. \fBfile_hashsum\fP
  182923. .IP \(bu 2
  182924. \fBlist_files\fP
  182925. .IP \(bu 2
  182926. \fBpath_join\fP
  182927. .IP \(bu 2
  182928. \fBwhich\fP
  182929. .UNINDENT
  182930. .SS Logs
  182931. .sp
  182932. Another new feature \- although not limited to Jinja only \-
  182933. is being able to log debug messages directly from the template:
  182934. .INDENT 0.0
  182935. .INDENT 3.5
  182936. .sp
  182937. .nf
  182938. .ft C
  182939. {%\- do salt.log.error(\(aqlogging from jinja\(aq) \-%}
  182940. .ft P
  182941. .fi
  182942. .UNINDENT
  182943. .UNINDENT
  182944. .sp
  182945. See the \fBlogs\fP paragraph.
  182946. .SS Network Automation
  182947. .SS NAPALM
  182948. .sp
  182949. Introduced in 2016.11, the modules for cross\-vendor network automation
  182950. have been improved, enhanced and widenened in scope:
  182951. .INDENT 0.0
  182952. .IP \(bu 2
  182953. Manage network devices like servers: the NAPALM modules have been transformed
  182954. so they can run in both proxy and regular minions. That means, if the
  182955. operating system allows, the salt\-minion package can be installed directly
  182956. on the network gear. Examples of such devices (also covered by NAPALM)
  182957. include: Arista, Cumulus, Cisco IOS\-XR or Cisco Nexus.
  182958. .IP \(bu 2
  182959. Not always alive: in certain less dynamic environments,
  182960. maintaining the remote connection permanently open with the network device
  182961. is not always beneficial. In those particular cases, the user can select
  182962. to initialize the connection only when needed, by specifying the field
  182963. \fBalways_alive: false\fP in the \fBproxy configuration\fP
  182964. or using the \fBproxy_always_alive\fP option.
  182965. .IP \(bu 2
  182966. Proxy keepalive: due to external factors, the connection with the remote
  182967. device can be dropped, e.g.: packet loss, idle time (no commands issued
  182968. within a couple of minutes or seconds), or simply the device decides to kill
  182969. the process. In 2017.7.0 we have introduced the functionality to re\-establish
  182970. the connection. One can disable this feature through the
  182971. \fBproxy_keep_alive\fP option and adjust the polling frequency
  182972. speciying a custom value for \fBproxy_keep_alive_interval\fP,
  182973. in minutes.
  182974. .UNINDENT
  182975. .sp
  182976. New modules:
  182977. .INDENT 0.0
  182978. .IP \(bu 2
  182979. \fBNetconfig state module\fP \- Manage the configuration
  182980. of network devices using arbitrary templates and the Salt\-specific
  182981. advanced templating methodologies.
  182982. .IP \(bu 2
  182983. \fBNetwork ACL execution module\fP \- Generate and
  182984. load ACL (firewall) configuration on network devices.
  182985. .IP \(bu 2
  182986. \fBNetwork ACL state\fP \- Manage the firewall
  182987. configuration. It only requires writing the pillar structure correctly!
  182988. .IP \(bu 2
  182989. \fBNAPALM YANG execution module\fP \- Parse,
  182990. generate and load native device configuration in a standard way,
  182991. using the OpenConfig/IETF models. This module contains also helpers for
  182992. the states.
  182993. .IP \(bu 2
  182994. \fBNAPALM YANG state module\fP \- Manage the
  182995. network device configuration according to the YANG models (OpenConfig or IETF).
  182996. .IP \(bu 2
  182997. \fBNET finder\fP \- Runner to find details easily and
  182998. fast. It\(aqs smart enough to know what you are looking for. It will search
  182999. in the details of the network interfaces, IP addresses, MAC address tables,
  183000. ARP tables and LLDP neighbors.
  183001. .IP \(bu 2
  183002. \fBBGP finder\fP \- Runner to search BGP neighbors details.
  183003. .IP \(bu 2
  183004. \fBNAPALM syslog\fP \- Engine to import events
  183005. from the napalm\-logs library into the Salt event bus. The events are based
  183006. on the syslog messages from the network devices and structured following
  183007. the OpenConfig/IETF YANG models.
  183008. .IP \(bu 2
  183009. \fBNAPALM Helpers\fP \- Generic helpers for
  183010. NAPALM\-related operations. For example, the
  183011. \fBCompliance report\fP function
  183012. can be used inside the state modules to compare the expected and the
  183013. existing configuration.
  183014. .UNINDENT
  183015. .sp
  183016. New functions:
  183017. .INDENT 0.0
  183018. .IP \(bu 2
  183019. \fBConfiguration getter\fP \- Return
  183020. the whole configuration of the network device.
  183021. .IP \(bu 2
  183022. \fBOptics getter\fP \- Fetches
  183023. the power usage on the various transceivers installed on the network device
  183024. (in dBm).
  183025. .UNINDENT
  183026. .sp
  183027. New grains: \fBHost\fP,
  183028. \fBHost DNS\fP,
  183029. \fBUsername\fP and
  183030. \fBOptional args\fP\&.
  183031. .SS Custom Refspecs in GitFS / git_pillar / winrepo
  183032. .sp
  183033. It is now possible to specify the refspecs to use when fetching from remote
  183034. repositories for GitFS, git_pillar, and winrepo. More information on how this
  183035. feature works can be found here in the GitFS
  183036. Walkthrough. The git_pillar and winrepo versions of this feature work the same
  183037. as their GitFS counterpart.
  183038. .SS git_pillar "mountpoints" Feature Added
  183039. .sp
  183040. See here for detailed documentation.
  183041. .SS Big Improvements to Docker Support
  183042. .sp
  183043. The old \fBdocker\fP state and execution modules have been moved to
  183044. \fI\%salt\-contrib\fP\&. The \fBdockerng\fP execution module has been renamed to
  183045. \fBdocker\fP and now serves as Salt\(aqs official Docker
  183046. execution module.
  183047. .sp
  183048. The old \fBdockerng\fP state module has been split into 4 state modules:
  183049. .INDENT 0.0
  183050. .IP \(bu 2
  183051. \fBdocker_container\fP \- States to manage
  183052. Docker containers
  183053. .IP \(bu 2
  183054. \fBdocker_image\fP \- States to manage Docker
  183055. images
  183056. .IP \(bu 2
  183057. \fBdocker_volume\fP \- States to manage
  183058. Docker volumes
  183059. .IP \(bu 2
  183060. \fBdocker_network\fP \- States to manage
  183061. Docker networks
  183062. .UNINDENT
  183063. .sp
  183064. The reason for this change was to make states and requisites more clear. For
  183065. example, imagine this SLS:
  183066. .INDENT 0.0
  183067. .INDENT 3.5
  183068. .sp
  183069. .nf
  183070. .ft C
  183071. myuser/appimage:
  183072. docker.image_present:
  183073. \- sls: docker.images.appimage
  183074. myapp:
  183075. docker.running:
  183076. \- image: myuser/appimage
  183077. \- require:
  183078. \- docker: myuser/appimage
  183079. .ft P
  183080. .fi
  183081. .UNINDENT
  183082. .UNINDENT
  183083. .sp
  183084. The new syntax would be:
  183085. .INDENT 0.0
  183086. .INDENT 3.5
  183087. .sp
  183088. .nf
  183089. .ft C
  183090. myuser/appimage:
  183091. docker_image.present:
  183092. \- sls: docker.images.appimage
  183093. myapp:
  183094. docker_container.running:
  183095. \- image: myuser/appimage
  183096. \- require:
  183097. \- docker_image: myuser/appimage
  183098. .ft P
  183099. .fi
  183100. .UNINDENT
  183101. .UNINDENT
  183102. .sp
  183103. This is similar to how Salt handles MySQL, MongoDB, Zabbix, and other cases
  183104. where the same execution module is used to manage several different kinds
  183105. of objects (users, databases, roles, etc.).
  183106. .sp
  183107. \fBNOTE:\fP
  183108. .INDENT 0.0
  183109. .INDENT 3.5
  183110. With the \fI\%Moby announcement\fP coming at this year\(aqs \fI\%DockerCon\fP, Salt\(aqs
  183111. \fBdocker\fP execution module (as well as the
  183112. state modules) work interchangeably when \fBdocker\fP is replaced with
  183113. \fBmoby\fP (e.g. \fBmoby_container.running\fP, \fBmoby_image.present\fP, \fBmoby.inspect_container\fP, etc.)
  183114. .UNINDENT
  183115. .UNINDENT
  183116. .sp
  183117. The old syntax will continue to work until the \fB2019.2.0\fP release of Salt.
  183118. The old \fBdockerng\fP naming will also continue to work until that release, so
  183119. no immediate changes need to be made to your SLS files (unless you were still
  183120. using the old docker states that have been moved to \fI\%salt\-contrib\fP).
  183121. .sp
  183122. The \fBdocker_container.running\fP
  183123. state has undergone a significant change in how it determines whether or not a
  183124. container needs to be replaced. Rather than comparing individual arguments to
  183125. their corresponding values in the named container, a temporary container is
  183126. created (but not started) using the passed arguments. The two containers are
  183127. then compared to each other to determine whether or not there are changes, and
  183128. if so, the old container is stopped and destroyed, and the temporary container
  183129. is renamed and started.
  183130. .sp
  183131. Salt still needs to translate arguments into the format which docker\-py
  183132. expects, but if it does not properly do so, the skip_translate argument can be used to skip input
  183133. translation on an argument\-by\-argument basis, and you can then format your SLS
  183134. file to pass the data in the format that the docker\-py expects. This allows you
  183135. to work around any changes in Docker\(aqs API or issues with the input
  183136. translation, and continue to manage your Docker containers using Salt. Read the
  183137. documentation for skip_translate for more information.
  183138. .sp
  183139. \fBNOTE:\fP
  183140. .INDENT 0.0
  183141. .INDENT 3.5
  183142. When running the \fBdocker_container.running\fP state for the first time after
  183143. upgrading to 2017.7.0, your container(s) may be replaced. The changes may
  183144. show diffs for certain parameters which say that the old value was an empty
  183145. string, and the new value is \fBNone\fP\&. This is due to the fact that in
  183146. prior releases Salt was passing empty strings for these values when
  183147. creating the container if they were undefined in the SLS file, where now
  183148. Salt simply does not pass any arguments not explicitly defined in the SLS
  183149. file. Subsequent runs of the state should not replace the container if the
  183150. configuration remains unchanged.
  183151. .UNINDENT
  183152. .UNINDENT
  183153. .SS New SSH Cache Roster
  183154. .sp
  183155. The \fBSSH cache Roster\fP has been rewritten from scratch
  183156. to increase its usefulness. The new roster supports all minion matchers, so it
  183157. is now possible to target minions identically through \fIsalt\fP and \fIsalt\-ssh\fP\&.
  183158. .sp
  183159. Using the new \fBroster_order\fP configuration syntax it\(aqs now possible to
  183160. compose a roster out of any combination of grains, pillar and mine data and
  183161. even Salt SDB URLs. The new release is also fully IPv4 and IPv6 enabled and
  183162. even has support for CIDR ranges.
  183163. .SS Salt\-SSH Default Options
  183164. .sp
  183165. Defaults for rosters can now be set, so that they don\(aqt have to be set on every
  183166. entry in a roster or specified from the commandline.
  183167. .sp
  183168. The new option is \fBroster_defaults\fP and is specified in the master
  183169. config file:
  183170. .INDENT 0.0
  183171. .INDENT 3.5
  183172. .sp
  183173. .nf
  183174. .ft C
  183175. roster_defaults:
  183176. user: daniel
  183177. sudo: True
  183178. priv: /root/.ssh/id_rsa
  183179. tty: True
  183180. .ft P
  183181. .fi
  183182. .UNINDENT
  183183. .UNINDENT
  183184. .SS Blacklist or Whitelist Extmod Sync
  183185. .sp
  183186. The modules that are synced to minions can now be limited.
  183187. .sp
  183188. The following configuration options have been added for the master:
  183189. .INDENT 0.0
  183190. .IP \(bu 2
  183191. \fBextmod_whitelist\fP
  183192. .IP \(bu 2
  183193. \fBextmod_blacklist\fP
  183194. .UNINDENT
  183195. .sp
  183196. and for the minion:
  183197. .INDENT 0.0
  183198. .IP \(bu 2
  183199. \fBextmod_whitelist\fP
  183200. .IP \(bu 2
  183201. \fBextmod_blacklist\fP
  183202. .UNINDENT
  183203. .SS Additional Features
  183204. .INDENT 0.0
  183205. .IP \(bu 2
  183206. The \fBmine.update\fP function
  183207. has a new optional argument \fBmine_functions\fP that can be used
  183208. to refresh mine functions at a more specific interval
  183209. than scheduled using the \fBmine_interval\fP option.
  183210. However, this argument can be used by explicit schedule.
  183211. For example, if we need the mines for \fBnet.lldp\fP to be refreshed
  183212. every 12 hours:
  183213. .INDENT 2.0
  183214. .INDENT 3.5
  183215. .sp
  183216. .nf
  183217. .ft C
  183218. schedule:
  183219. lldp_mine_update:
  183220. function: mine.update
  183221. kwargs:
  183222. mine_functions:
  183223. net.lldp: []
  183224. hours: 12
  183225. .ft P
  183226. .fi
  183227. .UNINDENT
  183228. .UNINDENT
  183229. .IP \(bu 2
  183230. The \fBsalt\fP runner has a new function: \fBsalt.execute\fP\&.
  183231. It is mainly a shortcut to facilitate the execution of various functions
  183232. from other runners, e.g.:
  183233. .INDENT 2.0
  183234. .INDENT 3.5
  183235. .sp
  183236. .nf
  183237. .ft C
  183238. ret1 = __salt__["salt.execute"]("*", "mod.fun")
  183239. .ft P
  183240. .fi
  183241. .UNINDENT
  183242. .UNINDENT
  183243. .UNINDENT
  183244. .SS New Modules
  183245. .SS Beacons
  183246. .INDENT 0.0
  183247. .IP \(bu 2
  183248. \fBsalt.beacons.log\fP
  183249. .UNINDENT
  183250. .SS Cache
  183251. .INDENT 0.0
  183252. .IP \(bu 2
  183253. \fBsalt.cache.redis_cache\fP
  183254. .UNINDENT
  183255. .SS Engines
  183256. .INDENT 0.0
  183257. .IP \(bu 2
  183258. \fBsalt.engines.stalekey\fP
  183259. .IP \(bu 2
  183260. \fBsalt.engines.junos_syslog\fP
  183261. .IP \(bu 2
  183262. \fBsalt.engines.napalm_syslog\fP
  183263. .UNINDENT
  183264. .SS Execution modules
  183265. .INDENT 0.0
  183266. .IP \(bu 2
  183267. \fBsalt.modules.apk\fP
  183268. .IP \(bu 2
  183269. \fBsalt.modules.at_solaris\fP
  183270. .IP \(bu 2
  183271. \fBsalt.modules.boto_kinesis\fP
  183272. .IP \(bu 2
  183273. \fBsalt.modules.boto3_elasticache\fP
  183274. .IP \(bu 2
  183275. \fBsalt.modules.boto3_route53\fP
  183276. .IP \(bu 2
  183277. \fBsalt.modules.capirca_acl\fP
  183278. .IP \(bu 2
  183279. \fBsalt.modules.freebsd_update\fP
  183280. .IP \(bu 2
  183281. \fBsalt.modules.grafana4\fP
  183282. .IP \(bu 2
  183283. \fBsalt.modules.heat\fP
  183284. .IP \(bu 2
  183285. \fBsalt.modules.icinga2\fP
  183286. .IP \(bu 2
  183287. \fBsalt.modules.kubernetesmod\fP
  183288. .IP \(bu 2
  183289. \fBsalt.modules.logmod\fP
  183290. .IP \(bu 2
  183291. \fBsalt.modules.mattermost\fP
  183292. .IP \(bu 2
  183293. \fBsalt.modules.namecheap_dns\fP
  183294. .IP \(bu 2
  183295. \fBsalt.modules.namecheap_domains\fP
  183296. .IP \(bu 2
  183297. \fBsalt.modules.namecheap_ns\fP
  183298. .IP \(bu 2
  183299. \fBsalt.modules.namecheap_users\fP
  183300. .IP \(bu 2
  183301. \fBsalt.modules.namecheap_ssl\fP
  183302. .IP \(bu 2
  183303. \fBsalt.modules.napalm\fP
  183304. .IP \(bu 2
  183305. \fBsalt.modules.napalm_acl\fP
  183306. .IP \(bu 2
  183307. \fBsalt.modules.napalm_yang_mod\fP
  183308. .IP \(bu 2
  183309. \fBsalt.modules.pdbedit\fP
  183310. .IP \(bu 2
  183311. \fBsalt.modules.solrcloud\fP
  183312. .IP \(bu 2
  183313. \fBsalt.modules.statuspage\fP
  183314. .IP \(bu 2
  183315. \fBsalt.modules.zonecfg\fP
  183316. .IP \(bu 2
  183317. \fBsalt.modules.zoneadm\fP
  183318. .UNINDENT
  183319. .SS Grains
  183320. .INDENT 0.0
  183321. .IP \(bu 2
  183322. \fBsalt.grains.metadata\fP
  183323. .IP \(bu 2
  183324. \fBsalt.grains.mdata\fP
  183325. .UNINDENT
  183326. .SS Outputters
  183327. .INDENT 0.0
  183328. .IP \(bu 2
  183329. \fBsalt.output.table_out\fP
  183330. .UNINDENT
  183331. .SS Pillar
  183332. .INDENT 0.0
  183333. .IP \(bu 2
  183334. \fBsalt.pillar.postgres\fP
  183335. .IP \(bu 2
  183336. \fBsalt.pillar.vmware_pillar\fP
  183337. .UNINDENT
  183338. .SS Returners
  183339. .INDENT 0.0
  183340. .IP \(bu 2
  183341. \fBsalt.returners.mattermost_returner\fP
  183342. .IP \(bu 2
  183343. \fBsalt.returners.highstate_return\fP
  183344. .UNINDENT
  183345. .SS Roster
  183346. .INDENT 0.0
  183347. .IP \(bu 2
  183348. \fBsalt.roster.cache\fP
  183349. .UNINDENT
  183350. .SS Runners
  183351. .INDENT 0.0
  183352. .IP \(bu 2
  183353. \fBsalt.runners.bgp\fP
  183354. .IP \(bu 2
  183355. \fBsalt.runners.mattermost\fP
  183356. .IP \(bu 2
  183357. \fBsalt.runners.net\fP
  183358. .UNINDENT
  183359. .SS SDB
  183360. .INDENT 0.0
  183361. .IP \(bu 2
  183362. \fBsalt.sdb.yaml\fP
  183363. .IP \(bu 2
  183364. \fBsalt.sdb.tism\fP
  183365. .IP \(bu 2
  183366. \fBsalt.sdb.cache\fP
  183367. .UNINDENT
  183368. .SS States
  183369. .INDENT 0.0
  183370. .IP \(bu 2
  183371. \fBsalt.states.boto_kinesis\fP
  183372. .IP \(bu 2
  183373. \fBsalt.states.boto_efs\fP
  183374. .IP \(bu 2
  183375. \fBsalt.states.boto3_elasticache\fP
  183376. .IP \(bu 2
  183377. \fBsalt.states.boto3_route53\fP
  183378. .IP \(bu 2
  183379. \fBsalt.states.docker_container\fP
  183380. .IP \(bu 2
  183381. \fBsalt.states.docker_image\fP
  183382. .IP \(bu 2
  183383. \fBsalt.states.docker_network\fP
  183384. .IP \(bu 2
  183385. \fBsalt.states.docker_volume\fP
  183386. .IP \(bu 2
  183387. \fBsalt.states.elasticsearch\fP
  183388. .IP \(bu 2
  183389. \fBsalt.states.grafana4_dashboard\fP
  183390. .IP \(bu 2
  183391. \fBsalt.states.grafana4_datasource\fP
  183392. .IP \(bu 2
  183393. \fBsalt.states.grafana4_org\fP
  183394. .IP \(bu 2
  183395. \fBsalt.states.grafana4_user\fP
  183396. .IP \(bu 2
  183397. \fBsalt.states.heat\fP
  183398. .IP \(bu 2
  183399. \fBsalt.states.icinga2\fP
  183400. .IP \(bu 2
  183401. \fBsalt.states.influxdb_continuous_query\fP
  183402. .IP \(bu 2
  183403. \fBsalt.states.influxdb_retention_policy\fP
  183404. .IP \(bu 2
  183405. \fBsalt.states.kubernetes\fP
  183406. .IP \(bu 2
  183407. \fBsalt.states.logadm\fP
  183408. .IP \(bu 2
  183409. \fBsalt.states.logrotate\fP
  183410. .IP \(bu 2
  183411. \fBsalt.states.msteams\fP
  183412. .IP \(bu 2
  183413. \fBsalt.states.netacl\fP
  183414. .IP \(bu 2
  183415. \fBsalt.states.netconfig\fP
  183416. .IP \(bu 2
  183417. \fBsalt.states.netyang\fP
  183418. .IP \(bu 2
  183419. \fBsalt.states.nix\fP
  183420. .IP \(bu 2
  183421. \fBsalt.states.pdbedit\fP
  183422. .IP \(bu 2
  183423. \fBsalt.states.solrcloud\fP
  183424. .IP \(bu 2
  183425. \fBsalt.states.statuspage\fP
  183426. .IP \(bu 2
  183427. \fBsalt.states.vault\fP
  183428. .IP \(bu 2
  183429. \fBsalt.states.win_wua\fP
  183430. .IP \(bu 2
  183431. \fBsalt.states.zone\fP
  183432. .UNINDENT
  183433. .SS Deprecations
  183434. .SS General Deprecations
  183435. .INDENT 0.0
  183436. .IP \(bu 2
  183437. Removed support for aliasing \fBcmd.run\fP to \fBcmd.shell\fP\&.
  183438. .IP \(bu 2
  183439. Removed support for Dulwich from GitFS\&.
  183440. .IP \(bu 2
  183441. Beacon configurations should be lists instead of dictionaries.
  183442. .IP \(bu 2
  183443. The \fBPidfileMixin\fP has been removed. Please use \fBDaemonMixIn\fP instead.
  183444. .IP \(bu 2
  183445. The \fBuse_pending\fP argument was removed from the \fBsalt.utils.event.get_event\fP
  183446. function.
  183447. .IP \(bu 2
  183448. The \fBpending_tags\fP argument was removed from the \fBsalt.utils.event.get_event\fP
  183449. function.
  183450. .UNINDENT
  183451. .SS Configuration Option Deprecations
  183452. .INDENT 0.0
  183453. .IP \(bu 2
  183454. The \fBclient_acl\fP configuration option has been removed. Please use
  183455. \fBpublisher_acl\fP instead.
  183456. .IP \(bu 2
  183457. The \fBclient_acl_blacklist\fP configuration option has been removed.
  183458. Please use \fBpublisher_acl_blacklist\fP instead.
  183459. .IP \(bu 2
  183460. The \fBwin_gitrepos\fP configuration option has been removed. Please use
  183461. the \fBwinrepo_remotes\fP option instead.
  183462. .IP \(bu 2
  183463. The \fBwin_repo\fP configuration option has been removed. Please use
  183464. \fBwinrepo_dir\fP instead.
  183465. .IP \(bu 2
  183466. The \fBwin_repo_mastercachefile\fP configuration option has been removed.
  183467. Please use the \fBwinrepo_cachefile\fP option instead.
  183468. .UNINDENT
  183469. .SS Module Deprecations
  183470. .sp
  183471. The \fBgit\fP execution module had the following changes:
  183472. .INDENT 0.0
  183473. .IP \(bu 2
  183474. The \fBfmt\fP argument was removed from the \fBarchive\fP function. Please
  183475. use \fBformat\fP instead.
  183476. .IP \(bu 2
  183477. The \fBrepository\fP argument was removed from the \fBclone\fP function.
  183478. Please use \fBurl\fP instead.
  183479. .IP \(bu 2
  183480. The \fBis_global\fP argument was removed from the \fBconfig_set\fP function.
  183481. Please use \fBglobal\fP instead.
  183482. .IP \(bu 2
  183483. The \fBbranch\fP argument was removed from the \fBmerge\fP function. Please
  183484. use \fBrev\fP instead.
  183485. .IP \(bu 2
  183486. The \fBbranch\fP argument was removed from the \fBpush\fP function. Please
  183487. use \fBrev\fP instead.
  183488. .UNINDENT
  183489. .sp
  183490. The \fBglusterfs\fP execution module had the following functions removed:
  183491. .INDENT 0.0
  183492. .IP \(bu 2
  183493. \fBcreate\fP: Please use \fBcreate_volume\fP instead.
  183494. .IP \(bu 2
  183495. \fBdelete\fP: Please use \fBdelete_volume\fP instead.
  183496. .IP \(bu 2
  183497. \fBlist_peers\fP: Please use \fBpeer_status\fP instead.
  183498. .UNINDENT
  183499. .sp
  183500. The \fBhtpasswd\fP execution module had the following function removed:
  183501. .INDENT 0.0
  183502. .IP \(bu 2
  183503. \fBuseradd_all\fP: Please use \fBuseradd\fP instead.
  183504. .UNINDENT
  183505. .sp
  183506. The \fBimg\fP execution module has been removed. All of its associated functions
  183507. were marked for removal in the 2017.7.0 release. The functions removed in this
  183508. module are mapped as follows:
  183509. .INDENT 0.0
  183510. .IP \(bu 2
  183511. \fBmount_image\fP/\fBmnt_image\fP: Please use \fBmount.mount\fP instead.
  183512. .IP \(bu 2
  183513. \fBumount_image\fP: Please use \fBmount.umount\fP instead.
  183514. .IP \(bu 2
  183515. \fBbootstrap\fP: Please use \fBgenesis.bootstrap\fP instead.
  183516. .UNINDENT
  183517. .sp
  183518. The \fBsmartos_virt\fP execution module had the following functions removed:
  183519. .INDENT 0.0
  183520. .IP \(bu 2
  183521. \fBcreate\fP: Please use \fBstart\fP instead.
  183522. .IP \(bu 2
  183523. \fBdestroy\fP Please use \fBstop\fP instead.
  183524. .IP \(bu 2
  183525. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183526. .UNINDENT
  183527. .sp
  183528. The \fBvirt\fP execution module had the following functions removed:
  183529. .INDENT 0.0
  183530. .IP \(bu 2
  183531. \fBcreate\fP: Please use \fBstart\fP instead.
  183532. .IP \(bu 2
  183533. \fBdestroy\fP Please use \fBstop\fP instead.
  183534. .IP \(bu 2
  183535. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183536. .UNINDENT
  183537. .sp
  183538. The \fBvirtualenv_mod\fP execution module had the following changes:
  183539. .INDENT 0.0
  183540. .IP \(bu 2
  183541. The \fBpackage_or_requirement\fP argument was removed from both the
  183542. \fBget_resource_path\fP and the \fBget_resource_content\fP functions.
  183543. Please use \fBpackage\fP instead.
  183544. .IP \(bu 2
  183545. The \fBresource_name\fP argument was removed from both the
  183546. \fBget_resource_path\fP and \fBget_resource_content\fP functions.
  183547. Please use \fBresource\fP instead.
  183548. .UNINDENT
  183549. .sp
  183550. The \fBwin_repo\fP execution module had the following changes:
  183551. .INDENT 0.0
  183552. .IP \(bu 2
  183553. The \fBwin_repo_source_dir\fP option was removed from the \fBwin_repo\fP
  183554. module. Please use \fBwinrepo_source_dir\fP instead.
  183555. .UNINDENT
  183556. .sp
  183557. The \fBxapi\fP execution module had the following functions removed:
  183558. .INDENT 0.0
  183559. .IP \(bu 2
  183560. \fBcreate\fP: Please use \fBstart\fP instead.
  183561. .IP \(bu 2
  183562. \fBdestroy\fP: Please use \fBstop\fP instead.
  183563. .IP \(bu 2
  183564. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183565. .UNINDENT
  183566. .sp
  183567. The \fBzypper\fP execution module had the following function removed:
  183568. .INDENT 0.0
  183569. .IP \(bu 2
  183570. \fBinfo\fP: Please use \fBinfo_available\fP instead.
  183571. .UNINDENT
  183572. .SS Pillar Deprecations
  183573. .INDENT 0.0
  183574. .IP \(bu 2
  183575. Support for the \fBraw_data\fP argument for the file_tree ext_pillar has been
  183576. removed. Please use \fBkeep_newline\fP instead.
  183577. .IP \(bu 2
  183578. SQLite3 database connection configuration previously had keys under
  183579. pillar. This legacy compatibility has been removed.
  183580. .UNINDENT
  183581. .SS Proxy Minion Deprecations
  183582. .INDENT 0.0
  183583. .IP \(bu 2
  183584. The \fBproxy_merge_grains_in_module\fP default has been switched from
  183585. \fBFalse\fP to \fBTrue\fP\&.
  183586. .UNINDENT
  183587. .SS Salt\-API Deprecations
  183588. .INDENT 0.0
  183589. .IP \(bu 2
  183590. The \fBSaltAPI.run()\fP function has been removed. Please use the
  183591. \fBSaltAPI.start()\fP function instead.
  183592. .UNINDENT
  183593. .SS Salt\-Cloud Deprecations
  183594. .INDENT 0.0
  183595. .IP \(bu 2
  183596. Support for using the keyword \fBprovider\fP in salt\-cloud provider config
  183597. files has been removed. Please use \fBdriver\fP instead. The \fBprovider\fP
  183598. keyword should now only be used in cloud profile config files.
  183599. .UNINDENT
  183600. .SS Salt\-SSH Deprecations
  183601. .INDENT 0.0
  183602. .IP \(bu 2
  183603. The \fBwipe_ssh\fP option for \fBsalt\-ssh\fP has been removed. Please use the
  183604. \fBssh_wipe\fP option instead.
  183605. .UNINDENT
  183606. .SS State Deprecations
  183607. .sp
  183608. The \fBapache_conf\fP state had the following functions removed:
  183609. .INDENT 0.0
  183610. .IP \(bu 2
  183611. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183612. .IP \(bu 2
  183613. \fBenable\fP: Please use \fBenabled\fP instead.
  183614. .UNINDENT
  183615. .sp
  183616. The \fBapache_module\fP state had the following functions removed:
  183617. .INDENT 0.0
  183618. .IP \(bu 2
  183619. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183620. .IP \(bu 2
  183621. \fBenable\fP: Please use \fBenabled\fP instead.
  183622. .UNINDENT
  183623. .sp
  183624. The \fBapache_site\fP state had the following functions removed:
  183625. .INDENT 0.0
  183626. .IP \(bu 2
  183627. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183628. .IP \(bu 2
  183629. \fBenable\fP: Please use \fBenabled\fP instead.
  183630. .UNINDENT
  183631. .sp
  183632. The \fBchocolatey\fP state had the following functions removed:
  183633. .INDENT 0.0
  183634. .IP \(bu 2
  183635. \fBinstall\fP: Please use \fBinstalled\fP instead.
  183636. .IP \(bu 2
  183637. \fBuninstall\fP: Please use \fBuninstalled\fP instead.
  183638. .UNINDENT
  183639. .sp
  183640. The \fBgit\fP state had the following changes:
  183641. .INDENT 0.0
  183642. .IP \(bu 2
  183643. The \fBconfig\fP function was removed. Please use \fBconfig_set\fP instead.
  183644. .IP \(bu 2
  183645. The \fBis_global\fP option was removed from the \fBconfig_set\fP function.
  183646. Please use \fBglobal\fP instead.
  183647. .IP \(bu 2
  183648. The \fBalways_fetch\fP option was removed from the \fBlatest\fP function, as
  183649. it no longer has any effect. Please see the 2015.8.0
  183650. release notes for more information.
  183651. .IP \(bu 2
  183652. The \fBforce\fP option was removed from the \fBlatest\fP function. Please
  183653. use \fBforce_clone\fP instead.
  183654. .IP \(bu 2
  183655. The \fBremote_name\fP option was removed from the \fBlatest\fP function.
  183656. Please use \fBremote\fP instead.
  183657. .UNINDENT
  183658. .sp
  183659. The \fBglusterfs\fP state had the following function removed:
  183660. .INDENT 0.0
  183661. .IP \(bu 2
  183662. \fBcreated\fP: Please use \fBvolume_present\fP instead.
  183663. .UNINDENT
  183664. .sp
  183665. The \fBopenvswitch_port\fP state had the following change:
  183666. .INDENT 0.0
  183667. .IP \(bu 2
  183668. The \fBtype\fP option was removed from the \fBpresent\fP function. Please use \fBtunnel_type\fP instead.
  183669. .UNINDENT
  183670. .SS Build Notes
  183671. .SS Windows Installer Packages
  183672. .sp
  183673. Windows Installer packages have been patched with the following PR: \fI\%42347\fP
  183674. .SS Salt 2017.7.1 Release Notes
  183675. .sp
  183676. Version 2017.7.1 is a bugfix release for 2017.7.0\&.
  183677. .SS Statistics
  183678. .INDENT 0.0
  183679. .IP \(bu 2
  183680. Total Merges: \fB16\fP
  183681. .IP \(bu 2
  183682. Total Issue References: \fB12\fP
  183683. .IP \(bu 2
  183684. Total PR References: \fB31\fP
  183685. .IP \(bu 2
  183686. 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)
  183687. .UNINDENT
  183688. .SS Security Fix
  183689. .sp
  183690. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  183691. traversals on the Salt\-master
  183692. .sp
  183693. Correct a flaw in minion id validation which could allow certain minions to
  183694. authenticate to a master despite not having the correct credentials. To exploit
  183695. the vulnerability, an attacker must create a salt\-minion with an ID containing
  183696. characters that will cause a directory traversal. Credit for discovering the
  183697. security flaw goes to: \fI\%Vernhk@qq.com\fP
  183698. .SS Changelog for v2017.7.0..v2017.7.1
  183699. .sp
  183700. \fIGenerated at: 2018\-05\-26 20:28:44 UTC\fP
  183701. .INDENT 0.0
  183702. .IP \(bu 2
  183703. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#460\fP: (\fI\%Ch3LL\fP) decorator tests failing on python3 (refs: \fI\%#42548\fP)
  183704. .IP \(bu 2
  183705. \fBPR\fP \fI\%#42595\fP: (\fI\%gtmanfred\fP) make sure to pass arg as well
  183706. @ \fI2017\-07\-28 16:21:58 UTC\fP
  183707. .INDENT 2.0
  183708. .IP \(bu 2
  183709. \fBPR\fP \fI\%#42548\fP: (\fI\%gtmanfred\fP) pass in empty kwarg for reactor (refs: \fI\%#42595\fP)
  183710. .IP \(bu 2
  183711. a50fe5433a Merge pull request \fI\%#42595\fP from gtmanfred/2017.7.1
  183712. .IP \(bu 2
  183713. 8f73804b24 make sure to pass arg as well
  183714. .UNINDENT
  183715. .IP \(bu 2
  183716. \fBPR\fP \fI\%#42597\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42590\fP to 2017.7.1
  183717. @ \fI2017\-07\-28 00:20:01 UTC\fP
  183718. .INDENT 2.0
  183719. .IP \(bu 2
  183720. \fBPR\fP \fI\%#42590\fP: (\fI\%TiteiKo\fP) Fix missing tornado import (refs: \fI\%#42597\fP)
  183721. .IP \(bu 2
  183722. 3b583330de Merge pull request \fI\%#42597\fP from rallytime/bp\-42590
  183723. .IP \(bu 2
  183724. 8818b06f22 Fix missing tornado import
  183725. .UNINDENT
  183726. .IP \(bu 2
  183727. \fBISSUE\fP \fI\%#42404\fP: (\fI\%gabekahen\fP) [2017.7] file.managed with cmd_check "No such file or directory" (refs: \fI\%#42411\fP)
  183728. .IP \(bu 2
  183729. \fBISSUE\fP \fI\%#33708\fP: (\fI\%pepinje\fP) visudo check command leaves cache file in /tmp (refs: \fI\%#38063\fP, \fI\%#42411\fP)
  183730. .IP \(bu 2
  183731. \fBPR\fP \fI\%#42598\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42411\fP to 2017.7.1
  183732. @ \fI2017\-07\-28 00:19:13 UTC\fP
  183733. .INDENT 2.0
  183734. .IP \(bu 2
  183735. \fBPR\fP \fI\%#42411\fP: (\fI\%seedickcode\fP) Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP (refs: \fI\%#42598\fP)
  183736. .IP \(bu 2
  183737. \fBPR\fP \fI\%#38063\fP: (\fI\%llua\fP) tmp file clean up in file.manage \- fix for \fI\%#33708\fP (refs: \fI\%#42411\fP)
  183738. .IP \(bu 2
  183739. 76f1e53e10 Merge pull request \fI\%#42598\fP from rallytime/bp\-42411
  183740. .IP \(bu 2
  183741. 190cdb8693 Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  183742. .UNINDENT
  183743. .IP \(bu 2
  183744. \fBPR\fP \fI\%#42564\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42555\fP to 2017.7.1
  183745. @ \fI2017\-07\-26 17:32:02 UTC\fP
  183746. .INDENT 2.0
  183747. .IP \(bu 2
  183748. \fBPR\fP \fI\%#42555\fP: (\fI\%Ch3LL\fP) add changelog to 2017.7.1 release notes (refs: \fI\%#42564\fP)
  183749. .IP \(bu 2
  183750. 5c7def9a43 Merge pull request \fI\%#42564\fP from rallytime/bp\-42555
  183751. .IP \(bu 2
  183752. 7bcaa5a4cc small markup fix for title
  183753. .IP \(bu 2
  183754. d066b599ca add changelog to 2017.7.1 release notes
  183755. .UNINDENT
  183756. .IP \(bu 2
  183757. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#460\fP: (\fI\%Ch3LL\fP) decorator tests failing on python3 (refs: \fI\%#42548\fP)
  183758. .IP \(bu 2
  183759. \fBPR\fP \fI\%#42548\fP: (\fI\%gtmanfred\fP) pass in empty kwarg for reactor (refs: \fI\%#42595\fP)
  183760. @ \fI2017\-07\-26 00:41:20 UTC\fP
  183761. .INDENT 2.0
  183762. .IP \(bu 2
  183763. 711b742c54 Merge pull request \fI\%#42548\fP from gtmanfred/2017.7.1
  183764. .IP \(bu 2
  183765. 0257c1dc32 pass in empty kwarg for reactor
  183766. .IP \(bu 2
  183767. b948e980d2 update chunk, not kwarg in chunk
  183768. .UNINDENT
  183769. .IP \(bu 2
  183770. \fBISSUE\fP \fI\%#42519\fP: (\fI\%xuhcc\fP) Error when installing package from file under Arch Linux (refs: \fI\%#42522\fP)
  183771. .IP \(bu 2
  183772. \fBPR\fP \fI\%#42522\fP: (\fI\%gtmanfred\fP) pacman wildcard is only for repository installs
  183773. @ \fI2017\-07\-24 20:51:05 UTC\fP
  183774. .INDENT 2.0
  183775. .IP \(bu 2
  183776. 50c1635dcc Merge pull request \fI\%#42522\fP from gtmanfred/2017.7.1
  183777. .IP \(bu 2
  183778. 7787fb9e1b pacman wildcard is only for repository installs
  183779. .UNINDENT
  183780. .IP \(bu 2
  183781. \fBPR\fP \fI\%#42508\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42474\fP to 2017.7.1
  183782. @ \fI2017\-07\-24 20:49:51 UTC\fP
  183783. .INDENT 2.0
  183784. .IP \(bu 2
  183785. \fBPR\fP \fI\%#42474\fP: (\fI\%whiteinge\fP) Cmd arg kwarg parsing test (refs: \fI\%#42508\fP)
  183786. .IP \(bu 2
  183787. \fBPR\fP \fI\%#39646\fP: (\fI\%terminalmage\fP) Handle deprecation of passing string args to load_args_and_kwargs (refs: \fI\%#42474\fP)
  183788. .IP \(bu 2
  183789. 05c07ac049 Merge pull request \fI\%#42508\fP from rallytime/bp\-42474
  183790. .IP \(bu 2
  183791. 76fb074433 Add a test.arg variant that cleans the pub kwargs by default
  183792. .IP \(bu 2
  183793. 624f63648e Lint fixes
  183794. .IP \(bu 2
  183795. d246a5fc61 Add back support for string kwargs
  183796. .IP \(bu 2
  183797. 854e098aa0 Add LocalClient.cmd test for arg/kwarg parsing
  183798. .UNINDENT
  183799. .IP \(bu 2
  183800. \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)
  183801. .IP \(bu 2
  183802. \fBPR\fP \fI\%#42472\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42435\fP to 2017.7.1
  183803. @ \fI2017\-07\-24 15:11:13 UTC\fP
  183804. .INDENT 2.0
  183805. .IP \(bu 2
  183806. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42472\fP)
  183807. .IP \(bu 2
  183808. 95fe2558e4 Merge pull request \fI\%#42472\fP from rallytime/bp\-42435
  183809. .IP \(bu 2
  183810. 5c47af5b98 Modify our custom YAML loader to treat unicode literals as unicode strings
  183811. .UNINDENT
  183812. .IP \(bu 2
  183813. \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)
  183814. .IP \(bu 2
  183815. \fBPR\fP \fI\%#42473\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42436\fP to 2017.7.1
  183816. @ \fI2017\-07\-24 15:10:29 UTC\fP
  183817. .INDENT 2.0
  183818. .IP \(bu 2
  183819. \fBPR\fP \fI\%#42436\fP: (\fI\%garethgreenaway\fP) Fixes to versions function in manage runner (refs: \fI\%#42473\fP)
  183820. .IP \(bu 2
  183821. 5b99d45f54 Merge pull request \fI\%#42473\fP from rallytime/bp\-42436
  183822. .IP \(bu 2
  183823. 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.
  183824. .UNINDENT
  183825. .IP \(bu 2
  183826. \fBISSUE\fP \fI\%#42381\fP: (\fI\%zebooka\fP) Git.detached broken in 2017.7.0 (refs: \fI\%#42399\fP)
  183827. .IP \(bu 2
  183828. \fBISSUE\fP \fI\%#38878\fP: (\fI\%tomlaredo\fP) [Naming consistency] git.latest "rev" option VS git.detached "ref" option (refs: \fI\%#38898\fP)
  183829. .IP \(bu 2
  183830. \fBPR\fP \fI\%#42471\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42399\fP to 2017.7.1
  183831. @ \fI2017\-07\-24 15:09:50 UTC\fP
  183832. .INDENT 2.0
  183833. .IP \(bu 2
  183834. \fBPR\fP \fI\%#42399\fP: (\fI\%rallytime\fP) Update old "ref" references to "rev" in git.detached state (refs: \fI\%#42471\fP)
  183835. .IP \(bu 2
  183836. \fBPR\fP \fI\%#38898\fP: (\fI\%terminalmage\fP) git.detached: rename ref to rev for consistency (refs: \fI\%#42399\fP)
  183837. .IP \(bu 2
  183838. 3d1a2d3f9f Merge pull request \fI\%#42471\fP from rallytime/bp\-42399
  183839. .IP \(bu 2
  183840. b9a4669e5a Update old "ref" references to "rev" in git.detached state
  183841. .UNINDENT
  183842. .IP \(bu 2
  183843. \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)
  183844. .IP \(bu 2
  183845. \fBPR\fP \fI\%#42470\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42031\fP to 2017.7.1
  183846. @ \fI2017\-07\-24 15:09:30 UTC\fP
  183847. .INDENT 2.0
  183848. .IP \(bu 2
  183849. \fBPR\fP \fI\%#42031\fP: (\fI\%skizunov\fP) Fix: Reactor emits critical error (refs: \fI\%#42470\fP)
  183850. .IP \(bu 2
  183851. 09766bccbc Merge pull request \fI\%#42470\fP from rallytime/bp\-42031
  183852. .IP \(bu 2
  183853. 0a0c6287a4 Fix: Reactor emits critical error
  183854. .UNINDENT
  183855. .IP \(bu 2
  183856. \fBISSUE\fP \fI\%#41949\fP: (\fI\%jrporcaro\fP) Event returner doesn\(aqt work with Windows Master (refs: \fI\%#42027\fP)
  183857. .IP \(bu 2
  183858. \fBPR\fP \fI\%#42469\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42027\fP to 2017.7.1
  183859. @ \fI2017\-07\-21 22:41:02 UTC\fP
  183860. .INDENT 2.0
  183861. .IP \(bu 2
  183862. \fBPR\fP \fI\%#42027\fP: (\fI\%gtmanfred\fP) import salt.minion for EventReturn for Windows (refs: \fI\%#42469\fP)
  183863. .IP \(bu 2
  183864. d7b172a15b Merge pull request \fI\%#42469\fP from rallytime/bp\-42027
  183865. .IP \(bu 2
  183866. ed612b4ee7 import salt.minion for EventReturn for Windows
  183867. .UNINDENT
  183868. .IP \(bu 2
  183869. \fBPR\fP \fI\%#42466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42452\fP to 2017.7.1
  183870. @ \fI2017\-07\-21 19:41:24 UTC\fP
  183871. .INDENT 2.0
  183872. .IP \(bu 2
  183873. \fBPR\fP \fI\%#42452\fP: (\fI\%Ch3LL\fP) update windows urls to new py2/py3 naming scheme (refs: \fI\%#42466\fP)
  183874. .IP \(bu 2
  183875. 8777b1a825 Merge pull request \fI\%#42466\fP from rallytime/bp\-42452
  183876. .IP \(bu 2
  183877. c10196f68c update windows urls to new py2/py3 naming scheme
  183878. .UNINDENT
  183879. .IP \(bu 2
  183880. \fBPR\fP \fI\%#42439\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42409\fP to 2017.7.1
  183881. @ \fI2017\-07\-21 17:38:10 UTC\fP
  183882. .INDENT 2.0
  183883. .IP \(bu 2
  183884. \fBPR\fP \fI\%#42409\fP: (\fI\%twangboy\fP) Add Scripts to build Py3 on Mac (refs: \fI\%#42439\fP)
  183885. .IP \(bu 2
  183886. fceaaf41d0 Merge pull request \fI\%#42439\fP from rallytime/bp\-42409
  183887. .IP \(bu 2
  183888. 8176964b41 Remove build and dist, sign pkgs
  183889. .IP \(bu 2
  183890. 2c14d92a07 Fix hard coded pip path
  183891. .IP \(bu 2
  183892. 82fdd7c2e1 Add support for Py3
  183893. .IP \(bu 2
  183894. 2478447246 Update Python and other reqs
  183895. .UNINDENT
  183896. .IP \(bu 2
  183897. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  183898. .IP \(bu 2
  183899. \fBPR\fP \fI\%#42441\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42433\fP to 2017.7.1
  183900. @ \fI2017\-07\-21 17:37:01 UTC\fP
  183901. .INDENT 2.0
  183902. .IP \(bu 2
  183903. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42441\fP)
  183904. .IP \(bu 2
  183905. 660400560b Merge pull request \fI\%#42441\fP from rallytime/bp\-42433
  183906. .IP \(bu 2
  183907. 17f347123a Only force saltenv/pillarenv to be a string when not None
  183908. .UNINDENT
  183909. .UNINDENT
  183910. .SS Salt 2017.7.2 Release Notes
  183911. .sp
  183912. Version 2017.7.2 is a bugfix release for 2017.7.0\&.
  183913. .SS Statistics
  183914. .INDENT 0.0
  183915. .IP \(bu 2
  183916. Total Merges: \fB329\fP
  183917. .IP \(bu 2
  183918. Total Issue References: \fB73\fP
  183919. .IP \(bu 2
  183920. Total PR References: \fB236\fP
  183921. .IP \(bu 2
  183922. 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)
  183923. .UNINDENT
  183924. .SS Security Fix
  183925. .sp
  183926. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  183927. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  183928. a master via a crafted minion ID. Credit for discovering the security flaw goes
  183929. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  183930. .sp
  183931. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  183932. authentication request. Credit for discovering the security flaw goes to:
  183933. Julian Brost (\fI\%julian@0x4a42.net\fP)
  183934. .SS Changelog for v2017.7.1..v2017.7.2
  183935. .sp
  183936. \fIGenerated at: 2018\-05\-26 21:06:12 UTC\fP
  183937. .INDENT 0.0
  183938. .IP \(bu 2
  183939. \fBPR\fP \fI\%#43868\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43847\fP to 2017.7.2
  183940. @ \fI2017\-10\-03 12:00:52 UTC\fP
  183941. .INDENT 2.0
  183942. .IP \(bu 2
  183943. \fBPR\fP \fI\%#43847\fP: (\fI\%cachedout\fP) Fix to module.run (refs: \fI\%#43868\fP)
  183944. .IP \(bu 2
  183945. dd0b3388cf Merge pull request \fI\%#43868\fP from rallytime/bp\-43847
  183946. .IP \(bu 2
  183947. e21d8e9583 Use six.iterkeys() instead of dict.keys()
  183948. .IP \(bu 2
  183949. c297ae5557 Improve failures for module.run states
  183950. .IP \(bu 2
  183951. 782e67c199 Lint
  183952. .IP \(bu 2
  183953. a6c2d78518 Fix typo found by @s0undt3ch
  183954. .IP \(bu 2
  183955. 0cac15e502 Fix to module.run [WIP]
  183956. .UNINDENT
  183957. .IP \(bu 2
  183958. \fBPR\fP \fI\%#43871\fP: (\fI\%rallytime\fP) Add updated release notes to 2017.7.2 branch
  183959. @ \fI2017\-10\-03 11:59:29 UTC\fP
  183960. .INDENT 2.0
  183961. .IP \(bu 2
  183962. 47af4ae38a Merge pull request \fI\%#43871\fP from rallytime/update\-release\-notes
  183963. .IP \(bu 2
  183964. 2337904656 Add updated release notes to 2017.7.2 branch
  183965. .UNINDENT
  183966. .IP \(bu 2
  183967. \fBPR\fP \fI\%#43756\fP: (\fI\%gtmanfred\fP) split build and install for pkg osx
  183968. @ \fI2017\-09\-26 20:51:28 UTC\fP
  183969. .INDENT 2.0
  183970. .IP \(bu 2
  183971. 88414d5f73 Merge pull request \fI\%#43756\fP from gtmanfred/2017.7.2
  183972. .IP \(bu 2
  183973. f7df41fa94 split build and install for pkg osx
  183974. .UNINDENT
  183975. .IP \(bu 2
  183976. \fBISSUE\fP \fI\%#43077\fP: (\fI\%Manoj2087\fP) Issue with deleting key via wheel (refs: \fI\%#43330\fP)
  183977. .IP \(bu 2
  183978. \fBPR\fP \fI\%#43585\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43330\fP to 2017.7.2
  183979. @ \fI2017\-09\-19 17:33:34 UTC\fP
  183980. .INDENT 2.0
  183981. .IP \(bu 2
  183982. \fBPR\fP \fI\%#43330\fP: (\fI\%terminalmage\fP) Fix reactor regression + unify reactor config schema (refs: \fI\%#43585\fP)
  183983. .IP \(bu 2
  183984. 89f629233f Merge pull request \fI\%#43585\fP from rallytime/bp\-43330
  183985. .IP \(bu 2
  183986. c4f693bae8 Merge branch \(aq2017.7.2\(aq into bp\-43330
  183987. .UNINDENT
  183988. .IP \(bu 2
  183989. \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)
  183990. .IP \(bu 2
  183991. \fBPR\fP \fI\%#43586\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43526\fP to 2017.7.2
  183992. @ \fI2017\-09\-19 15:36:27 UTC\fP
  183993. .INDENT 2.0
  183994. .IP \(bu 2
  183995. \fBPR\fP \fI\%#43526\fP: (\fI\%DmitryKuzmenko\fP) Forward events to all masters syndic connected to (refs: \fI\%#43586\fP)
  183996. .IP \(bu 2
  183997. abb7fe4422 Merge pull request \fI\%#43586\fP from rallytime/bp\-43526
  183998. .IP \(bu 2
  183999. e076e9b634 Forward events to all masters syndic connected to.
  184000. .IP \(bu 2
  184001. 7abd07fa07 Simplify client logic
  184002. .IP \(bu 2
  184003. b5f10696c2 Improve the reactor documentation
  184004. .IP \(bu 2
  184005. 7a2f12b96a Include a better example for reactor in master conf file
  184006. .IP \(bu 2
  184007. 531cac610e Rewrite the reactor unit tests
  184008. .IP \(bu 2
  184009. 2a35ab7f39 Unify reactor configuration, fix caller reactors
  184010. .IP \(bu 2
  184011. 4afb179bad Un\-deprecate passing kwargs outside of \(aqkwarg\(aq param
  184012. .UNINDENT
  184013. .IP \(bu 2
  184014. \fBPR\fP \fI\%#43551\fP: (\fI\%twangboy\fP) Fix preinstall script on OSX for 2017.7.2
  184015. @ \fI2017\-09\-18 18:35:35 UTC\fP
  184016. .INDENT 2.0
  184017. .IP \(bu 2
  184018. 3d3b09302d Merge pull request \fI\%#43551\fP from twangboy/osx_fix_preinstall_2017.7.2
  184019. .IP \(bu 2
  184020. c3d9fb63f0 Merge branch \(aq2017.7.2\(aq into osx_fix_preinstall_2017.7.2
  184021. .UNINDENT
  184022. .IP \(bu 2
  184023. \fBPR\fP \fI\%#43509\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43333\fP to 2017.7.2
  184024. @ \fI2017\-09\-15 21:21:40 UTC\fP
  184025. .INDENT 2.0
  184026. .IP \(bu 2
  184027. \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)
  184028. .IP \(bu 2
  184029. 24691da888 Merge pull request \fI\%#43509\fP from rallytime/bp\-43333\-2017.7.2
  184030. .IP \(bu 2
  184031. b3dbafb035 Update doco
  184032. .IP \(bu 2
  184033. 5cdcdbf428 Update win_pkg.py
  184034. .IP \(bu 2
  184035. c3e16661c3 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  184036. .IP \(bu 2
  184037. f33395f1ee Fix logic in \fI/etc/paths.d/salt\fP detection
  184038. .UNINDENT
  184039. .IP \(bu 2
  184040. \fBPR\fP \fI\%#43440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43421\fP to 2017.7.2
  184041. @ \fI2017\-09\-11 20:59:53 UTC\fP
  184042. .INDENT 2.0
  184043. .IP \(bu 2
  184044. \fBPR\fP \fI\%#43421\fP: (\fI\%gtmanfred\fP) Revert "Reduce fileclient.get_file latency by merging _file_find and … (refs: \fI\%#43440\fP)
  184045. .IP \(bu 2
  184046. 8964cacbf8 Merge pull request \fI\%#43440\fP from rallytime/bp\-43421
  184047. .IP \(bu 2
  184048. ea6e661755 Revert "Reduce fileclient.get_file latency by merging _file_find and _file_hash"
  184049. .UNINDENT
  184050. .IP \(bu 2
  184051. \fBPR\fP \fI\%#43377\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43193\fP to 2017.7.2
  184052. @ \fI2017\-09\-11 15:32:23 UTC\fP
  184053. .INDENT 2.0
  184054. .IP \(bu 2
  184055. \fBPR\fP \fI\%#43193\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43377\fP)
  184056. .IP \(bu 2
  184057. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43193\fP)
  184058. .IP \(bu 2
  184059. 7fda186b18 Merge pull request \fI\%#43377\fP from rallytime/bp\-43193
  184060. .IP \(bu 2
  184061. 842b07fd25 Prevent spurious "Template does not exist" error
  184062. .UNINDENT
  184063. .IP \(bu 2
  184064. \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)
  184065. .IP \(bu 2
  184066. \fBPR\fP \fI\%#43315\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43283\fP to 2017.7.2
  184067. @ \fI2017\-09\-05 20:04:25 UTC\fP
  184068. .INDENT 2.0
  184069. .IP \(bu 2
  184070. \fBPR\fP \fI\%#43283\fP: (\fI\%DmitryKuzmenko\fP) Fix ldap token groups auth. (refs: \fI\%#43315\fP)
  184071. .IP \(bu 2
  184072. 85dba1e898 Merge pull request \fI\%#43315\fP from rallytime/bp\-43283
  184073. .IP \(bu 2
  184074. f29f5b0cce Fix for tests: don\(aqt require \(aqgroups\(aq in the eauth token.
  184075. .IP \(bu 2
  184076. 56938d5bf2 Fix ldap token groups auth.
  184077. .UNINDENT
  184078. .IP \(bu 2
  184079. \fBISSUE\fP \fI\%#43259\fP: (\fI\%mahesh21\fP) NameError: global name \(aq__opts__\(aq is not defined (refs: \fI\%#43266\fP)
  184080. .IP \(bu 2
  184081. \fBPR\fP \fI\%#43266\fP: (\fI\%gtmanfred\fP) switch virtualbox cloud driver to use __utils__
  184082. @ \fI2017\-08\-30 18:36:20 UTC\fP
  184083. .INDENT 2.0
  184084. .IP \(bu 2
  184085. 26ff8088cb Merge pull request \fI\%#43266\fP from gtmanfred/virtualbox
  184086. .IP \(bu 2
  184087. 382bf92de7 switch virtualbox cloud driver to use __utils__
  184088. .UNINDENT
  184089. .IP \(bu 2
  184090. \fBISSUE\fP \fI\%#42936\fP: (\fI\%Mapel88\fP) bug in win_iis module & state \- container_setting (refs: \fI\%#43073\fP)
  184091. .IP \(bu 2
  184092. \fBPR\fP \fI\%#43073\fP: (\fI\%Mapel88\fP) Fix bug \fI\%#42936\fP \- win_iis module container settings
  184093. @ \fI2017\-08\-30 18:34:37 UTC\fP
  184094. .INDENT 2.0
  184095. .IP \(bu 2
  184096. ee209b144c Merge pull request \fI\%#43073\fP from Mapel88/patch\-2
  184097. .IP \(bu 2
  184098. b1a3d15b28 Remove trailing whitespace for linter
  184099. .IP \(bu 2
  184100. 25c8190e48 Fix pylint errors
  184101. .IP \(bu 2
  184102. 1eba8c4b8e Fix pylint errors
  184103. .IP \(bu 2
  184104. 290d7b54af Fix plint errors
  184105. .IP \(bu 2
  184106. f4f32421ab Fix plint errors
  184107. .IP \(bu 2
  184108. ec20e9a19a Fix bug \fI\%#43110\fP \- win_iis module
  184109. .IP \(bu 2
  184110. 009ef6686b Fix dictionary keys from string to int
  184111. .IP \(bu 2
  184112. dc793f9a05 Fix bug \fI\%#42936\fP \- win_iis state
  184113. .IP \(bu 2
  184114. 13404a47b5 Fix bug \fI\%#42936\fP \- win_iis module
  184115. .UNINDENT
  184116. .IP \(bu 2
  184117. \fBPR\fP \fI\%#43254\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_inspect_collector\fP on Windows
  184118. @ \fI2017\-08\-30 15:46:07 UTC\fP
  184119. .INDENT 2.0
  184120. .IP \(bu 2
  184121. ec1bedc646 Merge pull request \fI\%#43254\fP from twangboy/win_fix_test_inspect_collector
  184122. .IP \(bu 2
  184123. b401340e6c Fix \fIunit.modules.test_inspect_collector\fP on Windows
  184124. .UNINDENT
  184125. .IP \(bu 2
  184126. \fBISSUE\fP \fI\%#43241\fP: (\fI\%mirceaulinic\fP) Error whilst collecting napalm grains (refs: \fI\%#43255\fP)
  184127. .IP \(bu 2
  184128. \fBPR\fP \fI\%#43255\fP: (\fI\%gtmanfred\fP) always return a dict object
  184129. @ \fI2017\-08\-30 14:47:15 UTC\fP
  184130. .INDENT 2.0
  184131. .IP \(bu 2
  184132. 1fc7307735 Merge pull request \fI\%#43255\fP from gtmanfred/2017.7
  184133. .IP \(bu 2
  184134. 83b0bab34b opt_args needs to be a dict
  184135. .UNINDENT
  184136. .IP \(bu 2
  184137. \fBPR\fP \fI\%#43229\fP: (\fI\%twangboy\fP) Bring changes from \fI\%#43228\fP to 2017.7
  184138. @ \fI2017\-08\-30 14:26:55 UTC\fP
  184139. .INDENT 2.0
  184140. .IP \(bu 2
  184141. \fBPR\fP \fI\%#43228\fP: (\fI\%twangboy\fP) Win fix pkg.install (refs: \fI\%#43229\fP)
  184142. .IP \(bu 2
  184143. fa904ee225 Merge pull request \fI\%#43229\fP from twangboy/win_fix_pkg.install\-2017.7
  184144. .IP \(bu 2
  184145. e007a1c26e Fix regex, add \fI\&.\fP
  184146. .IP \(bu 2
  184147. 23ec47c74c Add _ to regex search
  184148. .IP \(bu 2
  184149. b1788b1e5f Bring changes from \fI\%#43228\fP to 2017.7
  184150. .UNINDENT
  184151. .IP \(bu 2
  184152. \fBPR\fP \fI\%#43251\fP: (\fI\%twangboy\fP) Skips \fIunit.modules.test_groupadd\fP on Windows
  184153. @ \fI2017\-08\-30 13:56:36 UTC\fP
  184154. .INDENT 2.0
  184155. .IP \(bu 2
  184156. 25666f88f7 Merge pull request \fI\%#43251\fP from twangboy/win_skip_test_groupadd
  184157. .IP \(bu 2
  184158. 5185071d5a Skips \fIunit.modules.test_groupadd\fP on Windows
  184159. .UNINDENT
  184160. .IP \(bu 2
  184161. \fBPR\fP \fI\%#43256\fP: (\fI\%twangboy\fP) Skip mac tests for user and group
  184162. @ \fI2017\-08\-30 13:18:13 UTC\fP
  184163. .INDENT 2.0
  184164. .IP \(bu 2
  184165. a8e09629b2 Merge pull request \fI\%#43256\fP from twangboy/win_skip_mac_tests
  184166. .IP \(bu 2
  184167. cec627a60b Skip mac tests for user and group
  184168. .UNINDENT
  184169. .IP \(bu 2
  184170. \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)
  184171. .IP \(bu 2
  184172. \fBPR\fP \fI\%#43226\fP: (\fI\%lomeroe\fP) Fixes for issues in PR \fI\%#43166\fP
  184173. @ \fI2017\-08\-29 19:05:39 UTC\fP
  184174. .INDENT 2.0
  184175. .IP \(bu 2
  184176. \fBPR\fP \fI\%#43166\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43226\fP)
  184177. .IP \(bu 2
  184178. \fBPR\fP \fI\%#43156\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43166\fP)
  184179. .IP \(bu 2
  184180. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43166\fP, \fI\%#43156\fP)
  184181. .IP \(bu 2
  184182. \fBPR\fP \fI\%#39773\fP: (\fI\%twangboy\fP) Make win_file use the win_dacl salt util (refs: \fI\%#43226\fP)
  184183. .IP \(bu 2
  184184. ac2189c870 Merge pull request \fI\%#43226\fP from lomeroe/fix_43166
  184185. .IP \(bu 2
  184186. 0c424dc4a3 Merge branch \(aq2017.7\(aq into fix_43166
  184187. .IP \(bu 2
  184188. 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)
  184189. .UNINDENT
  184190. .IP \(bu 2
  184191. \fBPR\fP \fI\%#43227\fP: (\fI\%twangboy\fP) Fix \fIunit.fileserver.test_gitfs\fP for Windows
  184192. @ \fI2017\-08\-29 19:03:36 UTC\fP
  184193. .INDENT 2.0
  184194. .IP \(bu 2
  184195. 6199fb46dc Merge pull request \fI\%#43227\fP from twangboy/win_fix_unit_test_gitfs
  184196. .IP \(bu 2
  184197. c956d24283 Fix is_windows detection when USERNAME missing
  184198. .IP \(bu 2
  184199. 869e8cc603 Fix \fIunit.fileserver.test_gitfs\fP for Windows
  184200. .UNINDENT
  184201. .IP \(bu 2
  184202. \fBPR\fP \fI\%#43217\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184203. @ \fI2017\-08\-28 16:36:28 UTC\fP
  184204. .INDENT 2.0
  184205. .IP \(bu 2
  184206. 6adc03e4b4 Merge pull request \fI\%#43217\fP from rallytime/merge\-2017.7
  184207. .IP \(bu 2
  184208. 3911df2f4b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184209. .IP \(bu 2
  184210. 5308c27f9f Merge pull request \fI\%#43202\fP from garethgreenaway/42642_2016_11_augeas_module_revert_fix
  184211. .INDENT 2.0
  184212. .IP \(bu 2
  184213. ef7e93eb3f Reverting this change due to it breaking other uses.
  184214. .UNINDENT
  184215. .IP \(bu 2
  184216. f16b7246e4 Merge pull request \fI\%#43103\fP from aogier/43101\-genesis\-bootstrap
  184217. .INDENT 2.0
  184218. .IP \(bu 2
  184219. db94f3bb1c better formatting
  184220. .IP \(bu 2
  184221. e5cc667762 tests: fix a leftover and simplify some parts
  184222. .IP \(bu 2
  184223. 13e5997457 lint
  184224. .IP \(bu 2
  184225. 216ced69e5 allow comma\-separated pkgs lists, quote args, test deb behaviour
  184226. .IP \(bu 2
  184227. d8612ae006 fix debootstrap and enhance packages selection/deletion via cmdline
  184228. .UNINDENT
  184229. .IP \(bu 2
  184230. 4863771428 Merge pull request \fI\%#42663\fP from StreetHawkInc/fix_git_tag_check
  184231. .INDENT 2.0
  184232. .IP \(bu 2
  184233. 2b5af5b59d Remove refs/tags prefix from remote tags
  184234. .IP \(bu 2
  184235. 3f2e96e561 Convert set to list for serializer
  184236. .IP \(bu 2
  184237. 2728e5d977 Only include new tags in changes
  184238. .IP \(bu 2
  184239. 4b1df2f223 Exclude annotated tags from checks
  184240. .IP \(bu 2
  184241. 389c037285 Check remote tags before deciding to do a fetch \fI\%#42329\fP
  184242. .UNINDENT
  184243. .UNINDENT
  184244. .IP \(bu 2
  184245. \fBPR\fP \fI\%#43201\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184246. @ \fI2017\-08\-25 22:56:46 UTC\fP
  184247. .INDENT 2.0
  184248. .IP \(bu 2
  184249. a563a9422a Merge pull request \fI\%#43201\fP from rallytime/merge\-2017.7
  184250. .IP \(bu 2
  184251. d40eba6b37 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184252. .INDENT 2.0
  184253. .IP \(bu 2
  184254. 4193e7f0a2 Merge pull request \fI\%#43199\fP from corywright/disk\-format\-alias
  184255. .INDENT 2.0
  184256. .IP \(bu 2
  184257. f00d3a9ddc Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  184258. .UNINDENT
  184259. .IP \(bu 2
  184260. 5471f9fe0c Merge pull request \fI\%#43196\fP from gtmanfred/2016.11
  184261. .INDENT 2.0
  184262. .IP \(bu 2
  184263. ccd2241777 Pin request install to version
  184264. .UNINDENT
  184265. .IP \(bu 2
  184266. ace2715c60 Merge pull request \fI\%#43178\fP from terminalmage/issue43143
  184267. .INDENT 2.0
  184268. .IP \(bu 2
  184269. 2640833400 git.detached: Fix traceback when rev is a SHA and is not present locally
  184270. .UNINDENT
  184271. .IP \(bu 2
  184272. 12e9507b9e Merge pull request \fI\%#43179\fP from terminalmage/old\-deprecation
  184273. .INDENT 2.0
  184274. .IP \(bu 2
  184275. 3adf8ad04b Fix missed deprecation
  184276. .UNINDENT
  184277. .IP \(bu 2
  184278. b595440d90 Merge pull request \fI\%#43171\fP from terminalmage/salt\-utils\-warning
  184279. .INDENT 2.0
  184280. .IP \(bu 2
  184281. 7b5943a31a Add warning about adding new functions to salt/utils/__init__.py
  184282. .UNINDENT
  184283. .IP \(bu 2
  184284. 4f273cac4f Merge pull request \fI\%#43173\fP from Ch3LL/add_branch_docs
  184285. .INDENT 2.0
  184286. .IP \(bu 2
  184287. 1b24244bd3 Add New Release Branch Strategy to Contribution Docs
  184288. .UNINDENT
  184289. .UNINDENT
  184290. .UNINDENT
  184291. .IP \(bu 2
  184292. \fBPR\fP \fI\%#42997\fP: (\fI\%twangboy\fP) Fix \fIunit.test_test_module_names\fP for Windows
  184293. @ \fI2017\-08\-25 21:19:11 UTC\fP
  184294. .INDENT 2.0
  184295. .IP \(bu 2
  184296. ce04ab4286 Merge pull request \fI\%#42997\fP from twangboy/win_fix_test_module_names
  184297. .IP \(bu 2
  184298. 2722e9521d Use os.path.join to create paths
  184299. .UNINDENT
  184300. .IP \(bu 2
  184301. \fBISSUE\fP \fI\%#26995\fP: (\fI\%jbouse\fP) Issue with artifactory.downloaded and snapshot artifacts (refs: \fI\%#43006\fP)
  184302. .IP \(bu 2
  184303. \fBPR\fP \fI\%#43006\fP: (\fI\%SuperPommeDeTerre\fP) Try to fix \fI\%#26995\fP
  184304. @ \fI2017\-08\-25 21:16:07 UTC\fP
  184305. .INDENT 2.0
  184306. .IP \(bu 2
  184307. c0279e491e Merge pull request \fI\%#43006\fP from SuperPommeDeTerre/SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  184308. .IP \(bu 2
  184309. 30dd6f5d12 Merge remote\-tracking branch \(aqupstream/2017.7\(aq into SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  184310. .IP \(bu 2
  184311. f42ae9b8cd Merge branch \(aqSuperPommeDeTerre\-patch\-#26995\(aq of \fI\%https://github.com/SuperPommeDeTerre/salt\fP into SuperPommeDeTerre\-patch\-#26995
  184312. .INDENT 2.0
  184313. .IP \(bu 2
  184314. 50ee3d5682 Merge remote\-tracking branch \(aqremotes/origin/2017.7\(aq into SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  184315. .IP \(bu 2
  184316. 0b666e100b Fix typo.
  184317. .IP \(bu 2
  184318. 1b8729b3e7 Fix for \fI\%#26995\fP
  184319. .UNINDENT
  184320. .IP \(bu 2
  184321. e314102978 Fix typo.
  184322. .IP \(bu 2
  184323. db11e1985b Fix for \fI\%#26995\fP
  184324. .UNINDENT
  184325. .IP \(bu 2
  184326. \fBISSUE\fP \fI\%#43162\fP: (\fI\%MorphBonehunter\fP) docker_container.running interference with restart_policy (refs: \fI\%#43184\fP)
  184327. .IP \(bu 2
  184328. \fBPR\fP \fI\%#43184\fP: (\fI\%terminalmage\fP) docker.compare_container: Perform boolean comparison when one side\(aqs value is null/None
  184329. @ \fI2017\-08\-25 18:42:11 UTC\fP
  184330. .INDENT 2.0
  184331. .IP \(bu 2
  184332. b6c5314fe9 Merge pull request \fI\%#43184\fP from terminalmage/issue43162
  184333. .IP \(bu 2
  184334. 081f42ad71 docker.compare_container: Perform boolean comparison when one side\(aqs value is null/None
  184335. .UNINDENT
  184336. .IP \(bu 2
  184337. \fBPR\fP \fI\%#43165\fP: (\fI\%mirceaulinic\fP) Improve napalm state output in debug mode
  184338. @ \fI2017\-08\-24 23:05:37 UTC\fP
  184339. .INDENT 2.0
  184340. .IP \(bu 2
  184341. 688125bb4f Merge pull request \fI\%#43165\fP from cloudflare/fix\-napalm\-ret
  184342. .IP \(bu 2
  184343. c10717dc89 Lint and fix
  184344. .IP \(bu 2
  184345. 1cd33cbaa9 Simplify the loaded_ret logic
  184346. .IP \(bu 2
  184347. 0bbea6b04c Document the new compliance_report arg
  184348. .IP \(bu 2
  184349. 3a906109bd Include compliance reports
  184350. .IP \(bu 2
  184351. 3634055e34 Improve napalm state output in debug mode
  184352. .UNINDENT
  184353. .IP \(bu 2
  184354. \fBPR\fP \fI\%#43155\fP: (\fI\%terminalmage\fP) Resolve image ID during container comparison
  184355. @ \fI2017\-08\-24 22:09:47 UTC\fP
  184356. .INDENT 2.0
  184357. .IP \(bu 2
  184358. a6a327b1e5 Merge pull request \fI\%#43155\fP from terminalmage/issue43001
  184359. .IP \(bu 2
  184360. 0186835ebf Fix docstring in test
  184361. .IP \(bu 2
  184362. a0bb654e46 Fixing lint issues
  184363. .IP \(bu 2
  184364. d5b2a0be68 Resolve image ID during container comparison
  184365. .UNINDENT
  184366. .IP \(bu 2
  184367. \fBPR\fP \fI\%#43170\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184368. @ \fI2017\-08\-24 19:22:26 UTC\fP
  184369. .INDENT 2.0
  184370. .IP \(bu 2
  184371. c071fd44c8 Merge pull request \fI\%#43170\fP from rallytime/merge\-2017.7
  184372. .IP \(bu 2
  184373. 3daad5a3a2 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184374. .INDENT 2.0
  184375. .IP \(bu 2
  184376. 669b376abf Merge pull request \fI\%#43151\fP from ushmodin/2016.11
  184377. .INDENT 2.0
  184378. .IP \(bu 2
  184379. c5841e2ade state.sls hangs on file.recurse with clean: True on windows
  184380. .UNINDENT
  184381. .UNINDENT
  184382. .UNINDENT
  184383. .IP \(bu 2
  184384. \fBISSUE\fP \fI\%#43040\fP: (\fI\%darcoli\fP) gitFS ext_pillar with branch name __env__ results in empty pillars (refs: \fI\%#43041\fP)
  184385. .IP \(bu 2
  184386. \fBPR\fP \fI\%#43168\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43041\fP to 2017.7
  184387. @ \fI2017\-08\-24 19:07:23 UTC\fP
  184388. .INDENT 2.0
  184389. .IP \(bu 2
  184390. \fBPR\fP \fI\%#43041\fP: (\fI\%darcoli\fP) Do not try to match pillarenv with __env__ (refs: \fI\%#43168\fP)
  184391. .IP \(bu 2
  184392. 034c325a09 Merge pull request \fI\%#43168\fP from rallytime/bp\-43041
  184393. .IP \(bu 2
  184394. d010b74b87 Do not try to match pillarenv with __env__
  184395. .UNINDENT
  184396. .IP \(bu 2
  184397. \fBPR\fP \fI\%#43172\fP: (\fI\%rallytime\fP) Move new utils/__init__.py funcs to utils.files.py
  184398. @ \fI2017\-08\-24 19:05:30 UTC\fP
  184399. .INDENT 2.0
  184400. .IP \(bu 2
  184401. \fBPR\fP \fI\%#43056\fP: (\fI\%damon\-atkins\fP) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) (refs: \fI\%#43172\fP)
  184402. .IP \(bu 2
  184403. d48938e6b4 Merge pull request \fI\%#43172\fP from rallytime/move\-utils\-funcs
  184404. .IP \(bu 2
  184405. 5385c7901e Move new utils/__init__.py funcs to utils.files.py
  184406. .UNINDENT
  184407. .IP \(bu 2
  184408. \fBISSUE\fP \fI\%#43043\fP: (\fI\%pabloh007\fP) docker.save and docker.load problem (refs: \fI\%#43061\fP)
  184409. .IP \(bu 2
  184410. \fBPR\fP \fI\%#43061\fP: (\fI\%pabloh007\fP) Have docker.save use the image name when valid if not use image id, i…
  184411. @ \fI2017\-08\-24 16:32:02 UTC\fP
  184412. .INDENT 2.0
  184413. .IP \(bu 2
  184414. e60f586442 Merge pull request \fI\%#43061\fP from pabloh007/fix\-save\-image\-name\-id
  184415. .IP \(bu 2
  184416. 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
  184417. .UNINDENT
  184418. .IP \(bu 2
  184419. \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)
  184420. .IP \(bu 2
  184421. \fBPR\fP \fI\%#43166\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43226\fP)
  184422. @ \fI2017\-08\-24 15:01:23 UTC\fP
  184423. .INDENT 2.0
  184424. .IP \(bu 2
  184425. \fBPR\fP \fI\%#43156\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43166\fP)
  184426. .IP \(bu 2
  184427. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43166\fP, \fI\%#43156\fP)
  184428. .IP \(bu 2
  184429. 9da57543f8 Merge pull request \fI\%#43166\fP from lomeroe/bp\-43116\-2017.7
  184430. .IP \(bu 2
  184431. af181b3257 correct fopen calls from salt.utils for 2017.7
  184432. .IP \(bu 2
  184433. f74480f11e lint fix
  184434. .IP \(bu 2
  184435. ecd446fd55 track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  184436. .IP \(bu 2
  184437. 9f3047c420 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  184438. .UNINDENT
  184439. .IP \(bu 2
  184440. \fBPR\fP \fI\%#43056\fP: (\fI\%damon\-atkins\fP) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) (refs: \fI\%#43172\fP)
  184441. @ \fI2017\-08\-23 17:35:02 UTC\fP
  184442. .INDENT 2.0
  184443. .IP \(bu 2
  184444. 44b3caead1 Merge pull request \fI\%#43056\fP from damon\-atkins/2017.7
  184445. .IP \(bu 2
  184446. 08ded1546e more lint
  184447. .IP \(bu 2
  184448. 6e9c0957fb fix typo
  184449. .IP \(bu 2
  184450. ee41171c9f lint fixes
  184451. .IP \(bu 2
  184452. 8c864f02c7 fix missing imports
  184453. .IP \(bu 2
  184454. 964cebd954 safe_filename_leaf(file_basename) and safe_filepath(file_path_name)
  184455. .UNINDENT
  184456. .IP \(bu 2
  184457. \fBPR\fP \fI\%#43146\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184458. @ \fI2017\-08\-23 16:56:10 UTC\fP
  184459. .INDENT 2.0
  184460. .IP \(bu 2
  184461. 6ca9131a23 Merge pull request \fI\%#43146\fP from rallytime/merge\-2017.7
  184462. .IP \(bu 2
  184463. bcbe180fbc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184464. .INDENT 2.0
  184465. .IP \(bu 2
  184466. ae9d2b7985 Merge pull request \fI\%#42986\fP from renner/systemd\-notify
  184467. .INDENT 2.0
  184468. .IP \(bu 2
  184469. 79c53f3f81 Fallback to systemd_notify_call() in case of socket.error
  184470. .IP \(bu 2
  184471. f1765472dd Notify systemd synchronously (via NOTIFY_SOCKET)
  184472. .UNINDENT
  184473. .IP \(bu 2
  184474. b420fbe618 Merge pull request \fI\%#43037\fP from mcarlton00/fix\-bhyve\-grains
  184475. .INDENT 2.0
  184476. .IP \(bu 2
  184477. 73315f0cf0 Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  184478. .UNINDENT
  184479. .IP \(bu 2
  184480. 0a86f2d884 Merge pull request \fI\%#43100\fP from vutny/doc\-add\-missing\-utils\-ext
  184481. .INDENT 2.0
  184482. .IP \(bu 2
  184483. af743ff6c3 [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  184484. .UNINDENT
  184485. .UNINDENT
  184486. .UNINDENT
  184487. .IP \(bu 2
  184488. \fBPR\fP \fI\%#43123\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_which\fP for Windows
  184489. @ \fI2017\-08\-23 16:01:39 UTC\fP
  184490. .INDENT 2.0
  184491. .IP \(bu 2
  184492. 03f652159f Merge pull request \fI\%#43123\fP from twangboy/win_fix_test_which
  184493. .IP \(bu 2
  184494. ed97cff5f6 Fix \fIunit.utils.test_which\fP for Windows
  184495. .UNINDENT
  184496. .IP \(bu 2
  184497. \fBISSUE\fP \fI\%#42505\fP: (\fI\%ikogan\fP) selinux.fcontext_policy_present exception looking for selinux.filetype_id_to_string (refs: \fI\%#43068\fP)
  184498. .IP \(bu 2
  184499. \fBPR\fP \fI\%#43142\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43068\fP to 2017.7
  184500. @ \fI2017\-08\-23 15:56:48 UTC\fP
  184501. .INDENT 2.0
  184502. .IP \(bu 2
  184503. \fBPR\fP \fI\%#43068\fP: (\fI\%ixs\fP) Mark selinux._filetype_id_to_string as public function (refs: \fI\%#43142\fP)
  184504. .IP \(bu 2
  184505. 5a4fc07863 Merge pull request \fI\%#43142\fP from rallytime/bp\-43068
  184506. .IP \(bu 2
  184507. efc1c8c506 Mark selinux._filetype_id_to_string as public function
  184508. .UNINDENT
  184509. .IP \(bu 2
  184510. \fBPR\fP \fI\%#43038\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_url\fP for Windows
  184511. @ \fI2017\-08\-23 13:35:25 UTC\fP
  184512. .INDENT 2.0
  184513. .IP \(bu 2
  184514. 0467a0e3bf Merge pull request \fI\%#43038\fP from twangboy/win_unit_utils_test_url
  184515. .IP \(bu 2
  184516. 7f5ee55f57 Fix \fIunit.utils.test_url\fP for Windows
  184517. .UNINDENT
  184518. .IP \(bu 2
  184519. \fBPR\fP \fI\%#43097\fP: (\fI\%twangboy\fP) Fix \fIgroup.present\fP for Windows
  184520. @ \fI2017\-08\-23 13:19:56 UTC\fP
  184521. .INDENT 2.0
  184522. .IP \(bu 2
  184523. e9ccaa61d2 Merge pull request \fI\%#43097\fP from twangboy/win_fix_group
  184524. .IP \(bu 2
  184525. 43b0360763 Fix lint
  184526. .IP \(bu 2
  184527. 9ffe315d7d Add kwargs
  184528. .IP \(bu 2
  184529. 4f4e34c79f Fix group state for Windows
  184530. .UNINDENT
  184531. .IP \(bu 2
  184532. \fBPR\fP \fI\%#43115\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42067\fP to 2017.7
  184533. @ \fI2017\-08\-22 20:09:52 UTC\fP
  184534. .INDENT 2.0
  184535. .IP \(bu 2
  184536. \fBPR\fP \fI\%#42067\fP: (\fI\%vitaliyf\fP) Removed several uses of name.split(\(aq.\(aq)[0] in SoftLayer driver. (refs: \fI\%#43115\fP)
  184537. .IP \(bu 2
  184538. 8140855627 Merge pull request \fI\%#43115\fP from rallytime/bp\-42067
  184539. .IP \(bu 2
  184540. 8a6ad0a9cf Fixed typo.
  184541. .IP \(bu 2
  184542. 9a5ae2bba1 Removed several uses of name.split(\(aq.\(aq)[0] in SoftLayer driver.
  184543. .UNINDENT
  184544. .IP \(bu 2
  184545. \fBPR\fP \fI\%#42962\fP: (\fI\%twangboy\fP) Fix \fIunit.test_doc test\fP for Windows
  184546. @ \fI2017\-08\-22 18:06:23 UTC\fP
  184547. .INDENT 2.0
  184548. .IP \(bu 2
  184549. 1e1a81036c Merge pull request \fI\%#42962\fP from twangboy/win_unit_test_doc
  184550. .IP \(bu 2
  184551. 201ceae4c4 Fix lint, remove debug statement
  184552. .IP \(bu 2
  184553. 37029c1a16 Fix unit.test_doc test
  184554. .UNINDENT
  184555. .IP \(bu 2
  184556. \fBPR\fP \fI\%#42995\fP: (\fI\%twangboy\fP) Fix malformed requisite for Windows
  184557. @ \fI2017\-08\-22 16:50:01 UTC\fP
  184558. .INDENT 2.0
  184559. .IP \(bu 2
  184560. d347d1cf8f Merge pull request \fI\%#42995\fP from twangboy/win_fix_invalid_requisite
  184561. .IP \(bu 2
  184562. 93390de88b Fix malformed requisite for Windows
  184563. .UNINDENT
  184564. .IP \(bu 2
  184565. \fBPR\fP \fI\%#43108\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42988\fP to 2017.7
  184566. @ \fI2017\-08\-22 16:49:27 UTC\fP
  184567. .INDENT 2.0
  184568. .IP \(bu 2
  184569. \fBPR\fP \fI\%#42988\fP: (\fI\%thusoy\fP) Fix broken negation in iptables (refs: \fI\%#43108\fP)
  184570. .IP \(bu 2
  184571. 1c7992a832 Merge pull request \fI\%#43108\fP from rallytime/bp\-42988
  184572. .IP \(bu 2
  184573. 1a987cb948 Fix broken negation in iptables
  184574. .UNINDENT
  184575. .IP \(bu 2
  184576. \fBPR\fP \fI\%#43107\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184577. @ \fI2017\-08\-22 16:11:25 UTC\fP
  184578. .INDENT 2.0
  184579. .IP \(bu 2
  184580. c6993f4a84 Merge pull request \fI\%#43107\fP from rallytime/merge\-2017.7
  184581. .IP \(bu 2
  184582. 328dd6aa23 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184583. .IP \(bu 2
  184584. e2bf2f448e Merge pull request \fI\%#42985\fP from DSRCorporation/bugs/15171_recursion_limit
  184585. .INDENT 2.0
  184586. .IP \(bu 2
  184587. 651b1bab09 Properly handle \fIprereq\fP having lost requisites.
  184588. .UNINDENT
  184589. .IP \(bu 2
  184590. e51333306c Merge pull request \fI\%#43092\fP from mitodl/2016.11
  184591. .INDENT 2.0
  184592. .IP \(bu 2
  184593. d4b113acdf Fixed issue with silently passing all tests in Testinfra module
  184594. .UNINDENT
  184595. .IP \(bu 2
  184596. 77a443ce8e Merge pull request \fI\%#43060\fP from twangboy/osx_update_pkg_scripts
  184597. .INDENT 2.0
  184598. .IP \(bu 2
  184599. ef8a14cdf9 Remove /opt/salt instead of /opt/salt/bin
  184600. .IP \(bu 2
  184601. 2dd62aa1da Add more information to the description
  184602. .IP \(bu 2
  184603. f44f5b70dc Only stop services if they are running
  184604. .IP \(bu 2
  184605. 3b62bf953c Remove salt from the path
  184606. .IP \(bu 2
  184607. ebdca3a0f5 Update pkg\-scripts
  184608. .UNINDENT
  184609. .IP \(bu 2
  184610. 1b1b6da803 Merge pull request \fI\%#43064\fP from terminalmage/issue42869
  184611. .INDENT 2.0
  184612. .IP \(bu 2
  184613. 093c0c2f77 Fix race condition in git.latest
  184614. .UNINDENT
  184615. .IP \(bu 2
  184616. 96e8e836d1 Merge pull request \fI\%#43054\fP from lorengordon/fix/yumpkg/config\-parser
  184617. .INDENT 2.0
  184618. .IP \(bu 2
  184619. 3b2cb81a72 fix typo in salt.modules.yumpkg
  184620. .IP \(bu 2
  184621. 38add0e4a2 break if leading comments are all fetched
  184622. .IP \(bu 2
  184623. d7f65dc7a7 fix configparser import & log if error was raised
  184624. .IP \(bu 2
  184625. ca1b1bb633 use configparser to parse yum repo file
  184626. .UNINDENT
  184627. .UNINDENT
  184628. .IP \(bu 2
  184629. \fBPR\fP \fI\%#42996\fP: (\fI\%twangboy\fP) Fix \fIunit.test_stateconf\fP for Windows
  184630. @ \fI2017\-08\-21 22:43:58 UTC\fP
  184631. .INDENT 2.0
  184632. .IP \(bu 2
  184633. f9b4976c02 Merge pull request \fI\%#42996\fP from twangboy/win_fix_test_stateconf
  184634. .IP \(bu 2
  184635. 92dc3c0ece Use os.sep for path
  184636. .UNINDENT
  184637. .IP \(bu 2
  184638. \fBPR\fP \fI\%#43024\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_find\fP for Windows
  184639. @ \fI2017\-08\-21 22:38:10 UTC\fP
  184640. .INDENT 2.0
  184641. .IP \(bu 2
  184642. 19fc644c9b Merge pull request \fI\%#43024\fP from twangboy/win_unit_utils_test_find
  184643. .IP \(bu 2
  184644. fbe54c9a33 Remove unused import six (lint)
  184645. .IP \(bu 2
  184646. b04d1a2f18 Fix \fIunit.utils.test_find\fP for Windows
  184647. .UNINDENT
  184648. .IP \(bu 2
  184649. \fBPR\fP \fI\%#43088\fP: (\fI\%gtmanfred\fP) allow docker util to be reloaded with reload_modules
  184650. @ \fI2017\-08\-21 22:14:37 UTC\fP
  184651. .INDENT 2.0
  184652. .IP \(bu 2
  184653. 1a531169fc Merge pull request \fI\%#43088\fP from gtmanfred/2017.7
  184654. .IP \(bu 2
  184655. 373a9a0be4 allow docker util to be reloaded with reload_modules
  184656. .UNINDENT
  184657. .IP \(bu 2
  184658. \fBPR\fP \fI\%#43091\fP: (\fI\%blarghmatey\fP) Fixed issue with silently passing all tests in Testinfra module
  184659. @ \fI2017\-08\-21 22:06:22 UTC\fP
  184660. .INDENT 2.0
  184661. .IP \(bu 2
  184662. 83e528f0b3 Merge pull request \fI\%#43091\fP from mitodl/2017.7
  184663. .IP \(bu 2
  184664. b502560e61 Fixed issue with silently passing all tests in Testinfra module
  184665. .UNINDENT
  184666. .IP \(bu 2
  184667. \fBPR\fP \fI\%#41994\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_cmdmod\fP on Windows
  184668. @ \fI2017\-08\-21 21:53:01 UTC\fP
  184669. .INDENT 2.0
  184670. .IP \(bu 2
  184671. 5482524270 Merge pull request \fI\%#41994\fP from twangboy/win_unit_test_cmdmod
  184672. .IP \(bu 2
  184673. a5f7288ad9 Skip test that uses pwd, not available on Windows
  184674. .UNINDENT
  184675. .IP \(bu 2
  184676. \fBISSUE\fP \fI\%#42873\fP: (\fI\%TheVakman\fP) osquery Data Empty Upon Return / Reporting Not Installed (refs: \fI\%#42933\fP)
  184677. .IP \(bu 2
  184678. \fBPR\fP \fI\%#42933\fP: (\fI\%garethgreenaway\fP) Fixes to osquery module
  184679. @ \fI2017\-08\-21 20:48:31 UTC\fP
  184680. .INDENT 2.0
  184681. .IP \(bu 2
  184682. b33c4abc15 Merge pull request \fI\%#42933\fP from garethgreenaway/42873_2017_7_osquery_fix
  184683. .IP \(bu 2
  184684. 8915e62bd9 Removing an import that is not needed.
  184685. .IP \(bu 2
  184686. 74bc377eb4 Updating the other function that uses cmd.run_all
  184687. .IP \(bu 2
  184688. e6a4619ec1 Better approach without using python_shell=True.
  184689. .IP \(bu 2
  184690. 5ac41f496d When running osquery commands through cmd.run we should pass python_shell=True to ensure everything is formatted right. \fI\%#42873\fP
  184691. .UNINDENT
  184692. .IP \(bu 2
  184693. \fBPR\fP \fI\%#43093\fP: (\fI\%gtmanfred\fP) Fix ec2 list_nodes_full to work on 2017.7
  184694. @ \fI2017\-08\-21 20:21:21 UTC\fP
  184695. .INDENT 2.0
  184696. .IP \(bu 2
  184697. 53c2115769 Merge pull request \fI\%#43093\fP from gtmanfred/ec2
  184698. .IP \(bu 2
  184699. c7cffb5a04 This block isn\(aqt necessary
  184700. .IP \(bu 2
  184701. b7283bcc6f _vm_provider_driver isn\(aqt needed anymore
  184702. .UNINDENT
  184703. .IP \(bu 2
  184704. \fBISSUE\fP \fI\%#43085\fP: (\fI\%brejoc\fP) Patch for Kubernetes module missing from 2017.7 and 2017.7.1 (refs: \fI\%#43087\fP)
  184705. .IP \(bu 2
  184706. \fBPR\fP \fI\%#43087\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42174\fP to 2017.7
  184707. @ \fI2017\-08\-21 18:40:18 UTC\fP
  184708. .INDENT 2.0
  184709. .IP \(bu 2
  184710. \fBPR\fP \fI\%#42174\fP: (\fI\%mcalmer\fP) kubernetes: provide client certificate authentication (refs: \fI\%#43087\fP)
  184711. .IP \(bu 2
  184712. 32f9ade4db Merge pull request \fI\%#43087\fP from rallytime/bp\-42174
  184713. .IP \(bu 2
  184714. cf6563645b add support for certificate authentication to kubernetes module
  184715. .UNINDENT
  184716. .IP \(bu 2
  184717. \fBPR\fP \fI\%#43029\fP: (\fI\%terminalmage\fP) Normalize the salt caching API
  184718. @ \fI2017\-08\-21 16:54:58 UTC\fP
  184719. .INDENT 2.0
  184720. .IP \(bu 2
  184721. 882fcd846f Merge pull request \fI\%#43029\fP from terminalmage/fix\-func\-alias
  184722. .IP \(bu 2
  184723. f8f74a310c Update localfs cache tests to reflect changes to func naming
  184724. .IP \(bu 2
  184725. c4ae79b229 Rename other refs to cache.ls with cache.list
  184726. .IP \(bu 2
  184727. ee59d127e8 Normalize the salt caching API
  184728. .UNINDENT
  184729. .IP \(bu 2
  184730. \fBISSUE\fP \fI\%#42843\fP: (\fI\%brejoc\fP) Kubernetes module won\(aqt work with Kubernetes Python client > 1.0.2 (refs: \fI\%#42845\fP)
  184731. .IP \(bu 2
  184732. \fBPR\fP \fI\%#43039\fP: (\fI\%gtmanfred\fP) catch ImportError for kubernetes.client import
  184733. @ \fI2017\-08\-21 14:32:38 UTC\fP
  184734. .INDENT 2.0
  184735. .IP \(bu 2
  184736. \fBPR\fP \fI\%#42845\fP: (\fI\%brejoc\fP) API changes for Kubernetes version 2.0.0 (refs: \fI\%#43039\fP)
  184737. .IP \(bu 2
  184738. dbee735f6e Merge pull request \fI\%#43039\fP from gtmanfred/kube
  184739. .IP \(bu 2
  184740. 7e269cb368 catch ImportError for kubernetes.client import
  184741. .UNINDENT
  184742. .IP \(bu 2
  184743. \fBPR\fP \fI\%#43058\fP: (\fI\%rallytime\fP) Update release version number for jenkins.run function
  184744. @ \fI2017\-08\-21 14:13:34 UTC\fP
  184745. .INDENT 2.0
  184746. .IP \(bu 2
  184747. c56a8499b3 Merge pull request \fI\%#43058\fP from rallytime/fix\-release\-num
  184748. .IP \(bu 2
  184749. d7eef70df0 Update release version number for jenkins.run function
  184750. .UNINDENT
  184751. .IP \(bu 2
  184752. \fBPR\fP \fI\%#43051\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184753. @ \fI2017\-08\-18 17:05:57 UTC\fP
  184754. .INDENT 2.0
  184755. .IP \(bu 2
  184756. 7b0c94768a Merge pull request \fI\%#43051\fP from rallytime/merge\-2017.7
  184757. .IP \(bu 2
  184758. 153a463b86 Lint: Add missing blank line
  184759. .IP \(bu 2
  184760. 84829a6f8c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184761. .IP \(bu 2
  184762. 43aa46f512 Merge pull request \fI\%#43048\fP from rallytime/bp\-43031
  184763. .INDENT 2.0
  184764. .IP \(bu 2
  184765. 35e45049e2 use a ruby gem that doesn\(aqt have dependencies
  184766. .UNINDENT
  184767. .IP \(bu 2
  184768. ad89ff3104 Merge pull request \fI\%#43023\fP from terminalmage/fix\-jenkins\-xml\-caching
  184769. .INDENT 2.0
  184770. .IP \(bu 2
  184771. 33fd8ff939 Update jenkins.py
  184772. .IP \(bu 2
  184773. fc306fc8c3 Add missing colon in \fIif\fP statement
  184774. .IP \(bu 2
  184775. 822eabcc81 Catch exceptions raised when making changes to jenkins
  184776. .IP \(bu 2
  184777. 91b583b493 Improve and correct exception raising
  184778. .IP \(bu 2
  184779. f096917a0e Raise an exception if we fail to cache the config xml
  184780. .UNINDENT
  184781. .IP \(bu 2
  184782. 2957467ed7 Merge pull request \fI\%#43026\fP from rallytime/bp\-43020
  184783. .INDENT 2.0
  184784. .IP \(bu 2
  184785. 0eb15a1f67 test with gem that appears to be abandoned
  184786. .UNINDENT
  184787. .IP \(bu 2
  184788. 4150b094fe Merge pull request \fI\%#43033\fP from rallytime/bp\-42760
  184789. .INDENT 2.0
  184790. .IP \(bu 2
  184791. 3e3f7f5d8e Catch TypeError thrown by m2crypto when parsing missing subjects in certificate files.
  184792. .UNINDENT
  184793. .IP \(bu 2
  184794. b124d3667e Merge pull request \fI\%#43032\fP from rallytime/bp\-42547
  184795. .INDENT 2.0
  184796. .IP \(bu 2
  184797. ea4d7f4176 Updated testinfra modules to work with more recent versions
  184798. .UNINDENT
  184799. .IP \(bu 2
  184800. a88386ad44 Merge pull request \fI\%#43027\fP from pabloh007/fix\-docker\-save\-push\-2016\-11
  184801. .INDENT 2.0
  184802. .IP \(bu 2
  184803. d0fd949f85 Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  184804. .UNINDENT
  184805. .IP \(bu 2
  184806. 51d16840bb Merge pull request \fI\%#42890\fP from DSRCorporation/bugs/42627_salt\-cp
  184807. .INDENT 2.0
  184808. .IP \(bu 2
  184809. cfddbf1c75 Apply code review: update the doc
  184810. .IP \(bu 2
  184811. afedd3b654 Typos and version fixes in the doc.
  184812. .IP \(bu 2
  184813. 9fedf6012e Fixed \(aqtest_valid_docs\(aq test.
  184814. .IP \(bu 2
  184815. 999388680c Make chunked mode in salt\-cp optional (disabled by default).
  184816. .UNINDENT
  184817. .IP \(bu 2
  184818. b3c253cdfa Merge pull request \fI\%#43009\fP from rallytime/merge\-2016.11
  184819. .INDENT 2.0
  184820. .IP \(bu 2
  184821. 566ba4fe76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  184822. .INDENT 2.0
  184823. .IP \(bu 2
  184824. 13b8637d53 Merge pull request \fI\%#42942\fP from Ch3LL/2016.3.6_follow_up
  184825. .INDENT 2.0
  184826. .IP \(bu 2
  184827. f281e1795f move additional minion config options to 2016.3.8 release notes
  184828. .IP \(bu 2
  184829. 168604ba6b remove merge conflict
  184830. .IP \(bu 2
  184831. 8a07d95212 update release notes with cve number
  184832. .IP \(bu 2
  184833. 149633fdca Add release notes for 2016.3.7 release
  184834. .IP \(bu 2
  184835. 7a4cddcd95 Add clean_id function to salt.utils.verify.py
  184836. .UNINDENT
  184837. .IP \(bu 2
  184838. bbb1b29ccb Merge pull request \fI\%#42954\fP from Ch3LL/latest_2016.3
  184839. .INDENT 2.0
  184840. .IP \(bu 2
  184841. b551e66744 [2016.3] Bump latest and previous versions
  184842. .UNINDENT
  184843. .IP \(bu 2
  184844. 5d5edc54b7 Merge pull request \fI\%#42949\fP from Ch3LL/2016.3.7_docs
  184845. .INDENT 2.0
  184846. .IP \(bu 2
  184847. d75d3741f8 Add Security Notice to 2016.3.7 Release Notes
  184848. .UNINDENT
  184849. .UNINDENT
  184850. .UNINDENT
  184851. .IP \(bu 2
  184852. 37c63e7cf2 Merge pull request \fI\%#43021\fP from terminalmage/fix\-network\-test
  184853. .INDENT 2.0
  184854. .IP \(bu 2
  184855. 4089b7b1bc Use socket.AF_INET6 to get the correct value instead of doing an OS check
  184856. .UNINDENT
  184857. .IP \(bu 2
  184858. 8f6423247c Merge pull request \fI\%#43019\fP from rallytime/bootstrap_2017.08.17
  184859. .INDENT 2.0
  184860. .IP \(bu 2
  184861. 2f762b3a17 Update bootstrap script to latest stable: v2017.08.17
  184862. .UNINDENT
  184863. .IP \(bu 2
  184864. ff1caeee68 Merge pull request \fI\%#43014\fP from Ch3LL/fix_network_mac
  184865. .INDENT 2.0
  184866. .IP \(bu 2
  184867. b8eee4401e Change AF_INET6 family for mac in test_host_to_ips
  184868. .UNINDENT
  184869. .UNINDENT
  184870. .IP \(bu 2
  184871. \fBPR\fP \fI\%#43035\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  184872. @ \fI2017\-08\-18 12:58:17 UTC\fP
  184873. .INDENT 2.0
  184874. .IP \(bu 2
  184875. \fBPR\fP \fI\%#42948\fP: (\fI\%Ch3LL\fP) [2017.7.1] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  184876. .IP \(bu 2
  184877. \fBPR\fP \fI\%#42945\fP: (\fI\%Ch3LL\fP) [2017.7] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  184878. .IP \(bu 2
  184879. d15b0ca937 Merge pull request \fI\%#43035\fP from rallytime/merge\-2017.7
  184880. .IP \(bu 2
  184881. 756128a896 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  184882. .INDENT 2.0
  184883. .IP \(bu 2
  184884. ab1b099730 Merge pull request \fI\%#42948\fP from Ch3LL/2017.7.0_follow_up
  184885. .UNINDENT
  184886. .UNINDENT
  184887. .IP \(bu 2
  184888. \fBISSUE\fP \fI\%#42989\fP: (\fI\%blbradley\fP) GitFS GitPython performance regression in 2017.7.1 (refs: \fI\%#43002\fP)
  184889. .IP \(bu 2
  184890. \fBPR\fP \fI\%#43034\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43002\fP to 2017.7
  184891. @ \fI2017\-08\-17 23:18:16 UTC\fP
  184892. .INDENT 2.0
  184893. .IP \(bu 2
  184894. \fBPR\fP \fI\%#43002\fP: (\fI\%the\-glu\fP) Try to fix \fI\%#42989\fP (refs: \fI\%#43034\fP)
  184895. .IP \(bu 2
  184896. bcbb973a71 Merge pull request \fI\%#43034\fP from rallytime/bp\-43002
  184897. .IP \(bu 2
  184898. 350c0767dc Try to fix \fI\%#42989\fP by doing sslVerify and refspecs for origin remote only if there is no remotes
  184899. .UNINDENT
  184900. .IP \(bu 2
  184901. \fBISSUE\fP \fI\%#42375\fP: (\fI\%dragonpaw\fP) salt.modules.*.__virtualname__ doens\(aqt work as documented. (refs: \fI\%#42523\fP, \fI\%#42958\fP)
  184902. .IP \(bu 2
  184903. \fBPR\fP \fI\%#42958\fP: (\fI\%gtmanfred\fP) runit module should also be loaded as runit
  184904. @ \fI2017\-08\-17 22:30:23 UTC\fP
  184905. .INDENT 2.0
  184906. .IP \(bu 2
  184907. 9182f55bbb Merge pull request \fI\%#42958\fP from gtmanfred/2017.7
  184908. .IP \(bu 2
  184909. fd6874668b runit module should also be loaded as runit
  184910. .UNINDENT
  184911. .IP \(bu 2
  184912. \fBPR\fP \fI\%#43031\fP: (\fI\%gtmanfred\fP) use a ruby gem that doesn\(aqt have dependencies (refs: \fI\%#43048\fP)
  184913. @ \fI2017\-08\-17 22:26:25 UTC\fP
  184914. .INDENT 2.0
  184915. .IP \(bu 2
  184916. 5985cc4e8e Merge pull request \fI\%#43031\fP from gtmanfred/test_gem
  184917. .IP \(bu 2
  184918. ba80a7d4b5 use a ruby gem that doesn\(aqt have dependencies
  184919. .UNINDENT
  184920. .IP \(bu 2
  184921. \fBPR\fP \fI\%#43030\fP: (\fI\%rallytime\fP) Small cleanup to dockermod.save
  184922. @ \fI2017\-08\-17 22:26:00 UTC\fP
  184923. .INDENT 2.0
  184924. .IP \(bu 2
  184925. 246176b1a6 Merge pull request \fI\%#43030\fP from rallytime/dockermod\-minor\-change
  184926. .IP \(bu 2
  184927. d6a5e85632 Small cleanup to dockermod.save
  184928. .UNINDENT
  184929. .IP \(bu 2
  184930. \fBISSUE\fP \fI\%#42992\fP: (\fI\%pabloh007\fP) docker.save flag push does is ignored (refs: \fI\%#42993\fP, \fI\%#43027\fP)
  184931. .IP \(bu 2
  184932. \fBPR\fP \fI\%#42993\fP: (\fI\%pabloh007\fP) Fixes ignored push flag for docker.push module issue \fI\%#42992\fP
  184933. @ \fI2017\-08\-17 18:50:37 UTC\fP
  184934. .INDENT 2.0
  184935. .IP \(bu 2
  184936. 160001120b Merge pull request \fI\%#42993\fP from pabloh007/fix\-docker\-save\-push
  184937. .IP \(bu 2
  184938. fe7554cfeb Fixes ignored push flag for docker.push module issue \fI\%#42992\fP
  184939. .UNINDENT
  184940. .IP \(bu 2
  184941. \fBISSUE\fP \fI\%#42941\fP: (\fI\%danlsgiga\fP) pkg.installed fails on installing from HTTPS rpm source (refs: \fI\%#42967\fP)
  184942. .IP \(bu 2
  184943. \fBPR\fP \fI\%#42967\fP: (\fI\%terminalmage\fP) Fix bug in on_header callback when no Content\-Type is found in headers
  184944. @ \fI2017\-08\-17 18:48:52 UTC\fP
  184945. .INDENT 2.0
  184946. .IP \(bu 2
  184947. 9009a971b1 Merge pull request \fI\%#42967\fP from terminalmage/issue42941
  184948. .IP \(bu 2
  184949. b838460816 Fix bug in on_header callback when no Content\-Type is found in headers
  184950. .UNINDENT
  184951. .IP \(bu 2
  184952. \fBISSUE\fP \fI\%#43008\fP: (\fI\%evelineraine\fP) states.service.running always succeeds when watched state has changes (refs: \fI\%#43016\fP)
  184953. .IP \(bu 2
  184954. \fBPR\fP \fI\%#43016\fP: (\fI\%gtmanfred\fP) service should return false on exception
  184955. @ \fI2017\-08\-17 18:08:05 UTC\fP
  184956. .INDENT 2.0
  184957. .IP \(bu 2
  184958. 58f070d7a7 Merge pull request \fI\%#43016\fP from gtmanfred/service
  184959. .IP \(bu 2
  184960. 21c264fe55 service should return false on exception
  184961. .UNINDENT
  184962. .IP \(bu 2
  184963. \fBPR\fP \fI\%#43020\fP: (\fI\%gtmanfred\fP) test with gem that appears to be abandoned (refs: \fI\%#43026\fP)
  184964. @ \fI2017\-08\-17 16:40:41 UTC\fP
  184965. .INDENT 2.0
  184966. .IP \(bu 2
  184967. 973d288eca Merge pull request \fI\%#43020\fP from gtmanfred/test_gem
  184968. .IP \(bu 2
  184969. 0a1f40a664 test with gem that appears to be abandoned
  184970. .UNINDENT
  184971. .IP \(bu 2
  184972. \fBPR\fP \fI\%#42999\fP: (\fI\%garethgreenaway\fP) Fixes to slack engine
  184973. @ \fI2017\-08\-17 15:46:24 UTC\fP
  184974. .INDENT 2.0
  184975. .IP \(bu 2
  184976. 9cd0607fd4 Merge pull request \fI\%#42999\fP from garethgreenaway/slack_engine_allow_editing_messages
  184977. .IP \(bu 2
  184978. 0ece2a8f0c Fixing a bug that prevented editing Slack messages and having the commands resent to the Slack engine.
  184979. .UNINDENT
  184980. .IP \(bu 2
  184981. \fBPR\fP \fI\%#43010\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184982. @ \fI2017\-08\-17 15:10:29 UTC\fP
  184983. .INDENT 2.0
  184984. .IP \(bu 2
  184985. 31627a9163 Merge pull request \fI\%#43010\fP from rallytime/merge\-2017.7
  184986. .IP \(bu 2
  184987. 8a0f948e4a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184988. .IP \(bu 2
  184989. 1ee9499d28 Merge pull request \fI\%#42968\fP from vutny/doc\-salt\-cloud\-ref
  184990. .INDENT 2.0
  184991. .IP \(bu 2
  184992. 44ed53b1df [DOCS] Fix link to Salt Cloud Feature Matrix
  184993. .UNINDENT
  184994. .IP \(bu 2
  184995. 923f9741fe Merge pull request \fI\%#42291\fP from vutny/fix\-38839
  184996. .INDENT 2.0
  184997. .IP \(bu 2
  184998. 5f8f98a01f Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  184999. .UNINDENT
  185000. .IP \(bu 2
  185001. c20bc7d515 Merge pull request \fI\%#42940\fP from gtmanfred/2016.11
  185002. .INDENT 2.0
  185003. .IP \(bu 2
  185004. 253e216a8d fix IP address spelling
  185005. .IP \(bu 2
  185006. bd63074e7a create new ip address before checking list of allocated ips
  185007. .UNINDENT
  185008. .IP \(bu 2
  185009. d6496eca72 Merge pull request \fI\%#42959\fP from rallytime/bp\-42883
  185010. .INDENT 2.0
  185011. .IP \(bu 2
  185012. c6b9ca4b9e Lint fix: add missing space
  185013. .IP \(bu 2
  185014. 5597b1a30e Skip 2 failing tests in Python 3 due to upstream bugs
  185015. .IP \(bu 2
  185016. a0b19bdc27 Update account id value in boto_secgroup module unit test
  185017. .IP \(bu 2
  185018. 60b406e088 @mock_elb needs to be changed to @mock_elb_deprecated as well
  185019. .IP \(bu 2
  185020. 6ae1111295 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  185021. .UNINDENT
  185022. .IP \(bu 2
  185023. 6366e05d0d Merge pull request \fI\%#42944\fP from Ch3LL/2016.11.6_follow_up
  185024. .INDENT 2.0
  185025. .IP \(bu 2
  185026. 7e0a20afca Add release notes for 2016.11.7 release
  185027. .IP \(bu 2
  185028. 63823f8c3e Add clean_id function to salt.utils.verify.py
  185029. .UNINDENT
  185030. .IP \(bu 2
  185031. 49d339c976 Merge pull request \fI\%#42952\fP from Ch3LL/latest_2016.11
  185032. .INDENT 2.0
  185033. .IP \(bu 2
  185034. 74e7055d54 [2016.11] Bump latest and previous versions
  185035. .UNINDENT
  185036. .IP \(bu 2
  185037. b0d2e05a79 Merge pull request \fI\%#42950\fP from Ch3LL/2016.11.7_docs
  185038. .INDENT 2.0
  185039. .IP \(bu 2
  185040. a6f902db40 Add Security Notice to 2016.11.77 Release Notes
  185041. .UNINDENT
  185042. .IP \(bu 2
  185043. c0ff69f88c Merge pull request \fI\%#42836\fP from lyft/backport\-utils.versions\-to\-2016.11
  185044. .INDENT 2.0
  185045. .IP \(bu 2
  185046. 86ce7004a2 Backport salt.utils.versions from develop to 2016.11
  185047. .UNINDENT
  185048. .IP \(bu 2
  185049. 64a79dd5ac Merge pull request \fI\%#42919\fP from rallytime/bp\-42871
  185050. .INDENT 2.0
  185051. .IP \(bu 2
  185052. 4e46c968e6 Update joyent.rst
  185053. .UNINDENT
  185054. .IP \(bu 2
  185055. bea8ec1098 Merge pull request \fI\%#42918\fP from rallytime/bp\-42848
  185056. .INDENT 2.0
  185057. .IP \(bu 2
  185058. cdb48126f7 Make lint happier.
  185059. .IP \(bu 2
  185060. 62eca9b00b Execute fire_master asynchronously in the main minion thread.
  185061. .UNINDENT
  185062. .IP \(bu 2
  185063. 52bce329cb Merge pull request \fI\%#42861\fP from twangboy/win_pkg_install_salt
  185064. .INDENT 2.0
  185065. .IP \(bu 2
  185066. 0d3789f0c6 Fix pkg.install salt\-minion using salt\-call
  185067. .UNINDENT
  185068. .IP \(bu 2
  185069. b9f4f87aa5 Merge pull request \fI\%#42798\fP from s\-sebastian/2016.11
  185070. .INDENT 2.0
  185071. .IP \(bu 2
  185072. 1cc86592ed Update return data before calling returners
  185073. .UNINDENT
  185074. .UNINDENT
  185075. .IP \(bu 2
  185076. \fBISSUE\fP \fI\%#42842\fP: (\fI\%Giandom\fP) retreive kwargs passed with slack engine (refs: \fI\%#42884\fP)
  185077. .IP \(bu 2
  185078. \fBPR\fP \fI\%#42884\fP: (\fI\%Giandom\fP) Convert to dict type the pillar string value passed from slack
  185079. @ \fI2017\-08\-16 22:30:43 UTC\fP
  185080. .INDENT 2.0
  185081. .IP \(bu 2
  185082. 82be9dceb6 Merge pull request \fI\%#42884\fP from Giandom/2017.7.1\-fix\-slack\-engine\-pillar\-args
  185083. .IP \(bu 2
  185084. 80fd733c99 Update slack.py
  185085. .UNINDENT
  185086. .IP \(bu 2
  185087. \fBPR\fP \fI\%#42963\fP: (\fI\%twangboy\fP) Fix \fIunit.test_fileclient\fP for Windows
  185088. @ \fI2017\-08\-16 14:18:18 UTC\fP
  185089. .INDENT 2.0
  185090. .IP \(bu 2
  185091. 42bd553b98 Merge pull request \fI\%#42963\fP from twangboy/win_unit_test_fileclient
  185092. .IP \(bu 2
  185093. e9febe4893 Fix unit.test_fileclient
  185094. .UNINDENT
  185095. .IP \(bu 2
  185096. \fBPR\fP \fI\%#42964\fP: (\fI\%twangboy\fP) Fix \fIsalt.utils.recursive_copy\fP for Windows
  185097. @ \fI2017\-08\-16 14:17:27 UTC\fP
  185098. .INDENT 2.0
  185099. .IP \(bu 2
  185100. 7dddeeea8d Merge pull request \fI\%#42964\fP from twangboy/win_fix_recursive_copy
  185101. .IP \(bu 2
  185102. 121cd4ef81 Fix \fIsalt.utils.recursive_copy\fP for Windows
  185103. .UNINDENT
  185104. .IP \(bu 2
  185105. \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)
  185106. .IP \(bu 2
  185107. \fBPR\fP \fI\%#42946\fP: (\fI\%mirceaulinic\fP) extension_modules should default to $CACHE_DIR/proxy/extmods
  185108. @ \fI2017\-08\-15 21:26:36 UTC\fP
  185109. .INDENT 2.0
  185110. .IP \(bu 2
  185111. 6da4d1d95e Merge pull request \fI\%#42946\fP from cloudflare/px_extmods_42943
  185112. .IP \(bu 2
  185113. 73f9135340 extension_modules should default to /proxy/extmods
  185114. .UNINDENT
  185115. .IP \(bu 2
  185116. \fBPR\fP \fI\%#42945\fP: (\fI\%Ch3LL\fP) [2017.7] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  185117. @ \fI2017\-08\-15 18:04:20 UTC\fP
  185118. .INDENT 2.0
  185119. .IP \(bu 2
  185120. 95645d49f9 Merge pull request \fI\%#42945\fP from Ch3LL/2017.7.0_follow_up
  185121. .IP \(bu 2
  185122. dcd92042e3 remove extra doc
  185123. .IP \(bu 2
  185124. 693a504ef0 update release notes with cve number
  185125. .UNINDENT
  185126. .IP \(bu 2
  185127. \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)
  185128. .IP \(bu 2
  185129. \fBPR\fP \fI\%#42812\fP: (\fI\%terminalmage\fP) Update custom YAML loader tests to properly test unicode literals
  185130. @ \fI2017\-08\-15 17:50:22 UTC\fP
  185131. .INDENT 2.0
  185132. .IP \(bu 2
  185133. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42812\fP)
  185134. .IP \(bu 2
  185135. 47ff9d5627 Merge pull request \fI\%#42812\fP from terminalmage/yaml\-loader\-tests
  185136. .IP \(bu 2
  185137. 9d8486a894 Add test for custom YAML loader with unicode literal strings
  185138. .IP \(bu 2
  185139. a0118bcece Remove bytestrings and use textwrap.dedent for readability
  185140. .UNINDENT
  185141. .IP \(bu 2
  185142. \fBPR\fP \fI\%#42953\fP: (\fI\%Ch3LL\fP) [2017.7] Bump latest and previous versions
  185143. @ \fI2017\-08\-15 17:23:28 UTC\fP
  185144. .INDENT 2.0
  185145. .IP \(bu 2
  185146. 5d0c2198ac Merge pull request \fI\%#42953\fP from Ch3LL/latest_2017.7
  185147. .IP \(bu 2
  185148. cbecf65823 [2017.7] Bump latest and previous versions
  185149. .UNINDENT
  185150. .IP \(bu 2
  185151. \fBPR\fP \fI\%#42951\fP: (\fI\%Ch3LL\fP) Add Security Notice to 2017.7.1 Release Notes
  185152. @ \fI2017\-08\-15 16:49:56 UTC\fP
  185153. .INDENT 2.0
  185154. .IP \(bu 2
  185155. 730e71db17 Merge pull request \fI\%#42951\fP from Ch3LL/2017.7.1_docs
  185156. .IP \(bu 2
  185157. 1d8f827c58 Add Security Notice to 2017.7.1 Release Notes
  185158. .UNINDENT
  185159. .IP \(bu 2
  185160. \fBPR\fP \fI\%#42868\fP: (\fI\%carsonoid\fP) Stub out required functions in redis_cache
  185161. @ \fI2017\-08\-15 14:33:54 UTC\fP
  185162. .INDENT 2.0
  185163. .IP \(bu 2
  185164. c1c8cb9bfa Merge pull request \fI\%#42868\fP from carsonoid/redisjobcachefix
  185165. .IP \(bu 2
  185166. 885bee2a7d Stub out required functions for redis cache
  185167. .UNINDENT
  185168. .IP \(bu 2
  185169. \fBPR\fP \fI\%#42810\fP: (\fI\%amendlik\fP) Ignore error values when listing Windows SNMP community strings
  185170. @ \fI2017\-08\-15 03:55:15 UTC\fP
  185171. .INDENT 2.0
  185172. .IP \(bu 2
  185173. e192d6e0af Merge pull request \fI\%#42810\fP from amendlik/win\-snmp\-community
  185174. .IP \(bu 2
  185175. dc20e4651b Ignore error values when listing Windows SNMP community strings
  185176. .UNINDENT
  185177. .IP \(bu 2
  185178. \fBPR\fP \fI\%#42920\fP: (\fI\%cachedout\fP) pid_race
  185179. @ \fI2017\-08\-15 03:49:10 UTC\fP
  185180. .INDENT 2.0
  185181. .IP \(bu 2
  185182. a1817f1de3 Merge pull request \fI\%#42920\fP from cachedout/pid_race
  185183. .IP \(bu 2
  185184. 5e930b8cbd If we catch the pid file in a transistory state, return None
  185185. .UNINDENT
  185186. .IP \(bu 2
  185187. \fBPR\fP \fI\%#42925\fP: (\fI\%terminalmage\fP) Add debug logging to troubleshoot test failures
  185188. @ \fI2017\-08\-15 03:47:51 UTC\fP
  185189. .INDENT 2.0
  185190. .IP \(bu 2
  185191. 11a33fe692 Merge pull request \fI\%#42925\fP from terminalmage/f26\-debug\-logging
  185192. .IP \(bu 2
  185193. 8165f46165 Add debug logging to troubleshoot test failures
  185194. .UNINDENT
  185195. .IP \(bu 2
  185196. \fBPR\fP \fI\%#42913\fP: (\fI\%twangboy\fP) Change service shutdown timeouts for salt\-minion service (Windows)
  185197. @ \fI2017\-08\-14 20:55:24 UTC\fP
  185198. .INDENT 2.0
  185199. .IP \(bu 2
  185200. a537197030 Merge pull request \fI\%#42913\fP from twangboy/win_change_timeout
  185201. .IP \(bu 2
  185202. ffb23fbe47 Remove the line that wipes out the cache
  185203. .IP \(bu 2
  185204. a3becf8342 Change service shutdown timeouts
  185205. .UNINDENT
  185206. .IP \(bu 2
  185207. \fBPR\fP \fI\%#42800\fP: (\fI\%skizunov\fP) Fix exception when master_type=disable
  185208. @ \fI2017\-08\-14 20:53:38 UTC\fP
  185209. .INDENT 2.0
  185210. .IP \(bu 2
  185211. ca0555f616 Merge pull request \fI\%#42800\fP from skizunov/develop6
  185212. .IP \(bu 2
  185213. fa5822009f Fix exception when master_type=disable
  185214. .UNINDENT
  185215. .IP \(bu 2
  185216. \fBPR\fP \fI\%#42679\fP: (\fI\%mirceaulinic\fP) Add multiprocessing option for NAPALM proxy
  185217. @ \fI2017\-08\-14 20:45:06 UTC\fP
  185218. .INDENT 2.0
  185219. .IP \(bu 2
  185220. 3af264b664 Merge pull request \fI\%#42679\fP from cloudflare/napalm\-multiprocessing
  185221. .IP \(bu 2
  185222. 9c4566db0c multiprocessing option tagged for 2017.7.2
  185223. .IP \(bu 2
  185224. 37bca1b902 Add multiprocessing option for NAPALM proxy
  185225. .IP \(bu 2
  185226. a2565ba8e5 Add new napalm option: multiprocessing
  185227. .UNINDENT
  185228. .IP \(bu 2
  185229. \fBISSUE\fP \fI\%#42611\fP: (\fI\%nhavens\fP) selinux.boolean state does not return changes (refs: \fI\%#42612\fP)
  185230. .IP \(bu 2
  185231. \fBPR\fP \fI\%#42657\fP: (\fI\%nhavens\fP) back\-port \fI\%#42612\fP to 2017.7
  185232. @ \fI2017\-08\-14 19:42:26 UTC\fP
  185233. .INDENT 2.0
  185234. .IP \(bu 2
  185235. \fBPR\fP \fI\%#42612\fP: (\fI\%nhavens\fP) fix for issue \fI\%#42611\fP (refs: \fI\%#42657\fP)
  185236. .IP \(bu 2
  185237. 4fcdab3ae9 Merge pull request \fI\%#42657\fP from nhavens/2017.7
  185238. .IP \(bu 2
  185239. d73c4b55b7 back\-port \fI\%#42612\fP to 2017.7
  185240. .UNINDENT
  185241. .IP \(bu 2
  185242. \fBPR\fP \fI\%#42709\fP: (\fI\%whiteinge\fP) Add token_expire_user_override link to auth runner docstring
  185243. @ \fI2017\-08\-14 19:03:06 UTC\fP
  185244. .INDENT 2.0
  185245. .IP \(bu 2
  185246. d2b6ce327a Merge pull request \fI\%#42709\fP from whiteinge/doc\-token_expire_user_override
  185247. .IP \(bu 2
  185248. c7ea631558 Add more docs on the token_expire param
  185249. .IP \(bu 2
  185250. 4a9f6ba44f Add token_expire_user_override link to auth runner docstring
  185251. .UNINDENT
  185252. .IP \(bu 2
  185253. \fBISSUE\fP \fI\%#42803\fP: (\fI\%gmcwhistler\fP) master_type: str, not working as expected, parent salt\-minion process dies. (refs: \fI\%#42848\fP)
  185254. .IP \(bu 2
  185255. \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)
  185256. .IP \(bu 2
  185257. \fBPR\fP \fI\%#42848\fP: (\fI\%DmitryKuzmenko\fP) Execute fire_master asynchronously in the main minion thread. (refs: \fI\%#42918\fP)
  185258. @ \fI2017\-08\-14 18:28:38 UTC\fP
  185259. .INDENT 2.0
  185260. .IP \(bu 2
  185261. c6a7bf02e9 Merge pull request \fI\%#42848\fP from DSRCorporation/bugs/42753_mmaster_timeout
  185262. .IP \(bu 2
  185263. 7f5412c19e Make lint happier.
  185264. .IP \(bu 2
  185265. ff66b7aaf0 Execute fire_master asynchronously in the main minion thread.
  185266. .UNINDENT
  185267. .IP \(bu 2
  185268. \fBPR\fP \fI\%#42911\fP: (\fI\%gtmanfred\fP) cloud driver isn\(aqt a provider
  185269. @ \fI2017\-08\-14 17:47:16 UTC\fP
  185270. .INDENT 2.0
  185271. .IP \(bu 2
  185272. 6a3279ea50 Merge pull request \fI\%#42911\fP from gtmanfred/2017.7
  185273. .IP \(bu 2
  185274. 99046b441f cloud driver isn\(aqt a provider
  185275. .UNINDENT
  185276. .IP \(bu 2
  185277. \fBPR\fP \fI\%#42860\fP: (\fI\%skizunov\fP) hash_and_stat_file should return a 2\-tuple
  185278. @ \fI2017\-08\-14 15:44:54 UTC\fP
  185279. .INDENT 2.0
  185280. .IP \(bu 2
  185281. 4456f7383d Merge pull request \fI\%#42860\fP from skizunov/develop7
  185282. .IP \(bu 2
  185283. 5f85a03636 hash_and_stat_file should return a 2\-tuple
  185284. .UNINDENT
  185285. .IP \(bu 2
  185286. \fBPR\fP \fI\%#42889\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185287. @ \fI2017\-08\-14 14:16:20 UTC\fP
  185288. .INDENT 2.0
  185289. .IP \(bu 2
  185290. c6ca7d639f Merge pull request \fI\%#42889\fP from rallytime/merge\-2017.7
  185291. .IP \(bu 2
  185292. fb7117f2ac Use salt.utils.versions.LooseVersion instead of distutils
  185293. .IP \(bu 2
  185294. 29ff19c587 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185295. .INDENT 2.0
  185296. .IP \(bu 2
  185297. c15d0034fe Merge pull request \fI\%#41977\fP from redmatter/fix\-dockerng\-network\-ignores\-test
  185298. .INDENT 2.0
  185299. .IP \(bu 2
  185300. 1cc2aa503a Fix dockerng.network_* ignoring of tests=True
  185301. .UNINDENT
  185302. .IP \(bu 2
  185303. 3b9c3c5671 Merge pull request \fI\%#42886\fP from sarcasticadmin/adding_docs_salt_outputs
  185304. .INDENT 2.0
  185305. .IP \(bu 2
  185306. 744bf954ff Adding missing output flags to salt cli
  185307. .UNINDENT
  185308. .IP \(bu 2
  185309. e5b98c8a88 Merge pull request \fI\%#42882\fP from gtmanfred/2016.11
  185310. .INDENT 2.0
  185311. .IP \(bu 2
  185312. da3402a53d make sure cmd is not run when npm isn\(aqt installed
  185313. .UNINDENT
  185314. .IP \(bu 2
  185315. 5962c9588b Merge pull request \fI\%#42788\fP from amendlik/saltify\-timeout
  185316. .INDENT 2.0
  185317. .IP \(bu 2
  185318. 928b523797 Remove waits and retries from Saltify deployment
  185319. .UNINDENT
  185320. .IP \(bu 2
  185321. 227ecddd13 Merge pull request \fI\%#42877\fP from terminalmage/add\-cron\-state\-virtual
  185322. .INDENT 2.0
  185323. .IP \(bu 2
  185324. f1de196740 Add virtual func for cron state module
  185325. .UNINDENT
  185326. .IP \(bu 2
  185327. ab9f6cef33 Merge pull request \fI\%#42859\fP from terminalmage/gitpython\-git\-cli\-note
  185328. .INDENT 2.0
  185329. .IP \(bu 2
  185330. 35e05c9515 Add note about git CLI requirement for GitPython to GitFS tutorial
  185331. .UNINDENT
  185332. .IP \(bu 2
  185333. 682b4a8d14 Merge pull request \fI\%#42856\fP from gtmanfred/2016.11
  185334. .INDENT 2.0
  185335. .IP \(bu 2
  185336. b458b89fb8 skip cache_clean test if npm version is >= 5.0.0
  185337. .UNINDENT
  185338. .IP \(bu 2
  185339. 01ea854029 Merge pull request \fI\%#42864\fP from whiteinge/syndic\-log\-root_dir
  185340. .INDENT 2.0
  185341. .IP \(bu 2
  185342. 4b1f55da9c Make syndic_log_file respect root_dir setting
  185343. .UNINDENT
  185344. .UNINDENT
  185345. .UNINDENT
  185346. .IP \(bu 2
  185347. \fBPR\fP \fI\%#42898\fP: (\fI\%mirceaulinic\fP) Minor eos doc correction
  185348. @ \fI2017\-08\-14 13:42:21 UTC\fP
  185349. .INDENT 2.0
  185350. .IP \(bu 2
  185351. 4b6fe2ee59 Merge pull request \fI\%#42898\fP from mirceaulinic/patch\-11
  185352. .IP \(bu 2
  185353. 93be79a135 Index eos under the installation instructions list
  185354. .IP \(bu 2
  185355. f903e7bc39 Minor eos doc correction
  185356. .UNINDENT
  185357. .IP \(bu 2
  185358. \fBPR\fP \fI\%#42883\fP: (\fI\%rallytime\fP) Fix failing boto tests (refs: \fI\%#42959\fP)
  185359. @ \fI2017\-08\-11 20:29:12 UTC\fP
  185360. .INDENT 2.0
  185361. .IP \(bu 2
  185362. 1764878754 Merge pull request \fI\%#42883\fP from rallytime/fix\-boto\-tests
  185363. .IP \(bu 2
  185364. 6a7bf99848 Lint fix: add missing space
  185365. .IP \(bu 2
  185366. 43643227c6 Skip 2 failing tests in Python 3 due to upstream bugs
  185367. .IP \(bu 2
  185368. 7f46603e9c Update account id value in boto_secgroup module unit test
  185369. .IP \(bu 2
  185370. 7c1d493fdd @mock_elb needs to be changed to @mock_elb_deprecated as well
  185371. .IP \(bu 2
  185372. 3055e17ed5 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  185373. .UNINDENT
  185374. .IP \(bu 2
  185375. \fBPR\fP \fI\%#42885\fP: (\fI\%terminalmage\fP) Move weird tearDown test to an actual tearDown
  185376. @ \fI2017\-08\-11 19:14:42 UTC\fP
  185377. .INDENT 2.0
  185378. .IP \(bu 2
  185379. b21778efac Merge pull request \fI\%#42885\fP from terminalmage/fix\-f26\-tests
  185380. .IP \(bu 2
  185381. 462d653082 Move weird tearDown test to an actual tearDown
  185382. .UNINDENT
  185383. .IP \(bu 2
  185384. \fBISSUE\fP \fI\%#42870\fP: (\fI\%boltronics\fP) webutil.useradd marked as deprecated:: 2016.3.0 by mistake? (refs: \fI\%#42887\fP)
  185385. .IP \(bu 2
  185386. \fBPR\fP \fI\%#42887\fP: (\fI\%rallytime\fP) Remove extraneous "deprecated" notation
  185387. @ \fI2017\-08\-11 18:34:25 UTC\fP
  185388. .INDENT 2.0
  185389. .IP \(bu 2
  185390. 9868ab6f3b Merge pull request \fI\%#42887\fP from rallytime/fix\-42870
  185391. .IP \(bu 2
  185392. 71e7581a2d Remove extraneous "deprecated" notation
  185393. .UNINDENT
  185394. .IP \(bu 2
  185395. \fBPR\fP \fI\%#42881\fP: (\fI\%gtmanfred\fP) fix vmware for python 3.4.2 in salt.utils.vmware
  185396. @ \fI2017\-08\-11 17:52:29 UTC\fP
  185397. .INDENT 2.0
  185398. .IP \(bu 2
  185399. da71f2a11b Merge pull request \fI\%#42881\fP from gtmanfred/vmware
  185400. .IP \(bu 2
  185401. 05ecc6ac8d fix vmware for python 3.4.2 in salt.utils.vmware
  185402. .UNINDENT
  185403. .IP \(bu 2
  185404. \fBISSUE\fP \fI\%#42843\fP: (\fI\%brejoc\fP) Kubernetes module won\(aqt work with Kubernetes Python client > 1.0.2 (refs: \fI\%#42845\fP)
  185405. .IP \(bu 2
  185406. \fBPR\fP \fI\%#42845\fP: (\fI\%brejoc\fP) API changes for Kubernetes version 2.0.0 (refs: \fI\%#43039\fP)
  185407. @ \fI2017\-08\-11 14:04:30 UTC\fP
  185408. .INDENT 2.0
  185409. .IP \(bu 2
  185410. c7750d5717 Merge pull request \fI\%#42845\fP from brejoc/updates\-for\-kubernetes\-2.0.0
  185411. .IP \(bu 2
  185412. 81674aa88a Version info in :optdepends: not needed anymore
  185413. .IP \(bu 2
  185414. 71995505bc Not depending on specific K8s version anymore
  185415. .IP \(bu 2
  185416. d8f7d7a7c0 API changes for Kubernetes version 2.0.0
  185417. .UNINDENT
  185418. .IP \(bu 2
  185419. \fBPR\fP \fI\%#42678\fP: (\fI\%frankiexyz\fP) Add eos.rst in the installation guide
  185420. @ \fI2017\-08\-11 13:58:37 UTC\fP
  185421. .INDENT 2.0
  185422. .IP \(bu 2
  185423. 459fdedc67 Merge pull request \fI\%#42678\fP from frankiexyz/2017.7
  185424. .IP \(bu 2
  185425. 1598571f52 Add eos.rst in the installation guide
  185426. .UNINDENT
  185427. .IP \(bu 2
  185428. \fBISSUE\fP \fI\%#42646\fP: (\fI\%gmacon\fP) SPM fails to install multiple packages (refs: \fI\%#42778\fP)
  185429. .IP \(bu 2
  185430. \fBPR\fP \fI\%#42778\fP: (\fI\%gtmanfred\fP) make sure to use the correct out_file
  185431. @ \fI2017\-08\-11 13:44:48 UTC\fP
  185432. .INDENT 2.0
  185433. .IP \(bu 2
  185434. 4ce96eb1a1 Merge pull request \fI\%#42778\fP from gtmanfred/spm
  185435. .IP \(bu 2
  185436. 7ef691e8da make sure to use the correct out_file
  185437. .UNINDENT
  185438. .IP \(bu 2
  185439. \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)
  185440. .IP \(bu 2
  185441. \fBPR\fP \fI\%#42857\fP: (\fI\%gtmanfred\fP) use older name if _create_unverified_context is unvailable
  185442. @ \fI2017\-08\-11 13:37:59 UTC\fP
  185443. .INDENT 2.0
  185444. .IP \(bu 2
  185445. 3d05d89e09 Merge pull request \fI\%#42857\fP from gtmanfred/vmware
  185446. .IP \(bu 2
  185447. c1f673eca4 use older name if _create_unverified_context is unvailable
  185448. .UNINDENT
  185449. .IP \(bu 2
  185450. \fBPR\fP \fI\%#42866\fP: (\fI\%twangboy\fP) Change to GitPython version 2.1.1
  185451. @ \fI2017\-08\-11 13:23:52 UTC\fP
  185452. .INDENT 2.0
  185453. .IP \(bu 2
  185454. 7e8cfff21c Merge pull request \fI\%#42866\fP from twangboy/osx_downgrade_gitpython
  185455. .IP \(bu 2
  185456. 28053a84a6 Change GitPython version to 2.1.1
  185457. .UNINDENT
  185458. .IP \(bu 2
  185459. \fBPR\fP \fI\%#42855\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185460. @ \fI2017\-08\-10 21:40:39 UTC\fP
  185461. .INDENT 2.0
  185462. .IP \(bu 2
  185463. 3ce18637be Merge pull request \fI\%#42855\fP from rallytime/merge\-2017.7
  185464. .IP \(bu 2
  185465. 08bbcf5790 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185466. .IP \(bu 2
  185467. 2dde1f77e9 Merge pull request \fI\%#42851\fP from terminalmage/bp\-42651
  185468. .INDENT 2.0
  185469. .IP \(bu 2
  185470. a3da86eea8 fix syntax
  185471. .IP \(bu 2
  185472. 6ecdbcec1d make sure names are correct
  185473. .IP \(bu 2
  185474. f83b553d6e add py3 for versionlock
  185475. .IP \(bu 2
  185476. 21934f61bb python2\- prefix for fedora 26 packages
  185477. .UNINDENT
  185478. .IP \(bu 2
  185479. c746f79a3a Merge pull request \fI\%#42806\fP from rallytime/fix\-42683
  185480. .INDENT 2.0
  185481. .IP \(bu 2
  185482. 8c8640d6b8 Update doc references in glusterfs.volume_present
  185483. .UNINDENT
  185484. .IP \(bu 2
  185485. 27a8a2695a Merge pull request \fI\%#42829\fP from twangboy/win_pkg_fix_install
  185486. .INDENT 2.0
  185487. .IP \(bu 2
  185488. 83b9b230cd Add winrepo to docs about supporting versions in pkgs
  185489. .IP \(bu 2
  185490. 81fefa6e67 Add ability to pass version in pkgs list
  185491. .UNINDENT
  185492. .IP \(bu 2
  185493. 3c3ac6aeb2 Merge pull request \fI\%#42838\fP from twangboy/win_doc_pki
  185494. .INDENT 2.0
  185495. .IP \(bu 2
  185496. f0a1d06b46 Standardize PKI Client
  185497. .IP \(bu 2
  185498. 7de687aa57 Document requirements for win_pki
  185499. .UNINDENT
  185500. .IP \(bu 2
  185501. b3e2ae3c58 Merge pull request \fI\%#42805\fP from rallytime/bp\-42552
  185502. .INDENT 2.0
  185503. .IP \(bu 2
  185504. 5a91c1f2d1 update consul module following this documentation \fI\%https://www.consul.io/api/acl/acl.html\fP
  185505. .UNINDENT
  185506. .IP \(bu 2
  185507. d2ee7934ed Merge pull request \fI\%#42804\fP from rallytime/bp\-42784
  185508. .INDENT 2.0
  185509. .IP \(bu 2
  185510. dbd29e4aaa only read file if it is not a string
  185511. .UNINDENT
  185512. .IP \(bu 2
  185513. 4cbf8057b3 Merge pull request \fI\%#42826\fP from terminalmage/fix\-spelling
  185514. .INDENT 2.0
  185515. .IP \(bu 2
  185516. 00f93142e4 Fix misspelling of "versions"
  185517. .UNINDENT
  185518. .IP \(bu 2
  185519. de997edd90 Merge pull request \fI\%#42786\fP from Ch3LL/fix_typo
  185520. .INDENT 2.0
  185521. .IP \(bu 2
  185522. 90a2fb66a2 Fix typo for template_dict in http docs
  185523. .UNINDENT
  185524. .IP \(bu 2
  185525. bf6153ebe5 Merge pull request \fI\%#42795\fP from lomeroe/bp\-42744_201611
  185526. .INDENT 2.0
  185527. .IP \(bu 2
  185528. 695f8c1ae4 fix \fI\%#42600\fP in develop
  185529. .UNINDENT
  185530. .IP \(bu 2
  185531. 61fad97286 Merge pull request \fI\%#42748\fP from whiteinge/save\-before\-output
  185532. .INDENT 2.0
  185533. .IP \(bu 2
  185534. de60b77c82 Workaround Orchestrate problem that highstate outputter mutates data
  185535. .UNINDENT
  185536. .IP \(bu 2
  185537. a4e3e7e786 Merge pull request \fI\%#42764\fP from amendlik/cloud\-win\-loop
  185538. .INDENT 2.0
  185539. .IP \(bu 2
  185540. f3dcfca4e0 Fix infinite loops on failed Windows deployments
  185541. .UNINDENT
  185542. .IP \(bu 2
  185543. da85326ad4 Merge pull request \fI\%#42694\fP from gtmanfred/2016.11
  185544. .INDENT 2.0
  185545. .IP \(bu 2
  185546. 1a0457af51 allow adding extra remotes to a repository
  185547. .UNINDENT
  185548. .UNINDENT
  185549. .IP \(bu 2
  185550. \fBISSUE\fP \fI\%#42774\fP: (\fI\%rossengeorgiev\fP) pkg.installed succeeds, but fails when you specify package version (refs: \fI\%#42808\fP)
  185551. .IP \(bu 2
  185552. \fBPR\fP \fI\%#42808\fP: (\fI\%terminalmage\fP) Fix regression in yum/dnf version specification
  185553. @ \fI2017\-08\-10 15:59:22 UTC\fP
  185554. .INDENT 2.0
  185555. .IP \(bu 2
  185556. f954f4f33a Merge pull request \fI\%#42808\fP from terminalmage/issue42774
  185557. .IP \(bu 2
  185558. c69f17dd18 Add integration test for \fI\%#42774\fP
  185559. .IP \(bu 2
  185560. 78d826dd14 Fix regression in yum/dnf version specification
  185561. .UNINDENT
  185562. .IP \(bu 2
  185563. \fBISSUE\fP \fI\%#42639\fP: (\fI\%amnonbc\fP) k8s module needs a way to manage configmaps (refs: \fI\%#42807\fP)
  185564. .IP \(bu 2
  185565. \fBPR\fP \fI\%#42807\fP: (\fI\%rallytime\fP) Update modules \-\-> states in kubernetes doc module
  185566. @ \fI2017\-08\-10 14:10:40 UTC\fP
  185567. .INDENT 2.0
  185568. .IP \(bu 2
  185569. d9b0f44885 Merge pull request \fI\%#42807\fP from rallytime/fix\-42639
  185570. .IP \(bu 2
  185571. 152eb88d9f Update modules \-\-> states in kubernetes doc module
  185572. .UNINDENT
  185573. .IP \(bu 2
  185574. \fBISSUE\fP \fI\%#42818\fP: (\fI\%Mapel88\fP) Bug in win_iis module \- "create_cert_binding" (refs: \fI\%#42841\fP)
  185575. .IP \(bu 2
  185576. \fBPR\fP \fI\%#42841\fP: (\fI\%Mapel88\fP) Fix bug \fI\%#42818\fP in win_iis module
  185577. @ \fI2017\-08\-10 13:44:21 UTC\fP
  185578. .INDENT 2.0
  185579. .IP \(bu 2
  185580. b8c7bda68d Merge pull request \fI\%#42841\fP from Mapel88/patch\-1
  185581. .IP \(bu 2
  185582. 497241fbcb Fix bug \fI\%#42818\fP in win_iis module
  185583. .UNINDENT
  185584. .IP \(bu 2
  185585. \fBISSUE\fP \fI\%#42697\fP: (\fI\%Ch3LL\fP) [Python3] NameError when running salt\-run manage.versions (refs: \fI\%#42782\fP)
  185586. .IP \(bu 2
  185587. \fBPR\fP \fI\%#42782\fP: (\fI\%rallytime\fP) Add a cmp compatibility function utility
  185588. @ \fI2017\-08\-09 22:37:29 UTC\fP
  185589. .INDENT 2.0
  185590. .IP \(bu 2
  185591. 135f9522d0 Merge pull request \fI\%#42782\fP from rallytime/fix\-42697
  185592. .IP \(bu 2
  185593. d707f94863 Update all other calls to "cmp" function
  185594. .IP \(bu 2
  185595. 5605104285 Add a cmp compatibility function utility
  185596. .UNINDENT
  185597. .IP \(bu 2
  185598. \fBPR\fP \fI\%#42784\fP: (\fI\%gtmanfred\fP) only read file if ret is not a string in http.query (refs: \fI\%#42804\fP)
  185599. @ \fI2017\-08\-08 17:20:13 UTC\fP
  185600. .INDENT 2.0
  185601. .IP \(bu 2
  185602. ac752223ad Merge pull request \fI\%#42784\fP from gtmanfred/http
  185603. .IP \(bu 2
  185604. d397c90e92 only read file if it is not a string
  185605. .UNINDENT
  185606. .IP \(bu 2
  185607. \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)
  185608. .IP \(bu 2
  185609. \fBPR\fP \fI\%#42794\fP: (\fI\%lomeroe\fP) Backport \fI\%#42744\fP to 2017.7
  185610. @ \fI2017\-08\-08 17:16:31 UTC\fP
  185611. .INDENT 2.0
  185612. .IP \(bu 2
  185613. \fBPR\fP \fI\%#42744\fP: (\fI\%lomeroe\fP) fix \fI\%#42600\fP in develop (refs: \fI\%#42794\fP, \fI\%#42795\fP)
  185614. .IP \(bu 2
  185615. 44995b1abf Merge pull request \fI\%#42794\fP from lomeroe/bp\-42744
  185616. .IP \(bu 2
  185617. 0acffc6df5 fix \fI\%#42600\fP in develop
  185618. .UNINDENT
  185619. .IP \(bu 2
  185620. \fBISSUE\fP \fI\%#42707\fP: (\fI\%cro\fP) Service module and state fails on FreeBSD (refs: \fI\%#42708\fP)
  185621. .IP \(bu 2
  185622. \fBPR\fP \fI\%#42708\fP: (\fI\%cro\fP) Do not change the arguments of the function when memoizing
  185623. @ \fI2017\-08\-08 13:47:01 UTC\fP
  185624. .INDENT 2.0
  185625. .IP \(bu 2
  185626. dcf474c47c Merge pull request \fI\%#42708\fP from cro/dont_change_args_during_memoize
  185627. .IP \(bu 2
  185628. a260e913b5 Do not change the arguments of the function when memoizing
  185629. .UNINDENT
  185630. .IP \(bu 2
  185631. \fBPR\fP \fI\%#42783\fP: (\fI\%rallytime\fP) Sort lists before comparing them in python 3 unit test
  185632. @ \fI2017\-08\-08 13:25:15 UTC\fP
  185633. .INDENT 2.0
  185634. .IP \(bu 2
  185635. \fBPR\fP \fI\%#42206\fP: (\fI\%rallytime\fP) [PY3] Fix test that is flaky in Python 3 (refs: \fI\%#42783\fP)
  185636. .IP \(bu 2
  185637. ddb671b8fe Merge pull request \fI\%#42783\fP from rallytime/fix\-flaky\-py3\-test
  185638. .IP \(bu 2
  185639. 998834fbac Sort lists before compairing them in python 3 unit test
  185640. .UNINDENT
  185641. .IP \(bu 2
  185642. \fBPR\fP \fI\%#42721\fP: (\fI\%hibbert\fP) Allow no ip sg
  185643. @ \fI2017\-08\-07 22:07:18 UTC\fP
  185644. .INDENT 2.0
  185645. .IP \(bu 2
  185646. d69822fe93 Merge pull request \fI\%#42721\fP from hibbert/allow_no_ip_sg
  185647. .IP \(bu 2
  185648. f58256802a allow_no_ip_sg: Allow user to not supply ipaddress or securitygroups when running boto_efs.create_mount_target
  185649. .UNINDENT
  185650. .IP \(bu 2
  185651. \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)
  185652. .IP \(bu 2
  185653. \fBPR\fP \fI\%#42769\fP: (\fI\%terminalmage\fP) Fix domainname parameter input translation
  185654. @ \fI2017\-08\-07 20:46:07 UTC\fP
  185655. .INDENT 2.0
  185656. .IP \(bu 2
  185657. bf7938fbe0 Merge pull request \fI\%#42769\fP from terminalmage/issue42538
  185658. .IP \(bu 2
  185659. 665de2d1f9 Fix domainname parameter input translation
  185660. .UNINDENT
  185661. .IP \(bu 2
  185662. \fBPR\fP \fI\%#42388\fP: (\fI\%The\-Loeki\fP) pillar.items pillar_env & pillar_override are never used
  185663. @ \fI2017\-08\-07 17:51:48 UTC\fP
  185664. .INDENT 2.0
  185665. .IP \(bu 2
  185666. 7bf2cdb363 Merge pull request \fI\%#42388\fP from The\-Loeki/patch\-1
  185667. .IP \(bu 2
  185668. 664f4b577b pillar.items pillar_env & pillar_override are never used
  185669. .UNINDENT
  185670. .IP \(bu 2
  185671. \fBPR\fP \fI\%#42770\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  185672. @ \fI2017\-08\-07 16:21:45 UTC\fP
  185673. .INDENT 2.0
  185674. .IP \(bu 2
  185675. 9a8c9ebffc Merge pull request \fI\%#42770\fP from rallytime/merge\-2017.7.1\-into\-2017.7
  185676. .IP \(bu 2
  185677. 6d17c9d227 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  185678. .UNINDENT
  185679. .IP \(bu 2
  185680. \fBPR\fP \fI\%#42768\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185681. @ \fI2017\-08\-07 16:21:17 UTC\fP
  185682. .INDENT 2.0
  185683. .IP \(bu 2
  185684. c765e528d0 Merge pull request \fI\%#42768\fP from rallytime/merge\-2017.7
  185685. .IP \(bu 2
  185686. 0f75482c37 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185687. .INDENT 2.0
  185688. .IP \(bu 2
  185689. 7b2119feee Merge pull request \fI\%#42669\fP from garethgreenaway/42642_2016_11_augeas_module_fix
  185690. .INDENT 2.0
  185691. .IP \(bu 2
  185692. 24413084e2 Updating the call to shlex_split to pass the posix=False argument so that quotes are preserved.
  185693. .UNINDENT
  185694. .IP \(bu 2
  185695. 30725769ed Merge pull request \fI\%#42629\fP from xiaoanyunfei/tornadoapi
  185696. .INDENT 2.0
  185697. .IP \(bu 2
  185698. 1e13383b95 tornado api
  185699. .UNINDENT
  185700. .IP \(bu 2
  185701. f0f00fcee1 Merge pull request \fI\%#42655\fP from whiteinge/rest_cherrypy\-reenable\-stats
  185702. .INDENT 2.0
  185703. .IP \(bu 2
  185704. deb6316d67 Fix lint errors
  185705. .IP \(bu 2
  185706. 6bd91c8b03 Reenable cpstats for rest_cherrypy
  185707. .UNINDENT
  185708. .IP \(bu 2
  185709. 21cf15f9c3 Merge pull request \fI\%#42693\fP from gilbsgilbs/fix\-rabbitmq\-tags
  185710. .INDENT 2.0
  185711. .IP \(bu 2
  185712. 78fccdc7e2 Cast to list in case tags is a tuple.
  185713. .IP \(bu 2
  185714. 287b57b5c5 Fix RabbitMQ tags not properly set.
  185715. .UNINDENT
  185716. .IP \(bu 2
  185717. f2b0c9b4fa Merge pull request \fI\%#42574\fP from sbojarski/boto\-cfn\-error\-reporting
  185718. .INDENT 2.0
  185719. .IP \(bu 2
  185720. 5c945f10c2 Fix debug message in "boto_cfn._validate" function.
  185721. .IP \(bu 2
  185722. 181a1beecc Fixed error reporting in "boto_cfn.present" function.
  185723. .UNINDENT
  185724. .IP \(bu 2
  185725. bc1effc4f2 Merge pull request \fI\%#42623\fP from terminalmage/fix\-unicode\-constructor
  185726. .INDENT 2.0
  185727. .IP \(bu 2
  185728. fcf45889dd Fix unicode constructor in custom YAML loader
  185729. .UNINDENT
  185730. .UNINDENT
  185731. .UNINDENT
  185732. .IP \(bu 2
  185733. \fBPR\fP \fI\%#42651\fP: (\fI\%gtmanfred\fP) python2\- prefix for fedora 26 packages (refs: \fI\%#42851\fP)
  185734. @ \fI2017\-08\-07 14:35:04 UTC\fP
  185735. .INDENT 2.0
  185736. .IP \(bu 2
  185737. 3f5827f61e Merge pull request \fI\%#42651\fP from gtmanfred/2017.7
  185738. .IP \(bu 2
  185739. 8784899942 fix syntax
  185740. .IP \(bu 2
  185741. 178cc1bd81 make sure names are correct
  185742. .IP \(bu 2
  185743. f179b97b52 add py3 for versionlock
  185744. .IP \(bu 2
  185745. 1958d18634 python2\- prefix for fedora 26 packages
  185746. .UNINDENT
  185747. .IP \(bu 2
  185748. \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)
  185749. .IP \(bu 2
  185750. \fBPR\fP \fI\%#42689\fP: (\fI\%hibbert\fP) boto_efs_fix_tags: Fix \fI\%#42688\fP invalid type for parameter tags
  185751. @ \fI2017\-08\-06 17:47:07 UTC\fP
  185752. .INDENT 2.0
  185753. .IP \(bu 2
  185754. 791248e398 Merge pull request \fI\%#42689\fP from hibbert/boto_efs_fix_tags
  185755. .IP \(bu 2
  185756. 157fb28851 boto_efs_fix_tags: Fix \fI\%#42688\fP invalid type for parameter tags
  185757. .UNINDENT
  185758. .IP \(bu 2
  185759. \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)
  185760. .IP \(bu 2
  185761. \fBPR\fP \fI\%#42745\fP: (\fI\%terminalmage\fP) docker.compare_container: treat null oom_kill_disable as False
  185762. @ \fI2017\-08\-05 15:28:20 UTC\fP
  185763. .INDENT 2.0
  185764. .IP \(bu 2
  185765. 1b3407649b Merge pull request \fI\%#42745\fP from terminalmage/issue42705
  185766. .IP \(bu 2
  185767. 710bdf6115 docker.compare_container: treat null oom_kill_disable as False
  185768. .UNINDENT
  185769. .IP \(bu 2
  185770. \fBISSUE\fP \fI\%#42649\fP: (\fI\%tehsu\fP) local_batch no longer working in 2017.7.0, 500 error (refs: \fI\%#42704\fP)
  185771. .IP \(bu 2
  185772. \fBPR\fP \fI\%#42704\fP: (\fI\%whiteinge\fP) Add import to work around likely multiprocessing scoping bug
  185773. @ \fI2017\-08\-04 23:03:13 UTC\fP
  185774. .INDENT 2.0
  185775. .IP \(bu 2
  185776. 5d5b22021b Merge pull request \fI\%#42704\fP from whiteinge/expr_form\-warn\-scope\-bug
  185777. .IP \(bu 2
  185778. 03b675a618 Add import to work around likely multiprocessing scoping bug
  185779. .UNINDENT
  185780. .IP \(bu 2
  185781. \fBISSUE\fP \fI\%#42741\fP: (\fI\%kkoppel\fP) docker_container.running keeps re\-creating containers with links to other containers (refs: \fI\%#42743\fP)
  185782. .IP \(bu 2
  185783. \fBPR\fP \fI\%#42743\fP: (\fI\%kkoppel\fP) Fix docker.compare_container for containers with links
  185784. @ \fI2017\-08\-04 16:00:33 UTC\fP
  185785. .INDENT 2.0
  185786. .IP \(bu 2
  185787. 888e954e73 Merge pull request \fI\%#42743\fP from kkoppel/fix\-issue\-42741
  185788. .IP \(bu 2
  185789. de6d3cc0cf Update dockermod.py
  185790. .IP \(bu 2
  185791. 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.
  185792. .UNINDENT
  185793. .IP \(bu 2
  185794. \fBISSUE\fP \fI\%#42668\fP: (\fI\%UtahDave\fP) Minions under syndics don\(aqt respond to MoM (refs: \fI\%#42710\fP)
  185795. .IP \(bu 2
  185796. \fBISSUE\fP \fI\%#42545\fP: (\fI\%paul\-mulvihill\fP) Salt\-api failing to return results for minions connected via syndics. (refs: \fI\%#42710\fP)
  185797. .IP \(bu 2
  185798. \fBPR\fP \fI\%#42710\fP: (\fI\%gtmanfred\fP) use subtraction instead of or
  185799. @ \fI2017\-08\-04 15:14:14 UTC\fP
  185800. .INDENT 2.0
  185801. .IP \(bu 2
  185802. 03a7f9bbee Merge pull request \fI\%#42710\fP from gtmanfred/syndic
  185803. .IP \(bu 2
  185804. 683561a711 use subtraction instead of or
  185805. .UNINDENT
  185806. .IP \(bu 2
  185807. \fBPR\fP \fI\%#42670\fP: (\fI\%gtmanfred\fP) render kubernetes docs
  185808. @ \fI2017\-08\-03 20:30:56 UTC\fP
  185809. .INDENT 2.0
  185810. .IP \(bu 2
  185811. 005182b6a1 Merge pull request \fI\%#42670\fP from gtmanfred/kube
  185812. .IP \(bu 2
  185813. bca17902f5 add version added info
  185814. .IP \(bu 2
  185815. 4bbfc751ae render kubernetes docs
  185816. .UNINDENT
  185817. .IP \(bu 2
  185818. \fBPR\fP \fI\%#42712\fP: (\fI\%twangboy\fP) Remove master config file from minion\-only installer
  185819. @ \fI2017\-08\-03 20:25:02 UTC\fP
  185820. .INDENT 2.0
  185821. .IP \(bu 2
  185822. df354ddabf Merge pull request \fI\%#42712\fP from twangboy/win_build_pkg
  185823. .IP \(bu 2
  185824. 8604312a7b Remove master conf in minion install
  185825. .UNINDENT
  185826. .IP \(bu 2
  185827. \fBPR\fP \fI\%#42714\fP: (\fI\%cachedout\fP) Set fact gathering style to \(aqold\(aq for test_junos
  185828. @ \fI2017\-08\-03 13:39:40 UTC\fP
  185829. .INDENT 2.0
  185830. .IP \(bu 2
  185831. bb1dfd4a42 Merge pull request \fI\%#42714\fP from cachedout/workaround_jnpr_test_bug
  185832. .IP \(bu 2
  185833. 834d6c605e Set fact gathering style to \(aqold\(aq for test_junos
  185834. .UNINDENT
  185835. .IP \(bu 2
  185836. \fBPR\fP \fI\%#42481\fP: (\fI\%twangboy\fP) Fix \fIunit.test_crypt\fP for Windows
  185837. @ \fI2017\-08\-01 18:10:50 UTC\fP
  185838. .INDENT 2.0
  185839. .IP \(bu 2
  185840. 4c1d931654 Merge pull request \fI\%#42481\fP from twangboy/win_unit_test_crypt
  185841. .IP \(bu 2
  185842. 102509029e Remove chown mock, fix path seps
  185843. .UNINDENT
  185844. .IP \(bu 2
  185845. \fBPR\fP \fI\%#42654\fP: (\fI\%morganwillcock\fP) Disable ZFS in the core grain for NetBSD
  185846. @ \fI2017\-08\-01 17:52:36 UTC\fP
  185847. .INDENT 2.0
  185848. .IP \(bu 2
  185849. 8bcefb5e67 Merge pull request \fI\%#42654\fP from morganwillcock/zfsgrain
  185850. .IP \(bu 2
  185851. 49023deb94 Disable ZFS grain on NetBSD
  185852. .UNINDENT
  185853. .IP \(bu 2
  185854. \fBISSUE\fP \fI\%#42421\fP: (\fI\%bfilipek\fP) archive.extracted on Windows failed when dir not exist (refs: \fI\%#42453\fP)
  185855. .IP \(bu 2
  185856. \fBPR\fP \fI\%#42453\fP: (\fI\%gtmanfred\fP) don\(aqt pass user to makedirs on windows
  185857. @ \fI2017\-07\-31 19:57:57 UTC\fP
  185858. .INDENT 2.0
  185859. .IP \(bu 2
  185860. 5baf2650fc Merge pull request \fI\%#42453\fP from gtmanfred/makedirs
  185861. .IP \(bu 2
  185862. 559d432930 fix tests
  185863. .IP \(bu 2
  185864. afa7a13ce3 use logic from file.directory for makedirs
  185865. .UNINDENT
  185866. .IP \(bu 2
  185867. \fBPR\fP \fI\%#42603\fP: (\fI\%twangboy\fP) Add runas_passwd as a global for states
  185868. @ \fI2017\-07\-31 19:49:49 UTC\fP
  185869. .INDENT 2.0
  185870. .IP \(bu 2
  185871. fb81e78f71 Merge pull request \fI\%#42603\fP from twangboy/win_fix_runas
  185872. .IP \(bu 2
  185873. 0c9e40012b Remove deprecation, add logic to state.py
  185874. .IP \(bu 2
  185875. 464ec34713 Fix another instance of runas_passwd
  185876. .IP \(bu 2
  185877. 18d6ce4d55 Add global vars to cmd.call
  185878. .IP \(bu 2
  185879. 6c71ab6f80 Remove runas and runas_password after state run
  185880. .IP \(bu 2
  185881. 4ea264e3db Change to runas_password in docs
  185882. .IP \(bu 2
  185883. 61aba35718 Deprecate password, make runas_password a named arg
  185884. .IP \(bu 2
  185885. 41f0f75a06 Add new var to list, change to runas_password
  185886. .IP \(bu 2
  185887. b9c91eba60 Add runas_passwd as a global for states
  185888. .UNINDENT
  185889. .IP \(bu 2
  185890. \fBPR\fP \fI\%#42541\fP: (\fI\%Mareo\fP) Avoid confusing warning when using file.line
  185891. @ \fI2017\-07\-31 19:41:58 UTC\fP
  185892. .INDENT 2.0
  185893. .IP \(bu 2
  185894. 75ba23c253 Merge pull request \fI\%#42541\fP from epita/fix\-file\-line\-warning
  185895. .IP \(bu 2
  185896. 2fd172e07b Avoid confusing warning when using file.line
  185897. .UNINDENT
  185898. .IP \(bu 2
  185899. \fBPR\fP \fI\%#42625\fP: (\fI\%twangboy\fP) Fix the list function in the win_wua execution module
  185900. @ \fI2017\-07\-31 19:27:16 UTC\fP
  185901. .INDENT 2.0
  185902. .IP \(bu 2
  185903. 3d328eba80 Merge pull request \fI\%#42625\fP from twangboy/fix_win_wua
  185904. .IP \(bu 2
  185905. 1340c15ce7 Add general usage instructions
  185906. .IP \(bu 2
  185907. 19f34bda55 Fix docs, formatting
  185908. .IP \(bu 2
  185909. b17495c9c8 Fix problem with list when install=True
  185910. .UNINDENT
  185911. .IP \(bu 2
  185912. \fBISSUE\fP \fI\%#42514\fP: (\fI\%rickh563\fP) \fImodule.run\fP does not work as expected in 2017.7.0 (refs: \fI\%#42602\fP)
  185913. .IP \(bu 2
  185914. \fBPR\fP \fI\%#42602\fP: (\fI\%garethgreenaway\fP) Use superseded and deprecated configuration from pillar
  185915. @ \fI2017\-07\-31 18:53:06 UTC\fP
  185916. .INDENT 2.0
  185917. .IP \(bu 2
  185918. 25094ad9b1 Merge pull request \fI\%#42602\fP from garethgreenaway/42514_2017_7_superseded_deprecated_from_pillar
  185919. .IP \(bu 2
  185920. 2e132daa73 Slight update to formatting
  185921. .IP \(bu 2
  185922. 74bae13939 Small update to something I missed in the first commit. Updating tests to also test for pillar values.
  185923. .IP \(bu 2
  185924. 928a4808dd Updating the superseded and deprecated decorators to work when specified as pillar values.
  185925. .UNINDENT
  185926. .IP \(bu 2
  185927. \fBPR\fP \fI\%#42621\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185928. @ \fI2017\-07\-28 19:45:51 UTC\fP
  185929. .INDENT 2.0
  185930. .IP \(bu 2
  185931. b7cd30d3ee Merge pull request \fI\%#42621\fP from rallytime/merge\-2017.7
  185932. .IP \(bu 2
  185933. 58dcb58a47 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185934. .INDENT 2.0
  185935. .IP \(bu 2
  185936. cbf752cd73 Merge pull request \fI\%#42515\fP from gtmanfred/backslash
  185937. .INDENT 2.0
  185938. .IP \(bu 2
  185939. cc4e45656d Allow not interpreting backslashes in the repl
  185940. .UNINDENT
  185941. .IP \(bu 2
  185942. 549495831f Merge pull request \fI\%#42586\fP from gdubroeucq/2016.11
  185943. .INDENT 2.0
  185944. .IP \(bu 2
  185945. 9c0b5cc1d6 Remove extra newline
  185946. .IP \(bu 2
  185947. d2ef4483e4 yumpkg.py: clean
  185948. .IP \(bu 2
  185949. a96f7c09e0 yumpkg.py: add option to the command "check\-update"
  185950. .UNINDENT
  185951. .IP \(bu 2
  185952. 6b45debf28 Merge pull request \fI\%#41988\fP from redmatter/fix\-dockerng\-network\-matching
  185953. .INDENT 2.0
  185954. .IP \(bu 2
  185955. 9eea796da8 Add regression tests for \fI\%#41982\fP
  185956. .IP \(bu 2
  185957. 3369f0072f Fix broken unit test test_network_absent
  185958. .IP \(bu 2
  185959. 0ef6cf634c Add trace logging of dockerng.networks result
  185960. .IP \(bu 2
  185961. 515c612808 Fix dockerng.network_* name matching
  185962. .UNINDENT
  185963. .UNINDENT
  185964. .UNINDENT
  185965. .IP \(bu 2
  185966. \fBISSUE\fP \fI\%#34245\fP: (\fI\%Talkless\fP) ini.options_present always report state change (refs: \fI\%#41690\fP)
  185967. .IP \(bu 2
  185968. \fBPR\fP \fI\%#42618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41690\fP to 2017.7
  185969. @ \fI2017\-07\-28 19:27:11 UTC\fP
  185970. .INDENT 2.0
  185971. .IP \(bu 2
  185972. \fBPR\fP \fI\%#41690\fP: (\fI\%m03\fP) Fix issue \fI\%#34245\fP with ini.options_present reporting changes (refs: \fI\%#42618\fP)
  185973. .IP \(bu 2
  185974. d48749b476 Merge pull request \fI\%#42618\fP from rallytime/bp\-41690
  185975. .IP \(bu 2
  185976. 22c6a7c7ff Improve output precision
  185977. .IP \(bu 2
  185978. ee4ea6b860 Fix \fI\%#34245\fP ini.options_present reporting changes
  185979. .UNINDENT
  185980. .IP \(bu 2
  185981. \fBISSUE\fP \fI\%#42588\fP: (\fI\%ixs\fP) salt\-ssh fails when using scan roster and detected minions are uncached (refs: \fI\%#42589\fP)
  185982. .IP \(bu 2
  185983. \fBPR\fP \fI\%#42619\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42589\fP to 2017.7
  185984. @ \fI2017\-07\-28 19:26:36 UTC\fP
  185985. .INDENT 2.0
  185986. .IP \(bu 2
  185987. \fBPR\fP \fI\%#42589\fP: (\fI\%ixs\fP) Fix ssh\-salt calls with scan roster for uncached clients (refs: \fI\%#42619\fP)
  185988. .IP \(bu 2
  185989. e671242a4f Merge pull request \fI\%#42619\fP from rallytime/bp\-42589
  185990. .IP \(bu 2
  185991. cd5eb93903 Fix ssh\-salt calls with scan roster for uncached clients
  185992. .UNINDENT
  185993. .IP \(bu 2
  185994. \fBISSUE\fP \fI\%#41982\fP: (\fI\%abulford\fP) dockerng.network_* matches too easily (refs: \fI\%#42006\fP, \fI\%#41988\fP)
  185995. .IP \(bu 2
  185996. \fBPR\fP \fI\%#42006\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching
  185997. @ \fI2017\-07\-28 15:52:52 UTC\fP
  185998. .INDENT 2.0
  185999. .IP \(bu 2
  186000. \fBPR\fP \fI\%#41988\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching (refs: \fI\%#42006\fP)
  186001. .IP \(bu 2
  186002. 7d385f8bdc Merge pull request \fI\%#42006\fP from redmatter/fix\-dockerng\-network\-matching\-2017.7
  186003. .IP \(bu 2
  186004. f83960c02a Lint: Remove extra line at end of file.
  186005. .IP \(bu 2
  186006. c7d364ec56 Add regression tests for \fI\%#41982\fP
  186007. .IP \(bu 2
  186008. d31f2913bd Fix broken unit test test_network_absent
  186009. .IP \(bu 2
  186010. d42f781c64 Add trace logging of docker.networks result
  186011. .IP \(bu 2
  186012. 8c00c63b55 Fix dockerng.network_* name matching
  186013. .UNINDENT
  186014. .IP \(bu 2
  186015. \fBISSUE\fP \fI\%#12587\fP: (\fI\%Katafalkas\fP) salt\-cloud custom functions/actions (refs: \fI\%#42616\fP)
  186016. .IP \(bu 2
  186017. \fBPR\fP \fI\%#42616\fP: (\fI\%amendlik\fP) Sync cloud modules
  186018. @ \fI2017\-07\-28 15:40:36 UTC\fP
  186019. .INDENT 2.0
  186020. .IP \(bu 2
  186021. ee8aee1496 Merge pull request \fI\%#42616\fP from amendlik/sync\-clouds
  186022. .IP \(bu 2
  186023. ab21bd9b5b Sync cloud modules when saltutil.sync_all is run
  186024. .UNINDENT
  186025. .IP \(bu 2
  186026. \fBPR\fP \fI\%#42601\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186027. @ \fI2017\-07\-27 22:32:07 UTC\fP
  186028. .INDENT 2.0
  186029. .IP \(bu 2
  186030. e2dd443002 Merge pull request \fI\%#42601\fP from rallytime/merge\-2017.7
  186031. .IP \(bu 2
  186032. 36a1bcf8c5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186033. .INDENT 2.0
  186034. .IP \(bu 2
  186035. 4b16109122 Merge pull request \fI\%#42339\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-bsc1036125
  186036. .INDENT 2.0
  186037. .IP \(bu 2
  186038. bbba84ce2d Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  186039. .UNINDENT
  186040. .IP \(bu 2
  186041. 6c5a7c604a Merge pull request \fI\%#42077\fP from vutny/fix\-jobs\-scheduled\-with\-whens
  186042. .INDENT 2.0
  186043. .IP \(bu 2
  186044. b1960cea44 Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  186045. .UNINDENT
  186046. .IP \(bu 2
  186047. f9cb536589 Merge pull request \fI\%#42414\fP from vutny/unify\-hash\-params\-format
  186048. .INDENT 2.0
  186049. .IP \(bu 2
  186050. d1f2a93368 DOCS: unify hash sum with hash type format
  186051. .UNINDENT
  186052. .IP \(bu 2
  186053. 535c922511 Merge pull request \fI\%#42523\fP from rallytime/fix\-42375
  186054. .INDENT 2.0
  186055. .IP \(bu 2
  186056. 685c2cced6 Add information about returning a tuple with an error message
  186057. .IP \(bu 2
  186058. fa466519c4 Add a mention of the True/False returns with __virtual__()
  186059. .UNINDENT
  186060. .IP \(bu 2
  186061. 0df0e7e749 Merge pull request \fI\%#42527\fP from twangboy/win_wua
  186062. .INDENT 2.0
  186063. .IP \(bu 2
  186064. 0373791f2a Correct capatlization
  186065. .IP \(bu 2
  186066. af3bcc927b Document changes to Windows Update in 10/2016
  186067. .UNINDENT
  186068. .IP \(bu 2
  186069. 69b06586da Merge pull request \fI\%#42551\fP from binocvlar/fix\-lack\-of\-align\-check\-output
  186070. .INDENT 2.0
  186071. .IP \(bu 2
  186072. c4fabaa192 Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  186073. .UNINDENT
  186074. .IP \(bu 2
  186075. 9e0b4e9faf Merge pull request \fI\%#42573\fP from rallytime/bp\-42433
  186076. .INDENT 2.0
  186077. .IP \(bu 2
  186078. 0293429e24 Only force saltenv/pillarenv to be a string when not None
  186079. .UNINDENT
  186080. .IP \(bu 2
  186081. e931ed2517 Merge pull request \fI\%#42571\fP from twangboy/win_add_pythonpath
  186082. .INDENT 2.0
  186083. .IP \(bu 2
  186084. d55a44dd1a Avoid loading user site packages
  186085. .IP \(bu 2
  186086. 9af1eb2741 Ignore any PYTHON* environment vars already on the system
  186087. .IP \(bu 2
  186088. 4e2fb03a95 Add pythonpath to batch files and service
  186089. .UNINDENT
  186090. .IP \(bu 2
  186091. de2f397041 Merge pull request \fI\%#42387\fP from DSRCorporation/bugs/42371_KeyError_WeakValueDict
  186092. .INDENT 2.0
  186093. .IP \(bu 2
  186094. e721c7eee2 Don\(aqt use \fIkey in weakvaluedict\fP because it could lie.
  186095. .UNINDENT
  186096. .IP \(bu 2
  186097. 641a9d7efd Merge pull request \fI\%#41968\fP from root360\-AndreasUlm/fix\-rabbitmqctl\-output\-handler
  186098. .INDENT 2.0
  186099. .IP \(bu 2
  186100. 76fd941d91 added tests for rabbitmq 3.6.10 output handler
  186101. .IP \(bu 2
  186102. 3602af1e1b Fix rabbitmqctl output handler for 3.6.10
  186103. .UNINDENT
  186104. .IP \(bu 2
  186105. 66fede378a Merge pull request \fI\%#42479\fP from gtmanfred/interface
  186106. .INDENT 2.0
  186107. .IP \(bu 2
  186108. c32c1b2803 fix pylint
  186109. .IP \(bu 2
  186110. 99ec634c6b validate ssh_interface for ec2
  186111. .UNINDENT
  186112. .IP \(bu 2
  186113. a925c7029a Merge pull request \fI\%#42516\fP from rallytime/fix\-42405
  186114. .INDENT 2.0
  186115. .IP \(bu 2
  186116. e3a6717efa Add info about top file to pillar walk\-through example to include edit.vim
  186117. .UNINDENT
  186118. .UNINDENT
  186119. .UNINDENT
  186120. .IP \(bu 2
  186121. \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)
  186122. .IP \(bu 2
  186123. \fBPR\fP \fI\%#42290\fP: (\fI\%isbm\fP) Backport of \fI\%#42270\fP
  186124. @ \fI2017\-07\-27 22:30:05 UTC\fP
  186125. .INDENT 2.0
  186126. .IP \(bu 2
  186127. \fBPR\fP \fI\%#42270\fP: (\fI\%The\-Loeki\fP) State module.run/wait misses args when looking for kwargs (refs: \fI\%#42290\fP)
  186128. .IP \(bu 2
  186129. 22eea389fa Merge pull request \fI\%#42290\fP from isbm/isbm\-module_run_parambug_42270_217
  186130. .IP \(bu 2
  186131. e38d432f90 Fix docs
  186132. .IP \(bu 2
  186133. 1e8a56eda5 Describe function tagging
  186134. .IP \(bu 2
  186135. 1d7233224b Describe function batching
  186136. .IP \(bu 2
  186137. 1391a05d5e Bugfix: syntax error in the example
  186138. .IP \(bu 2
  186139. 8c71257a4b Call unnamed parameters properly
  186140. .IP \(bu 2
  186141. 94c97a8f25 Update and correct the error message
  186142. .IP \(bu 2
  186143. ea8351362c Bugfix: args gets ignored alongside named parameters
  186144. .IP \(bu 2
  186145. 74689e3462 Add ability to use tagged functions in the same set
  186146. .UNINDENT
  186147. .IP \(bu 2
  186148. \fBPR\fP \fI\%#42251\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_ip\fP for Windows
  186149. @ \fI2017\-07\-27 19:22:03 UTC\fP
  186150. .INDENT 2.0
  186151. .IP \(bu 2
  186152. 4c20f1cfbb Merge pull request \fI\%#42251\fP from twangboy/unit_win_test_win_ip
  186153. .IP \(bu 2
  186154. 97261bfe69 Fix win_inet_pton check for malformatted ip addresses
  186155. .UNINDENT
  186156. .IP \(bu 2
  186157. \fBPR\fP \fI\%#42255\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_system\fP for Windows
  186158. @ \fI2017\-07\-27 19:12:42 UTC\fP
  186159. .INDENT 2.0
  186160. .IP \(bu 2
  186161. 2985e4c0e6 Merge pull request \fI\%#42255\fP from twangboy/win_unit_test_win_system
  186162. .IP \(bu 2
  186163. acc0345bc8 Fix unit tests
  186164. .UNINDENT
  186165. .IP \(bu 2
  186166. \fBPR\fP \fI\%#42528\fP: (\fI\%twangboy\fP) Namespace \fIcmp_to_key\fP in the pkg state for Windows
  186167. @ \fI2017\-07\-27 18:30:23 UTC\fP
  186168. .INDENT 2.0
  186169. .IP \(bu 2
  186170. a573386260 Merge pull request \fI\%#42528\fP from twangboy/win_fix_pkg_state
  186171. .IP \(bu 2
  186172. a040443fa1 Move functools import inside pylint escapes
  186173. .IP \(bu 2
  186174. 118d5134e2 Remove namespaced function \fIcmp_to_key\fP
  186175. .IP \(bu 2
  186176. a02c91adda Namespace \fIcmp_to_key\fP in the pkg state for Windows
  186177. .UNINDENT
  186178. .IP \(bu 2
  186179. \fBISSUE\fP \fI\%#42521\fP: (\fI\%rickh563\fP) chocolatey.installed broken on 2017.7.0 (refs: \fI\%#42534\fP)
  186180. .IP \(bu 2
  186181. \fBPR\fP \fI\%#42534\fP: (\fI\%jmarinaro\fP) Fixes AttributeError thrown by chocolatey state
  186182. @ \fI2017\-07\-27 17:59:50 UTC\fP
  186183. .INDENT 2.0
  186184. .IP \(bu 2
  186185. 62ae12bcd9 Merge pull request \fI\%#42534\fP from jmarinaro/2017.7
  186186. .IP \(bu 2
  186187. b242d2d6b5 Fixes AttributeError thrown by chocolatey state Fixes \fI\%#42521\fP
  186188. .UNINDENT
  186189. .IP \(bu 2
  186190. \fBISSUE\fP \fI\%#40354\fP: (\fI\%exc414\fP) CentOS 6.8 Init Script \- Sed unterminated address regex (refs: \fI\%#42557\fP)
  186191. .IP \(bu 2
  186192. \fBISSUE\fP \fI\%#37312\fP: (\fI\%gtmanfred\fP) CLI flags should take overload settings in the config files (refs: \fI\%#42557\fP)
  186193. .IP \(bu 2
  186194. \fBPR\fP \fI\%#42557\fP: (\fI\%justincbeard\fP) Fixing output so \-\-force\-color and \-\-no\-color override master and min…
  186195. @ \fI2017\-07\-27 17:07:33 UTC\fP
  186196. .INDENT 2.0
  186197. .IP \(bu 2
  186198. 52605c249d Merge pull request \fI\%#42557\fP from justincbeard/bugfix_37312
  186199. .IP \(bu 2
  186200. ee3bc6eb10 Fixing output so \-\-force\-color and \-\-no\-color override master and minion config color value
  186201. .UNINDENT
  186202. .IP \(bu 2
  186203. \fBPR\fP \fI\%#42567\fP: (\fI\%skizunov\fP) Fix disable_<tag\-name> config option
  186204. @ \fI2017\-07\-27 17:05:00 UTC\fP
  186205. .INDENT 2.0
  186206. .IP \(bu 2
  186207. ab33517efb Merge pull request \fI\%#42567\fP from skizunov/develop3
  186208. .IP \(bu 2
  186209. 0f0b7e3e0a Fix disable_<tag\-name> config option
  186210. .UNINDENT
  186211. .IP \(bu 2
  186212. \fBPR\fP \fI\%#42577\fP: (\fI\%twangboy\fP) Compile scripts with \-E \-s params for Salt on Mac
  186213. @ \fI2017\-07\-26 22:44:37 UTC\fP
  186214. .INDENT 2.0
  186215. .IP \(bu 2
  186216. 30bb941179 Merge pull request \fI\%#42577\fP from twangboy/mac_scripts
  186217. .IP \(bu 2
  186218. 69d5973651 Compile scripts with \-E \-s params for python
  186219. .UNINDENT
  186220. .IP \(bu 2
  186221. \fBPR\fP \fI\%#42524\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186222. @ \fI2017\-07\-26 22:41:06 UTC\fP
  186223. .INDENT 2.0
  186224. .IP \(bu 2
  186225. 60cd078164 Merge pull request \fI\%#42524\fP from rallytime/merge\-2017.7
  186226. .IP \(bu 2
  186227. 14d8d795f6 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186228. .INDENT 2.0
  186229. .IP \(bu 2
  186230. 1bd5bbccc2 Merge pull request \fI\%#42509\fP from clem\-compilatio/fix\-42417
  186231. .INDENT 2.0
  186232. .IP \(bu 2
  186233. 72924b06b8 Fix _assign_floating_ips in openstack.py
  186234. .UNINDENT
  186235. .IP \(bu 2
  186236. 4bf35a74de Merge pull request \fI\%#42464\fP from garethgreenaway/2016_11_remove_tmp_identity_file
  186237. .INDENT 2.0
  186238. .IP \(bu 2
  186239. ff24102d51 Uncomment the line that removes the temporary identity file.
  186240. .UNINDENT
  186241. .IP \(bu 2
  186242. e2120dbd0e Merge pull request \fI\%#42443\fP from garethgreenaway/42357_pass_args_kwargs_correctly
  186243. .INDENT 2.0
  186244. .IP \(bu 2
  186245. 635810b3e3 Updating the slack engine in 2016.11 to pass the args and kwrags correctly to LocalClient
  186246. .UNINDENT
  186247. .IP \(bu 2
  186248. 8262cc9054 Merge pull request \fI\%#42200\fP from shengis/sqlite3_fix_row_absent_2016.11
  186249. .INDENT 2.0
  186250. .IP \(bu 2
  186251. 407b8f4bb3 Fix \fI\%#42198\fP If where_args is not set, not using it in the delete request.
  186252. .UNINDENT
  186253. .IP \(bu 2
  186254. d9df97e5a3 Merge pull request \fI\%#42424\fP from goten4/2016.11
  186255. .INDENT 2.0
  186256. .IP \(bu 2
  186257. 1c0574d05e Fix error message when tornado or pycurl is not installed
  186258. .UNINDENT
  186259. .UNINDENT
  186260. .UNINDENT
  186261. .IP \(bu 2
  186262. \fBPR\fP \fI\%#42575\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  186263. @ \fI2017\-07\-26 22:39:10 UTC\fP
  186264. .INDENT 2.0
  186265. .IP \(bu 2
  186266. 2acde837df Merge pull request \fI\%#42575\fP from rallytime/merge\-2017.7.1\-into\-2017.7
  186267. .IP \(bu 2
  186268. 63bb0fb2c4 pass in empty kwarg for reactor
  186269. .IP \(bu 2
  186270. 2868061ee4 update chunk, not kwarg in chunk
  186271. .IP \(bu 2
  186272. 46715e9d94 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  186273. .UNINDENT
  186274. .IP \(bu 2
  186275. \fBPR\fP \fI\%#42555\fP: (\fI\%Ch3LL\fP) add changelog to 2017.7.1 release notes
  186276. @ \fI2017\-07\-26 14:57:43 UTC\fP
  186277. .INDENT 2.0
  186278. .IP \(bu 2
  186279. 1d93e92194 Merge pull request \fI\%#42555\fP from Ch3LL/7.1_add_changelog
  186280. .IP \(bu 2
  186281. fb69e71093 add changelog to 2017.7.1 release notes
  186282. .UNINDENT
  186283. .IP \(bu 2
  186284. \fBPR\fP \fI\%#42266\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_file\fP for Windows
  186285. @ \fI2017\-07\-25 20:26:32 UTC\fP
  186286. .INDENT 2.0
  186287. .IP \(bu 2
  186288. 07c2793e86 Merge pull request \fI\%#42266\fP from twangboy/win_unit_states_test_file
  186289. .IP \(bu 2
  186290. 669aaee10d Mock file exists properly
  186291. .IP \(bu 2
  186292. a4231c9827 Fix ret mock for linux
  186293. .IP \(bu 2
  186294. 0c484f8979 Fix unit tests on Windows
  186295. .UNINDENT
  186296. .IP \(bu 2
  186297. \fBPR\fP \fI\%#42484\fP: (\fI\%shengis\fP) Fix a potential Exception with an explicit error message
  186298. @ \fI2017\-07\-25 18:34:12 UTC\fP
  186299. .INDENT 2.0
  186300. .IP \(bu 2
  186301. df417eae17 Merge pull request \fI\%#42484\fP from shengis/fix\-explicit\-error\-msg\-x509\-sign\-remote
  186302. .IP \(bu 2
  186303. 0b548c72e1 Fix a potential Exception with an explicit error message
  186304. .UNINDENT
  186305. .IP \(bu 2
  186306. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#396\fP: (\fI\%Ch3LL\fP) Python3 Fix Test: JoyentTest.test_instance (refs: \fI\%#42529\fP)
  186307. .IP \(bu 2
  186308. \fBISSUE\fP \fI\%#41720\fP: (\fI\%rallytime\fP) [Py3] Some salt\-cloud drivers do not work using Python 3 (refs: \fI\%#42529\fP)
  186309. .IP \(bu 2
  186310. \fBPR\fP \fI\%#42529\fP: (\fI\%gtmanfred\fP) Fix joyent for python3
  186311. @ \fI2017\-07\-25 16:37:48 UTC\fP
  186312. .INDENT 2.0
  186313. .IP \(bu 2
  186314. 0f25ec76f9 Merge pull request \fI\%#42529\fP from gtmanfred/2017.7
  186315. .IP \(bu 2
  186316. b7ebb4d81a these drivers do not actually have an issue.
  186317. .IP \(bu 2
  186318. e90ca7a114 use salt encoding for joyent on 2017.7
  186319. .UNINDENT
  186320. .IP \(bu 2
  186321. \fBPR\fP \fI\%#42465\fP: (\fI\%garethgreenaway\fP) [2017.7] Small fix to modules/git.py
  186322. @ \fI2017\-07\-24 17:24:55 UTC\fP
  186323. .INDENT 2.0
  186324. .IP \(bu 2
  186325. 488457c5a0 Merge pull request \fI\%#42465\fP from garethgreenaway/2017_7_remove_tmp_identity_file
  186326. .IP \(bu 2
  186327. 1920dc6079 Uncomment the line that removes the temporary identity file.
  186328. .UNINDENT
  186329. .IP \(bu 2
  186330. \fBISSUE\fP \fI\%#23516\fP: (\fI\%dkiser\fP) BUG: cron job scheduler sporadically works (refs: \fI\%#42077\fP)
  186331. .IP \(bu 2
  186332. \fBPR\fP \fI\%#42107\fP: (\fI\%vutny\fP) [2017.7] Fix scheduled jobs if \fIwhen\fP parameter is a list
  186333. @ \fI2017\-07\-24 17:04:12 UTC\fP
  186334. .INDENT 2.0
  186335. .IP \(bu 2
  186336. \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)
  186337. .IP \(bu 2
  186338. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  186339. .IP \(bu 2
  186340. 4f044999fa Merge pull request \fI\%#42107\fP from vutny/2017.7\-fix\-jobs\-scheduled\-with\-whens
  186341. .IP \(bu 2
  186342. 905be493d4 [2017.7] Fix scheduled jobs if \fIwhen\fP parameter is a list
  186343. .UNINDENT
  186344. .IP \(bu 2
  186345. \fBPR\fP \fI\%#42506\fP: (\fI\%terminalmage\fP) Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner
  186346. @ \fI2017\-07\-24 16:59:21 UTC\fP
  186347. .INDENT 2.0
  186348. .IP \(bu 2
  186349. 6eaa0763e1 Merge pull request \fI\%#42506\fP from terminalmage/fix\-git\-pillar\-runner
  186350. .IP \(bu 2
  186351. 6352f447ce Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner
  186352. .UNINDENT
  186353. .IP \(bu 2
  186354. \fBPR\fP \fI\%#42502\fP: (\fI\%shengis\fP) Fix azurerm query to show IPs
  186355. @ \fI2017\-07\-24 15:54:45 UTC\fP
  186356. .INDENT 2.0
  186357. .IP \(bu 2
  186358. b88e645f10 Merge pull request \fI\%#42502\fP from shengis/fix_azurerm_request_ips
  186359. .IP \(bu 2
  186360. 92f1890701 Fix azurerm query to show IPs
  186361. .UNINDENT
  186362. .IP \(bu 2
  186363. \fBPR\fP \fI\%#42180\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_timezone\fP for Windows
  186364. @ \fI2017\-07\-24 14:46:16 UTC\fP
  186365. .INDENT 2.0
  186366. .IP \(bu 2
  186367. c793d83d26 Merge pull request \fI\%#42180\fP from twangboy/win_unit_test_timezone
  186368. .IP \(bu 2
  186369. 832a3d86dd Skip tests that use os.symlink on Windows
  186370. .UNINDENT
  186371. .IP \(bu 2
  186372. \fBPR\fP \fI\%#42474\fP: (\fI\%whiteinge\fP) Cmd arg kwarg parsing test
  186373. @ \fI2017\-07\-24 14:13:30 UTC\fP
  186374. .INDENT 2.0
  186375. .IP \(bu 2
  186376. \fBPR\fP \fI\%#39646\fP: (\fI\%terminalmage\fP) Handle deprecation of passing string args to load_args_and_kwargs (refs: \fI\%#42474\fP)
  186377. .IP \(bu 2
  186378. 083ff00410 Merge pull request \fI\%#42474\fP from whiteinge/cmd\-arg\-kwarg\-parsing\-test
  186379. .IP \(bu 2
  186380. 0cc0c0967a Lint fixes
  186381. .IP \(bu 2
  186382. 66093738c8 Add back support for string kwargs
  186383. .IP \(bu 2
  186384. 622ff5be40 Add LocalClient.cmd test for arg/kwarg parsing
  186385. .IP \(bu 2
  186386. 9f4eb80d90 Add a test.arg variant that cleans the pub kwargs by default
  186387. .UNINDENT
  186388. .IP \(bu 2
  186389. \fBPR\fP \fI\%#42425\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186390. @ \fI2017\-07\-21 22:43:41 UTC\fP
  186391. .INDENT 2.0
  186392. .IP \(bu 2
  186393. c91a5e539e Merge pull request \fI\%#42425\fP from rallytime/merge\-2017.7
  186394. .IP \(bu 2
  186395. ea457aa0a5 Remove ALIASES block from template util
  186396. .IP \(bu 2
  186397. c673b64583 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186398. .INDENT 2.0
  186399. .IP \(bu 2
  186400. 42bb1a64ca Merge pull request \fI\%#42350\fP from twangboy/win_fix_ver_grains_2016.11
  186401. .INDENT 2.0
  186402. .IP \(bu 2
  186403. 8c048403d7 Detect Server OS with a desktop release name
  186404. .UNINDENT
  186405. .IP \(bu 2
  186406. 0a72e56f6b Merge pull request \fI\%#42356\fP from meaksh/2016.11\-AliasesLoader\-wrapper\-fix
  186407. .INDENT 2.0
  186408. .IP \(bu 2
  186409. 915d94219e Allow to check whether a function is available on the AliasesLoader wrapper
  186410. .UNINDENT
  186411. .IP \(bu 2
  186412. 10eb7b7a79 Merge pull request \fI\%#42368\fP from twangboy/win_fix_build_2016.11
  186413. .INDENT 2.0
  186414. .IP \(bu 2
  186415. a7c910c31e Remove build and dist directories before install
  186416. .UNINDENT
  186417. .IP \(bu 2
  186418. 016189f62f Merge pull request \fI\%#42370\fP from rallytime/merge\-2016.11
  186419. .INDENT 2.0
  186420. .IP \(bu 2
  186421. 0aa5dde1de Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  186422. .IP \(bu 2
  186423. e9b0f20f8a Merge pull request \fI\%#42359\fP from Ch3LL/doc\-update\-2016.3
  186424. .INDENT 2.0
  186425. .IP \(bu 2
  186426. dc85b5edbe [2016.3] Update version numbers in doc config for 2017.7.0 release
  186427. .UNINDENT
  186428. .UNINDENT
  186429. .IP \(bu 2
  186430. f06a6f1796 Merge pull request \fI\%#42360\fP from Ch3LL/doc\-update\-2016.11
  186431. .INDENT 2.0
  186432. .IP \(bu 2
  186433. b90b7a7506 [2016.11] Update version numbers in doc config for 2017.7.0 release
  186434. .UNINDENT
  186435. .IP \(bu 2
  186436. e0595b0a0f Merge pull request \fI\%#42319\fP from rallytime/config\-docs
  186437. .INDENT 2.0
  186438. .IP \(bu 2
  186439. b40f980632 Add more documentation for config options that are missing from master/minion docs
  186440. .UNINDENT
  186441. .IP \(bu 2
  186442. 78940400e3 Merge pull request \fI\%#42352\fP from CorvinM/issue42333
  186443. .INDENT 2.0
  186444. .IP \(bu 2
  186445. 526b6ee14d Multiple documentation fixes
  186446. .UNINDENT
  186447. .UNINDENT
  186448. .UNINDENT
  186449. .IP \(bu 2
  186450. \fBISSUE\fP \fI\%#42357\fP: (\fI\%Giandom\fP) Salt pillarenv problem with slack engine (refs: \fI\%#42443\fP, \fI\%#42444\fP)
  186451. .IP \(bu 2
  186452. \fBPR\fP \fI\%#42444\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to slack engine
  186453. @ \fI2017\-07\-21 22:03:48 UTC\fP
  186454. .INDENT 2.0
  186455. .IP \(bu 2
  186456. 10e4d9234b Merge pull request \fI\%#42444\fP from garethgreenaway/42357_2017_7_pass_args_kwargs_correctly
  186457. .IP \(bu 2
  186458. f411cfc2a9 Updating the slack engine in 2017.7 to pass the args and kwrags correctly to LocalClient
  186459. .UNINDENT
  186460. .IP \(bu 2
  186461. \fBPR\fP \fI\%#42461\fP: (\fI\%rallytime\fP) Bump warning version from Oxygen to Fluorine in roster cache
  186462. @ \fI2017\-07\-21 21:33:25 UTC\fP
  186463. .INDENT 2.0
  186464. .IP \(bu 2
  186465. 723be49fac Merge pull request \fI\%#42461\fP from rallytime/bump\-roster\-cache\-deprecations
  186466. .IP \(bu 2
  186467. c0df0137f5 Bump warning version from Oxygen to Fluorine in roster cache
  186468. .UNINDENT
  186469. .IP \(bu 2
  186470. \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)
  186471. .IP \(bu 2
  186472. \fBPR\fP \fI\%#42436\fP: (\fI\%garethgreenaway\fP) Fixes to versions function in manage runner
  186473. @ \fI2017\-07\-21 19:41:07 UTC\fP
  186474. .INDENT 2.0
  186475. .IP \(bu 2
  186476. 09521602c1 Merge pull request \fI\%#42436\fP from garethgreenaway/42374_manage_runner_minion_offline
  186477. .IP \(bu 2
  186478. 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.
  186479. .UNINDENT
  186480. .IP \(bu 2
  186481. \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)
  186482. .IP \(bu 2
  186483. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42812\fP)
  186484. @ \fI2017\-07\-21 19:40:34 UTC\fP
  186485. .INDENT 2.0
  186486. .IP \(bu 2
  186487. 54193ea543 Merge pull request \fI\%#42435\fP from terminalmage/issue42427
  186488. .IP \(bu 2
  186489. 31273c7ec1 Modify our custom YAML loader to treat unicode literals as unicode strings
  186490. .UNINDENT
  186491. .IP \(bu 2
  186492. \fBISSUE\fP \fI\%#42381\fP: (\fI\%zebooka\fP) Git.detached broken in 2017.7.0 (refs: \fI\%#42399\fP)
  186493. .IP \(bu 2
  186494. \fBISSUE\fP \fI\%#38878\fP: (\fI\%tomlaredo\fP) [Naming consistency] git.latest "rev" option VS git.detached "ref" option (refs: \fI\%#38898\fP)
  186495. .IP \(bu 2
  186496. \fBPR\fP \fI\%#42399\fP: (\fI\%rallytime\fP) Update old "ref" references to "rev" in git.detached state
  186497. @ \fI2017\-07\-21 19:38:59 UTC\fP
  186498. .INDENT 2.0
  186499. .IP \(bu 2
  186500. \fBPR\fP \fI\%#38898\fP: (\fI\%terminalmage\fP) git.detached: rename ref to rev for consistency (refs: \fI\%#42399\fP)
  186501. .IP \(bu 2
  186502. 0b3179135c Merge pull request \fI\%#42399\fP from rallytime/fix\-42381
  186503. .IP \(bu 2
  186504. d9d94fe02f Update old "ref" references to "rev" in git.detached state
  186505. .UNINDENT
  186506. .IP \(bu 2
  186507. \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)
  186508. .IP \(bu 2
  186509. \fBPR\fP \fI\%#42031\fP: (\fI\%skizunov\fP) Fix: Reactor emits critical error
  186510. @ \fI2017\-07\-21 19:38:34 UTC\fP
  186511. .INDENT 2.0
  186512. .IP \(bu 2
  186513. bd4adb483d Merge pull request \fI\%#42031\fP from skizunov/develop3
  186514. .IP \(bu 2
  186515. 540977b4b1 Fix: Reactor emits critical error
  186516. .UNINDENT
  186517. .IP \(bu 2
  186518. \fBISSUE\fP \fI\%#41949\fP: (\fI\%jrporcaro\fP) Event returner doesn\(aqt work with Windows Master (refs: \fI\%#42027\fP)
  186519. .IP \(bu 2
  186520. \fBPR\fP \fI\%#42027\fP: (\fI\%gtmanfred\fP) import salt.minion for EventReturn for Windows
  186521. @ \fI2017\-07\-21 19:37:03 UTC\fP
  186522. .INDENT 2.0
  186523. .IP \(bu 2
  186524. 3abf7ad7d7 Merge pull request \fI\%#42027\fP from gtmanfred/2017.7
  186525. .IP \(bu 2
  186526. fd4458b6c7 import salt.minion for EventReturn for Windows
  186527. .UNINDENT
  186528. .IP \(bu 2
  186529. \fBPR\fP \fI\%#42454\fP: (\fI\%terminalmage\fP) Document future renaming of new rand_str jinja filter
  186530. @ \fI2017\-07\-21 18:47:51 UTC\fP
  186531. .INDENT 2.0
  186532. .IP \(bu 2
  186533. 994d3dc74a Merge pull request \fI\%#42454\fP from terminalmage/jinja\-docs\-2017.7
  186534. .IP \(bu 2
  186535. 98b661406e Document future renaming of new rand_str jinja filter
  186536. .UNINDENT
  186537. .IP \(bu 2
  186538. \fBPR\fP \fI\%#42452\fP: (\fI\%Ch3LL\fP) update windows urls to new py2/py3 naming scheme
  186539. @ \fI2017\-07\-21 17:20:47 UTC\fP
  186540. .INDENT 2.0
  186541. .IP \(bu 2
  186542. 4480075129 Merge pull request \fI\%#42452\fP from Ch3LL/fix_url_windows
  186543. .IP \(bu 2
  186544. 3f4a918f73 update windows urls to new py2/py3 naming scheme
  186545. .UNINDENT
  186546. .IP \(bu 2
  186547. \fBISSUE\fP \fI\%#42404\fP: (\fI\%gabekahen\fP) [2017.7] file.managed with cmd_check "No such file or directory" (refs: \fI\%#42411\fP)
  186548. .IP \(bu 2
  186549. \fBISSUE\fP \fI\%#33708\fP: (\fI\%pepinje\fP) visudo check command leaves cache file in /tmp (refs: \fI\%#42411\fP, \fI\%#38063\fP)
  186550. .IP \(bu 2
  186551. \fBPR\fP \fI\%#42411\fP: (\fI\%seedickcode\fP) Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  186552. @ \fI2017\-07\-20 21:59:17 UTC\fP
  186553. .INDENT 2.0
  186554. .IP \(bu 2
  186555. \fBPR\fP \fI\%#38063\fP: (\fI\%llua\fP) tmp file clean up in file.manage \- fix for \fI\%#33708\fP (refs: \fI\%#42411\fP)
  186556. .IP \(bu 2
  186557. 33e90be1fe Merge pull request \fI\%#42411\fP from seedickcode/check_cmd_fix
  186558. .IP \(bu 2
  186559. 4ae3911f01 Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  186560. .UNINDENT
  186561. .IP \(bu 2
  186562. \fBPR\fP \fI\%#42409\fP: (\fI\%twangboy\fP) Add Scripts to build Py3 on Mac
  186563. @ \fI2017\-07\-20 21:36:34 UTC\fP
  186564. .INDENT 2.0
  186565. .IP \(bu 2
  186566. edde31376a Merge pull request \fI\%#42409\fP from twangboy/mac_py3_scripts
  186567. .IP \(bu 2
  186568. ac0e04af72 Remove build and dist, sign pkgs
  186569. .IP \(bu 2
  186570. 9d66e273c4 Fix hard coded pip path
  186571. .IP \(bu 2
  186572. 7b8d6cbbd2 Add support for Py3
  186573. .IP \(bu 2
  186574. aa4eed93c8 Update Python and other reqs
  186575. .UNINDENT
  186576. .IP \(bu 2
  186577. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  186578. .IP \(bu 2
  186579. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42573\fP)
  186580. @ \fI2017\-07\-20 21:32:24 UTC\fP
  186581. .INDENT 2.0
  186582. .IP \(bu 2
  186583. 82982f940d Merge pull request \fI\%#42433\fP from terminalmage/issue42403
  186584. .UNINDENT
  186585. .IP \(bu 2
  186586. \fBPR\fP \fI\%#42408\fP: (\fI\%CorvinM\fP) Fix documentation misformat in salt.states.file.replace
  186587. @ \fI2017\-07\-20 00:45:43 UTC\fP
  186588. .INDENT 2.0
  186589. .IP \(bu 2
  186590. a71938cefe Merge pull request \fI\%#42408\fP from CorvinM/file\-replace\-doc\-fix
  186591. .IP \(bu 2
  186592. 246a2b3e74 Fix documentation misformat in salt.states.file.replace
  186593. .UNINDENT
  186594. .IP \(bu 2
  186595. \fBPR\fP \fI\%#42347\fP: (\fI\%twangboy\fP) Fixes problem with Version and OS Release related grains on certain versions of Python
  186596. @ \fI2017\-07\-19 17:05:43 UTC\fP
  186597. .INDENT 2.0
  186598. .IP \(bu 2
  186599. d385dfd19d Merge pull request \fI\%#42347\fP from twangboy/win_fix_ver_grains
  186600. .IP \(bu 2
  186601. ef1f663fc9 Detect server OS with a desktop release name
  186602. .UNINDENT
  186603. .IP \(bu 2
  186604. \fBPR\fP \fI\%#42366\fP: (\fI\%twangboy\fP) Remove build and dist directories before install
  186605. @ \fI2017\-07\-19 16:37:41 UTC\fP
  186606. .INDENT 2.0
  186607. .IP \(bu 2
  186608. eb9e4206c9 Merge pull request \fI\%#42366\fP from twangboy/win_fix_build
  186609. .IP \(bu 2
  186610. 0946002713 Add blank line after delete
  186611. .IP \(bu 2
  186612. f7c0bb4f46 Remove build and dist directories before install
  186613. .UNINDENT
  186614. .IP \(bu 2
  186615. \fBPR\fP \fI\%#42373\fP: (\fI\%Ch3LL\fP) Add initial 2017.7.1 Release Notes File
  186616. @ \fI2017\-07\-19 16:28:46 UTC\fP
  186617. .INDENT 2.0
  186618. .IP \(bu 2
  186619. af7820f25d Merge pull request \fI\%#42373\fP from Ch3LL/add_2017.7.1
  186620. .IP \(bu 2
  186621. ce1c1b6d28 Add initial 2017.7.1 Release Notes File
  186622. .UNINDENT
  186623. .IP \(bu 2
  186624. \fBPR\fP \fI\%#42150\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pip\fP for Windows
  186625. @ \fI2017\-07\-19 16:01:17 UTC\fP
  186626. .INDENT 2.0
  186627. .IP \(bu 2
  186628. 59e012b485 Merge pull request \fI\%#42150\fP from twangboy/win_unit_test_pip
  186629. .IP \(bu 2
  186630. 4ee24202fc Fix unit tests for test_pip
  186631. .UNINDENT
  186632. .IP \(bu 2
  186633. \fBPR\fP \fI\%#42154\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_reg_win\fP for Windows
  186634. @ \fI2017\-07\-19 16:00:38 UTC\fP
  186635. .INDENT 2.0
  186636. .IP \(bu 2
  186637. ade25c6b34 Merge pull request \fI\%#42154\fP from twangboy/win_unit_test_reg
  186638. .IP \(bu 2
  186639. 00d9a52802 Fix problem with handling REG_QWORD in list values
  186640. .UNINDENT
  186641. .IP \(bu 2
  186642. \fBPR\fP \fI\%#42182\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_useradd\fP for Windows
  186643. @ \fI2017\-07\-19 15:55:33 UTC\fP
  186644. .INDENT 2.0
  186645. .IP \(bu 2
  186646. 07593675e2 Merge pull request \fI\%#42182\fP from twangboy/win_unit_test_useradd
  186647. .IP \(bu 2
  186648. 8260a71c07 Disable tests that require pwd in Windows
  186649. .UNINDENT
  186650. .IP \(bu 2
  186651. \fBPR\fP \fI\%#42364\fP: (\fI\%twangboy\fP) Windows Package notes for 2017.7.0
  186652. @ \fI2017\-07\-18 19:24:45 UTC\fP
  186653. .INDENT 2.0
  186654. .IP \(bu 2
  186655. a175c40c1d Merge pull request \fI\%#42364\fP from twangboy/release_notes_2017.7.0
  186656. .IP \(bu 2
  186657. 96517d1355 Add note about patched windows packages
  186658. .UNINDENT
  186659. .IP \(bu 2
  186660. \fBPR\fP \fI\%#42361\fP: (\fI\%Ch3LL\fP) [2017.7] Update version numbers in doc config for 2017.7.0 release
  186661. @ \fI2017\-07\-18 19:23:22 UTC\fP
  186662. .INDENT 2.0
  186663. .IP \(bu 2
  186664. 4dfe50e558 Merge pull request \fI\%#42361\fP from Ch3LL/doc\-update\-2017.7
  186665. .IP \(bu 2
  186666. dc5bb301f7 [2017.7] Update version numbers in doc config for 2017.7.0 release
  186667. .UNINDENT
  186668. .IP \(bu 2
  186669. \fBPR\fP \fI\%#42363\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186670. @ \fI2017\-07\-18 18:40:48 UTC\fP
  186671. .INDENT 2.0
  186672. .IP \(bu 2
  186673. 587138d771 Merge pull request \fI\%#42363\fP from rallytime/merge\-2017.7
  186674. .IP \(bu 2
  186675. 7aa31ff030 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186676. .INDENT 2.0
  186677. .IP \(bu 2
  186678. b256001760 Merge pull request \fI\%#42353\fP from terminalmage/fix\-git\-test
  186679. .INDENT 2.0
  186680. .IP \(bu 2
  186681. 14cf6ce322 is_windows is a function, not a propery/attribute
  186682. .UNINDENT
  186683. .IP \(bu 2
  186684. 866a1febb4 Merge pull request \fI\%#42264\fP from rallytime/fix\-41116
  186685. .INDENT 2.0
  186686. .IP \(bu 2
  186687. bd638880e3 Add mono\-spacing to salt\-minion reference for consistency
  186688. .IP \(bu 2
  186689. 30d62f43da Update minion restart section in FAQ doc for windows
  186690. .UNINDENT
  186691. .IP \(bu 2
  186692. 9a707088ad Merge pull request \fI\%#42275\fP from terminalmage/issue42194
  186693. .INDENT 2.0
  186694. .IP \(bu 2
  186695. 663874908a pkg.installed: pack name/version into pkgs argument
  186696. .UNINDENT
  186697. .IP \(bu 2
  186698. e588f235e0 Merge pull request \fI\%#42269\fP from rallytime/fix\-41721
  186699. .INDENT 2.0
  186700. .IP \(bu 2
  186701. f2250d474a Add a note about using different styles of quotes.
  186702. .IP \(bu 2
  186703. 38d9b3d553 Add some clarity to "multiple quotes" section of yaml docs
  186704. .UNINDENT
  186705. .IP \(bu 2
  186706. 5aaa214a75 Merge pull request \fI\%#42282\fP from rallytime/fix\-42152
  186707. .INDENT 2.0
  186708. .IP \(bu 2
  186709. f032223843 Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  186710. .UNINDENT
  186711. .IP \(bu 2
  186712. fb5697a4bc Merge pull request \fI\%#42308\fP from lubyou/42295\-fix\-file\-absent\-windows
  186713. .INDENT 2.0
  186714. .IP \(bu 2
  186715. 026ccf401a Force file removal on Windows. Fixes \fI\%#42295\fP
  186716. .UNINDENT
  186717. .IP \(bu 2
  186718. da2a8a518f Merge pull request \fI\%#42314\fP from rallytime/fix\-42267
  186719. .INDENT 2.0
  186720. .IP \(bu 2
  186721. c406046940 Add clarification to salt ssh docs about key auto\-generation.
  186722. .UNINDENT
  186723. .IP \(bu 2
  186724. acadd54013 Merge pull request \fI\%#41945\fP from garethgreenaway/41936_allow_identity_files_with_user
  186725. .INDENT 2.0
  186726. .IP \(bu 2
  186727. 44841e5626 Moving the call to cp.get_file inside the with block to ensure the umask is preserved when we grab the file.
  186728. .IP \(bu 2
  186729. f9ba60eed8 Merge pull request \fI\%#1\fP from terminalmage/pr\-41945
  186730. .INDENT 2.0
  186731. .IP \(bu 2
  186732. 1b6026177c Restrict set_umask to mkstemp call only
  186733. .UNINDENT
  186734. .IP \(bu 2
  186735. 68549f3496 Fixing umask to we can set files as executable.
  186736. .IP \(bu 2
  186737. 4949bf3ff3 Updating to swap on the new salt.utils.files.set_umask context_manager
  186738. .IP \(bu 2
  186739. 8faa9f6d92 Updating PR with requested changes.
  186740. .IP \(bu 2
  186741. 494765e939 Updating the git module to allow an identity file to be used when passing the user parameter
  186742. .UNINDENT
  186743. .IP \(bu 2
  186744. f90e04a2bc Merge pull request \fI\%#42289\fP from CorvinM/bp\-41543
  186745. .INDENT 2.0
  186746. .IP \(bu 2
  186747. 357dc22f05 Fix user creation with empty password
  186748. .UNINDENT
  186749. .IP \(bu 2
  186750. a91a3f81b1 Merge pull request \fI\%#42123\fP from vutny/fix\-master\-utils\-import
  186751. .INDENT 2.0
  186752. .IP \(bu 2
  186753. 6bb8b8f98c Add missing doc for \fButils_dirs\fP Minion config option
  186754. .IP \(bu 2
  186755. f1bc58f6d5 Utils: add example of module import
  186756. .UNINDENT
  186757. .IP \(bu 2
  186758. e2aa5114e4 Merge pull request \fI\%#42261\fP from rallytime/minor\-doc\-fix
  186759. .INDENT 2.0
  186760. .IP \(bu 2
  186761. 8c76bbb53d Some minor doc fixes for dnsutil module so they\(aqll render correctly
  186762. .UNINDENT
  186763. .IP \(bu 2
  186764. 3e9dfbc9cc Merge pull request \fI\%#42262\fP from rallytime/bp\-42224
  186765. .INDENT 2.0
  186766. .IP \(bu 2
  186767. c31ded341c Remove duplicate instruction in Openstack Rackspace config example
  186768. .UNINDENT
  186769. .IP \(bu 2
  186770. 7780579c36 Merge pull request \fI\%#42181\fP from garethgreenaway/42137_backport_fix_from_2017_7
  186771. .INDENT 2.0
  186772. .IP \(bu 2
  186773. a34970b45b Back porting the fix for 2017.7 that ensures the order of the names parameter.
  186774. .UNINDENT
  186775. .IP \(bu 2
  186776. 72537868a6 Merge pull request \fI\%#42253\fP from gtmanfred/2016.11
  186777. .INDENT 2.0
  186778. .IP \(bu 2
  186779. 53e25760be Only use unassociated ips when unable to allocate
  186780. .UNINDENT
  186781. .IP \(bu 2
  186782. b2a4698b5d Merge pull request \fI\%#42252\fP from UtahDave/2016.11local
  186783. .INDENT 2.0
  186784. .IP \(bu 2
  186785. e6a9563d47 simple doc updates
  186786. .UNINDENT
  186787. .IP \(bu 2
  186788. 781fe13be7 Merge pull request \fI\%#42235\fP from astronouth7303/patch\-1\-2016.3
  186789. .INDENT 2.0
  186790. .IP \(bu 2
  186791. 4cb51bd03a Make note of dig partial requirement.
  186792. .IP \(bu 2
  186793. 08e7d8351a Abolish references to \fIdig\fP in examples.
  186794. .UNINDENT
  186795. .IP \(bu 2
  186796. 83cbd76f16 Merge pull request \fI\%#42215\fP from twangboy/win_iis_docs
  186797. .INDENT 2.0
  186798. .IP \(bu 2
  186799. c07e22041a Add missing config to example
  186800. .UNINDENT
  186801. .IP \(bu 2
  186802. 274946ab00 Merge pull request \fI\%#42211\fP from terminalmage/issue40928
  186803. .INDENT 2.0
  186804. .IP \(bu 2
  186805. 22a18fa2ed Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  186806. .UNINDENT
  186807. .IP \(bu 2
  186808. 89261cf06c Merge pull request \fI\%#42173\fP from rallytime/bp\-37424
  186809. .INDENT 2.0
  186810. .IP \(bu 2
  186811. 01addb6053 Avoid Early Convert ret[\(aqcomment\(aq] to String
  186812. .UNINDENT
  186813. .IP \(bu 2
  186814. 3b17fb7f83 Merge pull request \fI\%#42175\fP from rallytime/bp\-39366
  186815. .INDENT 2.0
  186816. .IP \(bu 2
  186817. 53f7b987e8 Pass sig to service.status in after_toggle
  186818. .UNINDENT
  186819. .IP \(bu 2
  186820. ea16f47f0a Merge pull request \fI\%#42172\fP from rallytime/merge\-2016.11
  186821. .INDENT 2.0
  186822. .IP \(bu 2
  186823. b1fa332a11 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  186824. .INDENT 2.0
  186825. .IP \(bu 2
  186826. 8fa1fa5bb1 Merge pull request \fI\%#42155\fP from phsteve/doc\-fix\-puppet
  186827. .IP \(bu 2
  186828. fb2cb78a31 Fix docs for puppet.plugin_sync so code\-block renders properly and sync is spelled consistently
  186829. .UNINDENT
  186830. .UNINDENT
  186831. .IP \(bu 2
  186832. 6307b9873f Merge pull request \fI\%#42176\fP from rallytime/bp\-42109
  186833. .INDENT 2.0
  186834. .IP \(bu 2
  186835. 686926daf7 Update aws.rst \- add Debian default username
  186836. .UNINDENT
  186837. .IP \(bu 2
  186838. 28c4e4c3b7 Merge pull request \fI\%#42095\fP from terminalmage/docker\-login\-debugging
  186839. .INDENT 2.0
  186840. .IP \(bu 2
  186841. bd27870a71 Add debug logging to dockerng.login
  186842. .UNINDENT
  186843. .IP \(bu 2
  186844. 2b754bc5af Merge pull request \fI\%#42119\fP from terminalmage/issue42116
  186845. .INDENT 2.0
  186846. .IP \(bu 2
  186847. 9a268949e3 Add integration test for 42116
  186848. .IP \(bu 2
  186849. 1bb42bb609 Fix regression when CLI pillar override is used with salt\-call
  186850. .UNINDENT
  186851. .IP \(bu 2
  186852. 8c0a83cbb5 Merge pull request \fI\%#42121\fP from terminalmage/issue42114
  186853. .INDENT 2.0
  186854. .IP \(bu 2
  186855. d14291267f Fix pillar.get when saltenv is passed
  186856. .UNINDENT
  186857. .IP \(bu 2
  186858. 687992c240 Merge pull request \fI\%#42094\fP from terminalmage/quiet\-exception
  186859. .INDENT 2.0
  186860. .IP \(bu 2
  186861. 47d61f4edf Prevent command from showing in exception when output_loglevel=quiet
  186862. .UNINDENT
  186863. .IP \(bu 2
  186864. dad255160c Merge pull request \fI\%#42163\fP from vutny/fix\-42115
  186865. .INDENT 2.0
  186866. .IP \(bu 2
  186867. b27b1e340a Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  186868. .UNINDENT
  186869. .IP \(bu 2
  186870. 2a8ae2b3b6 Merge pull request \fI\%#42164\fP from Ch3LL/fix_kerb_doc
  186871. .INDENT 2.0
  186872. .IP \(bu 2
  186873. 7c0fb248ec Fix kerberos create_keytab doc
  186874. .UNINDENT
  186875. .IP \(bu 2
  186876. 678d4d4098 Merge pull request \fI\%#42141\fP from rallytime/bp\-42098
  186877. .INDENT 2.0
  186878. .IP \(bu 2
  186879. bd80243233 Change repo_ng to repo\-ng
  186880. .UNINDENT
  186881. .IP \(bu 2
  186882. c8afd7a3c9 Merge pull request \fI\%#42140\fP from rallytime/bp\-42097
  186883. .INDENT 2.0
  186884. .IP \(bu 2
  186885. 9c4e132540 Import datetime
  186886. .IP \(bu 2
  186887. 1435bf177e require large timediff for ipv6 warning
  186888. .UNINDENT
  186889. .IP \(bu 2
  186890. c239664c8b Merge pull request \fI\%#42142\fP from Ch3LL/change_builds
  186891. .INDENT 2.0
  186892. .IP \(bu 2
  186893. e1694af39c Update builds available for rc1
  186894. .UNINDENT
  186895. .UNINDENT
  186896. .UNINDENT
  186897. .IP \(bu 2
  186898. \fBPR\fP \fI\%#42340\fP: (\fI\%isbm\fP) Bugfix: Jobs scheduled to run at a future time stay pending for Salt …
  186899. @ \fI2017\-07\-18 18:13:36 UTC\fP
  186900. .INDENT 2.0
  186901. .IP \(bu 2
  186902. 55b7a5cb4a Merge pull request \fI\%#42340\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-2017.7\-bsc1036125
  186903. .IP \(bu 2
  186904. 774d204d65 Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  186905. .UNINDENT
  186906. .IP \(bu 2
  186907. \fBPR\fP \fI\%#42327\fP: (\fI\%mirceaulinic\fP) Default skip_verify to False
  186908. @ \fI2017\-07\-18 18:04:36 UTC\fP
  186909. .INDENT 2.0
  186910. .IP \(bu 2
  186911. e72616c5f1 Merge pull request \fI\%#42327\fP from mirceaulinic/patch\-10
  186912. .IP \(bu 2
  186913. c830573a2c Trailing whitespaces
  186914. .IP \(bu 2
  186915. c83e6fc696 Default skip_verify to False
  186916. .UNINDENT
  186917. .IP \(bu 2
  186918. \fBISSUE\fP \fI\%#42151\fP: (\fI\%sjorge\fP) Doc errors in jinja doc for develop branch (refs: \fI\%#42179\fP)
  186919. .IP \(bu 2
  186920. \fBPR\fP \fI\%#42179\fP: (\fI\%rallytime\fP) Fix some documentation issues found in jinja filters doc topic
  186921. @ \fI2017\-07\-18 18:01:57 UTC\fP
  186922. .INDENT 2.0
  186923. .IP \(bu 2
  186924. ba799b2831 Merge pull request \fI\%#42179\fP from rallytime/fix\-42151
  186925. .IP \(bu 2
  186926. 798d29276e Add note about "to_bytes" jinja filter issues when using yaml_jinja renderer
  186927. .IP \(bu 2
  186928. 1bbff572ab Fix some documentation issues found in jinja filters doc topic
  186929. .UNINDENT
  186930. .IP \(bu 2
  186931. \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)
  186932. .IP \(bu 2
  186933. \fBPR\fP \fI\%#42087\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists
  186934. @ \fI2017\-07\-17 18:41:47 UTC\fP
  186935. .INDENT 2.0
  186936. .IP \(bu 2
  186937. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists (refs: \fI\%#42087\fP)
  186938. .IP \(bu 2
  186939. 8dbb93851d Merge pull request \fI\%#42087\fP from redmatter/fix\-dockerng\-volume\-present\-result\-2017.7
  186940. .IP \(bu 2
  186941. 2e1dc95500 Make result=true if Docker volume already exists
  186942. .UNINDENT
  186943. .IP \(bu 2
  186944. \fBISSUE\fP \fI\%#42166\fP: (\fI\%sjorge\fP) [2017.7.0rc1] jinja filter network_hosts fails on large IPv6 networks (refs: \fI\%#42186\fP)
  186945. .IP \(bu 2
  186946. \fBPR\fP \fI\%#42186\fP: (\fI\%rallytime\fP) Use long_range function for IPv6Network hosts() function
  186947. @ \fI2017\-07\-17 18:39:35 UTC\fP
  186948. .INDENT 2.0
  186949. .IP \(bu 2
  186950. c84d6db548 Merge pull request \fI\%#42186\fP from rallytime/fix\-42166
  186951. .IP \(bu 2
  186952. b8bcc0d599 Add note to various network_hosts docs about long_run for IPv6 networks
  186953. .IP \(bu 2
  186954. 11862743c2 Use long_range function for IPv6Network hosts() function
  186955. .UNINDENT
  186956. .IP \(bu 2
  186957. \fBPR\fP \fI\%#42210\fP: (\fI\%terminalmage\fP) Only pass a saltenv in orchestration if one was explicitly passed (2017.7)
  186958. @ \fI2017\-07\-17 18:22:39 UTC\fP
  186959. .INDENT 2.0
  186960. .IP \(bu 2
  186961. e7b79e0fd2 Merge pull request \fI\%#42210\fP from terminalmage/issue40928\-2017.7
  186962. .IP \(bu 2
  186963. 771ade5d73 Only pass a saltenv in orchestration if one was explicitly passed (2017.7)
  186964. .UNINDENT
  186965. .IP \(bu 2
  186966. \fBPR\fP \fI\%#42236\fP: (\fI\%mirceaulinic\fP) New option for napalm proxy/minion: provider
  186967. @ \fI2017\-07\-17 18:19:56 UTC\fP
  186968. .INDENT 2.0
  186969. .IP \(bu 2
  186970. 0e49021b0e Merge pull request \fI\%#42236\fP from cloudflare/napalm\-provider
  186971. .IP \(bu 2
  186972. 1ac69bd737 Document the provider option and rearrange the doc
  186973. .IP \(bu 2
  186974. 4bf4b14161 New option for napalm proxy/minion: provider
  186975. .UNINDENT
  186976. .IP \(bu 2
  186977. \fBPR\fP \fI\%#42257\fP: (\fI\%twangboy\fP) Fix \fIunit.pillar.test_git\fP for Windows
  186978. @ \fI2017\-07\-17 17:51:42 UTC\fP
  186979. .INDENT 2.0
  186980. .IP \(bu 2
  186981. 3ec5bb1c2f Merge pull request \fI\%#42257\fP from twangboy/win_unit_pillar_test_git
  186982. .IP \(bu 2
  186983. 45be32666a Add error\-handling function to shutil.rmtree
  186984. .UNINDENT
  186985. .IP \(bu 2
  186986. \fBPR\fP \fI\%#42258\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_environ\fP for Windows
  186987. @ \fI2017\-07\-17 17:50:38 UTC\fP
  186988. .INDENT 2.0
  186989. .IP \(bu 2
  186990. 36395625c2 Merge pull request \fI\%#42258\fP from twangboy/win_unit_states_tests_environ
  186991. .IP \(bu 2
  186992. 55b278c478 Mock the reg.read_value function
  186993. .UNINDENT
  186994. .IP \(bu 2
  186995. \fBPR\fP \fI\%#42265\fP: (\fI\%rallytime\fP) Gate boto_elb tests if proper version of moto isn\(aqt installed
  186996. @ \fI2017\-07\-17 17:47:52 UTC\fP
  186997. .INDENT 2.0
  186998. .IP \(bu 2
  186999. 894bdd2b19 Merge pull request \fI\%#42265\fP from rallytime/gate\-moto\-version
  187000. .IP \(bu 2
  187001. 78cdee51d5 Gate boto_elb tests if proper version of moto isn\(aqt installed
  187002. .UNINDENT
  187003. .IP \(bu 2
  187004. \fBPR\fP \fI\%#42277\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_winrepo\fP for Windows
  187005. @ \fI2017\-07\-17 17:37:07 UTC\fP
  187006. .INDENT 2.0
  187007. .IP \(bu 2
  187008. baf04f2a2d Merge pull request \fI\%#42277\fP from twangboy/win_unit_states_test_winrepo
  187009. .IP \(bu 2
  187010. ed89cd0b93 Use os.sep for path seps
  187011. .UNINDENT
  187012. .IP \(bu 2
  187013. \fBPR\fP \fI\%#42309\fP: (\fI\%terminalmage\fP) Change "TBD" in versionadded to "2017.7.0"
  187014. @ \fI2017\-07\-17 17:11:45 UTC\fP
  187015. .INDENT 2.0
  187016. .IP \(bu 2
  187017. be6b211683 Merge pull request \fI\%#42309\fP from terminalmage/fix\-versionadded
  187018. .IP \(bu 2
  187019. 603f5b7de6 Change "TBD" in versionadded to "2017.7.0"
  187020. .UNINDENT
  187021. .IP \(bu 2
  187022. \fBPR\fP \fI\%#42206\fP: (\fI\%rallytime\fP) [PY3] Fix test that is flaky in Python 3 (refs: \fI\%#42783\fP)
  187023. @ \fI2017\-07\-17 17:09:53 UTC\fP
  187024. .INDENT 2.0
  187025. .IP \(bu 2
  187026. acd29f9b38 Merge pull request \fI\%#42206\fP from rallytime/fix\-flaky\-test
  187027. .IP \(bu 2
  187028. 2be4865f48 [PY3] Fix test that is flaky in Python 3
  187029. .UNINDENT
  187030. .IP \(bu 2
  187031. \fBPR\fP \fI\%#42126\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187032. @ \fI2017\-07\-17 17:07:19 UTC\fP
  187033. .INDENT 2.0
  187034. .IP \(bu 2
  187035. 8f1cb287cf Merge pull request \fI\%#42126\fP from rallytime/merge\-2017.7
  187036. .UNINDENT
  187037. .IP \(bu 2
  187038. \fBPR\fP \fI\%#42078\fP: (\fI\%damon\-atkins\fP) pkg.install and pkg.remove fix version number input.
  187039. @ \fI2017\-07\-05 06:04:57 UTC\fP
  187040. .INDENT 2.0
  187041. .IP \(bu 2
  187042. 4780d7830a Merge pull request \fI\%#42078\fP from damon\-atkins/fix_convert_flt_str_version_on_cmd_line
  187043. .IP \(bu 2
  187044. 09d37dd892 Fix comment typo
  187045. .IP \(bu 2
  187046. 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.
  187047. .IP \(bu 2
  187048. 4fb2bb1856 Fix typo
  187049. .IP \(bu 2
  187050. 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
  187051. .UNINDENT
  187052. .IP \(bu 2
  187053. \fBPR\fP \fI\%#42105\fP: (\fI\%Ch3LL\fP) Update releasecanddiate doc with new 2017.7.0rc1 Release
  187054. @ \fI2017\-07\-04 03:14:42 UTC\fP
  187055. .INDENT 2.0
  187056. .IP \(bu 2
  187057. 46d575acbc Merge pull request \fI\%#42105\fP from Ch3LL/update_rc
  187058. .IP \(bu 2
  187059. d4e7b91608 Update releasecanddiate doc with new 2017.7.0rc1 Release
  187060. .UNINDENT
  187061. .IP \(bu 2
  187062. \fBISSUE\fP \fI\%#41885\fP: (\fI\%astronouth7303\fP) Recommended pip installation outdated? (refs: \fI\%#42099\fP)
  187063. .IP \(bu 2
  187064. \fBPR\fP \fI\%#42099\fP: (\fI\%rallytime\fP) Remove references in docs to pip install salt\-cloud
  187065. @ \fI2017\-07\-03 22:13:44 UTC\fP
  187066. .INDENT 2.0
  187067. .IP \(bu 2
  187068. d38548bbbd Merge pull request \fI\%#42099\fP from rallytime/fix\-41885
  187069. .IP \(bu 2
  187070. c2822e05ad Remove references in docs to pip install salt\-cloud
  187071. .UNINDENT
  187072. .IP \(bu 2
  187073. \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)
  187074. .IP \(bu 2
  187075. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists (refs: \fI\%#42087\fP)
  187076. @ \fI2017\-07\-03 15:48:33 UTC\fP
  187077. .INDENT 2.0
  187078. .IP \(bu 2
  187079. 81d606a8cb Merge pull request \fI\%#42086\fP from redmatter/fix\-dockerng\-volume\-present\-result
  187080. .IP \(bu 2
  187081. 8d549685a7 Make result=true if Docker volume already exists
  187082. .UNINDENT
  187083. .IP \(bu 2
  187084. \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)
  187085. .IP \(bu 2
  187086. \fBPR\fP \fI\%#42021\fP: (\fI\%gtmanfred\fP) Set concurrent to True when running states with sudo
  187087. @ \fI2017\-06\-30 21:02:15 UTC\fP
  187088. .INDENT 2.0
  187089. .IP \(bu 2
  187090. 7160697123 Merge pull request \fI\%#42021\fP from gtmanfred/2016.11
  187091. .IP \(bu 2
  187092. 26beb18aa5 Set concurrent to True when running states with sudo
  187093. .UNINDENT
  187094. .IP \(bu 2
  187095. \fBPR\fP \fI\%#42029\fP: (\fI\%terminalmage\fP) Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  187096. @ \fI2017\-06\-30 20:58:56 UTC\fP
  187097. .INDENT 2.0
  187098. .IP \(bu 2
  187099. b784fbbdf8 Merge pull request \fI\%#42029\fP from terminalmage/host_to_ips
  187100. .IP \(bu 2
  187101. 26f848e111 Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  187102. .UNINDENT
  187103. .IP \(bu 2
  187104. \fBPR\fP \fI\%#42055\fP: (\fI\%dmurphy18\fP) Upgrade support for gnupg v2.1 and higher
  187105. @ \fI2017\-06\-30 20:54:02 UTC\fP
  187106. .INDENT 2.0
  187107. .IP \(bu 2
  187108. e067020b9b Merge pull request \fI\%#42055\fP from dmurphy18/handle_gnupgv21
  187109. .IP \(bu 2
  187110. e20cea6350 Upgrade support for gnupg v2.1 and higher
  187111. .UNINDENT
  187112. .IP \(bu 2
  187113. \fBPR\fP \fI\%#42048\fP: (\fI\%Ch3LL\fP) Add initial 2016.11.7 Release Notes
  187114. @ \fI2017\-06\-30 16:00:05 UTC\fP
  187115. .INDENT 2.0
  187116. .IP \(bu 2
  187117. 74ba2abc48 Merge pull request \fI\%#42048\fP from Ch3LL/add_11.7
  187118. .IP \(bu 2
  187119. 1de5e008a0 Add initial 2016.11.7 Release Notes
  187120. .UNINDENT
  187121. .UNINDENT
  187122. .SS Salt 2017.7.3 Release Notes
  187123. .sp
  187124. Version 2017.7.3 is a bugfix release for 2017.7.0\&.
  187125. .SS Statistics
  187126. .INDENT 0.0
  187127. .IP \(bu 2
  187128. Total Merges: \fB501\fP
  187129. .IP \(bu 2
  187130. Total Issue References: \fB94\fP
  187131. .IP \(bu 2
  187132. Total PR References: \fB423\fP
  187133. .IP \(bu 2
  187134. 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)
  187135. .UNINDENT
  187136. .SS Windows Changes
  187137. .SS \fBpkg\fP Execution Module\(ga
  187138. .sp
  187139. Significate changes (PR #43708 & #45390, damon\-atkins) have been made to the
  187140. pkg execution module. Users should test this release against their existing
  187141. package sls definition files.
  187142. .INDENT 0.0
  187143. .IP \(bu 2
  187144. \fBpkg.list_available\fP no longer
  187145. defaults to refreshing the winrepo meta database.
  187146. .IP \(bu 2
  187147. \fBpkg.install\fP without a \fBversion\fP
  187148. parameter no longer upgrades software if the software is already installed.
  187149. Use \fBpkg.install version=latest\fP (or simply use a \fBpkg.latest\fP state to get the old behavior.
  187150. .IP \(bu 2
  187151. \fBpkg.list_pkgs\fP now returns
  187152. multiple versions if software installed more than once.
  187153. .IP \(bu 2
  187154. \fBpkg.list_pkgs\fP now returns \fBNot
  187155. Found\fP when the version is not found instead of \fB(value not set)\fP which
  187156. matches the contents of the sls definitions.
  187157. .IP \(bu 2
  187158. \fBpkg.remove\fP will wait up to 3 seconds
  187159. (normally about a second) to detect changes in the registry after removing
  187160. software, improving reporting of version changes.
  187161. .IP \(bu 2
  187162. \fBpkg.remove\fP can remove \fBlatest\fP
  187163. software, if \fBlatest\fP is defined in sls definition.
  187164. .IP \(bu 2
  187165. Documentation was update for the execution module to match the style in new
  187166. versions, some corrections as well.
  187167. .IP \(bu 2
  187168. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  187169. called with a command line string instead of a list. Some sls files in
  187170. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  187171. (i.e. the use of \fB&\fP).
  187172. .IP \(bu 2
  187173. Some execution module functions results, now behave more like their
  187174. Unix/Linux versions.
  187175. .UNINDENT
  187176. .SS \fBcmd\fP Execution Module
  187177. .sp
  187178. Due to a difference in how Python\(aqs \fBsubprocess.Popen()\fP spawns processes on
  187179. Windows, passing the command as a list of arguments can result in problems.
  187180. This is because Windows\(aq \fICreateProcess\fP requires the command to be passed as a
  187181. single string. Therefore, \fBsubprocess\fP will attempt to re\-assemble the list
  187182. of arguments into as string. Some escaped characters and quotes can cause the
  187183. resulting string to be incorrectly\-assembled, resulting in a failure to execute
  187184. the command.
  187185. .sp
  187186. Salt now deals with these cases by joining the list of arguments correctly and
  187187. ensuring that the command is passed to \fBsubprocess.Popen()\fP as a string.
  187188. .SS Changelog for v2017.7.2..v2017.7.3
  187189. .sp
  187190. \fIGenerated at: 2018\-05\-26 21:36:50 UTC\fP
  187191. .INDENT 0.0
  187192. .IP \(bu 2
  187193. \fBISSUE\fP \fI\%#45743\fP: (\fI\%frogunder\fP) Multi\-master PKI not working on Py3 (refs: \fI\%#45755\fP)
  187194. .IP \(bu 2
  187195. \fBPR\fP \fI\%#45755\fP: (\fI\%terminalmage\fP) salt.crypt: Ensure message is encoded before signing
  187196. @ \fI2018\-01\-29 19:04:50 UTC\fP
  187197. .INDENT 2.0
  187198. .IP \(bu 2
  187199. 1439da8d76 Merge pull request \fI\%#45755\fP from terminalmage/issue45743
  187200. .IP \(bu 2
  187201. 8af1251c59 salt.crypt: Ensure message is encoded before signing
  187202. .UNINDENT
  187203. .IP \(bu 2
  187204. \fBPR\fP \fI\%#45700\fP: (\fI\%Ch3LL\fP) Add PRs to 2017.7.3 Release Notes
  187205. @ \fI2018\-01\-25 20:56:45 UTC\fP
  187206. .INDENT 2.0
  187207. .IP \(bu 2
  187208. fe194d755f Merge pull request \fI\%#45700\fP from Ch3LL/7.3_rn
  187209. .IP \(bu 2
  187210. 84c8216901 Add PRs to 2017.7.3 Release Notes
  187211. .UNINDENT
  187212. .IP \(bu 2
  187213. \fBPR\fP \fI\%#45681\fP: (\fI\%damon\-atkins\fP) 2017.7.3 Release notes for Windows
  187214. @ \fI2018\-01\-25 15:13:18 UTC\fP
  187215. .INDENT 2.0
  187216. .IP \(bu 2
  187217. ce41f6a6ee Merge pull request \fI\%#45681\fP from damon\-atkins/2017.7.3_win_release_notes
  187218. .IP \(bu 2
  187219. 1d21f86228 Update 2017.7.3.rst
  187220. .UNINDENT
  187221. .IP \(bu 2
  187222. \fBPR\fP \fI\%#45672\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45667\fP to 2017.7.3
  187223. @ \fI2018\-01\-25 14:04:54 UTC\fP
  187224. .INDENT 2.0
  187225. .IP \(bu 2
  187226. \fBPR\fP \fI\%#45667\fP: (\fI\%gtmanfred\fP) default to upgrading when refreshing on archlinux (refs: \fI\%#45672\fP)
  187227. .IP \(bu 2
  187228. 2f303439b7 Merge pull request \fI\%#45672\fP from rallytime/bp\-45667
  187229. .IP \(bu 2
  187230. 74bbaeb7ce we should default to upgrading when refreshing on archlinux
  187231. .UNINDENT
  187232. .IP \(bu 2
  187233. \fBPR\fP \fI\%#45669\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.3 release
  187234. @ \fI2018\-01\-24 21:04:59 UTC\fP
  187235. .INDENT 2.0
  187236. .IP \(bu 2
  187237. 23ff1264e0 Merge pull request \fI\%#45669\fP from rallytime/man\-pages\-2017.7.3
  187238. .IP \(bu 2
  187239. d31b41adeb Update man pages for 2017.7.3 release
  187240. .UNINDENT
  187241. .IP \(bu 2
  187242. \fBPR\fP \fI\%#45666\fP: (\fI\%terminalmage\fP) Fix failing pkg integration tests for releases with no \(aq.\(aq
  187243. @ \fI2018\-01\-24 17:19:10 UTC\fP
  187244. .INDENT 2.0
  187245. .IP \(bu 2
  187246. 9a17405ba6 Merge pull request \fI\%#45666\fP from terminalmage/salt\-jenkins\-793
  187247. .IP \(bu 2
  187248. 4a6ab729dd Fix failing pkg integration tests for releases with no \(aq.\(aq
  187249. .UNINDENT
  187250. .IP \(bu 2
  187251. \fBPR\fP \fI\%#45664\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45452\fP to 2017.7.3
  187252. @ \fI2018\-01\-24 15:33:13 UTC\fP
  187253. .INDENT 2.0
  187254. .IP \(bu 2
  187255. \fBPR\fP \fI\%#45452\fP: (\fI\%adelcast\fP) opkg.py: make owner fuction return value, instead of iterator (refs: \fI\%#45664\fP)
  187256. .IP \(bu 2
  187257. 0717f7a578 Merge pull request \fI\%#45664\fP from rallytime/bp\-45452
  187258. .IP \(bu 2
  187259. 369720677b opkg.py: make owner function return value, instead of iterator
  187260. .UNINDENT
  187261. .IP \(bu 2
  187262. \fBPR\fP \fI\%#45649\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45634\fP to 2017.7.3
  187263. @ \fI2018\-01\-24 14:59:43 UTC\fP
  187264. .INDENT 2.0
  187265. .IP \(bu 2
  187266. \fBPR\fP \fI\%#45634\fP: (\fI\%Ch3LL\fP) Add different service name for Mac 10.13 test (refs: \fI\%#45649\fP)
  187267. .IP \(bu 2
  187268. 7934372b7b Merge pull request \fI\%#45649\fP from rallytime/bp\-45634
  187269. .IP \(bu 2
  187270. 1c78fc23ea Add different service name for Mac 10.13 test
  187271. .UNINDENT
  187272. .IP \(bu 2
  187273. \fBPR\fP \fI\%#45654\fP: (\fI\%twangboy\fP) Merge forward \fI\%#45638\fP
  187274. @ \fI2018\-01\-24 14:59:14 UTC\fP
  187275. .INDENT 2.0
  187276. .IP \(bu 2
  187277. \fBPR\fP \fI\%#45638\fP: (\fI\%twangboy\fP) Win fix shell info (refs: \fI\%#45654\fP)
  187278. .IP \(bu 2
  187279. 770f0c4664 Merge pull request \fI\%#45654\fP from twangboy/win_fix_shell_info_2017.7.3
  187280. .IP \(bu 2
  187281. 5bb01aeb8c Merge forward \fI\%#45638\fP
  187282. .UNINDENT
  187283. .IP \(bu 2
  187284. \fBPR\fP \fI\%#45653\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45611\fP to 2017.7.3
  187285. @ \fI2018\-01\-24 05:20:11 UTC\fP
  187286. .INDENT 2.0
  187287. .IP \(bu 2
  187288. \fBPR\fP \fI\%#45611\fP: (\fI\%terminalmage\fP) Fix unnecessary/incorrect usage of six.binary_type (refs: \fI\%#45653\fP)
  187289. .IP \(bu 2
  187290. 6fc293da46 Merge pull request \fI\%#45653\fP from rallytime/bp\-45611
  187291. .IP \(bu 2
  187292. 0a6b06d8ea Fix unnecessary/incorrect usage of six.binary_type
  187293. .UNINDENT
  187294. .IP \(bu 2
  187295. \fBPR\fP \fI\%#45642\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45636\fP to 2017.7.3
  187296. @ \fI2018\-01\-23 22:00:30 UTC\fP
  187297. .INDENT 2.0
  187298. .IP \(bu 2
  187299. \fBPR\fP \fI\%#45636\fP: (\fI\%Ch3LL\fP) Fix mac service and pkg tests for 10.13 (refs: \fI\%#45642\fP)
  187300. .IP \(bu 2
  187301. 0a07e0d259 Merge pull request \fI\%#45642\fP from rallytime/bp\-45636
  187302. .IP \(bu 2
  187303. df0ad54c9a remove unnecessary variable for test
  187304. .IP \(bu 2
  187305. acb14fd43d fix pylint
  187306. .IP \(bu 2
  187307. a9b12cd1ea Fix mac service and pkg tests for 10.13
  187308. .UNINDENT
  187309. .IP \(bu 2
  187310. \fBPR\fP \fI\%#45645\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45606\fP to 2017.7.3
  187311. @ \fI2018\-01\-23 21:54:45 UTC\fP
  187312. .INDENT 2.0
  187313. .IP \(bu 2
  187314. \fBPR\fP \fI\%#45606\fP: (\fI\%terminalmage\fP) Fix bug affecting salt\-ssh when root_dir differs from the default (refs: \fI\%#45645\fP)
  187315. .IP \(bu 2
  187316. f37a5b6d8d Merge pull request \fI\%#45645\fP from rallytime/bp\-45606
  187317. .IP \(bu 2
  187318. d52d96f30a Fix bug affecting salt\-ssh when root_dir differs from the default
  187319. .UNINDENT
  187320. .IP \(bu 2
  187321. \fBPR\fP \fI\%#45641\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45508\fP to 2017.7.3
  187322. @ \fI2018\-01\-23 21:18:39 UTC\fP
  187323. .INDENT 2.0
  187324. .IP \(bu 2
  187325. \fBPR\fP \fI\%#45508\fP: (\fI\%frogunder\fP) fix test_archive test for mac on 2017.7 branch (refs: \fI\%#45641\fP)
  187326. .IP \(bu 2
  187327. e659793c09 Merge pull request \fI\%#45641\fP from rallytime/bp\-45508
  187328. .IP \(bu 2
  187329. e6917a291e fix test_archive test for mac on 2017.7 branch
  187330. .UNINDENT
  187331. .IP \(bu 2
  187332. \fBPR\fP \fI\%#45604\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45582\fP to 2017.7.3
  187333. @ \fI2018\-01\-22 16:54:15 UTC\fP
  187334. .INDENT 2.0
  187335. .IP \(bu 2
  187336. \fBPR\fP \fI\%#45582\fP: (\fI\%terminalmage\fP) Two salt\-ssh fixes (refs: \fI\%#45604\fP)
  187337. .IP \(bu 2
  187338. ced3269ae8 Merge pull request \fI\%#45604\fP from rallytime/bp\-45582
  187339. .IP \(bu 2
  187340. bc8a450cc7 Remove state.py utils file from thin list
  187341. .IP \(bu 2
  187342. 629e6c9674 Further fixes to for salt\-ssh test under heavy load
  187343. .IP \(bu 2
  187344. 0dff596b59 Add salt/utils/state.py to thin tarball
  187345. .IP \(bu 2
  187346. a61afda100 Pass on OSError if thin tarball already removed
  187347. .UNINDENT
  187348. .IP \(bu 2
  187349. \fBPR\fP \fI\%#45591\fP: (\fI\%gtmanfred\fP) mark minion_blackout tests as flaky
  187350. @ \fI2018\-01\-22 00:14:31 UTC\fP
  187351. .INDENT 2.0
  187352. .IP \(bu 2
  187353. 4672baa6c8 Merge pull request \fI\%#45591\fP from gtmanfred/2017.7.3
  187354. .IP \(bu 2
  187355. f7fd35fc4a test updating the minion blackout timeout to 10 seconds
  187356. .UNINDENT
  187357. .IP \(bu 2
  187358. \fBPR\fP \fI\%#45585\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45579\fP to 2017.7.3
  187359. @ \fI2018\-01\-22 00:13:59 UTC\fP
  187360. .INDENT 2.0
  187361. .IP \(bu 2
  187362. \fBPR\fP \fI\%#45579\fP: (\fI\%terminalmage\fP) Test suite stability fixes (refs: \fI\%#45585\fP)
  187363. .IP \(bu 2
  187364. 2a992f9017 Merge pull request \fI\%#45585\fP from rallytime/bp\-45579
  187365. .IP \(bu 2
  187366. 0292c8345b Lint fix: use six\(aqs map
  187367. .IP \(bu 2
  187368. 108d8cbeef Use correct utils path for 2017.7
  187369. .IP \(bu 2
  187370. a38f4cb6d6 Restrict pyzmq optimizations to pyzmq >= 14.3.0
  187371. .IP \(bu 2
  187372. 58ad558346 Fix event unpack
  187373. .UNINDENT
  187374. .IP \(bu 2
  187375. \fBPR\fP \fI\%#45573\fP: (\fI\%gtmanfred\fP) update 2017.7.3 tests
  187376. @ \fI2018\-01\-20 20:05:13 UTC\fP
  187377. .INDENT 2.0
  187378. .IP \(bu 2
  187379. 19cd97ed3b Merge pull request \fI\%#45573\fP from gtmanfred/2017.7.3
  187380. .IP \(bu 2
  187381. bd3cb47fa7 fix mock for opensuse
  187382. .IP \(bu 2
  187383. 808e26e69a test simple website
  187384. .UNINDENT
  187385. .IP \(bu 2
  187386. \fBPR\fP \fI\%#45570\fP: (\fI\%gtmanfred\fP) Fix tests for 2017.7.3
  187387. @ \fI2018\-01\-20 15:01:21 UTC\fP
  187388. .INDENT 2.0
  187389. .IP \(bu 2
  187390. e72d81ef22 Merge pull request \fI\%#45570\fP from gtmanfred/2017.7.3
  187391. .IP \(bu 2
  187392. 1f71f301ba specify checking man page path
  187393. .IP \(bu 2
  187394. 2ddbcb45c1 fix pkg_resources for usage with testing pip
  187395. .IP \(bu 2
  187396. 0ba39a7108 switch systemd\-journald for sshd for arch service test
  187397. .UNINDENT
  187398. .IP \(bu 2
  187399. \fBPR\fP \fI\%#45538\fP: (\fI\%gtmanfred\fP) Backport test fixes to 2017.7.3
  187400. @ \fI2018\-01\-19 14:39:44 UTC\fP
  187401. .INDENT 2.0
  187402. .IP \(bu 2
  187403. 7bc60c56d4 Merge pull request \fI\%#45538\fP from gtmanfred/2017.7.3
  187404. .IP \(bu 2
  187405. 801e0639b6 Merge branch \(aq2017.7.3\(aq into 2017.7.3
  187406. .UNINDENT
  187407. .IP \(bu 2
  187408. \fBPR\fP \fI\%#45533\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45529\fP to 2017.7.3
  187409. @ \fI2018\-01\-18 22:52:29 UTC\fP
  187410. .INDENT 2.0
  187411. .IP \(bu 2
  187412. \fBPR\fP \fI\%#45529\fP: (\fI\%Ch3LL\fP) Fix UnboundLocalError for pacman pkg installs (refs: \fI\%#45533\fP)
  187413. .IP \(bu 2
  187414. 8ad65e3359 Merge pull request \fI\%#45533\fP from rallytime/bp\-45529
  187415. .IP \(bu 2
  187416. 6d56c64d88 Fix UnboundLocalError for pacman pkg installs
  187417. .INDENT 2.0
  187418. .IP \(bu 2
  187419. 8d907ee1a0 fix moto version
  187420. .IP \(bu 2
  187421. 1241ab5fc6 fix test boto imports
  187422. .IP \(bu 2
  187423. f4b6367cf9 fix fedora pkg test
  187424. .UNINDENT
  187425. .UNINDENT
  187426. .IP \(bu 2
  187427. \fBISSUE\fP \fI\%#45394\fP: (\fI\%dmurphy18\fP) git.latest fails when "depth" is used with a non\-default branch (refs: \fI\%#45399\fP)
  187428. .IP \(bu 2
  187429. \fBPR\fP \fI\%#45442\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45399\fP to 2017.7.3
  187430. @ \fI2018\-01\-17 17:20:48 UTC\fP
  187431. .INDENT 2.0
  187432. .IP \(bu 2
  187433. \fBPR\fP \fI\%#45399\fP: (\fI\%terminalmage\fP) Fix git.latest failure when rev is not the default branch (refs: \fI\%#45442\fP)
  187434. .IP \(bu 2
  187435. 7379f9e3e5 Merge pull request \fI\%#45442\fP from rallytime/bp\-45399
  187436. .IP \(bu 2
  187437. 590a6db626 Lint: use support TMP path instead of integration TMP path
  187438. .IP \(bu 2
  187439. c081b2c62c Fix git.latest failure when rev is not the default branch
  187440. .UNINDENT
  187441. .IP \(bu 2
  187442. \fBPR\fP \fI\%#45468\fP: (\fI\%twangboy\fP) Fix some issues with reg.py
  187443. @ \fI2018\-01\-16 22:23:47 UTC\fP
  187444. .INDENT 2.0
  187445. .IP \(bu 2
  187446. ee5090f69b Merge pull request \fI\%#45468\fP from twangboy/win_reg
  187447. .IP \(bu 2
  187448. a0d21c6354 Fix some issues with reg.py
  187449. .UNINDENT
  187450. .IP \(bu 2
  187451. \fBISSUE\fP \fI\%#44913\fP: (\fI\%ari\fP) FreeBSD packaging install performance regression (refs: \fI\%#45174\fP)
  187452. .IP \(bu 2
  187453. \fBPR\fP \fI\%#45434\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45174\fP to 2017.7.3
  187454. @ \fI2018\-01\-14 12:43:16 UTC\fP
  187455. .INDENT 2.0
  187456. .IP \(bu 2
  187457. \fBPR\fP \fI\%#45174\fP: (\fI\%eradman\fP) Do not force pkg reinstall on FreeBSD (refs: \fI\%#45434\fP)
  187458. .IP \(bu 2
  187459. ef7a896eb6 Merge pull request \fI\%#45434\fP from rallytime/bp\-45174
  187460. .IP \(bu 2
  187461. b310ff7ab8 Do not force pkg reinstall on FreeBSD
  187462. .UNINDENT
  187463. .IP \(bu 2
  187464. \fBPR\fP \fI\%#45395\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45380\fP to 2017.7.3
  187465. @ \fI2018\-01\-12 18:49:20 UTC\fP
  187466. .INDENT 2.0
  187467. .IP \(bu 2
  187468. \fBPR\fP \fI\%#45380\fP: (\fI\%twangboy\fP) Backport changes from \fI\%#45308\fP (refs: \fI\%#45395\fP)
  187469. .IP \(bu 2
  187470. \fBPR\fP \fI\%#45308\fP: (\fI\%twangboy\fP) Fix \fIintegration.modules.test_state\fP for Windows (refs: \fI\%#45380\fP)
  187471. .IP \(bu 2
  187472. c3fdd1dcc4 Merge pull request \fI\%#45395\fP from rallytime/bp\-45380
  187473. .IP \(bu 2
  187474. 0356b3d56f Backport changes from \fI\%#45308\fP
  187475. .UNINDENT
  187476. .IP \(bu 2
  187477. \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)
  187478. .IP \(bu 2
  187479. \fBPR\fP \fI\%#45294\fP: (\fI\%gtmanfred\fP) include backports_abc
  187480. @ \fI2018\-01\-11 18:18:16 UTC\fP
  187481. .INDENT 2.0
  187482. .IP \(bu 2
  187483. f7da716d32 Merge pull request \fI\%#45294\fP from gtmanfred/2017.7
  187484. .IP \(bu 2
  187485. 3633ceeaa7 Merge branch \(aq2017.7\(aq into 2017.7
  187486. .IP \(bu 2
  187487. 29806e4496 ignore salt.ext in pylint
  187488. .IP \(bu 2
  187489. 8b597a4890 include backports_abc
  187490. .UNINDENT
  187491. .IP \(bu 2
  187492. \fBISSUE\fP \fI\%#43130\fP: (\fI\%boltronics\fP) module.run documentation issues (refs: \fI\%#45381\fP)
  187493. .IP \(bu 2
  187494. \fBPR\fP \fI\%#45381\fP: (\fI\%gtmanfred\fP) fix module.run docs
  187495. @ \fI2018\-01\-11 18:02:38 UTC\fP
  187496. .INDENT 2.0
  187497. .IP \(bu 2
  187498. f77a3e9cd4 Merge pull request \fI\%#45381\fP from gtmanfred/module.run
  187499. .IP \(bu 2
  187500. 230e899192 fix module.run docs
  187501. .UNINDENT
  187502. .IP \(bu 2
  187503. \fBISSUE\fP \fI\%#43995\fP: (\fI\%dragonpaw\fP) Using zmq built with \-\-enable\-draft breaks Salt (refs: \fI\%#45368\fP)
  187504. .IP \(bu 2
  187505. \fBPR\fP \fI\%#45368\fP: (\fI\%DmitryKuzmenko\fP) Fixes to work with pyzmq with \-\-enable\-drafts
  187506. @ \fI2018\-01\-11 17:53:16 UTC\fP
  187507. .INDENT 2.0
  187508. .IP \(bu 2
  187509. 8efd29f4d9 Merge pull request \fI\%#45368\fP from DSRCorporation/bugs/zmq_draft
  187510. .IP \(bu 2
  187511. 7622e355cf Minor: removed a stale comment.
  187512. .IP \(bu 2
  187513. 00f31bf9b5 Fixes to work with pyzmq with \-\-enable\-drafts
  187514. .UNINDENT
  187515. .IP \(bu 2
  187516. \fBPR\fP \fI\%#45371\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45158\fP to 2017.7
  187517. @ \fI2018\-01\-11 17:51:38 UTC\fP
  187518. .INDENT 2.0
  187519. .IP \(bu 2
  187520. \fBPR\fP \fI\%#45158\fP: (\fI\%terminalmage\fP) Fix integration.modules.test_state.StateModuleTest.test_exclude (refs: \fI\%#45371\fP)
  187521. .IP \(bu 2
  187522. 22c3efda06 Merge pull request \fI\%#45371\fP from rallytime/bp\-45158
  187523. .IP \(bu 2
  187524. 3565bc2bf2 Don\(aqt use include\-test SLS in orch tests
  187525. .IP \(bu 2
  187526. 8bc17e0d7a Fix integration.modules.test_state.StateModuleTest.test_exclude
  187527. .UNINDENT
  187528. .IP \(bu 2
  187529. \fBPR\fP \fI\%#45387\fP: (\fI\%renner\fP) Set SHELL environment variable
  187530. @ \fI2018\-01\-11 16:23:21 UTC\fP
  187531. .INDENT 2.0
  187532. .IP \(bu 2
  187533. \fBPR\fP \fI\%#40630\fP: (\fI\%mateiw\fP) develop: SUSE specific changes to salt\-api.service (refs: \fI\%#45387\fP)
  187534. .IP \(bu 2
  187535. \fBPR\fP \fI\%#40620\fP: (\fI\%mateiw\fP) SUSE specific changes to salt\-api.service (refs: \fI\%#40630\fP, \fI\%#45387\fP)
  187536. .IP \(bu 2
  187537. 3a0e2de995 Merge pull request \fI\%#45387\fP from renner/patch\-2
  187538. .IP \(bu 2
  187539. 530ddd2d29 Set SHELL environment variable
  187540. .UNINDENT
  187541. .IP \(bu 2
  187542. \fBPR\fP \fI\%#45388\fP: (\fI\%terminalmage\fP) Fix loader error in 2017.7 tests
  187543. @ \fI2018\-01\-11 16:13:53 UTC\fP
  187544. .INDENT 2.0
  187545. .IP \(bu 2
  187546. dcf98a2260 Merge pull request \fI\%#45388\fP from terminalmage/fix\-test\-loader\-error
  187547. .IP \(bu 2
  187548. 5473c085d9 Fix loader error in 2017.7 tests
  187549. .UNINDENT
  187550. .IP \(bu 2
  187551. \fBPR\fP \fI\%#45382\fP: (\fI\%terminalmage\fP) Skip flaky test on 2017.7 branch
  187552. @ \fI2018\-01\-11 14:23:05 UTC\fP
  187553. .INDENT 2.0
  187554. .IP \(bu 2
  187555. d15f9e1020 Merge pull request \fI\%#45382\fP from terminalmage/salt\-jenkins\-686
  187556. .IP \(bu 2
  187557. ff3039db6c Skip flaky test on 2017.7 branch
  187558. .UNINDENT
  187559. .IP \(bu 2
  187560. \fBPR\fP \fI\%#45369\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187561. @ \fI2018\-01\-10 22:14:05 UTC\fP
  187562. .INDENT 2.0
  187563. .IP \(bu 2
  187564. dbe21b2c0d Merge pull request \fI\%#45369\fP from rallytime/merge\-2017.7
  187565. .IP \(bu 2
  187566. f65e091df8 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187567. .INDENT 2.0
  187568. .IP \(bu 2
  187569. 0959ae4ea3 Merge pull request \fI\%#45327\fP from lomeroe/bp\-44861_2016.11
  187570. .INDENT 2.0
  187571. .IP \(bu 2
  187572. 784139f734 Check for values other than 0 or 1
  187573. .UNINDENT
  187574. .IP \(bu 2
  187575. a6db5f95f0 Merge pull request \fI\%#45268\fP from damon\-atkins/2016.11_win_pkg_pkg_install_latest
  187576. .INDENT 2.0
  187577. .IP \(bu 2
  187578. 325a9f0f66 Update 2016.11.9.rst
  187579. .IP \(bu 2
  187580. 4da9200b9c Update 2016.11.9.rst
  187581. .IP \(bu 2
  187582. 126aee36ac Update 2016.11.9.rst
  187583. .IP \(bu 2
  187584. 1c01967943 Update 2016.11.9.rst
  187585. .IP \(bu 2
  187586. a0d89882b8 Fix pkg.install packagename version=latest i.e. if on an old version upgrade to the latest
  187587. .UNINDENT
  187588. .UNINDENT
  187589. .UNINDENT
  187590. .IP \(bu 2
  187591. \fBPR\fP \fI\%#45379\fP: (\fI\%rhoths\fP) Minor spelling/grammar fixes in the highstate returner documentation
  187592. @ \fI2018\-01\-10 20:09:52 UTC\fP
  187593. .INDENT 2.0
  187594. .IP \(bu 2
  187595. 55979b3a48 Merge pull request \fI\%#45379\fP from rhoths/rhoths\-doc\-highstate\-1
  187596. .IP \(bu 2
  187597. afbbd492cd Minor spelling/grammar fixes in highstate returner
  187598. .UNINDENT
  187599. .IP \(bu 2
  187600. \fBPR\fP \fI\%#45358\fP: (\fI\%UtahDave\fP) gate the minion data cache refresh events.
  187601. @ \fI2018\-01\-10 17:21:05 UTC\fP
  187602. .INDENT 2.0
  187603. .IP \(bu 2
  187604. \fBPR\fP \fI\%#45299\fP: (\fI\%garethgreenaway\fP) [2017.7] config gate auth_events (refs: \fI\%#45358\fP)
  187605. .IP \(bu 2
  187606. 541e59fa75 Merge pull request \fI\%#45358\fP from UtahDave/gate_data_cache_refresh
  187607. .IP \(bu 2
  187608. 379b6cd23e should be \fIself\fP, not \fIsalt\fP
  187609. .IP \(bu 2
  187610. a82e158f2d gate the minion data cache refresh events.
  187611. .UNINDENT
  187612. .IP \(bu 2
  187613. \fBPR\fP \fI\%#45297\fP: (\fI\%Ch3LL\fP) Allow macosx service state tests to check for pid return
  187614. @ \fI2018\-01\-09 20:47:24 UTC\fP
  187615. .INDENT 2.0
  187616. .IP \(bu 2
  187617. fb87010461 Merge pull request \fI\%#45297\fP from Ch3LL/mac_service_state
  187618. .IP \(bu 2
  187619. 4e569b5802 Allow macosx service state tests to check for pid return
  187620. .UNINDENT
  187621. .IP \(bu 2
  187622. \fBPR\fP \fI\%#45351\fP: (\fI\%dmurphy18\fP) Update debbuild to explicitly include source code for Debian, Ubuntu
  187623. @ \fI2018\-01\-09 17:21:51 UTC\fP
  187624. .INDENT 2.0
  187625. .IP \(bu 2
  187626. beedf6e815 Merge pull request \fI\%#45351\fP from dmurphy18/upd_debbuild
  187627. .IP \(bu 2
  187628. 478dc70092 Update debbuild flags
  187629. .UNINDENT
  187630. .IP \(bu 2
  187631. \fBPR\fP \fI\%#45299\fP: (\fI\%garethgreenaway\fP) [2017.7] config gate auth_events (refs: \fI\%#45358\fP)
  187632. @ \fI2018\-01\-09 15:00:30 UTC\fP
  187633. .INDENT 2.0
  187634. .IP \(bu 2
  187635. 66da9b47bc Merge pull request \fI\%#45299\fP from garethgreenaway/config_gate_auth_events
  187636. .IP \(bu 2
  187637. 9a15ec3430 Updating versionadded string. Fixing typo.
  187638. .IP \(bu 2
  187639. edfc3dc078 Adding in documention for \fIauth_events\fP configuration option
  187640. .IP \(bu 2
  187641. 3ee4eabffd Fixing small typo
  187642. .IP \(bu 2
  187643. 6a28bddcc9 Adding some code to config gate if auth_events are sent
  187644. .UNINDENT
  187645. .IP \(bu 2
  187646. \fBPR\fP \fI\%#44856\fP: (\fI\%Ch3LL\fP) Add state.running ssh integration test
  187647. @ \fI2018\-01\-08 21:40:50 UTC\fP
  187648. .INDENT 2.0
  187649. .IP \(bu 2
  187650. 8d04c2b3d4 Merge pull request \fI\%#44856\fP from Ch3LL/running_test
  187651. .IP \(bu 2
  187652. 9a35a73711 add time limit to while loop
  187653. .IP \(bu 2
  187654. aeb5f4e248 Add state.running ssh integration test
  187655. .UNINDENT
  187656. .IP \(bu 2
  187657. \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)
  187658. .IP \(bu 2
  187659. \fBPR\fP \fI\%#45295\fP: (\fI\%gtmanfred\fP) test directory that doesn\(aqt exist
  187660. @ \fI2018\-01\-08 20:59:53 UTC\fP
  187661. .INDENT 2.0
  187662. .IP \(bu 2
  187663. d0e5e70277 Merge pull request \fI\%#45295\fP from gtmanfred/test_directory
  187664. .IP \(bu 2
  187665. e6178fe6d4 Merge branch \(aq2017.7\(aq into test_directory
  187666. .IP \(bu 2
  187667. 24114e91c1 test was different slightly on 2017.7
  187668. .IP \(bu 2
  187669. d20fc93625 test directory that doesn\(aqt exist
  187670. .UNINDENT
  187671. .IP \(bu 2
  187672. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#678\fP: (\fI\%rallytime\fP) [2017.7] Proxy Minion Tests for Py3 are failing (refs: \fI\%#45302\fP)
  187673. .IP \(bu 2
  187674. \fBPR\fP \fI\%#45302\fP: (\fI\%gtmanfred\fP) fix proxy tests for py3 on 2017.7
  187675. @ \fI2018\-01\-08 17:41:58 UTC\fP
  187676. .INDENT 2.0
  187677. .IP \(bu 2
  187678. f49b204b75 Merge pull request \fI\%#45302\fP from gtmanfred/proxyp3
  187679. .IP \(bu 2
  187680. b295ec0429 make dummy proxy module py3 compatible
  187681. .IP \(bu 2
  187682. 8736e21f65 fix starting proxy minion on py3
  187683. .IP \(bu 2
  187684. e2824a7253 fix py3 tests
  187685. .UNINDENT
  187686. .IP \(bu 2
  187687. \fBPR\fP \fI\%#45279\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187688. @ \fI2018\-01\-08 17:26:49 UTC\fP
  187689. .INDENT 2.0
  187690. .IP \(bu 2
  187691. eea7158e82 Merge pull request \fI\%#45279\fP from rallytime/merge\-2017.7
  187692. .IP \(bu 2
  187693. 8025b14584 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187694. .INDENT 2.0
  187695. .IP \(bu 2
  187696. 1c5e905b61 Merge pull request \fI\%#45256\fP from rallytime/bp\-45034
  187697. .INDENT 2.0
  187698. .IP \(bu 2
  187699. 68f971b38f Apply test fixes from \fI\%#45034\fP to parsers_test.py
  187700. .IP \(bu 2
  187701. 9454236694 Fix for pidfile removal logging
  187702. .UNINDENT
  187703. .UNINDENT
  187704. .UNINDENT
  187705. .IP \(bu 2
  187706. \fBPR\fP \fI\%#44853\fP: (\fI\%gtmanfred\fP) remove not from vault utils
  187707. @ \fI2018\-01\-05 17:43:18 UTC\fP
  187708. .INDENT 2.0
  187709. .IP \(bu 2
  187710. dab4a8cff3 Merge pull request \fI\%#44853\fP from gtmanfred/vault
  187711. .IP \(bu 2
  187712. bfee1cead6 set role for loading minion config
  187713. .IP \(bu 2
  187714. c5af2e5048 if utils is not loaded, load it
  187715. .IP \(bu 2
  187716. 6a5e0f9ac1 remove not from vault utils
  187717. .UNINDENT
  187718. .IP \(bu 2
  187719. \fBPR\fP \fI\%#45277\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45025\fP to 2017.7
  187720. @ \fI2018\-01\-05 15:35:53 UTC\fP
  187721. .INDENT 2.0
  187722. .IP \(bu 2
  187723. \fBPR\fP \fI\%#45025\fP: (\fI\%steverweber\fP) Fix pillar include merge order (refs: \fI\%#45277\fP)
  187724. .IP \(bu 2
  187725. f09d0e5fdb Merge pull request \fI\%#45277\fP from rallytime/bp\-45025
  187726. .IP \(bu 2
  187727. 942c14bb29 pillar body overrides includes
  187728. .IP \(bu 2
  187729. 1152202fdc fix pillar includes from merging over the current sls defines
  187730. .UNINDENT
  187731. .IP \(bu 2
  187732. \fBPR\fP \fI\%#45276\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45260\fP to 2017.7
  187733. @ \fI2018\-01\-05 14:45:40 UTC\fP
  187734. .INDENT 2.0
  187735. .IP \(bu 2
  187736. \fBPR\fP \fI\%#45260\fP: (\fI\%gtmanfred\fP) Make some kitchen\-salt tests blue (refs: \fI\%#45276\fP)
  187737. .IP \(bu 2
  187738. fc84f1104f Merge pull request \fI\%#45276\fP from rallytime/bp\-45260
  187739. .IP \(bu 2
  187740. 9ab1af738f switch kitchen\-salt to use rsync transport to preserve symlinks
  187741. .IP \(bu 2
  187742. cf98ed472e fix up symlinks
  187743. .UNINDENT
  187744. .IP \(bu 2
  187745. \fBISSUE\fP \fI\%#43340\fP: (\fI\%syphernl\fP) Upgrading Salt via Salt results in dying minions and broken dpkg (refs: \fI\%#45255\fP)
  187746. .IP \(bu 2
  187747. \fBPR\fP \fI\%#45255\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44427\fP to 2017.7
  187748. @ \fI2018\-01\-04 21:46:17 UTC\fP
  187749. .INDENT 2.0
  187750. .IP \(bu 2
  187751. \fBPR\fP \fI\%#44427\fP: (\fI\%samodid\fP) use KillMode=process for salt\-minion.service (refs: \fI\%#45255\fP)
  187752. .IP \(bu 2
  187753. ff9880c498 Merge pull request \fI\%#45255\fP from rallytime/bp\-44427
  187754. .IP \(bu 2
  187755. 6ceafbbf3a use KillMode=process for salt\-minion.service
  187756. .UNINDENT
  187757. .IP \(bu 2
  187758. \fBISSUE\fP \fI\%#23454\fP: (\fI\%HontoNoRoger\fP) SLS rendering error with Salt\-SSH (pydsl) (refs: \fI\%#45251\fP)
  187759. .IP \(bu 2
  187760. \fBPR\fP \fI\%#45251\fP: (\fI\%forksaber\fP) Fix \fI\%#23454\fP : make pydsl work with salt\-ssh
  187761. @ \fI2018\-01\-04 21:33:09 UTC\fP
  187762. .INDENT 2.0
  187763. .IP \(bu 2
  187764. e715eb603f Merge pull request \fI\%#45251\fP from forksaber/salt\-ssh\-pydsl
  187765. .IP \(bu 2
  187766. b3660d5190 [\fI\%#23454\fP] make pydsl work with salt\-ssh
  187767. .UNINDENT
  187768. .IP \(bu 2
  187769. \fBPR\fP \fI\%#45254\fP: (\fI\%Ch3LL\fP) Add darwin value for ssh grain items tests on MacOSX
  187770. @ \fI2018\-01\-04 21:31:35 UTC\fP
  187771. .INDENT 2.0
  187772. .IP \(bu 2
  187773. 2934b60d53 Merge pull request \fI\%#45254\fP from Ch3LL/fix_mac_grain_ssh
  187774. .IP \(bu 2
  187775. b4b59b89cd remove platform from salt.utils call for 2017.7
  187776. .IP \(bu 2
  187777. 85e853a63d Add darwin value for ssh grain items tests on MacOSX
  187778. .UNINDENT
  187779. .IP \(bu 2
  187780. \fBPR\fP \fI\%#45135\fP: (\fI\%twangboy\fP) Fix win_dacl problems with SIDs
  187781. @ \fI2018\-01\-04 21:01:48 UTC\fP
  187782. .INDENT 2.0
  187783. .IP \(bu 2
  187784. af2d880303 Merge pull request \fI\%#45135\fP from twangboy/win_fix_dacl
  187785. .IP \(bu 2
  187786. b31e08946a Merge branch \(aq2017.7\(aq into win_fix_dacl
  187787. .IP \(bu 2
  187788. 35a417f510 Fix win_dacl problems with SIDs
  187789. .UNINDENT
  187790. .IP \(bu 2
  187791. \fBISSUE\fP \fI\%#43806\fP: (\fI\%Ch3LL\fP) Add spm man Test to Auto Test Suite (refs: \fI\%#44930\fP)
  187792. .IP \(bu 2
  187793. \fBPR\fP \fI\%#44930\fP: (\fI\%frogunder\fP) man_spm_test
  187794. @ \fI2018\-01\-04 20:58:02 UTC\fP
  187795. .INDENT 2.0
  187796. .IP \(bu 2
  187797. d0a3770035 Merge pull request \fI\%#44930\fP from frogunder/man_spm
  187798. .IP \(bu 2
  187799. 48e6953e1f fix_string_error
  187800. .IP \(bu 2
  187801. c9fa4ed2a7 man_spm_test
  187802. .UNINDENT
  187803. .IP \(bu 2
  187804. \fBPR\fP \fI\%#45259\fP: (\fI\%Ch3LL\fP) Fix MacOSX Service Status Check and integration test
  187805. @ \fI2018\-01\-04 14:25:01 UTC\fP
  187806. .INDENT 2.0
  187807. .IP \(bu 2
  187808. 543eebf411 Merge pull request \fI\%#45259\fP from Ch3LL/fix\-mac\-service\-test
  187809. .IP \(bu 2
  187810. 74e6ed60ea Fix MacOSX Service Status Check and integration test
  187811. .UNINDENT
  187812. .IP \(bu 2
  187813. \fBPR\fP \fI\%#45263\fP: (\fI\%sumeetisp\fP) Updating python version for 2017.7
  187814. @ \fI2018\-01\-04 14:16:26 UTC\fP
  187815. .INDENT 2.0
  187816. .IP \(bu 2
  187817. bbbd1872a7 Merge pull request \fI\%#45263\fP from sumeetisp/2017.7
  187818. .IP \(bu 2
  187819. e3a5ee3a08 Merge branch \(aq2017.7\(aq into 2017.7
  187820. .IP \(bu 2
  187821. 71aea9a3bc Merge pull request #1 from sumeetisp/sumeetisp\-python\-version
  187822. .INDENT 2.0
  187823. .IP \(bu 2
  187824. 1b4806e2b9 Updating python version
  187825. .UNINDENT
  187826. .UNINDENT
  187827. .IP \(bu 2
  187828. \fBPR\fP \fI\%#45244\fP: (\fI\%twangboy\fP) Fix search/replace in Py3
  187829. @ \fI2018\-01\-04 14:02:22 UTC\fP
  187830. .INDENT 2.0
  187831. .IP \(bu 2
  187832. d46e1197be Merge pull request \fI\%#45244\fP from twangboy/win_fix_portable.py
  187833. .IP \(bu 2
  187834. e3a8279c01 Get path to python binary based on executable
  187835. .IP \(bu 2
  187836. 03aec37040 Fix search/replace in Py3
  187837. .UNINDENT
  187838. .IP \(bu 2
  187839. \fBPR\fP \fI\%#45233\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187840. @ \fI2018\-01\-03 15:34:00 UTC\fP
  187841. .INDENT 2.0
  187842. .IP \(bu 2
  187843. eba360870a Merge pull request \fI\%#45233\fP from rallytime/merge\-2017.7
  187844. .IP \(bu 2
  187845. a3d251b2cd Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187846. .INDENT 2.0
  187847. .IP \(bu 2
  187848. b75f50afe3 Merge pull request \fI\%#45235\fP from rallytime/bp\-45209
  187849. .INDENT 2.0
  187850. .IP \(bu 2
  187851. 2d0a9bbf7e enable UsePAM for ssh tests
  187852. .UNINDENT
  187853. .UNINDENT
  187854. .IP \(bu 2
  187855. 5d9a1e91e9 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187856. .INDENT 2.0
  187857. .IP \(bu 2
  187858. 3ab962b01a Merge pull request \fI\%#44965\fP from gtmanfred/2016.11
  187859. .INDENT 2.0
  187860. .IP \(bu 2
  187861. a5d8a6340e check if VALUE is a string_type
  187862. .UNINDENT
  187863. .IP \(bu 2
  187864. 40fb30f63f Merge pull request \fI\%#45232\fP from rasathus/2016.11
  187865. .INDENT 2.0
  187866. .IP \(bu 2
  187867. 7a2bd8f49b Merge branch \(aq2016.11\(aq into 2016.11
  187868. .IP \(bu 2
  187869. de53c45c29 Backport \fI\%#27160\fP to 2016.11
  187870. .UNINDENT
  187871. .UNINDENT
  187872. .UNINDENT
  187873. .IP \(bu 2
  187874. \fBPR\fP \fI\%#45175\fP: (\fI\%amendlik\fP) Pkg uptodate
  187875. @ \fI2018\-01\-02 17:38:36 UTC\fP
  187876. .INDENT 2.0
  187877. .IP \(bu 2
  187878. 693cc807e8 Merge pull request \fI\%#45175\fP from amendlik/pkg\-uptodate
  187879. .IP \(bu 2
  187880. 4f514a29a7 Merge branch \(aq2017.7\(aq into pkg\-uptodate
  187881. .UNINDENT
  187882. .IP \(bu 2
  187883. \fBPR\fP \fI\%#45226\fP: (\fI\%gtmanfred\fP) Update kitchen to use runtests verifier on 2017.7
  187884. @ \fI2017\-12\-31 18:13:28 UTC\fP
  187885. .INDENT 2.0
  187886. .IP \(bu 2
  187887. 1b3f3ba1be Merge pull request \fI\%#45226\fP from gtmanfred/2017.7
  187888. .IP \(bu 2
  187889. 4f3b089e0e fix copying back
  187890. .IP \(bu 2
  187891. f56f062a6a download xml for junit
  187892. .IP \(bu 2
  187893. 7cc342a5d6 use new runtests verifier
  187894. .UNINDENT
  187895. .IP \(bu 2
  187896. \fBPR\fP \fI\%#45221\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187897. @ \fI2017\-12\-30 18:08:29 UTC\fP
  187898. .INDENT 2.0
  187899. .IP \(bu 2
  187900. 7d3a6cbc65 Merge pull request \fI\%#45221\fP from rallytime/merge\-2017.7
  187901. .IP \(bu 2
  187902. 508599e159 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187903. .IP \(bu 2
  187904. 707ef55175 Merge pull request \fI\%#45161\fP from lomeroe/bp\-44944_2016.11
  187905. .INDENT 2.0
  187906. .IP \(bu 2
  187907. 0a4c6b5a83 remove references to six.unichr
  187908. .IP \(bu 2
  187909. f3196d795d lint fixes for static regexes
  187910. .IP \(bu 2
  187911. 11b637d108 lint fixes
  187912. .IP \(bu 2
  187913. c14d6282ad do not decode registry.pol file wholesale, but instead decode individual elements of the file
  187914. .UNINDENT
  187915. .IP \(bu 2
  187916. 6f52034e08 Merge pull request \fI\%#45199\fP from gtmanfred/status
  187917. .INDENT 2.0
  187918. .IP \(bu 2
  187919. fb07f9ea7d status.pid returns pid ids not process names
  187920. .UNINDENT
  187921. .UNINDENT
  187922. .IP \(bu 2
  187923. \fBISSUE\fP \fI\%#45176\fP: (\fI\%thuhak\fP) osquery execution module does\(aqt work with attrs parameter (refs: \fI\%#45204\fP)
  187924. .IP \(bu 2
  187925. \fBPR\fP \fI\%#45204\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to osquery module & addition of unit tests
  187926. @ \fI2017\-12\-30 13:25:38 UTC\fP
  187927. .INDENT 2.0
  187928. .IP \(bu 2
  187929. abed378981 Merge pull request \fI\%#45204\fP from garethgreenaway/45176_fixes_to_osquery_module
  187930. .IP \(bu 2
  187931. dc933e9e24 Fixing typo
  187932. .IP \(bu 2
  187933. d834bd1b6f Fixing some minor lint issues.
  187934. .IP \(bu 2
  187935. 4738205154 Fixing a bug when attributes are passed to various osquery module functions.
  187936. .INDENT 2.0
  187937. .INDENT 3.5
  187938. .INDENT 0.0
  187939. .IP \(bu 2
  187940. 66884334d9 Update states.pkg for Python3 compatibility
  187941. .IP \(bu 2
  187942. 2a7d76ad6e Fail pkg.uptodate if expected packages are not upgraded
  187943. .IP \(bu 2
  187944. 29ef67bac2 Test pkg.uptodate with failed upgrades
  187945. .IP \(bu 2
  187946. 23ab93353b Produce changes dict for pkg.uptodate dry\-run mode
  187947. .IP \(bu 2
  187948. 7c67ec39d9 Add tests for pkg.uptodate state
  187949. .UNINDENT
  187950. .UNINDENT
  187951. .UNINDENT
  187952. .UNINDENT
  187953. .IP \(bu 2
  187954. \fBPR\fP \fI\%#45203\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187955. @ \fI2017\-12\-29 01:11:03 UTC\fP
  187956. .INDENT 2.0
  187957. .IP \(bu 2
  187958. 5991d8ca15 Merge pull request \fI\%#45203\fP from rallytime/merge\-2017.7
  187959. .IP \(bu 2
  187960. 430c913c8c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187961. .INDENT 2.0
  187962. .IP \(bu 2
  187963. d3381e27d0 Merge pull request \fI\%#45118\fP from garethgreenaway/44728_nodegroups_seq
  187964. .INDENT 2.0
  187965. .IP \(bu 2
  187966. 0ff811de70 Swapping import to be the old path for 2016.11
  187967. .IP \(bu 2
  187968. b3e2f388f5 Fix to allow nodegroups to include sequences
  187969. .UNINDENT
  187970. .IP \(bu 2
  187971. f969aca3a3 Merge pull request \fI\%#45127\fP from twangboy/win_fix_pkg
  187972. .INDENT 2.0
  187973. .IP \(bu 2
  187974. 14639739f2 Fix issue with 1641 return code
  187975. .UNINDENT
  187976. .IP \(bu 2
  187977. dc357b39f0 Merge pull request \fI\%#45137\fP from twangboy/win_fix_reg_tests
  187978. .INDENT 2.0
  187979. .IP \(bu 2
  187980. b6f4ef8d73 Catch correct error type in list_keys and list_values
  187981. .UNINDENT
  187982. .IP \(bu 2
  187983. 0aa1662731 Merge pull request \fI\%#45130\fP from rallytime/api\-groups
  187984. .INDENT 2.0
  187985. .IP \(bu 2
  187986. 2dcc8df845 Resolve groups for salt api
  187987. .UNINDENT
  187988. .IP \(bu 2
  187989. 7dc3cc4641 Merge pull request \fI\%#45114\fP from twangboy/win_fix_pam
  187990. .INDENT 2.0
  187991. .IP \(bu 2
  187992. cf5eae1f77 Move pam library load to try/except block
  187993. .UNINDENT
  187994. .UNINDENT
  187995. .UNINDENT
  187996. .IP \(bu 2
  187997. \fBPR\fP \fI\%#45201\fP: (\fI\%rallytime\fP) [2017.7] Check for running on python3 before decoding bytes
  187998. @ \fI2017\-12\-28 22:59:14 UTC\fP
  187999. .INDENT 2.0
  188000. .IP \(bu 2
  188001. \fBPR\fP \fI\%#45090\fP: (\fI\%angeloudy\fP) fix TypeError in python 3 (refs: \fI\%#45201\fP)
  188002. .IP \(bu 2
  188003. 882267314f Merge pull request \fI\%#45201\fP from rallytime/fix\-jinja\-template\-test\-failure
  188004. .IP \(bu 2
  188005. b4af3bdff8 Check for running on python3 before decoding bytes
  188006. .UNINDENT
  188007. .IP \(bu 2
  188008. \fBPR\fP \fI\%#45200\fP: (\fI\%rallytime\fP) [2017.7] Fix docstring integration test failure
  188009. @ \fI2017\-12\-28 22:58:34 UTC\fP
  188010. .INDENT 2.0
  188011. .IP \(bu 2
  188012. \fBPR\fP \fI\%#44552\fP: (\fI\%Da\-Juan\fP) pip_state: Check if available upgrades fulfill version requirements. (refs: \fI\%#45200\fP)
  188013. .IP \(bu 2
  188014. 2e18398f12 Merge pull request \fI\%#45200\fP from rallytime/fix\-docstring\-test\-failure
  188015. .IP \(bu 2
  188016. a26d4795bd [2017.7] Fix docstring integration test failure
  188017. .UNINDENT
  188018. .IP \(bu 2
  188019. \fBPR\fP \fI\%#45186\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44922\fP to 2017.7
  188020. @ \fI2017\-12\-28 19:02:51 UTC\fP
  188021. .INDENT 2.0
  188022. .IP \(bu 2
  188023. \fBPR\fP \fI\%#44922\fP: (\fI\%dincamihai\fP) Fix salt\-master for old psutil (refs: \fI\%#45186\fP)
  188024. .IP \(bu 2
  188025. 67d97303b5 Merge pull request \fI\%#45186\fP from rallytime/bp\-44922
  188026. .IP \(bu 2
  188027. 6970fe8103 Fix salt\-master for old psutil
  188028. .UNINDENT
  188029. .IP \(bu 2
  188030. \fBPR\fP \fI\%#44624\fP: (\fI\%eliasp\fP) Fix Traceback when using the \fIservice.enabled\fP state on non\-booted systems
  188031. @ \fI2017\-12\-28 10:58:43 UTC\fP
  188032. .INDENT 2.0
  188033. .IP \(bu 2
  188034. 30d7f7257a Merge pull request \fI\%#44624\fP from eliasp/fix\-upstart\-utmp\-exception
  188035. .IP \(bu 2
  188036. 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).
  188037. .UNINDENT
  188038. .IP \(bu 2
  188039. \fBPR\fP \fI\%#45183\fP: (\fI\%twangboy\fP) Add libnacl dependency
  188040. @ \fI2017\-12\-27 22:08:32 UTC\fP
  188041. .INDENT 2.0
  188042. .IP \(bu 2
  188043. 3832e7b227 Merge pull request \fI\%#45183\fP from twangboy/win_add_libnacl_2017.7
  188044. .IP \(bu 2
  188045. b46845888d Add libnacl dependency
  188046. .UNINDENT
  188047. .IP \(bu 2
  188048. \fBISSUE\fP \fI\%#44928\fP: (\fI\%rcallphin\fP) Duplicating master token when no match for Minion policy (Vault Module) (refs: \fI\%#44966\fP)
  188049. .IP \(bu 2
  188050. \fBPR\fP \fI\%#44966\fP: (\fI\%rcallphin\fP) Fix bug with vault runner creating token on empty policy
  188051. @ \fI2017\-12\-22 20:30:37 UTC\fP
  188052. .INDENT 2.0
  188053. .IP \(bu 2
  188054. fbbf33574e Merge pull request \fI\%#44966\fP from rcallphin/fix\-bug\-vault\-empty\-policy
  188055. .IP \(bu 2
  188056. 7f327ab760 Lint: Remove extra whitespace
  188057. .IP \(bu 2
  188058. 04ab6a5e9d Merge branch \(aq2017.7\(aq into fix\-bug\-vault\-empty\-policy
  188059. .IP \(bu 2
  188060. 5be463bb46 Merge branch \(aq2017.7\(aq into fix\-bug\-vault\-empty\-policy
  188061. .IP \(bu 2
  188062. 48d9cc3674 Fix bug with vault runner creating token on empty policy
  188063. .UNINDENT
  188064. .IP \(bu 2
  188065. \fBPR\fP \fI\%#44552\fP: (\fI\%Da\-Juan\fP) pip_state: Check if available upgrades fulfill version requirements. (refs: \fI\%#45200\fP)
  188066. @ \fI2017\-12\-22 19:25:17 UTC\fP
  188067. .INDENT 2.0
  188068. .IP \(bu 2
  188069. 487207f61d Merge pull request \fI\%#44552\fP from Da\-Juan/avoid_unneeded_pip_install
  188070. .IP \(bu 2
  188071. 49a6a8f02e Merge branch \(aq2017.7\(aq into avoid_unneeded_pip_install
  188072. .IP \(bu 2
  188073. 3a8e62493d pip_state: Check if available upgrades fulfill version requirements
  188074. .IP \(bu 2
  188075. 62252d74d9 pip_state: Compare versions using pkg_resources.parse_version
  188076. .IP \(bu 2
  188077. 5219ab974c Add list_all_versions function to pip module
  188078. .UNINDENT
  188079. .IP \(bu 2
  188080. \fBPR\fP \fI\%#45090\fP: (\fI\%angeloudy\fP) fix TypeError in python 3 (refs: \fI\%#45201\fP)
  188081. @ \fI2017\-12\-22 18:11:13 UTC\fP
  188082. .INDENT 2.0
  188083. .IP \(bu 2
  188084. 5ae26f0c09 Merge pull request \fI\%#45090\fP from angeloudy/2017.7
  188085. .IP \(bu 2
  188086. cf411f8984 Merge branch \(aq2017.7\(aq into 2017.7
  188087. .IP \(bu 2
  188088. 177fd18671 fix TypeError in python 3
  188089. .UNINDENT
  188090. .IP \(bu 2
  188091. \fBISSUE\fP \fI\%#44315\fP: (\fI\%whytewolf\fP) cmd.* cwd does not escape spaces. 2017.7.2 (refs: \fI\%#45134\fP)
  188092. .IP \(bu 2
  188093. \fBPR\fP \fI\%#45134\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to cmd.script for cwd with space
  188094. @ \fI2017\-12\-22 15:31:24 UTC\fP
  188095. .INDENT 2.0
  188096. .IP \(bu 2
  188097. a1946730a9 Merge pull request \fI\%#45134\fP from garethgreenaway/44315_cmd_script_cwd_with_space
  188098. .IP \(bu 2
  188099. 48eafe3206 Adding some tests to tests cmd.script with cwd
  188100. .IP \(bu 2
  188101. 8dfcf71b08 Adding _cmd_quote to handle cases when the current working directory for cmd.script might have a space in it.
  188102. .UNINDENT
  188103. .IP \(bu 2
  188104. \fBPR\fP \fI\%#44964\fP: (\fI\%Giandom\fP) added\-highstate\-output\-to\-slack\-engine
  188105. @ \fI2017\-12\-21 21:32:01 UTC\fP
  188106. .INDENT 2.0
  188107. .IP \(bu 2
  188108. f41adfc913 Merge pull request \fI\%#44964\fP from Giandom/2017.7\-added\-highstate\-output\-to\-slack\-engine
  188109. .IP \(bu 2
  188110. 4526c158f1 added\-highstate\-output\-to\-slack\-engine
  188111. .IP \(bu 2
  188112. 573a0a4143 added\-highstate\-output\-to\-slack\-engine
  188113. .IP \(bu 2
  188114. 9a6e03ce6e added\-highstate\-output\-to\-slack\-engine
  188115. .UNINDENT
  188116. .IP \(bu 2
  188117. \fBPR\fP \fI\%#45124\fP: (\fI\%gtmanfred\fP) enable using kitchen\-salt with ec2 on 2017.7
  188118. @ \fI2017\-12\-21 19:11:27 UTC\fP
  188119. .INDENT 2.0
  188120. .IP \(bu 2
  188121. b49ee97938 Merge pull request \fI\%#45124\fP from gtmanfred/2017.7
  188122. .IP \(bu 2
  188123. d0586013eb fix pylint
  188124. .IP \(bu 2
  188125. 59e2e56d13 chmod the xml files before trying to copy
  188126. .IP \(bu 2
  188127. a5c1410e23 catch IOError when copying xml files back
  188128. .IP \(bu 2
  188129. 23bd38ad66 enable using kitchen\-salt on ec2
  188130. .UNINDENT
  188131. .IP \(bu 2
  188132. \fBPR\fP \fI\%#45087\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188133. @ \fI2017\-12\-20 22:24:51 UTC\fP
  188134. .INDENT 2.0
  188135. .IP \(bu 2
  188136. 42e894570d Merge pull request \fI\%#45087\fP from rallytime/merge\-2017.7
  188137. .IP \(bu 2
  188138. fe81e2d39a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188139. .INDENT 2.0
  188140. .IP \(bu 2
  188141. 7e128e8f15 Merge pull request \fI\%#45100\fP from rallytime/bp\-45070
  188142. .INDENT 2.0
  188143. .IP \(bu 2
  188144. 0bdb46dab9 add clouds modules to index
  188145. .UNINDENT
  188146. .IP \(bu 2
  188147. bdf93f339d Merge pull request \fI\%#45098\fP from rallytime/bp\-45092
  188148. .INDENT 2.0
  188149. .IP \(bu 2
  188150. 80b6bd6813 Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install
  188151. .UNINDENT
  188152. .UNINDENT
  188153. .IP \(bu 2
  188154. 4f21a2bbfd Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188155. .INDENT 2.0
  188156. .IP \(bu 2
  188157. 324b7d4058 Merge pull request \fI\%#44078\fP from rossengeorgiev/fix\-41044
  188158. .INDENT 2.0
  188159. .IP \(bu 2
  188160. a81a6fe23c fix \fI\%#41044\fP; allow for date param to be 0
  188161. .UNINDENT
  188162. .IP \(bu 2
  188163. 48a59761df Merge pull request \fI\%#44970\fP from rallytime/update\-bootstrap\-script
  188164. .INDENT 2.0
  188165. .IP \(bu 2
  188166. b2c8057427 Update bootstrap script to latest release: 2017.12.13
  188167. .UNINDENT
  188168. .IP \(bu 2
  188169. 637fdaed58 Merge pull request \fI\%#45069\fP from rallytime/bp\-45040
  188170. .INDENT 2.0
  188171. .IP \(bu 2
  188172. aa438e1605 Installation Fails on headless machines.
  188173. .UNINDENT
  188174. .IP \(bu 2
  188175. 4d6d640381 Merge pull request \fI\%#44969\fP from rallytime/bp\-41305
  188176. .INDENT 2.0
  188177. .IP \(bu 2
  188178. 5c4bee43dc correct accept_vpc_peering_connection
  188179. .UNINDENT
  188180. .IP \(bu 2
  188181. 10de468f13 Merge pull request \fI\%#45031\fP from terminalmage/fix\-mysql\-returner
  188182. .INDENT 2.0
  188183. .IP \(bu 2
  188184. f3bd12c27c Fix invalid exception class in mysql returner
  188185. .UNINDENT
  188186. .IP \(bu 2
  188187. 9a7406207f Merge pull request \fI\%#44972\fP from terminalmage/bp\-44958
  188188. .INDENT 2.0
  188189. .IP \(bu 2
  188190. a416bf0112 No need to manually do connect_pub, use listen=True in run_job
  188191. .IP \(bu 2
  188192. 3ec004bd2e Fix a race condition in manage runner
  188193. .UNINDENT
  188194. .IP \(bu 2
  188195. 1032ca3290 Merge pull request \fI\%#44385\fP from gtmanfred/schedule
  188196. .INDENT 2.0
  188197. .IP \(bu 2
  188198. 9e15c38da2 add comma
  188199. .IP \(bu 2
  188200. 855d933cb7 schedule should be a dict
  188201. .UNINDENT
  188202. .UNINDENT
  188203. .UNINDENT
  188204. .IP \(bu 2
  188205. \fBPR\fP \fI\%#45112\fP: (\fI\%Ch3LL\fP) Fix spm big file build test to check /tmp
  188206. @ \fI2017\-12\-20 22:09:21 UTC\fP
  188207. .INDENT 2.0
  188208. .IP \(bu 2
  188209. 9550e742ac Merge pull request \fI\%#45112\fP from Ch3LL/fix\-arch
  188210. .IP \(bu 2
  188211. 1bd7110a14 Fix spm big file build test to check /tmp
  188212. .UNINDENT
  188213. .IP \(bu 2
  188214. \fBISSUE\fP \fI\%#44303\fP: (\fI\%mwerickso\fP) boto3_route53 module times out on retries (refs: \fI\%#44976\fP)
  188215. .IP \(bu 2
  188216. \fBPR\fP \fI\%#45068\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44976\fP to 2017.7
  188217. @ \fI2017\-12\-20 16:31:22 UTC\fP
  188218. .INDENT 2.0
  188219. .IP \(bu 2
  188220. \fBPR\fP \fI\%#44976\fP: (\fI\%tkwilliams\fP) Fix bad variable name in boto3_route53 module \- resolves \fI\%#44303\fP (refs: \fI\%#45068\fP)
  188221. .IP \(bu 2
  188222. 71f9c7ee49 Merge pull request \fI\%#45068\fP from rallytime/bp\-44976
  188223. .IP \(bu 2
  188224. 0ca0f37805 44303 \- resolves \fI\%#44303\fP
  188225. .UNINDENT
  188226. .IP \(bu 2
  188227. \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)
  188228. .IP \(bu 2
  188229. \fBPR\fP \fI\%#45099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44983\fP to 2017.7
  188230. @ \fI2017\-12\-20 14:41:22 UTC\fP
  188231. .INDENT 2.0
  188232. .IP \(bu 2
  188233. \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)
  188234. .IP \(bu 2
  188235. 54a33c0e1d Merge pull request \fI\%#45099\fP from rallytime/bp\-44983
  188236. .IP \(bu 2
  188237. 23361de8a2 Ref:44961 \- Modified archive.tar to add dest argument at the end of the tar cmd.
  188238. .UNINDENT
  188239. .IP \(bu 2
  188240. \fBISSUE\fP \fI\%#43533\fP: (\fI\%Ch3LL\fP) Add status.pid Test to Auto Test Suite (refs: \fI\%#44650\fP)
  188241. .IP \(bu 2
  188242. \fBPR\fP \fI\%#44650\fP: (\fI\%frogunder\fP) add status.pid test
  188243. @ \fI2017\-12\-19 16:21:09 UTC\fP
  188244. .INDENT 2.0
  188245. .IP \(bu 2
  188246. e0d7b330fa Merge pull request \fI\%#44650\fP from frogunder/status
  188247. .IP \(bu 2
  188248. 904c0da893 Merge branch \(aq2017.7\(aq into status
  188249. .IP \(bu 2
  188250. 619bd2be1e fix lint error
  188251. .IP \(bu 2
  188252. d406cb07a3 add status.pid test
  188253. .UNINDENT
  188254. .IP \(bu 2
  188255. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#45161\fP, \fI\%#44944\fP)
  188256. .IP \(bu 2
  188257. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#45161\fP)
  188258. @ \fI2017\-12\-19 14:42:49 UTC\fP
  188259. .INDENT 2.0
  188260. .IP \(bu 2
  188261. 422d8b8f1b Merge pull request \fI\%#44944\fP from lomeroe/update_regpol_encoding
  188262. .IP \(bu 2
  188263. 07d04c7bc7 lint fixes for static regexes
  188264. .IP \(bu 2
  188265. d17c46ce41 lint fixes
  188266. .IP \(bu 2
  188267. ab8e431729 do not decode registry.pol file wholesale, but instead decode individual elements of the file
  188268. .UNINDENT
  188269. .IP \(bu 2
  188270. \fBPR\fP \fI\%#44938\fP: (\fI\%The\-Loeki\fP) Libcloud dns fixes
  188271. @ \fI2017\-12\-18 15:47:18 UTC\fP
  188272. .INDENT 2.0
  188273. .IP \(bu 2
  188274. d9a4b9681e Merge pull request \fI\%#44938\fP from The\-Loeki/libcloud_dns_fixes
  188275. .IP \(bu 2
  188276. 276e8828ae libcloud_dns: pylint fix
  188277. .IP \(bu 2
  188278. c994423286 Merge branch \(aq2017.7\(aq into libcloud_dns_fixes
  188279. .UNINDENT
  188280. .IP \(bu 2
  188281. \fBPR\fP \fI\%#44951\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188282. @ \fI2017\-12\-16 13:16:24 UTC\fP
  188283. .INDENT 2.0
  188284. .IP \(bu 2
  188285. 5137be01ec Merge pull request \fI\%#44951\fP from rallytime/merge\-2017.7
  188286. .IP \(bu 2
  188287. a0d2dd2069 Lint fix
  188288. .IP \(bu 2
  188289. 9db4179462 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188290. .INDENT 2.0
  188291. .IP \(bu 2
  188292. 68d901b12c Merge pull request \fI\%#44770\fP from cruscio/2016.11
  188293. .INDENT 2.0
  188294. .IP \(bu 2
  188295. e2682bf441 Fix minion ping_interval documentation
  188296. .UNINDENT
  188297. .IP \(bu 2
  188298. d4ab55ec47 Merge pull request \fI\%#44335\fP from gtmanfred/2016.11
  188299. .INDENT 2.0
  188300. .IP \(bu 2
  188301. 3f1268d67f fix patching for python 2.6
  188302. .IP \(bu 2
  188303. 1d0bd5bb32 Merge branch \(aq2016.11\(aq into 2016.11
  188304. .IP \(bu 2
  188305. f02b02032d Merge pull request #4 from terminalmage/pr\-44335
  188306. .INDENT 2.0
  188307. .IP \(bu 2
  188308. b4eb1527a6 Add test for PR 44335
  188309. .UNINDENT
  188310. .IP \(bu 2
  188311. a30af3252e add docker\-ce to docker subtype grains check
  188312. .UNINDENT
  188313. .UNINDENT
  188314. .UNINDENT
  188315. .IP \(bu 2
  188316. \fBPR\fP \fI\%#44995\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_file\fP for Windows
  188317. @ \fI2017\-12\-15 17:05:49 UTC\fP
  188318. .INDENT 2.0
  188319. .IP \(bu 2
  188320. 698b04779e Merge pull request \fI\%#44995\fP from twangboy/win_fix_atomicfile
  188321. .IP \(bu 2
  188322. 8316481944 Comment the salt import
  188323. .IP \(bu 2
  188324. fe34f0c877 Set owner properly on Windows
  188325. .UNINDENT
  188326. .IP \(bu 2
  188327. \fBISSUE\fP \fI\%#44934\fP: (\fI\%vernondcole\fP) http.wait_for_successful_query does not pause for documented intervals (refs: \fI\%#44968\fP)
  188328. .IP \(bu 2
  188329. \fBPR\fP \fI\%#44968\fP: (\fI\%gtmanfred\fP) fix http wait for state
  188330. @ \fI2017\-12\-14 20:06:01 UTC\fP
  188331. .INDENT 2.0
  188332. .IP \(bu 2
  188333. 2e1a57b9bc Merge pull request \fI\%#44968\fP from gtmanfred/http
  188334. .IP \(bu 2
  188335. ca6936f6eb fix http wait for state
  188336. .INDENT 2.0
  188337. .INDENT 3.5
  188338. .INDENT 0.0
  188339. .IP \(bu 2
  188340. c72db283d5 libcloud_dns: Further fixes to state output, pylint fixes
  188341. .IP \(bu 2
  188342. e9bbc23b11 Merge branch \(aq2017.7\(aq into libcloud_dns_fixes
  188343. .UNINDENT
  188344. .UNINDENT
  188345. .UNINDENT
  188346. .UNINDENT
  188347. .IP \(bu 2
  188348. \fBISSUE\fP \fI\%#44811\fP: (\fI\%xuhcc\fP) rbenv.installed fails when rbenv installed globally (refs: \fI\%#44900\fP)
  188349. .IP \(bu 2
  188350. \fBPR\fP \fI\%#44900\fP: (\fI\%xuhcc\fP) Fix TypeError during rbenv ruby installation when rbenv is not found
  188351. @ \fI2017\-12\-14 17:37:14 UTC\fP
  188352. .INDENT 2.0
  188353. .IP \(bu 2
  188354. c4f0894689 Merge pull request \fI\%#44900\fP from xuhcc/rbenv\-ret\-fix
  188355. .IP \(bu 2
  188356. fdd8310c31 Merge branch \(aq2017.7\(aq into rbenv\-ret\-fix
  188357. .IP \(bu 2
  188358. bfd0972d25 Fix TypeError during rbenv ruby installation when rbenv is not found
  188359. .UNINDENT
  188360. .IP \(bu 2
  188361. \fBPR\fP \fI\%#44974\fP: (\fI\%twangboy\fP) Skip test_log_created on Windows
  188362. @ \fI2017\-12\-14 13:59:25 UTC\fP
  188363. .INDENT 2.0
  188364. .IP \(bu 2
  188365. f0c2cf3cec Merge pull request \fI\%#44974\fP from twangboy/win_skip_test_parsers
  188366. .IP \(bu 2
  188367. 40665d7b08 Skip test_log_created on Windows
  188368. .UNINDENT
  188369. .IP \(bu 2
  188370. \fBISSUE\fP \fI\%#44820\fP: (\fI\%msteed\fP) Custom returner breaks manage runner (refs: \fI\%#44958\fP)
  188371. .IP \(bu 2
  188372. \fBPR\fP \fI\%#44958\fP: (\fI\%terminalmage\fP) Fix a race condition in manage runner (refs: \fI\%#44972\fP)
  188373. @ \fI2017\-12\-13 15:20:36 UTC\fP
  188374. .INDENT 2.0
  188375. .IP \(bu 2
  188376. dad2d723ca Merge pull request \fI\%#44958\fP from terminalmage/issue44820
  188377. .IP \(bu 2
  188378. ef749abfc6 No need to manually do connect_pub, use listen=True in run_job
  188379. .IP \(bu 2
  188380. 2ac70cfab5 Fix a race condition in manage runner
  188381. .UNINDENT
  188382. .IP \(bu 2
  188383. \fBPR\fP \fI\%#44956\fP: (\fI\%terminalmage\fP) Avoid traceback when bogus value in pidfile
  188384. @ \fI2017\-12\-13 14:30:12 UTC\fP
  188385. .INDENT 2.0
  188386. .IP \(bu 2
  188387. db58345abb Merge pull request \fI\%#44956\fP from terminalmage/fix\-get_pidfile
  188388. .IP \(bu 2
  188389. d66f3a98d7 Avoid traceback when bogus value in pidfile
  188390. .UNINDENT
  188391. .IP \(bu 2
  188392. \fBISSUE\fP \fI\%#44932\fP: (\fI\%knine\fP) ACLs Not Completely Verified (refs: \fI\%#44945\fP)
  188393. .IP \(bu 2
  188394. \fBPR\fP \fI\%#44945\fP: (\fI\%gtmanfred\fP) Fix handling of effective acls
  188395. @ \fI2017\-12\-12 21:49:34 UTC\fP
  188396. .INDENT 2.0
  188397. .IP \(bu 2
  188398. e8e3b3c8ff Merge pull request \fI\%#44945\fP from gtmanfred/2017.7
  188399. .IP \(bu 2
  188400. 66bb755751 add test for effective acls
  188401. .IP \(bu 2
  188402. 0ff52a93dd use last entry in acl
  188403. .UNINDENT
  188404. .IP \(bu 2
  188405. \fBPR\fP \fI\%#44942\fP: (\fI\%rallytime\fP) Update README with SaltConf18 info
  188406. @ \fI2017\-12\-12 21:47:23 UTC\fP
  188407. .INDENT 2.0
  188408. .IP \(bu 2
  188409. 47dc7b7afb Merge pull request \fI\%#44942\fP from rallytime/readme\-saltconf\-update
  188410. .IP \(bu 2
  188411. d1317c44e2 Update README with SaltConf18 info
  188412. .UNINDENT
  188413. .IP \(bu 2
  188414. \fBISSUE\fP \fI\%#44665\fP: (\fI\%mvivaldi\fP) Documentation of salt renders jinja (refs: \fI\%#44943\fP, \fI\%#44895\fP)
  188415. .IP \(bu 2
  188416. \fBPR\fP \fI\%#44943\fP: (\fI\%mvivaldi\fP) Fix for the jinja documentation
  188417. @ \fI2017\-12\-12 20:20:41 UTC\fP
  188418. .INDENT 2.0
  188419. .IP \(bu 2
  188420. 7572982419 Merge pull request \fI\%#44943\fP from mvivaldi/filters\-doc
  188421. .IP \(bu 2
  188422. d23ac4eabc Fix for the jinja documentation
  188423. .UNINDENT
  188424. .IP \(bu 2
  188425. \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)
  188426. .IP \(bu 2
  188427. \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
  188428. @ \fI2017\-12\-12 18:30:06 UTC\fP
  188429. .INDENT 2.0
  188430. .IP \(bu 2
  188431. 465cacad83 Merge pull request \fI\%#44832\fP from damon\-atkins/2017.7_replace_with_newer_2016.11_win_pkg
  188432. .IP \(bu 2
  188433. a4f0b41ba2 Should be a smaller change set since recent update from 2016.11
  188434. .IP \(bu 2
  188435. 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
  188436. .INDENT 2.0
  188437. .IP \(bu 2
  188438. 843e204582 Merge branch \(aq2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188439. .UNINDENT
  188440. .IP \(bu 2
  188441. 4b60b1ec84 Merge remote branch \(aqrefs/remotes/upstream/2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188442. .IP \(bu 2
  188443. b46f818a57 Raise a PR to fix 2016 issues commited here, fixed issues with merge.
  188444. .IP \(bu 2
  188445. 32ef1e12ae Merge branch \(aq2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188446. .IP \(bu 2
  188447. 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
  188448. .UNINDENT
  188449. .IP \(bu 2
  188450. \fBPR\fP \fI\%#44754\fP: (\fI\%twangboy\fP) Fix inet_pton for Windows on Py3
  188451. @ \fI2017\-12\-12 14:04:20 UTC\fP
  188452. .INDENT 2.0
  188453. .IP \(bu 2
  188454. a811a92b17 Merge pull request \fI\%#44754\fP from twangboy/win_fix_inet_pton
  188455. .IP \(bu 2
  188456. 25a20109fe Merge branch \(aq2017.7\(aq into win_fix_inet_pton
  188457. .IP \(bu 2
  188458. 849b99eb34 Merge branch \(aq2017.7\(aq into win_fix_inet_pton
  188459. .IP \(bu 2
  188460. df1e6a202b Use salt.ext.six
  188461. .IP \(bu 2
  188462. 5ac8112585 Use six to ensure unicode value
  188463. .IP \(bu 2
  188464. 9b5d8c421b Handle unicode values
  188465. .UNINDENT
  188466. .IP \(bu 2
  188467. \fBPR\fP \fI\%#44931\fP: (\fI\%pkruk\fP) add missing parenthis to keep integration with python3
  188468. @ \fI2017\-12\-12 13:49:39 UTC\fP
  188469. .INDENT 2.0
  188470. .IP \(bu 2
  188471. 53b34e24cd Merge pull request \fI\%#44931\fP from pkruk/fix\-missing\-parenthis
  188472. .IP \(bu 2
  188473. b1ed739b44 Merge branch \(aq2017.7\(aq into fix\-missing\-parenthis
  188474. .IP \(bu 2
  188475. 4f1b1f12d2 Merge branch \(aqfix\-missing\-parenthis\(aq of \fI\%https://github.com/pkruk/salt\fP into fix\-missing\-parenthis
  188476. .INDENT 2.0
  188477. .IP \(bu 2
  188478. 3475d3fa01 add missing parenthis to keep integration with python3
  188479. .UNINDENT
  188480. .IP \(bu 2
  188481. adf38cacfb add missing parenthis to keep integration with python3
  188482. .INDENT 2.0
  188483. .INDENT 3.5
  188484. .INDENT 0.0
  188485. .IP \(bu 2
  188486. ad55e33f57 libcloud_dns: fix state output
  188487. .IP \(bu 2
  188488. a68d594e3a libcloud_dns: copy args before deleting from them
  188489. .UNINDENT
  188490. .UNINDENT
  188491. .UNINDENT
  188492. .UNINDENT
  188493. .IP \(bu 2
  188494. \fBPR\fP \fI\%#44891\fP: (\fI\%twangboy\fP) Fix issue with unsafe path in Windows jenkins tests
  188495. @ \fI2017\-12\-11 21:10:43 UTC\fP
  188496. .INDENT 2.0
  188497. .IP \(bu 2
  188498. ba6146250a Merge pull request \fI\%#44891\fP from twangboy/win_fix_verify
  188499. .IP \(bu 2
  188500. 7232579167 Allow test suite file_roots as a safe path
  188501. .UNINDENT
  188502. .IP \(bu 2
  188503. \fBPR\fP \fI\%#44921\fP: (\fI\%Ch3LL\fP) Add test to ensure log files are created
  188504. @ \fI2017\-12\-11 18:24:16 UTC\fP
  188505. .INDENT 2.0
  188506. .IP \(bu 2
  188507. 85160fd297 Merge pull request \fI\%#44921\fP from Ch3LL/log_test
  188508. .IP \(bu 2
  188509. 3bb58fb577 skip salt\-key log creation test
  188510. .IP \(bu 2
  188511. 6a379195bc Add test to ensure log files are created
  188512. .UNINDENT
  188513. .IP \(bu 2
  188514. \fBPR\fP \fI\%#44787\fP: (\fI\%rallytime\fP) GroupAdd test: Add destructive test decorator to entire class
  188515. @ \fI2017\-12\-11 18:14:18 UTC\fP
  188516. .INDENT 2.0
  188517. .IP \(bu 2
  188518. 54d29a61cb Merge pull request \fI\%#44787\fP from rallytime/groupadd\-destructive\-clean
  188519. .IP \(bu 2
  188520. 817ac002b0 Add destructive test decorator to test class
  188521. .UNINDENT
  188522. .IP \(bu 2
  188523. \fBISSUE\fP \fI\%#44665\fP: (\fI\%mvivaldi\fP) Documentation of salt renders jinja (refs: \fI\%#44943\fP, \fI\%#44895\fP)
  188524. .IP \(bu 2
  188525. \fBPR\fP \fI\%#44895\fP: (\fI\%mvivaldi\fP) Jinja Filters doc
  188526. @ \fI2017\-12\-11 15:32:07 UTC\fP
  188527. .INDENT 2.0
  188528. .IP \(bu 2
  188529. 0292e3612a Merge pull request \fI\%#44895\fP from mvivaldi/filters\-doc
  188530. .IP \(bu 2
  188531. 62409d608a Added Escape Filters and Set Theory Filters in jinja documentation
  188532. .UNINDENT
  188533. .IP \(bu 2
  188534. \fBPR\fP \fI\%#44879\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188535. @ \fI2017\-12\-10 16:53:44 UTC\fP
  188536. .INDENT 2.0
  188537. .IP \(bu 2
  188538. \fBPR\fP \fI\%#44855\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7 (refs: \fI\%#44879\fP)
  188539. .IP \(bu 2
  188540. df28f312ac Merge pull request \fI\%#44879\fP from rallytime/merge\-2017.7
  188541. .IP \(bu 2
  188542. 23c5a4ca3e Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188543. .INDENT 2.0
  188544. .IP \(bu 2
  188545. bb1f8dceaf Merge pull request \fI\%#44579\fP from roaldnefs/fix\-cron\-identifier
  188546. .INDENT 2.0
  188547. .IP \(bu 2
  188548. df73a4c051 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  188549. .UNINDENT
  188550. .IP \(bu 2
  188551. af0131fa1f Merge pull request \fI\%#44852\fP from damon\-atkins/2016.11_win_pkg_typo_n_fix
  188552. .INDENT 2.0
  188553. .IP \(bu 2
  188554. 0e7c19084f Lint: Remove extra whitespace
  188555. .IP \(bu 2
  188556. 7c7e21f94d Fix spelling typo, and fix backwards campatible minion option for repo location
  188557. .UNINDENT
  188558. .IP \(bu 2
  188559. 88c0d66b4e Merge pull request \fI\%#44794\fP from terminalmage/issue44365
  188560. .INDENT 2.0
  188561. .IP \(bu 2
  188562. 3b8b6f25e6 Remove debugging line
  188563. .IP \(bu 2
  188564. 153bf45b03 Fix regression in file.managed when source_hash used with local file
  188565. .UNINDENT
  188566. .IP \(bu 2
  188567. c8bb9dfbbb Merge pull request \fI\%#44738\fP from rallytime/bump\-oxygen\-warnings
  188568. .INDENT 2.0
  188569. .IP \(bu 2
  188570. ead3c569e1 Bump deprecation warnings from Oxygen to Fluorine
  188571. .UNINDENT
  188572. .IP \(bu 2
  188573. 88e3aab00d Merge pull request \fI\%#44741\fP from gtmanfred/rhip
  188574. .INDENT 2.0
  188575. .IP \(bu 2
  188576. 439dc8dce6 if gateway is not specified use iface
  188577. .INDENT 2.0
  188578. .IP \(bu 2
  188579. 3ec4329307 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  188580. .IP \(bu 2
  188581. 99fa05a456 Fix for bug in cron state
  188582. .IP \(bu 2
  188583. 97328faeac Fix for bug in cron module
  188584. .UNINDENT
  188585. .UNINDENT
  188586. .UNINDENT
  188587. .UNINDENT
  188588. .IP \(bu 2
  188589. \fBPR\fP \fI\%#44880\fP: (\fI\%UtahDave\fP) Determine windows hardware arch correctly
  188590. @ \fI2017\-12\-08 22:24:09 UTC\fP
  188591. .INDENT 2.0
  188592. .IP \(bu 2
  188593. 8e14bc3941 Merge pull request \fI\%#44880\fP from UtahDave/2017.7local
  188594. .IP \(bu 2
  188595. 6e3c7ac1ac Merge branch \(aq2017.7\(aq into 2017.7local
  188596. .UNINDENT
  188597. .IP \(bu 2
  188598. \fBPR\fP \fI\%#44861\fP: (\fI\%twangboy\fP) Fix win_lgpo for unknown values (refs: \fI\%#45327\fP)
  188599. @ \fI2017\-12\-08 18:52:05 UTC\fP
  188600. .INDENT 2.0
  188601. .IP \(bu 2
  188602. dc51174670 Merge pull request \fI\%#44861\fP from twangboy/win_fix_lgpo_invalid_value
  188603. .IP \(bu 2
  188604. 89f65e19ff Check for values other than 0 or 1
  188605. .UNINDENT
  188606. .IP \(bu 2
  188607. \fBPR\fP \fI\%#44621\fP: (\fI\%isbm\fP) Bugfix: errors in external pillar causes crash, instead of report of them
  188608. @ \fI2017\-12\-08 18:46:56 UTC\fP
  188609. .INDENT 2.0
  188610. .IP \(bu 2
  188611. f5a143f8c5 Merge pull request \fI\%#44621\fP from isbm/isbm\-bsc1068446\-2017.7
  188612. .IP \(bu 2
  188613. 0d2675c4fe Use variable, instead of direct value
  188614. .IP \(bu 2
  188615. 1ddc47da0a Add unit test for _get_pillar_errors when external pillar is clean and internal contains errors
  188616. .IP \(bu 2
  188617. 68480d5dc9 Add unit test for _get_pillar_errors when both external and internal pillars contains errors
  188618. .IP \(bu 2
  188619. 218a59e93b Add unit test for _get_pillar_errors when external pillar has errors and internal is clean
  188620. .IP \(bu 2
  188621. 3ce19356c2 Add unit test for _get_pillar_errors when external and internal pillars are clean
  188622. .IP \(bu 2
  188623. 67034139d9 Fix unit test: wrong error types in side effect
  188624. .IP \(bu 2
  188625. d9359bca13 Bugfix: unit test mistakenly expects pillar errors as a string, while it is a list
  188626. .IP \(bu 2
  188627. 8c2bdc696b Bugfix: do not pull \(aq_errors\(aq from unchecked objects
  188628. .IP \(bu 2
  188629. d5e30999c7 Remove unused variable (no exception, within the try/finally block)
  188630. .IP \(bu 2
  188631. aad668d559 Fix and clarify docstring.
  188632. .IP \(bu 2
  188633. c2c47e4e71 Rename function from ambiguous name
  188634. .IP \(bu 2
  188635. 265de8e61c Bugfix the logic according to the exact described purpose of the function.
  188636. .INDENT 2.0
  188637. .INDENT 3.5
  188638. .INDENT 0.0
  188639. .IP \(bu 2
  188640. dae9c6aa5c Determine windows hardware arch correctly
  188641. .UNINDENT
  188642. .UNINDENT
  188643. .UNINDENT
  188644. .UNINDENT
  188645. .IP \(bu 2
  188646. \fBPR\fP \fI\%#43379\fP: (\fI\%twangboy\fP) Fix file.managed on Windows with test=True
  188647. @ \fI2017\-12\-07 21:10:43 UTC\fP
  188648. .INDENT 2.0
  188649. .IP \(bu 2
  188650. abe089ad54 Merge pull request \fI\%#43379\fP from twangboy/win_fix_file.managed
  188651. .IP \(bu 2
  188652. edcd581ca5 Merge branch \(aq2017.7\(aq into win_fix_file.managed
  188653. .IP \(bu 2
  188654. a27bb6993a Fix py3 error
  188655. .IP \(bu 2
  188656. 0ff9fa498a Fix test_directory
  188657. .IP \(bu 2
  188658. 187bc1e61e Add back the try/finally blocks
  188659. .IP \(bu 2
  188660. d7241d004f Fix 2 more tests
  188661. .IP \(bu 2
  188662. d5dd42aebe Fix integration tests for Windows
  188663. .IP \(bu 2
  188664. d56bc9aae9 Fix typo
  188665. .IP \(bu 2
  188666. af5565859e Use file functions for symlink and remove
  188667. .IP \(bu 2
  188668. 72ac59c991 Fix some more integration tests for Linux
  188669. .IP \(bu 2
  188670. 3f0499cbc4 Fix some integration tests
  188671. .IP \(bu 2
  188672. a24b964ea5 Fix unit test to handle new Exception
  188673. .IP \(bu 2
  188674. e3c3845f73 Raise CommandExecutionError when file doesn\(aqt exist
  188675. .IP \(bu 2
  188676. 4602f499a2 Remove loader module mixin, add linux paths
  188677. .IP \(bu 2
  188678. 99b27c037f Add tests to avoid future regression
  188679. .IP \(bu 2
  188680. 5c215ed8c2 Fix documentation formatting
  188681. .IP \(bu 2
  188682. 6a4e77e4b9 Return empty or unmodified dict on file not found
  188683. .UNINDENT
  188684. .IP \(bu 2
  188685. \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)
  188686. .IP \(bu 2
  188687. \fBPR\fP \fI\%#44570\fP: (\fI\%gtmanfred\fP) Include client mixin globals in scheduler for runner modules
  188688. @ \fI2017\-12\-07 20:23:33 UTC\fP
  188689. .INDENT 2.0
  188690. .IP \(bu 2
  188691. cf4cbcd340 Merge pull request \fI\%#44570\fP from gtmanfred/2017.7
  188692. .IP \(bu 2
  188693. 7b17f9f63c Merge branch \(aq2017.7\(aq into 2017.7
  188694. .UNINDENT
  188695. .IP \(bu 2
  188696. \fBPR\fP \fI\%#44494\fP: (\fI\%skizunov\fP) Fix broken \fIbeacons_before_connect\fP feature
  188697. @ \fI2017\-12\-07 18:24:49 UTC\fP
  188698. .INDENT 2.0
  188699. .IP \(bu 2
  188700. \fBPR\fP \fI\%#38289\fP: (\fI\%skizunov\fP) Add config options for running beacons/scheduler before connect (refs: \fI\%#44494\fP)
  188701. .IP \(bu 2
  188702. febb913743 Merge pull request \fI\%#44494\fP from skizunov/develop2
  188703. .IP \(bu 2
  188704. 7adcfbf8ec Merge branch \(aq2017.7\(aq into develop2
  188705. .UNINDENT
  188706. .IP \(bu 2
  188707. \fBISSUE\fP \fI\%#44298\fP: (\fI\%skjaro\fP) ipset state check problem (refs: \fI\%#44356\fP)
  188708. .IP \(bu 2
  188709. \fBISSUE\fP \fI\%#39552\fP: (\fI\%Xiami2012\fP) ipset.check new implementation by @lingonl has countless critical bugs (refs: \fI\%#44356\fP)
  188710. .IP \(bu 2
  188711. \fBPR\fP \fI\%#44512\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44356\fP to 2017.7
  188712. @ \fI2017\-12\-07 14:44:50 UTC\fP
  188713. .INDENT 2.0
  188714. .IP \(bu 2
  188715. \fBPR\fP \fI\%#44356\fP: (\fI\%skjaro\fP) Fix ipset state with multiple entries and subtypes separated with comma (refs: \fI\%#44512\fP)
  188716. .IP \(bu 2
  188717. 284a817565 Merge pull request \fI\%#44512\fP from rallytime/bp\-44356
  188718. .IP \(bu 2
  188719. 6f92c71834 Merge branch \(aq2017.7\(aq into bp\-44356
  188720. .IP \(bu 2
  188721. 9a325146df Fix lint violation
  188722. .IP \(bu 2
  188723. 5aac729855 Fix check multiple entries with subtypes separated with comma
  188724. .UNINDENT
  188725. .IP \(bu 2
  188726. \fBPR\fP \fI\%#44748\fP: (\fI\%twangboy\fP) Fix auto login support for OSX
  188727. @ \fI2017\-12\-07 14:22:23 UTC\fP
  188728. .INDENT 2.0
  188729. .IP \(bu 2
  188730. 74ee7ce541 Merge pull request \fI\%#44748\fP from twangboy/osx_fix_auto_login
  188731. .IP \(bu 2
  188732. 068e463870 Fix lint, add integration tests
  188733. .IP \(bu 2
  188734. 3df886df75 Fix lint, add gtmanfreds change
  188735. .IP \(bu 2
  188736. 16cb24614f Add kcpassword functionality
  188737. .UNINDENT
  188738. .IP \(bu 2
  188739. \fBPR\fP \fI\%#44842\fP: (\fI\%twangboy\fP) Win fix lgpo unicode on Py3 issue
  188740. @ \fI2017\-12\-07 14:21:14 UTC\fP
  188741. .INDENT 2.0
  188742. .IP \(bu 2
  188743. b60cca174c Merge pull request \fI\%#44842\fP from twangboy/win_fix_lgpo
  188744. .IP \(bu 2
  188745. efe77999d1 Gate log.debug statement behind successful pop
  188746. .IP \(bu 2
  188747. 1c0ec79cd1 Fix py3 issue
  188748. .UNINDENT
  188749. .IP \(bu 2
  188750. \fBPR\fP \fI\%#44843\fP: (\fI\%twangboy\fP) Fix 2 typos in lgpo module
  188751. @ \fI2017\-12\-06 17:56:44 UTC\fP
  188752. .INDENT 2.0
  188753. .IP \(bu 2
  188754. bb58e2fec0 Merge pull request \fI\%#44843\fP from twangboy/win_fix_lgpo_typo
  188755. .IP \(bu 2
  188756. c8f93e6dd7 Fix 2 types, shorten line lengths for spellchecking
  188757. .UNINDENT
  188758. .IP \(bu 2
  188759. \fBPR\fP \fI\%#44827\fP: (\fI\%mz\-bmcqueen\fP) add more clone options to virtualbox and add better dhcp handling
  188760. @ \fI2017\-12\-06 15:02:23 UTC\fP
  188761. .INDENT 2.0
  188762. .IP \(bu 2
  188763. d6c37ea19c Merge pull request \fI\%#44827\fP from mz\-bmcqueen/2017.7
  188764. .IP \(bu 2
  188765. 4ead3014b7 Merge branch \(aq2017.7\(aq into 2017.7
  188766. .IP \(bu 2
  188767. b7ce154014 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/mz\-bmcqueen/salt\fP into 2017.7
  188768. .INDENT 2.0
  188769. .IP \(bu 2
  188770. 2f80f431b3 Merge branch \(aq2017.7\(aq into 2017.7
  188771. .UNINDENT
  188772. .IP \(bu 2
  188773. c2018c9021 fix pylint complaints
  188774. .IP \(bu 2
  188775. c38ff74261 add more clone options to virtualbox and add better dhcp handling
  188776. .UNINDENT
  188777. .IP \(bu 2
  188778. \fBPR\fP \fI\%#44824\fP: (\fI\%Ch3LL\fP) Add spm \-y and \-f arg integration tests
  188779. @ \fI2017\-12\-05 21:49:32 UTC\fP
  188780. .INDENT 2.0
  188781. .IP \(bu 2
  188782. 019169ed61 Merge pull request \fI\%#44824\fP from Ch3LL/spm_args
  188783. .IP \(bu 2
  188784. d8f81d2e4d fix pylint
  188785. .IP \(bu 2
  188786. 61ac5cf157 Add spm \-y and \-f arg integration tests
  188787. .UNINDENT
  188788. .IP \(bu 2
  188789. \fBPR\fP \fI\%#44742\fP: (\fI\%Ch3LL\fP) Add salt\-cloud action rename integration test
  188790. @ \fI2017\-12\-05 17:44:50 UTC\fP
  188791. .INDENT 2.0
  188792. .IP \(bu 2
  188793. 59b930668c Merge pull request \fI\%#44742\fP from Ch3LL/cloud_action_test
  188794. .IP \(bu 2
  188795. 951d09ca2f remove unnecessary try/except block
  188796. .IP \(bu 2
  188797. c329ced7ee Add salt\-cloud action rename integration test
  188798. .UNINDENT
  188799. .IP \(bu 2
  188800. \fBISSUE\fP \fI\%#42676\fP: (\fI\%mind\-code\fP) Changes in Pillar defined Beacons only apply after Minion restart (refs: \fI\%#44771\fP)
  188801. .IP \(bu 2
  188802. \fBPR\fP \fI\%#44771\fP: (\fI\%garethgreenaway\fP) [2017.7] Back porting \fI\%#44071\fP
  188803. @ \fI2017\-12\-05 17:16:06 UTC\fP
  188804. .INDENT 2.0
  188805. .IP \(bu 2
  188806. \fBPR\fP \fI\%#44071\fP: (\fI\%garethgreenaway\fP) [develop] Various fixes to beacons (refs: \fI\%#44771\fP)
  188807. .IP \(bu 2
  188808. 10442d9211 Merge pull request \fI\%#44771\fP from garethgreenaway/42676_backport_44071
  188809. .IP \(bu 2
  188810. ec2a8b2032 Merge branch \(aq2017.7\(aq into 42676_backport_44071
  188811. .IP \(bu 2
  188812. 180971203e Updating minion to respond to list_available events for beacons
  188813. .IP \(bu 2
  188814. db6fcefe62 Adding list_available which is used by the add function to verify that a becaon exists.
  188815. .IP \(bu 2
  188816. e9e0318bc6 Backporting fixes related to having beacons in pillar from \fI\%#44071\fP
  188817. .UNINDENT
  188818. .IP \(bu 2
  188819. \fBPR\fP \fI\%#44784\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188820. @ \fI2017\-12\-05 17:13:49 UTC\fP
  188821. .INDENT 2.0
  188822. .IP \(bu 2
  188823. \fBPR\fP \fI\%#44732\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7 (refs: \fI\%#44784\fP)
  188824. .IP \(bu 2
  188825. 23d151b40a Merge pull request \fI\%#44784\fP from rallytime/merge\-2017.7\-1
  188826. .IP \(bu 2
  188827. 3d9eafc4bd Lint: Remove extra empty lines at end of files
  188828. .IP \(bu 2
  188829. 239f3511bf Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188830. .INDENT 2.0
  188831. .IP \(bu 2
  188832. 97e0cf569c Merge pull request \fI\%#44699\fP from jfindlay/attr_file
  188833. .INDENT 2.0
  188834. .IP \(bu 2
  188835. 9e5a40ea7c Merge branch \(aq2016.11\(aq into attr_file
  188836. .IP \(bu 2
  188837. 5c34607f6c utils/files remove temp file upon move failure
  188838. .UNINDENT
  188839. .IP \(bu 2
  188840. 7434e0afdf Merge pull request \fI\%#44714\fP from rallytime/fix\-44556
  188841. .INDENT 2.0
  188842. .IP \(bu 2
  188843. 1bbe1abeb2 Allow \-\-static option to display state runs with highstate output
  188844. .UNINDENT
  188845. .IP \(bu 2
  188846. 998d714ee7 Merge pull request \fI\%#44517\fP from whytewolf/publish_port_doc_missing
  188847. .INDENT 2.0
  188848. .IP \(bu 2
  188849. 4b5855283a missed one place where i didnt chanbge master_port from my copy to publish_port
  188850. .IP \(bu 2
  188851. e4610baea5 update doc to have publish port
  188852. .UNINDENT
  188853. .IP \(bu 2
  188854. 6169b52749 Merge pull request \fI\%#41279\fP from Ch3LL/add_grain_tests
  188855. .INDENT 2.0
  188856. .IP \(bu 2
  188857. 1b64f15692 Merge branch \(aq2016.11\(aq into add_grain_tests
  188858. .UNINDENT
  188859. .IP \(bu 2
  188860. dc6de050a9 Merge pull request \fI\%#44563\fP from creideiki/pgjsonb\-timestamps\-44544
  188861. .INDENT 2.0
  188862. .IP \(bu 2
  188863. 231e412ca4 Merge branch \(aq2016.11\(aq into pgjsonb\-timestamps\-44544
  188864. .UNINDENT
  188865. .IP \(bu 2
  188866. 4369df020b Merge pull request \fI\%#44602\fP from rallytime/fix\-44601
  188867. .INDENT 2.0
  188868. .IP \(bu 2
  188869. ff303fd060 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  188870. .UNINDENT
  188871. .IP \(bu 2
  188872. 4a4756fc37 Merge pull request \fI\%#44604\fP from lorengordon/doc\-exclude
  188873. .INDENT 2.0
  188874. .IP \(bu 2
  188875. c4a6c40eb3 Documents the exclude argument in state execution module
  188876. .IP \(bu 2
  188877. 15c445e6b9 Send Unix timestamps to database in pgjsonb
  188878. .IP \(bu 2
  188879. 095f1b7d7a Merge branch \(aq2016.11\(aq into add_grain_tests
  188880. .UNINDENT
  188881. .IP \(bu 2
  188882. 91d46d4cfc Merge pull request \fI\%#44434\fP from whytewolf/1837
  188883. .INDENT 2.0
  188884. .IP \(bu 2
  188885. d148e39dda change from md to rst for code reference
  188886. .IP \(bu 2
  188887. 955e305bda fix bad english, as requested by cachedout
  188888. .IP \(bu 2
  188889. 7256fcc1c9 update note to take into account grains_cache
  188890. .IP \(bu 2
  188891. 7a2981585e Merge branch \(aq2016.11\(aq into 1837
  188892. .IP \(bu 2
  188893. aca0405b26 add a note that describes grain rebuilding on restart and refresh
  188894. .INDENT 2.0
  188895. .INDENT 3.5
  188896. .INDENT 0.0
  188897. .IP \(bu 2
  188898. 9ea4db4224 mock socket.getaddrinfo
  188899. .IP \(bu 2
  188900. 78a07e30f4 add more fqdn tests and remove some of the mocking
  188901. .IP \(bu 2
  188902. 5dbf4144ce add ipv6 in opts
  188903. .IP \(bu 2
  188904. eabc1b4f9c Add fqdn and dns core grain tests
  188905. .UNINDENT
  188906. .UNINDENT
  188907. .UNINDENT
  188908. .UNINDENT
  188909. .IP \(bu 2
  188910. a3bd99317f Merge pull request \fI\%#44321\fP from gvengel/fix\-file\-line\-diff\-output
  188911. .INDENT 2.0
  188912. .IP \(bu 2
  188913. 69a50204a6 Add newline for lint.
  188914. .IP \(bu 2
  188915. ef7b6bbb81 Fixed issue with file.line on Windows running Python 2.
  188916. .IP \(bu 2
  188917. 8f89c99fa5 Fix FileModuleTest setUp and tearDown to work on Windows.
  188918. .IP \(bu 2
  188919. 3ac5391f5f Namespace missing functions for file.line on Windows.
  188920. .IP \(bu 2
  188921. b2b8f075b9 Fixed test to work on Windows.
  188922. .IP \(bu 2
  188923. 5a5a2dd026 Added integration test for issue \fI\%#41474\fP
  188924. .IP \(bu 2
  188925. 24d7315f1a Fix file.line diff formatting.
  188926. .UNINDENT
  188927. .IP \(bu 2
  188928. 9ca563718d Merge pull request \fI\%#43708\fP from damon\-atkins/2016.11_43417_Backport_and_Fixes
  188929. .INDENT 2.0
  188930. .IP \(bu 2
  188931. 04d03ea6b8 Updated comment
  188932. .IP \(bu 2
  188933. 1dd565e585 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188934. .IP \(bu 2
  188935. dd48ba2616 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188936. .IP \(bu 2
  188937. a0d08598bf dco fix
  188938. .IP \(bu 2
  188939. 9467899fc6 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188940. .IP \(bu 2
  188941. 6dc180fd0e doco fixes
  188942. .IP \(bu 2
  188943. 2496a42ea4 lint fix
  188944. .IP \(bu 2
  188945. 2c937fbe19 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188946. .IP \(bu 2
  188947. c9c8c48a4d all remove/install commands are passed to cmd.exe /s /c and commands are passed as strings to cmdmod
  188948. .IP \(bu 2
  188949. 350244bd93 typo in comments and doc strings.
  188950. .IP \(bu 2
  188951. ec31f5a9bd 2017.11/develop version() was ignoring saltenv setting.
  188952. .IP \(bu 2
  188953. b314549a32 Backport of devlop to 2016.11 with additional bug fixes
  188954. .UNINDENT
  188955. .IP \(bu 2
  188956. 68ea22188e Merge pull request \fI\%#44477\fP from rallytime/bp\-44424
  188957. .INDENT 2.0
  188958. .IP \(bu 2
  188959. 4a9f8dcc96 Fix \fI\%#44423\fP: Handle index=None and index=0 distinctly
  188960. .UNINDENT
  188961. .IP \(bu 2
  188962. 2c89050a24 Merge pull request \fI\%#44483\fP from terminalmage/issue44034
  188963. .INDENT 2.0
  188964. .IP \(bu 2
  188965. a9db8becea salt\-call: account for instances where __pillar__ is empty
  188966. .UNINDENT
  188967. .IP \(bu 2
  188968. b5c2028680 Merge pull request \fI\%#44489\fP from whytewolf/1956_log\-granular\-levels
  188969. .INDENT 2.0
  188970. .IP \(bu 2
  188971. 9cdeb4e903 update log\-granular\-levels to describe what they are filtering on
  188972. .UNINDENT
  188973. .IP \(bu 2
  188974. ea07f9c54c Merge pull request \fI\%#44193\fP from twangboy/win_fix_reg
  188975. .INDENT 2.0
  188976. .IP \(bu 2
  188977. 44d6d9f46d Remove unused import (lint)
  188978. .IP \(bu 2
  188979. f7502436bd Fix various issues
  188980. .IP \(bu 2
  188981. 221e6e3b91 make salt.utils.to_unicode return none when passed none
  188982. .IP \(bu 2
  188983. ce41acc788 Fix many issues with reg.py
  188984. .IP \(bu 2
  188985. 4a19df1f7f Use six.text_type instead of str
  188986. .IP \(bu 2
  188987. 1b12acd303 Check type before casting
  188988. .IP \(bu 2
  188989. 03fa37b445 Cast vdata to its proper type
  188990. .UNINDENT
  188991. .IP \(bu 2
  188992. ed8da2450b Merge pull request \fI\%#43863\fP from nicholasmhughes/fix\-atomicfile\-permission\-copy
  188993. .INDENT 2.0
  188994. .IP \(bu 2
  188995. ea852ec5d3 remove index use with stat module attributes
  188996. .IP \(bu 2
  188997. dbeeb0e917 fixes \fI\%#38452\fP atomicfile only copies mode and not user/group perms
  188998. .UNINDENT
  188999. .UNINDENT
  189000. .UNINDENT
  189001. .IP \(bu 2
  189002. \fBPR\fP \fI\%#44788\fP: (\fI\%kris\-anderson\fP) Example yaml of influxdb_user state
  189003. @ \fI2017\-12\-04 14:28:45 UTC\fP
  189004. .INDENT 2.0
  189005. .IP \(bu 2
  189006. 4643a112e7 Merge pull request \fI\%#44788\fP from kris\-anderson/example\-yaml\-of\-influxdb\-user\-state
  189007. .IP \(bu 2
  189008. afd23d058c converted yaml example to use 2 spaces
  189009. .IP \(bu 2
  189010. 29e410c1ea added a code\-block example of how the yaml should be formatted
  189011. .UNINDENT
  189012. .IP \(bu 2
  189013. \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)
  189014. .IP \(bu 2
  189015. \fBPR\fP \fI\%#44735\fP: (\fI\%gracinet\fP) Backported issue \fI\%#42713\fP to 2017.7
  189016. @ \fI2017\-12\-04 01:43:23 UTC\fP
  189017. .INDENT 2.0
  189018. .IP \(bu 2
  189019. 4ebac09f60 Merge pull request \fI\%#44735\fP from gracinet/42713_backport_2017.7
  189020. .IP \(bu 2
  189021. 6806d83314 Merge branch \(aq2017.7\(aq into 42713_backport_2017.7
  189022. .IP \(bu 2
  189023. fb586c6dce Backported issue \fI\%#42713\fP to 2017.7
  189024. .UNINDENT
  189025. .IP \(bu 2
  189026. \fBPR\fP \fI\%#44766\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_process\fP for Windows
  189027. @ \fI2017\-12\-02 13:15:53 UTC\fP
  189028. .INDENT 2.0
  189029. .IP \(bu 2
  189030. 06ce7b7328 Merge pull request \fI\%#44766\fP from twangboy/win_fix_test_process
  189031. .IP \(bu 2
  189032. a5737e8fc3 Fix lint errors
  189033. .IP \(bu 2
  189034. be96de09cc Fix pickling error by decorating
  189035. .UNINDENT
  189036. .IP \(bu 2
  189037. \fBISSUE\fP \fI\%#44083\fP: (\fI\%ari\fP) timezone.system fails when /etc/localtime is missing on FreeBSD (refs: \fI\%#44605\fP)
  189038. .IP \(bu 2
  189039. \fBPR\fP \fI\%#44716\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44605\fP to 2017.7
  189040. @ \fI2017\-12\-01 23:12:24 UTC\fP
  189041. .INDENT 2.0
  189042. .IP \(bu 2
  189043. \fBPR\fP \fI\%#44605\fP: (\fI\%campbellmc\fP) Add handling for FreeBSD in timezone.zone_compare (refs: \fI\%#44716\fP)
  189044. .IP \(bu 2
  189045. f8b8a8966d Merge pull request \fI\%#44716\fP from rallytime/bp\-44605
  189046. .IP \(bu 2
  189047. 9d43221422 Correct indentation
  189048. .IP \(bu 2
  189049. 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.
  189050. .UNINDENT
  189051. .IP \(bu 2
  189052. \fBISSUE\fP \fI\%#41869\fP: (\fI\%mirceaulinic\fP) Thorium: unable to execute runners (refs: \fI\%#44781\fP)
  189053. .IP \(bu 2
  189054. \fBPR\fP \fI\%#44781\fP: (\fI\%mirceaulinic\fP) Correct the thorium runner
  189055. @ \fI2017\-12\-01 22:55:52 UTC\fP
  189056. .INDENT 2.0
  189057. .IP \(bu 2
  189058. 8ed6287762 Merge pull request \fI\%#44781\fP from cloudflare/thorium\-fix\-41869
  189059. .IP \(bu 2
  189060. 83c73a69cb Instance the Runner class instead of the RunnerClient as we\(aqre running on the Master
  189061. .IP \(bu 2
  189062. b72b7c5402 Correct the thorium runner
  189063. .UNINDENT
  189064. .IP \(bu 2
  189065. \fBPR\fP \fI\%#44466\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_disk\fP for Windows
  189066. @ \fI2017\-12\-01 22:31:42 UTC\fP
  189067. .INDENT 2.0
  189068. .IP \(bu 2
  189069. 52596be102 Merge pull request \fI\%#44466\fP from twangboy/win_fix_test_disk
  189070. .IP \(bu 2
  189071. 5615862f23 Fix some lint
  189072. .IP \(bu 2
  189073. 627d5ab0c9 Mock \fIsalt.utils.which\fP
  189074. .IP \(bu 2
  189075. e5a96fe00f Skip test_fstype on Windows
  189076. .UNINDENT
  189077. .IP \(bu 2
  189078. \fBISSUE\fP \fI\%#42763\fP: (\fI\%xuhcc\fP) acme.cert state falsely reports about renewed certificate (refs: \fI\%#44667\fP)
  189079. .IP \(bu 2
  189080. \fBPR\fP \fI\%#44719\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44667\fP to 2017.7
  189081. @ \fI2017\-12\-01 15:20:49 UTC\fP
  189082. .INDENT 2.0
  189083. .IP \(bu 2
  189084. \fBPR\fP \fI\%#44667\fP: (\fI\%oarmstrong\fP) Fix acme.cert to run certbot non\-interactively (refs: \fI\%#44719\fP)
  189085. .IP \(bu 2
  189086. b9ad4bba2d Merge pull request \fI\%#44719\fP from rallytime/bp\-44667
  189087. .IP \(bu 2
  189088. 3d85a260c4 Fix acme.cert to run certbot non\-interactively
  189089. .UNINDENT
  189090. .IP \(bu 2
  189091. \fBISSUE\fP \fI\%#44744\fP: (\fI\%brmzkw\fP) roster_defaults breaks salt\-ssh globbing (refs: \fI\%#44747\fP)
  189092. .IP \(bu 2
  189093. \fBPR\fP \fI\%#44747\fP: (\fI\%gtmanfred\fP) use a copy so roster_defaults doesn\(aqt mangle
  189094. @ \fI2017\-12\-01 15:13:48 UTC\fP
  189095. .INDENT 2.0
  189096. .IP \(bu 2
  189097. d23192c492 Merge pull request \fI\%#44747\fP from gtmanfred/roster_defaults
  189098. .IP \(bu 2
  189099. 911411ed8f add unit test
  189100. .IP \(bu 2
  189101. eefcfc719c use a copy so roster_defaults doesn\(aqt mangle
  189102. .UNINDENT
  189103. .IP \(bu 2
  189104. \fBISSUE\fP \fI\%#44694\fP: (\fI\%thuhak\fP) state module at.absent does\(aqt work (refs: \fI\%#44717\fP)
  189105. .IP \(bu 2
  189106. \fBPR\fP \fI\%#44717\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to at module
  189107. @ \fI2017\-12\-01 14:37:05 UTC\fP
  189108. .INDENT 2.0
  189109. .IP \(bu 2
  189110. 20f20ad9e1 Merge pull request \fI\%#44717\fP from garethgreenaway/44694_at_absent_failing_to_find_jobs
  189111. .IP \(bu 2
  189112. 1f2b3c5f46 Merge branch \(aq2017.7\(aq into 44694_at_absent_failing_to_find_jobs
  189113. .IP \(bu 2
  189114. 3bb385b44e removing debugging logging
  189115. .IP \(bu 2
  189116. 7f0ff5a8b0 When passing IDs on the command line convert them all the strings for later comparision.
  189117. .IP \(bu 2
  189118. 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.
  189119. .UNINDENT
  189120. .IP \(bu 2
  189121. \fBISSUE\fP \fI\%#44136\fP: (\fI\%dupsatou\fP) KeyError: \(aqrunas\(aq after updating to latest salt in yum repo. (refs: \fI\%#44695\fP)
  189122. .IP \(bu 2
  189123. \fBPR\fP \fI\%#44695\fP: (\fI\%gtmanfred\fP) pop None for runas and runas_password
  189124. @ \fI2017\-12\-01 14:35:01 UTC\fP
  189125. .INDENT 2.0
  189126. .IP \(bu 2
  189127. 6e61aa787f Merge pull request \fI\%#44695\fP from gtmanfred/pop
  189128. .IP \(bu 2
  189129. 0efb90b6f7 Merge branch \(aq2017.7\(aq into pop
  189130. .UNINDENT
  189131. .IP \(bu 2
  189132. \fBPR\fP \fI\%#44725\fP: (\fI\%whytewolf\fP) document note suggesting systemd\-run \-\-scope with cmd.run_bg
  189133. @ \fI2017\-11\-30 19:18:06 UTC\fP
  189134. .INDENT 2.0
  189135. .IP \(bu 2
  189136. 20391c54c0 Merge pull request \fI\%#44725\fP from whytewolf/1919_cmd.run_no_daemons
  189137. .IP \(bu 2
  189138. 4b11f8d66d add quick documentation suggesting systemd\-run \-\-scope if using cmd.run_bg with systemd
  189139. .UNINDENT
  189140. .IP \(bu 2
  189141. \fBISSUE\fP \fI\%#42300\fP: (\fI\%mirceaulinic\fP) Grains state doesn\(aqt work (fine) with proxy minions (refs: \fI\%#44760\fP)
  189142. .IP \(bu 2
  189143. \fBISSUE\fP \fI\%#42074\fP: (\fI\%mirceaulinic\fP) How to configure static grains for proxy minions (refs: \fI\%#44549\fP)
  189144. .IP \(bu 2
  189145. \fBPR\fP \fI\%#44760\fP: (\fI\%mirceaulinic\fP) Fix the grains.setvals execution function when working with proxy minions
  189146. @ \fI2017\-11\-30 18:27:02 UTC\fP
  189147. .INDENT 2.0
  189148. .IP \(bu 2
  189149. \fBPR\fP \fI\%#44549\fP: (\fI\%mirceaulinic\fP) Allow proxy minions to load static grains (refs: \fI\%#44760\fP)
  189150. .IP \(bu 2
  189151. 85451ae977 Merge pull request \fI\%#44760\fP from cloudflare/px\-grains\-set\-42300
  189152. .IP \(bu 2
  189153. 655139d01c Different path to the static grains file when running under a proxy minion
  189154. .IP \(bu 2
  189155. 3eec8dbc63 Dummy proxy: catch EOFError instead of IOError
  189156. .UNINDENT
  189157. .IP \(bu 2
  189158. \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)
  189159. .IP \(bu 2
  189160. \fBPR\fP \fI\%#44640\fP: (\fI\%vutny\fP) Fix \fI\%#44583\fP: splay with cron\-like scheduled jobs
  189161. @ \fI2017\-11\-30 15:30:41 UTC\fP
  189162. .INDENT 2.0
  189163. .IP \(bu 2
  189164. 06fb80b69c Merge pull request \fI\%#44640\fP from vutny/fix\-cron\-schedule\-splay
  189165. .IP \(bu 2
  189166. d1f247e49e Add basic unit tests for schedule util eval func
  189167. .IP \(bu 2
  189168. 6ff8e75ac6 Fix \fI\%#44583\fP: splay with cron\-like scheduled jobs
  189169. .UNINDENT
  189170. .IP \(bu 2
  189171. \fBPR\fP \fI\%#44712\fP: (\fI\%Ch3LL\fP) Add pillar ssh integration tests
  189172. @ \fI2017\-11\-30 15:29:33 UTC\fP
  189173. .INDENT 2.0
  189174. .IP \(bu 2
  189175. e5a1401b82 Merge pull request \fI\%#44712\fP from Ch3LL/ssh_pillar_items
  189176. .IP \(bu 2
  189177. 97ec0e6ea0 Merge branch \(aq2017.7\(aq into ssh_pillar_items
  189178. .IP \(bu 2
  189179. c7f5af1274 Add pillar ssh integration tests
  189180. .UNINDENT
  189181. .IP \(bu 2
  189182. \fBPR\fP \fI\%#44763\fP: (\fI\%mirceaulinic\fP) Just a small improvement to the Thorium documentation
  189183. @ \fI2017\-11\-30 14:38:03 UTC\fP
  189184. .INDENT 2.0
  189185. .IP \(bu 2
  189186. 2e1c946990 Merge pull request \fI\%#44763\fP from cloudflare/thorium\-doc
  189187. .IP \(bu 2
  189188. f8d69dd0ba Add thorium_roots configuration example
  189189. .IP \(bu 2
  189190. 4610fb4e62 thorium_roots not thorium_roots_dir
  189191. .UNINDENT
  189192. .IP \(bu 2
  189193. \fBPR\fP \fI\%#44531\fP: (\fI\%mirceaulinic\fP) Add deprecation notes for the NAPALM native templates
  189194. @ \fI2017\-11\-30 14:18:56 UTC\fP
  189195. .INDENT 2.0
  189196. .IP \(bu 2
  189197. 8ba2df1ea0 Merge pull request \fI\%#44531\fP from cloudflare/deprecate\-napalm\-tpl
  189198. .IP \(bu 2
  189199. b462776d8b Add deprecation notes for the NAPALM native templates
  189200. .UNINDENT
  189201. .IP \(bu 2
  189202. \fBPR\fP \fI\%#44737\fP: (\fI\%twangboy\fP) Skip \fIunit.transport.test_ipc\fP for Windows
  189203. @ \fI2017\-11\-29 19:18:21 UTC\fP
  189204. .INDENT 2.0
  189205. .IP \(bu 2
  189206. 7bde48282e Merge pull request \fI\%#44737\fP from twangboy/win_skip_test_ipc
  189207. .IP \(bu 2
  189208. 4e0359b603 Skip IPC transport tests in Windows, not supported
  189209. .UNINDENT
  189210. .IP \(bu 2
  189211. \fBPR\fP \fI\%#44629\fP: (\fI\%Ch3LL\fP) Add masterless state.highstate integration test
  189212. @ \fI2017\-11\-29 19:05:23 UTC\fP
  189213. .INDENT 2.0
  189214. .IP \(bu 2
  189215. c5206113ce Merge pull request \fI\%#44629\fP from Ch3LL/high_masterless
  189216. .IP \(bu 2
  189217. 9b7421b261 Change check to the state id
  189218. .IP \(bu 2
  189219. 9cc853e3d5 Add masterless state.highstate integration test
  189220. .UNINDENT
  189221. .IP \(bu 2
  189222. \fBPR\fP \fI\%#44613\fP: (\fI\%Ch3LL\fP) Add pillar.items test for masterless
  189223. @ \fI2017\-11\-29 14:43:11 UTC\fP
  189224. .INDENT 2.0
  189225. .IP \(bu 2
  189226. 2dc3e5c42a Merge pull request \fI\%#44613\fP from Ch3LL/pillar_masterless
  189227. .IP \(bu 2
  189228. 2c2e1e2332 Merge branch \(aq2017.7\(aq into pillar_masterless
  189229. .IP \(bu 2
  189230. 69134e83ca Change order of local kwarg in run_call method
  189231. .IP \(bu 2
  189232. b3b5ecc6ff Add pillar.items test for masterless
  189233. .UNINDENT
  189234. .IP \(bu 2
  189235. \fBPR\fP \fI\%#44659\fP: (\fI\%Ch3LL\fP) Add state.sls_id to ssh wrapper and tests
  189236. @ \fI2017\-11\-29 14:41:47 UTC\fP
  189237. .INDENT 2.0
  189238. .IP \(bu 2
  189239. cc05481026 Merge pull request \fI\%#44659\fP from Ch3LL/ssh_sls_id
  189240. .IP \(bu 2
  189241. 04b5a3dd4e Add state.sls_id to ssh wrapper and tests
  189242. .UNINDENT
  189243. .IP \(bu 2
  189244. \fBPR\fP \fI\%#44698\fP: (\fI\%Ch3LL\fP) Add salt\-ssh mine.get integration test
  189245. @ \fI2017\-11\-28 22:15:29 UTC\fP
  189246. .INDENT 2.0
  189247. .IP \(bu 2
  189248. 642eed11e1 Merge pull request \fI\%#44698\fP from Ch3LL/mine_ssh
  189249. .IP \(bu 2
  189250. f6a72acfe3 Merge branch \(aq2017.7\(aq into mine_ssh
  189251. .IP \(bu 2
  189252. 9e67babf85 Add teardown to remove ssh dir
  189253. .IP \(bu 2
  189254. f90b4f7653 Add salt\-ssh mine.get integration test
  189255. .UNINDENT
  189256. .IP \(bu 2
  189257. \fBPR\fP \fI\%#44697\fP: (\fI\%Ch3LL\fP) Sort the show_top results for test_state_show_top test
  189258. @ \fI2017\-11\-28 20:35:41 UTC\fP
  189259. .INDENT 2.0
  189260. .IP \(bu 2
  189261. 5d82df5667 Merge pull request \fI\%#44697\fP from Ch3LL/show_top_test
  189262. .IP \(bu 2
  189263. 974db59dc1 convert the assert to a union set instead
  189264. .IP \(bu 2
  189265. add43c4cfe Sort the show_top results for test_state_show_top test
  189266. .UNINDENT
  189267. .IP \(bu 2
  189268. \fBPR\fP \fI\%#44608\fP: (\fI\%Ch3LL\fP) Add jinja to ssh sls test file
  189269. @ \fI2017\-11\-27 22:00:28 UTC\fP
  189270. .INDENT 2.0
  189271. .IP \(bu 2
  189272. f2f6817e86 Merge pull request \fI\%#44608\fP from Ch3LL/ssh_jinja
  189273. .IP \(bu 2
  189274. df669b551d Merge branch \(aq2017.7\(aq into ssh_jinja
  189275. .IP \(bu 2
  189276. ca97517795 Add jinja to ssh sls test file
  189277. .UNINDENT
  189278. .IP \(bu 2
  189279. \fBISSUE\fP \fI\%#33957\fP: (\fI\%ghost\fP) grains.setval doesn\(aqt setval if set in /etc/salt/minion (refs: \fI\%#44663\fP)
  189280. .IP \(bu 2
  189281. \fBPR\fP \fI\%#44663\fP: (\fI\%whytewolf\fP) Update notes around grains topic, and salt.modules.grains and salt.state.grains
  189282. @ \fI2017\-11\-27 21:33:38 UTC\fP
  189283. .INDENT 2.0
  189284. .IP \(bu 2
  189285. 04b97bcfad Merge pull request \fI\%#44663\fP from whytewolf/ZD1777_ensure_understanding_of_minion_config_over_grains_file
  189286. .IP \(bu 2
  189287. c9122e4b85 fixed pylint error, and updated description on at the top the the module and state.
  189288. .IP \(bu 2
  189289. 7fb208b5ad Update note in topics/grains to reflect that not all grains are ignored. only those set in the minion config
  189290. .UNINDENT
  189291. .IP \(bu 2
  189292. \fBPR\fP \fI\%#44332\fP: (\fI\%mirceaulinic\fP) Improve the net.load_config execution function
  189293. @ \fI2017\-11\-27 21:22:18 UTC\fP
  189294. .INDENT 2.0
  189295. .IP \(bu 2
  189296. 364deee6ac Merge pull request \fI\%#44332\fP from cloudflare/improve\-net\-load
  189297. .IP \(bu 2
  189298. cd0bac87e6 Merge branch \(aq2017.7\(aq into improve\-net\-load
  189299. .IP \(bu 2
  189300. 6d861f9a74 Disable pylint warning
  189301. .IP \(bu 2
  189302. 3a0945ce3d Merge pull request #11 from tonybaloney/gh_44332_clone
  189303. .INDENT 2.0
  189304. .IP \(bu 2
  189305. 88ef9f18fc ignore lint error on import
  189306. .IP \(bu 2
  189307. 25427d845e convert key iterator to list as python 3 wont index an iterator
  189308. .UNINDENT
  189309. .IP \(bu 2
  189310. bce50154e5 Merge branch \(aq2017.7\(aq into improve\-net\-load
  189311. .IP \(bu 2
  189312. ba4a62769c Fix trailing spaces
  189313. .IP \(bu 2
  189314. 0a47a7acbf Merge pull request #10 from tonybaloney/gh_44332_clone
  189315. .INDENT 2.0
  189316. .IP \(bu 2
  189317. ba0280e727 linting updates
  189318. .IP \(bu 2
  189319. 78b90f3d0c add remaining tests
  189320. .IP \(bu 2
  189321. 386c4e5791 add tests for all the getters
  189322. .UNINDENT
  189323. .IP \(bu 2
  189324. f3d2d1aaaa Merge pull request #9 from tonybaloney/gh_44332_clone
  189325. .INDENT 2.0
  189326. .IP \(bu 2
  189327. c63222358b update tests with correct assertions and mock methods on device instance
  189328. .IP \(bu 2
  189329. b69c559c52 fix kwargs typo
  189330. .UNINDENT
  189331. .IP \(bu 2
  189332. edea76d3f3 Improve the net.load_config function
  189333. .UNINDENT
  189334. .IP \(bu 2
  189335. \fBPR\fP \fI\%#44664\fP: (\fI\%mvivaldi\fP) Patch 1
  189336. @ \fI2017\-11\-27 21:17:20 UTC\fP
  189337. .INDENT 2.0
  189338. .IP \(bu 2
  189339. b6a1ed06b8 Merge pull request \fI\%#44664\fP from mvivaldi/patch\-1
  189340. .IP \(bu 2
  189341. 4551999ec7 Update jinja.py
  189342. .IP \(bu 2
  189343. ae13d57307 Update file.py
  189344. .UNINDENT
  189345. .IP \(bu 2
  189346. \fBISSUE\fP \fI\%#42074\fP: (\fI\%mirceaulinic\fP) How to configure static grains for proxy minions (refs: \fI\%#44549\fP)
  189347. .IP \(bu 2
  189348. \fBPR\fP \fI\%#44549\fP: (\fI\%mirceaulinic\fP) Allow proxy minions to load static grains (refs: \fI\%#44760\fP)
  189349. @ \fI2017\-11\-27 20:57:09 UTC\fP
  189350. .INDENT 2.0
  189351. .IP \(bu 2
  189352. 9ea4ee1479 Merge pull request \fI\%#44549\fP from cloudflare/fix\-proxy\-grains
  189353. .IP \(bu 2
  189354. 7b03574ab6 Merge branch \(aq2017.7\(aq into fix\-proxy\-grains
  189355. .IP \(bu 2
  189356. 0320174ea4 Add doc note regarding static grains on proxy minions
  189357. .IP \(bu 2
  189358. 509d1af832 Allow proxy minions to load static grains
  189359. .UNINDENT
  189360. .IP \(bu 2
  189361. \fBPR\fP \fI\%#44572\fP: (\fI\%Ch3LL\fP) Add watch_in integration test
  189362. @ \fI2017\-11\-27 20:52:31 UTC\fP
  189363. .INDENT 2.0
  189364. .IP \(bu 2
  189365. 5ec7ea0bb5 Merge pull request \fI\%#44572\fP from Ch3LL/watchin_test
  189366. .IP \(bu 2
  189367. 0a54584ddb Merge branch \(aq2017.7\(aq into watchin_test
  189368. .IP \(bu 2
  189369. 898c28e6d9 Merge branch \(aq2017.7\(aq into watchin_test
  189370. .IP \(bu 2
  189371. 3df70f3fed remove iter for watch_in failure test
  189372. .IP \(bu 2
  189373. ac437ddf90 add order check and remove iter
  189374. .IP \(bu 2
  189375. 5f2b4f434e Add watch_in integration test
  189376. .INDENT 2.0
  189377. .INDENT 3.5
  189378. .INDENT 0.0
  189379. .IP \(bu 2
  189380. c6733ac1ee pop None
  189381. .UNINDENT
  189382. .UNINDENT
  189383. .UNINDENT
  189384. .UNINDENT
  189385. .IP \(bu 2
  189386. \fBPR\fP \fI\%#44616\fP: (\fI\%Ch3LL\fP) Add Non Base Environement salt:// source integration test
  189387. @ \fI2017\-11\-22 16:13:54 UTC\fP
  189388. .INDENT 2.0
  189389. .IP \(bu 2
  189390. d6ccf4bb30 Merge pull request \fI\%#44616\fP from Ch3LL/nonbase_test
  189391. .IP \(bu 2
  189392. 80b71652e3 Merge branch \(aq2017.7\(aq into nonbase_test
  189393. .IP \(bu 2
  189394. c9ba33432e Add Non Base Environement salt:// source integration test
  189395. .UNINDENT
  189396. .IP \(bu 2
  189397. \fBPR\fP \fI\%#44617\fP: (\fI\%Ch3LL\fP) Add ssh thin_dir integration test
  189398. @ \fI2017\-11\-22 16:12:51 UTC\fP
  189399. .INDENT 2.0
  189400. .IP \(bu 2
  189401. 3ace504c8c Merge pull request \fI\%#44617\fP from Ch3LL/thindir_ssh
  189402. .IP \(bu 2
  189403. 071a1bd65b Merge branch \(aq2017.7\(aq into thindir_ssh
  189404. .UNINDENT
  189405. .IP \(bu 2
  189406. \fBPR\fP \fI\%#44625\fP: (\fI\%Ch3LL\fP) Add salt\-key \-d integration test
  189407. @ \fI2017\-11\-22 03:15:23 UTC\fP
  189408. .INDENT 2.0
  189409. .IP \(bu 2
  189410. 2cd618f99b Merge pull request \fI\%#44625\fP from Ch3LL/delete_key_test
  189411. .IP \(bu 2
  189412. 443dc1e16b Merge branch \(aq2017.7\(aq into delete_key_test
  189413. .UNINDENT
  189414. .IP \(bu 2
  189415. \fBISSUE\fP \fI\%#44601\fP: (\fI\%rallytime\fP) CherryPy 12.0 removed support for "engine.timeout_monitor.on" config option (refs: \fI\%#44602\fP)
  189416. .IP \(bu 2
  189417. \fBPR\fP \fI\%#44614\fP: (\fI\%rallytime\fP) [2017.7] Move PR \fI\%#44602\fP forward to 2017.7
  189418. @ \fI2017\-11\-21 21:21:06 UTC\fP
  189419. .INDENT 2.0
  189420. .IP \(bu 2
  189421. \fBPR\fP \fI\%#44602\fP: (\fI\%rallytime\fP) Handle timeout_monitor attribute error for new versions of CherryPy (refs: \fI\%#44614\fP)
  189422. .IP \(bu 2
  189423. 4f30e845ee Merge pull request \fI\%#44614\fP from rallytime/44602\-2017.7
  189424. .IP \(bu 2
  189425. 628f015c1b Move TimoutError check lower down in exception list
  189426. .IP \(bu 2
  189427. d26d9ff5e4 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  189428. .IP \(bu 2
  189429. 359a59dd64 Add salt\-key \-d integration test
  189430. .IP \(bu 2
  189431. 74ededafa7 Add ssh thin_dir integration test
  189432. .INDENT 2.0
  189433. .INDENT 3.5
  189434. .INDENT 0.0
  189435. .IP \(bu 2
  189436. 4d0806e28c Merge branch \(aq2017.7\(aq into develop2
  189437. .IP \(bu 2
  189438. 4d0d023115 Fix broken \fIbeacons_before_connect\fP feature
  189439. .INDENT 2.0
  189440. .IP \(bu 2
  189441. 98536110d9 Merge branch \(aq2017.7\(aq into 2017.7
  189442. .UNINDENT
  189443. .UNINDENT
  189444. .UNINDENT
  189445. .UNINDENT
  189446. .UNINDENT
  189447. .IP \(bu 2
  189448. \fBPR\fP \fI\%#44571\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43822\fP to 2017.7
  189449. @ \fI2017\-11\-20 19:01:26 UTC\fP
  189450. .INDENT 2.0
  189451. .IP \(bu 2
  189452. \fBPR\fP \fI\%#43822\fP: (\fI\%chnrxn\fP) check_result: Correctly check the __extend__ state. (refs: \fI\%#44571\fP)
  189453. .IP \(bu 2
  189454. 136b9e3bc4 Merge pull request \fI\%#44571\fP from rallytime/bp\-43822
  189455. .IP \(bu 2
  189456. f81bb61f2d check_result: Correctly check the __extend__ state.
  189457. .UNINDENT
  189458. .IP \(bu 2
  189459. \fBPR\fP \fI\%#44588\fP: (\fI\%rallytime\fP) Add documentation about logging before modules are loaded
  189460. @ \fI2017\-11\-20 18:43:18 UTC\fP
  189461. .INDENT 2.0
  189462. .IP \(bu 2
  189463. \fBPR\fP \fI\%#44576\fP: (\fI\%rallytime\fP) Remove logging from top of napalm util file (refs: \fI\%#44588\fP)
  189464. .IP \(bu 2
  189465. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189466. .IP \(bu 2
  189467. bea7f65291 Merge pull request \fI\%#44588\fP from rallytime/logging\-in\-virtual\-funcs
  189468. .IP \(bu 2
  189469. 90d1cb221d Add documentation about logging before modules are loaded
  189470. .UNINDENT
  189471. .IP \(bu 2
  189472. \fBPR\fP \fI\%#44513\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44472\fP to 2017.7
  189473. @ \fI2017\-11\-20 16:09:02 UTC\fP
  189474. .INDENT 2.0
  189475. .IP \(bu 2
  189476. \fBPR\fP \fI\%#44472\fP: (\fI\%mephi42\fP) nova: fix endpoint URL determination in _v3_setup() (refs: \fI\%#44513\fP)
  189477. .IP \(bu 2
  189478. a8044b73c3 Merge pull request \fI\%#44513\fP from rallytime/bp\-44472
  189479. .IP \(bu 2
  189480. 6e00e415d3 nova: fix endpoint URL determination in _v3_setup()
  189481. .UNINDENT
  189482. .IP \(bu 2
  189483. \fBPR\fP \fI\%#44596\fP: (\fI\%roaldnefs\fP) Fixed Mattermost module documentation
  189484. @ \fI2017\-11\-19 23:30:53 UTC\fP
  189485. .INDENT 2.0
  189486. .IP \(bu 2
  189487. f55b9daa63 Merge pull request \fI\%#44596\fP from roaldnefs/fix\-mattermost\-doc
  189488. .IP \(bu 2
  189489. 549f4806ce Fixed documentation in Mattermost module
  189490. .UNINDENT
  189491. .IP \(bu 2
  189492. \fBPR\fP \fI\%#44528\fP: (\fI\%tkwilliams\fP) INFRA\-5978 \- fix for \fI\%https://github.com/saltstack/salt/issues/44290\fP
  189493. @ \fI2017\-11\-17 17:35:44 UTC\fP
  189494. .INDENT 2.0
  189495. .IP \(bu 2
  189496. f84a2b5ab1 Merge pull request \fI\%#44528\fP from bodhi\-space/infra5978
  189497. .IP \(bu 2
  189498. ba1d57f5eb Merge branch \(aq2017.7\(aq into infra5978
  189499. .IP \(bu 2
  189500. 021692b6c9 INFRA\-5978 \- pylint / whitespace fix
  189501. .IP \(bu 2
  189502. c2210aaf7c INFRA\-5978 \- fix for \fI\%https://github.com/saltstack/salt/issues/44290\fP
  189503. .UNINDENT
  189504. .IP \(bu 2
  189505. \fBPR\fP \fI\%#44537\fP: (\fI\%Ch3LL\fP) Add multiple salt\-ssh state integration tests
  189506. @ \fI2017\-11\-17 17:17:48 UTC\fP
  189507. .INDENT 2.0
  189508. .IP \(bu 2
  189509. 7f2dd0382c Merge pull request \fI\%#44537\fP from Ch3LL/ssh_highlow
  189510. .IP \(bu 2
  189511. b98df6de24 Add known_hosts_file to salt\-ssh opts_pkg in wfuncs
  189512. .IP \(bu 2
  189513. 913eedc699 Add multiple salt\-ssh state integration tests
  189514. .UNINDENT
  189515. .IP \(bu 2
  189516. \fBPR\fP \fI\%#44576\fP: (\fI\%rallytime\fP) Remove logging from top of napalm util file (refs: \fI\%#44588\fP)
  189517. @ \fI2017\-11\-17 14:55:13 UTC\fP
  189518. .INDENT 2.0
  189519. .IP \(bu 2
  189520. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189521. .IP \(bu 2
  189522. 1975fb41bc Merge pull request \fI\%#44576\fP from rallytime/remove\-napalm\-logging
  189523. .IP \(bu 2
  189524. eb91af999e Remove logging from top of napalm util file
  189525. .UNINDENT
  189526. .IP \(bu 2
  189527. \fBPR\fP \fI\%#44575\fP: (\fI\%Ch3LL\fP) Add service.running integration state test
  189528. @ \fI2017\-11\-16 22:27:57 UTC\fP
  189529. .INDENT 2.0
  189530. .IP \(bu 2
  189531. c2c3048f46 Merge pull request \fI\%#44575\fP from Ch3LL/ser_run_test
  189532. .IP \(bu 2
  189533. 7536150567 Add service.running integration state test
  189534. .UNINDENT
  189535. .IP \(bu 2
  189536. \fBPR\fP \fI\%#44518\fP: (\fI\%twangboy\fP) Pass root_dir to the win_verify_env function
  189537. @ \fI2017\-11\-16 20:57:49 UTC\fP
  189538. .INDENT 2.0
  189539. .IP \(bu 2
  189540. 24b1d7af31 Merge pull request \fI\%#44518\fP from twangboy/win_fix_verify_env
  189541. .IP \(bu 2
  189542. 47114fdb30 Pass root_dirs to the win_verify_env function
  189543. .INDENT 2.0
  189544. .INDENT 3.5
  189545. .INDENT 0.0
  189546. .IP \(bu 2
  189547. 3385f7faf3 fix pylint
  189548. .IP \(bu 2
  189549. a2af3cb857 Include client mixin globals in scheduler for runner modules
  189550. .UNINDENT
  189551. .UNINDENT
  189552. .UNINDENT
  189553. .UNINDENT
  189554. .IP \(bu 2
  189555. \fBPR\fP \fI\%#44551\fP: (\fI\%mirceaulinic\fP) Removes proxy minions false alarms and security risks
  189556. @ \fI2017\-11\-16 15:09:14 UTC\fP
  189557. .INDENT 2.0
  189558. .IP \(bu 2
  189559. 1643bb7fd4 Merge pull request \fI\%#44551\fP from cloudflare/annoying\-tmpnam
  189560. .IP \(bu 2
  189561. ce1882943d Use salt.utils.files.mkstemp() instead
  189562. .IP \(bu 2
  189563. 6689bd3b2d Dont use dangerous os.tmpnam
  189564. .IP \(bu 2
  189565. 2d6176b0bc Fx2 proxy minion: clean return, like all the other modules
  189566. .UNINDENT
  189567. .IP \(bu 2
  189568. \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)
  189569. .IP \(bu 2
  189570. \fBPR\fP \fI\%#44541\fP: (\fI\%terminalmage\fP) Fix test to reflect changes in YAML dumper
  189571. @ \fI2017\-11\-15 13:23:58 UTC\fP
  189572. .INDENT 2.0
  189573. .IP \(bu 2
  189574. \fBPR\fP \fI\%#42064\fP: (\fI\%The\-Loeki\fP) utils.jinja: use utils.yamldumper for safe yaml dumping (refs: \fI\%#44541\fP)
  189575. .IP \(bu 2
  189576. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode (refs: \fI\%#42064\fP)
  189577. .IP \(bu 2
  189578. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  189579. .IP \(bu 2
  189580. 60083ac27b Merge pull request \fI\%#44541\fP from terminalmage/fix\-yaml\-test
  189581. .IP \(bu 2
  189582. 5b8f54084b Merge branch \(aq2017.7\(aq into fix\-yaml\-test
  189583. .UNINDENT
  189584. .IP \(bu 2
  189585. \fBPR\fP \fI\%#44538\fP: (\fI\%gtmanfred\fP) Fix up some test kitchen stuff
  189586. @ \fI2017\-11\-14 20:36:56 UTC\fP
  189587. .INDENT 2.0
  189588. .IP \(bu 2
  189589. 5c123eb551 Merge pull request \fI\%#44538\fP from gtmanfred/kitchen
  189590. .IP \(bu 2
  189591. 3e04d2d44c use kitchen\-sync for copying files
  189592. .IP \(bu 2
  189593. 9bc70fd31b back up to 2017.7.1 for kitchen tests
  189594. .IP \(bu 2
  189595. 3b93ea058b ubuntu 14 and centos 6 should not have py3 tests
  189596. .IP \(bu 2
  189597. 958e1aeb8d Fix test to reflect changes in YAML dumper
  189598. .UNINDENT
  189599. .IP \(bu 2
  189600. \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)
  189601. .IP \(bu 2
  189602. \fBPR\fP \fI\%#42064\fP: (\fI\%The\-Loeki\fP) utils.jinja: use utils.yamldumper for safe yaml dumping (refs: \fI\%#44541\fP)
  189603. @ \fI2017\-11\-13 19:45:14 UTC\fP
  189604. .INDENT 2.0
  189605. .IP \(bu 2
  189606. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode (refs: \fI\%#42064\fP)
  189607. .IP \(bu 2
  189608. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  189609. .IP \(bu 2
  189610. 27a7b607b1 Merge pull request \fI\%#42064\fP from The\-Loeki/jinja_unicode
  189611. .IP \(bu 2
  189612. b1cf43c02d Merge branch \(aq2017.7\(aq into jinja_unicode
  189613. .IP \(bu 2
  189614. 8c2ac58523 Merge branch \(aq2017.7\(aq into jinja_unicode
  189615. .IP \(bu 2
  189616. 57dc6226a2 Merge branch \(aq2017.7\(aq into jinja_unicode
  189617. .IP \(bu 2
  189618. 0a8346b585 Merge branch \(aq2017.7\(aq into jinja_unicode
  189619. .IP \(bu 2
  189620. 393fe061b2 jinja utils: yaml import still necessary
  189621. .IP \(bu 2
  189622. 3c9130f9f0 utils.jinja: use utils.yamldumper for safe yaml dumping
  189623. .UNINDENT
  189624. .IP \(bu 2
  189625. \fBPR\fP \fI\%#43692\fP: (\fI\%mirceaulinic\fP) Addressing a bug in the network find runner
  189626. @ \fI2017\-11\-13 19:42:24 UTC\fP
  189627. .INDENT 2.0
  189628. .IP \(bu 2
  189629. b1f14c7518 Merge pull request \fI\%#43692\fP from cloudflare/fix\-net\-runner
  189630. .IP \(bu 2
  189631. 02ffb4f38e Merge branch \(aq2017.7\(aq into fix\-net\-runner
  189632. .IP \(bu 2
  189633. 4b2f791bd2 Check if addr is short IPv6
  189634. .IP \(bu 2
  189635. 765504c137 Add all the possible keys to the result
  189636. .UNINDENT
  189637. .IP \(bu 2
  189638. \fBISSUE\fP \fI\%#42393\fP: (\fI\%The\-Loeki\fP) pillarenv ignored with Salt Master pillar_cache: True (refs: \fI\%#43689\fP)
  189639. .IP \(bu 2
  189640. \fBISSUE\fP \fI\%#36153\fP: (\fI\%krcroft\fP) Pillarenv doesn\(aqt allow using separate pillar environments (refs: \fI\%#43689\fP)
  189641. .IP \(bu 2
  189642. \fBPR\fP \fI\%#43689\fP: (\fI\%The\-Loeki\fP) make cached pillars use pillarenv rather than saltenv
  189643. @ \fI2017\-11\-13 19:30:00 UTC\fP
  189644. .INDENT 2.0
  189645. .IP \(bu 2
  189646. 1e94a5bd5f Merge pull request \fI\%#43689\fP from The\-Loeki/cached_pilarenv
  189647. .IP \(bu 2
  189648. 395c0c424d Merge branch \(aq2017.7\(aq into cached_pilarenv
  189649. .IP \(bu 2
  189650. 60e001733b make cached pillars use pillarenv rather than saltenv
  189651. .UNINDENT
  189652. .IP \(bu 2
  189653. \fBPR\fP \fI\%#43837\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_archive\fP for Windows
  189654. @ \fI2017\-11\-13 19:12:19 UTC\fP
  189655. .INDENT 2.0
  189656. .IP \(bu 2
  189657. f9b273a894 Merge pull request \fI\%#43837\fP from twangboy/win_unit_test_archive
  189658. .IP \(bu 2
  189659. 5505a8819a Merge branch \(aq2017.7\(aq into win_unit_test_archive
  189660. .IP \(bu 2
  189661. b1dfe9c3c8 Format patching with statements for easier reading
  189662. .IP \(bu 2
  189663. ba2f2eb788 Add Erik\(aqs changes
  189664. .IP \(bu 2
  189665. 4ef1e3eb97 Fix \fIunit.states.test_archive\fP for Windows
  189666. .UNINDENT
  189667. .IP \(bu 2
  189668. \fBPR\fP \fI\%#44507\fP: (\fI\%Ch3LL\fP) Increase sleep timeout for pillar refresh test
  189669. @ \fI2017\-11\-13 18:29:06 UTC\fP
  189670. .INDENT 2.0
  189671. .IP \(bu 2
  189672. caa81728a0 Merge pull request \fI\%#44507\fP from Ch3LL/pillar_time
  189673. .IP \(bu 2
  189674. ffa4bddcad Increase sleep timeout for pillar refresh test
  189675. .UNINDENT
  189676. .IP \(bu 2
  189677. \fBPR\fP \fI\%#44302\fP: (\fI\%morganwillcock\fP) Fix traceback and incorrect message when resolving an unresolvable SID
  189678. @ \fI2017\-11\-13 18:19:01 UTC\fP
  189679. .INDENT 2.0
  189680. .IP \(bu 2
  189681. cffea5ac71 Merge pull request \fI\%#44302\fP from morganwillcock/badsid
  189682. .IP \(bu 2
  189683. f3af106e33 Merge branch \(aqbadsid\(aq of \fI\%https://github.com/morganwillcock/salt\fP into badsid
  189684. .INDENT 2.0
  189685. .IP \(bu 2
  189686. 95733fbb3b Merge branch \(aq2017.7\(aq into badsid
  189687. .IP \(bu 2
  189688. facc2cd16e Merge branch \(aq2017.7\(aq into badsid
  189689. .UNINDENT
  189690. .IP \(bu 2
  189691. c7cf5f6f70 Format pywintypes.error
  189692. .IP \(bu 2
  189693. 9572aabb67 Fix traceback and incorrect message when resolving an unresolvable SID
  189694. .UNINDENT
  189695. .IP \(bu 2
  189696. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189697. @ \fI2017\-11\-13 17:43:24 UTC\fP
  189698. .INDENT 2.0
  189699. .IP \(bu 2
  189700. 32fc952000 Merge pull request \fI\%#44439\fP from cloudflare/fix\-napalm
  189701. .IP \(bu 2
  189702. f45378af04 Lint: remove extra spaces
  189703. .IP \(bu 2
  189704. c6a38258a3 Add napalm>2.0.0 note and update URLs
  189705. .IP \(bu 2
  189706. 52f73835b8 Adapt napalm modules to the new library structure
  189707. .UNINDENT
  189708. .IP \(bu 2
  189709. \fBPR\fP \fI\%#44457\fP: (\fI\%twangboy\fP) Remove wmi monkeypatching
  189710. @ \fI2017\-11\-13 17:38:52 UTC\fP
  189711. .INDENT 2.0
  189712. .IP \(bu 2
  189713. ebbe5949ea Merge pull request \fI\%#44457\fP from twangboy/win_remove_wmi_monkeypatching
  189714. .IP \(bu 2
  189715. 6c872e95e6 Add back the setup_loader_modules function
  189716. .IP \(bu 2
  189717. 20273e3697 No need for setup_loader_modules since we\(aqre actually importing wmi
  189718. .IP \(bu 2
  189719. 8c107873cd Remove wmi monkeypatching
  189720. .UNINDENT
  189721. .IP \(bu 2
  189722. \fBPR\fP \fI\%#44490\fP: (\fI\%Ch3LL\fP) Enable test_deploy ssh test
  189723. @ \fI2017\-11\-13 17:12:48 UTC\fP
  189724. .INDENT 2.0
  189725. .IP \(bu 2
  189726. 1da1a97d7d Merge pull request \fI\%#44490\fP from Ch3LL/ssh_ping
  189727. .IP \(bu 2
  189728. e952cd6712 Enable test_deploy ssh test
  189729. .UNINDENT
  189730. .IP \(bu 2
  189731. \fBPR\fP \fI\%#44491\fP: (\fI\%Ch3LL\fP) Add salt\-ssh raw integration tests
  189732. @ \fI2017\-11\-13 15:47:12 UTC\fP
  189733. .INDENT 2.0
  189734. .IP \(bu 2
  189735. 18624d6798 Merge pull request \fI\%#44491\fP from Ch3LL/ssh_raw
  189736. .IP \(bu 2
  189737. 3dc8673417 change class name to raw
  189738. .IP \(bu 2
  189739. 308596ac8d Add salt\-ssh raw integration tests
  189740. .UNINDENT
  189741. .IP \(bu 2
  189742. \fBPR\fP \fI\%#44492\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_cloud\fP for Windows
  189743. @ \fI2017\-11\-13 15:44:31 UTC\fP
  189744. .INDENT 2.0
  189745. .IP \(bu 2
  189746. aa17bfa8e7 Merge pull request \fI\%#44492\fP from twangboy/win_skip_mode_check
  189747. .IP \(bu 2
  189748. 2f30ad93b1 Skips mode check in Windows
  189749. .UNINDENT
  189750. .IP \(bu 2
  189751. \fBPR\fP \fI\%#44484\fP: (\fI\%Ch3LL\fP) Add orchestration tests when target exists or not
  189752. @ \fI2017\-11\-10 19:24:22 UTC\fP
  189753. .INDENT 2.0
  189754. .IP \(bu 2
  189755. 5b95495e75 Merge pull request \fI\%#44484\fP from Ch3LL/orch_test
  189756. .IP \(bu 2
  189757. f3ec6df76e Add orchestration tests when target exists or not
  189758. .UNINDENT
  189759. .IP \(bu 2
  189760. \fBPR\fP \fI\%#44480\fP: (\fI\%Ch3LL\fP) Add integration pillar command line test
  189761. @ \fI2017\-11\-10 19:14:31 UTC\fP
  189762. .INDENT 2.0
  189763. .IP \(bu 2
  189764. 62c42ca6fb Merge pull request \fI\%#44480\fP from Ch3LL/override_pillar
  189765. .IP \(bu 2
  189766. 12fed1b4d8 Add integration pillar command line test
  189767. .UNINDENT
  189768. .IP \(bu 2
  189769. \fBPR\fP \fI\%#44317\fP: (\fI\%Ch3LL\fP) Add state tests and state request system to salt\-ssh
  189770. @ \fI2017\-11\-10 18:28:43 UTC\fP
  189771. .INDENT 2.0
  189772. .IP \(bu 2
  189773. cc08ad2edc Merge pull request \fI\%#44317\fP from Ch3LL/ssh_test
  189774. .IP \(bu 2
  189775. 46bce3bd5e add additional parser argument for ssh integration tests
  189776. .IP \(bu 2
  189777. e9231430b5 remove logic similar to cloud/proxy tests
  189778. .IP \(bu 2
  189779. c731eb8ea6 add ssh dir to test runner when \-\-ssh\-tests set
  189780. .IP \(bu 2
  189781. 8089a885c2 add wipe function to other run_ssh method
  189782. .IP \(bu 2
  189783. 200b12ae6a change versionadded salt version
  189784. .IP \(bu 2
  189785. e3ebb5e9b3 fix comment and variables
  189786. .IP \(bu 2
  189787. faef0886a7 Add state tests and state request system to salt\-ssh
  189788. .UNINDENT
  189789. .IP \(bu 2
  189790. \fBPR\fP \fI\%#44478\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189791. @ \fI2017\-11\-10 18:00:56 UTC\fP
  189792. .INDENT 2.0
  189793. .IP \(bu 2
  189794. 6669035a30 Merge pull request \fI\%#44478\fP from rallytime/merge\-2017.7
  189795. .IP \(bu 2
  189796. 9fcc2a70b5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189797. .INDENT 2.0
  189798. .IP \(bu 2
  189799. a66cd67d15 Merge pull request \fI\%#44260\fP from seanjnkns/issue\-39901
  189800. .INDENT 2.0
  189801. .IP \(bu 2
  189802. ed8cccf457 \fI\%#39901\fP: Fix pylint
  189803. .IP \(bu 2
  189804. 43c81dfdee \fI\%#39901\fP: Add unit tests
  189805. .IP \(bu 2
  189806. 613d500876 Merge branch \(aq2016.11\(aq into issue\-39901
  189807. .IP \(bu 2
  189808. b97e8046ca Utilize salt.utils.validate.net.* and _raise_error_iface
  189809. .IP \(bu 2
  189810. 6818f3631d Fixes \fI\%#39901\fP for RH/CentOS 7
  189811. .UNINDENT
  189812. .UNINDENT
  189813. .UNINDENT
  189814. .IP \(bu 2
  189815. \fBPR\fP \fI\%#44444\fP: (\fI\%twangboy\fP) LGPO: Issue with Maximum Password Age
  189816. @ \fI2017\-11\-10 17:26:53 UTC\fP
  189817. .INDENT 2.0
  189818. .IP \(bu 2
  189819. 60719d0683 Merge pull request \fI\%#44444\fP from twangboy/win_lgpo_non_zero
  189820. .IP \(bu 2
  189821. de6b394445 Remove unneeded functions
  189822. .IP \(bu 2
  189823. ee0914f7e9 Fix some lint, remove unnecessary function
  189824. .IP \(bu 2
  189825. d52a7c12db Fix typo in PasswordComplexity policy
  189826. .IP \(bu 2
  189827. 44f8f43812 Fix problem where 0 isn\(aqt 0
  189828. .UNINDENT
  189829. .IP \(bu 2
  189830. \fBPR\fP \fI\%#44467\fP: (\fI\%twangboy\fP) Fix \fIunit.test_doc\fP for Windows
  189831. @ \fI2017\-11\-10 15:21:58 UTC\fP
  189832. .INDENT 2.0
  189833. .IP \(bu 2
  189834. 4f3a79df07 Merge pull request \fI\%#44467\fP from twangboy/win_fix_test_doc
  189835. .IP \(bu 2
  189836. 0a9e862bf4 Use regex to split
  189837. .UNINDENT
  189838. .IP \(bu 2
  189839. \fBPR\fP \fI\%#44443\fP: (\fI\%Ch3LL\fP) Add salt\-ssh grains.items test
  189840. @ \fI2017\-11\-09 00:42:11 UTC\fP
  189841. .INDENT 2.0
  189842. .IP \(bu 2
  189843. ff4f13877f Merge pull request \fI\%#44443\fP from Ch3LL/ssh_grains
  189844. .IP \(bu 2
  189845. 5d1a9af4b5 Add salt\-ssh grains.items test
  189846. .UNINDENT
  189847. .IP \(bu 2
  189848. \fBPR\fP \fI\%#44429\fP: (\fI\%Ch3LL\fP) Fix orch doc from pillat.get to pillar.get
  189849. @ \fI2017\-11\-07 23:06:38 UTC\fP
  189850. .INDENT 2.0
  189851. .IP \(bu 2
  189852. dcdf2d4c90 Merge pull request \fI\%#44429\fP from Ch3LL/orch_doc
  189853. .IP \(bu 2
  189854. 38ca5520f0 Fix orch doc from pillat.get to pillar.get
  189855. .UNINDENT
  189856. .IP \(bu 2
  189857. \fBISSUE\fP \fI\%#42568\fP: (\fI\%clallen\fP) Orchestration runner doesn\(aqt populate __pillar__ based on pillarenv (refs: \fI\%#43817\fP)
  189858. .IP \(bu 2
  189859. \fBPR\fP \fI\%#43817\fP: (\fI\%The\-Loeki\fP) Orchestrate runner forces pillarenv and saltenv to None
  189860. @ \fI2017\-11\-07 06:00:16 UTC\fP
  189861. .INDENT 2.0
  189862. .IP \(bu 2
  189863. 62c4addef8 Merge pull request \fI\%#43817\fP from The\-Loeki/orch\-pillarenv
  189864. .IP \(bu 2
  189865. 3fd652623c orchestrate runner: retain default envs
  189866. .UNINDENT
  189867. .IP \(bu 2
  189868. \fBPR\fP \fI\%#44408\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189869. @ \fI2017\-11\-06 15:53:00 UTC\fP
  189870. .INDENT 2.0
  189871. .IP \(bu 2
  189872. 9e4708b7b9 Merge pull request \fI\%#44408\fP from rallytime/merge\-2017.7
  189873. .IP \(bu 2
  189874. edbbd5fc2b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189875. .IP \(bu 2
  189876. 5e289f42ba Merge pull request \fI\%#44383\fP from gtmanfred/2016kitchen
  189877. .INDENT 2.0
  189878. .IP \(bu 2
  189879. b65f4ea4ea switch salt\-jenkins over to saltstack
  189880. .UNINDENT
  189881. .IP \(bu 2
  189882. cab54e34b5 Merge pull request \fI\%#44173\fP from twangboy/win_system_docs
  189883. .INDENT 2.0
  189884. .IP \(bu 2
  189885. 8e111b413d Fix some of the wording and grammer errors
  189886. .IP \(bu 2
  189887. a12bc5ae41 Use google style docstrings
  189888. .UNINDENT
  189889. .IP \(bu 2
  189890. 7aaea1d179 Merge pull request \fI\%#44304\fP from jfindlay/cron_id
  189891. .INDENT 2.0
  189892. .IP \(bu 2
  189893. cc038c5bec states.cron identifier defaults to name
  189894. .UNINDENT
  189895. .IP \(bu 2
  189896. e4dbbde734 Merge pull request \fI\%#44322\fP from rossengeorgiev/saltssh\-docs\-update
  189897. .INDENT 2.0
  189898. .IP \(bu 2
  189899. b18f2e5a6d fix program name and description for \-\-static
  189900. .IP \(bu 2
  189901. 5b10918f02 updated CLI docs for salt\-ssh
  189902. .UNINDENT
  189903. .UNINDENT
  189904. .IP \(bu 2
  189905. \fBPR\fP \fI\%#44358\fP: (\fI\%The\-Loeki\fP) Kubernetes client certificate file usage fix
  189906. @ \fI2017\-11\-03 21:51:27 UTC\fP
  189907. .INDENT 2.0
  189908. .IP \(bu 2
  189909. b11da0d2da Merge pull request \fI\%#44358\fP from The\-Loeki/kube\-client\-cert\-file
  189910. .IP \(bu 2
  189911. 35a8b0bb38 Kubernetes client certificate file usage fix
  189912. .UNINDENT
  189913. .IP \(bu 2
  189914. \fBPR\fP \fI\%#44347\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189915. @ \fI2017\-11\-03 21:48:21 UTC\fP
  189916. .INDENT 2.0
  189917. .IP \(bu 2
  189918. 1974e52c06 Merge pull request \fI\%#44347\fP from rallytime/merge\-2017.7
  189919. .IP \(bu 2
  189920. 9bad04b94b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189921. .INDENT 2.0
  189922. .IP \(bu 2
  189923. 4e6f09e3eb Merge pull request \fI\%#44345\fP from gtmanfred/2016kitchen
  189924. .INDENT 2.0
  189925. .IP \(bu 2
  189926. 79b8b2d0bf remove binding
  189927. .UNINDENT
  189928. .IP \(bu 2
  189929. 209847c8c2 Merge pull request \fI\%#44342\fP from gtmanfred/2016kitchen
  189930. .INDENT 2.0
  189931. .IP \(bu 2
  189932. c50508f0b7 render template files platforms.yml and driver.yml
  189933. .UNINDENT
  189934. .IP \(bu 2
  189935. 1be65224cb Merge pull request \fI\%#44339\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2016\-11
  189936. .INDENT 2.0
  189937. .IP \(bu 2
  189938. 9c1c35a59f Remove leading dash (\-) from options in archive.tar documentation
  189939. .UNINDENT
  189940. .IP \(bu 2
  189941. bebc33daf5 Merge pull request \fI\%#44295\fP from HeinleinSupport/issue44272
  189942. .INDENT 2.0
  189943. .IP \(bu 2
  189944. f972715a45 fixes issue \fI\%#44272\fP
  189945. .UNINDENT
  189946. .IP \(bu 2
  189947. e7ca9f8407 Merge pull request \fI\%#44286\fP from gtmanfred/2016.11
  189948. .INDENT 2.0
  189949. .IP \(bu 2
  189950. 193e715e37 use our git repo for kitchen\-salt
  189951. .UNINDENT
  189952. .UNINDENT
  189953. .UNINDENT
  189954. .IP \(bu 2
  189955. \fBPR\fP \fI\%#44364\fP: (\fI\%Ch3LL\fP) Include disk size check for test_spm_build_big_file test
  189956. @ \fI2017\-11\-01 13:57:24 UTC\fP
  189957. .INDENT 2.0
  189958. .IP \(bu 2
  189959. aea9f4a115 Merge pull request \fI\%#44364\fP from Ch3LL/fix_size_test
  189960. .IP \(bu 2
  189961. 952c6bfea4 Include file size check for test_spm_build_big_file test
  189962. .UNINDENT
  189963. .IP \(bu 2
  189964. \fBISSUE\fP \fI\%#44239\fP: (\fI\%boltronics\fP) \-\-progress fails when hosts routed via syndic (refs: \fI\%#44273\fP)
  189965. .IP \(bu 2
  189966. \fBPR\fP \fI\%#44273\fP: (\fI\%DmitryKuzmenko\fP) Workaround progressbar failure if minion is behind syndic.
  189967. @ \fI2017\-10\-31 17:07:17 UTC\fP
  189968. .INDENT 2.0
  189969. .IP \(bu 2
  189970. 609de9367a Merge pull request \fI\%#44273\fP from DSRCorporation/bugs/44239_syndic_progress
  189971. .IP \(bu 2
  189972. e1a7605623 Workaround progressbar failure if minion is behind syndic.
  189973. .UNINDENT
  189974. .IP \(bu 2
  189975. \fBPR\fP \fI\%#44350\fP: (\fI\%gtmanfred\fP) update salt\-jenkins repo to 2017.7
  189976. @ \fI2017\-10\-30 21:31:30 UTC\fP
  189977. .INDENT 2.0
  189978. .IP \(bu 2
  189979. eef6dbfa58 Merge pull request \fI\%#44350\fP from gtmanfred/2017.7
  189980. .IP \(bu 2
  189981. cf71e3d9f2 update salt\-jenkins repo to 2017.7
  189982. .UNINDENT
  189983. .IP \(bu 2
  189984. \fBPR\fP \fI\%#44346\fP: (\fI\%gtmanfred\fP) remove binding from erb template rendering (2017.7)
  189985. @ \fI2017\-10\-30 20:57:19 UTC\fP
  189986. .INDENT 2.0
  189987. .IP \(bu 2
  189988. d586b3bf97 Merge pull request \fI\%#44346\fP from gtmanfred/2017.7
  189989. .IP \(bu 2
  189990. bf577c3d8b remove binding
  189991. .UNINDENT
  189992. .IP \(bu 2
  189993. \fBPR\fP \fI\%#44343\fP: (\fI\%gtmanfred\fP) render template files platforms.yml and driver.yml (2017.7)
  189994. @ \fI2017\-10\-30 20:04:22 UTC\fP
  189995. .INDENT 2.0
  189996. .IP \(bu 2
  189997. 547aac6658 Merge pull request \fI\%#44343\fP from gtmanfred/2017.7
  189998. .IP \(bu 2
  189999. ec24fbc0c2 render template files platforms.yml and driver.yml
  190000. .UNINDENT
  190001. .IP \(bu 2
  190002. \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)
  190003. .IP \(bu 2
  190004. \fBPR\fP \fI\%#44338\fP: (\fI\%corywright\fP) Remove leading dash from options in archive.tar docs (2017.7 and develop)
  190005. @ \fI2017\-10\-30 18:59:33 UTC\fP
  190006. .INDENT 2.0
  190007. .IP \(bu 2
  190008. 6e2a74c18b Merge pull request \fI\%#44338\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2017\-7\-and\-newer
  190009. .IP \(bu 2
  190010. 49b0abc284 Remove leading dash (\-) from options in archive.tar documentation
  190011. .UNINDENT
  190012. .IP \(bu 2
  190013. \fBPR\fP \fI\%#44265\fP: (\fI\%Ch3LL\fP) Add service.status integration test
  190014. @ \fI2017\-10\-30 15:00:12 UTC\fP
  190015. .INDENT 2.0
  190016. .IP \(bu 2
  190017. 71923bed97 Merge pull request \fI\%#44265\fP from Ch3LL/service_test
  190018. .IP \(bu 2
  190019. 716aabc0bf Merge branch \(aq2017.7\(aq into service_test
  190020. .IP \(bu 2
  190021. dd5c823210 remove skipIf import
  190022. .IP \(bu 2
  190023. ff92f31cbe remove skipif for docker
  190024. .IP \(bu 2
  190025. c13f37eee4 change service name depending on os
  190026. .IP \(bu 2
  190027. 980c43ebc9 change skip message check to docker
  190028. .IP \(bu 2
  190029. 3955537609 change skip if check to docker
  190030. .IP \(bu 2
  190031. aa8875a0e2 change service name to docker
  190032. .IP \(bu 2
  190033. 654071028b change service to crond
  190034. .IP \(bu 2
  190035. 7911b4b3eb Add service.status integration test
  190036. .UNINDENT
  190037. .IP \(bu 2
  190038. \fBPR\fP \fI\%#44294\fP: (\fI\%nasenbaer13\fP) Boto asg fixes, Backport of \fI\%#43858\fP
  190039. @ \fI2017\-10\-30 14:48:52 UTC\fP
  190040. .INDENT 2.0
  190041. .IP \(bu 2
  190042. \fBPR\fP \fI\%#43858\fP: (\fI\%nasenbaer13\fP) Boto_ASG fixes for scaling policy rate limiting and tag conversion (refs: \fI\%#44294\fP)
  190043. .IP \(bu 2
  190044. 8ae9769bfb Merge pull request \fI\%#44294\fP from eyj/boto_asg
  190045. .IP \(bu 2
  190046. f5ad6aeb70 Debug log added when throttled by API
  190047. .IP \(bu 2
  190048. c05d9aeced Encode tags as utf\-8, retry policy readout
  190049. .UNINDENT
  190050. .IP \(bu 2
  190051. \fBPR\fP \fI\%#44312\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44287\fP to 2017.7
  190052. @ \fI2017\-10\-30 14:25:56 UTC\fP
  190053. .INDENT 2.0
  190054. .IP \(bu 2
  190055. \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)
  190056. .IP \(bu 2
  190057. 68a9bebf90 Merge pull request \fI\%#44312\fP from rallytime/bp\-44287
  190058. .IP \(bu 2
  190059. 4d02e61f97 Merge branch \(aq2017.7\(aq into bp\-44287
  190060. .IP \(bu 2
  190061. ba0eaae95e Fix utils.files.guess_archive_type to recognize the "tbz" extension as well (also tidy up list of extensions)
  190062. .UNINDENT
  190063. .IP \(bu 2
  190064. \fBISSUE\fP \fI\%#44258\fP: (\fI\%oarmstrong\fP) docker_container.running recreates containers with multiple links (refs: \fI\%#44262\fP)
  190065. .IP \(bu 2
  190066. \fBPR\fP \fI\%#44311\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44262\fP to 2017.7
  190067. @ \fI2017\-10\-30 14:25:35 UTC\fP
  190068. .INDENT 2.0
  190069. .IP \(bu 2
  190070. \fBPR\fP \fI\%#44262\fP: (\fI\%oarmstrong\fP) docker_container.running sort list of links (refs: \fI\%#44311\fP)
  190071. .IP \(bu 2
  190072. b8854e27c0 Merge pull request \fI\%#44311\fP from rallytime/bp\-44262
  190073. .IP \(bu 2
  190074. 72d617cfbe Merge branch \(aq2017.7\(aq into bp\-44262
  190075. .IP \(bu 2
  190076. ae34a15503 docker_container.running sort list of links
  190077. .UNINDENT
  190078. .IP \(bu 2
  190079. \fBPR\fP \fI\%#44314\fP: (\fI\%gtmanfred\fP) update .kitchen.yml to run py3 tests too
  190080. @ \fI2017\-10\-30 14:23:15 UTC\fP
  190081. .INDENT 2.0
  190082. .IP \(bu 2
  190083. 48df79ef77 Merge pull request \fI\%#44314\fP from gtmanfred/2017.7
  190084. .IP \(bu 2
  190085. 54265769c4 Merge branch \(aq2017.7\(aq into 2017.7
  190086. .UNINDENT
  190087. .IP \(bu 2
  190088. \fBPR\fP \fI\%#44316\fP: (\fI\%rallytime\fP) Fix lint failure on 2017.7 branch
  190089. @ \fI2017\-10\-27 18:36:08 UTC\fP
  190090. .INDENT 2.0
  190091. .IP \(bu 2
  190092. dbc5e224e9 Merge pull request \fI\%#44316\fP from rallytime/fix\-lint
  190093. .IP \(bu 2
  190094. 6d2490f6a0 Fix lint failure on 2017.7 branch
  190095. .IP \(bu 2
  190096. 39262b625e update .kitchen.yml to run py3 tests too
  190097. .UNINDENT
  190098. .IP \(bu 2
  190099. \fBPR\fP \fI\%#44279\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190100. @ \fI2017\-10\-27 16:17:19 UTC\fP
  190101. .INDENT 2.0
  190102. .IP \(bu 2
  190103. b2b0c770a4 Merge pull request \fI\%#44279\fP from rallytime/merge\-2017.7
  190104. .IP \(bu 2
  190105. 8237f45a46 Add print_function to __future__ import list
  190106. .IP \(bu 2
  190107. 055b0701de Lint fix from sloppy merge conflict resolution
  190108. .IP \(bu 2
  190109. 1c3cb5c6a4 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190110. .INDENT 2.0
  190111. .IP \(bu 2
  190112. 8a1ea165af Merge pull request \fI\%#44259\fP from gtmanfred/2016.11
  190113. .INDENT 2.0
  190114. .IP \(bu 2
  190115. 56a3ad8f68 fix pylint comments
  190116. .IP \(bu 2
  190117. 4add666db1 add comment to Gemfile and move copyartifacts
  190118. .IP \(bu 2
  190119. b4c8f7eb57 fix pylint
  190120. .IP \(bu 2
  190121. 392fd4f837 try newest salttesting
  190122. .IP \(bu 2
  190123. 79251287d0 add logging
  190124. .IP \(bu 2
  190125. 38963d5a82 use transport if not set in state_file
  190126. .IP \(bu 2
  190127. 10e309a64f which vagrant should go to stderr
  190128. .IP \(bu 2
  190129. 9307564de0 fix output columns
  190130. .IP \(bu 2
  190131. 2da22f87e1 test opennebula
  190132. .IP \(bu 2
  190133. 9f38f16905 add opennebula to Gemfile
  190134. .IP \(bu 2
  190135. 7465f9b27a add script for copying back artifacts
  190136. .IP \(bu 2
  190137. 255118cfd7 run tests with kitchen
  190138. .UNINDENT
  190139. .IP \(bu 2
  190140. 9d6bc8509b Merge pull request \fI\%#44268\fP from twangboy/win_fix_lgpo_typo
  190141. .INDENT 2.0
  190142. .IP \(bu 2
  190143. a6a4c10a77 Fix typo
  190144. .UNINDENT
  190145. .IP \(bu 2
  190146. 0beb65a283 Merge pull request \fI\%#44269\fP from terminalmage/fix\-log\-message
  190147. .INDENT 2.0
  190148. .IP \(bu 2
  190149. bc9cd65496 Fix log message in salt.utils.gitfs
  190150. .UNINDENT
  190151. .IP \(bu 2
  190152. 304dd2529d Merge pull request \fI\%#44160\fP from gtmanfred/directory
  190153. .INDENT 2.0
  190154. .IP \(bu 2
  190155. a7d3d668f4 missed removing changes in the next test
  190156. .IP \(bu 2
  190157. ac0b5ec440 fix test
  190158. .IP \(bu 2
  190159. d3d00c3e62 add changes to test return
  190160. .UNINDENT
  190161. .IP \(bu 2
  190162. e10395483d Merge pull request \fI\%#44205\fP from rallytime/bp\-44177
  190163. .INDENT 2.0
  190164. .IP \(bu 2
  190165. b9940f8521 Fixing default redis.host in documentation
  190166. .UNINDENT
  190167. .UNINDENT
  190168. .UNINDENT
  190169. .IP \(bu 2
  190170. \fBPR\fP \fI\%#44291\fP: (\fI\%Ch3LL\fP) add saltutil.refresh_pillar test
  190171. @ \fI2017\-10\-27 15:19:43 UTC\fP
  190172. .INDENT 2.0
  190173. .IP \(bu 2
  190174. bd5b9dd0aa Merge pull request \fI\%#44291\fP from Ch3LL/pillar_test
  190175. .IP \(bu 2
  190176. 34e2955445 add saltutil.refresh_pillar test
  190177. .UNINDENT
  190178. .IP \(bu 2
  190179. \fBPR\fP \fI\%#44267\fP: (\fI\%twangboy\fP) Fix type and Py3 issues in LGPO module
  190180. @ \fI2017\-10\-27 14:27:50 UTC\fP
  190181. .INDENT 2.0
  190182. .IP \(bu 2
  190183. ba17a1c4d0 Merge pull request \fI\%#44267\fP from twangboy/win_fix_lgpo
  190184. .IP \(bu 2
  190185. 5d22d34cac Use unicode_literals
  190186. .IP \(bu 2
  190187. 40636397d8 Fix set for Py3
  190188. .IP \(bu 2
  190189. 8f8c706426 Fix typo
  190190. .UNINDENT
  190191. .IP \(bu 2
  190192. \fBPR\fP \fI\%#44285\fP: (\fI\%Ch3LL\fP) add spm integration tests for remove and build
  190193. @ \fI2017\-10\-26 21:20:10 UTC\fP
  190194. .INDENT 2.0
  190195. .IP \(bu 2
  190196. e16707c403 Merge pull request \fI\%#44285\fP from Ch3LL/all_spm
  190197. .IP \(bu 2
  190198. 1f77f3e6a3 add skipif logic for fallocate cmd
  190199. .IP \(bu 2
  190200. 03b5c4bc6d add spm integration tests for remove and build
  190201. .UNINDENT
  190202. .IP \(bu 2
  190203. \fBPR\fP \fI\%#44301\fP: (\fI\%twangboy\fP) Fix test_pydsl on Windows
  190204. @ \fI2017\-10\-26 21:14:21 UTC\fP
  190205. .INDENT 2.0
  190206. .IP \(bu 2
  190207. 6392896a22 Merge pull request \fI\%#44301\fP from twangboy/win_fix_test_pydsl
  190208. .IP \(bu 2
  190209. 6db23757bc Fix test_pydsl on Windows
  190210. .UNINDENT
  190211. .IP \(bu 2
  190212. \fBPR\fP \fI\%#44293\fP: (\fI\%UtahDave\fP) Fix documentation grammar and spelling errors
  190213. @ \fI2017\-10\-26 13:05:31 UTC\fP
  190214. .INDENT 2.0
  190215. .IP \(bu 2
  190216. 8787d02688 Merge pull request \fI\%#44293\fP from UtahDave/fix_unittest_docs
  190217. .IP \(bu 2
  190218. c919648ab4 Fix documentation grammar and spelling errors
  190219. .UNINDENT
  190220. .IP \(bu 2
  190221. \fBPR\fP \fI\%#44248\fP: (\fI\%Ch3LL\fP) SPM tests: use _spm_build_files method during test_build setup
  190222. @ \fI2017\-10\-25 19:45:03 UTC\fP
  190223. .INDENT 2.0
  190224. .IP \(bu 2
  190225. 6e33743c1a Merge pull request \fI\%#44248\fP from Ch3LL/spm_create_repo
  190226. .IP \(bu 2
  190227. 0a387c2ecd fix pylint
  190228. .IP \(bu 2
  190229. f383f05a93 Add SPM create_repo integration test
  190230. .UNINDENT
  190231. .IP \(bu 2
  190232. \fBPR\fP \fI\%#44253\fP: (\fI\%Ch3LL\fP) Add multiple spm integration tests
  190233. @ \fI2017\-10\-25 13:36:03 UTC\fP
  190234. .INDENT 2.0
  190235. .IP \(bu 2
  190236. bd75be24ca Merge pull request \fI\%#44253\fP from Ch3LL/spm_install
  190237. .IP \(bu 2
  190238. 9e2e785034 add spm tests to test runner
  190239. .IP \(bu 2
  190240. 4729ccd32b Add multiple spm integration tests
  190241. .UNINDENT
  190242. .IP \(bu 2
  190243. \fBPR\fP \fI\%#44254\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_groupadd\fP for Windows
  190244. @ \fI2017\-10\-25 13:33:40 UTC\fP
  190245. .INDENT 2.0
  190246. .IP \(bu 2
  190247. 75ee1ebc50 Merge pull request \fI\%#44254\fP from twangboy/win_fix_test_win_groupadd
  190248. .IP \(bu 2
  190249. 609361bf48 Fix some lint errors
  190250. .IP \(bu 2
  190251. 1f44d8d5e6 Document helper functions
  190252. .IP \(bu 2
  190253. b0caec320e Move _get_all_groups up to the top
  190254. .IP \(bu 2
  190255. 7a3ff9387d Mock the rest of the tests
  190256. .IP \(bu 2
  190257. 5ce14df82c Change how members are retrieved in win_groupadd
  190258. .IP \(bu 2
  190259. 6ab82394be Set up mocking
  190260. .UNINDENT
  190261. .IP \(bu 2
  190262. \fBPR\fP \fI\%#44266\fP: (\fI\%Ch3LL\fP) Add state, grains and service proxy tests
  190263. @ \fI2017\-10\-25 13:08:50 UTC\fP
  190264. .INDENT 2.0
  190265. .IP \(bu 2
  190266. 4c23fa63bb Merge pull request \fI\%#44266\fP from Ch3LL/proxy_tests
  190267. .IP \(bu 2
  190268. e5701b472d Add state, grains and service proxy tests
  190269. .UNINDENT
  190270. .IP \(bu 2
  190271. \fBISSUE\fP \fI\%#43187\fP: (\fI\%mirceaulinic\fP) How to point from an execution module that a certain function failed (refs: \fI\%#44244\fP)
  190272. .IP \(bu 2
  190273. \fBPR\fP \fI\%#44244\fP: (\fI\%mirceaulinic\fP) Add explicit non\-zero retcode to napalm config functions
  190274. @ \fI2017\-10\-24 09:23:40 UTC\fP
  190275. .INDENT 2.0
  190276. .IP \(bu 2
  190277. c849f350ba Merge pull request \fI\%#44244\fP from cloudflare/add\-retcode
  190278. .IP \(bu 2
  190279. a1f27c9f00 Add explicit non\-zero retcode to napalm config functions
  190280. .UNINDENT
  190281. .IP \(bu 2
  190282. \fBISSUE\fP \fI\%#44227\fP: (\fI\%rklaren\fP) salt\-cloud leaves a broken vm around when the salt bootstrap fails (refs: \fI\%#44228\fP)
  190283. .IP \(bu 2
  190284. \fBPR\fP \fI\%#44228\fP: (\fI\%rklaren\fP) Fixes \fI\%#44227\fP, make salt\-cloud/libvirt cleanup after errors more robust
  190285. @ \fI2017\-10\-23 17:09:35 UTC\fP
  190286. .INDENT 2.0
  190287. .IP \(bu 2
  190288. 195b225540 Merge pull request \fI\%#44228\fP from rklaren/fix\-salt\-cloud\-libvirt\-cleanup\-after\-errors
  190289. .IP \(bu 2
  190290. 7917d1e61e Incorporate review comments.
  190291. .IP \(bu 2
  190292. 3a10b6aef1 Fixes \fI\%#44227\fP, make salt\-cloud/libvirt cleanup after errors more robust
  190293. .UNINDENT
  190294. .IP \(bu 2
  190295. \fBISSUE\fP \fI\%#19532\fP: (\fI\%stolendog\fP) salt\-ssh running git clone with not root user (refs: \fI\%#43769\fP)
  190296. .IP \(bu 2
  190297. \fBISSUE\fP \fI\%#10582\fP: (\fI\%mtorromeo\fP) Git ssh helper may be unable run (refs: \fI\%#43769\fP)
  190298. .IP \(bu 2
  190299. \fBPR\fP \fI\%#44008\fP: (\fI\%mtorromeo\fP) Backport \fI\%#43769\fP to 2017.7
  190300. @ \fI2017\-10\-23 14:19:57 UTC\fP
  190301. .INDENT 2.0
  190302. .IP \(bu 2
  190303. \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)
  190304. .IP \(bu 2
  190305. 01e7bab990 Merge pull request \fI\%#44008\fP from mtorromeo/git\-noexec\-fix
  190306. .IP \(bu 2
  190307. a7a841d9d2 Merge branch \(aq2017.7\(aq into git\-noexec\-fix
  190308. .IP \(bu 2
  190309. d177240cfc Merge branch \(aq2017.7\(aq into git\-noexec\-fix
  190310. .IP \(bu 2
  190311. a63e6ca963 Copy git ssh\-id\-wrapper to /tmp only if necessary (Fixes \fI\%#10582\fP, Fixes \fI\%#19532\fP)
  190312. .UNINDENT
  190313. .IP \(bu 2
  190314. \fBPR\fP \fI\%#44202\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190315. @ \fI2017\-10\-23 14:18:30 UTC\fP
  190316. .INDENT 2.0
  190317. .IP \(bu 2
  190318. 85c0ef493f Merge pull request \fI\%#44202\fP from rallytime/merge\-2017.7
  190319. .IP \(bu 2
  190320. 99ff7a5c12 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190321. .INDENT 2.0
  190322. .IP \(bu 2
  190323. 09ddfd0c08 Merge pull request \fI\%#44167\fP from garethgreenaway/44140_debian_ip_fixes
  190324. .INDENT 2.0
  190325. .IP \(bu 2
  190326. 5f7555846f When looping through the various pre, post, up and down commands put them into the interface dict using the right internet family variable.
  190327. .UNINDENT
  190328. .IP \(bu 2
  190329. 9f9e936b52 Merge pull request \fI\%#43830\fP from rallytime/bp\-43644
  190330. .INDENT 2.0
  190331. .IP \(bu 2
  190332. 12845ae802 Several fixes for RDS DB parameter group management
  190333. .UNINDENT
  190334. .IP \(bu 2
  190335. 07db6a3d8b Merge pull request \fI\%#43994\fP from oeuftete/fix\-manage\-runner\-presence
  190336. .INDENT 2.0
  190337. .IP \(bu 2
  190338. f3980d7d83 Fix manage.present to show lost minions
  190339. .UNINDENT
  190340. .IP \(bu 2
  190341. a07537e258 Merge pull request \fI\%#44188\fP from terminalmage/issue44150
  190342. .INDENT 2.0
  190343. .IP \(bu 2
  190344. 0692f442db yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  190345. .UNINDENT
  190346. .IP \(bu 2
  190347. 715edc0cea Merge pull request \fI\%#44158\fP from rallytime/bp\-44089
  190348. .INDENT 2.0
  190349. .IP \(bu 2
  190350. 534faf0b7a Catch on empty Virtualbox network addr \fI\%#43427\fP
  190351. .UNINDENT
  190352. .UNINDENT
  190353. .UNINDENT
  190354. .IP \(bu 2
  190355. \fBPR\fP \fI\%#44208\fP: (\fI\%twangboy\fP) Fix some lint in PR: 44080
  190356. @ \fI2017\-10\-20 16:42:02 UTC\fP
  190357. .INDENT 2.0
  190358. .IP \(bu 2
  190359. d7dc2bd0e8 Merge pull request \fI\%#44208\fP from twangboy/win_fix_group.present
  190360. .IP \(bu 2
  190361. 61e2e9ccda Fix some lint
  190362. .UNINDENT
  190363. .IP \(bu 2
  190364. \fBPR\fP \fI\%#43843\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_mount\fP for Windows
  190365. @ \fI2017\-10\-20 14:27:25 UTC\fP
  190366. .INDENT 2.0
  190367. .IP \(bu 2
  190368. c6d27ada51 Merge pull request \fI\%#43843\fP from twangboy/win_unit_test_mount
  190369. .IP \(bu 2
  190370. a862e0bf2d Remove unneeded import
  190371. .IP \(bu 2
  190372. d78f27466d Fix \fIunit.states.test_mount\fP for Windows
  190373. .UNINDENT
  190374. .IP \(bu 2
  190375. \fBPR\fP \fI\%#44111\fP: (\fI\%anlutro\fP) Try to correctly parse debian codename from /etc/os\-release
  190376. @ \fI2017\-10\-19 22:23:26 UTC\fP
  190377. .INDENT 2.0
  190378. .IP \(bu 2
  190379. 372820ea38 Merge pull request \fI\%#44111\fP from alprs/fix\-deb8\-py3\-oscodename
  190380. .IP \(bu 2
  190381. 1e1e5a3ff6 try to correctly parse debian codename from /etc/os\-release
  190382. .UNINDENT
  190383. .IP \(bu 2
  190384. \fBPR\fP \fI\%#44187\fP: (\fI\%twangboy\fP) Fix pickling errors on Windows
  190385. @ \fI2017\-10\-19 20:36:51 UTC\fP
  190386. .INDENT 2.0
  190387. .IP \(bu 2
  190388. 75136152c1 Merge pull request \fI\%#44187\fP from twangboy/win_fix_unit_test_daemons.py
  190389. .IP \(bu 2
  190390. 64d2e4f732 Fix pickling errors on Windows
  190391. .UNINDENT
  190392. .IP \(bu 2
  190393. \fBISSUE\fP \fI\%#44181\fP: (\fI\%jonans\fP) Scheduler with multiple when values doesn\(aqt run (refs: \fI\%#44186\fP)
  190394. .IP \(bu 2
  190395. \fBPR\fP \fI\%#44186\fP: (\fI\%garethgreenaway\fP) [2017.7] scheduler fixes
  190396. @ \fI2017\-10\-19 20:36:04 UTC\fP
  190397. .INDENT 2.0
  190398. .IP \(bu 2
  190399. 7a89cd8697 Merge pull request \fI\%#44186\fP from garethgreenaway/44181_scheduler_multiple_whens
  190400. .IP \(bu 2
  190401. 7eef3b3571 Adding a copy.deepcopy to the for loop that looks for old jobs to avoid stale jobs ending up in the list.
  190402. .UNINDENT
  190403. .IP \(bu 2
  190404. \fBPR\fP \fI\%#43896\fP: (\fI\%twangboy\fP) Fix win_lgpo execution module
  190405. @ \fI2017\-10\-19 20:13:18 UTC\fP
  190406. .INDENT 2.0
  190407. .IP \(bu 2
  190408. 1d16ae8ba7 Merge pull request \fI\%#43896\fP from twangboy/win_fix_lgpo_scom
  190409. .IP \(bu 2
  190410. 648d1b8d99 Catch CommandExecutionError
  190411. .IP \(bu 2
  190412. 0040082d0a Fix pylint error
  190413. .IP \(bu 2
  190414. 91258cd6a8 Fix typo
  190415. .IP \(bu 2
  190416. 261dba347d Put the file.remove in a try/except/else block
  190417. .IP \(bu 2
  190418. 020c2a2b85 Fix syntax error
  190419. .IP \(bu 2
  190420. d5bec99126 Fix some lint
  190421. .IP \(bu 2
  190422. b96186d60d Fix INSTALL_LANGUAGE
  190423. .IP \(bu 2
  190424. 5471bd521f Fix problem with file handle
  190425. .IP \(bu 2
  190426. 5ec58c6200 Use System Install Language as default fallback
  190427. .IP \(bu 2
  190428. f9ad446019 Fix win_lgpo execution module
  190429. .UNINDENT
  190430. .IP \(bu 2
  190431. \fBPR\fP \fI\%#44080\fP: (\fI\%twangboy\fP) Fix a regression in \fIgroup.present\fP in Windows
  190432. @ \fI2017\-10\-19 20:10:44 UTC\fP
  190433. .INDENT 2.0
  190434. .IP \(bu 2
  190435. 98356b86af Merge pull request \fI\%#44080\fP from twangboy/win_fix_group.present
  190436. .IP \(bu 2
  190437. 29bc80ff87 Improve get_sam_name
  190438. .IP \(bu 2
  190439. ef759a3875 Fix example in function docs for get_sam_name
  190440. .IP \(bu 2
  190441. 43740c5fed Document 15 character limit
  190442. .IP \(bu 2
  190443. 83f36cc2ef Account for 15 character limit in hostname
  190444. .IP \(bu 2
  190445. aa278966de Remove *args, pass gid as a keyword
  190446. .IP \(bu 2
  190447. 5230ecd7e1 Accept *args
  190448. .UNINDENT
  190449. .IP \(bu 2
  190450. \fBPR\fP \fI\%#44171\fP: (\fI\%Ch3LL\fP) Add SPM Build Integration Tests
  190451. @ \fI2017\-10\-19 19:49:14 UTC\fP
  190452. .INDENT 2.0
  190453. .IP \(bu 2
  190454. 5ef124bf2d Merge pull request \fI\%#44171\fP from Ch3LL/spm_int
  190455. .IP \(bu 2
  190456. cd79e9444e remove unneded kwarg
  190457. .IP \(bu 2
  190458. 1541376c4f Add spm build test
  190459. .UNINDENT
  190460. .IP \(bu 2
  190461. \fBPR\fP \fI\%#44157\fP: (\fI\%benediktwerner\fP) Added \(aqversionadded\(aq tags to sensehat modules
  190462. @ \fI2017\-10\-19 14:13:31 UTC\fP
  190463. .INDENT 2.0
  190464. .IP \(bu 2
  190465. 34a843252d Merge pull request \fI\%#44157\fP from benediktwerner/2017.7
  190466. .IP \(bu 2
  190467. bd825b51cc Changed sensehat versionadded from 2017.7 to 2017.7.0
  190468. .IP \(bu 2
  190469. f1d3c5bbcf Added \(aqversionadded\(aq tags to sensehat modules
  190470. .UNINDENT
  190471. .IP \(bu 2
  190472. \fBPR\fP \fI\%#44164\fP: (\fI\%terminalmage\fP) Fix examples in docker_container.{stopped,absent} docstrings
  190473. @ \fI2017\-10\-19 14:12:37 UTC\fP
  190474. .INDENT 2.0
  190475. .IP \(bu 2
  190476. 1427c72e1e Merge pull request \fI\%#44164\fP from terminalmage/fix\-docker\-docstring
  190477. .IP \(bu 2
  190478. 7b46489e33 Fix examples in docker_container.{stopped,absent} docstrings
  190479. .UNINDENT
  190480. .IP \(bu 2
  190481. \fBPR\fP \fI\%#44168\fP: (\fI\%twangboy\fP) Fix \fIunit.test_auth\fP for Windows
  190482. @ \fI2017\-10\-19 14:12:22 UTC\fP
  190483. .INDENT 2.0
  190484. .IP \(bu 2
  190485. 77969c4161 Merge pull request \fI\%#44168\fP from twangboy/win_skip_pam_eath
  190486. .IP \(bu 2
  190487. bb1d2eb85b Skip tests that are failing on PAM eauth
  190488. .UNINDENT
  190489. .IP \(bu 2
  190490. \fBPR\fP \fI\%#44151\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190491. @ \fI2017\-10\-18 16:52:30 UTC\fP
  190492. .INDENT 2.0
  190493. .IP \(bu 2
  190494. 88a776d9d2 Merge pull request \fI\%#44151\fP from rallytime/merge\-2017.7
  190495. .IP \(bu 2
  190496. 6aa8f03a4a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190497. .INDENT 2.0
  190498. .IP \(bu 2
  190499. 0cd493b691 Merge pull request \fI\%#44131\fP from rallytime/bp\-44029
  190500. .INDENT 2.0
  190501. .IP \(bu 2
  190502. bebf301976 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  190503. .IP \(bu 2
  190504. b4ba7ae2fc addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  190505. .UNINDENT
  190506. .IP \(bu 2
  190507. 3a68e356f8 Merge pull request \fI\%#44093\fP from gtmanfred/fix\-44087
  190508. .INDENT 2.0
  190509. .IP \(bu 2
  190510. 5455c5053b fix pylint
  190511. .IP \(bu 2
  190512. f749cafa25 don\(aqt filter if return is not a dict
  190513. .UNINDENT
  190514. .IP \(bu 2
  190515. c785d7a847 Merge pull request \fI\%#44122\fP from cachedout/gpg_pr_template
  190516. .INDENT 2.0
  190517. .IP \(bu 2
  190518. e41e3d76be Typo fix
  190519. .IP \(bu 2
  190520. 37c7980880 Add note about GPG signing to PR template
  190521. .UNINDENT
  190522. .IP \(bu 2
  190523. bf90ea1f51 Merge pull request \fI\%#44124\fP from rallytime/merge\-2016.11
  190524. .INDENT 2.0
  190525. .IP \(bu 2
  190526. 59861291c8 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  190527. .INDENT 2.0
  190528. .IP \(bu 2
  190529. 57623e2abe Merge pull request \fI\%#44028\fP from rallytime/bp\-44011
  190530. .INDENT 2.0
  190531. .IP \(bu 2
  190532. 89e084bda3 Do not allow IDs with null bytes in decoded payloads
  190533. .IP \(bu 2
  190534. 206ae23f15 Don\(aqt allow path separators in minion ID
  190535. .UNINDENT
  190536. .UNINDENT
  190537. .UNINDENT
  190538. .IP \(bu 2
  190539. 13f3ffa83a Merge pull request \fI\%#44097\fP from gtmanfred/openneb
  190540. .INDENT 2.0
  190541. .IP \(bu 2
  190542. c29655b2c2 Merge branch \(aq2016.11\(aq into openneb
  190543. .IP \(bu 2
  190544. bd2490b149 OpenNebula does not require the template_id to be specified
  190545. .UNINDENT
  190546. .IP \(bu 2
  190547. ac3e4df964 Merge pull request \fI\%#44110\fP from roaldnefs/fix\-doc\-local\-returner
  190548. .INDENT 2.0
  190549. .IP \(bu 2
  190550. efd58f7594 Merge branch \(aq2016.11\(aq into fix\-doc\-local\-returner
  190551. .IP \(bu 2
  190552. 881f1822f2 Format fix code example local returner doc
  190553. .UNINDENT
  190554. .UNINDENT
  190555. .UNINDENT
  190556. .IP \(bu 2
  190557. \fBISSUE\fP \fI\%#43918\fP: (\fI\%mwerickso\fP) subset argument does not work with saltmod.state (refs: \fI\%#43933\fP)
  190558. .IP \(bu 2
  190559. \fBPR\fP \fI\%#43933\fP: (\fI\%gtmanfred\fP) if expect_minions is passed use that instead
  190560. @ \fI2017\-10\-18 16:43:39 UTC\fP
  190561. .INDENT 2.0
  190562. .IP \(bu 2
  190563. 0b47eb7242 Merge pull request \fI\%#43933\fP from gtmanfred/2017.7
  190564. .IP \(bu 2
  190565. 272dcc6ba5 add inline comment about popping expect_minions
  190566. .IP \(bu 2
  190567. b615ce1762 if expect_minions is passed use that instead
  190568. .UNINDENT
  190569. .IP \(bu 2
  190570. \fBPR\fP \fI\%#44081\fP: (\fI\%skizunov\fP) Windows: Fix usage of pkgrepo state
  190571. @ \fI2017\-10\-18 16:16:46 UTC\fP
  190572. .INDENT 2.0
  190573. .IP \(bu 2
  190574. 36da1a7fac Merge pull request \fI\%#44081\fP from skizunov/develop3
  190575. .IP \(bu 2
  190576. 351d16840b Move strip_uri to salt/utils/pkg/deb.py
  190577. .IP \(bu 2
  190578. f54c7a6f01 Windows: Fix usage of pkgrepo state
  190579. .UNINDENT
  190580. .IP \(bu 2
  190581. \fBPR\fP \fI\%#43913\fP: (\fI\%twangboy\fP) Fix \fIunit.templates.test_jinja\fP for Windows
  190582. @ \fI2017\-10\-17 21:09:05 UTC\fP
  190583. .INDENT 2.0
  190584. .IP \(bu 2
  190585. afcaa0c591 Merge pull request \fI\%#43913\fP from twangboy/win_fix_test_jinja
  190586. .IP \(bu 2
  190587. a4e2d8059d Fix \fIunit.templates.test_jinja\fP for Windows
  190588. .UNINDENT
  190589. .IP \(bu 2
  190590. \fBPR\fP \fI\%#43917\fP: (\fI\%twangboy\fP) Fix \fIunit.test_pillar\fP for Windows
  190591. @ \fI2017\-10\-17 21:06:46 UTC\fP
  190592. .INDENT 2.0
  190593. .IP \(bu 2
  190594. fc5754c6a1 Merge pull request \fI\%#43917\fP from twangboy/win_unit_test_pillar
  190595. .IP \(bu 2
  190596. 00dbba5712 Fix \fIunit.test_pillar\fP for Windows
  190597. .UNINDENT
  190598. .IP \(bu 2
  190599. \fBPR\fP \fI\%#44133\fP: (\fI\%cachedout\fP) Fix typos in parallel states docs
  190600. @ \fI2017\-10\-17 15:24:19 UTC\fP
  190601. .INDENT 2.0
  190602. .IP \(bu 2
  190603. 6252f82f58 Merge pull request \fI\%#44133\fP from cachedout/fix_paralell_docs
  190604. .IP \(bu 2
  190605. 8d1c1e21f0 Fix typos in paralell states docs
  190606. .UNINDENT
  190607. .IP \(bu 2
  190608. \fBPR\fP \fI\%#44135\fP: (\fI\%timfreund\fP) Insert missing verb in gitfs walkthrough
  190609. @ \fI2017\-10\-17 14:32:13 UTC\fP
  190610. .INDENT 2.0
  190611. .IP \(bu 2
  190612. 0d3f5db867 Merge pull request \fI\%#44135\fP from timfreund/insert_missing_verb
  190613. .IP \(bu 2
  190614. 9557504b75 Insert missing verb in gitfs walkthrough
  190615. .UNINDENT
  190616. .IP \(bu 2
  190617. \fBPR\fP \fI\%#44055\fP: (\fI\%nasenbaer13\fP) Activate jid_queue also for SingleMinions to workaround (Backport)
  190618. @ \fI2017\-10\-16 20:14:52 UTC\fP
  190619. .INDENT 2.0
  190620. .IP \(bu 2
  190621. \fBPR\fP \fI\%#43860\fP: (\fI\%nasenbaer13\fP) Activate jid_queue also for SingleMinions (occurs on reconnect) (refs: \fI\%#44055\fP)
  190622. .IP \(bu 2
  190623. a9700f6061 Merge pull request \fI\%#44055\fP from eyj/jid_queue
  190624. .IP \(bu 2
  190625. 4bdd5bbf6b Merge branch \(aq2017.7\(aq into jid_queue
  190626. .IP \(bu 2
  190627. facef2227d Merge branch \(aq2017.7\(aq into jid_queue
  190628. .IP \(bu 2
  190629. 2fedcec6bb Merge branch \(aq2017.7\(aq into jid_queue
  190630. .IP \(bu 2
  190631. 255aa94c64 Activate jid_queue also for SingleMinions to workaround 0mq reconnection issues
  190632. .UNINDENT
  190633. .IP \(bu 2
  190634. \fBPR\fP \fI\%#44125\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.2 to 2017.7
  190635. @ \fI2017\-10\-16 20:02:25 UTC\fP
  190636. .INDENT 2.0
  190637. .IP \(bu 2
  190638. 2fba45cd3f Merge pull request \fI\%#44125\fP from rallytime/merge\-2017.7
  190639. .IP \(bu 2
  190640. c4ae4a6b50 Merge branch \(aq2017.7.2\(aq into \(aq2017.7\(aq
  190641. .INDENT 2.0
  190642. .IP \(bu 2
  190643. 5d719a2219 Merge pull request \fI\%#44027\fP from rallytime/bp\-44012
  190644. .IP \(bu 2
  190645. f7824e41f3 Don\(aqt allow path separators in minion ID
  190646. .IP \(bu 2
  190647. 44060dc9c1 Do not allow IDs with null bytes in decoded payloads
  190648. .UNINDENT
  190649. .UNINDENT
  190650. .IP \(bu 2
  190651. \fBISSUE\fP \fI\%#43307\fP: (\fI\%marek\-knappe\fP) Filesystem creation is failing on newly created LV (refs: \fI\%#44029\fP)
  190652. .IP \(bu 2
  190653. \fBPR\fP \fI\%#44029\fP: (\fI\%msummers42\fP) addresses issue \fI\%#43307\fP, disk.format_ to disk.format (refs: \fI\%#44131\fP)
  190654. @ \fI2017\-10\-16 19:59:20 UTC\fP
  190655. .INDENT 2.0
  190656. .IP \(bu 2
  190657. 68974aa74d Merge pull request \fI\%#44029\fP from msummers42/2017.7
  190658. .IP \(bu 2
  190659. 16e1c1dfc8 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  190660. .IP \(bu 2
  190661. 3d597db51c Merge branch \(aq2017.7\(aq into 2017.7
  190662. .IP \(bu 2
  190663. 18fb0be96a addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  190664. .UNINDENT
  190665. .IP \(bu 2
  190666. \fBPR\fP \fI\%#44079\fP: (\fI\%skizunov\fP) opkg: Fix usage with pkgrepo.managed
  190667. @ \fI2017\-10\-16 19:58:13 UTC\fP
  190668. .INDENT 2.0
  190669. .IP \(bu 2
  190670. d0bbe65ffa Merge pull request \fI\%#44079\fP from skizunov/develop2
  190671. .IP \(bu 2
  190672. 0614d1af30 Merge branch \(aq2017.7\(aq into develop2
  190673. .IP \(bu 2
  190674. b6b12fe495 opkg: Fix usage with pkgrepo.managed
  190675. .UNINDENT
  190676. .IP \(bu 2
  190677. \fBPR\fP \fI\%#44090\fP: (\fI\%pratik705\fP) Fix create_attach_volumes salt\-cloud action for gcp
  190678. @ \fI2017\-10\-16 19:04:22 UTC\fP
  190679. .INDENT 2.0
  190680. .IP \(bu 2
  190681. 22a8253595 Merge pull request \fI\%#44090\fP from pratik705/fix\-create_attach_volumes_salt\-cloud_action\-GCP
  190682. .IP \(bu 2
  190683. 3eefd334c5 Fixed "create_attach_volumes" salt\-cloud action for GCP
  190684. .UNINDENT
  190685. .IP \(bu 2
  190686. \fBPR\fP \fI\%#44121\fP: (\fI\%benediktwerner\fP) Fixed code snippet in unit testing documentation
  190687. @ \fI2017\-10\-16 18:28:36 UTC\fP
  190688. .INDENT 2.0
  190689. .IP \(bu 2
  190690. 888e5f51a2 Merge pull request \fI\%#44121\fP from benediktwerner/2017.7
  190691. .IP \(bu 2
  190692. 1319c822bd Fixed code snippet in unit testing doc
  190693. .UNINDENT
  190694. .IP \(bu 2
  190695. \fBPR\fP \fI\%#44098\fP: (\fI\%twangboy\fP) Return multiprocessing queue in LogSetupMock class
  190696. @ \fI2017\-10\-16 18:14:30 UTC\fP
  190697. .INDENT 2.0
  190698. .IP \(bu 2
  190699. 9fe94d7843 Merge pull request \fI\%#44098\fP from twangboy/win_mock_test_parsers
  190700. .IP \(bu 2
  190701. cc43ca27af Return multiprocessing queue in LogSetupMock class
  190702. .UNINDENT
  190703. .IP \(bu 2
  190704. \fBPR\fP \fI\%#44118\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190705. @ \fI2017\-10\-16 17:01:38 UTC\fP
  190706. .INDENT 2.0
  190707. .IP \(bu 2
  190708. 0ee04eaf1d Merge pull request \fI\%#44118\fP from rallytime/merge\-2017.7
  190709. .IP \(bu 2
  190710. bbec47afbc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190711. .INDENT 2.0
  190712. .IP \(bu 2
  190713. c960ca32c2 Merge pull request \fI\%#44092\fP from techhat/awsunicode
  190714. .INDENT 2.0
  190715. .IP \(bu 2
  190716. bbd9db4d00 One more encoding
  190717. .IP \(bu 2
  190718. 0e8b325667 Apparently __salt_system_encoding__ is a thing
  190719. .IP \(bu 2
  190720. 1e7211838d Use system encoding
  190721. .IP \(bu 2
  190722. 1af21bbe5e Made sure that unicoded data is sent to sha256()
  190723. .UNINDENT
  190724. .IP \(bu 2
  190725. d89c317d96 Merge pull request \fI\%#44021\fP from whiteinge/cpstats\-attribute\-error
  190726. .INDENT 2.0
  190727. .IP \(bu 2
  190728. bf14e5f578 Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  190729. .UNINDENT
  190730. .IP \(bu 2
  190731. bbdabe242a Merge pull request \fI\%#44025\fP from dayid/lover_typo
  190732. .INDENT 2.0
  190733. .IP \(bu 2
  190734. 385980c21a Merge branch \(aq2016.11\(aq of \fI\%https://github.com/saltstack/salt\fP into lover_typo
  190735. .IP \(bu 2
  190736. 266dc00a23 Typo correction of lover to lower
  190737. .UNINDENT
  190738. .IP \(bu 2
  190739. d8f3891a5e Merge pull request \fI\%#44030\fP from rallytime/merge\-2016.11
  190740. .INDENT 2.0
  190741. .IP \(bu 2
  190742. 53eaf0d75c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  190743. .IP \(bu 2
  190744. 64fd839377 Merge pull request \fI\%#44010\fP from Ch3LL/2016.3.7_follow_up
  190745. .INDENT 2.0
  190746. .IP \(bu 2
  190747. 9a00302cd8 fix 2016.3.7 release notes merge conflict
  190748. .IP \(bu 2
  190749. 63da1214db Do not allow IDs with null bytes in decoded payloads
  190750. .IP \(bu 2
  190751. ee792581fc Don\(aqt allow path separators in minion ID
  190752. .IP \(bu 2
  190753. 8aab65c718 fix 2016.3.7 release notes merge conflict
  190754. .UNINDENT
  190755. .IP \(bu 2
  190756. bd73dcb02c Merge pull request \fI\%#43977\fP from Ch3LL/3.8_sec
  190757. .IP \(bu 2
  190758. 5fb3f5f6b1 Add Security Notes to 2016.3.8 Release Notes
  190759. .UNINDENT
  190760. .UNINDENT
  190761. .UNINDENT
  190762. .IP \(bu 2
  190763. \fBPR\fP \fI\%#44099\fP: (\fI\%twangboy\fP) Skip Master, Minion, and Syndic parser tests
  190764. @ \fI2017\-10\-16 16:07:00 UTC\fP
  190765. .INDENT 2.0
  190766. .IP \(bu 2
  190767. 28fa097b9b Merge pull request \fI\%#44099\fP from twangboy/win_skip_test_parsers
  190768. .IP \(bu 2
  190769. caf086c05a Skip Master, Minion, and Syndic parser tests
  190770. .UNINDENT
  190771. .IP \(bu 2
  190772. \fBPR\fP \fI\%#44106\fP: (\fI\%roaldnefs\fP) Fix mattermost returner documentation
  190773. @ \fI2017\-10\-16 13:12:23 UTC\fP
  190774. .INDENT 2.0
  190775. .IP \(bu 2
  190776. dbf112ead7 Merge pull request \fI\%#44106\fP from roaldnefs/fix\-doc\-mattermost_returner
  190777. .IP \(bu 2
  190778. b3761a0401 Fix doc indentation in mattermost_returner
  190779. .UNINDENT
  190780. .IP \(bu 2
  190781. \fBPR\fP \fI\%#44054\fP: (\fI\%nasenbaer13\fP) Backport of missing delete_on_termination
  190782. @ \fI2017\-10\-13 15:45:25 UTC\fP
  190783. .INDENT 2.0
  190784. .IP \(bu 2
  190785. \fBPR\fP \fI\%#43859\fP: (\fI\%nasenbaer13\fP) Add missing delete_on_termination passthrough. Adapt docs. (refs: \fI\%#44054\fP)
  190786. .IP \(bu 2
  190787. fd2c51b76c Merge pull request \fI\%#44054\fP from eyj/boto_lc
  190788. .IP \(bu 2
  190789. 34d4629a64 Merge branch \(aq2017.7\(aq into boto_lc
  190790. .IP \(bu 2
  190791. 9efd63526a Adapted documentation of delete_on_termination parameter
  190792. .IP \(bu 2
  190793. eb2bfd047b Add missing delete_on_termination passthrough. Adapt docs.
  190794. .UNINDENT
  190795. .IP \(bu 2
  190796. \fBPR\fP \fI\%#44076\fP: (\fI\%Ch3LL\fP) Add spm shell tests
  190797. @ \fI2017\-10\-13 14:32:19 UTC\fP
  190798. .INDENT 2.0
  190799. .IP \(bu 2
  190800. b61ed96268 Merge pull request \fI\%#44076\fP from Ch3LL/spm_test
  190801. .IP \(bu 2
  190802. d2e91c33bd Add spm shell tests
  190803. .UNINDENT
  190804. .IP \(bu 2
  190805. \fBPR\fP \fI\%#44051\fP: (\fI\%twangboy\fP) Fix some documentation formatting issues in the win_dacl state
  190806. @ \fI2017\-10\-12 15:40:17 UTC\fP
  190807. .INDENT 2.0
  190808. .IP \(bu 2
  190809. e38f313ac0 Merge pull request \fI\%#44051\fP from twangboy/win_fix_docs_dacl
  190810. .IP \(bu 2
  190811. 377d6b6171 Fix some docs in the win_dacl state module
  190812. .UNINDENT
  190813. .IP \(bu 2
  190814. \fBPR\fP \fI\%#44066\fP: (\fI\%Ch3LL\fP) Add Known CherryPy Issue to 2017.7.2 Release Notes
  190815. @ \fI2017\-10\-12 15:18:25 UTC\fP
  190816. .INDENT 2.0
  190817. .IP \(bu 2
  190818. a85837d72b Merge pull request \fI\%#44066\fP from Ch3LL/cherry_release
  190819. .IP \(bu 2
  190820. 8e597fcce9 Add Known CherryPy Issue to 2017.7.2 Release Notes
  190821. .UNINDENT
  190822. .IP \(bu 2
  190823. \fBISSUE\fP \fI\%#43643\fP: (\fI\%doublez13\fP) salt\-ssh: multiple targets fails after upgrade to 2017.7 (refs: \fI\%#43889\fP)
  190824. .IP \(bu 2
  190825. \fBISSUE\fP \fI\%#43449\fP: (\fI\%ecgg\fP) salt\-ssh \-L with hosts down or unreachable returns wrong results (refs: \fI\%#43889\fP)
  190826. .IP \(bu 2
  190827. \fBPR\fP \fI\%#43889\fP: (\fI\%CorvinM\fP) Fix issue with using roster_defaults with flat or cloud rosters.
  190828. @ \fI2017\-10\-11 23:22:11 UTC\fP
  190829. .INDENT 2.0
  190830. .IP \(bu 2
  190831. fcab77ac7b Merge pull request \fI\%#43889\fP from CorvinM/issue43449
  190832. .IP \(bu 2
  190833. fefd28d896 Add futureproofing to roster_defaults to support roster dictionary options
  190834. .IP \(bu 2
  190835. aebe76b6f8 Fix issue with using roster_defaults with flat or cloud rosters. fixes \fI\%#43449\fP fixes \fI\%#43643\fP
  190836. .UNINDENT
  190837. .IP \(bu 2
  190838. \fBPR\fP \fI\%#44031\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190839. @ \fI2017\-10\-11 22:03:31 UTC\fP
  190840. .INDENT 2.0
  190841. .IP \(bu 2
  190842. 3ad1c6d1d9 Merge pull request \fI\%#44031\fP from rallytime/merge\-2017.7
  190843. .IP \(bu 2
  190844. 1d4a6c3949 Lint: Fixup undefined variable errors
  190845. .IP \(bu 2
  190846. 788ad0609a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190847. .INDENT 2.0
  190848. .IP \(bu 2
  190849. 0dbf41e79e Merge pull request \fI\%#44011\fP from Ch3LL/2016.11.7_follow_up
  190850. .INDENT 2.0
  190851. .IP \(bu 2
  190852. c0149101c0 Do not allow IDs with null bytes in decoded payloads
  190853. .IP \(bu 2
  190854. 19481423dd Don\(aqt allow path separators in minion ID
  190855. .UNINDENT
  190856. .IP \(bu 2
  190857. d61300df20 Merge pull request \fI\%#44023\fP from Ch3LL/11.9rn
  190858. .INDENT 2.0
  190859. .IP \(bu 2
  190860. 7f9015eb41 Add 2016.11.9 Release Note File
  190861. .UNINDENT
  190862. .IP \(bu 2
  190863. 9ff53bf63a Merge pull request \fI\%#44019\fP from benediktwerner/2016.11
  190864. .INDENT 2.0
  190865. .IP \(bu 2
  190866. bc53598027 Fixed spelling mistake in salt_bootstrap tutorial
  190867. .IP \(bu 2
  190868. 6c30344824 Added missing tutorial docs to the tutorial index
  190869. .UNINDENT
  190870. .IP \(bu 2
  190871. 364523f5f8 Merge pull request \fI\%#43955\fP from meaksh/2016.11\-fix\-2291
  190872. .INDENT 2.0
  190873. .IP \(bu 2
  190874. a81b78381b Merge branch \(aq2016.11\(aq into 2016.11\-fix\-2291
  190875. .IP \(bu 2
  190876. 44bc91bb98 Enable \(aq\-\-with\-salt\-version\(aq parameter for setup.py script
  190877. .UNINDENT
  190878. .IP \(bu 2
  190879. fec714b91d Merge pull request \fI\%#43962\fP from bobrik/kmod\-built\-in
  190880. .INDENT 2.0
  190881. .IP \(bu 2
  190882. 95ab901553 Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  190883. .UNINDENT
  190884. .IP \(bu 2
  190885. e434c39c4e Merge pull request \fI\%#43960\fP from cro/ldap_nopw_bind2
  190886. .INDENT 2.0
  190887. .IP \(bu 2
  190888. 962a20cf4b Require that bindpw be non\-empty if auth.ldap.anonymous=False
  190889. .IP \(bu 2
  190890. 9df3d91d8f Release notes blurb for change to bindpw requirements
  190891. .UNINDENT
  190892. .IP \(bu 2
  190893. e9dfda2177 Merge pull request \fI\%#43991\fP from Ch3LL/3.8_sec_2
  190894. .INDENT 2.0
  190895. .IP \(bu 2
  190896. 1977df8462 Add Security Notes to 2016.3.8 Release Notes
  190897. .UNINDENT
  190898. .IP \(bu 2
  190899. 2346d2691e Merge pull request \fI\%#43968\fP from rossengeorgiev/fix\-zenoss\-prod_state
  190900. .INDENT 2.0
  190901. .IP \(bu 2
  190902. e6d31c1ea6 fix zenoss state module not respecting test=true
  190903. .UNINDENT
  190904. .IP \(bu 2
  190905. 8d56a5ac45 Merge pull request \fI\%#43776\fP from Ch3LL/2016.11.8_docs
  190906. .INDENT 2.0
  190907. .IP \(bu 2
  190908. f72bc00000 [2016.11] Bump latest and previous versions
  190909. .UNINDENT
  190910. .IP \(bu 2
  190911. 21bf71c3f5 Merge pull request \fI\%#43976\fP from Ch3LL/11.8_sec
  190912. .INDENT 2.0
  190913. .IP \(bu 2
  190914. f0c3184288 Add Security Notes to 2016.11.8 Release Notes
  190915. .UNINDENT
  190916. .IP \(bu 2
  190917. 1d5397ab5b Merge pull request \fI\%#43973\fP from terminalmage/fix\-grains.has_value
  190918. .INDENT 2.0
  190919. .IP \(bu 2
  190920. bf45ae6e6a Fix grains.has_value when value is False
  190921. .UNINDENT
  190922. .IP \(bu 2
  190923. 9ac3f2ea7b Merge pull request \fI\%#43888\fP from rallytime/bp\-43841
  190924. .INDENT 2.0
  190925. .IP \(bu 2
  190926. 87d676f08a add \-n with netstat so we don\(aqt resolve
  190927. .UNINDENT
  190928. .IP \(bu 2
  190929. f880ac4c08 Merge pull request \fI\%#43916\fP from dereckson/fix\-typo\-cloud\-scaleway
  190930. .INDENT 2.0
  190931. .IP \(bu 2
  190932. 15b8b8a9f4 Fix typo in salt\-cloud scaleway documentation
  190933. .UNINDENT
  190934. .UNINDENT
  190935. .UNINDENT
  190936. .IP \(bu 2
  190937. \fBPR\fP \fI\%#44045\fP: (\fI\%isbm\fP) Bugfix: always return a string "list" on unknown job target type.
  190938. @ \fI2017\-10\-11 21:58:12 UTC\fP
  190939. .INDENT 2.0
  190940. .IP \(bu 2
  190941. 5db1e8c6ca Merge pull request \fI\%#44045\fP from isbm/isbm\-tgttype\-fix\-2017\-port
  190942. .IP \(bu 2
  190943. 471ff35c2f Bugfix: always return a string "list" on unknown job target type.
  190944. .UNINDENT
  190945. .IP \(bu 2
  190946. \fBISSUE\fP \fI\%#43949\fP: (\fI\%arthurlogilab\fP) [logger] [sentry] KeyError: \(aqSENTRY_PROJECT\(aq (refs: \fI\%#43950\fP)
  190947. .IP \(bu 2
  190948. \fBPR\fP \fI\%#44026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43950\fP to 2017.7
  190949. @ \fI2017\-10\-11 15:27:49 UTC\fP
  190950. .INDENT 2.0
  190951. .IP \(bu 2
  190952. \fBPR\fP \fI\%#43950\fP: (\fI\%arthurlogilab\fP) [log/sentry] avoid KeyError: \(aqSENTRY_PROJECT\(aq (refs: \fI\%#44026\fP)
  190953. .IP \(bu 2
  190954. 6c8f7fd5ec Merge pull request \fI\%#44026\fP from rallytime/bp\-43950
  190955. .IP \(bu 2
  190956. a37e0bad62 [log/sentry] avoid KeyError: \(aqSENTRY_PROJECT\(aq
  190957. .UNINDENT
  190958. .IP \(bu 2
  190959. \fBPR\fP \fI\%#44012\fP: (\fI\%Ch3LL\fP) Security Fixes for 2017.7.2 (refs: \fI\%#44027\fP)
  190960. @ \fI2017\-10\-10 20:04:08 UTC\fP
  190961. .INDENT 2.0
  190962. .IP \(bu 2
  190963. 369ee8a132 Merge pull request \fI\%#44012\fP from Ch3LL/2017.7.1_follow_up
  190964. .IP \(bu 2
  190965. 92e05cf1c0 Don\(aqt allow path separators in minion ID
  190966. .IP \(bu 2
  190967. 70133aa305 Do not allow IDs with null bytes in decoded payloads
  190968. .UNINDENT
  190969. .IP \(bu 2
  190970. \fBPR\fP \fI\%#44024\fP: (\fI\%Ch3LL\fP) Add 2017.7.3 Release Note File
  190971. @ \fI2017\-10\-10 20:03:12 UTC\fP
  190972. .INDENT 2.0
  190973. .IP \(bu 2
  190974. 4fe029a0ab Merge pull request \fI\%#44024\fP from Ch3LL/7.3rn
  190975. .IP \(bu 2
  190976. 027f509368 Add 2017.7.3 Release Note File
  190977. .UNINDENT
  190978. .IP \(bu 2
  190979. \fBISSUE\fP \fI\%#43997\fP: (\fI\%unthought\fP) gce cloud provider breaks for make_master: True (refs: \fI\%#43998\fP)
  190980. .IP \(bu 2
  190981. \fBPR\fP \fI\%#43998\fP: (\fI\%unthought\fP) Fix gce make_master
  190982. @ \fI2017\-10\-10 20:01:25 UTC\fP
  190983. .INDENT 2.0
  190984. .IP \(bu 2
  190985. e484d16817 Merge pull request \fI\%#43998\fP from unthought/fix\-gce\-make_master
  190986. .IP \(bu 2
  190987. 6e9f0fa24e Fix GCE provider: #create returns bootstrap result
  190988. .UNINDENT
  190989. .IP \(bu 2
  190990. \fBISSUE\fP \fI\%#44013\fP: (\fI\%DenisBY\fP) pkgrepo.managed broken in 2017.7.2 (refs: \fI\%#44016\fP)
  190991. .IP \(bu 2
  190992. \fBPR\fP \fI\%#44016\fP: (\fI\%terminalmage\fP) Fix on_header callback when not redirecting and no Content\-Type present
  190993. @ \fI2017\-10\-10 19:59:24 UTC\fP
  190994. .INDENT 2.0
  190995. .IP \(bu 2
  190996. 82b92d54b3 Merge pull request \fI\%#44016\fP from terminalmage/issue44013
  190997. .IP \(bu 2
  190998. d594b95f92 No need to set a specific encoding if one hasn\(aqt been provided via the headers
  190999. .IP \(bu 2
  191000. 425ede4b84 Fix on_header callback when not redirecting and no Content\-Type present
  191001. .UNINDENT
  191002. .IP \(bu 2
  191003. \fBPR\fP \fI\%#43952\fP: (\fI\%t0fik\fP) add requisites to stateconf ( backport \fI\%#43920\fP)
  191004. @ \fI2017\-10\-10 13:03:31 UTC\fP
  191005. .INDENT 2.0
  191006. .IP \(bu 2
  191007. \fBPR\fP \fI\%#43920\fP: (\fI\%t0fik\fP) Added missing requisites to stateconf renderer (refs: \fI\%#43952\fP)
  191008. .IP \(bu 2
  191009. bd879eb66e Merge pull request \fI\%#43952\fP from jdsieci/2017.7_add_requisites_to_stateconf
  191010. .IP \(bu 2
  191011. 9994c64670 Merge branch \(aq2017.7\(aq into 2017.7_add_requisites_to_stateconf
  191012. .UNINDENT
  191013. .IP \(bu 2
  191014. \fBPR\fP \fI\%#43777\fP: (\fI\%Ch3LL\fP) [2017.7] Bump latest and previous versions
  191015. @ \fI2017\-10\-09 17:21:57 UTC\fP
  191016. .INDENT 2.0
  191017. .IP \(bu 2
  191018. a4358dfa36 Merge pull request \fI\%#43777\fP from Ch3LL/2017.7.2_docs
  191019. .IP \(bu 2
  191020. 410c624f7a [2017.7] Bump latest and previous versions
  191021. .UNINDENT
  191022. .IP \(bu 2
  191023. \fBPR\fP \fI\%#43978\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2017.7.2 Release Notes
  191024. @ \fI2017\-10\-09 17:20:04 UTC\fP
  191025. .INDENT 2.0
  191026. .IP \(bu 2
  191027. 2a064c1a72 Merge pull request \fI\%#43978\fP from Ch3LL/7.2_sec
  191028. .IP \(bu 2
  191029. 57fd6f7bcb Add Security Notes to 2017.7.2 Release Notes
  191030. .UNINDENT
  191031. .IP \(bu 2
  191032. \fBPR\fP \fI\%#43932\fP: (\fI\%techhat\fP) Don\(aqt try to modify dict while looping through it
  191033. @ \fI2017\-10\-06 21:20:54 UTC\fP
  191034. .INDENT 2.0
  191035. .IP \(bu 2
  191036. d9530e3c52 Merge pull request \fI\%#43932\fP from techhat/moddict
  191037. .IP \(bu 2
  191038. 4a77560646 Don\(aqt try to modify dict while looping through it
  191039. .UNINDENT
  191040. .IP \(bu 2
  191041. \fBPR\fP \fI\%#43956\fP: (\fI\%terminalmage\fP) Fix fileclient\(aqs get_url when redirecting to a redirect
  191042. @ \fI2017\-10\-06 21:19:41 UTC\fP
  191043. .INDENT 2.0
  191044. .IP \(bu 2
  191045. 39893a1dab Merge pull request \fI\%#43956\fP from terminalmage/fix\-get_url\-redirects
  191046. .IP \(bu 2
  191047. 9a4f6a260f Fix fileclient\(aqs get_url when redirecting to a redirect
  191048. .UNINDENT
  191049. .IP \(bu 2
  191050. \fBPR\fP \fI\%#43943\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_utils\fP for Windows
  191051. @ \fI2017\-10\-06 19:35:24 UTC\fP
  191052. .INDENT 2.0
  191053. .IP \(bu 2
  191054. 1baf286719 Merge pull request \fI\%#43943\fP from twangboy/win_unit_test_utils
  191055. .IP \(bu 2
  191056. 254dac7723 Fix \fIunit.utils.test_utils\fP for Windows
  191057. .INDENT 2.0
  191058. .INDENT 3.5
  191059. .INDENT 0.0
  191060. .IP \(bu 2
  191061. 89200ff28e rebase from 2017.7.2
  191062. .UNINDENT
  191063. .UNINDENT
  191064. .UNINDENT
  191065. .UNINDENT
  191066. .IP \(bu 2
  191067. \fBPR\fP \fI\%#43939\fP: (\fI\%terminalmage\fP) Fix typo in log message
  191068. @ \fI2017\-10\-05 23:20:04 UTC\fP
  191069. .INDENT 2.0
  191070. .IP \(bu 2
  191071. a8f1750323 Merge pull request \fI\%#43939\fP from terminalmage/fix\-typo
  191072. .IP \(bu 2
  191073. 29d8cf4f26 Fix typo in log message
  191074. .UNINDENT
  191075. .IP \(bu 2
  191076. \fBISSUE\fP \fI\%#43909\fP: (\fI\%frogunder\fP) state.highstate not working on py3 setup (refs: \fI\%#43910\fP)
  191077. .IP \(bu 2
  191078. \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)
  191079. .IP \(bu 2
  191080. \fBPR\fP \fI\%#43910\fP: (\fI\%terminalmage\fP) Don\(aqt put unserializable dict.keys() into state return
  191081. @ \fI2017\-10\-05 20:33:47 UTC\fP
  191082. .INDENT 2.0
  191083. .IP \(bu 2
  191084. 1a718eb1ed Merge pull request \fI\%#43910\fP from terminalmage/issue43605
  191085. .IP \(bu 2
  191086. 042e092ac8 Don\(aqt put unserializable dict.keys() into state return
  191087. .UNINDENT
  191088. .IP \(bu 2
  191089. \fBISSUE\fP \fI\%#41894\fP: (\fI\%DR3EVR8u8c\fP) Salt\-cloud can\(aqt resize root volume with public ami images (refs: \fI\%#43907\fP)
  191090. .IP \(bu 2
  191091. \fBISSUE\fP \fI\%#39257\fP: (\fI\%aig787\fP) Using del_root_vol_on_destroy option in salt\-cloud gives IndexError (refs: \fI\%#43907\fP)
  191092. .IP \(bu 2
  191093. \fBPR\fP \fI\%#43927\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43907\fP to 2017.7
  191094. @ \fI2017\-10\-05 20:10:16 UTC\fP
  191095. .INDENT 2.0
  191096. .IP \(bu 2
  191097. \fBPR\fP \fI\%#43907\fP: (\fI\%richardsimko\fP) Make sure EBS volume exists before querying (refs: \fI\%#43927\fP)
  191098. .IP \(bu 2
  191099. \fBPR\fP \fI\%#33115\fP: (\fI\%rbjorklin\fP) Fix override of ec2 volumetype (refs: \fI\%#43907\fP)
  191100. .IP \(bu 2
  191101. a7a59868c8 Merge pull request \fI\%#43927\fP from rallytime/bp\-43907
  191102. .IP \(bu 2
  191103. f62e8ca87f Make sure volume exists before querying
  191104. .UNINDENT
  191105. .IP \(bu 2
  191106. \fBPR\fP \fI\%#43934\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191107. @ \fI2017\-10\-05 20:07:36 UTC\fP
  191108. .INDENT 2.0
  191109. .IP \(bu 2
  191110. 4fcd4709ea Merge pull request \fI\%#43934\fP from rallytime/merge\-2017.7
  191111. .IP \(bu 2
  191112. eaca3291e2 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191113. .INDENT 2.0
  191114. .IP \(bu 2
  191115. 2ab7549d48 Merge pull request \fI\%#43884\fP from UtahDave/2016.11local
  191116. .INDENT 2.0
  191117. .IP \(bu 2
  191118. e3b2857285 Merge branch \(aq2016.11\(aq into 2016.11local
  191119. .UNINDENT
  191120. .IP \(bu 2
  191121. 4b882d4272 Merge pull request \fI\%#43869\fP from terminalmage/issue43522
  191122. .INDENT 2.0
  191123. .IP \(bu 2
  191124. fe28b0d4fb Only join cmd if it\(aqs not a string
  191125. .IP \(bu 2
  191126. 8c671fd0c1 Update SaltConf banner per Rhett\(aqs request
  191127. .UNINDENT
  191128. .IP \(bu 2
  191129. a2161efda3 Merge pull request \fI\%#43707\fP from terminalmage/issue43373
  191130. .INDENT 2.0
  191131. .IP \(bu 2
  191132. 3ebde1895f Merge branch \(aq2016.11\(aq into issue43373
  191133. .IP \(bu 2
  191134. e580ed4caa Merge branch \(aq2016.11\(aq into issue43373
  191135. .IP \(bu 2
  191136. 5b3be6e8af Fix failing unit test
  191137. .IP \(bu 2
  191138. f73764481b Add missing support for use/use_in requisites to state.sls_id
  191139. .UNINDENT
  191140. .UNINDENT
  191141. .UNINDENT
  191142. .IP \(bu 2
  191143. \fBISSUE\fP \fI\%#43658\fP: (\fI\%kvnaveen\fP) KeyError: \(aqas_dict\(aq [DEBUG ] LazyLoaded nested.output (refs: \fI\%#43886\fP)
  191144. .IP \(bu 2
  191145. \fBPR\fP \fI\%#43886\fP: (\fI\%techhat\fP) Fix object_to_dict in azure
  191146. @ \fI2017\-10\-05 19:33:56 UTC\fP
  191147. .INDENT 2.0
  191148. .IP \(bu 2
  191149. 7d174172a0 Merge pull request \fI\%#43886\fP from techhat/azuredict
  191150. .IP \(bu 2
  191151. 223a1eea83 Fix object_to_dict in azure
  191152. .UNINDENT
  191153. .IP \(bu 2
  191154. \fBPR\fP \fI\%#43899\fP: (\fI\%gtmanfred\fP) enable tox for tests
  191155. @ \fI2017\-10\-04 15:08:16 UTC\fP
  191156. .INDENT 2.0
  191157. .IP \(bu 2
  191158. 7038248820 Merge pull request \fI\%#43899\fP from gtmanfred/2017.7
  191159. .IP \(bu 2
  191160. 51eca1a6bd enable tox for tests
  191161. .UNINDENT
  191162. .IP \(bu 2
  191163. \fBPR\fP \fI\%#43828\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191164. @ \fI2017\-10\-04 13:10:13 UTC\fP
  191165. .INDENT 2.0
  191166. .IP \(bu 2
  191167. a5abe33e1c Merge pull request \fI\%#43828\fP from rallytime/merge\-2017.7
  191168. .IP \(bu 2
  191169. 2ff02e4320 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191170. .INDENT 2.0
  191171. .IP \(bu 2
  191172. 85b3aa332a Merge pull request \fI\%#43807\fP from terminalmage/issue43522
  191173. .INDENT 2.0
  191174. .IP \(bu 2
  191175. d8708bf698 cmdmod: Don\(aqt list\-ify string commands on Windows
  191176. .UNINDENT
  191177. .IP \(bu 2
  191178. ea8d273c2b Merge pull request \fI\%#43768\fP from vutny/fix\-pylint\-deprecation\-warnings
  191179. .INDENT 2.0
  191180. .IP \(bu 2
  191181. f8b3fa9da1 Merge branch \(aq2016.11\(aq into fix\-pylint\-deprecation\-warnings
  191182. .IP \(bu 2
  191183. 651ed16ad3 Fix Pylint deprecated option warnings
  191184. .UNINDENT
  191185. .UNINDENT
  191186. .UNINDENT
  191187. .IP \(bu 2
  191188. \fBPR\fP \fI\%#43854\fP: (\fI\%keesbos\fP) Map __env__ in git_pillar before sanity checks
  191189. @ \fI2017\-10\-02 20:44:53 UTC\fP
  191190. .INDENT 2.0
  191191. .IP \(bu 2
  191192. \fBPR\fP \fI\%#43656\fP: (\fI\%keesbos\fP) Git pillar fixes (refs: \fI\%#43854\fP)
  191193. .IP \(bu 2
  191194. 36b0b1174b Merge pull request \fI\%#43854\fP from keesbos/2017.7
  191195. .IP \(bu 2
  191196. fba9c9a935 Map __env__ in git_pillar before sanity checks
  191197. .UNINDENT
  191198. .IP \(bu 2
  191199. \fBPR\fP \fI\%#43847\fP: (\fI\%cachedout\fP) Fix to module.run
  191200. @ \fI2017\-10\-02 19:25:03 UTC\fP
  191201. .INDENT 2.0
  191202. .IP \(bu 2
  191203. c81e8457b8 Merge pull request \fI\%#43847\fP from cachedout/module_run_compare
  191204. .IP \(bu 2
  191205. b11f8c8f29 Merge pull request #17 from terminalmage/pr\-43847
  191206. .INDENT 2.0
  191207. .IP \(bu 2
  191208. 93eaba7c54 Use six.iterkeys() instead of dict.keys()
  191209. .IP \(bu 2
  191210. 5d56a03a67 Improve failures for module.run states
  191211. .UNINDENT
  191212. .IP \(bu 2
  191213. 71780beb5a Merge branch \(aq2017.7\(aq into module_run_compare
  191214. .UNINDENT
  191215. .IP \(bu 2
  191216. \fBISSUE\fP \fI\%#43819\fP: (\fI\%mephi42\fP) archive.extracted shows the http password in the comment field on failure (refs: \fI\%#43844\fP)
  191217. .IP \(bu 2
  191218. \fBPR\fP \fI\%#43844\fP: (\fI\%garethgreenaway\fP) [2017.7] Changes to states/file.py and states/archived.py
  191219. @ \fI2017\-10\-01 09:08:48 UTC\fP
  191220. .INDENT 2.0
  191221. .IP \(bu 2
  191222. dd01e0ce67 Merge pull request \fI\%#43844\fP from garethgreenaway/43819_redact_url_additions
  191223. .IP \(bu 2
  191224. 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.
  191225. .INDENT 2.0
  191226. .IP \(bu 2
  191227. f0b985cbbe Merge branch \(aqmodule_run_compare\(aq of \fI\%ssh://github.com/cachedout/salt\fP into module_run_compare
  191228. .INDENT 2.0
  191229. .IP \(bu 2
  191230. aefc773c2f Merge branch \(aq2017.7\(aq into module_run_compare
  191231. .UNINDENT
  191232. .UNINDENT
  191233. .UNINDENT
  191234. .IP \(bu 2
  191235. \fBPR\fP \fI\%#43840\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_augeas\fP for Windows
  191236. @ \fI2017\-09\-29 21:53:21 UTC\fP
  191237. .INDENT 2.0
  191238. .IP \(bu 2
  191239. 1f52546eab Merge pull request \fI\%#43840\fP from twangboy/win_fix_test_augeas
  191240. .IP \(bu 2
  191241. fd1d6c31de Fix \fIunit.states.test_augeas\fP for Windows
  191242. .UNINDENT
  191243. .IP \(bu 2
  191244. \fBISSUE\fP \fI\%#43553\fP: (\fI\%dafyddj\fP) Vagrant setup (Windows guest) broken on upgrade to 2017.7 (refs: \fI\%#43801\fP)
  191245. .IP \(bu 2
  191246. \fBPR\fP \fI\%#43801\fP: (\fI\%terminalmage\fP) Properly handle UNC paths in salt.utils.path.readlink()
  191247. @ \fI2017\-09\-29 09:58:02 UTC\fP
  191248. .INDENT 2.0
  191249. .IP \(bu 2
  191250. c6fd2cd452 Merge pull request \fI\%#43801\fP from terminalmage/issue43553
  191251. .IP \(bu 2
  191252. 66e6e89dc7 Properly handle UNC paths in salt.utils.path.readlink()
  191253. .UNINDENT
  191254. .IP \(bu 2
  191255. \fBPR\fP \fI\%#43800\fP: (\fI\%Ch3LL\fP) Add note to nitrogen release notes about pip for cent6
  191256. @ \fI2017\-09\-28 17:36:49 UTC\fP
  191257. .INDENT 2.0
  191258. .IP \(bu 2
  191259. 7304907db6 Merge pull request \fI\%#43800\fP from Ch3LL/update_7.0
  191260. .IP \(bu 2
  191261. 50779c3b1c Add note to nitrogen release notes about pip for cent6
  191262. .UNINDENT
  191263. .IP \(bu 2
  191264. \fBPR\fP \fI\%#43779\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_state\fP for Windows
  191265. @ \fI2017\-09\-28 14:27:03 UTC\fP
  191266. .INDENT 2.0
  191267. .IP \(bu 2
  191268. 6f687fdcff Merge pull request \fI\%#43779\fP from twangboy/win_fix_test_state
  191269. .IP \(bu 2
  191270. a64fe75816 Use os agnostic paths
  191271. .UNINDENT
  191272. .IP \(bu 2
  191273. \fBPR\fP \fI\%#43782\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_virt\fP for Windows
  191274. @ \fI2017\-09\-28 14:25:16 UTC\fP
  191275. .INDENT 2.0
  191276. .IP \(bu 2
  191277. db0f569f7a Merge pull request \fI\%#43782\fP from twangboy/win_fix_test_virt
  191278. .IP \(bu 2
  191279. 7192332758 Fix \fIunit.modules.test_virt\fP for Windows
  191280. .UNINDENT
  191281. .IP \(bu 2
  191282. \fBPR\fP \fI\%#43723\fP: (\fI\%nicholasmhughes\fP) Fix ini_manage error and change handling
  191283. @ \fI2017\-09\-28 09:52:09 UTC\fP
  191284. .INDENT 2.0
  191285. .IP \(bu 2
  191286. dd4fc52f1e Merge pull request \fI\%#43723\fP from nicholasmhughes/ini_manage\-error\-handling
  191287. .IP \(bu 2
  191288. d68c5c4be0 prevent exception when test=True
  191289. .IP \(bu 2
  191290. cfe37916c3 handling changes per section
  191291. .IP \(bu 2
  191292. 1c484f6ad5 prevent exception when test=True
  191293. .UNINDENT
  191294. .IP \(bu 2
  191295. \fBPR\fP \fI\%#43781\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_status\fP for Windows
  191296. @ \fI2017\-09\-28 09:06:19 UTC\fP
  191297. .INDENT 2.0
  191298. .IP \(bu 2
  191299. 5e29507c21 Merge pull request \fI\%#43781\fP from twangboy/win_fix_test_status
  191300. .IP \(bu 2
  191301. 16ae8253c1 Mock which, use os.linesep for cmd.run return
  191302. .UNINDENT
  191303. .IP \(bu 2
  191304. \fBPR\fP \fI\%#43785\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_znc\fP for Windows
  191305. @ \fI2017\-09\-28 08:56:11 UTC\fP
  191306. .INDENT 2.0
  191307. .IP \(bu 2
  191308. 05c78ae649 Merge pull request \fI\%#43785\fP from twangboy/win_fix_test_znc
  191309. .IP \(bu 2
  191310. 7d90721f6b Merge branch \(aq2017.7\(aq into win_fix_test_znc
  191311. .IP \(bu 2
  191312. 228e74c8e3 Fix \fIunit.modules.test_znc\fP for Windows
  191313. .UNINDENT
  191314. .IP \(bu 2
  191315. \fBPR\fP \fI\%#43786\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_zypper\fP for Windows
  191316. @ \fI2017\-09\-28 08:51:59 UTC\fP
  191317. .INDENT 2.0
  191318. .IP \(bu 2
  191319. 10ddb8491c Merge pull request \fI\%#43786\fP from twangboy/win_fix_test_zypper
  191320. .IP \(bu 2
  191321. 1c05e37a66 Merge branch \(aq2017.7\(aq into win_fix_test_zypper
  191322. .IP \(bu 2
  191323. aafec7ab0e Fix \fIunit.modules.test_zypper\fP for Windows
  191324. .UNINDENT
  191325. .IP \(bu 2
  191326. \fBPR\fP \fI\%#43773\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191327. @ \fI2017\-09\-28 08:48:39 UTC\fP
  191328. .INDENT 2.0
  191329. .IP \(bu 2
  191330. 9615ca32d5 Merge pull request \fI\%#43773\fP from rallytime/merge\-2017.7
  191331. .IP \(bu 2
  191332. f7035ed7da Merge branch \(aq2017.7\(aq into merge\-2017.7
  191333. .IP \(bu 2
  191334. dfef4a722c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191335. .INDENT 2.0
  191336. .IP \(bu 2
  191337. 1a8cc60bb4 Merge pull request \fI\%#43772\fP from gtmanfred/2016.11
  191338. .INDENT 2.0
  191339. .IP \(bu 2
  191340. 0194c60960 dont print Minion not responding with quiet
  191341. .UNINDENT
  191342. .IP \(bu 2
  191343. 9dee896fb9 Merge pull request \fI\%#43747\fP from rallytime/gpg\-verification
  191344. .INDENT 2.0
  191345. .IP \(bu 2
  191346. 7a70de19f4 Merge branch \(aq2016.11\(aq into gpg\-verification
  191347. .IP \(bu 2
  191348. 23bb4a5dde Add GPG Verification section to Contributing Docs
  191349. .UNINDENT
  191350. .UNINDENT
  191351. .UNINDENT
  191352. .IP \(bu 2
  191353. \fBPR\fP \fI\%#43784\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_service\fP
  191354. @ \fI2017\-09\-28 03:14:39 UTC\fP
  191355. .INDENT 2.0
  191356. .IP \(bu 2
  191357. 9a9cc69d55 Merge pull request \fI\%#43784\fP from twangboy/win_fix_test_win_service
  191358. .IP \(bu 2
  191359. 058e50e530 Fix \fIunit.modules.test_win_service\fP
  191360. .UNINDENT
  191361. .IP \(bu 2
  191362. \fBPR\fP \fI\%#43774\fP: (\fI\%The\-Loeki\fP) typo fix aka what is a \(aqmasterarpi\(aq
  191363. @ \fI2017\-09\-27 18:52:19 UTC\fP
  191364. .INDENT 2.0
  191365. .IP \(bu 2
  191366. 1254da1df5 Merge pull request \fI\%#43774\fP from The\-Loeki/patch\-1
  191367. .IP \(bu 2
  191368. 84bbe85e60 typo fix aka what is a \(aqmasterarpi\(aq
  191369. .UNINDENT
  191370. .IP \(bu 2
  191371. \fBPR\fP \fI\%#43732\fP: (\fI\%twangboy\fP) Skip \fIunit.stats.test_mac_packages\fP on Windows
  191372. @ \fI2017\-09\-27 14:48:08 UTC\fP
  191373. .INDENT 2.0
  191374. .IP \(bu 2
  191375. 3f888753d4 Merge pull request \fI\%#43732\fP from twangboy/win_skip_mac_pkg_tests
  191376. .IP \(bu 2
  191377. 1c01e06097 Only skip test on Windows
  191378. .IP \(bu 2
  191379. ec99a3ce3c Fix lint error
  191380. .IP \(bu 2
  191381. 61f8a2f7ff Skip mac specific tests
  191382. .UNINDENT
  191383. .IP \(bu 2
  191384. \fBPR\fP \fI\%#43761\fP: (\fI\%Ch3LL\fP) Release Notes for 2017.7.2
  191385. @ \fI2017\-09\-27 14:34:52 UTC\fP
  191386. .INDENT 2.0
  191387. .IP \(bu 2
  191388. fb86935d99 Merge pull request \fI\%#43761\fP from Ch3LL/release_2017.7.2
  191389. .IP \(bu 2
  191390. caf5795856 add mac patch notes
  191391. .IP \(bu 2
  191392. 3d5fce0955 Add 2017.7.2 Release Notes
  191393. .UNINDENT
  191394. .IP \(bu 2
  191395. \fBPR\fP \fI\%#43767\fP: (\fI\%twangboy\fP) Skip \fIunit.modules.test_snapper\fP on Windows
  191396. @ \fI2017\-09\-27 14:10:27 UTC\fP
  191397. .INDENT 2.0
  191398. .IP \(bu 2
  191399. 5ea603cf16 Merge pull request \fI\%#43767\fP from twangboy/win_skip_test_snapper
  191400. .IP \(bu 2
  191401. b41b9c8378 Skip snapper tests on Windows
  191402. .UNINDENT
  191403. .IP \(bu 2
  191404. \fBPR\fP \fI\%#43759\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191405. @ \fI2017\-09\-27 13:30:38 UTC\fP
  191406. .INDENT 2.0
  191407. .IP \(bu 2
  191408. 77c2c7cbf7 Merge pull request \fI\%#43759\fP from rallytime/merge\-2017.7
  191409. .IP \(bu 2
  191410. 120f49f2c4 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191411. .INDENT 2.0
  191412. .IP \(bu 2
  191413. 1cc3ad1c8d Merge pull request \fI\%#43733\fP from terminalmage/issue43729
  191414. .INDENT 2.0
  191415. .IP \(bu 2
  191416. 6e5c99bda0 Allow docker_events engine to work with newer docker\-py
  191417. .UNINDENT
  191418. .IP \(bu 2
  191419. 5d38be4ff7 Merge pull request \fI\%#43458\fP from terminalmage/issue42082
  191420. .INDENT 2.0
  191421. .IP \(bu 2
  191422. 5f90812b12 Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  191423. .UNINDENT
  191424. .IP \(bu 2
  191425. 023a563657 Merge pull request \fI\%#43727\fP from rallytime/fix\-43650
  191426. .INDENT 2.0
  191427. .IP \(bu 2
  191428. babad12d83 Revise "Contributing" docs: merge\-forwards/release branches explained!
  191429. .UNINDENT
  191430. .UNINDENT
  191431. .UNINDENT
  191432. .IP \(bu 2
  191433. \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)
  191434. .IP \(bu 2
  191435. \fBPR\fP \fI\%#43748\fP: (\fI\%rallytime\fP) Add message to boto_kinesis modules if boto libs are missing
  191436. @ \fI2017\-09\-27 13:19:33 UTC\fP
  191437. .INDENT 2.0
  191438. .IP \(bu 2
  191439. 5c203df056 Merge pull request \fI\%#43748\fP from rallytime/fix\-43737
  191440. .IP \(bu 2
  191441. 5a2593dbd3 Add message to boto_kinesis modules if boto libs are missing
  191442. .UNINDENT
  191443. .IP \(bu 2
  191444. \fBPR\fP \fI\%#43731\fP: (\fI\%twangboy\fP) Fix \fIunit.beacons.test_status\fP for Windows
  191445. @ \fI2017\-09\-26 16:25:12 UTC\fP
  191446. .INDENT 2.0
  191447. .IP \(bu 2
  191448. 2581098595 Merge pull request \fI\%#43731\fP from twangboy/win_unit_beacons_test_status
  191449. .IP \(bu 2
  191450. dc1b36b7e2 Change expected return for Windows
  191451. .UNINDENT
  191452. .IP \(bu 2
  191453. \fBPR\fP \fI\%#43724\fP: (\fI\%brejoc\fP) Improved delete_deployment test for kubernetes module
  191454. @ \fI2017\-09\-26 16:19:31 UTC\fP
  191455. .INDENT 2.0
  191456. .IP \(bu 2
  191457. 10f3d47498 Merge pull request \fI\%#43724\fP from brejoc/2017.7.kubernetes_delete_test
  191458. .IP \(bu 2
  191459. 85b0a8c401 Improved delete_deployment test for kubernetes module
  191460. .UNINDENT
  191461. .IP \(bu 2
  191462. \fBPR\fP \fI\%#43734\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_poudriere\fP for Windows
  191463. @ \fI2017\-09\-26 14:13:47 UTC\fP
  191464. .INDENT 2.0
  191465. .IP \(bu 2
  191466. 13cc27bdab Merge pull request \fI\%#43734\fP from twangboy/win_unit_test_poudriere
  191467. .IP \(bu 2
  191468. 922e60fa67 Add os agnostic paths
  191469. .UNINDENT
  191470. .IP \(bu 2
  191471. \fBPR\fP \fI\%#43742\fP: (\fI\%terminalmage\fP) Fix incorrect value in docstring
  191472. @ \fI2017\-09\-26 13:55:00 UTC\fP
  191473. .INDENT 2.0
  191474. .IP \(bu 2
  191475. 41aeee7ac8 Merge pull request \fI\%#43742\fP from terminalmage/fix\-docstring
  191476. .IP \(bu 2
  191477. 553335b1c9 Fix incorrect value in docstring
  191478. .UNINDENT
  191479. .IP \(bu 2
  191480. \fBPR\fP \fI\%#41998\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_environ\fP for Windows
  191481. @ \fI2017\-09\-26 12:25:48 UTC\fP
  191482. .INDENT 2.0
  191483. .IP \(bu 2
  191484. d78b9a3294 Merge pull request \fI\%#41998\fP from twangboy/win_unit_test_environ
  191485. .IP \(bu 2
  191486. d73ef44cf6 Mock with uppercase KEY
  191487. .IP \(bu 2
  191488. 048e16883f Use uppercase KEY
  191489. .UNINDENT
  191490. .IP \(bu 2
  191491. \fBPR\fP \fI\%#42036\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_file\fP for Windows
  191492. @ \fI2017\-09\-26 12:23:10 UTC\fP
  191493. .INDENT 2.0
  191494. .IP \(bu 2
  191495. 7fbbea3806 Merge pull request \fI\%#42036\fP from twangboy/win_unit_test_file
  191496. .IP \(bu 2
  191497. 056f3bb4c0 Use with to open temp file
  191498. .IP \(bu 2
  191499. 352fe69e35 Clarify the purpose of the for loop
  191500. .IP \(bu 2
  191501. b55172d5dc Split by Windows and Linux style line endings
  191502. .IP \(bu 2
  191503. e20aa5c39b Fix line, use os.sep instead of os.linesep
  191504. .IP \(bu 2
  191505. d5f27901e3 Fix additional bytestring issue
  191506. .IP \(bu 2
  191507. 716e99c453 Fix py3 bytestring problems
  191508. .IP \(bu 2
  191509. 543610570c Fix bytestring issues, fix errored tests
  191510. .IP \(bu 2
  191511. 9fe83a34a5 Remove old variable declaration
  191512. .IP \(bu 2
  191513. c5cf5e92c1 Fix many tests
  191514. .UNINDENT
  191515. .IP \(bu 2
  191516. \fBPR\fP \fI\%#43557\fP: (\fI\%clan\fP) disable modify yaml constructor
  191517. @ \fI2017\-09\-25 14:03:47 UTC\fP
  191518. .INDENT 2.0
  191519. .IP \(bu 2
  191520. a81d4b8d8d Merge pull request \fI\%#43557\fP from clan/yaml
  191521. .IP \(bu 2
  191522. 485471c8a7 Merge branch \(aq2017.7\(aq into yaml
  191523. .IP \(bu 2
  191524. da15658304 remove modify yaml constructor
  191525. .UNINDENT
  191526. .IP \(bu 2
  191527. \fBPR\fP \fI\%#43566\fP: (\fI\%damon\-atkins\fP) 2017.7 update salt.utils.files.safe_filepath func
  191528. @ \fI2017\-09\-25 13:58:29 UTC\fP
  191529. .INDENT 2.0
  191530. .IP \(bu 2
  191531. b5beec16e8 Merge pull request \fI\%#43566\fP from damon\-atkins/2017.7_update_safe_filename_func
  191532. .IP \(bu 2
  191533. c7a652784a remove blank line at end of file
  191534. .IP \(bu 2
  191535. e97651d49b Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191536. .IP \(bu 2
  191537. 3b4c1bbf7f Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191538. .IP \(bu 2
  191539. 4c88c80ef9 Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191540. .IP \(bu 2
  191541. 4171d11838 utils.files.safe_filepath add support to override the os default directory separator
  191542. .UNINDENT
  191543. .IP \(bu 2
  191544. \fBISSUE\fP \fI\%#43711\fP: (\fI\%wedge\-jarrad\fP) fcontext_get_policy emits command error if policy doesn\(aqt exist (refs: \fI\%#43712\fP)
  191545. .IP \(bu 2
  191546. \fBPR\fP \fI\%#43712\fP: (\fI\%wedge\-jarrad\fP) Ignore retcode on call to grep in selinux.py module
  191547. @ \fI2017\-09\-25 13:56:17 UTC\fP
  191548. .INDENT 2.0
  191549. .IP \(bu 2
  191550. 3bb337cf6a Merge pull request \fI\%#43712\fP from wedge\-jarrad/fix\-43711
  191551. .IP \(bu 2
  191552. 96c1ef48e6 Ignore retcode on call to grep in selinux.py module
  191553. .UNINDENT
  191554. .IP \(bu 2
  191555. \fBISSUE\fP \fI\%#43659\fP: (\fI\%gaborn57\fP) unable to retrieve pillar data in postgres db (refs: \fI\%#43716\fP)
  191556. .IP \(bu 2
  191557. \fBPR\fP \fI\%#43716\fP: (\fI\%gaborn57\fP) Corrected custom port handling
  191558. @ \fI2017\-09\-25 13:44:58 UTC\fP
  191559. .INDENT 2.0
  191560. .IP \(bu 2
  191561. 5b7411e335 Merge pull request \fI\%#43716\fP from gaborn57/2017.7
  191562. .IP \(bu 2
  191563. 78137c0860 Corrected custom port handling
  191564. .UNINDENT
  191565. .IP \(bu 2
  191566. \fBPR\fP \fI\%#43700\fP: (\fI\%rklaren\fP) Ensure salt\-cloud with libvirt provider does not write low level errors to stderr
  191567. @ \fI2017\-09\-25 01:47:25 UTC\fP
  191568. .INDENT 2.0
  191569. .IP \(bu 2
  191570. \fBPR\fP \fI\%#43684\fP: (\fI\%rklaren\fP) salt\-cloud libvirt updates (refs: \fI\%#43700\fP)
  191571. .IP \(bu 2
  191572. 6bbd50c453 Merge pull request \fI\%#43700\fP from rklaren/fix\-libvirt\-stderr\-spam
  191573. .IP \(bu 2
  191574. 88530c4cb6 Lint fixes
  191575. .IP \(bu 2
  191576. 235bec492e salt\-cloud + libvirt: Mention Fedora 26 support
  191577. .IP \(bu 2
  191578. 9aecf5f847 Remove stderr spam when using salt\-cloud with libvirt
  191579. .UNINDENT
  191580. .IP \(bu 2
  191581. \fBPR\fP \fI\%#43702\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191582. @ \fI2017\-09\-25 01:26:20 UTC\fP
  191583. .INDENT 2.0
  191584. .IP \(bu 2
  191585. 437ac03801 Merge pull request \fI\%#43702\fP from rallytime/merge\-2017.7
  191586. .IP \(bu 2
  191587. 132b1b343b Merge branch \(aq2017.7\(aq into merge\-2017.7
  191588. .UNINDENT
  191589. .IP \(bu 2
  191590. \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)
  191591. .IP \(bu 2
  191592. \fBPR\fP \fI\%#43681\fP: (\fI\%terminalmage\fP) Backport the non\-fileclient changes from PR 43518 to 2017.7
  191593. @ \fI2017\-09\-22 19:27:25 UTC\fP
  191594. .INDENT 2.0
  191595. .IP \(bu 2
  191596. \fBPR\fP \fI\%#43518\fP: (\fI\%terminalmage\fP) Reduce unnecessary file downloading in archive/file states (refs: \fI\%#43681\fP)
  191597. .IP \(bu 2
  191598. 47cd8723c6 Merge pull request \fI\%#43681\fP from terminalmage/issue38971\-2017.7
  191599. .IP \(bu 2
  191600. 91edf865e2 Merge branch \(aq2017.7\(aq into issue38971\-2017.7
  191601. .IP \(bu 2
  191602. 84f34c93be Backport the non\-fileclient changes from PR 43518 to 2017.7
  191603. .UNINDENT
  191604. .IP \(bu 2
  191605. \fBISSUE\fP \fI\%#43396\fP: (\fI\%mkurtak\fP) yumpkg pkg.installed slowed down due to wildcard namig support (refs: \fI\%#43687\fP)
  191606. .IP \(bu 2
  191607. \fBPR\fP \fI\%#43687\fP: (\fI\%mkurtak\fP) yumpkg.py: install calls list_repo_pkgs only if wildcard is used in pkg name
  191608. @ \fI2017\-09\-22 19:23:18 UTC\fP
  191609. .INDENT 2.0
  191610. .IP \(bu 2
  191611. 0a1c5185f5 Merge pull request \fI\%#43687\fP from mkurtak/fix\-43396
  191612. .IP \(bu 2
  191613. b1e64b11fb yumpkg.py: install calls list_repo_pkgs only if wildcard in pkg name is used
  191614. .UNINDENT
  191615. .IP \(bu 2
  191616. \fBISSUE\fP \fI\%#43124\fP: (\fI\%UtahDave\fP) publisher_acl with regex on username not working and has no documentation (refs: \fI\%#43467\fP)
  191617. .IP \(bu 2
  191618. \fBPR\fP \fI\%#43467\fP: (\fI\%DmitryKuzmenko\fP) Bugs/43124 users regex
  191619. @ \fI2017\-09\-22 19:21:09 UTC\fP
  191620. .INDENT 2.0
  191621. .IP \(bu 2
  191622. 3a79549af4 Merge pull request \fI\%#43467\fP from DSRCorporation/bugs/43124_users_regex
  191623. .IP \(bu 2
  191624. 14bf2dd8ff Support regex in publisher_acl.
  191625. .IP \(bu 2
  191626. 9fe32f8b6e Regex support for user names in external_auth config.
  191627. .UNINDENT
  191628. .IP \(bu 2
  191629. \fBISSUE\fP \fI\%#43381\fP: (\fI\%V3XATI0N\fP) Sharing minion data cache causes false errors in returns (refs: \fI\%#43670\fP)
  191630. .IP \(bu 2
  191631. \fBPR\fP \fI\%#43670\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fIlist\fP and \fIcontains\fP redis cache logic.
  191632. @ \fI2017\-09\-22 17:56:58 UTC\fP
  191633. .INDENT 2.0
  191634. .IP \(bu 2
  191635. 0e86266b93 Merge pull request \fI\%#43670\fP from DSRCorporation/bugs/43381_redis_cache_fix
  191636. .IP \(bu 2
  191637. 1c979d5809 Update redis cache \fIcontains\fP logic to use more efficient \fIsismember\fP\&.
  191638. .IP \(bu 2
  191639. 039d236948 Fixed \fIlist\fP and \fIcontains\fP redis cache logic.
  191640. .INDENT 2.0
  191641. .INDENT 3.5
  191642. .INDENT 0.0
  191643. .IP \(bu 2
  191644. 6e5cf65d65 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191645. .IP \(bu 2
  191646. f46c858f25 Merge pull request \fI\%#43648\fP from rallytime/handle\-boto\-vpc\-errors
  191647. .INDENT 2.0
  191648. .IP \(bu 2
  191649. 54842b5012 Handle VPC/Subnet ID not found errors in boto_vpc module
  191650. .UNINDENT
  191651. .UNINDENT
  191652. .UNINDENT
  191653. .UNINDENT
  191654. .UNINDENT
  191655. .IP \(bu 2
  191656. \fBPR\fP \fI\%#43697\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191657. @ \fI2017\-09\-22 17:31:09 UTC\fP
  191658. .INDENT 2.0
  191659. .IP \(bu 2
  191660. aa47da35dd Merge pull request \fI\%#43697\fP from rallytime/merge\-2017.7
  191661. .IP \(bu 2
  191662. cbae45bec4 Lint: Remove extra line at end of file
  191663. .IP \(bu 2
  191664. fca4e5563a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191665. .IP \(bu 2
  191666. 9dba34aa06 Merge pull request \fI\%#43575\fP from akissa/fix\-csr\-not\-recreated\-if\-key\-changes
  191667. .INDENT 2.0
  191668. .IP \(bu 2
  191669. b1b4dafd39 Fix CSR not recreated if key changes
  191670. .UNINDENT
  191671. .IP \(bu 2
  191672. 1d4fa48209 Merge pull request \fI\%#43672\fP from rallytime/bp\-43415
  191673. .INDENT 2.0
  191674. .IP \(bu 2
  191675. 3fb42bc238 Fix env_order in state.py
  191676. .UNINDENT
  191677. .IP \(bu 2
  191678. ff832ee607 Merge pull request \fI\%#43673\fP from rallytime/bp\-43652
  191679. .INDENT 2.0
  191680. .IP \(bu 2
  191681. d91c47c6f0 Salt Repo has Deb 9 and 8
  191682. .UNINDENT
  191683. .IP \(bu 2
  191684. 365cb9fba8 Merge pull request \fI\%#43677\fP from terminalmage/runners\-docs\-2016.11
  191685. .INDENT 2.0
  191686. .IP \(bu 2
  191687. 2fd88e94fa Fix RST headers for runners (2016.11 branch)
  191688. .UNINDENT
  191689. .IP \(bu 2
  191690. be38239e5d Merge pull request \fI\%#43534\fP from twangboy/win_fix_pkg.install_2016.11
  191691. .INDENT 2.0
  191692. .IP \(bu 2
  191693. 1546c1ca04 Add posix=False to call to salt.utils.shlex_split
  191694. .UNINDENT
  191695. .IP \(bu 2
  191696. 0d3fd3d374 Merge pull request \fI\%#43661\fP from moio/2016.11\-multiprocessing\-doc\-fix
  191697. .INDENT 2.0
  191698. .IP \(bu 2
  191699. 625eabb83f multiprocessing minion option: documentation fixes
  191700. .UNINDENT
  191701. .IP \(bu 2
  191702. 6b4516c025 Merge pull request \fI\%#43646\fP from brejoc/2016.11.4\-pidfile\-tests
  191703. .INDENT 2.0
  191704. .IP \(bu 2
  191705. 96f39a420b Fixed linting
  191706. .IP \(bu 2
  191707. 08fba98735 Fixed several issues with the test
  191708. .IP \(bu 2
  191709. 3a089e450f Added tests for pid\-file deletion in DaemonMixIn
  191710. .UNINDENT
  191711. .IP \(bu 2
  191712. cfb1625741 Merge pull request \fI\%#43591\fP from rallytime/merge\-2016.11
  191713. .INDENT 2.0
  191714. .IP \(bu 2
  191715. 57b9d642c2 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  191716. .INDENT 2.0
  191717. .IP \(bu 2
  191718. e83421694f Merge pull request \fI\%#43550\fP from twangboy/osx_fix_preinstall_2016.11.8
  191719. .INDENT 2.0
  191720. .IP \(bu 2
  191721. 1b0a4d39d2 Fix logic in \fI/etc/paths.d/salt\fP detection
  191722. .UNINDENT
  191723. .IP \(bu 2
  191724. a648f75949 Merge pull request \fI\%#43508\fP from rallytime/bp\-43333
  191725. .INDENT 2.0
  191726. .IP \(bu 2
  191727. d4981a2717 Update doco
  191728. .IP \(bu 2
  191729. a7c8b9e048 Update win_pkg.py
  191730. .IP \(bu 2
  191731. 1d6dc6fb72 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (#2)
  191732. .UNINDENT
  191733. .IP \(bu 2
  191734. e7009877bc Merge pull request \fI\%#43434\fP from rallytime/2016.11.8\-release\-notes
  191735. .INDENT 2.0
  191736. .IP \(bu 2
  191737. 68f529ee5e Add 2016.11.8 release notes
  191738. .UNINDENT
  191739. .UNINDENT
  191740. .UNINDENT
  191741. .IP \(bu 2
  191742. 8671b91f62 Merge pull request \fI\%#43572\fP from vutny/fix\-salt\-cloud\-list\-min\-instance\-set
  191743. .INDENT 2.0
  191744. .IP \(bu 2
  191745. 21966e7ce8 cloud.action: list_nodes_min returns all instances
  191746. .UNINDENT
  191747. .UNINDENT
  191748. .IP \(bu 2
  191749. \fBPR\fP \fI\%#43314\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_verify\fP for Windows
  191750. @ \fI2017\-09\-21 22:26:13 UTC\fP
  191751. .INDENT 2.0
  191752. .IP \(bu 2
  191753. e6dc4d64df Merge pull request \fI\%#43314\fP from twangboy/win_fix_unit.utils.test_verify
  191754. .IP \(bu 2
  191755. 9ada7f626c Merge branch \(aq2017.7\(aq into win_fix_unit.utils.test_verify
  191756. .IP \(bu 2
  191757. c0dc3f73ef Use sys.platform instead of salt.utils to detect Windows
  191758. .IP \(bu 2
  191759. e496d28cbf Fix \fIunit.utils.test_verify\fP for Windows
  191760. .UNINDENT
  191761. .IP \(bu 2
  191762. \fBISSUE\fP \fI\%#43599\fP: (\fI\%vernondcole\fP) Incorrect default for salt.cache.Cache() if opts does not define "cache" (refs: \fI\%#43680\fP)
  191763. .IP \(bu 2
  191764. \fBPR\fP \fI\%#43680\fP: (\fI\%vernondcole\fP) correct default value for salt.cache.Cache
  191765. @ \fI2017\-09\-21 20:09:36 UTC\fP
  191766. .INDENT 2.0
  191767. .IP \(bu 2
  191768. ec34df2c27 Merge pull request \fI\%#43680\fP from vernondcole/fix\-salt.cache.Cache\-default
  191769. .IP \(bu 2
  191770. 292f8c79b8 correct default value for salt.cache.Cache
  191771. .UNINDENT
  191772. .IP \(bu 2
  191773. \fBPR\fP \fI\%#43530\fP: (\fI\%twangboy\fP) Fixes removal of double\-quotes by shlex_split in winrepo
  191774. @ \fI2017\-09\-21 18:04:48 UTC\fP
  191775. .INDENT 2.0
  191776. .IP \(bu 2
  191777. 99d9d784b1 Merge pull request \fI\%#43530\fP from twangboy/win_fix_pkg.install
  191778. .IP \(bu 2
  191779. 7f59119f95 Merge branch \(aq2017.7\(aq into win_fix_pkg.install
  191780. .IP \(bu 2
  191781. f146399f7a Use posix=False for shlex.split
  191782. .UNINDENT
  191783. .IP \(bu 2
  191784. \fBPR\fP \fI\%#43671\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.2 to 2017.7
  191785. @ \fI2017\-09\-21 16:39:49 UTC\fP
  191786. .INDENT 2.0
  191787. .IP \(bu 2
  191788. 12b5e62d81 Merge pull request \fI\%#43671\fP from rallytime/merge\-2017.7
  191789. .IP \(bu 2
  191790. a401166bd5 Merge branch \(aq2017.7.2\(aq into \(aq2017.7\(aq
  191791. .UNINDENT
  191792. .IP \(bu 2
  191793. \fBPR\fP \fI\%#43676\fP: (\fI\%terminalmage\fP) Fix RST headers for runners (2017.7 branch)
  191794. @ \fI2017\-09\-21 16:36:21 UTC\fP
  191795. .INDENT 2.0
  191796. .IP \(bu 2
  191797. e3a2fbc2a3 Merge pull request \fI\%#43676\fP from terminalmage/runners\-docs\-2017.7
  191798. .IP \(bu 2
  191799. 9b74634b23 Fix badly\-formatted RST in mattermost runner docstring
  191800. .IP \(bu 2
  191801. c0a79c70a4 Fix RST headers for runners (2017.7 branch)
  191802. .UNINDENT
  191803. .IP \(bu 2
  191804. \fBPR\fP \fI\%#43235\fP: (\fI\%brejoc\fP) Improve delete_deployment handling
  191805. @ \fI2017\-09\-20 21:33:33 UTC\fP
  191806. .INDENT 2.0
  191807. .IP \(bu 2
  191808. d02953ce6a Merge pull request \fI\%#43235\fP from brejoc/improve\-async\-operation\-handling\-in\-kubernetes\-module
  191809. .IP \(bu 2
  191810. 4e8da3045f Fixed logic for windows fallback
  191811. .IP \(bu 2
  191812. 3b1cb884b9 Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191813. .IP \(bu 2
  191814. d1b5ec098c Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191815. .IP \(bu 2
  191816. 35cf69bc50 Moved exception Salt core
  191817. .IP \(bu 2
  191818. 7431ec64e3 Removed unused sys import
  191819. .IP \(bu 2
  191820. 0c71da95f6 Using salt method to identify MS Windows, single instead of double quotes
  191821. .IP \(bu 2
  191822. 20619b24c4 Fixed test for delete_deployment
  191823. .IP \(bu 2
  191824. 91076bbafa Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191825. .IP \(bu 2
  191826. 7b600e2832 Added pylint\-disable statements and import for salt.ext.six.moves.range
  191827. .IP \(bu 2
  191828. 99fe138325 Code styling and added log message for timeout
  191829. .IP \(bu 2
  191830. dcd8d4f639 Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191831. .IP \(bu 2
  191832. 702a058c38 Fixed linting
  191833. .IP \(bu 2
  191834. 3fe623778e Added Windows fallback
  191835. .IP \(bu 2
  191836. 52b1cb8147 Compatibility with Python3.6
  191837. .IP \(bu 2
  191838. 767af9bb4f Added timeout for checking the deployment
  191839. .IP \(bu 2
  191840. 32d7d34fe5 First simple draft for the deletion verification
  191841. .UNINDENT
  191842. .IP \(bu 2
  191843. \fBPR\fP \fI\%#43554\fP: (\fI\%twangboy\fP) Win fix chocolatey
  191844. @ \fI2017\-09\-20 16:06:18 UTC\fP
  191845. .INDENT 2.0
  191846. .IP \(bu 2
  191847. 73cb0c27b5 Merge pull request \fI\%#43554\fP from twangboy/win_fix_chocolatey
  191848. .IP \(bu 2
  191849. e04acb6216 Merge branch \(aq2017.7\(aq into win_fix_chocolatey
  191850. .IP \(bu 2
  191851. 56be5c35eb Improve logic for handling chocolatey states
  191852. .IP \(bu 2
  191853. bcbf7b4e68 Add logic for test=True
  191854. .UNINDENT
  191855. .IP \(bu 2
  191856. \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)
  191857. .IP \(bu 2
  191858. \fBPR\fP \fI\%#43625\fP: (\fI\%gtmanfred\fP) results and columns are lists for mysql returns
  191859. @ \fI2017\-09\-20 15:42:59 UTC\fP
  191860. .INDENT 2.0
  191861. .IP \(bu 2
  191862. ed7eeaaafb Merge pull request \fI\%#43625\fP from gtmanfred/2017.7
  191863. .IP \(bu 2
  191864. f84b50a06b results and columns are lists for mysql returns
  191865. .UNINDENT
  191866. .IP \(bu 2
  191867. \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)
  191868. .IP \(bu 2
  191869. \fBPR\fP \fI\%#43587\fP: (\fI\%rallytime\fP) Add reason to linux_acl state loading failure
  191870. @ \fI2017\-09\-19 16:26:51 UTC\fP
  191871. .INDENT 2.0
  191872. .IP \(bu 2
  191873. \fBPR\fP \fI\%#43580\fP: (\fI\%garethgreenaway\fP) Updating ACL module and state module documentation (refs: \fI\%#43587\fP)
  191874. .IP \(bu 2
  191875. 1bda4832ef Merge pull request \fI\%#43587\fP from rallytime/fix\-virtual
  191876. .IP \(bu 2
  191877. e5297e3869 Add reason to linux_acl state loading failure
  191878. .UNINDENT
  191879. .IP \(bu 2
  191880. \fBPR\fP \fI\%#43584\fP: (\fI\%cachedout\fP) Enhance engines docs
  191881. @ \fI2017\-09\-18 20:40:57 UTC\fP
  191882. .INDENT 2.0
  191883. .IP \(bu 2
  191884. 2e19533e3c Merge pull request \fI\%#43584\fP from cachedout/engines_doc_clarification
  191885. .IP \(bu 2
  191886. 634536b0ff Merge branch \(aq2017.7\(aq into engines_doc_clarification
  191887. .IP \(bu 2
  191888. 1a619708c1 Enhance engines docs
  191889. .UNINDENT
  191890. .IP \(bu 2
  191891. \fBPR\fP \fI\%#43519\fP: (\fI\%terminalmage\fP) Fix incorrect handling of pkg virtual and os_family grain
  191892. @ \fI2017\-09\-18 20:35:01 UTC\fP
  191893. .INDENT 2.0
  191894. .IP \(bu 2
  191895. 50b134ef4c Merge pull request \fI\%#43519\fP from terminalmage/fix\-aptpkg
  191896. .IP \(bu 2
  191897. 0e3c447567 Fix incorrect handling of pkg virtual and os_family grain
  191898. .UNINDENT
  191899. .IP \(bu 2
  191900. \fBPR\fP \fI\%#43520\fP: (\fI\%clan\fP) _search_name is \(aq\(aq if acl type is other
  191901. @ \fI2017\-09\-18 20:33:51 UTC\fP
  191902. .INDENT 2.0
  191903. .IP \(bu 2
  191904. dd953f36ae Merge pull request \fI\%#43520\fP from clan/acl
  191905. .IP \(bu 2
  191906. 54216177c1 _search_name is \(aq\(aq if acl type is other
  191907. .UNINDENT
  191908. .IP \(bu 2
  191909. \fBPR\fP \fI\%#43561\fP: (\fI\%wedge\-jarrad\fP) Clean up doc formatting in selinux state & module
  191910. @ \fI2017\-09\-18 20:28:47 UTC\fP
  191911. .INDENT 2.0
  191912. .IP \(bu 2
  191913. ad9663a7fc Merge pull request \fI\%#43561\fP from wedge\-jarrad/selinux\-doc\-cleanup
  191914. .IP \(bu 2
  191915. 1bd263cd51 Clean up doc formatting in selinux state & module
  191916. .UNINDENT
  191917. .IP \(bu 2
  191918. \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)
  191919. .IP \(bu 2
  191920. \fBPR\fP \fI\%#43580\fP: (\fI\%garethgreenaway\fP) Updating ACL module and state module documentation (refs: \fI\%#43587\fP)
  191921. @ \fI2017\-09\-18 20:11:26 UTC\fP
  191922. .INDENT 2.0
  191923. .IP \(bu 2
  191924. cc3d9c1a01 Merge pull request \fI\%#43580\fP from garethgreenaway/43560_update_linux_acl_documentation
  191925. .IP \(bu 2
  191926. e63fae4c91 Merge branch \(aq2017.7\(aq into 43560_update_linux_acl_documentation
  191927. .UNINDENT
  191928. .IP \(bu 2
  191929. \fBPR\fP \fI\%#43523\fP: (\fI\%skizunov\fP) Add back lost logic for multifunc_ordered
  191930. @ \fI2017\-09\-18 17:46:16 UTC\fP
  191931. .INDENT 2.0
  191932. .IP \(bu 2
  191933. \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)
  191934. .IP \(bu 2
  191935. bf7b23316f Merge pull request \fI\%#43523\fP from skizunov/develop2
  191936. .IP \(bu 2
  191937. fb579321a9 Add back lost logic for multifunc_ordered
  191938. .INDENT 2.0
  191939. .IP \(bu 2
  191940. 117a0ddbbc Updating the documentation to call out the requirement for the getfacl and setfacl binaries
  191941. .INDENT 2.0
  191942. .INDENT 3.5
  191943. .INDENT 0.0
  191944. .IP \(bu 2
  191945. 49f25b9f19 Lint
  191946. .IP \(bu 2
  191947. 31d17c0124 Fix typo found by @s0undt3ch
  191948. .IP \(bu 2
  191949. 5dba74d2cb Fix to module.run [WIP]
  191950. .UNINDENT
  191951. .UNINDENT
  191952. .UNINDENT
  191953. .UNINDENT
  191954. .UNINDENT
  191955. .IP \(bu 2
  191956. \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)
  191957. .IP \(bu 2
  191958. \fBPR\fP \fI\%#43526\fP: (\fI\%DmitryKuzmenko\fP) Forward events to all masters syndic connected to
  191959. @ \fI2017\-09\-18 16:54:46 UTC\fP
  191960. .INDENT 2.0
  191961. .IP \(bu 2
  191962. e29efecf4f Merge pull request \fI\%#43526\fP from DSRCorporation/bugs/43447_syndic_events_forwarding
  191963. .IP \(bu 2
  191964. 64d6109654 Merge branch \(aq2017.7\(aq into bugs/43447_syndic_events_forwarding
  191965. .IP \(bu 2
  191966. 3b2a529385 Merge branch \(aq2017.7\(aq into bugs/43447_syndic_events_forwarding
  191967. .IP \(bu 2
  191968. 0e4a744d95 Forward events to all masters syndic connected to.
  191969. .UNINDENT
  191970. .IP \(bu 2
  191971. \fBISSUE\fP \fI\%#43077\fP: (\fI\%Manoj2087\fP) Issue with deleting key via wheel (refs: \fI\%#43330\fP)
  191972. .IP \(bu 2
  191973. \fBPR\fP \fI\%#43330\fP: (\fI\%terminalmage\fP) Fix reactor regression + unify reactor config schema
  191974. @ \fI2017\-09\-18 16:46:11 UTC\fP
  191975. .INDENT 2.0
  191976. .IP \(bu 2
  191977. 56b671e087 Merge pull request \fI\%#43330\fP from terminalmage/issue43077
  191978. .IP \(bu 2
  191979. a7b4e1f782 Simplify client logic
  191980. .IP \(bu 2
  191981. b85c8510c7 Improve the reactor documentation
  191982. .IP \(bu 2
  191983. 20f6f3cc39 Include a better example for reactor in master conf file
  191984. .IP \(bu 2
  191985. 4243a2211d Rewrite the reactor unit tests
  191986. .IP \(bu 2
  191987. 9db3f5ae6d Unify reactor configuration, fix caller reactors
  191988. .IP \(bu 2
  191989. 34b6c3b65f Un\-deprecate passing kwargs outside of \(aqkwarg\(aq param
  191990. .UNINDENT
  191991. .IP \(bu 2
  191992. \fBISSUE\fP \fI\%#33793\fP: (\fI\%mstarostik\fP) states.ssh_auth adds bogus newline before newly added keys (refs: \fI\%#43483\fP)
  191993. .IP \(bu 2
  191994. \fBPR\fP \fI\%#43505\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43483\fP to 2017.7
  191995. @ \fI2017\-09\-15 21:22:12 UTC\fP
  191996. .INDENT 2.0
  191997. .IP \(bu 2
  191998. \fBPR\fP \fI\%#43483\fP: (\fI\%3add3287\fP) Handle bogus newline before newly added keys (refs: \fI\%#43505\fP)
  191999. .IP \(bu 2
  192000. 078d5d17de Merge pull request \fI\%#43505\fP from rallytime/bp\-43483
  192001. .IP \(bu 2
  192002. c68dd5b8a4 Lint: fix spacing
  192003. .IP \(bu 2
  192004. 406f61ac9a Fix indentation from tabs to spaces
  192005. .IP \(bu 2
  192006. 923ec62771 Copy paste typo
  192007. .IP \(bu 2
  192008. 6f6619242f Fix checking for newline on end of file by properly checking the last byte of the file if the file is non empty.
  192009. .UNINDENT
  192010. .IP \(bu 2
  192011. \fBISSUE\fP \fI\%#43464\fP: (\fI\%psagers\fP) acme.cert state: IOError on failure to create a new certificate (refs: \fI\%#43465\fP)
  192012. .IP \(bu 2
  192013. \fBPR\fP \fI\%#43491\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43465\fP to 2017.7
  192014. @ \fI2017\-09\-15 18:24:47 UTC\fP
  192015. .INDENT 2.0
  192016. .IP \(bu 2
  192017. \fBPR\fP \fI\%#43465\fP: (\fI\%psagers\fP) acme.cert: avoid IOError on failure. (refs: \fI\%#43491\fP)
  192018. .IP \(bu 2
  192019. a6df3f2acc Merge pull request \fI\%#43491\fP from rallytime/bp\-43465
  192020. .IP \(bu 2
  192021. 3118faca0a acme.cert: avoid IOError on failure.
  192022. .UNINDENT
  192023. .IP \(bu 2
  192024. \fBPR\fP \fI\%#43492\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192025. @ \fI2017\-09\-15 18:23:49 UTC\fP
  192026. .INDENT 2.0
  192027. .IP \(bu 2
  192028. 3620c15c9a Merge pull request \fI\%#43492\fP from rallytime/merge\-2017.7
  192029. .IP \(bu 2
  192030. 4251ce5a27 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192031. .INDENT 2.0
  192032. .IP \(bu 2
  192033. f2b86fa2db Merge pull request \fI\%#43461\fP from twangboy/win_norestart
  192034. .INDENT 2.0
  192035. .IP \(bu 2
  192036. 2d269d1a76 Change all comment markers to \(aq#\(aq
  192037. .IP \(bu 2
  192038. d80aea16cb Handle ErrorCodes returned by VCRedist installer
  192039. .IP \(bu 2
  192040. fb31e9a530 Add /norestart switch to vcredist install
  192041. .UNINDENT
  192042. .IP \(bu 2
  192043. 90e8ca9c36 Merge pull request \fI\%#43366\fP from brejoc/2016.11.pidfile\-fix
  192044. .INDENT 2.0
  192045. .IP \(bu 2
  192046. 6e3eb76c79 Removed unused format argument
  192047. .IP \(bu 2
  192048. daf4948b3d Catching error when PIDfile cannot be deleted
  192049. .UNINDENT
  192050. .IP \(bu 2
  192051. a6c458607a Merge pull request \fI\%#43442\fP from garethgreenaway/43386_2016_11_schedule_kwargs_pub
  192052. .INDENT 2.0
  192053. .IP \(bu 2
  192054. e637ecbe86 Merge branch \(aq2016.11\(aq into 43386_2016_11_schedule_kwargs_pub
  192055. .IP \(bu 2
  192056. 6114df8dc3 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  192057. .UNINDENT
  192058. .IP \(bu 2
  192059. 3c429299f9 Merge pull request \fI\%#43456\fP from rallytime/43445_follow_up
  192060. .INDENT 2.0
  192061. .IP \(bu 2
  192062. 35c1d8898d Add Neon to version list
  192063. .UNINDENT
  192064. .IP \(bu 2
  192065. 6db7a721c0 Merge pull request \fI\%#43441\fP from meaksh/2016.11\-salt\-bash\-completion\-fix
  192066. .INDENT 2.0
  192067. .IP \(bu 2
  192068. be4f26ab21 Use $HOME to get the user home directory instead using \(aq~\(aq char
  192069. .UNINDENT
  192070. .IP \(bu 2
  192071. 05fff44a50 Merge pull request \fI\%#43445\fP from rallytime/bump\-deprecation\-warning
  192072. .INDENT 2.0
  192073. .IP \(bu 2
  192074. c91cd1c6d9 Bump deprecation warning for boto_vpc.describe_route_table
  192075. .UNINDENT
  192076. .IP \(bu 2
  192077. c57dc5f0e3 Merge pull request \fI\%#43432\fP from rallytime/bp\-43419
  192078. .INDENT 2.0
  192079. .IP \(bu 2
  192080. c471a29527 make cache dirs when spm starts
  192081. .UNINDENT
  192082. .UNINDENT
  192083. .UNINDENT
  192084. .IP \(bu 2
  192085. \fBISSUE\fP \fI\%#43479\fP: (\fI\%haam3r\fP) Mattermost runner failing to retrieve config values due to unavailable config runner (refs: \fI\%#43513\fP)
  192086. .IP \(bu 2
  192087. \fBPR\fP \fI\%#43513\fP: (\fI\%haam3r\fP) Issue \fI\%#43479\fP No runners.config in 2017.7 branch
  192088. @ \fI2017\-09\-15 14:58:27 UTC\fP
  192089. .INDENT 2.0
  192090. .IP \(bu 2
  192091. 8a90c7059b Merge pull request \fI\%#43513\fP from haam3r/2017.7
  192092. .IP \(bu 2
  192093. 58f7d051c9 Issue \fI\%#43479\fP No runners.config in 2017.7 branch
  192094. .UNINDENT
  192095. .IP \(bu 2
  192096. \fBISSUE\fP \fI\%#42926\fP: (\fI\%nixjdm\fP) network.system not setting hostname in hosts file, preventing sudo. (refs: \fI\%#43431\fP)
  192097. .IP \(bu 2
  192098. \fBPR\fP \fI\%#43431\fP: (\fI\%mattLLVW\fP) Fix /etc/hosts not being modified when hostname is changed
  192099. @ \fI2017\-09\-13 18:35:55 UTC\fP
  192100. .INDENT 2.0
  192101. .IP \(bu 2
  192102. c3d9e2d9b2 Merge pull request \fI\%#43431\fP from mattLLVW/fix\-hosts\-deb
  192103. .IP \(bu 2
  192104. c6320b1dff Merge branch \(aq2017.7\(aq into fix\-hosts\-deb
  192105. .IP \(bu 2
  192106. a3b2e19149 Fix /etc/hosts not being modified when hostname is changed
  192107. .UNINDENT
  192108. .IP \(bu 2
  192109. \fBPR\fP \fI\%#43403\fP: (\fI\%twangboy\fP) Proper timestamp conversion in \fIredis.lastsave\fP
  192110. @ \fI2017\-09\-12 21:18:06 UTC\fP
  192111. .INDENT 2.0
  192112. .IP \(bu 2
  192113. a09f289fbb Merge pull request \fI\%#43403\fP from twangboy/win_fix_redismod
  192114. .IP \(bu 2
  192115. f6da23e1aa Properly handle timestamp conversion
  192116. .UNINDENT
  192117. .IP \(bu 2
  192118. \fBPR\fP \fI\%#43463\fP: (\fI\%twangboy\fP) Add \fI/norestart\fP switch to vcredist installer
  192119. @ \fI2017\-09\-12 20:29:27 UTC\fP
  192120. .INDENT 2.0
  192121. .IP \(bu 2
  192122. 0eaa5acb72 Merge pull request \fI\%#43463\fP from twangboy/win_norestart_2017.7
  192123. .IP \(bu 2
  192124. 6984b8fd60 Add /norestart to vcredist installer
  192125. .UNINDENT
  192126. .IP \(bu 2
  192127. \fBISSUE\fP \fI\%#43386\fP: (\fI\%rajvidhimar\fP) Scheduler\(aqs job_kwargs not working as expected. (refs: \fI\%#43443\fP, \fI\%#43442\fP)
  192128. .IP \(bu 2
  192129. \fBPR\fP \fI\%#43443\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to scheduler __pub values in kwargs
  192130. @ \fI2017\-09\-12 18:14:46 UTC\fP
  192131. .INDENT 2.0
  192132. .IP \(bu 2
  192133. 2fc237a806 Merge pull request \fI\%#43443\fP from garethgreenaway/43386_2017_7_schedule_kwargs_pub
  192134. .IP \(bu 2
  192135. a29a9855a6 Fixing typo.
  192136. .IP \(bu 2
  192137. 2681b7d3fa Merge branch \(aq2017.7\(aq into 43386_2017_7_schedule_kwargs_pub
  192138. .UNINDENT
  192139. .IP \(bu 2
  192140. \fBISSUE\fP \fI\%#39775\fP: (\fI\%mirceaulinic\fP) Proxy \fImine_interval\fP config ignored (refs: \fI\%#41547\fP)
  192141. .IP \(bu 2
  192142. \fBPR\fP \fI\%#41547\fP: (\fI\%mirceaulinic\fP) Override proxy minion opts with pillar data
  192143. @ \fI2017\-09\-11 21:47:51 UTC\fP
  192144. .INDENT 2.0
  192145. .IP \(bu 2
  192146. 5378ac7756 Merge pull request \fI\%#41547\fP from cloudflare/px_merge_pillar_opts
  192147. .IP \(bu 2
  192148. aad39ba665 Document the new opts
  192149. .IP \(bu 2
  192150. cdc0d9674a Allow disabling the mines details merge
  192151. .IP \(bu 2
  192152. 732b63b0b9 Merge mine details whenever possible
  192153. .IP \(bu 2
  192154. 96b31d5643 Override proxy opts with pillar data when required
  192155. .IP \(bu 2
  192156. fd499887f9 Define new proxy merge pillar in opts... opts
  192157. .IP \(bu 2
  192158. abab6fd91c Override minion opts with pillar data
  192159. .UNINDENT
  192160. .IP \(bu 2
  192161. \fBPR\fP \fI\%#41943\fP: (\fI\%twangboy\fP) Fix \fIunit.returners.test_local_cache\fP for Windows
  192162. @ \fI2017\-09\-11 21:34:03 UTC\fP
  192163. .INDENT 2.0
  192164. .IP \(bu 2
  192165. 08d102c869 Merge pull request \fI\%#41943\fP from twangboy/win_unit_test_local_cache
  192166. .IP \(bu 2
  192167. 3777b34572 Merge branch \(aq2017.7\(aq into win_unit_test_local_cache
  192168. .IP \(bu 2
  192169. 35b79ecde6 Remove \fIcur\fP variable, use time.time() in comparison
  192170. .IP \(bu 2
  192171. 9b61533b09 Get more accurate currnet time in local_cache
  192172. .IP \(bu 2
  192173. 844e3f65bc Fix unit tests for Windows
  192174. .UNINDENT
  192175. .IP \(bu 2
  192176. \fBPR\fP \fI\%#43424\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_hosts\fP for Windows
  192177. @ \fI2017\-09\-11 21:28:41 UTC\fP
  192178. .INDENT 2.0
  192179. .IP \(bu 2
  192180. 50ab79f0cb Merge pull request \fI\%#43424\fP from twangboy/win_unit_test_hosts
  192181. .IP \(bu 2
  192182. 90dcf8287c Fix \fIunit.modules.test_hosts\fP for Windows
  192183. .UNINDENT
  192184. .IP \(bu 2
  192185. \fBPR\fP \fI\%#42652\fP: (\fI\%skizunov\fP) Fix loader.py\(aqs raw_mod() to look in all module dirs
  192186. @ \fI2017\-09\-11 19:43:48 UTC\fP
  192187. .INDENT 2.0
  192188. .IP \(bu 2
  192189. 0f0ed5a093 Merge pull request \fI\%#42652\fP from skizunov/develop3
  192190. .IP \(bu 2
  192191. d82e406f15 Fix loader.py\(aqs raw_mod() to look in all module dirs
  192192. .UNINDENT
  192193. .IP \(bu 2
  192194. \fBPR\fP \fI\%#43438\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192195. @ \fI2017\-09\-11 18:33:39 UTC\fP
  192196. .INDENT 2.0
  192197. .IP \(bu 2
  192198. ca091bc8a4 Merge pull request \fI\%#43438\fP from rallytime/merge\-2017.7
  192199. .IP \(bu 2
  192200. ef7b4242c3 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192201. .INDENT 2.0
  192202. .IP \(bu 2
  192203. 57cccd75d0 Merge pull request \fI\%#43390\fP from aogier/43387\-genesis\-qemu
  192204. .INDENT 2.0
  192205. .IP \(bu 2
  192206. 496f14a7e7 forgot to mock the proper one
  192207. .IP \(bu 2
  192208. 51c7a1ba00 only check if static_qemu is_executable()
  192209. .IP \(bu 2
  192210. 70642e495d better qemu_static parameter mangle in deboostrap management, tests
  192211. .UNINDENT
  192212. .IP \(bu 2
  192213. 6106aec696 Merge pull request \fI\%#43356\fP from gtmanfred/2016.11
  192214. .INDENT 2.0
  192215. .IP \(bu 2
  192216. 3f19b247f3 Add handler.messages back in for test comparison
  192217. .IP \(bu 2
  192218. 9911b04208 fix test
  192219. .IP \(bu 2
  192220. 3c6ae99a77 never\-download got readded
  192221. .UNINDENT
  192222. .IP \(bu 2
  192223. e638fac54e Merge pull request \fI\%#43325\fP from doesitblend/salt\-mine\-doc\-fix
  192224. .INDENT 2.0
  192225. .IP \(bu 2
  192226. 1e94d0ac3a Lint: Remove trailing whitespace
  192227. .IP \(bu 2
  192228. 51af8f8757 Fix mine_interval phrasing in default file
  192229. .IP \(bu 2
  192230. ba0cdd4536 Fix phrasing for mine_interval description
  192231. .IP \(bu 2
  192232. 9ff03c2d43 Update Salt Mine documentation to show that the mine_interval option is configured in minutes.
  192233. .UNINDENT
  192234. .IP \(bu 2
  192235. fc587f784a Merge pull request \fI\%#43105\fP from aogier/43086\-no\-member
  192236. .INDENT 2.0
  192237. .IP \(bu 2
  192238. 5111cf8bad Merge branch \(aq2016.11\(aq into 43086\-no\-member
  192239. .UNINDENT
  192240. .IP \(bu 2
  192241. d97a680372 Merge pull request \fI\%#43333\fP from damon\-atkins/2016.11
  192242. .INDENT 2.0
  192243. .IP \(bu 2
  192244. 92de2bb498 Update doco
  192245. .IP \(bu 2
  192246. fc9c61d12e Update win_pkg.py
  192247. .IP \(bu 2
  192248. c91fc14704 Merge branch \(aq2016.11\(aq into 2016.11
  192249. .IP \(bu 2
  192250. cb3af2bbbd Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (#2)
  192251. .INDENT 2.0
  192252. .INDENT 3.5
  192253. .INDENT 0.0
  192254. .IP \(bu 2
  192255. 42a118ff56 fixed cmd composition and unified his making across module
  192256. .INDENT 2.0
  192257. .INDENT 3.5
  192258. .INDENT 0.0
  192259. .IP \(bu 2
  192260. 3fd59ed369 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  192261. .UNINDENT
  192262. .UNINDENT
  192263. .UNINDENT
  192264. .UNINDENT
  192265. .UNINDENT
  192266. .UNINDENT
  192267. .UNINDENT
  192268. .UNINDENT
  192269. .UNINDENT
  192270. .IP \(bu 2
  192271. \fBPR\fP \fI\%#43320\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_alternatives\fP for Windows
  192272. @ \fI2017\-09\-11 17:28:00 UTC\fP
  192273. .INDENT 2.0
  192274. .IP \(bu 2
  192275. a9592dd3e2 Merge pull request \fI\%#43320\fP from twangboy/win_fix_alternatives
  192276. .IP \(bu 2
  192277. a909813fa5 Remove unused import (lint)
  192278. .IP \(bu 2
  192279. 3ef8d714cb Fix unit tests to mock salt.utils.path.readlink
  192280. .IP \(bu 2
  192281. c0d81aa1ce Use salt.utils.path.readlink
  192282. .IP \(bu 2
  192283. 7c4460164b Fix alternatives for Windows
  192284. .UNINDENT
  192285. .IP \(bu 2
  192286. \fBPR\fP \fI\%#43363\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_ini_manage\fP for Windows
  192287. @ \fI2017\-09\-11 17:10:31 UTC\fP
  192288. .INDENT 2.0
  192289. .IP \(bu 2
  192290. 9b89e49846 Merge pull request \fI\%#43363\fP from twangboy/scratch_ini_tests
  192291. .IP \(bu 2
  192292. a94319a082 Make sure formatting of TEST_FILE_CONTENT matches original
  192293. .IP \(bu 2
  192294. 6263bc8983 Remove print statement
  192295. .IP \(bu 2
  192296. 79cd3831ae Fix empty value preserved test
  192297. .IP \(bu 2
  192298. 85997391f1 Is this handled the same on Linux and Windows
  192299. .UNINDENT
  192300. .IP \(bu 2
  192301. \fBPR\fP \fI\%#43421\fP: (\fI\%gtmanfred\fP) Revert "Reduce fileclient.get_file latency by merging _file_find and …
  192302. @ \fI2017\-09\-11 17:07:18 UTC\fP
  192303. .INDENT 2.0
  192304. .IP \(bu 2
  192305. 673ce387c1 Merge pull request \fI\%#43421\fP from gtmanfred/compat
  192306. .IP \(bu 2
  192307. f85bf8c18f Revert "Reduce fileclient.get_file latency by merging _file_find and _file_hash"
  192308. .UNINDENT
  192309. .IP \(bu 2
  192310. \fBISSUE\fP \fI\%#42165\fP: (\fI\%arount\fP) top_file_merging_strategy: merge does not works (refs: \fI\%#43415\fP)
  192311. .IP \(bu 2
  192312. \fBPR\fP \fI\%#43415\fP: (\fI\%mattLLVW\fP) Fix env_order in state.py (refs: \fI\%#43672\fP)
  192313. @ \fI2017\-09\-11 15:18:08 UTC\fP
  192314. .INDENT 2.0
  192315. .IP \(bu 2
  192316. 47d982fd37 Merge pull request \fI\%#43415\fP from mattLLVW/fix\-env\-order
  192317. .IP \(bu 2
  192318. f6313a1b2c Merge branch \(aq2017.7\(aq into fix\-env\-order
  192319. .IP \(bu 2
  192320. e93a962980 Fix env_order in state.py
  192321. .UNINDENT
  192322. .IP \(bu 2
  192323. \fBPR\fP \fI\%#43422\fP: (\fI\%twangboy\fP) Fix \fIunit.cloud.clouds.test_ec2\fP for Windows
  192324. @ \fI2017\-09\-11 15:17:20 UTC\fP
  192325. .INDENT 2.0
  192326. .IP \(bu 2
  192327. e89e23a32e Merge pull request \fI\%#43422\fP from twangboy/win_unit_cloud_ec2
  192328. .IP \(bu 2
  192329. 1379627334 Fix \fIunit.cloud.clouds.test_ec2\fP for Windows
  192330. .UNINDENT
  192331. .IP \(bu 2
  192332. \fBPR\fP \fI\%#43423\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_gem\fP for Windows
  192333. @ \fI2017\-09\-11 15:15:28 UTC\fP
  192334. .INDENT 2.0
  192335. .IP \(bu 2
  192336. 54f833ac59 Merge pull request \fI\%#43423\fP from twangboy/win_unit_test_gem
  192337. .IP \(bu 2
  192338. b2cea18d13 Fix \fIunit.modules.test_gem\fP for Windows
  192339. .UNINDENT
  192340. .IP \(bu 2
  192341. \fBPR\fP \fI\%#43419\fP: (\fI\%gtmanfred\fP) make cache dirs when spm starts (refs: \fI\%#43432\fP)
  192342. @ \fI2017\-09\-11 13:42:50 UTC\fP
  192343. .INDENT 2.0
  192344. .IP \(bu 2
  192345. b3116109e5 Merge pull request \fI\%#43419\fP from gtmanfred/2017.7
  192346. .IP \(bu 2
  192347. 58378866e5 make cache dirs when spm starts
  192348. .UNINDENT
  192349. .IP \(bu 2
  192350. \fBPR\fP \fI\%#43371\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192351. @ \fI2017\-09\-08 15:39:12 UTC\fP
  192352. .INDENT 2.0
  192353. .IP \(bu 2
  192354. 9b27473763 Merge pull request \fI\%#43371\fP from rallytime/merge\-2017.7
  192355. .IP \(bu 2
  192356. 7b07b58396 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192357. .INDENT 2.0
  192358. .IP \(bu 2
  192359. 0c986f5eba Merge pull request \fI\%#43361\fP from rallytime/bp\-43329
  192360. .INDENT 2.0
  192361. .IP \(bu 2
  192362. b09e5b4379 Fix \fI\%#43295\fP, better handling of consul initialization issues
  192363. .UNINDENT
  192364. .IP \(bu 2
  192365. 22287439e6 Merge pull request \fI\%#42903\fP from junovitch/issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  192366. .INDENT 2.0
  192367. .IP \(bu 2
  192368. c9d4fdbd45 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  192369. .IP \(bu 2
  192370. 93a68e32a5 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  192371. .IP \(bu 2
  192372. 079f097985 Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  192373. .UNINDENT
  192374. .IP \(bu 2
  192375. 4860e10757 Merge pull request \fI\%#43360\fP from terminalmage/sj\-496
  192376. .INDENT 2.0
  192377. .IP \(bu 2
  192378. 433bca14b1 Fix KeyError in yumpkg configparser code on Python 3
  192379. .IP \(bu 2
  192380. f6c16935d8 Move \-\-showduplicates before repository\-packages
  192381. .UNINDENT
  192382. .IP \(bu 2
  192383. 4ba2dbe41e Merge pull request \fI\%#43244\fP from rallytime/release\-branch\-clarifications
  192384. .INDENT 2.0
  192385. .IP \(bu 2
  192386. 0d5a46dbaa Update release branch section with a few more details
  192387. .UNINDENT
  192388. .IP \(bu 2
  192389. 1a012eb3d7 Merge pull request \fI\%#43359\fP from gtmanfred/ipaddr
  192390. .INDENT 2.0
  192391. .IP \(bu 2
  192392. 23d9abb560 ipaddr_start ipaddr_end for el7
  192393. .UNINDENT
  192394. .IP \(bu 2
  192395. 8f88111be8 Merge pull request \fI\%#43247\fP from rallytime/mentionbot\-backports
  192396. .INDENT 2.0
  192397. .IP \(bu 2
  192398. 2b85757d73 Always notify tkwilliams when changes occur on boto files
  192399. .IP \(bu 2
  192400. 40b5a29f90 Add basepi to userBlacklist for mention bot
  192401. .IP \(bu 2
  192402. bad8f56969 Always notify ryan\-lane when changes occur on boto files
  192403. .UNINDENT
  192404. .UNINDENT
  192405. .UNINDENT
  192406. .IP \(bu 2
  192407. \fBPR\fP \fI\%#43398\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_mount\fP for Windows
  192408. @ \fI2017\-09\-08 13:39:29 UTC\fP
  192409. .INDENT 2.0
  192410. .IP \(bu 2
  192411. 97f05ff603 Merge pull request \fI\%#43398\fP from twangboy/win_fix_test_mount
  192412. .IP \(bu 2
  192413. 4a8d7e522c Fix tests, Use full path to salt.utils.which
  192414. .UNINDENT
  192415. .IP \(bu 2
  192416. \fBPR\fP \fI\%#43399\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pam\fP for Windows
  192417. @ \fI2017\-09\-08 13:37:50 UTC\fP
  192418. .INDENT 2.0
  192419. .IP \(bu 2
  192420. 6a4cc5c1b0 Merge pull request \fI\%#43399\fP from twangboy/win_fix_test_pam
  192421. .IP \(bu 2
  192422. 6257aa964a Fix \fIunit.modules.test_pam\fP for Windows
  192423. .UNINDENT
  192424. .IP \(bu 2
  192425. \fBPR\fP \fI\%#43400\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_parted\fP for Windows
  192426. @ \fI2017\-09\-08 13:37:00 UTC\fP
  192427. .INDENT 2.0
  192428. .IP \(bu 2
  192429. 2b5cfae3f8 Merge pull request \fI\%#43400\fP from twangboy/win_unit_test_parted
  192430. .IP \(bu 2
  192431. 8e3e897ee2 Fix \fIunit.modules.test_parted\fP for Windows
  192432. .UNINDENT
  192433. .IP \(bu 2
  192434. \fBPR\fP \fI\%#43401\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pw_group\fP for Windows
  192435. @ \fI2017\-09\-08 13:35:45 UTC\fP
  192436. .INDENT 2.0
  192437. .IP \(bu 2
  192438. 332deeb013 Merge pull request \fI\%#43401\fP from twangboy/win_unit_test_pw_group
  192439. .IP \(bu 2
  192440. 78e39a1b9d Fix \fIunit.modules.test_pw_group\fP for Windows
  192441. .UNINDENT
  192442. .IP \(bu 2
  192443. \fBPR\fP \fI\%#43402\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_qemu_nbd\fP for Windows
  192444. @ \fI2017\-09\-08 13:34:58 UTC\fP
  192445. .INDENT 2.0
  192446. .IP \(bu 2
  192447. c0f54bfef1 Merge pull request \fI\%#43402\fP from twangboy/win_unit_test_qemu_nbd
  192448. .IP \(bu 2
  192449. 531ce8022b Fix \fIunit.modules.test_qemu_nbd\fP for Windows
  192450. .UNINDENT
  192451. .IP \(bu 2
  192452. \fBPR\fP \fI\%#43404\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_seed\fP for Windows
  192453. @ \fI2017\-09\-08 13:32:41 UTC\fP
  192454. .INDENT 2.0
  192455. .IP \(bu 2
  192456. be88fbb45f Merge pull request \fI\%#43404\fP from twangboy/win_unit_test_seed
  192457. .IP \(bu 2
  192458. 6ceb895a84 Use os.path.join for paths
  192459. .UNINDENT
  192460. .IP \(bu 2
  192461. \fBPR\fP \fI\%#43301\fP: (\fI\%twangboy\fP) Fix \fIunit.test_spm\fP for Windows
  192462. @ \fI2017\-09\-08 13:24:35 UTC\fP
  192463. .INDENT 2.0
  192464. .IP \(bu 2
  192465. 612c6a8756 Merge pull request \fI\%#43301\fP from twangboy/win_fix_unit_test_spm
  192466. .IP \(bu 2
  192467. 8608a6b303 Merge branch \(aq2017.7\(aq into win_fix_unit_test_spm
  192468. .IP \(bu 2
  192469. b8da04c04d Add Mike\(aqs changes
  192470. .IP \(bu 2
  192471. f36efbd6a7 Fix \fIunit.test_spm\fP for Windows
  192472. .UNINDENT
  192473. .IP \(bu 2
  192474. \fBPR\fP \fI\%#43372\fP: (\fI\%skizunov\fP) Fix system.set_system_time when no hw clock is present
  192475. @ \fI2017\-09\-07 17:45:33 UTC\fP
  192476. .INDENT 2.0
  192477. .IP \(bu 2
  192478. f959113694 Merge pull request \fI\%#43372\fP from skizunov/develop5
  192479. .IP \(bu 2
  192480. 281e471853 Fix system.set_system_time when no hw clock is present
  192481. .UNINDENT
  192482. .IP \(bu 2
  192483. \fBPR\fP \fI\%#43193\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error
  192484. @ \fI2017\-09\-06 20:16:58 UTC\fP
  192485. .INDENT 2.0
  192486. .IP \(bu 2
  192487. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43193\fP)
  192488. .IP \(bu 2
  192489. 6d13535ed0 Merge pull request \fI\%#43193\fP from jettero/template\-dne\-again
  192490. .IP \(bu 2
  192491. cde8aed2cf Merge branch \(aq2017.7\(aq into template\-dne\-again
  192492. .UNINDENT
  192493. .IP \(bu 2
  192494. \fBISSUE\fP \fI\%#42706\fP: (\fI\%blarghmatey\fP) Parallel Cache Failure (refs: \fI\%#43018\fP, \fI\%#43159\fP)
  192495. .IP \(bu 2
  192496. \fBPR\fP \fI\%#43159\fP: (\fI\%jubrad\fP) Bp 43018
  192497. @ \fI2017\-09\-05 22:29:16 UTC\fP
  192498. .INDENT 2.0
  192499. .IP \(bu 2
  192500. \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)
  192501. .IP \(bu 2
  192502. \fBPR\fP \fI\%#43018\fP: (\fI\%jubrad\fP) Update state.py (refs: \fI\%#43159\fP, \fI\%#43727\fP)
  192503. .IP \(bu 2
  192504. 015cbc57d9 Merge pull request \fI\%#43159\fP from jubrad/bp\-43018
  192505. .IP \(bu 2
  192506. 25419a56db Merge branch \(aq2017.7\(aq into bp\-43018
  192507. .IP \(bu 2
  192508. 971b4c0890 Merge branch \(aq2017.7\(aq into bp\-43018
  192509. .IP \(bu 2
  192510. 4f8e6c65e5 access safe_filename_leaf through utils.files, changed in \fI\%#43172\fP
  192511. .IP \(bu 2
  192512. 42064883ea state.py remove unused urllib import
  192513. .IP \(bu 2
  192514. 4957268b37 update state.py to use safe_filename_leaf
  192515. .IP \(bu 2
  192516. b8ead879ed Fixing lint issues
  192517. .IP \(bu 2
  192518. 446457d017 Swapping \fIfrom\fP for \fIimport\fP
  192519. .IP \(bu 2
  192520. fb80e17400 state.py: fix import and utf8 encode before quote
  192521. .IP \(bu 2
  192522. 1dcf167bb7 Update state.py
  192523. .UNINDENT
  192524. .IP \(bu 2
  192525. \fBPR\fP \fI\%#43232\fP: (\fI\%terminalmage\fP) Improve inheritance in salt.utils.gitfs
  192526. @ \fI2017\-09\-05 20:37:06 UTC\fP
  192527. .INDENT 2.0
  192528. .IP \(bu 2
  192529. 6e1b541b46 Merge pull request \fI\%#43232\fP from terminalmage/gitfs\-inheritance
  192530. .IP \(bu 2
  192531. 53bd3a3e23 Improve inheritance in salt.utils.gitfs
  192532. .UNINDENT
  192533. .IP \(bu 2
  192534. \fBPR\fP \fI\%#43238\fP: (\fI\%s0undt3ch\fP) Include the line number by default on the log file format
  192535. @ \fI2017\-09\-05 20:31:54 UTC\fP
  192536. .INDENT 2.0
  192537. .IP \(bu 2
  192538. 086b220091 Merge pull request \fI\%#43238\fP from s0undt3ch/2017.7
  192539. .IP \(bu 2
  192540. 630a1db3ab Include the line number by default on the log file format
  192541. .UNINDENT
  192542. .IP \(bu 2
  192543. \fBPR\fP \fI\%#43294\fP: (\fI\%twangboy\fP) Win build scripts
  192544. @ \fI2017\-09\-05 20:12:54 UTC\fP
  192545. .INDENT 2.0
  192546. .IP \(bu 2
  192547. 09dc58cde5 Merge pull request \fI\%#43294\fP from twangboy/win_build_scripts
  192548. .IP \(bu 2
  192549. 9979ccb613 Remove Py2 and Py3 in the same run
  192550. .IP \(bu 2
  192551. a5d9f85db6 Modifications to build scripts
  192552. .UNINDENT
  192553. .IP \(bu 2
  192554. \fBPR\fP \fI\%#43322\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192555. @ \fI2017\-09\-05 18:21:26 UTC\fP
  192556. .INDENT 2.0
  192557. .IP \(bu 2
  192558. 21ab306ef4 Merge pull request \fI\%#43322\fP from rallytime/merge\-2017.7
  192559. .IP \(bu 2
  192560. b1062f8c15 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192561. .INDENT 2.0
  192562. .IP \(bu 2
  192563. 02867fdcd2 Merge pull request \fI\%#43277\fP from rallytime/owners\-file
  192564. .INDENT 2.0
  192565. .IP \(bu 2
  192566. 2b4da0f0e7 Add CODEOWNERS file
  192567. .UNINDENT
  192568. .IP \(bu 2
  192569. 1c1c484479 Merge pull request \fI\%#43312\fP from lordcirth/fix\-cron\-docs
  192570. .INDENT 2.0
  192571. .IP \(bu 2
  192572. ec94a13750 cron docs: Remind user to use quotes for special strings
  192573. .UNINDENT
  192574. .IP \(bu 2
  192575. 0d1ed4b750 Merge pull request \fI\%#43290\fP from lordcirth/fix\-file\-path\-docs
  192576. .INDENT 2.0
  192577. .IP \(bu 2
  192578. 14a4591854 file.py docs: correct group and mode
  192579. .IP \(bu 2
  192580. d4214ca283 file.py docs: specify absolute paths
  192581. .UNINDENT
  192582. .IP \(bu 2
  192583. 26ff89539e Merge pull request \fI\%#43274\fP from terminalmage/fix\-int\-types
  192584. .INDENT 2.0
  192585. .IP \(bu 2
  192586. d533877743 Use six.integer_types instead of int
  192587. .UNINDENT
  192588. .IP \(bu 2
  192589. cf21f91fb2 Merge pull request \fI\%#43271\fP from twangboy/win_fix_pkg.install
  192590. .INDENT 2.0
  192591. .IP \(bu 2
  192592. 91b062f564 Fix formatting issue, spaces surrounding +
  192593. .UNINDENT
  192594. .UNINDENT
  192595. .UNINDENT
  192596. .IP \(bu 2
  192597. \fBPR\fP \fI\%#43324\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_chef\fP for Windows
  192598. @ \fI2017\-09\-05 16:40:11 UTC\fP
  192599. .INDENT 2.0
  192600. .IP \(bu 2
  192601. 62429c547d Merge pull request \fI\%#43324\fP from twangboy/fix_unit.modules.test_chef
  192602. .IP \(bu 2
  192603. 5bd5ea042a Fix \fIunit.modules.test_chef\fP for Windows
  192604. .UNINDENT
  192605. .IP \(bu 2
  192606. \fBPR\fP \fI\%#43268\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43237\fP to 2017.7
  192607. @ \fI2017\-09\-01 18:17:13 UTC\fP
  192608. .INDENT 2.0
  192609. .IP \(bu 2
  192610. \fBPR\fP \fI\%#43237\fP: (\fI\%timka\fP) .utils.aws.get_location() expects a dict (refs: \fI\%#43268\fP)
  192611. .IP \(bu 2
  192612. 367668a0a3 Merge pull request \fI\%#43268\fP from rallytime/bp\-43237
  192613. .IP \(bu 2
  192614. 047ad07da4 .utils.aws.get_location() expects a dict
  192615. .UNINDENT
  192616. .IP \(bu 2
  192617. \fBPR\fP \fI\%#43270\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192618. @ \fI2017\-09\-01 18:09:46 UTC\fP
  192619. .INDENT 2.0
  192620. .IP \(bu 2
  192621. 02504dd363 Merge pull request \fI\%#43270\fP from rallytime/merge\-2017.7
  192622. .IP \(bu 2
  192623. f8b025f6dc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192624. .IP \(bu 2
  192625. 3a0b02f3ae Merge pull request \fI\%#43228\fP from twangboy/win_fix_pkg.install
  192626. .INDENT 2.0
  192627. .IP \(bu 2
  192628. 13dfabb1ce Fix regex statement, add \fI\&.\fP
  192629. .IP \(bu 2
  192630. 31ff69f0ad Add underscore to regex search
  192631. .IP \(bu 2
  192632. 3cf2b6575c Fix spelling
  192633. .IP \(bu 2
  192634. ed030a35a5 Use regex to detect salt\-minion install
  192635. .IP \(bu 2
  192636. e5daff495a Fix pkg.install
  192637. .UNINDENT
  192638. .IP \(bu 2
  192639. b4c689dff5 Merge pull request \fI\%#43191\fP from viktorkrivak/fix\-apache\-config\-multi\-entity
  192640. .INDENT 2.0
  192641. .IP \(bu 2
  192642. c15bcbe1cc Merge remote\-tracking branch \(aqupstream/2016.11\(aq into fix\-apache\-config\-multi\-entity
  192643. .IP \(bu 2
  192644. 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.
  192645. .UNINDENT
  192646. .IP \(bu 2
  192647. b90e59ede9 Merge pull request \fI\%#43154\fP from lomeroe/bp\-43116\-2016.11
  192648. .IP \(bu 2
  192649. 8f593b0b02 verify that files exist before trying to remove them, win_file.remove raises an exception if the file does not exist
  192650. .IP \(bu 2
  192651. 33a30bac06 correcting bad format statement in search for policy to be disabled
  192652. .IP \(bu 2
  192653. acc3d7ac82 correct fopen calls from salt.utils for 2016.11\(aqs utils function
  192654. .IP \(bu 2
  192655. 2da1cdd109 lint fix
  192656. .IP \(bu 2
  192657. 61bd12c0de track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  192658. .IP \(bu 2
  192659. f232bed9f9 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  192660. .UNINDENT
  192661. .IP \(bu 2
  192662. \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)
  192663. .IP \(bu 2
  192664. \fBPR\fP \fI\%#43283\fP: (\fI\%DmitryKuzmenko\fP) Fix ldap token groups auth.
  192665. @ \fI2017\-09\-01 17:49:46 UTC\fP
  192666. .INDENT 2.0
  192667. .IP \(bu 2
  192668. ece0e393ef Merge pull request \fI\%#43283\fP from DSRCorporation/bugs/42459_broken_ldap_groups
  192669. .IP \(bu 2
  192670. 3ad6911210 Fix for tests: don\(aqt require \(aqgroups\(aq in the eauth token.
  192671. .IP \(bu 2
  192672. 1f104cf85b Fix ldap token groups auth.
  192673. .UNINDENT
  192674. .IP \(bu 2
  192675. \fBPR\fP \fI\%#43149\fP: (\fI\%BenoitKnecht\fP) Fix iptables.get_rules when rules contain \-\-nfmask or \-\-ctmask
  192676. @ \fI2017\-09\-01 15:57:05 UTC\fP
  192677. .INDENT 2.0
  192678. .IP \(bu 2
  192679. 4f023c4cb6 Merge pull request \fI\%#43149\fP from BenoitKnecht/2017.7.1
  192680. .IP \(bu 2
  192681. 3c1ddc9bde modules: iptables: correctly parse \fI\-\-nfmask\fP/\fI\-\-ctmask\fP
  192682. .UNINDENT
  192683. .IP \(bu 2
  192684. \fBISSUE\fP \fI\%#43258\fP: (\fI\%nomeelnoj\fP) metadata_server_grains problems (refs: \fI\%#43265\fP)
  192685. .IP \(bu 2
  192686. \fBPR\fP \fI\%#43265\fP: (\fI\%gtmanfred\fP) make sure meta\-data grains work on ec2
  192687. @ \fI2017\-09\-01 15:31:12 UTC\fP
  192688. .INDENT 2.0
  192689. .IP \(bu 2
  192690. cf2b75bb86 Merge pull request \fI\%#43265\fP from gtmanfred/2017.7
  192691. .IP \(bu 2
  192692. 04dd8ebedb make sure meta\-data grains work on ec2
  192693. .UNINDENT
  192694. .IP \(bu 2
  192695. \fBPR\fP \fI\%#43299\fP: (\fI\%twangboy\fP) Fix \fIunit.netapi.rest_cherrypy.test_tools\fP for Windows
  192696. @ \fI2017\-09\-01 15:13:43 UTC\fP
  192697. .INDENT 2.0
  192698. .IP \(bu 2
  192699. 618b221895 Merge pull request \fI\%#43299\fP from twangboy/win_fix_netapi_cherrypy
  192700. .IP \(bu 2
  192701. fd74acb603 Merge branch \(aq2017.7\(aq into win_fix_netapi_cherrypy
  192702. .UNINDENT
  192703. .IP \(bu 2
  192704. \fBPR\fP \fI\%#43300\fP: (\fI\%twangboy\fP) Fix \fIunit.netapi.rest_tornado.test_handlers\fP for Windows
  192705. @ \fI2017\-09\-01 13:10:11 UTC\fP
  192706. .INDENT 2.0
  192707. .IP \(bu 2
  192708. aee654da92 Merge pull request \fI\%#43300\fP from twangboy/win_fix_netapi_rest_tornado
  192709. .IP \(bu 2
  192710. c93d2ed386 Use os.sep instead of \(aq/\(aq
  192711. .IP \(bu 2
  192712. 3fbf24b91a Use os.sep instead of \(aq/\(aq
  192713. .UNINDENT
  192714. .IP \(bu 2
  192715. \fBISSUE\fP \fI\%#43259\fP: (\fI\%mahesh21\fP) NameError: global name \(aq__opts__\(aq is not defined (refs: \fI\%#43266\fP)
  192716. .IP \(bu 2
  192717. \fBPR\fP \fI\%#43278\fP: (\fI\%gtmanfred\fP) bootstrap can come from dunders
  192718. @ \fI2017\-08\-31 13:31:20 UTC\fP
  192719. .INDENT 2.0
  192720. .IP \(bu 2
  192721. \fBPR\fP \fI\%#43266\fP: (\fI\%gtmanfred\fP) switch virtualbox cloud driver to use __utils__ (refs: \fI\%#43278\fP)
  192722. .IP \(bu 2
  192723. aed2975979 Merge pull request \fI\%#43278\fP from gtmanfred/virtualbox
  192724. .IP \(bu 2
  192725. c4ae2de30f bootstrap can come from dunders
  192726. .UNINDENT
  192727. .IP \(bu 2
  192728. \fBPR\fP \fI\%#42975\fP: (\fI\%brejoc\fP) Added unit tests for Kubernetes module
  192729. @ \fI2017\-08\-30 20:30:16 UTC\fP
  192730. .INDENT 2.0
  192731. .IP \(bu 2
  192732. 479e0e06ac Merge pull request \fI\%#42975\fP from brejoc/tests\-for\-kubernetes\-module
  192733. .IP \(bu 2
  192734. fdad9177b5 Merge branch \(aq2017.7\(aq into tests\-for\-kubernetes\-module
  192735. .IP \(bu 2
  192736. c227cb25ad Skipping test on ImportError
  192737. .IP \(bu 2
  192738. bd76a870ce Dunder vars are now defined via setup_loader_modules
  192739. .IP \(bu 2
  192740. 3c99e61637 Renamed test to match new convention
  192741. .IP \(bu 2
  192742. caf78d206d Fixed imports for pytest
  192743. .IP \(bu 2
  192744. c8e98c8d8a Added unit tests for Kubernetes module
  192745. .UNINDENT
  192746. .IP \(bu 2
  192747. \fBISSUE\fP \fI\%#42935\fP: (\fI\%BenjaminSchubert\fP) docker_image.present always ends up failing even on correct result. (refs: \fI\%#43176\fP)
  192748. .IP \(bu 2
  192749. \fBPR\fP \fI\%#43176\fP: (\fI\%terminalmage\fP) docker_image states: Handle Hub images prefixed with "docker.io/"
  192750. @ \fI2017\-08\-30 20:08:13 UTC\fP
  192751. .INDENT 2.0
  192752. .IP \(bu 2
  192753. ca7df1d4cf Merge pull request \fI\%#43176\fP from terminalmage/issue42935
  192754. .IP \(bu 2
  192755. df18a89836 Lint: Remove unused import
  192756. .IP \(bu 2
  192757. 7279f98e92 docker_image states: Handle Hub images prefixed with "docker.io/"
  192758. .IP \(bu 2
  192759. f7c945f6e4 Prevent spurious "Template does not exist" error
  192760. .UNINDENT
  192761. .UNINDENT
  192762. .SS Salt 2017.7.4 Release Notes
  192763. .sp
  192764. Version 2017.7.4 is a bugfix release for 2017.7.0\&.
  192765. .SS Statistics
  192766. .INDENT 0.0
  192767. .IP \(bu 2
  192768. Total Merges: \fB8\fP
  192769. .IP \(bu 2
  192770. Total Issue References: \fB4\fP
  192771. .IP \(bu 2
  192772. Total PR References: \fB11\fP
  192773. .IP \(bu 2
  192774. Contributors: \fB6\fP (\fI\%Ch3LL\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%marccardinal\fP, \fI\%rallytime\fP, \fI\%terminalmage\fP)
  192775. .UNINDENT
  192776. .SS Changelog for v2017.7.3..v2017.7.4
  192777. .sp
  192778. \fIGenerated at: 2018\-05\-26 21:48:28 UTC\fP
  192779. .INDENT 0.0
  192780. .IP \(bu 2
  192781. \fBPR\fP \fI\%#46074\fP: (\fI\%Ch3LL\fP) Update 2017.7.4 Release Notes with new fixes
  192782. @ \fI2018\-02\-16 16:47:56 UTC\fP
  192783. .INDENT 2.0
  192784. .IP \(bu 2
  192785. b5b083fd26 Merge pull request \fI\%#46074\fP from Ch3LL/update\-7.4
  192786. .IP \(bu 2
  192787. 8d0eeeb059 Update 2017.7.4 Release Notes with new fixes
  192788. .UNINDENT
  192789. .IP \(bu 2
  192790. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP)
  192791. .IP \(bu 2
  192792. \fBPR\fP \fI\%#46066\fP: (\fI\%rallytime\fP) Pin tornado version in requirements file
  192793. @ \fI2018\-02\-16 16:40:05 UTC\fP
  192794. .INDENT 2.0
  192795. .IP \(bu 2
  192796. 32f3d00e44 Merge pull request \fI\%#46066\fP from rallytime/pin\-tornado
  192797. .IP \(bu 2
  192798. 6dc1a3b9dc Pin tornado version in requirements file
  192799. .UNINDENT
  192800. .IP \(bu 2
  192801. \fBPR\fP \fI\%#46036\fP: (\fI\%terminalmage\fP) git.latest: Fix regression with identity file usage
  192802. @ \fI2018\-02\-16 13:57:23 UTC\fP
  192803. .INDENT 2.0
  192804. .IP \(bu 2
  192805. 85761ee650 Merge pull request \fI\%#46036\fP from terminalmage/issue43769
  192806. .IP \(bu 2
  192807. e2140d9a84 Mock the ssh.key_is_encrypted utils func
  192808. .IP \(bu 2
  192809. 169924b3fe Move ssh.key_is_encrypted to a utils module temporarily
  192810. .IP \(bu 2
  192811. 54f4d78f7a Only keep ssh.py in the Windows installer
  192812. .IP \(bu 2
  192813. 5f04531e1b Keep ssh state and execution modules in the installer
  192814. .IP \(bu 2
  192815. f2b69f703d git.latest: Fix regression with identity file usage
  192816. .UNINDENT
  192817. .IP \(bu 2
  192818. \fBPR\fP \fI\%#46009\fP: (\fI\%Ch3LL\fP) Add 2017.7.4 Release Notes with PRs
  192819. @ \fI2018\-02\-13 16:40:30 UTC\fP
  192820. .INDENT 2.0
  192821. .IP \(bu 2
  192822. 6d534c6e7e Merge pull request \fI\%#46009\fP from Ch3LL/rn_7.4
  192823. .IP \(bu 2
  192824. ac0baf4b34 Add 2017.7.4 Release Notes with PRs
  192825. .UNINDENT
  192826. .IP \(bu 2
  192827. \fBISSUE\fP \fI\%#45976\fP: (\fI\%ghost\fP) 6a5e0f9 introduces regression that breaks Vault module for salt masterless (refs: \fI\%#45981\fP)
  192828. .IP \(bu 2
  192829. \fBPR\fP \fI\%#45981\fP: (\fI\%gtmanfred\fP) use local config for vault when masterless
  192830. @ \fI2018\-02\-13 15:22:01 UTC\fP
  192831. .INDENT 2.0
  192832. .IP \(bu 2
  192833. ca76a0b328 Merge pull request \fI\%#45981\fP from gtmanfred/2017.7.3
  192834. .IP \(bu 2
  192835. 0d448457dc apparently local is not set by default
  192836. .IP \(bu 2
  192837. 2a92f4bc16 use local config for vault when masterless
  192838. .UNINDENT
  192839. .IP \(bu 2
  192840. \fBISSUE\fP \fI\%#45915\fP: (\fI\%MatthiasKuehneEllerhold\fP) 2017.7.3: Salt\-SSH & Vault Pillar: Permission denied "minion.pem" (refs: \fI\%#45928\fP)
  192841. .IP \(bu 2
  192842. \fBPR\fP \fI\%#45953\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45928\fP to 2017.7.3
  192843. @ \fI2018\-02\-09 22:29:10 UTC\fP
  192844. .INDENT 2.0
  192845. .IP \(bu 2
  192846. \fBPR\fP \fI\%#45928\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing vault when used with pillar over salt\-ssh (refs: \fI\%#45953\fP)
  192847. .IP \(bu 2
  192848. 6530649dbc Merge pull request \fI\%#45953\fP from rallytime/bp\-45928\-2017.7.3
  192849. .IP \(bu 2
  192850. 85363189d1 Fixing vault when used with pillar over salt\-ssh
  192851. .UNINDENT
  192852. .IP \(bu 2
  192853. \fBISSUE\fP \fI\%#45893\fP: (\fI\%CrackerJackMack\fP) archive.extracted ValueError "No path specified" in 2017.7.3 (refs: \fI\%#45902\fP)
  192854. .IP \(bu 2
  192855. \fBPR\fP \fI\%#45934\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45902\fP to 2017.7.3
  192856. @ \fI2018\-02\-09 16:31:08 UTC\fP
  192857. .INDENT 2.0
  192858. .IP \(bu 2
  192859. \fBPR\fP \fI\%#45902\fP: (\fI\%terminalmage\fP) Check the effective saltenv for cached archive (refs: \fI\%#45934\fP)
  192860. .IP \(bu 2
  192861. fb378cebb0 Merge pull request \fI\%#45934\fP from rallytime/bp\-45902
  192862. .IP \(bu 2
  192863. bb83e8b345 Add regression test for issue 45893
  192864. .IP \(bu 2
  192865. cdda66d759 Remove duplicated section in docstring and fix example
  192866. .IP \(bu 2
  192867. 4b6351cda6 Check the effective saltenv for cached archive
  192868. .UNINDENT
  192869. .IP \(bu 2
  192870. \fBPR\fP \fI\%#45935\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45742\fP to 2017.7.3
  192871. @ \fI2018\-02\-09 14:02:26 UTC\fP
  192872. .INDENT 2.0
  192873. .IP \(bu 2
  192874. \fBPR\fP \fI\%#45742\fP: (\fI\%marccardinal\fP) list.copy() is not compatible with python 2.7 (refs: \fI\%#45935\fP)
  192875. .IP \(bu 2
  192876. 0d74151c71 Merge pull request \fI\%#45935\fP from rallytime/bp\-45742
  192877. .IP \(bu 2
  192878. 6a0b5f7af3 Removed the chained copy
  192879. .IP \(bu 2
  192880. ad1150fad4 list.copy() is not compatible with python 2.7
  192881. .UNINDENT
  192882. .UNINDENT
  192883. .SS Salt 2017.7.5 Release Notes
  192884. .sp
  192885. Version 2017.7.5 is a bugfix release for 2017.7.0\&.
  192886. .SS Statistics
  192887. .INDENT 0.0
  192888. .IP \(bu 2
  192889. Total Merges: \fB213\fP
  192890. .IP \(bu 2
  192891. Total Issue References: \fB58\fP
  192892. .IP \(bu 2
  192893. Total PR References: \fB202\fP
  192894. .IP \(bu 2
  192895. 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)
  192896. .UNINDENT
  192897. .SS Changes to \fBfile.blockreplace\fP State
  192898. .sp
  192899. The \fBappend_newline\fP argument was added to this state. Additionally, to
  192900. improve idempotence, if the string represented by \fBmarker_end\fP is found in
  192901. the middle of the line, the content preceding the marker will be removed when
  192902. the block is replaced. This allows one to remove \fBappend_newline: False\fP from
  192903. the SLS and have the block properly replaced if the end of the content block is
  192904. immediately followed by the \fBmarker_end\fP (i.e. no newline before the marker).
  192905. .sp
  192906. \fBNOTE:\fP
  192907. .INDENT 0.0
  192908. .INDENT 3.5
  192909. This will require changes to your SLS if your \fBmarker_end\fP does not
  192910. include the very beginning of the content you want to keep.
  192911. .UNINDENT
  192912. .UNINDENT
  192913. .sp
  192914. See the \fBfile.blockreplace\fP state
  192915. documentation for further information.
  192916. .SS Changelog for v2017.7.4..v2017.7.5
  192917. .sp
  192918. \fIGenerated at: 2018\-05\-26 21:50:00 UTC\fP
  192919. .INDENT 0.0
  192920. .IP \(bu 2
  192921. \fBPR\fP \fI\%#46612\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.5 release notes
  192922. @ \fI2018\-03\-19 20:47:38 UTC\fP
  192923. .INDENT 2.0
  192924. .IP \(bu 2
  192925. 19bb725698 Merge pull request \fI\%#46612\fP from Ch3LL/7.5_rn
  192926. .IP \(bu 2
  192927. 6076bfa2ee Add changelog to 2017.7.5 release
  192928. .UNINDENT
  192929. .IP \(bu 2
  192930. \fBPR\fP \fI\%#46572\fP: (\fI\%dmurphy18\fP) Addition of \-sa flag to allow for revision numbers other than \-0 or \-1
  192931. @ \fI2018\-03\-19 20:07:26 UTC\fP
  192932. .INDENT 2.0
  192933. .IP \(bu 2
  192934. 31c78aef11 Merge pull request \fI\%#46572\fP from dmurphy18/update_xxxbuild
  192935. .IP \(bu 2
  192936. c87511570d Merge branch \(aq2017.7.5\(aq into update_xxxbuild
  192937. .UNINDENT
  192938. .IP \(bu 2
  192939. \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)
  192940. .IP \(bu 2
  192941. \fBPR\fP \fI\%#46577\fP: (\fI\%gtmanfred\fP) Fix npm issue
  192942. @ \fI2018\-03\-19 11:51:04 UTC\fP
  192943. .INDENT 2.0
  192944. .IP \(bu 2
  192945. cdd768fa4d Merge pull request \fI\%#46577\fP from gtmanfred/2017.7.5
  192946. .IP \(bu 2
  192947. 78cbf7b5cd Fix npm issue
  192948. .IP \(bu 2
  192949. c76f7eb028 enable debug logging on the minionlog
  192950. .UNINDENT
  192951. .IP \(bu 2
  192952. \fBPR\fP \fI\%#46551\fP: (\fI\%terminalmage\fP) Fix failing pkg integration test on OpenSUSE
  192953. @ \fI2018\-03\-19 11:50:12 UTC\fP
  192954. .INDENT 2.0
  192955. .IP \(bu 2
  192956. e6682c660c Merge pull request \fI\%#46551\fP from terminalmage/salt\-jenkins\-885
  192957. .IP \(bu 2
  192958. 703b5e7e65 Change versionadded to show that 2018.3.0 will not have this function
  192959. .IP \(bu 2
  192960. 010d260d06 Rewrite failing Suse pkg integration test
  192961. .IP \(bu 2
  192962. f3f5dec239 zypper.py: fix version argument being ignored
  192963. .IP \(bu 2
  192964. 214f2d6ad3 Add pkg.list_repo_pkgs to zypper.py
  192965. .INDENT 2.0
  192966. .INDENT 3.5
  192967. .INDENT 0.0
  192968. .IP \(bu 2
  192969. 0a541613f2 Additon of \-sa flag to allow for revision numbers other than \-0 or \-1
  192970. .UNINDENT
  192971. .UNINDENT
  192972. .UNINDENT
  192973. .UNINDENT
  192974. .IP \(bu 2
  192975. \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)
  192976. .IP \(bu 2
  192977. \fBPR\fP \fI\%#46563\fP: (\fI\%gtmanfred\fP) virtualenv version too old for python3.6
  192978. @ \fI2018\-03\-15 20:17:16 UTC\fP
  192979. .INDENT 2.0
  192980. .IP \(bu 2
  192981. bd62699ccb Merge pull request \fI\%#46563\fP from gtmanfred/2017.7.5
  192982. .IP \(bu 2
  192983. 8d5ab72983 virtualenv version too old for python3.6
  192984. .UNINDENT
  192985. .IP \(bu 2
  192986. \fBPR\fP \fI\%#46561\fP: (\fI\%gtmanfred\fP) disable verbose
  192987. @ \fI2018\-03\-15 16:36:41 UTC\fP
  192988. .INDENT 2.0
  192989. .IP \(bu 2
  192990. 2916708124 Merge pull request \fI\%#46561\fP from gtmanfred/2017.7.5
  192991. .IP \(bu 2
  192992. 2c39ac6dfb disable verbose
  192993. .UNINDENT
  192994. .IP \(bu 2
  192995. \fBPR\fP \fI\%#46537\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46529\fP to 2017.7.5
  192996. @ \fI2018\-03\-14 14:47:28 UTC\fP
  192997. .INDENT 2.0
  192998. .IP \(bu 2
  192999. \fBPR\fP \fI\%#46529\fP: (\fI\%gtmanfred\fP) retry if there is a segfault (refs: \fI\%#46537\fP)
  193000. .IP \(bu 2
  193001. ee3bff6e32 Merge pull request \fI\%#46537\fP from rallytime/bp\-46529
  193002. .IP \(bu 2
  193003. 289c7a228f retry if there is a segfault
  193004. .UNINDENT
  193005. .IP \(bu 2
  193006. \fBPR\fP \fI\%#46519\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.5
  193007. @ \fI2018\-03\-13 20:00:51 UTC\fP
  193008. .INDENT 2.0
  193009. .IP \(bu 2
  193010. 1271536a89 Merge pull request \fI\%#46519\fP from rallytime/man\-pages\-2017.7.5
  193011. .IP \(bu 2
  193012. 782a5584f5 Update man pages for 2017.7.5
  193013. .UNINDENT
  193014. .IP \(bu 2
  193015. \fBISSUE\fP \fI\%#46207\fP: (\fI\%seanjnkns\fP) Issue \fI\%#44034\fP still unresolved (refs: \fI\%#46493\fP)
  193016. .IP \(bu 2
  193017. \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)
  193018. .IP \(bu 2
  193019. \fBPR\fP \fI\%#46493\fP: (\fI\%terminalmage\fP) salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  193020. @ \fI2018\-03\-12 20:41:52 UTC\fP
  193021. .INDENT 2.0
  193022. .IP \(bu 2
  193023. \fBPR\fP \fI\%#44483\fP: (\fI\%terminalmage\fP) salt\-call: account for instances where __pillar__ is empty (refs: \fI\%#46493\fP)
  193024. .IP \(bu 2
  193025. 0e90c8ca6f Merge pull request \fI\%#46493\fP from terminalmage/issue46207
  193026. .IP \(bu 2
  193027. f06ff68f10 salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  193028. .UNINDENT
  193029. .IP \(bu 2
  193030. \fBPR\fP \fI\%#46450\fP: (\fI\%gtmanfred\fP) load grains for salt.cmd runner
  193031. @ \fI2018\-03\-12 18:52:22 UTC\fP
  193032. .INDENT 2.0
  193033. .IP \(bu 2
  193034. b11a8fc8e0 Merge pull request \fI\%#46450\fP from gtmanfred/salt_runner
  193035. .IP \(bu 2
  193036. 7974ff7264 load grains for salt.cmd runner
  193037. .UNINDENT
  193038. .IP \(bu 2
  193039. \fBISSUE\fP \fI\%#30115\fP: (\fI\%gtmanfred\fP) [BUG] listen does not appear to respect the special names directive (refs: \fI\%#46337\fP)
  193040. .IP \(bu 2
  193041. \fBPR\fP \fI\%#46337\fP: (\fI\%gtmanfred\fP) Fix using names with listen and listen_in
  193042. @ \fI2018\-03\-12 18:50:00 UTC\fP
  193043. .INDENT 2.0
  193044. .IP \(bu 2
  193045. 22d753364b Merge pull request \fI\%#46337\fP from gtmanfred/2017.7
  193046. .IP \(bu 2
  193047. d6d9e36359 add tests for names and listen/listen_in
  193048. .IP \(bu 2
  193049. 3f8e0db572 let listen_in work with names
  193050. .IP \(bu 2
  193051. 7161f4d4df fix listen to be able to handle names
  193052. .UNINDENT
  193053. .IP \(bu 2
  193054. \fBPR\fP \fI\%#46413\fP: (\fI\%meaksh\fP) Explore \(aqmodule.run\(aq state module output in depth to catch "result" properly
  193055. @ \fI2018\-03\-12 18:49:07 UTC\fP
  193056. .INDENT 2.0
  193057. .IP \(bu 2
  193058. b7191b8782 Merge pull request \fI\%#46413\fP from meaksh/2017.7\-explore\-result\-in\-depth
  193059. .IP \(bu 2
  193060. 885751634e Add new unit test to check state.apply within module.run
  193061. .IP \(bu 2
  193062. 9f19ad5264 Rename and fix recursive method
  193063. .IP \(bu 2
  193064. 1476ace558 Fix Python3 and pylint issue
  193065. .IP \(bu 2
  193066. 726ca3044d Explore \(aqmodule.run\(aq response to catch the \(aqresult\(aq in depth
  193067. .UNINDENT
  193068. .IP \(bu 2
  193069. \fBPR\fP \fI\%#46496\fP: (\fI\%gtmanfred\fP) more test kitchen clean up
  193070. @ \fI2018\-03\-12 18:28:34 UTC\fP
  193071. .INDENT 2.0
  193072. .IP \(bu 2
  193073. 02a79a2014 Merge pull request \fI\%#46496\fP from gtmanfred/kitchen
  193074. .IP \(bu 2
  193075. da002f78d0 include virtualenv path for py3 windows
  193076. .IP \(bu 2
  193077. fe2efe03ea remove duplicate setup
  193078. .UNINDENT
  193079. .IP \(bu 2
  193080. \fBISSUE\fP \fI\%#46329\fP: (\fI\%bdrung\fP) test_create_deployments fails with python\-kubernetes 4.0.0 (refs: \fI\%#46330\fP)
  193081. .IP \(bu 2
  193082. \fBPR\fP \fI\%#46330\fP: (\fI\%bdrung\fP) Fix ValueError for template in AppsV1beta1DeploymentSpec
  193083. @ \fI2018\-03\-12 16:56:18 UTC\fP
  193084. .INDENT 2.0
  193085. .IP \(bu 2
  193086. 5c4c182d75 Merge pull request \fI\%#46330\fP from bdrung/fix_kubernetes_test_create_deployments
  193087. .IP \(bu 2
  193088. 5008c53c44 Fix ValueError for template in AppsV1beta1DeploymentSpec
  193089. .UNINDENT
  193090. .IP \(bu 2
  193091. \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)
  193092. .IP \(bu 2
  193093. \fBPR\fP \fI\%#46482\fP: (\fI\%rongshengfang\fP) Fix KeyError in salt/states/boto_ec2.py
  193094. @ \fI2018\-03\-12 15:13:13 UTC\fP
  193095. .INDENT 2.0
  193096. .IP \(bu 2
  193097. c7e05d3ff4 Merge pull request \fI\%#46482\fP from rongshengfang/fix\-keyerror\-in\-instance_present
  193098. .IP \(bu 2
  193099. ed8c83e89a Fix KeyError in salt/states/boto_ec2.py when an EIP is being associated to an existing instance with the instance_present state.
  193100. .UNINDENT
  193101. .IP \(bu 2
  193102. \fBPR\fP \fI\%#46463\fP: (\fI\%terminalmage\fP) Update requirements files to depend on mock>=2.0.0
  193103. @ \fI2018\-03\-09 19:24:41 UTC\fP
  193104. .INDENT 2.0
  193105. .IP \(bu 2
  193106. 573d51afec Merge pull request \fI\%#46463\fP from terminalmage/mock\-2.0
  193107. .IP \(bu 2
  193108. b958b4699c Update requirements files to depend on mock>=2.0.0
  193109. .UNINDENT
  193110. .IP \(bu 2
  193111. \fBISSUE\fP \fI\%#46299\fP: (\fI\%gclinch\fP) debconf module fails on Python 3 (refs: \fI\%#46300\fP)
  193112. .IP \(bu 2
  193113. \fBPR\fP \fI\%#46422\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46300\fP to 2017.7
  193114. @ \fI2018\-03\-09 19:19:25 UTC\fP
  193115. .INDENT 2.0
  193116. .IP \(bu 2
  193117. \fBPR\fP \fI\%#46300\fP: (\fI\%gclinch\fP) Python 3 support for debconfmod (fixes \fI\%#46299\fP) (refs: \fI\%#46422\fP)
  193118. .IP \(bu 2
  193119. a154d35fc7 Merge pull request \fI\%#46422\fP from rallytime/bp\-46300
  193120. .IP \(bu 2
  193121. 829dfde8e8 Change stringutils path to old utils path for 2017.7
  193122. .IP \(bu 2
  193123. 91db2e0782 Python 3 support
  193124. .UNINDENT
  193125. .IP \(bu 2
  193126. \fBPR\fP \fI\%#46320\fP: (\fI\%mcalmer\fP) add warning about future config option change
  193127. @ \fI2018\-03\-09 17:48:29 UTC\fP
  193128. .INDENT 2.0
  193129. .IP \(bu 2
  193130. 2afaca17a1 Merge pull request \fI\%#46320\fP from mcalmer/warn\-kubernetes
  193131. .IP \(bu 2
  193132. c493ced415 add warning about future config option change
  193133. .UNINDENT
  193134. .IP \(bu 2
  193135. \fBPR\fP \fI\%#46449\fP: (\fI\%bdrung\fP) Make documentation theme configurable
  193136. @ \fI2018\-03\-09 17:47:15 UTC\fP
  193137. .INDENT 2.0
  193138. .IP \(bu 2
  193139. c7f95581e3 Merge pull request \fI\%#46449\fP from bdrung/make\-doc\-theme\-configurable
  193140. .IP \(bu 2
  193141. 4a5da2d144 Make documentation theme configurable
  193142. .UNINDENT
  193143. .IP \(bu 2
  193144. \fBPR\fP \fI\%#46162\fP: (\fI\%rallytime\fP) Add team\-suse to CODEOWNERS file for zypper files
  193145. @ \fI2018\-03\-09 17:46:13 UTC\fP
  193146. .INDENT 2.0
  193147. .IP \(bu 2
  193148. 10ce0e9e20 Merge pull request \fI\%#46162\fP from rallytime/team\-suse\-zypper\-owner
  193149. .IP \(bu 2
  193150. 13a295a3b7 Add \fIpkg\fP and \fIsnapper\fP to team\-suse
  193151. .IP \(bu 2
  193152. 35c7b7b0d3 Add btrfs, xfs, yumpkg, and kubernetes file to team\-suse
  193153. .IP \(bu 2
  193154. 485d777ac0 Add team\-suse to CODEOWNERS file for zypper files
  193155. .UNINDENT
  193156. .IP \(bu 2
  193157. \fBPR\fP \fI\%#46434\fP: (\fI\%gtmanfred\fP) split return key value correctly
  193158. @ \fI2018\-03\-09 17:45:21 UTC\fP
  193159. .INDENT 2.0
  193160. .IP \(bu 2
  193161. cac096b311 Merge pull request \fI\%#46434\fP from gtmanfred/highstate_return
  193162. .IP \(bu 2
  193163. d18f1a55a7 fix pylint
  193164. .IP \(bu 2
  193165. 9e2c3f7991 split return key value correctly
  193166. .UNINDENT
  193167. .IP \(bu 2
  193168. \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)
  193169. .IP \(bu 2
  193170. \fBPR\fP \fI\%#46455\fP: (\fI\%whytewolf\fP) .format remove fix for \fI\%#44452\fP
  193171. @ \fI2018\-03\-09 17:37:19 UTC\fP
  193172. .INDENT 2.0
  193173. .IP \(bu 2
  193174. 7dd71101ce Merge pull request \fI\%#46455\fP from whytewolf/Issue_44452_unicode_cloud
  193175. .IP \(bu 2
  193176. 5fe474b1a8 .format remove fix for \fI\%#44452\fP
  193177. .UNINDENT
  193178. .IP \(bu 2
  193179. \fBPR\fP \fI\%#46428\fP: (\fI\%twangboy\fP) Fix issue with dev env install on Windows
  193180. @ \fI2018\-03\-09 14:52:46 UTC\fP
  193181. .INDENT 2.0
  193182. .IP \(bu 2
  193183. 4c8d9026d3 Merge pull request \fI\%#46428\fP from twangboy/win_fix_reqs
  193184. .IP \(bu 2
  193185. e7ab97cc17 Remove six as a hard dep for Salt
  193186. .IP \(bu 2
  193187. cc67e5c2ef Set six to 1.11.0
  193188. .UNINDENT
  193189. .IP \(bu 2
  193190. \fBPR\fP \fI\%#46454\fP: (\fI\%gtmanfred\fP) fix windows for kitchen
  193191. @ \fI2018\-03\-08 21:19:31 UTC\fP
  193192. .INDENT 2.0
  193193. .IP \(bu 2
  193194. e834d9a63b Merge pull request \fI\%#46454\fP from gtmanfred/kitchen
  193195. .IP \(bu 2
  193196. b8ab8434a5 fix windows for kitchen
  193197. .UNINDENT
  193198. .IP \(bu 2
  193199. \fBISSUE\fP \fI\%#46451\fP: (\fI\%gmacon\fP) SPM fails to start with customized cache location (refs: \fI\%#46452\fP)
  193200. .IP \(bu 2
  193201. \fBPR\fP \fI\%#46452\fP: (\fI\%gtmanfred\fP) make spm cache_dir instead of all cachedirs
  193202. @ \fI2018\-03\-08 21:12:20 UTC\fP
  193203. .INDENT 2.0
  193204. .IP \(bu 2
  193205. 2886dca88f Merge pull request \fI\%#46452\fP from gtmanfred/spm_cache_dir
  193206. .IP \(bu 2
  193207. 169cf7a4e2 make spm cache_dir instead of all cachedirs
  193208. .UNINDENT
  193209. .IP \(bu 2
  193210. \fBPR\fP \fI\%#46446\fP: (\fI\%bdrung\fP) Fix various typos
  193211. @ \fI2018\-03\-08 21:11:47 UTC\fP
  193212. .INDENT 2.0
  193213. .IP \(bu 2
  193214. a188984cd9 Merge pull request \fI\%#46446\fP from bdrung/fix\-typos
  193215. .IP \(bu 2
  193216. 7e6e80be87 heat: Fix spelling mistake of environment
  193217. .IP \(bu 2
  193218. a3c54b50f6 Fix various spelling mistakes
  193219. .UNINDENT
  193220. .IP \(bu 2
  193221. \fBISSUE\fP \fI\%#20581\fP: (\fI\%notpeter\fP) Many environments: one pillar_root (all your envs are belong to base) (refs: \fI\%#46309\fP)
  193222. .IP \(bu 2
  193223. \fBPR\fP \fI\%#46309\fP: (\fI\%bdrung\fP) Support dynamic pillar_root environment
  193224. @ \fI2018\-03\-08 19:15:35 UTC\fP
  193225. .INDENT 2.0
  193226. .IP \(bu 2
  193227. e35fc5263c Merge pull request \fI\%#46309\fP from bdrung/dynamic\-pillarenv
  193228. .IP \(bu 2
  193229. 584b451fd1 Support dynamic pillar_root environment
  193230. .UNINDENT
  193231. .IP \(bu 2
  193232. \fBISSUE\fP \fI\%#44032\fP: (\fI\%PhilippeAB\fP) blockreplace marker_end isn\(aqt applied with newline (refs: \fI\%#46430\fP)
  193233. .IP \(bu 2
  193234. \fBPR\fP \fI\%#46430\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state
  193235. @ \fI2018\-03\-08 15:41:38 UTC\fP
  193236. .INDENT 2.0
  193237. .IP \(bu 2
  193238. 35fe9827fe Merge pull request \fI\%#46430\fP from terminalmage/issue44032
  193239. .IP \(bu 2
  193240. f9f187e915 Improve reliability/idempotence of file.blockreplace state
  193241. .UNINDENT
  193242. .IP \(bu 2
  193243. \fBPR\fP \fI\%#46429\fP: (\fI\%twangboy\fP) Fix problem with __virtual__ in win_snmp
  193244. @ \fI2018\-03\-07 23:26:46 UTC\fP
  193245. .INDENT 2.0
  193246. .IP \(bu 2
  193247. 2bad0a21c0 Merge pull request \fI\%#46429\fP from twangboy/win_fix_snmp
  193248. .IP \(bu 2
  193249. 8995a9b8de Fix problem with __virtual__ in win_snmp
  193250. .UNINDENT
  193251. .IP \(bu 2
  193252. \fBPR\fP \fI\%#46100\fP: (\fI\%jfindlay\fP) Handle IPv6 scope parameter in resolv.conf
  193253. @ \fI2018\-03\-07 19:51:20 UTC\fP
  193254. .INDENT 2.0
  193255. .IP \(bu 2
  193256. 93a572f229 Merge pull request \fI\%#46100\fP from jfindlay/resolv_scope
  193257. .IP \(bu 2
  193258. d5561bedaf tests.unit.grains.core add scoped IPv6 nameserver
  193259. .IP \(bu 2
  193260. 4e2e62d508 salt.utils.dns parse scope param for ipv6 servers
  193261. .UNINDENT
  193262. .IP \(bu 2
  193263. \fBPR\fP \fI\%#46420\fP: (\fI\%bdrung\fP) Fix SSH client exception if SSH is not found
  193264. @ \fI2018\-03\-07 17:49:00 UTC\fP
  193265. .INDENT 2.0
  193266. .IP \(bu 2
  193267. 5acc1d5c54 Merge pull request \fI\%#46420\fP from bdrung/2017.7
  193268. .IP \(bu 2
  193269. e48c13d9e0 Fix SSH client exception if SSH is not found
  193270. .UNINDENT
  193271. .IP \(bu 2
  193272. \fBPR\fP \fI\%#46379\fP: (\fI\%angeloudy\fP) TypeError: a bytes\-like object is required, not \(aqstr\(aq
  193273. @ \fI2018\-03\-07 15:00:47 UTC\fP
  193274. .INDENT 2.0
  193275. .IP \(bu 2
  193276. ca6a76e317 Merge pull request \fI\%#46379\fP from angeloudy/2017.7
  193277. .IP \(bu 2
  193278. 3acb59c74c Merge branch \(aq2017.7\(aq into 2017.7
  193279. .IP \(bu 2
  193280. d971e0c08b Fix indent
  193281. .IP \(bu 2
  193282. 269514683f Update http.py
  193283. .IP \(bu 2
  193284. 908c040ac3 Update http.py
  193285. .IP \(bu 2
  193286. 51ba3c135b Update http.py
  193287. .IP \(bu 2
  193288. 14aba24111 fix bytes\-object required error in python 3
  193289. .UNINDENT
  193290. .IP \(bu 2
  193291. \fBPR\fP \fI\%#46404\fP: (\fI\%gtmanfred\fP) get 2017.7 ready to switch over to the new jenkins
  193292. @ \fI2018\-03\-07 14:29:30 UTC\fP
  193293. .INDENT 2.0
  193294. .IP \(bu 2
  193295. 73f9233557 Merge pull request \fI\%#46404\fP from gtmanfred/kitchen
  193296. .IP \(bu 2
  193297. c56baa95a8 clone .git for the version tests
  193298. .IP \(bu 2
  193299. 3620611b5b fix unhold package for debian
  193300. .IP \(bu 2
  193301. 5219f7d2ba fix minion log path
  193302. .UNINDENT
  193303. .IP \(bu 2
  193304. \fBISSUE\fP \fI\%#46192\fP: (\fI\%asymetrixs\fP) salt\-log\-setup: AttributeError \(aqNoneType\(aq object has no attribute \(aqflush\(aq (refs: \fI\%#46310\fP)
  193305. .IP \(bu 2
  193306. \fBPR\fP \fI\%#46310\fP: (\fI\%twangboy\fP) Update the Windows installer build scripts
  193307. @ \fI2018\-03\-06 20:21:58 UTC\fP
  193308. .INDENT 2.0
  193309. .IP \(bu 2
  193310. ca28cfd4e4 Merge pull request \fI\%#46310\fP from twangboy/win_update_installer_build
  193311. .IP \(bu 2
  193312. bcf8b19566 Update the installer build
  193313. .UNINDENT
  193314. .IP \(bu 2
  193315. \fBPR\fP \fI\%#46316\fP: (\fI\%twangboy\fP) Fix issues with the DSC module
  193316. @ \fI2018\-03\-06 20:16:18 UTC\fP
  193317. .INDENT 2.0
  193318. .IP \(bu 2
  193319. decccbeca3 Merge pull request \fI\%#46316\fP from twangboy/win_fix_dsc
  193320. .IP \(bu 2
  193321. 2042d33d59 Fix issues with the DSC module
  193322. .UNINDENT
  193323. .IP \(bu 2
  193324. \fBPR\fP \fI\%#46394\fP: (\fI\%Ch3LL\fP) Add mac py2 and py3 packages to mac installation docs
  193325. @ \fI2018\-03\-06 16:45:30 UTC\fP
  193326. .INDENT 2.0
  193327. .IP \(bu 2
  193328. 95586678c3 Merge pull request \fI\%#46394\fP from Ch3LL/mac_doc
  193329. .IP \(bu 2
  193330. 158add6661 change oxdownload to oxdownload\-{python_version}
  193331. .IP \(bu 2
  193332. 21aa848c89 Add mac py2 and py3 packages to mac installation docs
  193333. .UNINDENT
  193334. .IP \(bu 2
  193335. \fBISSUE\fP \fI\%#44831\fP: (\fI\%kivoli\fP) cmd.wait deprecated but cannot replicate conditional execution with onchanges (refs: \fI\%#46338\fP)
  193336. .IP \(bu 2
  193337. \fBPR\fP \fI\%#46338\fP: (\fI\%rallytime\fP) Remove cmd.wait deprecation reference in docs
  193338. @ \fI2018\-03\-05 21:48:52 UTC\fP
  193339. .INDENT 2.0
  193340. .IP \(bu 2
  193341. 07b5d09ac1 Merge pull request \fI\%#46338\fP from rallytime/fix\-44831
  193342. .IP \(bu 2
  193343. 90771da999 Remove cmd.wait deprecation reference in docs
  193344. .UNINDENT
  193345. .IP \(bu 2
  193346. \fBISSUE\fP \fI\%#42438\fP: (\fI\%ajoaugustine\fP) Failed to send message: hipchat\-message (refs: \fI\%#46333\fP)
  193347. .IP \(bu 2
  193348. \fBPR\fP \fI\%#46333\fP: (\fI\%danlsgiga\fP) Fixes color parameter mismatch and handles 204 responses correctly
  193349. @ \fI2018\-03\-05 19:42:26 UTC\fP
  193350. .INDENT 2.0
  193351. .IP \(bu 2
  193352. 3849e7a085 Merge pull request \fI\%#46333\fP from danlsgiga/issue\-42438
  193353. .IP \(bu 2
  193354. 3b13f37b44 Revert changes in the code and change docs instead
  193355. .IP \(bu 2
  193356. 38114a65d8 Fixes color parameter mismatch and handles 204 responses correctly
  193357. .UNINDENT
  193358. .IP \(bu 2
  193359. \fBISSUE\fP \fI\%#44935\fP: (\fI\%grinapo\fP) module.file.replace string seems to be mutated into arrays (refs: \fI\%#46322\fP)
  193360. .IP \(bu 2
  193361. \fBPR\fP \fI\%#46322\fP: (\fI\%terminalmage\fP) yamlify_arg: don\(aqt treat leading dashes as lists
  193362. @ \fI2018\-03\-05 15:40:17 UTC\fP
  193363. .INDENT 2.0
  193364. .IP \(bu 2
  193365. a8f2f1b063 Merge pull request \fI\%#46322\fP from terminalmage/issue44935
  193366. .IP \(bu 2
  193367. 85ac6a9893 yamlify_arg: don\(aqt treat leading dashes as lists
  193368. .UNINDENT
  193369. .IP \(bu 2
  193370. \fBPR\fP \fI\%#46327\fP: (\fI\%samilaine\fP) Modify the way a FQDN is handled in the vmware cloud provider.
  193371. @ \fI2018\-03\-05 15:35:37 UTC\fP
  193372. .INDENT 2.0
  193373. .IP \(bu 2
  193374. da5c282cb2 Merge pull request \fI\%#46327\fP from samilaine/fix\-vmware\-cloud\-fqdn
  193375. .IP \(bu 2
  193376. 4b8dfb326f Modify the way a FQDN is handled in the vmware cloud provider.
  193377. .UNINDENT
  193378. .IP \(bu 2
  193379. \fBPR\fP \fI\%#46318\fP: (\fI\%terminalmage\fP) Skip type\-checking for several gitfs/git_pillar/winrepo params
  193380. @ \fI2018\-03\-05 15:04:27 UTC\fP
  193381. .INDENT 2.0
  193382. .IP \(bu 2
  193383. 78c45d3786 Merge pull request \fI\%#46318\fP from terminalmage/squelch\-warnings
  193384. .IP \(bu 2
  193385. 5889b36646 Skip type\-checking for several gitfs/git_pillar/winrepo params
  193386. .UNINDENT
  193387. .IP \(bu 2
  193388. \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)
  193389. .IP \(bu 2
  193390. \fBPR\fP \fI\%#46312\fP: (\fI\%gtmanfred\fP) add module_dirs to salt ssh thin tarball
  193391. @ \fI2018\-03\-05 15:00:48 UTC\fP
  193392. .INDENT 2.0
  193393. .IP \(bu 2
  193394. bb0d6fc263 Merge pull request \fI\%#46312\fP from gtmanfred/2017.7
  193395. .IP \(bu 2
  193396. 749ae580ed add module_dirs to salt ssh thin tarball
  193397. .UNINDENT
  193398. .IP \(bu 2
  193399. \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)
  193400. .IP \(bu 2
  193401. \fBPR\fP \fI\%#46242\fP: (\fI\%redbaron4\fP) Pass env_vars to pip.freeze
  193402. @ \fI2018\-03\-05 14:53:13 UTC\fP
  193403. .INDENT 2.0
  193404. .IP \(bu 2
  193405. 88b5f7383d Merge pull request \fI\%#46242\fP from redbaron4/fix\-46127
  193406. .IP \(bu 2
  193407. 06dba51617 Make changes from review
  193408. .IP \(bu 2
  193409. 727ebe1056 Merge branch \(aq2017.7\(aq into fix\-46127
  193410. .IP \(bu 2
  193411. 08d1ee8baf Fix Python3 test errors
  193412. .IP \(bu 2
  193413. aa9d709015 Pass env_vars to pip.freeze
  193414. .UNINDENT
  193415. .IP \(bu 2
  193416. \fBPR\fP \fI\%#46265\fP: (\fI\%Ch3LL\fP) Add username/password to profitbricks conf for cloud tests
  193417. @ \fI2018\-03\-02 21:40:22 UTC\fP
  193418. .INDENT 2.0
  193419. .IP \(bu 2
  193420. a0716643e4 Merge pull request \fI\%#46265\fP from Ch3LL/profit_cloud
  193421. .IP \(bu 2
  193422. d4893eab4c Add username/password to profitbricks conf for cloud tests
  193423. .UNINDENT
  193424. .IP \(bu 2
  193425. \fBPR\fP \fI\%#46306\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46256\fP to 2017.7
  193426. @ \fI2018\-03\-02 21:37:26 UTC\fP
  193427. .INDENT 2.0
  193428. .IP \(bu 2
  193429. \fBPR\fP \fI\%#46256\fP: (\fI\%rallytime\fP) Don\(aqt install msgpack 0.5.5 (refs: \fI\%#46306\fP)
  193430. .IP \(bu 2
  193431. ed7bffa7e0 Merge pull request \fI\%#46306\fP from rallytime/bp\-46256
  193432. .IP \(bu 2
  193433. 6439bce4a8 Don\(aqt install msgpack 0.5.5
  193434. .UNINDENT
  193435. .IP \(bu 2
  193436. \fBPR\fP \fI\%#46208\fP: (\fI\%terminalmage\fP) Blacklist os.umask
  193437. @ \fI2018\-03\-02 18:46:07 UTC\fP
  193438. .INDENT 2.0
  193439. .IP \(bu 2
  193440. 8c2c4e3316 Merge pull request \fI\%#46208\fP from terminalmage/audit\-umask\-usage
  193441. .IP \(bu 2
  193442. 9c92aadce8 Disable blacklisted\-function check for legitimate uses
  193443. .IP \(bu 2
  193444. 58a11aaa26 Disable pylint check in salt\-ssh shim
  193445. .IP \(bu 2
  193446. ecadf67659 Blacklist os.umask
  193447. .IP \(bu 2
  193448. 31b1d98fcb Replace direct use of os.umask with use of existing context manager
  193449. .IP \(bu 2
  193450. 82ce546e18 Prevent failed os.makedirs from leaving modified umask in place
  193451. .UNINDENT
  193452. .IP \(bu 2
  193453. \fBPR\fP \fI\%#46293\fP: (\fI\%eliasp\fP) Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  193454. @ \fI2018\-03\-02 16:36:10 UTC\fP
  193455. .INDENT 2.0
  193456. .IP \(bu 2
  193457. \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)
  193458. .IP \(bu 2
  193459. 978e869490 Merge pull request \fI\%#46293\fP from eliasp/2017.7\-44624\-py3\-compat
  193460. .IP \(bu 2
  193461. 2e08b0d9c8 Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  193462. .UNINDENT
  193463. .IP \(bu 2
  193464. \fBISSUE\fP \fI\%#46128\fP: (\fI\%Boulet\-\fP) Mountpoint in git_pillar (refs: \fI\%#46264\fP)
  193465. .IP \(bu 2
  193466. \fBPR\fP \fI\%#46264\fP: (\fI\%terminalmage\fP) Fix incorrect merge conflict resolution
  193467. @ \fI2018\-03\-02 14:21:13 UTC\fP
  193468. .INDENT 2.0
  193469. .IP \(bu 2
  193470. bee4a66d0c Merge pull request \fI\%#46264\fP from terminalmage/issue46128
  193471. .IP \(bu 2
  193472. 68000b7211 Fix incorrect merge conflict resolution
  193473. .UNINDENT
  193474. .IP \(bu 2
  193475. \fBPR\fP \fI\%#46296\fP: (\fI\%vutny\fP) [DOC] Add missing params to \fIpillar.get\fP docstring
  193476. @ \fI2018\-03\-02 14:19:41 UTC\fP
  193477. .INDENT 2.0
  193478. .IP \(bu 2
  193479. 1e0b3aa348 Merge pull request \fI\%#46296\fP from vutny/doc\-pillar\-get
  193480. .IP \(bu 2
  193481. 1faa8331e1 [DOC] Add missing params to \fIpillar.get\fP docstring
  193482. .UNINDENT
  193483. .IP \(bu 2
  193484. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug
  193485. @ \fI2018\-03\-01 19:39:35 UTC\fP
  193486. .INDENT 2.0
  193487. .IP \(bu 2
  193488. c490a50452 Merge pull request \fI\%#45874\fP from GwiYeong/2017.7\-local\-client\-hotfix
  193489. .IP \(bu 2
  193490. 949aefc82b Merge branch \(aq2017.7\(aq into 2017.7\-local\-client\-hotfix
  193491. .IP \(bu 2
  193492. 45d663f435 fix for local client timeout bug
  193493. .UNINDENT
  193494. .IP \(bu 2
  193495. \fBPR\fP \fI\%#46261\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193496. @ \fI2018\-03\-01 17:55:23 UTC\fP
  193497. .INDENT 2.0
  193498. .IP \(bu 2
  193499. 8e8a3a2897 Merge pull request \fI\%#46261\fP from rallytime/merge\-2017.7
  193500. .IP \(bu 2
  193501. 8256ae5ee5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193502. .INDENT 2.0
  193503. .IP \(bu 2
  193504. 140ef4d6b9 Merge pull request \fI\%#46253\fP from rallytime/doc\-banners
  193505. .INDENT 2.0
  193506. .IP \(bu 2
  193507. 07ed8c7db3 Update docbanner for SaltConf18
  193508. .UNINDENT
  193509. .IP \(bu 2
  193510. 9fe86ee520 Merge pull request \fI\%#46179\fP from wedge\-jarrad/cifs\-remount\-fix
  193511. .INDENT 2.0
  193512. .IP \(bu 2
  193513. 9ca25c4313 Add credentials and secretfile to mount.mounted mount_invisible_keys
  193514. .UNINDENT
  193515. .UNINDENT
  193516. .UNINDENT
  193517. .IP \(bu 2
  193518. \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)
  193519. .IP \(bu 2
  193520. \fBPR\fP \fI\%#46276\fP: (\fI\%terminalmage\fP) salt.utils.docker.translate_input: operate on deepcopy of kwargs
  193521. @ \fI2018\-03\-01 15:37:44 UTC\fP
  193522. .INDENT 2.0
  193523. .IP \(bu 2
  193524. 88a3166589 Merge pull request \fI\%#46276\fP from terminalmage/issue44046
  193525. .IP \(bu 2
  193526. a14d4daf8c salt.utils.docker.translate_input: operate on deepcopy of kwargs
  193527. .UNINDENT
  193528. .IP \(bu 2
  193529. \fBISSUE\fP \fI\%#46182\fP: (\fI\%oeuftete\fP) docker_container.running is sensitive to HostConfig Ulimits ordering (refs: \fI\%#46183\fP)
  193530. .IP \(bu 2
  193531. \fBPR\fP \fI\%#46183\fP: (\fI\%oeuftete\fP) Fix docker_container.running HostConfig Ulimits comparison
  193532. @ \fI2018\-02\-28 22:22:11 UTC\fP
  193533. .INDENT 2.0
  193534. .IP \(bu 2
  193535. da60399b8f Merge pull request \fI\%#46183\fP from oeuftete/fix\-docker\-container\-running\-host\-config\-ulimits
  193536. .IP \(bu 2
  193537. 5b09644429 Sort lists from Ulimits before comparing
  193538. .IP \(bu 2
  193539. 0b80f02226 Update old dockerng doc ref
  193540. .UNINDENT
  193541. .IP \(bu 2
  193542. \fBISSUE\fP \fI\%#46259\fP: (\fI\%terminalmage\fP) git_pillar_branch overrides branch defined in git_pillar configuration (refs: \fI\%#46260\fP)
  193543. .IP \(bu 2
  193544. \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)
  193545. .IP \(bu 2
  193546. \fBPR\fP \fI\%#46260\fP: (\fI\%terminalmage\fP) Normalize global git_pillar/winrepo config items
  193547. @ \fI2018\-02\-28 22:05:26 UTC\fP
  193548. .INDENT 2.0
  193549. .IP \(bu 2
  193550. 509429f08c Merge pull request \fI\%#46260\fP from terminalmage/git_pillar
  193551. .IP \(bu 2
  193552. b1ce2501fd Normalize global git_pillar/winrepo config items
  193553. .UNINDENT
  193554. .IP \(bu 2
  193555. \fBPR\fP \fI\%#46101\fP: (\fI\%jfindlay\fP) In OpenRC exec module, make sure to ignore retcode on status
  193556. @ \fI2018\-02\-28 20:01:37 UTC\fP
  193557. .INDENT 2.0
  193558. .IP \(bu 2
  193559. a97a3e6fb0 Merge pull request \fI\%#46101\fP from jfindlay/openrc_ret
  193560. .IP \(bu 2
  193561. 2eef3c65a6 tests.unit.modules.gentoo_service add retcode arg
  193562. .IP \(bu 2
  193563. 81ec66fd8b modules.gentoo_service handle stopped retcode
  193564. .UNINDENT
  193565. .IP \(bu 2
  193566. \fBPR\fP \fI\%#46254\fP: (\fI\%rallytime\fP) Update enterprise banner
  193567. @ \fI2018\-02\-28 19:54:03 UTC\fP
  193568. .INDENT 2.0
  193569. .IP \(bu 2
  193570. 1a17593c05 Merge pull request \fI\%#46254\fP from rallytime/enterprise\-banner
  193571. .IP \(bu 2
  193572. f5fae3dedf Update enterprise banner
  193573. .UNINDENT
  193574. .IP \(bu 2
  193575. \fBPR\fP \fI\%#46250\fP: (\fI\%terminalmage\fP) Add documentation to the fileserver runner
  193576. @ \fI2018\-02\-28 18:53:49 UTC\fP
  193577. .INDENT 2.0
  193578. .IP \(bu 2
  193579. 8c50ff32bd Merge pull request \fI\%#46250\fP from terminalmage/runner\-docs
  193580. .IP \(bu 2
  193581. 91b4895087 Add documentation to the fileserver runner
  193582. .UNINDENT
  193583. .IP \(bu 2
  193584. \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)
  193585. .IP \(bu 2
  193586. \fBPR\fP \fI\%#46243\fP: (\fI\%racker\-markh\fP) Don\(aqt ignore \(aqprivate_ips\(aq unnecessarily
  193587. @ \fI2018\-02\-28 15:28:29 UTC\fP
  193588. .INDENT 2.0
  193589. .IP \(bu 2
  193590. 53067cca43 Merge pull request \fI\%#46243\fP from racker\-markh/fix\-openstack\-private\-network\-issue
  193591. .IP \(bu 2
  193592. 50c1e140f0 Don\(aqt check deny private_ips already in the original list of private_ips
  193593. .UNINDENT
  193594. .IP \(bu 2
  193595. \fBISSUE\fP \fI\%#46109\fP: (\fI\%rombert\fP) archive.extracted takes a long time (> 4 minutes) even though directory exists (refs: \fI\%#46239\fP)
  193596. .IP \(bu 2
  193597. \fBPR\fP \fI\%#46239\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt check source file when if_missing path exists
  193598. @ \fI2018\-02\-28 15:01:36 UTC\fP
  193599. .INDENT 2.0
  193600. .IP \(bu 2
  193601. 15405c8760 Merge pull request \fI\%#46239\fP from terminalmage/issue46109
  193602. .IP \(bu 2
  193603. 586d8b0dcf archive.extracted: don\(aqt check source file when if_missing path exists
  193604. .UNINDENT
  193605. .IP \(bu 2
  193606. \fBPR\fP \fI\%#46221\fP: (\fI\%terminalmage\fP) Fix hanging tests in integration suite
  193607. @ \fI2018\-02\-27 21:32:25 UTC\fP
  193608. .INDENT 2.0
  193609. .IP \(bu 2
  193610. 633e1208e4 Merge pull request \fI\%#46221\fP from terminalmage/salt\-jenkins\-854
  193611. .IP \(bu 2
  193612. 0eb012659c Fix hanging tests in integration suite
  193613. .UNINDENT
  193614. .IP \(bu 2
  193615. \fBPR\fP \fI\%#46214\fP: (\fI\%vutny\fP) [DOC] Replace \fInote\fP rST block for GitHub
  193616. @ \fI2018\-02\-27 17:42:37 UTC\fP
  193617. .INDENT 2.0
  193618. .IP \(bu 2
  193619. 7917277345 Merge pull request \fI\%#46214\fP from vutny/formulas\-readme\-formatting
  193620. .IP \(bu 2
  193621. d702846961 [DOC] Replace \fInote\fP rST block for GitHub
  193622. .UNINDENT
  193623. .IP \(bu 2
  193624. \fBPR\fP \fI\%#46203\fP: (\fI\%Ch3LL\fP) Add 2017.7.5 Release Notes File
  193625. @ \fI2018\-02\-26 21:17:48 UTC\fP
  193626. .INDENT 2.0
  193627. .IP \(bu 2
  193628. a2e099b744 Merge pull request \fI\%#46203\fP from Ch3LL/7.5_release
  193629. .IP \(bu 2
  193630. 6ddf3246ce Add 2017.7.5 Release Notes File
  193631. .UNINDENT
  193632. .IP \(bu 2
  193633. \fBPR\fP \fI\%#46201\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193634. @ \fI2018\-02\-26 18:56:47 UTC\fP
  193635. .INDENT 2.0
  193636. .IP \(bu 2
  193637. 973b227818 Merge pull request \fI\%#46201\fP from rallytime/merge\-2017.7
  193638. .IP \(bu 2
  193639. 9ac2101baa Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193640. .IP \(bu 2
  193641. a4c5417d23 Merge pull request \fI\%#46132\fP from rallytime/2016.11_update_version_doc
  193642. .INDENT 2.0
  193643. .IP \(bu 2
  193644. d2196b6df3 Update release versions for the 2016.11 branch
  193645. .UNINDENT
  193646. .UNINDENT
  193647. .IP \(bu 2
  193648. \fBISSUE\fP \fI\%#34423\fP: (\fI\%bdrung\fP) oscodename wrong on Debian 8 (jessie) (refs: \fI\%#46139\fP)
  193649. .IP \(bu 2
  193650. \fBPR\fP \fI\%#46139\fP: (\fI\%bdrung\fP) Add os grains test cases for Debian/Ubuntu and fix oscodename on Ubuntu
  193651. @ \fI2018\-02\-26 16:44:04 UTC\fP
  193652. .INDENT 2.0
  193653. .IP \(bu 2
  193654. 89cf2e5061 Merge pull request \fI\%#46139\fP from bdrung/os\-grains
  193655. .IP \(bu 2
  193656. 0b445f2a37 tests: Add unit tests for _parse_os_release()
  193657. .IP \(bu 2
  193658. f6069b77ed Fix osfinger grain on Debian
  193659. .IP \(bu 2
  193660. 8dde55a761 tests: Add os_grains test cases for Debian
  193661. .IP \(bu 2
  193662. ff02ab9937 tests: Add Ubuntu 17.10 (artful) os_grains test case
  193663. .IP \(bu 2
  193664. 77d5356aba Fix incorrect oscodename grain on Ubuntu
  193665. .IP \(bu 2
  193666. 7e62dc9fd2 tests: Support reading os\-release files from disk
  193667. .IP \(bu 2
  193668. a92ec0db1b Make _parse_os_release() always callable
  193669. .IP \(bu 2
  193670. eee1fe5b38 tests: Dissolve _run_ubuntu_os_grains_tests
  193671. .IP \(bu 2
  193672. 1d6ef731fe tests: Deduplicate _run_os_grains_tests()
  193673. .UNINDENT
  193674. .IP \(bu 2
  193675. \fBPR\fP \fI\%#46133\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  193676. @ \fI2018\-02\-26 16:42:43 UTC\fP
  193677. .INDENT 2.0
  193678. .IP \(bu 2
  193679. c8c71e75ca Merge pull request \fI\%#46133\fP from rallytime/2017.7_update_version_doc
  193680. .IP \(bu 2
  193681. 0ed338e643 Update release versions for the 2017.7 branch
  193682. .UNINDENT
  193683. .IP \(bu 2
  193684. \fBISSUE\fP \fI\%#46124\fP: (\fI\%moremo\fP) GitFS saltenv ref won\(aqt pick up multiple of the same ref (refs: \fI\%#46185\fP)
  193685. .IP \(bu 2
  193686. \fBPR\fP \fI\%#46185\fP: (\fI\%terminalmage\fP) gitfs: Fix detection of base env when its ref is also mapped to a different env
  193687. @ \fI2018\-02\-26 14:52:16 UTC\fP
  193688. .INDENT 2.0
  193689. .IP \(bu 2
  193690. 390d592aa6 Merge pull request \fI\%#46185\fP from terminalmage/issue46124
  193691. .IP \(bu 2
  193692. 3b58dd0da0 gitfs: Fix detection of base env when its ref is also mapped to a different env
  193693. .UNINDENT
  193694. .IP \(bu 2
  193695. \fBPR\fP \fI\%#46148\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  193696. @ \fI2018\-02\-23 19:21:38 UTC\fP
  193697. .INDENT 2.0
  193698. .IP \(bu 2
  193699. 705caa8cca Merge pull request \fI\%#46148\fP from rallytime/merge\-2017.7
  193700. .IP \(bu 2
  193701. 25deebf7a6 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  193702. .UNINDENT
  193703. .IP \(bu 2
  193704. \fBPR\fP \fI\%#46137\fP: (\fI\%damon\-atkins\fP) [2017.7] update ec2 pillar arguments with better names
  193705. @ \fI2018\-02\-23 13:32:04 UTC\fP
  193706. .INDENT 2.0
  193707. .IP \(bu 2
  193708. \fBPR\fP \fI\%#45878\fP: (\fI\%damon\-atkins\fP) ec2_pillar update to fix finding instance\-id (refs: \fI\%#46137\fP)
  193709. .IP \(bu 2
  193710. 10a47dcbc4 Merge pull request \fI\%#46137\fP from damon\-atkins/2017.7_fix_ec2_pillar2
  193711. .IP \(bu 2
  193712. 99e7f6a7d3 update ec2 pillar arguments with better names
  193713. .UNINDENT
  193714. .IP \(bu 2
  193715. \fBISSUE\fP \fI\%#46004\fP: (\fI\%github\-abcde\fP) opts file_roots gets overwritten with pillar_roots in orchestration run (refs: \fI\%#46145\fP)
  193716. .IP \(bu 2
  193717. \fBPR\fP \fI\%#46145\fP: (\fI\%terminalmage\fP) 3 small fixes for runners/orchestration
  193718. @ \fI2018\-02\-22 22:11:11 UTC\fP
  193719. .INDENT 2.0
  193720. .IP \(bu 2
  193721. d74cb14557 Merge pull request \fI\%#46145\fP from terminalmage/issue46004
  193722. .IP \(bu 2
  193723. 467ff841cd pillarenv argument should default to None and not the value from opts
  193724. .IP \(bu 2
  193725. 2a185855ea Better solution for fixing the opts munging in pillar.show_pillar runner
  193726. .IP \(bu 2
  193727. e2c4702e0c Update tests to reflect changes to the SaltCacheLoader
  193728. .IP \(bu 2
  193729. f9301fcc34 Document behavior when orchestration runnner invoked with non\-orch states
  193730. .IP \(bu 2
  193731. 9644579cd0 Instantiate the SaltCacheLoader\(aqs fileclient in the __init__
  193732. .IP \(bu 2
  193733. f9a6c86e21 salt.runners.pillar.show_pillar: don\(aqt modify master opts
  193734. .IP \(bu 2
  193735. e0940a9fc4 Properly detect use of the state.orch alias and add orch jid to kwargs
  193736. .UNINDENT
  193737. .IP \(bu 2
  193738. \fBPR\fP \fI\%#46135\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46088\fP to 2017.7
  193739. @ \fI2018\-02\-22 15:11:14 UTC\fP
  193740. .INDENT 2.0
  193741. .IP \(bu 2
  193742. \fBPR\fP \fI\%#46088\fP: (\fI\%rongzeng54\fP) fix kernel subpackages install bug (refs: \fI\%#46135\fP)
  193743. .IP \(bu 2
  193744. 0398ce0482 Merge pull request \fI\%#46135\fP from rallytime/bp\-46088
  193745. .IP \(bu 2
  193746. 57a60f62a3 fix kernel subpackages install bug
  193747. .UNINDENT
  193748. .IP \(bu 2
  193749. \fBISSUE\fP \fI\%#45837\fP: (\fI\%johje349\fP) Salt Cloud does not recognise all Digitalocean sizes (refs: \fI\%#46115\fP)
  193750. .IP \(bu 2
  193751. \fBPR\fP \fI\%#46136\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46115\fP to 2017.7
  193752. @ \fI2018\-02\-21 19:17:23 UTC\fP
  193753. .INDENT 2.0
  193754. .IP \(bu 2
  193755. \fBPR\fP \fI\%#46115\fP: (\fI\%samodid\fP) update digitalocean salt\-cloud driver (refs: \fI\%#46136\fP)
  193756. .IP \(bu 2
  193757. 1fcbbd1e02 Merge pull request \fI\%#46136\fP from rallytime/bp\-46115
  193758. .IP \(bu 2
  193759. 0a481d707f update digitalocean salt\-cloud driver
  193760. .UNINDENT
  193761. .IP \(bu 2
  193762. \fBPR\fP \fI\%#45911\fP: (\fI\%twangboy\fP) LGPO Module: Convert reg values to unicode for debug
  193763. @ \fI2018\-02\-21 19:02:17 UTC\fP
  193764. .INDENT 2.0
  193765. .IP \(bu 2
  193766. 11e5e8eb86 Merge pull request \fI\%#45911\fP from twangboy/win_fix_lgpo_unicode
  193767. .IP \(bu 2
  193768. bcde5cc625 Update log statement
  193769. .IP \(bu 2
  193770. e9fa53d3b7 Change the Invalid Data Message
  193771. .IP \(bu 2
  193772. c818d4b791 Convert reg values to unicode for debug
  193773. .UNINDENT
  193774. .IP \(bu 2
  193775. \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)
  193776. .IP \(bu 2
  193777. \fBPR\fP \fI\%#46123\fP: (\fI\%gtmanfred\fP) If no pubkey is passed in openmode fail
  193778. @ \fI2018\-02\-21 19:01:47 UTC\fP
  193779. .INDENT 2.0
  193780. .IP \(bu 2
  193781. 524a6a72a0 Merge pull request \fI\%#46123\fP from gtmanfred/2017.7
  193782. .IP \(bu 2
  193783. 8d36730ef7 If no pubkey is passed in openmode fail
  193784. .UNINDENT
  193785. .IP \(bu 2
  193786. \fBPR\fP \fI\%#46131\fP: (\fI\%vutny\fP) [DOC] Fix code\-blocks for reStructuredText
  193787. @ \fI2018\-02\-21 15:47:05 UTC\fP
  193788. .INDENT 2.0
  193789. .IP \(bu 2
  193790. e48fa58012 Merge pull request \fI\%#46131\fP from vutny/doc\-formula\-formatting
  193791. .IP \(bu 2
  193792. d8fb051e44 [DOC] Fix code\-blocks for reStructuredText
  193793. .UNINDENT
  193794. .IP \(bu 2
  193795. \fBISSUE\fP \fI\%#42763\fP: (\fI\%xuhcc\fP) acme.cert state falsely reports about renewed certificate (refs: \fI\%#44603\fP)
  193796. .IP \(bu 2
  193797. \fBISSUE\fP \fI\%#40208\fP: (\fI\%bewing\fP) Inconsistent state return when test=True (refs: \fI\%#44603\fP)
  193798. .IP \(bu 2
  193799. \fBPR\fP \fI\%#46118\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44603\fP to 2017.7
  193800. @ \fI2018\-02\-21 15:21:42 UTC\fP
  193801. .INDENT 2.0
  193802. .IP \(bu 2
  193803. \fBPR\fP \fI\%#44603\fP: (\fI\%oarmstrong\fP) Fix acme state to correctly return on test (refs: \fI\%#46118\fP)
  193804. .IP \(bu 2
  193805. 6cea44ee95 Merge pull request \fI\%#46118\fP from rallytime/bp\-44603
  193806. .IP \(bu 2
  193807. 2a2c23c66b Fix acme state to correctly return on test
  193808. .UNINDENT
  193809. .IP \(bu 2
  193810. \fBPR\fP \fI\%#46121\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193811. @ \fI2018\-02\-21 10:07:18 UTC\fP
  193812. .INDENT 2.0
  193813. .IP \(bu 2
  193814. 16c382b55b Merge pull request \fI\%#46121\fP from rallytime/merge\-2017.7
  193815. .IP \(bu 2
  193816. 4c2f504a85 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193817. .INDENT 2.0
  193818. .IP \(bu 2
  193819. e197a0fbc5 Merge pull request \fI\%#46076\fP from rallytime/bp\-46066
  193820. .INDENT 2.0
  193821. .IP \(bu 2
  193822. b94d73c53e Pin tornado version in requirements file
  193823. .UNINDENT
  193824. .IP \(bu 2
  193825. c72c1bde5f Merge pull request \fI\%#46093\fP from wedge\-jarrad/contributing\-doc\-typo
  193826. .INDENT 2.0
  193827. .IP \(bu 2
  193828. 5a0fe104f7 Fix contributing doc typo
  193829. .UNINDENT
  193830. .IP \(bu 2
  193831. 3cb83ea87e Merge pull request \fI\%#45992\fP from bgridley/fix\-routes\-present\-state
  193832. .INDENT 2.0
  193833. .IP \(bu 2
  193834. 679787699c Add vpc_peering_connection_id to describe_route_tables route_keys
  193835. .UNINDENT
  193836. .IP \(bu 2
  193837. 8a60635da0 Merge pull request \fI\%#46000\fP from terminalmage/issue45910
  193838. .INDENT 2.0
  193839. .IP \(bu 2
  193840. 8cf13325ee salt.states.reg.present: Prevent traceback when reg data is binary
  193841. .UNINDENT
  193842. .IP \(bu 2
  193843. 1f44e285dc Merge pull request \fI\%#46011\fP from terminalmage/fix\-solaris\-runas
  193844. .INDENT 2.0
  193845. .IP \(bu 2
  193846. 8ee0a3a28b Move Solaris USER workaround up a bit
  193847. .IP \(bu 2
  193848. 13cdb52690 cmdmod.py: runas workaround for platforms that don\(aqt set a USER env var
  193849. .UNINDENT
  193850. .IP \(bu 2
  193851. 30fb8f7be0 Merge pull request \fI\%#45467\fP from twangboy/win_exclude_hidden
  193852. .INDENT 2.0
  193853. .IP \(bu 2
  193854. ea41215646 Make the regex pattern less greedy
  193855. .IP \(bu 2
  193856. 6d223cffa7 Add tip about passing bogus saltenv
  193857. .IP \(bu 2
  193858. 1282ae3a93 Skip hidden first
  193859. .IP \(bu 2
  193860. 437a457911 Skip hidden dirs in genrepo
  193861. .IP \(bu 2
  193862. 87dc554dc3 Add final updates to docs
  193863. .IP \(bu 2
  193864. 3646d5c897 Fix some docs formatting, add some warnings
  193865. .IP \(bu 2
  193866. 35c81faf5a Log the source_dir when caching the files
  193867. .IP \(bu 2
  193868. 91c3da8dfd Improve docs for pkg.refresh_db
  193869. .IP \(bu 2
  193870. 4803d92707 Add some documentation
  193871. .IP \(bu 2
  193872. 08b82e0875 Fix lint error, use raw
  193873. .IP \(bu 2
  193874. 2f712691cf Exclude hidden directories in pkg.refresh_db
  193875. .UNINDENT
  193876. .UNINDENT
  193877. .UNINDENT
  193878. .IP \(bu 2
  193879. \fBISSUE\fP \fI\%#46106\fP: (\fI\%amendlik\fP) yumpkg.refresh_db hangs (refs: \fI\%#46107\fP)
  193880. .IP \(bu 2
  193881. \fBPR\fP \fI\%#46107\fP: (\fI\%amendlik\fP) Add \-\-assumeyes on YUM/DNF commands
  193882. @ \fI2018\-02\-20 22:52:06 UTC\fP
  193883. .INDENT 2.0
  193884. .IP \(bu 2
  193885. b92346645b Merge pull request \fI\%#46107\fP from amendlik/yumpkg\-assumeyes
  193886. .IP \(bu 2
  193887. 8d9a432fb2 Add \-\-assumeyes to yum/dnf commands in yumpkg.refresh_db
  193888. .UNINDENT
  193889. .IP \(bu 2
  193890. \fBPR\fP \fI\%#46094\fP: (\fI\%kstreee\fP) Fix memory leak
  193891. @ \fI2018\-02\-20 21:36:02 UTC\fP
  193892. .INDENT 2.0
  193893. .IP \(bu 2
  193894. 14fe423e0c Merge pull request \fI\%#46094\fP from kstreee/fix\-memory\-leak
  193895. .IP \(bu 2
  193896. 48080a1bae Fixes memory leak, saltclients should be cleaned after used.
  193897. .IP \(bu 2
  193898. aba00805f4 Adds set_close_callback function to removes stream instance after closed from a set streams.
  193899. .UNINDENT
  193900. .IP \(bu 2
  193901. \fBISSUE\fP \fI\%#13\fP: (\fI\%thatch45\fP) Expand the stats module (refs: \fI\%#46097\fP)
  193902. .IP \(bu 2
  193903. \fBPR\fP \fI\%#46097\fP: (\fI\%vutny\fP) [DOC] Put https link to the formulas doc page
  193904. @ \fI2018\-02\-20 17:07:39 UTC\fP
  193905. .INDENT 2.0
  193906. .IP \(bu 2
  193907. 320c2037e1 Merge pull request \fI\%#46097\fP from vutny/fix\-https\-link
  193908. .IP \(bu 2
  193909. 2062fd0e5c [DOC] Put https link to the formulas doc page
  193910. .UNINDENT
  193911. .IP \(bu 2
  193912. \fBPR\fP \fI\%#46103\fP: (\fI\%bdrung\fP) Fix skipping Kubernetes tests if client is not installed
  193913. @ \fI2018\-02\-20 16:33:42 UTC\fP
  193914. .INDENT 2.0
  193915. .IP \(bu 2
  193916. 0eb137fb4e Merge pull request \fI\%#46103\fP from bdrung/2017.7
  193917. .IP \(bu 2
  193918. dd3f936557 Fix skipping Kubernetes tests if client is not installed
  193919. .UNINDENT
  193920. .IP \(bu 2
  193921. \fBPR\fP \fI\%#46070\fP: (\fI\%Ch3LL\fP) add required arg to dns_check jinja doc example
  193922. @ \fI2018\-02\-16 20:00:44 UTC\fP
  193923. .INDENT 2.0
  193924. .IP \(bu 2
  193925. c3a938e994 Merge pull request \fI\%#46070\fP from Ch3LL/fix\-doc\-dns
  193926. .IP \(bu 2
  193927. 2a5d855d97 add required arg to dns_check jinja doc example
  193928. .UNINDENT
  193929. .IP \(bu 2
  193930. \fBPR\fP \fI\%#46067\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45994\fP to 2017.7
  193931. @ \fI2018\-02\-16 19:55:27 UTC\fP
  193932. .INDENT 2.0
  193933. .IP \(bu 2
  193934. \fBPR\fP \fI\%#45994\fP: (\fI\%nullify005\fP) Fix hosted zone Comment updates & quote TXT entries correctly (refs: \fI\%#46067\fP)
  193935. .IP \(bu 2
  193936. 01042e9d77 Merge pull request \fI\%#46067\fP from rallytime/bp\-45994
  193937. .IP \(bu 2
  193938. a07bb48726 Correct formatting for lint
  193939. .IP \(bu 2
  193940. e8678f633d Fix Comment being None not \(aq\(aq and inject quotes into the TXT ChangeRecords
  193941. .UNINDENT
  193942. .IP \(bu 2
  193943. \fBISSUE\fP \fI\%#42932\fP: (\fI\%bobrik\fP) cmd.run with bg: true doesn\(aqt fail properly (refs: \fI\%#45932\fP)
  193944. .IP \(bu 2
  193945. \fBPR\fP \fI\%#45932\fP: (\fI\%The\-Loeki\fP) Fix cmd run_all bg error
  193946. @ \fI2018\-02\-16 14:53:15 UTC\fP
  193947. .INDENT 2.0
  193948. .IP \(bu 2
  193949. \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)
  193950. .IP \(bu 2
  193951. 5e0e2a30e2 Merge pull request \fI\%#45932\fP from The\-Loeki/fix_cmd_run_all_bg
  193952. .IP \(bu 2
  193953. f83da27ca5 Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  193954. .IP \(bu 2
  193955. 771758fbca Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  193956. .IP \(bu 2
  193957. c54fcf7a2d cmd: move separate DRY logging blocks into _run, prevent logging on bg=True, don\(aqt use_vt on bg
  193958. .IP \(bu 2
  193959. ebb1f81a9b cmd run: when running in bg, force ignore_retcode=True
  193960. .UNINDENT
  193961. .IP \(bu 2
  193962. \fBPR\fP \fI\%#46062\fP: (\fI\%vutny\fP) Fix typo in postgres_user.present state function
  193963. @ \fI2018\-02\-16 14:44:29 UTC\fP
  193964. .INDENT 2.0
  193965. .IP \(bu 2
  193966. 45ace39961 Merge pull request \fI\%#46062\fP from vutny/pg\-user\-state\-fix\-typo
  193967. .IP \(bu 2
  193968. a5fbe4e95e Fix typo in postgres_user.present state function
  193969. .UNINDENT
  193970. .IP \(bu 2
  193971. \fBPR\fP \fI\%#45763\fP: (\fI\%twangboy\fP) Fix rehash function in win_path.py
  193972. @ \fI2018\-02\-15 20:05:16 UTC\fP
  193973. .INDENT 2.0
  193974. .IP \(bu 2
  193975. edcb64de76 Merge pull request \fI\%#45763\fP from twangboy/win_fix_path_rehash
  193976. .IP \(bu 2
  193977. b9a2bc7b29 Fix hyperlinks
  193978. .IP \(bu 2
  193979. 29912adc15 Move the test_rehash test to test_win_functions
  193980. .IP \(bu 2
  193981. adc594c183 Remove duplicate link
  193982. .IP \(bu 2
  193983. e84628c1eb Add some comments to the code
  193984. .IP \(bu 2
  193985. d50d5f582f Add additional info to docs for \fIbroadcast_setting_change\fP
  193986. .IP \(bu 2
  193987. 3a54e09cd9 Rename setting to message
  193988. .IP \(bu 2
  193989. a3f9e99bc0 Change to a generic function to broadcast change
  193990. .IP \(bu 2
  193991. 79299361c3 Create refresh_environment salt util
  193992. .IP \(bu 2
  193993. 967b83940c Fix rehash function
  193994. .UNINDENT
  193995. .IP \(bu 2
  193996. \fBPR\fP \fI\%#46042\fP: (\fI\%jfindlay\fP) Revise file_tree pillar module documentation
  193997. @ \fI2018\-02\-15 19:29:52 UTC\fP
  193998. .INDENT 2.0
  193999. .IP \(bu 2
  194000. \fBPR\fP \fI\%#46027\fP: (\fI\%jfindlay\fP) Revise file_tree pillar module documentation (refs: \fI\%#46042\fP)
  194001. .IP \(bu 2
  194002. a46fbc546c Merge pull request \fI\%#46042\fP from jfindlay/file_tree_doc
  194003. .IP \(bu 2
  194004. 0ba4954a4b salt.pillar.file_tree revise module documentation
  194005. .IP \(bu 2
  194006. 3c6a5bf967 salt.pillar.file_tree provide better debug info
  194007. .IP \(bu 2
  194008. bb1cdc451e salt.pillar.file_tree no stack trace when nodegroups undefined
  194009. .UNINDENT
  194010. .IP \(bu 2
  194011. \fBPR\fP \fI\%#46013\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45598\fP to 2017.7
  194012. @ \fI2018\-02\-15 16:11:05 UTC\fP
  194013. .INDENT 2.0
  194014. .IP \(bu 2
  194015. \fBPR\fP \fI\%#45598\fP: (\fI\%nullify005\fP) Patch around ResourceRecords needing to be present for AliasTarget (refs: \fI\%#46013\fP)
  194016. .IP \(bu 2
  194017. de86126dd8 Merge pull request \fI\%#46013\fP from rallytime/bp\-45598
  194018. .IP \(bu 2
  194019. 2ea3fef543 No lazy logging
  194020. .IP \(bu 2
  194021. f427b0febc Change formatting style of logging lines per review
  194022. .IP \(bu 2
  194023. ebb244396b Patch around ResourceRecords needing to be present for AliasTarget entries to work
  194024. .UNINDENT
  194025. .IP \(bu 2
  194026. \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)
  194027. .IP \(bu 2
  194028. \fBPR\fP \fI\%#46016\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45826\fP to 2017.7
  194029. @ \fI2018\-02\-14 18:16:24 UTC\fP
  194030. .INDENT 2.0
  194031. .IP \(bu 2
  194032. \fBPR\fP \fI\%#45826\fP: (\fI\%philpep\fP) Fix selinux.fcontext_policy_present for Centos 6 (refs: \fI\%#46016\fP)
  194033. .IP \(bu 2
  194034. 07e5735471 Merge pull request \fI\%#46016\fP from rallytime/bp\-45826
  194035. .IP \(bu 2
  194036. 1916e5c4a4 Fix selinux.fcontext_policy_present for Centos 6
  194037. .UNINDENT
  194038. .IP \(bu 2
  194039. \fBISSUE\fP \fI\%#45784\fP: (\fI\%oarmstrong\fP) SELinux module fcontext_get_policy fails with long regex (refs: \fI\%#45785\fP)
  194040. .IP \(bu 2
  194041. \fBPR\fP \fI\%#46015\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45785\fP to 2017.7
  194042. @ \fI2018\-02\-14 18:16:09 UTC\fP
  194043. .INDENT 2.0
  194044. .IP \(bu 2
  194045. \fBPR\fP \fI\%#45785\fP: (\fI\%oarmstrong\fP) m/selinux.fcontext_get_policy allow long filespecs (refs: \fI\%#46015\fP)
  194046. .IP \(bu 2
  194047. a1f4092811 Merge pull request \fI\%#46015\fP from rallytime/bp\-45785
  194048. .IP \(bu 2
  194049. ef6ffb1492 Resolve linting errors
  194050. .IP \(bu 2
  194051. 8047066c46 Remove unused import
  194052. .IP \(bu 2
  194053. 8f7c45935a Add tests for salt.modules.selinux.fcontext_get_policy
  194054. .IP \(bu 2
  194055. bafb7b4e6e Ensure parsed fields are stripped
  194056. .IP \(bu 2
  194057. a830a6e819 m/selinux.fcontext_get_policy allow long filespecs
  194058. .UNINDENT
  194059. .IP \(bu 2
  194060. \fBPR\fP \fI\%#46012\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45462\fP to 2017.7
  194061. @ \fI2018\-02\-14 18:14:56 UTC\fP
  194062. .INDENT 2.0
  194063. .IP \(bu 2
  194064. \fBPR\fP \fI\%#45462\fP: (\fI\%aphor\fP) emit port cli version, variants as separate args (refs: \fI\%#46012\fP)
  194065. .IP \(bu 2
  194066. 96097c037e Merge pull request \fI\%#46012\fP from rallytime/bp\-45462
  194067. .IP \(bu 2
  194068. 9f76836a6c emit port cli version, variants as separate args
  194069. .UNINDENT
  194070. .IP \(bu 2
  194071. \fBPR\fP \fI\%#45991\fP: (\fI\%terminalmage\fP) yumpkg: Fix a couple issues with _get_extra_opts
  194072. @ \fI2018\-02\-14 16:48:28 UTC\fP
  194073. .INDENT 2.0
  194074. .IP \(bu 2
  194075. 1279924f5f Merge pull request \fI\%#45991\fP from terminalmage/fix\-duplicate\-extra\-opts
  194076. .IP \(bu 2
  194077. 916766f651 yumpkg: Fix a couple issues with _get_extra_opts
  194078. .UNINDENT
  194079. .IP \(bu 2
  194080. \fBPR\fP \fI\%#46017\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194081. @ \fI2018\-02\-13 21:43:15 UTC\fP
  194082. .INDENT 2.0
  194083. .IP \(bu 2
  194084. 8b9adc258e Merge pull request \fI\%#46017\fP from rallytime/merge\-2017.7
  194085. .IP \(bu 2
  194086. a06645ce71 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194087. .UNINDENT
  194088. .IP \(bu 2
  194089. \fBISSUE\fP \fI\%#45796\fP: (\fI\%L4rS6\fP) aliases module doesn\(aqt follow symlinks (refs: \fI\%#45797\fP)
  194090. .IP \(bu 2
  194091. \fBPR\fP \fI\%#45988\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45797\fP to 2017.7
  194092. @ \fI2018\-02\-13 17:49:02 UTC\fP
  194093. .INDENT 2.0
  194094. .IP \(bu 2
  194095. \fBPR\fP \fI\%#45797\fP: (\fI\%L4rS6\fP) follow symlinks in aliases module (close \fI\%#45796\fP) (refs: \fI\%#45988\fP)
  194096. .IP \(bu 2
  194097. d20ff89414 Merge pull request \fI\%#45988\fP from rallytime/bp\-45797
  194098. .IP \(bu 2
  194099. 953a400d79 follow symlinks
  194100. .UNINDENT
  194101. .IP \(bu 2
  194102. \fBPR\fP \fI\%#45711\fP: (\fI\%bdrung\fP) Fix Unicode tests when run with LC_ALL=POSIX
  194103. @ \fI2018\-02\-13 17:42:07 UTC\fP
  194104. .INDENT 2.0
  194105. .IP \(bu 2
  194106. b18087cee0 Merge pull request \fI\%#45711\fP from bdrung/fix\-unicode\-tests
  194107. .IP \(bu 2
  194108. b6181b5ed6 Fix Unicode tests when run with LC_ALL=POSIX
  194109. .UNINDENT
  194110. .IP \(bu 2
  194111. \fBPR\fP \fI\%#45878\fP: (\fI\%damon\-atkins\fP) ec2_pillar update to fix finding instance\-id (refs: \fI\%#46137\fP)
  194112. @ \fI2018\-02\-13 17:34:14 UTC\fP
  194113. .INDENT 2.0
  194114. .IP \(bu 2
  194115. 5271fb1d40 Merge pull request \fI\%#45878\fP from damon\-atkins/2017.7_fix_ec2_pillar
  194116. .IP \(bu 2
  194117. 0e74025714 Merge branch \(aq2017.7\(aq into 2017.7_fix_ec2_pillar
  194118. .IP \(bu 2
  194119. b4d0b23891 py3 fix
  194120. .IP \(bu 2
  194121. 75d9e20d8a Add ignoring \(aqterminated\(aq, \(aqstopped\(aq instances, to improve changes of a single match
  194122. .IP \(bu 2
  194123. 0093472a37 added tag_key_list and tag_key_sep to create ec2_tags_list
  194124. .IP \(bu 2
  194125. afb3968aa7 ec2_pillar could not find instance\-id, resolved. add support to use any tag to compare minion id against.
  194126. .UNINDENT
  194127. .IP \(bu 2
  194128. \fBPR\fP \fI\%#45942\fP: (\fI\%terminalmage\fP) Fix incorrect translation of docker port_bindings \-> ports (2017.7 branch)
  194129. @ \fI2018\-02\-13 16:10:03 UTC\fP
  194130. .INDENT 2.0
  194131. .IP \(bu 2
  194132. cf367dbd04 Merge pull request \fI\%#45942\fP from terminalmage/issue45679\-2017.7
  194133. .IP \(bu 2
  194134. 89cbd72a0d Don\(aqt try to sort ports when translating docker input
  194135. .IP \(bu 2
  194136. 9cd47b39dd Fix incorrect translation of docker port_bindings \-> ports
  194137. .UNINDENT
  194138. .IP \(bu 2
  194139. \fBPR\fP \fI\%#45959\fP: (\fI\%rallytime\fP) A couple of grammar updates for the state compiler docs
  194140. @ \fI2018\-02\-12 22:17:49 UTC\fP
  194141. .INDENT 2.0
  194142. .IP \(bu 2
  194143. dae41de7a8 Merge pull request \fI\%#45959\fP from rallytime/state\-doc\-update
  194144. .IP \(bu 2
  194145. 6f781cb95d A couple of grammar updates for the state compiler docs
  194146. .UNINDENT
  194147. .IP \(bu 2
  194148. \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)
  194149. .IP \(bu 2
  194150. \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)
  194151. .IP \(bu 2
  194152. \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)
  194153. @ \fI2018\-02\-12 22:05:29 UTC\fP
  194154. .INDENT 2.0
  194155. .IP \(bu 2
  194156. 007214f7bf Merge pull request \fI\%#45908\fP from DimensionDataResearch/fix/issue/45884
  194157. .IP \(bu 2
  194158. 1a75786b5a Fix linter warnings.
  194159. .IP \(bu 2
  194160. 82ec0b589c Revert to using salt.utils.cloud.is_public_ip.
  194161. .IP \(bu 2
  194162. 9b6b01873b Fix violations reported by flake8.
  194163. .IP \(bu 2
  194164. a2bc155c73 Use __utils__[\(aqcloud.\(aq] instead of salt.cloud.utils.
  194165. .IP \(bu 2
  194166. 98907a32cb Ensure \(aqauth\(aq parameter is correctly passed to dimensiondata driver.
  194167. .IP \(bu 2
  194168. de26b03e2c Fix copy/paste bug in dimensiondata provider integration test.
  194169. .IP \(bu 2
  194170. 6b1b6be427 Add integration tests for dimensiondata cloud provider.
  194171. .IP \(bu 2
  194172. f6ea9fed7d Ensure that event data provided by the dimensiondata driver is serialisable.
  194173. .UNINDENT
  194174. .IP \(bu 2
  194175. \fBPR\fP \fI\%#45985\fP: (\fI\%garethgreenaway\fP) [2017.7] Backport \fI\%#45894\fP \- Missing \fIformat\fP in the call to write.
  194176. @ \fI2018\-02\-12 20:22:31 UTC\fP
  194177. .INDENT 2.0
  194178. .IP \(bu 2
  194179. \fBPR\fP \fI\%#45894\fP: (\fI\%while0pass\fP) Fix inconcistencies in param description (refs: \fI\%#45985\fP)
  194180. .IP \(bu 2
  194181. efcbfa868c Merge pull request \fI\%#45985\fP from garethgreenaway/2017_7_fixing_mac_tests_again
  194182. .IP \(bu 2
  194183. 7b8dc14433 Missing \fIformat\fP in the call to write.
  194184. .UNINDENT
  194185. .IP \(bu 2
  194186. \fBPR\fP \fI\%#45958\fP: (\fI\%garethgreenaway\fP) Backporting \fI\%#45935\fP to 2017.7
  194187. @ \fI2018\-02\-12 16:25:07 UTC\fP
  194188. .INDENT 2.0
  194189. .IP \(bu 2
  194190. \fBPR\fP \fI\%#45936\fP: (\fI\%garethgreenaway\fP) [oxygen] Fix to log/handlers/__init__.py (refs: \fI\%#45958\fP)
  194191. .IP \(bu 2
  194192. \fBPR\fP \fI\%#45935\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45742\fP to 2017.7.3 (refs: \fI\%#45958\fP)
  194193. .IP \(bu 2
  194194. \fBPR\fP \fI\%#45742\fP: (\fI\%marccardinal\fP) list.copy() is not compatible with python 2.7 (refs: \fI\%#45935\fP)
  194195. .IP \(bu 2
  194196. bf03abd07c Merge pull request \fI\%#45958\fP from garethgreenaway/backport\-fixing_mactests_queue_full
  194197. .IP \(bu 2
  194198. 25dffaae91 Backporting \fI\%#45935\fP
  194199. .UNINDENT
  194200. .IP \(bu 2
  194201. \fBPR\fP \fI\%#45949\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194202. @ \fI2018\-02\-09 22:32:09 UTC\fP
  194203. .INDENT 2.0
  194204. .IP \(bu 2
  194205. bab365d6c6 Merge pull request \fI\%#45949\fP from rallytime/merge\-2017.7
  194206. .IP \(bu 2
  194207. f51687e903 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194208. .IP \(bu 2
  194209. 7779fea7ba Merge pull request \fI\%#45940\fP from dmurphy18/fix_aix_cmdmod
  194210. .INDENT 2.0
  194211. .IP \(bu 2
  194212. dd2788419b Fix use of \(aqsu\(aq for AIX to use \(aq\-\(aq
  194213. .UNINDENT
  194214. .UNINDENT
  194215. .IP \(bu 2
  194216. \fBISSUE\fP \fI\%#45915\fP: (\fI\%MatthiasKuehneEllerhold\fP) 2017.7.3: Salt\-SSH & Vault Pillar: Permission denied "minion.pem" (refs: \fI\%#45928\fP)
  194217. .IP \(bu 2
  194218. \fBPR\fP \fI\%#45928\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing vault when used with pillar over salt\-ssh
  194219. @ \fI2018\-02\-09 16:32:35 UTC\fP
  194220. .INDENT 2.0
  194221. .IP \(bu 2
  194222. 7fd00ec752 Merge pull request \fI\%#45928\fP from garethgreenaway/45915_fixing_vault_pillar_for_salt_ssh
  194223. .IP \(bu 2
  194224. 259e60e5d4 Fixing vault when used with pillar over salt\-ssh
  194225. .UNINDENT
  194226. .IP \(bu 2
  194227. \fBPR\fP \fI\%#45925\fP: (\fI\%terminalmage\fP) Fix spelling error in docstring
  194228. @ \fI2018\-02\-08 21:52:35 UTC\fP
  194229. .INDENT 2.0
  194230. .IP \(bu 2
  194231. 9d14ad9ccf Merge pull request \fI\%#45925\fP from terminalmage/fix\-spelling
  194232. .IP \(bu 2
  194233. 7a143fe454 Fix spelling error in docstring
  194234. .UNINDENT
  194235. .IP \(bu 2
  194236. \fBPR\fP \fI\%#45920\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194237. @ \fI2018\-02\-08 15:43:49 UTC\fP
  194238. .INDENT 2.0
  194239. .IP \(bu 2
  194240. 0cbe93cd69 Merge pull request \fI\%#45920\fP from rallytime/merge\-2017.7
  194241. .IP \(bu 2
  194242. e4e4744218 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194243. .IP \(bu 2
  194244. 27ff82f996 Merge pull request \fI\%#45864\fP from rallytime/release\-note\-fix
  194245. .INDENT 2.0
  194246. .IP \(bu 2
  194247. 104a24f244 Remove extraneous ] in release notes for 2016.11.9
  194248. .UNINDENT
  194249. .IP \(bu 2
  194250. 5fa010de2b Merge pull request \fI\%#45787\fP from rallytime/2016.11.9_docs
  194251. .INDENT 2.0
  194252. .IP \(bu 2
  194253. a38d4d44fa [2016.11] Bump latest and previous versions
  194254. .UNINDENT
  194255. .UNINDENT
  194256. .IP \(bu 2
  194257. \fBISSUE\fP \fI\%#45805\fP: (\fI\%bgridley\fP) Execution module victorops throws an error "RuntimeError: dictionary changed size during iteration" (refs: \fI\%#45814\fP)
  194258. .IP \(bu 2
  194259. \fBPR\fP \fI\%#45814\fP: (\fI\%gtmanfred\fP) fix cookies dict size changing in http.query
  194260. @ \fI2018\-02\-08 15:35:30 UTC\fP
  194261. .INDENT 2.0
  194262. .IP \(bu 2
  194263. 643a8a5278 Merge pull request \fI\%#45814\fP from gtmanfred/2017.7
  194264. .IP \(bu 2
  194265. d8eec9aa97 fix cookies dict size changing in http.query
  194266. .UNINDENT
  194267. .IP \(bu 2
  194268. \fBPR\fP \fI\%#45877\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.4 release
  194269. @ \fI2018\-02\-08 14:07:43 UTC\fP
  194270. .INDENT 2.0
  194271. .IP \(bu 2
  194272. 3a3f87c16d Merge pull request \fI\%#45877\fP from rallytime/new\-release\-notes
  194273. .IP \(bu 2
  194274. f937e8ba81 Add release notes file for 2017.7.4 release
  194275. .UNINDENT
  194276. .IP \(bu 2
  194277. \fBPR\fP \fI\%#45904\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41017\fP to 2017.7
  194278. @ \fI2018\-02\-08 13:57:45 UTC\fP
  194279. .INDENT 2.0
  194280. .IP \(bu 2
  194281. \fBPR\fP \fI\%#41017\fP: (\fI\%cebe\fP) Fixed typo in pkg state documentation (refs: \fI\%#45904\fP)
  194282. .IP \(bu 2
  194283. 1c3cc00670 Merge pull request \fI\%#45904\fP from rallytime/bp\-41017
  194284. .IP \(bu 2
  194285. 80c56cdcea Fixed typo in pkg state documentation
  194286. .UNINDENT
  194287. .IP \(bu 2
  194288. \fBPR\fP \fI\%#45907\fP: (\fI\%terminalmage\fP) Fix backport of grains fix
  194289. @ \fI2018\-02\-08 13:57:26 UTC\fP
  194290. .INDENT 2.0
  194291. .IP \(bu 2
  194292. 317d35bd15 Merge pull request \fI\%#45907\fP from terminalmage/fix\-grains\-backport
  194293. .IP \(bu 2
  194294. 6cf7e50cc4 Fix backport of grains fix
  194295. .UNINDENT
  194296. .IP \(bu 2
  194297. \fBPR\fP \fI\%#45906\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45548\fP to 2017.7
  194298. @ \fI2018\-02\-08 13:57:07 UTC\fP
  194299. .INDENT 2.0
  194300. .IP \(bu 2
  194301. \fBPR\fP \fI\%#45548\fP: (\fI\%viktordaniel\fP) Update x509.py \- documentation fix (refs: \fI\%#45906\fP)
  194302. .IP \(bu 2
  194303. dade5f0cab Merge pull request \fI\%#45906\fP from rallytime/bp\-45548
  194304. .IP \(bu 2
  194305. 1befa7386c Update x509.py
  194306. .UNINDENT
  194307. .IP \(bu 2
  194308. \fBISSUE\fP \fI\%#45893\fP: (\fI\%CrackerJackMack\fP) archive.extracted ValueError "No path specified" in 2017.7.3 (refs: \fI\%#45902\fP)
  194309. .IP \(bu 2
  194310. \fBPR\fP \fI\%#45902\fP: (\fI\%terminalmage\fP) Check the effective saltenv for cached archive
  194311. @ \fI2018\-02\-08 13:42:00 UTC\fP
  194312. .INDENT 2.0
  194313. .IP \(bu 2
  194314. 82c473a1fe Merge pull request \fI\%#45902\fP from terminalmage/issue45893
  194315. .IP \(bu 2
  194316. 9d200efc26 Add regression test for issue 45893
  194317. .IP \(bu 2
  194318. 1468f1d0ff Remove duplicated section in docstring and fix example
  194319. .IP \(bu 2
  194320. 6cc5cd9b8a Check the effective saltenv for cached archive
  194321. .UNINDENT
  194322. .IP \(bu 2
  194323. \fBPR\fP \fI\%#45862\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45830\fP to 2017.7
  194324. @ \fI2018\-02\-08 13:22:26 UTC\fP
  194325. .INDENT 2.0
  194326. .IP \(bu 2
  194327. \fBPR\fP \fI\%#45830\fP: (\fI\%garethgreenaway\fP) [oxygen] Catch exception when logging queue is full (refs: \fI\%#45862\fP)
  194328. .IP \(bu 2
  194329. fdedde3cfb Merge pull request \fI\%#45862\fP from rallytime/bp\-45830
  194330. .IP \(bu 2
  194331. 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.
  194332. .UNINDENT
  194333. .IP \(bu 2
  194334. \fBPR\fP \fI\%#45779\fP: (\fI\%The\-Loeki\fP) SSH shell shim: Don\(aqt use $() for optimal support
  194335. @ \fI2018\-02\-05 18:35:21 UTC\fP
  194336. .INDENT 2.0
  194337. .IP \(bu 2
  194338. 43a45b42c3 Merge pull request \fI\%#45779\fP from The\-Loeki/patch\-3
  194339. .IP \(bu 2
  194340. 8575ae3d52 Merge branch \(aq2017.7\(aq into patch\-3
  194341. .IP \(bu 2
  194342. 47cf00d88e SSH shell shim: Don\(aqt use $() for optimal support
  194343. .UNINDENT
  194344. .IP \(bu 2
  194345. \fBPR\fP \fI\%#45788\fP: (\fI\%rallytime\fP) [2017.7] Bump latest and previous versions
  194346. @ \fI2018\-02\-05 15:30:46 UTC\fP
  194347. .INDENT 2.0
  194348. .IP \(bu 2
  194349. cca997d0da Merge pull request \fI\%#45788\fP from rallytime/2017.7.3_docs
  194350. .IP \(bu 2
  194351. d5faf6126b [2017.7] Bump latest and previous versions
  194352. .UNINDENT
  194353. .IP \(bu 2
  194354. \fBPR\fP \fI\%#45842\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45827\fP to 2017.7
  194355. @ \fI2018\-02\-05 15:04:11 UTC\fP
  194356. .INDENT 2.0
  194357. .IP \(bu 2
  194358. \fBPR\fP \fI\%#45827\fP: (\fI\%terminalmage\fP) Fix traceback in disks grains when /sys/block not available (refs: \fI\%#45842\fP)
  194359. .IP \(bu 2
  194360. 746206cebe Merge pull request \fI\%#45842\fP from rallytime/bp\-45827
  194361. .IP \(bu 2
  194362. c631598a87 Fix traceback in disks grains when /sys/block not available
  194363. .UNINDENT
  194364. .IP \(bu 2
  194365. \fBISSUE\fP \fI\%#44978\fP: (\fI\%doesitblend\fP) State duration not always calculated (refs: \fI\%#45721\fP)
  194366. .IP \(bu 2
  194367. \fBPR\fP \fI\%#45721\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure duration and start time exist
  194368. @ \fI2018\-02\-05 14:59:33 UTC\fP
  194369. .INDENT 2.0
  194370. .IP \(bu 2
  194371. 900aadcd67 Merge pull request \fI\%#45721\fP from garethgreenaway/44978_show_duration_when_no_state_run
  194372. .IP \(bu 2
  194373. 359265869f Adding a couple tests to ensure that duration is included in state run results even when states do not run.
  194374. .IP \(bu 2
  194375. 912347abc3 Include the duration when a state does not run, for example when the \fIonchanges\fP requisite is not met.
  194376. .UNINDENT
  194377. .IP \(bu 2
  194378. \fBPR\fP \fI\%#45517\fP: (\fI\%kstreee\fP) Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  194379. @ \fI2018\-02\-05 14:56:23 UTC\fP
  194380. .INDENT 2.0
  194381. .IP \(bu 2
  194382. 80a2d009b4 Merge pull request \fI\%#45517\fP from kstreee/fix\-mkdir
  194383. .IP \(bu 2
  194384. 24d41f2451 Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  194385. .UNINDENT
  194386. .IP \(bu 2
  194387. \fBPR\fP \fI\%#45835\fP: (\fI\%kstreee\fP) Adds a missing return statement.
  194388. @ \fI2018\-02\-02 22:51:41 UTC\fP
  194389. .INDENT 2.0
  194390. .IP \(bu 2
  194391. 7a4b1b2e77 Merge pull request \fI\%#45835\fP from kstreee/fix\-missing\-return\-statement
  194392. .IP \(bu 2
  194393. 68c7f3dcba Adds a missing return statement.
  194394. .UNINDENT
  194395. .IP \(bu 2
  194396. \fBPR\fP \fI\%#45840\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45603\fP to 2017.7
  194397. @ \fI2018\-02\-02 20:17:32 UTC\fP
  194398. .INDENT 2.0
  194399. .IP \(bu 2
  194400. \fBPR\fP \fI\%#45603\fP: (\fI\%andreaspe\fP) Fix for duplicate entries with pkrepo.managed (refs: \fI\%#45840\fP)
  194401. .IP \(bu 2
  194402. 0a04f118c2 Merge pull request \fI\%#45840\fP from rallytime/bp\-45603
  194403. .IP \(bu 2
  194404. 9653363131 Fix for duplicate entries with pkrepo.managed
  194405. .UNINDENT
  194406. .IP \(bu 2
  194407. \fBISSUE\fP \fI\%#44315\fP: (\fI\%whytewolf\fP) cmd.* cwd does not escape spaces. 2017.7.2 (refs: \fI\%#45134\fP)
  194408. .IP \(bu 2
  194409. \fBPR\fP \fI\%#45716\fP: (\fI\%ciiqr\fP) fixed quoting of script path in cmd.script
  194410. @ \fI2018\-02\-02 14:36:49 UTC\fP
  194411. .INDENT 2.0
  194412. .IP \(bu 2
  194413. \fBPR\fP \fI\%#45134\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to cmd.script for cwd with space (refs: \fI\%#45716\fP)
  194414. .IP \(bu 2
  194415. bd2178cd5f Merge pull request \fI\%#45716\fP from ciiqr/fix_cmd_script_quoting
  194416. .IP \(bu 2
  194417. 217791079b some code cleanup (lint errors and escape_argument as _cmd_quote)
  194418. .IP \(bu 2
  194419. 1c29bc5a3d fixed quoting of script path in cmd.script
  194420. .UNINDENT
  194421. .IP \(bu 2
  194422. \fBISSUE\fP \fI\%#45684\fP: (\fI\%bdrung\fP) salt documentation fails to build with Python 3 version of sphinx (refs: \fI\%#45719\fP)
  194423. .IP \(bu 2
  194424. \fBPR\fP \fI\%#45719\fP: (\fI\%bdrung\fP) Fix python3 sphinx build
  194425. @ \fI2018\-02\-02 14:20:37 UTC\fP
  194426. .INDENT 2.0
  194427. .IP \(bu 2
  194428. 272f912c7c Merge pull request \fI\%#45719\fP from bdrung/fix\-python3\-sphinx\-build
  194429. .IP \(bu 2
  194430. 179e8fbe73 doc: Do not mock non\-existing __qualname__ attribute
  194431. .IP \(bu 2
  194432. 971e59ebe2 Drop enforcing new\-style object for SaltYamlSafeLoader
  194433. .UNINDENT
  194434. .IP \(bu 2
  194435. \fBPR\fP \fI\%#45764\fP: (\fI\%mchugh19\fP) support amazon linux 2 for service module
  194436. @ \fI2018\-02\-02 14:12:07 UTC\fP
  194437. .INDENT 2.0
  194438. .IP \(bu 2
  194439. \fBPR\fP \fI\%#45758\fP: (\fI\%mchugh19\fP) support amazon linux 2 for service module (refs: \fI\%#45764\fP)
  194440. .IP \(bu 2
  194441. fc04336c3b Merge pull request \fI\%#45764\fP from mchugh19/2017.7
  194442. .IP \(bu 2
  194443. 0a7f1a4d75 English better
  194444. .IP \(bu 2
  194445. 37e067c7b5 support amazon linux 2 for service module
  194446. .UNINDENT
  194447. .IP \(bu 2
  194448. \fBPR\fP \fI\%#45756\fP: (\fI\%roaldnefs\fP) Fix Grafana4 states documentation
  194449. @ \fI2018\-01\-31 19:01:33 UTC\fP
  194450. .INDENT 2.0
  194451. .IP \(bu 2
  194452. f234bf52f4 Merge pull request \fI\%#45756\fP from roaldnefs/fix\-grafana4\-documentation
  194453. .IP \(bu 2
  194454. 92979c0b57 Fix grafana4 states documentation
  194455. .UNINDENT
  194456. .IP \(bu 2
  194457. \fBPR\fP \fI\%#45801\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194458. @ \fI2018\-01\-31 18:55:52 UTC\fP
  194459. .INDENT 2.0
  194460. .IP \(bu 2
  194461. 685b683db5 Merge pull request \fI\%#45801\fP from rallytime/merge\-2017.7
  194462. .IP \(bu 2
  194463. 26e992e011 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194464. .INDENT 2.0
  194465. .IP \(bu 2
  194466. 746386d04c Merge pull request \fI\%#45794\fP from vutny/doc\-file\-state\-examples
  194467. .INDENT 2.0
  194468. .IP \(bu 2
  194469. ddfeae6a29 [DOC] Fix code\-block rST directive in file state module
  194470. .UNINDENT
  194471. .IP \(bu 2
  194472. abc9ece214 Merge pull request \fI\%#45780\fP from vutny/doc\-pkgrepo\-zypper
  194473. .INDENT 2.0
  194474. .IP \(bu 2
  194475. f80c7d8d69 [DOC] Add missing gpgautoimport for pkgrepo.managed
  194476. .UNINDENT
  194477. .UNINDENT
  194478. .UNINDENT
  194479. .IP \(bu 2
  194480. \fBPR\fP \fI\%#45802\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194481. @ \fI2018\-01\-31 18:55:35 UTC\fP
  194482. .INDENT 2.0
  194483. .IP \(bu 2
  194484. c7d319f3bc Merge pull request \fI\%#45802\fP from rallytime/merge\-2017.7\-from\-2017.7.3
  194485. .IP \(bu 2
  194486. eb48513ba0 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194487. .UNINDENT
  194488. .IP \(bu 2
  194489. \fBISSUE\fP \fI\%#45738\fP: (\fI\%UtahCampusD\fP) minion cache overwritten for scheduled jobs (refs: \fI\%#45761\fP)
  194490. .IP \(bu 2
  194491. \fBPR\fP \fI\%#45761\fP: (\fI\%gtmanfred\fP) generate a jid for cache_jobs on the minion
  194492. @ \fI2018\-01\-31 18:01:53 UTC\fP
  194493. .INDENT 2.0
  194494. .IP \(bu 2
  194495. 96e9232cc2 Merge pull request \fI\%#45761\fP from gtmanfred/2017.7
  194496. .IP \(bu 2
  194497. 280767ed57 generate a jid for cache_jobs on the minion
  194498. .UNINDENT
  194499. .IP \(bu 2
  194500. \fBISSUE\fP \fI\%#45301\fP: (\fI\%twangboy\fP) Ctl+C causes stack trace on Windows (refs: \fI\%#45707\fP)
  194501. .IP \(bu 2
  194502. \fBPR\fP \fI\%#45707\fP: (\fI\%skizunov\fP) Fix exception when shutting down logging listener
  194503. @ \fI2018\-01\-30 13:28:10 UTC\fP
  194504. .INDENT 2.0
  194505. .IP \(bu 2
  194506. 38ed46a61a Merge pull request \fI\%#45707\fP from skizunov/develop2
  194507. .IP \(bu 2
  194508. e84801a381 Ensure we have at least one logging root handler
  194509. .IP \(bu 2
  194510. 3da9b8dd33 Fix exception when shutting down logging listener
  194511. .UNINDENT
  194512. .IP \(bu 2
  194513. \fBPR\fP \fI\%#45773\fP: (\fI\%terminalmage\fP) Fix misspellings
  194514. @ \fI2018\-01\-30 13:24:52 UTC\fP
  194515. .INDENT 2.0
  194516. .IP \(bu 2
  194517. 53008ffec7 Merge pull request \fI\%#45773\fP from terminalmage/fix\-misspelling
  194518. .IP \(bu 2
  194519. 0a45f998fe Fix misspellings
  194520. .UNINDENT
  194521. .IP \(bu 2
  194522. \fBISSUE\fP \fI\%#45489\fP: (\fI\%ipmb\fP) cache.grains runner returns all minions when match is not found (refs: \fI\%#45588\fP)
  194523. .IP \(bu 2
  194524. \fBPR\fP \fI\%#45751\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45588\fP to 2017.7
  194525. @ \fI2018\-01\-29 17:12:25 UTC\fP
  194526. .INDENT 2.0
  194527. .IP \(bu 2
  194528. \fBPR\fP \fI\%#45588\fP: (\fI\%samodid\fP) update MasterPillarUtil get_minion_grains method (refs: \fI\%#45751\fP)
  194529. .IP \(bu 2
  194530. 454ed23f62 Merge pull request \fI\%#45751\fP from rallytime/bp\-45588
  194531. .IP \(bu 2
  194532. aa149a0e7a fix typo
  194533. .IP \(bu 2
  194534. 3e794a043d fix copy\-paste error in get_minion_grains method doc string
  194535. .IP \(bu 2
  194536. 1fb94a08e0 update MasterPillarUtil
  194537. .UNINDENT
  194538. .IP \(bu 2
  194539. \fBPR\fP \fI\%#45753\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194540. @ \fI2018\-01\-29 17:11:11 UTC\fP
  194541. .INDENT 2.0
  194542. .IP \(bu 2
  194543. 860e21955c Merge pull request \fI\%#45753\fP from rallytime/merge\-2017.7
  194544. .IP \(bu 2
  194545. cb50cce181 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194546. .IP \(bu 2
  194547. d7e09e2649 Merge pull request \fI\%#45749\fP from vutny/fix\-typo
  194548. .INDENT 2.0
  194549. .IP \(bu 2
  194550. e80bfb20c6 The \fIzypper.mod_repo\fP: fix typo in the docstring
  194551. .UNINDENT
  194552. .IP \(bu 2
  194553. cb6ce378ea Merge pull request \fI\%#45459\fP from vutny/salt\-cloud\-fix\-loading\-utf\-cache
  194554. .INDENT 2.0
  194555. .IP \(bu 2
  194556. b370796e9d Salt Cloud: write/read cached data in UTF\-8 explicitly
  194557. .IP \(bu 2
  194558. cd999201be [2016.11] Salt Cloud: fix loading UTF\-8 cached data
  194559. .UNINDENT
  194560. .UNINDENT
  194561. .IP \(bu 2
  194562. \fBISSUE\fP \fI\%#40173\fP: (\fI\%gtmanfred\fP) Document the Open File limit issue better (refs: \fI\%#45688\fP)
  194563. .IP \(bu 2
  194564. \fBPR\fP \fI\%#45688\fP: (\fI\%bdrung\fP) Raise LimitNOFILE to default max open files
  194565. @ \fI2018\-01\-29 14:26:57 UTC\fP
  194566. .INDENT 2.0
  194567. .IP \(bu 2
  194568. 9fb4d4a528 Merge pull request \fI\%#45688\fP from bdrung/raise\-max\-open\-files
  194569. .IP \(bu 2
  194570. bbedeec756 Raise LimitNOFILE to default max open files
  194571. .UNINDENT
  194572. .IP \(bu 2
  194573. \fBPR\fP \fI\%#45686\fP: (\fI\%bdrung\fP) Use dbus\-run\-session instead of dbus\-launch
  194574. @ \fI2018\-01\-29 14:24:11 UTC\fP
  194575. .INDENT 2.0
  194576. .IP \(bu 2
  194577. 79da49ec8b Merge pull request \fI\%#45686\fP from bdrung/2017.7
  194578. .IP \(bu 2
  194579. f49d0a0eec Use dbus\-run\-session instead of dbus\-launch
  194580. .UNINDENT
  194581. .IP \(bu 2
  194582. \fBPR\fP \fI\%#45740\fP: (\fI\%terminalmage\fP) Fix incorrect attempt at version comparison.
  194583. @ \fI2018\-01\-29 14:12:05 UTC\fP
  194584. .INDENT 2.0
  194585. .IP \(bu 2
  194586. 7fb666bcd2 Merge pull request \fI\%#45740\fP from terminalmage/fix\-incorrect\-version\-comparison
  194587. .IP \(bu 2
  194588. 1e0b38dcaa Fix incorrect attempt at version comparison.
  194589. .UNINDENT
  194590. .IP \(bu 2
  194591. \fBPR\fP \fI\%#45747\fP: (\fI\%SteffenKockel\fP) Fix typos
  194592. @ \fI2018\-01\-29 13:53:27 UTC\fP
  194593. .INDENT 2.0
  194594. .IP \(bu 2
  194595. fe636f53f8 Merge pull request \fI\%#45747\fP from SteffenKockel/2017.7
  194596. .IP \(bu 2
  194597. 319b513183 Fix typos
  194598. .UNINDENT
  194599. .IP \(bu 2
  194600. \fBPR\fP \fI\%#45734\fP: (\fI\%terminalmage\fP) Fix traceback in CLI output when value is trimmed
  194601. @ \fI2018\-01\-28 13:35:56 UTC\fP
  194602. .INDENT 2.0
  194603. .IP \(bu 2
  194604. eb91ae8b6e Merge pull request \fI\%#45734\fP from terminalmage/fix\-trimmed\-output
  194605. .IP \(bu 2
  194606. 966ad07452 Fix traceback in CLI output when value is trimmed
  194607. .UNINDENT
  194608. .IP \(bu 2
  194609. \fBPR\fP \fI\%#45712\fP: (\fI\%bdrung\fP) Decode git call output in Python 3
  194610. @ \fI2018\-01\-28 02:03:21 UTC\fP
  194611. .INDENT 2.0
  194612. .IP \(bu 2
  194613. 7516bfbffe Merge pull request \fI\%#45712\fP from bdrung/fix\-version\-decode
  194614. .IP \(bu 2
  194615. 217183405a Decode git call output in Python 3
  194616. .UNINDENT
  194617. .IP \(bu 2
  194618. \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)
  194619. .IP \(bu 2
  194620. \fBPR\fP \fI\%#45720\fP: (\fI\%dwoz\fP) Salt cloud adds newly created insances to cache
  194621. @ \fI2018\-01\-26 22:45:43 UTC\fP
  194622. .INDENT 2.0
  194623. .IP \(bu 2
  194624. 91b848debb Merge pull request \fI\%#45720\fP from dwoz/issue\-44449\-prod\-fix
  194625. .IP \(bu 2
  194626. 4a4bd6119d Salt cloud adds newly created insances to cache
  194627. .UNINDENT
  194628. .IP \(bu 2
  194629. \fBPR\fP \fI\%#45724\fP: (\fI\%eliasp\fP) Typo (\fIHellium\fP → \fIHelium\fP)
  194630. @ \fI2018\-01\-26 22:37:44 UTC\fP
  194631. .INDENT 2.0
  194632. .IP \(bu 2
  194633. 831698f066 Merge pull request \fI\%#45724\fP from eliasp/2017.7\-typo\-from\-hell
  194634. .IP \(bu 2
  194635. bec78276f3 Replace left\-over mistyped codename reference (\fIHellium\fP → \fI2014.7.0\fP)
  194636. .UNINDENT
  194637. .IP \(bu 2
  194638. \fBPR\fP \fI\%#45722\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194639. @ \fI2018\-01\-26 22:15:40 UTC\fP
  194640. .INDENT 2.0
  194641. .IP \(bu 2
  194642. cdb21a0186 Merge pull request \fI\%#45722\fP from rallytime/merge\-2017.7
  194643. .IP \(bu 2
  194644. 8e3a2e25fe Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194645. .IP \(bu 2
  194646. e4047a1234 Merge pull request \fI\%#45511\fP from twangboy/win_fix_git
  194647. .INDENT 2.0
  194648. .IP \(bu 2
  194649. 160dd7c6ce Pull the first item in the list
  194650. .IP \(bu 2
  194651. 52d6d78150 Only keep ssh.py in the Windows installer
  194652. .IP \(bu 2
  194653. 54eb0db2c4 Keep ssh state and execution modules in the installer
  194654. .IP \(bu 2
  194655. 0fa801a329 Add additional path to find ssh.exe
  194656. .UNINDENT
  194657. .IP \(bu 2
  194658. a550e8d25d Merge pull request \fI\%#45694\fP from twangboy/win_reg_add_keys
  194659. .INDENT 2.0
  194660. .IP \(bu 2
  194661. 8f53cd2d68 Add new keys to subkey_slash_check
  194662. .IP \(bu 2
  194663. 62050c711c Add support for additional reg keys
  194664. .UNINDENT
  194665. .IP \(bu 2
  194666. 7ceebf62f0 Merge pull request \fI\%#45577\fP from zer0def/fix\-git\-detached\-31363
  194667. .INDENT 2.0
  194668. .IP \(bu 2
  194669. a924b971ef Applied PR \fI\%#40524\fP to \fIgit.detached\fP state module function. (refs \fI\%#31363\fP)
  194670. .UNINDENT
  194671. .UNINDENT
  194672. .IP \(bu 2
  194673. \fBPR\fP \fI\%#45718\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194674. @ \fI2018\-01\-26 16:49:44 UTC\fP
  194675. .INDENT 2.0
  194676. .IP \(bu 2
  194677. 3a413e96c5 Merge pull request \fI\%#45718\fP from rallytime/merge\-2017.7
  194678. .IP \(bu 2
  194679. f10c7ee92d Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194680. .UNINDENT
  194681. .IP \(bu 2
  194682. \fBPR\fP \fI\%#45690\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194683. @ \fI2018\-01\-26 14:41:44 UTC\fP
  194684. .INDENT 2.0
  194685. .IP \(bu 2
  194686. d0955519cf Merge pull request \fI\%#45690\fP from rallytime/merge\-2017.7
  194687. .IP \(bu 2
  194688. d4dac9f7cc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194689. .INDENT 2.0
  194690. .IP \(bu 2
  194691. 3a6837e232 Merge pull request \fI\%#45675\fP from Ch3LL/rn_2016.11.9
  194692. .INDENT 2.0
  194693. .IP \(bu 2
  194694. 7b5bed36d9 Add new commits to 2016.11.9 release notes
  194695. .UNINDENT
  194696. .IP \(bu 2
  194697. 915e259bad Merge pull request \fI\%#45663\fP from rallytime/bp\-45452\-2016.11
  194698. .INDENT 2.0
  194699. .IP \(bu 2
  194700. ae94fb61d9 opkg.py: make owner function return value, instead of iterator
  194701. .UNINDENT
  194702. .IP \(bu 2
  194703. ecd75c137f Merge pull request \fI\%#45651\fP from rallytime/merge\-2016.11
  194704. .INDENT 2.0
  194705. .IP \(bu 2
  194706. 1583e1edbe Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194707. .IP \(bu 2
  194708. 10812969f0 Merge pull request \fI\%#45638\fP from twangboy/win_fix_shell_info
  194709. .INDENT 2.0
  194710. .IP \(bu 2
  194711. 872da3ffba Only convert text types in the list_values function
  194712. .IP \(bu 2
  194713. 0e41535cdb Fix reg.py to only convert text types to unicode
  194714. .IP \(bu 2
  194715. 3579534ea5 Fix issue with detecting powershell
  194716. .UNINDENT
  194717. .IP \(bu 2
  194718. 2d1dd1186e Merge pull request \fI\%#45564\fP from Ch3LL/r\-notes\-2016
  194719. .IP \(bu 2
  194720. 28e4398150 Merge pull request \fI\%#45563\fP from Ch3LL/man_2016
  194721. .UNINDENT
  194722. .IP \(bu 2
  194723. 22bcd3d110 Merge pull request \fI\%#45600\fP from vutny/doc\-fix\-references
  194724. .INDENT 2.0
  194725. .IP \(bu 2
  194726. 35675fe6b3 [DOC] Fix references on Salt Formulas page
  194727. .UNINDENT
  194728. .IP \(bu 2
  194729. 0d622f92a9 Merge pull request \fI\%#45542\fP from UtahDave/doc_mixed_transports
  194730. .INDENT 2.0
  194731. .IP \(bu 2
  194732. b5b5054ec2 capitalize masters and minions
  194733. .IP \(bu 2
  194734. f542bdf566 Add warning about using mixed transports
  194735. .UNINDENT
  194736. .IP \(bu 2
  194737. c70b9dc20b Merge pull request \fI\%#45565\fP from Ch3LL/r\-notes\-2016
  194738. .INDENT 2.0
  194739. .IP \(bu 2
  194740. 325f4cbcda Add PR changes to 2016.11.9 Release Notes
  194741. .UNINDENT
  194742. .IP \(bu 2
  194743. d8526062c1 Merge pull request \fI\%#45562\fP from Ch3LL/man_2016
  194744. .INDENT 2.0
  194745. .IP \(bu 2
  194746. 529bc0c680 update release number for salt\-call man page 2016.11.9
  194747. .IP \(bu 2
  194748. 11b7222148 Update man pages for 2016.11.9
  194749. .UNINDENT
  194750. .UNINDENT
  194751. .UNINDENT
  194752. .IP \(bu 2
  194753. \fBPR\fP \fI\%#45710\fP: (\fI\%michelsen\fP) Added source argument to function call
  194754. @ \fI2018\-01\-26 14:30:48 UTC\fP
  194755. .INDENT 2.0
  194756. .IP \(bu 2
  194757. 9c92e93834 Merge pull request \fI\%#45710\fP from michelsen/fix\-chocolatey\-state\-bug
  194758. .IP \(bu 2
  194759. 8accc0ce5c Added source argument to function call
  194760. .UNINDENT
  194761. .IP \(bu 2
  194762. \fBPR\fP \fI\%#45667\fP: (\fI\%gtmanfred\fP) default to upgrading when refreshing on archlinux
  194763. @ \fI2018\-01\-25 14:05:24 UTC\fP
  194764. .INDENT 2.0
  194765. .IP \(bu 2
  194766. 693f72d5a7 Merge pull request \fI\%#45667\fP from gtmanfred/syu
  194767. .IP \(bu 2
  194768. 44c601102a we should default to upgrading when refreshing on archlinux
  194769. .UNINDENT
  194770. .IP \(bu 2
  194771. \fBPR\fP \fI\%#45674\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194772. @ \fI2018\-01\-24 22:46:31 UTC\fP
  194773. .INDENT 2.0
  194774. .IP \(bu 2
  194775. bec946b080 Merge pull request \fI\%#45674\fP from rallytime/merge\-2017.7
  194776. .IP \(bu 2
  194777. 9f78e53d4b Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194778. .UNINDENT
  194779. .IP \(bu 2
  194780. \fBISSUE\fP \fI\%#45590\fP: (\fI\%viq\fP) webhook engine does not work with tornado 4.5.2 (refs: \fI\%#45589\fP)
  194781. .IP \(bu 2
  194782. \fBPR\fP \fI\%#45589\fP: (\fI\%gtmanfred\fP) change webhook headers to dict
  194783. @ \fI2018\-01\-24 22:32:37 UTC\fP
  194784. .INDENT 2.0
  194785. .IP \(bu 2
  194786. 50de847191 Merge pull request \fI\%#45589\fP from gtmanfred/2017.7
  194787. .IP \(bu 2
  194788. 395d6f5c91 change webhook headers to dict
  194789. .UNINDENT
  194790. .IP \(bu 2
  194791. \fBISSUE\fP \fI\%#45072\fP: (\fI\%vernondcole\fP) cannot build documentation on Ubuntu 17.10 (refs: \fI\%#45662\fP)
  194792. .IP \(bu 2
  194793. \fBPR\fP \fI\%#45662\fP: (\fI\%bdrung\fP) Fix documentation generation
  194794. @ \fI2018\-01\-24 17:14:22 UTC\fP
  194795. .INDENT 2.0
  194796. .IP \(bu 2
  194797. e21088c1a4 Merge pull request \fI\%#45662\fP from bdrung/2017.7
  194798. .IP \(bu 2
  194799. 71076afbcc doc: Define fake version for msgpack and psutil
  194800. .IP \(bu 2
  194801. b6a5b745b1 doc: Mock keyring module import
  194802. .UNINDENT
  194803. .IP \(bu 2
  194804. \fBPR\fP \fI\%#45650\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45555\fP to 2017.7
  194805. @ \fI2018\-01\-24 14:47:54 UTC\fP
  194806. .INDENT 2.0
  194807. .IP \(bu 2
  194808. \fBPR\fP \fI\%#45555\fP: (\fI\%ddoh94\fP) update winrepo_source_dir document (refs: \fI\%#45650\fP)
  194809. .IP \(bu 2
  194810. da82f190d2 Merge pull request \fI\%#45650\fP from rallytime/bp\-45555
  194811. .IP \(bu 2
  194812. e474d0416b update winrepo_source_dir document
  194813. .UNINDENT
  194814. .IP \(bu 2
  194815. \fBPR\fP \fI\%#45611\fP: (\fI\%terminalmage\fP) Fix unnecessary/incorrect usage of six.binary_type
  194816. @ \fI2018\-01\-23 22:53:20 UTC\fP
  194817. .INDENT 2.0
  194818. .IP \(bu 2
  194819. 79ee24c0c7 Merge pull request \fI\%#45611\fP from terminalmage/tests\-log\-level
  194820. .IP \(bu 2
  194821. 6aa865cf54 Fix unnecessary/incorrect usage of six.binary_type
  194822. .UNINDENT
  194823. .IP \(bu 2
  194824. \fBPR\fP \fI\%#45652\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194825. @ \fI2018\-01\-23 22:45:22 UTC\fP
  194826. .INDENT 2.0
  194827. .IP \(bu 2
  194828. 634d8dbcc0 Merge pull request \fI\%#45652\fP from rallytime/merge\-2017.7
  194829. .IP \(bu 2
  194830. 4e907dc84b Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194831. .UNINDENT
  194832. .IP \(bu 2
  194833. \fBISSUE\fP \fI\%#45627\fP: (\fI\%bdrung\fP) Failing unit tests in Debian package build (refs: \fI\%#45630\fP)
  194834. .IP \(bu 2
  194835. \fBPR\fP \fI\%#45630\fP: (\fI\%bdrung\fP) Fix tests
  194836. @ \fI2018\-01\-23 21:56:46 UTC\fP
  194837. .INDENT 2.0
  194838. .IP \(bu 2
  194839. dbdef8230e Merge pull request \fI\%#45630\fP from bdrung/2017.7
  194840. .IP \(bu 2
  194841. 76d44e9490 Fix skipping test when boto is not installed
  194842. .IP \(bu 2
  194843. 2b9b262357 Fix unit.modules.test_cmdmod.CMDMODTestCase.test_run
  194844. .UNINDENT
  194845. .IP \(bu 2
  194846. \fBPR\fP \fI\%#45619\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing test_mac_user_enable_auto_login
  194847. @ \fI2018\-01\-23 21:56:03 UTC\fP
  194848. .INDENT 2.0
  194849. .IP \(bu 2
  194850. e5c9cd91e8 Merge pull request \fI\%#45619\fP from garethgreenaway/2017_7_test_mac_user_enable_auto_login
  194851. .IP \(bu 2
  194852. f5f03e1e6c Fixing integration.modules.test_mac_user.MacUserModuleTest.test_mac_user_disable_auto_login
  194853. .UNINDENT
  194854. .IP \(bu 2
  194855. \fBPR\fP \fI\%#45644\fP: (\fI\%twangboy\fP) Add missing space to deprecation warning
  194856. @ \fI2018\-01\-23 21:55:11 UTC\fP
  194857. .INDENT 2.0
  194858. .IP \(bu 2
  194859. 8a95fc4257 Merge pull request \fI\%#45644\fP from twangboy/win_fix_dep_warns
  194860. .IP \(bu 2
  194861. de9bc384cc Add missing space to deprecation warning
  194862. .UNINDENT
  194863. .IP \(bu 2
  194864. \fBPR\fP \fI\%#45634\fP: (\fI\%Ch3LL\fP) Add different service name for Mac 10.13 test
  194865. @ \fI2018\-01\-23 21:51:56 UTC\fP
  194866. .INDENT 2.0
  194867. .IP \(bu 2
  194868. c290b6320b Merge pull request \fI\%#45634\fP from Ch3LL/mac\-service
  194869. .IP \(bu 2
  194870. 31b712e27d Add different service name for Mac 10.13 test
  194871. .UNINDENT
  194872. .IP \(bu 2
  194873. \fBPR\fP \fI\%#45606\fP: (\fI\%terminalmage\fP) Fix bug affecting salt\-ssh when root_dir differs from the default
  194874. @ \fI2018\-01\-23 20:03:49 UTC\fP
  194875. .INDENT 2.0
  194876. .IP \(bu 2
  194877. c28151f5f7 Merge pull request \fI\%#45606\fP from terminalmage/salt\-ssh\-root\-dir\-fix
  194878. .IP \(bu 2
  194879. 3f9309521b Fix bug affecting salt\-ssh when root_dir differs from the default
  194880. .UNINDENT
  194881. .IP \(bu 2
  194882. \fBPR\fP \fI\%#45636\fP: (\fI\%Ch3LL\fP) Fix mac service and pkg tests for 10.13
  194883. @ \fI2018\-01\-23 18:44:56 UTC\fP
  194884. .INDENT 2.0
  194885. .IP \(bu 2
  194886. 0931b6417d Merge pull request \fI\%#45636\fP from Ch3LL/mac\-tests
  194887. .UNINDENT
  194888. .IP \(bu 2
  194889. \fBPR\fP \fI\%#45609\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194890. @ \fI2018\-01\-22 20:24:36 UTC\fP
  194891. .INDENT 2.0
  194892. .IP \(bu 2
  194893. 63a294f498 Merge pull request \fI\%#45609\fP from rallytime/merge\-2017.7
  194894. .IP \(bu 2
  194895. a5fc3b3363 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194896. .UNINDENT
  194897. .IP \(bu 2
  194898. \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)
  194899. .IP \(bu 2
  194900. \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)
  194901. @ \fI2018\-01\-22 19:37:13 UTC\fP
  194902. .INDENT 2.0
  194903. .IP \(bu 2
  194904. 59329957ca Merge pull request \fI\%#45576\fP from zer0def/boto3\-route53\-typo
  194905. .IP \(bu 2
  194906. 21e1e9e226 Fixed boto3_route53 execution module function signature \fIdiSassociate_vpc_from_hosted_zone\fP typo. (refs \fI\%#45431\fP)
  194907. .UNINDENT
  194908. .IP \(bu 2
  194909. \fBPR\fP \fI\%#45552\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194910. @ \fI2018\-01\-19 19:12:49 UTC\fP
  194911. .INDENT 2.0
  194912. .IP \(bu 2
  194913. 42b0d27f71 Merge pull request \fI\%#45552\fP from rallytime/merge\-2017.7\-from\-.3
  194914. .IP \(bu 2
  194915. dba7410b80 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194916. .UNINDENT
  194917. .IP \(bu 2
  194918. \fBPR\fP \fI\%#45551\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194919. @ \fI2018\-01\-19 18:21:27 UTC\fP
  194920. .INDENT 2.0
  194921. .IP \(bu 2
  194922. 879cfcb889 Merge pull request \fI\%#45551\fP from rallytime/merge\-2017.7
  194923. .IP \(bu 2
  194924. e0ffa32b49 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194925. .IP \(bu 2
  194926. 18e814a7bb Merge pull request \fI\%#45540\fP from rallytime/merge\-2016.11
  194927. .INDENT 2.0
  194928. .IP \(bu 2
  194929. 441f819b7b Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194930. .IP \(bu 2
  194931. 654df0f526 Merge pull request \fI\%#45532\fP from gtmanfred/2016.11.9
  194932. .INDENT 2.0
  194933. .IP \(bu 2
  194934. 6c26025664 fix mock for opensuse
  194935. .UNINDENT
  194936. .UNINDENT
  194937. .IP \(bu 2
  194938. 4f3b9b57fa Merge pull request \fI\%#45522\fP from rallytime/merge\-2016.11
  194939. .INDENT 2.0
  194940. .IP \(bu 2
  194941. 36c038c92a Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194942. .IP \(bu 2
  194943. 571c33aa39 Merge pull request \fI\%#45518\fP from gtmanfred/2016.11.9
  194944. .INDENT 2.0
  194945. .IP \(bu 2
  194946. 5455d2dee6 fix centos 6 pip test
  194947. .IP \(bu 2
  194948. 40255194b0 fix fedora pkg test
  194949. .UNINDENT
  194950. .UNINDENT
  194951. .IP \(bu 2
  194952. 0638638fb9 Merge pull request \fI\%#45504\fP from rallytime/merge\-2016.11
  194953. .INDENT 2.0
  194954. .IP \(bu 2
  194955. d72fc74e8c Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194956. .INDENT 2.0
  194957. .IP \(bu 2
  194958. 4e0a0eec1f Merge pull request \fI\%#45443\fP from rallytime/bp\-45399\-2016.11.9
  194959. .INDENT 2.0
  194960. .IP \(bu 2
  194961. 919e92c911 Fix git.latest failure when rev is not the default branch
  194962. .UNINDENT
  194963. .IP \(bu 2
  194964. ebd4db66b8 Merge pull request \fI\%#45493\fP from damon\-atkins/2016.11_fix_sls_defintion_wrong_type
  194965. .INDENT 2.0
  194966. .IP \(bu 2
  194967. af108440df win_pkg lint space after ,
  194968. .IP \(bu 2
  194969. c6e922a236 win_pkg lint issues
  194970. .IP \(bu 2
  194971. f4627d7a80 fix quote i.e. change \(ga to \(aq
  194972. .IP \(bu 2
  194973. 6938a4c099 pkg.refresh_db report an issue if a sls pkg definition id not a dict instead of aborting.
  194974. .UNINDENT
  194975. .UNINDENT
  194976. .UNINDENT
  194977. .IP \(bu 2
  194978. 5a2a31bfff Merge pull request \fI\%#45495\fP from vutny/doc\-rhel\-pygit2\-compat
  194979. .INDENT 2.0
  194980. .IP \(bu 2
  194981. 0d79b9eaff [DOC] Suggest to upgrade pygit2 and deps
  194982. .UNINDENT
  194983. .IP \(bu 2
  194984. 9c4fb42e5f Merge pull request \fI\%#45481\fP from twangboy/fix_aptpkg
  194985. .INDENT 2.0
  194986. .IP \(bu 2
  194987. fd67b086b4 Fix if statement in __init__()
  194988. .UNINDENT
  194989. .UNINDENT
  194990. .IP \(bu 2
  194991. \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)
  194992. .IP \(bu 2
  194993. \fBPR\fP \fI\%#45389\fP: (\fI\%DmitryKuzmenko\fP) Docs update for function args limit in pub acl.
  194994. @ \fI2018\-01\-18 22:56:10 UTC\fP
  194995. .INDENT 2.0
  194996. .IP \(bu 2
  194997. 28554ca935 Merge pull request \fI\%#45389\fP from DSRCorporation/bugs/42626_pub_acl_doc
  194998. .IP \(bu 2
  194999. f33ebcada0 Doc note about user names regex matching in pub acl and eauth.
  195000. .IP \(bu 2
  195001. e29c0ff19e Docs update for function args limit in pub acl.
  195002. .UNINDENT
  195003. .IP \(bu 2
  195004. \fBPR\fP \fI\%#45483\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  195005. @ \fI2018\-01\-18 22:54:12 UTC\fP
  195006. .INDENT 2.0
  195007. .IP \(bu 2
  195008. b3dc758ab0 Merge pull request \fI\%#45483\fP from rallytime/merge\-2017.7
  195009. .IP \(bu 2
  195010. de6d85959a Lint fix
  195011. .IP \(bu 2
  195012. 9f547a31f0 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  195013. .INDENT 2.0
  195014. .IP \(bu 2
  195015. b756760415 Merge pull request \fI\%#45482\fP from rallytime/merge\-2016.11
  195016. .INDENT 2.0
  195017. .IP \(bu 2
  195018. 3b38c77159 Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  195019. .IP \(bu 2
  195020. 7322efba92 Merge pull request \fI\%#45446\fP from rallytime/bp\-45390
  195021. .UNINDENT
  195022. .IP \(bu 2
  195023. 96ae237d37 Merge pull request \fI\%#45448\fP from rallytime/merge\-2016.11.9
  195024. .INDENT 2.0
  195025. .IP \(bu 2
  195026. 646379d981 Merge branch \(aq2016.11\(aq into \(aq2016.11.9\(aq
  195027. .UNINDENT
  195028. .IP \(bu 2
  195029. 1ed323a3ee Merge pull request \fI\%#45437\fP from terminalmage/fix\-docstring
  195030. .INDENT 2.0
  195031. .IP \(bu 2
  195032. c11b16dc29 Fix incorrect wording in jboss7 docstrings
  195033. .UNINDENT
  195034. .IP \(bu 2
  195035. 600fa3939f Merge pull request \fI\%#45390\fP from damon\-atkins/2016.11_win_pkg_remove_final_fixes
  195036. .INDENT 2.0
  195037. .IP \(bu 2
  195038. 69f045ea24 lint too\-many\-blank\-lines
  195039. .IP \(bu 2
  195040. 10a7501ede Update release notes
  195041. .IP \(bu 2
  195042. 6f2affe01c fix pkg.remove, pkg.list_pkgs
  195043. .UNINDENT
  195044. .IP \(bu 2
  195045. 057df44a4a Merge pull request \fI\%#45399\fP from terminalmage/fix\-git.latest\-depth
  195046. .IP \(bu 2
  195047. 0cbc6767bf Fix git.latest failure when rev is not the default branch
  195048. .IP \(bu 2
  195049. b0ece9f4d4 Merge pull request \fI\%#45424\fP from twangboy/win_reg
  195050. .IP \(bu 2
  195051. 30f06205f7 Fix some issues with reg.py
  195052. .UNINDENT
  195053. .UNINDENT
  195054. .IP \(bu 2
  195055. \fBPR\fP \fI\%#45529\fP: (\fI\%Ch3LL\fP) Fix UnboundLocalError for pacman pkg installs
  195056. @ \fI2018\-01\-18 19:01:49 UTC\fP
  195057. .INDENT 2.0
  195058. .IP \(bu 2
  195059. 5e26282843 Merge pull request \fI\%#45529\fP from Ch3LL/pacman\-sources
  195060. .IP \(bu 2
  195061. e619d49ef3 Fix UnboundLocalError for pacman pkg installs
  195062. .UNINDENT
  195063. .IP \(bu 2
  195064. \fBPR\fP \fI\%#45508\fP: (\fI\%frogunder\fP) fix test_archive test for mac on 2017.7 branch
  195065. @ \fI2018\-01\-18 16:04:36 UTC\fP
  195066. .INDENT 2.0
  195067. .IP \(bu 2
  195068. 840c97417d Merge pull request \fI\%#45508\fP from frogunder/fix_mac_archive_tests_2017.7_branch
  195069. .IP \(bu 2
  195070. ccf062d62e fix test_archive test for mac on 2017.7 branch
  195071. .UNINDENT
  195072. .IP \(bu 2
  195073. \fBPR\fP \fI\%#45444\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45343\fP to 2017.7
  195074. @ \fI2018\-01\-17 17:17:59 UTC\fP
  195075. .INDENT 2.0
  195076. .IP \(bu 2
  195077. \fBPR\fP \fI\%#45343\fP: (\fI\%rrroo\fP) Support expr_form for manage.up, manage.down (refs: \fI\%#45444\fP)
  195078. .IP \(bu 2
  195079. e1403b6813 Merge pull request \fI\%#45444\fP from rallytime/bp\-45343
  195080. .IP \(bu 2
  195081. c7d2081390 Support expr_form for manage.up, manage.down
  195082. .UNINDENT
  195083. .IP \(bu 2
  195084. \fBPR\fP \fI\%#45465\fP: (\fI\%terminalmage\fP) Backport \fI\%#45095\fP to 2017.7 branch
  195085. @ \fI2018\-01\-17 15:13:05 UTC\fP
  195086. .INDENT 2.0
  195087. .IP \(bu 2
  195088. \fBPR\fP \fI\%#45095\fP: (\fI\%terminalmage\fP) PY3: Make loader ignore .pyc files not in __pycache__ (refs: \fI\%#45465\fP)
  195089. .IP \(bu 2
  195090. 4b2c88e2e6 Merge pull request \fI\%#45465\fP from terminalmage/bp\-45095
  195091. .IP \(bu 2
  195092. 2f63a6dbf4 Optimization: don\(aqt allocate a new list to concatenate
  195093. .IP \(bu 2
  195094. 5074741130 EAFP
  195095. .IP \(bu 2
  195096. 85dbdc6a39 PY3: Make loader ignore .pyc files not in __pycache__
  195097. .UNINDENT
  195098. .IP \(bu 2
  195099. \fBPR\fP \fI\%#45365\fP: (\fI\%meaksh\fP) Return an error when "gid_from_name" is set but group does not exist
  195100. @ \fI2018\-01\-16 18:31:50 UTC\fP
  195101. .INDENT 2.0
  195102. .IP \(bu 2
  195103. 5f58a87e84 Merge pull request \fI\%#45365\fP from meaksh/2017.7\-issue\-45345
  195104. .IP \(bu 2
  195105. da23067f80 Refactor to prevent logical bug when gid is 0
  195106. .IP \(bu 2
  195107. 9fdaa0d5e9 Update documentation for \(aqgid_from_name\(aq parameter
  195108. .IP \(bu 2
  195109. 52f9c06908 Fix integration tests for \(aquser.present\(aq state.
  195110. .IP \(bu 2
  195111. e2c32dc6dc Make pylint happy
  195112. .IP \(bu 2
  195113. a18dbe0c11 Return error when gid_from_name and group does not exist.
  195114. .IP \(bu 2
  195115. ce7b1f4baf Ensure empty string gid is set to None
  195116. .UNINDENT
  195117. .IP \(bu 2
  195118. \fBISSUE\fP \fI\%#43535\fP: (\fI\%Ch3LL\fP) Add pkg.latest_version Test to Auto Test Suite (refs: \fI\%#44822\fP)
  195119. .IP \(bu 2
  195120. \fBPR\fP \fI\%#44822\fP: (\fI\%frogunder\fP) add pkg_latest_version test
  195121. @ \fI2018\-01\-16 14:16:54 UTC\fP
  195122. .INDENT 2.0
  195123. .IP \(bu 2
  195124. de080983e3 Merge pull request \fI\%#44822\fP from frogunder/pkg_latestversion
  195125. .IP \(bu 2
  195126. 08644e02a0 skip if mac
  195127. .IP \(bu 2
  195128. dfb68f32d2 fix if statements and string
  195129. .IP \(bu 2
  195130. 3504083849 add pkg_latest_version test
  195131. .UNINDENT
  195132. .IP \(bu 2
  195133. \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)
  195134. .IP \(bu 2
  195135. \fBPR\fP \fI\%#45435\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45401\fP to 2017.7
  195136. @ \fI2018\-01\-14 12:43:48 UTC\fP
  195137. .INDENT 2.0
  195138. .IP \(bu 2
  195139. \fBPR\fP \fI\%#45401\fP: (\fI\%gtmanfred\fP) fix boto import failures (refs: \fI\%#45435\fP)
  195140. .IP \(bu 2
  195141. cb3e0cffb3 Merge pull request \fI\%#45435\fP from rallytime/bp\-45401
  195142. .IP \(bu 2
  195143. b9761971c2 fix moto version
  195144. .IP \(bu 2
  195145. 0cd95d1cc6 fix test boto imports
  195146. .UNINDENT
  195147. .IP \(bu 2
  195148. \fBPR\fP \fI\%#45380\fP: (\fI\%twangboy\fP) Backport changes from \fI\%#45308\fP
  195149. @ \fI2018\-01\-11 19:45:21 UTC\fP
  195150. .INDENT 2.0
  195151. .IP \(bu 2
  195152. \fBPR\fP \fI\%#45308\fP: (\fI\%twangboy\fP) Fix \fIintegration.modules.test_state\fP for Windows (refs: \fI\%#45380\fP)
  195153. .IP \(bu 2
  195154. 2340f0b487 Merge pull request \fI\%#45380\fP from twangboy/backport_45308
  195155. .IP \(bu 2
  195156. 419be8a9b5 Backport changes from \fI\%#45308\fP
  195157. .UNINDENT
  195158. .UNINDENT
  195159. .SS Salt 2017.7.6 Release Notes
  195160. .sp
  195161. Version 2017.7.6 is a bugfix release for 2017.7.0\&.
  195162. .SS Statistics
  195163. .INDENT 0.0
  195164. .IP \(bu 2
  195165. Total Merges: \fB182\fP
  195166. .IP \(bu 2
  195167. Total Issue References: \fB60\fP
  195168. .IP \(bu 2
  195169. Total PR References: \fB217\fP
  195170. .IP \(bu 2
  195171. 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)
  195172. .UNINDENT
  195173. .SS Tornado 5.0 Support for Python 2 Only
  195174. .sp
  195175. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  195176. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  195177. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  195178. versions of salt has been delayed to a later release.
  195179. .sp
  195180. For now, to use tornado 5.0, the python 2 version of salt must be used.
  195181. .SS Tornado 5.0 Support for Python 2 Only
  195182. .sp
  195183. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  195184. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  195185. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  195186. versions of salt has been delayed to a later release.
  195187. .sp
  195188. For now, to use tornado 5.0, the python 2 version of salt must be used.
  195189. .SS Option to Return to Previous Pillar Include Behavior
  195190. .sp
  195191. Prior to version 2017.7.3, keys from pillar includes
  195192. would be merged on top of the pillar SLS. Since 2017.7.3, the includes are
  195193. merged together and then the pillar SLS is merged on top of that.
  195194. .sp
  195195. The \fBpillar_includes_override_sls\fP option has been added allow
  195196. users to switch back to the pre\-2017.7.3 behavior.
  195197. .SS Changelog for v2017.7.5..v2017.7.6
  195198. .sp
  195199. \fIGenerated at: 2018\-05\-29 14:05:53 UTC\fP
  195200. .INDENT 0.0
  195201. .IP \(bu 2
  195202. \fBPR\fP \fI\%#47775\fP: (\fI\%gtmanfred\fP) catch UnsupportedOperation with AssertionError
  195203. @ \fI2018\-05\-22 19:04:13 UTC\fP
  195204. .INDENT 2.0
  195205. .IP \(bu 2
  195206. edf94c915e Merge pull request \fI\%#47775\fP from gtmanfred/2017.7.6
  195207. .IP \(bu 2
  195208. 548f65d056 catch UnsupportedOperation with AssertionError
  195209. .UNINDENT
  195210. .IP \(bu 2
  195211. \fBPR\fP \fI\%#47769\fP: (\fI\%gtmanfred\fP) skip test that breaks test suite
  195212. @ \fI2018\-05\-22 15:12:54 UTC\fP
  195213. .INDENT 2.0
  195214. .IP \(bu 2
  195215. 8c38ecd75f Merge pull request \fI\%#47769\fP from gtmanfred/2017.7.6
  195216. .IP \(bu 2
  195217. 3fdfc0fa82 skip test that breaks test suite
  195218. .UNINDENT
  195219. .IP \(bu 2
  195220. \fBPR\fP \fI\%#47747\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.6 release notes
  195221. @ \fI2018\-05\-21 14:25:00 UTC\fP
  195222. .INDENT 2.0
  195223. .IP \(bu 2
  195224. 0d5b473ce2 Merge pull request \fI\%#47747\fP from Ch3LL/rn_2017.7.6
  195225. .IP \(bu 2
  195226. d4aa83b92d Add changelog to 2017.7.6 release notes
  195227. .UNINDENT
  195228. .IP \(bu 2
  195229. \fBISSUE\fP \fI\%#47484\fP: (\fI\%whytewolf\fP) Windows: pkg.latest state not updating packages. (refs: \fI\%#47702\fP)
  195230. .IP \(bu 2
  195231. \fBPR\fP \fI\%#47702\fP: (\fI\%damon\-atkins\fP) State pkg.latest called win pkg.install with list of pkgs and the required versions
  195232. @ \fI2018\-05\-19 11:21:23 UTC\fP
  195233. .INDENT 2.0
  195234. .IP \(bu 2
  195235. 8a5b34f7d9 Merge pull request \fI\%#47702\fP from damon\-atkins/2017.7.6_fix_pkg.latest_state
  195236. .IP \(bu 2
  195237. adcc094e08 Merge branch \(aq2017.7.6\(aq into 2017.7.6_fix_pkg.latest_state
  195238. .UNINDENT
  195239. .IP \(bu 2
  195240. \fBPR\fP \fI\%#47700\fP: (\fI\%yannj\-fr\fP) fix roots modification time check
  195241. @ \fI2018\-05\-18 18:42:17 UTC\fP
  195242. .INDENT 2.0
  195243. .IP \(bu 2
  195244. d610c192d9 Merge pull request \fI\%#47700\fP from yannj\-fr/2017.7.6
  195245. .IP \(bu 2
  195246. 961c1ef61e fix roots modification time check
  195247. .INDENT 2.0
  195248. .IP \(bu 2
  195249. 2a73e905df Merge branch \(aq2017.7.6\(aq into 2017.7.6
  195250. .UNINDENT
  195251. .UNINDENT
  195252. .IP \(bu 2
  195253. \fBPR\fP \fI\%#47632\fP: (\fI\%gtmanfred\fP) handle new _create_stream in tornado 5.0
  195254. @ \fI2018\-05\-18 14:25:17 UTC\fP
  195255. .INDENT 2.0
  195256. .IP \(bu 2
  195257. 266749420f Merge pull request \fI\%#47632\fP from gtmanfred/2017.7.6
  195258. .IP \(bu 2
  195259. 2c50c0d2f5 fix pylint
  195260. .IP \(bu 2
  195261. 4a29057b16 Fix last test for tornado
  195262. .IP \(bu 2
  195263. 550ef2e272 allow using tornado 5.0
  195264. .IP \(bu 2
  195265. 62e468448b handle new _create_stream in tornado 5.0
  195266. .UNINDENT
  195267. .IP \(bu 2
  195268. \fBPR\fP \fI\%#47720\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47692\fP to 2017.7.6
  195269. @ \fI2018\-05\-18 13:23:03 UTC\fP
  195270. .INDENT 2.0
  195271. .IP \(bu 2
  195272. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic (refs: \fI\%#47720\fP)
  195273. .IP \(bu 2
  195274. 2643c356af Merge pull request \fI\%#47720\fP from rallytime/bp\-47692\-2017.7.6
  195275. .IP \(bu 2
  195276. 6e5cb36839 Default windows to m1.small for ec2\-classic
  195277. .INDENT 2.0
  195278. .IP \(bu 2
  195279. 20d9785244 fix roots modification time check
  195280. .UNINDENT
  195281. .IP \(bu 2
  195282. aef37dd1ce fix roots modification time check
  195283. .IP \(bu 2
  195284. d51662e053 Ensure targeted_pkgs always contains value for non\-windows.
  195285. .IP \(bu 2
  195286. 83b4224cf8 Adjusted based on feed back.
  195287. .IP \(bu 2
  195288. 12f983ce9f Whitespace lint issues
  195289. .IP \(bu 2
  195290. 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
  195291. .UNINDENT
  195292. .IP \(bu 2
  195293. \fBPR\fP \fI\%#47667\fP: (\fI\%Ch3LL\fP) Update test_mac_user_enable_auto_login to test both py2 and py3
  195294. @ \fI2018\-05\-16 15:54:49 UTC\fP
  195295. .INDENT 2.0
  195296. .IP \(bu 2
  195297. 16c2153385 Merge pull request \fI\%#47667\fP from Ch3LL/mac_user_enable
  195298. .IP \(bu 2
  195299. ba40d3d1a1 Update test_mac_user_enable_auto_login to test both py2 and py3
  195300. .UNINDENT
  195301. .IP \(bu 2
  195302. \fBPR\fP \fI\%#47645\fP: (\fI\%Ch3LL\fP) query the pip path for test test_issue_2087_missing_pip
  195303. @ \fI2018\-05\-15 17:16:10 UTC\fP
  195304. .INDENT 2.0
  195305. .IP \(bu 2
  195306. a4921e86c9 Merge pull request \fI\%#47645\fP from Ch3LL/py3_rm_pip
  195307. .IP \(bu 2
  195308. 225d90ad4c query the pip path for test test_issue_2087_missing_pip
  195309. .UNINDENT
  195310. .IP \(bu 2
  195311. \fBPR\fP \fI\%#47646\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47601\fP and \fI\%#47643\fP to 2017.7.6
  195312. @ \fI2018\-05\-15 14:04:45 UTC\fP
  195313. .INDENT 2.0
  195314. .IP \(bu 2
  195315. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file (refs: \fI\%#47646\fP)
  195316. .IP \(bu 2
  195317. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas (refs: \fI\%#47646\fP)
  195318. .IP \(bu 2
  195319. e441733ac1 Merge pull request \fI\%#47646\fP from rallytime/bp\-47601\-and\-47643
  195320. .IP \(bu 2
  195321. 9e1d1a5ef8 Fix typo
  195322. .IP \(bu 2
  195323. 4e94609136 Remove unwanted file
  195324. .IP \(bu 2
  195325. 0109249c78 use ignore\-undefined\-variable
  195326. .IP \(bu 2
  195327. 37caecb7f4 Ignore pylint WindowsError
  195328. .IP \(bu 2
  195329. c1135d90c7 Better doc string
  195330. .IP \(bu 2
  195331. e53d6b9ed9 Skip tests when we can not use runas
  195332. .UNINDENT
  195333. .IP \(bu 2
  195334. \fBPR\fP \fI\%#47570\fP: (\fI\%gtmanfred\fP) Update dependency to msgpack
  195335. @ \fI2018\-05\-10 13:23:09 UTC\fP
  195336. .INDENT 2.0
  195337. .IP \(bu 2
  195338. 6f178ca908 Merge pull request \fI\%#47570\fP from gtmanfred/2017.7.6
  195339. .IP \(bu 2
  195340. 84aa034e03 Update dependency to msgpack
  195341. .UNINDENT
  195342. .IP \(bu 2
  195343. \fBPR\fP \fI\%#47523\fP: (\fI\%rallytime\fP) [2017.7.6] Update man pages
  195344. @ \fI2018\-05\-08 13:31:19 UTC\fP
  195345. .INDENT 2.0
  195346. .IP \(bu 2
  195347. 98bd598701 Merge pull request \fI\%#47523\fP from rallytime/man\-pages
  195348. .IP \(bu 2
  195349. 48ecb78dec [2017.7.6] Update man pages
  195350. .UNINDENT
  195351. .IP \(bu 2
  195352. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  195353. .IP \(bu 2
  195354. \fBPR\fP \fI\%#47517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47505\fP to 2017.7.6
  195355. @ \fI2018\-05\-07 19:42:37 UTC\fP
  195356. .INDENT 2.0
  195357. .IP \(bu 2
  195358. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors (refs: \fI\%#47517\fP)
  195359. .IP \(bu 2
  195360. e608ea9617 Merge pull request \fI\%#47517\fP from rallytime/bp\-47505\-2017.7.6
  195361. .IP \(bu 2
  195362. 0734578533 Raise proper invocation errors
  195363. .UNINDENT
  195364. .IP \(bu 2
  195365. \fBPR\fP \fI\%#47476\fP: (\fI\%gtmanfred\fP) Specify the cache directory for newer virtualenv modules
  195366. @ \fI2018\-05\-04 19:20:45 UTC\fP
  195367. .INDENT 2.0
  195368. .IP \(bu 2
  195369. 611ca1fc03 Merge pull request \fI\%#47476\fP from gtmanfred/2017.7
  195370. .IP \(bu 2
  195371. 1f91a85587 specify cache dir for pip install
  195372. .IP \(bu 2
  195373. 99e150e09c check for kitchen\-vagrant gem before loading windows tests
  195374. .UNINDENT
  195375. .IP \(bu 2
  195376. \fBPR\fP \fI\%#47412\fP: (\fI\%twangboy\fP) Fix issue where the cwd was being removed
  195377. @ \fI2018\-05\-04 17:28:11 UTC\fP
  195378. .INDENT 2.0
  195379. .IP \(bu 2
  195380. 7c3f2c56da Merge pull request \fI\%#47412\fP from twangboy/fix_47125
  195381. .IP \(bu 2
  195382. c9bab0b8e3 Merge branch \(aq2017.7\(aq into fix_47125
  195383. .IP \(bu 2
  195384. 2600e404d5 Fix overly long line
  195385. .IP \(bu 2
  195386. 5c8db05769 Fix issue where the cwd was being removed
  195387. .UNINDENT
  195388. .IP \(bu 2
  195389. \fBPR\fP \fI\%#47467\fP: (\fI\%twangboy\fP) Remove unused settings, update NSIS
  195390. @ \fI2018\-05\-04 17:11:37 UTC\fP
  195391. .INDENT 2.0
  195392. .IP \(bu 2
  195393. 4846e957c4 Merge pull request \fI\%#47467\fP from twangboy/cleanup_settings
  195394. .IP \(bu 2
  195395. 9d498293b1 Remove unused settings, update NSIS
  195396. .UNINDENT
  195397. .IP \(bu 2
  195398. \fBPR\fP \fI\%#47196\fP: (\fI\%twangboy\fP) Fix issues with pip
  195399. @ \fI2018\-05\-04 14:23:04 UTC\fP
  195400. .INDENT 2.0
  195401. .IP \(bu 2
  195402. da9871d36b Merge pull request \fI\%#47196\fP from twangboy/fix_47024
  195403. .IP \(bu 2
  195404. 14ee5537b9 Add @with_tempdir helper
  195405. .IP \(bu 2
  195406. 6c3b5fa6fa Fix typo
  195407. .IP \(bu 2
  195408. f031710af2 Merge branch \(aq2017.7\(aq into fix_47024
  195409. .IP \(bu 2
  195410. 7c46d9d0d4 Fix integration.modules.test_pip
  195411. .IP \(bu 2
  195412. 22ac81df63 Fix integration.modules.test_pip
  195413. .IP \(bu 2
  195414. 57d98224d4 Merge pull request #9 from terminalmage/twangboy/fix_47024
  195415. .INDENT 2.0
  195416. .IP \(bu 2
  195417. 37a13d8004 Update pip unit tests to reflect changes
  195418. .IP \(bu 2
  195419. 7f86779be0 Lint fix
  195420. .UNINDENT
  195421. .IP \(bu 2
  195422. c48d8f4f61 DRY and other fixes in pip module
  195423. .IP \(bu 2
  195424. b1117896a0 Change from global variable to __context__\(ga\(ga
  195425. .IP \(bu 2
  195426. 3e6e524eca Fix some tests\(ga\(ga
  195427. .IP \(bu 2
  195428. c94f0f20e4 Fix lint error
  195429. .IP \(bu 2
  195430. fd47b21530 Fix merge conflict
  195431. .UNINDENT
  195432. .IP \(bu 2
  195433. \fBPR\fP \fI\%#47455\fP: (\fI\%Ch3LL\fP) Add In Progress Warning for 2017.7.6 Release Notes
  195434. @ \fI2018\-05\-04 13:44:54 UTC\fP
  195435. .INDENT 2.0
  195436. .IP \(bu 2
  195437. e8c4524bae Merge pull request \fI\%#47455\fP from Ch3LL/unreleased_rn
  195438. .IP \(bu 2
  195439. b6d0cc2ab7 Add In Progress Warning for 2017.7.6 Release Notes
  195440. .UNINDENT
  195441. .IP \(bu 2
  195442. \fBPR\fP \fI\%#47459\fP: (\fI\%gtmanfred\fP) update ubuntu\-rolling to 18.04
  195443. @ \fI2018\-05\-03 20:39:20 UTC\fP
  195444. .INDENT 2.0
  195445. .IP \(bu 2
  195446. 2c7a4b6179 Merge pull request \fI\%#47459\fP from gtmanfred/2017.7
  195447. .IP \(bu 2
  195448. d228e72477 update ubuntu\-rolling to 18.04
  195449. .UNINDENT
  195450. .IP \(bu 2
  195451. \fBPR\fP \fI\%#47462\fP: (\fI\%terminalmage\fP) Fix docs build on Sphinx 1.7+
  195452. @ \fI2018\-05\-03 20:06:57 UTC\fP
  195453. .INDENT 2.0
  195454. .IP \(bu 2
  195455. 64a64c0ed7 Merge pull request \fI\%#47462\fP from terminalmage/docs
  195456. .IP \(bu 2
  195457. 6d7803ece0 Fix docs build on Sphinx 1.7+
  195458. .UNINDENT
  195459. .IP \(bu 2
  195460. \fBISSUE\fP \fI\%#47436\fP: (\fI\%lomeroe\fP) Some Administrative Template policies are not properly set by lgpo (refs: \fI\%#47438\fP)
  195461. .IP \(bu 2
  195462. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP)
  195463. .IP \(bu 2
  195464. \fBPR\fP \fI\%#47438\fP: (\fI\%lomeroe\fP) lgpo fix for issue \fI\%#47436\fP
  195465. @ \fI2018\-05\-03 14:40:27 UTC\fP
  195466. .INDENT 2.0
  195467. .IP \(bu 2
  195468. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#46913\fP, \fI\%#47438\fP)
  195469. .IP \(bu 2
  195470. 6cd0d31c03 Merge pull request \fI\%#47438\fP from lomeroe/double_admx_test
  195471. .IP \(bu 2
  195472. 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
  195473. .UNINDENT
  195474. .IP \(bu 2
  195475. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#47106\fP, \fI\%#47433\fP)
  195476. .IP \(bu 2
  195477. \fBPR\fP \fI\%#47433\fP: (\fI\%s0undt3ch\fP) Add missing requirements files not commited in \fI\%#47106\fP
  195478. @ \fI2018\-05\-02 20:57:14 UTC\fP
  195479. .INDENT 2.0
  195480. .IP \(bu 2
  195481. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47433\fP)
  195482. .IP \(bu 2
  195483. ed69821d19 Merge pull request \fI\%#47433\fP from s0undt3ch/2017.7
  195484. .IP \(bu 2
  195485. 5abadf25d6 Add missing requirements files not commited in \fI\%#47106\fP
  195486. .UNINDENT
  195487. .IP \(bu 2
  195488. \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)
  195489. .IP \(bu 2
  195490. \fBPR\fP \fI\%#47429\fP: (\fI\%gtmanfred\fP) server_list_min should use state, not status
  195491. @ \fI2018\-05\-02 16:27:56 UTC\fP
  195492. .INDENT 2.0
  195493. .IP \(bu 2
  195494. 7ae3497b0c Merge pull request \fI\%#47429\fP from gtmanfred/2017.7
  195495. .IP \(bu 2
  195496. 8ae32033cc server_list_min should use state, not status
  195497. .UNINDENT
  195498. .IP \(bu 2
  195499. \fBPR\fP \fI\%#47399\fP: (\fI\%isbm\fP) zeromq 17 deprecation warning backport from 2018.3 + tornado 5 fixes
  195500. @ \fI2018\-05\-02 15:11:16 UTC\fP
  195501. .INDENT 2.0
  195502. .IP \(bu 2
  195503. 2f5fc4ecc5 Merge pull request \fI\%#47399\fP from isbm/isbm\-zeromq17\-deprecationwarning\-2017.7.2\-v2
  195504. .IP \(bu 2
  195505. a36e49fd27 fix pylint
  195506. .IP \(bu 2
  195507. 98b5629b36 Fix imports
  195508. .IP \(bu 2
  195509. d94c0f0152 Remove unnecessary variable
  195510. .IP \(bu 2
  195511. 8e377b5653 Lintfix: E0203 and attribute access
  195512. .IP \(bu 2
  195513. 2aab70b1b8 Install ZMQ handler if <15 version
  195514. .IP \(bu 2
  195515. 296c589f4b Use ZMQ switch utility in the integration tests
  195516. .IP \(bu 2
  195517. ab5fa34d7c Use ZMQ_VERSION_INFO constant everywhere
  195518. .IP \(bu 2
  195519. 43b5558b82 Add trace logging on ZMQ sockets communication
  195520. .IP \(bu 2
  195521. 164204a9fe Remove duplicate code for ZMQ monitor handling
  195522. .IP \(bu 2
  195523. 834b1e4ff0 Remove obsolete ZMQIOLoop direct instance
  195524. .IP \(bu 2
  195525. 1c90cbdb3c Remove an empty line
  195526. .IP \(bu 2
  195527. ef2e0acd66 Add logging on ZMQ socket exception
  195528. .IP \(bu 2
  195529. 38ceed371d Lintfix: ident
  195530. .IP \(bu 2
  195531. 1ece6a5f52 Lintfix: line too long
  195532. .IP \(bu 2
  195533. 4e650c0b44 Remove code duplicate by reusing utilities functions
  195534. .IP \(bu 2
  195535. 57da54b676 Fix imports
  195536. .IP \(bu 2
  195537. 948368e9a1 Add libzmq version info builder
  195538. .IP \(bu 2
  195539. 0b4a17b859 Update log exception message
  195540. .IP \(bu 2
  195541. 116e1809fc Put a message alongside the exception to the logs
  195542. .IP \(bu 2
  195543. 4bc43124b7 Remove unnecessary ZMQ import and check for its presence
  195544. .IP \(bu 2
  195545. 05f4d40269 Use utility for ZMQ import handling in SSH client
  195546. .IP \(bu 2
  195547. 457ef7d9a5 Use utility for ZMQ import handling in flo/zero
  195548. .IP \(bu 2
  195549. 08dee6f5bd Use utility for ZMQ import handling
  195550. .IP \(bu 2
  195551. e2a353cfb0 Remove unnecessary ZMQ extra\-check for cache utils
  195552. .IP \(bu 2
  195553. c8f2cc271d Remove unnecessary ZMQ extra\-check for master utils
  195554. .IP \(bu 2
  195555. 3940667bb9 Remove old ZMQ import handling
  195556. .IP \(bu 2
  195557. f34a53e029 Use ZMQ utility for version check
  195558. .IP \(bu 2
  195559. cbb26dcb28 Use ZMQ installer for master
  195560. .IP \(bu 2
  195561. 453e83210a Add ZMQ version build
  195562. .IP \(bu 2
  195563. af9601e21d Use ZMQ importer utility in async
  195564. .IP \(bu 2
  195565. d50b2b2023 Incorporate tornado\-5 fixes
  195566. .IP \(bu 2
  195567. 1fd9af0655 Add ZMQ backward\-compatibility tornado installer for older versions
  195568. .IP \(bu 2
  195569. ad4b40415c Add one place for handling various ZMQ versions and IOLoop classes
  195570. .UNINDENT
  195571. .IP \(bu 2
  195572. \fBPR\fP \fI\%#47343\fP: (\fI\%Ch3LL\fP) Add additional service module integration tests and enable for windows
  195573. @ \fI2018\-05\-02 13:39:46 UTC\fP
  195574. .INDENT 2.0
  195575. .IP \(bu 2
  195576. b14e974b5f Merge pull request \fI\%#47343\fP from Ch3LL/win_srv_test
  195577. .IP \(bu 2
  195578. 2173b6f549 ensure we are enabling/disabling before test
  195579. .IP \(bu 2
  195580. d58be06751 Add additionatl service module integration tests and enable for windows
  195581. .UNINDENT
  195582. .IP \(bu 2
  195583. \fBPR\fP \fI\%#47375\fP: (\fI\%terminalmage\fP) Warn on use of virtual packages in pkg.installed state
  195584. @ \fI2018\-05\-01 21:12:18 UTC\fP
  195585. .INDENT 2.0
  195586. .IP \(bu 2
  195587. b0f3fb577f Merge pull request \fI\%#47375\fP from terminalmage/issue47310
  195588. .IP \(bu 2
  195589. fa2bea52bb Remove extra blank line to appease linter
  195590. .IP \(bu 2
  195591. f8ab2be81c Add debug logging if we fail to detect virtual packages
  195592. .IP \(bu 2
  195593. 67c4fc56ac Warn on use of virtual packages in pkg.installed state
  195594. .UNINDENT
  195595. .IP \(bu 2
  195596. \fBPR\fP \fI\%#47415\fP: (\fI\%kstreee\fP) Fixes a bug of rest_tornado\(aqs \(aqlocal\(aq client, complement fix of \fI\%#46326\fP
  195597. @ \fI2018\-05\-01 21:11:25 UTC\fP
  195598. .INDENT 2.0
  195599. .IP \(bu 2
  195600. \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)
  195601. .IP \(bu 2
  195602. \fBPR\fP \fI\%#47123\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2018.3 to develop (refs: \fI\%#47200\fP)
  195603. .IP \(bu 2
  195604. \fBPR\fP \fI\%#47110\fP: (\fI\%kstreee\fP) Fixes misusing of the timeout option. (refs: \fI\%#47200\fP)
  195605. .IP \(bu 2
  195606. \fBPR\fP \fI\%#46692\fP: (\fI\%mattp\-\fP) saltnado bugfixes for ldap & syndics (refs: \fI\%#47123\fP, \fI\%#47200\fP)
  195607. .IP \(bu 2
  195608. \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)
  195609. .IP \(bu 2
  195610. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  195611. .IP \(bu 2
  195612. 56235032f4 Merge pull request \fI\%#47415\fP from kstreee/fix\-local\-client\-tgt\-bug
  195613. .IP \(bu 2
  195614. 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\&.
  195615. .IP \(bu 2
  195616. 4627bad1fd Realizes \(aqtgt\(aq field into actual minions using ckminions to subscribe results of the minions before publishing a payload.
  195617. .UNINDENT
  195618. .IP \(bu 2
  195619. \fBPR\fP \fI\%#47286\fP: (\fI\%baniobloom\fP) fixed vpc_peering_connection_name option
  195620. @ \fI2018\-05\-01 19:02:10 UTC\fP
  195621. .INDENT 2.0
  195622. .IP \(bu 2
  195623. d65ceaee03 Merge pull request \fI\%#47286\fP from baniobloom/vpc_peering_connection_name_fix
  195624. .IP \(bu 2
  195625. a968965087 Merge branch \(aq2017.7\(aq into vpc_peering_connection_name_fix
  195626. .UNINDENT
  195627. .IP \(bu 2
  195628. \fBPR\fP \fI\%#47270\fP: (\fI\%meaksh\fP) Fix minion scheduler to return \(aqretcode\(aq from executed functions
  195629. @ \fI2018\-04\-30 18:21:55 UTC\fP
  195630. .INDENT 2.0
  195631. .IP \(bu 2
  195632. 8a5d4437bb Merge pull request \fI\%#47270\fP from meaksh/2017.7\-fix\-retcode\-on\-schedule\-utils
  195633. .IP \(bu 2
  195634. d299cf3385 Merge branch \(aq2017.7\(aq into 2017.7\-fix\-retcode\-on\-schedule\-utils
  195635. .IP \(bu 2
  195636. b6da600fff Initialize __context__ retcode for functions handled via schedule util module
  195637. .UNINDENT
  195638. .IP \(bu 2
  195639. \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)
  195640. .IP \(bu 2
  195641. \fBPR\fP \fI\%#47371\fP: (\fI\%rallytime\fP) Fix "of pass" typo in grains.delval docs: change to "or pass"
  195642. @ \fI2018\-04\-30 18:18:46 UTC\fP
  195643. .INDENT 2.0
  195644. .IP \(bu 2
  195645. 5b51075384 Merge pull request \fI\%#47371\fP from rallytime/fix\-47264
  195646. .IP \(bu 2
  195647. a43485b49c Fix "of pass" typo in grains.delval docs: change to "or pass"
  195648. .UNINDENT
  195649. .IP \(bu 2
  195650. \fBPR\fP \fI\%#47389\fP: (\fI\%dwoz\fP) Older GitPython versions will not have close
  195651. @ \fI2018\-04\-29 16:42:06 UTC\fP
  195652. .INDENT 2.0
  195653. .IP \(bu 2
  195654. a86e53be66 Merge pull request \fI\%#47389\fP from dwoz/moregittestfix
  195655. .IP \(bu 2
  195656. 67745c1362 Older GitPython versions will not have close
  195657. .UNINDENT
  195658. .IP \(bu 2
  195659. \fBPR\fP \fI\%#47388\fP: (\fI\%dwoz\fP) Fix missing import
  195660. @ \fI2018\-04\-28 18:33:14 UTC\fP
  195661. .INDENT 2.0
  195662. .IP \(bu 2
  195663. a5367eaf63 Merge pull request \fI\%#47388\fP from dwoz/test_pip_fix
  195664. .IP \(bu 2
  195665. eb26321e8b Fix missing import
  195666. .UNINDENT
  195667. .IP \(bu 2
  195668. \fBPR\fP \fI\%#47380\fP: (\fI\%gtmanfred\fP) add io_loop handling to runtests engine
  195669. @ \fI2018\-04\-28 17:25:28 UTC\fP
  195670. .INDENT 2.0
  195671. .IP \(bu 2
  195672. 9b59b991c2 Merge pull request \fI\%#47380\fP from gtmanfred/2017.7
  195673. .IP \(bu 2
  195674. 93d1445ec1 add io_loop handling to runtests engine
  195675. .UNINDENT
  195676. .IP \(bu 2
  195677. \fBPR\fP \fI\%#47384\fP: (\fI\%dwoz\fP) Fix py2 version of pip test
  195678. @ \fI2018\-04\-28 15:13:28 UTC\fP
  195679. .INDENT 2.0
  195680. .IP \(bu 2
  195681. 37822c0cbb Merge pull request \fI\%#47384\fP from dwoz/test_pip_fix
  195682. .IP \(bu 2
  195683. a37a9da1fb Fix py2 version of pip test
  195684. .UNINDENT
  195685. .IP \(bu 2
  195686. \fBPR\fP \fI\%#47382\fP: (\fI\%dwoz\fP) Close the repo and fix multiple tests
  195687. @ \fI2018\-04\-28 15:09:17 UTC\fP
  195688. .INDENT 2.0
  195689. .IP \(bu 2
  195690. eefd96732e Merge pull request \fI\%#47382\fP from dwoz/gitfs_tests
  195691. .IP \(bu 2
  195692. 1570708fac Close the repo and fix multiple tests
  195693. .UNINDENT
  195694. .IP \(bu 2
  195695. \fBPR\fP \fI\%#47369\fP: (\fI\%terminalmage\fP) Return an empty dict if no search_order in ldap ext_pillar config file
  195696. @ \fI2018\-04\-27 20:58:52 UTC\fP
  195697. .INDENT 2.0
  195698. .IP \(bu 2
  195699. 57c75ff660 Merge pull request \fI\%#47369\fP from terminalmage/ldap_pillar
  195700. .IP \(bu 2
  195701. 085883ae2d Return an empty dict if no search_order in ldap ext_pillar config file
  195702. .UNINDENT
  195703. .IP \(bu 2
  195704. \fBPR\fP \fI\%#47363\fP: (\fI\%DmitryKuzmenko\fP) Tornado5.0: Future.exc_info is dropped
  195705. @ \fI2018\-04\-27 18:30:18 UTC\fP
  195706. .INDENT 2.0
  195707. .IP \(bu 2
  195708. bcc66dd9bf Merge pull request \fI\%#47363\fP from DSRCorporation/bugs/replace_exc_info_with_exception
  195709. .IP \(bu 2
  195710. 3f7b93a23c Tornado5.0: Future.exc_info is dropped
  195711. .UNINDENT
  195712. .IP \(bu 2
  195713. \fBPR\fP \fI\%#47334\fP: (\fI\%terminalmage\fP) pillar_ldap: Fix cryptic errors when config file fails to load
  195714. @ \fI2018\-04\-27 17:53:51 UTC\fP
  195715. .INDENT 2.0
  195716. .IP \(bu 2
  195717. bcef34f7e1 Merge pull request \fI\%#47334\fP from terminalmage/ldap_pillar
  195718. .IP \(bu 2
  195719. 0175a8687c pillar_ldap: Fix cryptic errors when config file fails to load
  195720. .IP \(bu 2
  195721. 65c3ba7ff1 Remove useless documentation
  195722. .IP \(bu 2
  195723. 5d67cb27de Remove unncessary commented line
  195724. .UNINDENT
  195725. .IP \(bu 2
  195726. \fBPR\fP \fI\%#47347\fP: (\fI\%dwoz\fP) Proper fix for mysql tests
  195727. @ \fI2018\-04\-27 17:27:53 UTC\fP
  195728. .INDENT 2.0
  195729. .IP \(bu 2
  195730. 31db8ca7ad Merge pull request \fI\%#47347\fP from dwoz/test_mysql_fix_again
  195731. .IP \(bu 2
  195732. add78fb618 Fix linter warnings
  195733. .IP \(bu 2
  195734. 2644cc7553 Fix linter nits
  195735. .IP \(bu 2
  195736. 799c601184 Proper fix for mysql tests
  195737. .UNINDENT
  195738. .IP \(bu 2
  195739. \fBPR\fP \fI\%#47359\fP: (\fI\%gtmanfred\fP) add mention of the formulas channel to the formulas docs
  195740. @ \fI2018\-04\-27 16:56:13 UTC\fP
  195741. .INDENT 2.0
  195742. .IP \(bu 2
  195743. e573236848 Merge pull request \fI\%#47359\fP from gtmanfred/2017.7
  195744. .IP \(bu 2
  195745. 6214ed8133 add mention of the formulas channel to the formulas docs
  195746. .UNINDENT
  195747. .IP \(bu 2
  195748. \fBPR\fP \fI\%#47317\fP: (\fI\%dwoz\fP) Do not join a thread that is stopped
  195749. @ \fI2018\-04\-27 13:15:09 UTC\fP
  195750. .INDENT 2.0
  195751. .IP \(bu 2
  195752. \fBPR\fP \fI\%#47279\fP: (\fI\%dwoz\fP) Gracefully shutdown worker threads (refs: \fI\%#47317\fP)
  195753. .IP \(bu 2
  195754. 629503b2a8 Merge pull request \fI\%#47317\fP from dwoz/threadshutdown
  195755. .IP \(bu 2
  195756. 6db2a0e4d3 Log exceptions at exception level
  195757. .IP \(bu 2
  195758. d4ae787595 Do not join a thread that is stopped
  195759. .UNINDENT
  195760. .IP \(bu 2
  195761. \fBPR\fP \fI\%#47304\fP: (\fI\%cachedout\fP) Pass timeout to salt CLI for tests
  195762. @ \fI2018\-04\-27 13:11:58 UTC\fP
  195763. .INDENT 2.0
  195764. .IP \(bu 2
  195765. aacd5cefe3 Merge pull request \fI\%#47304\fP from cachedout/test_cli_timeout_arg
  195766. .IP \(bu 2
  195767. 85025af83c Pass timeout to salt CLI for tests
  195768. .UNINDENT
  195769. .IP \(bu 2
  195770. \fBPR\fP \fI\%#47311\fP: (\fI\%Ch3LL\fP) Add firewall execution modules tests for windows
  195771. @ \fI2018\-04\-27 13:10:54 UTC\fP
  195772. .INDENT 2.0
  195773. .IP \(bu 2
  195774. 55534fb659 Merge pull request \fI\%#47311\fP from Ch3LL/firewall_windows
  195775. .IP \(bu 2
  195776. 4e16c18c16 Add firewall module windows tests to whitelist
  195777. .IP \(bu 2
  195778. 4b2fc4ec66 Add windows firewall execution modules integration tests
  195779. .UNINDENT
  195780. .IP \(bu 2
  195781. \fBPR\fP \fI\%#47348\fP: (\fI\%dwoz\fP) Ignore gitfs tests when symlinks not enabled
  195782. @ \fI2018\-04\-27 13:08:27 UTC\fP
  195783. .INDENT 2.0
  195784. .IP \(bu 2
  195785. 1667375a80 Merge pull request \fI\%#47348\fP from dwoz/no_symlinks
  195786. .IP \(bu 2
  195787. 94a70e847a Ignore gitfs tests when symlinks not enabled
  195788. .UNINDENT
  195789. .IP \(bu 2
  195790. \fBPR\fP \fI\%#47342\fP: (\fI\%dwoz\fP) Fix mysql test cases
  195791. @ \fI2018\-04\-27 00:50:53 UTC\fP
  195792. .INDENT 2.0
  195793. .IP \(bu 2
  195794. dac04261b5 Merge pull request \fI\%#47342\fP from dwoz/test_mysql_fix
  195795. .IP \(bu 2
  195796. 7496f4c5a8 Fix mysql test cases
  195797. .UNINDENT
  195798. .IP \(bu 2
  195799. \fBPR\fP \fI\%#47341\fP: (\fI\%dwoz\fP) Fix python 3 support for inet_pton function
  195800. @ \fI2018\-04\-26 23:35:45 UTC\fP
  195801. .INDENT 2.0
  195802. .IP \(bu 2
  195803. 34e78ef564 Merge pull request \fI\%#47341\fP from dwoz/inet_pton_fix
  195804. .IP \(bu 2
  195805. 85451f48d4 Fix python 3 support for inet_pton function
  195806. .UNINDENT
  195807. .IP \(bu 2
  195808. \fBPR\fP \fI\%#47339\fP: (\fI\%dwoz\fP) Use salt.utils.fopen for line ending consistancy
  195809. @ \fI2018\-04\-26 22:39:56 UTC\fP
  195810. .INDENT 2.0
  195811. .IP \(bu 2
  195812. e4779f3246 Merge pull request \fI\%#47339\fP from dwoz/ssh_key_test_fix
  195813. .IP \(bu 2
  195814. e37a93a1ca Remove redundent close call
  195815. .IP \(bu 2
  195816. b2ae5889b7 Close the temporary file handle
  195817. .IP \(bu 2
  195818. 9f7f83a975 Use salt.utils.fopen for line ending consistancy
  195819. .UNINDENT
  195820. .IP \(bu 2
  195821. \fBPR\fP \fI\%#47335\fP: (\fI\%dwoz\fP) Remove un\-needed string\-escape
  195822. @ \fI2018\-04\-26 21:49:27 UTC\fP
  195823. .INDENT 2.0
  195824. .IP \(bu 2
  195825. b221860151 Merge pull request \fI\%#47335\fP from dwoz/pip_test_fix
  195826. .IP \(bu 2
  195827. dcb6a22c00 Remove un\-needed string\-escape
  195828. .UNINDENT
  195829. .IP \(bu 2
  195830. \fBPR\fP \fI\%#47331\fP: (\fI\%dwoz\fP) Do not encode usernames
  195831. @ \fI2018\-04\-26 19:57:28 UTC\fP
  195832. .INDENT 2.0
  195833. .IP \(bu 2
  195834. 1c527bfd3a Merge pull request \fI\%#47331\fP from dwoz/py3_wingroup_fix
  195835. .IP \(bu 2
  195836. cc154ef857 Do not encode usernames
  195837. .UNINDENT
  195838. .IP \(bu 2
  195839. \fBPR\fP \fI\%#47329\fP: (\fI\%cachedout\fP) Credit Frank Spierings
  195840. @ \fI2018\-04\-26 16:37:59 UTC\fP
  195841. .INDENT 2.0
  195842. .IP \(bu 2
  195843. 708078b152 Merge pull request \fI\%#47329\fP from cachedout/frank_credit
  195844. .IP \(bu 2
  195845. 33c0644ac4 Credit Frank Spierings
  195846. .UNINDENT
  195847. .IP \(bu 2
  195848. \fBPR\fP \fI\%#47281\fP: (\fI\%Ch3LL\fP) Add win_system integration module tests
  195849. @ \fI2018\-04\-26 16:07:41 UTC\fP
  195850. .INDENT 2.0
  195851. .IP \(bu 2
  195852. a545e55543 Merge pull request \fI\%#47281\fP from Ch3LL/system_test
  195853. .IP \(bu 2
  195854. c9181a75a6 Add destructivetest decorator on tests
  195855. .IP \(bu 2
  195856. 0d0c8987fc Add win_system integration module tests
  195857. .UNINDENT
  195858. .IP \(bu 2
  195859. \fBPR\fP \fI\%#47283\fP: (\fI\%Ch3LL\fP) Add windows ntp integration module tests
  195860. @ \fI2018\-04\-26 16:04:44 UTC\fP
  195861. .INDENT 2.0
  195862. .IP \(bu 2
  195863. b64d930df0 Merge pull request \fI\%#47283\fP from Ch3LL/ntp_test
  195864. .IP \(bu 2
  195865. ced7f86546 Add windows ntp integration module tests
  195866. .UNINDENT
  195867. .IP \(bu 2
  195868. \fBPR\fP \fI\%#47314\fP: (\fI\%Ch3LL\fP) Skip netstat test on macosx as its not supported
  195869. @ \fI2018\-04\-26 16:00:37 UTC\fP
  195870. .INDENT 2.0
  195871. .IP \(bu 2
  195872. 910aff910f Merge pull request \fI\%#47314\fP from Ch3LL/net_mac_test
  195873. .IP \(bu 2
  195874. 67beb1451c Skip netstat test on macosx as its not supported
  195875. .UNINDENT
  195876. .IP \(bu 2
  195877. \fBPR\fP \fI\%#47307\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47257\fP to 2017.7
  195878. @ \fI2018\-04\-26 15:16:23 UTC\fP
  195879. .INDENT 2.0
  195880. .IP \(bu 2
  195881. \fBPR\fP \fI\%#47257\fP: (\fI\%jeroennijhof\fP) Role is not a list but a dictionary (refs: \fI\%#47307\fP)
  195882. .IP \(bu 2
  195883. 0549ef7c16 Merge pull request \fI\%#47307\fP from rallytime/bp\-47257
  195884. .IP \(bu 2
  195885. 6c5b2f92bc Role is not a list but a dictionary
  195886. .UNINDENT
  195887. .IP \(bu 2
  195888. \fBPR\fP \fI\%#47312\fP: (\fI\%rallytime\fP) Update bootstrap script to latest release: 2018.04.25
  195889. @ \fI2018\-04\-26 15:15:13 UTC\fP
  195890. .INDENT 2.0
  195891. .IP \(bu 2
  195892. d6ff4689f6 Merge pull request \fI\%#47312\fP from rallytime/update\-bootstrap\-release
  195893. .IP \(bu 2
  195894. 765cce06a2 Update bootstrap script to latest release: 2018.04.25
  195895. .UNINDENT
  195896. .IP \(bu 2
  195897. \fBPR\fP \fI\%#47279\fP: (\fI\%dwoz\fP) Gracefully shutdown worker threads (refs: \fI\%#47317\fP)
  195898. @ \fI2018\-04\-25 21:15:43 UTC\fP
  195899. .INDENT 2.0
  195900. .IP \(bu 2
  195901. e0765f5719 Merge pull request \fI\%#47279\fP from dwoz/py3_build_fix
  195902. .IP \(bu 2
  195903. 21dc1bab91 Pep\-8 line endings
  195904. .IP \(bu 2
  195905. 717abedaf7 Fix comman wart
  195906. .IP \(bu 2
  195907. 4100dcd64c Close might get called more than once
  195908. .IP \(bu 2
  195909. dbe671f943 Stop socket before queue on delete
  195910. .IP \(bu 2
  195911. 9587f5c69e Silence pylint import\-error for six.moves
  195912. .IP \(bu 2
  195913. 4b0c7d3b34 Fix typo
  195914. .IP \(bu 2
  195915. 05adf7c2b1 Use six.moves for queue import
  195916. .IP \(bu 2
  195917. fe340778fa Gracefully shutdown worker threads
  195918. .UNINDENT
  195919. .IP \(bu 2
  195920. \fBPR\fP \fI\%#47113\fP: (\fI\%jfindlay\fP) Support proto for IPSec policy extension in iptables state
  195921. @ \fI2018\-04\-25 18:01:19 UTC\fP
  195922. .INDENT 2.0
  195923. .IP \(bu 2
  195924. 44f19b2f94 Merge pull request \fI\%#47113\fP from jfindlay/iptables_state
  195925. .IP \(bu 2
  195926. 8bd08012ee modules,states.iptables support proto for policy ext
  195927. .UNINDENT
  195928. .IP \(bu 2
  195929. \fBPR\fP \fI\%#47302\fP: (\fI\%Ch3LL\fP) Remove unnecessary code from core grains and add test
  195930. @ \fI2018\-04\-25 17:58:48 UTC\fP
  195931. .INDENT 2.0
  195932. .IP \(bu 2
  195933. b7a6206330 Merge pull request \fI\%#47302\fP from Ch3LL/dead_code
  195934. .IP \(bu 2
  195935. daa68b4877 Add virtual grains test for core grains
  195936. .IP \(bu 2
  195937. a59dd2785d Remove dead code in core grains file for virt\-what
  195938. .UNINDENT
  195939. .IP \(bu 2
  195940. \fBPR\fP \fI\%#47303\fP: (\fI\%baniobloom\fP) Added clarity on oldest supported main release branch
  195941. @ \fI2018\-04\-25 17:52:39 UTC\fP
  195942. .INDENT 2.0
  195943. .IP \(bu 2
  195944. e29362acfc Merge pull request \fI\%#47303\fP from baniobloom/bug_fix_doc
  195945. .IP \(bu 2
  195946. b97c9df5f3 added clarity on how to figure out what is the oldest supported main release branch
  195947. .UNINDENT
  195948. .IP \(bu 2
  195949. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#47106\fP, \fI\%#47433\fP)
  195950. .IP \(bu 2
  195951. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47433\fP)
  195952. @ \fI2018\-04\-25 15:32:37 UTC\fP
  195953. .INDENT 2.0
  195954. .IP \(bu 2
  195955. 0d9d55e013 Merge pull request \fI\%#47106\fP from DSRCorporation/bugs/tornado50
  195956. .IP \(bu 2
  195957. 39e403b18d Merge branch \(aq2017.7\(aq into bugs/tornado50
  195958. .IP \(bu 2
  195959. 6706b3a2d1 Run off of a temporary config
  195960. .IP \(bu 2
  195961. d6873800d5 Allow running pytest>=3.5.0
  195962. .IP \(bu 2
  195963. 2da3983740 Tornado 5.0 compatibility fixes
  195964. .UNINDENT
  195965. .IP \(bu 2
  195966. \fBISSUE\fP \fI\%#47258\fP: (\fI\%drewmat\fP) service state no longer working after kernel upgrade (refs: \fI\%#47271\fP)
  195967. .IP \(bu 2
  195968. \fBPR\fP \fI\%#47271\fP: (\fI\%gtmanfred\fP) load rh_service for amazon linux not booted with systemd
  195969. @ \fI2018\-04\-25 14:47:06 UTC\fP
  195970. .INDENT 2.0
  195971. .IP \(bu 2
  195972. 2e014f4746 Merge pull request \fI\%#47271\fP from gtmanfred/amazon
  195973. .IP \(bu 2
  195974. 8a53908908 Do not load rh_service module when booted with systemd
  195975. .IP \(bu 2
  195976. e4d1d5bf11 Revert "support amazon linux 2 for service module"
  195977. .UNINDENT
  195978. .IP \(bu 2
  195979. \fBISSUE\fP \fI\%#44847\fP: (\fI\%malbertus\fP) netconfig.managed state.apply unexpected behaviour of test & debug variables (refs: \fI\%#47246\fP)
  195980. .IP \(bu 2
  195981. \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
  195982. @ \fI2018\-04\-25 14:44:02 UTC\fP
  195983. .INDENT 2.0
  195984. .IP \(bu 2
  195985. 599b0ed1e9 Merge pull request \fI\%#47246\fP from cloudflare/fix\-44847\-2017.7
  195986. .IP \(bu 2
  195987. ad80028104 This way, we can pass flags such as \fBdebug\fP into the state, but also \fBtest\fP\&.
  195988. .UNINDENT
  195989. .IP \(bu 2
  195990. \fBPR\fP \fI\%#47220\fP: (\fI\%benediktwerner\fP) Fix pip.installed when no changes occurred with pip >= 1.0.0
  195991. @ \fI2018\-04\-25 14:23:50 UTC\fP
  195992. .INDENT 2.0
  195993. .IP \(bu 2
  195994. \fBPR\fP \fI\%#47207\fP: (\fI\%benediktwerner\fP) Fix pip_state with pip3 if no changes occourred (refs: \fI\%#47220\fP)
  195995. .IP \(bu 2
  195996. \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)
  195997. .IP \(bu 2
  195998. 4e2e1f0719 Merge pull request \fI\%#47220\fP from benediktwerner/fix\-pip\-2017.7
  195999. .IP \(bu 2
  196000. 0197c3e973 Fix pip test
  196001. .IP \(bu 2
  196002. 34bf66c09f Fix pip.installed with pip>=10.0.0
  196003. .UNINDENT
  196004. .IP \(bu 2
  196005. \fBPR\fP \fI\%#47272\fP: (\fI\%rallytime\fP) Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  196006. @ \fI2018\-04\-25 13:25:29 UTC\fP
  196007. .INDENT 2.0
  196008. .IP \(bu 2
  196009. 92e606251f Merge pull request \fI\%#47272\fP from rallytime/reg\-windows\-codeowners
  196010. .IP \(bu 2
  196011. 9445af0185 Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  196012. .INDENT 2.0
  196013. .INDENT 3.5
  196014. .INDENT 0.0
  196015. .IP \(bu 2
  196016. 8de3d41adb fixed vpc_peering_connection_name option
  196017. .UNINDENT
  196018. .UNINDENT
  196019. .UNINDENT
  196020. .UNINDENT
  196021. .IP \(bu 2
  196022. \fBPR\fP \fI\%#47252\fP: (\fI\%rallytime\fP) Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  196023. @ \fI2018\-04\-24 14:10:42 UTC\fP
  196024. .INDENT 2.0
  196025. .IP \(bu 2
  196026. 9dca5c0221 Merge pull request \fI\%#47252\fP from rallytime/codeowners\-fixes
  196027. .IP \(bu 2
  196028. 204b6af92b Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  196029. .UNINDENT
  196030. .IP \(bu 2
  196031. \fBISSUE\fP \fI\%#47173\fP: (\fI\%fpicot\fP) pkg.installed ignores normalize parameter (refs: \fI\%#47177\fP)
  196032. .IP \(bu 2
  196033. \fBPR\fP \fI\%#47177\fP: (\fI\%fpicot\fP) fix normalize parameter in pkg.installed
  196034. @ \fI2018\-04\-24 13:37:54 UTC\fP
  196035. .INDENT 2.0
  196036. .IP \(bu 2
  196037. 3de1bb49c8 Merge pull request \fI\%#47177\fP from fpicot/fix_47173_pkg_normalize
  196038. .IP \(bu 2
  196039. 149f846f34 fix normalize parameter in pkg.installed
  196040. .UNINDENT
  196041. .IP \(bu 2
  196042. \fBPR\fP \fI\%#47251\fP: (\fI\%Ch3LL\fP) Update Docs to remove unnecessary + sign
  196043. @ \fI2018\-04\-23 19:37:04 UTC\fP
  196044. .INDENT 2.0
  196045. .IP \(bu 2
  196046. 10e30515dc Merge pull request \fI\%#47251\fP from Ch3LL/pub_fix_rn
  196047. .IP \(bu 2
  196048. fa4c2e6575 Update Docs to remove unnecessary + sign
  196049. .UNINDENT
  196050. .IP \(bu 2
  196051. \fBPR\fP \fI\%#47249\fP: (\fI\%Ch3LL\fP) Add CVE number to 2016.3.6 Release
  196052. @ \fI2018\-04\-23 19:05:42 UTC\fP
  196053. .INDENT 2.0
  196054. .IP \(bu 2
  196055. bb7850a431 Merge pull request \fI\%#47249\fP from Ch3LL/pub_fix_rn
  196056. .IP \(bu 2
  196057. 24dea24b7e Add CVE number to 2016.3.6 Release
  196058. .UNINDENT
  196059. .IP \(bu 2
  196060. \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)
  196061. .IP \(bu 2
  196062. \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)
  196063. @ \fI2018\-04\-23 14:05:58 UTC\fP
  196064. .INDENT 2.0
  196065. .IP \(bu 2
  196066. \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)
  196067. .IP \(bu 2
  196068. 56933eb0b2 Merge pull request \fI\%#47227\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2017.7
  196069. .IP \(bu 2
  196070. fded61f19b Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  196071. .UNINDENT
  196072. .IP \(bu 2
  196073. \fBPR\fP \fI\%#47167\fP: (\fI\%smitty42\fP) Adding updates for python3 compatibility and new virtualbox SDK versi…
  196074. @ \fI2018\-04\-23 13:20:42 UTC\fP
  196075. .INDENT 2.0
  196076. .IP \(bu 2
  196077. 9825065048 Merge pull request \fI\%#47167\fP from smitty42/vbox\-skd\-fix
  196078. .IP \(bu 2
  196079. 5de53139cd Merge branch \(aq2017.7\(aq into vbox\-skd\-fix
  196080. .UNINDENT
  196081. .IP \(bu 2
  196082. \fBPR\fP \fI\%#47213\fP: (\fI\%dwoz\fP) Fix coverage on py3 windows builds
  196083. @ \fI2018\-04\-20 22:09:57 UTC\fP
  196084. .INDENT 2.0
  196085. .IP \(bu 2
  196086. 976f031170 Merge pull request \fI\%#47213\fP from dwoz/py3win
  196087. .IP \(bu 2
  196088. ad9c7f63f0 Fix coverate on py3 windows builds
  196089. .IP \(bu 2
  196090. 91252bac95 Adding updates for python3 compatibility and new virtualbox SDK version support.
  196091. .UNINDENT
  196092. .IP \(bu 2
  196093. \fBPR\fP \fI\%#47197\fP: (\fI\%dwoz\fP) Move process target to top level module namespace
  196094. @ \fI2018\-04\-20 15:41:06 UTC\fP
  196095. .INDENT 2.0
  196096. .IP \(bu 2
  196097. cebcd6d069 Merge pull request \fI\%#47197\fP from dwoz/testfix
  196098. .IP \(bu 2
  196099. 25803c9176 Move process target to top level module namespace
  196100. .UNINDENT
  196101. .IP \(bu 2
  196102. \fBPR\fP \fI\%#47193\fP: (\fI\%Ch3LL\fP) Add network module integration tests
  196103. @ \fI2018\-04\-20 13:37:19 UTC\fP
  196104. .INDENT 2.0
  196105. .IP \(bu 2
  196106. d4269c2b70 Merge pull request \fI\%#47193\fP from Ch3LL/network_test
  196107. .IP \(bu 2
  196108. bbf9987c19 Add network module integration tests
  196109. .UNINDENT
  196110. .IP \(bu 2
  196111. \fBPR\fP \fI\%#47189\fP: (\fI\%Ch3LL\fP) Add autoruns.list integration test for Windows
  196112. @ \fI2018\-04\-19 21:16:34 UTC\fP
  196113. .INDENT 2.0
  196114. .IP \(bu 2
  196115. c777248a78 Merge pull request \fI\%#47189\fP from Ch3LL/autoruns
  196116. .IP \(bu 2
  196117. 6a88bedb7a Add autoruns to windows whitelist
  196118. .IP \(bu 2
  196119. e9e4d4af70 Add autoruns.list integration test for Windows
  196120. .UNINDENT
  196121. .IP \(bu 2
  196122. \fBPR\fP \fI\%#47184\fP: (\fI\%Ch3LL\fP) Add status module integration modules tests for Windows
  196123. @ \fI2018\-04\-19 19:38:56 UTC\fP
  196124. .INDENT 2.0
  196125. .IP \(bu 2
  196126. 65f344e371 Merge pull request \fI\%#47184\fP from Ch3LL/status_test
  196127. .IP \(bu 2
  196128. 25a84428b8 Add status module integration modules tests for Windows
  196129. .UNINDENT
  196130. .IP \(bu 2
  196131. \fBPR\fP \fI\%#47163\fP: (\fI\%rallytime\fP) Updage jenkins module autodocs to use jenkinsmod name instead
  196132. @ \fI2018\-04\-19 19:35:00 UTC\fP
  196133. .INDENT 2.0
  196134. .IP \(bu 2
  196135. \fBPR\fP \fI\%#46801\fP: (\fI\%yagnik\fP) rename jenkins to jenkinsmod (refs: \fI\%#46900\fP, \fI\%#47163\fP)
  196136. .IP \(bu 2
  196137. 965600ad6c Merge pull request \fI\%#47163\fP from rallytime/jenkins\-autodoc
  196138. .IP \(bu 2
  196139. 0039395017 Updage jenkins module autodocs to use jenkinsmod name instead
  196140. .UNINDENT
  196141. .IP \(bu 2
  196142. \fBPR\fP \fI\%#47185\fP: (\fI\%twangboy\fP) Add additional integration tests to whitelist
  196143. @ \fI2018\-04\-19 18:20:25 UTC\fP
  196144. .INDENT 2.0
  196145. .IP \(bu 2
  196146. 0a43dde5fc Merge pull request \fI\%#47185\fP from twangboy/add_tests
  196147. .IP \(bu 2
  196148. 345daa0423 Add additional integration tests to whitelist
  196149. .UNINDENT
  196150. .IP \(bu 2
  196151. \fBPR\fP \fI\%#47172\fP: (\fI\%dwoz\fP) Allow non admin name based runs on windows
  196152. @ \fI2018\-04\-19 17:26:42 UTC\fP
  196153. .INDENT 2.0
  196154. .IP \(bu 2
  196155. 1a600bb9a4 Merge pull request \fI\%#47172\fP from dwoz/cover_without_admin
  196156. .IP \(bu 2
  196157. cadd759727 Use warnings to warn user
  196158. .IP \(bu 2
  196159. 144c68e214 Allow non admin name based runs on windows
  196160. .UNINDENT
  196161. .IP \(bu 2
  196162. \fBPR\fP \fI\%#47110\fP: (\fI\%kstreee\fP) Fixes misusing of the timeout option. (refs: \fI\%#47200\fP)
  196163. @ \fI2018\-04\-18 17:16:20 UTC\fP
  196164. .INDENT 2.0
  196165. .IP \(bu 2
  196166. \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)
  196167. .IP \(bu 2
  196168. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  196169. .IP \(bu 2
  196170. d5997d2301 Merge pull request \fI\%#47110\fP from kstreee/fix\-misusing\-of\-timeout
  196171. .IP \(bu 2
  196172. 0624aee0ed Fixes misusing of the timeout option.
  196173. .UNINDENT
  196174. .IP \(bu 2
  196175. \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)
  196176. .IP \(bu 2
  196177. \fBPR\fP \fI\%#40961\fP: (\fI\%terminalmage\fP) Make error more explicit when PKI dir not present for salt\-call
  196178. @ \fI2018\-04\-18 16:08:17 UTC\fP
  196179. .INDENT 2.0
  196180. .IP \(bu 2
  196181. 87ca2b4003 Merge pull request \fI\%#40961\fP from terminalmage/issue40948
  196182. .IP \(bu 2
  196183. 6ba66cca41 Fix incorrect logic in exception check
  196184. .IP \(bu 2
  196185. fed5041c5f Make error more specific to aid in troubleshooting
  196186. .IP \(bu 2
  196187. 8c67ab53b4 Fix path in log message
  196188. .IP \(bu 2
  196189. 3198ca8b19 Make error more explicit when PKI dir not present for salt\-call
  196190. .UNINDENT
  196191. .IP \(bu 2
  196192. \fBPR\fP \fI\%#47134\fP: (\fI\%Ch3LL\fP) Add user integration tests for windows OS
  196193. @ \fI2018\-04\-18 14:29:40 UTC\fP
  196194. .INDENT 2.0
  196195. .IP \(bu 2
  196196. f5e63584d4 Merge pull request \fI\%#47134\fP from Ch3LL/user_win_test
  196197. .IP \(bu 2
  196198. e7c9bc4038 Add user integration tests for windows OS
  196199. .UNINDENT
  196200. .IP \(bu 2
  196201. \fBPR\fP \fI\%#47131\fP: (\fI\%gtmanfred\fP) add __cli opts variable for master processes
  196202. @ \fI2018\-04\-17 21:33:57 UTC\fP
  196203. .INDENT 2.0
  196204. .IP \(bu 2
  196205. da2f6a3fac Merge pull request \fI\%#47131\fP from gtmanfred/cli
  196206. .IP \(bu 2
  196207. 1b1c29bf62 add __cli for master processes
  196208. .UNINDENT
  196209. .IP \(bu 2
  196210. \fBISSUE\fP \fI\%#47116\fP: (\fI\%pcjeff\fP) pip 10.0.0 can not import pip.req (refs: \fI\%#47121\fP)
  196211. .IP \(bu 2
  196212. \fBPR\fP \fI\%#47129\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47121\fP to 2017.7
  196213. @ \fI2018\-04\-17 20:45:11 UTC\fP
  196214. .INDENT 2.0
  196215. .IP \(bu 2
  196216. \fBPR\fP \fI\%#47121\fP: (\fI\%pcjeff\fP) fix pip import error in pip 10.0.0 (refs: \fI\%#47129\fP)
  196217. .IP \(bu 2
  196218. 9b8e6ffb8c Merge pull request \fI\%#47129\fP from rallytime/bp\-47121
  196219. .IP \(bu 2
  196220. 11da526b21 add ImportError
  196221. .IP \(bu 2
  196222. bd0c23396c fix pip.req import error in pip 10.0.0
  196223. .UNINDENT
  196224. .IP \(bu 2
  196225. \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)
  196226. @ \fI2018\-04\-17 20:44:58 UTC\fP
  196227. .INDENT 2.0
  196228. .IP \(bu 2
  196229. eb5ac51a48 Merge pull request \fI\%#47102\fP from gtmanfred/2017.7
  196230. .IP \(bu 2
  196231. 3dc93b310b fix tests
  196232. .IP \(bu 2
  196233. 8497e08f8e fix pip module for 10.0.0
  196234. .IP \(bu 2
  196235. 4c07a3d1e9 fix other tests
  196236. .IP \(bu 2
  196237. b71e3d8a04 dont allow using no_use_wheel for pip 10.0.0 or newer
  196238. .UNINDENT
  196239. .IP \(bu 2
  196240. \fBPR\fP \fI\%#47037\fP: (\fI\%twangboy\fP) Fix build_env scripts
  196241. @ \fI2018\-04\-17 18:54:17 UTC\fP
  196242. .INDENT 2.0
  196243. .IP \(bu 2
  196244. c1dc42e67e Merge pull request \fI\%#47037\fP from twangboy/fix_dev_scripts
  196245. .IP \(bu 2
  196246. 990a24d7ed Fix build_env scripts
  196247. .UNINDENT
  196248. .IP \(bu 2
  196249. \fBPR\fP \fI\%#47108\fP: (\fI\%dwoz\fP) Fix unit.utils.test_event.TestAsyncEventPublisher.test_event_subscription
  196250. @ \fI2018\-04\-17 00:25:07 UTC\fP
  196251. .INDENT 2.0
  196252. .IP \(bu 2
  196253. 6a4c0b8a1a Merge pull request \fI\%#47108\fP from dwoz/async_test_fix
  196254. .IP \(bu 2
  196255. 3d85e30ce5 AsyncTestCase is required for AsyncEventPublisher
  196256. .UNINDENT
  196257. .IP \(bu 2
  196258. \fBPR\fP \fI\%#47068\fP: (\fI\%cachedout\fP) Catch an operation on a closed socket in a test
  196259. @ \fI2018\-04\-16 19:56:03 UTC\fP
  196260. .INDENT 2.0
  196261. .IP \(bu 2
  196262. 03892eaf0b Merge pull request \fI\%#47068\fP from cachedout/catch_value_error_socket_test
  196263. .IP \(bu 2
  196264. 7db5625632 Catch an operation on a closed socket in a test
  196265. .UNINDENT
  196266. .IP \(bu 2
  196267. \fBPR\fP \fI\%#47065\fP: (\fI\%dwoz\fP) Jinja test fix
  196268. @ \fI2018\-04\-16 16:16:42 UTC\fP
  196269. .INDENT 2.0
  196270. .IP \(bu 2
  196271. 1ea2885ec2 Merge pull request \fI\%#47065\fP from dwoz/jinja_test_fix
  196272. .IP \(bu 2
  196273. 673cd31c65 Merge branch \(aq2017.7\(aq into jinja_test_fix
  196274. .UNINDENT
  196275. .IP \(bu 2
  196276. \fBPR\fP \fI\%#47077\fP: (\fI\%dwoz\fP) Fix failing state test by normalizing line endings
  196277. @ \fI2018\-04\-16 15:48:39 UTC\fP
  196278. .INDENT 2.0
  196279. .IP \(bu 2
  196280. 5293b5b5ca Merge pull request \fI\%#47077\fP from dwoz/test_state_fix
  196281. .IP \(bu 2
  196282. 444da3f893 Fix py3 wart (chr vs bytesstring)
  196283. .IP \(bu 2
  196284. e8acca01c2 Fix failing state test by normalizing line endings
  196285. .UNINDENT
  196286. .IP \(bu 2
  196287. \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)
  196288. .IP \(bu 2
  196289. \fBPR\fP \fI\%#47067\fP: (\fI\%gtmanfred\fP) use the recommended opennebula lookup method
  196290. @ \fI2018\-04\-16 15:48:15 UTC\fP
  196291. .INDENT 2.0
  196292. .IP \(bu 2
  196293. ca967de5da Merge pull request \fI\%#47067\fP from gtmanfred/2017.7
  196294. .IP \(bu 2
  196295. f913a7859c use the recommended opennebula lookup method
  196296. .UNINDENT
  196297. .IP \(bu 2
  196298. \fBPR\fP \fI\%#47064\fP: (\fI\%dwoz\fP) Fix fileserver roots tests
  196299. @ \fI2018\-04\-14 21:30:23 UTC\fP
  196300. .INDENT 2.0
  196301. .IP \(bu 2
  196302. 7fddad6cd9 Merge pull request \fI\%#47064\fP from dwoz/roots_tests_fix
  196303. .IP \(bu 2
  196304. 25fd7c0694 fix py3 wart, encode os.linesep
  196305. .IP \(bu 2
  196306. d79f1a1961 Fix fileserver roots tests
  196307. .UNINDENT
  196308. .IP \(bu 2
  196309. \fBPR\fP \fI\%#47069\fP: (\fI\%cachedout\fP) Pass the timeout variable to the CLI when calling salt in tests
  196310. @ \fI2018\-04\-14 15:20:25 UTC\fP
  196311. .INDENT 2.0
  196312. .IP \(bu 2
  196313. 977c6939c4 Merge pull request \fI\%#47069\fP from cachedout/match_timeout_arg
  196314. .IP \(bu 2
  196315. b8990f5258 Pass the timeout variable to the CLI when calling salt in tests
  196316. .UNINDENT
  196317. .IP \(bu 2
  196318. \fBPR\fP \fI\%#47074\fP: (\fI\%dwoz\fP) Kitchn should ignore artifacts directory
  196319. @ \fI2018\-04\-14 13:06:19 UTC\fP
  196320. .INDENT 2.0
  196321. .IP \(bu 2
  196322. 2c4c19c622 Merge pull request \fI\%#47074\fP from dwoz/ignore_artifacts
  196323. .IP \(bu 2
  196324. c3941efad0 Kitchn should ignore artifacts directory
  196325. .UNINDENT
  196326. .IP \(bu 2
  196327. \fBISSUE\fP \fI\%#47000\fP: (\fI\%mvintila\fP) Client API: full_return paramenter missing from cmd_subset function (refs: \fI\%#47055\fP)
  196328. .IP \(bu 2
  196329. \fBPR\fP \fI\%#47055\fP: (\fI\%mattp\-\fP) \fI\%#47000\fP \- add proper handling of full_return in cmd_subset
  196330. @ \fI2018\-04\-13 20:17:10 UTC\fP
  196331. .INDENT 2.0
  196332. .IP \(bu 2
  196333. c484c0bd71 Merge pull request \fI\%#47055\fP from bloomberg/GH\-47000
  196334. .IP \(bu 2
  196335. 8af3f5b874 GH\-47000: add proper handling of full_return in cmd_subset
  196336. .UNINDENT
  196337. .IP \(bu 2
  196338. \fBPR\fP \fI\%#47039\fP: (\fI\%twangboy\fP) Fix winrm powershell script
  196339. @ \fI2018\-04\-13 18:09:56 UTC\fP
  196340. .INDENT 2.0
  196341. .IP \(bu 2
  196342. f3496030cc Merge pull request \fI\%#47039\fP from twangboy/win_fix_winrm_script
  196343. .IP \(bu 2
  196344. 6635b9003f Fix winrm powershell script
  196345. .INDENT 2.0
  196346. .INDENT 3.5
  196347. .INDENT 0.0
  196348. .IP \(bu 2
  196349. 46fa2c04de Fix py3 os.linesep wart
  196350. .IP \(bu 2
  196351. 3c565d7e54 Use salt.utils.fopen
  196352. .IP \(bu 2
  196353. aa965310f1 Clean up cruft
  196354. .IP \(bu 2
  196355. efc9866580 Jinja test fixes
  196356. .UNINDENT
  196357. .UNINDENT
  196358. .UNINDENT
  196359. .UNINDENT
  196360. .IP \(bu 2
  196361. \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)
  196362. @ \fI2018\-04\-13 13:59:28 UTC\fP
  196363. .INDENT 2.0
  196364. .IP \(bu 2
  196365. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  196366. .IP \(bu 2
  196367. 1700a10ebe Merge pull request \fI\%#46326\fP from kstreee/fix\-client\-local
  196368. .IP \(bu 2
  196369. 0f358a9c9e Fixes a timing bug of saltnado\(aqs client local.
  196370. .UNINDENT
  196371. .IP \(bu 2
  196372. \fBISSUE\fP \fI\%#46877\fP: (\fI\%trudesea\fP) Unable to apply GPO (Windows 2016) (refs: \fI\%#46913\fP)
  196373. .IP \(bu 2
  196374. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP)
  196375. .IP \(bu 2
  196376. \fBPR\fP \fI\%#46913\fP: (\fI\%lomeroe\fP) 2017.7 Fix \fI\%#46877\fP \-\- win_lgpo start/shutdown script reading
  196377. @ \fI2018\-04\-12 15:10:50 UTC\fP
  196378. .INDENT 2.0
  196379. .IP \(bu 2
  196380. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#46913\fP, \fI\%#47438\fP)
  196381. .IP \(bu 2
  196382. c3c00316c5 Merge pull request \fI\%#46913\fP from lomeroe/2017_7\-fix46877
  196383. .IP \(bu 2
  196384. 369a0645ed move exception for clarity
  196385. .IP \(bu 2
  196386. 32ce5bfda5 Use configparser serializer object to read psscript.ini and script.ini startup/shutdown script files.
  196387. .UNINDENT
  196388. .IP \(bu 2
  196389. \fBPR\fP \fI\%#47025\fP: (\fI\%terminalmage\fP) Fix server_id grain in PY3 on Windows
  196390. @ \fI2018\-04\-12 15:08:00 UTC\fP
  196391. .INDENT 2.0
  196392. .IP \(bu 2
  196393. 9e37cfc9d6 Merge pull request \fI\%#47025\fP from terminalmage/fix\-server_id\-windows
  196394. .IP \(bu 2
  196395. cb0cf89ed3 Fix server_id grain in PY3 on Windows
  196396. .UNINDENT
  196397. .IP \(bu 2
  196398. \fBPR\fP \fI\%#47027\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44508\fP to 2017.7
  196399. @ \fI2018\-04\-12 15:05:51 UTC\fP
  196400. .INDENT 2.0
  196401. .IP \(bu 2
  196402. \fBPR\fP \fI\%#44508\fP: (\fI\%mzbroch\fP) Capirca integration (refs: \fI\%#47027\fP)
  196403. .IP \(bu 2
  196404. 2e193cfb45 Merge pull request \fI\%#47027\fP from rallytime/bp\-44508
  196405. .IP \(bu 2
  196406. 8e72f362f4 Add priority field to support the latest capirca.
  196407. .IP \(bu 2
  196408. 112f92baab Add priority field to support the latest capirca.
  196409. .UNINDENT
  196410. .IP \(bu 2
  196411. \fBPR\fP \fI\%#47020\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46970\fP to 2017.7
  196412. @ \fI2018\-04\-11 21:48:25 UTC\fP
  196413. .INDENT 2.0
  196414. .IP \(bu 2
  196415. \fBPR\fP \fI\%#46970\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to pkgrepo comments test (refs: \fI\%#47020\fP)
  196416. .IP \(bu 2
  196417. 385fe2bc1e Merge pull request \fI\%#47020\fP from rallytime/bp\-46970
  196418. .IP \(bu 2
  196419. 9373dff52b Update test_pkgrepo.py
  196420. .IP \(bu 2
  196421. 13cf9eb5b1 Removing debugging.
  196422. .IP \(bu 2
  196423. a61a8593e5 Removing suse from pkgrepo comments tests. the pkgrepo functions in SUSE pkg module do not support comments.
  196424. .UNINDENT
  196425. .IP \(bu 2
  196426. \fBISSUE\fP \fI\%#46504\fP: (\fI\%jfoboss\fP) ntp.managed fails on non\-english systems (refs: \fI\%#46539\fP)
  196427. .IP \(bu 2
  196428. \fBPR\fP \fI\%#46539\fP: (\fI\%jfoboss\fP) \fI\%#46504\fP Fix
  196429. @ \fI2018\-04\-11 14:13:24 UTC\fP
  196430. .INDENT 2.0
  196431. .IP \(bu 2
  196432. 8f994e7cf9 Merge pull request \fI\%#46539\fP from jfoboss/patch\-1
  196433. .IP \(bu 2
  196434. 6890122e41 Merge pull request #1 from twangboy/pull_46539
  196435. .INDENT 2.0
  196436. .IP \(bu 2
  196437. 19c3fadbe5 Fix unit test for win_ntp
  196438. .UNINDENT
  196439. .IP \(bu 2
  196440. 826a8d3099 Fixing \fI\%#46504\fP
  196441. .UNINDENT
  196442. .IP \(bu 2
  196443. \fBPR\fP \fI\%#46999\fP: (\fI\%gtmanfred\fP) switch pip test package
  196444. @ \fI2018\-04\-10 21:18:33 UTC\fP
  196445. .INDENT 2.0
  196446. .IP \(bu 2
  196447. 74d70e95a5 Merge pull request \fI\%#46999\fP from gtmanfred/2017.7
  196448. .IP \(bu 2
  196449. 791af8f6ce switch pip test package
  196450. .UNINDENT
  196451. .IP \(bu 2
  196452. \fBPR\fP \fI\%#46023\fP: (\fI\%mattp\-\fP) add parallel support for orchestrations
  196453. @ \fI2018\-04\-10 19:26:04 UTC\fP
  196454. .INDENT 2.0
  196455. .IP \(bu 2
  196456. 8adaf7f526 Merge pull request \fI\%#46023\fP from bloomberg/parallel\-orch
  196457. .IP \(bu 2
  196458. 0ac0b3ca29 Merge branch \(aq2017.7\(aq into parallel\-orch
  196459. .UNINDENT
  196460. .IP \(bu 2
  196461. \fBISSUE\fP \fI\%#46581\fP: (\fI\%qcpeter\fP) puppet.fact tries to parse output to stderr (refs: \fI\%#46613\fP)
  196462. .IP \(bu 2
  196463. \fBPR\fP \fI\%#46613\fP: (\fI\%myinitialsarepm\fP) Fix puppet.fact and puppet.facts to use stdout.
  196464. @ \fI2018\-04\-10 15:18:07 UTC\fP
  196465. .INDENT 2.0
  196466. .IP \(bu 2
  196467. 39d65a39cf Merge pull request \fI\%#46613\fP from myinitialsarepm/fix_puppet.fact_and_puppet.facts
  196468. .IP \(bu 2
  196469. 44ecd13abc Update tests to use cmd.run_all
  196470. .IP \(bu 2
  196471. 7d7d40f541 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  196472. .IP \(bu 2
  196473. 0ce1520bd0 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  196474. .IP \(bu 2
  196475. 69e1f6f681 Fix puppet.fact and puppet.facts to use stdout.
  196476. .UNINDENT
  196477. .IP \(bu 2
  196478. \fBPR\fP \fI\%#46991\fP: (\fI\%gtmanfred\fP) use saltstack salt\-jenkins
  196479. @ \fI2018\-04\-10 14:19:00 UTC\fP
  196480. .INDENT 2.0
  196481. .IP \(bu 2
  196482. ba5421d988 Merge pull request \fI\%#46991\fP from gtmanfred/windows
  196483. .IP \(bu 2
  196484. 98588c1dc5 use saltstack salt\-jenkins
  196485. .UNINDENT
  196486. .IP \(bu 2
  196487. \fBPR\fP \fI\%#46975\fP: (\fI\%gtmanfred\fP) Make windows work for test runs in jenkinsci
  196488. @ \fI2018\-04\-10 13:41:18 UTC\fP
  196489. .INDENT 2.0
  196490. .IP \(bu 2
  196491. 00c4067585 Merge pull request \fI\%#46975\fP from gtmanfred/windows
  196492. .IP \(bu 2
  196493. 1f69c0d7f8 make sure windows outputs xml junit files
  196494. .IP \(bu 2
  196495. 4a2ec1bbb3 support new versions of winrm\-fs
  196496. .IP \(bu 2
  196497. b9efec8526 remove libnacl on windows
  196498. .IP \(bu 2
  196499. 2edd5eaf9e fix path
  196500. .IP \(bu 2
  196501. b03e272e44 windows work
  196502. .UNINDENT
  196503. .IP \(bu 2
  196504. \fBPR\fP \fI\%#46945\fP: (\fI\%vutny\fP) [DOC] Fix Jinja block in FAQ page
  196505. @ \fI2018\-04\-09 13:05:28 UTC\fP
  196506. .INDENT 2.0
  196507. .IP \(bu 2
  196508. 3cf2353e41 Merge pull request \fI\%#46945\fP from vutny/doc\-faq\-fix\-jinja
  196509. .IP \(bu 2
  196510. bfdf54e61d [DOC] Fix Jinja block in FAQ page
  196511. .UNINDENT
  196512. .IP \(bu 2
  196513. \fBPR\fP \fI\%#46925\fP: (\fI\%terminalmage\fP) Remove reference to directory support in file.patch state
  196514. @ \fI2018\-04\-06 13:54:47 UTC\fP
  196515. .INDENT 2.0
  196516. .IP \(bu 2
  196517. fc2f728665 Merge pull request \fI\%#46925\fP from terminalmage/fix\-file.patch\-docstring
  196518. .IP \(bu 2
  196519. 97695657f0 Remove reference to directory support in file.patch state
  196520. .UNINDENT
  196521. .IP \(bu 2
  196522. \fBPR\fP \fI\%#46900\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46801\fP to 2017.7
  196523. @ \fI2018\-04\-06 13:47:44 UTC\fP
  196524. .INDENT 2.0
  196525. .IP \(bu 2
  196526. \fBPR\fP \fI\%#46801\fP: (\fI\%yagnik\fP) rename jenkins to jenkinsmod (refs: \fI\%#46900\fP, \fI\%#47163\fP)
  196527. .IP \(bu 2
  196528. eef6c518e1 Merge pull request \fI\%#46900\fP from rallytime/bp\-46801
  196529. .IP \(bu 2
  196530. 6a41e8b457 rename jenkins to jenkinsmod
  196531. .UNINDENT
  196532. .IP \(bu 2
  196533. \fBPR\fP \fI\%#46899\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45116\fP to 2017.7
  196534. @ \fI2018\-04\-06 13:47:17 UTC\fP
  196535. .INDENT 2.0
  196536. .IP \(bu 2
  196537. \fBPR\fP \fI\%#45116\fP: (\fI\%arif\-ali\fP) fix adding parameters to http.query from sdb yaml (refs: \fI\%#46899\fP)
  196538. .IP \(bu 2
  196539. 71839b0303 Merge pull request \fI\%#46899\fP from rallytime/bp\-45116
  196540. .IP \(bu 2
  196541. b92f908da4 fix adding parameters to http.query from sdb yaml
  196542. .INDENT 2.0
  196543. .INDENT 3.5
  196544. .INDENT 0.0
  196545. .IP \(bu 2
  196546. 3d5e69600b address lint issues raised by @isbm
  196547. .IP \(bu 2
  196548. a9866c7a03 fix parallel mode py3 compatibility
  196549. .IP \(bu 2
  196550. 6d7730864a removing prereq from test orch
  196551. .IP \(bu 2
  196552. 6c8a25778f add integration test to runners/test_state to exercise parallel
  196553. .IP \(bu 2
  196554. 2c86f16b39 cherry\-pick cdata KeyError prevention from \fI\%#39832\fP
  196555. .IP \(bu 2
  196556. 26a96e8933 record start/stop duration for parallel processes separately
  196557. .IP \(bu 2
  196558. e4844bdf2b revisit previous join() behavior in check_requisites
  196559. .IP \(bu 2
  196560. f00a359cdf join() parallel process instead of a recursive sleep
  196561. .IP \(bu 2
  196562. 6e7007a4dc add parallel support for orchestrations
  196563. .UNINDENT
  196564. .UNINDENT
  196565. .UNINDENT
  196566. .UNINDENT
  196567. .IP \(bu 2
  196568. \fBISSUE\fP \fI\%#43529\fP: (\fI\%Ch3LL\fP) Add publisher_acl Test to Auto Test Suite (refs: \fI\%#44926\fP)
  196569. .IP \(bu 2
  196570. \fBPR\fP \fI\%#44926\fP: (\fI\%frogunder\fP) whitelist_acl_test
  196571. @ \fI2018\-04\-05 15:09:26 UTC\fP
  196572. .INDENT 2.0
  196573. .IP \(bu 2
  196574. d0f5b43753 Merge pull request \fI\%#44926\fP from frogunder/whitelisted_acl
  196575. .IP \(bu 2
  196576. 18e460fc30 Merge branch \(aq2017.7\(aq into whitelisted_acl
  196577. .IP \(bu 2
  196578. 1ad4d7d988 fix assert errors
  196579. .IP \(bu 2
  196580. e6a56016df update test
  196581. .IP \(bu 2
  196582. 19a2244cb7 whitelist_acl_test
  196583. .UNINDENT
  196584. .IP \(bu 2
  196585. \fBISSUE\fP \fI\%#46456\fP: (\fI\%vitaliyf\fP) "ValueError" when running orch with "subset" (refs: \fI\%#46464\fP)
  196586. .IP \(bu 2
  196587. \fBPR\fP \fI\%#46464\fP: (\fI\%gtmanfred\fP) fix salt subset in orchestrator
  196588. @ \fI2018\-04\-05 14:52:01 UTC\fP
  196589. .INDENT 2.0
  196590. .IP \(bu 2
  196591. 7d822f9cec Merge pull request \fI\%#46464\fP from gtmanfred/orchestration
  196592. .IP \(bu 2
  196593. 637cdc6b7b fix pylint
  196594. .IP \(bu 2
  196595. 0151013ddb document \fIcli\fP option for cmd_subset
  196596. .IP \(bu 2
  196597. 4a3ed6607d add test for subset in orchestration
  196598. .IP \(bu 2
  196599. 3112359dd6 fix salt subset in orchestrator
  196600. .UNINDENT
  196601. .IP \(bu 2
  196602. \fBISSUE\fP \fI\%#46523\fP: (\fI\%dwoz\fP) Add a test to the cloud suite for Windows minion on EC2 (refs: \fI\%#46879\fP)
  196603. .IP \(bu 2
  196604. \fBPR\fP \fI\%#46879\fP: (\fI\%dwoz\fP) Fix multiple typos causing tests to fail
  196605. @ \fI2018\-04\-05 13:59:28 UTC\fP
  196606. .INDENT 2.0
  196607. .IP \(bu 2
  196608. 805ed1c964 Merge pull request \fI\%#46879\fP from dwoz/cloudtestfix
  196609. .IP \(bu 2
  196610. dc54fc53c3 Fix multiple typos causing tests to fail
  196611. .UNINDENT
  196612. .IP \(bu 2
  196613. \fBPR\fP \fI\%#46647\fP: (\fI\%twangboy\fP) Fix the tear down function in integration.modules.test_grains
  196614. @ \fI2018\-04\-04 21:14:06 UTC\fP
  196615. .INDENT 2.0
  196616. .IP \(bu 2
  196617. f70f6de282 Merge pull request \fI\%#46647\fP from twangboy/win_fix_test_grains
  196618. .IP \(bu 2
  196619. c179388b0e Fix the tear down function in integration.modules.test_grains.GrainsAppendTestCase
  196620. .UNINDENT
  196621. .IP \(bu 2
  196622. \fBISSUE\fP \fI\%#46754\fP: (\fI\%nages13\fP) grain item virtual_subtype shows \(aqXen PV DomU\(aq on Docker containers (refs: \fI\%#46756\fP)
  196623. .IP \(bu 2
  196624. \fBISSUE\fP \fI\%#43405\fP: (\fI\%kfix\fP) LXD\-created LXC container is detected as a Xen domU (refs: \fI\%#46756\fP)
  196625. .IP \(bu 2
  196626. \fBPR\fP \fI\%#46756\fP: (\fI\%nages13\fP) fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  196627. @ \fI2018\-04\-04 20:53:49 UTC\fP
  196628. .INDENT 2.0
  196629. .IP \(bu 2
  196630. 91c078ce12 Merge pull request \fI\%#46756\fP from nages13/bugfix\-grain\-virtual_subtype
  196631. .IP \(bu 2
  196632. 781f5030a4 Merge branch \(aqbugfix\-grain\-virtual_subtype\(aq of \fI\%https://github.com/nages13/salt\fP into bugfix\-grain\-virtual_subtype
  196633. .INDENT 2.0
  196634. .IP \(bu 2
  196635. cd1ac4b7f9 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196636. .IP \(bu 2
  196637. 0ace76c0e7 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196638. .IP \(bu 2
  196639. 9eb6f5c0d0 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196640. .IP \(bu 2
  196641. 73d6d9d365 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196642. .IP \(bu 2
  196643. a4a17eba6a Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196644. .IP \(bu 2
  196645. bf5034dbdb Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196646. .IP \(bu 2
  196647. 8d12770951 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196648. .UNINDENT
  196649. .IP \(bu 2
  196650. 7e704c0e81 Moved down container check code below hypervisors to validate containers type running in virtual environment. Fixes \fI\%#46754\fP & \fI\%#43405\fP
  196651. .IP \(bu 2
  196652. 710f74c4a6 fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  196653. .UNINDENT
  196654. .IP \(bu 2
  196655. \fBISSUE\fP \fI\%#46762\fP: (\fI\%ScoreUnder\fP) prereq stack overflow (refs: \fI\%#46788\fP, \fI\%#46799\fP)
  196656. .IP \(bu 2
  196657. \fBPR\fP \fI\%#46799\fP: (\fI\%garethgreenaway\fP) [2017.7] Adding test for PR \fI\%#46788\fP
  196658. @ \fI2018\-04\-04 20:41:23 UTC\fP
  196659. .INDENT 2.0
  196660. .IP \(bu 2
  196661. \fBPR\fP \fI\%#46788\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure failed tags are added to self.pre (refs: \fI\%#46799\fP)
  196662. .IP \(bu 2
  196663. 058bbed221 Merge pull request \fI\%#46799\fP from garethgreenaway/46762_prereq_shenanigans_tests
  196664. .IP \(bu 2
  196665. 13875e78cf Fixing documention string for test.
  196666. .IP \(bu 2
  196667. 3d288c44d4 Fixing test documentation
  196668. .IP \(bu 2
  196669. 6cff02ef6a Adding tests for \fI\%#46788\fP
  196670. .UNINDENT
  196671. .IP \(bu 2
  196672. \fBPR\fP \fI\%#46867\fP: (\fI\%terminalmage\fP) Backport string arg normalization to 2017.7 branch
  196673. @ \fI2018\-04\-04 18:06:57 UTC\fP
  196674. .INDENT 2.0
  196675. .IP \(bu 2
  196676. d9770bf3f8 Merge pull request \fI\%#46867\fP from terminalmage/unicode\-logging\-normalization
  196677. .IP \(bu 2
  196678. 7652688e83 Backport string arg normalization to 2017.7 branch
  196679. .UNINDENT
  196680. .IP \(bu 2
  196681. \fBPR\fP \fI\%#46770\fP: (\fI\%twangboy\fP) Change the order of SID Lookup
  196682. @ \fI2018\-04\-04 17:33:10 UTC\fP
  196683. .INDENT 2.0
  196684. .IP \(bu 2
  196685. 9eb98b1f6e Merge pull request \fI\%#46770\fP from twangboy/fix_46433
  196686. .IP \(bu 2
  196687. 89af0a6222 Merge branch \(aq2017.7\(aq into fix_46433
  196688. .IP \(bu 2
  196689. 67b4697578 Remove unused import (ling)
  196690. .IP \(bu 2
  196691. 9302fa5ab0 Clean up code comments
  196692. .IP \(bu 2
  196693. b383b9b330 Change the order of SID Lookup
  196694. .UNINDENT
  196695. .IP \(bu 2
  196696. \fBISSUE\fP \fI\%#46826\fP: (\fI\%robgott\fP) grain modules using tuples affect targeting (refs: \fI\%#46839\fP)
  196697. .IP \(bu 2
  196698. \fBPR\fP \fI\%#46839\fP: (\fI\%gtmanfred\fP) match tuple for targets as well
  196699. @ \fI2018\-04\-04 14:07:12 UTC\fP
  196700. .INDENT 2.0
  196701. .IP \(bu 2
  196702. 9c776cffb7 Merge pull request \fI\%#46839\fP from gtmanfred/tupletarget
  196703. .IP \(bu 2
  196704. 3b7208ce27 match tuple for targets as well
  196705. .UNINDENT
  196706. .IP \(bu 2
  196707. \fBISSUE\fP \fI\%#40245\fP: (\fI\%czhong111\fP) salt\-api automatically restart caused by "opening too many files" (refs: \fI\%#46817\fP)
  196708. .IP \(bu 2
  196709. \fBISSUE\fP \fI\%#36374\fP: (\fI\%szjur\fP) Descriptor leaks in multithreaded environment (refs: \fI\%#46817\fP)
  196710. .IP \(bu 2
  196711. \fBISSUE\fP \fI\%#20639\fP: (\fI\%GrizzlyV\fP) salt.client.LocalClient leaks connections to local salt master (refs: \fI\%#46817\fP)
  196712. .IP \(bu 2
  196713. \fBPR\fP \fI\%#46845\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46817\fP to 2017.7
  196714. @ \fI2018\-04\-03 19:52:29 UTC\fP
  196715. .INDENT 2.0
  196716. .IP \(bu 2
  196717. \fBPR\fP \fI\%#46817\fP: (\fI\%mattp\-\fP) address filehandle/event leak in async run_job invocations (refs: \fI\%#46845\fP)
  196718. .IP \(bu 2
  196719. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#46817\fP)
  196720. .IP \(bu 2
  196721. 7db251dc11 Merge pull request \fI\%#46845\fP from rallytime/bp\-46817
  196722. .IP \(bu 2
  196723. 36a0f6d8ca address filehandle/event leak in async run_job invocations
  196724. .UNINDENT
  196725. .IP \(bu 2
  196726. \fBPR\fP \fI\%#46847\fP: (\fI\%dwoz\fP) strdup from libc is not available on windows
  196727. @ \fI2018\-04\-03 19:51:33 UTC\fP
  196728. .INDENT 2.0
  196729. .IP \(bu 2
  196730. e3d17ab7bc Merge pull request \fI\%#46847\fP from dwoz/missing\-strdup
  196731. .IP \(bu 2
  196732. 55845f4846 strdup from libc is not available on windows
  196733. .UNINDENT
  196734. .IP \(bu 2
  196735. \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)
  196736. .IP \(bu 2
  196737. \fBPR\fP \fI\%#46776\fP: (\fI\%gtmanfred\fP) fix shrinking list in for loop bug
  196738. @ \fI2018\-04\-03 17:32:16 UTC\fP
  196739. .INDENT 2.0
  196740. .IP \(bu 2
  196741. f2dd79f9c4 Merge pull request \fI\%#46776\fP from gtmanfred/2017.7
  196742. .IP \(bu 2
  196743. edc1059ee0 fix shrinking list in for loop bug
  196744. .UNINDENT
  196745. .IP \(bu 2
  196746. \fBPR\fP \fI\%#46838\fP: (\fI\%gtmanfred\fP) use http registry for npm
  196747. @ \fI2018\-04\-03 17:02:32 UTC\fP
  196748. .INDENT 2.0
  196749. .IP \(bu 2
  196750. 1941426218 Merge pull request \fI\%#46838\fP from gtmanfred/npm
  196751. .IP \(bu 2
  196752. bff61dd291 use http registry for npm
  196753. .UNINDENT
  196754. .IP \(bu 2
  196755. \fBISSUE\fP \fI\%#42312\fP: (\fI\%frogunder\fP) salt\-call \-\-local sys.doc none gives error/traceback in raspberry pi (refs: \fI\%#46823\fP)
  196756. .IP \(bu 2
  196757. \fBPR\fP \fI\%#46823\fP: (\fI\%rallytime\fP) Improve __virtual__ checks in sensehat module
  196758. @ \fI2018\-04\-03 16:56:08 UTC\fP
  196759. .INDENT 2.0
  196760. .IP \(bu 2
  196761. e544254e7b Merge pull request \fI\%#46823\fP from rallytime/fix\-42312
  196762. .IP \(bu 2
  196763. dafa820f93 Improve __virtual__ checks in sensehat module
  196764. .UNINDENT
  196765. .IP \(bu 2
  196766. \fBPR\fP \fI\%#46641\fP: (\fI\%skizunov\fP) Make LazyLoader thread safe
  196767. @ \fI2018\-04\-03 16:09:17 UTC\fP
  196768. .INDENT 2.0
  196769. .IP \(bu 2
  196770. 37f6d2de35 Merge pull request \fI\%#46641\fP from skizunov/develop3
  196771. .IP \(bu 2
  196772. c624aa4827 Make LazyLoader thread safe
  196773. .UNINDENT
  196774. .IP \(bu 2
  196775. \fBPR\fP \fI\%#46837\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  196776. @ \fI2018\-04\-03 14:54:10 UTC\fP
  196777. .INDENT 2.0
  196778. .IP \(bu 2
  196779. 989508b100 Merge pull request \fI\%#46837\fP from rallytime/merge\-2017.7
  196780. .IP \(bu 2
  196781. 8522c1d634 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  196782. .IP \(bu 2
  196783. 3e844ed1df Merge pull request \fI\%#46739\fP from rallytime/2016.11_update_version_doc
  196784. .IP \(bu 2
  196785. 4d9fc5cc0f Update release versions for the 2016.11 branch
  196786. .UNINDENT
  196787. .IP \(bu 2
  196788. \fBPR\fP \fI\%#46740\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  196789. @ \fI2018\-04\-03 14:36:07 UTC\fP
  196790. .INDENT 2.0
  196791. .IP \(bu 2
  196792. 307e7f35f9 Merge pull request \fI\%#46740\fP from rallytime/2017.7_update_version_doc
  196793. .IP \(bu 2
  196794. 7edf98d224 Update 2018.3.0 information and move branch from "latest" to "previous"
  196795. .IP \(bu 2
  196796. 5336e866ac Update release versions for the 2017.7 branch
  196797. .UNINDENT
  196798. .IP \(bu 2
  196799. \fBPR\fP \fI\%#46783\fP: (\fI\%twangboy\fP) Fix network.managed test=True on Windows
  196800. @ \fI2018\-04\-03 12:54:56 UTC\fP
  196801. .INDENT 2.0
  196802. .IP \(bu 2
  196803. ebf5dd276f Merge pull request \fI\%#46783\fP from twangboy/fix_46680
  196804. .IP \(bu 2
  196805. da5ce25ef3 Fix unit tests on Linux
  196806. .IP \(bu 2
  196807. b7f4f377cd Add space I removed
  196808. .IP \(bu 2
  196809. f1c68a09b5 Fix network.managed test=True on Windows
  196810. .UNINDENT
  196811. .IP \(bu 2
  196812. \fBPR\fP \fI\%#46821\fP: (\fI\%rallytime\fP) Fix the new test failures from the mantest changes
  196813. @ \fI2018\-04\-03 12:40:51 UTC\fP
  196814. .INDENT 2.0
  196815. .IP \(bu 2
  196816. \fBPR\fP \fI\%#46778\fP: (\fI\%terminalmage\fP) Replace flaky SPM man test (refs: \fI\%#46821\fP)
  196817. .IP \(bu 2
  196818. f652f25cc1 Merge pull request \fI\%#46821\fP from rallytime/fix\-mantest\-failures
  196819. .IP \(bu 2
  196820. 209a8029c3 Fix the new test failures from the mantest changes
  196821. .UNINDENT
  196822. .IP \(bu 2
  196823. \fBISSUE\fP \fI\%#46627\fP: (\fI\%vangourd\fP) Win_LGPO fails on writing Administrative Template for Remote Assistance (refs: \fI\%#46800\fP)
  196824. .IP \(bu 2
  196825. \fBPR\fP \fI\%#46800\fP: (\fI\%lomeroe\fP) fix win_lgpo to correctly create valuenames of list item types
  196826. @ \fI2018\-04\-03 12:38:45 UTC\fP
  196827. .INDENT 2.0
  196828. .IP \(bu 2
  196829. c460f62081 Merge pull request \fI\%#46800\fP from lomeroe/2017_7\-46627
  196830. .IP \(bu 2
  196831. 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
  196832. .UNINDENT
  196833. .IP \(bu 2
  196834. \fBISSUE\fP \fI\%#46347\fP: (\fI\%twangboy\fP) Buid 449: unit.modules.test_inspect_collector (refs: \fI\%#46675\fP)
  196835. .IP \(bu 2
  196836. \fBPR\fP \fI\%#46675\fP: (\fI\%dwoz\fP) Skip test when git symlinks are not configured
  196837. @ \fI2018\-04\-03 12:19:19 UTC\fP
  196838. .INDENT 2.0
  196839. .IP \(bu 2
  196840. df26f2641e Merge pull request \fI\%#46675\fP from dwoz/inspectlib\-tests
  196841. .IP \(bu 2
  196842. d39f4852d8 Handle non\-zero status exception
  196843. .IP \(bu 2
  196844. 83c005802b Handle cases where git can not be found
  196845. .IP \(bu 2
  196846. 628b87d5c4 Skip test when git symlinks are not configured
  196847. .UNINDENT
  196848. .IP \(bu 2
  196849. \fBISSUE\fP \fI\%#46808\fP: (\fI\%ezh\fP) Sharedsecret authentication is broken (refs: \fI\%#46809\fP)
  196850. .IP \(bu 2
  196851. \fBPR\fP \fI\%#46815\fP: (\fI\%terminalmage\fP) Backport \fI\%#46809\fP to 2017.7
  196852. @ \fI2018\-04\-02 20:05:15 UTC\fP
  196853. .INDENT 2.0
  196854. .IP \(bu 2
  196855. \fBPR\fP \fI\%#46809\fP: (\fI\%ezh\fP) Fix sharedsecret authentication (refs: \fI\%#46815\fP)
  196856. .IP \(bu 2
  196857. 4083e7c460 Merge pull request \fI\%#46815\fP from terminalmage/bp\-46809
  196858. .IP \(bu 2
  196859. 71d5601507 Fix sharedsecret authentication
  196860. .UNINDENT
  196861. .IP \(bu 2
  196862. \fBPR\fP \fI\%#46769\fP: (\fI\%dwoz\fP) Adding windows minion tests for salt cloud
  196863. @ \fI2018\-04\-02 18:51:49 UTC\fP
  196864. .INDENT 2.0
  196865. .IP \(bu 2
  196866. 3bac9717f4 Merge pull request \fI\%#46769\fP from dwoz/wincloudtest
  196867. .IP \(bu 2
  196868. eabc234e5d Fix config override name
  196869. .IP \(bu 2
  196870. 5c22a0f88d Use aboslute imports
  196871. .IP \(bu 2
  196872. 810042710d Set default cloud test timeout back to 500 seconds
  196873. .IP \(bu 2
  196874. 5ac89ad307 Use winrm_verify_ssl option causing tests to pass
  196875. .IP \(bu 2
  196876. 71858a709c allow not verifying ssl winrm saltcloud
  196877. .IP \(bu 2
  196878. ba5f11476c Adding windows minion tests for salt cloud
  196879. .UNINDENT
  196880. .IP \(bu 2
  196881. \fBPR\fP \fI\%#46786\fP: (\fI\%twangboy\fP) Return int(\-1) when pidfile contains invalid data
  196882. @ \fI2018\-04\-02 18:42:12 UTC\fP
  196883. .INDENT 2.0
  196884. .IP \(bu 2
  196885. f1be939763 Merge pull request \fI\%#46786\fP from twangboy/fix_46757
  196886. .IP \(bu 2
  196887. b0053250ff Remove int(), just return \-1
  196888. .IP \(bu 2
  196889. 7d56126d74 Fixes some lint
  196890. .IP \(bu 2
  196891. 49b3e937da Return int(\-1) when pidfile contains invalid data
  196892. .UNINDENT
  196893. .IP \(bu 2
  196894. \fBPR\fP \fI\%#46814\fP: (\fI\%terminalmage\fP) Backport \fI\%#46772\fP to 2017.7
  196895. @ \fI2018\-04\-02 18:39:37 UTC\fP
  196896. .INDENT 2.0
  196897. .IP \(bu 2
  196898. \fBPR\fP \fI\%#46772\fP: (\fI\%bmiguel\-teixeira\fP) fix container removal if auto_remove was enabled (refs: \fI\%#46814\fP)
  196899. .IP \(bu 2
  196900. 89bf24b15c Merge pull request \fI\%#46814\fP from terminalmage/bp\-46772
  196901. .IP \(bu 2
  196902. a9f26f2ab8 avoid breaking if AutoRemove is not found
  196903. .IP \(bu 2
  196904. 97779c965d fix container removal if auto_remove was enabled
  196905. .UNINDENT
  196906. .IP \(bu 2
  196907. \fBPR\fP \fI\%#46813\fP: (\fI\%terminalmage\fP) Get rid of confusing debug logging
  196908. @ \fI2018\-04\-02 18:19:27 UTC\fP
  196909. .INDENT 2.0
  196910. .IP \(bu 2
  196911. 5ea4ffbdb6 Merge pull request \fI\%#46813\fP from terminalmage/event\-debug\-log
  196912. .IP \(bu 2
  196913. 5d6de3a2eb Get rid of confusing debug logging
  196914. .UNINDENT
  196915. .IP \(bu 2
  196916. \fBPR\fP \fI\%#46766\fP: (\fI\%twangboy\fP) Change the way we\(aqre cleaning up after some tests
  196917. @ \fI2018\-03\-30 18:01:03 UTC\fP
  196918. .INDENT 2.0
  196919. .IP \(bu 2
  196920. e533b7182d Merge pull request \fI\%#46766\fP from twangboy/win_fix_test_git
  196921. .IP \(bu 2
  196922. 5afc66452c Remove unused/redundant imports
  196923. .IP \(bu 2
  196924. 88fd72c52c Use with_tempfile decorator where possible
  196925. .UNINDENT
  196926. .IP \(bu 2
  196927. \fBPR\fP \fI\%#46778\fP: (\fI\%terminalmage\fP) Replace flaky SPM man test (refs: \fI\%#46821\fP)
  196928. @ \fI2018\-03\-30 17:55:14 UTC\fP
  196929. .INDENT 2.0
  196930. .IP \(bu 2
  196931. 69d450db84 Merge pull request \fI\%#46778\fP from terminalmage/salt\-jenkins\-906
  196932. .IP \(bu 2
  196933. bbfd35d3ea Replace flaky SPM man test
  196934. .UNINDENT
  196935. .IP \(bu 2
  196936. \fBISSUE\fP \fI\%#46762\fP: (\fI\%ScoreUnder\fP) prereq stack overflow (refs: \fI\%#46788\fP, \fI\%#46799\fP)
  196937. .IP \(bu 2
  196938. \fBPR\fP \fI\%#46788\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure failed tags are added to self.pre (refs: \fI\%#46799\fP)
  196939. @ \fI2018\-03\-30 17:11:38 UTC\fP
  196940. .INDENT 2.0
  196941. .IP \(bu 2
  196942. c935ffb740 Merge pull request \fI\%#46788\fP from garethgreenaway/46762_prereq_shenanigans
  196943. .IP \(bu 2
  196944. fa7aed6424 Ensure failed tags are added to self.pre.
  196945. .UNINDENT
  196946. .IP \(bu 2
  196947. \fBISSUE\fP \fI\%#46354\fP: (\fI\%twangboy\fP) Build 449: unit.test_state (refs: \fI\%#46655\fP)
  196948. .IP \(bu 2
  196949. \fBISSUE\fP \fI\%#46350\fP: (\fI\%twangboy\fP) Build 449: unit.test_pyobjects.RendererTests (refs: \fI\%#46655\fP)
  196950. .IP \(bu 2
  196951. \fBISSUE\fP \fI\%#46349\fP: (\fI\%twangboy\fP) Build 449: unit.test_pydsl (refs: \fI\%#46655\fP)
  196952. .IP \(bu 2
  196953. \fBISSUE\fP \fI\%#46345\fP: (\fI\%twangboy\fP) Build 449: unit.test_pyobjects.MapTests (Manual Pass) (refs: \fI\%#46655\fP)
  196954. .IP \(bu 2
  196955. \fBPR\fP \fI\%#46655\fP: (\fI\%dwoz\fP) Fixing cleanUp method to restore environment
  196956. @ \fI2018\-03\-29 18:31:48 UTC\fP
  196957. .INDENT 2.0
  196958. .IP \(bu 2
  196959. 395b7f8fdc Merge pull request \fI\%#46655\fP from dwoz/pyobjects\-46350
  196960. .IP \(bu 2
  196961. 5aabd442f2 Fix up import and docstring syntax
  196962. .IP \(bu 2
  196963. 62d64c9230 Fix missing import
  196964. .IP \(bu 2
  196965. 18b1730320 Skip test that requires pywin32 on *nix platforms
  196966. .IP \(bu 2
  196967. 45dce1a485 Add reg module to globals
  196968. .IP \(bu 2
  196969. 09f9322981 Fix pep8 wart
  196970. .IP \(bu 2
  196971. 73d06f664b Fix linter error
  196972. .IP \(bu 2
  196973. 009a8f56ea Fix up environ state tests for Windows
  196974. .IP \(bu 2
  196975. b4be10b8fc Fixing cleanUp method to restore environment
  196976. .UNINDENT
  196977. .IP \(bu 2
  196978. \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)
  196979. .IP \(bu 2
  196980. \fBPR\fP \fI\%#46632\fP: (\fI\%dwoz\fP) Fix file.recurse w/ clean=True \fI\%#36802\fP
  196981. @ \fI2018\-03\-29 18:30:42 UTC\fP
  196982. .INDENT 2.0
  196983. .IP \(bu 2
  196984. af45c49c42 Merge pull request \fI\%#46632\fP from dwoz/file\-recurse\-36802
  196985. .IP \(bu 2
  196986. 44db77ae79 Fix lint errors and typo
  196987. .IP \(bu 2
  196988. cb5619537f Only change what is essential for test fix
  196989. .IP \(bu 2
  196990. eb822f5a12 Fix file.recurse w/ clean=True \fI\%#36802\fP
  196991. .UNINDENT
  196992. .IP \(bu 2
  196993. \fBISSUE\fP \fI\%#46660\fP: (\fI\%mruepp\fP) top file merging same does produce conflicting ids with gitfs (refs: \fI\%#46751\fP)
  196994. .IP \(bu 2
  196995. \fBPR\fP \fI\%#46751\fP: (\fI\%folti\fP) top file merging strategy \(aqsame\(aq works again
  196996. @ \fI2018\-03\-28 21:12:27 UTC\fP
  196997. .INDENT 2.0
  196998. .IP \(bu 2
  196999. 6e9f504ed1 Merge pull request \fI\%#46751\fP from folti/2017.7
  197000. .IP \(bu 2
  197001. 7058f10381 same top merging strategy works again
  197002. .UNINDENT
  197003. .IP \(bu 2
  197004. \fBPR\fP \fI\%#46691\fP: (\fI\%Ch3LL\fP) Add groupadd module integration tests for Windows
  197005. @ \fI2018\-03\-28 18:01:46 UTC\fP
  197006. .INDENT 2.0
  197007. .IP \(bu 2
  197008. d3623e0815 Merge pull request \fI\%#46691\fP from Ch3LL/win_group_test
  197009. .IP \(bu 2
  197010. 7cda825e90 Add groupadd module integration tests for Windows
  197011. .UNINDENT
  197012. .IP \(bu 2
  197013. \fBISSUE\fP \fI\%#46352\fP: (\fI\%twangboy\fP) Build 449: unit.test_client (refs: \fI\%#46696\fP)
  197014. .IP \(bu 2
  197015. \fBPR\fP \fI\%#46696\fP: (\fI\%dwoz\fP) Windows \fIunit.test_client\fP fixes
  197016. @ \fI2018\-03\-28 17:55:47 UTC\fP
  197017. .INDENT 2.0
  197018. .IP \(bu 2
  197019. 14ab50d3f4 Merge pull request \fI\%#46696\fP from dwoz/win_test_client
  197020. .IP \(bu 2
  197021. ec4634fc06 Better explanation in doc strings
  197022. .IP \(bu 2
  197023. d9ae2abb34 Fix splling in docstring
  197024. .IP \(bu 2
  197025. b40efc5db8 Windows test client fixes
  197026. .UNINDENT
  197027. .IP \(bu 2
  197028. \fBISSUE\fP \fI\%#45956\fP: (\fI\%frogunder\fP) CTRL\-C gives traceback on py3 setup (refs: \fI\%#46032\fP)
  197029. .IP \(bu 2
  197030. \fBPR\fP \fI\%#46732\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46032\fP to 2017.7
  197031. @ \fI2018\-03\-28 13:43:17 UTC\fP
  197032. .INDENT 2.0
  197033. .IP \(bu 2
  197034. \fBPR\fP \fI\%#46032\fP: (\fI\%DmitryKuzmenko\fP) Workaroung python bug in traceback.format_exc() (refs: \fI\%#46732\fP)
  197035. .IP \(bu 2
  197036. 1222bdbc00 Merge pull request \fI\%#46732\fP from rallytime/bp\-46032
  197037. .IP \(bu 2
  197038. bf0b962dc0 Workaroung python bug in traceback.format_exc()
  197039. .UNINDENT
  197040. .IP \(bu 2
  197041. \fBISSUE\fP \fI\%#28142\fP: (\fI\%zmalone\fP) Deprecate or update the copr repo (refs: \fI\%#46749\fP)
  197042. .IP \(bu 2
  197043. \fBPR\fP \fI\%#46749\fP: (\fI\%vutny\fP) [DOC] Remove mentions of COPR repo from RHEL installation page
  197044. @ \fI2018\-03\-28 13:20:50 UTC\fP
  197045. .INDENT 2.0
  197046. .IP \(bu 2
  197047. 50fe1e9480 Merge pull request \fI\%#46749\fP from vutny/doc\-deprecate\-copr
  197048. .IP \(bu 2
  197049. a1cc55da3d [DOC] Remove mentions of COPR repo from RHEL installation page
  197050. .UNINDENT
  197051. .IP \(bu 2
  197052. \fBPR\fP \fI\%#46734\fP: (\fI\%terminalmage\fP) Make busybox image builder work with newer busybox releases
  197053. @ \fI2018\-03\-27 21:14:28 UTC\fP
  197054. .INDENT 2.0
  197055. .IP \(bu 2
  197056. bd1e8bcc7d Merge pull request \fI\%#46734\fP from terminalmage/busybox
  197057. .IP \(bu 2
  197058. 6502b6b4ff Make busybox image builder work with newer busybox releases
  197059. .UNINDENT
  197060. .IP \(bu 2
  197061. \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)
  197062. .IP \(bu 2
  197063. \fBPR\fP \fI\%#46742\fP: (\fI\%gtmanfred\fP) only use npm test work around on newer versions
  197064. @ \fI2018\-03\-27 21:13:28 UTC\fP
  197065. .INDENT 2.0
  197066. .IP \(bu 2
  197067. c09c6f819c Merge pull request \fI\%#46742\fP from gtmanfred/2017.7
  197068. .IP \(bu 2
  197069. fd0e649d1e only use npm test work around on newer versions
  197070. .UNINDENT
  197071. .IP \(bu 2
  197072. \fBPR\fP \fI\%#46743\fP: (\fI\%Ch3LL\fP) Workaround getpwnam in auth test for MacOSX
  197073. @ \fI2018\-03\-27 21:10:47 UTC\fP
  197074. .INDENT 2.0
  197075. .IP \(bu 2
  197076. 3b6d5eca88 Merge pull request \fI\%#46743\fP from Ch3LL/mac_auth
  197077. .IP \(bu 2
  197078. 4f1c42c0e3 Workaround getpwnam in auth test for MacOSX
  197079. .UNINDENT
  197080. .IP \(bu 2
  197081. \fBISSUE\fP \fI\%#26920\fP: (\fI\%david\-fairbanks42\fP) MySQL grant with underscore and wildcard (refs: \fI\%#46171\fP)
  197082. .IP \(bu 2
  197083. \fBPR\fP \fI\%#46171\fP: (\fI\%amaclean199\fP) Fix mysql grant comparisons
  197084. @ \fI2018\-03\-27 17:54:48 UTC\fP
  197085. .INDENT 2.0
  197086. .IP \(bu 2
  197087. b548a3e742 Merge pull request \fI\%#46171\fP from amaclean199/fix_mysql_grants_comparison
  197088. .IP \(bu 2
  197089. 97db3d9766 Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  197090. .IP \(bu 2
  197091. 0565b3980e Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  197092. .IP \(bu 2
  197093. 8af407173d Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  197094. .IP \(bu 2
  197095. 00d13f05c4 Fix mysql grant comparisons by stripping both of escape characters and quotes. Fixes \fI\%#26920\fP
  197096. .UNINDENT
  197097. .IP \(bu 2
  197098. \fBISSUE\fP \fI\%#5721\fP: (\fI\%ozgurakan\fP) salt\-minion can\(aqt restart itself (refs: \fI\%#46709\fP)
  197099. .IP \(bu 2
  197100. \fBPR\fP \fI\%#46709\fP: (\fI\%vutny\fP) [DOC] Update FAQ about Salt self\-restarting
  197101. @ \fI2018\-03\-27 14:34:58 UTC\fP
  197102. .INDENT 2.0
  197103. .IP \(bu 2
  197104. 554400e067 Merge pull request \fI\%#46709\fP from vutny/doc\-faq\-minion\-master\-restart
  197105. .IP \(bu 2
  197106. d0929280fc [DOC] Update FAQ about Salt self\-restarting
  197107. .UNINDENT
  197108. .IP \(bu 2
  197109. \fBPR\fP \fI\%#46503\fP: (\fI\%psyer\fP) Fixes stdout user environment corruption
  197110. @ \fI2018\-03\-27 14:20:15 UTC\fP
  197111. .INDENT 2.0
  197112. .IP \(bu 2
  197113. 3f21e9cc65 Merge pull request \fI\%#46503\fP from psyer/fix\-cmd\-run\-env\-corrupt
  197114. .IP \(bu 2
  197115. e8582e80f2 Python 3\-compatibility fix to unit test
  197116. .IP \(bu 2
  197117. 27f651906d Merge pull request #1 from terminalmage/fix\-cmd\-run\-env\-corrupt
  197118. .INDENT 2.0
  197119. .IP \(bu 2
  197120. 172d3b2e04 Allow cases where no marker was found to proceed without raising exception
  197121. .IP \(bu 2
  197122. 35ad828ab8 Simplify the marker parsing logic
  197123. .UNINDENT
  197124. .IP \(bu 2
  197125. a09f20ab45 fix repr for the linter
  197126. .IP \(bu 2
  197127. 4ee723ac0f Rework how errors are output
  197128. .IP \(bu 2
  197129. dc283940e0 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  197130. .IP \(bu 2
  197131. a91926561f Fix linting problems
  197132. .IP \(bu 2
  197133. e8d3d017f9 fix bytes or str in find command
  197134. .IP \(bu 2
  197135. 0877cfc38f Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  197136. .IP \(bu 2
  197137. 86176d1252 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  197138. .IP \(bu 2
  197139. 3a7cc44ade Add python3 support for byte encoded markers
  197140. .IP \(bu 2
  197141. 09048139c7 Do not show whole env in error
  197142. .IP \(bu 2
  197143. ed94700255 fix missing raise statement
  197144. .IP \(bu 2
  197145. 15868bc88c Fixes stdout user environment corruption
  197146. .UNINDENT
  197147. .IP \(bu 2
  197148. \fBPR\fP \fI\%#46432\fP: (\fI\%twangboy\fP) Default to UTF\-8 for templated files
  197149. @ \fI2018\-03\-26 19:02:14 UTC\fP
  197150. .INDENT 2.0
  197151. .IP \(bu 2
  197152. ac2a6616a7 Merge pull request \fI\%#46432\fP from twangboy/win_locales_utf8
  197153. .IP \(bu 2
  197154. affa35c30d Revert passing encoding
  197155. .IP \(bu 2
  197156. a0ab27ef15 Merge remote\-tracking branch \(aqdw/win_locales_utf8\(aq into win_locales_utf8
  197157. .INDENT 2.0
  197158. .IP \(bu 2
  197159. 9f95c50061 Use default SLS encoding, fall back to system encoding
  197160. .IP \(bu 2
  197161. 6548d550d0 Use salt.utils.to_unicode
  197162. .IP \(bu 2
  197163. 8c0164fb63 Add ability to specify encoding in sdecode
  197164. .IP \(bu 2
  197165. 2e7985a81c Default to utf\-8 on Windows
  197166. .UNINDENT
  197167. .IP \(bu 2
  197168. 8017860dcc Use salt.utils.to_unicode
  197169. .IP \(bu 2
  197170. c10ed26eab Add ability to specify encoding in sdecode
  197171. .IP \(bu 2
  197172. 8d7e2d0058 Default to utf\-8 on Windows
  197173. .UNINDENT
  197174. .IP \(bu 2
  197175. \fBPR\fP \fI\%#46669\fP: (\fI\%terminalmage\fP) Add option to return to pre\-2017.7.3 pillar include merge order
  197176. @ \fI2018\-03\-26 19:00:28 UTC\fP
  197177. .INDENT 2.0
  197178. .IP \(bu 2
  197179. fadc5e4ba4 Merge pull request \fI\%#46669\fP from terminalmage/pillar\-merge\-order
  197180. .IP \(bu 2
  197181. b4a1d34b47 Add option to return to pre\-2017.7.3 pillar include merge order
  197182. .UNINDENT
  197183. .IP \(bu 2
  197184. \fBPR\fP \fI\%#46711\fP: (\fI\%terminalmage\fP) Add performance reminder for wildcard versions
  197185. @ \fI2018\-03\-26 18:07:31 UTC\fP
  197186. .INDENT 2.0
  197187. .IP \(bu 2
  197188. b90f0d1364 Merge pull request \fI\%#46711\fP from terminalmage/wildcard\-versions\-info
  197189. .IP \(bu 2
  197190. fc7d16f1af Add performance reminder for wildcard versions
  197191. .UNINDENT
  197192. .IP \(bu 2
  197193. \fBISSUE\fP \fI\%#46353\fP: (\fI\%twangboy\fP) Build 449: unit.returners.test_smtp_return (refs: \fI\%#46693\fP)
  197194. .IP \(bu 2
  197195. \fBPR\fP \fI\%#46693\fP: (\fI\%dwoz\fP) File and Pillar roots are dictionaries
  197196. @ \fI2018\-03\-26 15:15:38 UTC\fP
  197197. .INDENT 2.0
  197198. .IP \(bu 2
  197199. 6c80d90bb6 Merge pull request \fI\%#46693\fP from dwoz/test_smtp_return
  197200. .IP \(bu 2
  197201. 5bf850c67f File and Pillar roots are dictionaries
  197202. .UNINDENT
  197203. .IP \(bu 2
  197204. \fBISSUE\fP \fI\%#36153\fP: (\fI\%krcroft\fP) Pillarenv doesn\(aqt allow using separate pillar environments (refs: \fI\%#46543\fP)
  197205. .IP \(bu 2
  197206. \fBPR\fP \fI\%#46543\fP: (\fI\%dafenko\fP) Fix missing saltenv and pillarenv in pillar.item
  197207. @ \fI2018\-03\-26 15:05:13 UTC\fP
  197208. .INDENT 2.0
  197209. .IP \(bu 2
  197210. 9a6bc1418c Merge pull request \fI\%#46543\fP from dafenko/fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197211. .IP \(bu 2
  197212. 6d5b2068aa Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197213. .IP \(bu 2
  197214. 5219377313 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197215. .IP \(bu 2
  197216. b7d39caa86 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197217. .IP \(bu 2
  197218. 25f1074a85 Add docstring for added parameters
  197219. .IP \(bu 2
  197220. 973bc13955 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197221. .IP \(bu 2
  197222. 164314a859 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  197223. .IP \(bu 2
  197224. 267ae9f633 Fix missing saltenv and pillarenv in pillar.item
  197225. .UNINDENT
  197226. .IP \(bu 2
  197227. \fBPR\fP \fI\%#46679\fP: (\fI\%vutny\fP) [DOC] Correct examples in \fIpkg\fP state module
  197228. @ \fI2018\-03\-26 14:40:07 UTC\fP
  197229. .INDENT 2.0
  197230. .IP \(bu 2
  197231. f776040e25 Merge pull request \fI\%#46679\fP from vutny/doc\-state\-pkg
  197232. .IP \(bu 2
  197233. 4a730383bf [DOC] Correct examples in \fIpkg\fP state module
  197234. .UNINDENT
  197235. .IP \(bu 2
  197236. \fBPR\fP \fI\%#46646\fP: (\fI\%twangboy\fP) Fix \fIunit.returners.test_local_cache\fP for Windows
  197237. @ \fI2018\-03\-26 14:16:23 UTC\fP
  197238. .INDENT 2.0
  197239. .IP \(bu 2
  197240. 47409eaa6e Merge pull request \fI\%#46646\fP from twangboy/win_fix_test_local_cache
  197241. .IP \(bu 2
  197242. 8d93156604 Fix \fIunit.returners.test_local_cache\fP for Windows
  197243. .UNINDENT
  197244. .IP \(bu 2
  197245. \fBISSUE\fP \fI\%#46595\fP: (\fI\%aboe76\fP) saltstack server_id changes with each run on python3 (refs: \fI\%#46649\fP)
  197246. .IP \(bu 2
  197247. \fBPR\fP \fI\%#46649\fP: (\fI\%terminalmage\fP) Make server_id consistent on Python 3
  197248. @ \fI2018\-03\-26 13:58:59 UTC\fP
  197249. .INDENT 2.0
  197250. .IP \(bu 2
  197251. 0c2dce0416 Merge pull request \fI\%#46649\fP from terminalmage/issue46595
  197252. .IP \(bu 2
  197253. e82a1aa1ec Make server_id consistent on Python 3
  197254. .UNINDENT
  197255. .IP \(bu 2
  197256. \fBPR\fP \fI\%#46588\fP: (\fI\%UtahDave\fP) Don\(aqt crash when saltwinshell is missing
  197257. @ \fI2018\-03\-21 20:26:31 UTC\fP
  197258. .INDENT 2.0
  197259. .IP \(bu 2
  197260. 4e7466a21c Merge pull request \fI\%#46588\fP from UtahDave/no_crash_winshell
  197261. .IP \(bu 2
  197262. b7842a1777 Update error message.
  197263. .IP \(bu 2
  197264. 95dfdb91ca Don\(aqt stacktrace when salt\-ssh w/o saltwinshell
  197265. .UNINDENT
  197266. .IP \(bu 2
  197267. \fBISSUE\fP \fI\%#22063\fP: (\fI\%jeanpralo\fP) Wildcard inside top.sls file for pillar (refs: \fI\%#41423\fP)
  197268. .IP \(bu 2
  197269. \fBISSUE\fP \fI\%#20581\fP: (\fI\%notpeter\fP) Many environments: one pillar_root (all your envs are belong to base) (refs: \fI\%#46309\fP)
  197270. .IP \(bu 2
  197271. \fBPR\fP \fI\%#46631\fP: (\fI\%rallytime\fP) Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  197272. @ \fI2018\-03\-21 19:22:49 UTC\fP
  197273. .INDENT 2.0
  197274. .IP \(bu 2
  197275. \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)
  197276. .IP \(bu 2
  197277. \fBPR\fP \fI\%#46569\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3 (refs: \fI\%#46631\fP)
  197278. .IP \(bu 2
  197279. \fBPR\fP \fI\%#46309\fP: (\fI\%bdrung\fP) Support dynamic pillar_root environment (refs: \fI\%#46631\fP)
  197280. .IP \(bu 2
  197281. \fBPR\fP \fI\%#41423\fP: (\fI\%RichardW42\fP) pillar: target\(aqs state list support wildcard in top.sls (refs: \fI\%#46631\fP)
  197282. .IP \(bu 2
  197283. 33af3cfc7c Merge pull request \fI\%#46631\fP from rallytime/update\-pillar\-unit\-tests
  197284. .IP \(bu 2
  197285. 0f728186aa Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  197286. .UNINDENT
  197287. .IP \(bu 2
  197288. \fBISSUE\fP \fI\%#26450\fP: (\fI\%typeshige\fP) file.copy: source file is not present. (refs: \fI\%#46640\fP)
  197289. .IP \(bu 2
  197290. \fBPR\fP \fI\%#46640\fP: (\fI\%terminalmage\fP) Clarify the docs for the file.copy state
  197291. @ \fI2018\-03\-21 19:14:50 UTC\fP
  197292. .INDENT 2.0
  197293. .IP \(bu 2
  197294. d329e7af78 Merge pull request \fI\%#46640\fP from terminalmage/file.copy\-docs
  197295. .IP \(bu 2
  197296. 480c5f8faa Clarify the docs for the file.copy state
  197297. .UNINDENT
  197298. .IP \(bu 2
  197299. \fBPR\fP \fI\%#46642\fP: (\fI\%vutny\fP) [DOC] Unify cloud modules index header
  197300. @ \fI2018\-03\-21 19:13:28 UTC\fP
  197301. .INDENT 2.0
  197302. .IP \(bu 2
  197303. ff40590c06 Merge pull request \fI\%#46642\fP from vutny/doc\-cloud\-index
  197304. .IP \(bu 2
  197305. 51e6aa54a1 [DOC] Unify cloud modules index header
  197306. .UNINDENT
  197307. .IP \(bu 2
  197308. \fBPR\fP \fI\%#46619\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.5 to 2017.7
  197309. @ \fI2018\-03\-20 19:03:30 UTC\fP
  197310. .INDENT 2.0
  197311. .IP \(bu 2
  197312. 83ed40c06a Merge pull request \fI\%#46619\fP from rallytime/merge\-2017.7
  197313. .IP \(bu 2
  197314. bcbddf5d07 Merge branch \(aq2017.7.5\(aq into \(aq2017.7\(aq
  197315. .UNINDENT
  197316. .IP \(bu 2
  197317. \fBPR\fP \fI\%#46584\fP: (\fI\%twangboy\fP) Fix issue LGPO issue
  197318. @ \fI2018\-03\-20 17:48:33 UTC\fP
  197319. .INDENT 2.0
  197320. .IP \(bu 2
  197321. df12135439 Merge pull request \fI\%#46584\fP from twangboy/lgpo\-46568
  197322. .IP \(bu 2
  197323. 661017104b Detect disabled reg_multi_sz elements properly
  197324. .UNINDENT
  197325. .IP \(bu 2
  197326. \fBPR\fP \fI\%#46624\fP: (\fI\%twangboy\fP) Fix a few inconsitencies in the installer script
  197327. @ \fI2018\-03\-20 17:47:44 UTC\fP
  197328. .INDENT 2.0
  197329. .IP \(bu 2
  197330. 2fd3aa487c Merge pull request \fI\%#46624\fP from twangboy/win_fix_installer
  197331. .IP \(bu 2
  197332. fa0b0efe46 Fix some installer script inconsistencies
  197333. .UNINDENT
  197334. .IP \(bu 2
  197335. \fBISSUE\fP \fI\%#46552\fP: (\fI\%JeffLee123\fP) State with require requisite executes despite onfail requisite on another state. (refs: \fI\%#46571\fP)
  197336. .IP \(bu 2
  197337. \fBPR\fP \fI\%#46571\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to state.py
  197338. @ \fI2018\-03\-20 13:40:04 UTC\fP
  197339. .INDENT 2.0
  197340. .IP \(bu 2
  197341. f038e3c452 Merge pull request \fI\%#46571\fP from garethgreenaway/46552_onfail_and_require
  197342. .IP \(bu 2
  197343. 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.
  197344. .UNINDENT
  197345. .IP \(bu 2
  197346. \fBISSUE\fP \fI\%#46512\fP: (\fI\%blarghmatey\fP) git.pull failing when run from the salt scheduler (refs: \fI\%#46520\fP)
  197347. .IP \(bu 2
  197348. \fBPR\fP \fI\%#46520\fP: (\fI\%gtmanfred\fP) pass utils to the scheduler for reloading in modules
  197349. @ \fI2018\-03\-20 13:35:49 UTC\fP
  197350. .INDENT 2.0
  197351. .IP \(bu 2
  197352. 2677330e19 Merge pull request \fI\%#46520\fP from gtmanfred/2017.7
  197353. .IP \(bu 2
  197354. caefedc095 make sure utils is empty for pickling for windows
  197355. .IP \(bu 2
  197356. 2883548e6b pass utils to the scheduler for reloading in modules
  197357. .UNINDENT
  197358. .IP \(bu 2
  197359. \fBISSUE\fP \fI\%#44299\fP: (\fI\%nhavens\fP) 2017.7.2 breaks pkgrepo.managed yum repo comments (refs: \fI\%#46531\fP)
  197360. .IP \(bu 2
  197361. \fBPR\fP \fI\%#46531\fP: (\fI\%terminalmage\fP) Fix regression in yumpkg._parse_repo_file()
  197362. @ \fI2018\-03\-20 13:34:59 UTC\fP
  197363. .INDENT 2.0
  197364. .IP \(bu 2
  197365. 7bc3c2e588 Merge pull request \fI\%#46531\fP from terminalmage/issue44299
  197366. .IP \(bu 2
  197367. b70c3389da Fix case where no comments specified
  197368. .IP \(bu 2
  197369. ce391c53f4 Add regression test for \fI\%#44299\fP
  197370. .IP \(bu 2
  197371. c3e36a6c94 Fix regression in yumpkg._parse_repo_file()
  197372. .IP \(bu 2
  197373. f0c79e3da3 Slight modification to salt.utils.pkg.rpm.combine_comments()
  197374. .UNINDENT
  197375. .IP \(bu 2
  197376. \fBISSUE\fP \fI\%#46521\fP: (\fI\%dwoz\fP) \fI\-\-name\fP argument not honored for cloud test suite (refs: \fI\%#46567\fP)
  197377. .IP \(bu 2
  197378. \fBPR\fP \fI\%#46567\fP: (\fI\%dwoz\fP) Honor named tests when running integration suites
  197379. @ \fI2018\-03\-20 13:24:42 UTC\fP
  197380. .INDENT 2.0
  197381. .IP \(bu 2
  197382. b80edb5d26 Merge pull request \fI\%#46567\fP from dwoz/runtest\-n\-wart
  197383. .IP \(bu 2
  197384. 3b6901e19d Honor named tests when running integration suites
  197385. .UNINDENT
  197386. .IP \(bu 2
  197387. \fBPR\fP \fI\%#46580\fP: (\fI\%twangboy\fP) Clarify some issues with msu files in win_dism.py
  197388. @ \fI2018\-03\-16 18:57:55 UTC\fP
  197389. .INDENT 2.0
  197390. .IP \(bu 2
  197391. 1dcd22e767 Merge pull request \fI\%#46580\fP from twangboy/win_update_docs_dism
  197392. .IP \(bu 2
  197393. d52b99d7a3 Clarify some issues with msu files in win_dism.py
  197394. .UNINDENT
  197395. .IP \(bu 2
  197396. \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)
  197397. .IP \(bu 2
  197398. \fBPR\fP \fI\%#46541\fP: (\fI\%gtmanfred\fP) handle user\-data for metadata grains
  197399. @ \fI2018\-03\-15 17:21:31 UTC\fP
  197400. .INDENT 2.0
  197401. .IP \(bu 2
  197402. 0a68c22332 Merge pull request \fI\%#46541\fP from gtmanfred/metadata
  197403. .IP \(bu 2
  197404. 19bd1d9db5 handle user\-data for metadata grains
  197405. .UNINDENT
  197406. .IP \(bu 2
  197407. \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)
  197408. .IP \(bu 2
  197409. \fBPR\fP \fI\%#46547\fP: (\fI\%garethgreenaway\fP) [2017.7] Disable service module for Cumulus
  197410. @ \fI2018\-03\-15 16:15:00 UTC\fP
  197411. .INDENT 2.0
  197412. .IP \(bu 2
  197413. 048b2ba3f6 Merge pull request \fI\%#46547\fP from garethgreenaway/46427_service_module_cumulus
  197414. .IP \(bu 2
  197415. edd0b11447 Merge branch \(aq2017.7\(aq into 46427_service_module_cumulus
  197416. .IP \(bu 2
  197417. ea3c16080e Disable the \fIservice\fP module on Cumulus since it is using systemd.
  197418. .UNINDENT
  197419. .IP \(bu 2
  197420. \fBPR\fP \fI\%#46548\fP: (\fI\%Ch3LL\fP) profitbrick test: check for foo,bar username,password set in profitbrick config
  197421. @ \fI2018\-03\-15 14:25:27 UTC\fP
  197422. .INDENT 2.0
  197423. .IP \(bu 2
  197424. 98e3260b9a Merge pull request \fI\%#46548\fP from Ch3LL/profit_test
  197425. .IP \(bu 2
  197426. db96c4e72e check for foo,bar username,password set in profitbrick config
  197427. .UNINDENT
  197428. .IP \(bu 2
  197429. \fBPR\fP \fI\%#46549\fP: (\fI\%Ch3LL\fP) Fix dimensionsdata test random_name call
  197430. @ \fI2018\-03\-15 14:23:41 UTC\fP
  197431. .INDENT 2.0
  197432. .IP \(bu 2
  197433. 79f2a76609 Merge pull request \fI\%#46549\fP from Ch3LL/dimension_test
  197434. .IP \(bu 2
  197435. bb338c464c Fix dimensionsdata test random_name call
  197436. .UNINDENT
  197437. .IP \(bu 2
  197438. \fBPR\fP \fI\%#46529\fP: (\fI\%gtmanfred\fP) retry if there is a segfault
  197439. @ \fI2018\-03\-13 22:41:54 UTC\fP
  197440. .INDENT 2.0
  197441. .IP \(bu 2
  197442. 083846fe0e Merge pull request \fI\%#46529\fP from gtmanfred/kitchen
  197443. .IP \(bu 2
  197444. 50d6e2c7be retry if there is a segfault
  197445. .UNINDENT
  197446. .IP \(bu 2
  197447. \fBPR\fP \fI\%#46511\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45769\fP to 2017.7
  197448. @ \fI2018\-03\-13 17:08:52 UTC\fP
  197449. .INDENT 2.0
  197450. .IP \(bu 2
  197451. \fBPR\fP \fI\%#45769\fP: (\fI\%Quarky9\fP) Surpress boto WARNING during SQS msg decode in sqs_engine (refs: \fI\%#46511\fP)
  197452. .IP \(bu 2
  197453. 5cc11129f1 Merge pull request \fI\%#46511\fP from rallytime/bp\-45769
  197454. .IP \(bu 2
  197455. a8ffceda53 Surpress boto WARNING during decode, reference: \fI\%https://github.com/boto/boto/issues/2965\fP
  197456. .UNINDENT
  197457. .UNINDENT
  197458. .SS Salt 2017.7.7 Release Notes
  197459. .sp
  197460. Version 2017.7.7 is a bugfix release for 2017.7.0\&.
  197461. .sp
  197462. The \fB2017.7.7\fP release contains only a small number of fixes, which are detailed
  197463. below.
  197464. .sp
  197465. This release fixes two critical issues.
  197466. .sp
  197467. The first is Issue \fI\%#48038\fP, which is a critical bug that occurs in a multi\-syndic
  197468. setup where the same job is run multiple times on a minion.
  197469. .sp
  197470. The second issue is \fI\%#48130\fP\&. This bug appears in certain setups where the Master
  197471. reports a Minion time\-out, even though the job is still running on the Minion.
  197472. .sp
  197473. Both of these issues have been fixed with this release.
  197474. .SS Statistics
  197475. .INDENT 0.0
  197476. .IP \(bu 2
  197477. Total Merges: \fB5\fP
  197478. .IP \(bu 2
  197479. Total Issue References: \fB2\fP
  197480. .IP \(bu 2
  197481. Total PR References: \fB6\fP
  197482. .IP \(bu 2
  197483. Contributors: \fB3\fP (\fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%rallytime\fP)
  197484. .UNINDENT
  197485. .SS Changelog for v2017.7.6..v2017.7.7
  197486. .sp
  197487. \fIGenerated at: 2018\-06\-17 19:26:52 UTC\fP
  197488. .INDENT 0.0
  197489. .IP \(bu 2
  197490. \fBISSUE\fP \fI\%#48130\fP: (\fI\%rmarchei\fP) Minion timeouts with 2018.3.1 (refs: \fI\%#48157\fP)
  197491. .IP \(bu 2
  197492. \fBPR\fP \fI\%#48157\fP: (\fI\%gtmanfred\fP) always listen when gathering job info
  197493. @ \fI2018\-06\-17 19:04:09 UTC\fP
  197494. .INDENT 2.0
  197495. .IP \(bu 2
  197496. 8af4452134 Merge pull request \fI\%#48157\fP from gtmanfred/2017.7.7
  197497. .IP \(bu 2
  197498. d8209e8a40 always listen when gathering job info
  197499. .UNINDENT
  197500. .IP \(bu 2
  197501. \fBPR\fP \fI\%#48140\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.7
  197502. @ \fI2018\-06\-14 21:22:43 UTC\fP
  197503. .INDENT 2.0
  197504. .IP \(bu 2
  197505. b98c52ee51 Merge pull request \fI\%#48140\fP from rallytime/man\-pages\-2017.7.7
  197506. .IP \(bu 2
  197507. 8893bf0d4c Update man pages for 2017.7.7
  197508. .UNINDENT
  197509. .IP \(bu 2
  197510. \fBPR\fP \fI\%#48136\fP: (\fI\%gtmanfred\fP) [2017.7.7] bootstrap kitchen branch tests with 2017.7.6
  197511. @ \fI2018\-06\-14 21:20:16 UTC\fP
  197512. .INDENT 2.0
  197513. .IP \(bu 2
  197514. baa0363336 Merge pull request \fI\%#48136\fP from gtmanfred/2017.7.7
  197515. .IP \(bu 2
  197516. fce1c31146 bootstrap kitchen branch tests with 2017.7.6
  197517. .UNINDENT
  197518. .IP \(bu 2
  197519. \fBPR\fP \fI\%#48134\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.7
  197520. @ \fI2018\-06\-14 16:31:34 UTC\fP
  197521. .INDENT 2.0
  197522. .IP \(bu 2
  197523. b0ba08f4d9 Merge pull request \fI\%#48134\fP from rallytime/release\-notes\-2017.7.7
  197524. .IP \(bu 2
  197525. 217005b8f1 Add missing \fIv\fP for tag reference
  197526. .IP \(bu 2
  197527. d53569d1e3 Add release notes file for 2017.7.7
  197528. .UNINDENT
  197529. .IP \(bu 2
  197530. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  197531. .IP \(bu 2
  197532. \fBPR\fP \fI\%#48098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48075\fP to 2017.7.7
  197533. @ \fI2018\-06\-14 12:53:42 UTC\fP
  197534. .INDENT 2.0
  197535. .IP \(bu 2
  197536. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed (refs: \fI\%#48098\fP)
  197537. .IP \(bu 2
  197538. 084de927fe Merge pull request \fI\%#48098\fP from rallytime/bp\-48075\-2017.7.7
  197539. .IP \(bu 2
  197540. e4e62e8b3a Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  197541. .UNINDENT
  197542. .UNINDENT
  197543. .SS Salt 2017.7.8 Release Notes
  197544. .sp
  197545. Version 2017.7.8 is a security and bugfix release for 2017.7.0\&.
  197546. .SS Statistics
  197547. .INDENT 0.0
  197548. .IP \(bu 2
  197549. Total Merges: \fB237\fP
  197550. .IP \(bu 2
  197551. Total Issue References: \fB48\fP
  197552. .IP \(bu 2
  197553. Total PR References: \fB279\fP
  197554. .IP \(bu 2
  197555. 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)
  197556. .UNINDENT
  197557. .SS Security Fix
  197558. .sp
  197559. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  197560. .sp
  197561. 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.
  197562. .sp
  197563. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  197564. .SS New win_snmp behavior
  197565. .INDENT 0.0
  197566. .IP \(bu 2
  197567. \fBwin_snmp.get_community_names\fP now returns the SNMP settings
  197568. actually in effect on the box. If settings are managed via GroupPolicy, those
  197569. settings will be returned. Otherwise, normal settings are returned.
  197570. .IP \(bu 2
  197571. \fBwin_snmp.set_community_names\fP now raises an error when SNMP
  197572. settings are being managed by GroupPolicy.
  197573. .UNINDENT
  197574. .SS Option Added to Disable Docker Mine Updates
  197575. .sp
  197576. When a docker container is added, removed, started, stopped, etc., the results
  197577. of a \fBdocker.ps verbose=True all=True host=True\fP are sent to the mine, to be
  197578. used by \fBmine.get_docker\fP\&.
  197579. .sp
  197580. A new config option (\fBdocker.update_mine\fP) has been added. When
  197581. set to \fBFalse\fP, Salt will not send this information to the mine. This is
  197582. useful in cases where sensitive information is stored in the container\(aqs
  197583. environment.
  197584. .SS Changelog for v2017.7.7..v2017.7.8
  197585. .sp
  197586. \fIGenerated at: 2018\-09\-04 21:09:41 UTC\fP
  197587. .INDENT 0.0
  197588. .IP \(bu 2
  197589. \fBPR\fP \fI\%#49498\fP: (\fI\%rallytime\fP) Pin CherryPy version to < 18.0.0 in requirements files for PY2
  197590. @ \fI2018\-09\-04 17:55:02 UTC\fP
  197591. .INDENT 2.0
  197592. .IP \(bu 2
  197593. 0d7b173b24 Merge pull request \fI\%#49498\fP from rallytime/pin\-cherrypy\-2017.7.8
  197594. .IP \(bu 2
  197595. 81a6155b6b Pin CherryPy version to < 18.0.0 in requirements files for PY2
  197596. .UNINDENT
  197597. .IP \(bu 2
  197598. \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_)
  197599. .INDENT 2.0
  197600. .IP \(bu 2
  197601. \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)
  197602. .UNINDENT
  197603. .IP \(bu 2
  197604. \fBPR\fP \fI\%#49466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49461\fP to 2017.7.8
  197605. @ \fI2018\-08\-31 15:44:11 UTC\fP
  197606. .INDENT 2.0
  197607. .IP \(bu 2
  197608. \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)
  197609. .IP \(bu 2
  197610. 52ab2c0574 Merge pull request \fI\%#49466\fP from rallytime/bp\-49461
  197611. .IP \(bu 2
  197612. 58428003b1 Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  197613. .UNINDENT
  197614. .IP \(bu 2
  197615. \fBPR\fP \fI\%#49284\fP: (\fI\%twangboy\fP) Fix path to libsodium tarball
  197616. @ \fI2018\-08\-23 17:19:24 UTC\fP
  197617. .INDENT 2.0
  197618. .IP \(bu 2
  197619. 1bbe7df6c4 Merge pull request \fI\%#49284\fP from twangboy/fix_installer_osx
  197620. .IP \(bu 2
  197621. a112eaa597 Fix path to libsodium tarball
  197622. .UNINDENT
  197623. .IP \(bu 2
  197624. \fBPR\fP \fI\%#49272\fP: (\fI\%twangboy\fP) Add 64 bit binaries for KB2999226 to the x86 installer
  197625. @ \fI2018\-08\-23 14:27:09 UTC\fP
  197626. .INDENT 2.0
  197627. .IP \(bu 2
  197628. e0e8779985 Merge pull request \fI\%#49272\fP from twangboy/fix_installer_more
  197629. .IP \(bu 2
  197630. a8f054b2d2 Add 64bit binaries for KB2999226 to the x86 installer
  197631. .UNINDENT
  197632. .IP \(bu 2
  197633. \fBPR\fP \fI\%#49218\fP: (\fI\%twangboy\fP) Fix Windows and OSX installers
  197634. @ \fI2018\-08\-21 01:10:30 UTC\fP
  197635. .INDENT 2.0
  197636. .IP \(bu 2
  197637. 0eb6ddf0e8 Merge pull request \fI\%#49218\fP from twangboy/fix_installer
  197638. .IP \(bu 2
  197639. e8a1d2f772 Add more descriptive error when KB not found
  197640. .IP \(bu 2
  197641. 71737ea687 Suppress all ui on vcredist installation
  197642. .IP \(bu 2
  197643. 7dae9bb2a1 Fix Windows and OSX installers
  197644. .UNINDENT
  197645. .IP \(bu 2
  197646. \fBPR\fP \fI\%#49116\fP: (\fI\%twangboy\fP) Fix windows installer script
  197647. @ \fI2018\-08\-14 17:09:35 UTC\fP
  197648. .INDENT 2.0
  197649. .IP \(bu 2
  197650. e484f261ee Merge pull request \fI\%#49116\fP from twangboy/fix_installer
  197651. .IP \(bu 2
  197652. 1227095c5d Add nonfatal switch to VCRedist
  197653. .UNINDENT
  197654. .IP \(bu 2
  197655. \fBPR\fP \fI\%#49113\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.8 release notes
  197656. @ \fI2018\-08\-14 15:03:16 UTC\fP
  197657. .INDENT 2.0
  197658. .IP \(bu 2
  197659. 0b9f2f8884 Merge pull request \fI\%#49113\fP from Ch3LL/rn_7.8
  197660. .IP \(bu 2
  197661. f6b70bb653 Add changelog to 2017.7.8 release notes
  197662. .UNINDENT
  197663. .IP \(bu 2
  197664. \fBPR\fP \fI\%#49051\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49046\fP to 2017.7.8
  197665. @ \fI2018\-08\-10 17:19:18 UTC\fP
  197666. .INDENT 2.0
  197667. .IP \(bu 2
  197668. \fBPR\fP \fI\%#49046\fP: (\fI\%garethgreenaway\fP) [2017.7] Another fix to tests/integration/modules/test_service.py (refs: \fI\%#49051\fP)
  197669. .IP \(bu 2
  197670. 01cf2c71ff Merge pull request \fI\%#49051\fP from rallytime/bp\-49046
  197671. .IP \(bu 2
  197672. fc0817cb35 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  197673. .UNINDENT
  197674. .IP \(bu 2
  197675. \fBPR\fP \fI\%#49044\fP: (\fI\%Ch3LL\fP) increase timeout on vultr cloud integration test
  197676. @ \fI2018\-08\-10 01:28:17 UTC\fP
  197677. .INDENT 2.0
  197678. .IP \(bu 2
  197679. 189e28691f Merge pull request \fI\%#49044\fP from Ch3LL/vultr_test
  197680. .IP \(bu 2
  197681. 0dedfae4d1 increase timeout on vultr cloud integration test
  197682. .UNINDENT
  197683. .IP \(bu 2
  197684. \fBPR\fP \fI\%#49042\fP: (\fI\%rallytime\fP) Mark a jinja template test as flaky
  197685. @ \fI2018\-08\-09 21:05:54 UTC\fP
  197686. .INDENT 2.0
  197687. .IP \(bu 2
  197688. c606a32cf2 Merge pull request \fI\%#49042\fP from rallytime/flaky\-jinja\-test
  197689. .IP \(bu 2
  197690. a43d9b4ba6 Mark a jinja template test as flaky
  197691. .UNINDENT
  197692. .IP \(bu 2
  197693. \fBPR\fP \fI\%#49041\fP: (\fI\%Ch3LL\fP) [2017.7.8] backport PR \fI\%#48212\fP
  197694. @ \fI2018\-08\-09 21:05:27 UTC\fP
  197695. .INDENT 2.0
  197696. .IP \(bu 2
  197697. \fBPR\fP \fI\%#48212\fP: (\fI\%Ch3LL\fP) Fix python3 ec2 salt\-cloud TypeError when installing salt (refs: \fI\%#49041\fP)
  197698. .IP \(bu 2
  197699. 6415b6f73b Merge pull request \fI\%#49041\fP from Ch3LL/ec2_fix
  197700. .IP \(bu 2
  197701. cf7f2459b8 [2017.7.8] backport PR \fI\%#48212\fP
  197702. .UNINDENT
  197703. .IP \(bu 2
  197704. \fBPR\fP \fI\%#49030\fP: (\fI\%rallytime\fP) Update netapi client tests
  197705. @ \fI2018\-08\-09 17:11:14 UTC\fP
  197706. .INDENT 2.0
  197707. .IP \(bu 2
  197708. 1db036406b Merge pull request \fI\%#49030\fP from rallytime/update\-client\-tests
  197709. .IP \(bu 2
  197710. f08ee6c6ae Update netapi client tests
  197711. .UNINDENT
  197712. .IP \(bu 2
  197713. \fBPR\fP \fI\%#49024\fP: (\fI\%rallytime\fP) Fix test error in test_compiler jinja check
  197714. @ \fI2018\-08\-09 12:43:23 UTC\fP
  197715. .INDENT 2.0
  197716. .IP \(bu 2
  197717. \fBPR\fP \fI\%#49002\fP: (\fI\%rallytime\fP) Skip test_jinja_deep_error on Debian 8 (refs: \fI\%#49024\fP)
  197718. .IP \(bu 2
  197719. f73ba21bc7 Merge pull request \fI\%#49024\fP from rallytime/fix\-deb\-test
  197720. .IP \(bu 2
  197721. a9c16d9137 Fix test error in test_compiler jinja check
  197722. .UNINDENT
  197723. .IP \(bu 2
  197724. \fBPR\fP \fI\%#49020\fP: (\fI\%rallytime\fP) Make grains integration test more robust
  197725. @ \fI2018\-08\-08 20:59:18 UTC\fP
  197726. .INDENT 2.0
  197727. .IP \(bu 2
  197728. 6b6d68c615 Merge pull request \fI\%#49020\fP from rallytime/fix\-grains\-test
  197729. .IP \(bu 2
  197730. f72a3ac6be Make grains integration test more robust
  197731. .UNINDENT
  197732. .IP \(bu 2
  197733. \fBPR\fP \fI\%#49002\fP: (\fI\%rallytime\fP) Skip test_jinja_deep_error on Debian 8 (refs: \fI\%#49024\fP)
  197734. @ \fI2018\-08\-08 19:18:39 UTC\fP
  197735. .INDENT 2.0
  197736. .IP \(bu 2
  197737. 92d6c25c7f Merge pull request \fI\%#49002\fP from rallytime/skip\-jinja\-deep\-error\-test
  197738. .IP \(bu 2
  197739. 23b66ef8bb Skip test_jinja_deep_error on Debian 8
  197740. .UNINDENT
  197741. .IP \(bu 2
  197742. \fBPR\fP \fI\%#48999\fP: (\fI\%rallytime\fP) Update expected return value in boto test
  197743. @ \fI2018\-08\-08 14:42:15 UTC\fP
  197744. .INDENT 2.0
  197745. .IP \(bu 2
  197746. 41d9f11eb3 Merge pull request \fI\%#48999\fP from rallytime/fix\-boto\-test
  197747. .IP \(bu 2
  197748. d0136b1be5 Update expected return value in boto test
  197749. .UNINDENT
  197750. .IP \(bu 2
  197751. \fBPR\fP \fI\%#48976\fP: (\fI\%rallytime\fP) Skip unreliable tornado tests
  197752. @ \fI2018\-08\-07 18:55:25 UTC\fP
  197753. .INDENT 2.0
  197754. .IP \(bu 2
  197755. a1e54634dc Merge pull request \fI\%#48976\fP from rallytime/tornado
  197756. .IP \(bu 2
  197757. 0bd838ab6c Skip unreliable tornado tests
  197758. .UNINDENT
  197759. .IP \(bu 2
  197760. \fBPR\fP \fI\%#48979\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48959\fP to 2017.7.8
  197761. @ \fI2018\-08\-07 18:11:53 UTC\fP
  197762. .INDENT 2.0
  197763. .IP \(bu 2
  197764. \fBPR\fP \fI\%#48959\fP: (\fI\%rallytime\fP) Mark some more tests as flaky (refs: \fI\%#48979\fP)
  197765. .IP \(bu 2
  197766. 22713be9c1 Merge pull request \fI\%#48979\fP from rallytime/bp\-48959
  197767. .IP \(bu 2
  197768. aaf986d728 Mark one grains test as flaky & convert to pytest notation
  197769. .IP \(bu 2
  197770. e7e5abcf48 Mark 2 matcher tests as flaky
  197771. .UNINDENT
  197772. .IP \(bu 2
  197773. \fBPR\fP \fI\%#48970\fP: (\fI\%Ch3LL\fP) [2017.7.8] Backport \fI\%#48962\fP
  197774. @ \fI2018\-08\-07 15:01:57 UTC\fP
  197775. .INDENT 2.0
  197776. .IP \(bu 2
  197777. \fBPR\fP \fI\%#48962\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing tests/integration/modules/test_service.py (refs: \fI\%#48970\fP)
  197778. .IP \(bu 2
  197779. 03aa0e49b0 Merge pull request \fI\%#48970\fP from Ch3LL/back_48962
  197780. .IP \(bu 2
  197781. 3ce1b8a3c9 Update the elif block to only be true for versions below Debian 9.
  197782. .UNINDENT
  197783. .IP \(bu 2
  197784. \fBPR\fP \fI\%#48968\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.8 release
  197785. @ \fI2018\-08\-07 14:29:08 UTC\fP
  197786. .INDENT 2.0
  197787. .IP \(bu 2
  197788. e6cea5e3c7 Merge pull request \fI\%#48968\fP from rallytime/man\-pages
  197789. .IP \(bu 2
  197790. 64fe3be41a Update man pages for 2017.7.8 release
  197791. .UNINDENT
  197792. .IP \(bu 2
  197793. \fBPR\fP \fI\%#48950\fP: (\fI\%KaiSforza\fP) Added a quote to kitchen Jenkinsfiles
  197794. @ \fI2018\-08\-06 14:29:08 UTC\fP
  197795. .INDENT 2.0
  197796. .IP \(bu 2
  197797. 848d583438 Merge pull request \fI\%#48950\fP from KaiSforza/kitchenfix\-2017.7
  197798. .IP \(bu 2
  197799. 5242cb143a Added a quote to kitchen Jenkinsfiles
  197800. .UNINDENT
  197801. .IP \(bu 2
  197802. \fBPR\fP \fI\%#48943\fP: (\fI\%rallytime\fP) Mark some shell and runner integration tests as flaky
  197803. @ \fI2018\-08\-06 13:08:14 UTC\fP
  197804. .INDENT 2.0
  197805. .IP \(bu 2
  197806. 928d688d65 Merge pull request \fI\%#48943\fP from rallytime/flaky\-tests
  197807. .IP \(bu 2
  197808. 668da57ab9 Mark some shell and runner integration tests as flaky
  197809. .UNINDENT
  197810. .IP \(bu 2
  197811. \fBPR\fP \fI\%#48940\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48852\fP to 2017.7
  197812. @ \fI2018\-08\-05 21:32:26 UTC\fP
  197813. .INDENT 2.0
  197814. .IP \(bu 2
  197815. \fBPR\fP \fI\%#48852\fP: (\fI\%KaiSforza\fP) Record all the artifacts from the build (refs: \fI\%#48940\fP)
  197816. .IP \(bu 2
  197817. cd42510d3a Merge pull request \fI\%#48940\fP from rallytime/bp\-48852
  197818. .IP \(bu 2
  197819. fa4ef92e79 Record all the artifacts from the build
  197820. .UNINDENT
  197821. .IP \(bu 2
  197822. \fBPR\fP \fI\%#48935\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to test_pkg.test_pkg_015_installed_held
  197823. @ \fI2018\-08\-05 19:47:39 UTC\fP
  197824. .INDENT 2.0
  197825. .IP \(bu 2
  197826. 43649a68be Merge pull request \fI\%#48935\fP from garethgreenaway/1045_test_pkg_015_installed_held_centos
  197827. .IP \(bu 2
  197828. 0bb10107b6 Merge branch \(aq2017.7\(aq into 1045_test_pkg_015_installed_held_centos
  197829. .IP \(bu 2
  197830. 24d5e6a22f Fixing the test_pkg_015_installed_held test to be able to successfully run on CentOS
  197831. .UNINDENT
  197832. .IP \(bu 2
  197833. \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)
  197834. .IP \(bu 2
  197835. \fBPR\fP \fI\%#47100\fP: (\fI\%gtmanfred\fP) Allow for not being prompted to supply a password to deploy keys to a…
  197836. @ \fI2018\-08\-05 19:12:58 UTC\fP
  197837. .INDENT 2.0
  197838. .IP \(bu 2
  197839. 2421e2a570 Merge pull request \fI\%#47100\fP from gtmanfred/ssh
  197840. .IP \(bu 2
  197841. 5b443af7ae add key\-deploy test
  197842. .IP \(bu 2
  197843. a131c9beeb Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh
  197844. .UNINDENT
  197845. .IP \(bu 2
  197846. \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)
  197847. .IP \(bu 2
  197848. \fBPR\fP \fI\%#48891\fP: (\fI\%damon\-atkins\fP) win_pkg: Fix issue introduced in Jan 2018 DisplayVersion missing should result…
  197849. @ \fI2018\-08\-05 18:53:47 UTC\fP
  197850. .INDENT 2.0
  197851. .IP \(bu 2
  197852. d541bd6446 Merge pull request \fI\%#48891\fP from damon\-atkins/2017.7_win_pkg.list_pkgs_not_found
  197853. .IP \(bu 2
  197854. a4af1dbfb1 Fix win_pkg issues introduced Jan 2018. If DisplayVersion does not exist it should return version as "Not Found"
  197855. .UNINDENT
  197856. .IP \(bu 2
  197857. \fBISSUE\fP \fI\%#27056\fP: (\fI\%oogali\fP) pkgng provider on FreeBSD does not do BATCH=yes (refs: \fI\%#48730\fP, \fI\%#29909\fP)
  197858. .IP \(bu 2
  197859. \fBPR\fP \fI\%#48896\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48730\fP to 2017.7
  197860. @ \fI2018\-08\-05 18:20:40 UTC\fP
  197861. .INDENT 2.0
  197862. .IP \(bu 2
  197863. \fBPR\fP \fI\%#48730\fP: (\fI\%fzipi\fP) Fix batch install on FreeBSD using pkgng (refs: \fI\%#48896\fP)
  197864. .IP \(bu 2
  197865. \fBPR\fP \fI\%#29909\fP: (\fI\%abednarik\fP) FreeBSD pkgng fix for non\-interactive install. (refs: \fI\%#48730\fP)
  197866. .IP \(bu 2
  197867. \fBPR\fP \fI\%#29907\fP: (\fI\%bmcorser\fP) Presumably what was meant (refs: \fI\%#48730\fP)
  197868. .IP \(bu 2
  197869. 5f6a56f5dc Merge pull request \fI\%#48896\fP from rallytime/bp\-48730
  197870. .IP \(bu 2
  197871. 57aa204c9d Merge branch \(aq2017.7\(aq into bp\-48730
  197872. .IP \(bu 2
  197873. 4995922584 Forgot variable in signature
  197874. .IP \(bu 2
  197875. 0503bc18b6 Fix batch install using pkgng
  197876. .UNINDENT
  197877. .IP \(bu 2
  197878. \fBPR\fP \fI\%#48933\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to test_service_disable_doesnot_exist
  197879. @ \fI2018\-08\-05 14:29:43 UTC\fP
  197880. .INDENT 2.0
  197881. .IP \(bu 2
  197882. 0c64bba865 Merge pull request \fI\%#48933\fP from garethgreenaway/1022_debian_8_failing_service\-test
  197883. .IP \(bu 2
  197884. 280d1d2ad2 Fixing failing test, integration.modules.test_service.ServiceModuleTest.test_service_disable_doesnot_exist, on Debian 8 and higher.
  197885. .UNINDENT
  197886. .IP \(bu 2
  197887. \fBPR\fP \fI\%#48922\fP: (\fI\%rallytime\fP) Update backticks on job_cache docs
  197888. @ \fI2018\-08\-03 21:05:46 UTC\fP
  197889. .INDENT 2.0
  197890. .IP \(bu 2
  197891. 0c3d2c6a09 Merge pull request \fI\%#48922\fP from rallytime/cache\-doc\-error
  197892. .IP \(bu 2
  197893. 8ca89df7e8 Update backticks on job_cache docs
  197894. .UNINDENT
  197895. .IP \(bu 2
  197896. \fBPR\fP \fI\%#48866\fP: (\fI\%Ch3LL\fP) Add cmd module integration tests for windows and fix space in path issue
  197897. @ \fI2018\-08\-03 21:03:33 UTC\fP
  197898. .INDENT 2.0
  197899. .IP \(bu 2
  197900. 8d1fc4f8e5 Merge pull request \fI\%#48866\fP from Ch3LL/cmd_win_tests
  197901. .IP \(bu 2
  197902. 905da13653 Merge branch \(aq2017.7\(aq into cmd_win_tests
  197903. .UNINDENT
  197904. .IP \(bu 2
  197905. \fBPR\fP \fI\%#48920\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48904\fP to 2017.7
  197906. @ \fI2018\-08\-03 15:17:07 UTC\fP
  197907. .INDENT 2.0
  197908. .IP \(bu 2
  197909. \fBPR\fP \fI\%#48904\fP: (\fI\%KaiSforza\fP) No rehashing in parallel (refs: \fI\%#48920\fP)
  197910. .IP \(bu 2
  197911. 57d58e7541 Merge pull request \fI\%#48920\fP from rallytime/bp\-48904\-2017.7
  197912. .IP \(bu 2
  197913. a55f92954a No rehashing in parallel
  197914. .UNINDENT
  197915. .IP \(bu 2
  197916. \fBPR\fP \fI\%#48876\fP: (\fI\%Vaelatern\fP) Make IP_LEARNING optional
  197917. @ \fI2018\-08\-02 19:30:24 UTC\fP
  197918. .INDENT 2.0
  197919. .IP \(bu 2
  197920. e79ccb35b1 Merge pull request \fI\%#48876\fP from Vaelatern/make\-network\-learning\-optional
  197921. .IP \(bu 2
  197922. a4905b0e5d Make IP_LEARNING optional
  197923. .UNINDENT
  197924. .IP \(bu 2
  197925. \fBPR\fP \fI\%#48890\fP: (\fI\%Ch3LL\fP) add sleep in test_cmd integration test
  197926. @ \fI2018\-08\-02 19:15:08 UTC\fP
  197927. .INDENT 2.0
  197928. .IP \(bu 2
  197929. f8bfab4f9f Merge pull request \fI\%#48890\fP from Ch3LL/cmd_test
  197930. .IP \(bu 2
  197931. acda4ed9ab add sleep in test_cmd integration test
  197932. .UNINDENT
  197933. .IP \(bu 2
  197934. \fBPR\fP \fI\%#48885\fP: (\fI\%rallytime\fP) Mark shadow module integration test as flaky
  197935. @ \fI2018\-08\-02 19:04:35 UTC\fP
  197936. .INDENT 2.0
  197937. .IP \(bu 2
  197938. 52722f6ded Merge pull request \fI\%#48885\fP from rallytime/flaky\-tests\-shadow
  197939. .IP \(bu 2
  197940. da871a2d57 Mark shadow module integration test as flaky
  197941. .UNINDENT
  197942. .IP \(bu 2
  197943. \fBPR\fP \fI\%#48884\fP: (\fI\%rallytime\fP) Separate compound matcher tests into individual tests
  197944. @ \fI2018\-08\-02 19:04:03 UTC\fP
  197945. .INDENT 2.0
  197946. .IP \(bu 2
  197947. bf0895656e Merge pull request \fI\%#48884\fP from rallytime/flaky\-tests\-matchers
  197948. .IP \(bu 2
  197949. 38d9eae537 Merge branch \(aq2017.7\(aq into flaky\-tests\-matchers
  197950. .UNINDENT
  197951. .IP \(bu 2
  197952. \fBPR\fP \fI\%#48868\fP: (\fI\%terminalmage\fP) Fix race when SIGTERM/SIGINT received while lazyloading a module
  197953. @ \fI2018\-08\-02 17:13:34 UTC\fP
  197954. .INDENT 2.0
  197955. .IP \(bu 2
  197956. a567666938 Merge pull request \fI\%#48868\fP from terminalmage/fix\-loader\-race
  197957. .IP \(bu 2
  197958. 5f1169b9a2 Fix race when SIGTERM/SIGINT received while lazyloading a module
  197959. .UNINDENT
  197960. .IP \(bu 2
  197961. \fBPR\fP \fI\%#48883\fP: (\fI\%terminalmage\fP) Fix failing git worktree tests
  197962. @ \fI2018\-08\-02 16:51:40 UTC\fP
  197963. .INDENT 2.0
  197964. .IP \(bu 2
  197965. 0ca0b6f2f2 Merge pull request \fI\%#48883\fP from terminalmage/salt\-jenkins\-1023
  197966. .IP \(bu 2
  197967. c61f75cb50 Fix failing git worktree tests
  197968. .INDENT 2.0
  197969. .INDENT 3.5
  197970. .INDENT 0.0
  197971. .IP \(bu 2
  197972. 3660dff13c Separate compound matcher tests into individual tests
  197973. .UNINDENT
  197974. .UNINDENT
  197975. .UNINDENT
  197976. .UNINDENT
  197977. .IP \(bu 2
  197978. \fBPR\fP \fI\%#48869\fP: (\fI\%Ch3LL\fP) Catch socket.error exception in testprogram
  197979. @ \fI2018\-08\-02 14:19:22 UTC\fP
  197980. .INDENT 2.0
  197981. .IP \(bu 2
  197982. a84f5155a1 Merge pull request \fI\%#48869\fP from Ch3LL/mac_shell_tests
  197983. .IP \(bu 2
  197984. 3734b1ec89 Catch socket.error exception in testprogram
  197985. .UNINDENT
  197986. .IP \(bu 2
  197987. \fBPR\fP \fI\%#48867\fP: (\fI\%rallytime\fP) Skip unreliable tornado test.
  197988. @ \fI2018\-08\-01 21:07:07 UTC\fP
  197989. .INDENT 2.0
  197990. .IP \(bu 2
  197991. 7f56b8bf44 Merge pull request \fI\%#48867\fP from rallytime/skip\-tornado\-test
  197992. .IP \(bu 2
  197993. 7320aa9104 Skip unreliable tornado test.
  197994. .IP \(bu 2
  197995. 3be11e06fe Add docs for new escape kwarg
  197996. .IP \(bu 2
  197997. 391bb8a411 use a specific path for just the cmd._run call
  197998. .IP \(bu 2
  197999. 62c66ba489 make sure we lower the check on shell
  198000. .IP \(bu 2
  198001. 9312a993a5 Add cmd module integration tests for windows and fix space in path issue
  198002. .UNINDENT
  198003. .IP \(bu 2
  198004. \fBPR\fP \fI\%#48853\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48850\fP to 2017.7
  198005. @ \fI2018\-07\-31 20:21:49 UTC\fP
  198006. .INDENT 2.0
  198007. .IP \(bu 2
  198008. \fBPR\fP \fI\%#48850\fP: (\fI\%rallytime\fP) Skip tests in integration.shell.test_master (refs: \fI\%#48853\fP)
  198009. .IP \(bu 2
  198010. 05f2d65de3 Merge pull request \fI\%#48853\fP from rallytime/bp\-48850
  198011. .IP \(bu 2
  198012. 3c33ee554a Skip tests in integration.shell.test_master
  198013. .UNINDENT
  198014. .IP \(bu 2
  198015. \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)
  198016. .IP \(bu 2
  198017. \fBPR\fP \fI\%#48426\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to states/pkg.py
  198018. @ \fI2018\-07\-31 20:18:05 UTC\fP
  198019. .INDENT 2.0
  198020. .IP \(bu 2
  198021. 8a1285239a Merge pull request \fI\%#48426\fP from garethgreenaway/46689_fixing_pkg_held_when_package_is_installed
  198022. .IP \(bu 2
  198023. 9b0f5dd212 Fixing identation, removing some unnecessary conditionals.
  198024. .IP \(bu 2
  198025. 727964ab55 One last cleanup.
  198026. .IP \(bu 2
  198027. 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.
  198028. .IP \(bu 2
  198029. 16fb6ae635 Make sure pkg.hold and pkg.unhold are available before running the test.
  198030. .IP \(bu 2
  198031. 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.
  198032. .UNINDENT
  198033. .IP \(bu 2
  198034. \fBISSUE\fP \fI\%#47689\fP: (\fI\%OrlandoArcapix\fP) Poor performance of pip.installed when given a list of packages (refs: \fI\%#47734\fP)
  198035. .IP \(bu 2
  198036. \fBPR\fP \fI\%#47734\fP: (\fI\%OrlandoArcapix\fP) \fI\%#47689\fP improve run\-speed of pip package state
  198037. @ \fI2018\-07\-31 19:15:35 UTC\fP
  198038. .INDENT 2.0
  198039. .IP \(bu 2
  198040. c8e69431ff Merge pull request \fI\%#47734\fP from OrlandoArcapix/Issue47689\-pip\-state\-performance
  198041. .IP \(bu 2
  198042. 662bd1f780 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198043. .IP \(bu 2
  198044. 66936b4f41 Changed string comparison in pip test to match new confirmation string \- ref PR \fI\%#47734\fP\&.
  198045. .IP \(bu 2
  198046. bb5939d6ef Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198047. .IP \(bu 2
  198048. d6a49ae41c Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198049. .IP \(bu 2
  198050. d4083fc9d1 Merge branch \(aqIssue47689\-pip\-state\-performance\(aq of github.com:OrlandoArcapix/salt into Issue47689\-pip\-state\-performance
  198051. .INDENT 2.0
  198052. .IP \(bu 2
  198053. 779b5fa785 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198054. .UNINDENT
  198055. .IP \(bu 2
  198056. f3653349ab Removed whitespaces at end of added comments lines
  198057. .IP \(bu 2
  198058. db11f2ff4b Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198059. .IP \(bu 2
  198060. eac0178de2 Ref: \fI\%#47689\fP \- document additional kwarg passed to pip._check_if_installed function
  198061. .IP \(bu 2
  198062. 0d19803106 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  198063. .IP \(bu 2
  198064. d3678bf2f3 \fI\%#47689\fP fix lint errors
  198065. .IP \(bu 2
  198066. 4fec8f6bcc \fI\%#47698\fP improve run\-speed of pip package state checks by only loading the current package list once when checking multiple packages
  198067. .UNINDENT
  198068. .IP \(bu 2
  198069. \fBPR\fP \fI\%#48844\fP: (\fI\%AVeenstra\fP) Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  198070. @ \fI2018\-07\-31 17:20:27 UTC\fP
  198071. .INDENT 2.0
  198072. .IP \(bu 2
  198073. 83a5b3cc47 Merge pull request \fI\%#48844\fP from AVeenstra/fix\-python3\-incompatibility
  198074. .IP \(bu 2
  198075. f238779a62 Merge branch \(aq2017.7\(aq into fix\-python3\-incompatibility
  198076. .IP \(bu 2
  198077. 6b1805afc6 Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  198078. .UNINDENT
  198079. .IP \(bu 2
  198080. \fBISSUE\fP \fI\%#48637\fP: (\fI\%slaws\fP) state.file.retention_schedule does not ignore relative directory when using getmtime() (refs: \fI\%#48662\fP)
  198081. .IP \(bu 2
  198082. \fBPR\fP \fI\%#48662\fP: (\fI\%slaws\fP) Excluding relative dirs in state.file.retention_schedule
  198083. @ \fI2018\-07\-31 16:15:09 UTC\fP
  198084. .INDENT 2.0
  198085. .IP \(bu 2
  198086. 136ff6735a Merge pull request \fI\%#48662\fP from slaws/fix\-retention\-schedule\-48637
  198087. .IP \(bu 2
  198088. 3c8f5f5b3d pylint fix
  198089. .IP \(bu 2
  198090. 5539eff39e Excluding relative dirs in state.file.retention_schedule
  198091. .UNINDENT
  198092. .IP \(bu 2
  198093. \fBISSUE\fP \fI\%#48818\fP: (\fI\%guettli\fP) Broken Link in Docs (refs: \fI\%#48840\fP)
  198094. .IP \(bu 2
  198095. \fBPR\fP \fI\%#48840\fP: (\fI\%gtmanfred\fP) fix links in pkg doc.
  198096. @ \fI2018\-07\-31 16:13:00 UTC\fP
  198097. .INDENT 2.0
  198098. .IP \(bu 2
  198099. 1fc04f281b Merge pull request \fI\%#48840\fP from gtmanfred/docs
  198100. .IP \(bu 2
  198101. 8d2d268c4a fix links in pkg doc.
  198102. .UNINDENT
  198103. .IP \(bu 2
  198104. \fBPR\fP \fI\%#48834\fP: (\fI\%gtmanfred\fP) read output of stringio if it is readable
  198105. @ \fI2018\-07\-31 13:40:48 UTC\fP
  198106. .INDENT 2.0
  198107. .IP \(bu 2
  198108. 0a19f845ea Merge pull request \fI\%#48834\fP from gtmanfred/slsutil
  198109. .IP \(bu 2
  198110. f9441d2bef read output of stringio if it is readable
  198111. .UNINDENT
  198112. .IP \(bu 2
  198113. \fBPR\fP \fI\%#48788\fP: (\fI\%Ch3LL\fP) Add timzeone windows integration tests and fix get_zone
  198114. @ \fI2018\-07\-27 20:14:30 UTC\fP
  198115. .INDENT 2.0
  198116. .IP \(bu 2
  198117. 2e00939a6e Merge pull request \fI\%#48788\fP from Ch3LL/timezone_windows
  198118. .IP \(bu 2
  198119. de95a6a215 add unused import to timezone test file
  198120. .IP \(bu 2
  198121. 22e424859e add unused import to import
  198122. .IP \(bu 2
  198123. 0840fc3117 disable pylint import error
  198124. .IP \(bu 2
  198125. f09d1a2c7e Add timzeon windows integration tests and fix get_zone
  198126. .UNINDENT
  198127. .IP \(bu 2
  198128. \fBPR\fP \fI\%#48742\fP: (\fI\%frogunder\fP) add windows integration tests for states.file
  198129. @ \fI2018\-07\-27 13:57:27 UTC\fP
  198130. .INDENT 2.0
  198131. .IP \(bu 2
  198132. 8e61f3dce0 Merge pull request \fI\%#48742\fP from frogunder/45014
  198133. .IP \(bu 2
  198134. f08058b043 Merge branch \(aq45014\(aq of \fI\%https://github.com/frogunder/salt\fP into 45014
  198135. .INDENT 2.0
  198136. .IP \(bu 2
  198137. 757fde70c6 Merge branch \(aq2017.7\(aq into 45014
  198138. .UNINDENT
  198139. .IP \(bu 2
  198140. 33c20c1ec0 fix tests
  198141. .IP \(bu 2
  198142. a7a914060d add windows integration tests for states.file
  198143. .UNINDENT
  198144. .IP \(bu 2
  198145. \fBISSUE\fP \fI\%#48417\fP: (\fI\%samilaine\fP) Contribution Documentation Refers to Incorrect Pylintrc (refs: \fI\%#48795\fP)
  198146. .IP \(bu 2
  198147. \fBPR\fP \fI\%#48795\fP: (\fI\%rallytime\fP) Update linting docs to contain .testing.pylintrc use
  198148. @ \fI2018\-07\-27 13:34:13 UTC\fP
  198149. .INDENT 2.0
  198150. .IP \(bu 2
  198151. d74f47b340 Merge pull request \fI\%#48795\fP from rallytime/fix\-48417
  198152. .IP \(bu 2
  198153. 5123b17ffd Update linting docs to contain .testing.pylintrc use
  198154. .UNINDENT
  198155. .IP \(bu 2
  198156. \fBPR\fP \fI\%#48789\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48783\fP to 2017.7
  198157. @ \fI2018\-07\-26 21:47:49 UTC\fP
  198158. .INDENT 2.0
  198159. .IP \(bu 2
  198160. \fBPR\fP \fI\%#48783\fP: (\fI\%KaiSforza\fP) Only run lint checks against changed files (refs: \fI\%#48789\fP)
  198161. .IP \(bu 2
  198162. \fBPR\fP \fI\%#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48783\fP)
  198163. .IP \(bu 2
  198164. bbea9ae936 Merge pull request \fI\%#48789\fP from rallytime/bp\-48783
  198165. .IP \(bu 2
  198166. 682a05bebe Threshold was wrong
  198167. .IP \(bu 2
  198168. d4ca0e3a97 test: except for OSError only
  198169. .IP \(bu 2
  198170. 4547231909 Only run lint checks against changed files
  198171. .UNINDENT
  198172. .IP \(bu 2
  198173. \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\&.
  198174. @ \fI2018\-07\-26 21:13:59 UTC\fP
  198175. .INDENT 2.0
  198176. .IP \(bu 2
  198177. 41464d4b39 Merge pull request \fI\%#48731\fP from zer0def/virt\-runner\-init\-args
  198178. .IP \(bu 2
  198179. a1fa081ad0 Documentation to missing parameters in virt.init runner.
  198180. .IP \(bu 2
  198181. 365ebdf539 Fixed \fIenable_vnc\fP runner arg being passed into \fIseed_cmd\fP module arg in \fIvirt.init\fP\&.
  198182. .UNINDENT
  198183. .IP \(bu 2
  198184. \fBPR\fP \fI\%#48749\fP: (\fI\%Ch3LL\fP) Update Saltstack Logo banner on docs.saltstack.com
  198185. @ \fI2018\-07\-25 13:05:04 UTC\fP
  198186. .INDENT 2.0
  198187. .IP \(bu 2
  198188. 169afea16a Merge pull request \fI\%#48749\fP from Ch3LL/logo_docs
  198189. .IP \(bu 2
  198190. 73b1fc29f0 Update Saltstack Logo banner on docs.saltstack.com
  198191. .UNINDENT
  198192. .IP \(bu 2
  198193. \fBPR\fP \fI\%#48743\fP: (\fI\%rallytime\fP) Update DOCBANNER with new SaltConf18 image
  198194. @ \fI2018\-07\-24 16:46:19 UTC\fP
  198195. .INDENT 2.0
  198196. .IP \(bu 2
  198197. 781c6a6c36 Merge pull request \fI\%#48743\fP from rallytime/saltconf\-ad\-2017.7
  198198. .IP \(bu 2
  198199. 6df8fd8652 Update DOCBANNER with new SaltConf18 image
  198200. .UNINDENT
  198201. .IP \(bu 2
  198202. \fBPR\fP \fI\%#48720\fP: (\fI\%Ch3LL\fP) Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  198203. @ \fI2018\-07\-23 22:32:56 UTC\fP
  198204. .INDENT 2.0
  198205. .IP \(bu 2
  198206. ce4e22224e Merge pull request \fI\%#48720\fP from Ch3LL/mac_file_path
  198207. .IP \(bu 2
  198208. 01d25fae19 Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  198209. .UNINDENT
  198210. .IP \(bu 2
  198211. \fBPR\fP \fI\%#48719\fP: (\fI\%Ch3LL\fP) Enable service if disabled before running state service tests
  198212. @ \fI2018\-07\-23 21:01:14 UTC\fP
  198213. .INDENT 2.0
  198214. .IP \(bu 2
  198215. 4b9f037d43 Merge pull request \fI\%#48719\fP from Ch3LL/service_mac_state
  198216. .IP \(bu 2
  198217. f44a2fc349 Enable service if disabled before running state service tests
  198218. .UNINDENT
  198219. .IP \(bu 2
  198220. \fBPR\fP \fI\%#48715\fP: (\fI\%rallytime\fP) [2017.7] Mark some tornado tests as flaky
  198221. @ \fI2018\-07\-23 17:27:13 UTC\fP
  198222. .INDENT 2.0
  198223. .IP \(bu 2
  198224. b2431eab10 Merge pull request \fI\%#48715\fP from rallytime/flaky\-tests
  198225. .IP \(bu 2
  198226. 7332cce567 [2017.7] Mark some tornado tests as flaky
  198227. .UNINDENT
  198228. .IP \(bu 2
  198229. \fBPR\fP \fI\%#48672\fP: (\fI\%frogunder\fP) add service enabled test
  198230. @ \fI2018\-07\-23 15:38:49 UTC\fP
  198231. .INDENT 2.0
  198232. .IP \(bu 2
  198233. 801eae3b8d Merge pull request \fI\%#48672\fP from frogunder/45012
  198234. .IP \(bu 2
  198235. 0747f2e58a add service enabled test
  198236. .UNINDENT
  198237. .IP \(bu 2
  198238. \fBPR\fP \fI\%#48691\fP: (\fI\%Ch3LL\fP) Add windows pkg module integration tests
  198239. @ \fI2018\-07\-22 20:01:30 UTC\fP
  198240. .INDENT 2.0
  198241. .IP \(bu 2
  198242. 689c231d2b Merge pull request \fI\%#48691\fP from Ch3LL/win_repo_pkg_test
  198243. .IP \(bu 2
  198244. 4b7d6d80c5 Remove unnecessary jinja in curl.sls file
  198245. .IP \(bu 2
  198246. 2bedadfadb Add windows pkg module integration tests
  198247. .UNINDENT
  198248. .IP \(bu 2
  198249. \fBISSUE\fP \fI\%#48627\fP: (\fI\%nbraud\fP) acme module\(aqs group parameter is non\-functional (refs: \fI\%#48635\fP)
  198250. .IP \(bu 2
  198251. \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)
  198252. .IP \(bu 2
  198253. \fBPR\fP \fI\%#48635\fP: (\fI\%nbraud\fP) Bug fixes in the acme module & state
  198254. @ \fI2018\-07\-22 19:53:49 UTC\fP
  198255. .INDENT 2.0
  198256. .IP \(bu 2
  198257. 83e4bba916 Merge pull request \fI\%#48635\fP from nbraud/acme
  198258. .IP \(bu 2
  198259. 3673bae9de modules/acme: explicitely ignore the \fIperms\fP return value
  198260. .IP \(bu 2
  198261. 1800a231e8 Fixup some schema expectations
  198262. .IP \(bu 2
  198263. 8c718cb417 acme: Make the private key mode configurable
  198264. .IP \(bu 2
  198265. 917dea6761 modules/acme: Use file.check_perms ret\-morphing powers
  198266. .IP \(bu 2
  198267. d2241ceb2d module/acme: Do not exit early when the certificate already exists
  198268. .IP \(bu 2
  198269. 98af0db826 modules/acme: Set the private key filemode to 0640
  198270. .UNINDENT
  198271. .IP \(bu 2
  198272. \fBPR\fP \fI\%#48345\fP: (\fI\%twangboy\fP) Fix behavior of powercfg module and state
  198273. @ \fI2018\-07\-20 17:37:13 UTC\fP
  198274. .INDENT 2.0
  198275. .IP \(bu 2
  198276. 85991680c8 Merge pull request \fI\%#48345\fP from twangboy/fix_48169
  198277. .IP \(bu 2
  198278. ead19725b6 Merge branch \(aq2017.7\(aq into fix_48169
  198279. .IP \(bu 2
  198280. 653fbcb383 Fix some docs errata
  198281. .IP \(bu 2
  198282. 8898e5ff11 Add warn_until Fluorine
  198283. .IP \(bu 2
  198284. 707906ac15 Fix unit.state.test_powercfg
  198285. .IP \(bu 2
  198286. 32c5014eb6 Fix unit tests
  198287. .IP \(bu 2
  198288. 0d9c56e540 Add some more logging
  198289. .IP \(bu 2
  198290. b20453de9f Use minutes to set
  198291. .IP \(bu 2
  198292. 7dc7eb11c2 Fix documentation to denote seconds when setting
  198293. .UNINDENT
  198294. .IP \(bu 2
  198295. \fBPR\fP \fI\%#48656\fP: (\fI\%Ch3LL\fP) Add windows ip module integration tests
  198296. @ \fI2018\-07\-20 14:57:45 UTC\fP
  198297. .INDENT 2.0
  198298. .IP \(bu 2
  198299. 96447ce541 Merge pull request \fI\%#48656\fP from Ch3LL/windows_ip_mod
  198300. .IP \(bu 2
  198301. 90c3f568b1 Add windows ip module integration tests
  198302. .UNINDENT
  198303. .IP \(bu 2
  198304. \fBPR\fP \fI\%#48638\fP: (\fI\%twangboy\fP) Remove vcredist 2015 from Py3 installer
  198305. @ \fI2018\-07\-20 14:56:40 UTC\fP
  198306. .INDENT 2.0
  198307. .IP \(bu 2
  198308. 0c5fff3dc8 Merge pull request \fI\%#48638\fP from twangboy/fix_vcredist
  198309. .IP \(bu 2
  198310. e30d17099d Use goto instead of if statement
  198311. .IP \(bu 2
  198312. e1042fa084 Remove vcredist for Py3
  198313. .UNINDENT
  198314. .IP \(bu 2
  198315. \fBPR\fP \fI\%#48664\fP: (\fI\%Ch3LL\fP) [2017.7] Fix service.disabled test for macosx
  198316. @ \fI2018\-07\-20 14:32:56 UTC\fP
  198317. .INDENT 2.0
  198318. .IP \(bu 2
  198319. 1ebd96d909 Merge pull request \fI\%#48664\fP from Ch3LL/srv_disable_mac
  198320. .IP \(bu 2
  198321. f1fbfad387 move the disable call up in try block
  198322. .IP \(bu 2
  198323. f60d21bda4 reverse assertion order for service disable test
  198324. .IP \(bu 2
  198325. 3727d1b3b9 switch try/except to match 2018.3
  198326. .IP \(bu 2
  198327. fb953c2369 [2017.7] Fix service.disabled test for macosx
  198328. .UNINDENT
  198329. .IP \(bu 2
  198330. \fBPR\fP \fI\%#48625\fP: (\fI\%Ch3LL\fP) Follow up to PR \fI\%#48555\fP
  198331. @ \fI2018\-07\-20 14:27:55 UTC\fP
  198332. .INDENT 2.0
  198333. .IP \(bu 2
  198334. \fBPR\fP \fI\%#48555\fP: (\fI\%Ch3LL\fP) Fix state.sls_id not running on ssh minion (refs: \fI\%#48625\fP)
  198335. .IP \(bu 2
  198336. 3da3cf2f3f Merge pull request \fI\%#48625\fP from Ch3LL/ssh_state
  198337. .IP \(bu 2
  198338. f590eb2b02 Update state.py
  198339. .IP \(bu 2
  198340. 9790ee3d0d Follow up to PR \fI\%#48555\fP
  198341. .UNINDENT
  198342. .IP \(bu 2
  198343. \fBPR\fP \fI\%#48673\fP: (\fI\%Ch3LL\fP) Use different pub and ret ports for testprogram integration tests
  198344. @ \fI2018\-07\-20 14:11:51 UTC\fP
  198345. .INDENT 2.0
  198346. .IP \(bu 2
  198347. 33812f78f1 Merge pull request \fI\%#48673\fP from Ch3LL/mac_port
  198348. .IP \(bu 2
  198349. 87dd85a220 Use different pub and ret ports for testprogram integration tests
  198350. .UNINDENT
  198351. .IP \(bu 2
  198352. \fBPR\fP \fI\%#48675\fP: (\fI\%Ch3LL\fP) Fix mac service.disable tests
  198353. @ \fI2018\-07\-20 14:09:41 UTC\fP
  198354. .INDENT 2.0
  198355. .IP \(bu 2
  198356. 5f6a7c4d89 Merge pull request \fI\%#48675\fP from Ch3LL/mac_disable
  198357. .IP \(bu 2
  198358. c78efab828 Fix mac service.disable tests
  198359. .UNINDENT
  198360. .IP \(bu 2
  198361. \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)
  198362. .IP \(bu 2
  198363. \fBPR\fP \fI\%#48658\fP: (\fI\%wyardley\fP) Improve handling of json output (\fI\%#43138\fP)
  198364. @ \fI2018\-07\-20 14:08:34 UTC\fP
  198365. .INDENT 2.0
  198366. .IP \(bu 2
  198367. \fBPR\fP \fI\%#48492\fP: (\fI\%wyardley\fP) Improve identifying json out in npm module (\fI\%#43138\fP) (refs: \fI\%#48658\fP)
  198368. .IP \(bu 2
  198369. 93d2f51d2b Merge pull request \fI\%#48658\fP from wyardley/wyardley\-npm\-json\-output\-2017
  198370. .IP \(bu 2
  198371. 7ff3c9c5ff Improve handling of npm json output (\fI\%#43138\fP)
  198372. .UNINDENT
  198373. .IP \(bu 2
  198374. \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)
  198375. .IP \(bu 2
  198376. \fBPR\fP \fI\%#48678\fP: (\fI\%OrlandoArcapix\fP) Fix for issue \fI\%#48677\fP \- return clean npm.bootstrap on no changes
  198377. @ \fI2018\-07\-20 14:07:22 UTC\fP
  198378. .INDENT 2.0
  198379. .IP \(bu 2
  198380. 3e293b0513 Merge pull request \fI\%#48678\fP from OrlandoArcapix/fix\-npm\-dryrun\-test
  198381. .IP \(bu 2
  198382. 851a404f6b Fix for issue \fI\%#48677\fP \- return True when no changes are to be made with npm.bootstrap with test=true
  198383. .UNINDENT
  198384. .IP \(bu 2
  198385. \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)
  198386. .IP \(bu 2
  198387. \fBPR\fP \fI\%#48580\fP: (\fI\%rallytime\fP) Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  198388. @ \fI2018\-07\-19 19:21:13 UTC\fP
  198389. .INDENT 2.0
  198390. .IP \(bu 2
  198391. \fBPR\fP \fI\%#37772\fP: (\fI\%bdrung\fP) Support initializing OpenSSL 1.1 (refs: \fI\%#48580\fP)
  198392. .IP \(bu 2
  198393. 07a1f6520f Merge pull request \fI\%#48580\fP from rallytime/fix\-46884
  198394. .IP \(bu 2
  198395. 736b382e91 Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  198396. .UNINDENT
  198397. .IP \(bu 2
  198398. \fBPR\fP \fI\%#48628\fP: (\fI\%terminalmage\fP) Fix NameError in testinfra module
  198399. @ \fI2018\-07\-18 21:34:03 UTC\fP
  198400. .INDENT 2.0
  198401. .IP \(bu 2
  198402. 9874429741 Merge pull request \fI\%#48628\fP from terminalmage/testinfra
  198403. .IP \(bu 2
  198404. 5ace9f01ec Fix NameError in testinfra module
  198405. .UNINDENT
  198406. .IP \(bu 2
  198407. \fBPR\fP \fI\%#48651\fP: (\fI\%gtmanfred\fP) [2017.7] handle pyzmq for python3.4
  198408. @ \fI2018\-07\-18 17:34:41 UTC\fP
  198409. .INDENT 2.0
  198410. .IP \(bu 2
  198411. 0d4c80205f Merge pull request \fI\%#48651\fP from gtmanfred/pylint\-2017.7
  198412. .IP \(bu 2
  198413. b6ee52f859 handle pyzmq for python3.4
  198414. .UNINDENT
  198415. .IP \(bu 2
  198416. \fBPR\fP \fI\%#48647\fP: (\fI\%gtmanfred\fP) [2017.7] disable checks on pylint
  198417. @ \fI2018\-07\-18 16:21:22 UTC\fP
  198418. .INDENT 2.0
  198419. .IP \(bu 2
  198420. 160ae29cf2 Merge pull request \fI\%#48647\fP from gtmanfred/pylint\-2017.7
  198421. .IP \(bu 2
  198422. ff818c4ca2 disable checks on pylint
  198423. .UNINDENT
  198424. .IP \(bu 2
  198425. \fBISSUE\fP \fI\%#46924\fP: (\fI\%chschmitt\fP) Stale custom roster from __pycache__ executed instead of changed .py file (refs: \fI\%#48593\fP)
  198426. .IP \(bu 2
  198427. \fBPR\fP \fI\%#48593\fP: (\fI\%pritambaral\fP) Fix importlib pyc loading order
  198428. @ \fI2018\-07\-17 21:06:28 UTC\fP
  198429. .INDENT 2.0
  198430. .IP \(bu 2
  198431. 47b1032efa Merge pull request \fI\%#48593\fP from pritambaral/fix/2017.7\-importlib\-pyc\-loading\-order
  198432. .IP \(bu 2
  198433. add7894dee loader: Fix suffix order when importlib is used
  198434. .UNINDENT
  198435. .IP \(bu 2
  198436. \fBPR\fP \fI\%#48630\fP: (\fI\%dubb\-b\fP) Adding options to Jenkins pipline builds
  198437. @ \fI2018\-07\-17 20:16:23 UTC\fP
  198438. .INDENT 2.0
  198439. .IP \(bu 2
  198440. 9da7b2ec8d Merge pull request \fI\%#48630\fP from dubb\-b/pipeline\-updates
  198441. .IP \(bu 2
  198442. 8594a8dd05 Adding PY_COLORS=1 as PY_COLORS = 1 instead
  198443. .IP \(bu 2
  198444. 314b0e3599 Adding PY_COLORS=1 for python programs to use ANSI Colors
  198445. .IP \(bu 2
  198446. b705e8f7a5 Adding correct spacing to options section
  198447. .IP \(bu 2
  198448. 9d8a7e07db Adding options to Jenkins pipline builds
  198449. .IP \(bu 2
  198450. \fBPR\fP \fI\%saltstack/salt#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48633\fP)
  198451. .UNINDENT
  198452. .IP \(bu 2
  198453. \fBPR\fP \fI\%#48633\fP: (\fI\%gtmanfred\fP) Revert "only run pylint on files that change"
  198454. @ \fI2018\-07\-17 18:44:03 UTC\fP
  198455. .INDENT 2.0
  198456. .IP \(bu 2
  198457. a8ae2adf64 Merge pull request \fI\%#48633\fP from saltstack/revert\-48610\-2017.7
  198458. .IP \(bu 2
  198459. bab4a769d4 Revert "only run pylint on files that change"
  198460. .UNINDENT
  198461. .IP \(bu 2
  198462. \fBPR\fP \fI\%#48614\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48562\fP to 2017.7
  198463. @ \fI2018\-07\-17 15:04:04 UTC\fP
  198464. .INDENT 2.0
  198465. .IP \(bu 2
  198466. \fBPR\fP \fI\%#48562\fP: (\fI\%basepi\fP) Add timeouts to all s3 queries (refs: \fI\%#48614\fP)
  198467. .IP \(bu 2
  198468. 6e32bb7f74 Merge pull request \fI\%#48614\fP from rallytime/bp\-48562
  198469. .IP \(bu 2
  198470. cb654bbf2c Add timeouts to all s3 queries
  198471. .UNINDENT
  198472. .IP \(bu 2
  198473. \fBISSUE\fP \fI\%#48415\fP: (\fI\%doesitblend\fP) Event.send short\-circuiting in multi\-master mode (refs: \fI\%#48588\fP)
  198474. .IP \(bu 2
  198475. \fBPR\fP \fI\%#48588\fP: (\fI\%garethgreenaway\fP) [2017.7] event send multi master
  198476. @ \fI2018\-07\-17 10:31:20 UTC\fP
  198477. .INDENT 2.0
  198478. .IP \(bu 2
  198479. 1b6e6388f8 Merge pull request \fI\%#48588\fP from garethgreenaway/48415_event_send_multi_master
  198480. .IP \(bu 2
  198481. fab25af1a9 Adding some quick documention about why we are setting ret=True following the channel.send.
  198482. .IP \(bu 2
  198483. 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.
  198484. .IP \(bu 2
  198485. 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.
  198486. .UNINDENT
  198487. .IP \(bu 2
  198488. \fBPR\fP \fI\%#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48783\fP)
  198489. @ \fI2018\-07\-17 01:36:50 UTC\fP
  198490. .INDENT 2.0
  198491. .IP \(bu 2
  198492. 24ffda49ba Merge pull request \fI\%#48610\fP from gtmanfred/2017.7
  198493. .IP \(bu 2
  198494. 779d1a3dcb only run pylint on files that change
  198495. .UNINDENT
  198496. .IP \(bu 2
  198497. \fBPR\fP \fI\%#48584\fP: (\fI\%Ch3LL\fP) Fix grp import for mac in test_user integration test
  198498. @ \fI2018\-07\-16 19:28:13 UTC\fP
  198499. .INDENT 2.0
  198500. .IP \(bu 2
  198501. 5391dd0a8d Merge pull request \fI\%#48584\fP from Ch3LL/mac_user_grp
  198502. .IP \(bu 2
  198503. 585ee9db90 Fix grp import for mac in test_user integration test
  198504. .UNINDENT
  198505. .IP \(bu 2
  198506. \fBPR\fP \fI\%#48555\fP: (\fI\%Ch3LL\fP) Fix state.sls_id not running on ssh minion (refs: \fI\%#48625\fP)
  198507. @ \fI2018\-07\-16 13:24:41 UTC\fP
  198508. .INDENT 2.0
  198509. .IP \(bu 2
  198510. 61572b6780 Merge pull request \fI\%#48555\fP from Ch3LL/ssh_id
  198511. .IP \(bu 2
  198512. f69932f506 fix pylint
  198513. .IP \(bu 2
  198514. 70e36764ee Add more tests for salt\-ssh state.sls_id
  198515. .IP \(bu 2
  198516. dab80e805c Fix state.sls_id to run on ssh minion and not master
  198517. .UNINDENT
  198518. .IP \(bu 2
  198519. \fBPR\fP \fI\%#48583\fP: (\fI\%Ch3LL\fP) Add flaky decorator to mac_system and mac_timezone tests
  198520. @ \fI2018\-07\-13 19:56:40 UTC\fP
  198521. .INDENT 2.0
  198522. .IP \(bu 2
  198523. aa6dcf39e8 Merge pull request \fI\%#48583\fP from Ch3LL/mac_flaky_tests
  198524. .IP \(bu 2
  198525. 4ba2299a87 import flaky decorator on mac tests
  198526. .IP \(bu 2
  198527. 811220b41e Add flaky decorator to mac_system and mac_timezone tests
  198528. .UNINDENT
  198529. .IP \(bu 2
  198530. \fBPR\fP \fI\%#48534\fP: (\fI\%xetix\fP) Fix behaviour of function latest_version in zypper module when multip…
  198531. @ \fI2018\-07\-13 19:56:05 UTC\fP
  198532. .INDENT 2.0
  198533. .IP \(bu 2
  198534. 6973152057 Merge pull request \fI\%#48534\fP from xetix/fix\-zypper\-latest_version
  198535. .IP \(bu 2
  198536. 9985f0b4c1 Lint: remove extra blank line
  198537. .IP \(bu 2
  198538. 5fbead8a36 Merge branch \(aq2017.7\(aq into fix\-zypper\-latest_version
  198539. .IP \(bu 2
  198540. 56ac449271 Merge branch \(aqfix\-zypper\-latest_version\(aq of \fI\%https://github.com/xetix/salt\fP into fix\-zypper\-latest_version
  198541. .INDENT 2.0
  198542. .IP \(bu 2
  198543. 44e87f5a0f Adding testcase for this fix.
  198544. .IP \(bu 2
  198545. 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
  198546. .UNINDENT
  198547. .IP \(bu 2
  198548. db35d0c1e1 Adding testcase for this fix.
  198549. .IP \(bu 2
  198550. 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
  198551. .UNINDENT
  198552. .IP \(bu 2
  198553. \fBPR\fP \fI\%#48582\fP: (\fI\%dwoz\fP) Finally fix prepend for real
  198554. @ \fI2018\-07\-13 18:45:35 UTC\fP
  198555. .INDENT 2.0
  198556. .IP \(bu 2
  198557. 10124034cb Merge pull request \fI\%#48582\fP from dwoz/test_prepend_fix
  198558. .IP \(bu 2
  198559. f37571e0bd Merge branch \(aq2017.7\(aq into test_prepend_fix
  198560. .UNINDENT
  198561. .IP \(bu 2
  198562. \fBPR\fP \fI\%#48564\fP: (\fI\%dwoz\fP) Fix failing prepend test
  198563. @ \fI2018\-07\-13 14:12:47 UTC\fP
  198564. .INDENT 2.0
  198565. .IP \(bu 2
  198566. 13f67335f3 Merge pull request \fI\%#48564\fP from dwoz/test_prepend_fix
  198567. .INDENT 2.0
  198568. .IP \(bu 2
  198569. 136ddf5f54 Finally fix prepend for real
  198570. .UNINDENT
  198571. .IP \(bu 2
  198572. 66b25e65bf Fix failing prepend test
  198573. .UNINDENT
  198574. .IP \(bu 2
  198575. \fBPR\fP \fI\%#48558\fP: (\fI\%dwoz\fP) Remove which mock to get the test passing
  198576. @ \fI2018\-07\-12 19:04:12 UTC\fP
  198577. .INDENT 2.0
  198578. .IP \(bu 2
  198579. b8ce27729f Merge pull request \fI\%#48558\fP from dwoz/test_file_fix
  198580. .IP \(bu 2
  198581. c858bf477f Remove which mock to get the test passing
  198582. .UNINDENT
  198583. .IP \(bu 2
  198584. \fBPR\fP \fI\%#48552\fP: (\fI\%KaiSforza\fP) Set up junit in jenkins
  198585. @ \fI2018\-07\-12 16:23:33 UTC\fP
  198586. .INDENT 2.0
  198587. .IP \(bu 2
  198588. a15c65202d Merge pull request \fI\%#48552\fP from KaiSforza/jenkins\-junit\-2017
  198589. .IP \(bu 2
  198590. 72b1830974 Set up junit in jenkins
  198591. .UNINDENT
  198592. .IP \(bu 2
  198593. \fBPR\fP \fI\%#48550\fP: (\fI\%gtmanfred\fP) add posargs to tox pylint
  198594. @ \fI2018\-07\-12 14:34:25 UTC\fP
  198595. .INDENT 2.0
  198596. .IP \(bu 2
  198597. f73108026e Merge pull request \fI\%#48550\fP from gtmanfred/2017.7
  198598. .IP \(bu 2
  198599. d5c603d9b6 add posargs to tox pylint
  198600. .UNINDENT
  198601. .IP \(bu 2
  198602. \fBPR\fP \fI\%#48535\fP: (\fI\%asnell\fP) Update manage_file helptext
  198603. @ \fI2018\-07\-12 13:34:47 UTC\fP
  198604. .INDENT 2.0
  198605. .IP \(bu 2
  198606. 113b0426f8 Merge pull request \fI\%#48535\fP from asnell/asnell\-patch\-2
  198607. .IP \(bu 2
  198608. d328f6e43d Update manage_file helptext
  198609. .IP \(bu 2
  198610. \fBPR\fP \fI\%saltstack/salt#48525\fP: (\fI\%gtmanfred\fP) add kazoo for testing zookeeper. (refs: \fI\%#48527\fP)
  198611. .UNINDENT
  198612. .IP \(bu 2
  198613. \fBPR\fP \fI\%#48527\fP: (\fI\%gtmanfred\fP) Revert "add kazoo for testing zookeeper."
  198614. @ \fI2018\-07\-11 17:29:16 UTC\fP
  198615. .INDENT 2.0
  198616. .IP \(bu 2
  198617. 0c0c05c2bc Merge pull request \fI\%#48527\fP from saltstack/revert\-48525\-2017.7
  198618. .IP \(bu 2
  198619. 18d06c1a93 Revert "add kazoo for testing zookeeper."
  198620. .UNINDENT
  198621. .IP \(bu 2
  198622. \fBPR\fP \fI\%#48526\fP: (\fI\%twangboy\fP) Rollback python\-certifi\-win32
  198623. @ \fI2018\-07\-11 17:26:56 UTC\fP
  198624. .INDENT 2.0
  198625. .IP \(bu 2
  198626. 05bad3e71c Merge pull request \fI\%#48526\fP from twangboy/rollback_certifi\-win32
  198627. .IP \(bu 2
  198628. 361b3cdc2f Rollback python\-certifi\-win32
  198629. .UNINDENT
  198630. .IP \(bu 2
  198631. \fBPR\fP \fI\%#48521\fP: (\fI\%Martin819\fP) Back\-port \fI\%#48222\fP to 2017.7
  198632. @ \fI2018\-07\-11 16:42:51 UTC\fP
  198633. .INDENT 2.0
  198634. .IP \(bu 2
  198635. \fBPR\fP \fI\%#48222\fP: (\fI\%Martin819\fP) Fix GlusterFS module for version 4.0 and above (refs: \fI\%#48521\fP)
  198636. .IP \(bu 2
  198637. db066effe4 Merge pull request \fI\%#48521\fP from Martin819/2017.7
  198638. .IP \(bu 2
  198639. d5d01f6698 Fix for GlusterFS 4.0 and above
  198640. .UNINDENT
  198641. .IP \(bu 2
  198642. \fBPR\fP \fI\%#48525\fP: (\fI\%gtmanfred\fP) add kazoo for testing zookeeper.
  198643. @ \fI2018\-07\-11 16:09:40 UTC\fP
  198644. .INDENT 2.0
  198645. .IP \(bu 2
  198646. ed0bd2bbec Merge pull request \fI\%#48525\fP from gtmanfred/2017.7
  198647. .IP \(bu 2
  198648. d7a6bff2b2 add kazoo for testing zookeeper.
  198649. .UNINDENT
  198650. .IP \(bu 2
  198651. \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)
  198652. .IP \(bu 2
  198653. \fBISSUE\fP \fI\%#46986\fP: (\fI\%github\-abcde\fP) opts file_roots gets overwritten with pillar_roots in orchestration run (refs: \fI\%#48388\fP)
  198654. .IP \(bu 2
  198655. \fBPR\fP \fI\%#48388\fP: (\fI\%garethgreenaway\fP) [2017.7] reset file_roots for renderers after compile_pillar
  198656. @ \fI2018\-07\-11 13:13:45 UTC\fP
  198657. .INDENT 2.0
  198658. .IP \(bu 2
  198659. ad5a959ab9 Merge pull request \fI\%#48388\fP from garethgreenaway/48277_2017_7_file_roots_wrong
  198660. .IP \(bu 2
  198661. 6f11da35a7 Fixing a few things in the new test.
  198662. .IP \(bu 2
  198663. cf747b14ec Fixing lint issue
  198664. .IP \(bu 2
  198665. 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.
  198666. .UNINDENT
  198667. .IP \(bu 2
  198668. \fBPR\fP \fI\%#48512\fP: (\fI\%gtmanfred\fP) pin pm and grunt packages for npm tests
  198669. @ \fI2018\-07\-11 13:06:06 UTC\fP
  198670. .INDENT 2.0
  198671. .IP \(bu 2
  198672. 38df812257 Merge pull request \fI\%#48512\fP from gtmanfred/npm
  198673. .IP \(bu 2
  198674. 9ba0f6b3a0 pin pm and grunt packages for npm tests
  198675. .UNINDENT
  198676. .IP \(bu 2
  198677. \fBPR\fP \fI\%#48513\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.7 to 2017.7
  198678. @ \fI2018\-07\-11 13:04:01 UTC\fP
  198679. .INDENT 2.0
  198680. .IP \(bu 2
  198681. 04ba31147f Merge pull request \fI\%#48513\fP from rallytime/merge\-2017.7
  198682. .IP \(bu 2
  198683. a466a4880f Merge branch \(aq2017.7.7\(aq into \(aq2017.7\(aq
  198684. .UNINDENT
  198685. .IP \(bu 2
  198686. \fBPR\fP \fI\%#48514\fP: (\fI\%gtmanfred\fP) upgrade dependencies for pytest tests
  198687. @ \fI2018\-07\-10 20:53:55 UTC\fP
  198688. .INDENT 2.0
  198689. .IP \(bu 2
  198690. f0352ea95a Merge pull request \fI\%#48514\fP from gtmanfred/2017.7
  198691. .IP \(bu 2
  198692. 739bf92599 upgrade dependencies for pytest tests
  198693. .UNINDENT
  198694. .IP \(bu 2
  198695. \fBPR\fP \fI\%#48491\fP: (\fI\%grokrecursion\fP) Group gid fixed as integer
  198696. @ \fI2018\-07\-10 19:31:40 UTC\fP
  198697. .INDENT 2.0
  198698. .IP \(bu 2
  198699. 5372b60137 Merge pull request \fI\%#48491\fP from grokrecursion/group\-fix\-v2
  198700. .IP \(bu 2
  198701. 1556b37221 fixed pylint errors
  198702. .IP \(bu 2
  198703. f6d9177dab fixed indentation for pep8
  198704. .IP \(bu 2
  198705. b9556bf923 v2 try of gid converted to integer
  198706. .UNINDENT
  198707. .IP \(bu 2
  198708. \fBPR\fP \fI\%#48375\fP: (\fI\%Ch3LL\fP) Add user and group to makedirs cmd in file.copy
  198709. @ \fI2018\-07\-10 12:35:10 UTC\fP
  198710. .INDENT 2.0
  198711. .IP \(bu 2
  198712. 16d3daab3c Merge pull request \fI\%#48375\fP from Ch3LL/file_copy
  198713. .IP \(bu 2
  198714. d16a790775 Add mode to _makedirs call in file.copy
  198715. .IP \(bu 2
  198716. 2cbcb4fd26 Add user and group to makedirs cmd in file.copy
  198717. .UNINDENT
  198718. .IP \(bu 2
  198719. \fBPR\fP \fI\%#48490\fP: (\fI\%KaiSforza\fP) Cifixes
  198720. @ \fI2018\-07\-09 15:20:46 UTC\fP
  198721. .INDENT 2.0
  198722. .IP \(bu 2
  198723. d38951b1b3 Merge pull request \fI\%#48490\fP from KaiSforza/cifixes
  198724. .IP \(bu 2
  198725. 9fe7199af5 Mark failed if anything is found
  198726. .IP \(bu 2
  198727. 6749a6bf19 Stop archiving the docs
  198728. .UNINDENT
  198729. .IP \(bu 2
  198730. \fBPR\fP \fI\%#48472\fP: (\fI\%gtmanfred\fP) use tox to run pylint
  198731. @ \fI2018\-07\-07 02:46:46 UTC\fP
  198732. .INDENT 2.0
  198733. .IP \(bu 2
  198734. 22cd4206c4 Merge pull request \fI\%#48472\fP from gtmanfred/2017.7
  198735. .IP \(bu 2
  198736. c7a3a7d8bd update jenkins tests to use tox for lint
  198737. .IP \(bu 2
  198738. 44aaac1d33 use tox to run pylint
  198739. .UNINDENT
  198740. .IP \(bu 2
  198741. \fBPR\fP \fI\%#48476\fP: (\fI\%twangboy\fP) Fix dependencies
  198742. @ \fI2018\-07\-06 23:43:26 UTC\fP
  198743. .INDENT 2.0
  198744. .IP \(bu 2
  198745. 27ea8f35ea Merge pull request \fI\%#48476\fP from twangboy/fix_dependencies
  198746. .IP \(bu 2
  198747. b0087d425c Add license info
  198748. .IP \(bu 2
  198749. 935f9b560c Fix dependencies
  198750. .UNINDENT
  198751. .IP \(bu 2
  198752. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP)
  198753. .IP \(bu 2
  198754. \fBPR\fP \fI\%#48399\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to module/file.py
  198755. @ \fI2018\-07\-06 18:02:29 UTC\fP
  198756. .INDENT 2.0
  198757. .IP \(bu 2
  198758. acf42864aa Merge pull request \fI\%#48399\fP from garethgreenaway/48336_2017_7_ensure_chmod_setuid_with_chown
  198759. .IP \(bu 2
  198760. 8efd33320f Normalize the mode before we compare it.
  198761. .IP \(bu 2
  198762. 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.
  198763. .UNINDENT
  198764. .IP \(bu 2
  198765. \fBPR\fP \fI\%#48471\fP: (\fI\%gtmanfred\fP) Add some configurations to tox
  198766. @ \fI2018\-07\-06 17:45:55 UTC\fP
  198767. .INDENT 2.0
  198768. .IP \(bu 2
  198769. 6166ff6b78 Merge pull request \fI\%#48471\fP from gtmanfred/2017.7
  198770. .IP \(bu 2
  198771. 392ab4e51f Add some configurations to tox
  198772. .UNINDENT
  198773. .IP \(bu 2
  198774. \fBPR\fP \fI\%#48433\fP: (\fI\%discogestalt\fP) Fix issue with redismod.hmset method
  198775. @ \fI2018\-07\-06 15:55:44 UTC\fP
  198776. .INDENT 2.0
  198777. .IP \(bu 2
  198778. 6234d9b15d Merge pull request \fI\%#48433\fP from discogestalt/fix\-redis.hmset
  198779. .IP \(bu 2
  198780. 65817ac74d Use clean_kwargs method instead
  198781. .IP \(bu 2
  198782. f7fa7f57c6 Found another issue with redismod.hmset
  198783. .IP \(bu 2
  198784. 5624865f86 Fix issue with redismod.hmset method
  198785. .UNINDENT
  198786. .IP \(bu 2
  198787. \fBPR\fP \fI\%#48428\fP: (\fI\%terminalmage\fP) Fix outputter detection in jobs.lookup_jid runner
  198788. @ \fI2018\-07\-06 14:37:37 UTC\fP
  198789. .INDENT 2.0
  198790. .IP \(bu 2
  198791. aacee0fe2c Merge pull request \fI\%#48428\fP from terminalmage/fix\-jobs.lookup_jid
  198792. .IP \(bu 2
  198793. 6509aa9089 Fix outputter detection in jobs.lookup_jid runner
  198794. .UNINDENT
  198795. .IP \(bu 2
  198796. \fBPR\fP \fI\%#48429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46824\fP to 2017.7
  198797. @ \fI2018\-07\-03 21:45:36 UTC\fP
  198798. .INDENT 2.0
  198799. .IP \(bu 2
  198800. \fBPR\fP \fI\%#46824\fP: (\fI\%beornf\fP) Regression to ignore retcodes on crontab calls (refs: \fI\%#48429\fP)
  198801. .IP \(bu 2
  198802. a7e52f0de2 Merge pull request \fI\%#48429\fP from rallytime/bp\-46824
  198803. .IP \(bu 2
  198804. 8b4486248d Added ignore_retcode to mock unit tests
  198805. .IP \(bu 2
  198806. f8beab71dd Regression to ignore retcodes on crontab calls
  198807. .UNINDENT
  198808. .IP \(bu 2
  198809. \fBPR\fP \fI\%#48432\fP: (\fI\%dwoz\fP) Prepend test needs file.touch method
  198810. @ \fI2018\-07\-03 21:32:48 UTC\fP
  198811. .INDENT 2.0
  198812. .IP \(bu 2
  198813. 4576ef20bc Merge pull request \fI\%#48432\fP from dwoz/file\-prepend\-again
  198814. .IP \(bu 2
  198815. 349a2b279e Prepend test needs file.touch method
  198816. .UNINDENT
  198817. .IP \(bu 2
  198818. \fBISSUE\fP \fI\%#48230\fP: (\fI\%whytewolf\fP) file.managed source_hash case\-sensitive for test=true (refs: \fI\%#48422\fP)
  198819. .IP \(bu 2
  198820. \fBISSUE\fP \fI\%#38914\fP: (\fI\%hgfischer\fP) Uppercase checksums are not accepted by archive.extracted (refs: \fI\%#40754\fP, \fI\%#48422\fP)
  198821. .IP \(bu 2
  198822. \fBPR\fP \fI\%#48422\fP: (\fI\%rallytime\fP) Allow file.managed to work with uppercase source_hash in test=true mode
  198823. @ \fI2018\-07\-03 16:40:59 UTC\fP
  198824. .INDENT 2.0
  198825. .IP \(bu 2
  198826. \fBPR\fP \fI\%#40754\fP: (\fI\%lordcirth\fP) file.manage_file: uppercase checksums now work (refs: \fI\%#48422\fP)
  198827. .IP \(bu 2
  198828. 422441505d Merge pull request \fI\%#48422\fP from rallytime/fix\-48230
  198829. .IP \(bu 2
  198830. a6abf85621 Allow file.managed to work with uppercase source_hash in test=true mode
  198831. .IP \(bu 2
  198832. 4c691ac57a Add regression test for Issue \fI\%#48230\fP
  198833. .UNINDENT
  198834. .IP \(bu 2
  198835. \fBPR\fP \fI\%#48410\fP: (\fI\%dwoz\fP) Fix service dead test on windows
  198836. @ \fI2018\-07\-03 14:17:29 UTC\fP
  198837. .INDENT 2.0
  198838. .IP \(bu 2
  198839. 83e387c951 Merge pull request \fI\%#48410\fP from dwoz/service_dead_test_fix
  198840. .IP \(bu 2
  198841. 5c0923448d Fix service dead test on windows
  198842. .UNINDENT
  198843. .IP \(bu 2
  198844. \fBPR\fP \fI\%#48413\fP: (\fI\%twangboy\fP) Fix archive.extracted to handle UNC paths
  198845. @ \fI2018\-07\-03 14:14:46 UTC\fP
  198846. .INDENT 2.0
  198847. .IP \(bu 2
  198848. d3ba345da5 Merge pull request \fI\%#48413\fP from twangboy/fix_47811
  198849. .IP \(bu 2
  198850. c5aad04140 handle unc paths
  198851. .UNINDENT
  198852. .IP \(bu 2
  198853. \fBPR\fP \fI\%#48416\fP: (\fI\%dwoz\fP) Fix service integration test (py3)
  198854. @ \fI2018\-07\-03 14:08:45 UTC\fP
  198855. .INDENT 2.0
  198856. .IP \(bu 2
  198857. 827ef2aac4 Merge pull request \fI\%#48416\fP from dwoz/service_integration_fix
  198858. .IP \(bu 2
  198859. c43f150dcd Fix service integration test (py3)
  198860. .UNINDENT
  198861. .IP \(bu 2
  198862. \fBPR\fP \fI\%#48385\fP: (\fI\%Ch3LL\fP) Update release versions for the 2017.7 branch
  198863. @ \fI2018\-07\-03 13:39:29 UTC\fP
  198864. .INDENT 2.0
  198865. .IP \(bu 2
  198866. 10fe7d2b9b Merge pull request \fI\%#48385\fP from Ch3LL/1update_version_doc_2017.7
  198867. .IP \(bu 2
  198868. 3cf335b0b9 Update release versions for the 2017.7 branch
  198869. .UNINDENT
  198870. .IP \(bu 2
  198871. \fBPR\fP \fI\%#48405\fP: (\fI\%Ch3LL\fP) [2017.7] Remove In Progress Warning on 2017.7.7
  198872. @ \fI2018\-07\-03 13:32:10 UTC\fP
  198873. .INDENT 2.0
  198874. .IP \(bu 2
  198875. f8a9a037e6 Merge pull request \fI\%#48405\fP from Ch3LL/rm_inprog_2017.7
  198876. .IP \(bu 2
  198877. 03ed5167fa [2017.7] Remove In Progress Warning on 2017.7.7
  198878. .UNINDENT
  198879. .IP \(bu 2
  198880. \fBPR\fP \fI\%#48409\fP: (\fI\%dwoz\fP) Fix file state prepend test
  198881. @ \fI2018\-07\-02 23:21:08 UTC\fP
  198882. .INDENT 2.0
  198883. .IP \(bu 2
  198884. 8ac867c168 Merge pull request \fI\%#48409\fP from dwoz/test_prepend_fix
  198885. .IP \(bu 2
  198886. 9c7085b70f Fix file state prepend test
  198887. .UNINDENT
  198888. .IP \(bu 2
  198889. \fBPR\fP \fI\%#48396\fP: (\fI\%dwoz\fP) Fix file.symlink state test for windows
  198890. @ \fI2018\-07\-02 18:10:32 UTC\fP
  198891. .INDENT 2.0
  198892. .IP \(bu 2
  198893. 10e93bff7f Merge pull request \fI\%#48396\fP from dwoz/symlink_test_fix
  198894. .IP \(bu 2
  198895. d3456d31e6 Fix file.symlink state test for windows
  198896. .UNINDENT
  198897. .IP \(bu 2
  198898. \fBPR\fP \fI\%#48362\fP: (\fI\%twangboy\fP) Fix stacktrace when registry entries are missing
  198899. @ \fI2018\-06\-30 13:20:01 UTC\fP
  198900. .INDENT 2.0
  198901. .IP \(bu 2
  198902. 7e25f26837 Merge pull request \fI\%#48362\fP from twangboy/fix_48276
  198903. .IP \(bu 2
  198904. 77629f640a Fix module unit tests
  198905. .IP \(bu 2
  198906. b5ca560b73 Fix lint error
  198907. .IP \(bu 2
  198908. 210e280ecf Use explicit parameter names
  198909. .IP \(bu 2
  198910. 776db98a5c Handle missing registry entries
  198911. .UNINDENT
  198912. .IP \(bu 2
  198913. \fBPR\fP \fI\%#48383\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48379\fP to 2017.7
  198914. @ \fI2018\-06\-29 19:48:38 UTC\fP
  198915. .INDENT 2.0
  198916. .IP \(bu 2
  198917. \fBPR\fP \fI\%#48379\fP: (\fI\%KaiSforza\fP) Clean up the workspaces at the end for every job (refs: \fI\%#48383\fP)
  198918. .IP \(bu 2
  198919. 80222b6b7c Merge pull request \fI\%#48383\fP from rallytime/bp\-48379
  198920. .IP \(bu 2
  198921. 9fc7815594 Clean up the workspaces at the end for every job
  198922. .UNINDENT
  198923. .IP \(bu 2
  198924. \fBPR\fP \fI\%#48382\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48346\fP to 2017.7
  198925. @ \fI2018\-06\-29 19:45:12 UTC\fP
  198926. .INDENT 2.0
  198927. .IP \(bu 2
  198928. \fBPR\fP \fI\%#48346\fP: (\fI\%KaiSforza\fP) Use the right ssh key to destroy kitchen (refs: \fI\%#48382\fP)
  198929. .IP \(bu 2
  198930. aa68aa774a Merge pull request \fI\%#48382\fP from rallytime/bp\-48346
  198931. .IP \(bu 2
  198932. 6a70ba222e Use the right ssh key to destroy kitchen
  198933. .UNINDENT
  198934. .IP \(bu 2
  198935. \fBPR\fP \fI\%#48381\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48330\fP to 2017.7
  198936. @ \fI2018\-06\-29 19:43:46 UTC\fP
  198937. .INDENT 2.0
  198938. .IP \(bu 2
  198939. \fBPR\fP \fI\%#48330\fP: (\fI\%KaiSforza\fP) Add warnings plugin to replace violations (refs: \fI\%#48381\fP)
  198940. .IP \(bu 2
  198941. 9519f640e7 Merge pull request \fI\%#48381\fP from rallytime/bp\-48330
  198942. .IP \(bu 2
  198943. 6857bedcc2 Add warnings plugin to replace violations
  198944. .UNINDENT
  198945. .IP \(bu 2
  198946. \fBPR\fP \fI\%#48363\fP: (\fI\%dubb\-b\fP) Changing debug to info for logging
  198947. @ \fI2018\-06\-28 20:45:17 UTC\fP
  198948. .INDENT 2.0
  198949. .IP \(bu 2
  198950. 14db0aa35d Merge pull request \fI\%#48363\fP from dubb\-b/2017.7
  198951. .IP \(bu 2
  198952. c0b962e28d Changing debug to info for logging
  198953. .UNINDENT
  198954. .IP \(bu 2
  198955. \fBPR\fP \fI\%#48352\fP: (\fI\%Ch3LL\fP) Add missing key to accept_dict function in wheel docs
  198956. @ \fI2018\-06\-28 13:54:37 UTC\fP
  198957. .INDENT 2.0
  198958. .IP \(bu 2
  198959. 5b29cd326f Merge pull request \fI\%#48352\fP from Ch3LL/wheel_doc
  198960. .IP \(bu 2
  198961. 89ada68165 Add missing key to accept_dict function in wheel docs
  198962. .UNINDENT
  198963. .IP \(bu 2
  198964. \fBPR\fP \fI\%#48329\fP: (\fI\%rallytime\fP) Trigger review requests for team\-ssh for roster files
  198965. @ \fI2018\-06\-28 13:53:42 UTC\fP
  198966. .INDENT 2.0
  198967. .IP \(bu 2
  198968. 02cf19ee3b Merge pull request \fI\%#48329\fP from rallytime/codeowners\-roster\-files
  198969. .IP \(bu 2
  198970. 5e56615e00 Trigger review requests for team\-ssh for roster files
  198971. .UNINDENT
  198972. .IP \(bu 2
  198973. \fBISSUE\fP \fI\%#48316\fP: (\fI\%ralex\fP) Wrong init system used in virtual module "service" on Manjaro (refs: \fI\%#48349\fP)
  198974. .IP \(bu 2
  198975. \fBPR\fP \fI\%#48349\fP: (\fI\%ralex\fP) Disable the "service" module on Manjaro since it is using systemd
  198976. @ \fI2018\-06\-28 13:32:37 UTC\fP
  198977. .INDENT 2.0
  198978. .IP \(bu 2
  198979. 53cf1794be Merge pull request \fI\%#48349\fP from ralex/fix\-manjaro\-service\-behaviour
  198980. .IP \(bu 2
  198981. 6cafce547e Disable the \fIservice\fP module on Manjaro since it is using systemd
  198982. .UNINDENT
  198983. .IP \(bu 2
  198984. \fBPR\fP \fI\%#48324\fP: (\fI\%Ch3LL\fP) Update release versions for the 2017.7 branch
  198985. @ \fI2018\-06\-27 13:44:22 UTC\fP
  198986. .INDENT 2.0
  198987. .IP \(bu 2
  198988. 89dfcf3a4e Merge pull request \fI\%#48324\fP from Ch3LL/update_version_doc_2017.7
  198989. .IP \(bu 2
  198990. 47845ba810 Update release versions for the 2017.7 branch
  198991. .UNINDENT
  198992. .IP \(bu 2
  198993. \fBPR\fP \fI\%#48331\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48215\fP to 2017.7
  198994. @ \fI2018\-06\-27 13:12:35 UTC\fP
  198995. .INDENT 2.0
  198996. .IP \(bu 2
  198997. \fBPR\fP \fI\%#48215\fP: (\fI\%KaiSforza\fP) Notify during tests using different credentials (refs: \fI\%#48331\fP)
  198998. .IP \(bu 2
  198999. ece4c30aac Merge pull request \fI\%#48331\fP from rallytime/bp\-48215
  199000. .IP \(bu 2
  199001. 9d6ba3e247 Set jobs to pending when they come in
  199002. .IP \(bu 2
  199003. 727d2b4ffe Use proper creds with githubNotify
  199004. .IP \(bu 2
  199005. d355861c5c Test using different credentials
  199006. .UNINDENT
  199007. .IP \(bu 2
  199008. \fBPR\fP \fI\%#48332\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48321\fP to 2017.7
  199009. @ \fI2018\-06\-27 13:12:15 UTC\fP
  199010. .INDENT 2.0
  199011. .IP \(bu 2
  199012. \fBPR\fP \fI\%#48321\fP: (\fI\%KaiSforza\fP) Jenkins needs the / to get the directory (refs: \fI\%#48332\fP)
  199013. .IP \(bu 2
  199014. ab05e00d8c Merge pull request \fI\%#48332\fP from rallytime/bp\-48321
  199015. .IP \(bu 2
  199016. d72af6ab4e Jenkins needs the / to get the directory
  199017. .UNINDENT
  199018. .IP \(bu 2
  199019. \fBISSUE\fP \fI\%#42659\fP: (\fI\%szin2012\fP) rest_tornado is not able to return normal result (refs: \fI\%#48193\fP, \fI\%#48295\fP)
  199020. .IP \(bu 2
  199021. \fBPR\fP \fI\%#48295\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48193\fP to 2017.7
  199022. @ \fI2018\-06\-26 23:42:18 UTC\fP
  199023. .INDENT 2.0
  199024. .IP \(bu 2
  199025. \fBPR\fP \fI\%#48193\fP: (\fI\%jacksontj\fP) Properly wait on returns in saltnado (refs: \fI\%#48295\fP)
  199026. .IP \(bu 2
  199027. 21ed5b97ce Merge pull request \fI\%#48295\fP from rallytime/bp\-48193
  199028. .IP \(bu 2
  199029. 352fe33fd6 Separate set_result() to a new line apart from Future() call
  199030. .IP \(bu 2
  199031. c0180ff33d Properly configure syndic in test case
  199032. .IP \(bu 2
  199033. d0a98534a9 Properly wait on returns in saltnado
  199034. .UNINDENT
  199035. .IP \(bu 2
  199036. \fBPR\fP \fI\%#48117\fP: (\fI\%twangboy\fP) service.disabled on Windows
  199037. @ \fI2018\-06\-26 23:35:59 UTC\fP
  199038. .INDENT 2.0
  199039. .IP \(bu 2
  199040. 9aa4687ab9 Merge pull request \fI\%#48117\fP from twangboy/fix_48026
  199041. .IP \(bu 2
  199042. dd37f8fbc2 Disable services that are set to manual
  199043. .UNINDENT
  199044. .IP \(bu 2
  199045. \fBISSUE\fP \fI\%#48122\fP: (\fI\%pasmon\fP) Salt minion 2017.7.6 disregards "bin_env" in pip state (refs: \fI\%#48189\fP)
  199046. .IP \(bu 2
  199047. \fBPR\fP \fI\%#48207\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48189\fP to 2017.7
  199048. @ \fI2018\-06\-25 19:26:56 UTC\fP
  199049. .INDENT 2.0
  199050. .IP \(bu 2
  199051. \fBPR\fP \fI\%#48189\fP: (\fI\%gtmanfred\fP) If pip binary is passed to bin_env, use that pip binary (refs: \fI\%#48207\fP)
  199052. .IP \(bu 2
  199053. caf630487c Merge pull request \fI\%#48207\fP from rallytime/bp\-48189
  199054. .IP \(bu 2
  199055. e9d09e0375 Use old is_windows utils path on 2017.7
  199056. .IP \(bu 2
  199057. b965d6c9b3 If pip binary is passed to bin_env, use that pip binary
  199058. .UNINDENT
  199059. .IP \(bu 2
  199060. \fBISSUE\fP \fI\%#45383\fP: (\fI\%jodok\fP) RabbitMQ commands fail due to wrong locale (refs: \fI\%#47453\fP)
  199061. .IP \(bu 2
  199062. \fBPR\fP \fI\%#48293\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47453\fP to 2017.7
  199063. @ \fI2018\-06\-25 19:06:42 UTC\fP
  199064. .INDENT 2.0
  199065. .IP \(bu 2
  199066. \fBPR\fP \fI\%#47453\fP: (\fI\%dqminh\fP) dont reset system locale when running rabbitmqctl commands (refs: \fI\%#48293\fP)
  199067. .IP \(bu 2
  199068. 06a927b2aa Merge pull request \fI\%#48293\fP from rallytime/bp\-47453
  199069. .IP \(bu 2
  199070. e96ab6778e dont reset system locale when running rabbitmqctl commands
  199071. .UNINDENT
  199072. .IP \(bu 2
  199073. \fBPR\fP \fI\%#48219\fP: (\fI\%zer0def\fP) Fix: LXC legacy configuration key warnings falsely report errors during state change
  199074. @ \fI2018\-06\-25 13:46:07 UTC\fP
  199075. .INDENT 2.0
  199076. .IP \(bu 2
  199077. 95ef006e00 Merge pull request \fI\%#48219\fP from zer0def/lxc\-bootstrap\-fixes
  199078. .IP \(bu 2
  199079. c77058560b Merge branch \(aq2017.7\(aq into lxc\-bootstrap\-fixes
  199080. .IP \(bu 2
  199081. d63cf3f072 Fixes another case of legacy configuration key usage warning getting in the way of changing container\(aqs state.
  199082. .UNINDENT
  199083. .IP \(bu 2
  199084. \fBISSUE\fP \fI\%#46507\fP: (\fI\%nkv16786\fP) Failed to return clean data (refs: \fI\%#48234\fP)
  199085. .IP \(bu 2
  199086. \fBPR\fP \fI\%#48234\fP: (\fI\%dwoz\fP) Fix py2 thin dir issues
  199087. @ \fI2018\-06\-25 13:33:02 UTC\fP
  199088. .INDENT 2.0
  199089. .IP \(bu 2
  199090. 3327181507 Merge pull request \fI\%#48234\fP from dwoz/thin_dir
  199091. .IP \(bu 2
  199092. 70c603451b Fix py2 thin dir issues
  199093. .UNINDENT
  199094. .IP \(bu 2
  199095. \fBISSUE\fP \fI\%#47984\fP: (\fI\%jeduardo\fP) x509 module/state writing wrong certificate serial number to CRL (refs: \fI\%#48080\fP)
  199096. .IP \(bu 2
  199097. \fBPR\fP \fI\%#48080\fP: (\fI\%lusche\fP) Bugfix \fI\%#47984\fP messed up cert serial
  199098. @ \fI2018\-06\-22 18:00:14 UTC\fP
  199099. .INDENT 2.0
  199100. .IP \(bu 2
  199101. 83d7d286c4 Merge pull request \fI\%#48080\fP from lusche/2017.7
  199102. .IP \(bu 2
  199103. 917dc985fc \fI\%#47984\fP remove the line completly
  199104. .IP \(bu 2
  199105. ba12ee947b Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into 2017.7
  199106. .IP \(bu 2
  199107. dfb13d5051 Bugfix \fI\%#47984\fP messed up cert serial
  199108. .UNINDENT
  199109. .IP \(bu 2
  199110. \fBPR\fP \fI\%#48232\fP: (\fI\%gtmanfred\fP) do not expand kwargs for cloud.action
  199111. @ \fI2018\-06\-22 15:49:21 UTC\fP
  199112. .INDENT 2.0
  199113. .IP \(bu 2
  199114. bccb4dcd46 Merge pull request \fI\%#48232\fP from gtmanfred/cloud
  199115. .IP \(bu 2
  199116. d108112e1a do not expand kwargs for cloud.action
  199117. .UNINDENT
  199118. .IP \(bu 2
  199119. \fBPR\fP \fI\%#48238\fP: (\fI\%mirceaulinic\fP) SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  199120. @ \fI2018\-06\-22 15:37:22 UTC\fP
  199121. .INDENT 2.0
  199122. .IP \(bu 2
  199123. 056f43f663 Merge pull request \fI\%#48238\fP from mirceaulinic/fix\-sdb\-cache
  199124. .IP \(bu 2
  199125. 51e5fbfa1d SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  199126. .UNINDENT
  199127. .IP \(bu 2
  199128. \fBISSUE\fP \fI\%#48025\fP: (\fI\%onmeac\fP) Autoloading Utility Modules? (refs: \fI\%#48037\fP)
  199129. .IP \(bu 2
  199130. \fBPR\fP \fI\%#48037\fP: (\fI\%terminalmage\fP) Add "sync_mods" argument to state.apply/state.sls
  199131. @ \fI2018\-06\-21 19:57:03 UTC\fP
  199132. .INDENT 2.0
  199133. .IP \(bu 2
  199134. 731ec0a11a Merge pull request \fI\%#48037\fP from terminalmage/fix\-custom\-types\-sync\-docs
  199135. .IP \(bu 2
  199136. 052ae83c4b Update versionchanged
  199137. .IP \(bu 2
  199138. 8b1bd0eda2 Update test to reflect changed argument name
  199139. .IP \(bu 2
  199140. 5e75936198 Change 2018.3.2 to 2018.3.3
  199141. .IP \(bu 2
  199142. c53ad603fc Rename sync \-> sync_mods per review suggestion
  199143. .IP \(bu 2
  199144. e4d67c5fd8 Update docs to include references to new "sync" argument
  199145. .IP \(bu 2
  199146. cb8e6f9fb8 Remove redundant mocking
  199147. .IP \(bu 2
  199148. bc3ad795e9 Add test for sync argument to state.sls
  199149. .IP \(bu 2
  199150. f81ccd1fdd Add sync option to state.apply/state.sls
  199151. .IP \(bu 2
  199152. 8289b07e24 Fix documentation on when custom types are synced
  199153. .UNINDENT
  199154. .IP \(bu 2
  199155. \fBPR\fP \fI\%#48249\fP: (\fI\%rallytime\fP) Update release notes for 2017.7.7
  199156. @ \fI2018\-06\-21 18:30:39 UTC\fP
  199157. .INDENT 2.0
  199158. .IP \(bu 2
  199159. 0bae927048 Merge pull request \fI\%#48249\fP from rallytime/2017.7.7\-release\-notes\-update
  199160. .IP \(bu 2
  199161. 36032c8ee7 Update release notes for 2017.7.7
  199162. .UNINDENT
  199163. .IP \(bu 2
  199164. \fBPR\fP \fI\%#48242\fP: (\fI\%asnell\fP) Add sample list data via command line pillar
  199165. @ \fI2018\-06\-21 18:27:41 UTC\fP
  199166. .INDENT 2.0
  199167. .IP \(bu 2
  199168. 8e06471817 Merge pull request \fI\%#48242\fP from asnell/asnell\-patch\-1
  199169. .IP \(bu 2
  199170. f66bf60073 Add sample list data via command line pillar
  199171. .UNINDENT
  199172. .IP \(bu 2
  199173. \fBPR\fP \fI\%#48226\fP: (\fI\%terminalmage\fP) 2 fixes for when Salt is installed using \-OO
  199174. @ \fI2018\-06\-20 20:12:34 UTC\fP
  199175. .INDENT 2.0
  199176. .IP \(bu 2
  199177. a172f9de84 Merge pull request \fI\%#48226\fP from terminalmage/fix\-alias\-docstring
  199178. .IP \(bu 2
  199179. fb237272f5 Don\(aqt display "None" in SaltInvocationError when Salt installed using \-OO
  199180. .IP \(bu 2
  199181. 90c90f5d5c Fix docstring construction in alias_function when Salt installed using \-OO
  199182. .UNINDENT
  199183. .IP \(bu 2
  199184. \fBPR\fP \fI\%#48227\fP: (\fI\%Ch3LL\fP) Skip new sha256 files on repo.saltstack.com/windows
  199185. @ \fI2018\-06\-20 20:12:09 UTC\fP
  199186. .INDENT 2.0
  199187. .IP \(bu 2
  199188. c6a0207cae Merge pull request \fI\%#48227\fP from Ch3LL/fix_win_tests
  199189. .IP \(bu 2
  199190. 236773e3e9 Skip new sha256 files on repo.saltstack.com/windows
  199191. .UNINDENT
  199192. .IP \(bu 2
  199193. \fBISSUE\fP \fI\%#48128\fP: (\fI\%bowmanjd\-lms\fP) apk.py Python 3 compatibility (refs: \fI\%#48131\fP)
  199194. .IP \(bu 2
  199195. \fBPR\fP \fI\%#48131\fP: (\fI\%bowmanjd\-lms\fP) Fix py3\-incompatible dict.keys()[x] call in apk.py
  199196. @ \fI2018\-06\-19 18:19:02 UTC\fP
  199197. .INDENT 2.0
  199198. .IP \(bu 2
  199199. 6929423528 Merge pull request \fI\%#48131\fP from bowmanjd\-lms/fix\-apk\-python3
  199200. .IP \(bu 2
  199201. f5d2835299 Merge branch \(aq2017.7\(aq into fix\-apk\-python3
  199202. .IP \(bu 2
  199203. 022f9cba50 Fix py3\-incompatible dict.keys()[x] call in apk.py
  199204. .UNINDENT
  199205. .IP \(bu 2
  199206. \fBISSUE\fP \fI\%#47901\fP: (\fI\%frogunder\fP) 2017.7.6 \- Exiting command with CTRL\-C gives Error/Traceback (refs: \fI\%#48185\fP)
  199207. .IP \(bu 2
  199208. \fBPR\fP \fI\%#48185\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt call .exception() on future unless it\(aqs done.
  199209. @ \fI2018\-06\-19 18:16:27 UTC\fP
  199210. .INDENT 2.0
  199211. .IP \(bu 2
  199212. 868c17377f Merge pull request \fI\%#48185\fP from DSRCorporation/bugs/47901_future_done_exception
  199213. .IP \(bu 2
  199214. 5f63316311 Merge branch \(aq2017.7\(aq into bugs/47901_future_done_exception
  199215. .IP \(bu 2
  199216. 9f2dbf94cb Don\(aqt call .exception() on future unless it\(aqs done.
  199217. .UNINDENT
  199218. .IP \(bu 2
  199219. \fBPR\fP \fI\%#48192\fP: (\fI\%twangboy\fP) Use the \-\-disable\-pip\-version\-check option (2017.7)
  199220. @ \fI2018\-06\-19 18:13:12 UTC\fP
  199221. .INDENT 2.0
  199222. .IP \(bu 2
  199223. 80a3e37c2e Merge pull request \fI\%#48192\fP from twangboy/fix_pip_version_2017.7
  199224. .IP \(bu 2
  199225. 59ae2cc5fc Use \-\-disable\-pip\-version\-check for build_env_#.ps1
  199226. .UNINDENT
  199227. .IP \(bu 2
  199228. \fBPR\fP \fI\%#48201\fP: (\fI\%zer0def\fP) Fixes to LXC bootstrap when alternate lxcpath is provided.
  199229. @ \fI2018\-06\-19 12:56:40 UTC\fP
  199230. .INDENT 2.0
  199231. .IP \(bu 2
  199232. 12e2b8882a Merge pull request \fI\%#48201\fP from zer0def/lxc\-bootstrap\-fixes
  199233. .IP \(bu 2
  199234. 6f6d3d40d4 Take lxcpath into account when bootstrapping new containers. Version comparison fixes.
  199235. .UNINDENT
  199236. .IP \(bu 2
  199237. \fBPR\fP \fI\%#48190\fP: (\fI\%terminalmage\fP) Fix mount.vfstab unit test
  199238. @ \fI2018\-06\-18 21:47:54 UTC\fP
  199239. .INDENT 2.0
  199240. .IP \(bu 2
  199241. e079fce38d Merge pull request \fI\%#48190\fP from terminalmage/fix\-vfstab\-test
  199242. .IP \(bu 2
  199243. 8d70d14362 Fix mount.vfstab unit test
  199244. .UNINDENT
  199245. .IP \(bu 2
  199246. \fBPR\fP \fI\%#48115\fP: (\fI\%KaiSforza\fP) Add jenkinsfiles to define tests in 2017
  199247. @ \fI2018\-06\-18 21:27:40 UTC\fP
  199248. .INDENT 2.0
  199249. .IP \(bu 2
  199250. c8b9cec986 Merge pull request \fI\%#48115\fP from KaiSforza/pr\-lint\-2017
  199251. .IP \(bu 2
  199252. 494727ab39 Add docs, kitchen tests
  199253. .IP \(bu 2
  199254. 317023bb20 Move .jenkins to .ci for future
  199255. .IP \(bu 2
  199256. dedc313cee Make it parallel so we don\(aqt fail right away
  199257. .IP \(bu 2
  199258. cd13426726 Add a .jenkins file to run pylint
  199259. .UNINDENT
  199260. .IP \(bu 2
  199261. \fBPR\fP \fI\%#48174\fP: (\fI\%terminalmage\fP) Add docker.update_mine config option
  199262. @ \fI2018\-06\-18 19:04:54 UTC\fP
  199263. .INDENT 2.0
  199264. .IP \(bu 2
  199265. fc1752b721 Merge pull request \fI\%#48174\fP from terminalmage/docker\-update\-mine
  199266. .IP \(bu 2
  199267. 9af09e0127 Mock config.get due to changes in _refresh_mine_cache
  199268. .IP \(bu 2
  199269. c5802ad465 Fix the version number in versionadded
  199270. .IP \(bu 2
  199271. d403ae58d7 Add unit test for docker.update_mine
  199272. .IP \(bu 2
  199273. 44c275698a Actually it\(aqs more than just add/remove that updates the mine
  199274. .IP \(bu 2
  199275. 0cb6996b07 Add release notes mention of docker.update_mine config option
  199276. .IP \(bu 2
  199277. de05097b20 Add docs for new config option
  199278. .IP \(bu 2
  199279. 04c55a9178 Add note in mine.get_docker docstring about new config item
  199280. .IP \(bu 2
  199281. 4e456255c0 Allow mine update to be disabled using new config option
  199282. .UNINDENT
  199283. .IP \(bu 2
  199284. \fBISSUE\fP \fI\%#47031\fP: (\fI\%lejambon\fP) Cannot set hwclock on UTC on CentOS 7 (refs: \fI\%#47049\fP, \fI\%#48061\fP)
  199285. .IP \(bu 2
  199286. \fBPR\fP \fI\%#48061\fP: (\fI\%garethgreenaway\fP) [2017.7] Porting \fI\%#47049\fP to 2017.7.
  199287. @ \fI2018\-06\-15 17:15:50 UTC\fP
  199288. .INDENT 2.0
  199289. .IP \(bu 2
  199290. \fBPR\fP \fI\%#47049\fP: (\fI\%lejambon\fP) Centos set utc hwclock (refs: \fI\%#48061\fP)
  199291. .IP \(bu 2
  199292. df2a156338 Merge pull request \fI\%#48061\fP from garethgreenaway/port_47049_2017_7
  199293. .IP \(bu 2
  199294. 7c472fed51 Fixing failing test_set_hwclock_aix test.
  199295. .IP \(bu 2
  199296. ccb0acc958 Porting \fI\%#47049\fP to 2017.7.
  199297. .UNINDENT
  199298. .IP \(bu 2
  199299. \fBPR\fP \fI\%#48143\fP: (\fI\%Ch3LL\fP) Add timeout argument to run_salt for ShellCase
  199300. @ \fI2018\-06\-15 17:04:57 UTC\fP
  199301. .INDENT 2.0
  199302. .IP \(bu 2
  199303. 5ec3cf2dd4 Merge pull request \fI\%#48143\fP from Ch3LL/fix_long_job
  199304. .IP \(bu 2
  199305. 48b5d2e9d3 Add timeout argument to run_salt for ShellCase
  199306. .UNINDENT
  199307. .IP \(bu 2
  199308. \fBPR\fP \fI\%#48135\fP: (\fI\%rallytime\fP) Update the 2017.7.7 and 2017.7.8 release notes
  199309. @ \fI2018\-06\-14 21:22:06 UTC\fP
  199310. .INDENT 2.0
  199311. .IP \(bu 2
  199312. \fBPR\fP \fI\%#48134\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.7 (refs: \fI\%#48135\fP)
  199313. .IP \(bu 2
  199314. e1e566d1f8 Merge pull request \fI\%#48135\fP from rallytime/release\-notes\-2017.7
  199315. .IP \(bu 2
  199316. 7a97f157b3 Add missing \fIv\fP for tag reference
  199317. .IP \(bu 2
  199318. 2f2b69ed37 Add "in progress" notation to 2017.7.7 release notes
  199319. .IP \(bu 2
  199320. 06a1151a63 Add release notes file for 2017.7.7
  199321. .IP \(bu 2
  199322. 885b2862ce Move 2017.7.7 release notes to 2017.7.8
  199323. .UNINDENT
  199324. .IP \(bu 2
  199325. \fBPR\fP \fI\%#48105\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199326. @ \fI2018\-06\-14 17:00:09 UTC\fP
  199327. .INDENT 2.0
  199328. .IP \(bu 2
  199329. ac9dabbfaa Merge pull request \fI\%#48105\fP from rallytime/merge\-2017.7
  199330. .IP \(bu 2
  199331. cdb45874de Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199332. .UNINDENT
  199333. .IP \(bu 2
  199334. \fBPR\fP \fI\%#48101\fP: (\fI\%rallytime\fP) [2017.7] Update 2017.7.7 reference to 2017.7.8
  199335. @ \fI2018\-06\-14 13:14:09 UTC\fP
  199336. .INDENT 2.0
  199337. .IP \(bu 2
  199338. 2da56a69d9 Merge pull request \fI\%#48101\fP from rallytime/update\-doc\-refs\-2017.7
  199339. .IP \(bu 2
  199340. 7ba6f5fb36 Update 2017.7.7 reference to 2017.7.8
  199341. .UNINDENT
  199342. .IP \(bu 2
  199343. \fBPR\fP \fI\%#48091\fP: (\fI\%terminalmage\fP) Reverse monkeypatching after test_symlink_list finishes
  199344. @ \fI2018\-06\-13 18:02:53 UTC\fP
  199345. .INDENT 2.0
  199346. .IP \(bu 2
  199347. 5a0e3d46e7 Merge pull request \fI\%#48091\fP from terminalmage/fix\-file_roots\-monkeypatching
  199348. .IP \(bu 2
  199349. 6fe711ad76 Reverse monkeypatching after test_symlink_list finishes
  199350. .UNINDENT
  199351. .IP \(bu 2
  199352. \fBPR\fP \fI\%#48088\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  199353. @ \fI2018\-06\-13 14:03:03 UTC\fP
  199354. .INDENT 2.0
  199355. .IP \(bu 2
  199356. 053b019a8f Merge pull request \fI\%#48088\fP from rallytime/update_version_doc_2017.7
  199357. .IP \(bu 2
  199358. 1b8d1c936b Remove "in progress" info for 2017.7.6 release notes
  199359. .IP \(bu 2
  199360. 9a0f4d190a Update release versions for the 2017.7 branch
  199361. .UNINDENT
  199362. .IP \(bu 2
  199363. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  199364. .IP \(bu 2
  199365. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed
  199366. @ \fI2018\-06\-13 13:25:35 UTC\fP
  199367. .INDENT 2.0
  199368. .IP \(bu 2
  199369. d6d2c5ee18 Merge pull request \fI\%#48075\fP from garethgreenaway/48038_jobs_are_not_deduping_minion_side
  199370. .IP \(bu 2
  199371. c537b3275b Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  199372. .UNINDENT
  199373. .IP \(bu 2
  199374. \fBPR\fP \fI\%#48071\fP: (\fI\%terminalmage\fP) Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  199375. @ \fI2018\-06\-12 20:34:13 UTC\fP
  199376. .INDENT 2.0
  199377. .IP \(bu 2
  199378. aa33cc0b0c Merge pull request \fI\%#48071\fP from terminalmage/gitfs\-docs
  199379. .IP \(bu 2
  199380. 24545204b3 Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  199381. .UNINDENT
  199382. .IP \(bu 2
  199383. \fBISSUE\fP \fI\%#48039\fP: (\fI\%twellspring\fP) github.repo_present returns stacktrace, got multiple values for keyword argument profile (refs: \fI\%#48040\fP)
  199384. .IP \(bu 2
  199385. \fBPR\fP \fI\%#48053\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48040\fP to 2017.7
  199386. @ \fI2018\-06\-12 14:46:12 UTC\fP
  199387. .INDENT 2.0
  199388. .IP \(bu 2
  199389. \fBPR\fP \fI\%#48040\fP: (\fI\%twellspring\fP) states/github.py fix for incorrect positional argument (refs: \fI\%#48053\fP)
  199390. .IP \(bu 2
  199391. fb4ceacb88 Merge pull request \fI\%#48053\fP from rallytime/bp\-48040
  199392. .IP \(bu 2
  199393. 265b22b194 states/github.py fix for incorrect positional argument
  199394. .UNINDENT
  199395. .IP \(bu 2
  199396. \fBPR\fP \fI\%#48024\fP: (\fI\%gtmanfred\fP) add pytest coverage and xml junits
  199397. @ \fI2018\-06\-12 14:03:26 UTC\fP
  199398. .INDENT 2.0
  199399. .IP \(bu 2
  199400. f37dcaac6d Merge pull request \fI\%#48024\fP from gtmanfred/2017.7
  199401. .IP \(bu 2
  199402. 56b074ab27 allow specifying a different state to run on converge
  199403. .IP \(bu 2
  199404. cc9c4b4d5a add pytest coverage and xml junits
  199405. .UNINDENT
  199406. .IP \(bu 2
  199407. \fBPR\fP \fI\%#48044\fP: (\fI\%twangboy\fP) Add fail code for WinHTTP send/receive error
  199408. @ \fI2018\-06\-11 13:49:29 UTC\fP
  199409. .INDENT 2.0
  199410. .IP \(bu 2
  199411. ffee3576ec Merge pull request \fI\%#48044\fP from twangboy/wua_add_fail_code
  199412. .IP \(bu 2
  199413. d41d0c25eb Add faile code for WinHTTP send/receive error
  199414. .UNINDENT
  199415. .IP \(bu 2
  199416. \fBPR\fP \fI\%#48009\fP: (\fI\%dwoz\fP) minionswarm runs on windows
  199417. @ \fI2018\-06\-08 13:52:36 UTC\fP
  199418. .INDENT 2.0
  199419. .IP \(bu 2
  199420. 871a910fcb Merge pull request \fI\%#48009\fP from dwoz/winswarmfix
  199421. .IP \(bu 2
  199422. 5027c7bb84 minionswarm runs on windows
  199423. .UNINDENT
  199424. .IP \(bu 2
  199425. \fBPR\fP \fI\%#47968\fP: (\fI\%gtmanfred\fP) Clean up tox + pytest
  199426. @ \fI2018\-06\-06 21:23:52 UTC\fP
  199427. .INDENT 2.0
  199428. .IP \(bu 2
  199429. 0dcaead36d Merge pull request \fI\%#47968\fP from gtmanfred/2017.7
  199430. .IP \(bu 2
  199431. ae1b0d28bb pass LANG and HOME into tox commands
  199432. .IP \(bu 2
  199433. 8d15b93d00 remove tox virtualenvs from doc tests
  199434. .IP \(bu 2
  199435. e1872e2036 simplify tox.ini
  199436. .IP \(bu 2
  199437. 81bd01f5af add tests.txt for running tests with tox requirements
  199438. .IP \(bu 2
  199439. 556a2067fc fix masterapi test to use testing directory for configs
  199440. .IP \(bu 2
  199441. 5a41f484ef add EXPENSIVE_TESTS
  199442. .IP \(bu 2
  199443. 055cd5a6ba set DESTRUCTIVE_TESTS environment variable for pytest
  199444. .UNINDENT
  199445. .IP \(bu 2
  199446. \fBPR\fP \fI\%#47978\fP: (\fI\%twangboy\fP) Add try/finally, fix typo in 7zip def file
  199447. @ \fI2018\-06\-06 19:06:04 UTC\fP
  199448. .INDENT 2.0
  199449. .IP \(bu 2
  199450. 42dd6b83eb Merge pull request \fI\%#47978\fP from twangboy/fix_test_pkg
  199451. .IP \(bu 2
  199452. 8bb36b3a4b Add try/finally, fix typo in 7zip def file
  199453. .UNINDENT
  199454. .IP \(bu 2
  199455. \fBPR\fP \fI\%#47959\fP: (\fI\%twangboy\fP) Fix failing test when service doesn\(aqt exist
  199456. @ \fI2018\-06\-06 19:05:43 UTC\fP
  199457. .INDENT 2.0
  199458. .IP \(bu 2
  199459. a67b21ef3d Merge pull request \fI\%#47959\fP from twangboy/fix_test_service
  199460. .IP \(bu 2
  199461. 0cd47aa81e Remove unused import
  199462. .IP \(bu 2
  199463. d4b42540e3 Fix failing test when service doesn\(aqt exist
  199464. .UNINDENT
  199465. .IP \(bu 2
  199466. \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)
  199467. .IP \(bu 2
  199468. \fBPR\fP \fI\%#47983\fP: (\fI\%garethgreenaway\fP) [2017.7] Backporting \fI\%#47843\fP
  199469. @ \fI2018\-06\-06 19:03:15 UTC\fP
  199470. .INDENT 2.0
  199471. .IP \(bu 2
  199472. \fBPR\fP \fI\%#47843\fP: (\fI\%garethgreenaway\fP) [2018.3] orchestration results False when function is False (refs: \fI\%#47983\fP)
  199473. .IP \(bu 2
  199474. b81d482067 Merge pull request \fI\%#47983\fP from garethgreenaway/backport_47843_2017_7
  199475. .IP \(bu 2
  199476. 7b7fb1f5d5 Adding missing test sls file.
  199477. .IP \(bu 2
  199478. 54e51bc627 Backporting \fI\%#47843\fP to 2017.7, updating test for 2017.7.
  199479. .UNINDENT
  199480. .IP \(bu 2
  199481. \fBPR\fP \fI\%#47533\fP: (\fI\%twangboy\fP) Fix issues with functions that use makedirs on Windows
  199482. @ \fI2018\-06\-06 17:20:51 UTC\fP
  199483. .INDENT 2.0
  199484. .IP \(bu 2
  199485. d56ddad22c Merge pull request \fI\%#47533\fP from twangboy/fix_47178
  199486. .IP \(bu 2
  199487. 24717cbc21 Change version added to 2017.7.7
  199488. .IP \(bu 2
  199489. 0592f1bac2 Fix issues with functions that user makedirs on Windows
  199490. .UNINDENT
  199491. .IP \(bu 2
  199492. \fBPR\fP \fI\%#47827\fP: (\fI\%twangboy\fP) Fix issue when archive is on mapped drive
  199493. @ \fI2018\-06\-06 17:18:00 UTC\fP
  199494. .INDENT 2.0
  199495. .IP \(bu 2
  199496. 5c56b8c755 Merge pull request \fI\%#47827\fP from twangboy/fix_47791
  199497. .IP \(bu 2
  199498. fbbd91f09e Add more descriptive debug message
  199499. .IP \(bu 2
  199500. 365f81651b Fix deprecated exception handling
  199501. .IP \(bu 2
  199502. 8dd6710b93 Use local instead of network
  199503. .IP \(bu 2
  199504. 980d99d74b Fix issue when archive is on mapped drive
  199505. .UNINDENT
  199506. .IP \(bu 2
  199507. \fBISSUE\fP \fI\%#47888\fP: (\fI\%mbunkus\fP) postfix.set_main overwrites wrong keys (refs: \fI\%#47966\fP)
  199508. .IP \(bu 2
  199509. \fBPR\fP \fI\%#47966\fP: (\fI\%mbunkus\fP) Fix postfix.set_main\(aqs assumption of prefix\-free key names
  199510. @ \fI2018\-06\-06 15:43:24 UTC\fP
  199511. .INDENT 2.0
  199512. .IP \(bu 2
  199513. 998a1c13d5 Merge pull request \fI\%#47966\fP from mbunkus/fix\-postfix\-prefix\-free\-key\-names\-assumption
  199514. .IP \(bu 2
  199515. 0ae402d1b5 Fix postfix.set_main\(aqs assumption of prefix\-free key names
  199516. .UNINDENT
  199517. .IP \(bu 2
  199518. \fBPR\fP \fI\%#47824\fP: (\fI\%twangboy\fP) Fix issues with setup.py in Windows
  199519. @ \fI2018\-06\-05 17:39:53 UTC\fP
  199520. .INDENT 2.0
  199521. .IP \(bu 2
  199522. df50ce7b1b Merge pull request \fI\%#47824\fP from twangboy/fix_setup.py
  199523. .IP \(bu 2
  199524. 4538b3abb3 Remove \(aqlen\-as\-condition\(aq disablement
  199525. .IP \(bu 2
  199526. d4efcc3c8b Skip lint errors
  199527. .IP \(bu 2
  199528. 1b3977f8d4 Remove m2crypto download for Windows
  199529. .UNINDENT
  199530. .IP \(bu 2
  199531. \fBPR\fP \fI\%#47922\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.refresh_db verbose=True PY3 compatibility fix
  199532. @ \fI2018\-06\-05 13:31:49 UTC\fP
  199533. .INDENT 2.0
  199534. .IP \(bu 2
  199535. 3e91a31134 Merge pull request \fI\%#47922\fP from damon\-atkins/2017.7_win_pkg_keys_fix
  199536. .IP \(bu 2
  199537. 7129203b1b Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  199538. .UNINDENT
  199539. .IP \(bu 2
  199540. \fBPR\fP \fI\%#47933\fP: (\fI\%terminalmage\fP) Clarify pillar.get docs
  199541. @ \fI2018\-06\-04 14:07:58 UTC\fP
  199542. .INDENT 2.0
  199543. .IP \(bu 2
  199544. 8008fca2f6 Merge pull request \fI\%#47933\fP from terminalmage/add\-pillar.get\-docs
  199545. .IP \(bu 2
  199546. 4eb022b675 Clarify pillar.get docs
  199547. .UNINDENT
  199548. .IP \(bu 2
  199549. \fBPR\fP \fI\%#47944\fP: (\fI\%terminalmage\fP) Replace use of deprecated argument name in git.detached docstring
  199550. @ \fI2018\-06\-04 13:53:34 UTC\fP
  199551. .INDENT 2.0
  199552. .IP \(bu 2
  199553. ab565bfaa3 Merge pull request \fI\%#47944\fP from terminalmage/fix\-git.detached\-docs
  199554. .IP \(bu 2
  199555. 1d082b4389 Replace use of deprecated argument name in git.detached docstring
  199556. .IP \(bu 2
  199557. 6253793cb6 Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  199558. .UNINDENT
  199559. .IP \(bu 2
  199560. \fBPR\fP \fI\%#47860\fP: (\fI\%terminalmage\fP) Clean up doc build warnings, add best practices for writing states
  199561. @ \fI2018\-06\-01 14:42:55 UTC\fP
  199562. .INDENT 2.0
  199563. .IP \(bu 2
  199564. a2b588299b Merge pull request \fI\%#47860\fP from terminalmage/state\-writing\-docs
  199565. .IP \(bu 2
  199566. 8cb33d3dec Quiet the linter
  199567. .IP \(bu 2
  199568. af51e16f23 Use more elegant RST syntax
  199569. .IP \(bu 2
  199570. 91cd57d1e0 Update mocking to reflect changes in service module
  199571. .IP \(bu 2
  199572. b9ace5a859 Fix crappy mocking
  199573. .IP \(bu 2
  199574. bc9e3acef3 Lint fixes
  199575. .IP \(bu 2
  199576. d37f7e4f04 Add 2017.7.6 release notes
  199577. .IP \(bu 2
  199578. 9dddeeefab Improve documentation on syncing states
  199579. .IP \(bu 2
  199580. f465fa3ca7 Add best practices docs for writing states
  199581. .IP \(bu 2
  199582. 93ee5ee2b0 Fix all Sphinx warnings
  199583. .IP \(bu 2
  199584. 64b9b4d0b8 Clarify that name would override the id declaration
  199585. .UNINDENT
  199586. .IP \(bu 2
  199587. \fBPR\fP \fI\%#47877\fP: (\fI\%dwoz\fP) Revert job chunk wait time change
  199588. @ \fI2018\-06\-01 14:11:46 UTC\fP
  199589. .INDENT 2.0
  199590. .IP \(bu 2
  199591. d2f3377b5b Merge pull request \fI\%#47877\fP from dwoz/sleep_audit
  199592. .IP \(bu 2
  199593. ebc7cde9cb Revert job chunk wait time change
  199594. .INDENT 2.0
  199595. .INDENT 3.5
  199596. .INDENT 0.0
  199597. .IP \(bu 2
  199598. 4ce0fe6546 win_pkg under py3 keys returns a view instead of a list, wrap keys in list()
  199599. .UNINDENT
  199600. .UNINDENT
  199601. .UNINDENT
  199602. .UNINDENT
  199603. .IP \(bu 2
  199604. \fBPR\fP \fI\%#47917\fP: (\fI\%dwoz\fP) Fix windows tests suite breakage
  199605. @ \fI2018\-06\-01 11:42:15 UTC\fP
  199606. .INDENT 2.0
  199607. .IP \(bu 2
  199608. \fBPR\fP \fI\%#47500\fP: (\fI\%dwoz\fP) Get the current username on windows (refs: \fI\%#47917\fP)
  199609. .IP \(bu 2
  199610. 735e92093e Merge pull request \fI\%#47917\fP from dwoz/winsuite
  199611. .IP \(bu 2
  199612. 118601ebd6 Fix windows tests suite breakage
  199613. .UNINDENT
  199614. .IP \(bu 2
  199615. \fBPR\fP \fI\%#47822\fP: (\fI\%Ch3LL\fP) Add user state integration tests to windows
  199616. @ \fI2018\-05\-30 21:13:07 UTC\fP
  199617. .INDENT 2.0
  199618. .IP \(bu 2
  199619. 63efb76d51 Merge pull request \fI\%#47822\fP from Ch3LL/win_user_test
  199620. .IP \(bu 2
  199621. 3a691b405f add user_home path for both windows and linux
  199622. .IP \(bu 2
  199623. 788abf771e Add user state integration tests to windows
  199624. .UNINDENT
  199625. .IP \(bu 2
  199626. \fBPR\fP \fI\%#47876\fP: (\fI\%doesitblend\fP) Add file read windows
  199627. @ \fI2018\-05\-30 14:03:55 UTC\fP
  199628. .INDENT 2.0
  199629. .IP \(bu 2
  199630. b9da4f1221 Merge pull request \fI\%#47876\fP from doesitblend/add\-file\-read\-windows
  199631. .IP \(bu 2
  199632. 3f7e7ec327 Add file.read function to Windows module
  199633. .UNINDENT
  199634. .IP \(bu 2
  199635. \fBPR\fP \fI\%#47882\fP: (\fI\%frogunder\fP) add whoami test
  199636. @ \fI2018\-05\-30 13:47:13 UTC\fP
  199637. .INDENT 2.0
  199638. .IP \(bu 2
  199639. cbe2ecfae8 Merge pull request \fI\%#47882\fP from frogunder/45013
  199640. .IP \(bu 2
  199641. 38d114a2d2 add whoami test
  199642. .UNINDENT
  199643. .IP \(bu 2
  199644. \fBPR\fP \fI\%#47853\fP: (\fI\%dwoz\fP) Fix for py3 ec2 cloud tests
  199645. @ \fI2018\-05\-28 23:08:09 UTC\fP
  199646. .INDENT 2.0
  199647. .IP \(bu 2
  199648. 4b28e510f1 Merge pull request \fI\%#47853\fP from dwoz/py3\-cloud\-test
  199649. .IP \(bu 2
  199650. c2f8aef7c5 Fix for py3 ec2 cloud tests
  199651. .UNINDENT
  199652. .IP \(bu 2
  199653. \fBISSUE\fP \fI\%#47833\fP: (\fI\%blefeuvr\fP) reactor.add | list | delete \-> python exception (refs: \fI\%#47847\fP)
  199654. .IP \(bu 2
  199655. \fBPR\fP \fI\%#47847\fP: (\fI\%garethgreenaway\fP) [2017.7] reactor runner documentation
  199656. @ \fI2018\-05\-25 23:23:31 UTC\fP
  199657. .INDENT 2.0
  199658. .IP \(bu 2
  199659. 215efa6b73 Merge pull request \fI\%#47847\fP from garethgreenaway/47833_reactor_runner_documentation
  199660. .IP \(bu 2
  199661. 03676712de Adding some addition documentation to the reactor runner indicating that the reactor system must be active prior to using it.
  199662. .UNINDENT
  199663. .IP \(bu 2
  199664. \fBPR\fP \fI\%#47846\fP: (\fI\%Ch3LL\fP) Fix flaky refresh pillar integration test
  199665. @ \fI2018\-05\-25 20:50:48 UTC\fP
  199666. .INDENT 2.0
  199667. .IP \(bu 2
  199668. 0bf651b470 Merge pull request \fI\%#47846\fP from Ch3LL/p_refresh_test
  199669. .IP \(bu 2
  199670. 019edad8e4 Fix flaky refresh pillar integration test
  199671. .UNINDENT
  199672. .IP \(bu 2
  199673. \fBPR\fP \fI\%#47552\fP: (\fI\%twangboy\fP) Show GPO settings, raise error if trying to set gpo managed settings
  199674. @ \fI2018\-05\-25 20:41:22 UTC\fP
  199675. .INDENT 2.0
  199676. .IP \(bu 2
  199677. 799fce979d Merge pull request \fI\%#47552\fP from twangboy/fix_46981
  199678. .IP \(bu 2
  199679. cffc9b7806 Merge branch \(aq2017.7\(aq into fix_46981
  199680. .IP \(bu 2
  199681. 81308a4a44 Add release notes for 2017.7.7
  199682. .IP \(bu 2
  199683. 008af0ac6b Fix unit tests
  199684. .IP \(bu 2
  199685. 87097eefb6 Add comments about how get is returning data
  199686. .IP \(bu 2
  199687. f1f1bfc5c1 Show GPO settings, raise error if trying to set gpo managed settings
  199688. .UNINDENT
  199689. .IP \(bu 2
  199690. \fBISSUE\fP \fI\%#47690\fP: (\fI\%lomeroe\fP) productname grain missing on Solaris (refs: \fI\%#47691\fP)
  199691. .IP \(bu 2
  199692. \fBPR\fP \fI\%#47691\fP: (\fI\%lomeroe\fP) Update regexes for Solaris \(aqproduct\(aq grain and copy to \(aqproductname\(aq grain
  199693. @ \fI2018\-05\-25 20:38:18 UTC\fP
  199694. .INDENT 2.0
  199695. .IP \(bu 2
  199696. ffc2ebc373 Merge pull request \fI\%#47691\fP from lomeroe/solaris_product_grains
  199697. .IP \(bu 2
  199698. 6889befc6b Merge branch \(aq2017.7\(aq into solaris_product_grains
  199699. .IP \(bu 2
  199700. 49053bc106 lint fix
  199701. .IP \(bu 2
  199702. 6f185c9179 another lint fix
  199703. .IP \(bu 2
  199704. dbffba6876 fix tons of errors in my tests
  199705. .IP \(bu 2
  199706. 8c9355d34c Lint fix
  199707. .IP \(bu 2
  199708. 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.
  199709. .UNINDENT
  199710. .IP \(bu 2
  199711. \fBPR\fP \fI\%#47778\fP: (\fI\%Ch3LL\fP) Add test_pkg integration state tests to windows
  199712. @ \fI2018\-05\-25 20:36:47 UTC\fP
  199713. .INDENT 2.0
  199714. .IP \(bu 2
  199715. 96b7c0cc76 Merge pull request \fI\%#47778\fP from Ch3LL/win_state_pkg
  199716. .IP \(bu 2
  199717. e1786de6b0 Merge branch \(aq2017.7\(aq into win_state_pkg
  199718. .IP \(bu 2
  199719. f8c467d3e6 Fix text editor error
  199720. .IP \(bu 2
  199721. 872e162137 Add test_pkg integration state tests to windows
  199722. .UNINDENT
  199723. .IP \(bu 2
  199724. \fBPR\fP \fI\%#47823\fP: (\fI\%Ch3LL\fP) Add win_dns module integration tests for windows
  199725. @ \fI2018\-05\-25 20:34:03 UTC\fP
  199726. .INDENT 2.0
  199727. .IP \(bu 2
  199728. 6f934c2259 Merge pull request \fI\%#47823\fP from Ch3LL/win_dns_test
  199729. .IP \(bu 2
  199730. 7848114d6a Add win_dns module integration tests for windows
  199731. .UNINDENT
  199732. .IP \(bu 2
  199733. \fBPR\fP \fI\%#47838\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47810\fP to 2017.7
  199734. @ \fI2018\-05\-25 20:33:44 UTC\fP
  199735. .INDENT 2.0
  199736. .IP \(bu 2
  199737. \fBPR\fP \fI\%#47810\fP: (\fI\%rmcintosh\fP) Fix Linode plan selection (refs: \fI\%#47838\fP)
  199738. .IP \(bu 2
  199739. e63e04602d Merge pull request \fI\%#47838\fP from rallytime/bp\-47810
  199740. .IP \(bu 2
  199741. bd2b62fa66 better debug message
  199742. .IP \(bu 2
  199743. 83565c55df Address PR feedback
  199744. .IP \(bu 2
  199745. 50bce3a2f3 make decode_linode_plan_label a private function
  199746. .IP \(bu 2
  199747. 2ba4fc4cea fix raising when a \(aqGB\(aq format invalid plan is supplied
  199748. .IP \(bu 2
  199749. 3afb50d5a2 slight cleanup
  199750. .IP \(bu 2
  199751. 319fbd3406 match quotation mark types properly
  199752. .IP \(bu 2
  199753. 95e0202223 more consistent use of parens in logged warning
  199754. .IP \(bu 2
  199755. f52926ca87 log a warning when the user supplied a label we could decode but was not in the proper format
  199756. .IP \(bu 2
  199757. 121303d827 reduce complexity of get_plan_id by moving decoding of the user\-supplied label to its own function
  199758. .IP \(bu 2
  199759. cf534c7314 Fix Linode plan selection
  199760. .UNINDENT
  199761. .IP \(bu 2
  199762. \fBPR\fP \fI\%#47805\fP: (\fI\%twangboy\fP) Add sign.bat script for signing packages
  199763. @ \fI2018\-05\-25 13:53:58 UTC\fP
  199764. .INDENT 2.0
  199765. .IP \(bu 2
  199766. 9ef6e60617 Merge pull request \fI\%#47805\fP from twangboy/add_sign.bat
  199767. .IP \(bu 2
  199768. 66d8b0331a Add sign.bat script for signing packages
  199769. .UNINDENT
  199770. .IP \(bu 2
  199771. \fBPR\fP \fI\%#47500\fP: (\fI\%dwoz\fP) Get the current username on windows (refs: \fI\%#47917\fP)
  199772. @ \fI2018\-05\-24 19:14:07 UTC\fP
  199773. .INDENT 2.0
  199774. .IP \(bu 2
  199775. 93420950d3 Merge pull request \fI\%#47500\fP from dwoz/winuser
  199776. .IP \(bu 2
  199777. 0ca5224cbf Merge branch \(aq2017.7\(aq into winuser
  199778. .IP \(bu 2
  199779. e5948902af Use salt utils method for this_user
  199780. .IP \(bu 2
  199781. a056a293f1 Centeralize test username lookup
  199782. .IP \(bu 2
  199783. 6a6ab69722 Get the current username on windows
  199784. .UNINDENT
  199785. .IP \(bu 2
  199786. \fBISSUE\fP \fI\%#35960\fP: (\fI\%basepi\fP) Beacons cannot be reloaded/refreshed without minion restart (refs: \fI\%#40892\fP)
  199787. .IP \(bu 2
  199788. \fBPR\fP \fI\%#47802\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40892\fP to 2017.7
  199789. @ \fI2018\-05\-24 16:34:35 UTC\fP
  199790. .INDENT 2.0
  199791. .IP \(bu 2
  199792. \fBPR\fP \fI\%#40892\fP: (\fI\%jagguli\fP) add minion function to reload beacon \fI\%#35960\fP (refs: \fI\%#47802\fP)
  199793. .IP \(bu 2
  199794. 552526f309 Merge pull request \fI\%#47802\fP from rallytime/bp\-40892
  199795. .IP \(bu 2
  199796. bb357da084 add minion function to reload beacon \fI\%#35960\fP
  199797. .UNINDENT
  199798. .IP \(bu 2
  199799. \fBPR\fP \fI\%#47816\fP: (\fI\%Ch3LL\fP) Add windows to service disable ERROR check in tests
  199800. @ \fI2018\-05\-24 15:31:36 UTC\fP
  199801. .INDENT 2.0
  199802. .IP \(bu 2
  199803. c9cccf53b9 Merge pull request \fI\%#47816\fP from Ch3LL/disable_windows
  199804. .IP \(bu 2
  199805. 2509d36888 Add windows to service disable ERROR check in tests
  199806. .UNINDENT
  199807. .IP \(bu 2
  199808. \fBPR\fP \fI\%#47773\fP: (\fI\%frogunder\fP) add win_servermanager.list_available test
  199809. @ \fI2018\-05\-23 19:44:14 UTC\fP
  199810. .INDENT 2.0
  199811. .IP \(bu 2
  199812. 2cb6634c6b Merge pull request \fI\%#47773\fP from frogunder/45011
  199813. .IP \(bu 2
  199814. 7c9b0bda33 add win_servermanager.list_available test
  199815. .UNINDENT
  199816. .IP \(bu 2
  199817. \fBPR\fP \fI\%#47807\fP: (\fI\%dwoz\fP) Try an even bigger timeout
  199818. @ \fI2018\-05\-23 19:38:21 UTC\fP
  199819. .INDENT 2.0
  199820. .IP \(bu 2
  199821. e65dece202 Merge pull request \fI\%#47807\fP from dwoz/winrmtests
  199822. .IP \(bu 2
  199823. 1f1cc1357a Increase instance size for cloud tests
  199824. .IP \(bu 2
  199825. be8dcd21f1 Try an even bigger timeout
  199826. .UNINDENT
  199827. .IP \(bu 2
  199828. \fBPR\fP \fI\%#47765\fP: (\fI\%meaksh\fP) Prevent zypper from parsing repo configuration from not .repo files
  199829. @ \fI2018\-05\-23 14:45:04 UTC\fP
  199830. .INDENT 2.0
  199831. .IP \(bu 2
  199832. 46618d2ce7 Merge pull request \fI\%#47765\fP from meaksh/2017.7\-fix\-zypper\-error\-reading\-repo
  199833. .IP \(bu 2
  199834. 4475ba19b8 Prevent zypper from parsing repo configuration from not .repo files
  199835. .UNINDENT
  199836. .IP \(bu 2
  199837. \fBPR\fP \fI\%#47781\fP: (\fI\%rallytime\fP) Update cloud test profile and docs to use new Linode size lables
  199838. @ \fI2018\-05\-23 13:09:13 UTC\fP
  199839. .INDENT 2.0
  199840. .IP \(bu 2
  199841. 0e87559ee3 Merge pull request \fI\%#47781\fP from rallytime/update\-linode\-sizes
  199842. .IP \(bu 2
  199843. a90c1b760e Update cloud test profile and docs to use new Linode size lables
  199844. .UNINDENT
  199845. .IP \(bu 2
  199846. \fBPR\fP \fI\%#47748\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199847. @ \fI2018\-05\-22 20:53:02 UTC\fP
  199848. .INDENT 2.0
  199849. .IP \(bu 2
  199850. 3ddc56cb9b Merge pull request \fI\%#47748\fP from rallytime/merge\-2017.7
  199851. .IP \(bu 2
  199852. b75f5ae38e Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199853. .IP \(bu 2
  199854. 17596f3025 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199855. .IP \(bu 2
  199856. e458f4a031 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199857. .UNINDENT
  199858. .IP \(bu 2
  199859. \fBPR\fP \fI\%#47779\fP: (\fI\%dwoz\fP) Increase ec2 cloud timeouts to 1000
  199860. @ \fI2018\-05\-22 20:35:45 UTC\fP
  199861. .INDENT 2.0
  199862. .IP \(bu 2
  199863. 0ddc864f90 Merge pull request \fI\%#47779\fP from dwoz/winrmtests
  199864. .IP \(bu 2
  199865. d5eafe9d53 Use common timeout variable
  199866. .IP \(bu 2
  199867. 7e948eb540 Increase ec2 cloud timeouts to 1000
  199868. .UNINDENT
  199869. .IP \(bu 2
  199870. \fBPR\fP \fI\%#47430\fP: (\fI\%baniobloom\fP) Add catch for VPCAssociationNotFound
  199871. @ \fI2018\-05\-22 14:54:01 UTC\fP
  199872. .INDENT 2.0
  199873. .IP \(bu 2
  199874. 17c4c8443c Merge pull request \fI\%#47430\fP from baniobloom/vpc_association_not_found
  199875. .IP \(bu 2
  199876. 0f1d007f91 added catch for VPCAssociationNotFound
  199877. .UNINDENT
  199878. .IP \(bu 2
  199879. \fBPR\fP \fI\%#47525\fP: (\fI\%baniobloom\fP) Trying to add a duplicate sec group rule true
  199880. @ \fI2018\-05\-22 14:51:09 UTC\fP
  199881. .INDENT 2.0
  199882. .IP \(bu 2
  199883. 9c5dde1449 Merge pull request \fI\%#47525\fP from baniobloom/duplicate_sec_group_rule
  199884. .IP \(bu 2
  199885. dcc35df489 if we are trying to add the same rule then we are already in the desired state, return true
  199886. .UNINDENT
  199887. .IP \(bu 2
  199888. \fBPR\fP \fI\%#47772\fP: (\fI\%gtmanfred\fP) lock down dependencies for kitchen\-salt
  199889. @ \fI2018\-05\-22 14:21:49 UTC\fP
  199890. .INDENT 2.0
  199891. .IP \(bu 2
  199892. 536ce2fa42 Merge pull request \fI\%#47772\fP from gtmanfred/2017.7
  199893. .IP \(bu 2
  199894. 67756a50fd lock down dependencies for kitchen\-salt
  199895. .UNINDENT
  199896. .IP \(bu 2
  199897. \fBISSUE\fP \fI\%#47717\fP: (\fI\%server\-monitoring\fP) Invalid output of pkg.list_upgrades on Fedora 27 Server (refs: \fI\%#47749\fP)
  199898. .IP \(bu 2
  199899. \fBPR\fP \fI\%#47749\fP: (\fI\%terminalmage\fP) Fix "dnf list upgrades" parsing
  199900. @ \fI2018\-05\-22 12:51:29 UTC\fP
  199901. .INDENT 2.0
  199902. .IP \(bu 2
  199903. 12b330f049 Merge pull request \fI\%#47749\fP from terminalmage/issue47717
  199904. .IP \(bu 2
  199905. cd484bef69 Fix "dnf list upgrades" parsing
  199906. .UNINDENT
  199907. .IP \(bu 2
  199908. \fBPR\fP \fI\%#47755\fP: (\fI\%dwoz\fP) Be explicit about winrm setting
  199909. @ \fI2018\-05\-21 22:39:24 UTC\fP
  199910. .INDENT 2.0
  199911. .IP \(bu 2
  199912. 5cd18b9e70 Merge pull request \fI\%#47755\fP from dwoz/winrmtests
  199913. .IP \(bu 2
  199914. 57dd89e6c3 Default to ec2 classic compatible images
  199915. .IP \(bu 2
  199916. f89668920a Be explicit about winrm setting
  199917. .UNINDENT
  199918. .IP \(bu 2
  199919. \fBPR\fP \fI\%#47668\fP: (\fI\%Ch3LL\fP) Add pkg.latest_version windows test
  199920. @ \fI2018\-05\-21 20:26:45 UTC\fP
  199921. .INDENT 2.0
  199922. .IP \(bu 2
  199923. f45a96ba1d Merge pull request \fI\%#47668\fP from Ch3LL/win_pkg_test
  199924. .IP \(bu 2
  199925. a8981024de Add pkg.latest_version windows test
  199926. .UNINDENT
  199927. .IP \(bu 2
  199928. \fBPR\fP \fI\%#47750\fP: (\fI\%dwoz\fP) Allow ssh_interface to default to public_ips
  199929. @ \fI2018\-05\-21 17:14:11 UTC\fP
  199930. .INDENT 2.0
  199931. .IP \(bu 2
  199932. 7b12444dfa Merge pull request \fI\%#47750\fP from dwoz/cloudtest
  199933. .IP \(bu 2
  199934. 63b722ba21 Allow ssh_interface to default to public_ips
  199935. .UNINDENT
  199936. .IP \(bu 2
  199937. \fBPR\fP \fI\%#47737\fP: (\fI\%dwoz\fP) Cloud test fixup
  199938. @ \fI2018\-05\-21 14:19:49 UTC\fP
  199939. .INDENT 2.0
  199940. .IP \(bu 2
  199941. 27fbb42210 Merge pull request \fI\%#47737\fP from dwoz/win_timeout
  199942. .IP \(bu 2
  199943. e88833a07d Cloud test fixup
  199944. .UNINDENT
  199945. .IP \(bu 2
  199946. \fBPR\fP \fI\%#47729\fP: (\fI\%UtahDave\fP) fix cli example to match function name
  199947. @ \fI2018\-05\-19 11:31:21 UTC\fP
  199948. .INDENT 2.0
  199949. .IP \(bu 2
  199950. 1a93f060fb Merge pull request \fI\%#47729\fP from UtahDave/fix_get_info_doc
  199951. .IP \(bu 2
  199952. 443a2d72a2 fix cli example to match function name
  199953. .UNINDENT
  199954. .IP \(bu 2
  199955. \fBISSUE\fP \fI\%#47182\fP: (\fI\%MartinEmrich\fP) state.highstate error with require_in: sls: (refs: \fI\%#47682\fP)
  199956. .IP \(bu 2
  199957. \fBPR\fP \fI\%#47682\fP: (\fI\%terminalmage\fP) Fix traceback when excludes are present in an included SLS file
  199958. @ \fI2018\-05\-18 16:47:47 UTC\fP
  199959. .INDENT 2.0
  199960. .IP \(bu 2
  199961. 00a13761c7 Merge pull request \fI\%#47682\fP from terminalmage/issue47182
  199962. .IP \(bu 2
  199963. d0243e8f23 Suppress spurious lint failure
  199964. .IP \(bu 2
  199965. 3b449f11fc Add regression test for excludes issue
  199966. .IP \(bu 2
  199967. 28a7d2b81c Skip __exclude__ in find_sls_ids
  199968. .UNINDENT
  199969. .IP \(bu 2
  199970. \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)
  199971. .IP \(bu 2
  199972. \fBPR\fP \fI\%#47708\fP: (\fI\%darkpixel\fP) Wrap properties loop with a check for None. Closes GH\-47696
  199973. @ \fI2018\-05\-18 15:25:44 UTC\fP
  199974. .INDENT 2.0
  199975. .IP \(bu 2
  199976. 518f7bcc62 Merge pull request \fI\%#47708\fP from darkpixel/47696\-do\-not\-enumerate\-none
  199977. .IP \(bu 2
  199978. 54e9bf9ec9 Merge branch \(aq2017.7\(aq into 47696\-do\-not\-enumerate\-none
  199979. .UNINDENT
  199980. .IP \(bu 2
  199981. \fBPR\fP \fI\%#47681\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199982. @ \fI2018\-05\-17 21:30:02 UTC\fP
  199983. .INDENT 2.0
  199984. .IP \(bu 2
  199985. cad062eaa7 Merge pull request \fI\%#47681\fP from rallytime/merge\-2017.7
  199986. .IP \(bu 2
  199987. 6c06cb3ae3 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199988. .UNINDENT
  199989. .IP \(bu 2
  199990. \fBPR\fP \fI\%#47683\fP: (\fI\%Ch3LL\fP) Remove unnecessary setUp in states.test_user test for mac
  199991. @ \fI2018\-05\-17 21:28:26 UTC\fP
  199992. .INDENT 2.0
  199993. .IP \(bu 2
  199994. fd2d45d9c2 Merge pull request \fI\%#47683\fP from Ch3LL/mac_user_test
  199995. .IP \(bu 2
  199996. 5a1b25b9c7 Remove unnecessary setUp in states.test_user test for mac
  199997. .UNINDENT
  199998. .IP \(bu 2
  199999. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic
  200000. @ \fI2018\-05\-17 14:44:10 UTC\fP
  200001. .INDENT 2.0
  200002. .IP \(bu 2
  200003. f323799c42 Merge pull request \fI\%#47692\fP from dwoz/win_instance_type
  200004. .IP \(bu 2
  200005. 20b6070d54 Default windows to m1.small for ec2\-classic
  200006. .UNINDENT
  200007. .IP \(bu 2
  200008. \fBISSUE\fP \fI\%#45125\fP: (\fI\%wes\-novack\fP) salt\-cloud no longer picking up master setting from provider file (refs: \fI\%#47665\fP)
  200009. .IP \(bu 2
  200010. \fBPR\fP \fI\%#47665\fP: (\fI\%gtmanfred\fP) use dictupdate to update the providers dictionary and merge lists
  200011. @ \fI2018\-05\-16 15:59:17 UTC\fP
  200012. .INDENT 2.0
  200013. .IP \(bu 2
  200014. 990ece5cd5 Merge pull request \fI\%#47665\fP from gtmanfred/cloud
  200015. .IP \(bu 2
  200016. fd8a02decb use dictupdate to update the providers dictionary and merge lists
  200017. .UNINDENT
  200018. .IP \(bu 2
  200019. \fBPR\fP \fI\%#47151\fP: (\fI\%zer0def\fP) Allow interaction with default section in ConfigParser serializer
  200020. @ \fI2018\-05\-16 13:53:44 UTC\fP
  200021. .INDENT 2.0
  200022. .IP \(bu 2
  200023. a2ed8cbb7f Merge pull request \fI\%#47151\fP from zer0def/configparser\-defaultsect
  200024. .IP \(bu 2
  200025. a8f2ad977e Merge branch \(aq2017.7\(aq into configparser\-defaultsect
  200026. .IP \(bu 2
  200027. cca2a806c9 Made interaction with [DEFAULT] section in ConfigParser as sane as upstream permits.
  200028. .UNINDENT
  200029. .IP \(bu 2
  200030. \fBISSUE\fP \fI\%#40846\fP: (\fI\%ghost\fP) file.managed fails for long URLs (refs: \fI\%#45808\fP)
  200031. .IP \(bu 2
  200032. \fBPR\fP \fI\%#47673\fP: (\fI\%terminalmage\fP) Backport \fI\%#45808\fP to 2017.7
  200033. @ \fI2018\-05\-16 13:52:06 UTC\fP
  200034. .INDENT 2.0
  200035. .IP \(bu 2
  200036. \fBPR\fP \fI\%#45808\fP: (\fI\%b1naryth1ef\fP) [bugfix] Fix for oversized filenames in fileclient (refs: \fI\%#47673\fP)
  200037. .IP \(bu 2
  200038. e6fb8342ef Merge pull request \fI\%#47673\fP from terminalmage/bp\-45808
  200039. .IP \(bu 2
  200040. 454291ad62 Fix errors when attempting to cache files with long names or URLs
  200041. .UNINDENT
  200042. .IP \(bu 2
  200043. \fBPR\fP \fI\%#47670\fP: (\fI\%gtmanfred\fP) add a pytest.ini and update a dependency for kitchen
  200044. @ \fI2018\-05\-16 01:56:17 UTC\fP
  200045. .INDENT 2.0
  200046. .IP \(bu 2
  200047. b0446aab07 Merge pull request \fI\%#47670\fP from gtmanfred/2017.7
  200048. .IP \(bu 2
  200049. dfd5a8715f add a pytest.ini and update a dependency for kitchen
  200050. .UNINDENT
  200051. .IP \(bu 2
  200052. \fBPR\fP \fI\%#47626\fP: (\fI\%gtmanfred\fP) Implement Pipfile and remove extra requirements.txt files
  200053. @ \fI2018\-05\-16 00:03:12 UTC\fP
  200054. .INDENT 2.0
  200055. .IP \(bu 2
  200056. 0d06da6944 Merge pull request \fI\%#47626\fP from gtmanfred/2017.7
  200057. .IP \(bu 2
  200058. 418364a533 make dev_python27.txt have the same message as dev_python34.txt
  200059. .IP \(bu 2
  200060. d53b44d10f remove lock file
  200061. .IP \(bu 2
  200062. 493ed7f93d use the toml dict format
  200063. .IP \(bu 2
  200064. e0f7cc1447 add proxy tests decorator to pytest conftest
  200065. .IP \(bu 2
  200066. 0a621dd0ec add Pipfile for managing dependencies in salt
  200067. .IP \(bu 2
  200068. f78b81db94 simplify dev and base.txt to single files
  200069. .UNINDENT
  200070. .IP \(bu 2
  200071. \fBPR\fP \fI\%#47578\fP: (\fI\%Ch3LL\fP) Ensure mac_service.disabled is correctly querying services
  200072. @ \fI2018\-05\-15 18:26:37 UTC\fP
  200073. .INDENT 2.0
  200074. .IP \(bu 2
  200075. a07a8906a0 Merge pull request \fI\%#47578\fP from Ch3LL/mac_service_disabled
  200076. .IP \(bu 2
  200077. 6032a01f55 change disable check for upstart service on ubuntu14
  200078. .IP \(bu 2
  200079. 33b4cfbc5b Change service assertion check for systemd platforms
  200080. .IP \(bu 2
  200081. 14896f9743 change codeauthor and class name
  200082. .IP \(bu 2
  200083. 502c5bdff5 Ensure mac_service.disabled is correctly querying services
  200084. .UNINDENT
  200085. .IP \(bu 2
  200086. \fBPR\fP \fI\%#47639\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  200087. @ \fI2018\-05\-14 17:58:25 UTC\fP
  200088. .INDENT 2.0
  200089. .IP \(bu 2
  200090. f63d801858 Merge pull request \fI\%#47639\fP from rallytime/merge\-2017.7
  200091. .IP \(bu 2
  200092. 1503f1020f Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  200093. .UNINDENT
  200094. .IP \(bu 2
  200095. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file
  200096. @ \fI2018\-05\-14 17:53:57 UTC\fP
  200097. .INDENT 2.0
  200098. .IP \(bu 2
  200099. db0eef3e8b Merge pull request \fI\%#47643\fP from dwoz/runas_detect
  200100. .IP \(bu 2
  200101. 8c5e54b8b3 Fix typo
  200102. .IP \(bu 2
  200103. 69bc88f1c6 Remove unwanted file
  200104. .UNINDENT
  200105. .IP \(bu 2
  200106. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas
  200107. @ \fI2018\-05\-14 15:26:36 UTC\fP
  200108. .INDENT 2.0
  200109. .IP \(bu 2
  200110. 6dd3ab9f06 Merge pull request \fI\%#47601\fP from dwoz/runas_detect
  200111. .IP \(bu 2
  200112. 3235ac08cb use ignore\-undefined\-variable
  200113. .IP \(bu 2
  200114. 58911d510a Ignore pylint WindowsError
  200115. .IP \(bu 2
  200116. 17987d3c5a Better doc string
  200117. .IP \(bu 2
  200118. a48ac26573 Skip tests when we can not use runas
  200119. .UNINDENT
  200120. .IP \(bu 2
  200121. \fBPR\fP \fI\%#47611\fP: (\fI\%Ch3LL\fP) Update debian install docs to reflect new latest debian releases
  200122. @ \fI2018\-05\-11 16:32:53 UTC\fP
  200123. .INDENT 2.0
  200124. .IP \(bu 2
  200125. f61ccae627 Merge pull request \fI\%#47611\fP from Ch3LL/deb_doc
  200126. .IP \(bu 2
  200127. 6d2ddd050f One more grammar fixup
  200128. .IP \(bu 2
  200129. 2d5ff01261 Grammar fix
  200130. .IP \(bu 2
  200131. 138847c9c4 Update debian install docs to reflect new latest debian releases
  200132. .UNINDENT
  200133. .IP \(bu 2
  200134. \fBPR\fP \fI\%#47598\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47568\fP to 2017.7
  200135. @ \fI2018\-05\-10 22:06:20 UTC\fP
  200136. .INDENT 2.0
  200137. .IP \(bu 2
  200138. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47598\fP)
  200139. .IP \(bu 2
  200140. 9e2fe284e4 Merge pull request \fI\%#47598\fP from rallytime/bp\-47568\-2017.7
  200141. .IP \(bu 2
  200142. 09458c65cf Add exception logging on serialize/deserialize exceptions
  200143. .IP \(bu 2
  200144. c62c855f9c salt.serializers.yaml/yamlex: remove invalid multi_constructor
  200145. .UNINDENT
  200146. .IP \(bu 2
  200147. \fBPR\fP \fI\%#47548\fP: (\fI\%Ch3LL\fP) Catch Sysloghandler errors when log file does not exist
  200148. @ \fI2018\-05\-10 20:23:25 UTC\fP
  200149. .INDENT 2.0
  200150. .IP \(bu 2
  200151. 8a7913ccc3 Merge pull request \fI\%#47548\fP from Ch3LL/syslog
  200152. .IP \(bu 2
  200153. 31f13a4197 sysloghander: check for 3.5.4 python version
  200154. .IP \(bu 2
  200155. a020352a03 Catch Sysloghandler errors when log file does not exist
  200156. .UNINDENT
  200157. .IP \(bu 2
  200158. \fBISSUE\fP \fI\%#47491\fP: (\fI\%doc987\fP) mysql_query.run_file Doesn\(aqt Work when query_file = salt://... (refs: \fI\%#47508\fP)
  200159. .IP \(bu 2
  200160. \fBPR\fP \fI\%#47508\fP: (\fI\%gtmanfred\fP) allow pulling the mysql_query.run_file to pull from the fileserver
  200161. @ \fI2018\-05\-10 18:12:28 UTC\fP
  200162. .INDENT 2.0
  200163. .IP \(bu 2
  200164. 82fb6ba366 Merge pull request \fI\%#47508\fP from gtmanfred/2017.7
  200165. .IP \(bu 2
  200166. 1a87e7455f allow pulling the mysql_query.run_file to pull from the fileserver
  200167. .UNINDENT
  200168. .IP \(bu 2
  200169. \fBISSUE\fP \fI\%#47203\fP: (\fI\%aesposito91\fP) NAPALM grains not updating (refs: \fI\%#47513\fP)
  200170. .IP \(bu 2
  200171. \fBISSUE\fP \fI\%#46546\fP: (\fI\%ppalmieri\fP) salt\-minion installed on vEOS does not give vendor grain (refs: \fI\%#47513\fP)
  200172. .IP \(bu 2
  200173. \fBPR\fP \fI\%#47562\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47513\fP to 2017.7
  200174. @ \fI2018\-05\-10 15:19:04 UTC\fP
  200175. .INDENT 2.0
  200176. .IP \(bu 2
  200177. \fBPR\fP \fI\%#47513\fP: (\fI\%frankiexyz\fP) Fix \fI\%#46546\fP eos napalm\(aqs grains issue (refs: \fI\%#47562\fP)
  200178. .IP \(bu 2
  200179. be29b58a09 Merge pull request \fI\%#47562\fP from rallytime/bp\-47513
  200180. .IP \(bu 2
  200181. 357bc084b3 fix \fI\%#46546\fP
  200182. .UNINDENT
  200183. .IP \(bu 2
  200184. \fBPR\fP \fI\%#47471\fP: (\fI\%meaksh\fP) Fix inconsistency with "jid" on minion scheduled jobs and the returners output
  200185. @ \fI2018\-05\-09 18:20:00 UTC\fP
  200186. .INDENT 2.0
  200187. .IP \(bu 2
  200188. d3121fcfa4 Merge pull request \fI\%#47471\fP from meaksh/2017.7\-fix\-inconsistent\-scheduled\-jid\-with\-returners
  200189. .IP \(bu 2
  200190. f079939500 Do not override jid on returners, only sending back to master
  200191. .UNINDENT
  200192. .IP \(bu 2
  200193. \fBPR\fP \fI\%#47313\fP: (\fI\%Circuitsoft\fP) Add Poky/Yocto support
  200194. @ \fI2018\-05\-09 17:31:59 UTC\fP
  200195. .INDENT 2.0
  200196. .IP \(bu 2
  200197. 662f6086db Merge pull request \fI\%#47313\fP from Circuitsoft/2017.7
  200198. .IP \(bu 2
  200199. 237560b745 Merge branch \(aq2017.7\(aq into 2017.7
  200200. .UNINDENT
  200201. .IP \(bu 2
  200202. \fBPR\fP \fI\%#47540\fP: (\fI\%terminalmage\fP) Fix corner case where runas user\(aqs HOME env value is incorrect
  200203. @ \fI2018\-05\-08 20:31:40 UTC\fP
  200204. .INDENT 2.0
  200205. .IP \(bu 2
  200206. 291d3d3bd8 Merge pull request \fI\%#47540\fP from terminalmage/cmdmod\-home\-fix
  200207. .IP \(bu 2
  200208. e4b277f82e Fix corner case where runas user\(aqs HOME env value is incorrect
  200209. .UNINDENT
  200210. .IP \(bu 2
  200211. \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)
  200212. .IP \(bu 2
  200213. \fBPR\fP \fI\%#47547\fP: (\fI\%terminalmage\fP) Add masterless mode docs to gitfs tutorial
  200214. @ \fI2018\-05\-08 20:24:29 UTC\fP
  200215. .INDENT 2.0
  200216. .IP \(bu 2
  200217. 49af577b3e Merge pull request \fI\%#47547\fP from terminalmage/gitfs\-tutorial
  200218. .IP \(bu 2
  200219. 806ffb298a Add masterless mode docs to gitfs tutorial
  200220. .UNINDENT
  200221. .IP \(bu 2
  200222. \fBPR\fP \fI\%#47538\fP: (\fI\%terminalmage\fP) Fix/clarify some of the pip module documentation
  200223. @ \fI2018\-05\-08 15:24:18 UTC\fP
  200224. .INDENT 2.0
  200225. .IP \(bu 2
  200226. 476ba053d1 Merge pull request \fI\%#47538\fP from terminalmage/pip\-docs
  200227. .IP \(bu 2
  200228. 98e8ffeba4 Fix/clarify some of the pip module documentation
  200229. .UNINDENT
  200230. .IP \(bu 2
  200231. \fBPR\fP \fI\%#47524\fP: (\fI\%dwoz\fP) Gracefully handle blank lines in whitelist.txt
  200232. @ \fI2018\-05\-08 15:04:23 UTC\fP
  200233. .INDENT 2.0
  200234. .IP \(bu 2
  200235. 7cc8d9d30a Merge pull request \fI\%#47524\fP from dwoz/whitelistlines
  200236. .IP \(bu 2
  200237. 2605ff8712 Gracefully handle blank lines in whitelist.txt
  200238. .UNINDENT
  200239. .IP \(bu 2
  200240. \fBPR\fP \fI\%#47527\fP: (\fI\%dwoz\fP) Test file name
  200241. @ \fI2018\-05\-07 22:02:04 UTC\fP
  200242. .INDENT 2.0
  200243. .IP \(bu 2
  200244. f1a5b13072 Merge pull request \fI\%#47527\fP from dwoz/test_file_name
  200245. .IP \(bu 2
  200246. 4aea7ca571 Update doc string
  200247. .IP \(bu 2
  200248. b3289e5a1c Fix test file name
  200249. .UNINDENT
  200250. .IP \(bu 2
  200251. \fBPR\fP \fI\%#47408\fP: (\fI\%Ch3LL\fP) Skip status.diskusage integration tests on macsox
  200252. @ \fI2018\-05\-07 19:06:57 UTC\fP
  200253. .INDENT 2.0
  200254. .IP \(bu 2
  200255. e9c1723175 Merge pull request \fI\%#47408\fP from Ch3LL/skip_diskusage
  200256. .IP \(bu 2
  200257. 068da8ad7d Merge branch \(aq2017.7\(aq into skip_diskusage
  200258. .IP \(bu 2
  200259. 1a7ffb4e0d return error if diskusage not available
  200260. .IP \(bu 2
  200261. 10bd63a976 Skip status.diskusage integration tests on macsox
  200262. .UNINDENT
  200263. .IP \(bu 2
  200264. \fBPR\fP \fI\%#47480\fP: (\fI\%baniobloom\fP) added handling for the aws error ConflictingDomainExists
  200265. @ \fI2018\-05\-07 19:05:28 UTC\fP
  200266. .INDENT 2.0
  200267. .IP \(bu 2
  200268. 2f50ff7bc8 Merge pull request \fI\%#47480\fP from baniobloom/ConflictingDomainExists
  200269. .IP \(bu 2
  200270. d22ed7dffa added handling for the aws error ConflictingDomainExists
  200271. .UNINDENT
  200272. .IP \(bu 2
  200273. \fBPR\fP \fI\%#47444\fP: (\fI\%terminalmage\fP) Skip trying to render a template for a nonexistant SLS file
  200274. @ \fI2018\-05\-07 13:48:24 UTC\fP
  200275. .INDENT 2.0
  200276. .IP \(bu 2
  200277. 7f53be6e92 Merge pull request \fI\%#47444\fP from terminalmage/render_state\-spurious\-error
  200278. .IP \(bu 2
  200279. a1e9fe00fd Skip trying to render a template for a nonexistant SLS file
  200280. .UNINDENT
  200281. .IP \(bu 2
  200282. \fBPR\fP \fI\%#47478\fP: (\fI\%terminalmage\fP) Rename pip state test modules to match naming convention
  200283. @ \fI2018\-05\-07 13:13:13 UTC\fP
  200284. .INDENT 2.0
  200285. .IP \(bu 2
  200286. 50b9c4d79d Merge pull request \fI\%#47478\fP from terminalmage/rename\-pip\-state\-test
  200287. .IP \(bu 2
  200288. 9f7a9ebebd Rename pip state test modules to match naming convention
  200289. .UNINDENT
  200290. .IP \(bu 2
  200291. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  200292. .IP \(bu 2
  200293. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors
  200294. @ \fI2018\-05\-07 13:05:22 UTC\fP
  200295. .INDENT 2.0
  200296. .IP \(bu 2
  200297. e78ac0f9b7 Merge pull request \fI\%#47505\fP from dwoz/win_dsc_fixes
  200298. .IP \(bu 2
  200299. d1fcb40d1c Raise proper invocation errors
  200300. .UNINDENT
  200301. .IP \(bu 2
  200302. \fBPR\fP \fI\%#47499\fP: (\fI\%dwoz\fP) Move kill process tree and re\-use it
  200303. @ \fI2018\-05\-06 20:54:22 UTC\fP
  200304. .INDENT 2.0
  200305. .IP \(bu 2
  200306. 0d4d5047d8 Merge pull request \fI\%#47499\fP from dwoz/win_run_timeout_again
  200307. .IP \(bu 2
  200308. c6697b9f16 Move kill process tree and re\-use it
  200309. .UNINDENT
  200310. .IP \(bu 2
  200311. \fBPR\fP \fI\%#47493\fP: (\fI\%dwoz\fP) Add support for windows timeout to run_salt
  200312. @ \fI2018\-05\-06 05:34:31 UTC\fP
  200313. .INDENT 2.0
  200314. .IP \(bu 2
  200315. 6a4d0380b1 Merge pull request \fI\%#47493\fP from dwoz/win_run_timeout
  200316. .IP \(bu 2
  200317. fec1233dc4 Add support for windows timeout to run_salt
  200318. .IP \(bu 2
  200319. cb674fb1cb Enable opkg as pkgrepo handler on Poky
  200320. .IP \(bu 2
  200321. 7a58fd157e Enable opkg on non\-NILinuxRT systems
  200322. .IP \(bu 2
  200323. 139360c55f Add Poky to OS Information Grains
  200324. .IP \(bu 2
  200325. d74057224d Un\-normalize os_family in pkgrepo state
  200326. .IP \(bu 2
  200327. 95d4488f01 Merge branch \(aq2017.7.6\(aq into 47696\-do\-not\-enumerate\-none
  200328. .IP \(bu 2
  200329. 041e4c6ddb Wrap properties loop with a check for None. Closes GH\-47696
  200330. .UNINDENT
  200331. .UNINDENT
  200332. .SS In Progress: Salt 2017.7.9 Release Notes
  200333. .sp
  200334. Version 2017.7.9 is an \fBunreleased\fP bugfix release for 2017.7.0\&.
  200335. This release is still in progress and has not been released yet.
  200336. .SS Salt Cloud Features
  200337. .SS GCE Driver
  200338. .sp
  200339. The GCE salt cloud driver can now be used with GCE instance credentials by
  200340. setting the configuration paramaters \fBservice_account_private_key\fP and
  200341. \fBservice_account_private_email\fP to an empty string.
  200342. .SS Salt 2016.11.0 Release Notes \- Codename Carbon
  200343. .SS New Features
  200344. .SS Docker Introspection and Configuration
  200345. .sp
  200346. Major additions have been made to the Docker support in 2016.11.0. The new
  200347. addition allows Salt to be executed within a Docker container without a
  200348. minion running or installed in the container. This allows states to
  200349. be run inside a container, but also all of Salt\(aqs remote execution
  200350. commands to be run inside docker containers as well. This makes
  200351. container introspection simple and powerful. See the tutorial on using
  200352. this new feature here:
  200353. .sp
  200354. See Salt in Docker Containers\&.
  200355. .SS Advanced Ceph Control
  200356. .sp
  200357. Our friends over at SUSE have delivered a powerful new tool to make the
  200358. deployment of Ceph storage systems using Salt very easy. These new Ceph
  200359. tools allow for a storage system to be easily defined using the new
  200360. \fIceph.quorum\fP state.
  200361. .SS Thorium Additions and Improvements
  200362. .sp
  200363. The Thorium advanced reactor has undergone extensive testing and updates.
  200364. These updates include many more Thorium states, a system for automating
  200365. key management, the ability to use Thorium to easily replace old
  200366. reactors and a great deal of stability and bug fixes.
  200367. .SS State Rollback Using Snapper
  200368. .sp
  200369. Rollback has been one of the most prevalent requests for Salt. We
  200370. have researched it extensively and concluded that the only way to
  200371. accomplish truly reliable rollback would be to execute it at
  200372. the filesystem layer. To accomplish this we have introduced Snapper
  200373. integration into Salt States.
  200374. .sp
  200375. Snapper is a tool which allows for simple and reliable snapshots
  200376. of the filesystem to be made. With the new \fIsnapper_states\fP option
  200377. set to \fITrue\fP in the minion config a snapshot will be made before
  200378. and after every Salt State run.
  200379. .sp
  200380. These snapshots can be viewed, managed and rolled back to via the
  200381. \fIsnapper\fP execution module.
  200382. .SS Preserve File Perms in File States
  200383. .sp
  200384. This feature has been requested for years, the ability to set a flag
  200385. and use the same file permissions for files deployed to a minion as
  200386. the permissions set to the file on the master. Just set the \fIkeep_mode\fP
  200387. option on any file management state to \fITrue\fP\&.
  200388. .SS Ponies!
  200389. .sp
  200390. We all agreed that cowsay was just not good enough, install the \fIponysay\fP
  200391. command and the new \fIpony\fP outputter will work. Fun for the whole family!
  200392. .SS Additional Features
  200393. .INDENT 0.0
  200394. .IP \(bu 2
  200395. Minions can run in stand\-alone mode to use beacons and engines without
  200396. having to connect to a master. (Thanks @adelcast!)
  200397. .IP \(bu 2
  200398. Added a \fBsalt\fP runner to allow running salt modules via salt\-run.
  200399. .INDENT 2.0
  200400. .INDENT 3.5
  200401. .INDENT 0.0
  200402. .INDENT 3.5
  200403. .sp
  200404. .nf
  200405. .ft C
  200406. salt\-run salt.cmd test.ping
  200407. # call functions with arguments and keyword arguments
  200408. salt\-run salt.cmd test.arg 1 2 3 a=1
  200409. .ft P
  200410. .fi
  200411. .UNINDENT
  200412. .UNINDENT
  200413. .UNINDENT
  200414. .UNINDENT
  200415. .IP \(bu 2
  200416. Added SSL support to Cassandra CQL returner.
  200417. SSL can be enabled by setting \fBssl_options\fP for the returner.
  200418. Also added support for specifying \fBprotocol_version\fP when establishing
  200419. cluster connection.
  200420. .IP \(bu 2
  200421. The \fBmode\fP parameter in the \fBfile.managed\fP state, and the \fBfile_mode\fP parameter in the
  200422. \fBfile.recurse\fP state, can both now be set
  200423. to \fBkeep\fP and the minion will keep the mode of the file from the Salt
  200424. fileserver. This works only with files coming from sources prefixed with
  200425. \fBsalt://\fP, or files local to the minion (i.e. those which are absolute
  200426. paths, or are prefixed with \fBfile://\fP). For example:
  200427. .INDENT 2.0
  200428. .INDENT 3.5
  200429. .sp
  200430. .nf
  200431. .ft C
  200432. /etc/myapp/myapp.conf:
  200433. file.managed:
  200434. \- source: salt://conf/myapp/myapp.conf
  200435. \- mode: keep
  200436. /var/www/myapp:
  200437. file.recurse:
  200438. \- source: salt://path/to/myapp
  200439. \- dir_mode: 755
  200440. \- file_mode: keep
  200441. .ft P
  200442. .fi
  200443. .UNINDENT
  200444. .UNINDENT
  200445. .IP \(bu 2
  200446. The \fBjunos\fP state module is now available. It has all the functions
  200447. that are present in the \fBjunos\fP execution module.
  200448. .IP \(bu 2
  200449. The \fBjunos\fP state module is now available. It has all the functions
  200450. that are present in the \fBjunos\fP execution module.
  200451. .IP \(bu 2
  200452. The minion data cache is a pluggable data store now. It\(aqs configurable with
  200453. \fBcache\fP option. Default is \fBlocalfs\fP\&.
  200454. .IP \(bu 2
  200455. User names in \fBclient_acl\fP support glob matching now.
  200456. .UNINDENT
  200457. .SS New Top File Merging Strategy for States
  200458. .sp
  200459. A new strategy called \fBmerge_all\fP has been added to provide a new way of
  200460. merging top file matches when executing a highstate\&.
  200461. See the \fBtop_file_merging_strategy\fP documentation for further
  200462. information.
  200463. .sp
  200464. In addition, the \fBsame\fP merging strategy was not functioning as documented.
  200465. This has now been corrected. While this is technically a bugfix, we decided to
  200466. hold a change in top file merging until a feature release to minimize user
  200467. impact.
  200468. .SS Improved Archive Extraction Support
  200469. .sp
  200470. The \fBarchive.extracted\fP state has been
  200471. overhauled. Notable changes include the following:
  200472. .INDENT 0.0
  200473. .IP \(bu 2
  200474. When enforcing ownership (with the \fBuser\fP and/or \fBgroup\fP arguments), the
  200475. \fBif_missing\fP argument no longer has any connection to which path(s) have
  200476. ownership enforced. Instead, the paths are determined using the either the
  200477. newly\-added \fBarchive.list\fP function, or
  200478. the newly\-added \fBenforce_ownership_on\fP argument.
  200479. .IP \(bu 2
  200480. \fBif_missing\fP also is no longer required to skip extraction, as Salt is now
  200481. able to tell which paths would be present if the archive were extracted. It
  200482. should, in most cases, only be necessary in cases where a semaphore file is
  200483. used to conditionally skip extraction of the archive.
  200484. .IP \(bu 2
  200485. Password\-protected ZIP archives are now detected before extraction, and the
  200486. state fails without attempting to extract the archive if no password was
  200487. specified.
  200488. .IP \(bu 2
  200489. By default, a single top\-level directory is enforced, to guard against
  200490. \(aqtar\-bombs\(aq. This enforcement can be disabled by setting \fBenforce_toplevel\fP
  200491. to \fBFalse\fP\&.
  200492. .IP \(bu 2
  200493. The \fBtar_options\fP and \fBzip_options\fP arguments have been deprecated in
  200494. favor of a single \fBoptions\fP argument.
  200495. .IP \(bu 2
  200496. The \fBarchive_format\fP argument is now optional. The ending of the \fBsource\fP
  200497. argument is used to guess whether it is a tar, zip or rar file. If the
  200498. \fBarchive_format\fP cannot be guessed, then it will need to be specified, but
  200499. in many cases it can now be omitted.
  200500. .IP \(bu 2
  200501. Ownership enforcement is now performed irrespective of whether or not the
  200502. archive needed to be extracted. This means that the state can be re\-run after
  200503. the archive has been fully extracted to repair changes to ownership.
  200504. .UNINDENT
  200505. .sp
  200506. A number of new arguments were also added. See the docs py:func:\fIdocs for the
  200507. archive.extracted state <salt.states.archive.extracted>\fP for more information.
  200508. .sp
  200509. Additionally, the following changes have been made to the \fBarchive\fP execution module:
  200510. .INDENT 0.0
  200511. .IP \(bu 2
  200512. A new function (\fBarchive.list\fP) has
  200513. been added. This function lists the files/directories in an archive file, and
  200514. supports a \fBverbose\fP argument that gives a more detailed breakdown of which
  200515. paths are files, which are directories, and which paths are at the top level
  200516. of the archive.
  200517. .IP \(bu 2
  200518. A new function (\fBarchive.is_encrypted\fP) has been added. This function will
  200519. return \fBTrue\fP if the archive is a password\-protected ZIP file, \fBFalse\fP if
  200520. not. If the archive is not a ZIP file, an error will be raised.
  200521. .IP \(bu 2
  200522. \fBarchive.cmd_unzip\fP now supports
  200523. passing a password, bringing it to feature parity with
  200524. \fBarchive.unzip\fP\&. Note that this is
  200525. still not considered to be secure, and \fBarchive.unzip\fP is recommended for dealing with
  200526. password\-protected ZIP archives.
  200527. .IP \(bu 2
  200528. The default value for the \fBextract_perms\fP argument to
  200529. \fBarchive.unzip\fP has been changed to
  200530. \fBTrue\fP\&.
  200531. .UNINDENT
  200532. .SS Improved Checksum Handling in \fBfile.managed\fP, \fBarchive.extracted\fP States
  200533. .sp
  200534. When the \fBsource_hash\fP argument for these states refers to a file containing
  200535. checksums, Salt now looks for checksums matching the name of the source URI, as
  200536. well as the file being managed. Prior releases only looked for checksums
  200537. matching the filename being managed. Additionally, a new argument
  200538. (\fBsource_hash_name\fP) has been added, which allows the user to disambiguate
  200539. ambiguous matches when more than one matching checksum is found in the
  200540. \fBsource_hash\fP file.
  200541. .sp
  200542. A more detailed explanation of this functionality can be found in the
  200543. \fBfile.managed\fP documentation, in the
  200544. section for the new \fBsource_hash_name\fP argument.
  200545. .sp
  200546. \fBNOTE:\fP
  200547. .INDENT 0.0
  200548. .INDENT 3.5
  200549. This improved functionality is also available in the \fB2016.3\fP (Boron)
  200550. release cycle, starting with the 2016.3.5 release.
  200551. .UNINDENT
  200552. .UNINDENT
  200553. .SS Config Changes
  200554. .sp
  200555. The following default config values were changed:
  200556. .INDENT 0.0
  200557. .IP \(bu 2
  200558. \fBgitfs_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200559. .IP \(bu 2
  200560. \fBgit_pillar_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200561. .IP \(bu 2
  200562. \fBwinrepo_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200563. .UNINDENT
  200564. .SS Grains Changes
  200565. .INDENT 0.0
  200566. .IP \(bu 2
  200567. All core grains containing \fBVMWare\fP have been changed to \fBVMware\fP, which
  200568. is the \fI\%official capitalization\fP\&. Additionally,
  200569. all references to \fBVMWare\fP in the documentation have been changed to
  200570. \fBVMware\fP \fI\%issue #30807\fP\&. Environments using versions of Salt before and
  200571. after Salt 2016.11.0 should employ case\-insensitive grain matching on these
  200572. grains.
  200573. .INDENT 2.0
  200574. .INDENT 3.5
  200575. .sp
  200576. .nf
  200577. .ft C
  200578. {% set on_vmware = grains[\(aqvirtual\(aq].lower() == \(aqvmware\(aq %}
  200579. .ft P
  200580. .fi
  200581. .UNINDENT
  200582. .UNINDENT
  200583. .IP \(bu 2
  200584. On Windows the \fBcpu_model\fP grain has been changed to provide the actual cpu
  200585. model name and not the cpu family.
  200586. .sp
  200587. Old behavior:
  200588. .INDENT 2.0
  200589. .INDENT 3.5
  200590. .sp
  200591. .nf
  200592. .ft C
  200593. root@master:~# salt \(aqtestwin200\(aq grains.item cpu_model
  200594. testwin200:
  200595. \-\-\-\-\-\-\-\-\-\-
  200596. cpu_model:
  200597. Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
  200598. .ft P
  200599. .fi
  200600. .UNINDENT
  200601. .UNINDENT
  200602. .sp
  200603. New behavior:
  200604. .INDENT 2.0
  200605. .INDENT 3.5
  200606. .sp
  200607. .nf
  200608. .ft C
  200609. root@master:~# salt \(aqtestwin200\(aq grains.item cpu_model
  200610. testwin200:
  200611. \-\-\-\-\-\-\-\-\-\-
  200612. cpu_model:
  200613. Intel(R) Core(TM) i7\-3520M CPU @ 2.90GHz
  200614. .ft P
  200615. .fi
  200616. .UNINDENT
  200617. .UNINDENT
  200618. .UNINDENT
  200619. .SS Beacons Changes
  200620. .INDENT 0.0
  200621. .IP \(bu 2
  200622. The \fBloadavg\fP beacon now outputs averages as integers instead of strings.
  200623. (Via \fI\%issue #31124\fP\&.)
  200624. .UNINDENT
  200625. .SS Runner Changes
  200626. .INDENT 0.0
  200627. .IP \(bu 2
  200628. Runners can now call out to utility modules
  200629. via \fB__utils__\fP\&.
  200630. .IP \(bu 2
  200631. ref:\fIUtility modules <writing\-utility\-modules>\fP (placed in
  200632. \fBsalt://_utils/\fP) are now able to be synced to the master, making it easier
  200633. to use them in custom runners. A \fBsaltutil.sync_utils\fP function has been added to the
  200634. \fBsaltutil runner\fP to facilitate the syncing of
  200635. utility modules to the master.
  200636. .UNINDENT
  200637. .SS Pillar Changes
  200638. .INDENT 0.0
  200639. .IP \(bu 2
  200640. Thanks to the new \fBsaltutil.sync_utils\fP runner, it is now easier to get
  200641. ref:\fIutility modules <writing\-utility\-modules>\fP synced to the correct
  200642. location on the Master so that they are available in execution modules called
  200643. from Pillar SLS files.
  200644. .UNINDENT
  200645. .SS Junos Module Changes
  200646. .INDENT 0.0
  200647. .IP \(bu 2
  200648. The following new functionalities were added to the junos module
  200649. .INDENT 2.0
  200650. .IP \(bu 2
  200651. facts \- Displays the facts gathered during the connection.
  200652. .IP \(bu 2
  200653. shutdown \- Shut down or reboot a device running Junos OS.
  200654. .IP \(bu 2
  200655. install_config \- Modify the configuration of a Junos device.
  200656. .IP \(bu 2
  200657. install_os \- Install Junos OS software package.
  200658. .IP \(bu 2
  200659. zeroize \- Remove all configuration information on the Routing Engines and reset all key values on a device.
  200660. .IP \(bu 2
  200661. file_copy \- Copy file from proxy to the Junos device.
  200662. .UNINDENT
  200663. .UNINDENT
  200664. .SS Network Automation: NAPALM
  200665. .sp
  200666. Beginning with 2016.11.0, network automation is included by default in the core
  200667. of Salt. It is based on a the \fI\%NAPALM\fP
  200668. library and provides facilities to manage the configuration and retrieve data
  200669. from network devices running widely used operating systems such: JunOS, IOS\-XR,
  200670. eOS, IOS, NX\-OS etc.
  200671. .INDENT 0.0
  200672. .IP \(bu 2
  200673. see \fI\%the complete list of supported devices\fP\&.
  200674. .UNINDENT
  200675. .sp
  200676. The connection is established via the \fBNAPALM proxy\fP\&.
  200677. .sp
  200678. In the current release, the following modules were included:
  200679. .INDENT 0.0
  200680. .IP \(bu 2
  200681. \fBNAPALM grains\fP \- Select network devices based on their characteristics
  200682. .IP \(bu 2
  200683. \fBNET execution module\fP \- Networking basic features
  200684. .IP \(bu 2
  200685. \fBNTP execution module\fP
  200686. .IP \(bu 2
  200687. \fBBGP execution module\fP
  200688. .IP \(bu 2
  200689. \fBRoutes execution module\fP
  200690. .IP \(bu 2
  200691. \fBSNMP execution module\fP
  200692. .IP \(bu 2
  200693. \fBUsers execution module\fP
  200694. .IP \(bu 2
  200695. \fBProbes execution module\fP
  200696. .IP \(bu 2
  200697. \fBNTP peers management state\fP
  200698. .IP \(bu 2
  200699. \fBSNMP configuration management state\fP
  200700. .IP \(bu 2
  200701. \fBUsers management state\fP
  200702. .UNINDENT
  200703. .SS Cisco NXOS Proxy Minion
  200704. .sp
  200705. Beginning with 2016.11.0, there is a proxy minion that can be used to configure
  200706. nxos cisco devices over ssh.
  200707. .INDENT 0.0
  200708. .IP \(bu 2
  200709. \fBProxy Minion\fP
  200710. .IP \(bu 2
  200711. \fBExecution Module\fP
  200712. .IP \(bu 2
  200713. \fBState Module\fP
  200714. .UNINDENT
  200715. .SS Cisco Network Services Orchestrator Proxy Minion
  200716. .sp
  200717. Beginning with 2016.11.0, there is a proxy minion to use the Cisco Network
  200718. Services Orchestrator as a proxy minion.
  200719. .INDENT 0.0
  200720. .IP \(bu 2
  200721. \fBProxy Minion\fP
  200722. .IP \(bu 2
  200723. \fBExecution Module\fP
  200724. .IP \(bu 2
  200725. \fBState Module\fP
  200726. .UNINDENT
  200727. .SS Junos Module Changes
  200728. .INDENT 0.0
  200729. .IP \(bu 2
  200730. The following new functionalities were added to the junos module
  200731. .INDENT 2.0
  200732. .IP \(bu 2
  200733. facts \- Displays the facts gathered during the connection.
  200734. .IP \(bu 2
  200735. shutdown \- Shut down or reboot a device running Junos OS.
  200736. .IP \(bu 2
  200737. install_config \- Modify the configuration of a Junos device.
  200738. .IP \(bu 2
  200739. install_os \- Install Junos OS software package.
  200740. .IP \(bu 2
  200741. zeroize \- Remove all configuration information on the Routing Engines and reset all key values on a device.
  200742. .IP \(bu 2
  200743. file_copy \- Copy file from proxy to the Junos device.
  200744. .UNINDENT
  200745. .UNINDENT
  200746. .SS Returner Changes
  200747. .INDENT 0.0
  200748. .IP \(bu 2
  200749. Any returner which implements a \fIsave_load\fP function is now required to
  200750. accept a \fIminions\fP keyword argument. All returners which ship with Salt
  200751. have been modified to do so.
  200752. .UNINDENT
  200753. .SS Renderer Changes
  200754. .sp
  200755. Added the ability to restrict allowed renderers. Two new config parameters,
  200756. \fBrenderer_whitelist\fP and \fBrenderer_blacklist\fP are
  200757. introduced for this purpose.
  200758. .SS eAuth Changes
  200759. .INDENT 0.0
  200760. .IP \(bu 2
  200761. External auth modules\(aq \fBauth\fP method can return an ACL list for the given
  200762. username instead of \fBTrue\fP\&. This list should be in the same format as
  200763. described in the eAuth documentation\&. It will be
  200764. used for the user instead of one set in master config.
  200765. .sp
  200766. Example of the \fBauth\fP method return that allows a user to execute functions
  200767. in the \fBtest\fP and \fBnetwork\fP modules on the minions that match the \fBweb*\fP
  200768. target and allow access to \fBwheel\fP and \fBrunner\fP modules:
  200769. .INDENT 2.0
  200770. .INDENT 3.5
  200771. .sp
  200772. .nf
  200773. .ft C
  200774. [{"web*": ["test.*", "network.*"]}, "@wheel", "@runner"]
  200775. .ft P
  200776. .fi
  200777. .UNINDENT
  200778. .UNINDENT
  200779. .IP \(bu 2
  200780. External auth is supported by salt\-run and
  200781. salt\-key now. Note that master must be started to
  200782. use them with eAuth.
  200783. .UNINDENT
  200784. .SS External Module Packaging
  200785. .sp
  200786. Modules may now be packaged via entry\-points in setuptools. See
  200787. external module packaging tutorial
  200788. for more information.
  200789. .SS Functionality Changes
  200790. .INDENT 0.0
  200791. .IP \(bu 2
  200792. The \fBonfail\fP requisite now uses OR logic instead of AND logic.
  200793. \fI\%issue #22370\fP
  200794. .IP \(bu 2
  200795. The consul external pillar now strips leading and trailing whitespace.
  200796. \fI\%issue #31165\fP
  200797. .IP \(bu 2
  200798. The win_system.py state is now case sensitive for computer names. Previously
  200799. computer names set with a state were converted to all caps. If you have a
  200800. state setting computer names with lower case letters in the name that has
  200801. been applied, the computer name will be changed again to apply the case
  200802. sensitive name.
  200803. .IP \(bu 2
  200804. The \fBmac_user.list_groups\fP function in the \fBmac_user\fP execution module
  200805. now lists all groups for the specified user, including groups beginning with
  200806. an underscore. In previous releases, groups beginning with an underscore were
  200807. excluded from the list of groups.
  200808. .IP \(bu 2
  200809. The \fBjunos.call_rpc\fP function in the \fBjunos\fP execution module can now be used
  200810. to call any valid rpc. Earlier it used to call only "get_software_information".
  200811. .IP \(bu 2
  200812. A new option for minions called \fBmaster_tries\fP has been added. This
  200813. specifies the number of times a minion should attempt to contact a master to
  200814. attempt a connection. This allows better handling of occasional master
  200815. downtime in a multi\-master topology.
  200816. .IP \(bu 2
  200817. The default hash_type is now sha256 instead of md5. You will need to make sure both
  200818. your master and minion share the same hash_type.
  200819. .IP \(bu 2
  200820. Nodegroups consisting of a simple list of minion IDs can now also be declared
  200821. as a yaml list. The below two examples are equivalent:
  200822. .INDENT 2.0
  200823. .INDENT 3.5
  200824. .sp
  200825. .nf
  200826. .ft C
  200827. # Traditional way
  200828. nodegroups:
  200829. \- group1: L@host1,host2,host3
  200830. # New way (optional)
  200831. nodegroups:
  200832. \- group1:
  200833. \- host1
  200834. \- host2
  200835. \- host3
  200836. .ft P
  200837. .fi
  200838. .UNINDENT
  200839. .UNINDENT
  200840. .UNINDENT
  200841. .SS New Azure ARM Cloud Driver
  200842. .sp
  200843. A new cloud driver has been added for Azure ARM, aka, the Azure Resource
  200844. Manager. The older Azure driver is still required to work with the older Azure
  200845. API. This new driver works with the newer ARM API, which is managed via the
  200846. newer Azure Portal website.
  200847. .SS New Modules
  200848. .SS Beacons
  200849. .INDENT 0.0
  200850. .IP \(bu 2
  200851. \fBsalt.beacons.avahi_announce\fP
  200852. .IP \(bu 2
  200853. \fBsalt.beacons.bonjour_announce\fP
  200854. .IP \(bu 2
  200855. \fBsalt.beacons.haproxy\fP
  200856. .IP \(bu 2
  200857. \fBsalt.beacons.status\fP
  200858. .UNINDENT
  200859. .SS Clouds
  200860. .INDENT 0.0
  200861. .IP \(bu 2
  200862. \fBsalt.cloud.clouds.azurearm\fP
  200863. .UNINDENT
  200864. .SS Engines
  200865. .INDENT 0.0
  200866. .IP \(bu 2
  200867. \fBsalt.engines.hipchat\fP
  200868. .IP \(bu 2
  200869. \fBsalt.engines.http_logstash\fP
  200870. .UNINDENT
  200871. .SS Modules
  200872. .INDENT 0.0
  200873. .IP \(bu 2
  200874. \fBsalt.modules.boto_cloudwatch_event\fP
  200875. .IP \(bu 2
  200876. \fBsalt.modules.celery\fP
  200877. .IP \(bu 2
  200878. \fBsalt.modules.ceph\fP
  200879. .IP \(bu 2
  200880. \fBsalt.modules.influx08\fP
  200881. .IP \(bu 2
  200882. \fBsalt.modules.inspectlib.entities\fP
  200883. .IP \(bu 2
  200884. \fBsalt.modules.inspectlib.fsdb\fP
  200885. .IP \(bu 2
  200886. \fBsalt.modules.inspectlib.kiwiproc\fP
  200887. .IP \(bu 2
  200888. \fBsalt.modules.inspector\fP
  200889. .IP \(bu 2
  200890. \fBsalt.modules.libcloud_dns\fP
  200891. .IP \(bu 2
  200892. \fBsalt.modules.openstack_mng\fP
  200893. .IP \(bu 2
  200894. \fBsalt.modules.servicenow\fP
  200895. .IP \(bu 2
  200896. \fBsalt.modules.testinframod\fP
  200897. .IP \(bu 2
  200898. \fBsalt.modules.win_lgpo\fP
  200899. .IP \(bu 2
  200900. \fBsalt.modules.win_pki\fP
  200901. .IP \(bu 2
  200902. \fBsalt.modules.win_psget\fP
  200903. .IP \(bu 2
  200904. \fBsalt.modules.win_snmp\fP
  200905. .IP \(bu 2
  200906. \fBsalt.modules.xbpspkg\fP
  200907. .UNINDENT
  200908. .SS Outputters
  200909. .INDENT 0.0
  200910. .IP \(bu 2
  200911. \fBsalt.output.pony\fP
  200912. .UNINDENT
  200913. .SS Pillar
  200914. .INDENT 0.0
  200915. .IP \(bu 2
  200916. \fBsalt.pillar.csvpillar\fP
  200917. .IP \(bu 2
  200918. \fBsalt.pillar.http_json\fP
  200919. .IP \(bu 2
  200920. \fBsalt.pillar.makostack\fP
  200921. .UNINDENT
  200922. .SS Returners
  200923. .INDENT 0.0
  200924. .IP \(bu 2
  200925. \fBsalt.returners.zabbix_return\fP
  200926. .UNINDENT
  200927. .SS Runners
  200928. .INDENT 0.0
  200929. .IP \(bu 2
  200930. \fBsalt.runners.auth\fP
  200931. .IP \(bu 2
  200932. \fBsalt.runners.event\fP
  200933. .IP \(bu 2
  200934. \fBsalt.runners.smartos_vmadm\fP
  200935. .IP \(bu 2
  200936. \fBsalt.runners.vistara\fP
  200937. .UNINDENT
  200938. .SS SDB
  200939. .INDENT 0.0
  200940. .IP \(bu 2
  200941. \fBsalt.sdb.env\fP
  200942. .UNINDENT
  200943. .SS States
  200944. .INDENT 0.0
  200945. .IP \(bu 2
  200946. \fBsalt.states.boto_cloudwatch_event\fP
  200947. .IP \(bu 2
  200948. \fBsalt.states.csf\fP
  200949. .IP \(bu 2
  200950. \fBsalt.states.ethtool\fP
  200951. .IP \(bu 2
  200952. \fBsalt.states.influxdb08_database\fP
  200953. .IP \(bu 2
  200954. \fBsalt.states.influxdb08_user\fP
  200955. .IP \(bu 2
  200956. \fBsalt.states.libcloud_dns\fP
  200957. .IP \(bu 2
  200958. \fBsalt.states.snapper\fP
  200959. .IP \(bu 2
  200960. \fBsalt.states.testinframod\fP
  200961. .IP \(bu 2
  200962. \fBsalt.states.win_lgpo\fP
  200963. .IP \(bu 2
  200964. \fBsalt.states.win_pki\fP
  200965. .IP \(bu 2
  200966. \fBsalt.states.win_snmp\fP
  200967. .UNINDENT
  200968. .SS Thorium
  200969. .INDENT 0.0
  200970. .IP \(bu 2
  200971. \fBsalt.thorium.calc\fP
  200972. .IP \(bu 2
  200973. \fBsalt.thorium.key\fP
  200974. .IP \(bu 2
  200975. \fBsalt.thorium.runner\fP
  200976. .IP \(bu 2
  200977. \fBsalt.thorium.status\fP
  200978. .IP \(bu 2
  200979. \fBsalt.thorium.wheel\fP
  200980. .UNINDENT
  200981. .SS Deprecations
  200982. .SS General Deprecations
  200983. .INDENT 0.0
  200984. .IP \(bu 2
  200985. \fBenv\fP to \fBsaltenv\fP
  200986. .sp
  200987. All occurrences of \fBenv\fP and some occurrences of \fB__env__\fP marked for
  200988. deprecation in Salt 2016.11.0 have been removed. The new way to use the salt
  200989. environment setting is with a variable called \fBsaltenv\fP:
  200990. .INDENT 2.0
  200991. .INDENT 3.5
  200992. .sp
  200993. .nf
  200994. .ft C
  200995. def fcn(msg="", env="base", refresh=True, saltenv="base", **kwargs):
  200996. ...
  200997. .ft P
  200998. .fi
  200999. .UNINDENT
  201000. .UNINDENT
  201001. .sp
  201002. has been changed to
  201003. .INDENT 2.0
  201004. .INDENT 3.5
  201005. .sp
  201006. .nf
  201007. .ft C
  201008. def fcn(msg="", refresh=True, saltenv="base", **kwargs):
  201009. ...
  201010. .ft P
  201011. .fi
  201012. .UNINDENT
  201013. .UNINDENT
  201014. .INDENT 2.0
  201015. .IP \(bu 2
  201016. If \fBenv\fP (or \fB__env__\fP) is supplied as a keyword argument to a function
  201017. that also accepts arbitrary keyword arguments, then a new warning informs the
  201018. user that \fBenv\fP is no longer used if it is found. This new warning will be
  201019. removed in Salt 2017.7.0.
  201020. .INDENT 2.0
  201021. .INDENT 3.5
  201022. .sp
  201023. .nf
  201024. .ft C
  201025. def fcn(msg="", refresh=True, saltenv="base", **kwargs):
  201026. ...
  201027. .ft P
  201028. .fi
  201029. .UNINDENT
  201030. .UNINDENT
  201031. .INDENT 2.0
  201032. .INDENT 3.5
  201033. .sp
  201034. .nf
  201035. .ft C
  201036. # will result in a warning log message
  201037. fcn(msg="add more salt", env="prod", refresh=False)
  201038. .ft P
  201039. .fi
  201040. .UNINDENT
  201041. .UNINDENT
  201042. .IP \(bu 2
  201043. If \fBenv\fP (or \fB__env__\fP) is supplied as a keyword argument to a function
  201044. that does not accept arbitrary keyword arguments, then python will issue an
  201045. error.
  201046. .INDENT 2.0
  201047. .INDENT 3.5
  201048. .sp
  201049. .nf
  201050. .ft C
  201051. def fcn(msg="", refresh=True, saltenv="base"):
  201052. ...
  201053. .ft P
  201054. .fi
  201055. .UNINDENT
  201056. .UNINDENT
  201057. .INDENT 2.0
  201058. .INDENT 3.5
  201059. .sp
  201060. .nf
  201061. .ft C
  201062. # will result in a python TypeError
  201063. fcn(msg="add more salt", env="prod", refresh=False)
  201064. .ft P
  201065. .fi
  201066. .UNINDENT
  201067. .UNINDENT
  201068. .IP \(bu 2
  201069. If \fBenv\fP (or \fB__env__\fP) is supplied as a positional argument to a
  201070. function, then undefined behavior will occur, as the removal of \fBenv\fP and
  201071. \fB__env__\fP from the function\(aqs argument list changes the function\(aqs
  201072. signature.
  201073. .INDENT 2.0
  201074. .INDENT 3.5
  201075. .sp
  201076. .nf
  201077. .ft C
  201078. def fcn(msg="", refresh=True, saltenv="base"):
  201079. ...
  201080. .ft P
  201081. .fi
  201082. .UNINDENT
  201083. .UNINDENT
  201084. .INDENT 2.0
  201085. .INDENT 3.5
  201086. .sp
  201087. .nf
  201088. .ft C
  201089. # will result in refresh evaluating to True and saltenv likely not being a string at all
  201090. fcn("add more salt", "prod", False)
  201091. .ft P
  201092. .fi
  201093. .UNINDENT
  201094. .UNINDENT
  201095. .UNINDENT
  201096. .IP \(bu 2
  201097. Deprecations in \fBminion.py\fP:
  201098. .INDENT 2.0
  201099. .IP \(bu 2
  201100. The \fBsalt.minion.parse_args_and_kwargs\fP function has been removed. Please
  201101. use the \fBsalt.minion.load_args_and_kwargs\fP function instead.
  201102. .UNINDENT
  201103. .UNINDENT
  201104. .SS Cloud Deprecations
  201105. .INDENT 0.0
  201106. .IP \(bu 2
  201107. The \fBvsphere\fP cloud driver has been removed. Please use the \fBvmware\fP cloud driver
  201108. instead.
  201109. .IP \(bu 2
  201110. The \fBprivate_ip\fP option in the \fBlinode\fP cloud driver is deprecated and has been
  201111. removed. Use the \fBassign_private_ip\fP option instead.
  201112. .IP \(bu 2
  201113. The \fBcreate_dns_record\fP and \fBdelete_dns_record\fP functions are deprecated and have
  201114. been removed from the \fBdigital_ocean\fP driver. Use the \fBpost_dns_record\fP function
  201115. instead.
  201116. .UNINDENT
  201117. .SS Execution Module Deprecations
  201118. .INDENT 0.0
  201119. .IP \(bu 2
  201120. The \fBblockdev\fP execution module had four functions removed:
  201121. .INDENT 2.0
  201122. .IP \(bu 2
  201123. dump
  201124. .IP \(bu 2
  201125. tune
  201126. .IP \(bu 2
  201127. resize2fs
  201128. .IP \(bu 2
  201129. wipe
  201130. .UNINDENT
  201131. .sp
  201132. The \fBdisk\fP module should be used instead with the same function names.
  201133. .IP \(bu 2
  201134. The \fBboto_vpc\fP execution module had two functions removed,
  201135. \fBboto_vpc.associate_new_dhcp_options_to_vpc\fP and
  201136. \fBboto_vpc.associate_new_network_acl_to_subnet\fP in favor of more concise function
  201137. names, \fBboto_vpc.create_dhcp_options\fP and \fBboto_vpc.create_network_acl\fP, respectively.
  201138. .IP \(bu 2
  201139. The \fBdata\fP execution module had \fBgetval\fP and \fBgetvals\fP functions removed
  201140. in favor of one function, \fBget\fP, which combines the functionality of the
  201141. removed functions.
  201142. .IP \(bu 2
  201143. File module deprecations:
  201144. .INDENT 2.0
  201145. .IP \(bu 2
  201146. The \fBcontains_regex_multiline\fP function was removed. Use \fBfile.search\fP instead.
  201147. .IP \(bu 2
  201148. Additional command line options for \fBfile.grep\fP should be passed one at a time.
  201149. Please do not pass more than one in a single argument.
  201150. .UNINDENT
  201151. .IP \(bu 2
  201152. The \fBlxc\fP execution module has the following changes:
  201153. .INDENT 2.0
  201154. .IP \(bu 2
  201155. The \fBrun_cmd\fP function was removed. Use \fBlxc.run\fP instead.
  201156. .IP \(bu 2
  201157. The \fBnic\fP argument was removed from the \fBlxc.init\fP function. Use \fBnetwork_profile\fP
  201158. instead.
  201159. .IP \(bu 2
  201160. The \fBclone\fP argument was removed from the \fBlxc.init\fP function. Use \fBclone_from\fP
  201161. instead.
  201162. .IP \(bu 2
  201163. passwords passed to the \fBlxc.init\fP function will be assumed to be hashed, unless
  201164. \fBpassword_encrypted=False\fP\&.
  201165. .IP \(bu 2
  201166. The \fBrestart\fP argument for \fBlxc.start\fP was removed. Use \fBlxc.restart\fP instead.
  201167. .IP \(bu 2
  201168. The old style of defining lxc containers has been removed. Please use keys under which
  201169. LXC profiles should be configured such as \fBlxc.container_profile.profile_name\fP\&.
  201170. .UNINDENT
  201171. .IP \(bu 2
  201172. The \fBenv\fP and \fBactivate\fP keyword arguments have been removed from the \fBinstall\fP
  201173. function in the \fBpip\fP execution module. The use of \fBbin_env\fP replaces both of these
  201174. options.
  201175. .IP \(bu 2
  201176. \fBreg\fP execution module
  201177. .sp
  201178. Functions in the \fBreg\fP execution module had misleading and confusing names
  201179. for dealing with the Windows registry. They failed to clearly differentiate
  201180. between hives, keys, and name/value pairs. Keys were treated like value names.
  201181. There was no way to delete a key.
  201182. .sp
  201183. New functions were added in 2015.5 to properly work with the registry. They
  201184. also made it possible to edit key default values as well as delete an entire
  201185. key tree recursively. With the new functions in place, the following functions
  201186. have been deprecated:
  201187. .INDENT 2.0
  201188. .IP \(bu 2
  201189. read_key
  201190. .IP \(bu 2
  201191. set_key
  201192. .IP \(bu 2
  201193. create_key
  201194. .IP \(bu 2
  201195. delete_key
  201196. .UNINDENT
  201197. .sp
  201198. Use the following functions instead:
  201199. .INDENT 2.0
  201200. .IP \(bu 2
  201201. for \fBread_key\fP use \fBread_value\fP
  201202. .IP \(bu 2
  201203. for \fBset_key\fP use \fBset_value\fP
  201204. .IP \(bu 2
  201205. for \fBcreate_key\fP use \fBset_value\fP with no \fBvname\fP and no \fBvdata\fP
  201206. .IP \(bu 2
  201207. for \fBdelete_key\fP use \fBdelete_key_recursive\fP\&. To delete a value, use
  201208. \fBdelete_value\fP\&.
  201209. .UNINDENT
  201210. .IP \(bu 2
  201211. The \fBhash_hostname\fP option was removed from the \fBsalt.modules.ssh\fP execution
  201212. module. The \fBhash_known_hosts\fP option should be used instead.
  201213. .IP \(bu 2
  201214. The \fBhuman_readable\fP option was removed from the \fBuptime\fP function in the
  201215. \fBstatus\fP execution module. The function was also updated in 2015.8.9 to return
  201216. a more complete offering of uptime information, formatted as an easy\-to\-read
  201217. dictionary. This updated function replaces the need for the \fBhuman_readable\fP
  201218. option.
  201219. .IP \(bu 2
  201220. The \fBpersist\fP kwarg was removed from the \fBwin_useradd\fP execution module. This
  201221. option is no longer supported for Windows. \fBpersist\fP is only supported as part
  201222. of user management in UNIX/Linux.
  201223. .IP \(bu 2
  201224. The \fBzpool_list\fP function in the \fBzpool\fP execution module was removed. Use \fBlist\fP
  201225. instead.
  201226. .UNINDENT
  201227. .SS Outputter Module Deprecations
  201228. .INDENT 0.0
  201229. .IP \(bu 2
  201230. The \fBcompact\fP outputter has been removed. Set \fBstate_verbose\fP to \fBFalse\fP instead.
  201231. .UNINDENT
  201232. .SS Runner Module Deprecations
  201233. .INDENT 0.0
  201234. .IP \(bu 2
  201235. The \fBgrains.cache\fP runner no longer accepts \fBoutputter\fP or \fBminion\fP as keyword arguments.
  201236. Users will need to specify an outputter using the \fB\-\-out\fP option. \fBtgt\fP is
  201237. replacing the \fBminion\fP kwarg.
  201238. .IP \(bu 2
  201239. The \fBfileserver\fP runner no longer accepts the \fBoutputter\fP keyword argument. Users will
  201240. need to specify an outputter using the \fB\-\-out\fP option.
  201241. .IP \(bu 2
  201242. The \fBjobs\fP runner no longer accepts the \fBoutputter\fP keyword argument. Users will need to
  201243. specify an outputter using the \fB\-\-out\fP option.
  201244. .IP \(bu 2
  201245. \fBvirt\fP runner module:
  201246. .INDENT 2.0
  201247. .IP \(bu 2
  201248. The \fBhyper\fP kwarg was removed from the \fBinit\fP, \fBlist\fP, and \fBquery\fP functions.
  201249. Use the \fBhost\fP option instead.
  201250. .IP \(bu 2
  201251. The \fBnext_hyper\fP function was removed. Use the \fBnext_host\fP function instead.
  201252. .IP \(bu 2
  201253. The \fBhyper_info\fP function was removed. Use the \fBhost_info\fP function instead.
  201254. .UNINDENT
  201255. .UNINDENT
  201256. .SS State Module Deprecations
  201257. .INDENT 0.0
  201258. .IP \(bu 2
  201259. The \fBenv\fP and \fBactivate\fP keyword arguments were removed from the \fBinstalled\fP
  201260. function in the \fBpip\fP state module. The use of \fBbin_env\fP replaces both of these
  201261. options.
  201262. .IP \(bu 2
  201263. \fBreg\fP state module
  201264. .sp
  201265. The \fBreg\fP state module was modified to work with the new functions in the
  201266. execution module. Some logic was left in the \fBreg.present\fP and the
  201267. \fBreg.absent\fP functions to handle existing state files that used the final
  201268. key in the name as the value name. That logic has been removed so you now must
  201269. specify value name (\fBvname\fP) and, if needed, value data (\fBvdata\fP).
  201270. .sp
  201271. For example, a state file that adds the version value/data pair to the
  201272. Software\eSalt key in the HKEY_LOCAL_MACHINE hive used to look like this:
  201273. .INDENT 2.0
  201274. .INDENT 3.5
  201275. .sp
  201276. .nf
  201277. .ft C
  201278. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt\e\eversion:
  201279. reg.present:
  201280. \- value: 2016.3.1
  201281. .ft P
  201282. .fi
  201283. .UNINDENT
  201284. .UNINDENT
  201285. .sp
  201286. Now it should look like this:
  201287. .INDENT 2.0
  201288. .INDENT 3.5
  201289. .sp
  201290. .nf
  201291. .ft C
  201292. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt
  201293. reg.present:
  201294. \- vname: version
  201295. \- vdata: 2016.3.1
  201296. .ft P
  201297. .fi
  201298. .UNINDENT
  201299. .UNINDENT
  201300. .sp
  201301. A state file for removing the same value added above would have looked like
  201302. this:
  201303. .INDENT 2.0
  201304. .INDENT 3.5
  201305. .sp
  201306. .nf
  201307. .ft C
  201308. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt\e\eversion:
  201309. reg.absent:
  201310. .ft P
  201311. .fi
  201312. .UNINDENT
  201313. .UNINDENT
  201314. .sp
  201315. Now it should look like this:
  201316. .INDENT 2.0
  201317. .INDENT 3.5
  201318. .sp
  201319. .nf
  201320. .ft C
  201321. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt
  201322. reg.absent:
  201323. \- vname: version
  201324. .ft P
  201325. .fi
  201326. .UNINDENT
  201327. .UNINDENT
  201328. .sp
  201329. This new structure is important as it allows salt to deal with key default
  201330. values which was not possible before. If vname is not passed, salt will work
  201331. with the default value for that hivekey.
  201332. .sp
  201333. Additionally, since you could only delete a value from a the state module, a
  201334. new function (\fBkey_absent\fP) has been added to allow you to delete a registry
  201335. key and all subkeys and name/value pairs recursively. It uses the new
  201336. \fBdelete_key_recursive\fP function.
  201337. .sp
  201338. For additional information see the documentation for the \fBreg\fP execution and
  201339. state modules.
  201340. .IP \(bu 2
  201341. \fBlxc\fP state module: The following functions were removed from the \fBlxc\fP state
  201342. module:
  201343. .INDENT 2.0
  201344. .IP \(bu 2
  201345. \fBcreated\fP: replaced by the \fBpresent\fP state.
  201346. .IP \(bu 2
  201347. \fBstarted\fP: replaced by the \fBrunning\fP state.
  201348. .IP \(bu 2
  201349. \fBcloned\fP: replaced by the \fBpresent\fP state. Use the \fBclone_from\fP argument
  201350. to set the name of the clone source.
  201351. .UNINDENT
  201352. .IP \(bu 2
  201353. The \fBhash_hostname\fP option was removed from the \fBsalt.states.ssh_known_hosts\fP
  201354. state. The \fBhash_known_hosts\fP option should be used instead.
  201355. .IP \(bu 2
  201356. The \fBalways\fP kwarg used in the \fBbuilt\fP function of the \fBpkgbuild\fP state module
  201357. was removed. Use \fBforce\fP instead.
  201358. .UNINDENT
  201359. .SS Utils Module Deprecations
  201360. .INDENT 0.0
  201361. .IP \(bu 2
  201362. The use of \fBjid_dir\fP and \fBjid_load\fP were removed from the
  201363. \fBsalt.utils.jid\fP\&. \fBjid_dir\fP functionality for job_cache management was moved to
  201364. the \fBlocal_cache\fP returner. \fBjid_load\fP data is now retrieved from the
  201365. \fBmaster_job_cache\fP\&.
  201366. .IP \(bu 2
  201367. \fBip_in_subnet\fP function in \fBsalt.utils.network.py\fP has been removed. Use the
  201368. \fBin_subnet\fP function instead.
  201369. .IP \(bu 2
  201370. The \fBiam\fP utils module had two functions removed: \fBsalt.utils.iam.get_iam_region\fP
  201371. and \fBsalt.utils.iam.get_iam_metadata\fP in favor of the aws utils functions
  201372. \fBsalt.utils.aws.get_region_from_metadata\fP and \fBsalt.utils.aws.creds\fP, respectively.
  201373. .UNINDENT
  201374. .SS Salt 2016.11.1 Release Notes
  201375. .sp
  201376. Version 2016.11.1 is a bugfix release for 2016.11.0\&.
  201377. .SS Statistics
  201378. .INDENT 0.0
  201379. .IP \(bu 2
  201380. Total Merges: \fB89\fP
  201381. .IP \(bu 2
  201382. Total Issue References: \fB29\fP
  201383. .IP \(bu 2
  201384. Total PR References: \fB83\fP
  201385. .IP \(bu 2
  201386. 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)
  201387. .UNINDENT
  201388. .SS Changelog for v2016.11.0..v2016.11.1
  201389. .sp
  201390. \fIGenerated at: 2018\-05\-27 14:25:03 UTC\fP
  201391. .INDENT 0.0
  201392. .IP \(bu 2
  201393. \fBPR\fP \fI\%#38186\fP: (\fI\%Ch3LL\fP) add 2016.11.1 changelog to release notes
  201394. .IP \(bu 2
  201395. \fBPR\fP \fI\%#38182\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201396. @ \fI2016\-12\-09 21:25:47 UTC\fP
  201397. .INDENT 2.0
  201398. .IP \(bu 2
  201399. 23c039347e Merge pull request \fI\%#38182\fP from rallytime/merge\-2016.11
  201400. .IP \(bu 2
  201401. 627242ab5d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201402. .INDENT 2.0
  201403. .IP \(bu 2
  201404. 65b2ad7b14 Merge pull request \fI\%#38163\fP from Ch3LL/enabled_ec2_cloud
  201405. .INDENT 2.0
  201406. .IP \(bu 2
  201407. be74c45463 enabled ec2 cloud tests
  201408. .UNINDENT
  201409. .IP \(bu 2
  201410. b63f74e034 Merge pull request \fI\%#38177\fP from vutny/fix\-cp\-get\-file\-str
  201411. .INDENT 2.0
  201412. .IP \(bu 2
  201413. a449980672 Correct \fIcp.get_file_str\fP docstring and add integration tests
  201414. .UNINDENT
  201415. .IP \(bu 2
  201416. 7596313be0 Merge pull request \fI\%#38153\fP from vutny/master\-includes\-error\-tolerance
  201417. .INDENT 2.0
  201418. .IP \(bu 2
  201419. cd0154ee93 Master config includes may contain errors and be safely skipped
  201420. .UNINDENT
  201421. .UNINDENT
  201422. .UNINDENT
  201423. .IP \(bu 2
  201424. \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)
  201425. .IP \(bu 2
  201426. \fBPR\fP \fI\%#38158\fP: (\fI\%cachedout\fP) Fix type problem in grains.filter_by
  201427. @ \fI2016\-12\-09 21:24:40 UTC\fP
  201428. .INDENT 2.0
  201429. .IP \(bu 2
  201430. 8355adc535 Merge pull request \fI\%#38158\fP from cachedout/issue_38094
  201431. .IP \(bu 2
  201432. e8196e23c2 Lint, remove set literal
  201433. .IP \(bu 2
  201434. 9f4ebb3c18 Fix type problem in grains.filter_by
  201435. .UNINDENT
  201436. .IP \(bu 2
  201437. \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)
  201438. .IP \(bu 2
  201439. \fBPR\fP \fI\%#38156\fP: (\fI\%terminalmage\fP) Remove rtag when windows minion refreshes early in state
  201440. @ \fI2016\-12\-09 21:15:01 UTC\fP
  201441. .INDENT 2.0
  201442. .IP \(bu 2
  201443. 31a157d902 Merge pull request \fI\%#38156\fP from terminalmage/fix\-windows\-refresh
  201444. .IP \(bu 2
  201445. 258bd4c2aa Remove rtag when windows minion refreshes early in state
  201446. .UNINDENT
  201447. .IP \(bu 2
  201448. \fBISSUE\fP \fI\%#37981\fP: (\fI\%tazaki\fP) Salt\-cloud ec2 vpc securitygroupid always returning default (refs: \fI\%#38183\fP)
  201449. .IP \(bu 2
  201450. \fBPR\fP \fI\%#38183\fP: (\fI\%cro\fP) Fix bad set operations when setting up securitygroups in AWS.
  201451. @ \fI2016\-12\-09 21:12:10 UTC\fP
  201452. .INDENT 2.0
  201453. .IP \(bu 2
  201454. c638952684 Merge pull request \fI\%#38183\fP from cro/fix_37891
  201455. .IP \(bu 2
  201456. 0527d6f25e Fix bad set operations when setting up securitygroups in AWS. Fixes \fI\%#37891\fP\&.
  201457. .IP \(bu 2
  201458. \fBPR\fP \fI\%#38181\fP: (\fI\%rallytime\fP) Reset socket default timeout to None (fixes daemons_tests failures)
  201459. .UNINDENT
  201460. .IP \(bu 2
  201461. \fBPR\fP \fI\%#38148\fP: (\fI\%whiteinge\fP) Remove ssh_async from NetapiClient clients; it is not implemented
  201462. @ \fI2016\-12\-09 18:49:42 UTC\fP
  201463. .INDENT 2.0
  201464. .IP \(bu 2
  201465. 7ccbedd2cc Merge pull request \fI\%#38148\fP from whiteinge/no\-ssh\-async\-client
  201466. .IP \(bu 2
  201467. cb58cd4795 Remove ssh_async from NetapiClient clients; it is not implemented
  201468. .UNINDENT
  201469. .IP \(bu 2
  201470. \fBPR\fP \fI\%#38160\fP: (\fI\%terminalmage\fP) Update information about xz\-utils in archive state/module docs
  201471. @ \fI2016\-12\-09 18:34:03 UTC\fP
  201472. .INDENT 2.0
  201473. .IP \(bu 2
  201474. 8d4e194400 Merge pull request \fI\%#38160\fP from terminalmage/update\-archive\-docs
  201475. .IP \(bu 2
  201476. 8e4ad3cff3 Update information about xz\-utils in archive state/module docs
  201477. .UNINDENT
  201478. .IP \(bu 2
  201479. \fBISSUE\fP \fI\%#38024\fP: (\fI\%Ch3LL\fP) 2016.11.0 release notes missing azure arm reference (refs: \fI\%#38164\fP)
  201480. .IP \(bu 2
  201481. \fBPR\fP \fI\%#38164\fP: (\fI\%techhat\fP) Add Azure ARM docs for 2016.11.0
  201482. @ \fI2016\-12\-09 18:00:22 UTC\fP
  201483. .INDENT 2.0
  201484. .IP \(bu 2
  201485. 05136f0d8c Merge pull request \fI\%#38164\fP from techhat/azuredocs
  201486. .IP \(bu 2
  201487. 71b787e250 Add Azure ARM docs for 2016.11.0
  201488. .UNINDENT
  201489. .IP \(bu 2
  201490. \fBPR\fP \fI\%#38173\fP: (\fI\%rallytime\fP) Bump some win* module deprecations from Nitrogen to Oxygen
  201491. @ \fI2016\-12\-09 16:57:29 UTC\fP
  201492. .INDENT 2.0
  201493. .IP \(bu 2
  201494. e3c858cc28 Merge pull request \fI\%#38173\fP from rallytime/update\-win\-deprecation\-versions
  201495. .IP \(bu 2
  201496. 09a50b25e7 Bump some win* module deprecations from Nitrogen to Oxygen
  201497. .UNINDENT
  201498. .IP \(bu 2
  201499. \fBPR\fP \fI\%#38036\fP: (\fI\%terminalmage\fP) archive.extracted: fix problems with overwrite arg
  201500. @ \fI2016\-12\-08 19:08:41 UTC\fP
  201501. .INDENT 2.0
  201502. .IP \(bu 2
  201503. \fBPR\fP \fI\%#37889\fP: (\fI\%isbm\fP) Allow overwrite archives extraction (refs: \fI\%#38036\fP)
  201504. .IP \(bu 2
  201505. 827bf59999 Merge pull request \fI\%#38036\fP from terminalmage/archive\-extracted\-override
  201506. .IP \(bu 2
  201507. a1c70c7b95 archive.extracted: fix problems with overwrite arg
  201508. .UNINDENT
  201509. .IP \(bu 2
  201510. \fBPR\fP \fI\%#38133\fP: (\fI\%terminalmage\fP) Fix edge case in creation of trans tar for salt\-thin
  201511. @ \fI2016\-12\-08 17:47:26 UTC\fP
  201512. .INDENT 2.0
  201513. .IP \(bu 2
  201514. 50773a5f96 Merge pull request \fI\%#38133\fP from terminalmage/zd1067
  201515. .IP \(bu 2
  201516. 71e0bd023f Fix edge case in creation of trans tar for salt\-thin
  201517. .UNINDENT
  201518. .IP \(bu 2
  201519. \fBPR\fP \fI\%#38138\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201520. @ \fI2016\-12\-07 20:15:56 UTC\fP
  201521. .INDENT 2.0
  201522. .IP \(bu 2
  201523. 6026cb23b2 Merge pull request \fI\%#38138\fP from rallytime/merge\-2016.11
  201524. .IP \(bu 2
  201525. 28b56ea3b4 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201526. .IP \(bu 2
  201527. 86091db647 Skip daemon unit tests when running on Python 2.6 (\fI\%#38134\fP)
  201528. .UNINDENT
  201529. .IP \(bu 2
  201530. \fBPR\fP \fI\%#38130\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201531. @ \fI2016\-12\-07 20:11:19 UTC\fP
  201532. .INDENT 2.0
  201533. .IP \(bu 2
  201534. 90478ef25e Merge pull request \fI\%#38130\fP from rallytime/merge\-2016.11
  201535. .IP \(bu 2
  201536. 4d7d9abb41 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201537. .INDENT 2.0
  201538. .IP \(bu 2
  201539. d3d98fd4eb Merge pull request \fI\%#38102\fP from rallytime/fix\-38091
  201540. .INDENT 2.0
  201541. .IP \(bu 2
  201542. 4f79d5a0d1 Add False + msg tuple return if requests is missing for zenoss module
  201543. .UNINDENT
  201544. .IP \(bu 2
  201545. 8c8cbc2734 Merge pull request \fI\%#38104\fP from rallytime/bp\-36794
  201546. .INDENT 2.0
  201547. .IP \(bu 2
  201548. c906c8a0d5 Pylint fixes
  201549. .IP \(bu 2
  201550. da3ebf83e6 FreeBSD sysctl module now handels config_file parameter in show method
  201551. .UNINDENT
  201552. .UNINDENT
  201553. .IP \(bu 2
  201554. \fBPR\fP \fI\%#38129\fP: (\fI\%Ch3LL\fP) Fix beacon index
  201555. .IP \(bu 2
  201556. \fBPR\fP \fI\%#38127\fP: (\fI\%rallytime\fP) Add versionadded tags for network module funcs
  201557. .UNINDENT
  201558. .IP \(bu 2
  201559. \fBISSUE\fP \fI\%#38042\fP: (\fI\%MTecknology\fP) [2016.11.0] Invalid interfaces file produced by debian_ip module (refs: \fI\%#38043\fP)
  201560. .IP \(bu 2
  201561. \fBPR\fP \fI\%#38043\fP: (\fI\%MTecknology\fP) Debian networking fix
  201562. @ \fI2016\-12\-07 17:32:18 UTC\fP
  201563. .INDENT 2.0
  201564. .IP \(bu 2
  201565. fd06bab673 Merge pull request \fI\%#38043\fP from MTecknology/2016.11
  201566. .IP \(bu 2
  201567. 6d5e132e44 Removing trailing whitespace from previous commit
  201568. .IP \(bu 2
  201569. f882674acf Adding some options that are valid for inet6 blocks.
  201570. .IP \(bu 2
  201571. 81cb688d4c Better check for dual stack.
  201572. .IP \(bu 2
  201573. 525c746274 May Cthulhu take mercy on my soul for this commit.
  201574. .IP \(bu 2
  201575. 300ca6047e I guess this makes the previous commit a bit redundant, but I\(aqm not sure if I want to remove it.
  201576. .IP \(bu 2
  201577. 6e7fc39c68 This now seems absurdly obvious, but I\(aqm not ruling out that I\(aqll break everything.
  201578. .IP \(bu 2
  201579. 82d2b89e0c Rolling back unit test.
  201580. .IP \(bu 2
  201581. b3edbcfd05 Adding larger and more complete debian_ip unit test.
  201582. .IP \(bu 2
  201583. 3afd7b6cf4 Adding the valid/documented \(aqslaves\(aq option.
  201584. .IP \(bu 2
  201585. b6b1adc091 Typo: missing closing parenthesis
  201586. .IP \(bu 2
  201587. 756e41caf2 Fixing a typo; line should not be commented
  201588. .IP \(bu 2
  201589. 32a1374748 Corrects expected return value
  201590. .IP \(bu 2
  201591. 88f9d9f22c Mostly whitespace & comment changes
  201592. .IP \(bu 2
  201593. 41ffb8d805 Removing redundant line
  201594. .IP \(bu 2
  201595. 3a8168667b Ensure iface_dict not being populated will not produce a stacktrace
  201596. .IP \(bu 2
  201597. 4de2cb2805 Corrects regression in debian_ip/debian_eth.jinja
  201598. .UNINDENT
  201599. .IP \(bu 2
  201600. \fBPR\fP \fI\%#38107\fP: (\fI\%cachedout\fP) Status beacon should raise proper exception
  201601. @ \fI2016\-12\-07 17:21:49 UTC\fP
  201602. .INDENT 2.0
  201603. .IP \(bu 2
  201604. \fBPR\fP \fI\%#38088\fP: (\fI\%dmurphy18\fP) Updated to match formulas and allow for missing functions (refs: \fI\%#38107\fP)
  201605. .IP \(bu 2
  201606. 4b9a7f2295 Merge pull request \fI\%#38107\fP from cachedout/supercede_38088
  201607. .IP \(bu 2
  201608. 73d724845d Change to log.debug per Tom
  201609. .IP \(bu 2
  201610. da135b1b59 Fix docs
  201611. .IP \(bu 2
  201612. 792b422dc2 Pylint fix
  201613. .IP \(bu 2
  201614. 88e03bba6d Fix typo
  201615. .IP \(bu 2
  201616. a8ce153252 Status beacon should raise proper exception
  201617. .UNINDENT
  201618. .IP \(bu 2
  201619. \fBPR\fP \fI\%#38101\fP: (\fI\%lorengordon\fP) Clarifies file.replace behavior on symlinks
  201620. @ \fI2016\-12\-07 13:27:11 UTC\fP
  201621. .INDENT 2.0
  201622. .IP \(bu 2
  201623. da8f5ac0c6 Merge pull request \fI\%#38101\fP from lorengordon/file\-replace\-note
  201624. .IP \(bu 2
  201625. 345990f2b0 Clarifies file.replace behavior on symlinks
  201626. .UNINDENT
  201627. .IP \(bu 2
  201628. \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)
  201629. .IP \(bu 2
  201630. \fBPR\fP \fI\%#38113\fP: (\fI\%terminalmage\fP) Revert changes to refresh tag for pkg states
  201631. @ \fI2016\-12\-07 13:11:14 UTC\fP
  201632. .INDENT 2.0
  201633. .IP \(bu 2
  201634. d47761f349 Merge pull request \fI\%#38113\fP from terminalmage/issue38090
  201635. .IP \(bu 2
  201636. 9f347df012 Revert changes to refresh tag for pkg states
  201637. .UNINDENT
  201638. .IP \(bu 2
  201639. \fBISSUE\fP \fI\%#37976\fP: (\fI\%t0nyhays\fP) Error when status beacon fires (2016.11.0) (refs: \fI\%#38120\fP)
  201640. .IP \(bu 2
  201641. \fBPR\fP \fI\%#38120\fP: (\fI\%Da\-Juan\fP) Fix status beacon config default values
  201642. @ \fI2016\-12\-07 13:08:33 UTC\fP
  201643. .INDENT 2.0
  201644. .IP \(bu 2
  201645. d4c34e0a58 Merge pull request \fI\%#38120\fP from Da\-Juan/2016.11
  201646. .IP \(bu 2
  201647. 7e4a35e8ad Fix status beacon config default values
  201648. .UNINDENT
  201649. .IP \(bu 2
  201650. \fBPR\fP \fI\%#38114\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201651. @ \fI2016\-12\-07 12:45:04 UTC\fP
  201652. .INDENT 2.0
  201653. .IP \(bu 2
  201654. 6868089a87 Merge pull request \fI\%#38114\fP from rallytime/merge\-2016.11
  201655. .IP \(bu 2
  201656. fec9dec23a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201657. .INDENT 2.0
  201658. .IP \(bu 2
  201659. fbc87769b9 Merge pull request \fI\%#38083\fP from twangboy/fix_refresh_db
  201660. .INDENT 2.0
  201661. .IP \(bu 2
  201662. 978af6d83c Remove only .sls files from the cached winrepo\-ng
  201663. .UNINDENT
  201664. .IP \(bu 2
  201665. 9dcfdeef6b Merge pull request \fI\%#38059\fP from rallytime/daemons\-test\-fix
  201666. .INDENT 2.0
  201667. .IP \(bu 2
  201668. eb372b27d8 Add missing "not" statement: The last syndic test should assertFalse()
  201669. .IP \(bu 2
  201670. 4e10f8e018 Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  201671. .UNINDENT
  201672. .IP \(bu 2
  201673. 9cd42b9b3f Merge pull request \fI\%#38039\fP from rallytime/fix\-37939
  201674. .INDENT 2.0
  201675. .IP \(bu 2
  201676. 1da7aacfbe Update unit tests to account for additional file.search call
  201677. .IP \(bu 2
  201678. 8a685b1820 Check to see if a line is already commented before moving on
  201679. .IP \(bu 2
  201680. f2c045520d Write an integration test demonstrating the issue
  201681. .UNINDENT
  201682. .IP \(bu 2
  201683. a34a763984 Merge pull request \fI\%#38045\fP from terminalmage/issue38037
  201684. .INDENT 2.0
  201685. .IP \(bu 2
  201686. 65289503d9 Simplify logic for matching desired pkg arch with actual pkg arch
  201687. .IP \(bu 2
  201688. 3babbcda94 yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  201689. .UNINDENT
  201690. .UNINDENT
  201691. .UNINDENT
  201692. .IP \(bu 2
  201693. \fBPR\fP \fI\%#38109\fP: (\fI\%gtmanfred\fP) mode needs to be an integer
  201694. @ \fI2016\-12\-07 11:58:24 UTC\fP
  201695. .INDENT 2.0
  201696. .IP \(bu 2
  201697. b9920e54ee Merge pull request \fI\%#38109\fP from gtmanfred/2016.11
  201698. .IP \(bu 2
  201699. 7546760eb3 mode needs to be an integer
  201700. .UNINDENT
  201701. .IP \(bu 2
  201702. \fBPR\fP \fI\%#38103\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37283\fP to 2016.11
  201703. @ \fI2016\-12\-06 23:12:59 UTC\fP
  201704. .INDENT 2.0
  201705. .IP \(bu 2
  201706. \fBPR\fP \fI\%#37283\fP: (\fI\%jeanpralo\fP) Handle docker\-compose up to version 1.9.0 (refs: \fI\%#38103\fP)
  201707. .IP \(bu 2
  201708. \fBPR\fP \fI\%#37215\fP: (\fI\%mschneider82\fP) removed version check (refs: \fI\%#37283\fP)
  201709. .IP \(bu 2
  201710. fd77dcbd0f Merge pull request \fI\%#38103\fP from rallytime/bp\-37283
  201711. .IP \(bu 2
  201712. 11944df69b handle up to version 1.9.0
  201713. .UNINDENT
  201714. .IP \(bu 2
  201715. \fBPR\fP \fI\%#38057\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38059\fP)
  201716. @ \fI2016\-12\-06 23:11:41 UTC\fP
  201717. .INDENT 2.0
  201718. .IP \(bu 2
  201719. 5d9d6b9280 Merge pull request \fI\%#38057\fP from rallytime/merge\-2016.11
  201720. .IP \(bu 2
  201721. 342884018b Fix SaltKeyOptionParserTestCase test failures
  201722. .IP \(bu 2
  201723. 186e2d0d03 Don\(aqt allow libcloud mock module injection in unit/states/libcloud_dns_test.py either
  201724. .IP \(bu 2
  201725. d513a60189 Do not allow libcloud to be injected as a mock value in the libcloud_dns_test
  201726. .IP \(bu 2
  201727. 74a417e527 Update the mocked cloud configs to also include master configs
  201728. .IP \(bu 2
  201729. f2c8cb13d0 Better merge conflict resolution from the initial merge
  201730. .IP \(bu 2
  201731. 8fd53a4808 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201732. .INDENT 2.0
  201733. .IP \(bu 2
  201734. 6724fe4871 Modify daemons test to use multiprocessing (\fI\%#38034\fP)
  201735. .IP \(bu 2
  201736. 6942d5d95b Merge pull request \fI\%#37995\fP from rallytime/merge\-2016.3
  201737. .INDENT 2.0
  201738. .IP \(bu 2
  201739. b44e17921c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  201740. .INDENT 2.0
  201741. .IP \(bu 2
  201742. 7a7e36728f Merge pull request \fI\%#37978\fP from terminalmage/ext_pillar_first\-docs
  201743. .INDENT 2.0
  201744. .IP \(bu 2
  201745. 61ed9a8657 Add clarifying language to ext_pillar_first docs
  201746. .UNINDENT
  201747. .UNINDENT
  201748. .UNINDENT
  201749. .IP \(bu 2
  201750. cd66c179cb fix broken yaml code block (\fI\%#38002\fP)
  201751. .IP \(bu 2
  201752. 3dd45fbedf Merge pull request \fI\%#37912\fP from attiasr/fix_aws_response_encoding
  201753. .INDENT 2.0
  201754. .IP \(bu 2
  201755. ba4ec4e7f1 use Requests result encoding to encode the text
  201756. .IP \(bu 2
  201757. abe4eb3b98 fix encoding problem aws responses
  201758. .UNINDENT
  201759. .IP \(bu 2
  201760. 69a74a4d2d Merge pull request \fI\%#37950\fP from vutny/fix\-starting\-up\-syndic
  201761. .INDENT 2.0
  201762. .IP \(bu 2
  201763. 7d9bc9abce syndic_master: correct default value, documentation and example config
  201764. .IP \(bu 2
  201765. 92a7c7ed1b Set default Salt Master address for a Syndic (like for a Minion)
  201766. .UNINDENT
  201767. .IP \(bu 2
  201768. 7f269bc7f9 Add clarification on expr_form usage and future deprecation (\fI\%#37964\fP)
  201769. .IP \(bu 2
  201770. 1001987f64 Catch possible exception from lsb_release (\fI\%#37962\fP)
  201771. .IP \(bu 2
  201772. 330021cd8b Handle empty tokens safely (\fI\%#37961\fP)
  201773. .IP \(bu 2
  201774. ea46639ce7 Merge pull request \fI\%#37272\fP from vutny/fix\-getting\-default\-logging\-opts
  201775. .INDENT 2.0
  201776. .IP \(bu 2
  201777. e5ce52388a Fix description in the Salt Syndic usage info
  201778. .IP \(bu 2
  201779. 518a3dd7ee Add unit tests for Salt parsers processing logging options
  201780. .IP \(bu 2
  201781. 83d6a44254 Add \fIssh_log_file\fP option to master config and documentation
  201782. .IP \(bu 2
  201783. c8a0915460 Fix configuration example and documentation for \fIsyndic_log_file\fP option
  201784. .IP \(bu 2
  201785. e64dd3ed6b Correct default attributes for various parser classes
  201786. .IP \(bu 2
  201787. 82a2e216b3 Fix default usage string for Salt command line programs
  201788. .IP \(bu 2
  201789. 45dffa292f Fix readding and updating logfile and pidfile config options for Salt API
  201790. .IP \(bu 2
  201791. f47253c21b Fix reading and applying Salt Cloud default configuration
  201792. .IP \(bu 2
  201793. fad5bec936 Work with a copy of default opts dictionaries
  201794. .IP \(bu 2
  201795. b7c24811e5 Fix \fIlog_level_logfile\fP config value type
  201796. .IP \(bu 2
  201797. 1bd76a1d96 Fix setting temporary log level if CLI option omitted
  201798. .IP \(bu 2
  201799. 121848cc77 Fix obtaining \fIlog_granular_levels\fP config setting
  201800. .IP \(bu 2
  201801. 44cf07fec2 Make CLI options take precedence for setting up logfile_logger
  201802. .IP \(bu 2
  201803. 61afaf1792 Fix setting option attributes when processing \fIlog_level\fP and \fIlog_file\fP
  201804. .IP \(bu 2
  201805. 3c60e2388e Fix processing of \fIlog_level_logfile\fP config setting
  201806. .IP \(bu 2
  201807. 55a0af5bbd Use attribute functions for getting/setting options and config values
  201808. .IP \(bu 2
  201809. c25f2d091e Fix getting Salt API default logfile option
  201810. .IP \(bu 2
  201811. f2422373c1 Remove processing of unused and undocumented \fIcli_*_log_*\fP config options
  201812. .IP \(bu 2
  201813. 2065e8311c Get default logging level and file from default opts dict
  201814. .UNINDENT
  201815. .IP \(bu 2
  201816. f2f957da6c Merge pull request \fI\%#37925\fP from kontrolld/add\-ipv6\-centos\-network
  201817. .INDENT 2.0
  201818. .IP \(bu 2
  201819. ac2b477412 Adding IPv6 functionality for CentOS /etc/sysconfig/network
  201820. .UNINDENT
  201821. .IP \(bu 2
  201822. c07ad11279 Merge pull request \fI\%#37899\fP from DSRCorporation/bugs/37059_schedule_task_hang
  201823. .INDENT 2.0
  201824. .IP \(bu 2
  201825. 9497748546 Clear functions context in schedule tasks for ZeroMQ.
  201826. .UNINDENT
  201827. .IP \(bu 2
  201828. a55519db40 Merge pull request \fI\%#37928\fP from techhat/issue37737
  201829. .INDENT 2.0
  201830. .IP \(bu 2
  201831. a09a60e89b Don\(aqt modify self.opts directly
  201832. .UNINDENT
  201833. .IP \(bu 2
  201834. 9d17f1ce90 Merge pull request \fI\%#37929\fP from gtmanfred/2016.3
  201835. .INDENT 2.0
  201836. .IP \(bu 2
  201837. c7d2c73503 add list_nodes_min to nova driver
  201838. .UNINDENT
  201839. .IP \(bu 2
  201840. 3bb743b59f Merge pull request \fI\%#37926\fP from kontrolld/fix\-ipv6\-centos\-network
  201841. .INDENT 2.0
  201842. .IP \(bu 2
  201843. 3ed42e5b44 updated
  201844. .IP \(bu 2
  201845. 3b3bc4f239 Fixes no IPv6 functionality in /etc/sysconfig/network
  201846. .UNINDENT
  201847. .IP \(bu 2
  201848. 271170a9f3 Merge pull request \fI\%#37921\fP from rallytime/merge\-2016.3
  201849. .INDENT 2.0
  201850. .IP \(bu 2
  201851. 523a67c422 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  201852. .INDENT 2.0
  201853. .IP \(bu 2
  201854. 4cdc6cf5ec Update earlier release channels\(aq docs with Carbon release notes (\fI\%#37914\fP)
  201855. .IP \(bu 2
  201856. d31491a7fe [2015.8] Update version numbers in doc config for 2016.11.0 release (\fI\%#37918\fP)
  201857. .UNINDENT
  201858. .UNINDENT
  201859. .IP \(bu 2
  201860. 6cd6429ac0 Merge pull request \fI\%#37924\fP from cachedout/fix_gem_states
  201861. .INDENT 2.0
  201862. .IP \(bu 2
  201863. 894cca3427 Update test for new gem ver
  201864. .UNINDENT
  201865. .UNINDENT
  201866. .IP \(bu 2
  201867. \fBPR\fP \fI\%#38112\fP: (\fI\%rallytime\fP) Account for case where vim install already exists and is at an older version
  201868. .UNINDENT
  201869. .IP \(bu 2
  201870. \fBISSUE\fP \fI\%#19502\fP: (\fI\%kt97679\fP) salt\-ssh fails to run state.highstate with custom master_tops (refs: \fI\%#38021\fP)
  201871. .IP \(bu 2
  201872. \fBPR\fP \fI\%#38021\fP: (\fI\%mateiw\fP) Add master_tops support in salt\-ssh
  201873. @ \fI2016\-12\-06 14:26:22 UTC\fP
  201874. .INDENT 2.0
  201875. .IP \(bu 2
  201876. f8c67a9598 Merge pull request \fI\%#38021\fP from mateiw/salt\-ssh_master_tops
  201877. .IP \(bu 2
  201878. 65a0f102fd Add/remove newlines
  201879. .IP \(bu 2
  201880. 7037fa116d Add master_tops support in salt\-ssh
  201881. .IP \(bu 2
  201882. \fBPR\fP \fI\%#38084\fP: (\fI\%rallytime\fP) Start release notes file for 2016.11.1 release
  201883. .UNINDENT
  201884. .IP \(bu 2
  201885. \fBPR\fP \fI\%#37878\fP: (\fI\%kstreee\fP) Makes threads avoid blocking waiting while communicating using Zeromq.
  201886. @ \fI2016\-12\-05 19:50:46 UTC\fP
  201887. .INDENT 2.0
  201888. .IP \(bu 2
  201889. 78295516e7 Merge pull request \fI\%#37878\fP from kstreee/2016.11
  201890. .IP \(bu 2
  201891. 9103878c4f Fixes blocking waiting through implementing a socket pool class.
  201892. .UNINDENT
  201893. .IP \(bu 2
  201894. \fBPR\fP \fI\%#37987\fP: (\fI\%rbjorklin\fP) consul_pillar support for limiting pillar exposure via minion targeting
  201895. @ \fI2016\-12\-05 19:48:20 UTC\fP
  201896. .INDENT 2.0
  201897. .IP \(bu 2
  201898. \fBPR\fP \fI\%#37985\fP: (\fI\%rbjorklin\fP) consul_pillar support for limiting pillar exposure via minion targeting (refs: \fI\%#37987\fP)
  201899. .IP \(bu 2
  201900. 0809ccd429 Merge pull request \fI\%#37987\fP from rbjorklin/consul\-pillar\-target
  201901. .IP \(bu 2
  201902. 5d0454a7ca Ignore W1401 (anomalous\-backslash\-in\-string)
  201903. .IP \(bu 2
  201904. 2e929a5ecc Linting fixes
  201905. .IP \(bu 2
  201906. 171cab1726 Fixed possible incorrect behavior if target wasn\(aqt on start/end of str
  201907. .IP \(bu 2
  201908. 7440582ce8 consul_pillar support for limiting pillar exposure via minion targeting
  201909. .UNINDENT
  201910. .IP \(bu 2
  201911. \fBISSUE\fP \fI\%#38062\fP: (\fI\%UtahDave\fP) archive execution module not loading on Windows in 2016.11.0 (refs: \fI\%#38067\fP)
  201912. .IP \(bu 2
  201913. \fBPR\fP \fI\%#38067\fP: (\fI\%terminalmage\fP) Remove virtual funcs for archive state/module
  201914. @ \fI2016\-12\-05 16:37:23 UTC\fP
  201915. .INDENT 2.0
  201916. .IP \(bu 2
  201917. 83dcfe81ea Merge pull request \fI\%#38067\fP from terminalmage/issue38062
  201918. .IP \(bu 2
  201919. 2e0f26a084 Remove virtual funcs for archive state/module
  201920. .UNINDENT
  201921. .IP \(bu 2
  201922. \fBISSUE\fP \fI\%#38001\fP: (\fI\%tomlaredo\fP) Regression on postgres_group.present (\(aqpostgres_group\(aq __virtual__ returned False) (refs: \fI\%#38023\fP)
  201923. .IP \(bu 2
  201924. \fBISSUE\fP \fI\%#37986\fP: (\fI\%marek\-obuchowicz\fP) Module postgres \- wrong docs, doesn\(aqt work with debian 8.5 (refs: \fI\%#38023\fP)
  201925. .IP \(bu 2
  201926. \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)
  201927. .IP \(bu 2
  201928. \fBPR\fP \fI\%#38058\fP: (\fI\%rallytime\fP) Remove initdb dependency in postgres module
  201929. @ \fI2016\-12\-04 04:19:02 UTC\fP
  201930. .INDENT 2.0
  201931. .IP \(bu 2
  201932. \fBPR\fP \fI\%#38023\fP: (\fI\%gtmanfred\fP) Expand error message for postgres states (refs: \fI\%#38058\fP)
  201933. .IP \(bu 2
  201934. \fBPR\fP \fI\%#37993\fP: (\fI\%ticosax\fP) Remove initdb dependency to consume postgres module. (refs: \fI\%#38058\fP)
  201935. .IP \(bu 2
  201936. c9933670f9 Merge pull request \fI\%#38058\fP from rallytime/remove\-init\-db\-dep
  201937. .IP \(bu 2
  201938. c1ceeca3d3 Remove initdb dependency in postgres module
  201939. .UNINDENT
  201940. .IP \(bu 2
  201941. \fBISSUE\fP \fI\%#37969\fP: (\fI\%lordcirth\fP) Archive.extracted fails if \-user: root is specified (refs: \fI\%#38004\fP)
  201942. .IP \(bu 2
  201943. \fBPR\fP \fI\%#38004\fP: (\fI\%terminalmage\fP) Fix regression in user/group mgmt for archive.extracted
  201944. @ \fI2016\-12\-02 18:28:49 UTC\fP
  201945. .INDENT 2.0
  201946. .IP \(bu 2
  201947. 1ac53e5196 Merge pull request \fI\%#38004\fP from terminalmage/issue37969
  201948. .IP \(bu 2
  201949. 23bb90a7ce Add integration test for archive.extracted with user/group set to root
  201950. .IP \(bu 2
  201951. e5ee721696 Don\(aqt use simple boolean check on uid/gid
  201952. .UNINDENT
  201953. .IP \(bu 2
  201954. \fBISSUE\fP \fI\%#37941\fP: (\fI\%L4rS6\fP) Outdated documentation for 2016.11.x (refs: \fI\%#38051\fP)
  201955. .IP \(bu 2
  201956. \fBPR\fP \fI\%#38051\fP: (\fI\%Ch3LL\fP) add docs for hash_type change to sha256
  201957. @ \fI2016\-12\-02 18:11:36 UTC\fP
  201958. .INDENT 2.0
  201959. .IP \(bu 2
  201960. e90cbbef08 Merge pull request \fI\%#38051\fP from Ch3LL/fix_hash_docs
  201961. .IP \(bu 2
  201962. e95f88fbe3 add docs for hash_type change to sha256
  201963. .UNINDENT
  201964. .IP \(bu 2
  201965. \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)
  201966. .IP \(bu 2
  201967. \fBPR\fP \fI\%#38028\fP: (\fI\%terminalmage\fP) Pass full_return to saltutil.runner
  201968. @ \fI2016\-12\-02 09:49:31 UTC\fP
  201969. .INDENT 2.0
  201970. .IP \(bu 2
  201971. 1b52289508 Merge pull request \fI\%#38028\fP from terminalmage/issue38000
  201972. .IP \(bu 2
  201973. 9bf13d55b4 Pass full_return to saltutil.runner
  201974. .UNINDENT
  201975. .IP \(bu 2
  201976. \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)
  201977. .IP \(bu 2
  201978. \fBPR\fP \fI\%#38044\fP: (\fI\%terminalmage\fP) Remove debugging code
  201979. @ \fI2016\-12\-02 09:43:44 UTC\fP
  201980. .INDENT 2.0
  201981. .IP \(bu 2
  201982. 41c44ff684 Merge pull request \fI\%#38044\fP from terminalmage/issue37980
  201983. .IP \(bu 2
  201984. f70a0409b3 Remove debugging code
  201985. .UNINDENT
  201986. .IP \(bu 2
  201987. \fBPR\fP \fI\%#38035\fP: (\fI\%dmurphy18\fP) Updated to return status from make_repo similar to rpmbuild.py
  201988. @ \fI2016\-12\-01 22:30:53 UTC\fP
  201989. .INDENT 2.0
  201990. .IP \(bu 2
  201991. 9661258f22 Merge pull request \fI\%#38035\fP from dmurphy18/fix_debbuild
  201992. .IP \(bu 2
  201993. 3bca96e7f2 Updated to return status from make_repo similar to rpmbuild.py
  201994. .UNINDENT
  201995. .IP \(bu 2
  201996. \fBISSUE\fP \fI\%#38001\fP: (\fI\%tomlaredo\fP) Regression on postgres_group.present (\(aqpostgres_group\(aq __virtual__ returned False) (refs: \fI\%#38023\fP)
  201997. .IP \(bu 2
  201998. \fBISSUE\fP \fI\%#37986\fP: (\fI\%marek\-obuchowicz\fP) Module postgres \- wrong docs, doesn\(aqt work with debian 8.5 (refs: \fI\%#38023\fP)
  201999. .IP \(bu 2
  202000. \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)
  202001. .IP \(bu 2
  202002. \fBPR\fP \fI\%#38023\fP: (\fI\%gtmanfred\fP) Expand error message for postgres states (refs: \fI\%#38058\fP)
  202003. @ \fI2016\-12\-01 22:05:06 UTC\fP
  202004. .INDENT 2.0
  202005. .IP \(bu 2
  202006. 141b5c5656 Merge pull request \fI\%#38023\fP from gtmanfred/2016.11
  202007. .IP \(bu 2
  202008. 1aa43eba80 Expand error message for postgres states
  202009. .IP \(bu 2
  202010. ac72ee600e Revert "Updated the bins_dir to default to pg_bin \fI\%#37935\fP"
  202011. .UNINDENT
  202012. .IP \(bu 2
  202013. \fBPR\fP \fI\%#38026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38015\fP to 2016.11
  202014. @ \fI2016\-12\-01 19:16:15 UTC\fP
  202015. .INDENT 2.0
  202016. .IP \(bu 2
  202017. \fBPR\fP \fI\%#38015\fP: (\fI\%morsik\fP) Typo fix (refs: \fI\%#38026\fP)
  202018. .IP \(bu 2
  202019. 79486421f5 Merge pull request \fI\%#38026\fP from rallytime/bp\-38015
  202020. .IP \(bu 2
  202021. 11becf3e68 Typo fix
  202022. .IP \(bu 2
  202023. \fBPR\fP \fI\%#38022\fP: (\fI\%DmitryKuzmenko\fP) Added Carbon release notes. Fixed sphinx errors in the file.
  202024. .IP \(bu 2
  202025. \fBPR\fP \fI\%#38011\fP: (\fI\%rallytime\fP) Adjust code examples to use the actual bootstrap\-salt.sh file name
  202026. .UNINDENT
  202027. .IP \(bu 2
  202028. \fBISSUE\fP \fI\%#37940\fP: (\fI\%alex\-zel\fP) dockerng.sls_build fails on some distributions (refs: \fI\%#37954\fP)
  202029. .IP \(bu 2
  202030. \fBPR\fP \fI\%#37954\fP: (\fI\%gtmanfred\fP) use sleep from path for docker.sls_build
  202031. @ \fI2016\-11\-30 18:08:45 UTC\fP
  202032. .INDENT 2.0
  202033. .IP \(bu 2
  202034. 0a041277ea Merge pull request \fI\%#37954\fP from gtmanfred/2016.11
  202035. .IP \(bu 2
  202036. 9caf0b406d use sleep from path for docker.sls_build
  202037. .UNINDENT
  202038. .IP \(bu 2
  202039. \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)
  202040. .IP \(bu 2
  202041. \fBPR\fP \fI\%#37993\fP: (\fI\%ticosax\fP) Remove initdb dependency to consume postgres module. (refs: \fI\%#38058\fP)
  202042. @ \fI2016\-11\-30 18:08:13 UTC\fP
  202043. .INDENT 2.0
  202044. .IP \(bu 2
  202045. 4ef5c98845 Merge pull request \fI\%#37993\fP from ticosax/remove\-initdb\-requirement
  202046. .IP \(bu 2
  202047. c5c7a53d72 Remove initdb dependency to consume postgres module.
  202048. .UNINDENT
  202049. .IP \(bu 2
  202050. \fBPR\fP \fI\%#37997\fP: (\fI\%cachedout\fP) Update gem test for 2016.11
  202051. @ \fI2016\-11\-30 17:13:45 UTC\fP
  202052. .INDENT 2.0
  202053. .IP \(bu 2
  202054. 2e5565685c Merge pull request \fI\%#37997\fP from cachedout/gem_test_carbon
  202055. .IP \(bu 2
  202056. 1d221aa91c Update gem test for 2016.11
  202057. .UNINDENT
  202058. .IP \(bu 2
  202059. \fBISSUE\fP \fI\%#36723\fP: (\fI\%white\-hat\fP) ext_pillar_first option is broken in 2016.3 (refs: \fI\%#36807\fP)
  202060. .IP \(bu 2
  202061. \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)
  202062. .IP \(bu 2
  202063. \fBISSUE\fP \fI\%#19332\fP: (\fI\%QuinnyPig\fP) Nondeterminism in Pillar (refs: \fI\%#31316\fP)
  202064. .IP \(bu 2
  202065. \fBPR\fP \fI\%#37979\fP: (\fI\%terminalmage\fP) Revert addition of pillar_roots_override_ext_pillar
  202066. @ \fI2016\-11\-30 14:34:24 UTC\fP
  202067. .INDENT 2.0
  202068. .IP \(bu 2
  202069. \fBPR\fP \fI\%#36807\fP: (\fI\%terminalmage\fP) Fix pillar merging when ext_pillar_first is enabled (refs: \fI\%#37979\fP)
  202070. .IP \(bu 2
  202071. \fBPR\fP \fI\%#31316\fP: (\fI\%kraney\fP) Let ext_pillar_first determine the override order (refs: \fI\%#37979\fP)
  202072. .IP \(bu 2
  202073. ca3a9488f1 Merge pull request \fI\%#37979\fP from terminalmage/revert\-pillar\-change
  202074. .IP \(bu 2
  202075. 6135dfa4dd Revert addition of pillar_roots_override_ext_pillar
  202076. .IP \(bu 2
  202077. \fBPR\fP \fI\%#37970\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37958\fP to 2016.11
  202078. .IP \(bu 2
  202079. \fBPR\fP \fI\%#37958\fP: (\fI\%mirceaulinic\fP) Fix RST link format in Carbon release notes (refs: \fI\%#37970\fP)
  202080. .IP \(bu 2
  202081. \fBPR\fP \fI\%#37971\fP: (\fI\%rallytime\fP) Lint 2016.11 sooner rather than later
  202082. .IP \(bu 2
  202083. \fBPR\fP \fI\%#37955\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#37971\fP)
  202084. .UNINDENT
  202085. .IP \(bu 2
  202086. \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)
  202087. .IP \(bu 2
  202088. \fBPR\fP \fI\%#37946\fP: (\fI\%scott\-w\fP) Updated the bins_dir to default to pg_bin
  202089. @ \fI2016\-11\-29 16:48:27 UTC\fP
  202090. .INDENT 2.0
  202091. .IP \(bu 2
  202092. 36f91408c5 Merge pull request \fI\%#37946\fP from scott\-w/37935\-fix\-bin\-dir
  202093. .IP \(bu 2
  202094. d33d403969 Restored missing initdb \fI\%#37935\fP
  202095. .IP \(bu 2
  202096. a041b9f8e8 Use Salt deprecation warning \fI\%#37935\fP
  202097. .IP \(bu 2
  202098. a96789353f Updated the bins_dir to default to pg_bin \fI\%#37935\fP
  202099. .UNINDENT
  202100. .IP \(bu 2
  202101. \fBPR\fP \fI\%#37889\fP: (\fI\%isbm\fP) Allow overwrite archives extraction (refs: \fI\%#38036\fP)
  202102. @ \fI2016\-11\-29 16:18:57 UTC\fP
  202103. .INDENT 2.0
  202104. .IP \(bu 2
  202105. d8650c5474 Merge pull request \fI\%#37889\fP from isbm/isbm\-states\-archive\-fix
  202106. .IP \(bu 2
  202107. e67706bd29 Document the behaviour.
  202108. .IP \(bu 2
  202109. 1970814111 Prevent crash during externally changed archive permissions
  202110. .IP \(bu 2
  202111. 91b42578b2 Add overwrite option so the extraction of the archive can be always performed.
  202112. .IP \(bu 2
  202113. e6958f7f15 Remove nonsense comment and react on generally absent path name
  202114. .UNINDENT
  202115. .IP \(bu 2
  202116. \fBPR\fP \fI\%#37869\fP: (\fI\%isbm\fP) Input sanitation (16.11)
  202117. @ \fI2016\-11\-29 16:17:16 UTC\fP
  202118. .INDENT 2.0
  202119. .IP \(bu 2
  202120. e2b9e58d30 Merge pull request \fI\%#37869\fP from isbm/isbm\-input\-sanitation\-16.11
  202121. .IP \(bu 2
  202122. f9ec5d68af Use six instead of builtins
  202123. .IP \(bu 2
  202124. 203dfcb238 Use American spelling instead
  202125. .IP \(bu 2
  202126. 91ed307af9 Sanitise input for the keys and IDs
  202127. .IP \(bu 2
  202128. 86623f913d Add a stub for ID sanitiser (at the moment same as hostname)
  202129. .IP \(bu 2
  202130. 637144c841 Rename "general.py" to "sanitisers.py"
  202131. .IP \(bu 2
  202132. f2571fc8bf Add hostname sanitiser
  202133. .IP \(bu 2
  202134. 3ae086aff4 Add filename sanitiser
  202135. .IP \(bu 2
  202136. 816b1d1977 Add general sanitisers
  202137. .UNINDENT
  202138. .IP \(bu 2
  202139. \fBPR\fP \fI\%#37884\fP: (\fI\%isbm\fP) Do not include "gpg\-pubkey" packages, filtering by their name
  202140. @ \fI2016\-11\-28 21:11:37 UTC\fP
  202141. .INDENT 2.0
  202142. .IP \(bu 2
  202143. e539a94a56 Merge pull request \fI\%#37884\fP from isbm/isbm\-zypper\-gpgkey\-pkg\-filter
  202144. .IP \(bu 2
  202145. 038374a586 Do not include "gpg\-pubkey" packages, filtering by their name
  202146. .UNINDENT
  202147. .IP \(bu 2
  202148. \fBPR\fP \fI\%#37882\fP: (\fI\%attiasr\fP) multiple issues in boto_rds state and module
  202149. @ \fI2016\-11\-28 21:09:11 UTC\fP
  202150. .INDENT 2.0
  202151. .IP \(bu 2
  202152. eb3d81a1de Merge pull request \fI\%#37882\fP from attiasr/fix_missing_tags
  202153. .IP \(bu 2
  202154. 73b3c5fa1a Add newline
  202155. .IP \(bu 2
  202156. 166c42bc51 fix boto_rds.describe
  202157. .IP \(bu 2
  202158. ddd88ba047 fix boto_rds.describe parameters and subnetgroup_present
  202159. .IP \(bu 2
  202160. bfe7f92cb4 fix missing tags in call to boto_rds.exists
  202161. .IP \(bu 2
  202162. \fBPR\fP \fI\%#37931\fP: (\fI\%rallytime\fP) Remove release candidate doc ref from 2016.11.0 release notes
  202163. .UNINDENT
  202164. .IP \(bu 2
  202165. \fBPR\fP \fI\%#37930\fP: (\fI\%cachedout\fP) Remove dictionary comprehension in netusers
  202166. @ \fI2016\-11\-28 20:27:06 UTC\fP
  202167. .INDENT 2.0
  202168. .IP \(bu 2
  202169. 3d2dabc7b7 Merge pull request \fI\%#37930\fP from cachedout/fix_comp
  202170. .IP \(bu 2
  202171. 670e83200b Remove dictionary comprehension in netusers
  202172. .UNINDENT
  202173. .IP \(bu 2
  202174. \fBPR\fP \fI\%#37923\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202175. @ \fI2016\-11\-28 19:55:03 UTC\fP
  202176. .INDENT 2.0
  202177. .IP \(bu 2
  202178. 0f8b187d15 Merge pull request \fI\%#37923\fP from rallytime/merge\-2016.11
  202179. .IP \(bu 2
  202180. da7f5518eb Don\(aqt let 2016.3 doc config changes overwrite the 2016.11 changes
  202181. .IP \(bu 2
  202182. dfedd1185a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202183. .INDENT 2.0
  202184. .IP \(bu 2
  202185. c35ba1f390 Merge pull request \fI\%#37916\fP from rallytime/doc\-update\-2016.3
  202186. .INDENT 2.0
  202187. .IP \(bu 2
  202188. bd40592289 [2016.3] Update version numbers in doc config for 2016.11.0 release
  202189. .UNINDENT
  202190. .IP \(bu 2
  202191. e13a2488c8 Merge pull request \fI\%#37785\fP from Cloudtek/ddns\-respect\-trailing\-dot
  202192. .INDENT 2.0
  202193. .IP \(bu 2
  202194. 262e3b3697 respect trailing dot in ddns name parameter
  202195. .UNINDENT
  202196. .IP \(bu 2
  202197. c03b389422 Merge pull request \fI\%#37895\fP from fj40crawler/fix\-augeas\-return\-for\-test
  202198. .INDENT 2.0
  202199. .IP \(bu 2
  202200. ddc238df36 Fixed augeas_test.py to match True v.s. None for test_change_in_test_mode
  202201. .IP \(bu 2
  202202. ef75c459c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into fix\-augeas\-return\-for\-test
  202203. .IP \(bu 2
  202204. 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
  202205. .UNINDENT
  202206. .IP \(bu 2
  202207. fdbc31e8d8 Merge pull request \fI\%#37907\fP from Talkless/patch\-2
  202208. .INDENT 2.0
  202209. .IP \(bu 2
  202210. 072a319490 Fix server trust in test run of svn.latest
  202211. .UNINDENT
  202212. .IP \(bu 2
  202213. f39fdf443f Merge pull request \fI\%#37896\fP from toanju/2016.3
  202214. .INDENT 2.0
  202215. .IP \(bu 2
  202216. c95304188e rh networking: add missing values
  202217. .UNINDENT
  202218. .IP \(bu 2
  202219. ea935c5a91 Merge pull request \fI\%#37886\fP from bdrung/fix\-typos
  202220. .INDENT 2.0
  202221. .IP \(bu 2
  202222. 9a51ba5c5b Fix various spelling mistakes
  202223. .UNINDENT
  202224. .IP \(bu 2
  202225. 371b0a86d9 Merge pull request \fI\%#37736\fP from dhaines/issue\-37732
  202226. .INDENT 2.0
  202227. .IP \(bu 2
  202228. 7ef590a505 Update selinux.py
  202229. .IP \(bu 2
  202230. 516a67e6a3 fix indexing error
  202231. .IP \(bu 2
  202232. 4e49c1e991 fix typo
  202233. .IP \(bu 2
  202234. b16f2d8400 handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  202235. .UNINDENT
  202236. .IP \(bu 2
  202237. 87aeb66fbf Merge pull request \fI\%#37797\fP from clan/extfs
  202238. .INDENT 2.0
  202239. .IP \(bu 2
  202240. acf0f960ef check count of columns after split
  202241. .UNINDENT
  202242. .IP \(bu 2
  202243. f7c7109152 Merge pull request \fI\%#37762\fP from twangboy/fix_chocolatey_state
  202244. .INDENT 2.0
  202245. .IP \(bu 2
  202246. 9696b6dfa5 Use keyword args instead of relying on ordering
  202247. .IP \(bu 2
  202248. 398eaa074d Add pre_versions to the available arguments
  202249. .UNINDENT
  202250. .IP \(bu 2
  202251. 56baa92d55 Merge pull request \fI\%#37866\fP from meaksh/2016.3\-bp\-37149\-36938\-36784
  202252. .INDENT 2.0
  202253. .IP \(bu 2
  202254. 9d8d578109 Fix pkg.latest_version when latest already installed
  202255. .IP \(bu 2
  202256. ffca0d491c \- acl.delfacl: fix position of \-X option to setfacl
  202257. .IP \(bu 2
  202258. 3dfed6b841 Adjust linux_acl unit test argument ordering
  202259. .IP \(bu 2
  202260. f185ecdde1 core.py: quote style fixed
  202261. .IP \(bu 2
  202262. 8404d13424 Setting up OS grains for SLES Expanded Support (SUSE\(aqs Red Hat compatible platform)
  202263. .UNINDENT
  202264. .IP \(bu 2
  202265. d0cc7f0d56 Merge pull request \fI\%#37863\fP from rallytime/bp\-36893
  202266. .INDENT 2.0
  202267. .IP \(bu 2
  202268. 4c70534991 Add versionadded to reauth option in dockerng module
  202269. .IP \(bu 2
  202270. 5ca2c388c2 added documentation for the new reuth option in docker registry configuration
  202271. .IP \(bu 2
  202272. 5b0c11ab47 add option to force a reauth for a docker registry
  202273. .UNINDENT
  202274. .IP \(bu 2
  202275. b17a118e72 add multiline encryption documentation to nacl (\fI\%#37847\fP)
  202276. .UNINDENT
  202277. .IP \(bu 2
  202278. \fBPR\fP \fI\%#37927\fP: (\fI\%thatch45\fP) Add a release notes reference to the docker\-sls tutorial
  202279. .IP \(bu 2
  202280. \fBPR\fP \fI\%#37917\fP: (\fI\%rallytime\fP) [2016.11] Update version numbers in doc config for 2016.11.0 release
  202281. .UNINDENT
  202282. .IP \(bu 2
  202283. \fBPR\fP \fI\%#37890\fP: (\fI\%bbinet\fP) Fix support for extra_mods=\(aqsix\(aq to add six module to a thin.tgz tarball
  202284. @ \fI2016\-11\-28 13:53:06 UTC\fP
  202285. .INDENT 2.0
  202286. .IP \(bu 2
  202287. ee00592995 Merge pull request \fI\%#37890\fP from bbinet/fix\-genthin\-six
  202288. .IP \(bu 2
  202289. 7fceaa3476 Fix support for extra_mods=\(aqsix\(aq to add six module to a thin.tgz tarball
  202290. .UNINDENT
  202291. .IP \(bu 2
  202292. \fBISSUE\fP \fI\%#37713\fP: (\fI\%aboe76\fP) masterless minion can\(aqt call pillar.item from pillar stack (development branch) (refs: \fI\%#37843\fP)
  202293. .INDENT 2.0
  202294. .IP \(bu 2
  202295. \fBPR\fP \fI\%#37843\fP: (\fI\%terminalmage\fP) Don\(aqt skip pillar compilation when master_type==\(aqdisable\(aq
  202296. .IP \(bu 2
  202297. \fBPR\fP \fI\%#32521\fP: (\fI\%adelcast\fP) Fix salt\-call on standalone minion case (refs: \fI\%#37843\fP)
  202298. .UNINDENT
  202299. .IP \(bu 2
  202300. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  202301. .INDENT 2.0
  202302. .IP \(bu 2
  202303. \fBPR\fP \fI\%#37849\fP: (\fI\%skizunov\fP) Eliminate warning when \(aqssl\(aq not set
  202304. .IP \(bu 2
  202305. \fBPR\fP \fI\%#37776\fP: (\fI\%DmitryKuzmenko\fP) Full TLS/SSL options support as provided by Tornado TCPServer. (refs: \fI\%#37849\fP)
  202306. .UNINDENT
  202307. .IP \(bu 2
  202308. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  202309. .INDENT 2.0
  202310. .IP \(bu 2
  202311. \fBPR\fP \fI\%#37859\fP: (\fI\%DmitryKuzmenko\fP) TLS example config
  202312. .IP \(bu 2
  202313. \fBPR\fP \fI\%#37841\fP: (\fI\%terminalmage\fP) Clarify the master_type docs
  202314. .IP \(bu 2
  202315. \fBPR\fP \fI\%#37831\fP: (\fI\%skizunov\fP) PY3: Fix exception when handling connect exception in TCP transport
  202316. .UNINDENT
  202317. .IP \(bu 2
  202318. \fBPR\fP \fI\%#37829\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202319. @ \fI2016\-11\-22 15:26:00 UTC\fP
  202320. .INDENT 2.0
  202321. .IP \(bu 2
  202322. dd81d2fa67 Merge pull request \fI\%#37829\fP from rallytime/merge\-2016.11
  202323. .IP \(bu 2
  202324. 3d6d32edc5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202325. .IP \(bu 2
  202326. aa3748744c add missing chloginclass (\fI\%#37827\fP)
  202327. .IP \(bu 2
  202328. 0e74bad284 Update branch refs to more relevant branch (\fI\%#37826\fP)
  202329. .IP \(bu 2
  202330. 6a9b49c782 Add "names" option to file state docs: point users to highstate doc examples (\fI\%#37823\fP)
  202331. .IP \(bu 2
  202332. aaf587de63 Clarify keystone.user_present password state docs with default behavior (\fI\%#37821\fP)
  202333. .IP \(bu 2
  202334. c300863159 Add some dependency documentation to libvirt docs (\fI\%#37820\fP)
  202335. .IP \(bu 2
  202336. 485270f74e Merge pull request \fI\%#37772\fP from bdrung/openssl1.1
  202337. .INDENT 2.0
  202338. .IP \(bu 2
  202339. 819c9658ed Support initializing OpenSSL 1.1
  202340. .UNINDENT
  202341. .IP \(bu 2
  202342. 4910912ffa Update orchestrate runner file.copy doc example (\fI\%#37817\fP)
  202343. .IP \(bu 2
  202344. c5d3d8b66a Merge pull request \fI\%#37816\fP from rallytime/bp\-32157
  202345. .INDENT 2.0
  202346. .IP \(bu 2
  202347. d9c297119e Add quotes to cron doc
  202348. .UNINDENT
  202349. .IP \(bu 2
  202350. 97e6b6aabe Merge pull request \fI\%#37812\fP from rallytime/bp\-37790
  202351. .INDENT 2.0
  202352. .IP \(bu 2
  202353. ca3b6e7874 Update proxmox.rst with more options and LXC
  202354. .UNINDENT
  202355. .IP \(bu 2
  202356. 27703c54bc Merge pull request \fI\%#37811\fP from rallytime/bp\-37789
  202357. .INDENT 2.0
  202358. .IP \(bu 2
  202359. ba3fef48e1 fix comment
  202360. .IP \(bu 2
  202361. a021f76a9b issue: 37751 Add documentation for option privileged
  202362. .UNINDENT
  202363. .IP \(bu 2
  202364. adac9d7c0c Merge pull request \fI\%#37810\fP from rallytime/bp\-37775
  202365. .INDENT 2.0
  202366. .IP \(bu 2
  202367. 2bed91437b Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP
  202368. .UNINDENT
  202369. .IP \(bu 2
  202370. \fBPR\fP \fI\%#37794\fP: (\fI\%sjorge\fP) network.routes should not raise exception if no interface
  202371. .UNINDENT
  202372. .IP \(bu 2
  202373. \fBPR\fP \fI\%#37815\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202374. @ \fI2016\-11\-21 20:22:49 UTC\fP
  202375. .INDENT 2.0
  202376. .IP \(bu 2
  202377. 628c4a3d27 Merge pull request \fI\%#37815\fP from rallytime/merge\-2016.11
  202378. .IP \(bu 2
  202379. c6b5fd3715 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202380. .INDENT 2.0
  202381. .IP \(bu 2
  202382. 7de784411d Add nodegroup check to ckminions (\fI\%#37763\fP)
  202383. .IP \(bu 2
  202384. d674369efc Fix ip/port issue with salt\-call (\fI\%#37766\fP)
  202385. .UNINDENT
  202386. .UNINDENT
  202387. .IP \(bu 2
  202388. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  202389. .IP \(bu 2
  202390. \fBPR\fP \fI\%#37776\fP: (\fI\%DmitryKuzmenko\fP) Full TLS/SSL options support as provided by Tornado TCPServer. (refs: \fI\%#37849\fP)
  202391. @ \fI2016\-11\-21 20:11:52 UTC\fP
  202392. .INDENT 2.0
  202393. .IP \(bu 2
  202394. 0b30b93dbb Merge pull request \fI\%#37776\fP from DSRCorporation/features/37449_tls
  202395. .IP \(bu 2
  202396. 6857b9b8b1 Documented new TLS/SSL settings.
  202397. .IP \(bu 2
  202398. e42898f2e3 Full TLS/SSL options support as provided by Tornado TCPServer.
  202399. .UNINDENT
  202400. .IP \(bu 2
  202401. \fBPR\fP \fI\%#37773\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202402. @ \fI2016\-11\-18 19:18:42 UTC\fP
  202403. .INDENT 2.0
  202404. .IP \(bu 2
  202405. 3835f91d99 Merge pull request \fI\%#37773\fP from rallytime/merge\-2016.11
  202406. .IP \(bu 2
  202407. c859fc9ec1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202408. .IP \(bu 2
  202409. c62ff6b023 Add thorium path to syspaths (\fI\%#37767\fP)
  202410. .IP \(bu 2
  202411. bff949f4e9 Merge pull request \fI\%#37760\fP from hu\-dabao/fix_cb_returner
  202412. .INDENT 2.0
  202413. .IP \(bu 2
  202414. 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
  202415. .UNINDENT
  202416. .IP \(bu 2
  202417. 1f976ac212 Merge pull request \fI\%#37738\fP from terminalmage/issue36629
  202418. .INDENT 2.0
  202419. .IP \(bu 2
  202420. da46678c51 Allow pillar.get to retrieve fresh pillar data when saltenv passed
  202421. .UNINDENT
  202422. .IP \(bu 2
  202423. 7aee7fc63c Switch default filter tag for ONE resources from user only to all resources (\fI\%#37745\fP)
  202424. .UNINDENT
  202425. .IP \(bu 2
  202426. \fBPR\fP \fI\%#37764\fP: (\fI\%mirceaulinic\fP) Doc fixes and \fIreplace\fP feature
  202427. @ \fI2016\-11\-18 03:15:31 UTC\fP
  202428. .INDENT 2.0
  202429. .IP \(bu 2
  202430. 6f0f70c9a3 Merge pull request \fI\%#37764\fP from cloudflare/NET\-UPDATE
  202431. .IP \(bu 2
  202432. c3f0202fdd Replace feature and doc fixes
  202433. .UNINDENT
  202434. .UNINDENT
  202435. .SS Salt 2016.11.10 Release Notes
  202436. .sp
  202437. Version 2016.11.10 is a security release for 2016.11.0\&.
  202438. .SS Changes for v2016.11.9..v2016.11.10
  202439. .SS Security Fix
  202440. .sp
  202441. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  202442. .sp
  202443. 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.
  202444. .sp
  202445. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  202446. .SS Salt 2016.11.2 Release Notes
  202447. .sp
  202448. Version 2016.11.2 is a bugfix release for 2016.11.0\&.
  202449. .SS Statistics
  202450. .INDENT 0.0
  202451. .IP \(bu 2
  202452. Total Merges: \fB157\fP
  202453. .IP \(bu 2
  202454. Total Issue References: \fB34\fP
  202455. .IP \(bu 2
  202456. Total PR References: \fB116\fP
  202457. .IP \(bu 2
  202458. 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)
  202459. .UNINDENT
  202460. .SS Security Fixes
  202461. .sp
  202462. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  202463. .sp
  202464. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  202465. credentials and so access to it from salt\-api has been removed for now. This
  202466. vulnerability allows code execution for already\-authenticated users and is only
  202467. in effect when running salt\-api as the \fBroot\fP user.
  202468. .sp
  202469. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master
  202470. via Salt\(aqs ssh_client
  202471. .sp
  202472. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  202473. hole when both systems were enabled.
  202474. .sp
  202475. We recommend everyone upgrade to 2016.11.2 as soon as possible.
  202476. .SS Changelog for v2016.11.1..v2016.11.2
  202477. .sp
  202478. \fIGenerated at: 2018\-05\-27 19:28:11 UTC\fP
  202479. .INDENT 0.0
  202480. .IP \(bu 2
  202481. \fBPR\fP \fI\%#38859\fP: (\fI\%alxwr\fP) fix parsing of sockstat \-4
  202482. @ \fI2017\-01\-23 16:47:22 UTC\fP
  202483. .INDENT 2.0
  202484. .IP \(bu 2
  202485. ec59ae67c8 Merge pull request \fI\%#38859\fP from alxwr/2016.11
  202486. .IP \(bu 2
  202487. 30fe5641c7 fix parsing of sockstat \-4
  202488. .UNINDENT
  202489. .IP \(bu 2
  202490. \fBPR\fP \fI\%#38850\fP: (\fI\%techhat\fP) Strip .p from cache file names
  202491. @ \fI2017\-01\-23 16:28:46 UTC\fP
  202492. .INDENT 2.0
  202493. .IP \(bu 2
  202494. 5fe6db6201 Merge pull request \fI\%#38850\fP from techhat/stripcache
  202495. .IP \(bu 2
  202496. 109cb62e76 Remove .p from test
  202497. .IP \(bu 2
  202498. 534aa3f527 Strip .p from cache file names
  202499. .IP \(bu 2
  202500. \fBPR\fP \fI\%#38848\fP: (\fI\%Ch3LL\fP) add 2016.11.2 changelog to release notes
  202501. .UNINDENT
  202502. .IP \(bu 2
  202503. \fBPR\fP \fI\%#38819\fP: (\fI\%twangboy\fP) Remove \fIUsers\fP from c:\esalt [DO NOT MERGE FORWARD]
  202504. @ \fI2017\-01\-20 20:17:35 UTC\fP
  202505. .INDENT 2.0
  202506. .IP \(bu 2
  202507. 4913c4f90c Merge pull request \fI\%#38819\fP from twangboy/salt_perms_2016.11
  202508. .IP \(bu 2
  202509. eb04ed7eef Remove \fIUser\fP from c:salt
  202510. .UNINDENT
  202511. .IP \(bu 2
  202512. \fBPR\fP \fI\%#38815\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202513. @ \fI2017\-01\-20 18:53:01 UTC\fP
  202514. .INDENT 2.0
  202515. .IP \(bu 2
  202516. a275b9714e Merge pull request \fI\%#38815\fP from rallytime/merge\-2016.11
  202517. .IP \(bu 2
  202518. ce6d1b103d Make sure we\(aqre using the opts dict mocking in parsers_test
  202519. .IP \(bu 2
  202520. 315b2c8712 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202521. .INDENT 2.0
  202522. .IP \(bu 2
  202523. d14f0c64eb Merge pull request \fI\%#38812\fP from rallytime/pyobjects\-test
  202524. .INDENT 2.0
  202525. .IP \(bu 2
  202526. f3e84c1ab7 Update pyobjects test to be a list
  202527. .UNINDENT
  202528. .IP \(bu 2
  202529. 50f03f8057 Merge pull request \fI\%#38813\fP from gtmanfred/2016.3
  202530. .INDENT 2.0
  202531. .IP \(bu 2
  202532. ce3472cec2 catch SIGPIPE in vmware connection
  202533. .UNINDENT
  202534. .IP \(bu 2
  202535. 23b8b47258 Merge pull request \fI\%#38809\fP from twangboy/fix_hostname_2016.3
  202536. .INDENT 2.0
  202537. .IP \(bu 2
  202538. d57a51f9f9 Fix tests for get_hostname
  202539. .IP \(bu 2
  202540. 7ca3fd7484 Fix get_hostname to handle longer computer names
  202541. .UNINDENT
  202542. .IP \(bu 2
  202543. 1033bbdde8 Merge pull request \fI\%#38808\fP from vutny/fix\-38388
  202544. .INDENT 2.0
  202545. .IP \(bu 2
  202546. 9bd203ffcc Fix \fI\%#38388\fP
  202547. .UNINDENT
  202548. .IP \(bu 2
  202549. f3ae3cd5c8 Merge pull request \fI\%#38668\fP from terminalmage/issue38604
  202550. .INDENT 2.0
  202551. .IP \(bu 2
  202552. 0ea97cdad9 Merge pull request \fI\%#10\fP from cachedout/pr\-38668
  202553. .INDENT 2.0
  202554. .IP \(bu 2
  202555. db81afc035 Munge retcode into return data for batching
  202556. .UNINDENT
  202557. .IP \(bu 2
  202558. a642a995dc Return the ret data from batch execution instead of raw data
  202559. .UNINDENT
  202560. .IP \(bu 2
  202561. c6a19a9e5a Merge pull request \fI\%#38789\fP from rallytime/fix\-38622
  202562. .INDENT 2.0
  202563. .IP \(bu 2
  202564. af41fe0c6e Update some saltenv refs to environment in salt.modules.state docs
  202565. .UNINDENT
  202566. .IP \(bu 2
  202567. e0bf700020 Merge pull request \fI\%#38790\fP from cachedout/fix_pyobjects_test_typo
  202568. .INDENT 2.0
  202569. .IP \(bu 2
  202570. a66afb5f0f Fix typo in pyobjects test
  202571. .UNINDENT
  202572. .IP \(bu 2
  202573. 6e9785edea Merge pull request \fI\%#38792\fP from rallytime/fix\-38629
  202574. .INDENT 2.0
  202575. .IP \(bu 2
  202576. 1e125e2844 Update pillar tutorial lanuage regarding pillar_opts settings
  202577. .UNINDENT
  202578. .UNINDENT
  202579. .UNINDENT
  202580. .IP \(bu 2
  202581. \fBPR\fP \fI\%#38832\fP: (\fI\%terminalmage\fP) archive.extracted: Identify symlinks when checking for incorrect types
  202582. @ \fI2017\-01\-20 18:36:15 UTC\fP
  202583. .INDENT 2.0
  202584. .IP \(bu 2
  202585. efe1bf10e8 Merge pull request \fI\%#38832\fP from terminalmage/issue38711
  202586. .IP \(bu 2
  202587. d10c068e25 Update archive state unit tests to reflect symlinks in archive.list
  202588. .IP \(bu 2
  202589. d6adfb6d12 Identify symlinks when looking for incorrect types
  202590. .IP \(bu 2
  202591. 09b9e95f7c archive.list: organize symlinks separately from files in verbose mode
  202592. .IP \(bu 2
  202593. e6483f096d Support removing symlinks in salt.utils.rm_rf
  202594. .UNINDENT
  202595. .IP \(bu 2
  202596. \fBPR\fP \fI\%#38726\fP: (\fI\%twangboy\fP) Add VC Redist 2008 SP1 MFC to installer
  202597. @ \fI2017\-01\-19 19:13:42 UTC\fP
  202598. .INDENT 2.0
  202599. .IP \(bu 2
  202600. 10a3d8b8dd Merge pull request \fI\%#38726\fP from twangboy/vcredist
  202601. .IP \(bu 2
  202602. f00a65355d change extensions .ext to .exe
  202603. .IP \(bu 2
  202604. 98c40e278c Add VC Redist 2008 SP1 MFC to installer
  202605. .UNINDENT
  202606. .IP \(bu 2
  202607. \fBPR\fP \fI\%#38810\fP: (\fI\%UtahDave\fP) Fix beacon doc
  202608. @ \fI2017\-01\-18 21:37:21 UTC\fP
  202609. .INDENT 2.0
  202610. .IP \(bu 2
  202611. d5f2d92a4e Merge pull request \fI\%#38810\fP from UtahDave/fix_beacon_doc_zd1035
  202612. .IP \(bu 2
  202613. dbe9edb806 fix reactor example.
  202614. .UNINDENT
  202615. .IP \(bu 2
  202616. \fBPR\fP \fI\%#38811\fP: (\fI\%techhat\fP) Show a lot less data when requesting a VM
  202617. @ \fI2017\-01\-18 21:08:03 UTC\fP
  202618. .INDENT 2.0
  202619. .IP \(bu 2
  202620. 88faf08a71 Merge pull request \fI\%#38811\fP from techhat/sanvm
  202621. .IP \(bu 2
  202622. 47c19325cf Show a lot less data when requesting a VM
  202623. .IP \(bu 2
  202624. \fBPR\fP \fI\%#38807\fP: (\fI\%Ch3LL\fP) refine the os detection in archive test
  202625. .UNINDENT
  202626. .IP \(bu 2
  202627. \fBPR\fP \fI\%#38799\fP: (\fI\%aosagie\fP) Parse ansible dynamic inventory output correctly
  202628. @ \fI2017\-01\-18 15:32:47 UTC\fP
  202629. .INDENT 2.0
  202630. .IP \(bu 2
  202631. e3ca6881c8 Merge pull request \fI\%#38799\fP from aosagie/fix\-ansible\-dynamic\-roster
  202632. .IP \(bu 2
  202633. 26d6f699a7 Parse ansible dynamic inventory output correctly
  202634. .UNINDENT
  202635. .IP \(bu 2
  202636. \fBPR\fP \fI\%#38787\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202637. @ \fI2017\-01\-18 08:39:08 UTC\fP
  202638. .INDENT 2.0
  202639. .IP \(bu 2
  202640. 76df6a43f3 Merge pull request \fI\%#38787\fP from rallytime/merge\-2016.11
  202641. .IP \(bu 2
  202642. 2aad54c49f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202643. .INDENT 2.0
  202644. .IP \(bu 2
  202645. 3417adc617 Merge pull request \fI\%#38796\fP from saltstack/revert\-38707\-root_dir_fix\-gh
  202646. .INDENT 2.0
  202647. .IP \(bu 2
  202648. cb080f3bbe Revert "Fixed prepending of root_dir override to the other paths"
  202649. .UNINDENT
  202650. .UNINDENT
  202651. .IP \(bu 2
  202652. 64d866f7ab Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202653. .IP \(bu 2
  202654. bab3479a3c Merge pull request \fI\%#38585\fP from rallytime/follow\-up\-38527
  202655. .INDENT 2.0
  202656. .IP \(bu 2
  202657. 05587201b6 Pylint fix: add line at end of file
  202658. .IP \(bu 2
  202659. fa01367599 Keep a copy of the DEFAULT_API_OPTS and restore them after the test run
  202660. .IP \(bu 2
  202661. 2ad07634d9 Test clean up
  202662. .IP \(bu 2
  202663. fd2ee7db30 Add some simple unit tests for salt.config.api_config function
  202664. .IP \(bu 2
  202665. 3d2fefc83b Make sure the pidfile and log_file values are overriden by api opts
  202666. .IP \(bu 2
  202667. 1f6b540e46 Make sure the pidfile and log_file values are overriden by api opts
  202668. .IP \(bu 2
  202669. 04d307f917 salt\-api no longer forces the default timeout
  202670. .UNINDENT
  202671. .IP \(bu 2
  202672. 0fb6bb7b77 Merge pull request \fI\%#38707\fP from alexbleotu/root_dir_fix\-gh
  202673. .INDENT 2.0
  202674. .IP \(bu 2
  202675. 0bac8c8be3 Fixed prepending of root_dir override to the other paths
  202676. .UNINDENT
  202677. .IP \(bu 2
  202678. 96c9dc10f7 Merge pull request \fI\%#38774\fP from vutny/dev\-test\-docs
  202679. .INDENT 2.0
  202680. .IP \(bu 2
  202681. 4620dc4afa DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  202682. .UNINDENT
  202683. .IP \(bu 2
  202684. aedfbb7a43 Merge pull request \fI\%#38749\fP from vutny/pkg\-build\-better\-exception\-msg
  202685. .INDENT 2.0
  202686. .IP \(bu 2
  202687. 53f2be5b21 pkg build modules throw better exception message if keyid wasn\(aqt found
  202688. .UNINDENT
  202689. .UNINDENT
  202690. .IP \(bu 2
  202691. \fBPR\fP \fI\%#38660\fP: (\fI\%techhat\fP) Don\(aqt force salt.cache to use cachedir from opts
  202692. @ \fI2017\-01\-17 18:38:35 UTC\fP
  202693. .INDENT 2.0
  202694. .IP \(bu 2
  202695. 4e6146f65f Merge pull request \fI\%#38660\fP from techhat/cachedir
  202696. .IP \(bu 2
  202697. be55b57abf One last fix
  202698. .IP \(bu 2
  202699. fc24b24998 Add correct function name
  202700. .IP \(bu 2
  202701. 9bbecf7960 Typo fix
  202702. .IP \(bu 2
  202703. 436ba28f08 Change getlist back to list (using _list)
  202704. .IP \(bu 2
  202705. ff734fe93b Default to CACHE_DIR in syspaths
  202706. .IP \(bu 2
  202707. 380abd3744 Add cachedir args to tests
  202708. .IP \(bu 2
  202709. deb08c0587 Not every module will need cachedir
  202710. .IP \(bu 2
  202711. 4489f7cac0 Don\(aqt force salt.cache to use cachedir from opts
  202712. .UNINDENT
  202713. .IP \(bu 2
  202714. \fBISSUE\fP \fI\%#37948\fP: (\fI\%djacobs2016\fP) ssh_known_hosts.present is failing when checking key/host (refs: \fI\%#37982\fP)
  202715. .IP \(bu 2
  202716. \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)
  202717. .IP \(bu 2
  202718. \fBPR\fP \fI\%#38667\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37982\fP to 2016.11
  202719. @ \fI2017\-01\-17 15:42:13 UTC\fP
  202720. .INDENT 2.0
  202721. .IP \(bu 2
  202722. \fBPR\fP \fI\%#37982\fP: (\fI\%wolfpackmars2\fP) Update ssh.py (refs: \fI\%#38667\fP)
  202723. .IP \(bu 2
  202724. \fBPR\fP \fI\%#33933\fP: (\fI\%folti\fP) ssh: keep original permissions, when hashing known_hosts (refs: \fI\%#38667\fP)
  202725. .IP \(bu 2
  202726. 89dc86e2bc Merge pull request \fI\%#38667\fP from rallytime/bp\-37982
  202727. .IP \(bu 2
  202728. be91e46a93 Update ssh.py
  202729. .UNINDENT
  202730. .IP \(bu 2
  202731. \fBPR\fP \fI\%#38759\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202732. @ \fI2017\-01\-17 15:22:01 UTC\fP
  202733. .INDENT 2.0
  202734. .IP \(bu 2
  202735. 751e14c523 Merge pull request \fI\%#38759\fP from rallytime/merge\-2016.11
  202736. .IP \(bu 2
  202737. 30e8a66fb0 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202738. .INDENT 2.0
  202739. .IP \(bu 2
  202740. 8466b34e82 Merge pull request \fI\%#38743\fP from rallytime/merge\-2016.3
  202741. .INDENT 2.0
  202742. .IP \(bu 2
  202743. d24776f5e9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  202744. .IP \(bu 2
  202745. 6869621ed1 Merge pull request \fI\%#38731\fP from rallytime/merge\-2015.8
  202746. .INDENT 2.0
  202747. .IP \(bu 2
  202748. 9eb191b6ac Pylint fix
  202749. .IP \(bu 2
  202750. b910499dbe Various follow up fixes
  202751. .IP \(bu 2
  202752. e8309a6bbf Add release notes for 2015.8.13
  202753. .IP \(bu 2
  202754. f881f366b7 Merge pull request \fI\%#20\fP from rallytime/2015.8.12_follow_up\-batch\-tests
  202755. .INDENT 2.0
  202756. .IP \(bu 2
  202757. 34282322c0 Clean up tests and docs for batch execution
  202758. .UNINDENT
  202759. .IP \(bu 2
  202760. c80b20b957 Merge pull request \fI\%#19\fP from whiteinge/batchclient
  202761. .INDENT 2.0
  202762. .IP \(bu 2
  202763. 3d8f3d18f6 Remove batch execution from NetapiClient and Saltnado
  202764. .UNINDENT
  202765. .IP \(bu 2
  202766. 97b0f64923 Lintfix
  202767. .IP \(bu 2
  202768. d1516664f7 Add explanation comment
  202769. .IP \(bu 2
  202770. 62f2c87080 Add docstring
  202771. .IP \(bu 2
  202772. 9b0a786aeb Explain what it is about and how to configure that
  202773. .IP \(bu 2
  202774. 5ea3579e10 Pick up a specified roster file from the configured locations
  202775. .IP \(bu 2
  202776. 3a8614c5df Disable custom rosters in API
  202777. .IP \(bu 2
  202778. c0e5a1171d Add roster disable flag
  202779. .UNINDENT
  202780. .IP \(bu 2
  202781. e9c59e9b8f Merge pull request \fI\%#38602\fP from terminalmage/fix\-boto\-test
  202782. .IP \(bu 2
  202783. 3424a108ac Fix failing unit.states.boto_vpc_test.BotoVpcRouteTableTestCase.test_present_with_routes
  202784. .UNINDENT
  202785. .IP \(bu 2
  202786. a642cdef79 Merge pull request \fI\%#38723\fP from rallytime/fix\-38674
  202787. .INDENT 2.0
  202788. .IP \(bu 2
  202789. 706c885f55 Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  202790. .UNINDENT
  202791. .IP \(bu 2
  202792. fc545af10b Merge pull request \fI\%#38669\fP from rallytime/update\-bootstrap\-script
  202793. .INDENT 2.0
  202794. .IP \(bu 2
  202795. 78ba76e34c Update bootstrap script verstion to latest release
  202796. .UNINDENT
  202797. .IP \(bu 2
  202798. 50d417f267 Merge pull request \fI\%#38693\fP from twangboy/update_jinja
  202799. .INDENT 2.0
  202800. .IP \(bu 2
  202801. e0c7e5549b Update jinja2 to 2.9.4
  202802. .UNINDENT
  202803. .IP \(bu 2
  202804. f4233bb18d Merge pull request \fI\%#38739\fP from vutny/fix\-runtests\-doc
  202805. .INDENT 2.0
  202806. .IP \(bu 2
  202807. b872bb63f6 DOCS: correct examples of running test suite
  202808. .UNINDENT
  202809. .IP \(bu 2
  202810. 51d4707071 DOCS: add links to File State Backups page where necessary (\fI\%#38735\fP)
  202811. .IP \(bu 2
  202812. 6d3717b9ee Proofread jinja_to_execution_module tutorial (\fI\%#38720\fP)
  202813. .UNINDENT
  202814. .UNINDENT
  202815. .IP \(bu 2
  202816. \fBISSUE\fP \fI\%#38775\fP: (\fI\%charburns\fP) Error using napalm netusers (refs: \fI\%#38778\fP)
  202817. .IP \(bu 2
  202818. \fBPR\fP \fI\%#38778\fP: (\fI\%mirceaulinic\fP) Fix "Error using napalm netusers"
  202819. @ \fI2017\-01\-17 15:20:27 UTC\fP
  202820. .INDENT 2.0
  202821. .IP \(bu 2
  202822. bb6291d93a Merge pull request \fI\%#38778\fP from cloudflare/fix\-38775
  202823. .IP \(bu 2
  202824. b3388f7162 Fix \fI\%#38775\fP
  202825. .UNINDENT
  202826. .IP \(bu 2
  202827. \fBISSUE\fP \fI\%#38528\fP: (\fI\%MorphBonehunter\fP) x509 make permissions configurable (refs: \fI\%#38664\fP)
  202828. .IP \(bu 2
  202829. \fBISSUE\fP \fI\%#38081\fP: (\fI\%haraldrudell\fP) x509 state or module cannot generate password protected private keys (refs: \fI\%#38664\fP)
  202830. .IP \(bu 2
  202831. \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
  202832. @ \fI2017\-01\-17 02:20:18 UTC\fP
  202833. .INDENT 2.0
  202834. .IP \(bu 2
  202835. 6663107021 Merge pull request \fI\%#38664\fP from clinta/x509\-passphrase2
  202836. .IP \(bu 2
  202837. 77c78723fe pep8
  202838. .IP \(bu 2
  202839. a2b20ee518 No mutable default args, remove unneeded import
  202840. .IP \(bu 2
  202841. b48b85cc70 bug fixes
  202842. .IP \(bu 2
  202843. f62393b864 pep8
  202844. .IP \(bu 2
  202845. c8613243a1 change documentation
  202846. .IP \(bu 2
  202847. 9a0abde9ac expose passphrase functionality to state
  202848. .IP \(bu 2
  202849. e47a93d496 add passphrase to execution module
  202850. .IP \(bu 2
  202851. a4d6598f1e preserve detailed change reports
  202852. .IP \(bu 2
  202853. d0ad251778 combine private key and cert management
  202854. .IP \(bu 2
  202855. 3d1474d911 cross call file.managed to get permissions options
  202856. .UNINDENT
  202857. .IP \(bu 2
  202858. \fBPR\fP \fI\%#38682\fP: (\fI\%mirceaulinic\fP) [2016.11.2/napalm] Better error message when NotImplementedError raised
  202859. @ \fI2017\-01\-15 18:34:25 UTC\fP
  202860. .INDENT 2.0
  202861. .IP \(bu 2
  202862. bf6d74c98e Merge pull request \fI\%#38682\fP from cloudflare/NotImplementedError\-MSG
  202863. .IP \(bu 2
  202864. f847639dee Better error message when NotImplementedError raised
  202865. .UNINDENT
  202866. .IP \(bu 2
  202867. \fBISSUE\fP \fI\%#37996\fP: (\fI\%stefan\-as\fP) influxdb_user.present does not pass client_args (refs: \fI\%#38695\fP)
  202868. .IP \(bu 2
  202869. \fBPR\fP \fI\%#38695\fP: (\fI\%rallytime\fP) Pass in client_args when calling influxdb execution module funcs
  202870. @ \fI2017\-01\-15 18:33:48 UTC\fP
  202871. .INDENT 2.0
  202872. .IP \(bu 2
  202873. df12e49d80 Merge pull request \fI\%#38695\fP from rallytime/fix\-37996
  202874. .IP \(bu 2
  202875. 05b0975888 Pass in client_args when calling influxdb execution module funcs
  202876. .UNINDENT
  202877. .IP \(bu 2
  202878. \fBISSUE\fP \fI\%#38521\fP: (\fI\%vladvasiliu\fP) State cloud.present on AWS: TypeError: \(aqNoneType\(aq object is not iterable (refs: \fI\%#38651\fP)
  202879. .IP \(bu 2
  202880. \fBISSUE\fP \fI\%#37981\fP: (\fI\%tazaki\fP) Salt\-cloud ec2 vpc securitygroupid always returning default (refs: \fI\%#38183\fP)
  202881. .IP \(bu 2
  202882. \fBPR\fP \fI\%#38651\fP: (\fI\%rallytime\fP) Don\(aqt lose the set reference for ec2 securitygroup ids
  202883. @ \fI2017\-01\-15 18:06:25 UTC\fP
  202884. .INDENT 2.0
  202885. .IP \(bu 2
  202886. \fBPR\fP \fI\%#38183\fP: (\fI\%cro\fP) Fix bad set operations when setting up securitygroups in AWS. (refs: \fI\%#38651\fP)
  202887. .IP \(bu 2
  202888. 834e5469fc Merge pull request \fI\%#38651\fP from rallytime/fix\-38521
  202889. .IP \(bu 2
  202890. 830c03cec6 Don\(aqt lose the set reference for ec2 securitygroup ids
  202891. .UNINDENT
  202892. .IP \(bu 2
  202893. \fBISSUE\fP \fI\%#38216\fP: (\fI\%pgrishin\fP) salt\-run: can\(aqt get cache.grains (refs: \fI\%#38659\fP)
  202894. .IP \(bu 2
  202895. \fBPR\fP \fI\%#38659\fP: (\fI\%techhat\fP) Turn None into an empty string (for minion matching)
  202896. @ \fI2017\-01\-15 18:02:03 UTC\fP
  202897. .INDENT 2.0
  202898. .IP \(bu 2
  202899. 8b38cfea8d Merge pull request \fI\%#38659\fP from techhat/issue38216
  202900. .IP \(bu 2
  202901. 4073c91584 Turn None into an empty string (for minion matching)
  202902. .UNINDENT
  202903. .IP \(bu 2
  202904. \fBPR\fP \fI\%#38703\fP: (\fI\%yhekma\fP) The \fItest\fP option is only valid for the minion, not the master
  202905. @ \fI2017\-01\-15 17:56:22 UTC\fP
  202906. .INDENT 2.0
  202907. .IP \(bu 2
  202908. 0ad5d22ad4 Merge pull request \fI\%#38703\fP from yhekma/docfix
  202909. .IP \(bu 2
  202910. 57df3bf148 The \fItest\fP option is only valid for the minion, not the master
  202911. .UNINDENT
  202912. .IP \(bu 2
  202913. \fBPR\fP \fI\%#38718\fP: (\fI\%terminalmage\fP) Fix for dynamic git_pillar when pillarenv is used
  202914. @ \fI2017\-01\-15 14:37:30 UTC\fP
  202915. .INDENT 2.0
  202916. .IP \(bu 2
  202917. 8c1222e7db Merge pull request \fI\%#38718\fP from terminalmage/zd909
  202918. .IP \(bu 2
  202919. 12bbea5a24 Fix for dynamic git_pillar when pillarenv is used
  202920. .UNINDENT
  202921. .IP \(bu 2
  202922. \fBISSUE\fP \fI\%#38677\fP: (\fI\%yhekma\fP) consul cache backend broken (refs: \fI\%#38676\fP)
  202923. .IP \(bu 2
  202924. \fBPR\fP \fI\%#38676\fP: (\fI\%yhekma\fP) Removed overloading of list()
  202925. @ \fI2017\-01\-15 05:42:13 UTC\fP
  202926. .INDENT 2.0
  202927. .IP \(bu 2
  202928. aae8b54860 Merge pull request \fI\%#38676\fP from yhekma/2016.11
  202929. .IP \(bu 2
  202930. 3237d23e1c Localfs should also be changed of course
  202931. .IP \(bu 2
  202932. 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)
  202933. .UNINDENT
  202934. .IP \(bu 2
  202935. \fBISSUE\fP \fI\%#38684\fP: (\fI\%rukender\fP) 2016.11.1 :[ERROR][11182] Failed to import beacons avahi_announce (refs: \fI\%#38713\fP)
  202936. .IP \(bu 2
  202937. \fBPR\fP \fI\%#38713\fP: (\fI\%rallytime\fP) Add NameError to exception in avahi_announce beacon
  202938. @ \fI2017\-01\-15 05:33:04 UTC\fP
  202939. .INDENT 2.0
  202940. .IP \(bu 2
  202941. c246ab41c5 Merge pull request \fI\%#38713\fP from rallytime/fix\-38684
  202942. .IP \(bu 2
  202943. db60bed24c Add NameError to exception in avahi_announce beacon
  202944. .UNINDENT
  202945. .IP \(bu 2
  202946. \fBPR\fP \fI\%#38729\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202947. @ \fI2017\-01\-13 23:15:33 UTC\fP
  202948. .INDENT 2.0
  202949. .IP \(bu 2
  202950. 6c14774c04 Merge pull request \fI\%#38729\fP from rallytime/merge\-2016.11
  202951. .IP \(bu 2
  202952. 4e1e45d640 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202953. .IP \(bu 2
  202954. 7b850d472d Merge pull request \fI\%#38647\fP from gtmanfred/nova
  202955. .INDENT 2.0
  202956. .IP \(bu 2
  202957. 5be9b60851 add documentation about using keystoneauth for v3
  202958. .IP \(bu 2
  202959. 7b657ca4ae add the ability to use keystone v2 and v3
  202960. .IP \(bu 2
  202961. 5646ae1b34 add ability to use keystoneauth to authenitcate in nova driver
  202962. .UNINDENT
  202963. .IP \(bu 2
  202964. 383768d838 Merge pull request \fI\%#38650\fP from rallytime/remove\-ubuntu\-ppa\-docs
  202965. .INDENT 2.0
  202966. .IP \(bu 2
  202967. 30429b2e44 Remove the installation instructions for out\-of\-date community ppa
  202968. .UNINDENT
  202969. .IP \(bu 2
  202970. 7d9f56e3b5 Merge pull request \fI\%#38657\fP from DSRCorporation/bugs/38087_syndic_event_format_fix
  202971. .INDENT 2.0
  202972. .IP \(bu 2
  202973. 594c33f396 Publish the \(aqdata\(aq field content for Syndic evets
  202974. .UNINDENT
  202975. .IP \(bu 2
  202976. 83987511fd Merge pull request \fI\%#38649\fP from Ch3LL/test_apply_template
  202977. .INDENT 2.0
  202978. .IP \(bu 2
  202979. 47f8b68e0b fix unit.modules.file_test
  202980. .UNINDENT
  202981. .UNINDENT
  202982. .IP \(bu 2
  202983. \fBISSUE\fP \fI\%#38631\fP: (\fI\%doitian\fP) In Orchestration, kwargs are not passed to state.sls in masterless mode (refs: \fI\%#38635\fP)
  202984. .IP \(bu 2
  202985. \fBPR\fP \fI\%#38635\fP: (\fI\%lorengordon\fP) Sends pass\-through params to state module
  202986. @ \fI2017\-01\-10 20:01:59 UTC\fP
  202987. .INDENT 2.0
  202988. .IP \(bu 2
  202989. cfd82d1631 Merge pull request \fI\%#38635\fP from lorengordon/issue\-38631
  202990. .IP \(bu 2
  202991. 14666138b9 Sends pass\-through params to state module
  202992. .UNINDENT
  202993. .IP \(bu 2
  202994. \fBPR\fP \fI\%#38640\fP: (\fI\%mirceaulinic\fP) Import napalm_base instead of napalm
  202995. @ \fI2017\-01\-10 19:58:01 UTC\fP
  202996. .INDENT 2.0
  202997. .IP \(bu 2
  202998. 017094a207 Merge pull request \fI\%#38640\fP from cloudflare/NAPALM\-IMPORTS
  202999. .IP \(bu 2
  203000. 8f13f63880 Import napalm_base instead of napalm
  203001. .UNINDENT
  203002. .IP \(bu 2
  203003. \fBPR\fP \fI\%#38661\fP: (\fI\%techhat\fP) Add sane cache defaults for minion and cloud
  203004. @ \fI2017\-01\-10 19:55:15 UTC\fP
  203005. .INDENT 2.0
  203006. .IP \(bu 2
  203007. 79663132dd Merge pull request \fI\%#38661\fP from techhat/sanedefault
  203008. .IP \(bu 2
  203009. aee40648ec Add a sane cache default for cloud
  203010. .IP \(bu 2
  203011. c9e01a36e7 Add a sane cache default for minions
  203012. .UNINDENT
  203013. .IP \(bu 2
  203014. \fBPR\fP \fI\%#38645\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203015. @ \fI2017\-01\-10 19:54:06 UTC\fP
  203016. .INDENT 2.0
  203017. .IP \(bu 2
  203018. b0ed91ce2d Merge pull request \fI\%#38645\fP from rallytime/merge\-2016.11
  203019. .IP \(bu 2
  203020. 7a668e9749 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203021. .IP \(bu 2
  203022. 74ddc71be3 Merge pull request \fI\%#38626\fP from saltstack/revert\-37358\-2016.3.3_issue37355
  203023. .INDENT 2.0
  203024. .IP \(bu 2
  203025. e912ac99c2 Revert "Fix/workaround for issue \fI\%#37355\fP"
  203026. .UNINDENT
  203027. .IP \(bu 2
  203028. 5e58b32934 Merge pull request \fI\%#37358\fP from Firewire2002/2016.3.3_issue37355
  203029. .INDENT 2.0
  203030. .IP \(bu 2
  203031. 910da18bfd fixed typo
  203032. .IP \(bu 2
  203033. 4fbc5ddd06 fixed wrong renamed variable and spaces
  203034. .IP \(bu 2
  203035. 92366e646c issue \fI\%#37355\fP
  203036. .IP \(bu 2
  203037. 7dc87ab7b8 issue \fI\%#37355\fP
  203038. .IP \(bu 2
  203039. 2878180405 issue \fI\%#37355\fP
  203040. .UNINDENT
  203041. .IP \(bu 2
  203042. 6c2fe615aa Merge pull request \fI\%#35390\fP from alexandr\-orlov/2016.3
  203043. .INDENT 2.0
  203044. .IP \(bu 2
  203045. cd5ae17e8d fxd missed proper grains dictionary
  203046. .UNINDENT
  203047. .IP \(bu 2
  203048. 2579cfa42d Merge pull request \fI\%#38618\fP from rallytime/bp\-38579
  203049. .INDENT 2.0
  203050. .IP \(bu 2
  203051. 2052ecee2c Add copy import
  203052. .IP \(bu 2
  203053. 2c8845aaa0 add test for pillar.get() + default value
  203054. .IP \(bu 2
  203055. c2f98d2f04 ticket 38558: add unit test, deepcopy() only if necessary
  203056. .IP \(bu 2
  203057. 30ae0a1958 added deepcopy of default if merge=True
  203058. .UNINDENT
  203059. .UNINDENT
  203060. .IP \(bu 2
  203061. \fBPR\fP \fI\%#38627\fP: (\fI\%cachedout\fP) Pr 38476
  203062. @ \fI2017\-01\-06 22:05:45 UTC\fP
  203063. .INDENT 2.0
  203064. .IP \(bu 2
  203065. \fBPR\fP \fI\%#38476\fP: (\fI\%amendlik\fP) Key fingerprints (refs: \fI\%#38627\fP)
  203066. .IP \(bu 2
  203067. d67f6937d7 Merge pull request \fI\%#38627\fP from cachedout/pr\-38476
  203068. .IP \(bu 2
  203069. 2a423ffedd Add changes to raetkey
  203070. .IP \(bu 2
  203071. 55ad9d6c6c Add hash_type argument to MultiKeyCLI.finger_all function
  203072. .IP \(bu 2
  203073. c8681269a4 Add hash_type argument to key module fingerprint functions
  203074. .IP \(bu 2
  203075. d0f4c300b7 Add hash_type argument to wheel fingerprint functions
  203076. .IP \(bu 2
  203077. e558ddcb18 Add finger_master function to wheel.key module
  203078. .UNINDENT
  203079. .IP \(bu 2
  203080. \fBISSUE\fP \fI\%#38595\fP: (\fI\%yue9944882\fP) Redis ext job cache occurred error (refs: \fI\%#38610\fP)
  203081. .IP \(bu 2
  203082. \fBPR\fP \fI\%#38610\fP: (\fI\%yue9944882\fP) Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log
  203083. @ \fI2017\-01\-06 21:47:21 UTC\fP
  203084. .INDENT 2.0
  203085. .IP \(bu 2
  203086. b13cd1370f Merge pull request \fI\%#38610\fP from yue9944882/2016.11
  203087. .IP \(bu 2
  203088. 54325cf293 Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log
  203089. .UNINDENT
  203090. .IP \(bu 2
  203091. \fBISSUE\fP \fI\%#36148\fP: (\fI\%alex\-zel\fP) Eauth error with openLDAP groups (refs: \fI\%#38406\fP)
  203092. .IP \(bu 2
  203093. \fBPR\fP \fI\%#38406\fP: (\fI\%alex\-zel\fP) Fix eauth error with openLDAP/389 directory server groups
  203094. @ \fI2017\-01\-06 21:40:30 UTC\fP
  203095. .INDENT 2.0
  203096. .IP \(bu 2
  203097. 179d385003 Merge pull request \fI\%#38406\fP from alex\-zel/fix\-eauth\-groups\-permissions
  203098. .IP \(bu 2
  203099. 6b9e9d8f89 Fix eauth error with openLDAP/389 directory server groups
  203100. .UNINDENT
  203101. .IP \(bu 2
  203102. \fBPR\fP \fI\%#38619\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203103. @ \fI2017\-01\-06 17:51:19 UTC\fP
  203104. .INDENT 2.0
  203105. .IP \(bu 2
  203106. 82e9b3d1a1 Merge pull request \fI\%#38619\fP from rallytime/merge\-2016.11
  203107. .IP \(bu 2
  203108. 0efb2d844e Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203109. .INDENT 2.0
  203110. .IP \(bu 2
  203111. da676cebd6 Merge pull request \fI\%#38601\fP from terminalmage/pillar\-get
  203112. .INDENT 2.0
  203113. .IP \(bu 2
  203114. 8613d7254d pillar.get: Raise exception when merge=True and default is not a dict
  203115. .UNINDENT
  203116. .IP \(bu 2
  203117. 224fc7712a Merge pull request \fI\%#38600\fP from terminalmage/issue38459\-2016.3
  203118. .INDENT 2.0
  203119. .IP \(bu 2
  203120. 8a45b13e76 Avoid errors when sudo_user is set
  203121. .UNINDENT
  203122. .IP \(bu 2
  203123. a376970f88 Merge pull request \fI\%#38589\fP from tobithiel/fix_rvm_rbenv_warning
  203124. .INDENT 2.0
  203125. .IP \(bu 2
  203126. 9ec470b4a5 State Gem: fix incorrect warning about missing rvm/rbenv
  203127. .UNINDENT
  203128. .IP \(bu 2
  203129. 02e6a78254 Merge pull request \fI\%#38567\fP from pass\-by\-value/pgjsonb_queue_changes_2016.3
  203130. .INDENT 2.0
  203131. .IP \(bu 2
  203132. 67879ebe65 Create queue if one doesn\(aqt exist
  203133. .UNINDENT
  203134. .IP \(bu 2
  203135. 0889cbdb31 Merge pull request \fI\%#38587\fP from rallytime/fix\-37498
  203136. .INDENT 2.0
  203137. .IP \(bu 2
  203138. 2a5880966f Change daemontools __virtualname__ from service to daemontools
  203139. .UNINDENT
  203140. .UNINDENT
  203141. .UNINDENT
  203142. .IP \(bu 2
  203143. \fBPR\fP \fI\%#38612\fP: (\fI\%sjorge\fP) network.ifacestartswith throws exception on Solaris\-like platforms
  203144. @ \fI2017\-01\-06 17:20:32 UTC\fP
  203145. .INDENT 2.0
  203146. .IP \(bu 2
  203147. f64e003a69 Merge pull request \fI\%#38612\fP from sjorge/2016.11\-solaris\-ifacestartswith
  203148. .IP \(bu 2
  203149. 26fae54f5b network.ifacestartswith throws exception on Solaris\-like platforms
  203150. .UNINDENT
  203151. .IP \(bu 2
  203152. \fBISSUE\fP \fI\%#37027\fP: (\fI\%sjorge\fP) Solaris FQDN/UQDN and documentation/consistancy (refs: \fI\%#38615\fP)
  203153. .IP \(bu 2
  203154. \fBPR\fP \fI\%#38615\fP: (\fI\%sjorge\fP) add note related to issue \fI\%#37027\fP
  203155. @ \fI2017\-01\-06 16:38:34 UTC\fP
  203156. .INDENT 2.0
  203157. .IP \(bu 2
  203158. 5820ceee16 Merge pull request \fI\%#38615\fP from sjorge/2016.11\-solarisdocs
  203159. .IP \(bu 2
  203160. fbdd32f46b add note related to issue \fI\%#37027\fP
  203161. .UNINDENT
  203162. .IP \(bu 2
  203163. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP, \fI\%#38599\fP)
  203164. @ \fI2017\-01\-05 23:16:22 UTC\fP
  203165. .INDENT 2.0
  203166. .IP \(bu 2
  203167. a27fdb46a7 Merge pull request \fI\%#38598\fP from terminalmage/issue38459
  203168. .IP \(bu 2
  203169. b37f7ffa38 Avoid errors when sudo_user is set
  203170. .UNINDENT
  203171. .IP \(bu 2
  203172. \fBPR\fP \fI\%#38599\fP: (\fI\%terminalmage\fP) archive.extracted: Prevent traceback when state.single cannot be run
  203173. @ \fI2017\-01\-05 23:16:11 UTC\fP
  203174. .INDENT 2.0
  203175. .IP \(bu 2
  203176. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP, \fI\%#38599\fP)
  203177. .IP \(bu 2
  203178. d6b7019df6 Merge pull request \fI\%#38599\fP from terminalmage/archive\-results\-handling
  203179. .IP \(bu 2
  203180. 9aceb8186d archive.extracted: Prevent traceback when state.single cannot be run
  203181. .UNINDENT
  203182. .IP \(bu 2
  203183. \fBISSUE\fP \fI\%#38517\fP: (\fI\%basdusee\fP) Slack.py engine 100% CPU load due to missing time.sleep(1) (refs: \fI\%#38520\fP)
  203184. .IP \(bu 2
  203185. \fBPR\fP \fI\%#38520\fP: (\fI\%basdusee\fP) Fix issue \fI\%#38517\fP, added time.sleep(1) at line 227 in slack.py
  203186. @ \fI2017\-01\-05 20:35:08 UTC\fP
  203187. .INDENT 2.0
  203188. .IP \(bu 2
  203189. d486b42ceb Merge pull request \fI\%#38520\fP from basdusee/fix\-issue\-38517
  203190. .IP \(bu 2
  203191. e3a883c915 Small fix on the fix regarding indentation
  203192. .IP \(bu 2
  203193. 8adeae6f81 Fix issue \fI\%#38517\fP, added time.sleep(1) at line 227 in slack.py engine.
  203194. .UNINDENT
  203195. .IP \(bu 2
  203196. \fBISSUE\fP \fI\%#38485\fP: (\fI\%wasabi222\fP) bgp.config not working (refs: \fI\%#38499\fP)
  203197. .IP \(bu 2
  203198. \fBPR\fP \fI\%#38577\fP: (\fI\%mirceaulinic\fP) Fix function headers as per \fI\%#38499\fP
  203199. @ \fI2017\-01\-05 18:41:33 UTC\fP
  203200. .INDENT 2.0
  203201. .IP \(bu 2
  203202. \fBPR\fP \fI\%#38499\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#38485\fP (refs: \fI\%#38577\fP)
  203203. .IP \(bu 2
  203204. 0706cde626 Merge pull request \fI\%#38577\fP from cloudflare/PREP\-2016.11.2
  203205. .IP \(bu 2
  203206. 62bee3c793 Fix function headers as per \fI\%#38499\fP
  203207. .UNINDENT
  203208. .IP \(bu 2
  203209. \fBPR\fP \fI\%#38578\fP: (\fI\%mirceaulinic\fP) [2016.11] Port 5123f11 from develop into 2016.11.2
  203210. @ \fI2017\-01\-05 18:11:12 UTC\fP
  203211. .INDENT 2.0
  203212. .IP \(bu 2
  203213. 55d1747792 Merge pull request \fI\%#38578\fP from cloudflare/PORT\-5123f1
  203214. .IP \(bu 2
  203215. dea7866d57 Update net.load_template doc: 2016.11.2
  203216. .UNINDENT
  203217. .IP \(bu 2
  203218. \fBISSUE\fP \fI\%#38462\fP: (\fI\%g\-shockfx\fP) Can\(gat add beacon memusage on Windows (refs: \fI\%#38584\fP)
  203219. .IP \(bu 2
  203220. \fBPR\fP \fI\%#38584\fP: (\fI\%rallytime\fP) Allow memusage beacon to load on Windows
  203221. @ \fI2017\-01\-05 18:08:30 UTC\fP
  203222. .INDENT 2.0
  203223. .IP \(bu 2
  203224. be69bafe6e Merge pull request \fI\%#38584\fP from rallytime/fix\-38462
  203225. .IP \(bu 2
  203226. 1fe945df5e Allow memusage beacon to load on Windows
  203227. .UNINDENT
  203228. .IP \(bu 2
  203229. \fBPR\fP \fI\%#38570\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38585\fP)
  203230. @ \fI2017\-01\-05 14:28:38 UTC\fP
  203231. .INDENT 2.0
  203232. .IP \(bu 2
  203233. 14b643fd48 Merge pull request \fI\%#38570\fP from rallytime/merge\-2016.11
  203234. .IP \(bu 2
  203235. 30f14d15df Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203236. .IP \(bu 2
  203237. 7b74436d13 Merge pull request \fI\%#38562\fP from rallytime/arch\-install\-docs
  203238. .INDENT 2.0
  203239. .IP \(bu 2
  203240. 8b1897ace9 Update arch installation docs with correct package name
  203241. .UNINDENT
  203242. .IP \(bu 2
  203243. 01860702cb Merge pull request \fI\%#38560\fP from Ch3LL/fix_api_log
  203244. .INDENT 2.0
  203245. .IP \(bu 2
  203246. 1b45e9670b fix api logfile
  203247. .UNINDENT
  203248. .IP \(bu 2
  203249. 0056620a53 Merge pull request \fI\%#38531\fP from rallytime/bp\-33601
  203250. .INDENT 2.0
  203251. .IP \(bu 2
  203252. c36cb39825 remove the unnecessary double trigger
  203253. .IP \(bu 2
  203254. 38414493bf fix spacing lint error
  203255. .IP \(bu 2
  203256. 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
  203257. .IP \(bu 2
  203258. c2f23bc45e Fix slack engine to run on python2.6
  203259. .UNINDENT
  203260. .IP \(bu 2
  203261. 50242c7f17 Merge pull request \fI\%#38541\fP from techhat/issue38187
  203262. .INDENT 2.0
  203263. .IP \(bu 2
  203264. eae3a435dd Strip user:pass from cached URLs
  203265. .UNINDENT
  203266. .IP \(bu 2
  203267. 325dc56e59 Merge pull request \fI\%#38554\fP from multani/fix/30454
  203268. .INDENT 2.0
  203269. .IP \(bu 2
  203270. 2e7f743371 yaml: support unicode serialization/deserialization
  203271. .IP \(bu 2
  203272. df76113c5c jinja: test the "yaml" filter with ordered dicts
  203273. .IP \(bu 2
  203274. f7712d417f Revert "Add yaml_safe filter"
  203275. .UNINDENT
  203276. .IP \(bu 2
  203277. 4ddbc2ecaa add note about pyVmomi locale workaround (\fI\%#38536\fP)
  203278. .IP \(bu 2
  203279. 1c951d152b fix gce image bug (\fI\%#38542\fP)
  203280. .UNINDENT
  203281. .IP \(bu 2
  203282. \fBPR\fP \fI\%#38509\fP: (\fI\%mostafahussein\fP) Stop request from being processed if bad ip
  203283. @ \fI2017\-01\-04 20:05:44 UTC\fP
  203284. .INDENT 2.0
  203285. .IP \(bu 2
  203286. 9a1550d336 Merge pull request \fI\%#38509\fP from mostafahussein/2016.11
  203287. .IP \(bu 2
  203288. 8847289c3e remove commented code
  203289. .IP \(bu 2
  203290. 420817a963 Stop request from being processed if bad ip
  203291. .UNINDENT
  203292. .IP \(bu 2
  203293. \fBISSUE\fP \fI\%#38518\fP: (\fI\%kkoppel\fP) slack_notify.call_hook returns tracebacks (refs: \fI\%#38522\fP)
  203294. .IP \(bu 2
  203295. \fBPR\fP \fI\%#38522\fP: (\fI\%kkoppel\fP) Fix usage of salt.utils.http.query in slack_notify.call_hook
  203296. @ \fI2017\-01\-04 20:04:57 UTC\fP
  203297. .INDENT 2.0
  203298. .IP \(bu 2
  203299. bc07d420e9 Merge pull request \fI\%#38522\fP from kkoppel/fix\-issue\-38518
  203300. .IP \(bu 2
  203301. ff1e7f0c71 Fix usage of salt.utils.http.query in slack_notify.call_hook
  203302. .UNINDENT
  203303. .IP \(bu 2
  203304. \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)
  203305. .IP \(bu 2
  203306. \fBPR\fP \fI\%#38527\fP: (\fI\%rbjorklin\fP) salt\-api no longer forces the default timeout (refs: \fI\%#38585\fP)
  203307. @ \fI2017\-01\-04 17:10:15 UTC\fP
  203308. .INDENT 2.0
  203309. .IP \(bu 2
  203310. 42fef270ee Merge pull request \fI\%#38527\fP from rbjorklin/api\-timeout\-fix
  203311. .IP \(bu 2
  203312. 0202f68820 salt\-api no longer forces the default timeout
  203313. .UNINDENT
  203314. .IP \(bu 2
  203315. \fBPR\fP \fI\%#38529\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203316. @ \fI2017\-01\-04 17:06:57 UTC\fP
  203317. .INDENT 2.0
  203318. .IP \(bu 2
  203319. 1895eb7533 Merge pull request \fI\%#38529\fP from rallytime/merge\-2016.11
  203320. .IP \(bu 2
  203321. 85f470207c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203322. .INDENT 2.0
  203323. .IP \(bu 2
  203324. ec60f9c721 Merge pull request \fI\%#38487\fP from gtmanfred/2016.3
  203325. .INDENT 2.0
  203326. .IP \(bu 2
  203327. 048b9f6b9d add test
  203328. .IP \(bu 2
  203329. c480c11528 allow spaces in cron env
  203330. .IP \(bu 2
  203331. c529ec8c34 allow crons to have multiple spaces
  203332. .UNINDENT
  203333. .IP \(bu 2
  203334. c5ba11b5e0 Merge pull request \fI\%#38491\fP from gtmanfred/timing
  203335. .INDENT 2.0
  203336. .IP \(bu 2
  203337. 79368c7528 Use UTC for timing in case timezone changes
  203338. .UNINDENT
  203339. .IP \(bu 2
  203340. 86f0aa0bb3 Merge pull request \fI\%#38503\fP from jinm/issue_38472_jinm
  203341. .INDENT 2.0
  203342. .IP \(bu 2
  203343. 0cd9df299f Hash type fallback for file management
  203344. .UNINDENT
  203345. .IP \(bu 2
  203346. ed2ba4bd1b Merge pull request \fI\%#38457\fP from bshelton229/git\-latest\-head\-bug
  203347. .INDENT 2.0
  203348. .IP \(bu 2
  203349. 558e7a771a Stops git.latest checking for local changes in a bare repo
  203350. .UNINDENT
  203351. .IP \(bu 2
  203352. 36e21b22cb Merge pull request \fI\%#38385\fP from dragon788/2016.3\-double\-dash
  203353. .INDENT 2.0
  203354. .IP \(bu 2
  203355. 86c4b56f47 Newline for lint compat
  203356. .IP \(bu 2
  203357. 9d9b686057 Address review comments, consistency of quotes
  203358. .IP \(bu 2
  203359. df9bd5e7f9 Use unambigous long names with double dashes
  203360. .UNINDENT
  203361. .IP \(bu 2
  203362. 59f2560d88 Merge pull request \fI\%#38474\fP from cachedout/key_loop
  203363. .INDENT 2.0
  203364. .IP \(bu 2
  203365. de504538e1 Allow an existing ioloop to be passed to salt\-key
  203366. .UNINDENT
  203367. .IP \(bu 2
  203368. 3d0c752acd Merge pull request \fI\%#38467\fP from gtmanfred/2016.3
  203369. .INDENT 2.0
  203370. .IP \(bu 2
  203371. 7b7c6b3878 file.line fail with mode=delete
  203372. .UNINDENT
  203373. .IP \(bu 2
  203374. 940025d5c4 Merge pull request \fI\%#38434\fP from slinn0/issue_38433_fixes
  203375. .INDENT 2.0
  203376. .IP \(bu 2
  203377. 22af87a3fc Fixes for \fI\%https://github.com/saltstack/salt/issues/38433\fP
  203378. .UNINDENT
  203379. .IP \(bu 2
  203380. e5eb51255b Update deprecation notices to the correct version (\fI\%#38421\fP)
  203381. .IP \(bu 2
  203382. 9ce53318df file.managed: Fix failure when filename contains unicode chars (\fI\%#38415\fP)
  203383. .IP \(bu 2
  203384. 2cdb59d055 Merge pull request \fI\%#38419\fP from Ch3LL/fix_doc_scsi
  203385. .INDENT 2.0
  203386. .IP \(bu 2
  203387. 234043b8bb fix scsci docs example
  203388. .UNINDENT
  203389. .UNINDENT
  203390. .UNINDENT
  203391. .IP \(bu 2
  203392. \fBPR\fP \fI\%#38539\fP: (\fI\%twangboy\fP) Fix DSC LCM Config int checks
  203393. @ \fI2017\-01\-04 16:56:27 UTC\fP
  203394. .INDENT 2.0
  203395. .IP \(bu 2
  203396. ec4f118ca2 Merge pull request \fI\%#38539\fP from twangboy/dsc_int_checks
  203397. .IP \(bu 2
  203398. 5657fd1956 Add repr flag for str
  203399. .IP \(bu 2
  203400. aea4219502 Fix DSC LCM Config int checks
  203401. .UNINDENT
  203402. .IP \(bu 2
  203403. \fBPR\fP \fI\%#38549\fP: (\fI\%meaksh\fP) Adding multiple SUBVOLUME support and some fixes to the Snapper module
  203404. @ \fI2017\-01\-04 15:32:30 UTC\fP
  203405. .INDENT 2.0
  203406. .IP \(bu 2
  203407. 53449c89a5 Merge pull request \fI\%#38549\fP from meaksh/2016.11\-snapper\-multiple\-subvolumen\-support
  203408. .IP \(bu 2
  203409. ef26e93bb7 Some fixes and pylint
  203410. .IP \(bu 2
  203411. 1e6ba45db4 Fixes pre/post snapshot order to get the inverse status
  203412. .IP \(bu 2
  203413. 68d5475c1f Fixing Snapper unit tests for SUBVOLUME support
  203414. .IP \(bu 2
  203415. e9919a913f Removing posible double \(aq/\(aq from the file paths
  203416. .IP \(bu 2
  203417. 8b4f87f226 Updating and fixing the documentation
  203418. .IP \(bu 2
  203419. edea45272a Raises "CommandExecutionError" if snapper command fails
  203420. .IP \(bu 2
  203421. 3841e1143b Only include diff in the state response if \fIinclude_diff\fP is True
  203422. .IP \(bu 2
  203423. 7803e7716c Adds multiple SUBVOLUME support to the Snapper module
  203424. .IP \(bu 2
  203425. \fBPR\fP \fI\%#38545\fP: (\fI\%rallytime\fP) Move boto_vpc.describe_route_table deprecation version to Oxygen
  203426. .UNINDENT
  203427. .IP \(bu 2
  203428. \fBPR\fP \fI\%#38471\fP: (\fI\%twangboy\fP) Fix Problem with win_service module
  203429. @ \fI2017\-01\-01 20:30:21 UTC\fP
  203430. .INDENT 2.0
  203431. .IP \(bu 2
  203432. 5e80104a70 Merge pull request \fI\%#38471\fP from twangboy/fix_win_service
  203433. .IP \(bu 2
  203434. 810471b9cd Fix problem with some services getting access denied
  203435. .UNINDENT
  203436. .IP \(bu 2
  203437. \fBISSUE\fP \fI\%#38485\fP: (\fI\%wasabi222\fP) bgp.config not working (refs: \fI\%#38499\fP)
  203438. .IP \(bu 2
  203439. \fBPR\fP \fI\%#38499\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#38485\fP (refs: \fI\%#38577\fP)
  203440. @ \fI2017\-01\-01 17:42:15 UTC\fP
  203441. .INDENT 2.0
  203442. .IP \(bu 2
  203443. 0a09049a2d Merge pull request \fI\%#38499\fP from cloudflare/FIX\-38485
  203444. .IP \(bu 2
  203445. 18018139f3 Fix \fI\%#38485\fP
  203446. .UNINDENT
  203447. .IP \(bu 2
  203448. \fBPR\fP \fI\%#38501\fP: (\fI\%mvdwalle\fP) Do not assume every object is a server
  203449. @ \fI2017\-01\-01 17:37:57 UTC\fP
  203450. .INDENT 2.0
  203451. .IP \(bu 2
  203452. 13f0b809df Merge pull request \fI\%#38501\fP from mvdwalle/fix\-gogrid\-list\-password
  203453. .IP \(bu 2
  203454. bd7dee9a10 Do not assume every object is a server
  203455. .UNINDENT
  203456. .IP \(bu 2
  203457. \fBPR\fP \fI\%#38461\fP: (\fI\%anlutro\fP) Improvements/fixes to kapacitor task change detection
  203458. @ \fI2016\-12\-29 17:08:47 UTC\fP
  203459. .INDENT 2.0
  203460. .IP \(bu 2
  203461. aa0c843553 Merge pull request \fI\%#38461\fP from alprs/fix\-kapacitor_changes
  203462. .IP \(bu 2
  203463. 52721e97d6 clean up and fix tests
  203464. .IP \(bu 2
  203465. 8648775c2a if task is not defined, it\(aqs not up to date
  203466. .IP \(bu 2
  203467. c3ab954c6e improvements/fixes to kapacitor task change detection
  203468. .UNINDENT
  203469. .IP \(bu 2
  203470. \fBPR\fP \fI\%#38473\fP: (\fI\%twangboy\fP) Change OSX/OS X to macOS where possible
  203471. @ \fI2016\-12\-29 16:35:11 UTC\fP
  203472. .INDENT 2.0
  203473. .IP \(bu 2
  203474. 2c51eb9d16 Merge pull request \fI\%#38473\fP from twangboy/osx_to_macos
  203475. .IP \(bu 2
  203476. e96bfe8fa2 Change OSX/OS X to macOS where possible
  203477. .UNINDENT
  203478. .IP \(bu 2
  203479. \fBPR\fP \fI\%#38412\fP: (\fI\%bbinet\fP) Update PillarStack stack.py to latest upstream version
  203480. @ \fI2016\-12\-28 19:28:40 UTC\fP
  203481. .INDENT 2.0
  203482. .IP \(bu 2
  203483. 2497fb547e Merge pull request \fI\%#38412\fP from bbinet/pillarstack\-updates
  203484. .IP \(bu 2
  203485. b66b4bd060 Fix lint violations in stack.py
  203486. .IP \(bu 2
  203487. 6a30fe6aeb Update PillarStack stack.py to latest upstream version
  203488. .UNINDENT
  203489. .IP \(bu 2
  203490. \fBPR\fP \fI\%#38456\fP: (\fI\%twangboy\fP) Gate Windows Specific Salt Utils
  203491. @ \fI2016\-12\-28 18:44:33 UTC\fP
  203492. .INDENT 2.0
  203493. .IP \(bu 2
  203494. 5395d3210a Merge pull request \fI\%#38456\fP from twangboy/gate_win_utils
  203495. .IP \(bu 2
  203496. d34d110a84 Fix lint, fix boto module
  203497. .IP \(bu 2
  203498. c20111142f Gate Windows Utils
  203499. .UNINDENT
  203500. .IP \(bu 2
  203501. \fBPR\fP \fI\%#38428\fP: (\fI\%gqgunhed\fP) fixed typo: lq command\-line syntax
  203502. @ \fI2016\-12\-27 15:42:02 UTC\fP
  203503. .INDENT 2.0
  203504. .IP \(bu 2
  203505. 7c7799162b Merge pull request \fI\%#38428\fP from gqgunhed/fix_lq_typo
  203506. .IP \(bu 2
  203507. d79d682e8b fixed typo: lq command\-line syntax
  203508. .UNINDENT
  203509. .IP \(bu 2
  203510. \fBISSUE\fP \fI\%#38443\fP: (\fI\%lorengordon\fP) 2016.11 breaks file.managed on Windows (refs: \fI\%#38444\fP)
  203511. .IP \(bu 2
  203512. \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)
  203513. .IP \(bu 2
  203514. \fBPR\fP \fI\%#38444\fP: (\fI\%lorengordon\fP) Adds new import required for \fIextract_hash\fP
  203515. @ \fI2016\-12\-27 15:37:20 UTC\fP
  203516. .INDENT 2.0
  203517. .IP \(bu 2
  203518. \fBPR\fP \fI\%#37368\fP: (\fI\%terminalmage\fP) Overhaul archive.extracted state (refs: \fI\%#38444\fP)
  203519. .IP \(bu 2
  203520. f5984d0f81 Merge pull request \fI\%#38444\fP from lorengordon/issue\-38443
  203521. .IP \(bu 2
  203522. b2925ad7b7 Adds new import required for \fIextract_hash\fP
  203523. .UNINDENT
  203524. .IP \(bu 2
  203525. \fBISSUE\fP \fI\%#38071\fP: (\fI\%luochun\-95\fP) remote execute is very slow (refs: \fI\%#38167\fP)
  203526. .IP \(bu 2
  203527. \fBPR\fP \fI\%#38167\fP: (\fI\%cachedout\fP) Kill pkg_resources for CLI tools [DO NOT MERGE]
  203528. @ \fI2016\-12\-22 22:11:22 UTC\fP
  203529. .INDENT 2.0
  203530. .IP \(bu 2
  203531. 4c4f07ca4c Merge pull request \fI\%#38167\fP from cachedout/no_pkg_resources
  203532. .IP \(bu 2
  203533. ec6901720a Remove debugging
  203534. .IP \(bu 2
  203535. f28e33b9b6 Remove from all but salt cli
  203536. .IP \(bu 2
  203537. bb3af72317 Remove from salt\-call
  203538. .IP \(bu 2
  203539. c676846066 Kill pkg_resources for CLI tools
  203540. .UNINDENT
  203541. .IP \(bu 2
  203542. \fBPR\fP \fI\%#38417\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203543. @ \fI2016\-12\-22 19:00:44 UTC\fP
  203544. .INDENT 2.0
  203545. .IP \(bu 2
  203546. 2fc8c154af Merge pull request \fI\%#38417\fP from rallytime/merge\-2016.11
  203547. .IP \(bu 2
  203548. efb8a8ddf5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203549. .IP \(bu 2
  203550. 27253522c8 Improve pillar documentation (\fI\%#38407\fP)
  203551. .IP \(bu 2
  203552. 423b1fddff Merge pull request \fI\%#38398\fP from terminalmage/issue38372
  203553. .INDENT 2.0
  203554. .IP \(bu 2
  203555. c80dbaa914 Fix call to file.get_managed in cron.file state
  203556. .UNINDENT
  203557. .IP \(bu 2
  203558. 5a33d1e697 Fix http.query when result has no text (\fI\%#38382\fP)
  203559. .IP \(bu 2
  203560. b74b5c7d38 Merge pull request \fI\%#38390\fP from meaksh/2016.3\-fix\-try\-restart\-for\-autorestarting\-on\-SUSE\-systems
  203561. .INDENT 2.0
  203562. .IP \(bu 2
  203563. de6ec05ec0 add try\-restart to fix autorestarting on SUSE systems
  203564. .UNINDENT
  203565. .IP \(bu 2
  203566. 2c3a39760a Merge pull request \fI\%#38221\fP from UtahDave/fix_default_returner
  203567. .INDENT 2.0
  203568. .IP \(bu 2
  203569. 385640765b remove a blank line to satisfy linter
  203570. .IP \(bu 2
  203571. 9c248aa14c validate return opt, remove default.
  203572. .IP \(bu 2
  203573. 8bb37f9fe7 specify allowed types and default for "returner"
  203574. .IP \(bu 2
  203575. 11863a4bfe add examples of default minion returners
  203576. .IP \(bu 2
  203577. e7c6012655 add support for default returners using \fIreturn\fP
  203578. .UNINDENT
  203579. .UNINDENT
  203580. .IP \(bu 2
  203581. \fBPR\fP \fI\%#38342\fP: (\fI\%scthi\fP) Bugfix ext pillar nodegroups
  203582. @ \fI2016\-12\-22 16:47:42 UTC\fP
  203583. .INDENT 2.0
  203584. .IP \(bu 2
  203585. bbc149c67f Merge pull request \fI\%#38342\fP from scthi/bugfix\-ext\-pillar\-nodegroups
  203586. .IP \(bu 2
  203587. dba315c4b6 ext\-pillar nodegroups works for all minions now.
  203588. .UNINDENT
  203589. .IP \(bu 2
  203590. \fBPR\fP \fI\%#38403\fP: (\fI\%terminalmage\fP) git_pillar: Document the transition from env to saltenv in the jinja context
  203591. @ \fI2016\-12\-22 16:34:48 UTC\fP
  203592. .INDENT 2.0
  203593. .IP \(bu 2
  203594. 453476d982 Merge pull request \fI\%#38403\fP from terminalmage/document\-saltenv
  203595. .IP \(bu 2
  203596. 0a72e0f0be git_pillar: Document the transition from env to saltenv in the jinja context
  203597. .UNINDENT
  203598. .IP \(bu 2
  203599. \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)
  203600. .IP \(bu 2
  203601. \fBPR\fP \fI\%#38354\fP: (\fI\%gmacon\fP) Use \-\-all when calling pip.py
  203602. @ \fI2016\-12\-20 20:40:21 UTC\fP
  203603. .INDENT 2.0
  203604. .IP \(bu 2
  203605. 12436efb54 Merge pull request \fI\%#38354\fP from gmacon/pip\-freeze\-all
  203606. .IP \(bu 2
  203607. dca24b270e Use \-\-all when calling pip.py
  203608. .UNINDENT
  203609. .IP \(bu 2
  203610. \fBPR\fP \fI\%#38348\fP: (\fI\%rallytime\fP) Update autodoc topics for new modules added in 2016.11
  203611. @ \fI2016\-12\-20 20:36:20 UTC\fP
  203612. .INDENT 2.0
  203613. .IP \(bu 2
  203614. 68430b1fa6 Merge pull request \fI\%#38348\fP from rallytime/mod\-docs\-2016.11
  203615. .IP \(bu 2
  203616. b31c2412ca Add __iter__ and next options to doc/conf.py
  203617. .IP \(bu 2
  203618. b8c16094c4 Revert "Move import/error messaging logic for snapper module into __virtual__()"
  203619. .IP \(bu 2
  203620. 640db5b5ac Move import/error messaging logic for snapper module into __virtual__()
  203621. .IP \(bu 2
  203622. 366271f459 Add snapper to state index doc module list
  203623. .IP \(bu 2
  203624. 135d254c80 Remove netapi autodoc files: they should not be added as their doc structure is different
  203625. .IP \(bu 2
  203626. 0006139aca Update autodoc topics for new modules added in 2016.11
  203627. .UNINDENT
  203628. .IP \(bu 2
  203629. \fBPR\fP \fI\%#38377\fP: (\fI\%DmitryKuzmenko\fP) Implementation and docs for Consul key\-value store plugin for minion data cache.
  203630. @ \fI2016\-12\-20 20:36:02 UTC\fP
  203631. .INDENT 2.0
  203632. .IP \(bu 2
  203633. 6ee7b2bae7 Merge pull request \fI\%#38377\fP from DSRCorporation/features/consul_cache
  203634. .IP \(bu 2
  203635. 6fb4430ae3 Configuration options and documentation for Consul data cache plugin.
  203636. .IP \(bu 2
  203637. dad748f57a Data cache plugin configuration documentation.
  203638. .IP \(bu 2
  203639. c7209cd90c Consul data cache plugin.
  203640. .UNINDENT
  203641. .IP \(bu 2
  203642. \fBPR\fP \fI\%#38373\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38212\fP to 2016.11
  203643. @ \fI2016\-12\-20 20:35:09 UTC\fP
  203644. .INDENT 2.0
  203645. .IP \(bu 2
  203646. \fBPR\fP \fI\%#38212\fP: (\fI\%disaster123\fP) ZMQ: add an option for zmq.BACKLOG to salt master (zmq_backlog) (refs: \fI\%#38373\fP)
  203647. .IP \(bu 2
  203648. f6d1b559bc Merge pull request \fI\%#38373\fP from rallytime/bp\-38212
  203649. .IP \(bu 2
  203650. 52fc6daac0 ZMQ: add an option for zmq.BACKLOG to salt master (zmq_backlog)
  203651. .UNINDENT
  203652. .IP \(bu 2
  203653. \fBPR\fP \fI\%#38374\fP: (\fI\%mirceaulinic\fP) NAPALM proxy module: Fix optional_args key issue
  203654. @ \fI2016\-12\-20 20:34:59 UTC\fP
  203655. .INDENT 2.0
  203656. .IP \(bu 2
  203657. 69c3f19fc1 Merge pull request \fI\%#38374\fP from cloudflare/FIX\-NAPALM\-PROXY
  203658. .IP \(bu 2
  203659. 44169315d8 Fix optional_args key issue
  203660. .UNINDENT
  203661. .IP \(bu 2
  203662. \fBISSUE\fP \fI\%#38048\fP: (\fI\%ezh\fP) [2016.11.0] Salt\-cloud throws TypeError exception (refs: \fI\%#38073\fP)
  203663. .IP \(bu 2
  203664. \fBPR\fP \fI\%#38073\fP: (\fI\%ezh\fP) 2016.11
  203665. @ \fI2016\-12\-20 14:51:11 UTC\fP
  203666. .INDENT 2.0
  203667. .IP \(bu 2
  203668. 530f495955 Merge pull request \fI\%#38073\fP from doublescoring/2016.11
  203669. .IP \(bu 2
  203670. 42d3d26f28 [38073] Fix test assertion
  203671. .IP \(bu 2
  203672. 9b37ead913 Fix broken os.write without string.encode
  203673. .UNINDENT
  203674. .IP \(bu 2
  203675. \fBPR\fP \fI\%#38344\fP: (\fI\%bbinet\fP) Fix influxdb_database.present state
  203676. @ \fI2016\-12\-20 13:57:45 UTC\fP
  203677. .INDENT 2.0
  203678. .IP \(bu 2
  203679. 67908d5aba Merge pull request \fI\%#38344\fP from bbinet/fix\-influx\-createdb
  203680. .IP \(bu 2
  203681. c6b075d6f4 Fix influxdb_database.present state
  203682. .UNINDENT
  203683. .IP \(bu 2
  203684. \fBPR\fP \fI\%#38358\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203685. @ \fI2016\-12\-20 00:11:48 UTC\fP
  203686. .INDENT 2.0
  203687. .IP \(bu 2
  203688. 04d6898958 Merge pull request \fI\%#38358\fP from rallytime/merge\-2016.11
  203689. .IP \(bu 2
  203690. c6e191ad0d Remove doc markup references from 2016.11 branch
  203691. .IP \(bu 2
  203692. 513058945c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203693. .IP \(bu 2
  203694. 09d9cff992 Merge pull request \fI\%#38288\fP from terminalmage/archive\-extracted\-local\-source\-2016.3
  203695. .INDENT 2.0
  203696. .IP \(bu 2
  203697. 845e3d0e75 Update tests to reflect change in cache behavior
  203698. .IP \(bu 2
  203699. 5a08d7c70a archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  203700. .UNINDENT
  203701. .IP \(bu 2
  203702. bf37667f8a Merge pull request \fI\%#38312\fP from cro/proxy_config_in_cfg
  203703. .INDENT 2.0
  203704. .IP \(bu 2
  203705. 2006c4000e Typo
  203706. .IP \(bu 2
  203707. 689d95b10f Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy.
  203708. .UNINDENT
  203709. .IP \(bu 2
  203710. c83db5a785 Merge pull request \fI\%#38320\fP from rallytime/cleanup\-doc\-refs
  203711. .INDENT 2.0
  203712. .IP \(bu 2
  203713. 62978cb7a0 Don\(aqt check the doc/conf.py file for doc markup refs
  203714. .IP \(bu 2
  203715. 770e732d76 Add a unit test to search for new doc markup refs
  203716. .IP \(bu 2
  203717. 5c42a361a0 Remove ":doc:" references from all doc/topics/installation/* files
  203718. .IP \(bu 2
  203719. 23bce1c929 Remove ":doc:" references from all doc/topics/releases/* files
  203720. .IP \(bu 2
  203721. 4aafa41d22 Remove ":doc:" references from a bunch of doc/* files
  203722. .IP \(bu 2
  203723. 02bfe7912c Remove more ":doc:" references from doc/* files
  203724. .IP \(bu 2
  203725. 6e32267d0c Remove ":doc:" references in salt/* files
  203726. .UNINDENT
  203727. .IP \(bu 2
  203728. \fBPR\fP \fI\%#38285\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt try to cache local sources
  203729. .UNINDENT
  203730. .IP \(bu 2
  203731. \fBPR\fP \fI\%#37947\fP: (\fI\%vutny\fP) Fix \fIsalt\-minion\fP initscript for RHEL5 (SysV) to pick up proper python version
  203732. @ \fI2016\-12\-19 21:03:50 UTC\fP
  203733. .INDENT 2.0
  203734. .IP \(bu 2
  203735. 13414949e3 Merge pull request \fI\%#37947\fP from vutny/fix\-rhel5\-minion\-init
  203736. .IP \(bu 2
  203737. c94e798b8a SysV init script for rpm: get and show unique PIDs only
  203738. .IP \(bu 2
  203739. 8ff68c4128 Fix initscript for RHEL5 (SysV) to pick up proper python version
  203740. .UNINDENT
  203741. .IP \(bu 2
  203742. \fBPR\fP \fI\%#38106\fP: (\fI\%techhat\fP) "test" is not necessarily in opts, for thorium
  203743. @ \fI2016\-12\-19 14:40:32 UTC\fP
  203744. .INDENT 2.0
  203745. .IP \(bu 2
  203746. 4d072ca689 Merge pull request \fI\%#38106\fP from techhat/stateget
  203747. .IP \(bu 2
  203748. 5edc16f606 "test" is not necessarily in opts, for thorium
  203749. .UNINDENT
  203750. .IP \(bu 2
  203751. \fBPR\fP \fI\%#38333\fP: (\fI\%amendlik\fP) Suppress errors when checking if an alternative exists
  203752. @ \fI2016\-12\-19 13:40:49 UTC\fP
  203753. .INDENT 2.0
  203754. .IP \(bu 2
  203755. a01fade604 Merge pull request \fI\%#38333\fP from amendlik/states\-alternatives
  203756. .IP \(bu 2
  203757. 8bfcd5bcd5 Adjust alternatives test for updated error message
  203758. .IP \(bu 2
  203759. 09dee3c611 Suppress errors when checking if an alternative exists
  203760. .UNINDENT
  203761. .IP \(bu 2
  203762. \fBPR\fP \fI\%#38340\fP: (\fI\%ewapptus\fP) Backport PR \fI\%#38251\fP: Fixed nested orchestrate not respecting failures
  203763. @ \fI2016\-12\-19 13:31:16 UTC\fP
  203764. .INDENT 2.0
  203765. .IP \(bu 2
  203766. \fBPR\fP \fI\%#38251\fP: (\fI\%ewapptus\fP) Fixed nested orchestrate not respecting failures (refs: \fI\%#38340\fP)
  203767. .IP \(bu 2
  203768. 15d3b476e9 Merge pull request \fI\%#38340\fP from ewapptus/bp\-38251
  203769. .IP \(bu 2
  203770. 266e0a465c Fixed nested orchestrate not respecting failures
  203771. .UNINDENT
  203772. .IP \(bu 2
  203773. \fBPR\fP \fI\%#38229\fP: (\fI\%mcalmer\fP) provide kwargs of sls_build to dockerng.create
  203774. @ \fI2016\-12\-18 13:13:10 UTC\fP
  203775. .INDENT 2.0
  203776. .IP \(bu 2
  203777. ecd441d090 Merge pull request \fI\%#38229\fP from mcalmer/dockerng\-sls_build\-kwargs
  203778. .IP \(bu 2
  203779. e7292fabb7 make it explicit that we want to delete these keys
  203780. .IP \(bu 2
  203781. 4c710139b5 use default values for pop() to prevent KeyError raised
  203782. .IP \(bu 2
  203783. 455c18325c provide kwargs to dockerng.create to provide all features to sls_build as well
  203784. .UNINDENT
  203785. .IP \(bu 2
  203786. \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)
  203787. .IP \(bu 2
  203788. \fBPR\fP \fI\%#38309\fP: (\fI\%ewapptus\fP) Backport PR \fI\%#37333\fP: Fixed state.salt.runner() reporting success on exceptions
  203789. @ \fI2016\-12\-18 12:39:53 UTC\fP
  203790. .INDENT 2.0
  203791. .IP \(bu 2
  203792. \fBPR\fP \fI\%#37333\fP: (\fI\%benediktwerner\fP) Fixed state.salt.runner() reporting success on exceptions (refs: \fI\%#38309\fP)
  203793. .IP \(bu 2
  203794. d2ce9c3e71 Merge pull request \fI\%#38309\fP from ewapptus/bp\-37333
  203795. .IP \(bu 2
  203796. a2b1259671 Fixed display of errors
  203797. .IP \(bu 2
  203798. 14a39f914e Fixed state.salt.runner return value on exceptions
  203799. .UNINDENT
  203800. .IP \(bu 2
  203801. \fBPR\fP \fI\%#38323\fP: (\fI\%rallytime\fP) Update the Cloud Provider Specifics links in cloud docs
  203802. @ \fI2016\-12\-18 12:30:49 UTC\fP
  203803. .INDENT 2.0
  203804. .IP \(bu 2
  203805. ebb9f6cbbc Merge pull request \fI\%#38323\fP from rallytime/update\-cloud\-provider\-links
  203806. .IP \(bu 2
  203807. 022caf23e9 Update the Cloud Provider Specifics links in cloud docs
  203808. .UNINDENT
  203809. .IP \(bu 2
  203810. \fBPR\fP \fI\%#38324\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203811. @ \fI2016\-12\-18 12:30:26 UTC\fP
  203812. .INDENT 2.0
  203813. .IP \(bu 2
  203814. 5bd7471e30 Merge pull request \fI\%#38324\fP from rallytime/merge\-2016.11
  203815. .IP \(bu 2
  203816. 5940db5b3f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203817. .INDENT 2.0
  203818. .IP \(bu 2
  203819. 6367ca7d2a Add nick to args for create_multi (\fI\%#38281\fP)
  203820. .IP \(bu 2
  203821. 235682b1e6 Merge pull request \fI\%#38313\fP from dragon788/2016.3\-chocolatey\-fix
  203822. .INDENT 2.0
  203823. .IP \(bu 2
  203824. 1f5fc17551 Use machine readable output for list
  203825. .IP \(bu 2
  203826. cdbd2fbe3c Added limit\-output to eliminate false packages
  203827. .UNINDENT
  203828. .IP \(bu 2
  203829. 9e78ddc80e Merge pull request \fI\%#38279\fP from rallytime/fix\-38174
  203830. .INDENT 2.0
  203831. .IP \(bu 2
  203832. 4a62d01577 Add docs for syndic_wait setting
  203833. .UNINDENT
  203834. .UNINDENT
  203835. .UNINDENT
  203836. .IP \(bu 2
  203837. \fBISSUE\fP \fI\%#38246\fP: (\fI\%martintamare\fP) Windows Minion unable to start via nssm (refs: \fI\%#38247\fP)
  203838. .IP \(bu 2
  203839. \fBPR\fP \fI\%#38325\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38247\fP to 2016.11
  203840. @ \fI2016\-12\-18 12:28:41 UTC\fP
  203841. .INDENT 2.0
  203842. .IP \(bu 2
  203843. \fBPR\fP \fI\%#38247\fP: (\fI\%martintamare\fP) fix(win_function): handle other language (refs: \fI\%#38325\fP)
  203844. .IP \(bu 2
  203845. 83523d2f73 Merge pull request \fI\%#38325\fP from rallytime/bp\-38247
  203846. .IP \(bu 2
  203847. 4b6c5438e3 fix(win_functions): syntax
  203848. .IP \(bu 2
  203849. e602f17e3d fix(win_function): handle other language
  203850. .UNINDENT
  203851. .IP \(bu 2
  203852. \fBISSUE\fP \fI\%#30195\fP: (\fI\%Vaelatern\fP) Add Void Linux support in Salt (refs: \fI\%#31262\fP, \fI\%#38326\fP)
  203853. .IP \(bu 2
  203854. \fBPR\fP \fI\%#38326\fP: (\fI\%yopito\fP) fix runit init support (grain init) in 2016.11
  203855. @ \fI2016\-12\-18 12:07:25 UTC\fP
  203856. .INDENT 2.0
  203857. .IP \(bu 2
  203858. \fBPR\fP \fI\%#31262\fP: (\fI\%Vaelatern\fP) Add support for Void Linux (refs: \fI\%#38326\fP)
  203859. .IP \(bu 2
  203860. 54a2bb95de Merge pull request \fI\%#38326\fP from yopito/fix\-runit\-init\-support
  203861. .IP \(bu 2
  203862. 25b91bb686 fix detection of runit as init system (grain init)
  203863. .IP \(bu 2
  203864. \fBPR\fP \fI\%#38322\fP: (\fI\%rallytime\fP) Add azurearm module to doc index
  203865. .UNINDENT
  203866. .IP \(bu 2
  203867. \fBPR\fP \fI\%#38305\fP: (\fI\%dereckson\fP) Avoid normalization call for normalized mode value
  203868. @ \fI2016\-12\-16 17:31:25 UTC\fP
  203869. .INDENT 2.0
  203870. .IP \(bu 2
  203871. 1e4f299e7d Merge pull request \fI\%#38305\fP from dereckson/fix\-mode\-extraneous\-normalization
  203872. .IP \(bu 2
  203873. 573ac3565e Avoid normalization call for normalized mode value
  203874. .IP \(bu 2
  203875. \fBPR\fP \fI\%#38291\fP: (\fI\%terminalmage\fP) Improve documentation for archive.extracted in 2016.11
  203876. .UNINDENT
  203877. .IP \(bu 2
  203878. \fBISSUE\fP \fI\%#37966\fP: (\fI\%Cybolic\fP) salt\-cloud EC2 instance can\(aqt be initiated (refs: \fI\%#37967\fP)
  203879. .IP \(bu 2
  203880. \fBPR\fP \fI\%#38298\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37967\fP to 2016.11
  203881. @ \fI2016\-12\-16 15:20:04 UTC\fP
  203882. .INDENT 2.0
  203883. .IP \(bu 2
  203884. \fBPR\fP \fI\%#37967\fP: (\fI\%Cybolic\fP) Fixed faulty logic preventing instance initialisation. (refs: \fI\%#38298\fP)
  203885. .IP \(bu 2
  203886. 3cf0135d50 Merge pull request \fI\%#38298\fP from rallytime/bp\-37967
  203887. .IP \(bu 2
  203888. 42d367f39d Fixed faulty logic preventing instance initialisation.
  203889. .UNINDENT
  203890. .IP \(bu 2
  203891. \fBISSUE\fP \fI\%#38070\fP: (\fI\%ezh\fP) [2016.11.0] Salt\-cloud throws UnicodeDecodeError exception (refs: \fI\%#38076\fP)
  203892. .IP \(bu 2
  203893. \fBPR\fP \fI\%#38076\fP: (\fI\%ezh\fP) Fix decoding of broken string from remote sources
  203894. @ \fI2016\-12\-15 19:05:25 UTC\fP
  203895. .INDENT 2.0
  203896. .IP \(bu 2
  203897. f4f0036f30 Merge pull request \fI\%#38076\fP from doublescoring/fix\-2016.11\-38070
  203898. .IP \(bu 2
  203899. 70c8db5489 Fix decoding of broken string from remote sources
  203900. .UNINDENT
  203901. .IP \(bu 2
  203902. \fBPR\fP \fI\%#38278\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38207\fP to 2016.11
  203903. @ \fI2016\-12\-15 18:09:27 UTC\fP
  203904. .INDENT 2.0
  203905. .IP \(bu 2
  203906. \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)
  203907. .IP \(bu 2
  203908. \fBPR\fP \fI\%#38188\fP: (\fI\%tsaridas\fP) fix for push_dir in different OS (refs: \fI\%#38203\fP, \fI\%#38207\fP)
  203909. .IP \(bu 2
  203910. 2ccab22c19 Merge pull request \fI\%#38278\fP from rallytime/bp\-38207
  203911. .IP \(bu 2
  203912. 5e8bf571d8 python3 compatibility and fix pylint
  203913. .IP \(bu 2
  203914. e0df047000 remove empty strings from list but not ones with one empty space char
  203915. .UNINDENT
  203916. .IP \(bu 2
  203917. \fBPR\fP \fI\%#38277\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203918. @ \fI2016\-12\-15 18:09:10 UTC\fP
  203919. .INDENT 2.0
  203920. .IP \(bu 2
  203921. a748e842a8 Merge pull request \fI\%#38277\fP from rallytime/merge\-2016.11
  203922. .IP \(bu 2
  203923. 49a3355915 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203924. .IP \(bu 2
  203925. fc9e1dff35 Merge pull request \fI\%#38248\fP from meaksh/salt\-api\-successfully\-close\-child\-processes
  203926. .INDENT 2.0
  203927. .IP \(bu 2
  203928. ee6eae9855 Successfully exit of salt\-api child processes when SIGTERM.
  203929. .UNINDENT
  203930. .IP \(bu 2
  203931. 3c718ed35e Merge pull request \fI\%#38254\fP from terminalmage/check\-pillarenv
  203932. .INDENT 2.0
  203933. .IP \(bu 2
  203934. fa9ad311c6 Also check if pillarenv is in opts
  203935. .UNINDENT
  203936. .IP \(bu 2
  203937. 6b9060c38f [2016.3] Bump latest release version to 2016.11.1 (\fI\%#38256\fP)
  203938. .UNINDENT
  203939. .IP \(bu 2
  203940. \fBISSUE\fP \fI\%#38231\fP: (\fI\%tjuup\fP) Typo: salt\-key deleteed (refs: \fI\%#38232\fP)
  203941. .IP \(bu 2
  203942. \fBPR\fP \fI\%#38232\fP: (\fI\%rallytime\fP) Strip final \(aqe\(aq in key cmd to correct "deleteed" misspelling
  203943. @ \fI2016\-12\-15 10:38:49 UTC\fP
  203944. .INDENT 2.0
  203945. .IP \(bu 2
  203946. 0af343e71f Merge pull request \fI\%#38232\fP from rallytime/fix\-38231
  203947. .IP \(bu 2
  203948. 26e1ee3650 Strip final \(aqe\(aq in key cmd to correct "deleteed" misspelling
  203949. .UNINDENT
  203950. .IP \(bu 2
  203951. \fBISSUE\fP \fI\%#38200\fP: (\fI\%sebw\fP) selinux.mode doesn\(aqt return any output and doesn\(aqt persist (refs: \fI\%#38236\fP)
  203952. .IP \(bu 2
  203953. \fBPR\fP \fI\%#38236\fP: (\fI\%gtmanfred\fP) SELINUXTYPE should not be changed
  203954. @ \fI2016\-12\-15 10:37:06 UTC\fP
  203955. .INDENT 2.0
  203956. .IP \(bu 2
  203957. 6c1ca9dae7 Merge pull request \fI\%#38236\fP from gtmanfred/2016.11
  203958. .IP \(bu 2
  203959. d1b070c894 clean up selinux unit test
  203960. .IP \(bu 2
  203961. 96eabd4939 SELINUXTYPE should not be changed
  203962. .UNINDENT
  203963. .IP \(bu 2
  203964. \fBISSUE\fP \fI\%#38228\fP: (\fI\%vquiering\fP) archive.extracted with options and user/group (refs: \fI\%#38262\fP)
  203965. .IP \(bu 2
  203966. \fBPR\fP \fI\%#38262\fP: (\fI\%terminalmage\fP) Fix archive.extracted when \-\-strip or \-\-strip\-components is in the options
  203967. @ \fI2016\-12\-15 08:57:18 UTC\fP
  203968. .INDENT 2.0
  203969. .IP \(bu 2
  203970. fd32dc3e9b Merge pull request \fI\%#38262\fP from terminalmage/issue38228
  203971. .IP \(bu 2
  203972. 6442f8a7b5 Add tests for \-\-strip/\-\-strip\-components
  203973. .IP \(bu 2
  203974. c502e68f12 Detect \-\-strip/\-\-strip\-components in tar options and handle properly
  203975. .IP \(bu 2
  203976. e95770594d Add strip_components arg to archive.list
  203977. .UNINDENT
  203978. .IP \(bu 2
  203979. \fBPR\fP \fI\%#38264\fP: (\fI\%mirceaulinic\fP) Port \fI\%#37862\fP into 2016.11
  203980. @ \fI2016\-12\-15 08:51:20 UTC\fP
  203981. .INDENT 2.0
  203982. .IP \(bu 2
  203983. \fBPR\fP \fI\%#37862\fP: (\fI\%mirceaulinic\fP) [2016.11.1] Docstring fixes and new features for napalm_network (refs: \fI\%#38264\fP)
  203984. .IP \(bu 2
  203985. b232bd8ce8 Merge pull request \fI\%#38264\fP from cloudflare/PORT\-37862
  203986. .IP \(bu 2
  203987. 28bbb73151 Import from napalm_base instead of napalm
  203988. .IP \(bu 2
  203989. 0a675afc40 Vice\-versa docstring
  203990. .IP \(bu 2
  203991. 09c50176e2 More docfix
  203992. .IP \(bu 2
  203993. 215b8f38e2 Lint cleanup
  203994. .IP \(bu 2
  203995. \fBPR\fP \fI\%#38260\fP: (\fI\%rallytime\fP) Add 2016.11.2 release notes
  203996. .IP \(bu 2
  203997. \fBPR\fP \fI\%#38257\fP: (\fI\%rallytime\fP) [2016.11] Bump latest release version to 2016.11.1
  203998. .IP \(bu 2
  203999. \fBPR\fP \fI\%#38233\fP: (\fI\%terminalmage\fP) Correct an inaccurate warning when top_file_merging_strategy == merge_all
  204000. .UNINDENT
  204001. .IP \(bu 2
  204002. \fBPR\fP \fI\%#38234\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204003. @ \fI2016\-12\-13 18:28:02 UTC\fP
  204004. .INDENT 2.0
  204005. .IP \(bu 2
  204006. ba62fcf2ec Merge pull request \fI\%#38234\fP from rallytime/merge\-2016.11
  204007. .IP \(bu 2
  204008. 6a327d1367 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204009. .IP \(bu 2
  204010. 004e46afe7 Merge pull request \fI\%#38198\fP from vutny/unit\-tests\-require\-libcloud\-boto3
  204011. .INDENT 2.0
  204012. .IP \(bu 2
  204013. a6098bac1a Remove note about SaltTesting installation, now it is in the requirements
  204014. .IP \(bu 2
  204015. 004bff113e Add missing requirements for running unit tests: libcloud and boto3
  204016. .UNINDENT
  204017. .IP \(bu 2
  204018. 9d497bc74c Merge pull request \fI\%#38213\fP from rallytime/skip\-tls\-test
  204019. .INDENT 2.0
  204020. .IP \(bu 2
  204021. bdb807fc7c Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  204022. .UNINDENT
  204023. .IP \(bu 2
  204024. 203109dd17 Merge pull request \fI\%#38224\fP from whiteinge/cors\-options\-unauthed
  204025. .INDENT 2.0
  204026. .IP \(bu 2
  204027. de4d3227ab Allow CORS OPTIONS requests to be unauthenticated
  204028. .UNINDENT
  204029. .IP \(bu 2
  204030. 721a5feccd Merge pull request \fI\%#38223\fP from whiteinge/salt\-api\-root_dirs
  204031. .INDENT 2.0
  204032. .IP \(bu 2
  204033. bfbf390c0e Add root_dir to salt\-api file paths
  204034. .UNINDENT
  204035. .UNINDENT
  204036. .IP \(bu 2
  204037. \fBPR\fP \fI\%#38205\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204038. @ \fI2016\-12\-12 18:13:18 UTC\fP
  204039. .INDENT 2.0
  204040. .IP \(bu 2
  204041. 7ead1ed336 Merge pull request \fI\%#38205\fP from rallytime/merge\-2016.11
  204042. .IP \(bu 2
  204043. e31f97cf71 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204044. .IP \(bu 2
  204045. 70f7d22ad6 Merge pull request \fI\%#38191\fP from terminalmage/issue38162
  204046. .INDENT 2.0
  204047. .IP \(bu 2
  204048. 1ae543a98a Clarify the fact that git_pillar.update does not fast\-forward
  204049. .UNINDENT
  204050. .IP \(bu 2
  204051. 28171cbfc5 Merge pull request \fI\%#38194\fP from vutny/integration\-test\-requirements\-doc
  204052. .INDENT 2.0
  204053. .IP \(bu 2
  204054. e9f419ff64 Document the requirements for running ZeroMQ\-based integration tests
  204055. .UNINDENT
  204056. .IP \(bu 2
  204057. a4ef037ab1 Merge pull request \fI\%#38185\fP from rallytime/bp\-38181
  204058. .IP \(bu 2
  204059. 609f814454 Reset socket default timeout to None (fixes daemons_tests failures)
  204060. .UNINDENT
  204061. .IP \(bu 2
  204062. \fBPR\fP \fI\%#38203\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38188\fP to 2016.11
  204063. @ \fI2016\-12\-12 17:48:51 UTC\fP
  204064. .INDENT 2.0
  204065. .IP \(bu 2
  204066. \fBPR\fP \fI\%#38188\fP: (\fI\%tsaridas\fP) fix for push_dir in different OS (refs: \fI\%#38203\fP, \fI\%#38207\fP)
  204067. .IP \(bu 2
  204068. 669409d681 Merge pull request \fI\%#38203\fP from rallytime/bp\-38188
  204069. .IP \(bu 2
  204070. 50d3200b12 removing not needed join
  204071. .IP \(bu 2
  204072. 7af708e1e7 fix for push_dir in different OS
  204073. .UNINDENT
  204074. .UNINDENT
  204075. .SS Salt 2016.11.3 Release Notes
  204076. .sp
  204077. Version 2016.11.3 is a bugfix release for 2016.11.0\&.
  204078. .SS Statistics
  204079. .INDENT 0.0
  204080. .IP \(bu 2
  204081. Total Merges: \fB137\fP
  204082. .IP \(bu 2
  204083. Total Issue References: \fB49\fP
  204084. .IP \(bu 2
  204085. Total PR References: \fB130\fP
  204086. .IP \(bu 2
  204087. 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)
  204088. .UNINDENT
  204089. .SS Changelog for v2016.11.2..v2016.11.3
  204090. .sp
  204091. \fIGenerated at: 2018\-05\-27 19:39:56 UTC\fP
  204092. .INDENT 0.0
  204093. .IP \(bu 2
  204094. \fBPR\fP \fI\%#39536\fP: (\fI\%twangboy\fP) Namespace \(aqstatus\(aq functions in \(aqwin_status\(aq
  204095. @ \fI2017\-02\-21 23:45:31 UTC\fP
  204096. .INDENT 2.0
  204097. .IP \(bu 2
  204098. \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)
  204099. .IP \(bu 2
  204100. 40f72db53e Merge pull request \fI\%#39536\fP from twangboy/fix_win_status
  204101. .IP \(bu 2
  204102. d5453e2f9e Remove unused import (lint)
  204103. .IP \(bu 2
  204104. 837c32e673 Remove list2cmdline
  204105. .IP \(bu 2
  204106. c258cb3f73 Streamline wmic command returns for easier parsing
  204107. .IP \(bu 2
  204108. 6d2cf8171e Fix \(aqping_master\(aq function
  204109. .IP \(bu 2
  204110. d946d10597 Namespace \(aqstatus\(aq functions in \(aqwin_status\(aq
  204111. .UNINDENT
  204112. .IP \(bu 2
  204113. \fBPR\fP \fI\%#39534\fP: (\fI\%rallytime\fP) Fix breakage in aptpkg and dpkg execution modules
  204114. @ \fI2017\-02\-21 20:31:15 UTC\fP
  204115. .INDENT 2.0
  204116. .IP \(bu 2
  204117. \fBPR\fP \fI\%#39418\fP: (\fI\%anlutro\fP) Allow aptpkg.info_installed on package names that aren\(aqt installed (refs: \fI\%#39534\fP)
  204118. .IP \(bu 2
  204119. dc8f578447 Merge pull request \fI\%#39534\fP from rallytime/fix\-pkg\-function\-specs
  204120. .IP \(bu 2
  204121. d34a8fe9dc Fix breakage in aptpkg and dpkg execution modules
  204122. .UNINDENT
  204123. .IP \(bu 2
  204124. \fBISSUE\fP \fI\%#34712\fP: (\fI\%richardscollin\fP) Salt Test Suite Error \- develop (refs: \fI\%#37366\fP)
  204125. .INDENT 2.0
  204126. .IP \(bu 2
  204127. \fBPR\fP \fI\%#39521\fP: (\fI\%vutny\fP) Upgrade SaltTesting to run test suite for 2016.11 and add SaltPyLint
  204128. .IP \(bu 2
  204129. \fBPR\fP \fI\%#37366\fP: (\fI\%eradman\fP) dev_python*.txt: use current SaltTesting and SaltPyLint modules (refs: \fI\%#39521\fP)
  204130. .UNINDENT
  204131. .IP \(bu 2
  204132. \fBPR\fP \fI\%#39370\fP: (\fI\%twangboy\fP) Gate win_osinfo and winservice
  204133. @ \fI2017\-02\-17 23:53:58 UTC\fP
  204134. .INDENT 2.0
  204135. .IP \(bu 2
  204136. e4c71683d9 Merge pull request \fI\%#39370\fP from twangboy/gate_win_utils
  204137. .IP \(bu 2
  204138. 167cdb3447 Gate windows specific imports, add __virtual__
  204139. .IP \(bu 2
  204140. e67387deb7 Add option to return a Non instantiated class
  204141. .IP \(bu 2
  204142. 315b0cc105 Clarify return value for win_osinfo
  204143. .IP \(bu 2
  204144. 994314ed3d Fix more docs
  204145. .IP \(bu 2
  204146. 2bbe3cbf49 Fix some docs
  204147. .IP \(bu 2
  204148. 4103563ee1 Merge branch \(aqgate_win_utils\(aq of \fI\%https://github.com/twangboy/salt\fP into gate_win_utils
  204149. .INDENT 2.0
  204150. .IP \(bu 2
  204151. 24c1bd079d Remove extra newlines
  204152. .UNINDENT
  204153. .IP \(bu 2
  204154. 82a86ced55 Add helper function for winservice
  204155. .IP \(bu 2
  204156. 0051b5a5e2 Put the win_osinfo classes in a helper function
  204157. .IP \(bu 2
  204158. 4e08534877 Gate win_osinfo and winservice better
  204159. .UNINDENT
  204160. .IP \(bu 2
  204161. \fBPR\fP \fI\%#39486\fP: (\fI\%twangboy\fP) Remove orphaned function list_configurable_policies
  204162. @ \fI2017\-02\-17 22:21:50 UTC\fP
  204163. .INDENT 2.0
  204164. .IP \(bu 2
  204165. a3e71b6cce Merge pull request \fI\%#39486\fP from twangboy/win_remove_orphaned
  204166. .IP \(bu 2
  204167. 1328055c4d Remove orphaned function list_configurable_policies
  204168. .UNINDENT
  204169. .IP \(bu 2
  204170. \fBPR\fP \fI\%#39418\fP: (\fI\%anlutro\fP) Allow aptpkg.info_installed on package names that aren\(aqt installed (refs: \fI\%#39534\fP)
  204171. @ \fI2017\-02\-17 18:34:19 UTC\fP
  204172. .INDENT 2.0
  204173. .IP \(bu 2
  204174. 87b269fc80 Merge pull request \fI\%#39418\fP from alprs/fix\-aptpkg_info_nonexistent_pkg
  204175. .IP \(bu 2
  204176. 246bf1e938 add failhard argument to various apt pkg functions
  204177. .UNINDENT
  204178. .IP \(bu 2
  204179. \fBPR\fP \fI\%#39438\fP: (\fI\%mirceaulinic\fP) file.get_managed: refetch source when file hashsum is changed
  204180. @ \fI2017\-02\-17 17:58:29 UTC\fP
  204181. .INDENT 2.0
  204182. .IP \(bu 2
  204183. e816d6c23e Merge pull request \fI\%#39438\fP from cloudflare/fix_39422
  204184. .IP \(bu 2
  204185. 8453800639 file.get_managed: refetch cached file when hashsum chnaged
  204186. .UNINDENT
  204187. .IP \(bu 2
  204188. \fBISSUE\fP \fI\%#39203\fP: (\fI\%dmaziuk\fP) salt.users gecos field (refs: \fI\%#39432\fP)
  204189. .IP \(bu 2
  204190. \fBPR\fP \fI\%#39432\fP: (\fI\%dmaziuk\fP) Quick and dirty fix for GECOS fields with more than 3 commas
  204191. @ \fI2017\-02\-17 17:57:30 UTC\fP
  204192. .INDENT 2.0
  204193. .IP \(bu 2
  204194. a5fe8f0fa6 Merge pull request \fI\%#39432\fP from dmaziuk/issue39203
  204195. .IP \(bu 2
  204196. 41c046308c Remove #
  204197. .IP \(bu 2
  204198. 4f877c6b6f Quick and dirty fix for GECOS fields with more than 3 commas
  204199. .UNINDENT
  204200. .IP \(bu 2
  204201. \fBPR\fP \fI\%#39484\fP: (\fI\%corywright\fP) The Reactor docs should use pillar=\(aq{}\(aq instead of \(aqpillar={}\(aq
  204202. @ \fI2017\-02\-17 17:50:57 UTC\fP
  204203. .INDENT 2.0
  204204. .IP \(bu 2
  204205. 3665229a5a Merge pull request \fI\%#39484\fP from corywright/fix\-reactor\-docs\-pillar\-keyword\-args
  204206. .IP \(bu 2
  204207. cc90d0d53f The Reactor docs should use pillar=\(aq{}\(aq instead of \(aqpillar={}\(aq
  204208. .UNINDENT
  204209. .IP \(bu 2
  204210. \fBPR\fP \fI\%#39456\fP: (\fI\%twangboy\fP) Add salt icon to buildenv directory
  204211. @ \fI2017\-02\-16 22:47:58 UTC\fP
  204212. .INDENT 2.0
  204213. .IP \(bu 2
  204214. 2e3a9c5e58 Merge pull request \fI\%#39456\fP from twangboy/win_fix_icon
  204215. .IP \(bu 2
  204216. 8dd915dae4 Add salt icon to buildenv directory
  204217. .UNINDENT
  204218. .IP \(bu 2
  204219. \fBPR\fP \fI\%#39462\fP: (\fI\%twangboy\fP) Use url_path instead of url_data.path
  204220. @ \fI2017\-02\-16 22:44:18 UTC\fP
  204221. .INDENT 2.0
  204222. .IP \(bu 2
  204223. 63adc03484 Merge pull request \fI\%#39462\fP from twangboy/win_fix_fileclient
  204224. .IP \(bu 2
  204225. a96bc13133 Use url_path instead of url_data.path
  204226. .UNINDENT
  204227. .IP \(bu 2
  204228. \fBPR\fP \fI\%#39458\fP: (\fI\%rallytime\fP) Fix more warnings in doc build
  204229. @ \fI2017\-02\-16 21:45:52 UTC\fP
  204230. .INDENT 2.0
  204231. .IP \(bu 2
  204232. e9b034f02f Merge pull request \fI\%#39458\fP from rallytime/fixup\-more\-doc\-build\-warnings
  204233. .IP \(bu 2
  204234. e698bc3508 Fix more warnings in doc build
  204235. .UNINDENT
  204236. .IP \(bu 2
  204237. \fBPR\fP \fI\%#39437\fP: (\fI\%sakateka\fP) Fixes about saltfile
  204238. @ \fI2017\-02\-16 20:32:15 UTC\fP
  204239. .INDENT 2.0
  204240. .IP \(bu 2
  204241. e4f8c2bfb0 Merge pull request \fI\%#39437\fP from sakateka/fixes_about_saltfile
  204242. .IP \(bu 2
  204243. ab68524d7a less pylint: salt/utils/parsers.py
  204244. .IP \(bu 2
  204245. 9e7d9dcc78 Revert "pylint: salt/utils/parsers.py"
  204246. .IP \(bu 2
  204247. f3f129c8f1 document ~/.salt/Saltfile
  204248. .IP \(bu 2
  204249. 33f3614b1e pylint: salt/utils/parsers.py
  204250. .IP \(bu 2
  204251. 0f36e10e7d expand config_dir and \(aq~/.salt/Saltfile\(aq as last resort
  204252. .IP \(bu 2
  204253. \fBPR\fP \fI\%#39451\fP: (\fI\%Ch3LL\fP) add 2016.11.3 changelog to release notes
  204254. .UNINDENT
  204255. .IP \(bu 2
  204256. \fBISSUE\fP \fI\%#38032\fP: (\fI\%meggiebot\fP) Add missing Carbon docs (refs: \fI\%#39448\fP)
  204257. .IP \(bu 2
  204258. \fBPR\fP \fI\%#39448\fP: (\fI\%gtmanfred\fP) Add release notes for cisco proxy minions added in Carbon
  204259. @ \fI2017\-02\-16 17:29:48 UTC\fP
  204260. .INDENT 2.0
  204261. .IP \(bu 2
  204262. 8e2cbd2307 Merge pull request \fI\%#39448\fP from gtmanfred/2016.11
  204263. .IP \(bu 2
  204264. 3172e88700 Add release notes for cisco proxy minions added in Carbon
  204265. .UNINDENT
  204266. .IP \(bu 2
  204267. \fBPR\fP \fI\%#39428\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204268. @ \fI2017\-02\-16 00:01:15 UTC\fP
  204269. .INDENT 2.0
  204270. .IP \(bu 2
  204271. 070904b719 Merge pull request \fI\%#39428\fP from rallytime/merge\-2016.11
  204272. .IP \(bu 2
  204273. 2acb188ac9 Change \fBpath\fP value from a tuple to a list
  204274. .IP \(bu 2
  204275. 6d78adbf08 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204276. .INDENT 2.0
  204277. .IP \(bu 2
  204278. 4ff13acf8b salt.fileserver.roots: Fix regression in symlink_list (\fI\%#39409\fP)
  204279. .IP \(bu 2
  204280. 8b8ab8ef8e Merge pull request \fI\%#39362\fP from dincamihai/cp\-push\-test\-2016.3
  204281. .INDENT 2.0
  204282. .IP \(bu 2
  204283. 91383c5a19 Add cp.push test
  204284. .UNINDENT
  204285. .IP \(bu 2
  204286. 4b726f955b Merge pull request \fI\%#39380\fP from joe\-niland/quote\-numeric\-usernames
  204287. .INDENT 2.0
  204288. .IP \(bu 2
  204289. c2edfdd464 Quote numeric user names so pwd.getpwnam handles them properly
  204290. .UNINDENT
  204291. .IP \(bu 2
  204292. 1116d32df9 Merge pull request \fI\%#39400\fP from meaksh/2016.3\-fix\-local\-cache\-issue
  204293. .INDENT 2.0
  204294. .IP \(bu 2
  204295. e7e559ef5c Prevents \(aqOSError\(aq exception in case path doesn\(aqt exist
  204296. .UNINDENT
  204297. .IP \(bu 2
  204298. 6c854da1d4 Merge pull request \fI\%#39300\fP from terminalmage/loader\-optimization
  204299. .INDENT 2.0
  204300. .IP \(bu 2
  204301. d3e5d1525e Replace more usage of str.format in the loader
  204302. .UNINDENT
  204303. .IP \(bu 2
  204304. 5286b5ff1b Merge pull request \fI\%#39337\fP from terminalmage/issue34428
  204305. .INDENT 2.0
  204306. .IP \(bu 2
  204307. a7d2135dc2 Don\(aqt re\-walk the roots fileserver in symlink_list()
  204308. .UNINDENT
  204309. .IP \(bu 2
  204310. ce781deeb5 Merge pull request \fI\%#39339\fP from cro/pillar_filetree_doc
  204311. .INDENT 2.0
  204312. .IP \(bu 2
  204313. 410810cea2 Clarification on external pillar usage.
  204314. .UNINDENT
  204315. .IP \(bu 2
  204316. fa3014393c Document the upstream RedHat bug with their pygit2 package (\fI\%#39316\fP)
  204317. .UNINDENT
  204318. .UNINDENT
  204319. .IP \(bu 2
  204320. \fBISSUE\fP \fI\%#39360\fP: (\fI\%bbinet\fP) file.symlink should not try to set ownership to root:root (refs: \fI\%#39364\fP)
  204321. .IP \(bu 2
  204322. \fBPR\fP \fI\%#39429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39364\fP to 2016.11
  204323. @ \fI2017\-02\-15 21:27:21 UTC\fP
  204324. .INDENT 2.0
  204325. .IP \(bu 2
  204326. \fBPR\fP \fI\%#39364\fP: (\fI\%gtmanfred\fP) set default user variable to the user cmd runs as (refs: \fI\%#39429\fP)
  204327. .IP \(bu 2
  204328. 54a572e50c Merge pull request \fI\%#39429\fP from rallytime/bp\-39364
  204329. .IP \(bu 2
  204330. 157f4dcdf9 set default user variable to the user cmd runs as
  204331. .UNINDENT
  204332. .IP \(bu 2
  204333. \fBPR\fP \fI\%#39424\fP: (\fI\%twangboy\fP) Fix problem with too many connection attempts in Windows
  204334. @ \fI2017\-02\-15 18:51:35 UTC\fP
  204335. .INDENT 2.0
  204336. .IP \(bu 2
  204337. 881ebf2e93 Merge pull request \fI\%#39424\fP from twangboy/win_fix_dos
  204338. .IP \(bu 2
  204339. d3f7dd7f50 Add sleep to eval_master
  204340. .UNINDENT
  204341. .IP \(bu 2
  204342. \fBISSUE\fP \fI\%#30561\fP: (\fI\%jfindlay\fP) salt\-ssh fails with IPv6 address (refs: \fI\%#39419\fP, \fI\%#38831\fP)
  204343. .IP \(bu 2
  204344. \fBISSUE\fP \fI\%#22984\fP: (\fI\%tomasfejfar\fP) salt\-ssh problem possibly related to ipv6 (refs: \fI\%#39419\fP, \fI\%#38831\fP)
  204345. .IP \(bu 2
  204346. \fBPR\fP \fI\%#39419\fP: (\fI\%The\-Loeki\fP) Backport Salt\-SSH IPv6 fixes to 2016.11
  204347. @ \fI2017\-02\-15 17:33:13 UTC\fP
  204348. .INDENT 2.0
  204349. .IP \(bu 2
  204350. \fBPR\fP \fI\%#38877\fP: (\fI\%The\-Loeki\fP) Salt\-SSH client: Don\(aqt overwrite self.host w/IPv6 brackets (refs: \fI\%#39419\fP)
  204351. .IP \(bu 2
  204352. \fBPR\fP \fI\%#38831\fP: (\fI\%The\-Loeki\fP) Salt\-SSH deal with raw IPv6 addresses (refs: \fI\%#39419\fP, \fI\%#38877\fP)
  204353. .IP \(bu 2
  204354. 47872355a8 Merge pull request \fI\%#39419\fP from The\-Loeki/bp\-ssh\-ipv6
  204355. .IP \(bu 2
  204356. 4fc5626f16 Don\(aqt overwrite self.host w/IPv6 brackets
  204357. .IP \(bu 2
  204358. dd1223468b Salt\-SSH deal with raw IPv6 addresses
  204359. .UNINDENT
  204360. .IP \(bu 2
  204361. \fBPR\fP \fI\%#39379\fP: (\fI\%terminalmage\fP) win_pkg: remove all installed versions when no explicit version passed
  204362. @ \fI2017\-02\-14 18:41:28 UTC\fP
  204363. .INDENT 2.0
  204364. .IP \(bu 2
  204365. 878946d0f8 Merge pull request \fI\%#39379\fP from terminalmage/issue34821
  204366. .IP \(bu 2
  204367. fd9ab8e4e3 Remove extra newline
  204368. .IP \(bu 2
  204369. 5871825b9e win_pkg: remove all installed versions when no explicit version passed
  204370. .UNINDENT
  204371. .IP \(bu 2
  204372. \fBPR\fP \fI\%#39392\fP: (\fI\%anlutro\fP) Make sure OrderedDict order is preserved in nested output
  204373. @ \fI2017\-02\-14 17:50:15 UTC\fP
  204374. .INDENT 2.0
  204375. .IP \(bu 2
  204376. caffef88cf Merge pull request \fI\%#39392\fP from alprs/fix\-nested_output_ordered_dict
  204377. .IP \(bu 2
  204378. 625a770a23 make sure OrderedDict order is preserved in output
  204379. .UNINDENT
  204380. .IP \(bu 2
  204381. \fBPR\fP \fI\%#39378\fP: (\fI\%dmurphy18\fP) Update make_repo in debbuild.py execution module to utilize timeout
  204382. @ \fI2017\-02\-14 17:10:15 UTC\fP
  204383. .INDENT 2.0
  204384. .IP \(bu 2
  204385. f2459e3ce8 Merge pull request \fI\%#39378\fP from dmurphy18/deb_pkg_fix
  204386. .IP \(bu 2
  204387. 4bd47cc18a Updated all make_repo loops to use timeout value for retries
  204388. .UNINDENT
  204389. .IP \(bu 2
  204390. \fBISSUE\fP \fI\%#39358\fP: (\fI\%Kimamisa\fP) Backport the RDS\ fix in Carbon (refs: \fI\%#39369\fP)
  204391. .IP \(bu 2
  204392. \fBPR\fP \fI\%#39369\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37338\fP to 2016.11
  204393. @ \fI2017\-02\-13 21:41:19 UTC\fP
  204394. .INDENT 2.0
  204395. .IP \(bu 2
  204396. \fBPR\fP \fI\%#37338\fP: (\fI\%bailsman\fP) Fix wait_status in boto_rds.create() (refs: \fI\%#39369\fP)
  204397. .IP \(bu 2
  204398. 99554d9d72 Merge pull request \fI\%#39369\fP from rallytime/bp\-37338
  204399. .IP \(bu 2
  204400. 2e7f6e8e37 Fix wait_status in boto_rds.create()
  204401. .UNINDENT
  204402. .IP \(bu 2
  204403. \fBPR\fP \fI\%#39303\fP: (\fI\%kstreee\fP) Removes a redundant test case after removed \(aqbatch\(aq in \(aqnetapi\(aq.
  204404. @ \fI2017\-02\-13 19:55:46 UTC\fP
  204405. .INDENT 2.0
  204406. .IP \(bu 2
  204407. 03ab8b1b5a Merge pull request \fI\%#39303\fP from kstreee/fix\-testcase\-rm\-batch\-in\-netapi
  204408. .IP \(bu 2
  204409. 51972d0724 Removes a redundant test case after removed \(aqbatch\(aq in \(aqnetapi\(aq.
  204410. .UNINDENT
  204411. .IP \(bu 2
  204412. \fBPR\fP \fI\%#39315\fP: (\fI\%Ch3LL\fP) improve salt\-run salt.cmd test
  204413. @ \fI2017\-02\-13 19:00:14 UTC\fP
  204414. .INDENT 2.0
  204415. .IP \(bu 2
  204416. 60640f77d7 Merge pull request \fI\%#39315\fP from Ch3LL/fix_run_salt_test
  204417. .IP \(bu 2
  204418. b3cbc5a408 improve salt\-run salt.cmd test
  204419. .UNINDENT
  204420. .IP \(bu 2
  204421. \fBISSUE\fP \fI\%#39243\fP: (\fI\%morganwillcock\fP) win_system.reboot: can return True without rebooting (refs: \fI\%#39311\fP)
  204422. .IP \(bu 2
  204423. \fBPR\fP \fI\%#39311\fP: (\fI\%morganwillcock\fP) win_system: return False from a skipped reboot
  204424. @ \fI2017\-02\-13 18:59:11 UTC\fP
  204425. .INDENT 2.0
  204426. .IP \(bu 2
  204427. 2ca63a93cd Merge pull request \fI\%#39311\fP from morganwillcock/skip\-reboot
  204428. .IP \(bu 2
  204429. 0f3abb613d Clarify success for shutdown function
  204430. .IP \(bu 2
  204431. dcb4d05275 win_system: return False from a skipped reboot
  204432. .UNINDENT
  204433. .IP \(bu 2
  204434. \fBPR\fP \fI\%#39346\fP: (\fI\%joe\-niland\fP) Ignore non\-HTTP IIS bindings
  204435. @ \fI2017\-02\-13 18:18:36 UTC\fP
  204436. .INDENT 2.0
  204437. .IP \(bu 2
  204438. 082105fa84 Merge pull request \fI\%#39346\fP from joe\-niland/handle\-iis\-bindings
  204439. .IP \(bu 2
  204440. 8d5afdb0ae win_iis module: list_sites \- when retrieving bindings, ignore bindigs whose protocols do not have host headers
  204441. .UNINDENT
  204442. .IP \(bu 2
  204443. \fBISSUE\fP \fI\%#39321\fP: (\fI\%mgresser\fP) Grain matching failing where grain value is an INT (refs: \fI\%#39361\fP)
  204444. .IP \(bu 2
  204445. \fBPR\fP \fI\%#39361\fP: (\fI\%gtmanfred\fP) make sure both variables are strings.
  204446. @ \fI2017\-02\-13 17:20:17 UTC\fP
  204447. .INDENT 2.0
  204448. .IP \(bu 2
  204449. a3a9a8e1ed Merge pull request \fI\%#39361\fP from gtmanfred/2016.11
  204450. .IP \(bu 2
  204451. ee2275ad67 make sure both variables are strings.
  204452. .IP \(bu 2
  204453. \fBPR\fP \fI\%#39341\fP: (\fI\%eliasp\fP) Add creation/configuration of Salt PKI dirs to hacking docs
  204454. .UNINDENT
  204455. .IP \(bu 2
  204456. \fBPR\fP \fI\%#39317\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204457. @ \fI2017\-02\-10 23:07:32 UTC\fP
  204458. .INDENT 2.0
  204459. .IP \(bu 2
  204460. ce1f01f81a Merge pull request \fI\%#39317\fP from rallytime/merge\-2016.11
  204461. .IP \(bu 2
  204462. c1df446b7a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204463. .IP \(bu 2
  204464. 9de559ff4e Merge pull request \fI\%#39313\fP from rallytime/merge\-2016.3
  204465. .INDENT 2.0
  204466. .IP \(bu 2
  204467. 0b8dddf12b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  204468. .IP \(bu 2
  204469. fc551bcf5d Merge pull request \fI\%#39293\fP from sergeizv/grammar\-fix
  204470. .INDENT 2.0
  204471. .IP \(bu 2
  204472. 70f2b586d3 Rewrap paragraph
  204473. .IP \(bu 2
  204474. e6ab5178ea Grammar fix
  204475. .UNINDENT
  204476. .IP \(bu 2
  204477. 8a1b45632a Merge pull request \fI\%#39295\fP from sergeizv/typo\-fix
  204478. .INDENT 2.0
  204479. .IP \(bu 2
  204480. 5d9f36d58d Fix typo
  204481. .UNINDENT
  204482. .IP \(bu 2
  204483. cfaafece34 Merge pull request \fI\%#39296\fP from sergeizv/whitespace\-fix
  204484. .INDENT 2.0
  204485. .IP \(bu 2
  204486. 1d4c1dc140 Whitespace fix in docs Makefile
  204487. .UNINDENT
  204488. .IP \(bu 2
  204489. 0b4dcf4a47 Merge pull request \fI\%#39294\fP from sergeizv/fix\-link
  204490. .INDENT 2.0
  204491. .IP \(bu 2
  204492. 04bde6eed2 Fix link in proxyminion guide
  204493. .UNINDENT
  204494. .UNINDENT
  204495. .IP \(bu 2
  204496. dd3ca0ecb0 Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log (\fI\%#39299\fP)
  204497. .IP \(bu 2
  204498. f16027d30e Merge pull request \fI\%#39297\fP from cro/pg_returner_docs
  204499. .INDENT 2.0
  204500. .IP \(bu 2
  204501. 28bac649ae Typo
  204502. .IP \(bu 2
  204503. 19fedcdd23 Add doc to recommend pgjsonb for master job caches
  204504. .UNINDENT
  204505. .IP \(bu 2
  204506. 77e50ed8b7 Merge pull request \fI\%#39286\fP from terminalmage/fix\-pillarenv\-precedence
  204507. .INDENT 2.0
  204508. .IP \(bu 2
  204509. 3cb9833e57 Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  204510. .UNINDENT
  204511. .IP \(bu 2
  204512. 52440416ca Merge pull request \fI\%#39221\fP from lvg01/fix\-bug\-39220
  204513. .INDENT 2.0
  204514. .IP \(bu 2
  204515. e8a41d6341 Removes to early content stripping (stripping is allready done when needed with ident:true), fixes \fI\%#39220\fP
  204516. .IP \(bu 2
  204517. a4b169e0bd Fixed wrong logic, fixes \fI\%#39220\fP
  204518. .UNINDENT
  204519. .IP \(bu 2
  204520. 5a27207c57 Add warning for Dulwich removal (\fI\%#39280\fP)
  204521. .UNINDENT
  204522. .IP \(bu 2
  204523. \fBISSUE\fP \fI\%#38451\fP: (\fI\%ezh\fP) 2016.11 file.replace has multiple errors under python 3 (refs: \fI\%#38464\fP)
  204524. .IP \(bu 2
  204525. \fBPR\fP \fI\%#38464\fP: (\fI\%ezh\fP) [38451] Fix file.replace 2016.11
  204526. @ \fI2017\-02\-09 23:07:49 UTC\fP
  204527. .INDENT 2.0
  204528. .IP \(bu 2
  204529. c3c621aab0 Merge pull request \fI\%#38464\fP from doublescoring/fix\-2016.11\-38451
  204530. .IP \(bu 2
  204531. 81f0337338 [38451] Fix few bugs after review
  204532. .IP \(bu 2
  204533. 1bdab253ad [38451] Fix pylint W1699(incompatible\-py3\-code)
  204534. .IP \(bu 2
  204535. 3bfc6547da [38451] Fix file.replace to make it suitable to python 3
  204536. .UNINDENT
  204537. .IP \(bu 2
  204538. \fBPR\fP \fI\%#39291\fP: (\fI\%terminalmage\fP) Add note about using saltenv jinja var in pillar top files
  204539. @ \fI2017\-02\-09 21:43:50 UTC\fP
  204540. .INDENT 2.0
  204541. .IP \(bu 2
  204542. 6365211a6f Merge pull request \fI\%#39291\fP from terminalmage/pillar\-docs
  204543. .IP \(bu 2
  204544. fbd551e069 Add note about using saltenv jinja var in pillar top files
  204545. .UNINDENT
  204546. .IP \(bu 2
  204547. \fBPR\fP \fI\%#39281\fP: (\fI\%twangboy\fP) Require VCRedist on 2008R2 and below instead of 2008
  204548. @ \fI2017\-02\-09 17:59:57 UTC\fP
  204549. .INDENT 2.0
  204550. .IP \(bu 2
  204551. a496ec2a16 Merge pull request \fI\%#39281\fP from twangboy/win_installer
  204552. .IP \(bu 2
  204553. ef5078729a Capitalize the \(aqr\(aq for 2008R2
  204554. .IP \(bu 2
  204555. 1b6bd634ac Require VCRedist on 2008R2 and below instead of 2008
  204556. .UNINDENT
  204557. .IP \(bu 2
  204558. \fBPR\fP \fI\%#39264\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204559. @ \fI2017\-02\-09 17:10:14 UTC\fP
  204560. .INDENT 2.0
  204561. .IP \(bu 2
  204562. db6140aa83 Merge pull request \fI\%#39264\fP from rallytime/merge\-2016.11
  204563. .IP \(bu 2
  204564. a9c2c106c1 Pylint fix
  204565. .IP \(bu 2
  204566. f6aad99db2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204567. .INDENT 2.0
  204568. .IP \(bu 2
  204569. 1b9217d636 Update jsonschema tests to reflect change in jsonschema 2.6.0 (\fI\%#39260\fP)
  204570. .IP \(bu 2
  204571. c1d16cc3d0 Better handling of enabled/disabled arguments in pkgrepo.managed (\fI\%#39251\fP)
  204572. .IP \(bu 2
  204573. 8e88f71dd9 Merge pull request \fI\%#39227\fP from terminalmage/loader\-optimization
  204574. .INDENT 2.0
  204575. .IP \(bu 2
  204576. c750662946 Loader optimzation
  204577. .UNINDENT
  204578. .IP \(bu 2
  204579. bc89b297f8 Merge pull request \fI\%#39228\fP from gtmanfred/2016.3
  204580. .INDENT 2.0
  204581. .IP \(bu 2
  204582. afee047b08 default to utf8 encoding if not specified
  204583. .UNINDENT
  204584. .IP \(bu 2
  204585. d9b0671dbd Merge pull request \fI\%#39231\fP from terminalmage/clarify\-jenkins\-depends
  204586. .INDENT 2.0
  204587. .IP \(bu 2
  204588. ad1b1255f2 Add clarification for jenkins execution module
  204589. .UNINDENT
  204590. .IP \(bu 2
  204591. ddcff89a84 Merge pull request \fI\%#39232\fP from terminalmage/issue21342
  204592. .INDENT 2.0
  204593. .IP \(bu 2
  204594. c88896c277 Avoid recursion in s3/svn ext_pillars
  204595. .UNINDENT
  204596. .IP \(bu 2
  204597. ef4e437bbc Fix the win_ip_test failures (\fI\%#39230\fP)
  204598. .IP \(bu 2
  204599. df5f934c34 Merge pull request \fI\%#39199\fP from rallytime/bp\-39170
  204600. .INDENT 2.0
  204601. .IP \(bu 2
  204602. 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
  204603. .UNINDENT
  204604. .IP \(bu 2
  204605. 2621c119fd Merge pull request \fI\%#39206\fP from cachedout/issue_issue_37174
  204606. .INDENT 2.0
  204607. .IP \(bu 2
  204608. be31e0559c Ignore empty dicts in highstate outputter
  204609. .UNINDENT
  204610. .IP \(bu 2
  204611. dd440452ea Merge pull request \fI\%#39209\fP from terminalmage/sorted\-envs
  204612. .INDENT 2.0
  204613. .IP \(bu 2
  204614. e6dda4a625 Sort the return list from the fileserver.envs runner
  204615. .UNINDENT
  204616. .IP \(bu 2
  204617. 7bed68743e [2016.3] Pylint fix (\fI\%#39202\fP)
  204618. .IP \(bu 2
  204619. ab76054127 Merge pull request \fI\%#39197\fP from cachedout/pr\-38793
  204620. .INDENT 2.0
  204621. .IP \(bu 2
  204622. f3d35fb5c6 Lint fixes
  204623. .IP \(bu 2
  204624. 624f25b78d Fix for \fI\%#38697\fP
  204625. .UNINDENT
  204626. .UNINDENT
  204627. .UNINDENT
  204628. .IP \(bu 2
  204629. \fBISSUE\fP \fI\%#39269\fP: (\fI\%alexharrington\fP) Remount forced with lizardfs fuse filesystem due to device missmatch (refs: \fI\%#39276\fP)
  204630. .IP \(bu 2
  204631. \fBISSUE\fP \fI\%#39106\fP: (\fI\%carsten\-AEI\fP) CVMFS fuse mount gets remounted every time (refs: \fI\%#39276\fP)
  204632. .IP \(bu 2
  204633. \fBPR\fP \fI\%#39276\fP: (\fI\%gtmanfred\fP) _device_mismatch_ignored will never be True
  204634. @ \fI2017\-02\-09 17:05:28 UTC\fP
  204635. .INDENT 2.0
  204636. .IP \(bu 2
  204637. 304eb19b18 Merge pull request \fI\%#39276\fP from gtmanfred/2016.11
  204638. .IP \(bu 2
  204639. 6635a9fd3b _device_mismatch_ignored will never be True
  204640. .UNINDENT
  204641. .IP \(bu 2
  204642. \fBPR\fP \fI\%#39238\fP: (\fI\%dmurphy18\fP) Update disk fstype, inodeusage, percent and mount.active functions for AIX support
  204643. @ \fI2017\-02\-08 21:53:32 UTC\fP
  204644. .INDENT 2.0
  204645. .IP \(bu 2
  204646. 7611698474 Merge pull request \fI\%#39238\fP from dmurphy18/fix_aix_disk_mount
  204647. .IP \(bu 2
  204648. a8a519c493 Removed space for pylint
  204649. .IP \(bu 2
  204650. 8fa0ffa427 Updates due to code review comments
  204651. .IP \(bu 2
  204652. 97c59a8d1c Updated mount functionality for active on AIX
  204653. .IP \(bu 2
  204654. 1a32b2cc89 Updated disk functionality for fstype, inodeuage and percent on AIX
  204655. .UNINDENT
  204656. .IP \(bu 2
  204657. \fBPR\fP \fI\%#39233\fP: (\fI\%rallytime\fP) Various doc updates to fix warnings in doc build
  204658. @ \fI2017\-02\-08 19:29:53 UTC\fP
  204659. .INDENT 2.0
  204660. .IP \(bu 2
  204661. 99bfa7dfee Merge pull request \fI\%#39233\fP from rallytime/fixup\-more\-doc\-build\-warnings
  204662. .IP \(bu 2
  204663. 2f74dcf685 Various doc updates to fix warnings in doc build
  204664. .UNINDENT
  204665. .IP \(bu 2
  204666. \fBPR\fP \fI\%#39237\fP: (\fI\%axmetishe\fP) fix rds subnet group creation
  204667. @ \fI2017\-02\-08 19:04:31 UTC\fP
  204668. .INDENT 2.0
  204669. .IP \(bu 2
  204670. 59e927b520 Merge pull request \fI\%#39237\fP from axmetishe/2016.11
  204671. .IP \(bu 2
  204672. 6f4be8b69c fix rds subnet group creation
  204673. .IP \(bu 2
  204674. \fBPR\fP \fI\%#39234\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204675. .IP \(bu 2
  204676. \fBPR\fP \fI\%#39225\fP: (\fI\%terminalmage\fP) Put legacy git_pillar on a deprecation path for Oxygen
  204677. .UNINDENT
  204678. .IP \(bu 2
  204679. \fBISSUE\fP \fI\%#39078\fP: (\fI\%morganwillcock\fP) setup.py: cannot install without setting global options (refs: \fI\%#39180\fP)
  204680. .IP \(bu 2
  204681. \fBPR\fP \fI\%#39180\fP: (\fI\%morganwillcock\fP) setup.py: Remove global options from install command
  204682. @ \fI2017\-02\-07 16:20:49 UTC\fP
  204683. .INDENT 2.0
  204684. .IP \(bu 2
  204685. 19c3d90a32 Merge pull request \fI\%#39180\fP from morganwillcock/setup
  204686. .IP \(bu 2
  204687. d7e05091a2 Remove global options from Install
  204688. .UNINDENT
  204689. .IP \(bu 2
  204690. \fBPR\fP \fI\%#38863\fP: (\fI\%hujunya\fP) fix django auth not work
  204691. @ \fI2017\-02\-07 15:43:00 UTC\fP
  204692. .INDENT 2.0
  204693. .IP \(bu 2
  204694. a0907bc861 Merge pull request \fI\%#38863\fP from hujunya/fix_django_auth
  204695. .IP \(bu 2
  204696. 2a99ff46d3 check if django_auth_path has been in sys.path
  204697. .IP \(bu 2
  204698. 933ebf15d7 fix pylint violations
  204699. .IP \(bu 2
  204700. 6b5a7f4b64 fix django auth not work
  204701. .UNINDENT
  204702. .IP \(bu 2
  204703. \fBPR\fP \fI\%#39198\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204704. @ \fI2017\-02\-06 21:01:56 UTC\fP
  204705. .INDENT 2.0
  204706. .IP \(bu 2
  204707. c3e541e0a2 Merge pull request \fI\%#39198\fP from rallytime/merge\-2016.11
  204708. .IP \(bu 2
  204709. 7ea5f7f82f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204710. .INDENT 2.0
  204711. .IP \(bu 2
  204712. fa45cbc359 Merge pull request \fI\%#39166\fP from Ch3LL/fix_boto_ec2_docs
  204713. .INDENT 2.0
  204714. .IP \(bu 2
  204715. 90af696331 fix boto ec2 module create_image doc
  204716. .UNINDENT
  204717. .IP \(bu 2
  204718. a40cb46249 Merge pull request \fI\%#39173\fP from rallytime/restore\-community\-docs
  204719. .INDENT 2.0
  204720. .IP \(bu 2
  204721. 5aeddf42a0 Restore "Salt Community" doc section
  204722. .UNINDENT
  204723. .UNINDENT
  204724. .UNINDENT
  204725. .IP \(bu 2
  204726. \fBISSUE\fP \fI\%#39059\fP: (\fI\%mirceaulinic\fP) KeyError: \(aqmultiprocessing\(aq in the master logs (proxy minions) (refs: \fI\%#39063\fP)
  204727. .IP \(bu 2
  204728. \fBPR\fP \fI\%#39063\fP: (\fI\%mirceaulinic\fP) Avoid KeyError: \(aqmultiprocessing\(aq in the master logs
  204729. @ \fI2017\-02\-06 19:37:35 UTC\fP
  204730. .INDENT 2.0
  204731. .IP \(bu 2
  204732. 2a85d73f59 Merge pull request \fI\%#39063\fP from cloudflare/ISS\-39059
  204733. .IP \(bu 2
  204734. 7118eff034 Avoid KeyError: \(aqmultiprocessing\(aq
  204735. .UNINDENT
  204736. .IP \(bu 2
  204737. \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)
  204738. .IP \(bu 2
  204739. \fBISSUE\fP \fI\%#38761\fP: (\fI\%DaveOHenry\fP) Cannot apply state that contains lgpo.set (refs: \fI\%#39083\fP, \fI\%#39088\fP)
  204740. .IP \(bu 2
  204741. \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)
  204742. .IP \(bu 2
  204743. \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)
  204744. .IP \(bu 2
  204745. \fBISSUE\fP \fI\%#21485\fP: (\fI\%lorengordon\fP) Feature Request: Manage Windows Local Security Policy Settings (refs: \fI\%#36336\fP)
  204746. .IP \(bu 2
  204747. \fBPR\fP \fI\%#39083\fP: (\fI\%lomeroe\fP) Backport \fI\%#36336\fP to 2016.11
  204748. @ \fI2017\-02\-06 18:50:52 UTC\fP
  204749. .INDENT 2.0
  204750. .IP \(bu 2
  204751. \fBPR\fP \fI\%#36336\fP: (\fI\%lomeroe\fP) add additional static policies to computer configuration policy class (refs: \fI\%#39083\fP)
  204752. .IP \(bu 2
  204753. 91c25bd651 Merge pull request \fI\%#39083\fP from lomeroe/bp\-36336
  204754. .IP \(bu 2
  204755. 03e5319124 Merge branch \(aq2016.11\(aq into bp\-36336
  204756. .IP \(bu 2
  204757. 981ec89a4d update command line example to correct policy name
  204758. .IP \(bu 2
  204759. e2574da0b8 Fix/Add documentation, 80 char line lengths
  204760. .IP \(bu 2
  204761. 5e94a30a34 add additional static policies to computer configuration policy class duplicate code cleanup/misc code efficiencies
  204762. .UNINDENT
  204763. .IP \(bu 2
  204764. \fBPR\fP \fI\%#39153\fP: (\fI\%nicholasmhughes\fP) Fix selinux.mode state config file handling
  204765. @ \fI2017\-02\-06 18:37:34 UTC\fP
  204766. .INDENT 2.0
  204767. .IP \(bu 2
  204768. 30455079fe Merge pull request \fI\%#39153\fP from nicholasmhughes/fix\-selinux.mode\-config\-predictability
  204769. .IP \(bu 2
  204770. 8d8ba9c7d2 added the new getconfig function to the test
  204771. .IP \(bu 2
  204772. 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.
  204773. .IP \(bu 2
  204774. 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.
  204775. .UNINDENT
  204776. .IP \(bu 2
  204777. \fBISSUE\fP \fI\%#38081\fP: (\fI\%haraldrudell\fP) x509 state or module cannot generate password protected private keys (refs: \fI\%#39159\fP)
  204778. .IP \(bu 2
  204779. \fBPR\fP \fI\%#39159\fP: (\fI\%clinta\fP) Csr crl passphrase
  204780. @ \fI2017\-02\-06 18:36:05 UTC\fP
  204781. .INDENT 2.0
  204782. .IP \(bu 2
  204783. 7b5eb17cbe Merge pull request \fI\%#39159\fP from clinta/csr\-crl\-passphrase
  204784. .IP \(bu 2
  204785. cf548ac717 Remove unnecessary pass
  204786. .IP \(bu 2
  204787. 4ebf7a3df4 Remove unnecessary pass statement
  204788. .IP \(bu 2
  204789. 6a8046970e fix csr bugs and pep8
  204790. .IP \(bu 2
  204791. 36dcf5f3da only overwrite if overwrite option is specified
  204792. .IP \(bu 2
  204793. 403000d375 recreate cert on bad password
  204794. .IP \(bu 2
  204795. 6497094ba7 passphrase for crl
  204796. .IP \(bu 2
  204797. 3ef809fb0f passphrase for csr
  204798. .UNINDENT
  204799. .IP \(bu 2
  204800. \fBPR\fP \fI\%#39162\fP: (\fI\%meaksh\fP) Adding more function to Snapper module
  204801. @ \fI2017\-02\-06 18:33:53 UTC\fP
  204802. .INDENT 2.0
  204803. .IP \(bu 2
  204804. b240468525 Merge pull request \fI\%#39162\fP from meaksh/snapper\-module\-improvements
  204805. .IP \(bu 2
  204806. f950732fa0 pylint fixes
  204807. .IP \(bu 2
  204808. aa2f9906e0 Removing extra spaces
  204809. .IP \(bu 2
  204810. 9d6a33f257 Adds \(aqsnapper.create_config\(aq unit tests
  204811. .IP \(bu 2
  204812. d38ed505f8 Adds \(aqsnapper.modify_snapshots\(aq unit tests
  204813. .IP \(bu 2
  204814. d5496ccc99 Adds \(aqsnapper.delete_snapshots\(aq unit tests
  204815. .IP \(bu 2
  204816. 3eecb6076b Snapper: Adding support for creating configurations
  204817. .IP \(bu 2
  204818. 041e54d42a Snapper: Adding support for snapshot metadata modification
  204819. .IP \(bu 2
  204820. eaf5de9dce Snapper: Adding support for deleting snapshots
  204821. .UNINDENT
  204822. .IP \(bu 2
  204823. \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)
  204824. .IP \(bu 2
  204825. \fBPR\fP \fI\%#39171\fP: (\fI\%techhat\fP) Raise an error for a disk size that is too small
  204826. @ \fI2017\-02\-06 18:19:46 UTC\fP
  204827. .INDENT 2.0
  204828. .IP \(bu 2
  204829. 6f9251ebed Merge pull request \fI\%#39171\fP from techhat/issue38370
  204830. .IP \(bu 2
  204831. ec57a39c00 Typo
  204832. .IP \(bu 2
  204833. 2ed2932387 Clean up debug logs
  204834. .IP \(bu 2
  204835. 671282656a Raise an error for a disk size that is too small
  204836. .UNINDENT
  204837. .IP \(bu 2
  204838. \fBPR\fP \fI\%#39179\fP: (\fI\%mcalmer\fP) fix error parsing
  204839. @ \fI2017\-02\-06 17:57:00 UTC\fP
  204840. .INDENT 2.0
  204841. .IP \(bu 2
  204842. 036f36dc9b Merge pull request \fI\%#39179\fP from mcalmer/fix\-dockerng\-error\-parsing
  204843. .IP \(bu 2
  204844. 6750ccd78e fix error parsing
  204845. .UNINDENT
  204846. .IP \(bu 2
  204847. \fBPR\fP \fI\%#39189\fP: (\fI\%morganwillcock\fP) Fix NetBSD sockstat parsing
  204848. @ \fI2017\-02\-06 17:28:08 UTC\fP
  204849. .INDENT 2.0
  204850. .IP \(bu 2
  204851. 30f83156cb Merge pull request \fI\%#39189\fP from morganwillcock/sockstat
  204852. .IP \(bu 2
  204853. 344d13eff5 Fix NetBSD sockstat example
  204854. .IP \(bu 2
  204855. 64b693195c Fix NetBSD sockstat parsing
  204856. .UNINDENT
  204857. .IP \(bu 2
  204858. \fBISSUE\fP \fI\%#38003\fP: (\fI\%morganwillcock\fP) salt.runners.cache functions seem to ignore minion targeting parameter (refs: \fI\%#39141\fP)
  204859. .IP \(bu 2
  204860. \fBPR\fP \fI\%#39141\fP: (\fI\%UtahDave\fP) Don\(aqt overwrite the minion_ids var that was passed
  204861. @ \fI2017\-02\-03 20:56:25 UTC\fP
  204862. .INDENT 2.0
  204863. .IP \(bu 2
  204864. 6a9704189f Merge pull request \fI\%#39141\fP from UtahDave/fix_cache_lookup_ZD1187
  204865. .IP \(bu 2
  204866. 0340614d15 return all minions\(aq grains if no tgt
  204867. .IP \(bu 2
  204868. f833bf3a79 Don\(aqt overwrite the minion_ids var that was passed
  204869. .UNINDENT
  204870. .IP \(bu 2
  204871. \fBPR\fP \fI\%#39164\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204872. @ \fI2017\-02\-03 17:57:07 UTC\fP
  204873. .INDENT 2.0
  204874. .IP \(bu 2
  204875. d19cee716f Merge pull request \fI\%#39164\fP from rallytime/merge\-2016.11
  204876. .IP \(bu 2
  204877. 6504bb6b02 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204878. .INDENT 2.0
  204879. .IP \(bu 2
  204880. 9de08af950 Apply fix from \fI\%#38705\fP to 2016.3 branch (\fI\%#39077\fP)
  204881. .IP \(bu 2
  204882. da3053ea9b update vmware getting started doc (\fI\%#39146\fP)
  204883. .IP \(bu 2
  204884. 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)
  204885. .IP \(bu 2
  204886. cd8077ab81 Merge pull request \fI\%#38804\fP from alexbleotu/root_dir_fix\-2016.3\-gh
  204887. .INDENT 2.0
  204888. .IP \(bu 2
  204889. b3bdd3b04a Add missing whiteline
  204890. .IP \(bu 2
  204891. c7715acd53 Merge pull request \fI\%#3\fP from cro/ab_rootdirfix
  204892. .INDENT 2.0
  204893. .IP \(bu 2
  204894. e8cbafaaf1 When running testsuite, salt.syspaths.ROOT_DIR is often empty.
  204895. .UNINDENT
  204896. .IP \(bu 2
  204897. b12dd44a26 Merge pull request \fI\%#1\fP from cro/ab_rootdirfix
  204898. .INDENT 2.0
  204899. .IP \(bu 2
  204900. bffc537aca Remove extra if statements (rstrip will check for the presence anyway).
  204901. .UNINDENT
  204902. .IP \(bu 2
  204903. 97521b3468 Second attempt to fix prepending of root_dir to paths
  204904. .UNINDENT
  204905. .IP \(bu 2
  204906. 6ffeda3ee5 Clarify ipv6 option for minion and inteface for master, closes \fI\%#39118\fP (\fI\%#39131\fP)
  204907. .IP \(bu 2
  204908. 646b9ea4e5 Don\(aqt abort pillar.get with merge=True if default is None (\fI\%#39116\fP)
  204909. .UNINDENT
  204910. .UNINDENT
  204911. .IP \(bu 2
  204912. \fBPR\fP \fI\%#39152\fP: (\fI\%twangboy\fP) Remove files not needed by salt\-minion
  204913. @ \fI2017\-02\-03 17:11:11 UTC\fP
  204914. .INDENT 2.0
  204915. .IP \(bu 2
  204916. ed12512045 Merge pull request \fI\%#39152\fP from twangboy/win_installer
  204917. .IP \(bu 2
  204918. 5ff8a14317 Fix problem deleting files
  204919. .IP \(bu 2
  204920. 4524dd49d4 Remove files not needed by salt\-minion
  204921. .UNINDENT
  204922. .IP \(bu 2
  204923. \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)
  204924. .INDENT 2.0
  204925. .IP \(bu 2
  204926. \fBPR\fP \fI\%#39085\fP: (\fI\%lomeroe\fP) Backport \fI\%#38666\fP to 2016.11
  204927. .IP \(bu 2
  204928. \fBPR\fP \fI\%#38666\fP: (\fI\%lomeroe\fP) correct issue when running lgpo.get with return_not_configured=True (refs: \fI\%#39085\fP)
  204929. .IP \(bu 2
  204930. \fBPR\fP \fI\%#39086\fP: (\fI\%lomeroe\fP) Backport \fI\%#38165\fP to 2016.11
  204931. .IP \(bu 2
  204932. \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)
  204933. .UNINDENT
  204934. .IP \(bu 2
  204935. \fBISSUE\fP \fI\%#38241\fP: (\fI\%frogunder\fP) mine.get and salt\-ssh gives error message (refs: \fI\%#38970\fP)
  204936. .IP \(bu 2
  204937. \fBPR\fP \fI\%#38970\fP: (\fI\%gtmanfred\fP) when using local_cache we have to pass the list of minions
  204938. @ \fI2017\-02\-02 19:24:39 UTC\fP
  204939. .INDENT 2.0
  204940. .IP \(bu 2
  204941. 4eec641b65 Merge pull request \fI\%#38970\fP from gtmanfred/2016.11
  204942. .IP \(bu 2
  204943. ebb9df3ec7 when using local_cache we have to pass the list of minions
  204944. .UNINDENT
  204945. .IP \(bu 2
  204946. \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)
  204947. .INDENT 2.0
  204948. .IP \(bu 2
  204949. \fBPR\fP \fI\%#39128\fP: (\fI\%terminalmage\fP) Fix archive.list on Windows
  204950. .UNINDENT
  204951. .IP \(bu 2
  204952. \fBISSUE\fP \fI\%saltstack/salt#36712\fP: (\fI\%dmitrievav\fP) s3.put function does not create s3 bucket (refs: \fI\%#36714\fP)
  204953. .INDENT 2.0
  204954. .IP \(bu 2
  204955. \fBPR\fP \fI\%#39133\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36714\fP to 2016.11
  204956. .IP \(bu 2
  204957. \fBPR\fP \fI\%#36714\fP: (\fI\%dmitrievav\fP) s3.put can\(aqt create s3 bucket (refs: \fI\%#39133\fP)
  204958. .UNINDENT
  204959. .IP \(bu 2
  204960. \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)
  204961. .INDENT 2.0
  204962. .IP \(bu 2
  204963. \fBPR\fP \fI\%#39084\fP: (\fI\%lomeroe\fP) Backport \fI\%#38690\fP to 2016.11
  204964. .IP \(bu 2
  204965. \fBPR\fP \fI\%#38690\fP: (\fI\%lomeroe\fP) correct checking of policy_class to compare with lower() version of t… (refs: \fI\%#39084\fP)
  204966. .UNINDENT
  204967. .IP \(bu 2
  204968. \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)
  204969. .INDENT 2.0
  204970. .IP \(bu 2
  204971. \fBPR\fP \fI\%#39089\fP: (\fI\%lomeroe\fP) Backport \fI\%#38779\fP to 2016.11
  204972. .IP \(bu 2
  204973. \fBPR\fP \fI\%#38779\fP: (\fI\%lomeroe\fP) win_lgpo handle errors when \(aqencoding="unicode"\(aq exists in ADMX file (refs: \fI\%#39089\fP)
  204974. .UNINDENT
  204975. .IP \(bu 2
  204976. \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)
  204977. .INDENT 2.0
  204978. .IP \(bu 2
  204979. \fBPR\fP \fI\%#39090\fP: (\fI\%lomeroe\fP) Backport \fI\%#38783\fP to 2016.11
  204980. .IP \(bu 2
  204981. \fBPR\fP \fI\%#38783\fP: (\fI\%lomeroe\fP) Perform a "starts\-with" search to match ADML text names (refs: \fI\%#39090\fP)
  204982. .UNINDENT
  204983. .IP \(bu 2
  204984. \fBISSUE\fP \fI\%#38761\fP: (\fI\%DaveOHenry\fP) Cannot apply state that contains lgpo.set (refs: \fI\%#39083\fP, \fI\%#39088\fP)
  204985. .INDENT 2.0
  204986. .IP \(bu 2
  204987. \fBPR\fP \fI\%#39088\fP: (\fI\%lomeroe\fP) Backport \fI\%#37262\fP to 2016.11
  204988. .IP \(bu 2
  204989. \fBPR\fP \fI\%#37262\fP: (\fI\%lomeroe\fP) correct issues in win_lgpo module (refs: \fI\%#39088\fP)
  204990. .UNINDENT
  204991. .IP \(bu 2
  204992. \fBPR\fP \fI\%#39122\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204993. @ \fI2017\-02\-01 21:41:59 UTC\fP
  204994. .INDENT 2.0
  204995. .IP \(bu 2
  204996. 50d72da3f6 Merge pull request \fI\%#39122\fP from rallytime/merge\-2016.11
  204997. .IP \(bu 2
  204998. a782b00ee1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204999. .IP \(bu 2
  205000. cc9b69b6bc Merge pull request \fI\%#39091\fP from terminalmage/update\-test\-valid\-docs
  205001. .INDENT 2.0
  205002. .IP \(bu 2
  205003. d76f0380d0 add debug logging for batch vars
  205004. .IP \(bu 2
  205005. b4afea2a25 Don\(aqt fail test if data is empty
  205006. .IP \(bu 2
  205007. b3a5d549c1 Account for trimmed value in \(aqsalt \-d\(aq output
  205008. .IP \(bu 2
  205009. 909916c78e Run test_valid_docs in batches
  205010. .UNINDENT
  205011. .IP \(bu 2
  205012. bcee3d1ef6 Move fileclient tests to tests/integration/fileserver/fileclient_test.py (\fI\%#39081\fP)
  205013. .IP \(bu 2
  205014. 122422bc08 Bump openstack deprecation notice to Oxygen (\fI\%#39067\fP)
  205015. .UNINDENT
  205016. .IP \(bu 2
  205017. \fBPR\fP \fI\%#39087\fP: (\fI\%lomeroe\fP) Backport \fI\%#37375\fP to 2016.11
  205018. @ \fI2017\-02\-01 19:02:58 UTC\fP
  205019. .INDENT 2.0
  205020. .IP \(bu 2
  205021. \fBPR\fP \fI\%#37375\fP: (\fI\%lomeroe\fP) add updating gpt.ini file when ADM template policies are modified (gp… (refs: \fI\%#39087\fP)
  205022. .IP \(bu 2
  205023. f8a6863d98 Merge pull request \fI\%#39087\fP from lomeroe/bp\-37375
  205024. .IP \(bu 2
  205025. c3aaa536f3 _in_range_inclusive class method incorrectly called isinstance
  205026. .IP \(bu 2
  205027. ce263f9372 set_computer_policy and set_user_policy call "set" by the original function name (set) instead of the aliased function name set_
  205028. .IP \(bu 2
  205029. ff7d74bfb0 correct tool extension guid for user registry policies
  205030. .IP \(bu 2
  205031. 08f0078ef3 spelling correction
  205032. .IP \(bu 2
  205033. 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)
  205034. .UNINDENT
  205035. .IP \(bu 2
  205036. \fBPR\fP \fI\%#39094\fP: (\fI\%rallytime\fP) Add a bunch of missing doc module references
  205037. @ \fI2017\-02\-01 18:56:27 UTC\fP
  205038. .INDENT 2.0
  205039. .IP \(bu 2
  205040. c4c6e701af Merge pull request \fI\%#39094\fP from rallytime/doc\-build\-warnings
  205041. .IP \(bu 2
  205042. b866427f59 Add a bunch of missing doc module references
  205043. .UNINDENT
  205044. .IP \(bu 2
  205045. \fBPR\fP \fI\%#39108\fP: (\fI\%janhorstmann\fP) [Bugfix] Fix state x509.crl_managed
  205046. @ \fI2017\-02\-01 18:32:43 UTC\fP
  205047. .INDENT 2.0
  205048. .IP \(bu 2
  205049. d302bb747e Merge pull request \fI\%#39108\fP from janhorstmann/fix\-x509\-state
  205050. .IP \(bu 2
  205051. 9f5c532510 [Bugfix] Fix state x509.crl_managed
  205052. .UNINDENT
  205053. .IP \(bu 2
  205054. \fBISSUE\fP \fI\%#39100\fP: (\fI\%whytewolf\fP) salt\-run fileserver.update Exception (refs: \fI\%#39107\fP)
  205055. .IP \(bu 2
  205056. \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)
  205057. .IP \(bu 2
  205058. \fBISSUE\fP \fI\%#38638\fP: (\fI\%mirceaulinic\fP) \fIsalt.cmd\fP runner raises TypeError when function returns bool (refs: \fI\%#39107\fP)
  205059. .IP \(bu 2
  205060. \fBPR\fP \fI\%#39107\fP: (\fI\%mirceaulinic\fP) Check if data[\(aqreturn\(aq] is dict type
  205061. @ \fI2017\-02\-01 18:21:46 UTC\fP
  205062. .INDENT 2.0
  205063. .IP \(bu 2
  205064. bf61ec9515 Merge pull request \fI\%#39107\fP from cloudflare/FIX\-38638
  205065. .IP \(bu 2
  205066. 7c34815979 Check if data[\(aqreturn\(aq] is dict type
  205067. .UNINDENT
  205068. .IP \(bu 2
  205069. \fBISSUE\fP \fI\%#39065\fP: (\fI\%jak3kaj\fP) primary bonding option is not applied (refs: \fI\%#39068\fP, \fI\%#39069\fP)
  205070. .INDENT 2.0
  205071. .IP \(bu 2
  205072. \fBPR\fP \fI\%#39069\fP: (\fI\%jak3kaj\fP) Update primary bonding option in rh_ip.py
  205073. .UNINDENT
  205074. .IP \(bu 2
  205075. \fBISSUE\fP \fI\%#39065\fP: (\fI\%jak3kaj\fP) primary bonding option is not applied (refs: \fI\%#39068\fP, \fI\%#39069\fP)
  205076. .INDENT 2.0
  205077. .IP \(bu 2
  205078. \fBPR\fP \fI\%#39068\fP: (\fI\%jak3kaj\fP) Update primary bonding option in debian_ip.py
  205079. .UNINDENT
  205080. .IP \(bu 2
  205081. \fBISSUE\fP \fI\%#38704\fP: (\fI\%nasenbaer13\fP) Archive extracted fails when another state run is queued (refs: \fI\%#38705\fP)
  205082. .IP \(bu 2
  205083. \fBPR\fP \fI\%#39076\fP: (\fI\%terminalmage\fP) Re\-submit PR \fI\%#38705\fP against 2016.11 branch
  205084. @ \fI2017\-01\-31 20:11:55 UTC\fP
  205085. .INDENT 2.0
  205086. .IP \(bu 2
  205087. \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)
  205088. .IP \(bu 2
  205089. 9836d7dd29 Merge pull request \fI\%#39076\fP from terminalmage/pr\-38705
  205090. .IP \(bu 2
  205091. 15db8d47ed Fix for \fI\%#38704\fP archive extracted and dockerio states
  205092. .UNINDENT
  205093. .IP \(bu 2
  205094. \fBISSUE\fP \fI\%#39057\fP: (\fI\%sergeizv\fP) modules.linux_lvm.fullversion provides incomplete info (refs: \fI\%#39058\fP)
  205095. .IP \(bu 2
  205096. \fBPR\fP \fI\%#39058\fP: (\fI\%sergeizv\fP) Fix salt.modules.linux_lvm.fullversion
  205097. @ \fI2017\-01\-31 19:01:12 UTC\fP
  205098. .INDENT 2.0
  205099. .IP \(bu 2
  205100. 86b4b77bfe Merge pull request \fI\%#39058\fP from sergeizv/fix\-lvm\-fullversion
  205101. .IP \(bu 2
  205102. e46c89f9ed Fix salt.modules.linux_lvm.fullversion
  205103. .IP \(bu 2
  205104. fb7ef99838 Fix mock emulating lvm version
  205105. .UNINDENT
  205106. .IP \(bu 2
  205107. \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)
  205108. .IP \(bu 2
  205109. \fBPR\fP \fI\%#39066\fP: (\fI\%techhat\fP) 127.0.0.0/8 is all loopback
  205110. @ \fI2017\-01\-31 18:43:22 UTC\fP
  205111. .INDENT 2.0
  205112. .IP \(bu 2
  205113. 721b245f90 Merge pull request \fI\%#39066\fP from techhat/issue39051
  205114. .IP \(bu 2
  205115. ea43bb8101 127.0.0.0/8 is all loopback
  205116. .UNINDENT
  205117. .IP \(bu 2
  205118. \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)
  205119. .IP \(bu 2
  205120. \fBPR\fP \fI\%#39071\fP: (\fI\%sergeizv\fP) Fix modules.linux_lvm.pvcreate on existing LVM PVs
  205121. @ \fI2017\-01\-31 18:36:54 UTC\fP
  205122. .INDENT 2.0
  205123. .IP \(bu 2
  205124. c54d9f4e2a Merge pull request \fI\%#39071\fP from sergeizv/fix\-lvm\-pvcreate
  205125. .IP \(bu 2
  205126. f1e3e86e6a Fix modules.linux_lvm.pvcreate on existing LVM PVs
  205127. .IP \(bu 2
  205128. 0f84ca2487 Add test for modules.linux_lvm.pvcreate on existing LVM PVs
  205129. .IP \(bu 2
  205130. 3967992bfd Fix test for modules.linux_lvm.pvcreate
  205131. .UNINDENT
  205132. .IP \(bu 2
  205133. \fBPR\fP \fI\%#39048\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205134. @ \fI2017\-01\-31 15:55:49 UTC\fP
  205135. .INDENT 2.0
  205136. .IP \(bu 2
  205137. 88b171f863 Merge pull request \fI\%#39048\fP from rallytime/merge\-2016.11
  205138. .IP \(bu 2
  205139. b2b3989773 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205140. .INDENT 2.0
  205141. .IP \(bu 2
  205142. a24af5ac46 Merge pull request \fI\%#39047\fP from rallytime/merge\-2016.3
  205143. .INDENT 2.0
  205144. .IP \(bu 2
  205145. b732a1f646 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  205146. .IP \(bu 2
  205147. 56ccae6ff7 Add 2015.8.14 release notes file (\fI\%#39046\fP)
  205148. .IP \(bu 2
  205149. 5943fe65d3 Update 2015.8.13 release notes (\fI\%#39037\fP)
  205150. .UNINDENT
  205151. .IP \(bu 2
  205152. fef1b1133d Add 2016.3.6 release notes file (\fI\%#39045\fP)
  205153. .IP \(bu 2
  205154. 7c43f4ac32 [2016.3] Update release numbers for doc build (\fI\%#39042\fP)
  205155. .IP \(bu 2
  205156. ff324599d5 Update 2016.3.5 release notes (\fI\%#39038\fP)
  205157. .IP \(bu 2
  205158. 5b09dc4198 Merge pull request \fI\%#39028\fP from terminalmage/clarify\-delimiter\-argument
  205159. .INDENT 2.0
  205160. .IP \(bu 2
  205161. f29ef071f3 Clarify delimiter argument
  205162. .UNINDENT
  205163. .IP \(bu 2
  205164. 1ff359fa58 Add CLI Example for rest_sample_utils.get_test_string function (\fI\%#39030\fP)
  205165. .IP \(bu 2
  205166. f13fb9ef1e Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ availability in proxies. (\fI\%#38899\fP)
  205167. .UNINDENT
  205168. .IP \(bu 2
  205169. \fBPR\fP \fI\%#39035\fP: (\fI\%cro\fP) Add CLI Examples so tests will pass
  205170. .IP \(bu 2
  205171. \fBPR\fP \fI\%#39044\fP: (\fI\%rallytime\fP) Add 2016.11.3 release notes file
  205172. .IP \(bu 2
  205173. \fBPR\fP \fI\%#39040\fP: (\fI\%rallytime\fP) [2016.11] Update release numbers for doc build
  205174. .IP \(bu 2
  205175. \fBPR\fP \fI\%#39039\fP: (\fI\%rallytime\fP) Update 2016.11.2 release notes
  205176. .IP \(bu 2
  205177. \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)
  205178. .UNINDENT
  205179. .IP \(bu 2
  205180. \fBPR\fP \fI\%#39012\fP: (\fI\%terminalmage\fP) Fix "invalid lexer" errors in docs build
  205181. @ \fI2017\-01\-28 06:47:45 UTC\fP
  205182. .INDENT 2.0
  205183. .IP \(bu 2
  205184. e70904c480 Merge pull request \fI\%#39012\fP from terminalmage/invalid\-lexer
  205185. .IP \(bu 2
  205186. 868001baac Fix "invalid lexer" errors in docs build
  205187. .UNINDENT
  205188. .IP \(bu 2
  205189. \fBPR\fP \fI\%#39003\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205190. @ \fI2017\-01\-28 00:09:09 UTC\fP
  205191. .INDENT 2.0
  205192. .IP \(bu 2
  205193. cea0f32936 Merge pull request \fI\%#39003\fP from rallytime/merge\-2016.11
  205194. .IP \(bu 2
  205195. 76e95087fd Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205196. .IP \(bu 2
  205197. da96221741 Merge pull request \fI\%#38951\fP from DSRCorporation/bugs/37938_fix_depends_decorator_memleak
  205198. .INDENT 2.0
  205199. .IP \(bu 2
  205200. 0b18f34678 Keep the only one record per module\-function in depends decorator.
  205201. .UNINDENT
  205202. .IP \(bu 2
  205203. 85165edb70 Merge pull request \fI\%#38982\fP from rallytime/fix\-34780
  205204. .INDENT 2.0
  205205. .IP \(bu 2
  205206. 1583c5579a Set response when using "GET" method in s3 utils
  205207. .UNINDENT
  205208. .IP \(bu 2
  205209. cfdbc99e12 Merge pull request \fI\%#38989\fP from alprs/docfix\-state_pt3_environ
  205210. .INDENT 2.0
  205211. .IP \(bu 2
  205212. 52a9ad1c60 fix SLS in environment variable examples
  205213. .UNINDENT
  205214. .IP \(bu 2
  205215. 55e4d2572e Merge pull request \fI\%#39000\fP from rallytime/skip\-badload\-test
  205216. .INDENT 2.0
  205217. .IP \(bu 2
  205218. 4b3ff0fe0f Skip the test_badload test until Jenkins move is complete
  205219. .UNINDENT
  205220. .IP \(bu 2
  205221. fe054eb772 Merge pull request \fI\%#38995\fP from terminalmage/fix\-pillar.item\-docstring
  205222. .INDENT 2.0
  205223. .IP \(bu 2
  205224. 06d094dd8f Fix pillar.item docstring
  205225. .UNINDENT
  205226. .UNINDENT
  205227. .IP \(bu 2
  205228. \fBISSUE\fP \fI\%#38853\fP: (\fI\%bobrik\fP) file.serialize still expects show_diff instead of show_changes (refs: \fI\%#38908\fP)
  205229. .IP \(bu 2
  205230. \fBPR\fP \fI\%#38908\fP: (\fI\%bobrik\fP) Deprecate show_diff for file.serialize to mimic file.managed, closes \fI\%#38853\fP
  205231. @ \fI2017\-01\-27 17:15:37 UTC\fP
  205232. .INDENT 2.0
  205233. .IP \(bu 2
  205234. 58543d5cbf Merge pull request \fI\%#38908\fP from bobrik/show\-changes\-for\-serialize
  205235. .IP \(bu 2
  205236. e0af212c1b Remove unnecessary blank lines
  205237. .IP \(bu 2
  205238. a08c1ca530 Deprecate show_diff for file.serialize to mimic file.managed, closes \fI\%#38853\fP
  205239. .UNINDENT
  205240. .IP \(bu 2
  205241. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#1021\fP: (\fI\%sjorge\fP) salt\-bootstrap missing salt\-api.xml on smartos (refs: \fI\%#38978\fP)
  205242. .IP \(bu 2
  205243. \fBPR\fP \fI\%#38978\fP: (\fI\%sjorge\fP) fixes \fI\%saltstack/salt\-bootstrap#1021\fP
  205244. @ \fI2017\-01\-27 17:05:10 UTC\fP
  205245. .INDENT 2.0
  205246. .IP \(bu 2
  205247. 4b75dfac95 Merge pull request \fI\%#38978\fP from sjorge/2016.11\-bootstrap
  205248. .IP \(bu 2
  205249. 26eb35f99d fixes salt/salt\-bootstrap\(ga#1021\(ga_
  205250. .UNINDENT
  205251. .IP \(bu 2
  205252. \fBPR\fP \fI\%#38991\fP: (\fI\%isbm\fP) Isbm zypper state unknown pkg crash
  205253. @ \fI2017\-01\-27 16:59:38 UTC\fP
  205254. .INDENT 2.0
  205255. .IP \(bu 2
  205256. b40f369d98 Merge pull request \fI\%#38991\fP from isbm/isbm\-zypper\-state\-unknown\-pkg\-crash
  205257. .IP \(bu 2
  205258. 35f620e1c8 Prevent crash on unknown to the repo package
  205259. .UNINDENT
  205260. .IP \(bu 2
  205261. \fBPR\fP \fI\%#38979\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205262. @ \fI2017\-01\-26 22:56:13 UTC\fP
  205263. .INDENT 2.0
  205264. .IP \(bu 2
  205265. 3e76662166 Merge pull request \fI\%#38979\fP from rallytime/merge\-2016.11
  205266. .IP \(bu 2
  205267. fdaa5ac1b0 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205268. .IP \(bu 2
  205269. b66b6f6423 Merge pull request \fI\%#38950\fP from mbom2004/2016.3
  205270. .INDENT 2.0
  205271. .IP \(bu 2
  205272. c09f39d6c9 Remove unused json import
  205273. .IP \(bu 2
  205274. 249efa3068 Fixed Logstash Engine in file logstash.py
  205275. .UNINDENT
  205276. .IP \(bu 2
  205277. a6c6e47842 Handle changing "is_default" value in moto package for boto test mock (\fI\%#38973\fP)
  205278. .IP \(bu 2
  205279. b965b5dcc2 Merge pull request \fI\%#38952\fP from terminalmage/zd1168
  205280. .INDENT 2.0
  205281. .IP \(bu 2
  205282. 6b014e53fc Rename on_demand_pillar to on_demand_ext_pillar
  205283. .IP \(bu 2
  205284. d216f90c63 Document new on_demand_pillar option and add to config template
  205285. .IP \(bu 2
  205286. 426b20f02f Add documentation for on\-demand pillar to pillar.ext docstring
  205287. .IP \(bu 2
  205288. 7b10274b6b Make on\-demand ext_pillars tunable
  205289. .IP \(bu 2
  205290. d54723ccae Add on_demand_pillar config option
  205291. .UNINDENT
  205292. .IP \(bu 2
  205293. 2c4ad85a78 Merge pull request \fI\%#38948\fP from rallytime/bump\-template\-context\-deprecation
  205294. .INDENT 2.0
  205295. .IP \(bu 2
  205296. 749e0031d7 Bump the template context deprecation version to Oxygen
  205297. .UNINDENT
  205298. .IP \(bu 2
  205299. e4514ca7d8 Merge pull request \fI\%#38946\fP from rallytime/bp\-37632
  205300. .INDENT 2.0
  205301. .IP \(bu 2
  205302. ee37cdace9 Fix some lint
  205303. .IP \(bu 2
  205304. c08071e182 Fix versions report for server OSs
  205305. .UNINDENT
  205306. .IP \(bu 2
  205307. 953a20350a Merge pull request \fI\%#38913\fP from Adaephon\-GH/patch\-1
  205308. .INDENT 2.0
  205309. .IP \(bu 2
  205310. e2f4a16fdd Removing trailing whitespace
  205311. .IP \(bu 2
  205312. 616292c6b1 Ignore plist files without Label key
  205313. .UNINDENT
  205314. .IP \(bu 2
  205315. 826dce1059 Merge pull request \fI\%#38917\fP from twangboy/update_jinja_mac
  205316. .INDENT 2.0
  205317. .IP \(bu 2
  205318. 62e608b627 Update Jinja2 to 2.9.4
  205319. .UNINDENT
  205320. .IP \(bu 2
  205321. b27733cc33 Merge pull request \fI\%#38925\fP from terminalmage/issue38540
  205322. .INDENT 2.0
  205323. .IP \(bu 2
  205324. 76392fc6ad Fix traceback when a netapi module uses wheel_async
  205325. .IP \(bu 2
  205326. bd4474fa62 Fix \(aqsuccess\(aq value for wheel commands
  205327. .UNINDENT
  205328. .IP \(bu 2
  205329. 618596f0cc Merge pull request \fI\%#38926\fP from gtmanfred/2016.3
  205330. .INDENT 2.0
  205331. .IP \(bu 2
  205332. 9cae953c93 add note about pysss for pam eauth
  205333. .UNINDENT
  205334. .UNINDENT
  205335. .IP \(bu 2
  205336. \fBPR\fP \fI\%#38937\fP: (\fI\%arthru\fP) Fix smtp ret require gnupg
  205337. @ \fI2017\-01\-26 20:08:16 UTC\fP
  205338. .INDENT 2.0
  205339. .IP \(bu 2
  205340. 0660cc3cf2 Merge pull request \fI\%#38937\fP from HashBangDev/fix\-smtp\-ret\-require\-gnupg
  205341. .IP \(bu 2
  205342. 399556b9fe Remove trailing whitespace
  205343. .IP \(bu 2
  205344. f308d13a17 log an error on gnupg absence instead of raising an exception
  205345. .IP \(bu 2
  205346. 0427879d19 fails if gpgowner is set in smtp returner config but the installation lacks gnupg module
  205347. .IP \(bu 2
  205348. 27449c5a9b smtp returner does not require gnupg to be installed
  205349. .UNINDENT
  205350. .IP \(bu 2
  205351. \fBISSUE\fP \fI\%#38816\fP: (\fI\%grichmond\-salt\fP) Errors in cloud runners are not reliably being captured as failures. (refs: \fI\%#38955\fP)
  205352. .IP \(bu 2
  205353. \fBPR\fP \fI\%#38955\fP: (\fI\%techhat\fP) Do a better job at error detection in runners
  205354. @ \fI2017\-01\-26 20:00:18 UTC\fP
  205355. .INDENT 2.0
  205356. .IP \(bu 2
  205357. d947c5c449 Merge pull request \fI\%#38955\fP from techhat/issue38816
  205358. .IP \(bu 2
  205359. ea8654f400 Typo
  205360. .IP \(bu 2
  205361. 94050ff716 Watch out for bools
  205362. .IP \(bu 2
  205363. 0142b0bcb3 Do a better job at error detection in runners
  205364. .UNINDENT
  205365. .IP \(bu 2
  205366. \fBPR\fP \fI\%#38953\fP: (\fI\%thatch45\fP) fix an issue where thorium would remove keys of reattaching minions
  205367. @ \fI2017\-01\-26 19:15:59 UTC\fP
  205368. .INDENT 2.0
  205369. .IP \(bu 2
  205370. 04a5b05c36 Merge pull request \fI\%#38953\fP from thatch45/thorium_keyfix
  205371. .IP \(bu 2
  205372. 68e96b11ac This is faster and cleaner
  205373. .IP \(bu 2
  205374. 13d28a34a6 fix an issue where thorium would remove keys of reattaching minions
  205375. .IP \(bu 2
  205376. \fBPR\fP \fI\%#38972\fP: (\fI\%rallytime\fP) Add CLI Example for rest_sample_utils.get_test_string function (refs: \fI\%#39030\fP)
  205377. .UNINDENT
  205378. .IP \(bu 2
  205379. \fBPR\fP \fI\%#38957\fP: (\fI\%mcalmer\fP) Fix timezone handling for rpm installtime
  205380. @ \fI2017\-01\-26 18:41:15 UTC\fP
  205381. .INDENT 2.0
  205382. .IP \(bu 2
  205383. 27166fad4e Merge pull request \fI\%#38957\fP from mcalmer/fix\-rpm\-install_date\-timezone
  205384. .IP \(bu 2
  205385. c7da9f87b6 Fix timezone handling for rpm installtime
  205386. .UNINDENT
  205387. .IP \(bu 2
  205388. \fBPR\fP \fI\%#38965\fP: (\fI\%toanju\fP) salt\-cloud will use list_floating_ips for OpenStack
  205389. @ \fI2017\-01\-26 16:44:12 UTC\fP
  205390. .INDENT 2.0
  205391. .IP \(bu 2
  205392. \fBPR\fP \fI\%#34280\fP: (\fI\%kevinanderson1\fP) salt\-cloud will use list_floating_ips for Openstack (refs: \fI\%#38965\fP)
  205393. .IP \(bu 2
  205394. ec690a0a12 Merge pull request \fI\%#38965\fP from toanju/2016.11
  205395. .IP \(bu 2
  205396. 1253ce9b63 salt\-cloud will use list_floating_ips for OpenStack
  205397. .UNINDENT
  205398. .IP \(bu 2
  205399. \fBPR\fP \fI\%#38949\fP: (\fI\%clinta\fP) Use signing passphrase as public passphrase when generating self\-sign…
  205400. @ \fI2017\-01\-25 20:20:58 UTC\fP
  205401. .INDENT 2.0
  205402. .IP \(bu 2
  205403. d906e8fadb Merge pull request \fI\%#38949\fP from clinta/x509\-passphrase\-bug
  205404. .IP \(bu 2
  205405. c8697e38a8 Use signing passphrase as public passphrase when generating self\-signed certificates
  205406. .UNINDENT
  205407. .IP \(bu 2
  205408. \fBPR\fP \fI\%#38929\fP: (\fI\%MTecknology\fP) Fix psutil regressions in 2016.11
  205409. @ \fI2017\-01\-25 20:17:41 UTC\fP
  205410. .INDENT 2.0
  205411. .IP \(bu 2
  205412. de3b2cc97b Merge pull request \fI\%#38929\fP from MTecknology/2016.11
  205413. .IP \(bu 2
  205414. 73a8c6d121 Load core grains only if required.
  205415. .IP \(bu 2
  205416. 4966011cb5 Modules might still be needed, even if psutil loads.
  205417. .IP \(bu 2
  205418. fb0432fd21 Fixes a regression with old versions of python\-psutil.
  205419. .UNINDENT
  205420. .IP \(bu 2
  205421. \fBPR\fP \fI\%#38940\fP: (\fI\%isbm\fP) Isbm sanitizers fix and unit test
  205422. @ \fI2017\-01\-25 20:15:56 UTC\fP
  205423. .INDENT 2.0
  205424. .IP \(bu 2
  205425. 3ec806c003 Merge pull request \fI\%#38940\fP from isbm/isbm\-sanitizers\-fix\-and\-unit\-test
  205426. .IP \(bu 2
  205427. a112b790fe Fix typo
  205428. .IP \(bu 2
  205429. 47a16916c3 Add unit test
  205430. .IP \(bu 2
  205431. 046c5436eb Fix leading dots on sanitized hostname
  205432. .UNINDENT
  205433. .IP \(bu 2
  205434. \fBPR\fP \fI\%#38944\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205435. @ \fI2017\-01\-25 19:44:42 UTC\fP
  205436. .INDENT 2.0
  205437. .IP \(bu 2
  205438. e420763285 Merge pull request \fI\%#38944\fP from rallytime/merge\-2016.11
  205439. .IP \(bu 2
  205440. ee33a53a64 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205441. .INDENT 2.0
  205442. .IP \(bu 2
  205443. 405d86a2ca Merge pull request \fI\%#38847\fP from terminalmage/issue38825
  205444. .INDENT 2.0
  205445. .IP \(bu 2
  205446. 11a47803ce Use log.exception() instead
  205447. .IP \(bu 2
  205448. e40fac589a Catch MinionError in file.source_list
  205449. .UNINDENT
  205450. .IP \(bu 2
  205451. b5df104fc2 Merge pull request \fI\%#38875\fP from terminalmage/issue36121
  205452. .INDENT 2.0
  205453. .IP \(bu 2
  205454. fbc4d2a2c4 reactor: ensure glob_ref is a string
  205455. .IP \(bu 2
  205456. 2e443d79a3 cp.cache_file: add note re: return for nonexistant salt:// path
  205457. .UNINDENT
  205458. .IP \(bu 2
  205459. e9ebec4d80 Merge pull request \fI\%#38890\fP from cro/vmware_reset_vm_20163
  205460. .INDENT 2.0
  205461. .IP \(bu 2
  205462. 0146562fb4 Call correct function for resetting a VM
  205463. .UNINDENT
  205464. .IP \(bu 2
  205465. c3fbfcd231 Merge pull request \fI\%#38883\fP from techhat/dontrequire
  205466. .INDENT 2.0
  205467. .IP \(bu 2
  205468. 67bc4d6687 Don\(aqt require text_out path to exist
  205469. .UNINDENT
  205470. .IP \(bu 2
  205471. 6430a45196 Merge pull request \fI\%#38851\fP from terminalmage/docker\-py\-2.0
  205472. .INDENT 2.0
  205473. .IP \(bu 2
  205474. 3c061b21fe Support docker\-py 2.0 in dockerng
  205475. .UNINDENT
  205476. .IP \(bu 2
  205477. ac8008d843 Merge pull request \fI\%#38844\fP from cachedout/http_memory_leak
  205478. .INDENT 2.0
  205479. .IP \(bu 2
  205480. c46bf85518 Fix memory leak in HTTP client
  205481. .UNINDENT
  205482. .IP \(bu 2
  205483. dfe6dfe963 Merge pull request \fI\%#38823\fP from gtmanfred/2016.3
  205484. .INDENT 2.0
  205485. .IP \(bu 2
  205486. f0a71e8707 pass pillar to compound matcher in match module
  205487. .UNINDENT
  205488. .IP \(bu 2
  205489. a04ab86da1 Merge pull request \fI\%#38833\fP from Ch3LL/add_release_notes_2016.3.5
  205490. .IP \(bu 2
  205491. 374dc1ab88 skip 2016.3.5 due to :doc: references
  205492. .IP \(bu 2
  205493. 31f324c4ff add 2016.3.5 changelog to release notes
  205494. .UNINDENT
  205495. .UNINDENT
  205496. .IP \(bu 2
  205497. \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)
  205498. .IP \(bu 2
  205499. \fBISSUE\fP \fI\%#38557\fP: (\fI\%alexbleotu\fP) Proxy not working on develop (refs: \fI\%#38829\fP)
  205500. .IP \(bu 2
  205501. \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)
  205502. .IP \(bu 2
  205503. \fBISSUE\fP \fI\%#32918\fP: (\fI\%mirceaulinic\fP) Proxy minions reconnection (refs: \fI\%#38829\fP)
  205504. .IP \(bu 2
  205505. \fBPR\fP \fI\%#38900\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies.
  205506. @ \fI2017\-01\-25 19:36:48 UTC\fP
  205507. .INDENT 2.0
  205508. .IP \(bu 2
  205509. \fBPR\fP \fI\%#38899\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies. (refs: \fI\%#38900\fP)
  205510. .IP \(bu 2
  205511. \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)
  205512. .IP \(bu 2
  205513. \fBPR\fP \fI\%#37864\fP: (\fI\%mirceaulinic\fP) Proxy keepalive feature (refs: \fI\%#38829\fP)
  205514. .IP \(bu 2
  205515. bd4889ac73 Merge pull request \fI\%#38900\fP from cro/px_dunder_201611
  205516. .IP \(bu 2
  205517. 9a86fddfa1 Remove extra call to salt.loader.utils.
  205518. .IP \(bu 2
  205519. f4ba89735c Resolve merge conflict
  205520. .UNINDENT
  205521. .IP \(bu 2
  205522. \fBPR\fP \fI\%#38918\fP: (\fI\%thatch45\fP) Thorium typos
  205523. @ \fI2017\-01\-25 19:00:40 UTC\fP
  205524. .INDENT 2.0
  205525. .IP \(bu 2
  205526. f94b8798b6 Merge pull request \fI\%#38918\fP from thatch45/thorium_typos
  205527. .IP \(bu 2
  205528. 0b4aca9145 fix some minor typos in the thorium docs
  205529. .IP \(bu 2
  205530. 58a18e2b58 Add test= True to the master so that thorium does not stack trace
  205531. .UNINDENT
  205532. .IP \(bu 2
  205533. \fBISSUE\fP \fI\%#38543\fP: (\fI\%amendlik\fP) salt \-\-subset returns wrong number of minions (refs: \fI\%#38919\fP)
  205534. .IP \(bu 2
  205535. \fBPR\fP \fI\%#38919\fP: (\fI\%cachedout\fP) Correctly pass subset to cmd_subset
  205536. @ \fI2017\-01\-25 18:59:16 UTC\fP
  205537. .INDENT 2.0
  205538. .IP \(bu 2
  205539. 32fbb945b7 Merge pull request \fI\%#38919\fP from cachedout/issue_38543
  205540. .IP \(bu 2
  205541. a555de7c56 Correctly pass subset to cmd_subset
  205542. .UNINDENT
  205543. .IP \(bu 2
  205544. \fBPR\fP \fI\%#38922\fP: (\fI\%twangboy\fP) Fix 64bit detection, vcredist only on <= 2008
  205545. @ \fI2017\-01\-25 18:47:41 UTC\fP
  205546. .INDENT 2.0
  205547. .IP \(bu 2
  205548. 6b3c738bfd Merge pull request \fI\%#38922\fP from twangboy/fix_vcredist
  205549. .IP \(bu 2
  205550. 214e1cc598 Fix 64bit detection, vcredist only on <= 2008
  205551. .UNINDENT
  205552. .IP \(bu 2
  205553. \fBISSUE\fP \fI\%#38371\fP: (\fI\%syphernl\fP) [2016.11.1] Scheduled highstates not returning to master (refs: \fI\%#38923\fP)
  205554. .IP \(bu 2
  205555. \fBPR\fP \fI\%#38923\fP: (\fI\%DmitryKuzmenko\fP) Fixed broken __schedule_return handler.
  205556. @ \fI2017\-01\-25 18:45:30 UTC\fP
  205557. .INDENT 2.0
  205558. .IP \(bu 2
  205559. \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)
  205560. .IP \(bu 2
  205561. 954658523b Merge pull request \fI\%#38923\fP from DSRCorporation/bugs/38371_fix_schedule_return
  205562. .IP \(bu 2
  205563. b18f675486 Fixed broken __schedule_return handler.
  205564. .UNINDENT
  205565. .IP \(bu 2
  205566. \fBPR\fP \fI\%#38927\fP: (\fI\%l2ol33rt\fP) Adding explicit install of python\-systemd in jessie\-backports on Debian Guide
  205567. @ \fI2017\-01\-25 18:21:18 UTC\fP
  205568. .INDENT 2.0
  205569. .IP \(bu 2
  205570. 828e9bd8f9 Merge pull request \fI\%#38927\fP from l2ol33rt/debian_doc_fix
  205571. .IP \(bu 2
  205572. 9cc9c6110d Adding explicit call to python\-systemd in jessie\-backports
  205573. .UNINDENT
  205574. .IP \(bu 2
  205575. \fBISSUE\fP \fI\%#37413\fP: (\fI\%Snarfingcode666\fP) Salt\-cloud vmware missing reboot command (refs: \fI\%#38890\fP, \fI\%#38887\fP, \fI\%#38889\fP)
  205576. .IP \(bu 2
  205577. \fBPR\fP \fI\%#38889\fP: (\fI\%cro\fP) Backport \fI\%#38887\fP to 2016.11: Call correct function for resetting a VM
  205578. @ \fI2017\-01\-24 15:20:29 UTC\fP
  205579. .INDENT 2.0
  205580. .IP \(bu 2
  205581. \fBPR\fP \fI\%#38887\fP: (\fI\%cro\fP) Enable resetting a VM via salt\-cloud & VMware driver (refs: \fI\%#38890\fP, \fI\%#38889\fP)
  205582. .IP \(bu 2
  205583. 5ff5e97598 Merge pull request \fI\%#38889\fP from cro/vmware_reset_vm_201611
  205584. .IP \(bu 2
  205585. 76a9920a6b Call correct function for resetting a VM
  205586. .UNINDENT
  205587. .IP \(bu 2
  205588. \fBPR\fP \fI\%#38891\fP: (\fI\%UtahDave\fP) Proper function parameter default
  205589. @ \fI2017\-01\-24 15:06:09 UTC\fP
  205590. .INDENT 2.0
  205591. .IP \(bu 2
  205592. 53d0aa8855 Merge pull request \fI\%#38891\fP from UtahDave/fix_cassandra_protocol_version
  205593. .IP \(bu 2
  205594. c475609683 Proper function parameter default
  205595. .UNINDENT
  205596. .IP \(bu 2
  205597. \fBPR\fP \fI\%#38904\fP: (\fI\%terminalmage\fP) Add top file merging docs to the master config file documentation
  205598. @ \fI2017\-01\-24 14:59:26 UTC\fP
  205599. .INDENT 2.0
  205600. .IP \(bu 2
  205601. c680ee3174 Merge pull request \fI\%#38904\fP from terminalmage/docs
  205602. .IP \(bu 2
  205603. 42a3652620 Add top file merging docs to the master config file documentation
  205604. .UNINDENT
  205605. .IP \(bu 2
  205606. \fBPR\fP \fI\%#38885\fP: (\fI\%meaksh\fP) Increasing timeouts for running integrations tests
  205607. @ \fI2017\-01\-23 18:59:50 UTC\fP
  205608. .INDENT 2.0
  205609. .IP \(bu 2
  205610. 41a3055213 Merge pull request \fI\%#38885\fP from meaksh/2016.11\-fix\-tests\-issues
  205611. .IP \(bu 2
  205612. 4311b0b6de Increasing timeouts for running integrations tests
  205613. .UNINDENT
  205614. .IP \(bu 2
  205615. \fBPR\fP \fI\%#38639\fP: (\fI\%isbm\fP) Isbm disable custom roster for api 2016.11
  205616. @ \fI2017\-01\-23 18:59:11 UTC\fP
  205617. .INDENT 2.0
  205618. .IP \(bu 2
  205619. bde6d3eee7 Merge pull request \fI\%#38639\fP from isbm/isbm\-disable\-custom\-roster\-for\-api\-2016.11
  205620. .IP \(bu 2
  205621. ffbd45062e Explain what it is about and how to configure that
  205622. .UNINDENT
  205623. .UNINDENT
  205624. .SS Salt 2016.11.4 Release Notes
  205625. .sp
  205626. Version 2016.11.4 is a bugfix release for 2016.11.0\&.
  205627. .SS Statistics
  205628. .INDENT 0.0
  205629. .IP \(bu 2
  205630. Total Merges: \fB276\fP
  205631. .IP \(bu 2
  205632. Total Issue References: \fB63\fP
  205633. .IP \(bu 2
  205634. Total PR References: \fB223\fP
  205635. .IP \(bu 2
  205636. 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)
  205637. .UNINDENT
  205638. .SS AIX Support Expanded
  205639. .sp
  205640. AIX support has been added for the following execution modules:
  205641. .INDENT 0.0
  205642. .IP \(bu 2
  205643. \fBuser\fP
  205644. .IP \(bu 2
  205645. \fBgroup\fP
  205646. .IP \(bu 2
  205647. \fBnetwork\fP
  205648. .IP \(bu 2
  205649. \fBstatus\fP
  205650. .IP \(bu 2
  205651. \fBtimezone\fP
  205652. .UNINDENT
  205653. .sp
  205654. Additionally, AIX is now supported in the \fBdisk.iostat\fP remote\-execution function, and the \fBstatus\fP beacon is now supported.
  205655. .SS Minion Data Cache Enhancement
  205656. .sp
  205657. Memcache is now supported as a data store for the minion data cache.
  205658. .sp
  205659. Memcache is an additional cache layer that keeps a limited amount of data
  205660. fetched from the minion data cache for a limited period of time in memory that
  205661. makes cache operations faster. It doesn\(aqt make much sense for the \fBlocalfs\fP
  205662. cache driver but helps for more complex drivers like \fBconsul\fP\&.
  205663. .sp
  205664. For more details see \fBmemcache_expire_seconds\fP and other \fBmemcache_*\fP
  205665. options in the master config reverence.
  205666. .SS Docker Fixes
  205667. .INDENT 0.0
  205668. .IP \(bu 2
  205669. Docker authentication has been re\-organized. Instead of attempting a login
  205670. for each push/pull (which was unnecessary), a new function called
  205671. \fBdockerng.login\fP has been added, which
  205672. authenticates to the registry and adds the credential token to the
  205673. \fB~/.docker/config.json\fP\&. After upgrading, if you have not already performed
  205674. a \fBdocker login\fP on the minion using the docker CLI, you will need to run
  205675. \fBdockerng.login\fP to login. This only
  205676. needs to be done once.
  205677. .IP \(bu 2
  205678. A bug in resolving the tag name for images in a custom registry (where a
  205679. colon can appear in the image name, e.g.
  205680. \fBmyregistry.com:5000/image:tagname\fP) has been fixed. In previous releases,
  205681. Salt would use the colon to separate the tag name from the image name, and if
  205682. there was no colon, the default tag name of \fBlatest\fP would be assumed.
  205683. However, this caused custom registry images to be misidentified when no
  205684. explicit tag name was passed (e.g. \fBmyregistry.com:5000/image\fP). To work
  205685. around this in earlier releases, simply specify the tag name.
  205686. .UNINDENT
  205687. .SS Salt\-Cloud Fixes
  205688. .sp
  205689. 2016.11.0 added support for templating userdata files for the \fBec2\fP driver, using the \fBrenderer\fP option from
  205690. the master config file. However, as the default renderer first evaluates jinja
  205691. templating, followed by loading the data as a YAML dictionary, this results in
  205692. unpredictable results when userdata files are comprised of non\-YAML data (which
  205693. they generally are).
  205694. .sp
  205695. 2016.11.4 fixes this by only templating the userdata_file when it is explicitly
  205696. configured to do so. This is done by adding a new optional parameter to the
  205697. cloud profile called \fBuserdata_template\fP\&. This option is used in the same way
  205698. as the \fBtemplate\fP argument in \fBfile.managed\fP states, it is simply set to the desired templating
  205699. renderer:
  205700. .INDENT 0.0
  205701. .INDENT 3.5
  205702. .sp
  205703. .nf
  205704. .ft C
  205705. my\-ec2\-config:
  205706. # Pass userdata to the instance to be created
  205707. userdata_file: /etc/salt/my\-userdata\-file
  205708. userdata_template: jinja
  205709. .ft P
  205710. .fi
  205711. .UNINDENT
  205712. .UNINDENT
  205713. .sp
  205714. If no \fBuserdata_template\fP option is set in the cloud profile, then
  205715. salt\-cloud will check for the presence of the master configuration parameter
  205716. \fBuserdata_renderer\fP\&. If this is also not set, then no templating
  205717. will be performed on the userdata_file.
  205718. .sp
  205719. In addition, the other cloud drivers which support setting a \fBuserdata_file\fP
  205720. (\fBazurearm\fP, \fBnova\fP, and \fBopenstack\fP)
  205721. have had templating support added to bring them to feature parity with the ec2
  205722. driver\(aqs implementation of the \fBuserdata_file\fP option.
  205723. .SS Changelog for v2016.11.3..v2016.11.4
  205724. .sp
  205725. \fIGenerated at: 2018\-05\-27 19:46:47 UTC\fP
  205726. .INDENT 0.0
  205727. .IP \(bu 2
  205728. \fBPR\fP \fI\%#40708\fP: (\fI\%Ch3LL\fP) Add 2016.11.4 Release Note ChangeLog
  205729. @ \fI2017\-04\-14 22:12:57 UTC\fP
  205730. .INDENT 2.0
  205731. .IP \(bu 2
  205732. e5cd6086a7 Merge pull request \fI\%#40708\fP from Ch3LL/2016.11.4_release
  205733. .IP \(bu 2
  205734. d228fb6e02 Add 2016.11.4 Release Note ChangeLog
  205735. .UNINDENT
  205736. .IP \(bu 2
  205737. \fBPR\fP \fI\%#40685\fP: (\fI\%Ch3LL\fP) Fix errno code for filecache test for other operating systems.
  205738. @ \fI2017\-04\-14 16:54:25 UTC\fP
  205739. .INDENT 2.0
  205740. .IP \(bu 2
  205741. 77028a6c4e Merge pull request \fI\%#40685\fP from Ch3LL/fix_mac_file
  205742. .IP \(bu 2
  205743. 9ea6e8b456 remove io and change to EROFS
  205744. .IP \(bu 2
  205745. 688791ff60 remove try\-except and change errno
  205746. .IP \(bu 2
  205747. e30afc4c01 add exception type
  205748. .IP \(bu 2
  205749. acf333df08 change errno code for fileclient test
  205750. .UNINDENT
  205751. .IP \(bu 2
  205752. \fBISSUE\fP \fI\%#40688\fP: (\fI\%jbadson\fP) Syslog returner does not work with Python 2.6 (refs: \fI\%#40689\fP)
  205753. .IP \(bu 2
  205754. \fBPR\fP \fI\%#40689\fP: (\fI\%jbadson\fP) Fixes bug that prevents syslog returner from working under Python 2.6
  205755. @ \fI2017\-04\-14 10:45:13 UTC\fP
  205756. .INDENT 2.0
  205757. .IP \(bu 2
  205758. bc70772f9d Merge pull request \fI\%#40689\fP from jbadson/fix\-syslog\-returner
  205759. .IP \(bu 2
  205760. e5a3a7d217 Fixes bug that prevents syslog returner from working under Python 2.6
  205761. .UNINDENT
  205762. .IP \(bu 2
  205763. \fBISSUE\fP \fI\%#40658\fP: (\fI\%sebw\fP) State tomcat.war_deployed regression when WAR filename contains version (refs: \fI\%#40690\fP)
  205764. .IP \(bu 2
  205765. \fBPR\fP \fI\%#40690\fP: (\fI\%thor\fP) Fixes \fI\%#40658\fP: even clearer and working(!) Tomcat version handling
  205766. @ \fI2017\-04\-14 10:44:02 UTC\fP
  205767. .INDENT 2.0
  205768. .IP \(bu 2
  205769. 983d35ad38 Merge pull request \fI\%#40690\fP from thor/2016.11\-tomcat
  205770. .IP \(bu 2
  205771. 09145ea1a5 Fixes unindexed strfmt curly braces for python 2.6
  205772. .IP \(bu 2
  205773. b78fc46b91 Fixes \fI\%#40658\fP: clearer version handling
  205774. .UNINDENT
  205775. .IP \(bu 2
  205776. \fBPR\fP \fI\%#40686\fP: (\fI\%twangboy\fP) Fix \(aqsalt\-minion\(aq service for Win 10 Creators Update 1703
  205777. @ \fI2017\-04\-13 20:00:12 UTC\fP
  205778. .INDENT 2.0
  205779. .IP \(bu 2
  205780. 3cd9a50b22 Merge pull request \fI\%#40686\fP from twangboy/fix_service
  205781. .IP \(bu 2
  205782. b6ac4aa86d Fix service for win10 update
  205783. .UNINDENT
  205784. .IP \(bu 2
  205785. \fBPR\fP \fI\%#40675\fP: (\fI\%gtmanfred\fP) use loader for getting war version
  205786. @ \fI2017\-04\-13 19:58:30 UTC\fP
  205787. .INDENT 2.0
  205788. .IP \(bu 2
  205789. ad4d6839fd Merge pull request \fI\%#40675\fP from gtmanfred/2016.11
  205790. .IP \(bu 2
  205791. a61fc824c4 use loader for war extraction
  205792. .UNINDENT
  205793. .IP \(bu 2
  205794. \fBISSUE\fP \fI\%#38497\fP: (\fI\%chrisLeeTW\fP) local_batch client ignore external auth (refs: \fI\%#40598\fP)
  205795. .IP \(bu 2
  205796. \fBPR\fP \fI\%#40680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40598\fP to 2016.11
  205797. @ \fI2017\-04\-13 19:58:16 UTC\fP
  205798. .INDENT 2.0
  205799. .IP \(bu 2
  205800. \fBPR\fP \fI\%#40598\fP: (\fI\%mchugh19\fP) Ensure batch uses passed eauth token or credentials (refs: \fI\%#40680\fP)
  205801. .IP \(bu 2
  205802. 7ea526f59e Merge pull request \fI\%#40680\fP from rallytime/bp\-40598
  205803. .IP \(bu 2
  205804. cc1643eb1f Fix netapi lint
  205805. .IP \(bu 2
  205806. e790930f5a re\-add batch support to cherrypy saltapi
  205807. .IP \(bu 2
  205808. 6eec04b2db pop out of kwargs
  205809. .IP \(bu 2
  205810. 260dd84758 Create eauth dict for passing into batch class
  205811. .IP \(bu 2
  205812. 5fb8190d44 Ensure batch uses passed eauth token or credentials
  205813. .UNINDENT
  205814. .IP \(bu 2
  205815. \fBPR\fP \fI\%#40681\fP: (\fI\%cachedout\fP) Allow status beacon to run on all operating systems
  205816. @ \fI2017\-04\-13 19:33:10 UTC\fP
  205817. .INDENT 2.0
  205818. .IP \(bu 2
  205819. db68df23dd Merge pull request \fI\%#40681\fP from cachedout/status_beacon
  205820. .IP \(bu 2
  205821. ecbb0d186f Allow status beacon to run on all operating systems
  205822. .UNINDENT
  205823. .IP \(bu 2
  205824. \fBPR\fP \fI\%#40678\fP: (\fI\%Ch3LL\fP) fix test_fstype test for mac
  205825. @ \fI2017\-04\-13 19:20:32 UTC\fP
  205826. .INDENT 2.0
  205827. .IP \(bu 2
  205828. 39dd6e284d Merge pull request \fI\%#40678\fP from Ch3LL/fix_mac_fstype
  205829. .IP \(bu 2
  205830. 60724980ec fix test_fstype test for mac
  205831. .UNINDENT
  205832. .IP \(bu 2
  205833. \fBPR\fP \fI\%#40665\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35665\fP to 2016.11
  205834. @ \fI2017\-04\-12 21:06:36 UTC\fP
  205835. .INDENT 2.0
  205836. .IP \(bu 2
  205837. \fBPR\fP \fI\%#35665\fP: (\fI\%sthrasher\fP) Speed up /jobs for salt\-api when run under cherrypy. (refs: \fI\%#40665\fP)
  205838. .IP \(bu 2
  205839. 6df76f6687 Merge pull request \fI\%#40665\fP from rallytime/bp\-35665
  205840. .IP \(bu 2
  205841. 0f897b2426 Switch from comprehension to logic used in jobs runner. This makes it easier to deal with potential unicode in returns.
  205842. .IP \(bu 2
  205843. 78dd629f09 Fix compat issues with /jobs return values.
  205844. .IP \(bu 2
  205845. 4778bc7365 Speed up /jobs for salt\-api when run under cherrypy.
  205846. .UNINDENT
  205847. .IP \(bu 2
  205848. \fBPR\fP \fI\%#40666\fP: (\fI\%gtmanfred\fP) make sure userdata is always defined in ec2
  205849. @ \fI2017\-04\-12 21:06:00 UTC\fP
  205850. .INDENT 2.0
  205851. .IP \(bu 2
  205852. 3e41a248a5 Merge pull request \fI\%#40666\fP from gtmanfred/userdata
  205853. .IP \(bu 2
  205854. 5e92fd0948 make sure userdata is always defined in ec2
  205855. .UNINDENT
  205856. .IP \(bu 2
  205857. \fBPR\fP \fI\%#40662\fP: (\fI\%twangboy\fP) Backport msi\-conformant\-version function
  205858. @ \fI2017\-04\-12 18:49:23 UTC\fP
  205859. .INDENT 2.0
  205860. .IP \(bu 2
  205861. b245abbea5 Merge pull request \fI\%#40662\fP from twangboy/backport_msi_versioning
  205862. .IP \(bu 2
  205863. 825832812b Backport msi\-conformant\-version function
  205864. .UNINDENT
  205865. .IP \(bu 2
  205866. \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)
  205867. .IP \(bu 2
  205868. \fBPR\fP \fI\%#40551\fP: (\fI\%terminalmage\fP) Fix four issues in archive.extracted state
  205869. @ \fI2017\-04\-12 18:37:52 UTC\fP
  205870. .INDENT 2.0
  205871. .IP \(bu 2
  205872. 92b5f03beb Merge pull request \fI\%#40551\fP from terminalmage/issue39868
  205873. .IP \(bu 2
  205874. a722ca9ccf archive.extracted: also cleanup fileclient\(aqs cached location
  205875. .IP \(bu 2
  205876. 5ea1f607b0 Fix mocking in unit tests
  205877. .IP \(bu 2
  205878. 8dfa51f31f Moar fixes for source_hash_update
  205879. .IP \(bu 2
  205880. 7103707d49 Remove unnecessary versionadded lines
  205881. .IP \(bu 2
  205882. a717881f53 Just get a hash for the source archive
  205883. .IP \(bu 2
  205884. 9da4eb18bf Check hash of cached source against source_hash before downloading archive
  205885. .IP \(bu 2
  205886. ad24faa59d Fix three issues in archive.extracted state
  205887. .UNINDENT
  205888. .IP \(bu 2
  205889. \fBPR\fP \fI\%#40637\fP: (\fI\%twangboy\fP) Add unicode_literals import
  205890. @ \fI2017\-04\-12 16:55:03 UTC\fP
  205891. .INDENT 2.0
  205892. .IP \(bu 2
  205893. 0638418d22 Merge pull request \fI\%#40637\fP from twangboy/fix_unicode_issues
  205894. .IP \(bu 2
  205895. 021783dbae Add unicode_literals import
  205896. .UNINDENT
  205897. .IP \(bu 2
  205898. \fBPR\fP \fI\%#40651\fP: (\fI\%twangboy\fP) Fix status.diskusage for Windows on Py3
  205899. @ \fI2017\-04\-12 16:21:29 UTC\fP
  205900. .INDENT 2.0
  205901. .IP \(bu 2
  205902. 491661f323 Merge pull request \fI\%#40651\fP from twangboy/fix_diskusage_py3
  205903. .IP \(bu 2
  205904. 7c5079ec91 Correct capitalization problem with api call
  205905. .UNINDENT
  205906. .IP \(bu 2
  205907. \fBISSUE\fP \fI\%#40624\fP: (\fI\%sumeetisp\fP) Issue \- grains.append (refs: \fI\%#40631\fP)
  205908. .IP \(bu 2
  205909. \fBPR\fP \fI\%#40631\fP: (\fI\%gtmanfred\fP) if grain is defined as None still convert in append
  205910. @ \fI2017\-04\-12 16:19:16 UTC\fP
  205911. .INDENT 2.0
  205912. .IP \(bu 2
  205913. 3aabd85e53 Merge pull request \fI\%#40631\fP from gtmanfred/grains
  205914. .IP \(bu 2
  205915. b0bd99c26d add comment and unit test
  205916. .IP \(bu 2
  205917. b21bc7528f if grain is defined as None still convert in append
  205918. .UNINDENT
  205919. .IP \(bu 2
  205920. \fBISSUE\fP \fI\%#40167\fP: (\fI\%alias454\fP) file.replace diff results output showing additional characters (refs: \fI\%#40629\fP)
  205921. .IP \(bu 2
  205922. \fBPR\fP \fI\%#40629\fP: (\fI\%aabognah\fP) Fixing issue # 40167
  205923. @ \fI2017\-04\-11 22:45:08 UTC\fP
  205924. .INDENT 2.0
  205925. .IP \(bu 2
  205926. 3737289bee Merge pull request \fI\%#40629\fP from aabognah/fix\-bug\-40167
  205927. .IP \(bu 2
  205928. 28f7744cb6 Fixing issue # 40167 with file.replace where the diff output does not display correctly.
  205929. .UNINDENT
  205930. .IP \(bu 2
  205931. \fBPR\fP \fI\%#40646\fP: (\fI\%twangboy\fP) Keep network.py execution module
  205932. @ \fI2017\-04\-11 22:03:02 UTC\fP
  205933. .INDENT 2.0
  205934. .IP \(bu 2
  205935. 2a22bea290 Merge pull request \fI\%#40646\fP from twangboy/fix_win_network
  205936. .IP \(bu 2
  205937. 0f7a81cd34 Keep network.py execution module
  205938. .UNINDENT
  205939. .IP \(bu 2
  205940. \fBPR\fP \fI\%#40645\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205941. @ \fI2017\-04\-11 20:59:13 UTC\fP
  205942. .INDENT 2.0
  205943. .IP \(bu 2
  205944. e1f5a5dfc3 Merge pull request \fI\%#40645\fP from rallytime/merge\-2016.11
  205945. .IP \(bu 2
  205946. 8de6497933 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205947. .INDENT 2.0
  205948. .IP \(bu 2
  205949. 2ae9eaa176 Merge pull request \fI\%#40638\fP from rallytime/bp\-40571
  205950. .INDENT 2.0
  205951. .IP \(bu 2
  205952. 2d1c4be2df pkgrepo.managed: properly handle comments for debian
  205953. .UNINDENT
  205954. .UNINDENT
  205955. .UNINDENT
  205956. .IP \(bu 2
  205957. \fBISSUE\fP \fI\%#40594\fP: (\fI\%anlutro\fP) salt\-ssh file.recurse adds a lot of unwanted directories (refs: \fI\%#40642\fP)
  205958. .IP \(bu 2
  205959. \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)
  205960. .IP \(bu 2
  205961. \fBPR\fP \fI\%#40642\fP: (\fI\%DmitryKuzmenko\fP) Correctly resolve relative cache path to absolute.
  205962. @ \fI2017\-04\-11 20:43:57 UTC\fP
  205963. .INDENT 2.0
  205964. .IP \(bu 2
  205965. \fBPR\fP \fI\%#40442\fP: (\fI\%gtmanfred\fP) allow file_client to figure out cachedir (refs: \fI\%#40642\fP)
  205966. .IP \(bu 2
  205967. 6c4ae3c914 Merge pull request \fI\%#40642\fP from DSRCorporation/bugs/40594_ssh_cachedir
  205968. .IP \(bu 2
  205969. 055256c518 Correctly resolve relative cache path to absolute.
  205970. .UNINDENT
  205971. .IP \(bu 2
  205972. \fBISSUE\fP \fI\%#40075\fP: (\fI\%afletch\fP) salt\-ssh temporary files \- insecure permissions (refs: \fI\%#40609\fP)
  205973. .IP \(bu 2
  205974. \fBPR\fP \fI\%#40609\fP: (\fI\%gtmanfred\fP) stat_file when keep is set, instead of mirroring all file permissions
  205975. @ \fI2017\-04\-11 18:48:47 UTC\fP
  205976. .INDENT 2.0
  205977. .IP \(bu 2
  205978. 8492cef7a5 Merge pull request \fI\%#40609\fP from gtmanfred/2016.11
  205979. .IP \(bu 2
  205980. 6e34c2b5e5 stat file when placing it on server instead of caching
  205981. .UNINDENT
  205982. .IP \(bu 2
  205983. \fBPR\fP \fI\%#40620\fP: (\fI\%mateiw\fP) SUSE specific changes to salt\-api.service
  205984. @ \fI2017\-04\-11 14:45:00 UTC\fP
  205985. .INDENT 2.0
  205986. .IP \(bu 2
  205987. 05ac613ecf Merge pull request \fI\%#40620\fP from mateiw/2016.11\-suse\-saltapi\-service
  205988. .IP \(bu 2
  205989. ee911a74b4 suse specific changes to salt\-api.service
  205990. .UNINDENT
  205991. .IP \(bu 2
  205992. \fBISSUE\fP \fI\%#39463\fP: (\fI\%githubcdr\fP) Transport TCP minions don\(aqt reconnect/recover (refs: \fI\%#40614\fP)
  205993. .IP \(bu 2
  205994. \fBPR\fP \fI\%#40614\fP: (\fI\%gtmanfred\fP) add retries on authentications of the salt minion reconnecting
  205995. @ \fI2017\-04\-10 22:42:16 UTC\fP
  205996. .INDENT 2.0
  205997. .IP \(bu 2
  205998. b0a2414d68 Merge pull request \fI\%#40614\fP from gtmanfred/tcp
  205999. .IP \(bu 2
  206000. a86b101ae6 add retries on authentications of the salt minion reconnecting
  206001. .UNINDENT
  206002. .IP \(bu 2
  206003. \fBPR\fP \fI\%#40606\fP: (\fI\%kaszuba\fP) Use correct exec_driver in dockerng.sls module
  206004. @ \fI2017\-04\-10 22:25:31 UTC\fP
  206005. .INDENT 2.0
  206006. .IP \(bu 2
  206007. f7e121a9ee Merge pull request \fI\%#40606\fP from kaszuba/fix\-dockerng\-sls
  206008. .IP \(bu 2
  206009. 3a0d61f108 Use correct exec_driver in dockerng.sls module
  206010. .UNINDENT
  206011. .IP \(bu 2
  206012. \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)
  206013. .IP \(bu 2
  206014. \fBPR\fP \fI\%#40615\fP: (\fI\%rallytime\fP) Call out to _pki_minions() once, rather than in a loop in _check_list_minions()
  206015. @ \fI2017\-04\-10 22:22:18 UTC\fP
  206016. .INDENT 2.0
  206017. .IP \(bu 2
  206018. \fBPR\fP \fI\%#34920\fP: (\fI\%cachedout\fP) Key cache (refs: \fI\%#40615\fP)
  206019. .IP \(bu 2
  206020. b6cf948afe Merge pull request \fI\%#40615\fP from rallytime/fix\-39863
  206021. .IP \(bu 2
  206022. 1a9f03ab92 Call out to _pki_minions() once, rather than in a loop in _check_list_minions()
  206023. .UNINDENT
  206024. .IP \(bu 2
  206025. \fBPR\fP \fI\%#40588\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206026. @ \fI2017\-04\-07 19:30:14 UTC\fP
  206027. .INDENT 2.0
  206028. .IP \(bu 2
  206029. 4fa58be222 Merge pull request \fI\%#40588\fP from rallytime/merge\-2016.11
  206030. .IP \(bu 2
  206031. 5a419b8aae Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206032. .IP \(bu 2
  206033. 83f6d3d3bb Merge pull request \fI\%#40567\fP from terminalmage/fix\-pillar\-get\-merge\-lists
  206034. .INDENT 2.0
  206035. .IP \(bu 2
  206036. cb4db56eb5 Allow pillar.get to merge list as well as dictionaries
  206037. .UNINDENT
  206038. .IP \(bu 2
  206039. a8304cd5a1 Merge pull request \fI\%#40552\fP from terminalmage/fix\-hash\-type\-refs
  206040. .INDENT 2.0
  206041. .IP \(bu 2
  206042. 8c61f333ae Don\(aqt use __opts__.get() for hash_type
  206043. .UNINDENT
  206044. .IP \(bu 2
  206045. 705e1d8a08 Merge pull request \fI\%#40562\fP from terminalmage/fix\-get\-client
  206046. .INDENT 2.0
  206047. .IP \(bu 2
  206048. 7f1ef72f83 Fix dockerng _get_client() regression
  206049. .UNINDENT
  206050. .IP \(bu 2
  206051. 00f8ef0c55 Merge pull request \fI\%#40548\fP from Ch3LL/fix_vultrpy
  206052. .INDENT 2.0
  206053. .IP \(bu 2
  206054. 7710355e3a check for salt install fail on vultur test
  206055. .IP \(bu 2
  206056. aae3d14ea4 fix vultr cloud race condition to match on 0*
  206057. .UNINDENT
  206058. .UNINDENT
  206059. .IP \(bu 2
  206060. \fBPR\fP \fI\%#40575\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40559\fP to 2016.11
  206061. @ \fI2017\-04\-07 15:42:26 UTC\fP
  206062. .INDENT 2.0
  206063. .IP \(bu 2
  206064. \fBPR\fP \fI\%#40559\fP: (\fI\%jinm\fP) Fix v3 for \fI\%https://github.com/saltstack/salt/issues/38472\fP (refs: \fI\%#40575\fP)
  206065. .IP \(bu 2
  206066. 3d07f637ca Merge pull request \fI\%#40575\fP from rallytime/bp\-40559
  206067. .IP \(bu 2
  206068. 8280e5256e Fix v3 for \fI\%https://github.com/saltstack/salt/issues/38472\fP
  206069. .UNINDENT
  206070. .IP \(bu 2
  206071. \fBPR\fP \fI\%#40576\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40573\fP to 2016.11
  206072. @ \fI2017\-04\-07 15:20:11 UTC\fP
  206073. .INDENT 2.0
  206074. .IP \(bu 2
  206075. \fBPR\fP \fI\%#40573\fP: (\fI\%ardakuyumcu\fP) Fix typo in IAM state for managed policies (refs: \fI\%#40576\fP)
  206076. .IP \(bu 2
  206077. 9041ca2ba5 Merge pull request \fI\%#40576\fP from rallytime/bp\-40573
  206078. .IP \(bu 2
  206079. 12180808ee Fix typo in IAM state for managed policies
  206080. .UNINDENT
  206081. .IP \(bu 2
  206082. \fBPR\fP \fI\%#40563\fP: (\fI\%terminalmage\fP) Merge\-forward 2016.3 \-> 2016.11
  206083. @ \fI2017\-04\-07 15:08:20 UTC\fP
  206084. .INDENT 2.0
  206085. .IP \(bu 2
  206086. \fBPR\fP \fI\%#40562\fP: (\fI\%terminalmage\fP) Fix dockerng _get_client() regression (refs: \fI\%#40563\fP)
  206087. .IP \(bu 2
  206088. \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)
  206089. .IP \(bu 2
  206090. \fBPR\fP \fI\%#40480\fP: (\fI\%terminalmage\fP) Improved Docker auth handling and other misc. Docker improvements (refs: \fI\%#40481\fP)
  206091. .IP \(bu 2
  206092. f8bc423ef9 Merge pull request \fI\%#40563\fP from terminalmage/merge\-2016.3\-2016.11
  206093. .IP \(bu 2
  206094. 0c608d7417 Add client_args_mock back to test
  206095. .IP \(bu 2
  206096. a7a78da984 remove unused imports
  206097. .IP \(bu 2
  206098. a6d68f50fe Merge remote\-tracking branch \(aqupstream/2016.3\(aq into merge\-2016.3\-2016.11
  206099. .INDENT 2.0
  206100. .IP \(bu 2
  206101. 0918311330 Don\(aqt mark files that already were deleted as errors
  206102. .IP \(bu 2
  206103. 51d88a16c8 Merge branch \(aqzer0def\-fix\-31363\(aq into 2016.3
  206104. .INDENT 2.0
  206105. .IP \(bu 2
  206106. 7f3cbd5cf9 Merge branch \(aqfix\-31363\(aq of \fI\%https://github.com/zer0def/salt\fP into zer0def\-fix\-31363
  206107. .IP \(bu 2
  206108. 3c750c2b24 Changed rm_rf\(aqs argument to actually remove intended file. (refs \fI\%#31363\fP)
  206109. .IP \(bu 2
  206110. 9ed85f3c59 Remove directory content instead of directory itself when using \fIforce_clone\fP in \fIgit.latest\fP state. (refs \fI\%#31363\fP)
  206111. .UNINDENT
  206112. .IP \(bu 2
  206113. cfba4cb422 Merge pull request \fI\%#40534\fP from terminalmage/issue39892
  206114. .INDENT 2.0
  206115. .IP \(bu 2
  206116. ad88c58a09 Check master\(aqs ssh_minion_opts for fileserver/pillar values and ignore them
  206117. .UNINDENT
  206118. .IP \(bu 2
  206119. 8da27c9e1d Merge pull request \fI\%#40306\fP from terminalmage/issue40279
  206120. .INDENT 2.0
  206121. .IP \(bu 2
  206122. 57ace1f336 Merge branch \(aqissue40279\(aq of \fI\%https://github.com/terminalmage/salt\fP into issue40279
  206123. .INDENT 2.0
  206124. .IP \(bu 2
  206125. 8bcdf1a761 Remove unused import for lint
  206126. .UNINDENT
  206127. .IP \(bu 2
  206128. 808ad76419 systemd.py: when getting all services, don\(aqt repeat gathering of systemd services
  206129. .IP \(bu 2
  206130. 2d219af67a Don\(aqt use context caching for gathering systemd services
  206131. .UNINDENT
  206132. .IP \(bu 2
  206133. 97caac4c0a Merge pull request \fI\%#40481\fP from terminalmage/docker\-auth\-handling\-2016.3
  206134. .INDENT 2.0
  206135. .IP \(bu 2
  206136. dcef1e0d4b Make sure we keep the cached client when clearing context
  206137. .IP \(bu 2
  206138. 1e2a04cfc5 Backport auth and custom registry fixes from \fI\%#40480\fP to 2016.3 branch
  206139. .UNINDENT
  206140. .IP \(bu 2
  206141. e62603d5eb Merge pull request \fI\%#40505\fP from gtmanfred/2016.3
  206142. .INDENT 2.0
  206143. .IP \(bu 2
  206144. 6e2f9080ca update docs for logging handlers
  206145. .UNINDENT
  206146. .UNINDENT
  206147. .UNINDENT
  206148. .IP \(bu 2
  206149. \fBISSUE\fP \fI\%#39778\fP: (\fI\%Talkless\fP) pkgrepo.managed state always report changes with test=True on APT system (refs: \fI\%#40571\fP)
  206150. .IP \(bu 2
  206151. \fBPR\fP \fI\%#40571\fP: (\fI\%terminalmage\fP) pkgrepo.managed: properly handle comments for debian (refs: \fI\%#40638\fP)
  206152. @ \fI2017\-04\-06 21:55:46 UTC\fP
  206153. .INDENT 2.0
  206154. .IP \(bu 2
  206155. fd757fffa3 Merge pull request \fI\%#40571\fP from terminalmage/issue39778
  206156. .IP \(bu 2
  206157. 191610482d pkgrepo.managed: properly handle comments for debian
  206158. .UNINDENT
  206159. .IP \(bu 2
  206160. \fBISSUE\fP \fI\%#40278\fP: (\fI\%UtahDave\fP) cloud.action giving errors on 2016.11.1 (refs: \fI\%#40572\fP)
  206161. .IP \(bu 2
  206162. \fBPR\fP \fI\%#40572\fP: (\fI\%rallytime\fP) Clean out kwargs dict in cloud.action before calling cloud driver function
  206163. @ \fI2017\-04\-06 21:53:40 UTC\fP
  206164. .INDENT 2.0
  206165. .IP \(bu 2
  206166. b1698e830e Merge pull request \fI\%#40572\fP from rallytime/fix\-40278
  206167. .IP \(bu 2
  206168. c978486452 Clean out kwargs dict in cloud.action before calling cloud driver function
  206169. .UNINDENT
  206170. .IP \(bu 2
  206171. \fBISSUE\fP \fI\%#39842\fP: (\fI\%smarsching\fP) File module removes trailing newline on Windows (refs: \fI\%#39882\fP)
  206172. .IP \(bu 2
  206173. \fBPR\fP \fI\%#39882\fP: (\fI\%smarsching\fP) Fix handling of trailing newlines on Windows
  206174. @ \fI2017\-04\-06 21:12:24 UTC\fP
  206175. .INDENT 2.0
  206176. .IP \(bu 2
  206177. 62d8ad2b4b Merge pull request \fI\%#39882\fP from smarsching/issue\-39842
  206178. .IP \(bu 2
  206179. d485d1af44 Fix context for _splitlines_preserving_trailing_newline.
  206180. .IP \(bu 2
  206181. 76cb7bf612 Fix trailing newlines on Windows (\fI\%#39842\fP).
  206182. .UNINDENT
  206183. .IP \(bu 2
  206184. \fBPR\fP \fI\%#40451\fP: (\fI\%isbm\fP) Fileclient testcase (2016.11)
  206185. @ \fI2017\-04\-06 19:53:31 UTC\fP
  206186. .INDENT 2.0
  206187. .IP \(bu 2
  206188. ae13de622a Merge pull request \fI\%#40451\fP from isbm/isbm\-fileclient\-testcase\-2016.11
  206189. .IP \(bu 2
  206190. 74c65557dd Add space before in\-lint comment for lint
  206191. .IP \(bu 2
  206192. 35fcb8b52d Fix race condition on cache directory creation
  206193. .IP \(bu 2
  206194. aba94495a5 Lintfix (Py3 code compat)
  206195. .IP \(bu 2
  206196. 9f9dc6e4e7 Add unit test case for fileclient
  206197. .UNINDENT
  206198. .IP \(bu 2
  206199. \fBISSUE\fP \fI\%#40084\fP: (\fI\%podstava\fP) profile fields in azurearm salt\-cloud need to be actualized to sources (refs: \fI\%#40564\fP)
  206200. .IP \(bu 2
  206201. \fBPR\fP \fI\%#40564\fP: (\fI\%techhat\fP) Update Azure ARM docs
  206202. @ \fI2017\-04\-06 18:17:32 UTC\fP
  206203. .INDENT 2.0
  206204. .IP \(bu 2
  206205. 74366c57a4 Merge pull request \fI\%#40564\fP from techhat/azuredocs
  206206. .IP \(bu 2
  206207. 08d071bc68 Update Azure ARM docs
  206208. .UNINDENT
  206209. .IP \(bu 2
  206210. \fBISSUE\fP \fI\%#40005\fP: (\fI\%vutny\fP) \fIssh_known_hosts.present\fP does not support SHA256 key fingerprints (refs: \fI\%#40543\fP)
  206211. .IP \(bu 2
  206212. \fBPR\fP \fI\%#40543\fP: (\fI\%rallytime\fP) Add the "fingerprint_hash_type" option to ssh state and module
  206213. @ \fI2017\-04\-05 21:21:16 UTC\fP
  206214. .INDENT 2.0
  206215. .IP \(bu 2
  206216. cb9dcb1e1b Merge pull request \fI\%#40543\fP from rallytime/fix\-40005
  206217. .IP \(bu 2
  206218. 1ef81e6a55 Add the "fingerprint_hash_type" option to ssh state and module
  206219. .UNINDENT
  206220. .IP \(bu 2
  206221. \fBPR\fP \fI\%#40540\fP: (\fI\%DmitryKuzmenko\fP) A quick fix for Cache has no \(aqlist\(aq attribute.
  206222. @ \fI2017\-04\-05 18:50:18 UTC\fP
  206223. .INDENT 2.0
  206224. .IP \(bu 2
  206225. \fBPR\fP \fI\%#40494\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2016.11 to develop (refs: \fI\%#40540\fP)
  206226. .IP \(bu 2
  206227. 3f0695575a Merge pull request \fI\%#40540\fP from DSRCorporation/bugs/40494_merge_forward_cache_list_fix
  206228. .IP \(bu 2
  206229. c0fd5634cf A quick fix for Cache has no \(aqlist\(aq attribute.
  206230. .UNINDENT
  206231. .IP \(bu 2
  206232. \fBISSUE\fP \fI\%#32662\fP: (\fI\%anlutro\fP) salt\-cloud: allow templating of EC2 userdata, similar to deploy script (refs: \fI\%#32698\fP)
  206233. .IP \(bu 2
  206234. \fBPR\fP \fI\%#40464\fP: (\fI\%terminalmage\fP) salt\-cloud: Do not pass userdata_file through yaml renderer
  206235. @ \fI2017\-04\-05 17:32:07 UTC\fP
  206236. .INDENT 2.0
  206237. .IP \(bu 2
  206238. \fBPR\fP \fI\%#32698\fP: (\fI\%techhat\fP) Allow EC2 userdata to be templated (refs: \fI\%#40464\fP)
  206239. .IP \(bu 2
  206240. 28fc048030 Merge pull request \fI\%#40464\fP from terminalmage/userdata\-renderer
  206241. .IP \(bu 2
  206242. 84ee693006 Nova and openstack don\(aqt accept base64\-encoded userdata
  206243. .IP \(bu 2
  206244. 73f4c43e2a Allow for userdata_template to be disabled in a cloud_profile
  206245. .IP \(bu 2
  206246. 78b4798b1b Update compile_template test to use StringIO
  206247. .IP \(bu 2
  206248. 5f7c5613ce Properly handle renderers which return StringIO objects
  206249. .IP \(bu 2
  206250. d551b0d857 Bring in salt.utils.stringio from develop branch
  206251. .IP \(bu 2
  206252. 6a6ef0adf8 Move userdata templating to salt.utils.cloud
  206253. .IP \(bu 2
  206254. b440d0c679 Update 2016.11.4 release notes for userdata_renderer \-> userdata_template
  206255. .IP \(bu 2
  206256. a6183d93d3 Preserve windows newlines in salt.template.compile_template()
  206257. .IP \(bu 2
  206258. 04f02df5fe Try to read compiled template as StringIO
  206259. .IP \(bu 2
  206260. 79cc253bbf Only template the userdata_file if explicitly configured to do so
  206261. .IP \(bu 2
  206262. b580654f85 Update cloud docs to reflect userdata_renderer \-> userdata_template
  206263. .IP \(bu 2
  206264. a6064fb2e4 Rename userdata_renderer \-> userdata_template in master config docs
  206265. .IP \(bu 2
  206266. 50f2b2831f Remove userdata_renderer value
  206267. .IP \(bu 2
  206268. cc2186f35a Add templating support for other cloud drivers that support userdata_file
  206269. .IP \(bu 2
  206270. be8d34c59b ec2: Add support for using userdata_renderer to template userdata_file
  206271. .IP \(bu 2
  206272. eddbd41265 Openstack did not have templating support for userdata_file before 2016.11.4
  206273. .IP \(bu 2
  206274. a85a416c72 Add userdata_renderer fix info to 2016.11.4 release notes
  206275. .IP \(bu 2
  206276. 111188742a Add documentation for userdata_renderer
  206277. .IP \(bu 2
  206278. 9ee2dcfc2d Add userdata_renderer master config param
  206279. .UNINDENT
  206280. .IP \(bu 2
  206281. \fBPR\fP \fI\%#40530\fP: (\fI\%dmurphy18\fP) Update release information for 2016.11.4 for additional AIX support
  206282. @ \fI2017\-04\-05 16:20:22 UTC\fP
  206283. .INDENT 2.0
  206284. .IP \(bu 2
  206285. 990bde4c07 Merge pull request \fI\%#40530\fP from dmurphy18/aix_docupd
  206286. .IP \(bu 2
  206287. fd93caf206 Added further support for functionality on AIX for 2016.11.4
  206288. .IP \(bu 2
  206289. 17b58917f2 Update release information for new AIX support
  206290. .UNINDENT
  206291. .IP \(bu 2
  206292. \fBPR\fP \fI\%#40528\fP: (\fI\%dmurphy18\fP) Allow for nightly build designations in Salt versions
  206293. @ \fI2017\-04\-04 20:34:26 UTC\fP
  206294. .INDENT 2.0
  206295. .IP \(bu 2
  206296. 4d932691f1 Merge pull request \fI\%#40528\fP from dmurphy18/salt_nightlybuild
  206297. .IP \(bu 2
  206298. d62a119fc1 Allow for nightly build designations in Salt versions
  206299. .UNINDENT
  206300. .IP \(bu 2
  206301. \fBISSUE\fP \fI\%#37699\fP: (\fI\%gstachowiak\fP) Artifactory state. Incorrect timeout error reporting. (refs: \fI\%#40465\fP)
  206302. .IP \(bu 2
  206303. \fBPR\fP \fI\%#40465\fP: (\fI\%rallytime\fP) Artifactory Execution & State Module: Fixup Error Handling
  206304. @ \fI2017\-04\-04 20:12:21 UTC\fP
  206305. .INDENT 2.0
  206306. .IP \(bu 2
  206307. 0ed385210f Merge pull request \fI\%#40465\fP from rallytime/fix\-37699
  206308. .IP \(bu 2
  206309. 8f084f7056 Update unit test to look for actual string comment
  206310. .IP \(bu 2
  206311. ef664b46ae Artifactory State: Only wrap main function call to module in try/except and wrap exc comment in str()
  206312. .IP \(bu 2
  206313. f1015e3900 Artifactory Module: catch URLErrors as well as HTTPErrors
  206314. .UNINDENT
  206315. .IP \(bu 2
  206316. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  206317. .IP \(bu 2
  206318. \fBPR\fP \fI\%#40497\fP: (\fI\%DmitryKuzmenko\fP) Memcache documentation and minor updates.
  206319. @ \fI2017\-04\-04 19:55:18 UTC\fP
  206320. .INDENT 2.0
  206321. .IP \(bu 2
  206322. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  206323. .IP \(bu 2
  206324. 7a04ed2439 Merge pull request \fI\%#40497\fP from DSRCorporation/features/39275_memcache
  206325. .IP \(bu 2
  206326. 82c45b1a52 Memcache documentation and minor updates.
  206327. .UNINDENT
  206328. .IP \(bu 2
  206329. \fBISSUE\fP \fI\%#38683\fP: (\fI\%gstachowiak\fP) require/order/failhard combination error (refs: \fI\%#40504\fP)
  206330. .IP \(bu 2
  206331. \fBPR\fP \fI\%#40504\fP: (\fI\%rallytime\fP) Group checks for failhard setting in () in state.check_failhard function
  206332. @ \fI2017\-04\-04 19:53:48 UTC\fP
  206333. .INDENT 2.0
  206334. .IP \(bu 2
  206335. d654de52ed Merge pull request \fI\%#40504\fP from rallytime/fix\-38683
  206336. .IP \(bu 2
  206337. ede4c28887 Group checks for failhard setting in () in state.check_failhard function
  206338. .UNINDENT
  206339. .IP \(bu 2
  206340. \fBPR\fP \fI\%#40503\fP: (\fI\%thatch45\fP) first pass at adding support for pycryptodome installed as
  206341. @ \fI2017\-04\-04 19:39:02 UTC\fP
  206342. .INDENT 2.0
  206343. .IP \(bu 2
  206344. 4d5d7d9712 Merge pull request \fI\%#40503\fP from thatch45/2016.11
  206345. .IP \(bu 2
  206346. e21fd54d1b fix lint on the lint ignores...
  206347. .IP \(bu 2
  206348. 60113248b1 pycryptodome adds RSA to the key header which the openssl
  206349. .IP \(bu 2
  206350. 206dec63ff fix the cryptodome version lookup for the versions report
  206351. .IP \(bu 2
  206352. d3b77092b5 good catch
  206353. .IP \(bu 2
  206354. 31c6a10d1b first pass at adding support for pycryptodome installed as
  206355. .UNINDENT
  206356. .IP \(bu 2
  206357. \fBPR\fP \fI\%#40525\fP: (\fI\%dmurphy18\fP) Add support for disk.iostat on AIX
  206358. @ \fI2017\-04\-04 19:31:41 UTC\fP
  206359. .INDENT 2.0
  206360. .IP \(bu 2
  206361. 0dd92c63ea Merge pull request \fI\%#40525\fP from dmurphy18/aix_dskiostat
  206362. .IP \(bu 2
  206363. 712537272b Added support on AIX for disk.iostat
  206364. .UNINDENT
  206365. .IP \(bu 2
  206366. \fBPR\fP \fI\%#40496\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40415\fP to 2016.11
  206367. @ \fI2017\-04\-04 17:19:39 UTC\fP
  206368. .INDENT 2.0
  206369. .IP \(bu 2
  206370. \fBPR\fP \fI\%#40415\fP: (\fI\%defanator\fP) Fix boto_vpc.create_route() to work with interface_id (refs: \fI\%#40496\fP)
  206371. .IP \(bu 2
  206372. a6291b17c1 Merge pull request \fI\%#40496\fP from rallytime/bp\-40415
  206373. .IP \(bu 2
  206374. f8b3006898 Fix boto_vpc.create_route() to work with interface_id
  206375. .UNINDENT
  206376. .IP \(bu 2
  206377. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  206378. .IP \(bu 2
  206379. \fBPR\fP \fI\%#40468\fP: (\fI\%techhat\fP) Add __func_alias__ back in
  206380. @ \fI2017\-04\-04 17:02:43 UTC\fP
  206381. .INDENT 2.0
  206382. .IP \(bu 2
  206383. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  206384. .IP \(bu 2
  206385. 3eb8e0baf1 Merge pull request \fI\%#40468\fP from techhat/cachealias
  206386. .IP \(bu 2
  206387. 6ec0baa9a0 Swap around aliases
  206388. .IP \(bu 2
  206389. 76e54a2900 Add __func_alias__ back in
  206390. .UNINDENT
  206391. .IP \(bu 2
  206392. \fBISSUE\fP \fI\%#29104\fP: (\fI\%adithep\fP) Merging Order warning (refs: \fI\%#39109\fP)
  206393. .IP \(bu 2
  206394. \fBPR\fP \fI\%#39109\fP: (\fI\%bdrung\fP) Fix top_file_merging_strategy warning if env_order is set
  206395. @ \fI2017\-04\-04 14:20:56 UTC\fP
  206396. .INDENT 2.0
  206397. .IP \(bu 2
  206398. 8c0befaa8b Merge pull request \fI\%#39109\fP from bdrung/fix\-merge\-order\-warning
  206399. .IP \(bu 2
  206400. fbf8fcfa98 Simplify _get_envs() by using list comprehensions
  206401. .IP \(bu 2
  206402. 74a3b066ea Fix top_file_merging_strategy warning if env_order is set
  206403. .IP \(bu 2
  206404. ec219b5f42 Remove duplicate client_envs variable definitions
  206405. .IP \(bu 2
  206406. 6279f7c120 fix do to pre correct on python randome function
  206407. .IP \(bu 2
  206408. 66b9515af7 Fix up the doc for failover clarity
  206409. .UNINDENT
  206410. .IP \(bu 2
  206411. \fBPR\fP \fI\%#40495\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206412. @ \fI2017\-04\-03 18:36:16 UTC\fP
  206413. .INDENT 2.0
  206414. .IP \(bu 2
  206415. 02a1f642ab Merge pull request \fI\%#40495\fP from rallytime/merge\-2016.11
  206416. .IP \(bu 2
  206417. 8111909bb1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206418. .IP \(bu 2
  206419. 3d45a004b0 Merge pull request \fI\%#40427\fP from terminalmage/clarify\-master\-tops\-docs
  206420. .INDENT 2.0
  206421. .IP \(bu 2
  206422. bda781d8f9 Grammar fix
  206423. .IP \(bu 2
  206424. 0d7b0c4ef0 Improve the master_tops documentation
  206425. .IP \(bu 2
  206426. d27340a9f2 Add saltutil.sync_tops runner func
  206427. .UNINDENT
  206428. .UNINDENT
  206429. .IP \(bu 2
  206430. \fBPR\fP \fI\%#40466\fP: (\fI\%dmurphy18\fP) Support for execution module status on AIX
  206431. @ \fI2017\-04\-01 00:28:51 UTC\fP
  206432. .INDENT 2.0
  206433. .IP \(bu 2
  206434. ac82972cb3 Merge pull request \fI\%#40466\fP from dmurphy18/aix_status
  206435. .IP \(bu 2
  206436. 7c0b30d9a4 Support for AIX
  206437. .UNINDENT
  206438. .IP \(bu 2
  206439. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  206440. .IP \(bu 2
  206441. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  206442. @ \fI2017\-03\-31 20:21:00 UTC\fP
  206443. .INDENT 2.0
  206444. .IP \(bu 2
  206445. fdb0250c95 Merge pull request \fI\%#40429\fP from DSRCorporation/features/39275_memcache
  206446. .IP \(bu 2
  206447. 4475d1757d In\-memory minion data cache.
  206448. .UNINDENT
  206449. .IP \(bu 2
  206450. \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)
  206451. .IP \(bu 2
  206452. \fBPR\fP \fI\%#40442\fP: (\fI\%gtmanfred\fP) allow file_client to figure out cachedir (refs: \fI\%#40642\fP)
  206453. @ \fI2017\-03\-31 20:14:27 UTC\fP
  206454. .INDENT 2.0
  206455. .IP \(bu 2
  206456. 31d4e6949c Merge pull request \fI\%#40442\fP from gtmanfred/salt\-ssh
  206457. .IP \(bu 2
  206458. 8367735063 allow file_client to figure out cachedir
  206459. .UNINDENT
  206460. .IP \(bu 2
  206461. \fBPR\fP \fI\%#40456\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206462. @ \fI2017\-03\-31 17:51:11 UTC\fP
  206463. .INDENT 2.0
  206464. .IP \(bu 2
  206465. 0cfcd188a9 Merge pull request \fI\%#40456\fP from rallytime/merge\-2016.11
  206466. .IP \(bu 2
  206467. 0da4c46b68 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206468. .IP \(bu 2
  206469. c26f4cc76c Merge pull request \fI\%#40371\fP from terminalmage/pr\-40344
  206470. .INDENT 2.0
  206471. .IP \(bu 2
  206472. a8bcaa73d7 Force use of posixpath when joining salt fileserver paths in gitfs
  206473. .IP \(bu 2
  206474. cafa08d8e0 Add ability for salt.utils.path_join to force the use of posixpath
  206475. .UNINDENT
  206476. .IP \(bu 2
  206477. df9df82959 Merge pull request \fI\%#40379\fP from rallytime/tests\-for\-39855
  206478. .INDENT 2.0
  206479. .IP \(bu 2
  206480. 96259d6c63 Lint fix
  206481. .IP \(bu 2
  206482. 4f7ac1431e Create a unit test for the _replace_auth_key function in the ssh module
  206483. .UNINDENT
  206484. .UNINDENT
  206485. .IP \(bu 2
  206486. \fBPR\fP \fI\%#40443\fP: (\fI\%gtmanfred\fP) prepend ssh_log_file with root_dir
  206487. @ \fI2017\-03\-31 09:23:46 UTC\fP
  206488. .INDENT 2.0
  206489. .IP \(bu 2
  206490. 8617be9c6d Merge pull request \fI\%#40443\fP from gtmanfred/sshlog
  206491. .IP \(bu 2
  206492. 7f6046deec prepend ssh_log_file with root_dir
  206493. .UNINDENT
  206494. .IP \(bu 2
  206495. \fBPR\fP \fI\%#40376\fP: (\fI\%nmadhok\fP) Backporting changes in vmware cloud driver from develop branch to 2016.11 branch
  206496. @ \fI2017\-03\-30 22:35:13 UTC\fP
  206497. .INDENT 2.0
  206498. .IP \(bu 2
  206499. 132d8b7b88 Merge pull request \fI\%#40376\fP from nmadhok/2016.11
  206500. .IP \(bu 2
  206501. dd62310941 Adding unit tests for vmware_test
  206502. .IP \(bu 2
  206503. 36edf0af64 Add additional VMware related exceptions
  206504. .IP \(bu 2
  206505. 034ef30f7c Remove old vmware unit tests
  206506. .IP \(bu 2
  206507. 7c144888da Backporting changes in vmware cloud driver from develop branch to 2016.11 branch
  206508. .UNINDENT
  206509. .IP \(bu 2
  206510. \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)
  206511. .IP \(bu 2
  206512. \fBPR\fP \fI\%#40387\fP: (\fI\%redbaron4\fP) More complete fix for 39692
  206513. @ \fI2017\-03\-30 22:29:05 UTC\fP
  206514. .INDENT 2.0
  206515. .IP \(bu 2
  206516. dfaa670b66 Merge pull request \fI\%#40387\fP from redbaron4/fix\-39692
  206517. .IP \(bu 2
  206518. 77a40a0c44 Lint fixes
  206519. .IP \(bu 2
  206520. 8c1adfafd5 More complete fix for 39692
  206521. .UNINDENT
  206522. .IP \(bu 2
  206523. \fBISSUE\fP \fI\%#7287\fP: (\fI\%dragozov\fP) django.loaddata treats fixture list as arguments and prepends "\-\-" for each (refs: \fI\%#40404\fP)
  206524. .IP \(bu 2
  206525. \fBPR\fP \fI\%#40404\fP: (\fI\%roaldnefs\fP) Fix for fixtures in the djangomod module
  206526. @ \fI2017\-03\-30 22:26:09 UTC\fP
  206527. .INDENT 2.0
  206528. .IP \(bu 2
  206529. 313d21626f Merge pull request \fI\%#40404\fP from roaldnefs/fix\-djangomod\-loaddata
  206530. .IP \(bu 2
  206531. 92285cb045 Fix for fixtures in the djangomod module
  206532. .UNINDENT
  206533. .IP \(bu 2
  206534. \fBPR\fP \fI\%#40416\fP: (\fI\%lorengordon\fP) Adds some missing file functions on Windows
  206535. @ \fI2017\-03\-30 22:22:44 UTC\fP
  206536. .INDENT 2.0
  206537. .IP \(bu 2
  206538. 5379899442 Merge pull request \fI\%#40416\fP from lorengordon/win\-file\-funcs
  206539. .IP \(bu 2
  206540. 8edaf25e10 Adds some missing file functions on Windows
  206541. .UNINDENT
  206542. .IP \(bu 2
  206543. \fBISSUE\fP \fI\%#40417\fP: (\fI\%lorengordon\fP) \fItemp.file\fP does not close the file handle (refs: \fI\%#40418\fP)
  206544. .IP \(bu 2
  206545. \fBPR\fP \fI\%#40418\fP: (\fI\%lorengordon\fP) Closes handle to temporary file before returning the path
  206546. @ \fI2017\-03\-30 22:22:03 UTC\fP
  206547. .INDENT 2.0
  206548. .IP \(bu 2
  206549. 1f5d6b88f9 Merge pull request \fI\%#40418\fP from lorengordon/close\-temp\-file
  206550. .IP \(bu 2
  206551. 7baf2809cf Closes handle to temporary file before returning the path
  206552. .UNINDENT
  206553. .IP \(bu 2
  206554. \fBPR\fP \fI\%#40430\fP: (\fI\%twangboy\fP) Fix logic for __virtual__ in win_dsc and win_psget
  206555. @ \fI2017\-03\-30 22:06:16 UTC\fP
  206556. .INDENT 2.0
  206557. .IP \(bu 2
  206558. 5c78d55eab Merge pull request \fI\%#40430\fP from twangboy/fix_virtual
  206559. .IP \(bu 2
  206560. 08e95ce4f0 Add logging on __virtual__ failures
  206561. .IP \(bu 2
  206562. 43ecb1a597 Fix logic for __virtual__
  206563. .UNINDENT
  206564. .IP \(bu 2
  206565. \fBPR\fP \fI\%#40431\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206566. @ \fI2017\-03\-30 21:37:39 UTC\fP
  206567. .INDENT 2.0
  206568. .IP \(bu 2
  206569. b855f29928 Merge pull request \fI\%#40431\fP from rallytime/merge\-2016.11
  206570. .IP \(bu 2
  206571. d5576d75e7 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206572. .IP \(bu 2
  206573. b6770fd81f Merge pull request \fI\%#40407\fP from aesdana/fix_rabbitmq_version_check
  206574. .INDENT 2.0
  206575. .IP \(bu 2
  206576. 4c0763fa2f Added split to cut off debian_revision from rabbitmq\-server version Fixes \fI\%#40396\fP
  206577. .UNINDENT
  206578. .IP \(bu 2
  206579. d4fb45d9f8 Merge pull request \fI\%#40424\fP from terminalmage/fix\-open\-filehandle
  206580. .INDENT 2.0
  206581. .IP \(bu 2
  206582. 66251263cf Fix open filehandles
  206583. .UNINDENT
  206584. .IP \(bu 2
  206585. 8708096365 Merge pull request \fI\%#40399\fP from terminalmage/docker\-py_version
  206586. .INDENT 2.0
  206587. .IP \(bu 2
  206588. 14c6575655 Add docker\-py version to the versions report
  206589. .UNINDENT
  206590. .IP \(bu 2
  206591. ff1266b3a6 Merge pull request \fI\%#40391\fP from Ch3LL/2016.3.7_release_notes
  206592. .INDENT 2.0
  206593. .IP \(bu 2
  206594. f532ec5288 initial 2016.3.7 release notes
  206595. .UNINDENT
  206596. .IP \(bu 2
  206597. 96bf9427b0 Merge pull request \fI\%#40368\fP from Ch3LL/bump_version_3
  206598. .INDENT 2.0
  206599. .IP \(bu 2
  206600. a02fa7dd1f [2016.3] Bump previous version to 2016.3.6
  206601. .UNINDENT
  206602. .UNINDENT
  206603. .IP \(bu 2
  206604. \fBPR\fP \fI\%#40401\fP: (\fI\%roaldnefs\fP) fix Ubuntu notation in docs/faq.rst
  206605. @ \fI2017\-03\-29 20:28:31 UTC\fP
  206606. .INDENT 2.0
  206607. .IP \(bu 2
  206608. 7d900d31ea Merge pull request \fI\%#40401\fP from roaldnefs/fix\-doc\-faq
  206609. .IP \(bu 2
  206610. 21f161fecc fix Ubuntu notation in docs/faq.rst
  206611. .UNINDENT
  206612. .IP \(bu 2
  206613. \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)
  206614. .IP \(bu 2
  206615. \fBPR\fP \fI\%#40390\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37795\fP to 2016.11
  206616. @ \fI2017\-03\-29 19:05:12 UTC\fP
  206617. .INDENT 2.0
  206618. .IP \(bu 2
  206619. \fBPR\fP \fI\%#37795\fP: (\fI\%jettero\fP) please tell me where is the “error: \(aqdict\(aq object has no …” (refs: \fI\%#40390\fP)
  206620. .IP \(bu 2
  206621. 70a3f963ec Merge pull request \fI\%#40390\fP from rallytime/bp\-37795
  206622. .IP \(bu 2
  206623. 1ba15577bd Pylint fix
  206624. .IP \(bu 2
  206625. ec65924659 please tell me where is the "error: \(aqdict\(aq object has no attribute \(aqseek\(aq" ??
  206626. .UNINDENT
  206627. .IP \(bu 2
  206628. \fBPR\fP \fI\%#40395\fP: (\fI\%rallytime\fP) Handle AttributeError for dockerng_mod.docker attempt fails and docker is installed
  206629. @ \fI2017\-03\-29 17:47:11 UTC\fP
  206630. .INDENT 2.0
  206631. .IP \(bu 2
  206632. f8fbfff7dc Merge pull request \fI\%#40395\fP from rallytime/catch\-attribute\-error\-docker\-test
  206633. .IP \(bu 2
  206634. 99c8dcc18e Handle AttributeError for dockerng_mod.docker attempt fails and docker is installed
  206635. .UNINDENT
  206636. .IP \(bu 2
  206637. \fBPR\fP \fI\%#40362\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206638. @ \fI2017\-03\-28 22:50:32 UTC\fP
  206639. .INDENT 2.0
  206640. .IP \(bu 2
  206641. d7d3d68035 Merge pull request \fI\%#40362\fP from rallytime/merge\-2016.11
  206642. .IP \(bu 2
  206643. 4f1543c2a1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206644. .INDENT 2.0
  206645. .IP \(bu 2
  206646. 1381f97292 Merge pull request \fI\%#40264\fP from meaksh/2016.3\-gather_job_timeout\-fix
  206647. .INDENT 2.0
  206648. .IP \(bu 2
  206649. 68dccae5b4 Makes sure "gather_job_timeout" is an integer
  206650. .UNINDENT
  206651. .UNINDENT
  206652. .UNINDENT
  206653. .IP \(bu 2
  206654. \fBPR\fP \fI\%#40372\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6.
  206655. @ \fI2017\-03\-28 22:48:41 UTC\fP
  206656. .INDENT 2.0
  206657. .IP \(bu 2
  206658. 2febd05896 Merge pull request \fI\%#40372\fP from zer0def/pip\-cache\-fixes
  206659. .IP \(bu 2
  206660. d68067f1d7 Merge remote\-tracking branch \(aqmain/2016.11\(aq into pip\-cache\-fixes
  206661. .IP \(bu 2
  206662. 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\&.
  206663. .IP \(bu 2
  206664. 9d0f94eeba Fixed unnecessary API changes introduced with suggested changes.
  206665. .UNINDENT
  206666. .IP \(bu 2
  206667. \fBPR\fP \fI\%#40369\fP: (\fI\%Ch3LL\fP) [2016.11] Bump previous version to 2016.3.6
  206668. @ \fI2017\-03\-28 18:50:39 UTC\fP
  206669. .INDENT 2.0
  206670. .IP \(bu 2
  206671. 6162698c87 Merge pull request \fI\%#40369\fP from Ch3LL/bump_version_11
  206672. .IP \(bu 2
  206673. 7597d96edb [2016.11] Bump previous version to 2016.3.6
  206674. .UNINDENT
  206675. .IP \(bu 2
  206676. \fBISSUE\fP \fI\%#40322\fP: (\fI\%Whissi\fP) ssh_auth.absent: Wrong comment when test=True (refs: \fI\%#40333\fP)
  206677. .IP \(bu 2
  206678. \fBISSUE\fP \fI\%#40321\fP: (\fI\%Whissi\fP) state.alternatives: Wrong comment when test=True (refs: \fI\%#40333\fP)
  206679. .IP \(bu 2
  206680. \fBPR\fP \fI\%#40333\fP: (\fI\%gtmanfred\fP) fix some test=True comments
  206681. @ \fI2017\-03\-28 16:11:01 UTC\fP
  206682. .INDENT 2.0
  206683. .IP \(bu 2
  206684. 2d2cb5b837 Merge pull request \fI\%#40333\fP from gtmanfred/2016.11
  206685. .IP \(bu 2
  206686. 5596620dfb fix some test=True comments
  206687. .UNINDENT
  206688. .IP \(bu 2
  206689. \fBPR\fP \fI\%#40347\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206690. @ \fI2017\-03\-28 02:39:31 UTC\fP
  206691. .INDENT 2.0
  206692. .IP \(bu 2
  206693. bb37f133fc Merge pull request \fI\%#40347\fP from rallytime/merge\-2016.11
  206694. .IP \(bu 2
  206695. e77e86db3a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206696. .IP \(bu 2
  206697. 17ab1da0ab Merge pull request \fI\%#40345\fP from twangboy/fix_osx_build
  206698. .INDENT 2.0
  206699. .IP \(bu 2
  206700. 3207d670c5 Fix osx build
  206701. .UNINDENT
  206702. .IP \(bu 2
  206703. 7ab10491ab Merge pull request \fI\%#40338\fP from UtahDave/fix_cherrypy_ssl_error_link
  206704. .INDENT 2.0
  206705. .IP \(bu 2
  206706. 280b501950 Upstream cherrypy moved to Github from Bitbucket
  206707. .UNINDENT
  206708. .IP \(bu 2
  206709. \fBPR\fP \fI\%saltstack/salt#40332\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6. (refs: \fI\%#40346\fP)
  206710. .UNINDENT
  206711. .IP \(bu 2
  206712. \fBPR\fP \fI\%#40346\fP: (\fI\%cachedout\fP) Revert "Fixes related to cache directory argument changes in pip>=6."
  206713. @ \fI2017\-03\-27 23:17:29 UTC\fP
  206714. .INDENT 2.0
  206715. .IP \(bu 2
  206716. a572b46183 Merge pull request \fI\%#40346\fP from saltstack/revert\-40332\-pip\-cache\-fixes
  206717. .IP \(bu 2
  206718. b4753d1a5a Revert "Fixes related to cache directory argument changes in pip>=6."
  206719. .UNINDENT
  206720. .IP \(bu 2
  206721. \fBISSUE\fP \fI\%#40296\fP: (\fI\%L4rS6\fP) Wrong documentation in mount.mounted (refs: \fI\%#40326\fP)
  206722. .IP \(bu 2
  206723. \fBPR\fP \fI\%#40326\fP: (\fI\%L4rS6\fP) Update mount state documentation (Fixes: \fI\%#40296\fP)
  206724. @ \fI2017\-03\-27 23:15:53 UTC\fP
  206725. .INDENT 2.0
  206726. .IP \(bu 2
  206727. a91bab867e Merge pull request \fI\%#40326\fP from L4rS6/update\-mount\-state\-doc
  206728. .IP \(bu 2
  206729. a717c527a1 Update mount state documentation (Fixes: \fI\%#40296\fP)
  206730. .UNINDENT
  206731. .IP \(bu 2
  206732. \fBPR\fP \fI\%#40328\fP: (\fI\%L4rS6\fP) Fixes wrong compared extra_mount_ignore_fs_keys key.
  206733. @ \fI2017\-03\-27 23:14:22 UTC\fP
  206734. .INDENT 2.0
  206735. .IP \(bu 2
  206736. ca2980cfb0 Merge pull request \fI\%#40328\fP from L4rS6/fix\-mount\-state\-extra\-ignore\-fs\-key
  206737. .IP \(bu 2
  206738. f0f68b9033 Fixes wrong compared extra_mount_ignore_fs_keys key.
  206739. .UNINDENT
  206740. .IP \(bu 2
  206741. \fBPR\fP \fI\%#40329\fP: (\fI\%isbm\fP) Merge tops (backport)
  206742. @ \fI2017\-03\-27 23:13:47 UTC\fP
  206743. .INDENT 2.0
  206744. .IP \(bu 2
  206745. 3a6c5d0297 Merge pull request \fI\%#40329\fP from isbm/isbm\-merge\-tops\-201611
  206746. .IP \(bu 2
  206747. a762c9edda Merge output from master_tops
  206748. .UNINDENT
  206749. .IP \(bu 2
  206750. \fBPR\fP \fI\%#40285\fP: (\fI\%rallytime\fP) Dockerng unit tests fixes: isolate global variables
  206751. @ \fI2017\-03\-27 23:05:03 UTC\fP
  206752. .INDENT 2.0
  206753. .IP \(bu 2
  206754. 2b7b2f1cb4 Merge pull request \fI\%#40285\fP from rallytime/docker\-test\-fixes
  206755. .IP \(bu 2
  206756. 0f263a52e0 Mock out the get_client_args mocks in the dockerng module tests more aggressively
  206757. .IP \(bu 2
  206758. f1352fe253 Add one more dockerng.version mock that was missed previously
  206759. .IP \(bu 2
  206760. 0d31d2c4d1 Add a couple more patches for docker.version information
  206761. .IP \(bu 2
  206762. a9c5eebaf0 Clean up dockerng unit tests to avoid global variables and fixup some patching
  206763. .UNINDENT
  206764. .IP \(bu 2
  206765. \fBPR\fP \fI\%#40341\fP: (\fI\%twangboy\fP) Fix service.create, fix docs
  206766. @ \fI2017\-03\-27 21:46:19 UTC\fP
  206767. .INDENT 2.0
  206768. .IP \(bu 2
  206769. 01efc842c1 Merge pull request \fI\%#40341\fP from twangboy/fix_win_service
  206770. .IP \(bu 2
  206771. 6736457ec8 Docs for create
  206772. .IP \(bu 2
  206773. 652cf08f8a Fix service.create, fix docs
  206774. .UNINDENT
  206775. .IP \(bu 2
  206776. \fBPR\fP \fI\%#40332\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6.
  206777. @ \fI2017\-03\-27 21:01:15 UTC\fP
  206778. .INDENT 2.0
  206779. .IP \(bu 2
  206780. 8eabcca6dc Merge pull request \fI\%#40332\fP from zer0def/pip\-cache\-fixes
  206781. .IP \(bu 2
  206782. 7976840100 Fixes related to cache directory changes in pip>=6.
  206783. .UNINDENT
  206784. .IP \(bu 2
  206785. \fBPR\fP \fI\%#40337\fP: (\fI\%Ch3LL\fP) Add archive.extracted with use_cmd_unzip argument
  206786. @ \fI2017\-03\-27 21:00:23 UTC\fP
  206787. .INDENT 2.0
  206788. .IP \(bu 2
  206789. ceba1b9bc6 Merge pull request \fI\%#40337\fP from Ch3LL/add_unzip_test
  206790. .IP \(bu 2
  206791. 8b21b4c8bb add use_cmd_unzip test
  206792. .UNINDENT
  206793. .IP \(bu 2
  206794. \fBPR\fP \fI\%#40312\fP: (\fI\%rallytime\fP) Update minion data cache documentation
  206795. @ \fI2017\-03\-27 20:56:55 UTC\fP
  206796. .INDENT 2.0
  206797. .IP \(bu 2
  206798. a192597ec2 Merge pull request \fI\%#40312\fP from rallytime/cache\-docs
  206799. .IP \(bu 2
  206800. 5363e0b58b Update minion data cache documentation
  206801. .UNINDENT
  206802. .IP \(bu 2
  206803. \fBPR\fP \fI\%#40315\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206804. @ \fI2017\-03\-27 15:11:25 UTC\fP
  206805. .INDENT 2.0
  206806. .IP \(bu 2
  206807. 7f16754619 Merge pull request \fI\%#40315\fP from rallytime/merge\-2016.11
  206808. .IP \(bu 2
  206809. c65d602f60 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206810. .INDENT 2.0
  206811. .IP \(bu 2
  206812. 7c21153d3a Merge pull request \fI\%#40300\fP from meaksh/2016.3\-adding\-timeouts\-parameters\-to\-cmd_batch
  206813. .INDENT 2.0
  206814. .IP \(bu 2
  206815. 9174e6f281 Fixes testing opts dict for batch unit tests
  206816. .IP \(bu 2
  206817. b1de79abcf Adds custom \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqlocal_batch\(aq client
  206818. .UNINDENT
  206819. .UNINDENT
  206820. .UNINDENT
  206821. .IP \(bu 2
  206822. \fBPR\fP \fI\%#40313\fP: (\fI\%techhat\fP) Add minimum and maximum to calls to calc
  206823. @ \fI2017\-03\-27 14:54:15 UTC\fP
  206824. .INDENT 2.0
  206825. .IP \(bu 2
  206826. a9a73bf8dc Merge pull request \fI\%#40313\fP from techhat/calcref
  206827. .IP \(bu 2
  206828. 7106a86258 Use named kwargs
  206829. .IP \(bu 2
  206830. 822f3b81c3 Add minimum and maximum to calls to calc
  206831. .UNINDENT
  206832. .IP \(bu 2
  206833. \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)
  206834. .IP \(bu 2
  206835. \fBPR\fP \fI\%#40277\fP: (\fI\%eldadru\fP) Fixing boto_rds.py delete() wait_for_deletion, if statement was inco…
  206836. @ \fI2017\-03\-24 22:29:25 UTC\fP
  206837. .INDENT 2.0
  206838. .IP \(bu 2
  206839. 9d0762deca Merge pull request \fI\%#40277\fP from eldadru/Fix\-40247\-boto_rds\-delete\-wait\-for\-deletion\-failure
  206840. .IP \(bu 2
  206841. 3c15a32764 Fixing boto_rds.py delete() wait_for_deletion, if statement was incorrectly checking the return value of boto_rds.py exists() method.
  206842. .UNINDENT
  206843. .IP \(bu 2
  206844. \fBPR\fP \fI\%#40280\fP: (\fI\%bewing\fP) Clean up temporary file in net.load_template
  206845. @ \fI2017\-03\-24 22:27:04 UTC\fP
  206846. .INDENT 2.0
  206847. .IP \(bu 2
  206848. \fBPR\fP \fI\%#40273\fP: (\fI\%bewing\fP) Clean up temporary file in net.load_template (refs: \fI\%#40280\fP)
  206849. .IP \(bu 2
  206850. 6c29c81d01 Merge pull request \fI\%#40280\fP from bewing/bp_40273
  206851. .IP \(bu 2
  206852. f028e939f5 Clean up temporary file in net.load_template
  206853. .UNINDENT
  206854. .IP \(bu 2
  206855. \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)
  206856. .IP \(bu 2
  206857. \fBPR\fP \fI\%#40310\fP: (\fI\%gtmanfred\fP) add warning when no host/dns record is found for fqdn_ip
  206858. @ \fI2017\-03\-24 21:55:20 UTC\fP
  206859. .INDENT 2.0
  206860. .IP \(bu 2
  206861. 839b620f32 Merge pull request \fI\%#40310\fP from gtmanfred/2016.11
  206862. .IP \(bu 2
  206863. cff027ddc6 add warning when no host/dns record is found for fqdn
  206864. .UNINDENT
  206865. .IP \(bu 2
  206866. \fBPR\fP \fI\%#40288\fP: (\fI\%dmurphy18\fP) Execution module network support for AIX
  206867. @ \fI2017\-03\-24 20:10:36 UTC\fP
  206868. .INDENT 2.0
  206869. .IP \(bu 2
  206870. eb86d55478 Merge pull request \fI\%#40288\fP from dmurphy18/aix_network
  206871. .IP \(bu 2
  206872. b53a95dab1 Further update to us in similar to review comments
  206873. .IP \(bu 2
  206874. 59c0bdc14d Updated for review comments
  206875. .IP \(bu 2
  206876. 031c9457ba Execution module network support for AIX
  206877. .UNINDENT
  206878. .IP \(bu 2
  206879. \fBPR\fP \fI\%#40308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38835\fP to 2016.11
  206880. @ \fI2017\-03\-24 19:00:46 UTC\fP
  206881. .INDENT 2.0
  206882. .IP \(bu 2
  206883. \fBPR\fP \fI\%#38835\fP: (\fI\%UtahDave\fP) Cache docs (refs: \fI\%#40308\fP)
  206884. .IP \(bu 2
  206885. 4928026253 Merge pull request \fI\%#40308\fP from rallytime/bp\-38835
  206886. .IP \(bu 2
  206887. 3ba50d3c52 add info about what is cached
  206888. .IP \(bu 2
  206889. 77e8f6aff9 fix config example
  206890. .IP \(bu 2
  206891. 61f2fa9339 Add documentation for the Minion data cache
  206892. .UNINDENT
  206893. .IP \(bu 2
  206894. \fBPR\fP \fI\%#40287\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206895. @ \fI2017\-03\-24 16:50:23 UTC\fP
  206896. .INDENT 2.0
  206897. .IP \(bu 2
  206898. 12a9fc43c9 Merge pull request \fI\%#40287\fP from rallytime/merge\-2016.11
  206899. .IP \(bu 2
  206900. 77415369cc Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206901. .IP \(bu 2
  206902. 0e2d52c3ea Merge pull request \fI\%#40260\fP from lubyou/fix\-join_domain
  206903. .INDENT 2.0
  206904. .IP \(bu 2
  206905. 1cb15d1ea8 use win32api.FormatMessage() to get the error message for the system code
  206906. .UNINDENT
  206907. .IP \(bu 2
  206908. 0c62bb37d3 Merge pull request \fI\%#40275\fP from UtahDave/2016.3local
  206909. .INDENT 2.0
  206910. .IP \(bu 2
  206911. 9f0c9802c2 remove reference to auth_minion.
  206912. .UNINDENT
  206913. .IP \(bu 2
  206914. 57ce474d73 Merge pull request \fI\%#40265\fP from terminalmage/issue40219
  206915. .INDENT 2.0
  206916. .IP \(bu 2
  206917. 1a731e0216 Pop off the version when aggregating pkg states
  206918. .IP \(bu 2
  206919. 0055fda3e9 Properly aggregate version when passed with name
  206920. .IP \(bu 2
  206921. 62d76f50fc Don\(aqt aggregate both name/pkgs and sources in pkg states
  206922. .UNINDENT
  206923. .IP \(bu 2
  206924. b208630d85 Merge pull request \fI\%#40201\fP from sergeizv/cloud\-roster\-fixes\-2016.3
  206925. .INDENT 2.0
  206926. .IP \(bu 2
  206927. d87b377ad2 cloud roster: Don\(aqt stop if minion wasn\(aqt found in cloud cache index
  206928. .IP \(bu 2
  206929. a6865e0283 cloud roster: Check whether show_instance succeeded on node
  206930. .IP \(bu 2
  206931. 1b45c8e8c2 cloud roster: Check provider and profile configs for ssh_username
  206932. .IP \(bu 2
  206933. a18250b2e4 cloud roster: Return proper target name
  206934. .IP \(bu 2
  206935. 637930b2b3 cloud roster: Fix extracting instance\(aqs info
  206936. .IP \(bu 2
  206937. dd1d3aac74 cloud roster: Work with custom conf dir
  206938. .UNINDENT
  206939. .UNINDENT
  206940. .IP \(bu 2
  206941. \fBPR\fP \fI\%#40250\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags()
  206942. @ \fI2017\-03\-23 16:42:13 UTC\fP
  206943. .INDENT 2.0
  206944. .IP \(bu 2
  206945. \fBPR\fP \fI\%#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40250\fP)
  206946. .IP \(bu 2
  206947. b7f9100e6d Merge pull request \fI\%#40250\fP from techhat/settags
  206948. .IP \(bu 2
  206949. baff7a046d Add wait_for_fun() to set_tags()
  206950. .UNINDENT
  206951. .IP \(bu 2
  206952. \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)
  206953. .IP \(bu 2
  206954. \fBPR\fP \fI\%#40255\fP: (\fI\%lomeroe\fP) backport \fI\%#40253\fP
  206955. @ \fI2017\-03\-23 16:36:44 UTC\fP
  206956. .INDENT 2.0
  206957. .IP \(bu 2
  206958. \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)
  206959. .IP \(bu 2
  206960. 904e144ae4 Merge pull request \fI\%#40255\fP from lomeroe/fix_39976_2016.11
  206961. .IP \(bu 2
  206962. 0e9f5820cc backport \fI\%#40253\fP
  206963. .UNINDENT
  206964. .IP \(bu 2
  206965. \fBPR\fP \fI\%#40240\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206966. @ \fI2017\-03\-23 14:14:11 UTC\fP
  206967. .INDENT 2.0
  206968. .IP \(bu 2
  206969. \fBPR\fP \fI\%#40237\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#40240\fP)
  206970. .IP \(bu 2
  206971. 720a362c7a Merge pull request \fI\%#40240\fP from rallytime/merge\-2016.11
  206972. .IP \(bu 2
  206973. 5c5b74b09a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206974. .INDENT 2.0
  206975. .IP \(bu 2
  206976. 35ced607dd Merge pull request \fI\%#40226\fP from terminalmage/issue40149
  206977. .INDENT 2.0
  206978. .IP \(bu 2
  206979. 2a8df9384c Fix wrong errno in systemd.py
  206980. .UNINDENT
  206981. .IP \(bu 2
  206982. 24c4ae9c21 Merge pull request \fI\%#40232\fP from rallytime/update\-release\-notes
  206983. .INDENT 2.0
  206984. .IP \(bu 2
  206985. 2ead188b4f Update release notes for 2016.3.6
  206986. .UNINDENT
  206987. .IP \(bu 2
  206988. c59ae9a82c Merge pull request \fI\%#39855\fP from Foxlik/use_regex_to_compare_authorized_keys
  206989. .INDENT 2.0
  206990. .IP \(bu 2
  206991. d46845a5b6 Add newline at end of file
  206992. .IP \(bu 2
  206993. d4a3c8a66a Use regular expression instead of split when replacing authorized_keys
  206994. .UNINDENT
  206995. .IP \(bu 2
  206996. fd10430018 Merge pull request \fI\%#40221\fP from rallytime/bp\-39179
  206997. .INDENT 2.0
  206998. .IP \(bu 2
  206999. 07dc2de084 fix error parsing
  207000. .UNINDENT
  207001. .IP \(bu 2
  207002. a27a2cc3bb Merge pull request \fI\%#40206\fP from cro/sign_pub_take2
  207003. .INDENT 2.0
  207004. .IP \(bu 2
  207005. 01048de83f leave sign_pub_messages off on minion by default.
  207006. .IP \(bu 2
  207007. a82b005507 Leave sign_pub_messages off by default.
  207008. .UNINDENT
  207009. .IP \(bu 2
  207010. d1abb4cbaa Merge pull request \fI\%#40193\fP from rallytime/bp\-40117
  207011. .INDENT 2.0
  207012. .IP \(bu 2
  207013. cf1857904b More optimization.
  207014. .IP \(bu 2
  207015. 5a08266814 Removed debug statemnt
  207016. .IP \(bu 2
  207017. f557f7c6bb Added fix for issue 39393
  207018. .IP \(bu 2
  207019. bb62278b73 Reverting changes.
  207020. .IP \(bu 2
  207021. a9107cde44 Added if condition for broken link.
  207022. .UNINDENT
  207023. .IP \(bu 2
  207024. 0f1ff4d4a8 Merge pull request \fI\%#40196\fP from twangboy/win_fix_deps
  207025. .INDENT 2.0
  207026. .IP \(bu 2
  207027. 6761527793 Update dependencies for PyOpenSSL
  207028. .UNINDENT
  207029. .IP \(bu 2
  207030. b0501515cb Merge pull request \fI\%#40184\fP from terminalmage/link\-reactor\-example
  207031. .INDENT 2.0
  207032. .IP \(bu 2
  207033. a42be82993 Link to minion start reactor example from FAQ.
  207034. .UNINDENT
  207035. .UNINDENT
  207036. .UNINDENT
  207037. .IP \(bu 2
  207038. \fBISSUE\fP \fI\%#39445\fP: (\fI\%systemtrap\fP) state file.copy for directories does not set ownership recursively (refs: \fI\%#40030\fP)
  207039. .IP \(bu 2
  207040. \fBPR\fP \fI\%#40231\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40030\fP to 2016.11
  207041. @ \fI2017\-03\-22 23:14:40 UTC\fP
  207042. .INDENT 2.0
  207043. .IP \(bu 2
  207044. \fBPR\fP \fI\%#40030\fP: (\fI\%narendraingale2\fP) Added changes for fix_39445 (refs: \fI\%#40231\fP)
  207045. .IP \(bu 2
  207046. c40376250f Merge pull request \fI\%#40231\fP from rallytime/bp\-40030
  207047. .IP \(bu 2
  207048. 4d1c687cbd Using lchown insted of chown.
  207049. .IP \(bu 2
  207050. 52b3d986b5 Added changes for fix_39445
  207051. .IP \(bu 2
  207052. \fBPR\fP \fI\%saltstack/salt#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40239\fP)
  207053. .UNINDENT
  207054. .IP \(bu 2
  207055. \fBPR\fP \fI\%#40239\fP: (\fI\%cachedout\fP) Revert "Add wait_for_fun() to set_tags()"
  207056. @ \fI2017\-03\-22 22:59:16 UTC\fP
  207057. .INDENT 2.0
  207058. .IP \(bu 2
  207059. e39f5cbf40 Merge pull request \fI\%#40239\fP from saltstack/revert\-40225\-waitforfun
  207060. .IP \(bu 2
  207061. 95bdab87b4 Revert "Add wait_for_fun() to set_tags()"
  207062. .UNINDENT
  207063. .IP \(bu 2
  207064. \fBPR\fP \fI\%#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40250\fP)
  207065. @ \fI2017\-03\-22 18:15:35 UTC\fP
  207066. .INDENT 2.0
  207067. .IP \(bu 2
  207068. 11d2f5abec Merge pull request \fI\%#40225\fP from techhat/waitforfun
  207069. .IP \(bu 2
  207070. 89b5010883 Add wait_for_fun() to set_tags()
  207071. .UNINDENT
  207072. .IP \(bu 2
  207073. \fBPR\fP \fI\%#40172\fP: (\fI\%dmurphy18\fP) Fix solaris network
  207074. @ \fI2017\-03\-22 17:41:56 UTC\fP
  207075. .INDENT 2.0
  207076. .IP \(bu 2
  207077. c8cfbb7df6 Merge pull request \fI\%#40172\fP from dmurphy18/fix_solaris_network
  207078. .IP \(bu 2
  207079. a6218b9484 Updated use of tail on Solaris and Sun\-like OS
  207080. .IP \(bu 2
  207081. 90e6a1d8f6 Further update to support correct tail in network for Solaris
  207082. .IP \(bu 2
  207083. 5b6d33dd70 Fix use of correct tail on Solaris for active_tcp
  207084. .UNINDENT
  207085. .IP \(bu 2
  207086. \fBPR\fP \fI\%#40210\fP: (\fI\%rallytime\fP) Skip flaky test for now
  207087. @ \fI2017\-03\-22 16:34:41 UTC\fP
  207088. .INDENT 2.0
  207089. .IP \(bu 2
  207090. e9a4e8548b Merge pull request \fI\%#40210\fP from rallytime/test\-skip
  207091. .IP \(bu 2
  207092. 0ba773d86b Skip flaky test for now
  207093. .UNINDENT
  207094. .IP \(bu 2
  207095. \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)
  207096. .IP \(bu 2
  207097. \fBPR\fP \fI\%#40209\fP: (\fI\%sofixa\fP) change InfluxDB get_version to expect status code 204
  207098. @ \fI2017\-03\-21 21:42:26 UTC\fP
  207099. .INDENT 2.0
  207100. .IP \(bu 2
  207101. 0b00489eb2 Merge pull request \fI\%#40209\fP from sofixa/2016.11
  207102. .IP \(bu 2
  207103. e1cc7234ff change InfluxDB get_version to expect status code 204
  207104. .UNINDENT
  207105. .IP \(bu 2
  207106. \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)
  207107. .INDENT 2.0
  207108. .IP \(bu 2
  207109. \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)
  207110. .UNINDENT
  207111. .IP \(bu 2
  207112. \fBPR\fP \fI\%#40202\fP: (\fI\%cro\fP) Revert "Add special token to insert the minion id into the default_include path"
  207113. @ \fI2017\-03\-21 21:37:33 UTC\fP
  207114. .INDENT 2.0
  207115. .IP \(bu 2
  207116. 66bc680d0a Merge pull request \fI\%#40202\fP from saltstack/revert\-39935\-namespace_proxy_cfg
  207117. .IP \(bu 2
  207118. bb71710747 Revert "Add special token to insert the minion id into the default_include path"
  207119. .UNINDENT
  207120. .IP \(bu 2
  207121. \fBPR\fP \fI\%#40199\fP: (\fI\%whiteinge\fP) Ponysay emergency hotfix
  207122. @ \fI2017\-03\-21 21:10:21 UTC\fP
  207123. .INDENT 2.0
  207124. .IP \(bu 2
  207125. d8f0b79997 Merge pull request \fI\%#40199\fP from whiteinge/ponysay\-emergency\-hotfix
  207126. .IP \(bu 2
  207127. 85ea61b544 Add depends note
  207128. .IP \(bu 2
  207129. 5a271acfdc Fix ponysay outputter hardcoded path
  207130. .UNINDENT
  207131. .IP \(bu 2
  207132. \fBPR\fP \fI\%#40194\fP: (\fI\%terminalmage\fP) Change imports for dockerng tests
  207133. @ \fI2017\-03\-21 19:34:55 UTC\fP
  207134. .INDENT 2.0
  207135. .IP \(bu 2
  207136. 82cee58e72 Merge pull request \fI\%#40194\fP from terminalmage/fix\-docker\-test\-imports
  207137. .IP \(bu 2
  207138. 6caedb0de8 Change imports for dockerng tests
  207139. .UNINDENT
  207140. .IP \(bu 2
  207141. \fBPR\fP \fI\%#40189\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207142. @ \fI2017\-03\-21 18:02:51 UTC\fP
  207143. .INDENT 2.0
  207144. .IP \(bu 2
  207145. 0b512f9ffb Merge pull request \fI\%#40189\fP from rallytime/merge\-2016.11
  207146. .IP \(bu 2
  207147. a55c4138a8 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207148. .INDENT 2.0
  207149. .IP \(bu 2
  207150. d4e6c58526 Merge pull request \fI\%#40182\fP from terminalmage/dockerng\-mod_watch\-stopped
  207151. .INDENT 2.0
  207152. .IP \(bu 2
  207153. 4629a26fb7 Add support for "stopped" state to dockerng\(aqs mod_watch
  207154. .UNINDENT
  207155. .IP \(bu 2
  207156. a0b4082484 Merge pull request \fI\%#40171\fP from Ch3LL/2016.3.6_release
  207157. .INDENT 2.0
  207158. .IP \(bu 2
  207159. 9c6d8d892f additional PRs/issues for 2016.3.6 release notes
  207160. .UNINDENT
  207161. .IP \(bu 2
  207162. 33ba7821f7 Merge pull request \fI\%#40120\fP from sergeizv/gce\-expand\-node\-fix
  207163. .INDENT 2.0
  207164. .IP \(bu 2
  207165. 9d0fbe7e01 gce: Exclude GCENodeDriver objects from _expand_node result
  207166. .UNINDENT
  207167. .IP \(bu 2
  207168. 48843977c3 Merge pull request \fI\%#40122\fP from meaksh/2016.3\-yum\-downloadonly\-support
  207169. .INDENT 2.0
  207170. .IP \(bu 2
  207171. 067f3f77c2 Adding downloadonly support to yum/dnf module
  207172. .UNINDENT
  207173. .IP \(bu 2
  207174. 60e1d4e2f3 Merge pull request \fI\%#40159\fP from cro/sign_pub
  207175. .INDENT 2.0
  207176. .IP \(bu 2
  207177. e663b761fb Fix small syntax error
  207178. .IP \(bu 2
  207179. 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.
  207180. .UNINDENT
  207181. .UNINDENT
  207182. .UNINDENT
  207183. .IP \(bu 2
  207184. \fBISSUE\fP \fI\%#39779\fP: (\fI\%sp1r\fP) Pillar scheduling is broken (refs: \fI\%#40034\fP)
  207185. .IP \(bu 2
  207186. \fBISSUE\fP \fI\%#38523\fP: (\fI\%MorphBonehunter\fP) schedule not changed on pillar update after minion restart (refs: \fI\%#40034\fP)
  207187. .IP \(bu 2
  207188. \fBISSUE\fP \fI\%#36134\fP: (\fI\%Ch3LL\fP) carbon: multi\-master with failover does not failover when master goes down (refs: \fI\%#36437\fP)
  207189. .IP \(bu 2
  207190. \fBPR\fP \fI\%#40034\fP: (\fI\%sp1r\fP) Disallow modification of jobs from pillar with schedule execution module
  207191. @ \fI2017\-03\-21 16:36:34 UTC\fP
  207192. .INDENT 2.0
  207193. .IP \(bu 2
  207194. \fBPR\fP \fI\%#36437\fP: (\fI\%DmitryKuzmenko\fP) Keep the schedule jobs in ONE place. (refs: \fI\%#40034\fP)
  207195. .IP \(bu 2
  207196. d9cb222aa8 Merge pull request \fI\%#40034\fP from sp1r/fix\-pillar\-scheduling
  207197. .IP \(bu 2
  207198. 595f786327 fix evaluating jobs when "pillar" is missing in opts
  207199. .IP \(bu 2
  207200. 9d5db1910c fix initial data structure for schedule tests
  207201. .IP \(bu 2
  207202. d3a2489c9c schedule tests to ensure pillar jobs are not modified
  207203. .IP \(bu 2
  207204. 27385ff49c added a check ensuring schedule is a dict before merging
  207205. .IP \(bu 2
  207206. 14d71918b2 Fixes \fI\%#39779\fP
  207207. .UNINDENT
  207208. .IP \(bu 2
  207209. \fBPR\fP \fI\%#40160\fP: (\fI\%eldadru\fP) Fix this issue: \fI\%https://github.com/saltstack/salt/issues/40073\fP, descr…
  207210. @ \fI2017\-03\-20 21:37:43 UTC\fP
  207211. .INDENT 2.0
  207212. .IP \(bu 2
  207213. 257c862c52 Merge pull request \fI\%#40160\fP from eldadru/fix\-issue\-40073\-boto\-rds\-describe\-empty\-dict
  207214. .IP \(bu 2
  207215. 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)
  207216. .UNINDENT
  207217. .IP \(bu 2
  207218. \fBPR\fP \fI\%#40162\fP: (\fI\%rallytime\fP) Make sure the tornado web server is stopped at the end of the test class
  207219. @ \fI2017\-03\-20 20:35:21 UTC\fP
  207220. .INDENT 2.0
  207221. .IP \(bu 2
  207222. aec504173a Merge pull request \fI\%#40162\fP from rallytime/archive\-integration\-test\-fixes
  207223. .IP \(bu 2
  207224. dd193cc740 Make sure the tornado web server is stopped at the end of the test class
  207225. .UNINDENT
  207226. .IP \(bu 2
  207227. \fBPR\fP \fI\%#40158\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207228. @ \fI2017\-03\-20 20:34:23 UTC\fP
  207229. .INDENT 2.0
  207230. .IP \(bu 2
  207231. 461e15f0f4 Merge pull request \fI\%#40158\fP from rallytime/merge\-2016.11
  207232. .IP \(bu 2
  207233. 88f3ebd7e9 Remove extra "connect" kwarg caught by linter
  207234. .IP \(bu 2
  207235. f4d4768a6d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207236. .INDENT 2.0
  207237. .IP \(bu 2
  207238. 28e4fc17b6 Merge pull request \fI\%#40123\fP from twangboy/win_fix_network
  207239. .INDENT 2.0
  207240. .IP \(bu 2
  207241. 06dfd55ef9 Adds support for inet_pton in Windows to network util
  207242. .UNINDENT
  207243. .IP \(bu 2
  207244. 35ddb79f59 Merge pull request \fI\%#40141\fP from bobrik/fallback\-resolve
  207245. .INDENT 2.0
  207246. .IP \(bu 2
  207247. af1545deed Use the first address if cannot connect to any
  207248. .UNINDENT
  207249. .UNINDENT
  207250. .UNINDENT
  207251. .IP \(bu 2
  207252. \fBPR\fP \fI\%#40165\fP: (\fI\%rallytime\fP) Don\(aqt try to run the dockerng unit tests if docker\-py is missing
  207253. @ \fI2017\-03\-20 20:33:19 UTC\fP
  207254. .INDENT 2.0
  207255. .IP \(bu 2
  207256. b235f0953f Merge pull request \fI\%#40165\fP from rallytime/gate\-docker\-unit\-tests
  207257. .IP \(bu 2
  207258. f32d8a8683 Don\(aqt try to run the dockerng unit tests if docker\-py is missing
  207259. .UNINDENT
  207260. .IP \(bu 2
  207261. \fBPR\fP \fI\%#40085\fP: (\fI\%mirceaulinic\fP) VRF arg and better doc for ping and traceroute
  207262. @ \fI2017\-03\-20 19:48:57 UTC\fP
  207263. .INDENT 2.0
  207264. .IP \(bu 2
  207265. db9fb58b82 Merge pull request \fI\%#40085\fP from cloudflare/fix\-ping\-tr
  207266. .IP \(bu 2
  207267. 6cbdd61b54 Strip trailing whitespaces
  207268. .IP \(bu 2
  207269. 897a2a37c3 VRF arg and better doc for ping and traceroute
  207270. .UNINDENT
  207271. .IP \(bu 2
  207272. \fBPR\fP \fI\%#40095\fP: (\fI\%skizunov\fP) dns_check should not try to connect when connect=False
  207273. @ \fI2017\-03\-17 17:31:42 UTC\fP
  207274. .INDENT 2.0
  207275. .IP \(bu 2
  207276. 3bac06f099 Merge pull request \fI\%#40095\fP from skizunov/develop2
  207277. .IP \(bu 2
  207278. 880790f743 dns_check should not try to connect when connect=False
  207279. .UNINDENT
  207280. .IP \(bu 2
  207281. \fBPR\fP \fI\%#40096\fP: (\fI\%skizunov\fP) When building up the \(aqmaster_uri_list\(aq, do not try to connect
  207282. @ \fI2017\-03\-17 17:13:41 UTC\fP
  207283. .INDENT 2.0
  207284. .IP \(bu 2
  207285. 31da90edd9 Merge pull request \fI\%#40096\fP from skizunov/develop3
  207286. .IP \(bu 2
  207287. eb9a0a6fd1 When building up the \(aqmaster_uri_list\(aq, do not try to connect
  207288. .UNINDENT
  207289. .IP \(bu 2
  207290. \fBPR\fP \fI\%#40111\fP: (\fI\%eldadru\fP) Fixing simple issue 40081 \- the key parameter of the method create ov…
  207291. @ \fI2017\-03\-17 17:00:03 UTC\fP
  207292. .INDENT 2.0
  207293. .IP \(bu 2
  207294. 5303386d93 Merge pull request \fI\%#40111\fP from eldadru/fix\-issue\-40081\-boto\-rds\-create\-overwritten\-key\-parameter
  207295. .IP \(bu 2
  207296. 78b5d112d7 Fixing simple issue 40081 \- the key parameter of the method create overwritten by internal loop.
  207297. .UNINDENT
  207298. .IP \(bu 2
  207299. \fBPR\fP \fI\%#40118\fP: (\fI\%rallytime\fP) Add CLI Example for dockerng.get_client_args
  207300. @ \fI2017\-03\-17 16:34:13 UTC\fP
  207301. .INDENT 2.0
  207302. .IP \(bu 2
  207303. d2e376e8f2 Merge pull request \fI\%#40118\fP from rallytime/cli\-example
  207304. .IP \(bu 2
  207305. bb496bb7f4 Add CLI Example for dockerng.get_client_args
  207306. .UNINDENT
  207307. .IP \(bu 2
  207308. \fBPR\fP \fI\%#40097\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207309. @ \fI2017\-03\-17 15:17:08 UTC\fP
  207310. .INDENT 2.0
  207311. .IP \(bu 2
  207312. baef5009aa Merge pull request \fI\%#40097\fP from rallytime/merge\-2016.11
  207313. .IP \(bu 2
  207314. ef1ff38f8d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207315. .IP \(bu 2
  207316. 116201f345 Merge pull request \fI\%#40059\fP from terminalmage/fix\-virtualenv\-traceback
  207317. .INDENT 2.0
  207318. .IP \(bu 2
  207319. e3cfd29d6b Fix traceback when virtualenv.managed is invoked with nonexistant user
  207320. .UNINDENT
  207321. .IP \(bu 2
  207322. a01b52b9a3 Merge pull request \fI\%#40090\fP from rallytime/bp\-40056
  207323. .INDENT 2.0
  207324. .IP \(bu 2
  207325. ae012db87a update mention bot blacklist
  207326. .UNINDENT
  207327. .IP \(bu 2
  207328. d1570bba4c Merge pull request \fI\%#40057\fP from cachedout/ollie_blacklist
  207329. .INDENT 2.0
  207330. .IP \(bu 2
  207331. 0ac2e83d37 Merge branch \(aq2016.3\(aq into ollie_blacklist
  207332. .IP \(bu 2
  207333. 5592c680b5 More mentionbot blacklists
  207334. .UNINDENT
  207335. .UNINDENT
  207336. .IP \(bu 2
  207337. \fBISSUE\fP \fI\%#39771\fP: (\fI\%mirceaulinic\fP) Empty __proxy__ dunder inside scheduler (refs: \fI\%#40077\fP)
  207338. .IP \(bu 2
  207339. \fBPR\fP \fI\%#40077\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#39771\fP (Empty __proxy__ dunder inside scheduler)
  207340. @ \fI2017\-03\-16 20:56:02 UTC\fP
  207341. .INDENT 2.0
  207342. .IP \(bu 2
  207343. 9ef3e070c2 Merge pull request \fI\%#40077\fP from cloudflare/fix\-39771
  207344. .IP \(bu 2
  207345. cd319e7e39 Add proxy kwarg to scheduler
  207346. .IP \(bu 2
  207347. c6e6dd1a04 ProxyMinion: correctly build the scheduler
  207348. .UNINDENT
  207349. .IP \(bu 2
  207350. \fBPR\fP \fI\%#40088\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207351. @ \fI2017\-03\-16 19:58:44 UTC\fP
  207352. .INDENT 2.0
  207353. .IP \(bu 2
  207354. b12720a56f Merge pull request \fI\%#40088\fP from rallytime/merge\-2016.11
  207355. .IP \(bu 2
  207356. 626bd03885 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207357. .IP \(bu 2
  207358. d36bdb1a6e Merge pull request \fI\%#40070\fP from Ch3LL/2016.3.6_release
  207359. .INDENT 2.0
  207360. .IP \(bu 2
  207361. a1f8b49bd1 update 2016.3.6 release notes with additional PR\(aqs
  207362. .UNINDENT
  207363. .IP \(bu 2
  207364. 8dcffc7751 Merge pull request \fI\%#40018\fP from meaksh/2016.3\-handling\-timeouts\-for\-manage.up\-runner
  207365. .INDENT 2.0
  207366. .IP \(bu 2
  207367. 9f5c3b7dcd Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  207368. .IP \(bu 2
  207369. 2102d9c75c Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  207370. .UNINDENT
  207371. .IP \(bu 2
  207372. 22fc5299a2 Merge pull request \fI\%#40038\fP from velom/fix\-pip\-freeze\-parsing
  207373. .INDENT 2.0
  207374. .IP \(bu 2
  207375. 3fae91d879 correctly parse "pkg_name===version" from pip freeze
  207376. .UNINDENT
  207377. .IP \(bu 2
  207378. 3584f935fa Merge pull request \fI\%#40053\fP from saltstack/rh_ip_patch
  207379. .INDENT 2.0
  207380. .IP \(bu 2
  207381. 219947acdb Update rh_ip.py
  207382. .UNINDENT
  207383. .IP \(bu 2
  207384. 837432d3d2 Merge pull request \fI\%#40041\fP from terminalmage/issue40011
  207385. .INDENT 2.0
  207386. .IP \(bu 2
  207387. 5b5d1b375c Fix transposed lines in salt.utils.process
  207388. .UNINDENT
  207389. .UNINDENT
  207390. .IP \(bu 2
  207391. \fBPR\fP \fI\%#40055\fP: (\fI\%rallytime\fP) Update "yaml" code\-block references with "jinja" where needed
  207392. @ \fI2017\-03\-16 16:30:38 UTC\fP
  207393. .INDENT 2.0
  207394. .IP \(bu 2
  207395. 703ab23953 Merge pull request \fI\%#40055\fP from rallytime/doc\-build\-warnings
  207396. .IP \(bu 2
  207397. 72d16c9fa9 Update "yaml" code\-block references with "jinja" where needed
  207398. .UNINDENT
  207399. .IP \(bu 2
  207400. \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
  207401. @ \fI2017\-03\-16 15:31:46 UTC\fP
  207402. .INDENT 2.0
  207403. .IP \(bu 2
  207404. \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)
  207405. .IP \(bu 2
  207406. e73a1d0e54 Merge pull request \fI\%#40072\fP from meaksh/2016.11\-handling\-timeouts\-for\-manage.up\-runner
  207407. .IP \(bu 2
  207408. 40246d3723 Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  207409. .IP \(bu 2
  207410. ad232fdc01 Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  207411. .UNINDENT
  207412. .IP \(bu 2
  207413. \fBPR\fP \fI\%#40045\fP: (\fI\%terminalmage\fP) Fix error when chhome is invoked by user.present state in Windows
  207414. @ \fI2017\-03\-15 19:00:41 UTC\fP
  207415. .INDENT 2.0
  207416. .IP \(bu 2
  207417. 2f28ec26ee Merge pull request \fI\%#40045\fP from terminalmage/fix\-windows\-user\-present
  207418. .IP \(bu 2
  207419. 359af3bb2b Fix error when chhome is invoked by user.present state in Windows
  207420. .UNINDENT
  207421. .IP \(bu 2
  207422. \fBPR\fP \fI\%#40047\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40000\fP to 2016.11
  207423. @ \fI2017\-03\-15 17:47:37 UTC\fP
  207424. .INDENT 2.0
  207425. .IP \(bu 2
  207426. \fBPR\fP \fI\%#40000\fP: (\fI\%skizunov\fP) Fix exception in salt\-call when master_type is \(aqdisable\(aq (refs: \fI\%#40047\fP)
  207427. .IP \(bu 2
  207428. 4067625676 Merge pull request \fI\%#40047\fP from rallytime/bp\-40000
  207429. .IP \(bu 2
  207430. 11766c7259 Fix exception in salt\-call when master_type is \(aqdisable\(aq
  207431. .UNINDENT
  207432. .IP \(bu 2
  207433. \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…
  207434. @ \fI2017\-03\-14 23:14:56 UTC\fP
  207435. .INDENT 2.0
  207436. .IP \(bu 2
  207437. 86f7195e0e Merge pull request \fI\%#40023\fP from jeanpralo/fix\-minions\-cant\-finish\-by\-char\-p
  207438. .IP \(bu 2
  207439. 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
  207440. .UNINDENT
  207441. .IP \(bu 2
  207442. \fBPR\fP \fI\%#40025\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207443. @ \fI2017\-03\-14 23:14:33 UTC\fP
  207444. .INDENT 2.0
  207445. .IP \(bu 2
  207446. 277bd17ff2 Merge pull request \fI\%#40025\fP from rallytime/merge\-2016.11
  207447. .IP \(bu 2
  207448. 029f28bbd5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207449. .IP \(bu 2
  207450. ee7f3b1200 Merge pull request \fI\%#40021\fP from Ch3LL/2016.3.6_release
  207451. .INDENT 2.0
  207452. .IP \(bu 2
  207453. f3e7e4fb2a Add 2016.3.6 Release Notes
  207454. .UNINDENT
  207455. .IP \(bu 2
  207456. 26895b7be2 Merge pull request \fI\%#40016\fP from terminalmage/fix\-grains\-test
  207457. .INDENT 2.0
  207458. .IP \(bu 2
  207459. 0ec81a4cde Fixup a syntax error
  207460. .IP \(bu 2
  207461. 5d84b40bfd Attempt to fix failing grains tests in 2016.3
  207462. .UNINDENT
  207463. .IP \(bu 2
  207464. 0c61d064ad Merge pull request \fI\%#39980\fP from vutny/cmd\-run\-state\-bg
  207465. .INDENT 2.0
  207466. .IP \(bu 2
  207467. a81dc9dfc1 [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  207468. .UNINDENT
  207469. .IP \(bu 2
  207470. b042484455 Merge pull request \fI\%#39994\fP from rallytime/ulimits\-dockerng\-version
  207471. .INDENT 2.0
  207472. .IP \(bu 2
  207473. 37bd800fac Add a versionadded tag for dockerng ulimits addition
  207474. .UNINDENT
  207475. .IP \(bu 2
  207476. e125c94ba5 Merge pull request \fI\%#39988\fP from terminalmage/dockerng\-timeout
  207477. .INDENT 2.0
  207478. .IP \(bu 2
  207479. bd2519ed1b Add comment explaining change from \fI\%#39973\fP
  207480. .UNINDENT
  207481. .UNINDENT
  207482. .IP \(bu 2
  207483. \fBPR\fP \fI\%#40020\fP: (\fI\%dmurphy18\fP) Full support for execution module timezone on AIX
  207484. @ \fI2017\-03\-14 21:05:31 UTC\fP
  207485. .INDENT 2.0
  207486. .IP \(bu 2
  207487. 8db74fb275 Merge pull request \fI\%#40020\fP from dmurphy18/aix_timezone
  207488. .IP \(bu 2
  207489. aabbbffd45 Full support to execution module timezone on AIX
  207490. .IP \(bu 2
  207491. 16d5c7ce4a WIP: timezone support for AIX
  207492. .UNINDENT
  207493. .IP \(bu 2
  207494. \fBPR\fP \fI\%#39924\fP: (\fI\%dmurphy18\fP) Add AIX support for user and group execution modules
  207495. @ \fI2017\-03\-14 21:04:02 UTC\fP
  207496. .INDENT 2.0
  207497. .IP \(bu 2
  207498. 60066da614 Merge pull request \fI\%#39924\fP from dmurphy18/salt_aix_fixMar
  207499. .IP \(bu 2
  207500. 5077c989bb Updated changes file for added AIX support
  207501. .IP \(bu 2
  207502. 8e107bd43e WIP: support for useradd on AIX
  207503. .IP \(bu 2
  207504. 2f87d727d6 WIP: group support for AIX
  207505. .UNINDENT
  207506. .IP \(bu 2
  207507. \fBPR\fP \fI\%#40010\fP: (\fI\%jettero\fP) S3 bucket path broken
  207508. @ \fI2017\-03\-14 19:01:01 UTC\fP
  207509. .INDENT 2.0
  207510. .IP \(bu 2
  207511. cd73eafec8 Merge pull request \fI\%#40010\fP from jettero/s3\-bucket\-path\-broken
  207512. .IP \(bu 2
  207513. acee5bf7c8 clarify this, because it messes people up in the mailing lists, and myself briefly before I thought about it
  207514. .IP \(bu 2
  207515. 8102ac8e3c same here
  207516. .IP \(bu 2
  207517. 21b79e00be In order for the heredoc to be correct, bucket and path have to default to \(aq\(aq, not None
  207518. .UNINDENT
  207519. .IP \(bu 2
  207520. \fBPR\fP \fI\%#39991\fP: (\fI\%terminalmage\fP) Document the fact that the checksum type can be omitted in file.managed states
  207521. @ \fI2017\-03\-14 15:58:11 UTC\fP
  207522. .INDENT 2.0
  207523. .IP \(bu 2
  207524. 61f1fb04c5 Merge pull request \fI\%#39991\fP from terminalmage/source_hash\-docs
  207525. .IP \(bu 2
  207526. 537fc36029 Document the fact that the checksum type can be omitted in file.managed states
  207527. .UNINDENT
  207528. .IP \(bu 2
  207529. \fBPR\fP \fI\%#39984\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207530. @ \fI2017\-03\-13 18:30:16 UTC\fP
  207531. .INDENT 2.0
  207532. .IP \(bu 2
  207533. 53d14d8ad9 Merge pull request \fI\%#39984\fP from rallytime/merge\-2016.11
  207534. .IP \(bu 2
  207535. ef6f4b15ca Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207536. .IP \(bu 2
  207537. cd0336e868 Merge pull request \fI\%#39973\fP from terminalmage/dockerng\-timeout
  207538. .INDENT 2.0
  207539. .IP \(bu 2
  207540. 869416e7db Don\(aqt use docker.Client instance from context if missing attributes
  207541. .UNINDENT
  207542. .UNINDENT
  207543. .IP \(bu 2
  207544. \fBPR\fP \fI\%#39967\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207545. @ \fI2017\-03\-10 23:45:33 UTC\fP
  207546. .INDENT 2.0
  207547. .IP \(bu 2
  207548. 31c00740e7 Merge pull request \fI\%#39967\fP from rallytime/merge\-2016.11
  207549. .IP \(bu 2
  207550. 3022466615 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207551. .IP \(bu 2
  207552. 282c607d26 Merge pull request \fI\%#39962\fP from cachedout/disable_mentionbot_delay_3
  207553. .INDENT 2.0
  207554. .IP \(bu 2
  207555. 7a638f204b Disable mention bot delay on 2016.3
  207556. .UNINDENT
  207557. .IP \(bu 2
  207558. 1e0c88ae08 Merge pull request \fI\%#39937\fP from cachedout/gpg_zypper
  207559. .INDENT 2.0
  207560. .IP \(bu 2
  207561. 13ed0d1209 Fix \-\-non\-gpg\-checks in zypper module
  207562. .UNINDENT
  207563. .UNINDENT
  207564. .IP \(bu 2
  207565. \fBPR\fP \fI\%#39963\fP: (\fI\%cachedout\fP) Mention bot delay disable for 2016.11
  207566. @ \fI2017\-03\-10 20:25:25 UTC\fP
  207567. .INDENT 2.0
  207568. .IP \(bu 2
  207569. 269a2fd739 Merge pull request \fI\%#39963\fP from cachedout/disable_mentionbot_delay_11
  207570. .IP \(bu 2
  207571. 5fcea05691 Mention bot delay disable for 2016.11
  207572. .UNINDENT
  207573. .IP \(bu 2
  207574. \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)
  207575. .IP \(bu 2
  207576. \fBPR\fP \fI\%#39952\fP: (\fI\%vutny\fP) Fix \fI\%#7997\fP: describe how to upgrade Salt Minion in a proper way
  207577. @ \fI2017\-03\-10 18:41:57 UTC\fP
  207578. .INDENT 2.0
  207579. .IP \(bu 2
  207580. 6350b07384 Merge pull request \fI\%#39952\fP from vutny/doc\-faq\-minion\-upgrade\-restart
  207581. .IP \(bu 2
  207582. d989d749d6 Fix \fI\%#7997\fP: describe how to upgrade Salt Minion in a proper way
  207583. .UNINDENT
  207584. .IP \(bu 2
  207585. \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)
  207586. .IP \(bu 2
  207587. \fBPR\fP \fI\%#39935\fP: (\fI\%cro\fP) Add special token to insert the minion id into the default_include path
  207588. @ \fI2017\-03\-10 17:51:55 UTC\fP
  207589. .INDENT 2.0
  207590. .IP \(bu 2
  207591. dc7d4f4224 Merge pull request \fI\%#39935\fP from cro/namespace_proxy_cfg
  207592. .IP \(bu 2
  207593. e4aef54c73 Add special token to insert the minion id into the default_include path
  207594. .UNINDENT
  207595. .IP \(bu 2
  207596. \fBPR\fP \fI\%#39936\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207597. @ \fI2017\-03\-10 17:05:04 UTC\fP
  207598. .INDENT 2.0
  207599. .IP \(bu 2
  207600. 9503a1d0c6 Merge pull request \fI\%#39936\fP from rallytime/merge\-2016.11
  207601. .IP \(bu 2
  207602. c8b5d390b5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207603. .INDENT 2.0
  207604. .IP \(bu 2
  207605. 4526fc6e08 Merge pull request \fI\%#39929\fP from terminalmage/pr\-39770\-2016.3
  207606. .INDENT 2.0
  207607. .IP \(bu 2
  207608. cf0100dabe Scrap event\-based approach for refreshing grains
  207609. .UNINDENT
  207610. .IP \(bu 2
  207611. 111110caf8 Merge pull request \fI\%#39919\fP from The\-Loeki/patch\-1
  207612. .INDENT 2.0
  207613. .IP \(bu 2
  207614. 170cbadc54 CIDR matching supports IPv6, update docs
  207615. .UNINDENT
  207616. .IP \(bu 2
  207617. caf10e9988 Merge pull request \fI\%#39899\fP from techhat/cleanupdisks
  207618. .INDENT 2.0
  207619. .IP \(bu 2
  207620. baf4579e63 Update cleanup function for azure
  207621. .UNINDENT
  207622. .IP \(bu 2
  207623. fcf95f3654 Merge pull request \fI\%#39871\fP from terminalmage/squelch\-import\-warning
  207624. .INDENT 2.0
  207625. .IP \(bu 2
  207626. 2b2ec69d04 Squelch warning for pygit2 import
  207627. .UNINDENT
  207628. .IP \(bu 2
  207629. f223fa8906 Merge pull request \fI\%#39794\fP from cachedout/clean_monitor_socket_shutdown
  207630. .INDENT 2.0
  207631. .IP \(bu 2
  207632. 2e683e788b Clean up errors which might be thrown when the monitor socket shuts down
  207633. .UNINDENT
  207634. .IP \(bu 2
  207635. 4002dc1947 Merge pull request \fI\%#39819\fP from terminalmage/top\-file\-matching\-docs
  207636. .INDENT 2.0
  207637. .IP \(bu 2
  207638. 7178e77eee Improve the Top File matching docs
  207639. .UNINDENT
  207640. .IP \(bu 2
  207641. c08aaeb7fd Merge pull request \fI\%#39820\fP from ni3mm4nd/beacons_topic_doc_typo
  207642. .INDENT 2.0
  207643. .IP \(bu 2
  207644. 804b12048c Add missing apostrophe
  207645. .UNINDENT
  207646. .IP \(bu 2
  207647. cbd2a4e3cc Merge pull request \fI\%#39826\fP from cachedout/yubikey_fix
  207648. .INDENT 2.0
  207649. .IP \(bu 2
  207650. 6125eff02d Add group func to yubikey auth
  207651. .UNINDENT
  207652. .IP \(bu 2
  207653. f575ef459f Merge pull request \fI\%#39624\fP from drawsmcgraw/39622
  207654. .INDENT 2.0
  207655. .IP \(bu 2
  207656. 13da50be33 Fix indention lint errors
  207657. .IP \(bu 2
  207658. 545026352f Address issue 39622
  207659. .UNINDENT
  207660. .IP \(bu 2
  207661. 1f3619c1e5 Merge pull request \fI\%#39796\fP from cachedout/master_shutdown
  207662. .INDENT 2.0
  207663. .IP \(bu 2
  207664. e31d46c1b8 Stop the process manager when it no longer has processes to manage
  207665. .UNINDENT
  207666. .IP \(bu 2
  207667. 53341cf152 Merge pull request \fI\%#39791\fP from gtmanfred/2016.3
  207668. .INDENT 2.0
  207669. .IP \(bu 2
  207670. 3ab4f843bf load runners if role is master
  207671. .UNINDENT
  207672. .IP \(bu 2
  207673. c234c25092 Merge pull request \fI\%#39784\fP from sergeizv/fix\-39782
  207674. .INDENT 2.0
  207675. .IP \(bu 2
  207676. b71c3fe13c Revert "cloud.clouds.ec2: cache each named node (\fI\%#33164\fP)"
  207677. .UNINDENT
  207678. .IP \(bu 2
  207679. 4ee59be22c Merge pull request \fI\%#39766\fP from rallytime/fix\-ipv6\-connection
  207680. .INDENT 2.0
  207681. .IP \(bu 2
  207682. 65b239664e Restore ipv6 connectivity and "master: <ip>:<port>" support
  207683. .UNINDENT
  207684. .UNINDENT
  207685. .UNINDENT
  207686. .IP \(bu 2
  207687. \fBISSUE\fP \fI\%#38121\fP: (\fI\%Da\-Juan\fP) Beacon configuration doesn\(aqt work as a list (refs: \fI\%#39932\fP, \fI\%#39930\fP)
  207688. .IP \(bu 2
  207689. \fBPR\fP \fI\%#39932\fP: (\fI\%rallytime\fP) Cherry\-pick the beacon fixes made in \fI\%#39930\fP to 2016.11
  207690. @ \fI2017\-03\-10 00:21:09 UTC\fP
  207691. .INDENT 2.0
  207692. .IP \(bu 2
  207693. \fBPR\fP \fI\%#39930\fP: (\fI\%s0undt3ch\fP) Moar Py3 and a fix for \fI\%#38121\fP (refs: \fI\%#39932\fP)
  207694. .IP \(bu 2
  207695. 899e037f0a Merge pull request \fI\%#39932\fP from rallytime/cp\-beacon\-fixes
  207696. .IP \(bu 2
  207697. 4a52cca926 Pylint fixes
  207698. .IP \(bu 2
  207699. 4627c4ea6d Code cleanup and make sure the beacons config file is deleted after testing
  207700. .IP \(bu 2
  207701. c7fc09f97d Support the new list configuration format.
  207702. .IP \(bu 2
  207703. be06df9b64 Remove \fI*args, **kwargs\fP\&. Not needed, not useful.
  207704. .IP \(bu 2
  207705. 4a242829ee These tests aren\(aqt even using mock!
  207706. .IP \(bu 2
  207707. 6408b123e7 These tests are not destructive
  207708. .IP \(bu 2
  207709. 50e51b5b9d The beacons configuration is now a list. Handle it!
  207710. .UNINDENT
  207711. .IP \(bu 2
  207712. \fBPR\fP \fI\%#39933\fP: (\fI\%hkrist\fP) Fixed rawfile_json returner output format.
  207713. @ \fI2017\-03\-10 00:20:52 UTC\fP
  207714. .INDENT 2.0
  207715. .IP \(bu 2
  207716. 2e68edee4a Merge pull request \fI\%#39933\fP from hkrist/fix\-rawfile_json_returner\-format
  207717. .IP \(bu 2
  207718. 4d0ddcd110 Fixed rawfile_json returner output format. It outputted python object instead of standard json.
  207719. .UNINDENT
  207720. .IP \(bu 2
  207721. \fBPR\fP \fI\%#39934\fP: (\fI\%dmurphy18\fP) Correct comment lines output from execution module\(aqs host.list_hosts
  207722. @ \fI2017\-03\-10 00:20:14 UTC\fP
  207723. .INDENT 2.0
  207724. .IP \(bu 2
  207725. fb0dc33c42 Merge pull request \fI\%#39934\fP from dmurphy18/fix_host_list
  207726. .IP \(bu 2
  207727. e7b9a45079 Correct comment lines output got list_hosts
  207728. .UNINDENT
  207729. .IP \(bu 2
  207730. \fBPR\fP \fI\%#39900\fP: (\fI\%twangboy\fP) Namespace the line function properly in win_file
  207731. @ \fI2017\-03\-09 22:19:12 UTC\fP
  207732. .INDENT 2.0
  207733. .IP \(bu 2
  207734. a6f88d03df Merge pull request \fI\%#39900\fP from twangboy/win_fix_line
  207735. .IP \(bu 2
  207736. 462bdecd33 Namespace the line function properly in win_file
  207737. .UNINDENT
  207738. .IP \(bu 2
  207739. \fBISSUE\fP \fI\%#37741\fP: (\fI\%discountbin\fP) Check in file.replace state for ignore_if_missing (refs: \fI\%#37743\fP, \fI\%#39910\fP)
  207740. .IP \(bu 2
  207741. \fBPR\fP \fI\%#39910\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37743\fP to 2016.11
  207742. @ \fI2017\-03\-09 22:16:58 UTC\fP
  207743. .INDENT 2.0
  207744. .IP \(bu 2
  207745. \fBPR\fP \fI\%#37743\fP: (\fI\%discountbin\fP) Adding check for ignore_if_missing param when calling _check_file. (refs: \fI\%#39910\fP)
  207746. .IP \(bu 2
  207747. 77ecff4e02 Merge pull request \fI\%#39910\fP from rallytime/bp\-37743
  207748. .IP \(bu 2
  207749. ca306c0860 Replace pass with updated comment for return
  207750. .IP \(bu 2
  207751. 1a78878b47 Adding check for ignore_if_missing param when calling _check_file.
  207752. .UNINDENT
  207753. .IP \(bu 2
  207754. \fBPR\fP \fI\%#39770\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207755. @ \fI2017\-03\-09 22:00:17 UTC\fP
  207756. .INDENT 2.0
  207757. .IP \(bu 2
  207758. c2d4d17589 Merge pull request \fI\%#39770\fP from rallytime/merge\-2016.11
  207759. .IP \(bu 2
  207760. dbaea3de73 Remove extra refresh reference that snuck in
  207761. .IP \(bu 2
  207762. d9f48ac6ea Don\(aqt shadow refresh_pillar
  207763. .IP \(bu 2
  207764. d86b03dc90 Remove manual refresh code from minion.py
  207765. .IP \(bu 2
  207766. a7e419e35f Scrap event\-based approach for refreshing grains
  207767. .IP \(bu 2
  207768. 776a9431b9 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207769. .INDENT 2.0
  207770. .IP \(bu 2
  207771. a24da31131 Merge pull request \fI\%#39761\fP from cachedout/issue_33187
  207772. .INDENT 2.0
  207773. .IP \(bu 2
  207774. c2df29edb2 Properly display error in jboss7 state
  207775. .UNINDENT
  207776. .IP \(bu 2
  207777. 0888bc32ef Merge pull request \fI\%#39728\fP from rallytime/update\-release\-ver\-2016.3
  207778. .INDENT 2.0
  207779. .IP \(bu 2
  207780. c9bc8af8f2 [2016.3] Bump latest release version to 2016.11.3
  207781. .UNINDENT
  207782. .IP \(bu 2
  207783. b52dbeec68 Merge pull request \fI\%#39619\fP from terminalmage/zd1207
  207784. .INDENT 2.0
  207785. .IP \(bu 2
  207786. c7dfb494a6 Fix mocking for grains refresh
  207787. .IP \(bu 2
  207788. 7e0ced3b45 Properly hand proxy minions
  207789. .IP \(bu 2
  207790. 692c456da3 Add a function to simply refresh the grains
  207791. .UNINDENT
  207792. .UNINDENT
  207793. .UNINDENT
  207794. .IP \(bu 2
  207795. \fBPR\fP \fI\%#39872\fP: (\fI\%techhat\fP) Add installation tips for azurearm driver
  207796. @ \fI2017\-03\-07 23:18:04 UTC\fP
  207797. .INDENT 2.0
  207798. .IP \(bu 2
  207799. 801ff28053 Merge pull request \fI\%#39872\fP from techhat/fixdocs
  207800. .IP \(bu 2
  207801. 35440c5936 Add installation tips for azure
  207802. .IP \(bu 2
  207803. 2a1ae0bf2e Change example master in azure docs
  207804. .UNINDENT
  207805. .IP \(bu 2
  207806. \fBPR\fP \fI\%#39837\fP: (\fI\%terminalmage\fP) Fix regression in archive.extracted when it runs file.directory
  207807. @ \fI2017\-03\-07 04:09:51 UTC\fP
  207808. .INDENT 2.0
  207809. .IP \(bu 2
  207810. 6d0f15c31a Merge pull request \fI\%#39837\fP from terminalmage/more\-issue39751
  207811. .IP \(bu 2
  207812. 0285ff3c7d Fix regression in archive.extracted when it runs file.directory
  207813. .UNINDENT
  207814. .IP \(bu 2
  207815. \fBPR\fP \fI\%#39858\fP: (\fI\%techhat\fP) Reorder keys that were being declared in the wrong place
  207816. @ \fI2017\-03\-07 03:51:56 UTC\fP
  207817. .INDENT 2.0
  207818. .IP \(bu 2
  207819. 68752a2a18 Merge pull request \fI\%#39858\fP from techhat/statuskey
  207820. .IP \(bu 2
  207821. 507a4f7f93 Reorder keys that were being declared in the wrong place
  207822. .UNINDENT
  207823. .IP \(bu 2
  207824. \fBISSUE\fP \fI\%#38830\fP: (\fI\%danielmotaleite\fP) salt\-ssh: vault fails to use config (refs: \fI\%#38943\fP)
  207825. .IP \(bu 2
  207826. \fBPR\fP \fI\%#39862\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38943\fP to 2016.11
  207827. @ \fI2017\-03\-07 03:34:40 UTC\fP
  207828. .INDENT 2.0
  207829. .IP \(bu 2
  207830. \fBPR\fP \fI\%#38943\fP: (\fI\%thatch45\fP) When we generate the pillar we should send in the master opts (refs: \fI\%#39862\fP)
  207831. .IP \(bu 2
  207832. 49c8faa141 Merge pull request \fI\%#39862\fP from rallytime/bp\-38943
  207833. .IP \(bu 2
  207834. e21b16c002 try it with a different init sequence
  207835. .IP \(bu 2
  207836. 92cac0ff8b make it a deepcopy
  207837. .IP \(bu 2
  207838. 58cb8cd4f5 make sure to copy the top dict reference since we are moding it
  207839. .IP \(bu 2
  207840. a0b671ea43 When we generate the pillar we should send in the master opts
  207841. .UNINDENT
  207842. .IP \(bu 2
  207843. \fBPR\fP \fI\%#39852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39651\fP to 2016.11
  207844. @ \fI2017\-03\-06 21:18:34 UTC\fP
  207845. .INDENT 2.0
  207846. .IP \(bu 2
  207847. \fBPR\fP \fI\%#39651\fP: (\fI\%DennisHarper\fP) Checking Instance when calling a function that can return None (refs: \fI\%#39852\fP)
  207848. .IP \(bu 2
  207849. 8ecc719f90 Merge pull request \fI\%#39852\fP from rallytime/bp\-39651
  207850. .IP \(bu 2
  207851. bb5ddbe18c Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207852. .IP \(bu 2
  207853. 79f2a7cbb7 Update __init__.py
  207854. .IP \(bu 2
  207855. e2a232921d Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207856. .IP \(bu 2
  207857. 838774291d Update __init__.py
  207858. .IP \(bu 2
  207859. ff6f63e9dd Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207860. .IP \(bu 2
  207861. 855f87554c Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207862. .UNINDENT
  207863. .IP \(bu 2
  207864. \fBISSUE\fP \fI\%#39052\fP: (\fI\%githubcdr\fP) Minion restart very slow since 2016.11.2 (refs: \fI\%#39104\fP)
  207865. .IP \(bu 2
  207866. \fBPR\fP \fI\%#39851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39104\fP to 2016.11
  207867. @ \fI2017\-03\-06 21:17:43 UTC\fP
  207868. .INDENT 2.0
  207869. .IP \(bu 2
  207870. \fBPR\fP \fI\%#39104\fP: (\fI\%githubcdr\fP) Do not use name resolving for \-\-notrim check (refs: \fI\%#39851\fP)
  207871. .IP \(bu 2
  207872. 897275ae5f Merge pull request \fI\%#39851\fP from rallytime/bp\-39104
  207873. .IP \(bu 2
  207874. 6539dbdbca Do not use name resolving for \-\-notrim check
  207875. .UNINDENT
  207876. .IP \(bu 2
  207877. \fBISSUE\fP \fI\%#38231\fP: (\fI\%tjuup\fP) Typo: salt\-key deleteed (refs: \fI\%#39799\fP)
  207878. .IP \(bu 2
  207879. \fBPR\fP \fI\%#39799\fP: (\fI\%Ch3LL\fP) Fix deleteed message when key is deleted
  207880. @ \fI2017\-03\-03 05:17:43 UTC\fP
  207881. .INDENT 2.0
  207882. .IP \(bu 2
  207883. d0440e2a2a Merge pull request \fI\%#39799\fP from Ch3LL/fix_salt_key_msg
  207884. .IP \(bu 2
  207885. 8346682cf7 Fix deleteed message when key is deleted
  207886. .UNINDENT
  207887. .IP \(bu 2
  207888. \fBISSUE\fP \fI\%#38962\fP: (\fI\%gstachowiak\fP) Broken /jobs in salt\-api in salt 2016.11.1 (Carbon) (refs: \fI\%#39472\fP)
  207889. .IP \(bu 2
  207890. \fBPR\fP \fI\%#39472\fP: (\fI\%whiteinge\fP) Update _reformat_low to not run kwarg dicts through parse_input
  207891. @ \fI2017\-03\-02 17:46:20 UTC\fP
  207892. .INDENT 2.0
  207893. .IP \(bu 2
  207894. 9f70ad7164 Merge pull request \fI\%#39472\fP from whiteinge/_reformat_low\-update
  207895. .IP \(bu 2
  207896. d11f5381a4 Add RunnerClient test for old/new\-style arg/kwarg parsing
  207897. .IP \(bu 2
  207898. ec377ab379 Reenable skipped RunnerClient tests
  207899. .IP \(bu 2
  207900. 27f7fd9ad4 Update _reformat_low to run arg through parse_input
  207901. .IP \(bu 2
  207902. 5177153459 Revert parse_input change from \fI\%#32005\fP
  207903. .UNINDENT
  207904. .IP \(bu 2
  207905. \fBPR\fP \fI\%#39727\fP: (\fI\%terminalmage\fP) salt.modules.state: check gathered pillar for errors instead of in\-memory pillar
  207906. @ \fI2017\-03\-02 17:06:43 UTC\fP
  207907. .INDENT 2.0
  207908. .IP \(bu 2
  207909. 7dfc4b572a Merge pull request \fI\%#39727\fP from terminalmage/issue39627
  207910. .IP \(bu 2
  207911. 3bb0ebd872 Update tests for PR 39727
  207912. .IP \(bu 2
  207913. c334b59c96 salt.modules.state: check gathered pillar for errors instead of in\-memory pillar
  207914. .IP \(bu 2
  207915. 97dd8a13d9 Ensure that ext_pillar begins with pillar_override if ext_pillar_first is True
  207916. .IP \(bu 2
  207917. f951266944 Add log message for successful makostack processing
  207918. .UNINDENT
  207919. .IP \(bu 2
  207920. \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)
  207921. .IP \(bu 2
  207922. \fBPR\fP \fI\%#39776\fP: (\fI\%mirceaulinic\fP) WIP: Save _schedule.conf under <proxy ID> dir
  207923. @ \fI2017\-03\-02 16:27:45 UTC\fP
  207924. .INDENT 2.0
  207925. .IP \(bu 2
  207926. 965f474316 Merge pull request \fI\%#39776\fP from cloudflare/proxy\-schedule
  207927. .IP \(bu 2
  207928. 35b8b8fd64 Save _schedule.conf under <minion ID> dir
  207929. .UNINDENT
  207930. .IP \(bu 2
  207931. \fBPR\fP \fI\%#39788\fP: (\fI\%cachedout\fP) Disable one API test that is flaky
  207932. @ \fI2017\-03\-02 16:17:31 UTC\fP
  207933. .INDENT 2.0
  207934. .IP \(bu 2
  207935. 555f1473f6 Merge pull request \fI\%#39788\fP from cachedout/disable_api_test
  207936. .IP \(bu 2
  207937. 523e377b33 Disable one API test that is flaky
  207938. .UNINDENT
  207939. .IP \(bu 2
  207940. \fBPR\fP \fI\%#39762\fP: (\fI\%terminalmage\fP) Fix regression in file.get_managed
  207941. @ \fI2017\-03\-02 02:59:34 UTC\fP
  207942. .INDENT 2.0
  207943. .IP \(bu 2
  207944. 793979cbe6 Merge pull request \fI\%#39762\fP from terminalmage/issue39751
  207945. .IP \(bu 2
  207946. 64db0b8563 Add integration tests for remote file sources
  207947. .IP \(bu 2
  207948. f9f894d981 Fix regression in file.get_managed when skip_verify=True
  207949. .IP \(bu 2
  207950. 28651a6699 Remove next(iter()) extraction
  207951. .UNINDENT
  207952. .IP \(bu 2
  207953. \fBISSUE\fP \fI\%#35088\fP: (\fI\%Modulus\fP) salt/cloud/ec2.py encoding problems. (refs: \fI\%#37912\fP)
  207954. .IP \(bu 2
  207955. \fBPR\fP \fI\%#39767\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38316\fP to 2016.11
  207956. @ \fI2017\-03\-02 02:54:57 UTC\fP
  207957. .INDENT 2.0
  207958. .IP \(bu 2
  207959. \fBPR\fP \fI\%#38316\fP: (\fI\%mlalpho\fP) salt utils aws encoding fix (refs: \fI\%#39767\fP)
  207960. .IP \(bu 2
  207961. \fBPR\fP \fI\%#37912\fP: (\fI\%attiasr\fP) fix encoding problem aws responses (refs: \fI\%#38316\fP)
  207962. .IP \(bu 2
  207963. 91a9337ab3 Merge pull request \fI\%#39767\fP from rallytime/bp\-38316
  207964. .IP \(bu 2
  207965. 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.
  207966. .UNINDENT
  207967. .IP \(bu 2
  207968. \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)
  207969. .IP \(bu 2
  207970. \fBPR\fP \fI\%#39768\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39719\fP to 2016.11
  207971. @ \fI2017\-03\-02 02:54:40 UTC\fP
  207972. .INDENT 2.0
  207973. .IP \(bu 2
  207974. \fBPR\fP \fI\%#39719\fP: (\fI\%Seb\-Solon\fP) Support new version of tuned\-adm binary (refs: \fI\%#39768\fP)
  207975. .IP \(bu 2
  207976. 4a01bd64ea Merge pull request \fI\%#39768\fP from rallytime/bp\-39719
  207977. .IP \(bu 2
  207978. d7cb70f203 Enh: Support new version of tuned\-adm binary
  207979. .UNINDENT
  207980. .IP \(bu 2
  207981. \fBPR\fP \fI\%#39760\fP: (\fI\%Ch3LL\fP) Initial 2016.11.4 Release Notes Doc
  207982. @ \fI2017\-03\-01 18:43:39 UTC\fP
  207983. .INDENT 2.0
  207984. .IP \(bu 2
  207985. 780457f934 Merge pull request \fI\%#39760\fP from Ch3LL/2016.11.4_notes
  207986. .IP \(bu 2
  207987. 1853c998c4 add initial 2016.11.4 release notes
  207988. .UNINDENT
  207989. .IP \(bu 2
  207990. \fBPR\fP \fI\%#39731\fP: (\fI\%twangboy\fP) Add docs for Kwargs in pkg.refresh_db
  207991. @ \fI2017\-02\-28 22:02:59 UTC\fP
  207992. .INDENT 2.0
  207993. .IP \(bu 2
  207994. 0147f78ab5 Merge pull request \fI\%#39731\fP from twangboy/win_pkg_docs
  207995. .IP \(bu 2
  207996. 423e6f7448 Add docs for Kwargs in pkg.refresh_db
  207997. .UNINDENT
  207998. .IP \(bu 2
  207999. \fBISSUE\fP \fI\%#39710\fP: (\fI\%huangfupeng\fP) schedule.add parameter can not use “after“ (refs: \fI\%#39734\fP)
  208000. .IP \(bu 2
  208001. \fBPR\fP \fI\%#39734\fP: (\fI\%garethgreenaway\fP) Missing parameter in the schedule.add function
  208002. @ \fI2017\-02\-28 20:43:08 UTC\fP
  208003. .INDENT 2.0
  208004. .IP \(bu 2
  208005. fce2d184f3 Merge pull request \fI\%#39734\fP from garethgreenaway/39710_missing_schedule_add_parameter
  208006. .IP \(bu 2
  208007. 63eb610245 Per \fI\%#39710\fP, missing parameter in the schedule.add function
  208008. .UNINDENT
  208009. .IP \(bu 2
  208010. \fBPR\fP \fI\%#39729\fP: (\fI\%rallytime\fP) [2016.11] Bump latest release version to 2016.11.3
  208011. @ \fI2017\-02\-28 18:08:25 UTC\fP
  208012. .INDENT 2.0
  208013. .IP \(bu 2
  208014. 7b4865c058 Merge pull request \fI\%#39729\fP from rallytime/update\-release\-ver\-2016.11
  208015. .IP \(bu 2
  208016. b5a7111ad9 [2016.11] Bump latest release version to 2016.11.3
  208017. .UNINDENT
  208018. .IP \(bu 2
  208019. \fBPR\fP \fI\%#39721\fP: (\fI\%vutny\fP) DOCS: add 2nd level header for advanced targeting methods
  208020. @ \fI2017\-02\-28 17:57:46 UTC\fP
  208021. .INDENT 2.0
  208022. .IP \(bu 2
  208023. 47e494fe07 Merge pull request \fI\%#39721\fP from vutny/doc\-targeting
  208024. .IP \(bu 2
  208025. 1d86cf1161 DOCS: add 2nd level header for advanced targeting methods
  208026. .UNINDENT
  208027. .IP \(bu 2
  208028. \fBISSUE\fP \fI\%#39683\fP: (\fI\%alankrita\fP) Error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq " (refs: \fI\%#39711\fP)
  208029. .IP \(bu 2
  208030. \fBPR\fP \fI\%#39711\fP: (\fI\%alankrita\fP) Fix error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq "
  208031. @ \fI2017\-02\-28 15:56:09 UTC\fP
  208032. .INDENT 2.0
  208033. .IP \(bu 2
  208034. d39b679d82 Merge pull request \fI\%#39711\fP from alankrita/fix\-rest\-eauth
  208035. .IP \(bu 2
  208036. ee426562a7 Fix error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq "
  208037. .UNINDENT
  208038. .IP \(bu 2
  208039. \fBPR\fP \fI\%#39699\fP: (\fI\%techhat\fP) Strip shabang line from rendered HTTP data
  208040. @ \fI2017\-02\-28 00:05:01 UTC\fP
  208041. .INDENT 2.0
  208042. .IP \(bu 2
  208043. 3940321462 Merge pull request \fI\%#39699\fP from techhat/httpshabang
  208044. .IP \(bu 2
  208045. 559eb93576 Strip shabang line from rendered HTTP data
  208046. .UNINDENT
  208047. .IP \(bu 2
  208048. \fBPR\fP \fI\%#39694\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208049. @ \fI2017\-02\-27 22:13:49 UTC\fP
  208050. .INDENT 2.0
  208051. .IP \(bu 2
  208052. 00f121eade Merge pull request \fI\%#39694\fP from rallytime/merge\-2016.11
  208053. .IP \(bu 2
  208054. 756f1de2d2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208055. .INDENT 2.0
  208056. .IP \(bu 2
  208057. 3f8b5e6733 Merge pull request \fI\%#39487\fP from bobrik/mode\-docs
  208058. .INDENT 2.0
  208059. .IP \(bu 2
  208060. 41ef69b3ca Document default permission modes for file module
  208061. .UNINDENT
  208062. .IP \(bu 2
  208063. f7389bf1f5 Merge pull request \fI\%#39641\fP from smarsching/issue\-39169\-2016.3
  208064. .INDENT 2.0
  208065. .IP \(bu 2
  208066. 88c2d9a540 Fix return data structure for runner (issue \fI\%#39169\fP).
  208067. .UNINDENT
  208068. .IP \(bu 2
  208069. fc970b6a16 Merge pull request \fI\%#39633\fP from terminalmage/fix\-systemd\-typo
  208070. .INDENT 2.0
  208071. .IP \(bu 2
  208072. ca54541abe Add missing unit test for disable func
  208073. .IP \(bu 2
  208074. 17109e1522 Fix misspelled argument in salt.modules.systemd.disable()
  208075. .UNINDENT
  208076. .IP \(bu 2
  208077. 53e78d67f6 Merge pull request \fI\%#39613\fP from terminalmage/fix\-docs
  208078. .INDENT 2.0
  208079. .IP \(bu 2
  208080. 9342eda377 Fix inaccurate documentation
  208081. .UNINDENT
  208082. .UNINDENT
  208083. .UNINDENT
  208084. .IP \(bu 2
  208085. \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)
  208086. .IP \(bu 2
  208087. \fBPR\fP \fI\%#39643\fP: (\fI\%drawsmcgraw\fP) issue 39642 \- boto_vpc.nat_gateway_present should accept parameter al…
  208088. @ \fI2017\-02\-27 20:19:09 UTC\fP
  208089. .INDENT 2.0
  208090. .IP \(bu 2
  208091. 2c919e31d6 Merge pull request \fI\%#39643\fP from drawsmcgraw/39642
  208092. .IP \(bu 2
  208093. 56d9adfbf6 issue 39642 \- boto_vpc.nat_gateway_present should accept parameter allocation_id.
  208094. .UNINDENT
  208095. .IP \(bu 2
  208096. \fBPR\fP \fI\%#39666\fP: (\fI\%terminalmage\fP) Rewrite the test_valid_docs test
  208097. @ \fI2017\-02\-26 20:14:33 UTC\fP
  208098. .INDENT 2.0
  208099. .IP \(bu 2
  208100. df013c5f31 Merge pull request \fI\%#39666\fP from terminalmage/test_valid_docs
  208101. .IP \(bu 2
  208102. 5a3c099e4f Rewrite the tests_valid_docs test
  208103. .UNINDENT
  208104. .IP \(bu 2
  208105. \fBPR\fP \fI\%#39662\fP: (\fI\%The\-Loeki\fP) Py3 compat: Force minions to be a list for local serialized caches
  208106. @ \fI2017\-02\-26 02:36:46 UTC\fP
  208107. .INDENT 2.0
  208108. .IP \(bu 2
  208109. a29a7be7f8 Merge pull request \fI\%#39662\fP from The\-Loeki/py3cachefix
  208110. .IP \(bu 2
  208111. b02ef984f7 Add comment
  208112. .IP \(bu 2
  208113. 0fe5c90a05 Py3 compat: Force minions to be a list for local serialized caches
  208114. .UNINDENT
  208115. .IP \(bu 2
  208116. \fBPR\fP \fI\%#39644\fP: (\fI\%vutny\fP) Improve and align dockerng execution module docs
  208117. @ \fI2017\-02\-25 04:16:28 UTC\fP
  208118. .INDENT 2.0
  208119. .IP \(bu 2
  208120. bd6efd18b1 Merge pull request \fI\%#39644\fP from vutny/dockerng\-docs
  208121. .IP \(bu 2
  208122. c4988e874e Improve and align dockerng execution module docs
  208123. .UNINDENT
  208124. .IP \(bu 2
  208125. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error
  208126. @ \fI2017\-02\-24 23:41:36 UTC\fP
  208127. .INDENT 2.0
  208128. .IP \(bu 2
  208129. fffab54078 Merge pull request \fI\%#39516\fP from jettero/give\-pillarenv\-tops\-similar\-treatment
  208130. .IP \(bu 2
  208131. 8fe48fa5c4 prevent billions of inexplicable lines of this:
  208132. .UNINDENT
  208133. .IP \(bu 2
  208134. \fBPR\fP \fI\%#39654\fP: (\fI\%skizunov\fP) Fix issue where compile_pillar failure causes minion to exit
  208135. @ \fI2017\-02\-24 22:47:52 UTC\fP
  208136. .INDENT 2.0
  208137. .IP \(bu 2
  208138. be9629b180 Merge pull request \fI\%#39654\fP from skizunov/develop2
  208139. .IP \(bu 2
  208140. 9f80bbce07 Fix issue where compile_pillar failure causes minion to exit
  208141. .UNINDENT
  208142. .IP \(bu 2
  208143. \fBPR\fP \fI\%#39653\fP: (\fI\%cachedout\fP) Use salt\(aqs ordereddict for comparison
  208144. @ \fI2017\-02\-24 22:46:24 UTC\fP
  208145. .INDENT 2.0
  208146. .IP \(bu 2
  208147. e63cbbaab9 Merge pull request \fI\%#39653\fP from cachedout/26_odict
  208148. .IP \(bu 2
  208149. 91eb7210bb Use salt\(aqs ordereddict for comparison
  208150. .UNINDENT
  208151. .IP \(bu 2
  208152. \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)
  208153. .IP \(bu 2
  208154. \fBPR\fP \fI\%#39609\fP: (\fI\%gtmanfred\fP) intialize the Client stuff in FSClient
  208155. @ \fI2017\-02\-24 18:50:55 UTC\fP
  208156. .INDENT 2.0
  208157. .IP \(bu 2
  208158. 0bc6027e68 Merge pull request \fI\%#39609\fP from gtmanfred/2016.11
  208159. .IP \(bu 2
  208160. 0820620ef8 intialize the Client stuff in FSClient
  208161. .UNINDENT
  208162. .IP \(bu 2
  208163. \fBPR\fP \fI\%#39615\fP: (\fI\%skizunov\fP) Bonjour/Avahi beacons: Make sure TXT record length is valid
  208164. @ \fI2017\-02\-24 18:47:05 UTC\fP
  208165. .INDENT 2.0
  208166. .IP \(bu 2
  208167. 28035c07b3 Merge pull request \fI\%#39615\fP from skizunov/develop2
  208168. .IP \(bu 2
  208169. b1c7e9b505 Bonjour/Avahi beacons: Make sure TXT record length is valid
  208170. .UNINDENT
  208171. .IP \(bu 2
  208172. \fBPR\fP \fI\%#39617\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208173. @ \fI2017\-02\-24 16:07:55 UTC\fP
  208174. .INDENT 2.0
  208175. .IP \(bu 2
  208176. e9410fb669 Merge pull request \fI\%#39617\fP from rallytime/merge\-2016.11
  208177. .IP \(bu 2
  208178. 13622899d2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208179. .IP \(bu 2
  208180. 4e2b852f83 Merge pull request \fI\%#39600\fP from vutny/state\-file\-docs
  208181. .INDENT 2.0
  208182. .IP \(bu 2
  208183. 9b0427c27a state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  208184. .UNINDENT
  208185. .IP \(bu 2
  208186. ed83420417 Merge pull request \fI\%#39584\fP from cachedout/mentionbot_docs
  208187. .INDENT 2.0
  208188. .IP \(bu 2
  208189. 652044b18f A note in the docs about mentionbot
  208190. .UNINDENT
  208191. .IP \(bu 2
  208192. d3e50b4f2f Merge pull request \fI\%#39583\fP from cachedout/mentionbot_blacklist
  208193. .INDENT 2.0
  208194. .IP \(bu 2
  208195. 62491c900d Add empty blacklist to mention bot
  208196. .UNINDENT
  208197. .UNINDENT
  208198. .IP \(bu 2
  208199. \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)
  208200. .IP \(bu 2
  208201. \fBISSUE\fP \fI\%#33575\fP: (\fI\%anlutro\fP) File states seem slower in 2016.3, especially on first cache retrieval (refs: \fI\%#33896\fP)
  208202. .IP \(bu 2
  208203. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  208204. .IP \(bu 2
  208205. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  208206. .IP \(bu 2
  208207. \fBPR\fP \fI\%#39505\fP: (\fI\%cachedout\fP) Threadsafety option for context dictionaries
  208208. @ \fI2017\-02\-23 19:38:13 UTC\fP
  208209. .INDENT 2.0
  208210. .IP \(bu 2
  208211. \fBPR\fP \fI\%#37378\fP: (\fI\%skizunov\fP) Fix \fI__context__\fP to properly sandbox (refs: \fI\%#39505\fP)
  208212. .IP \(bu 2
  208213. \fBPR\fP \fI\%#33896\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt deep copy context dict values. (refs: \fI\%#39505\fP)
  208214. .IP \(bu 2
  208215. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#33896\fP)
  208216. .IP \(bu 2
  208217. 0d31201e08 Merge pull request \fI\%#39505\fP from cachedout/issue_38758
  208218. .IP \(bu 2
  208219. 1dba2f9cb0 Add warning in docs
  208220. .IP \(bu 2
  208221. 9cf654b72c Threadsafety option for context dictionaries
  208222. .UNINDENT
  208223. .IP \(bu 2
  208224. \fBPR\fP \fI\%#39507\fP: (\fI\%joe\-niland\fP) Detect IIS version and vary certificate association command depending on version
  208225. @ \fI2017\-02\-23 19:15:40 UTC\fP
  208226. .INDENT 2.0
  208227. .IP \(bu 2
  208228. c0d4357f46 Merge pull request \fI\%#39507\fP from joe\-niland/iis\-7\-cert\-binding
  208229. .IP \(bu 2
  208230. 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
  208231. .IP \(bu 2
  208232. 18effe0103 Detect IIS version and vary certificate association command depending on version
  208233. .UNINDENT
  208234. .IP \(bu 2
  208235. \fBPR\fP \fI\%#39565\fP: (\fI\%terminalmage\fP) states.file.patch/modules.file.check_hash: use hash length to determine type
  208236. @ \fI2017\-02\-23 19:14:28 UTC\fP
  208237. .INDENT 2.0
  208238. .IP \(bu 2
  208239. e6f5e8a474 Merge pull request \fI\%#39565\fP from terminalmage/issue39512
  208240. .IP \(bu 2
  208241. cbdf905b9f Update test to reflect new state comment
  208242. .IP \(bu 2
  208243. 650dbaca4e states.file.patch/modules.file.check_hash: use hash length to determine type
  208244. .UNINDENT
  208245. .IP \(bu 2
  208246. \fBPR\fP \fI\%#39591\fP: (\fI\%mcalmer\fP) fix case in os_family for Suse
  208247. @ \fI2017\-02\-23 19:07:17 UTC\fP
  208248. .INDENT 2.0
  208249. .IP \(bu 2
  208250. 53e22b8f15 Merge pull request \fI\%#39591\fP from mcalmer/fix\-case\-in\-os_family
  208251. .IP \(bu 2
  208252. 81bd96e32d fix case in os_family for Suse
  208253. .UNINDENT
  208254. .IP \(bu 2
  208255. \fBISSUE\fP \fI\%#38452\fP: (\fI\%jf\fP) file.line with mode=delete does not preserve ownership of a file (refs: \fI\%#39592\fP)
  208256. .IP \(bu 2
  208257. \fBPR\fP \fI\%#39592\fP: (\fI\%skazi0\fP) Ensure user/group/file_mode after line edit
  208258. @ \fI2017\-02\-23 18:40:05 UTC\fP
  208259. .INDENT 2.0
  208260. .IP \(bu 2
  208261. aee43f7fa4 Merge pull request \fI\%#39592\fP from skazi0/line\-user\-fix
  208262. .IP \(bu 2
  208263. baf84b4430 Ensure user/group/file_mode after line edit
  208264. .UNINDENT
  208265. .IP \(bu 2
  208266. \fBPR\fP \fI\%#39596\fP: (\fI\%ticosax\fP) Reduce scope of try except StopIteration wrapping
  208267. @ \fI2017\-02\-23 18:16:17 UTC\fP
  208268. .INDENT 2.0
  208269. .IP \(bu 2
  208270. 6ab4151213 Merge pull request \fI\%#39596\fP from ticosax/reduce\-scope\-catehed\-exception
  208271. .IP \(bu 2
  208272. 54cdacb680 Reduce scope of try except StopIteration wrapping
  208273. .UNINDENT
  208274. .IP \(bu 2
  208275. \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)
  208276. .IP \(bu 2
  208277. \fBPR\fP \fI\%#39610\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39589\fP to 2016.11
  208278. @ \fI2017\-02\-23 17:48:03 UTC\fP
  208279. .INDENT 2.0
  208280. .IP \(bu 2
  208281. \fBPR\fP \fI\%#39589\fP: (\fI\%MasterNayru\fP) Allow masterless minions to pull files from S3 (refs: \fI\%#39610\fP)
  208282. .IP \(bu 2
  208283. b1c3b84862 Merge pull request \fI\%#39610\fP from rallytime/bp\-39589
  208284. .IP \(bu 2
  208285. 83ec174d44 Set utils property explicitly for FSClient
  208286. .IP \(bu 2
  208287. 3889006149 Allow masterless minions to pull files from S3
  208288. .UNINDENT
  208289. .IP \(bu 2
  208290. \fBPR\fP \fI\%#39606\fP: (\fI\%rallytime\fP) [2016.11] Pylint: add missing import
  208291. @ \fI2017\-02\-23 16:39:55 UTC\fP
  208292. .INDENT 2.0
  208293. .IP \(bu 2
  208294. fe15ed9b92 Merge pull request \fI\%#39606\fP from rallytime/lint\-2016.11
  208295. .IP \(bu 2
  208296. 71164348e7 [2016.11] Pylint: add missing import
  208297. .UNINDENT
  208298. .IP \(bu 2
  208299. \fBPR\fP \fI\%#39573\fP: (\fI\%thatch45\fP) Added a few more comments to the ssl docs
  208300. @ \fI2017\-02\-23 02:17:13 UTC\fP
  208301. .INDENT 2.0
  208302. .IP \(bu 2
  208303. \fBPR\fP \fI\%#39554\fP: (\fI\%DmitryKuzmenko\fP) Cosmetic: support bool value for \(aqssl\(aq config option. (refs: \fI\%#39573\fP)
  208304. .IP \(bu 2
  208305. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  208306. .IP \(bu 2
  208307. 5987c4e30e Merge pull request \fI\%#39573\fP from thatch45/ssl_docs
  208308. .IP \(bu 2
  208309. b230c35eac This should be good to go now
  208310. .UNINDENT
  208311. .IP \(bu 2
  208312. \fBPR\fP \fI\%#39577\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208313. @ \fI2017\-02\-23 02:10:12 UTC\fP
  208314. .INDENT 2.0
  208315. .IP \(bu 2
  208316. b8e321cbec Merge pull request \fI\%#39577\fP from rallytime/merge\-2016.11
  208317. .IP \(bu 2
  208318. 397c756a01 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208319. .INDENT 2.0
  208320. .IP \(bu 2
  208321. 8352e6b44b Merge pull request \fI\%#39579\fP from rallytime/fix\-lint
  208322. .INDENT 2.0
  208323. .IP \(bu 2
  208324. 65889e1f30 [2016.3] Pylint: Remove unused import
  208325. .UNINDENT
  208326. .IP \(bu 2
  208327. 43dba3254c Merge pull request \fI\%#39578\fP from cachedout/2016.3
  208328. .INDENT 2.0
  208329. .IP \(bu 2
  208330. 344499eef7 Add mention\-bot configuration
  208331. .UNINDENT
  208332. .UNINDENT
  208333. .IP \(bu 2
  208334. c52cecd856 Fix syntax error leftover from incomplete merge\-conflict resolution
  208335. .IP \(bu 2
  208336. 7b9b3f700d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208337. .INDENT 2.0
  208338. .IP \(bu 2
  208339. 8f7a0f9d96 Merge pull request \fI\%#39542\fP from twangboy/gate_ssh_known_hosts
  208340. .INDENT 2.0
  208341. .IP \(bu 2
  208342. c90a52ef27 Remove expensive check
  208343. .IP \(bu 2
  208344. 6d645cae0e Add __virtual__ function
  208345. .UNINDENT
  208346. .IP \(bu 2
  208347. c10965833a Merge pull request \fI\%#39289\fP from bobrik/autodetect\-ipv6
  208348. .INDENT 2.0
  208349. .IP \(bu 2
  208350. 2761a1b244 Move new kwargs to the end of argument list
  208351. .IP \(bu 2
  208352. 0df6b922e7 Narrow down connection exception to socket.error
  208353. .IP \(bu 2
  208354. e8a2cc0488 Do no try to connect to salt master in syndic config test
  208355. .IP \(bu 2
  208356. af9578631e Properly log address that failed to resolve or pass connection check
  208357. .IP \(bu 2
  208358. 9a34fbeba9 Actually connect to master instead of checking route availability
  208359. .IP \(bu 2
  208360. c494839c65 Avoid bare exceptions in dns_check
  208361. .IP \(bu 2
  208362. 29f376676d Rewrite dns_check to try to connect to address
  208363. .IP \(bu 2
  208364. 55965ce505 Autodetect IPv6 connectivity from minion to master
  208365. .UNINDENT
  208366. .IP \(bu 2
  208367. 3fb928b63a Merge pull request \fI\%#39569\fP from s0undt3ch/2016.3
  208368. .INDENT 2.0
  208369. .IP \(bu 2
  208370. 49da135abd Don\(aqt use our own six dictionary fixes in this branch
  208371. .UNINDENT
  208372. .IP \(bu 2
  208373. 91e3319df8 Merge pull request \fI\%#39508\fP from dincamihai/openscap
  208374. .INDENT 2.0
  208375. .IP \(bu 2
  208376. 9fedb84607 Always return oscap\(aqs stderr
  208377. .IP \(bu 2
  208378. 0ecde2cd02 Include oscap returncode in response
  208379. .UNINDENT
  208380. .IP \(bu 2
  208381. fbe2194a93 Merge pull request \fI\%#39562\fP from terminalmage/issue30802
  208382. .INDENT 2.0
  208383. .IP \(bu 2
  208384. c50374041d Add ulimits to dockerng state/exec module
  208385. .IP \(bu 2
  208386. da42040c1a Try the docker\-py 2.0 client name first
  208387. .UNINDENT
  208388. .IP \(bu 2
  208389. 01d4a84a2f dockerng.get_client_args: Fix path for endpoint config for some versions of docker\-py (\fI\%#39544\fP)
  208390. .UNINDENT
  208391. .UNINDENT
  208392. .IP \(bu 2
  208393. \fBPR\fP \fI\%#39574\fP: (\fI\%Ch3LL\fP) Update 2016.11.3 release notes
  208394. @ \fI2017\-02\-23 00:10:23 UTC\fP
  208395. .INDENT 2.0
  208396. .IP \(bu 2
  208397. cff9334929 Merge pull request \fI\%#39574\fP from Ch3LL/update_release_notes
  208398. .IP \(bu 2
  208399. c0f8c35df7 fix reference to set in docs
  208400. .IP \(bu 2
  208401. 663f6f159d add additional PRs to 2016.11.3 release notes
  208402. .UNINDENT
  208403. .IP \(bu 2
  208404. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  208405. @ \fI2017\-02\-22 18:29:47 UTC\fP
  208406. .INDENT 2.0
  208407. .IP \(bu 2
  208408. b492f7094c Merge pull request \fI\%#39528\fP from thatch45/ssl_docs
  208409. .IP \(bu 2
  208410. c357e37831 Add minion config
  208411. .IP \(bu 2
  208412. 539bb2aa80 Add better ssl option docs
  208413. .UNINDENT
  208414. .IP \(bu 2
  208415. \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)
  208416. .IP \(bu 2
  208417. \fBPR\fP \fI\%#39532\fP: (\fI\%amontalban\fP) Fix case when /etc/localtime is a file and it is not updated
  208418. @ \fI2017\-02\-22 18:28:54 UTC\fP
  208419. .INDENT 2.0
  208420. .IP \(bu 2
  208421. 0dad49cdff Merge pull request \fI\%#39532\fP from amontalban/corner_case_35869
  208422. .IP \(bu 2
  208423. f0d3c16547 Fix case when /etc/localtime is a file and it is not updated
  208424. .UNINDENT
  208425. .IP \(bu 2
  208426. \fBPR\fP \fI\%#39540\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208427. @ \fI2017\-02\-22 18:24:01 UTC\fP
  208428. .INDENT 2.0
  208429. .IP \(bu 2
  208430. 9cfaf3b599 Merge pull request \fI\%#39540\fP from rallytime/merge\-2016.11
  208431. .IP \(bu 2
  208432. 49fe4e891e Merge branch \(aq2016.11\(aq into \(aq2016.11\(aq
  208433. .IP \(bu 2
  208434. c613d19e76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208435. .IP \(bu 2
  208436. dff35b58f8 Merge pull request \fI\%#39498\fP from terminalmage/pr\-39483
  208437. .INDENT 2.0
  208438. .IP \(bu 2
  208439. 20b097a745 dockerng: compare sets instead of lists of security_opt
  208440. .UNINDENT
  208441. .IP \(bu 2
  208442. 6418e725ed Merge pull request \fI\%#39497\fP from terminalmage/docker\-compat\-fixes
  208443. .INDENT 2.0
  208444. .IP \(bu 2
  208445. cbd0270bac docker: make docker\-exec the default execution driver
  208446. .IP \(bu 2
  208447. a6a17d58aa Handle docker\-py 2.0\(aqs new host_config path
  208448. .UNINDENT
  208449. .IP \(bu 2
  208450. 9c4292fb4e Merge pull request \fI\%#39423\fP from dincamihai/openscap
  208451. .INDENT 2.0
  208452. .IP \(bu 2
  208453. 9d13422ac1 OpenSCAP module
  208454. .UNINDENT
  208455. .IP \(bu 2
  208456. 7dd2502360 Merge pull request \fI\%#39464\fP from gtmanfred/2016.3
  208457. .INDENT 2.0
  208458. .IP \(bu 2
  208459. f829d6f9fc skip false values from preferred_ip
  208460. .UNINDENT
  208461. .IP \(bu 2
  208462. db359ff2c3 Merge pull request \fI\%#39460\fP from cachedout/win_dism_test_fix
  208463. .INDENT 2.0
  208464. .IP \(bu 2
  208465. e652a45592 Fix mocks in win_disim tests
  208466. .UNINDENT
  208467. .IP \(bu 2
  208468. 9dbfba9b57 Merge pull request \fI\%#39426\fP from morganwillcock/dism
  208469. .INDENT 2.0
  208470. .IP \(bu 2
  208471. a7d5118262 Return failure when package path does not exist
  208472. .UNINDENT
  208473. .IP \(bu 2
  208474. 56162706e3 Merge pull request \fI\%#39431\fP from UtahDave/fix_grains.setval_performance
  208475. .INDENT 2.0
  208476. .IP \(bu 2
  208477. 391bbecd90 add docs
  208478. .IP \(bu 2
  208479. 709c197f84 allow sync_grains to be disabled on grains.setval
  208480. .UNINDENT
  208481. .IP \(bu 2
  208482. 239e16e612 Merge pull request \fI\%#39405\fP from rallytime/fix\-39304
  208483. .INDENT 2.0
  208484. .IP \(bu 2
  208485. bd1fe03ce7 Update :depends: docs for boto states and modules
  208486. .UNINDENT
  208487. .IP \(bu 2
  208488. 415102f346 Merge pull request \fI\%#39411\fP from rallytime/fix\-38762
  208489. .INDENT 2.0
  208490. .IP \(bu 2
  208491. e13febe58d Update external_cache docs with other configuration options
  208492. .UNINDENT
  208493. .IP \(bu 2
  208494. 7e1803b617 Update docs on upstream EPEL7 pygit2/libgit2 issues (\fI\%#39421\fP)
  208495. .UNINDENT
  208496. .IP \(bu 2
  208497. \fBPR\fP \fI\%#39554\fP: (\fI\%DmitryKuzmenko\fP) Cosmetic: support bool value for \(aqssl\(aq config option. (refs: \fI\%#39573\fP)
  208498. @ \fI2017\-02\-22 16:59:03 UTC\fP
  208499. .INDENT 2.0
  208500. .IP \(bu 2
  208501. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  208502. .IP \(bu 2
  208503. 56fe2f198e Merge pull request \fI\%#39554\fP from DSRCorporation/bugs/ssl_bool
  208504. .IP \(bu 2
  208505. 7a6fc11291 Cosmetic: support bool value for \(aqssl\(aq config option.
  208506. .UNINDENT
  208507. .IP \(bu 2
  208508. \fBPR\fP \fI\%#39560\fP: (\fI\%vutny\fP) [CLOUD] Log error when private/public IP was not detected
  208509. @ \fI2017\-02\-22 16:49:46 UTC\fP
  208510. .INDENT 2.0
  208511. .IP \(bu 2
  208512. cf37f83565 Merge pull request \fI\%#39560\fP from vutny/cloud\-detect\-ips
  208513. .IP \(bu 2
  208514. 567bb50884 [CLOUD] Log error when private/public IP was not detected
  208515. .UNINDENT
  208516. .UNINDENT
  208517. .SS Salt 2016.11.5 Release Notes
  208518. .sp
  208519. Version 2016.11.5 is a bugfix release for 2016.11.0\&.
  208520. .SS Statistics
  208521. .INDENT 0.0
  208522. .IP \(bu 2
  208523. Total Merges: \fB82\fP
  208524. .IP \(bu 2
  208525. Total Issue References: \fB23\fP
  208526. .IP \(bu 2
  208527. Total PR References: \fB80\fP
  208528. .IP \(bu 2
  208529. 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)
  208530. .UNINDENT
  208531. .SS Patched Packages
  208532. .sp
  208533. Due to the critical nature of issue \fI\%issue #41230\fP we have decided to patch the
  208534. 2016.11.5 packages with \fI\%PR #41244\fP\&. This issue affects all calls to a
  208535. salt\-minion if there is an ipv6 nameserver set on the minion\(aqs host. The
  208536. patched packages on repo.saltstack.com will divert from the v2016.11.5 tag and
  208537. pypi packages due to the patches applied to the packages.
  208538. .SS Changelog for v2016.11.4..v2016.11.5
  208539. .sp
  208540. \fIGenerated at: 2018\-05\-27 20:12:47 UTC\fP
  208541. .INDENT 0.0
  208542. .IP \(bu 2
  208543. \fBPR\fP \fI\%#41134\fP: (\fI\%twangboy\fP) Fix \fIpkg.install\fP on Windows on 2016.11
  208544. @ \fI2017\-05\-09 15:10:19 UTC\fP
  208545. .INDENT 2.0
  208546. .IP \(bu 2
  208547. a10f0146a4 Merge pull request \fI\%#41134\fP from twangboy/fix_get_msiexec
  208548. .IP \(bu 2
  208549. d808a60129 Remove redundant if statement
  208550. .IP \(bu 2
  208551. b4d6d5a927 Fix for version_num of None and Latest
  208552. .IP \(bu 2
  208553. 0f31822a83 Fix problem when use_msiexec is a bool
  208554. .UNINDENT
  208555. .IP \(bu 2
  208556. \fBISSUE\fP \fI\%#41100\fP: (\fI\%frogunder\fP) Exception occurred in runner jobs.list_jobs (refs: \fI\%#41102\fP)
  208557. .IP \(bu 2
  208558. \fBPR\fP \fI\%#41102\fP: (\fI\%gtmanfred\fP) don\(aqt pass jid to list_jobs
  208559. @ \fI2017\-05\-08 17:45:40 UTC\fP
  208560. .INDENT 2.0
  208561. .IP \(bu 2
  208562. 4ecab68bb9 Merge pull request \fI\%#41102\fP from gtmanfred/2016.11
  208563. .IP \(bu 2
  208564. 83057d0f0f don\(aqt pass jid to list_jobs
  208565. .IP \(bu 2
  208566. 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
  208567. .IP \(bu 2
  208568. 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])
  208569. .UNINDENT
  208570. .IP \(bu 2
  208571. \fBPR\fP \fI\%#41103\fP: (\fI\%lorengordon\fP) Adds a get_route() function to win_network.py
  208572. @ \fI2017\-05\-06 06:19:42 UTC\fP
  208573. .INDENT 2.0
  208574. .IP \(bu 2
  208575. 2af89beb53 Merge pull request \fI\%#41103\fP from lorengordon/win.get_route
  208576. .IP \(bu 2
  208577. 93ce5644ea Adds test for win_network.get_route
  208578. .IP \(bu 2
  208579. b9cbbc0290 Adds a get_route() function to win_network.py
  208580. .UNINDENT
  208581. .IP \(bu 2
  208582. \fBPR\fP \fI\%#41098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41088\fP to 2016.11
  208583. @ \fI2017\-05\-05 19:04:03 UTC\fP
  208584. .INDENT 2.0
  208585. .IP \(bu 2
  208586. \fBPR\fP \fI\%#41088\fP: (\fI\%sjorge\fP) Fix docs for zfs state module (refs: \fI\%#41098\fP)
  208587. .IP \(bu 2
  208588. 2f9b5a4074 Merge pull request \fI\%#41098\fP from rallytime/bp\-41088
  208589. .IP \(bu 2
  208590. dc6cd2ea45 Fix docs for zfs state module
  208591. .UNINDENT
  208592. .IP \(bu 2
  208593. \fBPR\fP \fI\%#41097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41079\fP to 2016.11
  208594. @ \fI2017\-05\-05 19:03:43 UTC\fP
  208595. .INDENT 2.0
  208596. .IP \(bu 2
  208597. \fBPR\fP \fI\%#41079\fP: (\fI\%brd\fP) Remove an extra colon that is causing rendering issues (refs: \fI\%#41097\fP)
  208598. .IP \(bu 2
  208599. 2123001f32 Merge pull request \fI\%#41097\fP from rallytime/bp\-41079
  208600. .IP \(bu 2
  208601. 845b49c304 Remove and extra colon that is causing rendering issues
  208602. .UNINDENT
  208603. .IP \(bu 2
  208604. \fBPR\fP \fI\%#41093\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208605. @ \fI2017\-05\-05 17:22:09 UTC\fP
  208606. .INDENT 2.0
  208607. .IP \(bu 2
  208608. ff6fa2b120 Merge pull request \fI\%#41093\fP from rallytime/merge\-2016.11
  208609. .IP \(bu 2
  208610. a670eaa1db Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208611. .IP \(bu 2
  208612. 247400c44e Merge pull request \fI\%#41083\fP from rallytime/git\-state\-fix
  208613. .INDENT 2.0
  208614. .IP \(bu 2
  208615. b85ee48ff4 Git state: head_ref should be head_rev in "latest" function
  208616. .UNINDENT
  208617. .UNINDENT
  208618. .IP \(bu 2
  208619. \fBPR\fP \fI\%#41084\fP: (\fI\%rallytime\fP) Skip the test_salt_documentation_arguments_not_assumed test for Arch
  208620. @ \fI2017\-05\-04 21:56:29 UTC\fP
  208621. .INDENT 2.0
  208622. .IP \(bu 2
  208623. \fBPR\fP \fI\%#41074\fP: (\fI\%rallytime\fP) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch (refs: \fI\%#41084\fP)
  208624. .IP \(bu 2
  208625. 4c2e636cd1 Merge pull request \fI\%#41084\fP from rallytime/disable\-matcher\-test\-arch
  208626. .IP \(bu 2
  208627. da811fe505 Skip the correct test for the matcher tests in Arch
  208628. .IP \(bu 2
  208629. b9d1ce9aed Revert "Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch"
  208630. .UNINDENT
  208631. .IP \(bu 2
  208632. \fBPR\fP \fI\%#41069\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208633. @ \fI2017\-05\-04 20:34:58 UTC\fP
  208634. .INDENT 2.0
  208635. .IP \(bu 2
  208636. 1179720327 Merge pull request \fI\%#41069\fP from rallytime/merge\-2016.11
  208637. .IP \(bu 2
  208638. 08c58919cb Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208639. .INDENT 2.0
  208640. .IP \(bu 2
  208641. 69418092bd Merge pull request \fI\%#41070\fP from rallytime/lint\-2016.3
  208642. .INDENT 2.0
  208643. .IP \(bu 2
  208644. 486e2ba62e Pylint: remove extra line in mac_system module
  208645. .UNINDENT
  208646. .UNINDENT
  208647. .IP \(bu 2
  208648. db70b2d42e Pylint: remove extra line in mac_system module
  208649. .IP \(bu 2
  208650. 855d157aa6 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208651. .INDENT 2.0
  208652. .IP \(bu 2
  208653. 3101694d71 Merge pull request \fI\%#41048\fP from willkil/mac_system_non_root
  208654. .INDENT 2.0
  208655. .IP \(bu 2
  208656. b65b82a750 mac_system: return False for non\-root user
  208657. .UNINDENT
  208658. .UNINDENT
  208659. .UNINDENT
  208660. .IP \(bu 2
  208661. \fBPR\fP \fI\%#41074\fP: (\fI\%rallytime\fP) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch (refs: \fI\%#41084\fP)
  208662. @ \fI2017\-05\-04 19:26:16 UTC\fP
  208663. .INDENT 2.0
  208664. .IP \(bu 2
  208665. 9d638abc62 Merge pull request \fI\%#41074\fP from rallytime/disable\-matcher\-test\-arch
  208666. .IP \(bu 2
  208667. 9eb482d5c7 Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch
  208668. .UNINDENT
  208669. .IP \(bu 2
  208670. \fBPR\fP \fI\%#41078\fP: (\fI\%Ch3LL\fP) Add 2016.11.5 release notes and change log
  208671. @ \fI2017\-05\-04 19:00:58 UTC\fP
  208672. .INDENT 2.0
  208673. .IP \(bu 2
  208674. 72c854d9ac Merge pull request \fI\%#41078\fP from Ch3LL/add_2016.11.5_release
  208675. .IP \(bu 2
  208676. 96ed815687 Add 2016.11.5 release notes and change log
  208677. .UNINDENT
  208678. .IP \(bu 2
  208679. \fBPR\fP \fI\%#40879\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py
  208680. @ \fI2017\-05\-04 16:12:00 UTC\fP
  208681. .INDENT 2.0
  208682. .IP \(bu 2
  208683. eac8401e90 Merge pull request \fI\%#40879\fP from peter\-funktionIT/2016.11
  208684. .IP \(bu 2
  208685. 80fa9e5b76 Update win_pki.py
  208686. .IP \(bu 2
  208687. a48b05f158 Update win_pki.py
  208688. .IP \(bu 2
  208689. 3a4e6d9d91 Update win_pki.py
  208690. .UNINDENT
  208691. .IP \(bu 2
  208692. \fBISSUE\fP \fI\%#40928\fP: (\fI\%sokratisg\fP) Orchestration runner, highstate and environment question (refs: \fI\%#41036\fP)
  208693. .IP \(bu 2
  208694. \fBPR\fP \fI\%#41036\fP: (\fI\%terminalmage\fP) Do not force effective saltenv when running states via orchestration
  208695. @ \fI2017\-05\-04 15:44:14 UTC\fP
  208696. .INDENT 2.0
  208697. .IP \(bu 2
  208698. 547a9738db Merge pull request \fI\%#41036\fP from terminalmage/issue40928
  208699. .IP \(bu 2
  208700. 72ef34c420 Do not force effective saltenv when running states via orchestration
  208701. .UNINDENT
  208702. .IP \(bu 2
  208703. \fBPR\fP \fI\%#41039\fP: (\fI\%terminalmage\fP) Look for currently\-running python\(aqs pip first
  208704. @ \fI2017\-05\-04 15:43:52 UTC\fP
  208705. .INDENT 2.0
  208706. .IP \(bu 2
  208707. 6e2458e171 Merge pull request \fI\%#41039\fP from terminalmage/improve\-pip\-bin
  208708. .IP \(bu 2
  208709. effe8b9432 Look for currently\-running python\(aqs pip first
  208710. .UNINDENT
  208711. .IP \(bu 2
  208712. \fBPR\fP \fI\%#41049\fP: (\fI\%Ch3LL\fP) fix integration wheel test_gen test
  208713. @ \fI2017\-05\-04 15:33:59 UTC\fP
  208714. .INDENT 2.0
  208715. .IP \(bu 2
  208716. ff39613a53 Merge pull request \fI\%#41049\fP from Ch3LL/fix_wheel_test
  208717. .IP \(bu 2
  208718. ba223827b9 fix integration wheel test_gen test
  208719. .UNINDENT
  208720. .IP \(bu 2
  208721. \fBPR\fP \fI\%#41054\fP: (\fI\%terminalmage\fP) Update package targets for Arch pkg tests
  208722. @ \fI2017\-05\-04 14:59:42 UTC\fP
  208723. .INDENT 2.0
  208724. .IP \(bu 2
  208725. 4e4b3514b4 Merge pull request \fI\%#41054\fP from terminalmage/salt\-jenkins\-315
  208726. .IP \(bu 2
  208727. ee493bae47 Update package targets for Arch pkg tests
  208728. .UNINDENT
  208729. .IP \(bu 2
  208730. \fBPR\fP \fI\%#41046\fP: (\fI\%twangboy\fP) Fix pkg.remove
  208731. @ \fI2017\-05\-04 14:58:57 UTC\fP
  208732. .INDENT 2.0
  208733. .IP \(bu 2
  208734. 62dff52820 Merge pull request \fI\%#41046\fP from twangboy/fix_pkg_remove
  208735. .IP \(bu 2
  208736. 2af38e5564 Use target instead of version_num
  208737. .UNINDENT
  208738. .IP \(bu 2
  208739. \fBPR\fP \fI\%#41045\fP: (\fI\%terminalmage\fP) Clarify gitfs docs
  208740. @ \fI2017\-05\-03 22:24:55 UTC\fP
  208741. .INDENT 2.0
  208742. .IP \(bu 2
  208743. 2b47b7bec6 Merge pull request \fI\%#41045\fP from terminalmage/clarify\-gitfs\-docs
  208744. .IP \(bu 2
  208745. c757eda331 Clarify gitfs docs
  208746. .UNINDENT
  208747. .IP \(bu 2
  208748. \fBPR\fP \fI\%#41032\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208749. @ \fI2017\-05\-03 19:31:58 UTC\fP
  208750. .INDENT 2.0
  208751. .IP \(bu 2
  208752. 819007cd00 Merge pull request \fI\%#41032\fP from rallytime/merge\-2016.11
  208753. .IP \(bu 2
  208754. d26fd0bbf4 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208755. .INDENT 2.0
  208756. .IP \(bu 2
  208757. b00acb0034 Merge pull request \fI\%#41011\fP from terminalmage/docker\-refresh\-credentials
  208758. .INDENT 2.0
  208759. .IP \(bu 2
  208760. b8d1dcc307 Use proposed docker\-py reload_config() func
  208761. .UNINDENT
  208762. .UNINDENT
  208763. .UNINDENT
  208764. .IP \(bu 2
  208765. \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)
  208766. .IP \(bu 2
  208767. \fBPR\fP \fI\%#41007\fP: (\fI\%jleproust\fP) Recognize LVM2 pv with empty vg as orphan
  208768. @ \fI2017\-05\-03 18:24:51 UTC\fP
  208769. .INDENT 2.0
  208770. .IP \(bu 2
  208771. d7fbd38474 Merge pull request \fI\%#41007\fP from jleproust/fix_lvm_empty_vg
  208772. .IP \(bu 2
  208773. 3b9a845145 Recognize LVM2 pv with empty vg as orphan
  208774. .UNINDENT
  208775. .IP \(bu 2
  208776. \fBPR\fP \fI\%#41029\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38565\fP to 2016.11
  208777. @ \fI2017\-05\-03 17:05:10 UTC\fP
  208778. .INDENT 2.0
  208779. .IP \(bu 2
  208780. \fBPR\fP \fI\%#38565\fP: (\fI\%drawsmcgraw\fP) Update management of ip addresses for salt cloud azurearm module (refs: \fI\%#41029\fP)
  208781. .IP \(bu 2
  208782. 4eab962e9e Merge pull request \fI\%#41029\fP from rallytime/bp\-38565
  208783. .IP \(bu 2
  208784. 2df93ae3ab Update management of ip addresses. \- Assign static, private IP addresses. \- Ability to not assign a public IP to a VM.
  208785. .UNINDENT
  208786. .IP \(bu 2
  208787. \fBPR\fP \fI\%#41012\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208788. @ \fI2017\-05\-02 22:06:40 UTC\fP
  208789. .INDENT 2.0
  208790. .IP \(bu 2
  208791. 97500f078d Merge pull request \fI\%#41012\fP from rallytime/merge\-2016.11
  208792. .IP \(bu 2
  208793. fc756c595c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208794. .IP \(bu 2
  208795. 19894f68ca Merge pull request \fI\%#40724\fP from cro/minion_key_revoke_cfg
  208796. .INDENT 2.0
  208797. .IP \(bu 2
  208798. cbc70195c0 Change message level when minion requests key revoke and feature is turned off.
  208799. .IP \(bu 2
  208800. 65ea8997b7 Add allow_minion_key_revoke config option
  208801. .IP \(bu 2
  208802. 8920495943 Add config option to prevent minions from revoking their own keys.
  208803. .UNINDENT
  208804. .IP \(bu 2
  208805. 129859f79b Merge pull request \fI\%#40952\fP from terminalmage/fix\-dockerng.login\-docs
  208806. .INDENT 2.0
  208807. .IP \(bu 2
  208808. dfbbeb5946 Fix documentation for docker login function in pre\-nitrogen release branches
  208809. .UNINDENT
  208810. .UNINDENT
  208811. .IP \(bu 2
  208812. \fBPR\fP \fI\%#40726\fP: (\fI\%benediktwerner\fP) Fixed minion keys remaining pending after auto signing and fixed typo (Resubmitted to 2016.3)
  208813. @ \fI2017\-05\-02 16:57:34 UTC\fP
  208814. .INDENT 2.0
  208815. .IP \(bu 2
  208816. e210eaead4 Merge pull request \fI\%#40726\fP from benediktwerner/fix\-minions\-remain\-pending\-after\-autosign\-and\-typo
  208817. .IP \(bu 2
  208818. 82c144e960 Fixed minion keys remaining pending after auto signing and fixed typo
  208819. .UNINDENT
  208820. .IP \(bu 2
  208821. \fBPR\fP \fI\%#40960\fP: (\fI\%danlsgiga\fP) Fix consul module "AttributeError: \(aqdict\(aq object has no attribute \(aqjson\(aq"
  208822. @ \fI2017\-05\-02 16:16:57 UTC\fP
  208823. .INDENT 2.0
  208824. .IP \(bu 2
  208825. 4f342e2fe5 Merge pull request \fI\%#40960\fP from danlsgiga/2016.11
  208826. .IP \(bu 2
  208827. 6e4cc6db47 Fix consul module "AttributeError: \(aqdict\(aq object has no attribute \(aqjson\(aq"
  208828. .UNINDENT
  208829. .IP \(bu 2
  208830. \fBPR\fP \fI\%#40963\fP: (\fI\%twangboy\fP) Fix fullname parameter for add function
  208831. @ \fI2017\-05\-02 16:08:59 UTC\fP
  208832. .INDENT 2.0
  208833. .IP \(bu 2
  208834. c3b329b398 Merge pull request \fI\%#40963\fP from twangboy/fix_win_useradd
  208835. .IP \(bu 2
  208836. 5371b6b85e Fix fullname parameter for add function
  208837. .UNINDENT
  208838. .IP \(bu 2
  208839. \fBPR\fP \fI\%#40995\fP: (\fI\%twangboy\fP) Remove unused code fragments
  208840. @ \fI2017\-05\-02 15:31:58 UTC\fP
  208841. .INDENT 2.0
  208842. .IP \(bu 2
  208843. d79c033239 Merge pull request \fI\%#40995\fP from twangboy/remove_utils
  208844. .IP \(bu 2
  208845. 8c01aacd9b Remove unused code fragments
  208846. .UNINDENT
  208847. .IP \(bu 2
  208848. \fBISSUE\fP \fI\%#40981\fP: (\fI\%ezh\fP) docker\-events engine is broken with modern docker (refs: \fI\%#40982\fP)
  208849. .IP \(bu 2
  208850. \fBPR\fP \fI\%#40991\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40982\fP to 2016.11
  208851. @ \fI2017\-05\-01 22:31:30 UTC\fP
  208852. .INDENT 2.0
  208853. .IP \(bu 2
  208854. \fBPR\fP \fI\%#40982\fP: (\fI\%ezh\fP) Fix docker_events field handling (refs: \fI\%#40991\fP)
  208855. .IP \(bu 2
  208856. c6162876d6 Merge pull request \fI\%#40991\fP from rallytime/bp\-40982
  208857. .IP \(bu 2
  208858. 8fcb7205db Fix docker_events field handling
  208859. .UNINDENT
  208860. .IP \(bu 2
  208861. \fBISSUE\fP \fI\%#40965\fP: (\fI\%weirdbricks\fP) salt\-cloud sudo failing (refs: \fI\%#40987\fP)
  208862. .IP \(bu 2
  208863. \fBPR\fP \fI\%#40987\fP: (\fI\%gtmanfred\fP) get sudo_password correctly
  208864. @ \fI2017\-05\-01 19:39:55 UTC\fP
  208865. .INDENT 2.0
  208866. .IP \(bu 2
  208867. 3fb24929c6 Merge pull request \fI\%#40987\fP from gtmanfred/2016.11
  208868. .IP \(bu 2
  208869. 2ed694cac6 get sudo_password correctly
  208870. .UNINDENT
  208871. .IP \(bu 2
  208872. \fBISSUE\fP \fI\%#40988\fP: (\fI\%santzi\fP) status.netdev tx_bytes is always zero (refs: \fI\%#40992\fP)
  208873. .IP \(bu 2
  208874. \fBPR\fP \fI\%#40992\fP: (\fI\%gtmanfred\fP) fix bug in status.netdev
  208875. @ \fI2017\-05\-01 19:38:35 UTC\fP
  208876. .INDENT 2.0
  208877. .IP \(bu 2
  208878. ecbac138d1 Merge pull request \fI\%#40992\fP from gtmanfred/netdev
  208879. .IP \(bu 2
  208880. a9eed7f1c9 fix bug in status.netdev
  208881. .UNINDENT
  208882. .IP \(bu 2
  208883. \fBISSUE\fP \fI\%#40976\fP: (\fI\%sjorge\fP) smtp.send_msg state oddities (refs: \fI\%#40993\fP)
  208884. .IP \(bu 2
  208885. \fBPR\fP \fI\%#40993\fP: (\fI\%gtmanfred\fP) smtp state can use profile or sender
  208886. @ \fI2017\-05\-01 19:35:47 UTC\fP
  208887. .INDENT 2.0
  208888. .IP \(bu 2
  208889. d852320d34 Merge pull request \fI\%#40993\fP from gtmanfred/smtp
  208890. .IP \(bu 2
  208891. 068ebfd9ec smtp state can use profile or sender
  208892. .UNINDENT
  208893. .IP \(bu 2
  208894. \fBPR\fP \fI\%#40958\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40939\fP to 2016.11
  208895. @ \fI2017\-04\-28 18:01:17 UTC\fP
  208896. .INDENT 2.0
  208897. .IP \(bu 2
  208898. \fBPR\fP \fI\%#40939\fP: (\fI\%Ch3LL\fP) Allow vmware to query deploy arg from opts (refs: \fI\%#40958\fP)
  208899. .IP \(bu 2
  208900. fc26fb8a05 Merge pull request \fI\%#40958\fP from rallytime/bp\-40939
  208901. .IP \(bu 2
  208902. 3e9394862f allow vmware to query deploy arg from opts
  208903. .UNINDENT
  208904. .IP \(bu 2
  208905. \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_)
  208906. .INDENT 2.0
  208907. .IP \(bu 2
  208908. \fBPR\fP \fI\%saltstack/salt#34643\fP: (\fI\%nevins\-b\fP) fix augeas module so shlex doesn\(aqt strip quotes (refs: \fI\%#38115\fP)
  208909. .UNINDENT
  208910. .IP \(bu 2
  208911. \fBPR\fP \fI\%#40957\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38115\fP to 2016.11
  208912. @ \fI2017\-04\-28 18:01:02 UTC\fP
  208913. .INDENT 2.0
  208914. .IP \(bu 2
  208915. \fBPR\fP \fI\%#38115\fP: (\fI\%cro\fP) Revert "fix augeas module so shlex doesn\(aqt strip quotes" (refs: \fI\%#40957\fP)
  208916. .IP \(bu 2
  208917. a586e12180 Merge pull request \fI\%#40957\fP from rallytime/bp\-38115
  208918. .IP \(bu 2
  208919. eb889173b0 Revert "fix augeas module so shlex doesn\(aqt strip quotes"
  208920. .UNINDENT
  208921. .IP \(bu 2
  208922. \fBISSUE\fP \fI\%#40635\fP: (\fI\%promorphus\fP) Orchestrate + Batches returns false failed information (refs: \fI\%#40905\fP)
  208923. .IP \(bu 2
  208924. \fBPR\fP \fI\%#40905\fP: (\fI\%rkgrunt\fP) Fixed issue with parsing of master minion returns when batching is en…
  208925. @ \fI2017\-04\-28 17:52:32 UTC\fP
  208926. .INDENT 2.0
  208927. .IP \(bu 2
  208928. 00a15eba60 Merge pull request \fI\%#40905\fP from rkgrunt/40635
  208929. .IP \(bu 2
  208930. 4f9c92a012 Fixed issue with parsing of master minion returns when batching is enabled.
  208931. .UNINDENT
  208932. .IP \(bu 2
  208933. \fBPR\fP \fI\%#40954\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208934. @ \fI2017\-04\-28 16:41:49 UTC\fP
  208935. .INDENT 2.0
  208936. .IP \(bu 2
  208937. bb50d4f646 Merge pull request \fI\%#40954\fP from rallytime/merge\-2016.11
  208938. .IP \(bu 2
  208939. 7f31e41aa6 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208940. .IP \(bu 2
  208941. 55a399583e Merge pull request \fI\%#40930\fP from rallytime/bp\-40811
  208942. .INDENT 2.0
  208943. .IP \(bu 2
  208944. 3ccb553f9f get config_dir based off conf_file
  208945. .UNINDENT
  208946. .IP \(bu 2
  208947. 7bc01be859 Merge pull request \fI\%#40927\fP from terminalmage/docs
  208948. .INDENT 2.0
  208949. .IP \(bu 2
  208950. 8c078f144c Add additional note about quoting within load_yaml
  208951. .IP \(bu 2
  208952. 123b5cdc11 Add documentation for PyYAML\(aqs loading of time expressions
  208953. .UNINDENT
  208954. .IP \(bu 2
  208955. 7eab9c6cf4 Merge pull request \fI\%#40891\fP from terminalmage/pip\-installed
  208956. .INDENT 2.0
  208957. .IP \(bu 2
  208958. 75e6bc0aa3 Fix two issues with pip.install
  208959. .UNINDENT
  208960. .UNINDENT
  208961. .IP \(bu 2
  208962. \fBISSUE\fP \fI\%#39531\fP: (\fI\%ypid\fP) Use yaml.safe_* instead of yaml.load / yaml.dump / … (refs: \fI\%#40751\fP)
  208963. .IP \(bu 2
  208964. \fBPR\fP \fI\%#40751\fP: (\fI\%rallytime\fP) Use Salt\(aqs SaltYamlSafeLoader and SafeOrderedDumper classes for yaml.load/dump
  208965. @ \fI2017\-04\-28 12:56:06 UTC\fP
  208966. .INDENT 2.0
  208967. .IP \(bu 2
  208968. 909d519ddb Merge pull request \fI\%#40751\fP from rallytime/fix\-39531
  208969. .IP \(bu 2
  208970. 85dc4164f5 Don\(aqt change the salt.utils.jinja yaml Dumper class
  208971. .IP \(bu 2
  208972. 4fe6ac93c6 Add extra line for lint
  208973. .IP \(bu 2
  208974. 55cfa12975 Use salt.utils.yamldumper with SafeOderedDumper as the Dumper in yaml.dump
  208975. .IP \(bu 2
  208976. 62c4d37c2f Use salt.utils.yamlloader with SaltYamlSafeLoader as the Loader with yaml.load
  208977. .UNINDENT
  208978. .IP \(bu 2
  208979. \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)
  208980. .IP \(bu 2
  208981. \fBPR\fP \fI\%#40861\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt run status.master while minion is failing\-over.
  208982. @ \fI2017\-04\-28 12:14:56 UTC\fP
  208983. .INDENT 2.0
  208984. .IP \(bu 2
  208985. 18fdd8cc34 Merge pull request \fI\%#40861\fP from DSRCorporation/bugs/37307_minion_run_jobs_twice
  208986. .IP \(bu 2
  208987. f0d46d04af Don\(aqt run status.master while minion is failing\-over.
  208988. .UNINDENT
  208989. .IP \(bu 2
  208990. \fBPR\fP \fI\%#40923\fP: (\fI\%terminalmage\fP) aptpkg: fix temp pkg unhold when version is specified
  208991. @ \fI2017\-04\-28 11:59:54 UTC\fP
  208992. .INDENT 2.0
  208993. .IP \(bu 2
  208994. 62cb7b1ae6 Merge pull request \fI\%#40923\fP from terminalmage/aptpkg\-install\-fix\-unhold
  208995. .IP \(bu 2
  208996. 6dda4f2bc3 aptpkg: fix temp pkg unhold when version is specified
  208997. .UNINDENT
  208998. .IP \(bu 2
  208999. \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)
  209000. .IP \(bu 2
  209001. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP)
  209002. .IP \(bu 2
  209003. \fBPR\fP \fI\%#40933\fP: (\fI\%gtmanfred\fP) allow master_port to be a string
  209004. @ \fI2017\-04\-28 11:54:58 UTC\fP
  209005. .INDENT 2.0
  209006. .IP \(bu 2
  209007. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#40933\fP)
  209008. .IP \(bu 2
  209009. 9d92ba7878 Merge pull request \fI\%#40933\fP from gtmanfred/2016.11
  209010. .IP \(bu 2
  209011. 194423c08e allow master_port to be a string
  209012. .UNINDENT
  209013. .IP \(bu 2
  209014. \fBISSUE\fP \fI\%#40912\fP: (\fI\%razed11\fP) IPV6 Warning when ipv6 set to False (refs: \fI\%#40934\fP)
  209015. .IP \(bu 2
  209016. \fBPR\fP \fI\%#40934\fP: (\fI\%gtmanfred\fP) Only display IPvX warning if role is master
  209017. @ \fI2017\-04\-28 11:53:50 UTC\fP
  209018. .INDENT 2.0
  209019. .IP \(bu 2
  209020. d5e0b8b655 Merge pull request \fI\%#40934\fP from gtmanfred/ipv6
  209021. .IP \(bu 2
  209022. 7855cd6ce6 Only display IPvX warning if role is master
  209023. .UNINDENT
  209024. .IP \(bu 2
  209025. \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)
  209026. .IP \(bu 2
  209027. \fBPR\fP \fI\%#40935\fP: (\fI\%gtmanfred\fP) Attempt to connect to public ip address in softlayer
  209028. @ \fI2017\-04\-28 11:43:57 UTC\fP
  209029. .INDENT 2.0
  209030. .IP \(bu 2
  209031. 8fdfe4ece6 Merge pull request \fI\%#40935\fP from gtmanfred/softlayer
  209032. .IP \(bu 2
  209033. d6eb11410f Attempt to connect to public ip address in softlayer
  209034. .UNINDENT
  209035. .IP \(bu 2
  209036. \fBPR\fP \fI\%#40936\fP: (\fI\%terminalmage\fP) Add dockerng fixes to 2016.11.4 release notes
  209037. @ \fI2017\-04\-27 19:54:16 UTC\fP
  209038. .INDENT 2.0
  209039. .IP \(bu 2
  209040. 7404309bec Merge pull request \fI\%#40936\fP from terminalmage/release_notes
  209041. .IP \(bu 2
  209042. e494ae43e5 Add dockerng fixes to 2016.11.4 release notes
  209043. .UNINDENT
  209044. .IP \(bu 2
  209045. \fBISSUE\fP \fI\%#33093\fP: (\fI\%gtmanfred\fP) [salt\-cloud][nova] race condition when assigning floating ips to cloud servers (refs: \fI\%#37696\fP)
  209046. .IP \(bu 2
  209047. \fBPR\fP \fI\%#40929\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37696\fP to 2016.11
  209048. @ \fI2017\-04\-27 17:43:26 UTC\fP
  209049. .INDENT 2.0
  209050. .IP \(bu 2
  209051. \fBPR\fP \fI\%#37696\fP: (\fI\%SolarisYan\fP) if vm state is not ACTIVE, it will fail (refs: \fI\%#40929\fP)
  209052. .IP \(bu 2
  209053. a622518ad2 Merge pull request \fI\%#40929\fP from rallytime/bp\-37696
  209054. .IP \(bu 2
  209055. 1a28722c5a Pylint fix
  209056. .IP \(bu 2
  209057. 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
  209058. .UNINDENT
  209059. .IP \(bu 2
  209060. \fBPR\fP \fI\%#40921\fP: (\fI\%corywright\fP) Make salt.auth.rest heading consistent with all other salt.auth documentation
  209061. @ \fI2017\-04\-27 17:36:47 UTC\fP
  209062. .INDENT 2.0
  209063. .IP \(bu 2
  209064. f88ce8e4de Merge pull request \fI\%#40921\fP from corywright/consistent\-salt\-auth\-headings
  209065. .IP \(bu 2
  209066. 2995a05c2b Make salt.auth.rest heading consistent with all other salt.auth documentation
  209067. .UNINDENT
  209068. .IP \(bu 2
  209069. \fBISSUE\fP \fI\%#37824\fP: (\fI\%dxiri\fP) SSLError Trying to use v3 API of Openstack Newton as provider. (refs: \fI\%#40752\fP)
  209070. .IP \(bu 2
  209071. \fBPR\fP \fI\%#40752\fP: (\fI\%Enquier\fP) Add ability to specify a custom SSL certificate or disable SSL verification in KeystoneAuth v3
  209072. @ \fI2017\-04\-27 17:29:09 UTC\fP
  209073. .INDENT 2.0
  209074. .IP \(bu 2
  209075. 26be306b5c Merge pull request \fI\%#40752\fP from Enquier/nova_ssl_2
  209076. .IP \(bu 2
  209077. 817f49296e fixing lint errors in keystone auth error
  209078. .IP \(bu 2
  209079. f683636c61 fix trailing whitespace
  209080. .IP \(bu 2
  209081. 4a70b8c0cc fixing minor error in security_groups security groups parser had incorrect split action which caused errors
  209082. .IP \(bu 2
  209083. c9d6f8e5ed adding note in documentation
  209084. .IP \(bu 2
  209085. c24dfe3fba adding support for cacert verification
  209086. .IP \(bu 2
  209087. bfaf5e322d Merge pull request \fI\%#5\fP from saltstack/2016.11
  209088. .UNINDENT
  209089. .IP \(bu 2
  209090. \fBISSUE\fP \fI\%#40845\fP: (\fI\%e\-senthilkumar\fP) /jobs call is broken in 2016.11.4 (refs: \fI\%#40894\fP)
  209091. .IP \(bu 2
  209092. \fBPR\fP \fI\%#40894\fP: (\fI\%senthilkumar\-e\fP) Fix for broken /jobs/<jid> in 2016.11.4
  209093. @ \fI2017\-04\-27 11:33:00 UTC\fP
  209094. .INDENT 2.0
  209095. .IP \(bu 2
  209096. 0f2ec1e1db Merge pull request \fI\%#40894\fP from senthilkumar\-e/broken_jobs_api_fix
  209097. .IP \(bu 2
  209098. 2f55b26e08 Fixing the pylint issue
  209099. .IP \(bu 2
  209100. fb607bab75 Fix for broken /jobs/<jid> in 2016.11.4
  209101. .UNINDENT
  209102. .IP \(bu 2
  209103. \fBPR\fP \fI\%#40876\fP: (\fI\%BenoitKnecht\fP) states: sqlite3: fix table_present with multi\-line schema
  209104. @ \fI2017\-04\-26 15:21:19 UTC\fP
  209105. .INDENT 2.0
  209106. .IP \(bu 2
  209107. ea55c15367 Merge pull request \fI\%#40876\fP from BenoitKnecht/fix\-sqlite3\-table\-present\-with\-multiline\-schema
  209108. .IP \(bu 2
  209109. 2ca627d02d states: sqlite3: fix table_present with multi\-line schema
  209110. .UNINDENT
  209111. .IP \(bu 2
  209112. \fBISSUE\fP \fI\%#40741\fP: (\fI\%clinta\fP) Regression in 2016.11.3. File.managed downloads every time. (refs: \fI\%#40742\fP)
  209113. .IP \(bu 2
  209114. \fBPR\fP \fI\%#40742\fP: (\fI\%clinta\fP) Fix \fI\%#40741\fP
  209115. @ \fI2017\-04\-25 22:52:06 UTC\fP
  209116. .INDENT 2.0
  209117. .IP \(bu 2
  209118. e09bafdceb Merge pull request \fI\%#40742\fP from clinta/40741
  209119. .IP \(bu 2
  209120. 72bf5af9e6 Set sfn if cached_sum == source_sum
  209121. .UNINDENT
  209122. .IP \(bu 2
  209123. \fBPR\fP \fI\%#40859\fP: (\fI\%skizunov\fP) Fix TCP Transport to work with Tornado 4.5
  209124. @ \fI2017\-04\-25 04:29:00 UTC\fP
  209125. .INDENT 2.0
  209126. .IP \(bu 2
  209127. 5249496f74 Merge pull request \fI\%#40859\fP from skizunov/develop2
  209128. .IP \(bu 2
  209129. 958ecdace8 Fix TCP Transport to work with Tornado 4.5
  209130. .UNINDENT
  209131. .IP \(bu 2
  209132. \fBPR\fP \fI\%#40862\fP: (\fI\%gtmanfred\fP) status should be an int
  209133. @ \fI2017\-04\-24 23:11:31 UTC\fP
  209134. .INDENT 2.0
  209135. .IP \(bu 2
  209136. ca80f287af Merge pull request \fI\%#40862\fP from gtmanfred/2016.11
  209137. .IP \(bu 2
  209138. 87ec1da771 status should be an int
  209139. .UNINDENT
  209140. .IP \(bu 2
  209141. \fBPR\fP \fI\%#40865\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209142. @ \fI2017\-04\-24 23:06:28 UTC\fP
  209143. .INDENT 2.0
  209144. .IP \(bu 2
  209145. c95341959d Merge pull request \fI\%#40865\fP from rallytime/merge\-2016.11
  209146. .IP \(bu 2
  209147. 53ad3159cc Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209148. .IP \(bu 2
  209149. 2a71dc3552 Merge pull request \fI\%#40854\fP from Ch3LL/11.4_release_2016.3
  209150. .INDENT 2.0
  209151. .IP \(bu 2
  209152. 889540a313 [2016.3] Bump latest release version to 2016.11.4
  209153. .UNINDENT
  209154. .IP \(bu 2
  209155. b5f67f0750 Merge pull request \fI\%#40822\fP from lordcirth/fix\-rsync\-changes
  209156. .INDENT 2.0
  209157. .IP \(bu 2
  209158. 1b304bb476 Extra space before inline comment
  209159. .IP \(bu 2
  209160. ea4592de91 rsync.py: Don\(aqt return changes when clean
  209161. .UNINDENT
  209162. .UNINDENT
  209163. .IP \(bu 2
  209164. \fBPR\fP \fI\%#40855\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.4
  209165. @ \fI2017\-04\-24 17:37:47 UTC\fP
  209166. .INDENT 2.0
  209167. .IP \(bu 2
  209168. 7861f12df8 Merge pull request \fI\%#40855\fP from Ch3LL/11.4_release_2016.11
  209169. .IP \(bu 2
  209170. e7b604339d [2016.11] Bump latest release version to 2016.11.4
  209171. .UNINDENT
  209172. .IP \(bu 2
  209173. \fBPR\fP \fI\%#40817\fP: (\fI\%isbm\fP) Some UT for cloud
  209174. @ \fI2017\-04\-23 10:01:40 UTC\fP
  209175. .INDENT 2.0
  209176. .IP \(bu 2
  209177. 25b62aee47 Merge pull request \fI\%#40817\fP from isbm/isbm\-skip\-false\-values\-from\-preferred\-ip\-201611
  209178. .IP \(bu 2
  209179. 7c5714b90b Describe debug information
  209180. .IP \(bu 2
  209181. e0210ff8cb Reformat idents, fix typos
  209182. .IP \(bu 2
  209183. fb777e3f3e PEP8: fix unused variable
  209184. .IP \(bu 2
  209185. b2e85de85d Fix lint, typos and readability
  209186. .IP \(bu 2
  209187. 116c96a4b7 Fix UT parameter changes
  209188. .IP \(bu 2
  209189. 61558f08e7 Lintfix E0602
  209190. .IP \(bu 2
  209191. ed84420df0 Add unit test for node ip filtering
  209192. .IP \(bu 2
  209193. 82582cff77 Skip test, if libcloud is not around
  209194. .IP \(bu 2
  209195. f005d53c56 Fix name error exception
  209196. .IP \(bu 2
  209197. b668e60b4c Move out nested function for testing purposes
  209198. .IP \(bu 2
  209199. 5e574a24d9 Add unit test for nova connector
  209200. .IP \(bu 2
  209201. 181d0780d0 Lintfix
  209202. .IP \(bu 2
  209203. 8e9ce1a68d Move out nested function to be unit\-testable
  209204. .IP \(bu 2
  209205. cd43805770 Add initial unit test for openstack cloud module
  209206. .IP \(bu 2
  209207. 177f31446d Add fake preferred IP function for testing
  209208. .IP \(bu 2
  209209. d1aeb13ac7 Move out openstack\(aqs nested function to be testable
  209210. .UNINDENT
  209211. .IP \(bu 2
  209212. \fBPR\fP \fI\%#40824\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209213. @ \fI2017\-04\-21 20:03:10 UTC\fP
  209214. .INDENT 2.0
  209215. .IP \(bu 2
  209216. 50ddf219a6 Merge pull request \fI\%#40824\fP from rallytime/merge\-2016.11
  209217. .IP \(bu 2
  209218. f31f9512b8 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209219. .INDENT 2.0
  209220. .IP \(bu 2
  209221. 3b9ebeb98f Merge pull request \fI\%#40754\fP from lordcirth/fix\-uppercase\-checksums
  209222. .INDENT 2.0
  209223. .IP \(bu 2
  209224. c80c792704 remove too many newlines for lint
  209225. .IP \(bu 2
  209226. a7d8f375e8 file.manage_file: uppercase checksums now work
  209227. .UNINDENT
  209228. .UNINDENT
  209229. .UNINDENT
  209230. .IP \(bu 2
  209231. \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)
  209232. @ \fI2017\-04\-21 17:44:42 UTC\fP
  209233. .INDENT 2.0
  209234. .IP \(bu 2
  209235. d6e26d18cb Merge pull request \fI\%#40811\fP from UtahDave/2016.11local
  209236. .IP \(bu 2
  209237. 9f6e2e9c92 get config_dir based off conf_file
  209238. .UNINDENT
  209239. .IP \(bu 2
  209240. \fBPR\fP \fI\%#40820\fP: (\fI\%gtmanfred\fP) remove deprecated firstgen rackspace cloud driver
  209241. @ \fI2017\-04\-21 17:42:19 UTC\fP
  209242. .INDENT 2.0
  209243. .IP \(bu 2
  209244. ddedf05b7d Merge pull request \fI\%#40820\fP from gtmanfred/2016.11
  209245. .IP \(bu 2
  209246. b60a8d013a remove rackspace from index
  209247. .IP \(bu 2
  209248. 559aa1d8b6 remove deprecated firstgen rackspace cloud driver
  209249. .UNINDENT
  209250. .IP \(bu 2
  209251. \fBPR\fP \fI\%#40797\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209252. @ \fI2017\-04\-20 19:42:04 UTC\fP
  209253. .INDENT 2.0
  209254. .IP \(bu 2
  209255. 2ab42489df Merge pull request \fI\%#40797\fP from rallytime/merge\-2016.11
  209256. .IP \(bu 2
  209257. 22500a7261 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209258. .INDENT 2.0
  209259. .IP \(bu 2
  209260. 623e2eb61f Merge pull request \fI\%#40791\fP from a\-powell/s3\-util\-get\-memory\-fix
  209261. .INDENT 2.0
  209262. .IP \(bu 2
  209263. 36f6521014 Merge remote\-tracking branch \(aqupstream/2016.3\(aq into s3\-util\-get\-memory\-fix
  209264. .IP \(bu 2
  209265. 04637cd4eb Fixing objects being loaded into memory when performing a GET request with a local file specified.
  209266. .UNINDENT
  209267. .UNINDENT
  209268. .UNINDENT
  209269. .IP \(bu 2
  209270. \fBPR\fP \fI\%#40800\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40720\fP to 2016.11
  209271. @ \fI2017\-04\-20 19:41:41 UTC\fP
  209272. .INDENT 2.0
  209273. .IP \(bu 2
  209274. \fBPR\fP \fI\%#40720\fP: (\fI\%oeuftete\fP) Call tornado.httputil.url_concat compatibly (refs: \fI\%#40800\fP)
  209275. .IP \(bu 2
  209276. ced839f841 Merge pull request \fI\%#40800\fP from rallytime/bp\-40720
  209277. .IP \(bu 2
  209278. 6c0124ae21 Call tornado.httputil.url_concat compatibly
  209279. .UNINDENT
  209280. .IP \(bu 2
  209281. \fBISSUE\fP \fI\%#19137\fP: (\fI\%jeffclay\fP) MSI installer(s) for windows minion (refs: \fI\%#40716\fP)
  209282. .IP \(bu 2
  209283. \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
  209284. @ \fI2017\-04\-20 16:45:14 UTC\fP
  209285. .INDENT 2.0
  209286. .IP \(bu 2
  209287. \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)
  209288. .IP \(bu 2
  209289. 5388ffa7a2 Merge pull request \fI\%#40785\fP from alexproca/backport\-winexec\-selection
  209290. .IP \(bu 2
  209291. 91cafd5094 Add option to select 32 or 64 version of msiexec
  209292. .UNINDENT
  209293. .IP \(bu 2
  209294. \fBPR\fP \fI\%#40796\fP: (\fI\%terminalmage\fP) Fix inaccurate nodegroup docs
  209295. @ \fI2017\-04\-20 16:08:22 UTC\fP
  209296. .INDENT 2.0
  209297. .IP \(bu 2
  209298. f0f135c71d Merge pull request \fI\%#40796\fP from terminalmage/fix\-nodegroup\-docs
  209299. .IP \(bu 2
  209300. f99259a6eb Fix inaccurate nodegroup docs
  209301. .UNINDENT
  209302. .IP \(bu 2
  209303. \fBISSUE\fP \fI\%#40737\fP: (\fI\%jf\fP) Fix consul_pillar documentation: \(aqroot=\(aq canNOT start with a slash (refs: \fI\%#40760\fP)
  209304. .IP \(bu 2
  209305. \fBPR\fP \fI\%#40769\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40760\fP to 2016.11
  209306. @ \fI2017\-04\-19 20:23:22 UTC\fP
  209307. .INDENT 2.0
  209308. .IP \(bu 2
  209309. \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)
  209310. .IP \(bu 2
  209311. d8f78550d9 Merge pull request \fI\%#40769\fP from rallytime/bp\-40760
  209312. .IP \(bu 2
  209313. 71ac15fc4c Fix \(aqroot=/...\(aq references in consul_pillar documentation: \(aqkeys should not start with a forward slash\(aq!
  209314. .UNINDENT
  209315. .IP \(bu 2
  209316. \fBPR\fP \fI\%#40756\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209317. @ \fI2017\-04\-19 17:47:51 UTC\fP
  209318. .INDENT 2.0
  209319. .IP \(bu 2
  209320. 61f8de43df Merge pull request \fI\%#40756\fP from rallytime/merge\-2016.11
  209321. .IP \(bu 2
  209322. 0e087323f1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209323. .IP \(bu 2
  209324. f4f3ee69ba Merge pull request \fI\%#40721\fP from gtmanfred/2016.3
  209325. .INDENT 2.0
  209326. .IP \(bu 2
  209327. 58b88859b3 unset the bitwise instead of toggle
  209328. .UNINDENT
  209329. .UNINDENT
  209330. .IP \(bu 2
  209331. \fBISSUE\fP \fI\%#29602\fP: (\fI\%multani\fP) cloud.action start raises "got an unexpected keyword argument \(aqkwargs\(aq" (refs: \fI\%#40735\fP)
  209332. .IP \(bu 2
  209333. \fBPR\fP \fI\%#40735\fP: (\fI\%rallytime\fP) Handle stacktraces in cloud.action function in module and runner
  209334. @ \fI2017\-04\-18 20:05:06 UTC\fP
  209335. .INDENT 2.0
  209336. .IP \(bu 2
  209337. 3557b5140e Merge pull request \fI\%#40735\fP from rallytime/handle\-cloud\-traces
  209338. .IP \(bu 2
  209339. 87154a95a4 Use \fIlog.error\fP instead of \fIlog.err\fP
  209340. .IP \(bu 2
  209341. b35bf919a3 Handle stacktraces in cloud.action function in module and runner
  209342. .UNINDENT
  209343. .IP \(bu 2
  209344. \fBPR\fP \fI\%#40745\fP: (\fI\%cro\fP) Backport \fIAdd support for specifying a datastore for new disks.\fP PR \fI\%#36457\fP
  209345. @ \fI2017\-04\-18 20:00:51 UTC\fP
  209346. .INDENT 2.0
  209347. .IP \(bu 2
  209348. \fBPR\fP \fI\%#36457\fP: (\fI\%cro\fP) Add support for specifying a datastore for new disks. (refs: \fI\%#40745\fP)
  209349. .IP \(bu 2
  209350. e700d8183b Merge pull request \fI\%#40745\fP from cro/vmware_disk_datastore_bp
  209351. .IP \(bu 2
  209352. 1460f82ce4 Remove leftover conflict markers (oops! :\-/ )
  209353. .IP \(bu 2
  209354. b26be652dd Remove leftover conflict markers (oops! :\-/ )
  209355. .IP \(bu 2
  209356. 096f063464 Remove leftover conflict markers (oops! :\-/ )
  209357. .IP \(bu 2
  209358. d24078d1a0 Add docs for "datastore" param for disks
  209359. .IP \(bu 2
  209360. 500d6b281d Document validity of a datastore key inside a disk definition.
  209361. .IP \(bu 2
  209362. 7608b10225 Add support for specifying a datastore for new disks.
  209363. .UNINDENT
  209364. .IP \(bu 2
  209365. \fBPR\fP \fI\%#40740\fP: (\fI\%cro\fP) Backport pr \fI\%#39802\fP to add random_startup_delay
  209366. @ \fI2017\-04\-18 19:47:55 UTC\fP
  209367. .INDENT 2.0
  209368. .IP \(bu 2
  209369. \fBPR\fP \fI\%#39802\fP: (\fI\%cachedout\fP) A random startup delay option for minions (refs: \fI\%#40740\fP)
  209370. .IP \(bu 2
  209371. 78dbab01dc Merge pull request \fI\%#40740\fP from cro/minion_delay_start
  209372. .IP \(bu 2
  209373. 2ab95b7dd5 Set minion test to use default opts
  209374. .IP \(bu 2
  209375. 785e6060a9 Add requested docs
  209376. .IP \(bu 2
  209377. 8ab321f934 A random startup delay option for minions
  209378. .UNINDENT
  209379. .IP \(bu 2
  209380. \fBPR\fP \fI\%#40728\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209381. @ \fI2017\-04\-17 21:13:15 UTC\fP
  209382. .INDENT 2.0
  209383. .IP \(bu 2
  209384. a48ecc4a5c Merge pull request \fI\%#40728\fP from rallytime/merge\-2016.11
  209385. .IP \(bu 2
  209386. 0a5e05a6e5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209387. .IP \(bu 2
  209388. bf8bb0fde6 Merge pull request \fI\%#40719\fP from rallytime/bp\-40714
  209389. .INDENT 2.0
  209390. .IP \(bu 2
  209391. d6c436246b Make salt.modules.pw_user.get_loginclass return string rather than dict
  209392. .UNINDENT
  209393. .IP \(bu 2
  209394. 4145d33e46 Merge pull request \fI\%#40718\fP from terminalmage/fix\-docstring
  209395. .IP \(bu 2
  209396. 14e8b85da5 Fix copypasta in the pw_user docstring
  209397. .UNINDENT
  209398. .IP \(bu 2
  209399. \fBISSUE\fP \fI\%#36967\fP: (\fI\%gmykhailiuta\fP) S3fs objects list gets truncated (refs: \fI\%#40707\fP)
  209400. .IP \(bu 2
  209401. \fBPR\fP \fI\%#40707\fP: (\fI\%gtmanfred\fP) Use markers when s3 bucket list is truncated
  209402. @ \fI2017\-04\-17 16:45:21 UTC\fP
  209403. .INDENT 2.0
  209404. .IP \(bu 2
  209405. c5cbfc2e63 Merge pull request \fI\%#40707\fP from gtmanfred/2016.11
  209406. .IP \(bu 2
  209407. 1932f7265d Use markers when s3 bucket list is truncated
  209408. .UNINDENT
  209409. .UNINDENT
  209410. .SS Salt 2016.11.6 Release Notes
  209411. .sp
  209412. Version 2016.11.6 is a bugfix release for 2016.11.0\&.
  209413. .SS Statistics
  209414. .INDENT 0.0
  209415. .IP \(bu 2
  209416. Total Merges: \fB137\fP
  209417. .IP \(bu 2
  209418. Total Issue References: \fB58\fP
  209419. .IP \(bu 2
  209420. Total PR References: \fB153\fP
  209421. .IP \(bu 2
  209422. 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)
  209423. .UNINDENT
  209424. .SS Changelog for v2016.11.5..v2016.11.6
  209425. .sp
  209426. \fIGenerated at: 2018\-05\-27 20:18:17 UTC\fP
  209427. .INDENT 0.0
  209428. .IP \(bu 2
  209429. \fBPR\fP \fI\%#41861\fP: (\fI\%twangboy\fP) Fix problems with get_rule and delete_rule
  209430. @ \fI2017\-06\-20 20:37:23 UTC\fP
  209431. .INDENT 2.0
  209432. .IP \(bu 2
  209433. afc61ffe63 Merge pull request \fI\%#41861\fP from twangboy/fix_win_firewall
  209434. .IP \(bu 2
  209435. 78892074f5 Fix problems with get_rule and delete_rule
  209436. .UNINDENT
  209437. .IP \(bu 2
  209438. \fBISSUE\fP \fI\%#41778\fP: (\fI\%frogunder\fP) 2016.11.6 \- TCP Transport gives Exception (refs: \fI\%#41787\fP)
  209439. .IP \(bu 2
  209440. \fBPR\fP \fI\%#41787\fP: (\fI\%skizunov\fP) Fix \fI\%#41778\fP
  209441. @ \fI2017\-06\-20 20:11:23 UTC\fP
  209442. .INDENT 2.0
  209443. .IP \(bu 2
  209444. \fBPR\fP \fI\%#41436\fP: (\fI\%skizunov\fP) TCP transport: Fix occasional errors when using salt command (refs: \fI\%#41787\fP)
  209445. .IP \(bu 2
  209446. 938d4fddf1 Merge pull request \fI\%#41787\fP from skizunov/develop3
  209447. .IP \(bu 2
  209448. 2ffd20cede Fix \fI\%#41778\fP
  209449. .UNINDENT
  209450. .IP \(bu 2
  209451. \fBPR\fP \fI\%#41812\fP: (\fI\%skizunov\fP) TCP: Fix salt\-master in bad state if remote side closed connection
  209452. @ \fI2017\-06\-20 19:46:53 UTC\fP
  209453. .INDENT 2.0
  209454. .IP \(bu 2
  209455. 03b6ae5ea8 Merge pull request \fI\%#41812\fP from skizunov/develop4
  209456. .IP \(bu 2
  209457. 736420eb83 TCP: Fix salt\-master in bad state if remote side closed connection
  209458. .UNINDENT
  209459. .IP \(bu 2
  209460. \fBPR\fP \fI\%#41857\fP: (\fI\%dmurphy18\fP) Modified support for deprecated netstat being removed by utilizing ss
  209461. @ \fI2017\-06\-20 18:46:27 UTC\fP
  209462. .INDENT 2.0
  209463. .IP \(bu 2
  209464. cf2252bcea Merge pull request \fI\%#41857\fP from dmurphy18/netstat_fix
  209465. .IP \(bu 2
  209466. 017fbdbc53 Modified support for deprecated netstat being removed by utilizing ss
  209467. .UNINDENT
  209468. .IP \(bu 2
  209469. \fBISSUE\fP \fI\%#40878\fP: (\fI\%joewreschnig\fP) SSH modules spam warning about MD5 fingerprints when there aren\(aqt any (refs: \fI\%#41837\fP)
  209470. .IP \(bu 2
  209471. \fBISSUE\fP \fI\%#40005\fP: (\fI\%vutny\fP) \fIssh_known_hosts.present\fP does not support SHA256 key fingerprints (refs: \fI\%#40543\fP)
  209472. .IP \(bu 2
  209473. \fBPR\fP \fI\%#41837\fP: (\fI\%rallytime\fP) Add fingerpint_hash_type option to ssh_auth state and related functions
  209474. @ \fI2017\-06\-20 18:14:53 UTC\fP
  209475. .INDENT 2.0
  209476. .IP \(bu 2
  209477. \fBPR\fP \fI\%#40543\fP: (\fI\%rallytime\fP) Add the "fingerprint_hash_type" option to ssh state and module (refs: \fI\%#41837\fP)
  209478. .IP \(bu 2
  209479. 12ec5f9f23 Merge pull request \fI\%#41837\fP from rallytime/fix\-40878
  209480. .IP \(bu 2
  209481. 48ff5d2a62 Add fingerpint_hash_type option to ssh_auth state and related functions
  209482. .UNINDENT
  209483. .IP \(bu 2
  209484. \fBPR\fP \fI\%#41839\fP: (\fI\%cro\fP) Extend proxy to jinja
  209485. @ \fI2017\-06\-19 23:03:00 UTC\fP
  209486. .INDENT 2.0
  209487. .IP \(bu 2
  209488. e7fc30f482 Merge pull request \fI\%#41839\fP from cro/extend_proxy_to_jinja
  209489. .IP \(bu 2
  209490. 172d3520ea Merge branch \(aqextend_proxy_to_jinja\(aq of github.com:cro/salt into extend_proxy_to_jinja
  209491. .INDENT 2.0
  209492. .IP \(bu 2
  209493. 2e4a0633da Extend __proxy__ to jinja as \fIproxy\fP (like __salt__\->salt)
  209494. .UNINDENT
  209495. .IP \(bu 2
  209496. 2ffad2af35 Extend __proxy__ to jinja as \fIproxy\fP (like __salt__\->salt)
  209497. .UNINDENT
  209498. .IP \(bu 2
  209499. \fBISSUE\fP \fI\%#41733\fP: (\fI\%sumeetisp\fP) Salt Rest Api call (refs: \fI\%#41786\fP)
  209500. .IP \(bu 2
  209501. \fBISSUE\fP \fI\%#40845\fP: (\fI\%e\-senthilkumar\fP) /jobs call is broken in 2016.11.4 (refs: \fI\%#41786\fP)
  209502. .IP \(bu 2
  209503. \fBISSUE\fP \fI\%#38962\fP: (\fI\%gstachowiak\fP) Broken /jobs in salt\-api in salt 2016.11.1 (Carbon) (refs: \fI\%#39472\fP)
  209504. .IP \(bu 2
  209505. \fBPR\fP \fI\%#41786\fP: (\fI\%whiteinge\fP) Runner arg parsing regressions
  209506. @ \fI2017\-06\-19 23:00:07 UTC\fP
  209507. .INDENT 2.0
  209508. .IP \(bu 2
  209509. \fBPR\fP \fI\%#39472\fP: (\fI\%whiteinge\fP) Update _reformat_low to not run kwarg dicts through parse_input (refs: \fI\%#41786\fP)
  209510. .IP \(bu 2
  209511. 58387b127a Merge pull request \fI\%#41786\fP from whiteinge/runner\-arg\-parsing\-regressions
  209512. .IP \(bu 2
  209513. bf15c0bb5f Restore sending __current_eauth_* through to the function
  209514. .IP \(bu 2
  209515. 6be975da2c Fix regressions from not calling load_args_and_kwargs
  209516. .IP \(bu 2
  209517. 9d1cc1a176 Add test to check that runners ignore invalid kwargs
  209518. .UNINDENT
  209519. .IP \(bu 2
  209520. \fBPR\fP \fI\%#41776\fP: (\fI\%gtmanfred\fP) npm 5.0.0 added a second line after fsevents
  209521. @ \fI2017\-06\-19 16:53:43 UTC\fP
  209522. .INDENT 2.0
  209523. .IP \(bu 2
  209524. be0e9abedb Merge pull request \fI\%#41776\fP from gtmanfred/2016.11
  209525. .IP \(bu 2
  209526. 733a2279ca npm 5.0.0 added a second line after fsevents
  209527. .UNINDENT
  209528. .IP \(bu 2
  209529. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#41783\fP)
  209530. .IP \(bu 2
  209531. \fBPR\fP \fI\%#41783\fP: (\fI\%rallytime\fP) Add a bunch of config options to the various master/minion files that are missing
  209532. @ \fI2017\-06\-19 16:42:54 UTC\fP
  209533. .INDENT 2.0
  209534. .IP \(bu 2
  209535. d94d4e4d19 Merge pull request \fI\%#41783\fP from rallytime/config\-doc\-updates
  209536. .IP \(bu 2
  209537. c828ad803a Add a bunch of config options to the various master/minion files that are missing
  209538. .UNINDENT
  209539. .IP \(bu 2
  209540. \fBPR\fP \fI\%#41816\fP: (\fI\%twangboy\fP) Upgrade psutil to version 5.2.2
  209541. @ \fI2017\-06\-17 01:51:29 UTC\fP
  209542. .INDENT 2.0
  209543. .IP \(bu 2
  209544. 2c681887d3 Merge pull request \fI\%#41816\fP from twangboy/update_psutil_req
  209545. .IP \(bu 2
  209546. 8b4e3ad77d Upgrade psutil to version 5.2.2
  209547. .UNINDENT
  209548. .IP \(bu 2
  209549. \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)
  209550. .IP \(bu 2
  209551. \fBPR\fP \fI\%#41803\fP: (\fI\%terminalmage\fP) Don\(aqt log an error when no top.sls is found
  209552. @ \fI2017\-06\-16 22:49:08 UTC\fP
  209553. .INDENT 2.0
  209554. .IP \(bu 2
  209555. 3e5fe7ca4b Merge pull request \fI\%#41803\fP from terminalmage/issue41785
  209556. .IP \(bu 2
  209557. f9f4d49f05 Don\(aqt log an error when no top.sls is found
  209558. .UNINDENT
  209559. .IP \(bu 2
  209560. \fBPR\fP \fI\%#41801\fP: (\fI\%terminalmage\fP) Don\(aqt take hostname from name param when creating docker container (2016.11 branch)
  209561. @ \fI2017\-06\-16 17:02:02 UTC\fP
  209562. .INDENT 2.0
  209563. .IP \(bu 2
  209564. d12bc4ee68 Merge pull request \fI\%#41801\fP from terminalmage/issue41781\-2016.11
  209565. .IP \(bu 2
  209566. 8236d3e1c3 Don\(aqt take hostname from name param when creating docker container (2016.11 branch)
  209567. .UNINDENT
  209568. .IP \(bu 2
  209569. \fBPR\fP \fI\%#41768\fP: (\fI\%rallytime\fP) Manually back\-port the changes in PR \fI\%#41615\fP
  209570. @ \fI2017\-06\-15 20:41:45 UTC\fP
  209571. .INDENT 2.0
  209572. .IP \(bu 2
  209573. \fBPR\fP \fI\%#41615\fP: (\fI\%Ch3LL\fP) Fix get_hwclock_aix test on MacOSX (refs: \fI\%#41768\fP)
  209574. .IP \(bu 2
  209575. 87e2e72d94 Merge pull request \fI\%#41768\fP from rallytime/bp\-41615
  209576. .IP \(bu 2
  209577. b6cc0b6bf0 Manually backport the changes in PR \fI\%#41615\fP
  209578. .UNINDENT
  209579. .IP \(bu 2
  209580. \fBPR\fP \fI\%#41740\fP: (\fI\%terminalmage\fP) Fix spurious error when glob/regex used in publisher_acl
  209581. @ \fI2017\-06\-15 15:14:56 UTC\fP
  209582. .INDENT 2.0
  209583. .IP \(bu 2
  209584. 36cb223ab2 Merge pull request \fI\%#41740\fP from terminalmage/zd1532
  209585. .IP \(bu 2
  209586. e5f3d08751 Fix spurious error when glob/regex used in publisher_acl
  209587. .UNINDENT
  209588. .IP \(bu 2
  209589. \fBPR\fP \fI\%#41749\fP: (\fI\%terminalmage\fP) Fix bug in pkg_resource.parse_targets when version passed
  209590. @ \fI2017\-06\-15 15:05:52 UTC\fP
  209591. .INDENT 2.0
  209592. .IP \(bu 2
  209593. 126a36747b Merge pull request \fI\%#41749\fP from terminalmage/parse_targets
  209594. .IP \(bu 2
  209595. 698806fb09 No need to manually create pkg_params dict when name and version passed
  209596. .IP \(bu 2
  209597. 7484bcc6c6 parse_targets: include version in packed return data
  209598. .UNINDENT
  209599. .IP \(bu 2
  209600. \fBPR\fP \fI\%#41753\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41449\fP to 2016.11
  209601. @ \fI2017\-06\-14 22:16:10 UTC\fP
  209602. .INDENT 2.0
  209603. .IP \(bu 2
  209604. \fBPR\fP \fI\%#41449\fP: (\fI\%sebw\fP) Fix state "svn.latest" diff output in test mode (refs: \fI\%#41753\fP)
  209605. .IP \(bu 2
  209606. 2c24012ded Merge pull request \fI\%#41753\fP from rallytime/bp\-41449
  209607. .IP \(bu 2
  209608. fae41c2875 Adjusting SVN unit test
  209609. .IP \(bu 2
  209610. eac6b151eb Improved SVN output in test mode
  209611. .UNINDENT
  209612. .IP \(bu 2
  209613. \fBPR\fP \fI\%#41750\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209614. @ \fI2017\-06\-14 22:15:41 UTC\fP
  209615. .INDENT 2.0
  209616. .IP \(bu 2
  209617. e685858269 Merge pull request \fI\%#41750\fP from rallytime/merge\-2016.11
  209618. .IP \(bu 2
  209619. 89834e49c2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209620. .INDENT 2.0
  209621. .IP \(bu 2
  209622. c5a79a1ea6 Merge pull request \fI\%#41695\fP from xiaoanyunfei/fixRecursion
  209623. .INDENT 2.0
  209624. .IP \(bu 2
  209625. c54fde69a0 fix spell error
  209626. .IP \(bu 2
  209627. bc855b4711 fix swallow exception
  209628. .IP \(bu 2
  209629. c0b1f57fc0 add exception
  209630. .IP \(bu 2
  209631. aacf9f0a44 fix maximum recursion depth exceeded
  209632. .UNINDENT
  209633. .IP \(bu 2
  209634. 4b43ba3366 Merge pull request \fI\%#41585\fP from cro/sign_minion_messages
  209635. .INDENT 2.0
  209636. .IP \(bu 2
  209637. 628f709c3c Correct test\-\-caching requires files on disk but the test just supplies what would have been read from disk.
  209638. .IP \(bu 2
  209639. 687872a488 Lint
  209640. .IP \(bu 2
  209641. 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.
  209642. .IP \(bu 2
  209643. e44673cdae Add caching of key.
  209644. .IP \(bu 2
  209645. c3917d1e91 Fat finger fix.
  209646. .IP \(bu 2
  209647. 3b9326fda7 Sign_minion_messages support
  209648. .UNINDENT
  209649. .UNINDENT
  209650. .UNINDENT
  209651. .IP \(bu 2
  209652. \fBPR\fP \fI\%#41756\fP: (\fI\%Ch3LL\fP) Add Change Log to 2016.11.6 Release Notes
  209653. @ \fI2017\-06\-14 20:57:08 UTC\fP
  209654. .INDENT 2.0
  209655. .IP \(bu 2
  209656. 36cc8f1e35 Merge pull request \fI\%#41756\fP from Ch3LL/2016.11.6_release
  209657. .IP \(bu 2
  209658. fa368f21ac Add Change Log to 2016.11.6 Release Notes
  209659. .UNINDENT
  209660. .IP \(bu 2
  209661. \fBISSUE\fP \fI\%#40155\fP: (\fI\%grichmond\-salt\fP) State module boto_vpc not working with boto 2 (refs: \fI\%#41692\fP)
  209662. .IP \(bu 2
  209663. \fBPR\fP \fI\%#41692\fP: (\fI\%rallytime\fP) Add boto and boto3 version dependencies to boto_vpc state docs
  209664. @ \fI2017\-06\-14 19:05:07 UTC\fP
  209665. .INDENT 2.0
  209666. .IP \(bu 2
  209667. edcafc6a26 Merge pull request \fI\%#41692\fP from rallytime/fix\-40155
  209668. .IP \(bu 2
  209669. 539c1b0692 Add boto and boto3 version dependencies to boto_vpc state docs
  209670. .UNINDENT
  209671. .IP \(bu 2
  209672. \fBISSUE\fP \fI\%#39918\fP: (\fI\%kivoli\fP) Enabling list merging leads to multiplying of unique list items (refs: \fI\%#40902\fP)
  209673. .IP \(bu 2
  209674. \fBPR\fP \fI\%#40902\fP: (\fI\%lorengordon\fP) Removes duplicates when merging pillar lists and adds pillar.get override for pillar_merge_lists
  209675. @ \fI2017\-06\-14 18:39:09 UTC\fP
  209676. .INDENT 2.0
  209677. .IP \(bu 2
  209678. bdaeb55a77 Merge pull request \fI\%#40902\fP from lorengordon/pillar\-get\-merge\-lists
  209679. .IP \(bu 2
  209680. 6e35673fe3 Preserves order when removing duplicates
  209681. .IP \(bu 2
  209682. 18eda7084c Updates list merge tests to check for sorted, unique lists
  209683. .IP \(bu 2
  209684. 74bf91f99e Sorts the list when removing duplicates
  209685. .IP \(bu 2
  209686. 26a4b1b17f Adds pillar.get param to control list merge/overwrite behavior
  209687. .IP \(bu 2
  209688. ed04bae94c Removes duplicate values when merging lists
  209689. .UNINDENT
  209690. .IP \(bu 2
  209691. \fBISSUE\fP \fI\%#32743\fP: (\fI\%tonybaloney\fP) Issue with salt\-cloud on OpenSUSE (refs: \fI\%#41723\fP)
  209692. .IP \(bu 2
  209693. \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
  209694. @ \fI2017\-06\-14 17:13:38 UTC\fP
  209695. .INDENT 2.0
  209696. .IP \(bu 2
  209697. \fBPR\fP \fI\%#40837\fP: (\fI\%tonybaloney\fP) Upgrade apache\-libcloud package dependency for 2.0 (refs: \fI\%#41723\fP)
  209698. .IP \(bu 2
  209699. 203ec6730f Merge pull request \fI\%#41723\fP from rallytime/libcloud\-support
  209700. .IP \(bu 2
  209701. 1e9a06000b Bump version check down to 1.4.0 and use distutils.version lib
  209702. .IP \(bu 2
  209703. a30f654b04 Support apache\-libcloud work\-around for issue \fI\%#32743\fP for versions older than 2.0.0
  209704. .UNINDENT
  209705. .IP \(bu 2
  209706. \fBISSUE\fP \fI\%#41654\fP: (\fI\%Enquier\fP) Nova Cloud module doesn\(aqt work for python\-novaclient 8.0.0+ (refs: \fI\%#41655\fP)
  209707. .IP \(bu 2
  209708. \fBPR\fP \fI\%#41655\fP: (\fI\%Enquier\fP) Allow Nova cloud module to set a specific floating ip address
  209709. @ \fI2017\-06\-14 16:44:05 UTC\fP
  209710. .INDENT 2.0
  209711. .IP \(bu 2
  209712. 62dbf5083c Merge pull request \fI\%#41655\fP from Enquier/nova\-cloud\-set_ip_address
  209713. .IP \(bu 2
  209714. 293bc64158 Removed empty debug log
  209715. .IP \(bu 2
  209716. 3d9871fe11 Cleaning up, removing debugging tests
  209717. .IP \(bu 2
  209718. c78e5feea9 Fixing error message
  209719. .IP \(bu 2
  209720. 404dffb6b8 Debugging variable format
  209721. .IP \(bu 2
  209722. 6fa3b976a5 removing string call
  209723. .IP \(bu 2
  209724. 005995e1b0 modifying variable calls
  209725. .IP \(bu 2
  209726. 9e5e7a38ec Testing variable changes
  209727. .IP \(bu 2
  209728. 05e240f37f Debugging Format of floating_ip variable
  209729. .IP \(bu 2
  209730. 366aca00a8 Adding Max version check for Nova since Cloud no longer operates at higher versions
  209731. .IP \(bu 2
  209732. 6f66c9d10c Fixing response of floating_ip_show to align with other floating ip\(aqs. Spelling fix
  209733. .IP \(bu 2
  209734. 58459adbe8 Adding ability to set a Floating IP by a specific IP address
  209735. .UNINDENT
  209736. .IP \(bu 2
  209737. \fBPR\fP \fI\%#41731\fP: (\fI\%terminalmage\fP) Clarify that archive_format is required pre\-2016.11.0
  209738. @ \fI2017\-06\-14 15:05:21 UTC\fP
  209739. .INDENT 2.0
  209740. .IP \(bu 2
  209741. 82eab84883 Merge pull request \fI\%#41731\fP from terminalmage/docs
  209742. .IP \(bu 2
  209743. d3f4ea1a84 Clarify that archive_format is required pre\-2016.11.0
  209744. .UNINDENT
  209745. .IP \(bu 2
  209746. \fBPR\fP \fI\%#41663\fP: (\fI\%skizunov\fP) Don\(aqt invoke lspci if enable_lspci is False
  209747. @ \fI2017\-06\-13 21:19:42 UTC\fP
  209748. .INDENT 2.0
  209749. .IP \(bu 2
  209750. b6d27beac2 Merge pull request \fI\%#41663\fP from skizunov/develop3
  209751. .IP \(bu 2
  209752. 154d6ce59e Don\(aqt invoke lspci if enable_lspci is False
  209753. .UNINDENT
  209754. .IP \(bu 2
  209755. \fBISSUE\fP \fI\%#40446\fP: (\fI\%sumeetisp\fP) [Documentation] include list of kwargs for ec2.create_volume in cloud driver (refs: \fI\%#41693\fP)
  209756. .IP \(bu 2
  209757. \fBPR\fP \fI\%#41693\fP: (\fI\%rallytime\fP) Document available kwargs for ec2.create_volume function
  209758. @ \fI2017\-06\-13 19:51:10 UTC\fP
  209759. .INDENT 2.0
  209760. .IP \(bu 2
  209761. 46b8d5dc4b Merge pull request \fI\%#41693\fP from rallytime/fix\-40446
  209762. .IP \(bu 2
  209763. 569eb2bf7e Document available kwargs for ec2.create_volume function
  209764. .UNINDENT
  209765. .IP \(bu 2
  209766. \fBISSUE\fP \fI\%#41691\fP: (\fI\%jdonofrio728\fP) Can\(aqt pass integers as cmd.run environment variables (refs: \fI\%#41696\fP)
  209767. .IP \(bu 2
  209768. \fBPR\fP \fI\%#41696\fP: (\fI\%terminalmage\fP) Handle a few edge/corner cases with non\-string input to cmd.run
  209769. @ \fI2017\-06\-13 18:48:56 UTC\fP
  209770. .INDENT 2.0
  209771. .IP \(bu 2
  209772. aab55d304a Merge pull request \fI\%#41696\fP from terminalmage/issue41691
  209773. .IP \(bu 2
  209774. 0623e40d33 Apparently some funcs are passing tuples to cmd.run_*
  209775. .IP \(bu 2
  209776. cdbfb94cfe Handle a few edge/corner cases with non\-string input to cmd.run
  209777. .UNINDENT
  209778. .IP \(bu 2
  209779. \fBPR\fP \fI\%#41697\fP: (\fI\%terminalmage\fP) Resubmit \fI\%#41545\fP against 2016.11 branch
  209780. @ \fI2017\-06\-13 16:10:37 UTC\fP
  209781. .INDENT 2.0
  209782. .IP \(bu 2
  209783. \fBPR\fP \fI\%#41545\fP: (\fI\%kiorky\fP) Make print_cli resilient on slow systems (refs: \fI\%#41697\fP)
  209784. .IP \(bu 2
  209785. 97897d7a7a Merge pull request \fI\%#41697\fP from terminalmage/pr\-41545
  209786. .IP \(bu 2
  209787. faaacf88bf Use error name instead of error number
  209788. .IP \(bu 2
  209789. 7eacda5cbf Make print_cli resilient on slow systems
  209790. .UNINDENT
  209791. .IP \(bu 2
  209792. \fBISSUE\fP \fI\%#40605\fP: (\fI\%sumeetisp\fP) Salt\-run manage.bootstrap (refs: \fI\%#41711\fP)
  209793. .IP \(bu 2
  209794. \fBPR\fP \fI\%#41711\fP: (\fI\%rallytime\fP) Update deprecated version info in manage.bootstrap func for root_user
  209795. @ \fI2017\-06\-13 16:04:32 UTC\fP
  209796. .INDENT 2.0
  209797. .IP \(bu 2
  209798. 09260d7c08 Merge pull request \fI\%#41711\fP from rallytime/fix\-40605
  209799. .IP \(bu 2
  209800. 903c2ffca5 Update deprecated version info in manage.bootstrap fucn for root_user
  209801. .UNINDENT
  209802. .IP \(bu 2
  209803. \fBISSUE\fP \fI\%#39668\fP: (\fI\%mirceaulinic\fP) Master scheduled job not recorded on the event bus (refs: \fI\%#41658\fP)
  209804. .IP \(bu 2
  209805. \fBPR\fP \fI\%#41658\fP: (\fI\%garethgreenaway\fP) Fixes to the salt scheduler
  209806. @ \fI2017\-06\-13 16:00:57 UTC\fP
  209807. .INDENT 2.0
  209808. .IP \(bu 2
  209809. d563b3e345 Merge pull request \fI\%#41658\fP from garethgreenaway/39668_schedule_runners_fire_events
  209810. .IP \(bu 2
  209811. d688a1cd88 Enable jobs scheduled on the master to fire their return data to the event bus
  209812. .UNINDENT
  209813. .IP \(bu 2
  209814. \fBPR\fP \fI\%#41706\fP: (\fI\%twangboy\fP) Add missing batch files
  209815. @ \fI2017\-06\-13 15:32:53 UTC\fP
  209816. .INDENT 2.0
  209817. .IP \(bu 2
  209818. 3c3b9343b7 Merge pull request \fI\%#41706\fP from twangboy/batch_files
  209819. .IP \(bu 2
  209820. 0d4be0220b Add batch files for master
  209821. .UNINDENT
  209822. .IP \(bu 2
  209823. \fBPR\fP \fI\%#41710\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209824. @ \fI2017\-06\-13 15:11:38 UTC\fP
  209825. .INDENT 2.0
  209826. .IP \(bu 2
  209827. 1afc4adc5a Merge pull request \fI\%#41710\fP from rallytime/merge\-2016.11
  209828. .IP \(bu 2
  209829. 5150916556 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209830. .IP \(bu 2
  209831. 5058b0de1f Merge pull request \fI\%#41707\fP from terminalmage/master\-tops\-docs
  209832. .INDENT 2.0
  209833. .IP \(bu 2
  209834. 6ec9dfb7f3 Update version in master\-tops docs
  209835. .UNINDENT
  209836. .IP \(bu 2
  209837. 1c1964d807 Merge pull request \fI\%#41689\fP from yannj\-fr/fix\-41688
  209838. .INDENT 2.0
  209839. .IP \(bu 2
  209840. a47eddccd2 Fix \fI\%#41688\fP : fix mkfs command linux\-swap support
  209841. .UNINDENT
  209842. .UNINDENT
  209843. .IP \(bu 2
  209844. \fBPR\fP \fI\%#41702\fP: (\fI\%gtmanfred\fP) npm 5 and greater requires \-\-force for cache clean
  209845. @ \fI2017\-06\-12 23:21:56 UTC\fP
  209846. .INDENT 2.0
  209847. .IP \(bu 2
  209848. 5d763b9b7f Merge pull request \fI\%#41702\fP from gtmanfred/2016.11
  209849. .IP \(bu 2
  209850. 8bd19fcc17 fix version number
  209851. .IP \(bu 2
  209852. 0fa380f75c npm 5 and greater requires \-\-force for cache clean
  209853. .UNINDENT
  209854. .IP \(bu 2
  209855. \fBISSUE\fP \fI\%#41668\fP: (\fI\%yannj\-fr\fP) Parted modules mkfs command does not work with NTFS (refs: \fI\%#41670\fP)
  209856. .IP \(bu 2
  209857. \fBPR\fP \fI\%#41704\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41670\fP to 2016.11
  209858. @ \fI2017\-06\-12 23:20:31 UTC\fP
  209859. .INDENT 2.0
  209860. .IP \(bu 2
  209861. \fBPR\fP \fI\%#41670\fP: (\fI\%yannj\-fr\fP) fixes \fI\%#41668\fP ntfs case problem in parted module (refs: \fI\%#41704\fP)
  209862. .IP \(bu 2
  209863. f6519e7f80 Merge pull request \fI\%#41704\fP from rallytime/bp\-41670
  209864. .IP \(bu 2
  209865. 8afc8792d1 fixes \fI\%#41668\fP ntfs case problem in parted module
  209866. .UNINDENT
  209867. .IP \(bu 2
  209868. \fBISSUE\fP \fI\%#39939\fP: (\fI\%martinschipper\fP) Relative symlinks are changed with file.recurse 2016.11.3 (refs: \fI\%#41700\fP)
  209869. .IP \(bu 2
  209870. \fBPR\fP \fI\%#41700\fP: (\fI\%terminalmage\fP) roots: return actual link destination when listing symlinks
  209871. @ \fI2017\-06\-12 22:07:03 UTC\fP
  209872. .INDENT 2.0
  209873. .IP \(bu 2
  209874. 0b89377dce Merge pull request \fI\%#41700\fP from terminalmage/issue39939
  209875. .IP \(bu 2
  209876. bdbb265a0b roots: return actual link destination when listing symlinks
  209877. .UNINDENT
  209878. .IP \(bu 2
  209879. \fBPR\fP \fI\%#41699\fP: (\fI\%rallytime\fP) Remove note about version incompatibility with salt\-cloud
  209880. @ \fI2017\-06\-12 19:44:28 UTC\fP
  209881. .INDENT 2.0
  209882. .IP \(bu 2
  209883. 7cf47f9651 Merge pull request \fI\%#41699\fP from rallytime/troubleshooting\-doc\-update
  209884. .IP \(bu 2
  209885. c91ca5f809 Remove note about version incompatibility with salt\-cloud
  209886. .UNINDENT
  209887. .IP \(bu 2
  209888. \fBISSUE\fP \fI\%#40410\fP: (\fI\%DarrenDai\fP) Targeting Minions by IP Range via restful API doesn\(aqt work (refs: \fI\%#41694\fP)
  209889. .IP \(bu 2
  209890. \fBPR\fP \fI\%#41694\fP: (\fI\%rallytime\fP) Add ipcidr options to "Allowed Values" list in LocalClient expr_form docs
  209891. @ \fI2017\-06\-12 19:06:16 UTC\fP
  209892. .INDENT 2.0
  209893. .IP \(bu 2
  209894. d68a6316b8 Merge pull request \fI\%#41694\fP from rallytime/fix\-40410
  209895. .IP \(bu 2
  209896. 6de9da1d5d Add ipcidr options to "Allowed Values" list in LocalClient expr_form docs
  209897. .UNINDENT
  209898. .IP \(bu 2
  209899. \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)
  209900. .IP \(bu 2
  209901. \fBPR\fP \fI\%#41659\fP: (\fI\%lubyou\fP) Use re.escape to escape paths before handing them to re.match
  209902. @ \fI2017\-06\-12 18:10:53 UTC\fP
  209903. .INDENT 2.0
  209904. .IP \(bu 2
  209905. 80d4a3ab98 Merge pull request \fI\%#41659\fP from lubyou/41365\-fix\-file\-managed
  209906. .IP \(bu 2
  209907. d49a1579b0 Use re.escape to escape paths, before handing them to re.match
  209908. .IP \(bu 2
  209909. ac240facca use correct variable
  209910. .IP \(bu 2
  209911. c777eba2c1 Use re.escape to escape paths, before handing them to re.match
  209912. .UNINDENT
  209913. .IP \(bu 2
  209914. \fBPR\fP \fI\%#41661\fP: (\fI\%whiteinge\fP) Add note about avoiding the \fI\-i\fP flag for the /keys endpoint
  209915. @ \fI2017\-06\-09 15:03:40 UTC\fP
  209916. .INDENT 2.0
  209917. .IP \(bu 2
  209918. 564d5fd9d3 Merge pull request \fI\%#41661\fP from whiteinge/rest_cherrypy\-keys\-headers
  209919. .IP \(bu 2
  209920. a66ffc9d3e Add note about avoiding the \fI\-i\fP flag for the /keys endpoint
  209921. .UNINDENT
  209922. .IP \(bu 2
  209923. \fBISSUE\fP \fI\%#41651\fP: (\fI\%Sakorah\fP) pkg.installed fails when unholding and test=true (refs: \fI\%#41660\fP)
  209924. .IP \(bu 2
  209925. \fBPR\fP \fI\%#41660\fP: (\fI\%garethgreenaway\fP) Fix to modules/aptpkg.py for unheld
  209926. @ \fI2017\-06\-09 14:53:23 UTC\fP
  209927. .INDENT 2.0
  209928. .IP \(bu 2
  209929. 38424f3e3e Merge pull request \fI\%#41660\fP from garethgreenaway/41651_fixing_aptpkg_held_unheld_with_test
  209930. .IP \(bu 2
  209931. 30da2370a4 Fix when test=True and packages were being set to unheld.
  209932. .UNINDENT
  209933. .IP \(bu 2
  209934. \fBPR\fP \fI\%#41656\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41575\fP to 2016.11
  209935. @ \fI2017\-06\-08 22:43:23 UTC\fP
  209936. .INDENT 2.0
  209937. .IP \(bu 2
  209938. \fBPR\fP \fI\%#41575\fP: (\fI\%dschaller\fP) Fix 41562 (refs: \fI\%#41656\fP)
  209939. .IP \(bu 2
  209940. a308b960d8 Merge pull request \fI\%#41656\fP from rallytime/bp\-41575
  209941. .IP \(bu 2
  209942. 4374e6b034 Replace "tbd" with release version information
  209943. .IP \(bu 2
  209944. 81413896d1 Lint: Add index numbers to format {} calls
  209945. .IP \(bu 2
  209946. 384570384e only list top level npm modules during {un)install
  209947. .UNINDENT
  209948. .IP \(bu 2
  209949. \fBPR\fP \fI\%#41456\fP: (\fI\%bdrung\fP) Fix pkgrepo.managed always return changes for test=true
  209950. @ \fI2017\-06\-08 18:21:05 UTC\fP
  209951. .INDENT 2.0
  209952. .IP \(bu 2
  209953. e6d37b5f3e Merge pull request \fI\%#41456\fP from bdrung/fix\-pkgrepo.managed\-changes\-check
  209954. .IP \(bu 2
  209955. d3ce7bf05f Fix pkgrepo.managed always return changes for test=true
  209956. .IP \(bu 2
  209957. 1592687294 Document aptpkg architectures parameter
  209958. .UNINDENT
  209959. .IP \(bu 2
  209960. \fBISSUE\fP \fI\%#41478\fP: (\fI\%jf\fP) security / information leak with consul pillar when subsitution values are not present (refs: \fI\%#41530\fP)
  209961. .IP \(bu 2
  209962. \fBPR\fP \fI\%#41530\fP: (\fI\%gtmanfred\fP) Set default for consul_pillar to None
  209963. @ \fI2017\-06\-08 18:13:15 UTC\fP
  209964. .INDENT 2.0
  209965. .IP \(bu 2
  209966. 721e5b6cb9 Merge pull request \fI\%#41530\fP from gtmanfred/2016.11
  209967. .IP \(bu 2
  209968. 2a4633ce16 Set default for consul_pillar to None
  209969. .UNINDENT
  209970. .IP \(bu 2
  209971. \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)
  209972. .IP \(bu 2
  209973. \fBPR\fP \fI\%#41638\fP: (\fI\%gtmanfred\fP) don\(aqt overwrite args if they are passed to the script
  209974. @ \fI2017\-06\-08 17:48:48 UTC\fP
  209975. .INDENT 2.0
  209976. .IP \(bu 2
  209977. 8926d1c731 Merge pull request \fI\%#41638\fP from gtmanfred/cmdscript
  209978. .IP \(bu 2
  209979. 6c7d68b97d don\(aqt overwrite args if they are passed to the script
  209980. .UNINDENT
  209981. .IP \(bu 2
  209982. \fBPR\fP \fI\%#41639\fP: (\fI\%dmurphy18\fP) Update notrim check, netstat takes minutes if large number connections
  209983. @ \fI2017\-06\-07 23:03:24 UTC\fP
  209984. .INDENT 2.0
  209985. .IP \(bu 2
  209986. ecb09b8694 Merge pull request \fI\%#41639\fP from dmurphy18/minion_netstat_check
  209987. .IP \(bu 2
  209988. 7ab3319090 Update notrim check, netstat takes minutes if large number connections \- 260K
  209989. .UNINDENT
  209990. .IP \(bu 2
  209991. \fBISSUE\fP \fI\%#38894\fP: (\fI\%amendlik\fP) salt.runner and salt.wheel ignore test=True (refs: \fI\%#41309\fP, \fI\%#41611\fP)
  209992. .IP \(bu 2
  209993. \fBPR\fP \fI\%#41611\fP: (\fI\%garethgreenaway\fP) Additional fixes to states/saltmod.py
  209994. @ \fI2017\-06\-07 22:58:24 UTC\fP
  209995. .INDENT 2.0
  209996. .IP \(bu 2
  209997. 2913a33b27 Merge pull request \fI\%#41611\fP from garethgreenaway/41309_right_return_res
  209998. .IP \(bu 2
  209999. fda41ede76 Updating result values to be None for test cases.
  210000. .IP \(bu 2
  210001. 003f2d9323 Following the documentation, when passed the test=True argument the runner and wheel functions should return a result value of False.
  210002. .UNINDENT
  210003. .IP \(bu 2
  210004. \fBISSUE\fP \fI\%#41626\fP: (\fI\%ruiaylin\fP) When onlyif and bg are used together the (refs: \fI\%#41637\fP)
  210005. .IP \(bu 2
  210006. \fBPR\fP \fI\%#41637\fP: (\fI\%gtmanfred\fP) never run bg for onlyif or unless cmd states
  210007. @ \fI2017\-06\-07 17:37:47 UTC\fP
  210008. .INDENT 2.0
  210009. .IP \(bu 2
  210010. 334a5fc2a0 Merge pull request \fI\%#41637\fP from gtmanfred/cmd
  210011. .IP \(bu 2
  210012. 40fb6c6249 never run bg for onlyif or unless cmd states
  210013. .UNINDENT
  210014. .IP \(bu 2
  210015. \fBPR\fP \fI\%#41255\fP: (\fI\%lordcirth\fP) linux_syctl.default_config(): only return path, don\(aqt create it
  210016. @ \fI2017\-06\-07 14:13:07 UTC\fP
  210017. .INDENT 2.0
  210018. .IP \(bu 2
  210019. 34dd9ea862 Merge pull request \fI\%#41255\fP from lordcirth/fix\-sysctl\-test\-11
  210020. .IP \(bu 2
  210021. 0089be4440 linux_sysctl: use dirname() as suggested
  210022. .IP \(bu 2
  210023. 262d95e41d linux_syctl.default_config(): only return path, don\(aqt create it
  210024. .IP \(bu 2
  210025. 277232b3ac linux_sysctl.persist(): create config dir if needed
  210026. .UNINDENT
  210027. .IP \(bu 2
  210028. \fBISSUE\fP \fI\%#35481\fP: (\fI\%giany\fP) global_identifier does not work when using Softlayer driver (refs: \fI\%#41551\fP)
  210029. .IP \(bu 2
  210030. \fBPR\fP \fI\%#41616\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41551\fP to 2016.11
  210031. @ \fI2017\-06\-06 22:44:09 UTC\fP
  210032. .INDENT 2.0
  210033. .IP \(bu 2
  210034. \fBPR\fP \fI\%#41551\fP: (\fI\%darenjacobs\fP) Update __init__.py (refs: \fI\%#41616\fP)
  210035. .IP \(bu 2
  210036. 4cf577771b Merge pull request \fI\%#41616\fP from rallytime/bp\-41551
  210037. .IP \(bu 2
  210038. 53bca96328 Update __init__.py
  210039. .UNINDENT
  210040. .IP \(bu 2
  210041. \fBPR\fP \fI\%#41552\fP: (\fI\%Enquier\fP) Adding logic so that update_floatingip can dissassociate floatingip\(aqs
  210042. @ \fI2017\-06\-06 18:25:56 UTC\fP
  210043. .INDENT 2.0
  210044. .IP \(bu 2
  210045. 846ca54688 Merge pull request \fI\%#41552\fP from Enquier/neutron\-floatingip\-remove
  210046. .IP \(bu 2
  210047. aeed51c1e3 Adding port=None default and documentation
  210048. .IP \(bu 2
  210049. fcce05e1e4 Adding logic so that update_floatingip can dissassociate floatingip\(aqs Previously update_floatingip would cause an error if port is set to None.
  210050. .UNINDENT
  210051. .IP \(bu 2
  210052. \fBPR\fP \fI\%#41569\fP: (\fI\%gtmanfred\fP) Check all entries in result
  210053. @ \fI2017\-06\-06 18:18:17 UTC\fP
  210054. .INDENT 2.0
  210055. .IP \(bu 2
  210056. b720ecb732 Merge pull request \fI\%#41569\fP from gtmanfred/fix_test_result_check
  210057. .IP \(bu 2
  210058. 19ea5481b6 remove test that never passed
  210059. .IP \(bu 2
  210060. e2a4d5e1e2 Check all entries in result
  210061. .UNINDENT
  210062. .IP \(bu 2
  210063. \fBISSUE\fP \fI\%#41540\fP: (\fI\%UtahDave\fP) archive.extracted fails on second run (refs: \fI\%#41599\fP)
  210064. .IP \(bu 2
  210065. \fBPR\fP \fI\%#41599\fP: (\fI\%garethgreenaway\fP) Fixes to modules/archive.py
  210066. @ \fI2017\-06\-06 18:02:14 UTC\fP
  210067. .INDENT 2.0
  210068. .IP \(bu 2
  210069. d9546c6283 Merge pull request \fI\%#41599\fP from garethgreenaway/41540_fixes_to_archive_module
  210070. .IP \(bu 2
  210071. 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.
  210072. .UNINDENT
  210073. .IP \(bu 2
  210074. \fBISSUE\fP \fI\%#40950\fP: (\fI\%idokaplan\fP) Import certificate (refs: \fI\%#41453\fP, \fI\%#41383\fP)
  210075. .IP \(bu 2
  210076. \fBPR\fP \fI\%#41453\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py
  210077. @ \fI2017\-06\-06 17:15:55 UTC\fP
  210078. .INDENT 2.0
  210079. .IP \(bu 2
  210080. \fBPR\fP \fI\%#41383\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py (refs: \fI\%#41453\fP)
  210081. .IP \(bu 2
  210082. 10ac80ee96 Merge pull request \fI\%#41453\fP from peter\-funktionIT/fix_win_pki_state_import_cert
  210083. .IP \(bu 2
  210084. d146fd029c Update win_pki.py
  210085. .IP \(bu 2
  210086. ef8e3ef569 Update win_pki.py
  210087. .UNINDENT
  210088. .IP \(bu 2
  210089. \fBPR\fP \fI\%#41557\fP: (\fI\%dmurphy18\fP) Add symbolic link for salt\-proxy service similar to other serivce files
  210090. @ \fI2017\-06\-06 17:13:52 UTC\fP
  210091. .INDENT 2.0
  210092. .IP \(bu 2
  210093. 3335fcbc7d Merge pull request \fI\%#41557\fP from dmurphy18/fix\-proxy\-service
  210094. .IP \(bu 2
  210095. ffe492d6a9 Add symbolic link salt\-proxy service similar to other service files
  210096. .UNINDENT
  210097. .IP \(bu 2
  210098. \fBPR\fP \fI\%#41597\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41533\fP to 2016.11
  210099. @ \fI2017\-06\-06 15:15:09 UTC\fP
  210100. .INDENT 2.0
  210101. .IP \(bu 2
  210102. \fBPR\fP \fI\%#41533\fP: (\fI\%svinota\fP) unit tests: add pyroute2 interface dict test (refs: \fI\%#41597\fP)
  210103. .IP \(bu 2
  210104. 65ed230f45 Merge pull request \fI\%#41597\fP from rallytime/bp\-41533
  210105. .IP \(bu 2
  210106. 535b8e8d8e Update new pyroute2 unit test to conform with 2016.11 branch standards
  210107. .IP \(bu 2
  210108. 5c86dee73c unit tests: test_pyroute2 \-\- add skipIf
  210109. .IP \(bu 2
  210110. 026b39493f unit tests: add encoding clause into test_pyroute2
  210111. .IP \(bu 2
  210112. 9ab203d54b unit tests: fix absolute imports in test_pyroute2
  210113. .IP \(bu 2
  210114. 1f507cfa7a unit tests: add pyroute2 interface dict test
  210115. .UNINDENT
  210116. .IP \(bu 2
  210117. \fBPR\fP \fI\%#41596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41487\fP to 2016.11
  210118. @ \fI2017\-06\-06 02:44:17 UTC\fP
  210119. .INDENT 2.0
  210120. .IP \(bu 2
  210121. \fBPR\fP \fI\%#41487\fP: (\fI\%svinota\fP) clean up \fIchange\fP attribute from interface dict (refs: \fI\%#41596\fP)
  210122. .IP \(bu 2
  210123. bf8aed153d Merge pull request \fI\%#41596\fP from rallytime/bp\-41487
  210124. .IP \(bu 2
  210125. 7b497d9ec6 clean up \fIchange\fP attribute from interface dict
  210126. .UNINDENT
  210127. .IP \(bu 2
  210128. \fBISSUE\fP \fI\%#41435\fP: (\fI\%seanjnkns\fP) 2016.11: Keystone.endpoint_present overwrites all interfaces (refs: \fI\%#41509\fP)
  210129. .IP \(bu 2
  210130. \fBPR\fP \fI\%#41509\fP: (\fI\%seanjnkns\fP) Add keystone V3 API support for keystone.endpoint_present|absent
  210131. @ \fI2017\-06\-03 03:01:05 UTC\fP
  210132. .INDENT 2.0
  210133. .IP \(bu 2
  210134. cc6c98a8d8 Merge pull request \fI\%#41509\fP from seanjnkns/fix\-keystone\-v3\-endpoint_present
  210135. .IP \(bu 2
  210136. 095e5949a3 Fix unit tests for PR \fI\%#41509\fP
  210137. .IP \(bu 2
  210138. eb7ef3c856 Add keystone V3 API support for keystone.endpoint_present|get, endpoint_absent|delete.
  210139. .UNINDENT
  210140. .IP \(bu 2
  210141. \fBISSUE\fP \fI\%#38061\fP: (\fI\%Ch3LL\fP) x509.crl_managed ValueError when digest is not specified in the module (refs: \fI\%#41539\fP)
  210142. .IP \(bu 2
  210143. \fBPR\fP \fI\%#41539\fP: (\fI\%gtmanfred\fP) allow digest to be empty in create_crl
  210144. @ \fI2017\-06\-02 17:00:04 UTC\fP
  210145. .INDENT 2.0
  210146. .IP \(bu 2
  210147. 0a08649637 Merge pull request \fI\%#41539\fP from gtmanfred/x509
  210148. .IP \(bu 2
  210149. 0989be8919 allow digest to be empty in create_crl
  210150. .UNINDENT
  210151. .IP \(bu 2
  210152. \fBISSUE\fP \fI\%#41154\fP: (\fI\%mephi42\fP) archive.extracted outputs password embedded in archive URL (refs: \fI\%#41561\fP)
  210153. .IP \(bu 2
  210154. \fBPR\fP \fI\%#41561\fP: (\fI\%terminalmage\fP) Redact HTTP basic authentication in archive.extracted
  210155. @ \fI2017\-06\-02 15:33:14 UTC\fP
  210156. .INDENT 2.0
  210157. .IP \(bu 2
  210158. 3ae8336895 Merge pull request \fI\%#41561\fP from terminalmage/issue41154
  210159. .IP \(bu 2
  210160. cbf8acbafc Redact HTTP basic authentication in archive.extracted
  210161. .UNINDENT
  210162. .IP \(bu 2
  210163. \fBPR\fP \fI\%#41436\fP: (\fI\%skizunov\fP) TCP transport: Fix occasional errors when using salt command (refs: \fI\%#41787\fP)
  210164. @ \fI2017\-06\-01 16:37:43 UTC\fP
  210165. .INDENT 2.0
  210166. .IP \(bu 2
  210167. 39840bfe4e Merge pull request \fI\%#41436\fP from skizunov/develop2
  210168. .IP \(bu 2
  210169. 07d5862773 unit.transport.tcp_test: Clean up channel after use
  210170. .IP \(bu 2
  210171. 4b6aec7154 Preserve original IO Loop on cleanup
  210172. .IP \(bu 2
  210173. 892c6d4d24 TCP transport: Fix occasional errors when using salt command
  210174. .UNINDENT
  210175. .IP \(bu 2
  210176. \fBISSUE\fP \fI\%#41335\fP: (\fI\%syphernl\fP) [2016.11.5] ssh_auth.present: IndexError: list index out of range (refs: \fI\%#41337\fP)
  210177. .IP \(bu 2
  210178. \fBPR\fP \fI\%#41337\fP: (\fI\%Foxlik\fP) Fix \fI\%#41335\fP \- list index out of range on empty line in authorized_keys
  210179. @ \fI2017\-05\-31 19:59:17 UTC\fP
  210180. .INDENT 2.0
  210181. .IP \(bu 2
  210182. 06ed4f077b Merge pull request \fI\%#41337\fP from Foxlik/2016.11
  210183. .IP \(bu 2
  210184. 916fecb64f modify ssh_test.py, to check empty lines and comments in authorized_keys \fI\%#41335\fP
  210185. .IP \(bu 2
  210186. 011d6d65e7 Fix \fI\%#41335\fP \- list index out of range on empty line in authorized_keys
  210187. .UNINDENT
  210188. .IP \(bu 2
  210189. \fBPR\fP \fI\%#41512\fP: (\fI\%twangboy\fP) Use psutil where possible in win_status.py
  210190. @ \fI2017\-05\-31 19:56:00 UTC\fP
  210191. .INDENT 2.0
  210192. .IP \(bu 2
  210193. 1ace72d871 Merge pull request \fI\%#41512\fP from twangboy/fix_win_status
  210194. .IP \(bu 2
  210195. 582d09b484 Get psutil import
  210196. .IP \(bu 2
  210197. fd88bb277f Remove unused imports (lint)
  210198. .IP \(bu 2
  210199. 41a39dff00 Use psutil where possible
  210200. .UNINDENT
  210201. .IP \(bu 2
  210202. \fBPR\fP \fI\%#41490\fP: (\fI\%t0fik\fP) Backport of SELinux module installation and removal
  210203. @ \fI2017\-05\-31 19:38:00 UTC\fP
  210204. .INDENT 2.0
  210205. .IP \(bu 2
  210206. 683cc5f414 Merge pull request \fI\%#41490\fP from jdsieci/2016.11_selinux
  210207. .IP \(bu 2
  210208. e2fbada1c1 Backport of SELinux module installation and removal
  210209. .UNINDENT
  210210. .IP \(bu 2
  210211. \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.
  210212. @ \fI2017\-05\-31 15:55:24 UTC\fP
  210213. .INDENT 2.0
  210214. .IP \(bu 2
  210215. 2e7e84b8f2 Merge pull request \fI\%#41522\fP from jettero/mongodb\-keys\-are\-stupid
  210216. .IP \(bu 2
  210217. 12648f5439 dang, thought I already got that. Apparently only got the bottom one. This should do it.
  210218. .IP \(bu 2
  210219. 7c4a763518 ugh, forgot about this lint too. This one looks especially terrible.
  210220. .IP \(bu 2
  210221. c973988d8d forgot about the linter pass … fixed
  210222. .IP \(bu 2
  210223. da0d9e4045 Sadly, you can\(aqt have \(aq.\(aqs and \(aq$\(aqs in dict keys in a mongodb doc.
  210224. .UNINDENT
  210225. .IP \(bu 2
  210226. \fBISSUE\fP \fI\%#41504\fP: (\fI\%mtkennerly\fP) Can\(aqt set REG_DWORD registry value larger than 0x7FFFFFFF (refs: \fI\%#41506\fP)
  210227. .IP \(bu 2
  210228. \fBPR\fP \fI\%#41506\fP: (\fI\%gtmanfred\fP) check for integer types
  210229. @ \fI2017\-05\-31 00:48:21 UTC\fP
  210230. .INDENT 2.0
  210231. .IP \(bu 2
  210232. 30ad4fd9a0 Merge pull request \fI\%#41506\fP from gtmanfred/2016.11
  210233. .IP \(bu 2
  210234. 5fe2e9bbf5 check for integer types
  210235. .UNINDENT
  210236. .IP \(bu 2
  210237. \fBPR\fP \fI\%#41469\fP: (\fI\%Ch3LL\fP) Fix keep_jobs keyerror in redis returner
  210238. @ \fI2017\-05\-30 18:37:42 UTC\fP
  210239. .INDENT 2.0
  210240. .IP \(bu 2
  210241. 06ef17dec3 Merge pull request \fI\%#41469\fP from Ch3LL/fix_redis_error
  210242. .IP \(bu 2
  210243. 8ee1251a3a Fix keep_jobs keyerror in redis returner
  210244. .UNINDENT
  210245. .IP \(bu 2
  210246. \fBPR\fP \fI\%#41473\fP: (\fI\%twangboy\fP) Fix win_firewall execution and state modules
  210247. @ \fI2017\-05\-30 18:35:24 UTC\fP
  210248. .INDENT 2.0
  210249. .IP \(bu 2
  210250. 7a09b2b678 Merge pull request \fI\%#41473\fP from twangboy/fix_win_firewall
  210251. .IP \(bu 2
  210252. e503b455c3 Fix lint error
  210253. .IP \(bu 2
  210254. d3f0f8bcd2 Fix win_firewall execution and state modules
  210255. .UNINDENT
  210256. .IP \(bu 2
  210257. \fBPR\fP \fI\%#41499\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  210258. @ \fI2017\-05\-30 18:06:03 UTC\fP
  210259. .INDENT 2.0
  210260. .IP \(bu 2
  210261. f635cb11c4 Merge pull request \fI\%#41499\fP from rallytime/merge\-2016.11
  210262. .IP \(bu 2
  210263. 20d893d397 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  210264. .IP \(bu 2
  210265. 964b1ee027 Merge pull request \fI\%#41439\fP from terminalmage/salt\-cp\-base64
  210266. .INDENT 2.0
  210267. .IP \(bu 2
  210268. ebf6cc78c7 base64 encode binary data sent using salt\-cp
  210269. .UNINDENT
  210270. .UNINDENT
  210271. .IP \(bu 2
  210272. \fBPR\fP \fI\%#41464\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39850\fP to 2016.11
  210273. @ \fI2017\-05\-26 21:22:44 UTC\fP
  210274. .INDENT 2.0
  210275. .IP \(bu 2
  210276. \fBPR\fP \fI\%#39850\fP: (\fI\%epcim\fP) Fix endpoint handling per region (refs: \fI\%#41464\fP)
  210277. .IP \(bu 2
  210278. 83f1e48241 Merge pull request \fI\%#41464\fP from rallytime/bp\-39850
  210279. .IP \(bu 2
  210280. 9b84b751b2 Pylint fixes
  210281. .IP \(bu 2
  210282. 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.
  210283. .UNINDENT
  210284. .IP \(bu 2
  210285. \fBPR\fP \fI\%#41443\fP: (\fI\%UtahDave\fP) use proper arg number
  210286. @ \fI2017\-05\-26 20:36:37 UTC\fP
  210287. .INDENT 2.0
  210288. .IP \(bu 2
  210289. 960c5767fa Merge pull request \fI\%#41443\fP from UtahDave/fix_args_masterpy
  210290. .IP \(bu 2
  210291. dfbdc275ca use proper arg number
  210292. .UNINDENT
  210293. .IP \(bu 2
  210294. \fBISSUE\fP \fI\%#41341\fP: (\fI\%lorengordon\fP) TypeError traceback in network.system with retain_settings=True (refs: \fI\%#41350\fP)
  210295. .IP \(bu 2
  210296. \fBPR\fP \fI\%#41350\fP: (\fI\%lorengordon\fP) Supports quoted values in /etc/sysconfig/network
  210297. @ \fI2017\-05\-26 16:22:03 UTC\fP
  210298. .INDENT 2.0
  210299. .IP \(bu 2
  210300. 88c28c18c3 Merge pull request \fI\%#41350\fP from lorengordon/issue\-41341
  210301. .IP \(bu 2
  210302. f2f6da7039 Supports quoted values in /etc/sysconfig/network
  210303. .UNINDENT
  210304. .IP \(bu 2
  210305. \fBPR\fP \fI\%#41398\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  210306. @ \fI2017\-05\-26 15:17:49 UTC\fP
  210307. .INDENT 2.0
  210308. .IP \(bu 2
  210309. 824f2d3b69 Merge pull request \fI\%#41398\fP from rallytime/merge\-2016.11
  210310. .IP \(bu 2
  210311. 2941e9c923 Merge pull request \fI\%#22\fP from terminalmage/merge\-2016.11
  210312. .INDENT 2.0
  210313. .IP \(bu 2
  210314. 087a958afc base64 encode binary data sent using salt\-cp
  210315. .UNINDENT
  210316. .IP \(bu 2
  210317. 503f925275 Add missing import
  210318. .IP \(bu 2
  210319. d2d9a3d29f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  210320. .INDENT 2.0
  210321. .IP \(bu 2
  210322. d617c9fe72 Merge pull request \fI\%#41265\fP from terminalmage/issue41234
  210323. .INDENT 2.0
  210324. .IP \(bu 2
  210325. edf552fe9a Update PKG_TARGETS for RHEL\-based distros
  210326. .IP \(bu 2
  210327. 0ecc7b9b20 yumpkg: fix latest_version() when showdupesfromrepos=1 set in /etc/yum.conf
  210328. .UNINDENT
  210329. .IP \(bu 2
  210330. 26bd914580 Merge pull request \fI\%#41316\fP from Ch3LL/update_latest_2016.3
  210331. .INDENT 2.0
  210332. .IP \(bu 2
  210333. 520740d862 [2016.13] Bump latest release version to 2016.11.5
  210334. .UNINDENT
  210335. .IP \(bu 2
  210336. 18898b7d1f Merge pull request \fI\%#41216\fP from terminalmage/issue16592
  210337. .INDENT 2.0
  210338. .IP \(bu 2
  210339. 0e15fdbb1a Update salt\-cp integration test to reflect recent changes
  210340. .IP \(bu 2
  210341. 10dc695cc4 Make salt\-cp work with larger files
  210342. .IP \(bu 2
  210343. c078180539 Make KeyErrors more specific when interpreting returns
  210344. .IP \(bu 2
  210345. fc401c9eb4 Add generator functions for reading files
  210346. .UNINDENT
  210347. .UNINDENT
  210348. .UNINDENT
  210349. .IP \(bu 2
  210350. \fBPR\fP \fI\%#41442\fP: (\fI\%UtahDave\fP) use proper arg number
  210351. @ \fI2017\-05\-26 13:42:50 UTC\fP
  210352. .INDENT 2.0
  210353. .IP \(bu 2
  210354. ec08064b99 Merge pull request \fI\%#41442\fP from UtahDave/fix_args
  210355. .IP \(bu 2
  210356. 0324833c9e use proper arg number
  210357. .UNINDENT
  210358. .IP \(bu 2
  210359. \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)
  210360. .IP \(bu 2
  210361. \fBISSUE\fP \fI\%#36548\fP: (\fI\%abonillasuse\fP) openstack auth with nova driver (refs: \fI\%#38647\fP)
  210362. .IP \(bu 2
  210363. \fBPR\fP \fI\%#41397\fP: (\fI\%Enquier\fP) Updating Nova/Neutron modules to support KeystoneAuth and SSLVerify
  210364. @ \fI2017\-05\-25 21:16:14 UTC\fP
  210365. .INDENT 2.0
  210366. .IP \(bu 2
  210367. \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)
  210368. .IP \(bu 2
  210369. \fBPR\fP \fI\%#38647\fP: (\fI\%gtmanfred\fP) Allow novaclient to use keystoneauth1 sessions for authentication (refs: \fI\%#41397\fP)
  210370. .IP \(bu 2
  210371. 22096d9213 Merge pull request \fI\%#41397\fP from Enquier/neutron\-ssl\-verify
  210372. .IP \(bu 2
  210373. d25dcf61d5 Small error in nova that was preventing execution
  210374. .IP \(bu 2
  210375. 0e7a1009ed Updated module docs to include changes made
  210376. .IP \(bu 2
  210377. 05e0192665 Adding missing os_auth_system
  210378. .IP \(bu 2
  210379. 4e0f4981e4 allow service_type to be specified default is now \(aqnetwork\(aq
  210380. .IP \(bu 2
  210381. 991e84343f Added non\-profile and defaults for Neutron
  210382. .IP \(bu 2
  210383. c93f112c9b Updating Nova Module to include use_keystone Auth
  210384. .IP \(bu 2
  210385. 66ab1e5184 Re\-adding neutron dependency check
  210386. .IP \(bu 2
  210387. cce07eefc2 Updating Neutron module to suport KeystoneAuth
  210388. .UNINDENT
  210389. .IP \(bu 2
  210390. \fBISSUE\fP \fI\%#34460\fP: (\fI\%Ch3LL\fP) Receive an error when using salt\-api to call a runner (refs: \fI\%#41409\fP)
  210391. .IP \(bu 2
  210392. \fBPR\fP \fI\%#41409\fP: (\fI\%garethgreenaway\fP) Fixes to ipc transport
  210393. @ \fI2017\-05\-25 21:06:27 UTC\fP
  210394. .INDENT 2.0
  210395. .IP \(bu 2
  210396. 14a58cf536 Merge pull request \fI\%#41409\fP from garethgreenaway/34460_fixes_ipc_transport
  210397. .IP \(bu 2
  210398. 5613b72dfe Updating the exception variable to be more in line with the rest of the exception code
  210399. .IP \(bu 2
  210400. 41eee8b333 Fixing a potential lint issue
  210401. .IP \(bu 2
  210402. 760d561dfa Fixing a potential lint issue
  210403. .IP \(bu 2
  210404. 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.
  210405. .IP \(bu 2
  210406. 3f950596f4 Fixing lint issues.
  210407. .IP \(bu 2
  210408. 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
  210409. .UNINDENT
  210410. .IP \(bu 2
  210411. \fBPR\fP \fI\%#41421\fP: (\fI\%UtahDave\fP) Correct doc to actually blacklist a module
  210412. @ \fI2017\-05\-25 21:01:46 UTC\fP
  210413. .INDENT 2.0
  210414. .IP \(bu 2
  210415. 824428700d Merge pull request \fI\%#41421\fP from UtahDave/fix_blacklist_docs
  210416. .IP \(bu 2
  210417. 5eb27571a0 Correct doc to actually blacklist a module
  210418. .UNINDENT
  210419. .IP \(bu 2
  210420. \fBISSUE\fP \fI\%#41353\fP: (\fI\%rmarchei\fP) Orchestrate runner needs saltenv on 2016.11.5 (refs: \fI\%#41431\fP)
  210421. .IP \(bu 2
  210422. \fBPR\fP \fI\%#41431\fP: (\fI\%terminalmage\fP) Fix regression in state orchestration
  210423. @ \fI2017\-05\-25 18:44:53 UTC\fP
  210424. .INDENT 2.0
  210425. .IP \(bu 2
  210426. b98d5e00d4 Merge pull request \fI\%#41431\fP from terminalmage/issue41353
  210427. .IP \(bu 2
  210428. 16eae64cca Fix regression in state orchestration
  210429. .UNINDENT
  210430. .IP \(bu 2
  210431. \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)
  210432. .IP \(bu 2
  210433. \fBPR\fP \fI\%#41429\fP: (\fI\%ricohouse\fP) Issue \fI\%#41338\fP: Return false when compare config fails
  210434. @ \fI2017\-05\-25 17:18:02 UTC\fP
  210435. .INDENT 2.0
  210436. .IP \(bu 2
  210437. eeff3dd7fb Merge pull request \fI\%#41429\fP from ricohouse/fix\-compare\-bug
  210438. .IP \(bu 2
  210439. 9b61665c4c Issue \fI\%#41338\fP: Return false when compare config fails
  210440. .UNINDENT
  210441. .IP \(bu 2
  210442. \fBPR\fP \fI\%#41414\fP: (\fI\%Ch3LL\fP) Update bootstrap script verstion to latest release(v2017.05.24)
  210443. @ \fI2017\-05\-24 19:51:49 UTC\fP
  210444. .INDENT 2.0
  210445. .IP \(bu 2
  210446. 561a416cf3 Merge pull request \fI\%#41414\fP from Ch3LL/update_bootstrap
  210447. .IP \(bu 2
  210448. d8c03eef60 Update bootstrap script verstion to latest release(v2017.05.24)
  210449. .UNINDENT
  210450. .IP \(bu 2
  210451. \fBPR\fP \fI\%#41336\fP: (\fI\%mcalmer\fP) fix setting and getting locale on SUSE systems
  210452. @ \fI2017\-05\-24 17:46:08 UTC\fP
  210453. .INDENT 2.0
  210454. .IP \(bu 2
  210455. 88fd3c0ed9 Merge pull request \fI\%#41336\fP from mcalmer/fix\-locale\-on\-SUSE
  210456. .IP \(bu 2
  210457. f30f5c8a25 fix unit tests
  210458. .IP \(bu 2
  210459. 428baa9bce fix setting and getting locale on SUSE systems
  210460. .UNINDENT
  210461. .IP \(bu 2
  210462. \fBPR\fP \fI\%#41393\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41235\fP to 2016.11
  210463. @ \fI2017\-05\-24 16:08:56 UTC\fP
  210464. .INDENT 2.0
  210465. .IP \(bu 2
  210466. \fBPR\fP \fI\%#41235\fP: (\fI\%moio\fP) rest_cherrypy: remove sleep call (refs: \fI\%#41393\fP)
  210467. .IP \(bu 2
  210468. 4265959647 Merge pull request \fI\%#41393\fP from rallytime/bp\-41235
  210469. .IP \(bu 2
  210470. c79c0e3f43 rest_cherrypy: remove sleep call
  210471. .UNINDENT
  210472. .IP \(bu 2
  210473. \fBPR\fP \fI\%#41394\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41243\fP to 2016.11
  210474. @ \fI2017\-05\-24 16:00:17 UTC\fP
  210475. .INDENT 2.0
  210476. .IP \(bu 2
  210477. \fBPR\fP \fI\%#41243\fP: (\fI\%arif\-ali\fP) Remove the keys that don\(aqt exist in the new change (refs: \fI\%#41394\fP)
  210478. .IP \(bu 2
  210479. 83f54694f9 Merge pull request \fI\%#41394\fP from rallytime/bp\-41243
  210480. .IP \(bu 2
  210481. a5351302af Lint fix
  210482. .IP \(bu 2
  210483. 05fadc0af3 Remove the keys that don\(aqt exist in the new change
  210484. .UNINDENT
  210485. .IP \(bu 2
  210486. \fBPR\fP \fI\%#41401\fP: (\fI\%bdrung\fP) Add documentation key to systemd service files
  210487. @ \fI2017\-05\-24 15:49:54 UTC\fP
  210488. .INDENT 2.0
  210489. .IP \(bu 2
  210490. 3a45ac30f0 Merge pull request \fI\%#41401\fP from bdrung/systemd\-service\-documentation\-key
  210491. .IP \(bu 2
  210492. 3f7f30895d Add documentation key to systemd service files
  210493. .UNINDENT
  210494. .IP \(bu 2
  210495. \fBPR\fP \fI\%#41404\fP: (\fI\%bdrung\fP) Fix typos
  210496. @ \fI2017\-05\-24 14:42:44 UTC\fP
  210497. .INDENT 2.0
  210498. .IP \(bu 2
  210499. d34333c30b Merge pull request \fI\%#41404\fP from bdrung/fix\-typos
  210500. .IP \(bu 2
  210501. 33a7f8b2ec Fix typos
  210502. .UNINDENT
  210503. .IP \(bu 2
  210504. \fBPR\fP \fI\%#41388\fP: (\fI\%bdrung\fP) Do not require sphinx\-build for cleaning docs
  210505. @ \fI2017\-05\-23 19:32:41 UTC\fP
  210506. .INDENT 2.0
  210507. .IP \(bu 2
  210508. 3083764195 Merge pull request \fI\%#41388\fP from bdrung/clean\-doc\-without\-sphinx
  210509. .IP \(bu 2
  210510. 5b79a0a9f8 Do not require sphinx\-build for cleaning docs
  210511. .UNINDENT
  210512. .IP \(bu 2
  210513. \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)
  210514. .IP \(bu 2
  210515. \fBPR\fP \fI\%#41364\fP: (\fI\%automate\-solutions\fP) Fix issue \fI\%#41362\fP invalid parameter used: KeyName.1 instead of KeyName
  210516. @ \fI2017\-05\-23 17:32:10 UTC\fP
  210517. .INDENT 2.0
  210518. .IP \(bu 2
  210519. 842875e590 Merge pull request \fI\%#41364\fP from automate\-solutions/fix\-issue\-41362
  210520. .IP \(bu 2
  210521. cfd8eb7a87 Set DescribeKeyPairs back to KeyName.1 according to documentation
  210522. .IP \(bu 2
  210523. 6a82ddc6fc Fix issue \fI\%#41362\fP invalid parameter used: KeyName.1 instead of KeyName
  210524. .UNINDENT
  210525. .IP \(bu 2
  210526. \fBISSUE\fP \fI\%#40950\fP: (\fI\%idokaplan\fP) Import certificate (refs: \fI\%#41453\fP, \fI\%#41383\fP)
  210527. .IP \(bu 2
  210528. \fBPR\fP \fI\%#41383\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py (refs: \fI\%#41453\fP)
  210529. @ \fI2017\-05\-23 17:26:43 UTC\fP
  210530. .INDENT 2.0
  210531. .IP \(bu 2
  210532. 92f94e66bc Merge pull request \fI\%#41383\fP from peter\-funktionIT/fix\-win_pki\-get_cert_file
  210533. .IP \(bu 2
  210534. 4d9bd06176 Update win_pki.py
  210535. .UNINDENT
  210536. .IP \(bu 2
  210537. \fBPR\fP \fI\%#41113\fP: (\fI\%cro\fP) Rescue proxy_auto_tests PR from git rebase hell
  210538. @ \fI2017\-05\-22 17:05:07 UTC\fP
  210539. .INDENT 2.0
  210540. .IP \(bu 2
  210541. \fBPR\fP \fI\%#39575\fP: (\fI\%cro\fP) WIP: Proxy auto test, feedback appreciated (refs: \fI\%#41113\fP)
  210542. .IP \(bu 2
  210543. 1ba95684a9 Merge pull request \fI\%#41113\fP from cro/proxy_auto_test2
  210544. .IP \(bu 2
  210545. 19db038b99 Fix test\-\-use proxy_config instead of minion_config
  210546. .IP \(bu 2
  210547. 7749ceadb6 Change default proxy minion opts so only the proxy\-specific ones are listed, and the rest are taken from DEFAULT_MINION_OPTS.
  210548. .IP \(bu 2
  210549. 106394c80c Lint.
  210550. .IP \(bu 2
  210551. 3be90cc9f4 Rescue proxy_auto_tests PR from git rebase hell
  210552. .UNINDENT
  210553. .IP \(bu 2
  210554. \fBPR\fP \fI\%#41360\fP: (\fI\%cro\fP) Sysrc on FreeBSD, YAML overeager to coerce to bool and int
  210555. @ \fI2017\-05\-22 15:54:31 UTC\fP
  210556. .INDENT 2.0
  210557. .IP \(bu 2
  210558. 375892d910 Merge pull request \fI\%#41360\fP from cro/sysrc_fix
  210559. .IP \(bu 2
  210560. 6db31ce52a Fix problem with sysrc on FreeBSD, YAML overeager to coerce to bool and int.
  210561. .UNINDENT
  210562. .IP \(bu 2
  210563. \fBISSUE\fP \fI\%#41190\fP: (\fI\%jheidbrink\fP) Cannot extract tar.xz archive when it exceeds size of /tmp (refs: \fI\%#41372\fP)
  210564. .IP \(bu 2
  210565. \fBPR\fP \fI\%#41372\fP: (\fI\%terminalmage\fP) Don\(aqt use intermediate file when listing contents of tar.xz file
  210566. @ \fI2017\-05\-22 15:36:45 UTC\fP
  210567. .INDENT 2.0
  210568. .IP \(bu 2
  210569. 01b71c75c1 Merge pull request \fI\%#41372\fP from terminalmage/issue41190
  210570. .IP \(bu 2
  210571. 1f08936d9c Remove unused import
  210572. .IP \(bu 2
  210573. 68cb897520 Replace reference to fileobj
  210574. .IP \(bu 2
  210575. 788874408a Remove \(aq*\(aq from mode
  210576. .IP \(bu 2
  210577. 3d4b833627 Don\(aqt use intermediate file when listing contents of tar.xz file
  210578. .UNINDENT
  210579. .IP \(bu 2
  210580. \fBPR\fP \fI\%#41373\fP: (\fI\%alex\-zel\fP) Allow HTTP authentication to ES.
  210581. @ \fI2017\-05\-22 15:32:09 UTC\fP
  210582. .INDENT 2.0
  210583. .IP \(bu 2
  210584. 5edfcf972c Merge pull request \fI\%#41373\fP from alex\-zel/patch\-3
  210585. .IP \(bu 2
  210586. 3192eab128 Allow HTTP authentication to ES.
  210587. .UNINDENT
  210588. .IP \(bu 2
  210589. \fBISSUE\fP \fI\%#40748\fP: (\fI\%djhaskin987\fP) Consul backend minion cache does not work (refs: \fI\%#41287\fP)
  210590. .IP \(bu 2
  210591. \fBPR\fP \fI\%#41287\fP: (\fI\%garethgreenaway\fP) Fix to consul cache
  210592. @ \fI2017\-05\-19 18:32:56 UTC\fP
  210593. .INDENT 2.0
  210594. .IP \(bu 2
  210595. 29bd7f48b7 Merge pull request \fI\%#41287\fP from garethgreenaway/40748_2016_11_consul
  210596. .IP \(bu 2
  210597. 5039fe12fb Removing chdir as it is no needed with this change
  210598. .IP \(bu 2
  210599. 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
  210600. .UNINDENT
  210601. .IP \(bu 2
  210602. \fBISSUE\fP \fI\%#38894\fP: (\fI\%amendlik\fP) salt.runner and salt.wheel ignore test=True (refs: \fI\%#41309\fP, \fI\%#41611\fP)
  210603. .IP \(bu 2
  210604. \fBPR\fP \fI\%#41309\fP: (\fI\%garethgreenaway\fP) Adding test argument for runners & wheel orchestration modules
  210605. @ \fI2017\-05\-19 18:26:09 UTC\fP
  210606. .INDENT 2.0
  210607. .IP \(bu 2
  210608. 672aaa88d3 Merge pull request \fI\%#41309\fP from garethgreenaway/38894_allowing_test_argument
  210609. .IP \(bu 2
  210610. e1a88e8bf7 Allowing test=True to be passed for salt.runner and salt.wheel when used with orchestration
  210611. .UNINDENT
  210612. .IP \(bu 2
  210613. \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)
  210614. .IP \(bu 2
  210615. \fBPR\fP \fI\%#41319\fP: (\fI\%lomeroe\fP) backport \fI\%#41307\fP to 2016.11, properly pack version numbers into single
  210616. @ \fI2017\-05\-19 18:25:00 UTC\fP
  210617. .INDENT 2.0
  210618. .IP \(bu 2
  210619. \fBPR\fP \fI\%#41307\fP: (\fI\%lomeroe\fP) properly pack/unpack the verison numbers into a number (refs: \fI\%#41319\fP)
  210620. .IP \(bu 2
  210621. 140b0427e1 Merge pull request \fI\%#41319\fP from lomeroe/bp_41307
  210622. .IP \(bu 2
  210623. 4f0aa577a5 backport 41307 to 2016.11, properly pack version numbers into single number
  210624. .UNINDENT
  210625. .IP \(bu 2
  210626. \fBPR\fP \fI\%#41327\fP: (\fI\%Ch3LL\fP) Add 2016.11.6 Release Notes
  210627. @ \fI2017\-05\-19 18:05:09 UTC\fP
  210628. .INDENT 2.0
  210629. .IP \(bu 2
  210630. 6bdb7cca7d Merge pull request \fI\%#41327\fP from Ch3LL/add_2016.11.6_release
  210631. .IP \(bu 2
  210632. e5fc0aeb9c Add 2016.11.6 Release Notes
  210633. .UNINDENT
  210634. .IP \(bu 2
  210635. \fBPR\fP \fI\%#41329\fP: (\fI\%lorengordon\fP) Corrects versionadded for win_network.get_route
  210636. @ \fI2017\-05\-19 17:47:57 UTC\fP
  210637. .INDENT 2.0
  210638. .IP \(bu 2
  210639. 1faffd3932 Merge pull request \fI\%#41329\fP from lorengordon/doc\-fix
  210640. .IP \(bu 2
  210641. 3c471247f0 Corrects versionadded for win_network.get_route
  210642. .UNINDENT
  210643. .IP \(bu 2
  210644. \fBPR\fP \fI\%#41322\fP: (\fI\%Ch3LL\fP) Add patched packages warning to 2016.11.5 release notes
  210645. @ \fI2017\-05\-18 21:53:26 UTC\fP
  210646. .INDENT 2.0
  210647. .IP \(bu 2
  210648. 6ca65592da Merge pull request \fI\%#41322\fP from Ch3LL/fix_release_2016.11.5_notes
  210649. .IP \(bu 2
  210650. 9a1bf4205f fix url refs in rst
  210651. .IP \(bu 2
  210652. cde008ff77 Add patched packages warning to 2016.11.5 release notes
  210653. .UNINDENT
  210654. .IP \(bu 2
  210655. \fBPR\fP \fI\%#41208\fP: (\fI\%pkazmierczak\fP) Fix: zypper handling of multiple version packages
  210656. @ \fI2017\-05\-18 15:44:26 UTC\fP
  210657. .INDENT 2.0
  210658. .IP \(bu 2
  210659. 9f359d841f Merge pull request \fI\%#41208\fP from pkazmierczak/pkazmierczak\-zypper\-multiple\-ver\-pkgs
  210660. .IP \(bu 2
  210661. d411a91676 Reverted back to cascading with statements for python 2.6 compat
  210662. .IP \(bu 2
  210663. 7204013653 Compacted with statements in the unit test.
  210664. .IP \(bu 2
  210665. 6c4c08042c Added unit tests and copied the behavior to .upgrade method, too.
  210666. .IP \(bu 2
  210667. 5f952007f6 Fix: zypper handling of multiple version packages
  210668. .UNINDENT
  210669. .IP \(bu 2
  210670. \fBPR\fP \fI\%#41317\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.5
  210671. @ \fI2017\-05\-18 15:34:13 UTC\fP
  210672. .INDENT 2.0
  210673. .IP \(bu 2
  210674. bcef99adb6 Merge pull request \fI\%#41317\fP from Ch3LL/update_latest_2016.11
  210675. .IP \(bu 2
  210676. cdb072c207 [2016.11] Bump latest release version to 2016.11.5
  210677. .UNINDENT
  210678. .IP \(bu 2
  210679. \fBPR\fP \fI\%#41232\fP: (\fI\%axmetishe\fP) Add basic auth for SPM
  210680. @ \fI2017\-05\-17 19:08:56 UTC\fP
  210681. .INDENT 2.0
  210682. .IP \(bu 2
  210683. b8ddd7ee08 Merge pull request \fI\%#41232\fP from axmetishe/2016.11
  210684. .IP \(bu 2
  210685. 76104f23b4 Add basic auth for SPM
  210686. .UNINDENT
  210687. .IP \(bu 2
  210688. \fBPR\fP \fI\%#41236\fP: (\fI\%BenoitKnecht\fP) states: cron: show correct changes when using \fIspecial\fP
  210689. @ \fI2017\-05\-17 18:51:58 UTC\fP
  210690. .INDENT 2.0
  210691. .IP \(bu 2
  210692. 7bdb66d969 Merge pull request \fI\%#41236\fP from BenoitKnecht/2016.11
  210693. .IP \(bu 2
  210694. 33211d032e states: cron: show correct changes when using \fIspecial\fP
  210695. .UNINDENT
  210696. .IP \(bu 2
  210697. \fBPR\fP \fI\%#41269\fP: (\fI\%isbm\fP) Bugfix: Unable to use "127" as hostname for the Minion ID
  210698. @ \fI2017\-05\-17 18:31:15 UTC\fP
  210699. .INDENT 2.0
  210700. .IP \(bu 2
  210701. 1c1e092f56 Merge pull request \fI\%#41269\fP from isbm/isbm\-minion\-id\-127\-name
  210702. .IP \(bu 2
  210703. 5168ef8959 Add unit test for hostname can be started from 127
  210704. .IP \(bu 2
  210705. 0d0354198b Harden to 127. IP part
  210706. .IP \(bu 2
  210707. d9c8324a6b Unit test for accepting hosts names as 127
  210708. .IP \(bu 2
  210709. 65b03c667b Bugfix: unable to use 127 as hostname
  210710. .UNINDENT
  210711. .IP \(bu 2
  210712. \fBPR\fP \fI\%#41289\fP: (\fI\%garethgreenaway\fP) Fixing consul cache
  210713. @ \fI2017\-05\-17 16:54:12 UTC\fP
  210714. .INDENT 2.0
  210715. .IP \(bu 2
  210716. d0fa31d4ca Merge pull request \fI\%#41289\fP from garethgreenaway/2016_11_5_fix_consul_cache_ls
  210717. .IP \(bu 2
  210718. 780a28c9a0 Swapping the order in the func_alias so the ls function is available.
  210719. .UNINDENT
  210720. .IP \(bu 2
  210721. \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)
  210722. .IP \(bu 2
  210723. \fBPR\fP \fI\%#41303\fP: (\fI\%lomeroe\fP) backport \fI\%#41301\fP \-\- properly convert packed string to decimal values
  210724. @ \fI2017\-05\-17 16:32:22 UTC\fP
  210725. .INDENT 2.0
  210726. .IP \(bu 2
  210727. \fBPR\fP \fI\%#41301\fP: (\fI\%lomeroe\fP) properly convert packed string to decimal values (refs: \fI\%#41303\fP)
  210728. .IP \(bu 2
  210729. 6566648948 Merge pull request \fI\%#41303\fP from lomeroe/bp\-41301
  210730. .IP \(bu 2
  210731. f4b93f9d9a properly convert packed string to decimal values
  210732. .UNINDENT
  210733. .IP \(bu 2
  210734. \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)
  210735. .IP \(bu 2
  210736. \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)
  210737. .IP \(bu 2
  210738. \fBPR\fP \fI\%#41283\fP: (\fI\%terminalmage\fP) Backport \fI\%#41251\fP to 2016.11
  210739. @ \fI2017\-05\-16 18:01:17 UTC\fP
  210740. .INDENT 2.0
  210741. .IP \(bu 2
  210742. \fBPR\fP \fI\%#41251\fP: (\fI\%abednarik\fP) Update apt module regarding upgrade against hold packages. (refs: \fI\%#41283\fP)
  210743. .IP \(bu 2
  210744. \fBPR\fP \fI\%#30777\fP: (\fI\%abednarik\fP) Fix update apt hold pkgs (refs: \fI\%#41251\fP)
  210745. .IP \(bu 2
  210746. 44598617be Merge pull request \fI\%#41283\fP from terminalmage/bp\-41251
  210747. .IP \(bu 2
  210748. ed03ca534f Update apt module regarding upgrade against hold packages.
  210749. .UNINDENT
  210750. .IP \(bu 2
  210751. \fBPR\fP \fI\%#41181\fP: (\fI\%gtmanfred\fP) add resolving extra flags to yum upgrade
  210752. @ \fI2017\-05\-16 04:07:47 UTC\fP
  210753. .INDENT 2.0
  210754. .IP \(bu 2
  210755. d8e9676fcf Merge pull request \fI\%#41181\fP from gtmanfred/2016.11
  210756. .IP \(bu 2
  210757. 2ca71713b1 use six and clean_kwargs
  210758. .IP \(bu 2
  210759. c9bf09a5a1 add resolving extra flags to yum upgrade
  210760. .UNINDENT
  210761. .IP \(bu 2
  210762. \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)
  210763. .IP \(bu 2
  210764. \fBPR\fP \fI\%#41220\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40246\fP to 2016.11
  210765. @ \fI2017\-05\-15 17:59:38 UTC\fP
  210766. .INDENT 2.0
  210767. .IP \(bu 2
  210768. \fBPR\fP \fI\%#40246\fP: (\fI\%tonybaloney\fP) Fix libcloud_dns state module bug (refs: \fI\%#41220\fP)
  210769. .IP \(bu 2
  210770. 75942235f0 Merge pull request \fI\%#41220\fP from rallytime/bp\-40246
  210771. .IP \(bu 2
  210772. 79f1bb2bba Remove unused/duplicate imports leftover from merge\-conflict resolution
  210773. .IP \(bu 2
  210774. 2f610680e5 remove unused imports
  210775. .IP \(bu 2
  210776. 9b7de2e7d7 fix unit tests
  210777. .IP \(bu 2
  210778. 49d94559ab linting
  210779. .IP \(bu 2
  210780. 4b260a4594 linting
  210781. .IP \(bu 2
  210782. 41d1adab5f fix up tests
  210783. .IP \(bu 2
  210784. b3822e03fc add fixes for incorrectly importing modules directly instead of using __salt__
  210785. .UNINDENT
  210786. .IP \(bu 2
  210787. \fBISSUE\fP \fI\%#41230\fP: (\fI\%RealKelsar\fP) 2016.11.5 IPv6 nameserver in resolv.conf leads to minion exception (refs: \fI\%#41244\fP)
  210788. .IP \(bu 2
  210789. \fBISSUE\fP \fI\%#40912\fP: (\fI\%razed11\fP) IPV6 Warning when ipv6 set to False (refs: \fI\%#40934\fP)
  210790. .IP \(bu 2
  210791. \fBPR\fP \fI\%#41244\fP: (\fI\%cachedout\fP) Fix ipv6 nameserver grains
  210792. @ \fI2017\-05\-15 17:55:39 UTC\fP
  210793. .INDENT 2.0
  210794. .IP \(bu 2
  210795. \fBPR\fP \fI\%#40934\fP: (\fI\%gtmanfred\fP) Only display IPvX warning if role is master (refs: \fI\%#41244\fP)
  210796. .IP \(bu 2
  210797. 53d5b3e816 Merge pull request \fI\%#41244\fP from cachedout/fix_ipv6_nameserver_grains
  210798. .IP \(bu 2
  210799. f745db1a43 Lint
  210800. .IP \(bu 2
  210801. 6e1ab69710 Partial revert of \fI\%#40934\fP
  210802. .IP \(bu 2
  210803. 88f49f9146 Revert "Only display IPvX warning if role is master"
  210804. .UNINDENT
  210805. .IP \(bu 2
  210806. \fBPR\fP \fI\%#41242\fP: (\fI\%pprkut\fP) Fix changing a mysql user to unix socket authentication.
  210807. @ \fI2017\-05\-15 17:00:06 UTC\fP
  210808. .INDENT 2.0
  210809. .IP \(bu 2
  210810. 895fe582eb Merge pull request \fI\%#41242\fP from M2Mobi/mysql_socket_auth
  210811. .IP \(bu 2
  210812. 7d8359766d Fix changing a mysql user to unix socket authentication.
  210813. .UNINDENT
  210814. .IP \(bu 2
  210815. \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)
  210816. .IP \(bu 2
  210817. \fBPR\fP \fI\%#41101\fP: (\fI\%terminalmage\fP) Fix "latest" keyword for version specification when used with aggregation
  210818. @ \fI2017\-05\-15 16:52:35 UTC\fP
  210819. .INDENT 2.0
  210820. .IP \(bu 2
  210821. 50d8fde123 Merge pull request \fI\%#41101\fP from terminalmage/issue40940
  210822. .IP \(bu 2
  210823. 7fe64219ae Add rtag check to integration test for pkg.refresh_db
  210824. .IP \(bu 2
  210825. 88a08aa3bf Add comments to explain what removing the rtag file actually does
  210826. .IP \(bu 2
  210827. 92011dbe5f Fix "latest" keyword for version specification when used with aggregation
  210828. .UNINDENT
  210829. .IP \(bu 2
  210830. \fBISSUE\fP \fI\%#34775\fP: (\fI\%babilen\fP) Please allow users to disable branch environment mapping in GitFS (refs: \fI\%#41144\fP)
  210831. .IP \(bu 2
  210832. \fBPR\fP \fI\%#41146\fP: (\fI\%terminalmage\fP) gitfs: Backport performance fixes for getting tree objects
  210833. @ \fI2017\-05\-12 17:35:47 UTC\fP
  210834. .INDENT 2.0
  210835. .IP \(bu 2
  210836. \fBPR\fP \fI\%#41144\fP: (\fI\%terminalmage\fP) gitfs: Add two new options to affect saltenv mapping (refs: \fI\%#41146\fP)
  210837. .IP \(bu 2
  210838. 049712ba53 Merge pull request \fI\%#41146\fP from terminalmage/backport\-get_tree\-performance\-improvement
  210839. .IP \(bu 2
  210840. f9d6734afe gitfs: Backport performance fixes for getting tree objects
  210841. .UNINDENT
  210842. .IP \(bu 2
  210843. \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)
  210844. .IP \(bu 2
  210845. \fBPR\fP \fI\%#41161\fP: (\fI\%The\-Loeki\fP) gpg renderer: fix gpg_keydir always reverting to default
  210846. @ \fI2017\-05\-12 17:19:07 UTC\fP
  210847. .INDENT 2.0
  210848. .IP \(bu 2
  210849. 4215a0b99d Merge pull request \fI\%#41161\fP from The\-Loeki/2016.11
  210850. .IP \(bu 2
  210851. 24946fef18 gpg renderer: fix gpg_keydir always reverting to default
  210852. .UNINDENT
  210853. .IP \(bu 2
  210854. \fBISSUE\fP \fI\%#41162\fP: (\fI\%onlyanegg\fP) Elasticsearch module functions should pass hosts and profile to index_exists() (refs: \fI\%#41163\fP)
  210855. .IP \(bu 2
  210856. \fBPR\fP \fI\%#41163\fP: (\fI\%onlyanegg\fP) Elasticsearch \- pass hosts and profile to index_exists()
  210857. @ \fI2017\-05\-12 17:18:06 UTC\fP
  210858. .INDENT 2.0
  210859. .IP \(bu 2
  210860. 5b10fc58ba Merge pull request \fI\%#41163\fP from onlyanegg/elasticsearch\-pass_profile_to_index_exists
  210861. .IP \(bu 2
  210862. 7f512c701b Pass hosts and profile to index_exists() method
  210863. .UNINDENT
  210864. .IP \(bu 2
  210865. \fBISSUE\fP \fI\%#41185\fP: (\fI\%jmarinaro\fP) package name collisions in chocolatey state (refs: \fI\%#41186\fP)
  210866. .IP \(bu 2
  210867. \fBPR\fP \fI\%#41186\fP: (\fI\%jmarinaro\fP) Fix package name collisions in chocolatey state
  210868. @ \fI2017\-05\-12 17:01:31 UTC\fP
  210869. .INDENT 2.0
  210870. .IP \(bu 2
  210871. d433cf850d Merge pull request \fI\%#41186\fP from jmarinaro/fix\-chocolatey\-package\-collision
  210872. .IP \(bu 2
  210873. 229f3bf9f3 apply changes to uninstalled function
  210874. .IP \(bu 2
  210875. ffd4c7ef04 Fix package name collisions in chocolatey state
  210876. .UNINDENT
  210877. .IP \(bu 2
  210878. \fBPR\fP \fI\%#41189\fP: (\fI\%github\-abcde\fP) utils/minions.py: Fixed case where data is an empty dict resulting in…
  210879. @ \fI2017\-05\-12 16:32:25 UTC\fP
  210880. .INDENT 2.0
  210881. .IP \(bu 2
  210882. bb5ef41ce0 Merge pull request \fI\%#41189\fP from github\-abcde/utils\-minions\-fix
  210883. .IP \(bu 2
  210884. 853dc5406c utils/minions.py: Fixed case where data is an empty dict resulting in errors.
  210885. .UNINDENT
  210886. .IP \(bu 2
  210887. \fBPR\fP \fI\%#41104\fP: (\fI\%Ch3LL\fP) Add test to query results of /jobs call in api
  210888. @ \fI2017\-05\-10 20:11:08 UTC\fP
  210889. .INDENT 2.0
  210890. .IP \(bu 2
  210891. b136b15330 Merge pull request \fI\%#41104\fP from Ch3LL/add_jobs_test
  210892. .IP \(bu 2
  210893. dac16583b7 add test to query results of /jobs call in api
  210894. .UNINDENT
  210895. .IP \(bu 2
  210896. \fBPR\fP \fI\%#41170\fP: (\fI\%lomeroe\fP) Backport \fI\%#41081\fP to 2016.11
  210897. @ \fI2017\-05\-10 19:58:52 UTC\fP
  210898. .INDENT 2.0
  210899. .IP \(bu 2
  210900. \fBPR\fP \fI\%#41081\fP: (\fI\%lomeroe\fP) Update win_dns_client to use reg.read_value and set_value (refs: \fI\%#41170\fP)
  210901. .IP \(bu 2
  210902. ca18b4df93 Merge pull request \fI\%#41170\fP from lomeroe/bp\-41081
  210903. .IP \(bu 2
  210904. 2af89f2165 update mock data
  210905. .IP \(bu 2
  210906. b7fa115a59 update win_dns_client tests with correct module names
  210907. .IP \(bu 2
  210908. 4d05a22675 Update win_dns_client to use reg.read_value and set_value
  210909. .UNINDENT
  210910. .IP \(bu 2
  210911. \fBPR\fP \fI\%#41173\fP: (\fI\%twangboy\fP) Add silent action to MsgBox for Path Actions
  210912. @ \fI2017\-05\-10 19:57:06 UTC\fP
  210913. .INDENT 2.0
  210914. .IP \(bu 2
  210915. d7ec37b003 Merge pull request \fI\%#41173\fP from twangboy/fix_installer
  210916. .IP \(bu 2
  210917. 24b11ffdc2 Add release notes
  210918. .IP \(bu 2
  210919. 96918dcfa6 Add silent action to MsgBox for Path Actions
  210920. .UNINDENT
  210921. .IP \(bu 2
  210922. \fBPR\fP \fI\%#41158\fP: (\fI\%Ch3LL\fP) 2016.11.5 release notes: add additional commits
  210923. @ \fI2017\-05\-09 22:41:40 UTC\fP
  210924. .INDENT 2.0
  210925. .IP \(bu 2
  210926. 88e93b7fe5 Merge pull request \fI\%#41158\fP from Ch3LL/update_2016.11.5
  210927. .IP \(bu 2
  210928. 28371aa035 2016.11.5 release notes: add additional commits
  210929. .UNINDENT
  210930. .IP \(bu 2
  210931. \fBPR\fP \fI\%#41148\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  210932. @ \fI2017\-05\-09 20:23:28 UTC\fP
  210933. .INDENT 2.0
  210934. .IP \(bu 2
  210935. d2ae7deff2 Merge pull request \fI\%#41148\fP from rallytime/merge\-2016.11
  210936. .IP \(bu 2
  210937. aba35e20dd Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  210938. .INDENT 2.0
  210939. .IP \(bu 2
  210940. 2969153097 Merge pull request \fI\%#41122\fP from terminalmage/masterless\-env_cache\-fix
  210941. .INDENT 2.0
  210942. .IP \(bu 2
  210943. be732f0577 gitfs: refresh env cache during update in masterless
  210944. .UNINDENT
  210945. .IP \(bu 2
  210946. b8f0a4f108 Merge pull request \fI\%#41123\fP from terminalmage/gitfs\-vsts\-note
  210947. .INDENT 2.0
  210948. .IP \(bu 2
  210949. f6a16956a0 Add note on lack of support for VSTS in older libssh2 releases.
  210950. .UNINDENT
  210951. .IP \(bu 2
  210952. 8f79b6f537 Merge pull request \fI\%#41090\fP from bbinet/rdurations_float
  210953. .IP \(bu 2
  210954. fd48a63653 rdurations should be floats so that they can be summed when profiling
  210955. .UNINDENT
  210956. .UNINDENT
  210957. .IP \(bu 2
  210958. \fBPR\fP \fI\%#41147\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39676\fP to 2016.11
  210959. @ \fI2017\-05\-09 18:40:44 UTC\fP
  210960. .INDENT 2.0
  210961. .IP \(bu 2
  210962. \fBPR\fP \fI\%#39676\fP: (\fI\%F30\fP) Fix comments about the "hash_type" option (refs: \fI\%#41147\fP)
  210963. .IP \(bu 2
  210964. 2156395b2e Merge pull request \fI\%#41147\fP from rallytime/bp\-39676
  210965. .IP \(bu 2
  210966. 5b55fb2452 Fix comments about the "hash_type" option
  210967. .UNINDENT
  210968. .IP \(bu 2
  210969. \fBPR\fP \fI\%#40852\fP: (\fI\%isbm\fP) Isbm fix coregrains constants bsc#1032931
  210970. @ \fI2017\-05\-09 18:35:46 UTC\fP
  210971. .INDENT 2.0
  210972. .IP \(bu 2
  210973. a2f359fa13 Merge pull request \fI\%#40852\fP from isbm/isbm\-fix\-coregrains\-constants\-bsc#1032931
  210974. .IP \(bu 2
  210975. f3b12a3f5b Do not use multiple variables in "with" statement as of lint issues
  210976. .IP \(bu 2
  210977. 35a8d99934 Disable the test for a while
  210978. .IP \(bu 2
  210979. 76cb1b7150 Rewrite test case for using no patch decorators
  210980. .IP \(bu 2
  210981. f71af0b625 Fix lint issues
  210982. .IP \(bu 2
  210983. 0e6abb3e37 Add UT on set_hw_clock on Gentoo
  210984. .IP \(bu 2
  210985. a2b1d4638c Add UT for set_hwclock on Debian
  210986. .IP \(bu 2
  210987. 5356a0821a Bugfix: use correct grain name for SUSE platform
  210988. .IP \(bu 2
  210989. 88e8184702 Add UT set_hwclock on SUSE
  210990. .IP \(bu 2
  210991. 0cd590f927 Fix UT names
  210992. .IP \(bu 2
  210993. bee94ade63 Add UT for set_hwclock on RedHat
  210994. .IP \(bu 2
  210995. dfe2610d05 Add UT for set_hwclock on Arch
  210996. .IP \(bu 2
  210997. d000a8a6f5 Add UT for set_hwclock on solaris
  210998. .IP \(bu 2
  210999. d2614aedaa Fix docstrings
  211000. .IP \(bu 2
  211001. 6d782191dc Add UT for set_hwclock on AIX
  211002. .IP \(bu 2
  211003. d303e0dd8a Add UT for AIX on get_hwclock
  211004. .IP \(bu 2
  211005. 86f2d83781 Add UT on Solaris
  211006. .IP \(bu 2
  211007. c3cafed6d5 Add UT for Debian on get_hwclock
  211008. .IP \(bu 2
  211009. d337c09357 Add UT for RedHat/SUSE platforms on get_hwclock
  211010. .IP \(bu 2
  211011. 501a59ca7e Bugfix: use correct grain for SUSE and RedHat platform
  211012. .IP \(bu 2
  211013. f25dc5c56c Add UT for get_hwclock on SUSE platform
  211014. .IP \(bu 2
  211015. 08e00c865c Remove dead code
  211016. .IP \(bu 2
  211017. 1216a0bf12 Add UT for get_hwclock on UTC/localtime
  211018. .IP \(bu 2
  211019. 39332c71d3 Remove duplicate code
  211020. .IP \(bu 2
  211021. 58676c568d Add UT for Debian on set_zone
  211022. .IP \(bu 2
  211023. 1b9ce37b1b Add UT for gentoo on set_zone
  211024. .IP \(bu 2
  211025. cf7f766a68 Bugfix: use correct os_family grain value for SUSE series
  211026. .IP \(bu 2
  211027. 6ed9be985e Adjust UT to use correct grain for SUSE series
  211028. .IP \(bu 2
  211029. ce4c836a60 Add UT for set_zone on SUSE series
  211030. .IP \(bu 2
  211031. 155a498b49 Doc fix
  211032. .IP \(bu 2
  211033. a40876cdac Remove unnecessary mock patch
  211034. .IP \(bu 2
  211035. ffab2db213 Fix doc for RH UT
  211036. .IP \(bu 2
  211037. 72388f7ae2 Add UT for RedHat\(aqs set_zone
  211038. .IP \(bu 2
  211039. 11595d3a42 Refactor with setup/teardown
  211040. .IP \(bu 2
  211041. ce6a06de98 Bugfix: use correct grain constant for platform
  211042. .IP \(bu 2
  211043. 28072c9e41 Adjust the test so it is using the right grain for SUSE systems
  211044. .IP \(bu 2
  211045. 7a0e4be4f8 Add unit test for get_zone and various platforms
  211046. .UNINDENT
  211047. .IP \(bu 2
  211048. \fBISSUE\fP \fI\%#41105\fP: (\fI\%terminalmage\fP) ssl_verify gitfs/git_pillar option does not work with pygit2 (refs: \fI\%#41111\fP)
  211049. .IP \(bu 2
  211050. \fBPR\fP \fI\%#41111\fP: (\fI\%terminalmage\fP) Allow "ssl_verify: False" to work with pygit2
  211051. @ \fI2017\-05\-09 17:56:12 UTC\fP
  211052. .INDENT 2.0
  211053. .IP \(bu 2
  211054. 6fa41dc89d Merge pull request \fI\%#41111\fP from terminalmage/issue41105
  211055. .IP \(bu 2
  211056. 8c6410e3cd Add notices about ssl_verify only working in 0.23.2 and newer
  211057. .IP \(bu 2
  211058. 98ce829729 Support ssl_verify in pygit2
  211059. .IP \(bu 2
  211060. f73c4b7167 Add http(s) auth config docs for GitPython
  211061. .UNINDENT
  211062. .IP \(bu 2
  211063. \fBPR\fP \fI\%#41008\fP: (\fI\%cro\fP) Look in /opt/\fI/lib instead of just /opt/local/lib on Illumos distros.
  211064. @ *2017\-05\-09 16:56:00 UTC\fP
  211065. .INDENT 2.0
  211066. .IP \(bu 2
  211067. 81add1b944 Merge pull request \fI\%#41008\fP from cro/rsax_smos
  211068. .IP \(bu 2
  211069. a4f7aa145e Look for libcrypto in both /opt/tools and /opt/local on Illumos\-based distros.
  211070. .UNINDENT
  211071. .IP \(bu 2
  211072. \fBPR\fP \fI\%#41124\fP: (\fI\%gtmanfred\fP) add user_data to digitalocean
  211073. @ \fI2017\-05\-09 16:47:42 UTC\fP
  211074. .INDENT 2.0
  211075. .IP \(bu 2
  211076. c649725e9b Merge pull request \fI\%#41124\fP from gtmanfred/do
  211077. .IP \(bu 2
  211078. 2370d9316b add user_data to digital ocean
  211079. .UNINDENT
  211080. .IP \(bu 2
  211081. \fBISSUE\fP \fI\%#41125\fP: (\fI\%tmeneau\fP) service.running returns True if enable=None and init script returns 0 (refs: \fI\%#41127\fP)
  211082. .IP \(bu 2
  211083. \fBPR\fP \fI\%#41127\fP: (\fI\%tmeneau\fP) Fix incorrect service.running state response when enable=None and init script returns 0
  211084. @ \fI2017\-05\-09 16:43:35 UTC\fP
  211085. .INDENT 2.0
  211086. .IP \(bu 2
  211087. d0a3fcf33a Merge pull request \fI\%#41127\fP from xetus\-oss/fix\-41125\-service\-running
  211088. .IP \(bu 2
  211089. d8766562c9 fix incorrect service.running success response
  211090. .UNINDENT
  211091. .UNINDENT
  211092. .SS Salt 2016.11.7 Release Notes
  211093. .sp
  211094. Version 2016.11.7 is a bugfix release for 2016.11.0\&.
  211095. .SS Security Fix
  211096. .sp
  211097. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  211098. traversals on the Salt\-master
  211099. .sp
  211100. This release corrects a flaw in minion ID validation which could allow certain
  211101. minions to authenticate to a master despite not having the correct credentials.
  211102. To exploit the vulnerability, an attacker must create a salt\-minion with an ID
  211103. containing characters that will cause a directory traversal. Credit for
  211104. discovering the security flaw goes to: \fI\%Vernhk@qq.com\fP
  211105. .SS Salt 2016.11.8 Release Notes
  211106. .sp
  211107. Version 2016.11.8 is a bugfix release for 2016.11.0\&.
  211108. .SS Statistics
  211109. .INDENT 0.0
  211110. .IP \(bu 2
  211111. Total Merges: \fB171\fP
  211112. .IP \(bu 2
  211113. Total Issue References: \fB68\fP
  211114. .IP \(bu 2
  211115. Total PR References: \fB202\fP
  211116. .IP \(bu 2
  211117. 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)
  211118. .UNINDENT
  211119. .SS Security Fix
  211120. .sp
  211121. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  211122. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  211123. a master via a crafted minion ID. Credit for discovering the security flaw goes
  211124. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  211125. .sp
  211126. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  211127. authentication request. Credit for discovering the security flaw goes to:
  211128. Julian Brost (\fI\%julian@0x4a42.net\fP)
  211129. .SS Anonymous Binds and LDAP/Active Directory
  211130. .sp
  211131. When \fBauth.ldap.anonymous\fP is set to \fBFalse\fP, the bind password can no
  211132. longer be empty.
  211133. .SS Changelog for v2016.11.7..v2016.11.8
  211134. .sp
  211135. \fIGenerated at: 2018\-05\-27 20:23:07 UTC\fP
  211136. .INDENT 0.0
  211137. .IP \(bu 2
  211138. \fBPR\fP \fI\%#43508\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43333\fP to 2016.11.8
  211139. @ \fI2017\-09\-14 21:40:19 UTC\fP
  211140. .INDENT 2.0
  211141. .IP \(bu 2
  211142. \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)
  211143. .IP \(bu 2
  211144. a648f75949 Merge pull request \fI\%#43508\fP from rallytime/bp\-43333
  211145. .IP \(bu 2
  211146. d4981a2717 Update doco
  211147. .IP \(bu 2
  211148. a7c8b9e048 Update win_pkg.py
  211149. .IP \(bu 2
  211150. 1d6dc6fb72 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  211151. .UNINDENT
  211152. .IP \(bu 2
  211153. \fBPR\fP \fI\%#43434\fP: (\fI\%rallytime\fP) Add 2016.11.8 release notes
  211154. @ \fI2017\-09\-11 17:06:29 UTC\fP
  211155. .INDENT 2.0
  211156. .IP \(bu 2
  211157. e7009877bc Merge pull request \fI\%#43434\fP from rallytime/2016.11.8\-release\-notes
  211158. .IP \(bu 2
  211159. 68f529ee5e Add 2016.11.8 release notes
  211160. .UNINDENT
  211161. .IP \(bu 2
  211162. \fBPR\fP \fI\%#43271\fP: (\fI\%twangboy\fP) Fix minor formatting issue
  211163. @ \fI2017\-08\-30 18:35:12 UTC\fP
  211164. .INDENT 2.0
  211165. .IP \(bu 2
  211166. cf21f91fb2 Merge pull request \fI\%#43271\fP from twangboy/win_fix_pkg.install
  211167. .IP \(bu 2
  211168. 91b062f564 Fix formatting issue, spaces surrounding +
  211169. .UNINDENT
  211170. .IP \(bu 2
  211171. \fBPR\fP \fI\%#43228\fP: (\fI\%twangboy\fP) Win fix pkg.install
  211172. @ \fI2017\-08\-30 14:26:21 UTC\fP
  211173. .INDENT 2.0
  211174. .IP \(bu 2
  211175. 3a0b02f3ae Merge pull request \fI\%#43228\fP from twangboy/win_fix_pkg.install
  211176. .IP \(bu 2
  211177. 13dfabb1ce Fix regex statement, add \fI\&.\fP
  211178. .IP \(bu 2
  211179. 31ff69f0ad Add underscore to regex search
  211180. .IP \(bu 2
  211181. 3cf2b6575c Fix spelling
  211182. .IP \(bu 2
  211183. ed030a35a5 Use regex to detect salt\-minion install
  211184. .IP \(bu 2
  211185. e5daff495a Fix pkg.install
  211186. .UNINDENT
  211187. .IP \(bu 2
  211188. \fBPR\fP \fI\%#43191\fP: (\fI\%viktorkrivak\fP) Fix apache.config with multiple statement
  211189. @ \fI2017\-08\-28 18:13:44 UTC\fP
  211190. .INDENT 2.0
  211191. .IP \(bu 2
  211192. b4c689dff5 Merge pull request \fI\%#43191\fP from viktorkrivak/fix\-apache\-config\-multi\-entity
  211193. .IP \(bu 2
  211194. c15bcbe1cc Merge remote\-tracking branch \(aqupstream/2016.11\(aq into fix\-apache\-config\-multi\-entity
  211195. .IP \(bu 2
  211196. 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.
  211197. .UNINDENT
  211198. .IP \(bu 2
  211199. \fBISSUE\fP \fI\%#42279\fP: (\fI\%dafyddj\fP) win_lgpo matches multiple policies due to startswith() (refs: \fI\%#43154\fP, \fI\%#43116\fP)
  211200. .IP \(bu 2
  211201. \fBPR\fP \fI\%#43154\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2016.11
  211202. @ \fI2017\-08\-28 16:40:41 UTC\fP
  211203. .INDENT 2.0
  211204. .IP \(bu 2
  211205. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43154\fP)
  211206. .IP \(bu 2
  211207. b90e59ede9 Merge pull request \fI\%#43154\fP from lomeroe/bp\-43116\-2016.11
  211208. .IP \(bu 2
  211209. 8f593b0b02 verify that files exist before trying to remove them, win_file.remove raises an exception if the file does not exist
  211210. .IP \(bu 2
  211211. 33a30bac06 correcting bad format statement in search for policy to be disabled
  211212. .IP \(bu 2
  211213. acc3d7ac82 correct fopen calls from salt.utils for 2016.11\(aqs utils function
  211214. .IP \(bu 2
  211215. 2da1cdd109 lint fix
  211216. .IP \(bu 2
  211217. 61bd12c0de track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  211218. .IP \(bu 2
  211219. f232bed9f9 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  211220. .UNINDENT
  211221. .IP \(bu 2
  211222. \fBISSUE\fP \fI\%#42642\fP: (\fI\%githubcdr\fP) state.augeas (refs: \fI\%#42669\fP, \fI\%#43202\fP)
  211223. .IP \(bu 2
  211224. \fBPR\fP \fI\%#43202\fP: (\fI\%garethgreenaway\fP) Reverting previous augeas module changes
  211225. @ \fI2017\-08\-28 13:14:27 UTC\fP
  211226. .INDENT 2.0
  211227. .IP \(bu 2
  211228. 5308c27f9f Merge pull request \fI\%#43202\fP from garethgreenaway/42642_2016_11_augeas_module_revert_fix
  211229. .IP \(bu 2
  211230. ef7e93eb3f Reverting this change due to it breaking other uses.
  211231. .UNINDENT
  211232. .IP \(bu 2
  211233. \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)
  211234. .IP \(bu 2
  211235. \fBPR\fP \fI\%#43103\fP: (\fI\%aogier\fP) genesis.bootstrap deboostrap fix
  211236. @ \fI2017\-08\-25 20:48:23 UTC\fP
  211237. .INDENT 2.0
  211238. .IP \(bu 2
  211239. f16b7246e4 Merge pull request \fI\%#43103\fP from aogier/43101\-genesis\-bootstrap
  211240. .IP \(bu 2
  211241. db94f3bb1c better formatting
  211242. .IP \(bu 2
  211243. e5cc667762 tests: fix a leftover and simplify some parts
  211244. .IP \(bu 2
  211245. 13e5997457 lint
  211246. .IP \(bu 2
  211247. 216ced69e5 allow comma\-separated pkgs lists, quote args, test deb behaviour
  211248. .IP \(bu 2
  211249. d8612ae006 fix debootstrap and enhance packages selection/deletion via cmdline
  211250. .UNINDENT
  211251. .IP \(bu 2
  211252. \fBISSUE\fP \fI\%#42329\fP: (\fI\%jagguli\fP) State git.latest does not pull latest tags (refs: \fI\%#42663\fP)
  211253. .IP \(bu 2
  211254. \fBPR\fP \fI\%#42663\fP: (\fI\%jagguli\fP) Check remote tags before deciding to do a fetch \fI\%#42329\fP
  211255. @ \fI2017\-08\-25 20:14:32 UTC\fP
  211256. .INDENT 2.0
  211257. .IP \(bu 2
  211258. 4863771428 Merge pull request \fI\%#42663\fP from StreetHawkInc/fix_git_tag_check
  211259. .IP \(bu 2
  211260. 2b5af5b59d Remove refs/tags prefix from remote tags
  211261. .IP \(bu 2
  211262. 3f2e96e561 Convert set to list for serializer
  211263. .IP \(bu 2
  211264. 2728e5d977 Only include new tags in changes
  211265. .IP \(bu 2
  211266. 4b1df2f223 Exclude annotated tags from checks
  211267. .IP \(bu 2
  211268. 389c037285 Check remote tags before deciding to do a fetch \fI\%#42329\fP
  211269. .UNINDENT
  211270. .IP \(bu 2
  211271. \fBISSUE\fP \fI\%#43198\fP: (\fI\%corywright\fP) disk.format_ needs to be aliased to disk.format (refs: \fI\%#43199\fP)
  211272. .IP \(bu 2
  211273. \fBPR\fP \fI\%#43199\fP: (\fI\%corywright\fP) Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  211274. @ \fI2017\-08\-25 19:21:07 UTC\fP
  211275. .INDENT 2.0
  211276. .IP \(bu 2
  211277. 4193e7f0a2 Merge pull request \fI\%#43199\fP from corywright/disk\-format\-alias
  211278. .IP \(bu 2
  211279. f00d3a9ddc Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  211280. .UNINDENT
  211281. .IP \(bu 2
  211282. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#495\fP: (\fI\%Ch3LL\fP) npm tests failing (refs: \fI\%#43196\fP)
  211283. .IP \(bu 2
  211284. \fBPR\fP \fI\%#43196\fP: (\fI\%gtmanfred\fP) Pin request install to version for npm tests
  211285. @ \fI2017\-08\-25 18:43:06 UTC\fP
  211286. .INDENT 2.0
  211287. .IP \(bu 2
  211288. 5471f9fe0c Merge pull request \fI\%#43196\fP from gtmanfred/2016.11
  211289. .IP \(bu 2
  211290. ccd2241777 Pin request install to version
  211291. .UNINDENT
  211292. .IP \(bu 2
  211293. \fBISSUE\fP \fI\%#43143\fP: (\fI\%abulford\fP) git.detached does not fetch if rev is missing from local (refs: \fI\%#43178\fP)
  211294. .IP \(bu 2
  211295. \fBPR\fP \fI\%#43178\fP: (\fI\%terminalmage\fP) git.detached: Fix traceback when rev is a SHA and is not present locally
  211296. @ \fI2017\-08\-25 13:58:37 UTC\fP
  211297. .INDENT 2.0
  211298. .IP \(bu 2
  211299. ace2715c60 Merge pull request \fI\%#43178\fP from terminalmage/issue43143
  211300. .IP \(bu 2
  211301. 2640833400 git.detached: Fix traceback when rev is a SHA and is not present locally
  211302. .UNINDENT
  211303. .IP \(bu 2
  211304. \fBPR\fP \fI\%#43179\fP: (\fI\%terminalmage\fP) Fix missed deprecation
  211305. @ \fI2017\-08\-24 22:52:34 UTC\fP
  211306. .INDENT 2.0
  211307. .IP \(bu 2
  211308. 12e9507b9e Merge pull request \fI\%#43179\fP from terminalmage/old\-deprecation
  211309. .IP \(bu 2
  211310. 3adf8ad04b Fix missed deprecation
  211311. .UNINDENT
  211312. .IP \(bu 2
  211313. \fBPR\fP \fI\%#43171\fP: (\fI\%terminalmage\fP) Add warning about adding new functions to salt/utils/__init__.py
  211314. @ \fI2017\-08\-24 19:10:23 UTC\fP
  211315. .INDENT 2.0
  211316. .IP \(bu 2
  211317. b595440d90 Merge pull request \fI\%#43171\fP from terminalmage/salt\-utils\-warning
  211318. .IP \(bu 2
  211319. 7b5943a31a Add warning about adding new functions to salt/utils/__init__.py
  211320. .UNINDENT
  211321. .IP \(bu 2
  211322. \fBPR\fP \fI\%#43173\fP: (\fI\%Ch3LL\fP) Add New Release Branch Strategy to Contribution Docs
  211323. @ \fI2017\-08\-24 19:04:56 UTC\fP
  211324. .INDENT 2.0
  211325. .IP \(bu 2
  211326. 4f273cac4f Merge pull request \fI\%#43173\fP from Ch3LL/add_branch_docs
  211327. .IP \(bu 2
  211328. 1b24244bd3 Add New Release Branch Strategy to Contribution Docs
  211329. .UNINDENT
  211330. .IP \(bu 2
  211331. \fBPR\fP \fI\%#43151\fP: (\fI\%ushmodin\fP) state.sls hangs on file.recurse with clean: True on windows
  211332. @ \fI2017\-08\-23 17:25:33 UTC\fP
  211333. .INDENT 2.0
  211334. .IP \(bu 2
  211335. \fBPR\fP \fI\%#42969\fP: (\fI\%ushmodin\fP) state.sls hangs on file.recurse with clean: True on windows (refs: \fI\%#43151\fP)
  211336. .IP \(bu 2
  211337. 669b376abf Merge pull request \fI\%#43151\fP from ushmodin/2016.11
  211338. .IP \(bu 2
  211339. c5841e2ade state.sls hangs on file.recurse with clean: True on windows
  211340. .UNINDENT
  211341. .IP \(bu 2
  211342. \fBPR\fP \fI\%#42986\fP: (\fI\%renner\fP) Notify systemd synchronously (via NOTIFY_SOCKET)
  211343. @ \fI2017\-08\-22 16:52:56 UTC\fP
  211344. .INDENT 2.0
  211345. .IP \(bu 2
  211346. ae9d2b7985 Merge pull request \fI\%#42986\fP from renner/systemd\-notify
  211347. .IP \(bu 2
  211348. 79c53f3f81 Fallback to systemd_notify_call() in case of socket.error
  211349. .IP \(bu 2
  211350. f1765472dd Notify systemd synchronously (via NOTIFY_SOCKET)
  211351. .UNINDENT
  211352. .IP \(bu 2
  211353. \fBISSUE\fP \fI\%#43036\fP: (\fI\%mcarlton00\fP) Linux VMs in Bhyve aren\(aqt displayed properly in grains (refs: \fI\%#43037\fP)
  211354. .IP \(bu 2
  211355. \fBPR\fP \fI\%#43037\fP: (\fI\%mcarlton00\fP) Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  211356. @ \fI2017\-08\-22 16:43:40 UTC\fP
  211357. .INDENT 2.0
  211358. .IP \(bu 2
  211359. b420fbe618 Merge pull request \fI\%#43037\fP from mcarlton00/fix\-bhyve\-grains
  211360. .IP \(bu 2
  211361. 73315f0cf0 Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  211362. .UNINDENT
  211363. .IP \(bu 2
  211364. \fBPR\fP \fI\%#43100\fP: (\fI\%vutny\fP) [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  211365. @ \fI2017\-08\-22 15:40:09 UTC\fP
  211366. .INDENT 2.0
  211367. .IP \(bu 2
  211368. 0a86f2d884 Merge pull request \fI\%#43100\fP from vutny/doc\-add\-missing\-utils\-ext
  211369. .IP \(bu 2
  211370. af743ff6c3 [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  211371. .UNINDENT
  211372. .IP \(bu 2
  211373. \fBISSUE\fP \fI\%#15171\fP: (\fI\%JensRantil\fP) Maximum recursion limit hit related to requisites (refs: \fI\%#42985\fP)
  211374. .IP \(bu 2
  211375. \fBPR\fP \fI\%#42985\fP: (\fI\%DmitryKuzmenko\fP) Properly handle \fIprereq\fP having lost requisites.
  211376. @ \fI2017\-08\-21 22:49:39 UTC\fP
  211377. .INDENT 2.0
  211378. .IP \(bu 2
  211379. e2bf2f448e Merge pull request \fI\%#42985\fP from DSRCorporation/bugs/15171_recursion_limit
  211380. .IP \(bu 2
  211381. 651b1bab09 Properly handle \fIprereq\fP having lost requisites.
  211382. .UNINDENT
  211383. .IP \(bu 2
  211384. \fBPR\fP \fI\%#43092\fP: (\fI\%blarghmatey\fP) Fixed issue with silently passing all tests in Testinfra module
  211385. @ \fI2017\-08\-21 20:22:08 UTC\fP
  211386. .INDENT 2.0
  211387. .IP \(bu 2
  211388. e51333306c Merge pull request \fI\%#43092\fP from mitodl/2016.11
  211389. .IP \(bu 2
  211390. d4b113acdf Fixed issue with silently passing all tests in Testinfra module
  211391. .UNINDENT
  211392. .IP \(bu 2
  211393. \fBPR\fP \fI\%#43060\fP: (\fI\%twangboy\fP) Osx update pkg scripts
  211394. @ \fI2017\-08\-21 20:06:12 UTC\fP
  211395. .INDENT 2.0
  211396. .IP \(bu 2
  211397. 77a443ce8e Merge pull request \fI\%#43060\fP from twangboy/osx_update_pkg_scripts
  211398. .IP \(bu 2
  211399. ef8a14cdf9 Remove /opt/salt instead of /opt/salt/bin
  211400. .IP \(bu 2
  211401. 2dd62aa1da Add more information to the description
  211402. .IP \(bu 2
  211403. f44f5b70dc Only stop services if they are running
  211404. .IP \(bu 2
  211405. 3b62bf953c Remove salt from the path
  211406. .IP \(bu 2
  211407. ebdca3a0f5 Update pkg\-scripts
  211408. .UNINDENT
  211409. .IP \(bu 2
  211410. \fBISSUE\fP \fI\%#42869\fP: (\fI\%abednarik\fP) Git Module : Failed to update repository (refs: \fI\%#43064\fP)
  211411. .IP \(bu 2
  211412. \fBPR\fP \fI\%#43064\fP: (\fI\%terminalmage\fP) Fix race condition in git.latest
  211413. @ \fI2017\-08\-21 14:29:52 UTC\fP
  211414. .INDENT 2.0
  211415. .IP \(bu 2
  211416. 1b1b6da803 Merge pull request \fI\%#43064\fP from terminalmage/issue42869
  211417. .IP \(bu 2
  211418. 093c0c2f77 Fix race condition in git.latest
  211419. .UNINDENT
  211420. .IP \(bu 2
  211421. \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)
  211422. .IP \(bu 2
  211423. \fBPR\fP \fI\%#43054\fP: (\fI\%lorengordon\fP) Uses ConfigParser to read yum config files
  211424. @ \fI2017\-08\-18 20:49:44 UTC\fP
  211425. .INDENT 2.0
  211426. .IP \(bu 2
  211427. \fBPR\fP \fI\%#42045\fP: (\fI\%arount\fP) Fix: salt.modules.yumpkg: ConfigParser to read ini like files. (refs: \fI\%#43054\fP)
  211428. .IP \(bu 2
  211429. 96e8e836d1 Merge pull request \fI\%#43054\fP from lorengordon/fix/yumpkg/config\-parser
  211430. .IP \(bu 2
  211431. 3b2cb81a72 fix typo in salt.modules.yumpkg
  211432. .IP \(bu 2
  211433. 38add0e4a2 break if leading comments are all fetched
  211434. .IP \(bu 2
  211435. d7f65dc7a7 fix configparser import & log if error was raised
  211436. .IP \(bu 2
  211437. ca1b1bb633 use configparser to parse yum repo file
  211438. .UNINDENT
  211439. .IP \(bu 2
  211440. \fBPR\fP \fI\%#43048\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43031\fP to 2016.11
  211441. @ \fI2017\-08\-18 12:56:04 UTC\fP
  211442. .INDENT 2.0
  211443. .IP \(bu 2
  211444. \fBPR\fP \fI\%#43031\fP: (\fI\%gtmanfred\fP) use a ruby gem that doesn\(aqt have dependencies (refs: \fI\%#43048\fP)
  211445. .IP \(bu 2
  211446. 43aa46f512 Merge pull request \fI\%#43048\fP from rallytime/bp\-43031
  211447. .IP \(bu 2
  211448. 35e45049e2 use a ruby gem that doesn\(aqt have dependencies
  211449. .UNINDENT
  211450. .IP \(bu 2
  211451. \fBPR\fP \fI\%#43023\fP: (\fI\%terminalmage\fP) Fixes/improvements to Jenkins state/module
  211452. @ \fI2017\-08\-18 01:33:10 UTC\fP
  211453. .INDENT 2.0
  211454. .IP \(bu 2
  211455. ad89ff3104 Merge pull request \fI\%#43023\fP from terminalmage/fix\-jenkins\-xml\-caching
  211456. .IP \(bu 2
  211457. 33fd8ff939 Update jenkins.py
  211458. .IP \(bu 2
  211459. fc306fc8c3 Add missing colon in \fIif\fP statement
  211460. .IP \(bu 2
  211461. 822eabcc81 Catch exceptions raised when making changes to jenkins
  211462. .IP \(bu 2
  211463. 91b583b493 Improve and correct exception raising
  211464. .IP \(bu 2
  211465. f096917a0e Raise an exception if we fail to cache the config xml
  211466. .UNINDENT
  211467. .IP \(bu 2
  211468. \fBPR\fP \fI\%#43026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43020\fP to 2016.11
  211469. @ \fI2017\-08\-17 23:19:46 UTC\fP
  211470. .INDENT 2.0
  211471. .IP \(bu 2
  211472. \fBPR\fP \fI\%#43020\fP: (\fI\%gtmanfred\fP) test with gem that appears to be abandoned (refs: \fI\%#43026\fP)
  211473. .IP \(bu 2
  211474. 2957467ed7 Merge pull request \fI\%#43026\fP from rallytime/bp\-43020
  211475. .IP \(bu 2
  211476. 0eb15a1f67 test with gem that appears to be abandoned
  211477. .UNINDENT
  211478. .IP \(bu 2
  211479. \fBISSUE\fP \fI\%#40490\fP: (\fI\%alxwr\fP) saltstack x509 incompatible to m2crypto 0.26.0 (refs: \fI\%#42760\fP)
  211480. .IP \(bu 2
  211481. \fBPR\fP \fI\%#43033\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42760\fP to 2016.11
  211482. @ \fI2017\-08\-17 22:24:43 UTC\fP
  211483. .INDENT 2.0
  211484. .IP \(bu 2
  211485. \fBPR\fP \fI\%#42760\fP: (\fI\%AFriemann\fP) Catch TypeError thrown by m2crypto when parsing missing subjects in c… (refs: \fI\%#43033\fP)
  211486. .IP \(bu 2
  211487. 4150b094fe Merge pull request \fI\%#43033\fP from rallytime/bp\-42760
  211488. .IP \(bu 2
  211489. 3e3f7f5d8e Catch TypeError thrown by m2crypto when parsing missing subjects in certificate files.
  211490. .UNINDENT
  211491. .IP \(bu 2
  211492. \fBPR\fP \fI\%#43032\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42547\fP to 2016.11
  211493. @ \fI2017\-08\-17 21:53:50 UTC\fP
  211494. .INDENT 2.0
  211495. .IP \(bu 2
  211496. \fBPR\fP \fI\%#42547\fP: (\fI\%blarghmatey\fP) Updated testinfra modules to work with more recent versions (refs: \fI\%#43032\fP)
  211497. .IP \(bu 2
  211498. b124d3667e Merge pull request \fI\%#43032\fP from rallytime/bp\-42547
  211499. .IP \(bu 2
  211500. ea4d7f4176 Updated testinfra modules to work with more recent versions
  211501. .UNINDENT
  211502. .IP \(bu 2
  211503. \fBISSUE\fP \fI\%#42992\fP: (\fI\%pabloh007\fP) docker.save flag push does is ignored (refs: \fI\%#43027\fP)
  211504. .IP \(bu 2
  211505. \fBPR\fP \fI\%#43027\fP: (\fI\%pabloh007\fP) Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  211506. @ \fI2017\-08\-17 19:55:37 UTC\fP
  211507. .INDENT 2.0
  211508. .IP \(bu 2
  211509. a88386ad44 Merge pull request \fI\%#43027\fP from pabloh007/fix\-docker\-save\-push\-2016\-11
  211510. .IP \(bu 2
  211511. d0fd949f85 Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  211512. .UNINDENT
  211513. .IP \(bu 2
  211514. \fBISSUE\fP \fI\%#42627\fP: (\fI\%taigrrr8\fP) salt\-cp no longer works. Was working a few months back. (refs: \fI\%#42890\fP)
  211515. .IP \(bu 2
  211516. \fBPR\fP \fI\%#42890\fP: (\fI\%DmitryKuzmenko\fP) Make chunked mode in salt\-cp optional
  211517. @ \fI2017\-08\-17 18:37:44 UTC\fP
  211518. .INDENT 2.0
  211519. .IP \(bu 2
  211520. 51d16840bb Merge pull request \fI\%#42890\fP from DSRCorporation/bugs/42627_salt\-cp
  211521. .IP \(bu 2
  211522. cfddbf1c75 Apply code review: update the doc
  211523. .IP \(bu 2
  211524. afedd3b654 Typos and version fixes in the doc.
  211525. .IP \(bu 2
  211526. 9fedf6012e Fixed \(aqtest_valid_docs\(aq test.
  211527. .IP \(bu 2
  211528. 999388680c Make chunked mode in salt\-cp optional (disabled by default).
  211529. .UNINDENT
  211530. .IP \(bu 2
  211531. \fBPR\fP \fI\%#43009\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  211532. @ \fI2017\-08\-17 18:00:09 UTC\fP
  211533. .INDENT 2.0
  211534. .IP \(bu 2
  211535. b3c253cdfa Merge pull request \fI\%#43009\fP from rallytime/merge\-2016.11
  211536. .IP \(bu 2
  211537. 566ba4fe76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  211538. .INDENT 2.0
  211539. .IP \(bu 2
  211540. 13b8637d53 Merge pull request \fI\%#42942\fP from Ch3LL/2016.3.6_follow_up
  211541. .INDENT 2.0
  211542. .IP \(bu 2
  211543. f281e1795f move additional minion config options to 2016.3.8 release notes
  211544. .IP \(bu 2
  211545. 168604ba6b remove merge conflict
  211546. .IP \(bu 2
  211547. 8a07d95212 update release notes with cve number
  211548. .IP \(bu 2
  211549. 149633fdca Add release notes for 2016.3.7 release
  211550. .IP \(bu 2
  211551. 7a4cddcd95 Add clean_id function to salt.utils.verify.py
  211552. .UNINDENT
  211553. .IP \(bu 2
  211554. bbb1b29ccb Merge pull request \fI\%#42954\fP from Ch3LL/latest_2016.3
  211555. .INDENT 2.0
  211556. .IP \(bu 2
  211557. b551e66744 [2016.3] Bump latest and previous versions
  211558. .UNINDENT
  211559. .IP \(bu 2
  211560. 5d5edc54b7 Merge pull request \fI\%#42949\fP from Ch3LL/2016.3.7_docs
  211561. .INDENT 2.0
  211562. .IP \(bu 2
  211563. d75d3741f8 Add Security Notice to 2016.3.7 Release Notes
  211564. .UNINDENT
  211565. .UNINDENT
  211566. .UNINDENT
  211567. .IP \(bu 2
  211568. \fBPR\fP \fI\%#43021\fP: (\fI\%terminalmage\fP) Use socket.AF_INET6 to get the correct value instead of doing an OS check
  211569. @ \fI2017\-08\-17 17:57:09 UTC\fP
  211570. .INDENT 2.0
  211571. .IP \(bu 2
  211572. \fBPR\fP \fI\%#43014\fP: (\fI\%Ch3LL\fP) Change AF_INET6 family for mac in test_host_to_ips (refs: \fI\%#43021\fP)
  211573. .IP \(bu 2
  211574. 37c63e7cf2 Merge pull request \fI\%#43021\fP from terminalmage/fix\-network\-test
  211575. .IP \(bu 2
  211576. 4089b7b1bc Use socket.AF_INET6 to get the correct value instead of doing an OS check
  211577. .UNINDENT
  211578. .IP \(bu 2
  211579. \fBPR\fP \fI\%#43019\fP: (\fI\%rallytime\fP) Update bootstrap script to latest stable: v2017.08.17
  211580. @ \fI2017\-08\-17 17:56:41 UTC\fP
  211581. .INDENT 2.0
  211582. .IP \(bu 2
  211583. 8f6423247c Merge pull request \fI\%#43019\fP from rallytime/bootstrap_2017.08.17
  211584. .IP \(bu 2
  211585. 2f762b3a17 Update bootstrap script to latest stable: v2017.08.17
  211586. .UNINDENT
  211587. .IP \(bu 2
  211588. \fBPR\fP \fI\%#43014\fP: (\fI\%Ch3LL\fP) Change AF_INET6 family for mac in test_host_to_ips (refs: \fI\%#43021\fP)
  211589. @ \fI2017\-08\-17 16:17:51 UTC\fP
  211590. .INDENT 2.0
  211591. .IP \(bu 2
  211592. ff1caeee68 Merge pull request \fI\%#43014\fP from Ch3LL/fix_network_mac
  211593. .IP \(bu 2
  211594. b8eee4401e Change AF_INET6 family for mac in test_host_to_ips
  211595. .UNINDENT
  211596. .IP \(bu 2
  211597. \fBPR\fP \fI\%#42968\fP: (\fI\%vutny\fP) [DOCS] Fix link to Salt Cloud Feature Matrix
  211598. @ \fI2017\-08\-16 13:16:16 UTC\fP
  211599. .INDENT 2.0
  211600. .IP \(bu 2
  211601. 1ee9499d28 Merge pull request \fI\%#42968\fP from vutny/doc\-salt\-cloud\-ref
  211602. .IP \(bu 2
  211603. 44ed53b1df [DOCS] Fix link to Salt Cloud Feature Matrix
  211604. .UNINDENT
  211605. .IP \(bu 2
  211606. \fBISSUE\fP \fI\%#38839\fP: (\fI\%DaveOHenry\fP) Invoking runner.cloud.action via reactor sls fails (refs: \fI\%#42291\fP)
  211607. .IP \(bu 2
  211608. \fBPR\fP \fI\%#42291\fP: (\fI\%vutny\fP) Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  211609. @ \fI2017\-08\-15 23:01:08 UTC\fP
  211610. .INDENT 2.0
  211611. .IP \(bu 2
  211612. 923f9741fe Merge pull request \fI\%#42291\fP from vutny/fix\-38839
  211613. .IP \(bu 2
  211614. 5f8f98a01f Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  211615. .UNINDENT
  211616. .IP \(bu 2
  211617. \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)
  211618. .IP \(bu 2
  211619. \fBPR\fP \fI\%#42940\fP: (\fI\%gtmanfred\fP) create new ip address before checking list of allocated ips
  211620. @ \fI2017\-08\-15 21:47:18 UTC\fP
  211621. .INDENT 2.0
  211622. .IP \(bu 2
  211623. c20bc7d515 Merge pull request \fI\%#42940\fP from gtmanfred/2016.11
  211624. .IP \(bu 2
  211625. 253e216a8d fix IP address spelling
  211626. .IP \(bu 2
  211627. bd63074e7a create new ip address before checking list of allocated ips
  211628. .UNINDENT
  211629. .IP \(bu 2
  211630. \fBPR\fP \fI\%#42959\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42883\fP to 2016.11
  211631. @ \fI2017\-08\-15 21:25:48 UTC\fP
  211632. .INDENT 2.0
  211633. .IP \(bu 2
  211634. \fBPR\fP \fI\%#42883\fP: (\fI\%rallytime\fP) Fix failing boto tests (refs: \fI\%#42959\fP)
  211635. .IP \(bu 2
  211636. d6496eca72 Merge pull request \fI\%#42959\fP from rallytime/bp\-42883
  211637. .IP \(bu 2
  211638. c6b9ca4b9e Lint fix: add missing space
  211639. .IP \(bu 2
  211640. 5597b1a30e Skip 2 failing tests in Python 3 due to upstream bugs
  211641. .IP \(bu 2
  211642. a0b19bdc27 Update account id value in boto_secgroup module unit test
  211643. .IP \(bu 2
  211644. 60b406e088 @mock_elb needs to be changed to @mock_elb_deprecated as well
  211645. .IP \(bu 2
  211646. 6ae1111295 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  211647. .UNINDENT
  211648. .IP \(bu 2
  211649. \fBPR\fP \fI\%#42944\fP: (\fI\%Ch3LL\fP) [2016.11] Add clean_id function to salt.utils.verify.py
  211650. @ \fI2017\-08\-15 18:06:12 UTC\fP
  211651. .INDENT 2.0
  211652. .IP \(bu 2
  211653. 6366e05d0d Merge pull request \fI\%#42944\fP from Ch3LL/2016.11.6_follow_up
  211654. .IP \(bu 2
  211655. 7e0a20afca Add release notes for 2016.11.7 release
  211656. .IP \(bu 2
  211657. 63823f8c3e Add clean_id function to salt.utils.verify.py
  211658. .UNINDENT
  211659. .IP \(bu 2
  211660. \fBPR\fP \fI\%#42952\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest and previous versions
  211661. @ \fI2017\-08\-15 17:23:02 UTC\fP
  211662. .INDENT 2.0
  211663. .IP \(bu 2
  211664. 49d339c976 Merge pull request \fI\%#42952\fP from Ch3LL/latest_2016.11
  211665. .IP \(bu 2
  211666. 74e7055d54 [2016.11] Bump latest and previous versions
  211667. .UNINDENT
  211668. .IP \(bu 2
  211669. \fBPR\fP \fI\%#42950\fP: (\fI\%Ch3LL\fP) Add Security Notice to 2016.11.7 Release Notes
  211670. @ \fI2017\-08\-15 16:50:23 UTC\fP
  211671. .INDENT 2.0
  211672. .IP \(bu 2
  211673. b0d2e05a79 Merge pull request \fI\%#42950\fP from Ch3LL/2016.11.7_docs
  211674. .IP \(bu 2
  211675. a6f902db40 Add Security Notice to 2016.11.77 Release Notes
  211676. .UNINDENT
  211677. .IP \(bu 2
  211678. \fBPR\fP \fI\%#42836\fP: (\fI\%aneeshusa\fP) Backport salt.utils.versions from develop to 2016.11
  211679. @ \fI2017\-08\-14 20:56:54 UTC\fP
  211680. .INDENT 2.0
  211681. .IP \(bu 2
  211682. \fBPR\fP \fI\%#42835\fP: (\fI\%aneeshusa\fP) Fix typo in utils/versions.py module (refs: \fI\%#42836\fP)
  211683. .IP \(bu 2
  211684. c0ff69f88c Merge pull request \fI\%#42836\fP from lyft/backport\-utils.versions\-to\-2016.11
  211685. .IP \(bu 2
  211686. 86ce7004a2 Backport salt.utils.versions from develop to 2016.11
  211687. .UNINDENT
  211688. .IP \(bu 2
  211689. \fBPR\fP \fI\%#42919\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42871\fP to 2016.11
  211690. @ \fI2017\-08\-14 20:44:00 UTC\fP
  211691. .INDENT 2.0
  211692. .IP \(bu 2
  211693. \fBPR\fP \fI\%#42871\fP: (\fI\%amalleo25\fP) Update joyent.rst (refs: \fI\%#42919\fP)
  211694. .IP \(bu 2
  211695. 64a79dd5ac Merge pull request \fI\%#42919\fP from rallytime/bp\-42871
  211696. .IP \(bu 2
  211697. 4e46c968e6 Update joyent.rst
  211698. .UNINDENT
  211699. .IP \(bu 2
  211700. \fBISSUE\fP \fI\%#42803\fP: (\fI\%gmcwhistler\fP) master_type: str, not working as expected, parent salt\-minion process dies. (refs: \fI\%#42848\fP)
  211701. .IP \(bu 2
  211702. \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)
  211703. .IP \(bu 2
  211704. \fBPR\fP \fI\%#42918\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42848\fP to 2016.11
  211705. @ \fI2017\-08\-14 20:43:43 UTC\fP
  211706. .INDENT 2.0
  211707. .IP \(bu 2
  211708. \fBPR\fP \fI\%#42848\fP: (\fI\%DmitryKuzmenko\fP) Execute fire_master asynchronously in the main minion thread. (refs: \fI\%#42918\fP)
  211709. .IP \(bu 2
  211710. bea8ec1098 Merge pull request \fI\%#42918\fP from rallytime/bp\-42848
  211711. .IP \(bu 2
  211712. cdb48126f7 Make lint happier.
  211713. .IP \(bu 2
  211714. 62eca9b00b Execute fire_master asynchronously in the main minion thread.
  211715. .UNINDENT
  211716. .IP \(bu 2
  211717. \fBPR\fP \fI\%#42861\fP: (\fI\%twangboy\fP) Fix pkg.install salt\-minion using salt\-call
  211718. @ \fI2017\-08\-14 19:07:22 UTC\fP
  211719. .INDENT 2.0
  211720. .IP \(bu 2
  211721. 52bce329cb Merge pull request \fI\%#42861\fP from twangboy/win_pkg_install_salt
  211722. .IP \(bu 2
  211723. 0d3789f0c6 Fix pkg.install salt\-minion using salt\-call
  211724. .UNINDENT
  211725. .IP \(bu 2
  211726. \fBPR\fP \fI\%#42798\fP: (\fI\%s\-sebastian\fP) Update return data before calling returners
  211727. @ \fI2017\-08\-14 15:51:30 UTC\fP
  211728. .INDENT 2.0
  211729. .IP \(bu 2
  211730. b9f4f87aa5 Merge pull request \fI\%#42798\fP from s\-sebastian/2016.11
  211731. .IP \(bu 2
  211732. 1cc86592ed Update return data before calling returners
  211733. .UNINDENT
  211734. .IP \(bu 2
  211735. \fBISSUE\fP \fI\%#41976\fP: (\fI\%abulford\fP) dockerng network states do not respect test=True (refs: \fI\%#41977\fP)
  211736. .IP \(bu 2
  211737. \fBPR\fP \fI\%#41977\fP: (\fI\%abulford\fP) Fix dockerng.network_* ignoring of tests=True
  211738. @ \fI2017\-08\-11 18:37:20 UTC\fP
  211739. .INDENT 2.0
  211740. .IP \(bu 2
  211741. c15d0034fe Merge pull request \fI\%#41977\fP from redmatter/fix\-dockerng\-network\-ignores\-test
  211742. .IP \(bu 2
  211743. 1cc2aa503a Fix dockerng.network_* ignoring of tests=True
  211744. .UNINDENT
  211745. .IP \(bu 2
  211746. \fBPR\fP \fI\%#42886\fP: (\fI\%sarcasticadmin\fP) Adding missing output flags to salt cli docs
  211747. @ \fI2017\-08\-11 18:35:19 UTC\fP
  211748. .INDENT 2.0
  211749. .IP \(bu 2
  211750. 3b9c3c5671 Merge pull request \fI\%#42886\fP from sarcasticadmin/adding_docs_salt_outputs
  211751. .IP \(bu 2
  211752. 744bf954ff Adding missing output flags to salt cli
  211753. .UNINDENT
  211754. .IP \(bu 2
  211755. \fBPR\fP \fI\%#42882\fP: (\fI\%gtmanfred\fP) make sure cmd is not run when npm isn\(aqt installed
  211756. @ \fI2017\-08\-11 17:53:14 UTC\fP
  211757. .INDENT 2.0
  211758. .IP \(bu 2
  211759. e5b98c8a88 Merge pull request \fI\%#42882\fP from gtmanfred/2016.11
  211760. .IP \(bu 2
  211761. da3402a53d make sure cmd is not run when npm isn\(aqt installed
  211762. .UNINDENT
  211763. .IP \(bu 2
  211764. \fBPR\fP \fI\%#42788\fP: (\fI\%amendlik\fP) Remove waits and retries from Saltify deployment
  211765. @ \fI2017\-08\-11 15:38:05 UTC\fP
  211766. .INDENT 2.0
  211767. .IP \(bu 2
  211768. 5962c9588b Merge pull request \fI\%#42788\fP from amendlik/saltify\-timeout
  211769. .IP \(bu 2
  211770. 928b523797 Remove waits and retries from Saltify deployment
  211771. .UNINDENT
  211772. .IP \(bu 2
  211773. \fBPR\fP \fI\%#42877\fP: (\fI\%terminalmage\fP) Add virtual func for cron state module
  211774. @ \fI2017\-08\-11 15:33:09 UTC\fP
  211775. .INDENT 2.0
  211776. .IP \(bu 2
  211777. 227ecddd13 Merge pull request \fI\%#42877\fP from terminalmage/add\-cron\-state\-virtual
  211778. .IP \(bu 2
  211779. f1de196740 Add virtual func for cron state module
  211780. .UNINDENT
  211781. .IP \(bu 2
  211782. \fBPR\fP \fI\%#42859\fP: (\fI\%terminalmage\fP) Add note about git CLI requirement for GitPython to GitFS tutorial
  211783. @ \fI2017\-08\-11 14:53:03 UTC\fP
  211784. .INDENT 2.0
  211785. .IP \(bu 2
  211786. ab9f6cef33 Merge pull request \fI\%#42859\fP from terminalmage/gitpython\-git\-cli\-note
  211787. .IP \(bu 2
  211788. 35e05c9515 Add note about git CLI requirement for GitPython to GitFS tutorial
  211789. .UNINDENT
  211790. .IP \(bu 2
  211791. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#475\fP: (\fI\%rallytime\fP) Arch is failing npm cache test (refs: \fI\%#42856\fP)
  211792. .IP \(bu 2
  211793. \fBISSUE\fP \fI\%#41770\fP: (\fI\%Ch3LL\fP) NPM v5 incompatible with salt.modules.cache_list (refs: \fI\%#42856\fP)
  211794. .IP \(bu 2
  211795. \fBPR\fP \fI\%#42856\fP: (\fI\%gtmanfred\fP) skip cache_clean test if npm version is >= 5.0.0
  211796. @ \fI2017\-08\-11 13:39:20 UTC\fP
  211797. .INDENT 2.0
  211798. .IP \(bu 2
  211799. 682b4a8d14 Merge pull request \fI\%#42856\fP from gtmanfred/2016.11
  211800. .IP \(bu 2
  211801. b458b89fb8 skip cache_clean test if npm version is >= 5.0.0
  211802. .UNINDENT
  211803. .IP \(bu 2
  211804. \fBPR\fP \fI\%#42864\fP: (\fI\%whiteinge\fP) Make syndic_log_file respect root_dir setting
  211805. @ \fI2017\-08\-11 13:28:21 UTC\fP
  211806. .INDENT 2.0
  211807. .IP \(bu 2
  211808. 01ea854029 Merge pull request \fI\%#42864\fP from whiteinge/syndic\-log\-root_dir
  211809. .IP \(bu 2
  211810. 4b1f55da9c Make syndic_log_file respect root_dir setting
  211811. .UNINDENT
  211812. .IP \(bu 2
  211813. \fBPR\fP \fI\%#42851\fP: (\fI\%terminalmage\fP) Backport \fI\%#42651\fP to 2016.11
  211814. @ \fI2017\-08\-10 18:02:39 UTC\fP
  211815. .INDENT 2.0
  211816. .IP \(bu 2
  211817. \fBPR\fP \fI\%#42651\fP: (\fI\%gtmanfred\fP) python2\- prefix for fedora 26 packages (refs: \fI\%#42851\fP)
  211818. .IP \(bu 2
  211819. 2dde1f77e9 Merge pull request \fI\%#42851\fP from terminalmage/bp\-42651
  211820. .IP \(bu 2
  211821. a3da86eea8 fix syntax
  211822. .IP \(bu 2
  211823. 6ecdbcec1d make sure names are correct
  211824. .IP \(bu 2
  211825. f83b553d6e add py3 for versionlock
  211826. .IP \(bu 2
  211827. 21934f61bb python2\- prefix for fedora 26 packages
  211828. .UNINDENT
  211829. .IP \(bu 2
  211830. \fBISSUE\fP \fI\%#42683\fP: (\fI\%rgcosma\fP) Gluster module broken in 2017.7 (refs: \fI\%#42806\fP)
  211831. .IP \(bu 2
  211832. \fBPR\fP \fI\%#42806\fP: (\fI\%rallytime\fP) Update doc references in glusterfs.volume_present
  211833. @ \fI2017\-08\-10 14:10:16 UTC\fP
  211834. .INDENT 2.0
  211835. .IP \(bu 2
  211836. c746f79a3a Merge pull request \fI\%#42806\fP from rallytime/fix\-42683
  211837. .IP \(bu 2
  211838. 8c8640d6b8 Update doc references in glusterfs.volume_present
  211839. .UNINDENT
  211840. .IP \(bu 2
  211841. \fBPR\fP \fI\%#42829\fP: (\fI\%twangboy\fP) Fix passing version in pkgs as shown in docs
  211842. @ \fI2017\-08\-10 14:07:24 UTC\fP
  211843. .INDENT 2.0
  211844. .IP \(bu 2
  211845. 27a8a2695a Merge pull request \fI\%#42829\fP from twangboy/win_pkg_fix_install
  211846. .IP \(bu 2
  211847. 83b9b230cd Add winrepo to docs about supporting versions in pkgs
  211848. .IP \(bu 2
  211849. 81fefa6e67 Add ability to pass version in pkgs list
  211850. .UNINDENT
  211851. .IP \(bu 2
  211852. \fBPR\fP \fI\%#42838\fP: (\fI\%twangboy\fP) Document requirements for win_pki
  211853. @ \fI2017\-08\-10 13:59:46 UTC\fP
  211854. .INDENT 2.0
  211855. .IP \(bu 2
  211856. 3c3ac6aeb2 Merge pull request \fI\%#42838\fP from twangboy/win_doc_pki
  211857. .IP \(bu 2
  211858. f0a1d06b46 Standardize PKI Client
  211859. .IP \(bu 2
  211860. 7de687aa57 Document requirements for win_pki
  211861. .UNINDENT
  211862. .IP \(bu 2
  211863. \fBPR\fP \fI\%#42805\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42552\fP to 2016.11
  211864. @ \fI2017\-08\-09 22:37:56 UTC\fP
  211865. .INDENT 2.0
  211866. .IP \(bu 2
  211867. \fBPR\fP \fI\%#42552\fP: (\fI\%remijouannet\fP) update consul module following this documentation \fI\%https://www.consul\fP\&.… (refs: \fI\%#42805\fP)
  211868. .IP \(bu 2
  211869. b3e2ae3c58 Merge pull request \fI\%#42805\fP from rallytime/bp\-42552
  211870. .IP \(bu 2
  211871. 5a91c1f2d1 update consul module following this documentation \fI\%https://www.consul.io/api/acl/acl.html\fP
  211872. .UNINDENT
  211873. .IP \(bu 2
  211874. \fBISSUE\fP \fI\%#42731\fP: (\fI\%infoveinx\fP) http.query template_data render exception (refs: \fI\%#42804\fP)
  211875. .IP \(bu 2
  211876. \fBPR\fP \fI\%#42804\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42784\fP to 2016.11
  211877. @ \fI2017\-08\-09 22:37:40 UTC\fP
  211878. .INDENT 2.0
  211879. .IP \(bu 2
  211880. \fBPR\fP \fI\%#42784\fP: (\fI\%gtmanfred\fP) only read file if ret is not a string in http.query (refs: \fI\%#42804\fP)
  211881. .IP \(bu 2
  211882. d2ee7934ed Merge pull request \fI\%#42804\fP from rallytime/bp\-42784
  211883. .IP \(bu 2
  211884. dbd29e4aaa only read file if it is not a string
  211885. .UNINDENT
  211886. .IP \(bu 2
  211887. \fBPR\fP \fI\%#42826\fP: (\fI\%terminalmage\fP) Fix misspelling of "versions"
  211888. @ \fI2017\-08\-09 19:39:43 UTC\fP
  211889. .INDENT 2.0
  211890. .IP \(bu 2
  211891. 4cbf8057b3 Merge pull request \fI\%#42826\fP from terminalmage/fix\-spelling
  211892. .IP \(bu 2
  211893. 00f93142e4 Fix misspelling of "versions"
  211894. .UNINDENT
  211895. .IP \(bu 2
  211896. \fBPR\fP \fI\%#42786\fP: (\fI\%Ch3LL\fP) Fix typo for template_dict in http docs
  211897. @ \fI2017\-08\-08 18:14:50 UTC\fP
  211898. .INDENT 2.0
  211899. .IP \(bu 2
  211900. de997edd90 Merge pull request \fI\%#42786\fP from Ch3LL/fix_typo
  211901. .IP \(bu 2
  211902. 90a2fb66a2 Fix typo for template_dict in http docs
  211903. .UNINDENT
  211904. .IP \(bu 2
  211905. \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)
  211906. .IP \(bu 2
  211907. \fBPR\fP \fI\%#42795\fP: (\fI\%lomeroe\fP) backport \fI\%#42744\fP to 2016.11
  211908. @ \fI2017\-08\-08 17:17:15 UTC\fP
  211909. .INDENT 2.0
  211910. .IP \(bu 2
  211911. \fBPR\fP \fI\%#42744\fP: (\fI\%lomeroe\fP) fix \fI\%#42600\fP in develop (refs: \fI\%#42795\fP)
  211912. .IP \(bu 2
  211913. bf6153ebe5 Merge pull request \fI\%#42795\fP from lomeroe/bp\-42744_201611
  211914. .IP \(bu 2
  211915. 695f8c1ae4 fix \fI\%#42600\fP in develop
  211916. .UNINDENT
  211917. .IP \(bu 2
  211918. \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)
  211919. .IP \(bu 2
  211920. \fBPR\fP \fI\%#42748\fP: (\fI\%whiteinge\fP) Workaround Orchestrate problem that highstate outputter mutates data
  211921. @ \fI2017\-08\-07 21:11:33 UTC\fP
  211922. .INDENT 2.0
  211923. .IP \(bu 2
  211924. 61fad97286 Merge pull request \fI\%#42748\fP from whiteinge/save\-before\-output
  211925. .IP \(bu 2
  211926. de60b77c82 Workaround Orchestrate problem that highstate outputter mutates data
  211927. .UNINDENT
  211928. .IP \(bu 2
  211929. \fBPR\fP \fI\%#42764\fP: (\fI\%amendlik\fP) Fix infinite loop with salt\-cloud and Windows nodes
  211930. @ \fI2017\-08\-07 20:47:07 UTC\fP
  211931. .INDENT 2.0
  211932. .IP \(bu 2
  211933. a4e3e7e786 Merge pull request \fI\%#42764\fP from amendlik/cloud\-win\-loop
  211934. .IP \(bu 2
  211935. f3dcfca4e0 Fix infinite loops on failed Windows deployments
  211936. .UNINDENT
  211937. .IP \(bu 2
  211938. \fBISSUE\fP \fI\%#42690\fP: (\fI\%ChristianBeer\fP) git.latest state with remote set fails on first try (refs: \fI\%#42694\fP)
  211939. .IP \(bu 2
  211940. \fBPR\fP \fI\%#42694\fP: (\fI\%gtmanfred\fP) allow adding extra remotes to a repository
  211941. @ \fI2017\-08\-07 18:08:11 UTC\fP
  211942. .INDENT 2.0
  211943. .IP \(bu 2
  211944. da85326ad4 Merge pull request \fI\%#42694\fP from gtmanfred/2016.11
  211945. .IP \(bu 2
  211946. 1a0457af51 allow adding extra remotes to a repository
  211947. .UNINDENT
  211948. .IP \(bu 2
  211949. \fBISSUE\fP \fI\%#42642\fP: (\fI\%githubcdr\fP) state.augeas (refs: \fI\%#42669\fP, \fI\%#43202\fP)
  211950. .IP \(bu 2
  211951. \fBPR\fP \fI\%#42669\fP: (\fI\%garethgreenaway\fP) [2016.11] Fixes to augeas module
  211952. @ \fI2017\-08\-06 17:58:03 UTC\fP
  211953. .INDENT 2.0
  211954. .IP \(bu 2
  211955. 7b2119feee Merge pull request \fI\%#42669\fP from garethgreenaway/42642_2016_11_augeas_module_fix
  211956. .IP \(bu 2
  211957. 24413084e2 Updating the call to shlex_split to pass the posix=False argument so that quotes are preserved.
  211958. .UNINDENT
  211959. .IP \(bu 2
  211960. \fBPR\fP \fI\%#42629\fP: (\fI\%xiaoanyunfei\fP) tornado api
  211961. @ \fI2017\-08\-03 22:21:20 UTC\fP
  211962. .INDENT 2.0
  211963. .IP \(bu 2
  211964. 30725769ed Merge pull request \fI\%#42629\fP from xiaoanyunfei/tornadoapi
  211965. .IP \(bu 2
  211966. 1e13383b95 tornado api
  211967. .UNINDENT
  211968. .IP \(bu 2
  211969. \fBPR\fP \fI\%#42655\fP: (\fI\%whiteinge\fP) Reenable cpstats for rest_cherrypy
  211970. @ \fI2017\-08\-03 20:44:10 UTC\fP
  211971. .INDENT 2.0
  211972. .IP \(bu 2
  211973. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug (refs: \fI\%#42655\fP)
  211974. .IP \(bu 2
  211975. f0f00fcee1 Merge pull request \fI\%#42655\fP from whiteinge/rest_cherrypy\-reenable\-stats
  211976. .IP \(bu 2
  211977. deb6316d67 Fix lint errors
  211978. .IP \(bu 2
  211979. 6bd91c8b03 Reenable cpstats for rest_cherrypy
  211980. .UNINDENT
  211981. .IP \(bu 2
  211982. \fBISSUE\fP \fI\%#42686\fP: (\fI\%gilbsgilbs\fP) Unable to set multiple RabbitMQ tags (refs: \fI\%#42693\fP)
  211983. .IP \(bu 2
  211984. \fBPR\fP \fI\%#42693\fP: (\fI\%gilbsgilbs\fP) Fix RabbitMQ tags not properly set.
  211985. @ \fI2017\-08\-03 20:23:08 UTC\fP
  211986. .INDENT 2.0
  211987. .IP \(bu 2
  211988. 21cf15f9c3 Merge pull request \fI\%#42693\fP from gilbsgilbs/fix\-rabbitmq\-tags
  211989. .IP \(bu 2
  211990. 78fccdc7e2 Cast to list in case tags is a tuple.
  211991. .IP \(bu 2
  211992. 287b57b5c5 Fix RabbitMQ tags not properly set.
  211993. .UNINDENT
  211994. .IP \(bu 2
  211995. \fBISSUE\fP \fI\%#41433\fP: (\fI\%sbojarski\fP) boto_cfn.present fails when reporting error for failed state (refs: \fI\%#42574\fP)
  211996. .IP \(bu 2
  211997. \fBPR\fP \fI\%#42574\fP: (\fI\%sbojarski\fP) Fixed error reporting in "boto_cfn.present" function.
  211998. @ \fI2017\-08\-01 17:55:29 UTC\fP
  211999. .INDENT 2.0
  212000. .IP \(bu 2
  212001. f2b0c9b4fa Merge pull request \fI\%#42574\fP from sbojarski/boto\-cfn\-error\-reporting
  212002. .IP \(bu 2
  212003. 5c945f10c2 Fix debug message in "boto_cfn._validate" function.
  212004. .IP \(bu 2
  212005. 181a1beecc Fixed error reporting in "boto_cfn.present" function.
  212006. .UNINDENT
  212007. .IP \(bu 2
  212008. \fBPR\fP \fI\%#42623\fP: (\fI\%terminalmage\fP) Fix unicode constructor in custom YAML loader
  212009. @ \fI2017\-07\-31 19:25:18 UTC\fP
  212010. .INDENT 2.0
  212011. .IP \(bu 2
  212012. bc1effc4f2 Merge pull request \fI\%#42623\fP from terminalmage/fix\-unicode\-constructor
  212013. .IP \(bu 2
  212014. fcf45889dd Fix unicode constructor in custom YAML loader
  212015. .UNINDENT
  212016. .IP \(bu 2
  212017. \fBPR\fP \fI\%#42515\fP: (\fI\%gtmanfred\fP) Allow not interpreting backslashes in the repl
  212018. @ \fI2017\-07\-28 16:00:09 UTC\fP
  212019. .INDENT 2.0
  212020. .IP \(bu 2
  212021. cbf752cd73 Merge pull request \fI\%#42515\fP from gtmanfred/backslash
  212022. .IP \(bu 2
  212023. cc4e45656d Allow not interpreting backslashes in the repl
  212024. .UNINDENT
  212025. .IP \(bu 2
  212026. \fBISSUE\fP \fI\%#42456\fP: (\fI\%gdubroeucq\fP) Use yum lib (refs: \fI\%#42586\fP)
  212027. .IP \(bu 2
  212028. \fBPR\fP \fI\%#42586\fP: (\fI\%gdubroeucq\fP) [Fix] yumpkg.py: add option to the command "check\-update"
  212029. @ \fI2017\-07\-27 23:52:00 UTC\fP
  212030. .INDENT 2.0
  212031. .IP \(bu 2
  212032. 549495831f Merge pull request \fI\%#42586\fP from gdubroeucq/2016.11
  212033. .IP \(bu 2
  212034. 9c0b5cc1d6 Remove extra newline
  212035. .IP \(bu 2
  212036. d2ef4483e4 yumpkg.py: clean
  212037. .IP \(bu 2
  212038. a96f7c09e0 yumpkg.py: add option to the command "check\-update"
  212039. .UNINDENT
  212040. .IP \(bu 2
  212041. \fBISSUE\fP \fI\%#41982\fP: (\fI\%abulford\fP) dockerng.network_* matches too easily (refs: \fI\%#41988\fP)
  212042. .IP \(bu 2
  212043. \fBPR\fP \fI\%#41988\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching
  212044. @ \fI2017\-07\-27 21:25:06 UTC\fP
  212045. .INDENT 2.0
  212046. .IP \(bu 2
  212047. 6b45debf28 Merge pull request \fI\%#41988\fP from redmatter/fix\-dockerng\-network\-matching
  212048. .IP \(bu 2
  212049. 9eea796da8 Add regression tests for \fI\%#41982\fP
  212050. .IP \(bu 2
  212051. 3369f0072f Fix broken unit test test_network_absent
  212052. .IP \(bu 2
  212053. 0ef6cf634c Add trace logging of dockerng.networks result
  212054. .IP \(bu 2
  212055. 515c612808 Fix dockerng.network_* name matching
  212056. .UNINDENT
  212057. .IP \(bu 2
  212058. \fBPR\fP \fI\%#42339\fP: (\fI\%isbm\fP) Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  212059. @ \fI2017\-07\-27 19:05:51 UTC\fP
  212060. .INDENT 2.0
  212061. .IP \(bu 2
  212062. 4b16109122 Merge pull request \fI\%#42339\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-bsc1036125
  212063. .IP \(bu 2
  212064. bbba84ce2d Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  212065. .UNINDENT
  212066. .IP \(bu 2
  212067. \fBISSUE\fP \fI\%#23516\fP: (\fI\%dkiser\fP) BUG: cron job scheduler sporadically works (refs: \fI\%#42077\fP)
  212068. .IP \(bu 2
  212069. \fBPR\fP \fI\%#42077\fP: (\fI\%vutny\fP) Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  212070. @ \fI2017\-07\-27 19:04:23 UTC\fP
  212071. .INDENT 2.0
  212072. .IP \(bu 2
  212073. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  212074. .IP \(bu 2
  212075. 6c5a7c604a Merge pull request \fI\%#42077\fP from vutny/fix\-jobs\-scheduled\-with\-whens
  212076. .IP \(bu 2
  212077. b1960cea44 Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  212078. .UNINDENT
  212079. .IP \(bu 2
  212080. \fBPR\fP \fI\%#42414\fP: (\fI\%vutny\fP) DOCS: unify hash sum with hash type format
  212081. @ \fI2017\-07\-27 18:48:40 UTC\fP
  212082. .INDENT 2.0
  212083. .IP \(bu 2
  212084. f9cb536589 Merge pull request \fI\%#42414\fP from vutny/unify\-hash\-params\-format
  212085. .IP \(bu 2
  212086. d1f2a93368 DOCS: unify hash sum with hash type format
  212087. .UNINDENT
  212088. .IP \(bu 2
  212089. \fBISSUE\fP \fI\%#42375\fP: (\fI\%dragonpaw\fP) salt.modules.*.__virtualname__ doens\(aqt work as documented. (refs: \fI\%#42523\fP)
  212090. .IP \(bu 2
  212091. \fBPR\fP \fI\%#42523\fP: (\fI\%rallytime\fP) Add a mention of the True/False returns with __virtual__()
  212092. @ \fI2017\-07\-27 18:13:07 UTC\fP
  212093. .INDENT 2.0
  212094. .IP \(bu 2
  212095. 535c922511 Merge pull request \fI\%#42523\fP from rallytime/fix\-42375
  212096. .IP \(bu 2
  212097. 685c2cced6 Add information about returning a tuple with an error message
  212098. .IP \(bu 2
  212099. fa466519c4 Add a mention of the True/False returns with __virtual__()
  212100. .UNINDENT
  212101. .IP \(bu 2
  212102. \fBPR\fP \fI\%#42527\fP: (\fI\%twangboy\fP) Document changes to Windows Update in Windows 10/Server 2016
  212103. @ \fI2017\-07\-27 17:45:38 UTC\fP
  212104. .INDENT 2.0
  212105. .IP \(bu 2
  212106. 0df0e7e749 Merge pull request \fI\%#42527\fP from twangboy/win_wua
  212107. .IP \(bu 2
  212108. 0373791f2a Correct capatlization
  212109. .IP \(bu 2
  212110. af3bcc927b Document changes to Windows Update in 10/2016
  212111. .UNINDENT
  212112. .IP \(bu 2
  212113. \fBPR\fP \fI\%#42551\fP: (\fI\%binocvlar\fP) Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  212114. @ \fI2017\-07\-27 17:35:31 UTC\fP
  212115. .INDENT 2.0
  212116. .IP \(bu 2
  212117. 69b06586da Merge pull request \fI\%#42551\fP from binocvlar/fix\-lack\-of\-align\-check\-output
  212118. .IP \(bu 2
  212119. c4fabaa192 Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  212120. .UNINDENT
  212121. .IP \(bu 2
  212122. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  212123. .IP \(bu 2
  212124. \fBPR\fP \fI\%#42573\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42433\fP to 2016.11
  212125. @ \fI2017\-07\-27 13:51:21 UTC\fP
  212126. .INDENT 2.0
  212127. .IP \(bu 2
  212128. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42573\fP)
  212129. .IP \(bu 2
  212130. 9e0b4e9faf Merge pull request \fI\%#42573\fP from rallytime/bp\-42433
  212131. .IP \(bu 2
  212132. 0293429e24 Only force saltenv/pillarenv to be a string when not None
  212133. .UNINDENT
  212134. .IP \(bu 2
  212135. \fBPR\fP \fI\%#42571\fP: (\fI\%twangboy\fP) Avoid loading system PYTHON* environment vars
  212136. @ \fI2017\-07\-26 22:48:55 UTC\fP
  212137. .INDENT 2.0
  212138. .IP \(bu 2
  212139. e931ed2517 Merge pull request \fI\%#42571\fP from twangboy/win_add_pythonpath
  212140. .IP \(bu 2
  212141. d55a44dd1a Avoid loading user site packages
  212142. .IP \(bu 2
  212143. 9af1eb2741 Ignore any PYTHON* environment vars already on the system
  212144. .IP \(bu 2
  212145. 4e2fb03a95 Add pythonpath to batch files and service
  212146. .UNINDENT
  212147. .IP \(bu 2
  212148. \fBISSUE\fP \fI\%#42371\fP: (\fI\%tsaridas\fP) Minion unresponsive after trying to failover (refs: \fI\%#42387\fP)
  212149. .IP \(bu 2
  212150. \fBPR\fP \fI\%#42387\fP: (\fI\%DmitryKuzmenko\fP) Fix race condition in usage of weakvaluedict
  212151. @ \fI2017\-07\-25 20:57:42 UTC\fP
  212152. .INDENT 2.0
  212153. .IP \(bu 2
  212154. de2f397041 Merge pull request \fI\%#42387\fP from DSRCorporation/bugs/42371_KeyError_WeakValueDict
  212155. .IP \(bu 2
  212156. e721c7eee2 Don\(aqt use \fIkey in weakvaluedict\fP because it could lie.
  212157. .UNINDENT
  212158. .IP \(bu 2
  212159. \fBISSUE\fP \fI\%#41955\fP: (\fI\%root360\-AndreasUlm\fP) rabbitmq 3.6.10 changed output => rabbitmq\-module broken (refs: \fI\%#41968\fP)
  212160. .IP \(bu 2
  212161. \fBPR\fP \fI\%#41968\fP: (\fI\%root360\-AndreasUlm\fP) Fix rabbitmqctl output sanitizer for version 3.6.10
  212162. @ \fI2017\-07\-25 19:12:36 UTC\fP
  212163. .INDENT 2.0
  212164. .IP \(bu 2
  212165. 641a9d7efd Merge pull request \fI\%#41968\fP from root360\-AndreasUlm/fix\-rabbitmqctl\-output\-handler
  212166. .IP \(bu 2
  212167. 76fd941d91 added tests for rabbitmq 3.6.10 output handler
  212168. .IP \(bu 2
  212169. 3602af1e1b Fix rabbitmqctl output handler for 3.6.10
  212170. .UNINDENT
  212171. .IP \(bu 2
  212172. \fBISSUE\fP \fI\%#42477\fP: (\fI\%aikar\fP) Invalid ssh_interface value prevents salt\-cloud provisioning without reason of why (refs: \fI\%#42479\fP)
  212173. .IP \(bu 2
  212174. \fBPR\fP \fI\%#42479\fP: (\fI\%gtmanfred\fP) validate ssh_interface for ec2
  212175. @ \fI2017\-07\-25 18:37:18 UTC\fP
  212176. .INDENT 2.0
  212177. .IP \(bu 2
  212178. 66fede378a Merge pull request \fI\%#42479\fP from gtmanfred/interface
  212179. .IP \(bu 2
  212180. c32c1b2803 fix pylint
  212181. .IP \(bu 2
  212182. 99ec634c6b validate ssh_interface for ec2
  212183. .UNINDENT
  212184. .IP \(bu 2
  212185. \fBISSUE\fP \fI\%#42405\fP: (\fI\%felrivero\fP) The documentation is incorrectly compiled (PILLAR section) (refs: \fI\%#42516\fP)
  212186. .IP \(bu 2
  212187. \fBPR\fP \fI\%#42516\fP: (\fI\%rallytime\fP) Add info about top file to pillar walk\-through example to include edit.vim
  212188. @ \fI2017\-07\-25 17:01:12 UTC\fP
  212189. .INDENT 2.0
  212190. .IP \(bu 2
  212191. a925c7029a Merge pull request \fI\%#42516\fP from rallytime/fix\-42405
  212192. .IP \(bu 2
  212193. e3a6717efa Add info about top file to pillar walk\-through example to include edit.vim
  212194. .UNINDENT
  212195. .IP \(bu 2
  212196. \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)
  212197. .IP \(bu 2
  212198. \fBPR\fP \fI\%#42509\fP: (\fI\%clem\-compilatio\fP) Fix _assign_floating_ips in openstack.py
  212199. @ \fI2017\-07\-24 17:14:13 UTC\fP
  212200. .INDENT 2.0
  212201. .IP \(bu 2
  212202. 1bd5bbccc2 Merge pull request \fI\%#42509\fP from clem\-compilatio/fix\-42417
  212203. .IP \(bu 2
  212204. 72924b06b8 Fix _assign_floating_ips in openstack.py
  212205. .UNINDENT
  212206. .IP \(bu 2
  212207. \fBPR\fP \fI\%#42464\fP: (\fI\%garethgreenaway\fP) [2016.11] Small fix to modules/git.py
  212208. @ \fI2017\-07\-21 21:28:57 UTC\fP
  212209. .INDENT 2.0
  212210. .IP \(bu 2
  212211. 4bf35a74de Merge pull request \fI\%#42464\fP from garethgreenaway/2016_11_remove_tmp_identity_file
  212212. .IP \(bu 2
  212213. ff24102d51 Uncomment the line that removes the temporary identity file.
  212214. .UNINDENT
  212215. .IP \(bu 2
  212216. \fBISSUE\fP \fI\%#42357\fP: (\fI\%Giandom\fP) Salt pillarenv problem with slack engine (refs: \fI\%#42443\fP)
  212217. .IP \(bu 2
  212218. \fBPR\fP \fI\%#42443\fP: (\fI\%garethgreenaway\fP) [2016.11] Fix to slack engine
  212219. @ \fI2017\-07\-21 15:48:57 UTC\fP
  212220. .INDENT 2.0
  212221. .IP \(bu 2
  212222. e2120dbd0e Merge pull request \fI\%#42443\fP from garethgreenaway/42357_pass_args_kwargs_correctly
  212223. .IP \(bu 2
  212224. 635810b3e3 Updating the slack engine in 2016.11 to pass the args and kwrags correctly to LocalClient
  212225. .UNINDENT
  212226. .IP \(bu 2
  212227. \fBISSUE\fP \fI\%#42198\fP: (\fI\%shengis\fP) state sqlite3.row_absent fail with "parameters are of unsupported type" (refs: \fI\%#42200\fP)
  212228. .IP \(bu 2
  212229. \fBPR\fP \fI\%#42200\fP: (\fI\%shengis\fP) Fix \fI\%#42198\fP
  212230. @ \fI2017\-07\-21 14:47:29 UTC\fP
  212231. .INDENT 2.0
  212232. .IP \(bu 2
  212233. 8262cc9054 Merge pull request \fI\%#42200\fP from shengis/sqlite3_fix_row_absent_2016.11
  212234. .IP \(bu 2
  212235. 407b8f4bb3 Fix \fI\%#42198\fP If where_args is not set, not using it in the delete request.
  212236. .UNINDENT
  212237. .IP \(bu 2
  212238. \fBISSUE\fP \fI\%#42413\fP: (\fI\%goten4\fP) Invalid error message when proxy_host is set and tornado not installed (refs: \fI\%#42424\fP)
  212239. .IP \(bu 2
  212240. \fBPR\fP \fI\%#42424\fP: (\fI\%goten4\fP) Fix error message when tornado or pycurl is not installed
  212241. @ \fI2017\-07\-20 21:53:40 UTC\fP
  212242. .INDENT 2.0
  212243. .IP \(bu 2
  212244. d9df97e5a3 Merge pull request \fI\%#42424\fP from goten4/2016.11
  212245. .IP \(bu 2
  212246. 1c0574d05e Fix error message when tornado or pycurl is not installed
  212247. .UNINDENT
  212248. .IP \(bu 2
  212249. \fBPR\fP \fI\%#42350\fP: (\fI\%twangboy\fP) Fixes problem with Version and OS Release related grains on certain versions of Python (2016.11)
  212250. @ \fI2017\-07\-19 17:07:26 UTC\fP
  212251. .INDENT 2.0
  212252. .IP \(bu 2
  212253. 42bb1a64ca Merge pull request \fI\%#42350\fP from twangboy/win_fix_ver_grains_2016.11
  212254. .IP \(bu 2
  212255. 8c048403d7 Detect Server OS with a desktop release name
  212256. .UNINDENT
  212257. .IP \(bu 2
  212258. \fBPR\fP \fI\%#42356\fP: (\fI\%meaksh\fP) Allow to check whether a function is available on the AliasesLoader wrapper
  212259. @ \fI2017\-07\-19 16:56:41 UTC\fP
  212260. .INDENT 2.0
  212261. .IP \(bu 2
  212262. 0a72e56f6b Merge pull request \fI\%#42356\fP from meaksh/2016.11\-AliasesLoader\-wrapper\-fix
  212263. .IP \(bu 2
  212264. 915d94219e Allow to check whether a function is available on the AliasesLoader wrapper
  212265. .UNINDENT
  212266. .IP \(bu 2
  212267. \fBPR\fP \fI\%#42368\fP: (\fI\%twangboy\fP) Remove build and dist directories before install (2016.11)
  212268. @ \fI2017\-07\-19 16:47:28 UTC\fP
  212269. .INDENT 2.0
  212270. .IP \(bu 2
  212271. 10eb7b7a79 Merge pull request \fI\%#42368\fP from twangboy/win_fix_build_2016.11
  212272. .IP \(bu 2
  212273. a7c910c31e Remove build and dist directories before install
  212274. .UNINDENT
  212275. .IP \(bu 2
  212276. \fBPR\fP \fI\%#42370\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  212277. @ \fI2017\-07\-18 22:39:41 UTC\fP
  212278. .INDENT 2.0
  212279. .IP \(bu 2
  212280. 016189f62f Merge pull request \fI\%#42370\fP from rallytime/merge\-2016.11
  212281. .IP \(bu 2
  212282. 0aa5dde1de Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  212283. .IP \(bu 2
  212284. e9b0f20f8a Merge pull request \fI\%#42359\fP from Ch3LL/doc\-update\-2016.3
  212285. .INDENT 2.0
  212286. .IP \(bu 2
  212287. dc85b5edbe [2016.3] Update version numbers in doc config for 2017.7.0 release
  212288. .UNINDENT
  212289. .UNINDENT
  212290. .IP \(bu 2
  212291. \fBPR\fP \fI\%#42360\fP: (\fI\%Ch3LL\fP) [2016.11] Update version numbers in doc config for 2017.7.0 release
  212292. @ \fI2017\-07\-18 19:23:30 UTC\fP
  212293. .INDENT 2.0
  212294. .IP \(bu 2
  212295. f06a6f1796 Merge pull request \fI\%#42360\fP from Ch3LL/doc\-update\-2016.11
  212296. .IP \(bu 2
  212297. b90b7a7506 [2016.11] Update version numbers in doc config for 2017.7.0 release
  212298. .UNINDENT
  212299. .IP \(bu 2
  212300. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#42319\fP)
  212301. .IP \(bu 2
  212302. \fBPR\fP \fI\%#42319\fP: (\fI\%rallytime\fP) Add more documentation for config options that are missing from master/minion docs
  212303. @ \fI2017\-07\-18 18:02:32 UTC\fP
  212304. .INDENT 2.0
  212305. .IP \(bu 2
  212306. e0595b0a0f Merge pull request \fI\%#42319\fP from rallytime/config\-docs
  212307. .IP \(bu 2
  212308. b40f980632 Add more documentation for config options that are missing from master/minion docs
  212309. .UNINDENT
  212310. .IP \(bu 2
  212311. \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)
  212312. .IP \(bu 2
  212313. \fBPR\fP \fI\%#42352\fP: (\fI\%CorvinM\fP) Multiple documentation fixes
  212314. @ \fI2017\-07\-18 15:10:37 UTC\fP
  212315. .INDENT 2.0
  212316. .IP \(bu 2
  212317. 78940400e3 Merge pull request \fI\%#42352\fP from CorvinM/issue42333
  212318. .IP \(bu 2
  212319. 526b6ee14d Multiple documentation fixes
  212320. .UNINDENT
  212321. .IP \(bu 2
  212322. \fBPR\fP \fI\%#42353\fP: (\fI\%terminalmage\fP) is_windows is a function, not a propery/attribute
  212323. @ \fI2017\-07\-18 14:38:51 UTC\fP
  212324. .INDENT 2.0
  212325. .IP \(bu 2
  212326. b256001760 Merge pull request \fI\%#42353\fP from terminalmage/fix\-git\-test
  212327. .IP \(bu 2
  212328. 14cf6ce322 is_windows is a function, not a propery/attribute
  212329. .UNINDENT
  212330. .IP \(bu 2
  212331. \fBISSUE\fP \fI\%#41116\fP: (\fI\%hrumph\fP) FAQ has wrong instructions for upgrading Windows minion. (refs: \fI\%#42264\fP)
  212332. .IP \(bu 2
  212333. \fBPR\fP \fI\%#42264\fP: (\fI\%rallytime\fP) Update minion restart section in FAQ doc for windows
  212334. @ \fI2017\-07\-17 17:40:40 UTC\fP
  212335. .INDENT 2.0
  212336. .IP \(bu 2
  212337. 866a1febb4 Merge pull request \fI\%#42264\fP from rallytime/fix\-41116
  212338. .IP \(bu 2
  212339. bd638880e3 Add mono\-spacing to salt\-minion reference for consistency
  212340. .IP \(bu 2
  212341. 30d62f43da Update minion restart section in FAQ doc for windows
  212342. .UNINDENT
  212343. .IP \(bu 2
  212344. \fBISSUE\fP \fI\%#42194\fP: (\fI\%jryberg\fP) pkg version: latest are now broken, appending <package>\-latest to filename (refs: \fI\%#42275\fP)
  212345. .IP \(bu 2
  212346. \fBPR\fP \fI\%#42275\fP: (\fI\%terminalmage\fP) pkg.installed: pack name/version into pkgs argument
  212347. @ \fI2017\-07\-17 17:38:39 UTC\fP
  212348. .INDENT 2.0
  212349. .IP \(bu 2
  212350. 9a707088ad Merge pull request \fI\%#42275\fP from terminalmage/issue42194
  212351. .IP \(bu 2
  212352. 663874908a pkg.installed: pack name/version into pkgs argument
  212353. .UNINDENT
  212354. .IP \(bu 2
  212355. \fBISSUE\fP \fI\%#41721\fP: (\fI\%sazaro\fP) state.sysrc broken when setting the value to YES or NO (refs: \fI\%#42269\fP)
  212356. .IP \(bu 2
  212357. \fBPR\fP \fI\%#42269\fP: (\fI\%rallytime\fP) Add some clarity to "multiple quotes" section of yaml docs
  212358. @ \fI2017\-07\-17 17:38:18 UTC\fP
  212359. .INDENT 2.0
  212360. .IP \(bu 2
  212361. e588f235e0 Merge pull request \fI\%#42269\fP from rallytime/fix\-41721
  212362. .IP \(bu 2
  212363. f2250d474a Add a note about using different styles of quotes.
  212364. .IP \(bu 2
  212365. 38d9b3d553 Add some clarity to "multiple quotes" section of yaml docs
  212366. .UNINDENT
  212367. .IP \(bu 2
  212368. \fBISSUE\fP \fI\%#42152\fP: (\fI\%dubb\-b\fP) salt\-cloud errors on Rackspace driver using \-out=yaml (refs: \fI\%#42282\fP)
  212369. .IP \(bu 2
  212370. \fBPR\fP \fI\%#42282\fP: (\fI\%rallytime\fP) Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  212371. @ \fI2017\-07\-17 17:36:35 UTC\fP
  212372. .INDENT 2.0
  212373. .IP \(bu 2
  212374. 5aaa214a75 Merge pull request \fI\%#42282\fP from rallytime/fix\-42152
  212375. .IP \(bu 2
  212376. f032223843 Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  212377. .UNINDENT
  212378. .IP \(bu 2
  212379. \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)
  212380. .IP \(bu 2
  212381. \fBPR\fP \fI\%#42308\fP: (\fI\%lubyou\fP) Force file removal on Windows. Fixes \fI\%#42295\fP
  212382. @ \fI2017\-07\-17 17:12:13 UTC\fP
  212383. .INDENT 2.0
  212384. .IP \(bu 2
  212385. fb5697a4bc Merge pull request \fI\%#42308\fP from lubyou/42295\-fix\-file\-absent\-windows
  212386. .IP \(bu 2
  212387. 026ccf401a Force file removal on Windows. Fixes \fI\%#42295\fP
  212388. .UNINDENT
  212389. .IP \(bu 2
  212390. \fBISSUE\fP \fI\%#42267\fP: (\fI\%gzcwnk\fP) salt\-ssh not creating ssh keys automatically as per documentation (refs: \fI\%#42314\fP)
  212391. .IP \(bu 2
  212392. \fBPR\fP \fI\%#42314\fP: (\fI\%rallytime\fP) Add clarification to salt ssh docs about key auto\-generation.
  212393. @ \fI2017\-07\-17 14:07:49 UTC\fP
  212394. .INDENT 2.0
  212395. .IP \(bu 2
  212396. da2a8a518f Merge pull request \fI\%#42314\fP from rallytime/fix\-42267
  212397. .IP \(bu 2
  212398. c406046940 Add clarification to salt ssh docs about key auto\-generation.
  212399. .UNINDENT
  212400. .IP \(bu 2
  212401. \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)
  212402. .IP \(bu 2
  212403. \fBPR\fP \fI\%#41945\fP: (\fI\%garethgreenaway\fP) Fixes to modules/git.py
  212404. @ \fI2017\-07\-14 17:46:10 UTC\fP
  212405. .INDENT 2.0
  212406. .IP \(bu 2
  212407. acadd54013 Merge pull request \fI\%#41945\fP from garethgreenaway/41936_allow_identity_files_with_user
  212408. .IP \(bu 2
  212409. 44841e5626 Moving the call to cp.get_file inside the with block to ensure the umask is preserved when we grab the file.
  212410. .IP \(bu 2
  212411. f9ba60eed8 Merge pull request \fI\%#1\fP from terminalmage/pr\-41945
  212412. .INDENT 2.0
  212413. .IP \(bu 2
  212414. 1b6026177c Restrict set_umask to mkstemp call only
  212415. .UNINDENT
  212416. .IP \(bu 2
  212417. 68549f3496 Fixing umask to we can set files as executable.
  212418. .IP \(bu 2
  212419. 4949bf3ff3 Updating to swap on the new salt.utils.files.set_umask context_manager
  212420. .IP \(bu 2
  212421. 8faa9f6d92 Updating PR with requested changes.
  212422. .IP \(bu 2
  212423. 494765e939 Updating the git module to allow an identity file to be used when passing the user parameter
  212424. .UNINDENT
  212425. .IP \(bu 2
  212426. \fBISSUE\fP \fI\%#42240\fP: (\fI\%casselt\fP) empty_password in user.present always changes password, even with test=True (refs: \fI\%#42289\fP)
  212427. .IP \(bu 2
  212428. \fBPR\fP \fI\%#42289\fP: (\fI\%CorvinM\fP) Multiple empty_password fixes for state.user
  212429. @ \fI2017\-07\-14 16:14:02 UTC\fP
  212430. .INDENT 2.0
  212431. .IP \(bu 2
  212432. \fBPR\fP \fI\%#41543\fP: (\fI\%cri\-epita\fP) Fix user creation with empty password (refs: \fI\%#42289\fP)
  212433. .IP \(bu 2
  212434. f90e04a2bc Merge pull request \fI\%#42289\fP from CorvinM/bp\-41543
  212435. .IP \(bu 2
  212436. 357dc22f05 Fix user creation with empty password
  212437. .UNINDENT
  212438. .IP \(bu 2
  212439. \fBPR\fP \fI\%#42123\fP: (\fI\%vutny\fP) DOCS: describe importing custom util classes
  212440. @ \fI2017\-07\-12 15:53:24 UTC\fP
  212441. .INDENT 2.0
  212442. .IP \(bu 2
  212443. a91a3f81b1 Merge pull request \fI\%#42123\fP from vutny/fix\-master\-utils\-import
  212444. .IP \(bu 2
  212445. 6bb8b8f98c Add missing doc for \fButils_dirs\fP Minion config option
  212446. .IP \(bu 2
  212447. f1bc58f6d5 Utils: add example of module import
  212448. .UNINDENT
  212449. .IP \(bu 2
  212450. \fBPR\fP \fI\%#42261\fP: (\fI\%rallytime\fP) Some minor doc fixes for dnsutil module so they\(aqll render correctly
  212451. @ \fI2017\-07\-11 23:14:53 UTC\fP
  212452. .INDENT 2.0
  212453. .IP \(bu 2
  212454. e2aa5114e4 Merge pull request \fI\%#42261\fP from rallytime/minor\-doc\-fix
  212455. .IP \(bu 2
  212456. 8c76bbb53d Some minor doc fixes for dnsutil module so they\(aqll render correctly
  212457. .UNINDENT
  212458. .IP \(bu 2
  212459. \fBPR\fP \fI\%#42262\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42224\fP to 2016.11
  212460. @ \fI2017\-07\-11 23:14:25 UTC\fP
  212461. .INDENT 2.0
  212462. .IP \(bu 2
  212463. \fBPR\fP \fI\%#42224\fP: (\fI\%tdutrion\fP) Remove duplicate instruction in Openstack Rackspace config example (refs: \fI\%#42262\fP)
  212464. .IP \(bu 2
  212465. 3e9dfbc9cc Merge pull request \fI\%#42262\fP from rallytime/bp\-42224
  212466. .IP \(bu 2
  212467. c31ded341c Remove duplicate instruction in Openstack Rackspace config example
  212468. .UNINDENT
  212469. .IP \(bu 2
  212470. \fBISSUE\fP \fI\%#42137\fP: (\fI\%kiemlicz\fP) cmd.run with multiple commands \- random order of execution (refs: \fI\%#42181\fP)
  212471. .IP \(bu 2
  212472. \fBPR\fP \fI\%#42181\fP: (\fI\%garethgreenaway\fP) fixes to state.py for names parameter
  212473. @ \fI2017\-07\-11 21:21:32 UTC\fP
  212474. .INDENT 2.0
  212475. .IP \(bu 2
  212476. 7780579c36 Merge pull request \fI\%#42181\fP from garethgreenaway/42137_backport_fix_from_2017_7
  212477. .IP \(bu 2
  212478. a34970b45b Back porting the fix for 2017.7 that ensures the order of the names parameter.
  212479. .UNINDENT
  212480. .IP \(bu 2
  212481. \fBPR\fP \fI\%#42253\fP: (\fI\%gtmanfred\fP) Only use unassociated ips when unable to allocate
  212482. @ \fI2017\-07\-11 20:53:51 UTC\fP
  212483. .INDENT 2.0
  212484. .IP \(bu 2
  212485. \fBPR\fP \fI\%#38965\fP: (\fI\%toanju\fP) salt\-cloud will use list_floating_ips for OpenStack (refs: \fI\%#42253\fP)
  212486. .IP \(bu 2
  212487. \fBPR\fP \fI\%#34280\fP: (\fI\%kevinanderson1\fP) salt\-cloud will use list_floating_ips for Openstack (refs: \fI\%#38965\fP)
  212488. .IP \(bu 2
  212489. 72537868a6 Merge pull request \fI\%#42253\fP from gtmanfred/2016.11
  212490. .IP \(bu 2
  212491. 53e25760be Only use unassociated ips when unable to allocate
  212492. .UNINDENT
  212493. .IP \(bu 2
  212494. \fBPR\fP \fI\%#42252\fP: (\fI\%UtahDave\fP) simple docstring updates
  212495. @ \fI2017\-07\-11 20:48:33 UTC\fP
  212496. .INDENT 2.0
  212497. .IP \(bu 2
  212498. b2a4698b5d Merge pull request \fI\%#42252\fP from UtahDave/2016.11local
  212499. .IP \(bu 2
  212500. e6a9563d47 simple doc updates
  212501. .UNINDENT
  212502. .IP \(bu 2
  212503. \fBISSUE\fP \fI\%#42232\fP: (\fI\%astronouth7303\fP) Half of dnsutil refers to dig (refs: \fI\%#42235\fP)
  212504. .IP \(bu 2
  212505. \fBPR\fP \fI\%#42235\fP: (\fI\%astronouth7303\fP) Abolish references to \fIdig\fP in examples.
  212506. @ \fI2017\-07\-10 20:06:11 UTC\fP
  212507. .INDENT 2.0
  212508. .IP \(bu 2
  212509. 781fe13be7 Merge pull request \fI\%#42235\fP from astronouth7303/patch\-1\-2016.3
  212510. .IP \(bu 2
  212511. 4cb51bd03a Make note of dig partial requirement.
  212512. .IP \(bu 2
  212513. 08e7d8351a Abolish references to \fIdig\fP in examples.
  212514. .UNINDENT
  212515. .IP \(bu 2
  212516. \fBPR\fP \fI\%#42215\fP: (\fI\%twangboy\fP) Add missing config to example
  212517. @ \fI2017\-07\-07 20:18:44 UTC\fP
  212518. .INDENT 2.0
  212519. .IP \(bu 2
  212520. 83cbd76f16 Merge pull request \fI\%#42215\fP from twangboy/win_iis_docs
  212521. .IP \(bu 2
  212522. c07e22041a Add missing config to example
  212523. .UNINDENT
  212524. .IP \(bu 2
  212525. \fBPR\fP \fI\%#42211\fP: (\fI\%terminalmage\fP) Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  212526. @ \fI2017\-07\-07 20:16:35 UTC\fP
  212527. .INDENT 2.0
  212528. .IP \(bu 2
  212529. 274946ab00 Merge pull request \fI\%#42211\fP from terminalmage/issue40928
  212530. .IP \(bu 2
  212531. 22a18fa2ed Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  212532. .UNINDENT
  212533. .IP \(bu 2
  212534. \fBPR\fP \fI\%#42173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37424\fP to 2016.11
  212535. @ \fI2017\-07\-07 16:39:59 UTC\fP
  212536. .INDENT 2.0
  212537. .IP \(bu 2
  212538. \fBPR\fP \fI\%#37424\fP: (\fI\%kojiromike\fP) Avoid Early Convert ret[\(aqcomment\(aq] to String (refs: \fI\%#42173\fP)
  212539. .IP \(bu 2
  212540. 89261cf06c Merge pull request \fI\%#42173\fP from rallytime/bp\-37424
  212541. .IP \(bu 2
  212542. 01addb6053 Avoid Early Convert ret[\(aqcomment\(aq] to String
  212543. .UNINDENT
  212544. .IP \(bu 2
  212545. \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)
  212546. .IP \(bu 2
  212547. \fBPR\fP \fI\%#42175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39366\fP to 2016.11
  212548. @ \fI2017\-07\-06 19:51:47 UTC\fP
  212549. .INDENT 2.0
  212550. .IP \(bu 2
  212551. \fBPR\fP \fI\%#39366\fP: (\fI\%dglloyd\fP) Pass sig to service.status in after_toggle (refs: \fI\%#42175\fP)
  212552. .IP \(bu 2
  212553. 3b17fb7f83 Merge pull request \fI\%#42175\fP from rallytime/bp\-39366
  212554. .IP \(bu 2
  212555. 53f7b987e8 Pass sig to service.status in after_toggle
  212556. .UNINDENT
  212557. .IP \(bu 2
  212558. \fBPR\fP \fI\%#42172\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  212559. @ \fI2017\-07\-06 18:16:29 UTC\fP
  212560. .INDENT 2.0
  212561. .IP \(bu 2
  212562. ea16f47f0a Merge pull request \fI\%#42172\fP from rallytime/merge\-2016.11
  212563. .IP \(bu 2
  212564. b1fa332a11 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  212565. .INDENT 2.0
  212566. .IP \(bu 2
  212567. 8fa1fa5bb1 Merge pull request \fI\%#42155\fP from phsteve/doc\-fix\-puppet
  212568. .INDENT 2.0
  212569. .IP \(bu 2
  212570. fb2cb78a31 Fix docs for puppet.plugin_sync so code\-block renders properly and sync is spelled consistently
  212571. .UNINDENT
  212572. .UNINDENT
  212573. .UNINDENT
  212574. .IP \(bu 2
  212575. \fBPR\fP \fI\%#42176\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42109\fP to 2016.11
  212576. @ \fI2017\-07\-06 18:15:35 UTC\fP
  212577. .INDENT 2.0
  212578. .IP \(bu 2
  212579. \fBPR\fP \fI\%#42109\fP: (\fI\%arthurlogilab\fP) [doc] Update aws.rst \- add Debian default username (refs: \fI\%#42176\fP)
  212580. .IP \(bu 2
  212581. 6307b9873f Merge pull request \fI\%#42176\fP from rallytime/bp\-42109
  212582. .IP \(bu 2
  212583. 686926daf7 Update aws.rst \- add Debian default username
  212584. .UNINDENT
  212585. .IP \(bu 2
  212586. \fBPR\fP \fI\%#42095\fP: (\fI\%terminalmage\fP) Add debug logging to dockerng.login
  212587. @ \fI2017\-07\-06 17:13:05 UTC\fP
  212588. .INDENT 2.0
  212589. .IP \(bu 2
  212590. 28c4e4c3b7 Merge pull request \fI\%#42095\fP from terminalmage/docker\-login\-debugging
  212591. .IP \(bu 2
  212592. bd27870a71 Add debug logging to dockerng.login
  212593. .UNINDENT
  212594. .IP \(bu 2
  212595. \fBISSUE\fP \fI\%#42116\fP: (\fI\%terminalmage\fP) CLI pillar override regression in 2017.7.0rc1 (refs: \fI\%#42119\fP)
  212596. .IP \(bu 2
  212597. \fBPR\fP \fI\%#42119\fP: (\fI\%terminalmage\fP) Fix regression in CLI pillar override for salt\-call
  212598. @ \fI2017\-07\-06 17:02:52 UTC\fP
  212599. .INDENT 2.0
  212600. .IP \(bu 2
  212601. 2b754bc5af Merge pull request \fI\%#42119\fP from terminalmage/issue42116
  212602. .IP \(bu 2
  212603. 9a268949e3 Add integration test for 42116
  212604. .IP \(bu 2
  212605. 1bb42bb609 Fix regression when CLI pillar override is used with salt\-call
  212606. .UNINDENT
  212607. .IP \(bu 2
  212608. \fBISSUE\fP \fI\%#42114\fP: (\fI\%clallen\fP) saltenv bug in pillar.get execution module function (refs: \fI\%#42121\fP)
  212609. .IP \(bu 2
  212610. \fBPR\fP \fI\%#42121\fP: (\fI\%terminalmage\fP) Fix pillar.get when saltenv is passed
  212611. @ \fI2017\-07\-06 16:52:34 UTC\fP
  212612. .INDENT 2.0
  212613. .IP \(bu 2
  212614. 8c0a83cbb5 Merge pull request \fI\%#42121\fP from terminalmage/issue42114
  212615. .IP \(bu 2
  212616. d14291267f Fix pillar.get when saltenv is passed
  212617. .UNINDENT
  212618. .IP \(bu 2
  212619. \fBPR\fP \fI\%#42094\fP: (\fI\%terminalmage\fP) Prevent command from showing in exception when output_loglevel=quiet
  212620. @ \fI2017\-07\-06 16:18:09 UTC\fP
  212621. .INDENT 2.0
  212622. .IP \(bu 2
  212623. 687992c240 Merge pull request \fI\%#42094\fP from terminalmage/quiet\-exception
  212624. .IP \(bu 2
  212625. 47d61f4edf Prevent command from showing in exception when output_loglevel=quiet
  212626. .UNINDENT
  212627. .IP \(bu 2
  212628. \fBISSUE\fP \fI\%#42115\fP: (\fI\%nomeelnoj\fP) Installing EPEL repo breaks salt\-cloud (refs: \fI\%#42163\fP)
  212629. .IP \(bu 2
  212630. \fBPR\fP \fI\%#42163\fP: (\fI\%vutny\fP) Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  212631. @ \fI2017\-07\-06 16:15:07 UTC\fP
  212632. .INDENT 2.0
  212633. .IP \(bu 2
  212634. dad255160c Merge pull request \fI\%#42163\fP from vutny/fix\-42115
  212635. .IP \(bu 2
  212636. b27b1e340a Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  212637. .UNINDENT
  212638. .IP \(bu 2
  212639. \fBPR\fP \fI\%#42164\fP: (\fI\%Ch3LL\fP) Fix kerberos create_keytab doc
  212640. @ \fI2017\-07\-06 15:55:33 UTC\fP
  212641. .INDENT 2.0
  212642. .IP \(bu 2
  212643. 2a8ae2b3b6 Merge pull request \fI\%#42164\fP from Ch3LL/fix_kerb_doc
  212644. .IP \(bu 2
  212645. 7c0fb248ec Fix kerberos create_keytab doc
  212646. .UNINDENT
  212647. .IP \(bu 2
  212648. \fBPR\fP \fI\%#42141\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42098\fP to 2016.11
  212649. @ \fI2017\-07\-06 15:11:49 UTC\fP
  212650. .INDENT 2.0
  212651. .IP \(bu 2
  212652. \fBPR\fP \fI\%#42098\fP: (\fI\%twangboy\fP) Change repo_ng to repo\-ng (refs: \fI\%#42141\fP)
  212653. .IP \(bu 2
  212654. 678d4d4098 Merge pull request \fI\%#42141\fP from rallytime/bp\-42098
  212655. .IP \(bu 2
  212656. bd80243233 Change repo_ng to repo\-ng
  212657. .UNINDENT
  212658. .IP \(bu 2
  212659. \fBPR\fP \fI\%#42140\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42097\fP to 2016.11
  212660. @ \fI2017\-07\-06 15:11:29 UTC\fP
  212661. .INDENT 2.0
  212662. .IP \(bu 2
  212663. \fBPR\fP \fI\%#42097\fP: (\fI\%gtmanfred\fP) require large timediff for ipv6 warning (refs: \fI\%#42140\fP)
  212664. .IP \(bu 2
  212665. c8afd7a3c9 Merge pull request \fI\%#42140\fP from rallytime/bp\-42097
  212666. .IP \(bu 2
  212667. 9c4e132540 Import datetime
  212668. .IP \(bu 2
  212669. 1435bf177e require large timediff for ipv6 warning
  212670. .UNINDENT
  212671. .IP \(bu 2
  212672. \fBPR\fP \fI\%#42142\fP: (\fI\%Ch3LL\fP) Update builds available for rc1
  212673. @ \fI2017\-07\-05 21:11:56 UTC\fP
  212674. .INDENT 2.0
  212675. .IP \(bu 2
  212676. c239664c8b Merge pull request \fI\%#42142\fP from Ch3LL/change_builds
  212677. .IP \(bu 2
  212678. e1694af39c Update builds available for rc1
  212679. .UNINDENT
  212680. .IP \(bu 2
  212681. \fBPR\fP \fI\%#42078\fP: (\fI\%damon\-atkins\fP) pkg.install and pkg.remove fix version number input.
  212682. @ \fI2017\-07\-05 06:04:57 UTC\fP
  212683. .INDENT 2.0
  212684. .IP \(bu 2
  212685. 4780d7830a Merge pull request \fI\%#42078\fP from damon\-atkins/fix_convert_flt_str_version_on_cmd_line
  212686. .IP \(bu 2
  212687. 09d37dd892 Fix comment typo
  212688. .IP \(bu 2
  212689. 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.
  212690. .IP \(bu 2
  212691. 4fb2bb1856 Fix typo
  212692. .IP \(bu 2
  212693. 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
  212694. .UNINDENT
  212695. .IP \(bu 2
  212696. \fBPR\fP \fI\%#42105\fP: (\fI\%Ch3LL\fP) Update releasecanddiate doc with new 2017.7.0rc1 Release
  212697. @ \fI2017\-07\-04 03:14:42 UTC\fP
  212698. .INDENT 2.0
  212699. .IP \(bu 2
  212700. 46d575acbc Merge pull request \fI\%#42105\fP from Ch3LL/update_rc
  212701. .IP \(bu 2
  212702. d4e7b91608 Update releasecanddiate doc with new 2017.7.0rc1 Release
  212703. .UNINDENT
  212704. .IP \(bu 2
  212705. \fBISSUE\fP \fI\%#41885\fP: (\fI\%astronouth7303\fP) Recommended pip installation outdated? (refs: \fI\%#42099\fP)
  212706. .IP \(bu 2
  212707. \fBPR\fP \fI\%#42099\fP: (\fI\%rallytime\fP) Remove references in docs to pip install salt\-cloud
  212708. @ \fI2017\-07\-03 22:13:44 UTC\fP
  212709. .INDENT 2.0
  212710. .IP \(bu 2
  212711. d38548bbbd Merge pull request \fI\%#42099\fP from rallytime/fix\-41885
  212712. .IP \(bu 2
  212713. c2822e05ad Remove references in docs to pip install salt\-cloud
  212714. .UNINDENT
  212715. .IP \(bu 2
  212716. \fBISSUE\fP \fI\%#42076\fP: (\fI\%abulford\fP) dockerng.volume_present test looks as though it would cause a change (refs: \fI\%#42086\fP)
  212717. .IP \(bu 2
  212718. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists
  212719. @ \fI2017\-07\-03 15:48:33 UTC\fP
  212720. .INDENT 2.0
  212721. .IP \(bu 2
  212722. 81d606a8cb Merge pull request \fI\%#42086\fP from redmatter/fix\-dockerng\-volume\-present\-result
  212723. .IP \(bu 2
  212724. 8d549685a7 Make result=true if Docker volume already exists
  212725. .UNINDENT
  212726. .IP \(bu 2
  212727. \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)
  212728. .IP \(bu 2
  212729. \fBPR\fP \fI\%#42021\fP: (\fI\%gtmanfred\fP) Set concurrent to True when running states with sudo
  212730. @ \fI2017\-06\-30 21:02:15 UTC\fP
  212731. .INDENT 2.0
  212732. .IP \(bu 2
  212733. 7160697123 Merge pull request \fI\%#42021\fP from gtmanfred/2016.11
  212734. .IP \(bu 2
  212735. 26beb18aa5 Set concurrent to True when running states with sudo
  212736. .UNINDENT
  212737. .IP \(bu 2
  212738. \fBPR\fP \fI\%#42029\fP: (\fI\%terminalmage\fP) Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212739. @ \fI2017\-06\-30 20:58:56 UTC\fP
  212740. .INDENT 2.0
  212741. .IP \(bu 2
  212742. b784fbbdf8 Merge pull request \fI\%#42029\fP from terminalmage/host_to_ips
  212743. .IP \(bu 2
  212744. 26f848e111 Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212745. .UNINDENT
  212746. .IP \(bu 2
  212747. \fBPR\fP \fI\%#42055\fP: (\fI\%dmurphy18\fP) Upgrade support for gnupg v2.1 and higher
  212748. @ \fI2017\-06\-30 20:54:02 UTC\fP
  212749. .INDENT 2.0
  212750. .IP \(bu 2
  212751. e067020b9b Merge pull request \fI\%#42055\fP from dmurphy18/handle_gnupgv21
  212752. .IP \(bu 2
  212753. e20cea6350 Upgrade support for gnupg v2.1 and higher
  212754. .UNINDENT
  212755. .IP \(bu 2
  212756. \fBPR\fP \fI\%#42048\fP: (\fI\%Ch3LL\fP) Add initial 2016.11.7 Release Notes
  212757. @ \fI2017\-06\-30 16:00:05 UTC\fP
  212758. .INDENT 2.0
  212759. .IP \(bu 2
  212760. 74ba2abc48 Merge pull request \fI\%#42048\fP from Ch3LL/add_11.7
  212761. .IP \(bu 2
  212762. 1de5e008a0 Add initial 2016.11.7 Release Notes
  212763. .UNINDENT
  212764. .IP \(bu 2
  212765. \fBPR\fP \fI\%#42024\fP: (\fI\%leeclemens\fP) doc: Specify versionadded for SELinux policy install/uninstall
  212766. @ \fI2017\-06\-29 23:29:50 UTC\fP
  212767. .INDENT 2.0
  212768. .IP \(bu 2
  212769. ca4e619edb Merge pull request \fI\%#42024\fP from leeclemens/doc/selinux
  212770. .IP \(bu 2
  212771. b63a3c0fae doc: Specify versionadded for SELinux policy install/uninstall
  212772. .IP \(bu 2
  212773. \fBPR\fP \fI\%saltstack/salt#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3 (refs: \fI\%#42028\fP)
  212774. .UNINDENT
  212775. .IP \(bu 2
  212776. \fBPR\fP \fI\%#42030\fP: (\fI\%whiteinge\fP) Re\-add msgpack to mocked imports
  212777. @ \fI2017\-06\-29 20:47:59 UTC\fP
  212778. .INDENT 2.0
  212779. .IP \(bu 2
  212780. \fBPR\fP \fI\%#42028\fP: (\fI\%whiteinge\fP) Revert "Allow docs to be built under Python 3" (refs: \fI\%#42030\fP)
  212781. .IP \(bu 2
  212782. 50856d0e28 Merge pull request \fI\%#42030\fP from whiteinge/revert\-py3\-doc\-chagnes\-pt\-2
  212783. .IP \(bu 2
  212784. 18dfa9893c Re\-add msgpack to mocked imports
  212785. .IP \(bu 2
  212786. \fBPR\fP \fI\%saltstack/salt#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3 (refs: \fI\%#42028\fP)
  212787. .UNINDENT
  212788. .IP \(bu 2
  212789. \fBPR\fP \fI\%#42028\fP: (\fI\%whiteinge\fP) Revert "Allow docs to be built under Python 3" (refs: \fI\%#42030\fP)
  212790. @ \fI2017\-06\-29 19:47:46 UTC\fP
  212791. .INDENT 2.0
  212792. .IP \(bu 2
  212793. 53031d2f55 Merge pull request \fI\%#42028\fP from saltstack/revert\-41961\-py3_doc
  212794. .IP \(bu 2
  212795. 5592e6e5d4 Revert "Allow docs to be built under Python 3"
  212796. .UNINDENT
  212797. .IP \(bu 2
  212798. \fBISSUE\fP \fI\%#42013\fP: (\fI\%dusto\fP) Misspelled nozeroconf in salt/modules/rh_ip.py (refs: \fI\%#42017\fP)
  212799. .IP \(bu 2
  212800. \fBPR\fP \fI\%#42017\fP: (\fI\%lorengordon\fP) Fixes typo "nozerconf" \-> "nozeroconf"
  212801. @ \fI2017\-06\-29 17:30:48 UTC\fP
  212802. .INDENT 2.0
  212803. .IP \(bu 2
  212804. 1416bf70b9 Merge pull request \fI\%#42017\fP from lorengordon/issue\-42013
  212805. .IP \(bu 2
  212806. b6cf5f2528 Fixes typo nozerconf \-> nozeroconf
  212807. .UNINDENT
  212808. .IP \(bu 2
  212809. \fBPR\fP \fI\%#41906\fP: (\fI\%terminalmage\fP) Better support for numeric saltenvs
  212810. @ \fI2017\-06\-29 17:19:33 UTC\fP
  212811. .INDENT 2.0
  212812. .IP \(bu 2
  212813. 0ebb50b601 Merge pull request \fI\%#41906\fP from terminalmage/numeric\-saltenv
  212814. .IP \(bu 2
  212815. 2d798de982 Better support for numeric saltenvs
  212816. .UNINDENT
  212817. .IP \(bu 2
  212818. \fBPR\fP \fI\%#41995\fP: (\fI\%terminalmage\fP) Temporarily set the umask before writing an auth token
  212819. @ \fI2017\-06\-29 01:09:48 UTC\fP
  212820. .INDENT 2.0
  212821. .IP \(bu 2
  212822. 6a3c03c2d5 Merge pull request \fI\%#41995\fP from terminalmage/token\-umask
  212823. .IP \(bu 2
  212824. 4f54b0069f Temporarily set the umask before writing an auth token
  212825. .UNINDENT
  212826. .IP \(bu 2
  212827. \fBPR\fP \fI\%#41999\fP: (\fI\%terminalmage\fP) Update IP address for unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212828. @ \fI2017\-06\-29 01:01:31 UTC\fP
  212829. .INDENT 2.0
  212830. .IP \(bu 2
  212831. e3801b0e78 Merge pull request \fI\%#41999\fP from terminalmage/fix\-network\-test
  212832. .IP \(bu 2
  212833. fb6a93314f Update IP address for unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212834. .UNINDENT
  212835. .IP \(bu 2
  212836. \fBISSUE\fP \fI\%#18659\fP: (\fI\%whiteinge\fP) mod_aggregate not working for list\-form configuration (refs: \fI\%#41991\fP)
  212837. .IP \(bu 2
  212838. \fBPR\fP \fI\%#41991\fP: (\fI\%Da\-Juan\fP) Accept a list for state_aggregate global setting
  212839. @ \fI2017\-06\-29 00:58:59 UTC\fP
  212840. .INDENT 2.0
  212841. .IP \(bu 2
  212842. a7f38929cb Merge pull request \fI\%#41991\fP from Da\-Juan/fix\-state_aggregate\-list
  212843. .IP \(bu 2
  212844. c9075b8f84 Accept a list for state_aggregate setting
  212845. .UNINDENT
  212846. .IP \(bu 2
  212847. \fBPR\fP \fI\%#41993\fP: (\fI\%UtahDave\fP) change out salt support link to SaltConf link
  212848. @ \fI2017\-06\-29 00:55:20 UTC\fP
  212849. .INDENT 2.0
  212850. .IP \(bu 2
  212851. 7424f879a3 Merge pull request \fI\%#41993\fP from UtahDave/2016.11local
  212852. .IP \(bu 2
  212853. bff050ad52 change out salt support link to SaltConf link
  212854. .UNINDENT
  212855. .IP \(bu 2
  212856. \fBPR\fP \fI\%#41987\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  212857. @ \fI2017\-06\-28 20:19:11 UTC\fP
  212858. .INDENT 2.0
  212859. .IP \(bu 2
  212860. 3b9ccf09d7 Merge pull request \fI\%#41987\fP from rallytime/merge\-2016.11
  212861. .IP \(bu 2
  212862. 48867c4a82 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  212863. .INDENT 2.0
  212864. .IP \(bu 2
  212865. c589eae03f Merge pull request \fI\%#41981\fP from Ch3LL/11.6_3
  212866. .IP \(bu 2
  212867. 2516ae1349 [2016.3] Bump latest release version to 2016.11.6
  212868. .UNINDENT
  212869. .UNINDENT
  212870. .IP \(bu 2
  212871. \fBPR\fP \fI\%#41985\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41780\fP to 2016.11
  212872. @ \fI2017\-06\-28 20:18:57 UTC\fP
  212873. .INDENT 2.0
  212874. .IP \(bu 2
  212875. \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)
  212876. .IP \(bu 2
  212877. 768339d734 Merge pull request \fI\%#41985\fP from rallytime/bp\-41780
  212878. .IP \(bu 2
  212879. 8f8d3a473a Fix salt.util.render_jinja_tmpl usage for when not used in an environment.
  212880. .UNINDENT
  212881. .IP \(bu 2
  212882. \fBISSUE\fP \fI\%#34963\fP: (\fI\%craigafinch\fP) Incorrect behavior or documentation for comments in salt.states.pkgrepo.managed (refs: \fI\%#41820\fP)
  212883. .IP \(bu 2
  212884. \fBPR\fP \fI\%#41986\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41820\fP to 2016.11
  212885. @ \fI2017\-06\-28 20:18:43 UTC\fP
  212886. .INDENT 2.0
  212887. .IP \(bu 2
  212888. \fBPR\fP \fI\%#41820\fP: (\fI\%nhavens\fP) Fix yum repo file comments to work as documented in pkgrepo.managed (refs: \fI\%#41986\fP)
  212889. .IP \(bu 2
  212890. bd9090c0bf Merge pull request \fI\%#41986\fP from rallytime/bp\-41820
  212891. .IP \(bu 2
  212892. 72320e35b9 Fix yum repo file comments to work as documented in pkgrepo.managed
  212893. .UNINDENT
  212894. .IP \(bu 2
  212895. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  212896. @ \fI2017\-06\-28 16:39:02 UTC\fP
  212897. .INDENT 2.0
  212898. .IP \(bu 2
  212899. a31da52635 Merge pull request \fI\%#41973\fP from vutny/fix\-croniter\-scheduled\-jobs
  212900. .IP \(bu 2
  212901. 148788e652 Fix Master/Minion scheduled jobs based on Cron expressions
  212902. .UNINDENT
  212903. .IP \(bu 2
  212904. \fBPR\fP \fI\%#41980\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.6
  212905. @ \fI2017\-06\-28 15:35:11 UTC\fP
  212906. .INDENT 2.0
  212907. .IP \(bu 2
  212908. 689ff93349 Merge pull request \fI\%#41980\fP from Ch3LL/11.6_11
  212909. .IP \(bu 2
  212910. fe4f5711d5 [2016.11] Bump latest release version to 2016.11.6
  212911. .UNINDENT
  212912. .IP \(bu 2
  212913. \fBPR\fP \fI\%#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3
  212914. @ \fI2017\-06\-27 21:11:54 UTC\fP
  212915. .INDENT 2.0
  212916. .IP \(bu 2
  212917. 82b1eb28ab Merge pull request \fI\%#41961\fP from cachedout/py3_doc
  212918. .IP \(bu 2
  212919. 7aacddf6ef Allow docs to be built under Python 3
  212920. .UNINDENT
  212921. .IP \(bu 2
  212922. \fBPR\fP \fI\%#41948\fP: (\fI\%davidjb\fP) Fix Composer state\(aqs \fIname\fP docs; formatting
  212923. @ \fI2017\-06\-27 17:51:29 UTC\fP
  212924. .INDENT 2.0
  212925. .IP \(bu 2
  212926. \fBPR\fP \fI\%#41933\fP: (\fI\%davidjb\fP) Fix Composer state\(aqs \fIname\fP docs and improve formatting (refs: \fI\%#41948\fP)
  212927. .IP \(bu 2
  212928. f0eb51df17 Merge pull request \fI\%#41948\fP from davidjb/patch\-9
  212929. .IP \(bu 2
  212930. 0e4b3d9a42 Fix Composer state\(aqs \fIname\fP docs; formatting
  212931. .UNINDENT
  212932. .IP \(bu 2
  212933. \fBPR\fP \fI\%#41914\fP: (\fI\%vutny\fP) archive.extracted: fix hash sum verification for local archives
  212934. @ \fI2017\-06\-26 17:59:27 UTC\fP
  212935. .INDENT 2.0
  212936. .IP \(bu 2
  212937. e28e10ded2 Merge pull request \fI\%#41914\fP from vutny/fix\-archive\-extracted\-local\-file\-hash
  212938. .IP \(bu 2
  212939. 54910fe55f archive.extracted: fix hash sum verification for local archives
  212940. .UNINDENT
  212941. .IP \(bu 2
  212942. \fBPR\fP \fI\%#41912\fP: (\fI\%Ch3LL\fP) Allow pacman module to run on Manjaro
  212943. @ \fI2017\-06\-26 15:35:20 UTC\fP
  212944. .INDENT 2.0
  212945. .IP \(bu 2
  212946. 76ad6ff064 Merge pull request \fI\%#41912\fP from Ch3LL/fix_manjaro
  212947. .IP \(bu 2
  212948. e4dd72a3e7 Update os_name_map in core grains for new manjaro systems
  212949. .IP \(bu 2
  212950. aa7c839fc5 Allow pacman module to run on Manjaro
  212951. .UNINDENT
  212952. .IP \(bu 2
  212953. \fBISSUE\fP \fI\%#38093\fP: (\fI\%DmitryKuzmenko\fP) Make threads avoid blocking waiting while communicating using TCP transport. (refs: \fI\%#41516\fP)
  212954. .IP \(bu 2
  212955. \fBPR\fP \fI\%#41516\fP: (\fI\%kstreee\fP) Implements MessageClientPool to avoid blocking waiting for zeromq and tcp communications.
  212956. @ \fI2017\-06\-26 14:41:38 UTC\fP
  212957. .INDENT 2.0
  212958. .IP \(bu 2
  212959. \fBPR\fP \fI\%#37878\fP: (\fI\%kstreee\fP) Makes threads avoid blocking waiting while communicating using Zeromq. (refs: \fI\%#41516\fP)
  212960. .IP \(bu 2
  212961. ff67d47a2e Merge pull request \fI\%#41516\fP from kstreee/fix\-blocking\-waiting\-tcp\-connection
  212962. .IP \(bu 2
  212963. df96969959 Removes redundant closing statements.
  212964. .IP \(bu 2
  212965. 94b9ea51eb Implements MessageClientPool to avoid blocking waiting for zeromq and tcp communications.
  212966. .UNINDENT
  212967. .IP \(bu 2
  212968. \fBPR\fP \fI\%#41888\fP: (\fI\%Ch3LL\fP) Add additional commits to 2016.11.6 release notes
  212969. @ \fI2017\-06\-22 16:19:00 UTC\fP
  212970. .INDENT 2.0
  212971. .IP \(bu 2
  212972. c90cb6798a Merge pull request \fI\%#41888\fP from Ch3LL/change_release
  212973. .IP \(bu 2
  212974. 4e1239d980 Add additional commits to 2016.11.6 release notes
  212975. .UNINDENT
  212976. .IP \(bu 2
  212977. \fBPR\fP \fI\%#41882\fP: (\fI\%Ch3LL\fP) Add pycryptodome to crypt_test
  212978. @ \fI2017\-06\-21 19:51:10 UTC\fP
  212979. .INDENT 2.0
  212980. .IP \(bu 2
  212981. 4a326444fe Merge pull request \fI\%#41882\fP from Ch3LL/fix_crypt_test
  212982. .IP \(bu 2
  212983. 6f70dbd0e1 Add pycryptodome to crypt_test
  212984. .UNINDENT
  212985. .IP \(bu 2
  212986. \fBPR\fP \fI\%#41877\fP: (\fI\%Ch3LL\fP) Fix netstat and routes test
  212987. @ \fI2017\-06\-21 16:16:58 UTC\fP
  212988. .INDENT 2.0
  212989. .IP \(bu 2
  212990. 13df29ed9b Merge pull request \fI\%#41877\fP from Ch3LL/fix_netstat_test
  212991. .IP \(bu 2
  212992. d2076a6c93 Patch salt.utils.which for test_route test
  212993. .IP \(bu 2
  212994. 51f7e107dc Patch salt.utils.which for test_netstat test
  212995. .UNINDENT
  212996. .IP \(bu 2
  212997. \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)
  212998. .IP \(bu 2
  212999. \fBPR\fP \fI\%#41566\fP: (\fI\%morganwillcock\fP) win_certutil: workaround for reading serial numbers with non\-English languages
  213000. @ \fI2017\-06\-21 15:40:29 UTC\fP
  213001. .INDENT 2.0
  213002. .IP \(bu 2
  213003. 66f8c83c93 Merge pull request \fI\%#41566\fP from morganwillcock/certutil
  213004. .IP \(bu 2
  213005. c337d52d0c Fix test data for test_get_serial, and a typo
  213006. .IP \(bu 2
  213007. 7f6961378e test and lint fixes
  213008. .IP \(bu 2
  213009. 8ee48432f4 Suppress output of crypt context and be more specifc with whitespace vs. serial
  213010. .IP \(bu 2
  213011. 61f817d172 Match serials based on output position (fix for non\-English languages)
  213012. .UNINDENT
  213013. .IP \(bu 2
  213014. \fBPR\fP \fI\%#41679\fP: (\fI\%terminalmage\fP) Prevent unnecessary duplicate pillar compilation
  213015. @ \fI2017\-06\-21 15:32:42 UTC\fP
  213016. .INDENT 2.0
  213017. .IP \(bu 2
  213018. 4d0f5c433d Merge pull request \fI\%#41679\fP from terminalmage/get\-top\-file\-envs
  213019. .IP \(bu 2
  213020. a916e8da49 Improve normalization of saltenv/pillarenv usage for states
  213021. .IP \(bu 2
  213022. 02f293a19c Update state unit tests to reflect recent changes
  213023. .IP \(bu 2
  213024. b7e5c11165 Don\(aqt compile pillar data when getting top file envs
  213025. .IP \(bu 2
  213026. 8d6fdb7c9a Don\(aqt compile pillar twice for salt\-call
  213027. .IP \(bu 2
  213028. d2abfbf4ed Add initial_pillar argument to salt.state
  213029. .IP \(bu 2
  213030. 70186de532 salt.pillar: rename the "pillar" argument to "pillar_override"
  213031. .UNINDENT
  213032. .IP \(bu 2
  213033. \fBISSUE\fP \fI\%#39668\fP: (\fI\%mirceaulinic\fP) Master scheduled job not recorded on the event bus (refs: \fI\%#41658\fP)
  213034. .IP \(bu 2
  213035. \fBISSUE\fP \fI\%#12653\fP: (\fI\%pengyao\fP) salt schedule doesn\(aqt return jobs result info to master (refs: \fI\%#41853\fP)
  213036. .IP \(bu 2
  213037. \fBPR\fP \fI\%#41853\fP: (\fI\%vutny\fP) Fix master side scheduled jobs to return events
  213038. @ \fI2017\-06\-20 22:06:29 UTC\fP
  213039. .INDENT 2.0
  213040. .IP \(bu 2
  213041. \fBPR\fP \fI\%#41695\fP: (\fI\%xiaoanyunfei\fP) fix max RecursionError, Ellipsis (refs: \fI\%#41853\fP)
  213042. .IP \(bu 2
  213043. \fBPR\fP \fI\%#41658\fP: (\fI\%garethgreenaway\fP) Fixes to the salt scheduler (refs: \fI\%#41853\fP)
  213044. .IP \(bu 2
  213045. 29b0acc3a2 Merge pull request \fI\%#41853\fP from vutny/fix\-master\-schedule\-event
  213046. .IP \(bu 2
  213047. e206c381c6 Fix master side scheduled jobs to return events
  213048. .UNINDENT
  213049. .UNINDENT
  213050. .SS Salt 2016.11.9 Release Notes
  213051. .sp
  213052. Version 2016.11.9 is a bugfix release for 2016.11.0\&.
  213053. .SS Statistics
  213054. .INDENT 0.0
  213055. .IP \(bu 2
  213056. Total Merges: \fB143\fP
  213057. .IP \(bu 2
  213058. Total Issue References: \fB60\fP
  213059. .IP \(bu 2
  213060. Total PR References: \fB167\fP
  213061. .IP \(bu 2
  213062. 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)
  213063. .UNINDENT
  213064. .SS Windows Changes
  213065. .SS \fBpkg\fP Execution Module\(ga
  213066. .sp
  213067. Significate changes (PR #43708 & #45390, damon\-atkins) have been made to the
  213068. pkg execution module. Users should test this release against their existing
  213069. package sls definition files.
  213070. .INDENT 0.0
  213071. .IP \(bu 2
  213072. \fBpkg.list_available\fP no longer
  213073. defaults to refreshing the winrepo meta database.
  213074. .IP \(bu 2
  213075. \fBpkg.install\fP without a \fBversion\fP
  213076. parameter no longer upgrades software if the software is already installed.
  213077. Use \fBpkg.install version=latest\fP (or simply use a \fBpkg.latest\fP state to get the old behavior.
  213078. .IP \(bu 2
  213079. \fBpkg.list_pkgs\fP now returns
  213080. multiple versions if software installed more than once.
  213081. .IP \(bu 2
  213082. \fBpkg.list_pkgs\fP now returns \fBNot
  213083. Found\fP when the version is not found instead of \fB(value not set)\fP which
  213084. matches the contents of the sls definitions.
  213085. .IP \(bu 2
  213086. \fBpkg.remove\fP will wait up to 3 seconds
  213087. (normally about a second) to detect changes in the registry after removing
  213088. software, improving reporting of version changes.
  213089. .IP \(bu 2
  213090. \fBpkg.remove\fP can remove \fBlatest\fP
  213091. software, if \fBlatest\fP is defined in sls definition.
  213092. .IP \(bu 2
  213093. Documentation was update for the execution module to match the style in new
  213094. versions, some corrections as well.
  213095. .IP \(bu 2
  213096. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  213097. called with a command line string instead of a list. Some sls files in
  213098. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  213099. (i.e. the use of \fB&\fP).
  213100. .IP \(bu 2
  213101. Some execution module functions results, now behave more like their
  213102. Unix/Linux versions.
  213103. .UNINDENT
  213104. .SS \fBcmd\fP Execution Module
  213105. .sp
  213106. Due to a difference in how Python\(aqs \fBsubprocess.Popen()\fP spawns processes on
  213107. Windows, passing the command as a list of arguments can result in problems.
  213108. This is because Windows\(aq \fICreateProcess\fP requires the command to be passed as a
  213109. single string. Therefore, \fBsubprocess\fP will attempt to re\-assemble the list
  213110. of arguments into as string. Some escaped characters and quotes can cause the
  213111. resulting string to be incorrectly\-assembled, resulting in a failure to execute
  213112. the command.
  213113. .sp
  213114. Salt now deals with these cases by joining the list of arguments correctly and
  213115. ensuring that the command is passed to \fBsubprocess.Popen()\fP as a string.
  213116. .SS Changelog for v2016.11.8..v2016.11.9
  213117. .sp
  213118. \fIGenerated at: 2018\-05\-27 20:28:05 UTC\fP
  213119. .INDENT 0.0
  213120. .IP \(bu 2
  213121. \fBPR\fP \fI\%#45638\fP: (\fI\%twangboy\fP) Win fix shell info
  213122. @ \fI2018\-01\-23 22:38:22 UTC\fP
  213123. .INDENT 2.0
  213124. .IP \(bu 2
  213125. 10812969f0 Merge pull request \fI\%#45638\fP from twangboy/win_fix_shell_info
  213126. .IP \(bu 2
  213127. 872da3ffba Only convert text types in the list_values function
  213128. .IP \(bu 2
  213129. 0e41535cdb Fix reg.py to only convert text types to unicode
  213130. .IP \(bu 2
  213131. 3579534ea5 Fix issue with detecting powershell
  213132. .UNINDENT
  213133. .IP \(bu 2
  213134. \fBPR\fP \fI\%#45564\fP: (\fI\%Ch3LL\fP) Add PR changes to 2016.11.9 Release Notes
  213135. @ \fI2018\-01\-19 21:36:05 UTC\fP
  213136. .INDENT 2.0
  213137. .IP \(bu 2
  213138. 2d1dd1186e Merge pull request \fI\%#45564\fP from Ch3LL/r\-notes\-2016
  213139. .IP \(bu 2
  213140. 325f4cbcda Add PR changes to 2016.11.9 Release Notes
  213141. .UNINDENT
  213142. .IP \(bu 2
  213143. \fBPR\fP \fI\%#45563\fP: (\fI\%Ch3LL\fP) Update man pages for 2016.11.9
  213144. @ \fI2018\-01\-19 21:19:00 UTC\fP
  213145. .INDENT 2.0
  213146. .IP \(bu 2
  213147. 28e4398150 Merge pull request \fI\%#45563\fP from Ch3LL/man_2016
  213148. .IP \(bu 2
  213149. 529bc0c680 update release number for salt\-call man page 2016.11.9
  213150. .IP \(bu 2
  213151. 11b7222148 Update man pages for 2016.11.9
  213152. .UNINDENT
  213153. .IP \(bu 2
  213154. \fBPR\fP \fI\%#45532\fP: (\fI\%gtmanfred\fP) fix mock for opensuse
  213155. @ \fI2018\-01\-18 22:48:30 UTC\fP
  213156. .INDENT 2.0
  213157. .IP \(bu 2
  213158. 654df0f526 Merge pull request \fI\%#45532\fP from gtmanfred/2016.11.9
  213159. .IP \(bu 2
  213160. 6c26025664 fix mock for opensuse
  213161. .UNINDENT
  213162. .IP \(bu 2
  213163. \fBPR\fP \fI\%#45518\fP: (\fI\%gtmanfred\fP) fix last 2016.11.9 failing tests
  213164. @ \fI2018\-01\-18 12:03:50 UTC\fP
  213165. .INDENT 2.0
  213166. .IP \(bu 2
  213167. 571c33aa39 Merge pull request \fI\%#45518\fP from gtmanfred/2016.11.9
  213168. .IP \(bu 2
  213169. 5455d2dee6 fix centos 6 pip test
  213170. .IP \(bu 2
  213171. 40255194b0 fix fedora pkg test
  213172. .UNINDENT
  213173. .IP \(bu 2
  213174. \fBISSUE\fP \fI\%#45394\fP: (\fI\%dmurphy18\fP) git.latest fails when "depth" is used with a non\-default branch (refs: \fI\%#45399\fP)
  213175. .IP \(bu 2
  213176. \fBPR\fP \fI\%#45443\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45399\fP to 2016.11.9
  213177. @ \fI2018\-01\-17 14:53:58 UTC\fP
  213178. .INDENT 2.0
  213179. .IP \(bu 2
  213180. \fBPR\fP \fI\%#45399\fP: (\fI\%terminalmage\fP) Fix git.latest failure when rev is not the default branch (refs: \fI\%#45443\fP)
  213181. .IP \(bu 2
  213182. 4e0a0eec1f Merge pull request \fI\%#45443\fP from rallytime/bp\-45399\-2016.11.9
  213183. .IP \(bu 2
  213184. 919e92c911 Fix git.latest failure when rev is not the default branch
  213185. .UNINDENT
  213186. .IP \(bu 2
  213187. \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)
  213188. .IP \(bu 2
  213189. \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
  213190. @ \fI2018\-01\-17 14:52:03 UTC\fP
  213191. .INDENT 2.0
  213192. .IP \(bu 2
  213193. ebd4db66b8 Merge pull request \fI\%#45493\fP from damon\-atkins/2016.11_fix_sls_defintion_wrong_type
  213194. .IP \(bu 2
  213195. af108440df win_pkg lint space after ,
  213196. .IP \(bu 2
  213197. c6e922a236 win_pkg lint issues
  213198. .IP \(bu 2
  213199. f4627d7a80 fix quote i.e. change \(ga to \(aq
  213200. .IP \(bu 2
  213201. 6938a4c099 pkg.refresh_db report an issue if a sls pkg definition id not a dict instead of aborting.
  213202. .UNINDENT
  213203. .IP \(bu 2
  213204. \fBPR\fP \fI\%#45446\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45390\fP to 2016.11.9
  213205. @ \fI2018\-01\-16 20:08:38 UTC\fP
  213206. .INDENT 2.0
  213207. .IP \(bu 2
  213208. \fBPR\fP \fI\%#45390\fP: (\fI\%damon\-atkins\fP) win_pkg: fix pkg.remove, pkg.list_pkgs (refs: \fI\%#45446\fP)
  213209. .IP \(bu 2
  213210. 7322efba92 Merge pull request \fI\%#45446\fP from rallytime/bp\-45390
  213211. .IP \(bu 2
  213212. 69f045ea24 lint too\-many\-blank\-lines
  213213. .IP \(bu 2
  213214. 10a7501ede Update release notes
  213215. .IP \(bu 2
  213216. 6f2affe01c fix pkg.remove, pkg.list_pkgs
  213217. .UNINDENT
  213218. .IP \(bu 2
  213219. \fBPR\fP \fI\%#45424\fP: (\fI\%twangboy\fP) Fix some issues with reg.py
  213220. @ \fI2018\-01\-13 19:34:47 UTC\fP
  213221. .INDENT 2.0
  213222. .IP \(bu 2
  213223. b0ece9f4d4 Merge pull request \fI\%#45424\fP from twangboy/win_reg
  213224. .IP \(bu 2
  213225. 30f06205f7 Fix some issues with reg.py
  213226. .UNINDENT
  213227. .IP \(bu 2
  213228. \fBPR\fP \fI\%#45327\fP: (\fI\%lomeroe\fP) Backport \fI\%#44861\fP to 2016.11
  213229. @ \fI2018\-01\-08 21:10:41 UTC\fP
  213230. .INDENT 2.0
  213231. .IP \(bu 2
  213232. \fBPR\fP \fI\%#44861\fP: (\fI\%twangboy\fP) Fix win_lgpo for unknown values (refs: \fI\%#45327\fP)
  213233. .IP \(bu 2
  213234. 0959ae4ea3 Merge pull request \fI\%#45327\fP from lomeroe/bp\-44861_2016.11
  213235. .IP \(bu 2
  213236. 784139f734 Check for values other than 0 or 1
  213237. .UNINDENT
  213238. .IP \(bu 2
  213239. \fBPR\fP \fI\%#45268\fP: (\fI\%damon\-atkins\fP) Fix pkg.install packagename version=latest i.e. if on an old version is installed
  213240. @ \fI2018\-01\-08 17:34:15 UTC\fP
  213241. .INDENT 2.0
  213242. .IP \(bu 2
  213243. a6db5f95f0 Merge pull request \fI\%#45268\fP from damon\-atkins/2016.11_win_pkg_pkg_install_latest
  213244. .IP \(bu 2
  213245. 325a9f0f66 Update 2016.11.9.rst
  213246. .IP \(bu 2
  213247. 4da9200b9c Update 2016.11.9.rst
  213248. .IP \(bu 2
  213249. 126aee36ac Update 2016.11.9.rst
  213250. .IP \(bu 2
  213251. 1c01967943 Update 2016.11.9.rst
  213252. .IP \(bu 2
  213253. a0d89882b8 Fix pkg.install packagename version=latest i.e. if on an old version upgrade to the latest
  213254. .UNINDENT
  213255. .IP \(bu 2
  213256. \fBPR\fP \fI\%#45256\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45034\fP to 2016.11
  213257. @ \fI2018\-01\-04 14:25:42 UTC\fP
  213258. .INDENT 2.0
  213259. .IP \(bu 2
  213260. \fBPR\fP \fI\%#45034\fP: (\fI\%brejoc\fP) Fix for pidfile removal logging (refs: \fI\%#45256\fP)
  213261. .IP \(bu 2
  213262. 1c5e905b61 Merge pull request \fI\%#45256\fP from rallytime/bp\-45034
  213263. .IP \(bu 2
  213264. 68f971b38f Apply test fixes from \fI\%#45034\fP to parsers_test.py
  213265. .IP \(bu 2
  213266. 9454236694 Fix for pidfile removal logging
  213267. .UNINDENT
  213268. .IP \(bu 2
  213269. \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)
  213270. .IP \(bu 2
  213271. \fBPR\fP \fI\%#45235\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45209\fP to 2016.11
  213272. @ \fI2018\-01\-02 20:20:15 UTC\fP
  213273. .INDENT 2.0
  213274. .IP \(bu 2
  213275. \fBPR\fP \fI\%#45209\fP: (\fI\%gtmanfred\fP) enable UsePAM for ssh tests (refs: \fI\%#45235\fP)
  213276. .IP \(bu 2
  213277. b75f50afe3 Merge pull request \fI\%#45235\fP from rallytime/bp\-45209
  213278. .IP \(bu 2
  213279. 2d0a9bbf7e enable UsePAM for ssh tests
  213280. .UNINDENT
  213281. .IP \(bu 2
  213282. \fBPR\fP \fI\%#44965\fP: (\fI\%gtmanfred\fP) check if VALUE is a string_type
  213283. @ \fI2018\-01\-02 16:42:39 UTC\fP
  213284. .INDENT 2.0
  213285. .IP \(bu 2
  213286. 3ab962b01a Merge pull request \fI\%#44965\fP from gtmanfred/2016.11
  213287. .IP \(bu 2
  213288. a5d8a6340e check if VALUE is a string_type
  213289. .UNINDENT
  213290. .IP \(bu 2
  213291. \fBISSUE\fP \fI\%#27160\fP: (\fI\%martinadolfi\fP) salt.states.mount persistence error using spaces in route (refs: \fI\%#45232\fP)
  213292. .IP \(bu 2
  213293. \fBPR\fP \fI\%#45232\fP: (\fI\%rasathus\fP) Backport \fI\%#27160\fP to 2016.11
  213294. @ \fI2018\-01\-02 15:48:22 UTC\fP
  213295. .INDENT 2.0
  213296. .IP \(bu 2
  213297. 40fb30f63f Merge pull request \fI\%#45232\fP from rasathus/2016.11
  213298. .IP \(bu 2
  213299. 7a2bd8f49b Merge branch \(aq2016.11\(aq into 2016.11
  213300. .UNINDENT
  213301. .IP \(bu 2
  213302. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP, \fI\%#45161\fP)
  213303. .IP \(bu 2
  213304. \fBPR\fP \fI\%#45161\fP: (\fI\%lomeroe\fP) Backport \fI\%#44944\fP to 2016.11
  213305. @ \fI2017\-12\-30 13:19:35 UTC\fP
  213306. .INDENT 2.0
  213307. .IP \(bu 2
  213308. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#45161\fP)
  213309. .IP \(bu 2
  213310. 707ef55175 Merge pull request \fI\%#45161\fP from lomeroe/bp\-44944_2016.11
  213311. .IP \(bu 2
  213312. 0a4c6b5a83 remove references to six.unichr
  213313. .IP \(bu 2
  213314. f3196d795d lint fixes for static regexes
  213315. .IP \(bu 2
  213316. 11b637d108 lint fixes
  213317. .IP \(bu 2
  213318. c14d6282ad do not decode registry.pol file wholesale, but instead decode individual elements of the file
  213319. .UNINDENT
  213320. .IP \(bu 2
  213321. \fBISSUE\fP \fI\%#45188\fP: (\fI\%jak3kaj\fP) salt state status.process always returns false (refs: \fI\%#45199\fP)
  213322. .IP \(bu 2
  213323. \fBPR\fP \fI\%#45199\fP: (\fI\%gtmanfred\fP) status.pid returns pid ids not process names
  213324. @ \fI2017\-12\-28 19:06:11 UTC\fP
  213325. .INDENT 2.0
  213326. .IP \(bu 2
  213327. 6f52034e08 Merge pull request \fI\%#45199\fP from gtmanfred/status
  213328. .IP \(bu 2
  213329. fb07f9ea7d status.pid returns pid ids not process names
  213330. .UNINDENT
  213331. .IP \(bu 2
  213332. \fBISSUE\fP \fI\%#44728\fP: (\fI\%casselt\fP) Nodegroups can not be defined by glob with ? or seq (refs: \fI\%#45118\fP)
  213333. .IP \(bu 2
  213334. \fBPR\fP \fI\%#45118\fP: (\fI\%garethgreenaway\fP) [2016.11] Fix to allow nodegroups to include sequences
  213335. @ \fI2017\-12\-27 18:49:10 UTC\fP
  213336. .INDENT 2.0
  213337. .IP \(bu 2
  213338. d3381e27d0 Merge pull request \fI\%#45118\fP from garethgreenaway/44728_nodegroups_seq
  213339. .IP \(bu 2
  213340. 0ff811de70 Swapping import to be the old path for 2016.11
  213341. .IP \(bu 2
  213342. b3e2f388f5 Fix to allow nodegroups to include sequences
  213343. .UNINDENT
  213344. .IP \(bu 2
  213345. \fBPR\fP \fI\%#45127\fP: (\fI\%twangboy\fP) Fix issue with 1641 return code
  213346. @ \fI2017\-12\-22 15:18:28 UTC\fP
  213347. .INDENT 2.0
  213348. .IP \(bu 2
  213349. f969aca3a3 Merge pull request \fI\%#45127\fP from twangboy/win_fix_pkg
  213350. .IP \(bu 2
  213351. 14639739f2 Fix issue with 1641 return code
  213352. .UNINDENT
  213353. .IP \(bu 2
  213354. \fBPR\fP \fI\%#45137\fP: (\fI\%twangboy\fP) Catch correct error type in list_keys and list_values
  213355. @ \fI2017\-12\-22 14:45:22 UTC\fP
  213356. .INDENT 2.0
  213357. .IP \(bu 2
  213358. dc357b39f0 Merge pull request \fI\%#45137\fP from twangboy/win_fix_reg_tests
  213359. .IP \(bu 2
  213360. b6f4ef8d73 Catch correct error type in list_keys and list_values
  213361. .UNINDENT
  213362. .IP \(bu 2
  213363. \fBPR\fP \fI\%#45130\fP: (\fI\%rallytime\fP) Resolve groups for salt api
  213364. @ \fI2017\-12\-21 20:38:32 UTC\fP
  213365. .INDENT 2.0
  213366. .IP \(bu 2
  213367. 0aa1662731 Merge pull request \fI\%#45130\fP from rallytime/api\-groups
  213368. .IP \(bu 2
  213369. 2dcc8df845 Resolve groups for salt api
  213370. .UNINDENT
  213371. .IP \(bu 2
  213372. \fBPR\fP \fI\%#45114\fP: (\fI\%twangboy\fP) Move pam library load to try/except block
  213373. @ \fI2017\-12\-21 14:37:17 UTC\fP
  213374. .INDENT 2.0
  213375. .IP \(bu 2
  213376. 7dc3cc4641 Merge pull request \fI\%#45114\fP from twangboy/win_fix_pam
  213377. .IP \(bu 2
  213378. cf5eae1f77 Move pam library load to try/except block
  213379. .UNINDENT
  213380. .IP \(bu 2
  213381. \fBISSUE\fP \fI\%#45049\fP: (\fI\%vernondcole\fP) salt cloud module documentation is missing from the index. (refs: \fI\%#45070\fP)
  213382. .IP \(bu 2
  213383. \fBPR\fP \fI\%#45100\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45070\fP to 2016.11
  213384. @ \fI2017\-12\-20 14:55:01 UTC\fP
  213385. .INDENT 2.0
  213386. .IP \(bu 2
  213387. \fBPR\fP \fI\%#45070\fP: (\fI\%vernondcole\fP) insert clouds modules in index (refs: \fI\%#45100\fP)
  213388. .IP \(bu 2
  213389. 7e128e8f15 Merge pull request \fI\%#45100\fP from rallytime/bp\-45070
  213390. .IP \(bu 2
  213391. 0bdb46dab9 add clouds modules to index
  213392. .UNINDENT
  213393. .IP \(bu 2
  213394. \fBPR\fP \fI\%#45098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45092\fP to 2016.11
  213395. @ \fI2017\-12\-20 14:40:51 UTC\fP
  213396. .INDENT 2.0
  213397. .IP \(bu 2
  213398. \fBPR\fP \fI\%#45092\fP: (\fI\%terminalmage\fP) Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install (refs: \fI\%#45098\fP)
  213399. .IP \(bu 2
  213400. bdf93f339d Merge pull request \fI\%#45098\fP from rallytime/bp\-45092
  213401. .IP \(bu 2
  213402. 80b6bd6813 Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install
  213403. .UNINDENT
  213404. .IP \(bu 2
  213405. \fBISSUE\fP \fI\%#41044\fP: (\fI\%pirxthepilot\fP) user.present \(aqdate\(aq parameter is not applying (refs: \fI\%#44078\fP)
  213406. .IP \(bu 2
  213407. \fBPR\fP \fI\%#44078\fP: (\fI\%rossengeorgiev\fP) user.present: allow date param to be 0
  213408. @ \fI2017\-12\-19 15:59:29 UTC\fP
  213409. .INDENT 2.0
  213410. .IP \(bu 2
  213411. 324b7d4058 Merge pull request \fI\%#44078\fP from rossengeorgiev/fix\-41044
  213412. .IP \(bu 2
  213413. a81a6fe23c fix \fI\%#41044\fP; allow for date param to be 0
  213414. .UNINDENT
  213415. .IP \(bu 2
  213416. \fBPR\fP \fI\%#44970\fP: (\fI\%rallytime\fP) Update bootstrap script to latest release: 2017.12.13
  213417. @ \fI2017\-12\-19 15:49:05 UTC\fP
  213418. .INDENT 2.0
  213419. .IP \(bu 2
  213420. 48a59761df Merge pull request \fI\%#44970\fP from rallytime/update\-bootstrap\-script
  213421. .IP \(bu 2
  213422. b2c8057427 Update bootstrap script to latest release: 2017.12.13
  213423. .UNINDENT
  213424. .IP \(bu 2
  213425. \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)
  213426. .IP \(bu 2
  213427. \fBPR\fP \fI\%#45069\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45040\fP to 2016.11
  213428. @ \fI2017\-12\-19 14:25:57 UTC\fP
  213429. .INDENT 2.0
  213430. .IP \(bu 2
  213431. \fBPR\fP \fI\%#45040\fP: (\fI\%dijit\fP) Installation Fails on headless machines. (refs: \fI\%#45069\fP)
  213432. .IP \(bu 2
  213433. 637fdaed58 Merge pull request \fI\%#45069\fP from rallytime/bp\-45040
  213434. .IP \(bu 2
  213435. aa438e1605 Installation Fails on headless machines.
  213436. .INDENT 2.0
  213437. .INDENT 3.5
  213438. .INDENT 0.0
  213439. .IP \(bu 2
  213440. de53c45c29 Backport \fI\%#27160\fP to 2016.11
  213441. .UNINDENT
  213442. .UNINDENT
  213443. .UNINDENT
  213444. .UNINDENT
  213445. .IP \(bu 2
  213446. \fBISSUE\fP \fI\%#41286\fP: (\fI\%arthtux\fP) boto_vpc.accept_vpc_peering_connection wait a object (refs: \fI\%#41305\fP)
  213447. .IP \(bu 2
  213448. \fBPR\fP \fI\%#44969\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41305\fP to 2016.11
  213449. @ \fI2017\-12\-15 17:22:18 UTC\fP
  213450. .INDENT 2.0
  213451. .IP \(bu 2
  213452. \fBPR\fP \fI\%#41305\fP: (\fI\%arthtux\fP) correct accept_vpc_peering_connection (refs: \fI\%#44969\fP)
  213453. .IP \(bu 2
  213454. 4d6d640381 Merge pull request \fI\%#44969\fP from rallytime/bp\-41305
  213455. .IP \(bu 2
  213456. 5c4bee43dc correct accept_vpc_peering_connection
  213457. .UNINDENT
  213458. .IP \(bu 2
  213459. \fBPR\fP \fI\%#45031\fP: (\fI\%terminalmage\fP) Fix invalid exception class in mysql returner
  213460. @ \fI2017\-12\-15 15:00:15 UTC\fP
  213461. .INDENT 2.0
  213462. .IP \(bu 2
  213463. 10de468f13 Merge pull request \fI\%#45031\fP from terminalmage/fix\-mysql\-returner
  213464. .IP \(bu 2
  213465. f3bd12c27c Fix invalid exception class in mysql returner
  213466. .UNINDENT
  213467. .IP \(bu 2
  213468. \fBISSUE\fP \fI\%#44820\fP: (\fI\%msteed\fP) Custom returner breaks manage runner (refs: \fI\%#44958\fP)
  213469. .IP \(bu 2
  213470. \fBPR\fP \fI\%#44972\fP: (\fI\%terminalmage\fP) Backport \fI\%#44958\fP to 2016.11 branch
  213471. @ \fI2017\-12\-14 16:56:02 UTC\fP
  213472. .INDENT 2.0
  213473. .IP \(bu 2
  213474. \fBPR\fP \fI\%#44958\fP: (\fI\%terminalmage\fP) Fix a race condition in manage runner (refs: \fI\%#44972\fP)
  213475. .IP \(bu 2
  213476. 9a7406207f Merge pull request \fI\%#44972\fP from terminalmage/bp\-44958
  213477. .IP \(bu 2
  213478. a416bf0112 No need to manually do connect_pub, use listen=True in run_job
  213479. .IP \(bu 2
  213480. 3ec004bd2e Fix a race condition in manage runner
  213481. .UNINDENT
  213482. .IP \(bu 2
  213483. \fBISSUE\fP \fI\%#44378\fP: (\fI\%llua\fP) minion: infinite loop during start when schedule key is null (refs: \fI\%#44385\fP)
  213484. .IP \(bu 2
  213485. \fBPR\fP \fI\%#44385\fP: (\fI\%gtmanfred\fP) schedule should be a dict in opts
  213486. @ \fI2017\-12\-12 20:44:02 UTC\fP
  213487. .INDENT 2.0
  213488. .IP \(bu 2
  213489. 1032ca3290 Merge pull request \fI\%#44385\fP from gtmanfred/schedule
  213490. .IP \(bu 2
  213491. 9e15c38da2 add comma
  213492. .IP \(bu 2
  213493. 855d933cb7 schedule should be a dict
  213494. .UNINDENT
  213495. .IP \(bu 2
  213496. \fBISSUE\fP \fI\%#44734\fP: (\fI\%cruscio\fP) Documentation inconsistency for minion ping_interval timing (refs: \fI\%#44770\fP)
  213497. .IP \(bu 2
  213498. \fBPR\fP \fI\%#44770\fP: (\fI\%cruscio\fP) Fix minion ping_interval documentation
  213499. @ \fI2017\-12\-11 19:50:19 UTC\fP
  213500. .INDENT 2.0
  213501. .IP \(bu 2
  213502. 68d901b12c Merge pull request \fI\%#44770\fP from cruscio/2016.11
  213503. .IP \(bu 2
  213504. e2682bf441 Fix minion ping_interval documentation
  213505. .UNINDENT
  213506. .IP \(bu 2
  213507. \fBISSUE\fP \fI\%#44292\fP: (\fI\%andrew\-regan\fP) grains[\(aqvirtual_subtype\(aq] assignment for Docker broken on Mac (refs: \fI\%#44335\fP)
  213508. .IP \(bu 2
  213509. \fBPR\fP \fI\%#44335\fP: (\fI\%gtmanfred\fP) add docker\-ce to docker subtype grains check
  213510. @ \fI2017\-12\-10 17:17:49 UTC\fP
  213511. .INDENT 2.0
  213512. .IP \(bu 2
  213513. d4ab55ec47 Merge pull request \fI\%#44335\fP from gtmanfred/2016.11
  213514. .IP \(bu 2
  213515. 3f1268d67f fix patching for python 2.6
  213516. .IP \(bu 2
  213517. 1d0bd5bb32 Merge branch \(aq2016.11\(aq into 2016.11
  213518. .IP \(bu 2
  213519. f02b02032d Merge pull request \fI\%#4\fP from terminalmage/pr\-44335
  213520. .INDENT 2.0
  213521. .IP \(bu 2
  213522. b4eb1527a6 Add test for PR 44335
  213523. .UNINDENT
  213524. .IP \(bu 2
  213525. a30af3252e add docker\-ce to docker subtype grains check
  213526. .UNINDENT
  213527. .IP \(bu 2
  213528. \fBISSUE\fP \fI\%#44530\fP: (\fI\%roaldnefs\fP) Identifier not working in salt.states.cron when special is used (refs: \fI\%#44579\fP)
  213529. .IP \(bu 2
  213530. \fBPR\fP \fI\%#44579\fP: (\fI\%roaldnefs\fP) Fix bug in cron module and state \- Fixes \fI\%#44530\fP
  213531. @ \fI2017\-12\-07 20:18:27 UTC\fP
  213532. .INDENT 2.0
  213533. .IP \(bu 2
  213534. bb1f8dceaf Merge pull request \fI\%#44579\fP from roaldnefs/fix\-cron\-identifier
  213535. .IP \(bu 2
  213536. df73a4c051 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  213537. .UNINDENT
  213538. .IP \(bu 2
  213539. \fBPR\fP \fI\%#44852\fP: (\fI\%damon\-atkins\fP) win_pkg fix spelling typos and minion option 2016.11
  213540. @ \fI2017\-12\-06 16:49:17 UTC\fP
  213541. .INDENT 2.0
  213542. .IP \(bu 2
  213543. af0131fa1f Merge pull request \fI\%#44852\fP from damon\-atkins/2016.11_win_pkg_typo_n_fix
  213544. .IP \(bu 2
  213545. 0e7c19084f Lint: Remove extra whitespace
  213546. .IP \(bu 2
  213547. 7c7e21f94d Fix spelling typo, and fix backwards campatible minion option for repo location
  213548. .UNINDENT
  213549. .IP \(bu 2
  213550. \fBISSUE\fP \fI\%#44365\fP: (\fI\%icycle77\fP) file.managed appears to ignore source_hash check (refs: \fI\%#44794\fP)
  213551. .IP \(bu 2
  213552. \fBPR\fP \fI\%#44794\fP: (\fI\%terminalmage\fP) Fix regression in file.managed when source_hash used with local file
  213553. @ \fI2017\-12\-04 14:23:29 UTC\fP
  213554. .INDENT 2.0
  213555. .IP \(bu 2
  213556. 88c0d66b4e Merge pull request \fI\%#44794\fP from terminalmage/issue44365
  213557. .IP \(bu 2
  213558. 3b8b6f25e6 Remove debugging line
  213559. .IP \(bu 2
  213560. 153bf45b03 Fix regression in file.managed when source_hash used with local file
  213561. .UNINDENT
  213562. .IP \(bu 2
  213563. \fBISSUE\fP \fI\%#35777\fP: (\fI\%rallytime\fP) Properly deprecate template context data in Fluorine (refs: \fI\%#44738\fP)
  213564. .IP \(bu 2
  213565. \fBISSUE\fP \fI\%#35523\fP: (\fI\%rallytime\fP) Come up with a reasonable alternative for lxc.edited_conf (refs: \fI\%#44738\fP)
  213566. .IP \(bu 2
  213567. \fBPR\fP \fI\%#44738\fP: (\fI\%rallytime\fP) Bump some deprecation warnings from Oxygen to Fluorine
  213568. @ \fI2017\-12\-01 23:10:08 UTC\fP
  213569. .INDENT 2.0
  213570. .IP \(bu 2
  213571. c8bb9dfbbb Merge pull request \fI\%#44738\fP from rallytime/bump\-oxygen\-warnings
  213572. .IP \(bu 2
  213573. ead3c569e1 Bump deprecation warnings from Oxygen to Fluorine
  213574. .UNINDENT
  213575. .IP \(bu 2
  213576. \fBISSUE\fP \fI\%#44730\fP: (\fI\%msciciel\fP) State network.routes could not add route without gateway on centos7 (refs: \fI\%#44741\fP)
  213577. .IP \(bu 2
  213578. \fBPR\fP \fI\%#44741\fP: (\fI\%gtmanfred\fP) if gateway is not specified use iface
  213579. @ \fI2017\-12\-01 23:09:03 UTC\fP
  213580. .INDENT 2.0
  213581. .IP \(bu 2
  213582. 88e3aab00d Merge pull request \fI\%#44741\fP from gtmanfred/rhip
  213583. .IP \(bu 2
  213584. 439dc8dce6 if gateway is not specified use iface
  213585. .UNINDENT
  213586. .IP \(bu 2
  213587. \fBISSUE\fP \fI\%#31405\fP: (\fI\%SEJeff\fP) Salt leaves tmp file when file.managed dest file is immutable (refs: \fI\%#44699\fP)
  213588. .IP \(bu 2
  213589. \fBPR\fP \fI\%#44699\fP: (\fI\%jfindlay\fP) utils/files.py remove temp file upon move failure
  213590. @ \fI2017\-12\-01 15:03:54 UTC\fP
  213591. .INDENT 2.0
  213592. .IP \(bu 2
  213593. 97e0cf569c Merge pull request \fI\%#44699\fP from jfindlay/attr_file
  213594. .IP \(bu 2
  213595. 9e5a40ea7c Merge branch \(aq2016.11\(aq into attr_file
  213596. .IP \(bu 2
  213597. 5c34607f6c utils/files remove temp file upon move failure
  213598. .UNINDENT
  213599. .IP \(bu 2
  213600. \fBISSUE\fP \fI\%#44556\fP: (\fI\%doesitblend\fP) \-\-static option doesn\(aqt return highstate output (refs: \fI\%#44714\fP)
  213601. .IP \(bu 2
  213602. \fBPR\fP \fI\%#44714\fP: (\fI\%rallytime\fP) Allow \-\-static option to display state runs with highstate output
  213603. @ \fI2017\-12\-01 14:31:19 UTC\fP
  213604. .INDENT 2.0
  213605. .IP \(bu 2
  213606. 7434e0afdf Merge pull request \fI\%#44714\fP from rallytime/fix\-44556
  213607. .IP \(bu 2
  213608. 1bbe1abeb2 Allow \-\-static option to display state runs with highstate output
  213609. .UNINDENT
  213610. .IP \(bu 2
  213611. \fBPR\fP \fI\%#44517\fP: (\fI\%whytewolf\fP) Publish port doc missing
  213612. @ \fI2017\-11\-28 21:50:19 UTC\fP
  213613. .INDENT 2.0
  213614. .IP \(bu 2
  213615. 998d714ee7 Merge pull request \fI\%#44517\fP from whytewolf/publish_port_doc_missing
  213616. .IP \(bu 2
  213617. 4b5855283a missed one place where i didnt chanbge master_port from my copy to publish_port
  213618. .IP \(bu 2
  213619. e4610baea5 update doc to have publish port
  213620. .UNINDENT
  213621. .IP \(bu 2
  213622. \fBPR\fP \fI\%#41279\fP: (\fI\%Ch3LL\fP) Add fqdn and dns core grain tests
  213623. @ \fI2017\-11\-27 21:28:10 UTC\fP
  213624. .INDENT 2.0
  213625. .IP \(bu 2
  213626. 6169b52749 Merge pull request \fI\%#41279\fP from Ch3LL/add_grain_tests
  213627. .IP \(bu 2
  213628. 1b64f15692 Merge branch \(aq2016.11\(aq into add_grain_tests
  213629. .IP \(bu 2
  213630. 095f1b7d7a Merge branch \(aq2016.11\(aq into add_grain_tests
  213631. .IP \(bu 2
  213632. 9ea4db4224 mock socket.getaddrinfo
  213633. .IP \(bu 2
  213634. 78a07e30f4 add more fqdn tests and remove some of the mocking
  213635. .IP \(bu 2
  213636. 5dbf4144ce add ipv6 in opts
  213637. .IP \(bu 2
  213638. eabc1b4f9c Add fqdn and dns core grain tests
  213639. .INDENT 2.0
  213640. .INDENT 3.5
  213641. .INDENT 0.0
  213642. .IP \(bu 2
  213643. 3ec4329307 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  213644. .UNINDENT
  213645. .UNINDENT
  213646. .UNINDENT
  213647. .UNINDENT
  213648. .IP \(bu 2
  213649. \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)
  213650. .IP \(bu 2
  213651. \fBPR\fP \fI\%#44563\fP: (\fI\%creideiki\fP) Send Unix timestamps to database in pgjsonb returner
  213652. @ \fI2017\-11\-21 17:44:32 UTC\fP
  213653. .INDENT 2.0
  213654. .IP \(bu 2
  213655. dc6de050a9 Merge pull request \fI\%#44563\fP from creideiki/pgjsonb\-timestamps\-44544
  213656. .IP \(bu 2
  213657. 231e412ca4 Merge branch \(aq2016.11\(aq into pgjsonb\-timestamps\-44544
  213658. .UNINDENT
  213659. .IP \(bu 2
  213660. \fBISSUE\fP \fI\%#44601\fP: (\fI\%rallytime\fP) CherryPy 12.0 removed support for "engine.timeout_monitor.on" config option (refs: \fI\%#44602\fP)
  213661. .IP \(bu 2
  213662. \fBPR\fP \fI\%#44602\fP: (\fI\%rallytime\fP) Handle timeout_monitor attribute error for new versions of CherryPy
  213663. @ \fI2017\-11\-20 21:38:40 UTC\fP
  213664. .INDENT 2.0
  213665. .IP \(bu 2
  213666. 4369df020b Merge pull request \fI\%#44602\fP from rallytime/fix\-44601
  213667. .IP \(bu 2
  213668. ff303fd060 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  213669. .UNINDENT
  213670. .IP \(bu 2
  213671. \fBPR\fP \fI\%#44604\fP: (\fI\%lorengordon\fP) Documents the exclude argument in state execution module
  213672. @ \fI2017\-11\-20 18:19:18 UTC\fP
  213673. .INDENT 2.0
  213674. .IP \(bu 2
  213675. 4a4756fc37 Merge pull request \fI\%#44604\fP from lorengordon/doc\-exclude
  213676. .IP \(bu 2
  213677. c4a6c40eb3 Documents the exclude argument in state execution module
  213678. .IP \(bu 2
  213679. 15c445e6b9 Send Unix timestamps to database in pgjsonb
  213680. .INDENT 2.0
  213681. .INDENT 3.5
  213682. .INDENT 0.0
  213683. .IP \(bu 2
  213684. 99fa05a456 Fix for bug in cron state
  213685. .IP \(bu 2
  213686. 97328faeac Fix for bug in cron module
  213687. .UNINDENT
  213688. .UNINDENT
  213689. .UNINDENT
  213690. .UNINDENT
  213691. .IP \(bu 2
  213692. \fBPR\fP \fI\%#44434\fP: (\fI\%whytewolf\fP) add a note that describes grain rebuilding on restart and refresh
  213693. @ \fI2017\-11\-14 11:21:54 UTC\fP
  213694. .INDENT 2.0
  213695. .IP \(bu 2
  213696. 91d46d4cfc Merge pull request \fI\%#44434\fP from whytewolf/1837
  213697. .IP \(bu 2
  213698. d148e39dda change from md to rst for code reference
  213699. .IP \(bu 2
  213700. 955e305bda fix bad english, as requested by cachedout
  213701. .IP \(bu 2
  213702. 7256fcc1c9 update note to take into account grains_cache
  213703. .IP \(bu 2
  213704. 7a2981585e Merge branch \(aq2016.11\(aq into 1837
  213705. .IP \(bu 2
  213706. aca0405b26 add a note that describes grain rebuilding on restart and refresh
  213707. .UNINDENT
  213708. .IP \(bu 2
  213709. \fBISSUE\fP \fI\%#41474\fP: (\fI\%dmaziuk\fP) state.file.* line endings (refs: \fI\%#44321\fP)
  213710. .IP \(bu 2
  213711. \fBPR\fP \fI\%#44321\fP: (\fI\%gvengel\fP) Fix file.line diff formatting.
  213712. @ \fI2017\-11\-13 19:36:39 UTC\fP
  213713. .INDENT 2.0
  213714. .IP \(bu 2
  213715. a3bd99317f Merge pull request \fI\%#44321\fP from gvengel/fix\-file\-line\-diff\-output
  213716. .IP \(bu 2
  213717. 69a50204a6 Add newline for lint.
  213718. .IP \(bu 2
  213719. ef7b6bbb81 Fixed issue with file.line on Windows running Python 2.
  213720. .IP \(bu 2
  213721. 8f89c99fa5 Fix FileModuleTest setUp and tearDown to work on Windows.
  213722. .IP \(bu 2
  213723. 3ac5391f5f Namespace missing functions for file.line on Windows.
  213724. .IP \(bu 2
  213725. b2b8f075b9 Fixed test to work on Windows.
  213726. .IP \(bu 2
  213727. 5a5a2dd026 Added integration test for issue \fI\%#41474\fP
  213728. .IP \(bu 2
  213729. 24d7315f1a Fix file.line diff formatting.
  213730. .UNINDENT
  213731. .IP \(bu 2
  213732. \fBISSUE\fP \fI\%#43417\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.install and pkg.remove general issues (refs: \fI\%#43708\fP)
  213733. .IP \(bu 2
  213734. \fBPR\fP \fI\%#43708\fP: (\fI\%damon\-atkins\fP) Merge Ready : Backport develop win_pkg to 2016.11 with additional bug fixes
  213735. @ \fI2017\-11\-13 19:33:41 UTC\fP
  213736. .INDENT 2.0
  213737. .IP \(bu 2
  213738. 9ca563718d Merge pull request \fI\%#43708\fP from damon\-atkins/2016.11_43417_Backport_and_Fixes
  213739. .IP \(bu 2
  213740. 04d03ea6b8 Updated comment
  213741. .IP \(bu 2
  213742. 1dd565e585 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213743. .IP \(bu 2
  213744. dd48ba2616 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213745. .IP \(bu 2
  213746. a0d08598bf dco fix
  213747. .IP \(bu 2
  213748. 9467899fc6 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213749. .IP \(bu 2
  213750. 6dc180fd0e doco fixes
  213751. .IP \(bu 2
  213752. 2496a42ea4 lint fix
  213753. .IP \(bu 2
  213754. 2c937fbe19 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213755. .IP \(bu 2
  213756. c9c8c48a4d all remove/install commands are passed to cmd.exe /s /c and commands are passed as strings to cmdmod
  213757. .IP \(bu 2
  213758. 350244bd93 typo in comments and doc strings.
  213759. .IP \(bu 2
  213760. ec31f5a9bd 2017.11/develop version() was ignoring saltenv setting.
  213761. .IP \(bu 2
  213762. b314549a32 Backport of devlop to 2016.11 with additional bug fixes
  213763. .UNINDENT
  213764. .IP \(bu 2
  213765. \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)
  213766. .IP \(bu 2
  213767. \fBPR\fP \fI\%#44477\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44424\fP to 2016.11
  213768. @ \fI2017\-11\-13 17:33:29 UTC\fP
  213769. .INDENT 2.0
  213770. .IP \(bu 2
  213771. \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)
  213772. .IP \(bu 2
  213773. 68ea22188e Merge pull request \fI\%#44477\fP from rallytime/bp\-44424
  213774. .IP \(bu 2
  213775. 4a9f8dcc96 Fix \fI\%#44423\fP: Handle index=None and index=0 distinctly
  213776. .UNINDENT
  213777. .IP \(bu 2
  213778. \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)
  213779. .IP \(bu 2
  213780. \fBPR\fP \fI\%#44483\fP: (\fI\%terminalmage\fP) salt\-call: account for instances where __pillar__ is empty
  213781. @ \fI2017\-11\-13 17:30:36 UTC\fP
  213782. .INDENT 2.0
  213783. .IP \(bu 2
  213784. 2c89050a24 Merge pull request \fI\%#44483\fP from terminalmage/issue44034
  213785. .IP \(bu 2
  213786. a9db8becea salt\-call: account for instances where __pillar__ is empty
  213787. .UNINDENT
  213788. .IP \(bu 2
  213789. \fBPR\fP \fI\%#44489\fP: (\fI\%whytewolf\fP) update log\-granular\-levels to describe what they are filtering on
  213790. @ \fI2017\-11\-13 17:27:37 UTC\fP
  213791. .INDENT 2.0
  213792. .IP \(bu 2
  213793. b5c2028680 Merge pull request \fI\%#44489\fP from whytewolf/1956_log\-granular\-levels
  213794. .IP \(bu 2
  213795. 9cdeb4e903 update log\-granular\-levels to describe what they are filtering on
  213796. .UNINDENT
  213797. .IP \(bu 2
  213798. \fBPR\fP \fI\%#44193\fP: (\fI\%twangboy\fP) Fix reg.py for use with LGPO module
  213799. @ \fI2017\-11\-10 19:01:17 UTC\fP
  213800. .INDENT 2.0
  213801. .IP \(bu 2
  213802. ea07f9c54c Merge pull request \fI\%#44193\fP from twangboy/win_fix_reg
  213803. .IP \(bu 2
  213804. 44d6d9f46d Remove unused import (lint)
  213805. .IP \(bu 2
  213806. f7502436bd Fix various issues
  213807. .IP \(bu 2
  213808. 221e6e3b91 make salt.utils.to_unicode return none when passed none
  213809. .IP \(bu 2
  213810. ce41acc788 Fix many issues with reg.py
  213811. .IP \(bu 2
  213812. 4a19df1f7f Use six.text_type instead of str
  213813. .IP \(bu 2
  213814. 1b12acd303 Check type before casting
  213815. .IP \(bu 2
  213816. 03fa37b445 Cast vdata to its proper type
  213817. .UNINDENT
  213818. .IP \(bu 2
  213819. \fBPR\fP \fI\%#43863\fP: (\fI\%nicholasmhughes\fP) Atomicfile only copies mode and not user/group perms
  213820. @ \fI2017\-11\-10 18:47:55 UTC\fP
  213821. .INDENT 2.0
  213822. .IP \(bu 2
  213823. ed8da2450b Merge pull request \fI\%#43863\fP from nicholasmhughes/fix\-atomicfile\-permission\-copy
  213824. .IP \(bu 2
  213825. ea852ec5d3 remove index use with stat module attributes
  213826. .IP \(bu 2
  213827. dbeeb0e917 fixes \fI\%#38452\fP atomicfile only copies mode and not user/group perms
  213828. .UNINDENT
  213829. .IP \(bu 2
  213830. \fBISSUE\fP \fI\%#39901\fP: (\fI\%seanjnkns\fP) network.managed ipaddrs ignored (refs: \fI\%#44260\fP)
  213831. .IP \(bu 2
  213832. \fBPR\fP \fI\%#44260\fP: (\fI\%seanjnkns\fP) Fixes \fI\%#39901\fP for RH/CentOS 7
  213833. @ \fI2017\-11\-07 23:14:59 UTC\fP
  213834. .INDENT 2.0
  213835. .IP \(bu 2
  213836. a66cd67d15 Merge pull request \fI\%#44260\fP from seanjnkns/issue\-39901
  213837. .IP \(bu 2
  213838. ed8cccf457 \fI\%#39901\fP: Fix pylint
  213839. .IP \(bu 2
  213840. 43c81dfdee \fI\%#39901\fP: Add unit tests
  213841. .IP \(bu 2
  213842. 613d500876 Merge branch \(aq2016.11\(aq into issue\-39901
  213843. .IP \(bu 2
  213844. b97e8046ca Utilize salt.utils.validate.net.* and _raise_error_iface
  213845. .IP \(bu 2
  213846. 6818f3631d Fixes \fI\%#39901\fP for RH/CentOS 7
  213847. .UNINDENT
  213848. .IP \(bu 2
  213849. \fBPR\fP \fI\%#44383\fP: (\fI\%gtmanfred\fP) switch salt\-jenkins over to saltstack for kitchen\-salt tests
  213850. @ \fI2017\-11\-03 19:56:48 UTC\fP
  213851. .INDENT 2.0
  213852. .IP \(bu 2
  213853. 5e289f42ba Merge pull request \fI\%#44383\fP from gtmanfred/2016kitchen
  213854. .IP \(bu 2
  213855. b65f4ea4ea switch salt\-jenkins over to saltstack
  213856. .UNINDENT
  213857. .IP \(bu 2
  213858. \fBPR\fP \fI\%#44173\fP: (\fI\%twangboy\fP) Use google style docstrings in win_system.py
  213859. @ \fI2017\-10\-31 17:56:34 UTC\fP
  213860. .INDENT 2.0
  213861. .IP \(bu 2
  213862. cab54e34b5 Merge pull request \fI\%#44173\fP from twangboy/win_system_docs
  213863. .IP \(bu 2
  213864. 8e111b413d Fix some of the wording and grammer errors
  213865. .IP \(bu 2
  213866. a12bc5ae41 Use google style docstrings
  213867. .UNINDENT
  213868. .IP \(bu 2
  213869. \fBPR\fP \fI\%#44304\fP: (\fI\%jfindlay\fP) states.cron identifier defaults to name
  213870. @ \fI2017\-10\-31 16:39:47 UTC\fP
  213871. .INDENT 2.0
  213872. .IP \(bu 2
  213873. 7aaea1d179 Merge pull request \fI\%#44304\fP from jfindlay/cron_id
  213874. .IP \(bu 2
  213875. cc038c5bec states.cron identifier defaults to name
  213876. .UNINDENT
  213877. .IP \(bu 2
  213878. \fBISSUE\fP \fI\%#44313\fP: (\fI\%rossengeorgiev\fP) salt\-ssh: \-\-user option missing from the cli documentation (refs: \fI\%#44322\fP)
  213879. .IP \(bu 2
  213880. \fBPR\fP \fI\%#44322\fP: (\fI\%rossengeorgiev\fP) updated CLI docs for salt\-ssh
  213881. @ \fI2017\-10\-30 21:39:23 UTC\fP
  213882. .INDENT 2.0
  213883. .IP \(bu 2
  213884. e4dbbde734 Merge pull request \fI\%#44322\fP from rossengeorgiev/saltssh\-docs\-update
  213885. .IP \(bu 2
  213886. b18f2e5a6d fix program name and description for \-\-static
  213887. .IP \(bu 2
  213888. 5b10918f02 updated CLI docs for salt\-ssh
  213889. .UNINDENT
  213890. .IP \(bu 2
  213891. \fBPR\fP \fI\%#44345\fP: (\fI\%gtmanfred\fP) remove binding from erb template rendering
  213892. @ \fI2017\-10\-30 20:57:43 UTC\fP
  213893. .INDENT 2.0
  213894. .IP \(bu 2
  213895. 4e6f09e3eb Merge pull request \fI\%#44345\fP from gtmanfred/2016kitchen
  213896. .IP \(bu 2
  213897. 79b8b2d0bf remove binding
  213898. .UNINDENT
  213899. .IP \(bu 2
  213900. \fBPR\fP \fI\%#44342\fP: (\fI\%gtmanfred\fP) render template files platforms.yml and driver.yml
  213901. @ \fI2017\-10\-30 20:04:00 UTC\fP
  213902. .INDENT 2.0
  213903. .IP \(bu 2
  213904. 209847c8c2 Merge pull request \fI\%#44342\fP from gtmanfred/2016kitchen
  213905. .IP \(bu 2
  213906. c50508f0b7 render template files platforms.yml and driver.yml
  213907. .UNINDENT
  213908. .IP \(bu 2
  213909. \fBISSUE\fP \fI\%#44336\fP: (\fI\%corywright\fP) Docs for archive.tar should not use leading dash for tar options (refs: \fI\%#44339\fP)
  213910. .IP \(bu 2
  213911. \fBPR\fP \fI\%#44339\fP: (\fI\%corywright\fP) Remove leading dash from options in archive.tar docs (2016.11)
  213912. @ \fI2017\-10\-30 19:00:34 UTC\fP
  213913. .INDENT 2.0
  213914. .IP \(bu 2
  213915. 1be65224cb Merge pull request \fI\%#44339\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2016\-11
  213916. .IP \(bu 2
  213917. 9c1c35a59f Remove leading dash (\-) from options in archive.tar documentation
  213918. .UNINDENT
  213919. .IP \(bu 2
  213920. \fBISSUE\fP \fI\%#44272\fP: (\fI\%gurubert\fP) [patch] win_service.stop() fails (refs: \fI\%#44295\fP)
  213921. .IP \(bu 2
  213922. \fBPR\fP \fI\%#44295\fP: (\fI\%gurubert\fP) fixes issue \fI\%#44272\fP
  213923. @ \fI2017\-10\-27 14:28:57 UTC\fP
  213924. .INDENT 2.0
  213925. .IP \(bu 2
  213926. bebc33daf5 Merge pull request \fI\%#44295\fP from HeinleinSupport/issue44272
  213927. .IP \(bu 2
  213928. f972715a45 fixes issue \fI\%#44272\fP
  213929. .UNINDENT
  213930. .IP \(bu 2
  213931. \fBPR\fP \fI\%#44286\fP: (\fI\%gtmanfred\fP) use our git repo for kitchen\-salt
  213932. @ \fI2017\-10\-25 19:27:32 UTC\fP
  213933. .INDENT 2.0
  213934. .IP \(bu 2
  213935. e7ca9f8407 Merge pull request \fI\%#44286\fP from gtmanfred/2016.11
  213936. .IP \(bu 2
  213937. 193e715e37 use our git repo for kitchen\-salt
  213938. .UNINDENT
  213939. .IP \(bu 2
  213940. \fBPR\fP \fI\%#44259\fP: (\fI\%gtmanfred\fP) begin switching in kitchen\-salt for running the test suite
  213941. @ \fI2017\-10\-25 13:30:35 UTC\fP
  213942. .INDENT 2.0
  213943. .IP \(bu 2
  213944. 8a1ea165af Merge pull request \fI\%#44259\fP from gtmanfred/2016.11
  213945. .IP \(bu 2
  213946. 56a3ad8f68 fix pylint comments
  213947. .IP \(bu 2
  213948. 4add666db1 add comment to Gemfile and move copyartifacts
  213949. .IP \(bu 2
  213950. b4c8f7eb57 fix pylint
  213951. .IP \(bu 2
  213952. 392fd4f837 try newest salttesting
  213953. .IP \(bu 2
  213954. 79251287d0 add logging
  213955. .IP \(bu 2
  213956. 38963d5a82 use transport if not set in state_file
  213957. .IP \(bu 2
  213958. 10e309a64f which vagrant should go to stderr
  213959. .IP \(bu 2
  213960. 9307564de0 fix output columns
  213961. .IP \(bu 2
  213962. 2da22f87e1 test opennebula
  213963. .IP \(bu 2
  213964. 9f38f16905 add opennebula to Gemfile
  213965. .IP \(bu 2
  213966. 7465f9b27a add script for copying back artifacts
  213967. .IP \(bu 2
  213968. 255118cfd7 run tests with kitchen
  213969. .UNINDENT
  213970. .IP \(bu 2
  213971. \fBPR\fP \fI\%#44268\fP: (\fI\%twangboy\fP) Fix typo
  213972. @ \fI2017\-10\-25 13:01:35 UTC\fP
  213973. .INDENT 2.0
  213974. .IP \(bu 2
  213975. 9d6bc8509b Merge pull request \fI\%#44268\fP from twangboy/win_fix_lgpo_typo
  213976. .IP \(bu 2
  213977. a6a4c10a77 Fix typo
  213978. .UNINDENT
  213979. .IP \(bu 2
  213980. \fBPR\fP \fI\%#44269\fP: (\fI\%terminalmage\fP) Fix log message in salt.utils.gitfs
  213981. @ \fI2017\-10\-25 13:00:58 UTC\fP
  213982. .INDENT 2.0
  213983. .IP \(bu 2
  213984. 0beb65a283 Merge pull request \fI\%#44269\fP from terminalmage/fix\-log\-message
  213985. .IP \(bu 2
  213986. bc9cd65496 Fix log message in salt.utils.gitfs
  213987. .UNINDENT
  213988. .IP \(bu 2
  213989. \fBISSUE\fP \fI\%#44155\fP: (\fI\%rhoths\fP) file.directory with clean not triggering listener in test mode (refs: \fI\%#44160\fP)
  213990. .IP \(bu 2
  213991. \fBPR\fP \fI\%#44160\fP: (\fI\%gtmanfred\fP) add changes to test return
  213992. @ \fI2017\-10\-23 14:35:21 UTC\fP
  213993. .INDENT 2.0
  213994. .IP \(bu 2
  213995. 304dd2529d Merge pull request \fI\%#44160\fP from gtmanfred/directory
  213996. .IP \(bu 2
  213997. a7d3d668f4 missed removing changes in the next test
  213998. .IP \(bu 2
  213999. ac0b5ec440 fix test
  214000. .IP \(bu 2
  214001. d3d00c3e62 add changes to test return
  214002. .UNINDENT
  214003. .IP \(bu 2
  214004. \fBPR\fP \fI\%#44205\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44177\fP to 2016.11
  214005. @ \fI2017\-10\-23 14:09:07 UTC\fP
  214006. .INDENT 2.0
  214007. .IP \(bu 2
  214008. \fBPR\fP \fI\%#44177\fP: (\fI\%senthilkumar\-e\fP) Fixing default redis.host in documentation (refs: \fI\%#44205\fP)
  214009. .IP \(bu 2
  214010. e10395483d Merge pull request \fI\%#44205\fP from rallytime/bp\-44177
  214011. .IP \(bu 2
  214012. b9940f8521 Fixing default redis.host in documentation
  214013. .UNINDENT
  214014. .IP \(bu 2
  214015. \fBISSUE\fP \fI\%#44140\fP: (\fI\%vtolstov\fP) incorrect network interfaces settings with network.managed under debian jessie (refs: \fI\%#44167\fP)
  214016. .IP \(bu 2
  214017. \fBPR\fP \fI\%#44167\fP: (\fI\%garethgreenaway\fP) Fixes to modules/debian_ip
  214018. @ \fI2017\-10\-20 14:25:39 UTC\fP
  214019. .INDENT 2.0
  214020. .IP \(bu 2
  214021. 09ddfd0c08 Merge pull request \fI\%#44167\fP from garethgreenaway/44140_debian_ip_fixes
  214022. .IP \(bu 2
  214023. 5f7555846f When looping through the various pre, post, up and down commands put them into the interface dict using the right internet family variable.
  214024. .UNINDENT
  214025. .IP \(bu 2
  214026. \fBPR\fP \fI\%#43830\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43644\fP to 2016.11
  214027. @ \fI2017\-10\-19 22:57:51 UTC\fP
  214028. .INDENT 2.0
  214029. .IP \(bu 2
  214030. \fBPR\fP \fI\%#43644\fP: (\fI\%defanator\fP) Several fixes for RDS DB parameter group management (refs: \fI\%#43830\fP)
  214031. .IP \(bu 2
  214032. 9f9e936b52 Merge pull request \fI\%#43830\fP from rallytime/bp\-43644
  214033. .IP \(bu 2
  214034. 12845ae802 Several fixes for RDS DB parameter group management
  214035. .UNINDENT
  214036. .IP \(bu 2
  214037. \fBISSUE\fP \fI\%#43936\fP: (\fI\%oeuftete\fP) manage.present still reports \fIlost\fP minion (refs: \fI\%#43994\fP)
  214038. .IP \(bu 2
  214039. \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)
  214040. .IP \(bu 2
  214041. \fBPR\fP \fI\%#43994\fP: (\fI\%oeuftete\fP) Fix manage.present to show lost minions
  214042. @ \fI2017\-10\-19 22:27:59 UTC\fP
  214043. .INDENT 2.0
  214044. .IP \(bu 2
  214045. 07db6a3d8b Merge pull request \fI\%#43994\fP from oeuftete/fix\-manage\-runner\-presence
  214046. .IP \(bu 2
  214047. f3980d7d83 Fix manage.present to show lost minions
  214048. .UNINDENT
  214049. .IP \(bu 2
  214050. \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)
  214051. .IP \(bu 2
  214052. \fBPR\fP \fI\%#44188\fP: (\fI\%terminalmage\fP) yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  214053. @ \fI2017\-10\-19 22:20:35 UTC\fP
  214054. .INDENT 2.0
  214055. .IP \(bu 2
  214056. a07537e258 Merge pull request \fI\%#44188\fP from terminalmage/issue44150
  214057. .IP \(bu 2
  214058. 0692f442db yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  214059. .UNINDENT
  214060. .IP \(bu 2
  214061. \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)
  214062. .IP \(bu 2
  214063. \fBPR\fP \fI\%#44158\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44089\fP to 2016.11
  214064. @ \fI2017\-10\-19 20:38:15 UTC\fP
  214065. .INDENT 2.0
  214066. .IP \(bu 2
  214067. \fBPR\fP \fI\%#44089\fP: (\fI\%cetanu\fP) Catch on empty Virtualbox network addr \fI\%#43427\fP (refs: \fI\%#44158\fP)
  214068. .IP \(bu 2
  214069. 715edc0cea Merge pull request \fI\%#44158\fP from rallytime/bp\-44089
  214070. .IP \(bu 2
  214071. 534faf0b7a Catch on empty Virtualbox network addr \fI\%#43427\fP
  214072. .UNINDENT
  214073. .IP \(bu 2
  214074. \fBISSUE\fP \fI\%#43307\fP: (\fI\%marek\-knappe\fP) Filesystem creation is failing on newly created LV (refs: \fI\%#44029\fP)
  214075. .IP \(bu 2
  214076. \fBPR\fP \fI\%#44131\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44029\fP to 2016.11
  214077. @ \fI2017\-10\-17 15:05:39 UTC\fP
  214078. .INDENT 2.0
  214079. .IP \(bu 2
  214080. \fBPR\fP \fI\%#44029\fP: (\fI\%msummers42\fP) addresses issue \fI\%#43307\fP, disk.format_ to disk.format (refs: \fI\%#44131\fP)
  214081. .IP \(bu 2
  214082. 0cd493b691 Merge pull request \fI\%#44131\fP from rallytime/bp\-44029
  214083. .IP \(bu 2
  214084. bebf301976 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  214085. .IP \(bu 2
  214086. b4ba7ae2fc addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  214087. .UNINDENT
  214088. .IP \(bu 2
  214089. \fBISSUE\fP \fI\%#44087\fP: (\fI\%mfussenegger\fP) Using state.highstate with \fIterse=true\fP prevents useful error output (refs: \fI\%#44093\fP)
  214090. .IP \(bu 2
  214091. \fBPR\fP \fI\%#44093\fP: (\fI\%gtmanfred\fP) don\(aqt filter if return is not a dict
  214092. @ \fI2017\-10\-16 19:13:19 UTC\fP
  214093. .INDENT 2.0
  214094. .IP \(bu 2
  214095. 3a68e356f8 Merge pull request \fI\%#44093\fP from gtmanfred/fix\-44087
  214096. .IP \(bu 2
  214097. 5455c5053b fix pylint
  214098. .IP \(bu 2
  214099. f749cafa25 don\(aqt filter if return is not a dict
  214100. .UNINDENT
  214101. .IP \(bu 2
  214102. \fBPR\fP \fI\%#44122\fP: (\fI\%cachedout\fP) Add note about GPG signing to PR template
  214103. @ \fI2017\-10\-16 19:09:38 UTC\fP
  214104. .INDENT 2.0
  214105. .IP \(bu 2
  214106. c785d7a847 Merge pull request \fI\%#44122\fP from cachedout/gpg_pr_template
  214107. .IP \(bu 2
  214108. e41e3d76be Typo fix
  214109. .IP \(bu 2
  214110. 37c7980880 Add note about GPG signing to PR template
  214111. .UNINDENT
  214112. .IP \(bu 2
  214113. \fBPR\fP \fI\%#44124\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.11.8 to 2016.11
  214114. @ \fI2017\-10\-16 19:07:14 UTC\fP
  214115. .INDENT 2.0
  214116. .IP \(bu 2
  214117. bf90ea1f51 Merge pull request \fI\%#44124\fP from rallytime/merge\-2016.11
  214118. .IP \(bu 2
  214119. 59861291c8 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  214120. .INDENT 2.0
  214121. .IP \(bu 2
  214122. 57623e2abe Merge pull request \fI\%#44028\fP from rallytime/bp\-44011
  214123. .INDENT 2.0
  214124. .IP \(bu 2
  214125. 89e084bda3 Do not allow IDs with null bytes in decoded payloads
  214126. .IP \(bu 2
  214127. 206ae23f15 Don\(aqt allow path separators in minion ID
  214128. .UNINDENT
  214129. .UNINDENT
  214130. .UNINDENT
  214131. .IP \(bu 2
  214132. \fBPR\fP \fI\%#44097\fP: (\fI\%gtmanfred\fP) OpenNebula does not require the template_id to be specified
  214133. @ \fI2017\-10\-16 18:36:17 UTC\fP
  214134. .INDENT 2.0
  214135. .IP \(bu 2
  214136. 13f3ffa83a Merge pull request \fI\%#44097\fP from gtmanfred/openneb
  214137. .IP \(bu 2
  214138. c29655b2c2 Merge branch \(aq2016.11\(aq into openneb
  214139. .IP \(bu 2
  214140. bd2490b149 OpenNebula does not require the template_id to be specified
  214141. .UNINDENT
  214142. .IP \(bu 2
  214143. \fBPR\fP \fI\%#44110\fP: (\fI\%roaldnefs\fP) Format fix code example local returner doc
  214144. @ \fI2017\-10\-16 15:57:50 UTC\fP
  214145. .INDENT 2.0
  214146. .IP \(bu 2
  214147. ac3e4df964 Merge pull request \fI\%#44110\fP from roaldnefs/fix\-doc\-local\-returner
  214148. .IP \(bu 2
  214149. efd58f7594 Merge branch \(aq2016.11\(aq into fix\-doc\-local\-returner
  214150. .UNINDENT
  214151. .IP \(bu 2
  214152. \fBPR\fP \fI\%#44092\fP: (\fI\%techhat\fP) Made sure that unicoded data is sent to sha256()
  214153. @ \fI2017\-10\-13 21:20:12 UTC\fP
  214154. .INDENT 2.0
  214155. .IP \(bu 2
  214156. c960ca32c2 Merge pull request \fI\%#44092\fP from techhat/awsunicode
  214157. .IP \(bu 2
  214158. bbd9db4d00 One more encoding
  214159. .IP \(bu 2
  214160. 0e8b325667 Apparently __salt_system_encoding__ is a thing
  214161. .IP \(bu 2
  214162. 1e7211838d Use system encoding
  214163. .IP \(bu 2
  214164. 1af21bbe5e Made sure that unicoded data is sent to sha256()
  214165. .UNINDENT
  214166. .IP \(bu 2
  214167. \fBISSUE\fP \fI\%#43581\fP: (\fI\%jcourington\fP) cherrypy stats issue (refs: \fI\%#44021\fP)
  214168. .IP \(bu 2
  214169. \fBPR\fP \fI\%#44021\fP: (\fI\%whiteinge\fP) Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  214170. @ \fI2017\-10\-12 18:11:41 UTC\fP
  214171. .INDENT 2.0
  214172. .IP \(bu 2
  214173. \fBPR\fP \fI\%#42655\fP: (\fI\%whiteinge\fP) Reenable cpstats for rest_cherrypy (refs: \fI\%#44021\fP)
  214174. .IP \(bu 2
  214175. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug (refs: \fI\%#42655\fP)
  214176. .IP \(bu 2
  214177. d89c317d96 Merge pull request \fI\%#44021\fP from whiteinge/cpstats\-attribute\-error
  214178. .IP \(bu 2
  214179. bf14e5f578 Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  214180. .UNINDENT
  214181. .IP \(bu 2
  214182. \fBPR\fP \fI\%#44025\fP: (\fI\%dayid\fP) Typo correction of lover to lower
  214183. @ \fI2017\-10\-11 17:31:45 UTC\fP
  214184. .INDENT 2.0
  214185. .IP \(bu 2
  214186. bbdabe242a Merge pull request \fI\%#44025\fP from dayid/lover_typo
  214187. .IP \(bu 2
  214188. 385980c21a Merge branch \(aq2016.11\(aq of \fI\%https://github.com/saltstack/salt\fP into lover_typo
  214189. .IP \(bu 2
  214190. 266dc00a23 Typo correction of lover to lower
  214191. .UNINDENT
  214192. .IP \(bu 2
  214193. \fBPR\fP \fI\%#44030\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  214194. @ \fI2017\-10\-11 13:01:42 UTC\fP
  214195. .INDENT 2.0
  214196. .IP \(bu 2
  214197. d8f3891a5e Merge pull request \fI\%#44030\fP from rallytime/merge\-2016.11
  214198. .IP \(bu 2
  214199. 53eaf0d75c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  214200. .IP \(bu 2
  214201. 64fd839377 Merge pull request \fI\%#44010\fP from Ch3LL/2016.3.7_follow_up
  214202. .INDENT 2.0
  214203. .IP \(bu 2
  214204. 9a00302cd8 fix 2016.3.7 release notes merge conflict
  214205. .IP \(bu 2
  214206. 63da1214db Do not allow IDs with null bytes in decoded payloads
  214207. .IP \(bu 2
  214208. ee792581fc Don\(aqt allow path separators in minion ID
  214209. .IP \(bu 2
  214210. 8aab65c718 fix 2016.3.7 release notes merge conflict
  214211. .UNINDENT
  214212. .IP \(bu 2
  214213. bd73dcb02c Merge pull request \fI\%#43977\fP from Ch3LL/3.8_sec
  214214. .IP \(bu 2
  214215. 5fb3f5f6b1 Add Security Notes to 2016.3.8 Release Notes
  214216. .UNINDENT
  214217. .IP \(bu 2
  214218. \fBPR\fP \fI\%#44011\fP: (\fI\%Ch3LL\fP) Security Fixes for 2016.11.8 (refs: \fI\%#44028\fP)
  214219. @ \fI2017\-10\-10 20:04:36 UTC\fP
  214220. .INDENT 2.0
  214221. .IP \(bu 2
  214222. 0dbf41e79e Merge pull request \fI\%#44011\fP from Ch3LL/2016.11.7_follow_up
  214223. .IP \(bu 2
  214224. c0149101c0 Do not allow IDs with null bytes in decoded payloads
  214225. .IP \(bu 2
  214226. 19481423dd Don\(aqt allow path separators in minion ID
  214227. .UNINDENT
  214228. .IP \(bu 2
  214229. \fBPR\fP \fI\%#44023\fP: (\fI\%Ch3LL\fP) Add 2016.11.9 Release Note File
  214230. @ \fI2017\-10\-10 20:03:03 UTC\fP
  214231. .INDENT 2.0
  214232. .IP \(bu 2
  214233. d61300df20 Merge pull request \fI\%#44023\fP from Ch3LL/11.9rn
  214234. .IP \(bu 2
  214235. 7f9015eb41 Add 2016.11.9 Release Note File
  214236. .UNINDENT
  214237. .IP \(bu 2
  214238. \fBPR\fP \fI\%#44019\fP: (\fI\%benediktwerner\fP) Added missing docs to the tutorial index and fixed spelling mistake
  214239. @ \fI2017\-10\-10 19:57:06 UTC\fP
  214240. .INDENT 2.0
  214241. .IP \(bu 2
  214242. 9ff53bf63a Merge pull request \fI\%#44019\fP from benediktwerner/2016.11
  214243. .IP \(bu 2
  214244. bc53598027 Fixed spelling mistake in salt_bootstrap tutorial
  214245. .IP \(bu 2
  214246. 6c30344824 Added missing tutorial docs to the tutorial index
  214247. .UNINDENT
  214248. .IP \(bu 2
  214249. \fBPR\fP \fI\%#43955\fP: (\fI\%meaksh\fP) Enable a new \(aq\-\-with\-salt\-version\(aq parameter for the "setup.py" script
  214250. @ \fI2017\-10\-10 17:36:52 UTC\fP
  214251. .INDENT 2.0
  214252. .IP \(bu 2
  214253. 364523f5f8 Merge pull request \fI\%#43955\fP from meaksh/2016.11\-fix\-2291
  214254. .IP \(bu 2
  214255. a81b78381b Merge branch \(aq2016.11\(aq into 2016.11\-fix\-2291
  214256. .IP \(bu 2
  214257. 44bc91bb98 Enable \(aq\-\-with\-salt\-version\(aq parameter for setup.py script
  214258. .UNINDENT
  214259. .IP \(bu 2
  214260. \fBISSUE\fP \fI\%#43945\fP: (\fI\%bobrik\fP) kmod.present doesn\(aqt work with compiled\-in modules (refs: \fI\%#43962\fP)
  214261. .IP \(bu 2
  214262. \fBPR\fP \fI\%#43962\fP: (\fI\%bobrik\fP) Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  214263. @ \fI2017\-10\-10 16:31:39 UTC\fP
  214264. .INDENT 2.0
  214265. .IP \(bu 2
  214266. fec714b91d Merge pull request \fI\%#43962\fP from bobrik/kmod\-built\-in
  214267. .IP \(bu 2
  214268. 95ab901553 Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  214269. .UNINDENT
  214270. .IP \(bu 2
  214271. \fBPR\fP \fI\%#43960\fP: (\fI\%cro\fP) Require that bindpw be non\-empty when auth.ldap.anonymous is False
  214272. @ \fI2017\-10\-09 23:09:02 UTC\fP
  214273. .INDENT 2.0
  214274. .IP \(bu 2
  214275. e434c39c4e Merge pull request \fI\%#43960\fP from cro/ldap_nopw_bind2
  214276. .IP \(bu 2
  214277. 962a20cf4b Require that bindpw be non\-empty if auth.ldap.anonymous=False
  214278. .IP \(bu 2
  214279. 9df3d91d8f Release notes blurb for change to bindpw requirements
  214280. .UNINDENT
  214281. .IP \(bu 2
  214282. \fBPR\fP \fI\%#43991\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2016.3.8 Release Notes
  214283. @ \fI2017\-10\-09 22:00:25 UTC\fP
  214284. .INDENT 2.0
  214285. .IP \(bu 2
  214286. e9dfda2177 Merge pull request \fI\%#43991\fP from Ch3LL/3.8_sec_2
  214287. .IP \(bu 2
  214288. 1977df8462 Add Security Notes to 2016.3.8 Release Notes
  214289. .UNINDENT
  214290. .IP \(bu 2
  214291. \fBISSUE\fP \fI\%#42947\fP: (\fI\%rossengeorgiev\fP) Zenoss state changes production state even when test=true (refs: \fI\%#43968\fP)
  214292. .IP \(bu 2
  214293. \fBPR\fP \fI\%#43968\fP: (\fI\%rossengeorgiev\fP) fix zenoss state module not respecting test=true
  214294. @ \fI2017\-10\-09 21:27:31 UTC\fP
  214295. .INDENT 2.0
  214296. .IP \(bu 2
  214297. 2346d2691e Merge pull request \fI\%#43968\fP from rossengeorgiev/fix\-zenoss\-prod_state
  214298. .IP \(bu 2
  214299. e6d31c1ea6 fix zenoss state module not respecting test=true
  214300. .UNINDENT
  214301. .IP \(bu 2
  214302. \fBPR\fP \fI\%#43776\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest and previous versions
  214303. @ \fI2017\-10\-09 17:22:15 UTC\fP
  214304. .INDENT 2.0
  214305. .IP \(bu 2
  214306. 8d56a5ac45 Merge pull request \fI\%#43776\fP from Ch3LL/2016.11.8_docs
  214307. .IP \(bu 2
  214308. f72bc00000 [2016.11] Bump latest and previous versions
  214309. .UNINDENT
  214310. .IP \(bu 2
  214311. \fBPR\fP \fI\%#43976\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2016.11.8 Release Notes
  214312. @ \fI2017\-10\-09 17:20:54 UTC\fP
  214313. .INDENT 2.0
  214314. .IP \(bu 2
  214315. 21bf71c3f5 Merge pull request \fI\%#43976\fP from Ch3LL/11.8_sec
  214316. .IP \(bu 2
  214317. f0c3184288 Add Security Notes to 2016.11.8 Release Notes
  214318. .UNINDENT
  214319. .IP \(bu 2
  214320. \fBPR\fP \fI\%#43973\fP: (\fI\%terminalmage\fP) Fix grains.has_value when value is False
  214321. @ \fI2017\-10\-09 14:59:20 UTC\fP
  214322. .INDENT 2.0
  214323. .IP \(bu 2
  214324. 1d5397ab5b Merge pull request \fI\%#43973\fP from terminalmage/fix\-grains.has_value
  214325. .IP \(bu 2
  214326. bf45ae6e6a Fix grains.has_value when value is False
  214327. .UNINDENT
  214328. .IP \(bu 2
  214329. \fBPR\fP \fI\%#43888\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43841\fP to 2016.11
  214330. @ \fI2017\-10\-05 20:09:58 UTC\fP
  214331. .INDENT 2.0
  214332. .IP \(bu 2
  214333. \fBPR\fP \fI\%#43841\fP: (\fI\%austinpapp\fP) add \-n with netstat so we don\(aqt resolve IPs (refs: \fI\%#43888\fP)
  214334. .IP \(bu 2
  214335. 9ac3f2ea7b Merge pull request \fI\%#43888\fP from rallytime/bp\-43841
  214336. .IP \(bu 2
  214337. 87d676f08a add \-n with netstat so we don\(aqt resolve
  214338. .UNINDENT
  214339. .IP \(bu 2
  214340. \fBPR\fP \fI\%#43916\fP: (\fI\%dereckson\fP) Fix typo in salt\-cloud scaleway documentation
  214341. @ \fI2017\-10\-05 18:58:00 UTC\fP
  214342. .INDENT 2.0
  214343. .IP \(bu 2
  214344. f880ac4c08 Merge pull request \fI\%#43916\fP from dereckson/fix\-typo\-cloud\-scaleway
  214345. .IP \(bu 2
  214346. 15b8b8a9f4 Fix typo in salt\-cloud scaleway documentation
  214347. .UNINDENT
  214348. .IP \(bu 2
  214349. \fBPR\fP \fI\%#43884\fP: (\fI\%UtahDave\fP) Update SaltConf banner per Rhett\(aqs request
  214350. @ \fI2017\-10\-04 13:08:30 UTC\fP
  214351. .INDENT 2.0
  214352. .IP \(bu 2
  214353. 2ab7549d48 Merge pull request \fI\%#43884\fP from UtahDave/2016.11local
  214354. .IP \(bu 2
  214355. e3b2857285 Merge branch \(aq2016.11\(aq into 2016.11local
  214356. .UNINDENT
  214357. .IP \(bu 2
  214358. \fBPR\fP \fI\%#43869\fP: (\fI\%terminalmage\fP) Only join cmd if it\(aqs not a string
  214359. @ \fI2017\-10\-03 16:25:07 UTC\fP
  214360. .INDENT 2.0
  214361. .IP \(bu 2
  214362. 4b882d4272 Merge pull request \fI\%#43869\fP from terminalmage/issue43522
  214363. .IP \(bu 2
  214364. fe28b0d4fb Only join cmd if it\(aqs not a string
  214365. .IP \(bu 2
  214366. 8c671fd0c1 Update SaltConf banner per Rhett\(aqs request
  214367. .UNINDENT
  214368. .IP \(bu 2
  214369. \fBISSUE\fP \fI\%#43373\fP: (\fI\%rgcosma\fP) use keyword breaks sls_id (refs: \fI\%#43707\fP)
  214370. .IP \(bu 2
  214371. \fBPR\fP \fI\%#43707\fP: (\fI\%terminalmage\fP) Add missing support for use/use_in requisites to state.sls_id
  214372. @ \fI2017\-10\-01 14:07:53 UTC\fP
  214373. .INDENT 2.0
  214374. .IP \(bu 2
  214375. a2161efda3 Merge pull request \fI\%#43707\fP from terminalmage/issue43373
  214376. .IP \(bu 2
  214377. 3ebde1895f Merge branch \(aq2016.11\(aq into issue43373
  214378. .IP \(bu 2
  214379. e580ed4caa Merge branch \(aq2016.11\(aq into issue43373
  214380. .IP \(bu 2
  214381. 5b3be6e8af Fix failing unit test
  214382. .IP \(bu 2
  214383. f73764481b Add missing support for use/use_in requisites to state.sls_id
  214384. .UNINDENT
  214385. .IP \(bu 2
  214386. \fBPR\fP \fI\%#43807\fP: (\fI\%terminalmage\fP) cmdmod: Don\(aqt list\-ify string commands on Windows
  214387. @ \fI2017\-09\-29 02:48:36 UTC\fP
  214388. .INDENT 2.0
  214389. .IP \(bu 2
  214390. 85b3aa332a Merge pull request \fI\%#43807\fP from terminalmage/issue43522
  214391. .IP \(bu 2
  214392. d8708bf698 cmdmod: Don\(aqt list\-ify string commands on Windows
  214393. .UNINDENT
  214394. .IP \(bu 2
  214395. \fBPR\fP \fI\%#43768\fP: (\fI\%vutny\fP) Fix Pylint deprecated option warnings
  214396. @ \fI2017\-09\-28 12:27:36 UTC\fP
  214397. .INDENT 2.0
  214398. .IP \(bu 2
  214399. ea8d273c2b Merge pull request \fI\%#43768\fP from vutny/fix\-pylint\-deprecation\-warnings
  214400. .IP \(bu 2
  214401. f8b3fa9da1 Merge branch \(aq2016.11\(aq into fix\-pylint\-deprecation\-warnings
  214402. .UNINDENT
  214403. .IP \(bu 2
  214404. \fBISSUE\fP \fI\%#40311\fP: (\fI\%cralston0\fP) \-\-hide\-timeout used with \-\-output json \-\-static produces unparseable JSON (refs: \fI\%#43772\fP)
  214405. .IP \(bu 2
  214406. \fBPR\fP \fI\%#43772\fP: (\fI\%gtmanfred\fP) dont print Minion not responding with quiet
  214407. @ \fI2017\-09\-27 15:39:18 UTC\fP
  214408. .INDENT 2.0
  214409. .IP \(bu 2
  214410. 1a8cc60bb4 Merge pull request \fI\%#43772\fP from gtmanfred/2016.11
  214411. .IP \(bu 2
  214412. 0194c60960 dont print Minion not responding with quiet
  214413. .UNINDENT
  214414. .IP \(bu 2
  214415. \fBPR\fP \fI\%#43747\fP: (\fI\%rallytime\fP) Add GPG Verification section to Contributing Docs
  214416. @ \fI2017\-09\-26 21:25:37 UTC\fP
  214417. .INDENT 2.0
  214418. .IP \(bu 2
  214419. 9dee896fb9 Merge pull request \fI\%#43747\fP from rallytime/gpg\-verification
  214420. .IP \(bu 2
  214421. 7a70de19f4 Merge branch \(aq2016.11\(aq into gpg\-verification
  214422. .UNINDENT
  214423. .IP \(bu 2
  214424. \fBISSUE\fP \fI\%#43729\fP: (\fI\%The\-Loeki\fP) Docker events engine broken on newer docker.py (refs: \fI\%#43733\fP)
  214425. .IP \(bu 2
  214426. \fBPR\fP \fI\%#43733\fP: (\fI\%terminalmage\fP) Allow docker_events engine to work with newer docker\-py
  214427. @ \fI2017\-09\-26 16:47:40 UTC\fP
  214428. .INDENT 2.0
  214429. .IP \(bu 2
  214430. 1cc3ad1c8d Merge pull request \fI\%#43733\fP from terminalmage/issue43729
  214431. .IP \(bu 2
  214432. 6e5c99bda0 Allow docker_events engine to work with newer docker\-py
  214433. .UNINDENT
  214434. .IP \(bu 2
  214435. \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)
  214436. .IP \(bu 2
  214437. \fBPR\fP \fI\%#43458\fP: (\fI\%terminalmage\fP) Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  214438. @ \fI2017\-09\-26 14:39:01 UTC\fP
  214439. .INDENT 2.0
  214440. .IP \(bu 2
  214441. 5d38be4ff7 Merge pull request \fI\%#43458\fP from terminalmage/issue42082
  214442. .IP \(bu 2
  214443. 5f90812b12 Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  214444. .INDENT 2.0
  214445. .INDENT 3.5
  214446. .INDENT 0.0
  214447. .IP \(bu 2
  214448. 23bb4a5dde Add GPG Verification section to Contributing Docs
  214449. .UNINDENT
  214450. .UNINDENT
  214451. .UNINDENT
  214452. .UNINDENT
  214453. .IP \(bu 2
  214454. \fBISSUE\fP \fI\%#43650\fP: (\fI\%rallytime\fP) Review contributing documentation and the merge\-forward process (refs: \fI\%#43727\fP)
  214455. .IP \(bu 2
  214456. \fBISSUE\fP \fI\%#42706\fP: (\fI\%blarghmatey\fP) Parallel Cache Failure (refs: \fI\%#43018\fP)
  214457. .IP \(bu 2
  214458. \fBPR\fP \fI\%#43727\fP: (\fI\%rallytime\fP) Revise "Contributing" docs: merge\-forwards/release branches explained!
  214459. @ \fI2017\-09\-26 12:43:16 UTC\fP
  214460. .INDENT 2.0
  214461. .IP \(bu 2
  214462. \fBPR\fP \fI\%#43018\fP: (\fI\%jubrad\fP) Update state.py (refs: \fI\%#43727\fP)
  214463. .IP \(bu 2
  214464. 023a563657 Merge pull request \fI\%#43727\fP from rallytime/fix\-43650
  214465. .IP \(bu 2
  214466. babad12d83 Revise "Contributing" docs: merge\-forwards/release branches explained!
  214467. .UNINDENT
  214468. .IP \(bu 2
  214469. \fBPR\fP \fI\%#43648\fP: (\fI\%rallytime\fP) Handle VPC/Subnet ID not found errors in boto_vpc module
  214470. @ \fI2017\-09\-22 17:40:43 UTC\fP
  214471. .INDENT 2.0
  214472. .IP \(bu 2
  214473. f46c858f25 Merge pull request \fI\%#43648\fP from rallytime/handle\-boto\-vpc\-errors
  214474. .IP \(bu 2
  214475. 54842b5012 Handle VPC/Subnet ID not found errors in boto_vpc module
  214476. .INDENT 2.0
  214477. .IP \(bu 2
  214478. 651ed16ad3 Fix Pylint deprecated option warnings
  214479. .UNINDENT
  214480. .UNINDENT
  214481. .IP \(bu 2
  214482. \fBPR\fP \fI\%#43575\fP: (\fI\%akissa\fP) Fix CSR not recreated if key changes
  214483. @ \fI2017\-09\-21 17:52:01 UTC\fP
  214484. .INDENT 2.0
  214485. .IP \(bu 2
  214486. 9dba34aa06 Merge pull request \fI\%#43575\fP from akissa/fix\-csr\-not\-recreated\-if\-key\-changes
  214487. .IP \(bu 2
  214488. b1b4dafd39 Fix CSR not recreated if key changes
  214489. .UNINDENT
  214490. .IP \(bu 2
  214491. \fBISSUE\fP \fI\%#42165\fP: (\fI\%arount\fP) top_file_merging_strategy: merge does not works (refs: \fI\%#43415\fP)
  214492. .IP \(bu 2
  214493. \fBPR\fP \fI\%#43672\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43415\fP to 2016.11
  214494. @ \fI2017\-09\-21 16:38:56 UTC\fP
  214495. .INDENT 2.0
  214496. .IP \(bu 2
  214497. \fBPR\fP \fI\%#43415\fP: (\fI\%mattLLVW\fP) Fix env_order in state.py (refs: \fI\%#43672\fP)
  214498. .IP \(bu 2
  214499. 1d4fa48209 Merge pull request \fI\%#43672\fP from rallytime/bp\-43415
  214500. .IP \(bu 2
  214501. 3fb42bc238 Fix env_order in state.py
  214502. .UNINDENT
  214503. .IP \(bu 2
  214504. \fBPR\fP \fI\%#43673\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43652\fP to 2016.11
  214505. @ \fI2017\-09\-21 16:37:36 UTC\fP
  214506. .INDENT 2.0
  214507. .IP \(bu 2
  214508. \fBPR\fP \fI\%#43652\fP: (\fI\%VertigoRay\fP) Salt Repo has Deb 9 and 8 (refs: \fI\%#43673\fP)
  214509. .IP \(bu 2
  214510. ff832ee607 Merge pull request \fI\%#43673\fP from rallytime/bp\-43652
  214511. .IP \(bu 2
  214512. d91c47c6f0 Salt Repo has Deb 9 and 8
  214513. .UNINDENT
  214514. .IP \(bu 2
  214515. \fBPR\fP \fI\%#43677\fP: (\fI\%terminalmage\fP) Fix RST headers for runners (2016.11 branch)
  214516. @ \fI2017\-09\-21 16:35:57 UTC\fP
  214517. .INDENT 2.0
  214518. .IP \(bu 2
  214519. 365cb9fba8 Merge pull request \fI\%#43677\fP from terminalmage/runners\-docs\-2016.11
  214520. .IP \(bu 2
  214521. 2fd88e94fa Fix RST headers for runners (2016.11 branch)
  214522. .UNINDENT
  214523. .IP \(bu 2
  214524. \fBPR\fP \fI\%#43534\fP: (\fI\%twangboy\fP) Fixes removal of double\-quotes by shlex_split in winrepo for 2016.11
  214525. @ \fI2017\-09\-21 14:39:42 UTC\fP
  214526. .INDENT 2.0
  214527. .IP \(bu 2
  214528. be38239e5d Merge pull request \fI\%#43534\fP from twangboy/win_fix_pkg.install_2016.11
  214529. .IP \(bu 2
  214530. 1546c1ca04 Add posix=False to call to salt.utils.shlex_split
  214531. .IP \(bu 2
  214532. \fBPR\fP \fI\%#43663\fP: (\fI\%moio\fP) multiprocessing minion option: documentation fixes (develop) (refs: \fI\%#43661\fP)
  214533. .UNINDENT
  214534. .IP \(bu 2
  214535. \fBPR\fP \fI\%#43661\fP: (\fI\%moio\fP) multiprocessing minion option: documentation fixes (2016.11)
  214536. @ \fI2017\-09\-21 13:02:27 UTC\fP
  214537. .INDENT 2.0
  214538. .IP \(bu 2
  214539. 0d3fd3d374 Merge pull request \fI\%#43661\fP from moio/2016.11\-multiprocessing\-doc\-fix
  214540. .IP \(bu 2
  214541. 625eabb83f multiprocessing minion option: documentation fixes
  214542. .UNINDENT
  214543. .IP \(bu 2
  214544. \fBPR\fP \fI\%#43646\fP: (\fI\%brejoc\fP) Added tests for pid\-file deletion in DaemonMixIn
  214545. @ \fI2017\-09\-20 19:21:54 UTC\fP
  214546. .INDENT 2.0
  214547. .IP \(bu 2
  214548. 6b4516c025 Merge pull request \fI\%#43646\fP from brejoc/2016.11.4\-pidfile\-tests
  214549. .IP \(bu 2
  214550. 96f39a420b Fixed linting
  214551. .IP \(bu 2
  214552. 08fba98735 Fixed several issues with the test
  214553. .IP \(bu 2
  214554. 3a089e450f Added tests for pid\-file deletion in DaemonMixIn
  214555. .UNINDENT
  214556. .IP \(bu 2
  214557. \fBPR\fP \fI\%#43591\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.11.8 to 2016.11
  214558. @ \fI2017\-09\-19 16:18:34 UTC\fP
  214559. .INDENT 2.0
  214560. .IP \(bu 2
  214561. cfb1625741 Merge pull request \fI\%#43591\fP from rallytime/merge\-2016.11
  214562. .IP \(bu 2
  214563. 57b9d642c2 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  214564. .INDENT 2.0
  214565. .IP \(bu 2
  214566. e83421694f Merge pull request \fI\%#43550\fP from twangboy/osx_fix_preinstall_2016.11.8
  214567. .IP \(bu 2
  214568. 1b0a4d39d2 Fix logic in \fI/etc/paths.d/salt\fP detection
  214569. .UNINDENT
  214570. .UNINDENT
  214571. .IP \(bu 2
  214572. \fBPR\fP \fI\%#43572\fP: (\fI\%vutny\fP) cloud.action: list_nodes_min returns all EC2 instances
  214573. @ \fI2017\-09\-18 20:36:44 UTC\fP
  214574. .INDENT 2.0
  214575. .IP \(bu 2
  214576. 8671b91f62 Merge pull request \fI\%#43572\fP from vutny/fix\-salt\-cloud\-list\-min\-instance\-set
  214577. .IP \(bu 2
  214578. 21966e7ce8 cloud.action: list_nodes_min returns all instances
  214579. .UNINDENT
  214580. .IP \(bu 2
  214581. \fBPR\fP \fI\%#43461\fP: (\fI\%twangboy\fP) Add \fI/norestart\fP switch to vcredist install
  214582. @ \fI2017\-09\-12 20:33:46 UTC\fP
  214583. .INDENT 2.0
  214584. .IP \(bu 2
  214585. f2b86fa2db Merge pull request \fI\%#43461\fP from twangboy/win_norestart
  214586. .IP \(bu 2
  214587. 2d269d1a76 Change all comment markers to \(aq#\(aq
  214588. .IP \(bu 2
  214589. d80aea16cb Handle ErrorCodes returned by VCRedist installer
  214590. .IP \(bu 2
  214591. fb31e9a530 Add /norestart switch to vcredist install
  214592. .UNINDENT
  214593. .IP \(bu 2
  214594. \fBISSUE\fP \fI\%#43267\fP: (\fI\%brejoc\fP) OSError \- Can\(aqt delete PIDfile when not root (refs: \fI\%#43366\fP)
  214595. .IP \(bu 2
  214596. \fBPR\fP \fI\%#43366\fP: (\fI\%brejoc\fP) Catching error when PIDfile cannot be deleted
  214597. @ \fI2017\-09\-12 15:31:16 UTC\fP
  214598. .INDENT 2.0
  214599. .IP \(bu 2
  214600. 90e8ca9c36 Merge pull request \fI\%#43366\fP from brejoc/2016.11.pidfile\-fix
  214601. .IP \(bu 2
  214602. 6e3eb76c79 Removed unused format argument
  214603. .IP \(bu 2
  214604. daf4948b3d Catching error when PIDfile cannot be deleted
  214605. .UNINDENT
  214606. .IP \(bu 2
  214607. \fBISSUE\fP \fI\%#43386\fP: (\fI\%rajvidhimar\fP) Scheduler\(aqs job_kwargs not working as expected. (refs: \fI\%#43442\fP)
  214608. .IP \(bu 2
  214609. \fBPR\fP \fI\%#43442\fP: (\fI\%garethgreenaway\fP) [2016.11] Fixes to scheduler __pub values in kwargs
  214610. @ \fI2017\-09\-12 15:16:20 UTC\fP
  214611. .INDENT 2.0
  214612. .IP \(bu 2
  214613. a6c458607a Merge pull request \fI\%#43442\fP from garethgreenaway/43386_2016_11_schedule_kwargs_pub
  214614. .IP \(bu 2
  214615. e637ecbe86 Merge branch \(aq2016.11\(aq into 43386_2016_11_schedule_kwargs_pub
  214616. .IP \(bu 2
  214617. 6114df8dc3 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  214618. .UNINDENT
  214619. .IP \(bu 2
  214620. \fBISSUE\fP \fI\%#43223\fP: (\fI\%rallytime\fP) Properly deprecate describe_route_table function in boto_vpc module (refs: \fI\%#43445\fP)
  214621. .IP \(bu 2
  214622. \fBPR\fP \fI\%#43456\fP: (\fI\%rallytime\fP) Add Neon to version list
  214623. @ \fI2017\-09\-12 15:00:27 UTC\fP
  214624. .INDENT 2.0
  214625. .IP \(bu 2
  214626. \fBPR\fP \fI\%#43445\fP: (\fI\%rallytime\fP) Bump deprecation warning for boto_vpc.describe_route_table (refs: \fI\%#43456\fP)
  214627. .IP \(bu 2
  214628. 3c429299f9 Merge pull request \fI\%#43456\fP from rallytime/43445_follow_up
  214629. .IP \(bu 2
  214630. 35c1d8898d Add Neon to version list
  214631. .UNINDENT
  214632. .IP \(bu 2
  214633. \fBPR\fP \fI\%#43441\fP: (\fI\%meaksh\fP) Use $HOME to get the user home directory instead using \(aq~\(aq char
  214634. @ \fI2017\-09\-11 21:25:20 UTC\fP
  214635. .INDENT 2.0
  214636. .IP \(bu 2
  214637. 6db7a721c0 Merge pull request \fI\%#43441\fP from meaksh/2016.11\-salt\-bash\-completion\-fix
  214638. .IP \(bu 2
  214639. be4f26ab21 Use $HOME to get the user home directory instead using \(aq~\(aq char
  214640. .UNINDENT
  214641. .IP \(bu 2
  214642. \fBISSUE\fP \fI\%#43223\fP: (\fI\%rallytime\fP) Properly deprecate describe_route_table function in boto_vpc module (refs: \fI\%#43445\fP)
  214643. .IP \(bu 2
  214644. \fBPR\fP \fI\%#43445\fP: (\fI\%rallytime\fP) Bump deprecation warning for boto_vpc.describe_route_table (refs: \fI\%#43456\fP)
  214645. @ \fI2017\-09\-11 21:23:28 UTC\fP
  214646. .INDENT 2.0
  214647. .IP \(bu 2
  214648. 05fff44a50 Merge pull request \fI\%#43445\fP from rallytime/bump\-deprecation\-warning
  214649. .IP \(bu 2
  214650. c91cd1c6d9 Bump deprecation warning for boto_vpc.describe_route_table
  214651. .UNINDENT
  214652. .IP \(bu 2
  214653. \fBPR\fP \fI\%#43432\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43419\fP to 2016.11
  214654. @ \fI2017\-09\-11 17:36:37 UTC\fP
  214655. .INDENT 2.0
  214656. .IP \(bu 2
  214657. \fBPR\fP \fI\%#43419\fP: (\fI\%gtmanfred\fP) make cache dirs when spm starts (refs: \fI\%#43432\fP)
  214658. .IP \(bu 2
  214659. c57dc5f0e3 Merge pull request \fI\%#43432\fP from rallytime/bp\-43419
  214660. .IP \(bu 2
  214661. c471a29527 make cache dirs when spm starts
  214662. .UNINDENT
  214663. .IP \(bu 2
  214664. \fBISSUE\fP \fI\%#43387\fP: (\fI\%aogier\fP) genesis.bootstrap debootstrap fails if no qemu specified (refs: \fI\%#43390\fP)
  214665. .IP \(bu 2
  214666. \fBPR\fP \fI\%#43390\fP: (\fI\%aogier\fP) better qemu_static parameter mangle in deboostrap management, tests
  214667. @ \fI2017\-09\-11 13:18:30 UTC\fP
  214668. .INDENT 2.0
  214669. .IP \(bu 2
  214670. 57cccd75d0 Merge pull request \fI\%#43390\fP from aogier/43387\-genesis\-qemu
  214671. .IP \(bu 2
  214672. 496f14a7e7 forgot to mock the proper one
  214673. .IP \(bu 2
  214674. 51c7a1ba00 only check if static_qemu is_executable()
  214675. .IP \(bu 2
  214676. 70642e495d better qemu_static parameter mangle in deboostrap management, tests
  214677. .UNINDENT
  214678. .IP \(bu 2
  214679. \fBISSUE\fP \fI\%#43338\fP: (\fI\%LEMNX\fP) virtualenv never\-download (refs: \fI\%#43356\fP)
  214680. .IP \(bu 2
  214681. \fBPR\fP \fI\%#43356\fP: (\fI\%gtmanfred\fP) never\-download got readded
  214682. @ \fI2017\-09\-07 17:46:05 UTC\fP
  214683. .INDENT 2.0
  214684. .IP \(bu 2
  214685. 6106aec696 Merge pull request \fI\%#43356\fP from gtmanfred/2016.11
  214686. .IP \(bu 2
  214687. 3f19b247f3 Add handler.messages back in for test comparison
  214688. .IP \(bu 2
  214689. 9911b04208 fix test
  214690. .IP \(bu 2
  214691. 3c6ae99a77 never\-download got readded
  214692. .UNINDENT
  214693. .IP \(bu 2
  214694. \fBPR\fP \fI\%#43325\fP: (\fI\%doesitblend\fP) mine_interval option is minutes not seconds
  214695. @ \fI2017\-09\-07 16:58:11 UTC\fP
  214696. .INDENT 2.0
  214697. .IP \(bu 2
  214698. e638fac54e Merge pull request \fI\%#43325\fP from doesitblend/salt\-mine\-doc\-fix
  214699. .IP \(bu 2
  214700. 1e94d0ac3a Lint: Remove trailing whitespace
  214701. .IP \(bu 2
  214702. 51af8f8757 Fix mine_interval phrasing in default file
  214703. .IP \(bu 2
  214704. ba0cdd4536 Fix phrasing for mine_interval description
  214705. .IP \(bu 2
  214706. 9ff03c2d43 Update Salt Mine documentation to show that the mine_interval option is configured in minutes.
  214707. .UNINDENT
  214708. .IP \(bu 2
  214709. \fBISSUE\fP \fI\%#43086\fP: (\fI\%aogier\fP) pylint: Instance of \(aqtuple\(aq has no \(aqextend\(aq member (no\-member) (refs: \fI\%#43105\fP)
  214710. .IP \(bu 2
  214711. \fBPR\fP \fI\%#43105\fP: (\fI\%aogier\fP) groupadd module: string does not have attribute \(aqextend\(aq, plus homogeneous \fIcmd\fP parm building
  214712. @ \fI2017\-09\-06 15:49:44 UTC\fP
  214713. .INDENT 2.0
  214714. .IP \(bu 2
  214715. fc587f784a Merge pull request \fI\%#43105\fP from aogier/43086\-no\-member
  214716. .IP \(bu 2
  214717. 5111cf8bad Merge branch \(aq2016.11\(aq into 43086\-no\-member
  214718. .UNINDENT
  214719. .IP \(bu 2
  214720. \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
  214721. @ \fI2017\-09\-06 14:21:35 UTC\fP
  214722. .INDENT 2.0
  214723. .IP \(bu 2
  214724. d97a680372 Merge pull request \fI\%#43333\fP from damon\-atkins/2016.11
  214725. .IP \(bu 2
  214726. 92de2bb498 Update doco
  214727. .IP \(bu 2
  214728. fc9c61d12e Update win_pkg.py
  214729. .IP \(bu 2
  214730. c91fc14704 Merge branch \(aq2016.11\(aq into 2016.11
  214731. .IP \(bu 2
  214732. cb3af2bbbd Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  214733. .UNINDENT
  214734. .IP \(bu 2
  214735. \fBISSUE\fP \fI\%#43295\fP: (\fI\%V3XATI0N\fP) salt.cache.redis_cache does not actually work. (refs: \fI\%#43329\fP)
  214736. .IP \(bu 2
  214737. \fBPR\fP \fI\%#43361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43329\fP to 2016.11
  214738. @ \fI2017\-09\-05 23:23:01 UTC\fP
  214739. .INDENT 2.0
  214740. .IP \(bu 2
  214741. \fBPR\fP \fI\%#43329\fP: (\fI\%johnj\fP) Fix \fI\%#43295\fP, better handling of consul initialization (refs: \fI\%#43361\fP)
  214742. .IP \(bu 2
  214743. 0c986f5eba Merge pull request \fI\%#43361\fP from rallytime/bp\-43329
  214744. .IP \(bu 2
  214745. b09e5b4379 Fix \fI\%#43295\fP, better handling of consul initialization issues
  214746. .UNINDENT
  214747. .IP \(bu 2
  214748. \fBISSUE\fP \fI\%#35840\fP: (\fI\%junovitch\fP) preserve_minion_cache is broken in 2016.3+ (refs: \fI\%#42903\fP)
  214749. .IP \(bu 2
  214750. \fBPR\fP \fI\%#42903\fP: (\fI\%junovitch\fP) Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  214751. @ \fI2017\-09\-05 22:57:14 UTC\fP
  214752. .INDENT 2.0
  214753. .IP \(bu 2
  214754. 22287439e6 Merge pull request \fI\%#42903\fP from junovitch/issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214755. .IP \(bu 2
  214756. c9d4fdbd45 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214757. .IP \(bu 2
  214758. 93a68e32a5 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214759. .IP \(bu 2
  214760. 079f097985 Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  214761. .UNINDENT
  214762. .IP \(bu 2
  214763. \fBPR\fP \fI\%#43360\fP: (\fI\%terminalmage\fP) Fix failing tests in Fedora
  214764. @ \fI2017\-09\-05 22:23:13 UTC\fP
  214765. .INDENT 2.0
  214766. .IP \(bu 2
  214767. 4860e10757 Merge pull request \fI\%#43360\fP from terminalmage/sj\-496
  214768. .IP \(bu 2
  214769. 433bca14b1 Fix KeyError in yumpkg configparser code on Python 3
  214770. .IP \(bu 2
  214771. f6c16935d8 Move \-\-showduplicates before repository\-packages
  214772. .UNINDENT
  214773. .IP \(bu 2
  214774. \fBPR\fP \fI\%#43244\fP: (\fI\%rallytime\fP) Update release branch section with a few more details
  214775. @ \fI2017\-09\-05 20:27:59 UTC\fP
  214776. .INDENT 2.0
  214777. .IP \(bu 2
  214778. 4ba2dbe41e Merge pull request \fI\%#43244\fP from rallytime/release\-branch\-clarifications
  214779. .IP \(bu 2
  214780. 0d5a46dbaa Update release branch section with a few more details
  214781. .UNINDENT
  214782. .IP \(bu 2
  214783. \fBISSUE\fP \fI\%#43348\fP: (\fI\%9maf4you\fP) network.managed doesn\(aqt work on CentOS 7 (refs: \fI\%#43359\fP)
  214784. .IP \(bu 2
  214785. \fBPR\fP \fI\%#43359\fP: (\fI\%gtmanfred\fP) ipaddr_start ipaddr_end for el7
  214786. @ \fI2017\-09\-05 19:44:24 UTC\fP
  214787. .INDENT 2.0
  214788. .IP \(bu 2
  214789. 1a012eb3d7 Merge pull request \fI\%#43359\fP from gtmanfred/ipaddr
  214790. .IP \(bu 2
  214791. 23d9abb560 ipaddr_start ipaddr_end for el7
  214792. .UNINDENT
  214793. .IP \(bu 2
  214794. \fBPR\fP \fI\%#43247\fP: (\fI\%rallytime\fP) Back\-port various mention bot settings to 2016.11
  214795. @ \fI2017\-09\-05 18:17:54 UTC\fP
  214796. .INDENT 2.0
  214797. .IP \(bu 2
  214798. \fBPR\fP \fI\%#43206\fP: (\fI\%rallytime\fP) Always notify tkwilliams when changes occur on boto files (refs: \fI\%#43247\fP)
  214799. .IP \(bu 2
  214800. \fBPR\fP \fI\%#43183\fP: (\fI\%basepi\fP) Add basepi to userBlacklist for mention bot (refs: \fI\%#43247\fP)
  214801. .IP \(bu 2
  214802. \fBPR\fP \fI\%#42923\fP: (\fI\%rallytime\fP) Always notify ryan\-lane when changes occur on boto files (refs: \fI\%#43247\fP)
  214803. .IP \(bu 2
  214804. 8f88111be8 Merge pull request \fI\%#43247\fP from rallytime/mentionbot\-backports
  214805. .IP \(bu 2
  214806. 2b85757d73 Always notify tkwilliams when changes occur on boto files
  214807. .IP \(bu 2
  214808. 40b5a29f90 Add basepi to userBlacklist for mention bot
  214809. .IP \(bu 2
  214810. bad8f56969 Always notify ryan\-lane when changes occur on boto files
  214811. .UNINDENT
  214812. .IP \(bu 2
  214813. \fBPR\fP \fI\%#43277\fP: (\fI\%rallytime\fP) Add CODEOWNERS file
  214814. @ \fI2017\-09\-01 16:56:53 UTC\fP
  214815. .INDENT 2.0
  214816. .IP \(bu 2
  214817. 02867fdcd2 Merge pull request \fI\%#43277\fP from rallytime/owners\-file
  214818. .IP \(bu 2
  214819. 2b4da0f0e7 Add CODEOWNERS file
  214820. .UNINDENT
  214821. .IP \(bu 2
  214822. \fBPR\fP \fI\%#43312\fP: (\fI\%lordcirth\fP) cron docs: Remind user to use quotes for special strings
  214823. @ \fI2017\-09\-01 16:24:15 UTC\fP
  214824. .INDENT 2.0
  214825. .IP \(bu 2
  214826. 1c1c484479 Merge pull request \fI\%#43312\fP from lordcirth/fix\-cron\-docs
  214827. .IP \(bu 2
  214828. ec94a13750 cron docs: Remind user to use quotes for special strings
  214829. .UNINDENT
  214830. .IP \(bu 2
  214831. \fBPR\fP \fI\%#43290\fP: (\fI\%lordcirth\fP) Clarify file.py docs
  214832. @ \fI2017\-09\-01 14:30:04 UTC\fP
  214833. .INDENT 2.0
  214834. .IP \(bu 2
  214835. 0d1ed4b750 Merge pull request \fI\%#43290\fP from lordcirth/fix\-file\-path\-docs
  214836. .IP \(bu 2
  214837. 14a4591854 file.py docs: correct group and mode
  214838. .IP \(bu 2
  214839. d4214ca283 file.py docs: specify absolute paths
  214840. .UNINDENT
  214841. .IP \(bu 2
  214842. \fBPR\fP \fI\%#43274\fP: (\fI\%terminalmage\fP) Use six.integer_types instead of int
  214843. @ \fI2017\-08\-30 21:32:42 UTC\fP
  214844. .INDENT 2.0
  214845. .IP \(bu 2
  214846. 26ff89539e Merge pull request \fI\%#43274\fP from terminalmage/fix\-int\-types
  214847. .IP \(bu 2
  214848. d533877743 Use six.integer_types instead of int
  214849. .IP \(bu 2
  214850. 42a118ff56 fixed cmd composition and unified his making across module
  214851. .IP \(bu 2
  214852. 881f1822f2 Format fix code example local returner doc
  214853. .UNINDENT
  214854. .UNINDENT
  214855. .SS Salt 2016.3.0 Release Notes \- Codename Boron
  214856. .SS Known Issues
  214857. .sp
  214858. \fBWARNING:\fP
  214859. .INDENT 0.0
  214860. .INDENT 3.5
  214861. \fBSome Salt Masters may need to apply a patch for Default Job Cache to
  214862. prevent a possible crash\fP
  214863. .sp
  214864. An issue exists that prevents the Salt master from cleaning the default job
  214865. cache. This issue can cause an overconsumption of resources resulting in a
  214866. crash. 2016.3.0 Salt masters should apply the patch in \fI\%PR #33555\fP\&. This
  214867. issue will be addressed in 2016.3.1.
  214868. .UNINDENT
  214869. .UNINDENT
  214870. .INDENT 0.0
  214871. .IP \(bu 2
  214872. \fI\%issue #33516\fP: When upgrading from 2015.8.10 to 2016.3.0 on centos7/redhat7
  214873. salt\-minion must be restarted twice.
  214874. .IP \(bu 2
  214875. \fI\%issue #33517\fP: SPM does not work on amazon linux 2015 in 2016.3.0.
  214876. .UNINDENT
  214877. .SS Backwards\-incompatible Changes
  214878. .INDENT 0.0
  214879. .IP \(bu 2
  214880. The default path for the \fBextension_modules\fP master config
  214881. option has been changed. Prior to this release, the location was a directory
  214882. named \fBextmods\fP in the Salt cachedir. On most platforms, this would put the
  214883. \fBextension_modules\fP directory in \fB/var/cache/salt/extmods\fP\&.
  214884. It has been moved one directory down, into the master cachedir. On most
  214885. platforms, this is \fB/var/cache/salt/master/extmods\fP\&. Most users won\(aqt have
  214886. to worry about this, but those who have been manually placing custom runners
  214887. into \fB/var/cache/salt/extmods/runners\fP, or outputters into
  214888. \fB/var/cache/salt/extmods/output\fP, etc. will be affected by this. To
  214889. transition, it is recommended not to simply move the extmods directory into
  214890. \fB/var/cache/salt/master\fP, but to copy the custom modules into the salt
  214891. fileserver under \fBsalt://_runners\fP, \fBsalt://_output\fP, etc. and sync them
  214892. using the functions in the new \fBsaltutil runner\fP\&.
  214893. .IP \(bu 2
  214894. The \fBpkg.check_db\fP function has been
  214895. removed for yum/dnf.
  214896. .UNINDENT
  214897. .SS Core Changes
  214898. .INDENT 0.0
  214899. .IP \(bu 2
  214900. The \fBonchanges\fP requisite now fires if \fBany\fP watched state changes. \fI\%issue #19592\fP\&.
  214901. .IP \(bu 2
  214902. The \fBext_pillar\fP functions \fBmust\fP now accept a minion ID as the first
  214903. argument. This stops the deprecation path started in Salt 0.17.x. Before this
  214904. minion ID first argument was introduced, the minion ID could be retrieved
  214905. accessing \fB__opts__[\(aqid\(aq]\fP losing the reference to the master ID initially
  214906. set in opts. This is no longer the case, \fB__opts__[\(aqid\(aq]\fP will be kept as
  214907. the master ID.
  214908. .IP \(bu 2
  214909. Custom types can now be synced to the master using the new \fBsaltutil
  214910. runner\fP\&. Before, these needed to manually be placed
  214911. under the \fBextension_modules\fP directory. This allows custom
  214912. modules to easily be synced to the master to make them available when
  214913. compiling Pillar data. Just place custom runners into \fBsalt://_runners\fP,
  214914. custom outputters into \fBsalt://_output\fP, etc. and use the functions from
  214915. the \fBsaltutil runner\fP to sync them.
  214916. .IP \(bu 2
  214917. The \fBclient_acl\fP configuration options were renamed to \fBpublisher_acl\fP\&.
  214918. .IP \(bu 2
  214919. Added a new \fB\-\-config\-dump\fP option (\fI\%issue #26639\fP).
  214920. .IP \(bu 2
  214921. TCP Transport presence events were updated to work with a NAT (\fI\%PR #30629\fP).
  214922. .IP \(bu 2
  214923. A \fBminion_pillar_cache\fP setting was added to save rendered
  214924. pillar data to cachedir for later use when file_client is set to local
  214925. (\fI\%PR #30428\fP).
  214926. .IP \(bu 2
  214927. Added the ability for binary data (such as a license key) to be distributed
  214928. via pillar using the \fBfile.managed\fP
  214929. (\fI\%issue #9569\fP).
  214930. .IP \(bu 2
  214931. Scheduled jobs now include \fBsuccess\fP and \fBretcode\fP (\fI\%issue #24237\fP).
  214932. .IP \(bu 2
  214933. The \fBsaltversioninfo\fP grain was changed from a string to a list to enable
  214934. reading values by index. (\fI\%PR #30082\fP).
  214935. .IP \(bu 2
  214936. A \fBpillar_merge_lists\fP option was added to enable recursively
  214937. merging pillar lists by aggregating them instead of replacing them
  214938. (\fI\%PR #30062\fP).
  214939. .IP \(bu 2
  214940. Grain values reported by Debian 8 (jessie) when lsb\-release is installed were
  214941. updated for consistency (\fI\%PR #28649\fP).
  214942. .IP \(bu 2
  214943. A new option for minions called master_tries has been added. This specifies
  214944. the number of times a minion should attempt to contact a master to attempt
  214945. a connection. This allows better handling of occasional master downtime in
  214946. a multi\-master topology.
  214947. .IP \(bu 2
  214948. The default directory for deploying the salt\-thin tarball has changed for
  214949. salt\-ssh. It is now /var/tmp instead of /tmp. Users may also wish
  214950. to delete any directories in /tmp ending with \fI_salt/\fP\&. (\fI\%issue #32771\fP)
  214951. .UNINDENT
  214952. .SS External Module Packaging
  214953. .sp
  214954. Modules may now be packaged via entry\-points in setuptools. See
  214955. external module packaging tutorial
  214956. for more information.
  214957. .SS Cloud Changes
  214958. .INDENT 0.0
  214959. .IP \(bu 2
  214960. Refactored the OpenNebula driver and added numerous \fB\-\-function\fP and
  214961. \fB\-\-action\fP commands to enhance Salt support for image, template, security group,
  214962. virtual network and virtual machine management in OpenNebula.
  214963. .IP \(bu 2
  214964. Added execution/state modules to support the deployment of AWS cognito
  214965. identity pools (\fI\%PR #31094\fP).
  214966. .IP \(bu 2
  214967. Added ability to set tags and listener policies on a AWS ELB (\fI\%PR #27552\fP).
  214968. .UNINDENT
  214969. .SS Platform Changes
  214970. .INDENT 0.0
  214971. .IP \(bu 2
  214972. Renamed modules related to macOS. The following module filenames were changed.
  214973. The virtual name remained unchanged.
  214974. .IP \(bu 2
  214975. \fI\%PR ##30558\fP: renamed osxdesktop.py to mac_desktop.py
  214976. .IP \(bu 2
  214977. \fI\%PR ##30557\fP: renamed macports.py to mac_ports.py
  214978. .IP \(bu 2
  214979. \fI\%PR ##30556\fP: renamed darwin_sysctl.py to mac_sysctl.py
  214980. .IP \(bu 2
  214981. \fI\%PR ##30555\fP: renamed brew.py to mac_brew.py
  214982. .IP \(bu 2
  214983. \fI\%PR ##30552\fP: renamed darwin_pkgutil.py to mac_pkgutil.py
  214984. .UNINDENT
  214985. .SS Package Support
  214986. .INDENT 0.0
  214987. .IP \(bu 2
  214988. Ubuntu Xenial: Packages for Ubuntu Xenial (16.04) are available for 2016.3.0 and
  214989. onwards. See \fI\%repo.saltstack.com\fP for more information. Note that Xenial comes
  214990. with Debian\(aqs packaged version of Salt 2015.8.8 and official \fI\%repo.saltstack.com\fP
  214991. packages are available for 2015.8 releases beginning with Salt 2015.8.11.
  214992. .UNINDENT
  214993. .SS Proxy Minion Changes
  214994. .sp
  214995. The deprecated config option \fBenumerate_proxy_minions\fP has been removed.
  214996. .sp
  214997. As mentioned in earlier documentation, the \fBadd_proxymodule_to_opts\fP
  214998. configuration variable defaults to \fBFalse\fP in this release. This means if you
  214999. have proxymodules or other code looking in \fB__opts__[\(aqproxymodule\(aq]\fP you
  215000. will need to set this variable in your \fB/etc/salt/proxy\fP file, or
  215001. modify your code to use the \fI__proxy__\fP injected variable.
  215002. .sp
  215003. The \fB__proxyenabled__\fP directive now only applies to grains and proxy modules
  215004. themselves. Standard execution modules and state modules are not prevented
  215005. from loading for proxy minions.
  215006. .sp
  215007. Support has been added to Salt\(aqs loader allowing custom proxymodules
  215008. to be placed in \fBsalt://_proxy\fP\&. Proxy minions that need these modules
  215009. will need to be restarted to pick up any changes. A corresponding utility function,
  215010. \fBsaltutil.sync_proxymodules\fP, has been added to sync these modules to minions.
  215011. .sp
  215012. Enhancements in grains processing have made the \fB__proxyenabled__\fP directive
  215013. somewhat redundant in dynamic grains code. It is still required, but best
  215014. practices for the \fB__virtual__\fP function in grains files have changed. It
  215015. is now recommended that the \fB__virtual__\fP functions check to make sure
  215016. they are being loaded for the correct proxytype, example below:
  215017. .INDENT 0.0
  215018. .INDENT 3.5
  215019. .sp
  215020. .nf
  215021. .ft C
  215022. def __virtual__():
  215023. """
  215024. Only work on proxy
  215025. """
  215026. try:
  215027. if salt.utils.is_proxy() and __opts__["proxy"]["proxytype"] == "ssh_sample":
  215028. return __virtualname__
  215029. except KeyError:
  215030. pass
  215031. return False
  215032. .ft P
  215033. .fi
  215034. .UNINDENT
  215035. .UNINDENT
  215036. .sp
  215037. \fBNOTE:\fP
  215038. .INDENT 0.0
  215039. .INDENT 3.5
  215040. \fBsalt.utils.is_proxy()\fP has been renamed to
  215041. \fBsalt.utils.platform.is_proxy\fP as of the Oxygen release.
  215042. .UNINDENT
  215043. .UNINDENT
  215044. .sp
  215045. The try/except block above exists because grains are processed very early
  215046. in the proxy minion startup process, sometimes earlier than the proxy
  215047. key in the \fB__opts__\fP dictionary is populated.
  215048. .sp
  215049. Grains are loaded so early in startup that no dunder dictionaries are
  215050. present, so \fB__proxy__\fP, \fB__salt__\fP, etc. are not available. Custom
  215051. grains located in \fB/srv/salt/_grains\fP and in the salt install grains
  215052. directory can now take a single argument, \fBproxy\fP, that is identical
  215053. to \fB__proxy__\fP\&. This enables patterns like
  215054. .INDENT 0.0
  215055. .INDENT 3.5
  215056. .sp
  215057. .nf
  215058. .ft C
  215059. def get_ip(proxy):
  215060. """
  215061. Ask the remote device what IP it has
  215062. """
  215063. return {"ip": proxy["proxymodulename.get_ip"]()}
  215064. .ft P
  215065. .fi
  215066. .UNINDENT
  215067. .UNINDENT
  215068. .sp
  215069. Then the grain \fBip\fP will contain the result of calling the \fBget_ip()\fP function
  215070. in the proxymodule called \fBproxymodulename\fP\&.
  215071. .sp
  215072. Proxy modules now benefit from including a function called \fBinitialized()\fP\&. This
  215073. function should return \fBTrue\fP if the proxy\(aqs \fBinit()\fP function has been successfully
  215074. called. This is needed to make grains processing easier.
  215075. .sp
  215076. Finally, if there is a function called \fBgrains\fP in the proxymodule, it
  215077. will be executed on proxy\-minion startup and its contents will be merged with
  215078. the rest of the proxy\(aqs grains. Since older proxy\-minions might have used other
  215079. methods to call such a function and add its results to grains, this is config\-gated
  215080. by a new proxy configuration option called \fBproxy_merge_grains_in_module\fP\&. This
  215081. defaults to \fBFalse\fP in this release. It will default to True in the release after
  215082. next. The next release is codenamed \fBCarbon\fP, the following is \fBNitrogen\fP\&.
  215083. .sp
  215084. The example proxy minions \fBrest_sample\fP and \fBssh_sample\fP have been updated to
  215085. reflect these changes.
  215086. .SS Syndic Updates
  215087. .sp
  215088. A major performance and management issue was found and fixed in the syndic. This makes
  215089. the Salt Syndic substantially more reliable and performant. Please make sure that the
  215090. syndic and the master of masters which syndics attach to are updated, otherwise the
  215091. syndic fixes alone can cause minor performance issues with older master of masters.
  215092. Please update masters first, then syndics.
  215093. Minions do not need to be updated for this fix to work.
  215094. .SS Module Changes
  215095. .INDENT 0.0
  215096. .IP \(bu 2
  215097. \fBfile execution module\fP: \fBshow_diff\fP is deprecated in favor
  215098. of \fBshow_changes\fP\&. (\fI\%PR #30988\fP)
  215099. .IP \(bu 2
  215100. \fBreg execution module\fP:
  215101. .INDENT 2.0
  215102. .IP \(bu 2
  215103. Removed the following deprecated functions from the reg module (\fI\%PR #30956\fP):
  215104. .INDENT 2.0
  215105. .IP \(bu 2
  215106. read_key
  215107. .IP \(bu 2
  215108. set_key
  215109. .IP \(bu 2
  215110. create_key
  215111. .IP \(bu 2
  215112. delete_key
  215113. .UNINDENT
  215114. .IP \(bu 2
  215115. Removed force parameter from reg state module
  215116. .IP \(bu 2
  215117. Fixed virtual function in state
  215118. .IP \(bu 2
  215119. Improved error information for \fBreg.delete_value\fP function
  215120. .UNINDENT
  215121. .IP \(bu 2
  215122. \fBjboss7 execution module\fP: \fBdeployed\fP function was
  215123. decoupled from Artifactory by removing Artifactory\-specific functionality.
  215124. Note that the changes in some of the function arguments break existing state
  215125. files, see \fI\%issue #30515\fP and \fI\%PR #3080\fP for details.
  215126. .IP \(bu 2
  215127. \fBpkg state module\fP: The \fBwait\fP function was removed,
  215128. the functionality was replaced with the \fBonchanges\fP requisite (\fI\%PR #30297\fP).
  215129. .IP \(bu 2
  215130. \fBfirewalld state module\fP: A \fBpermanent\fP argument
  215131. was added \fBadd_port\fP\&. Note that \fBpermanent\fP defaults to \fBTrue\fP, which changes
  215132. previous behavior (\fI\%PR #30275\fP). A \fBbind\fP function was also added that allows
  215133. binding zones to interfaces and sources (\fI\%PR #29497\fP).
  215134. .IP \(bu 2
  215135. \fBjournald beacon module\fP: The event string was updated
  215136. to include a tag. Note this might impact existing reactors based on this beacon.
  215137. (\fI\%PR #30116\fP).
  215138. .IP \(bu 2
  215139. \fBpostgres_privileges state module\fP:
  215140. The default value of the \fBprepend\fP argument was changed from \fBNone\fP to
  215141. \fBpublic\fP\&.
  215142. .IP \(bu 2
  215143. \fBzenoss execution module\fP: The
  215144. \fBadd_device\fP function was updated with a default value of \fB1000\fP for
  215145. \fBprod_state\fP to match the documentation (\fI\%PR #28924\fP).
  215146. .IP \(bu 2
  215147. The etcd execution module, state module, returner module, and util module
  215148. were refactor (\fI\%PR #28599\fP). This refactor changes error returns for
  215149. several functions (primarily edge cases):
  215150. .INDENT 2.0
  215151. .IP \(bu 2
  215152. get: Used to return \(aq\(aq on key\-not\-found. Now returns None.
  215153. .IP \(bu 2
  215154. set: Used to return \(aq\(aq on issues setting keys. Now returns None.
  215155. .IP \(bu 2
  215156. ls: Used to return {path: {}} on key\-not\-found. Now returns None.
  215157. .IP \(bu 2
  215158. Tree: Used to return {} on key\-not\-found. Now returns None.
  215159. .UNINDENT
  215160. .IP \(bu 2
  215161. \fBsmartos_virt execution module\fP: Updated to
  215162. use most of the new smartos_vmadm (\fI\%PR #28284\fP).
  215163. .IP \(bu 2
  215164. \fBapache_conf state module\fP,
  215165. \fBapache_module state module\fP, and
  215166. \fBapache_site state module\fP: the \fBenable\fP and
  215167. \fBdisable\fP functions were renamed to \fBenabled\fP and \fBdisabled\fP,
  215168. respectively. In \fI\%PR #33562\fP, these functions were readded and properly
  215169. deprecated and will be removed in Salt 2017.7.0. This fix will be available
  215170. in 2016.3.1. As a workaround, try
  215171. .INDENT 2.0
  215172. .INDENT 3.5
  215173. .sp
  215174. .nf
  215175. .ft C
  215176. apache_module.enable{{ \(aqd\(aq if grains.saltversioninfo == [2016, 3, 0] else \(aq\(aq }}
  215177. .ft P
  215178. .fi
  215179. .UNINDENT
  215180. .UNINDENT
  215181. .UNINDENT
  215182. .SS New Features
  215183. .SS Thorium \- Provisional New Reactor
  215184. .sp
  215185. The 2016.3 release introduces the new Thorium Reactor. This reactor is an
  215186. experimental new feature that implements a flow programming interface using
  215187. the salt state system as the engine. This means that the Thorium reactor uses
  215188. a classic state tree approach to create a reactor that can aggregate event
  215189. data from multiple sources and make aggregate decisions about executing
  215190. reactions.
  215191. .sp
  215192. This feature is both experimental and provisional, it may be removed and APIs
  215193. may be changed. This system should be considered as ambitious as the Salt
  215194. State System in that the scope of adding a programmable logic engine of
  215195. this scale into the event systems is non trivial.
  215196. .sp
  215197. See Thorium Complex Reactor\&.
  215198. .SS Improved Mac OS Support
  215199. .SS Improved Solaris Support
  215200. .sp
  215201. A lot of work was done to improve support for SmartOS. This work also
  215202. resulted in improvements for Solaris and illumos as SmartOS.
  215203. .INDENT 0.0
  215204. .IP \(bu 2
  215205. rewrite of \fBvmadm module\fP (SmartOS)
  215206. .IP \(bu 2
  215207. rewrite of \fBimgadm module\fP (SmartOS)
  215208. .IP \(bu 2
  215209. deprecation of \fBvirt module\fP in favor of vmadm (SmartOS)
  215210. .IP \(bu 2
  215211. implemented \fBsmartos state\fP (SmartOS)
  215212. .IP \(bu 2
  215213. improved \fBzpool module\fP add SmartOS, illumos and Solaris support
  215214. .IP \(bu 2
  215215. improved \fBzfs module\fP add SmartOS, illumos and Solaris support
  215216. .IP \(bu 2
  215217. implemented \fBzpool state\fP
  215218. .IP \(bu 2
  215219. implemented \fBzfs state\fP
  215220. implemented \fBsolaris_system\fP system module to provide better Solaris support (\fI\%PR #30519\fP)
  215221. .IP \(bu 2
  215222. other minor fixes to grains, localmod, ...
  215223. .UNINDENT
  215224. .SS Tornado Transport
  215225. .sp
  215226. \fBIMPORTANT:\fP
  215227. .INDENT 0.0
  215228. .INDENT 3.5
  215229. The Tornado Transport wire protocol was changed in 2016.3, making it incompatible with 2015.8 (\fI\%PR #29339\fP).
  215230. .UNINDENT
  215231. .UNINDENT
  215232. .SS Windows DSC Integration (Experiemental)
  215233. .SS Dimension Data Cloud Support
  215234. .sp
  215235. A SaltStack Cloud driver for \fI\%Dimension Data Public Cloud\fP, provides the driver functionality to service automation for any of the Dimension
  215236. Data Public Cloud locations:
  215237. .INDENT 0.0
  215238. .IP \(bu 2
  215239. Deploy new virtual machines
  215240. .IP \(bu 2
  215241. List and query virtual machine images
  215242. .IP \(bu 2
  215243. Destroy and query virtual machines
  215244. .UNINDENT
  215245. .sp
  215246. Documentation of the Dimension Data SaltStack integration is found on \fI\%developer.dimensiondata.com\fP
  215247. .SS Minion Blackout
  215248. .sp
  215249. During a blackout, minions will not execute any remote execution commands,
  215250. except for \fBsaltutil.refresh_pillar\fP\&. Blackouts are enabled using a special
  215251. pillar key, \fBminion_blackout\fP set to \fBTrue\fP\&.
  215252. .sp
  215253. See Minion Blackout\&.
  215254. .SS Splunk Returner
  215255. .sp
  215256. A Splunk Returner that uses HTTP Event Collector is now available (\fI\%PR #30718\fP).
  215257. .SS SQLCipher Pillar Module
  215258. .sp
  215259. Support was added for retrieving pillar data via queries to SQLCiper databases (\fI\%PR #29782\fP).
  215260. .SS New Modules
  215261. .sp
  215262. The following list contains a link to the new modules added in this release.
  215263. .SS Beacons
  215264. .INDENT 0.0
  215265. .IP \(bu 2
  215266. \fBbeacons.adb\fP
  215267. .IP \(bu 2
  215268. \fBbeacons.glxinfo\fP
  215269. .IP \(bu 2
  215270. \fBbeacons.memusage\fP
  215271. .IP \(bu 2
  215272. \fBbeacons.network_settings\fP
  215273. .IP \(bu 2
  215274. \fBbeacons.proxy_example\fP
  215275. .IP \(bu 2
  215276. \fBbeacons.salt_proxy\fP
  215277. .UNINDENT
  215278. .SS Engines
  215279. .INDENT 0.0
  215280. .IP \(bu 2
  215281. \fBengines.docker_events\fP
  215282. .IP \(bu 2
  215283. \fBengines.redis_sentinel\fP
  215284. .IP \(bu 2
  215285. \fBengines.slack\fP
  215286. .IP \(bu 2
  215287. \fBengines.sqs_events\fP
  215288. .IP \(bu 2
  215289. \fBengines.thorium\fP
  215290. .UNINDENT
  215291. .SS Execution Modules
  215292. .INDENT 0.0
  215293. .IP \(bu 2
  215294. \fBmodules.bcache\fP
  215295. .IP \(bu 2
  215296. \fBmodules.beacons\fP
  215297. .IP \(bu 2
  215298. \fBmodules.boto_cloudtrail\fP
  215299. .IP \(bu 2
  215300. \fBmodules.boto_datapipeline\fP
  215301. .IP \(bu 2
  215302. \fBmodules.boto_iot\fP
  215303. .IP \(bu 2
  215304. \fBmodules.boto_lambda\fP
  215305. .IP \(bu 2
  215306. \fBmodules.boto_s3_bucket\fP
  215307. .IP \(bu 2
  215308. \fBmodules.chronos\fP
  215309. .IP \(bu 2
  215310. \fBmodules.cytest\fP
  215311. .IP \(bu 2
  215312. \fBmodules.dockercompose\fP
  215313. .IP \(bu 2
  215314. \fBmodules.dsc\fP
  215315. .IP \(bu 2
  215316. \fBmodules.ethtool\fP
  215317. .IP \(bu 2
  215318. \fBmodules.github\fP
  215319. .IP \(bu 2
  215320. \fBmodules.infoblox\fP
  215321. .IP \(bu 2
  215322. \fBmodules.iwtools\fP
  215323. .IP \(bu 2
  215324. \fBmodules.jenkins\fP
  215325. .IP \(bu 2
  215326. \fBmodules.linux_ip\fP
  215327. .IP \(bu 2
  215328. \fBmodules.mac_assistive\fP
  215329. .IP \(bu 2
  215330. \fBmodules.mac_brew\fP
  215331. .IP \(bu 2
  215332. \fBmodules.mac_defaults\fP
  215333. .IP \(bu 2
  215334. \fBmodules.mac_desktop\fP
  215335. .IP \(bu 2
  215336. \fBmodules.mac_keychain\fP
  215337. .IP \(bu 2
  215338. \fBmodules.mac_pkgutil\fP
  215339. .IP \(bu 2
  215340. \fBmodules.mac_ports\fP
  215341. .IP \(bu 2
  215342. \fBmodules.mac_power\fP
  215343. .IP \(bu 2
  215344. \fBmodules.mac_service\fP
  215345. .IP \(bu 2
  215346. \fBmodules.mac_shadow\fP
  215347. .IP \(bu 2
  215348. \fBmodules.mac_softwareupdate\fP
  215349. .IP \(bu 2
  215350. \fBmodules.mac_sysctl\fP
  215351. .IP \(bu 2
  215352. \fBmodules.mac_system\fP
  215353. .IP \(bu 2
  215354. \fBmodules.mac_timezone\fP
  215355. .IP \(bu 2
  215356. \fBmodules.mac_xattr\fP
  215357. .IP \(bu 2
  215358. \fBmodules.marathon\fP
  215359. .IP \(bu 2
  215360. \fBmodules.minion\fP
  215361. .IP \(bu 2
  215362. \fBmodules.openvswitch\fP
  215363. .IP \(bu 2
  215364. \fBmodules.opkg\fP
  215365. .IP \(bu 2
  215366. \fBmodules.philips_hue\fP
  215367. .IP \(bu 2
  215368. \fBmodules.proxy\fP
  215369. .IP \(bu 2
  215370. \fBmodules.pushbullet\fP
  215371. .IP \(bu 2
  215372. \fBmodules.restartcheck\fP
  215373. .IP \(bu 2
  215374. \fBmodules.s6\fP
  215375. .IP \(bu 2
  215376. \fBmodules.salt_proxy\fP
  215377. .IP \(bu 2
  215378. \fBmodules.ssh_package\fP
  215379. .IP \(bu 2
  215380. \fBmodules.ssh_service\fP
  215381. .IP \(bu 2
  215382. \fBmodules.sysfs\fP
  215383. .IP \(bu 2
  215384. \fBmodules.vboxmanage\fP
  215385. .IP \(bu 2
  215386. \fBmodules.win_certutil\fP
  215387. .IP \(bu 2
  215388. \fBmodules.win_dism\fP
  215389. .IP \(bu 2
  215390. \fBmodules.win_dism\fP
  215391. .IP \(bu 2
  215392. \fBmodules.win_license\fP
  215393. .IP \(bu 2
  215394. \fBmodules.win_iis\fP
  215395. .IP \(bu 2
  215396. \fBmodules.win_task\fP
  215397. .IP \(bu 2
  215398. \fBmodules.zabbix\fP
  215399. .UNINDENT
  215400. .SS Pillar
  215401. .INDENT 0.0
  215402. .IP \(bu 2
  215403. \fBpillar.http_yaml\fP
  215404. .IP \(bu 2
  215405. \fBpillar.stack\fP
  215406. .UNINDENT
  215407. .SS Proxy
  215408. .INDENT 0.0
  215409. .IP \(bu 2
  215410. \fBproxy.chronos\fP
  215411. .IP \(bu 2
  215412. \fBproxy.junos\fP
  215413. .IP \(bu 2
  215414. \fBproxy.marathon\fP
  215415. .IP \(bu 2
  215416. \fBproxy.phillips_hue\fP
  215417. .IP \(bu 2
  215418. \fBproxy.ssh_sample\fP
  215419. .UNINDENT
  215420. .SS Roster
  215421. .INDENT 0.0
  215422. .IP \(bu 2
  215423. \fBroster.range\fP
  215424. .UNINDENT
  215425. .SS States
  215426. .INDENT 0.0
  215427. .IP \(bu 2
  215428. \fBstates.apache_conf\fP
  215429. .IP \(bu 2
  215430. \fBstates.apache_site\fP
  215431. .IP \(bu 2
  215432. \fBstates.boto_cloudtrail\fP
  215433. .IP \(bu 2
  215434. \fBstates.boto_datapipeline\fP
  215435. .IP \(bu 2
  215436. \fBstates.boto_iot\fP
  215437. .IP \(bu 2
  215438. \fBstates.boto_lamda\fP
  215439. .IP \(bu 2
  215440. \fBstates.boto_s3_bucket\fP
  215441. .IP \(bu 2
  215442. \fBstates.chocolatey\fP
  215443. .IP \(bu 2
  215444. \fBstates.chronos_job\fP
  215445. .IP \(bu 2
  215446. \fBstates.firewall\fP
  215447. .IP \(bu 2
  215448. \fBstates.github\fP
  215449. .IP \(bu 2
  215450. \fBstates.gpg\fP
  215451. .IP \(bu 2
  215452. \fBstates.grafana_dashboard\fP
  215453. .IP \(bu 2
  215454. \fBstates.grafana_datasource\fP
  215455. .IP \(bu 2
  215456. \fBstates.infoblox\fP
  215457. .IP \(bu 2
  215458. \fBstates.jenkins\fP
  215459. .IP \(bu 2
  215460. \fBstates.mac_assistive\fP
  215461. .IP \(bu 2
  215462. \fBstates.mac_defaults\fP
  215463. .IP \(bu 2
  215464. \fBstates.mac_keychain\fP
  215465. .IP \(bu 2
  215466. \fBstates.mac_xattr\fP
  215467. .IP \(bu 2
  215468. \fBstates.marathon_app\fP
  215469. .IP \(bu 2
  215470. \fBstates.openvswitch_bridge\fP
  215471. .IP \(bu 2
  215472. \fBstates.openvswitch_port\fP
  215473. .IP \(bu 2
  215474. \fBstates.postgres_cluster\fP
  215475. .IP \(bu 2
  215476. \fBstates.proxy\fP
  215477. .IP \(bu 2
  215478. \fBstates.salt_proxy\fP
  215479. .IP \(bu 2
  215480. \fBstates.virt\fP
  215481. .IP \(bu 2
  215482. \fBstates.win_certutil\fP
  215483. .IP \(bu 2
  215484. \fBstates.win_dism\fP
  215485. .IP \(bu 2
  215486. \fBstates.win_license\fP
  215487. .IP \(bu 2
  215488. \fBstates.zabbix_host\fP
  215489. .IP \(bu 2
  215490. \fBstates.zabbix_hostgroup\fP
  215491. .IP \(bu 2
  215492. \fBstates.zabbix_user\fP
  215493. .IP \(bu 2
  215494. \fBstates.zabbix_usergroup\fP
  215495. .UNINDENT
  215496. .SS Salt 2016.3.1 Release Notes
  215497. .sp
  215498. Version 2016.3.1 is a bugfix release for 2016.3.0\&.
  215499. .SS Statistics
  215500. .INDENT 0.0
  215501. .IP \(bu 2
  215502. Total Merges: \fB87\fP
  215503. .IP \(bu 2
  215504. Total Issue References: \fB23\fP
  215505. .IP \(bu 2
  215506. Total PR References: \fB58\fP
  215507. .IP \(bu 2
  215508. 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)
  215509. .UNINDENT
  215510. .SS Final Release of Debian 7 Packages
  215511. .sp
  215512. Regular security support for Debian 7 ended on April 25th, 2016. As a result,
  215513. 2016.3.1 and 2015.8.10 will be the last Salt releases for which Debian 7
  215514. packages are created.
  215515. .SS Changelog for v2016.3.0..v2016.3.1
  215516. .sp
  215517. \fIGenerated at: 2018\-05\-27 04:31:54 UTC\fP
  215518. .INDENT 0.0
  215519. .INDENT 3.5
  215520. .INDENT 0.0
  215521. .IP \(bu 2
  215522. \fBPR\fP \fI\%#33883\fP: (\fI\%jfindlay\fP) add 2016.3.1 release notes
  215523. .UNINDENT
  215524. .UNINDENT
  215525. .UNINDENT
  215526. .INDENT 0.0
  215527. .IP \(bu 2
  215528. \fBPR\fP \fI\%#33866\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215529. @ \fI2016\-06\-08 19:49:56 UTC\fP
  215530. .INDENT 2.0
  215531. .IP \(bu 2
  215532. be20ce1bbf Merge pull request \fI\%#33866\fP from rallytime/merge\-2016.3
  215533. .IP \(bu 2
  215534. 595d4f2ac3 Fixup new groupadd tests for syntax change in 2016.3
  215535. .IP \(bu 2
  215536. c5b4ec0b0f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  215537. .INDENT 2.0
  215538. .IP \(bu 2
  215539. ec09095c45 Merge pull request \fI\%#33827\fP from cachedout/issue_33810
  215540. .INDENT 2.0
  215541. .IP \(bu 2
  215542. 9d36f1e474 Fix broken locate.locate function
  215543. .UNINDENT
  215544. .IP \(bu 2
  215545. f7b3d0eda0 Merge pull request \fI\%#33839\fP from cachedout/fix_pkgresource_test_stacktrace
  215546. .INDENT 2.0
  215547. .IP \(bu 2
  215548. 435547a747 Fix another unit test stacktrace in pkg_resource
  215549. .UNINDENT
  215550. .IP \(bu 2
  215551. 5f081ef31c Merge pull request \fI\%#33840\fP from cachedout/remove_matcher_unit_tests
  215552. .INDENT 2.0
  215553. .IP \(bu 2
  215554. 6297448377 Remove matcher tests
  215555. .UNINDENT
  215556. .IP \(bu 2
  215557. cda032dab2 Merge pull request \fI\%#33836\fP from cachedout/fix_winserver_manager_test
  215558. .INDENT 2.0
  215559. .IP \(bu 2
  215560. 453fb1ac91 Fixing more stupid unit tests
  215561. .UNINDENT
  215562. .IP \(bu 2
  215563. 1db559afe9 Merge pull request \fI\%#33805\fP from jfindlay/pkg_tests
  215564. .INDENT 2.0
  215565. .IP \(bu 2
  215566. 0c069ddc95 states.pkg int tests: skip if pkg mgr unavailable
  215567. .UNINDENT
  215568. .IP \(bu 2
  215569. 3984b65486 Merge pull request \fI\%#33808\fP from jfindlay/gem_tests
  215570. .INDENT 2.0
  215571. .IP \(bu 2
  215572. f7c19a1a58 modules.gem int tests: relax version checks
  215573. .IP \(bu 2
  215574. 6af47d2ba7 modules.gem int tests: remove pkgs before testing install
  215575. .UNINDENT
  215576. .IP \(bu 2
  215577. c30d8a8c61 Merge pull request \fI\%#33770\fP from jfindlay/service_tests
  215578. .INDENT 2.0
  215579. .IP \(bu 2
  215580. f13f914755 states.service: add integration tests
  215581. .IP \(bu 2
  215582. 90aee79c39 states.service.mod_watch: update unit test
  215583. .IP \(bu 2
  215584. d210a92f09 states.service.mod_watch: update sfun and force docs
  215585. .UNINDENT
  215586. .IP \(bu 2
  215587. 7fdfbe9a28 Merge pull request \fI\%#33691\fP from jtand/gem_integration_test
  215588. .INDENT 2.0
  215589. .IP \(bu 2
  215590. ff2dae103d ubuntu doesn\(aqt install default gems when ruby is installed
  215591. .IP \(bu 2
  215592. 504df9a65a Fixed lint error
  215593. .IP \(bu 2
  215594. 0cb1bfa0d3 Removed extra :
  215595. .IP \(bu 2
  215596. 86f59b3e80 Made more pythonic
  215597. .IP \(bu 2
  215598. 2f36f34981 Fixed salt.util import. Added status check to make sure external resource is available
  215599. .IP \(bu 2
  215600. 400a71ec33 Removed redundancies
  215601. .IP \(bu 2
  215602. 91db411bea A couple lint fixes
  215603. .IP \(bu 2
  215604. c97f3319b9 Add check for gem binary
  215605. .IP \(bu 2
  215606. 210aceb402 Refactored tests to not use return messages
  215607. .IP \(bu 2
  215608. 9d437bd45d Removed artifact from testing
  215609. .IP \(bu 2
  215610. 134e1fa888 Fixed typos, and added destructiveTest decorator
  215611. .IP \(bu 2
  215612. 37bc3ad8fd Fixed typo, uninstalled to uninstall
  215613. .IP \(bu 2
  215614. 5b23b91ac6 Integration test for gem module
  215615. .UNINDENT
  215616. .IP \(bu 2
  215617. bb4194bb79 Merge pull request \fI\%#33777\fP from sodium\-chloride/2015.8\-2016\-0604\-1939
  215618. .INDENT 2.0
  215619. .IP \(bu 2
  215620. c1fd830a1a Fix minor docstring issue of arg being missing
  215621. .UNINDENT
  215622. .IP \(bu 2
  215623. c749aea409 Merge pull request \fI\%#33759\fP from cachedout/issue_31219
  215624. .INDENT 2.0
  215625. .IP \(bu 2
  215626. 15a39f8646 Catch no minions exception in batch mode
  215627. .UNINDENT
  215628. .IP \(bu 2
  215629. 47d668e071 Merge pull request \fI\%#33719\fP from cachedout/fixup_33653
  215630. .INDENT 2.0
  215631. .IP \(bu 2
  215632. 635efa248b Change to just surround the mkdir
  215633. .IP \(bu 2
  215634. 21b7123a60 Catch oserror for race condition
  215635. .UNINDENT
  215636. .IP \(bu 2
  215637. 11e39e7203 Merge pull request \fI\%#33712\fP from meaksh/fix\-for\-groupadd\-module\-failures\-in\-SLE11\-2015.8
  215638. .INDENT 2.0
  215639. .IP \(bu 2
  215640. ab738416ba pylint fix
  215641. .IP \(bu 2
  215642. bf27e5d36e test_members cleanup
  215643. .IP \(bu 2
  215644. ba815dbf76 improvements on groupadd unit tests
  215645. .IP \(bu 2
  215646. 3bbc5ae0d9 one line is better
  215647. .IP \(bu 2
  215648. a53dc192c9 fix groupadd module for sles11 systems
  215649. .UNINDENT
  215650. .IP \(bu 2
  215651. 2c450a7494 Merge pull request \fI\%#33718\fP from rallytime/bp\-33700
  215652. .INDENT 2.0
  215653. .IP \(bu 2
  215654. a6a446121a Fix speed issue
  215655. .IP \(bu 2
  215656. a41146730a Fix incorrect args passed to timezone.set_hwclock
  215657. .UNINDENT
  215658. .IP \(bu 2
  215659. b07701f0a0 Merge pull request \fI\%#33727\fP from terminalmage/issue33725
  215660. .INDENT 2.0
  215661. .IP \(bu 2
  215662. d8ba7ed5a5 Fix git_pillar edge case for remote repos without a master branch
  215663. .UNINDENT
  215664. .IP \(bu 2
  215665. 015e50cec8 Merge pull request \fI\%#33728\fP from jfindlay/test_state_test
  215666. .INDENT 2.0
  215667. .IP \(bu 2
  215668. 87e018af2a states.test.configurable_test_state: add unit tests
  215669. .IP \(bu 2
  215670. c2d0679c4b states.test.configurable_test_state: refactor change_data
  215671. .IP \(bu 2
  215672. f06ff1af1f states.test.configurable_test_state test mode
  215673. .UNINDENT
  215674. .IP \(bu 2
  215675. 1cf8fe3f1d Merge pull request \fI\%#33729\fP from twangboy/fix_win_servermanager
  215676. .INDENT 2.0
  215677. .IP \(bu 2
  215678. 2de91d166f Fix docstring
  215679. .IP \(bu 2
  215680. 9870479d99 Add exclude option to state
  215681. .IP \(bu 2
  215682. 50bd76e206 Add exclude option
  215683. .UNINDENT
  215684. .IP \(bu 2
  215685. 6c150d840d Merge pull request \fI\%#33743\fP from vutny/drop\-debian\-community\-repo\-doc
  215686. .INDENT 2.0
  215687. .IP \(bu 2
  215688. 8621f5be54 Debian installation docs: drop section about community\-maintained repository
  215689. .UNINDENT
  215690. .IP \(bu 2
  215691. 56c0a42e12 Create missing jid dir if it doesn\(aqt exist (\fI\%#33653\fP)
  215692. .IP \(bu 2
  215693. 8a566ff4b9 Merge pull request \fI\%#33654\fP from twangboy/fix_win_servermanager
  215694. .INDENT 2.0
  215695. .IP \(bu 2
  215696. 6c7b21676a Fix lint and tests
  215697. .IP \(bu 2
  215698. 4775e6bdf0 Add additional params to state
  215699. .IP \(bu 2
  215700. b0af32346d Add additional params to install and remove
  215701. .UNINDENT
  215702. .IP \(bu 2
  215703. 996ff56dd4 Merge pull request \fI\%#33679\fP from terminalmage/issue33424
  215704. .INDENT 2.0
  215705. .IP \(bu 2
  215706. 9da40c4437 Append empty dictionaries for saltenvs with no top file
  215707. .IP \(bu 2
  215708. 5eb1b3ca62 Only compile the template contents if they evaluate to True
  215709. .UNINDENT
  215710. .UNINDENT
  215711. .UNINDENT
  215712. .IP \(bu 2
  215713. \fBISSUE\fP \fI\%#33843\fP: (\fI\%richardscollin\fP) 2016.3 Test Suite TCP Error (refs: \fI\%#33860\fP)
  215714. .IP \(bu 2
  215715. \fBPR\fP \fI\%#33860\fP: (\fI\%cachedout\fP) Allow socket closes when the socket is disconnected
  215716. @ \fI2016\-06\-08 18:26:16 UTC\fP
  215717. .INDENT 2.0
  215718. .IP \(bu 2
  215719. 669aa92d59 Merge pull request \fI\%#33860\fP from cachedout/issue_33843
  215720. .IP \(bu 2
  215721. 2c88e22c07 Use errno
  215722. .IP \(bu 2
  215723. e7de99dd0e Correct silly mistake
  215724. .IP \(bu 2
  215725. 7a46360a13 Allow socket closes when the socket is disconnected
  215726. .UNINDENT
  215727. .IP \(bu 2
  215728. \fBISSUE\fP \fI\%#33818\fP: (\fI\%saltuser\fP) 2016.3.0 minion default log level INFO (refs: \fI\%#33821\fP, \fI\%#33861\fP)
  215729. .INDENT 2.0
  215730. .IP \(bu 2
  215731. \fBPR\fP \fI\%#33861\fP: (\fI\%cachedout\fP) Set master and cloud to log level warning
  215732. .IP \(bu 2
  215733. \fBPR\fP \fI\%#33821\fP: (\fI\%cachedout\fP) Restore deafault log level to warning (refs: \fI\%#33861\fP)
  215734. .UNINDENT
  215735. .IP \(bu 2
  215736. \fBPR\fP \fI\%#33698\fP: (\fI\%opdude\fP) Vsphere fixes
  215737. @ \fI2016\-06\-08 14:12:17 UTC\fP
  215738. .INDENT 2.0
  215739. .IP \(bu 2
  215740. a3202f1ad6 Merge pull request \fI\%#33698\fP from Unity\-Technologies/vsphere\-fixes
  215741. .IP \(bu 2
  215742. 8ff5906fad Revert "Fix\ a bug when creating a new VM and changing the network info"
  215743. .IP \(bu 2
  215744. 636f4c00f0 Make sure we only use GetConnection if we are using a proxy salt minion
  215745. .IP \(bu 2
  215746. 64e9334d56 Fix a bug with self signed certificates and creating a new VM
  215747. .IP \(bu 2
  215748. 7834aeda7d Fix\ a bug when creating a new VM and changing the network info
  215749. .UNINDENT
  215750. .IP \(bu 2
  215751. \fBPR\fP \fI\%#33771\fP: (\fI\%twangboy\fP) Additional functionality to win_dism.py
  215752. @ \fI2016\-06\-08 13:58:20 UTC\fP
  215753. .INDENT 2.0
  215754. .IP \(bu 2
  215755. 01aaf3e2a9 Merge pull request \fI\%#33771\fP from twangboy/win_dism
  215756. .IP \(bu 2
  215757. 9be45fe37a Fix some more lint
  215758. .IP \(bu 2
  215759. 421dc97957 Fix/add unit tests for state
  215760. .IP \(bu 2
  215761. 8d66fac74c Add missing unit tests
  215762. .IP \(bu 2
  215763. 60f856f73d Fix unit tests for module
  215764. .IP \(bu 2
  215765. b574947afe Fix some lint errors
  215766. .IP \(bu 2
  215767. a32774c07d Add salt.utils.compare_lists
  215768. .IP \(bu 2
  215769. 7ff7050705 Fix incorrect parameters in the state
  215770. .IP \(bu 2
  215771. b8ee89f18e Fix typos
  215772. .IP \(bu 2
  215773. 10458d8a70 Remove multiple lookups, faster
  215774. .IP \(bu 2
  215775. d9b848c0d9 Change to dict instead of error
  215776. .IP \(bu 2
  215777. 6510e0a5b0 Add restart option
  215778. .IP \(bu 2
  215779. da8562dbc8 Add quiet and norestart options
  215780. .IP \(bu 2
  215781. 946371bf1f Handle errors, ensure add/remove
  215782. .IP \(bu 2
  215783. 7e6382a8b2 Use list instead of string for cmd
  215784. .IP \(bu 2
  215785. fbdd28f144 Add state functions
  215786. .IP \(bu 2
  215787. 90a4ee3d96 Merge branch \(aq2016.3\(aq of \fI\%https://github.com/saltstack/salt\fP into win_dism
  215788. .IP \(bu 2
  215789. 00c24abe1f Add get functions
  215790. .IP \(bu 2
  215791. c6621053fd Add additional functions
  215792. .IP \(bu 2
  215793. 36507845b6 Update documentation
  215794. .UNINDENT
  215795. .IP \(bu 2
  215796. \fBISSUE\fP \fI\%#33649\fP: (\fI\%tyhunt99\fP) 2016.3.0 dockerng state fails comparing cmd configuration (refs: \fI\%#33851\fP)
  215797. .IP \(bu 2
  215798. \fBPR\fP \fI\%#33851\fP: (\fI\%ticosax\fP) [dockerng] Add support for edge case when \fICmd\fP and \fIEntrypoint\fP can\(aqt be blanked
  215799. @ \fI2016\-06\-08 13:52:40 UTC\fP
  215800. .INDENT 2.0
  215801. .IP \(bu 2
  215802. f546e47552 Merge pull request \fI\%#33851\fP from ticosax/fix\-entrypoint\-support
  215803. .IP \(bu 2
  215804. 0d40e1c4f3 Add support for edge case when Cmd and Entrypoint can\(aqt be blanked
  215805. .UNINDENT
  215806. .IP \(bu 2
  215807. \fBISSUE\fP \fI\%#33818\fP: (\fI\%saltuser\fP) 2016.3.0 minion default log level INFO (refs: \fI\%#33821\fP, \fI\%#33861\fP)
  215808. .IP \(bu 2
  215809. \fBPR\fP \fI\%#33821\fP: (\fI\%cachedout\fP) Restore deafault log level to warning (refs: \fI\%#33861\fP)
  215810. @ \fI2016\-06\-07 16:51:46 UTC\fP
  215811. .INDENT 2.0
  215812. .IP \(bu 2
  215813. 3f6d06a060 Merge pull request \fI\%#33821\fP from cachedout/issue_33818
  215814. .IP \(bu 2
  215815. 52f1f77a38 Restore deafault log level to warning
  215816. .UNINDENT
  215817. .IP \(bu 2
  215818. \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)
  215819. .IP \(bu 2
  215820. \fBPR\fP \fI\%#33767\fP: (\fI\%amontalban\fP) Fix \fI\%#33604\fP implementation when \(aqgeom disk list\(aq does not output rotat…
  215821. @ \fI2016\-06\-07 14:41:56 UTC\fP
  215822. .INDENT 2.0
  215823. .IP \(bu 2
  215824. \fBPR\fP \fI\%#33604\fP: (\fI\%kev009\fP) Fix \fI\%#33578\fP disks grain (refs: \fI\%#33767\fP)
  215825. .IP \(bu 2
  215826. 3e48b701e3 Merge pull request \fI\%#33767\fP from amontalban/2016.3
  215827. .IP \(bu 2
  215828. b8c0dd5b4c Fix \fI\%#33604\fP implementation when \(aqgeom disk list\(aq does not output rotationrate. \fI\%#33578\fP
  215829. .UNINDENT
  215830. .IP \(bu 2
  215831. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug
  215832. @ \fI2016\-06\-07 14:39:57 UTC\fP
  215833. .INDENT 2.0
  215834. .IP \(bu 2
  215835. a84588c788 Merge pull request \fI\%#33806\fP from cachedout/cherrypy_1444
  215836. .IP \(bu 2
  215837. 1b537d41b6 Work around upstream cherrypy bug
  215838. .UNINDENT
  215839. .IP \(bu 2
  215840. \fBISSUE\fP \fI\%#33754\fP: (\fI\%zerthimon\fP) boto_s3_bucket.present is not idempotent (refs: \fI\%#33776\fP)
  215841. .IP \(bu 2
  215842. \fBPR\fP \fI\%#33776\fP: (\fI\%danslimmon\fP) Fixed ACL user comparison. Resolves \fI\%#33754\fP\&.
  215843. @ \fI2016\-06\-06 11:11:15 UTC\fP
  215844. .INDENT 2.0
  215845. .IP \(bu 2
  215846. 94f98b4ab8 Merge pull request \fI\%#33776\fP from danslimmon/s3\-bucket\-idempotency\-33754
  215847. .IP \(bu 2
  215848. 35b84f1877 Fixed bug where _prep_acl_for_compare() would edit but not return
  215849. .IP \(bu 2
  215850. f87bc347fd Fixed ACL user comparison. Resolves \fI\%#33754\fP\&.
  215851. .UNINDENT
  215852. .IP \(bu 2
  215853. \fBISSUE\fP \fI\%#33741\fP: (\fI\%jopohl\fP) pkg.install: ERROR: Zypper command failure: Unknown option \(aq\-\-no\-refresh\(aq (refs: \fI\%#33763\fP)
  215854. .IP \(bu 2
  215855. \fBPR\fP \fI\%#33763\fP: (\fI\%abednarik\fP) Insert \-\-no\-refresh before install in Zypper.
  215856. @ \fI2016\-06\-06 10:53:27 UTC\fP
  215857. .INDENT 2.0
  215858. .IP \(bu 2
  215859. a92e155a04 Merge pull request \fI\%#33763\fP from abednarik/abednarik_zypper_no_refresh_fix
  215860. .IP \(bu 2
  215861. 7c909a1d7f Insert \-\-no\-refresh before install in Zypper.
  215862. .UNINDENT
  215863. .IP \(bu 2
  215864. \fBISSUE\fP \fI\%#33647\fP: (\fI\%closepin\fP) Pillars passed from command\-line override pillar subtrees instead of merging (refs: \fI\%#33764\fP)
  215865. .IP \(bu 2
  215866. \fBPR\fP \fI\%#33764\fP: (\fI\%terminalmage\fP) Merge instead of update pillar overrides
  215867. @ \fI2016\-06\-06 10:52:22 UTC\fP
  215868. .INDENT 2.0
  215869. .IP \(bu 2
  215870. 306848a2d7 Merge pull request \fI\%#33764\fP from terminalmage/issue33647
  215871. .IP \(bu 2
  215872. 914003c995 Merge instead of update pillar overrides
  215873. .UNINDENT
  215874. .IP \(bu 2
  215875. \fBPR\fP \fI\%#33772\fP: (\fI\%danslimmon\fP) Fixed spelling of "through"
  215876. @ \fI2016\-06\-06 10:50:54 UTC\fP
  215877. .INDENT 2.0
  215878. .IP \(bu 2
  215879. b37a862b70 Merge pull request \fI\%#33772\fP from danslimmon/trough\-through
  215880. .IP \(bu 2
  215881. ea3498aedc Fixed spelling of "through"
  215882. .UNINDENT
  215883. .IP \(bu 2
  215884. \fBISSUE\fP \fI\%#33614\fP: (\fI\%knuta\fP) grains.has_key() always returns false in 2016.3.0 (refs: \fI\%#33651\fP)
  215885. .IP \(bu 2
  215886. \fBPR\fP \fI\%#33651\fP: (\fI\%cachedout\fP) Restore grains context to renderers
  215887. @ \fI2016\-06\-03 20:48:44 UTC\fP
  215888. .INDENT 2.0
  215889. .IP \(bu 2
  215890. a8d9221631 Merge pull request \fI\%#33651\fP from cachedout/issue_33614
  215891. .IP \(bu 2
  215892. 5518e1dd14 Fix whitespace
  215893. .IP \(bu 2
  215894. 7b50e1766e Better fix
  215895. .IP \(bu 2
  215896. 4e18ff7000 Restore grains context to renderers
  215897. .UNINDENT
  215898. .IP \(bu 2
  215899. \fBPR\fP \fI\%#33757\fP: (\fI\%cachedout\fP) Reminder not to return non\-serializable data from states
  215900. @ \fI2016\-06\-03 19:23:54 UTC\fP
  215901. .INDENT 2.0
  215902. .IP \(bu 2
  215903. daf462e430 Merge pull request \fI\%#33757\fP from cachedout/state_set_doc
  215904. .IP \(bu 2
  215905. 500d4ccec2 Reminder not to return non\-serializable data from states
  215906. .UNINDENT
  215907. .IP \(bu 2
  215908. \fBISSUE\fP \fI\%#33605\fP: (\fI\%morganwillcock\fP) win_pkg: UnicodeEncodeError where DisplayName includes "Español" (refs: \fI\%#33670\fP)
  215909. .IP \(bu 2
  215910. \fBPR\fP \fI\%#33670\fP: (\fI\%rallytime\fP) Handle non\-ascii package names in state.format_log
  215911. @ \fI2016\-06\-03 16:16:53 UTC\fP
  215912. .INDENT 2.0
  215913. .IP \(bu 2
  215914. a5684ed123 Merge pull request \fI\%#33670\fP from rallytime/fix\-33605
  215915. .IP \(bu 2
  215916. 59bd51f4c8 Update test to correct iteration
  215917. .IP \(bu 2
  215918. a580d1c6e0 Add unit test for format_log change
  215919. .IP \(bu 2
  215920. e68097445c Revert "Track down more unicode instances and add a test"
  215921. .IP \(bu 2
  215922. 9729aed262 Track down more unicode instances and add a test
  215923. .IP \(bu 2
  215924. ae332d1f88 Handle non\-ascii package names in state.format_log
  215925. .UNINDENT
  215926. .IP \(bu 2
  215927. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#33641\fP)
  215928. .IP \(bu 2
  215929. \fBPR\fP \fI\%#33723\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33641\fP to 2016.3
  215930. @ \fI2016\-06\-03 16:07:53 UTC\fP
  215931. .INDENT 2.0
  215932. .IP \(bu 2
  215933. \fBPR\fP \fI\%#33641\fP: (\fI\%glomium\fP) check rabbitmq version and use different api to validate a users pass… (refs: \fI\%#33723\fP)
  215934. .IP \(bu 2
  215935. 56eab363ff Merge pull request \fI\%#33723\fP from rallytime/bp\-33641
  215936. .IP \(bu 2
  215937. 77a51a00a3 pylint W0141, W0702
  215938. .IP \(bu 2
  215939. f8518939a7 check rabbitmq version and use different api to validate a users password
  215940. .UNINDENT
  215941. .IP \(bu 2
  215942. \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)
  215943. .IP \(bu 2
  215944. \fBPR\fP \fI\%#33748\fP: (\fI\%ticosax\fP) HostConfig has been introduced by docker api version 1.15
  215945. @ \fI2016\-06\-03 15:28:40 UTC\fP
  215946. .INDENT 2.0
  215947. .IP \(bu 2
  215948. c2b970789c Merge pull request \fI\%#33748\fP from ticosax/adjust\-api\-version\-host\-config
  215949. .IP \(bu 2
  215950. 134e4a9abf HostConfig has been intoriduced by docker api version 1.15
  215951. .UNINDENT
  215952. .IP \(bu 2
  215953. \fBPR\fP \fI\%#33745\fP: (\fI\%eliasp\fP) Typo (\fIprivilages\fP → \fIprivileges\fP)
  215954. @ \fI2016\-06\-03 15:14:37 UTC\fP
  215955. .INDENT 2.0
  215956. .IP \(bu 2
  215957. e08c685a6c Merge pull request \fI\%#33745\fP from eliasp/2016.3\-typo\-privilages\-privileges
  215958. .IP \(bu 2
  215959. 646bc426c6 Typo (\fIprivilages\fP → \fIprivileges\fP)
  215960. .UNINDENT
  215961. .IP \(bu 2
  215962. \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)
  215963. .IP \(bu 2
  215964. \fBPR\fP \fI\%#33562\fP: (\fI\%jfindlay\fP) states.apache_*: readd and deprecate enable and disable
  215965. @ \fI2016\-06\-02 19:51:37 UTC\fP
  215966. .INDENT 2.0
  215967. .IP \(bu 2
  215968. \fBPR\fP \fI\%#29651\fP: (\fI\%zigarn\fP) Deb apache fixes (refs: \fI\%#33562\fP)
  215969. .IP \(bu 2
  215970. 5f4c6902aa Merge pull request \fI\%#33562\fP from jfindlay/apache_funcs
  215971. .IP \(bu 2
  215972. 9b0eb858a6 add note and workaround to release notes
  215973. .IP \(bu 2
  215974. 17306bfc69 states.apache_*: readd and deprecate enable and disable
  215975. .UNINDENT
  215976. .IP \(bu 2
  215977. \fBISSUE\fP \fI\%#33632\fP: (\fI\%rbjorklin\fP) dockerng.volume_present: Dryrun isn\(aqt dry (refs: \fI\%#33659\fP)
  215978. .IP \(bu 2
  215979. \fBPR\fP \fI\%#33659\fP: (\fI\%danslimmon\fP) Added test mode to states.dockerng. Resolves \fI\%#33632\fP\&.
  215980. @ \fI2016\-06\-02 17:45:49 UTC\fP
  215981. .INDENT 2.0
  215982. .IP \(bu 2
  215983. d3253effe9 Merge pull request \fI\%#33659\fP from danslimmon/dockerng\-dryrun\-33632
  215984. .IP \(bu 2
  215985. ef885c1b7e Added test mode to dockerng.volume_present. Resolves \fI\%#33632\fP\&.
  215986. .UNINDENT
  215987. .IP \(bu 2
  215988. \fBPR\fP \fI\%#33696\fP: (\fI\%clburlison\fP) Update mac native package for upcoming release
  215989. @ \fI2016\-06\-02 17:44:01 UTC\fP
  215990. .INDENT 2.0
  215991. .IP \(bu 2
  215992. 1d6582b659 Merge pull request \fI\%#33696\fP from clburlison/2016.3\-pkg\-fix
  215993. .IP \(bu 2
  215994. b483d1d8a6 Update mac native package for upcoming release
  215995. .UNINDENT
  215996. .IP \(bu 2
  215997. \fBPR\fP \fI\%#33710\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215998. @ \fI2016\-06\-02 16:19:00 UTC\fP
  215999. .INDENT 2.0
  216000. .IP \(bu 2
  216001. 78966f5f30 Merge pull request \fI\%#33710\fP from rallytime/merge\-2016.3
  216002. .IP \(bu 2
  216003. b7accb0b3b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216004. .IP \(bu 2
  216005. c8dc70b96a Merge pull request \fI\%#33685\fP from jfindlay/get_url_test
  216006. .INDENT 2.0
  216007. .IP \(bu 2
  216008. 2b5035fdc0 modules.cp.get_url: add test for \fI\%https://\fP
  216009. .UNINDENT
  216010. .IP \(bu 2
  216011. 5e022ff29c Merge pull request \fI\%#33581\fP from dincamihai/2015.8
  216012. .INDENT 2.0
  216013. .IP \(bu 2
  216014. 788730ea72 DRY test
  216015. .IP \(bu 2
  216016. 1d3769ccfa Improve zypper_patcher_config looks
  216017. .IP \(bu 2
  216018. 42d8d4195c Assert only gpgautoimport: True works
  216019. .IP \(bu 2
  216020. ced75e8e62 Reverse if conditions and rename variable
  216021. .IP \(bu 2
  216022. 80bfbe5c52 Reduce dicts and lists to one line where possible
  216023. .IP \(bu 2
  216024. 1d5d6d7d60 Update test method names to pass pylint
  216025. .IP \(bu 2
  216026. c7ae5907ee Call zypper refresh after adding/modifying a repository
  216027. .UNINDENT
  216028. .IP \(bu 2
  216029. 069ee15b7c Merge pull request \fI\%#33681\fP from rallytime/bp\-33599
  216030. .INDENT 2.0
  216031. .IP \(bu 2
  216032. 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)
  216033. .IP \(bu 2
  216034. 4a9b23f03f first go at having requests use streaming for get/put requests
  216035. .UNINDENT
  216036. .IP \(bu 2
  216037. 13537c4891 Merge pull request \fI\%#33396\fP from babilen/issue\-33393
  216038. .INDENT 2.0
  216039. .IP \(bu 2
  216040. 57e0475cd4 Make pip InstallationError import more robust
  216041. .IP \(bu 2
  216042. 291a3e21fa Remove duplicated code.
  216043. .UNINDENT
  216044. .IP \(bu 2
  216045. 7bce4ece1a Merge pull request \fI\%#33652\fP from terminalmage/zh723
  216046. .INDENT 2.0
  216047. .IP \(bu 2
  216048. 411841603a Lower the log level for failed auths
  216049. .UNINDENT
  216050. .IP \(bu 2
  216051. 504989388a Merge pull request \fI\%#33615\fP from danslimmon/mysql\-traceback\-33582
  216052. .INDENT 2.0
  216053. .IP \(bu 2
  216054. 180099ae9f Wrote test for broken server connection
  216055. .IP \(bu 2
  216056. c6c3ff02e3 Added some error checking to resolve \fI\%#33582\fP\&.
  216057. .UNINDENT
  216058. .UNINDENT
  216059. .IP \(bu 2
  216060. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP, \fI\%#33682\fP)
  216061. .INDENT 2.0
  216062. .IP \(bu 2
  216063. \fBPR\fP \fI\%#33682\fP: (\fI\%lomeroe\fP) backport \fI\%#33599\fP to 2016.3
  216064. .IP \(bu 2
  216065. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP, \fI\%#33682\fP)
  216066. .UNINDENT
  216067. .IP \(bu 2
  216068. \fBISSUE\fP \fI\%#33532\fP: (\fI\%Routhinator\fP) 2016.3 breaks existing formulas that work on 2015.8 (refs: \fI\%#33688\fP)
  216069. .INDENT 2.0
  216070. .IP \(bu 2
  216071. \fBPR\fP \fI\%#33688\fP: (\fI\%terminalmage\fP) Undo __repr__() and __str__() parts of d5a7dcc
  216072. .UNINDENT
  216073. .IP \(bu 2
  216074. \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)
  216075. .INDENT 2.0
  216076. .IP \(bu 2
  216077. \fBPR\fP \fI\%#33690\fP: (\fI\%neil\-williamson\fP) Remove explicit PW column default from mysql_user
  216078. .IP \(bu 2
  216079. \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)
  216080. .IP \(bu 2
  216081. \fBPR\fP \fI\%#30603\fP: (\fI\%michalsuba\fP) addressing \fI\%#29265\fP (refs: \fI\%#32440\fP)
  216082. .UNINDENT
  216083. .IP \(bu 2
  216084. \fBPR\fP \fI\%#33680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32942\fP to 2016.3
  216085. @ \fI2016\-06\-01 22:14:20 UTC\fP
  216086. .INDENT 2.0
  216087. .IP \(bu 2
  216088. \fBPR\fP \fI\%#32942\fP: (\fI\%onorua\fP) Make tornado raise error configurable (refs: \fI\%#33680\fP)
  216089. .IP \(bu 2
  216090. c725854596 Merge pull request \fI\%#33680\fP from rallytime/bp\-32942
  216091. .IP \(bu 2
  216092. 09751ecb04 Make tornado raise error configurable (\fI\%#32942\fP)
  216093. .UNINDENT
  216094. .IP \(bu 2
  216095. \fBPR\fP \fI\%#33677\fP: (\fI\%twangboy\fP) Pass kwargs to cmd.run
  216096. @ \fI2016\-06\-01 20:20:08 UTC\fP
  216097. .INDENT 2.0
  216098. .IP \(bu 2
  216099. 9571dad678 Merge pull request \fI\%#33677\fP from twangboy/fix_runas
  216100. .IP \(bu 2
  216101. 4272afe0d5 Pass kwargs to cmd.run
  216102. .UNINDENT
  216103. .IP \(bu 2
  216104. \fBISSUE\fP \fI\%#33529\fP: (\fI\%djneades\fP) pkg.latest completely broken on FreeBSD in salt\-ssh 2016.3 (refs: \fI\%#33648\fP)
  216105. .IP \(bu 2
  216106. \fBPR\fP \fI\%#33648\fP: (\fI\%terminalmage\fP) salt.modules.pkgng: Fix incorrect usage of _pkg()
  216107. @ \fI2016\-06\-01 16:37:46 UTC\fP
  216108. .INDENT 2.0
  216109. .IP \(bu 2
  216110. d566ec4b31 Merge pull request \fI\%#33648\fP from terminalmage/issue33529
  216111. .IP \(bu 2
  216112. 4ad80d29b6 salt.modules.pkgng: Fix incorrect usage of _pkg()
  216113. .UNINDENT
  216114. .IP \(bu 2
  216115. \fBPR\fP \fI\%#33646\fP: (\fI\%jfindlay\fP) Fix more tmp paths on MacOS
  216116. @ \fI2016\-06\-01 16:36:33 UTC\fP
  216117. .INDENT 2.0
  216118. .IP \(bu 2
  216119. e92d6e214f Merge pull request \fI\%#33646\fP from jfindlay/mac_tests
  216120. .IP \(bu 2
  216121. c53a727c18 tests.runtests: use globally\-determined tempdir
  216122. .IP \(bu 2
  216123. 8295b48459 test.integration: use hard /tmp on MacOS
  216124. .UNINDENT
  216125. .IP \(bu 2
  216126. \fBPR\fP \fI\%#33656\fP: (\fI\%cachedout\fP) Fix indentation error in minion.py
  216127. @ \fI2016\-06\-01 16:23:20 UTC\fP
  216128. .INDENT 2.0
  216129. .IP \(bu 2
  216130. \fBPR\fP \fI\%#33076\fP: (\fI\%cachedout\fP) Avoid second grains load on windows multiprocessing (refs: \fI\%#33656\fP)
  216131. .IP \(bu 2
  216132. 9603cd3c0d Merge pull request \fI\%#33656\fP from cachedout/fix_33076
  216133. .IP \(bu 2
  216134. 8259d4091f Fix indentation error in minion.py
  216135. .UNINDENT
  216136. .IP \(bu 2
  216137. \fBPR\fP \fI\%#33637\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216138. @ \fI2016\-05\-31 18:43:17 UTC\fP
  216139. .INDENT 2.0
  216140. .IP \(bu 2
  216141. b379dc57fd Merge pull request \fI\%#33637\fP from rallytime/merge\-2016.3
  216142. .IP \(bu 2
  216143. cd05d2bed1 Fix zypper test
  216144. .IP \(bu 2
  216145. 74a7b78e00 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216146. .INDENT 2.0
  216147. .IP \(bu 2
  216148. b47182e47c Merge pull request \fI\%#33558\fP from twangboy/fix_win_servermanager
  216149. .INDENT 2.0
  216150. .IP \(bu 2
  216151. 62a6bde0ea Fix comment when already installed
  216152. .IP \(bu 2
  216153. 79bc7195dc Fix unit tests
  216154. .IP \(bu 2
  216155. 56a6f6bb83 Fix changes
  216156. .IP \(bu 2
  216157. 8ebe99ec5e Fix restart_needed
  216158. .IP \(bu 2
  216159. 6e478cbda0 Add restart needed
  216160. .IP \(bu 2
  216161. 72ebf26616 Add missing import
  216162. .IP \(bu 2
  216163. 193583be96 Use dictionary compare for changes in remove
  216164. .IP \(bu 2
  216165. 1ae7dd76c1 Use dictionary compare for changes
  216166. .UNINDENT
  216167. .IP \(bu 2
  216168. 58d89d66e3 Merge pull request \fI\%#33555\fP from cachedout/issue_33544
  216169. .INDENT 2.0
  216170. .IP \(bu 2
  216171. fe7ee7a470 Fix crashing Maintenence process
  216172. .UNINDENT
  216173. .IP \(bu 2
  216174. d052908729 Merge pull request \fI\%#33501\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  216175. .INDENT 2.0
  216176. .IP \(bu 2
  216177. eaaef25c79 lint issue fixed
  216178. .IP \(bu 2
  216179. 6b6febb211 unit tests for rpm.checksum() and zypper.download()
  216180. .UNINDENT
  216181. .IP \(bu 2
  216182. e2d0c4abb1 Merge pull request \fI\%#33513\fP from rallytime/fix\-33319
  216183. .INDENT 2.0
  216184. .IP \(bu 2
  216185. 81c1471209 Add a section to the jinja docs about escaping jinja
  216186. .UNINDENT
  216187. .IP \(bu 2
  216188. fabc15e616 Merge pull request \fI\%#33520\fP from jacobhammons/release\-notes.8
  216189. .INDENT 2.0
  216190. .IP \(bu 2
  216191. 42e358af7d Updated version numbers in the docs for the 2016.3.0 release
  216192. .UNINDENT
  216193. .UNINDENT
  216194. .IP \(bu 2
  216195. \fBPR\fP \fI\%#33638\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33613\fP to 2016.3
  216196. .IP \(bu 2
  216197. \fBPR\fP \fI\%#33613\fP: (\fI\%abednarik\fP) Updated apache_module for backward compatible. (refs: \fI\%#33638\fP)
  216198. .UNINDENT
  216199. .IP \(bu 2
  216200. \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)
  216201. .IP \(bu 2
  216202. \fBPR\fP \fI\%#33606\fP: (\fI\%danslimmon\fP) Fixed ini.options_absent. Resolves \fI\%#33590\fP\&.
  216203. @ \fI2016\-05\-31 15:51:35 UTC\fP
  216204. .INDENT 2.0
  216205. .IP \(bu 2
  216206. 23506f8279 Merge pull request \fI\%#33606\fP from danslimmon/ini\-optionsabsent\-33590
  216207. .IP \(bu 2
  216208. fb13852102 Fixed ini.options_absent. Resolves \fI\%#33590\fP\&.
  216209. .UNINDENT
  216210. .IP \(bu 2
  216211. \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)
  216212. .IP \(bu 2
  216213. \fBPR\fP \fI\%#33604\fP: (\fI\%kev009\fP) Fix \fI\%#33578\fP disks grain (refs: \fI\%#33767\fP)
  216214. @ \fI2016\-05\-31 15:17:37 UTC\fP
  216215. .INDENT 2.0
  216216. .IP \(bu 2
  216217. 44e8c9e720 Merge pull request \fI\%#33604\fP from kev009/fix\-33578
  216218. .IP \(bu 2
  216219. e452ec514e Ignore cdroms in disks grain
  216220. .IP \(bu 2
  216221. 8bf0290024 Make disks grain datatyper more resilient
  216222. .IP \(bu 2
  216223. \fBPR\fP \fI\%#33631\fP: (\fI\%babilen\fP) Fix \(aqvirt\(aq state names in cloud controller tutorial
  216224. .UNINDENT
  216225. .IP \(bu 2
  216226. \fBPR\fP \fI\%#33603\fP: (\fI\%sjorge\fP) allow esky packages to be build on base64 2015Q4
  216227. @ \fI2016\-05\-29 00:36:02 UTC\fP
  216228. .INDENT 2.0
  216229. .IP \(bu 2
  216230. e9a0c9304a Merge pull request \fI\%#33603\fP from sjorge/2016.3\-smartos\-esky
  216231. .IP \(bu 2
  216232. 1064102394 add no\-wheel, instructions were failing for someone testing due to wheel being used nog producing an egg
  216233. .IP \(bu 2
  216234. c85e03ecf7 allow for newer pyzmq in esky packages
  216235. .IP \(bu 2
  216236. 1620b8c0fa allow esky packages to be build on base64 2015Q4
  216237. .UNINDENT
  216238. .IP \(bu 2
  216239. \fBISSUE\fP \fI\%#33565\fP: (\fI\%jamesp9\fP) Typo in states/virtualenv_mod.py (refs: \fI\%#33576\fP)
  216240. .IP \(bu 2
  216241. \fBPR\fP \fI\%#33576\fP: (\fI\%tomlaredo\fP) Fix \fI\%#33565\fP (typo causes invalid syntax)
  216242. @ \fI2016\-05\-27 16:46:35 UTC\fP
  216243. .INDENT 2.0
  216244. .IP \(bu 2
  216245. afd3c1b9bd Merge pull request \fI\%#33576\fP from rodacom/2016.3
  216246. .IP \(bu 2
  216247. 9f7d81e0cc Fix \fI\%#33565\fP
  216248. .UNINDENT
  216249. .IP \(bu 2
  216250. \fBISSUE\fP \fI\%#33530\fP: (\fI\%kluoto\fP) Centos7 pkg.upgrade failure on 2016.3 (refs: \fI\%#33549\fP)
  216251. .IP \(bu 2
  216252. \fBPR\fP \fI\%#33549\fP: (\fI\%thatch45\fP) Fix for \fI\%#33530\fP
  216253. @ \fI2016\-05\-26 19:26:01 UTC\fP
  216254. .INDENT 2.0
  216255. .IP \(bu 2
  216256. 71145ddda7 Merge pull request \fI\%#33549\fP from thatch45/33530
  216257. .IP \(bu 2
  216258. b906859fce Fix for \fI\%#33530\fP
  216259. .UNINDENT
  216260. .IP \(bu 2
  216261. \fBPR\fP \fI\%#33538\fP: (\fI\%anlutro\fP) Fix a KeyError if group is provided but not user in cmd states
  216262. @ \fI2016\-05\-26 17:58:05 UTC\fP
  216263. .INDENT 2.0
  216264. .IP \(bu 2
  216265. 4831c6a353 Merge pull request \fI\%#33538\fP from alprs/fix\-cmd_user_runas_deprecation_bug
  216266. .IP \(bu 2
  216267. c738a0de76 fix a KeyError if group is provided but not user
  216268. .UNINDENT
  216269. .IP \(bu 2
  216270. \fBISSUE\fP \fI\%#33543\fP: (\fI\%arthurlogilab\fP) Thorium documentation is incorrectly formated and appears partially on docs.saltstack.com (refs: \fI\%#33550\fP)
  216271. .IP \(bu 2
  216272. \fBPR\fP \fI\%#33550\fP: (\fI\%jacobhammons\fP) Fixes display of thorium docs
  216273. @ \fI2016\-05\-26 17:57:05 UTC\fP
  216274. .INDENT 2.0
  216275. .IP \(bu 2
  216276. 5287a1b8c8 Merge pull request \fI\%#33550\fP from saltstack/jacobhammons\-patch\-1
  216277. .IP \(bu 2
  216278. 65df3a6fa2 Refs \fI\%#33543\fP
  216279. .UNINDENT
  216280. .IP \(bu 2
  216281. \fBPR\fP \fI\%#33509\fP: (\fI\%twangboy\fP) Detect System Architecture for Mac Build
  216282. @ \fI2016\-05\-26 14:40:54 UTC\fP
  216283. .INDENT 2.0
  216284. .IP \(bu 2
  216285. 3a95f8a977 Merge pull request \fI\%#33509\fP from twangboy/fix_arch
  216286. .IP \(bu 2
  216287. 7844059dcf Handle system architecture
  216288. .UNINDENT
  216289. .IP \(bu 2
  216290. \fBPR\fP \fI\%#33522\fP: (\fI\%jfindlay\fP) rework modules.mac_brew.latest_version to work around brew version inconsistency
  216291. @ \fI2016\-05\-26 14:19:25 UTC\fP
  216292. .INDENT 2.0
  216293. .IP \(bu 2
  216294. 0bc881b4da Merge pull request \fI\%#33522\fP from jfindlay/mac_pkg
  216295. .IP \(bu 2
  216296. 2781377b17 modules.mac_brew: update unit tests
  216297. .IP \(bu 2
  216298. 0ed3598fc9 modules.mac_brew int tests: add latest_version test
  216299. .IP \(bu 2
  216300. 8789c2d06d modules.mac_brew int tests: add list_upgrades,info_installed
  216301. .IP \(bu 2
  216302. be381e0fc9 modules.mac_brew int tests: move decorators to class
  216303. .IP \(bu 2
  216304. fa3ec8a2bf modules.mac_brew.latest_version: refactor to use standard methods
  216305. .IP \(bu 2
  216306. 58492c29cf modules.mac_brew: add info_installed function
  216307. .IP \(bu 2
  216308. 9abf8f4832 modules.mac_brew.list_upgrades: use brew\(aqs json output
  216309. .IP \(bu 2
  216310. 77a4f5b01e modules.mac_brew: move retcode check to _call_brew
  216311. .UNINDENT
  216312. .IP \(bu 2
  216313. \fBPR\fP \fI\%#33519\fP: (\fI\%jacobhammons\fP) New doc site layout, 2016.3.0 release note known issue additions
  216314. @ \fI2016\-05\-26 13:53:21 UTC\fP
  216315. .INDENT 2.0
  216316. .IP \(bu 2
  216317. 518713f5e5 Merge pull request \fI\%#33519\fP from jacobhammons/2016.3.0rel
  216318. .IP \(bu 2
  216319. a424c38f5d New doc site layout, 2016.3.0 release note known issue additions
  216320. .UNINDENT
  216321. .IP \(bu 2
  216322. \fBPR\fP \fI\%#33508\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216323. @ \fI2016\-05\-25 20:34:49 UTC\fP
  216324. .INDENT 2.0
  216325. .IP \(bu 2
  216326. 9199101ef2 Merge pull request \fI\%#33508\fP from rallytime/merge\-2016.3
  216327. .IP \(bu 2
  216328. a5e0141eda Merge branch \(aq2015.8\(aq into \(aq2106.3\(aq
  216329. .IP \(bu 2
  216330. 5a6b037cbd Merge pull request \fI\%#33507\fP from rallytime/merge\-2015.8
  216331. .INDENT 2.0
  216332. .IP \(bu 2
  216333. 03b0c97520 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  216334. .IP \(bu 2
  216335. 6f7fda0354 Merge pull request \fI\%#33486\fP from jtand/2015.5
  216336. .INDENT 2.0
  216337. .IP \(bu 2
  216338. d1e210fff8 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  216339. .IP \(bu 2
  216340. ee2ae0ea8a Added docstring examples to glance.image_schema and schema_get
  216341. .IP \(bu 2
  216342. 59e90064e6 modules.swift.head does not have a body. Should not be checked for a docstring right now.
  216343. .UNINDENT
  216344. .IP \(bu 2
  216345. f72ec1479b Merge pull request \fI\%#33482\fP from rallytime/pillar\-opts\-docs
  216346. .INDENT 2.0
  216347. .IP \(bu 2
  216348. 087564528d Add pillar_opts docs to master.rst
  216349. .UNINDENT
  216350. .IP \(bu 2
  216351. dc644b145d Merge pull request \fI\%#33488\fP from rallytime/fix\-18752
  216352. .INDENT 2.0
  216353. .IP \(bu 2
  216354. b0a9f4181f Add docs for the syndic_finger config
  216355. .UNINDENT
  216356. .IP \(bu 2
  216357. a4e84aa7d2 Merge pull request \fI\%#33454\fP from scubahub/2015.5
  216358. .INDENT 2.0
  216359. .IP \(bu 2
  216360. df3c0b8e78 Correct (and make consistent) determination of the test flag.
  216361. .UNINDENT
  216362. .IP \(bu 2
  216363. 3a52ace673 manage account information for pam (\fI\%#33473\fP)
  216364. .UNINDENT
  216365. .IP \(bu 2
  216366. ee76be3b0b Merge pull request \fI\%#33503\fP from rallytime/fix\-15252
  216367. .INDENT 2.0
  216368. .IP \(bu 2
  216369. cfc07f7641 Add docs about minion config file in standalone minion docs
  216370. .UNINDENT
  216371. .IP \(bu 2
  216372. e9b648e461 Merge pull request \fI\%#33474\fP from cachedout/issue_29451
  216373. .INDENT 2.0
  216374. .IP \(bu 2
  216375. aa2bac3a0d Remove debugging
  216376. .IP \(bu 2
  216377. 68d8050cb8 Fix diskusage beacon
  216378. .UNINDENT
  216379. .IP \(bu 2
  216380. 3bfb6bf719 Merge pull request \fI\%#33465\fP from meaksh/check\-if\-job\-returns\-successfully\-2015.8
  216381. .INDENT 2.0
  216382. .IP \(bu 2
  216383. 9deb70fd8e jobs.exit_success() now works parsing the results of jobs.lookup_id()
  216384. .IP \(bu 2
  216385. 7ba40c4f31 jobs.exit_success allow to check if a job has executed and exit successfully
  216386. .UNINDENT
  216387. .IP \(bu 2
  216388. 70eb7b66f3 Merge pull request \fI\%#33487\fP from jtand/glance_doc_fixes
  216389. .INDENT 2.0
  216390. .IP \(bu 2
  216391. 0b1cae05d9 Added docstring examples to glance methods and nova.list
  216392. .IP \(bu 2
  216393. ebf1256545 Don\(aqt need to check swift.head due to it having no body
  216394. .UNINDENT
  216395. .IP \(bu 2
  216396. 56ea979916 Merge pull request \fI\%#33481\fP from rallytime/fix\-33423
  216397. .INDENT 2.0
  216398. .IP \(bu 2
  216399. 7fd3e8f361 Fix docs about etcd config options and add pillar_opts doc
  216400. .UNINDENT
  216401. .IP \(bu 2
  216402. 2394cdc4bf Merge pull request \fI\%#33490\fP from rallytime/fix\-16319
  216403. .INDENT 2.0
  216404. .IP \(bu 2
  216405. 0c5548f9d1 Document the postgres.psql_query function
  216406. .UNINDENT
  216407. .IP \(bu 2
  216408. ede232f0f1 Merge pull request \fI\%#33480\fP from jfindlay/service_doc
  216409. .INDENT 2.0
  216410. .IP \(bu 2
  216411. 29c00a1b1b states.service: clarify function description language
  216412. .IP \(bu 2
  216413. 6a9ae09e79 states.service.__virtual__: add load fail reason
  216414. .UNINDENT
  216415. .IP \(bu 2
  216416. 4f96cc1f54 Return full pending computer name (\fI\%#33483\fP)
  216417. .IP \(bu 2
  216418. a89be5e9d4 Use six.string_types in jobs runner (\fI\%#33499\fP)
  216419. .IP \(bu 2
  216420. 2e24a04565 Merge pull request \fI\%#33491\fP from BlaineAtAffirm/2015.8
  216421. .INDENT 2.0
  216422. .IP \(bu 2
  216423. 7599b18995 fix jobs.list_jobs failing with search_target
  216424. .UNINDENT
  216425. .IP \(bu 2
  216426. 1861af427e Merge pull request \fI\%#33478\fP from rallytime/bp\-32484
  216427. .INDENT 2.0
  216428. .IP \(bu 2
  216429. 042f17efa4 Only unsub if we have a jid
  216430. .UNINDENT
  216431. .IP \(bu 2
  216432. b8154b678e Merge pull request \fI\%#33457\fP from rallytime/doc\-formatting
  216433. .INDENT 2.0
  216434. .IP \(bu 2
  216435. 82f8f3efff Make doc formatting consistent and use correct versionadded
  216436. .UNINDENT
  216437. .IP \(bu 2
  216438. 1dfa95651c Don\(aqt allow a "repo" kwarg for pkgrepo.managed (\fI\%#33477\fP)
  216439. .IP \(bu 2
  216440. b4071b07f1 Allow for config entry to be a list in a dict for beacons (\fI\%#33476\fP)
  216441. .IP \(bu 2
  216442. 9f56ab4c45 Merge pull request \fI\%#33469\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  216443. .INDENT 2.0
  216444. .IP \(bu 2
  216445. a65071a6d1 simpler rpm.checksum function
  216446. .IP \(bu 2
  216447. 80fe303e38 Renamed check_sig to checksum and some refactoring
  216448. .IP \(bu 2
  216449. d56e3f4258 bugfix: showing errors when a package download fails using zypper pkg.download
  216450. .IP \(bu 2
  216451. 8a21b9149e check the signature of downloaded RPM files
  216452. .UNINDENT
  216453. .IP \(bu 2
  216454. 00f9090928 Add docs about PyYAML\(aqs 1024 character limitations for simple keys (\fI\%#33459\fP)
  216455. .IP \(bu 2
  216456. 3b12f396b4 Prevent several minion processes on the same machine (\fI\%#33464\fP)
  216457. .IP \(bu 2
  216458. c8b4f338d8 Make \-\-gpg\-auto\-import\-keys a global param when calling zypper (\fI\%#33432\fP)
  216459. .IP \(bu 2
  216460. 0c4e38ced4 Fix the saltutil.wheel function and add integration tests (\fI\%#33414\fP)
  216461. .UNINDENT
  216462. .IP \(bu 2
  216463. \fBPR\fP \fI\%#33505\fP: (\fI\%twangboy\fP) Fix build script where pip didn\(aqt work
  216464. @ \fI2016\-05\-25 18:15:27 UTC\fP
  216465. .INDENT 2.0
  216466. .IP \(bu 2
  216467. a43ffadcb7 Merge pull request \fI\%#33505\fP from twangboy/fix_build_script
  216468. .IP \(bu 2
  216469. 7d78e5d612 Fix build script where pip wouldn\(aqt work
  216470. .UNINDENT
  216471. .IP \(bu 2
  216472. \fBPR\fP \fI\%#33076\fP: (\fI\%cachedout\fP) Avoid second grains load on windows multiprocessing (refs: \fI\%#33656\fP)
  216473. @ \fI2016\-05\-25 17:10:06 UTC\fP
  216474. .INDENT 2.0
  216475. .IP \(bu 2
  216476. 4cf40da7d7 Merge pull request \fI\%#33076\fP from cachedout/win_grains
  216477. .IP \(bu 2
  216478. dab9825c88 Fix indentation error
  216479. .IP \(bu 2
  216480. b14e2cce9e Avoid second grains load on windows multiprocessing
  216481. .UNINDENT
  216482. .UNINDENT
  216483. .SS Salt 2016.3.2 Release Notes
  216484. .sp
  216485. Version 2016.3.2 is a bugfix release for 2016.3.0\&.
  216486. .SS Statistics
  216487. .INDENT 0.0
  216488. .IP \(bu 2
  216489. Total Merges: \fB200\fP
  216490. .IP \(bu 2
  216491. Total Issue References: \fB66\fP
  216492. .IP \(bu 2
  216493. Total PR References: \fB177\fP
  216494. .IP \(bu 2
  216495. 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)
  216496. .UNINDENT
  216497. .SS Returner Changes
  216498. .INDENT 0.0
  216499. .IP \(bu 2
  216500. Any returner which implements a \fBsave_load\fP function is now required to
  216501. accept a \fBminions\fP keyword argument. All returners which ship with Salt
  216502. have been modified to do so.
  216503. .UNINDENT
  216504. .SS Changelog for v2016.3.1..v2016.3.2
  216505. .sp
  216506. \fIGenerated at: 2018\-05\-27 04:37:58 UTC\fP
  216507. .INDENT 0.0
  216508. .IP \(bu 2
  216509. \fBPR\fP \fI\%#34988\fP: (\fI\%rallytime\fP) Update release notes with new changes
  216510. @ \fI2016\-07\-27 15:54:16 UTC\fP
  216511. .INDENT 2.0
  216512. .IP \(bu 2
  216513. 721e6dcce8 Merge pull request \fI\%#34988\fP from rallytime/release\-notes\-update
  216514. .IP \(bu 2
  216515. a2aae987a6 Update release notes with new changes
  216516. .UNINDENT
  216517. .IP \(bu 2
  216518. \fBPR\fP \fI\%#34946\fP: (\fI\%anlutro\fP) Fix virtualenv behavior when requirements files are in subdirectories
  216519. @ \fI2016\-07\-27 14:43:27 UTC\fP
  216520. .INDENT 2.0
  216521. .IP \(bu 2
  216522. d63ac1671c Merge pull request \fI\%#34946\fP from alprs/fix\-venv_reqs_subdir
  216523. .IP \(bu 2
  216524. f773d63cbb normalize requirements path to be absolute
  216525. .IP \(bu 2
  216526. bdec73bb03 remove unnecessary os.path.basename logic
  216527. .UNINDENT
  216528. .IP \(bu 2
  216529. \fBPR\fP \fI\%#34957\fP: (\fI\%sjmh\fP) Don\(aqt fall through to checking auth entries
  216530. @ \fI2016\-07\-26 22:16:17 UTC\fP
  216531. .INDENT 2.0
  216532. .IP \(bu 2
  216533. f765faa3aa Merge pull request \fI\%#34957\fP from sjmh/2016.3
  216534. .IP \(bu 2
  216535. 0095dbe530 Don\(aqt fall through to checking auth entries
  216536. .UNINDENT
  216537. .IP \(bu 2
  216538. \fBPR\fP \fI\%#34971\fP: (\fI\%cachedout\fP) Increase timeout for grains test
  216539. @ \fI2016\-07\-26 22:11:29 UTC\fP
  216540. .INDENT 2.0
  216541. .IP \(bu 2
  216542. 2d3b95dec9 Merge pull request \fI\%#34971\fP from cachedout/increase_timeout_grains_test
  216543. .IP \(bu 2
  216544. 82d271b43a Increase timeout for grains test
  216545. .UNINDENT
  216546. .IP \(bu 2
  216547. \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)
  216548. .IP \(bu 2
  216549. \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)
  216550. .IP \(bu 2
  216551. \fBPR\fP \fI\%#34951\fP: (\fI\%vutny\fP) Fix \fI\%#34873\fP
  216552. @ \fI2016\-07\-26 17:07:48 UTC\fP
  216553. .INDENT 2.0
  216554. .IP \(bu 2
  216555. f23e8c525e Merge pull request \fI\%#34951\fP from vutny/fix\-schedule\-dateutil
  216556. .IP \(bu 2
  216557. 0faa490991 Fix job scheduling using \fBwhen\fP parameter (by \fBpython\-dateutil\fP)
  216558. .UNINDENT
  216559. .IP \(bu 2
  216560. \fBPR\fP \fI\%#34935\fP: (\fI\%rallytime\fP) Avoid UnboundLocalError in beacons module
  216561. @ \fI2016\-07\-26 17:01:23 UTC\fP
  216562. .INDENT 2.0
  216563. .IP \(bu 2
  216564. \fBPR\fP \fI\%#34894\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2016.3 to develop (refs: \fI\%#34935\fP)
  216565. .IP \(bu 2
  216566. deb1331601 Merge pull request \fI\%#34935\fP from rallytime/beacons\-mod\-cleanup
  216567. .IP \(bu 2
  216568. 97a36ef367 Avoid UnboundLocalError in beacons module
  216569. .IP \(bu 2
  216570. \fBPR\fP \fI\%#34956\fP: (\fI\%cachedout\fP) Increase all run_script timeouts to 30s
  216571. .UNINDENT
  216572. .IP \(bu 2
  216573. \fBPR\fP \fI\%#34933\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216574. @ \fI2016\-07\-25 22:09:05 UTC\fP
  216575. .INDENT 2.0
  216576. .IP \(bu 2
  216577. 5d194f2d17 Merge pull request \fI\%#34933\fP from rallytime/merge\-2016.3
  216578. .IP \(bu 2
  216579. 8b295fe4ea Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216580. .IP \(bu 2
  216581. ec8fc058d4 Master performance improvement (\fI\%#34916\fP)
  216582. .IP \(bu 2
  216583. 34dc2fd792 Merge pull request \fI\%#34911\fP from cachedout/backport_34906
  216584. .INDENT 2.0
  216585. .IP \(bu 2
  216586. 8becec2f4f Backport \fI\%#34906\fP
  216587. .UNINDENT
  216588. .IP \(bu 2
  216589. 6ccc27f697 Merge pull request \fI\%#34898\fP from hrumph/list_upgrades_refresh
  216590. .INDENT 2.0
  216591. .IP \(bu 2
  216592. acd4b1a23b Fixes \fI\%#33620\fP
  216593. .UNINDENT
  216594. .IP \(bu 2
  216595. 5c13ee0e72 Merge pull request \fI\%#34606\fP from isbm/isbm\-config\-reading\-exit\-2015.8
  216596. .INDENT 2.0
  216597. .IP \(bu 2
  216598. 5f5b802c0c Add option to master config reader on ignoring system exit for wrong configuration
  216599. .IP \(bu 2
  216600. 6fc677f177 Ignore minion config errors everywhere but the minion itself
  216601. .IP \(bu 2
  216602. 8699194647 Remove deprecation: BaseException.message deprecated as of 2.6
  216603. .IP \(bu 2
  216604. 0e65cfec91 Fix lint: E8302
  216605. .IP \(bu 2
  216606. 67faa56bf1 Use Salt default exit codes instead of hard\-coded values
  216607. .IP \(bu 2
  216608. a84556e596 Exit immediately on configuration error
  216609. .IP \(bu 2
  216610. 43d965907c Raise an exception on any found wrong configuration file
  216611. .IP \(bu 2
  216612. 30ed728d05 Cover exception handling in the utils.parsers
  216613. .IP \(bu 2
  216614. 5e8c0c6bdb Introduce configuration error exception
  216615. .UNINDENT
  216616. .UNINDENT
  216617. .IP \(bu 2
  216618. \fBISSUE\fP \fI\%#34760\fP: (\fI\%nate\-byrnes\fP) XenServer 7 needs correct provider setup for services. (refs: \fI\%#34915\fP)
  216619. .INDENT 2.0
  216620. .IP \(bu 2
  216621. \fBPR\fP \fI\%#34915\fP: (\fI\%abednarik\fP) Update service_rh provider to exclude XenServer >= 7.
  216622. .UNINDENT
  216623. .IP \(bu 2
  216624. \fBPR\fP \fI\%#34926\fP: (\fI\%rallytime\fP) Lint \fI\%#34923\fP
  216625. @ \fI2016\-07\-25 14:53:42 UTC\fP
  216626. .INDENT 2.0
  216627. .IP \(bu 2
  216628. \fBPR\fP \fI\%#34923\fP: (\fI\%eliasp\fP) Handle exception when no Slack API key was provided (refs: \fI\%#34926\fP)
  216629. .IP \(bu 2
  216630. a7e7ec6d25 Merge pull request \fI\%#34926\fP from rallytime/lint\-34923
  216631. .IP \(bu 2
  216632. b3514abf1b Lint fixes for \fI\%#34923\fP
  216633. .IP \(bu 2
  216634. 69afcc4060 Handle exception when no Slack API key was provided
  216635. .UNINDENT
  216636. .IP \(bu 2
  216637. \fBISSUE\fP \fI\%saltstack/salt#34908\fP: (\fI\%Ch3LL\fP) Cannot start proxy minion due to keyerror in grains (refs: \fI\%#34910\fP)
  216638. .IP \(bu 2
  216639. \fBPR\fP \fI\%#34910\fP: (\fI\%cachedout\fP) Fix grains error on proxy minions
  216640. @ \fI2016\-07\-22 23:05:46 UTC\fP
  216641. .INDENT 2.0
  216642. .IP \(bu 2
  216643. c663c8bb5b Merge pull request \fI\%#34910\fP from cachedout/proxy_grains
  216644. .IP \(bu 2
  216645. 0970ebace8 Fix grains error on proxy minions
  216646. .IP \(bu 2
  216647. \fBPR\fP \fI\%#34864\fP: (\fI\%jmacfar\fP) Check for version in list of installed versions
  216648. .UNINDENT
  216649. .IP \(bu 2
  216650. \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)
  216651. .INDENT 2.0
  216652. .IP \(bu 2
  216653. \fBPR\fP \fI\%saltstack/salt#34878\fP: (\fI\%abednarik\fP) Add VirtuozzoLinux is yumpkg enable list. (refs: \fI\%#34902\fP)
  216654. .IP \(bu 2
  216655. \fBPR\fP \fI\%#34902\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34878\fP to 2016.3
  216656. .IP \(bu 2
  216657. \fBPR\fP \fI\%#34878\fP: (\fI\%abednarik\fP) Add VirtuozzoLinux is yumpkg enable list. (refs: \fI\%#34902\fP)
  216658. .UNINDENT
  216659. .IP \(bu 2
  216660. \fBISSUE\fP \fI\%saltstack/salt#34893\fP: (\fI\%msdogado\fP) rpm VirtuozzoLinux not working (refs: \fI\%#34901\fP)
  216661. .IP \(bu 2
  216662. \fBPR\fP \fI\%#34901\fP: (\fI\%rallytime\fP) Add VirtuozzoLinux to the list of enabled distros for rpm.py
  216663. @ \fI2016\-07\-22 22:23:48 UTC\fP
  216664. .INDENT 2.0
  216665. .IP \(bu 2
  216666. ad640cc046 Merge pull request \fI\%#34901\fP from rallytime/fix\-34893
  216667. .IP \(bu 2
  216668. 45e2ce10a4 Add VirtuozzoLinux to the list of enabled distros for rpm.py
  216669. .UNINDENT
  216670. .IP \(bu 2
  216671. \fBISSUE\fP \fI\%saltstack/salt#34890\fP: (\fI\%msdogado\fP) VirtuozzoLinux enabling services not working (refs: \fI\%#34900\fP)
  216672. .IP \(bu 2
  216673. \fBPR\fP \fI\%#34900\fP: (\fI\%rallytime\fP) Add VirtuozzoLinux to enabled platforms list in rh_service.py
  216674. @ \fI2016\-07\-22 22:21:20 UTC\fP
  216675. .INDENT 2.0
  216676. .IP \(bu 2
  216677. 5aa532f98b Merge pull request \fI\%#34900\fP from rallytime/fix\-34890
  216678. .IP \(bu 2
  216679. 12824487cc Add VirtuozzoLinux to enabled platforms list in rh_service.py
  216680. .UNINDENT
  216681. .IP \(bu 2
  216682. \fBPR\fP \fI\%#34887\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216683. @ \fI2016\-07\-22 18:04:47 UTC\fP
  216684. .INDENT 2.0
  216685. .IP \(bu 2
  216686. ebebfa647f Merge pull request \fI\%#34887\fP from rallytime/merge\-2016.3
  216687. .IP \(bu 2
  216688. 109b368d19 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216689. .INDENT 2.0
  216690. .IP \(bu 2
  216691. fb223e1bd4 Invalidate the target cache very quickly (\fI\%#34862\fP)
  216692. .IP \(bu 2
  216693. 1ca1367289 Fail git.latest states with uncommitted changes when force_reset=False (\fI\%#34869\fP)
  216694. .IP \(bu 2
  216695. 4f4381e5b9 Merge pull request \fI\%#34859\fP from cachedout/fix_wheel_test
  216696. .INDENT 2.0
  216697. .IP \(bu 2
  216698. b4be66dedf Fix wheel test
  216699. .UNINDENT
  216700. .UNINDENT
  216701. .UNINDENT
  216702. .IP \(bu 2
  216703. \fBPR\fP \fI\%#34632\fP: (\fI\%eliasp\fP) Try to create the log directory when not present yet
  216704. @ \fI2016\-07\-22 17:34:31 UTC\fP
  216705. .INDENT 2.0
  216706. .IP \(bu 2
  216707. eba34f7f4c Merge pull request \fI\%#34632\fP from eliasp/2016.3\-create\-logdir\-when\-needed
  216708. .IP \(bu 2
  216709. 9c89470661 Try to create the log directory when not present yet
  216710. .UNINDENT
  216711. .IP \(bu 2
  216712. \fBPR\fP \fI\%#34854\fP: (\fI\%rallytime\fP) Remove string_types import from state compiler
  216713. @ \fI2016\-07\-22 17:20:15 UTC\fP
  216714. .INDENT 2.0
  216715. .IP \(bu 2
  216716. 965f517889 Merge pull request \fI\%#34854\fP from rallytime/cleanup\-state\-imports
  216717. .IP \(bu 2
  216718. 73d3075ce9 Remove string_types import from state compiler
  216719. .UNINDENT
  216720. .IP \(bu 2
  216721. \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)
  216722. .IP \(bu 2
  216723. \fBPR\fP \fI\%#34865\fP: (\fI\%thatch45\fP) This needs discussion, since this breaks SUSE
  216724. @ \fI2016\-07\-22 17:19:34 UTC\fP
  216725. .INDENT 2.0
  216726. .IP \(bu 2
  216727. 584d7606d4 Merge pull request \fI\%#34865\fP from thatch45/break_suse
  216728. .IP \(bu 2
  216729. 6c5f363921 This needs discussion, since this breaks SUSE
  216730. .UNINDENT
  216731. .IP \(bu 2
  216732. \fBPR\fP \fI\%#34858\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216733. @ \fI2016\-07\-21 21:01:17 UTC\fP
  216734. .INDENT 2.0
  216735. .IP \(bu 2
  216736. aaede31f66 Merge pull request \fI\%#34858\fP from rallytime/merge\-2016.3
  216737. .IP \(bu 2
  216738. 9227c3dd26 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216739. .IP \(bu 2
  216740. acc9e31c02 Merge pull request \fI\%#34822\fP from thatch45/ssh_fixes
  216741. .INDENT 2.0
  216742. .IP \(bu 2
  216743. b5de492143 fix \fI\%#34798\fP
  216744. .IP \(bu 2
  216745. 5ad6bd7307 fix \fI\%#34796\fP
  216746. .UNINDENT
  216747. .IP \(bu 2
  216748. 5d91139bc9 Merge pull request \fI\%#34847\fP from cachedout/pwall
  216749. .INDENT 2.0
  216750. .IP \(bu 2
  216751. 2c8298dc6e Profile logging
  216752. .IP \(bu 2
  216753. 3affafa2e9 Add an option to skip the verification of client_acl users
  216754. .UNINDENT
  216755. .IP \(bu 2
  216756. 07d1d36653 Merge pull request \fI\%#34827\fP from thatch45/34691
  216757. .INDENT 2.0
  216758. .IP \(bu 2
  216759. 1ccf35eca4 fix beacon list to include all beacons being processed
  216760. .UNINDENT
  216761. .IP \(bu 2
  216762. b375720251 Merge pull request \fI\%#34833\fP from rallytime/bp\-28521
  216763. .INDENT 2.0
  216764. .IP \(bu 2
  216765. e50a6783ce SPM: packaging doesn\(aqt work in Python 2.6. Fixed.
  216766. .UNINDENT
  216767. .IP \(bu 2
  216768. 042646582f Merge pull request \fI\%#34823\fP from rallytime/bp\-25276
  216769. .INDENT 2.0
  216770. .IP \(bu 2
  216771. a028796eff copy spm.1 man page during setup Refs \fI\%#25213\fP
  216772. .UNINDENT
  216773. .IP \(bu 2
  216774. 6c35d88268 Fix \fI\%#34648\fP (\fI\%#34828\fP)
  216775. .UNINDENT
  216776. .IP \(bu 2
  216777. \fBPR\fP \fI\%#34852\fP: (\fI\%rallytime\fP) Skip GCE unit tests \- causes test suite to hang
  216778. @ \fI2016\-07\-21 17:52:31 UTC\fP
  216779. .INDENT 2.0
  216780. .IP \(bu 2
  216781. b3d8143d36 Merge pull request \fI\%#34852\fP from rallytime/skip\-gce\-tests
  216782. .IP \(bu 2
  216783. 15b4f5a8b3 Skip GCE unit tests \- causes test suite to hang
  216784. .IP \(bu 2
  216785. \fBPR\fP \fI\%#34850\fP: (\fI\%rallytime\fP) Update 2016.3.2 release notes
  216786. .UNINDENT
  216787. .IP \(bu 2
  216788. \fBISSUE\fP \fI\%#34215\fP: (\fI\%rvora\fP) salt\-master crashes every few days (refs: \fI\%#34683\fP)
  216789. .IP \(bu 2
  216790. \fBPR\fP \fI\%#34844\fP: (\fI\%vutny\fP) Fix getting total available memory without \fIpsutil\fP installed
  216791. @ \fI2016\-07\-21 17:12:38 UTC\fP
  216792. .INDENT 2.0
  216793. .IP \(bu 2
  216794. \fBPR\fP \fI\%#34683\fP: (\fI\%cachedout\fP) Fix publisher leak (refs: \fI\%#34844\fP)
  216795. .IP \(bu 2
  216796. 650674d14a Merge pull request \fI\%#34844\fP from vutny/fix\-grains\-load\-in\-config\-init
  216797. .IP \(bu 2
  216798. 4dc7827020 Fix comment in master config, prevents the service from starting
  216799. .IP \(bu 2
  216800. b4cfebb107 Fix Salt failure after merge of \fI\%#34683\fP
  216801. .IP \(bu 2
  216802. \fBPR\fP \fI\%#34848\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.2
  216803. .UNINDENT
  216804. .IP \(bu 2
  216805. \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)
  216806. .IP \(bu 2
  216807. \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)
  216808. .IP \(bu 2
  216809. \fBPR\fP \fI\%#34837\fP: (\fI\%thatch45\fP) Fix \fI\%#34345\fP
  216810. @ \fI2016\-07\-21 14:36:15 UTC\fP
  216811. .INDENT 2.0
  216812. .IP \(bu 2
  216813. 52a95b2ea3 Merge pull request \fI\%#34837\fP from thatch45/34345
  216814. .IP \(bu 2
  216815. 1e8c585cd3 Fix \fI\%#34345\fP
  216816. .UNINDENT
  216817. .IP \(bu 2
  216818. \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)
  216819. .IP \(bu 2
  216820. \fBPR\fP \fI\%#34838\fP: (\fI\%thatch45\fP) Check if a valid value is passed to unlyif/unless
  216821. @ \fI2016\-07\-21 14:34:29 UTC\fP
  216822. .INDENT 2.0
  216823. .IP \(bu 2
  216824. 96450ac74d Merge pull request \fI\%#34838\fP from thatch45/unless_valid
  216825. .IP \(bu 2
  216826. 1f34299a84 Check if a valid value is passed to unlyif/unless
  216827. .UNINDENT
  216828. .IP \(bu 2
  216829. \fBISSUE\fP \fI\%saltstack/salt#32525\fP: (\fI\%anlutro\fP) state.show_low_sls not working in salt\-ssh (refs: \fI\%#34840\fP)
  216830. .IP \(bu 2
  216831. \fBPR\fP \fI\%#34840\fP: (\fI\%thatch45\fP) update the state wrapper to include show_low_sls
  216832. @ \fI2016\-07\-21 14:34:02 UTC\fP
  216833. .INDENT 2.0
  216834. .IP \(bu 2
  216835. 3a5ef86d58 Merge pull request \fI\%#34840\fP from thatch45/state_update_ssh
  216836. .IP \(bu 2
  216837. 77dce3920c update the state wrapper to include show_low_sls
  216838. .UNINDENT
  216839. .IP \(bu 2
  216840. \fBISSUE\fP \fI\%#34762\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev (refs: \fI\%#34791\fP, \fI\%#34770\fP)
  216841. .IP \(bu 2
  216842. \fBPR\fP \fI\%#34842\fP: (\fI\%sjorge\fP) 2016.3 zpool cleanup and fixes
  216843. @ \fI2016\-07\-21 14:32:56 UTC\fP
  216844. .INDENT 2.0
  216845. .IP \(bu 2
  216846. \fBPR\fP \fI\%#34770\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev \fI\%#34762\fP (refs: \fI\%#34842\fP)
  216847. .IP \(bu 2
  216848. 5f67318fd7 Merge pull request \fI\%#34842\fP from sjorge/2016.3\-zpool\-simplifaction
  216849. .IP \(bu 2
  216850. a7ff9524b0 drop parsing of vdevs, error passthrough from zpool cli
  216851. .IP \(bu 2
  216852. 25d6c8139b eliminate hardcoded vdev type from zpool state
  216853. .IP \(bu 2
  216854. 47b8dc946c salt.states.zpool \- work with updates exec module
  216855. .IP \(bu 2
  216856. a5a98845c7 salt.module.zpool \- fix bug with properties on/off being parsed as true/false
  216857. .IP \(bu 2
  216858. dd64494a19 salt.modules.zpool \- drop vdev types to make it more future proof, fallback to zpool cli error messages
  216859. .IP \(bu 2
  216860. \fBPR\fP \fI\%#34825\fP: (\fI\%thatch45\fP) keep this beacon from stack tracing at the loader
  216861. .UNINDENT
  216862. .IP \(bu 2
  216863. \fBPR\fP \fI\%#34824\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216864. @ \fI2016\-07\-20 20:54:35 UTC\fP
  216865. .INDENT 2.0
  216866. .IP \(bu 2
  216867. b9db0b0036 Merge pull request \fI\%#34824\fP from rallytime/merge\-2016.3
  216868. .IP \(bu 2
  216869. 094731f4b6 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216870. .IP \(bu 2
  216871. 98fa4a404e Merge pull request \fI\%#34818\fP from jtand/mysql_state_integration_test_cleanup
  216872. .INDENT 2.0
  216873. .IP \(bu 2
  216874. 9abb6f91bb Skip mysql state test if mysqladmin is not available
  216875. .UNINDENT
  216876. .IP \(bu 2
  216877. 6636f2b449 Merge pull request \fI\%#34803\fP from junovitch/issue_24744
  216878. .INDENT 2.0
  216879. .IP \(bu 2
  216880. 64c850410f salt/state.py: set \(aqchunk[\(aqorder\(aq] = 0\(aq with \(aqorder: first\(aq; fixes \fI\%#24744\fP
  216881. .UNINDENT
  216882. .UNINDENT
  216883. .IP \(bu 2
  216884. \fBPR\fP \fI\%#34670\fP: (\fI\%isbm\fP) Add "osmajorrelease" grain (2016.3)
  216885. @ \fI2016\-07\-20 14:39:38 UTC\fP
  216886. .INDENT 2.0
  216887. .IP \(bu 2
  216888. 62ef8fdb35 Merge pull request \fI\%#34670\fP from isbm/isbm\-osmajorrelease\-grain\-suse
  216889. .IP \(bu 2
  216890. a6bcbd615f Lintfix PEP8: E262
  216891. .IP \(bu 2
  216892. 110a422d5a Keep osmajorrelease as a string type for 2016.3 release
  216893. .IP \(bu 2
  216894. 208fd33b48 Add unit test for osmajorrelease grain
  216895. .IP \(bu 2
  216896. 9a6b2175c6 Implement "osmajorrelease" by killing spaghetti
  216897. .UNINDENT
  216898. .IP \(bu 2
  216899. \fBISSUE\fP \fI\%#34215\fP: (\fI\%rvora\fP) salt\-master crashes every few days (refs: \fI\%#34683\fP)
  216900. .IP \(bu 2
  216901. \fBPR\fP \fI\%#34683\fP: (\fI\%cachedout\fP) Fix publisher leak (refs: \fI\%#34844\fP)
  216902. @ \fI2016\-07\-20 13:57:10 UTC\fP
  216903. .INDENT 2.0
  216904. .IP \(bu 2
  216905. 6ca9ffa7c7 Merge pull request \fI\%#34683\fP from cachedout/issue_34215
  216906. .IP \(bu 2
  216907. ccd53e9214 Lint
  216908. .IP \(bu 2
  216909. 76eb46fb08 Document master setting
  216910. .IP \(bu 2
  216911. 0dfe3aaf31 Set up dynamic config
  216912. .IP \(bu 2
  216913. 3cfb82cdd4 Fix silly error
  216914. .IP \(bu 2
  216915. 35a845fff5 Only set IPC with write buffer if set
  216916. .IP \(bu 2
  216917. b2d636017d Add IPC to minion opts
  216918. .IP \(bu 2
  216919. 2c1c92c48e Lint
  216920. .IP \(bu 2
  216921. c4395ae84e Dial down default buffer and apply to just write buffer
  216922. .IP \(bu 2
  216923. 3e3e2a997e Typo
  216924. .IP \(bu 2
  216925. 78f6251c09 Correct issues with config
  216926. .IP \(bu 2
  216927. c138cc03e3 Configuration settings for IPC buffers
  216928. .UNINDENT
  216929. .IP \(bu 2
  216930. \fBISSUE\fP \fI\%#34762\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev (refs: \fI\%#34791\fP, \fI\%#34770\fP)
  216931. .IP \(bu 2
  216932. \fBPR\fP \fI\%#34791\fP: (\fI\%sjorge\fP) salt.state.zpool tweaks
  216933. @ \fI2016\-07\-19 20:56:47 UTC\fP
  216934. .INDENT 2.0
  216935. .IP \(bu 2
  216936. 49ab3fd2b5 Merge pull request \fI\%#34791\fP from sjorge/zpool\-state\-tweaks
  216937. .IP \(bu 2
  216938. 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
  216939. .UNINDENT
  216940. .IP \(bu 2
  216941. \fBPR\fP \fI\%#34784\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216942. @ \fI2016\-07\-19 16:30:18 UTC\fP
  216943. .INDENT 2.0
  216944. .IP \(bu 2
  216945. 1617a7058a Merge pull request \fI\%#34784\fP from rallytime/merge\-2016.3
  216946. .IP \(bu 2
  216947. 3e032dc397 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216948. .IP \(bu 2
  216949. 58021035a9 Merge pull request \fI\%#34773\fP from randomed/mysql\-returner\-startup/2015.8
  216950. .INDENT 2.0
  216951. .IP \(bu 2
  216952. 0cd55eb7d7 Add jid=req handling for mysql returner. It should also store the return jid into the jid list table.
  216953. .UNINDENT
  216954. .IP \(bu 2
  216955. 10a1af9949 Remove unnedeed config test (\fI\%#34751\fP)
  216956. .IP \(bu 2
  216957. f19caac8e4 Merge pull request \fI\%#34754\fP from cachedout/disable_mid_test
  216958. .INDENT 2.0
  216959. .IP \(bu 2
  216960. 46901c6e65 Disable test
  216961. .UNINDENT
  216962. .IP \(bu 2
  216963. 81f29006f2 Merge pull request \fI\%#34741\fP from rallytime/bp\-34726
  216964. .INDENT 2.0
  216965. .IP \(bu 2
  216966. d949110993 Loop over updated keys in non recursive update
  216967. .UNINDENT
  216968. .UNINDENT
  216969. .IP \(bu 2
  216970. \fBISSUE\fP \fI\%saltstack/salt#34630\fP: (\fI\%bdrung\fP) Spelling errors (refs: \fI\%#34756\fP, \fI\%#34722\fP)
  216971. .IP \(bu 2
  216972. \fBISSUE\fP \fI\%saltstack/salt#33923\fP: (\fI\%pavankumar2203\fP) Salt module certutil install doesnt work (refs: \fI\%#34756\fP)
  216973. .INDENT 2.0
  216974. .IP \(bu 2
  216975. \fBPR\fP \fI\%#34756\fP: (\fI\%jacobhammons\fP) Rebuild man pages
  216976. .UNINDENT
  216977. .IP \(bu 2
  216978. \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)
  216979. .IP \(bu 2
  216980. \fBPR\fP \fI\%#34746\fP: (\fI\%rallytime\fP) Update azure lib dep to match the one in cloud.clouds.msazure
  216981. @ \fI2016\-07\-18 18:54:40 UTC\fP
  216982. .INDENT 2.0
  216983. .IP \(bu 2
  216984. 2a9738f00d Merge pull request \fI\%#34746\fP from rallytime/azure\-version
  216985. .IP \(bu 2
  216986. ead3eb1606 Update azure lib dep to match the one in cloud.clouds.msazure
  216987. .UNINDENT
  216988. .IP \(bu 2
  216989. \fBPR\fP \fI\%#34744\fP: (\fI\%justinta\fP) Test valid docs fix
  216990. @ \fI2016\-07\-18 18:22:47 UTC\fP
  216991. .INDENT 2.0
  216992. .IP \(bu 2
  216993. c0e2657c8e Merge pull request \fI\%#34744\fP from jtand/test_valid_docs_fix
  216994. .IP \(bu 2
  216995. 4fe33a7695 add directives example to ldap3.modify
  216996. .IP \(bu 2
  216997. 6fa40a0d46 Add cli examples for ldap3 module
  216998. .IP \(bu 2
  216999. b94e0dd95a ipset.long_range doesn\(aqt need a docstring
  217000. .UNINDENT
  217001. .IP \(bu 2
  217002. \fBPR\fP \fI\%#34740\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217003. @ \fI2016\-07\-18 16:28:56 UTC\fP
  217004. .INDENT 2.0
  217005. .IP \(bu 2
  217006. d4adf98b85 Merge pull request \fI\%#34740\fP from rallytime/merge\-2016.3
  217007. .IP \(bu 2
  217008. 7d106c78f0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217009. .INDENT 2.0
  217010. .IP \(bu 2
  217011. e9e5bbe38b Merge pull request \fI\%#34721\fP from rallytime/fix\-34703
  217012. .INDENT 2.0
  217013. .IP \(bu 2
  217014. 9c803d05a5 Add output_file option to master config docs
  217015. .UNINDENT
  217016. .UNINDENT
  217017. .UNINDENT
  217018. .IP \(bu 2
  217019. \fBPR\fP \fI\%#34607\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport)
  217020. @ \fI2016\-07\-18 15:15:21 UTC\fP
  217021. .INDENT 2.0
  217022. .IP \(bu 2
  217023. efc7599f85 Merge pull request \fI\%#34607\fP from isbm/isbm\-config\-reading\-exit\-2016.3
  217024. .IP \(bu 2
  217025. fb7542f920 Add option to master config reader on ignoring system exit for wrong configuration
  217026. .IP \(bu 2
  217027. abd10b5782 Ignore minion config errors everywhere but the minion itself
  217028. .IP \(bu 2
  217029. e5f43e6711 Remove deprecation: BaseException.message deprecated as of 2.6
  217030. .IP \(bu 2
  217031. 23d1031a09 Fix lint: E8302
  217032. .IP \(bu 2
  217033. 6b660678fa Use Salt default exit codes instead of hard\-coded values
  217034. .IP \(bu 2
  217035. 0c2d3511c9 Exit immediately on configuration error
  217036. .IP \(bu 2
  217037. c5de6c8c4a Raise an exception on any found wrong configuration file
  217038. .IP \(bu 2
  217039. 575767022b Cover exception handling in the utils.parsers
  217040. .IP \(bu 2
  217041. 2cf696671f Introduce configuration error exception
  217042. .IP \(bu 2
  217043. \fBPR\fP \fI\%saltstack/salt#34607\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34739\fP)
  217044. .UNINDENT
  217045. .IP \(bu 2
  217046. \fBPR\fP \fI\%#34739\fP: (\fI\%cachedout\fP) Remove unnedeed config test
  217047. @ \fI2016\-07\-18 15:15:15 UTC\fP
  217048. .INDENT 2.0
  217049. .IP \(bu 2
  217050. d0e0c0186b Merge pull request \fI\%#34739\fP from cachedout/remove_config_test
  217051. .IP \(bu 2
  217052. 4625ee65b8 Remove unnedeed config test
  217053. .UNINDENT
  217054. .IP \(bu 2
  217055. \fBISSUE\fP \fI\%saltstack/salt#34630\fP: (\fI\%bdrung\fP) Spelling errors (refs: \fI\%#34756\fP, \fI\%#34722\fP)
  217056. .IP \(bu 2
  217057. \fBPR\fP \fI\%#34722\fP: (\fI\%rallytime\fP) Various spelling fixes
  217058. @ \fI2016\-07\-16 19:49:54 UTC\fP
  217059. .INDENT 2.0
  217060. .IP \(bu 2
  217061. abf5b976ed Merge pull request \fI\%#34722\fP from rallytime/fix\-34630
  217062. .IP \(bu 2
  217063. cca9446c37 Various spelling fixes
  217064. .UNINDENT
  217065. .IP \(bu 2
  217066. \fBPR\fP \fI\%#34714\fP: (\fI\%sjmh\fP) Fix ldap auth for function matches
  217067. @ \fI2016\-07\-16 19:49:12 UTC\fP
  217068. .INDENT 2.0
  217069. .IP \(bu 2
  217070. 922cc5a8a7 Merge pull request \fI\%#34714\fP from sjmh/fix/ldap_auth
  217071. .IP \(bu 2
  217072. d4144039bc Fix ldap auth for function matches
  217073. .UNINDENT
  217074. .IP \(bu 2
  217075. \fBPR\fP \fI\%#34720\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217076. @ \fI2016\-07\-16 19:22:28 UTC\fP
  217077. .INDENT 2.0
  217078. .IP \(bu 2
  217079. 40626d786a Merge pull request \fI\%#34720\fP from rallytime/merge\-2016.3
  217080. .IP \(bu 2
  217081. c2130d5a04 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217082. .IP \(bu 2
  217083. 08d00f3a61 Merge pull request \fI\%#34689\fP from Azidburn/fix_pkg_sources
  217084. .INDENT 2.0
  217085. .IP \(bu 2
  217086. 2c0fc919b3 fix second run problems with pkg.installed using sources
  217087. .UNINDENT
  217088. .IP \(bu 2
  217089. 4cb1ded520 Merge pull request \fI\%#34695\fP from isbm/isbm\-zypper\-product\-boolean\-values
  217090. .INDENT 2.0
  217091. .IP \(bu 2
  217092. 5ed5142fbc Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  217093. .IP \(bu 2
  217094. 21444ee240 Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  217095. .UNINDENT
  217096. .IP \(bu 2
  217097. aaa6f7d80a update 2015.8.11 release notes (\fI\%#34682\fP)
  217098. .UNINDENT
  217099. .IP \(bu 2
  217100. \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)
  217101. .INDENT 2.0
  217102. .IP \(bu 2
  217103. \fBPR\fP \fI\%#34707\fP: (\fI\%rallytime\fP) Add versionadded to "special" option in cron.present state
  217104. .UNINDENT
  217105. .IP \(bu 2
  217106. \fBPR\fP \fI\%#34696\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.list_products\fP returns False on some empty values (2016.3)
  217107. @ \fI2016\-07\-15 21:18:21 UTC\fP
  217108. .INDENT 2.0
  217109. .IP \(bu 2
  217110. 51fce770a5 Merge pull request \fI\%#34696\fP from isbm/isbm\-zypper\-product\-boolean\-values\-2016.3
  217111. .IP \(bu 2
  217112. 96021e257c Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  217113. .IP \(bu 2
  217114. 337eee33ac Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  217115. .UNINDENT
  217116. .IP \(bu 2
  217117. \fBPR\fP \fI\%#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags
  217118. @ \fI2016\-07\-15 20:50:35 UTC\fP
  217119. .INDENT 2.0
  217120. .IP \(bu 2
  217121. 45045f6900 Merge pull request \fI\%#34702\fP from farcaller/fixtags
  217122. .IP \(bu 2
  217123. 032e35a28e Fixed dockerng.list_tags
  217124. .UNINDENT
  217125. .IP \(bu 2
  217126. \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_)
  217127. .INDENT 2.0
  217128. .IP \(bu 2
  217129. \fBPR\fP \fI\%saltstack/salt#34549\fP: (\fI\%Inveracity\fP) fixes multiple values in mof configuration (refs: \fI\%#34681\fP)
  217130. .IP \(bu 2
  217131. \fBPR\fP \fI\%#34681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34549\fP to 2016.3
  217132. .IP \(bu 2
  217133. \fBPR\fP \fI\%#34549\fP: (\fI\%Inveracity\fP) fixes multiple values in mof configuration (refs: \fI\%#34681\fP)
  217134. .UNINDENT
  217135. .IP \(bu 2
  217136. \fBPR\fP \fI\%#34679\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217137. @ \fI2016\-07\-14 20:59:45 UTC\fP
  217138. .INDENT 2.0
  217139. .IP \(bu 2
  217140. d57507dde8 Merge pull request \fI\%#34679\fP from rallytime/merge\-2016.3
  217141. .IP \(bu 2
  217142. 0c566dce89 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217143. .IP \(bu 2
  217144. 3192e1674b Merge pull request \fI\%#34676\fP from cachedout/partial_revert_34644
  217145. .INDENT 2.0
  217146. .IP \(bu 2
  217147. 64a154826a Revert "Modify lodaer global test to use populated dunders"
  217148. .UNINDENT
  217149. .IP \(bu 2
  217150. 3b6f1089b2 Merge pull request \fI\%#34601\fP from lorengordon/clarify\-doc
  217151. .INDENT 2.0
  217152. .IP \(bu 2
  217153. bfe0dd0b8a Clarifies the proper way to reference states
  217154. .UNINDENT
  217155. .IP \(bu 2
  217156. bc63f25a6f Lint 34644 (\fI\%#34651\fP)
  217157. .IP \(bu 2
  217158. 50360263c5 Adjust the mine test a little bit to give it a better chance of success (\fI\%#34647\fP)
  217159. .IP \(bu 2
  217160. 8a0209101e Merge pull request \fI\%#34642\fP from jtand/mysql_integration_cleanup
  217161. .INDENT 2.0
  217162. .IP \(bu 2
  217163. dd1559a599 Check that mysqladmin exists before running mysql integration tests.
  217164. .UNINDENT
  217165. .IP \(bu 2
  217166. 3e612c3794 Merge pull request \fI\%#34618\fP from jtand/network_integration_fix
  217167. .INDENT 2.0
  217168. .IP \(bu 2
  217169. 34bcf9ccfc Changed network state test to use test=True
  217170. .IP \(bu 2
  217171. b2616833b0 Some small changes
  217172. .IP \(bu 2
  217173. ed59113e94 Change network state integration test to use test=True
  217174. .UNINDENT
  217175. .UNINDENT
  217176. .IP \(bu 2
  217177. \fBISSUE\fP \fI\%saltstack/salt#33452\fP: (\fI\%Ch3LL\fP) Digital Ocean does not return anything on deletion (refs: \fI\%#34605\fP)
  217178. .IP \(bu 2
  217179. \fBPR\fP \fI\%#34605\fP: (\fI\%gtmanfred\fP) catch error if no dns domains exist
  217180. @ \fI2016\-07\-14 15:20:46 UTC\fP
  217181. .INDENT 2.0
  217182. .IP \(bu 2
  217183. b88c39e1d2 Merge pull request \fI\%#34605\fP from gtmanfred/2016.3
  217184. .IP \(bu 2
  217185. 37b0943539 catch error if no dns domains exist
  217186. .UNINDENT
  217187. .IP \(bu 2
  217188. \fBPR\fP \fI\%#34557\fP: (\fI\%jacobweinstock\fP) handle jboss cli expression type in the parsing of output
  217189. @ \fI2016\-07\-14 15:09:49 UTC\fP
  217190. .INDENT 2.0
  217191. .IP \(bu 2
  217192. b3dc6031fe Merge pull request \fI\%#34557\fP from jacobweinstock/jboss7_cli\-handle\-expression\-type
  217193. .IP \(bu 2
  217194. 1945153399 handle jboss cli expression type in the parsing of the output
  217195. .IP \(bu 2
  217196. \fBPR\fP \fI\%#34652\fP: (\fI\%rallytime\fP) Spelling fixes found in sqlite3 pillar docs
  217197. .UNINDENT
  217198. .IP \(bu 2
  217199. \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)
  217200. .IP \(bu 2
  217201. \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)
  217202. .INDENT 2.0
  217203. .IP \(bu 2
  217204. \fBPR\fP \fI\%#34565\fP: (\fI\%Ch3LL\fP) add num_cpus grain to freebsd
  217205. .IP \(bu 2
  217206. \fBPR\fP \fI\%#34621\fP: (\fI\%justinta\fP) Suse Leap doesn\(aqt have \(aqman\(aq
  217207. .UNINDENT
  217208. .IP \(bu 2
  217209. \fBPR\fP \fI\%#34619\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217210. @ \fI2016\-07\-12 21:52:01 UTC\fP
  217211. .INDENT 2.0
  217212. .IP \(bu 2
  217213. 61f5045a0d Merge pull request \fI\%#34619\fP from rallytime/merge\-2016.3
  217214. .IP \(bu 2
  217215. f734afd0b0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217216. .IP \(bu 2
  217217. 9f123543e5 Merge pull request \fI\%#34617\fP from rallytime/merge\-2015.8
  217218. .INDENT 2.0
  217219. .IP \(bu 2
  217220. 3026df346f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217221. .IP \(bu 2
  217222. 57df38e685 Update github IP for ssh state integration tests (\fI\%#34592\fP)
  217223. .IP \(bu 2
  217224. 2e1007254b Avoid circular imports when calling salt.utils functions (\fI\%#34584\fP)
  217225. .UNINDENT
  217226. .IP \(bu 2
  217227. b90ae407f9 Add support for edge case when Cmd and Entrypoint can\(aqt be blanked (\fI\%#34593\fP)
  217228. .IP \(bu 2
  217229. 12b579c4e3 When sorting list actual_data, make it a list (\fI\%#34590\fP)
  217230. .IP \(bu 2
  217231. 7dd8035c62 Gate docker unit test to check for docker (\fI\%#34591\fP)
  217232. .IP \(bu 2
  217233. ae38c874da Add a bunch of documentation on getting files from other environments (\fI\%#34560\fP)
  217234. .IP \(bu 2
  217235. 91e0656d44 Merge pull request \fI\%#34531\fP from terminalmage/issue34397
  217236. .INDENT 2.0
  217237. .IP \(bu 2
  217238. d0fec1b8f6 salt/modules/zypper.py: accept ignore_epoch argument
  217239. .IP \(bu 2
  217240. 5ae9463c1f salt/modules/yumpkg.py: accept ignore_epoch argument
  217241. .IP \(bu 2
  217242. c2791117af salt/modules/rpm.py: accept ignore_epoch argument
  217243. .IP \(bu 2
  217244. c5de8b880d salt/modules/ebuild.py: accept ignore_epoch argument
  217245. .IP \(bu 2
  217246. 4ee8e8f037 salt/modules/aptpkg.py: accept ignore_epoch argument
  217247. .IP \(bu 2
  217248. 5b123b403c Pass ignore_epoch to salt.utils.compare_versions()
  217249. .IP \(bu 2
  217250. 07368fac40 Accept ignore_epoch argument for salt.utils.compare_versions()
  217251. .UNINDENT
  217252. .IP \(bu 2
  217253. e99befad47 Merge pull request \fI\%#34545\fP from terminalmage/docker\-exec\-driver
  217254. .INDENT 2.0
  217255. .IP \(bu 2
  217256. dd5838e242 Handle cases where Docker Remote API returns an empty ExecutionDriver
  217257. .UNINDENT
  217258. .IP \(bu 2
  217259. \fBPR\fP \fI\%#34585\fP: (\fI\%rallytime\fP) [2016.3] Avoid salt.utils circular imports when using "from"
  217260. .UNINDENT
  217261. .IP \(bu 2
  217262. \fBPR\fP \fI\%#34616\fP: (\fI\%jacobhammons\fP) Adds a mock required for the network settings beacon
  217263. @ \fI2016\-07\-12 19:09:30 UTC\fP
  217264. .INDENT 2.0
  217265. .IP \(bu 2
  217266. c8bdfb272d Merge pull request \fI\%#34616\fP from jacobhammons/network\-settings\-mock
  217267. .IP \(bu 2
  217268. 5e2ddb5eb0 Adds a mock required for the network settings beacon
  217269. .UNINDENT
  217270. .IP \(bu 2
  217271. \fBPR\fP \fI\%#34553\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217272. @ \fI2016\-07\-11 19:36:26 UTC\fP
  217273. .INDENT 2.0
  217274. .IP \(bu 2
  217275. d8c8b4ac6f Merge pull request \fI\%#34553\fP from rallytime/merge\-2016.3
  217276. .IP \(bu 2
  217277. 815c8b38d5 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217278. .INDENT 2.0
  217279. .IP \(bu 2
  217280. 7120d43df0 Merge pull request \fI\%#34546\fP from rallytime/rename\-boto\-secgroup\-test
  217281. .INDENT 2.0
  217282. .IP \(bu 2
  217283. f8a3622be7 Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  217284. .UNINDENT
  217285. .IP \(bu 2
  217286. ca92061821 Merge pull request \fI\%#34537\fP from rallytime/rename\-simple\-test
  217287. .INDENT 2.0
  217288. .IP \(bu 2
  217289. ceefb6e34c Rename tests.unit.simple to tests.unit.simple_test
  217290. .UNINDENT
  217291. .IP \(bu 2
  217292. fbab2f8c2b [2015.8] Update bootstrap script to latest stable (\fI\%#34527\fP)
  217293. .IP \(bu 2
  217294. 6b8c76af83 Prevent many errors in the test suite in loader tests (\fI\%#34521\fP)
  217295. .IP \(bu 2
  217296. c2f296c95b Fix wrong order of retention_policy_exists (\fI\%#34507\fP)
  217297. .IP \(bu 2
  217298. 685df80929 Merge pull request \fI\%#34518\fP from terminalmage/fix\-pkg.latest\-test
  217299. .INDENT 2.0
  217300. .IP \(bu 2
  217301. 4aef44ecdf Fix pkg.latest integration test for non\-LTS ubuntu
  217302. .UNINDENT
  217303. .UNINDENT
  217304. .UNINDENT
  217305. .IP \(bu 2
  217306. \fBPR\fP \fI\%#34569\fP: (\fI\%eliasp\fP) Minor doc fixes for PostgreSQL states
  217307. @ \fI2016\-07\-11 14:02:13 UTC\fP
  217308. .INDENT 2.0
  217309. .IP \(bu 2
  217310. 5b002e11b4 Merge pull request \fI\%#34569\fP from eliasp/2016.3\-postgres\-doc
  217311. .IP \(bu 2
  217312. 221da29ef5 Typo (\fIdefaul\fP → \fIdefault\fP)
  217313. .IP \(bu 2
  217314. ba3d7c624b Add code formatting
  217315. .IP \(bu 2
  217316. b3409c97a2 Fix typo (\fIseens\fP → \fIseen\fP)
  217317. .UNINDENT
  217318. .IP \(bu 2
  217319. \fBPR\fP \fI\%#34524\fP: (\fI\%terminalmage\fP) yumpkg: Avoid spurious logging in pkg.upgrade
  217320. @ \fI2016\-07\-07 22:06:01 UTC\fP
  217321. .INDENT 2.0
  217322. .IP \(bu 2
  217323. 7e1abd77ba Merge pull request \fI\%#34524\fP from terminalmage/yumpkg\-upgrade\-logging
  217324. .IP \(bu 2
  217325. 40992f0790 yumpkg: Avoid spurious logging in pkg.upgrade
  217326. .UNINDENT
  217327. .IP \(bu 2
  217328. \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)
  217329. .INDENT 2.0
  217330. .IP \(bu 2
  217331. \fBPR\fP \fI\%#34490\fP: (\fI\%cachedout\fP) Fix master crash on ctl\-c for long\-running job
  217332. .UNINDENT
  217333. .IP \(bu 2
  217334. \fBPR\fP \fI\%#34520\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217335. @ \fI2016\-07\-07 19:22:40 UTC\fP
  217336. .INDENT 2.0
  217337. .IP \(bu 2
  217338. b9e87620f5 Merge pull request \fI\%#34520\fP from rallytime/merge\-2016.3
  217339. .IP \(bu 2
  217340. 27988dde48 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217341. .IP \(bu 2
  217342. a516f116d1 Merge pull request \fI\%#34513\fP from cachedout/lower_loader_log
  217343. .INDENT 2.0
  217344. .IP \(bu 2
  217345. 733c5d00c0 Lower the log level for modules which cannot be loaded to trace
  217346. .UNINDENT
  217347. .IP \(bu 2
  217348. 63f0451041 Merge pull request \fI\%#34498\fP from rallytime/bootstrap\-tutorial\-doc\-fix
  217349. .INDENT 2.0
  217350. .IP \(bu 2
  217351. 23c5739c3b Use \-O in wget develop example in bootstrap tutorial
  217352. .UNINDENT
  217353. .IP \(bu 2
  217354. 3ebba020b6 Rename some unit test files by adding _test (\fI\%#34503\fP)
  217355. .IP \(bu 2
  217356. 8722257b82 Improve top file merging documentation (\fI\%#34505\fP)
  217357. .IP \(bu 2
  217358. 6ce7cb9616 Gracefully handle non\-XML output in GlusterFS execution module. (\fI\%#34492\fP)
  217359. .IP \(bu 2
  217360. 75299456be Use skipTest for network state integration test (\fI\%#34489\fP)
  217361. .IP \(bu 2
  217362. 0f3f87fbc5 Update dnsmasq.get_config docs to use correct config_file param. (\fI\%#34488\fP)
  217363. .UNINDENT
  217364. .IP \(bu 2
  217365. \fBISSUE\fP \fI\%#34224\fP: (\fI\%tehsu\fP) salt\-cloud to rackspace uses public ip instead of private (refs: \fI\%#34499\fP)
  217366. .IP \(bu 2
  217367. \fBPR\fP \fI\%#34499\fP: (\fI\%gtmanfred\fP) remove unnecessary block parsing ip addrs for nova
  217368. @ \fI2016\-07\-07 16:23:46 UTC\fP
  217369. .INDENT 2.0
  217370. .IP \(bu 2
  217371. 58f46eae15 Merge pull request \fI\%#34499\fP from gtmanfred/2016.3
  217372. .IP \(bu 2
  217373. 019671d4c2 remove unnecessary block parsing ip addrs for nova
  217374. .IP \(bu 2
  217375. \fBPR\fP \fI\%#34468\fP: (\fI\%twangboy\fP) Use Python 2.7.12 for Windows Build
  217376. .IP \(bu 2
  217377. \fBPR\fP \fI\%#34493\fP: (\fI\%twangboy\fP) Use Python 2.7.12 for Mac Build
  217378. .UNINDENT
  217379. .IP \(bu 2
  217380. \fBPR\fP \fI\%#34486\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217381. @ \fI2016\-07\-06 17:28:31 UTC\fP
  217382. .INDENT 2.0
  217383. .IP \(bu 2
  217384. 95094c73ff Merge pull request \fI\%#34486\fP from rallytime/merge\-2016.3
  217385. .IP \(bu 2
  217386. 2b307b7ea1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217387. .IP \(bu 2
  217388. e2f576e847 Merge pull request \fI\%#34462\fP from terminalmage/git\-describe\-always
  217389. .INDENT 2.0
  217390. .IP \(bu 2
  217391. 6ef7ee198e Restrict use of \-\-always to git 1.5.6 and newer
  217392. .IP \(bu 2
  217393. c554b22fc8 modules/git: added \-\-always parameter for git.describe().
  217394. .UNINDENT
  217395. .IP \(bu 2
  217396. 85f1f18239 Merge pull request \fI\%#34467\fP from rallytime/bp\-34457
  217397. .INDENT 2.0
  217398. .IP \(bu 2
  217399. 746883741f Only access key metadata if we found key metadata
  217400. .UNINDENT
  217401. .IP \(bu 2
  217402. 9e15337b74 Merge pull request \fI\%#34432\fP from twangboy/fix_file.append
  217403. .INDENT 2.0
  217404. .IP \(bu 2
  217405. 13f11fddce Remove refactoring code
  217406. .IP \(bu 2
  217407. 78f7c530bb Remove unit tests, integration tests written
  217408. .IP \(bu 2
  217409. b83392edea Remove len() in favor of boolean test
  217410. .IP \(bu 2
  217411. 4373408163 Fix line error
  217412. .IP \(bu 2
  217413. 2479b53e2f Fix erroneous report on newline code
  217414. .IP \(bu 2
  217415. 75b6ed1fd5 Change back to binary read
  217416. .IP \(bu 2
  217417. 65753cff6d Use os.linesep instead of n
  217418. .IP \(bu 2
  217419. a55d63f086 Fix object names
  217420. .IP \(bu 2
  217421. 3e2fe12e5e Add new line if missing
  217422. .IP \(bu 2
  217423. 0b7821c8db Fix file.append state
  217424. .UNINDENT
  217425. .IP \(bu 2
  217426. 91e095bb41 Merge pull request \fI\%#34429\fP from terminalmage/pkg\-latest\-versioncheck
  217427. .INDENT 2.0
  217428. .IP \(bu 2
  217429. 667f31a72a Skip version checking for targeted packages in pkg.latest state
  217430. .UNINDENT
  217431. .IP \(bu 2
  217432. 0a264597ca Forgot reference to inotify (\fI\%#34455\fP)
  217433. .UNINDENT
  217434. .IP \(bu 2
  217435. \fBISSUE\fP \fI\%#33915\fP: (\fI\%mattglv\fP) Orchestration runner output on Success vs Failures in 2016.3.0 (refs: \fI\%#34459\fP)
  217436. .IP \(bu 2
  217437. \fBPR\fP \fI\%#34459\fP: (\fI\%terminalmage\fP) Ignore retcode when formatting highstate output
  217438. @ \fI2016\-07\-06 03:59:23 UTC\fP
  217439. .INDENT 2.0
  217440. .IP \(bu 2
  217441. 7867d49193 Merge pull request \fI\%#34459\fP from terminalmage/issue33915
  217442. .IP \(bu 2
  217443. 82a70e015f Ignore retcode when formatting highstate output
  217444. .UNINDENT
  217445. .IP \(bu 2
  217446. \fBISSUE\fP \fI\%#34371\fP: (\fI\%erikgrinaker\fP) git.detached does not work with commit ID as ref (refs: \fI\%#34463\fP)
  217447. .IP \(bu 2
  217448. \fBPR\fP \fI\%#34463\fP: (\fI\%terminalmage\fP) states/git: pass required cwd parameter to git.describe.
  217449. @ \fI2016\-07\-06 03:59:05 UTC\fP
  217450. .INDENT 2.0
  217451. .IP \(bu 2
  217452. ae6902290a Merge pull request \fI\%#34463\fP from terminalmage/issue34371
  217453. .IP \(bu 2
  217454. f981a5646a states/git: pass required cwd parameter to git.describe.
  217455. .UNINDENT
  217456. .IP \(bu 2
  217457. \fBISSUE\fP \fI\%#34395\fP: (\fI\%artxki\fP) Nonfunctioning default_password in states.postgres_user.present (refs: \fI\%#34436\fP)
  217458. .IP \(bu 2
  217459. \fBPR\fP \fI\%#34466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34436\fP to 2016.3
  217460. @ \fI2016\-07\-06 03:57:15 UTC\fP
  217461. .INDENT 2.0
  217462. .IP \(bu 2
  217463. \fBPR\fP \fI\%#34436\fP: (\fI\%artxki\fP) Fix \fI\%#34395\fP Nonfunctional default_password in states.postgres_user.present (refs: \fI\%#34466\fP)
  217464. .IP \(bu 2
  217465. 8f8a6d2f68 Merge pull request \fI\%#34466\fP from rallytime/bp\-34436
  217466. .IP \(bu 2
  217467. e97c00b018 Fix \fI\%#34395\fP Nonfunctional default_password in states.postgres_user.present
  217468. .IP \(bu 2
  217469. \fBPR\fP \fI\%#34453\fP: (\fI\%justinta\fP) Arch linux does not have osrelease or osmajorrelease grains
  217470. .UNINDENT
  217471. .IP \(bu 2
  217472. \fBISSUE\fP \fI\%#33697\fP: (\fI\%asloboda\-cisco\fP) Client clash with Tornado IOLoop (refs: \fI\%#34456\fP)
  217473. .IP \(bu 2
  217474. \fBPR\fP \fI\%#34456\fP: (\fI\%thatch45\fP) Be more careful when making the SMinion
  217475. @ \fI2016\-07\-05 18:41:57 UTC\fP
  217476. .INDENT 2.0
  217477. .IP \(bu 2
  217478. fc67a4e216 Merge pull request \fI\%#34456\fP from thatch45/2016.3
  217479. .IP \(bu 2
  217480. edd6b95c60 we need to be more careful when making the SMinion
  217481. .UNINDENT
  217482. .IP \(bu 2
  217483. \fBPR\fP \fI\%#34452\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217484. @ \fI2016\-07\-05 17:49:19 UTC\fP
  217485. .INDENT 2.0
  217486. .IP \(bu 2
  217487. 72b4d6b52c Merge pull request \fI\%#34452\fP from rallytime/merge\-2016.3
  217488. .IP \(bu 2
  217489. 91120dba01 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217490. .IP \(bu 2
  217491. 7bb0868c66 Merge pull request \fI\%#34451\fP from rallytime/merge\-2015.8
  217492. .INDENT 2.0
  217493. .IP \(bu 2
  217494. 55a91e22be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217495. .IP \(bu 2
  217496. 8c72ee56e4 Merge pull request \fI\%#34435\fP from cachedout/backport_config_dir_integration
  217497. .INDENT 2.0
  217498. .IP \(bu 2
  217499. 0e2c71a537 Backport change to integraiton test suite
  217500. .UNINDENT
  217501. .UNINDENT
  217502. .IP \(bu 2
  217503. e65d1ae374 Merge pull request \fI\%#34401\fP from terminalmage/rpm\-version_cmp
  217504. .INDENT 2.0
  217505. .IP \(bu 2
  217506. 7cefd4182d Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  217507. .UNINDENT
  217508. .IP \(bu 2
  217509. 5ddf417432 Merge pull request \fI\%#34366\fP from steverweber/fix_servicerestart
  217510. .INDENT 2.0
  217511. .IP \(bu 2
  217512. 7847c39024 Update service.py
  217513. .UNINDENT
  217514. .IP \(bu 2
  217515. 485454febb Merge pull request \fI\%#34426\fP from cro/inotify\-linux\-only
  217516. .INDENT 2.0
  217517. .IP \(bu 2
  217518. 54a02f25ba Document that inotify is Linux only
  217519. .UNINDENT
  217520. .UNINDENT
  217521. .IP \(bu 2
  217522. \fBPR\fP \fI\%#34427\fP: (\fI\%twangboy\fP) Automated signing fixes for Ubuntu 16.04, 14.04, 12.04 (for dmurphy)
  217523. @ \fI2016\-07\-05 15:18:46 UTC\fP
  217524. .INDENT 2.0
  217525. .IP \(bu 2
  217526. 7508d291d2 Merge pull request \fI\%#34427\fP from twangboy/sign_fx
  217527. .IP \(bu 2
  217528. c804480982 Add changes suggested by @cachedout
  217529. .IP \(bu 2
  217530. 494deda074 Automated signing fixes for Ubuntu 16.04, 14.04, 12.04
  217531. .UNINDENT
  217532. .IP \(bu 2
  217533. \fBISSUE\fP \fI\%#34379\fP: (\fI\%UtahDave\fP) variable referenced before assignment (refs: \fI\%#34400\fP)
  217534. .IP \(bu 2
  217535. \fBPR\fP \fI\%#34400\fP: (\fI\%cachedout\fP) Fix uninitialized value
  217536. @ \fI2016\-07\-01 17:42:55 UTC\fP
  217537. .INDENT 2.0
  217538. .IP \(bu 2
  217539. b3875f397d Merge pull request \fI\%#34400\fP from cachedout/issue_34379
  217540. .IP \(bu 2
  217541. b413f05a4f Fix uninitialized value
  217542. .UNINDENT
  217543. .IP \(bu 2
  217544. \fBPR\fP \fI\%#34404\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217545. @ \fI2016\-07\-01 15:02:09 UTC\fP
  217546. .INDENT 2.0
  217547. .IP \(bu 2
  217548. d1cd36ab2b Merge pull request \fI\%#34404\fP from rallytime/merge\-2016.3
  217549. .IP \(bu 2
  217550. 8398de0baf Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217551. .IP \(bu 2
  217552. fe18bbb527 Merge pull request \fI\%#34392\fP from cro/salt\-cloud\-doc\-clarify
  217553. .INDENT 2.0
  217554. .IP \(bu 2
  217555. 6cce575d40 Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  217556. .UNINDENT
  217557. .IP \(bu 2
  217558. 45b8fb10d7 Merge pull request \fI\%#34373\fP from jtand/network_state_integration_test
  217559. .INDENT 2.0
  217560. .IP \(bu 2
  217561. 1d24053e36 network.system sls file
  217562. .IP \(bu 2
  217563. 4a9e6af542 network.routes sls file
  217564. .IP \(bu 2
  217565. 76c90b2ef6 network.managed sls file
  217566. .IP \(bu 2
  217567. 84a36369fa Added network state integration test
  217568. .UNINDENT
  217569. .IP \(bu 2
  217570. d6af1de0b7 Optimize pkg integration tests and add a couple new tests (\fI\%#34377\fP)
  217571. .UNINDENT
  217572. .IP \(bu 2
  217573. \fBPR\fP \fI\%#34292\fP: (\fI\%twangboy\fP) Fix runas function for System Account
  217574. @ \fI2016\-06\-30 18:25:09 UTC\fP
  217575. .INDENT 2.0
  217576. .IP \(bu 2
  217577. ad63b1d3d3 Merge pull request \fI\%#34292\fP from twangboy/fix_runas
  217578. .IP \(bu 2
  217579. 433f300eba Enable all privileges
  217580. .IP \(bu 2
  217581. 5584cc2c6f Handle users that aren\(aqt admin
  217582. .IP \(bu 2
  217583. e9d2402c0b Fix runas function for System Account
  217584. .UNINDENT
  217585. .IP \(bu 2
  217586. \fBPR\fP \fI\%#34388\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34378\fP to 2016.3
  217587. @ \fI2016\-06\-30 17:50:48 UTC\fP
  217588. .INDENT 2.0
  217589. .IP \(bu 2
  217590. \fBPR\fP \fI\%#34378\fP: (\fI\%adelcast\fP) network_settings.py: fix documentation (refs: \fI\%#34388\fP)
  217591. .IP \(bu 2
  217592. be9a831ef6 Merge pull request \fI\%#34388\fP from rallytime/bp\-34378
  217593. .IP \(bu 2
  217594. 2040dbeca5 network_settings.py: fix documentation
  217595. .IP \(bu 2
  217596. \fBPR\fP \fI\%#34352\fP: (\fI\%cro\fP) Esxi dvs
  217597. .IP \(bu 2
  217598. \fBPR\fP \fI\%#34386\fP: (\fI\%rallytime\fP) Beacon network docs
  217599. .UNINDENT
  217600. .IP \(bu 2
  217601. \fBPR\fP \fI\%#34376\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217602. @ \fI2016\-06\-30 14:31:28 UTC\fP
  217603. .INDENT 2.0
  217604. .IP \(bu 2
  217605. 5a44b077a0 Merge pull request \fI\%#34376\fP from rallytime/merge\-2016.3
  217606. .IP \(bu 2
  217607. 3149da1bcc Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217608. .IP \(bu 2
  217609. af8ef1e461 Merge pull request \fI\%#34368\fP from rallytime/merge\-2015.8
  217610. .INDENT 2.0
  217611. .IP \(bu 2
  217612. 3bce0cb510 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217613. .IP \(bu 2
  217614. 970aaa46d4 Merge pull request \fI\%#34252\fP from gtmanfred/2015.5
  217615. .INDENT 2.0
  217616. .IP \(bu 2
  217617. 82183f1572 return list of nodes for lxc driver when called directly
  217618. .UNINDENT
  217619. .UNINDENT
  217620. .IP \(bu 2
  217621. 94e094652c Back\-port \fI\%#34324\fP to 2015.8 (\fI\%#34344\fP)
  217622. .IP \(bu 2
  217623. 11dc0203b0 Making salt\-ssh pass proper return codes for jinja rendering errors (\fI\%#34342\fP)
  217624. .UNINDENT
  217625. .IP \(bu 2
  217626. \fBPR\fP \fI\%#34365\fP: (\fI\%sjorge\fP) fixes computenode_* grains on SmartOS compute nodes
  217627. @ \fI2016\-06\-29 17:55:24 UTC\fP
  217628. .INDENT 2.0
  217629. .IP \(bu 2
  217630. 3808d849fe Merge pull request \fI\%#34365\fP from sjorge/2016.3\-fix\-broken\-smartos\-grains
  217631. .IP \(bu 2
  217632. 3ff895cacf fixes computenode_* grains on SmartOS compute nodes
  217633. .UNINDENT
  217634. .IP \(bu 2
  217635. \fBPR\fP \fI\%#34353\fP: (\fI\%cro\fP) Remove proxy check and additional GetConnection\-\-this makes the proxy…
  217636. @ \fI2016\-06\-29 14:54:47 UTC\fP
  217637. .INDENT 2.0
  217638. .IP \(bu 2
  217639. 65efb55917 Merge pull request \fI\%#34353\fP from cro/pyvmomi\-ssl\-fail
  217640. .IP \(bu 2
  217641. 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.
  217642. .UNINDENT
  217643. .IP \(bu 2
  217644. \fBPR\fP \fI\%#34348\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217645. @ \fI2016\-06\-28 23:28:45 UTC\fP
  217646. .INDENT 2.0
  217647. .IP \(bu 2
  217648. c89d1ad27f Merge pull request \fI\%#34348\fP from rallytime/merge\-2016.3
  217649. .IP \(bu 2
  217650. c87a108a12 Don\(aqt forget the pylint disables for range
  217651. .IP \(bu 2
  217652. 359e8ca2ce Pylint fixes
  217653. .IP \(bu 2
  217654. f9ab8ba46d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217655. .INDENT 2.0
  217656. .IP \(bu 2
  217657. f6bd1ad47e Revert py3modernize lint changes (\fI\%#34339\fP)
  217658. .IP \(bu 2
  217659. 046bdaa9f2 Merge pull request \fI\%#34306\fP from ghedo/iptables_flush_table
  217660. .INDENT 2.0
  217661. .IP \(bu 2
  217662. 882c6c9c86 Do not force \(aqfilter\(aq table when flushing
  217663. .UNINDENT
  217664. .IP \(bu 2
  217665. 0c60feac02 Doc clarifications to file modules, addition of new \fIprofile\fP log level to docs, fixed example in dnsmasq (\fI\%#34323\fP)
  217666. .IP \(bu 2
  217667. b793426c23 Remove unnecessarily\-disabled sanity check (\fI\%#34325\fP)
  217668. .IP \(bu 2
  217669. c5890a0eca Merge pull request \fI\%#34335\fP from rallytime/merge\-2015.8
  217670. .INDENT 2.0
  217671. .IP \(bu 2
  217672. 2296587536 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217673. .IP \(bu 2
  217674. 6cce545d92 Merge pull request \fI\%#34313\fP from rallytime/bootstrap\-2015.5
  217675. .INDENT 2.0
  217676. .IP \(bu 2
  217677. c7db73be92 [2015.5] Update to latest bootstrap script v2016.06.27
  217678. .UNINDENT
  217679. .UNINDENT
  217680. .IP \(bu 2
  217681. a6d3cc637b Typo in dockerio doc (\fI\%#34319\fP)
  217682. .IP \(bu 2
  217683. dd4c937009 Merge pull request \fI\%#34312\fP from rallytime/bootstrap\-2015.8
  217684. .INDENT 2.0
  217685. .IP \(bu 2
  217686. 944a393f89 [2015.8] Update to latest bootstrap script v2016.06.27
  217687. .UNINDENT
  217688. .IP \(bu 2
  217689. 91703d2dc4 Merge pull request \fI\%#34307\fP from rallytime/fix\-test\-example
  217690. .INDENT 2.0
  217691. .IP \(bu 2
  217692. f44a0543fe Fix test example in integration testing docs
  217693. .UNINDENT
  217694. .UNINDENT
  217695. .UNINDENT
  217696. .IP \(bu 2
  217697. \fBISSUE\fP \fI\%#34255\fP: (\fI\%tmehlinger\fP) fire_event requisite does not work in orchestration states (refs: \fI\%#34256\fP, \fI\%#34343\fP)
  217698. .INDENT 2.0
  217699. .IP \(bu 2
  217700. \fBPR\fP \fI\%#34343\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34256\fP to 2016.3
  217701. .IP \(bu 2
  217702. \fBPR\fP \fI\%#34256\fP: (\fI\%tmehlinger\fP) detect running from master in State.event method (refs: \fI\%#34343\fP)
  217703. .UNINDENT
  217704. .IP \(bu 2
  217705. \fBPR\fP \fI\%#34338\fP: (\fI\%themalkolm\fP) Add listen/listen_in support to stateconf.py
  217706. @ \fI2016\-06\-28 21:50:14 UTC\fP
  217707. .INDENT 2.0
  217708. .IP \(bu 2
  217709. 0b9cb602fe Merge pull request \fI\%#34338\fP from themalkolm/patch\-2
  217710. .IP \(bu 2
  217711. cd63541325 Add listen/listen_in support to stateconf.py
  217712. .UNINDENT
  217713. .IP \(bu 2
  217714. \fBPR\fP \fI\%#34283\fP: (\fI\%sjorge\fP) 2016.3 mount vfstab support
  217715. @ \fI2016\-06\-28 19:23:39 UTC\fP
  217716. .INDENT 2.0
  217717. .IP \(bu 2
  217718. 80a659bb51 Merge pull request \fI\%#34283\fP from sjorge/2016.3\-mount\-fstab
  217719. .IP \(bu 2
  217720. b8c6948cd5 fixes broken rm_fstab test due to missing __grain__.kernel
  217721. .IP \(bu 2
  217722. d633e774ea actually do the cleanup, oops
  217723. .IP \(bu 2
  217724. 987c240850 minor cleanup
  217725. .IP \(bu 2
  217726. c3667203bf add test for vfstab
  217727. .IP \(bu 2
  217728. 80e9d1d278 set __grains__ for fstab unit test
  217729. .IP \(bu 2
  217730. f0f5d449c3 mount.vfstab implemented on Solaris like platforms
  217731. .IP \(bu 2
  217732. 4398e8841b undo some changes to mount.fstab and mount.rm_fstab, create mount.vfstab and mount.rm_vfstab
  217733. .IP \(bu 2
  217734. 133d3bb2bb mount.set_fstab errors out on Solaris like platforms
  217735. .IP \(bu 2
  217736. c0863fb024 mount.rm_fstab works with Solaris like platforms
  217737. .IP \(bu 2
  217738. 151799ea74 initial vfstab support (Solaris like platforms)
  217739. .UNINDENT
  217740. .IP \(bu 2
  217741. \fBISSUE\fP \fI\%#34321\fP: (\fI\%Ch3LL\fP) Raspberry Pi salt\-minion missing osmajorrelease grain (refs: \fI\%#34322\fP)
  217742. .IP \(bu 2
  217743. \fBPR\fP \fI\%#34322\fP: (\fI\%Ch3LL\fP) add osmajorrelease grain for raspbian
  217744. @ \fI2016\-06\-28 19:08:39 UTC\fP
  217745. .INDENT 2.0
  217746. .IP \(bu 2
  217747. 75aad073a9 Merge pull request \fI\%#34322\fP from Ch3LL/add_grains_majorrelease_test
  217748. .IP \(bu 2
  217749. 693cc61aa4 add osmajorrelease to ubuntu and fix pylint
  217750. .IP \(bu 2
  217751. 2fc3e8a54b add osmajorrelease grain for raspbian
  217752. .UNINDENT
  217753. .IP \(bu 2
  217754. \fBPR\fP \fI\%#34337\fP: (\fI\%clinta\fP) Change merge\-if\-exists logic to properly report changes
  217755. @ \fI2016\-06\-28 18:41:56 UTC\fP
  217756. .INDENT 2.0
  217757. .IP \(bu 2
  217758. 81547f413d Merge pull request \fI\%#34337\fP from clinta/serialize\-merge
  217759. .IP \(bu 2
  217760. ebe7def2fb Change merge\-if\-exists logic to properly report changes
  217761. .UNINDENT
  217762. .IP \(bu 2
  217763. \fBPR\fP \fI\%#34300\fP: (\fI\%vutny\fP) Make apache.configfile state handle the Options list correctly
  217764. @ \fI2016\-06\-28 18:34:45 UTC\fP
  217765. .INDENT 2.0
  217766. .IP \(bu 2
  217767. affc65dc79 Merge pull request \fI\%#34300\fP from vutny/fix\-apache\-vhost\-options
  217768. .IP \(bu 2
  217769. 52001afdde Fix apache.configfile state example
  217770. .IP \(bu 2
  217771. 64a9442e38 apache.config: correctly output a list of the Options
  217772. .UNINDENT
  217773. .IP \(bu 2
  217774. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#34333\fP)
  217775. .INDENT 2.0
  217776. .IP \(bu 2
  217777. \fBPR\fP \fI\%#34333\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33734\fP to 2016.3
  217778. .IP \(bu 2
  217779. \fBPR\fP \fI\%#34304\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33734\fP to 2016.3 (refs: \fI\%#34333\fP)
  217780. .IP \(bu 2
  217781. \fBPR\fP \fI\%#33734\fP: (\fI\%glomium\fP) modules/rabbitmq.py version checking had a logical error (refs: \fI\%#34333\fP, \fI\%#34304\fP)
  217782. .UNINDENT
  217783. .IP \(bu 2
  217784. \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)
  217785. .INDENT 2.0
  217786. .IP \(bu 2
  217787. \fBPR\fP \fI\%#34330\fP: (\fI\%clinta\fP) fix \fI\%#34329\fP
  217788. .UNINDENT
  217789. .IP \(bu 2
  217790. \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)
  217791. .INDENT 2.0
  217792. .IP \(bu 2
  217793. \fBPR\fP \fI\%#34318\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32182\fP to 2016.3
  217794. .IP \(bu 2
  217795. \fBPR\fP \fI\%#32182\fP: (\fI\%dongweiming\fP) Fix psutil.cpu_times unpack error (refs: \fI\%#34318\fP)
  217796. .UNINDENT
  217797. .IP \(bu 2
  217798. \fBPR\fP \fI\%#34311\fP: (\fI\%rallytime\fP) [2016.3] Update to latest bootstrap script v2016.06.27
  217799. @ \fI2016\-06\-27 18:59:27 UTC\fP
  217800. .INDENT 2.0
  217801. .IP \(bu 2
  217802. 1398b1c51e Merge pull request \fI\%#34311\fP from rallytime/bootstrap\-2016.3
  217803. .IP \(bu 2
  217804. 75aa7047bc [2016.3] Update to latest bootstrap script v2016.06.27
  217805. .UNINDENT
  217806. .IP \(bu 2
  217807. \fBISSUE\fP \fI\%#34129\fP: (\fI\%onorua\fP) fqdn_ip4 and fqdn_ip6 are empty on 2016.3+ (refs: \fI\%#34284\fP)
  217808. .IP \(bu 2
  217809. \fBPR\fP \fI\%#34284\fP: (\fI\%rallytime\fP) Don\(aqt require \(aqdomain\(aq to be present before checking fqdn_ip* grains
  217810. @ \fI2016\-06\-27 17:06:17 UTC\fP
  217811. .INDENT 2.0
  217812. .IP \(bu 2
  217813. dc8462451d Merge pull request \fI\%#34284\fP from rallytime/fix\-34129
  217814. .IP \(bu 2
  217815. 5f45a8ff73 Don\(aqt require \(aqdomain\(aq to be present before checking fqdn_ip* grains
  217816. .UNINDENT
  217817. .IP \(bu 2
  217818. \fBISSUE\fP \fI\%#30493\fP: (\fI\%sjorge\fP) salt.modules.status mostly broken on solaris like operating systems. (refs: \fI\%#34296\fP)
  217819. .IP \(bu 2
  217820. \fBPR\fP \fI\%#34296\fP: (\fI\%sjorge\fP) 2016.3 status module now works on Solaris like platforms
  217821. @ \fI2016\-06\-27 16:49:41 UTC\fP
  217822. .INDENT 2.0
  217823. .IP \(bu 2
  217824. 259935d6d2 Merge pull request \fI\%#34296\fP from sjorge/2016.3\-module.status
  217825. .IP \(bu 2
  217826. a26340c555 make status.all_status work on Solaris like platforms
  217827. .IP \(bu 2
  217828. 33e24fa697 make status.cpustats work on Solaris like platforms
  217829. .IP \(bu 2
  217830. d214e9c776 correctly cast to int for status.netdevs on Solaris like platforms
  217831. .IP \(bu 2
  217832. b74761b52d make status.cpuinfo support Solaris like platforms and OpenBSD
  217833. .IP \(bu 2
  217834. 2cd76d5ab5 make status.diskstats work on Solaris like platforms
  217835. .IP \(bu 2
  217836. 3211538830 make status.diskusage work on Solaris like platforms
  217837. .IP \(bu 2
  217838. a12b311a62 make status.netdev compatible with Solaris like platforms
  217839. .IP \(bu 2
  217840. 3bc01458aa make status.netstats compatible with Solaris like platforms
  217841. .IP \(bu 2
  217842. 25678901fa avoid KeyError in ping_master
  217843. .IP \(bu 2
  217844. 81d7fc98d8 make status.vmstats work on Solaris like platforms and OpenBSD
  217845. .UNINDENT
  217846. .IP \(bu 2
  217847. \fBPR\fP \fI\%#34281\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217848. @ \fI2016\-06\-24 21:51:43 UTC\fP
  217849. .INDENT 2.0
  217850. .IP \(bu 2
  217851. 376bec0455 Merge pull request \fI\%#34281\fP from rallytime/merge\-2016.3
  217852. .IP \(bu 2
  217853. ae8ad9329c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217854. .IP \(bu 2
  217855. d235b1245b Merge pull request \fI\%#34233\fP from thegoodduke/for_2015.8_ipset
  217856. .INDENT 2.0
  217857. .IP \(bu 2
  217858. 4da5e35bf4 ipset: fix the comment containing blank
  217859. .UNINDENT
  217860. .IP \(bu 2
  217861. 65c5675a3f Merge pull request \fI\%#34257\fP from rallytime/fix\-34037
  217862. .INDENT 2.0
  217863. .IP \(bu 2
  217864. d7a5e9b10e Remove test that doesn\(aqt actually test anything
  217865. .IP \(bu 2
  217866. c4c037d600 Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  217867. .UNINDENT
  217868. .IP \(bu 2
  217869. 203870f147 Merge pull request \fI\%#34274\fP from clinta/2015.8
  217870. .INDENT 2.0
  217871. .IP \(bu 2
  217872. 6572454918 Don\(aqt escape source before calling managed
  217873. .UNINDENT
  217874. .IP \(bu 2
  217875. a59dc85a15 Merge pull request \fI\%#34258\fP from rallytime/merge\-2015.8
  217876. .INDENT 2.0
  217877. .IP \(bu 2
  217878. ea914b67cd Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217879. .IP \(bu 2
  217880. 8d5ed91980 Merge pull request \fI\%#34225\fP from richardscollin/fix\-win\-set\-datetime
  217881. .INDENT 2.0
  217882. .IP \(bu 2
  217883. 6286771ef7 Fix win_system.set_system_date_time
  217884. .UNINDENT
  217885. .IP \(bu 2
  217886. cb1e8bf082 Merge pull request \fI\%#34232\fP from thegoodduke/for_2015.5_ipset
  217887. .INDENT 2.0
  217888. .IP \(bu 2
  217889. 344eb60762 ipset: fix commont containing blank
  217890. .UNINDENT
  217891. .UNINDENT
  217892. .UNINDENT
  217893. .IP \(bu 2
  217894. \fBPR\fP \fI\%#34271\fP: (\fI\%opdude\fP) Fixed symlinks on windows where the slashes don\(aqt match
  217895. @ \fI2016\-06\-24 17:05:25 UTC\fP
  217896. .INDENT 2.0
  217897. .IP \(bu 2
  217898. 805171c949 Merge pull request \fI\%#34271\fP from Unity\-Technologies/hotfix/windows_symlinks
  217899. .IP \(bu 2
  217900. e0a1a55431 Fixed symlinks on windows where the slashes don\(aqt match
  217901. .UNINDENT
  217902. .IP \(bu 2
  217903. \fBISSUE\fP \fI\%#14915\fP: (\fI\%johngrasty\fP) SmartOS/OmniOS \- mount module fails. (refs: \fI\%#34254\fP)
  217904. .INDENT 2.0
  217905. .IP \(bu 2
  217906. \fBPR\fP \fI\%#34254\fP: (\fI\%sjorge\fP) Fix for \fI\%#14915\fP
  217907. .UNINDENT
  217908. .IP \(bu 2
  217909. \fBPR\fP \fI\%#34259\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217910. @ \fI2016\-06\-24 14:27:30 UTC\fP
  217911. .INDENT 2.0
  217912. .IP \(bu 2
  217913. 39579ce5f6 Merge pull request \fI\%#34259\fP from rallytime/merge\-2016.3
  217914. .IP \(bu 2
  217915. eeaf3cc1e7 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217916. .IP \(bu 2
  217917. 92962957c8 Merge pull request \fI\%#34093\fP from terminalmage/issue33873
  217918. .INDENT 2.0
  217919. .IP \(bu 2
  217920. 5edb45d746 win_pkg: refresh pkg database if refresh=True passed to version() or list_pkgs()
  217921. .IP \(bu 2
  217922. 0078adee35 Catch CommandExecutionError in pkg states
  217923. .UNINDENT
  217924. .IP \(bu 2
  217925. cb5399787c Merge pull request \fI\%#34136\fP from meaksh/salt\-suse\-os\-detection\-2015.8
  217926. .INDENT 2.0
  217927. .IP \(bu 2
  217928. 97f1958863 some cleanup and renaming
  217929. .IP \(bu 2
  217930. 72c8e5d78f better way to check for openSUSE Leap
  217931. .IP \(bu 2
  217932. 548971bdc9 Fix for SUSE OS grains in 2015.8
  217933. .UNINDENT
  217934. .UNINDENT
  217935. .IP \(bu 2
  217936. \fBPR\fP \fI\%#34134\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2016.3 (refs: \fI\%#34136\fP)
  217937. @ \fI2016\-06\-23 20:24:51 UTC\fP
  217938. .INDENT 2.0
  217939. .IP \(bu 2
  217940. \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)
  217941. .IP \(bu 2
  217942. 3acda896f2 Merge pull request \fI\%#34134\fP from meaksh/salt\-suse\-os\-detection
  217943. .IP \(bu 2
  217944. 23ce0b431b some cleanup and renaming
  217945. .IP \(bu 2
  217946. 516bbc454d better way to check for openSUSE Leap
  217947. .IP \(bu 2
  217948. 44eda2ad9f Fix for openSUSE Tumbleweed
  217949. .IP \(bu 2
  217950. 0d4a710d86 fixes for fopen mock and some os_release_map for SLES11SP3
  217951. .IP \(bu 2
  217952. d6410a03b8 unit tests for SUSE os grains detection
  217953. .IP \(bu 2
  217954. 47ecb7013b Normalization of osfullname grain for openSUSE
  217955. .IP \(bu 2
  217956. 9c81f434fa one clause to set OS grain from CPE_NAME
  217957. .IP \(bu 2
  217958. d78d57b717 Test fixed: get OS grain from /etc/os\-release if possible
  217959. .IP \(bu 2
  217960. d80e0532ff fix: osarch_mock
  217961. .IP \(bu 2
  217962. db00ec756d osarch mock for unit test
  217963. .IP \(bu 2
  217964. dabc5cab7e lint fix
  217965. .IP \(bu 2
  217966. 9ac514724b testing if SUSE os grain is set from /etc/os\-release
  217967. .IP \(bu 2
  217968. bc671336a7 Getting the \(aqos\(aq grain from CPE_NAME inside /etc/os\-release for SUSE and openSUSE
  217969. .IP \(bu 2
  217970. 64af4d4145 Adding SLES_SAP to OS_FAMILY_MAP
  217971. .UNINDENT
  217972. .IP \(bu 2
  217973. \fBISSUE\fP \fI\%#34137\fP: (\fI\%christoe\fP) Win_task info function broken (refs: \fI\%#34159\fP)
  217974. .IP \(bu 2
  217975. \fBISSUE\fP \fI\%#34135\fP: (\fI\%christoe\fP) Arguments to Windows task creation module are not used (refs: \fI\%#34159\fP)
  217976. .IP \(bu 2
  217977. \fBPR\fP \fI\%#34159\fP: (\fI\%christoe\fP) Fixes to the win_task module
  217978. @ \fI2016\-06\-23 17:54:53 UTC\fP
  217979. .INDENT 2.0
  217980. .IP \(bu 2
  217981. 5f42fd4486 Merge pull request \fI\%#34159\fP from christoe/2016.3
  217982. .IP \(bu 2
  217983. f4143669db Fixes \fI\%#34135\fP, Fixes \fI\%#34137\fP
  217984. .UNINDENT
  217985. .IP \(bu 2
  217986. \fBPR\fP \fI\%#34223\fP: (\fI\%peterdemin\fP) Fixed typo in filtering LDAP\(aqs potential_ous
  217987. @ \fI2016\-06\-23 17:26:31 UTC\fP
  217988. .INDENT 2.0
  217989. .IP \(bu 2
  217990. 0a0267149f Merge pull request \fI\%#34223\fP from peterdemin/bugfix\-eauth\-ldap\-expanding
  217991. .IP \(bu 2
  217992. 8bb03ec109 Fixed typo in filtering LDAP\(aqs potential_ous
  217993. .UNINDENT
  217994. .IP \(bu 2
  217995. \fBPR\fP \fI\%#34239\fP: (\fI\%vutny\fP) file.find module: fix handling of broken symlinks
  217996. @ \fI2016\-06\-23 17:25:17 UTC\fP
  217997. .INDENT 2.0
  217998. .IP \(bu 2
  217999. f74f176bd5 Merge pull request \fI\%#34239\fP from vutny/file\-find\-broken\-symlinks
  218000. .IP \(bu 2
  218001. 7e164c4f86 file.find module: fix handling of broken symlinks
  218002. .UNINDENT
  218003. .IP \(bu 2
  218004. \fBPR\fP \fI\%#34229\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218005. @ \fI2016\-06\-22 22:57:00 UTC\fP
  218006. .INDENT 2.0
  218007. .IP \(bu 2
  218008. 4157f6fd39 Merge pull request \fI\%#34229\fP from rallytime/merge\-2016.3
  218009. .IP \(bu 2
  218010. 940ac86d4e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218011. .IP \(bu 2
  218012. 56c7267631 fix regression from \fI\%#33681\fP which causes pulling a list of s3 objects via s3.query to fail (\fI\%#34208\fP)
  218013. .IP \(bu 2
  218014. 02eb331494 Fix a pair of gitfs bugs (\fI\%#34218\fP)
  218015. .IP \(bu 2
  218016. 6d643cd528 Merge pull request \fI\%#34182\fP from rallytime/fix\-34043
  218017. .INDENT 2.0
  218018. .IP \(bu 2
  218019. b7d49c5052 Handle child PIDs differently depending on the availability of psutils
  218020. .UNINDENT
  218021. .IP \(bu 2
  218022. 5d3ec31564 Clarify pkg.list_repo_pkgs docstring for held packages (\fI\%#34188\fP)
  218023. .IP \(bu 2
  218024. 5bca5c42f1 Change target for dockerng assuming default status to Nitrogen release (\fI\%#34206\fP)
  218025. .UNINDENT
  218026. .IP \(bu 2
  218027. \fBISSUE\fP \fI\%#33879\fP: (\fI\%Ch3LL\fP) saltutil.wheel minions.connected does not return anything with remote minions (refs: \fI\%#34214\fP)
  218028. .IP \(bu 2
  218029. \fBPR\fP \fI\%#34214\fP: (\fI\%rallytime\fP) Update saltutil.wheel docs to specify remote vs local minion behavior
  218030. @ \fI2016\-06\-22 19:22:30 UTC\fP
  218031. .INDENT 2.0
  218032. .IP \(bu 2
  218033. b5ea1495af Merge pull request \fI\%#34214\fP from rallytime/fix\-33879
  218034. .IP \(bu 2
  218035. 1be05f6a87 Update saltutil.wheel docs to specify remote vs local minion behavior
  218036. .UNINDENT
  218037. .IP \(bu 2
  218038. \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)
  218039. .IP \(bu 2
  218040. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP, \fI\%#33682\fP)
  218041. .IP \(bu 2
  218042. \fBPR\fP \fI\%#34209\fP: (\fI\%lomeroe\fP) fix regression in s3.query from \fI\%#33682\fP
  218043. @ \fI2016\-06\-22 18:50:19 UTC\fP
  218044. .INDENT 2.0
  218045. .IP \(bu 2
  218046. \fBPR\fP \fI\%#33682\fP: (\fI\%lomeroe\fP) backport \fI\%#33599\fP to 2016.3 (refs: \fI\%#34209\fP)
  218047. .IP \(bu 2
  218048. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP, \fI\%#33682\fP)
  218049. .IP \(bu 2
  218050. 4205fd605c Merge pull request \fI\%#34209\fP from lomeroe/fix_s3_utils_regression_33682
  218051. .IP \(bu 2
  218052. a2b99703b1 fix regression in s3.query from \fI\%#33682\fP
  218053. .UNINDENT
  218054. .IP \(bu 2
  218055. \fBPR\fP \fI\%#34222\fP: (\fI\%cachedout\fP) Lint 34200
  218056. @ \fI2016\-06\-22 18:48:54 UTC\fP
  218057. .INDENT 2.0
  218058. .IP \(bu 2
  218059. \fBPR\fP \fI\%#34200\fP: (\fI\%secumod\fP) Fix parted module set CLI example (refs: \fI\%#34222\fP)
  218060. .IP \(bu 2
  218061. 05a4785c8c Merge pull request \fI\%#34222\fP from cachedout/lint_34200
  218062. .IP \(bu 2
  218063. eadf80a56f Linted \fI\%#34200\fP
  218064. .IP \(bu 2
  218065. 2cd0433f8d Fix parted module set CLI example
  218066. .UNINDENT
  218067. .IP \(bu 2
  218068. \fBPR\fP \fI\%#34197\fP: (\fI\%eliasp\fP) Make \fImodule.ssh.recv_known_host()\fP more resilient against hosts not returning a key
  218069. @ \fI2016\-06\-22 17:26:02 UTC\fP
  218070. .INDENT 2.0
  218071. .IP \(bu 2
  218072. 0cbdb73fc5 Merge pull request \fI\%#34197\fP from eliasp/2016.3\-salt.modules.ssh.recv_known_host\-empty_results
  218073. .IP \(bu 2
  218074. 82c4b1229e Make \fImodule.ssh.recv_known_host()\fP more resilient against hosts not returning a key
  218075. .UNINDENT
  218076. .IP \(bu 2
  218077. \fBISSUE\fP \fI\%#34199\fP: (\fI\%DarkKnightCZ\fP) cmdmod.exec_all doesn\(aqt work with Windows PowerShell (refs: \fI\%#34201\fP)
  218078. .IP \(bu 2
  218079. \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)
  218080. .IP \(bu 2
  218081. \fBPR\fP \fI\%#34201\fP: (\fI\%DarkKnightCZ\fP) Suffix temp file with .sr1 and add mandatory argument when executing PowerShell script
  218082. @ \fI2016\-06\-22 17:21:24 UTC\fP
  218083. .INDENT 2.0
  218084. .IP \(bu 2
  218085. \fBPR\fP \fI\%#34198\fP: (\fI\%DarkKnightCZ\fP) Don\(aqt use binary mode for cmdmod.exec_code (refs: \fI\%#34201\fP)
  218086. .IP \(bu 2
  218087. 606ae3c886 Merge pull request \fI\%#34201\fP from DarkKnightCZ/cmdmod\-34199
  218088. .IP \(bu 2
  218089. 05748743bc Suffix temp file with .sr1 and add \-File argument when executing PowerShell code via cmdmod.exec_code
  218090. .UNINDENT
  218091. .IP \(bu 2
  218092. \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)
  218093. .IP \(bu 2
  218094. \fBPR\fP \fI\%#34198\fP: (\fI\%DarkKnightCZ\fP) Don\(aqt use binary mode for cmdmod.exec_code (refs: \fI\%#34201\fP)
  218095. @ \fI2016\-06\-22 17:14:06 UTC\fP
  218096. .INDENT 2.0
  218097. .IP \(bu 2
  218098. cb704b780b Merge pull request \fI\%#34198\fP from DarkKnightCZ/cmdmod\-34196
  218099. .IP \(bu 2
  218100. 04553cd3de Don\(aqt use binary mode for cmdmod.exec_code
  218101. .UNINDENT
  218102. .IP \(bu 2
  218103. \fBPR\fP \fI\%#34172\fP: (\fI\%dmurphy18\fP) Support for building with local packages on Debian and Ubuntu
  218104. @ \fI2016\-06\-22 16:36:44 UTC\fP
  218105. .INDENT 2.0
  218106. .IP \(bu 2
  218107. 0578a2f87d Merge pull request \fI\%#34172\fP from dmurphy18/debbuild_deps
  218108. .IP \(bu 2
  218109. f7f8a5d33f Fixed pylint issues
  218110. .IP \(bu 2
  218111. 82fa276141 Support for building with local packages on Debian and Ubuntu
  218112. .IP \(bu 2
  218113. \fBPR\fP \fI\%#34194\fP: (\fI\%vutny\fP) Correct the docstrings formatting in pkgbuild modules and state
  218114. .IP \(bu 2
  218115. \fBPR\fP \fI\%#34056\fP: (\fI\%vutny\fP) Make rpmbuild module work on non\-RPM based GNU/Linux systems (refs: \fI\%#34194\fP)
  218116. .UNINDENT
  218117. .IP \(bu 2
  218118. \fBPR\fP \fI\%#34186\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218119. @ \fI2016\-06\-21 23:26:34 UTC\fP
  218120. .INDENT 2.0
  218121. .IP \(bu 2
  218122. a8429c2595 Merge pull request \fI\%#34186\fP from rallytime/merge\-2016.3
  218123. .IP \(bu 2
  218124. 318c2ed6a1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218125. .IP \(bu 2
  218126. 1c4369d093 Merge pull request \fI\%#34184\fP from rallytime/merge\-2015.8
  218127. .INDENT 2.0
  218128. .IP \(bu 2
  218129. 8e36e90966 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  218130. .IP \(bu 2
  218131. 5411ebb3b4 Merge pull request \fI\%#34141\fP from jtand/boto_vpc_test_fix
  218132. .INDENT 2.0
  218133. .IP \(bu 2
  218134. b7ac6c735a Moved imports to top, out of _get_moto_version function
  218135. .IP \(bu 2
  218136. 02f9ba99ba Updated version check. Moved check into its own function
  218137. .IP \(bu 2
  218138. d445026c56 Updated test to work with new moto version. Changed strings to unicode
  218139. .UNINDENT
  218140. .UNINDENT
  218141. .IP \(bu 2
  218142. c059d6c08c Merge pull request \fI\%#34176\fP from rallytime/bp\-34103
  218143. .INDENT 2.0
  218144. .IP \(bu 2
  218145. 2e5e7ed03c Fix diskusage beacon
  218146. .UNINDENT
  218147. .IP \(bu 2
  218148. 5cbaaed167 Merge pull request \fI\%#34179\fP from terminalmage/issue34114
  218149. .INDENT 2.0
  218150. .IP \(bu 2
  218151. 86d1b8e864 Raise the correct exception when gitfs lockfile is empty
  218152. .UNINDENT
  218153. .IP \(bu 2
  218154. 67deded119 Merge pull request \fI\%#34178\fP from terminalmage/remove\-comment
  218155. .INDENT 2.0
  218156. .IP \(bu 2
  218157. 4965be72b1 Remove unnecesssary comment
  218158. .UNINDENT
  218159. .IP \(bu 2
  218160. 6387d1636e fix salt \-\-summary to count not responding minions correctly (\fI\%#34165\fP)
  218161. .IP \(bu 2
  218162. e5949ea6f1 doc: add missing dot (\fI\%#34175\fP)
  218163. .IP \(bu 2
  218164. 47595d6795 Typo fix (\fI\%#34174\fP)
  218165. .IP \(bu 2
  218166. 3669048654 Merge pull request \fI\%#34077\fP from rallytime/grains\-tests
  218167. .INDENT 2.0
  218168. .IP \(bu 2
  218169. 2199bb8a78 Add integration tests for grains.append
  218170. .IP \(bu 2
  218171. 37cfe70724 Add some grains targeting tests
  218172. .UNINDENT
  218173. .UNINDENT
  218174. .IP \(bu 2
  218175. \fBISSUE\fP \fI\%#34162\fP: (\fI\%ryanwalder\fP) salt\-call default loglevel regression (refs: \fI\%#34173\fP)
  218176. .IP \(bu 2
  218177. \fBPR\fP \fI\%#34173\fP: (\fI\%rallytime\fP) Update docs to match log_level default
  218178. @ \fI2016\-06\-21 17:15:53 UTC\fP
  218179. .INDENT 2.0
  218180. .IP \(bu 2
  218181. 3413c494bd Merge pull request \fI\%#34173\fP from rallytime/fix\-34162
  218182. .IP \(bu 2
  218183. f577681f0b Update docs to match log_level warning default
  218184. .UNINDENT
  218185. .IP \(bu 2
  218186. \fBISSUE\fP \fI\%#34094\fP: (\fI\%avandendorpe\fP) cron.file is broken (refs: \fI\%#34095\fP)
  218187. .IP \(bu 2
  218188. \fBPR\fP \fI\%#34095\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32396\fP to 2016.3
  218189. @ \fI2016\-06\-21 16:12:39 UTC\fP
  218190. .INDENT 2.0
  218191. .IP \(bu 2
  218192. \fBPR\fP \fI\%#32396\fP: (\fI\%eradman\fP) Unbreak cron.file (refs: \fI\%#34095\fP)
  218193. .IP \(bu 2
  218194. c596bf5744 Merge pull request \fI\%#34095\fP from rallytime/bp\-32396
  218195. .IP \(bu 2
  218196. 074b6ab5c2 Correct pylint error
  218197. .IP \(bu 2
  218198. 20ff5c879a Unbreak cron.file
  218199. .UNINDENT
  218200. .IP \(bu 2
  218201. \fBPR\fP \fI\%#34108\fP: (\fI\%l2ol33rt\fP) Make dockerng.absent state honor test=true
  218202. @ \fI2016\-06\-21 15:55:29 UTC\fP
  218203. .INDENT 2.0
  218204. .IP \(bu 2
  218205. b98687875f Merge pull request \fI\%#34108\fP from l2ol33rt/docker_absent_dryrun
  218206. .IP \(bu 2
  218207. 5598cb4a21 Make docker.absent honor test=true
  218208. .UNINDENT
  218209. .IP \(bu 2
  218210. \fBISSUE\fP \fI\%#34012\fP: (\fI\%viq\fP) States mount.* fail on OpenBSD\(aqs tmpfs (refs: \fI\%#34133\fP)
  218211. .IP \(bu 2
  218212. \fBPR\fP \fI\%#34133\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34057\fP to 2016.3
  218213. @ \fI2016\-06\-21 15:53:46 UTC\fP
  218214. .INDENT 2.0
  218215. .IP \(bu 2
  218216. \fBPR\fP \fI\%#34057\fP: (\fI\%ajacoutot\fP) _active_mounts_openbsd: unbreak output for special filesystems (refs: \fI\%#34133\fP)
  218217. .IP \(bu 2
  218218. a75386a669 Merge pull request \fI\%#34133\fP from rallytime/bp\-34057
  218219. .IP \(bu 2
  218220. f7be5e182b _active_mounts_openbsd: unbreak output for special filesystems
  218221. .UNINDENT
  218222. .IP \(bu 2
  218223. \fBPR\fP \fI\%#34156\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218224. @ \fI2016\-06\-21 15:52:59 UTC\fP
  218225. .INDENT 2.0
  218226. .IP \(bu 2
  218227. dd989dac78 Merge pull request \fI\%#34156\fP from rallytime/merge\-2016.3
  218228. .IP \(bu 2
  218229. b061b86946 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218230. .INDENT 2.0
  218231. .IP \(bu 2
  218232. 65fba5b4d7 Merge pull request \fI\%#34142\fP from isbm/isbm\-getid\-loglevel\-shift
  218233. .INDENT 2.0
  218234. .IP \(bu 2
  218235. 236a67b702 Move log message from INFO to DEBUG.
  218236. .UNINDENT
  218237. .IP \(bu 2
  218238. 79a719b719 Update documentation on "refresh" behavior in pkg states (\fI\%#34100\fP)
  218239. .IP \(bu 2
  218240. 6d0d52fa86 modules.pkg int tests: skip refresh_db upon error (\fI\%#34072\fP)
  218241. .UNINDENT
  218242. .UNINDENT
  218243. .IP \(bu 2
  218244. \fBPR\fP \fI\%#34110\fP: (\fI\%garethgreenaway\fP) Fixes to git module & state module related to identity file
  218245. @ \fI2016\-06\-21 15:52:17 UTC\fP
  218246. .INDENT 2.0
  218247. .IP \(bu 2
  218248. b302cb03ef Merge pull request \fI\%#34110\fP from garethgreenaway/git_needs_saltenv_for_identity
  218249. .IP \(bu 2
  218250. 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.
  218251. .UNINDENT
  218252. .IP \(bu 2
  218253. \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)
  218254. .IP \(bu 2
  218255. \fBISSUE\fP \fI\%#31402\fP: (\fI\%vutny\fP) [repo] systemd\-python required package is missing from RHEL7 archive (refs: \fI\%#34138\fP)
  218256. .IP \(bu 2
  218257. \fBPR\fP \fI\%#34138\fP: (\fI\%rallytime\fP) Update package dep note to systemd\-python for RHEL7 install
  218258. @ \fI2016\-06\-21 15:51:24 UTC\fP
  218259. .INDENT 2.0
  218260. .IP \(bu 2
  218261. 6c3405755a Merge pull request \fI\%#34138\fP from rallytime/fix\-34120
  218262. .IP \(bu 2
  218263. 73f3e12ce6 Update package dep note to systemd\-python for RHEL7 install
  218264. .IP \(bu 2
  218265. \fBPR\fP \fI\%#34166\fP: (\fI\%vutny\fP) Fix YAML indentation in Apache state docstrings
  218266. .IP \(bu 2
  218267. \fBPR\fP \fI\%#34098\fP: (\fI\%terminalmage\fP) Restore old refresh logic
  218268. .IP \(bu 2
  218269. \fBPR\fP \fI\%#34087\fP: (\fI\%bbinet\fP) Encourage to report issues to upstream PillarStack project
  218270. .UNINDENT
  218271. .IP \(bu 2
  218272. \fBPR\fP \fI\%#34075\fP: (\fI\%jfindlay\fP) modules.inspectlib.kiwiproc: import gate lxml
  218273. @ \fI2016\-06\-17 15:36:08 UTC\fP
  218274. .INDENT 2.0
  218275. .IP \(bu 2
  218276. 9da592a297 Merge pull request \fI\%#34075\fP from jfindlay/import_xml
  218277. .IP \(bu 2
  218278. f882a72348 modules.inspectlib.kiwiproc: import gate lxml
  218279. .UNINDENT
  218280. .IP \(bu 2
  218281. \fBPR\fP \fI\%#34056\fP: (\fI\%vutny\fP) Make rpmbuild module work on non\-RPM based GNU/Linux systems (refs: \fI\%#34194\fP)
  218282. @ \fI2016\-06\-17 15:14:51 UTC\fP
  218283. .INDENT 2.0
  218284. .IP \(bu 2
  218285. 52b852216a Merge pull request \fI\%#34056\fP from vutny/rpmbuild\-support\-debian
  218286. .IP \(bu 2
  218287. 8ff36d4f2b Expose virtual pkgbuild module as rpmbuild on non\-RPM based systems if all required utilities are in place
  218288. .IP \(bu 2
  218289. 758f5cd77c Make rpmbuild module work on Debian GNU/Linux and derivatives
  218290. .UNINDENT
  218291. .IP \(bu 2
  218292. \fBPR\fP \fI\%#34073\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218293. @ \fI2016\-06\-16 23:02:32 UTC\fP
  218294. .INDENT 2.0
  218295. .IP \(bu 2
  218296. f2a2c2bf53 Merge pull request \fI\%#34073\fP from rallytime/merge\-2016.3
  218297. .IP \(bu 2
  218298. f6bfaede21 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218299. .IP \(bu 2
  218300. 1b76de1557 Merge pull request \fI\%#34069\fP from rallytime/test\-minion\-return\-message
  218301. .INDENT 2.0
  218302. .IP \(bu 2
  218303. 60561ac6fc Add a test to check for disconnected minion messaging
  218304. .UNINDENT
  218305. .IP \(bu 2
  218306. 3119693dac Merge pull request \fI\%#34048\fP from terminalmage/issue30100
  218307. .INDENT 2.0
  218308. .IP \(bu 2
  218309. 715e7af8a4 Ensure only one fileserver update in a masterless run
  218310. .UNINDENT
  218311. .IP \(bu 2
  218312. dd03024931 Merge pull request \fI\%#34011\fP from rallytime/bp\-33948\-2015.8
  218313. .INDENT 2.0
  218314. .IP \(bu 2
  218315. a4660d1ff7 Warn when custom returners don\(aqt have minions kwarg in save_load
  218316. .IP \(bu 2
  218317. 78befde62f Add note to release notes about returner minions kwarg change
  218318. .IP \(bu 2
  218319. 4e7f35fa36 Fix loop over cache in auth checking!
  218320. .IP \(bu 2
  218321. 06963e0505 Save an entire minion cache traversal on each master pub
  218322. .UNINDENT
  218323. .IP \(bu 2
  218324. bca437128e Fixed a bug in the consul.py module that was preventing services (\fI\%#34051\fP)
  218325. .IP \(bu 2
  218326. 8ba117c7f6 Merge pull request \fI\%#34045\fP from jacobhammons/release\-prev
  218327. .INDENT 2.0
  218328. .IP \(bu 2
  218329. 43b4a12aa2 Updated latest release version
  218330. .UNINDENT
  218331. .IP \(bu 2
  218332. f9bfcde61f Always make changes to minion config if set (\fI\%#34020\fP)
  218333. .IP \(bu 2
  218334. e25dba49e2 More YAML indentation fixes in state module examples (\fI\%#34030\fP)
  218335. .IP \(bu 2
  218336. 5b5eae4ca9 Merge pull request \fI\%#34018\fP from rallytime/merge\-2015.8
  218337. .INDENT 2.0
  218338. .IP \(bu 2
  218339. 77f44f3087 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  218340. .IP \(bu 2
  218341. 871f7966ce Lint fix for \fI\%#34000\fP (\fI\%#34005\fP)
  218342. .IP \(bu 2
  218343. f758e42172 Fix incorrectly written test (\fI\%#34000\fP)
  218344. .IP \(bu 2
  218345. cf6281b4cf Add loader.utils() example to calling minion_mods (\fI\%#33953\fP)
  218346. .IP \(bu 2
  218347. 6b98e8a9ea Merge pull request \fI\%#33880\fP from terminalmage/zh744
  218348. .INDENT 2.0
  218349. .IP \(bu 2
  218350. ea726d11c8 pkg.uptodate: Pass kwargs to pkg.list_upgrades
  218351. .IP \(bu 2
  218352. de90b35d2b salt/modules/zypper.py: add fromrepo support to list_upgrades
  218353. .IP \(bu 2
  218354. 35fbb06df5 salt/modules/win_pkg.py: add kwargs to list_upgrades
  218355. .IP \(bu 2
  218356. bf5505f425 salt/modules/solarisips.py: add kwargs to list_upgrades
  218357. .IP \(bu 2
  218358. 6e89a8be98 salt/modules/pkgutil.py: add kwargs to list_upgrades
  218359. .IP \(bu 2
  218360. 5179dbcec4 salt/modules/pacman.py: add kwargs to list_upgrades
  218361. .IP \(bu 2
  218362. 46e5a52784 salt/modules/macports.py: add kwargs to list_upgrades
  218363. .IP \(bu 2
  218364. 76143b76ca salt/modules/ebuild.py: add kwargs to list_upgrades
  218365. .IP \(bu 2
  218366. b40fc9bc62 salt/modules/brew.py: add kwargs to list_upgrades
  218367. .IP \(bu 2
  218368. 4f11c16d86 salt/modules/aptpkg.py: add fromrepo support to list_upgrades
  218369. .UNINDENT
  218370. .IP \(bu 2
  218371. cb88960ed1 Merge pull request \fI\%#33904\fP from rallytime/bp\-33806
  218372. .INDENT 2.0
  218373. .IP \(bu 2
  218374. 638ccf501d Work around upstream cherrypy bug
  218375. .UNINDENT
  218376. .UNINDENT
  218377. .IP \(bu 2
  218378. 7d940aed1f states.file: fix indentation in YAML examples (\fI\%#34003\fP)
  218379. .IP \(bu 2
  218380. 4c7fac0aaa Remove loader test for pam module (\fI\%#34002\fP)
  218381. .IP \(bu 2
  218382. c4dab6a074 Merge pull request \fI\%#33990\fP from jacobhammons/community\-projects
  218383. .INDENT 2.0
  218384. .IP \(bu 2
  218385. 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
  218386. .UNINDENT
  218387. .IP \(bu 2
  218388. 444c15792c Merge pull request \fI\%#33983\fP from twangboy/fix_docs_join_domain
  218389. .INDENT 2.0
  218390. .IP \(bu 2
  218391. b057be04b4 Fix typo, more documentation
  218392. .IP \(bu 2
  218393. d8c2f3e57a Clarify the \fIaccount_exists\fP parameter
  218394. .UNINDENT
  218395. .IP \(bu 2
  218396. 9bd2317992 Merge pull request \fI\%#33951\fP from jfindlay/gem_tests
  218397. .INDENT 2.0
  218398. .IP \(bu 2
  218399. 2eb633ccad modules.gem int tests: only check known installed gems
  218400. .IP \(bu 2
  218401. 9f3e18b037 modules.gem int tests: (un)install a non\-core gem
  218402. .UNINDENT
  218403. .IP \(bu 2
  218404. 53baae6eb1 Merge pull request \fI\%#33984\fP from jfindlay/disk_capacity
  218405. .INDENT 2.0
  218406. .IP \(bu 2
  218407. 6cbe31e6c2 states.disk: rewrite unit tests
  218408. .IP \(bu 2
  218409. 82c77b533f states.disk.status: validate percent values
  218410. .IP \(bu 2
  218411. aedc4e15e5 states.disk: add documentation
  218412. .UNINDENT
  218413. .IP \(bu 2
  218414. fa5efb6a69 Merge pull request \fI\%#33985\fP from rallytime/more\-batch\-tests
  218415. .INDENT 2.0
  218416. .IP \(bu 2
  218417. 3e7ab8c7b3 Write some more simple batch command tests
  218418. .UNINDENT
  218419. .IP \(bu 2
  218420. 6080846cce acl.ClientACL: add unit tests (\fI\%#33684\fP)
  218421. .UNINDENT
  218422. .IP \(bu 2
  218423. \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)
  218424. .IP \(bu 2
  218425. \fBPR\fP \fI\%#34010\fP: (\fI\%terminalmage\fP) Do not cache remote files if they are already cached
  218426. @ \fI2016\-06\-16 21:03:47 UTC\fP
  218427. .INDENT 2.0
  218428. .IP \(bu 2
  218429. 790384f413 Merge pull request \fI\%#34010\fP from terminalmage/issue33831
  218430. .IP \(bu 2
  218431. 636d081ae0 Do not cache remote files if they are already cached
  218432. .UNINDENT
  218433. .IP \(bu 2
  218434. \fBPR\fP \fI\%#34009\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP to 2016.3 + add log message (refs: \fI\%#34011\fP)
  218435. @ \fI2016\-06\-16 21:01:09 UTC\fP
  218436. .INDENT 2.0
  218437. .IP \(bu 2
  218438. \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)
  218439. .IP \(bu 2
  218440. dd26d6fd74 Merge pull request \fI\%#34009\fP from rallytime/bp\-33948
  218441. .IP \(bu 2
  218442. 239af9ae5e Warn when custom returners don\(aqt have minions kwarg in save_load
  218443. .IP \(bu 2
  218444. c776d2d795 Add note to release notes about returner minions kwarg change
  218445. .IP \(bu 2
  218446. 5f696082e3 Fix loop over cache in auth checking!
  218447. .IP \(bu 2
  218448. 180c312715 Save an entire minion cache traversal on each master pub
  218449. .UNINDENT
  218450. .IP \(bu 2
  218451. \fBISSUE\fP \fI\%#33927\fP: (\fI\%phil123456\fP) Salt \- windows minion cannot do anything (refs: \fI\%#33941\fP)
  218452. .IP \(bu 2
  218453. \fBPR\fP \fI\%#33941\fP: (\fI\%cachedout\fP) Don\(aqt call os.getppid() on Windows
  218454. @ \fI2016\-06\-16 20:56:17 UTC\fP
  218455. .INDENT 2.0
  218456. .IP \(bu 2
  218457. 5f4ef46d2f Merge pull request \fI\%#33941\fP from cachedout/issue_33927
  218458. .IP \(bu 2
  218459. 5fe889c7f1 Don\(aqt call os.getppid() on Windows
  218460. .UNINDENT
  218461. .IP \(bu 2
  218462. \fBPR\fP \fI\%#34067\fP: (\fI\%jacobhammons\fP) Fixes doc refresh bug on chrome mobile.
  218463. @ \fI2016\-06\-16 18:44:12 UTC\fP
  218464. .INDENT 2.0
  218465. .IP \(bu 2
  218466. fa253aa62b Merge pull request \fI\%#34067\fP from jacobhammons/mobile\-fix
  218467. .IP \(bu 2
  218468. ce027fd769 Fixes doc refresh bug on chrome mobile.
  218469. .IP \(bu 2
  218470. \fBPR\fP \fI\%#34050\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34026\fP to 2016.3
  218471. .IP \(bu 2
  218472. \fBPR\fP \fI\%#34026\fP: (\fI\%bensherman\fP) removed method that doesn\(aqt exist (refs: \fI\%#34050\fP)
  218473. .UNINDENT
  218474. .IP \(bu 2
  218475. \fBPR\fP \fI\%#33987\fP: (\fI\%isbm\fP) inspectlib cleanup
  218476. @ \fI2016\-06\-15 22:09:31 UTC\fP
  218477. .INDENT 2.0
  218478. .IP \(bu 2
  218479. 73ff11585e Merge pull request \fI\%#33987\fP from isbm/isbm\-inspectlib\-cleanup
  218480. .IP \(bu 2
  218481. e36821510f Fix documentation: add an example how to export system to the Kiwi
  218482. .IP \(bu 2
  218483. fe300ccf73 Lintfix
  218484. .IP \(bu 2
  218485. 96423076b1 Add unit test for file tree
  218486. .IP \(bu 2
  218487. 8975036b27 Add get_unmanaged_files test
  218488. .IP \(bu 2
  218489. be5f12fcaf Add initial unit test for inspectlib.collector.Inspector
  218490. .IP \(bu 2
  218491. 652c96d7e7 Stop build (not implemented yet)
  218492. .IP \(bu 2
  218493. 58e85ea0ab Refactor class caller
  218494. .IP \(bu 2
  218495. 878f67674a Sort package names
  218496. .IP \(bu 2
  218497. c31818b4aa Fix lint: PEP8 multiplication of 4.
  218498. .IP \(bu 2
  218499. c87fff3680 Add root\-only warning when exporting system with Kiwi
  218500. .IP \(bu 2
  218501. 9bd80f02fc Implement users Kiwi export
  218502. .IP \(bu 2
  218503. e191f338c7 Cleanup code
  218504. .IP \(bu 2
  218505. 80f45defae Implement packages and patterns gathering
  218506. .IP \(bu 2
  218507. ad45a265f5 Add Debian support for the repo generator
  218508. .IP \(bu 2
  218509. 6280ad137e Semifix: sometimes SQLite3 is locked. TODO: a proper handling required.
  218510. .IP \(bu 2
  218511. 51567ab61d Implement SUSE repositories export
  218512. .IP \(bu 2
  218513. e4ac113927 Add Kiwi support to the collector/inspector
  218514. .IP \(bu 2
  218515. eceeb4ecf2 Add ability to specify an additional PID file
  218516. .IP \(bu 2
  218517. f522a91ac6 Add ISO/image build (stub) and export to the Kiwi
  218518. .IP \(bu 2
  218519. bb19684606 Add Kiwi processor exception
  218520. .IP \(bu 2
  218521. 805e2ce204 Add Kiwi exported (initial)
  218522. .IP \(bu 2
  218523. a52f9f7107 Add default configuration
  218524. .UNINDENT
  218525. .IP \(bu 2
  218526. \fBISSUE\fP \fI\%#34038\fP: (\fI\%Ch3LL\fP) user.list_users does not work on smartos (refs: \fI\%#34042\fP)
  218527. .INDENT 2.0
  218528. .IP \(bu 2
  218529. \fBPR\fP \fI\%#34042\fP: (\fI\%sjorge\fP) fix \fI\%#34038\fP
  218530. .UNINDENT
  218531. .IP \(bu 2
  218532. \fBPR\fP \fI\%#34025\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218533. @ \fI2016\-06\-15 19:41:00 UTC\fP
  218534. .INDENT 2.0
  218535. .IP \(bu 2
  218536. f546a00dc9 Merge pull request \fI\%#34025\fP from rallytime/merge\-2016.3
  218537. .UNINDENT
  218538. .IP \(bu 2
  218539. \fBPR\fP \fI\%#34044\fP: (\fI\%jacobhammons\fP) Updated latest release to 2016.3.1
  218540. @ \fI2016\-06\-15 19:20:28 UTC\fP
  218541. .INDENT 2.0
  218542. .IP \(bu 2
  218543. 3035520594 Merge pull request \fI\%#34044\fP from jacobhammons/3.1
  218544. .IP \(bu 2
  218545. a4b67fd1e9 Updated latest release to 2016.3.1 Clean up installation instructions code\-block type updates Add link to jinja tutorial
  218546. .IP \(bu 2
  218547. \fBPR\fP \fI\%#34014\fP: (\fI\%jnhmcknight\fP) fix launch config creation params
  218548. .IP \(bu 2
  218549. \fBPR\fP \fI\%#34021\fP: (\fI\%twangboy\fP) Always make changes to minion config if set (2016.3)
  218550. .UNINDENT
  218551. .IP \(bu 2
  218552. \fBPR\fP \fI\%#34031\fP: (\fI\%eliasp\fP) \fIstates.postgres_privileges\fP expects a real list, not a comma\-separated string
  218553. @ \fI2016\-06\-15 16:34:04 UTC\fP
  218554. .INDENT 2.0
  218555. .IP \(bu 2
  218556. 5f90717fd3 Merge pull request \fI\%#34031\fP from eliasp/2016.3\-salt.states.postgres_privileges\-doc\-priv\-list
  218557. .IP \(bu 2
  218558. d3198ea538 \fIstates.postgres_privileges\fP expects a real list, not a comma\-separated string for \fIprivileges\fP
  218559. .UNINDENT
  218560. .IP \(bu 2
  218561. \fBISSUE\fP \fI\%#33023\fP: (\fI\%cmclaughlin\fP) rest_cherrypy eauth can\(aqt handle some characters (refs: \fI\%#33995\fP)
  218562. .IP \(bu 2
  218563. \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)
  218564. .IP \(bu 2
  218565. \fBISSUE\fP \fI\%#12470\fP: (\fI\%whiteinge\fP) Document how to (and not NOT to) use Jinja in states (refs: \fI\%#33995\fP)
  218566. .IP \(bu 2
  218567. \fBISSUE\fP \fI\%#10480\fP: (\fI\%gravyboat\fP) Create documentation that talks about using Jinja specifically for Salt. (refs: \fI\%#33995\fP)
  218568. .IP \(bu 2
  218569. \fBISSUE\fP \fI\%#10206\fP: (\fI\%rabits\fP) Jinja import: Jinja variable \(aqsalt\(aq is undefined (refs: \fI\%#33995\fP)
  218570. .IP \(bu 2
  218571. \fBPR\fP \fI\%#33995\fP: (\fI\%jacobhammons\fP) Understanding Jinja topic, Jinja doc issues.
  218572. @ \fI2016\-06\-14 02:00:29 UTC\fP
  218573. .INDENT 2.0
  218574. .IP \(bu 2
  218575. 1132bc5d0b Merge pull request \fI\%#33995\fP from jacobhammons/doc\-fixes
  218576. .IP \(bu 2
  218577. 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.
  218578. .UNINDENT
  218579. .IP \(bu 2
  218580. \fBPR\fP \fI\%#33900\fP: (\fI\%amendlik\fP) Document sudo policy for gitfs post\-recieve hook
  218581. @ \fI2016\-06\-14 01:04:35 UTC\fP
  218582. .INDENT 2.0
  218583. .IP \(bu 2
  218584. a400f6a6c3 Merge pull request \fI\%#33900\fP from amendlik/gitfs\-hook\-doc
  218585. .IP \(bu 2
  218586. b4a28e2684 Add clarifying documentation about the need for sudo in the git hook
  218587. .IP \(bu 2
  218588. 1046279cb7 Document sudo policy for gitfs post\-recieve hook
  218589. .UNINDENT
  218590. .IP \(bu 2
  218591. \fBPR\fP \fI\%#33980\fP: (\fI\%twangboy\fP) Use full path to python.exe
  218592. @ \fI2016\-06\-14 00:46:14 UTC\fP
  218593. .INDENT 2.0
  218594. .IP \(bu 2
  218595. 28c886edd0 Merge pull request \fI\%#33980\fP from twangboy/fix_build
  218596. .IP \(bu 2
  218597. dd7d55afb9 Use full path to python.exe
  218598. .UNINDENT
  218599. .IP \(bu 2
  218600. \fBPR\fP \fI\%#33993\fP: (\fI\%s0undt3ch\fP) Call \fIsys.exit()\fP instead of \fIexit()\fP
  218601. @ \fI2016\-06\-14 00:30:46 UTC\fP
  218602. .INDENT 2.0
  218603. .IP \(bu 2
  218604. 26fee377ec Merge pull request \fI\%#33993\fP from s0undt3ch/2016.3
  218605. .IP \(bu 2
  218606. 34f7d90d9f Call \fIsys.exit()\fP instead of \fIexit()\fP
  218607. .UNINDENT
  218608. .IP \(bu 2
  218609. \fBPR\fP \fI\%#33976\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218610. @ \fI2016\-06\-13 19:29:40 UTC\fP
  218611. .INDENT 2.0
  218612. .IP \(bu 2
  218613. 2e934cffef Merge pull request \fI\%#33976\fP from rallytime/merge\-2016.3
  218614. .IP \(bu 2
  218615. 19d49d94f2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218616. .INDENT 2.0
  218617. .IP \(bu 2
  218618. a74f1b8077 ZD 762 (\fI\%#33942\fP)
  218619. .IP \(bu 2
  218620. 0281d491c6 Merge pull request \fI\%#33946\fP from rallytime/bp\-33698
  218621. .INDENT 2.0
  218622. .IP \(bu 2
  218623. 5fdfed1cb9 Make sure we only use GetConnection if we are using a proxy salt minion
  218624. .IP \(bu 2
  218625. 1505c5724b Fix a bug with self signed certificates and creating a new VM
  218626. .UNINDENT
  218627. .IP \(bu 2
  218628. dff3f51955 Merge pull request \fI\%#33952\fP from rallytime/fix\-33911
  218629. .INDENT 2.0
  218630. .IP \(bu 2
  218631. 03b7cbbd2c Add base argument to salt\-ssh grains wrapper for filter_by func
  218632. .UNINDENT
  218633. .IP \(bu 2
  218634. 4a8064918a Adds a "Generated on <timestamp>" line to the footer of each doc html page in the doc (\fI\%#33962\fP)
  218635. .UNINDENT
  218636. .UNINDENT
  218637. .IP \(bu 2
  218638. \fBISSUE\fP \fI\%#33868\fP: (\fI\%abalashov\fP) Returner configuration override options don\(aqt work for scheduled jobs (schedule module) (refs: \fI\%#33912\fP)
  218639. .IP \(bu 2
  218640. \fBPR\fP \fI\%#33912\fP: (\fI\%abalashov\fP) utils/schedule.py:handle_func() \- Fix for accessing returner configur…
  218641. @ \fI2016\-06\-13 17:18:04 UTC\fP
  218642. .INDENT 2.0
  218643. .IP \(bu 2
  218644. 8d8ed59b85 Merge pull request \fI\%#33912\fP from abalashov/abalashov/fix\-schedule\-returner\-config
  218645. .IP \(bu 2
  218646. b5a4f8b313 utils/schedule.py:handle_func() \- Fix for accessing returner configuration attributes \(aqreturn_config\(aq and \(aqreturn_kwargs\(aq.
  218647. .UNINDENT
  218648. .IP \(bu 2
  218649. \fBPR\fP \fI\%#33945\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218650. @ \fI2016\-06\-13 15:44:30 UTC\fP
  218651. .INDENT 2.0
  218652. .IP \(bu 2
  218653. 81e16bb93f Merge pull request \fI\%#33945\fP from rallytime/merge\-2016.3
  218654. .IP \(bu 2
  218655. b4ab322ce1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218656. .INDENT 2.0
  218657. .IP \(bu 2
  218658. b3ec39d644 Correct issue with ping on rotate with minion cache (\fI\%#33765\fP)
  218659. .IP \(bu 2
  218660. 378dd7ca06 Merge pull request \fI\%#33888\fP from jfindlay/random_check
  218661. .INDENT 2.0
  218662. .IP \(bu 2
  218663. 6acee3cc30 modules.random_org._query: only return text if present
  218664. .IP \(bu 2
  218665. 82f95429db modules.random_org unit tests: skip if random.org down
  218666. .IP \(bu 2
  218667. 1f9422e0cd utils.http.query: also except gaierror with tornado
  218668. .UNINDENT
  218669. .IP \(bu 2
  218670. 2dc1914e7c Add connecting_settings to boto_elb state attributes list (\fI\%#33936\fP)
  218671. .IP \(bu 2
  218672. 91a2184f2d Wait for up to a minute for sync_after_install (\fI\%#33917\fP)
  218673. .IP \(bu 2
  218674. ef6da0be5d Merge pull request \fI\%#33877\fP from rallytime/merge\-2015.8
  218675. .IP \(bu 2
  218676. 398534a9e7 Fix ret return from merge\-conflict resolution
  218677. .IP \(bu 2
  218678. b8e4706074 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  218679. .IP \(bu 2
  218680. cdda593c50 Merge pull request \fI\%#33829\fP from terminalmage/update\-versionchanged
  218681. .INDENT 2.0
  218682. .IP \(bu 2
  218683. f7028eb1c6 Update versionchanged directive
  218684. .UNINDENT
  218685. .IP \(bu 2
  218686. b8e6c144d8 Merge pull request \fI\%#33833\fP from terminalmage/issue33645
  218687. .INDENT 2.0
  218688. .IP \(bu 2
  218689. 91745c2a67 Support syncing pillar modules to masterless minions
  218690. .UNINDENT
  218691. .IP \(bu 2
  218692. e061788e81 Merge pull request \fI\%#33814\fP from terminalmage/archive\-extracted\-xz
  218693. .INDENT 2.0
  218694. .IP \(bu 2
  218695. 897a716df2 Support extraction of XZ archives in archive.extracted state
  218696. .UNINDENT
  218697. .IP \(bu 2
  218698. fa983e91cf Merge pull request \fI\%#33778\fP from sodium\-chloride/2015.5\-2016\-0604\-1938
  218699. .INDENT 2.0
  218700. .IP \(bu 2
  218701. a5fb6d7a69 Fix minor docstring issues
  218702. .UNINDENT
  218703. .IP \(bu 2
  218704. b9133326c8 Merge pull request \fI\%#33726\fP from jtand/sysmod_skip_valid_docs_glance
  218705. .INDENT 2.0
  218706. .IP \(bu 2
  218707. ebee8a89af glance.warn_until shouldn\(aqt be checked for a doc string
  218708. .UNINDENT
  218709. .IP \(bu 2
  218710. 137f0b19f3 Merge pull request \fI\%#33611\fP from TargetHolding/2015.5
  218711. .IP \(bu 2
  218712. 1dd15a603b solve\(aq TypeError: expected string or buffer\(aq in json/decoder.py
  218713. .IP \(bu 2
  218714. eaf42ca892 solve AttributeError: \(aqmodule\(aq object has no attribute \(aqexception\(aq
  218715. .UNINDENT
  218716. .UNINDENT
  218717. .IP \(bu 2
  218718. \fBPR\fP \fI\%#33960\fP: (\fI\%nulfox\fP) Fix mongo get_load to return full mongo record instead of non\-existant \(aqload\(aq key
  218719. @ \fI2016\-06\-13 15:37:46 UTC\fP
  218720. .INDENT 2.0
  218721. .IP \(bu 2
  218722. 68d261fe5b Merge pull request \fI\%#33960\fP from mecarus/2016.3
  218723. .IP \(bu 2
  218724. d622133a49 The jid load comes in directly, not as \(aqload\(aq key. Should return the mongo record directly without accessing keys
  218725. .UNINDENT
  218726. .IP \(bu 2
  218727. \fBPR\fP \fI\%#33961\fP: (\fI\%jacobhammons\fP) 2016.3.0 known issues update
  218728. @ \fI2016\-06\-13 02:59:21 UTC\fP
  218729. .INDENT 2.0
  218730. .IP \(bu 2
  218731. 8f56406507 Merge pull request \fI\%#33961\fP from jacobhammons/release
  218732. .IP \(bu 2
  218733. 2cf787d4ba 2016.3.0 known issues update
  218734. .IP \(bu 2
  218735. \fBPR\fP \fI\%#33908\fP: (\fI\%ticosax\fP) [boto_lambda] handle ommitted Permissions parameter
  218736. .UNINDENT
  218737. .IP \(bu 2
  218738. \fBISSUE\fP \fI\%#33575\fP: (\fI\%anlutro\fP) File states seem slower in 2016.3, especially on first cache retrieval (refs: \fI\%#33896\fP)
  218739. .IP \(bu 2
  218740. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  218741. .IP \(bu 2
  218742. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  218743. .IP \(bu 2
  218744. \fBPR\fP \fI\%#33896\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt deep copy context dict values.
  218745. @ \fI2016\-06\-10 15:32:54 UTC\fP
  218746. .INDENT 2.0
  218747. .IP \(bu 2
  218748. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#33896\fP)
  218749. .IP \(bu 2
  218750. 16b5e9dcc1 Merge pull request \fI\%#33896\fP from DSRCompany/issues/33575_do_not_deep_copy_context
  218751. .IP \(bu 2
  218752. 8e34d0a9c3 Don\(aqt deep copy context dict values.
  218753. .UNINDENT
  218754. .IP \(bu 2
  218755. \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)
  218756. .IP \(bu 2
  218757. \fBPR\fP \fI\%#33905\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33847\fP to 2016.3
  218758. @ \fI2016\-06\-10 15:22:34 UTC\fP
  218759. .INDENT 2.0
  218760. .IP \(bu 2
  218761. \fBPR\fP \fI\%#33847\fP: (\fI\%whiteinge\fP) Add docs for arg/kwarg eauth matching (refs: \fI\%#33905\fP)
  218762. .IP \(bu 2
  218763. \fBPR\fP \fI\%#29153\fP: (\fI\%DmitryKuzmenko\fP) ACL limit args (refs: \fI\%#33847\fP)
  218764. .IP \(bu 2
  218765. 01323322b0 Merge pull request \fI\%#33905\fP from rallytime/bp\-33847
  218766. .INDENT 2.0
  218767. .IP \(bu 2
  218768. b6ebd7b6ef Add docs for arg/kwarg eauth matching
  218769. .UNINDENT
  218770. .IP \(bu 2
  218771. 261baeb5b5 Ensure tht pillar have freshest grains (\fI\%#33910\fP)
  218772. .IP \(bu 2
  218773. 00e016ecfc Add note about Xenial packages to 2016.3.0 release notes (\fI\%#33870\fP)
  218774. .UNINDENT
  218775. .UNINDENT
  218776. .SS Salt 2016.3.3 Release Notes
  218777. .sp
  218778. Version 2016.3.3 is a bugfix release for 2016.3.0\&.
  218779. .SS Statistics
  218780. .INDENT 0.0
  218781. .IP \(bu 2
  218782. Total Merges: \fB108\fP
  218783. .IP \(bu 2
  218784. Total Issue References: \fB26\fP
  218785. .IP \(bu 2
  218786. Total PR References: \fB115\fP
  218787. .IP \(bu 2
  218788. 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)
  218789. .UNINDENT
  218790. .SS Known Issues
  218791. .sp
  218792. \fI\%issue #36055\fP: Salt Cloud events (\fBsalt/cloud\fP) are not generated on the
  218793. master event bus when provisioning cloud systems.
  218794. .sp
  218795. \fI\%Bootstrap Issue #973\fP: \fBpython\-futures\fP is not installed when installing
  218796. from a git tag on RedHat\-based distributions. \fBPython futures\fP is needed when
  218797. .sp
  218798. running Salt with the TCP transport. This is fixed on the \fBdevelop\fP branch of
  218799. the \fI\%salt\-bootstrap repo\fP and the fix will be included in the upcoming release
  218800. of salt\-bootstrap, but is a bug in the bootstrap release that ships with this
  218801. version of Salt. Please see the \fI\%salt\-bootstrap repo\fP for more information on
  218802. how to update your bootstrap version.
  218803. .SS Changelog for v2016.3.2..v2016.3.3
  218804. .sp
  218805. \fIGenerated at: 2018\-05\-27 04:47:36 UTC\fP
  218806. .INDENT 0.0
  218807. .IP \(bu 2
  218808. \fBPR\fP \fI\%#35603\fP: (\fI\%rallytime\fP) Make sure version label is correct in header
  218809. .IP \(bu 2
  218810. \fBPR\fP \fI\%#35602\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.3
  218811. .IP \(bu 2
  218812. \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)
  218813. .IP \(bu 2
  218814. \fBPR\fP \fI\%#35580\fP: (\fI\%twangboy\fP) Fix mac_service attempts to parse non\-plist files
  218815. @ \fI2016\-08\-19 09:24:38 UTC\fP
  218816. .INDENT 2.0
  218817. .IP \(bu 2
  218818. 9683bb3c58 Merge pull request \fI\%#35580\fP from twangboy/fix_35102
  218819. .IP \(bu 2
  218820. 4122e66ed5 Handle malformed plist files
  218821. .IP \(bu 2
  218822. 52feff9309 Fix mac_service attempts to parse non\-plist files
  218823. .UNINDENT
  218824. .IP \(bu 2
  218825. \fBPR\fP \fI\%#35586\fP: (\fI\%hu\-dabao\fP) Fix 35420, add run_on_start in build_schedule_item
  218826. @ \fI2016\-08\-19 09:23:32 UTC\fP
  218827. .INDENT 2.0
  218828. .IP \(bu 2
  218829. c4ec94d6e8 Merge pull request \fI\%#35586\fP from hu\-dabao/fix\-35420
  218830. .IP \(bu 2
  218831. 2d3a882cc2 fix 35420, add run_on_start in build_schedule_item, remove redundancy of enabled
  218832. .IP \(bu 2
  218833. \fBPR\fP \fI\%#35583\fP: (\fI\%terminalmage\fP) Fix localemod tests
  218834. .UNINDENT
  218835. .IP \(bu 2
  218836. \fBPR\fP \fI\%#35579\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218837. @ \fI2016\-08\-18 22:00:41 UTC\fP
  218838. .INDENT 2.0
  218839. .IP \(bu 2
  218840. d1339fd9f5 Merge pull request \fI\%#35579\fP from rallytime/merge\-2016.3
  218841. .IP \(bu 2
  218842. 00dff9dcbd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218843. .IP \(bu 2
  218844. 26a7f7d9f7 Merge pull request \fI\%#35577\fP from terminalmage/unit\-file\-changes
  218845. .INDENT 2.0
  218846. .IP \(bu 2
  218847. 6cb0fb47f3 pkg/salt\-syndic.service: change Type to notify
  218848. .IP \(bu 2
  218849. 175ba99e0e pkg/salt\-minion.service: remove KillMode, change Type to notify
  218850. .IP \(bu 2
  218851. 540ec28954 pkg/salt\-master.service: remove KillMode
  218852. .IP \(bu 2
  218853. 69fad464ab pkg/salt\-api.service: change Type to notify
  218854. .UNINDENT
  218855. .UNINDENT
  218856. .IP \(bu 2
  218857. \fBPR\fP \fI\%#35571\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218858. @ \fI2016\-08\-18 19:50:03 UTC\fP
  218859. .INDENT 2.0
  218860. .IP \(bu 2
  218861. f7a18234db Merge pull request \fI\%#35571\fP from rallytime/merge\-2016.3
  218862. .IP \(bu 2
  218863. 2930df924e Update localemod_test systemd.sd_booted mock to use salt.utils.systemd.booted
  218864. .IP \(bu 2
  218865. e61b04a707 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218866. .INDENT 2.0
  218867. .IP \(bu 2
  218868. 2a5d1a0eee fix\-35384, fix the logic caused by wrong indent (\fI\%#35566\fP)
  218869. .IP \(bu 2
  218870. feb852f8c0 Clarify config.get docstring (\fI\%#35492\fP)
  218871. .IP \(bu 2
  218872. 205d8e2e7b Merge pull request \fI\%#35483\fP from gtmanfred/2015.8
  218873. .INDENT 2.0
  218874. .IP \(bu 2
  218875. 2d8ec1e9db use __opts__ in salt.utils.cloud for cache functions
  218876. .UNINDENT
  218877. .IP \(bu 2
  218878. 70fa2d0901 Merge pull request \fI\%#35546\fP from whiteinge/salt\-api\-eauth\-fail\-gracefully
  218879. .INDENT 2.0
  218880. .IP \(bu 2
  218881. eb3574adae Don\(aqt fail hard if the user\(aqs permissions cannot be found
  218882. .IP \(bu 2
  218883. ec597bd54c Change groups check in token to look for truthy values
  218884. .UNINDENT
  218885. .IP \(bu 2
  218886. 61fec6caa9 add missing glob import (\fI\%#35525\fP)
  218887. .IP \(bu 2
  218888. 0e3f2fc6cb Whitespace fix for 2015.8 (\fI\%#35540\fP)
  218889. .IP \(bu 2
  218890. fd3274c800 Merge pull request \fI\%#35510\fP from terminalmage/issue33516
  218891. .INDENT 2.0
  218892. .IP \(bu 2
  218893. 5b5f19d269 Update zypper unit test to reflect call to config.get
  218894. .IP \(bu 2
  218895. 2730edb516 Add note about systemd\-run usage in package states
  218896. .IP \(bu 2
  218897. e2d9e87e10 salt/modules/systemd.py: Use systemd\-run \-\-scope where needed
  218898. .IP \(bu 2
  218899. 22919a25bc Notify systemd on salt\-api start
  218900. .IP \(bu 2
  218901. a40b3f8a08 Notify systemd on syndic start
  218902. .IP \(bu 2
  218903. e847d3af30 Notify systemd on minion start
  218904. .IP \(bu 2
  218905. d648887afc salt/modules/zypper.py: Use systemd\-run \-\-scope where needed
  218906. .IP \(bu 2
  218907. 2e17976722 salt/modules/yumpkg.py: Use systemd\-run \-\-scope where needed
  218908. .IP \(bu 2
  218909. 86b59c1e74 salt/modules/pacman.py: Use systemd\-run \-\-scope where needed
  218910. .IP \(bu 2
  218911. e32d92c6d5 salt/modules/ebuild.py: Use systemd\-run \-\-scope where needed
  218912. .IP \(bu 2
  218913. c7d21d3ae3 salt/modules/aptpkg.py: Use systemd\-run \-\-scope where needed
  218914. .IP \(bu 2
  218915. f83e0ef242 Add unit tests for salt.utils.systemd
  218916. .IP \(bu 2
  218917. 5b12f030c6 Add func to salt.utils.systemd to tell if scopes are available
  218918. .UNINDENT
  218919. .UNINDENT
  218920. .IP \(bu 2
  218921. \fBPR\fP \fI\%#35573\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33337\fP to 2016.3
  218922. .IP \(bu 2
  218923. \fBPR\fP \fI\%#33337\fP: (\fI\%mzupan\fP) adding the () to make changes work (refs: \fI\%#35573\fP)
  218924. .UNINDENT
  218925. .IP \(bu 2
  218926. \fBPR\fP \fI\%#35572\fP: (\fI\%terminalmage\fP) Fix poor formatting in pkg state docs
  218927. @ \fI2016\-08\-18 18:15:52 UTC\fP
  218928. .INDENT 2.0
  218929. .IP \(bu 2
  218930. 73b549ed00 Merge pull request \fI\%#35572\fP from terminalmage/docs
  218931. .IP \(bu 2
  218932. 7d7a7de9e6 Fix poor formatting in pkg state docs
  218933. .IP \(bu 2
  218934. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  218935. .IP \(bu 2
  218936. \fBPR\fP \fI\%saltstack/salt#35463\fP: (\fI\%skizunov\fP) Make \fIauth_timeout\fP user configurable again (refs: \fI\%#35489\fP)
  218937. .UNINDENT
  218938. .IP \(bu 2
  218939. \fBPR\fP \fI\%#35489\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35463\fP to 2016.3
  218940. @ \fI2016\-08\-18 07:16:03 UTC\fP
  218941. .INDENT 2.0
  218942. .IP \(bu 2
  218943. \fBPR\fP \fI\%#35463\fP: (\fI\%skizunov\fP) Make \fIauth_timeout\fP user configurable again (refs: \fI\%#35489\fP)
  218944. .IP \(bu 2
  218945. f2eb3dc105 Merge pull request \fI\%#35489\fP from rallytime/bp\-35463
  218946. .IP \(bu 2
  218947. bbf7ce121b Remove final self.MINION_CONNECT_TIMEOUT ref
  218948. .IP \(bu 2
  218949. cf2e2daab9 Make \fIauth_timeout\fP user configurable again
  218950. .IP \(bu 2
  218951. \fBPR\fP \fI\%#35538\fP: (\fI\%thatch45\fP) Treat python XML as an optdep
  218952. .UNINDENT
  218953. .IP \(bu 2
  218954. \fBPR\fP \fI\%#35526\fP: (\fI\%thatch45\fP) Always deploy the thin to /var/tmp
  218955. @ \fI2016\-08\-17 19:44:26 UTC\fP
  218956. .INDENT 2.0
  218957. .IP \(bu 2
  218958. e2bd575461 Merge pull request \fI\%#35526\fP from thatch45/ssh_W_tmp
  218959. .IP \(bu 2
  218960. a381f02cfe Always deploy the thin to /var/tmp
  218961. .UNINDENT
  218962. .IP \(bu 2
  218963. \fBPR\fP \fI\%#35522\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218964. @ \fI2016\-08\-17 18:07:16 UTC\fP
  218965. .INDENT 2.0
  218966. .IP \(bu 2
  218967. 8b770869e4 Merge pull request \fI\%#35522\fP from rallytime/merge\-2016.3
  218968. .IP \(bu 2
  218969. ff212d8976 Whitespace fix
  218970. .IP \(bu 2
  218971. c305d8d99b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218972. .IP \(bu 2
  218973. b3b28cb760 Might be a good idea to be able to download the software we make (\fI\%#35513\fP)
  218974. .IP \(bu 2
  218975. 9f87081cef Merge pull request \fI\%#35302\fP from Ch3LL/add_job_cache_test
  218976. .INDENT 2.0
  218977. .IP \(bu 2
  218978. ccb2a5cadf remove unused imports
  218979. .IP \(bu 2
  218980. 512ae81dfd remove TMP and add integration.TMP
  218981. .IP \(bu 2
  218982. c9b7c3cf80 need to add returners option in other places
  218983. .IP \(bu 2
  218984. 7316df7a02 fix pylint
  218985. .IP \(bu 2
  218986. 50a4f0fe6a fix comment
  218987. .IP \(bu 2
  218988. 6837acf742 add job cache integration tests
  218989. .UNINDENT
  218990. .IP \(bu 2
  218991. 1c82c6bee5 Merge pull request \fI\%#35512\fP from cachedout/fixup_35419
  218992. .INDENT 2.0
  218993. .IP \(bu 2
  218994. 253662541a Fix import
  218995. .IP \(bu 2
  218996. f16a30786b Fixes consul.agent_service_register which was broken for registering service checks.
  218997. .UNINDENT
  218998. .IP \(bu 2
  218999. e1a373fa4c Merge pull request \fI\%#35497\fP from deepakhj/2015.8
  219000. .INDENT 2.0
  219001. .IP \(bu 2
  219002. 685db4ab88 Fix spacing
  219003. .UNINDENT
  219004. .IP \(bu 2
  219005. 4048255ed6 Merge pull request \fI\%#35508\fP from terminalmage/update\-docstring
  219006. .INDENT 2.0
  219007. .IP \(bu 2
  219008. 67c945fce0 Add Carbon to versionadded for git.diff
  219009. .UNINDENT
  219010. .UNINDENT
  219011. .IP \(bu 2
  219012. \fBPR\fP \fI\%#35516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34441\fP to 2016.3
  219013. @ \fI2016\-08\-17 15:47:23 UTC\fP
  219014. .INDENT 2.0
  219015. .IP \(bu 2
  219016. \fBPR\fP \fI\%#34441\fP: (\fI\%markuskramerIgitt\fP) Copy and delete silently, do not list each file (refs: \fI\%#35516\fP)
  219017. .IP \(bu 2
  219018. e86a39a115 Merge pull request \fI\%#35516\fP from rallytime/bp\-34441
  219019. .IP \(bu 2
  219020. e47c661cb0 Copy and delete silently, do not list each file
  219021. .IP \(bu 2
  219022. \fBPR\fP \fI\%saltstack/salt#34502\fP: (\fI\%markuskramerIgitt\fP) Windows installer build scripts will exit on error (refs: \fI\%#35517\fP)
  219023. .UNINDENT
  219024. .IP \(bu 2
  219025. \fBPR\fP \fI\%#35517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34502\fP to 2016.3
  219026. @ \fI2016\-08\-17 15:47:10 UTC\fP
  219027. .INDENT 2.0
  219028. .IP \(bu 2
  219029. \fBPR\fP \fI\%#34502\fP: (\fI\%markuskramerIgitt\fP) Windows installer build scripts will exit on error (refs: \fI\%#35517\fP)
  219030. .IP \(bu 2
  219031. 45080d9860 Merge pull request \fI\%#35517\fP from rallytime/bp\-34502
  219032. .IP \(bu 2
  219033. 32da48df08 setup.py will not print each individual file
  219034. .IP \(bu 2
  219035. 698a076a39 Completely remove Python and verify
  219036. .IP \(bu 2
  219037. 7406bd22a6 Errors will stop the scripts
  219038. .UNINDENT
  219039. .IP \(bu 2
  219040. \fBPR\fP \fI\%#35429\fP: (\fI\%tankywoo\fP) Fix iptables target options with no arguments
  219041. @ \fI2016\-08\-17 10:05:17 UTC\fP
  219042. .INDENT 2.0
  219043. .IP \(bu 2
  219044. c1deb945d7 Merge pull request \fI\%#35429\fP from tankywoo/fix\-iptables\-target\-options
  219045. .IP \(bu 2
  219046. 914eb60d51 Fix iptables target options with no arguments
  219047. .UNINDENT
  219048. .IP \(bu 2
  219049. \fBISSUE\fP \fI\%#35458\fP: (\fI\%iggy\fP) SALT.STATES.APACHE_MODULE needs version annotations (refs: \fI\%#35495\fP)
  219050. .IP \(bu 2
  219051. \fBPR\fP \fI\%#35495\fP: (\fI\%rallytime\fP) Use correct deprecated notation instead of a warning for apache_module.enable state function.
  219052. @ \fI2016\-08\-17 09:36:40 UTC\fP
  219053. .INDENT 2.0
  219054. .IP \(bu 2
  219055. 678759ba6c Merge pull request \fI\%#35495\fP from rallytime/fix\-35458
  219056. .IP \(bu 2
  219057. 9bae3d09a6 Use correct deprecated notation instead of a warning.
  219058. .UNINDENT
  219059. .IP \(bu 2
  219060. \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_)
  219061. .INDENT 2.0
  219062. .IP \(bu 2
  219063. \fBPR\fP \fI\%saltstack/salt#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35406\fP)
  219064. .UNINDENT
  219065. .IP \(bu 2
  219066. \fBPR\fP \fI\%#35498\fP: (\fI\%rallytime\fP) Add supported templates list to all template doc references in file state
  219067. @ \fI2016\-08\-17 09:33:36 UTC\fP
  219068. .INDENT 2.0
  219069. .IP \(bu 2
  219070. \fBPR\fP \fI\%#35406\fP: (\fI\%rallytime\fP) Provide links to the renderers in the template docs (refs: \fI\%#35498\fP)
  219071. .IP \(bu 2
  219072. \fBPR\fP \fI\%#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35498\fP)
  219073. .IP \(bu 2
  219074. 5bd44b10a7 Merge pull request \fI\%#35498\fP from rallytime/file\-state\-docs
  219075. .IP \(bu 2
  219076. 6190b2d738 Add supported templates list to all template doc references in file state
  219077. .UNINDENT
  219078. .IP \(bu 2
  219079. \fBPR\fP \fI\%#35487\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219080. @ \fI2016\-08\-16 18:36:21 UTC\fP
  219081. .INDENT 2.0
  219082. .IP \(bu 2
  219083. 6df4648765 Merge pull request \fI\%#35487\fP from rallytime/merge\-2016.3
  219084. .IP \(bu 2
  219085. c6c82be1de Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219086. .IP \(bu 2
  219087. bfe7107a87 Update bootstrap script to latest stable (2016.08.16) (\fI\%#35486\fP)
  219088. .IP \(bu 2
  219089. 240fc12863 Merge pull request \fI\%#35413\fP from cachedout/issue_35296
  219090. .INDENT 2.0
  219091. .IP \(bu 2
  219092. fb8a12d677 Fix silly error
  219093. .IP \(bu 2
  219094. 3646cf1afa Additional checks on master and integration test
  219095. .IP \(bu 2
  219096. 09efde7634 Splat the list into os.path.join
  219097. .IP \(bu 2
  219098. fc0d5878bc Set file_recv on test master
  219099. .IP \(bu 2
  219100. 81c4d136c5 Transition file push paths to lists
  219101. .UNINDENT
  219102. .IP \(bu 2
  219103. c3319b2a8b Merge pull request \fI\%#35476\fP from cachedout/issue_35380
  219104. .INDENT 2.0
  219105. .IP \(bu 2
  219106. c05fcf33d1 Fixup SSH bug where sudo without sudo user would break
  219107. .UNINDENT
  219108. .IP \(bu 2
  219109. 004778c966 Merge pull request \fI\%#35471\fP from terminalmage/issue34479
  219110. .INDENT 2.0
  219111. .IP \(bu 2
  219112. e243c63e43 win_pkg: Fix traceback when package is not installed
  219113. .UNINDENT
  219114. .IP \(bu 2
  219115. 5c9428c32d Merge pull request \fI\%#35448\fP from isbm/isbm\-zypper\-106\-fix
  219116. .INDENT 2.0
  219117. .IP \(bu 2
  219118. dd82e6a848 Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on unavailable repos
  219119. .UNINDENT
  219120. .IP \(bu 2
  219121. 1473474b04 Merge pull request \fI\%#35451\fP from isbm/isbm\-zypper\-mod_repo\-unchanged
  219122. .INDENT 2.0
  219123. .IP \(bu 2
  219124. 8790197d86 Fix Unit test for suppressing the exception removal on non\-modified repos
  219125. .IP \(bu 2
  219126. 3f00c6997a Remove zypper\(aqs raise exception if mod_repo has no arguments and/or no changes
  219127. .UNINDENT
  219128. .IP \(bu 2
  219129. a8c4f17f50 Merge pull request \fI\%#35453\fP from theothergraham/fix_CacheDisk
  219130. .INDENT 2.0
  219131. .IP \(bu 2
  219132. ae5b233d51 fixes \fI\%#34279\fP
  219133. .UNINDENT
  219134. .IP \(bu 2
  219135. d8c35b5260 Merge pull request \fI\%#35459\fP from thatch45/shim_fix
  219136. .INDENT 2.0
  219137. .IP \(bu 2
  219138. 10037b00cb Some environments refuse to return the command output
  219139. .UNINDENT
  219140. .IP \(bu 2
  219141. 38b60a32e5 [2015.8] Update bootstrap script to latest stable (2016.08.15) (\fI\%#35460\fP)
  219142. .UNINDENT
  219143. .IP \(bu 2
  219144. \fBISSUE\fP \fI\%#34161\fP: (\fI\%bobrik\fP) Salt command can hang forever because of one broken minion (refs: \fI\%#35446\fP)
  219145. .INDENT 2.0
  219146. .IP \(bu 2
  219147. \fBPR\fP \fI\%#35446\fP: (\fI\%cachedout\fP) Make salt\-client aware of edge\-case where saltutil might be broken
  219148. .UNINDENT
  219149. .IP \(bu 2
  219150. \fBISSUE\fP \fI\%#35422\fP: (\fI\%ViaviSolutions\fP) aptpkg.py: install_recommends: True does not force "\-\-install\-recommends" (refs: \fI\%#35449\fP)
  219151. .IP \(bu 2
  219152. \fBPR\fP \fI\%#35449\fP: (\fI\%dkruger\fP) aptpkg will specify \-\-install\-recommends if enabled by the SLS
  219153. @ \fI2016\-08\-16 01:38:56 UTC\fP
  219154. .INDENT 2.0
  219155. .IP \(bu 2
  219156. f90ecbb15e Merge pull request \fI\%#35449\fP from dkruger/fix\-35422
  219157. .IP \(bu 2
  219158. f54bf445b5 aptpkg will specify \-\-install\-recommends if enabled by the SLS
  219159. .UNINDENT
  219160. .IP \(bu 2
  219161. \fBISSUE\fP \fI\%#33367\fP: (\fI\%supertom\fP) [salt\-cloud] libcloud >= 1.0.0 incompatible regarding node_state (refs: \fI\%#33518\fP)
  219162. .IP \(bu 2
  219163. \fBPR\fP \fI\%#35467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33518\fP to 2016.3
  219164. @ \fI2016\-08\-16 01:17:01 UTC\fP
  219165. .INDENT 2.0
  219166. .IP \(bu 2
  219167. \fBPR\fP \fI\%#35235\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33518\fP to 2016.3 (refs: \fI\%#35467\fP)
  219168. .IP \(bu 2
  219169. \fBPR\fP \fI\%#33518\fP: (\fI\%tonybaloney\fP) Fix libcloud bug \fI\%#33367\fP (refs: \fI\%#35235\fP, \fI\%#35467\fP)
  219170. .IP \(bu 2
  219171. d2dd78e25b Merge pull request \fI\%#35467\fP from rallytime/bp\-33518
  219172. .IP \(bu 2
  219173. e427815caf fix clrf
  219174. .IP \(bu 2
  219175. be41a400fa commit fix
  219176. .IP \(bu 2
  219177. 06530b5461 add a test to check existing functionality is broken
  219178. .IP \(bu 2
  219179. \fBPR\fP \fI\%#35461\fP: (\fI\%rallytime\fP) [2016.3] Update bootstrap script to latest stable (2016.08.15)
  219180. .UNINDENT
  219181. .IP \(bu 2
  219182. \fBPR\fP \fI\%#35456\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219183. @ \fI2016\-08\-15 19:16:23 UTC\fP
  219184. .INDENT 2.0
  219185. .IP \(bu 2
  219186. 9b2c075611 Merge pull request \fI\%#35456\fP from rallytime/merge\-2016.3
  219187. .IP \(bu 2
  219188. 6a86a12294 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219189. .IP \(bu 2
  219190. d75005c519 Fix cp.push_dir pushing empty dirs (\fI\%#35442\fP)
  219191. .IP \(bu 2
  219192. 09925ba353 Minor doc fixup (\fI\%#35436\fP)
  219193. .IP \(bu 2
  219194. a0b128a85a Merge pull request \fI\%#35132\fP from sjorge/2015.8\-35121
  219195. .INDENT 2.0
  219196. .IP \(bu 2
  219197. 5cb38c8ae0 switch to fpread().splitlines(), as per @lorengordon suggestion
  219198. .IP \(bu 2
  219199. 634f1dded5 fixes \fI\%#35121\fP, causing lots of mayham (onchange) with 2016.3.2 for me
  219200. .UNINDENT
  219201. .IP \(bu 2
  219202. \fBPR\fP \fI\%saltstack/salt#35308\fP: (\fI\%farcaller\fP) Actually fixed dockerng.list_tags (refs: \fI\%#35447\fP)
  219203. .IP \(bu 2
  219204. \fBPR\fP \fI\%saltstack/salt#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags (refs: \fI\%#35447\fP)
  219205. .IP \(bu 2
  219206. \fBPR\fP \fI\%#35447\fP: (\fI\%ticosax\fP) [dockerng] RepoTags can be also be None with docker 1.12
  219207. .IP \(bu 2
  219208. \fBPR\fP \fI\%#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags (refs: #\(gasaltstack/salt#35308\(ga_)
  219209. .UNINDENT
  219210. .IP \(bu 2
  219211. \fBISSUE\fP \fI\%saltstack/salt#35403\fP: (\fI\%randomed\fP) Setting ext_job_cache breaks on salt\-master (refs: \fI\%#35427\fP)
  219212. .INDENT 2.0
  219213. .IP \(bu 2
  219214. \fBPR\fP \fI\%#35427\fP: (\fI\%cachedout\fP) Correct errant call to argspec from master. Fix ext_job_cache.
  219215. .UNINDENT
  219216. .IP \(bu 2
  219217. \fBISSUE\fP \fI\%#35423\fP: (\fI\%Ch3LL\fP) Stacktrace when running state.sls against an sls does not exist (refs: \fI\%#35428\fP)
  219218. .INDENT 2.0
  219219. .IP \(bu 2
  219220. \fBPR\fP \fI\%#35428\fP: (\fI\%cachedout\fP) Resolve stacktrace logged by highstate outputter if sls cannot be found
  219221. .UNINDENT
  219222. .IP \(bu 2
  219223. \fBPR\fP \fI\%#35412\fP: (\fI\%s0undt3ch\fP) Only allow one sync read to happen at a time.
  219224. @ \fI2016\-08\-12 23:57:29 UTC\fP
  219225. .INDENT 2.0
  219226. .IP \(bu 2
  219227. 607169a01b Merge pull request \fI\%#35412\fP from s0undt3ch/2016.3
  219228. .IP \(bu 2
  219229. f54b3cc514 Only allow one sync read to happen at a time.
  219230. .UNINDENT
  219231. .IP \(bu 2
  219232. \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_)
  219233. .INDENT 2.0
  219234. .IP \(bu 2
  219235. \fBPR\fP \fI\%saltstack/salt#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35406\fP)
  219236. .IP \(bu 2
  219237. \fBPR\fP \fI\%#35406\fP: (\fI\%rallytime\fP) Provide links to the renderers in the template docs (refs: \fI\%#35498\fP)
  219238. .UNINDENT
  219239. .IP \(bu 2
  219240. \fBPR\fP \fI\%#35393\fP: (\fI\%deniszh\fP) No need to run ddns update every time
  219241. @ \fI2016\-08\-12 12:40:36 UTC\fP
  219242. .INDENT 2.0
  219243. .IP \(bu 2
  219244. b3e9e98b40 Merge pull request \fI\%#35393\fP from deniszh/2016.3_fix35350
  219245. .IP \(bu 2
  219246. 6f2f080f4a No need to run dns update every time
  219247. .UNINDENT
  219248. .IP \(bu 2
  219249. \fBPR\fP \fI\%#35407\fP: (\fI\%hu\-dabao\fP) [Fix\-35094] None will not be added to grains which generate [none]
  219250. @ \fI2016\-08\-12 12:34:05 UTC\fP
  219251. .INDENT 2.0
  219252. .IP \(bu 2
  219253. a5fe05b7f9 Merge pull request \fI\%#35407\fP from hu\-dabao/fix\-35094
  219254. .IP \(bu 2
  219255. a23108f795 None will not be added to grains which generate [none]
  219256. .UNINDENT
  219257. .IP \(bu 2
  219258. \fBPR\fP \fI\%#35411\fP: (\fI\%eliasp\fP) modules.event.send(): Prevent backtrace for masterless Minions
  219259. @ \fI2016\-08\-12 12:29:02 UTC\fP
  219260. .INDENT 2.0
  219261. .IP \(bu 2
  219262. 4dc776ffbf Merge pull request \fI\%#35411\fP from eliasp/2016.3\-modules.event\-handle\-file_client\-opt
  219263. .IP \(bu 2
  219264. 8d7244bdd9 modules.event.send(): Also check for \fIfile_client\fP and \fIuse_master_when_local\fP opts
  219265. .UNINDENT
  219266. .IP \(bu 2
  219267. \fBPR\fP \fI\%#35395\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219268. @ \fI2016\-08\-11 20:59:37 UTC\fP
  219269. .INDENT 2.0
  219270. .IP \(bu 2
  219271. c032506e6b Merge pull request \fI\%#35395\fP from rallytime/merge\-2016.3
  219272. .IP \(bu 2
  219273. 0d1aa630f1 Lint fix
  219274. .IP \(bu 2
  219275. cf038ee3fe Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219276. .IP \(bu 2
  219277. d9c20c0456 Update freebsd.rst (\fI\%#35394\fP)
  219278. .IP \(bu 2
  219279. a375dd7e1f Clean up open filehandles (\fI\%#35359\fP)
  219280. .IP \(bu 2
  219281. 9ea7a34c30 Merge pull request \fI\%#35339\fP from isbm/isbm\-2015.8\-minion\-importerror\-fix
  219282. .INDENT 2.0
  219283. .IP \(bu 2
  219284. 12af60b7be Fix continuous minion restart if a dependency wasn\(aqt installed
  219285. .UNINDENT
  219286. .IP \(bu 2
  219287. fd9b05ace4 Merge pull request \fI\%#35357\fP from twangboy/file.recurse.clean.2015.8
  219288. .INDENT 2.0
  219289. .IP \(bu 2
  219290. d328ec0157 Fix file.recurse with clean: True
  219291. .UNINDENT
  219292. .UNINDENT
  219293. .IP \(bu 2
  219294. \fBISSUE\fP \fI\%#35226\fP: (\fI\%mathieubouchard\fP) Do not throw an exception when an invalid requisite is set (refs: \fI\%#35373\fP)
  219295. .INDENT 2.0
  219296. .IP \(bu 2
  219297. \fBPR\fP \fI\%#35373\fP: (\fI\%cachedout\fP) Raise SaltRenderError on bad requisite
  219298. .UNINDENT
  219299. .IP \(bu 2
  219300. \fBPR\fP \fI\%#35352\fP: (\fI\%twangboy\fP) Fix file.recurse with clean: True on Windows (2016.3)
  219301. @ \fI2016\-08\-11 00:46:11 UTC\fP
  219302. .INDENT 2.0
  219303. .IP \(bu 2
  219304. 72f3548671 Merge pull request \fI\%#35352\fP from twangboy/file.recurse.clean
  219305. .IP \(bu 2
  219306. ecad616d08 Fix file.recurse with clean: True
  219307. .UNINDENT
  219308. .IP \(bu 2
  219309. \fBPR\fP \fI\%#35356\fP: (\fI\%jfindlay\fP) document log levels and warn on all logging below info
  219310. @ \fI2016\-08\-11 00:45:56 UTC\fP
  219311. .INDENT 2.0
  219312. .IP \(bu 2
  219313. 0fcfc70cc8 Merge pull request \fI\%#35356\fP from jfindlay/log_levels
  219314. .IP \(bu 2
  219315. 2fc3a55338 utils.verify.verify_log: warn at all levels less than info
  219316. .IP \(bu 2
  219317. 72a3f18a2e log.setup: minor optimization
  219318. .IP \(bu 2
  219319. 66332510c6 doc.ref.configuration.logging: document log levels
  219320. .IP \(bu 2
  219321. 93616eff3e doc.ref.configuration.logging: fix formatting
  219322. .IP \(bu 2
  219323. 472a2d31de doc.ref.configuration.logging: cleanup formatting
  219324. .UNINDENT
  219325. .IP \(bu 2
  219326. \fBPR\fP \fI\%#35358\fP: (\fI\%twangboy\fP) Update libsodium deps
  219327. @ \fI2016\-08\-11 00:36:30 UTC\fP
  219328. .INDENT 2.0
  219329. .IP \(bu 2
  219330. 2f7be03053 Merge pull request \fI\%#35358\fP from twangboy/update_libsodium_deps
  219331. .IP \(bu 2
  219332. d120a8906f Add vcredist 14 dlls
  219333. .UNINDENT
  219334. .IP \(bu 2
  219335. \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_)
  219336. .IP \(bu 2
  219337. \fBPR\fP \fI\%#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35498\fP)
  219338. @ \fI2016\-08\-11 00:35:20 UTC\fP
  219339. .INDENT 2.0
  219340. .IP \(bu 2
  219341. f9e03b9c59 Merge pull request \fI\%#35360\fP from rallytime/fix\-35336
  219342. .IP \(bu 2
  219343. 30badb5402 Add all template registery templates to file.managed docs
  219344. .UNINDENT
  219345. .IP \(bu 2
  219346. \fBISSUE\fP \fI\%#24745\fP: (\fI\%The\-Loeki\fP) RFC: disk versus blockdev (refs: \fI\%#24893\fP)
  219347. .INDENT 2.0
  219348. .IP \(bu 2
  219349. \fBPR\fP \fI\%saltstack/salt#25267\fP: (\fI\%jfindlay\fP) Disk module improvements (refs: \fI\%#35361\fP)
  219350. .UNINDENT
  219351. .IP \(bu 2
  219352. \fBPR\fP \fI\%#35362\fP: (\fI\%rallytime\fP) Correct deprecation version tags
  219353. @ \fI2016\-08\-11 00:34:38 UTC\fP
  219354. .INDENT 2.0
  219355. .IP \(bu 2
  219356. \fBPR\fP \fI\%#35361\fP: (\fI\%rallytime\fP) Blockdev deprecations (refs: \fI\%#35362\fP)
  219357. .IP \(bu 2
  219358. \fBPR\fP \fI\%#25267\fP: (\fI\%jfindlay\fP) Disk module improvements (refs: \fI\%#35362\fP)
  219359. .IP \(bu 2
  219360. \fBPR\fP \fI\%#24893\fP: (\fI\%The\-Loeki\fP) Contribution: Disk module improvements (refs: #\(gasaltstack/salt\(ga#25267\(ga_\(ga_, \fI\%#25267\fP)
  219361. .IP \(bu 2
  219362. 3c628d3cbc Merge pull request \fI\%#35362\fP from rallytime/correct\-deprecated\-tag
  219363. .IP \(bu 2
  219364. 507827a014 Correct deprecation version tags
  219365. .UNINDENT
  219366. .IP \(bu 2
  219367. \fBPR\fP \fI\%#35347\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219368. @ \fI2016\-08\-10 20:07:42 UTC\fP
  219369. .INDENT 2.0
  219370. .IP \(bu 2
  219371. 87e29188c0 Merge pull request \fI\%#35347\fP from rallytime/merge\-2016.3
  219372. .IP \(bu 2
  219373. a651962e95 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219374. .IP \(bu 2
  219375. 4618b433e9 Merge pull request \fI\%#35323\fP from thatch45/ssh_crazy
  219376. .INDENT 2.0
  219377. .IP \(bu 2
  219378. 8a5b47b5d7 Collect all error data from the wfuncs call
  219379. .IP \(bu 2
  219380. 11864c31b7 supress a stack trace to show clean ssh error
  219381. .IP \(bu 2
  219382. 9fbfa282fa wow this solves an issue!
  219383. .UNINDENT
  219384. .IP \(bu 2
  219385. cfae862972 Merge pull request \fI\%#35325\fP from kev009/fbsd\-netstat\-route
  219386. .INDENT 2.0
  219387. .IP \(bu 2
  219388. 0d49dd3c29 Fix fbsd netstat route on fbsd 10+
  219389. .UNINDENT
  219390. .IP \(bu 2
  219391. 244c3bd495 Pass port to ssh.check_known_host, closes \fI\%#35264\fP (\fI\%#35301\fP)
  219392. .IP \(bu 2
  219393. 243909f39d file.recurse: Do not convert octal mode string to int (\fI\%#35309\fP)
  219394. .IP \(bu 2
  219395. \fBPR\fP \fI\%#35334\fP: (\fI\%cachedout\fP) Restore random_master functionality
  219396. .UNINDENT
  219397. .IP \(bu 2
  219398. \fBPR\fP \fI\%#35331\fP: (\fI\%hu\-dabao\fP) fix 35165, salt\-run jobs.exit_success jid is broken
  219399. @ \fI2016\-08\-10 11:50:10 UTC\fP
  219400. .INDENT 2.0
  219401. .IP \(bu 2
  219402. 78dfd18ec6 Merge pull request \fI\%#35331\fP from hu\-dabao/fix\-35165
  219403. .IP \(bu 2
  219404. 4dcce18d01 fix 35165, salt\-run jobs.exit_success jid is broken
  219405. .UNINDENT
  219406. .IP \(bu 2
  219407. \fBPR\fP \fI\%#35318\fP: (\fI\%rallytime\fP) Remove legacy compat docs in mysql pillar since the code was removed already
  219408. @ \fI2016\-08\-10 11:34:48 UTC\fP
  219409. .INDENT 2.0
  219410. .IP \(bu 2
  219411. \fBPR\fP \fI\%#30913\fP: (\fI\%justinta\fP) Deprecated code removed. (refs: \fI\%#35318\fP)
  219412. .IP \(bu 2
  219413. fcca0b9333 Merge pull request \fI\%#35318\fP from rallytime/remove\-deprecation\-docs
  219414. .IP \(bu 2
  219415. 75f205e485 Remove legacy compat docs in mysql pillar since the code was removed already
  219416. .UNINDENT
  219417. .IP \(bu 2
  219418. \fBPR\fP \fI\%#35329\fP: (\fI\%hu\-dabao\fP) sys.doc will skip all not connected minions
  219419. @ \fI2016\-08\-10 11:18:22 UTC\fP
  219420. .INDENT 2.0
  219421. .IP \(bu 2
  219422. 3446dc9ec6 Merge pull request \fI\%#35329\fP from hu\-dabao/fix\-tiny\-salt\-cli
  219423. .IP \(bu 2
  219424. 4b806a70ea sys.doc will skip all not connected minions
  219425. .UNINDENT
  219426. .IP \(bu 2
  219427. \fBPR\fP \fI\%#35306\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219428. @ \fI2016\-08\-09 18:50:44 UTC\fP
  219429. .INDENT 2.0
  219430. .IP \(bu 2
  219431. 31f7d307a7 Merge pull request \fI\%#35306\fP from rallytime/merge\-2016.3
  219432. .IP \(bu 2
  219433. 2d3eadfe49 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219434. .IP \(bu 2
  219435. 2efc1b333b Merge pull request \fI\%#35290\fP from terminalmage/issue35051
  219436. .INDENT 2.0
  219437. .IP \(bu 2
  219438. d621aa7b61 Update runner/wheel unit tests to reflect new key in ret dict
  219439. .IP \(bu 2
  219440. 90c12a9c7b Add __orchestration__ key to orch returns for runner/wheel funcs
  219441. .IP \(bu 2
  219442. 7b8c3b86e7 Suppress error about invalid changes data for orchestration jobs
  219443. .IP \(bu 2
  219444. 54a1704d6c Suppress event for wheel/runner funcs executed from orchestration
  219445. .IP \(bu 2
  219446. f409f62bf2 Accept print_event option in WheelClient.cmd()
  219447. .IP \(bu 2
  219448. b42b25ccce Add cmd func for RunnerClient
  219449. .IP \(bu 2
  219450. 480065fe00 Add print_event option to client mixins
  219451. .UNINDENT
  219452. .UNINDENT
  219453. .IP \(bu 2
  219454. \fBPR\fP \fI\%#35229\fP: (\fI\%lubyou\fP) Ignore import error for pwd module in mac_shadow
  219455. @ \fI2016\-08\-09 15:48:16 UTC\fP
  219456. .INDENT 2.0
  219457. .IP \(bu 2
  219458. 94529d0578 Merge pull request \fI\%#35229\fP from lubyou/fix\-mac_shadow
  219459. .IP \(bu 2
  219460. b45039c240 Do not blindly ignore import failures
  219461. .IP \(bu 2
  219462. c1d5670b79 Ignore import error for pwd module
  219463. .UNINDENT
  219464. .IP \(bu 2
  219465. \fBPR\fP \fI\%#35227\fP: (\fI\%isbm\fP) Isbm osfinger ubuntu fix
  219466. @ \fI2016\-08\-09 15:38:31 UTC\fP
  219467. .INDENT 2.0
  219468. .IP \(bu 2
  219469. ce7aeb6ca4 Merge pull request \fI\%#35227\fP from isbm/isbm\-osfinger\-ubuntu\-fix
  219470. .IP \(bu 2
  219471. fe5da97283 Lintfix: E8303
  219472. .IP \(bu 2
  219473. 6eea62d4ec Add a deprecation warning
  219474. .IP \(bu 2
  219475. 4dc45f2509 Add grains unit test for Ubuntu systems
  219476. .IP \(bu 2
  219477. 3904e4b81c Bugfix: Ubuntu osfinger should contain also minor version
  219478. .IP \(bu 2
  219479. a69f97f9ad Bugfix: use oscodename if lsb_distrib_codename key exists empty.
  219480. .UNINDENT
  219481. .IP \(bu 2
  219482. \fBPR\fP \fI\%#35286\fP: (\fI\%hu\-dabao\fP) fix 34425, a bug that sys.doc cannot output format
  219483. @ \fI2016\-08\-09 09:50:12 UTC\fP
  219484. .INDENT 2.0
  219485. .IP \(bu 2
  219486. 47e328f755 Merge pull request \fI\%#35286\fP from hu\-dabao/fix\-34425
  219487. .IP \(bu 2
  219488. 86fb359f58 fix 34425, a bug that sys.doc cannot output format
  219489. .UNINDENT
  219490. .IP \(bu 2
  219491. \fBISSUE\fP \fI\%#27294\fP: (\fI\%stenstad\fP) salt\-cloud should support Openstack Identitiy v3 for authentication (refs: \fI\%#35213\fP)
  219492. .IP \(bu 2
  219493. \fBPR\fP \fI\%#35275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35213\fP to 2016.3
  219494. @ \fI2016\-08\-09 00:02:43 UTC\fP
  219495. .INDENT 2.0
  219496. .IP \(bu 2
  219497. \fBPR\fP \fI\%#35213\fP: (\fI\%gtmanfred\fP) add identity v3 support to openstack driver (refs: \fI\%#35275\fP)
  219498. .IP \(bu 2
  219499. d79cb1b4ec Merge pull request \fI\%#35275\fP from rallytime/bp\-35213
  219500. .IP \(bu 2
  219501. 9b9fc508cc add identity v3 support to openstack driver
  219502. .IP \(bu 2
  219503. \fBPR\fP \fI\%#35278\fP: (\fI\%dmurphy18\fP) Increase timeout for siging to 10 seconds when signing rpm packages
  219504. .UNINDENT
  219505. .IP \(bu 2
  219506. \fBPR\fP \fI\%#35276\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219507. @ \fI2016\-08\-08 18:20:29 UTC\fP
  219508. .INDENT 2.0
  219509. .IP \(bu 2
  219510. 959a00e4b7 Merge pull request \fI\%#35276\fP from rallytime/merge\-2016.3
  219511. .IP \(bu 2
  219512. 2b4c156df1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219513. .IP \(bu 2
  219514. f8158124d5 Merge pull request \fI\%#35211\fP from cachedout/issue_31074
  219515. .INDENT 2.0
  219516. .IP \(bu 2
  219517. 6f53232e6d Better error handling and a workaround for group mismatch.
  219518. .IP \(bu 2
  219519. 5b56a4acf7 Docs
  219520. .IP \(bu 2
  219521. ae04e7aaeb Initial POC
  219522. .UNINDENT
  219523. .IP \(bu 2
  219524. 3e4eb13daa Merge pull request \fI\%#35271\fP from bobrik/default\-output\-profile
  219525. .INDENT 2.0
  219526. .IP \(bu 2
  219527. 6cdee21036 Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  219528. .UNINDENT
  219529. .IP \(bu 2
  219530. 673e1aa1aa Merge pull request \fI\%#35233\fP from terminalmage/issue32719
  219531. .INDENT 2.0
  219532. .IP \(bu 2
  219533. 730a077041 Do not attempt to get fqdn_ip{4,6} grains when ipv{4,6} grains are empty
  219534. .UNINDENT
  219535. .IP \(bu 2
  219536. cdf3c0fe73 Merge pull request \fI\%#35202\fP from multani/fix/test\-doc
  219537. .INDENT 2.0
  219538. .IP \(bu 2
  219539. 1642dba5d1 doc: fix broken links in the test documentation page
  219540. .UNINDENT
  219541. .IP \(bu 2
  219542. e1331cd2a3 Merge pull request \fI\%#35236\fP from rallytime/bp\-35119
  219543. .INDENT 2.0
  219544. .IP \(bu 2
  219545. 9ade78de7b Revise unnecessary code duplication
  219546. .IP \(bu 2
  219547. 7c15f5b20a Fix formatting
  219548. .IP \(bu 2
  219549. 64f93f8938 Assume two EVRs are equal if E and V are equal but one R is missing.
  219550. .UNINDENT
  219551. .IP \(bu 2
  219552. 4f2b8aa5b6 Merge pull request \fI\%#35240\fP from derekmaciel/bp\-35225
  219553. .INDENT 2.0
  219554. .IP \(bu 2
  219555. 9ed47f713a Add missing documentation for pkg.installed
  219556. .UNINDENT
  219557. .IP \(bu 2
  219558. 4bcfaa97d0 Merge pull request \fI\%#35241\fP from terminalmage/gitfs\-fixes
  219559. .INDENT 2.0
  219560. .IP \(bu 2
  219561. e05648cc2d Break from loop when file is found
  219562. .IP \(bu 2
  219563. 6764a88601 Ensure that failed recursion results in no blob object being returned
  219564. .UNINDENT
  219565. .IP \(bu 2
  219566. f6d7360e0b Merge pull request \fI\%#35245\fP from rallytime/bp\-35039
  219567. .INDENT 2.0
  219568. .IP \(bu 2
  219569. 51ab9cd6d4 Add saltenv support to module.run
  219570. .UNINDENT
  219571. .IP \(bu 2
  219572. d65a5c7134 Merge pull request \fI\%#35249\fP from terminalmage/issue35214
  219573. .INDENT 2.0
  219574. .IP \(bu 2
  219575. bcd5129e9f Fix regression in git.latest when update is fast\-forward
  219576. .IP \(bu 2
  219577. e2e8bbbfde Add integration test for \fI\%#35214\fP
  219578. .UNINDENT
  219579. .UNINDENT
  219580. .IP \(bu 2
  219581. \fBISSUE\fP \fI\%#35003\fP: (\fI\%edgan\fP) rabbitmq_user.present broken on Ubuntu 16.04 Xenial (refs: \fI\%#35232\fP)
  219582. .IP \(bu 2
  219583. \fBISSUE\fP \fI\%#34481\fP: (\fI\%L4rS6\fP) rabbitmq_user.present with password keyword throws exception (refs: \fI\%#35232\fP)
  219584. .IP \(bu 2
  219585. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#35232\fP)
  219586. .IP \(bu 2
  219587. \fBPR\fP \fI\%#35274\fP: (\fI\%rallytime\fP) Lint fixes for 2016.3 branch
  219588. @ \fI2016\-08\-08 16:45:41 UTC\fP
  219589. .INDENT 2.0
  219590. .IP \(bu 2
  219591. \fBPR\fP \fI\%#35232\fP: (\fI\%theredcat\fP) fix rabbitmq version detection using a package\-agnostic version (refs: \fI\%#35274\fP)
  219592. .IP \(bu 2
  219593. 157939d5b0 Merge pull request \fI\%#35274\fP from rallytime/lint\-2016.3
  219594. .IP \(bu 2
  219595. 0d3d711e9c Lint fixes for 2016.3 branch
  219596. .UNINDENT
  219597. .IP \(bu 2
  219598. \fBPR\fP \fI\%#35269\fP: (\fI\%meaksh\fP) Checksum validation for zypper pkg.download in 2016.3 and develop
  219599. @ \fI2016\-08\-08 14:45:16 UTC\fP
  219600. .INDENT 2.0
  219601. .IP \(bu 2
  219602. c58bb18624 Merge pull request \fI\%#35269\fP from meaksh/checksum\-during\-zypper\-pkg\-download\-for\-2016.3\-and\-develop
  219603. .IP \(bu 2
  219604. 18700e821e unit tests for rpm.checksum() and zypper.download()
  219605. .IP \(bu 2
  219606. c3f29ab205 checksum validation during zypper pkg.download
  219607. .UNINDENT
  219608. .IP \(bu 2
  219609. \fBPR\fP \fI\%#35197\fP: (\fI\%vutny\fP) Make \fIpkgbuild.repo\fP state recognize \fIcreaterepo\fP command return code
  219610. @ \fI2016\-08\-06 23:20:47 UTC\fP
  219611. .INDENT 2.0
  219612. .IP \(bu 2
  219613. d3f2ce2a1a Merge pull request \fI\%#35197\fP from vutny/pkgbuild\-repo\-failure\-detection
  219614. .IP \(bu 2
  219615. a5f6630e97 Make \fIpkgbuild.repo\fP state recognize \fIcreaterepo\fP command return code
  219616. .UNINDENT
  219617. .IP \(bu 2
  219618. \fBISSUE\fP \fI\%#34446\fP: (\fI\%mirceaulinic\fP) Proxy minions & straight minion using the same caching directory (refs: \fI\%#35178\fP)
  219619. .IP \(bu 2
  219620. \fBPR\fP \fI\%#35178\fP: (\fI\%cro\fP) Add append_minionid_config_dirs option
  219621. @ \fI2016\-08\-06 22:21:14 UTC\fP
  219622. .INDENT 2.0
  219623. .IP \(bu 2
  219624. f004b831d2 Merge pull request \fI\%#35178\fP from cro/proxy_cache_fix2
  219625. .IP \(bu 2
  219626. 84cc7d67c0 Add documentation for append_minionid_config_dirs.
  219627. .IP \(bu 2
  219628. f0961e741e Merge with 2016.3
  219629. .UNINDENT
  219630. .IP \(bu 2
  219631. \fBISSUE\fP \fI\%#35234\fP: (\fI\%Sylvain303\fP) Bug: module disk.wipe dont wipe the filesystem information (refs: \fI\%#35253\fP)
  219632. .IP \(bu 2
  219633. \fBPR\fP \fI\%#35259\fP: (\fI\%cachedout\fP) Fixup 35253
  219634. @ \fI2016\-08\-06 21:59:48 UTC\fP
  219635. .INDENT 2.0
  219636. .IP \(bu 2
  219637. \fBPR\fP \fI\%#35253\fP: (\fI\%abednarik\fP) Fix disk.wipe missing option. (refs: \fI\%#35259\fP)
  219638. .IP \(bu 2
  219639. 6eb1c48469 Merge pull request \fI\%#35259\fP from cachedout/fixup_35253
  219640. .IP \(bu 2
  219641. 104116f464 Add release notes and include entry about disk.wipe fix
  219642. .IP \(bu 2
  219643. 6714e8f386 Fix mock call in disk wipe test
  219644. .UNINDENT
  219645. .IP \(bu 2
  219646. \fBISSUE\fP \fI\%#35234\fP: (\fI\%Sylvain303\fP) Bug: module disk.wipe dont wipe the filesystem information (refs: \fI\%#35253\fP)
  219647. .IP \(bu 2
  219648. \fBPR\fP \fI\%#35253\fP: (\fI\%abednarik\fP) Fix disk.wipe missing option. (refs: \fI\%#35259\fP)
  219649. @ \fI2016\-08\-06 21:55:01 UTC\fP
  219650. .INDENT 2.0
  219651. .IP \(bu 2
  219652. 4e7d7f8e4c Merge pull request \fI\%#35253\fP from abednarik/disk_wipe_fix
  219653. .IP \(bu 2
  219654. ff33df4ba1 Fix disk.wipe missing option.
  219655. .UNINDENT
  219656. .IP \(bu 2
  219657. \fBPR\fP \fI\%#35206\fP: (\fI\%hu\-dabao\fP) Make the log level back to warning for unclassified exc
  219658. @ \fI2016\-08\-06 21:40:38 UTC\fP
  219659. .INDENT 2.0
  219660. .IP \(bu 2
  219661. eeede82109 Merge pull request \fI\%#35206\fP from hu\-dabao/fix\-exc\-log
  219662. .IP \(bu 2
  219663. 676be7d711 Make the log level back to warning for unclassified exc
  219664. .UNINDENT
  219665. .IP \(bu 2
  219666. \fBPR\fP \fI\%#35196\fP: (\fI\%isbm\fP) Deprecate status.uptime one version later
  219667. @ \fI2016\-08\-06 08:39:40 UTC\fP
  219668. .INDENT 2.0
  219669. .IP \(bu 2
  219670. 21808e27d5 Merge pull request \fI\%#35196\fP from isbm/isbm\-too\-fast\-uptime\-deprecation
  219671. .IP \(bu 2
  219672. 6f3a32dace Deprecate status.uptime one version later
  219673. .UNINDENT
  219674. .IP \(bu 2
  219675. \fBPR\fP \fI\%#35207\fP: (\fI\%eliasp\fP) Handle exceptions in \fI_get_virtual()\fP and in \fI_get_virtual()\fP consumers
  219676. @ \fI2016\-08\-06 08:29:08 UTC\fP
  219677. .INDENT 2.0
  219678. .IP \(bu 2
  219679. 100645e557 Merge pull request \fI\%#35207\fP from eliasp/2016.3\-modules.aptpkg\-handle\-exceptions
  219680. .IP \(bu 2
  219681. 2f11df98ca Handle exceptions in \fI_get_virtual()\fP and in \fI_get_virtual()\fP consumers
  219682. .UNINDENT
  219683. .IP \(bu 2
  219684. \fBISSUE\fP \fI\%#35003\fP: (\fI\%edgan\fP) rabbitmq_user.present broken on Ubuntu 16.04 Xenial (refs: \fI\%#35232\fP)
  219685. .IP \(bu 2
  219686. \fBISSUE\fP \fI\%#34481\fP: (\fI\%L4rS6\fP) rabbitmq_user.present with password keyword throws exception (refs: \fI\%#35232\fP)
  219687. .IP \(bu 2
  219688. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#35232\fP)
  219689. .IP \(bu 2
  219690. \fBPR\fP \fI\%#35232\fP: (\fI\%theredcat\fP) fix rabbitmq version detection using a package\-agnostic version (refs: \fI\%#35274\fP)
  219691. @ \fI2016\-08\-06 08:13:02 UTC\fP
  219692. .INDENT 2.0
  219693. .IP \(bu 2
  219694. 7302a8a6e5 Merge pull request \fI\%#35232\fP from theredcat/fix\-rabbitmq\-version\-detection
  219695. .IP \(bu 2
  219696. f75eb2ecc7 Fix runas in code order and make the check_password work with the new >3.5.7 version
  219697. .IP \(bu 2
  219698. 4d8119b88b fix rabbitmq version detection using a package\-agnostic version
  219699. .UNINDENT
  219700. .IP \(bu 2
  219701. \fBPR\fP \fI\%#35244\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31677\fP to 2016.3
  219702. @ \fI2016\-08\-06 07:53:28 UTC\fP
  219703. .INDENT 2.0
  219704. .IP \(bu 2
  219705. \fBPR\fP \fI\%#31677\fP: (\fI\%miihael\fP) Return correct value for services that must be enabled in Systemd (refs: \fI\%#35244\fP)
  219706. .IP \(bu 2
  219707. 2e9fa3799c Merge pull request \fI\%#35244\fP from rallytime/bp\-31677
  219708. .IP \(bu 2
  219709. 45d563d5ac Return correct value for services that must be enabled in Systemd, not in SysV
  219710. .UNINDENT
  219711. .IP \(bu 2
  219712. \fBPR\fP \fI\%#35182\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219713. @ \fI2016\-08\-03 20:57:29 UTC\fP
  219714. .INDENT 2.0
  219715. .IP \(bu 2
  219716. bd0496eef5 Merge pull request \fI\%#35182\fP from rallytime/merge\-2016.3
  219717. .IP \(bu 2
  219718. c35974f78f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219719. .IP \(bu 2
  219720. 67d8dd0fd0 Don\(aqt discard running beacons config when listing becaons (\fI\%#35174\fP)
  219721. .IP \(bu 2
  219722. 3754550dd2 Add missing CLI Examples to aws_sqs module funcs (\fI\%#35173\fP)
  219723. .IP \(bu 2
  219724. 4967ed275f doc version update to 2015.8.11, updates to release notes (\fI\%#35145\fP)
  219725. .UNINDENT
  219726. .IP \(bu 2
  219727. \fBPR\fP \fI\%#35150\fP: (\fI\%rallytime\fP) Start release notes for 2016.3.3
  219728. @ \fI2016\-08\-03 13:46:31 UTC\fP
  219729. .INDENT 2.0
  219730. .IP \(bu 2
  219731. f9f92ad326 Merge pull request \fI\%#35150\fP from rallytime/2016.3.3\-release\-notes
  219732. .IP \(bu 2
  219733. a64026fc99 Start release notes for 2016.3.3
  219734. .UNINDENT
  219735. .IP \(bu 2
  219736. \fBPR\fP \fI\%#35157\fP: (\fI\%hu\-dabao\fP) master returned from func should be a string as designed so far
  219737. @ \fI2016\-08\-03 13:29:16 UTC\fP
  219738. .INDENT 2.0
  219739. .IP \(bu 2
  219740. 518ecf897a Merge pull request \fI\%#35157\fP from hu\-dabao/func\-return\-string
  219741. .IP \(bu 2
  219742. a7506af4c9 master returned from func should be a string as designed so far
  219743. .IP \(bu 2
  219744. \fBPR\fP \fI\%#35147\fP: (\fI\%jacobhammons\fP) doc version updated to 2016.3.2
  219745. .UNINDENT
  219746. .IP \(bu 2
  219747. \fBPR\fP \fI\%#35136\fP: (\fI\%s0undt3ch\fP) Don\(aqt restart processes if the manager is not set to restart them
  219748. @ \fI2016\-08\-02 18:40:05 UTC\fP
  219749. .INDENT 2.0
  219750. .IP \(bu 2
  219751. dc7d7db3d5 Merge pull request \fI\%#35136\fP from s0undt3ch/2016.3
  219752. .IP \(bu 2
  219753. 7b8bf2d2b4 Don\(aqt restart processes if the manager is not set to restart them
  219754. .UNINDENT
  219755. .IP \(bu 2
  219756. \fBPR\fP \fI\%#35133\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219757. @ \fI2016\-08\-02 18:06:18 UTC\fP
  219758. .INDENT 2.0
  219759. .IP \(bu 2
  219760. bf04bd3316 Merge pull request \fI\%#35133\fP from rallytime/merge\-2016.3
  219761. .IP \(bu 2
  219762. 0d5f0b6016 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219763. .IP \(bu 2
  219764. 81845ee31d Merge pull request \fI\%#35114\fP from terminalmage/git_pillar\-env\-remap\-docs
  219765. .INDENT 2.0
  219766. .IP \(bu 2
  219767. 5951554e9f Add clarification docs on a common git_pillar misconfiguration
  219768. .UNINDENT
  219769. .IP \(bu 2
  219770. 88a9fb1b31 Merge pull request \fI\%#34768\fP from hrumph/bad\-installed\-state
  219771. .INDENT 2.0
  219772. .IP \(bu 2
  219773. e1fcb8311d Put pkg.latest_version in try/except structure Move refreshed or refresh to different spot (just for code tidyness)
  219774. .IP \(bu 2
  219775. e0b6261659 changed name of varibale \(aqrefreshed\(aq to \(aqwas_refreshed\(aq
  219776. .IP \(bu 2
  219777. 340110b4b4 Move check for rtag to outermost\-nesting in function
  219778. .IP \(bu 2
  219779. ac67c6b493 Lint fix
  219780. .IP \(bu 2
  219781. 0435a1375e Get rid of repetition in code by using new "refreshed" variable instead
  219782. .IP \(bu 2
  219783. 3b1dc978e2 Lint fix
  219784. .IP \(bu 2
  219785. a9bd1b92b9 lint fixes
  219786. .IP \(bu 2
  219787. 71d69343ef Fixes \fI\%#34767\fP
  219788. .UNINDENT
  219789. .IP \(bu 2
  219790. 343576408f Merge pull request \fI\%#35043\fP from rallytime/new\-release\-notes
  219791. .INDENT 2.0
  219792. .IP \(bu 2
  219793. bdcc81a384 Start release notes file for 2015.8.12
  219794. .UNINDENT
  219795. .UNINDENT
  219796. .IP \(bu 2
  219797. \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.
  219798. @ \fI2016\-08\-02 16:22:50 UTC\fP
  219799. .INDENT 2.0
  219800. .IP \(bu 2
  219801. dd91006ed7 Merge pull request \fI\%#35120\fP from kstreee/fix\-missing\-first\-stream\-data
  219802. .IP \(bu 2
  219803. 28f793caac Fix missing first data in stream when subscribing stream using a function \(aqread_async\(aq.
  219804. .IP \(bu 2
  219805. \fBPR\fP \fI\%saltstack/salt#35011\fP: (\fI\%nishigori\fP) Fix docstring for code\-block of rst (refs: \fI\%#35131\fP)
  219806. .IP \(bu 2
  219807. \fBPR\fP \fI\%#35131\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35011\fP to 2016.3
  219808. .IP \(bu 2
  219809. \fBPR\fP \fI\%#35011\fP: (\fI\%nishigori\fP) Fix docstring for code\-block of rst (refs: \fI\%#35131\fP)
  219810. .UNINDENT
  219811. .IP \(bu 2
  219812. \fBPR\fP \fI\%#35110\fP: (\fI\%hu\-dabao\fP) Do not return job status back to master for master_alive and master_failback schedules
  219813. @ \fI2016\-08\-02 07:49:46 UTC\fP
  219814. .INDENT 2.0
  219815. .IP \(bu 2
  219816. 77b1f43b0d Merge pull request \fI\%#35110\fP from hu\-dabao/master\-check\-lighter
  219817. .IP \(bu 2
  219818. 3a3b66e27d dont return job status back to master for master_alive and master_failback schedules
  219819. .UNINDENT
  219820. .IP \(bu 2
  219821. \fBPR\fP \fI\%#35104\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219822. @ \fI2016\-08\-01 18:56:43 UTC\fP
  219823. .INDENT 2.0
  219824. .IP \(bu 2
  219825. 94a983f129 Merge pull request \fI\%#35104\fP from rallytime/merge\-2016.3
  219826. .IP \(bu 2
  219827. dda2c32325 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219828. .INDENT 2.0
  219829. .IP \(bu 2
  219830. 848bf0272f Merge pull request \fI\%#35050\fP from terminalmage/fix\-saltdev\-arg
  219831. .INDENT 2.0
  219832. .IP \(bu 2
  219833. 40cfa7cf17 Avoid needlessly running 2 argspecs in salt.utils.format_call()
  219834. .IP \(bu 2
  219835. fd186b7e4c Pass environment as \(aqsaltdev\(aq if runner/wheel func accepts a saltdev argument
  219836. .IP \(bu 2
  219837. 951b52ab93 Pass __env__ from saltmod orch states to to saltutil.{runner,wheel}
  219838. .UNINDENT
  219839. .IP \(bu 2
  219840. 2144178ae0 Merge pull request \fI\%#35066\fP from jfindlay/postgres_log
  219841. .INDENT 2.0
  219842. .IP \(bu 2
  219843. c2c442234f returners.postgres_local_cache: do not log in __virtual__
  219844. .UNINDENT
  219845. .IP \(bu 2
  219846. 7121618142 Merge pull request \fI\%#35024\fP from bobrik/daemon\-reload\-fix
  219847. .INDENT 2.0
  219848. .IP \(bu 2
  219849. c300615e9d Cache systemd unit update check per unit, closes \fI\%#34927\fP
  219850. .UNINDENT
  219851. .IP \(bu 2
  219852. 865c29f126 Expressly deny a minion if a key cannot be found instead of raising stacktrace (\fI\%#35026\fP)
  219853. .UNINDENT
  219854. .UNINDENT
  219855. .IP \(bu 2
  219856. \fBISSUE\fP \fI\%#32761\fP: (\fI\%notpeter\fP) Ubuntu 16.04 Xenial Xerus Support (refs: #\(gasaltstack/salt#33870\(ga_)
  219857. .INDENT 2.0
  219858. .IP \(bu 2
  219859. \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)
  219860. .UNINDENT
  219861. .IP \(bu 2
  219862. \fBPR\fP \fI\%#35105\fP: (\fI\%rallytime\fP) Update 2016.3.0 release notes with repo.saltstack.com Xenial pkg availability
  219863. @ \fI2016\-08\-01 17:26:55 UTC\fP
  219864. .INDENT 2.0
  219865. .IP \(bu 2
  219866. 6c056a829e Merge pull request \fI\%#35105\fP from rallytime/update\-2016.3.0\-release\-notes
  219867. .IP \(bu 2
  219868. fbaff3e98e Update 2016.3.0 release notes with repo.saltstack.com Xenial pkg availability
  219869. .UNINDENT
  219870. .IP \(bu 2
  219871. \fBPR\fP \fI\%#35059\fP: (\fI\%vutny\fP) Add \fIfun_args\fP field to events generated by execution of Master modules
  219872. @ \fI2016\-08\-01 13:01:42 UTC\fP
  219873. .INDENT 2.0
  219874. .IP \(bu 2
  219875. 1f8a0fd1e7 Merge pull request \fI\%#35059\fP from vutny/event\-function\-args
  219876. .IP \(bu 2
  219877. 19d080445b Add \fIfun_args\fP field to events generated by execution of Master modules
  219878. .UNINDENT
  219879. .IP \(bu 2
  219880. \fBPR\fP \fI\%#34955\fP: (\fI\%lubyou\fP) force dism to always output english text
  219881. @ \fI2016\-08\-01 12:54:03 UTC\fP
  219882. .INDENT 2.0
  219883. .IP \(bu 2
  219884. d137c4b986 Merge pull request \fI\%#34955\fP from lubyou/fix\-dism\-on\-non\-english\-systems
  219885. .IP \(bu 2
  219886. 63c974a3d0 add missing comma
  219887. .IP \(bu 2
  219888. 775ea73578 fix unit tests
  219889. .IP \(bu 2
  219890. 51869807f1 force dism to always output english text
  219891. .UNINDENT
  219892. .IP \(bu 2
  219893. \fBPR\fP \fI\%#35078\fP: (\fI\%jacobweinstock\fP) added missing non\-keyword argument skip_verify to __get_artifact func…
  219894. @ \fI2016\-08\-01 12:22:47 UTC\fP
  219895. .INDENT 2.0
  219896. .IP \(bu 2
  219897. ff7ddf0b68 Merge pull request \fI\%#35078\fP from jacobweinstock/fix\-missing\-non\-keyword\-argument
  219898. .IP \(bu 2
  219899. c40314ba80 added missing non\-keyword argument skip_verify to __get_artifact function
  219900. .UNINDENT
  219901. .IP \(bu 2
  219902. \fBPR\fP \fI\%#35008\fP: (\fI\%hu\-dabao\fP) Fix multimaster failover on more than two masters and failback behaviour
  219903. @ \fI2016\-07\-29 16:34:37 UTC\fP
  219904. .INDENT 2.0
  219905. .IP \(bu 2
  219906. 878e200cd9 Merge pull request \fI\%#35008\fP from hu\-dabao/fix\-multimaster
  219907. .IP \(bu 2
  219908. 12da890910 Fix multimaster failover on more than two masters and failback behaviour
  219909. .UNINDENT
  219910. .IP \(bu 2
  219911. \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)
  219912. .IP \(bu 2
  219913. \fBISSUE\fP \fI\%#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  219914. .IP \(bu 2
  219915. \fBPR\fP \fI\%#35055\fP: (\fI\%galet\fP) \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True"
  219916. @ \fI2016\-07\-29 15:40:15 UTC\fP
  219917. .INDENT 2.0
  219918. .IP \(bu 2
  219919. 11ed147448 Merge pull request \fI\%#35055\fP from galet/2016.3
  219920. .IP \(bu 2
  219921. d70796bbfe \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True"
  219922. .UNINDENT
  219923. .IP \(bu 2
  219924. \fBPR\fP \fI\%#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  219925. @ \fI2016\-07\-29 14:01:03 UTC\fP
  219926. .INDENT 2.0
  219927. .IP \(bu 2
  219928. ebaee39b2b Merge pull request \fI\%#35039\fP from whiteinge/module\-run\-saltenv
  219929. .IP \(bu 2
  219930. 7ef287e09e Add saltenv support to module.run
  219931. .UNINDENT
  219932. .IP \(bu 2
  219933. \fBPR\fP \fI\%#35046\fP: (\fI\%eliasp\fP) Prevent backtrace in \fIsalt.states.network\fP
  219934. @ \fI2016\-07\-29 13:59:09 UTC\fP
  219935. .INDENT 2.0
  219936. .IP \(bu 2
  219937. 32ed78a399 Merge pull request \fI\%#35046\fP from eliasp/2016.3\-salt.states.network\-prevent\-backtrace
  219938. .IP \(bu 2
  219939. 1542cd5124 Prevent backtrace in \fIsalt.states.network\fP
  219940. .UNINDENT
  219941. .IP \(bu 2
  219942. \fBPR\fP \fI\%#35054\fP: (\fI\%lubyou\fP) Only fail user lookup is the user parameter is required
  219943. @ \fI2016\-07\-29 13:58:41 UTC\fP
  219944. .INDENT 2.0
  219945. .IP \(bu 2
  219946. f34bb7a8de Merge pull request \fI\%#35054\fP from lubyou/fix\-win_dacl\-disable_inheritance
  219947. .IP \(bu 2
  219948. 1e4e856fb2 Only fail user lookup is the user parameter is required
  219949. .UNINDENT
  219950. .IP \(bu 2
  219951. \fBPR\fP \fI\%#35029\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219952. @ \fI2016\-07\-28 18:01:35 UTC\fP
  219953. .INDENT 2.0
  219954. .IP \(bu 2
  219955. bee303db51 Merge pull request \fI\%#35029\fP from rallytime/merge\-2016.3
  219956. .IP \(bu 2
  219957. 65f9365ee0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219958. .IP \(bu 2
  219959. 2b511f3013 Merge pull request \fI\%#35000\fP from rallytime/bp\-33875
  219960. .INDENT 2.0
  219961. .IP \(bu 2
  219962. 35696ad637 Pylint fix
  219963. .IP \(bu 2
  219964. f9fd6ddd8a Fixup \fI\%#33875\fP
  219965. .IP \(bu 2
  219966. 56b1f6c651 Fix naive fileserver map diff algorithm
  219967. .UNINDENT
  219968. .IP \(bu 2
  219969. 837bc6ba7d Merge pull request \fI\%#34994\fP from rallytime/bp\-34835
  219970. .INDENT 2.0
  219971. .IP \(bu 2
  219972. 9268a793de same thing for the mine in salt\-ssh
  219973. .IP \(bu 2
  219974. 3e11e19714 Fix the mine in salt ssh
  219975. .UNINDENT
  219976. .IP \(bu 2
  219977. \fBPR\fP \fI\%#35021\fP: (\fI\%terminalmage\fP) Don\(aqt add \(aq.\(aq to strerror when passed string ends in ? or !
  219978. .IP \(bu 2
  219979. \fBPR\fP \fI\%#34983\fP: (\fI\%eliasp\fP) modules.slack.post_message: Allow sending messages to direct\-message …
  219980. .UNINDENT
  219981. .IP \(bu 2
  219982. \fBPR\fP \fI\%#34996\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219983. @ \fI2016\-07\-27 19:03:04 UTC\fP
  219984. .INDENT 2.0
  219985. .IP \(bu 2
  219986. 05cfb1cefc Merge pull request \fI\%#34996\fP from rallytime/merge\-2016.3
  219987. .IP \(bu 2
  219988. a7d4f93697 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219989. .INDENT 2.0
  219990. .IP \(bu 2
  219991. b58c663d8d Merge pull request \fI\%#34991\fP from cachedout/ssh_timeout
  219992. .INDENT 2.0
  219993. .IP \(bu 2
  219994. 39cd8da399 Lint diff against salt\-testing
  219995. .IP \(bu 2
  219996. 443e5cdde2 Add timeout to ssh tests
  219997. .UNINDENT
  219998. .IP \(bu 2
  219999. 5f8370ae8d Refine errors in client (\fI\%#34976\fP)
  220000. .IP \(bu 2
  220001. a83cdf9339 Merge pull request \fI\%#34831\fP from thatch45/recoverssh
  220002. .IP \(bu 2
  220003. fa73041a49 If the thin does not match, then redeploy, don\(aqt error
  220004. .UNINDENT
  220005. .IP \(bu 2
  220006. \fBPR\fP \fI\%#34987\fP: (\fI\%eliasp\fP) salt.states.slack: check correct result attribute
  220007. .UNINDENT
  220008. .IP \(bu 2
  220009. \fBISSUE\fP \fI\%saltstack/salt#34526\fP: (\fI\%danielmotaleite\fP) salt\-ssh + mine = weird error (refs: \fI\%#34835\fP, #saltstack/salt\(ga#34835\(ga_)
  220010. .IP \(bu 2
  220011. \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)
  220012. @ \fI2016\-07\-27 17:25:26 UTC\fP
  220013. .INDENT 2.0
  220014. .IP \(bu 2
  220015. edeb0eda36 Merge pull request \fI\%#34835\fP from thatch45/34526_
  220016. .IP \(bu 2
  220017. 1d2477df05 same thing for the mine in salt\-ssh
  220018. .IP \(bu 2
  220019. 6b6c5ff278 Fix the mine in salt ssh
  220020. .UNINDENT
  220021. .UNINDENT
  220022. .SS Salt 2016.3.4 Release Notes
  220023. .sp
  220024. Version 2016.3.4 is a bugfix release for 2016.3.0\&.
  220025. .SS Statistics
  220026. .INDENT 0.0
  220027. .IP \(bu 2
  220028. Total Merges: \fB275\fP
  220029. .IP \(bu 2
  220030. Total Issue References: \fB119\fP
  220031. .IP \(bu 2
  220032. Total PR References: \fB374\fP
  220033. .IP \(bu 2
  220034. 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)
  220035. .UNINDENT
  220036. .SS Known Issues
  220037. .sp
  220038. The Salt Minion does not clean up files in \fB/tmp\fP when rendering templates.
  220039. This potentially results in either running out of disk space or running out of
  220040. inodes. Please see \fI\%issue #37541\fP for more information. This bug was fixed with
  220041. \fI\%PR #37540\fP, which will be available in the \fB2016.3.5\fP release of
  220042. Salt.
  220043. .sp
  220044. The release of the \fBbootstrap\-salt.sh\fP script that is included with 2016.3.4
  220045. release has a bug in it that fails to install salt correctly for git installs
  220046. using tags in the 2015.5 branch. This bug has not been fixed in the
  220047. \fI\%salt\-bootstrap repository\fP yet, but the \fI\%previous bootstrap release\fP
  220048. (v2016.08.16) does not contain this bug.
  220049. .SS Changes
  220050. .INDENT 0.0
  220051. .IP \(bu 2
  220052. The \fIdisk.wipe\fP execution module function has been modified
  220053. so that it correctly wipes a disk.
  220054. .IP \(bu 2
  220055. Add ability to clone from a snapshot to the VMWare salt\-cloud driver.
  220056. .IP \(bu 2
  220057. Add ability to specify disk backing mode in the VMWare salt cloud profile.
  220058. .UNINDENT
  220059. .SS Changelog for v2016.3.3..v2016.3.4
  220060. .sp
  220061. \fIGenerated at: 2018\-05\-27 04:56:54 UTC\fP
  220062. .INDENT 0.0
  220063. .IP \(bu 2
  220064. \fBPR\fP \fI\%#37285\fP: (\fI\%rallytime\fP) Update 2016.3.4 release notes
  220065. .IP \(bu 2
  220066. \fBISSUE\fP \fI\%#37281\fP: (\fI\%frogunder\fP) 2016.3.4: Raet Transport not working (refs: \fI\%#37282\fP)
  220067. .IP \(bu 2
  220068. \fBPR\fP \fI\%#37282\fP: (\fI\%thatch45\fP) add cpub to raet event for compat
  220069. @ \fI2016\-10\-27 21:33:48 UTC\fP
  220070. .INDENT 2.0
  220071. .IP \(bu 2
  220072. 3b62a89e45 Merge pull request \fI\%#37282\fP from thatch45/raet_cpub
  220073. .IP \(bu 2
  220074. 90f778dbc1 Add func for compat with main event system
  220075. .IP \(bu 2
  220076. 8e52f425e4 add cpub to raet event for compat
  220077. .IP \(bu 2
  220078. \fBPR\fP \fI\%#37278\fP: (\fI\%jfindlay\fP) update 2016.3.4 release notes
  220079. .UNINDENT
  220080. .IP \(bu 2
  220081. \fBPR\fP \fI\%#37252\fP: (\fI\%vutny\fP) Set logging level to \(aqinfo\(aq for message about init system detection
  220082. @ \fI2016\-10\-27 06:15:01 UTC\fP
  220083. .INDENT 2.0
  220084. .IP \(bu 2
  220085. d0ce3de50c Merge pull request \fI\%#37252\fP from vutny/suppress\-init\-grain\-error
  220086. .IP \(bu 2
  220087. 3f20cc01ed Set logging level to \(aqinfo\(aq for message about init system detection
  220088. .IP \(bu 2
  220089. \fBPR\fP \fI\%#37259\fP: (\fI\%rallytime\fP) [2016.3] Update man pages for the 2016.3 branch
  220090. .UNINDENT
  220091. .IP \(bu 2
  220092. \fBPR\fP \fI\%#37257\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220093. @ \fI2016\-10\-26 17:32:36 UTC\fP
  220094. .INDENT 2.0
  220095. .IP \(bu 2
  220096. 2087cfce90 Merge pull request \fI\%#37257\fP from rallytime/merge\-2016.3
  220097. .IP \(bu 2
  220098. 2066f10d7b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220099. .INDENT 2.0
  220100. .IP \(bu 2
  220101. f49ccdf30f Merge pull request \fI\%#37234\fP from rallytime/bp\-37167
  220102. .INDENT 2.0
  220103. .IP \(bu 2
  220104. a7dbb5bfc9 fixes pkgrepo for fedora>22 \fI\%saltstack/salt#31240\fP
  220105. .UNINDENT
  220106. .UNINDENT
  220107. .UNINDENT
  220108. .IP \(bu 2
  220109. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37254\fP)
  220110. .IP \(bu 2
  220111. \fBISSUE\fP \fI\%#37192\fP: (\fI\%Ch3LL\fP) 2016.3.4: Windows minion does not kill process running in foreground (refs: \fI\%#37254\fP)
  220112. .IP \(bu 2
  220113. \fBISSUE\fP \fI\%#37191\fP: (\fI\%Ch3LL\fP) 2016.3.4: Multi\-Master Failover minion hangs when masters not running (refs: \fI\%#37254\fP)
  220114. .IP \(bu 2
  220115. \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)
  220116. .IP \(bu 2
  220117. \fBPR\fP \fI\%#37254\fP: (\fI\%DmitryKuzmenko\fP) Bugs/37191 minion hangs
  220118. @ \fI2016\-10\-26 16:28:41 UTC\fP
  220119. .INDENT 2.0
  220120. .IP \(bu 2
  220121. ea6155c3f4 Merge pull request \fI\%#37254\fP from DSRCorporation/bugs/37191_minion_hangs
  220122. .IP \(bu 2
  220123. 9ee24b2d70 Revert "Don\(aqt set the \fIdaemon\fP flag for LoggingQueue process."
  220124. .UNINDENT
  220125. .IP \(bu 2
  220126. \fBISSUE\fP \fI\%#37187\fP: (\fI\%darkalia\fP) Supervisord is considered as "systemd" in grains (refs: \fI\%#37218\fP)
  220127. .IP \(bu 2
  220128. \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…
  220129. @ *2016\-10\-26 01:41:03 UTC\fP
  220130. .INDENT 2.0
  220131. .IP \(bu 2
  220132. d1a6bb72ac Merge pull request \fI\%#37218\fP from darkalia/37187_supervisor_2016.3
  220133. .IP \(bu 2
  220134. a8dfc6bb96 Issue \fI\%#37187\fP Do not parse first /proc/1/cmdline binary if it\(aqs not *bin/init and set supervisord
  220135. .UNINDENT
  220136. .IP \(bu 2
  220137. \fBPR\fP \fI\%#37239\fP: (\fI\%Ch3LL\fP) Fix cloud tests timeout
  220138. @ \fI2016\-10\-26 01:11:52 UTC\fP
  220139. .INDENT 2.0
  220140. .IP \(bu 2
  220141. 760ed9f56d Merge pull request \fI\%#37239\fP from Ch3LL/fix_cloud_timeout
  220142. .IP \(bu 2
  220143. 394fccf556 fix run_cloud timeout
  220144. .IP \(bu 2
  220145. 23947c5944 change timeout for cloud tests
  220146. .UNINDENT
  220147. .IP \(bu 2
  220148. \fBPR\fP \fI\%#37244\fP: (\fI\%rallytime\fP) Update bootstrap release to 2016.10.25
  220149. @ \fI2016\-10\-26 00:46:29 UTC\fP
  220150. .INDENT 2.0
  220151. .IP \(bu 2
  220152. 6c5f619398 Merge pull request \fI\%#37244\fP from rallytime/update\-bootstrap
  220153. .IP \(bu 2
  220154. f728a5bc7b Update bootstrap release to 2016.10.25
  220155. .IP \(bu 2
  220156. \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)
  220157. .UNINDENT
  220158. .IP \(bu 2
  220159. \fBPR\fP \fI\%#37245\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36334\fP to 2016.3
  220160. @ \fI2016\-10\-26 00:41:00 UTC\fP
  220161. .INDENT 2.0
  220162. .IP \(bu 2
  220163. \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)
  220164. .IP \(bu 2
  220165. bb7caf8c42 Merge pull request \fI\%#37245\fP from rallytime/bp\-36334
  220166. .IP \(bu 2
  220167. f64ca3c442 Update release notes and version added
  220168. .IP \(bu 2
  220169. 0a3d266d6b Add ability to specify disk backing mode for VMware cloud profile
  220170. .UNINDENT
  220171. .IP \(bu 2
  220172. \fBISSUE\fP \fI\%#37132\fP: (\fI\%bl4ckcontact\fP) Incorrect flag defined for disabling AD computer account in win_system.py (refs: \fI\%#37154\fP)
  220173. .IP \(bu 2
  220174. \fBPR\fP \fI\%#37233\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37154\fP to 2016.3
  220175. @ \fI2016\-10\-25 18:32:56 UTC\fP
  220176. .INDENT 2.0
  220177. .IP \(bu 2
  220178. \fBPR\fP \fI\%#37154\fP: (\fI\%bl4ckcontact\fP) modules.win_system.py: Fix flag disabling AD Computer objects (refs: \fI\%#37233\fP)
  220179. .IP \(bu 2
  220180. 3c94315d35 Merge pull request \fI\%#37233\fP from rallytime/bp\-37154
  220181. .IP \(bu 2
  220182. 849af162f1 modules.win_system.py: Fix flag disabling AD Computer objects
  220183. .UNINDENT
  220184. .IP \(bu 2
  220185. \fBPR\fP \fI\%#37232\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37153\fP to 2016.3
  220186. @ \fI2016\-10\-25 18:32:41 UTC\fP
  220187. .INDENT 2.0
  220188. .IP \(bu 2
  220189. \fBPR\fP \fI\%#37153\fP: (\fI\%eradman\fP) Update configuration examples for Joyent (refs: \fI\%#37232\fP)
  220190. .IP \(bu 2
  220191. 94852f2eb1 Merge pull request \fI\%#37232\fP from rallytime/bp\-37153
  220192. .IP \(bu 2
  220193. 3829b7592f Update configuration examples for Joyent
  220194. .UNINDENT
  220195. .IP \(bu 2
  220196. \fBPR\fP \fI\%#37228\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220197. @ \fI2016\-10\-25 18:22:57 UTC\fP
  220198. .INDENT 2.0
  220199. .IP \(bu 2
  220200. a913eed92a Merge pull request \fI\%#37228\fP from rallytime/merge\-2016.3
  220201. .IP \(bu 2
  220202. b99d6733b6 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220203. .IP \(bu 2
  220204. d608465d77 Merge pull request \fI\%#37178\fP from isbm/isbm\-fix\-saltapi\-ssh\-crash
  220205. .INDENT 2.0
  220206. .IP \(bu 2
  220207. 44da411c3a Do not prematurily raise an exception, let the main loop take care of it instead
  220208. .IP \(bu 2
  220209. ee48deeded Do not restart the whole thing if roster is not around
  220210. .IP \(bu 2
  220211. b8f4e46920 Fix PEP8
  220212. .UNINDENT
  220213. .UNINDENT
  220214. .IP \(bu 2
  220215. \fBPR\fP \fI\%#37213\fP: (\fI\%cachedout\fP) More salttesting fixes
  220216. @ \fI2016\-10\-25 07:53:33 UTC\fP
  220217. .INDENT 2.0
  220218. .IP \(bu 2
  220219. 6aaf6bf399 Merge pull request \fI\%#37213\fP from cachedout/more_salttesting_fixes
  220220. .IP \(bu 2
  220221. 0bbf06bd86 Lint fix
  220222. .IP \(bu 2
  220223. f609917760 Workaround for utils
  220224. .IP \(bu 2
  220225. a6a24c2b3b Workaround for tornado test startup error
  220226. .IP \(bu 2
  220227. 88bcfa2c0a Fix TCP test
  220228. .UNINDENT
  220229. .IP \(bu 2
  220230. \fBISSUE\fP \fI\%#37194\fP: (\fI\%sjorge\fP) function_cache in modules.mine docs? (refs: \fI\%#37207\fP)
  220231. .IP \(bu 2
  220232. \fBPR\fP \fI\%#37207\fP: (\fI\%cachedout\fP) Correct documentation for mine_functions
  220233. @ \fI2016\-10\-25 07:25:09 UTC\fP
  220234. .INDENT 2.0
  220235. .IP \(bu 2
  220236. b448455c31 Merge pull request \fI\%#37207\fP from cachedout/issue_37194
  220237. .IP \(bu 2
  220238. 9fcdf6da94 Correct documentation for mine_functions
  220239. .UNINDENT
  220240. .IP \(bu 2
  220241. \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)
  220242. .IP \(bu 2
  220243. \fBPR\fP \fI\%#37208\fP: (\fI\%cachedout\fP) Give multimion a process manager and its own destroy method
  220244. @ \fI2016\-10\-25 07:24:52 UTC\fP
  220245. .INDENT 2.0
  220246. .IP \(bu 2
  220247. a5e1c041cc Merge pull request \fI\%#37208\fP from cachedout/issue_37182
  220248. .IP \(bu 2
  220249. 1449770b0b Give multimion a process manager and its own destroy method
  220250. .UNINDENT
  220251. .IP \(bu 2
  220252. \fBPR\fP \fI\%#37206\fP: (\fI\%cachedout\fP) Address transport test hang
  220253. @ \fI2016\-10\-25 05:25:55 UTC\fP
  220254. .INDENT 2.0
  220255. .IP \(bu 2
  220256. e19ee88b6b Merge pull request \fI\%#37206\fP from cachedout/transport_test_hang
  220257. .IP \(bu 2
  220258. c4393d5e9e Address transport test hang
  220259. .UNINDENT
  220260. .IP \(bu 2
  220261. \fBPR\fP \fI\%#37179\fP: (\fI\%isbm\fP) Fix Salt\-API ssh crash (2016.3)
  220262. @ \fI2016\-10\-25 04:52:19 UTC\fP
  220263. .INDENT 2.0
  220264. .IP \(bu 2
  220265. 6737fd3ad9 Merge pull request \fI\%#37179\fP from isbm/isbm\-fix\-saltapi\-ssh\-crash\-2016\-3
  220266. .IP \(bu 2
  220267. 28edda457e Do not prematurily raise an exception, let the main loop take care of it instead
  220268. .IP \(bu 2
  220269. 372f2bbd93 Do not restart the whole thing if roster is not around
  220270. .IP \(bu 2
  220271. 8d1450cc47 Fix PEP8
  220272. .UNINDENT
  220273. .IP \(bu 2
  220274. \fBISSUE\fP \fI\%saltstack/salt#37176\fP: (\fI\%guettli\fP) docs for "load tags" explains "import_yaml" (refs: \fI\%#37183\fP)
  220275. .IP \(bu 2
  220276. \fBPR\fP \fI\%#37183\fP: (\fI\%gtmanfred\fP) load tags should reference the actual load tags
  220277. @ \fI2016\-10\-25 04:38:00 UTC\fP
  220278. .INDENT 2.0
  220279. .IP \(bu 2
  220280. 815dfd1c04 Merge pull request \fI\%#37183\fP from gtmanfred/2016.3
  220281. .IP \(bu 2
  220282. 1b7b4b1a0c load tags should reference the actual load tags
  220283. .UNINDENT
  220284. .IP \(bu 2
  220285. \fBPR\fP \fI\%#37188\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220286. @ \fI2016\-10\-25 04:37:26 UTC\fP
  220287. .INDENT 2.0
  220288. .IP \(bu 2
  220289. ca63376c97 Merge pull request \fI\%#37188\fP from rallytime/merge\-2016.3
  220290. .IP \(bu 2
  220291. ccb664050d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220292. .IP \(bu 2
  220293. b3e79dcd51 Merge pull request \fI\%#37139\fP from awerner/fix\-spm\-download\-remote\-download
  220294. .INDENT 2.0
  220295. .IP \(bu 2
  220296. a606a42575 Minor style change
  220297. .IP \(bu 2
  220298. e3916813bb Download spm package from remote repository and save it to cache directory
  220299. .UNINDENT
  220300. .IP \(bu 2
  220301. 35b4494157 Merge pull request \fI\%#37162\fP from rallytime/bp\-36823
  220302. .INDENT 2.0
  220303. .IP \(bu 2
  220304. 3032a542d9 Use NotifyAccess=all in all unit files
  220305. .IP \(bu 2
  220306. 4826995973 Remove EnvironmentFile and Restart lines from unit files
  220307. .IP \(bu 2
  220308. 3be15694d2 Use Type=notify for debian systemd units
  220309. .IP \(bu 2
  220310. d58fda6f67 Use control\-group default for killmode
  220311. .UNINDENT
  220312. .IP \(bu 2
  220313. \fBPR\fP \fI\%#37186\fP: (\fI\%rallytime\fP) Pylint fix for 2016.3
  220314. .IP \(bu 2
  220315. \fBPR\fP \fI\%#37175\fP: (\fI\%cachedout\fP) Fix test hang (refs: \fI\%#37186\fP)
  220316. .UNINDENT
  220317. .IP \(bu 2
  220318. \fBPR\fP \fI\%#37175\fP: (\fI\%cachedout\fP) Fix test hang (refs: \fI\%#37186\fP)
  220319. @ \fI2016\-10\-24 09:55:37 UTC\fP
  220320. .INDENT 2.0
  220321. .IP \(bu 2
  220322. 0d7af935e5 Merge pull request \fI\%#37175\fP from cachedout/fix_test_hange
  220323. .IP \(bu 2
  220324. 0fecb5ff2e Remove sleep. Thanks @s0undt3ch
  220325. .IP \(bu 2
  220326. cedc609503 Fix test suite hang on salt testing
  220327. .UNINDENT
  220328. .IP \(bu 2
  220329. \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)
  220330. .IP \(bu 2
  220331. \fBPR\fP \fI\%#37144\fP: (\fI\%DmitryKuzmenko\fP) Bugs/36866 salt minion communication broken 2016.3
  220332. @ \fI2016\-10\-24 03:19:06 UTC\fP
  220333. .INDENT 2.0
  220334. .IP \(bu 2
  220335. \fBPR\fP \fI\%#37142\fP: (\fI\%DmitryKuzmenko\fP) status.master: don\(aqt fail if host_to_ips returns None (refs: \fI\%#37144\fP)
  220336. .IP \(bu 2
  220337. \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)
  220338. .IP \(bu 2
  220339. 334313ec64 Merge pull request \fI\%#37144\fP from DSRCorporation/bugs/36866_salt\-minion_communication_broken_2016.3
  220340. .IP \(bu 2
  220341. 87c2e93e40 Don\(aqt fail if host_to_ips returns None.
  220342. .IP \(bu 2
  220343. f625e6d3a9 Updated host_to_ip to return all the IPs instead of the first one.
  220344. .UNINDENT
  220345. .IP \(bu 2
  220346. \fBPR\fP \fI\%#37158\fP: (\fI\%jfindlay\fP) add mock for \fIstatus.uptime\fP unit test (refs: \fI\%#37157\fP)
  220347. @ \fI2016\-10\-24 03:13:53 UTC\fP
  220348. .INDENT 2.0
  220349. .IP \(bu 2
  220350. \fBPR\fP \fI\%#37157\fP: (\fI\%jfindlay\fP) Implement \fIstatus.uptime\fP on macOS (refs: \fI\%#37158\fP)
  220351. .IP \(bu 2
  220352. c5d81a8ade Merge pull request \fI\%#37158\fP from jfindlay/mac_skip_uptime
  220353. .IP \(bu 2
  220354. 094eac06eb modules.status.uptime unit test: mock on linux
  220355. .UNINDENT
  220356. .IP \(bu 2
  220357. \fBISSUE\fP \fI\%#37037\fP: (\fI\%mikeadamz\fP) schedule state always reports changed when running in highstate (refs: \fI\%#37098\fP)
  220358. .IP \(bu 2
  220359. \fBPR\fP \fI\%#37161\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37098\fP to 2016.3
  220360. @ \fI2016\-10\-24 03:13:14 UTC\fP
  220361. .INDENT 2.0
  220362. .IP \(bu 2
  220363. \fBPR\fP \fI\%#37098\fP: (\fI\%mikeadamz\fP) Add run_on_start to SCHEDULE_CONF (refs: \fI\%#37161\fP)
  220364. .IP \(bu 2
  220365. e51f90b459 Merge pull request \fI\%#37161\fP from rallytime/bp\-37098
  220366. .IP \(bu 2
  220367. 36bc2a1ded Add run_on_start to SCHEDULE_CONF
  220368. .UNINDENT
  220369. .IP \(bu 2
  220370. \fBPR\fP \fI\%#37159\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37107\fP to 2016.3
  220371. @ \fI2016\-10\-22 13:55:47 UTC\fP
  220372. .INDENT 2.0
  220373. .IP \(bu 2
  220374. \fBPR\fP \fI\%#37107\fP: (\fI\%do3meli\fP) use versionadded and deprecated warnings in apache_module (refs: \fI\%#37159\fP)
  220375. .IP \(bu 2
  220376. b5025c044e Merge pull request \fI\%#37159\fP from rallytime/bp\-37107
  220377. .IP \(bu 2
  220378. c63126a2f0 removed trailing whitespaces in apache_module.py
  220379. .IP \(bu 2
  220380. a812cbfea7 use versionadded and deprecated warnings in apache_module
  220381. .UNINDENT
  220382. .IP \(bu 2
  220383. \fBPR\fP \fI\%#37163\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220384. @ \fI2016\-10\-22 13:52:37 UTC\fP
  220385. .INDENT 2.0
  220386. .IP \(bu 2
  220387. 1e520b3f48 Merge pull request \fI\%#37163\fP from rallytime/merge\-2016.3
  220388. .IP \(bu 2
  220389. 8fff95b3b4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220390. .IP \(bu 2
  220391. a5335a2f15 Merge pull request \fI\%#37137\fP from awerner/fix\-spm\-msgpack
  220392. .INDENT 2.0
  220393. .IP \(bu 2
  220394. 52d47cece9 SPM\-METADATA are now loaded as yaml from remote URLs
  220395. .UNINDENT
  220396. .IP \(bu 2
  220397. 8c46d69251 Merge pull request \fI\%#37109\fP from meaksh/zypper\-distupgrade\-support\-2015.8
  220398. .INDENT 2.0
  220399. .IP \(bu 2
  220400. 330f830c9b Disables \(aqnovendorchange\(aq for old SLEs versions
  220401. .IP \(bu 2
  220402. 01b0a6917c Minor pylint fixes
  220403. .IP \(bu 2
  220404. 7dbb0bd252 Unit tests fixes
  220405. .IP \(bu 2
  220406. e89982b6d2 Improves \(aqdryrun\(aq outputting. Setting \(aqnovendorchange\(aq as not supported for SLE11
  220407. .IP \(bu 2
  220408. c5a34cbadf Adds multiple repositories support to \(aqfromrepo\(aq parameter
  220409. .UNINDENT
  220410. .IP \(bu 2
  220411. 38fdd28962 Merge pull request \fI\%#37087\fP from vutny/gpg\-fix\-short\-keyid
  220412. .INDENT 2.0
  220413. .IP \(bu 2
  220414. c589cba8a9 salt.modules.gpg: allow getting keys by short key ID
  220415. .UNINDENT
  220416. .IP \(bu 2
  220417. 3a37a22366 Merge pull request \fI\%#37088\fP from meaksh/zypper\-distupgrade\-support\-2015.8
  220418. .INDENT 2.0
  220419. .IP \(bu 2
  220420. c0641a4027 Fix in log message
  220421. .IP \(bu 2
  220422. a092a974da Refactor: Cleanup and pylint fixes
  220423. .IP \(bu 2
  220424. 1331ae5c72 Unit tests for zypper upgrade and dist\-upgrade
  220425. .IP \(bu 2
  220426. 4bcfef2ba2 Adding \(aqdist\-upgrade\(aq support to zypper module
  220427. .UNINDENT
  220428. .IP \(bu 2
  220429. 2f29e9e956 Merge pull request \fI\%#37090\fP from zer0def/silence\-prereq\-supervisord\-warnings
  220430. .INDENT 2.0
  220431. .IP \(bu 2
  220432. 6a4bfbb485 Silence warnings about "__prerequired__" being an invalid kwarg when using \fIprereq\fP\&. (no refs)
  220433. .UNINDENT
  220434. .IP \(bu 2
  220435. \fBPR\fP \fI\%#37150\fP: (\fI\%rallytime\fP) Allow the minion test daemons a couple of tries to connect to the master
  220436. .IP \(bu 2
  220437. \fBPR\fP \fI\%#37152\fP: (\fI\%rallytime\fP) Add note about salt\-bootstrap known issue for 2016.3.4
  220438. .UNINDENT
  220439. .IP \(bu 2
  220440. \fBPR\fP \fI\%#37135\fP: (\fI\%aaronm\-cloudtek\fP) Fix example signing policy in salt.states.x509 docs
  220441. @ \fI2016\-10\-21 11:45:24 UTC\fP
  220442. .INDENT 2.0
  220443. .IP \(bu 2
  220444. 8de7b39b5e Merge pull request \fI\%#37135\fP from Cloudtek/x509\-docs\-fix
  220445. .IP \(bu 2
  220446. ce87f7311b Fix example signing policy in salt.states.x509 docs
  220447. .UNINDENT
  220448. .IP \(bu 2
  220449. \fBPR\fP \fI\%#37140\fP: (\fI\%vutny\fP) pkgbuild.repo: fix GPG signing with \fIuse_passphrase=False\fP
  220450. @ \fI2016\-10\-21 09:37:54 UTC\fP
  220451. .INDENT 2.0
  220452. .IP \(bu 2
  220453. 41ae90d3c3 Merge pull request \fI\%#37140\fP from vutny/pkgbuild\-repo\-sign\-with\-no\-passphrase
  220454. .IP \(bu 2
  220455. 409a3100a7 pkgbuild.repo: fix GPG signing with \fIuse_passphrase=False\fP
  220456. .UNINDENT
  220457. .IP \(bu 2
  220458. \fBPR\fP \fI\%#37071\fP: (\fI\%vutny\fP) pkgbuild.repo: add \fItimeout\fP parameter for waiting passphrase prompt
  220459. @ \fI2016\-10\-21 05:20:26 UTC\fP
  220460. .INDENT 2.0
  220461. .IP \(bu 2
  220462. 96a1292a7e Merge pull request \fI\%#37071\fP from vutny/pkgbuild\-repo\-gpg\-sign\-timeout
  220463. .IP \(bu 2
  220464. cfc3a0ed92 pkgbuild.repo: add \fItimeout\fP parameter for waiting passphrase prompt
  220465. .UNINDENT
  220466. .IP \(bu 2
  220467. \fBISSUE\fP \fI\%saltstack/salt#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36024\fP)
  220468. .IP \(bu 2
  220469. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37115\fP)
  220470. .IP \(bu 2
  220471. \fBISSUE\fP \fI\%#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36720\fP)
  220472. .IP \(bu 2
  220473. \fBPR\fP \fI\%#37115\fP: (\fI\%DmitryKuzmenko\fP) Backport/36720 fix race condition
  220474. @ \fI2016\-10\-21 05:16:15 UTC\fP
  220475. .INDENT 2.0
  220476. .IP \(bu 2
  220477. \fBPR\fP \fI\%#36720\fP: (\fI\%skizunov\fP) Fix race condition when returning events from commands (refs: \fI\%#37115\fP)
  220478. .IP \(bu 2
  220479. \fBPR\fP \fI\%#36024\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt subscribe to events if not sure it would read them. (refs: \fI\%#36720\fP)
  220480. .IP \(bu 2
  220481. 274120300d Merge pull request \fI\%#37115\fP from DSRCorporation/backport/36720_fix_race_condition
  220482. .IP \(bu 2
  220483. d7e3209e13 For IPCClient, remove entry from instance map on close
  220484. .IP \(bu 2
  220485. 82e27634a7 Fix race condition when returning events from commands
  220486. .UNINDENT
  220487. .IP \(bu 2
  220488. \fBPR\fP \fI\%#37119\fP: (\fI\%jfindlay\fP) log.setup: only assign user if defined
  220489. @ \fI2016\-10\-21 05:14:55 UTC\fP
  220490. .INDENT 2.0
  220491. .IP \(bu 2
  220492. \fBPR\fP \fI\%#36203\fP: (\fI\%xiaoanyunfei\fP) fix owner of MultiprocessingLoggingQueue (refs: \fI\%#37119\fP)
  220493. .IP \(bu 2
  220494. 169a82e62b Merge pull request \fI\%#37119\fP from jfindlay/log_proc_user
  220495. .IP \(bu 2
  220496. 8c29949a0e log.setup: only assign user if defined
  220497. .IP \(bu 2
  220498. 1d503f032c tests.integration: pass opts as a dict
  220499. .IP \(bu 2
  220500. \fBPR\fP \fI\%#37126\fP: (\fI\%Ch3LL\fP) fix digital ocean image name in profile
  220501. .IP \(bu 2
  220502. \fBPR\fP \fI\%#37125\fP: (\fI\%jfindlay\fP) add 2016.3.4 release notes
  220503. .UNINDENT
  220504. .IP \(bu 2
  220505. \fBPR\fP \fI\%#37120\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3
  220506. @ \fI2016\-10\-20 19:38:32 UTC\fP
  220507. .INDENT 2.0
  220508. .IP \(bu 2
  220509. \fBPR\fP \fI\%#36418\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3 (refs: \fI\%#37120\fP)
  220510. .IP \(bu 2
  220511. \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)
  220512. .IP \(bu 2
  220513. 2a35f57be8 Merge pull request \fI\%#37120\fP from rallytime/bp\-36246
  220514. .IP \(bu 2
  220515. f1c8d98119 Skip weird_install test on Mac OS X
  220516. .IP \(bu 2
  220517. 90de794290 Fix test_issue_6833_pip_upgrade_pip test on OSX
  220518. .UNINDENT
  220519. .IP \(bu 2
  220520. \fBPR\fP \fI\%#37103\fP: (\fI\%cachedout\fP) Remove unnecessary sleep from unit.utils.process_test.TestProcessMana…
  220521. @ \fI2016\-10\-20 08:45:07 UTC\fP
  220522. .INDENT 2.0
  220523. .IP \(bu 2
  220524. 0b87e7890a Merge pull request \fI\%#37103\fP from cachedout/fix_proc_test
  220525. .IP \(bu 2
  220526. d7aebd1877 Remove unnecessary sleep from unit.utils.process_test.TestProcessManager.test_restarting
  220527. .UNINDENT
  220528. .IP \(bu 2
  220529. \fBPR\fP \fI\%#36823\fP: (\fI\%terminalmage\fP) Update debian systemd unit files to use default KillMode, Type=notify (refs: \fI\%#37162\fP)
  220530. @ \fI2016\-10\-20 05:54:42 UTC\fP
  220531. .INDENT 2.0
  220532. .IP \(bu 2
  220533. \fBPR\fP \fI\%#36806\fP: (\fI\%l2ol33rt\fP) Deb systemd should use control\-group default for killmode (refs: \fI\%#36823\fP)
  220534. .IP \(bu 2
  220535. 326bbd5e30 Merge pull request \fI\%#36823\fP from terminalmage/pr\-36806
  220536. .IP \(bu 2
  220537. fb6e545f78 Use NotifyAccess=all in all unit files
  220538. .IP \(bu 2
  220539. 0ccf789172 Remove EnvironmentFile and Restart lines from unit files
  220540. .IP \(bu 2
  220541. ddd44e9b13 Use Type=notify for debian systemd units
  220542. .IP \(bu 2
  220543. 036d73f31b Use control\-group default for killmode
  220544. .UNINDENT
  220545. .IP \(bu 2
  220546. \fBPR\fP \fI\%#37030\fP: (\fI\%isbm\fP) Fix status.uptime for Solaris 9, 10 and 11.
  220547. @ \fI2016\-10\-20 05:52:53 UTC\fP
  220548. .INDENT 2.0
  220549. .IP \(bu 2
  220550. 0c40e71e17 Merge pull request \fI\%#37030\fP from isbm/isbm\-solaris\-status\-fix
  220551. .IP \(bu 2
  220552. 7d7b5ef9a9 Lintfix: E8303 too many blank lines
  220553. .IP \(bu 2
  220554. c11940d14c Fix status.uptime for Solaris 9, 10 and 11.
  220555. .UNINDENT
  220556. .IP \(bu 2
  220557. \fBPR\fP \fI\%#37101\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2016.3 to carbon
  220558. @ \fI2016\-10\-20 05:39:24 UTC\fP
  220559. .INDENT 2.0
  220560. .IP \(bu 2
  220561. eb88c73222 Merge pull request \fI\%#37101\fP from rallytime/merge\-2016.3
  220562. .IP \(bu 2
  220563. b445a5e579 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220564. .IP \(bu 2
  220565. 68eeb29783 Add warning about GitPython 2.0.9 incompatibility with Python 2.6 (\fI\%#37099\fP)
  220566. .IP \(bu 2
  220567. 39d59ab0df Merge pull request \fI\%#36880\fP from vutny/cp\-get\-salt\-url
  220568. .INDENT 2.0
  220569. .IP \(bu 2
  220570. d1ab98b459 cp.get_url: update usage doc and add tests for \fIfile://\fP URL with \fIdest=None\fP
  220571. .IP \(bu 2
  220572. c7cf79e959 cp.get_url: add note and test for \fI\%https://\fP URL with \fBdest=None\fP
  220573. .IP \(bu 2
  220574. ff55f77179 cp.get_url: write more verbose docstring
  220575. .IP \(bu 2
  220576. 94a34a08ba cp.get_url: add integration tests
  220577. .IP \(bu 2
  220578. 983f82fcf4 cp.get_url: fix variable type check
  220579. .IP \(bu 2
  220580. b33f4d7b93 cp.get_url: log error message if no file could be fetched from \fIsalt://\fP URL
  220581. .IP \(bu 2
  220582. 99cf3038cc cp.get_url: fix \fIdest=None\fP behaviour with \fIsalt://\fP URL
  220583. .UNINDENT
  220584. .UNINDENT
  220585. .IP \(bu 2
  220586. \fBPR\fP \fI\%#36958\fP: (\fI\%twangboy\fP) Fix bug where cmd.powershell fails to return
  220587. @ \fI2016\-10\-19 16:03:58 UTC\fP
  220588. .INDENT 2.0
  220589. .IP \(bu 2
  220590. 8d44efed78 Merge pull request \fI\%#36958\fP from twangboy/fix_cmd_powershell
  220591. .IP \(bu 2
  220592. 427be7b422 Add versionadded
  220593. .IP \(bu 2
  220594. d8e0e0e482 Fix missing comma
  220595. .IP \(bu 2
  220596. 7b46d04a84 Add note about increased completion times
  220597. .IP \(bu 2
  220598. 9365581a36 Clarify docs, add depth option
  220599. .UNINDENT
  220600. .IP \(bu 2
  220601. \fBPR\fP \fI\%#37086\fP: (\fI\%cachedout\fP) Make salt\-call a first\-class citizen for multi\-master
  220602. @ \fI2016\-10\-19 15:19:09 UTC\fP
  220603. .INDENT 2.0
  220604. .IP \(bu 2
  220605. beb54b3ffa Merge pull request \fI\%#37086\fP from cachedout/mm_req
  220606. .IP \(bu 2
  220607. 7dc15c1a48 Lint utils
  220608. .IP \(bu 2
  220609. 9bbe3c998b Lint error in publish
  220610. .IP \(bu 2
  220611. e22a3d2be6 Add multi\-master support to publish.publish
  220612. .IP \(bu 2
  220613. 7f141ba38c Add function to search for substr in list
  220614. .IP \(bu 2
  220615. 007eef84d7 Extend support to event.fire_master
  220616. .IP \(bu 2
  220617. 8171c73b00 Multi\-master support for salt\-call
  220618. .UNINDENT
  220619. .IP \(bu 2
  220620. \fBISSUE\fP \fI\%#36814\fP: (\fI\%martin\-helmich\fP) x509.create_csr creates invalid CSR (refs: \fI\%#36898\fP)
  220621. .IP \(bu 2
  220622. \fBPR\fP \fI\%#36898\fP: (\fI\%clinta\fP) X509 fixes
  220623. @ \fI2016\-10\-19 03:03:43 UTC\fP
  220624. .INDENT 2.0
  220625. .IP \(bu 2
  220626. 6b94153ea6 Merge pull request \fI\%#36898\fP from clinta/x509\-fixes
  220627. .IP \(bu 2
  220628. e732fe7725 fix docs on CSR state
  220629. .IP \(bu 2
  220630. 9b6f1a336c fix quotes and remove dependency on pkg_resources
  220631. .IP \(bu 2
  220632. eb4433d1ae return early if there are no requested extensions in the csr
  220633. .IP \(bu 2
  220634. d00cf8ef87 allow specifying digest for crl
  220635. .IP \(bu 2
  220636. dd50705e58 fix \fI\%#36814\fP
  220637. .UNINDENT
  220638. .IP \(bu 2
  220639. \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)
  220640. .IP \(bu 2
  220641. \fBPR\fP \fI\%#37025\fP: (\fI\%cro\fP) Make salt.utils.minion._check_cmdline work on OSes without /proc.
  220642. @ \fI2016\-10\-19 03:00:10 UTC\fP
  220643. .INDENT 2.0
  220644. .IP \(bu 2
  220645. a32b8cd741 Merge pull request \fI\%#37025\fP from cro/freebsd_no_proc
  220646. .IP \(bu 2
  220647. 1ac87e0efd Make salt.utils.minion._check_cmdline work on OSes without /proc.
  220648. .UNINDENT
  220649. .IP \(bu 2
  220650. \fBPR\fP \fI\%#37050\fP: (\fI\%twangboy\fP) Fix service state for Windows (DO NOT MERGE FORWARD)
  220651. @ \fI2016\-10\-19 02:46:27 UTC\fP
  220652. .INDENT 2.0
  220653. .IP \(bu 2
  220654. \fBPR\fP \fI\%#36923\fP: (\fI\%twangboy\fP) Fix service state for Windows (refs: \fI\%#37050\fP)
  220655. .IP \(bu 2
  220656. e09d9f85c5 Merge pull request \fI\%#37050\fP from twangboy/fix_win_service_state
  220657. .IP \(bu 2
  220658. b3b688e298 Fix tests
  220659. .IP \(bu 2
  220660. 1e1ee786c9 Set service to manual if disabled on start
  220661. .IP \(bu 2
  220662. \fBPR\fP \fI\%saltstack/salt#29322\fP: (\fI\%mrproper\fP) add http proxy support for tornado (refs: \fI\%#37076\fP)
  220663. .UNINDENT
  220664. .IP \(bu 2
  220665. \fBPR\fP \fI\%#37076\fP: (\fI\%jfindlay\fP) Document proxy settings
  220666. @ \fI2016\-10\-19 02:30:27 UTC\fP
  220667. .INDENT 2.0
  220668. .IP \(bu 2
  220669. 5e998638a4 Merge pull request \fI\%#37076\fP from jfindlay/proxy_doc
  220670. .IP \(bu 2
  220671. 7328df68f5 doc.topic.tutorials.http.query: add proxy section
  220672. .IP \(bu 2
  220673. 331072b35d doc.topic.tutorials.http.query: add subheadings
  220674. .IP \(bu 2
  220675. 478def4923 doc.ref.configuration.minion: add proxy vars
  220676. .UNINDENT
  220677. .IP \(bu 2
  220678. \fBISSUE\fP \fI\%#37001\fP: (\fI\%phil123456\fP) URGENT : archive.extracted does not work anymore (refs: \fI\%#37081\fP)
  220679. .IP \(bu 2
  220680. \fBPR\fP \fI\%#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification
  220681. @ \fI2016\-10\-19 02:22:22 UTC\fP
  220682. .INDENT 2.0
  220683. .IP \(bu 2
  220684. 9ec366833e Merge pull request \fI\%#37081\fP from terminalmage/issue37001
  220685. .IP \(bu 2
  220686. a3c4deeb82 Fix archive.extracted remote source_hash verification
  220687. .UNINDENT
  220688. .IP \(bu 2
  220689. \fBISSUE\fP \fI\%#35097\fP: (\fI\%jwhite530\fP) Minions die with "un\-handled exception from the multiprocessing process" (refs: \fI\%#37064\fP)
  220690. .IP \(bu 2
  220691. \fBPR\fP \fI\%#37064\fP: (\fI\%cachedout\fP) Unify job check in scheduler
  220692. @ \fI2016\-10\-19 02:08:06 UTC\fP
  220693. .INDENT 2.0
  220694. .IP \(bu 2
  220695. 67faee1f94 Merge pull request \fI\%#37064\fP from cachedout/issue_35097
  220696. .IP \(bu 2
  220697. 980ba892c9 Unify job check in scheduler
  220698. .UNINDENT
  220699. .IP \(bu 2
  220700. \fBPR\fP \fI\%#37072\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220701. @ \fI2016\-10\-18 15:23:17 UTC\fP
  220702. .INDENT 2.0
  220703. .IP \(bu 2
  220704. 7ef10f6de6 Merge pull request \fI\%#37072\fP from rallytime/merge\-2016.3
  220705. .IP \(bu 2
  220706. 78a144f19a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220707. .IP \(bu 2
  220708. 7dd91c2880 Merge pull request \fI\%#37053\fP from rallytime/update\-fedora\-install\-docs
  220709. .INDENT 2.0
  220710. .IP \(bu 2
  220711. 24e0f5e024 Update the Fedora installation docs
  220712. .UNINDENT
  220713. .IP \(bu 2
  220714. 4eb0a89b7c remove options from pylint (\fI\%#37054\fP)
  220715. .UNINDENT
  220716. .IP \(bu 2
  220717. \fBPR\fP \fI\%#37049\fP: (\fI\%terminalmage\fP) Further clarification on new grains docs from \fI\%#37028\fP
  220718. @ \fI2016\-10\-18 01:47:57 UTC\fP
  220719. .INDENT 2.0
  220720. .IP \(bu 2
  220721. \fBPR\fP \fI\%#37028\fP: (\fI\%damon\-atkins\fP) Update topics/grains doco, about considerations before adding a Grain (refs: \fI\%#37049\fP)
  220722. .IP \(bu 2
  220723. 71fd01ab8d Merge pull request \fI\%#37049\fP from terminalmage/grains\-docs
  220724. .IP \(bu 2
  220725. 854586c6a4 Add one more paragraph
  220726. .IP \(bu 2
  220727. a0502a7b90 Restructure grain writing docs
  220728. .IP \(bu 2
  220729. 4e419e90ac Further clarification on new grains docs from \fI\%#37028\fP
  220730. .UNINDENT
  220731. .IP \(bu 2
  220732. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  220733. .IP \(bu 2
  220734. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  220735. .IP \(bu 2
  220736. \fBPR\fP \fI\%#37057\fP: (\fI\%rallytime\fP) [2016.3] Update salt.utils.cloud references to __utils__ for cache funcs
  220737. @ \fI2016\-10\-18 01:31:43 UTC\fP
  220738. .INDENT 2.0
  220739. .IP \(bu 2
  220740. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  220741. .IP \(bu 2
  220742. 9a6671ce69 Merge pull request \fI\%#37057\fP from rallytime/cloud\-utils\-cleanup
  220743. .IP \(bu 2
  220744. d0dc7d4e55 [2016.3] Update salt.utils.cloud references to __utils__ for cache funcs
  220745. .UNINDENT
  220746. .IP \(bu 2
  220747. \fBPR\fP \fI\%#36977\fP: (\fI\%twangboy\fP) Remove whitespace from string commands
  220748. @ \fI2016\-10\-17 22:32:03 UTC\fP
  220749. .INDENT 2.0
  220750. .IP \(bu 2
  220751. f8cd7b7b28 Merge pull request \fI\%#36977\fP from twangboy/fix_cmd_run
  220752. .IP \(bu 2
  220753. 6586050736 Move strip to powershell block, add \-NoProfile
  220754. .UNINDENT
  220755. .IP \(bu 2
  220756. \fBPR\fP \fI\%#37048\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220757. @ \fI2016\-10\-17 16:05:48 UTC\fP
  220758. .INDENT 2.0
  220759. .IP \(bu 2
  220760. 9378b22d80 Merge pull request \fI\%#37048\fP from rallytime/merge\-2016.3
  220761. .IP \(bu 2
  220762. 5efd6d3df9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220763. .IP \(bu 2
  220764. 7f5aced50e Merge pull request \fI\%#36972\fP from zer0def/supervisor\-state\-fixes
  220765. .INDENT 2.0
  220766. .IP \(bu 2
  220767. 53801c6e80 Mitigates failure reports when making sure an existing supervisor process group is running, despite success.
  220768. .UNINDENT
  220769. .IP \(bu 2
  220770. 4e2ad07b0f Prevent source files in /tmp from being deleted by file.managed states (\fI\%#37023\fP)
  220771. .IP \(bu 2
  220772. 4e9824a65e args does not always exist (\fI\%#37019\fP)
  220773. .UNINDENT
  220774. .IP \(bu 2
  220775. \fBPR\fP \fI\%#37028\fP: (\fI\%damon\-atkins\fP) Update topics/grains doco, about considerations before adding a Grain (refs: \fI\%#37049\fP)
  220776. @ \fI2016\-10\-17 09:54:21 UTC\fP
  220777. .INDENT 2.0
  220778. .IP \(bu 2
  220779. 104a153a1f Merge pull request \fI\%#37028\fP from damon\-atkins/update_topics_grains_doco
  220780. .IP \(bu 2
  220781. 01e83a715e doc/topics/grains Update doco on when a grain should be created
  220782. .IP \(bu 2
  220783. a0e1fcc951 Add information to consider before adding a Grain to doco\(aqs for Grains
  220784. .UNINDENT
  220785. .IP \(bu 2
  220786. \fBPR\fP \fI\%#37012\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220787. @ \fI2016\-10\-14 18:07:03 UTC\fP
  220788. .INDENT 2.0
  220789. .IP \(bu 2
  220790. c30656814d Merge pull request \fI\%#37012\fP from rallytime/merge\-2016.3
  220791. .IP \(bu 2
  220792. a7c9a72104 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220793. .IP \(bu 2
  220794. c6254d59fd Merge pull request \fI\%#36807\fP from terminalmage/issue36723
  220795. .INDENT 2.0
  220796. .IP \(bu 2
  220797. 7d60e73308 Fix pillar merging when ext_pillar_first is enabled
  220798. .UNINDENT
  220799. .IP \(bu 2
  220800. e2bc94b029 cp.get_file_str: do not fail if file not found (\fI\%#36936\fP)
  220801. .UNINDENT
  220802. .IP \(bu 2
  220803. \fBISSUE\fP \fI\%#34397\fP: (\fI\%jaredhanson11\fP) ignore_epoch needs to be passed through to version_cmp functions (refs: \fI\%#34531\fP)
  220804. .INDENT 2.0
  220805. .IP \(bu 2
  220806. \fBPR\fP \fI\%#37007\fP: (\fI\%skizunov\fP) opkg: Support ignore_epoch argument in version comparisons
  220807. .IP \(bu 2
  220808. \fBPR\fP \fI\%#34531\fP: (\fI\%terminalmage\fP) Support ignore_epoch argument in version comparisons (refs: \fI\%#37007\fP)
  220809. .UNINDENT
  220810. .IP \(bu 2
  220811. \fBPR\fP \fI\%#36808\fP: (\fI\%gtmanfred\fP) allow for closing stuff in beacons (refs: \fI\%#36835\fP)
  220812. @ \fI2016\-10\-14 15:50:09 UTC\fP
  220813. .INDENT 2.0
  220814. .IP \(bu 2
  220815. 8b3e65448d Merge pull request \fI\%#36808\fP from gtmanfred/beacons
  220816. .IP \(bu 2
  220817. 727d4f309a allow for closing stuff in beacons
  220818. .IP \(bu 2
  220819. \fBPR\fP \fI\%#36993\fP: (\fI\%terminalmage\fP) Make helper funcs private
  220820. .UNINDENT
  220821. .IP \(bu 2
  220822. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  220823. .IP \(bu 2
  220824. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  220825. .IP \(bu 2
  220826. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  220827. .IP \(bu 2
  220828. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  220829. .INDENT 2.0
  220830. .IP \(bu 2
  220831. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  220832. .UNINDENT
  220833. .IP \(bu 2
  220834. \fBPR\fP \fI\%#36986\fP: (\fI\%jfindlay\fP) modules.archive.unzip: zipfile is stdlib
  220835. @ \fI2016\-10\-13 21:38:00 UTC\fP
  220836. .INDENT 2.0
  220837. .IP \(bu 2
  220838. \fBPR\fP \fI\%#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36986\fP)
  220839. .IP \(bu 2
  220840. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220841. .IP \(bu 2
  220842. \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_)
  220843. .IP \(bu 2
  220844. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220845. .IP \(bu 2
  220846. \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_)
  220847. .IP \(bu 2
  220848. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220849. .IP \(bu 2
  220850. a75761de87 Merge pull request \fI\%#36986\fP from jfindlay/arch_test
  220851. .IP \(bu 2
  220852. 2ec2684860 modules.archive.unzip: zipfile is stdlib
  220853. .UNINDENT
  220854. .IP \(bu 2
  220855. \fBISSUE\fP \fI\%#36422\fP: (\fI\%rippiedoos\fP) No error Reporting for (yum)pkg.upgrade (refs: #\(gasaltstack/salt#36450\(ga_)
  220856. .INDENT 2.0
  220857. .IP \(bu 2
  220858. \fBPR\fP \fI\%saltstack/salt#36980\fP: (\fI\%rallytime\fP) Skip pkg.upgrade test if pkg install/upgrade has problems (refs: \fI\%#36981\fP)
  220859. .IP \(bu 2
  220860. \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_)
  220861. .UNINDENT
  220862. .IP \(bu 2
  220863. \fBPR\fP \fI\%#36981\fP: (\fI\%rallytime\fP) Skip pkg.upgrades test on distros other that Suse in 2016.3
  220864. @ \fI2016\-10\-13 21:29:36 UTC\fP
  220865. .INDENT 2.0
  220866. .IP \(bu 2
  220867. c7595b84a7 Merge pull request \fI\%#36981\fP from rallytime/upgrades\-test\-fix
  220868. .IP \(bu 2
  220869. a5ae737057 Skip pkg.upgrades test on distros other that Suse in 2016.3
  220870. .UNINDENT
  220871. .IP \(bu 2
  220872. \fBISSUE\fP \fI\%#36671\fP: (\fI\%wrigtim\fP) systemd.py available() breaks on latest LSB\-compliant versions of systemd (refs: \fI\%#36755\fP)
  220873. .IP \(bu 2
  220874. \fBPR\fP \fI\%#36755\fP: (\fI\%terminalmage\fP) systemd.py: check retcode for service availability in systemd >= 231
  220875. @ \fI2016\-10\-13 19:41:50 UTC\fP
  220876. .INDENT 2.0
  220877. .IP \(bu 2
  220878. 6b782c15e1 Merge pull request \fI\%#36755\fP from terminalmage/issue36671
  220879. .IP \(bu 2
  220880. d916c2b49c Handle cases where retcode/output feature is backported
  220881. .IP \(bu 2
  220882. b3364646ad Update systemd module unit tests
  220883. .IP \(bu 2
  220884. a2439acbc9 systemd.py: check retcode for service availability in systemd >= 231
  220885. .UNINDENT
  220886. .IP \(bu 2
  220887. \fBISSUE\fP \fI\%#36746\fP: (\fI\%Ch3LL\fP) Carbon: When killing a job jid output missing (refs: \fI\%#36750\fP)
  220888. .IP \(bu 2
  220889. \fBPR\fP \fI\%#36750\fP: (\fI\%terminalmage\fP) Add the CLI client and pub_data as class attributes
  220890. @ \fI2016\-10\-13 19:38:33 UTC\fP
  220891. .INDENT 2.0
  220892. .IP \(bu 2
  220893. 10d255c511 Merge pull request \fI\%#36750\fP from terminalmage/issue36746
  220894. .IP \(bu 2
  220895. 0e7c600e02 Only display Ctrl\-c message on SIGINT
  220896. .IP \(bu 2
  220897. 9025be48c5 Include the jid (when available) in SystemExit message on Ctrl\-c
  220898. .IP \(bu 2
  220899. 9c9f1f620b Add the CLI client and pub_data as class attributes
  220900. .UNINDENT
  220901. .IP \(bu 2
  220902. \fBISSUE\fP \fI\%#36240\fP: (\fI\%hrumph\fP) win_certutil add_store state not installing certificates (refs: \fI\%#36241\fP)
  220903. .IP \(bu 2
  220904. \fBPR\fP \fI\%#36241\fP: (\fI\%hrumph\fP) Fixes \fI\%#36240\fP
  220905. @ \fI2016\-10\-12 23:28:35 UTC\fP
  220906. .INDENT 2.0
  220907. .IP \(bu 2
  220908. 3ac9ced202 Merge pull request \fI\%#36241\fP from hrumph/cert_problem
  220909. .IP \(bu 2
  220910. 51230fc263 Merge pull request \fI\%#1\fP from rallytime/pr\-36241
  220911. .INDENT 2.0
  220912. .IP \(bu 2
  220913. 32846794c8 Update mocks for failing tests in win_certutil_test
  220914. .UNINDENT
  220915. .IP \(bu 2
  220916. b26578d1ac Fixes \fI\%#36240\fP
  220917. .UNINDENT
  220918. .IP \(bu 2
  220919. \fBPR\fP \fI\%#36950\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220920. @ \fI2016\-10\-12 20:57:41 UTC\fP
  220921. .INDENT 2.0
  220922. .IP \(bu 2
  220923. c1f84388d6 Merge pull request \fI\%#36950\fP from rallytime/merge\-2016.3
  220924. .IP \(bu 2
  220925. 1d3ce45ac0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220926. .INDENT 2.0
  220927. .IP \(bu 2
  220928. 2ccc44f314 Merge pull request \fI\%#36914\fP from rallytime/suse_show_link
  220929. .INDENT 2.0
  220930. .IP \(bu 2
  220931. b8ffd9f53f Allow alternatives.show_link function to work on Suse distros
  220932. .UNINDENT
  220933. .UNINDENT
  220934. .IP \(bu 2
  220935. 5362e5183e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220936. .IP \(bu 2
  220937. fe2f094838 salt.modules.gpg: initialize GnuPG home dir with correct ownership (\fI\%#36824\fP)
  220938. .IP \(bu 2
  220939. 4b21cca909 Fix race condition in which files were removed during a file.directory (\fI\%#36928\fP)
  220940. .IP \(bu 2
  220941. 7838d8d3f9 Remove "Targeting with Executions" section from docs (\fI\%#36925\fP)
  220942. .IP \(bu 2
  220943. a56bf8bd2d Update references to future default value change that was reverted (\fI\%#36924\fP)
  220944. .UNINDENT
  220945. .IP \(bu 2
  220946. \fBPR\fP \fI\%#36948\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36943\fP to 2016.3
  220947. @ \fI2016\-10\-12 18:33:02 UTC\fP
  220948. .INDENT 2.0
  220949. .IP \(bu 2
  220950. \fBPR\fP \fI\%#36943\fP: (\fI\%orymate\fP) doc: document what the argument of salt \-\-subset means (refs: \fI\%#36948\fP)
  220951. .IP \(bu 2
  220952. 7e2128c05d Merge pull request \fI\%#36948\fP from rallytime/bp\-36943
  220953. .IP \(bu 2
  220954. d2f8f18430 doc: document what the argument of salt \-\-subset means
  220955. .UNINDENT
  220956. .IP \(bu 2
  220957. \fBPR\fP \fI\%#36946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36892\fP to 2016.3
  220958. @ \fI2016\-10\-12 18:32:35 UTC\fP
  220959. .INDENT 2.0
  220960. .IP \(bu 2
  220961. \fBPR\fP \fI\%#36892\fP: (\fI\%nvtkaszpir\fP) Update tutorial.rst (refs: \fI\%#36946\fP)
  220962. .IP \(bu 2
  220963. f43a10252d Merge pull request \fI\%#36946\fP from rallytime/bp\-36892
  220964. .IP \(bu 2
  220965. 94c97ee726 Update tutorial.rst
  220966. .UNINDENT
  220967. .IP \(bu 2
  220968. \fBISSUE\fP \fI\%#35198\fP: (\fI\%goestin\fP) beacons modules: service fails (refs: \fI\%#35199\fP)
  220969. .IP \(bu 2
  220970. \fBPR\fP \fI\%#36945\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35199\fP to 2016.3
  220971. @ \fI2016\-10\-12 18:31:16 UTC\fP
  220972. .INDENT 2.0
  220973. .IP \(bu 2
  220974. \fBPR\fP \fI\%#35199\fP: (\fI\%goestin\fP) fix for issue \fI\%#35198\fP (refs: \fI\%#36945\fP)
  220975. .IP \(bu 2
  220976. 5c70669ac0 Merge pull request \fI\%#36945\fP from rallytime/bp\-35199
  220977. .IP \(bu 2
  220978. 390b906c2f adhere pep8 e713
  220979. .IP \(bu 2
  220980. 79c9905fc5 Re\-added accidentally removed line 85
  220981. .IP \(bu 2
  220982. 8bba13896a Fixed issue \fI\%#35198\fP now without deprecated code.
  220983. .IP \(bu 2
  220984. 1241d87f1d fix for issue \fI\%#35198\fP
  220985. .IP \(bu 2
  220986. \fBPR\fP \fI\%#36949\fP: (\fI\%terminalmage\fP) Fix versionadded
  220987. .IP \(bu 2
  220988. \fBPR\fP \fI\%#36930\fP: (\fI\%jfindlay\fP) return opennebula errors to user
  220989. .UNINDENT
  220990. .IP \(bu 2
  220991. \fBPR\fP \fI\%#36929\fP: (\fI\%rallytime\fP) [yumpkg] Skip test_pkg_upgrade_has_pending_upgrades if there are no upgrades
  220992. @ \fI2016\-10\-11 22:55:49 UTC\fP
  220993. .INDENT 2.0
  220994. .IP \(bu 2
  220995. 6ea1f59058 Merge pull request \fI\%#36929\fP from rallytime/fix\-pending\-upgrade\-test
  220996. .IP \(bu 2
  220997. 32829b9474 [yumpkg] Skip test_pkg_upgrade_has_pending_upgrades if there are no upgrades
  220998. .UNINDENT
  220999. .IP \(bu 2
  221000. \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)
  221001. .INDENT 2.0
  221002. .IP \(bu 2
  221003. \fBPR\fP \fI\%saltstack/salt#36925\fP: (\fI\%rallytime\fP) Remove "Targeting with Executions" section from docs (refs: \fI\%#36926\fP)
  221004. .IP \(bu 2
  221005. \fBPR\fP \fI\%#36926\fP: (\fI\%rallytime\fP) [2016.3] Remove "Targeting with Executions" section from docs
  221006. .UNINDENT
  221007. .IP \(bu 2
  221008. \fBPR\fP \fI\%#36915\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221009. @ \fI2016\-10\-11 19:49:42 UTC\fP
  221010. .INDENT 2.0
  221011. .IP \(bu 2
  221012. b7f87e0aed Merge pull request \fI\%#36915\fP from rallytime/merge\-2016.3
  221013. .IP \(bu 2
  221014. 971c27cba2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221015. .IP \(bu 2
  221016. f3443fb992 Properly handle "shared" arg in git.init when it is a bool (\fI\%#36912\fP)
  221017. .IP \(bu 2
  221018. bdbf1619cb Check for test=True in salt.wait_for_event orchestration events (\fI\%#36897\fP)
  221019. .IP \(bu 2
  221020. \fBPR\fP \fI\%#36820\fP: (\fI\%BenoitKnecht\fP) Fix diff output of test runs for Debian slave interfaces
  221021. .UNINDENT
  221022. .IP \(bu 2
  221023. \fBISSUE\fP \fI\%#36855\fP: (\fI\%edwardsdanielj\fP) Issue with setting up schedule job via state.apply (refs: \fI\%#36894\fP)
  221024. .INDENT 2.0
  221025. .IP \(bu 2
  221026. \fBPR\fP \fI\%#36894\fP: (\fI\%jfindlay\fP) states.schedule: splay is not ordereddict
  221027. .UNINDENT
  221028. .IP \(bu 2
  221029. \fBPR\fP \fI\%#36885\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221030. @ \fI2016\-10\-10 19:30:25 UTC\fP
  221031. .INDENT 2.0
  221032. .IP \(bu 2
  221033. 86ac8bd680 Merge pull request \fI\%#36885\fP from rallytime/merge\-2016.3
  221034. .IP \(bu 2
  221035. c09b9d6e6a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221036. .INDENT 2.0
  221037. .IP \(bu 2
  221038. 3ce4897b97 Merge pull request \fI\%#36857\fP from terminalmage/systemd\-unit\-tests
  221039. .INDENT 2.0
  221040. .IP \(bu 2
  221041. 7c78d6f419 Add unit tests for systemd scope usage
  221042. .UNINDENT
  221043. .UNINDENT
  221044. .IP \(bu 2
  221045. \fBPR\fP \fI\%#36889\fP: (\fI\%terminalmage\fP) salt\-ssh: Try "command \-v" before falling back to "which"
  221046. .UNINDENT
  221047. .IP \(bu 2
  221048. \fBISSUE\fP \fI\%#36804\fP: (\fI\%Ch3LL\fP) CARBON: error when using pkg.installed with url source (refs: \fI\%#36830\fP)
  221049. .INDENT 2.0
  221050. .IP \(bu 2
  221051. \fBPR\fP \fI\%#36830\fP: (\fI\%terminalmage\fP) fileclient: Change queryarg comparison from None to simple boolean check
  221052. .UNINDENT
  221053. .IP \(bu 2
  221054. \fBPR\fP \fI\%#36853\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33939\fP to 2016.3
  221055. @ \fI2016\-10\-07 21:44:33 UTC\fP
  221056. .INDENT 2.0
  221057. .IP \(bu 2
  221058. \fBPR\fP \fI\%#33939\fP: (\fI\%bx2\fP) Removed \fI!\fP\-password check for salt\-cloud vultr provider (refs: \fI\%#36853\fP)
  221059. .IP \(bu 2
  221060. 6a6bdf3e3f Merge pull request \fI\%#36853\fP from rallytime/bp\-33939
  221061. .IP \(bu 2
  221062. efbc09c1a6 Removed \fI!\fP\-password check
  221063. .UNINDENT
  221064. .IP \(bu 2
  221065. \fBPR\fP \fI\%#36852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36743\fP to 2016.3
  221066. @ \fI2016\-10\-07 21:35:43 UTC\fP
  221067. .INDENT 2.0
  221068. .IP \(bu 2
  221069. \fBPR\fP \fI\%#36743\fP: (\fI\%do3meli\fP) corrected OS Name in openbsd_sysctl module load error message (refs: \fI\%#36852\fP)
  221070. .IP \(bu 2
  221071. 01348bde18 Merge pull request \fI\%#36852\fP from rallytime/bp\-36743
  221072. .IP \(bu 2
  221073. 899130d11f corrected OS Name in module load error message
  221074. .UNINDENT
  221075. .IP \(bu 2
  221076. \fBPR\fP \fI\%#36844\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221077. @ \fI2016\-10\-07 19:20:31 UTC\fP
  221078. .INDENT 2.0
  221079. .IP \(bu 2
  221080. 0b7661244d Merge pull request \fI\%#36844\fP from rallytime/merge\-2016.3
  221081. .IP \(bu 2
  221082. 1c3a9a3ee9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221083. .INDENT 2.0
  221084. .IP \(bu 2
  221085. 3e6b16de2b Merge pull request \fI\%#36786\fP from cachedout/fixup_36676
  221086. .INDENT 2.0
  221087. .IP \(bu 2
  221088. 3c93134e57 Typo
  221089. .IP \(bu 2
  221090. 13eb463bd9 Fixup alterernatives module
  221091. .UNINDENT
  221092. .IP \(bu 2
  221093. c126f2e132 Merge pull request \fI\%#36757\fP from cachedout/issue_33841
  221094. .INDENT 2.0
  221095. .IP \(bu 2
  221096. 4bce452500 Resolve issue with minion failing to restart on failure
  221097. .UNINDENT
  221098. .IP \(bu 2
  221099. 89f9fc8c0d Merge pull request \fI\%#36749\fP from jacobhammons/file\-dict
  221100. .INDENT 2.0
  221101. .IP \(bu 2
  221102. 71f91b3a50 Fixes the cli examples to reference the correct function
  221103. .UNINDENT
  221104. .IP \(bu 2
  221105. 804a2a1ab0 Merge pull request \fI\%#36730\fP from rallytime/bp\-36028
  221106. .INDENT 2.0
  221107. .IP \(bu 2
  221108. 4be4f900ee Back\-port \fI\%#36028\fP to 2015.8
  221109. .UNINDENT
  221110. .UNINDENT
  221111. .UNINDENT
  221112. .IP \(bu 2
  221113. \fBPR\fP \fI\%#36835\fP: (\fI\%jfindlay\fP) unify and expand beacon documentation
  221114. @ \fI2016\-10\-07 15:59:34 UTC\fP
  221115. .INDENT 2.0
  221116. .IP \(bu 2
  221117. \fBPR\fP \fI\%#36808\fP: (\fI\%gtmanfred\fP) allow for closing stuff in beacons (refs: \fI\%#36835\fP)
  221118. .IP \(bu 2
  221119. dc5d821be6 Merge pull request \fI\%#36835\fP from jfindlay/beacon_doc
  221120. .IP \(bu 2
  221121. b2eccdefd5 doc.topics.beacons: reflow text at 80 chars
  221122. .IP \(bu 2
  221123. b181f9890d doc.topics.{reactor|beacons}: unify examples, many minor edits
  221124. .IP \(bu 2
  221125. 28b4e30009 doc.glossary: use parenthesis
  221126. .IP \(bu 2
  221127. 82cf39db00 doc.glossary: add JID
  221128. .IP \(bu 2
  221129. cc071b75cb doc.glossary: add idempotent
  221130. .UNINDENT
  221131. .IP \(bu 2
  221132. \fBISSUE\fP \fI\%#36787\fP: (\fI\%maximeguillet\fP) postgres.* calls fail with postgresql 9.6 and .psqlrc custom file (refs: \fI\%#36789\fP)
  221133. .IP \(bu 2
  221134. \fBPR\fP \fI\%#36789\fP: (\fI\%maximeguillet\fP) Fix behavior of psql \-c option with postgresql 9.6
  221135. @ \fI2016\-10\-06 11:24:51 UTC\fP
  221136. .INDENT 2.0
  221137. .IP \(bu 2
  221138. 1284de27fc Merge pull request \fI\%#36789\fP from maximeguillet/fix\-psqlrc\-pg9.6
  221139. .IP \(bu 2
  221140. b59c23bef1 Fix one remaining postgresql tests linked to \fI\%#36787\fP\&.
  221141. .IP \(bu 2
  221142. 8b92ae2061 Fix postgresql tests using position in the argument list of psql.
  221143. .IP \(bu 2
  221144. 21f2a17a07 Fix postgresql tests by adding \-\-no\-psqlrc option introduced by \fI\%#36787\fP\&.
  221145. .IP \(bu 2
  221146. 574e30e915 Fix behavior of psql \-c option with postgresql 9.6
  221147. .UNINDENT
  221148. .IP \(bu 2
  221149. \fBISSUE\fP \fI\%#36579\fP: (\fI\%scubahub\fP) No error generated when reactor file does not exist. (refs: \fI\%#36797\fP)
  221150. .IP \(bu 2
  221151. \fBPR\fP \fI\%#36797\fP: (\fI\%cachedout\fP) Error on reaction with missing SLS file
  221152. @ \fI2016\-10\-06 11:19:27 UTC\fP
  221153. .INDENT 2.0
  221154. .IP \(bu 2
  221155. a1d59f4d2f Merge pull request \fI\%#36797\fP from cachedout/issue_36579
  221156. .IP \(bu 2
  221157. 6ce4653fa3 Error on reaction with missing SLS file
  221158. .UNINDENT
  221159. .IP \(bu 2
  221160. \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)
  221161. .IP \(bu 2
  221162. \fBPR\fP \fI\%#36803\fP: (\fI\%gtmanfred\fP) do not load libvirt pillar if certtool is unavailable
  221163. @ \fI2016\-10\-06 11:15:14 UTC\fP
  221164. .INDENT 2.0
  221165. .IP \(bu 2
  221166. b75130be2d Merge pull request \fI\%#36803\fP from gtmanfred/2016.3
  221167. .IP \(bu 2
  221168. 2183737085 do not load libvirt pillar if certtool is unavailable
  221169. .UNINDENT
  221170. .IP \(bu 2
  221171. \fBPR\fP \fI\%#36815\fP: (\fI\%BenoitKnecht\fP) Fix glance.image_present state
  221172. @ \fI2016\-10\-06 10:29:44 UTC\fP
  221173. .INDENT 2.0
  221174. .IP \(bu 2
  221175. 39148dc711 Merge pull request \fI\%#36815\fP from BenoitKnecht/fix\-glance\-image\-present\-state\-2016.3
  221176. .IP \(bu 2
  221177. 342eee444d states: glance: handle image list instead of dict
  221178. .IP \(bu 2
  221179. 02b91ecf15 states: glance: import keystone exceptions from new location
  221180. .UNINDENT
  221181. .IP \(bu 2
  221182. \fBISSUE\fP \fI\%#36738\fP: (\fI\%edhgoose\fP) rpmdev\-vercmp throws lots of warnings on Amazon Linux (refs: \fI\%#36739\fP)
  221183. .IP \(bu 2
  221184. \fBPR\fP \fI\%#36754\fP: (\fI\%terminalmage\fP) Base rpmdev\-vercmp comparison result on retcode
  221185. @ \fI2016\-10\-05 12:50:23 UTC\fP
  221186. .INDENT 2.0
  221187. .IP \(bu 2
  221188. \fBPR\fP \fI\%#36739\fP: (\fI\%edhgoose\fP) Add support for rpmdevtools returning < / > / == (refs: \fI\%#36754\fP)
  221189. .IP \(bu 2
  221190. 81c935f210 Merge pull request \fI\%#36754\fP from terminalmage/issue36738
  221191. .IP \(bu 2
  221192. 928c99d2f7 Base rpmdev\-vercmp comparison result on retcode
  221193. .IP \(bu 2
  221194. \fBPR\fP \fI\%saltstack/salt#36728\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36785\fP)
  221195. .UNINDENT
  221196. .IP \(bu 2
  221197. \fBPR\fP \fI\%#36785\fP: (\fI\%cachedout\fP) Fixup merge forward \fI\%#36728\fP
  221198. @ \fI2016\-10\-05 11:02:16 UTC\fP
  221199. .INDENT 2.0
  221200. .IP \(bu 2
  221201. \fBPR\fP \fI\%#36728\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36785\fP)
  221202. .IP \(bu 2
  221203. 4bdb997dae Merge pull request \fI\%#36785\fP from cachedout/pr\-36728
  221204. .IP \(bu 2
  221205. 118ba8a772 Update alternatives module to strip newline chars
  221206. .IP \(bu 2
  221207. 24b8bba145 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221208. .INDENT 2.0
  221209. .IP \(bu 2
  221210. a01a68d4be Merge pull request \fI\%#36676\fP from vutny/redhat\-alternatives\-detect\-fail
  221211. .INDENT 2.0
  221212. .IP \(bu 2
  221213. bba9d0d105 \fIalternatives.install\fP state: detect \fIalternatives\fP command failed
  221214. .UNINDENT
  221215. .IP \(bu 2
  221216. eab4fd563a Merge pull request \fI\%#36700\fP from terminalmage/update\-faq
  221217. .INDENT 2.0
  221218. .IP \(bu 2
  221219. 3d15eedfe0 Add additional information about onchanges/onchanges_in
  221220. .IP \(bu 2
  221221. 57ecbe6c53 Update minion restart example to use onchanges instead of cmd.wait
  221222. .UNINDENT
  221223. .UNINDENT
  221224. .UNINDENT
  221225. .IP \(bu 2
  221226. \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)
  221227. .IP \(bu 2
  221228. \fBPR\fP \fI\%#36768\fP: (\fI\%gtmanfred\fP) add __utils__ to vultr cloud provider
  221229. @ \fI2016\-10\-05 06:59:27 UTC\fP
  221230. .INDENT 2.0
  221231. .IP \(bu 2
  221232. 90cca6b135 Merge pull request \fI\%#36768\fP from gtmanfred/2016.3
  221233. .IP \(bu 2
  221234. 9df2fd11dd add __utils__ to vultr cloud provider
  221235. .UNINDENT
  221236. .IP \(bu 2
  221237. \fBPR\fP \fI\%#36764\fP: (\fI\%cachedout\fP) Another bit of detection for failed pip tests
  221238. @ \fI2016\-10\-04 13:05:29 UTC\fP
  221239. .INDENT 2.0
  221240. .IP \(bu 2
  221241. 8ff69bf0c7 Merge pull request \fI\%#36764\fP from cachedout/more_pip_test_fixing
  221242. .IP \(bu 2
  221243. b9f5343449 Another bit of detection for failed pip tests
  221244. .UNINDENT
  221245. .IP \(bu 2
  221246. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  221247. .IP \(bu 2
  221248. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  221249. .IP \(bu 2
  221250. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  221251. .IP \(bu 2
  221252. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  221253. .INDENT 2.0
  221254. .IP \(bu 2
  221255. \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)
  221256. .IP \(bu 2
  221257. \fBPR\fP \fI\%saltstack/salt#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36747\fP)
  221258. .IP \(bu 2
  221259. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  221260. .UNINDENT
  221261. .IP \(bu 2
  221262. \fBPR\fP \fI\%#36747\fP: (\fI\%jfindlay\fP) modules.archive integration tests: check for gzip, rar
  221263. @ \fI2016\-10\-04 11:47:32 UTC\fP
  221264. .INDENT 2.0
  221265. .IP \(bu 2
  221266. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221267. .IP \(bu 2
  221268. \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_)
  221269. .IP \(bu 2
  221270. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221271. .IP \(bu 2
  221272. \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_)
  221273. .IP \(bu 2
  221274. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221275. .IP \(bu 2
  221276. 5c0cbfc4c6 Merge pull request \fI\%#36747\fP from jfindlay/arch_test
  221277. .IP \(bu 2
  221278. b5fcca9983 modules.archive int tests: check for gzip, rar
  221279. .UNINDENT
  221280. .IP \(bu 2
  221281. \fBPR\fP \fI\%#36744\fP: (\fI\%cachedout\fP) Fix issue where test suite could hang on shutdown
  221282. @ \fI2016\-10\-03 15:37:00 UTC\fP
  221283. .INDENT 2.0
  221284. .IP \(bu 2
  221285. 93f1daa4ce Merge pull request \fI\%#36744\fP from cachedout/fix_test_shutdown
  221286. .IP \(bu 2
  221287. cdf2a56564 Fix issue where test suite could hang on shutdown
  221288. .UNINDENT
  221289. .IP \(bu 2
  221290. \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)
  221291. .IP \(bu 2
  221292. \fBPR\fP \fI\%#36696\fP: (\fI\%cro\fP) pass __proxy__ in state.sls_id
  221293. @ \fI2016\-10\-01 09:37:50 UTC\fP
  221294. .INDENT 2.0
  221295. .IP \(bu 2
  221296. 6fa9ec36d2 Merge pull request \fI\%#36696\fP from cro/proxy_in_sls_id
  221297. .IP \(bu 2
  221298. 891004f3be try/except for when __proxy__ is not injected.
  221299. .IP \(bu 2
  221300. e8e53d60be pass __proxy__ in state.sls_id
  221301. .UNINDENT
  221302. .IP \(bu 2
  221303. \fBPR\fP \fI\%#36716\fP: (\fI\%vutny\fP) salt.modules.ini_manage: fix creating options in empty file
  221304. @ \fI2016\-10\-01 09:35:11 UTC\fP
  221305. .INDENT 2.0
  221306. .IP \(bu 2
  221307. e0b288feb3 Merge pull request \fI\%#36716\fP from vutny/fix\-ini\-manage
  221308. .IP \(bu 2
  221309. 73eb773fb0 salt.modules.ini_manage: fix creating options in empty file
  221310. .UNINDENT
  221311. .IP \(bu 2
  221312. \fBISSUE\fP \fI\%#29421\fP: (\fI\%scbunn\fP) pillar data leaks through environments (refs: \fI\%#36435\fP, #saltstack/salt\(ga#36435\(ga_)
  221313. .INDENT 2.0
  221314. .IP \(bu 2
  221315. \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)
  221316. .IP \(bu 2
  221317. \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)
  221318. .UNINDENT
  221319. .IP \(bu 2
  221320. \fBPR\fP \fI\%#36724\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36628\fP to 2016.3
  221321. @ \fI2016\-10\-01 09:33:43 UTC\fP
  221322. .INDENT 2.0
  221323. .IP \(bu 2
  221324. \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)
  221325. .IP \(bu 2
  221326. 97713b09f5 Merge pull request \fI\%#36724\fP from rallytime/bp\-36628
  221327. .IP \(bu 2
  221328. 3bb2cb6379 Update doc to reflect the version where \(aqnone\(aq was added as a pillar_source_merging_strategy
  221329. .IP \(bu 2
  221330. \fBPR\fP \fI\%saltstack/salt#36643\fP: (\fI\%roosri\fP) a small, and unfortunate error (refs: \fI\%#36725\fP)
  221331. .UNINDENT
  221332. .IP \(bu 2
  221333. \fBPR\fP \fI\%#36725\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36643\fP to 2016.3
  221334. @ \fI2016\-10\-01 09:33:13 UTC\fP
  221335. .INDENT 2.0
  221336. .IP \(bu 2
  221337. \fBPR\fP \fI\%#36643\fP: (\fI\%roosri\fP) a small, and unfortunate error (refs: \fI\%#36725\fP)
  221338. .IP \(bu 2
  221339. 8e7529764b Merge pull request \fI\%#36725\fP from rallytime/bp\-36643
  221340. .IP \(bu 2
  221341. c5b8e442f9 a small, and unfortunate error
  221342. .UNINDENT
  221343. .IP \(bu 2
  221344. \fBPR\fP \fI\%#36726\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36722\fP to 2016.3
  221345. @ \fI2016\-10\-01 09:32:53 UTC\fP
  221346. .INDENT 2.0
  221347. .IP \(bu 2
  221348. \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)
  221349. .IP \(bu 2
  221350. cf32c59b6a Merge pull request \fI\%#36726\fP from rallytime/bp\-36722
  221351. .IP \(bu 2
  221352. 5904cc04c6 Skip cmd_unzip test if salt.utils.which(\(aqzip\(aq) isn\(aqt available
  221353. .UNINDENT
  221354. .IP \(bu 2
  221355. \fBISSUE\fP \fI\%saltstack/salt#36718\fP: (\fI\%Ch3LL\fP) Error when using archive.zip on python2.6 (refs: \fI\%#36719\fP)
  221356. .INDENT 2.0
  221357. .IP \(bu 2
  221358. \fBPR\fP \fI\%#36719\fP: (\fI\%Ch3LL\fP) fix python26 archive zip module
  221359. .IP \(bu 2
  221360. \fBPR\fP \fI\%saltstack/salt#36616\fP: (\fI\%cro\fP) Zypper fix test (refs: \fI\%#36699\fP)
  221361. .UNINDENT
  221362. .IP \(bu 2
  221363. \fBPR\fP \fI\%#36699\fP: (\fI\%cachedout\fP) Fix error in test
  221364. @ \fI2016\-09\-30 11:28:18 UTC\fP
  221365. .INDENT 2.0
  221366. .IP \(bu 2
  221367. 7d022a3f39 Merge pull request \fI\%#36699\fP from cachedout/fixup_36616
  221368. .IP \(bu 2
  221369. 16f5bb70ec Remove line that checks against unordered keys
  221370. .IP \(bu 2
  221371. 0e9148293a Fix error in test
  221372. .UNINDENT
  221373. .IP \(bu 2
  221374. \fBISSUE\fP \fI\%#36669\fP: (\fI\%jackywu\fP) fix bug of including loopback addr will never work (refs: \fI\%#36670\fP)
  221375. .IP \(bu 2
  221376. \fBPR\fP \fI\%#36670\fP: (\fI\%jackywu\fP) fix bug for including loopback addr
  221377. @ \fI2016\-09\-30 10:21:53 UTC\fP
  221378. .INDENT 2.0
  221379. .IP \(bu 2
  221380. 0aa35596c0 Merge pull request \fI\%#36670\fP from jackywu/2016.3
  221381. .IP \(bu 2
  221382. 48d2d512d8 fix bug for including loopback addr
  221383. .UNINDENT
  221384. .IP \(bu 2
  221385. \fBISSUE\fP \fI\%#36692\fP: (\fI\%lorengordon\fP) Expose \fIignore_if_missing\fP param to the file.replace state (refs: \fI\%#36694\fP)
  221386. .IP \(bu 2
  221387. \fBPR\fP \fI\%#36694\fP: (\fI\%lorengordon\fP) Exposes \fIignore_if_missing\fP to file.replace state module
  221388. @ \fI2016\-09\-30 10:12:27 UTC\fP
  221389. .INDENT 2.0
  221390. .IP \(bu 2
  221391. 0e8c9abe8d Merge pull request \fI\%#36694\fP from lorengordon/issue\-36692
  221392. .IP \(bu 2
  221393. 35f3bb3a8a Exposes \fIignore_if_missing\fP to file.replace state module
  221394. .IP \(bu 2
  221395. \fBPR\fP \fI\%saltstack/salt#35356\fP: (\fI\%jfindlay\fP) document log levels and warn on all logging below info (refs: \fI\%#36686\fP)
  221396. .UNINDENT
  221397. .IP \(bu 2
  221398. \fBPR\fP \fI\%#36686\fP: (\fI\%jfindlay\fP) log levels doc: try long form table
  221399. @ \fI2016\-09\-29 18:21:47 UTC\fP
  221400. .INDENT 2.0
  221401. .IP \(bu 2
  221402. c089ac6c67 Merge pull request \fI\%#36686\fP from jfindlay/log_levels
  221403. .IP \(bu 2
  221404. 4dd4fc94dc log levels doc: try long form table
  221405. .UNINDENT
  221406. .IP \(bu 2
  221407. \fBPR\fP \fI\%#36690\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221408. @ \fI2016\-09\-29 17:46:24 UTC\fP
  221409. .INDENT 2.0
  221410. .IP \(bu 2
  221411. e0a851b2f1 Merge pull request \fI\%#36690\fP from rallytime/merge\-2016.3
  221412. .IP \(bu 2
  221413. 7fc38c9aca Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221414. .IP \(bu 2
  221415. 7d1972bd5c Merge pull request \fI\%#36684\fP from rallytime/merge\-2015.8
  221416. .INDENT 2.0
  221417. .IP \(bu 2
  221418. 838722d225 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  221419. .IP \(bu 2
  221420. 8f1ba2fa26 Merge pull request \fI\%#36678\fP from rallytime/merge\-2015.5
  221421. .IP \(bu 2
  221422. 51240ecb13 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  221423. .IP \(bu 2
  221424. 86dc3dc9f7 Merge pull request \fI\%#36641\fP from fuzzy\-id/fix\-lvm\-thin\-argument
  221425. .IP \(bu 2
  221426. 740516aace fix thin argument for \(aqlvm.lv_create\(aq
  221427. .UNINDENT
  221428. .UNINDENT
  221429. .IP \(bu 2
  221430. \fBPR\fP \fI\%#36680\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221431. @ \fI2016\-09\-29 16:49:16 UTC\fP
  221432. .INDENT 2.0
  221433. .IP \(bu 2
  221434. f95dd696e5 Merge pull request \fI\%#36680\fP from rallytime/merge\-2016.3
  221435. .IP \(bu 2
  221436. 3e4ac617d3 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221437. .IP \(bu 2
  221438. e4c5d0bfd6 Merge pull request \fI\%#36664\fP from cachedout/remove_useless_size_check
  221439. .INDENT 2.0
  221440. .IP \(bu 2
  221441. 3d098c64ef Remove possible race between grains dumps in test
  221442. .UNINDENT
  221443. .IP \(bu 2
  221444. 8cfe371a5a Merge pull request \fI\%#36663\fP from cachedout/skip_pip_tests_on_download_fail
  221445. .INDENT 2.0
  221446. .IP \(bu 2
  221447. 0c7fb91dc5 Fix error
  221448. .UNINDENT
  221449. .IP \(bu 2
  221450. e3f8618982 Merge pull request \fI\%#36662\fP from cachedout/skip_pip_tests_on_download_fail
  221451. .INDENT 2.0
  221452. .IP \(bu 2
  221453. 0bbc60ccd7 Skip over tests where upstream pip isn\(aqt there
  221454. .UNINDENT
  221455. .IP \(bu 2
  221456. 3249a11e71 Merge pull request \fI\%#36661\fP from cachedout/fix_grain_test_race
  221457. .INDENT 2.0
  221458. .IP \(bu 2
  221459. 2dcb92134d Fix race between minion job timeout and cli test timeout
  221460. .UNINDENT
  221461. .IP \(bu 2
  221462. b0190f248e Merge pull request \fI\%#36660\fP from cachedout/fix_2068_issue_test
  221463. .INDENT 2.0
  221464. .IP \(bu 2
  221465. f4906fe771 Fix test not to rely on external resources
  221466. .UNINDENT
  221467. .UNINDENT
  221468. .IP \(bu 2
  221469. \fBISSUE\fP \fI\%#28125\fP: (\fI\%peter\-slovak\fP) [2015.8] support for __env__ in Git external pillar (refs: \fI\%#36659\fP)
  221470. .IP \(bu 2
  221471. \fBPR\fP \fI\%#36659\fP: (\fI\%terminalmage\fP) Support dynamic env in new\-style git_pillar
  221472. @ \fI2016\-09\-29 05:04:38 UTC\fP
  221473. .INDENT 2.0
  221474. .IP \(bu 2
  221475. eab1680f3f Merge pull request \fI\%#36659\fP from terminalmage/issue28125
  221476. .IP \(bu 2
  221477. 45352b36bd Support dynamic env in new\-style git_pillar
  221478. .UNINDENT
  221479. .IP \(bu 2
  221480. \fBISSUE\fP \fI\%#34927\fP: (\fI\%bobrik\fP) Salt does not run "systemd daemon\-reload" on unit override (refs: \fI\%#36538\fP)
  221481. .IP \(bu 2
  221482. \fBPR\fP \fI\%#36538\fP: (\fI\%clinta\fP) daemon\-reload on call to service.avaliable
  221483. @ \fI2016\-09\-29 02:28:00 UTC\fP
  221484. .INDENT 2.0
  221485. .IP \(bu 2
  221486. 0c2bd4b66b Merge pull request \fI\%#36538\fP from clinta/daemon\-reload
  221487. .IP \(bu 2
  221488. 833beb9b36 Merge pull request \fI\%#1\fP from terminalmage/pr\-36538
  221489. .INDENT 2.0
  221490. .IP \(bu 2
  221491. c4060ba2c1 Move check for service availability to a helper function
  221492. .UNINDENT
  221493. .IP \(bu 2
  221494. 20c2c91bba daemon\-reload on call to service.avaliable
  221495. .UNINDENT
  221496. .IP \(bu 2
  221497. \fBPR\fP \fI\%#36616\fP: (\fI\%cro\fP) Zypper fix test
  221498. @ \fI2016\-09\-29 02:26:22 UTC\fP
  221499. .INDENT 2.0
  221500. .IP \(bu 2
  221501. d8a61eb9f6 Merge pull request \fI\%#36616\fP from cro/zypper_fix_test
  221502. .IP \(bu 2
  221503. b618a5c07d Remove debugging
  221504. .IP \(bu 2
  221505. 3870589462 Test for pkg.upgrade. Most robust on Suse but better than nothing elsewhere
  221506. .IP \(bu 2
  221507. 867638ff48 Test for pkg.upgrade. Most robust on Suse but better than nothing elsewhere
  221508. .UNINDENT
  221509. .IP \(bu 2
  221510. \fBPR\fP \fI\%#36621\fP: (\fI\%terminalmage\fP) Fix shadowed builtins
  221511. @ \fI2016\-09\-29 02:25:54 UTC\fP
  221512. .INDENT 2.0
  221513. .IP \(bu 2
  221514. ccd92d22d2 Merge pull request \fI\%#36621\fP from terminalmage/fix\-shadowed\-builtins
  221515. .IP \(bu 2
  221516. 62729eff8d Update tests to include fix for renamed function
  221517. .IP \(bu 2
  221518. 283aca8f2a Update test to reflect new function signature
  221519. .IP \(bu 2
  221520. 0f158b5edd Fix shadowed builtins
  221521. .IP \(bu 2
  221522. \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)
  221523. .UNINDENT
  221524. .IP \(bu 2
  221525. \fBPR\fP \fI\%#36636\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36618\fP to 2016.3
  221526. @ \fI2016\-09\-29 02:23:09 UTC\fP
  221527. .INDENT 2.0
  221528. .IP \(bu 2
  221529. \fBPR\fP \fI\%#36618\fP: (\fI\%onorua\fP) Fix memory leak for 0mq transport in case of TCP DDOS (refs: \fI\%#36636\fP)
  221530. .IP \(bu 2
  221531. 24f82b2809 Merge pull request \fI\%#36636\fP from rallytime/bp\-36618
  221532. .IP \(bu 2
  221533. 275845c3d2 Fix memory leak for 0mq transport
  221534. .UNINDENT
  221535. .IP \(bu 2
  221536. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  221537. .IP \(bu 2
  221538. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  221539. .IP \(bu 2
  221540. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  221541. .IP \(bu 2
  221542. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  221543. .INDENT 2.0
  221544. .IP \(bu 2
  221545. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  221546. .UNINDENT
  221547. .IP \(bu 2
  221548. \fBPR\fP \fI\%#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36986\fP)
  221549. @ \fI2016\-09\-29 02:16:54 UTC\fP
  221550. .INDENT 2.0
  221551. .IP \(bu 2
  221552. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221553. .IP \(bu 2
  221554. \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_)
  221555. .IP \(bu 2
  221556. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221557. .IP \(bu 2
  221558. \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_)
  221559. .IP \(bu 2
  221560. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221561. .IP \(bu 2
  221562. 750ff8220c Merge pull request \fI\%#36648\fP from jfindlay/arch_test
  221563. .IP \(bu 2
  221564. cc4d958557 modules.archive: add integration tests
  221565. .IP \(bu 2
  221566. 99bf89447b modules.archive: add opts arg to g(un)zip
  221567. .IP \(bu 2
  221568. c1219e68c5 modules.archive.unzip: depend on zipfile module
  221569. .IP \(bu 2
  221570. 315b031de9 modules.archive: use less redundant message
  221571. .IP \(bu 2
  221572. \fBPR\fP \fI\%saltstack/salt#36389\fP: (\fI\%cachedout\fP) Pr 36386 (refs: \fI\%#36650\fP)
  221573. .UNINDENT
  221574. .IP \(bu 2
  221575. \fBPR\fP \fI\%#36650\fP: (\fI\%rallytime\fP) Revert "Pr 36386"
  221576. @ \fI2016\-09\-29 02:11:15 UTC\fP
  221577. .INDENT 2.0
  221578. .IP \(bu 2
  221579. \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_)
  221580. .IP \(bu 2
  221581. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: \fI\%#36386\fP)
  221582. .IP \(bu 2
  221583. 91aa464d5d Merge pull request \fI\%#36650\fP from saltstack/revert\-36389\-pr\-36386
  221584. .IP \(bu 2
  221585. 33ef5bffe6 Revert "Pr 36386"
  221586. .UNINDENT
  221587. .IP \(bu 2
  221588. \fBISSUE\fP \fI\%#36304\fP: (\fI\%Ch3LL\fP) stack trace when transport is not a currently supported transport (refs: \fI\%#36646\fP)
  221589. .IP \(bu 2
  221590. \fBPR\fP \fI\%#36646\fP: (\fI\%rallytime\fP) Provide an error message when invalid transport is set
  221591. @ \fI2016\-09\-28 22:52:11 UTC\fP
  221592. .INDENT 2.0
  221593. .IP \(bu 2
  221594. ab5c0e9e65 Merge pull request \fI\%#36646\fP from rallytime/fix\-36304
  221595. .IP \(bu 2
  221596. ae021d6dec Provide an error message when invalid transport is set
  221597. .UNINDENT
  221598. .IP \(bu 2
  221599. \fBPR\fP \fI\%#36635\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221600. @ \fI2016\-09\-28 21:10:25 UTC\fP
  221601. .INDENT 2.0
  221602. .IP \(bu 2
  221603. 6d9b28506c Merge pull request \fI\%#36635\fP from rallytime/merge\-2016.3
  221604. .IP \(bu 2
  221605. 787c1f557e Pylint fix
  221606. .IP \(bu 2
  221607. da574e5b03 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221608. .IP \(bu 2
  221609. f0d561a229 Merge pull request \fI\%#36632\fP from isbm/isbm\-thin\-modules\-config\-15.8
  221610. .INDENT 2.0
  221611. .IP \(bu 2
  221612. 975f8bb27d Add extra\-mods options to the Salt\-Thin via SSH CLI
  221613. .IP \(bu 2
  221614. a441b35588 Add documentation about Salt Thin configuration
  221615. .IP \(bu 2
  221616. 3bfb17ee62 Add a description of the thin/min parameters to the master config
  221617. .IP \(bu 2
  221618. 3d878f9da5 Get the thin Salt with configured extra modules on SSH
  221619. .IP \(bu 2
  221620. 2be9330be6 Add thin options to the master config.
  221621. .IP \(bu 2
  221622. 58577d342e Generate thin with configured extrta modules
  221623. .UNINDENT
  221624. .UNINDENT
  221625. .IP \(bu 2
  221626. \fBISSUE\fP \fI\%#36553\fP: (\fI\%nilliams\fP) states.hg.latest claims to succeed despite errors (refs: \fI\%#36620\fP)
  221627. .IP \(bu 2
  221628. \fBPR\fP \fI\%#36620\fP: (\fI\%rallytime\fP) Don\(aqt allow mercurial states to return True with errors
  221629. @ \fI2016\-09\-28 05:50:50 UTC\fP
  221630. .INDENT 2.0
  221631. .IP \(bu 2
  221632. 83da81cdfd Merge pull request \fI\%#36620\fP from rallytime/fix\-36553
  221633. .IP \(bu 2
  221634. a828bdd0b8 Update test mocks for cmd.run_all dicts
  221635. .IP \(bu 2
  221636. 3904dfc5a8 Don\(aqt allow mercurial states to return True with errors
  221637. .UNINDENT
  221638. .IP \(bu 2
  221639. \fBPR\fP \fI\%#36622\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221640. @ \fI2016\-09\-28 05:39:43 UTC\fP
  221641. .INDENT 2.0
  221642. .IP \(bu 2
  221643. 1c001d0ee1 Merge pull request \fI\%#36622\fP from rallytime/merge\-2016.3
  221644. .IP \(bu 2
  221645. 90c66ef756 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221646. .INDENT 2.0
  221647. .IP \(bu 2
  221648. 9b9e167b47 Merge pull request \fI\%#36562\fP from kiorky/s2015.8
  221649. .INDENT 2.0
  221650. .IP \(bu 2
  221651. 47c3d03035 Fix pkg.latest_version using localized output
  221652. .UNINDENT
  221653. .IP \(bu 2
  221654. 4ab52ae0f6 Merge pull request \fI\%#36607\fP from vutny/detect\-service\-fail
  221655. .INDENT 2.0
  221656. .IP \(bu 2
  221657. c4f899b3b3 \fIsalt.states.service\fP: detect that service failed to start/stop
  221658. .UNINDENT
  221659. .IP \(bu 2
  221660. 5de036b56c Merge pull request \fI\%#36611\fP from multani/2015.8
  221661. .INDENT 2.0
  221662. .IP \(bu 2
  221663. 79fdc12395 jinja: fix YAML terminator removal in Jinja\(aqs "yaml" filter
  221664. .UNINDENT
  221665. .IP \(bu 2
  221666. 6e36191fc4 Fix trust key 2015.8 (\fI\%#36540\fP)
  221667. .UNINDENT
  221668. .UNINDENT
  221669. .IP \(bu 2
  221670. \fBPR\fP \fI\%#36520\fP: (\fI\%twangboy\fP) Fix cmd.script runas for Windows
  221671. @ \fI2016\-09\-28 04:07:00 UTC\fP
  221672. .INDENT 2.0
  221673. .IP \(bu 2
  221674. e7def534b1 Merge pull request \fI\%#36520\fP from twangboy/fix_cmd.script_runas
  221675. .IP \(bu 2
  221676. 377ced5c24 Remove directory in Windows with runas
  221677. .IP \(bu 2
  221678. 25d52efeac Fix mkdir
  221679. .IP \(bu 2
  221680. 18d41f7711 Add mkdir
  221681. .IP \(bu 2
  221682. 9d55bff914 Use cachedir for Windows
  221683. .UNINDENT
  221684. .IP \(bu 2
  221685. \fBISSUE\fP \fI\%saltstack/salt#32368\fP: (\fI\%vitaliyf\fP) Low timeout values causes duplicate commands to execute (refs: \fI\%#36564\fP)
  221686. .IP \(bu 2
  221687. \fBPR\fP \fI\%#36564\fP: (\fI\%DmitryKuzmenko\fP) Improve and fix \fI_check_cache_minions\fP
  221688. @ \fI2016\-09\-28 02:50:54 UTC\fP
  221689. .INDENT 2.0
  221690. .IP \(bu 2
  221691. 798bf3086b Merge pull request \fI\%#36564\fP from DSRCorporation/bugs/32368_grains_match_bug
  221692. .IP \(bu 2
  221693. be61f97db3 Minor: syntax error fixes.
  221694. .IP \(bu 2
  221695. 29660ed672 Improve and fix \fI_check_cache_minions\fP
  221696. .UNINDENT
  221697. .IP \(bu 2
  221698. \fBPR\fP \fI\%#36606\fP: (\fI\%danlsgiga\fP) Add support for ACL Tokens in consul_pillar with the option consul.token
  221699. @ \fI2016\-09\-28 02:46:03 UTC\fP
  221700. .INDENT 2.0
  221701. .IP \(bu 2
  221702. 133705d567 Merge pull request \fI\%#36606\fP from danlsgiga/consul_pillar_token
  221703. .IP \(bu 2
  221704. a5907c9c89 Add support for ACL Tokens in consul_pillar with the option consul.token
  221705. .UNINDENT
  221706. .IP \(bu 2
  221707. \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)
  221708. @ \fI2016\-09\-28 02:35:56 UTC\fP
  221709. .INDENT 2.0
  221710. .IP \(bu 2
  221711. \fBPR\fP \fI\%#36589\fP: (\fI\%slinn0\fP) Do not generate pchanges in file.managed unless test=True (refs: \fI\%#36613\fP)
  221712. .IP \(bu 2
  221713. b365f1e34d Merge pull request \fI\%#36613\fP from slinn0/2016.3_36588_fixes
  221714. .IP \(bu 2
  221715. d9da5cb2d4 Backport of PR \fI\%#36589\fP / Issue \fI\%#36588\fP to 2016.3 branch.
  221716. .UNINDENT
  221717. .IP \(bu 2
  221718. \fBPR\fP \fI\%#36609\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221719. @ \fI2016\-09\-27 18:34:22 UTC\fP
  221720. .INDENT 2.0
  221721. .IP \(bu 2
  221722. e23af98d97 Merge pull request \fI\%#36609\fP from rallytime/merge\-2016.3
  221723. .IP \(bu 2
  221724. f15d4a38bd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221725. .IP \(bu 2
  221726. 57ec792f6b Merge pull request \fI\%#36550\fP from rickyninja/2015.8
  221727. .INDENT 2.0
  221728. .IP \(bu 2
  221729. f9ef30aabe Add version_cmp for FreeBSD pkg.
  221730. .UNINDENT
  221731. .UNINDENT
  221732. .IP \(bu 2
  221733. \fBPR\fP \fI\%#36595\fP: (\fI\%cachedout\fP) Remove tests which no longer apply
  221734. @ \fI2016\-09\-27 07:38:15 UTC\fP
  221735. .INDENT 2.0
  221736. .IP \(bu 2
  221737. 25fa754d94 Merge pull request \fI\%#36595\fP from cachedout/issue_7754_fix
  221738. .IP \(bu 2
  221739. 3a83b0bd16 Remove tests which no longer apply
  221740. .UNINDENT
  221741. .IP \(bu 2
  221742. \fBISSUE\fP \fI\%#36586\fP: (\fI\%gehzumteufel\fP) Documentation update (refs: \fI\%#36594\fP)
  221743. .IP \(bu 2
  221744. \fBPR\fP \fI\%#36594\fP: (\fI\%cachedout\fP) Update boostrap docs to recent versions of Ubuntu
  221745. @ \fI2016\-09\-27 06:18:49 UTC\fP
  221746. .INDENT 2.0
  221747. .IP \(bu 2
  221748. aed98f47de Merge pull request \fI\%#36594\fP from cachedout/issue_36586
  221749. .IP \(bu 2
  221750. 1e6a60ab01 Update boostrap docs to recent versions of Ubuntu
  221751. .UNINDENT
  221752. .IP \(bu 2
  221753. \fBPR\fP \fI\%#36585\fP: (\fI\%twangboy\fP) Add pyOpenSSL to req file for Windows
  221754. @ \fI2016\-09\-27 05:49:42 UTC\fP
  221755. .INDENT 2.0
  221756. .IP \(bu 2
  221757. c79f525863 Merge pull request \fI\%#36585\fP from twangboy/add_pyopenssl
  221758. .IP \(bu 2
  221759. 5fc63a1054 Add pyOpenSSL to req file for Windows
  221760. .UNINDENT
  221761. .IP \(bu 2
  221762. \fBISSUE\fP \fI\%#36568\fP: (\fI\%lkx007\fP) cp.push remove_source problem (refs: \fI\%#36572\fP)
  221763. .INDENT 2.0
  221764. .IP \(bu 2
  221765. \fBPR\fP \fI\%#36572\fP: (\fI\%cachedout\fP) Fix salt.utils.rm_rf to delete files too
  221766. .UNINDENT
  221767. .IP \(bu 2
  221768. \fBISSUE\fP \fI\%#36491\fP: (\fI\%cro\fP) pkg.upgrade does not upgrade on Leap 42.1 or Tumbleweed (refs: \fI\%#36495\fP)
  221769. .IP \(bu 2
  221770. \fBPR\fP \fI\%#36495\fP: (\fI\%cro\fP) Fix pkg.upgrade for zypper
  221771. @ \fI2016\-09\-26 10:02:39 UTC\fP
  221772. .INDENT 2.0
  221773. .IP \(bu 2
  221774. d0dd92b037 Merge pull request \fI\%#36495\fP from cro/zypper_fix
  221775. .IP \(bu 2
  221776. 6c5807c4be Fix pkg.upgrade for zypper
  221777. .UNINDENT
  221778. .IP \(bu 2
  221779. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  221780. .IP \(bu 2
  221781. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  221782. .IP \(bu 2
  221783. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  221784. .IP \(bu 2
  221785. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  221786. .IP \(bu 2
  221787. \fBPR\fP \fI\%#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip
  221788. @ \fI2016\-09\-26 10:02:11 UTC\fP
  221789. .INDENT 2.0
  221790. .IP \(bu 2
  221791. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221792. .IP \(bu 2
  221793. \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_)
  221794. .IP \(bu 2
  221795. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221796. .IP \(bu 2
  221797. \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_)
  221798. .IP \(bu 2
  221799. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221800. .IP \(bu 2
  221801. 4bca246a27 Merge pull request \fI\%#36539\fP from jfindlay/arch_perms
  221802. .IP \(bu 2
  221803. d64ae48783 states.archive: use archive.cmd_unzip when possible
  221804. .IP \(bu 2
  221805. 928a7891b4 modules.archive.unzip: log a warning about perms
  221806. .UNINDENT
  221807. .IP \(bu 2
  221808. \fBISSUE\fP \fI\%#36514\fP: (\fI\%nilliams\fP) salt.stages.hg errors when \-identity option is used (refs: \fI\%#36546\fP)
  221809. .IP \(bu 2
  221810. \fBPR\fP \fI\%#36546\fP: (\fI\%rallytime\fP) Mercurial Module: Pass the identity_path portion as own arg
  221811. @ \fI2016\-09\-26 09:44:30 UTC\fP
  221812. .INDENT 2.0
  221813. .IP \(bu 2
  221814. ab50cde391 Merge pull request \fI\%#36546\fP from rallytime/fix\-36514
  221815. .IP \(bu 2
  221816. 9afe76759e Mercurial Module: Pass the identity_path portion as own arg
  221817. .UNINDENT
  221818. .IP \(bu 2
  221819. \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)
  221820. .IP \(bu 2
  221821. \fBPR\fP \fI\%#36555\fP: (\fI\%DmitryKuzmenko\fP) Bugs/35480 master shutdown
  221822. @ \fI2016\-09\-26 09:25:43 UTC\fP
  221823. .INDENT 2.0
  221824. .IP \(bu 2
  221825. aea55fce61 Merge pull request \fI\%#36555\fP from DSRCorporation/bugs/35480_master_shutdown
  221826. .IP \(bu 2
  221827. 6ad2998715 Wait for kill in ProcessManager should be greater in main process than in subprocess.
  221828. .IP \(bu 2
  221829. c9c45a5d79 Don\(aqt set the \fIdaemon\fP flag for LoggingQueue process.
  221830. .UNINDENT
  221831. .IP \(bu 2
  221832. \fBPR\fP \fI\%#36542\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221833. @ \fI2016\-09\-23 22:47:26 UTC\fP
  221834. .INDENT 2.0
  221835. .IP \(bu 2
  221836. a1e0afe1c7 Merge pull request \fI\%#36542\fP from rallytime/merge\-2016.3
  221837. .IP \(bu 2
  221838. 861a001749 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221839. .IP \(bu 2
  221840. 07c9d040c0 Fixup the rabbitmq_user state test failure (\fI\%#36541\fP)
  221841. .UNINDENT
  221842. .IP \(bu 2
  221843. \fBISSUE\fP \fI\%#29421\fP: (\fI\%scbunn\fP) pillar data leaks through environments (refs: \fI\%#36435\fP, \fI\%saltstack/salt#36435\fP)
  221844. .INDENT 2.0
  221845. .IP \(bu 2
  221846. \fBPR\fP \fI\%#36532\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36435\fP to 2016.3
  221847. .IP \(bu 2
  221848. \fBPR\fP \fI\%#36435\fP: (\fI\%yhekma\fP) Add "none" as a pillar merging strategy (refs: \fI\%#36532\fP)
  221849. .IP \(bu 2
  221850. \fBPR\fP \fI\%#36535\fP: (\fI\%rallytime\fP) Be explicit about the salt.utils.templates import
  221851. .IP \(bu 2
  221852. \fBPR\fP \fI\%#36537\fP: (\fI\%rallytime\fP) Wrap the entire GrainsAppendTestCase class with destructiveTest
  221853. .UNINDENT
  221854. .IP \(bu 2
  221855. \fBPR\fP \fI\%#36529\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221856. @ \fI2016\-09\-23 16:42:42 UTC\fP
  221857. .INDENT 2.0
  221858. .IP \(bu 2
  221859. 55cf4d6a04 Merge pull request \fI\%#36529\fP from rallytime/merge\-2016.3
  221860. .IP \(bu 2
  221861. 52cf40db8c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221862. .IP \(bu 2
  221863. 1c3758544c Merge pull request \fI\%#36441\fP from twangboy/update_setup
  221864. .INDENT 2.0
  221865. .IP \(bu 2
  221866. fc4a03a75d Check for existing library on Windows
  221867. .UNINDENT
  221868. .UNINDENT
  221869. .IP \(bu 2
  221870. \fBPR\fP \fI\%#36483\fP: (\fI\%dmurphy18\fP) Isolate sun IPv6 fix to Sun OS only
  221871. @ \fI2016\-09\-23 09:24:54 UTC\fP
  221872. .INDENT 2.0
  221873. .IP \(bu 2
  221874. 03491634ff Merge pull request \fI\%#36483\fP from dmurphy18/aix_fix_ipv6
  221875. .IP \(bu 2
  221876. b68f982c6a Updated check as per code review
  221877. .IP \(bu 2
  221878. cbcdb472fe Isolate SUN IPv6 fix to Sun Os only
  221879. .UNINDENT
  221880. .IP \(bu 2
  221881. \fBISSUE\fP \fI\%#36279\fP: (\fI\%alertedsnake\fP) state.postgres_privileges should allow grants to ALL tables/sequences. (refs: \fI\%#36280\fP)
  221882. .IP \(bu 2
  221883. \fBPR\fP \fI\%#36280\fP: (\fI\%alertedsnake\fP) Feature/2016.3 better postgresql grants
  221884. @ \fI2016\-09\-23 07:55:32 UTC\fP
  221885. .INDENT 2.0
  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. 654fa8d770 Merge pull request \fI\%#36280\fP from jwplayer/feature/2016.3\-better\-postgresql\-grants
  221890. .IP \(bu 2
  221891. e7a597da00 Bugfix: don\(aqt concatenate when not needed
  221892. .IP \(bu 2
  221893. ba60b7972a Additional documentation.
  221894. .IP \(bu 2
  221895. 8b877f014d \(aqAll\(aq grants for PostgreSQL.
  221896. .UNINDENT
  221897. .IP \(bu 2
  221898. \fBPR\fP \fI\%#36508\fP: (\fI\%twangboy\fP) Fix chocolatey
  221899. @ \fI2016\-09\-23 07:36:03 UTC\fP
  221900. .INDENT 2.0
  221901. .IP \(bu 2
  221902. 8104d5c92a Merge pull request \fI\%#36508\fP from twangboy/fix_chocolatey
  221903. .IP \(bu 2
  221904. a7c858d9ab Fix retcodes
  221905. .IP \(bu 2
  221906. feadd827a7 Add additional functionality to upgrade
  221907. .IP \(bu 2
  221908. fb5eb4dc03 Fix retcodes, add upgrade function
  221909. .UNINDENT
  221910. .IP \(bu 2
  221911. \fBPR\fP \fI\%#36519\fP: (\fI\%terminalmage\fP) Rewrite minionfs walkthrough
  221912. @ \fI2016\-09\-23 05:19:59 UTC\fP
  221913. .INDENT 2.0
  221914. .IP \(bu 2
  221915. 364f74dfc9 Merge pull request \fI\%#36519\fP from terminalmage/docs
  221916. .IP \(bu 2
  221917. 2df51ce3e9 Rewrite minionfs walkthrough
  221918. .IP \(bu 2
  221919. cc9d41fb0e Change items in minionfs blacklist/whitelist example
  221920. .UNINDENT
  221921. .IP \(bu 2
  221922. \fBPR\fP \fI\%#36505\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221923. @ \fI2016\-09\-22 17:37:33 UTC\fP
  221924. .INDENT 2.0
  221925. .IP \(bu 2
  221926. 6f54e16cdf Merge pull request \fI\%#36505\fP from rallytime/merge\-2016.3
  221927. .IP \(bu 2
  221928. 5bd4d6430b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221929. .IP \(bu 2
  221930. bf6195b9a6 \fIpostgres_extension\fP state: small corrections in docstrings (\fI\%#36500\fP)
  221931. .IP \(bu 2
  221932. b021ea5d40 Merge pull request \fI\%#36464\fP from vutny/postgres\-tablespace\-options
  221933. .INDENT 2.0
  221934. .IP \(bu 2
  221935. 580aed87b9 Fix \fIoptions\fP parameter processing in \fIpostgres_tablespace.present\fP
  221936. .UNINDENT
  221937. .UNINDENT
  221938. .IP \(bu 2
  221939. \fBISSUE\fP \fI\%#35813\fP: (\fI\%UtahCampusD\fP) Empty dictionary returned from grains.items command within local client (refs: \fI\%#36496\fP)
  221940. .IP \(bu 2
  221941. \fBPR\fP \fI\%#36496\fP: (\fI\%cachedout\fP) Add repr to namespacedict
  221942. @ \fI2016\-09\-22 04:34:11 UTC\fP
  221943. .INDENT 2.0
  221944. .IP \(bu 2
  221945. 464c4305f9 Merge pull request \fI\%#36496\fP from cachedout/namespace_repr
  221946. .IP \(bu 2
  221947. 333842c319 Add repr to namespacedict
  221948. .UNINDENT
  221949. .IP \(bu 2
  221950. \fBPR\fP \fI\%#36474\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221951. @ \fI2016\-09\-22 04:16:58 UTC\fP
  221952. .INDENT 2.0
  221953. .IP \(bu 2
  221954. a0f838af36 Merge pull request \fI\%#36474\fP from rallytime/merge\-2016.3
  221955. .IP \(bu 2
  221956. 8805b57a1e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221957. .INDENT 2.0
  221958. .IP \(bu 2
  221959. 41d3c09857 Merge pull request \fI\%#35433\fP from terminalmage/issue34790
  221960. .INDENT 2.0
  221961. .IP \(bu 2
  221962. 71b51f49ba Add integration tests for PR \fI\%#35433\fP
  221963. .IP \(bu 2
  221964. 82515eccde Add an additional hint for cases where rev == \(aqHEAD\(aq
  221965. .IP \(bu 2
  221966. 4b7e2f9475 git.latest: Add a hint for possible rev changes resulting in non\-fast\-forward failures
  221967. .UNINDENT
  221968. .IP \(bu 2
  221969. 87263b9387 Merge pull request \fI\%#36445\fP from notpeter/salt_cloud_iam_role
  221970. .INDENT 2.0
  221971. .IP \(bu 2
  221972. 469d1a61fe Remove (required).
  221973. .IP \(bu 2
  221974. 98449e66f5 Better docs for use\-instance\-role\-credentials.
  221975. .UNINDENT
  221976. .UNINDENT
  221977. .UNINDENT
  221978. .IP \(bu 2
  221979. \fBISSUE\fP \fI\%#36475\fP: (\fI\%amendlik\fP) GitFS online documentation is missing a section present in the code (refs: \fI\%#36478\fP)
  221980. .IP \(bu 2
  221981. \fBPR\fP \fI\%#36478\fP: (\fI\%rallytime\fP) Add the "bash" option to the "code\-block"directive.
  221982. @ \fI2016\-09\-22 04:15:14 UTC\fP
  221983. .INDENT 2.0
  221984. .IP \(bu 2
  221985. ec4f4f49ca Merge pull request \fI\%#36478\fP from rallytime/fix\-36475
  221986. .IP \(bu 2
  221987. 7be7d5832f Add the "bash" option to the "code\-block"directive.
  221988. .UNINDENT
  221989. .IP \(bu 2
  221990. \fBPR\fP \fI\%#36484\fP: (\fI\%terminalmage\fP) Fix for temp files being left over by salt\-cloud execution
  221991. @ \fI2016\-09\-22 04:11:58 UTC\fP
  221992. .INDENT 2.0
  221993. .IP \(bu 2
  221994. \fBPR\fP \fI\%#36482\fP: (\fI\%clarkperkins\fP) Have salt\-cloud clean up tmp files (refs: \fI\%#36484\fP)
  221995. .IP \(bu 2
  221996. 4c6e7bf873 Merge pull request \fI\%#36484\fP from terminalmage/salt\-cloud\-tmp\-files
  221997. .IP \(bu 2
  221998. 0bf520e089 Ensure temp file is actually removed
  221999. .IP \(bu 2
  222000. 072fd823f7 Use os.write() on file descriptor instead of opening a filehandle
  222001. .IP \(bu 2
  222002. f61e8d6366 Fix for temp files being left over by salt\-cloud execution
  222003. .UNINDENT
  222004. .IP \(bu 2
  222005. \fBPR\fP \fI\%#36486\fP: (\fI\%terminalmage\fP) Improve the rebase docs in contributing guidelines
  222006. @ \fI2016\-09\-21 19:21:10 UTC\fP
  222007. .INDENT 2.0
  222008. .IP \(bu 2
  222009. 9005a87635 Merge pull request \fI\%#36486\fP from terminalmage/rebase\-docs
  222010. .IP \(bu 2
  222011. 4839c325ae Improve the rebase docs in contributing guidelines
  222012. .UNINDENT
  222013. .IP \(bu 2
  222014. \fBPR\fP \fI\%#36455\fP: (\fI\%twangboy\fP) Update docs for Windows
  222015. @ \fI2016\-09\-21 14:28:28 UTC\fP
  222016. .INDENT 2.0
  222017. .IP \(bu 2
  222018. bc5ac9adae Merge pull request \fI\%#36455\fP from twangboy/windows_installation_docs
  222019. .IP \(bu 2
  222020. ec67a9bb2f Add cachedout\(aqs recommendations
  222021. .IP \(bu 2
  222022. 26a40dadbe Update docs for Windows
  222023. .UNINDENT
  222024. .IP \(bu 2
  222025. \fBPR\fP \fI\%#36459\fP: (\fI\%cachedout\fP) Pr 36426
  222026. @ \fI2016\-09\-21 06:34:29 UTC\fP
  222027. .INDENT 2.0
  222028. .IP \(bu 2
  222029. 3d23371ca2 Merge pull request \fI\%#36459\fP from cachedout/pr\-36426
  222030. .IP \(bu 2
  222031. bb5c01ae9d Lint
  222032. .IP \(bu 2
  222033. 85d2068326 Refactor for testing and adding related engine tests
  222034. .IP \(bu 2
  222035. 266adae2fd Make sqs_events engine support owner_acct_id
  222036. .UNINDENT
  222037. .IP \(bu 2
  222038. \fBPR\fP \fI\%#36442\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222039. @ \fI2016\-09\-20 23:16:30 UTC\fP
  222040. .INDENT 2.0
  222041. .IP \(bu 2
  222042. c8e15dcdca Merge pull request \fI\%#36442\fP from rallytime/merge\-2016.3
  222043. .IP \(bu 2
  222044. 2740fb7bfd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222045. .IP \(bu 2
  222046. 266dd7c00a Merge pull request \fI\%#36379\fP from twangboy/windows_grains
  222047. .INDENT 2.0
  222048. .IP \(bu 2
  222049. 6138390da7 Fix typo
  222050. .IP \(bu 2
  222051. cf045e5c03 Remove comment
  222052. .IP \(bu 2
  222053. ddb6e11bcb Remove refactoring
  222054. .IP \(bu 2
  222055. 45dc920db0 Clarify comments
  222056. .IP \(bu 2
  222057. 211fd3b47e Improve version checking
  222058. .IP \(bu 2
  222059. 88be5a3761 Check for Python 2.7.12 and 3.5.2
  222060. .IP \(bu 2
  222061. 6f80f0062a Add osservicepack grain
  222062. .IP \(bu 2
  222063. 04c4ec4f81 Fix lint
  222064. .IP \(bu 2
  222065. 5789ea99cf Force string
  222066. .IP \(bu 2
  222067. 6c5bd7664b Fix join syntax
  222068. .IP \(bu 2
  222069. ac8610d523 Add ServicePack to osrelease
  222070. .IP \(bu 2
  222071. 92034936c1 Fix windows grains for os
  222072. .UNINDENT
  222073. .IP \(bu 2
  222074. 5625827ee2 Merge pull request \fI\%#36378\fP from terminalmage/issue36321
  222075. .INDENT 2.0
  222076. .IP \(bu 2
  222077. 7b1f621206 Fix git.latest test with local changes to reflect changes in state
  222078. .IP \(bu 2
  222079. 0364fedb76 Use a single conditional
  222080. .IP \(bu 2
  222081. 0dd1e7b53e git.latest Treat an up\-to\-date checkout with local changes as up\-to\-date
  222082. .UNINDENT
  222083. .UNINDENT
  222084. .IP \(bu 2
  222085. \fBPR\fP \fI\%#36310\fP: (\fI\%thatch45\fP) Fix bug where the client will destroy the loop
  222086. @ \fI2016\-09\-20 13:14:23 UTC\fP
  222087. .INDENT 2.0
  222088. .IP \(bu 2
  222089. d0a495f08b Merge pull request \fI\%#36310\fP from thatch45/keep_loop
  222090. .IP \(bu 2
  222091. a3c0d4a0ab Add docstring
  222092. .IP \(bu 2
  222093. 083f1d998a Fix bug where the client will destroy the loop
  222094. .UNINDENT
  222095. .IP \(bu 2
  222096. \fBPR\fP \fI\%#36394\fP: (\fI\%oba11\fP) fix accound_id in boto_iam and get_region in boto_sns
  222097. @ \fI2016\-09\-20 13:11:28 UTC\fP
  222098. .INDENT 2.0
  222099. .IP \(bu 2
  222100. 6e16ca46ed Merge pull request \fI\%#36394\fP from oba11/module\-fixes
  222101. .IP \(bu 2
  222102. 966685020c fix accound_id in boto_iam and get_region in boto_sns
  222103. .UNINDENT
  222104. .IP \(bu 2
  222105. \fBPR\fP \fI\%#36424\fP: (\fI\%jfindlay\fP) skip some mac_timezone tests
  222106. @ \fI2016\-09\-20 06:43:47 UTC\fP
  222107. .INDENT 2.0
  222108. .IP \(bu 2
  222109. \fBPR\fP \fI\%#36194\fP: (\fI\%jfindlay\fP) skip some mac_timezone tests (refs: \fI\%#36424\fP)
  222110. .IP \(bu 2
  222111. ae1fc430c2 Merge pull request \fI\%#36424\fP from jfindlay/bp\-36194
  222112. .IP \(bu 2
  222113. a20a2148bf skip some mac_timezone tests
  222114. .UNINDENT
  222115. .IP \(bu 2
  222116. \fBISSUE\fP \fI\%#36388\fP: (\fI\%qurczak\fP) pkg.list_upgrades return debug information rather than packages list (refs: \fI\%#36428\fP)
  222117. .IP \(bu 2
  222118. \fBPR\fP \fI\%#36428\fP: (\fI\%terminalmage\fP) A couple fixes for Antergos Linux
  222119. @ \fI2016\-09\-20 06:42:16 UTC\fP
  222120. .INDENT 2.0
  222121. .IP \(bu 2
  222122. 6319e3419a Merge pull request \fI\%#36428\fP from terminalmage/issue36388
  222123. .IP \(bu 2
  222124. b0069ad0d8 pacman.py: use os_family grain to assign as pkg virtual module
  222125. .IP \(bu 2
  222126. 5d632dbfca Properly set os grain for Antergos
  222127. .IP \(bu 2
  222128. 0ae8dca2d0 pkg.list_upgrades: Ignore "downloading" lines in pacman output
  222129. .UNINDENT
  222130. .IP \(bu 2
  222131. \fBISSUE\fP \fI\%#36373\fP: (\fI\%frioux\fP) Salt\-API does not validate input properly (refs: \fI\%#36425\fP)
  222132. .IP \(bu 2
  222133. \fBPR\fP \fI\%#36425\fP: (\fI\%whiteinge\fP) Check for dictionary explicitly since we\(aqre accessing it as one
  222134. @ \fI2016\-09\-20 06:41:40 UTC\fP
  222135. .INDENT 2.0
  222136. .IP \(bu 2
  222137. 155bd14b5e Merge pull request \fI\%#36425\fP from whiteinge/salt\-api\-dict\-payload
  222138. .IP \(bu 2
  222139. 0b63ed258f Check for dictionary explicitly since we\(aqre accessing it as one
  222140. .UNINDENT
  222141. .IP \(bu 2
  222142. \fBISSUE\fP \fI\%saltstack/salt#18341\fP: (\fI\%falzm\fP) Dry\-running state.highstate only returns the first change (refs: \fI\%#36199\fP)
  222143. .IP \(bu 2
  222144. \fBPR\fP \fI\%#36199\fP: (\fI\%thatch45\fP) skip all failhards if test=True
  222145. @ \fI2016\-09\-20 05:38:32 UTC\fP
  222146. .INDENT 2.0
  222147. .IP \(bu 2
  222148. 420be364ee Merge pull request \fI\%#36199\fP from thatch45/fix_18341
  222149. .IP \(bu 2
  222150. e13d61f06a skip all failhards if test=True
  222151. .UNINDENT
  222152. .IP \(bu 2
  222153. \fBPR\fP \fI\%#36418\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3 (refs: \fI\%#37120\fP)
  222154. @ \fI2016\-09\-19 21:56:52 UTC\fP
  222155. .INDENT 2.0
  222156. .IP \(bu 2
  222157. \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)
  222158. .IP \(bu 2
  222159. b2365f553e Merge pull request \fI\%#36418\fP from rallytime/bp\-36246
  222160. .IP \(bu 2
  222161. aab02f28b4 Ensure we have a test venv created using virtualenv < 13.0
  222162. .UNINDENT
  222163. .IP \(bu 2
  222164. \fBPR\fP \fI\%#36419\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36329\fP to 2016.3
  222165. @ \fI2016\-09\-19 21:56:33 UTC\fP
  222166. .INDENT 2.0
  222167. .IP \(bu 2
  222168. \fBPR\fP \fI\%#36329\fP: (\fI\%oz123\fP) Fix a minor typo in docs (refs: \fI\%#36419\fP)
  222169. .IP \(bu 2
  222170. bc703e2062 Merge pull request \fI\%#36419\fP from rallytime/bp\-36329
  222171. .IP \(bu 2
  222172. ffdebf7a25 Fix a minor typo in docs
  222173. .UNINDENT
  222174. .IP \(bu 2
  222175. \fBPR\fP \fI\%#36420\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36365\fP to 2016.3
  222176. @ \fI2016\-09\-19 21:56:17 UTC\fP
  222177. .INDENT 2.0
  222178. .IP \(bu 2
  222179. \fBPR\fP \fI\%#36365\fP: (\fI\%Kimamisa\fP) Fix a minor typo in docs (refs: \fI\%#36420\fP)
  222180. .IP \(bu 2
  222181. fbfa0657fc Merge pull request \fI\%#36420\fP from rallytime/bp\-36365
  222182. .IP \(bu 2
  222183. 864e513fca Fix a minor typo in docs
  222184. .UNINDENT
  222185. .IP \(bu 2
  222186. \fBPR\fP \fI\%#36413\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222187. @ \fI2016\-09\-19 18:59:31 UTC\fP
  222188. .INDENT 2.0
  222189. .IP \(bu 2
  222190. 3dd2590e28 Merge pull request \fI\%#36413\fP from rallytime/merge\-2016.3
  222191. .IP \(bu 2
  222192. c64e489f6f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222193. .INDENT 2.0
  222194. .IP \(bu 2
  222195. 9bc4eeb71e Fix typo (\fI\%#36409\fP)
  222196. .IP \(bu 2
  222197. ac5c812e4b Fix OS identification for CloudLinux (\fI\%#36408\fP)
  222198. .IP \(bu 2
  222199. bb4d69f58a git.latest: fail gracefully for misconfigured remote repo (\fI\%#36391\fP)
  222200. .IP \(bu 2
  222201. ad7045ad3b Merge pull request \fI\%#36315\fP from puneetk/patch\-6
  222202. .INDENT 2.0
  222203. .IP \(bu 2
  222204. 3ac308ac76 Update aptpkg.py
  222205. .IP \(bu 2
  222206. 892cc4cd48 Update aptpkg.py
  222207. .IP \(bu 2
  222208. cbe98d97a3 Fix pylint whitespace errors
  222209. .IP \(bu 2
  222210. e5371ac720 No force_yes parameter to pkg.upgrade \fI\%#21248\fP
  222211. .UNINDENT
  222212. .IP \(bu 2
  222213. 2aa6df859a Merge pull request \fI\%#36381\fP from twangboy/fix_win_service
  222214. .INDENT 2.0
  222215. .IP \(bu 2
  222216. 04edea5c59 Add \(aq/y\(aq switch to the net stop and start commands
  222217. .UNINDENT
  222218. .IP \(bu 2
  222219. 373c5db180 Merge pull request \fI\%#36384\fP from twangboy/update_setup_req
  222220. .INDENT 2.0
  222221. .IP \(bu 2
  222222. a817aef1c2 Add windows requirements file
  222223. .UNINDENT
  222224. .UNINDENT
  222225. .UNINDENT
  222226. .IP \(bu 2
  222227. \fBISSUE\fP \fI\%#36371\fP: (\fI\%nasenbaer13\fP) _extern_path in fileclient is broken (refs: \fI\%#36305\fP)
  222228. .IP \(bu 2
  222229. \fBPR\fP \fI\%#36305\fP: (\fI\%gtmanfred\fP) cache query args with url as well
  222230. @ \fI2016\-09\-19 18:30:51 UTC\fP
  222231. .INDENT 2.0
  222232. .IP \(bu 2
  222233. a8a3a9f021 Merge pull request \fI\%#36305\fP from gtmanfred/2016.3
  222234. .IP \(bu 2
  222235. 70e7f6d58b cache query args with url as well
  222236. .UNINDENT
  222237. .IP \(bu 2
  222238. \fBPR\fP \fI\%#36389\fP: (\fI\%cachedout\fP) Pr 36386
  222239. @ \fI2016\-09\-17 11:54:37 UTC\fP
  222240. .INDENT 2.0
  222241. .IP \(bu 2
  222242. \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_)
  222243. .IP \(bu 2
  222244. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: \fI\%#36386\fP)
  222245. .IP \(bu 2
  222246. 602bd2d1ef Merge pull request \fI\%#36389\fP from cachedout/pr\-36386
  222247. .IP \(bu 2
  222248. f5d63d93cc Lint
  222249. .IP \(bu 2
  222250. 93269cfb65 fix salt\-api log and pid
  222251. .IP \(bu 2
  222252. \fBPR\fP \fI\%#36352\fP: (\fI\%pass\-by\-value\fP) Update versionadded and release notes
  222253. .UNINDENT
  222254. .IP \(bu 2
  222255. \fBPR\fP \fI\%#36369\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222256. @ \fI2016\-09\-16 16:31:14 UTC\fP
  222257. .INDENT 2.0
  222258. .IP \(bu 2
  222259. 495d365e54 Merge pull request \fI\%#36369\fP from rallytime/merge\-2016.3
  222260. .IP \(bu 2
  222261. 37aea4188a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222262. .IP \(bu 2
  222263. 40b2e3d189 Merge pull request \fI\%#36353\fP from rallytime/refresh\-db\-cleanup
  222264. .INDENT 2.0
  222265. .IP \(bu 2
  222266. 275319193a Check for Ign/Hit membership instead of == in aptpkg.refresh_db
  222267. .UNINDENT
  222268. .IP \(bu 2
  222269. df9d9b3624 Merge pull request \fI\%#36355\fP from rallytime/bp\-36288
  222270. .INDENT 2.0
  222271. .IP \(bu 2
  222272. 70ffdafbf0 Schema test requires jsonschema 2.5.0 or above
  222273. .UNINDENT
  222274. .IP \(bu 2
  222275. 3f308d7694 postgres_extension: report changes when an extension was installed (\fI\%#36335\fP)
  222276. .IP \(bu 2
  222277. d2a583bc22 Merge pull request \fI\%#36337\fP from cachedout/conduct
  222278. .INDENT 2.0
  222279. .IP \(bu 2
  222280. 2fb61b9c9f SaltStack\(aqs code of conduct
  222281. .UNINDENT
  222282. .IP \(bu 2
  222283. ef128ad0b0 Return None when find_file identifies the path as a directory (\fI\%#36342\fP)
  222284. .IP \(bu 2
  222285. \fBPR\fP \fI\%#36249\fP: (\fI\%alertedsnake\fP) Quote postgres privilege target names (refs: \fI\%#36280\fP)
  222286. .IP \(bu 2
  222287. \fBPR\fP \fI\%#36330\fP: (\fI\%silenius\fP) set __virtualname__ to \(aqservice\(aq
  222288. .UNINDENT
  222289. .IP \(bu 2
  222290. \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)
  222291. .INDENT 2.0
  222292. .IP \(bu 2
  222293. \fBPR\fP \fI\%#36339\fP: (\fI\%jbonachera\fP) Use infoblox_* values if present in arguments
  222294. .IP \(bu 2
  222295. \fBPR\fP \fI\%#36345\fP: (\fI\%gtmanfred\fP) remove help message from glance module
  222296. .IP \(bu 2
  222297. \fBPR\fP \fI\%#36346\fP: (\fI\%rallytime\fP) Add resize2fs unit test from blockdev_test to disk_test
  222298. .IP \(bu 2
  222299. \fBPR\fP \fI\%#36344\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36346\fP)
  222300. .UNINDENT
  222301. .IP \(bu 2
  222302. \fBISSUE\fP \fI\%#36292\fP: (\fI\%lorengordon\fP) pkg.check_db is not available in salt 2016.3? (refs: \fI\%#36350\fP)
  222303. .IP \(bu 2
  222304. \fBPR\fP \fI\%#36350\fP: (\fI\%terminalmage\fP) Add note about yumpkg.check_db removal in Boron
  222305. @ \fI2016\-09\-15 20:32:32 UTC\fP
  222306. .INDENT 2.0
  222307. .IP \(bu 2
  222308. f09c3e499f Merge pull request \fI\%#36350\fP from terminalmage/docs
  222309. .IP \(bu 2
  222310. b815c98577 Add note about yumpkg.check_db removal in Boron
  222311. .UNINDENT
  222312. .IP \(bu 2
  222313. \fBPR\fP \fI\%#36344\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36346\fP)
  222314. @ \fI2016\-09\-15 17:38:57 UTC\fP
  222315. .INDENT 2.0
  222316. .IP \(bu 2
  222317. a33da842c0 Merge pull request \fI\%#36344\fP from rallytime/merge\-2016.3
  222318. .IP \(bu 2
  222319. d1f560147d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222320. .IP \(bu 2
  222321. dc518c5340 Skip test_resize2fs if resize2fs does not exists (\fI\%#36325\fP)
  222322. .UNINDENT
  222323. .IP \(bu 2
  222324. \fBISSUE\fP \fI\%#36308\fP: (\fI\%ahammond\fP) salt\-cloud defaults to IPv6 rather than IPv6 (refs: \fI\%#36312\fP)
  222325. .INDENT 2.0
  222326. .IP \(bu 2
  222327. \fBPR\fP \fI\%#36312\fP: (\fI\%ahammond\fP) merge error overwrites correct ssh_host with stale data in ip_address
  222328. .UNINDENT
  222329. .IP \(bu 2
  222330. \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)
  222331. .INDENT 2.0
  222332. .IP \(bu 2
  222333. \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)
  222334. .UNINDENT
  222335. .IP \(bu 2
  222336. \fBPR\fP \fI\%#36299\fP: (\fI\%rallytime\fP) Gate the pkg.group_installed state test: not all pkg modules have group_install
  222337. @ \fI2016\-09\-14 19:04:26 UTC\fP
  222338. .INDENT 2.0
  222339. .IP \(bu 2
  222340. 6a3019bbf1 Merge pull request \fI\%#36299\fP from rallytime/gate\-pkg\-group\-installed\-test
  222341. .IP \(bu 2
  222342. 9e15df9b23 Switch the order of the decorator
  222343. .IP \(bu 2
  222344. ee997be6d8 Fix pkg group test by passing a list instead of str
  222345. .IP \(bu 2
  222346. c7d8867096 Gate the pkg.group_installed state test: not all pkg modules have group_install
  222347. .UNINDENT
  222348. .IP \(bu 2
  222349. \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)
  222350. .INDENT 2.0
  222351. .IP \(bu 2
  222352. \fBPR\fP \fI\%saltstack/salt#36273\fP: (\fI\%techhat\fP) Add append_newline flag for \fI\%#33686\fP (refs: \fI\%#36295\fP)
  222353. .IP \(bu 2
  222354. \fBPR\fP \fI\%#36295\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36273\fP to 2016.3
  222355. .IP \(bu 2
  222356. \fBPR\fP \fI\%#36273\fP: (\fI\%techhat\fP) Add append_newline flag for \fI\%#33686\fP (refs: \fI\%#36295\fP)
  222357. .IP \(bu 2
  222358. \fBPR\fP \fI\%#36296\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36124\fP to 2016.3
  222359. .IP \(bu 2
  222360. \fBPR\fP \fI\%#36124\fP: (\fI\%twangboy\fP) Skip test on all OS\(aqs but linux (refs: \fI\%#36296\fP)
  222361. .UNINDENT
  222362. .IP \(bu 2
  222363. \fBPR\fP \fI\%#36297\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222364. @ \fI2016\-09\-14 16:07:30 UTC\fP
  222365. .INDENT 2.0
  222366. .IP \(bu 2
  222367. a8a72c985f Merge pull request \fI\%#36297\fP from rallytime/merge\-2016.3
  222368. .IP \(bu 2
  222369. e2f1cf6025 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222370. .INDENT 2.0
  222371. .IP \(bu 2
  222372. b9b8e45362 Merge pull request \fI\%#36272\fP from terminalmage/improved\-gitfs\-logging
  222373. .INDENT 2.0
  222374. .IP \(bu 2
  222375. 223a20e987 Improved gitfs/git_pillar error logging
  222376. .UNINDENT
  222377. .IP \(bu 2
  222378. abb6aacb4b Merge pull request \fI\%#36277\fP from terminalmage/gitfs\-check\-key\-path
  222379. .INDENT 2.0
  222380. .IP \(bu 2
  222381. 4fee18c820 salt.utils.gitfs: Check for existence of ssh keys
  222382. .UNINDENT
  222383. .IP \(bu 2
  222384. ed2d2bd331 Integration tests fixes for 2015.8 (\fI\%#36262\fP)
  222385. .IP \(bu 2
  222386. 297a12c387 Fix misspelling of "occurred" in log messages/exceptions (\fI\%#36270\fP)
  222387. .UNINDENT
  222388. .IP \(bu 2
  222389. \fBPR\fP \fI\%#36178\fP: (\fI\%cachedout\fP) Filter out pub kwargs from cloud runner
  222390. .UNINDENT
  222391. .IP \(bu 2
  222392. \fBPR\fP \fI\%#36238\fP: (\fI\%pass\-by\-value\fP) Add ability to clone from a snapshot to salt\-cloud vmware driver
  222393. @ \fI2016\-09\-14 05:31:51 UTC\fP
  222394. .INDENT 2.0
  222395. .IP \(bu 2
  222396. fc7a1d536f Merge pull request \fI\%#36238\fP from pass\-by\-value/vmware_clone_from_snapshot
  222397. .IP \(bu 2
  222398. dd670bd18f Fix lint error and add try except
  222399. .IP \(bu 2
  222400. d96981639b Add ability to clone from a snapshot to salt\-cloud vmware driver
  222401. .IP \(bu 2
  222402. \fBPR\fP \fI\%#36263\fP: (\fI\%meaksh\fP) Integration tests fixes for 2016.3
  222403. .UNINDENT
  222404. .IP \(bu 2
  222405. \fBPR\fP \fI\%#36264\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222406. @ \fI2016\-09\-13 18:25:41 UTC\fP
  222407. .INDENT 2.0
  222408. .IP \(bu 2
  222409. d634fd8628 Merge pull request \fI\%#36264\fP from rallytime/merge\-2016.3
  222410. .IP \(bu 2
  222411. f603757b55 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222412. .IP \(bu 2
  222413. 931486ba35 Merge pull request \fI\%#36096\fP from twangboy/update_setup
  222414. .INDENT 2.0
  222415. .IP \(bu 2
  222416. dc1988add5 fix download when requests not present
  222417. .IP \(bu 2
  222418. b4479bff5f Add additional required dll\(aqs
  222419. .UNINDENT
  222420. .IP \(bu 2
  222421. b0dd6ff5c8 Merge pull request \fI\%#36244\fP from terminalmage/gen\-back\-bug
  222422. .INDENT 2.0
  222423. .IP \(bu 2
  222424. 363b21fd9b salt.fileserver.Fileserver: Don\(aqt try to split a list in _gen_back
  222425. .UNINDENT
  222426. .IP \(bu 2
  222427. dcc9380996 Merge pull request \fI\%#36245\fP from terminalmage/roots\-bug
  222428. .INDENT 2.0
  222429. .IP \(bu 2
  222430. 75d4997b70 roots backend: Don\(aqt include \(aq.\(aq or \(aq..\(aq in empty_dirs
  222431. .UNINDENT
  222432. .IP \(bu 2
  222433. fdf40907b7 Some unit tests fixes (\fI\%#36227\fP)
  222434. .UNINDENT
  222435. .IP \(bu 2
  222436. \fBISSUE\fP \fI\%#33525\fP: (\fI\%anlutro\fP) file.serialize no longer indents/pretty\-prints in 2016.3 (refs: \fI\%#35688\fP)
  222437. .IP \(bu 2
  222438. \fBPR\fP \fI\%#35688\fP: (\fI\%cachedout\fP) Splat serializer default configs into the serializer kwargs
  222439. @ \fI2016\-09\-13 09:21:46 UTC\fP
  222440. .INDENT 2.0
  222441. .IP \(bu 2
  222442. de06116075 Merge pull request \fI\%#35688\fP from cachedout/issue_33525
  222443. .IP \(bu 2
  222444. 4910e8191c Provide fallback for serializers without opts
  222445. .IP \(bu 2
  222446. a238666aba Add serializer test
  222447. .IP \(bu 2
  222448. 345fd2a9e5 Splat serializer default configs into the serializer kwargs
  222449. .UNINDENT
  222450. .IP \(bu 2
  222451. \fBISSUE\fP \fI\%#36021\fP: (\fI\%mirceaulinic\fP) Scheduled runners not executed (for proxy minions, at least) (refs: \fI\%#36025\fP)
  222452. .IP \(bu 2
  222453. \fBPR\fP \fI\%#36025\fP: (\fI\%mirceaulinic\fP) Potential fix for \fI\%#36021\fP
  222454. @ \fI2016\-09\-13 07:46:41 UTC\fP
  222455. .INDENT 2.0
  222456. .IP \(bu 2
  222457. d9d477ed45 Merge pull request \fI\%#36025\fP from cloudflare/CF\-FIX\-36021
  222458. .IP \(bu 2
  222459. 03007be6b1 Potential fix for \fI\%#36021\fP
  222460. .IP \(bu 2
  222461. \fBPR\fP \fI\%#36183\fP: (\fI\%opdude\fP) Fix timezones states on OS X
  222462. .UNINDENT
  222463. .IP \(bu 2
  222464. \fBPR\fP \fI\%#36235\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222465. @ \fI2016\-09\-12 17:40:42 UTC\fP
  222466. .INDENT 2.0
  222467. .IP \(bu 2
  222468. fcbebb40c3 Merge pull request \fI\%#36235\fP from rallytime/merge\-2016.3
  222469. .IP \(bu 2
  222470. 99dcf84b62 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222471. .INDENT 2.0
  222472. .IP \(bu 2
  222473. 4e9490eebe Merge pull request \fI\%#36214\fP from vutny/postgres\-extension\-doc
  222474. .INDENT 2.0
  222475. .IP \(bu 2
  222476. 5fe548f043 \fIpostgres_extension\fP state module: fix docstrings
  222477. .UNINDENT
  222478. .IP \(bu 2
  222479. 5b7b96c0b7 Merge pull request \fI\%#36205\fP from vutny/postgres\-tablespace\-doc
  222480. .INDENT 2.0
  222481. .IP \(bu 2
  222482. 78296b90d8 Add missing \fImaintenance_db\fP kwarg to \fIpostgres_tablespace.present\fP docstring
  222483. .UNINDENT
  222484. .IP \(bu 2
  222485. 6a5f7cb346 Ignore states that do not have a numeric jid, i.e. \(aqreq\(aq (\fI\%#36185\fP)
  222486. .UNINDENT
  222487. .UNINDENT
  222488. .IP \(bu 2
  222489. \fBISSUE\fP \fI\%#35423\fP: (\fI\%Ch3LL\fP) Stacktrace when running state.sls against an sls does not exist (refs: \fI\%#36137\fP)
  222490. .IP \(bu 2
  222491. \fBISSUE\fP \fI\%#33915\fP: (\fI\%mattglv\fP) Orchestration runner output on Success vs Failures in 2016.3.0 (refs: \fI\%#36137\fP)
  222492. .IP \(bu 2
  222493. \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)
  222494. .IP \(bu 2
  222495. \fBPR\fP \fI\%#36137\fP: (\fI\%cachedout\fP) Allow highstate outputter to show all results
  222496. @ \fI2016\-09\-12 16:37:49 UTC\fP
  222497. .INDENT 2.0
  222498. .IP \(bu 2
  222499. \fBPR\fP \fI\%#35559\fP: (\fI\%Jlin317\fP) Fix highstate outputter when it\(aqs given multiple results (refs: \fI\%#36137\fP)
  222500. .IP \(bu 2
  222501. 7b96197c5e Merge pull request \fI\%#36137\fP from cachedout/issue_35423
  222502. .IP \(bu 2
  222503. 1e8431f2b8 Allow highstate outputter to show all results
  222504. .UNINDENT
  222505. .IP \(bu 2
  222506. \fBISSUE\fP \fI\%#35340\fP: (\fI\%dqminh\fP) Custom modules are only resynced to minions at highstate (refs: \fI\%#36217\fP)
  222507. .INDENT 2.0
  222508. .IP \(bu 2
  222509. \fBPR\fP \fI\%#36217\fP: (\fI\%cachedout\fP) Docs clarification for module sync and state.apply
  222510. .UNINDENT
  222511. .IP \(bu 2
  222512. \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)
  222513. .IP \(bu 2
  222514. \fBPR\fP \fI\%#36184\fP: (\fI\%DmitryKuzmenko\fP) Disable signal handling while handling signal
  222515. @ \fI2016\-09\-11 22:59:08 UTC\fP
  222516. .INDENT 2.0
  222517. .IP \(bu 2
  222518. 6ebe655e17 Merge pull request \fI\%#36184\fP from DSRCorporation/bugs/35480_master_shutdown
  222519. .IP \(bu 2
  222520. 229504efef Removed unused import.
  222521. .IP \(bu 2
  222522. ca8eb7e076 Don\(aqt run the same signal handler twice. Catch os.kill errors.
  222523. .UNINDENT
  222524. .IP \(bu 2
  222525. \fBPR\fP \fI\%#36203\fP: (\fI\%xiaoanyunfei\fP) fix owner of MultiprocessingLoggingQueue (refs: \fI\%#37119\fP)
  222526. @ \fI2016\-09\-11 09:15:15 UTC\fP
  222527. .INDENT 2.0
  222528. .IP \(bu 2
  222529. f11f093f8c Merge pull request \fI\%#36203\fP from xiaoanyunfei/logowner
  222530. .IP \(bu 2
  222531. 74dc90c7bb cancle pr last
  222532. .IP \(bu 2
  222533. 90e4a25dd0 Merge branch \(aqlogowner\(aq of \fI\%https://github.com/xiaoanyunfei/salt\fP into logowner
  222534. .INDENT 2.0
  222535. .IP \(bu 2
  222536. bd61b88fc8 fix log owner
  222537. .IP \(bu 2
  222538. 58160ed6c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222539. .IP \(bu 2
  222540. f2de71782b move back
  222541. .IP \(bu 2
  222542. b8214824fd add simplify code
  222543. .IP \(bu 2
  222544. aec9385c6b Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222545. .IP \(bu 2
  222546. 1074b3355d Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222547. .IP \(bu 2
  222548. ea0d74cd27 fix salt\-api opts
  222549. .UNINDENT
  222550. .IP \(bu 2
  222551. ffd87b2f2f fix logqueue owner
  222552. .IP \(bu 2
  222553. \fBPR\fP \fI\%#36193\fP: (\fI\%thatch45\fP) Fix stack trace in salt\-ssh gitfs
  222554. .UNINDENT
  222555. .IP \(bu 2
  222556. \fBPR\fP \fI\%#36188\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222557. @ \fI2016\-09\-09 18:59:20 UTC\fP
  222558. .INDENT 2.0
  222559. .IP \(bu 2
  222560. f035121291 Merge pull request \fI\%#36188\fP from rallytime/merge\-2016.3
  222561. .IP \(bu 2
  222562. 521a7b2470 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222563. .IP \(bu 2
  222564. d4628f3c6b Allow additional kwargs in states.dockerng.image_present (\fI\%#36156\fP)
  222565. .IP \(bu 2
  222566. 24b0387b92 Back\-port \fI\%#36070\fP to 2015.8 (\fI\%#36169\fP)
  222567. .IP \(bu 2
  222568. 116d7ac3e5 If windows pkg db hasn\(aqt been created yet, refresh the db instead of stacktracing (\fI\%#36008\fP)
  222569. .UNINDENT
  222570. .IP \(bu 2
  222571. \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)
  222572. .IP \(bu 2
  222573. \fBPR\fP \fI\%#35907\fP: (\fI\%rallytime\fP) Catch CommandExecutionError when the group in group_installed doesn\(aqt exist
  222574. @ \fI2016\-09\-09 10:14:16 UTC\fP
  222575. .INDENT 2.0
  222576. .IP \(bu 2
  222577. 1d5f97d36b Merge pull request \fI\%#35907\fP from rallytime/fix\-35819
  222578. .IP \(bu 2
  222579. d7380d83be requires_system_grains decorator needs a grains=None kwarg
  222580. .IP \(bu 2
  222581. b20f6b9384 Catch CommandExecutionError when group_installed doesn\(aqt exist
  222582. .UNINDENT
  222583. .IP \(bu 2
  222584. \fBISSUE\fP \fI\%saltstack/salt#35972\fP: (\fI\%tjyang\fP) DeprecationWarning: The "osmajorrelease" will be a type of an integer. (refs: \fI\%#36068\fP)
  222585. .INDENT 2.0
  222586. .IP \(bu 2
  222587. \fBPR\fP \fI\%saltstack/salt#35637\fP: (\fI\%cachedout\fP) Add Nitrogen release notes (refs: \fI\%#36068\fP)
  222588. .UNINDENT
  222589. .IP \(bu 2
  222590. \fBPR\fP \fI\%#36068\fP: (\fI\%rallytime\fP) Remove grains type deprecation warning from 2016.3
  222591. @ \fI2016\-09\-09 10:00:50 UTC\fP
  222592. .INDENT 2.0
  222593. .IP \(bu 2
  222594. 40127b6bf3 Merge pull request \fI\%#36068\fP from rallytime/fix\-35972
  222595. .IP \(bu 2
  222596. 2b7679c9f6 Remove grains type deprecation warning from 2016.3
  222597. .UNINDENT
  222598. .IP \(bu 2
  222599. \fBISSUE\fP \fI\%#36094\fP: (\fI\%UtahDave\fP) Windows stacktraces on msgpack on Carbon (refs: \fI\%#36152\fP)
  222600. .IP \(bu 2
  222601. \fBPR\fP \fI\%#36152\fP: (\fI\%cachedout\fP) Remove unnecessary unpack
  222602. @ \fI2016\-09\-09 09:13:47 UTC\fP
  222603. .INDENT 2.0
  222604. .IP \(bu 2
  222605. 24bd03734d Merge pull request \fI\%#36152\fP from cachedout/issue_36094
  222606. .IP \(bu 2
  222607. 95eb95a0f8 Remove unnecessary unpack
  222608. .UNINDENT
  222609. .IP \(bu 2
  222610. \fBPR\fP \fI\%#36158\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222611. @ \fI2016\-09\-08 21:53:50 UTC\fP
  222612. .INDENT 2.0
  222613. .IP \(bu 2
  222614. dc3a68ed8c Merge pull request \fI\%#36158\fP from rallytime/merge\-2016.3
  222615. .IP \(bu 2
  222616. 7f955bda0a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222617. .INDENT 2.0
  222618. .IP \(bu 2
  222619. 6242702288 Fix issue with cp.push (\fI\%#36136\fP)
  222620. .IP \(bu 2
  222621. 0e13118f6e Document \fIowner\fP kwarg for \fIpostgres_schema.present\fP state function (\fI\%#36147\fP)
  222622. .IP \(bu 2
  222623. 4cc8ea9577 Merge pull request \fI\%#36146\fP from meaksh/tests\-fixes\-for\-2015.8
  222624. .INDENT 2.0
  222625. .IP \(bu 2
  222626. 9f9aa4779c rename darwin_sysctl.py to mac_sysctl.py
  222627. .IP \(bu 2
  222628. 2cf6f36d89 modules.darwin_sysctl: __virtual__ return err msg.
  222629. .IP \(bu 2
  222630. f74ca15f50 Remove test for file dir behavior
  222631. .IP \(bu 2
  222632. c65aefee20 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222633. .IP \(bu 2
  222634. f8c0b439b8 Fixed more lint
  222635. .IP \(bu 2
  222636. 63ff731009 Fixed tests
  222637. .IP \(bu 2
  222638. 04b1a4a9ca Fixed use of assert_has_calls in tests.
  222639. .IP \(bu 2
  222640. 46e4bb58e5 Fixed LoadAuthTestCase
  222641. .IP \(bu 2
  222642. 4e9733ad6d Rename dockerio.py unit tests to dockerio_test.py
  222643. .IP \(bu 2
  222644. ec0cc943e0 Make sure spm tests are picked up by runtests.
  222645. .IP \(bu 2
  222646. 2605f34849 Fix missing first data in stream when subscribing stream using a function \(aqread_async\(aq.
  222647. .IP \(bu 2
  222648. 305bab8be0 Fixed _interfaces_ifconfig output for SunOS test
  222649. .IP \(bu 2
  222650. b5ca02c867 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222651. .IP \(bu 2
  222652. 1fb6340fef Fix tests (\fI\%#35693\fP)
  222653. .IP \(bu 2
  222654. 5977f1f54c Skip utils_test if timelib is not installed (\fI\%#32699\fP)
  222655. .IP \(bu 2
  222656. d1b9a4061e Fixing skipped boto tests to prevent errors if boto3 does not exists.
  222657. .UNINDENT
  222658. .IP \(bu 2
  222659. c4ddfe3887 Merge pull request \fI\%#35954\fP from morganwillcock/upgrade\-on\-batteries
  222660. .INDENT 2.0
  222661. .IP \(bu 2
  222662. 108f9470f2 win_pkg: report failure for failed launch of Scheduled Task
  222663. .IP \(bu 2
  222664. e0978220f7 win_pkg: allow minion upgrade when using batteries
  222665. .UNINDENT
  222666. .IP \(bu 2
  222667. 94b7659304 Merge pull request \fI\%#36129\fP from terminalmage/pygit2\-ssl_verify
  222668. .INDENT 2.0
  222669. .IP \(bu 2
  222670. 640f0c17c6 pygit2: Prevent traceback on initial gitfs setup
  222671. .UNINDENT
  222672. .IP \(bu 2
  222673. 7cdbc546f1 Back\-port \fI\%#36062\fP to 2015.8 (\fI\%#36118\fP)
  222674. .UNINDENT
  222675. .IP \(bu 2
  222676. \fBPR\fP \fI\%#36170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36154\fP to 2016.3
  222677. .IP \(bu 2
  222678. \fBPR\fP \fI\%#36154\fP: (\fI\%DavidWittman\fP) Remove unclosed backticks in walkthrough doc (refs: \fI\%#36170\fP)
  222679. .UNINDENT
  222680. .IP \(bu 2
  222681. \fBISSUE\fP \fI\%#36055\fP: (\fI\%gladiatr72\fP) 2016.3.3 \-\- missing salt\-cloud events on the master event bus (refs: \fI\%#36161\fP)
  222682. .IP \(bu 2
  222683. \fBPR\fP \fI\%#36161\fP: (\fI\%jacobhammons\fP) Adds \fI\%#36055\fP to release notes
  222684. @ \fI2016\-09\-08 17:11:36 UTC\fP
  222685. .INDENT 2.0
  222686. .IP \(bu 2
  222687. 4ccf8a841f Merge pull request \fI\%#36161\fP from jacobhammons/relnotes
  222688. .IP \(bu 2
  222689. ecb0979be7 Adds \fI\%#36055\fP to release notes
  222690. .UNINDENT
  222691. .IP \(bu 2
  222692. \fBPR\fP \fI\%#36139\fP: (\fI\%meaksh\fP) Fixing unit tests for 2016.3
  222693. @ \fI2016\-09\-08 13:20:21 UTC\fP
  222694. .INDENT 2.0
  222695. .IP \(bu 2
  222696. 1f909038f0 Merge pull request \fI\%#36139\fP from meaksh/tests\-fixes\-for\-2016.3
  222697. .IP \(bu 2
  222698. 52a7ed605e Fixed _interfaces_ifconfig output for SunOS test
  222699. .IP \(bu 2
  222700. 158bcbff65 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222701. .IP \(bu 2
  222702. 8b480167e1 Fix tests (\fI\%#35693\fP)
  222703. .IP \(bu 2
  222704. 29814f9d43 Skip utils_test if timelib is not installed (\fI\%#32699\fP)
  222705. .IP \(bu 2
  222706. d1d806f893 Fix PortageConfigTestCase in case of portage is not present
  222707. .IP \(bu 2
  222708. 1c260e4bd0 Fix tests to prevent errors when libcloud is not present
  222709. .IP \(bu 2
  222710. 71ebf2c8cd Fixing skipped boto tests to prevent errors if boto3 does not exists.
  222711. .UNINDENT
  222712. .IP \(bu 2
  222713. \fBPR\fP \fI\%#36143\fP: (\fI\%multani\fP) doc: fix doc formatting for salt.states.mount
  222714. @ \fI2016\-09\-08 13:11:03 UTC\fP
  222715. .INDENT 2.0
  222716. .IP \(bu 2
  222717. 3eb3df55ad Merge pull request \fI\%#36143\fP from multani/fix\-doc\-state\-mount
  222718. .IP \(bu 2
  222719. 035a212a9b doc: fix doc formatting for salt.states.mount
  222720. .UNINDENT
  222721. .IP \(bu 2
  222722. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  222723. .IP \(bu 2
  222724. \fBISSUE\fP \fI\%#36057\fP: (\fI\%Inveracity\fP) Regression in opennebula cloud provider (refs: \fI\%#36070\fP)
  222725. .IP \(bu 2
  222726. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  222727. .IP \(bu 2
  222728. \fBPR\fP \fI\%#36070\fP: (\fI\%rallytime\fP) Use __utils__ instead of salt.utils.cloud in opennebula driver (refs: \fI\%#36169\fP)
  222729. @ \fI2016\-09\-08 01:18:45 UTC\fP
  222730. .INDENT 2.0
  222731. .IP \(bu 2
  222732. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  222733. .IP \(bu 2
  222734. 70da628018 Merge pull request \fI\%#36070\fP from rallytime/fix\-36057
  222735. .IP \(bu 2
  222736. de4f77cb68 Fixup failing test: need to mock __utils__ instead of salt.utils.cloud call
  222737. .IP \(bu 2
  222738. 25e3f2b4b8 Use __utils__ instead of salt.utils.cloud in opennebula driver
  222739. .UNINDENT
  222740. .IP \(bu 2
  222741. \fBPR\fP \fI\%#36089\fP: (\fI\%terminalmage\fP) Support running git states / remote exec funcs as a different user in Windows
  222742. @ \fI2016\-09\-08 01:17:23 UTC\fP
  222743. .INDENT 2.0
  222744. .IP \(bu 2
  222745. b7556a2aeb Merge pull request \fI\%#36089\fP from terminalmage/issue35565
  222746. .IP \(bu 2
  222747. 796156c5f5 Add attribution
  222748. .IP \(bu 2
  222749. 2e56527ead Move command logging to before win_runas
  222750. .IP \(bu 2
  222751. 91eafddda6 Pass the "password" param to git module functions
  222752. .IP \(bu 2
  222753. 7871065d32 Use "user" instead of "runas" in _git_run() helper
  222754. .IP \(bu 2
  222755. 5943b4662c Add "password" param to funcs which support the user parameter
  222756. .IP \(bu 2
  222757. 5c7b9f0341 Make "password" an explicit argument, not a kwarg
  222758. .UNINDENT
  222759. .IP \(bu 2
  222760. \fBPR\fP \fI\%#35923\fP: (\fI\%kstreee\fP) Fixes a bug that Ctrl\-c not working on Salt CLI.
  222761. @ \fI2016\-09\-07 11:47:50 UTC\fP
  222762. .INDENT 2.0
  222763. .IP \(bu 2
  222764. 45ba2e806b Merge pull request \fI\%#35923\fP from kstreee/fix\-cli\-stalling
  222765. .IP \(bu 2
  222766. 6569267afc Fixes a bug that Ctrl\-c not working on Salt CLI.
  222767. .UNINDENT
  222768. .IP \(bu 2
  222769. \fBISSUE\fP \fI\%#18341\fP: (\fI\%falzm\fP) Dry\-running state.highstate only returns the first change (refs: \fI\%#36078\fP)
  222770. .IP \(bu 2
  222771. \fBPR\fP \fI\%#36078\fP: (\fI\%thatch45\fP) Failhard test=True fix
  222772. @ \fI2016\-09\-07 05:10:35 UTC\fP
  222773. .INDENT 2.0
  222774. .IP \(bu 2
  222775. 48dc5ad4ee Merge pull request \fI\%#36078\fP from thatch45/failhard_test
  222776. .IP \(bu 2
  222777. 9b36904149 Fix failhard causing test=True to failhard too soon
  222778. .UNINDENT
  222779. .IP \(bu 2
  222780. \fBISSUE\fP \fI\%#34515\fP: (\fI\%vernondcole\fP) Please actually implement skip_verify for archive.extracted (refs: \fI\%#34529\fP)
  222781. .IP \(bu 2
  222782. \fBPR\fP \fI\%#34529\fP: (\fI\%Ch3LL\fP) Add skip_verify for archive.extracted
  222783. @ \fI2016\-09\-06 21:05:31 UTC\fP
  222784. .INDENT 2.0
  222785. .IP \(bu 2
  222786. 40081176af Merge pull request \fI\%#34529\fP from Ch3LL/add_skip_verify_archive
  222787. .IP \(bu 2
  222788. 38203e3d2c add tornado web app to serve up static file for test
  222789. .IP \(bu 2
  222790. 617f5680e4 add windows path and add custom tar
  222791. .IP \(bu 2
  222792. c5035118bf add skip_verify option to archive.extracted
  222793. .UNINDENT
  222794. .IP \(bu 2
  222795. \fBPR\fP \fI\%#36073\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222796. @ \fI2016\-09\-06 19:45:48 UTC\fP
  222797. .INDENT 2.0
  222798. .IP \(bu 2
  222799. fc41c744a0 Merge pull request \fI\%#36073\fP from rallytime/merge\-2016.3
  222800. .IP \(bu 2
  222801. e9c634685b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222802. .IP \(bu 2
  222803. fa09050150 consul: fix formatting of consul.agent_join (\fI\%#36061\fP)
  222804. .IP \(bu 2
  222805. \fBPR\fP \fI\%saltstack/salt#36030\fP: (\fI\%whiteinge\fP) Add include_* kwargs to the *_dict key functions (refs: \fI\%#36040\fP)
  222806. .IP \(bu 2
  222807. \fBPR\fP \fI\%#36040\fP: (\fI\%rallytime\fP) Add docs for new kwargs added to the wheel key module
  222808. .IP \(bu 2
  222809. \fBPR\fP \fI\%#36047\fP: (\fI\%whiteinge\fP) Doc cherrypy deemphasize urlencoded
  222810. .UNINDENT
  222811. .IP \(bu 2
  222812. \fBPR\fP \fI\%#36039\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222813. @ \fI2016\-09\-02 21:50:47 UTC\fP
  222814. .INDENT 2.0
  222815. .IP \(bu 2
  222816. 74143999d3 Merge pull request \fI\%#36039\fP from rallytime/merge\-2016.3
  222817. .IP \(bu 2
  222818. 5f499cfd41 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222819. .IP \(bu 2
  222820. 1b39c7ed48 Merge pull request \fI\%#35978\fP from DSRCorporation/bugs/28462_update_auth_data_on_reauth
  222821. .INDENT 2.0
  222822. .IP \(bu 2
  222823. 778ae9a9ff Update auth data on reauth.
  222824. .UNINDENT
  222825. .IP \(bu 2
  222826. b652271ddc Fix type error in networkfbsd osmajorrelease compare (\fI\%#36016\fP)
  222827. .IP \(bu 2
  222828. bc81818075 Merge pull request \fI\%#36018\fP from meaksh/bp\-36000\-to\-2015.8
  222829. .INDENT 2.0
  222830. .IP \(bu 2
  222831. 8c05d2aac5 Lint for \fI\%#35916\fP
  222832. .IP \(bu 2
  222833. b5fe6100ee Check for single quote before splitting on single quote
  222834. .UNINDENT
  222835. .UNINDENT
  222836. .IP \(bu 2
  222837. \fBISSUE\fP \fI\%saltstack/salt#35683\fP: (\fI\%JensRantil\fP) Salt wheel key documentation improvements (refs: \fI\%#35824\fP, #saltstack/salt\(ga#35824\(ga_)
  222838. .INDENT 2.0
  222839. .IP \(bu 2
  222840. \fBPR\fP \fI\%saltstack/salt#35824\fP: (\fI\%rallytime\fP) Add more documentation to the wheel key module (refs: \fI\%#36038\fP)
  222841. .IP \(bu 2
  222842. \fBPR\fP \fI\%#36038\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35824\fP to 2016.3
  222843. .IP \(bu 2
  222844. \fBPR\fP \fI\%#35824\fP: (\fI\%rallytime\fP) Add more documentation to the wheel key module (refs: \fI\%#36038\fP)
  222845. .IP \(bu 2
  222846. \fBPR\fP \fI\%#36033\fP: (\fI\%gtmanfred\fP) catch unicode encoding errors in json outputter
  222847. .IP \(bu 2
  222848. \fBPR\fP \fI\%#36010\fP: (\fI\%eliasp\fP) modules.service: Do not default to OpenRC on Gentoo, also allow systemd
  222849. .UNINDENT
  222850. .IP \(bu 2
  222851. \fBISSUE\fP \fI\%#33969\fP: (\fI\%Inveracity\fP) Redis returner stacktrace in clean_old_jobs 2016.3.0 (refs: \fI\%#33998\fP)
  222852. .INDENT 2.0
  222853. .IP \(bu 2
  222854. \fBPR\fP \fI\%#36014\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33998\fP to 2016.3
  222855. .IP \(bu 2
  222856. \fBPR\fP \fI\%#33998\fP: (\fI\%jizhilong\fP) fix redis_return\(aqs clean_old_jobs. (refs: \fI\%#36014\fP)
  222857. .UNINDENT
  222858. .IP \(bu 2
  222859. \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_)
  222860. .INDENT 2.0
  222861. .IP \(bu 2
  222862. \fBPR\fP \fI\%saltstack/salt#35919\fP: (\fI\%rallytime\fP) Add documentation about salt_interface to EC2 docs (refs: \fI\%#36015\fP)
  222863. .IP \(bu 2
  222864. \fBPR\fP \fI\%#36015\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35919\fP to 2016.3
  222865. .IP \(bu 2
  222866. \fBPR\fP \fI\%#35919\fP: (\fI\%rallytime\fP) Add documentation about salt_interface to EC2 docs (refs: \fI\%#36015\fP)
  222867. .IP \(bu 2
  222868. \fBPR\fP \fI\%saltstack/salt#36000\fP: (\fI\%rallytime\fP) Lint \fI\%#35916\fP (refs: \fI\%#36019\fP, \fI\%#36018\fP)
  222869. .IP \(bu 2
  222870. \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)
  222871. .UNINDENT
  222872. .IP \(bu 2
  222873. \fBPR\fP \fI\%#36019\fP: (\fI\%meaksh\fP) Back\-port \fI\%#36000\fP to 2016.3
  222874. @ \fI2016\-09\-02 20:34:30 UTC\fP
  222875. .INDENT 2.0
  222876. .IP \(bu 2
  222877. \fBPR\fP \fI\%#36000\fP: (\fI\%rallytime\fP) Lint \fI\%#35916\fP (refs: \fI\%#36019\fP, \fI\%#36018\fP)
  222878. .IP \(bu 2
  222879. \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)
  222880. .IP \(bu 2
  222881. e88df5845d Merge pull request \fI\%#36019\fP from meaksh/bp\-36000\-to\-2016.3
  222882. .IP \(bu 2
  222883. 1b2abeabd1 Lint for \fI\%#35916\fP
  222884. .IP \(bu 2
  222885. 8b4f46fbd0 Check for single quote before splitting on single quote
  222886. .IP \(bu 2
  222887. \fBPR\fP \fI\%#36028\fP: (\fI\%thatch45\fP) Fix error when profiling is turned on and minions don\(aqt return (refs: \fI\%#36730\fP)
  222888. .IP \(bu 2
  222889. \fBPR\fP \fI\%#36030\fP: (\fI\%whiteinge\fP) Add include_* kwargs to the *_dict key functions
  222890. .UNINDENT
  222891. .IP \(bu 2
  222892. \fBISSUE\fP \fI\%saltstack/salt#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36024\fP)
  222893. .IP \(bu 2
  222894. \fBPR\fP \fI\%#36024\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt subscribe to events if not sure it would read them. (refs: \fI\%#36720\fP)
  222895. @ \fI2016\-09\-02 15:41:01 UTC\fP
  222896. .INDENT 2.0
  222897. .IP \(bu 2
  222898. cd60ec5d57 Merge pull request \fI\%#36024\fP from DSRCorporation/bugs/31454_local_client_memleak
  222899. .IP \(bu 2
  222900. 01911c530e Don\(aqt subscribe to events if not sure it would read them.
  222901. .UNINDENT
  222902. .IP \(bu 2
  222903. \fBPR\fP \fI\%#36023\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222904. @ \fI2016\-09\-02 15:37:59 UTC\fP
  222905. .INDENT 2.0
  222906. .IP \(bu 2
  222907. 32d5f896d4 Merge pull request \fI\%#36023\fP from rallytime/merge\-2016.3
  222908. .IP \(bu 2
  222909. a63c9dfc6a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222910. .IP \(bu 2
  222911. e6b93c2380 Merge pull request \fI\%#36022\fP from saltstack/revert\-33770\-service_tests
  222912. .INDENT 2.0
  222913. .IP \(bu 2
  222914. 6cf56843d4 Revert "service state integration tests"
  222915. .UNINDENT
  222916. .UNINDENT
  222917. .IP \(bu 2
  222918. \fBPR\fP \fI\%#36004\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222919. @ \fI2016\-09\-01 21:11:06 UTC\fP
  222920. .INDENT 2.0
  222921. .IP \(bu 2
  222922. d248ab0120 Merge pull request \fI\%#36004\fP from rallytime/merge\-2016.3
  222923. .IP \(bu 2
  222924. 318bffed1d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222925. .IP \(bu 2
  222926. 678f10cf8b Avoid traceback in mac_user.py when user.chhome is invoked from a user state (\fI\%#35901\fP)
  222927. .IP \(bu 2
  222928. 2da501071e Merge pull request \fI\%#35967\fP from twangboy/improve_show_sls_2015.8
  222929. .INDENT 2.0
  222930. .IP \(bu 2
  222931. 2ed9a82ef8 Allow full path to be passed to show_sls
  222932. .UNINDENT
  222933. .IP \(bu 2
  222934. d86fba15b3 Merge pull request \fI\%#35981\fP from cachedout/cptestcase_license
  222935. .INDENT 2.0
  222936. .IP \(bu 2
  222937. dd562dd200 Update Salt\(aqs licensing information to include cptestcase
  222938. .UNINDENT
  222939. .UNINDENT
  222940. .IP \(bu 2
  222941. \fBPR\fP \fI\%#35952\fP: (\fI\%twangboy\fP) Load UserProfile when using RunAs (2016.3)
  222942. @ \fI2016\-09\-01 15:18:15 UTC\fP
  222943. .INDENT 2.0
  222944. .IP \(bu 2
  222945. f7b85cb70b Merge pull request \fI\%#35952\fP from twangboy/fix_win_runas_2016.3
  222946. .IP \(bu 2
  222947. 3721a09ea3 Load UserProfile on RunAs
  222948. .UNINDENT
  222949. .IP \(bu 2
  222950. \fBPR\fP \fI\%#35959\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222951. @ \fI2016\-08\-31 22:14:54 UTC\fP
  222952. .INDENT 2.0
  222953. .IP \(bu 2
  222954. b8ca3f5e4d Merge pull request \fI\%#35959\fP from rallytime/merge\-2016.3
  222955. .IP \(bu 2
  222956. bb4605ffee Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222957. .IP \(bu 2
  222958. 0f0f15d048 Merge pull request \fI\%#35956\fP from jacobhammons/dot12
  222959. .INDENT 2.0
  222960. .IP \(bu 2
  222961. 3e21e35933 Version docs to 2015.8.12
  222962. .UNINDENT
  222963. .IP \(bu 2
  222964. d2db4ea7a2 cachedir should be /cloud not /master (\fI\%#35897\fP)
  222965. .IP \(bu 2
  222966. f4cdcc0d66 Better logging when file_recv_max_size is exceeded (\fI\%#35914\fP)
  222967. .UNINDENT
  222968. .IP \(bu 2
  222969. \fBPR\fP \fI\%#35955\fP: (\fI\%jacobhammons\fP) Version docs to 2016.3.3
  222970. @ \fI2016\-08\-31 20:35:55 UTC\fP
  222971. .INDENT 2.0
  222972. .IP \(bu 2
  222973. a87b91a8ea Merge pull request \fI\%#35955\fP from jacobhammons/dot3
  222974. .IP \(bu 2
  222975. ac8fe6ff9e Version docs to 2016.3.3
  222976. .UNINDENT
  222977. .IP \(bu 2
  222978. \fBISSUE\fP \fI\%#875\fP: (\fI\%dhoffutt\fP) state pkg won\(aqt install package nscd (refs: \fI\%#35865\fP)
  222979. .INDENT 2.0
  222980. .IP \(bu 2
  222981. \fBPR\fP \fI\%#35865\fP: (\fI\%jacobhammons\fP) Fix incremental doc builds \- OS X, postgres returner, tcp transport doc updates
  222982. .UNINDENT
  222983. .IP \(bu 2
  222984. \fBISSUE\fP \fI\%#35829\fP: (\fI\%amontalban\fP) FreeBSD pkg.latest speed improvement (refs: \fI\%#35904\fP)
  222985. .INDENT 2.0
  222986. .IP \(bu 2
  222987. \fBPR\fP \fI\%#35904\fP: (\fI\%amontalban\fP) Fixes \fI\%#35829\fP for branch 2016.3
  222988. .IP \(bu 2
  222989. \fBPR\fP \fI\%#35931\fP: (\fI\%vutny\fP) Salt Cloud: add \fIcentos\fP default user for official CentOS AMIs
  222990. .IP \(bu 2
  222991. \fBPR\fP \fI\%saltstack/salt#35892\fP: (\fI\%cachedout\fP) Fixup Docker test (refs: \fI\%#35926\fP)
  222992. .IP \(bu 2
  222993. \fBPR\fP \fI\%saltstack/salt#35581\fP: (\fI\%pbdeuchler\fP) Correctly check if image is in current tags (refs: \fI\%#35926\fP)
  222994. .IP \(bu 2
  222995. \fBPR\fP \fI\%#35926\fP: (\fI\%ticosax\fP) [dockerng] Mention that docker image names must be given with repository
  222996. .IP \(bu 2
  222997. \fBPR\fP \fI\%#35581\fP: (\fI\%pbdeuchler\fP) Correctly check if image is in current tags (refs: \fI\%#35926\fP)
  222998. .UNINDENT
  222999. .IP \(bu 2
  223000. \fBISSUE\fP \fI\%#35825\fP: (\fI\%tjyang\fP) "\(aqdrac\(aq __virtual__ returned False" from salt\-run drac.version host (refs: \fI\%#35868\fP)
  223001. .IP \(bu 2
  223002. \fBPR\fP \fI\%#35868\fP: (\fI\%rallytime\fP) Add more helpful return messages for drac runner
  223003. @ \fI2016\-08\-31 01:33:27 UTC\fP
  223004. .INDENT 2.0
  223005. .IP \(bu 2
  223006. ca06c62900 Merge pull request \fI\%#35868\fP from rallytime/fix\-35825
  223007. .IP \(bu 2
  223008. 00ae17248e Update error message to be more helpful and fix doc formatting
  223009. .IP \(bu 2
  223010. 30a422bfe0 Add more helpful return messages for drac runner
  223011. .UNINDENT
  223012. .IP \(bu 2
  223013. \fBPR\fP \fI\%#35903\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 into 2016.3
  223014. @ \fI2016\-08\-30 17:15:36 UTC\fP
  223015. .INDENT 2.0
  223016. .IP \(bu 2
  223017. 95b89dbce9 Merge pull request \fI\%#35903\fP from rallytime/merge\-2016.3
  223018. .IP \(bu 2
  223019. 9e55bee5d5 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223020. .IP \(bu 2
  223021. 08e10f69eb Clarifies how to create aliased functions (\fI\%#35891\fP)
  223022. .IP \(bu 2
  223023. 6dd5f68a08 Merge pull request \fI\%#35856\fP from vutny/2015.8
  223024. .INDENT 2.0
  223025. .IP \(bu 2
  223026. eceedadfa5 salt\-cloud: fix path to Salt Master socket dir
  223027. .UNINDENT
  223028. .IP \(bu 2
  223029. 336d1a700d Merge pull request \fI\%#35880\fP from terminalmage/issue35747
  223030. .INDENT 2.0
  223031. .IP \(bu 2
  223032. 123a611066 pacman.py: Fix incorrect return in pkg.latest_version
  223033. .UNINDENT
  223034. .IP \(bu 2
  223035. 6383451c99 Merge pull request \fI\%#35884\fP from terminalmage/clarify\-pkg\-latest\-logic
  223036. .INDENT 2.0
  223037. .IP \(bu 2
  223038. b0b419d1d8 Fix condition for Gentoo USE flag update
  223039. .IP \(bu 2
  223040. 1542fd4716 Add clarifying comments to the pkg.latest state
  223041. .UNINDENT
  223042. .UNINDENT
  223043. .IP \(bu 2
  223044. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  223045. .IP \(bu 2
  223046. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  223047. .IP \(bu 2
  223048. \fBPR\fP \fI\%#35855\fP: (\fI\%vutny\fP) [REGRESSION] salt\-cloud: fix path to Salt Master socket dir (refs: \fI\%#35856\fP)
  223049. @ \fI2016\-08\-30 07:09:04 UTC\fP
  223050. .INDENT 2.0
  223051. .IP \(bu 2
  223052. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  223053. .IP \(bu 2
  223054. cf8f081401 Merge pull request \fI\%#35855\fP from vutny/salt\-cloud\-fix\-sock_dir
  223055. .IP \(bu 2
  223056. a662ea5337 salt\-cloud: fix path to Salt Master socket dir
  223057. .UNINDENT
  223058. .IP \(bu 2
  223059. \fBPR\fP \fI\%#35881\fP: (\fI\%whiteinge\fP) Add fail\-safe in case Salt gives us data we can\(aqt serialize
  223060. @ \fI2016\-08\-30 06:43:11 UTC\fP
  223061. .INDENT 2.0
  223062. .IP \(bu 2
  223063. f0987cf27a Merge pull request \fI\%#35881\fP from whiteinge/salt\-api\-catch\-serializer\-error
  223064. .IP \(bu 2
  223065. 6e27fad21f Add fail\-safe in case Salt gives us data we can\(aqt serialize
  223066. .UNINDENT
  223067. .IP \(bu 2
  223068. \fBISSUE\fP \fI\%#35837\fP: (\fI\%JensRantil\fP) Doc improvement: Mention engine under extension modules (refs: \fI\%#35864\fP)
  223069. .INDENT 2.0
  223070. .IP \(bu 2
  223071. \fBPR\fP \fI\%#35864\fP: (\fI\%rallytime\fP) Add engines to list of extension module options in master config docs
  223072. .UNINDENT
  223073. .IP \(bu 2
  223074. \fBISSUE\fP \fI\%#35835\fP: (\fI\%JensRantil\fP) Incorrect SQS config documentation statement (refs: \fI\%#35861\fP)
  223075. .INDENT 2.0
  223076. .IP \(bu 2
  223077. \fBPR\fP \fI\%#35861\fP: (\fI\%rallytime\fP) Fix IAM roles statement to be boto version specific in sqs_events
  223078. .UNINDENT
  223079. .IP \(bu 2
  223080. \fBISSUE\fP \fI\%#35834\fP: (\fI\%JensRantil\fP) Incorrect SQS engine config (refs: \fI\%#35860\fP)
  223081. .INDENT 2.0
  223082. .IP \(bu 2
  223083. \fBPR\fP \fI\%#35860\fP: (\fI\%rallytime\fP) Fix doc formatting for sqs_events engine example config
  223084. .UNINDENT
  223085. .IP \(bu 2
  223086. \fBPR\fP \fI\%#35859\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223087. @ \fI2016\-08\-29 18:21:04 UTC\fP
  223088. .INDENT 2.0
  223089. .IP \(bu 2
  223090. 96747bc3bb Merge pull request \fI\%#35859\fP from rallytime/merge\-2016.3
  223091. .IP \(bu 2
  223092. 5f93d682aa Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223093. .IP \(bu 2
  223094. eda2ae0add Merge pull request \fI\%#35781\fP from thatch45/ssh_deploy_more
  223095. .INDENT 2.0
  223096. .IP \(bu 2
  223097. 2558dcc100 follow up on the re\-deploy if there is a checksum missmatch
  223098. .UNINDENT
  223099. .IP \(bu 2
  223100. 165237412c Merge pull request \fI\%#35815\fP from gtmanfred/2015.8
  223101. .INDENT 2.0
  223102. .IP \(bu 2
  223103. 805d43598e list_nodes_min should return a minimum dictionary
  223104. .UNINDENT
  223105. .IP \(bu 2
  223106. b12c6577d2 Merge pull request \fI\%#35833\fP from terminalmage/2015.8\-top\-file\-merging\-docs
  223107. .INDENT 2.0
  223108. .IP \(bu 2
  223109. c534d88280 More clarification/correction in minion docs
  223110. .IP \(bu 2
  223111. e9e6ea8485 One more tweak to top file merging docs
  223112. .UNINDENT
  223113. .UNINDENT
  223114. .IP \(bu 2
  223115. \fBISSUE\fP \fI\%#34478\fP: (\fI\%hujunya\fP) makedir bug in the file module (refs: \fI\%#35849\fP)
  223116. .IP \(bu 2
  223117. \fBPR\fP \fI\%#35849\fP: (\fI\%theredcat\fP) Fix potential infinite loop with no error when using recursive makedirs
  223118. @ \fI2016\-08\-29 11:37:19 UTC\fP
  223119. .INDENT 2.0
  223120. .IP \(bu 2
  223121. dc705ff675 Merge pull request \fI\%#35849\fP from theredcat/fix_file_makedirs_infinite_loop
  223122. .IP \(bu 2
  223123. 86d5398b28 Fix potential infinite loop with no error when using recursive makedirs
  223124. .UNINDENT
  223125. .IP \(bu 2
  223126. \fBPR\fP \fI\%#35682\fP: (\fI\%vutny\fP) [BACKPORT] Fix empty \fIfun_agrs\fP field in Reactor generated events
  223127. @ \fI2016\-08\-29 04:11:06 UTC\fP
  223128. .INDENT 2.0
  223129. .IP \(bu 2
  223130. \fBPR\fP \fI\%#35659\fP: (\fI\%vutny\fP) Fix empty \fIfun_agrs\fP field in Reactor generated events (refs: \fI\%#35682\fP)
  223131. .IP \(bu 2
  223132. \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)
  223133. .IP \(bu 2
  223134. 433743f609 Merge pull request \fI\%#35682\fP from vutny/backport\-35659
  223135. .IP \(bu 2
  223136. 78d16a8057 [BACKPORT] Fix empty \fIfun_agrs\fP field in Reactor generated events
  223137. .UNINDENT
  223138. .IP \(bu 2
  223139. \fBISSUE\fP \fI\%#34973\fP: (\fI\%szjur\fP) Syndic stops forwarding job results if the local salt\-master is restarted (refs: \fI\%#35792\fP)
  223140. .IP \(bu 2
  223141. \fBPR\fP \fI\%#35792\fP: (\fI\%DmitryKuzmenko\fP) Reconnect syndic to event bus if master disappeared.
  223142. @ \fI2016\-08\-29 02:13:19 UTC\fP
  223143. .INDENT 2.0
  223144. .IP \(bu 2
  223145. 30c2db7b09 Merge pull request \fI\%#35792\fP from DSRCorporation/bugs/34973_syndic_reconnect_master_2016.3
  223146. .IP \(bu 2
  223147. 9afdbb0e97 Reconnect syndic to master event bus if master disappears.
  223148. .IP \(bu 2
  223149. ab1afd002e Fixed syndic event bus connection.
  223150. .IP \(bu 2
  223151. ea8e1385c1 Fixed syndic unhandled future exception if master is stopped.
  223152. .UNINDENT
  223153. .IP \(bu 2
  223154. \fBPR\fP \fI\%#35817\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223155. @ \fI2016\-08\-26 20:44:18 UTC\fP
  223156. .INDENT 2.0
  223157. .IP \(bu 2
  223158. 43c08ae431 Merge pull request \fI\%#35817\fP from rallytime/merge\-2016.3
  223159. .IP \(bu 2
  223160. e8e73b55ac Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223161. .IP \(bu 2
  223162. d285fe64b7 Merge pull request \fI\%#35811\fP from rallytime/bp\-35576
  223163. .INDENT 2.0
  223164. .IP \(bu 2
  223165. 04c063b315 Updated user.py to redact password when test=true
  223166. .UNINDENT
  223167. .IP \(bu 2
  223168. e212c55b7a Schedule documentation update (\fI\%#35745\fP)
  223169. .IP \(bu 2
  223170. eb4d2f299b Better unicode handling in gitfs (\fI\%#35802\fP)
  223171. .IP \(bu 2
  223172. 0ee237a9cb Remove extra "to" in top.rst docs (\fI\%#35808\fP)
  223173. .IP \(bu 2
  223174. 2fc61763d8 Correct the top_file_merging_strategy documentation (\fI\%#35774\fP)
  223175. .IP \(bu 2
  223176. \fBPR\fP \fI\%#35788\fP: (\fI\%hu\-dabao\fP) fix 34241, webutil.useradd_all is deprecated
  223177. .UNINDENT
  223178. .IP \(bu 2
  223179. \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)
  223180. .IP \(bu 2
  223181. \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)
  223182. .INDENT 2.0
  223183. .IP \(bu 2
  223184. \fBPR\fP \fI\%#35810\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35806\fP to 2016.3
  223185. .IP \(bu 2
  223186. \fBPR\fP \fI\%#35806\fP: (\fI\%rallytime\fP) Bump the deprecation warning in pkgrepo state to Nitrogen (refs: \fI\%#35810\fP)
  223187. .IP \(bu 2
  223188. \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)
  223189. .UNINDENT
  223190. .IP \(bu 2
  223191. \fBISSUE\fP \fI\%#35741\fP: (\fI\%fix7\fP) modjk: use of auth credentials to access jk\-status broken (refs: \fI\%#35796\fP)
  223192. .INDENT 2.0
  223193. .IP \(bu 2
  223194. \fBPR\fP \fI\%#35796\fP: (\fI\%fix7\fP) Fix \fI\%#35741\fP
  223195. .IP \(bu 2
  223196. \fBPR\fP \fI\%#35807\fP: (\fI\%jacobhammons\fP) Adds mock for tornado.locks
  223197. .IP \(bu 2
  223198. \fBPR\fP \fI\%#35800\fP: (\fI\%alexander\-bauer\fP) Trivial documentation spelling fix
  223199. .UNINDENT
  223200. .IP \(bu 2
  223201. \fBPR\fP \fI\%#35763\fP: (\fI\%isbm\fP) Sphinx crash: documentation config fix
  223202. @ \fI2016\-08\-25 21:12:39 UTC\fP
  223203. .INDENT 2.0
  223204. .IP \(bu 2
  223205. 9b5ee2155e Merge pull request \fI\%#35763\fP from isbm/isbm\-doc\-conf\-sphinx\-crashfix
  223206. .IP \(bu 2
  223207. a56ae4e8f5 Configure importing Mock to handle \(aqtotal\(aq method from psutils properly
  223208. .IP \(bu 2
  223209. 9c057d0266 Return psutil back to the list of mocked imports
  223210. .IP \(bu 2
  223211. 3d7758461e Improve Mock to be flexible and able to mock methods from the mocked modules
  223212. .UNINDENT
  223213. .IP \(bu 2
  223214. \fBISSUE\fP \fI\%#35771\fP: (\fI\%bdrung\fP) Spelling errors in salt 2016.3.2 (refs: \fI\%#35773\fP)
  223215. .INDENT 2.0
  223216. .IP \(bu 2
  223217. \fBPR\fP \fI\%#35773\fP: (\fI\%rallytime\fP) Documentation spelling fixes
  223218. .UNINDENT
  223219. .IP \(bu 2
  223220. \fBPR\fP \fI\%#35767\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223221. @ \fI2016\-08\-25 16:09:37 UTC\fP
  223222. .INDENT 2.0
  223223. .IP \(bu 2
  223224. e355c1cf90 Merge pull request \fI\%#35767\fP from rallytime/merge\-2016.3
  223225. .IP \(bu 2
  223226. 8ad6a12c80 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223227. .IP \(bu 2
  223228. 2a12795bac Fixes Windows download paths (\fI\%#35742\fP)
  223229. .UNINDENT
  223230. .IP \(bu 2
  223231. \fBISSUE\fP \fI\%#20575\fP: (\fI\%starchy\fP) "salt \-\-subset=n" appears to always choose the same nodes (refs: \fI\%#35753\fP)
  223232. .IP \(bu 2
  223233. \fBPR\fP \fI\%#35753\fP: (\fI\%rallytime\fP) Fixup the unit.client_test.LocalClientTestCase.test_cmd_subset from \fI\%#35720\fP
  223234. @ \fI2016\-08\-25 15:55:23 UTC\fP
  223235. .INDENT 2.0
  223236. .IP \(bu 2
  223237. \fBPR\fP \fI\%#35720\fP: (\fI\%hu\-dabao\fP) fix 20575, make subset really return random subset (refs: \fI\%#35753\fP)
  223238. .IP \(bu 2
  223239. b3f6367621 Merge pull request \fI\%#35753\fP from rallytime/fix\-client\-unit\-test
  223240. .IP \(bu 2
  223241. 92f8c836e8 Add cmd_mock back in to function spec
  223242. .IP \(bu 2
  223243. a671f0a092 Fixup the unit.client_test.LocalClientTestCase.test_cmd_subset from \fI\%#35720\fP
  223244. .UNINDENT
  223245. .IP \(bu 2
  223246. \fBISSUE\fP \fI\%#35458\fP: (\fI\%iggy\fP) SALT.STATES.APACHE_MODULE needs version annotations (refs: \fI\%#35732\fP)
  223247. .INDENT 2.0
  223248. .IP \(bu 2
  223249. \fBPR\fP \fI\%#35732\fP: (\fI\%rallytime\fP) Add versionadded for enabled function in apache_module state
  223250. .UNINDENT
  223251. .IP \(bu 2
  223252. \fBPR\fP \fI\%#35737\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223253. @ \fI2016\-08\-24 19:48:45 UTC\fP
  223254. .INDENT 2.0
  223255. .IP \(bu 2
  223256. bab0e3d449 Merge pull request \fI\%#35737\fP from rallytime/merge\-2016.3
  223257. .IP \(bu 2
  223258. 61e37d5956 Merge branch \(aq2015.8\(aq into \(aq2106.3\(aq
  223259. .IP \(bu 2
  223260. 06a75be8bd Merge pull request \fI\%#35701\fP from gtmanfred/2015.8
  223261. .INDENT 2.0
  223262. .IP \(bu 2
  223263. 2d2bc1ffea use aws.get_location in s3 modules
  223264. .UNINDENT
  223265. .IP \(bu 2
  223266. 79bc01b88c Make test runs behave better (\fI\%#35708\fP)
  223267. .UNINDENT
  223268. .IP \(bu 2
  223269. \fBPR\fP \fI\%#35729\fP: (\fI\%cachedout\fP) Remove docs mocks for msgpack and psutils
  223270. @ \fI2016\-08\-24 14:42:06 UTC\fP
  223271. .INDENT 2.0
  223272. .IP \(bu 2
  223273. 7877ff1d5e Merge pull request \fI\%#35729\fP from cachedout/fix_docs_build
  223274. .IP \(bu 2
  223275. fdbf01d5ad Remove docs mocks for msgpack and psutils
  223276. .UNINDENT
  223277. .IP \(bu 2
  223278. \fBPR\fP \fI\%#35628\fP: (\fI\%jf\fP) Fix user.present state reporting for groups when remove_groups=false
  223279. @ \fI2016\-08\-24 08:15:31 UTC\fP
  223280. .INDENT 2.0
  223281. .IP \(bu 2
  223282. 962e493304 Merge pull request \fI\%#35628\fP from jf/fix_user.present_reporting_when_remove_groups=false
  223283. .IP \(bu 2
  223284. 1f818c832e Fix user.present state reporting for groups when remove_groups=false
  223285. .UNINDENT
  223286. .IP \(bu 2
  223287. \fBPR\fP \fI\%#35696\fP: (\fI\%xiaoanyunfei\fP) fix maximum recursion depth bug
  223288. @ \fI2016\-08\-24 08:01:16 UTC\fP
  223289. .INDENT 2.0
  223290. .IP \(bu 2
  223291. 02d86c6550 Merge pull request \fI\%#35696\fP from xiaoanyunfei/2016.3
  223292. .IP \(bu 2
  223293. 5db9255926 fix maximum recursion depth
  223294. .UNINDENT
  223295. .IP \(bu 2
  223296. \fBPR\fP \fI\%#35720\fP: (\fI\%hu\-dabao\fP) fix 20575, make subset really return random subset (refs: \fI\%#35753\fP)
  223297. @ \fI2016\-08\-24 07:03:58 UTC\fP
  223298. .INDENT 2.0
  223299. .IP \(bu 2
  223300. 79d10aea2d Merge pull request \fI\%#35720\fP from hu\-dabao/fix\-20575
  223301. .IP \(bu 2
  223302. 70af980c01 fix 20575, make subset really return random subset
  223303. .UNINDENT
  223304. .IP \(bu 2
  223305. \fBPR\fP \fI\%#35700\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223306. @ \fI2016\-08\-23 17:23:40 UTC\fP
  223307. .INDENT 2.0
  223308. .IP \(bu 2
  223309. 5d0b9a248e Merge pull request \fI\%#35700\fP from rallytime/merge\-2016.3
  223310. .IP \(bu 2
  223311. 9e9923c3f4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223312. .IP \(bu 2
  223313. aee5b62542 Merge pull request \fI\%#35680\fP from terminalmage/issue35630
  223314. .INDENT 2.0
  223315. .IP \(bu 2
  223316. d76659a63a Don\(aqt use six.text_type() in salt.utils.gitfs
  223317. .UNINDENT
  223318. .IP \(bu 2
  223319. 74678923b8 Fixup doc formatting for the sqs_events engine (\fI\%#35663\fP)
  223320. .UNINDENT
  223321. .IP \(bu 2
  223322. \fBPR\fP \fI\%#35634\fP: (\fI\%hu\-dabao\fP) fix 34922, StopIteration should not throw exception out
  223323. @ \fI2016\-08\-23 08:13:08 UTC\fP
  223324. .INDENT 2.0
  223325. .IP \(bu 2
  223326. f305389172 Merge pull request \fI\%#35634\fP from hu\-dabao/fix\-34922
  223327. .IP \(bu 2
  223328. fe338ff41f fix 34922, StopIteration should not throw exception out
  223329. .UNINDENT
  223330. .IP \(bu 2
  223331. \fBPR\fP \fI\%#35679\fP: (\fI\%twangboy\fP) Revert to vcredist 12 (2013)
  223332. @ \fI2016\-08\-23 08:05:40 UTC\fP
  223333. .INDENT 2.0
  223334. .IP \(bu 2
  223335. e45aa55d79 Merge pull request \fI\%#35679\fP from twangboy/change.vcredist.version.2016.3
  223336. .IP \(bu 2
  223337. 3d6d473d48 Revert to vcredist 12 (2013)
  223338. .UNINDENT
  223339. .IP \(bu 2
  223340. \fBPR\fP \fI\%#35662\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223341. @ \fI2016\-08\-22 19:03:43 UTC\fP
  223342. .INDENT 2.0
  223343. .IP \(bu 2
  223344. 9fe0972761 Merge pull request \fI\%#35662\fP from rallytime/merge\-2016.3
  223345. .IP \(bu 2
  223346. 1d819d7cc2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223347. .INDENT 2.0
  223348. .IP \(bu 2
  223349. 399e9f57cc Update release notes for 2015.8.12 (\fI\%#35614\fP)
  223350. .IP \(bu 2
  223351. f7f8221169 Everything in the sample master config file should be commented out (\fI\%#35611\fP)
  223352. .IP \(bu 2
  223353. c9070c212f Merge pull request \fI\%#35569\fP from rallytime/test\-for\-35384
  223354. .INDENT 2.0
  223355. .IP \(bu 2
  223356. 30f42d5352 Write test for multiple unless commands where 1st cmd passes and 2nd fails
  223357. .UNINDENT
  223358. .UNINDENT
  223359. .IP \(bu 2
  223360. \fBPR\fP \fI\%#35661\fP: (\fI\%justinta\fP) Backport \fI\%#35627\fP to 2016.3
  223361. .IP \(bu 2
  223362. \fBPR\fP \fI\%#35627\fP: (\fI\%cachedout\fP) Comment boto lambda test (refs: \fI\%#35661\fP)
  223363. .UNINDENT
  223364. .IP \(bu 2
  223365. \fBPR\fP \fI\%#35615\fP: (\fI\%hu\-dabao\fP) fix 35591, verify the acl file exist before proceed
  223366. @ \fI2016\-08\-21 04:41:32 UTC\fP
  223367. .INDENT 2.0
  223368. .IP \(bu 2
  223369. 67692f868c Merge pull request \fI\%#35615\fP from hu\-dabao/fix\-35591
  223370. .IP \(bu 2
  223371. 402b83e4d3 change file verification to exist
  223372. .IP \(bu 2
  223373. 7355eb4ecd move python lib import after absolute_import
  223374. .IP \(bu 2
  223375. 69a2427670 fix 35591, verify the acl file exist before proceed
  223376. .UNINDENT
  223377. .IP \(bu 2
  223378. \fBPR\fP \fI\%#35485\fP: (\fI\%cro\fP) Cassandra returner bugfixes and documentation.
  223379. @ \fI2016\-08\-20 02:42:28 UTC\fP
  223380. .INDENT 2.0
  223381. .IP \(bu 2
  223382. de6fca3909 Merge pull request \fI\%#35485\fP from cro/jpmc_cass_return
  223383. .IP \(bu 2
  223384. 0b01a7a266 Six import for range.
  223385. .IP \(bu 2
  223386. 7e87d4170d Fix Py3 lint?
  223387. .IP \(bu 2
  223388. d4336d011c [1,2,3] \-> range(1,4)
  223389. .IP \(bu 2
  223390. cec7f6a7ec remove unneeded import
  223391. .IP \(bu 2
  223392. e31555345f Add timeout documentation.
  223393. .IP \(bu 2
  223394. 901ab8b74c Remove unnecessary log statements
  223395. .IP \(bu 2
  223396. 1954c1a3f3 Update cassandra returner for JPMC
  223397. .UNINDENT
  223398. .IP \(bu 2
  223399. \fBISSUE\fP \fI\%#35519\fP: (\fI\%morganwillcock\fP) win_dism state doesn\(aqt handle all success return codes (refs: \fI\%#35520\fP)
  223400. .IP \(bu 2
  223401. \fBPR\fP \fI\%#35520\fP: (\fI\%morganwillcock\fP) Check for all success return codes in win_dism state
  223402. @ \fI2016\-08\-20 02:35:01 UTC\fP
  223403. .INDENT 2.0
  223404. .IP \(bu 2
  223405. edefff51d4 Merge pull request \fI\%#35520\fP from morganwillcock/dism\-return\-codes
  223406. .IP \(bu 2
  223407. 0b95b85e69 Check for all success return codes in dism state
  223408. .UNINDENT
  223409. .IP \(bu 2
  223410. \fBPR\fP \fI\%#35616\fP: (\fI\%xbglowx\fP) Remove duplicate auth_tries in minion docs
  223411. @ \fI2016\-08\-20 02:32:50 UTC\fP
  223412. .INDENT 2.0
  223413. .IP \(bu 2
  223414. 27211dbd64 Merge pull request \fI\%#35616\fP from xbglowx/2016.3
  223415. .IP \(bu 2
  223416. 2801f0fdcc Remove duplicate auth_tries in minion docs
  223417. .UNINDENT
  223418. .IP \(bu 2
  223419. \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)
  223420. .IP \(bu 2
  223421. \fBPR\fP \fI\%#35552\fP: (\fI\%DmitryKuzmenko\fP) Syndic fix: don\(aqt strip \(aqretcode\(aq and \(aqsuccess\(aq from events.
  223422. @ \fI2016\-08\-20 02:00:40 UTC\fP
  223423. .INDENT 2.0
  223424. .IP \(bu 2
  223425. 25ac9bacc6 Merge pull request \fI\%#35552\fP from DSRCorporation/bugs/34992_syndic_strip_retcode
  223426. .IP \(bu 2
  223427. d036299f6f Syndic fix: don\(aqt strip \(aqretcode\(aq and \(aqsuccess\(aq from events.
  223428. .UNINDENT
  223429. .IP \(bu 2
  223430. \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)
  223431. .IP \(bu 2
  223432. \fBPR\fP \fI\%#35559\fP: (\fI\%Jlin317\fP) Fix highstate outputter when it\(aqs given multiple results (refs: \fI\%#36137\fP)
  223433. @ \fI2016\-08\-20 01:56:25 UTC\fP
  223434. .INDENT 2.0
  223435. .IP \(bu 2
  223436. bec8322e13 Merge pull request \fI\%#35559\fP from Jlin317/fix_highstate_outputter
  223437. .IP \(bu 2
  223438. 27aa038cc6 Fix highstate outputter when it\(aqs given multiple results
  223439. .UNINDENT
  223440. .IP \(bu 2
  223441. \fBISSUE\fP \fI\%#32478\fP: (\fI\%oliver\-dungey\fP) rsync.synchronized \- user/group options required (refs: \fI\%#32739\fP)
  223442. .IP \(bu 2
  223443. \fBPR\fP \fI\%#35605\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32739\fP to 2016.3
  223444. @ \fI2016\-08\-20 01:39:38 UTC\fP
  223445. .INDENT 2.0
  223446. .IP \(bu 2
  223447. \fBPR\fP \fI\%#32739\fP: (\fI\%abednarik\fP) Rsync synchronized updates. (refs: \fI\%#35605\fP)
  223448. .IP \(bu 2
  223449. 4153aeba29 Merge pull request \fI\%#35605\fP from rallytime/bp\-32739
  223450. .IP \(bu 2
  223451. 36d8b4a409 Rsync synchronized updates.
  223452. .UNINDENT
  223453. .IP \(bu 2
  223454. \fBPR\fP \fI\%#35606\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223455. @ \fI2016\-08\-19 22:19:05 UTC\fP
  223456. .INDENT 2.0
  223457. .IP \(bu 2
  223458. 6eabe6356f Merge pull request \fI\%#35606\fP from rallytime/merge\-2016.3
  223459. .IP \(bu 2
  223460. f2eb625778 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223461. .IP \(bu 2
  223462. 0c7aa802f5 Update release notes for 2015.8.12 (\fI\%#35600\fP)
  223463. .IP \(bu 2
  223464. dd12b48239 Update release notes for 2015.8.12 (\fI\%#35599\fP)
  223465. .IP \(bu 2
  223466. beb6ca8ef9 Update linux_sysctl tests to reflect new context key (\fI\%#35584\fP)
  223467. .IP \(bu 2
  223468. fd08d33597 Add warning about AWS flagging of nmap usage (\fI\%#35575\fP)
  223469. .UNINDENT
  223470. .UNINDENT
  223471. .SS Salt 2016.3.5 Release Notes
  223472. .sp
  223473. Version 2016.3.5 is a bugfix release for 2016.3.0\&.
  223474. .SS Statistics
  223475. .INDENT 0.0
  223476. .IP \(bu 2
  223477. Total Merges: \fB190\fP
  223478. .IP \(bu 2
  223479. Total Issue References: \fB112\fP
  223480. .IP \(bu 2
  223481. Total PR References: \fB281\fP
  223482. .IP \(bu 2
  223483. 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)
  223484. .UNINDENT
  223485. .SS Security Fixes
  223486. .sp
  223487. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  223488. .sp
  223489. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  223490. credentials and so access to it from salt\-api has been removed for now. This
  223491. vulnerability allows code execution for already\-authenticated users and is only
  223492. in effect when running salt\-api as the \fBroot\fP user.
  223493. .sp
  223494. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master via
  223495. Salt\(aqs ssh_client
  223496. .sp
  223497. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  223498. hole when both systems were enabled.
  223499. .sp
  223500. We recommend everyone on the 2016.3 branch upgrade to a patched release as soon
  223501. as possible.
  223502. .SS Improved Checksum Handling in \fBfile.managed\fP, \fBarchive.extracted\fP States
  223503. .sp
  223504. When the \fBsource_hash\fP argument for these states refers to a file containing
  223505. checksums, Salt now looks for checksums matching the name of the source URI, as
  223506. well as the file being managed. Prior releases only looked for checksums
  223507. matching the filename being managed. Additionally, a new argument
  223508. (\fBsource_hash_name\fP) has been added, which allows the user to disambiguate
  223509. ambiguous matches when more than one matching checksum is found in the
  223510. \fBsource_hash\fP file.
  223511. .sp
  223512. A more detailed explanation of this functionality can be found in the
  223513. \fBfile.managed\fP documentation, in the
  223514. section for the new \fBsource_hash_name\fP argument.
  223515. .SS Changelog for v2016.3.4..v2016.3.5
  223516. .sp
  223517. \fIGenerated at: 2018\-05\-27 05:09:33 UTC\fP
  223518. .INDENT 0.0
  223519. .IP \(bu 2
  223520. \fBPR\fP \fI\%#38833\fP: (\fI\%Ch3LL\fP) add 2016.3.5 changelog to release notes
  223521. @ \fI2017\-01\-19 23:27:26 UTC\fP
  223522. .INDENT 2.0
  223523. .IP \(bu 2
  223524. a04ab86da1 Merge pull request \fI\%#38833\fP from Ch3LL/add_release_notes_2016.3.5
  223525. .IP \(bu 2
  223526. 374dc1ab88 skip 2016.3.5 due to :doc: references
  223527. .IP \(bu 2
  223528. 31f324c4ff add 2016.3.5 changelog to release notes
  223529. .UNINDENT
  223530. .IP \(bu 2
  223531. \fBPR\fP \fI\%#38812\fP: (\fI\%rallytime\fP) Update pyobjects test to be a list
  223532. @ \fI2017\-01\-18 21:06:01 UTC\fP
  223533. .INDENT 2.0
  223534. .IP \(bu 2
  223535. d14f0c64eb Merge pull request \fI\%#38812\fP from rallytime/pyobjects\-test
  223536. .IP \(bu 2
  223537. f3e84c1ab7 Update pyobjects test to be a list
  223538. .UNINDENT
  223539. .IP \(bu 2
  223540. \fBISSUE\fP \fI\%#36598\fP: (\fI\%ikkaro\fP) CloudClient vmware driver reusing SI bug (refs: \fI\%#38813\fP)
  223541. .IP \(bu 2
  223542. \fBPR\fP \fI\%#38813\fP: (\fI\%gtmanfred\fP) catch SIGPIPE in vmware connection
  223543. @ \fI2017\-01\-18 21:05:42 UTC\fP
  223544. .INDENT 2.0
  223545. .IP \(bu 2
  223546. 50f03f8057 Merge pull request \fI\%#38813\fP from gtmanfred/2016.3
  223547. .IP \(bu 2
  223548. ce3472cec2 catch SIGPIPE in vmware connection
  223549. .UNINDENT
  223550. .IP \(bu 2
  223551. \fBPR\fP \fI\%#38809\fP: (\fI\%twangboy\fP) Fix get_hostname to handle longer computer names
  223552. @ \fI2017\-01\-18 19:32:00 UTC\fP
  223553. .INDENT 2.0
  223554. .IP \(bu 2
  223555. 23b8b47258 Merge pull request \fI\%#38809\fP from twangboy/fix_hostname_2016.3
  223556. .IP \(bu 2
  223557. d57a51f9f9 Fix tests for get_hostname
  223558. .IP \(bu 2
  223559. 7ca3fd7484 Fix get_hostname to handle longer computer names
  223560. .UNINDENT
  223561. .IP \(bu 2
  223562. \fBISSUE\fP \fI\%#38388\fP: (\fI\%johje349\fP) No INFO logs in minion log file (refs: \fI\%#38808\fP)
  223563. .IP \(bu 2
  223564. \fBPR\fP \fI\%#38808\fP: (\fI\%vutny\fP) Fix \fI\%#38388\fP
  223565. @ \fI2017\-01\-18 18:19:36 UTC\fP
  223566. .INDENT 2.0
  223567. .IP \(bu 2
  223568. 1033bbdde8 Merge pull request \fI\%#38808\fP from vutny/fix\-38388
  223569. .IP \(bu 2
  223570. 9bd203ffcc Fix \fI\%#38388\fP
  223571. .UNINDENT
  223572. .IP \(bu 2
  223573. \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)
  223574. .IP \(bu 2
  223575. \fBPR\fP \fI\%#38668\fP: (\fI\%terminalmage\fP) Fix proposal for \fI\%#38604\fP
  223576. @ \fI2017\-01\-18 17:53:09 UTC\fP
  223577. .INDENT 2.0
  223578. .IP \(bu 2
  223579. f3ae3cd5c8 Merge pull request \fI\%#38668\fP from terminalmage/issue38604
  223580. .IP \(bu 2
  223581. 0ea97cdad9 Merge pull request \fI\%#10\fP from cachedout/pr\-38668
  223582. .INDENT 2.0
  223583. .IP \(bu 2
  223584. db81afc035 Munge retcode into return data for batching
  223585. .UNINDENT
  223586. .IP \(bu 2
  223587. a642a995dc Return the ret data from batch execution instead of raw data
  223588. .UNINDENT
  223589. .IP \(bu 2
  223590. \fBISSUE\fP \fI\%#38622\fP: (\fI\%mikejford\fP) Incorrect saltenv argument documentation in salt.modules.state (refs: \fI\%#38789\fP)
  223591. .IP \(bu 2
  223592. \fBPR\fP \fI\%#38789\fP: (\fI\%rallytime\fP) Update some saltenv refs to environment in salt.modules.state docs
  223593. @ \fI2017\-01\-18 15:39:22 UTC\fP
  223594. .INDENT 2.0
  223595. .IP \(bu 2
  223596. c6a19a9e5a Merge pull request \fI\%#38789\fP from rallytime/fix\-38622
  223597. .IP \(bu 2
  223598. af41fe0c6e Update some saltenv refs to environment in salt.modules.state docs
  223599. .UNINDENT
  223600. .IP \(bu 2
  223601. \fBPR\fP \fI\%#38790\fP: (\fI\%cachedout\fP) Fix typo in pyobjects test
  223602. @ \fI2017\-01\-18 15:38:57 UTC\fP
  223603. .INDENT 2.0
  223604. .IP \(bu 2
  223605. e0bf700020 Merge pull request \fI\%#38790\fP from cachedout/fix_pyobjects_test_typo
  223606. .IP \(bu 2
  223607. a66afb5f0f Fix typo in pyobjects test
  223608. .UNINDENT
  223609. .IP \(bu 2
  223610. \fBISSUE\fP \fI\%#38629\fP: (\fI\%Arabus\fP) Conflicting documentation about default value of pillar_opts (refs: \fI\%#38792\fP)
  223611. .IP \(bu 2
  223612. \fBPR\fP \fI\%#38792\fP: (\fI\%rallytime\fP) Update pillar tutorial lanuage regarding pillar_opts settings
  223613. @ \fI2017\-01\-18 15:38:19 UTC\fP
  223614. .INDENT 2.0
  223615. .IP \(bu 2
  223616. 6e9785edea Merge pull request \fI\%#38792\fP from rallytime/fix\-38629
  223617. .IP \(bu 2
  223618. 1e125e2844 Update pillar tutorial lanuage regarding pillar_opts settings
  223619. .IP \(bu 2
  223620. \fBPR\fP \fI\%saltstack/salt#38707\fP: (\fI\%alexbleotu\fP) Fixed prepending of root_dir override to the other paths (refs: \fI\%#38796\fP)
  223621. .UNINDENT
  223622. .IP \(bu 2
  223623. \fBPR\fP \fI\%#38796\fP: (\fI\%cachedout\fP) Revert "Fixed prepending of root_dir override to the other paths"
  223624. @ \fI2017\-01\-17 23:18:18 UTC\fP
  223625. .INDENT 2.0
  223626. .IP \(bu 2
  223627. 3417adc617 Merge pull request \fI\%#38796\fP from saltstack/revert\-38707\-root_dir_fix\-gh
  223628. .IP \(bu 2
  223629. cb080f3bbe Revert "Fixed prepending of root_dir override to the other paths"
  223630. .UNINDENT
  223631. .IP \(bu 2
  223632. \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)
  223633. .IP \(bu 2
  223634. \fBISSUE\fP \fI\%#38479\fP: (\fI\%tyeapple\fP) api_logfile setting takes no effect (refs: \fI\%#38585\fP)
  223635. .IP \(bu 2
  223636. \fBPR\fP \fI\%#38585\fP: (\fI\%rallytime\fP) Follow up to PR \fI\%#38527\fP
  223637. @ \fI2017\-01\-17 18:40:01 UTC\fP
  223638. .INDENT 2.0
  223639. .IP \(bu 2
  223640. \fBPR\fP \fI\%#38570\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38585\fP)
  223641. .IP \(bu 2
  223642. \fBPR\fP \fI\%#38560\fP: (\fI\%Ch3LL\fP) fix api logfile (refs: \fI\%#38585\fP)
  223643. .IP \(bu 2
  223644. \fBPR\fP \fI\%#38527\fP: (\fI\%rbjorklin\fP) salt\-api no longer forces the default timeout (refs: \fI\%#38585\fP)
  223645. .IP \(bu 2
  223646. bab3479a3c Merge pull request \fI\%#38585\fP from rallytime/follow\-up\-38527
  223647. .IP \(bu 2
  223648. 05587201b6 Pylint fix: add line at end of file
  223649. .IP \(bu 2
  223650. fa01367599 Keep a copy of the DEFAULT_API_OPTS and restore them after the test run
  223651. .IP \(bu 2
  223652. 2ad07634d9 Test clean up
  223653. .IP \(bu 2
  223654. fd2ee7db30 Add some simple unit tests for salt.config.api_config function
  223655. .IP \(bu 2
  223656. 3d2fefc83b Make sure the pidfile and log_file values are overriden by api opts
  223657. .IP \(bu 2
  223658. 1f6b540e46 Make sure the pidfile and log_file values are overriden by api opts
  223659. .IP \(bu 2
  223660. 04d307f917 salt\-api no longer forces the default timeout
  223661. .UNINDENT
  223662. .IP \(bu 2
  223663. \fBPR\fP \fI\%#38707\fP: (\fI\%alexbleotu\fP) Fixed prepending of root_dir override to the other paths
  223664. @ \fI2017\-01\-17 15:40:13 UTC\fP
  223665. .INDENT 2.0
  223666. .IP \(bu 2
  223667. 0fb6bb7b77 Merge pull request \fI\%#38707\fP from alexbleotu/root_dir_fix\-gh
  223668. .IP \(bu 2
  223669. 0bac8c8be3 Fixed prepending of root_dir override to the other paths
  223670. .UNINDENT
  223671. .IP \(bu 2
  223672. \fBPR\fP \fI\%#38774\fP: (\fI\%vutny\fP) DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  223673. @ \fI2017\-01\-17 15:21:00 UTC\fP
  223674. .INDENT 2.0
  223675. .IP \(bu 2
  223676. 96c9dc10f7 Merge pull request \fI\%#38774\fP from vutny/dev\-test\-docs
  223677. .IP \(bu 2
  223678. 4620dc4afa DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  223679. .UNINDENT
  223680. .IP \(bu 2
  223681. \fBPR\fP \fI\%#38749\fP: (\fI\%vutny\fP) pkg build modules throw better exception message if keyid wasn\(aqt found
  223682. @ \fI2017\-01\-17 02:13:08 UTC\fP
  223683. .INDENT 2.0
  223684. .IP \(bu 2
  223685. aedfbb7a43 Merge pull request \fI\%#38749\fP from vutny/pkg\-build\-better\-exception\-msg
  223686. .IP \(bu 2
  223687. 53f2be5b21 pkg build modules throw better exception message if keyid wasn\(aqt found
  223688. .UNINDENT
  223689. .IP \(bu 2
  223690. \fBPR\fP \fI\%#38743\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223691. @ \fI2017\-01\-17 01:46:01 UTC\fP
  223692. .INDENT 2.0
  223693. .IP \(bu 2
  223694. 8466b34e82 Merge pull request \fI\%#38743\fP from rallytime/merge\-2016.3
  223695. .IP \(bu 2
  223696. d24776f5e9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223697. .IP \(bu 2
  223698. 6869621ed1 Merge pull request \fI\%#38731\fP from rallytime/merge\-2015.8
  223699. .INDENT 2.0
  223700. .IP \(bu 2
  223701. 9eb191b6ac Pylint fix
  223702. .IP \(bu 2
  223703. b910499dbe Various follow up fixes
  223704. .IP \(bu 2
  223705. e8309a6bbf Add release notes for 2015.8.13
  223706. .IP \(bu 2
  223707. f881f366b7 Merge pull request \fI\%#20\fP from rallytime/2015.8.12_follow_up\-batch\-tests
  223708. .INDENT 2.0
  223709. .IP \(bu 2
  223710. 34282322c0 Clean up tests and docs for batch execution
  223711. .UNINDENT
  223712. .IP \(bu 2
  223713. c80b20b957 Merge pull request \fI\%#19\fP from whiteinge/batchclient
  223714. .INDENT 2.0
  223715. .IP \(bu 2
  223716. 3d8f3d18f6 Remove batch execution from NetapiClient and Saltnado
  223717. .UNINDENT
  223718. .IP \(bu 2
  223719. 97b0f64923 Lintfix
  223720. .IP \(bu 2
  223721. d1516664f7 Add explanation comment
  223722. .IP \(bu 2
  223723. 62f2c87080 Add docstring
  223724. .IP \(bu 2
  223725. 9b0a786aeb Explain what it is about and how to configure that
  223726. .IP \(bu 2
  223727. 5ea3579e10 Pick up a specified roster file from the configured locations
  223728. .IP \(bu 2
  223729. 3a8614c5df Disable custom rosters in API
  223730. .IP \(bu 2
  223731. c0e5a1171d Add roster disable flag
  223732. .UNINDENT
  223733. .IP \(bu 2
  223734. e9c59e9b8f Merge pull request \fI\%#38602\fP from terminalmage/fix\-boto\-test
  223735. .INDENT 2.0
  223736. .IP \(bu 2
  223737. 3424a108ac Fix failing unit.states.boto_vpc_test.BotoVpcRouteTableTestCase.test_present_with_routes
  223738. .UNINDENT
  223739. .UNINDENT
  223740. .IP \(bu 2
  223741. \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)
  223742. .IP \(bu 2
  223743. \fBPR\fP \fI\%#38723\fP: (\fI\%rallytime\fP) Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  223744. @ \fI2017\-01\-15 18:36:14 UTC\fP
  223745. .INDENT 2.0
  223746. .IP \(bu 2
  223747. \fBPR\fP \fI\%#29294\fP: (\fI\%skizunov\fP) ZeroMQ no longer required when transport is TCP (refs: \fI\%#38723\fP)
  223748. .IP \(bu 2
  223749. a642cdef79 Merge pull request \fI\%#38723\fP from rallytime/fix\-38674
  223750. .IP \(bu 2
  223751. 706c885f55 Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  223752. .UNINDENT
  223753. .IP \(bu 2
  223754. \fBPR\fP \fI\%#38669\fP: (\fI\%rallytime\fP) Update bootstrap script verstion to latest release
  223755. @ \fI2017\-01\-15 18:03:27 UTC\fP
  223756. .INDENT 2.0
  223757. .IP \(bu 2
  223758. fc545af10b Merge pull request \fI\%#38669\fP from rallytime/update\-bootstrap\-script
  223759. .IP \(bu 2
  223760. 78ba76e34c Update bootstrap script verstion to latest release
  223761. .UNINDENT
  223762. .IP \(bu 2
  223763. \fBPR\fP \fI\%#38693\fP: (\fI\%twangboy\fP) Update jinja2 to 2.9.4
  223764. @ \fI2017\-01\-15 14:40:46 UTC\fP
  223765. .INDENT 2.0
  223766. .IP \(bu 2
  223767. 50d417f267 Merge pull request \fI\%#38693\fP from twangboy/update_jinja
  223768. .IP \(bu 2
  223769. e0c7e5549b Update jinja2 to 2.9.4
  223770. .UNINDENT
  223771. .IP \(bu 2
  223772. \fBPR\fP \fI\%#38739\fP: (\fI\%vutny\fP) DOCS: correct examples of running test suite
  223773. @ \fI2017\-01\-15 14:35:47 UTC\fP
  223774. .INDENT 2.0
  223775. .IP \(bu 2
  223776. f4233bb18d Merge pull request \fI\%#38739\fP from vutny/fix\-runtests\-doc
  223777. .IP \(bu 2
  223778. b872bb63f6 DOCS: correct examples of running test suite
  223779. .IP \(bu 2
  223780. \fBPR\fP \fI\%#38735\fP: (\fI\%vutny\fP) DOCS: add links to File State Backups page where necessary
  223781. .IP \(bu 2
  223782. \fBPR\fP \fI\%#38720\fP: (\fI\%dereckson\fP) Proofread jinja_to_execution_module tutorial
  223783. .UNINDENT
  223784. .IP \(bu 2
  223785. \fBISSUE\fP \fI\%#36548\fP: (\fI\%abonillasuse\fP) openstack auth with nova driver (refs: \fI\%#38647\fP)
  223786. .IP \(bu 2
  223787. \fBPR\fP \fI\%#38647\fP: (\fI\%gtmanfred\fP) Allow novaclient to use keystoneauth1 sessions for authentication
  223788. @ \fI2017\-01\-10 17:48:26 UTC\fP
  223789. .INDENT 2.0
  223790. .IP \(bu 2
  223791. 7b850d472d Merge pull request \fI\%#38647\fP from gtmanfred/nova
  223792. .IP \(bu 2
  223793. 5be9b60851 add documentation about using keystoneauth for v3
  223794. .IP \(bu 2
  223795. 7b657ca4ae add the ability to use keystone v2 and v3
  223796. .IP \(bu 2
  223797. 5646ae1b34 add ability to use keystoneauth to authenitcate in nova driver
  223798. .UNINDENT
  223799. .IP \(bu 2
  223800. \fBISSUE\fP \fI\%#38648\fP: (\fI\%ericuldall\fP) No release file error from PPA on Ubuntu (refs: \fI\%#38650\fP)
  223801. .IP \(bu 2
  223802. \fBISSUE\fP \fI\%#38572\fP: (\fI\%COLABORATI\fP) ppa:saltstack/salt failure (refs: \fI\%#38650\fP)
  223803. .IP \(bu 2
  223804. \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)
  223805. .IP \(bu 2
  223806. \fBPR\fP \fI\%#38650\fP: (\fI\%rallytime\fP) Remove the installation instructions for out\-of\-date community ppa
  223807. @ \fI2017\-01\-10 17:47:45 UTC\fP
  223808. .INDENT 2.0
  223809. .IP \(bu 2
  223810. 383768d838 Merge pull request \fI\%#38650\fP from rallytime/remove\-ubuntu\-ppa\-docs
  223811. .IP \(bu 2
  223812. 30429b2e44 Remove the installation instructions for out\-of\-date community ppa
  223813. .UNINDENT
  223814. .IP \(bu 2
  223815. \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)
  223816. .IP \(bu 2
  223817. \fBPR\fP \fI\%#38657\fP: (\fI\%DmitryKuzmenko\fP) Publish the \(aqdata\(aq field content for Syndic evets
  223818. @ \fI2017\-01\-10 16:59:33 UTC\fP
  223819. .INDENT 2.0
  223820. .IP \(bu 2
  223821. 7d9f56e3b5 Merge pull request \fI\%#38657\fP from DSRCorporation/bugs/38087_syndic_event_format_fix
  223822. .IP \(bu 2
  223823. 594c33f396 Publish the \(aqdata\(aq field content for Syndic evets
  223824. .UNINDENT
  223825. .IP \(bu 2
  223826. \fBPR\fP \fI\%#38649\fP: (\fI\%Ch3LL\fP) fix unit.modules.file_test
  223827. @ \fI2017\-01\-10 16:44:45 UTC\fP
  223828. .INDENT 2.0
  223829. .IP \(bu 2
  223830. 83987511fd Merge pull request \fI\%#38649\fP from Ch3LL/test_apply_template
  223831. .IP \(bu 2
  223832. 47f8b68e0b fix unit.modules.file_test
  223833. .UNINDENT
  223834. .IP \(bu 2
  223835. \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)
  223836. .IP \(bu 2
  223837. \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)
  223838. .IP \(bu 2
  223839. \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)
  223840. .INDENT 2.0
  223841. .IP \(bu 2
  223842. \fBPR\fP \fI\%saltstack/salt#37358\fP: (\fI\%Firewire2002\fP) Fix/workaround for issue \fI\%#37355\fP (refs: \fI\%#38626\fP)
  223843. .UNINDENT
  223844. .IP \(bu 2
  223845. \fBPR\fP \fI\%#38626\fP: (\fI\%cachedout\fP) Revert "Fix/workaround for issue \fI\%#37355\fP"
  223846. @ \fI2017\-01\-06 21:28:09 UTC\fP
  223847. .INDENT 2.0
  223848. .IP \(bu 2
  223849. 74ddc71be3 Merge pull request \fI\%#38626\fP from saltstack/revert\-37358\-2016.3.3_issue37355
  223850. .IP \(bu 2
  223851. e912ac99c2 Revert "Fix/workaround for issue \fI\%#37355\fP"
  223852. .UNINDENT
  223853. .IP \(bu 2
  223854. \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)
  223855. .IP \(bu 2
  223856. \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)
  223857. .IP \(bu 2
  223858. \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)
  223859. .IP \(bu 2
  223860. \fBPR\fP \fI\%#37358\fP: (\fI\%Firewire2002\fP) Fix/workaround for issue \fI\%#37355\fP
  223861. @ \fI2017\-01\-06 18:58:47 UTC\fP
  223862. .INDENT 2.0
  223863. .IP \(bu 2
  223864. 5e58b32934 Merge pull request \fI\%#37358\fP from Firewire2002/2016.3.3_issue37355
  223865. .IP \(bu 2
  223866. 910da18bfd fixed typo
  223867. .IP \(bu 2
  223868. 4fbc5ddd06 fixed wrong renamed variable and spaces
  223869. .IP \(bu 2
  223870. 92366e646c issue \fI\%#37355\fP
  223871. .IP \(bu 2
  223872. 7dc87ab7b8 issue \fI\%#37355\fP
  223873. .IP \(bu 2
  223874. 2878180405 issue \fI\%#37355\fP
  223875. .UNINDENT
  223876. .IP \(bu 2
  223877. \fBPR\fP \fI\%#35390\fP: (\fI\%alexandr\-orlov\fP) Returns back missed proper grains dictionary for file module
  223878. @ \fI2017\-01\-06 18:02:13 UTC\fP
  223879. .INDENT 2.0
  223880. .IP \(bu 2
  223881. 6c2fe615aa Merge pull request \fI\%#35390\fP from alexandr\-orlov/2016.3
  223882. .IP \(bu 2
  223883. cd5ae17e8d fxd missed proper grains dictionary
  223884. .UNINDENT
  223885. .IP \(bu 2
  223886. \fBISSUE\fP \fI\%#38558\fP: (\fI\%multani\fP) pillar.get("...", default=var, merge=true) updates default value (refs: \fI\%#38579\fP)
  223887. .IP \(bu 2
  223888. \fBPR\fP \fI\%#38618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38579\fP to 2016.3
  223889. @ \fI2017\-01\-06 17:37:56 UTC\fP
  223890. .INDENT 2.0
  223891. .IP \(bu 2
  223892. \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)
  223893. .IP \(bu 2
  223894. 2579cfa42d Merge pull request \fI\%#38618\fP from rallytime/bp\-38579
  223895. .IP \(bu 2
  223896. 2052ecee2c Add copy import
  223897. .IP \(bu 2
  223898. 2c8845aaa0 add test for pillar.get() + default value
  223899. .IP \(bu 2
  223900. c2f98d2f04 ticket 38558: add unit test, deepcopy() only if necessary
  223901. .IP \(bu 2
  223902. 30ae0a1958 added deepcopy of default if merge=True
  223903. .UNINDENT
  223904. .IP \(bu 2
  223905. \fBPR\fP \fI\%#38601\fP: (\fI\%terminalmage\fP) pillar.get: Raise exception when merge=True and default is not a dict
  223906. @ \fI2017\-01\-05 23:15:51 UTC\fP
  223907. .INDENT 2.0
  223908. .IP \(bu 2
  223909. da676cebd6 Merge pull request \fI\%#38601\fP from terminalmage/pillar\-get
  223910. .IP \(bu 2
  223911. 8613d7254d pillar.get: Raise exception when merge=True and default is not a dict
  223912. .UNINDENT
  223913. .IP \(bu 2
  223914. \fBPR\fP \fI\%#38600\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (2016.3 branch)
  223915. @ \fI2017\-01\-05 20:57:09 UTC\fP
  223916. .INDENT 2.0
  223917. .IP \(bu 2
  223918. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP)
  223919. .IP \(bu 2
  223920. 224fc7712a Merge pull request \fI\%#38600\fP from terminalmage/issue38459\-2016.3
  223921. .IP \(bu 2
  223922. 8a45b13e76 Avoid errors when sudo_user is set
  223923. .UNINDENT
  223924. .IP \(bu 2
  223925. \fBPR\fP \fI\%#38589\fP: (\fI\%tobithiel\fP) State Gem: fix incorrect warning about missing rvm/rbenv
  223926. @ \fI2017\-01\-05 20:12:15 UTC\fP
  223927. .INDENT 2.0
  223928. .IP \(bu 2
  223929. a376970f88 Merge pull request \fI\%#38589\fP from tobithiel/fix_rvm_rbenv_warning
  223930. .IP \(bu 2
  223931. 9ec470b4a5 State Gem: fix incorrect warning about missing rvm/rbenv
  223932. .UNINDENT
  223933. .IP \(bu 2
  223934. \fBPR\fP \fI\%#38567\fP: (\fI\%pass\-by\-value\fP) Create queue if one doesn\(aqt exist
  223935. @ \fI2017\-01\-05 18:46:11 UTC\fP
  223936. .INDENT 2.0
  223937. .IP \(bu 2
  223938. 02e6a78254 Merge pull request \fI\%#38567\fP from pass\-by\-value/pgjsonb_queue_changes_2016.3
  223939. .IP \(bu 2
  223940. 67879ebe65 Create queue if one doesn\(aqt exist
  223941. .UNINDENT
  223942. .IP \(bu 2
  223943. \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)
  223944. .IP \(bu 2
  223945. \fBPR\fP \fI\%#38587\fP: (\fI\%rallytime\fP) Change daemontools __virtualname__ from service to daemontools
  223946. @ \fI2017\-01\-05 18:06:01 UTC\fP
  223947. .INDENT 2.0
  223948. .IP \(bu 2
  223949. 0889cbdb31 Merge pull request \fI\%#38587\fP from rallytime/fix\-37498
  223950. .IP \(bu 2
  223951. 2a5880966f Change daemontools __virtualname__ from service to daemontools
  223952. .UNINDENT
  223953. .IP \(bu 2
  223954. \fBPR\fP \fI\%#38562\fP: (\fI\%rallytime\fP) Update arch installation docs with correct package name
  223955. @ \fI2017\-01\-04 20:04:28 UTC\fP
  223956. .INDENT 2.0
  223957. .IP \(bu 2
  223958. 7b74436d13 Merge pull request \fI\%#38562\fP from rallytime/arch\-install\-docs
  223959. .IP \(bu 2
  223960. 8b1897ace9 Update arch installation docs with correct package name
  223961. .UNINDENT
  223962. .IP \(bu 2
  223963. \fBPR\fP \fI\%#38560\fP: (\fI\%Ch3LL\fP) fix api logfile (refs: \fI\%#38585\fP)
  223964. @ \fI2017\-01\-04 19:03:17 UTC\fP
  223965. .INDENT 2.0
  223966. .IP \(bu 2
  223967. 01860702cb Merge pull request \fI\%#38560\fP from Ch3LL/fix_api_log
  223968. .IP \(bu 2
  223969. 1b45e9670b fix api logfile
  223970. .UNINDENT
  223971. .IP \(bu 2
  223972. \fBPR\fP \fI\%#38531\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33601\fP to 2016.3
  223973. @ \fI2017\-01\-04 16:56:53 UTC\fP
  223974. .INDENT 2.0
  223975. .IP \(bu 2
  223976. \fBPR\fP \fI\%#33601\fP: (\fI\%mchugh19\fP) Fix slack engine to run on python2.6 (refs: \fI\%#38531\fP)
  223977. .IP \(bu 2
  223978. 0056620a53 Merge pull request \fI\%#38531\fP from rallytime/bp\-33601
  223979. .IP \(bu 2
  223980. c36cb39825 remove the unnecessary double trigger
  223981. .IP \(bu 2
  223982. 38414493bf fix spacing lint error
  223983. .IP \(bu 2
  223984. 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
  223985. .IP \(bu 2
  223986. c2f23bc45e Fix slack engine to run on python2.6
  223987. .UNINDENT
  223988. .IP \(bu 2
  223989. \fBISSUE\fP \fI\%#38187\fP: (\fI\%curiositycasualty\fP) username/password saved as cleartext when using URIs with user:pass@ format (refs: \fI\%#38541\fP)
  223990. .IP \(bu 2
  223991. \fBPR\fP \fI\%#38541\fP: (\fI\%techhat\fP) Strip user:pass from cached URLs
  223992. @ \fI2017\-01\-04 15:39:57 UTC\fP
  223993. .INDENT 2.0
  223994. .IP \(bu 2
  223995. 50242c7f17 Merge pull request \fI\%#38541\fP from techhat/issue38187
  223996. .IP \(bu 2
  223997. eae3a435dd Strip user:pass from cached URLs
  223998. .UNINDENT
  223999. .IP \(bu 2
  224000. \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)
  224001. .IP \(bu 2
  224002. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode
  224003. @ \fI2017\-01\-04 15:31:16 UTC\fP
  224004. .INDENT 2.0
  224005. .IP \(bu 2
  224006. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  224007. .IP \(bu 2
  224008. 325dc56e59 Merge pull request \fI\%#38554\fP from multani/fix/30454
  224009. .IP \(bu 2
  224010. 2e7f743371 yaml: support unicode serialization/deserialization
  224011. .IP \(bu 2
  224012. df76113c5c jinja: test the "yaml" filter with ordered dicts
  224013. .IP \(bu 2
  224014. f7712d417f Revert "Add yaml_safe filter"
  224015. .IP \(bu 2
  224016. \fBPR\fP \fI\%#38536\fP: (\fI\%UtahDave\fP) add note about pyVmomi locale workaround
  224017. .UNINDENT
  224018. .IP \(bu 2
  224019. \fBISSUE\fP \fI\%#38353\fP: (\fI\%Ch3LL\fP) salt\-cloud gce specifying (refs: \fI\%#38542\fP)
  224020. .INDENT 2.0
  224021. .IP \(bu 2
  224022. \fBPR\fP \fI\%#38542\fP: (\fI\%Ch3LL\fP) fix gce image bug
  224023. .UNINDENT
  224024. .IP \(bu 2
  224025. \fBISSUE\fP \fI\%#38449\fP: (\fI\%swalladge\fP) Parsing issues in \fIlist_tab\fP (salt/modules/cron.py) (refs: \fI\%#38487\fP)
  224026. .IP \(bu 2
  224027. \fBPR\fP \fI\%#38487\fP: (\fI\%gtmanfred\fP) Fix crontab issues with spaces
  224028. @ \fI2017\-01\-01 20:33:29 UTC\fP
  224029. .INDENT 2.0
  224030. .IP \(bu 2
  224031. ec60f9c721 Merge pull request \fI\%#38487\fP from gtmanfred/2016.3
  224032. .IP \(bu 2
  224033. 048b9f6b9d add test
  224034. .IP \(bu 2
  224035. c480c11528 allow spaces in cron env
  224036. .IP \(bu 2
  224037. c529ec8c34 allow crons to have multiple spaces
  224038. .UNINDENT
  224039. .IP \(bu 2
  224040. \fBISSUE\fP \fI\%#37684\fP: (\fI\%thusoy\fP) State execution duration is timezone\-dependent (refs: \fI\%#38491\fP)
  224041. .IP \(bu 2
  224042. \fBPR\fP \fI\%#38491\fP: (\fI\%gtmanfred\fP) Use UTC for timing in case timezone changes
  224043. @ \fI2017\-01\-01 20:30:57 UTC\fP
  224044. .INDENT 2.0
  224045. .IP \(bu 2
  224046. c5ba11b5e0 Merge pull request \fI\%#38491\fP from gtmanfred/timing
  224047. .IP \(bu 2
  224048. 79368c7528 Use UTC for timing in case timezone changes
  224049. .UNINDENT
  224050. .IP \(bu 2
  224051. \fBISSUE\fP \fI\%#38472\fP: (\fI\%jinm\fP) file.managed Unable to manage file: \(aqhash_type\(aq (2016.3.4) (refs: \fI\%#38503\fP)
  224052. .IP \(bu 2
  224053. \fBPR\fP \fI\%#38503\fP: (\fI\%jinm\fP) Hash type fallback for file management
  224054. @ \fI2017\-01\-01 17:36:51 UTC\fP
  224055. .INDENT 2.0
  224056. .IP \(bu 2
  224057. 86f0aa0bb3 Merge pull request \fI\%#38503\fP from jinm/issue_38472_jinm
  224058. .IP \(bu 2
  224059. 0cd9df299f Hash type fallback for file management
  224060. .UNINDENT
  224061. .IP \(bu 2
  224062. \fBPR\fP \fI\%#38457\fP: (\fI\%bshelton229\fP) Stops git.latest checking for local changes in a bare repo
  224063. @ \fI2016\-12\-30 14:28:47 UTC\fP
  224064. .INDENT 2.0
  224065. .IP \(bu 2
  224066. ed2ba4bd1b Merge pull request \fI\%#38457\fP from bshelton229/git\-latest\-head\-bug
  224067. .IP \(bu 2
  224068. 558e7a771a Stops git.latest checking for local changes in a bare repo
  224069. .UNINDENT
  224070. .IP \(bu 2
  224071. \fBPR\fP \fI\%#38385\fP: (\fI\%dragon788\fP) Use unambigous long names with double dashes
  224072. @ \fI2016\-12\-29 17:10:48 UTC\fP
  224073. .INDENT 2.0
  224074. .IP \(bu 2
  224075. 36e21b22cb Merge pull request \fI\%#38385\fP from dragon788/2016.3\-double\-dash
  224076. .IP \(bu 2
  224077. 86c4b56f47 Newline for lint compat
  224078. .IP \(bu 2
  224079. 9d9b686057 Address review comments, consistency of quotes
  224080. .IP \(bu 2
  224081. df9bd5e7f9 Use unambigous long names with double dashes
  224082. .UNINDENT
  224083. .IP \(bu 2
  224084. \fBISSUE\fP \fI\%#38209\fP: (\fI\%limited\fP) Accepting a minion causes tornado to exit (refs: \fI\%#38474\fP)
  224085. .IP \(bu 2
  224086. \fBPR\fP \fI\%#38474\fP: (\fI\%cachedout\fP) Allow an existing ioloop to be passed to salt\-key
  224087. @ \fI2016\-12\-29 16:28:51 UTC\fP
  224088. .INDENT 2.0
  224089. .IP \(bu 2
  224090. 59f2560d88 Merge pull request \fI\%#38474\fP from cachedout/key_loop
  224091. .IP \(bu 2
  224092. de504538e1 Allow an existing ioloop to be passed to salt\-key
  224093. .UNINDENT
  224094. .IP \(bu 2
  224095. \fBISSUE\fP \fI\%#38438\fP: (\fI\%jf\fP) file.line with mode=delete breaks on empty file (refs: \fI\%#38467\fP)
  224096. .IP \(bu 2
  224097. \fBPR\fP \fI\%#38467\fP: (\fI\%gtmanfred\fP) file.line fail with mode=delete
  224098. @ \fI2016\-12\-28 20:00:33 UTC\fP
  224099. .INDENT 2.0
  224100. .IP \(bu 2
  224101. 3d0c752acd Merge pull request \fI\%#38467\fP from gtmanfred/2016.3
  224102. .IP \(bu 2
  224103. 7b7c6b3878 file.line fail with mode=delete
  224104. .UNINDENT
  224105. .IP \(bu 2
  224106. \fBPR\fP \fI\%#38434\fP: (\fI\%slinn0\fP) Make sysctl.persist fail when failing to set a value into the running kernel
  224107. @ \fI2016\-12\-27 15:37:53 UTC\fP
  224108. .INDENT 2.0
  224109. .IP \(bu 2
  224110. 940025d5c4 Merge pull request \fI\%#38434\fP from slinn0/issue_38433_fixes
  224111. .IP \(bu 2
  224112. 22af87a3fc Fixes for \fI\%https://github.com/saltstack/salt/issues/38433\fP
  224113. .IP \(bu 2
  224114. \fBPR\fP \fI\%#38421\fP: (\fI\%rallytime\fP) Update deprecation notices to the correct version
  224115. .IP \(bu 2
  224116. \fBPR\fP \fI\%#38420\fP: (\fI\%rallytime\fP) Removed various deprecation notices from salt/modules/* files (refs: \fI\%#38421\fP)
  224117. .UNINDENT
  224118. .IP \(bu 2
  224119. \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)
  224120. .INDENT 2.0
  224121. .IP \(bu 2
  224122. \fBPR\fP \fI\%#38415\fP: (\fI\%terminalmage\fP) file.managed: Fix failure when filename contains unicode chars
  224123. .UNINDENT
  224124. .IP \(bu 2
  224125. \fBPR\fP \fI\%#38419\fP: (\fI\%Ch3LL\fP) fix scsci docs example
  224126. @ \fI2016\-12\-22 18:57:51 UTC\fP
  224127. .INDENT 2.0
  224128. .IP \(bu 2
  224129. 2cdb59d055 Merge pull request \fI\%#38419\fP from Ch3LL/fix_doc_scsi
  224130. .IP \(bu 2
  224131. 234043b8bb fix scsci docs example
  224132. .IP \(bu 2
  224133. \fBPR\fP \fI\%#38407\fP: (\fI\%terminalmage\fP) Improve pillar documentation
  224134. .UNINDENT
  224135. .IP \(bu 2
  224136. \fBISSUE\fP \fI\%#38372\fP: (\fI\%fanirama\fP) Issue with cron.file. Source: salt://path/to/crontab_file not found (refs: \fI\%#38398\fP)
  224137. .IP \(bu 2
  224138. \fBPR\fP \fI\%#38398\fP: (\fI\%terminalmage\fP) Fix call to file.get_managed in cron.file state
  224139. @ \fI2016\-12\-22 16:46:14 UTC\fP
  224140. .INDENT 2.0
  224141. .IP \(bu 2
  224142. 423b1fddff Merge pull request \fI\%#38398\fP from terminalmage/issue38372
  224143. .IP \(bu 2
  224144. c80dbaa914 Fix call to file.get_managed in cron.file state
  224145. .IP \(bu 2
  224146. \fBPR\fP \fI\%#38382\fP: (\fI\%heewa\fP) Fix http.query when result has no text
  224147. .UNINDENT
  224148. .IP \(bu 2
  224149. \fBPR\fP \fI\%#38390\fP: (\fI\%meaksh\fP) Add "try\-restart" to fix autorestarting on SUSE systems
  224150. @ \fI2016\-12\-21 16:06:24 UTC\fP
  224151. .INDENT 2.0
  224152. .IP \(bu 2
  224153. b74b5c7d38 Merge pull request \fI\%#38390\fP from meaksh/2016.3\-fix\-try\-restart\-for\-autorestarting\-on\-SUSE\-systems
  224154. .IP \(bu 2
  224155. de6ec05ec0 add try\-restart to fix autorestarting on SUSE systems
  224156. .UNINDENT
  224157. .IP \(bu 2
  224158. \fBPR\fP \fI\%#38221\fP: (\fI\%UtahDave\fP) Fix default returner
  224159. @ \fI2016\-12\-20 20:34:36 UTC\fP
  224160. .INDENT 2.0
  224161. .IP \(bu 2
  224162. 2c3a39760a Merge pull request \fI\%#38221\fP from UtahDave/fix_default_returner
  224163. .IP \(bu 2
  224164. 385640765b remove a blank line to satisfy linter
  224165. .IP \(bu 2
  224166. 9c248aa14c validate return opt, remove default.
  224167. .IP \(bu 2
  224168. 8bb37f9fe7 specify allowed types and default for "returner"
  224169. .IP \(bu 2
  224170. 11863a4bfe add examples of default minion returners
  224171. .IP \(bu 2
  224172. e7c6012655 add support for default returners using \fIreturn\fP
  224173. .UNINDENT
  224174. .IP \(bu 2
  224175. \fBPR\fP \fI\%#38288\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  224176. @ \fI2016\-12\-18 13:07:11 UTC\fP
  224177. .INDENT 2.0
  224178. .IP \(bu 2
  224179. 09d9cff992 Merge pull request \fI\%#38288\fP from terminalmage/archive\-extracted\-local\-source\-2016.3
  224180. .IP \(bu 2
  224181. 845e3d0e75 Update tests to reflect change in cache behavior
  224182. .IP \(bu 2
  224183. 5a08d7c70a archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  224184. .UNINDENT
  224185. .IP \(bu 2
  224186. \fBPR\fP \fI\%#38312\fP: (\fI\%cro\fP) Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy
  224187. @ \fI2016\-12\-18 12:39:01 UTC\fP
  224188. .INDENT 2.0
  224189. .IP \(bu 2
  224190. bf37667f8a Merge pull request \fI\%#38312\fP from cro/proxy_config_in_cfg
  224191. .IP \(bu 2
  224192. 2006c4000e Typo
  224193. .IP \(bu 2
  224194. 689d95b10f Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy.
  224195. .UNINDENT
  224196. .IP \(bu 2
  224197. \fBISSUE\fP \fI\%#12788\fP: (\fI\%whiteinge\fP) Comb through docs to replace :doc: roles with :ref: (refs: \fI\%#38320\fP)
  224198. .IP \(bu 2
  224199. \fBPR\fP \fI\%#38320\fP: (\fI\%rallytime\fP) Cleanup doc internal markup references
  224200. @ \fI2016\-12\-18 12:31:28 UTC\fP
  224201. .INDENT 2.0
  224202. .IP \(bu 2
  224203. c83db5a785 Merge pull request \fI\%#38320\fP from rallytime/cleanup\-doc\-refs
  224204. .IP \(bu 2
  224205. 62978cb7a0 Don\(aqt check the doc/conf.py file for doc markup refs
  224206. .IP \(bu 2
  224207. 770e732d76 Add a unit test to search for new doc markup refs
  224208. .IP \(bu 2
  224209. 5c42a361a0 Remove ":doc:" references from all doc/topics/installation/* files
  224210. .IP \(bu 2
  224211. 23bce1c929 Remove ":doc:" references from all doc/topics/releases/* files
  224212. .IP \(bu 2
  224213. 4aafa41d22 Remove ":doc:" references from a bunch of doc/* files
  224214. .IP \(bu 2
  224215. 02bfe7912c Remove more ":doc:" references from doc/* files
  224216. .IP \(bu 2
  224217. 6e32267d0c Remove ":doc:" references in salt/* files
  224218. .IP \(bu 2
  224219. \fBPR\fP \fI\%#38281\fP: (\fI\%mikejford\fP) Add nick to args for create_multi
  224220. .UNINDENT
  224221. .IP \(bu 2
  224222. \fBISSUE\fP \fI\%#38290\fP: (\fI\%dragon788\fP) Need to use machine automation friendly output (refs: \fI\%#38313\fP)
  224223. .IP \(bu 2
  224224. \fBPR\fP \fI\%#38313\fP: (\fI\%dragon788\fP) 2016.3 chocolatey fix
  224225. @ \fI2016\-12\-16 17:20:39 UTC\fP
  224226. .INDENT 2.0
  224227. .IP \(bu 2
  224228. 235682b1e6 Merge pull request \fI\%#38313\fP from dragon788/2016.3\-chocolatey\-fix
  224229. .IP \(bu 2
  224230. 1f5fc17551 Use machine readable output for list
  224231. .IP \(bu 2
  224232. cdbd2fbe3c Added limit\-output to eliminate false packages
  224233. .UNINDENT
  224234. .IP \(bu 2
  224235. \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)
  224236. .IP \(bu 2
  224237. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#38279\fP)
  224238. .IP \(bu 2
  224239. \fBPR\fP \fI\%#38279\fP: (\fI\%rallytime\fP) Add docs for syndic_wait setting
  224240. @ \fI2016\-12\-15 18:30:31 UTC\fP
  224241. .INDENT 2.0
  224242. .IP \(bu 2
  224243. 9e78ddc80e Merge pull request \fI\%#38279\fP from rallytime/fix\-38174
  224244. .IP \(bu 2
  224245. 4a62d01577 Add docs for syndic_wait setting
  224246. .UNINDENT
  224247. .IP \(bu 2
  224248. \fBPR\fP \fI\%#38248\fP: (\fI\%meaksh\fP) Successfully exit of salt\-api child processes when SIGTERM is received
  224249. @ \fI2016\-12\-15 09:16:27 UTC\fP
  224250. .INDENT 2.0
  224251. .IP \(bu 2
  224252. fc9e1dff35 Merge pull request \fI\%#38248\fP from meaksh/salt\-api\-successfully\-close\-child\-processes
  224253. .IP \(bu 2
  224254. ee6eae9855 Successfully exit of salt\-api child processes when SIGTERM.
  224255. .UNINDENT
  224256. .IP \(bu 2
  224257. \fBPR\fP \fI\%#38254\fP: (\fI\%terminalmage\fP) Also check if pillarenv is in opts
  224258. @ \fI2016\-12\-15 09:10:24 UTC\fP
  224259. .INDENT 2.0
  224260. .IP \(bu 2
  224261. 3c718ed35e Merge pull request \fI\%#38254\fP from terminalmage/check\-pillarenv
  224262. .IP \(bu 2
  224263. fa9ad311c6 Also check if pillarenv is in opts
  224264. .IP \(bu 2
  224265. \fBPR\fP \fI\%#38256\fP: (\fI\%rallytime\fP) [2016.3] Bump latest release version to 2016.11.1
  224266. .UNINDENT
  224267. .IP \(bu 2
  224268. \fBPR\fP \fI\%#38198\fP: (\fI\%vutny\fP) Add missing requirements for running unit tests: libcloud and boto3
  224269. @ \fI2016\-12\-13 14:12:20 UTC\fP
  224270. .INDENT 2.0
  224271. .IP \(bu 2
  224272. 004e46afe7 Merge pull request \fI\%#38198\fP from vutny/unit\-tests\-require\-libcloud\-boto3
  224273. .IP \(bu 2
  224274. a6098bac1a Remove note about SaltTesting installation, now it is in the requirements
  224275. .IP \(bu 2
  224276. 004bff113e Add missing requirements for running unit tests: libcloud and boto3
  224277. .UNINDENT
  224278. .IP \(bu 2
  224279. \fBPR\fP \fI\%#38213\fP: (\fI\%rallytime\fP) Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  224280. @ \fI2016\-12\-13 12:05:01 UTC\fP
  224281. .INDENT 2.0
  224282. .IP \(bu 2
  224283. 9d497bc74c Merge pull request \fI\%#38213\fP from rallytime/skip\-tls\-test
  224284. .IP \(bu 2
  224285. bdb807fc7c Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  224286. .UNINDENT
  224287. .IP \(bu 2
  224288. \fBPR\fP \fI\%#38224\fP: (\fI\%whiteinge\fP) Allow CORS OPTIONS requests to be unauthenticated
  224289. @ \fI2016\-12\-13 12:02:30 UTC\fP
  224290. .INDENT 2.0
  224291. .IP \(bu 2
  224292. 203109dd17 Merge pull request \fI\%#38224\fP from whiteinge/cors\-options\-unauthed
  224293. .IP \(bu 2
  224294. de4d3227ab Allow CORS OPTIONS requests to be unauthenticated
  224295. .UNINDENT
  224296. .IP \(bu 2
  224297. \fBPR\fP \fI\%#38223\fP: (\fI\%whiteinge\fP) Add root_dir to salt\-api file paths
  224298. @ \fI2016\-12\-13 07:44:19 UTC\fP
  224299. .INDENT 2.0
  224300. .IP \(bu 2
  224301. \fBPR\fP \fI\%#37272\fP: (\fI\%vutny\fP) Get default logging level and log file from default opts dict (refs: \fI\%#38223\fP)
  224302. .IP \(bu 2
  224303. 721a5feccd Merge pull request \fI\%#38223\fP from whiteinge/salt\-api\-root_dirs
  224304. .IP \(bu 2
  224305. bfbf390c0e Add root_dir to salt\-api file paths
  224306. .UNINDENT
  224307. .IP \(bu 2
  224308. \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)
  224309. .IP \(bu 2
  224310. \fBPR\fP \fI\%#38191\fP: (\fI\%terminalmage\fP) Clarify the fact that git_pillar.update does not fast\-forward
  224311. @ \fI2016\-12\-12 09:45:48 UTC\fP
  224312. .INDENT 2.0
  224313. .IP \(bu 2
  224314. 70f7d22ad6 Merge pull request \fI\%#38191\fP from terminalmage/issue38162
  224315. .IP \(bu 2
  224316. 1ae543a98a Clarify the fact that git_pillar.update does not fast\-forward
  224317. .UNINDENT
  224318. .IP \(bu 2
  224319. \fBPR\fP \fI\%#38194\fP: (\fI\%vutny\fP) Document the requirements for running ZeroMQ\-based integration tests
  224320. @ \fI2016\-12\-12 09:42:11 UTC\fP
  224321. .INDENT 2.0
  224322. .IP \(bu 2
  224323. 28171cbfc5 Merge pull request \fI\%#38194\fP from vutny/integration\-test\-requirements\-doc
  224324. .IP \(bu 2
  224325. e9f419ff64 Document the requirements for running ZeroMQ\-based integration tests
  224326. .UNINDENT
  224327. .IP \(bu 2
  224328. \fBPR\fP \fI\%#38185\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38181\fP to 2016.3
  224329. @ \fI2016\-12\-09 22:27:44 UTC\fP
  224330. .INDENT 2.0
  224331. .IP \(bu 2
  224332. \fBPR\fP \fI\%#38181\fP: (\fI\%rallytime\fP) Reset socket default timeout to None (fixes daemons_tests failures) (refs: \fI\%#38185\fP)
  224333. .IP \(bu 2
  224334. a4ef037ab1 Merge pull request \fI\%#38185\fP from rallytime/bp\-38181
  224335. .IP \(bu 2
  224336. 609f814454 Reset socket default timeout to None (fixes daemons_tests failures)
  224337. .UNINDENT
  224338. .IP \(bu 2
  224339. \fBPR\fP \fI\%#38163\fP: (\fI\%Ch3LL\fP) enabled ec2 cloud tests
  224340. @ \fI2016\-12\-09 18:01:57 UTC\fP
  224341. .INDENT 2.0
  224342. .IP \(bu 2
  224343. 65b2ad7b14 Merge pull request \fI\%#38163\fP from Ch3LL/enabled_ec2_cloud
  224344. .IP \(bu 2
  224345. be74c45463 enabled ec2 cloud tests
  224346. .UNINDENT
  224347. .IP \(bu 2
  224348. \fBPR\fP \fI\%#38177\fP: (\fI\%vutny\fP) Correct \fIcp.get_file_str\fP docstring and add integration tests
  224349. @ \fI2016\-12\-09 16:55:35 UTC\fP
  224350. .INDENT 2.0
  224351. .IP \(bu 2
  224352. b63f74e034 Merge pull request \fI\%#38177\fP from vutny/fix\-cp\-get\-file\-str
  224353. .IP \(bu 2
  224354. a449980672 Correct \fIcp.get_file_str\fP docstring and add integration tests
  224355. .UNINDENT
  224356. .IP \(bu 2
  224357. \fBPR\fP \fI\%#38153\fP: (\fI\%vutny\fP) Master config includes may contain errors and be safely skipped
  224358. @ \fI2016\-12\-08 17:43:34 UTC\fP
  224359. .INDENT 2.0
  224360. .IP \(bu 2
  224361. 7596313be0 Merge pull request \fI\%#38153\fP from vutny/master\-includes\-error\-tolerance
  224362. .IP \(bu 2
  224363. cd0154ee93 Master config includes may contain errors and be safely skipped
  224364. .IP \(bu 2
  224365. \fBPR\fP \fI\%#38134\fP: (\fI\%rallytime\fP) Skip daemon unit tests when running on Python 2.6
  224366. .UNINDENT
  224367. .IP \(bu 2
  224368. \fBISSUE\fP \fI\%#38091\fP: (\fI\%tjyang\fP) [WARNING ] salt.loaded.int.module.zenoss.__virtual__() is wrongly returning \fINone\fP\&. (refs: \fI\%#38102\fP)
  224369. .IP \(bu 2
  224370. \fBPR\fP \fI\%#38102\fP: (\fI\%rallytime\fP) Add False + msg tuple return if requests is missing for zenoss module
  224371. @ \fI2016\-12\-07 13:24:37 UTC\fP
  224372. .INDENT 2.0
  224373. .IP \(bu 2
  224374. d3d98fd4eb Merge pull request \fI\%#38102\fP from rallytime/fix\-38091
  224375. .IP \(bu 2
  224376. 4f79d5a0d1 Add False + msg tuple return if requests is missing for zenoss module
  224377. .UNINDENT
  224378. .IP \(bu 2
  224379. \fBISSUE\fP \fI\%#36707\fP: (\fI\%do3meli\fP) slow FreeBSD sysctl module with test=true (refs: \fI\%#36794\fP)
  224380. .IP \(bu 2
  224381. \fBPR\fP \fI\%#38104\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36794\fP to 2016.3
  224382. @ \fI2016\-12\-07 13:23:48 UTC\fP
  224383. .INDENT 2.0
  224384. .IP \(bu 2
  224385. \fBPR\fP \fI\%#36794\fP: (\fI\%do3meli\fP) FreeBSD sysctl module now handels config_file parameter in show method (refs: \fI\%#38104\fP)
  224386. .IP \(bu 2
  224387. 8c8cbc2734 Merge pull request \fI\%#38104\fP from rallytime/bp\-36794
  224388. .IP \(bu 2
  224389. c906c8a0d5 Pylint fixes
  224390. .IP \(bu 2
  224391. da3ebf83e6 FreeBSD sysctl module now handels config_file parameter in show method
  224392. .UNINDENT
  224393. .IP \(bu 2
  224394. \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)
  224395. .IP \(bu 2
  224396. \fBPR\fP \fI\%#38083\fP: (\fI\%twangboy\fP) Only delete .sls files from winrepo\-ng [DO NOT MERGE FORWARD]
  224397. @ \fI2016\-12\-06 14:13:35 UTC\fP
  224398. .INDENT 2.0
  224399. .IP \(bu 2
  224400. fbc87769b9 Merge pull request \fI\%#38083\fP from twangboy/fix_refresh_db
  224401. .IP \(bu 2
  224402. 978af6d83c Remove only .sls files from the cached winrepo\-ng
  224403. .UNINDENT
  224404. .IP \(bu 2
  224405. \fBPR\fP \fI\%#38059\fP: (\fI\%rallytime\fP) Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  224406. @ \fI2016\-12\-04 04:18:41 UTC\fP
  224407. .INDENT 2.0
  224408. .IP \(bu 2
  224409. \fBPR\fP \fI\%#38057\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38059\fP)
  224410. .IP \(bu 2
  224411. \fBPR\fP \fI\%#38034\fP: (\fI\%cachedout\fP) Modify daemons test to use multiprocessing (refs: \fI\%#38059\fP)
  224412. .IP \(bu 2
  224413. 9dcfdeef6b Merge pull request \fI\%#38059\fP from rallytime/daemons\-test\-fix
  224414. .IP \(bu 2
  224415. eb372b27d8 Add missing "not" statement: The last syndic test should assertFalse()
  224416. .IP \(bu 2
  224417. 4e10f8e018 Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  224418. .UNINDENT
  224419. .IP \(bu 2
  224420. \fBISSUE\fP \fI\%#37939\fP: (\fI\%Talkless\fP) file.comment always report changes in test=True mode (refs: \fI\%#38039\fP)
  224421. .IP \(bu 2
  224422. \fBPR\fP \fI\%#38039\fP: (\fI\%rallytime\fP) Check to see if a line is already commented before moving on
  224423. @ \fI2016\-12\-02 20:08:35 UTC\fP
  224424. .INDENT 2.0
  224425. .IP \(bu 2
  224426. 9cd42b9b3f Merge pull request \fI\%#38039\fP from rallytime/fix\-37939
  224427. .IP \(bu 2
  224428. 1da7aacfbe Update unit tests to account for additional file.search call
  224429. .IP \(bu 2
  224430. 8a685b1820 Check to see if a line is already commented before moving on
  224431. .IP \(bu 2
  224432. f2c045520d Write an integration test demonstrating the issue
  224433. .UNINDENT
  224434. .IP \(bu 2
  224435. \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)
  224436. .IP \(bu 2
  224437. \fBPR\fP \fI\%#38045\fP: (\fI\%terminalmage\fP) yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  224438. @ \fI2016\-12\-02 20:07:38 UTC\fP
  224439. .INDENT 2.0
  224440. .IP \(bu 2
  224441. a34a763984 Merge pull request \fI\%#38045\fP from terminalmage/issue38037
  224442. .IP \(bu 2
  224443. 65289503d9 Simplify logic for matching desired pkg arch with actual pkg arch
  224444. .IP \(bu 2
  224445. 3babbcda94 yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  224446. .IP \(bu 2
  224447. \fBPR\fP \fI\%#38034\fP: (\fI\%cachedout\fP) Modify daemons test to use multiprocessing (refs: \fI\%#38059\fP)
  224448. .UNINDENT
  224449. .IP \(bu 2
  224450. \fBPR\fP \fI\%#37995\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224451. @ \fI2016\-11\-30 20:12:55 UTC\fP
  224452. .INDENT 2.0
  224453. .IP \(bu 2
  224454. 6942d5d95b Merge pull request \fI\%#37995\fP from rallytime/merge\-2016.3
  224455. .IP \(bu 2
  224456. b44e17921c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224457. .INDENT 2.0
  224458. .IP \(bu 2
  224459. 7a7e36728f Merge pull request \fI\%#37978\fP from terminalmage/ext_pillar_first\-docs
  224460. .INDENT 2.0
  224461. .IP \(bu 2
  224462. 61ed9a8657 Add clarifying language to ext_pillar_first docs
  224463. .UNINDENT
  224464. .UNINDENT
  224465. .IP \(bu 2
  224466. \fBPR\fP \fI\%#38002\fP: (\fI\%laleocen\fP) fix broken yaml code block
  224467. .UNINDENT
  224468. .IP \(bu 2
  224469. \fBISSUE\fP \fI\%#35088\fP: (\fI\%Modulus\fP) salt/cloud/ec2.py encoding problems. (refs: \fI\%#37912\fP)
  224470. .IP \(bu 2
  224471. \fBPR\fP \fI\%#37912\fP: (\fI\%attiasr\fP) fix encoding problem aws responses
  224472. @ \fI2016\-11\-30 18:10:30 UTC\fP
  224473. .INDENT 2.0
  224474. .IP \(bu 2
  224475. 3dd45fbedf Merge pull request \fI\%#37912\fP from attiasr/fix_aws_response_encoding
  224476. .IP \(bu 2
  224477. ba4ec4e7f1 use Requests result encoding to encode the text
  224478. .IP \(bu 2
  224479. abe4eb3b98 fix encoding problem aws responses
  224480. .UNINDENT
  224481. .IP \(bu 2
  224482. \fBPR\fP \fI\%#37950\fP: (\fI\%vutny\fP) Set default Salt Master address for a Syndic (like for a Minion)
  224483. @ \fI2016\-11\-30 18:09:04 UTC\fP
  224484. .INDENT 2.0
  224485. .IP \(bu 2
  224486. 69a74a4d2d Merge pull request \fI\%#37950\fP from vutny/fix\-starting\-up\-syndic
  224487. .IP \(bu 2
  224488. 7d9bc9abce syndic_master: correct default value, documentation and example config
  224489. .IP \(bu 2
  224490. 92a7c7ed1b Set default Salt Master address for a Syndic (like for a Minion)
  224491. .IP \(bu 2
  224492. \fBPR\fP \fI\%#37964\fP: (\fI\%terminalmage\fP) Add clarification on expr_form usage and future deprecation
  224493. .UNINDENT
  224494. .IP \(bu 2
  224495. \fBISSUE\fP \fI\%#37867\fP: (\fI\%tobiasBora\fP) Bug into lsb_release that crash salt (refs: \fI\%#37962\fP)
  224496. .INDENT 2.0
  224497. .IP \(bu 2
  224498. \fBPR\fP \fI\%#37962\fP: (\fI\%cachedout\fP) Catch possible exception from lsb_release
  224499. .UNINDENT
  224500. .IP \(bu 2
  224501. \fBISSUE\fP \fI\%#37945\fP: (\fI\%gstachowiak\fP) Missing exception handling in salt.master.Maintenance. Process never completes. (refs: \fI\%#37961\fP)
  224502. .INDENT 2.0
  224503. .IP \(bu 2
  224504. \fBPR\fP \fI\%#37961\fP: (\fI\%cachedout\fP) Handle empty tokens safely
  224505. .UNINDENT
  224506. .IP \(bu 2
  224507. \fBPR\fP \fI\%#37272\fP: (\fI\%vutny\fP) Get default logging level and log file from default opts dict (refs: \fI\%#38223\fP)
  224508. @ \fI2016\-11\-28 23:04:20 UTC\fP
  224509. .INDENT 2.0
  224510. .IP \(bu 2
  224511. ea46639ce7 Merge pull request \fI\%#37272\fP from vutny/fix\-getting\-default\-logging\-opts
  224512. .IP \(bu 2
  224513. e5ce52388a Fix description in the Salt Syndic usage info
  224514. .IP \(bu 2
  224515. 518a3dd7ee Add unit tests for Salt parsers processing logging options
  224516. .IP \(bu 2
  224517. 83d6a44254 Add \fIssh_log_file\fP option to master config and documentation
  224518. .IP \(bu 2
  224519. c8a0915460 Fix configuration example and documentation for \fIsyndic_log_file\fP option
  224520. .IP \(bu 2
  224521. e64dd3ed6b Correct default attributes for various parser classes
  224522. .IP \(bu 2
  224523. 82a2e216b3 Fix default usage string for Salt command line programs
  224524. .IP \(bu 2
  224525. 45dffa292f Fix readding and updating logfile and pidfile config options for Salt API
  224526. .IP \(bu 2
  224527. f47253c21b Fix reading and applying Salt Cloud default configuration
  224528. .IP \(bu 2
  224529. fad5bec936 Work with a copy of default opts dictionaries
  224530. .IP \(bu 2
  224531. b7c24811e5 Fix \fIlog_level_logfile\fP config value type
  224532. .IP \(bu 2
  224533. 1bd76a1d96 Fix setting temporary log level if CLI option omitted
  224534. .IP \(bu 2
  224535. 121848cc77 Fix obtaining \fIlog_granular_levels\fP config setting
  224536. .IP \(bu 2
  224537. 44cf07fec2 Make CLI options take precedence for setting up logfile_logger
  224538. .IP \(bu 2
  224539. 61afaf1792 Fix setting option attributes when processing \fIlog_level\fP and \fIlog_file\fP
  224540. .IP \(bu 2
  224541. 3c60e2388e Fix processing of \fIlog_level_logfile\fP config setting
  224542. .IP \(bu 2
  224543. 55a0af5bbd Use attribute functions for getting/setting options and config values
  224544. .IP \(bu 2
  224545. c25f2d091e Fix getting Salt API default logfile option
  224546. .IP \(bu 2
  224547. f2422373c1 Remove processing of unused and undocumented \fIcli_*_log_*\fP config options
  224548. .IP \(bu 2
  224549. 2065e8311c Get default logging level and file from default opts dict
  224550. .UNINDENT
  224551. .IP \(bu 2
  224552. \fBPR\fP \fI\%#37925\fP: (\fI\%kontrolld\fP) Fix missing ipv6 options centos network
  224553. @ \fI2016\-11\-28 22:38:43 UTC\fP
  224554. .INDENT 2.0
  224555. .IP \(bu 2
  224556. f2f957da6c Merge pull request \fI\%#37925\fP from kontrolld/add\-ipv6\-centos\-network
  224557. .IP \(bu 2
  224558. ac2b477412 Adding IPv6 functionality for CentOS /etc/sysconfig/network
  224559. .UNINDENT
  224560. .IP \(bu 2
  224561. \fBISSUE\fP \fI\%#37059\fP: (\fI\%basepi\fP) Beacon fileserver operations cause scheduled jobs with fileserver operations to hang (refs: \fI\%#37899\fP)
  224562. .IP \(bu 2
  224563. \fBPR\fP \fI\%#37899\fP: (\fI\%DmitryKuzmenko\fP) Clear functions context in schedule tasks for ZeroMQ.
  224564. @ \fI2016\-11\-28 22:23:45 UTC\fP
  224565. .INDENT 2.0
  224566. .IP \(bu 2
  224567. c07ad11279 Merge pull request \fI\%#37899\fP from DSRCorporation/bugs/37059_schedule_task_hang
  224568. .IP \(bu 2
  224569. 9497748546 Clear functions context in schedule tasks for ZeroMQ.
  224570. .UNINDENT
  224571. .IP \(bu 2
  224572. \fBISSUE\fP \fI\%#37737\fP: (\fI\%b\-harper\fP) python client api CloudClient multiple calls needed (refs: \fI\%#37928\fP)
  224573. .IP \(bu 2
  224574. \fBPR\fP \fI\%#37928\fP: (\fI\%techhat\fP) Don\(aqt modify self.opts directly
  224575. @ \fI2016\-11\-28 21:07:40 UTC\fP
  224576. .INDENT 2.0
  224577. .IP \(bu 2
  224578. a55519db40 Merge pull request \fI\%#37928\fP from techhat/issue37737
  224579. .IP \(bu 2
  224580. a09a60e89b Don\(aqt modify self.opts directly
  224581. .UNINDENT
  224582. .IP \(bu 2
  224583. \fBPR\fP \fI\%#37929\fP: (\fI\%gtmanfred\fP) add list_nodes_min to nova driver
  224584. @ \fI2016\-11\-28 21:05:40 UTC\fP
  224585. .INDENT 2.0
  224586. .IP \(bu 2
  224587. 9d17f1ce90 Merge pull request \fI\%#37929\fP from gtmanfred/2016.3
  224588. .IP \(bu 2
  224589. c7d2c73503 add list_nodes_min to nova driver
  224590. .UNINDENT
  224591. .IP \(bu 2
  224592. \fBPR\fP \fI\%#37926\fP: (\fI\%kontrolld\fP) Fixes no IPv6 functionality in /etc/sysconfig/network
  224593. @ \fI2016\-11\-28 20:40:00 UTC\fP
  224594. .INDENT 2.0
  224595. .IP \(bu 2
  224596. 3bb743b59f Merge pull request \fI\%#37926\fP from kontrolld/fix\-ipv6\-centos\-network
  224597. .IP \(bu 2
  224598. 3ed42e5b44 updated
  224599. .IP \(bu 2
  224600. 3b3bc4f239 Fixes no IPv6 functionality in /etc/sysconfig/network
  224601. .UNINDENT
  224602. .IP \(bu 2
  224603. \fBPR\fP \fI\%#37921\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224604. @ \fI2016\-11\-28 19:54:40 UTC\fP
  224605. .INDENT 2.0
  224606. .IP \(bu 2
  224607. 271170a9f3 Merge pull request \fI\%#37921\fP from rallytime/merge\-2016.3
  224608. .IP \(bu 2
  224609. 523a67c422 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224610. .INDENT 2.0
  224611. .IP \(bu 2
  224612. 4cdc6cf5ec Update earlier release channels\(aq docs with Carbon release notes (\fI\%#37914\fP)
  224613. .IP \(bu 2
  224614. d31491a7fe [2015.8] Update version numbers in doc config for 2016.11.0 release (\fI\%#37918\fP)
  224615. .UNINDENT
  224616. .UNINDENT
  224617. .IP \(bu 2
  224618. \fBPR\fP \fI\%#37924\fP: (\fI\%cachedout\fP) Update test for new gem ver
  224619. @ \fI2016\-11\-28 18:17:53 UTC\fP
  224620. .INDENT 2.0
  224621. .IP \(bu 2
  224622. 6cd6429ac0 Merge pull request \fI\%#37924\fP from cachedout/fix_gem_states
  224623. .IP \(bu 2
  224624. 894cca3427 Update test for new gem ver
  224625. .UNINDENT
  224626. .IP \(bu 2
  224627. \fBPR\fP \fI\%#37916\fP: (\fI\%rallytime\fP) [2016.3] Update version numbers in doc config for 2016.11.0 release
  224628. @ \fI2016\-11\-28 17:09:08 UTC\fP
  224629. .INDENT 2.0
  224630. .IP \(bu 2
  224631. c35ba1f390 Merge pull request \fI\%#37916\fP from rallytime/doc\-update\-2016.3
  224632. .IP \(bu 2
  224633. bd40592289 [2016.3] Update version numbers in doc config for 2016.11.0 release
  224634. .UNINDENT
  224635. .IP \(bu 2
  224636. \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)
  224637. .IP \(bu 2
  224638. \fBPR\fP \fI\%#37785\fP: (\fI\%aaronm\-cloudtek\fP) respect trailing dot in ddns name parameter
  224639. @ \fI2016\-11\-28 14:02:10 UTC\fP
  224640. .INDENT 2.0
  224641. .IP \(bu 2
  224642. e13a2488c8 Merge pull request \fI\%#37785\fP from Cloudtek/ddns\-respect\-trailing\-dot
  224643. .IP \(bu 2
  224644. 262e3b3697 respect trailing dot in ddns name parameter
  224645. .UNINDENT
  224646. .IP \(bu 2
  224647. \fBISSUE\fP \fI\%#37870\fP: (\fI\%fj40crawler\fP) salt.states.augeas.change returns None when test=True (refs: \fI\%#37895\fP)
  224648. .IP \(bu 2
  224649. \fBPR\fP \fI\%#37895\fP: (\fI\%fj40crawler\fP) Change return value for salt/states/augeas.py to be True instead of N…
  224650. @ \fI2016\-11\-28 13:49:27 UTC\fP
  224651. .INDENT 2.0
  224652. .IP \(bu 2
  224653. c03b389422 Merge pull request \fI\%#37895\fP from fj40crawler/fix\-augeas\-return\-for\-test
  224654. .IP \(bu 2
  224655. ddc238df36 Fixed augeas_test.py to match True v.s. None for test_change_in_test_mode
  224656. .IP \(bu 2
  224657. ef75c459c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into fix\-augeas\-return\-for\-test
  224658. .IP \(bu 2
  224659. 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
  224660. .UNINDENT
  224661. .IP \(bu 2
  224662. \fBPR\fP \fI\%#37907\fP: (\fI\%Talkless\fP) Fix server trust in test run of svn.latest
  224663. @ \fI2016\-11\-28 13:47:39 UTC\fP
  224664. .INDENT 2.0
  224665. .IP \(bu 2
  224666. fdbc31e8d8 Merge pull request \fI\%#37907\fP from Talkless/patch\-2
  224667. .IP \(bu 2
  224668. 072a319490 Fix server trust in test run of svn.latest
  224669. .UNINDENT
  224670. .IP \(bu 2
  224671. \fBPR\fP \fI\%#37896\fP: (\fI\%toanju\fP) rh networking: add missing values
  224672. @ \fI2016\-11\-27 10:30:35 UTC\fP
  224673. .INDENT 2.0
  224674. .IP \(bu 2
  224675. f39fdf443f Merge pull request \fI\%#37896\fP from toanju/2016.3
  224676. .IP \(bu 2
  224677. c95304188e rh networking: add missing values
  224678. .UNINDENT
  224679. .IP \(bu 2
  224680. \fBPR\fP \fI\%#37886\fP: (\fI\%bdrung\fP) Fix various spelling mistakes
  224681. @ \fI2016\-11\-25 02:59:36 UTC\fP
  224682. .INDENT 2.0
  224683. .IP \(bu 2
  224684. ea935c5a91 Merge pull request \fI\%#37886\fP from bdrung/fix\-typos
  224685. .IP \(bu 2
  224686. 9a51ba5c5b Fix various spelling mistakes
  224687. .UNINDENT
  224688. .IP \(bu 2
  224689. \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)
  224690. .IP \(bu 2
  224691. \fBPR\fP \fI\%#37736\fP: (\fI\%dhaines\fP) handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  224692. @ \fI2016\-11\-24 01:44:20 UTC\fP
  224693. .INDENT 2.0
  224694. .IP \(bu 2
  224695. 371b0a86d9 Merge pull request \fI\%#37736\fP from dhaines/issue\-37732
  224696. .IP \(bu 2
  224697. 7ef590a505 Update selinux.py
  224698. .IP \(bu 2
  224699. 516a67e6a3 fix indexing error
  224700. .IP \(bu 2
  224701. 4e49c1e991 fix typo
  224702. .IP \(bu 2
  224703. b16f2d8400 handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  224704. .UNINDENT
  224705. .IP \(bu 2
  224706. \fBPR\fP \fI\%#37797\fP: (\fI\%clan\fP) check count of columns after split
  224707. @ \fI2016\-11\-24 01:28:59 UTC\fP
  224708. .INDENT 2.0
  224709. .IP \(bu 2
  224710. 87aeb66fbf Merge pull request \fI\%#37797\fP from clan/extfs
  224711. .IP \(bu 2
  224712. acf0f960ef check count of columns after split
  224713. .UNINDENT
  224714. .IP \(bu 2
  224715. \fBPR\fP \fI\%#37762\fP: (\fI\%twangboy\fP) Add pre_versions to chocolatey.installed
  224716. @ \fI2016\-11\-24 01:27:29 UTC\fP
  224717. .INDENT 2.0
  224718. .IP \(bu 2
  224719. f7c7109152 Merge pull request \fI\%#37762\fP from twangboy/fix_chocolatey_state
  224720. .IP \(bu 2
  224721. 9696b6dfa5 Use keyword args instead of relying on ordering
  224722. .IP \(bu 2
  224723. 398eaa074d Add pre_versions to the available arguments
  224724. .UNINDENT
  224725. .IP \(bu 2
  224726. \fBPR\fP \fI\%#37866\fP: (\fI\%meaksh\fP) Backport \fI\%#37149\fP \fI\%#36938\fP and \fI\%#36784\fP to 2016.3
  224727. @ \fI2016\-11\-23 21:54:17 UTC\fP
  224728. .INDENT 2.0
  224729. .IP \(bu 2
  224730. \fBPR\fP \fI\%#37857\fP: (\fI\%meaksh\fP) Backport \fI\%#37149\fP and \fI\%#36938\fP to 2015.8 (refs: \fI\%#37866\fP)
  224731. .IP \(bu 2
  224732. \fBPR\fP \fI\%#37856\fP: (\fI\%meaksh\fP) Backport \fI\%#36784\fP to 2015.8 (refs: \fI\%#37866\fP)
  224733. .IP \(bu 2
  224734. \fBPR\fP \fI\%#37149\fP: (\fI\%dincamihai\fP) Fix pkg.latest_version when latest already installed (refs: \fI\%#37857\fP, \fI\%#37866\fP)
  224735. .IP \(bu 2
  224736. \fBPR\fP \fI\%#36938\fP: (\fI\%wanparo\fP) acl.delfacl: fix position of \-X option to setfacl (refs: \fI\%#37857\fP, \fI\%#37866\fP)
  224737. .IP \(bu 2
  224738. \fBPR\fP \fI\%#36784\fP: (\fI\%moio\fP) OS grains for SLES Expanded Support (refs: \fI\%#37856\fP, \fI\%#37866\fP)
  224739. .IP \(bu 2
  224740. 56baa92d55 Merge pull request \fI\%#37866\fP from meaksh/2016.3\-bp\-37149\-36938\-36784
  224741. .IP \(bu 2
  224742. 9d8d578109 Fix pkg.latest_version when latest already installed
  224743. .IP \(bu 2
  224744. ffca0d491c \- acl.delfacl: fix position of \-X option to setfacl
  224745. .IP \(bu 2
  224746. 3dfed6b841 Adjust linux_acl unit test argument ordering
  224747. .IP \(bu 2
  224748. f185ecdde1 core.py: quote style fixed
  224749. .IP \(bu 2
  224750. 8404d13424 Setting up OS grains for SLES Expanded Support (SUSE\(aqs Red Hat compatible platform)
  224751. .UNINDENT
  224752. .IP \(bu 2
  224753. \fBISSUE\fP \fI\%#32829\fP: (\fI\%tyhunt99\fP) Dockerng appears to not be using docker registries pillar data (refs: \fI\%#36893\fP)
  224754. .IP \(bu 2
  224755. \fBPR\fP \fI\%#37863\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36893\fP to 2016.3
  224756. @ \fI2016\-11\-23 17:09:09 UTC\fP
  224757. .INDENT 2.0
  224758. .IP \(bu 2
  224759. \fBPR\fP \fI\%#36893\fP: (\fI\%tyhunt99\fP) add option to force a reauth for a docker registry (refs: \fI\%#37863\fP)
  224760. .IP \(bu 2
  224761. d0cc7f0d56 Merge pull request \fI\%#37863\fP from rallytime/bp\-36893
  224762. .IP \(bu 2
  224763. 4c70534991 Add versionadded to reauth option in dockerng module
  224764. .IP \(bu 2
  224765. 5ca2c388c2 added documentation for the new reuth option in docker registry configuration
  224766. .IP \(bu 2
  224767. 5b0c11ab47 add option to force a reauth for a docker registry
  224768. .IP \(bu 2
  224769. \fBPR\fP \fI\%#37847\fP: (\fI\%laleocen\fP) add multiline encryption documentation to nacl
  224770. .UNINDENT
  224771. .IP \(bu 2
  224772. \fBISSUE\fP \fI\%#37787\fP: (\fI\%elyulka\fP) user.present state fails to change loginclass on FreeBSD (refs: \fI\%#37827\fP)
  224773. .INDENT 2.0
  224774. .IP \(bu 2
  224775. \fBPR\fP \fI\%#37827\fP: (\fI\%silenius\fP) add missing chloginclass
  224776. .IP \(bu 2
  224777. \fBPR\fP \fI\%#37826\fP: (\fI\%rallytime\fP) Update branch refs to more relevant branch
  224778. .IP \(bu 2
  224779. \fBPR\fP \fI\%#37822\fP: (\fI\%laleocen\fP) add documenation for multiline encryption using nacl (refs: \fI\%#37826\fP)
  224780. .UNINDENT
  224781. .IP \(bu 2
  224782. \fBISSUE\fP \fI\%#19269\fP: (\fI\%markuskramerIgitt\fP) Undocumented feature \fInames:\fP of \fIfile.directory\fP (refs: \fI\%#37823\fP)
  224783. .INDENT 2.0
  224784. .IP \(bu 2
  224785. \fBPR\fP \fI\%#37823\fP: (\fI\%rallytime\fP) Add "names" option to file state docs: point users to highstate doc examples
  224786. .UNINDENT
  224787. .IP \(bu 2
  224788. \fBISSUE\fP \fI\%#15697\fP: (\fI\%arthurlogilab\fP) keystone.user_present should not re\-set the password when user exists (refs: \fI\%#37821\fP)
  224789. .INDENT 2.0
  224790. .IP \(bu 2
  224791. \fBPR\fP \fI\%#37821\fP: (\fI\%rallytime\fP) Clarify keystone.user_present password state docs with default behavior
  224792. .UNINDENT
  224793. .IP \(bu 2
  224794. \fBISSUE\fP \fI\%#5999\fP: (\fI\%pille\fP) libvirt.keys does not work (refs: \fI\%#37820\fP)
  224795. .INDENT 2.0
  224796. .IP \(bu 2
  224797. \fBPR\fP \fI\%#37820\fP: (\fI\%rallytime\fP) Add some dependency documentation to libvirt docs
  224798. .UNINDENT
  224799. .IP \(bu 2
  224800. \fBPR\fP \fI\%#37772\fP: (\fI\%bdrung\fP) Support initializing OpenSSL 1.1
  224801. @ \fI2016\-11\-21 20:28:51 UTC\fP
  224802. .INDENT 2.0
  224803. .IP \(bu 2
  224804. 485270f74e Merge pull request \fI\%#37772\fP from bdrung/openssl1.1
  224805. .IP \(bu 2
  224806. 819c9658ed Support initializing OpenSSL 1.1
  224807. .UNINDENT
  224808. .IP \(bu 2
  224809. \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)
  224810. .INDENT 2.0
  224811. .IP \(bu 2
  224812. \fBPR\fP \fI\%#37817\fP: (\fI\%rallytime\fP) Update orchestrate runner file.copy doc example
  224813. .UNINDENT
  224814. .IP \(bu 2
  224815. \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)
  224816. .IP \(bu 2
  224817. \fBISSUE\fP \fI\%#31953\fP: (\fI\%sjorge\fP) Documentation for salt.states.cron is incorrect (refs: \fI\%#32157\fP)
  224818. .IP \(bu 2
  224819. \fBPR\fP \fI\%#37816\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32157\fP to 2016.3
  224820. @ \fI2016\-11\-21 20:22:27 UTC\fP
  224821. .INDENT 2.0
  224822. .IP \(bu 2
  224823. \fBPR\fP \fI\%#32157\fP: (\fI\%cachedout\fP) Add quotes to cron doc (refs: \fI\%#37816\fP)
  224824. .IP \(bu 2
  224825. c5d3d8b66a Merge pull request \fI\%#37816\fP from rallytime/bp\-32157
  224826. .IP \(bu 2
  224827. d9c297119e Add quotes to cron doc
  224828. .UNINDENT
  224829. .IP \(bu 2
  224830. \fBPR\fP \fI\%#37812\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37790\fP to 2016.3
  224831. @ \fI2016\-11\-21 18:46:40 UTC\fP
  224832. .INDENT 2.0
  224833. .IP \(bu 2
  224834. \fBPR\fP \fI\%#37790\fP: (\fI\%sofixa\fP) Update cloud/proxmox.rst with more options and LXC (refs: \fI\%#37812\fP)
  224835. .IP \(bu 2
  224836. 97e6b6aabe Merge pull request \fI\%#37812\fP from rallytime/bp\-37790
  224837. .IP \(bu 2
  224838. ca3b6e7874 Update proxmox.rst with more options and LXC
  224839. .UNINDENT
  224840. .IP \(bu 2
  224841. \fBISSUE\fP \fI\%#37751\fP: (\fI\%freach\fP) Documentation salt.states.dockerng.running: "privileged" property undocumented (refs: \fI\%#37789\fP)
  224842. .IP \(bu 2
  224843. \fBPR\fP \fI\%#37811\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37789\fP to 2016.3
  224844. @ \fI2016\-11\-21 18:46:21 UTC\fP
  224845. .INDENT 2.0
  224846. .IP \(bu 2
  224847. \fBPR\fP \fI\%#37789\fP: (\fI\%fedusia\fP) issue: 37751 (refs: \fI\%#37811\fP)
  224848. .IP \(bu 2
  224849. 27703c54bc Merge pull request \fI\%#37811\fP from rallytime/bp\-37789
  224850. .IP \(bu 2
  224851. ba3fef48e1 fix comment
  224852. .IP \(bu 2
  224853. a021f76a9b issue: 37751 Add documentation for option privileged
  224854. .UNINDENT
  224855. .IP \(bu 2
  224856. \fBPR\fP \fI\%#37810\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37775\fP to 2016.3
  224857. @ \fI2016\-11\-21 18:45:53 UTC\fP
  224858. .INDENT 2.0
  224859. .IP \(bu 2
  224860. \fBPR\fP \fI\%#37775\fP: (\fI\%calve\fP) Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP (refs: \fI\%#37810\fP)
  224861. .IP \(bu 2
  224862. adac9d7c0c Merge pull request \fI\%#37810\fP from rallytime/bp\-37775
  224863. .IP \(bu 2
  224864. 2bed91437b Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP
  224865. .UNINDENT
  224866. .IP \(bu 2
  224867. \fBISSUE\fP \fI\%#37742\fP: (\fI\%blaketmiller\fP) Cannot match on nodegroup when checking minions (refs: \fI\%#37763\fP)
  224868. .INDENT 2.0
  224869. .IP \(bu 2
  224870. \fBPR\fP \fI\%#37763\fP: (\fI\%cachedout\fP) Add nodegroup check to ckminions
  224871. .UNINDENT
  224872. .IP \(bu 2
  224873. \fBISSUE\fP \fI\%#37725\fP: (\fI\%secumod\fP) salt\-call incorrectly parses master hostname:port from minion config (refs: \fI\%#37766\fP)
  224874. .INDENT 2.0
  224875. .IP \(bu 2
  224876. \fBPR\fP \fI\%#37766\fP: (\fI\%cachedout\fP) Fix ip/port issue with salt\-call
  224877. .UNINDENT
  224878. .IP \(bu 2
  224879. \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)
  224880. .INDENT 2.0
  224881. .IP \(bu 2
  224882. \fBPR\fP \fI\%#37767\fP: (\fI\%cachedout\fP) Add thorium path to syspaths
  224883. .UNINDENT
  224884. .IP \(bu 2
  224885. \fBPR\fP \fI\%#37760\fP: (\fI\%hu\-dabao\fP) Fix couchbase returner and add couple of more features
  224886. @ \fI2016\-11\-18 00:28:23 UTC\fP
  224887. .INDENT 2.0
  224888. .IP \(bu 2
  224889. bff949f4e9 Merge pull request \fI\%#37760\fP from hu\-dabao/fix_cb_returner
  224890. .IP \(bu 2
  224891. 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
  224892. .UNINDENT
  224893. .IP \(bu 2
  224894. \fBISSUE\fP \fI\%#36629\fP: (\fI\%yhekma\fP) The pillar run module does not honor saltenv (refs: \fI\%#37738\fP)
  224895. .IP \(bu 2
  224896. \fBPR\fP \fI\%#37738\fP: (\fI\%terminalmage\fP) Allow pillar.get to retrieve fresh pillar data when saltenv passed
  224897. @ \fI2016\-11\-17 23:13:04 UTC\fP
  224898. .INDENT 2.0
  224899. .IP \(bu 2
  224900. 1f976ac212 Merge pull request \fI\%#37738\fP from terminalmage/issue36629
  224901. .IP \(bu 2
  224902. da46678c51 Allow pillar.get to retrieve fresh pillar data when saltenv passed
  224903. .IP \(bu 2
  224904. \fBPR\fP \fI\%#37745\fP: (\fI\%cro\fP) Switch default filter tag for ONE resources from user only to all resources
  224905. .UNINDENT
  224906. .IP \(bu 2
  224907. \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)
  224908. .INDENT 2.0
  224909. .IP \(bu 2
  224910. \fBPR\fP \fI\%#37748\fP: (\fI\%silenius\fP) check for SERVICE_DIR in __virtual__ in salt.modules.daemontools
  224911. .UNINDENT
  224912. .IP \(bu 2
  224913. \fBISSUE\fP \fI\%#37734\fP: (\fI\%Ch3LL\fP) Joyent Cloud Size Issue (refs: \fI\%#37735\fP)
  224914. .IP \(bu 2
  224915. \fBPR\fP \fI\%#37735\fP: (\fI\%Ch3LL\fP) change size and image of joyent profile
  224916. @ \fI2016\-11\-16 21:07:52 UTC\fP
  224917. .INDENT 2.0
  224918. .IP \(bu 2
  224919. fa7883115e Merge pull request \fI\%#37735\fP from Ch3LL/fix_joyent_profile
  224920. .IP \(bu 2
  224921. 9ef41dcdfc change size and image of joyent profile
  224922. .UNINDENT
  224923. .IP \(bu 2
  224924. \fBPR\fP \fI\%#37731\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224925. @ \fI2016\-11\-16 17:13:02 UTC\fP
  224926. .INDENT 2.0
  224927. .IP \(bu 2
  224928. 98e25c68aa Merge pull request \fI\%#37731\fP from rallytime/merge\-2016.3
  224929. .IP \(bu 2
  224930. ec1389711f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224931. .INDENT 2.0
  224932. .IP \(bu 2
  224933. f417dbbe99 Merge pull request \fI\%#37718\fP from terminalmage/docs
  224934. .INDENT 2.0
  224935. .IP \(bu 2
  224936. 23b8b2a3f4 Fix incorrectly\-formatted RST
  224937. .UNINDENT
  224938. .UNINDENT
  224939. .IP \(bu 2
  224940. \fBPR\fP \fI\%#37724\fP: (\fI\%cachedout\fP) Warn on AES test for systems with > 1 core
  224941. .UNINDENT
  224942. .IP \(bu 2
  224943. \fBPR\fP \fI\%#37721\fP: (\fI\%terminalmage\fP) Fix for pillar setting \(aqenvironment\(aq key in __gen_opts()
  224944. @ \fI2016\-11\-16 16:04:53 UTC\fP
  224945. .INDENT 2.0
  224946. .IP \(bu 2
  224947. 35655d521f Merge pull request \fI\%#37721\fP from terminalmage/zd909
  224948. .IP \(bu 2
  224949. acdd5513da Update git_pillar docs to reflect info from bugfix
  224950. .IP \(bu 2
  224951. 433737d2dc Fix for pillar setting \(aqenvironment\(aq key in __gen_opts()
  224952. .UNINDENT
  224953. .IP \(bu 2
  224954. \fBPR\fP \fI\%#37719\fP: (\fI\%terminalmage\fP) Fix incorrectly\-formatted RST (2016.3 branch)
  224955. @ \fI2016\-11\-16 08:20:53 UTC\fP
  224956. .INDENT 2.0
  224957. .IP \(bu 2
  224958. 99cda7c003 Merge pull request \fI\%#37719\fP from terminalmage/docs\-2016.3
  224959. .IP \(bu 2
  224960. f163b4c724 Fix incorrectly\-formatted RST
  224961. .UNINDENT
  224962. .IP \(bu 2
  224963. \fBPR\fP \fI\%#37694\fP: (\fI\%cachedout\fP) Catch differences in git URLs in npm state
  224964. @ \fI2016\-11\-16 01:56:18 UTC\fP
  224965. .INDENT 2.0
  224966. .IP \(bu 2
  224967. 8dea695c7c Merge pull request \fI\%#37694\fP from cachedout/npm_git
  224968. .IP \(bu 2
  224969. 0e3bc2366a Catch differences in git URLs in npm state
  224970. .UNINDENT
  224971. .IP \(bu 2
  224972. \fBISSUE\fP \fI\%#37665\fP: (\fI\%kluoto\fP) boto_elb state fails as key is overwritten by the code (refs: \fI\%#37705\fP)
  224973. .IP \(bu 2
  224974. \fBPR\fP \fI\%#37705\fP: (\fI\%rallytime\fP) Don\(aqt overwrite the "key" variable passed in to _listeners_present func
  224975. @ \fI2016\-11\-15 21:26:37 UTC\fP
  224976. .INDENT 2.0
  224977. .IP \(bu 2
  224978. 329448ccd7 Merge pull request \fI\%#37705\fP from rallytime/fix\-37665
  224979. .IP \(bu 2
  224980. 3b7e9c5e3b Don\(aqt overwrite the "key" variable passed in to _listeners_present func
  224981. .UNINDENT
  224982. .IP \(bu 2
  224983. \fBPR\fP \fI\%#37707\fP: (\fI\%Ch3LL\fP) add timeout increase on azure tests
  224984. @ \fI2016\-11\-15 21:24:25 UTC\fP
  224985. .INDENT 2.0
  224986. .IP \(bu 2
  224987. \fBPR\fP \fI\%#37239\fP: (\fI\%Ch3LL\fP) Fix cloud tests timeout (refs: \fI\%#37707\fP)
  224988. .IP \(bu 2
  224989. ac9a316b50 Merge pull request \fI\%#37707\fP from Ch3LL/fix_timeout_azure
  224990. .IP \(bu 2
  224991. 363122c675 add timeout increase on azure tests
  224992. .UNINDENT
  224993. .IP \(bu 2
  224994. \fBPR\fP \fI\%#37704\fP: (\fI\%twangboy\fP) Fix test disabled 2016.3 [DO NOT MERGE FORWARD]
  224995. @ \fI2016\-11\-15 16:48:52 UTC\fP
  224996. .INDENT 2.0
  224997. .IP \(bu 2
  224998. 1ece265354 Merge pull request \fI\%#37704\fP from twangboy/fix_test_disabled_2016.3
  224999. .IP \(bu 2
  225000. a0429cf839 Use nfsd instead of apsd for test_disabled
  225001. .UNINDENT
  225002. .IP \(bu 2
  225003. \fBPR\fP \fI\%#37690\fP: (\fI\%twangboy\fP) Update pyzmq to 15.3.0 for 2016.3 [DO NOT MERGE FORWARD]
  225004. @ \fI2016\-11\-15 03:10:36 UTC\fP
  225005. .INDENT 2.0
  225006. .IP \(bu 2
  225007. 44f05acbff Merge pull request \fI\%#37690\fP from twangboy/update_pyzmq_2016.3
  225008. .IP \(bu 2
  225009. cf55342150 Update pyzmq to version 15.3.0
  225010. .UNINDENT
  225011. .IP \(bu 2
  225012. \fBPR\fP \fI\%#37680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32965\fP to 2016.3
  225013. @ \fI2016\-11\-15 02:56:46 UTC\fP
  225014. .INDENT 2.0
  225015. .IP \(bu 2
  225016. \fBPR\fP \fI\%#32965\fP: (\fI\%kevinquinnyo\fP) Fix \(aqpresent\(aq option when used without \(aqkey_type\(aq (refs: \fI\%#37680\fP)
  225017. .IP \(bu 2
  225018. a743d8b5e6 Merge pull request \fI\%#37680\fP from rallytime/bp\-32965
  225019. .IP \(bu 2
  225020. 1865b13645 Fix \(aqpresent\(aq option when used without \(aqkey_type\(aq
  225021. .UNINDENT
  225022. .IP \(bu 2
  225023. \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)
  225024. .IP \(bu 2
  225025. \fBPR\fP \fI\%#37681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35965\fP to 2016.3
  225026. @ \fI2016\-11\-14 21:19:22 UTC\fP
  225027. .INDENT 2.0
  225028. .IP \(bu 2
  225029. \fBPR\fP \fI\%#35965\fP: (\fI\%edgan\fP) Set the return code to 1 on salt\-ssh highstate errors (refs: \fI\%#37681\fP)
  225030. .IP \(bu 2
  225031. 1c2d6ff293 Merge pull request \fI\%#37681\fP from rallytime/bp\-35965
  225032. .IP \(bu 2
  225033. 700f3fa57f Set the return code to 1 on salt\-ssh highstate errors
  225034. .UNINDENT
  225035. .IP \(bu 2
  225036. \fBPR\fP \fI\%#37668\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225037. @ \fI2016\-11\-14 15:43:25 UTC\fP
  225038. .INDENT 2.0
  225039. .IP \(bu 2
  225040. 1b456b55dc Merge pull request \fI\%#37668\fP from rallytime/merge\-2016.3
  225041. .IP \(bu 2
  225042. ef684c6b02 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225043. .IP \(bu 2
  225044. a01b66556f Add docs for rotate_aes_key (\fI\%#37641\fP)
  225045. .UNINDENT
  225046. .IP \(bu 2
  225047. \fBISSUE\fP \fI\%#37492\fP: (\fI\%JensRantil\fP) Failing \fIsalt \-b 1 minion state.highstate\fP has wrong exit code (refs: \fI\%#37625\fP)
  225048. .IP \(bu 2
  225049. \fBPR\fP \fI\%#37625\fP: (\fI\%cachedout\fP) Return with proper retcodes in batch mode
  225050. @ \fI2016\-11\-12 20:29:09 UTC\fP
  225051. .INDENT 2.0
  225052. .IP \(bu 2
  225053. 305e51d1c0 Merge pull request \fI\%#37625\fP from cachedout/issue_37492
  225054. .IP \(bu 2
  225055. b6031524e5 Return with proper retcodes in batch mode
  225056. .UNINDENT
  225057. .IP \(bu 2
  225058. \fBISSUE\fP \fI\%#34547\fP: (\fI\%sebw\fP) salt\-cloud deployment fails when deploy: True (refs: \fI\%#37607\fP)
  225059. .IP \(bu 2
  225060. \fBPR\fP \fI\%#37639\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37607\fP to 2016.3
  225061. @ \fI2016\-11\-11 20:29:20 UTC\fP
  225062. .INDENT 2.0
  225063. .IP \(bu 2
  225064. \fBPR\fP \fI\%#37607\fP: (\fI\%techhat\fP) Try the connection again, in case it\(aqs been reset (refs: \fI\%#37639\fP)
  225065. .IP \(bu 2
  225066. \fBPR\fP \fI\%#35673\fP: (\fI\%cro\fP) Proxies don\(aqt handle reusing the SmartConnect instances very well. D… (refs: \fI\%#37607\fP)
  225067. .IP \(bu 2
  225068. \fBPR\fP \fI\%#34059\fP: (\fI\%alexbleotu\fP) Vmware common gh (refs: \fI\%#37607\fP)
  225069. .IP \(bu 2
  225070. 7510cd4da9 Merge pull request \fI\%#37639\fP from rallytime/bp\-37607
  225071. .IP \(bu 2
  225072. 9914c93bc4 Pylint: Remove kwargs that are not in the 2016.3 branch
  225073. .IP \(bu 2
  225074. d941e9354d Disable pylint warning
  225075. .IP \(bu 2
  225076. 940ee49a0b Lint fix
  225077. .IP \(bu 2
  225078. 69893f0c38 Try the connection again, in case it\(aqs been reset
  225079. .UNINDENT
  225080. .IP \(bu 2
  225081. \fBISSUE\fP \fI\%saltstack/salt#37118\fP: (\fI\%gtmanfred\fP) group in file.find module unable to be a list (refs: \fI\%#37349\fP)
  225082. .IP \(bu 2
  225083. \fBISSUE\fP \fI\%#37118\fP: (\fI\%gtmanfred\fP) group in file.find module unable to be a list (refs: \fI\%#37349\fP)
  225084. .IP \(bu 2
  225085. \fBPR\fP \fI\%#37638\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37349\fP to 2016.3
  225086. @ \fI2016\-11\-11 20:29:01 UTC\fP
  225087. .INDENT 2.0
  225088. .IP \(bu 2
  225089. \fBPR\fP \fI\%#37349\fP: (\fI\%haeac\fP) Pull request for Bug \fI\%#37118\fP (refs: \fI\%#37638\fP)
  225090. .IP \(bu 2
  225091. 24ca96010d Merge pull request \fI\%#37638\fP from rallytime/bp\-37349
  225092. .IP \(bu 2
  225093. ba2105bc39 Fix for Bug \fI\%#37118\fP, the wrong parameter was being used to convert the group name to group id.
  225094. .UNINDENT
  225095. .IP \(bu 2
  225096. \fBISSUE\fP \fI\%#37643\fP: (\fI\%Ch3LL\fP) digital ocean list_keypairs limits to 20 keys (refs: \fI\%#37644\fP)
  225097. .IP \(bu 2
  225098. \fBPR\fP \fI\%#37644\fP: (\fI\%Ch3LL\fP) digital ocean list_keypairs: increase limit for ssh keys parsed
  225099. @ \fI2016\-11\-11 20:28:46 UTC\fP
  225100. .INDENT 2.0
  225101. .IP \(bu 2
  225102. e1e8b81d16 Merge pull request \fI\%#37644\fP from Ch3LL/fix_37643
  225103. .IP \(bu 2
  225104. c02961a2f5 list_keypairs: increase limit for ssh keys parsed
  225105. .UNINDENT
  225106. .IP \(bu 2
  225107. \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)
  225108. .IP \(bu 2
  225109. \fBPR\fP \fI\%#37640\fP: (\fI\%rallytime\fP) Add known issue \fI\%#37541\fP to 2016.3.4 release notes
  225110. @ \fI2016\-11\-11 20:28:12 UTC\fP
  225111. .INDENT 2.0
  225112. .IP \(bu 2
  225113. a97c2ad34b Merge pull request \fI\%#37640\fP from rallytime/update\-release\-notes
  225114. .IP \(bu 2
  225115. 6d6de12aff Grammatical fix
  225116. .IP \(bu 2
  225117. 24d7f20e16 Add known issue \fI\%#37541\fP to 2016.3.4 release notes
  225118. .UNINDENT
  225119. .IP \(bu 2
  225120. \fBPR\fP \fI\%#37642\fP: (\fI\%cro\fP) Forward\-port change from 2015.8 adding release note for rotate_aes_key
  225121. @ \fI2016\-11\-11 20:27:07 UTC\fP
  225122. .INDENT 2.0
  225123. .IP \(bu 2
  225124. fab3eaa237 Merge pull request \fI\%#37642\fP from cro/rotate_aes_doc
  225125. .IP \(bu 2
  225126. 1ca5b958c6 Forward\-port change from 2015.8 adding release note for rotate_aes_key
  225127. .UNINDENT
  225128. .IP \(bu 2
  225129. \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)
  225130. .IP \(bu 2
  225131. \fBPR\fP \fI\%#37629\fP: (\fI\%TronPaul\fP) fix __opts__ and provider being None in salt.utils.aws:get_location
  225132. @ \fI2016\-11\-11 09:49:47 UTC\fP
  225133. .INDENT 2.0
  225134. .IP \(bu 2
  225135. 4c07b3534a Merge pull request \fI\%#37629\fP from TronPaul/fix\-s3fs\-opts
  225136. .IP \(bu 2
  225137. a452cded20 fix __opts__ and provider being None issue
  225138. .UNINDENT
  225139. .IP \(bu 2
  225140. \fBPR\fP \fI\%#37481\fP: (\fI\%thatch45\fP) Raet internal client reference fix
  225141. @ \fI2016\-11\-11 04:39:41 UTC\fP
  225142. .INDENT 2.0
  225143. .IP \(bu 2
  225144. 200d9fcb6e Merge pull request \fI\%#37481\fP from thatch45/raet_client
  225145. .IP \(bu 2
  225146. 50d911160b Attempted fix, needs user verification
  225147. .UNINDENT
  225148. .IP \(bu 2
  225149. \fBPR\fP \fI\%#37611\fP: (\fI\%jeanpralo\fP) Fix cmd batch raw
  225150. @ \fI2016\-11\-11 02:53:58 UTC\fP
  225151. .INDENT 2.0
  225152. .IP \(bu 2
  225153. b14faf1c68 Merge pull request \fI\%#37611\fP from jeanpralo/fix\-cmd\-batch\-raw
  225154. .IP \(bu 2
  225155. 4f16840ef1 add integration test for salt.client.LocalClient.cmd_batch
  225156. .IP \(bu 2
  225157. ead47e4bba update ret dict to avoid hanging
  225158. .IP \(bu 2
  225159. 0a2f153b6e fix dict key for raw support to avoid exception
  225160. .UNINDENT
  225161. .IP \(bu 2
  225162. \fBPR\fP \fI\%#37614\fP: (\fI\%gtmanfred\fP) remove redundant code
  225163. @ \fI2016\-11\-11 02:49:13 UTC\fP
  225164. .INDENT 2.0
  225165. .IP \(bu 2
  225166. 35c8333d04 Merge pull request \fI\%#37614\fP from gtmanfred/2016.3
  225167. .IP \(bu 2
  225168. 71c2df89a9 remove redundent code
  225169. .UNINDENT
  225170. .IP \(bu 2
  225171. \fBPR\fP \fI\%#37627\fP: (\fI\%cachedout\fP) Exempt pip.iteritems from test_valid_docs test
  225172. @ \fI2016\-11\-11 02:48:37 UTC\fP
  225173. .INDENT 2.0
  225174. .IP \(bu 2
  225175. 4fab707bdd Merge pull request \fI\%#37627\fP from cachedout/pr\-36706
  225176. .IP \(bu 2
  225177. 94df2f8e6f Exempt pip.iteritems from test_valid_docs test
  225178. .UNINDENT
  225179. .IP \(bu 2
  225180. \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)
  225181. .IP \(bu 2
  225182. \fBPR\fP \fI\%#36706\fP: (\fI\%siccrusher\fP) Add basic sanity checks for env_vars in pip.install function
  225183. @ \fI2016\-11\-11 02:47:16 UTC\fP
  225184. .INDENT 2.0
  225185. .IP \(bu 2
  225186. ee74f3116e Merge pull request \fI\%#36706\fP from siccrusher/fix_env_var_validation
  225187. .IP \(bu 2
  225188. fb27f8b69e Revert change
  225189. .IP \(bu 2
  225190. 79f3e83f8d Use fully\-qualified path for six
  225191. .IP \(bu 2
  225192. 0ca1222833 Update pip.py
  225193. .IP \(bu 2
  225194. b15de371c1 * Ensure src is python3 compatible
  225195. .IP \(bu 2
  225196. 0976a2d1ae * Before passing on the env_vars dictionary ensure all values are strings. Fixes \fI\%#36644\fP
  225197. .UNINDENT
  225198. .IP \(bu 2
  225199. \fBISSUE\fP \fI\%#37491\fP: (\fI\%JensRantil\fP) "Failed to authenticate! ..." error should exit non\-zero (refs: \fI\%#37626\fP)
  225200. .IP \(bu 2
  225201. \fBPR\fP \fI\%#37626\fP: (\fI\%cachedout\fP) Exit with proper retcode on hard client failures
  225202. @ \fI2016\-11\-11 02:38:47 UTC\fP
  225203. .INDENT 2.0
  225204. .IP \(bu 2
  225205. 902a97575e Merge pull request \fI\%#37626\fP from cachedout/issue_37491
  225206. .IP \(bu 2
  225207. bab9a729b1 Exit with proper retcode on hard client failures
  225208. .UNINDENT
  225209. .IP \(bu 2
  225210. \fBPR\fP \fI\%#37617\fP: (\fI\%terminalmage\fP) Clarify docs for git_pillar dynamic env feature
  225211. @ \fI2016\-11\-11 01:52:52 UTC\fP
  225212. .INDENT 2.0
  225213. .IP \(bu 2
  225214. 845f835177 Merge pull request \fI\%#37617\fP from terminalmage/git_pillar\-docs
  225215. .IP \(bu 2
  225216. 8cdf5dbb51 Clarify docs for git_pillar dynamic env feature
  225217. .UNINDENT
  225218. .IP \(bu 2
  225219. \fBPR\fP \fI\%#36627\fP: (\fI\%sjmh\fP) Skip rest of loop on failed func match
  225220. @ \fI2016\-11\-10 23:47:12 UTC\fP
  225221. .INDENT 2.0
  225222. .IP \(bu 2
  225223. 3079d78332 Merge pull request \fI\%#36627\fP from sjmh/fix/auth_skip_nomatch
  225224. .IP \(bu 2
  225225. b3baaf30d0 Skip rest of loop on failed func match
  225226. .UNINDENT
  225227. .IP \(bu 2
  225228. \fBPR\fP \fI\%#37600\fP: (\fI\%mcalmer\fP) change TIMEZONE on SUSE systems (bsc#1008933)
  225229. @ \fI2016\-11\-10 21:54:04 UTC\fP
  225230. .INDENT 2.0
  225231. .IP \(bu 2
  225232. a71e7c77b3 Merge pull request \fI\%#37600\fP from mcalmer/fix\-timezone\-on\-SUSE
  225233. .IP \(bu 2
  225234. 3530b542f0 change TIMEZONE on SUSE systems (bsc#1008933)
  225235. .UNINDENT
  225236. .IP \(bu 2
  225237. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225238. .IP \(bu 2
  225239. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225240. .IP \(bu 2
  225241. \fBPR\fP \fI\%#37602\fP: (\fI\%DmitryKuzmenko\fP) Handle master restart in appropriate places using \fIsalt.event\fP listener.
  225242. @ \fI2016\-11\-10 21:53:20 UTC\fP
  225243. .INDENT 2.0
  225244. .IP \(bu 2
  225245. \fBPR\fP \fI\%#37438\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fI\%#37238\fP salt hang on master restart (refs: \fI\%#37602\fP)
  225246. .IP \(bu 2
  225247. 39b75878cf Merge pull request \fI\%#37602\fP from DSRCorporation/bugs/37238_salt_hang_on_master_restart
  225248. .IP \(bu 2
  225249. d3d987b19c Handle master restart in appropriate places using \fIsalt.event\fP listener.
  225250. .UNINDENT
  225251. .IP \(bu 2
  225252. \fBPR\fP \fI\%#37608\fP: (\fI\%gtmanfred\fP) allow multiline returns from docker for mac
  225253. @ \fI2016\-11\-10 21:48:59 UTC\fP
  225254. .INDENT 2.0
  225255. .IP \(bu 2
  225256. 019e1a721b Merge pull request \fI\%#37608\fP from gtmanfred/2016.3
  225257. .IP \(bu 2
  225258. 74aee1e372 allow multiline returns from docker for mac
  225259. .UNINDENT
  225260. .IP \(bu 2
  225261. \fBISSUE\fP \fI\%#37592\fP: (\fI\%craigafinch\fP) State git.latest does not work with SSH (refs: \fI\%#37604\fP)
  225262. .IP \(bu 2
  225263. \fBISSUE\fP \fI\%#37551\fP: (\fI\%viict\fP) git.latest "Not a valid commit name" (refs: \fI\%#37604\fP, \fI\%#37571\fP)
  225264. .INDENT 2.0
  225265. .IP \(bu 2
  225266. \fBPR\fP \fI\%#37604\fP: (\fI\%terminalmage\fP) Documentation improvements and corrections
  225267. .IP \(bu 2
  225268. \fBPR\fP \fI\%#37579\fP: (\fI\%pass\-by\-value\fP) Use existing VM\(aqs VDD size if not specified in the cloud profile
  225269. .UNINDENT
  225270. .IP \(bu 2
  225271. \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)
  225272. .IP \(bu 2
  225273. \fBPR\fP \fI\%#37540\fP: (\fI\%yhekma\fP) Added prefix to tempfile for template
  225274. @ \fI2016\-11\-10 00:37:18 UTC\fP
  225275. .INDENT 2.0
  225276. .IP \(bu 2
  225277. fdd13b4145 Merge pull request \fI\%#37540\fP from yhekma/2016.3
  225278. .IP \(bu 2
  225279. 93a59f8034 Added prefix to tempfile for template
  225280. .UNINDENT
  225281. .IP \(bu 2
  225282. \fBISSUE\fP \fI\%#37084\fP: (\fI\%aaronm\-cloudtek\fP) x509.certificate_managed does not work with m2crypto >=0.25 (refs: \fI\%#37578\fP)
  225283. .INDENT 2.0
  225284. .IP \(bu 2
  225285. \fBPR\fP \fI\%#37578\fP: (\fI\%clinta\fP) Update for m2crypto changes removing lhash
  225286. .IP \(bu 2
  225287. \fBPR\fP \fI\%#37584\fP: (\fI\%clinta\fP) Fix eauth example for limiting args
  225288. .UNINDENT
  225289. .IP \(bu 2
  225290. \fBISSUE\fP \fI\%#37551\fP: (\fI\%viict\fP) git.latest "Not a valid commit name" (refs: \fI\%#37604\fP, \fI\%#37571\fP)
  225291. .INDENT 2.0
  225292. .IP \(bu 2
  225293. \fBPR\fP \fI\%#37571\fP: (\fI\%terminalmage\fP) Add a test to ensure we don\(aqt check for fast\-forward before fetching
  225294. .UNINDENT
  225295. .IP \(bu 2
  225296. \fBISSUE\fP \fI\%#33645\fP: (\fI\%ketzacoatl\fP) saltutil.sync_all does not sync custom pillar modules to masterless minions (refs: \fI\%#33833\fP)
  225297. .IP \(bu 2
  225298. \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)
  225299. .IP \(bu 2
  225300. \fBPR\fP \fI\%#37553\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37521\fP to 2016.3
  225301. @ \fI2016\-11\-08 23:11:07 UTC\fP
  225302. .INDENT 2.0
  225303. .IP \(bu 2
  225304. \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)
  225305. .IP \(bu 2
  225306. \fBPR\fP \fI\%#33833\fP: (\fI\%terminalmage\fP) Support syncing pillar modules to masterless minions (refs: \fI\%#37521\fP)
  225307. .IP \(bu 2
  225308. \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)
  225309. .IP \(bu 2
  225310. b01c247ea9 Merge pull request \fI\%#37553\fP from rallytime/bp\-37521
  225311. .IP \(bu 2
  225312. 30f92b05f4 refresh_pillar() should be called always
  225313. .IP \(bu 2
  225314. \fBPR\fP \fI\%saltstack/salt#37549\fP: (\fI\%Mrten\fP) sqlite is not found in 2015.8 (refs: \fI\%#37565\fP)
  225315. .UNINDENT
  225316. .IP \(bu 2
  225317. \fBPR\fP \fI\%#37565\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37549\fP to 2016.3
  225318. @ \fI2016\-11\-08 23:10:25 UTC\fP
  225319. .INDENT 2.0
  225320. .IP \(bu 2
  225321. \fBPR\fP \fI\%#37549\fP: (\fI\%Mrten\fP) sqlite is not found in 2015.8 (refs: \fI\%#37565\fP)
  225322. .IP \(bu 2
  225323. 694df30d40 Merge pull request \fI\%#37565\fP from rallytime/bp\-37549
  225324. .IP \(bu 2
  225325. c92a90b8e5 Update sqlite3.py
  225326. .IP \(bu 2
  225327. fb76557a2a sqlite is not found in 2015.8
  225328. .UNINDENT
  225329. .IP \(bu 2
  225330. \fBISSUE\fP \fI\%#37511\fP: (\fI\%jdelic\fP) service.dead now only operates if the service file exists (refs: \fI\%#37562\fP)
  225331. .INDENT 2.0
  225332. .IP \(bu 2
  225333. \fBPR\fP \fI\%#37562\fP: (\fI\%terminalmage\fP) Fix regression in service.dead state
  225334. .UNINDENT
  225335. .IP \(bu 2
  225336. \fBISSUE\fP \fI\%#37554\fP: (\fI\%sjmh\fP) salt\-api doesn\(aqt dynamically re\-read nodegroups configuration (refs: \fI\%#37560\fP)
  225337. .INDENT 2.0
  225338. .IP \(bu 2
  225339. \fBPR\fP \fI\%#37560\fP: (\fI\%whiteinge\fP) Skip config type checking for sdb values
  225340. .IP \(bu 2
  225341. \fBPR\fP \fI\%#37556\fP: (\fI\%rallytime\fP) Don\(aqt pass the vpc id to boto.vpc.create_internet_gateway func
  225342. .IP \(bu 2
  225343. \fBPR\fP \fI\%#37543\fP: (\fI\%multani\fP) Documentation rendering fixes
  225344. .UNINDENT
  225345. .IP \(bu 2
  225346. \fBISSUE\fP \fI\%saltstack/salt#31081\fP: (\fI\%JensRantil\fP) salt.modules.file.line documentation unclarities (refs: \fI\%#37457\fP)
  225347. .IP \(bu 2
  225348. \fBPR\fP \fI\%#37457\fP: (\fI\%rallytime\fP) Fixup file.line docs to be more clear and consistent
  225349. @ \fI2016\-11\-08 00:29:20 UTC\fP
  225350. .INDENT 2.0
  225351. .IP \(bu 2
  225352. 96b8b9a849 Merge pull request \fI\%#37457\fP from rallytime/fix\-31081
  225353. .IP \(bu 2
  225354. 25821bb8db Clarify which modes use "before", "after", and "indent" options
  225355. .IP \(bu 2
  225356. 8b2d2b9e7b Clarify file.line state docs as well
  225357. .IP \(bu 2
  225358. b2615892eb Move note about using mode=insert with location options to mode section
  225359. .IP \(bu 2
  225360. db0b0cefb8 Fixup file.line docs to be more clear and consistent
  225361. .UNINDENT
  225362. .IP \(bu 2
  225363. \fBISSUE\fP \fI\%#35799\fP: (\fI\%davegiles\fP) dsc.apply_config hangs (no error) on empty directory on target (refs: \fI\%#37526\fP)
  225364. .IP \(bu 2
  225365. \fBPR\fP \fI\%#37526\fP: (\fI\%twangboy\fP) Remove loop from dsc.apply_config
  225366. @ \fI2016\-11\-08 00:23:11 UTC\fP
  225367. .INDENT 2.0
  225368. .IP \(bu 2
  225369. 7de790ffed Merge pull request \fI\%#37526\fP from twangboy/fix_35799
  225370. .IP \(bu 2
  225371. fc4260911c Remove unnecessary format
  225372. .IP \(bu 2
  225373. c934a2bfa7 Remove the loop from apply_config
  225374. .IP \(bu 2
  225375. \fBPR\fP \fI\%saltstack/salt#37515\fP: (\fI\%rallytime\fP) [carbon] Merge forward from 2016.3 to carbon (refs: \fI\%#37534\fP)
  225376. .UNINDENT
  225377. .IP \(bu 2
  225378. \fBPR\fP \fI\%#37534\fP: (\fI\%rallytime\fP) Back\-port fix needed from \fI\%#37515\fP
  225379. @ \fI2016\-11\-08 00:14:46 UTC\fP
  225380. .INDENT 2.0
  225381. .IP \(bu 2
  225382. \fBPR\fP \fI\%#37515\fP: (\fI\%rallytime\fP) [carbon] Merge forward from 2016.3 to carbon (refs: \fI\%#37534\fP)
  225383. .IP \(bu 2
  225384. 94811df2ea Merge pull request \fI\%#37534\fP from rallytime/bp\-merge\-foward\-fix
  225385. .IP \(bu 2
  225386. d1b2af1d69 Add missing source_hash_name args to a couple funcs
  225387. .UNINDENT
  225388. .IP \(bu 2
  225389. \fBPR\fP \fI\%#37533\fP: (\fI\%whiteinge\fP) Return a 504 response instead of 500 for Salt timeouts
  225390. @ \fI2016\-11\-08 00:14:15 UTC\fP
  225391. .INDENT 2.0
  225392. .IP \(bu 2
  225393. 17adbb0c9f Merge pull request \fI\%#37533\fP from whiteinge/salt\-api\-504\-timeouts
  225394. .IP \(bu 2
  225395. 63226aeda6 Return a 504 response instead of 500 for Salt timeouts
  225396. .UNINDENT
  225397. .IP \(bu 2
  225398. \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)
  225399. .INDENT 2.0
  225400. .IP \(bu 2
  225401. \fBPR\fP \fI\%saltstack/salt#36736\fP: (\fI\%m03\fP) Fix issue 36679 win_servermanager error (refs: \fI\%#37529\fP)
  225402. .UNINDENT
  225403. .IP \(bu 2
  225404. \fBPR\fP \fI\%#37529\fP: (\fI\%lorengordon\fP) Backport: PR 36736 to 2016.3
  225405. @ \fI2016\-11\-08 00:04:10 UTC\fP
  225406. .INDENT 2.0
  225407. .IP \(bu 2
  225408. \fBPR\fP \fI\%#36736\fP: (\fI\%m03\fP) Fix issue 36679 win_servermanager error
  225409. .IP \(bu 2
  225410. a9f03eee6f Merge pull request \fI\%#37529\fP from lorengordon/bp\-36736
  225411. .IP \(bu 2
  225412. 21c2664b6a Fix issue 36679 win_servermanager failure
  225413. .UNINDENT
  225414. .IP \(bu 2
  225415. \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)
  225416. .INDENT 2.0
  225417. .IP \(bu 2
  225418. \fBPR\fP \fI\%saltstack/salt#37502\fP: (\fI\%cachedout\fP) Log proper message on returners that cannot be loaded (refs: \fI\%#37519\fP)
  225419. .UNINDENT
  225420. .IP \(bu 2
  225421. \fBPR\fP \fI\%#37519\fP: (\fI\%rallytime\fP) Update returner __virtual__() return messages for loader
  225422. @ \fI2016\-11\-07 23:06:23 UTC\fP
  225423. .INDENT 2.0
  225424. .IP \(bu 2
  225425. 19475aada6 Merge pull request \fI\%#37519\fP from rallytime/returner\-load\-errors
  225426. .IP \(bu 2
  225427. fb261a31f3 Update returner __virtual__() return messages for loader
  225428. .UNINDENT
  225429. .IP \(bu 2
  225430. \fBISSUE\fP \fI\%#35016\fP: (\fI\%pingangit\fP) TypeError: save_minions() got an unexpected keyword argument \(aqsyndic_id\(aq (refs: \fI\%#37527\fP)
  225431. .IP \(bu 2
  225432. \fBPR\fP \fI\%#37527\fP: (\fI\%rallytime\fP) Add syndic_id=None kwarg to save_minions funcs in returners
  225433. @ \fI2016\-11\-07 23:04:03 UTC\fP
  225434. .INDENT 2.0
  225435. .IP \(bu 2
  225436. fefdfab850 Merge pull request \fI\%#37527\fP from rallytime/fix\-35016
  225437. .IP \(bu 2
  225438. 2944b244aa Add syndic_id=None kwarg to save_minions funcs in returners
  225439. .IP \(bu 2
  225440. \fBPR\fP \fI\%#37530\fP: (\fI\%gtmanfred\fP) fix Lithium to 2015.5.0
  225441. .UNINDENT
  225442. .IP \(bu 2
  225443. \fBPR\fP \fI\%#37514\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225444. @ \fI2016\-11\-07 16:51:06 UTC\fP
  225445. .INDENT 2.0
  225446. .IP \(bu 2
  225447. 743164844d Merge pull request \fI\%#37514\fP from rallytime/merge\-2016.3
  225448. .IP \(bu 2
  225449. 41166aede4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225450. .IP \(bu 2
  225451. c505a059ef [2015.8] Doc version updated to 2016.3.4 (\fI\%#37482\fP)
  225452. .UNINDENT
  225453. .IP \(bu 2
  225454. \fBISSUE\fP \fI\%#36713\fP: (\fI\%Tanoti\fP) ExtraData: unpack(b) received extra data after upgrading to 2016.3.3 (refs: \fI\%#37503\fP)
  225455. .IP \(bu 2
  225456. \fBPR\fP \fI\%#37503\fP: (\fI\%cachedout\fP) Catch loader error on returners without save_load
  225457. @ \fI2016\-11\-07 09:33:57 UTC\fP
  225458. .INDENT 2.0
  225459. .IP \(bu 2
  225460. 2d924d0820 Merge pull request \fI\%#37503\fP from cachedout/issue_36713
  225461. .IP \(bu 2
  225462. 5f7f971b2c Catch loader error on returners without save_load
  225463. .UNINDENT
  225464. .IP \(bu 2
  225465. \fBISSUE\fP \fI\%#37448\fP: (\fI\%alisson276\fP) In \(aqsalt/key\(aq events there are acts that never happen (refs: \fI\%#37499\fP)
  225466. .IP \(bu 2
  225467. \fBPR\fP \fI\%#37499\fP: (\fI\%cachedout\fP) Clarify docs on salt\-key events
  225468. @ \fI2016\-11\-07 09:33:20 UTC\fP
  225469. .INDENT 2.0
  225470. .IP \(bu 2
  225471. d95bf59f97 Merge pull request \fI\%#37499\fP from cachedout/key_docs_clarify
  225472. .IP \(bu 2
  225473. 2758e74785 Clarify docs on salt\-key events
  225474. .UNINDENT
  225475. .IP \(bu 2
  225476. \fBPR\fP \fI\%#37500\fP: (\fI\%cachedout\fP) Remove unused flag
  225477. @ \fI2016\-11\-07 09:33:04 UTC\fP
  225478. .INDENT 2.0
  225479. .IP \(bu 2
  225480. 1dd1408ae6 Merge pull request \fI\%#37500\fP from cachedout/remove_include_errors
  225481. .IP \(bu 2
  225482. 6c705b11e0 Remove unused flag
  225483. .UNINDENT
  225484. .IP \(bu 2
  225485. \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)
  225486. .IP \(bu 2
  225487. \fBPR\fP \fI\%#37502\fP: (\fI\%cachedout\fP) Log proper message on returners that cannot be loaded
  225488. @ \fI2016\-11\-07 09:32:45 UTC\fP
  225489. .INDENT 2.0
  225490. .IP \(bu 2
  225491. 4b6f1ab1c4 Merge pull request \fI\%#37502\fP from cachedout/issue_37444
  225492. .IP \(bu 2
  225493. 4c5ab057ce Remove debugging
  225494. .IP \(bu 2
  225495. 17d01e4f4c Log proper message on returners that cannot be loaded
  225496. .UNINDENT
  225497. .IP \(bu 2
  225498. \fBISSUE\fP \fI\%#37389\fP: (\fI\%d101nelson\fP) Some core grains are inaccurate or incomplete for Solaris (refs: \fI\%#37472\fP)
  225499. .IP \(bu 2
  225500. \fBPR\fP \fI\%#37494\fP: (\fI\%sjorge\fP) Forgot to update os_family map in \fI\%#37472\fP
  225501. @ \fI2016\-11\-06 22:18:54 UTC\fP
  225502. .INDENT 2.0
  225503. .IP \(bu 2
  225504. \fBPR\fP \fI\%#37472\fP: (\fI\%sjorge\fP) 2016.3 solaris grains improvements (refs: \fI\%#37494\fP)
  225505. .IP \(bu 2
  225506. 2422dafd52 Merge pull request \fI\%#37494\fP from sjorge/2016.3\-osfam_map
  225507. .IP \(bu 2
  225508. 96ba545492 Forgot to update os_family map in \fI\%#37472\fP
  225509. .UNINDENT
  225510. .IP \(bu 2
  225511. \fBPR\fP \fI\%#37496\fP: (\fI\%mcalmer\fP) fix status handling in sysv init scripts
  225512. @ \fI2016\-11\-06 22:18:00 UTC\fP
  225513. .INDENT 2.0
  225514. .IP \(bu 2
  225515. 41bd8e3f52 Merge pull request \fI\%#37496\fP from mcalmer/fix\-status\-handling\-in\-sysv\-init\-scripts
  225516. .IP \(bu 2
  225517. 1fb2c4dfcf fix status handling in sysv init scripts
  225518. .UNINDENT
  225519. .IP \(bu 2
  225520. \fBPR\fP \fI\%#37497\fP: (\fI\%terminalmage\fP) Update 2016.3.5 release notes with source_hash_name explanation
  225521. @ \fI2016\-11\-06 22:17:40 UTC\fP
  225522. .INDENT 2.0
  225523. .IP \(bu 2
  225524. e741a773a5 Merge pull request \fI\%#37497\fP from terminalmage/release_notes
  225525. .IP \(bu 2
  225526. c08038d9ea Update 2016.3.5 release notes with source_hash_name explanation
  225527. .UNINDENT
  225528. .IP \(bu 2
  225529. \fBPR\fP \fI\%#37486\fP: (\fI\%twangboy\fP) Add requirement for PowerShell 3 on Windows
  225530. @ \fI2016\-11\-06 06:01:07 UTC\fP
  225531. .INDENT 2.0
  225532. .IP \(bu 2
  225533. f4426c2233 Merge pull request \fI\%#37486\fP from twangboy/fix_win_docs
  225534. .IP \(bu 2
  225535. 9e0631a1ae Add docs denoting the requirement for at least PowerShell 3
  225536. .UNINDENT
  225537. .IP \(bu 2
  225538. \fBPR\fP \fI\%#37493\fP: (\fI\%cachedout\fP) Add sdb support to minion and master configs
  225539. @ \fI2016\-11\-06 06:00:18 UTC\fP
  225540. .INDENT 2.0
  225541. .IP \(bu 2
  225542. a1f355a569 Merge pull request \fI\%#37493\fP from cachedout/minion_master_sdb
  225543. .IP \(bu 2
  225544. 9761a462c2 Add sdb support to minion and master configs
  225545. .UNINDENT
  225546. .IP \(bu 2
  225547. \fBISSUE\fP \fI\%#31135\fP: (\fI\%jeffreyctang\fP) file.line mode=replace breaks on empty file. (refs: \fI\%#37452\fP)
  225548. .IP \(bu 2
  225549. \fBPR\fP \fI\%#37452\fP: (\fI\%rallytime\fP) file.line with mode=replace on an empty file should return False, not stacktrace
  225550. @ \fI2016\-11\-06 01:55:11 UTC\fP
  225551. .INDENT 2.0
  225552. .IP \(bu 2
  225553. be93710fee Merge pull request \fI\%#37452\fP from rallytime/fix\-31135
  225554. .IP \(bu 2
  225555. c792f76d2f Bump log level from debug to warning on empty file
  225556. .IP \(bu 2
  225557. 5f181cf00d file.line with mode=replace on an empty file should return False
  225558. .IP \(bu 2
  225559. 94a00c66eb Write a unit test demonstrating stack trace in \fI\%#31135\fP
  225560. .UNINDENT
  225561. .IP \(bu 2
  225562. \fBISSUE\fP \fI\%#37001\fP: (\fI\%phil123456\fP) URGENT : archive.extracted does not work anymore (refs: \fI\%#37081\fP, #saltstack/salt\(ga#37081\(ga_)
  225563. .IP \(bu 2
  225564. \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)
  225565. .INDENT 2.0
  225566. .IP \(bu 2
  225567. \fBPR\fP \fI\%saltstack/salt#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification (refs: \fI\%#37469\fP)
  225568. .UNINDENT
  225569. .IP \(bu 2
  225570. \fBPR\fP \fI\%#37469\fP: (\fI\%terminalmage\fP) Rewrite file.extract_hash to improve its matching ability
  225571. @ \fI2016\-11\-06 01:50:01 UTC\fP
  225572. .INDENT 2.0
  225573. .IP \(bu 2
  225574. \fBPR\fP \fI\%#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification (refs: \fI\%#37469\fP)
  225575. .IP \(bu 2
  225576. 129b0387e6 Merge pull request \fI\%#37469\fP from terminalmage/issue29010
  225577. .IP \(bu 2
  225578. a3f38e5a9f Update file.extract_hash unit tests
  225579. .IP \(bu 2
  225580. b26b528f79 Add the source_hash_name param to file.managed states
  225581. .IP \(bu 2
  225582. 52fe72d402 Rewrite file.extract_hash
  225583. .UNINDENT
  225584. .IP \(bu 2
  225585. \fBISSUE\fP \fI\%#37389\fP: (\fI\%d101nelson\fP) Some core grains are inaccurate or incomplete for Solaris (refs: \fI\%#37472\fP)
  225586. .IP \(bu 2
  225587. \fBPR\fP \fI\%#37472\fP: (\fI\%sjorge\fP) 2016.3 solaris grains improvements (refs: \fI\%#37494\fP)
  225588. @ \fI2016\-11\-06 01:46:10 UTC\fP
  225589. .INDENT 2.0
  225590. .IP \(bu 2
  225591. 9426b9d5c4 Merge pull request \fI\%#37472\fP from sjorge/2016.3\-solaris\-grains
  225592. .IP \(bu 2
  225593. 2958f5ce52 detect and properly handle OmniOS
  225594. .IP \(bu 2
  225595. 37c3a7f5ab handle Oracle Solaris better
  225596. .IP \(bu 2
  225597. 69706d32be parse minorrelease if it has a / in it
  225598. .IP \(bu 2
  225599. d1cf4a0e56 improve regex for parsing /etc/release using files from Solaris 8 SPARC and Solaris 10
  225600. .IP \(bu 2
  225601. 88eddef765 some more cleanup for smartos
  225602. .IP \(bu 2
  225603. d3ff39f09c improve smartos os version grains
  225604. .UNINDENT
  225605. .IP \(bu 2
  225606. \fBPR\fP \fI\%#37478\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225607. @ \fI2016\-11\-04 20:30:08 UTC\fP
  225608. .INDENT 2.0
  225609. .IP \(bu 2
  225610. 4ba63aba48 Merge pull request \fI\%#37478\fP from rallytime/merge\-2016.3
  225611. .IP \(bu 2
  225612. 3483a445f2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225613. .INDENT 2.0
  225614. .IP \(bu 2
  225615. 35888c2e30 Merge pull request \fI\%#37408\fP from terminalmage/issue37286
  225616. .INDENT 2.0
  225617. .IP \(bu 2
  225618. 4e4a05731e Strip slashes from gitfs mountpoints
  225619. .UNINDENT
  225620. .IP \(bu 2
  225621. b6c57c6c8d Merge pull request \fI\%#37418\fP from terminalmage/issue36849
  225622. .INDENT 2.0
  225623. .IP \(bu 2
  225624. 740bc54239 Do not use compression in tornado httpclient requests
  225625. .UNINDENT
  225626. .IP \(bu 2
  225627. 7fba8aaa7e Merge pull request \fI\%#37441\fP from rallytime/bp\-37428
  225628. .INDENT 2.0
  225629. .IP \(bu 2
  225630. 6fe3ef49de Fix incorrect reference of __utils__ in salt.utils
  225631. .UNINDENT
  225632. .UNINDENT
  225633. .IP \(bu 2
  225634. \fBPR\fP \fI\%#37485\fP: (\fI\%rallytime\fP) Get release notes started for 2016.3.5
  225635. .IP \(bu 2
  225636. \fBPR\fP \fI\%#37483\fP: (\fI\%rallytime\fP) [2016.3] Doc version updated to 2016.3.4
  225637. .UNINDENT
  225638. .IP \(bu 2
  225639. \fBISSUE\fP \fI\%#37123\fP: (\fI\%nevins\-b\fP) file.recurse state doesn\(aqt support pulling from other environments (refs: \fI\%#37121\fP)
  225640. .IP \(bu 2
  225641. \fBPR\fP \fI\%#37121\fP: (\fI\%nevins\-b\fP) allow the file.recurse state to support saltenv
  225642. @ \fI2016\-11\-04 05:59:28 UTC\fP
  225643. .INDENT 2.0
  225644. .IP \(bu 2
  225645. 580eca709b Merge pull request \fI\%#37121\fP from nevins\-b/2016.3
  225646. .IP \(bu 2
  225647. 99d2c360ed making messaging in tests match new return
  225648. .IP \(bu 2
  225649. bc4b0e7cda adding test for saltenv in file.recurse source url
  225650. .IP \(bu 2
  225651. 3315b67075 fixing saltenv if not set in url
  225652. .IP \(bu 2
  225653. a9683cbbd8 allow the file.recurse state to support saltenv (salt://example/dir?saltenv=dev)
  225654. .UNINDENT
  225655. .IP \(bu 2
  225656. \fBPR\fP \fI\%#37426\fP: (\fI\%jfindlay\fP) Wait for macOS to change system settings
  225657. @ \fI2016\-11\-04 04:35:52 UTC\fP
  225658. .INDENT 2.0
  225659. .IP \(bu 2
  225660. \fBPR\fP \fI\%#37351\fP: (\fI\%jfindlay\fP) modules.mac_power: give macOS time to change setting (refs: \fI\%#37426\fP)
  225661. .IP \(bu 2
  225662. 766b1437c2 Merge pull request \fI\%#37426\fP from jfindlay/mac_sleep
  225663. .IP \(bu 2
  225664. 43a8e199bf modules.mac_power: wait for system to make change
  225665. .IP \(bu 2
  225666. feabca6e0b modules.mac_system: wait for system to make change
  225667. .IP \(bu 2
  225668. 0213eb9a07 utils.mac_utils: add confirm_updated
  225669. .UNINDENT
  225670. .IP \(bu 2
  225671. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225672. .IP \(bu 2
  225673. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225674. .IP \(bu 2
  225675. \fBPR\fP \fI\%#37438\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fI\%#37238\fP salt hang on master restart (refs: \fI\%#37602\fP)
  225676. @ \fI2016\-11\-04 04:10:51 UTC\fP
  225677. .INDENT 2.0
  225678. .IP \(bu 2
  225679. 9eab5c8f71 Merge pull request \fI\%#37438\fP from DSRCorporation/bugs/37238_salt_hang_on_master_restart
  225680. .IP \(bu 2
  225681. f253d3ce4a Auto reconnect \fIsalt\fP to master if the connection was lost.
  225682. .IP \(bu 2
  225683. \fBPR\fP \fI\%saltstack/salt#31207\fP: (\fI\%thusoy\fP) Remove error logging of missing boto libraries (refs: \fI\%#37440\fP)
  225684. .UNINDENT
  225685. .IP \(bu 2
  225686. \fBPR\fP \fI\%#37440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31207\fP to 2016.3
  225687. @ \fI2016\-11\-04 04:09:33 UTC\fP
  225688. .INDENT 2.0
  225689. .IP \(bu 2
  225690. \fBPR\fP \fI\%#31207\fP: (\fI\%thusoy\fP) Remove error logging of missing boto libraries (refs: \fI\%#37440\fP)
  225691. .IP \(bu 2
  225692. 9aa7073f70 Merge pull request \fI\%#37440\fP from rallytime/bp\-31207
  225693. .IP \(bu 2
  225694. c71ae61271 Remove error logging of missing boto libraries
  225695. .UNINDENT
  225696. .IP \(bu 2
  225697. \fBPR\fP \fI\%#37442\fP: (\fI\%twangboy\fP) Create paths.d directory
  225698. @ \fI2016\-11\-04 04:07:19 UTC\fP
  225699. .INDENT 2.0
  225700. .IP \(bu 2
  225701. edbfadca21 Merge pull request \fI\%#37442\fP from twangboy/fix_osx_postinstall
  225702. .IP \(bu 2
  225703. 8091a3065e Create paths.d directory
  225704. .UNINDENT
  225705. .IP \(bu 2
  225706. \fBPR\fP \fI\%#37445\fP: (\fI\%twangboy\fP) Check for Server os before checking [DO NOT MERGE FORWARD]
  225707. @ \fI2016\-11\-04 04:04:49 UTC\fP
  225708. .INDENT 2.0
  225709. .IP \(bu 2
  225710. afb1b3cee5 Merge pull request \fI\%#37445\fP from twangboy/fix_import_error_2016.3
  225711. .IP \(bu 2
  225712. c0d5ebdd8a Check for Server os before checking
  225713. .UNINDENT
  225714. .IP \(bu 2
  225715. \fBPR\fP \fI\%#37446\fP: (\fI\%twangboy\fP) Detect VC++ for Python on Win32
  225716. @ \fI2016\-11\-04 04:04:02 UTC\fP
  225717. .INDENT 2.0
  225718. .IP \(bu 2
  225719. 7a9f95ab3b Merge pull request \fI\%#37446\fP from twangboy/fix_build_32
  225720. .IP \(bu 2
  225721. 2de69f48f8 Detect VC for Python correctly on 32bit Windows
  225722. .UNINDENT
  225723. .IP \(bu 2
  225724. \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)
  225725. .IP \(bu 2
  225726. \fBPR\fP \fI\%#37447\fP: (\fI\%rallytime\fP) Cast ip_protocol rule as a str() in boto_secgroup.present
  225727. @ \fI2016\-11\-04 04:03:45 UTC\fP
  225728. .INDENT 2.0
  225729. .IP \(bu 2
  225730. 651e0f728f Merge pull request \fI\%#37447\fP from rallytime/fix\-36961
  225731. .IP \(bu 2
  225732. 6b930ac7aa Cast ip_protocol rule as a str() in boto_secgroup.present
  225733. .UNINDENT
  225734. .IP \(bu 2
  225735. \fBISSUE\fP \fI\%#36446\fP: (\fI\%whiteinge\fP) Custom salt\-api config problem (refs: \fI\%#37455\fP)
  225736. .INDENT 2.0
  225737. .IP \(bu 2
  225738. \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)
  225739. .UNINDENT
  225740. .IP \(bu 2
  225741. \fBPR\fP \fI\%#37455\fP: (\fI\%techhat\fP) Make api opts respect correct root_dir
  225742. @ \fI2016\-11\-04 03:25:40 UTC\fP
  225743. .INDENT 2.0
  225744. .IP \(bu 2
  225745. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: #\(gasaltstack/salt#36386\(ga_)
  225746. .IP \(bu 2
  225747. a51d944c7c Merge pull request \fI\%#37455\fP from techhat/issue36446
  225748. .IP \(bu 2
  225749. 7eff90d61d Make api opts respect correct root_dir
  225750. .UNINDENT
  225751. .IP \(bu 2
  225752. \fBPR\fP \fI\%#37459\fP: (\fI\%twangboy\fP) Fix error message when ConvertTo\-Json not supported [DO NOT MERGE FORWARD]
  225753. @ \fI2016\-11\-04 03:22:31 UTC\fP
  225754. .INDENT 2.0
  225755. .IP \(bu 2
  225756. 3591bf0f58 Merge pull request \fI\%#37459\fP from twangboy/fix_dsc_json_msg_2016.3
  225757. .IP \(bu 2
  225758. 949b70913d Use cmd.run_all instead of cmd.shell
  225759. .UNINDENT
  225760. .IP \(bu 2
  225761. \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)
  225762. @ \fI2016\-11\-03 14:35:46 UTC\fP
  225763. .INDENT 2.0
  225764. .IP \(bu 2
  225765. \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)
  225766. .IP \(bu 2
  225767. 80a99c4cc5 Merge pull request \fI\%#37430\fP from meaksh/zypper\-dist\-upgrade\-debug\-solver\-fix\-2016.3
  225768. .IP \(bu 2
  225769. ffc596f215 Including resolver params for Zypper debug\-solver
  225770. .UNINDENT
  225771. .IP \(bu 2
  225772. \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)
  225773. .INDENT 2.0
  225774. .IP \(bu 2
  225775. \fBPR\fP \fI\%#37428\fP: (\fI\%cachedout\fP) Fix incorrect reference of __utils__ in salt.utils (refs: \fI\%#37441\fP)
  225776. .UNINDENT
  225777. .IP \(bu 2
  225778. \fBPR\fP \fI\%#37419\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225779. @ \fI2016\-11\-02 21:40:04 UTC\fP
  225780. .INDENT 2.0
  225781. .IP \(bu 2
  225782. 7864f9b79d Merge pull request \fI\%#37419\fP from rallytime/merge\-2016.3
  225783. .IP \(bu 2
  225784. bce47c9175 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225785. .INDENT 2.0
  225786. .IP \(bu 2
  225787. 7b1d3b5562 Merge pull request \fI\%#37392\fP from rallytime/bp\-33190
  225788. .IP \(bu 2
  225789. 4063bae5de catch None cases for comments in jboss7 state module
  225790. .UNINDENT
  225791. .IP \(bu 2
  225792. \fBPR\fP \fI\%#37416\fP: (\fI\%terminalmage\fP) Fix regression in output for Ctrl\-c\(aqed CLI jobs
  225793. .IP \(bu 2
  225794. \fBPR\fP \fI\%#37414\fP: (\fI\%pass\-by\-value\fP) Add unit tests for cloning from snapshot
  225795. .IP \(bu 2
  225796. \fBPR\fP \fI\%#37350\fP: (\fI\%pass\-by\-value\fP) Add handling for full and linked clone (refs: \fI\%#37414\fP)
  225797. .IP \(bu 2
  225798. \fBPR\fP \fI\%saltstack/salt#37401\fP: (\fI\%cachedout\fP) Bootstrap delay option for salt\-cloud (refs: \fI\%#37404\fP)
  225799. .UNINDENT
  225800. .IP \(bu 2
  225801. \fBPR\fP \fI\%#37404\fP: (\fI\%cachedout\fP) Revert "Bootstrap delay option for salt\-cloud"
  225802. @ \fI2016\-11\-02 09:48:53 UTC\fP
  225803. .INDENT 2.0
  225804. .IP \(bu 2
  225805. ecd794a233 Merge pull request \fI\%#37404\fP from saltstack/revert\-37401\-bootstrap_delay
  225806. .IP \(bu 2
  225807. e864de8f03 Revert "Bootstrap delay option for salt\-cloud"
  225808. .UNINDENT
  225809. .IP \(bu 2
  225810. \fBPR\fP \fI\%#37401\fP: (\fI\%cachedout\fP) Bootstrap delay option for salt\-cloud
  225811. @ \fI2016\-11\-02 09:02:13 UTC\fP
  225812. .INDENT 2.0
  225813. .IP \(bu 2
  225814. 2eb44fbd11 Merge pull request \fI\%#37401\fP from cachedout/bootstrap_delay
  225815. .IP \(bu 2
  225816. 6e42b0e157 Bootstrap delay option for salt\-cloud
  225817. .UNINDENT
  225818. .IP \(bu 2
  225819. \fBPR\fP \fI\%#37350\fP: (\fI\%pass\-by\-value\fP) Add handling for full and linked clone (refs: \fI\%#37414\fP)
  225820. @ \fI2016\-11\-02 08:02:29 UTC\fP
  225821. .INDENT 2.0
  225822. .IP \(bu 2
  225823. 9446e48da0 Merge pull request \fI\%#37350\fP from pass\-by\-value/full_and_linked_clone_v1
  225824. .IP \(bu 2
  225825. d8b1c9c777 Add handling for full and linked clone and commit disk mode additions
  225826. .UNINDENT
  225827. .IP \(bu 2
  225828. \fBISSUE\fP \fI\%#34841\fP: (\fI\%Ch3LL\fP) Wrong return when using \fIuser.chgroups\fP on windows (refs: \fI\%#37386\fP)
  225829. .IP \(bu 2
  225830. \fBPR\fP \fI\%#37386\fP: (\fI\%rallytime\fP) Fix win_useradd.chgroups return when cmd.run_all retcode != 0
  225831. @ \fI2016\-11\-02 06:34:12 UTC\fP
  225832. .INDENT 2.0
  225833. .IP \(bu 2
  225834. c7f4d7f76a Merge pull request \fI\%#37386\fP from rallytime/fix\-34841
  225835. .IP \(bu 2
  225836. c70492a1fe Fix win_useradd.chgroups return when cmd.run_all retcode != 0
  225837. .UNINDENT
  225838. .IP \(bu 2
  225839. \fBISSUE\fP \fI\%#34263\fP: (\fI\%vernondcole\fP) Use of dnsmasq.set_config injects unintentional text into the configuration file. (refs: \fI\%#37390\fP)
  225840. .IP \(bu 2
  225841. \fBPR\fP \fI\%#37390\fP: (\fI\%rallytime\fP) Don\(aqt insert __pub* keys into dnsmasq config file with set_config function
  225842. @ \fI2016\-11\-02 06:31:53 UTC\fP
  225843. .INDENT 2.0
  225844. .IP \(bu 2
  225845. 34b6c6459a Merge pull request \fI\%#37390\fP from rallytime/fix\-34263
  225846. .IP \(bu 2
  225847. e082ff538b Fix failing test now that we\(aqre raising a CommandExecutionError
  225848. .IP \(bu 2
  225849. c6a3476abb Filter out the __pub keys passed via **kwargs for dnsmasq.set_config
  225850. .IP \(bu 2
  225851. fd380c79b9 Add test case to reproduce dnsmasq.set_config failure in \fI\%#34263\fP
  225852. .UNINDENT
  225853. .IP \(bu 2
  225854. \fBISSUE\fP \fI\%#35163\fP: (\fI\%SolarisYan\fP) salt file.mkdir (refs: \fI\%#35287\fP, \fI\%#35189\fP)
  225855. .IP \(bu 2
  225856. \fBPR\fP \fI\%#37391\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35287\fP to 2016.3
  225857. @ \fI2016\-11\-02 06:18:26 UTC\fP
  225858. .INDENT 2.0
  225859. .IP \(bu 2
  225860. \fBPR\fP \fI\%#35287\fP: (\fI\%dere\fP) 2016.3 (refs: \fI\%#37391\fP)
  225861. .IP \(bu 2
  225862. \fBPR\fP \fI\%#35189\fP: (\fI\%dere\fP) return value for file.mkdir instead of None (refs: \fI\%#35287\fP)
  225863. .IP \(bu 2
  225864. 798b2acbe3 Merge pull request \fI\%#37391\fP from rallytime/bp\-35287
  225865. .IP \(bu 2
  225866. 0e1ebea5a4 Simplify return value to "True".
  225867. .IP \(bu 2
  225868. 13022c5cc4 return value for mkdir instead of None
  225869. .UNINDENT
  225870. .IP \(bu 2
  225871. \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)
  225872. .IP \(bu 2
  225873. \fBPR\fP \fI\%#37279\fP: (\fI\%gtmanfred\fP) initialize super class of NamespacedDictWrapper
  225874. @ \fI2016\-11\-01 15:12:49 UTC\fP
  225875. .INDENT 2.0
  225876. .IP \(bu 2
  225877. 1a4833b3a1 Merge pull request \fI\%#37279\fP from gtmanfred/2016.3
  225878. .IP \(bu 2
  225879. 597f346d57 initialize super class of NamespacedDictWrapper
  225880. .UNINDENT
  225881. .IP \(bu 2
  225882. \fBPR\fP \fI\%#37351\fP: (\fI\%jfindlay\fP) modules.mac_power: give macOS time to change setting (refs: \fI\%#37426\fP)
  225883. @ \fI2016\-10\-31 19:15:40 UTC\fP
  225884. .INDENT 2.0
  225885. .IP \(bu 2
  225886. 351175931c Merge pull request \fI\%#37351\fP from jfindlay/mac_set
  225887. .IP \(bu 2
  225888. 0c58056d84 modules.mac_power: give macOS time to change setting
  225889. .UNINDENT
  225890. .IP \(bu 2
  225891. \fBPR\fP \fI\%#37340\fP: (\fI\%cachedout\fP) SIGILL \-> SIGKILL in process test
  225892. @ \fI2016\-10\-31 08:50:10 UTC\fP
  225893. .INDENT 2.0
  225894. .IP \(bu 2
  225895. 25c987e33a Merge pull request \fI\%#37340\fP from cachedout/ill_kill_3
  225896. .IP \(bu 2
  225897. a6b7417fe9 SIGILL \-> SIGKILL in process test
  225898. .UNINDENT
  225899. .IP \(bu 2
  225900. \fBISSUE\fP \fI\%#35480\fP: (\fI\%jelenak\fP) 200 processes of salt\-master (2016.3.2) (refs: \fI\%#37306\fP)
  225901. .IP \(bu 2
  225902. \fBPR\fP \fI\%#37306\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt use os.wait() on subprocesses managed by \fImultiprocessing\fP\&.
  225903. @ \fI2016\-10\-31 06:55:30 UTC\fP
  225904. .INDENT 2.0
  225905. .IP \(bu 2
  225906. 7f1654894d Merge pull request \fI\%#37306\fP from DSRCorporation/bugs/35480_master_shutdown_no_process_error
  225907. .IP \(bu 2
  225908. b6937ebaa8 Don\(aqt use os.wait() on subprocesses managed by \fImultiprocessing\fP\&.
  225909. .UNINDENT
  225910. .IP \(bu 2
  225911. \fBISSUE\fP \fI\%#34998\fP: (\fI\%exowaucka\fP) placementgroup parameter for salt\-cloud is undocumented (refs: \fI\%#37314\fP)
  225912. .IP \(bu 2
  225913. \fBPR\fP \fI\%#37314\fP: (\fI\%rallytime\fP) Document the existence of placementgroup option in ec2 driver
  225914. @ \fI2016\-10\-31 06:42:33 UTC\fP
  225915. .INDENT 2.0
  225916. .IP \(bu 2
  225917. bf8ba97d54 Merge pull request \fI\%#37314\fP from rallytime/fix\-34998
  225918. .IP \(bu 2
  225919. 39459ed30b Document the existence of placementgroup option in ec2 driver
  225920. .UNINDENT
  225921. .IP \(bu 2
  225922. \fBISSUE\fP \fI\%#36148\fP: (\fI\%alex\-zel\fP) Eauth error with openLDAP groups (refs: \fI\%#37219\fP)
  225923. .IP \(bu 2
  225924. \fBPR\fP \fI\%#37219\fP: (\fI\%alex\-zel\fP) Fix freeipa ldap groups
  225925. @ \fI2016\-10\-28 04:33:37 UTC\fP
  225926. .INDENT 2.0
  225927. .IP \(bu 2
  225928. e0baf4b193 Merge pull request \fI\%#37219\fP from alex\-zel/fix\-freeipa\-ldap\-groups
  225929. .IP \(bu 2
  225930. b5b2e7e097 Remove trailing whitespaces
  225931. .IP \(bu 2
  225932. 32f906b020 Add support for FreeIPA
  225933. .UNINDENT
  225934. .UNINDENT
  225935. .SS Salt 2016.3.6 Release Notes
  225936. .sp
  225937. Version 2016.3.6 is a bugfix release for 2016.3.0\&.
  225938. .SS Statistics
  225939. .INDENT 0.0
  225940. .IP \(bu 2
  225941. Total Merges: \fB119\fP
  225942. .IP \(bu 2
  225943. Total Issue References: \fB52\fP
  225944. .IP \(bu 2
  225945. Total PR References: \fB163\fP
  225946. .IP \(bu 2
  225947. 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)
  225948. .UNINDENT
  225949. .SS Security Fix
  225950. .sp
  225951. \fBCVE\-2017\-7893\fP Compromised salt\-minions can impersonate the salt\-master.
  225952. (Discovery credit: Frank Spierings)
  225953. .SS Changelog for v2016.3.5..v2016.3.6
  225954. .sp
  225955. \fIGenerated at: 2018\-05\-27 13:45:07 UTC\fP
  225956. .INDENT 0.0
  225957. .IP \(bu 2
  225958. \fBPR\fP \fI\%#40232\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.6
  225959. @ \fI2017\-03\-22 21:09:35 UTC\fP
  225960. .INDENT 2.0
  225961. .IP \(bu 2
  225962. 24c4ae9c21 Merge pull request \fI\%#40232\fP from rallytime/update\-release\-notes
  225963. .IP \(bu 2
  225964. 2ead188b4f Update release notes for 2016.3.6
  225965. .UNINDENT
  225966. .IP \(bu 2
  225967. \fBISSUE\fP \fI\%#39854\fP: (\fI\%Foxlik\fP) quoted space in authorized_keys confuses ssh.py (refs: \fI\%#39855\fP)
  225968. .IP \(bu 2
  225969. \fBPR\fP \fI\%#39855\fP: (\fI\%Foxlik\fP) Use regular expression instead of split when replacing authorized_keys
  225970. @ \fI2017\-03\-22 18:28:32 UTC\fP
  225971. .INDENT 2.0
  225972. .IP \(bu 2
  225973. c59ae9a82c Merge pull request \fI\%#39855\fP from Foxlik/use_regex_to_compare_authorized_keys
  225974. .IP \(bu 2
  225975. d46845a5b6 Add newline at end of file
  225976. .IP \(bu 2
  225977. d4a3c8a66a Use regular expression instead of split when replacing authorized_keys
  225978. .UNINDENT
  225979. .IP \(bu 2
  225980. \fBPR\fP \fI\%#40221\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39179\fP to 2016.3
  225981. @ \fI2017\-03\-22 17:40:34 UTC\fP
  225982. .INDENT 2.0
  225983. .IP \(bu 2
  225984. \fBPR\fP \fI\%#39179\fP: (\fI\%mcalmer\fP) fix error parsing (refs: \fI\%#40221\fP)
  225985. .IP \(bu 2
  225986. fd10430018 Merge pull request \fI\%#40221\fP from rallytime/bp\-39179
  225987. .IP \(bu 2
  225988. 07dc2de084 fix error parsing
  225989. .UNINDENT
  225990. .IP \(bu 2
  225991. \fBISSUE\fP \fI\%#40203\fP: (\fI\%frogunder\fP) 2016.3.6. Minion don\(aqt connect to older master. (refs: \fI\%#40206\fP)
  225992. .IP \(bu 2
  225993. \fBPR\fP \fI\%#40206\fP: (\fI\%cro\fP) Leave sign_pub_messages off by default.
  225994. @ \fI2017\-03\-22 16:43:03 UTC\fP
  225995. .INDENT 2.0
  225996. .IP \(bu 2
  225997. a27a2cc3bb Merge pull request \fI\%#40206\fP from cro/sign_pub_take2
  225998. .IP \(bu 2
  225999. 01048de83f leave sign_pub_messages off on minion by default.
  226000. .IP \(bu 2
  226001. a82b005507 Leave sign_pub_messages off by default.
  226002. .UNINDENT
  226003. .IP \(bu 2
  226004. \fBPR\fP \fI\%#40193\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40117\fP to 2016.3
  226005. @ \fI2017\-03\-22 16:42:21 UTC\fP
  226006. .INDENT 2.0
  226007. .IP \(bu 2
  226008. \fBPR\fP \fI\%#40117\fP: (\fI\%narendraingale2\fP) Fix force remove (refs: \fI\%#40193\fP)
  226009. .IP \(bu 2
  226010. d1abb4cbaa Merge pull request \fI\%#40193\fP from rallytime/bp\-40117
  226011. .IP \(bu 2
  226012. cf1857904b More optimization.
  226013. .IP \(bu 2
  226014. 5a08266814 Removed debug statemnt
  226015. .IP \(bu 2
  226016. f557f7c6bb Added fix for issue 39393
  226017. .IP \(bu 2
  226018. bb62278b73 Reverting changes.
  226019. .IP \(bu 2
  226020. a9107cde44 Added if condition for broken link.
  226021. .UNINDENT
  226022. .IP \(bu 2
  226023. \fBPR\fP \fI\%#40196\fP: (\fI\%twangboy\fP) Update dependencies for PyOpenSSL
  226024. @ \fI2017\-03\-22 16:40:46 UTC\fP
  226025. .INDENT 2.0
  226026. .IP \(bu 2
  226027. 0f1ff4d4a8 Merge pull request \fI\%#40196\fP from twangboy/win_fix_deps
  226028. .IP \(bu 2
  226029. 6761527793 Update dependencies for PyOpenSSL
  226030. .UNINDENT
  226031. .IP \(bu 2
  226032. \fBPR\fP \fI\%#40184\fP: (\fI\%terminalmage\fP) Link to minion start reactor example from FAQ.
  226033. @ \fI2017\-03\-21 17:33:09 UTC\fP
  226034. .INDENT 2.0
  226035. .IP \(bu 2
  226036. b0501515cb Merge pull request \fI\%#40184\fP from terminalmage/link\-reactor\-example
  226037. .IP \(bu 2
  226038. a42be82993 Link to minion start reactor example from FAQ.
  226039. .UNINDENT
  226040. .IP \(bu 2
  226041. \fBPR\fP \fI\%#40182\fP: (\fI\%terminalmage\fP) Add support for "stopped" state to dockerng\(aqs mod_watch
  226042. @ \fI2017\-03\-21 15:40:29 UTC\fP
  226043. .INDENT 2.0
  226044. .IP \(bu 2
  226045. d4e6c58526 Merge pull request \fI\%#40182\fP from terminalmage/dockerng\-mod_watch\-stopped
  226046. .IP \(bu 2
  226047. 4629a26fb7 Add support for "stopped" state to dockerng\(aqs mod_watch
  226048. .UNINDENT
  226049. .IP \(bu 2
  226050. \fBPR\fP \fI\%#40171\fP: (\fI\%Ch3LL\fP) additional PRs/issues for 2016.3.6 release notes
  226051. @ \fI2017\-03\-20 22:14:17 UTC\fP
  226052. .INDENT 2.0
  226053. .IP \(bu 2
  226054. a0b4082484 Merge pull request \fI\%#40171\fP from Ch3LL/2016.3.6_release
  226055. .IP \(bu 2
  226056. 9c6d8d892f additional PRs/issues for 2016.3.6 release notes
  226057. .UNINDENT
  226058. .IP \(bu 2
  226059. \fBPR\fP \fI\%#40120\fP: (\fI\%sergeizv\fP) gce: Exclude GCENodeDriver objects from _expand_node result
  226060. @ \fI2017\-03\-20 21:44:42 UTC\fP
  226061. .INDENT 2.0
  226062. .IP \(bu 2
  226063. 33ba7821f7 Merge pull request \fI\%#40120\fP from sergeizv/gce\-expand\-node\-fix
  226064. .IP \(bu 2
  226065. 9d0fbe7e01 gce: Exclude GCENodeDriver objects from _expand_node result
  226066. .UNINDENT
  226067. .IP \(bu 2
  226068. \fBPR\fP \fI\%#40122\fP: (\fI\%meaksh\fP) Adding "pkg.install downloadonly=True" support to yum/dnf execution module
  226069. @ \fI2017\-03\-20 21:44:15 UTC\fP
  226070. .INDENT 2.0
  226071. .IP \(bu 2
  226072. 48843977c3 Merge pull request \fI\%#40122\fP from meaksh/2016.3\-yum\-downloadonly\-support
  226073. .IP \(bu 2
  226074. 067f3f77c2 Adding downloadonly support to yum/dnf module
  226075. .UNINDENT
  226076. .IP \(bu 2
  226077. \fBPR\fP \fI\%#40159\fP: (\fI\%cro\fP) Turn on sign_pub_messages by default.
  226078. @ \fI2017\-03\-20 21:00:49 UTC\fP
  226079. .INDENT 2.0
  226080. .IP \(bu 2
  226081. 60e1d4e2f3 Merge pull request \fI\%#40159\fP from cro/sign_pub
  226082. .IP \(bu 2
  226083. e663b761fb Fix small syntax error
  226084. .IP \(bu 2
  226085. 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.
  226086. .UNINDENT
  226087. .IP \(bu 2
  226088. \fBPR\fP \fI\%#40123\fP: (\fI\%twangboy\fP) Adds support for inet_pton in Windows to network util
  226089. @ \fI2017\-03\-20 16:25:47 UTC\fP
  226090. .INDENT 2.0
  226091. .IP \(bu 2
  226092. 28e4fc17b6 Merge pull request \fI\%#40123\fP from twangboy/win_fix_network
  226093. .IP \(bu 2
  226094. 06dfd55ef9 Adds support for inet_pton in Windows to network util
  226095. .UNINDENT
  226096. .IP \(bu 2
  226097. \fBISSUE\fP \fI\%#39995\fP: (\fI\%frogunder\fP) Head of Develop \- Multimaster error (refs: \fI\%#40141\fP)
  226098. .IP \(bu 2
  226099. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226100. .IP \(bu 2
  226101. \fBPR\fP \fI\%#40141\fP: (\fI\%bobrik\fP) Use the first address if cannot connect to any
  226102. @ \fI2017\-03\-20 15:06:57 UTC\fP
  226103. .INDENT 2.0
  226104. .IP \(bu 2
  226105. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  226106. .IP \(bu 2
  226107. 35ddb79f59 Merge pull request \fI\%#40141\fP from bobrik/fallback\-resolve
  226108. .IP \(bu 2
  226109. af1545deed Use the first address if cannot connect to any
  226110. .UNINDENT
  226111. .IP \(bu 2
  226112. \fBPR\fP \fI\%#40059\fP: (\fI\%terminalmage\fP) Fix traceback when virtualenv.managed is invoked with nonexistant user
  226113. @ \fI2017\-03\-16 20:46:43 UTC\fP
  226114. .INDENT 2.0
  226115. .IP \(bu 2
  226116. 116201f345 Merge pull request \fI\%#40059\fP from terminalmage/fix\-virtualenv\-traceback
  226117. .IP \(bu 2
  226118. e3cfd29d6b Fix traceback when virtualenv.managed is invoked with nonexistant user
  226119. .UNINDENT
  226120. .IP \(bu 2
  226121. \fBPR\fP \fI\%#40090\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40056\fP to 2016.3
  226122. @ \fI2017\-03\-16 19:42:58 UTC\fP
  226123. .INDENT 2.0
  226124. .IP \(bu 2
  226125. \fBPR\fP \fI\%#40056\fP: (\fI\%thatch45\fP) update mention bot blacklist (refs: \fI\%#40090\fP)
  226126. .IP \(bu 2
  226127. a01b52b9a3 Merge pull request \fI\%#40090\fP from rallytime/bp\-40056
  226128. .IP \(bu 2
  226129. ae012db87a update mention bot blacklist
  226130. .UNINDENT
  226131. .IP \(bu 2
  226132. \fBPR\fP \fI\%#40057\fP: (\fI\%cachedout\fP) More mentionbot blacklists
  226133. @ \fI2017\-03\-16 18:10:11 UTC\fP
  226134. .INDENT 2.0
  226135. .IP \(bu 2
  226136. d1570bba4c Merge pull request \fI\%#40057\fP from cachedout/ollie_blacklist
  226137. .IP \(bu 2
  226138. 0ac2e83d37 Merge branch \(aq2016.3\(aq into ollie_blacklist
  226139. .UNINDENT
  226140. .IP \(bu 2
  226141. \fBPR\fP \fI\%#40070\fP: (\fI\%Ch3LL\fP) update 2016.3.6 release notes with additional PR\(aqs
  226142. @ \fI2017\-03\-16 15:43:22 UTC\fP
  226143. .INDENT 2.0
  226144. .IP \(bu 2
  226145. d36bdb1a6e Merge pull request \fI\%#40070\fP from Ch3LL/2016.3.6_release
  226146. .IP \(bu 2
  226147. a1f8b49bd1 update 2016.3.6 release notes with additional PR\(aqs
  226148. .UNINDENT
  226149. .IP \(bu 2
  226150. \fBPR\fP \fI\%#40018\fP: (\fI\%meaksh\fP) Allows overriding \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqmanage.up\(aq runner call
  226151. @ \fI2017\-03\-15 19:43:01 UTC\fP
  226152. .INDENT 2.0
  226153. .IP \(bu 2
  226154. 8dcffc7751 Merge pull request \fI\%#40018\fP from meaksh/2016.3\-handling\-timeouts\-for\-manage.up\-runner
  226155. .IP \(bu 2
  226156. 9f5c3b7dcd Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  226157. .IP \(bu 2
  226158. 2102d9c75c Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  226159. .UNINDENT
  226160. .IP \(bu 2
  226161. \fBPR\fP \fI\%#40038\fP: (\fI\%velom\fP) correctly parse "pkg_name===version" from pip freeze
  226162. @ \fI2017\-03\-15 19:30:03 UTC\fP
  226163. .INDENT 2.0
  226164. .IP \(bu 2
  226165. 22fc5299a2 Merge pull request \fI\%#40038\fP from velom/fix\-pip\-freeze\-parsing
  226166. .IP \(bu 2
  226167. 3fae91d879 correctly parse "pkg_name===version" from pip freeze
  226168. .UNINDENT
  226169. .IP \(bu 2
  226170. \fBISSUE\fP \fI\%#40036\fP: (\fI\%oogali\fP) UnboundLocalError: local variable \(aqifcfg\(aq referenced before assignment (refs: \fI\%#40053\fP)
  226171. .IP \(bu 2
  226172. \fBPR\fP \fI\%#40053\fP: (\fI\%gtmanfred\fP) Update rh_ip.py
  226173. @ \fI2017\-03\-15 18:57:32 UTC\fP
  226174. .INDENT 2.0
  226175. .IP \(bu 2
  226176. 3584f935fa Merge pull request \fI\%#40053\fP from saltstack/rh_ip_patch
  226177. .IP \(bu 2
  226178. 219947acdb Update rh_ip.py
  226179. .UNINDENT
  226180. .IP \(bu 2
  226181. \fBISSUE\fP \fI\%#40011\fP: (\fI\%tsaridas\fP) salt\-minion does not shutdown properly 2016.11.3 rh6 (refs: \fI\%#40041\fP)
  226182. .IP \(bu 2
  226183. \fBPR\fP \fI\%#40041\fP: (\fI\%terminalmage\fP) Fix transposed lines in salt.utils.process
  226184. @ \fI2017\-03\-15 17:58:24 UTC\fP
  226185. .INDENT 2.0
  226186. .IP \(bu 2
  226187. 837432d3d2 Merge pull request \fI\%#40041\fP from terminalmage/issue40011
  226188. .IP \(bu 2
  226189. 5b5d1b375c Fix transposed lines in salt.utils.process
  226190. .UNINDENT
  226191. .IP \(bu 2
  226192. \fBPR\fP \fI\%#40021\fP: (\fI\%Ch3LL\fP) 2016.3.6 release notes with change log
  226193. @ \fI2017\-03\-14 21:06:18 UTC\fP
  226194. .INDENT 2.0
  226195. .IP \(bu 2
  226196. ee7f3b1200 Merge pull request \fI\%#40021\fP from Ch3LL/2016.3.6_release
  226197. .IP \(bu 2
  226198. f3e7e4fb2a Add 2016.3.6 Release Notes
  226199. .UNINDENT
  226200. .IP \(bu 2
  226201. \fBPR\fP \fI\%#40016\fP: (\fI\%terminalmage\fP) Attempt to fix failing grains tests in 2016.3
  226202. @ \fI2017\-03\-14 18:34:32 UTC\fP
  226203. .INDENT 2.0
  226204. .IP \(bu 2
  226205. 26895b7be2 Merge pull request \fI\%#40016\fP from terminalmage/fix\-grains\-test
  226206. .IP \(bu 2
  226207. 0ec81a4cde Fixup a syntax error
  226208. .IP \(bu 2
  226209. 5d84b40bfd Attempt to fix failing grains tests in 2016.3
  226210. .UNINDENT
  226211. .IP \(bu 2
  226212. \fBPR\fP \fI\%#39980\fP: (\fI\%vutny\fP) [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  226213. @ \fI2017\-03\-14 17:16:14 UTC\fP
  226214. .INDENT 2.0
  226215. .IP \(bu 2
  226216. 0c61d064ad Merge pull request \fI\%#39980\fP from vutny/cmd\-run\-state\-bg
  226217. .IP \(bu 2
  226218. a81dc9dfc1 [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  226219. .UNINDENT
  226220. .IP \(bu 2
  226221. \fBISSUE\fP \fI\%#39942\fP: (\fI\%Foxlik\fP) Web Documentation not in sync with release 2016.11.3 (refs: \fI\%#39994\fP)
  226222. .IP \(bu 2
  226223. \fBPR\fP \fI\%#39994\fP: (\fI\%rallytime\fP) Add a versionadded tag for dockerng ulimits addition
  226224. @ \fI2017\-03\-13 20:58:02 UTC\fP
  226225. .INDENT 2.0
  226226. .IP \(bu 2
  226227. b042484455 Merge pull request \fI\%#39994\fP from rallytime/ulimits\-dockerng\-version
  226228. .IP \(bu 2
  226229. 37bd800fac Add a versionadded tag for dockerng ulimits addition
  226230. .UNINDENT
  226231. .IP \(bu 2
  226232. \fBPR\fP \fI\%#39988\fP: (\fI\%terminalmage\fP) Add comment explaining change from \fI\%#39973\fP
  226233. @ \fI2017\-03\-13 18:37:29 UTC\fP
  226234. .INDENT 2.0
  226235. .IP \(bu 2
  226236. \fBPR\fP \fI\%#39973\fP: (\fI\%terminalmage\fP) Don\(aqt use docker.Client instance from context if missing attributes (refs: \fI\%#39988\fP)
  226237. .IP \(bu 2
  226238. e125c94ba5 Merge pull request \fI\%#39988\fP from terminalmage/dockerng\-timeout
  226239. .IP \(bu 2
  226240. bd2519ed1b Add comment explaining change from \fI\%#39973\fP
  226241. .UNINDENT
  226242. .IP \(bu 2
  226243. \fBPR\fP \fI\%#39973\fP: (\fI\%terminalmage\fP) Don\(aqt use docker.Client instance from context if missing attributes (refs: \fI\%#39988\fP)
  226244. @ \fI2017\-03\-11 14:57:50 UTC\fP
  226245. .INDENT 2.0
  226246. .IP \(bu 2
  226247. cd0336e868 Merge pull request \fI\%#39973\fP from terminalmage/dockerng\-timeout
  226248. .IP \(bu 2
  226249. 869416e7db Don\(aqt use docker.Client instance from context if missing attributes
  226250. .UNINDENT
  226251. .IP \(bu 2
  226252. \fBPR\fP \fI\%#39962\fP: (\fI\%cachedout\fP) Disable mention bot delay on 2016.3
  226253. @ \fI2017\-03\-10 20:24:08 UTC\fP
  226254. .INDENT 2.0
  226255. .IP \(bu 2
  226256. 282c607d26 Merge pull request \fI\%#39962\fP from cachedout/disable_mentionbot_delay_3
  226257. .IP \(bu 2
  226258. 7a638f204b Disable mention bot delay on 2016.3
  226259. .INDENT 2.0
  226260. .IP \(bu 2
  226261. 5592c680b5 More mentionbot blacklists
  226262. .UNINDENT
  226263. .UNINDENT
  226264. .IP \(bu 2
  226265. \fBPR\fP \fI\%#39937\fP: (\fI\%cachedout\fP) Fix \-\-non\-gpg\-checks in zypper module
  226266. @ \fI2017\-03\-10 18:02:51 UTC\fP
  226267. .INDENT 2.0
  226268. .IP \(bu 2
  226269. 1e0c88ae08 Merge pull request \fI\%#39937\fP from cachedout/gpg_zypper
  226270. .IP \(bu 2
  226271. 13ed0d1209 Fix \-\-non\-gpg\-checks in zypper module
  226272. .UNINDENT
  226273. .IP \(bu 2
  226274. \fBPR\fP \fI\%#39929\fP: (\fI\%terminalmage\fP) Scrap event\-based approach for refreshing grains (2016.3 branch)
  226275. @ \fI2017\-03\-09 22:03:16 UTC\fP
  226276. .INDENT 2.0
  226277. .IP \(bu 2
  226278. 4526fc6e08 Merge pull request \fI\%#39929\fP from terminalmage/pr\-39770\-2016.3
  226279. .IP \(bu 2
  226280. cf0100dabe Scrap event\-based approach for refreshing grains
  226281. .UNINDENT
  226282. .IP \(bu 2
  226283. \fBISSUE\fP \fI\%#22080\fP: (\fI\%The\-Loeki\fP) CIDR matching for IPv6 / improve IPv6 support in utils.network (refs: \fI\%#39919\fP)
  226284. .IP \(bu 2
  226285. \fBPR\fP \fI\%#39919\fP: (\fI\%The\-Loeki\fP) CIDR matching supports IPv6, update docs
  226286. @ \fI2017\-03\-09 16:03:00 UTC\fP
  226287. .INDENT 2.0
  226288. .IP \(bu 2
  226289. 111110caf8 Merge pull request \fI\%#39919\fP from The\-Loeki/patch\-1
  226290. .IP \(bu 2
  226291. 170cbadc54 CIDR matching supports IPv6, update docs
  226292. .UNINDENT
  226293. .IP \(bu 2
  226294. \fBPR\fP \fI\%#39899\fP: (\fI\%techhat\fP) Update cleanup function for azure
  226295. @ \fI2017\-03\-08 23:28:33 UTC\fP
  226296. .INDENT 2.0
  226297. .IP \(bu 2
  226298. caf10e9988 Merge pull request \fI\%#39899\fP from techhat/cleanupdisks
  226299. .IP \(bu 2
  226300. baf4579e63 Update cleanup function for azure
  226301. .UNINDENT
  226302. .IP \(bu 2
  226303. \fBPR\fP \fI\%#39871\fP: (\fI\%terminalmage\fP) Squelch warning for pygit2 import
  226304. @ \fI2017\-03\-07 20:40:18 UTC\fP
  226305. .INDENT 2.0
  226306. .IP \(bu 2
  226307. fcf95f3654 Merge pull request \fI\%#39871\fP from terminalmage/squelch\-import\-warning
  226308. .IP \(bu 2
  226309. 2b2ec69d04 Squelch warning for pygit2 import
  226310. .UNINDENT
  226311. .IP \(bu 2
  226312. \fBPR\fP \fI\%#39794\fP: (\fI\%cachedout\fP) Clean up errors which might be thrown when the monitor socket shuts down
  226313. @ \fI2017\-03\-04 16:12:37 UTC\fP
  226314. .INDENT 2.0
  226315. .IP \(bu 2
  226316. f223fa8906 Merge pull request \fI\%#39794\fP from cachedout/clean_monitor_socket_shutdown
  226317. .IP \(bu 2
  226318. 2e683e788b Clean up errors which might be thrown when the monitor socket shuts down
  226319. .UNINDENT
  226320. .IP \(bu 2
  226321. \fBPR\fP \fI\%#39819\fP: (\fI\%terminalmage\fP) Improve the Top File matching docs
  226322. @ \fI2017\-03\-04 16:06:40 UTC\fP
  226323. .INDENT 2.0
  226324. .IP \(bu 2
  226325. 4002dc1947 Merge pull request \fI\%#39819\fP from terminalmage/top\-file\-matching\-docs
  226326. .IP \(bu 2
  226327. 7178e77eee Improve the Top File matching docs
  226328. .UNINDENT
  226329. .IP \(bu 2
  226330. \fBPR\fP \fI\%#39820\fP: (\fI\%ni3mm4nd\fP) Add missing apostrophe in Beacons topic documentation
  226331. @ \fI2017\-03\-04 16:05:29 UTC\fP
  226332. .INDENT 2.0
  226333. .IP \(bu 2
  226334. c08aaeb7fd Merge pull request \fI\%#39820\fP from ni3mm4nd/beacons_topic_doc_typo
  226335. .IP \(bu 2
  226336. 804b12048c Add missing apostrophe
  226337. .UNINDENT
  226338. .IP \(bu 2
  226339. \fBPR\fP \fI\%#39826\fP: (\fI\%cachedout\fP) Add group func to yubikey auth
  226340. @ \fI2017\-03\-04 16:02:14 UTC\fP
  226341. .INDENT 2.0
  226342. .IP \(bu 2
  226343. cbd2a4e3cc Merge pull request \fI\%#39826\fP from cachedout/yubikey_fix
  226344. .IP \(bu 2
  226345. 6125eff02d Add group func to yubikey auth
  226346. .UNINDENT
  226347. .IP \(bu 2
  226348. \fBISSUE\fP \fI\%#39622\fP: (\fI\%drawsmcgraw\fP) boto_vpc.create_subnet does not properly assign tags (refs: \fI\%#39624\fP)
  226349. .IP \(bu 2
  226350. \fBPR\fP \fI\%#39624\fP: (\fI\%drawsmcgraw\fP) Address issue 39622
  226351. @ \fI2017\-03\-03 15:59:04 UTC\fP
  226352. .INDENT 2.0
  226353. .IP \(bu 2
  226354. f575ef459f Merge pull request \fI\%#39624\fP from drawsmcgraw/39622
  226355. .IP \(bu 2
  226356. 13da50be33 Fix indention lint errors
  226357. .IP \(bu 2
  226358. 545026352f Address issue 39622
  226359. .UNINDENT
  226360. .IP \(bu 2
  226361. \fBISSUE\fP \fI\%#39119\fP: (\fI\%frogunder\fP) Head of 2016.3 \- Salt\-Master uses 90 seconds to restart (refs: \fI\%#39796\fP)
  226362. .IP \(bu 2
  226363. \fBPR\fP \fI\%#39796\fP: (\fI\%cachedout\fP) Stop the process manager when it no longer has processes to manage
  226364. @ \fI2017\-03\-02 23:03:13 UTC\fP
  226365. .INDENT 2.0
  226366. .IP \(bu 2
  226367. 1f3619c1e5 Merge pull request \fI\%#39796\fP from cachedout/master_shutdown
  226368. .IP \(bu 2
  226369. e31d46c1b8 Stop the process manager when it no longer has processes to manage
  226370. .UNINDENT
  226371. .IP \(bu 2
  226372. \fBISSUE\fP \fI\%#39333\fP: (\fI\%jagguli\fP) Not Available error \- Scheduling custom runner functions (refs: \fI\%#39791\fP)
  226373. .IP \(bu 2
  226374. \fBISSUE\fP \fI\%#38514\fP: (\fI\%githubcdr\fP) Unable to schedule runners (refs: \fI\%#39791\fP)
  226375. .IP \(bu 2
  226376. \fBPR\fP \fI\%#39791\fP: (\fI\%gtmanfred\fP) load runners if role is master
  226377. @ \fI2017\-03\-02 19:43:41 UTC\fP
  226378. .INDENT 2.0
  226379. .IP \(bu 2
  226380. 53341cf152 Merge pull request \fI\%#39791\fP from gtmanfred/2016.3
  226381. .IP \(bu 2
  226382. 3ab4f843bf load runners if role is master
  226383. .UNINDENT
  226384. .IP \(bu 2
  226385. \fBISSUE\fP \fI\%#39782\fP: (\fI\%sergeizv\fP) salt\-cloud show_instance action fails on EC2 instances (refs: \fI\%#39784\fP)
  226386. .IP \(bu 2
  226387. \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)
  226388. .IP \(bu 2
  226389. \fBPR\fP \fI\%#39784\fP: (\fI\%sergeizv\fP) Fix 39782
  226390. @ \fI2017\-03\-02 16:08:51 UTC\fP
  226391. .INDENT 2.0
  226392. .IP \(bu 2
  226393. \fBPR\fP \fI\%#33164\fP: (\fI\%jfindlay\fP) cloud.clouds.ec2: cache each named node (refs: \fI\%#39784\fP)
  226394. .IP \(bu 2
  226395. c234c25092 Merge pull request \fI\%#39784\fP from sergeizv/fix\-39782
  226396. .IP \(bu 2
  226397. b71c3fe13c Revert "cloud.clouds.ec2: cache each named node (\fI\%#33164\fP)"
  226398. .UNINDENT
  226399. .IP \(bu 2
  226400. \fBISSUE\fP \fI\%#39336\fP: (\fI\%GevatterGaul\fP) salt\-minion fails with IPv6 (refs: \fI\%#39766\fP)
  226401. .IP \(bu 2
  226402. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226403. .IP \(bu 2
  226404. \fBPR\fP \fI\%#39766\fP: (\fI\%rallytime\fP) Restore ipv6 connectivity and "master: <ip>:<port>" support
  226405. @ \fI2017\-03\-02 02:55:55 UTC\fP
  226406. .INDENT 2.0
  226407. .IP \(bu 2
  226408. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  226409. .IP \(bu 2
  226410. \fBPR\fP \fI\%#25021\fP: (\fI\%GideonRed\-zz\fP) Introduce ip:port minion config (refs: \fI\%#39766\fP)
  226411. .IP \(bu 2
  226412. 4ee59be22c Merge pull request \fI\%#39766\fP from rallytime/fix\-ipv6\-connection
  226413. .IP \(bu 2
  226414. 65b239664e Restore ipv6 connectivity and "master: <ip>:<port>" support
  226415. .UNINDENT
  226416. .IP \(bu 2
  226417. \fBISSUE\fP \fI\%#33187\fP: (\fI\%usbportnoy\fP) Deploy to jboss TypeError at boss7.py:469 (refs: \fI\%#39761\fP, \fI\%#39170\fP)
  226418. .IP \(bu 2
  226419. \fBPR\fP \fI\%#39761\fP: (\fI\%cachedout\fP) Properly display error in jboss7 state
  226420. @ \fI2017\-03\-01 18:43:23 UTC\fP
  226421. .INDENT 2.0
  226422. .IP \(bu 2
  226423. a24da31131 Merge pull request \fI\%#39761\fP from cachedout/issue_33187
  226424. .IP \(bu 2
  226425. c2df29edb2 Properly display error in jboss7 state
  226426. .UNINDENT
  226427. .IP \(bu 2
  226428. \fBPR\fP \fI\%#39728\fP: (\fI\%rallytime\fP) [2016.3] Bump latest release version to 2016.11.3
  226429. @ \fI2017\-02\-28 18:07:44 UTC\fP
  226430. .INDENT 2.0
  226431. .IP \(bu 2
  226432. 0888bc32ef Merge pull request \fI\%#39728\fP from rallytime/update\-release\-ver\-2016.3
  226433. .IP \(bu 2
  226434. c9bc8af8f2 [2016.3] Bump latest release version to 2016.11.3
  226435. .UNINDENT
  226436. .IP \(bu 2
  226437. \fBPR\fP \fI\%#39619\fP: (\fI\%terminalmage\fP) Add a function to simply refresh the grains
  226438. @ \fI2017\-02\-28 00:20:27 UTC\fP
  226439. .INDENT 2.0
  226440. .IP \(bu 2
  226441. b52dbeec68 Merge pull request \fI\%#39619\fP from terminalmage/zd1207
  226442. .IP \(bu 2
  226443. c7dfb494a6 Fix mocking for grains refresh
  226444. .IP \(bu 2
  226445. 7e0ced3b45 Properly hand proxy minions
  226446. .IP \(bu 2
  226447. 692c456da3 Add a function to simply refresh the grains
  226448. .UNINDENT
  226449. .IP \(bu 2
  226450. \fBISSUE\fP \fI\%#39482\fP: (\fI\%bobrik\fP) file.managed and file mode don\(aqt mention default mode (refs: \fI\%#39487\fP)
  226451. .IP \(bu 2
  226452. \fBPR\fP \fI\%#39487\fP: (\fI\%bobrik\fP) Document default permission modes for file module
  226453. @ \fI2017\-02\-24 23:49:00 UTC\fP
  226454. .INDENT 2.0
  226455. .IP \(bu 2
  226456. 3f8b5e6733 Merge pull request \fI\%#39487\fP from bobrik/mode\-docs
  226457. .IP \(bu 2
  226458. 41ef69b3ca Document default permission modes for file module
  226459. .UNINDENT
  226460. .IP \(bu 2
  226461. \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)
  226462. .IP \(bu 2
  226463. \fBPR\fP \fI\%#39641\fP: (\fI\%smarsching\fP) Return runner return code in a way compatible with check_state_result
  226464. @ \fI2017\-02\-24 23:07:11 UTC\fP
  226465. .INDENT 2.0
  226466. .IP \(bu 2
  226467. f7389bf1f5 Merge pull request \fI\%#39641\fP from smarsching/issue\-39169\-2016.3
  226468. .IP \(bu 2
  226469. 88c2d9a540 Fix return data structure for runner (issue \fI\%#39169\fP).
  226470. .UNINDENT
  226471. .IP \(bu 2
  226472. \fBPR\fP \fI\%#39633\fP: (\fI\%terminalmage\fP) Fix misspelled argument in salt.modules.systemd.disable()
  226473. @ \fI2017\-02\-24 18:21:36 UTC\fP
  226474. .INDENT 2.0
  226475. .IP \(bu 2
  226476. fc970b6a16 Merge pull request \fI\%#39633\fP from terminalmage/fix\-systemd\-typo
  226477. .IP \(bu 2
  226478. ca54541abe Add missing unit test for disable func
  226479. .IP \(bu 2
  226480. 17109e1522 Fix misspelled argument in salt.modules.systemd.disable()
  226481. .UNINDENT
  226482. .IP \(bu 2
  226483. \fBPR\fP \fI\%#39613\fP: (\fI\%terminalmage\fP) Fix inaccurate documentation
  226484. @ \fI2017\-02\-24 06:07:35 UTC\fP
  226485. .INDENT 2.0
  226486. .IP \(bu 2
  226487. 53e78d67f6 Merge pull request \fI\%#39613\fP from terminalmage/fix\-docs
  226488. .IP \(bu 2
  226489. 9342eda377 Fix inaccurate documentation
  226490. .UNINDENT
  226491. .IP \(bu 2
  226492. \fBPR\fP \fI\%#39600\fP: (\fI\%vutny\fP) state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  226493. @ \fI2017\-02\-23 16:55:27 UTC\fP
  226494. .INDENT 2.0
  226495. .IP \(bu 2
  226496. 4e2b852f83 Merge pull request \fI\%#39600\fP from vutny/state\-file\-docs
  226497. .IP \(bu 2
  226498. 9b0427c27a state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  226499. .UNINDENT
  226500. .IP \(bu 2
  226501. \fBPR\fP \fI\%#39584\fP: (\fI\%cachedout\fP) A note in the docs about mentionbot
  226502. @ \fI2017\-02\-23 15:12:13 UTC\fP
  226503. .INDENT 2.0
  226504. .IP \(bu 2
  226505. ed83420417 Merge pull request \fI\%#39584\fP from cachedout/mentionbot_docs
  226506. .IP \(bu 2
  226507. 652044b18f A note in the docs about mentionbot
  226508. .UNINDENT
  226509. .IP \(bu 2
  226510. \fBPR\fP \fI\%#39583\fP: (\fI\%cachedout\fP) Add empty blacklist to mention bot
  226511. @ \fI2017\-02\-23 02:22:57 UTC\fP
  226512. .INDENT 2.0
  226513. .IP \(bu 2
  226514. d3e50b4f2f Merge pull request \fI\%#39583\fP from cachedout/mentionbot_blacklist
  226515. .IP \(bu 2
  226516. 62491c900d Add empty blacklist to mention bot
  226517. .UNINDENT
  226518. .IP \(bu 2
  226519. \fBPR\fP \fI\%#39579\fP: (\fI\%rallytime\fP) [2016.3] Pylint: Remove unused import
  226520. @ \fI2017\-02\-22 23:46:33 UTC\fP
  226521. .INDENT 2.0
  226522. .IP \(bu 2
  226523. 8352e6b44b Merge pull request \fI\%#39579\fP from rallytime/fix\-lint
  226524. .IP \(bu 2
  226525. 65889e1f30 [2016.3] Pylint: Remove unused import
  226526. .UNINDENT
  226527. .IP \(bu 2
  226528. \fBPR\fP \fI\%#39578\fP: (\fI\%cachedout\fP) Add mention\-bot configuration
  226529. @ \fI2017\-02\-22 23:39:24 UTC\fP
  226530. .INDENT 2.0
  226531. .IP \(bu 2
  226532. 43dba3254c Merge pull request \fI\%#39578\fP from cachedout/2016.3
  226533. .IP \(bu 2
  226534. 344499eef7 Add mention\-bot configuration
  226535. .UNINDENT
  226536. .IP \(bu 2
  226537. \fBPR\fP \fI\%#39542\fP: (\fI\%twangboy\fP) Gate ssh_known_hosts state against Windows
  226538. @ \fI2017\-02\-22 20:16:41 UTC\fP
  226539. .INDENT 2.0
  226540. .IP \(bu 2
  226541. 8f7a0f9d96 Merge pull request \fI\%#39542\fP from twangboy/gate_ssh_known_hosts
  226542. .IP \(bu 2
  226543. c90a52ef27 Remove expensive check
  226544. .IP \(bu 2
  226545. 6d645cae0e Add __virtual__ function
  226546. .UNINDENT
  226547. .IP \(bu 2
  226548. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226549. .IP \(bu 2
  226550. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  226551. @ \fI2017\-02\-22 19:05:32 UTC\fP
  226552. .INDENT 2.0
  226553. .IP \(bu 2
  226554. c10965833a Merge pull request \fI\%#39289\fP from bobrik/autodetect\-ipv6
  226555. .IP \(bu 2
  226556. 2761a1b244 Move new kwargs to the end of argument list
  226557. .IP \(bu 2
  226558. 0df6b922e7 Narrow down connection exception to socket.error
  226559. .IP \(bu 2
  226560. e8a2cc0488 Do no try to connect to salt master in syndic config test
  226561. .IP \(bu 2
  226562. af9578631e Properly log address that failed to resolve or pass connection check
  226563. .IP \(bu 2
  226564. 9a34fbeba9 Actually connect to master instead of checking route availability
  226565. .IP \(bu 2
  226566. c494839c65 Avoid bare exceptions in dns_check
  226567. .IP \(bu 2
  226568. 29f376676d Rewrite dns_check to try to connect to address
  226569. .IP \(bu 2
  226570. 55965ce505 Autodetect IPv6 connectivity from minion to master
  226571. .UNINDENT
  226572. .IP \(bu 2
  226573. \fBPR\fP \fI\%#39569\fP: (\fI\%s0undt3ch\fP) Don\(aqt use our own six dictionary fixes in this branch
  226574. @ \fI2017\-02\-22 18:59:49 UTC\fP
  226575. .INDENT 2.0
  226576. .IP \(bu 2
  226577. 3fb928b63a Merge pull request \fI\%#39569\fP from s0undt3ch/2016.3
  226578. .IP \(bu 2
  226579. 49da135abd Don\(aqt use our own six dictionary fixes in this branch
  226580. .UNINDENT
  226581. .IP \(bu 2
  226582. \fBPR\fP \fI\%#39508\fP: (\fI\%dincamihai\fP) Openscap
  226583. @ \fI2017\-02\-22 18:36:36 UTC\fP
  226584. .INDENT 2.0
  226585. .IP \(bu 2
  226586. 91e3319df8 Merge pull request \fI\%#39508\fP from dincamihai/openscap
  226587. .IP \(bu 2
  226588. 9fedb84607 Always return oscap\(aqs stderr
  226589. .IP \(bu 2
  226590. 0ecde2cd02 Include oscap returncode in response
  226591. .UNINDENT
  226592. .IP \(bu 2
  226593. \fBISSUE\fP \fI\%#30802\fP: (\fI\%kjelle\fP) Missing ulimits on docker.running / dockerng.running (refs: \fI\%#39562\fP)
  226594. .IP \(bu 2
  226595. \fBPR\fP \fI\%#39562\fP: (\fI\%terminalmage\fP) Add ulimits to dockerng state/exec module
  226596. @ \fI2017\-02\-22 16:31:49 UTC\fP
  226597. .INDENT 2.0
  226598. .IP \(bu 2
  226599. fbe2194a93 Merge pull request \fI\%#39562\fP from terminalmage/issue30802
  226600. .IP \(bu 2
  226601. c50374041d Add ulimits to dockerng state/exec module
  226602. .IP \(bu 2
  226603. da42040c1a Try the docker\-py 2.0 client name first
  226604. .IP \(bu 2
  226605. \fBPR\fP \fI\%#39544\fP: (\fI\%terminalmage\fP) dockerng.get_client_args: Fix path for endpoint config for some versions of docker\-py
  226606. .UNINDENT
  226607. .IP \(bu 2
  226608. \fBISSUE\fP \fI\%#39447\fP: (\fI\%Foxlik\fP) dockerng keeps restarting privileged container (refs: \fI\%#39483\fP)
  226609. .IP \(bu 2
  226610. \fBPR\fP \fI\%#39498\fP: (\fI\%terminalmage\fP) Resubmit PR \fI\%#39483\fP against 2016.3 branch
  226611. @ \fI2017\-02\-20 19:35:33 UTC\fP
  226612. .INDENT 2.0
  226613. .IP \(bu 2
  226614. \fBPR\fP \fI\%#39483\fP: (\fI\%Foxlik\fP) dockerng: compare sets instead of lists of security_opt (refs: \fI\%#39498\fP)
  226615. .IP \(bu 2
  226616. dff35b58f8 Merge pull request \fI\%#39498\fP from terminalmage/pr\-39483
  226617. .IP \(bu 2
  226618. 20b097a745 dockerng: compare sets instead of lists of security_opt
  226619. .UNINDENT
  226620. .IP \(bu 2
  226621. \fBPR\fP \fI\%#39497\fP: (\fI\%terminalmage\fP) Two dockerng compatibility fixes
  226622. @ \fI2017\-02\-19 17:43:36 UTC\fP
  226623. .INDENT 2.0
  226624. .IP \(bu 2
  226625. 6418e725ed Merge pull request \fI\%#39497\fP from terminalmage/docker\-compat\-fixes
  226626. .IP \(bu 2
  226627. cbd0270bac docker: make docker\-exec the default execution driver
  226628. .IP \(bu 2
  226629. a6a17d58aa Handle docker\-py 2.0\(aqs new host_config path
  226630. .UNINDENT
  226631. .IP \(bu 2
  226632. \fBPR\fP \fI\%#39423\fP: (\fI\%dincamihai\fP) Openscap module
  226633. @ \fI2017\-02\-17 18:31:04 UTC\fP
  226634. .INDENT 2.0
  226635. .IP \(bu 2
  226636. 9c4292fb4e Merge pull request \fI\%#39423\fP from dincamihai/openscap
  226637. .IP \(bu 2
  226638. 9d13422ac1 OpenSCAP module
  226639. .UNINDENT
  226640. .IP \(bu 2
  226641. \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)
  226642. .IP \(bu 2
  226643. \fBPR\fP \fI\%#39464\fP: (\fI\%gtmanfred\fP) skip false values from preferred_ip
  226644. @ \fI2017\-02\-16 22:48:32 UTC\fP
  226645. .INDENT 2.0
  226646. .IP \(bu 2
  226647. 7dd2502360 Merge pull request \fI\%#39464\fP from gtmanfred/2016.3
  226648. .IP \(bu 2
  226649. f829d6f9fc skip false values from preferred_ip
  226650. .UNINDENT
  226651. .IP \(bu 2
  226652. \fBPR\fP \fI\%#39460\fP: (\fI\%cachedout\fP) Fix mocks in win_disim tests
  226653. @ \fI2017\-02\-16 19:27:48 UTC\fP
  226654. .INDENT 2.0
  226655. .IP \(bu 2
  226656. db359ff2c3 Merge pull request \fI\%#39460\fP from cachedout/win_dism_test_fix
  226657. .IP \(bu 2
  226658. e652a45592 Fix mocks in win_disim tests
  226659. .UNINDENT
  226660. .IP \(bu 2
  226661. \fBPR\fP \fI\%#39426\fP: (\fI\%morganwillcock\fP) win_dism: Return failure when package path does not exist
  226662. @ \fI2017\-02\-16 00:09:22 UTC\fP
  226663. .INDENT 2.0
  226664. .IP \(bu 2
  226665. 9dbfba9b57 Merge pull request \fI\%#39426\fP from morganwillcock/dism
  226666. .IP \(bu 2
  226667. a7d5118262 Return failure when package path does not exist
  226668. .UNINDENT
  226669. .IP \(bu 2
  226670. \fBPR\fP \fI\%#39431\fP: (\fI\%UtahDave\fP) Fix grains.setval performance
  226671. @ \fI2017\-02\-15 23:56:30 UTC\fP
  226672. .INDENT 2.0
  226673. .IP \(bu 2
  226674. 56162706e3 Merge pull request \fI\%#39431\fP from UtahDave/fix_grains.setval_performance
  226675. .IP \(bu 2
  226676. 391bbecd90 add docs
  226677. .IP \(bu 2
  226678. 709c197f84 allow sync_grains to be disabled on grains.setval
  226679. .UNINDENT
  226680. .IP \(bu 2
  226681. \fBISSUE\fP \fI\%#39304\fP: (\fI\%Auha\fP) boto_s3_bucket documentation dependency clarification (refs: \fI\%#39405\fP)
  226682. .IP \(bu 2
  226683. \fBPR\fP \fI\%#39405\fP: (\fI\%rallytime\fP) Update :depends: docs for boto states and modules
  226684. @ \fI2017\-02\-15 17:32:08 UTC\fP
  226685. .INDENT 2.0
  226686. .IP \(bu 2
  226687. 239e16e612 Merge pull request \fI\%#39405\fP from rallytime/fix\-39304
  226688. .IP \(bu 2
  226689. bd1fe03ce7 Update :depends: docs for boto states and modules
  226690. .UNINDENT
  226691. .IP \(bu 2
  226692. \fBISSUE\fP \fI\%#38762\fP: (\fI\%oz123\fP) Configuration information for custom returners (refs: \fI\%#39411\fP)
  226693. .IP \(bu 2
  226694. \fBPR\fP \fI\%#39411\fP: (\fI\%rallytime\fP) Update external_cache docs with other configuration options
  226695. @ \fI2017\-02\-15 17:30:40 UTC\fP
  226696. .INDENT 2.0
  226697. .IP \(bu 2
  226698. 415102f346 Merge pull request \fI\%#39411\fP from rallytime/fix\-38762
  226699. .IP \(bu 2
  226700. e13febe58d Update external_cache docs with other configuration options
  226701. .IP \(bu 2
  226702. \fBPR\fP \fI\%#39421\fP: (\fI\%terminalmage\fP) Update docs on upstream EPEL7 pygit2/libgit2 issues
  226703. .IP \(bu 2
  226704. \fBPR\fP \fI\%#39409\fP: (\fI\%terminalmage\fP) salt.fileserver.roots: Fix regression in symlink_list
  226705. .IP \(bu 2
  226706. \fBPR\fP \fI\%#39337\fP: (\fI\%terminalmage\fP) Don\(aqt re\-walk the roots fileserver in symlink_list() (refs: \fI\%#39409\fP)
  226707. .UNINDENT
  226708. .IP \(bu 2
  226709. \fBPR\fP \fI\%#39362\fP: (\fI\%dincamihai\fP) Add cp.push test
  226710. @ \fI2017\-02\-14 18:42:11 UTC\fP
  226711. .INDENT 2.0
  226712. .IP \(bu 2
  226713. 8b8ab8ef8e Merge pull request \fI\%#39362\fP from dincamihai/cp\-push\-test\-2016.3
  226714. .IP \(bu 2
  226715. 91383c5a19 Add cp.push test
  226716. .UNINDENT
  226717. .IP \(bu 2
  226718. \fBPR\fP \fI\%#39380\fP: (\fI\%joe\-niland\fP) Quote numeric user names so pwd.getpwnam handles them properly
  226719. @ \fI2017\-02\-14 18:33:33 UTC\fP
  226720. .INDENT 2.0
  226721. .IP \(bu 2
  226722. 4b726f955b Merge pull request \fI\%#39380\fP from joe\-niland/quote\-numeric\-usernames
  226723. .IP \(bu 2
  226724. c2edfdd464 Quote numeric user names so pwd.getpwnam handles them properly
  226725. .UNINDENT
  226726. .IP \(bu 2
  226727. \fBPR\fP \fI\%#39400\fP: (\fI\%meaksh\fP) Prevents \(aqOSError\(aq exception in case certain job cache path doesn\(aqt exist
  226728. @ \fI2017\-02\-14 18:27:04 UTC\fP
  226729. .INDENT 2.0
  226730. .IP \(bu 2
  226731. 1116d32df9 Merge pull request \fI\%#39400\fP from meaksh/2016.3\-fix\-local\-cache\-issue
  226732. .IP \(bu 2
  226733. e7e559ef5c Prevents \(aqOSError\(aq exception in case path doesn\(aqt exist
  226734. .UNINDENT
  226735. .IP \(bu 2
  226736. \fBPR\fP \fI\%#39300\fP: (\fI\%terminalmage\fP) Replace more usage of str.format in the loader
  226737. @ \fI2017\-02\-13 19:01:19 UTC\fP
  226738. .INDENT 2.0
  226739. .IP \(bu 2
  226740. \fBPR\fP \fI\%#39227\fP: (\fI\%terminalmage\fP) Loader optimzation (refs: \fI\%#39300\fP)
  226741. .IP \(bu 2
  226742. 6c854da1d4 Merge pull request \fI\%#39300\fP from terminalmage/loader\-optimization
  226743. .IP \(bu 2
  226744. d3e5d1525e Replace more usage of str.format in the loader
  226745. .UNINDENT
  226746. .IP \(bu 2
  226747. \fBPR\fP \fI\%#39337\fP: (\fI\%terminalmage\fP) Don\(aqt re\-walk the roots fileserver in symlink_list() (refs: \fI\%#39409\fP)
  226748. @ \fI2017\-02\-13 18:41:17 UTC\fP
  226749. .INDENT 2.0
  226750. .IP \(bu 2
  226751. 5286b5ff1b Merge pull request \fI\%#39337\fP from terminalmage/issue34428
  226752. .IP \(bu 2
  226753. a7d2135dc2 Don\(aqt re\-walk the roots fileserver in symlink_list()
  226754. .UNINDENT
  226755. .IP \(bu 2
  226756. \fBPR\fP \fI\%#39339\fP: (\fI\%cro\fP) Add link to external pillar documentation for clarification.
  226757. @ \fI2017\-02\-13 18:40:13 UTC\fP
  226758. .INDENT 2.0
  226759. .IP \(bu 2
  226760. ce781deeb5 Merge pull request \fI\%#39339\fP from cro/pillar_filetree_doc
  226761. .IP \(bu 2
  226762. 410810cea2 Clarification on external pillar usage.
  226763. .IP \(bu 2
  226764. \fBPR\fP \fI\%#39316\fP: (\fI\%terminalmage\fP) Document the upstream RedHat bug with their pygit2 package
  226765. .UNINDENT
  226766. .IP \(bu 2
  226767. \fBPR\fP \fI\%#39313\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  226768. @ \fI2017\-02\-10 16:23:23 UTC\fP
  226769. .INDENT 2.0
  226770. .IP \(bu 2
  226771. 9de559ff4e Merge pull request \fI\%#39313\fP from rallytime/merge\-2016.3
  226772. .IP \(bu 2
  226773. 0b8dddf12b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  226774. .IP \(bu 2
  226775. fc551bcf5d Merge pull request \fI\%#39293\fP from sergeizv/grammar\-fix
  226776. .INDENT 2.0
  226777. .IP \(bu 2
  226778. 70f2b586d3 Rewrap paragraph
  226779. .IP \(bu 2
  226780. e6ab5178ea Grammar fix
  226781. .UNINDENT
  226782. .IP \(bu 2
  226783. 8a1b45632a Merge pull request \fI\%#39295\fP from sergeizv/typo\-fix
  226784. .INDENT 2.0
  226785. .IP \(bu 2
  226786. 5d9f36d58d Fix typo
  226787. .UNINDENT
  226788. .IP \(bu 2
  226789. cfaafece34 Merge pull request \fI\%#39296\fP from sergeizv/whitespace\-fix
  226790. .INDENT 2.0
  226791. .IP \(bu 2
  226792. 1d4c1dc140 Whitespace fix in docs Makefile
  226793. .UNINDENT
  226794. .IP \(bu 2
  226795. 0b4dcf4a47 Merge pull request \fI\%#39294\fP from sergeizv/fix\-link
  226796. .INDENT 2.0
  226797. .IP \(bu 2
  226798. 04bde6eed2 Fix link in proxyminion guide
  226799. .UNINDENT
  226800. .UNINDENT
  226801. .IP \(bu 2
  226802. \fBISSUE\fP \fI\%#38595\fP: (\fI\%yue9944882\fP) Redis ext job cache occurred error (refs: \fI\%#38610\fP)
  226803. .INDENT 2.0
  226804. .IP \(bu 2
  226805. \fBPR\fP \fI\%#39299\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38610\fP to 2016.3
  226806. .IP \(bu 2
  226807. \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)
  226808. .UNINDENT
  226809. .IP \(bu 2
  226810. \fBPR\fP \fI\%#39297\fP: (\fI\%cro\fP) Add doc to recommend pgjsonb for master job caches
  226811. @ \fI2017\-02\-09 22:49:59 UTC\fP
  226812. .INDENT 2.0
  226813. .IP \(bu 2
  226814. f16027d30e Merge pull request \fI\%#39297\fP from cro/pg_returner_docs
  226815. .IP \(bu 2
  226816. 28bac649ae Typo
  226817. .IP \(bu 2
  226818. 19fedcdd23 Add doc to recommend pgjsonb for master job caches
  226819. .UNINDENT
  226820. .IP \(bu 2
  226821. \fBPR\fP \fI\%#39286\fP: (\fI\%terminalmage\fP) Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  226822. @ \fI2017\-02\-09 21:22:46 UTC\fP
  226823. .INDENT 2.0
  226824. .IP \(bu 2
  226825. 77e50ed8b7 Merge pull request \fI\%#39286\fP from terminalmage/fix\-pillarenv\-precedence
  226826. .IP \(bu 2
  226827. 3cb9833e57 Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  226828. .UNINDENT
  226829. .IP \(bu 2
  226830. \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)
  226831. .IP \(bu 2
  226832. \fBPR\fP \fI\%#39221\fP: (\fI\%lvg01\fP) Fix bug 39220
  226833. @ \fI2017\-02\-09 18:12:29 UTC\fP
  226834. .INDENT 2.0
  226835. .IP \(bu 2
  226836. 52440416ca Merge pull request \fI\%#39221\fP from lvg01/fix\-bug\-39220
  226837. .IP \(bu 2
  226838. e8a41d6341 Removes to early content stripping (stripping is allready done when needed with ident:true), fixes \fI\%#39220\fP
  226839. .IP \(bu 2
  226840. a4b169e0bd Fixed wrong logic, fixes \fI\%#39220\fP
  226841. .UNINDENT
  226842. .IP \(bu 2
  226843. \fBISSUE\fP \fI\%#36913\fP: (\fI\%terminalmage\fP) Support custom refspecs in GitFS (refs: \fI\%#39210\fP)
  226844. .INDENT 2.0
  226845. .IP \(bu 2
  226846. \fBPR\fP \fI\%#39280\fP: (\fI\%terminalmage\fP) Add warning for Dulwich removal
  226847. .IP \(bu 2
  226848. \fBPR\fP \fI\%#39210\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: remove dulwich support, make refspecs configurable (refs: \fI\%#39280\fP)
  226849. .IP \(bu 2
  226850. \fBPR\fP \fI\%#39260\fP: (\fI\%terminalmage\fP) Update jsonschema tests to reflect change in jsonschema 2.6.0
  226851. .UNINDENT
  226852. .IP \(bu 2
  226853. \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)
  226854. .IP \(bu 2
  226855. \fBISSUE\fP \fI\%#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  226856. .INDENT 2.0
  226857. .IP \(bu 2
  226858. \fBPR\fP \fI\%#39251\fP: (\fI\%terminalmage\fP) Better handling of enabled/disabled arguments in pkgrepo.managed
  226859. .IP \(bu 2
  226860. \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)
  226861. .UNINDENT
  226862. .IP \(bu 2
  226863. \fBPR\fP \fI\%#39227\fP: (\fI\%terminalmage\fP) Loader optimzation (refs: \fI\%#39300\fP)
  226864. @ \fI2017\-02\-08 19:38:21 UTC\fP
  226865. .INDENT 2.0
  226866. .IP \(bu 2
  226867. 8e88f71dd9 Merge pull request \fI\%#39227\fP from terminalmage/loader\-optimization
  226868. .IP \(bu 2
  226869. c750662946 Loader optimzation
  226870. .UNINDENT
  226871. .IP \(bu 2
  226872. \fBISSUE\fP \fI\%#38856\fP: (\fI\%fhaynes\fP) salt\-cloud throws an exception when ec2 does not return encoding (refs: \fI\%#39228\fP)
  226873. .IP \(bu 2
  226874. \fBPR\fP \fI\%#39228\fP: (\fI\%gtmanfred\fP) default to utf8 encoding if not specified
  226875. @ \fI2017\-02\-08 19:36:57 UTC\fP
  226876. .INDENT 2.0
  226877. .IP \(bu 2
  226878. bc89b297f8 Merge pull request \fI\%#39228\fP from gtmanfred/2016.3
  226879. .IP \(bu 2
  226880. afee047b08 default to utf8 encoding if not specified
  226881. .UNINDENT
  226882. .IP \(bu 2
  226883. \fBPR\fP \fI\%#39231\fP: (\fI\%terminalmage\fP) Add clarification for jenkins execution module
  226884. @ \fI2017\-02\-08 19:34:45 UTC\fP
  226885. .INDENT 2.0
  226886. .IP \(bu 2
  226887. d9b0671dbd Merge pull request \fI\%#39231\fP from terminalmage/clarify\-jenkins\-depends
  226888. .IP \(bu 2
  226889. ad1b1255f2 Add clarification for jenkins execution module
  226890. .UNINDENT
  226891. .IP \(bu 2
  226892. \fBPR\fP \fI\%#39232\fP: (\fI\%terminalmage\fP) Avoid recursion in s3/svn ext_pillars
  226893. @ \fI2017\-02\-08 19:33:28 UTC\fP
  226894. .INDENT 2.0
  226895. .IP \(bu 2
  226896. ddcff89a84 Merge pull request \fI\%#39232\fP from terminalmage/issue21342
  226897. .IP \(bu 2
  226898. c88896c277 Avoid recursion in s3/svn ext_pillars
  226899. .UNINDENT
  226900. .IP \(bu 2
  226901. \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)
  226902. .INDENT 2.0
  226903. .IP \(bu 2
  226904. \fBPR\fP \fI\%#39230\fP: (\fI\%rallytime\fP) Fix the win_ip_test failures
  226905. .IP \(bu 2
  226906. \fBPR\fP \fI\%#38793\fP: (\fI\%fboismenu\fP) Fix for \fI\%#38697\fP (refs: \fI\%#39197\fP, \fI\%#39230\fP)
  226907. .UNINDENT
  226908. .IP \(bu 2
  226909. \fBISSUE\fP \fI\%#33187\fP: (\fI\%usbportnoy\fP) Deploy to jboss TypeError at boss7.py:469 (refs: \fI\%#39761\fP, \fI\%#39170\fP)
  226910. .IP \(bu 2
  226911. \fBPR\fP \fI\%#39199\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39170\fP to 2016.3
  226912. @ \fI2017\-02\-07 16:19:32 UTC\fP
  226913. .INDENT 2.0
  226914. .IP \(bu 2
  226915. \fBPR\fP \fI\%#39170\fP: (\fI\%grep4linux\fP) Added missing source_hash_name argument in get_managed function (refs: \fI\%#39199\fP)
  226916. .IP \(bu 2
  226917. df5f934c34 Merge pull request \fI\%#39199\fP from rallytime/bp\-39170
  226918. .IP \(bu 2
  226919. 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
  226920. .UNINDENT
  226921. .IP \(bu 2
  226922. \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)
  226923. .IP \(bu 2
  226924. \fBPR\fP \fI\%#39206\fP: (\fI\%cachedout\fP) Ignore empty dicts in highstate outputter
  226925. @ \fI2017\-02\-07 16:11:36 UTC\fP
  226926. .INDENT 2.0
  226927. .IP \(bu 2
  226928. 2621c119fd Merge pull request \fI\%#39206\fP from cachedout/issue_issue_37174
  226929. .IP \(bu 2
  226930. be31e0559c Ignore empty dicts in highstate outputter
  226931. .UNINDENT
  226932. .IP \(bu 2
  226933. \fBPR\fP \fI\%#39209\fP: (\fI\%terminalmage\fP) Sort the return list from the fileserver.envs runner
  226934. @ \fI2017\-02\-07 16:07:08 UTC\fP
  226935. .INDENT 2.0
  226936. .IP \(bu 2
  226937. dd440452ea Merge pull request \fI\%#39209\fP from terminalmage/sorted\-envs
  226938. .IP \(bu 2
  226939. e6dda4a625 Sort the return list from the fileserver.envs runner
  226940. .IP \(bu 2
  226941. \fBPR\fP \fI\%#39202\fP: (\fI\%rallytime\fP) [2016.3] Pylint fix
  226942. .UNINDENT
  226943. .IP \(bu 2
  226944. \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)
  226945. .IP \(bu 2
  226946. \fBPR\fP \fI\%#39197\fP: (\fI\%cachedout\fP) Pr 38793
  226947. @ \fI2017\-02\-06 19:23:12 UTC\fP
  226948. .INDENT 2.0
  226949. .IP \(bu 2
  226950. \fBPR\fP \fI\%#38793\fP: (\fI\%fboismenu\fP) Fix for \fI\%#38697\fP (refs: \fI\%#39197\fP, \fI\%#39230\fP)
  226951. .IP \(bu 2
  226952. ab76054127 Merge pull request \fI\%#39197\fP from cachedout/pr\-38793
  226953. .IP \(bu 2
  226954. f3d35fb5c6 Lint fixes
  226955. .IP \(bu 2
  226956. 624f25b78d Fix for \fI\%#38697\fP
  226957. .UNINDENT
  226958. .IP \(bu 2
  226959. \fBPR\fP \fI\%#39166\fP: (\fI\%Ch3LL\fP) fix boto ec2 module create_image doc
  226960. @ \fI2017\-02\-06 18:27:17 UTC\fP
  226961. .INDENT 2.0
  226962. .IP \(bu 2
  226963. fa45cbc359 Merge pull request \fI\%#39166\fP from Ch3LL/fix_boto_ec2_docs
  226964. .IP \(bu 2
  226965. 90af696331 fix boto ec2 module create_image doc
  226966. .UNINDENT
  226967. .IP \(bu 2
  226968. \fBPR\fP \fI\%#39173\fP: (\fI\%rallytime\fP) Restore "Salt Community" doc section
  226969. @ \fI2017\-02\-06 18:19:11 UTC\fP
  226970. .INDENT 2.0
  226971. .IP \(bu 2
  226972. \fBPR\fP \fI\%#30770\fP: (\fI\%jacobhammons\fP) Doc restructuring, organization, and cleanup (refs: \fI\%#39173\fP)
  226973. .IP \(bu 2
  226974. \fBPR\fP \fI\%#10792\fP: (\fI\%cachedout\fP) Documentation overhaul (refs: \fI\%#39173\fP)
  226975. .IP \(bu 2
  226976. a40cb46249 Merge pull request \fI\%#39173\fP from rallytime/restore\-community\-docs
  226977. .IP \(bu 2
  226978. 5aeddf42a0 Restore "Salt Community" doc section
  226979. .UNINDENT
  226980. .IP \(bu 2
  226981. \fBISSUE\fP \fI\%#38704\fP: (\fI\%nasenbaer13\fP) Archive extracted fails when another state run is queued (refs: \fI\%#38705\fP)
  226982. .INDENT 2.0
  226983. .IP \(bu 2
  226984. \fBPR\fP \fI\%#39077\fP: (\fI\%terminalmage\fP) Apply fix from \fI\%#38705\fP to 2016.3 branch
  226985. .IP \(bu 2
  226986. \fBPR\fP \fI\%#38705\fP: (\fI\%nasenbaer13\fP) Fix for \fI\%#38704\fP archive extracted and dockerio states (refs: \fI\%#39077\fP)
  226987. .IP \(bu 2
  226988. \fBPR\fP \fI\%#39146\fP: (\fI\%gtmanfred\fP) update vmware getting started doc
  226989. .IP \(bu 2
  226990. \fBPR\fP \fI\%#39145\fP: (\fI\%garethgreenaway\fP) [2016.3] Fix when targeting via pillar with Salt syndic
  226991. .UNINDENT
  226992. .IP \(bu 2
  226993. \fBPR\fP \fI\%#38804\fP: (\fI\%alexbleotu\fP) Second attempt to fix prepending of root_dir to paths
  226994. @ \fI2017\-02\-02 16:10:37 UTC\fP
  226995. .INDENT 2.0
  226996. .IP \(bu 2
  226997. cd8077ab81 Merge pull request \fI\%#38804\fP from alexbleotu/root_dir_fix\-2016.3\-gh
  226998. .IP \(bu 2
  226999. b3bdd3b04a Add missing whiteline
  227000. .IP \(bu 2
  227001. c7715acd53 Merge pull request \fI\%#3\fP from cro/ab_rootdirfix
  227002. .INDENT 2.0
  227003. .IP \(bu 2
  227004. e8cbafaaf1 When running testsuite, salt.syspaths.ROOT_DIR is often empty.
  227005. .UNINDENT
  227006. .IP \(bu 2
  227007. b12dd44a26 Merge pull request \fI\%#1\fP from cro/ab_rootdirfix
  227008. .INDENT 2.0
  227009. .IP \(bu 2
  227010. bffc537aca Remove extra if statements (rstrip will check for the presence anyway).
  227011. .UNINDENT
  227012. .IP \(bu 2
  227013. 97521b3468 Second attempt to fix prepending of root_dir to paths
  227014. .UNINDENT
  227015. .IP \(bu 2
  227016. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  227017. .INDENT 2.0
  227018. .IP \(bu 2
  227019. \fBPR\fP \fI\%#39131\fP: (\fI\%bobrik\fP) Clarify ipv6 option for minion and inteface for master, closes \fI\%#39118\fP
  227020. .IP \(bu 2
  227021. \fBPR\fP \fI\%#39116\fP: (\fI\%terminalmage\fP) Don\(aqt abort pillar.get with merge=True if default is None
  227022. .UNINDENT
  227023. .IP \(bu 2
  227024. \fBPR\fP \fI\%#39091\fP: (\fI\%terminalmage\fP) Run test_valid_docs in batches
  227025. @ \fI2017\-02\-01 19:09:05 UTC\fP
  227026. .INDENT 2.0
  227027. .IP \(bu 2
  227028. cc9b69b6bc Merge pull request \fI\%#39091\fP from terminalmage/update\-test\-valid\-docs
  227029. .IP \(bu 2
  227030. d76f0380d0 add debug logging for batch vars
  227031. .IP \(bu 2
  227032. b4afea2a25 Don\(aqt fail test if data is empty
  227033. .IP \(bu 2
  227034. b3a5d549c1 Account for trimmed value in \(aqsalt \-d\(aq output
  227035. .IP \(bu 2
  227036. 909916c78e Run test_valid_docs in batches
  227037. .IP \(bu 2
  227038. \fBPR\fP \fI\%#39081\fP: (\fI\%terminalmage\fP) Move fileclient tests to tests/integration/fileserver/fileclient_test.py
  227039. .IP \(bu 2
  227040. \fBPR\fP \fI\%#39067\fP: (\fI\%rallytime\fP) Bump openstack deprecation notice to Oxygen
  227041. .UNINDENT
  227042. .IP \(bu 2
  227043. \fBPR\fP \fI\%#39047\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  227044. @ \fI2017\-01\-30 23:48:14 UTC\fP
  227045. .INDENT 2.0
  227046. .IP \(bu 2
  227047. a24af5ac46 Merge pull request \fI\%#39047\fP from rallytime/merge\-2016.3
  227048. .IP \(bu 2
  227049. b732a1f646 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  227050. .IP \(bu 2
  227051. 56ccae6ff7 Add 2015.8.14 release notes file (\fI\%#39046\fP)
  227052. .IP \(bu 2
  227053. 5943fe65d3 Update 2015.8.13 release notes (\fI\%#39037\fP)
  227054. .IP \(bu 2
  227055. \fBPR\fP \fI\%#39045\fP: (\fI\%rallytime\fP) Add 2016.3.6 release notes file
  227056. .IP \(bu 2
  227057. \fBPR\fP \fI\%#39042\fP: (\fI\%rallytime\fP) [2016.3] Update release numbers for doc build
  227058. .IP \(bu 2
  227059. \fBPR\fP \fI\%#39038\fP: (\fI\%rallytime\fP) Update 2016.3.5 release notes
  227060. .UNINDENT
  227061. .IP \(bu 2
  227062. \fBPR\fP \fI\%#39028\fP: (\fI\%terminalmage\fP) Clarify delimiter argument
  227063. @ \fI2017\-01\-30 18:20:26 UTC\fP
  227064. .INDENT 2.0
  227065. .IP \(bu 2
  227066. 5b09dc4198 Merge pull request \fI\%#39028\fP from terminalmage/clarify\-delimiter\-argument
  227067. .IP \(bu 2
  227068. f29ef071f3 Clarify delimiter argument
  227069. .IP \(bu 2
  227070. \fBPR\fP \fI\%#39030\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38972\fP to 2016.3
  227071. .IP \(bu 2
  227072. \fBPR\fP \fI\%#38972\fP: (\fI\%rallytime\fP) Add CLI Example for rest_sample_utils.get_test_string function (refs: \fI\%#39030\fP)
  227073. .UNINDENT
  227074. .IP \(bu 2
  227075. \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)
  227076. .IP \(bu 2
  227077. \fBISSUE\fP \fI\%#38557\fP: (\fI\%alexbleotu\fP) Proxy not working on develop (refs: \fI\%#38829\fP)
  227078. .IP \(bu 2
  227079. \fBISSUE\fP \fI\%#38265\fP: (\fI\%mirceaulinic\fP) \fI__utils__\fP object not available in proxy module (refs: \fI\%#38899\fP, \fI\%#38829\fP)
  227080. .IP \(bu 2
  227081. \fBISSUE\fP \fI\%#32918\fP: (\fI\%mirceaulinic\fP) Proxy minions reconnection (refs: \fI\%#38829\fP)
  227082. .INDENT 2.0
  227083. .IP \(bu 2
  227084. \fBPR\fP \fI\%#38899\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies.
  227085. .IP \(bu 2
  227086. \fBPR\fP \fI\%#38829\fP: (\fI\%cro\fP) MANY dunder variable fixes for proxies + proxy keepalive from @mirceaulinic (refs: \fI\%#38899\fP)
  227087. .IP \(bu 2
  227088. \fBPR\fP \fI\%#37864\fP: (\fI\%mirceaulinic\fP) Proxy keepalive feature (refs: \fI\%#38829\fP)
  227089. .UNINDENT
  227090. .IP \(bu 2
  227091. \fBISSUE\fP \fI\%#37938\fP: (\fI\%johje349\fP) Memory leak in Reactor (refs: \fI\%#38951\fP)
  227092. .IP \(bu 2
  227093. \fBISSUE\fP \fI\%#33890\fP: (\fI\%hvnsweeting\fP) salt memleak when running state.sls (refs: \fI\%#38951\fP)
  227094. .IP \(bu 2
  227095. \fBPR\fP \fI\%#38951\fP: (\fI\%DmitryKuzmenko\fP) Keep the only one record per module\-function in depends decorator.
  227096. @ \fI2017\-01\-27 17:05:42 UTC\fP
  227097. .INDENT 2.0
  227098. .IP \(bu 2
  227099. da96221741 Merge pull request \fI\%#38951\fP from DSRCorporation/bugs/37938_fix_depends_decorator_memleak
  227100. .IP \(bu 2
  227101. 0b18f34678 Keep the only one record per module\-function in depends decorator.
  227102. .UNINDENT
  227103. .IP \(bu 2
  227104. \fBISSUE\fP \fI\%#34780\fP: (\fI\%joehoyle\fP) S3fs broken in 2016.3.1 (refs: \fI\%#38982\fP)
  227105. .IP \(bu 2
  227106. \fBPR\fP \fI\%#38982\fP: (\fI\%rallytime\fP) Set response when using "GET" method in s3 utils
  227107. @ \fI2017\-01\-27 17:04:48 UTC\fP
  227108. .INDENT 2.0
  227109. .IP \(bu 2
  227110. 85165edb70 Merge pull request \fI\%#38982\fP from rallytime/fix\-34780
  227111. .IP \(bu 2
  227112. 1583c5579a Set response when using "GET" method in s3 utils
  227113. .UNINDENT
  227114. .IP \(bu 2
  227115. \fBPR\fP \fI\%#38989\fP: (\fI\%anlutro\fP) Documentation: fix SLS in environment variable examples
  227116. @ \fI2017\-01\-27 17:00:08 UTC\fP
  227117. .INDENT 2.0
  227118. .IP \(bu 2
  227119. cfdbc99e12 Merge pull request \fI\%#38989\fP from alprs/docfix\-state_pt3_environ
  227120. .IP \(bu 2
  227121. 52a9ad1c60 fix SLS in environment variable examples
  227122. .UNINDENT
  227123. .IP \(bu 2
  227124. \fBPR\fP \fI\%#39000\fP: (\fI\%rallytime\fP) Skip the test_badload test until Jenkins move is complete
  227125. @ \fI2017\-01\-27 16:58:21 UTC\fP
  227126. .INDENT 2.0
  227127. .IP \(bu 2
  227128. 55e4d2572e Merge pull request \fI\%#39000\fP from rallytime/skip\-badload\-test
  227129. .IP \(bu 2
  227130. 4b3ff0fe0f Skip the test_badload test until Jenkins move is complete
  227131. .UNINDENT
  227132. .IP \(bu 2
  227133. \fBPR\fP \fI\%#38995\fP: (\fI\%terminalmage\fP) Fix pillar.item docstring
  227134. @ \fI2017\-01\-27 16:58:00 UTC\fP
  227135. .INDENT 2.0
  227136. .IP \(bu 2
  227137. fe054eb772 Merge pull request \fI\%#38995\fP from terminalmage/fix\-pillar.item\-docstring
  227138. .IP \(bu 2
  227139. 06d094dd8f Fix pillar.item docstring
  227140. .UNINDENT
  227141. .IP \(bu 2
  227142. \fBISSUE\fP \fI\%#34551\fP: (\fI\%mbom2004\fP) salt.engines.logstash not loading (refs: \fI\%#38950\fP)
  227143. .IP \(bu 2
  227144. \fBPR\fP \fI\%#38950\fP: (\fI\%mbom2004\fP) Fixed Logstash Engine in file logstash.py
  227145. @ \fI2017\-01\-26 19:10:07 UTC\fP
  227146. .INDENT 2.0
  227147. .IP \(bu 2
  227148. b66b6f6423 Merge pull request \fI\%#38950\fP from mbom2004/2016.3
  227149. .IP \(bu 2
  227150. c09f39d6c9 Remove unused json import
  227151. .IP \(bu 2
  227152. 249efa3068 Fixed Logstash Engine in file logstash.py
  227153. .IP \(bu 2
  227154. \fBPR\fP \fI\%#38973\fP: (\fI\%rallytime\fP) Handle changing "is_default" value in moto package for boto test mock
  227155. .UNINDENT
  227156. .IP \(bu 2
  227157. \fBPR\fP \fI\%#38952\fP: (\fI\%terminalmage\fP) Make the ext_pillars available to pillar.ext tunable
  227158. @ \fI2017\-01\-26 19:01:56 UTC\fP
  227159. .INDENT 2.0
  227160. .IP \(bu 2
  227161. b965b5dcc2 Merge pull request \fI\%#38952\fP from terminalmage/zd1168
  227162. .IP \(bu 2
  227163. 6b014e53fc Rename on_demand_pillar to on_demand_ext_pillar
  227164. .IP \(bu 2
  227165. d216f90c63 Document new on_demand_pillar option and add to config template
  227166. .IP \(bu 2
  227167. 426b20f02f Add documentation for on\-demand pillar to pillar.ext docstring
  227168. .IP \(bu 2
  227169. 7b10274b6b Make on\-demand ext_pillars tunable
  227170. .IP \(bu 2
  227171. d54723ccae Add on_demand_pillar config option
  227172. .UNINDENT
  227173. .IP \(bu 2
  227174. \fBISSUE\fP \fI\%#35777\fP: (\fI\%rallytime\fP) Properly deprecate template context data in Fluorine (refs: \fI\%#38948\fP)
  227175. .IP \(bu 2
  227176. \fBPR\fP \fI\%#38948\fP: (\fI\%rallytime\fP) Bump the template context deprecation version to Oxygen
  227177. @ \fI2017\-01\-25 19:45:59 UTC\fP
  227178. .INDENT 2.0
  227179. .IP \(bu 2
  227180. 2c4ad85a78 Merge pull request \fI\%#38948\fP from rallytime/bump\-template\-context\-deprecation
  227181. .IP \(bu 2
  227182. 749e0031d7 Bump the template context deprecation version to Oxygen
  227183. .UNINDENT
  227184. .IP \(bu 2
  227185. \fBPR\fP \fI\%#38946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37632\fP to 2016.3
  227186. @ \fI2017\-01\-25 19:40:40 UTC\fP
  227187. .INDENT 2.0
  227188. .IP \(bu 2
  227189. \fBPR\fP \fI\%#37632\fP: (\fI\%twangboy\fP) Fix versions report for Windows Server platforms (refs: \fI\%#38946\fP)
  227190. .IP \(bu 2
  227191. e4514ca7d8 Merge pull request \fI\%#38946\fP from rallytime/bp\-37632
  227192. .IP \(bu 2
  227193. ee37cdace9 Fix some lint
  227194. .IP \(bu 2
  227195. c08071e182 Fix versions report for server OSs
  227196. .UNINDENT
  227197. .IP \(bu 2
  227198. \fBPR\fP \fI\%#38913\fP: (\fI\%Adaephon\-GH\fP) Ignore plist files without Label key
  227199. @ \fI2017\-01\-25 19:07:27 UTC\fP
  227200. .INDENT 2.0
  227201. .IP \(bu 2
  227202. 953a20350a Merge pull request \fI\%#38913\fP from Adaephon\-GH/patch\-1
  227203. .IP \(bu 2
  227204. e2f4a16fdd Removing trailing whitespace
  227205. .IP \(bu 2
  227206. 616292c6b1 Ignore plist files without Label key
  227207. .UNINDENT
  227208. .IP \(bu 2
  227209. \fBPR\fP \fI\%#38917\fP: (\fI\%twangboy\fP) Update Jinja2 to 2.9.4
  227210. @ \fI2017\-01\-25 19:05:38 UTC\fP
  227211. .INDENT 2.0
  227212. .IP \(bu 2
  227213. 826dce1059 Merge pull request \fI\%#38917\fP from twangboy/update_jinja_mac
  227214. .IP \(bu 2
  227215. 62e608b627 Update Jinja2 to 2.9.4
  227216. .UNINDENT
  227217. .IP \(bu 2
  227218. \fBISSUE\fP \fI\%#38540\fP: (\fI\%amendlik\fP) API wheel client throws exception and success=true (refs: \fI\%#38925\fP)
  227219. .IP \(bu 2
  227220. \fBISSUE\fP \fI\%#38537\fP: (\fI\%amendlik\fP) API client wheel_async always returns status 500 (refs: \fI\%#38925\fP)
  227221. .IP \(bu 2
  227222. \fBPR\fP \fI\%#38925\fP: (\fI\%terminalmage\fP) Fix two wheel issues in netapi
  227223. @ \fI2017\-01\-25 18:28:52 UTC\fP
  227224. .INDENT 2.0
  227225. .IP \(bu 2
  227226. b27733cc33 Merge pull request \fI\%#38925\fP from terminalmage/issue38540
  227227. .IP \(bu 2
  227228. 76392fc6ad Fix traceback when a netapi module uses wheel_async
  227229. .IP \(bu 2
  227230. bd4474fa62 Fix \(aqsuccess\(aq value for wheel commands
  227231. .UNINDENT
  227232. .IP \(bu 2
  227233. \fBPR\fP \fI\%#38926\fP: (\fI\%gtmanfred\fP) add note about pysss for pam eauth
  227234. @ \fI2017\-01\-25 18:12:20 UTC\fP
  227235. .INDENT 2.0
  227236. .IP \(bu 2
  227237. 618596f0cc Merge pull request \fI\%#38926\fP from gtmanfred/2016.3
  227238. .IP \(bu 2
  227239. 9cae953c93 add note about pysss for pam eauth
  227240. .UNINDENT
  227241. .IP \(bu 2
  227242. \fBISSUE\fP \fI\%#38825\fP: (\fI\%IshMalik\fP) file.managed multiple sources for redundency failure (refs: \fI\%#38847\fP)
  227243. .IP \(bu 2
  227244. \fBPR\fP \fI\%#38847\fP: (\fI\%terminalmage\fP) Catch MinionError in file.source_list
  227245. @ \fI2017\-01\-24 16:03:10 UTC\fP
  227246. .INDENT 2.0
  227247. .IP \(bu 2
  227248. 405d86a2ca Merge pull request \fI\%#38847\fP from terminalmage/issue38825
  227249. .IP \(bu 2
  227250. 11a47803ce Use log.exception() instead
  227251. .IP \(bu 2
  227252. e40fac589a Catch MinionError in file.source_list
  227253. .UNINDENT
  227254. .IP \(bu 2
  227255. \fBISSUE\fP \fI\%#36121\fP: (\fI\%Ashald\fP) TemplateNotFound/Unable to cache file (refs: \fI\%#38875\fP)
  227256. .IP \(bu 2
  227257. \fBPR\fP \fI\%#38875\fP: (\fI\%terminalmage\fP) Reactor: fix traceback when salt:// path is nonexistant
  227258. @ \fI2017\-01\-24 15:23:39 UTC\fP
  227259. .INDENT 2.0
  227260. .IP \(bu 2
  227261. b5df104fc2 Merge pull request \fI\%#38875\fP from terminalmage/issue36121
  227262. .IP \(bu 2
  227263. fbc4d2a2c4 reactor: ensure glob_ref is a string
  227264. .IP \(bu 2
  227265. 2e443d79a3 cp.cache_file: add note re: return for nonexistant salt:// path
  227266. .UNINDENT
  227267. .IP \(bu 2
  227268. \fBISSUE\fP \fI\%#37413\fP: (\fI\%Snarfingcode666\fP) Salt\-cloud vmware missing reboot command (refs: \fI\%#38887\fP, \fI\%#38890\fP)
  227269. .IP \(bu 2
  227270. \fBPR\fP \fI\%#38890\fP: (\fI\%cro\fP) Backport \fI\%#38887\fP to 2016.3: Enable resetting a VM via salt\-cloud & VMware driver
  227271. @ \fI2017\-01\-24 15:15:35 UTC\fP
  227272. .INDENT 2.0
  227273. .IP \(bu 2
  227274. \fBPR\fP \fI\%#38887\fP: (\fI\%cro\fP) Enable resetting a VM via salt\-cloud & VMware driver (refs: \fI\%#38890\fP)
  227275. .IP \(bu 2
  227276. e9ebec4d80 Merge pull request \fI\%#38890\fP from cro/vmware_reset_vm_20163
  227277. .IP \(bu 2
  227278. 0146562fb4 Call correct function for resetting a VM
  227279. .UNINDENT
  227280. .IP \(bu 2
  227281. \fBPR\fP \fI\%#38883\fP: (\fI\%techhat\fP) Don\(aqt require text_out path to exist
  227282. @ \fI2017\-01\-23 18:20:42 UTC\fP
  227283. .INDENT 2.0
  227284. .IP \(bu 2
  227285. \fBPR\fP \fI\%#38867\fP: (\fI\%mchugh19\fP) Touch deploy.sh before use (refs: \fI\%#38883\fP)
  227286. .IP \(bu 2
  227287. \fBPR\fP \fI\%#32026\fP: (\fI\%techhat\fP) Don\(aqt require the decode_out file to already exist (refs: \fI\%#38883\fP)
  227288. .IP \(bu 2
  227289. c3fbfcd231 Merge pull request \fI\%#38883\fP from techhat/dontrequire
  227290. .IP \(bu 2
  227291. 67bc4d6687 Don\(aqt require text_out path to exist
  227292. .UNINDENT
  227293. .IP \(bu 2
  227294. \fBPR\fP \fI\%#38851\fP: (\fI\%terminalmage\fP) Support docker\-py 2.0 in dockerng
  227295. @ \fI2017\-01\-23 16:48:12 UTC\fP
  227296. .INDENT 2.0
  227297. .IP \(bu 2
  227298. 6430a45196 Merge pull request \fI\%#38851\fP from terminalmage/docker\-py\-2.0
  227299. .IP \(bu 2
  227300. 3c061b21fe Support docker\-py 2.0 in dockerng
  227301. .UNINDENT
  227302. .IP \(bu 2
  227303. \fBPR\fP \fI\%#38844\fP: (\fI\%cachedout\fP) Fix memory leak in HTTP client
  227304. @ \fI2017\-01\-20 20:59:14 UTC\fP
  227305. .INDENT 2.0
  227306. .IP \(bu 2
  227307. ac8008d843 Merge pull request \fI\%#38844\fP from cachedout/http_memory_leak
  227308. .IP \(bu 2
  227309. c46bf85518 Fix memory leak in HTTP client
  227310. .UNINDENT
  227311. .IP \(bu 2
  227312. \fBISSUE\fP \fI\%#38798\fP: (\fI\%ripta\fP) \fImatch.compound\fP fails to match when pillar data is used (refs: \fI\%#38823\fP)
  227313. .IP \(bu 2
  227314. \fBPR\fP \fI\%#38823\fP: (\fI\%gtmanfred\fP) pass pillar to compound matcher in match module
  227315. @ \fI2017\-01\-20 19:19:09 UTC\fP
  227316. .INDENT 2.0
  227317. .IP \(bu 2
  227318. dfe6dfe963 Merge pull request \fI\%#38823\fP from gtmanfred/2016.3
  227319. .IP \(bu 2
  227320. f0a71e8707 pass pillar to compound matcher in match module
  227321. .UNINDENT
  227322. .UNINDENT
  227323. .SS Salt 2016.3.7 Release Notes
  227324. .sp
  227325. Version 2016.3.7 is a bugfix release for 2016.3.0\&.
  227326. .SS Security Fix
  227327. .sp
  227328. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  227329. traversals on the Salt\-master
  227330. .sp
  227331. This release corrects a flaw in minion ID validation which could allow certain minions to
  227332. authenticate to a master despite not having the correct credentials. To exploit
  227333. the vulnerability, an attacker must create a salt\-minion with an ID containing
  227334. characters that will cause a directory traversal. Credit for discovering the
  227335. security flaw goes to: \fI\%Vernhk@qq.com\fP
  227336. .SS Changelog for v2016.3.6..v2016.3.7
  227337. .sp
  227338. \fIGenerated at: 2018\-05\-27 14:09:17 UTC\fP
  227339. .INDENT 0.0
  227340. .IP \(bu 2
  227341. 11d176ff1b Add release notes for 2016.3.7 release
  227342. .IP \(bu 2
  227343. dc649ded51 Add clean_id function to salt.utils.verify.py
  227344. .UNINDENT
  227345. .SS Salt 2016.3.8 Release Notes
  227346. .sp
  227347. Version 2016.3.8 is a bugfix release for 2016.3.0\&.
  227348. .SS Security Fix
  227349. .sp
  227350. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  227351. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  227352. a master via a crafted minion ID. Credit for discovering the security flaw goes
  227353. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  227354. .sp
  227355. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  227356. authentication request. Credit for discovering the security flaw goes to:
  227357. Julian Brost (\fI\%julian@0x4a42.net\fP)
  227358. .SS Changelog for v2016.3.7..v2016.3.8
  227359. .sp
  227360. \fIGenerated at: 2018\-05\-27 14:11:36 UTC\fP
  227361. .INDENT 0.0
  227362. .IP \(bu 2
  227363. 8cf08bd7be Update 2016.3.7 Release Notes
  227364. .IP \(bu 2
  227365. 0425defe84 Do not allow IDs with null bytes in decoded payloads
  227366. .IP \(bu 2
  227367. 31b38f50eb Don\(aqt allow path separators in minion ID
  227368. .UNINDENT
  227369. .SS Salt 2016.3.9 Release Notes
  227370. .sp
  227371. Version 2016.3.9 is a bugfix release for 2016.3.0\&.
  227372. .SS Master Changes
  227373. .sp
  227374. The following options have been added to the master config file:
  227375. .INDENT 0.0
  227376. .IP \(bu 2
  227377. \fBallow_minion_key_revoke\fP \- This option controls whether a
  227378. minion can request that the master revoke its key. When \fBTrue\fP, a minion
  227379. can request a key revocation and the master will comply. If it is \fBFalse\fP,
  227380. the key will not be revoked by the msater.
  227381. .IP \(bu 2
  227382. \fBrequire_minion_sign_messages\fP \- This requires that minions
  227383. cryptographically sign the messages they publish to the master. If minions
  227384. are not signing, then log this information at loglevel \fBINFO\fP and drop the
  227385. message without acting on it.
  227386. .IP \(bu 2
  227387. \fBdrop_messages_signature_fail\fP \- Drop messages from minions when
  227388. their signatures do not validate. Note that when this option is \fBFalse\fP but
  227389. \fIrequire_minion_sign_messages\fP is \fBTrue\fP, minions \fIMUST\fP sign their
  227390. messages, but the validity of their signatures is ignored.
  227391. .IP \(bu 2
  227392. \fBminion_sign_messages\fP \- Causes the minion to cryptographically
  227393. sign the payload of messages it places on the event bus for the master. The
  227394. payloads are signed with the minion\(aqs private key so the master can verify
  227395. the signature with its public key.
  227396. .UNINDENT
  227397. .SS Salt 2015.8.0 Release Notes \- Codename Beryllium
  227398. .SS 2015.8.0 Detailed Change List
  227399. .sp
  227400. Extended changelog courtesy of Todd Stansell (\fI\%https://github.com/tjstansell/salt\-changelogs\fP)
  227401. .sp
  227402. \fIGenerated at: 2015\-09\-09T18:15:43Z\fP
  227403. .sp
  227404. This list includes all pull requests merged into the 2015.8 branch between the
  227405. forking of the branch from develop and the release of 2015.8.0.
  227406. .sp
  227407. Statistics:
  227408. .INDENT 0.0
  227409. .IP \(bu 2
  227410. Total Merges: \fB682\fP
  227411. .IP \(bu 2
  227412. Total Issue references: \fB342\fP
  227413. .IP \(bu 2
  227414. Total PR references: \fB866\fP
  227415. .UNINDENT
  227416. .sp
  227417. Pull Requests:
  227418. .INDENT 0.0
  227419. .IP \(bu 2
  227420. \fI\%#26993\fP: (\fIwhiteinge\fP) Backport \fI\%#26975\fP
  227421. .IP \(bu 2
  227422. \fI\%#26970\fP: (\fIcachedout\fP) Revert "better path query parsing in fileserver"
  227423. .IP \(bu 2
  227424. \fI\%#26980\fP: (\fIterminalmage\fP) Use human\-readable cachedirs for gitfs\-backed winrepo
  227425. .IP \(bu 2
  227426. \fI\%#26969\fP: (\fITheBigBear\fP) URL of salt windows downloads has changed
  227427. .IP \(bu 2
  227428. \fI\%#26968\fP: (\fITheBigBear\fP) URL of salt windows downloads has changed
  227429. .IP \(bu 2
  227430. \fI\%#26958\fP: (\fIs0undt3ch\fP) Bradthurber bootstrap command line help doc update
  227431. .IP \(bu 2
  227432. \fI\%#26949\fP: (\fIrallytime\fP) Back\-port \fI\%#25148\fP to 2015.8
  227433. .IP \(bu 2
  227434. \fI\%#26914\fP: (\fIcro\fP) Add salt\-proxy script and manpage to setup.py so they will get installed.
  227435. .IP \(bu 2
  227436. \fI\%#26909\fP: (\fIterminalmage\fP) Don\(aqt try to git clone from /tmp on Windows
  227437. .IP \(bu 2
  227438. \fI\%#26910\fP: (\fIs0undt3ch\fP) Sometimes the event system is just too fast
  227439. .IP \(bu 2
  227440. \fI\%#26905\fP: (\fIs0undt3ch\fP) Exit the loop if run_once is true
  227441. .IP \(bu 2
  227442. \fI\%#26897\fP: (\fImsteed\fP) spm file hash part deux
  227443. .IP \(bu 2
  227444. \fI\%#26900\fP: (\fIs0undt3ch\fP) If no tag is passed, don\(aqt actually subscribe to anything.
  227445. .IP \(bu 2
  227446. \fI\%#26880\fP: (\fIs0undt3ch\fP) Restore backwards compatibility to \fIsalt.utils.event\fP
  227447. .IP \(bu 2
  227448. \fI\%#26896\fP: (\fImsteed\fP) spm remove: use pkgfiles to calculate file hashes
  227449. .IP \(bu 2
  227450. \fI\%#26891\fP: (\fIjtand\fP) Fixed an unboundlocalerror
  227451. .IP \(bu 2
  227452. \fI\%#26892\fP: (\fIcachedout\fP) Make the testing ioloop the current one
  227453. .IP \(bu 2
  227454. \fI\%#26886\fP: (\fIjtand\fP) Gets the azure version correctly on python\-azure 1.0.0
  227455. .IP \(bu 2
  227456. \fI\%#26870\fP: (\fIrallytime\fP) Back\-port \fI\%#26834\fP to 2015.8
  227457. .IP \(bu 2
  227458. \fI\%#26865\fP: (\fIdmurphy18\fP) Fix apt preferences for apts, repos for pbuilder building for Debian
  227459. .IP \(bu 2
  227460. \fI\%#26873\fP: (\fIterminalmage\fP) Properly handle getting local config values in older git versions
  227461. .IP \(bu 2
  227462. \fI\%#26869\fP: (\fIrallytime\fP) Fix provider \-\-> driver change for salt\-cloud lxc
  227463. .IP \(bu 2
  227464. \fI\%#26858\fP: (\fIterminalmage\fP) Fix a couple version checks for git state and execution module
  227465. .IP \(bu 2
  227466. \fI\%#26853\fP: (\fIUtahDave\fP) Fix salt\-cloud on windows
  227467. .IP \(bu 2
  227468. \fI\%#26852\fP: (\fIbasepi\fP) [2015.8] Only reference msgpack if it imported successfully
  227469. .IP \(bu 2
  227470. \fI\%#26835\fP: (\fIterminalmage\fP) Backport \fI\%#26572\fP to 2015.8
  227471. .IP \(bu 2
  227472. \fI\%#26836\fP: (\fIjacobhammons\fP) Added rst source for salt\-proxy man page, added build and copy lines …
  227473. .IP \(bu 2
  227474. \fI\%#26818\fP: (\fIterminalmage\fP) Support empty repositories in git.latest
  227475. .IP \(bu 2
  227476. \fI\%#26819\fP: (\fIrallytime\fP) Make sure we\(aqre calling _validate_name in the correct place in 2015.8 Linode driver
  227477. .IP \(bu 2
  227478. \fI\%#26841\fP: (\fIl2ol33rt\fP) Fix reference before assignment in sqs engine
  227479. .IP \(bu 2
  227480. \fI\%#26822\fP: (\fIterminalmage\fP) Add some missing imports for masterless winrepo
  227481. .IP \(bu 2
  227482. \fI\%#26831\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227483. .IP \(bu 2
  227484. \fI\%#26826\fP: (\fItechhat\fP) Pass a package name to unregister_file()
  227485. .IP \(bu 2
  227486. \fI\%#26757\fP: (\fIcachedout\fP) Fix various filehandle leaks
  227487. .IP \(bu 2
  227488. \fI\%#26816\fP: (\fIgtmanfred\fP) rev defaults to HEAD
  227489. .IP \(bu 2
  227490. \fI\%#26801\fP: (\fIjacobhammons\fP) Added doc for dockerng minion configuration options
  227491. .IP \(bu 2
  227492. \fI\%#26808\fP: (\fIanlutro\fP) Fix git init argument formatting
  227493. .IP \(bu 2
  227494. \fI\%#26807\fP: (\fIterminalmage\fP) Move salt.utils.itersplit() to salt.utils.itertools.split()
  227495. .IP \(bu 2
  227496. \fI\%#26796\fP: (\fIjacobhammons\fP) Add doc for __states__
  227497. .IP \(bu 2
  227498. \fI\%#26764\fP: (\fIsjorge\fP) salt.utils.is_proxy() is no longer always true on SunOS/Illumos/SmartOS
  227499. .IP \(bu 2
  227500. \fI\%#26772\fP: (\fIsjorge\fP) pull in smartos \(aqvirt\(aq module from develop
  227501. .IP \(bu 2
  227502. \fI\%#26726\fP: (\fIterminalmage\fP) Redact HTTPS Basic Auth in states/funcs which deal with git remotes
  227503. .IP \(bu 2
  227504. \fI\%#26769\fP: (\fIterminalmage\fP) Use \-\-track to set tracking branch on older git versions
  227505. .IP \(bu 2
  227506. \fI\%#26765\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227507. .IP \(bu 2
  227508. \fI\%#26761\fP: (\fIsjorge\fP) fix SPM paths on smartos/illumos esky
  227509. .IP \(bu 2
  227510. \fI\%#26751\fP: (\fIterminalmage\fP) Fixes for masterless winrepo
  227511. .IP \(bu 2
  227512. \fI\%#26745\fP: (\fIrallytime\fP) Make sure pyrax configs are in place before checking for deps
  227513. .IP \(bu 2
  227514. \fI\%#26746\fP: (\fIrallytime\fP) Make sure nova configs are set before checking for dependencies
  227515. .IP \(bu 2
  227516. \fI\%#26750\fP: (\fIbasepi\fP) [2015.8] Add __utils__ to state modules
  227517. .IP \(bu 2
  227518. \fI\%#26752\fP: (\fIcro\fP) Fix typo in some diagram labels
  227519. .IP \(bu 2
  227520. \fI\%#26747\fP: (\fIbasepi\fP) [2015.8] Add __states__ to state modules, for cross\-calling states
  227521. .IP \(bu 2
  227522. \fI\%#26744\fP: (\fIbasepi\fP) [2015.8] Fix issue from \fI\%#26717\fP
  227523. .IP \(bu 2
  227524. \fI\%#26737\fP: (\fIdmurphy18\fP) Fix to allow for package naming other than just salt
  227525. .IP \(bu 2
  227526. \fI\%#26742\fP: (\fIrallytime\fP) Only warn about vsphere deprecation if vsphere is configured
  227527. .IP \(bu 2
  227528. \fI\%#26733\fP: (\fIsjorge\fP) Refactor of smartos_vmadm module
  227529. .IP \(bu 2
  227530. \fI\%#26735\fP: (\fIs0undt3ch\fP) Add \fI\&.hg\fP and \fI\&.cvs\fP to spm_build_exclude
  227531. .IP \(bu 2
  227532. \fI\%#26720\fP: (\fIUtahDave\fP) Updates for winrepo in 2015.8 to support jinja, while maintaining backwards compat
  227533. .IP \(bu 2
  227534. \fI\%#26719\fP: (\fIjodv\fP) Backport 26532 to 2015.8
  227535. .IP \(bu 2
  227536. \fI\%#26721\fP: (\fIrallytime\fP) Linode Driver Cleanup
  227537. .IP \(bu 2
  227538. \fI\%#26707\fP: (\fItechhat\fP) Add top_level_dir to FORMULAs
  227539. .IP \(bu 2
  227540. \fI\%#26723\fP: (\fIs0undt3ch\fP) Handle SPM paths in the setup script
  227541. .IP \(bu 2
  227542. \fI\%#26717\fP: (\fIbasepi\fP) [2015.8] Revert loader changes from \fI\%#26645\fP
  227543. .IP \(bu 2
  227544. \fI\%#26712\fP: (\fItechhat\fP) Move SPM paths around
  227545. .IP \(bu 2
  227546. \fI\%#26680\fP: (\fITheBigBear\fP) add more python libs info in \(aq\-\-versions\-report\(aq
  227547. .IP \(bu 2
  227548. \fI\%#26716\fP: (\fIterminalmage\fP) Allow git identity to be a list
  227549. .IP \(bu 2
  227550. \fI\%#26691\fP: (\fIgarethgreenaway\fP) Fixes to ipset module for 2015.8
  227551. .IP \(bu 2
  227552. \fI\%#26701\fP: (\fIkev009\fP) Ignore the first element of kern.disks split, which is the sysctl name (new disks grain)
  227553. .IP \(bu 2
  227554. \fI\%#26678\fP: (\fIterminalmage\fP) Restructure git.latest rewrite to work better when following HEAD
  227555. .IP \(bu 2
  227556. \fI\%#26679\fP: (\fIrallytime\fP) Back\-port \fI\%#26661\fP to 2015.8
  227557. .IP \(bu 2
  227558. \fI\%#26684\fP: (\fItechhat\fP) Add reactor formulas to spm
  227559. .IP \(bu 2
  227560. \fI\%#26682\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227561. .IP \(bu 2
  227562. \fI\%#26671\fP: (\fIrallytime\fP) Warn users if cloud driver dependencies are missing.
  227563. .IP \(bu 2
  227564. \fI\%#26674\fP: (\fIrallytime\fP) Back\-port \fI\%#26583\fP to 2015.8
  227565. .IP \(bu 2
  227566. \fI\%#26670\fP: (\fItechhat\fP) Set up SPM to install \-conf packages
  227567. .IP \(bu 2
  227568. \fI\%#26657\fP: (\fIjfindlay\fP) top file compilation fixes
  227569. .IP \(bu 2
  227570. \fI\%#26659\fP: (\fITheBigBear\fP) minor doc edits \- spelling
  227571. .IP \(bu 2
  227572. \fI\%#26654\fP: (\fIjfindlay\fP) merge \fI\%#26650\fP
  227573. .IP \(bu 2
  227574. \fI\%#26567\fP: (\fIjtand\fP) Added git version check to git module
  227575. .IP \(bu 2
  227576. \fI\%#26649\fP: (\fItwangboy\fP) Fixed Lint for real in win_repo.py
  227577. .IP \(bu 2
  227578. \fI\%#26608\fP: (\fIjacobhammons\fP) 2015.8.0 release notes and doc/conf.py updates
  227579. .IP \(bu 2
  227580. \fI\%#26646\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227581. .IP \(bu 2
  227582. \fI\%#26645\fP: (\fIrallytime\fP) Back\-port \fI\%#26390\fP to 2015.8
  227583. .IP \(bu 2
  227584. \fI\%#26642\fP: (\fItwangboy\fP) Added function to render winrepo Jinja
  227585. .IP \(bu 2
  227586. \fI\%#26625\fP: (\fItwangboy\fP) Correctly detect packages with no version, docs
  227587. .IP \(bu 2
  227588. \fI\%#26575\fP: (\fImsteed\fP) Update spm for integration into raas
  227589. .IP \(bu 2
  227590. \fI\%#26635\fP: (\fIcro\fP) Don\(aqt report windows as a proxy.
  227591. .IP \(bu 2
  227592. \fI\%#26622\fP: (\fIrallytime\fP) [2015.8] Also add \-Z to script args for cloud tests
  227593. .IP \(bu 2
  227594. \fI\%#26619\fP: (\fIrallytime\fP) Apply cloud test fixes from 2015.5 to 2015.8
  227595. .IP \(bu 2
  227596. \fI\%#26603\fP: (\fIterminalmage\fP) Fixes for git.latest, git module integration tests, etc.
  227597. .IP \(bu 2
  227598. \fI\%#26577\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227599. .IP \(bu 2
  227600. \fI\%#26534\fP: (\fIcachedout\fP) Bump required Tornado version to 4.2.1
  227601. .IP \(bu 2
  227602. \fI\%#26566\fP: (\fIcachedout\fP) Don\(aqt stacktrace trying to publish without a master
  227603. .IP \(bu 2
  227604. \fI\%#26541\fP: (\fIterminalmage\fP) Make winrepo execution module use the same code as the runner
  227605. .IP \(bu 2
  227606. \fI\%#26530\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227607. .IP \(bu 2
  227608. \fI\%#26570\fP: (\fIcachedout\fP) Fix haproxy docs to be valid
  227609. .IP \(bu 2
  227610. \fI\%#26562\fP: (\fIcachedout\fP) Fix suprious error message with systemd\-detect
  227611. .IP \(bu 2
  227612. \fI\%#26557\fP: (\fIjfindlay\fP) add docs to \fI\%#26550\fP
  227613. .IP \(bu 2
  227614. \fI\%#26544\fP: (\fInmadhok\fP) Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  227615. .IP \(bu 2
  227616. \fI\%#26501\fP: (\fIterminalmage\fP) Update git_pillar docs, add git.list_worktrees function
  227617. .IP \(bu 2
  227618. \fI\%#26521\fP: (\fIterminalmage\fP) Work around upstream git bug when cloning repo as root
  227619. .IP \(bu 2
  227620. \fI\%#26518\fP: (\fIkrak3n\fP) Fix for \fI\%#25492\fP
  227621. .IP \(bu 2
  227622. \fI\%#26514\fP: (\fIevverx\fP) Unmask a runtime masked services too
  227623. .IP \(bu 2
  227624. \fI\%#26529\fP: (\fImnalt\fP) bugfix: fix service.enable for missing rc.conf
  227625. .IP \(bu 2
  227626. \fI\%#26516\fP: (\fItechhat\fP) Move more path operations into SPM loader
  227627. .IP \(bu 2
  227628. \fI\%#26533\fP: (\fIcachedout\fP) Fix too aggressive even init check
  227629. .IP \(bu 2
  227630. \fI\%#26522\fP: (\fIcro\fP) Do not load package provider if its not a proxy
  227631. .IP \(bu 2
  227632. \fI\%#26531\fP: (\fIcachedout\fP) Fix failing event tests and modify event init
  227633. .IP \(bu 2
  227634. \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
  227635. .IP \(bu 2
  227636. \fI\%#26504\fP: (\fInmadhok\fP) [Backport] Adding ability to specify the virtual hardware version when creating VM
  227637. .IP \(bu 2
  227638. \fI\%#26517\fP: (\fIcachedout\fP) Better fix for opensuse tornado httpclient
  227639. .IP \(bu 2
  227640. \fI\%#26479\fP: (\fIrallytime\fP) Don\(aqt allow VMs with duplicate names to be created in EC2/AWS
  227641. .IP \(bu 2
  227642. \fI\%#26488\fP: (\fIcachedout\fP) Don\(aqt pass unsupported kwarg to tornado
  227643. .IP \(bu 2
  227644. \fI\%#26451\fP: (\fIterminalmage\fP) Use \(aqrpm \-qa\(aq instead of repoquery to list installed packages
  227645. .IP \(bu 2
  227646. \fI\%#26491\fP: (\fIjacobhammons\fP) doc site css fix for tiny fonts that appeared in code or pre tags in …
  227647. .IP \(bu 2
  227648. \fI\%#26442\fP: (\fIrallytime\fP) Hide API Key from debug logs for Linode Driver
  227649. .IP \(bu 2
  227650. \fI\%#26441\fP: (\fIrallytime\fP) Refactor a few linode functions to be useful with salt\-cloud command
  227651. .IP \(bu 2
  227652. \fI\%#26485\fP: (\fIs0undt3ch\fP) One more missed typo
  227653. .IP \(bu 2
  227654. \fI\%#26495\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227655. .IP \(bu 2
  227656. \fI\%#26492\fP: (\fIcachedout\fP) Fix schedule test error on py26
  227657. .IP \(bu 2
  227658. \fI\%#26489\fP: (\fIcachedout\fP) Fixing more tarfile tests on py2.6
  227659. .IP \(bu 2
  227660. \fI\%#26475\fP: (\fIcachedout\fP) Better object checking on asyncreq cleanup
  227661. .IP \(bu 2
  227662. \fI\%#26477\fP: (\fIcachedout\fP) Fix integration.modules.git.GitModuleTest.test_archive on py26
  227663. .IP \(bu 2
  227664. \fI\%#26469\fP: (\fIjtand\fP) \-\-annotate and \-\-message aren\(aqt valid options in older versions of git.
  227665. .IP \(bu 2
  227666. \fI\%#26439\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227667. .IP \(bu 2
  227668. \fI\%#26464\fP: (\fIrallytime\fP) Back\-port \fI\%#26456\fP to 2015.8
  227669. .IP \(bu 2
  227670. \fI\%#26463\fP: (\fIrallytime\fP) Back\-port \fI\%#26455\fP to 2015.8
  227671. .IP \(bu 2
  227672. \fI\%#26449\fP: (\fIs0undt3ch\fP) The CLI options are not meant to include underscores.
  227673. .IP \(bu 2
  227674. \fI\%#26270\fP: (\fIsjorge\fP) salt.modules.network now supports SmartOS and SunOS < Solaris 11
  227675. .IP \(bu 2
  227676. \fI\%#26436\fP: (\fITheBigBear\fP) minor edits
  227677. .IP \(bu 2
  227678. \fI\%#26410\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227679. .IP \(bu 2
  227680. \fI\%#26427\fP: (\fIanlutro\fP) git.latest with no rev: fix concatenation error (NoneType and str)
  227681. .IP \(bu 2
  227682. \fI\%#26307\fP: (\fIcachedout\fP) Fix bug in top file ordering
  227683. .IP \(bu 2
  227684. \fI\%#26428\fP: (\fIcro\fP) Update docs to reflect new pillar structure
  227685. .IP \(bu 2
  227686. \fI\%#26429\fP: (\fIcachedout\fP) Add release note regarding tcp transport on freebsd
  227687. .IP \(bu 2
  227688. \fI\%#26418\fP: (\fIdriskell\fP) Fix forward\-merged caching from 2015.5 into 2015.8 to be compatible with the new match_func
  227689. .IP \(bu 2
  227690. \fI\%#26252\fP: (\fIDmitryKuzmenko\fP) Issues/24048 http client 2015.8
  227691. .IP \(bu 2
  227692. \fI\%#26413\fP: (\fIevverx\fP) Fix service.{start,restart,reload,force\-reload} for masked services
  227693. .IP \(bu 2
  227694. \fI\%#26393\fP: (\fIdmurphy18\fP) Added option parameters to make_repo to allow for configuration settings
  227695. .IP \(bu 2
  227696. \fI\%#26422\fP: (\fITheBigBear\fP) no dots in SLS filename __AND__ any directories (incl git repos)
  227697. .IP \(bu 2
  227698. \fI\%#26323\fP: (\fI0xf10e\fP) Fix Credentials used in \fIglance\fP Exec Module
  227699. .IP \(bu 2
  227700. \fI\%#26341\fP: (\fIterminalmage\fP) Rewrite git state and execution modules
  227701. .IP \(bu 2
  227702. \fI\%#26419\fP: (\fIterminalmage\fP) Only use pygit2.errors if it exists
  227703. .IP \(bu 2
  227704. \fI\%#26423\fP: (\fIeliasp\fP) doc \- Correct function name for peer configuration
  227705. .IP \(bu 2
  227706. \fI\%#26401\fP: (\fIcachedout\fP) Adapt proxy minion to tornado (w/lint)
  227707. .IP \(bu 2
  227708. \fI\%#26400\fP: (\fIrallytime\fP) Back\-port \fI\%#26318\fP to 2015.8
  227709. .IP \(bu 2
  227710. \fI\%#26397\fP: (\fIs0undt3ch\fP) A single \fIisinstance()\fP check for all types is enough
  227711. .IP \(bu 2
  227712. \fI\%#26385\fP: (\fIgtmanfred\fP) don\(aqt require volume endpoint in nova driver
  227713. .IP \(bu 2
  227714. \fI\%#26287\fP: (\fItechhat\fP) Break out SPM components into loaders
  227715. .IP \(bu 2
  227716. \fI\%#26384\fP: (\fITheBigBear\fP) Fix shell quoting for cmd.run
  227717. .IP \(bu 2
  227718. \fI\%#26391\fP: (\fIrallytime\fP) Back\-port \fI\%#26367\fP to 2015.8
  227719. .IP \(bu 2
  227720. \fI\%#26383\fP: (\fIrallytime\fP) Allow the creation of a VM without a profile
  227721. .IP \(bu 2
  227722. \fI\%#26375\fP: (\fIs0undt3ch\fP) [2015.8] Schema DictItem required attribute fixes
  227723. .IP \(bu 2
  227724. \fI\%#26363\fP: (\fIgarethgreenaway\fP) Fixes to mount state 2015.8
  227725. .IP \(bu 2
  227726. \fI\%#26347\fP: (\fI0xf10e\fP) Load \(aqpkgng\(aq as \(aqpkg\(aq on FreeBSD 9 when \fIproviders:pkg\fP == \(aqpkgng\(aq
  227727. .IP \(bu 2
  227728. \fI\%#26361\fP: (\fITronPaul\fP) sign security token
  227729. .IP \(bu 2
  227730. \fI\%#26346\fP: (\fITronPaul\fP) Fix s3 using IAM credentials
  227731. .IP \(bu 2
  227732. \fI\%#26331\fP: (\fImnalt\fP) fix bug in sysrc to allow for empty rc variables
  227733. .IP \(bu 2
  227734. \fI\%#26334\fP: (\fIrallytime\fP) Call salt.utils.cloud.bootstrap in GCE Driver provisioning
  227735. .IP \(bu 2
  227736. \fI\%#26308\fP: (\fIdmurphy18\fP) Support for environment overrides building packages
  227737. .IP \(bu 2
  227738. \fI\%#26279\fP: (\fITheScriptSage\fP) Merge changes for pull\(ga#26083\(ga_ and pull\(ga#25632\(ga_ into 2015.8
  227739. .IP \(bu 2
  227740. \fI\%#26224\fP: (\fIcachedout\fP) Cleanup of a few cases to move to salt.utils.fopen
  227741. .IP \(bu 2
  227742. \fI\%#26260\fP: (\fInmadhok\fP) Correct spelling of integration in docs
  227743. .IP \(bu 2
  227744. \fI\%#26226\fP: (\fIrallytime\fP) Fix \fI\%#25463\fP
  227745. .IP \(bu 2
  227746. \fI\%#26248\fP: (\fInmadhok\fP) Initial commit of unit tests for vmware cloud driver
  227747. .IP \(bu 2
  227748. \fI\%#26228\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227749. .IP \(bu 2
  227750. \fI\%#26244\fP: (\fInmadhok\fP) Backport additions to VMware cloud driver from develop to 2015.8 branch
  227751. .IP \(bu 2
  227752. \fI\%#26235\fP: (\fIsjorge\fP) salt.utils.is_smartos_zone, inverse of is_smartos_globalzone
  227753. .IP \(bu 2
  227754. \fI\%#26221\fP: (\fIsjorge\fP) SmartOS grain fixes
  227755. .IP \(bu 2
  227756. \fI\%#26218\fP: (\fIterminalmage\fP) Add warning about file.recurse unicode errors with vim swap files.
  227757. .IP \(bu 2
  227758. \fI\%#26214\fP: (\fIrallytime\fP) Back\-port \fI\%#24878\fP to 2015.8
  227759. .IP \(bu 2
  227760. \fI\%#26211\fP: (\fItechhat\fP) Move SPM to its own directory
  227761. .IP \(bu 2
  227762. \fI\%#26197\fP: (\fITronPaul\fP) Fix GitFS when whitelisting base
  227763. .IP \(bu 2
  227764. \fI\%#26200\fP: (\fIanlutro\fP) Make it possible to run salt\-cloud as current user
  227765. .IP \(bu 2
  227766. \fI\%#26201\fP: (\fIkev009\fP) Avoid VBOX storage emulation bugs in FreeBSD disks grain
  227767. .IP \(bu 2
  227768. \fI\%#26188\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227769. .IP \(bu 2
  227770. \fI\%#26194\fP: (\fIbasepi\fP) Allow virtual grains to be generated even if virt\-what is not available
  227771. .IP \(bu 2
  227772. \fI\%#26176\fP: (\fIrallytime\fP) Back\-port \fI\%#26165\fP to 2015.8
  227773. .IP \(bu 2
  227774. \fI\%#26169\fP: (\fIterminalmage\fP) Fix attribute error in gitfs\(aq find_file functions
  227775. .IP \(bu 2
  227776. \fI\%#26170\fP: (\fInmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it.
  227777. .IP \(bu 2
  227778. \fI\%#26143\fP: (\fInmadhok\fP) VMware cloud driver fixes [forward port from 2015.5 into 2015.8]
  227779. .IP \(bu 2
  227780. \fI\%#26173\fP: (\fIjacobhammons\fP) Updates to cloud docs for the provider > driver change
  227781. .IP \(bu 2
  227782. \fI\%#26125\fP: (\fIevverx\fP) Use timedatectl set\-timezone to tzsetting if available
  227783. .IP \(bu 2
  227784. \fI\%#26145\fP: (\fIsjorge\fP) smartos_imgadm cleanup
  227785. .IP \(bu 2
  227786. \fI\%#26148\fP: (\fIterminalmage\fP) Refactor winrepo support
  227787. .IP \(bu 2
  227788. \fI\%#26128\fP: (\fIsjorge\fP) imgadm.avail should return multiple results
  227789. .IP \(bu 2
  227790. \fI\%#26109\fP: (\fIjfindlay\fP) fix quote indent
  227791. .IP \(bu 2
  227792. \fI\%#26089\fP: (\fIanlutro\fP) User state/module: fix coercing of None into string "None" in GECOS
  227793. .IP \(bu 2
  227794. \fI\%#26081\fP: (\fIcachedout\fP) Move invocation routine up
  227795. .IP \(bu 2
  227796. \fI\%#26086\fP: (\fIrallytime\fP) Back\-port \fI\%#26019\fP to 2015.8
  227797. .IP \(bu 2
  227798. \fI\%#26087\fP: (\fIrallytime\fP) Back\-port \fI\%#26059\fP to 2015.8
  227799. .IP \(bu 2
  227800. \fI\%#26052\fP: (\fIjtand\fP) Rh_ip fix
  227801. .IP \(bu 2
  227802. \fI\%#26078\fP: (\fIcachedout\fP) Fix missing key in error return
  227803. .IP \(bu 2
  227804. \fI\%#26074\fP: (\fIbasepi\fP) [2015.8] Re\-apply \fI\%#25358\fP in 2015.8
  227805. .IP \(bu 2
  227806. \fI\%#26069\fP: (\fIjfindlay\fP) fix win_firewall.delete_rule
  227807. .IP \(bu 2
  227808. \fI\%#26066\fP: (\fIs0undt3ch\fP) [2015.8] Update to latest bootstrap stable release v2015.06.08
  227809. .IP \(bu 2
  227810. \fI\%#26049\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227811. .IP \(bu 2
  227812. \fI\%#26026\fP: (\fIanlutro\fP) Fix httpasswd result false positive in test mode
  227813. .IP \(bu 2
  227814. \fI\%#26037\fP: (\fIrallytime\fP) Back\-port \fI\%#25489\fP to 2015.8
  227815. .IP \(bu 2
  227816. \fI\%#26004\fP: (\fItechhat\fP) Allow updating a single SPM repo at a time
  227817. .IP \(bu 2
  227818. \fI\%#26012\fP: (\fIcachedout\fP) Merge kwargs into opts for tcp client
  227819. .IP \(bu 2
  227820. \fI\%#26007\fP: (\fIanlutro\fP) file.managed: wrap os.remove in if isfile, don\(aqt remove on success
  227821. .IP \(bu 2
  227822. \fI\%#26009\fP: (\fIterminalmage\fP) Add winrepo and dockerng information to 2015.8.0 release notes
  227823. .IP \(bu 2
  227824. \fI\%#26006\fP: (\fIbasepi\fP) Revert \fI\%#25727\fP in favor of \fI\%#25645\fP
  227825. .IP \(bu 2
  227826. \fI\%#26001\fP: (\fIcachedout\fP) Fix failing tests
  227827. .IP \(bu 2
  227828. \fI\%#25978\fP: (\fIanlutro\fP) Correct service state changes in test mode
  227829. .IP \(bu 2
  227830. \fI\%#25982\fP: (\fIsjorge\fP) salt.modules.smartos_* limit to global zone only
  227831. .IP \(bu 2
  227832. \fI\%#25989\fP: (\fIrallytime\fP) Back\-port \fI\%#25832\fP to 2015.8
  227833. .IP \(bu 2
  227834. \fI\%#25988\fP: (\fIcachedout\fP) Move \fI\%#25642\fP to 2015.8
  227835. .IP \(bu 2
  227836. \fI\%#25999\fP: (\fIs0undt3ch\fP) Include subschema defaults
  227837. .IP \(bu 2
  227838. \fI\%#25997\fP: (\fIs0undt3ch\fP) Allow getting a defaults dictionary from schema defaults
  227839. .IP \(bu 2
  227840. \fI\%#25979\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227841. .IP \(bu 2
  227842. \fI\%#25902\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227843. .IP \(bu 2
  227844. \fI\%#25956\fP: (\fIanlutro\fP) Fix user argument to cron functions
  227845. .IP \(bu 2
  227846. \fI\%#25946\fP: (\fIsjorge\fP) Fix for salt.utils.decorators under esky
  227847. .IP \(bu 2
  227848. \fI\%#25957\fP: (\fIanlutro\fP) Remove temporary file after file.managed with checkcmd
  227849. .IP \(bu 2
  227850. \fI\%#25874\fP: (\fIrallytime\fP) Back\-port \fI\%#25668\fP to 2015.8
  227851. .IP \(bu 2
  227852. \fI\%#25929\fP: (\fIsjorge\fP) salt.module.pkgin\(aqs __virtual__() should not return None if pkg_info is not present
  227853. .IP \(bu 2
  227854. \fI\%#25952\fP: (\fIgarethgreenaway\fP) Log when event.fire and event.fire_master fail 2015.8
  227855. .IP \(bu 2
  227856. \fI\%#25944\fP: (\fIsjorge\fP) Smartos libcrypto nonesky fix
  227857. .IP \(bu 2
  227858. \fI\%#25906\fP: (\fIdmurphy18\fP) Cherry\-pick of pkgbuild changes from develop branch
  227859. .IP \(bu 2
  227860. \fI\%#25925\fP: (\fIsjorge\fP) Create default log location in smartos esky buildscript
  227861. .IP \(bu 2
  227862. \fI\%#25928\fP: (\fIcachedout\fP) Fix stacktrace for non\-existant states
  227863. .IP \(bu 2
  227864. \fI\%#25922\fP: (\fIjacksontj\fP) Correct max_wait \-> max_auth_wait in MultiMinion
  227865. .IP \(bu 2
  227866. \fI\%#25907\fP: (\fIrallytime\fP) Back\-port \fI\%#25892\fP to 2015.8
  227867. .IP \(bu 2
  227868. \fI\%#25910\fP: (\fIterminalmage\fP) Pass osarch to check_32()
  227869. .IP \(bu 2
  227870. \fI\%#25849\fP: (\fIbasepi\fP) Repress template error for GPG renderer (can\(aqt seek an OrderedDict)
  227871. .IP \(bu 2
  227872. \fI\%#25868\fP: (\fIrallytime\fP) Back\-port \fI\%#25404\fP to 2015.8
  227873. .IP \(bu 2
  227874. \fI\%#25896\fP: (\fIcachedout\fP) Lint
  227875. .IP \(bu 2
  227876. \fI\%#25876\fP: (\fIjacksontj\fP) Fixes for 2015.8
  227877. .IP \(bu 2
  227878. \fI\%#25867\fP: (\fIrallytime\fP) Back\-port \fI\%#25370\fP to 2015.8
  227879. .IP \(bu 2
  227880. \fI\%#25845\fP: (\fIjacobhammons\fP) updated versionadded
  227881. .IP \(bu 2
  227882. \fI\%#25836\fP: (\fIjacksontj\fP) Keep track of SyncWrapper\(aqs IOLoop usage
  227883. .IP \(bu 2
  227884. \fI\%#25859\fP: (\fI0xf10e\fP) warn_until(Carbon,...) instead of Boron
  227885. .IP \(bu 2
  227886. \fI\%#25505\fP: (\fI0xf10e\fP) Glance state module for 2015.8 "Beryllium"
  227887. .IP \(bu 2
  227888. \fI\%#25843\fP: (\fIjtand\fP) Fixed a lint error in parsers.py
  227889. .IP \(bu 2
  227890. \fI\%#25835\fP: (\fItechhat\fP) spm update_repo doesn\(aqt always require arguments
  227891. .IP \(bu 2
  227892. \fI\%#25837\fP: (\fIjacobhammons\fP) regenerated man pages
  227893. .IP \(bu 2
  227894. \fI\%#25830\fP: (\fIsjorge\fP) Loading of libcrypto on smartos esky fixed
  227895. .IP \(bu 2
  227896. \fI\%#25808\fP: (\fIjfindlay\fP) add highstate opts to config/__init__.py, update docs
  227897. .IP \(bu 2
  227898. \fI\%#25820\fP: (\fIsjorge\fP) Prerequisite to fix the smartos libcrypto loading
  227899. .IP \(bu 2
  227900. \fI\%#25781\fP: (\fIanlutro\fP) Fix iptables.build_rule
  227901. .IP \(bu 2
  227902. \fI\%#25764\fP: (\fIgtmanfred\fP) allow use of cloudnetworks in ssh_interface
  227903. .IP \(bu 2
  227904. \fI\%#25736\fP: (\fIjfindlay\fP) insert explicit formatter number
  227905. .IP \(bu 2
  227906. \fI\%#25742\fP: (\fIrallytime\fP) Back\-port \fI\%#25731\fP to 2015.8
  227907. .IP \(bu 2
  227908. \fI\%#25741\fP: (\fIrallytime\fP) Back\-port \fI\%#25727\fP to 2015.8
  227909. .IP \(bu 2
  227910. \fI\%#25712\fP: (\fIcachedout\fP) Fix outputter for state.apply
  227911. .IP \(bu 2
  227912. \fI\%#25698\fP: (\fIrallytime\fP) Back\-port \fI\%#25659\fP to 2015.8
  227913. .IP \(bu 2
  227914. \fI\%#25690\fP: (\fIanlutro\fP) Fix highstate duration alignment (again)
  227915. .IP \(bu 2
  227916. \fI\%#25684\fP: (\fIdavidjb\fP) Fix doc around Include/Exclude for states
  227917. .IP \(bu 2
  227918. \fI\%#25549\fP: (\fItechhat\fP) Switch Scaleway to salt.utils.cloud.bootstrap()
  227919. .IP \(bu 2
  227920. \fI\%#25667\fP: (\fIjfindlay\fP) add 2015.8.0rc2 autogenerated changelog
  227921. .IP \(bu 2
  227922. \fI\%#25653\fP: (\fIanlutro\fP) Properly align highstate duration sum
  227923. .IP \(bu 2
  227924. \fI\%#25663\fP: (\fIrallytime\fP) Back\-port \fI\%#25638\fP to 2015.8
  227925. .IP \(bu 2
  227926. \fI\%#25639\fP: (\fIterminalmage\fP) Don\(aqt do pre\-flight check on git_pillar if it is not configured
  227927. .IP \(bu 2
  227928. \fI\%#25587\fP: (\fIcachedout\fP) Fix prereq in salt.state
  227929. .IP \(bu 2
  227930. \fI\%#25628\fP: (\fIanlutro\fP) Highstate output: show duration in seconds instead of milliseconds when appropriate
  227931. .IP \(bu 2
  227932. \fI\%#25631\fP: (\fIbasepi\fP) Remove trailing whitespace
  227933. .IP \(bu 2
  227934. \fI\%#25627\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227935. .IP \(bu 2
  227936. \fI\%#25626\fP: (\fIbasepi\fP) Fix the highstate outputter if \(aqduration\(aq is not present
  227937. .IP \(bu 2
  227938. \fI\%#25601\fP: (\fIterminalmage\fP) Fix error message when local bin pkg path is not absolute
  227939. .IP \(bu 2
  227940. \fI\%#25595\fP: (\fIterminalmage\fP) Bring git_pillar up to feature parity with gitfs
  227941. .IP \(bu 2
  227942. \fI\%#25619\fP: (\fIcachedout\fP) Lint stateconf changes
  227943. .IP \(bu 2
  227944. \fI\%#25578\fP: (\fIdavidjb\fP) Allow parent relative includes in state files
  227945. .IP \(bu 2
  227946. \fI\%#25610\fP: (\fIs0undt3ch\fP) [2015.8] Update the bootstrap script to latest release v2015.07.22
  227947. .IP \(bu 2
  227948. \fI\%#25599\fP: (\fIjfindlay\fP) fix transport settings in \fI\%#25596\fP
  227949. .IP \(bu 2
  227950. \fI\%#25596\fP: (\fIjfindlay\fP) Tcp test
  227951. .IP \(bu 2
  227952. \fI\%#25591\fP: (\fIgarethgreenaway\fP) Return data for scheduled jobs in 2015.8 default to True.
  227953. .IP \(bu 2
  227954. \fI\%#25588\fP: (\fIbasepi\fP) Fix some of the retcode work from \fI\%#23105\fP
  227955. .IP \(bu 2
  227956. \fI\%#25583\fP: (\fIjtand\fP) Fixed lint error where pprint wasn\(aqt imported.
  227957. .IP \(bu 2
  227958. \fI\%#25572\fP: (\fIrallytime\fP) Back\-port \fI\%#25570\fP to 2015.8
  227959. .IP \(bu 2
  227960. \fI\%#25575\fP: (\fIrallytime\fP) Make Sure Scaleway driver works with deprecation paths
  227961. .IP \(bu 2
  227962. \fI\%#25564\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227963. .IP \(bu 2
  227964. \fI\%#25566\fP: (\fItechhat\fP) Fix download process for SPM repo updates
  227965. .IP \(bu 2
  227966. \fI\%#25553\fP: (\fItechhat\fP) Switch SoftLayer to salt.utils.cloud.bootstrap()
  227967. .IP \(bu 2
  227968. \fI\%#25552\fP: (\fItechhat\fP) Update pricing for SoftlayerHW
  227969. .IP \(bu 2
  227970. \fI\%#25547\fP: (\fItechhat\fP) Switch Parallels to salt.utils.cloud.bootstrap()
  227971. .IP \(bu 2
  227972. \fI\%#25548\fP: (\fItechhat\fP) Switch Proxmox to salt.utils.cloud.bootstrap()
  227973. .IP \(bu 2
  227974. \fI\%#25543\fP: (\fItechhat\fP) Switch GCE to salt.utils.cloud.bootstrap()
  227975. .IP \(bu 2
  227976. \fI\%#25546\fP: (\fItechhat\fP) Switch CloudStack to salt.utils.cloud.bootstrap()
  227977. .IP \(bu 2
  227978. \fI\%#25558\fP: (\fIcachedout\fP) Lint config_test
  227979. .IP \(bu 2
  227980. \fI\%#25515\fP: (\fIs0undt3ch\fP) salt.utils.schema fixes
  227981. .IP \(bu 2
  227982. \fI\%#25514\fP: (\fIgarethgreenaway\fP) fixes to schedule.add documentation in 2015.8
  227983. .IP \(bu 2
  227984. \fI\%#25508\fP: (\fIs0undt3ch\fP) [2015.8] Update bootstrap script to latest stable release, v2015.07.17
  227985. .IP \(bu 2
  227986. \fI\%#25501\fP: (\fIbasepi\fP) Add optional job end time to the local_cache returner
  227987. .IP \(bu 2
  227988. \fI\%#25491\fP: (\fIs0undt3ch\fP) Let\(aqs call it for what it is!
  227989. .IP \(bu 2
  227990. \fI\%#25462\fP: (\fIrallytime\fP) Wrap is_profile_configrured calls in try/except block
  227991. .IP \(bu 2
  227992. \fI\%#25439\fP: (\fIrallytime\fP) Reduce digital_ocean API call frequency
  227993. .IP \(bu 2
  227994. \fI\%#25451\fP: (\fIs0undt3ch\fP) Salt\-SSH Scan roster bugfixes (And Py3 support)
  227995. .IP \(bu 2
  227996. \fI\%#25449\fP: (\fIruzarowski\fP) Exclude dotfiles and directories from minion key lists (Fixes \fI\%#25448\fP)
  227997. .IP \(bu 2
  227998. \fI\%#25421\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227999. .IP \(bu 2
  228000. \fI\%#25412\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228001. .IP \(bu 2
  228002. \fI\%#25415\fP: (\fIbechtoldt\fP) [docs] declare YAML as code block
  228003. .IP \(bu 2
  228004. \fI\%#25407\fP: (\fIrallytime\fP) Back\-port \fI\%#23236\fP to 2015.8
  228005. .IP \(bu 2
  228006. \fI\%#25409\fP: (\fIrallytime\fP) Back\-port \fI\%#24422\fP to 2015.8
  228007. .IP \(bu 2
  228008. \fI\%#25394\fP: (\fIrallytime\fP) Back\-port \fI\%#25355\fP to 2015.8
  228009. .IP \(bu 2
  228010. \fI\%#25393\fP: (\fIrallytime\fP) Back\-port \fI\%#25289\fP to 2015.8
  228011. .IP \(bu 2
  228012. \fI\%#25387\fP: (\fIcachedout\fP) Lint \fI\%#25319\fP
  228013. .IP \(bu 2
  228014. \fI\%#25319\fP: (\fIruzarowski\fP) [cloud:EC2] Move SourceDest logic to _update_enis and add alias for delete_interface_on_terminate
  228015. .IP \(bu 2
  228016. \fI\%#25310\fP: (\fIanlutro\fP) Add an "is list" test to the jinja environment
  228017. .IP \(bu 2
  228018. \fI\%#25264\fP: (\fIruzarowski\fP) Fix AttributeError in fileserver update_opts
  228019. .IP \(bu 2
  228020. \fI\%#25372\fP: (\fIrallytime\fP) Don\(aqt stacktrace when provisioning instances with softlayer* drivers
  228021. .IP \(bu 2
  228022. \fI\%#25315\fP: (\fIruzarowski\fP) [cloud:EC2] Move handling of AssociatePublicIpAddress to associate_eip/allocate_new_eip logic depending on value type
  228023. .IP \(bu 2
  228024. \fI\%#25312\fP: (\fIruzarowski\fP) [cloud:EC2] Introduce eni Name property to set name tag value after its creation
  228025. .IP \(bu 2
  228026. \fI\%#25311\fP: (\fIruzarowski\fP) [cloud:EC2] Add ability to attach an existing eni
  228027. .IP \(bu 2
  228028. \fI\%#25280\fP: (\fIrallytime\fP) Remove deprecation warnings for Beryllium
  228029. .IP \(bu 2
  228030. \fI\%#25329\fP: (\fItwangboy\fP) Fixed some documentation errors
  228031. .IP \(bu 2
  228032. \fI\%#25300\fP: (\fIs0undt3ch\fP) Fix ordering issue & Added requirements support
  228033. .IP \(bu 2
  228034. \fI\%#25283\fP: (\fIjfindlay\fP) ensure ret is always defined
  228035. .IP \(bu 2
  228036. \fI\%#25252\fP: (\fIjfindlay\fP) make args optional with default values in win_firewall.delete_rule
  228037. .IP \(bu 2
  228038. \fI\%#25257\fP: (\fInotpeter\fP) Document SourceDestCheck added in \fI\%#25242\fP\&.
  228039. .IP \(bu 2
  228040. \fI\%#25298\fP: (\fItwangboy\fP) Continue if profile not found
  228041. .IP \(bu 2
  228042. \fI\%#25296\fP: (\fItwangboy\fP) Fixed file.comment for windows
  228043. .IP \(bu 2
  228044. \fI\%#25254\fP: (\fIrallytime\fP) Change versionadded/changed references from Beryllium to 2015.8.0
  228045. .IP \(bu 2
  228046. \fI\%#25285\fP: (\fIthusoy\fP) Remove error logging of missing victorops keys
  228047. .IP \(bu 2
  228048. \fI\%#25266\fP: (\fIruzarowski\fP) cloud: EC2 eni property SourceDestCheck is a AttributeBooleanValue
  228049. .IP \(bu 2
  228050. \fI\%#25216\fP: (\fIjfindlay\fP) replace shell code with native python code
  228051. .IP \(bu 2
  228052. \fI\%#25278\fP: (\fIrallytime\fP) Don\(aqt require size for all cloud drivers when checking profile configs
  228053. .IP \(bu 2
  228054. \fI\%#25271\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228055. .IP \(bu 2
  228056. \fI\%#25263\fP: (\fItechhat\fP) Allow non\-standard HTTP requests on tornado
  228057. .IP \(bu 2
  228058. \fI\%#25253\fP: (\fIs0undt3ch\fP) Remove the deprecation warning. The driver has been renamed.
  228059. .IP \(bu 2
  228060. \fI\%#25248\fP: (\fItechhat\fP) Do not resize while iterating
  228061. .IP \(bu 2
  228062. \fI\%#25244\fP: (\fIrallytime\fP) Remove parted deprecations and fix failing tests
  228063. .IP \(bu 2
  228064. \fI\%#25242\fP: (\fIruzarowski\fP) Make SourceDestCheck flag available to network interface definition
  228065. .IP \(bu 2
  228066. \fI\%#25226\fP: (\fInmadhok\fP) Backporting fix for issue \fI\%#25223\fP on 2015.8 branch
  228067. .IP \(bu 2
  228068. \fI\%#25234\fP: (\fIkrak3n\fP) Fix: Bug in boto_asg state argument passing to boto_asg module
  228069. .IP \(bu 2
  228070. \fI\%#25222\fP: (\fIrallytime\fP) Back\-port \fI\%#25219\fP to 2015.8
  228071. .IP \(bu 2
  228072. \fI\%#25188\fP: (\fIrallytime\fP) Use linode status descriptions instead of ints when logging status to CLI
  228073. .IP \(bu 2
  228074. \fI\%#25203\fP: (\fIs0undt3ch\fP) Added DictConfig with tests & More tests
  228075. .IP \(bu 2
  228076. \fI\%#25189\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228077. .IP \(bu 2
  228078. \fI\%#25184\fP: (\fIrallytime\fP) Back\-port \fI\%#25126\fP to 2015.8
  228079. .IP \(bu 2
  228080. \fI\%#25172\fP: (\fIs0undt3ch\fP) Comment out imports while the YAML and RST rendering is not in\-place.
  228081. .IP \(bu 2
  228082. \fI\%#25158\fP: (\fIs0undt3ch\fP) Comment out not implemented code
  228083. .IP \(bu 2
  228084. \fI\%#25145\fP: (\fIs0undt3ch\fP) Implement \fIoneOf\fP, \fIanyOf\fP, \fIallOf\fP and \fInot\fP with unit tests
  228085. .IP \(bu 2
  228086. \fI\%#25140\fP: (\fIs0undt3ch\fP) Make the detection code work under Python 3.4
  228087. .IP \(bu 2
  228088. \fI\%#25131\fP: (\fIs0undt3ch\fP) Array support in salt.utils.config
  228089. .IP \(bu 2
  228090. \fI\%#25130\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228091. .UNINDENT
  228092. .sp
  228093. The 2015.8.0 feature release of Salt contains several major new features. As
  228094. usual the release notes are not exhaustive and primarily include the most
  228095. notable additions and improvements. Hundreds of bugs have been fixed and many
  228096. modules have been substantially updated and added.
  228097. .SS New SaltStack Installation Repositories
  228098. .sp
  228099. SaltStack now provides installation repositories for several platforms, with more to come.
  228100. See the following links for instructions:
  228101. .INDENT 0.0
  228102. .IP \(bu 2
  228103. Red Hat / CentOS 5, 6, 7
  228104. .IP \(bu 2
  228105. Debian 8
  228106. .IP \(bu 2
  228107. Windows
  228108. .UNINDENT
  228109. .SS Send Event on State Completion
  228110. .sp
  228111. A \fBfire_event\fP global state keyword argument was added that allows any state to
  228112. send an event upon completion. Useful for custom progress bars and checking in
  228113. on long state runs. See fire_event\&.
  228114. .SS ZeroMQ socket monitoring
  228115. .sp
  228116. If \fBzmq_monitor\fP is enabled, log all ZMQ events for socket monitoring
  228117. purposes. Verbose, but useful.
  228118. .SS SPM (Salt Package Manager)
  228119. .sp
  228120. Allows Salt formulas to be packaged for ease of deployment. See spm\&.
  228121. .sp
  228122. \fBNOTE:\fP
  228123. .INDENT 0.0
  228124. .INDENT 3.5
  228125. The spm executable was not included in the Debian or Ubuntu packages for the
  228126. 2015.8.0 or the 2015.8.1 releases. This executable will be included in an
  228127. upcoming release. As a workaround, copy the SPM script from the salt library
  228128. installation into \fB/usr/local/bin\fP or your local equivalent.
  228129. .UNINDENT
  228130. .UNINDENT
  228131. .SS Specify a Single Environment for Top Files
  228132. .sp
  228133. A new \fBdefault_top\fP option was added to load the state top file
  228134. from a single, specific environment, rather than merging top data across all
  228135. environments. Additionally, new \fBtop_file_merge_strategy\fP and
  228136. \fBenv_order\fP options were added for more control over top file
  228137. merging. See The Top File\&.
  228138. .SS Tornado TCP Transport
  228139. .sp
  228140. Implemented a pure\-TCP transport, in addition to ZeroMQ and RAET. The new
  228141. transport uses Tornado, which allows Salt to use a standardized set of libraries
  228142. for asynchronous behavior, which should greatly improve reliability and
  228143. performance.
  228144. .sp
  228145. \fBNOTE:\fP
  228146. .INDENT 0.0
  228147. .INDENT 3.5
  228148. Tornado is considered expiremental in this release. The following known
  228149. issues were being investigated at the time of release:
  228150. .INDENT 0.0
  228151. .IP \(bu 2
  228152. TCP tests show performance degredation over time (\fI\%issue #26051\fP)
  228153. .IP \(bu 2
  228154. TCP transport stacktrace on windows minion: Future exception was never
  228155. retrieved (\fI\%issue #25718\fP)
  228156. .IP \(bu 2
  228157. [freebsd] TCP transport not working in 2015.8.0rc3 (\fI\%issue #26364\fP)
  228158. .UNINDENT
  228159. .UNINDENT
  228160. .UNINDENT
  228161. .SS Proxy Minion Enhancements
  228162. .sp
  228163. Proxy Minions have undergone a significant overhaul in 2015.8, see Proxy Minion Enhancements\&.
  228164. .SS Engines
  228165. .sp
  228166. Salt engines are long\-running, external processes that leverage Salt. See Salt Engines\&.
  228167. .SS Core Changes
  228168. .INDENT 0.0
  228169. .IP \(bu 2
  228170. Add system version info to \fBversions_report\fP, which appears in both \fBsalt
  228171. \-\-versions\-report\fP and \fBsalt \(aq*\(aq test.versions_report\fP\&. Also added is an
  228172. alias \fBtest.versions\fP to \fBtest.versions_report\fP\&. (\fI\%issue #21906\fP)
  228173. .IP \(bu 2
  228174. Add colorized console logging support. This is activated by using
  228175. \fB%(colorlevel)s\fP, \fB%(colorname)s\fP, \fB%(colorprocess)s\fP, \fB%(colormsg)s\fP
  228176. in \fBlog_fmt_console\fP in the config file for any of \fBsalt\-master\fP,
  228177. \fBsalt\-minion\fP, and \fBsalt\-cloud\fP\&.
  228178. .UNINDENT
  228179. .SS Git Pillar
  228180. .sp
  228181. The git external pillar has been rewritten to bring it up to feature parity
  228182. with \fBgitfs\fP\&. Support for \fI\%pygit2\fP has been added,
  228183. bringing with it the ability to access authenticated repositories.
  228184. .sp
  228185. Using the new features will require updates to the git ext_pillar
  228186. configuration, further details can be found in the pillar.git_pillar docs.
  228187. .SS Salt Cloud Improvements
  228188. .INDENT 0.0
  228189. .IP \(bu 2
  228190. Pricing data from several cloud providers (GCE, DigitalOcean, SoftLayer_HW, EC2)
  228191. .IP \(bu 2
  228192. All cloud providers now use standardized bootstrapping code.
  228193. .IP \(bu 2
  228194. Modified the Linode Salt Cloud driver to use Linode\(aqs native API instead of
  228195. depending on apache\-libcloud or linode\-python.
  228196. .UNINDENT
  228197. .SS Salt Cloud Changes
  228198. .INDENT 0.0
  228199. .IP \(bu 2
  228200. Changed the default behavior of \fBrename_on_destroy\fP to be set to \fBTrue\fP
  228201. in the EC2 and AWS drivers.
  228202. .IP \(bu 2
  228203. Changed the default behavior of the EC2 and AWS drivers to always check for
  228204. duplicate names of VMs before trying to create a new VM. Will now throw an
  228205. error similarly to other salt\-cloud drivers when trying to create a VM of the
  228206. same name, even if the VM is in the \fBterminated\fP state.
  228207. .IP \(bu 2
  228208. When querying for VMs in \fBdigital_ocean.py\fP, the number of VMs to include in
  228209. a page was changed from 20 (default) to 200 to reduce the number of API calls
  228210. to Digital Ocean.Ocean.
  228211. .UNINDENT
  228212. .SS State and Execution Module Improvements
  228213. .INDENT 0.0
  228214. .IP \(bu 2
  228215. New and improved Docker state and execution modules (\fBstate\fP and \fBexecution module\fP).
  228216. .UNINDENT
  228217. .SS Git State and Execution Modules Rewritten
  228218. .sp
  228219. The git state and execution modules have gone through an extensive overhaul.
  228220. .SS Changes in the \fBgit.latest\fP State
  228221. .INDENT 0.0
  228222. .IP \(bu 2
  228223. The \fBbranch\fP argument has been added, allowing for a custom branch name to
  228224. be used in the local checkout maintained by the \fBgit.latest\fP state. This can be helpful in avoiding ambiguous
  228225. refs in the local checkout when a tag is used as the \fBrev\fP argument. If no
  228226. \fBbranch\fP is specified, then the state uses the value of \fBrev\fP as the
  228227. branch name.
  228228. .IP \(bu 2
  228229. The \fBalways_fetch\fP argument no longer has any effect, and will be removed
  228230. in a future release. The state now detects whether or not a fetch is needed
  228231. based on comparisons made between the local and remote repositories.
  228232. .IP \(bu 2
  228233. The \fBforce_fetch\fP argument has been added to force a fetch if the fetch is
  228234. not a fast\-forward (for instance, if someone has done a reset and
  228235. force\-pushed to the remote repository).
  228236. .IP \(bu 2
  228237. The \fBremote_name\fP argument has been deprecated and renamed to \fBremote\fP\&.
  228238. .IP \(bu 2
  228239. The \fBforce\fP argument has been deprecated and renamed to \fBforce_clone\fP to
  228240. reduce ambiguity with the other "force" arguments.
  228241. .IP \(bu 2
  228242. Using SHA1 hashes (full or shortened) in the \fBrev\fP argument is now
  228243. properly supported.
  228244. .IP \(bu 2
  228245. Non\-fast\-forward merges are now detected before the repository is updated,
  228246. and the state will not update the repository if the change is not a
  228247. fast\-forward. Non\-fast\-forward updates must be overridden with the
  228248. \fBforce_reset\fP argument. If \fBforce_reset\fP is set to \fBTrue\fP, the state
  228249. will only reset the repository if it cannot be fast\-forwarded. This is in
  228250. contrast to the earlier behavior, in which a hard\-reset would be performed
  228251. every time the state was run if \fBforce_reset\fP was set to \fBTrue\fP\&.
  228252. .IP \(bu 2
  228253. A \fBgit pull\fP is no longer performed by this state, dropped in favor of a
  228254. fetch\-and\-merge (or fetch\-and\-reset) workflow.
  228255. .UNINDENT
  228256. .SS \fBgit.config_unset\fP state added
  228257. .sp
  228258. This state allows for configuration values (or entire keys) to be unset. See
  228259. \fBhere\fP for more information and example
  228260. SLS.
  228261. .SS git.config State Renamed to \fBgit.config_set\fP
  228262. .sp
  228263. To reduce confusion after the addition of \fBgit.config_unset\fP, the git.config state has been renamed to
  228264. \fBgit.config_set\fP\&. The old config.get name
  228265. will still work for a couple releases, allowing time for SLS files to be
  228266. updated.
  228267. .sp
  228268. In addition, this state now supports managing multivar git configuration
  228269. values. See \fBhere\fP for more information
  228270. and example SLS.
  228271. .SS Initial Support for Git Worktrees in Execution Module
  228272. .sp
  228273. Several functions have been added to the execution module to manage \fI\%worktrees\fP
  228274. (a feature new to Git 2.5.0). State support does not exist yet, but will follow
  228275. soon.
  228276. .SS New Functions in Git Execution Module
  228277. .INDENT 0.0
  228278. .IP \(bu 2
  228279. \fBgit.config_get_regexp\fP
  228280. .IP \(bu 2
  228281. \fBgit.config_unset\fP
  228282. .IP \(bu 2
  228283. \fBgit.is_worktree\fP
  228284. .IP \(bu 2
  228285. \fBgit.list_branches\fP
  228286. .IP \(bu 2
  228287. \fBgit.list_tags\fP
  228288. .IP \(bu 2
  228289. \fBgit.list_worktrees\fP
  228290. .IP \(bu 2
  228291. \fBgit.merge_base\fP
  228292. .IP \(bu 2
  228293. \fBgit.merge_tree\fP
  228294. .IP \(bu 2
  228295. \fBgit.rev_parse\fP
  228296. .IP \(bu 2
  228297. \fBgit.version\fP
  228298. .IP \(bu 2
  228299. \fBgit.worktree_rm\fP
  228300. .IP \(bu 2
  228301. \fBgit.worktree_add\fP
  228302. .IP \(bu 2
  228303. \fBgit.worktree_prune\fP
  228304. .UNINDENT
  228305. .SS Changes to Functions in Git Execution Module
  228306. .SS \fBgit.add\fP
  228307. .INDENT 0.0
  228308. .IP \(bu 2
  228309. \fB\-\-verbose\fP is now implied when running the \fBgit add\fP command, to provide
  228310. a list of the files added in the return data.
  228311. .UNINDENT
  228312. .SS \fBgit.archive\fP
  228313. .INDENT 0.0
  228314. .IP \(bu 2
  228315. Now returns \fBTrue\fP when the \fBgit archive\fP command was successful, and
  228316. otherwise raises an error.
  228317. .IP \(bu 2
  228318. The \fBoverwrite\fP argument has been added to prevent an existing archive from
  228319. being overwritten by this function.
  228320. .IP \(bu 2
  228321. The \fBfmt\fP argument has been deprecated and renamed to \fBformat\fP\&.
  228322. .IP \(bu 2
  228323. Trailing slash no longer implied in \fBprefix\fP argument, must be included if
  228324. this argument is passed.
  228325. .UNINDENT
  228326. .SS \fBgit.checkout\fP
  228327. .INDENT 0.0
  228328. .IP \(bu 2
  228329. The \fBrev\fP argument is now optional when using \fB\-b\fP or \fB\-B\fP in \fBopts\fP,
  228330. allowing for a branch to be created (or reset) using \fBHEAD\fP as the starting
  228331. point.
  228332. .UNINDENT
  228333. .SS \fBgit.clone\fP
  228334. .INDENT 0.0
  228335. .IP \(bu 2
  228336. The \fBname\fP argument has been added to specify the name of the directory in
  228337. which to clone the repository. If this option is specified, then the clone
  228338. will be made within the directory specified by the \fBcwd\fP, instead of at
  228339. that location.
  228340. .IP \(bu 2
  228341. The \fBrepository\fP argument has been deprecated and renamed to \fBurl\fP\&.
  228342. .UNINDENT
  228343. .SS \fBgit.config_get\fP
  228344. .INDENT 0.0
  228345. .IP \(bu 2
  228346. The \fBsetting_name\fP argument has been deprecated and renamed to \fBkey\fP\&.
  228347. .IP \(bu 2
  228348. The \fBglobal\fP argument has been added, to query the global git configuration
  228349. .IP \(bu 2
  228350. The \fBall\fP argument has been added to return a list of all values for the
  228351. specified key, allowing for all values in a multivar to be returned.
  228352. .IP \(bu 2
  228353. The \fBcwd\fP argument is now optional if \fBglobal\fP is set to \fBTrue\fP
  228354. .UNINDENT
  228355. .SS \fBgit.config_set\fP
  228356. .INDENT 0.0
  228357. .IP \(bu 2
  228358. The value(s) of the key being set are now returned
  228359. .IP \(bu 2
  228360. The \fBsetting_name\fP argument has been deprecated and renamed to \fBkey\fP\&.
  228361. .IP \(bu 2
  228362. The \fBsetting_value\fP argument has been deprecated and renamed to \fBvalue\fP\&.
  228363. .IP \(bu 2
  228364. The \fBis_global\fP argument has been deprecated and renamed to \fBglobal\fP\&.
  228365. .IP \(bu 2
  228366. The \fBmultivar\fP argument has been added to specify a list of values to set
  228367. for the specified key. The \fBvalue\fP argument is not compatible with
  228368. \fBmultivar\fP\&.
  228369. .IP \(bu 2
  228370. The \fBadd\fP argument has been added to add a value to a key (this essentially
  228371. just adds an \fB\-\-add\fP to the \fBgit config\fP command that is run to set the
  228372. value).
  228373. .UNINDENT
  228374. .SS \fBgit.fetch\fP
  228375. .INDENT 0.0
  228376. .IP \(bu 2
  228377. The \fBforce\fP argument has been added to force the fetch when it is not a
  228378. fast\-forward. This could have been achieved in previous Salt versions by
  228379. including \fB\-\-force\fP in the \fBopts\fP argument, this argument is just for
  228380. convenience and to match the usage of other functions with \fBforce\fP
  228381. arguments.
  228382. .IP \(bu 2
  228383. The \fBrefspecs\fP argument has been added to allow for one or more refspecs to
  228384. be provided which override the one(s) specified by the
  228385. \fBremote.remote_name.fetch\fP git configuration option.
  228386. .UNINDENT
  228387. .SS \fBgit.ls_remote\fP
  228388. .INDENT 0.0
  228389. .IP \(bu 2
  228390. The \fBrepository\fP argument has been deprecated and renamed to \fBremote\fP\&.
  228391. .IP \(bu 2
  228392. The \fBbranch\fP argument has been deprecated and renamed to \fBref\fP\&.
  228393. .IP \(bu 2
  228394. The \fBopts\fP argument has been added to allow for additional CLI options to
  228395. be passed to the \fBgit ls\-remote\fP command.
  228396. .UNINDENT
  228397. .SS \fBgit.merge\fP
  228398. .INDENT 0.0
  228399. .IP \(bu 2
  228400. The \fBbranch\fP argument has been deprecated and renamed to \fBrev\fP\&.
  228401. .UNINDENT
  228402. .SS \fBgit.status\fP
  228403. .INDENT 0.0
  228404. .IP \(bu 2
  228405. Return data has been changed from a list of lists to a dictionary containing
  228406. lists of files in the modified, added, deleted, and untracked states.
  228407. .UNINDENT
  228408. .SS \fBgit.submodule\fP
  228409. .INDENT 0.0
  228410. .IP \(bu 2
  228411. Added the \fBcommand\fP argument to allow for operations other than \fBupdate\fP
  228412. to be run on submodules, and deprecated the \fBinit\fP argument. To do a
  228413. submodule update with \fBinit=True\fP moving forward, use \fBcommand=update
  228414. opts=\(aq\-\-init\(aq\fP\&.
  228415. .UNINDENT
  228416. .INDENT 0.0
  228417. .IP \(bu 2
  228418. OpenStack Glance API V2 execution module
  228419. .IP \(bu 2
  228420. Amazon VPC state module
  228421. .IP \(bu 2
  228422. RallyDev execution module
  228423. .IP \(bu 2
  228424. BambooHR execution module
  228425. .IP \(bu 2
  228426. Stormpath execution, state modules
  228427. .IP \(bu 2
  228428. Remove unused argument \fBtimeout\fP in jboss7.status.
  228429. .IP \(bu 2
  228430. Deprecate \fBenabled\fP argument in \fBpkgrepo.managed\fP in favor of \fBdisabled\fP\&.
  228431. .IP \(bu 2
  228432. Archive module changes: In the \fBarchive.tar\fP and \fBarchive.cmd_unzip\fP
  228433. module functions, remove the arbitrary prefixing of the options string with
  228434. \fB\-\fP\&. An options string beginning with a \fB\-\-long\-option\fP, would have
  228435. uncharacteristically needed its first \fB\-\fP removed under the former scheme.
  228436. Also, tar will parse its options differently if short options are used with or
  228437. without a preceding \fB\-\fP, so it is better to not confuse the user into
  228438. thinking they\(aqre using the non\- \fB\-\fP format, when really they are using the
  228439. with\- \fB\-\fP format.
  228440. .IP \(bu 2
  228441. Added \fB__states__\fP to state modules, for cross\-calling states. This enables
  228442. using existing states when writing custom states. See cross calling states\&.
  228443. .UNINDENT
  228444. .SS Windows Improvements
  228445. .INDENT 0.0
  228446. .IP \(bu 2
  228447. Enhanced the windows minion silent installation with command line parameters
  228448. to configure the salt master and minion name. See Silent Installer
  228449. Options\&.
  228450. .IP \(bu 2
  228451. Improved user management with additional capabilities in the user module for Windows.
  228452. .IP \(bu 2
  228453. Improved patch management with a new module for managing windows updates (\fBwin_wua\fP).
  228454. .IP \(bu 2
  228455. Turned on multi\-processing by default for windows in minion configuration.
  228456. .UNINDENT
  228457. .SS Windows Software Repo Changes
  228458. .sp
  228459. A next\-generation (ng) windows software repo is available for 2015.8.0 and
  228460. later minions. When using this new repository, the repo cache is compiled on
  228461. the Salt Minion, which enables pillar, grains and other things to be available
  228462. during compilation time.
  228463. .sp
  228464. See the Windows Software Repository
  228465. documentation for more information.
  228466. .SS Changes to legacy Windows repository
  228467. .sp
  228468. If you have pre 2015.8 Windows minions connecting to your 2015.8 Salt master, you
  228469. can continue to use the legacy Windows repository for these Salt minions.
  228470. .sp
  228471. If you were previously using this repository and have customized settings, be
  228472. aware that several config options have been renamed to make their naming more
  228473. consistent.
  228474. .sp
  228475. See the Windows Software Repository
  228476. documentation for more information.
  228477. .SS Win System Module
  228478. .sp
  228479. The unit of the \fBtimeout\fP parameter in the \fBsystem.halt\fP,
  228480. \fBsystem.poweroff\fP, \fBsystem.reboot\fP, and \fBsystem.shutdown\fP functions has
  228481. been changed from seconds to minutes in order to be consistent with the linux
  228482. timeout setting. (\fI\%issue #24411\fP) Optionally, the unit can be reverted to
  228483. seconds by specifying \fBin_seconds=True\fP\&.
  228484. .SS Other Improvements
  228485. .INDENT 0.0
  228486. .IP \(bu 2
  228487. Sanitize sensitive fields in http.query
  228488. .IP \(bu 2
  228489. Allow authorization to be read from Django and eauth
  228490. .IP \(bu 2
  228491. Add templating to SMTP returner
  228492. .IP \(bu 2
  228493. New REST module for SDB
  228494. .IP \(bu 2
  228495. Added rest_timeout config option and timeout argument to jobs api call
  228496. .IP \(bu 2
  228497. Provide config options for Raet lane and road buffer count. (Useful for BSD kernels)
  228498. .IP \(bu 2
  228499. Implemented ZeroMQ socket monitor for master and minion
  228500. .IP \(bu 2
  228501. Add end time to master job cache for jobs (optional, off by default)
  228502. .IP \(bu 2
  228503. Tornado is now the default backend for http.request
  228504. .IP \(bu 2
  228505. Support pillarenv selection as it\(aqs done for saltenv
  228506. .IP \(bu 2
  228507. salt was updated to use python\-crypto version 2.6.1, which removes the dependency on python\-m2crypto.
  228508. .UNINDENT
  228509. .SS Deprecations
  228510. .INDENT 0.0
  228511. .IP \(bu 2
  228512. The \fBdigital_ocean.py\fP Salt Cloud driver was removed in favor of the
  228513. \fBdigital_ocean_v2.py\fP driver as DigitalOcean has removed support for APIv1.
  228514. The \fBdigital_ocean_v2.py\fP was renamed to \fBdigital_ocean.py\fP and supports
  228515. DigitalOcean\(aqs APIv2.
  228516. .IP \(bu 2
  228517. The \fBvsphere.py\fP Salt Cloud driver has been deprecated in favor of the
  228518. \fBvmware.py\fP driver.
  228519. .IP \(bu 2
  228520. The \fBopenstack.py\fP Salt Cloud driver has been deprecated in favor of the
  228521. \fBnova.py\fP driver.
  228522. .IP \(bu 2
  228523. The use of \fBprovider\fP in Salt Cloud provider files to define cloud drivers
  228524. has been deprecated in favor of using \fBdriver\fP\&. Both terms will work until
  228525. the 2017.7.0 release of Salt. Example provider file:
  228526. .UNINDENT
  228527. .INDENT 0.0
  228528. .INDENT 3.5
  228529. .sp
  228530. .nf
  228531. .ft C
  228532. my\-ec2\-cloud\-config:
  228533. id: \(aqHJGRYCILJLKJYG\(aq
  228534. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  228535. private_key: /etc/salt/my_test_key.pem
  228536. keyname: my_test_key
  228537. securitygroup: default
  228538. driver: ec2
  228539. .ft P
  228540. .fi
  228541. .UNINDENT
  228542. .UNINDENT
  228543. .INDENT 0.0
  228544. .IP \(bu 2
  228545. The use of \fBlock\fP has been deprecated and from \fBsalt.utils.fopen\fP\&.
  228546. \fBsalt.utils.flopen\fP should be used instead.
  228547. .IP \(bu 2
  228548. The following args have been deprecated from the \fBrabbitmq_vhost.present\fP
  228549. state: \fBuser\fP, \fBowner\fP, \fBconf\fP, \fBwrite\fP, \fBread\fP, and \fBrunas\fP\&.
  228550. .IP \(bu 2
  228551. The use of \fBrunas\fP has been deprecated from the \fBrabbitmq_vhost.absent\fP
  228552. state.
  228553. .IP \(bu 2
  228554. Support for \fBoutput\fP in \fBmine.get\fP was removed. \fB\-\-out\fP should be used
  228555. instead.
  228556. .IP \(bu 2
  228557. The use of \fBdelim\fP was removed from the following functions in the \fBmatch\fP
  228558. execution module: \fBpillar_pcre\fP, \fBpillar\fP, \fBgrain_pcre\fP,
  228559. .UNINDENT
  228560. .SS Security Fixes
  228561. .sp
  228562. CVE\-2015\-6918 \- Git modules leaking HTTPS auth credentials to debug log
  228563. .sp
  228564. 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.
  228565. .SS Major Bug Fixes
  228566. .INDENT 0.0
  228567. .IP \(bu 2
  228568. Fixed minion failover to next master on DNS errors (\fI\%issue #21082\fP)
  228569. .IP \(bu 2
  228570. Fixed memory consumption in SaltEvents (\fI\%issue #25557\fP)
  228571. .IP \(bu 2
  228572. Don\(aqt lookup outside system path in which() util (\fI\%issue #24085\fP)
  228573. .IP \(bu 2
  228574. Fixed broken jobs rest api call (\fI\%issue #23408\fP)
  228575. .IP \(bu 2
  228576. Fixed stale grains data using in modules (\fI\%issue #24073\fP)
  228577. .IP \(bu 2
  228578. Added ssh_identities_only config flag for ssh\-agent configured environments
  228579. (\fI\%issue #24096\fP)
  228580. .IP \(bu 2
  228581. Fixed "object has no attribute" errors for Raet transport (\fI\%issue #21640\fP)
  228582. .IP \(bu 2
  228583. Flush event returners before master exit (\fI\%issue #22814\fP)
  228584. .IP \(bu 2
  228585. Fix CommandExecutionError in grains generation with lspci missing (\fI\%issue #23342\fP)
  228586. .IP \(bu 2
  228587. Fix salt\-ssh against CentOS 7 when python\-zmq not installed (\fI\%issue #23503\fP)
  228588. .IP \(bu 2
  228589. Fix salt\-ssh issues related to out\-of\-date six module (\fI\%issue #20949\fP)
  228590. .IP \(bu 2
  228591. Fix salt\-ssh thin generation after previous run was interrupted (\fI\%issue #24376\fP)
  228592. .IP \(bu 2
  228593. Use proper line endings on Windows with "file.managed" w/contents (\fI\%issue #25675\fP)
  228594. .IP \(bu 2
  228595. Fixed broken comment/uncomment functions in file.py (\fI\%issue #24620\fP)
  228596. .IP \(bu 2
  228597. Fixed problem with unicode when changing computer description (\fI\%issue #12255\fP)
  228598. .IP \(bu 2
  228599. Fixed problem with chocolatey module not loading (\fI\%issue #25717\fP)
  228600. .IP \(bu 2
  228601. Fixed problem adding users to groups with spaces in the name (\fI\%issue #25144\fP)
  228602. .IP \(bu 2
  228603. Fixed problem adding full name to user account (\fI\%issue #25206\fP)
  228604. .IP \(bu 2
  228605. Fixed gem module stack trace (\fI\%issue #21041\fP)
  228606. .IP \(bu 2
  228607. Fixed problem with file.managed when test=True (\fI\%issue #20441\fP)
  228608. .IP \(bu 2
  228609. Fixed problem with powershell hanging while waiting for user input (\fI\%issue #13943\fP)
  228610. .IP \(bu 2
  228611. Fixed problem where the salt\-minion service would not consistently start
  228612. (\fI\%issue #25272\fP)
  228613. .IP \(bu 2
  228614. Fixed problem where pkg.refresh_db would return True even when winrepo.p was not
  228615. found (\fI\%issue #18919\fP)
  228616. .IP \(bu 2
  228617. Could someone please provide end to end example for Proxy Minion with REST
  228618. (\fI\%issue #25500\fP)
  228619. .IP \(bu 2
  228620. Proxy minions stopped working between 2014.7 and 2015.5 (\fI\%issue #25053\fP)
  228621. .IP \(bu 2
  228622. Proxy minion documentation includes outdated code sample (\fI\%issue #24018\fP)
  228623. .IP \(bu 2
  228624. Proxy Minion documentation missing grains example (\fI\%issue #18273\fP)
  228625. .IP \(bu 2
  228626. Improve process management in proxy minion (\fI\%issue #12024\fP)
  228627. .IP \(bu 2
  228628. Proxy minion never comes up with message \(aq I am XXX and I am not supposed to
  228629. start any proxies.\(aq (\fI\%issue #25908\fP)
  228630. .IP \(bu 2
  228631. Fixed an issue that caused an exception when using Salt mine from pillar. (\fI\%issue #11509\fP)
  228632. .UNINDENT
  228633. .SS Salt 2015.8.1 Release Notes
  228634. .sp
  228635. Version 2015.8.1 is a bugfix release for 2015.8.0\&.
  228636. .SS Statistics
  228637. .INDENT 0.0
  228638. .IP \(bu 2
  228639. Total Merges: \fB201\fP
  228640. .IP \(bu 2
  228641. Total Issue References: \fB39\fP
  228642. .IP \(bu 2
  228643. Total PR References: \fB135\fP
  228644. .IP \(bu 2
  228645. 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)
  228646. .UNINDENT
  228647. .SS Security Fixes
  228648. .sp
  228649. \fBCVE\-2015\-6941\fP The Windows \fBuser\fP module and
  228650. \fBsalt\-cloud\fP display passwords in log when log level is set to \fBdebug\fP
  228651. or more verbose.
  228652. .sp
  228653. For the Windows \fBuser\fP module, the password is
  228654. now replaced with the string \fBXXX\-REDACTED\-XXX\fP\&.
  228655. .sp
  228656. For salt\-cloud, debug logging no longer displays \fBwin_password\fP and
  228657. \fBsudo_password\fP authentication credentials.
  228658. .sp
  228659. \fBCVE\-2015\-6918\fP Git state/execution modules log HTTPS auth credentials when
  228660. log level is set to \fBdebug\fP or more verbose.
  228661. .sp
  228662. These credentials are now replaced with \fBREDACTED\fP in the debug output.
  228663. Thanks to Andreas Stieger <\fI\%asteiger@suse.com\fP> for bringing this to our
  228664. attention.
  228665. .SS Major Bug Fixes
  228666. .INDENT 0.0
  228667. .IP \(bu 2
  228668. Add support for \fBspm.d/*.conf\fP configuration of SPM (\fI\%issue #27010\fP)
  228669. .IP \(bu 2
  228670. Fix \fBproxy\fP grains breakage for non\-proxy minions (\fI\%issue #27039\fP)
  228671. .IP \(bu 2
  228672. Fix global key management for git state
  228673. .IP \(bu 2
  228674. Fix passing http auth to \fButil.http\fP from \fBstate.file\fP (\fI\%issue #21917\fP)
  228675. .IP \(bu 2
  228676. Fix \fBmultiprocessing: True\fP in windows (on by default\(ga)
  228677. .IP \(bu 2
  228678. Add \fBpkg.info\fP to pkg modules
  228679. .IP \(bu 2
  228680. Fix name of \fBserial\fP grain (this was accidentally renamed in 2015.8.0\(ga)
  228681. .IP \(bu 2
  228682. Merge config values from \fBmaster.d\fP/\fBminion.d\fP conf files (rather than flat update\(ga)
  228683. .IP \(bu 2
  228684. Clean grains cache on grains sync (\fI\%issue #19853\fP)
  228685. .IP \(bu 2
  228686. Remove streamed response for fileclient to avoid HTTP redirection problems (\fI\%issue #27093\fP)
  228687. .IP \(bu 2
  228688. Fixed incorrect warning about \fBosrelease\fP grain (\fI\%issue #27065\fP)
  228689. .IP \(bu 2
  228690. Fix authentication via Salt\-API with tokens (\fI\%issue #27270\fP)
  228691. .IP \(bu 2
  228692. Fix winrepo downloads from https locations (\fI\%issue #27081\fP)
  228693. .IP \(bu 2
  228694. Fix potential error with salt\-call as non\-root user (\fI\%issue #26889\fP)
  228695. .IP \(bu 2
  228696. Fix global minion provider overrides (\fI\%issue #27209\fP)
  228697. .IP \(bu 2
  228698. Fix backward compatibility issues for pecl modules
  228699. .IP \(bu 2
  228700. Fix Windows uninstaller to only remove \fB\&./bin\fP, \fBsalt*\fP, \fBnssm.exe\fP, \fBuninst.exe\fP (\fI\%issue #27383\fP)
  228701. .IP \(bu 2
  228702. Fix misc issues with mongo returner.
  228703. .IP \(bu 2
  228704. Add sudo option to cloud config files (\fI\%issue #27398\fP)
  228705. .IP \(bu 2
  228706. Fix regression in RunnerClient argument handling (\fI\%issue #25107\fP)
  228707. .IP \(bu 2
  228708. Fix \fBdockerng.running\fP replacing creation hostconfig with runtime hostconfig (\fI\%issue #27265\fP)
  228709. .IP \(bu 2
  228710. Fix dockerng.running replacing creation hostconfig with runtime hostconfig (\fI\%issue #27265\fP)
  228711. .IP \(bu 2
  228712. Increased performance on boto asg/elb states due to \fB__states__\fP integration
  228713. .IP \(bu 2
  228714. Windows minion no longer requires powershell to restart (\fI\%issue #26629\fP)
  228715. .IP \(bu 2
  228716. Fix x509 module to support recent versions of OpenSSL (\fI\%issue #27326\fP)
  228717. .IP \(bu 2
  228718. Some issues with proxy minions were corrected.
  228719. .UNINDENT
  228720. .SS Known Issues
  228721. .INDENT 0.0
  228722. .IP \(bu 2
  228723. Proxy minions currently cannot execute a highstate because of the way
  228724. the proxymodule is being loaded internally. This will be fixed in a
  228725. future release.
  228726. .UNINDENT
  228727. .SS Changelog for v2015.8.0..v2015.8.1
  228728. .sp
  228729. \fIGenerated at: 2018\-05\-27 22:48:32 UTC\fP
  228730. .INDENT 0.0
  228731. .IP \(bu 2
  228732. \fBPR\fP \fI\%#27588\fP: (\fI\%jfindlay\fP) add autogenerated 2015.8.1 release notes
  228733. @ \fI2015\-10\-01 04:52:32 UTC\fP
  228734. .INDENT 2.0
  228735. .IP \(bu 2
  228736. 87d86e4b3e Merge pull request \fI\%#27588\fP from jfindlay/2015.8
  228737. .IP \(bu 2
  228738. f2eb20f26b add autogenerated 2015.8.1 release notes
  228739. .UNINDENT
  228740. .IP \(bu 2
  228741. \fBPR\fP \fI\%#27584\fP: (\fI\%jacobhammons\fP) added changes list to 2015.8.1 release notes
  228742. @ \fI2015\-10\-01 04:32:47 UTC\fP
  228743. .INDENT 2.0
  228744. .IP \(bu 2
  228745. f7510baf33 Merge pull request \fI\%#27584\fP from jacobhammons/release\-notes
  228746. .IP \(bu 2
  228747. ee4a3b3549 added changes list for 2015.8.1
  228748. .UNINDENT
  228749. .IP \(bu 2
  228750. \fBISSUE\fP \fI\%#27532\fP: (\fI\%centromere\fP) salt\-cloud does not recognize terminated instances (refs: \fI\%#27575\fP)
  228751. .IP \(bu 2
  228752. \fBPR\fP \fI\%#27575\fP: (\fI\%rallytime\fP) Don\(aqt report existing instances as running only if they\(aqre actually terminated in EC2
  228753. @ \fI2015\-09\-30 22:17:24 UTC\fP
  228754. .INDENT 2.0
  228755. .IP \(bu 2
  228756. 1a31b19f15 Merge pull request \fI\%#27575\fP from rallytime/fix\-27532
  228757. .IP \(bu 2
  228758. 57c6535fc2 Make sure message is the most accurate. Instance may be stopped or shutting down.
  228759. .IP \(bu 2
  228760. da6b4b3604 Don\(aqt report existing instances as running only if they\(aqre actually terminated
  228761. .UNINDENT
  228762. .IP \(bu 2
  228763. \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)
  228764. .IP \(bu 2
  228765. \fBPR\fP \fI\%#27573\fP: (\fI\%basepi\fP) [2015.8] Use the custom yaml serializer for minion_opts for salt\-ssh
  228766. @ \fI2015\-09\-30 21:16:22 UTC\fP
  228767. .INDENT 2.0
  228768. .IP \(bu 2
  228769. bee78a4e5c Merge pull request \fI\%#27573\fP from basepi/salt\-ssh.grains.minion_opts.27290
  228770. .IP \(bu 2
  228771. 0785438b3f Use the custom yaml serializer for minion_opts for salt\-ssh
  228772. .UNINDENT
  228773. .IP \(bu 2
  228774. \fBISSUE\fP \fI\%#27326\fP: (\fI\%ralphvanetten\fP) Signing the X509 CA certificate does not work on Debian 8 (refs: \fI\%#27514\fP)
  228775. .IP \(bu 2
  228776. \fBPR\fP \fI\%#27514\fP: (\fI\%clinta\fP) Recent Versions of OpenSSL don\(aqt allow importing incomplete PEMs
  228777. @ \fI2015\-09\-30 19:33:12 UTC\fP
  228778. .INDENT 2.0
  228779. .IP \(bu 2
  228780. a4a53ecff5 Merge pull request \fI\%#27514\fP from clinta/2015.8\-27326
  228781. .IP \(bu 2
  228782. 515e62bfa7 change "None" to empty string
  228783. .IP \(bu 2
  228784. 2989f24169 fix 27326 and fix minor errors in docs.
  228785. .UNINDENT
  228786. .IP \(bu 2
  228787. \fBPR\fP \fI\%#27564\fP: (\fI\%jacobhammons\fP) Man pages
  228788. @ \fI2015\-09\-30 19:29:37 UTC\fP
  228789. .INDENT 2.0
  228790. .IP \(bu 2
  228791. 6cf0228adc Merge pull request \fI\%#27564\fP from jacobhammons/man\-pages
  228792. .IP \(bu 2
  228793. cc37dc1087 updated version in salt.7
  228794. .IP \(bu 2
  228795. a9dcb23a13 regenerated man pages for 2015.8.1
  228796. .UNINDENT
  228797. .IP \(bu 2
  228798. \fBISSUE\fP \fI\%#26629\fP: (\fI\%efficks\fP) Windows minion: Remove powershell dependencies (refs: \fI\%#27522\fP)
  228799. .IP \(bu 2
  228800. \fBPR\fP \fI\%#27522\fP: (\fI\%twangboy\fP) Removed dependency on powershell to restart salt\-minion
  228801. @ \fI2015\-09\-30 16:19:29 UTC\fP
  228802. .INDENT 2.0
  228803. .IP \(bu 2
  228804. fd11e0cd95 Merge pull request \fI\%#27522\fP from twangboy/fix_26629
  228805. .IP \(bu 2
  228806. 163c54505d Fixed tests... hopefully
  228807. .IP \(bu 2
  228808. dc8c01ed07 Fixed some lint
  228809. .IP \(bu 2
  228810. 2cb0f12696 Removed dependency on powershell to restart salt\-minion
  228811. .UNINDENT
  228812. .IP \(bu 2
  228813. \fBPR\fP \fI\%#27550\fP: (\fI\%rallytime\fP) [2015.8] Clean up salt\-cloud logging and make it more useful
  228814. @ \fI2015\-09\-30 15:48:53 UTC\fP
  228815. .INDENT 2.0
  228816. .IP \(bu 2
  228817. eb76531e96 Merge pull request \fI\%#27550\fP from rallytime/cloud\-logging
  228818. .IP \(bu 2
  228819. 9e0fccd543 Don\(aqt commit private\-ip changes from testing another bug...
  228820. .IP \(bu 2
  228821. 78c85fbb31 Add unit tests for new recursive function
  228822. .IP \(bu 2
  228823. d9a2dc6bc5 [2015.8] Clean up salt\-cloud logging and make it more useful
  228824. .UNINDENT
  228825. .IP \(bu 2
  228826. \fBISSUE\fP \fI\%#27281\fP: (\fI\%lrhazi\fP) Wrong path for yum repo in installation\-rhel\-repo (refs: \fI\%#27517\fP)
  228827. .IP \(bu 2
  228828. \fBISSUE\fP \fI\%#27179\fP: (\fI\%samhamilton\fP) Debian Install Instructions Shows Two Different Repos (refs: \fI\%#27517\fP)
  228829. .IP \(bu 2
  228830. \fBPR\fP \fI\%#27517\fP: (\fI\%jacobhammons\fP) Updated install docs
  228831. @ \fI2015\-09\-30 15:19:51 UTC\fP
  228832. .INDENT 2.0
  228833. .IP \(bu 2
  228834. 1f7ea7c764 Merge pull request \fI\%#27517\fP from jacobhammons/install\-docs
  228835. .IP \(bu 2
  228836. 167fd2304e Fixed a duplicated link ID
  228837. .IP \(bu 2
  228838. c05fa71f91 Updated install docs Refs \fI\%#27281\fP Refs \fI\%#27179\fP
  228839. .UNINDENT
  228840. .IP \(bu 2
  228841. \fBPR\fP \fI\%#27526\fP: (\fI\%eliasp\fP) Add missing newlines before param listing to fix doc rendering
  228842. @ \fI2015\-09\-30 15:19:04 UTC\fP
  228843. .INDENT 2.0
  228844. .IP \(bu 2
  228845. 2a4c11ae24 Merge pull request \fI\%#27526\fP from eliasp/2015.8\-modules.slack_notify\-doc\-params
  228846. .IP \(bu 2
  228847. 204e66943f Add missing newlines before param listing to fix doc rendering
  228848. .UNINDENT
  228849. .IP \(bu 2
  228850. \fBPR\fP \fI\%#27525\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228851. @ \fI2015\-09\-30 03:38:22 UTC\fP
  228852. .INDENT 2.0
  228853. .IP \(bu 2
  228854. e5de9409c2 Merge pull request \fI\%#27525\fP from basepi/merge\-forward\-2015.8
  228855. .IP \(bu 2
  228856. 1f3eb1c526 Remove useless mocked unit test
  228857. .IP \(bu 2
  228858. 73b90f155e Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  228859. .INDENT 2.0
  228860. .IP \(bu 2
  228861. 6d773f66c3 Merge pull request \fI\%#27516\fP from basepi/merge\-forward\-2015.5
  228862. .INDENT 2.0
  228863. .IP \(bu 2
  228864. a08951f0fa Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  228865. .IP \(bu 2
  228866. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  228867. .INDENT 2.0
  228868. .IP \(bu 2
  228869. adeb1dcad4 Pylint Fix
  228870. .IP \(bu 2
  228871. 588c13783c Salt\-cloud logging clean up for windows functions
  228872. .IP \(bu 2
  228873. 9b6000135c [2014.7] Fixup salt\-cloud logging
  228874. .UNINDENT
  228875. .UNINDENT
  228876. .IP \(bu 2
  228877. 68d784c3dd Merge pull request \fI\%#27472\fP from cachedout/fix_27447
  228878. .INDENT 2.0
  228879. .IP \(bu 2
  228880. 5e745ad6da Change recommeded schema for data field in mysql event table
  228881. .UNINDENT
  228882. .IP \(bu 2
  228883. ee6e0ed057 Merge pull request \fI\%#27468\fP from cachedout/fix_27351
  228884. .INDENT 2.0
  228885. .IP \(bu 2
  228886. 0bc37c0d41 Fix test
  228887. .IP \(bu 2
  228888. f9a19720de fix sysctl truncating newline on os x
  228889. .UNINDENT
  228890. .IP \(bu 2
  228891. a214c7f84e Merge pull request \fI\%#27479\fP from aboe76/fix_locale_suse
  228892. .INDENT 2.0
  228893. .IP \(bu 2
  228894. a8f2dad1be fix locale on opensuse and suse \fI\%#27438\fP
  228895. .UNINDENT
  228896. .IP \(bu 2
  228897. 931f593b51 Merge pull request \fI\%#27483\fP from rallytime/fix\-17103
  228898. .INDENT 2.0
  228899. .IP \(bu 2
  228900. 441241eb90 Change sync_outputters to sync_output for consistency, but alias sync_outputters
  228901. .IP \(bu 2
  228902. 105528720b Outputters should sync to output, not outputters, on the minion.
  228903. .UNINDENT
  228904. .IP \(bu 2
  228905. 9c2c028953 Merge pull request \fI\%#27484\fP from rallytime/bp\-27434\-and\-27470
  228906. .INDENT 2.0
  228907. .IP \(bu 2
  228908. 5de2ee35ab Minor doc fixup.
  228909. .IP \(bu 2
  228910. af656c7e87 Doc: copy key to server via ssh\-copy\-id
  228911. .UNINDENT
  228912. .IP \(bu 2
  228913. 927874d316 Merge pull request \fI\%#27469\fP from twangboy/fix_27433
  228914. .INDENT 2.0
  228915. .IP \(bu 2
  228916. a996ea46e2 Added quotes to version numbers example
  228917. .UNINDENT
  228918. .IP \(bu 2
  228919. 382a53403f Merge pull request \fI\%#27467\fP from cachedout/lint_27375
  228920. .INDENT 2.0
  228921. .IP \(bu 2
  228922. 4e54a98f5e Lint \fI\%#27375\fP
  228923. .IP \(bu 2
  228924. 278ade52d2 file.managed: check contents_{pillar|grain} result
  228925. .UNINDENT
  228926. .IP \(bu 2
  228927. ed6207a438 Merge pull request \fI\%#27419\fP from rallytime/fix\-9856
  228928. .INDENT 2.0
  228929. .IP \(bu 2
  228930. 551396564a Ammend error log to include multiple tips for troubleshooting.
  228931. .UNINDENT
  228932. .IP \(bu 2
  228933. 73fa89edf7 Merge pull request \fI\%#27426\fP from rallytime/fix\-16753
  228934. .INDENT 2.0
  228935. .IP \(bu 2
  228936. f6cbd81e66 Don\(aqt stacktrace if there are conflicting id errors in highstate
  228937. .UNINDENT
  228938. .IP \(bu 2
  228939. 5dd1b70475 Merge pull request \fI\%#27408\fP from rallytime/fix\-27406\-for\-2015.5
  228940. .INDENT 2.0
  228941. .IP \(bu 2
  228942. 39a4ae5a6c Remove hdd: 19 refs from SL docs \- no longer available from SoftLayer.
  228943. .IP \(bu 2
  228944. de2f9234d3 Use correct default for bandwith
  228945. .IP \(bu 2
  228946. 42d8127f79 Don\(aqt set the optional_products default to a boolean, and then try to loop.
  228947. .IP \(bu 2
  228948. 9d8a3d8303 Fix avail_locations function for the softlayer_hw driver in 2015.5
  228949. .UNINDENT
  228950. .IP \(bu 2
  228951. 8f9a3cfbaf Merge pull request \fI\%#27410\fP from jacobhammons/doc\-updates
  228952. .INDENT 2.0
  228953. .IP \(bu 2
  228954. a9fdecada1 Fix css layout Refs \fI\%#27389\fP sample typo fix in linux_acl additional module folders listed in dynamic\-modules
  228955. .UNINDENT
  228956. .IP \(bu 2
  228957. 3746085587 Merge pull request \fI\%#27336\fP from rallytime/cloud\-logging\-five
  228958. .INDENT 2.0
  228959. .IP \(bu 2
  228960. 7956b36076 [2015.5] Fixup salt\-cloud logging
  228961. .UNINDENT
  228962. .IP \(bu 2
  228963. 5a3be10a3e Merge pull request \fI\%#27358\fP from lorengordon/escape\-search\-replacement\-text
  228964. .INDENT 2.0
  228965. .IP \(bu 2
  228966. 88bb1fbfff Escape search replacement text, fixes \fI\%#27356\fP
  228967. .UNINDENT
  228968. .IP \(bu 2
  228969. 6759f79d6d Merge pull request \fI\%#27345\fP from rallytime/docs\-for\-19236
  228970. .INDENT 2.0
  228971. .IP \(bu 2
  228972. 1d3925bbfb Added version tag for ex_disk_type option
  228973. .IP \(bu 2
  228974. f23369300c Allow use of rst header links by separating options out from yaml example
  228975. .UNINDENT
  228976. .IP \(bu 2
  228977. c2efb291e2 Merge pull request \fI\%#26903\fP from bersace/fix\-defaults\-modules
  228978. .INDENT 2.0
  228979. .IP \(bu 2
  228980. 474d7afc95 fixup! Review defaults loading
  228981. .IP \(bu 2
  228982. 36141d226e fixup! Review defaults loading
  228983. .IP \(bu 2
  228984. 62b6495358 fixup! Review defaults loading
  228985. .IP \(bu 2
  228986. cf0624e8b8 fixup! Review defaults loading
  228987. .IP \(bu 2
  228988. 2c58bab977 fixup! Review defaults loading
  228989. .IP \(bu 2
  228990. 82c5b1d8fd Review defaults loading
  228991. .UNINDENT
  228992. .IP \(bu 2
  228993. a372466922 Merge pull request \fI\%#27317\fP from efficks/fix27316
  228994. .INDENT 2.0
  228995. .IP \(bu 2
  228996. bf216c101e State unzip should use unzip command instead of unzip_cmd. Issue \fI\%#27316\fP
  228997. .UNINDENT
  228998. .IP \(bu 2
  228999. bd3771e80f Merge pull request \fI\%#27309\fP from rallytime/fix\-15514
  229000. .INDENT 2.0
  229001. .IP \(bu 2
  229002. 9383d91ff8 Change a value list to a comma\-separated string in boto_route53.present
  229003. .UNINDENT
  229004. .IP \(bu 2
  229005. b5fe944875 Merge pull request \fI\%#27311\fP from jfindlay/maxoc
  229006. .INDENT 2.0
  229007. .IP \(bu 2
  229008. 8ec2e921bd discuss replacement occurrences in file doc
  229009. .UNINDENT
  229010. .UNINDENT
  229011. .UNINDENT
  229012. .IP \(bu 2
  229013. \fBPR\fP \fI\%#27513\fP: (\fI\%terminalmage\fP) Fix integration tests for worktree addition in git >= 2.6
  229014. @ \fI2015\-09\-29 18:39:19 UTC\fP
  229015. .INDENT 2.0
  229016. .IP \(bu 2
  229017. 0e37fb3bd3 Merge pull request \fI\%#27513\fP from terminalmage/fix\-worktree\-tests
  229018. .IP \(bu 2
  229019. 519bdd6438 Fix integration tests for worktree addition in git >= 2.6
  229020. .UNINDENT
  229021. .IP \(bu 2
  229022. \fBPR\fP \fI\%#27510\fP: (\fI\%rallytime\fP) Merge \fI\%#27475\fP with test fixes
  229023. @ \fI2015\-09\-29 18:34:32 UTC\fP
  229024. .INDENT 2.0
  229025. .IP \(bu 2
  229026. \fBPR\fP \fI\%#27475\fP: (\fI\%ryan\-lane\fP) Use __states__ for calls to other boto states (refs: \fI\%#27510\fP)
  229027. .IP \(bu 2
  229028. e974a3c8aa Merge pull request \fI\%#27510\fP from rallytime/ryan\-lane\-test\-fix
  229029. .IP \(bu 2
  229030. cae2c4e715 Syntax fix
  229031. .IP \(bu 2
  229032. 458547ba03 Fix test failures for boto __state__ changes
  229033. .IP \(bu 2
  229034. 5e25454fc1 Followups for using __states__
  229035. .IP \(bu 2
  229036. a01f8ac62c Use __states__ for calls to other boto states
  229037. .UNINDENT
  229038. .IP \(bu 2
  229039. \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)
  229040. .IP \(bu 2
  229041. \fBPR\fP \fI\%#27451\fP: (\fI\%ticosax\fP) [dockerng] Enforce usage of host_config and require docker\-py>=1.4.0
  229042. @ \fI2015\-09\-29 15:51:28 UTC\fP
  229043. .INDENT 2.0
  229044. .IP \(bu 2
  229045. d85b0cbd69 Merge pull request \fI\%#27451\fP from ticosax/dockerng\-host\-config\-support
  229046. .IP \(bu 2
  229047. b184faa55b Enforce usage of host_config and require docker\-py>=1.4.0
  229048. .UNINDENT
  229049. .IP \(bu 2
  229050. \fBPR\fP \fI\%#27461\fP: (\fI\%cachedout\fP) Only clean context if it exists
  229051. @ \fI2015\-09\-29 15:49:52 UTC\fP
  229052. .INDENT 2.0
  229053. .IP \(bu 2
  229054. e8f58a6a3f Merge pull request \fI\%#27461\fP from cachedout/clean_context_ioloop
  229055. .IP \(bu 2
  229056. 7367a4e32b Only clean context if it exists
  229057. .UNINDENT
  229058. .IP \(bu 2
  229059. \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)
  229060. .IP \(bu 2
  229061. \fBPR\fP \fI\%#27473\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: Don\(aqt use close_fds=True on Windows
  229062. @ \fI2015\-09\-29 15:34:03 UTC\fP
  229063. .INDENT 2.0
  229064. .IP \(bu 2
  229065. 25a30a5621 Merge pull request \fI\%#27473\fP from terminalmage/issue27220
  229066. .IP \(bu 2
  229067. fa70ef2e31 salt.utils.gitfs: Don\(aqt use close_fds=True on Windows
  229068. .UNINDENT
  229069. .IP \(bu 2
  229070. \fBPR\fP \fI\%#27496\fP: (\fI\%blueyed\fP) Fix version reporting of gitpython
  229071. @ \fI2015\-09\-29 15:31:48 UTC\fP
  229072. .INDENT 2.0
  229073. .IP \(bu 2
  229074. 3807cd5c4e Merge pull request \fI\%#27496\fP from blueyed/fix\-gitpython\-version
  229075. .IP \(bu 2
  229076. d8969363c8 Fix version reporting of gitpython
  229077. .UNINDENT
  229078. .IP \(bu 2
  229079. \fBPR\fP \fI\%#27502\fP: (\fI\%ticosax\fP) Add test to check we don\(aqt call inspect_image on absent images.
  229080. @ \fI2015\-09\-29 15:15:09 UTC\fP
  229081. .INDENT 2.0
  229082. .IP \(bu 2
  229083. \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)
  229084. .IP \(bu 2
  229085. 057fd0729d Merge pull request \fI\%#27502\fP from ticosax/backport\-test\-from\-develop
  229086. .IP \(bu 2
  229087. fadd9bd43e Add test to check we don\(aqt call inspect_image on absent images.
  229088. .UNINDENT
  229089. .IP \(bu 2
  229090. \fBPR\fP \fI\%#27497\fP: (\fI\%blueyed\fP) dockerng: fix image_present for forced, non\-existent image
  229091. @ \fI2015\-09\-29 13:49:46 UTC\fP
  229092. .INDENT 2.0
  229093. .IP \(bu 2
  229094. f3da6e4bb3 Merge pull request \fI\%#27497\fP from blueyed/dockerng\-fix\-404\-private\-forced
  229095. .IP \(bu 2
  229096. e3c66cea3a dockerng: fix image_present for forced, non\-existent image
  229097. .UNINDENT
  229098. .IP \(bu 2
  229099. \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)
  229100. .IP \(bu 2
  229101. \fBPR\fP \fI\%#27411\fP: (\fI\%terminalmage\fP) Fix invocation of git.config_get and git.config_set
  229102. @ \fI2015\-09\-28 22:53:01 UTC\fP
  229103. .INDENT 2.0
  229104. .IP \(bu 2
  229105. 284984e6ba Merge pull request \fI\%#27411\fP from terminalmage/issue27205
  229106. .IP \(bu 2
  229107. c3a17ae992 add missing commas
  229108. .IP \(bu 2
  229109. f2751ef7c4 Fix shadowed outer\-scope attributes
  229110. .IP \(bu 2
  229111. 81a6c27010 Fix invocation of git.config_get and git.config_set
  229112. .UNINDENT
  229113. .IP \(bu 2
  229114. \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)
  229115. .IP \(bu 2
  229116. \fBPR\fP \fI\%#27477\fP: (\fI\%terminalmage\fP) Don\(aqt append role to hash_cachedir
  229117. @ \fI2015\-09\-28 22:26:34 UTC\fP
  229118. .INDENT 2.0
  229119. .IP \(bu 2
  229120. cbcb5475b6 Merge pull request \fI\%#27477\fP from terminalmage/issue27217
  229121. .IP \(bu 2
  229122. c185e99970 Second attempt to fix \fI\%#27217\fP
  229123. .UNINDENT
  229124. .IP \(bu 2
  229125. \fBPR\fP \fI\%#27474\fP: (\fI\%whiteinge\fP) Add fake pymongo version attribute for the docs
  229126. @ \fI2015\-09\-28 21:49:25 UTC\fP
  229127. .INDENT 2.0
  229128. .IP \(bu 2
  229129. 2f71833260 Merge pull request \fI\%#27474\fP from whiteinge/docs\-pymongo\-fix
  229130. .IP \(bu 2
  229131. 64b54e668a Add fake pymongo version attribute for the docs
  229132. .UNINDENT
  229133. .IP \(bu 2
  229134. \fBPR\fP \fI\%#27466\fP: (\fI\%blueyed\fP) Fix version reporting of python\-gnupg and mysql\-python
  229135. @ \fI2015\-09\-28 20:25:01 UTC\fP
  229136. .INDENT 2.0
  229137. .IP \(bu 2
  229138. 9202f956f3 Merge pull request \fI\%#27466\fP from blueyed/fix\-gnupg\-version
  229139. .IP \(bu 2
  229140. 9c1454fe59 Fix version reporting of mysql\-python
  229141. .IP \(bu 2
  229142. 437fb4407e Fix version reporting of python\-gnupg
  229143. .UNINDENT
  229144. .IP \(bu 2
  229145. \fBPR\fP \fI\%#27465\fP: (\fI\%ticosax\fP) Fix usage of dockerng "cmd" was \fI\%#27459\fP
  229146. @ \fI2015\-09\-28 19:27:41 UTC\fP
  229147. .INDENT 2.0
  229148. .IP \(bu 2
  229149. \fBPR\fP \fI\%#27459\fP: (\fI\%terminalmage\fP) Fix usage of dockerng "cmd" (refs: \fI\%#27465\fP)
  229150. .IP \(bu 2
  229151. \fBPR\fP \fI\%#27444\fP: (\fI\%ticosax\fP) docker\-py expect only \fIcommand\fP argument not \fIcmd\fP (refs: \fI\%#27459\fP)
  229152. .IP \(bu 2
  229153. \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)
  229154. .IP \(bu 2
  229155. 6d8e9af297 Merge pull request \fI\%#27465\fP from ticosax/fix\-dockerng\-cmd
  229156. .IP \(bu 2
  229157. a1ed6cda56 Skip test if docker\-py is not installed
  229158. .IP \(bu 2
  229159. 6f7769aa94 Correct log messages/docstrings
  229160. .IP \(bu 2
  229161. cc8471bd1b dockerpy expect only \fIcommand\fP argument not \fIcmd\fP
  229162. .UNINDENT
  229163. .IP \(bu 2
  229164. \fBISSUE\fP \fI\%#27409\fP: (\fI\%pcn\fP) 2015.8.0 API (cherrypy) fails to lookup job id via pepper (refs: \fI\%#27417\fP)
  229165. .IP \(bu 2
  229166. \fBISSUE\fP \fI\%#25107\fP: (\fI\%whiteinge\fP) Regression in RunnerClient argument handling (refs: \fI\%#25243\fP)
  229167. .IP \(bu 2
  229168. \fBPR\fP \fI\%#27417\fP: (\fI\%whiteinge\fP) Backport \fI\%#25243\fP into 2015.8
  229169. @ \fI2015\-09\-28 19:15:53 UTC\fP
  229170. .INDENT 2.0
  229171. .IP \(bu 2
  229172. \fBPR\fP \fI\%#25243\fP: (\fI\%DmitryKuzmenko\fP) Runnerclient regression fix (refs: \fI\%#27417\fP)
  229173. .IP \(bu 2
  229174. aefe6d794a Merge pull request \fI\%#27417\fP from whiteinge/bp\-25243
  229175. .IP \(bu 2
  229176. 53e7a6b7c5 RunnerClient support old style commands with kwargs on top level.
  229177. .IP \(bu 2
  229178. 10b522b86c Revert "Fixed GET /jobs/<id> requests"
  229179. .UNINDENT
  229180. .IP \(bu 2
  229181. \fBPR\fP \fI\%#27423\fP: (\fI\%dmurphy18\fP) Changes to support configurable repository for Debian / Ubuntu
  229182. @ \fI2015\-09\-28 17:34:22 UTC\fP
  229183. .INDENT 2.0
  229184. .IP \(bu 2
  229185. a07411a4d9 Merge pull request \fI\%#27423\fP from dmurphy18/dgm_envfix
  229186. .IP \(bu 2
  229187. 63407fd2a9 Changes to support configurable repository for Debian / Ubuntu
  229188. .UNINDENT
  229189. .IP \(bu 2
  229190. \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)
  229191. .IP \(bu 2
  229192. \fBPR\fP \fI\%#27428\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27398\fP to 2015.8
  229193. @ \fI2015\-09\-28 15:03:16 UTC\fP
  229194. .INDENT 2.0
  229195. .IP \(bu 2
  229196. \fBPR\fP \fI\%#27398\fP: (\fI\%flowhamster\fP) Allow cloud roster to use sudo (refs: \fI\%#27428\fP)
  229197. .IP \(bu 2
  229198. d4d96bb3fc Merge pull request \fI\%#27428\fP from rallytime/bp\-27398
  229199. .IP \(bu 2
  229200. 6969326ae2 doc: added documentation to cloud roster and fixed whitespace
  229201. .IP \(bu 2
  229202. b4334649d5 Allow cloud roster to use sudo
  229203. .UNINDENT
  229204. .IP \(bu 2
  229205. \fBPR\fP \fI\%#27429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27344\fP to 2015.8
  229206. @ \fI2015\-09\-28 15:01:20 UTC\fP
  229207. .INDENT 2.0
  229208. .IP \(bu 2
  229209. \fBPR\fP \fI\%#27344\fP: (\fI\%rhealitycheck\fP) Mongo returners patch 1 (refs: \fI\%#27429\fP)
  229210. .IP \(bu 2
  229211. 668c69bd7e Merge pull request \fI\%#27429\fP from rallytime/bp\-27344
  229212. .IP \(bu 2
  229213. e39a57afe1 Update mongo_return.py
  229214. .IP \(bu 2
  229215. f796c9a44b Update mongo_return.py
  229216. .IP \(bu 2
  229217. 30d07cbb27 Update mongo_return.py
  229218. .IP \(bu 2
  229219. 44ef4b48fb Update mongo_future_return.py
  229220. .IP \(bu 2
  229221. 34b160b841 Update mongo_return.py
  229222. .IP \(bu 2
  229223. b2b5623da3 Update mongo_future_return.py
  229224. .IP \(bu 2
  229225. 07f9a8b95b Update mongo_return.py
  229226. .IP \(bu 2
  229227. b7ddc83b4d Update mongo_future_return.py
  229228. .IP \(bu 2
  229229. 540b3f2690 Update mongo_return.py
  229230. .IP \(bu 2
  229231. 405edd0718 Update mongo_future_return.py
  229232. .IP \(bu 2
  229233. 5c753a54ff Update mongo_return.py
  229234. .IP \(bu 2
  229235. 06e05befa7 Update mongo_future_return.py
  229236. .UNINDENT
  229237. .IP \(bu 2
  229238. \fBPR\fP \fI\%#27450\fP: (\fI\%ticosax\fP) [dockerng] Fix typo in docstring
  229239. @ \fI2015\-09\-28 14:27:35 UTC\fP
  229240. .INDENT 2.0
  229241. .IP \(bu 2
  229242. c639931340 Merge pull request \fI\%#27450\fP from ticosax/fix\-typo
  229243. .IP \(bu 2
  229244. 9cea62de67 Fix typo in docstring
  229245. .UNINDENT
  229246. .IP \(bu 2
  229247. \fBPR\fP \fI\%#27430\fP: (\fI\%jacksontj\fP) Fix bug introduced in eee0291ff8b65ff1e22f4dc2447a74aa28a3ce7f
  229248. @ \fI2015\-09\-26 01:09:40 UTC\fP
  229249. .INDENT 2.0
  229250. .IP \(bu 2
  229251. 333c305ba0 Merge pull request \fI\%#27430\fP from jacksontj/2015.8
  229252. .IP \(bu 2
  229253. d2aff12f8f Fix bug introduced in eee0291ff8b65ff1e22f4dc2447a74aa28a3ce7f
  229254. .UNINDENT
  229255. .IP \(bu 2
  229256. \fBPR\fP \fI\%#27418\fP: (\fI\%terminalmage\fP) Don\(aqt always remove dest path in salt.utils.files.rename()
  229257. @ \fI2015\-09\-25 23:09:59 UTC\fP
  229258. .INDENT 2.0
  229259. .IP \(bu 2
  229260. 1f4ca089a2 Merge pull request \fI\%#27418\fP from terminalmage/file\-rename
  229261. .IP \(bu 2
  229262. 7bc0949d48 Don\(aqt always remove dest path in salt.utils.files.rename()
  229263. .UNINDENT
  229264. .IP \(bu 2
  229265. \fBISSUE\fP \fI\%#27032\fP: (\fI\%lorengordon\fP) Windows Installer: Please be more kind to existing configurations (refs: \fI\%#27383\fP)
  229266. .IP \(bu 2
  229267. \fBPR\fP \fI\%#27383\fP: (\fI\%twangboy\fP) Uninstaller only removes specific files and dirs
  229268. @ \fI2015\-09\-25 22:47:24 UTC\fP
  229269. .INDENT 2.0
  229270. .IP \(bu 2
  229271. ec5faf1829 Merge pull request \fI\%#27383\fP from twangboy/fix_27032
  229272. .IP \(bu 2
  229273. 63a7305ae9 Uninstaller only removes specific files and dirs
  229274. .UNINDENT
  229275. .IP \(bu 2
  229276. \fBPR\fP \fI\%#27416\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27399\fP to 2015.8
  229277. @ \fI2015\-09\-25 22:39:07 UTC\fP
  229278. .INDENT 2.0
  229279. .IP \(bu 2
  229280. \fBPR\fP \fI\%#27399\fP: (\fI\%multani\fP) Various documentation fixes (refs: \fI\%#27416\fP)
  229281. .IP \(bu 2
  229282. 9ab3c6dc5d Merge pull request \fI\%#27416\fP from rallytime/bp\-27399
  229283. .IP \(bu 2
  229284. 1d848118c9 doc: fixed indentation in salt.renderers.jinja\(aqs documentation
  229285. .IP \(bu 2
  229286. f5d053a033 doc: fixed indentation in salt.modules.consul\(aqs documentation
  229287. .IP \(bu 2
  229288. 06beea6b2f doc: fix etcd state documentation typos
  229289. .IP \(bu 2
  229290. 97e69ebb97 doc: fix state\(aqs top documentation typo
  229291. .IP \(bu 2
  229292. b411730d60 doc: fix documentation formatting for state blockdev
  229293. .IP \(bu 2
  229294. ce91bb9446 doc: fix formatting in state boto_elb
  229295. .IP \(bu 2
  229296. c69229875e doc: fix links in Docker state documentation
  229297. .IP \(bu 2
  229298. 15b751d6e2 doc: Docker state use ports and not port_bindings anymore
  229299. .IP \(bu 2
  229300. 880b6e0944 doc: fix link to docker\-py documentation
  229301. .IP \(bu 2
  229302. 33db0c27f8 doc: fix RAET links
  229303. .IP \(bu 2
  229304. e69ba2f943 doc: fix rendering of salt.states.hipchat
  229305. .UNINDENT
  229306. .IP \(bu 2
  229307. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#27394\fP, \fI\%#27163\fP)
  229308. .IP \(bu 2
  229309. \fBPR\fP \fI\%#27394\fP: (\fI\%jacksontj\fP) Remove streamed response for fileclient to avoid HTTP redirection problems
  229310. @ \fI2015\-09\-25 21:55:31 UTC\fP
  229311. .INDENT 2.0
  229312. .IP \(bu 2
  229313. \fBPR\fP \fI\%#27163\fP: (\fI\%terminalmage\fP) Workaround upstream tornado bug affecting redirects (refs: \fI\%#27394\fP)
  229314. .IP \(bu 2
  229315. 9842d9728b Merge pull request \fI\%#27394\fP from jacksontj/2015.8
  229316. .IP \(bu 2
  229317. 01132c305c Re\-add files.rename call instead of os.rename
  229318. .IP \(bu 2
  229319. acf2d51440 Remove streamed response for fileclient to avoid HTTP redirection problems
  229320. .IP \(bu 2
  229321. a6ecf35f25 Revert "Remove unused import"
  229322. .IP \(bu 2
  229323. 66c73a3996 Revert "Workaround upstream tornado bug affecting redirects"
  229324. .UNINDENT
  229325. .IP \(bu 2
  229326. \fBPR\fP \fI\%#27415\fP: (\fI\%ryan\-lane\fP) Backwards compat fixes for pecl module
  229327. @ \fI2015\-09\-25 19:40:55 UTC\fP
  229328. .INDENT 2.0
  229329. .IP \(bu 2
  229330. 44b246bf93 Merge pull request \fI\%#27415\fP from lyft/fix\-pecl
  229331. .IP \(bu 2
  229332. 8be8ef585c Backwards compat fixes for pecl module
  229333. .UNINDENT
  229334. .IP \(bu 2
  229335. \fBPR\fP \fI\%#27407\fP: (\fI\%meggiebot\fP) Adding stretch label definition
  229336. @ \fI2015\-09\-25 18:10:46 UTC\fP
  229337. .INDENT 2.0
  229338. .IP \(bu 2
  229339. d76a77c911 Merge pull request \fI\%#27407\fP from saltstack/meggiebot\-patch\-1
  229340. .IP \(bu 2
  229341. 1c779700f6 Adding stretch label definition
  229342. .UNINDENT
  229343. .IP \(bu 2
  229344. \fBISSUE\fP \fI\%#27209\fP: (\fI\%justinta\fP) Provider overrides appear to be broken (refs: \fI\%#27388\fP)
  229345. .IP \(bu 2
  229346. \fBPR\fP \fI\%#27388\fP: (\fI\%basepi\fP) [2015.8] Fix global provider overrides
  229347. @ \fI2015\-09\-25 16:49:03 UTC\fP
  229348. .INDENT 2.0
  229349. .IP \(bu 2
  229350. db6acfd832 Merge pull request \fI\%#27388\fP from basepi/provider.overrides.27209
  229351. .IP \(bu 2
  229352. d87147e14b Don\(aqt use ret.items(), forces load of all modules
  229353. .IP \(bu 2
  229354. a5ee33a9ad pack __salt__ before loading provider overrides
  229355. .UNINDENT
  229356. .IP \(bu 2
  229357. \fBISSUE\fP \fI\%#27354\fP: (\fI\%gravyboat\fP) salt\-ssh roster docs should note the requiretty option (refs: \fI\%#27386\fP)
  229358. .IP \(bu 2
  229359. \fBPR\fP \fI\%#27386\fP: (\fI\%rallytime\fP) Document tty: True usage in salt\-ssh roster file
  229360. @ \fI2015\-09\-25 15:44:12 UTC\fP
  229361. .INDENT 2.0
  229362. .IP \(bu 2
  229363. b72e0b1133 Merge pull request \fI\%#27386\fP from rallytime/fix\-27354
  229364. .IP \(bu 2
  229365. 08c04da48b Document tty: True usage in salt\-ssh roster file
  229366. .UNINDENT
  229367. .IP \(bu 2
  229368. \fBPR\fP \fI\%#27380\fP: (\fI\%justinta\fP) Skipping Async tests
  229369. @ \fI2015\-09\-25 15:13:04 UTC\fP
  229370. .INDENT 2.0
  229371. .IP \(bu 2
  229372. 51e765078a Merge pull request \fI\%#27380\fP from jtand/async_tests
  229373. .IP \(bu 2
  229374. fd0dedeb99 Skipping Async tests
  229375. .UNINDENT
  229376. .IP \(bu 2
  229377. \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)
  229378. .IP \(bu 2
  229379. \fBPR\fP \fI\%#27382\fP: (\fI\%terminalmage\fP) Revert "fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)"
  229380. @ \fI2015\-09\-24 22:54:23 UTC\fP
  229381. .INDENT 2.0
  229382. .IP \(bu 2
  229383. 633af56517 Merge pull request \fI\%#27382\fP from terminalmage/revert\-27218
  229384. .IP \(bu 2
  229385. 2379748f9e Revert "fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)"
  229386. .UNINDENT
  229387. .IP \(bu 2
  229388. \fBPR\fP \fI\%#27361\fP: (\fI\%cro\fP) Correct some issues with proxy minions
  229389. @ \fI2015\-09\-24 16:03:38 UTC\fP
  229390. .INDENT 2.0
  229391. .IP \(bu 2
  229392. 12a021da11 Merge pull request \fI\%#27361\fP from cro/pxm_doc
  229393. .IP \(bu 2
  229394. 1a2c41c9e3 Add versionadded.
  229395. .IP \(bu 2
  229396. 93a6397598 func_alias should be list_ and should have a corresponding list_ fn.
  229397. .IP \(bu 2
  229398. 0221f7ee4e Pylint
  229399. .IP \(bu 2
  229400. 3a297d8036 Add release notes for proxy fixes.
  229401. .IP \(bu 2
  229402. 39df44b841 Pylint
  229403. .IP \(bu 2
  229404. e3ebff9bce Fix some problems with the rest_sample, remove unnecessary file and make sure that rest_service has the right contents.
  229405. .IP \(bu 2
  229406. f4944fe68a Fix typo in docs
  229407. .UNINDENT
  229408. .IP \(bu 2
  229409. \fBPR\fP \fI\%#27364\fP: (\fI\%ruzarowski\fP) SaltCloud[EC2] Fix missing credentials in modify_eni_properties api call
  229410. @ \fI2015\-09\-24 13:55:39 UTC\fP
  229411. .INDENT 2.0
  229412. .IP \(bu 2
  229413. cff74510de Merge pull request \fI\%#27364\fP from ruzarowski/2015.8\-modify\-eni\-properties\-api\-call
  229414. .IP \(bu 2
  229415. 100eea46d5 Issue \fI\%#27121\fP \- Remove leftover code comment
  229416. .IP \(bu 2
  229417. c58e7a00f3 Issue \fI\%#27121\fP \- Attempt to fix missing credentials when modifying eni properties
  229418. .IP \(bu 2
  229419. 5d292a221e Merge remote\-tracking branch \(aqupstream/2015.8\(aq into 2015.8
  229420. .IP \(bu 2
  229421. 4dbd9ebb30 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into 2015.8
  229422. .UNINDENT
  229423. .IP \(bu 2
  229424. \fBPR\fP \fI\%#27349\fP: (\fI\%jfindlay\fP) add freebsd install docs to release notes
  229425. @ \fI2015\-09\-24 13:51:02 UTC\fP
  229426. .INDENT 2.0
  229427. .IP \(bu 2
  229428. 928ef59a8a Merge pull request \fI\%#27349\fP from jfindlay/doc_typos
  229429. .IP \(bu 2
  229430. e509cfca17 fix typo in 2015.8.0 pull list
  229431. .IP \(bu 2
  229432. 7137e731d3 add FreeBSD documentation to 2015.8.0 notes
  229433. .UNINDENT
  229434. .IP \(bu 2
  229435. \fBISSUE\fP \fI\%#26889\fP: (\fI\%UtahDave\fP) salt\-call w/non root user outputs repeating error (refs: \fI\%#27343\fP)
  229436. .IP \(bu 2
  229437. \fBPR\fP \fI\%#27343\fP: (\fI\%cachedout\fP) Close io loop before deleting attribute
  229438. @ \fI2015\-09\-24 13:49:55 UTC\fP
  229439. .INDENT 2.0
  229440. .IP \(bu 2
  229441. 331230ea4f Merge pull request \fI\%#27343\fP from cachedout/issue_26889
  229442. .IP \(bu 2
  229443. 2b648e51af Close io loop before deleting attribute
  229444. .UNINDENT
  229445. .IP \(bu 2
  229446. \fBPR\fP \fI\%#27337\fP: (\fI\%rallytime\fP) [2015.8] Fixup salt\-cloud logging
  229447. @ \fI2015\-09\-24 13:49:17 UTC\fP
  229448. .INDENT 2.0
  229449. .IP \(bu 2
  229450. cd82ead005 Merge pull request \fI\%#27337\fP from rallytime/cloud\-logging\-eight
  229451. .IP \(bu 2
  229452. ed18384108 Merge pull request \fI\%#7\fP from jtand/cloud\-logging\-eight
  229453. .INDENT 2.0
  229454. .IP \(bu 2
  229455. a6c1d0b408 Fixed a bug where logging_command wasnt set as a key in a couple spots
  229456. .UNINDENT
  229457. .IP \(bu 2
  229458. 8bb7cb7ff4 Use correct indexes
  229459. .IP \(bu 2
  229460. c3483002b0 [2015.8] Fixup salt\-cloud logging
  229461. .UNINDENT
  229462. .IP \(bu 2
  229463. \fBPR\fP \fI\%#27332\fP: (\fI\%terminalmage\fP) Adjust dockerng/dockerio docstrings
  229464. @ \fI2015\-09\-24 13:45:34 UTC\fP
  229465. .INDENT 2.0
  229466. .IP \(bu 2
  229467. b2f8418ffc Merge pull request \fI\%#27332\fP from terminalmage/adjust\-dockerng\-docstring
  229468. .IP \(bu 2
  229469. bdbf4d8e5c Add deprecation notice to dockerio state module
  229470. .IP \(bu 2
  229471. 17829ab38d Fix name of dockerng module in dockerio docstring
  229472. .IP \(bu 2
  229473. ed5ae75180 Adjust dockerng docstrings
  229474. .UNINDENT
  229475. .IP \(bu 2
  229476. \fBPR\fP \fI\%#27353\fP: (\fI\%cachedout\fP) Fix case where var not set in config
  229477. @ \fI2015\-09\-23 21:45:32 UTC\fP
  229478. .INDENT 2.0
  229479. .IP \(bu 2
  229480. ac9e6c2532 Merge pull request \fI\%#27353\fP from cachedout/fix_retry_get
  229481. .IP \(bu 2
  229482. ea286e1874 Fix case where var not set in config
  229483. .UNINDENT
  229484. .IP \(bu 2
  229485. \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)
  229486. .IP \(bu 2
  229487. \fBPR\fP \fI\%#27350\fP: (\fI\%rallytime\fP) Allow IP\-forwarding in GCE driver
  229488. @ \fI2015\-09\-23 21:36:41 UTC\fP
  229489. .INDENT 2.0
  229490. .IP \(bu 2
  229491. 3f6b06116f Merge pull request \fI\%#27350\fP from rallytime/fix\-21390
  229492. .IP \(bu 2
  229493. 2bf566d934 Allow IP\-forwarding in GCE driver
  229494. .IP \(bu 2
  229495. 484015a7a3 Added version tag for ex_disk_type option
  229496. .IP \(bu 2
  229497. a71ebc97b2 Allow use of rst header links by separating options out from yaml example
  229498. .UNINDENT
  229499. .IP \(bu 2
  229500. \fBISSUE\fP \fI\%#27103\fP: (\fI\%twangboy\fP) Salt\-Minion doesn\(aqt display logs for new processes with multiprocessing on (refs: \fI\%#27305\fP)
  229501. .IP \(bu 2
  229502. \fBPR\fP \fI\%#27305\fP: (\fI\%cachedout\fP) Re\-init logging system on Windows when using multiprocessing
  229503. @ \fI2015\-09\-23 15:32:32 UTC\fP
  229504. .INDENT 2.0
  229505. .IP \(bu 2
  229506. 6f3da863fc Merge pull request \fI\%#27305\fP from cachedout/issue_27103
  229507. .IP \(bu 2
  229508. 7a7492d186 Fix typo
  229509. .IP \(bu 2
  229510. 22c653482c Re\-init logging system on Windows when using multiprocessing
  229511. .UNINDENT
  229512. .IP \(bu 2
  229513. \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)
  229514. @ \fI2015\-09\-23 15:27:43 UTC\fP
  229515. .INDENT 2.0
  229516. .IP \(bu 2
  229517. 684e33aeb2 Merge pull request \fI\%#27331\fP from terminalmage/dockerng\-cmd
  229518. .IP \(bu 2
  229519. 7d4eaac8ae dockerng: Allow both cmd and command to be used to specify command
  229520. .UNINDENT
  229521. .IP \(bu 2
  229522. \fBPR\fP \fI\%#27327\fP: (\fI\%isbm\fP) Fix a typo in the RPM output
  229523. @ \fI2015\-09\-23 14:27:42 UTC\fP
  229524. .INDENT 2.0
  229525. .IP \(bu 2
  229526. a3f4fa1106 Merge pull request \fI\%#27327\fP from isbm/isbm\-pkg\-info\-typofix
  229527. .IP \(bu 2
  229528. 7912f8c13b Fix typo
  229529. .UNINDENT
  229530. .IP \(bu 2
  229531. \fBPR\fP \fI\%#27312\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229532. @ \fI2015\-09\-22 22:52:14 UTC\fP
  229533. .INDENT 2.0
  229534. .IP \(bu 2
  229535. a789303d75 Merge pull request \fI\%#27312\fP from basepi/merge\-forward\-2015.8
  229536. .IP \(bu 2
  229537. 647080d064 Add missing import
  229538. .IP \(bu 2
  229539. 95e70f0bef Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229540. .IP \(bu 2
  229541. ca4597b93a Merge pull request \fI\%#27310\fP from basepi/merge\-forward\-2015.5
  229542. .INDENT 2.0
  229543. .IP \(bu 2
  229544. 7b75e4aed1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  229545. .IP \(bu 2
  229546. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  229547. .INDENT 2.0
  229548. .IP \(bu 2
  229549. 3d28307a00 2014.7 \-> 2014.7.0
  229550. .UNINDENT
  229551. .UNINDENT
  229552. .IP \(bu 2
  229553. 982c21c79f Merge pull request \fI\%#27308\fP from terminalmage/fix\-refresh_db\-regression
  229554. .INDENT 2.0
  229555. .IP \(bu 2
  229556. 77686fb7ce Fix refresh_db regression in yumpkg.py
  229557. .UNINDENT
  229558. .IP \(bu 2
  229559. 775a4f9ad0 Merge pull request \fI\%#27286\fP from terminalmage/return_retry_timer
  229560. .INDENT 2.0
  229561. .IP \(bu 2
  229562. 540a7dfcf1 Add default values for new minion config options
  229563. .IP \(bu 2
  229564. 453b883820 Add a configurable timer for minion return retries
  229565. .UNINDENT
  229566. .IP \(bu 2
  229567. 02482c0572 Merge pull request \fI\%#27278\fP from rallytime/bp\-27256
  229568. .INDENT 2.0
  229569. .IP \(bu 2
  229570. 1beddf6311 Fix error handling in salt.modules.file.statvfs
  229571. .UNINDENT
  229572. .IP \(bu 2
  229573. e36c019c37 Merge pull request \fI\%#27277\fP from rallytime/bp\-27230
  229574. .INDENT 2.0
  229575. .IP \(bu 2
  229576. 3ce77db1bc Fix typo in AWS doc config
  229577. .UNINDENT
  229578. .IP \(bu 2
  229579. b22286476e Merge pull request \fI\%#27253\fP from jfindlay/version.2015.5
  229580. .INDENT 2.0
  229581. .IP \(bu 2
  229582. 967e3bb72a 2015.5 \-> 2015.5.0
  229583. .UNINDENT
  229584. .IP \(bu 2
  229585. 51a0193b54 Merge pull request \fI\%#27244\fP from garethgreenaway/ec2_create_snapshot_no_return_data_exception
  229586. .INDENT 2.0
  229587. .IP \(bu 2
  229588. 820fd576b9 Fixing the cause when the r_data from aws.query is empty and an exception happens when looking for the snapshotID
  229589. .UNINDENT
  229590. .IP \(bu 2
  229591. 26540f15bc Merge pull request \fI\%#27231\fP from jfindlay/cronchange
  229592. .INDENT 2.0
  229593. .IP \(bu 2
  229594. 1e335297e2 only write cron file if it is changed
  229595. .UNINDENT
  229596. .UNINDENT
  229597. .IP \(bu 2
  229598. \fBPR\fP \fI\%#27303\fP: (\fI\%jacobhammons\fP) Updated module doc index using \fI\%https://github.com/saltstack/salt/pull\fP…
  229599. @ \fI2015\-09\-22 19:29:04 UTC\fP
  229600. .INDENT 2.0
  229601. .IP \(bu 2
  229602. c3b690273b Merge pull request \fI\%#27303\fP from jacobhammons/ref\-updates
  229603. .IP \(bu 2
  229604. 7ac98a03b6 Updated module doc index using \fI\%https://github.com/saltstack/salt/pull/27203\fP
  229605. .UNINDENT
  229606. .IP \(bu 2
  229607. \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)
  229608. .IP \(bu 2
  229609. \fBPR\fP \fI\%#27301\fP: (\fI\%twangboy\fP) Pass ca_bundle for windows (fixes SSL Error)
  229610. @ \fI2015\-09\-22 19:00:45 UTC\fP
  229611. .INDENT 2.0
  229612. .IP \(bu 2
  229613. aaa2db9943 Merge pull request \fI\%#27301\fP from twangboy/fix_27081
  229614. .IP \(bu 2
  229615. 5c4f5f8944 Changed windows gate to check for verify_ssl option
  229616. .IP \(bu 2
  229617. e2fe5a60b5 Pass ca_bundle for windows (fixes SSL Error)
  229618. .UNINDENT
  229619. .IP \(bu 2
  229620. \fBPR\fP \fI\%#27300\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27287\fP to 2015.8
  229621. @ \fI2015\-09\-22 16:59:07 UTC\fP
  229622. .INDENT 2.0
  229623. .IP \(bu 2
  229624. \fBPR\fP \fI\%#27287\fP: (\fI\%rhealitycheck\fP) Mongo returners patch 1 (refs: \fI\%#27300\fP)
  229625. .IP \(bu 2
  229626. 55f4050146 Merge pull request \fI\%#27300\fP from rallytime/bp\-27287
  229627. .IP \(bu 2
  229628. e49a6dc449 Update mongo_return.py
  229629. .IP \(bu 2
  229630. 63153322b9 Update mongo_future_return.py
  229631. .UNINDENT
  229632. .IP \(bu 2
  229633. \fBPR\fP \fI\%#27288\fP: (\fI\%rallytime\fP) Filter on \(aqname\(aq, not \(aqid\(aq, when listing images
  229634. @ \fI2015\-09\-21 22:37:26 UTC\fP
  229635. .INDENT 2.0
  229636. .IP \(bu 2
  229637. d96462af48 Merge pull request \fI\%#27288\fP from rallytime/do\-cleanup
  229638. .IP \(bu 2
  229639. 6e16fad760 Use name in all places, not id.
  229640. .IP \(bu 2
  229641. 9b34542cb0 Filter on \(aqname\(aq, not \(aqid\(aq, when listing images
  229642. .UNINDENT
  229643. .IP \(bu 2
  229644. \fBPR\fP \fI\%#27283\fP: (\fI\%justinta\fP) __grains__[\(aqosrelease\(aq] returns a string
  229645. @ \fI2015\-09\-21 19:18:44 UTC\fP
  229646. .INDENT 2.0
  229647. .IP \(bu 2
  229648. 688f24e9e4 Merge pull request \fI\%#27283\fP from jtand/yumpkg_yum_fix
  229649. .IP \(bu 2
  229650. b73f5289b4 __grains__[\(aqosrelease\(aq] returns a string. Cast to int for correct comparison
  229651. .UNINDENT
  229652. .IP \(bu 2
  229653. \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)
  229654. .IP \(bu 2
  229655. \fBPR\fP \fI\%#27276\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27218\fP to 2015.8
  229656. @ \fI2015\-09\-21 19:05:54 UTC\fP
  229657. .INDENT 2.0
  229658. .IP \(bu 2
  229659. \fBPR\fP \fI\%#27218\fP: (\fI\%nasenbaer13\fP) fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs) (refs: \fI\%#27276\fP)
  229660. .IP \(bu 2
  229661. 78d44a5c74 Merge pull request \fI\%#27276\fP from rallytime/bp\-27218
  229662. .IP \(bu 2
  229663. 8c0991d527 fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)
  229664. .UNINDENT
  229665. .IP \(bu 2
  229666. \fBPR\fP \fI\%#27275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27213\fP to 2015.8
  229667. @ \fI2015\-09\-21 19:05:18 UTC\fP
  229668. .INDENT 2.0
  229669. .IP \(bu 2
  229670. \fBPR\fP \fI\%#27213\fP: (\fI\%macgyver13\fP) Make get_event compatible with salt/client (refs: \fI\%#27275\fP)
  229671. .IP \(bu 2
  229672. d5ce81e8e7 Merge pull request \fI\%#27275\fP from rallytime/bp\-27213
  229673. .IP \(bu 2
  229674. 5d4c90c479 Make get_event compatible with salt/client
  229675. .UNINDENT
  229676. .IP \(bu 2
  229677. \fBPR\fP \fI\%#27274\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27272\fP to 2015.8
  229678. @ \fI2015\-09\-21 18:54:48 UTC\fP
  229679. .INDENT 2.0
  229680. .IP \(bu 2
  229681. \fBPR\fP \fI\%#27272\fP: (\fI\%techhat\fP) Make sure list_nodes_full contains a name attribute (refs: \fI\%#27274\fP)
  229682. .IP \(bu 2
  229683. 2be21d6451 Merge pull request \fI\%#27274\fP from rallytime/bp\-27272
  229684. .IP \(bu 2
  229685. f3ea3259a5 Make sure list_nodes_full contains a name attribute
  229686. .UNINDENT
  229687. .IP \(bu 2
  229688. \fBPR\fP \fI\%#27271\fP: (\fI\%isbm\fP) Bugfix: crash on token authentication via API
  229689. @ \fI2015\-09\-21 15:53:09 UTC\fP
  229690. .INDENT 2.0
  229691. .IP \(bu 2
  229692. c0943dd4d1 Merge pull request \fI\%#27271\fP from isbm/isbm\-bufix\-27270
  229693. .IP \(bu 2
  229694. fc524c17b9 Reduce the criteria that would match empty iterables as well as None or False values
  229695. .IP \(bu 2
  229696. 3152af78b5 Fix the crash on token auth via API (\fI\%http://git.io/vn4tx\fP)
  229697. .UNINDENT
  229698. .IP \(bu 2
  229699. \fBISSUE\fP \fI\%#19947\fP: (\fI\%gczuczy\fP) Unable to supply provisioning script to softlayer create() (refs: \fI\%#27251\fP)
  229700. .IP \(bu 2
  229701. \fBPR\fP \fI\%#27251\fP: (\fI\%rallytime\fP) Add support for post_uri in SoftLayer cloud drivers
  229702. @ \fI2015\-09\-21 15:43:16 UTC\fP
  229703. .INDENT 2.0
  229704. .IP \(bu 2
  229705. b11ce6ac2a Merge pull request \fI\%#27251\fP from rallytime/fix\-19947
  229706. .IP \(bu 2
  229707. aafb776808 Add support for post_uri in SoftLayer cloud drivers
  229708. .UNINDENT
  229709. .IP \(bu 2
  229710. \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)
  229711. .IP \(bu 2
  229712. \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)
  229713. .IP \(bu 2
  229714. \fBPR\fP \fI\%#27260\fP: (\fI\%bechtoldt\fP) add missing module doc references
  229715. @ \fI2015\-09\-21 05:48:38 UTC\fP
  229716. .INDENT 2.0
  229717. .IP \(bu 2
  229718. \fBPR\fP \fI\%#25019\fP: (\fI\%bechtoldt\fP) add missing module documentation to references (refs: \fI\%#27260\fP)
  229719. .IP \(bu 2
  229720. \fBPR\fP \fI\%#24421\fP: (\fI\%bechtoldt\fP) add missing module documentation (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229721. .IP \(bu 2
  229722. \fBPR\fP \fI\%#21880\fP: (\fI\%bechtoldt\fP) update references, fixes \fI\%#21879\fP (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229723. .IP \(bu 2
  229724. \fBPR\fP \fI\%#20039\fP: (\fI\%bechtoldt\fP) completing some doc references (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229725. .IP \(bu 2
  229726. de6e5abe6c Merge pull request \fI\%#27260\fP from bechtoldt/missing_refs
  229727. .IP \(bu 2
  229728. 3a7d31a91c add missing module references
  229729. .UNINDENT
  229730. .IP \(bu 2
  229731. \fBPR\fP \fI\%#27254\fP: (\fI\%jfindlay\fP) 2015.2,2015.8,Beryllium \-> 2015.8.0
  229732. @ \fI2015\-09\-18 23:44:46 UTC\fP
  229733. .INDENT 2.0
  229734. .IP \(bu 2
  229735. 1a32b9f778 Merge pull request \fI\%#27254\fP from jfindlay/version.2015.8
  229736. .IP \(bu 2
  229737. 8ea15f498e 2015.2,2015.8,Beryllium \-> 2015.8.0
  229738. .UNINDENT
  229739. .IP \(bu 2
  229740. \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)
  229741. .IP \(bu 2
  229742. \fBPR\fP \fI\%#27245\fP: (\fI\%rallytime\fP) If two ssh keynames are found in DigitalOcean, abort and warn the user.
  229743. @ \fI2015\-09\-18 21:42:36 UTC\fP
  229744. .INDENT 2.0
  229745. .IP \(bu 2
  229746. f3a847823b Merge pull request \fI\%#27245\fP from rallytime/fix\-25079
  229747. .IP \(bu 2
  229748. 4b0f7cce1d If two ssh keynames are found in DigitalOcean, abort.
  229749. .UNINDENT
  229750. .IP \(bu 2
  229751. \fBISSUE\fP \fI\%#27065\fP: (\fI\%lorengordon\fP) 2015.8.0: yumpkg reporting "Unexpected osrelease grain \(aq6.7\(aq" (refs: \fI\%#27241\fP)
  229752. .IP \(bu 2
  229753. \fBPR\fP \fI\%#27241\fP: (\fI\%jfindlay\fP) osrelease is only an integer for fedora
  229754. @ \fI2015\-09\-18 21:40:50 UTC\fP
  229755. .INDENT 2.0
  229756. .IP \(bu 2
  229757. e4a5b004ae Merge pull request \fI\%#27241\fP from jfindlay/yumwarn
  229758. .IP \(bu 2
  229759. 1f7570250f osrelease is only an integer for fedora
  229760. .UNINDENT
  229761. .IP \(bu 2
  229762. \fBPR\fP \fI\%#27234\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229763. @ \fI2015\-09\-18 20:41:38 UTC\fP
  229764. .INDENT 2.0
  229765. .IP \(bu 2
  229766. f8e71f6d7d Merge pull request \fI\%#27234\fP from basepi/merge\-forward\-2015.8
  229767. .IP \(bu 2
  229768. be2b0fc497 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229769. .INDENT 2.0
  229770. .IP \(bu 2
  229771. 579f375f74 Merge pull request \fI\%#27233\fP from basepi/release.notes.stubs
  229772. .INDENT 2.0
  229773. .IP \(bu 2
  229774. f4563ea9b7 Add stub release notes for 2015.5.6
  229775. .UNINDENT
  229776. .IP \(bu 2
  229777. f5a322e3f2 Merge pull request \fI\%#27208\fP from basepi/nop.state.25423
  229778. .INDENT 2.0
  229779. .IP \(bu 2
  229780. 9414b05b2c Add test.nop example
  229781. .IP \(bu 2
  229782. a84ce67b8f Add test.nop state
  229783. .UNINDENT
  229784. .IP \(bu 2
  229785. 59a07cae68 Merge pull request \fI\%#27201\fP from jfindlay/sshhash
  229786. .INDENT 2.0
  229787. .IP \(bu 2
  229788. 1b620b77cd rename hash_host arg to hash_known_hosts
  229789. .IP \(bu 2
  229790. 12f14ae37c update hash_known_hosts docs in ssh module
  229791. .UNINDENT
  229792. .IP \(bu 2
  229793. 560545c4c5 Merge pull request \fI\%#27214\fP from jacksontj/2015.5
  229794. .INDENT 2.0
  229795. .IP \(bu 2
  229796. e7526bdb44 Correctly support https, port 443 is not a requirement
  229797. .UNINDENT
  229798. .IP \(bu 2
  229799. 7a34c7742d Merge pull request \fI\%#27172\fP from rallytime/bp\-27150
  229800. .INDENT 2.0
  229801. .IP \(bu 2
  229802. 0d7ee4b209 Merge config values from master.d/minion.d conf files
  229803. .UNINDENT
  229804. .UNINDENT
  229805. .UNINDENT
  229806. .IP \(bu 2
  229807. \fBPR\fP \fI\%#27240\fP: (\fI\%isbm\fP) Backport of the fix of \(aqpkg.info*\(aq for Beryllium
  229808. @ \fI2015\-09\-18 20:02:15 UTC\fP
  229809. .INDENT 2.0
  229810. .IP \(bu 2
  229811. 2d6c75cbd7 Merge pull request \fI\%#27240\fP from isbm/isbm\-pkg.info\-tz\-bugfix\-backport\-2015.8
  229812. .IP \(bu 2
  229813. 19a361851a Return install date only if possible.
  229814. .IP \(bu 2
  229815. ff857bc8aa Return RPM package time in UTC timezone
  229816. .IP \(bu 2
  229817. eaa0f370bf Remove time fraction and return ISO in UTC
  229818. .IP \(bu 2
  229819. ce9570fce6 Return UTC timestamp for modification of path.
  229820. .UNINDENT
  229821. .IP \(bu 2
  229822. \fBISSUE\fP \fI\%#27222\fP: (\fI\%pprkut\fP) Support firewalld zone configuration in network.managed state for rh7 systems (refs: \fI\%#27223\fP)
  229823. .IP \(bu 2
  229824. \fBPR\fP \fI\%#27223\fP: (\fI\%pprkut\fP) Support firewalld per interface zone config on rh7 systems
  229825. @ \fI2015\-09\-18 19:44:45 UTC\fP
  229826. .INDENT 2.0
  229827. .IP \(bu 2
  229828. 80a45b74ed Merge pull request \fI\%#27223\fP from M2Mobi/zone
  229829. .IP \(bu 2
  229830. 48023669e7 Support permanent per interface firewalld zone configuration on rh7 systems.
  229831. .IP \(bu 2
  229832. \fBPR\fP \fI\%#27239\fP: (\fI\%bechtoldt\fP) test \fI\%#27238\fP prevent keyerror when partition doesn\(aqt exist (refs: \fI\%#27238\fP)
  229833. .UNINDENT
  229834. .IP \(bu 2
  229835. \fBPR\fP \fI\%#27238\fP: (\fI\%bechtoldt\fP) salt.modules.disk.percent() throws KeyError when partition doesn\(aqt exist (refs: \fI\%#27239\fP)
  229836. @ \fI2015\-09\-18 19:37:00 UTC\fP
  229837. .INDENT 2.0
  229838. .IP \(bu 2
  229839. 652b2998af Merge pull request \fI\%#27238\fP from bechtoldt/fix_disk_percent_keyerror
  229840. .IP \(bu 2
  229841. 0511f611bb prevent KeyError by checking whether partition even exists
  229842. .UNINDENT
  229843. .IP \(bu 2
  229844. \fBPR\fP \fI\%#27232\fP: (\fI\%basepi\fP) [2015.8] Add stub release notes for 2015.8.1
  229845. @ \fI2015\-09\-18 16:53:01 UTC\fP
  229846. .INDENT 2.0
  229847. .IP \(bu 2
  229848. 253ac5e0c3 Merge pull request \fI\%#27232\fP from basepi/release.notes.stubs
  229849. .IP \(bu 2
  229850. 25410706ee Add stub release notes for 2015.8.1
  229851. .UNINDENT
  229852. .IP \(bu 2
  229853. \fBISSUE\fP \fI\%#24573\fP: (\fI\%bailsman\fP) cloud.profile RuntimeError: dictionary changed size during iteration (refs: \fI\%#27199\fP)
  229854. .IP \(bu 2
  229855. \fBPR\fP \fI\%#27199\fP: (\fI\%rallytime\fP) Avoid RunTimeError (dictionary changed size during iteration) with keys()
  229856. @ \fI2015\-09\-18 15:44:27 UTC\fP
  229857. .INDENT 2.0
  229858. .IP \(bu 2
  229859. c542cd49d0 Merge pull request \fI\%#27199\fP from rallytime/fix\-24573
  229860. .IP \(bu 2
  229861. 6b2a00e947 Avoid RunTimeError (dictionary changed size during iteration) with keys()
  229862. .UNINDENT
  229863. .IP \(bu 2
  229864. \fBPR\fP \fI\%#27206\fP: (\fI\%rallytime\fP) Don\(aqt repeat GCE setup instructions, and make the use of .json files clearer
  229865. @ \fI2015\-09\-18 14:38:40 UTC\fP
  229866. .INDENT 2.0
  229867. .IP \(bu 2
  229868. 6b79ad69a9 Merge pull request \fI\%#27206\fP from rallytime/gce\-doc\-cleanup
  229869. .IP \(bu 2
  229870. cced6e9031 Don\(aqt repeat GCE setup instructions, and make the use of .json files clearer
  229871. .UNINDENT
  229872. .IP \(bu 2
  229873. \fBPR\fP \fI\%#27210\fP: (\fI\%rallytime\fP) Refactor some digital ocean functions
  229874. @ \fI2015\-09\-18 14:38:01 UTC\fP
  229875. .INDENT 2.0
  229876. .IP \(bu 2
  229877. 1d022eb5de Merge pull request \fI\%#27210\fP from rallytime/do\-clean\-up
  229878. .IP \(bu 2
  229879. 808a5b3b81 Make sure we set the full data to the ret variable
  229880. .IP \(bu 2
  229881. 9b635004e2 Refactor some digital_ocean functions to help simplify the driver
  229882. .UNINDENT
  229883. .IP \(bu 2
  229884. \fBPR\fP \fI\%#27197\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229885. @ \fI2015\-09\-17 19:53:22 UTC\fP
  229886. .INDENT 2.0
  229887. .IP \(bu 2
  229888. 8c204a45ab Merge pull request \fI\%#27197\fP from basepi/merge\-forward\-2015.8
  229889. .IP \(bu 2
  229890. 2c2a5f85ac Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229891. .INDENT 2.0
  229892. .IP \(bu 2
  229893. e956d88f5f Merge pull request \fI\%#27194\fP from rallytime/bp\-27180
  229894. .INDENT 2.0
  229895. .IP \(bu 2
  229896. 327d343fef file copy ret result True if no change in test mode
  229897. .UNINDENT
  229898. .IP \(bu 2
  229899. a02d043309 Merge pull request \fI\%#27176\fP from basepi/merge\-forward\-2015.5
  229900. .INDENT 2.0
  229901. .IP \(bu 2
  229902. 66f4641be3 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  229903. .IP \(bu 2
  229904. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  229905. .INDENT 2.0
  229906. .IP \(bu 2
  229907. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  229908. .UNINDENT
  229909. .IP \(bu 2
  229910. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  229911. .INDENT 2.0
  229912. .IP \(bu 2
  229913. 507fb04683 Issue warning that some log levels may contain sensitive data
  229914. .UNINDENT
  229915. .IP \(bu 2
  229916. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  229917. .IP \(bu 2
  229918. c0689e3215 Replaced password with redacted when displayed
  229919. .UNINDENT
  229920. .IP \(bu 2
  229921. de2027426e Merge pull request \fI\%#27170\fP from rallytime/gce\-docs
  229922. .INDENT 2.0
  229923. .IP \(bu 2
  229924. a07db909bd Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  229925. .UNINDENT
  229926. .IP \(bu 2
  229927. 28cfdfd067 Merge pull request \fI\%#27167\fP from rallytime/bp\-27148
  229928. .INDENT 2.0
  229929. .IP \(bu 2
  229930. d12be52355 Pass filepointers to the serialize load functions.
  229931. .UNINDENT
  229932. .IP \(bu 2
  229933. 4495f4f4d0 Merge pull request \fI\%#27168\fP from techhat/gateimpacket
  229934. .INDENT 2.0
  229935. .IP \(bu 2
  229936. cc448bfdc1 Add further gating of impacket library
  229937. .UNINDENT
  229938. .IP \(bu 2
  229939. 3e5ef0dc30 Merge pull request \fI\%#27166\fP from rallytime/fix\-27100
  229940. .INDENT 2.0
  229941. .IP \(bu 2
  229942. 50fb3a489a Allow a full\-query for EC2, even if there are no profiles defined
  229943. .UNINDENT
  229944. .IP \(bu 2
  229945. f1c9de7ed9 Merge pull request \fI\%#27162\fP from rallytime/softlayer\-service
  229946. .INDENT 2.0
  229947. .IP \(bu 2
  229948. d281068c70 Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  229949. .UNINDENT
  229950. .IP \(bu 2
  229951. 59e9dfd8de Merge pull request \fI\%#27149\fP from twangboy/fix_27133
  229952. .INDENT 2.0
  229953. .IP \(bu 2
  229954. 7992b7e20a Fixed some tests... hopefully...
  229955. .IP \(bu 2
  229956. d4c8e30f5d Fixed problem with add/remove path
  229957. .UNINDENT
  229958. .IP \(bu 2
  229959. 097fcd1017 Merge pull request \fI\%#27147\fP from rallytime/fix\-11669
  229960. .INDENT 2.0
  229961. .IP \(bu 2
  229962. 55312ea03f Provide a more friendly error message.
  229963. .IP \(bu 2
  229964. 36555856c7 Enforce bounds in the GCE Regex
  229965. .UNINDENT
  229966. .IP \(bu 2
  229967. f5c3f157dd Merge pull request \fI\%#27128\fP from eguven/2015.5\-fix\-test\-diff
  229968. .INDENT 2.0
  229969. .IP \(bu 2
  229970. ec2d68a84a don\(aqt show diff for test run if show_diff=False
  229971. .UNINDENT
  229972. .IP \(bu 2
  229973. 088b1dbb3e Merge pull request \fI\%#27116\fP from jacobhammons/release\-docs\-2015.5
  229974. .INDENT 2.0
  229975. .IP \(bu 2
  229976. 6e323b6dd3 Update latest to 2015.8, 2015.5 is now previous Assorted style and minor updates
  229977. .UNINDENT
  229978. .IP \(bu 2
  229979. 440855b182 Merge pull request \fI\%#27033\fP from jfindlay/n0ne
  229980. .INDENT 2.0
  229981. .IP \(bu 2
  229982. 3334b9d548 fix comment and unit test for reg state
  229983. .IP \(bu 2
  229984. 391a09d5ac update reg state unit tests
  229985. .IP \(bu 2
  229986. ebbf2b05ca Fixed reg state module for None, 0, and \(aq\(aq values
  229987. .UNINDENT
  229988. .IP \(bu 2
  229989. 35fc74132a Merge pull request \fI\%#26942\fP from Arabus/fix\-docker.run
  229990. .INDENT 2.0
  229991. .IP \(bu 2
  229992. e61e1de1f5 Fixes value typo for dockerio.loaded state
  229993. .IP \(bu 2
  229994. 39fa11b696 further linting
  229995. .IP \(bu 2
  229996. 4aec37397c Further Linting to quiet the linter
  229997. .IP \(bu 2
  229998. 7eff8ad070 Code Linting and cmd call fix
  229999. .IP \(bu 2
  230000. a51676e0eb Fixes \fI\%#17088\fP olyif and unless should run on the host
  230001. .IP \(bu 2
  230002. d0c6128b8f Fixes \fI\%#17088\fP retcode now returns True or False based on return status
  230003. .IP \(bu 2
  230004. 8b2e7cc4f5 Syntax clarification
  230005. .UNINDENT
  230006. .UNINDENT
  230007. .UNINDENT
  230008. .IP \(bu 2
  230009. \fBPR\fP \fI\%#27195\fP: (\fI\%jacobhammons\fP) Fixed sphinx / latex build warnings and errors
  230010. @ \fI2015\-09\-17 17:28:37 UTC\fP
  230011. .INDENT 2.0
  230012. .IP \(bu 2
  230013. 430c48c5ea Merge pull request \fI\%#27195\fP from jacobhammons/doc\-build
  230014. .IP \(bu 2
  230015. fad87e34a2 Fixed lint errors
  230016. .IP \(bu 2
  230017. e56f02b025 re\-add cheatsheet do\-over
  230018. .IP \(bu 2
  230019. 60a8330561 re\-added cheatsheet.tex
  230020. .IP \(bu 2
  230021. f7a9e25d52 Fixed sphinx / latex build warnings and errors Added missing modules to contents
  230022. .UNINDENT
  230023. .IP \(bu 2
  230024. \fBPR\fP \fI\%#27182\fP: (\fI\%bernieke\fP) fix restart_on_error
  230025. @ \fI2015\-09\-17 17:24:01 UTC\fP
  230026. .INDENT 2.0
  230027. .IP \(bu 2
  230028. 8f8e75c5ff Merge pull request \fI\%#27182\fP from Awingu/2015.8
  230029. .IP \(bu 2
  230030. 693b81f7e4 fix restart_on_error \fI\%#27127\fP
  230031. .UNINDENT
  230032. .IP \(bu 2
  230033. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#27394\fP, \fI\%#27163\fP)
  230034. .IP \(bu 2
  230035. \fBPR\fP \fI\%#27163\fP: (\fI\%terminalmage\fP) Workaround upstream tornado bug affecting redirects (refs: \fI\%#27394\fP)
  230036. @ \fI2015\-09\-17 16:09:01 UTC\fP
  230037. .INDENT 2.0
  230038. .IP \(bu 2
  230039. 97d2a5fddc Merge pull request \fI\%#27163\fP from terminalmage/issue27093
  230040. .IP \(bu 2
  230041. 80b396db73 Handle potential ValueError when checking content length
  230042. .IP \(bu 2
  230043. a89c987943 Remove unused import
  230044. .IP \(bu 2
  230045. 469e18f74c Workaround upstream tornado bug affecting redirects
  230046. .IP \(bu 2
  230047. f2a562ac60 Add salt.utils.files.rename() for cross\-platform renaming
  230048. .UNINDENT
  230049. .IP \(bu 2
  230050. \fBISSUE\fP \fI\%#19954\fP: (\fI\%gczuczy\fP) Multiple disks on softlayer (refs: \fI\%#27173\fP)
  230051. .IP \(bu 2
  230052. \fBPR\fP \fI\%#27177\fP: (\fI\%rallytime\fP) Remove note \- incorrect info
  230053. @ \fI2015\-09\-17 01:34:04 UTC\fP
  230054. .INDENT 2.0
  230055. .IP \(bu 2
  230056. \fBPR\fP \fI\%#27173\fP: (\fI\%rallytime\fP) Add the ability to specify multiple disks on the SoftLayer driver (refs: \fI\%#27177\fP)
  230057. .IP \(bu 2
  230058. 65c59ec2ea Merge pull request \fI\%#27177\fP from rallytime/fix\-19954
  230059. .IP \(bu 2
  230060. 531b44243d Remove note \- incorrect info
  230061. .UNINDENT
  230062. .IP \(bu 2
  230063. \fBISSUE\fP \fI\%#19954\fP: (\fI\%gczuczy\fP) Multiple disks on softlayer (refs: \fI\%#27173\fP)
  230064. .IP \(bu 2
  230065. \fBPR\fP \fI\%#27173\fP: (\fI\%rallytime\fP) Add the ability to specify multiple disks on the SoftLayer driver (refs: \fI\%#27177\fP)
  230066. @ \fI2015\-09\-17 00:32:57 UTC\fP
  230067. .INDENT 2.0
  230068. .IP \(bu 2
  230069. cbb7e7f1a5 Merge pull request \fI\%#27173\fP from rallytime/fix\-19954
  230070. .IP \(bu 2
  230071. 45c6aabde9 DeviceID \(aq1\(aq is reserved for the SWAP disk; let\(aqs skip it.
  230072. .IP \(bu 2
  230073. 54e104cf5b Don\(aqt stacktrace if local_disk isn\(aqt set
  230074. .IP \(bu 2
  230075. fe74d203f5 Add the ability to specify multiple disks on the SoftLayer driver
  230076. .UNINDENT
  230077. .IP \(bu 2
  230078. \fBISSUE\fP \fI\%#22724\fP: (\fI\%ty2u\fP) digital_ocean_v2.py doesn\(aqt restore snapshot (refs: \fI\%#26824\fP)
  230079. .IP \(bu 2
  230080. \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
  230081. @ \fI2015\-09\-16 18:55:17 UTC\fP
  230082. .INDENT 2.0
  230083. .IP \(bu 2
  230084. \fBPR\fP \fI\%#26824\fP: (\fI\%systembell\fP) [salt\-cloud] Fix creating droplet from snapshot in digital_ocean provider (refs: \fI\%#27164\fP)
  230085. .IP \(bu 2
  230086. 0e04588d58 Merge pull request \fI\%#27164\fP from rallytime/add\-26824\-changes\-to\-2015.8
  230087. .IP \(bu 2
  230088. a44bd763dd Make sure changes from \fI\%#26824\fP to digital_ocean_v2.py driver make it to digital_ocean.py in 2015.8
  230089. .UNINDENT
  230090. .IP \(bu 2
  230091. \fBISSUE\fP \fI\%#19853\fP: (\fI\%ksalman\fP) master needs a way to invalidate grains on the minion (refs: \fI\%#27143\fP)
  230092. .IP \(bu 2
  230093. \fBPR\fP \fI\%#27143\fP: (\fI\%cachedout\fP) Clean grains cache on grains sync
  230094. @ \fI2015\-09\-16 16:27:06 UTC\fP
  230095. .INDENT 2.0
  230096. .IP \(bu 2
  230097. 38d93a96fe Merge pull request \fI\%#27143\fP from cachedout/clean_grains_cache_on_sync
  230098. .IP \(bu 2
  230099. 0a660a9f80 Break apart long line
  230100. .IP \(bu 2
  230101. 6de2c2a50c Better error checking
  230102. .IP \(bu 2
  230103. 252f7c7ea9 Clean grains cache on grains sync
  230104. .UNINDENT
  230105. .IP \(bu 2
  230106. \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)
  230107. .IP \(bu 2
  230108. \fBPR\fP \fI\%#27150\fP: (\fI\%cachedout\fP) Merge config values from master.d/minion.d conf files (refs: \fI\%#27172\fP)
  230109. @ \fI2015\-09\-16 15:36:41 UTC\fP
  230110. .INDENT 2.0
  230111. .IP \(bu 2
  230112. 626cbe61ce Merge pull request \fI\%#27150\fP from cachedout/issue_18582
  230113. .IP \(bu 2
  230114. 6351a94d08 Merge config values from master.d/minion.d conf files
  230115. .UNINDENT
  230116. .IP \(bu 2
  230117. \fBISSUE\fP \fI\%#27135\fP: (\fI\%SEJeff\fP) Regression in core grains in the latest version of salt (refs: \fI\%#27137\fP)
  230118. .IP \(bu 2
  230119. \fBPR\fP \fI\%#27137\fP: (\fI\%jfindlay\fP) revert serial grain regression
  230120. @ \fI2015\-09\-15 21:52:25 UTC\fP
  230121. .INDENT 2.0
  230122. .IP \(bu 2
  230123. \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)
  230124. .IP \(bu 2
  230125. 72fad569b0 Merge pull request \fI\%#27137\fP from jfindlay/serial
  230126. .IP \(bu 2
  230127. 78c9687f0e revert serial grain regression
  230128. .UNINDENT
  230129. .IP \(bu 2
  230130. \fBPR\fP \fI\%#27144\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on softlayer_hw.show_all_prices if a code isn\(aqt supplied
  230131. @ \fI2015\-09\-15 21:52:09 UTC\fP
  230132. .INDENT 2.0
  230133. .IP \(bu 2
  230134. 58b56b9d78 Merge pull request \fI\%#27144\fP from rallytime/softlayer\-fixes
  230135. .IP \(bu 2
  230136. 3963a5cf0f Don\(aqt stacktrace on softlayer_hw.show_all_prices if a code isn\(aqt supplied
  230137. .UNINDENT
  230138. .IP \(bu 2
  230139. \fBPR\fP \fI\%#27139\fP: (\fI\%jacobhammons\fP) Updated key instruction on rhel7
  230140. @ \fI2015\-09\-15 16:06:14 UTC\fP
  230141. .INDENT 2.0
  230142. .IP \(bu 2
  230143. b71de75c1c Merge pull request \fI\%#27139\fP from jacobhammons/rhel\-doc
  230144. .IP \(bu 2
  230145. 7ed9f6260f Updated key instruction on rhel7
  230146. .UNINDENT
  230147. .IP \(bu 2
  230148. \fBPR\fP \fI\%#27134\fP: (\fI\%isbm\fP) Backport to 2015.8: "pkg.info"
  230149. @ \fI2015\-09\-15 15:57:46 UTC\fP
  230150. .INDENT 2.0
  230151. .IP \(bu 2
  230152. 0d8248930e Merge pull request \fI\%#27134\fP from isbm/isbm\-pkg.info\-backport\-2015.8
  230153. .IP \(bu 2
  230154. b60e6a37a7 Lintfix: E7801, C0321
  230155. .IP \(bu 2
  230156. cb4706c7e8 Add license extraction for Dpkg.
  230157. .IP \(bu 2
  230158. 38753fe8b2 Enhance filter for the "technical" fields that are not generally needed as a package information for the CMDB
  230159. .IP \(bu 2
  230160. ffe8f14dae Implement additional package information merger
  230161. .IP \(bu 2
  230162. 2aafc469d0 Fix the size and installed\-size keys
  230163. .IP \(bu 2
  230164. 3fc389435b Add homepage translator key
  230165. .IP \(bu 2
  230166. 25040c9c71 Docfix
  230167. .IP \(bu 2
  230168. 911bae1baf Add alias for \(aqinfo\(aq of deprecation in v. Boron
  230169. .IP \(bu 2
  230170. 306958dad0 Fix renamed method
  230171. .IP \(bu 2
  230172. 6ba269fbc6 Remove \(aqN/A\(aq when no data.
  230173. .IP \(bu 2
  230174. 137eb75ca2 Rename existing \(aqinfo\(aq to \(aqinfo_available\(aq
  230175. .IP \(bu 2
  230176. 7b376fd5c3 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  230177. .IP \(bu 2
  230178. ca7d0d5025 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  230179. .IP \(bu 2
  230180. c1faebf0b5 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  230181. .IP \(bu 2
  230182. f14f4036df Lint: regexp as a string
  230183. .IP \(bu 2
  230184. cabe863b81 Implement package info function
  230185. .IP \(bu 2
  230186. 0668f1da53 Implement getting package installation time
  230187. .IP \(bu 2
  230188. e03716e5b5 Implement getting general packages information
  230189. .IP \(bu 2
  230190. 8737d690fe Extract package description
  230191. .IP \(bu 2
  230192. a283d53737 Lintfix the regexp string
  230193. .IP \(bu 2
  230194. fc9c959678 Convert time to ISO 8601
  230195. .IP \(bu 2
  230196. 9fb9296276 Return a detailed information about package(s)
  230197. .UNINDENT
  230198. .IP \(bu 2
  230199. \fBPR\fP \fI\%#27119\fP: (\fI\%l2ol33rt\fP) Boto dynamodb module should be using layer 2 abstractions
  230200. @ \fI2015\-09\-15 14:09:57 UTC\fP
  230201. .INDENT 2.0
  230202. .IP \(bu 2
  230203. 7f512852ef Merge pull request \fI\%#27119\fP from l2ol33rt/boto_dynamo_module_fix
  230204. .IP \(bu 2
  230205. 46c7aee367 Boto dynamodb util should be using layer 2 abstractions
  230206. .UNINDENT
  230207. .IP \(bu 2
  230208. \fBPR\fP \fI\%#27092\fP: (\fI\%perfinion\fP) salt/master: chdir to root not homedir
  230209. @ \fI2015\-09\-15 14:09:24 UTC\fP
  230210. .INDENT 2.0
  230211. .IP \(bu 2
  230212. 100e340111 Merge pull request \fI\%#27092\fP from perfinion/chdir\-fix\-2015.8
  230213. .IP \(bu 2
  230214. 284d268855 salt/master: chdir to root not homedir
  230215. .UNINDENT
  230216. .IP \(bu 2
  230217. \fBPR\fP \fI\%#27131\fP: (\fI\%jacobhammons\fP) Install docs
  230218. @ \fI2015\-09\-15 12:34:38 UTC\fP
  230219. .INDENT 2.0
  230220. .IP \(bu 2
  230221. 7483556b5f Merge pull request \fI\%#27131\fP from jacobhammons/install\-docs
  230222. .IP \(bu 2
  230223. d1e8af9be6 added command to remove key from rhel6
  230224. .IP \(bu 2
  230225. 69d64f177d moved rhel5 commands to separate lines
  230226. .IP \(bu 2
  230227. 90431278ea Install instruction updates for rhel6 and debian
  230228. .UNINDENT
  230229. .IP \(bu 2
  230230. \fBPR\fP \fI\%#27124\fP: (\fI\%jfindlay\fP) Backport \fI\%#27123\fP
  230231. @ \fI2015\-09\-15 08:37:43 UTC\fP
  230232. .INDENT 2.0
  230233. .IP \(bu 2
  230234. \fBPR\fP \fI\%#27123\fP: (\fI\%cedwards\fP) update for freebsd installation documentation (refs: \fI\%#27124\fP)
  230235. .IP \(bu 2
  230236. fc8afcc9f9 Merge pull request \fI\%#27124\fP from jfindlay/bp\-27123
  230237. .IP \(bu 2
  230238. 016fb5fafe Update freebsd.rst
  230239. .IP \(bu 2
  230240. 026fc9a884 update for freebsd installation documentation
  230241. .UNINDENT
  230242. .IP \(bu 2
  230243. \fBPR\fP \fI\%#27111\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230244. @ \fI2015\-09\-15 07:29:30 UTC\fP
  230245. .INDENT 2.0
  230246. .IP \(bu 2
  230247. 0d62d3470c Merge pull request \fI\%#27111\fP from basepi/merge\-forward\-2015.8
  230248. .IP \(bu 2
  230249. ab519fb5ff Remove heavily\-mocked unit tests
  230250. .IP \(bu 2
  230251. 274464a85b Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  230252. .INDENT 2.0
  230253. .IP \(bu 2
  230254. 59f2a0c7ae Merge pull request \fI\%#26977\fP from abh/2015.5\-ntppeer
  230255. .INDENT 2.0
  230256. .IP \(bu 2
  230257. df3d6e817f Add support for PEERNTP network interface configuration on RH derived systems
  230258. .UNINDENT
  230259. .IP \(bu 2
  230260. e05b1f3951 Merge pull request \fI\%#27023\fP from jfindlay/htwebutilpass
  230261. .INDENT 2.0
  230262. .IP \(bu 2
  230263. 9f3d7890a6 add test support for htpasswd state mod
  230264. .UNINDENT
  230265. .IP \(bu 2
  230266. 9f999c0027 Merge pull request \fI\%#27074\fP from twangboy/fix_password_2015.5
  230267. .INDENT 2.0
  230268. .IP \(bu 2
  230269. fdd3537456 Replaced password with redacted when displayed
  230270. .UNINDENT
  230271. .IP \(bu 2
  230272. 46b44f85ed Merge pull request \fI\%#27073\fP from rallytime/remove\-lxc\-warning
  230273. .INDENT 2.0
  230274. .IP \(bu 2
  230275. 76c056d02b Remove "use develop branch" warning from LXC tutorial now that 2015.5.0 has been released
  230276. .UNINDENT
  230277. .IP \(bu 2
  230278. caab21d99c Merge pull request \fI\%#27054\fP from rallytime/bp\-27029
  230279. .INDENT 2.0
  230280. .IP \(bu 2
  230281. 0be393be22 Removed check for no package name
  230282. .UNINDENT
  230283. .IP \(bu 2
  230284. 0227e1cb57 Merge pull request \fI\%#27053\fP from rallytime/bp\-26992
  230285. .INDENT 2.0
  230286. .IP \(bu 2
  230287. 83798aff3c Do not use full return for documentation.
  230288. .IP \(bu 2
  230289. d9d5bbaa68 Summary requires full return information.
  230290. .UNINDENT
  230291. .IP \(bu 2
  230292. b72a0ef86d Merge pull request \fI\%#27052\fP from rallytime/bp\-26930
  230293. .INDENT 2.0
  230294. .IP \(bu 2
  230295. d9787aa318 aptpkg.mod_repo: Raise when key_url doesn\(aqt exist
  230296. .UNINDENT
  230297. .IP \(bu 2
  230298. 8b554dd16f Merge pull request \fI\%#27049\fP from johanek/repoquery\-dedupe
  230299. .INDENT 2.0
  230300. .IP \(bu 2
  230301. c113916a23 When running repoquery to check for available versions of packages, run once for all packages rather than once per package
  230302. .UNINDENT
  230303. .IP \(bu 2
  230304. cc2cbf9869 Merge pull request \fI\%#27070\fP from stanislavb/2015.5
  230305. .INDENT 2.0
  230306. .IP \(bu 2
  230307. 1e6e5ddc9c Deprecate salt.utils.iam in Carbon
  230308. .UNINDENT
  230309. .IP \(bu 2
  230310. e23caa8ccf Merge pull request \fI\%#27030\fP from jfindlay/winreg
  230311. .INDENT 2.0
  230312. .IP \(bu 2
  230313. 120fbe78e0 remove trailing line in win_path exec module
  230314. .IP \(bu 2
  230315. b36a7107b2 update win_path exec module unit tests
  230316. .IP \(bu 2
  230317. a2dc6f2dd7 Fixes win_path module, migrates from reg.(set|get)_key to reg.(set|get)_value
  230318. .UNINDENT
  230319. .IP \(bu 2
  230320. 843c28b435 Merge pull request \fI\%#27025\fP from cachedout/issue_25581
  230321. .INDENT 2.0
  230322. .IP \(bu 2
  230323. ecc09d9b93 Lint
  230324. .IP \(bu 2
  230325. bfcaab9ef4 Better try and error handling for prep_jid
  230326. .UNINDENT
  230327. .IP \(bu 2
  230328. b9baa0b39a Merge pull request \fI\%#27035\fP from terminalmage/useradd\-contextmanager
  230329. .INDENT 2.0
  230330. .IP \(bu 2
  230331. e430e97f6c Update user states to reflect changes to login class handling
  230332. .IP \(bu 2
  230333. f24b979c7c useradd.py: Use contextmanager to prevent leaked filehandles
  230334. .UNINDENT
  230335. .IP \(bu 2
  230336. 1cdfdf7a92 Merge pull request \fI\%#27034\fP from rallytime/softlayer\-doc\-fix
  230337. .INDENT 2.0
  230338. .IP \(bu 2
  230339. cb641f8145 Update softlayer docs for where to find apikey
  230340. .UNINDENT
  230341. .IP \(bu 2
  230342. 9e06d3f01a Merge pull request \fI\%#27024\fP from rallytime/bp\-27004
  230343. .INDENT 2.0
  230344. .IP \(bu 2
  230345. 54d6fcf4c7 Fix \(aqdict\(aq object has no attribute split
  230346. .IP \(bu 2
  230347. bb29d73c71 Fix \(aqdict\(aq object has no attribute split
  230348. .IP \(bu 2
  230349. 5f1a9c46aa Fix \(aqdict\(aq object has no attribute split
  230350. .IP \(bu 2
  230351. 2bfdd9724e Fix \(aqdict\(aq object has no attribute split
  230352. .UNINDENT
  230353. .IP \(bu 2
  230354. 9ab2cae1e4 Merge pull request \fI\%#27027\fP from rallytime/bp\-27013
  230355. .INDENT 2.0
  230356. .IP \(bu 2
  230357. 19a6e9cb1c Remove unwanted debug statement.
  230358. .UNINDENT
  230359. .IP \(bu 2
  230360. 2c8beb238f Merge pull request \fI\%#27026\fP from rallytime/bp\-27011
  230361. .INDENT 2.0
  230362. .IP \(bu 2
  230363. f8518d545f Move giant eventlisten.sh example out of the state.event docstring
  230364. .UNINDENT
  230365. .IP \(bu 2
  230366. e8cdcc62f7 Merge pull request \fI\%#26972\fP from twangboy/fix_20522
  230367. .INDENT 2.0
  230368. .IP \(bu 2
  230369. 0110786fa9 Catch the 404 error from fileclient
  230370. .UNINDENT
  230371. .IP \(bu 2
  230372. fbc95f4685 Merge pull request \fI\%#26951\fP from terminalmage/fix\-timezone
  230373. .INDENT 2.0
  230374. .IP \(bu 2
  230375. 30a4915762 Update tests to reflect changes to timezone module
  230376. .IP \(bu 2
  230377. b6f926919f Fix timezone module for CentOS
  230378. .UNINDENT
  230379. .IP \(bu 2
  230380. f2ad3c333c Merge pull request \fI\%#26875\fP from marccardinal/patch\-2
  230381. .INDENT 2.0
  230382. .IP \(bu 2
  230383. 36d5a62262 LXC gateway provisioned only when IP is provided
  230384. .UNINDENT
  230385. .IP \(bu 2
  230386. 7b2e7b1b37 Merge pull request \fI\%#26997\fP from twangboy/fix_symlink_windows
  230387. .INDENT 2.0
  230388. .IP \(bu 2
  230389. 89cc02d4e0 Added \fIversionadded\fP
  230390. .IP \(bu 2
  230391. 835177b0c8 Fixed symlinks for windows (don\(aqt use user root)
  230392. .UNINDENT
  230393. .IP \(bu 2
  230394. 5389a85894 Merge pull request \fI\%#27001\fP from twangboy/fix_reg_docs
  230395. .INDENT 2.0
  230396. .IP \(bu 2
  230397. 2980bbda17 Minor clarification
  230398. .IP \(bu 2
  230399. 4684b2ddd1 Added CLI example for reg.delete_key_recursive
  230400. .UNINDENT
  230401. .IP \(bu 2
  230402. 37814f5dff Merge pull request \fI\%#26996\fP from jacobhammons/beacon\-doc
  230403. .INDENT 2.0
  230404. .IP \(bu 2
  230405. e475ea688e Fixed typo
  230406. .IP \(bu 2
  230407. 2401533d9e New content added to beacon docs.
  230408. .UNINDENT
  230409. .IP \(bu 2
  230410. 4ba7eed711 Merge pull request \fI\%#26868\fP from joejulian/2015.5_lvm_vg_symlink_fix
  230411. .INDENT 2.0
  230412. .IP \(bu 2
  230413. 3dfb33849a Use the actual device name when checking vgdisplay
  230414. .UNINDENT
  230415. .IP \(bu 2
  230416. 1537e945be Merge pull request \fI\%#26955\fP from dsumsky/s3\-pillar\-module\-cache\-fix\-2015.5
  230417. .INDENT 2.0
  230418. .IP \(bu 2
  230419. 8219acffe7 \- fixed pylint warnings
  230420. .IP \(bu 2
  230421. 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
  230422. .UNINDENT
  230423. .IP \(bu 2
  230424. 3e902e86b1 Merge pull request \fI\%#26987\fP from rallytime/bp\-26966
  230425. .INDENT 2.0
  230426. .IP \(bu 2
  230427. 6a29eac003 URL has changed
  230428. .UNINDENT
  230429. .IP \(bu 2
  230430. eddb532713 Merge pull request \fI\%#26915\fP from rallytime/joyent\-tests
  230431. .INDENT 2.0
  230432. .IP \(bu 2
  230433. d4ad42d697 Update Joyent Cloud Tests
  230434. .UNINDENT
  230435. .IP \(bu 2
  230436. f86814b2a4 Merge pull request \fI\%#26971\fP from rallytime/reactor\-doc\-fix
  230437. .INDENT 2.0
  230438. .IP \(bu 2
  230439. 0214daad19 Fix a couple of typos in reactor docs
  230440. .UNINDENT
  230441. .IP \(bu 2
  230442. 57b1080f94 Merge pull request \fI\%#26976\fP from saltstack/revert\-26899\-fix_26730
  230443. .INDENT 2.0
  230444. .IP \(bu 2
  230445. 6dd54e6bec Revert "file.symlink gets windows account instead of root"
  230446. .UNINDENT
  230447. .IP \(bu 2
  230448. 67be01f5fe Merge pull request \fI\%#26975\fP from whiteinge/rest_cherrypy\-integration
  230449. .INDENT 2.0
  230450. .IP \(bu 2
  230451. 9a0989585b Add additional \(aqgroups\(aq check to rest_cherrypy if groups are not used
  230452. .IP \(bu 2
  230453. d68aefcfde Remove mocks from rest_cherrypy integration tests
  230454. .IP \(bu 2
  230455. 2aa3da8911 Rename the rest_cherrypy tests to conform to our convention
  230456. .UNINDENT
  230457. .IP \(bu 2
  230458. 20a48f7f2e Merge pull request \fI\%#26899\fP from twangboy/fix_26730
  230459. .INDENT 2.0
  230460. .IP \(bu 2
  230461. 9d9b3bb47a file.symlink gets windows account instead of root
  230462. .UNINDENT
  230463. .IP \(bu 2
  230464. dbc6b862f4 Merge pull request \fI\%#26960\fP from rallytime/cherrypy\-docs
  230465. .INDENT 2.0
  230466. .IP \(bu 2
  230467. c1420711db Fix bash code block formatting
  230468. .UNINDENT
  230469. .IP \(bu 2
  230470. f733e048c9 Merge pull request \fI\%#26940\fP from rallytime/api\-doc\-fix
  230471. .INDENT 2.0
  230472. .IP \(bu 2
  230473. 00fe6a225c Fix minor doc typo in client api
  230474. .UNINDENT
  230475. .IP \(bu 2
  230476. de9350466e Merge pull request \fI\%#26871\fP from rallytime/bp\-26852
  230477. .INDENT 2.0
  230478. .IP \(bu 2
  230479. 5a4c8dd2f5 Only reference msgpack if it imported successfully
  230480. .UNINDENT
  230481. .IP \(bu 2
  230482. a563af29d3 Merge pull request \fI\%#26851\fP from jacobhammons/doc\-bugs
  230483. .INDENT 2.0
  230484. .IP \(bu 2
  230485. ac3bd47440 states/pkgrepo examples, suse installation updates Refs \fI\%#26644\fP Refs \fI\%#26638\fP
  230486. .UNINDENT
  230487. .IP \(bu 2
  230488. 5b1b934192 Merge pull request \fI\%#26817\fP from jfindlay/grouparg
  230489. .INDENT 2.0
  230490. .IP \(bu 2
  230491. 82d33939f3 modify groupadd for rhel 5
  230492. .UNINDENT
  230493. .IP \(bu 2
  230494. cdc0ea2fe3 Merge pull request \fI\%#26824\fP from pravka/fix\-droplet\-creation\-from\-snapshot\-in\-dov2
  230495. .INDENT 2.0
  230496. .IP \(bu 2
  230497. 00e3192536 removing log
  230498. .IP \(bu 2
  230499. e4a82d78d9 removing stringification of every value in the image dict
  230500. .IP \(bu 2
  230501. cdc2b4584a fixing condition for slug check
  230502. .UNINDENT
  230503. .IP \(bu 2
  230504. 4af6951a4c Merge pull request \fI\%#26823\fP from joejulian/ctlfix
  230505. .INDENT 2.0
  230506. .IP \(bu 2
  230507. a9928cb143 pep8 fixes
  230508. .IP \(bu 2
  230509. 6108ec4280 Gated dbus for os families that use it
  230510. .IP \(bu 2
  230511. e154c7b16f remove trailing spaces
  230512. .IP \(bu 2
  230513. c1c1266cc3 fix indent change
  230514. .IP \(bu 2
  230515. 0a35320aa7 Use dbus directly
  230516. .UNINDENT
  230517. .IP \(bu 2
  230518. a1749b76b8 Merge pull request \fI\%#26820\fP from jfindlay/ctlfix
  230519. .INDENT 2.0
  230520. .IP \(bu 2
  230521. 3a2c0d5fbb add default param in _parse_localectl in locale mod
  230522. .UNINDENT
  230523. .IP \(bu 2
  230524. ff733547c4 Merge pull request \fI\%#26821\fP from twangboy/fix_26788
  230525. .INDENT 2.0
  230526. .IP \(bu 2
  230527. cf979e4877 Fixed user.rename function in windows
  230528. .UNINDENT
  230529. .IP \(bu 2
  230530. c892be3255 Merge pull request \fI\%#26803\fP from twangboy/fix_26754
  230531. .INDENT 2.0
  230532. .IP \(bu 2
  230533. 23576c65eb Added check for PyMySQL if MySQLdb import fails
  230534. .UNINDENT
  230535. .IP \(bu 2
  230536. 6edfa36083 Merge pull request \fI\%#26815\fP from jfindlay/linstr
  230537. .IP \(bu 2
  230538. 2ff5823944 stringify linode id before performing str actions
  230539. .UNINDENT
  230540. .UNINDENT
  230541. .IP \(bu 2
  230542. \fBPR\fP \fI\%#27122\fP: (\fI\%terminalmage\fP) Fix broken link to git\-config(1) docs
  230543. @ \fI2015\-09\-15 07:25:05 UTC\fP
  230544. .INDENT 2.0
  230545. .IP \(bu 2
  230546. 886e7bc234 Merge pull request \fI\%#27122\fP from terminalmage/fix\-broken\-link
  230547. .IP \(bu 2
  230548. 0b212ea5b3 Fix broken link to git\-config(1) docs
  230549. .UNINDENT
  230550. .IP \(bu 2
  230551. \fBPR\fP \fI\%#27115\fP: (\fI\%jacobhammons\fP) Release docs
  230552. @ \fI2015\-09\-14 22:19:18 UTC\fP
  230553. .INDENT 2.0
  230554. .IP \(bu 2
  230555. 551bbe70af Merge pull request \fI\%#27115\fP from jacobhammons/release\-docs
  230556. .IP \(bu 2
  230557. 42eaa80997 Restored missing css
  230558. .IP \(bu 2
  230559. 9ab642295e Fixed a release notes typo and bad file rename
  230560. .IP \(bu 2
  230561. daa3f4eee0 Updated release notes, change 2015.8 to latest release for doc site
  230562. .IP \(bu 2
  230563. d939a38c8c release notes updates
  230564. .UNINDENT
  230565. .IP \(bu 2
  230566. \fBISSUE\fP \fI\%#11993\fP: (\fI\%UtahDave\fP) salt\-cloud \-Q output not consistent across providers (refs: \fI\%#27110\fP)
  230567. .IP \(bu 2
  230568. \fBPR\fP \fI\%#27110\fP: (\fI\%rallytime\fP) Make sure \-Q output is consistent across salt\-cloud drivers
  230569. @ \fI2015\-09\-14 21:48:40 UTC\fP
  230570. .INDENT 2.0
  230571. .IP \(bu 2
  230572. 89c90df909 Merge pull request \fI\%#27110\fP from rallytime/fix\-11993
  230573. .IP \(bu 2
  230574. c1abc5a19f Remove implied Nones
  230575. .IP \(bu 2
  230576. 5d7d357cdd digital_ocean list_nodes function should list public and private ips like other drivers
  230577. .IP \(bu 2
  230578. 4b27aef406 Add \(aqname\(aq to the output of salt\-cloud \-Q commands, where needed, for consistency.
  230579. .UNINDENT
  230580. .IP \(bu 2
  230581. \fBPR\fP \fI\%#27050\fP: (\fI\%twangboy\fP) Turned multiprocessing on
  230582. @ \fI2015\-09\-14 17:34:18 UTC\fP
  230583. .INDENT 2.0
  230584. .IP \(bu 2
  230585. 860de8d877 Merge pull request \fI\%#27050\fP from twangboy/fix_minion_conf
  230586. .IP \(bu 2
  230587. 7e35b13022 Turned multiprocessing on
  230588. .UNINDENT
  230589. .IP \(bu 2
  230590. \fBPR\fP \fI\%#27086\fP: (\fI\%techhat\fP) Document develoment of SPM loader modules
  230591. @ \fI2015\-09\-13 04:52:55 UTC\fP
  230592. .INDENT 2.0
  230593. .IP \(bu 2
  230594. c78d833540 Merge pull request \fI\%#27086\fP from techhat/spmdevdocs
  230595. .IP \(bu 2
  230596. ee0c8955dd Document develoment of SPM loader modules
  230597. .UNINDENT
  230598. .IP \(bu 2
  230599. \fBISSUE\fP \fI\%#23125\fP: (\fI\%bemeyert\fP) Elasticsearch as master_job_cache throws critical (refs: \fI\%#26941\fP)
  230600. .IP \(bu 2
  230601. \fBPR\fP \fI\%#26941\fP: (\fI\%msteed\fP) Make elasticsearch work as master job cache
  230602. @ \fI2015\-09\-12 17:13:44 UTC\fP
  230603. .INDENT 2.0
  230604. .IP \(bu 2
  230605. 25b11759f9 Merge pull request \fI\%#26941\fP from msteed/issue\-23125
  230606. .IP \(bu 2
  230607. ff88fe402c add versionadded info to save_load() & get_load()
  230608. .IP \(bu 2
  230609. 5d2fae8a89 make master job cache index configurable
  230610. .IP \(bu 2
  230611. bc041fa4a7 Merge branch \(aqissue\-23125\(aq of github.com:msteed/salt into issue\-23125
  230612. .INDENT 2.0
  230613. .IP \(bu 2
  230614. 9aedc2662e issue\-23125
  230615. .UNINDENT
  230616. .IP \(bu 2
  230617. 593c4d6b2f issue\-23125
  230618. .UNINDENT
  230619. .IP \(bu 2
  230620. \fBPR\fP \fI\%#27080\fP: (\fI\%bechtoldt\fP) [Proposal] Add Github SPM label for issues
  230621. @ \fI2015\-09\-12 14:32:58 UTC\fP
  230622. .INDENT 2.0
  230623. .IP \(bu 2
  230624. b763d0ba52 Merge pull request \fI\%#27080\fP from bechtoldt/spm_doc
  230625. .IP \(bu 2
  230626. b9e5095bf5 add GH issue label SPM to docs
  230627. .UNINDENT
  230628. .IP \(bu 2
  230629. \fBPR\fP \fI\%#27064\fP: (\fI\%twangboy\fP) Fixed user docs
  230630. @ \fI2015\-09\-11 22:37:19 UTC\fP
  230631. .INDENT 2.0
  230632. .IP \(bu 2
  230633. cf59a03432 Merge pull request \fI\%#27064\fP from twangboy/user_docs
  230634. .IP \(bu 2
  230635. db03ca198e Fixed user docs
  230636. .UNINDENT
  230637. .IP \(bu 2
  230638. \fBPR\fP \fI\%#27072\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26840\fP to 2015.8
  230639. @ \fI2015\-09\-11 22:35:52 UTC\fP
  230640. .INDENT 2.0
  230641. .IP \(bu 2
  230642. \fBPR\fP \fI\%#26840\fP: (\fI\%deuscapturus\fP) Update http.py (refs: \fI\%#27072\fP)
  230643. .IP \(bu 2
  230644. 71c12cbf46 Merge pull request \fI\%#27072\fP from rallytime/bp\-26840
  230645. .IP \(bu 2
  230646. d0b9ececa4 Update http.py
  230647. .UNINDENT
  230648. .IP \(bu 2
  230649. \fBPR\fP \fI\%#27060\fP: (\fI\%cro\fP) Fix grains breakage when hosts are not Linux, Windows, or SunOS
  230650. @ \fI2015\-09\-11 17:28:49 UTC\fP
  230651. .INDENT 2.0
  230652. .IP \(bu 2
  230653. 0e7555089f Merge pull request \fI\%#27060\fP from cro/proxy_grains_breakage
  230654. .IP \(bu 2
  230655. e697326f1b Don\(aqt check for proxy in the individual is_linux/is_windows/etc functions. This breaks too many things.
  230656. .UNINDENT
  230657. .IP \(bu 2
  230658. \fBPR\fP \fI\%#27051\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26953\fP to 2015.8
  230659. @ \fI2015\-09\-11 16:28:20 UTC\fP
  230660. .INDENT 2.0
  230661. .IP \(bu 2
  230662. \fBPR\fP \fI\%#26953\fP: (\fI\%dsumsky\fP) S3 ext_pillar module has broken caching mechanism (refs: \fI\%#27051\fP)
  230663. .IP \(bu 2
  230664. 8ee87b9f61 Merge pull request \fI\%#27051\fP from rallytime/bp\-26953
  230665. .IP \(bu 2
  230666. eac9d9aba9 Pylint Fix
  230667. .IP \(bu 2
  230668. 453440753c \- fixed pylint warnings
  230669. .IP \(bu 2
  230670. 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
  230671. .UNINDENT
  230672. .IP \(bu 2
  230673. \fBPR\fP \fI\%#26864\fP: (\fI\%terminalmage\fP) Only do git_pillar preflight checks on new\-style git_pillar configs
  230674. @ \fI2015\-09\-11 07:47:12 UTC\fP
  230675. .INDENT 2.0
  230676. .IP \(bu 2
  230677. 249f55cd8c Merge pull request \fI\%#26864\fP from terminalmage/fix\-git_pillar\-tests
  230678. .IP \(bu 2
  230679. 0b5a653f7c Only do git_pillar preflight checks on new\-style git_pillar configs
  230680. .UNINDENT
  230681. .IP \(bu 2
  230682. \fBPR\fP \fI\%#26967\fP: (\fI\%TheBigBear\fP) new URL for windows salt downloads
  230683. @ \fI2015\-09\-10 20:51:33 UTC\fP
  230684. .INDENT 2.0
  230685. .IP \(bu 2
  230686. efaedb8aea Merge pull request \fI\%#26967\fP from TheBigBear/patch\-4
  230687. .IP \(bu 2
  230688. 8d2c042cf7 new URL for windows salt downloads
  230689. .UNINDENT
  230690. .IP \(bu 2
  230691. \fBPR\fP \fI\%#26921\fP: (\fI\%terminalmage\fP) Get rid of error in legacy git pillar when using branch mapping notation
  230692. @ \fI2015\-09\-10 20:06:29 UTC\fP
  230693. .INDENT 2.0
  230694. .IP \(bu 2
  230695. 757d3c4eab Merge pull request \fI\%#26921\fP from terminalmage/legacy_git_pillar_tests
  230696. .IP \(bu 2
  230697. 28e07d5d06 Get rid of error in legacy git pillar when using branch mapping notation
  230698. .UNINDENT
  230699. .IP \(bu 2
  230700. \fBPR\fP \fI\%#26923\fP: (\fI\%rallytime\fP) Code clean up of cloud drivers and files
  230701. @ \fI2015\-09\-10 16:37:26 UTC\fP
  230702. .INDENT 2.0
  230703. .IP \(bu 2
  230704. 68eb508e6c Merge pull request \fI\%#26923\fP from rallytime/cloud\-cleanup
  230705. .IP \(bu 2
  230706. bf33c99b08 Remove redundant parentheses
  230707. .IP \(bu 2
  230708. 5045989be7 Make sure function names comply
  230709. .IP \(bu 2
  230710. e327d9a8a4 Remove redundant parens
  230711. .IP \(bu 2
  230712. eee0291ff8 Code clean up of cloud drivers and files
  230713. .UNINDENT
  230714. .IP \(bu 2
  230715. \fBPR\fP \fI\%#27010\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26988\fP to 2015.8
  230716. @ \fI2015\-09\-10 16:30:30 UTC\fP
  230717. .INDENT 2.0
  230718. .IP \(bu 2
  230719. \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)
  230720. .IP \(bu 2
  230721. 590c46f4e3 Merge pull request \fI\%#27010\fP from rallytime/bp\-26988
  230722. .IP \(bu 2
  230723. 93b30b5ba8 Whitespace
  230724. .IP \(bu 2
  230725. 685fa911e7 Version Added for new apply_spm_config function
  230726. .IP \(bu 2
  230727. 9612a6c7ad Process \fIspm.d/*.conf\fP and add prefix root dir support to SPM directories
  230728. .UNINDENT
  230729. .IP \(bu 2
  230730. \fBPR\fP \fI\%#26985\fP: (\fI\%rallytime\fP) Fix versionadded tag
  230731. @ \fI2015\-09\-10 16:29:38 UTC\fP
  230732. .INDENT 2.0
  230733. .IP \(bu 2
  230734. ec185d77fa Merge pull request \fI\%#26985\fP from rallytime/versionadded\-fix
  230735. .IP \(bu 2
  230736. 79eb606cb7 Fix versionadded tag
  230737. .UNINDENT
  230738. .UNINDENT
  230739. .SS Salt 2015.8.10 Release Notes
  230740. .sp
  230741. Version 2015.8.10 is a bugfix release for 2015.8.0\&.
  230742. .sp
  230743. This release includes fixes for two issues discovered in 2015.8.9:
  230744. .INDENT 0.0
  230745. .IP \(bu 2
  230746. Pip state broken in 2015.8.9 with pip <6.0 (\fI\%issue #33376\fP)
  230747. .IP \(bu 2
  230748. Fix traceback in logging for config validation (\fI\%PR #33386\fP)
  230749. .UNINDENT
  230750. .SS Final Release of Debian 7 Packages
  230751. .sp
  230752. Regular security support for Debian 7 ended on April 25th 2016. As a result,
  230753. 2016.3.1 and 2015.8.10 will be the last Salt releases for which Debian
  230754. 7 packages are created.
  230755. .SS Important Post\-Upgrade Instructions for Linux Mint
  230756. .sp
  230757. As a result of some upstream changes, the \fBos\fP grain on Mint Linux is now
  230758. being detected as \fBLinuxMint\fP (\fI\%issue #33295\fP). Run the following command
  230759. \fBafter you upgrade to 2015.8.10\fP to reset the \fBos\fP grain to \fBMint\fP and
  230760. the \fBos_family\fP grain to \fBDebian\fP:
  230761. .INDENT 0.0
  230762. .INDENT 3.5
  230763. .sp
  230764. .nf
  230765. .ft C
  230766. salt \-G \(aqos:LinuxMint\(aq grains.setvals "{\(aqos\(aq: \(aqMint\(aq, \(aqos_family\(aq: \(aqDebian\(aq}"
  230767. .ft P
  230768. .fi
  230769. .UNINDENT
  230770. .UNINDENT
  230771. .SS Changelog for v2015.8.9..v2015.8.10
  230772. .sp
  230773. \fIGenerated at: 2018\-05\-28 00:51:57 UTC\fP
  230774. .INDENT 0.0
  230775. .IP \(bu 2
  230776. c3d2c4eaae Fix traceback in logging for config validation (\fI\%#33386\fP)
  230777. .IP \(bu 2
  230778. 2a060ea1e8 restore whitespace
  230779. .IP \(bu 2
  230780. aa1f45d664 blast, put the try/except int he right place
  230781. .IP \(bu 2
  230782. be1a7659a3 maintain the fallabck because I am totally sick of this crap
  230783. .UNINDENT
  230784. .SS Salt 2015.8.11 Release Notes
  230785. .sp
  230786. Version 2015.8.11 is a bugfix release for 2015.8.0\&.
  230787. .SS Statistics
  230788. .INDENT 0.0
  230789. .IP \(bu 2
  230790. Total Merges: \fB122\fP
  230791. .IP \(bu 2
  230792. Total Issue References: \fB70\fP
  230793. .IP \(bu 2
  230794. Total PR References: \fB221\fP
  230795. .IP \(bu 2
  230796. 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)
  230797. .UNINDENT
  230798. .SS Ubuntu 16.04 Packages
  230799. .sp
  230800. SaltStack is now providing official Salt 2015.8 \fI\%packages\fP for Ubuntu 16.04.
  230801. .SS Returner Changes
  230802. .INDENT 0.0
  230803. .IP \(bu 2
  230804. Any returner which implements a \fBsave_load\fP function is now required to
  230805. accept a \fBminions\fP keyword argument. All returners which ship with Salt
  230806. have been modified to do so.
  230807. .UNINDENT
  230808. .SS New Master Configuration Parameter
  230809. .INDENT 0.0
  230810. .IP \(bu 2
  230811. \fBrotate_aes_key\fP \- if \fBTrue\fP, causes Salt to generate a new
  230812. AES key whenever a minion key is deleted. This eliminates the chance that a
  230813. deleted minion could continue to eavesdrop on communications with the master
  230814. if it continues to run after its key is deleted.
  230815. .UNINDENT
  230816. .SS Changelog for v2015.8.10..v2015.8.11
  230817. .sp
  230818. \fIGenerated at: 2018\-05\-28 01:16:12 UTC\fP
  230819. .INDENT 0.0
  230820. .IP \(bu 2
  230821. \fBPR\fP \fI\%#34682\fP: (\fI\%jfindlay\fP) update 2015.8.11 release notes
  230822. .IP \(bu 2
  230823. \fBPR\fP \fI\%#34676\fP: (\fI\%cachedout\fP) Revert "Modify lodaer global test to use populated dunders"
  230824. @ \fI2016\-07\-14 18:12:55 UTC\fP
  230825. .INDENT 2.0
  230826. .IP \(bu 2
  230827. 3192e1674b Merge pull request \fI\%#34676\fP from cachedout/partial_revert_34644
  230828. .IP \(bu 2
  230829. 64a154826a Revert "Modify lodaer global test to use populated dunders"
  230830. .UNINDENT
  230831. .IP \(bu 2
  230832. \fBPR\fP \fI\%#34601\fP: (\fI\%lorengordon\fP) Clarifies the proper way to reference states
  230833. @ \fI2016\-07\-14 14:20:41 UTC\fP
  230834. .INDENT 2.0
  230835. .IP \(bu 2
  230836. 3b6f1089b2 Merge pull request \fI\%#34601\fP from lorengordon/clarify\-doc
  230837. .IP \(bu 2
  230838. bfe0dd0b8a Clarifies the proper way to reference states
  230839. .IP \(bu 2
  230840. \fBPR\fP \fI\%saltstack/salt#34644\fP: (\fI\%cachedout\fP) Cleanup loader errors (refs: \fI\%#34651\fP)
  230841. .IP \(bu 2
  230842. \fBPR\fP \fI\%#34651\fP: (\fI\%rallytime\fP) Lint 34644
  230843. .IP \(bu 2
  230844. \fBPR\fP \fI\%#34647\fP: (\fI\%cachedout\fP) Adjust the mine test a little bit to give it a better chance of success
  230845. .UNINDENT
  230846. .IP \(bu 2
  230847. \fBPR\fP \fI\%#34642\fP: (\fI\%justinta\fP) Check that mysqladmin exists before running mysql integration tests
  230848. @ \fI2016\-07\-13 18:12:44 UTC\fP
  230849. .INDENT 2.0
  230850. .IP \(bu 2
  230851. 8a0209101e Merge pull request \fI\%#34642\fP from jtand/mysql_integration_cleanup
  230852. .IP \(bu 2
  230853. dd1559a599 Check that mysqladmin exists before running mysql integration tests.
  230854. .UNINDENT
  230855. .IP \(bu 2
  230856. \fBPR\fP \fI\%#34618\fP: (\fI\%justinta\fP) Network state integration test test=True
  230857. @ \fI2016\-07\-13 16:30:15 UTC\fP
  230858. .INDENT 2.0
  230859. .IP \(bu 2
  230860. 3e612c3794 Merge pull request \fI\%#34618\fP from jtand/network_integration_fix
  230861. .IP \(bu 2
  230862. 34bcf9ccfc Changed network state test to use test=True
  230863. .IP \(bu 2
  230864. b2616833b0 Some small changes
  230865. .IP \(bu 2
  230866. ed59113e94 Change network state integration test to use test=True
  230867. .UNINDENT
  230868. .IP \(bu 2
  230869. \fBPR\fP \fI\%#34617\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230870. @ \fI2016\-07\-12 20:11:40 UTC\fP
  230871. .INDENT 2.0
  230872. .IP \(bu 2
  230873. 9f123543e5 Merge pull request \fI\%#34617\fP from rallytime/merge\-2015.8
  230874. .IP \(bu 2
  230875. 3026df346f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230876. .IP \(bu 2
  230877. 57df38e685 Update github IP for ssh state integration tests (\fI\%#34592\fP)
  230878. .IP \(bu 2
  230879. 2e1007254b Avoid circular imports when calling salt.utils functions (\fI\%#34584\fP)
  230880. .UNINDENT
  230881. .IP \(bu 2
  230882. \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)
  230883. .INDENT 2.0
  230884. .IP \(bu 2
  230885. \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)
  230886. .IP \(bu 2
  230887. \fBPR\fP \fI\%#34593\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33851\fP to 2015.8
  230888. .IP \(bu 2
  230889. \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)
  230890. .IP \(bu 2
  230891. \fBPR\fP \fI\%#34590\fP: (\fI\%oeuftete\fP) [2015.8] dockerng: When sorting list actual_data, make it a list
  230892. .IP \(bu 2
  230893. \fBPR\fP \fI\%#34591\fP: (\fI\%justinta\fP) Gate docker unit test to check for docker
  230894. .IP \(bu 2
  230895. \fBPR\fP \fI\%#34560\fP: (\fI\%terminalmage\fP) Add a bunch of documentation on getting files from other environments
  230896. .UNINDENT
  230897. .IP \(bu 2
  230898. \fBISSUE\fP \fI\%#34397\fP: (\fI\%jaredhanson11\fP) ignore_epoch needs to be passed through to version_cmp functions (refs: \fI\%#34531\fP)
  230899. .IP \(bu 2
  230900. \fBPR\fP \fI\%#34531\fP: (\fI\%terminalmage\fP) Support ignore_epoch argument in version comparisons
  230901. @ \fI2016\-07\-08 16:43:36 UTC\fP
  230902. .INDENT 2.0
  230903. .IP \(bu 2
  230904. 91e0656d44 Merge pull request \fI\%#34531\fP from terminalmage/issue34397
  230905. .IP \(bu 2
  230906. d0fec1b8f6 salt/modules/zypper.py: accept ignore_epoch argument
  230907. .IP \(bu 2
  230908. 5ae9463c1f salt/modules/yumpkg.py: accept ignore_epoch argument
  230909. .IP \(bu 2
  230910. c2791117af salt/modules/rpm.py: accept ignore_epoch argument
  230911. .IP \(bu 2
  230912. c5de8b880d salt/modules/ebuild.py: accept ignore_epoch argument
  230913. .IP \(bu 2
  230914. 4ee8e8f037 salt/modules/aptpkg.py: accept ignore_epoch argument
  230915. .IP \(bu 2
  230916. 5b123b403c Pass ignore_epoch to salt.utils.compare_versions()
  230917. .IP \(bu 2
  230918. 07368fac40 Accept ignore_epoch argument for salt.utils.compare_versions()
  230919. .UNINDENT
  230920. .IP \(bu 2
  230921. \fBPR\fP \fI\%#34545\fP: (\fI\%terminalmage\fP) Handle cases where Docker Remote API returns an empty ExecutionDriver
  230922. @ \fI2016\-07\-08 16:34:30 UTC\fP
  230923. .INDENT 2.0
  230924. .IP \(bu 2
  230925. e99befad47 Merge pull request \fI\%#34545\fP from terminalmage/docker\-exec\-driver
  230926. .IP \(bu 2
  230927. dd5838e242 Handle cases where Docker Remote API returns an empty ExecutionDriver
  230928. .UNINDENT
  230929. .IP \(bu 2
  230930. \fBPR\fP \fI\%#34546\fP: (\fI\%rallytime\fP) Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  230931. @ \fI2016\-07\-08 16:16:42 UTC\fP
  230932. .INDENT 2.0
  230933. .IP \(bu 2
  230934. 7120d43df0 Merge pull request \fI\%#34546\fP from rallytime/rename\-boto\-secgroup\-test
  230935. .IP \(bu 2
  230936. f8a3622be7 Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  230937. .UNINDENT
  230938. .IP \(bu 2
  230939. \fBPR\fP \fI\%#34537\fP: (\fI\%rallytime\fP) Rename tests.unit.simple to tests.unit.simple_test
  230940. @ \fI2016\-07\-08 00:08:36 UTC\fP
  230941. .INDENT 2.0
  230942. .IP \(bu 2
  230943. ca92061821 Merge pull request \fI\%#34537\fP from rallytime/rename\-simple\-test
  230944. .IP \(bu 2
  230945. ceefb6e34c Rename tests.unit.simple to tests.unit.simple_test
  230946. .IP \(bu 2
  230947. \fBPR\fP \fI\%#34527\fP: (\fI\%rallytime\fP) [2015.8] Update bootstrap script to latest stable
  230948. .IP \(bu 2
  230949. \fBPR\fP \fI\%#34521\fP: (\fI\%cachedout\fP) Prevent many errors in the test suite in loader tests
  230950. .IP \(bu 2
  230951. \fBPR\fP \fI\%#34507\fP: (\fI\%AAbouZaid\fP) Fix wrong order of retention_policy_exists.
  230952. .UNINDENT
  230953. .IP \(bu 2
  230954. \fBPR\fP \fI\%#34518\fP: (\fI\%terminalmage\fP) Fix pkg.latest integration test for non\-LTS ubuntu
  230955. @ \fI2016\-07\-07 19:29:13 UTC\fP
  230956. .INDENT 2.0
  230957. .IP \(bu 2
  230958. 685df80929 Merge pull request \fI\%#34518\fP from terminalmage/fix\-pkg.latest\-test
  230959. .IP \(bu 2
  230960. 4aef44ecdf Fix pkg.latest integration test for non\-LTS ubuntu
  230961. .UNINDENT
  230962. .IP \(bu 2
  230963. \fBPR\fP \fI\%#34513\fP: (\fI\%cachedout\fP) Lower the log level for modules which cannot be loaded to trace
  230964. @ \fI2016\-07\-07 17:00:48 UTC\fP
  230965. .INDENT 2.0
  230966. .IP \(bu 2
  230967. a516f116d1 Merge pull request \fI\%#34513\fP from cachedout/lower_loader_log
  230968. .IP \(bu 2
  230969. 733c5d00c0 Lower the log level for modules which cannot be loaded to trace
  230970. .UNINDENT
  230971. .IP \(bu 2
  230972. \fBPR\fP \fI\%#34498\fP: (\fI\%rallytime\fP) Use \-O in the wget example in the bootstrap tutorial for the develop branch
  230973. @ \fI2016\-07\-07 16:30:46 UTC\fP
  230974. .INDENT 2.0
  230975. .IP \(bu 2
  230976. 63f0451041 Merge pull request \fI\%#34498\fP from rallytime/bootstrap\-tutorial\-doc\-fix
  230977. .IP \(bu 2
  230978. 23c5739c3b Use \-O in wget develop example in bootstrap tutorial
  230979. .IP \(bu 2
  230980. \fBPR\fP \fI\%#34503\fP: (\fI\%rallytime\fP) Rename some unit test files by adding _test
  230981. .UNINDENT
  230982. .IP \(bu 2
  230983. \fBISSUE\fP \fI\%#34302\fP: (\fI\%ghost\fP) Salt gitfs loads top files from all branches and tags (refs: \fI\%#34505\fP)
  230984. .INDENT 2.0
  230985. .IP \(bu 2
  230986. \fBPR\fP \fI\%#34505\fP: (\fI\%terminalmage\fP) Improve top file merging documentation
  230987. .IP \(bu 2
  230988. \fBPR\fP \fI\%#34492\fP: (\fI\%zer0def\fP) Gracefully handle non\-XML output in GlusterFS execution module.
  230989. .IP \(bu 2
  230990. \fBPR\fP \fI\%#34489\fP: (\fI\%justinta\fP) Use skipTest for network state integration test
  230991. .UNINDENT
  230992. .IP \(bu 2
  230993. \fBISSUE\fP \fI\%#34261\fP: (\fI\%vernondcole\fP) salt.modules.dnsmasq documentation errors (refs: \fI\%#34488\fP, \fI\%#34323\fP)
  230994. .INDENT 2.0
  230995. .IP \(bu 2
  230996. \fBPR\fP \fI\%#34488\fP: (\fI\%rallytime\fP) Update dnsmasq.get_config docs to use correct config_file param.
  230997. .UNINDENT
  230998. .IP \(bu 2
  230999. \fBPR\fP \fI\%#34462\fP: (\fI\%terminalmage\fP) Use \-\-always when available to git describe
  231000. @ \fI2016\-07\-06 03:59:33 UTC\fP
  231001. .INDENT 2.0
  231002. .IP \(bu 2
  231003. e2f576e847 Merge pull request \fI\%#34462\fP from terminalmage/git\-describe\-always
  231004. .IP \(bu 2
  231005. 6ef7ee198e Restrict use of \-\-always to git 1.5.6 and newer
  231006. .IP \(bu 2
  231007. c554b22fc8 modules/git: added \-\-always parameter for git.describe().
  231008. .UNINDENT
  231009. .IP \(bu 2
  231010. \fBPR\fP \fI\%#34467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34457\fP to 2015.8
  231011. @ \fI2016\-07\-06 03:56:58 UTC\fP
  231012. .INDENT 2.0
  231013. .IP \(bu 2
  231014. \fBPR\fP \fI\%#34457\fP: (\fI\%ryan\-lane\fP) Only access key metadata if we found key metadata (refs: \fI\%#34467\fP)
  231015. .IP \(bu 2
  231016. 85f1f18239 Merge pull request \fI\%#34467\fP from rallytime/bp\-34457
  231017. .IP \(bu 2
  231018. 746883741f Only access key metadata if we found key metadata
  231019. .UNINDENT
  231020. .IP \(bu 2
  231021. \fBPR\fP \fI\%#34432\fP: (\fI\%twangboy\fP) Fix file.append
  231022. @ \fI2016\-07\-05 23:14:22 UTC\fP
  231023. .INDENT 2.0
  231024. .IP \(bu 2
  231025. 9e15337b74 Merge pull request \fI\%#34432\fP from twangboy/fix_file.append
  231026. .IP \(bu 2
  231027. 13f11fddce Remove refactoring code
  231028. .IP \(bu 2
  231029. 78f7c530bb Remove unit tests, integration tests written
  231030. .IP \(bu 2
  231031. b83392edea Remove len() in favor of boolean test
  231032. .IP \(bu 2
  231033. 4373408163 Fix line error
  231034. .IP \(bu 2
  231035. 2479b53e2f Fix erroneous report on newline code
  231036. .IP \(bu 2
  231037. 75b6ed1fd5 Change back to binary read
  231038. .IP \(bu 2
  231039. 65753cff6d Use os.linesep instead of n
  231040. .IP \(bu 2
  231041. a55d63f086 Fix object names
  231042. .IP \(bu 2
  231043. 3e2fe12e5e Add new line if missing
  231044. .IP \(bu 2
  231045. 0b7821c8db Fix file.append state
  231046. .UNINDENT
  231047. .IP \(bu 2
  231048. \fBPR\fP \fI\%#34429\fP: (\fI\%terminalmage\fP) Skip version checking for targeted packages in pkg.latest state
  231049. @ \fI2016\-07\-05 17:50:41 UTC\fP
  231050. .INDENT 2.0
  231051. .IP \(bu 2
  231052. 91e095bb41 Merge pull request \fI\%#34429\fP from terminalmage/pkg\-latest\-versioncheck
  231053. .IP \(bu 2
  231054. 667f31a72a Skip version checking for targeted packages in pkg.latest state
  231055. .IP \(bu 2
  231056. \fBPR\fP \fI\%#34455\fP: (\fI\%cro\fP) Forgot reference to inotify
  231057. .UNINDENT
  231058. .IP \(bu 2
  231059. \fBPR\fP \fI\%#34451\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231060. @ \fI2016\-07\-05 15:57:54 UTC\fP
  231061. .INDENT 2.0
  231062. .IP \(bu 2
  231063. 7bb0868c66 Merge pull request \fI\%#34451\fP from rallytime/merge\-2015.8
  231064. .IP \(bu 2
  231065. 55a91e22be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231066. .IP \(bu 2
  231067. 8c72ee56e4 Merge pull request \fI\%#34435\fP from cachedout/backport_config_dir_integration
  231068. .INDENT 2.0
  231069. .IP \(bu 2
  231070. 0e2c71a537 Backport change to integraiton test suite
  231071. .UNINDENT
  231072. .UNINDENT
  231073. .IP \(bu 2
  231074. \fBISSUE\fP \fI\%#34390\fP: (\fI\%mgresser\fP) Use rpmdev\-vercmp to determine correct version of rpms in CentOS5 (refs: \fI\%#34401\fP)
  231075. .IP \(bu 2
  231076. \fBPR\fP \fI\%#34401\fP: (\fI\%terminalmage\fP) Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  231077. @ \fI2016\-07\-01 17:42:24 UTC\fP
  231078. .INDENT 2.0
  231079. .IP \(bu 2
  231080. e65d1ae374 Merge pull request \fI\%#34401\fP from terminalmage/rpm\-version_cmp
  231081. .IP \(bu 2
  231082. 7cefd4182d Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  231083. .UNINDENT
  231084. .IP \(bu 2
  231085. \fBPR\fP \fI\%#34366\fP: (\fI\%steverweber\fP) Update service.py
  231086. @ \fI2016\-07\-01 17:40:31 UTC\fP
  231087. .INDENT 2.0
  231088. .IP \(bu 2
  231089. 5ddf417432 Merge pull request \fI\%#34366\fP from steverweber/fix_servicerestart
  231090. .IP \(bu 2
  231091. 7847c39024 Update service.py
  231092. .UNINDENT
  231093. .IP \(bu 2
  231094. \fBPR\fP \fI\%#34426\fP: (\fI\%cro\fP) Document that inotify is Linux only
  231095. @ \fI2016\-07\-01 17:04:38 UTC\fP
  231096. .INDENT 2.0
  231097. .IP \(bu 2
  231098. 485454febb Merge pull request \fI\%#34426\fP from cro/inotify\-linux\-only
  231099. .IP \(bu 2
  231100. 54a02f25ba Document that inotify is Linux only
  231101. .UNINDENT
  231102. .IP \(bu 2
  231103. \fBPR\fP \fI\%#34392\fP: (\fI\%cro\fP) Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  231104. @ \fI2016\-06\-30 18:16:23 UTC\fP
  231105. .INDENT 2.0
  231106. .IP \(bu 2
  231107. fe18bbb527 Merge pull request \fI\%#34392\fP from cro/salt\-cloud\-doc\-clarify
  231108. .IP \(bu 2
  231109. 6cce575d40 Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  231110. .UNINDENT
  231111. .IP \(bu 2
  231112. \fBPR\fP \fI\%#34373\fP: (\fI\%justinta\fP) Network state integration test
  231113. @ \fI2016\-06\-30 15:05:44 UTC\fP
  231114. .INDENT 2.0
  231115. .IP \(bu 2
  231116. 45b8fb10d7 Merge pull request \fI\%#34373\fP from jtand/network_state_integration_test
  231117. .IP \(bu 2
  231118. 1d24053e36 network.system sls file
  231119. .IP \(bu 2
  231120. 4a9e6af542 network.routes sls file
  231121. .IP \(bu 2
  231122. 76c90b2ef6 network.managed sls file
  231123. .IP \(bu 2
  231124. 84a36369fa Added network state integration test
  231125. .IP \(bu 2
  231126. \fBPR\fP \fI\%#34377\fP: (\fI\%terminalmage\fP) Optimize pkg integration tests and add a couple new tests
  231127. .UNINDENT
  231128. .IP \(bu 2
  231129. \fBPR\fP \fI\%#34368\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231130. @ \fI2016\-06\-29 17:54:49 UTC\fP
  231131. .INDENT 2.0
  231132. .IP \(bu 2
  231133. af8ef1e461 Merge pull request \fI\%#34368\fP from rallytime/merge\-2015.8
  231134. .IP \(bu 2
  231135. 3bce0cb510 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231136. .IP \(bu 2
  231137. 970aaa46d4 Merge pull request \fI\%#34252\fP from gtmanfred/2015.5
  231138. .INDENT 2.0
  231139. .IP \(bu 2
  231140. 82183f1572 return list of nodes for lxc driver when called directly
  231141. .UNINDENT
  231142. .IP \(bu 2
  231143. \fBPR\fP \fI\%#34344\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34324\fP to 2015.8
  231144. .IP \(bu 2
  231145. \fBPR\fP \fI\%#34324\fP: (\fI\%cachedout\fP) Test custom grains matcher (refs: \fI\%#34344\fP)
  231146. .UNINDENT
  231147. .IP \(bu 2
  231148. \fBISSUE\fP \fI\%#33674\fP: (\fI\%edgan\fP) salt\-ssh returns a zero code on jinja template failure. (refs: \fI\%#34316\fP)
  231149. .IP \(bu 2
  231150. \fBISSUE\fP \fI\%#28300\fP: (\fI\%srkunze\fP) [salt\-ssh] Does not return non\-zero exit code (refs: \fI\%#34316\fP)
  231151. .INDENT 2.0
  231152. .IP \(bu 2
  231153. \fBPR\fP \fI\%#34342\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34316\fP to 2015.8
  231154. .IP \(bu 2
  231155. \fBPR\fP \fI\%#34316\fP: (\fI\%edgan\fP) Making salt\-ssh pass proper return codes for jinja rendering errors (refs: \fI\%#34342\fP)
  231156. .IP \(bu 2
  231157. \fBPR\fP \fI\%#34339\fP: (\fI\%terminalmage\fP) Revert py3modernize lint changes
  231158. .UNINDENT
  231159. .IP \(bu 2
  231160. \fBPR\fP \fI\%#34306\fP: (\fI\%ghedo\fP) Fix iptables.flush state: Do not force \(aqfilter\(aq table when flushing
  231161. @ \fI2016\-06\-28 19:03:14 UTC\fP
  231162. .INDENT 2.0
  231163. .IP \(bu 2
  231164. 046bdaa9f2 Merge pull request \fI\%#34306\fP from ghedo/iptables_flush_table
  231165. .IP \(bu 2
  231166. 882c6c9c86 Do not force \(aqfilter\(aq table when flushing
  231167. .UNINDENT
  231168. .IP \(bu 2
  231169. \fBISSUE\fP \fI\%#34261\fP: (\fI\%vernondcole\fP) salt.modules.dnsmasq documentation errors (refs: \fI\%#34488\fP, \fI\%#34323\fP)
  231170. .IP \(bu 2
  231171. \fBISSUE\fP \fI\%#34249\fP: (\fI\%ssgward\fP) Clarify doc on file.copy (refs: \fI\%#34323\fP)
  231172. .IP \(bu 2
  231173. \fBISSUE\fP \fI\%#34247\fP: (\fI\%gravyboat\fP) Update logging docs to mention profile level (refs: \fI\%#34323\fP)
  231174. .IP \(bu 2
  231175. \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)
  231176. .INDENT 2.0
  231177. .IP \(bu 2
  231178. \fBPR\fP \fI\%#34323\fP: (\fI\%jacobhammons\fP) Doc clarifications to file modules, addition of new \fIprofile\fP log lev…
  231179. .IP \(bu 2
  231180. \fBPR\fP \fI\%#34325\fP: (\fI\%terminalmage\fP) Remove unnecessarily\-disabled sanity check
  231181. .UNINDENT
  231182. .IP \(bu 2
  231183. \fBPR\fP \fI\%#34335\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231184. @ \fI2016\-06\-28 15:07:15 UTC\fP
  231185. .INDENT 2.0
  231186. .IP \(bu 2
  231187. c5890a0eca Merge pull request \fI\%#34335\fP from rallytime/merge\-2015.8
  231188. .IP \(bu 2
  231189. 2296587536 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231190. .IP \(bu 2
  231191. 6cce545d92 Merge pull request \fI\%#34313\fP from rallytime/bootstrap\-2015.5
  231192. .INDENT 2.0
  231193. .IP \(bu 2
  231194. c7db73be92 [2015.5] Update to latest bootstrap script v2016.06.27
  231195. .UNINDENT
  231196. .IP \(bu 2
  231197. \fBPR\fP \fI\%#34319\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34244\fP to 2015.8
  231198. .IP \(bu 2
  231199. \fBPR\fP \fI\%#34244\fP: (\fI\%the\-glu\fP) Typo in dockerio doc (refs: \fI\%#34319\fP)
  231200. .UNINDENT
  231201. .IP \(bu 2
  231202. \fBPR\fP \fI\%#34312\fP: (\fI\%rallytime\fP) [2015.8] Update to latest bootstrap script v2016.06.27
  231203. @ \fI2016\-06\-27 18:59:59 UTC\fP
  231204. .INDENT 2.0
  231205. .IP \(bu 2
  231206. dd4c937009 Merge pull request \fI\%#34312\fP from rallytime/bootstrap\-2015.8
  231207. .IP \(bu 2
  231208. 944a393f89 [2015.8] Update to latest bootstrap script v2016.06.27
  231209. .UNINDENT
  231210. .IP \(bu 2
  231211. \fBPR\fP \fI\%#34307\fP: (\fI\%rallytime\fP) Fix test example in integration testing docs
  231212. @ \fI2016\-06\-27 17:41:24 UTC\fP
  231213. .INDENT 2.0
  231214. .IP \(bu 2
  231215. 91703d2dc4 Merge pull request \fI\%#34307\fP from rallytime/fix\-test\-example
  231216. .IP \(bu 2
  231217. f44a0543fe Fix test example in integration testing docs
  231218. .UNINDENT
  231219. .IP \(bu 2
  231220. \fBPR\fP \fI\%#34233\fP: (\fI\%thegoodduke\fP) ipset: fix the comment containing blank
  231221. @ \fI2016\-06\-24 19:28:34 UTC\fP
  231222. .INDENT 2.0
  231223. .IP \(bu 2
  231224. d235b1245b Merge pull request \fI\%#34233\fP from thegoodduke/for_2015.8_ipset
  231225. .IP \(bu 2
  231226. 4da5e35bf4 ipset: fix the comment containing blank
  231227. .UNINDENT
  231228. .IP \(bu 2
  231229. \fBISSUE\fP \fI\%#34037\fP: (\fI\%bobrik\fP) salt\-call ignores \-\-config\-dir resulting in failing gpg renderer (refs: \fI\%#34257\fP)
  231230. .IP \(bu 2
  231231. \fBPR\fP \fI\%#34257\fP: (\fI\%rallytime\fP) Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  231232. @ \fI2016\-06\-24 17:25:04 UTC\fP
  231233. .INDENT 2.0
  231234. .IP \(bu 2
  231235. 65c5675a3f Merge pull request \fI\%#34257\fP from rallytime/fix\-34037
  231236. .IP \(bu 2
  231237. d7a5e9b10e Remove test that doesn\(aqt actually test anything
  231238. .IP \(bu 2
  231239. c4c037d600 Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  231240. .UNINDENT
  231241. .IP \(bu 2
  231242. \fBISSUE\fP \fI\%#34273\fP: (\fI\%clinta\fP) file.recurse does not properly cache files, adds a pipe to path (refs: \fI\%#34274\fP)
  231243. .IP \(bu 2
  231244. \fBPR\fP \fI\%#34274\fP: (\fI\%clinta\fP) Don\(aqt escape source before calling managed
  231245. @ \fI2016\-06\-24 17:23:35 UTC\fP
  231246. .INDENT 2.0
  231247. .IP \(bu 2
  231248. 203870f147 Merge pull request \fI\%#34274\fP from clinta/2015.8
  231249. .IP \(bu 2
  231250. 6572454918 Don\(aqt escape source before calling managed
  231251. .UNINDENT
  231252. .IP \(bu 2
  231253. \fBPR\fP \fI\%#34258\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231254. @ \fI2016\-06\-24 14:27:06 UTC\fP
  231255. .INDENT 2.0
  231256. .IP \(bu 2
  231257. a59dc85a15 Merge pull request \fI\%#34258\fP from rallytime/merge\-2015.8
  231258. .IP \(bu 2
  231259. ea914b67cd Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231260. .IP \(bu 2
  231261. 8d5ed91980 Merge pull request \fI\%#34225\fP from richardscollin/fix\-win\-set\-datetime
  231262. .INDENT 2.0
  231263. .IP \(bu 2
  231264. 6286771ef7 Fix win_system.set_system_date_time
  231265. .UNINDENT
  231266. .IP \(bu 2
  231267. cb1e8bf082 Merge pull request \fI\%#34232\fP from thegoodduke/for_2015.5_ipset
  231268. .INDENT 2.0
  231269. .IP \(bu 2
  231270. 344eb60762 ipset: fix commont containing blank
  231271. .UNINDENT
  231272. .UNINDENT
  231273. .IP \(bu 2
  231274. \fBISSUE\fP \fI\%#33873\fP: (\fI\%hrumph\fP) refresh: True not working with pkg.installed state (refs: \fI\%#34093\fP)
  231275. .IP \(bu 2
  231276. \fBPR\fP \fI\%#34093\fP: (\fI\%terminalmage\fP) Catch CommandExecutionError in pkg states
  231277. @ \fI2016\-06\-23 21:00:13 UTC\fP
  231278. .INDENT 2.0
  231279. .IP \(bu 2
  231280. 92962957c8 Merge pull request \fI\%#34093\fP from terminalmage/issue33873
  231281. .IP \(bu 2
  231282. 5edb45d746 win_pkg: refresh pkg database if refresh=True passed to version() or list_pkgs()
  231283. .IP \(bu 2
  231284. 0078adee35 Catch CommandExecutionError in pkg states
  231285. .UNINDENT
  231286. .IP \(bu 2
  231287. \fBPR\fP \fI\%#34136\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2015.8
  231288. @ \fI2016\-06\-23 20:24:58 UTC\fP
  231289. .INDENT 2.0
  231290. .IP \(bu 2
  231291. \fBPR\fP \fI\%#34134\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2016.3 (refs: \fI\%#34136\fP)
  231292. .IP \(bu 2
  231293. \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)
  231294. .IP \(bu 2
  231295. cb5399787c Merge pull request \fI\%#34136\fP from meaksh/salt\-suse\-os\-detection\-2015.8
  231296. .IP \(bu 2
  231297. 97f1958863 some cleanup and renaming
  231298. .IP \(bu 2
  231299. 72c8e5d78f better way to check for openSUSE Leap
  231300. .IP \(bu 2
  231301. 548971bdc9 Fix for SUSE OS grains in 2015.8
  231302. .UNINDENT
  231303. .IP \(bu 2
  231304. \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)
  231305. .IP \(bu 2
  231306. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP)
  231307. .INDENT 2.0
  231308. .IP \(bu 2
  231309. \fBPR\fP \fI\%#34208\fP: (\fI\%lomeroe\fP) fix regression from \fI\%#33681\fP which causes pulling a list of s3 objects …
  231310. .IP \(bu 2
  231311. \fBPR\fP \fI\%#33681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33599\fP to 2015.8 (refs: \fI\%#34208\fP)
  231312. .IP \(bu 2
  231313. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP)
  231314. .UNINDENT
  231315. .IP \(bu 2
  231316. \fBISSUE\fP \fI\%#34213\fP: (\fI\%terminalmage\fP) gitfs w/pygit2 \- corner case, traceback with short hexidecimal environment names (refs: \fI\%#34218\fP)
  231317. .IP \(bu 2
  231318. \fBISSUE\fP \fI\%#34212\fP: (\fI\%terminalmage\fP) gitfs: commit SHAs no longer available as fileserver environments (refs: \fI\%#34218\fP)
  231319. .INDENT 2.0
  231320. .IP \(bu 2
  231321. \fBPR\fP \fI\%#34218\fP: (\fI\%terminalmage\fP) Fix a pair of gitfs bugs
  231322. .UNINDENT
  231323. .IP \(bu 2
  231324. \fBISSUE\fP \fI\%#34043\fP: (\fI\%rallytime\fP) state execution stacktraces when psutil isn\(aqt installed (refs: \fI\%#34182\fP)
  231325. .IP \(bu 2
  231326. \fBPR\fP \fI\%#34182\fP: (\fI\%rallytime\fP) Handle child PIDs differently depending on the availability of psutils
  231327. @ \fI2016\-06\-22 19:22:06 UTC\fP
  231328. .INDENT 2.0
  231329. .IP \(bu 2
  231330. \fBPR\fP \fI\%#33942\fP: (\fI\%cachedout\fP) ZD 762 (refs: \fI\%#34182\fP)
  231331. .IP \(bu 2
  231332. 6d643cd528 Merge pull request \fI\%#34182\fP from rallytime/fix\-34043
  231333. .IP \(bu 2
  231334. b7d49c5052 Handle child PIDs differently depending on the availability of psutils
  231335. .IP \(bu 2
  231336. \fBPR\fP \fI\%#34188\fP: (\fI\%terminalmage\fP) Clarify pkg.list_repo_pkgs docstring for held packages
  231337. .IP \(bu 2
  231338. \fBPR\fP \fI\%#34206\fP: (\fI\%terminalmage\fP) Change target for dockerng assuming default status to Nitrogen release
  231339. .UNINDENT
  231340. .IP \(bu 2
  231341. \fBPR\fP \fI\%#34184\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231342. @ \fI2016\-06\-21 21:43:46 UTC\fP
  231343. .INDENT 2.0
  231344. .IP \(bu 2
  231345. 1c4369d093 Merge pull request \fI\%#34184\fP from rallytime/merge\-2015.8
  231346. .IP \(bu 2
  231347. 8e36e90966 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231348. .IP \(bu 2
  231349. 5411ebb3b4 Merge pull request \fI\%#34141\fP from jtand/boto_vpc_test_fix
  231350. .INDENT 2.0
  231351. .IP \(bu 2
  231352. b7ac6c735a Moved imports to top, out of _get_moto_version function
  231353. .IP \(bu 2
  231354. 02f9ba99ba Updated version check. Moved check into its own function
  231355. .IP \(bu 2
  231356. d445026c56 Updated test to work with new moto version. Changed strings to unicode
  231357. .UNINDENT
  231358. .UNINDENT
  231359. .IP \(bu 2
  231360. \fBISSUE\fP \fI\%#33972\fP: (\fI\%morganwillcock\fP) 2016.3.1 breaks diskusage beacon (refs: \fI\%#34176\fP, \fI\%#34103\fP)
  231361. .IP \(bu 2
  231362. \fBPR\fP \fI\%#34176\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34103\fP to 2015.8
  231363. @ \fI2016\-06\-21 20:01:46 UTC\fP
  231364. .INDENT 2.0
  231365. .IP \(bu 2
  231366. \fBPR\fP \fI\%#34103\fP: (\fI\%morganwillcock\fP) Fix diskusage beacon (refs: \fI\%#34176\fP)
  231367. .IP \(bu 2
  231368. \fBPR\fP \fI\%#33474\fP: (\fI\%cachedout\fP) Fix diskusage beacon (refs: \fI\%#34103\fP)
  231369. .IP \(bu 2
  231370. c059d6c08c Merge pull request \fI\%#34176\fP from rallytime/bp\-34103
  231371. .IP \(bu 2
  231372. 2e5e7ed03c Fix diskusage beacon
  231373. .UNINDENT
  231374. .IP \(bu 2
  231375. \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)
  231376. .IP \(bu 2
  231377. \fBPR\fP \fI\%#34179\fP: (\fI\%terminalmage\fP) Raise the correct exception when gitfs lockfile is empty
  231378. @ \fI2016\-06\-21 20:00:59 UTC\fP
  231379. .INDENT 2.0
  231380. .IP \(bu 2
  231381. 5cbaaed167 Merge pull request \fI\%#34179\fP from terminalmage/issue34114
  231382. .IP \(bu 2
  231383. 86d1b8e864 Raise the correct exception when gitfs lockfile is empty
  231384. .UNINDENT
  231385. .IP \(bu 2
  231386. \fBPR\fP \fI\%#34178\fP: (\fI\%terminalmage\fP) Remove unnecesssary comment
  231387. @ \fI2016\-06\-21 19:15:37 UTC\fP
  231388. .INDENT 2.0
  231389. .IP \(bu 2
  231390. 67deded119 Merge pull request \fI\%#34178\fP from terminalmage/remove\-comment
  231391. .IP \(bu 2
  231392. 4965be72b1 Remove unnecesssary comment
  231393. .IP \(bu 2
  231394. \fBPR\fP \fI\%#34165\fP: (\fI\%mcalmer\fP) fix salt \-\-summary to count not responding minions correctly
  231395. .IP \(bu 2
  231396. \fBPR\fP \fI\%#34175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34128\fP to 2015.8
  231397. .IP \(bu 2
  231398. \fBPR\fP \fI\%#34128\fP: (\fI\%bebehei\fP) doc: add missing dot (refs: \fI\%#34175\fP)
  231399. .IP \(bu 2
  231400. \fBPR\fP \fI\%#34174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34066\fP to 2015.8
  231401. .IP \(bu 2
  231402. \fBPR\fP \fI\%#34066\fP: (\fI\%complexsplit\fP) Typo fix (refs: \fI\%#34174\fP)
  231403. .UNINDENT
  231404. .IP \(bu 2
  231405. \fBPR\fP \fI\%#34077\fP: (\fI\%rallytime\fP) Add some grains targeting tests
  231406. @ \fI2016\-06\-21 16:06:30 UTC\fP
  231407. .INDENT 2.0
  231408. .IP \(bu 2
  231409. 3669048654 Merge pull request \fI\%#34077\fP from rallytime/grains\-tests
  231410. .IP \(bu 2
  231411. 2199bb8a78 Add integration tests for grains.append
  231412. .IP \(bu 2
  231413. 37cfe70724 Add some grains targeting tests
  231414. .UNINDENT
  231415. .IP \(bu 2
  231416. \fBPR\fP \fI\%#34142\fP: (\fI\%isbm\fP) Move log message from INFO to DEBUG.
  231417. @ \fI2016\-06\-20 18:57:34 UTC\fP
  231418. .INDENT 2.0
  231419. .IP \(bu 2
  231420. 65fba5b4d7 Merge pull request \fI\%#34142\fP from isbm/isbm\-getid\-loglevel\-shift
  231421. .IP \(bu 2
  231422. 236a67b702 Move log message from INFO to DEBUG.
  231423. .IP \(bu 2
  231424. \fBPR\fP \fI\%#34100\fP: (\fI\%terminalmage\fP) Update documentation on "refresh" behavior in pkg states
  231425. .IP \(bu 2
  231426. \fBPR\fP \fI\%#34072\fP: (\fI\%jfindlay\fP) modules.pkg int tests: skip refresh_db upon error
  231427. .UNINDENT
  231428. .IP \(bu 2
  231429. \fBPR\fP \fI\%#34069\fP: (\fI\%rallytime\fP) Add a test to check for disconnected minion messaging
  231430. @ \fI2016\-06\-16 21:18:38 UTC\fP
  231431. .INDENT 2.0
  231432. .IP \(bu 2
  231433. 1b76de1557 Merge pull request \fI\%#34069\fP from rallytime/test\-minion\-return\-message
  231434. .IP \(bu 2
  231435. 60561ac6fc Add a test to check for disconnected minion messaging
  231436. .UNINDENT
  231437. .IP \(bu 2
  231438. \fBISSUE\fP \fI\%#30100\fP: (\fI\%armooo\fP) Masterless gitfs performance (refs: \fI\%#34048\fP)
  231439. .IP \(bu 2
  231440. \fBPR\fP \fI\%#34048\fP: (\fI\%terminalmage\fP) RFC: proposed fix for multiple fileserver updates in masterless runs
  231441. @ \fI2016\-06\-16 21:10:59 UTC\fP
  231442. .INDENT 2.0
  231443. .IP \(bu 2
  231444. 3119693dac Merge pull request \fI\%#34048\fP from terminalmage/issue30100
  231445. .IP \(bu 2
  231446. 715e7af8a4 Ensure only one fileserver update in a masterless run
  231447. .UNINDENT
  231448. .IP \(bu 2
  231449. \fBPR\fP \fI\%#34011\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP and \fI\%#34009\fP to 2015.8
  231450. @ \fI2016\-06\-16 15:41:02 UTC\fP
  231451. .INDENT 2.0
  231452. .IP \(bu 2
  231453. \fBPR\fP \fI\%#34009\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP to 2016.3 + add log message (refs: \fI\%#34011\fP)
  231454. .IP \(bu 2
  231455. \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)
  231456. .IP \(bu 2
  231457. dd03024931 Merge pull request \fI\%#34011\fP from rallytime/bp\-33948\-2015.8
  231458. .IP \(bu 2
  231459. a4660d1ff7 Warn when custom returners don\(aqt have minions kwarg in save_load
  231460. .IP \(bu 2
  231461. 78befde62f Add note to release notes about returner minions kwarg change
  231462. .IP \(bu 2
  231463. 4e7f35fa36 Fix loop over cache in auth checking!
  231464. .IP \(bu 2
  231465. 06963e0505 Save an entire minion cache traversal on each master pub
  231466. .IP \(bu 2
  231467. \fBPR\fP \fI\%#34051\fP: (\fI\%tegbert\fP) Fixed a bug in the consul.py module that was preventing services
  231468. .UNINDENT
  231469. .IP \(bu 2
  231470. \fBPR\fP \fI\%#34045\fP: (\fI\%jacobhammons\fP) Updated latest release version
  231471. @ \fI2016\-06\-15 19:22:43 UTC\fP
  231472. .INDENT 2.0
  231473. .IP \(bu 2
  231474. 8ba117c7f6 Merge pull request \fI\%#34045\fP from jacobhammons/release\-prev
  231475. .IP \(bu 2
  231476. 43b4a12aa2 Updated latest release version
  231477. .IP \(bu 2
  231478. \fBPR\fP \fI\%#34020\fP: (\fI\%twangboy\fP) Always make changes to minion config if set (2015.8)
  231479. .IP \(bu 2
  231480. \fBPR\fP \fI\%#34030\fP: (\fI\%vutny\fP) More YAML indentation fixes in state module examples
  231481. .IP \(bu 2
  231482. \fBPR\fP \fI\%#34003\fP: (\fI\%vutny\fP) states.file: fix indentation in YAML examples (refs: \fI\%#34030\fP)
  231483. .UNINDENT
  231484. .IP \(bu 2
  231485. \fBPR\fP \fI\%#34018\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231486. @ \fI2016\-06\-14 22:53:19 UTC\fP
  231487. .INDENT 2.0
  231488. .IP \(bu 2
  231489. 5b5eae4ca9 Merge pull request \fI\%#34018\fP from rallytime/merge\-2015.8
  231490. .IP \(bu 2
  231491. 77f44f3087 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231492. .IP \(bu 2
  231493. 871f7966ce Lint fix for \fI\%#34000\fP (\fI\%#34005\fP)
  231494. .IP \(bu 2
  231495. f758e42172 Fix incorrectly written test (\fI\%#34000\fP)
  231496. .IP \(bu 2
  231497. cf6281b4cf Add loader.utils() example to calling minion_mods (\fI\%#33953\fP)
  231498. .IP \(bu 2
  231499. 6b98e8a9ea Merge pull request \fI\%#33880\fP from terminalmage/zh744
  231500. .INDENT 2.0
  231501. .IP \(bu 2
  231502. ea726d11c8 pkg.uptodate: Pass kwargs to pkg.list_upgrades
  231503. .IP \(bu 2
  231504. de90b35d2b salt/modules/zypper.py: add fromrepo support to list_upgrades
  231505. .IP \(bu 2
  231506. 35fbb06df5 salt/modules/win_pkg.py: add kwargs to list_upgrades
  231507. .IP \(bu 2
  231508. bf5505f425 salt/modules/solarisips.py: add kwargs to list_upgrades
  231509. .IP \(bu 2
  231510. 6e89a8be98 salt/modules/pkgutil.py: add kwargs to list_upgrades
  231511. .IP \(bu 2
  231512. 5179dbcec4 salt/modules/pacman.py: add kwargs to list_upgrades
  231513. .IP \(bu 2
  231514. 46e5a52784 salt/modules/macports.py: add kwargs to list_upgrades
  231515. .IP \(bu 2
  231516. 76143b76ca salt/modules/ebuild.py: add kwargs to list_upgrades
  231517. .IP \(bu 2
  231518. b40fc9bc62 salt/modules/brew.py: add kwargs to list_upgrades
  231519. .IP \(bu 2
  231520. 4f11c16d86 salt/modules/aptpkg.py: add fromrepo support to list_upgrades
  231521. .UNINDENT
  231522. .IP \(bu 2
  231523. cb88960ed1 Merge pull request \fI\%#33904\fP from rallytime/bp\-33806
  231524. .INDENT 2.0
  231525. .IP \(bu 2
  231526. 638ccf501d Work around upstream cherrypy bug
  231527. .UNINDENT
  231528. .IP \(bu 2
  231529. \fBPR\fP \fI\%#34003\fP: (\fI\%vutny\fP) states.file: fix indentation in YAML examples (refs: \fI\%#34030\fP)
  231530. .UNINDENT
  231531. .IP \(bu 2
  231532. \fBISSUE\fP \fI\%#20809\fP: (\fI\%lorengordon\fP) Function pam.read_file is not available? (refs: \fI\%#34002\fP)
  231533. .INDENT 2.0
  231534. .IP \(bu 2
  231535. \fBPR\fP \fI\%#34002\fP: (\fI\%lorengordon\fP) Remove loader test for pam module
  231536. .UNINDENT
  231537. .IP \(bu 2
  231538. \fBPR\fP \fI\%#33990\fP: (\fI\%jacobhammons\fP) Adds links to several current Salt\-related projects
  231539. @ \fI2016\-06\-14 01:15:20 UTC\fP
  231540. .INDENT 2.0
  231541. .IP \(bu 2
  231542. c4dab6a074 Merge pull request \fI\%#33990\fP from jacobhammons/community\-projects
  231543. .IP \(bu 2
  231544. 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
  231545. .UNINDENT
  231546. .IP \(bu 2
  231547. \fBPR\fP \fI\%#33983\fP: (\fI\%twangboy\fP) Clarify the \fIaccount_exists\fP parameter
  231548. @ \fI2016\-06\-14 01:11:48 UTC\fP
  231549. .INDENT 2.0
  231550. .IP \(bu 2
  231551. 444c15792c Merge pull request \fI\%#33983\fP from twangboy/fix_docs_join_domain
  231552. .IP \(bu 2
  231553. b057be04b4 Fix typo, more documentation
  231554. .IP \(bu 2
  231555. d8c2f3e57a Clarify the \fIaccount_exists\fP parameter
  231556. .UNINDENT
  231557. .IP \(bu 2
  231558. \fBPR\fP \fI\%#33951\fP: (\fI\%jfindlay\fP) modules.gem int tests: more fixes
  231559. @ \fI2016\-06\-14 00:46:43 UTC\fP
  231560. .INDENT 2.0
  231561. .IP \(bu 2
  231562. 9bd2317992 Merge pull request \fI\%#33951\fP from jfindlay/gem_tests
  231563. .IP \(bu 2
  231564. 2eb633ccad modules.gem int tests: only check known installed gems
  231565. .IP \(bu 2
  231566. 9f3e18b037 modules.gem int tests: (un)install a non\-core gem
  231567. .UNINDENT
  231568. .IP \(bu 2
  231569. \fBPR\fP \fI\%#33984\fP: (\fI\%jfindlay\fP) Add docs and tests to disk state
  231570. @ \fI2016\-06\-14 00:43:38 UTC\fP
  231571. .INDENT 2.0
  231572. .IP \(bu 2
  231573. 53baae6eb1 Merge pull request \fI\%#33984\fP from jfindlay/disk_capacity
  231574. .IP \(bu 2
  231575. 6cbe31e6c2 states.disk: rewrite unit tests
  231576. .IP \(bu 2
  231577. 82c77b533f states.disk.status: validate percent values
  231578. .IP \(bu 2
  231579. aedc4e15e5 states.disk: add documentation
  231580. .UNINDENT
  231581. .IP \(bu 2
  231582. \fBPR\fP \fI\%#33985\fP: (\fI\%rallytime\fP) Write some more simple batch command tests
  231583. @ \fI2016\-06\-14 00:38:05 UTC\fP
  231584. .INDENT 2.0
  231585. .IP \(bu 2
  231586. fa5efb6a69 Merge pull request \fI\%#33985\fP from rallytime/more\-batch\-tests
  231587. .IP \(bu 2
  231588. 3e7ab8c7b3 Write some more simple batch command tests
  231589. .IP \(bu 2
  231590. \fBPR\fP \fI\%#33684\fP: (\fI\%jfindlay\fP) add acl unit tests
  231591. .IP \(bu 2
  231592. \fBPR\fP \fI\%#33942\fP: (\fI\%cachedout\fP) ZD 762 (refs: \fI\%#34182\fP)
  231593. .UNINDENT
  231594. .IP \(bu 2
  231595. \fBPR\fP \fI\%#33946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33698\fP to 2015.8
  231596. @ \fI2016\-06\-13 15:55:22 UTC\fP
  231597. .INDENT 2.0
  231598. .IP \(bu 2
  231599. \fBPR\fP \fI\%#33698\fP: (\fI\%opdude\fP) Vsphere fixes (refs: \fI\%#33946\fP)
  231600. .IP \(bu 2
  231601. 0281d491c6 Merge pull request \fI\%#33946\fP from rallytime/bp\-33698
  231602. .IP \(bu 2
  231603. 5fdfed1cb9 Make sure we only use GetConnection if we are using a proxy salt minion
  231604. .IP \(bu 2
  231605. 1505c5724b Fix a bug with self signed certificates and creating a new VM
  231606. .UNINDENT
  231607. .IP \(bu 2
  231608. \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)
  231609. .IP \(bu 2
  231610. \fBPR\fP \fI\%#33952\fP: (\fI\%rallytime\fP) Add base argument to salt\-ssh grains wrapper for filter_by func
  231611. @ \fI2016\-06\-13 15:51:33 UTC\fP
  231612. .INDENT 2.0
  231613. .IP \(bu 2
  231614. dff3f51955 Merge pull request \fI\%#33952\fP from rallytime/fix\-33911
  231615. .IP \(bu 2
  231616. 03b7cbbd2c Add base argument to salt\-ssh grains wrapper for filter_by func
  231617. .IP \(bu 2
  231618. \fBPR\fP \fI\%#33962\fP: (\fI\%jacobhammons\fP) Adds a "Generated on <timestamp>" line to the html footer
  231619. .UNINDENT
  231620. .IP \(bu 2
  231621. \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)
  231622. .INDENT 2.0
  231623. .IP \(bu 2
  231624. \fBPR\fP \fI\%#33765\fP: (\fI\%cachedout\fP) Correct issue with ping on rotate with minion cache
  231625. .UNINDENT
  231626. .IP \(bu 2
  231627. \fBPR\fP \fI\%#33888\fP: (\fI\%jfindlay\fP) random.org checks
  231628. @ \fI2016\-06\-10 15:45:07 UTC\fP
  231629. .INDENT 2.0
  231630. .IP \(bu 2
  231631. 378dd7ca06 Merge pull request \fI\%#33888\fP from jfindlay/random_check
  231632. .IP \(bu 2
  231633. 6acee3cc30 modules.random_org._query: only return text if present
  231634. .IP \(bu 2
  231635. 82f95429db modules.random_org unit tests: skip if random.org down
  231636. .IP \(bu 2
  231637. 1f9422e0cd utils.http.query: also except gaierror with tornado
  231638. .UNINDENT
  231639. .IP \(bu 2
  231640. \fBISSUE\fP \fI\%#31499\fP: (\fI\%Reiner030\fP) FeatureRequest: boto_elb misses connection_settings \- idle_timeout (refs: \fI\%#33936\fP)
  231641. .INDENT 2.0
  231642. .IP \(bu 2
  231643. \fBPR\fP \fI\%#33936\fP: (\fI\%rallytime\fP) Add connecting_settings to boto_elb state attributes list
  231644. .UNINDENT
  231645. .IP \(bu 2
  231646. \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)
  231647. .INDENT 2.0
  231648. .IP \(bu 2
  231649. \fBPR\fP \fI\%#33917\fP: (\fI\%techhat\fP) Wait for up to a minute for sync_after_install
  231650. .UNINDENT
  231651. .IP \(bu 2
  231652. \fBPR\fP \fI\%#33877\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231653. @ \fI2016\-06\-09 14:50:42 UTC\fP
  231654. .INDENT 2.0
  231655. .IP \(bu 2
  231656. ef6da0be5d Merge pull request \fI\%#33877\fP from rallytime/merge\-2015.8
  231657. .IP \(bu 2
  231658. 398534a9e7 Fix ret return from merge\-conflict resolution
  231659. .IP \(bu 2
  231660. b8e4706074 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231661. .IP \(bu 2
  231662. cdda593c50 Merge pull request \fI\%#33829\fP from terminalmage/update\-versionchanged
  231663. .INDENT 2.0
  231664. .IP \(bu 2
  231665. f7028eb1c6 Update versionchanged directive
  231666. .UNINDENT
  231667. .IP \(bu 2
  231668. b8e6c144d8 Merge pull request \fI\%#33833\fP from terminalmage/issue33645
  231669. .INDENT 2.0
  231670. .IP \(bu 2
  231671. 91745c2a67 Support syncing pillar modules to masterless minions
  231672. .UNINDENT
  231673. .IP \(bu 2
  231674. e061788e81 Merge pull request \fI\%#33814\fP from terminalmage/archive\-extracted\-xz
  231675. .INDENT 2.0
  231676. .IP \(bu 2
  231677. 897a716df2 Support extraction of XZ archives in archive.extracted state
  231678. .UNINDENT
  231679. .IP \(bu 2
  231680. fa983e91cf Merge pull request \fI\%#33778\fP from sodium\-chloride/2015.5\-2016\-0604\-1938
  231681. .INDENT 2.0
  231682. .IP \(bu 2
  231683. a5fb6d7a69 Fix minor docstring issues
  231684. .UNINDENT
  231685. .IP \(bu 2
  231686. b9133326c8 Merge pull request \fI\%#33726\fP from jtand/sysmod_skip_valid_docs_glance
  231687. .INDENT 2.0
  231688. .IP \(bu 2
  231689. ebee8a89af glance.warn_until shouldn\(aqt be checked for a doc string
  231690. .UNINDENT
  231691. .IP \(bu 2
  231692. 137f0b19f3 Merge pull request \fI\%#33611\fP from TargetHolding/2015.5
  231693. .INDENT 2.0
  231694. .IP \(bu 2
  231695. 1dd15a603b solve\(aq TypeError: expected string or buffer\(aq in json/decoder.py
  231696. .IP \(bu 2
  231697. eaf42ca892 solve AttributeError: \(aqmodule\(aq object has no attribute \(aqexception\(aq
  231698. .UNINDENT
  231699. .UNINDENT
  231700. .IP \(bu 2
  231701. \fBISSUE\fP \fI\%#33810\fP: (\fI\%chiro79\fP) locate.locate fails always (refs: \fI\%#33827\fP)
  231702. .IP \(bu 2
  231703. \fBPR\fP \fI\%#33827\fP: (\fI\%cachedout\fP) Fix broken locate.locate function
  231704. @ \fI2016\-06\-08 13:49:57 UTC\fP
  231705. .INDENT 2.0
  231706. .IP \(bu 2
  231707. ec09095c45 Merge pull request \fI\%#33827\fP from cachedout/issue_33810
  231708. .IP \(bu 2
  231709. 9d36f1e474 Fix broken locate.locate function
  231710. .UNINDENT
  231711. .IP \(bu 2
  231712. \fBPR\fP \fI\%#33839\fP: (\fI\%cachedout\fP) Fix another unit test stacktrace in pkg_resource
  231713. @ \fI2016\-06\-08 13:32:55 UTC\fP
  231714. .INDENT 2.0
  231715. .IP \(bu 2
  231716. f7b3d0eda0 Merge pull request \fI\%#33839\fP from cachedout/fix_pkgresource_test_stacktrace
  231717. .IP \(bu 2
  231718. 435547a747 Fix another unit test stacktrace in pkg_resource
  231719. .UNINDENT
  231720. .IP \(bu 2
  231721. \fBPR\fP \fI\%#33840\fP: (\fI\%cachedout\fP) Remove matcher tests
  231722. @ \fI2016\-06\-08 13:31:41 UTC\fP
  231723. .INDENT 2.0
  231724. .IP \(bu 2
  231725. 5f081ef31c Merge pull request \fI\%#33840\fP from cachedout/remove_matcher_unit_tests
  231726. .IP \(bu 2
  231727. 6297448377 Remove matcher tests
  231728. .UNINDENT
  231729. .IP \(bu 2
  231730. \fBPR\fP \fI\%#33836\fP: (\fI\%cachedout\fP) Fixing more stupid unit tests
  231731. @ \fI2016\-06\-07 21:34:04 UTC\fP
  231732. .INDENT 2.0
  231733. .IP \(bu 2
  231734. cda032dab2 Merge pull request \fI\%#33836\fP from cachedout/fix_winserver_manager_test
  231735. .IP \(bu 2
  231736. 453fb1ac91 Fixing more stupid unit tests
  231737. .UNINDENT
  231738. .IP \(bu 2
  231739. \fBPR\fP \fI\%#33805\fP: (\fI\%jfindlay\fP) states.pkg int tests: skip if pkg mgr unavailable
  231740. @ \fI2016\-06\-07 14:40:47 UTC\fP
  231741. .INDENT 2.0
  231742. .IP \(bu 2
  231743. 1db559afe9 Merge pull request \fI\%#33805\fP from jfindlay/pkg_tests
  231744. .IP \(bu 2
  231745. 0c069ddc95 states.pkg int tests: skip if pkg mgr unavailable
  231746. .UNINDENT
  231747. .IP \(bu 2
  231748. \fBPR\fP \fI\%#33808\fP: (\fI\%jfindlay\fP) fix some problems with the gem module integration tests
  231749. @ \fI2016\-06\-07 14:40:25 UTC\fP
  231750. .INDENT 2.0
  231751. .IP \(bu 2
  231752. 3984b65486 Merge pull request \fI\%#33808\fP from jfindlay/gem_tests
  231753. .IP \(bu 2
  231754. f7c19a1a58 modules.gem int tests: relax version checks
  231755. .IP \(bu 2
  231756. 6af47d2ba7 modules.gem int tests: remove pkgs before testing install
  231757. .UNINDENT
  231758. .IP \(bu 2
  231759. \fBPR\fP \fI\%#33770\fP: (\fI\%jfindlay\fP) service state integration tests
  231760. @ \fI2016\-06\-07 14:37:54 UTC\fP
  231761. .INDENT 2.0
  231762. .IP \(bu 2
  231763. c30d8a8c61 Merge pull request \fI\%#33770\fP from jfindlay/service_tests
  231764. .IP \(bu 2
  231765. f13f914755 states.service: add integration tests
  231766. .IP \(bu 2
  231767. 90aee79c39 states.service.mod_watch: update unit test
  231768. .IP \(bu 2
  231769. d210a92f09 states.service.mod_watch: update sfun and force docs
  231770. .UNINDENT
  231771. .IP \(bu 2
  231772. \fBPR\fP \fI\%#33691\fP: (\fI\%justinta\fP) Gem integration test
  231773. @ \fI2016\-06\-06 11:13:23 UTC\fP
  231774. .INDENT 2.0
  231775. .IP \(bu 2
  231776. 7fdfbe9a28 Merge pull request \fI\%#33691\fP from jtand/gem_integration_test
  231777. .IP \(bu 2
  231778. ff2dae103d ubuntu doesn\(aqt install default gems when ruby is installed
  231779. .IP \(bu 2
  231780. 504df9a65a Fixed lint error
  231781. .IP \(bu 2
  231782. 0cb1bfa0d3 Removed extra :
  231783. .IP \(bu 2
  231784. 86f59b3e80 Made more pythonic
  231785. .IP \(bu 2
  231786. 2f36f34981 Fixed salt.util import. Added status check to make sure external resource is available
  231787. .IP \(bu 2
  231788. 400a71ec33 Removed redundancies
  231789. .IP \(bu 2
  231790. 91db411bea A couple lint fixes
  231791. .IP \(bu 2
  231792. c97f3319b9 Add check for gem binary
  231793. .IP \(bu 2
  231794. 210aceb402 Refactored tests to not use return messages
  231795. .IP \(bu 2
  231796. 9d437bd45d Removed artifact from testing
  231797. .IP \(bu 2
  231798. 134e1fa888 Fixed typos, and added destructiveTest decorator
  231799. .IP \(bu 2
  231800. 37bc3ad8fd Fixed typo, uninstalled to uninstall
  231801. .IP \(bu 2
  231802. 5b23b91ac6 Integration test for gem module
  231803. .UNINDENT
  231804. .IP \(bu 2
  231805. \fBPR\fP \fI\%#33777\fP: (\fI\%sacren\fP) Fix minor docstring issue of arg being missing
  231806. @ \fI2016\-06\-06 10:44:59 UTC\fP
  231807. .INDENT 2.0
  231808. .IP \(bu 2
  231809. bb4194bb79 Merge pull request \fI\%#33777\fP from sodium\-chloride/2015.8\-2016\-0604\-1939
  231810. .IP \(bu 2
  231811. c1fd830a1a Fix minor docstring issue of arg being missing
  231812. .UNINDENT
  231813. .IP \(bu 2
  231814. \fBISSUE\fP \fI\%#31219\fP: (\fI\%gladiatr72\fP) when the minions have all been destroyed... (refs: \fI\%#33759\fP)
  231815. .IP \(bu 2
  231816. \fBPR\fP \fI\%#33759\fP: (\fI\%cachedout\fP) Catch no minions exception in batch mode
  231817. @ \fI2016\-06\-03 21:22:49 UTC\fP
  231818. .INDENT 2.0
  231819. .IP \(bu 2
  231820. c749aea409 Merge pull request \fI\%#33759\fP from cachedout/issue_31219
  231821. .IP \(bu 2
  231822. 15a39f8646 Catch no minions exception in batch mode
  231823. .UNINDENT
  231824. .IP \(bu 2
  231825. \fBISSUE\fP \fI\%#33554\fP: (\fI\%jfindlay\fP) local cache missing directories while running test suite (refs: \fI\%#33653\fP)
  231826. .IP \(bu 2
  231827. \fBPR\fP \fI\%#33719\fP: (\fI\%cachedout\fP) Catch oserror for race condition
  231828. @ \fI2016\-06\-03 17:25:26 UTC\fP
  231829. .INDENT 2.0
  231830. .IP \(bu 2
  231831. \fBPR\fP \fI\%#33653\fP: (\fI\%cachedout\fP) Create missing jid dir if it doesn\(aqt exist (refs: \fI\%#33719\fP)
  231832. .IP \(bu 2
  231833. 47d668e071 Merge pull request \fI\%#33719\fP from cachedout/fixup_33653
  231834. .IP \(bu 2
  231835. 635efa248b Change to just surround the mkdir
  231836. .IP \(bu 2
  231837. 21b7123a60 Catch oserror for race condition
  231838. .UNINDENT
  231839. .IP \(bu 2
  231840. \fBPR\fP \fI\%#33712\fP: (\fI\%meaksh\fP) Fix for groupadd execution module failures in SLES11 systems
  231841. @ \fI2016\-06\-03 16:13:06 UTC\fP
  231842. .INDENT 2.0
  231843. .IP \(bu 2
  231844. 11e39e7203 Merge pull request \fI\%#33712\fP from meaksh/fix\-for\-groupadd\-module\-failures\-in\-SLE11\-2015.8
  231845. .IP \(bu 2
  231846. ab738416ba pylint fix
  231847. .IP \(bu 2
  231848. bf27e5d36e test_members cleanup
  231849. .IP \(bu 2
  231850. ba815dbf76 improvements on groupadd unit tests
  231851. .IP \(bu 2
  231852. 3bbc5ae0d9 one line is better
  231853. .IP \(bu 2
  231854. a53dc192c9 fix groupadd module for sles11 systems
  231855. .UNINDENT
  231856. .IP \(bu 2
  231857. \fBPR\fP \fI\%#33718\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33700\fP to 2015.8
  231858. @ \fI2016\-06\-03 16:10:44 UTC\fP
  231859. .INDENT 2.0
  231860. .IP \(bu 2
  231861. \fBPR\fP \fI\%#33700\fP: (\fI\%sacren\fP) Fix incorrect args passed to timezone.set_hwclock (refs: \fI\%#33718\fP)
  231862. .IP \(bu 2
  231863. 2c450a7494 Merge pull request \fI\%#33718\fP from rallytime/bp\-33700
  231864. .IP \(bu 2
  231865. a6a446121a Fix speed issue
  231866. .IP \(bu 2
  231867. a41146730a Fix incorrect args passed to timezone.set_hwclock
  231868. .UNINDENT
  231869. .IP \(bu 2
  231870. \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)
  231871. .IP \(bu 2
  231872. \fBPR\fP \fI\%#33727\fP: (\fI\%terminalmage\fP) Fix git_pillar edge case for remote repos without a master branch
  231873. @ \fI2016\-06\-03 16:03:59 UTC\fP
  231874. .INDENT 2.0
  231875. .IP \(bu 2
  231876. b07701f0a0 Merge pull request \fI\%#33727\fP from terminalmage/issue33725
  231877. .IP \(bu 2
  231878. d8ba7ed5a5 Fix git_pillar edge case for remote repos without a master branch
  231879. .UNINDENT
  231880. .IP \(bu 2
  231881. \fBPR\fP \fI\%#33728\fP: (\fI\%jfindlay\fP) Make \fIconfigurable_test_state\fP configurable in test mode
  231882. @ \fI2016\-06\-03 16:02:57 UTC\fP
  231883. .INDENT 2.0
  231884. .IP \(bu 2
  231885. 015e50cec8 Merge pull request \fI\%#33728\fP from jfindlay/test_state_test
  231886. .IP \(bu 2
  231887. 87e018af2a states.test.configurable_test_state: add unit tests
  231888. .IP \(bu 2
  231889. c2d0679c4b states.test.configurable_test_state: refactor change_data
  231890. .IP \(bu 2
  231891. f06ff1af1f states.test.configurable_test_state test mode
  231892. .UNINDENT
  231893. .IP \(bu 2
  231894. \fBPR\fP \fI\%#33729\fP: (\fI\%twangboy\fP) Add exclude option to win_servermanager
  231895. @ \fI2016\-06\-03 15:53:13 UTC\fP
  231896. .INDENT 2.0
  231897. .IP \(bu 2
  231898. 1cf8fe3f1d Merge pull request \fI\%#33729\fP from twangboy/fix_win_servermanager
  231899. .IP \(bu 2
  231900. 2de91d166f Fix docstring
  231901. .IP \(bu 2
  231902. 9870479d99 Add exclude option to state
  231903. .IP \(bu 2
  231904. 50bd76e206 Add exclude option
  231905. .UNINDENT
  231906. .IP \(bu 2
  231907. \fBISSUE\fP \fI\%#31816\fP: (\fI\%vutny\fP) Deprecate or update the \fI\%http://debian.saltstack.com/\fP (refs: \fI\%#33743\fP)
  231908. .IP \(bu 2
  231909. \fBPR\fP \fI\%#33743\fP: (\fI\%vutny\fP) Debian installation docs: drop section about community\-maintained repo
  231910. @ \fI2016\-06\-03 15:29:45 UTC\fP
  231911. .INDENT 2.0
  231912. .IP \(bu 2
  231913. 6c150d840d Merge pull request \fI\%#33743\fP from vutny/drop\-debian\-community\-repo\-doc
  231914. .IP \(bu 2
  231915. 8621f5be54 Debian installation docs: drop section about community\-maintained repository
  231916. .UNINDENT
  231917. .IP \(bu 2
  231918. \fBISSUE\fP \fI\%#33554\fP: (\fI\%jfindlay\fP) local cache missing directories while running test suite (refs: \fI\%#33653\fP)
  231919. .INDENT 2.0
  231920. .IP \(bu 2
  231921. \fBPR\fP \fI\%#33653\fP: (\fI\%cachedout\fP) Create missing jid dir if it doesn\(aqt exist (refs: \fI\%#33719\fP)
  231922. .UNINDENT
  231923. .IP \(bu 2
  231924. \fBPR\fP \fI\%#33654\fP: (\fI\%twangboy\fP) Fix win servermanager
  231925. @ \fI2016\-06\-02 17:55:45 UTC\fP
  231926. .INDENT 2.0
  231927. .IP \(bu 2
  231928. 8a566ff4b9 Merge pull request \fI\%#33654\fP from twangboy/fix_win_servermanager
  231929. .IP \(bu 2
  231930. 6c7b21676a Fix lint and tests
  231931. .IP \(bu 2
  231932. 4775e6bdf0 Add additional params to state
  231933. .IP \(bu 2
  231934. b0af32346d Add additional params to install and remove
  231935. .UNINDENT
  231936. .IP \(bu 2
  231937. \fBISSUE\fP \fI\%#33424\fP: (\fI\%thusoy\fP) Error logging with non\-environment branches in gitfs (refs: \fI\%#33679\fP)
  231938. .IP \(bu 2
  231939. \fBPR\fP \fI\%#33679\fP: (\fI\%terminalmage\fP) Only compile the template contents if they evaluate to True
  231940. @ \fI2016\-06\-02 17:20:00 UTC\fP
  231941. .INDENT 2.0
  231942. .IP \(bu 2
  231943. 996ff56dd4 Merge pull request \fI\%#33679\fP from terminalmage/issue33424
  231944. .IP \(bu 2
  231945. 9da40c4437 Append empty dictionaries for saltenvs with no top file
  231946. .IP \(bu 2
  231947. 5eb1b3ca62 Only compile the template contents if they evaluate to True
  231948. .UNINDENT
  231949. .IP \(bu 2
  231950. \fBPR\fP \fI\%#33685\fP: (\fI\%jfindlay\fP) modules.cp.get_url: add test for \fI\%https://\fP
  231951. @ \fI2016\-06\-01 22:25:41 UTC\fP
  231952. .INDENT 2.0
  231953. .IP \(bu 2
  231954. c8dc70b96a Merge pull request \fI\%#33685\fP from jfindlay/get_url_test
  231955. .IP \(bu 2
  231956. 2b5035fdc0 modules.cp.get_url: add test for \fI\%https://\fP
  231957. .UNINDENT
  231958. .IP \(bu 2
  231959. \fBPR\fP \fI\%#33581\fP: (\fI\%dincamihai\fP) Call zypper refresh after adding/modifying a repository
  231960. @ \fI2016\-06\-01 22:25:11 UTC\fP
  231961. .INDENT 2.0
  231962. .IP \(bu 2
  231963. 5e022ff29c Merge pull request \fI\%#33581\fP from dincamihai/2015.8
  231964. .IP \(bu 2
  231965. 788730ea72 DRY test
  231966. .IP \(bu 2
  231967. 1d3769ccfa Improve zypper_patcher_config looks
  231968. .IP \(bu 2
  231969. 42d8d4195c Assert only gpgautoimport: True works
  231970. .IP \(bu 2
  231971. ced75e8e62 Reverse if conditions and rename variable
  231972. .IP \(bu 2
  231973. 80bfbe5c52 Reduce dicts and lists to one line where possible
  231974. .IP \(bu 2
  231975. 1d5d6d7d60 Update test method names to pass pylint
  231976. .IP \(bu 2
  231977. c7ae5907ee Call zypper refresh after adding/modifying a repository
  231978. .UNINDENT
  231979. .IP \(bu 2
  231980. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP)
  231981. .IP \(bu 2
  231982. \fBPR\fP \fI\%#33681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33599\fP to 2015.8 (refs: \fI\%#34208\fP)
  231983. @ \fI2016\-06\-01 21:14:29 UTC\fP
  231984. .INDENT 2.0
  231985. .IP \(bu 2
  231986. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP)
  231987. .IP \(bu 2
  231988. 069ee15b7c Merge pull request \fI\%#33681\fP from rallytime/bp\-33599
  231989. .IP \(bu 2
  231990. 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)
  231991. .IP \(bu 2
  231992. 4a9b23f03f first go at having requests use streaming for get/put requests
  231993. .UNINDENT
  231994. .IP \(bu 2
  231995. \fBISSUE\fP \fI\%#33393\fP: (\fI\%babilen\fP) pip.installed does not work with ancient pip versions (refs: \fI\%#33396\fP)
  231996. .IP \(bu 2
  231997. \fBPR\fP \fI\%#33396\fP: (\fI\%babilen\fP) Issue 33393
  231998. @ \fI2016\-06\-01 21:12:03 UTC\fP
  231999. .INDENT 2.0
  232000. .IP \(bu 2
  232001. 13537c4891 Merge pull request \fI\%#33396\fP from babilen/issue\-33393
  232002. .IP \(bu 2
  232003. 57e0475cd4 Make pip InstallationError import more robust
  232004. .IP \(bu 2
  232005. 291a3e21fa Remove duplicated code.
  232006. .UNINDENT
  232007. .IP \(bu 2
  232008. \fBPR\fP \fI\%#33652\fP: (\fI\%terminalmage\fP) Lower the log level for failed auths
  232009. @ \fI2016\-06\-01 16:37:09 UTC\fP
  232010. .INDENT 2.0
  232011. .IP \(bu 2
  232012. 7bce4ece1a Merge pull request \fI\%#33652\fP from terminalmage/zh723
  232013. .IP \(bu 2
  232014. 411841603a Lower the log level for failed auths
  232015. .UNINDENT
  232016. .IP \(bu 2
  232017. \fBISSUE\fP \fI\%#33582\fP: (\fI\%waxie\fP) mysql module gives traceback if no working authentication (refs: \fI\%#33615\fP)
  232018. .IP \(bu 2
  232019. \fBPR\fP \fI\%#33615\fP: (\fI\%danslimmon\fP) Fix crash on unconnectable MySQL server (resolves \fI\%#33582\fP)
  232020. @ \fI2016\-05\-31 16:03:51 UTC\fP
  232021. .INDENT 2.0
  232022. .IP \(bu 2
  232023. 504989388a Merge pull request \fI\%#33615\fP from danslimmon/mysql\-traceback\-33582
  232024. .IP \(bu 2
  232025. 180099ae9f Wrote test for broken server connection
  232026. .IP \(bu 2
  232027. c6c3ff02e3 Added some error checking to resolve \fI\%#33582\fP\&.
  232028. .UNINDENT
  232029. .IP \(bu 2
  232030. \fBPR\fP \fI\%#33558\fP: (\fI\%twangboy\fP) Fix win servermanager
  232031. @ \fI2016\-05\-27 22:05:43 UTC\fP
  232032. .INDENT 2.0
  232033. .IP \(bu 2
  232034. b47182e47c Merge pull request \fI\%#33558\fP from twangboy/fix_win_servermanager
  232035. .IP \(bu 2
  232036. 62a6bde0ea Fix comment when already installed
  232037. .IP \(bu 2
  232038. 79bc7195dc Fix unit tests
  232039. .IP \(bu 2
  232040. 56a6f6bb83 Fix changes
  232041. .IP \(bu 2
  232042. 8ebe99ec5e Fix restart_needed
  232043. .IP \(bu 2
  232044. 6e478cbda0 Add restart needed
  232045. .IP \(bu 2
  232046. 72ebf26616 Add missing import
  232047. .IP \(bu 2
  232048. 193583be96 Use dictionary compare for changes in remove
  232049. .IP \(bu 2
  232050. 1ae7dd76c1 Use dictionary compare for changes
  232051. .UNINDENT
  232052. .IP \(bu 2
  232053. \fBISSUE\fP \fI\%#33544\fP: (\fI\%tjuup\fP) Salt 2016.3.0 (Boron) clean_old_jobs fails (refs: \fI\%#33555\fP)
  232054. .IP \(bu 2
  232055. \fBPR\fP \fI\%#33555\fP: (\fI\%cachedout\fP) Fix crashing Maintenence process
  232056. @ \fI2016\-05\-26 19:25:39 UTC\fP
  232057. .INDENT 2.0
  232058. .IP \(bu 2
  232059. 58d89d66e3 Merge pull request \fI\%#33555\fP from cachedout/issue_33544
  232060. .IP \(bu 2
  232061. fe7ee7a470 Fix crashing Maintenence process
  232062. .UNINDENT
  232063. .IP \(bu 2
  232064. \fBPR\fP \fI\%#33501\fP: (\fI\%meaksh\fP) unit tests for rpm.checksum() and zypper.download()
  232065. @ \fI2016\-05\-26 14:34:27 UTC\fP
  232066. .INDENT 2.0
  232067. .IP \(bu 2
  232068. d052908729 Merge pull request \fI\%#33501\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  232069. .IP \(bu 2
  232070. eaaef25c79 lint issue fixed
  232071. .IP \(bu 2
  232072. 6b6febb211 unit tests for rpm.checksum() and zypper.download()
  232073. .UNINDENT
  232074. .IP \(bu 2
  232075. \fBISSUE\fP \fI\%#33319\fP: (\fI\%ghost\fP) Salt interpets jinja syntax in contents pillar (refs: \fI\%#33513\fP)
  232076. .IP \(bu 2
  232077. \fBPR\fP \fI\%#33513\fP: (\fI\%rallytime\fP) Add a section to the jinja docs about escaping jinja
  232078. @ \fI2016\-05\-26 14:24:58 UTC\fP
  232079. .INDENT 2.0
  232080. .IP \(bu 2
  232081. e2d0c4abb1 Merge pull request \fI\%#33513\fP from rallytime/fix\-33319
  232082. .IP \(bu 2
  232083. 81c1471209 Add a section to the jinja docs about escaping jinja
  232084. .UNINDENT
  232085. .IP \(bu 2
  232086. \fBPR\fP \fI\%#33520\fP: (\fI\%jacobhammons\fP) Updated version numbers in the docs for the 2016.3.0 release
  232087. @ \fI2016\-05\-26 14:15:00 UTC\fP
  232088. .INDENT 2.0
  232089. .IP \(bu 2
  232090. fabc15e616 Merge pull request \fI\%#33520\fP from jacobhammons/release\-notes.8
  232091. .IP \(bu 2
  232092. 42e358af7d Updated version numbers in the docs for the 2016.3.0 release
  232093. .UNINDENT
  232094. .IP \(bu 2
  232095. \fBPR\fP \fI\%#33507\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232096. @ \fI2016\-05\-25 19:14:41 UTC\fP
  232097. .INDENT 2.0
  232098. .IP \(bu 2
  232099. 5a6b037cbd Merge pull request \fI\%#33507\fP from rallytime/merge\-2015.8
  232100. .IP \(bu 2
  232101. 03b0c97520 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232102. .IP \(bu 2
  232103. 6f7fda0354 Merge pull request \fI\%#33486\fP from jtand/2015.5
  232104. .INDENT 2.0
  232105. .IP \(bu 2
  232106. d1e210fff8 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  232107. .IP \(bu 2
  232108. ee2ae0ea8a Added docstring examples to glance.image_schema and schema_get
  232109. .IP \(bu 2
  232110. 59e90064e6 modules.swift.head does not have a body. Should not be checked for a docstring right now.
  232111. .UNINDENT
  232112. .IP \(bu 2
  232113. f72ec1479b Merge pull request \fI\%#33482\fP from rallytime/pillar\-opts\-docs
  232114. .INDENT 2.0
  232115. .IP \(bu 2
  232116. 087564528d Add pillar_opts docs to master.rst
  232117. .UNINDENT
  232118. .IP \(bu 2
  232119. dc644b145d Merge pull request \fI\%#33488\fP from rallytime/fix\-18752
  232120. .INDENT 2.0
  232121. .IP \(bu 2
  232122. b0a9f4181f Add docs for the syndic_finger config
  232123. .UNINDENT
  232124. .IP \(bu 2
  232125. a4e84aa7d2 Merge pull request \fI\%#33454\fP from scubahub/2015.5
  232126. .INDENT 2.0
  232127. .IP \(bu 2
  232128. df3c0b8e78 Correct (and make consistent) determination of the test flag.
  232129. .UNINDENT
  232130. .IP \(bu 2
  232131. 3a52ace673 manage account information for pam (\fI\%#33473\fP)
  232132. .UNINDENT
  232133. .IP \(bu 2
  232134. \fBISSUE\fP \fI\%#15252\fP: (\fI\%gravyboat\fP) Standalone minion docs don\(aqt explain what file is being modified. (refs: \fI\%#33503\fP)
  232135. .IP \(bu 2
  232136. \fBPR\fP \fI\%#33503\fP: (\fI\%rallytime\fP) Add docs about minion config file in standalone minion docs
  232137. @ \fI2016\-05\-25 17:23:08 UTC\fP
  232138. .INDENT 2.0
  232139. .IP \(bu 2
  232140. ee76be3b0b Merge pull request \fI\%#33503\fP from rallytime/fix\-15252
  232141. .IP \(bu 2
  232142. cfc07f7641 Add docs about minion config file in standalone minion docs
  232143. .UNINDENT
  232144. .IP \(bu 2
  232145. \fBPR\fP \fI\%#33474\fP: (\fI\%cachedout\fP) Fix diskusage beacon (refs: \fI\%#34103\fP)
  232146. @ \fI2016\-05\-25 17:10:54 UTC\fP
  232147. .INDENT 2.0
  232148. .IP \(bu 2
  232149. e9b648e461 Merge pull request \fI\%#33474\fP from cachedout/issue_29451
  232150. .IP \(bu 2
  232151. aa2bac3a0d Remove debugging
  232152. .IP \(bu 2
  232153. 68d8050cb8 Fix diskusage beacon
  232154. .UNINDENT
  232155. .IP \(bu 2
  232156. \fBPR\fP \fI\%#33465\fP: (\fI\%meaksh\fP) jobs.exit_success allow to check if a job has executed and exit successfully
  232157. @ \fI2016\-05\-25 16:52:53 UTC\fP
  232158. .INDENT 2.0
  232159. .IP \(bu 2
  232160. 3bfb6bf719 Merge pull request \fI\%#33465\fP from meaksh/check\-if\-job\-returns\-successfully\-2015.8
  232161. .IP \(bu 2
  232162. 9deb70fd8e jobs.exit_success() now works parsing the results of jobs.lookup_id()
  232163. .IP \(bu 2
  232164. 7ba40c4f31 jobs.exit_success allow to check if a job has executed and exit successfully
  232165. .IP \(bu 2
  232166. \fBPR\fP \fI\%saltstack/salt\-jenkins#175\fP: (\fI\%justinta\fP) Adding back shade to setup states (refs: \fI\%#33487\fP)
  232167. .UNINDENT
  232168. .IP \(bu 2
  232169. \fBPR\fP \fI\%#33487\fP: (\fI\%justinta\fP) Add docstring examples to glance.py and nova.py [2015.8]
  232170. @ \fI2016\-05\-25 16:47:25 UTC\fP
  232171. .INDENT 2.0
  232172. .IP \(bu 2
  232173. 70eb7b66f3 Merge pull request \fI\%#33487\fP from jtand/glance_doc_fixes
  232174. .IP \(bu 2
  232175. 0b1cae05d9 Added docstring examples to glance methods and nova.list
  232176. .IP \(bu 2
  232177. ebf1256545 Don\(aqt need to check swift.head due to it having no body
  232178. .UNINDENT
  232179. .IP \(bu 2
  232180. \fBISSUE\fP \fI\%#33423\fP: (\fI\%warden\fP) etcd profile doesn\(aqt work when used in master conf file (refs: \fI\%#33481\fP)
  232181. .IP \(bu 2
  232182. \fBPR\fP \fI\%#33481\fP: (\fI\%rallytime\fP) Fix docs about etcd config options and add pillar_opts doc (refs: \fI\%#33482\fP)
  232183. @ \fI2016\-05\-25 16:41:56 UTC\fP
  232184. .INDENT 2.0
  232185. .IP \(bu 2
  232186. 56ea979916 Merge pull request \fI\%#33481\fP from rallytime/fix\-33423
  232187. .IP \(bu 2
  232188. 7fd3e8f361 Fix docs about etcd config options and add pillar_opts doc
  232189. .UNINDENT
  232190. .IP \(bu 2
  232191. \fBISSUE\fP \fI\%#16319\fP: (\fI\%lsh\-0\fP) create a postgresql \fIquery\fP function (refs: \fI\%#33490\fP)
  232192. .IP \(bu 2
  232193. \fBPR\fP \fI\%#33490\fP: (\fI\%rallytime\fP) Document the postgres.psql_query function
  232194. @ \fI2016\-05\-25 16:41:22 UTC\fP
  232195. .INDENT 2.0
  232196. .IP \(bu 2
  232197. 2394cdc4bf Merge pull request \fI\%#33490\fP from rallytime/fix\-16319
  232198. .IP \(bu 2
  232199. 0c5548f9d1 Document the postgres.psql_query function
  232200. .UNINDENT
  232201. .IP \(bu 2
  232202. \fBPR\fP \fI\%#33480\fP: (\fI\%jfindlay\fP) states.service: minor doc updates
  232203. @ \fI2016\-05\-25 16:38:14 UTC\fP
  232204. .INDENT 2.0
  232205. .IP \(bu 2
  232206. ede232f0f1 Merge pull request \fI\%#33480\fP from jfindlay/service_doc
  232207. .IP \(bu 2
  232208. 29c00a1b1b states.service: clarify function description language
  232209. .IP \(bu 2
  232210. 6a9ae09e79 states.service.__virtual__: add load fail reason
  232211. .IP \(bu 2
  232212. \fBPR\fP \fI\%#33483\fP: (\fI\%twangboy\fP) Return full pending computer name (2015.8)
  232213. .UNINDENT
  232214. .IP \(bu 2
  232215. \fBISSUE\fP \fI\%#32444\fP: (\fI\%justindesilets\fP) Feature Request \- jobs runner list by target (refs: \fI\%#33491\fP)
  232216. .INDENT 2.0
  232217. .IP \(bu 2
  232218. \fBPR\fP \fI\%#33499\fP: (\fI\%cachedout\fP) Use six.string_types in jobs runner
  232219. .IP \(bu 2
  232220. \fBPR\fP \fI\%#33491\fP: (\fI\%BlaineAtAffirm\fP) fix jobs.list_jobs failing with search_target (refs: \fI\%#33499\fP)
  232221. .UNINDENT
  232222. .IP \(bu 2
  232223. \fBISSUE\fP \fI\%#32444\fP: (\fI\%justindesilets\fP) Feature Request \- jobs runner list by target (refs: \fI\%#33491\fP)
  232224. .IP \(bu 2
  232225. \fBPR\fP \fI\%#33491\fP: (\fI\%BlaineAtAffirm\fP) fix jobs.list_jobs failing with search_target (refs: \fI\%#33499\fP)
  232226. @ \fI2016\-05\-25 15:11:22 UTC\fP
  232227. .INDENT 2.0
  232228. .IP \(bu 2
  232229. 2e24a04565 Merge pull request \fI\%#33491\fP from BlaineAtAffirm/2015.8
  232230. .IP \(bu 2
  232231. 7599b18995 fix jobs.list_jobs failing with search_target
  232232. .UNINDENT
  232233. .IP \(bu 2
  232234. \fBISSUE\fP \fI\%#33467\fP: (\fI\%beelit94\fP) Orchestration gives exception when a target does not exist (refs: \fI\%#33478\fP)
  232235. .IP \(bu 2
  232236. \fBISSUE\fP \fI\%#32479\fP: (\fI\%ssgward\fP) Orchestration gives exception when a target does not exist (refs: \fI\%#32484\fP, \fI\%#33478\fP)
  232237. .IP \(bu 2
  232238. \fBPR\fP \fI\%#33478\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32484\fP to 2015.8
  232239. @ \fI2016\-05\-24 19:14:23 UTC\fP
  232240. .INDENT 2.0
  232241. .IP \(bu 2
  232242. \fBPR\fP \fI\%#32484\fP: (\fI\%cachedout\fP) Only unsub if we have a jid (refs: \fI\%#33478\fP)
  232243. .IP \(bu 2
  232244. 1861af427e Merge pull request \fI\%#33478\fP from rallytime/bp\-32484
  232245. .IP \(bu 2
  232246. 042f17efa4 Only unsub if we have a jid
  232247. .UNINDENT
  232248. .IP \(bu 2
  232249. \fBPR\fP \fI\%#33457\fP: (\fI\%rallytime\fP) Make doc formatting consistent and use correct versionadded
  232250. @ \fI2016\-05\-24 17:52:34 UTC\fP
  232251. .INDENT 2.0
  232252. .IP \(bu 2
  232253. b8154b678e Merge pull request \fI\%#33457\fP from rallytime/doc\-formatting
  232254. .IP \(bu 2
  232255. 82f8f3efff Make doc formatting consistent and use correct versionadded
  232256. .IP \(bu 2
  232257. \fBPR\fP \fI\%#33477\fP: (\fI\%terminalmage\fP) Don\(aqt allow a "repo" kwarg for pkgrepo.managed
  232258. .UNINDENT
  232259. .IP \(bu 2
  232260. \fBISSUE\fP \fI\%#29451\fP: (\fI\%githubcdr\fP) 2015.8.3 pillar beacons bugged? (refs: \fI\%#33476\fP)
  232261. .INDENT 2.0
  232262. .IP \(bu 2
  232263. \fBPR\fP \fI\%#33476\fP: (\fI\%cachedout\fP) Allow for config entry to be a list in a dict for beacons
  232264. .UNINDENT
  232265. .IP \(bu 2
  232266. \fBPR\fP \fI\%#33469\fP: (\fI\%meaksh\fP) check the RPM signature of zypper pkg.download packages and report errors
  232267. @ \fI2016\-05\-24 16:09:05 UTC\fP
  232268. .INDENT 2.0
  232269. .IP \(bu 2
  232270. 9f56ab4c45 Merge pull request \fI\%#33469\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  232271. .IP \(bu 2
  232272. a65071a6d1 simpler rpm.checksum function
  232273. .IP \(bu 2
  232274. 80fe303e38 Renamed check_sig to checksum and some refactoring
  232275. .IP \(bu 2
  232276. d56e3f4258 bugfix: showing errors when a package download fails using zypper pkg.download
  232277. .IP \(bu 2
  232278. 8a21b9149e check the signature of downloaded RPM files
  232279. .UNINDENT
  232280. .IP \(bu 2
  232281. \fBISSUE\fP \fI\%#33389\fP: (\fI\%DaveQB\fP) Too many hostnames in pillar? (refs: \fI\%#33459\fP)
  232282. .INDENT 2.0
  232283. .IP \(bu 2
  232284. \fBPR\fP \fI\%#33459\fP: (\fI\%rallytime\fP) Add docs about PyYAML\(aqs 1024 character limitations for simple keys
  232285. .IP \(bu 2
  232286. \fBPR\fP \fI\%#33464\fP: (\fI\%isbm\fP) Prevent several minion processes on the same machine
  232287. .IP \(bu 2
  232288. \fBPR\fP \fI\%#33432\fP: (\fI\%dincamihai\fP) Make \-\-gpg\-auto\-import\-keys a global param when calling zypper
  232289. .UNINDENT
  232290. .IP \(bu 2
  232291. \fBISSUE\fP \fI\%#32446\fP: (\fI\%sel\-fish\fP) " salt \(aq*\(aq saltutil.wheel minions.connected " not work (refs: \fI\%#33414\fP)
  232292. .INDENT 2.0
  232293. .IP \(bu 2
  232294. \fBPR\fP \fI\%#33414\fP: (\fI\%rallytime\fP) Fix the saltutil.wheel function and add integration tests
  232295. .UNINDENT
  232296. .IP \(bu 2
  232297. \fBISSUE\fP \fI\%#29286\fP: (\fI\%harlanbarnes\fP) Can\(aqt disable Job Cache? (refs: \fI\%#33328\fP)
  232298. .INDENT 2.0
  232299. .IP \(bu 2
  232300. \fBPR\fP \fI\%#33440\fP: (\fI\%rallytime\fP) Make sure the path we\(aqre removing is present first \- avoid an OSError
  232301. .IP \(bu 2
  232302. \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)
  232303. .UNINDENT
  232304. .IP \(bu 2
  232305. \fBISSUE\fP \fI\%#26913\fP: (\fI\%imchairmanm\fP) manage.bootstrap runner quotation escape bug (refs: \fI\%#33443\fP)
  232306. .INDENT 2.0
  232307. .IP \(bu 2
  232308. \fBPR\fP \fI\%#33443\fP: (\fI\%rallytime\fP) Avoid a syntax error by using " instead of escaped \(aq
  232309. .IP \(bu 2
  232310. \fBPR\fP \fI\%#33436\fP: (\fI\%rmarcinik\fP) Fix virtual function
  232311. .UNINDENT
  232312. .IP \(bu 2
  232313. \fBPR\fP \fI\%#33438\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232314. @ \fI2016\-05\-23 17:50:51 UTC\fP
  232315. .INDENT 2.0
  232316. .IP \(bu 2
  232317. 6e94a4a03b Merge pull request \fI\%#33438\fP from rallytime/merge\-2015.8
  232318. .IP \(bu 2
  232319. 7c41c34528 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232320. .INDENT 2.0
  232321. .IP \(bu 2
  232322. 2cc650965a update 2015.5.11 release notes (\fI\%#33412\fP)
  232323. .IP \(bu 2
  232324. dc8ce2d8b1 Fix traceback in logging for config validation (\fI\%#33386\fP) (\fI\%#33405\fP)
  232325. .UNINDENT
  232326. .UNINDENT
  232327. .IP \(bu 2
  232328. \fBISSUE\fP \fI\%#33395\fP: (\fI\%fmnisme\fP) salt doc error (refs: \fI\%#33421\fP)
  232329. .INDENT 2.0
  232330. .IP \(bu 2
  232331. \fBPR\fP \fI\%#33421\fP: (\fI\%abednarik\fP) Documentation update in file.serialize.
  232332. .IP \(bu 2
  232333. \fBPR\fP \fI\%#33398\fP: (\fI\%lvg01\fP) Fix LVM parameter devices as a pure list. Comma seperated lists are c…
  232334. .IP \(bu 2
  232335. \fBPR\fP \fI\%#33406\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33387\fP to 2015.8
  232336. .IP \(bu 2
  232337. \fBPR\fP \fI\%#33387\fP: (\fI\%tveastman\fP) Spelling correction. (refs: \fI\%#33406\fP)
  232338. .UNINDENT
  232339. .IP \(bu 2
  232340. \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)
  232341. .INDENT 2.0
  232342. .IP \(bu 2
  232343. \fBPR\fP \fI\%#33321\fP: (\fI\%lorengordon\fP) Update windows pkg.[install|remove] error logic
  232344. .UNINDENT
  232345. .IP \(bu 2
  232346. \fBISSUE\fP \fI\%#29252\fP: (\fI\%mitar\fP) reload_modules is not documented for the pkg state (refs: \fI\%#33374\fP)
  232347. .INDENT 2.0
  232348. .IP \(bu 2
  232349. \fBPR\fP \fI\%#33374\fP: (\fI\%rallytime\fP) Add note about reload_modules functionality for pkg.installed
  232350. .UNINDENT
  232351. .IP \(bu 2
  232352. \fBISSUE\fP \fI\%#31430\fP: (\fI\%The\-Loeki\fP) Salt Coding Style regarding absolute_imports (refs: \fI\%#33377\fP)
  232353. .INDENT 2.0
  232354. .IP \(bu 2
  232355. \fBPR\fP \fI\%#33377\fP: (\fI\%rallytime\fP) Add note to absolute_imports practice about __future__ import
  232356. .UNINDENT
  232357. .IP \(bu 2
  232358. \fBISSUE\fP \fI\%#21720\fP: (\fI\%kaithar\fP) Revisiting aliases.file option. (refs: \fI\%#33380\fP)
  232359. .INDENT 2.0
  232360. .IP \(bu 2
  232361. \fBPR\fP \fI\%#33380\fP: (\fI\%rallytime\fP) Document how to set the alias file location for alias state
  232362. .UNINDENT
  232363. .IP \(bu 2
  232364. \fBPR\fP \fI\%#33403\fP: (\fI\%jacobhammons\fP) 2015.8.10 release notes
  232365. @ \fI2016\-05\-20 16:02:50 UTC\fP
  232366. .INDENT 2.0
  232367. .IP \(bu 2
  232368. 3c9def310c Merge pull request \fI\%#33403\fP from jacobhammons/dot10
  232369. .IP \(bu 2
  232370. e850c298a9 2015.8.10 release notes
  232371. .UNINDENT
  232372. .IP \(bu 2
  232373. \fBPR\fP \fI\%#33381\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232374. @ \fI2016\-05\-20 15:58:11 UTC\fP
  232375. .INDENT 2.0
  232376. .IP \(bu 2
  232377. 91059224f6 Merge pull request \fI\%#33381\fP from rallytime/merge\-2015.8
  232378. .IP \(bu 2
  232379. 5aec32b20f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232380. .INDENT 2.0
  232381. .IP \(bu 2
  232382. d15f5e2cef Merge pull request \fI\%#33383\fP from thatch45/2015.5
  232383. .INDENT 2.0
  232384. .IP \(bu 2
  232385. f5ebcba21c restore whitespace
  232386. .IP \(bu 2
  232387. 1d8b289db1 blast, put the try/except int he right place
  232388. .IP \(bu 2
  232389. 081e6c5b83 maintain the fallabck because I am totally sick of this crap
  232390. .UNINDENT
  232391. .IP \(bu 2
  232392. 755acfb97e Improve doc clarity for disable_modules documentation (\fI\%#33379\fP)
  232393. .UNINDENT
  232394. .IP \(bu 2
  232395. 8ef7697806 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232396. .INDENT 2.0
  232397. .IP \(bu 2
  232398. 2b5ad128bf Better YAML syntax error handling (\fI\%#33375\fP)
  232399. .IP \(bu 2
  232400. bb3e98cad2 Merge pull request \fI\%#33372\fP from jacobhammons/release\-update
  232401. .INDENT 2.0
  232402. .IP \(bu 2
  232403. 5ce502160b revved 2015.8 branch to .9 in version selector
  232404. .UNINDENT
  232405. .UNINDENT
  232406. .IP \(bu 2
  232407. \fBPR\fP \fI\%#33386\fP: (\fI\%terminalmage\fP) Fix traceback in logging for config validation (refs: \fI\%#33405\fP)
  232408. .UNINDENT
  232409. .IP \(bu 2
  232410. \fBISSUE\fP \fI\%#27737\fP: (\fI\%mpaolini\fP) name param never mentioned in pillar_ext git documentation (refs: \fI\%#33369\fP)
  232411. .INDENT 2.0
  232412. .IP \(bu 2
  232413. \fBPR\fP \fI\%#33369\fP: (\fI\%rallytime\fP) Add note about name parameter in git_pillar docs
  232414. .UNINDENT
  232415. .IP \(bu 2
  232416. \fBISSUE\fP \fI\%#32913\fP: (\fI\%hrumph\fP) Possible problem with salt.states.pkg.installed documentation (refs: \fI\%#33362\fP)
  232417. .INDENT 2.0
  232418. .IP \(bu 2
  232419. \fBPR\fP \fI\%#33362\fP: (\fI\%rallytime\fP) Add win_pkg to list of modules that support "version" in pkg.installed
  232420. .UNINDENT
  232421. .IP \(bu 2
  232422. \fBISSUE\fP \fI\%#27779\fP: (\fI\%jbouse\fP) [Doc] Hipchat returner documentation update (refs: \fI\%#33365\fP)
  232423. .INDENT 2.0
  232424. .IP \(bu 2
  232425. \fBPR\fP \fI\%#33365\fP: (\fI\%rallytime\fP) Add note to docs about api settings for Hipchat API v2
  232426. .IP \(bu 2
  232427. \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)
  232428. .IP \(bu 2
  232429. \fBPR\fP \fI\%#820\fP: (\fI\%dcolish\fP) Refactor of cli parsers, normalize around conf_file (refs: #\(gasaltstack/salt\-bootstrap#828\(ga_)
  232430. .IP \(bu 2
  232431. \fBPR\fP \fI\%#32857\fP: (\fI\%vutny\fP) Add initscripts, SystemD service units and environment files for Debian
  232432. .UNINDENT
  232433. .IP \(bu 2
  232434. \fBPR\fP \fI\%#33370\fP: (\fI\%jacobhammons\fP) Update docs version to 2015.8.9
  232435. @ \fI2016\-05\-19 19:59:15 UTC\fP
  232436. .INDENT 2.0
  232437. .IP \(bu 2
  232438. 80f52a658e Merge pull request \fI\%#33370\fP from jacobhammons/2015.8.9
  232439. .IP \(bu 2
  232440. 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
  232441. .UNINDENT
  232442. .IP \(bu 2
  232443. \fBPR\fP \fI\%#33366\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232444. @ \fI2016\-05\-19 19:41:40 UTC\fP
  232445. .INDENT 2.0
  232446. .IP \(bu 2
  232447. 3e5689abbf Merge pull request \fI\%#33366\fP from rallytime/merge\-2015.8
  232448. .IP \(bu 2
  232449. 52b3128678 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232450. .IP \(bu 2
  232451. 55be0abf4d Expanded documentation for boto_elb state and module (\fI\%#33341\fP)
  232452. .UNINDENT
  232453. .IP \(bu 2
  232454. \fBISSUE\fP \fI\%#33313\fP: (\fI\%morganwillcock\fP) pkg.py: pkgs parameter documented as not supported on Windows (refs: \fI\%#33361\fP)
  232455. .IP \(bu 2
  232456. \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)
  232457. .INDENT 2.0
  232458. .IP \(bu 2
  232459. \fBPR\fP \fI\%#33361\fP: (\fI\%rallytime\fP) Remove mentions of windows not supporting pkgs param
  232460. .UNINDENT
  232461. .IP \(bu 2
  232462. \fBISSUE\fP \fI\%#29286\fP: (\fI\%harlanbarnes\fP) Can\(aqt disable Job Cache? (refs: \fI\%#33328\fP)
  232463. .INDENT 2.0
  232464. .IP \(bu 2
  232465. \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)
  232466. .UNINDENT
  232467. .IP \(bu 2
  232468. \fBISSUE\fP \fI\%#33295\fP: (\fI\%andrew\-vant\fP) Linux Mint service module not correctly detected. (refs: \fI\%#33359\fP)
  232469. .INDENT 2.0
  232470. .IP \(bu 2
  232471. \fBPR\fP \fI\%#33359\fP: (\fI\%terminalmage\fP) Properly detect newer Linux Mint distros
  232472. .UNINDENT
  232473. .IP \(bu 2
  232474. \fBISSUE\fP \fI\%#32260\fP: (\fI\%jagguli\fP) git.latest UnboundLocalError: local variable \(aqdesired_upstream\(aq referenced before assignmen (refs: \fI\%#33340\fP)
  232475. .INDENT 2.0
  232476. .IP \(bu 2
  232477. \fBPR\fP \fI\%#33340\fP: (\fI\%terminalmage\fP) Fix UnboundLocalError in git.latest
  232478. .IP \(bu 2
  232479. \fBPR\fP \fI\%#33339\fP: (\fI\%phistrom\fP) states.boto_elb Describe parameters in register_instances function
  232480. .IP \(bu 2
  232481. \fBPR\fP \fI\%#33347\fP: (\fI\%rallytime\fP) Fix some link errors in the test writing tutorial
  232482. .IP \(bu 2
  232483. \fBPR\fP \fI\%#33312\fP: (\fI\%twangboy\fP) Fix network.managed for windows
  232484. .IP \(bu 2
  232485. \fBPR\fP \fI\%#33327\fP: (\fI\%cro\fP) Bp 28467 calm mine
  232486. .IP \(bu 2
  232487. \fBPR\fP \fI\%#28467\fP: (\fI\%jodv\fP) Make mine.update more manageable for large environments (refs: \fI\%#33327\fP)
  232488. .IP \(bu 2
  232489. \fBPR\fP \fI\%#33334\fP: (\fI\%jfindlay\fP) import ps from psutil_compat in beacons
  232490. .UNINDENT
  232491. .IP \(bu 2
  232492. \fBISSUE\fP \fI\%#21520\fP: (\fI\%jfindlay\fP) sudo.salt_call is broken (refs: \fI\%#25089\fP)
  232493. .INDENT 2.0
  232494. .IP \(bu 2
  232495. \fBPR\fP \fI\%#33318\fP: (\fI\%jfindlay\fP) remove redundant, incorrect sudo_runas config documentation
  232496. .IP \(bu 2
  232497. \fBPR\fP \fI\%#25089\fP: (\fI\%jfindlay\fP) fix minion sudo (refs: \fI\%#33318\fP)
  232498. .IP \(bu 2
  232499. \fBPR\fP \fI\%#22480\fP: (\fI\%thatch45\fP) Add sudo user docs into salt (refs: \fI\%#33318\fP)
  232500. .IP \(bu 2
  232501. \fBPR\fP \fI\%#20226\fP: (\fI\%thatch45\fP) Allow sudo priv escalation (refs: \fI\%#25089\fP, \fI\%#33318\fP)
  232502. .UNINDENT
  232503. .IP \(bu 2
  232504. \fBISSUE\fP \fI\%#33323\fP: (\fI\%terminalmage\fP) Overeager globbing in systemd.py for sysv service detection (refs: \fI\%#33324\fP)
  232505. .INDENT 2.0
  232506. .IP \(bu 2
  232507. \fBPR\fP \fI\%#33324\fP: (\fI\%terminalmage\fP) Disambiguate non\-exact matches when checking if sysv service is enabled
  232508. .UNINDENT
  232509. .IP \(bu 2
  232510. \fBISSUE\fP \fI\%#30130\fP: (\fI\%dreampuf\fP) Non\-root minion not work with state.sls module (refs: \fI\%#33325\fP)
  232511. .INDENT 2.0
  232512. .IP \(bu 2
  232513. \fBPR\fP \fI\%#33325\fP: (\fI\%cachedout\fP) Allow concurrency mode in state runs if using sudo
  232514. .UNINDENT
  232515. .IP \(bu 2
  232516. \fBISSUE\fP \fI\%#29674\fP: (\fI\%jakehilton\fP) Salt Master Hang (refs: \fI\%#33333\fP)
  232517. .INDENT 2.0
  232518. .IP \(bu 2
  232519. \fBPR\fP \fI\%#33333\fP: (\fI\%DmitryKuzmenko\fP) Fix master hanging after a request from minion with removed key.
  232520. .UNINDENT
  232521. .IP \(bu 2
  232522. \fBISSUE\fP \fI\%#33266\fP: (\fI\%Timandes\fP) Method \fIgrains.items\fP returns unexpected \fImanufacturer\fP information (refs: \fI\%#33302\fP)
  232523. .INDENT 2.0
  232524. .IP \(bu 2
  232525. \fBPR\fP \fI\%#33306\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33302\fP to 2015.8
  232526. .IP \(bu 2
  232527. \fBPR\fP \fI\%#33302\fP: (\fI\%The\-Loeki\fP) Cleanup comments in smbios.get output (fixes \fI\%#33266\fP) (refs: \fI\%#33306\fP)
  232528. .UNINDENT
  232529. .IP \(bu 2
  232530. \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)
  232531. .INDENT 2.0
  232532. .IP \(bu 2
  232533. \fBPR\fP \fI\%#33314\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP)
  232534. .IP \(bu 2
  232535. \fBPR\fP \fI\%#33301\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP) (refs: \fI\%#33314\fP)
  232536. .IP \(bu 2
  232537. \fBPR\fP \fI\%#28325\fP: (\fI\%l13t\fP) Fix issue wiith \-\-match\-set option. \fI\%#23643\fP (refs: \fI\%#33314\fP)
  232538. .UNINDENT
  232539. .IP \(bu 2
  232540. \fBPR\fP \fI\%#33308\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232541. @ \fI2016\-05\-17 19:26:05 UTC\fP
  232542. .INDENT 2.0
  232543. .IP \(bu 2
  232544. d0ed1616b0 Merge pull request \fI\%#33308\fP from rallytime/merge\-2015.8
  232545. .IP \(bu 2
  232546. 1c43a62f85 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232547. .INDENT 2.0
  232548. .IP \(bu 2
  232549. 9b42a05519 Added some more docs for master and minion config settings (\fI\%#33292\fP)
  232550. .UNINDENT
  232551. .IP \(bu 2
  232552. 5004d2fa61 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232553. .IP \(bu 2
  232554. 8acee5e06c Fix iptables \-\-match\-set (\fI\%#23643\fP) (\fI\%#33301\fP)
  232555. .IP \(bu 2
  232556. 757ef20a31 fix "loose" typo (\fI\%#33290\fP)
  232557. .IP \(bu 2
  232558. b7d98da64d Add auth_tries config option to minion.rst docs (\fI\%#33287\fP)
  232559. .IP \(bu 2
  232560. 061851bcbf Document minion_id_caching config value (\fI\%#33282\fP)
  232561. .UNINDENT
  232562. .UNINDENT
  232563. .SS Salt 2015.8.12 Release Notes
  232564. .sp
  232565. Version 2015.8.12 is a bugfix release for 2015.8.0\&.
  232566. .SS Statistics
  232567. .INDENT 0.0
  232568. .IP \(bu 2
  232569. Total Merges: \fB58\fP
  232570. .IP \(bu 2
  232571. Total Issue References: \fB43\fP
  232572. .IP \(bu 2
  232573. Total PR References: \fB117\fP
  232574. .IP \(bu 2
  232575. 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)
  232576. .UNINDENT
  232577. .SS Changelog for v2015.8.11..v2015.8.12
  232578. .sp
  232579. \fIGenerated at: 2018\-05\-28 01:19:12 UTC\fP
  232580. .INDENT 0.0
  232581. .IP \(bu 2
  232582. \fBPR\fP \fI\%#35614\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232583. .IP \(bu 2
  232584. \fBPR\fP \fI\%#35611\fP: (\fI\%rallytime\fP) Everything in the sample master config file should be commented out
  232585. .IP \(bu 2
  232586. \fBISSUE\fP \fI\%#35384\fP: (\fI\%ghost\fP) The unless requisite stops at first successful command (refs: \fI\%#35569\fP)
  232587. .INDENT 2.0
  232588. .IP \(bu 2
  232589. \fBPR\fP \fI\%saltstack/salt#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  232590. .UNINDENT
  232591. .IP \(bu 2
  232592. \fBPR\fP \fI\%#35569\fP: (\fI\%rallytime\fP) Write test for multiple unless commands where 1st cmd passes and 2nd fails
  232593. @ \fI2016\-08\-19 19:28:01 UTC\fP
  232594. .INDENT 2.0
  232595. .IP \(bu 2
  232596. \fBPR\fP \fI\%#35566\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35545\fP to 2015.8 (refs: \fI\%#35569\fP)
  232597. .IP \(bu 2
  232598. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35569\fP, \fI\%#35566\fP)
  232599. .IP \(bu 2
  232600. c9070c212f Merge pull request \fI\%#35569\fP from rallytime/test\-for\-35384
  232601. .IP \(bu 2
  232602. 30f42d5352 Write test for multiple unless commands where 1st cmd passes and 2nd fails
  232603. .IP \(bu 2
  232604. \fBPR\fP \fI\%#35600\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232605. .IP \(bu 2
  232606. \fBPR\fP \fI\%#35599\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232607. .IP \(bu 2
  232608. \fBPR\fP \fI\%#35584\fP: (\fI\%terminalmage\fP) Update linux_sysctl tests to reflect new context key
  232609. .IP \(bu 2
  232610. \fBPR\fP \fI\%#35575\fP: (\fI\%terminalmage\fP) Add warning about AWS flagging of nmap usage
  232611. .UNINDENT
  232612. .IP \(bu 2
  232613. \fBPR\fP \fI\%#35577\fP: (\fI\%terminalmage\fP) Unit file changes for 2015.8.12, 2016.3.3
  232614. @ \fI2016\-08\-18 20:36:25 UTC\fP
  232615. .INDENT 2.0
  232616. .IP \(bu 2
  232617. 26a7f7d9f7 Merge pull request \fI\%#35577\fP from terminalmage/unit\-file\-changes
  232618. .IP \(bu 2
  232619. 6cb0fb47f3 pkg/salt\-syndic.service: change Type to notify
  232620. .IP \(bu 2
  232621. 175ba99e0e pkg/salt\-minion.service: remove KillMode, change Type to notify
  232622. .IP \(bu 2
  232623. 540ec28954 pkg/salt\-master.service: remove KillMode
  232624. .IP \(bu 2
  232625. 69fad464ab pkg/salt\-api.service: change Type to notify
  232626. .IP \(bu 2
  232627. \fBPR\fP \fI\%saltstack/salt#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  232628. .IP \(bu 2
  232629. \fBPR\fP \fI\%#35566\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35545\fP to 2015.8 (refs: \fI\%#35569\fP)
  232630. .IP \(bu 2
  232631. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35569\fP, \fI\%#35566\fP)
  232632. .IP \(bu 2
  232633. \fBPR\fP \fI\%#35492\fP: (\fI\%terminalmage\fP) Clarify config.get docstring
  232634. .UNINDENT
  232635. .IP \(bu 2
  232636. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  232637. .IP \(bu 2
  232638. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  232639. .IP \(bu 2
  232640. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud
  232641. @ \fI2016\-08\-18 13:32:22 UTC\fP
  232642. .INDENT 2.0
  232643. .IP \(bu 2
  232644. 205d8e2e7b Merge pull request \fI\%#35483\fP from gtmanfred/2015.8
  232645. .IP \(bu 2
  232646. 2d8ec1e9db use __opts__ in salt.utils.cloud for cache functions
  232647. .UNINDENT
  232648. .IP \(bu 2
  232649. \fBPR\fP \fI\%#35546\fP: (\fI\%whiteinge\fP) Salt api eauth fail gracefully
  232650. @ \fI2016\-08\-18 07:21:55 UTC\fP
  232651. .INDENT 2.0
  232652. .IP \(bu 2
  232653. 70fa2d0901 Merge pull request \fI\%#35546\fP from whiteinge/salt\-api\-eauth\-fail\-gracefully
  232654. .IP \(bu 2
  232655. eb3574adae Don\(aqt fail hard if the user\(aqs permissions cannot be found
  232656. .IP \(bu 2
  232657. ec597bd54c Change groups check in token to look for truthy values
  232658. .IP \(bu 2
  232659. \fBPR\fP \fI\%#35525\fP: (\fI\%UtahDave\fP) add missing glob import
  232660. .IP \(bu 2
  232661. \fBPR\fP \fI\%#35540\fP: (\fI\%rallytime\fP) Whitespace fix for 2015.8
  232662. .UNINDENT
  232663. .IP \(bu 2
  232664. \fBISSUE\fP \fI\%#33803\fP: (\fI\%dmurphy18\fP) systemd notification is not fully supported by Salt (refs: \fI\%#35510\fP)
  232665. .IP \(bu 2
  232666. \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)
  232667. .IP \(bu 2
  232668. \fBPR\fP \fI\%#35510\fP: (\fI\%terminalmage\fP) Better systemd integration
  232669. @ \fI2016\-08\-17 18:54:11 UTC\fP
  232670. .INDENT 2.0
  232671. .IP \(bu 2
  232672. fd3274c800 Merge pull request \fI\%#35510\fP from terminalmage/issue33516
  232673. .IP \(bu 2
  232674. 5b5f19d269 Update zypper unit test to reflect call to config.get
  232675. .IP \(bu 2
  232676. 2730edb516 Add note about systemd\-run usage in package states
  232677. .IP \(bu 2
  232678. e2d9e87e10 salt/modules/systemd.py: Use systemd\-run \-\-scope where needed
  232679. .IP \(bu 2
  232680. 22919a25bc Notify systemd on salt\-api start
  232681. .IP \(bu 2
  232682. a40b3f8a08 Notify systemd on syndic start
  232683. .IP \(bu 2
  232684. e847d3af30 Notify systemd on minion start
  232685. .IP \(bu 2
  232686. d648887afc salt/modules/zypper.py: Use systemd\-run \-\-scope where needed
  232687. .IP \(bu 2
  232688. 2e17976722 salt/modules/yumpkg.py: Use systemd\-run \-\-scope where needed
  232689. .IP \(bu 2
  232690. 86b59c1e74 salt/modules/pacman.py: Use systemd\-run \-\-scope where needed
  232691. .IP \(bu 2
  232692. e32d92c6d5 salt/modules/ebuild.py: Use systemd\-run \-\-scope where needed
  232693. .IP \(bu 2
  232694. c7d21d3ae3 salt/modules/aptpkg.py: Use systemd\-run \-\-scope where needed
  232695. .IP \(bu 2
  232696. f83e0ef242 Add unit tests for salt.utils.systemd
  232697. .IP \(bu 2
  232698. 5b12f030c6 Add func to salt.utils.systemd to tell if scopes are available
  232699. .IP \(bu 2
  232700. \fBPR\fP \fI\%#35513\fP: (\fI\%cachedout\fP) Might be a good idea to be able to download the software we make
  232701. .UNINDENT
  232702. .IP \(bu 2
  232703. \fBPR\fP \fI\%#35302\fP: (\fI\%Ch3LL\fP) Add job cache test
  232704. @ \fI2016\-08\-17 10:45:28 UTC\fP
  232705. .INDENT 2.0
  232706. .IP \(bu 2
  232707. 9f87081cef Merge pull request \fI\%#35302\fP from Ch3LL/add_job_cache_test
  232708. .IP \(bu 2
  232709. ccb2a5cadf remove unused imports
  232710. .IP \(bu 2
  232711. 512ae81dfd remove TMP and add integration.TMP
  232712. .IP \(bu 2
  232713. c9b7c3cf80 need to add returners option in other places
  232714. .IP \(bu 2
  232715. 7316df7a02 fix pylint
  232716. .IP \(bu 2
  232717. 50a4f0fe6a fix comment
  232718. .IP \(bu 2
  232719. 6837acf742 add job cache integration tests
  232720. .UNINDENT
  232721. .IP \(bu 2
  232722. \fBPR\fP \fI\%#35512\fP: (\fI\%cachedout\fP) Fixup 35419
  232723. @ \fI2016\-08\-17 10:11:17 UTC\fP
  232724. .INDENT 2.0
  232725. .IP \(bu 2
  232726. 1c82c6bee5 Merge pull request \fI\%#35512\fP from cachedout/fixup_35419
  232727. .IP \(bu 2
  232728. 253662541a Fix import
  232729. .IP \(bu 2
  232730. f16a30786b Fixes consul.agent_service_register which was broken for registering service checks.
  232731. .UNINDENT
  232732. .IP \(bu 2
  232733. \fBPR\fP \fI\%#35497\fP: (\fI\%deepakhj\fP) Fixes spacing in requirements files
  232734. @ \fI2016\-08\-17 09:34:15 UTC\fP
  232735. .INDENT 2.0
  232736. .IP \(bu 2
  232737. e1a373fa4c Merge pull request \fI\%#35497\fP from deepakhj/2015.8
  232738. .IP \(bu 2
  232739. 685db4ab88 Fix spacing
  232740. .UNINDENT
  232741. .IP \(bu 2
  232742. \fBPR\fP \fI\%#35508\fP: (\fI\%terminalmage\fP) Add Carbon to versionadded for git.diff
  232743. @ \fI2016\-08\-17 06:17:12 UTC\fP
  232744. .INDENT 2.0
  232745. .IP \(bu 2
  232746. 4048255ed6 Merge pull request \fI\%#35508\fP from terminalmage/update\-docstring
  232747. .IP \(bu 2
  232748. 67c945fce0 Add Carbon to versionadded for git.diff
  232749. .IP \(bu 2
  232750. \fBPR\fP \fI\%#35486\fP: (\fI\%rallytime\fP) Update bootstrap script to latest stable (2016.08.16)
  232751. .UNINDENT
  232752. .IP \(bu 2
  232753. \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)
  232754. .IP \(bu 2
  232755. \fBPR\fP \fI\%#35413\fP: (\fI\%cachedout\fP) Resolve path issues with cp.push
  232756. @ \fI2016\-08\-16 16:40:39 UTC\fP
  232757. .INDENT 2.0
  232758. .IP \(bu 2
  232759. 240fc12863 Merge pull request \fI\%#35413\fP from cachedout/issue_35296
  232760. .IP \(bu 2
  232761. fb8a12d677 Fix silly error
  232762. .IP \(bu 2
  232763. 3646cf1afa Additional checks on master and integration test
  232764. .IP \(bu 2
  232765. 09efde7634 Splat the list into os.path.join
  232766. .IP \(bu 2
  232767. fc0d5878bc Set file_recv on test master
  232768. .IP \(bu 2
  232769. 81c4d136c5 Transition file push paths to lists
  232770. .UNINDENT
  232771. .IP \(bu 2
  232772. \fBISSUE\fP \fI\%saltstack/salt#35380\fP: (\fI\%anlutro\fP) salt\-ssh with sudo stopped working (refs: \fI\%#35476\fP)
  232773. .IP \(bu 2
  232774. \fBPR\fP \fI\%#35476\fP: (\fI\%cachedout\fP) Fixup SSH bug where sudo without sudo user would break
  232775. @ \fI2016\-08\-16 15:41:25 UTC\fP
  232776. .INDENT 2.0
  232777. .IP \(bu 2
  232778. c3319b2a8b Merge pull request \fI\%#35476\fP from cachedout/issue_35380
  232779. .IP \(bu 2
  232780. c05fcf33d1 Fixup SSH bug where sudo without sudo user would break
  232781. .UNINDENT
  232782. .IP \(bu 2
  232783. \fBPR\fP \fI\%#35471\fP: (\fI\%terminalmage\fP) win_pkg: Fix traceback when package is not installed
  232784. @ \fI2016\-08\-16 02:02:00 UTC\fP
  232785. .INDENT 2.0
  232786. .IP \(bu 2
  232787. 004778c966 Merge pull request \fI\%#35471\fP from terminalmage/issue34479
  232788. .IP \(bu 2
  232789. e243c63e43 win_pkg: Fix traceback when package is not installed
  232790. .UNINDENT
  232791. .IP \(bu 2
  232792. \fBPR\fP \fI\%#35448\fP: (\fI\%isbm\fP) Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on …
  232793. @ \fI2016\-08\-16 01:39:43 UTC\fP
  232794. .INDENT 2.0
  232795. .IP \(bu 2
  232796. 5c9428c32d Merge pull request \fI\%#35448\fP from isbm/isbm\-zypper\-106\-fix
  232797. .IP \(bu 2
  232798. dd82e6a848 Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on unavailable repos
  232799. .UNINDENT
  232800. .IP \(bu 2
  232801. \fBPR\fP \fI\%#35451\fP: (\fI\%isbm\fP) Bugfix: zypper mod repo unchanged
  232802. @ \fI2016\-08\-16 01:38:25 UTC\fP
  232803. .INDENT 2.0
  232804. .IP \(bu 2
  232805. 1473474b04 Merge pull request \fI\%#35451\fP from isbm/isbm\-zypper\-mod_repo\-unchanged
  232806. .IP \(bu 2
  232807. 8790197d86 Fix Unit test for suppressing the exception removal on non\-modified repos
  232808. .IP \(bu 2
  232809. 3f00c6997a Remove zypper\(aqs raise exception if mod_repo has no arguments and/or no changes
  232810. .UNINDENT
  232811. .IP \(bu 2
  232812. \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)
  232813. .IP \(bu 2
  232814. \fBISSUE\fP \fI\%#34279\fP: (\fI\%vmadura\fP) Salt 2016.3.1 \- Master Side Pillar Cache (backend: Disk) never Expires. (refs: \fI\%#35453\fP)
  232815. .IP \(bu 2
  232816. \fBPR\fP \fI\%#35453\fP: (\fI\%theothergraham\fP) fixes \fI\%#34279\fP \- disk cache ttl expiry
  232817. @ \fI2016\-08\-16 01:34:33 UTC\fP
  232818. .INDENT 2.0
  232819. .IP \(bu 2
  232820. a8c4f17f50 Merge pull request \fI\%#35453\fP from theothergraham/fix_CacheDisk
  232821. .IP \(bu 2
  232822. ae5b233d51 fixes \fI\%#34279\fP
  232823. .UNINDENT
  232824. .IP \(bu 2
  232825. \fBPR\fP \fI\%#35459\fP: (\fI\%thatch45\fP) Ensure that output for salt\-ssh gets back
  232826. @ \fI2016\-08\-16 01:29:16 UTC\fP
  232827. .INDENT 2.0
  232828. .IP \(bu 2
  232829. d8c35b5260 Merge pull request \fI\%#35459\fP from thatch45/shim_fix
  232830. .IP \(bu 2
  232831. 10037b00cb Some environments refuse to return the command output
  232832. .IP \(bu 2
  232833. \fBPR\fP \fI\%#35460\fP: (\fI\%rallytime\fP) [2015.8] Update bootstrap script to latest stable (2016.08.15)
  232834. .UNINDENT
  232835. .IP \(bu 2
  232836. \fBISSUE\fP \fI\%saltstack/salt#35010\fP: (\fI\%vchav73\fP) cp.push_dir returns incorrect result for non\-existent directories (refs: \fI\%#35442\fP)
  232837. .INDENT 2.0
  232838. .IP \(bu 2
  232839. \fBPR\fP \fI\%#35442\fP: (\fI\%cachedout\fP) Fix cp.push_dir pushing empty dirs
  232840. .UNINDENT
  232841. .IP \(bu 2
  232842. \fBISSUE\fP \fI\%saltstack/salt#35387\fP: (\fI\%mzealey\fP) Document reload_grains and reload_pillar (refs: \fI\%#35436\fP)
  232843. .INDENT 2.0
  232844. .IP \(bu 2
  232845. \fBPR\fP \fI\%#35436\fP: (\fI\%cachedout\fP) Minor doc fixup
  232846. .UNINDENT
  232847. .IP \(bu 2
  232848. \fBISSUE\fP \fI\%saltstack/salt#35121\fP: (\fI\%sjorge\fP) file.append always results in change (refs: \fI\%#35132\fP)
  232849. .IP \(bu 2
  232850. \fBPR\fP \fI\%#35132\fP: (\fI\%sjorge\fP) fixes , causing lots of mayham (onchange) with 2016.3.2 for me
  232851. @ \fI2016\-08\-15 07:11:22 UTC\fP
  232852. .INDENT 2.0
  232853. .IP \(bu 2
  232854. a0b128a85a Merge pull request \fI\%#35132\fP from sjorge/2015.8\-35121
  232855. .IP \(bu 2
  232856. 5cb38c8ae0 switch to fpread().splitlines(), as per @lorengordon suggestion
  232857. .IP \(bu 2
  232858. 634f1dded5 fixes \fI\%#35121\fP, causing lots of mayham (onchange) with 2016.3.2 for me
  232859. .IP \(bu 2
  232860. \fBPR\fP \fI\%saltstack/salt#34573\fP: (\fI\%cedwards\fP) Update freebsd.rst (refs: \fI\%#35394\fP)
  232861. .IP \(bu 2
  232862. \fBPR\fP \fI\%#35394\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34573\fP to 2015.8
  232863. .IP \(bu 2
  232864. \fBPR\fP \fI\%#34573\fP: (\fI\%cedwards\fP) Update freebsd.rst (refs: \fI\%#35394\fP)
  232865. .IP \(bu 2
  232866. \fBPR\fP \fI\%#35359\fP: (\fI\%terminalmage\fP) Clean up open filehandles
  232867. .UNINDENT
  232868. .IP \(bu 2
  232869. \fBPR\fP \fI\%#35339\fP: (\fI\%isbm\fP) Bugfix: Prevent continuous restart, if a dependency wasn\(aqt installed
  232870. @ \fI2016\-08\-11 16:15:17 UTC\fP
  232871. .INDENT 2.0
  232872. .IP \(bu 2
  232873. 9ea7a34c30 Merge pull request \fI\%#35339\fP from isbm/isbm\-2015.8\-minion\-importerror\-fix
  232874. .IP \(bu 2
  232875. 12af60b7be Fix continuous minion restart if a dependency wasn\(aqt installed
  232876. .UNINDENT
  232877. .IP \(bu 2
  232878. \fBPR\fP \fI\%#35357\fP: (\fI\%twangboy\fP) Fix file.recurse with clean: True on Windows (2015.8)
  232879. @ \fI2016\-08\-11 00:44:14 UTC\fP
  232880. .INDENT 2.0
  232881. .IP \(bu 2
  232882. fd9b05ace4 Merge pull request \fI\%#35357\fP from twangboy/file.recurse.clean.2015.8
  232883. .IP \(bu 2
  232884. d328ec0157 Fix file.recurse with clean: True
  232885. .UNINDENT
  232886. .IP \(bu 2
  232887. \fBPR\fP \fI\%#35323\fP: (\fI\%thatch45\fP) Fix issue with bad error check in salt\-vt
  232888. @ \fI2016\-08\-10 11:33:49 UTC\fP
  232889. .INDENT 2.0
  232890. .IP \(bu 2
  232891. 4618b433e9 Merge pull request \fI\%#35323\fP from thatch45/ssh_crazy
  232892. .IP \(bu 2
  232893. 8a5b47b5d7 Collect all error data from the wfuncs call
  232894. .IP \(bu 2
  232895. 11864c31b7 supress a stack trace to show clean ssh error
  232896. .IP \(bu 2
  232897. 9fbfa282fa wow this solves an issue!
  232898. .UNINDENT
  232899. .IP \(bu 2
  232900. \fBPR\fP \fI\%#35325\fP: (\fI\%kev009\fP) Fix freebsd netstat route on fbsd 10+
  232901. @ \fI2016\-08\-10 11:33:12 UTC\fP
  232902. .INDENT 2.0
  232903. .IP \(bu 2
  232904. cfae862972 Merge pull request \fI\%#35325\fP from kev009/fbsd\-netstat\-route
  232905. .IP \(bu 2
  232906. 0d49dd3c29 Fix fbsd netstat route on fbsd 10+
  232907. .UNINDENT
  232908. .IP \(bu 2
  232909. \fBISSUE\fP \fI\%#35264\fP: (\fI\%bobrik\fP) ssh_known_hosts.present is not idempotent in test=true with port (refs: \fI\%#35301\fP)
  232910. .INDENT 2.0
  232911. .IP \(bu 2
  232912. \fBPR\fP \fI\%#35301\fP: (\fI\%bobrik\fP) Pass port to ssh.check_known_host, closes \fI\%#35264\fP
  232913. .UNINDENT
  232914. .IP \(bu 2
  232915. \fBISSUE\fP \fI\%#34945\fP: (\fI\%babilen\fP) file.recurse breaks directory permissions (refs: \fI\%#35309\fP)
  232916. .INDENT 2.0
  232917. .IP \(bu 2
  232918. \fBPR\fP \fI\%#35309\fP: (\fI\%terminalmage\fP) file.recurse: Do not convert octal mode string to int
  232919. .UNINDENT
  232920. .IP \(bu 2
  232921. \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)
  232922. .IP \(bu 2
  232923. \fBPR\fP \fI\%#35290\fP: (\fI\%terminalmage\fP) Resolve a couple bugs in orchestration output
  232924. @ \fI2016\-08\-09 15:27:00 UTC\fP
  232925. .INDENT 2.0
  232926. .IP \(bu 2
  232927. 2efc1b333b Merge pull request \fI\%#35290\fP from terminalmage/issue35051
  232928. .IP \(bu 2
  232929. d621aa7b61 Update runner/wheel unit tests to reflect new key in ret dict
  232930. .IP \(bu 2
  232931. 90c12a9c7b Add __orchestration__ key to orch returns for runner/wheel funcs
  232932. .IP \(bu 2
  232933. 7b8c3b86e7 Suppress error about invalid changes data for orchestration jobs
  232934. .IP \(bu 2
  232935. 54a1704d6c Suppress event for wheel/runner funcs executed from orchestration
  232936. .IP \(bu 2
  232937. f409f62bf2 Accept print_event option in WheelClient.cmd()
  232938. .IP \(bu 2
  232939. b42b25ccce Add cmd func for RunnerClient
  232940. .IP \(bu 2
  232941. 480065fe00 Add print_event option to client mixins
  232942. .UNINDENT
  232943. .IP \(bu 2
  232944. \fBISSUE\fP \fI\%#31074\fP: (\fI\%turtletraction\fP) salt\-ssh sudo_user execution not running as sudo_user (refs: \fI\%#35211\fP)
  232945. .IP \(bu 2
  232946. \fBPR\fP \fI\%#35211\fP: (\fI\%cachedout\fP) Alternative sudo users for salt\-ssh
  232947. @ \fI2016\-08\-08 15:40:55 UTC\fP
  232948. .INDENT 2.0
  232949. .IP \(bu 2
  232950. f8158124d5 Merge pull request \fI\%#35211\fP from cachedout/issue_31074
  232951. .IP \(bu 2
  232952. 6f53232e6d Better error handling and a workaround for group mismatch.
  232953. .IP \(bu 2
  232954. 5b56a4acf7 Docs
  232955. .IP \(bu 2
  232956. ae04e7aaeb Initial POC
  232957. .UNINDENT
  232958. .IP \(bu 2
  232959. \fBISSUE\fP \fI\%#35166\fP: (\fI\%bobrik\fP) state_output_profile defaults are confusing (refs: \fI\%#35271\fP)
  232960. .IP \(bu 2
  232961. \fBPR\fP \fI\%#35271\fP: (\fI\%bobrik\fP) Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  232962. @ \fI2016\-08\-08 14:36:24 UTC\fP
  232963. .INDENT 2.0
  232964. .IP \(bu 2
  232965. 3e4eb13daa Merge pull request \fI\%#35271\fP from bobrik/default\-output\-profile
  232966. .IP \(bu 2
  232967. 6cdee21036 Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  232968. .UNINDENT
  232969. .IP \(bu 2
  232970. \fBISSUE\fP \fI\%#32719\fP: (\fI\%azweb76\fP) Salt\-Call Hangs when IPv6 is disabled on System (refs: \fI\%#35233\fP)
  232971. .IP \(bu 2
  232972. \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
  232973. @ \fI2016\-08\-06 22:58:32 UTC\fP
  232974. .INDENT 2.0
  232975. .IP \(bu 2
  232976. 673e1aa1aa Merge pull request \fI\%#35233\fP from terminalmage/issue32719
  232977. .IP \(bu 2
  232978. 730a077041 Do not attempt to get fqdn_ip{4,6} grains when ipv{4,6} grains are empty
  232979. .UNINDENT
  232980. .IP \(bu 2
  232981. \fBPR\fP \fI\%#35202\fP: (\fI\%multani\fP) doc: fix broken links in the test documentation page
  232982. @ \fI2016\-08\-06 08:29:41 UTC\fP
  232983. .INDENT 2.0
  232984. .IP \(bu 2
  232985. cdf3c0fe73 Merge pull request \fI\%#35202\fP from multani/fix/test\-doc
  232986. .IP \(bu 2
  232987. 1642dba5d1 doc: fix broken links in the test documentation page
  232988. .UNINDENT
  232989. .IP \(bu 2
  232990. \fBISSUE\fP \fI\%saltstack/salt#34861\fP: (\fI\%dere\fP) minion incorrectly reports package cannot be installed (refs: \fI\%#35119\fP)
  232991. .IP \(bu 2
  232992. \fBPR\fP \fI\%#35236\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35119\fP to 2015.8
  232993. @ \fI2016\-08\-06 08:10:54 UTC\fP
  232994. .INDENT 2.0
  232995. .IP \(bu 2
  232996. \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)
  232997. .IP \(bu 2
  232998. e1331cd2a3 Merge pull request \fI\%#35236\fP from rallytime/bp\-35119
  232999. .IP \(bu 2
  233000. 9ade78de7b Revise unnecessary code duplication
  233001. .IP \(bu 2
  233002. 7c15f5b20a Fix formatting
  233003. .IP \(bu 2
  233004. 64f93f8938 Assume two EVRs are equal if E and V are equal but one R is missing.
  233005. .UNINDENT
  233006. .IP \(bu 2
  233007. \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)
  233008. .IP \(bu 2
  233009. \fBISSUE\fP \fI\%#29785\fP: (\fI\%paul\-mulvihill\fP) pkg.installed to accept \(aqlatest\(aq as a version keyword (refs: \fI\%#35240\fP)
  233010. .IP \(bu 2
  233011. \fBPR\fP \fI\%#35240\fP: (\fI\%dere\fP) Backport \fI\%#35225\fP to 2015.8
  233012. @ \fI2016\-08\-06 07:54:19 UTC\fP
  233013. .INDENT 2.0
  233014. .IP \(bu 2
  233015. \fBPR\fP \fI\%#35225\fP: (\fI\%dere\fP) Add missing documentation for pkg.installed (refs: \fI\%#35240\fP)
  233016. .IP \(bu 2
  233017. 4f2b8aa5b6 Merge pull request \fI\%#35240\fP from derekmaciel/bp\-35225
  233018. .IP \(bu 2
  233019. 9ed47f713a Add missing documentation for pkg.installed
  233020. .UNINDENT
  233021. .IP \(bu 2
  233022. \fBPR\fP \fI\%#35241\fP: (\fI\%terminalmage\fP) Ensure max recursion in gitfs results in no blob object being returned.
  233023. @ \fI2016\-08\-06 07:53:49 UTC\fP
  233024. .INDENT 2.0
  233025. .IP \(bu 2
  233026. 4bcfaa97d0 Merge pull request \fI\%#35241\fP from terminalmage/gitfs\-fixes
  233027. .IP \(bu 2
  233028. e05648cc2d Break from loop when file is found
  233029. .IP \(bu 2
  233030. 6764a88601 Ensure that failed recursion results in no blob object being returned
  233031. .IP \(bu 2
  233032. \fBPR\fP \fI\%saltstack/salt#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  233033. .UNINDENT
  233034. .IP \(bu 2
  233035. \fBPR\fP \fI\%#35245\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35039\fP to 2015.8
  233036. @ \fI2016\-08\-06 07:52:44 UTC\fP
  233037. .INDENT 2.0
  233038. .IP \(bu 2
  233039. \fBPR\fP \fI\%#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  233040. .IP \(bu 2
  233041. f6d7360e0b Merge pull request \fI\%#35245\fP from rallytime/bp\-35039
  233042. .IP \(bu 2
  233043. 51ab9cd6d4 Add saltenv support to module.run
  233044. .UNINDENT
  233045. .IP \(bu 2
  233046. \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)
  233047. .IP \(bu 2
  233048. \fBPR\fP \fI\%#35249\fP: (\fI\%terminalmage\fP) Fix regression in git.latest
  233049. @ \fI2016\-08\-06 07:52:15 UTC\fP
  233050. .INDENT 2.0
  233051. .IP \(bu 2
  233052. d65a5c7134 Merge pull request \fI\%#35249\fP from terminalmage/issue35214
  233053. .IP \(bu 2
  233054. bcd5129e9f Fix regression in git.latest when update is fast\-forward
  233055. .IP \(bu 2
  233056. e2e8bbbfde Add integration test for \fI\%#35214\fP
  233057. .UNINDENT
  233058. .IP \(bu 2
  233059. \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)
  233060. .INDENT 2.0
  233061. .IP \(bu 2
  233062. \fBPR\fP \fI\%saltstack/salt#35146\fP: (\fI\%cachedout\fP) Don\(aqt discard running beacons config when listing becaons (refs: \fI\%#35174\fP)
  233063. .IP \(bu 2
  233064. \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_)
  233065. .IP \(bu 2
  233066. \fBPR\fP \fI\%#35174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35146\fP to 2015.8
  233067. .IP \(bu 2
  233068. \fBPR\fP \fI\%#35146\fP: (\fI\%cachedout\fP) Don\(aqt discard running beacons config when listing becaons (refs: \fI\%#35174\fP)
  233069. .IP \(bu 2
  233070. \fBPR\fP \fI\%saltstack/salt#35135\fP: (\fI\%rallytime\fP) Add missing CLI Examples to aws_sqs module funcs (refs: \fI\%#35173\fP)
  233071. .IP \(bu 2
  233072. \fBPR\fP \fI\%#35173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35135\fP to 2015.8
  233073. .IP \(bu 2
  233074. \fBPR\fP \fI\%#35135\fP: (\fI\%rallytime\fP) Add missing CLI Examples to aws_sqs module funcs (refs: \fI\%#35173\fP)
  233075. .IP \(bu 2
  233076. \fBPR\fP \fI\%#35145\fP: (\fI\%jacobhammons\fP) doc version update to 2015.8.11, updates to release notes
  233077. .UNINDENT
  233078. .IP \(bu 2
  233079. \fBPR\fP \fI\%#35114\fP: (\fI\%terminalmage\fP) Add clarification docs on a common git_pillar misconfiguration
  233080. @ \fI2016\-08\-02 00:30:48 UTC\fP
  233081. .INDENT 2.0
  233082. .IP \(bu 2
  233083. 81845ee31d Merge pull request \fI\%#35114\fP from terminalmage/git_pillar\-env\-remap\-docs
  233084. .IP \(bu 2
  233085. 5951554e9f Add clarification docs on a common git_pillar misconfiguration
  233086. .UNINDENT
  233087. .IP \(bu 2
  233088. \fBISSUE\fP \fI\%saltstack/salt#34767\fP: (\fI\%hrumph\fP) Ensure that pkg.installed function refreshes properly with windows. (refs: \fI\%#34768\fP)
  233089. .IP \(bu 2
  233090. \fBISSUE\fP \fI\%#34767\fP: (\fI\%hrumph\fP) Ensure that pkg.installed function refreshes properly with windows. (refs: \fI\%#34768\fP)
  233091. .IP \(bu 2
  233092. \fBPR\fP \fI\%#34768\fP: (\fI\%hrumph\fP) Fixes \fI\%#34767\fP
  233093. @ \fI2016\-08\-01 21:46:16 UTC\fP
  233094. .INDENT 2.0
  233095. .IP \(bu 2
  233096. 88a9fb1b31 Merge pull request \fI\%#34768\fP from hrumph/bad\-installed\-state
  233097. .IP \(bu 2
  233098. e1fcb8311d Put pkg.latest_version in try/except structure Move refreshed or refresh to different spot (just for code tidyness)
  233099. .IP \(bu 2
  233100. e0b6261659 changed name of varibale \(aqrefreshed\(aq to \(aqwas_refreshed\(aq
  233101. .IP \(bu 2
  233102. 340110b4b4 Move check for rtag to outermost\-nesting in function
  233103. .IP \(bu 2
  233104. ac67c6b493 Lint fix
  233105. .IP \(bu 2
  233106. 0435a1375e Get rid of repetition in code by using new "refreshed" variable instead
  233107. .IP \(bu 2
  233108. 3b1dc978e2 Lint fix
  233109. .IP \(bu 2
  233110. a9bd1b92b9 lint fixes
  233111. .IP \(bu 2
  233112. 71d69343ef Fixes \fI\%#34767\fP
  233113. .UNINDENT
  233114. .IP \(bu 2
  233115. \fBPR\fP \fI\%#35043\fP: (\fI\%rallytime\fP) Start release notes file for 2015.8.12
  233116. @ \fI2016\-08\-01 17:22:04 UTC\fP
  233117. .INDENT 2.0
  233118. .IP \(bu 2
  233119. 343576408f Merge pull request \fI\%#35043\fP from rallytime/new\-release\-notes
  233120. .IP \(bu 2
  233121. bdcc81a384 Start release notes file for 2015.8.12
  233122. .UNINDENT
  233123. .IP \(bu 2
  233124. \fBPR\fP \fI\%#35050\fP: (\fI\%terminalmage\fP) [orchestration] Properly handle runner/wheel funcs which accept a \(aqsaltdev\(aq argument
  233125. @ \fI2016\-08\-01 15:48:08 UTC\fP
  233126. .INDENT 2.0
  233127. .IP \(bu 2
  233128. 848bf0272f Merge pull request \fI\%#35050\fP from terminalmage/fix\-saltdev\-arg
  233129. .IP \(bu 2
  233130. 40cfa7cf17 Avoid needlessly running 2 argspecs in salt.utils.format_call()
  233131. .IP \(bu 2
  233132. fd186b7e4c Pass environment as \(aqsaltdev\(aq if runner/wheel func accepts a saltdev argument
  233133. .IP \(bu 2
  233134. 951b52ab93 Pass __env__ from saltmod orch states to to saltutil.{runner,wheel}
  233135. .UNINDENT
  233136. .IP \(bu 2
  233137. \fBPR\fP \fI\%#35066\fP: (\fI\%jfindlay\fP) returners.postgres_local_cache: do not log in __virtual__
  233138. @ \fI2016\-07\-30 01:32:17 UTC\fP
  233139. .INDENT 2.0
  233140. .IP \(bu 2
  233141. 2144178ae0 Merge pull request \fI\%#35066\fP from jfindlay/postgres_log
  233142. .IP \(bu 2
  233143. c2c442234f returners.postgres_local_cache: do not log in __virtual__
  233144. .UNINDENT
  233145. .IP \(bu 2
  233146. \fBISSUE\fP \fI\%#34927\fP: (\fI\%bobrik\fP) Salt does not run "systemd daemon\-reload" on unit override (refs: \fI\%#35024\fP)
  233147. .IP \(bu 2
  233148. \fBPR\fP \fI\%#35024\fP: (\fI\%bobrik\fP) Cache systemd unit update check per unit, closes \fI\%#34927\fP
  233149. @ \fI2016\-07\-28 17:56:29 UTC\fP
  233150. .INDENT 2.0
  233151. .IP \(bu 2
  233152. 7121618142 Merge pull request \fI\%#35024\fP from bobrik/daemon\-reload\-fix
  233153. .IP \(bu 2
  233154. c300615e9d Cache systemd unit update check per unit, closes \fI\%#34927\fP
  233155. .IP \(bu 2
  233156. \fBPR\fP \fI\%#35026\fP: (\fI\%cachedout\fP) Expressly deny a minion if a key cannot be found
  233157. .IP \(bu 2
  233158. \fBPR\fP \fI\%saltstack/salt#33875\fP: (\fI\%jmesquita\fP) Fix naive fileserver map diff algorithm (refs: \fI\%#35000\fP)
  233159. .UNINDENT
  233160. .IP \(bu 2
  233161. \fBPR\fP \fI\%#35000\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33875\fP and \fI\%#34999\fP to 2015.8
  233162. @ \fI2016\-07\-27 21:55:58 UTC\fP
  233163. .INDENT 2.0
  233164. .IP \(bu 2
  233165. \fBPR\fP \fI\%#34999\fP: (\fI\%cachedout\fP) Fixup \fI\%#33875\fP (refs: \fI\%#35000\fP)
  233166. .IP \(bu 2
  233167. \fBPR\fP \fI\%#33875\fP: (\fI\%jmesquita\fP) Fix naive fileserver map diff algorithm (refs: \fI\%#35000\fP, \fI\%#34999\fP)
  233168. .IP \(bu 2
  233169. 2b511f3013 Merge pull request \fI\%#35000\fP from rallytime/bp\-33875
  233170. .IP \(bu 2
  233171. 35696ad637 Pylint fix
  233172. .IP \(bu 2
  233173. f9fd6ddd8a Fixup \fI\%#33875\fP
  233174. .IP \(bu 2
  233175. 56b1f6c651 Fix naive fileserver map diff algorithm
  233176. .UNINDENT
  233177. .IP \(bu 2
  233178. \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_)
  233179. .INDENT 2.0
  233180. .IP \(bu 2
  233181. \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)
  233182. .UNINDENT
  233183. .IP \(bu 2
  233184. \fBPR\fP \fI\%#34994\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34835\fP to 2015.8
  233185. @ \fI2016\-07\-27 18:21:10 UTC\fP
  233186. .INDENT 2.0
  233187. .IP \(bu 2
  233188. \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)
  233189. .IP \(bu 2
  233190. 837bc6ba7d Merge pull request \fI\%#34994\fP from rallytime/bp\-34835
  233191. .IP \(bu 2
  233192. 9268a793de same thing for the mine in salt\-ssh
  233193. .IP \(bu 2
  233194. 3e11e19714 Fix the mine in salt ssh
  233195. .UNINDENT
  233196. .IP \(bu 2
  233197. \fBPR\fP \fI\%#34991\fP: (\fI\%cachedout\fP) SSH timeout
  233198. @ \fI2016\-07\-27 17:24:38 UTC\fP
  233199. .INDENT 2.0
  233200. .IP \(bu 2
  233201. b58c663d8d Merge pull request \fI\%#34991\fP from cachedout/ssh_timeout
  233202. .IP \(bu 2
  233203. 39cd8da399 Lint diff against salt\-testing
  233204. .IP \(bu 2
  233205. 443e5cdde2 Add timeout to ssh tests
  233206. .IP \(bu 2
  233207. \fBPR\fP \fI\%#34976\fP: (\fI\%cachedout\fP) Refine errors in client
  233208. .UNINDENT
  233209. .IP \(bu 2
  233210. \fBISSUE\fP \fI\%#34509\fP: (\fI\%srkunze\fP) No atomic thin.tgz deploy (refs: \fI\%#34831\fP)
  233211. .IP \(bu 2
  233212. \fBPR\fP \fI\%#34831\fP: (\fI\%thatch45\fP) If the thin does not match, then redeploy, don\(aqt error
  233213. @ \fI2016\-07\-26 22:27:01 UTC\fP
  233214. .INDENT 2.0
  233215. .IP \(bu 2
  233216. a83cdf9339 Merge pull request \fI\%#34831\fP from thatch45/recoverssh
  233217. .IP \(bu 2
  233218. fa73041a49 If the thin does not match, then redeploy, don\(aqt error
  233219. .IP \(bu 2
  233220. \fBPR\fP \fI\%#34916\fP: (\fI\%cachedout\fP) Master performance improvement
  233221. .UNINDENT
  233222. .IP \(bu 2
  233223. \fBPR\fP \fI\%#34911\fP: (\fI\%cachedout\fP) Backport \fI\%#34906\fP
  233224. @ \fI2016\-07\-22 23:23:24 UTC\fP
  233225. .INDENT 2.0
  233226. .IP \(bu 2
  233227. \fBPR\fP \fI\%#34906\fP: (\fI\%cachedout\fP) Set timeout for run_salt in test suite (refs: \fI\%#34911\fP)
  233228. .IP \(bu 2
  233229. 34dc2fd792 Merge pull request \fI\%#34911\fP from cachedout/backport_34906
  233230. .IP \(bu 2
  233231. 8becec2f4f Backport \fI\%#34906\fP
  233232. .UNINDENT
  233233. .IP \(bu 2
  233234. \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)
  233235. .IP \(bu 2
  233236. \fBPR\fP \fI\%#34898\fP: (\fI\%hrumph\fP) Stop multiple refreshes during call to pkg.list_upgrades
  233237. @ \fI2016\-07\-22 22:28:42 UTC\fP
  233238. .INDENT 2.0
  233239. .IP \(bu 2
  233240. 6ccc27f697 Merge pull request \fI\%#34898\fP from hrumph/list_upgrades_refresh
  233241. .IP \(bu 2
  233242. acd4b1a23b Fixes \fI\%#33620\fP
  233243. .UNINDENT
  233244. .IP \(bu 2
  233245. \fBPR\fP \fI\%#34606\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34751\fP)
  233246. @ \fI2016\-07\-22 17:35:18 UTC\fP
  233247. .INDENT 2.0
  233248. .IP \(bu 2
  233249. 5c13ee0e72 Merge pull request \fI\%#34606\fP from isbm/isbm\-config\-reading\-exit\-2015.8
  233250. .IP \(bu 2
  233251. 5f5b802c0c Add option to master config reader on ignoring system exit for wrong configuration
  233252. .IP \(bu 2
  233253. 6fc677f177 Ignore minion config errors everywhere but the minion itself
  233254. .IP \(bu 2
  233255. 8699194647 Remove deprecation: BaseException.message deprecated as of 2.6
  233256. .IP \(bu 2
  233257. 0e65cfec91 Fix lint: E8302
  233258. .IP \(bu 2
  233259. 67faa56bf1 Use Salt default exit codes instead of hard\-coded values
  233260. .IP \(bu 2
  233261. a84556e596 Exit immediately on configuration error
  233262. .IP \(bu 2
  233263. 43d965907c Raise an exception on any found wrong configuration file
  233264. .IP \(bu 2
  233265. 30ed728d05 Cover exception handling in the utils.parsers
  233266. .IP \(bu 2
  233267. 5e8c0c6bdb Introduce configuration error exception
  233268. .UNINDENT
  233269. .IP \(bu 2
  233270. \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)
  233271. .INDENT 2.0
  233272. .IP \(bu 2
  233273. \fBPR\fP \fI\%#34862\fP: (\fI\%thatch45\fP) Fix salt\-ssh cacheing issue
  233274. .UNINDENT
  233275. .IP \(bu 2
  233276. \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)
  233277. .INDENT 2.0
  233278. .IP \(bu 2
  233279. \fBPR\fP \fI\%#34869\fP: (\fI\%terminalmage\fP) Fail git.latest states with uncommitted changes when force_reset=False
  233280. .UNINDENT
  233281. .IP \(bu 2
  233282. \fBPR\fP \fI\%#34859\fP: (\fI\%cachedout\fP) Fix wheel test
  233283. @ \fI2016\-07\-21 19:55:25 UTC\fP
  233284. .INDENT 2.0
  233285. .IP \(bu 2
  233286. 4f4381e5b9 Merge pull request \fI\%#34859\fP from cachedout/fix_wheel_test
  233287. .IP \(bu 2
  233288. b4be66dedf Fix wheel test
  233289. .UNINDENT
  233290. .IP \(bu 2
  233291. \fBISSUE\fP \fI\%saltstack/salt#34798\fP: (\fI\%Ch3LL\fP) exception when running state.low over salt\-ssh (refs: \fI\%#34822\fP)
  233292. .IP \(bu 2
  233293. \fBISSUE\fP \fI\%saltstack/salt#34796\fP: (\fI\%Ch3LL\fP) exception when running state.high over salt\-ssh (refs: \fI\%#34822\fP)
  233294. .IP \(bu 2
  233295. \fBPR\fP \fI\%#34822\fP: (\fI\%thatch45\fP) Fix salt\-ssh state.high and state.low
  233296. @ \fI2016\-07\-21 19:16:19 UTC\fP
  233297. .INDENT 2.0
  233298. .IP \(bu 2
  233299. acc9e31c02 Merge pull request \fI\%#34822\fP from thatch45/ssh_fixes
  233300. .IP \(bu 2
  233301. b5de492143 fix \fI\%#34798\fP
  233302. .IP \(bu 2
  233303. 5ad6bd7307 fix \fI\%#34796\fP
  233304. .UNINDENT
  233305. .IP \(bu 2
  233306. \fBPR\fP \fI\%#34847\fP: (\fI\%cachedout\fP) Add an option to skip the verification of client_acl users
  233307. @ \fI2016\-07\-21 17:55:55 UTC\fP
  233308. .INDENT 2.0
  233309. .IP \(bu 2
  233310. 5d91139bc9 Merge pull request \fI\%#34847\fP from cachedout/pwall
  233311. .IP \(bu 2
  233312. 2c8298dc6e Profile logging
  233313. .IP \(bu 2
  233314. 3affafa2e9 Add an option to skip the verification of client_acl users
  233315. .UNINDENT
  233316. .IP \(bu 2
  233317. \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)
  233318. .IP \(bu 2
  233319. \fBPR\fP \fI\%#34827\fP: (\fI\%thatch45\fP) fix beacon list to include all beacons being processed
  233320. @ \fI2016\-07\-21 14:49:56 UTC\fP
  233321. .INDENT 2.0
  233322. .IP \(bu 2
  233323. 07d1d36653 Merge pull request \fI\%#34827\fP from thatch45/34691
  233324. .IP \(bu 2
  233325. 1ccf35eca4 fix beacon list to include all beacons being processed
  233326. .IP \(bu 2
  233327. \fBPR\fP \fI\%saltstack/salt#28521\fP: (\fI\%gongled\fP) SPM: packaging doesn\(aqt work in Python 2.6. Fixed. (refs: \fI\%#34833\fP)
  233328. .UNINDENT
  233329. .IP \(bu 2
  233330. \fBPR\fP \fI\%#34833\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28521\fP to 2015.8
  233331. @ \fI2016\-07\-21 14:37:24 UTC\fP
  233332. .INDENT 2.0
  233333. .IP \(bu 2
  233334. \fBPR\fP \fI\%#28521\fP: (\fI\%gongled\fP) SPM: packaging doesn\(aqt work in Python 2.6. Fixed. (refs: \fI\%#34833\fP)
  233335. .IP \(bu 2
  233336. b375720251 Merge pull request \fI\%#34833\fP from rallytime/bp\-28521
  233337. .IP \(bu 2
  233338. e50a6783ce SPM: packaging doesn\(aqt work in Python 2.6. Fixed.
  233339. .UNINDENT
  233340. .IP \(bu 2
  233341. \fBISSUE\fP \fI\%#25213\fP: (\fI\%aboe76\fP) Add spm man page to setup.py (refs: #saltstack/salt\(ga#25276\(ga_, \fI\%#25276\fP)
  233342. .INDENT 2.0
  233343. .IP \(bu 2
  233344. \fBPR\fP \fI\%saltstack/salt#25276\fP: (\fI\%jacobhammons\fP) copy spm.1 man page during setup (refs: \fI\%#34823\fP)
  233345. .UNINDENT
  233346. .IP \(bu 2
  233347. \fBPR\fP \fI\%#34823\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25276\fP to 2015.8
  233348. @ \fI2016\-07\-20 20:56:04 UTC\fP
  233349. .INDENT 2.0
  233350. .IP \(bu 2
  233351. \fBPR\fP \fI\%#25276\fP: (\fI\%jacobhammons\fP) copy spm.1 man page during setup (refs: \fI\%#34823\fP)
  233352. .IP \(bu 2
  233353. 042646582f Merge pull request \fI\%#34823\fP from rallytime/bp\-25276
  233354. .IP \(bu 2
  233355. a028796eff copy spm.1 man page during setup Refs \fI\%#25213\fP
  233356. .UNINDENT
  233357. .IP \(bu 2
  233358. \fBISSUE\fP \fI\%saltstack/salt#34648\fP: (\fI\%bortels\fP) Error that % cannot start token (refs: \fI\%#34828\fP)
  233359. .IP \(bu 2
  233360. \fBISSUE\fP \fI\%#34648\fP: (\fI\%bortels\fP) Error that % cannot start token (refs: \fI\%#34828\fP)
  233361. .INDENT 2.0
  233362. .IP \(bu 2
  233363. \fBPR\fP \fI\%#34828\fP: (\fI\%thatch45\fP) Fix \fI\%#34648\fP
  233364. .IP \(bu 2
  233365. \fBPR\fP \fI\%saltstack/salt#34642\fP: (\fI\%justinta\fP) Check that mysqladmin exists before running mysql integration tests (refs: \fI\%#34818\fP)
  233366. .UNINDENT
  233367. .IP \(bu 2
  233368. \fBPR\fP \fI\%#34818\fP: (\fI\%justinta\fP) Skip mysql state test if mysqladmin is not available
  233369. @ \fI2016\-07\-20 16:10:35 UTC\fP
  233370. .INDENT 2.0
  233371. .IP \(bu 2
  233372. 98fa4a404e Merge pull request \fI\%#34818\fP from jtand/mysql_state_integration_test_cleanup
  233373. .IP \(bu 2
  233374. 9abb6f91bb Skip mysql state test if mysqladmin is not available
  233375. .UNINDENT
  233376. .IP \(bu 2
  233377. \fBISSUE\fP \fI\%saltstack/salt#26278\fP: (\fI\%jiahua\-h\fP) "order: first" doesn\(aqt work? (refs: \fI\%#34803\fP)
  233378. .IP \(bu 2
  233379. \fBISSUE\fP \fI\%saltstack/salt#24744\fP: (\fI\%anlutro\fP) Allow states to define order: first (refs: \fI\%#34803\fP)
  233380. .IP \(bu 2
  233381. \fBISSUE\fP \fI\%#24744\fP: (\fI\%anlutro\fP) Allow states to define order: first (refs: \fI\%#34803\fP)
  233382. .IP \(bu 2
  233383. \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
  233384. @ \fI2016\-07\-20 13:56:20 UTC\fP
  233385. .INDENT 2.0
  233386. .IP \(bu 2
  233387. 6636f2b449 Merge pull request \fI\%#34803\fP from junovitch/issue_24744
  233388. .IP \(bu 2
  233389. 64c850410f salt/state.py: set \(aqchunk[\(aqorder\(aq] = 0\(aq with \(aqorder: first\(aq; fixes \fI\%#24744\fP
  233390. .UNINDENT
  233391. .IP \(bu 2
  233392. \fBPR\fP \fI\%#34773\fP: (\fI\%randomed\fP) Bugfix: Startup states on minions are not being written to mysql returner
  233393. @ \fI2016\-07\-19 12:39:53 UTC\fP
  233394. .INDENT 2.0
  233395. .IP \(bu 2
  233396. 58021035a9 Merge pull request \fI\%#34773\fP from randomed/mysql\-returner\-startup/2015.8
  233397. .IP \(bu 2
  233398. 0cd55eb7d7 Add jid=req handling for mysql returner. It should also store the return jid into the jid list table.
  233399. .IP \(bu 2
  233400. \fBPR\fP \fI\%#34751\fP: (\fI\%cachedout\fP) Remove unnedeed config test
  233401. .IP \(bu 2
  233402. \fBPR\fP \fI\%#34606\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34751\fP)
  233403. .UNINDENT
  233404. .IP \(bu 2
  233405. \fBPR\fP \fI\%#34754\fP: (\fI\%cachedout\fP) Disable test
  233406. @ \fI2016\-07\-18 18:40:50 UTC\fP
  233407. .INDENT 2.0
  233408. .IP \(bu 2
  233409. f19caac8e4 Merge pull request \fI\%#34754\fP from cachedout/disable_mid_test
  233410. .IP \(bu 2
  233411. 46901c6e65 Disable test
  233412. .UNINDENT
  233413. .IP \(bu 2
  233414. \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)
  233415. .INDENT 2.0
  233416. .IP \(bu 2
  233417. \fBPR\fP \fI\%saltstack/salt#34726\fP: (\fI\%martinhoefling\fP) Always loop over updated keys in non recursive update (refs: \fI\%#34741\fP)
  233418. .UNINDENT
  233419. .IP \(bu 2
  233420. \fBPR\fP \fI\%#34741\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34726\fP to 2015.8
  233421. @ \fI2016\-07\-18 18:00:23 UTC\fP
  233422. .INDENT 2.0
  233423. .IP \(bu 2
  233424. \fBPR\fP \fI\%#34726\fP: (\fI\%martinhoefling\fP) Always loop over updated keys in non recursive update (refs: \fI\%#34741\fP)
  233425. .IP \(bu 2
  233426. 81f29006f2 Merge pull request \fI\%#34741\fP from rallytime/bp\-34726
  233427. .IP \(bu 2
  233428. d949110993 Loop over updated keys in non recursive update
  233429. .UNINDENT
  233430. .IP \(bu 2
  233431. \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)
  233432. .IP \(bu 2
  233433. \fBPR\fP \fI\%#34721\fP: (\fI\%rallytime\fP) Add output_file option to master config docs
  233434. @ \fI2016\-07\-16 20:04:03 UTC\fP
  233435. .INDENT 2.0
  233436. .IP \(bu 2
  233437. e9e5bbe38b Merge pull request \fI\%#34721\fP from rallytime/fix\-34703
  233438. .IP \(bu 2
  233439. 9c803d05a5 Add output_file option to master config docs
  233440. .UNINDENT
  233441. .IP \(bu 2
  233442. \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)
  233443. .IP \(bu 2
  233444. \fBPR\fP \fI\%#34689\fP: (\fI\%Azidburn\fP) fix second run problems with pkg.installed using sources
  233445. @ \fI2016\-07\-15 21:19:39 UTC\fP
  233446. .INDENT 2.0
  233447. .IP \(bu 2
  233448. 08d00f3a61 Merge pull request \fI\%#34689\fP from Azidburn/fix_pkg_sources
  233449. .IP \(bu 2
  233450. 2c0fc919b3 fix second run problems with pkg.installed using sources
  233451. .UNINDENT
  233452. .IP \(bu 2
  233453. \fBPR\fP \fI\%#34695\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.list_products\fP returns False on some empty values (2015.8)
  233454. @ \fI2016\-07\-15 21:08:00 UTC\fP
  233455. .INDENT 2.0
  233456. .IP \(bu 2
  233457. 4cb1ded520 Merge pull request \fI\%#34695\fP from isbm/isbm\-zypper\-product\-boolean\-values
  233458. .IP \(bu 2
  233459. 5ed5142fbc Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  233460. .IP \(bu 2
  233461. 21444ee240 Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  233462. .UNINDENT
  233463. .UNINDENT
  233464. .SS Salt 2015.8.13 Release Notes
  233465. .sp
  233466. Version 2015.8.13 is a bugfix release for 2015.8.0\&.
  233467. .SS Security Fixes
  233468. .sp
  233469. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  233470. .sp
  233471. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  233472. credentials and so access to it from salt\-api has been removed for now. This
  233473. vulnerability allows code execution for already\-authenticated users and is only
  233474. in effect when running salt\-api as the \fBroot\fP user.
  233475. .sp
  233476. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master
  233477. via Salt\(aqs ssh_client
  233478. .sp
  233479. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  233480. hole when both systems were enabled.
  233481. .sp
  233482. We recommend everyone on the 2015.8 branch upgrade to a patched release as soon
  233483. as possible.
  233484. .SS Salt 2015.8.2 Release Notes
  233485. .sp
  233486. Version 2015.8.2 is a bugfix release for 2015.8.0\&.
  233487. .SS Statistics
  233488. .INDENT 0.0
  233489. .IP \(bu 2
  233490. Total Merges: \fB379\fP
  233491. .IP \(bu 2
  233492. Total Issue References: \fB138\fP
  233493. .IP \(bu 2
  233494. Total PR References: \fB351\fP
  233495. .IP \(bu 2
  233496. 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)
  233497. .UNINDENT
  233498. .sp
  233499. \fBIMPORTANT:\fP
  233500. .INDENT 0.0
  233501. .INDENT 3.5
  233502. A significant orchestrate issue (\fI\%issue ##29110\fP) was discovered during the
  233503. release process of 2015.8.2, so it has not been officially released.
  233504. Please use 2015.8.3 instead.
  233505. .UNINDENT
  233506. .UNINDENT
  233507. .SS Changelog for v2015.8.1..v2015.8.2
  233508. .sp
  233509. \fIGenerated at: 2018\-05\-27 23:17:44 UTC\fP
  233510. .INDENT 0.0
  233511. .IP \(bu 2
  233512. \fBPR\fP \fI\%#28865\fP: (\fI\%jfindlay\fP) add 2015.8.2 release notes
  233513. @ \fI2015\-11\-13 17:30:18 UTC\fP
  233514. .INDENT 2.0
  233515. .IP \(bu 2
  233516. af297bb0ae Merge pull request \fI\%#28865\fP from jfindlay/2015.8
  233517. .IP \(bu 2
  233518. 1f847fc9ba add 2015.8.2 release notes
  233519. .UNINDENT
  233520. .IP \(bu 2
  233521. \fBISSUE\fP \fI\%#27392\fP: (\fI\%ahammond\fP) schedule running state.orchestrate fails (refs: \fI\%#28730\fP)
  233522. .IP \(bu 2
  233523. \fBPR\fP \fI\%#28730\fP: (\fI\%garethgreenaway\fP) Fixes to how return_job is handled in the scheduler for the salt master.
  233524. @ \fI2015\-11\-13 16:58:20 UTC\fP
  233525. .INDENT 2.0
  233526. .IP \(bu 2
  233527. 15672a3faa Merge pull request \fI\%#28730\fP from garethgreenaway/27392_2015_8_scheduler_return_job_master
  233528. .IP \(bu 2
  233529. 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.
  233530. .UNINDENT
  233531. .IP \(bu 2
  233532. \fBPR\fP \fI\%#28848\fP: (\fI\%cro\fP) Lint
  233533. @ \fI2015\-11\-13 13:46:36 UTC\fP
  233534. .INDENT 2.0
  233535. .IP \(bu 2
  233536. 5560cb662b Merge pull request \fI\%#28848\fP from cro/fx2_multi_creds
  233537. .IP \(bu 2
  233538. f032bffd7c Lint
  233539. .IP \(bu 2
  233540. 6bb6703c3e Merge branch \(aqfx2_multi_creds\(aq of git://github.com/cro/salt into cro
  233541. .IP \(bu 2
  233542. 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.
  233543. .IP \(bu 2
  233544. b86c614564 Better logic around fallback credentials.
  233545. .IP \(bu 2
  233546. 2701826a99 Update fx2.py, fix typos in new fallback parameters.
  233547. .IP \(bu 2
  233548. 8ce5348808 Better variable name.
  233549. .IP \(bu 2
  233550. 92038b8718 Default configuration file for proxy minions.
  233551. .UNINDENT
  233552. .IP \(bu 2
  233553. \fBPR\fP \fI\%#28842\fP: (\fI\%cachedout\fP) Add transport setting to shell test
  233554. @ \fI2015\-11\-12 21:43:11 UTC\fP
  233555. .INDENT 2.0
  233556. .IP \(bu 2
  233557. 778ace3ca5 Merge pull request \fI\%#28842\fP from cachedout/tcp_shell_test
  233558. .IP \(bu 2
  233559. 785bf94f55 Add transport setting to shell test
  233560. .UNINDENT
  233561. .IP \(bu 2
  233562. \fBPR\fP \fI\%#28837\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  233563. @ \fI2015\-11\-12 21:17:14 UTC\fP
  233564. .INDENT 2.0
  233565. .IP \(bu 2
  233566. 5639971744 Merge pull request \fI\%#28837\fP from basepi/merge\-forward\-2015.8
  233567. .IP \(bu 2
  233568. 1c91ad6765 fix lint
  233569. .IP \(bu 2
  233570. 4b706ac76a Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233571. .INDENT 2.0
  233572. .IP \(bu 2
  233573. eb904665dc Merge pull request \fI\%#28832\fP from basepi/backport.28826
  233574. .INDENT 2.0
  233575. .IP \(bu 2
  233576. 57be72eb91 Add backports_abc and singledispatch_helpers to thin as well
  233577. .IP \(bu 2
  233578. 897cad627b Add singledispatch to the thin
  233579. .UNINDENT
  233580. .IP \(bu 2
  233581. eff811a0ad Merge pull request \fI\%#28833\fP from basepi/increase.gather_job_timeout.8647
  233582. .INDENT 2.0
  233583. .IP \(bu 2
  233584. c09243dd01 Increase the default gather_job_timeout
  233585. .UNINDENT
  233586. .IP \(bu 2
  233587. e4a036365d Merge pull request \fI\%#28829\fP from basepi/merge\-forward\-2015.5
  233588. .INDENT 2.0
  233589. .IP \(bu 2
  233590. f8b8441485 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  233591. .IP \(bu 2
  233592. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  233593. .INDENT 2.0
  233594. .IP \(bu 2
  233595. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  233596. .UNINDENT
  233597. .IP \(bu 2
  233598. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  233599. .INDENT 2.0
  233600. .IP \(bu 2
  233601. 32e7bd3ea0 Account for new headers class in tornado 4.3
  233602. .UNINDENT
  233603. .IP \(bu 2
  233604. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  233605. .INDENT 2.0
  233606. .IP \(bu 2
  233607. 1874300e08 Add note about recommended umask
  233608. .UNINDENT
  233609. .UNINDENT
  233610. .UNINDENT
  233611. .IP \(bu 2
  233612. 5aeab71f76 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233613. .INDENT 2.0
  233614. .IP \(bu 2
  233615. 93562631aa Merge pull request \fI\%#28756\fP from MrCitron/fix\-25775
  233616. .INDENT 2.0
  233617. .IP \(bu 2
  233618. 82075c809c Add logs and correct pylint error
  233619. .IP \(bu 2
  233620. e31e22d96a Fix 25775
  233621. .UNINDENT
  233622. .IP \(bu 2
  233623. 30cc48e37f Merge pull request \fI\%#28786\fP from chrigl/fix\-28783
  233624. .INDENT 2.0
  233625. .IP \(bu 2
  233626. ba6d814553 closes \fI\%#28783\fP
  233627. .UNINDENT
  233628. .IP \(bu 2
  233629. 8f1d0b636e Merge pull request \fI\%#28776\fP from rallytime/bp\-28740\-2015.5
  233630. .INDENT 2.0
  233631. .IP \(bu 2
  233632. 49256b7d90 Back\-port \fI\%#28740\fP to 2015.5
  233633. .UNINDENT
  233634. .IP \(bu 2
  233635. 77d4b980f1 Merge pull request \fI\%#28760\fP from dmyerscough/28732\-Fix\-cherrypi\-api\-keys\-endpoint
  233636. .INDENT 2.0
  233637. .IP \(bu 2
  233638. 206d1684b2 Fixing CherryPy key bug
  233639. .UNINDENT
  233640. .IP \(bu 2
  233641. 6f8f04975f Merge pull request \fI\%#28746\fP from rallytime/bp\-28718
  233642. .INDENT 2.0
  233643. .IP \(bu 2
  233644. 092f441cad Account for no POST data
  233645. .UNINDENT
  233646. .UNINDENT
  233647. .UNINDENT
  233648. .IP \(bu 2
  233649. \fBISSUE\fP \fI\%#28549\fP: (\fI\%ldelossa\fP) dockerng module issue (refs: \fI\%#28827\fP)
  233650. .IP \(bu 2
  233651. \fBPR\fP \fI\%#28827\fP: (\fI\%jacksontj\fP) Cleanup virtual_timer in loader
  233652. @ \fI2015\-11\-12 19:39:29 UTC\fP
  233653. .INDENT 2.0
  233654. .IP \(bu 2
  233655. c4fb185147 Merge pull request \fI\%#28827\fP from jacksontj/2015.8
  233656. .IP \(bu 2
  233657. f49502fd48 \fI__modules__\fP isn\(aqt a global, although \fI__salt__\fP is
  233658. .IP \(bu 2
  233659. c734cb8876 Fix virtual_timer branch such that it will catch exceptions.
  233660. .UNINDENT
  233661. .IP \(bu 2
  233662. \fBPR\fP \fI\%#28836\fP: (\fI\%cachedout\fP) Cast to dict to fix wheel tests in tcp
  233663. @ \fI2015\-11\-12 19:22:44 UTC\fP
  233664. .INDENT 2.0
  233665. .IP \(bu 2
  233666. 21520c6c1d Merge pull request \fI\%#28836\fP from cachedout/fix_tcp_wheel_tests
  233667. .IP \(bu 2
  233668. 8d3244166b Cast to dict to fix wheel tests in tcp
  233669. .UNINDENT
  233670. .IP \(bu 2
  233671. \fBPR\fP \fI\%#28834\fP: (\fI\%cachedout\fP) Fix breakage in tcp server
  233672. @ \fI2015\-11\-12 18:57:18 UTC\fP
  233673. .INDENT 2.0
  233674. .IP \(bu 2
  233675. 560671a170 Merge pull request \fI\%#28834\fP from cachedout/tcp_revert_master_uri
  233676. .IP \(bu 2
  233677. 755d493bed Fix breakage in tcp server
  233678. .UNINDENT
  233679. .IP \(bu 2
  233680. \fBPR\fP \fI\%#28804\fP: (\fI\%cachedout\fP) TCP test fixes
  233681. @ \fI2015\-11\-12 18:39:25 UTC\fP
  233682. .INDENT 2.0
  233683. .IP \(bu 2
  233684. 224602437a Merge pull request \fI\%#28804\fP from cachedout/tcp_test_fixes
  233685. .IP \(bu 2
  233686. f799971280 Change logic
  233687. .IP \(bu 2
  233688. 52ed06500a Fix typo
  233689. .IP \(bu 2
  233690. 9b18f372e6 Normalize IPC check among transports
  233691. .IP \(bu 2
  233692. e8ead2bfed Allow for tcp transport in publish
  233693. .IP \(bu 2
  233694. e33b903e7b Allow for tcp transport in mine
  233695. .IP \(bu 2
  233696. 3d80e67a2d Allow for tcp transport in auth
  233697. .UNINDENT
  233698. .IP \(bu 2
  233699. \fBISSUE\fP \fI\%#28828\fP: (\fI\%basepi\fP) salt\-ssh doesn\(aqt package tornado\(aqs new deps in the thin (refs: \fI\%#28826\fP)
  233700. .IP \(bu 2
  233701. \fBPR\fP \fI\%#28826\fP: (\fI\%basepi\fP) [2015.8] Add new tornado deps to salt\-ssh thin (refs: \fI\%#28832\fP)
  233702. @ \fI2015\-11\-12 18:14:43 UTC\fP
  233703. .INDENT 2.0
  233704. .IP \(bu 2
  233705. 49992070db Merge pull request \fI\%#28826\fP from basepi/salt\-ssh.singledispatch.thin
  233706. .IP \(bu 2
  233707. 1e1a74fd61 Add backports_abc and singledispatch_helpers to thin as well
  233708. .IP \(bu 2
  233709. da1a2773dd Add singledispatch to the thin
  233710. .UNINDENT
  233711. .IP \(bu 2
  233712. \fBPR\fP \fI\%#28759\fP: (\fI\%jfindlay\fP) simplify stdin use of stdin in at.present state
  233713. @ \fI2015\-11\-12 18:11:55 UTC\fP
  233714. .INDENT 2.0
  233715. .IP \(bu 2
  233716. \fBPR\fP \fI\%#28187\fP: (\fI\%sjansen\fP) fix at.present (refs: \fI\%#28759\fP)
  233717. .IP \(bu 2
  233718. af52c3272f Merge pull request \fI\%#28759\fP from jfindlay/at
  233719. .IP \(bu 2
  233720. 987d1fee7c simplify stdin use of stdin in at.present state
  233721. .UNINDENT
  233722. .IP \(bu 2
  233723. \fBPR\fP \fI\%#28824\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28778\fP and \fI\%#28820\fP to 2015.8
  233724. @ \fI2015\-11\-12 18:06:31 UTC\fP
  233725. .INDENT 2.0
  233726. .IP \(bu 2
  233727. \fBPR\fP \fI\%#28820\fP: (\fI\%cro\fP) Add versionadded directives for chronos and marathon proxy grains. (refs: \fI\%#28824\fP)
  233728. .IP \(bu 2
  233729. \fBPR\fP \fI\%#28778\fP: (\fI\%toddtomkinson\fP) marathon and chronos proxy minions (refs: \fI\%#28824\fP)
  233730. .IP \(bu 2
  233731. 08891cb210 Merge pull request \fI\%#28824\fP from rallytime/bp\-28778\-and\-28820
  233732. .IP \(bu 2
  233733. ab5943995b Change versionaddeds to 2015.8.2 from Boron
  233734. .IP \(bu 2
  233735. da7ad0df99 Add versionadded directives.
  233736. .IP \(bu 2
  233737. 4bdd10fdf5 documentation updates
  233738. .IP \(bu 2
  233739. 675bc2acce more pylint fixes
  233740. .IP \(bu 2
  233741. 8e19b5c518 pylint fixes
  233742. .IP \(bu 2
  233743. ba94878f45 marathon and chronos proxy minions
  233744. .UNINDENT
  233745. .IP \(bu 2
  233746. \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)
  233747. .IP \(bu 2
  233748. \fBPR\fP \fI\%#28803\fP: (\fI\%jfindlay\fP) decode strings to utf\-8
  233749. @ \fI2015\-11\-12 04:59:38 UTC\fP
  233750. .INDENT 2.0
  233751. .IP \(bu 2
  233752. 30ea94439c Merge pull request \fI\%#28803\fP from jfindlay/sdecodes
  233753. .IP \(bu 2
  233754. 11163380cf sdecode chunk name in state compiler
  233755. .IP \(bu 2
  233756. 7f95c483e1 sdecode strings in file state
  233757. .IP \(bu 2
  233758. fe4d08526d sdecode strings in highstate outputter
  233759. .UNINDENT
  233760. .IP \(bu 2
  233761. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  233762. .IP \(bu 2
  233763. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  233764. .IP \(bu 2
  233765. \fBPR\fP \fI\%#28782\fP: (\fI\%rallytime\fP) Fixes to rabbitmq user state
  233766. @ \fI2015\-11\-12 00:59:57 UTC\fP
  233767. .INDENT 2.0
  233768. .IP \(bu 2
  233769. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  233770. .IP \(bu 2
  233771. 59b505ff7c Merge pull request \fI\%#28782\fP from rallytime/rabbitmq\-user\-state
  233772. .IP \(bu 2
  233773. e2b0fee57e Don\(aqt change perms list, only existing perms should be a dictionary.
  233774. .IP \(bu 2
  233775. 7601647d69 Revert "rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list."
  233776. .UNINDENT
  233777. .IP \(bu 2
  233778. \fBISSUE\fP \fI\%#28429\fP: (\fI\%cbuechler\fP) salt\-cloud VMware driver fails with uncustomizable guest when not customizing guest (refs: \fI\%#28789\fP)
  233779. .IP \(bu 2
  233780. \fBPR\fP \fI\%#28789\fP: (\fI\%nmadhok\fP) Provide ability to enable/disable customization for newly create VMs using VMware salt\-cloud driver
  233781. @ \fI2015\-11\-11 22:48:57 UTC\fP
  233782. .INDENT 2.0
  233783. .IP \(bu 2
  233784. 098d48ad26 Merge pull request \fI\%#28789\fP from nmadhok/2015.8\-customization\-fix
  233785. .IP \(bu 2
  233786. 9294ebd984 Provide ability to enable/disable customization for new VMs. Fixes \fI\%#28429\fP
  233787. .UNINDENT
  233788. .IP \(bu 2
  233789. \fBISSUE\fP \fI\%#28692\fP: (\fI\%mrosedale\fP) puppet.run fails with arguments (refs: \fI\%#28768\fP)
  233790. .IP \(bu 2
  233791. \fBPR\fP \fI\%#28768\fP: (\fI\%mrosedale\fP) 2015.8
  233792. @ \fI2015\-11\-11 19:29:11 UTC\fP
  233793. .INDENT 2.0
  233794. .IP \(bu 2
  233795. 1e510be55b Merge pull request \fI\%#28768\fP from mrosedale/2015.8
  233796. .IP \(bu 2
  233797. fbbbdcc02e Update puppet.py
  233798. .IP \(bu 2
  233799. 1c1a4b4410 Update puppet.py
  233800. .IP \(bu 2
  233801. 59bd6aef5c Merge pull request \fI\%#1\fP from mrosedale/mrosedale\-patch\-1
  233802. .INDENT 2.0
  233803. .IP \(bu 2
  233804. c26ea916aa Update puppet.py
  233805. .UNINDENT
  233806. .UNINDENT
  233807. .IP \(bu 2
  233808. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  233809. .IP \(bu 2
  233810. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  233811. .IP \(bu 2
  233812. \fBPR\fP \fI\%#28772\fP: (\fI\%rallytime\fP) rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list.
  233813. @ \fI2015\-11\-11 18:17:09 UTC\fP
  233814. .INDENT 2.0
  233815. .IP \(bu 2
  233816. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  233817. .IP \(bu 2
  233818. a6cad46301 Merge pull request \fI\%#28772\fP from rallytime/rabbitmq\-user\-state
  233819. .IP \(bu 2
  233820. 07482211eb rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list.
  233821. .UNINDENT
  233822. .IP \(bu 2
  233823. \fBISSUE\fP \fI\%#28724\fP: (\fI\%quantonganh\fP) Exception occurred when calling boto_vpc.route_table_present with test=True (refs: \fI\%#28725\fP)
  233824. .IP \(bu 2
  233825. \fBPR\fP \fI\%#28774\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28725\fP to 2015.8
  233826. @ \fI2015\-11\-11 18:16:27 UTC\fP
  233827. .INDENT 2.0
  233828. .IP \(bu 2
  233829. \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)
  233830. .IP \(bu 2
  233831. d570ac48f4 Merge pull request \fI\%#28774\fP from rallytime/bp\-28725
  233832. .IP \(bu 2
  233833. c3420461c3 boto_vpc: return an empty dict in case cannot get the route tables
  233834. .UNINDENT
  233835. .IP \(bu 2
  233836. \fBPR\fP \fI\%#28775\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2015.8
  233837. @ \fI2015\-11\-11 17:57:24 UTC\fP
  233838. .INDENT 2.0
  233839. .IP \(bu 2
  233840. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28775\fP, \fI\%#28776\fP)
  233841. .IP \(bu 2
  233842. 806d1b3669 Merge pull request \fI\%#28775\fP from rallytime/bp\-28740
  233843. .IP \(bu 2
  233844. 8a2780da18 Add missing S3 module import
  233845. .UNINDENT
  233846. .IP \(bu 2
  233847. \fBPR\fP \fI\%#28755\fP: (\fI\%rallytime\fP) Move most vmware driver list_* functions to use salt.utils.vmware functions
  233848. @ \fI2015\-11\-11 17:49:16 UTC\fP
  233849. .INDENT 2.0
  233850. .IP \(bu 2
  233851. f273c46f07 Merge pull request \fI\%#28755\fP from rallytime/vmware\-utils
  233852. .IP \(bu 2
  233853. 5abe010023 Move most vmware driver list_* functions to use salt.utils.vmware functions
  233854. .UNINDENT
  233855. .IP \(bu 2
  233856. \fBISSUE\fP \fI\%#28655\fP: (\fI\%sjorge\fP) possible issue with state module boto_cfn/docker/... (refs: \fI\%#28744\fP)
  233857. .IP \(bu 2
  233858. \fBPR\fP \fI\%#28744\fP: (\fI\%jfindlay\fP) import gate elementtree
  233859. @ \fI2015\-11\-11 16:29:12 UTC\fP
  233860. .INDENT 2.0
  233861. .IP \(bu 2
  233862. 0d912bf0d4 Merge pull request \fI\%#28744\fP from jfindlay/elementttree
  233863. .IP \(bu 2
  233864. e321d60002 import gate elementtree in artifactory module
  233865. .IP \(bu 2
  233866. f20f3f697b import gate elementtree in boto_iam state
  233867. .IP \(bu 2
  233868. 9845d2f2c6 import gate elementtree in boto_cfn state
  233869. .UNINDENT
  233870. .IP \(bu 2
  233871. \fBISSUE\fP \fI\%#28726\fP: (\fI\%feigenblatt\fP) user.present ignores "createhome: False" (refs: \fI\%#28758\fP)
  233872. .IP \(bu 2
  233873. \fBPR\fP \fI\%#28758\fP: (\fI\%jfindlay\fP) remove redundant logic in useradd execution module
  233874. @ \fI2015\-11\-11 16:22:21 UTC\fP
  233875. .INDENT 2.0
  233876. .IP \(bu 2
  233877. b65e786351 Merge pull request \fI\%#28758\fP from jfindlay/user
  233878. .IP \(bu 2
  233879. dbd582cd8d fix doc formatting in user.present state
  233880. .IP \(bu 2
  233881. 3824d2e9fc only change/report new home when createhome is True
  233882. .IP \(bu 2
  233883. 3fbf81611f remove redundant logic in useradd execution module
  233884. .UNINDENT
  233885. .IP \(bu 2
  233886. \fBPR\fP \fI\%#28757\fP: (\fI\%mbarrien\fP) Bug fix: pip command to not quote spaces in cmd line args
  233887. @ \fI2015\-11\-11 16:08:46 UTC\fP
  233888. .INDENT 2.0
  233889. .IP \(bu 2
  233890. 6eced26013 Merge pull request \fI\%#28757\fP from mbarrien/fix\-pip\-cmd
  233891. .IP \(bu 2
  233892. 6df6cb82a6 Fix pip command to not quote spaces in cmd line args
  233893. .UNINDENT
  233894. .IP \(bu 2
  233895. \fBPR\fP \fI\%#28764\fP: (\fI\%multani\fP) Various documentation fixes
  233896. @ \fI2015\-11\-11 16:06:10 UTC\fP
  233897. .INDENT 2.0
  233898. .IP \(bu 2
  233899. 356bf2987d Merge pull request \fI\%#28764\fP from multani/fix/docs
  233900. .IP \(bu 2
  233901. 1a31b69763 doc: fix documentation formatting in salt.utils.jinja
  233902. .IP \(bu 2
  233903. 59c105b4b9 doc: fix documentation formatting in salt.states.boto_iam*
  233904. .IP \(bu 2
  233905. cbb167c8ee doc: fix documentation formatting in in salt.modules.lxc
  233906. .IP \(bu 2
  233907. cb03a89e52 doc: fix documentation formatting in salt.modules.aptpkg
  233908. .UNINDENT
  233909. .IP \(bu 2
  233910. \fBPR\fP \fI\%#28752\fP: (\fI\%aboe76\fP) Update openSUSE grain for tumbleweed
  233911. @ \fI2015\-11\-11 03:54:37 UTC\fP
  233912. .INDENT 2.0
  233913. .IP \(bu 2
  233914. d77c24e70d Merge pull request \fI\%#28752\fP from aboe76/suse_tumbleweed_grain
  233915. .IP \(bu 2
  233916. 764cb16ef0 Update openSUSE grain for tumbleweed
  233917. .UNINDENT
  233918. .IP \(bu 2
  233919. \fBISSUE\fP \fI\%#28712\fP: (\fI\%hexedpackets\fP) Service registration in the Consul module is broken (refs: \fI\%#28713\fP)
  233920. .IP \(bu 2
  233921. \fBPR\fP \fI\%#28713\fP: (\fI\%hexedpackets\fP) Rename consul.list to consul.list_keys.
  233922. @ \fI2015\-11\-11 00:57:23 UTC\fP
  233923. .INDENT 2.0
  233924. .IP \(bu 2
  233925. a620bc5596 Merge pull request \fI\%#28713\fP from hexedpackets/fix\-consul\-module
  233926. .IP \(bu 2
  233927. 0889907b3c Make consul.list a function alias.
  233928. .UNINDENT
  233929. .IP \(bu 2
  233930. \fBPR\fP \fI\%#28719\fP: (\fI\%jacobhammons\fP) removed dependencies info from docs
  233931. @ \fI2015\-11\-10 00:04:53 UTC\fP
  233932. .INDENT 2.0
  233933. .IP \(bu 2
  233934. decc31a766 Merge pull request \fI\%#28719\fP from jacobhammons/spm
  233935. .IP \(bu 2
  233936. d7017be031 removed dependencies info from docs
  233937. .UNINDENT
  233938. .IP \(bu 2
  233939. \fBPR\fP \fI\%#28709\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  233940. @ \fI2015\-11\-09 23:38:27 UTC\fP
  233941. .INDENT 2.0
  233942. .IP \(bu 2
  233943. 989069f44a Merge pull request \fI\%#28709\fP from basepi/merge\-forward\-2015.8
  233944. .IP \(bu 2
  233945. 2d04ddc108 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233946. .INDENT 2.0
  233947. .IP \(bu 2
  233948. f40c617bad Merge pull request \fI\%#28705\fP from cachedout/tornado_http_headers
  233949. .INDENT 2.0
  233950. .IP \(bu 2
  233951. 7ac6cde1ee Account for new headers class in tornado 4.3
  233952. .UNINDENT
  233953. .UNINDENT
  233954. .IP \(bu 2
  233955. c90431eddc Rip out unit test that doesn\(aqt apply anymore
  233956. .IP \(bu 2
  233957. aeeaa7c90d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233958. .INDENT 2.0
  233959. .IP \(bu 2
  233960. 604a7b4199 Merge pull request \fI\%#28699\fP from rallytime/bp\-28670
  233961. .INDENT 2.0
  233962. .IP \(bu 2
  233963. e436b23296 psutil can fail to look\-up a uid and raise a KeyError
  233964. .UNINDENT
  233965. .IP \(bu 2
  233966. 7bd3eb8370 Merge pull request \fI\%#28703\fP from rallytime/bp\-28690
  233967. .INDENT 2.0
  233968. .IP \(bu 2
  233969. a0988dab58 Fix 28689 : Check s3 ext pillar cache file before calculating expiration
  233970. .UNINDENT
  233971. .IP \(bu 2
  233972. 2a40f57b93 Merge pull request \fI\%#28694\fP from s0undt3ch/2015.5
  233973. .INDENT 2.0
  233974. .IP \(bu 2
  233975. 0910c6ffe4 Update to latest bootstrap script v2015.11.09
  233976. .UNINDENT
  233977. .IP \(bu 2
  233978. 3249b322e8 Merge pull request \fI\%#28669\fP from rallytime/fix\-26592
  233979. .INDENT 2.0
  233980. .IP \(bu 2
  233981. 098fb815af Use the \-q argument to strip extraneous messages from rabbitmq
  233982. .UNINDENT
  233983. .IP \(bu 2
  233984. 29e8250d0c Merge pull request \fI\%#28645\fP from jacksontj/2015.5
  233985. .INDENT 2.0
  233986. .IP \(bu 2
  233987. f63c2d70a7 Rework minion return_retry_timer
  233988. .UNINDENT
  233989. .IP \(bu 2
  233990. 1bbaea8aad Merge pull request \fI\%#28668\fP from twangboy/fix_15177
  233991. .INDENT 2.0
  233992. .IP \(bu 2
  233993. 745b8f75f6 Fixed some lint
  233994. .IP \(bu 2
  233995. a43eb53f28 Added version added notes in docs
  233996. .IP \(bu 2
  233997. 6b537c8640 Fixed join_domain and unjoin_domain for Windows
  233998. .UNINDENT
  233999. .IP \(bu 2
  234000. 4ad5056066 Merge pull request \fI\%#28666\fP from jfindlay/r_data
  234001. .INDENT 2.0
  234002. .IP \(bu 2
  234003. 29228f445f define r_data before using it in file module
  234004. .UNINDENT
  234005. .IP \(bu 2
  234006. e129e889ad Merge pull request \fI\%#28662\fP from cachedout/issue_24758
  234007. .INDENT 2.0
  234008. .IP \(bu 2
  234009. 78f4894333 Add note about disabling master_alive_interval
  234010. .UNINDENT
  234011. .IP \(bu 2
  234012. df121d0cec Merge pull request \fI\%#28627\fP from twangboy/backport_win_useradd
  234013. .INDENT 2.0
  234014. .IP \(bu 2
  234015. 87282b6354 Backport win_useradd
  234016. .UNINDENT
  234017. .UNINDENT
  234018. .UNINDENT
  234019. .IP \(bu 2
  234020. \fBISSUE\fP \fI\%#28469\fP: (\fI\%mlalpho\fP) state boto_secgroup.present fails to find vpc_name (refs: \fI\%#28710\fP, \fI\%#28534\fP)
  234021. .IP \(bu 2
  234022. \fBPR\fP \fI\%#28710\fP: (\fI\%rallytime\fP) Pass kwargs correctly to _get_group from get_group_id
  234023. @ \fI2015\-11\-09 22:29:09 UTC\fP
  234024. .INDENT 2.0
  234025. .IP \(bu 2
  234026. 8d5ab15c16 Merge pull request \fI\%#28710\fP from rallytime/fix\-28469
  234027. .IP \(bu 2
  234028. 0571608f5d Pass kwargs correctly to _get_group from get_group_id
  234029. .UNINDENT
  234030. .IP \(bu 2
  234031. \fBPR\fP \fI\%#28698\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28530\fP to 2015.8
  234032. @ \fI2015\-11\-09 18:11:51 UTC\fP
  234033. .INDENT 2.0
  234034. .IP \(bu 2
  234035. \fBPR\fP \fI\%#28530\fP: (\fI\%skizunov\fP) AsyncTCPReqChannel will fail after 10 uses (refs: \fI\%#28614\fP, \fI\%#28698\fP)
  234036. .IP \(bu 2
  234037. cfa0cec19c Merge pull request \fI\%#28698\fP from rallytime/bp\-28530
  234038. .IP \(bu 2
  234039. d94d0db805 AsyncTCPReqChannel will fail after 10 uses
  234040. .UNINDENT
  234041. .IP \(bu 2
  234042. \fBISSUE\fP \fI\%#28678\fP: (\fI\%johnsocp\fP) Error in netapi/rest_tornado preventing it from starting (refs: \fI\%#28679\fP)
  234043. .IP \(bu 2
  234044. \fBPR\fP \fI\%#28700\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28679\fP to 2015.8
  234045. @ \fI2015\-11\-09 18:07:44 UTC\fP
  234046. .INDENT 2.0
  234047. .IP \(bu 2
  234048. \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)
  234049. .IP \(bu 2
  234050. 2fe9e2e7c5 Merge pull request \fI\%#28700\fP from rallytime/bp\-28679
  234051. .IP \(bu 2
  234052. 4e0870e636 Adding variable definition for issue \fI\%#28678\fP
  234053. .IP \(bu 2
  234054. \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)
  234055. .UNINDENT
  234056. .IP \(bu 2
  234057. \fBPR\fP \fI\%#28695\fP: (\fI\%s0undt3ch\fP) [2015.8] Update to latest bootstrap script v2015.11.09
  234058. @ \fI2015\-11\-09 17:50:15 UTC\fP
  234059. .INDENT 2.0
  234060. .IP \(bu 2
  234061. 8ccea2a855 Merge pull request \fI\%#28695\fP from s0undt3ch/2015.8
  234062. .IP \(bu 2
  234063. bb6c60a330 Update to latest bootstrap script v2015.11.09
  234064. .UNINDENT
  234065. .IP \(bu 2
  234066. \fBISSUE\fP \fI\%#28526\fP: (\fI\%clarkperkins\fP) yumpkg.installed broken in salt v2015.8.1 on CentOS 6 minions (refs: \fI\%#28656\fP)
  234067. .IP \(bu 2
  234068. \fBPR\fP \fI\%#28656\fP: (\fI\%clarkperkins\fP) \fI\%#28526\fP fixed yumpkg module issue with pkg.installed
  234069. @ \fI2015\-11\-09 05:16:00 UTC\fP
  234070. .INDENT 2.0
  234071. .IP \(bu 2
  234072. 61ba00b1c3 Merge pull request \fI\%#28656\fP from clarkperkins/bugfix/fix\-yumpkg\-module
  234073. .IP \(bu 2
  234074. e11f87be93 \fI\%#28526\fP fixed yumpkg module
  234075. .UNINDENT
  234076. .IP \(bu 2
  234077. \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)
  234078. .IP \(bu 2
  234079. \fBPR\fP \fI\%#28672\fP: (\fI\%jfindlay\fP) add OS grain support for SuSE Leap
  234080. @ \fI2015\-11\-08 01:05:51 UTC\fP
  234081. .INDENT 2.0
  234082. .IP \(bu 2
  234083. 54484e4e29 Merge pull request \fI\%#28672\fP from jfindlay/suse_grain
  234084. .IP \(bu 2
  234085. b44ba6fa9c add OS grain support for SuSE Leap
  234086. .UNINDENT
  234087. .IP \(bu 2
  234088. \fBISSUE\fP \fI\%#28603\fP: (\fI\%alexharrington\fP) MooseFS/LizardFS mount options force remount (refs: \fI\%#28673\fP)
  234089. .IP \(bu 2
  234090. \fBPR\fP \fI\%#28673\fP: (\fI\%jfindlay\fP) add hidden_opts to mount.mounted
  234091. @ \fI2015\-11\-08 00:51:19 UTC\fP
  234092. .INDENT 2.0
  234093. .IP \(bu 2
  234094. 476f55ebc0 Merge pull request \fI\%#28673\fP from jfindlay/mount_hide
  234095. .IP \(bu 2
  234096. 1dcaa8e1d7 add hidden_opts to mount.mounted
  234097. .IP \(bu 2
  234098. d3aff8f6b8 minor refactor of mount state
  234099. .UNINDENT
  234100. .IP \(bu 2
  234101. \fBPR\fP \fI\%#28667\fP: (\fI\%cro\fP) saltutil.sync_all should sync proxymodules as well as the rest.
  234102. @ \fI2015\-11\-07 01:09:28 UTC\fP
  234103. .INDENT 2.0
  234104. .IP \(bu 2
  234105. 24d75709fa Merge pull request \fI\%#28667\fP from cro/proxy_sync_all
  234106. .IP \(bu 2
  234107. 08e53b317f Sync proxymodules with sync_all
  234108. .UNINDENT
  234109. .IP \(bu 2
  234110. \fBPR\fP \fI\%#28665\fP: (\fI\%jfindlay\fP) fixes to windows execution and state modules
  234111. @ \fI2015\-11\-07 00:47:38 UTC\fP
  234112. .INDENT 2.0
  234113. .IP \(bu 2
  234114. 019c13948a Merge pull request \fI\%#28665\fP from jfindlay/win_fixorz
  234115. .IP \(bu 2
  234116. e8c7371b56 fix minor doc issues in win_system module
  234117. .IP \(bu 2
  234118. 5828f391b9 handle error on nonexistent net dev in win_network
  234119. .IP \(bu 2
  234120. d1560f9ea9 check for wua time setting as a str
  234121. .UNINDENT
  234122. .IP \(bu 2
  234123. \fBISSUE\fP \fI\%#28542\fP: (\fI\%Ch3LL\fP) s3.get execution module returns error (refs: \fI\%#28660\fP)
  234124. .IP \(bu 2
  234125. \fBPR\fP \fI\%#28660\fP: (\fI\%techhat\fP) Don\(aqt sign empty regions
  234126. @ \fI2015\-11\-06 20:49:25 UTC\fP
  234127. .INDENT 2.0
  234128. .IP \(bu 2
  234129. ce3ce7ddf2 Merge pull request \fI\%#28660\fP from techhat/emptyregion
  234130. .IP \(bu 2
  234131. a52518494a Don\(aqt sign empty regions
  234132. .UNINDENT
  234133. .IP \(bu 2
  234134. \fBPR\fP \fI\%#28632\fP: (\fI\%terminalmage\fP) Fixes/improvements to pkgbuild state/modules
  234135. @ \fI2015\-11\-06 20:48:07 UTC\fP
  234136. .INDENT 2.0
  234137. .IP \(bu 2
  234138. 0583575f82 Merge pull request \fI\%#28632\fP from terminalmage/pkgbuild\-fixes
  234139. .IP \(bu 2
  234140. 59f31b4dca Initialize logging in pkgbuild state
  234141. .IP \(bu 2
  234142. af0b2c4a33 Fix false\-positives for pkgbuild.built state
  234143. .IP \(bu 2
  234144. d83e779eac rpmbuild: Change return data to include a list of packages built
  234145. .IP \(bu 2
  234146. 03d9321379 debbuild: Change return data to include a list of packages built
  234147. .UNINDENT
  234148. .IP \(bu 2
  234149. \fBISSUE\fP \fI\%#28591\fP: (\fI\%ssgward\fP) SPM package install error (refs: \fI\%#28658\fP)
  234150. .IP \(bu 2
  234151. \fBPR\fP \fI\%#28658\fP: (\fI\%techhat\fP) Remove _pkgdb_fun() references
  234152. @ \fI2015\-11\-06 20:25:59 UTC\fP
  234153. .INDENT 2.0
  234154. .IP \(bu 2
  234155. b82abadd9b Merge pull request \fI\%#28658\fP from techhat/issue28591
  234156. .IP \(bu 2
  234157. 4f2b175467 Remove _pkgdb_fun() references
  234158. .UNINDENT
  234159. .IP \(bu 2
  234160. \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)
  234161. .IP \(bu 2
  234162. \fBPR\fP \fI\%#28653\fP: (\fI\%rallytime\fP) Provide possible parameters for boto_rds.present engine values
  234163. @ \fI2015\-11\-06 18:58:35 UTC\fP
  234164. .INDENT 2.0
  234165. .IP \(bu 2
  234166. e59d160120 Merge pull request \fI\%#28653\fP from rallytime/boto_rds_engine_docs
  234167. .IP \(bu 2
  234168. 7b30d7e002 Provide possible parameters for boto_rds.present engine values
  234169. .UNINDENT
  234170. .IP \(bu 2
  234171. \fBPR\fP \fI\%#28649\fP: (\fI\%bdrung\fP) Fix OS related grains on Debian
  234172. @ \fI2015\-11\-06 18:25:46 UTC\fP
  234173. .INDENT 2.0
  234174. .IP \(bu 2
  234175. 911761d8bc Merge pull request \fI\%#28649\fP from bdrung/2015.8
  234176. .IP \(bu 2
  234177. 92a17d4cae Fix OS related grains on Debian
  234178. .UNINDENT
  234179. .IP \(bu 2
  234180. \fBISSUE\fP \fI\%#26889\fP: (\fI\%UtahDave\fP) salt\-call w/non root user outputs repeating error (refs: \fI\%#28113\fP, \fI\%#27343\fP)
  234181. .IP \(bu 2
  234182. \fBPR\fP \fI\%#28646\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28614\fP to 2015.8
  234183. @ \fI2015\-11\-06 18:19:08 UTC\fP
  234184. .INDENT 2.0
  234185. .IP \(bu 2
  234186. \fBPR\fP \fI\%#28614\fP: (\fI\%skizunov\fP) Fixed memory leak in AsyncTCPReqChannel (refs: \fI\%#28646\fP)
  234187. .IP \(bu 2
  234188. \fBPR\fP \fI\%#28530\fP: (\fI\%skizunov\fP) AsyncTCPReqChannel will fail after 10 uses (refs: \fI\%#28614\fP, \fI\%#28698\fP)
  234189. .IP \(bu 2
  234190. \fBPR\fP \fI\%#28113\fP: (\fI\%skizunov\fP) \(aqRuntimeError: IOLoop is closing\(aq thrown in Minion on TCP transport (refs: \fI\%#28614\fP)
  234191. .IP \(bu 2
  234192. \fBPR\fP \fI\%#27343\fP: (\fI\%cachedout\fP) Close io loop before deleting attribute (refs: \fI\%#28614\fP)
  234193. .IP \(bu 2
  234194. 7531bc7334 Merge pull request \fI\%#28646\fP from rallytime/bp\-28614
  234195. .IP \(bu 2
  234196. 034cf28e57 Fixed memory leak in AsyncTCPReqChannel
  234197. .UNINDENT
  234198. .IP \(bu 2
  234199. \fBPR\fP \fI\%#28647\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28624\fP to 2015.8
  234200. @ \fI2015\-11\-06 18:18:32 UTC\fP
  234201. .INDENT 2.0
  234202. .IP \(bu 2
  234203. \fBPR\fP \fI\%#28624\fP: (\fI\%hyn\-salt\fP) Added reasoning why boto_cloudwatch.py cannot be loaded. (refs: \fI\%#28647\fP)
  234204. .IP \(bu 2
  234205. a829120746 Merge pull request \fI\%#28647\fP from rallytime/bp\-28624
  234206. .IP \(bu 2
  234207. 3b59cfae5f Added reasoning why boto_cloudwatch.py cannot be loaded.
  234208. .UNINDENT
  234209. .IP \(bu 2
  234210. \fBPR\fP \fI\%#28648\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  234211. @ \fI2015\-11\-06 17:46:59 UTC\fP
  234212. .INDENT 2.0
  234213. .IP \(bu 2
  234214. 52d70c986d Merge pull request \fI\%#28648\fP from rallytime/merge\-2015.8
  234215. .IP \(bu 2
  234216. 81c4974fde Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  234217. .INDENT 2.0
  234218. .IP \(bu 2
  234219. 64a20228c6 Merge pull request \fI\%#28617\fP from cachedout/umask_module_sync
  234220. .INDENT 2.0
  234221. .IP \(bu 2
  234222. 227792e158 Set restrictive umask on module sync
  234223. .UNINDENT
  234224. .IP \(bu 2
  234225. 065f8c7fb3 Merge pull request \fI\%#28622\fP from gravyboat/update_puppet_module_docs
  234226. .INDENT 2.0
  234227. .IP \(bu 2
  234228. 4ea28bed30 Update puppet module wording
  234229. .UNINDENT
  234230. .UNINDENT
  234231. .UNINDENT
  234232. .IP \(bu 2
  234233. \fBPR\fP \fI\%#28638\fP: (\fI\%anlutro\fP) Salt\-SSH: Return more concise error when SSH command fails
  234234. @ \fI2015\-11\-06 16:54:46 UTC\fP
  234235. .INDENT 2.0
  234236. .IP \(bu 2
  234237. 4722e41787 Merge pull request \fI\%#28638\fP from alprs/saltssh\-handle_ssh_errors
  234238. .IP \(bu 2
  234239. 5419b98363 return concise error when ssh fails
  234240. .UNINDENT
  234241. .IP \(bu 2
  234242. \fBPR\fP \fI\%#28644\fP: (\fI\%pass\-by\-value\fP) Make sure versionchanged is correct
  234243. @ \fI2015\-11\-06 16:53:31 UTC\fP
  234244. .INDENT 2.0
  234245. .IP \(bu 2
  234246. e72e60d4b4 Merge pull request \fI\%#28644\fP from pass\-by\-value/update_versionchanged
  234247. .IP \(bu 2
  234248. f4c297e794 Make sure versionchanged is correct
  234249. .UNINDENT
  234250. .IP \(bu 2
  234251. \fBISSUE\fP \fI\%#8\fP: (\fI\%thatch45\fP) Network persistence (refs: \fI\%#28615\fP)
  234252. .IP \(bu 2
  234253. \fBISSUE\fP \fI\%#64\fP: (\fI\%thatch45\fP) State file rendering system (refs: \fI\%#28615\fP)
  234254. .IP \(bu 2
  234255. \fBISSUE\fP \fI\%#54\fP: (\fI\%thatch45\fP) Release items (refs: \fI\%#28615\fP)
  234256. .IP \(bu 2
  234257. \fBPR\fP \fI\%#28615\fP: (\fI\%The\-Loeki\fP) Fixes to FreeBSD pkg
  234258. @ \fI2015\-11\-05 23:43:33 UTC\fP
  234259. .INDENT 2.0
  234260. .IP \(bu 2
  234261. \fBPR\fP \fI\%#198\fP: (\fI\%techhat\fP) Basic salt support for Tomcat (refs: \fI\%#28615\fP)
  234262. .IP \(bu 2
  234263. cf79722260 Merge pull request \fI\%#28615\fP from The\-Loeki/patch\-1
  234264. .IP \(bu 2
  234265. a9ee178e0d rehash is a shell builtin, needs cmd.shell to work
  234266. .IP \(bu 2
  234267. 17f3852bdd environ.get has no output_loglevel
  234268. .UNINDENT
  234269. .IP \(bu 2
  234270. \fBPR\fP \fI\%#28613\fP: (\fI\%cachedout\fP) Add facility to deepcopy bound methods in Py2.6 and apply to grains
  234271. @ \fI2015\-11\-05 23:28:50 UTC\fP
  234272. .INDENT 2.0
  234273. .IP \(bu 2
  234274. \fBPR\fP \fI\%#28587\fP: (\fI\%cachedout\fP) Reset yaml rendering hooks to avoid leaks (refs: \fI\%#28613\fP)
  234275. .IP \(bu 2
  234276. 9196c57e3f Merge pull request \fI\%#28613\fP from cachedout/py26_method_deepcopy
  234277. .IP \(bu 2
  234278. 0935fcf4fc Spelling is hard
  234279. .IP \(bu 2
  234280. 2435b45195 Move to compat module to avoid namespace collisions in salt.utils
  234281. .IP \(bu 2
  234282. f519661875 Add facility to deepcopy bound methods in Py2.6 and apply to grains
  234283. .UNINDENT
  234284. .IP \(bu 2
  234285. \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)
  234286. .IP \(bu 2
  234287. \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)
  234288. .IP \(bu 2
  234289. \fBPR\fP \fI\%#28612\fP: (\fI\%rallytime\fP) Remove unsupported storage_type argument for parity with boto_rds module
  234290. @ \fI2015\-11\-05 19:07:42 UTC\fP
  234291. .INDENT 2.0
  234292. .IP \(bu 2
  234293. \fBPR\fP \fI\%#28561\fP: (\fI\%Oro\fP) Issue \fI\%#28527\fP boto_rds.create does not work (refs: \fI\%#28612\fP)
  234294. .IP \(bu 2
  234295. 2032d61e68 Merge pull request \fI\%#28612\fP from rallytime/fix\-28470
  234296. .IP \(bu 2
  234297. 8fd26a5488 Remove unsupported storage_type argument for parity with boto_rds module
  234298. .UNINDENT
  234299. .IP \(bu 2
  234300. \fBPR\fP \fI\%#28611\fP: (\fI\%rallytime\fP) [2015.8] Be explicit about salt.utils.vmware function calls
  234301. @ \fI2015\-11\-05 18:43:36 UTC\fP
  234302. .INDENT 2.0
  234303. .IP \(bu 2
  234304. d81330ac7f Merge pull request \fI\%#28611\fP from rallytime/vmware\-utils\-fix
  234305. .IP \(bu 2
  234306. f46547eb56 [2015.8] Be explicit about salt.utils.vmware function calls and avoid namespacing
  234307. .UNINDENT
  234308. .IP \(bu 2
  234309. \fBPR\fP \fI\%#28610\fP: (\fI\%pass\-by\-value\fP) Lxc config additions
  234310. @ \fI2015\-11\-05 18:43:05 UTC\fP
  234311. .INDENT 2.0
  234312. .IP \(bu 2
  234313. 35dbca24e7 Merge pull request \fI\%#28610\fP from pass\-by\-value/lxc_config_additions
  234314. .IP \(bu 2
  234315. 83193641ca Add doc about cloud lxc options
  234316. .IP \(bu 2
  234317. 8977ddad59 Add argument to init
  234318. .IP \(bu 2
  234319. 2be3f8b5bb Add bootstrap delay and systemd check options
  234320. .UNINDENT
  234321. .IP \(bu 2
  234322. \fBISSUE\fP \fI\%#28601\fP: (\fI\%nasenbaer13\fP) boto_asg.present overwrites custom dimensions in alarms (refs: \fI\%#28602\fP)
  234323. .IP \(bu 2
  234324. \fBPR\fP \fI\%#28602\fP: (\fI\%nasenbaer13\fP) Allow setting of custom dimensions in asg alarm specification
  234325. @ \fI2015\-11\-05 15:00:24 UTC\fP
  234326. .INDENT 2.0
  234327. .IP \(bu 2
  234328. 464aa6b062 Merge pull request \fI\%#28602\fP from eyj/fix\-28601
  234329. .IP \(bu 2
  234330. 963ad4250a Allow setting of custom dimensions in asg alarm specification
  234331. .UNINDENT
  234332. .IP \(bu 2
  234333. \fBPR\fP \fI\%#28596\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  234334. @ \fI2015\-11\-05 14:25:09 UTC\fP
  234335. .INDENT 2.0
  234336. .IP \(bu 2
  234337. 572d95b3e1 Merge pull request \fI\%#28596\fP from rallytime/merge\-2015.8
  234338. .IP \(bu 2
  234339. eec9d69387 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  234340. .INDENT 2.0
  234341. .IP \(bu 2
  234342. 08295de5a5 Merge pull request \fI\%#28563\fP from s0undt3ch/2015.5
  234343. .INDENT 2.0
  234344. .IP \(bu 2
  234345. 16f4db79a0 Update to latest bootstrap script v2015.11.04
  234346. .UNINDENT
  234347. .IP \(bu 2
  234348. 1e09f186ce Merge pull request \fI\%#28541\fP from twangboy/fix_28173
  234349. .INDENT 2.0
  234350. .IP \(bu 2
  234351. 7edf5ce370 Fixed problem with system.set_computer_name
  234352. .UNINDENT
  234353. .IP \(bu 2
  234354. f44ed780b5 Merge pull request \fI\%#28537\fP from jfindlay/decode_state_2015.5
  234355. .INDENT 2.0
  234356. .IP \(bu 2
  234357. 06e514940c decode filename to utf\-8 in file.recurse state
  234358. .UNINDENT
  234359. .IP \(bu 2
  234360. 6acf87593f Merge pull request \fI\%#28529\fP from rallytime/fix\-28272
  234361. .INDENT 2.0
  234362. .IP \(bu 2
  234363. a959681858 Add link to Sending a GH PR to documentation docs
  234364. .IP \(bu 2
  234365. 1c612e2772 Update contributing and documentation pages to recommend submitting against branches
  234366. .UNINDENT
  234367. .IP \(bu 2
  234368. 025bff2bf0 Merge pull request \fI\%#28548\fP from nmadhok/2015.5\-task\-error
  234369. .INDENT 2.0
  234370. .IP \(bu 2
  234371. 804a0a6537 Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  234372. .UNINDENT
  234373. .IP \(bu 2
  234374. 63bd3e52b3 Merge pull request \fI\%#28531\fP from rallytime/fix\-24585
  234375. .INDENT 2.0
  234376. .IP \(bu 2
  234377. bc577b2531 Add versionadded directives to virtualenv_mod state/module
  234378. .UNINDENT
  234379. .IP \(bu 2
  234380. ea3bf972c4 Merge pull request \fI\%#28508\fP from twangboy/fix_unit_tests_windows
  234381. .INDENT 2.0
  234382. .IP \(bu 2
  234383. 0da6ff7c50 Fixed some logic
  234384. .IP \(bu 2
  234385. cf1e059be5 Fixed windows tests
  234386. .UNINDENT
  234387. .IP \(bu 2
  234388. 73c5735fc1 Merge pull request \fI\%#28525\fP from rallytime/route53_spacing
  234389. .INDENT 2.0
  234390. .IP \(bu 2
  234391. 6ab2ce615c Fix spacing in doc examples for boto_route53 state and module
  234392. .UNINDENT
  234393. .IP \(bu 2
  234394. 2d7f934f67 Merge pull request \fI\%#28517\fP from rallytime/fix\-28243
  234395. .INDENT 2.0
  234396. .IP \(bu 2
  234397. be8f650901 Punctuation.
  234398. .IP \(bu 2
  234399. fd846822c1 Add state_auto_order defaults to True note to ordering docs
  234400. .UNINDENT
  234401. .UNINDENT
  234402. .UNINDENT
  234403. .IP \(bu 2
  234404. \fBPR\fP \fI\%#28593\fP: (\fI\%blueyed\fP) doc: fix typo with salt.states.file: s/preseve/preserve/
  234405. @ \fI2015\-11\-04 22:33:25 UTC\fP
  234406. .INDENT 2.0
  234407. .IP \(bu 2
  234408. 73c33e0b4a Merge pull request \fI\%#28593\fP from blueyed/fix\-typo\-preserve
  234409. .IP \(bu 2
  234410. eaf27d6ee7 doc: fix typo with salt.states.file: s/preseve/preserve/
  234411. .UNINDENT
  234412. .IP \(bu 2
  234413. \fBPR\fP \fI\%#28578\fP: (\fI\%twangboy\fP) Fixed the script... something got broke...
  234414. @ \fI2015\-11\-04 22:00:18 UTC\fP
  234415. .INDENT 2.0
  234416. .IP \(bu 2
  234417. 8b483ee354 Merge pull request \fI\%#28578\fP from twangboy/fix_windows_installer_script
  234418. .IP \(bu 2
  234419. 90b19a3279 Fixed the script... something got broke...
  234420. .UNINDENT
  234421. .IP \(bu 2
  234422. \fBPR\fP \fI\%#28579\fP: (\fI\%jfindlay\fP) fix __virtual__ returns: tls,uptime mods
  234423. @ \fI2015\-11\-04 22:00:02 UTC\fP
  234424. .INDENT 2.0
  234425. .IP \(bu 2
  234426. 7ca7ed4b37 Merge pull request \fI\%#28579\fP from jfindlay/virt_ret
  234427. .IP \(bu 2
  234428. 333c132378 fix __virtual__ returns: tls,uptime mods
  234429. .UNINDENT
  234430. .IP \(bu 2
  234431. \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)
  234432. .IP \(bu 2
  234433. \fBPR\fP \fI\%#28584\fP: (\fI\%rallytime\fP) If AssociatePublicIpAddress is set to True, don\(aqt auto\-assign eip.
  234434. @ \fI2015\-11\-04 21:59:38 UTC\fP
  234435. .INDENT 2.0
  234436. .IP \(bu 2
  234437. \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)
  234438. .IP \(bu 2
  234439. ae764c6b5c Merge pull request \fI\%#28584\fP from rallytime/fix\-27574
  234440. .IP \(bu 2
  234441. 490e1bd5bb If AssociatePublicIpAddress is set to True, don\(aqt auto\-assign eip.
  234442. .UNINDENT
  234443. .IP \(bu 2
  234444. \fBISSUE\fP \fI\%#28392\fP: (\fI\%jacksontj\fP) AsyncZeroMQReqChannel does not implement \fItries\fP (2015.8) (refs: \fI\%#28410\fP)
  234445. .IP \(bu 2
  234446. \fBPR\fP \fI\%#28576\fP: (\fI\%jacksontj\fP) Only encode the zmq message once
  234447. @ \fI2015\-11\-04 21:59:20 UTC\fP
  234448. .INDENT 2.0
  234449. .IP \(bu 2
  234450. \fBPR\fP \fI\%#28410\fP: (\fI\%jacksontj\fP) Add retries to the zeromq.AsyncReqMessageClient (refs: \fI\%#28576\fP)
  234451. .IP \(bu 2
  234452. 231cdd4316 Merge pull request \fI\%#28576\fP from jacksontj/transport
  234453. .IP \(bu 2
  234454. b29fc676a3 Only encode the zmq message once
  234455. .UNINDENT
  234456. .IP \(bu 2
  234457. \fBPR\fP \fI\%#28587\fP: (\fI\%cachedout\fP) Reset yaml rendering hooks to avoid leaks (refs: \fI\%#28613\fP)
  234458. @ \fI2015\-11\-04 21:37:11 UTC\fP
  234459. .INDENT 2.0
  234460. .IP \(bu 2
  234461. ab62f5cd12 Merge pull request \fI\%#28587\fP from cachedout/fix_yaml_render_leak
  234462. .IP \(bu 2
  234463. 2da64bd736 Reset yaml rendering hooks to avoid leaks
  234464. .UNINDENT
  234465. .IP \(bu 2
  234466. \fBISSUE\fP \fI\%#3436\fP: (\fI\%madduck\fP) Pillar does not handle Unicode data (refs: \fI\%#28134\fP, #saltstack/salt\(ga#28134\(ga_)
  234467. .INDENT 2.0
  234468. .IP \(bu 2
  234469. \fBPR\fP \fI\%saltstack/salt#28134\fP: (\fI\%bernieke\fP) fix unicode pillar values \fI\%#3436\fP (refs: \fI\%#28581\fP)
  234470. .UNINDENT
  234471. .IP \(bu 2
  234472. \fBPR\fP \fI\%#28581\fP: (\fI\%basepi\fP) Revert b4875e585a165482c4c1ddc8987d76b0a71ef1b0
  234473. @ \fI2015\-11\-04 19:28:20 UTC\fP
  234474. .INDENT 2.0
  234475. .IP \(bu 2
  234476. 69081d00e0 Merge pull request \fI\%#28581\fP from saltstack/revert\-28134\-2015.8
  234477. .IP \(bu 2
  234478. 0a07c90d5e Revert b4875e585a165482c4c1ddc8987d76b0a71ef1b0
  234479. .UNINDENT
  234480. .IP \(bu 2
  234481. \fBISSUE\fP \fI\%#28477\fP: (\fI\%anlutro\fP) KeyError with file.managed HTTPS source (refs: \fI\%#28573\fP)
  234482. .IP \(bu 2
  234483. \fBPR\fP \fI\%#28573\fP: (\fI\%jacksontj\fP) Add \fIbody\fP to salt.utils.http.query returns
  234484. @ \fI2015\-11\-04 17:18:19 UTC\fP
  234485. .INDENT 2.0
  234486. .IP \(bu 2
  234487. ea3658eac8 Merge pull request \fI\%#28573\fP from jacksontj/2015.8
  234488. .IP \(bu 2
  234489. d55ea7550b Add \fIbody\fP to salt.utils.http.query returns
  234490. .UNINDENT
  234491. .IP \(bu 2
  234492. \fBISSUE\fP \fI\%#655\fP: (\fI\%thatch45\fP) Add general command management to service (refs: #\(gasaltstack/salt\-bootstrap#656\(ga_)
  234493. .INDENT 2.0
  234494. .IP \(bu 2
  234495. \fBPR\fP \fI\%saltstack/salt\-bootstrap#674\fP: (\fI\%jfindlay\fP) add support for repo.saltstack.com (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234496. .IP \(bu 2
  234497. \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)
  234498. .IP \(bu 2
  234499. \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)
  234500. .IP \(bu 2
  234501. \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)
  234502. .IP \(bu 2
  234503. \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)
  234504. .UNINDENT
  234505. .IP \(bu 2
  234506. \fBPR\fP \fI\%#28564\fP: (\fI\%s0undt3ch\fP) [2015.8] Update to latest bootstrap script v2015.11.04
  234507. @ \fI2015\-11\-04 15:29:46 UTC\fP
  234508. .INDENT 2.0
  234509. .IP \(bu 2
  234510. 3a729c2b40 Merge pull request \fI\%#28564\fP from s0undt3ch/2015.8
  234511. .IP \(bu 2
  234512. b6a53a6bfb Update to latest bootstrap script v2015.11.04
  234513. .UNINDENT
  234514. .IP \(bu 2
  234515. \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)
  234516. .IP \(bu 2
  234517. \fBPR\fP \fI\%#28561\fP: (\fI\%Oro\fP) Issue \fI\%#28527\fP boto_rds.create does not work (refs: \fI\%#28612\fP)
  234518. @ \fI2015\-11\-04 15:13:09 UTC\fP
  234519. .INDENT 2.0
  234520. .IP \(bu 2
  234521. fed4c6f482 Merge pull request \fI\%#28561\fP from Oro/fix\-boto\-rds\-create
  234522. .IP \(bu 2
  234523. 54782b6fd9 Removed exception message where there is no exception
  234524. .IP \(bu 2
  234525. e08f45c824 Issue \fI\%#28527\fP boto_rds.create does not work
  234526. .UNINDENT
  234527. .IP \(bu 2
  234528. \fBPR\fP \fI\%#28560\fP: (\fI\%bdrung\fP) Fix various typos
  234529. @ \fI2015\-11\-04 15:06:36 UTC\fP
  234530. .INDENT 2.0
  234531. .IP \(bu 2
  234532. ec924e8410 Merge pull request \fI\%#28560\fP from bdrung/2015.8
  234533. .IP \(bu 2
  234534. 89dcb66310 Fix the wrong "allow to do" phrase
  234535. .IP \(bu 2
  234536. 859b6b46a6 Fix typo an nonexistant \-> nonexistent
  234537. .IP \(bu 2
  234538. 66921cc61e Fix typo an succesfully \-> successfully
  234539. .IP \(bu 2
  234540. c1e3ef7c8d Fix typo an explicitely \-> explicitly
  234541. .IP \(bu 2
  234542. 029a95398c Fix typo an superflous \-> superfluous
  234543. .IP \(bu 2
  234544. 026c215933 Fix typo an unecessary \-> unnecessary
  234545. .IP \(bu 2
  234546. 5f7fc5f94b Fix typo an edditable \-> editable
  234547. .IP \(bu 2
  234548. 0b768944c2 Fix typo an deamon \-> daemon
  234549. .IP \(bu 2
  234550. 5af49881d7 Fix typo an completly \-> completely
  234551. .IP \(bu 2
  234552. 14d2a16f74 Fix typos of compatibility
  234553. .IP \(bu 2
  234554. 46a5a9b073 Fix typo an suppored \-> supported
  234555. .IP \(bu 2
  234556. abc490a78e Fix typo an usefull \-> useful
  234557. .IP \(bu 2
  234558. ddd412180c Fix typo an targetting \-> targeting
  234559. .IP \(bu 2
  234560. 610a6a77ae Fix typo an verison \-> version
  234561. .IP \(bu 2
  234562. e0a5d46a1e Fix typo an seperated \-> separated
  234563. .IP \(bu 2
  234564. 7f11cfd5e1 Fix typo an helpfull \-> helpful
  234565. .IP \(bu 2
  234566. 2e9b520d84 Fix typos of omitted
  234567. .IP \(bu 2
  234568. 3029f64481 Fix typo an compatbility \-> compatibility
  234569. .IP \(bu 2
  234570. 470e82f17f Fix typo an dictionnary \-> dictionary
  234571. .IP \(bu 2
  234572. 5843c7aa24 Fix typo an optionnal \-> optional
  234573. .IP \(bu 2
  234574. 730d0f95e7 Fix typo an transfered \-> transferred
  234575. .IP \(bu 2
  234576. c7e7884de2 Fix typo an recieved \-> received
  234577. .IP \(bu 2
  234578. 50eea287f3 Fix typo an managment \-> management
  234579. .IP \(bu 2
  234580. cb01da81c6 Fix typos of parameter
  234581. .IP \(bu 2
  234582. 45fcc7d339 Fix typo an dont \-> don\(aqt
  234583. .IP \(bu 2
  234584. 3624935d32 Fix typo an other \-> another
  234585. .IP \(bu 2
  234586. d16afe2607 Fix typo sofwares \-> software
  234587. .IP \(bu 2
  234588. b9b7cbe525 Fix typo sofware \-> software
  234589. .IP \(bu 2
  234590. 8edd2c1add Fix typos of dependency
  234591. .IP \(bu 2
  234592. 3a5e2e3437 Fix typo documention \-> documentation
  234593. .UNINDENT
  234594. .IP \(bu 2
  234595. \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)
  234596. .IP \(bu 2
  234597. \fBPR\fP \fI\%#28550\fP: (\fI\%jfindlay\fP) check timedatectl errno and return stdout on failure
  234598. @ \fI2015\-11\-04 15:00:24 UTC\fP
  234599. .INDENT 2.0
  234600. .IP \(bu 2
  234601. bd0b291b63 Merge pull request \fI\%#28550\fP from jfindlay/ctl_err
  234602. .IP \(bu 2
  234603. 11a9a5868f simplify timezone module unit test mocks
  234604. .IP \(bu 2
  234605. 476b651c94 update timezone module unit tests for timedatectl
  234606. .IP \(bu 2
  234607. 5c0e5dacc0 check timedatectl errno and return stdout on failure
  234608. .UNINDENT
  234609. .IP \(bu 2
  234610. \fBISSUE\fP \fI\%#19249\fP: (\fI\%ahetmanski\fP) Cannot create cache_dir salt master exception. (refs: \fI\%#28545\fP)
  234611. .IP \(bu 2
  234612. \fBPR\fP \fI\%#28545\fP: (\fI\%jfindlay\fP) pass on concurrent create of jid_dir in local_cache
  234613. @ \fI2015\-11\-04 14:54:11 UTC\fP
  234614. .INDENT 2.0
  234615. .IP \(bu 2
  234616. e048667c91 Merge pull request \fI\%#28545\fP from jfindlay/concurrent_dir
  234617. .IP \(bu 2
  234618. 58ad699331 pass on concurrent create of cache_dir in roots fs
  234619. .IP \(bu 2
  234620. e456184b04 pass on concurrent create of jid_dir in local_cache
  234621. .UNINDENT
  234622. .IP \(bu 2
  234623. \fBPR\fP \fI\%#28544\fP: (\fI\%rallytime\fP) Start moving some vmware.py cloud funcs to utils/vmware.py
  234624. @ \fI2015\-11\-04 14:52:59 UTC\fP
  234625. .INDENT 2.0
  234626. .IP \(bu 2
  234627. 082ffd5734 Merge pull request \fI\%#28544\fP from rallytime/vmware\-utils
  234628. .IP \(bu 2
  234629. 403fe37704 Pylint.
  234630. .IP \(bu 2
  234631. d9301eea95 Don\(aqt move _set_cd_or_dvd_backing_type yet
  234632. .IP \(bu 2
  234633. 8d69639230 Start moving some vmware.py cloud funcs to utils/vmware.py
  234634. .UNINDENT
  234635. .IP \(bu 2
  234636. \fBPR\fP \fI\%#28543\fP: (\fI\%gtmanfred\fP) clean up changes for pkg.uptodate and supervisord.dead
  234637. @ \fI2015\-11\-04 14:49:46 UTC\fP
  234638. .INDENT 2.0
  234639. .IP \(bu 2
  234640. bf4f7cdc4b Merge pull request \fI\%#28543\fP from gtmanfred/2015.8
  234641. .IP \(bu 2
  234642. 3d57b392cb return changes if supervisord stopped process
  234643. .IP \(bu 2
  234644. 5547a34acc return empty changes if server is uptodate
  234645. .UNINDENT
  234646. .IP \(bu 2
  234647. \fBISSUE\fP \fI\%#28524\fP: (\fI\%bmcorser\fP) UnicodeDecodeError in states.file (refs: \fI\%#28537\fP, \fI\%#28538\fP)
  234648. .IP \(bu 2
  234649. \fBPR\fP \fI\%#28538\fP: (\fI\%jfindlay\fP) decode path and url to utf\-8 in url.create (refs: \fI\%#28537\fP)
  234650. @ \fI2015\-11\-04 14:48:34 UTC\fP
  234651. .INDENT 2.0
  234652. .IP \(bu 2
  234653. d345768b81 Merge pull request \fI\%#28538\fP from jfindlay/decode_state
  234654. .IP \(bu 2
  234655. b05dfc5c58 decode path and url to utf\-8 in url.create
  234656. .UNINDENT
  234657. .IP \(bu 2
  234658. \fBISSUE\fP \fI\%#28476\fP: (\fI\%ColorFuzzy\fP) state.sls UnicodeDecodeError (refs: \fI\%#28533\fP)
  234659. .IP \(bu 2
  234660. \fBPR\fP \fI\%#28533\fP: (\fI\%jfindlay\fP) decode highstate error messages to utf\-8
  234661. @ \fI2015\-11\-04 14:47:55 UTC\fP
  234662. .INDENT 2.0
  234663. .IP \(bu 2
  234664. 2e0c8264db Merge pull request \fI\%#28533\fP from jfindlay/decode_err
  234665. .IP \(bu 2
  234666. 9c9bb75c37 decode highstate error messages to utf\-8
  234667. .UNINDENT
  234668. .IP \(bu 2
  234669. \fBPR\fP \fI\%#28547\fP: (\fI\%nmadhok\fP) [Backport] [2015.8] Tasks can be in queued state instead of running
  234670. @ \fI2015\-11\-04 04:13:30 UTC\fP
  234671. .INDENT 2.0
  234672. .IP \(bu 2
  234673. cfc3146b2d Merge pull request \fI\%#28547\fP from nmadhok/2015.8\-task\-error
  234674. .IP \(bu 2
  234675. 3fb1f9ee6b Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  234676. .UNINDENT
  234677. .IP \(bu 2
  234678. \fBPR\fP \fI\%#28535\fP: (\fI\%techhat\fP) Fail gracefully if 169.254* isn\(aqt available
  234679. @ \fI2015\-11\-03 22:39:38 UTC\fP
  234680. .INDENT 2.0
  234681. .IP \(bu 2
  234682. 7e22e7cf24 Merge pull request \fI\%#28535\fP from techhat/fixcreds
  234683. .IP \(bu 2
  234684. 8d9224bd09 Catch timeouts too
  234685. .IP \(bu 2
  234686. fa46dbb2a3 Lint
  234687. .IP \(bu 2
  234688. f05a5e0936 Fail gracefully if 169.254* isn\(aqt available
  234689. .UNINDENT
  234690. .IP \(bu 2
  234691. \fBPR\fP \fI\%#28536\fP: (\fI\%cro\fP) Default configuration file for proxy minions.
  234692. @ \fI2015\-11\-03 21:26:27 UTC\fP
  234693. .INDENT 2.0
  234694. .IP \(bu 2
  234695. 9a5208e8aa Merge pull request \fI\%#28536\fP from cro/proxyconf
  234696. .IP \(bu 2
  234697. 1e031c4940 Default configuration file for proxy minions.
  234698. .UNINDENT
  234699. .IP \(bu 2
  234700. \fBISSUE\fP \fI\%#28469\fP: (\fI\%mlalpho\fP) state boto_secgroup.present fails to find vpc_name (refs: \fI\%#28710\fP, \fI\%#28534\fP)
  234701. .IP \(bu 2
  234702. \fBPR\fP \fI\%#28534\fP: (\fI\%rallytime\fP) Add versionadded directive for vpc_name arg in boto_secgroup.present
  234703. @ \fI2015\-11\-03 19:30:04 UTC\fP
  234704. .INDENT 2.0
  234705. .IP \(bu 2
  234706. 2bc78a32ef Merge pull request \fI\%#28534\fP from rallytime/fix\-28469
  234707. .IP \(bu 2
  234708. ebe3b34ae7 Add versionadded directive for vpc_name arg in boto_secgroup.present
  234709. .UNINDENT
  234710. .IP \(bu 2
  234711. \fBPR\fP \fI\%#28516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28489\fP to 2015.8
  234712. @ \fI2015\-11\-03 14:05:54 UTC\fP
  234713. .INDENT 2.0
  234714. .IP \(bu 2
  234715. \fBPR\fP \fI\%#28489\fP: (\fI\%TheBigBear\fP) Update windows\-package\-manager.rst (minor edit) adding missing single quote pairs. (refs: \fI\%#28516\fP)
  234716. .IP \(bu 2
  234717. c6a6fe0089 Merge pull request \fI\%#28516\fP from rallytime/bp\-28489
  234718. .IP \(bu 2
  234719. 2e5684a1e4 Update windows\-package\-manager.rst
  234720. .UNINDENT
  234721. .IP \(bu 2
  234722. \fBPR\fP \fI\%#28506\fP: (\fI\%basepi\fP) [2015.8] Log minion list for all rosters, at debug level
  234723. @ \fI2015\-11\-03 14:05:22 UTC\fP
  234724. .INDENT 2.0
  234725. .IP \(bu 2
  234726. 36a217acbd Merge pull request \fI\%#28506\fP from basepi/salt\-ssh.minions.log.debug
  234727. .IP \(bu 2
  234728. 06cdb50494 Log minion list for all rosters, at debug level
  234729. .UNINDENT
  234730. .IP \(bu 2
  234731. \fBPR\fP \fI\%#28514\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  234732. @ \fI2015\-11\-03 01:19:33 UTC\fP
  234733. .INDENT 2.0
  234734. .IP \(bu 2
  234735. 8cbea63e40 Merge pull request \fI\%#28514\fP from basepi/merge\-forward\-2015.8
  234736. .IP \(bu 2
  234737. 463a03b2a9 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  234738. .IP \(bu 2
  234739. 63ce8f78d5 Merge pull request \fI\%#28512\fP from basepi/merge\-forward\-2015.5
  234740. .INDENT 2.0
  234741. .IP \(bu 2
  234742. 61c382133a Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  234743. .IP \(bu 2
  234744. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  234745. .INDENT 2.0
  234746. .IP \(bu 2
  234747. 097838ec0c Wrap all cache calls in state.sls in correct umask
  234748. .UNINDENT
  234749. .IP \(bu 2
  234750. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  234751. .INDENT 2.0
  234752. .IP \(bu 2
  234753. b7b5bec309 Don\(aqt request creds if auth with key.
  234754. .UNINDENT
  234755. .UNINDENT
  234756. .UNINDENT
  234757. .IP \(bu 2
  234758. \fBPR\fP \fI\%#28502\fP: (\fI\%cachedout\fP) Lint \fI\%#28427\fP
  234759. @ \fI2015\-11\-02 21:09:20 UTC\fP
  234760. .INDENT 2.0
  234761. .IP \(bu 2
  234762. \fBPR\fP \fI\%#28427\fP: (\fI\%cro\fP) More updates (refs: \fI\%#28502\fP)
  234763. .IP \(bu 2
  234764. b919f55f8d Merge pull request \fI\%#28502\fP from cachedout/lint_28427
  234765. .IP \(bu 2
  234766. 459a342102 Lint \fI\%#28427\fP
  234767. .IP \(bu 2
  234768. d354885c3d Lint
  234769. .IP \(bu 2
  234770. dbb1f0899e Lint
  234771. .IP \(bu 2
  234772. 749383c413 Lint
  234773. .IP \(bu 2
  234774. 0fa067ea30 Add datacenter getter/setter, change \(aqdell_switch\(aq to just \(aqswitch\(aq, trap call to change_password.
  234775. .IP \(bu 2
  234776. 4bcb5a508b Add datacenter getter/setter, change \(aqdell_switch\(aq to just \(aqswitch\(aq, trap call to change_password.
  234777. .UNINDENT
  234778. .IP \(bu 2
  234779. \fBPR\fP \fI\%#28464\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  234780. @ \fI2015\-11\-02 20:18:21 UTC\fP
  234781. .INDENT 2.0
  234782. .IP \(bu 2
  234783. 238411c8ce Merge pull request \fI\%#28464\fP from basepi/merge\-forward\-2015.8
  234784. .IP \(bu 2
  234785. 6f6e687cb4 Mock master_uri for even tests
  234786. .IP \(bu 2
  234787. 3286a5250f Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  234788. .INDENT 2.0
  234789. .IP \(bu 2
  234790. 37ceae1e88 Merge pull request \fI\%#28448\fP from gwaters/add\-redhat\-notes
  234791. .INDENT 2.0
  234792. .IP \(bu 2
  234793. e70990704a added a note to the tutorial for those that redhat so they can use the state file too.
  234794. .UNINDENT
  234795. .IP \(bu 2
  234796. 5ef50d60cd Merge pull request \fI\%#28406\fP from rallytime/bp\-28381
  234797. .INDENT 2.0
  234798. .IP \(bu 2
  234799. e5322d2c44 Add FreeBSD detection for VirtualBox
  234800. .UNINDENT
  234801. .IP \(bu 2
  234802. 30d5f7bbae Merge pull request \fI\%#28413\fP from rallytime/bp\-28400
  234803. .INDENT 2.0
  234804. .IP \(bu 2
  234805. 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.
  234806. .UNINDENT
  234807. .IP \(bu 2
  234808. 045d540aff Merge pull request \fI\%#28366\fP from erchn/fix_yumpkg_mod_repo_disabled
  234809. .INDENT 2.0
  234810. .IP \(bu 2
  234811. 8187a4ce20 re\-arrange things a bit to have less overall changes
  234812. .IP \(bu 2
  234813. f1d570ff18 move todelete above disabled check, add comment
  234814. .IP \(bu 2
  234815. 64feec413f also remove disabled key from repo_opts
  234816. .IP \(bu 2
  234817. 2f2ebb7bb6 mark repo not enabled when pkgrepo state passes in disable: True
  234818. .UNINDENT
  234819. .IP \(bu 2
  234820. 3923f4a569 Merge pull request \fI\%#28373\fP from beverlcl/fix\-use_carrier\-28372
  234821. .INDENT 2.0
  234822. .IP \(bu 2
  234823. 32cffeceb6 Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  234824. .UNINDENT
  234825. .IP \(bu 2
  234826. e07e3f257b Merge pull request \fI\%#28359\fP from rallytime/bp\-28358
  234827. .INDENT 2.0
  234828. .IP \(bu 2
  234829. 9cacbf582b docstring typo fix \- list returners not runners
  234830. .UNINDENT
  234831. .IP \(bu 2
  234832. 282be7ba5a Merge pull request \fI\%#28346\fP from twangboy/fix_installer
  234833. .INDENT 2.0
  234834. .IP \(bu 2
  234835. f65e3e5275 Updated documentation to reflect the new parameter
  234836. .IP \(bu 2
  234837. a0c5223554 Fixes \fI\%#27923\fP and \fI\%#28000\fP
  234838. .UNINDENT
  234839. .IP \(bu 2
  234840. 7858f04ebc Merge pull request \fI\%#28315\fP from gwaters/update\-pillar\-doc
  234841. .INDENT 2.0
  234842. .IP \(bu 2
  234843. b15285c0b4 adding a working example of setting pillar data on the cli
  234844. .UNINDENT
  234845. .IP \(bu 2
  234846. 45305ccf29 Merge pull request \fI\%#28211\fP from terminalmage/legacy_git_pillar\-2015.5
  234847. .INDENT 2.0
  234848. .IP \(bu 2
  234849. 0d6a4ac115 Remove non\-functional test
  234850. .IP \(bu 2
  234851. ab991d61d9 Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  234852. .UNINDENT
  234853. .IP \(bu 2
  234854. a6cc84c407 Merge pull request \fI\%#28263\fP from cachedout/issue_26411\-1
  234855. .INDENT 2.0
  234856. .IP \(bu 2
  234857. 3b880a5f07 New channel for event.fire_master
  234858. .IP \(bu 2
  234859. 29e9533aab Stand up a new channel if using salt\-call
  234860. .UNINDENT
  234861. .IP \(bu 2
  234862. 788e1463d8 Merge pull request \fI\%#28293\fP from cachedout/fix_28271
  234863. .INDENT 2.0
  234864. .IP \(bu 2
  234865. 499ed8519b Minor grammar changes to \fI\%#28271\fP
  234866. .UNINDENT
  234867. .IP \(bu 2
  234868. e178af0b90 Merge pull request \fI\%#28271\fP from gwaters/update\-tutorial\-documentation
  234869. .INDENT 2.0
  234870. .IP \(bu 2
  234871. f96d39483d updated the tutorial with gravyboat\(aqs suggestions
  234872. .IP \(bu 2
  234873. b1f4a2bdf4 i think i changed the wrong header, updated to fix
  234874. .IP \(bu 2
  234875. 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.
  234876. .UNINDENT
  234877. .IP \(bu 2
  234878. e3eff9b909 Merge pull request \fI\%#28280\fP from 0xf10e/patch\-1
  234879. .INDENT 2.0
  234880. .IP \(bu 2
  234881. 6d4316b0ac Correct Jinja function load_* to import_*
  234882. .UNINDENT
  234883. .IP \(bu 2
  234884. 909fa3dc97 Merge pull request \fI\%#28255\fP from cachedout/cli_opt
  234885. .INDENT 2.0
  234886. .IP \(bu 2
  234887. a2408157de Add __cli opt
  234888. .UNINDENT
  234889. .IP \(bu 2
  234890. 0fa094ae11 Merge pull request \fI\%#28213\fP from rallytime/boto_route53_state
  234891. .INDENT 2.0
  234892. .IP \(bu 2
  234893. 237d64ff11 If record returned None, don\(aqt continue with the state. Something went wrong.
  234894. .UNINDENT
  234895. .IP \(bu 2
  234896. 1768014705 Merge pull request \fI\%#28238\fP from basepi/fix.schedule.present.28217
  234897. .INDENT 2.0
  234898. .IP \(bu 2
  234899. 087a8dc3c2 Only insert enabled if it\(aqs a dict
  234900. .IP \(bu 2
  234901. 5b49f41fab Fix schedule comparison to adjust for \(aqenabled\(aq being added in schedule.list
  234902. .IP \(bu 2
  234903. 2dc1226ab8 Build new item with \(aqenabled\(aq if available
  234904. .UNINDENT
  234905. .IP \(bu 2
  234906. bdd48c92de Merge pull request \fI\%#28174\fP from lorengordon/file\-replace\-multiline
  234907. .INDENT 2.0
  234908. .IP \(bu 2
  234909. acdef2da60 Update docstrings with new guidance
  234910. .IP \(bu 2
  234911. 0835b005b7 Use a test that makes the extra file read unnecessary
  234912. .IP \(bu 2
  234913. 6d6121a6e5 Use \fIflags\fP when checking whether content was added previously
  234914. .IP \(bu 2
  234915. b25e609e9e Set \fIflags=8\fP since now the file is read as a MULTILINE string by default
  234916. .IP \(bu 2
  234917. 89e8dcdffd Use \fIfinally\fP block to ensure mmap object is closed
  234918. .IP \(bu 2
  234919. 5aea6647c9 Add support for multiline regex in file.replace
  234920. .UNINDENT
  234921. .IP \(bu 2
  234922. 2225925fb5 Merge pull request \fI\%#28175\fP from twangboy/fix_19673
  234923. .INDENT 2.0
  234924. .IP \(bu 2
  234925. ae8fbb208f Fixes \fI\%#19673\fP
  234926. .UNINDENT
  234927. .UNINDENT
  234928. .UNINDENT
  234929. .IP \(bu 2
  234930. \fBISSUE\fP \fI\%#15583\fP: (\fI\%dr4Ke\fP) state grain.present should accept dict values (isn\(aqt it?) (refs: \fI\%#26945\fP)
  234931. .IP \(bu 2
  234932. \fBISSUE\fP \fI\%#11870\fP: (\fI\%gpkvt\fP) Nested Grain\-Support for grains.present / grains.absent (refs: \fI\%#26945\fP)
  234933. .IP \(bu 2
  234934. \fBPR\fP \fI\%#28486\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26945\fP to 2015.8
  234935. @ \fI2015\-11\-02 18:43:35 UTC\fP
  234936. .INDENT 2.0
  234937. .IP \(bu 2
  234938. \fBPR\fP \fI\%#26945\fP: (\fI\%dr4Ke\fP) Feature state grains support nested and dict (refs: \fI\%#28486\fP)
  234939. .IP \(bu 2
  234940. a25ce38fda Merge pull request \fI\%#28486\fP from rallytime/bp\-26945
  234941. .IP \(bu 2
  234942. 8d26bbd777 grains module and state: documentation fixes
  234943. .IP \(bu 2
  234944. df7e936910 grains module and state: use a unique object...
  234945. .IP \(bu 2
  234946. df8ec1184c grains module documentation fixes
  234947. .IP \(bu 2
  234948. 25e9a5c9ad grains state and module: fix version strings
  234949. .IP \(bu 2
  234950. eee2318873 grains state: allow deleting grain with \(aqFalse\(aq value
  234951. .IP \(bu 2
  234952. c92326f5ea grains module: yaml representer for OrderedDict
  234953. .IP \(bu 2
  234954. 2c9c8d4073 grains state doc update
  234955. .IP \(bu 2
  234956. 576252da05 grains state: list_present, list_absent support nested grain
  234957. .IP \(bu 2
  234958. 62a1f37d86 grains state: nested support for grains.append
  234959. .IP \(bu 2
  234960. 3019a055c9 grains state: rewrite doc + example
  234961. .IP \(bu 2
  234962. c19cff517a grains state: more tests
  234963. .IP \(bu 2
  234964. cc844e4a2c grains state tests: test the grain file content as well
  234965. .IP \(bu 2
  234966. 1c5cd4c82d grains state: changes comment more accurate
  234967. .IP \(bu 2
  234968. 563fd2b56c grains state: use DEFAULT_TARGET_DELIM
  234969. .IP \(bu 2
  234970. c63913e602 grains module: simpler comment for already set key
  234971. .IP \(bu 2
  234972. 2000180791 grains.present uses grains.set
  234973. .IP \(bu 2
  234974. a03c79b13b module grains.set default comment is a string
  234975. .IP \(bu 2
  234976. 64e9e2c3b3 grains.absent uses set(None)
  234977. .IP \(bu 2
  234978. 6b8c245b87 grains state: new tests for nested grains
  234979. .UNINDENT
  234980. .IP \(bu 2
  234981. \fBPR\fP \fI\%#28472\fP: (\fI\%gtmanfred\fP) overwrite more than one value with names
  234982. @ \fI2015\-11\-02 17:56:53 UTC\fP
  234983. .INDENT 2.0
  234984. .IP \(bu 2
  234985. f3640b3ad6 Merge pull request \fI\%#28472\fP from gtmanfred/2015.8
  234986. .IP \(bu 2
  234987. 8b90ccedf5 overwrite more than one value with names
  234988. .UNINDENT
  234989. .IP \(bu 2
  234990. \fBPR\fP \fI\%#28493\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28492\fP to 2015.8
  234991. @ \fI2015\-11\-02 17:54:09 UTC\fP
  234992. .INDENT 2.0
  234993. .IP \(bu 2
  234994. \fBPR\fP \fI\%#28492\fP: (\fI\%cedwards\fP) Updated FreeBSD installation docs (refs: \fI\%#28493\fP)
  234995. .IP \(bu 2
  234996. e31ef51053 Merge pull request \fI\%#28493\fP from rallytime/bp\-28492
  234997. .IP \(bu 2
  234998. ffc77259c9 Updated FreeBSD installation docs:
  234999. .UNINDENT
  235000. .IP \(bu 2
  235001. \fBPR\fP \fI\%#28494\fP: (\fI\%whiteinge\fP) Fix filter_by passing incorrect parameters to match functions
  235002. @ \fI2015\-11\-02 17:53:55 UTC\fP
  235003. .INDENT 2.0
  235004. .IP \(bu 2
  235005. 38c77206db Merge pull request \fI\%#28494\fP from whiteinge/match\-filter_by\-argfix
  235006. .IP \(bu 2
  235007. e61ac75d6f Fix filter_by passing incorrect parameters to match functions
  235008. .UNINDENT
  235009. .IP \(bu 2
  235010. \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)
  235011. .IP \(bu 2
  235012. \fBPR\fP \fI\%#28491\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28388\fP to 2015.8
  235013. @ \fI2015\-11\-02 17:13:23 UTC\fP
  235014. .INDENT 2.0
  235015. .IP \(bu 2
  235016. \fBPR\fP \fI\%#28388\fP: (\fI\%cachedout\fP) Beacon state disable (refs: \fI\%#28491\fP)
  235017. .IP \(bu 2
  235018. d19affd44d Merge pull request \fI\%#28491\fP from rallytime/bp\-28388
  235019. .IP \(bu 2
  235020. f740a19477 Working right now
  235021. .IP \(bu 2
  235022. 700eaebad0 Disable starting to come to life
  235023. .IP \(bu 2
  235024. f8b17748ef More fixing
  235025. .IP \(bu 2
  235026. 04585a2878 Documentation for disable_during_state_run
  235027. .IP \(bu 2
  235028. dbbd53689d Add documentation note in inotify beacon
  235029. .IP \(bu 2
  235030. 40217fe813 More refactoring and add new option to disable during state run
  235031. .IP \(bu 2
  235032. 19af5e5ed3 Starting on refactor of beacon config parsing
  235033. .UNINDENT
  235034. .IP \(bu 2
  235035. \fBISSUE\fP \fI\%#12363\fP: (\fI\%joehealy\fP) unable to manage password expiry of windows users (refs: \fI\%#28465\fP)
  235036. .IP \(bu 2
  235037. \fBPR\fP \fI\%#28465\fP: (\fI\%twangboy\fP) Fix \fI\%#12363\fP: Password Expiration in Windows
  235038. @ \fI2015\-11\-02 17:01:18 UTC\fP
  235039. .INDENT 2.0
  235040. .IP \(bu 2
  235041. f7042ba967 Merge pull request \fI\%#28465\fP from twangboy/fix_12363
  235042. .IP \(bu 2
  235043. bcf7d58dbb Fixed array if there\(aqs a problem with user.info
  235044. .IP \(bu 2
  235045. 4b36cb8b6e Added documentation to win_shadow
  235046. .IP \(bu 2
  235047. fc8f197f69 Fix \fI\%#12363\fP
  235048. .UNINDENT
  235049. .IP \(bu 2
  235050. \fBISSUE\fP \fI\%#28484\fP: (\fI\%nasenbaer13\fP) Elasticcache subnet group creation raises TypeError (refs: \fI\%#28485\fP)
  235051. .IP \(bu 2
  235052. \fBPR\fP \fI\%#28485\fP: (\fI\%nasenbaer13\fP) Fix invalid usage of _get_conn causing \fI\%#28484\fP
  235053. @ \fI2015\-11\-02 16:47:52 UTC\fP
  235054. .INDENT 2.0
  235055. .IP \(bu 2
  235056. ec0cbec00b Merge pull request \fI\%#28485\fP from eyj/fix_28484
  235057. .IP \(bu 2
  235058. 9d80fb6070 Fix invalid usage of _get_conn causing \fI\%#28484\fP
  235059. .UNINDENT
  235060. .IP \(bu 2
  235061. \fBISSUE\fP \fI\%#28453\fP: (\fI\%sdm24\fP) Fix Formatting for Nodegroup Targetting Docs (refs: \fI\%#28454\fP)
  235062. .IP \(bu 2
  235063. \fBISSUE\fP \fI\%#28268\fP: (\fI\%gravyboat\fP) Update nodegroup docs to explain how to target via nodegroups (refs: \fI\%#28306\fP)
  235064. .IP \(bu 2
  235065. \fBPR\fP \fI\%#28454\fP: (\fI\%sdm24\fP) Fixed nodegroup doc formatting to correctly link to pillar_opts in the master config
  235066. @ \fI2015\-11\-02 15:14:40 UTC\fP
  235067. .INDENT 2.0
  235068. .IP \(bu 2
  235069. \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)
  235070. .IP \(bu 2
  235071. 1116798f21 Merge pull request \fI\%#28454\fP from sdm24/fix\-formatting\-in\-nodegroup\-docs
  235072. .IP \(bu 2
  235073. b968581eb1 Fixed nodegroup doc formatting to correctly link to pillar_opts in the master config
  235074. .UNINDENT
  235075. .IP \(bu 2
  235076. \fBPR\fP \fI\%#28487\fP: (\fI\%cachedout\fP) Lint 28456
  235077. @ \fI2015\-11\-02 14:52:27 UTC\fP
  235078. .INDENT 2.0
  235079. .IP \(bu 2
  235080. fac7803a59 Merge pull request \fI\%#28487\fP from cachedout/lint_28456
  235081. .IP \(bu 2
  235082. 58fe15437a Lint \fI\%#28456\fP
  235083. .IP \(bu 2
  235084. 322a28bb06 updated states.virtualenv_mod comments to reflect that some kwargs need \(aqdistribute: True\(aq
  235085. .UNINDENT
  235086. .IP \(bu 2
  235087. \fBISSUE\fP \fI\%#24775\fP: (\fI\%ymote\fP) jinja returned host ip address with square bracket (refs: \fI\%#28457\fP)
  235088. .IP \(bu 2
  235089. \fBPR\fP \fI\%#28457\fP: (\fI\%sdm24\fP) Clarified comments for grains/core.py for ip_interfaces, ip4_interfac…
  235090. @ \fI2015\-11\-02 14:47:59 UTC\fP
  235091. .INDENT 2.0
  235092. .IP \(bu 2
  235093. 22a4f14625 Merge pull request \fI\%#28457\fP from sdm24/update\-grain\-ip\-interfaces\-comments
  235094. .IP \(bu 2
  235095. 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
  235096. .UNINDENT
  235097. .IP \(bu 2
  235098. \fBPR\fP \fI\%#28473\fP: (\fI\%anlutro\fP) Show check_cmd output on failure
  235099. @ \fI2015\-11\-02 14:15:30 UTC\fP
  235100. .INDENT 2.0
  235101. .IP \(bu 2
  235102. 5818b28c85 Merge pull request \fI\%#28473\fP from alprs/feature\-cmd_check_output
  235103. .IP \(bu 2
  235104. a772ce330a fix tests
  235105. .IP \(bu 2
  235106. 90b01e9e0d show check_cmd output on failure
  235107. .UNINDENT
  235108. .IP \(bu 2
  235109. \fBPR\fP \fI\%#28460\fP: (\fI\%justinta\fP) Skipped wipefs test if wipefs does not exist on OS
  235110. @ \fI2015\-10\-31 04:09:32 UTC\fP
  235111. .INDENT 2.0
  235112. .IP \(bu 2
  235113. cfe39df7ac Merge pull request \fI\%#28460\fP from jtand/wipe_fs_fix
  235114. .IP \(bu 2
  235115. 7ca79f1f7b Skipped wipefs test if wipefs does not exist on OS
  235116. .UNINDENT
  235117. .IP \(bu 2
  235118. \fBPR\fP \fI\%#28426\fP: (\fI\%terminalmage\fP) pkgbuild.built: make template engine optional
  235119. @ \fI2015\-10\-30 17:13:36 UTC\fP
  235120. .INDENT 2.0
  235121. .IP \(bu 2
  235122. 9b44b5e347 Merge pull request \fI\%#28426\fP from terminalmage/pkgbuild\-template
  235123. .IP \(bu 2
  235124. 6d32497848 pkgbuild.built: make template engine optional
  235125. .UNINDENT
  235126. .IP \(bu 2
  235127. \fBISSUE\fP \fI\%#28123\fP: (\fI\%hrumph\fP) local.cmd not working for windows minions (refs: \fI\%#28422\fP)
  235128. .IP \(bu 2
  235129. \fBPR\fP \fI\%#28422\fP: (\fI\%cachedout\fP) Handle windows logging on thread_multi [WIP]
  235130. @ \fI2015\-10\-30 17:12:26 UTC\fP
  235131. .INDENT 2.0
  235132. .IP \(bu 2
  235133. 31777cb4e9 Merge pull request \fI\%#28422\fP from cachedout/issue_28123
  235134. .IP \(bu 2
  235135. fd3b2a9e20 Handle windows logging on thread_multi
  235136. .UNINDENT
  235137. .IP \(bu 2
  235138. \fBISSUE\fP \fI\%#13513\fP: (\fI\%ironwilliamcash\fP) Windows Registry Key Problem on 64bit Machine (refs: \fI\%#28425\fP)
  235139. .IP \(bu 2
  235140. \fBPR\fP \fI\%#28425\fP: (\fI\%twangboy\fP) Fix \fI\%#13513\fP \- Reflection
  235141. @ \fI2015\-10\-30 17:07:23 UTC\fP
  235142. .INDENT 2.0
  235143. .IP \(bu 2
  235144. f9992fc948 Merge pull request \fI\%#28425\fP from twangboy/fix_13513
  235145. .IP \(bu 2
  235146. beb141df69 Fixed some lint
  235147. .IP \(bu 2
  235148. 0d747355c4 Fix \fI\%#13513\fP
  235149. .UNINDENT
  235150. .IP \(bu 2
  235151. \fBISSUE\fP \fI\%#27980\fP: (\fI\%rayba\fP) salt\-cloud 2015.5.0 azure provider could not be loaded (refs: \fI\%#28417\fP)
  235152. .IP \(bu 2
  235153. \fBPR\fP \fI\%#28417\fP: (\fI\%rallytime\fP) Add note about azure sdk version to getting started docs
  235154. @ \fI2015\-10\-29 19:47:05 UTC\fP
  235155. .INDENT 2.0
  235156. .IP \(bu 2
  235157. 4c8cd064a4 Merge pull request \fI\%#28417\fP from rallytime/azure\-version\-warning
  235158. .IP \(bu 2
  235159. 8e3a2ba7e7 Add note about azure sdk version to getting started docs
  235160. .UNINDENT
  235161. .IP \(bu 2
  235162. \fBISSUE\fP \fI\%#28392\fP: (\fI\%jacksontj\fP) AsyncZeroMQReqChannel does not implement \fItries\fP (2015.8) (refs: \fI\%#28410\fP)
  235163. .IP \(bu 2
  235164. \fBPR\fP \fI\%#28410\fP: (\fI\%jacksontj\fP) Add retries to the zeromq.AsyncReqMessageClient (refs: \fI\%#28576\fP)
  235165. @ \fI2015\-10\-29 18:05:50 UTC\fP
  235166. .INDENT 2.0
  235167. .IP \(bu 2
  235168. 7ead823731 Merge pull request \fI\%#28410\fP from jacksontj/2015.8
  235169. .IP \(bu 2
  235170. 70b5ae9b1d Add retries to the zeromq.AsyncReqMessageClient
  235171. .UNINDENT
  235172. .IP \(bu 2
  235173. \fBISSUE\fP \fI\%#28382\fP: (\fI\%cedwards\fP) [FreeBSD] user state option \fIempty_password: True\fP fails with Traceback (refs: \fI\%#28395\fP)
  235174. .IP \(bu 2
  235175. \fBPR\fP \fI\%#28404\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28395\fP to 2015.8
  235176. @ \fI2015\-10\-29 16:09:20 UTC\fP
  235177. .INDENT 2.0
  235178. .IP \(bu 2
  235179. \fBPR\fP \fI\%#28395\fP: (\fI\%cedwards\fP) Updating bsd_shadow to match mainline shadow (refs: \fI\%#28404\fP)
  235180. .IP \(bu 2
  235181. 50845a1e91 Merge pull request \fI\%#28404\fP from rallytime/bp\-28395
  235182. .IP \(bu 2
  235183. badcb677e9 Use correct version release number
  235184. .IP \(bu 2
  235185. c5c66b8bab Updating bsd_shadow to match mainline shadow
  235186. .UNINDENT
  235187. .IP \(bu 2
  235188. \fBPR\fP \fI\%#28405\fP: (\fI\%opdude\fP) Detect legacy versions of chocolatey correctly
  235189. @ \fI2015\-10\-29 15:57:30 UTC\fP
  235190. .INDENT 2.0
  235191. .IP \(bu 2
  235192. e746b564b4 Merge pull request \fI\%#28405\fP from Unity\-Technologies/hotfix/choco\-version\-detect
  235193. .IP \(bu 2
  235194. 0076d73872 Make sure we exit out correctly when checking for choco version
  235195. .IP \(bu 2
  235196. 157e0f446d Detect legacy versions of chocolatey correctly
  235197. .UNINDENT
  235198. .IP \(bu 2
  235199. \fBPR\fP \fI\%#28187\fP: (\fI\%sjansen\fP) fix at.present (refs: \fI\%#28759\fP)
  235200. @ \fI2015\-10\-29 15:49:18 UTC\fP
  235201. .INDENT 2.0
  235202. .IP \(bu 2
  235203. 4304001a8f Merge pull request \fI\%#28187\fP from sjansen/patch\-1
  235204. .IP \(bu 2
  235205. 52c915e29d fix at.present
  235206. .UNINDENT
  235207. .IP \(bu 2
  235208. \fBPR\fP \fI\%#28375\fP: (\fI\%merll\fP) Merge pillar includes correctly
  235209. @ \fI2015\-10\-29 15:12:48 UTC\fP
  235210. .INDENT 2.0
  235211. .IP \(bu 2
  235212. 5efac26c10 Merge pull request \fI\%#28375\fP from Precis/fix\-pillar\-include\-loop
  235213. .IP \(bu 2
  235214. f8e2c26473 Variable err is from previous loop, too.
  235215. .IP \(bu 2
  235216. 042314246f Unit test for merging included pillars.
  235217. .IP \(bu 2
  235218. a42c51f9bf Do not merge previous values in pillar include loop.
  235219. .UNINDENT
  235220. .IP \(bu 2
  235221. \fBPR\fP \fI\%#28376\fP: (\fI\%ryan\-lane\fP) Support update of route53 records with multiple values
  235222. @ \fI2015\-10\-29 14:54:47 UTC\fP
  235223. .INDENT 2.0
  235224. .IP \(bu 2
  235225. \fBPR\fP \fI\%#28374\fP: (\fI\%ryan\-lane\fP) Support update of route53 records with multiple values (refs: \fI\%#28376\fP)
  235226. .IP \(bu 2
  235227. a69b124aaa Merge pull request \fI\%#28376\fP from lyft/multivalue\-route53\-values\-2015.8
  235228. .IP \(bu 2
  235229. cd221515a1 Support update of route53 records with multiple values
  235230. .UNINDENT
  235231. .IP \(bu 2
  235232. \fBPR\fP \fI\%#28377\fP: (\fI\%terminalmage\fP) Deprecate \(aqalways\(aq in favor of \(aqforce\(aq in pkgbuild.built
  235233. @ \fI2015\-10\-29 14:42:22 UTC\fP
  235234. .INDENT 2.0
  235235. .IP \(bu 2
  235236. 9e5a510e73 Merge pull request \fI\%#28377\fP from terminalmage/force\-pkgbuild
  235237. .IP \(bu 2
  235238. f18305e19e Add versionadded directive
  235239. .IP \(bu 2
  235240. 7046d0d896 Deprecate \(aqalways\(aq in favor of \(aqforce\(aq in pkgbuild.built
  235241. .UNINDENT
  235242. .IP \(bu 2
  235243. \fBPR\fP \fI\%#28380\fP: (\fI\%cro\fP) Add missing call for service provider
  235244. @ \fI2015\-10\-29 14:26:55 UTC\fP
  235245. .INDENT 2.0
  235246. .IP \(bu 2
  235247. cd632f798d Merge pull request \fI\%#28380\fP from cro/sshprox_fix
  235248. .IP \(bu 2
  235249. 7bcc275dce Lint + logic error.
  235250. .IP \(bu 2
  235251. 92d712a54b Add a missing call for the service provider
  235252. .UNINDENT
  235253. .IP \(bu 2
  235254. \fBISSUE\fP \fI\%#28202\fP: (\fI\%guettli\fP) Docs: Difference between modules.cron.rm_job and modules.cron.rm (refs: \fI\%#28348\fP)
  235255. .IP \(bu 2
  235256. \fBPR\fP \fI\%#28348\fP: (\fI\%jfindlay\fP) salt.utils.alias informs user they are using a renamed function
  235257. @ \fI2015\-10\-28 20:46:36 UTC\fP
  235258. .INDENT 2.0
  235259. .IP \(bu 2
  235260. e7571e6d61 Merge pull request \fI\%#28348\fP from jfindlay/alias
  235261. .IP \(bu 2
  235262. 7915d7e5e8 use alias util to formally alias module functions
  235263. .IP \(bu 2
  235264. 6a8b61bd12 create function alias to improve api documentation
  235265. .UNINDENT
  235266. .IP \(bu 2
  235267. \fBPR\fP \fI\%#28364\fP: (\fI\%justinta\fP) In CentOS 5 the .split() causes a stacktrace.
  235268. @ \fI2015\-10\-28 20:46:02 UTC\fP
  235269. .INDENT 2.0
  235270. .IP \(bu 2
  235271. 072eb98a26 Merge pull request \fI\%#28364\fP from jtand/blockdev_test_fix
  235272. .IP \(bu 2
  235273. 3b4d03ff1a In CentOS 5 the .split() causes a stacktrace. Confirmed.split() appears to be unneeded in other OSs.
  235274. .UNINDENT
  235275. .IP \(bu 2
  235276. \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)
  235277. .IP \(bu 2
  235278. \fBPR\fP \fI\%#28361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28087\fP to 2015.8
  235279. @ \fI2015\-10\-28 20:44:32 UTC\fP
  235280. .INDENT 2.0
  235281. .IP \(bu 2
  235282. \fBPR\fP \fI\%#28087\fP: (\fI\%DmitryKuzmenko\fP) Revert "Update __init__.py" (refs: \fI\%#28361\fP)
  235283. .IP \(bu 2
  235284. 06b928cfdb Merge pull request \fI\%#28361\fP from rallytime/bp\-28087
  235285. .IP \(bu 2
  235286. 41536e55b9 Revert "Update __init__.py"
  235287. .UNINDENT
  235288. .IP \(bu 2
  235289. \fBPR\fP \fI\%#28360\fP: (\fI\%multani\fP) Various documentation fixes
  235290. @ \fI2015\-10\-28 20:43:20 UTC\fP
  235291. .INDENT 2.0
  235292. .IP \(bu 2
  235293. d9e5fba9b5 Merge pull request \fI\%#28360\fP from multani/fix/docs
  235294. .IP \(bu 2
  235295. ed4a54f839 doc: fix warnings in clouds.linode
  235296. .IP \(bu 2
  235297. 5a9c4c2d60 doc: simplified states.postgres_tablespace introduction
  235298. .IP \(bu 2
  235299. cf38ff1384 doc: fix rendering of titles in the /ref/states/all/ index page
  235300. .UNINDENT
  235301. .IP \(bu 2
  235302. \fBPR\fP \fI\%#28370\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28276\fP to 2015.8
  235303. @ \fI2015\-10\-28 20:37:49 UTC\fP
  235304. .INDENT 2.0
  235305. .IP \(bu 2
  235306. \fBPR\fP \fI\%#28276\fP: (\fI\%plastikos\fP) Correct state pkg.updtodate to succeed when packages are up\-to\-date (refs: \fI\%#28370\fP)
  235307. .IP \(bu 2
  235308. 4157c8331b Merge pull request \fI\%#28370\fP from rallytime/bp\-28276
  235309. .IP \(bu 2
  235310. 227ddbcb24 Simplify setting success when there are no pkg updates.
  235311. .IP \(bu 2
  235312. cd58165138 Correct state pkg.updtodate to succeed when packages are up\-to\-date
  235313. .UNINDENT
  235314. .IP \(bu 2
  235315. \fBISSUE\fP \fI\%#27890\fP: (\fI\%dkiser\fP) pillar recurse list strategy (refs: \fI\%#27891\fP)
  235316. .IP \(bu 2
  235317. \fBISSUE\fP \fI\%#25954\fP: (\fI\%tbaker57\fP) [2015.8.0rc2] pillar merge strategy default behaviour change (refs: \fI\%#28353\fP)
  235318. .IP \(bu 2
  235319. \fBPR\fP \fI\%#28353\fP: (\fI\%merll\fP) Consider each pillar match only once.
  235320. @ \fI2015\-10\-28 15:05:21 UTC\fP
  235321. .INDENT 2.0
  235322. .IP \(bu 2
  235323. \fBPR\fP \fI\%#27891\fP: (\fI\%dkiser\fP) introduce recurse_list pillar_source_merging_strategy (refs: \fI\%#28353\fP, \fI\%#28013\fP)
  235324. .IP \(bu 2
  235325. 3942b4d0e6 Merge pull request \fI\%#28353\fP from Precis/fix\-pillar\-sls\-matches
  235326. .IP \(bu 2
  235327. 2f3f2d6f29 Consider each pillar match only once.
  235328. .UNINDENT
  235329. .IP \(bu 2
  235330. \fBPR\fP \fI\%#28334\fP: (\fI\%anlutro\fP) iptables needs \-m comment for \-\-comment to work
  235331. @ \fI2015\-10\-28 14:24:52 UTC\fP
  235332. .INDENT 2.0
  235333. .IP \(bu 2
  235334. 0d8bea6c43 Merge pull request \fI\%#28334\fP from alprs/fix\-iptables_comment
  235335. .IP \(bu 2
  235336. 170ea7c50d iptables needs \-m comment for \-\-comment to work
  235337. .UNINDENT
  235338. .IP \(bu 2
  235339. \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)
  235340. .IP \(bu 2
  235341. \fBPR\fP \fI\%#28340\fP: (\fI\%jfindlay\fP) sdecode file and dir lists in fileclient
  235342. @ \fI2015\-10\-28 14:23:10 UTC\fP
  235343. .INDENT 2.0
  235344. .IP \(bu 2
  235345. 7000b6ee8f Merge pull request \fI\%#28340\fP from jfindlay/decode_client
  235346. .IP \(bu 2
  235347. bd9151b5e3 sdecode file and dir lists in fileclient
  235348. .UNINDENT
  235349. .IP \(bu 2
  235350. \fBPR\fP \fI\%#28344\fP: (\fI\%ryan\-lane\fP) Fix iptables state for non\-filter tables
  235351. @ \fI2015\-10\-28 14:21:54 UTC\fP
  235352. .INDENT 2.0
  235353. .IP \(bu 2
  235354. 48448c9a48 Merge pull request \fI\%#28344\fP from lyft/fix\-iptables\-non\-filter
  235355. .IP \(bu 2
  235356. 21ba070b3d Fix iptables state for non\-filter tables
  235357. .UNINDENT
  235358. .IP \(bu 2
  235359. \fBPR\fP \fI\%#28343\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28342\fP to 2015.8
  235360. @ \fI2015\-10\-28 13:58:28 UTC\fP
  235361. .INDENT 2.0
  235362. .IP \(bu 2
  235363. \fBPR\fP \fI\%#28342\fP: (\fI\%gravyboat\fP) Fix up a dup doc entry for the file state. (refs: \fI\%#28343\fP)
  235364. .IP \(bu 2
  235365. 72f0c106cf Merge pull request \fI\%#28343\fP from rallytime/bp\-28342
  235366. .IP \(bu 2
  235367. 03d15dd090 Fix up a dup doc entry.
  235368. .UNINDENT
  235369. .IP \(bu 2
  235370. \fBPR\fP \fI\%#28330\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28305\fP to 2015.8
  235371. @ \fI2015\-10\-27 17:20:35 UTC\fP
  235372. .INDENT 2.0
  235373. .IP \(bu 2
  235374. \fBPR\fP \fI\%#28305\fP: (\fI\%rowillia\fP) Fix Cabal states. (refs: \fI\%#28330\fP)
  235375. .IP \(bu 2
  235376. 64d5c2362a Merge pull request \fI\%#28330\fP from rallytime/bp\-28305
  235377. .IP \(bu 2
  235378. a46dbcb62b Fix Cabal states.
  235379. .UNINDENT
  235380. .IP \(bu 2
  235381. \fBISSUE\fP \fI\%#21216\fP: (\fI\%syphernl\fP) State rabbitmq_plugin missing proper error handling (refs: \fI\%#28270\fP)
  235382. .IP \(bu 2
  235383. \fBPR\fP \fI\%#28270\fP: (\fI\%rallytime\fP) Refactor RabbitMQ Plugin State to correctly use test=true and format errors
  235384. @ \fI2015\-10\-27 17:18:35 UTC\fP
  235385. .INDENT 2.0
  235386. .IP \(bu 2
  235387. a44c8d8dab Merge pull request \fI\%#28270\fP from rallytime/refactor_rabbitmq_plugin_state
  235388. .IP \(bu 2
  235389. 9e40c3a6a6 Fine tuning and fix tests
  235390. .IP \(bu 2
  235391. d50916ccdd Pylint fix
  235392. .IP \(bu 2
  235393. 196b18146d Refactor RabbitMQ Plugin State to correctly use test=true and format errors
  235394. .UNINDENT
  235395. .IP \(bu 2
  235396. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  235397. .IP \(bu 2
  235398. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  235399. .IP \(bu 2
  235400. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  235401. @ \fI2015\-10\-27 17:17:42 UTC\fP
  235402. .INDENT 2.0
  235403. .IP \(bu 2
  235404. 4efd07eba5 Merge pull request \fI\%#28269\fP from rallytime/refactor_rabbitmq_user_state
  235405. .IP \(bu 2
  235406. aebbcb88ea Pylint fix
  235407. .IP \(bu 2
  235408. 19b8b868a3 Clean\-up/fixes to rabbitmq_user state and test adjustments
  235409. .IP \(bu 2
  235410. 3e0e8fc8c6 Refactor rabbitmq_user state to use test=True correctly
  235411. .UNINDENT
  235412. .IP \(bu 2
  235413. \fBISSUE\fP \fI\%#27855\fP: (\fI\%dverbeek84\fP) boto_vpc is not reading availability_zone (refs: \fI\%#28299\fP, \fI\%#28168\fP)
  235414. .IP \(bu 2
  235415. \fBPR\fP \fI\%#28299\fP: (\fI\%rallytime\fP) Add test for availability_zone check to boto_vpc_tests
  235416. @ \fI2015\-10\-27 14:17:11 UTC\fP
  235417. .INDENT 2.0
  235418. .IP \(bu 2
  235419. \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)
  235420. .IP \(bu 2
  235421. 93a930615e Merge pull request \fI\%#28299\fP from rallytime/tests\-for\-28168
  235422. .IP \(bu 2
  235423. 65fdb50246 Get the list indice to compart before looking at keys
  235424. .IP \(bu 2
  235425. 95defb87c5 Add test for availability_zone check to boto_vpc_tests
  235426. .UNINDENT
  235427. .IP \(bu 2
  235428. \fBISSUE\fP \fI\%#28268\fP: (\fI\%gravyboat\fP) Update nodegroup docs to explain how to target via nodegroups (refs: \fI\%#28306\fP)
  235429. .IP \(bu 2
  235430. \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)
  235431. @ \fI2015\-10\-27 14:07:12 UTC\fP
  235432. .INDENT 2.0
  235433. .IP \(bu 2
  235434. 0ab7c0053d Merge pull request \fI\%#28306\fP from sdm24/update\-nodegroup\-docs\-with\-state\-targeting
  235435. .IP \(bu 2
  235436. 02cac9d8c0 Update nodegroups.rst
  235437. .IP \(bu 2
  235438. b2c3307c2e Update nodegroups.rst
  235439. .IP \(bu 2
  235440. e79a930f57 updated nodegroups.rst
  235441. .IP \(bu 2
  235442. f2a6bc94df Updated the Nodegroup docs to include how to target nodegroups in SLS Jinja
  235443. .UNINDENT
  235444. .IP \(bu 2
  235445. \fBISSUE\fP \fI\%#27435\fP: (\fI\%LukeCarrier\fP) firewalld state: firewalld.prepare calls new_service, not add_service (refs: \fI\%#28308\fP)
  235446. .IP \(bu 2
  235447. \fBPR\fP \fI\%#28308\fP: (\fI\%rallytime\fP) Firewalld state services should use \-\-add\-service, not \-\-new\-service
  235448. @ \fI2015\-10\-27 14:02:45 UTC\fP
  235449. .INDENT 2.0
  235450. .IP \(bu 2
  235451. bba26ffeca Merge pull request \fI\%#28308\fP from rallytime/fix\-27435
  235452. .IP \(bu 2
  235453. d37298f973 Don\(aqt forget to pass the zone!
  235454. .IP \(bu 2
  235455. fcafe6f355 Firewalld state services should use \-\-add\-service, not \-\-new\-service
  235456. .UNINDENT
  235457. .IP \(bu 2
  235458. \fBISSUE\fP \fI\%#21744\fP: (\fI\%rallytime\fP) [2015.5] Multi\-Master Minions Block on Authentication (refs: \fI\%#28302\fP)
  235459. .IP \(bu 2
  235460. \fBPR\fP \fI\%#28302\fP: (\fI\%DmitryKuzmenko\fP) Always close socket even if there is no stream.
  235461. @ \fI2015\-10\-27 01:08:41 UTC\fP
  235462. .INDENT 2.0
  235463. .IP \(bu 2
  235464. 044737ba6e Merge pull request \fI\%#28302\fP from DSRCompany/issues/21744_fix_context_term
  235465. .IP \(bu 2
  235466. b0fc66fa68 Always close socket even if there is no stream.
  235467. .UNINDENT
  235468. .IP \(bu 2
  235469. \fBPR\fP \fI\%#28282\fP: (\fI\%keesbos\fP) Fix for __env__ in legacy git_pillar
  235470. @ \fI2015\-10\-26 21:20:25 UTC\fP
  235471. .INDENT 2.0
  235472. .IP \(bu 2
  235473. 2f2f51906d Merge pull request \fI\%#28282\fP from keesbos/git\-pillar\-env\-fix
  235474. .IP \(bu 2
  235475. d46e09afc6 Fix for __env__ in legacy git_pillar
  235476. .UNINDENT
  235477. .IP \(bu 2
  235478. \fBPR\fP \fI\%#28258\fP: (\fI\%pass\-by\-value\fP) Add service module for ssh proxy example
  235479. @ \fI2015\-10\-26 14:57:47 UTC\fP
  235480. .INDENT 2.0
  235481. .IP \(bu 2
  235482. 6a92bfbd42 Merge pull request \fI\%#28258\fP from pass\-by\-value/ssh_service
  235483. .IP \(bu 2
  235484. 04bc1c64ad Add versionadded information
  235485. .IP \(bu 2
  235486. 76d8d859f1 Add service module for ssh proxy example
  235487. .UNINDENT
  235488. .IP \(bu 2
  235489. \fBPR\fP \fI\%#28294\fP: (\fI\%bechtoldt\fP) correct a bad default value in http utility
  235490. @ \fI2015\-10\-26 14:45:27 UTC\fP
  235491. .INDENT 2.0
  235492. .IP \(bu 2
  235493. \fBPR\fP \fI\%#25668\fP: (\fI\%techhat\fP) Sanitize sensitive fields in http.query() (refs: \fI\%#28294\fP)
  235494. .IP \(bu 2
  235495. 25778cf1ba Merge pull request \fI\%#28294\fP from bechtoldt/fix_bad_param_default_val
  235496. .IP \(bu 2
  235497. 4852c03d08 don\(aqt iterate over var that is NoneType
  235498. .UNINDENT
  235499. .IP \(bu 2
  235500. \fBPR\fP \fI\%#28185\fP: (\fI\%justinta\fP) Added single package return for latest_version, fixed other bug.
  235501. @ \fI2015\-10\-26 14:09:40 UTC\fP
  235502. .INDENT 2.0
  235503. .IP \(bu 2
  235504. 0245820b73 Merge pull request \fI\%#28185\fP from jtand/zypper_pkg
  235505. .IP \(bu 2
  235506. 457ff5d085 Added back nfo.get lines after finding the problem in them
  235507. .IP \(bu 2
  235508. 5cdb15c9e3 Added single package return for latest_version, fixed other bug.
  235509. .UNINDENT
  235510. .IP \(bu 2
  235511. \fBPR\fP \fI\%#28297\fP: (\fI\%cachedout\fP) Lint fix proxy junos
  235512. @ \fI2015\-10\-26 13:59:44 UTC\fP
  235513. .INDENT 2.0
  235514. .IP \(bu 2
  235515. \fBPR\fP \fI\%#28116\fP: (\fI\%jejenone\fP) converted junos proxy minion to new __proxy__ global (refs: \fI\%#28297\fP)
  235516. .IP \(bu 2
  235517. 443b486c22 Merge pull request \fI\%#28297\fP from cachedout/lint_fix_proxy_junos
  235518. .IP \(bu 2
  235519. 5194d9a2ef Lint
  235520. .IP \(bu 2
  235521. 28eff3caf2 converted junos proxy minion to new __proxy__ global added cli() in junos.py module to execute arbitrary command
  235522. .UNINDENT
  235523. .IP \(bu 2
  235524. \fBISSUE\fP \fI\%#28209\fP: (\fI\%basepi\fP) Legacy git_pillar configs cause duplicate ext_pillar calls (refs: \fI\%#28210\fP)
  235525. .IP \(bu 2
  235526. \fBPR\fP \fI\%#28210\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (refs: \fI\%#28211\fP)
  235527. @ \fI2015\-10\-26 12:36:58 UTC\fP
  235528. .INDENT 2.0
  235529. .IP \(bu 2
  235530. c8dd79d683 Merge pull request \fI\%#28210\fP from terminalmage/legacy_git_pillar
  235531. .IP \(bu 2
  235532. 86f00e71bf Remove non\-functional test
  235533. .IP \(bu 2
  235534. b80da6e23a Fix for ext_pillar being compiled twice in legacy git_pillar code
  235535. .UNINDENT
  235536. .IP \(bu 2
  235537. \fBISSUE\fP \fI\%#28203\fP: (\fI\%edhgoose\fP) blockdev.formatted failing on 2nd+ run, despite disk already being formatted (refs: \fI\%#28265\fP)
  235538. .IP \(bu 2
  235539. \fBPR\fP \fI\%#28265\fP: (\fI\%jfindlay\fP) fix blockdev execution and state modules
  235540. @ \fI2015\-10\-26 12:27:36 UTC\fP
  235541. .INDENT 2.0
  235542. .IP \(bu 2
  235543. 62485e567f Merge pull request \fI\%#28265\fP from jfindlay/blockdev
  235544. .IP \(bu 2
  235545. 0dc72135de update blockdev exec and state module unit tests
  235546. .IP \(bu 2
  235547. 07253cb5fb move fstype checks to blockdev execution module
  235548. .IP \(bu 2
  235549. 20ec4a1dc6 move fs create logic from blockdev state to module
  235550. .IP \(bu 2
  235551. 613671a85c safer examples in blockdev exec module docs
  235552. .IP \(bu 2
  235553. 359df1bcf7 refactor dump in blockdev exec module
  235554. .IP \(bu 2
  235555. 88acc9356d check, notify for deps in blockdev exec/state mods
  235556. .UNINDENT
  235557. .IP \(bu 2
  235558. \fBPR\fP \fI\%#28266\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28260\fP to 2015.8
  235559. @ \fI2015\-10\-26 12:20:56 UTC\fP
  235560. .INDENT 2.0
  235561. .IP \(bu 2
  235562. \fBPR\fP \fI\%#28260\fP: (\fI\%justinta\fP) Ioflo lint (refs: \fI\%#28266\fP)
  235563. .IP \(bu 2
  235564. 556d7d583e Merge pull request \fI\%#28266\fP from rallytime/bp\-28260
  235565. .IP \(bu 2
  235566. 03509e60b2 Removed unnecessary blank line
  235567. .IP \(bu 2
  235568. 2d06c97879 Moved lint disable to end of offending line
  235569. .IP \(bu 2
  235570. d13fe0cf53 Disabled lint check for ioflo
  235571. .UNINDENT
  235572. .IP \(bu 2
  235573. \fBPR\fP \fI\%#28253\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28063\fP to 2015.8
  235574. @ \fI2015\-10\-23 18:10:56 UTC\fP
  235575. .INDENT 2.0
  235576. .IP \(bu 2
  235577. \fBPR\fP \fI\%#28063\fP: (\fI\%SmithSamuelM\fP) Fixes broken Salt Raet. master.flo file path broken (refs: \fI\%#28253\fP)
  235578. .IP \(bu 2
  235579. acd2214c9d Merge pull request \fI\%#28253\fP from rallytime/bp\-28063
  235580. .IP \(bu 2
  235581. 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
  235582. .IP \(bu 2
  235583. 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
  235584. .IP \(bu 2
  235585. 19a81dcb77 Fixed exception in loader when no file extension
  235586. .IP \(bu 2
  235587. 2afbe6803c Raet Salt broken when config moved to package directory The path to the master.flo file no longer worked This fixes
  235588. .IP \(bu 2
  235589. a177bf8f47 fixed unittests missing close of roadstack caused error on other tests
  235590. .UNINDENT
  235591. .IP \(bu 2
  235592. \fBISSUE\fP \fI\%#28227\fP: (\fI\%jfindlay\fP) DigitalOcean FreeBSD profile fails with \fIimage: 10.2\fP (refs: \fI\%#28231\fP)
  235593. .IP \(bu 2
  235594. \fBPR\fP \fI\%#28231\fP: (\fI\%rallytime\fP) Make sure we\(aqre compairing strings when getting images in the DO driver
  235595. @ \fI2015\-10\-23 13:49:37 UTC\fP
  235596. .INDENT 2.0
  235597. .IP \(bu 2
  235598. 570e7faa3b Merge pull request \fI\%#28231\fP from rallytime/fix\-28227
  235599. .IP \(bu 2
  235600. 0985780f12 Make sure we\(aqre compairing strings when getting images in the DO driver
  235601. .UNINDENT
  235602. .IP \(bu 2
  235603. \fBPR\fP \fI\%#28224\fP: (\fI\%techhat\fP) Optimize create_repo for large packages
  235604. @ \fI2015\-10\-23 13:40:06 UTC\fP
  235605. .INDENT 2.0
  235606. .IP \(bu 2
  235607. 1c55513ce3 Merge pull request \fI\%#28224\fP from techhat/spmoptimize
  235608. .IP \(bu 2
  235609. faeef55d2f Optimize create_repo for large packages
  235610. .UNINDENT
  235611. .IP \(bu 2
  235612. \fBISSUE\fP \fI\%#27374\fP: (\fI\%mool\fP) boto_route53 state doesn\(aqt create a record (refs: \fI\%#28214\fP, \fI\%#28213\fP)
  235613. .IP \(bu 2
  235614. \fBPR\fP \fI\%#28214\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if invalid credentials are passed to boto_route53 state
  235615. @ \fI2015\-10\-23 13:37:30 UTC\fP
  235616. .INDENT 2.0
  235617. .IP \(bu 2
  235618. \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)
  235619. .IP \(bu 2
  235620. f269f40905 Merge pull request \fI\%#28214\fP from rallytime/fix_boto_route53_stacktrace
  235621. .IP \(bu 2
  235622. cdeb8caabe Pylint Fix
  235623. .IP \(bu 2
  235624. 11c475b0ad Don\(aqt stacktrace if invalid credentials are passed to boto_route53 state
  235625. .UNINDENT
  235626. .IP \(bu 2
  235627. \fBPR\fP \fI\%#28228\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27562\fP to 2015.8
  235628. @ \fI2015\-10\-23 13:34:42 UTC\fP
  235629. .INDENT 2.0
  235630. .IP \(bu 2
  235631. \fBPR\fP \fI\%#27562\fP: (\fI\%techhat\fP) Add dependency resolution to SPM (refs: \fI\%#28228\fP)
  235632. .IP \(bu 2
  235633. 0775d159f8 Merge pull request \fI\%#28228\fP from rallytime/bp\-27562
  235634. .IP \(bu 2
  235635. 847809541e Updates as per @s0undt3ch
  235636. .IP \(bu 2
  235637. cf5fefdf5f Add dependency resolution to SPM
  235638. .UNINDENT
  235639. .IP \(bu 2
  235640. \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)
  235641. .IP \(bu 2
  235642. \fBPR\fP \fI\%#28232\fP: (\fI\%rallytime\fP) Add documentation to supply the ssh_username: freebsd config to DO docs
  235643. @ \fI2015\-10\-23 13:31:52 UTC\fP
  235644. .INDENT 2.0
  235645. .IP \(bu 2
  235646. af241dc054 Merge pull request \fI\%#28232\fP from rallytime/fix\-28230
  235647. .IP \(bu 2
  235648. 8b06ab4335 Add documentation to supply the ssh_username: freebsd config to DO docs
  235649. .UNINDENT
  235650. .IP \(bu 2
  235651. \fBPR\fP \fI\%#28198\fP: (\fI\%jacobhammons\fP) Added note regarding missing spm exe on Debian/Ubuntu
  235652. @ \fI2015\-10\-22 04:40:18 UTC\fP
  235653. .INDENT 2.0
  235654. .IP \(bu 2
  235655. 36dc12c62c Merge pull request \fI\%#28198\fP from jacobhammons/docs
  235656. .IP \(bu 2
  235657. cfadda0c0c Added note regarding missing spm exe on Debian/Ubuntu Minor fixes to spm docs
  235658. .UNINDENT
  235659. .IP \(bu 2
  235660. \fBPR\fP \fI\%#28182\fP: (\fI\%erchn\fP) Some fixes for nova driver for Rackspace
  235661. @ \fI2015\-10\-21 21:26:18 UTC\fP
  235662. .INDENT 2.0
  235663. .IP \(bu 2
  235664. fbad88fb99 Merge pull request \fI\%#28182\fP from erchn/fix_nova_rackspace
  235665. .IP \(bu 2
  235666. 7b54f04ba2 wrap server_list[_detailed] in try/except block for TypeError
  235667. .IP \(bu 2
  235668. 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
  235669. .UNINDENT
  235670. .IP \(bu 2
  235671. \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)
  235672. .IP \(bu 2
  235673. \fBPR\fP \fI\%#28181\fP: (\fI\%rallytime\fP) Revamp firewalld state to be more stateful.
  235674. @ \fI2015\-10\-21 21:19:18 UTC\fP
  235675. .INDENT 2.0
  235676. .IP \(bu 2
  235677. a1a924f170 Merge pull request \fI\%#28181\fP from rallytime/fix\-27454
  235678. .IP \(bu 2
  235679. 3e13880af8 Make sure we catch all potential exceptions
  235680. .IP \(bu 2
  235681. cb4efa87e8 Make sure state returns False when execution module calls fail
  235682. .IP \(bu 2
  235683. 232b2825e4 Revamp firewalld state to be more stateful.
  235684. .UNINDENT
  235685. .IP \(bu 2
  235686. \fBPR\fP \fI\%#28176\fP: (\fI\%cro\fP) Add ping function
  235687. @ \fI2015\-10\-21 20:49:54 UTC\fP
  235688. .INDENT 2.0
  235689. .IP \(bu 2
  235690. d93ad103c7 Merge pull request \fI\%#28176\fP from cro/ssh_no_ping
  235691. .IP \(bu 2
  235692. 3e05437f15 Add ping function
  235693. .UNINDENT
  235694. .IP \(bu 2
  235695. \fBPR\fP \fI\%#28167\fP: (\fI\%The\-Loeki\fP) file.serialize needs to add a final newline to serialized files
  235696. @ \fI2015\-10\-21 17:12:33 UTC\fP
  235697. .INDENT 2.0
  235698. .IP \(bu 2
  235699. 8e08f39381 Merge pull request \fI\%#28167\fP from The\-Loeki/patch\-1
  235700. .IP \(bu 2
  235701. 46bf6d4fa3 Update file.serialize test for Python serialized
  235702. .IP \(bu 2
  235703. 66831fd087 file.serialize needs to add a final newline to serialized files
  235704. .UNINDENT
  235705. .IP \(bu 2
  235706. \fBISSUE\fP \fI\%#27855\fP: (\fI\%dverbeek84\fP) boto_vpc is not reading availability_zone (refs: \fI\%#28299\fP, \fI\%#28168\fP)
  235707. .IP \(bu 2
  235708. \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)
  235709. @ \fI2015\-10\-21 14:48:03 UTC\fP
  235710. .INDENT 2.0
  235711. .IP \(bu 2
  235712. 559a517ad6 Merge pull request \fI\%#28168\fP from rallytime/fix\-27855
  235713. .IP \(bu 2
  235714. 50fb77dc50 Make sure availability zone gets passed in boto_vpc module when creating subnet
  235715. .UNINDENT
  235716. .IP \(bu 2
  235717. \fBISSUE\fP \fI\%#26107\fP: (\fI\%thecosmicfrog\fP) Issue targeting nodegroups \- Invalid compound target: ( L@ ... ) (refs: \fI\%#28148\fP)
  235718. .IP \(bu 2
  235719. \fBISSUE\fP \fI\%#24660\fP: (\fI\%Mrten\fP) nodegroups not backwards compatible (refs: \fI\%#28148\fP)
  235720. .IP \(bu 2
  235721. \fBPR\fP \fI\%#28148\fP: (\fI\%basepi\fP) [2015.8] Only expand nodegroups to lists if there is a nested nodegroup
  235722. @ \fI2015\-10\-21 13:20:06 UTC\fP
  235723. .INDENT 2.0
  235724. .IP \(bu 2
  235725. dcd90363fe Merge pull request \fI\%#28148\fP from basepi/fix.nodegroup.backwards.compat.24660
  235726. .IP \(bu 2
  235727. 11d6a2b6ac Add some docs
  235728. .IP \(bu 2
  235729. 036d767a98 Keep track of recursive nodegroup_comp calls, keep list format if it\(aqs recursing
  235730. .IP \(bu 2
  235731. 155634a0aa Finish thought
  235732. .IP \(bu 2
  235733. 528b16756b Only expand nodegroups to lists if there is a nested nodegroup
  235734. .UNINDENT
  235735. .IP \(bu 2
  235736. \fBPR\fP \fI\%#28155\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  235737. @ \fI2015\-10\-20 23:48:41 UTC\fP
  235738. .INDENT 2.0
  235739. .IP \(bu 2
  235740. 053ad408c7 Merge pull request \fI\%#28155\fP from basepi/merge\-forward\-2015.8
  235741. .IP \(bu 2
  235742. c4c889f97b Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  235743. .IP \(bu 2
  235744. ab18dcf637 Merge pull request \fI\%#28140\fP from rallytime/bsd\-installation\-doc
  235745. .INDENT 2.0
  235746. .IP \(bu 2
  235747. 458a544d83 Add OpenBSD installation documentation to 2015.5 branch
  235748. .UNINDENT
  235749. .IP \(bu 2
  235750. fad38eb3c3 Merge pull request \fI\%#28138\fP from rallytime/bp\-28130\-sizes\-only
  235751. .INDENT 2.0
  235752. .IP \(bu 2
  235753. 6ab31e1886 Pylint
  235754. .IP \(bu 2
  235755. 37e4ed58a9 Added missing comma
  235756. .IP \(bu 2
  235757. 667f5e669f Added a bunch of instance sizes and updated some outdated ones
  235758. .UNINDENT
  235759. .IP \(bu 2
  235760. ce8f858536 Merge pull request \fI\%#28097\fP from jacksontj/2015.5
  235761. .INDENT 2.0
  235762. .IP \(bu 2
  235763. 75e04bcbbc For all multi\-part messages, check the headers. If the header is not your minion_id, skip the message
  235764. .UNINDENT
  235765. .IP \(bu 2
  235766. 9cdb970289 Merge pull request \fI\%#28117\fP from rallytime/fix\-23655
  235767. .INDENT 2.0
  235768. .IP \(bu 2
  235769. dfb908e405 Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  235770. .UNINDENT
  235771. .IP \(bu 2
  235772. bf7ed0a397 Merge pull request \fI\%#28110\fP from terminalmage/masterless\-mode
  235773. .INDENT 2.0
  235774. .IP \(bu 2
  235775. ed90103124 Add explanation of file_client: local setting masterless mode
  235776. .UNINDENT
  235777. .IP \(bu 2
  235778. a569ef4980 Merge pull request \fI\%#28109\fP from rallytime/fix\-27940
  235779. .INDENT 2.0
  235780. .IP \(bu 2
  235781. 18b2245611 Add created reactor event to lxc cloud driver
  235782. .UNINDENT
  235783. .IP \(bu 2
  235784. d4604fdb26 Merge pull request \fI\%#27996\fP from rallytime/fix\-21845
  235785. .INDENT 2.0
  235786. .IP \(bu 2
  235787. f8380d751e Provide empty string as default stdout instead of None
  235788. .IP \(bu 2
  235789. f9406b5828 Don\(aqt fail if pip package is already present and pip1 is installed
  235790. .UNINDENT
  235791. .IP \(bu 2
  235792. 28b97c514f Merge pull request \fI\%#28056\fP from rallytime/bp\-28033
  235793. .INDENT 2.0
  235794. .IP \(bu 2
  235795. af2c5ab759 Fixed win_useradd.py
  235796. .UNINDENT
  235797. .IP \(bu 2
  235798. dfc3aaec74 Merge pull request \fI\%#28059\fP from rallytime/bp\-28040
  235799. .INDENT 2.0
  235800. .IP \(bu 2
  235801. 76a0d4937b Revert "Allow passing in auth_version, defaulting to 2."
  235802. .IP \(bu 2
  235803. 63d5675d34 default auth_version = 2
  235804. .IP \(bu 2
  235805. 8072716888 remove extra spaces
  235806. .IP \(bu 2
  235807. 9770f56f04 cleanup whitespace, default to None to be consistent with profile
  235808. .IP \(bu 2
  235809. f4adfe98c0 Allow passing in auth_version, defaulting to 2.
  235810. .IP \(bu 2
  235811. fab1ad39af Rackspace support for switft module.
  235812. .UNINDENT
  235813. .IP \(bu 2
  235814. d1fa036b55 Merge pull request \fI\%#28047\fP from cachedout/issue_27534
  235815. .INDENT 2.0
  235816. .IP \(bu 2
  235817. 6ea37ddbca Context manager
  235818. .IP \(bu 2
  235819. 4d6f6bb371 Lint
  235820. .IP \(bu 2
  235821. 59018289dc Restore FTP functionality to file client
  235822. .UNINDENT
  235823. .IP \(bu 2
  235824. fd2ca2df1b Merge pull request \fI\%#28032\fP from twangboy/fix_win_path
  235825. .INDENT 2.0
  235826. .IP \(bu 2
  235827. 2bcac93314 Fixed win_path.py
  235828. .UNINDENT
  235829. .IP \(bu 2
  235830. 88c1770be4 Merge pull request \fI\%#28037\fP from rallytime/bp\-28003
  235831. .INDENT 2.0
  235832. .IP \(bu 2
  235833. 4fcf51fb1e Fix PR \fI\%#26336\fP
  235834. .UNINDENT
  235835. .IP \(bu 2
  235836. de727d8bd2 Merge pull request \fI\%#28031\fP from jacobhammons/relnotes6
  235837. .INDENT 2.0
  235838. .IP \(bu 2
  235839. 05927bb6f0 Updated release notes with additional CVE information
  235840. .UNINDENT
  235841. .IP \(bu 2
  235842. 16c0272849 Merge pull request \fI\%#28008\fP from jfindlay/host_path
  235843. .INDENT 2.0
  235844. .IP \(bu 2
  235845. 9f7047dd3c platform independent line endings in hosts mod
  235846. .UNINDENT
  235847. .IP \(bu 2
  235848. d41018fa8e Merge pull request \fI\%#28012\fP from rallytime/fix\-28010
  235849. .INDENT 2.0
  235850. .IP \(bu 2
  235851. 0d7059e0c2 Clean up stack trace when something goes wrong with minion output
  235852. .UNINDENT
  235853. .IP \(bu 2
  235854. f728307001 Merge pull request \fI\%#27995\fP from jacobhammons/pillar\-doc
  235855. .INDENT 2.0
  235856. .IP \(bu 2
  235857. 2870af2ba3 added link to grains security FAQ to targeting and pillar topics.
  235858. .UNINDENT
  235859. .IP \(bu 2
  235860. efede904a7 Merge pull request \fI\%#27986\fP from jacobhammons/dot6
  235861. .INDENT 2.0
  235862. .IP \(bu 2
  235863. bb61c68c11 Changed current release to 5.6 and added CVE to release notes
  235864. .UNINDENT
  235865. .IP \(bu 2
  235866. 831ec680d9 Merge pull request \fI\%#27913\fP from pass\-by\-value/proxmox_verify_ssl
  235867. .INDENT 2.0
  235868. .IP \(bu 2
  235869. 0b721efe37 Set default
  235870. .UNINDENT
  235871. .IP \(bu 2
  235872. 41cccb3a30 Merge pull request \fI\%#27876\fP from terminalmage/git_pillar\-AttributeError\-2015.5
  235873. .INDENT 2.0
  235874. .IP \(bu 2
  235875. 07794c837a 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  235876. .UNINDENT
  235877. .UNINDENT
  235878. .IP \(bu 2
  235879. \fBPR\fP \fI\%#28149\fP: (\fI\%pass\-by\-value\fP) Add clarification to cloud profile doc about host
  235880. @ \fI2015\-10\-20 19:46:05 UTC\fP
  235881. .INDENT 2.0
  235882. .IP \(bu 2
  235883. 53dd01fc24 Merge pull request \fI\%#28149\fP from pass\-by\-value/proxmox_profile_doc_change
  235884. .IP \(bu 2
  235885. bc371c55cd Add clarification to cloud profile doc about host
  235886. .UNINDENT
  235887. .IP \(bu 2
  235888. \fBPR\fP \fI\%#28146\fP: (\fI\%cachedout\fP) Lint dracr.py
  235889. @ \fI2015\-10\-20 17:55:07 UTC\fP
  235890. .INDENT 2.0
  235891. .IP \(bu 2
  235892. 7badd634ae Merge pull request \fI\%#28146\fP from cachedout/lint_dracr
  235893. .IP \(bu 2
  235894. 8b057f39e8 Lint dracr.py
  235895. .UNINDENT
  235896. .IP \(bu 2
  235897. \fBISSUE\fP \fI\%#28118\fP: (\fI\%basepi\fP) Salt\-cloud Linode driver using RAM number for disk size (refs: \fI\%#28141\fP)
  235898. .IP \(bu 2
  235899. \fBPR\fP \fI\%#28141\fP: (\fI\%rallytime\fP) Don\(aqt use RAM for root disk size in linode.py
  235900. @ \fI2015\-10\-20 17:32:29 UTC\fP
  235901. .INDENT 2.0
  235902. .IP \(bu 2
  235903. 5f99bd4dc6 Merge pull request \fI\%#28141\fP from rallytime/fix\-28118
  235904. .IP \(bu 2
  235905. 59f8e41554 Don\(aqt use RAM for root disk size in linode.py
  235906. .UNINDENT
  235907. .IP \(bu 2
  235908. \fBPR\fP \fI\%#28143\fP: (\fI\%justinta\fP) Removed blank line at end of chassis.py
  235909. @ \fI2015\-10\-20 16:39:35 UTC\fP
  235910. .INDENT 2.0
  235911. .IP \(bu 2
  235912. 7cd0440c33 Merge pull request \fI\%#28143\fP from jtand/lint_fix
  235913. .IP \(bu 2
  235914. 427df95515 removed extraneous file
  235915. .IP \(bu 2
  235916. 1a58283f23 Removed blank line at end of chassis.py
  235917. .UNINDENT
  235918. .IP \(bu 2
  235919. \fBPR\fP \fI\%#28021\fP: (\fI\%blueyed\fP) Handle includes in \fIinclude_config\fP recursively
  235920. @ \fI2015\-10\-20 16:19:37 UTC\fP
  235921. .INDENT 2.0
  235922. .IP \(bu 2
  235923. 858875e9fd Merge pull request \fI\%#28021\fP from blueyed/recursive\-include
  235924. .IP \(bu 2
  235925. 1d80520958 Handle includes in \fIinclude_config\fP recursively
  235926. .UNINDENT
  235927. .IP \(bu 2
  235928. \fBISSUE\fP \fI\%#27998\fP: (\fI\%papertigers\fP) pkgin install broken (refs: \fI\%#28001\fP)
  235929. .IP \(bu 2
  235930. \fBPR\fP \fI\%#28095\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28001\fP to 2015.8
  235931. @ \fI2015\-10\-20 16:18:11 UTC\fP
  235932. .INDENT 2.0
  235933. .IP \(bu 2
  235934. \fBPR\fP \fI\%#28001\fP: (\fI\%papertigers\fP) \fI\%#27998\fP Cleanup pkgin isatty mess (refs: \fI\%#28095\fP)
  235935. .IP \(bu 2
  235936. 4dbaec6b0c Merge pull request \fI\%#28095\fP from rallytime/bp\-28001
  235937. .IP \(bu 2
  235938. ddf8a8d2bb Cleanup pkgin isatty mess
  235939. .UNINDENT
  235940. .IP \(bu 2
  235941. \fBISSUE\fP \fI\%#28060\fP: (\fI\%LoveIsGrief\fP) Default paths for test environment (refs: \fI\%#28061\fP)
  235942. .IP \(bu 2
  235943. \fBPR\fP \fI\%#28096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28061\fP to 2015.8
  235944. @ \fI2015\-10\-20 16:15:34 UTC\fP
  235945. .INDENT 2.0
  235946. .IP \(bu 2
  235947. \fBPR\fP \fI\%#28061\fP: (\fI\%LoveIsGrief\fP) Fix \fI\%#28060\fP \- Default paths for test environment (refs: \fI\%#28096\fP)
  235948. .IP \(bu 2
  235949. 572487073c Merge pull request \fI\%#28096\fP from rallytime/bp\-28061
  235950. .IP \(bu 2
  235951. cb8a72d580 Fix \fI\%#28060\fP
  235952. .UNINDENT
  235953. .IP \(bu 2
  235954. \fBPR\fP \fI\%#28139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28103\fP to 2015.8
  235955. @ \fI2015\-10\-20 16:15:05 UTC\fP
  235956. .INDENT 2.0
  235957. .IP \(bu 2
  235958. \fBPR\fP \fI\%#28103\fP: (\fI\%ajacoutot\fP) OpenBSD salt package: update list of dependencies. (refs: \fI\%#28140\fP, \fI\%#28139\fP)
  235959. .IP \(bu 2
  235960. 9ce526260b Merge pull request \fI\%#28139\fP from rallytime/bp\-28103
  235961. .IP \(bu 2
  235962. bc9159a126 OpenBSD salt package: update list of dependencies.
  235963. .UNINDENT
  235964. .IP \(bu 2
  235965. \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)
  235966. .IP \(bu 2
  235967. \fBPR\fP \fI\%#28098\fP: (\fI\%jacksontj\fP) For all multi\-part messages, check the headers. If the header is not …
  235968. @ \fI2015\-10\-20 15:00:08 UTC\fP
  235969. .INDENT 2.0
  235970. .IP \(bu 2
  235971. 97dfb00a68 Merge pull request \fI\%#28098\fP from jacksontj/2015.8
  235972. .IP \(bu 2
  235973. 6d26842925 For all multi\-part messages, check the headers. If the header is not your minion\-id or a broadcast, drop the message.
  235974. .UNINDENT
  235975. .IP \(bu 2
  235976. \fBISSUE\fP \fI\%#3436\fP: (\fI\%madduck\fP) Pillar does not handle Unicode data (refs: \fI\%#28134\fP, #saltstack/salt\(ga#28134\(ga_)
  235977. .IP \(bu 2
  235978. \fBPR\fP \fI\%#28134\fP: (\fI\%bernieke\fP) fix unicode pillar values \fI\%#3436\fP
  235979. @ \fI2015\-10\-20 14:51:10 UTC\fP
  235980. .INDENT 2.0
  235981. .IP \(bu 2
  235982. b4875e585a Merge pull request \fI\%#28134\fP from Awingu/2015.8
  235983. .IP \(bu 2
  235984. 53285f7781 fix unicode pillar values \fI\%#3436\fP
  235985. .UNINDENT
  235986. .IP \(bu 2
  235987. \fBPR\fP \fI\%#28076\fP: (\fI\%redmcg\fP) Replace option \(aqi\(aq with an explicit queryformat
  235988. @ \fI2015\-10\-20 13:59:57 UTC\fP
  235989. .INDENT 2.0
  235990. .IP \(bu 2
  235991. f990a21029 Merge pull request \fI\%#28076\fP from redmcg/2015.8
  235992. .IP \(bu 2
  235993. 07413ec162 Remove unnecessary padding from rpm.info
  235994. .IP \(bu 2
  235995. 4987530986 Replace option \(aqi\(aq with an explicit queryformat
  235996. .UNINDENT
  235997. .IP \(bu 2
  235998. \fBPR\fP \fI\%#28119\fP: (\fI\%jacksontj\fP) Check if the remote exists before casting to a string.
  235999. @ \fI2015\-10\-20 12:34:10 UTC\fP
  236000. .INDENT 2.0
  236001. .IP \(bu 2
  236002. 3fdb52d1bf Merge pull request \fI\%#28119\fP from jacksontj/fetch_issue
  236003. .IP \(bu 2
  236004. c012dcc2f6 Check if the remote exists before casting to a string.
  236005. .UNINDENT
  236006. .IP \(bu 2
  236007. \fBISSUE\fP \fI\%#28080\fP: (\fI\%githubcdr\fP) Salt minion locale module missing on Archlinux (refs: \fI\%#28105\fP)
  236008. .IP \(bu 2
  236009. \fBPR\fP \fI\%#28105\fP: (\fI\%jfindlay\fP) add reason for not loading localemod
  236010. @ \fI2015\-10\-20 12:25:40 UTC\fP
  236011. .INDENT 2.0
  236012. .IP \(bu 2
  236013. 69ab1d30e2 Merge pull request \fI\%#28105\fP from jfindlay/locale_msg
  236014. .IP \(bu 2
  236015. 1e75665a9a add reason for not loading localemod
  236016. .UNINDENT
  236017. .IP \(bu 2
  236018. \fBISSUE\fP \fI\%#28074\fP: (\fI\%eliasp\fP) Salt logfiles are created world\-readable (refs: \fI\%#28108\fP)
  236019. .IP \(bu 2
  236020. \fBPR\fP \fI\%#28108\fP: (\fI\%cachedout\fP) Set logfile permsissions correctly
  236021. @ \fI2015\-10\-20 12:25:22 UTC\fP
  236022. .INDENT 2.0
  236023. .IP \(bu 2
  236024. 8db7e016ec Merge pull request \fI\%#28108\fP from cachedout/issue_28074
  236025. .IP \(bu 2
  236026. b416dcc07b Set logfile permsissions correctly
  236027. .UNINDENT
  236028. .IP \(bu 2
  236029. \fBPR\fP \fI\%#27922\fP: (\fI\%cro\fP) WIP States/Modules for managing Dell FX2 chassis via salt\-proxy
  236030. @ \fI2015\-10\-19 23:29:21 UTC\fP
  236031. .INDENT 2.0
  236032. .IP \(bu 2
  236033. 1085eeab2b Merge pull request \fI\%#27922\fP from cro/fx2
  236034. .IP \(bu 2
  236035. 6ccafa2ae5 Lint
  236036. .IP \(bu 2
  236037. 104c3cbe7f Lint
  236038. .IP \(bu 2
  236039. fe75594737 Lint
  236040. .IP \(bu 2
  236041. 479137cef8 Lint
  236042. .IP \(bu 2
  236043. 3712066fc9 More docs.
  236044. .IP \(bu 2
  236045. 2a3ebf5688 More Documentation.
  236046. .IP \(bu 2
  236047. 4ce2f8bb11 Documentation.
  236048. .IP \(bu 2
  236049. 18663306fb Cleanup, add blade_idrac stub
  236050. .IP \(bu 2
  236051. 0957beea46 Lint fixes and some changes by @rallytime
  236052. .IP \(bu 2
  236053. cca310eee0 WIP modules and states for managing Dell FX2 chassis via salt\-proxy
  236054. .UNINDENT
  236055. .IP \(bu 2
  236056. \fBPR\fP \fI\%#28104\fP: (\fI\%pass\-by\-value\fP) Add documentation for proxy minion ssh
  236057. @ \fI2015\-10\-19 19:30:20 UTC\fP
  236058. .INDENT 2.0
  236059. .IP \(bu 2
  236060. a715803c92 Merge pull request \fI\%#28104\fP from pass\-by\-value/proxy_ssh_docs
  236061. .IP \(bu 2
  236062. 7c8f236115 Add documentation for proxy minion ssh
  236063. .UNINDENT
  236064. .IP \(bu 2
  236065. \fBISSUE\fP \fI\%#27130\fP: (\fI\%githubcdr\fP) salt\-run broken in 2015.8? (refs: \fI\%#28020\fP)
  236066. .IP \(bu 2
  236067. \fBPR\fP \fI\%#28020\fP: (\fI\%DmitryKuzmenko\fP) LazyLoader deepcopy fix.
  236068. @ \fI2015\-10\-19 13:17:57 UTC\fP
  236069. .INDENT 2.0
  236070. .IP \(bu 2
  236071. 07cac0b434 Merge pull request \fI\%#28020\fP from DSRCompany/issues/27130_loader_deepcopy_fix
  236072. .IP \(bu 2
  236073. 5353518623 Fix lint errors
  236074. .IP \(bu 2
  236075. 8c256c94f4 LazyLoader deepcopy fix.
  236076. .UNINDENT
  236077. .IP \(bu 2
  236078. \fBISSUE\fP \fI\%#27932\fP: (\fI\%eliasp\fP) Can\(aqt include Pillar SLS across GitPillar repositories (refs: \fI\%#27933\fP)
  236079. .IP \(bu 2
  236080. \fBPR\fP \fI\%#27933\fP: (\fI\%eliasp\fP) Provide all git pillar dirs in \fIopts[pillar_roots]\fP
  236081. @ \fI2015\-10\-19 13:05:54 UTC\fP
  236082. .INDENT 2.0
  236083. .IP \(bu 2
  236084. f884df5d78 Merge pull request \fI\%#27933\fP from eliasp/fix\-27932
  236085. .IP \(bu 2
  236086. 05782aa78f Provide all git pillar dirs in \fIopts[pillar_roots]\fP
  236087. .UNINDENT
  236088. .IP \(bu 2
  236089. \fBISSUE\fP \fI\%#27890\fP: (\fI\%dkiser\fP) pillar recurse list strategy (refs: \fI\%#27891\fP)
  236090. .IP \(bu 2
  236091. \fBPR\fP \fI\%#28013\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27891\fP to 2015.8
  236092. @ \fI2015\-10\-19 12:57:51 UTC\fP
  236093. .INDENT 2.0
  236094. .IP \(bu 2
  236095. \fBPR\fP \fI\%#27891\fP: (\fI\%dkiser\fP) introduce recurse_list pillar_source_merging_strategy (refs: \fI\%#28353\fP, \fI\%#28013\fP)
  236096. .IP \(bu 2
  236097. 1db6406bef Merge pull request \fI\%#28013\fP from rallytime/bp\-27891
  236098. .IP \(bu 2
  236099. 9ea33bf0e4 Pylint fixes
  236100. .IP \(bu 2
  236101. 4af5b5c33f introduce recurse_list pillar_source_merging_strategy
  236102. .UNINDENT
  236103. .IP \(bu 2
  236104. \fBISSUE\fP \fI\%#27938\fP: (\fI\%mostafahussein\fP) Grains are not rendering correctly (refs: \fI\%#28018\fP)
  236105. .IP \(bu 2
  236106. \fBPR\fP \fI\%#28018\fP: (\fI\%rallytime\fP) Add example to Writing Grains of how grains can be loaded twice
  236107. @ \fI2015\-10\-19 12:47:10 UTC\fP
  236108. .INDENT 2.0
  236109. .IP \(bu 2
  236110. 26b3e01dda Merge pull request \fI\%#28018\fP from rallytime/fix\-27938
  236111. .IP \(bu 2
  236112. c23af0d8e2 Clarify loading vs rendering the final grains data structure
  236113. .IP \(bu 2
  236114. a4d7fb7e60 Add example to Writing Grains of how grains can be loaded twice
  236115. .UNINDENT
  236116. .IP \(bu 2
  236117. \fBPR\fP \fI\%#28084\fP: (\fI\%cachedout\fP) \fI\%#28069\fP with lint
  236118. @ \fI2015\-10\-19 12:18:38 UTC\fP
  236119. .INDENT 2.0
  236120. .IP \(bu 2
  236121. \fBPR\fP \fI\%#28069\fP: (\fI\%blueyed\fP) dockerng: use error from modules.dockerng in states\(aq __virtual__ (refs: \fI\%#28084\fP)
  236122. .IP \(bu 2
  236123. c6e7dd4812 Merge pull request \fI\%#28084\fP from cachedout/lint_28069
  236124. .IP \(bu 2
  236125. 8026212733 Lint
  236126. .IP \(bu 2
  236127. 7a2c80cf6f dockerng: use error from modules.dockerng in states\(aq __virtual__
  236128. .UNINDENT
  236129. .IP \(bu 2
  236130. \fBPR\fP \fI\%#28079\fP: (\fI\%The\-Loeki\fP) Fix for trace dump on failing imports for win32com & pythoncom 4 win_task
  236131. @ \fI2015\-10\-19 12:12:11 UTC\fP
  236132. .INDENT 2.0
  236133. .IP \(bu 2
  236134. 428e64e24d Merge pull request \fI\%#28079\fP from The\-Loeki/fix\-trace\-on\-windows\-tasks
  236135. .IP \(bu 2
  236136. 869e212e81 Fix for trace dump on failing imports for win32com & pythoncom 4 win_task
  236137. .UNINDENT
  236138. .IP \(bu 2
  236139. \fBPR\fP \fI\%#28081\fP: (\fI\%The\-Loeki\fP) fix for glance state trace error on import failure
  236140. @ \fI2015\-10\-19 12:08:47 UTC\fP
  236141. .INDENT 2.0
  236142. .IP \(bu 2
  236143. 2ac8fd793d Merge pull request \fI\%#28081\fP from The\-Loeki/fix\-trace\-on\-keystone\-state
  236144. .IP \(bu 2
  236145. 258e11f754 fix for glance state trace error on import failure
  236146. .UNINDENT
  236147. .IP \(bu 2
  236148. \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)
  236149. .IP \(bu 2
  236150. \fBPR\fP \fI\%#28066\fP: (\fI\%jacksontj\fP) Use the generic \fItext\fP attribute, not .body of the handler
  236151. @ \fI2015\-10\-18 16:17:12 UTC\fP
  236152. .INDENT 2.0
  236153. .IP \(bu 2
  236154. a2128c8f80 Merge pull request \fI\%#28066\fP from jacksontj/issue_27794
  236155. .IP \(bu 2
  236156. b1bf79821d Use the generic \fItext\fP attribute, not .body of the handler
  236157. .UNINDENT
  236158. .IP \(bu 2
  236159. \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)
  236160. .IP \(bu 2
  236161. \fBPR\fP \fI\%#28019\fP: (\fI\%rallytime\fP) Clean up version added and deprecated msgs to be accurate
  236162. @ \fI2015\-10\-17 17:31:50 UTC\fP
  236163. .INDENT 2.0
  236164. .IP \(bu 2
  236165. 9c974c9a41 Merge pull request \fI\%#28019\fP from rallytime/fix\-27828
  236166. .IP \(bu 2
  236167. aca864643f Clean up version added and deprecated msgs to be accurate
  236168. .UNINDENT
  236169. .IP \(bu 2
  236170. \fBPR\fP \fI\%#28058\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28041\fP to 2015.8
  236171. @ \fI2015\-10\-17 17:27:19 UTC\fP
  236172. .INDENT 2.0
  236173. .IP \(bu 2
  236174. \fBPR\fP \fI\%#28041\fP: (\fI\%gtmanfred\fP) use the correct discover_extensions (refs: \fI\%#28058\fP)
  236175. .IP \(bu 2
  236176. 9adcd3b90d Merge pull request \fI\%#28058\fP from rallytime/bp\-28041
  236177. .IP \(bu 2
  236178. 04ad8dc521 use the correct discover_extensions
  236179. .UNINDENT
  236180. .IP \(bu 2
  236181. \fBPR\fP \fI\%#28055\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28043\fP to 2015.8
  236182. @ \fI2015\-10\-17 17:26:37 UTC\fP
  236183. .INDENT 2.0
  236184. .IP \(bu 2
  236185. \fBPR\fP \fI\%#28043\fP: (\fI\%gtmanfred\fP) the nova driver does not require libcloud (refs: \fI\%#28055\fP)
  236186. .IP \(bu 2
  236187. 6db970c93a Merge pull request \fI\%#28055\fP from rallytime/bp\-28043
  236188. .IP \(bu 2
  236189. 744e556be7 the nova driver does not require libcloud
  236190. .UNINDENT
  236191. .IP \(bu 2
  236192. \fBPR\fP \fI\%#28046\fP: (\fI\%pass\-by\-value\fP) Add pkg install and remove functions
  236193. @ \fI2015\-10\-17 14:56:24 UTC\fP
  236194. .INDENT 2.0
  236195. .IP \(bu 2
  236196. d7263d2a8e Merge pull request \fI\%#28046\fP from pass\-by\-value/proxy_minion_ssh_example_additions
  236197. .IP \(bu 2
  236198. 3435d28fc9 Add pkg install and remove functions
  236199. .UNINDENT
  236200. .IP \(bu 2
  236201. \fBPR\fP \fI\%#28050\fP: (\fI\%ryan\-lane\fP) Use a better method for checking dynamodb table existence
  236202. @ \fI2015\-10\-17 14:55:52 UTC\fP
  236203. .INDENT 2.0
  236204. .IP \(bu 2
  236205. dd0fdd827e Merge pull request \fI\%#28050\fP from lyft/better\-dynamo\-exists\-check\-2015.8
  236206. .IP \(bu 2
  236207. 24fff4ea12 Use a better method for checking dynamodb table existence
  236208. .UNINDENT
  236209. .IP \(bu 2
  236210. \fBISSUE\fP \fI\%#28038\fP: (\fI\%gtmanfred\fP) [Docs] the ubuntu repo documentation needs to be fixed (refs: \fI\%#28042\fP)
  236211. .IP \(bu 2
  236212. \fBPR\fP \fI\%#28042\fP: (\fI\%jfindlay\fP) fix repo path in ubuntu installation documentation
  236213. @ \fI2015\-10\-16 19:30:52 UTC\fP
  236214. .INDENT 2.0
  236215. .IP \(bu 2
  236216. 027092e2fb Merge pull request \fI\%#28042\fP from jfindlay/ubuntu_docs
  236217. .IP \(bu 2
  236218. ae92a8a1dc fix repo path in ubuntu installation documentation
  236219. .UNINDENT
  236220. .IP \(bu 2
  236221. \fBPR\fP \fI\%#28033\fP: (\fI\%twangboy\fP) Fixed win_useradd.py (refs: \fI\%#28056\fP)
  236222. @ \fI2015\-10\-16 19:19:44 UTC\fP
  236223. .INDENT 2.0
  236224. .IP \(bu 2
  236225. a3390cfbe6 Merge pull request \fI\%#28033\fP from twangboy/fix_win_useradd
  236226. .IP \(bu 2
  236227. 2137b5f79a Fixed win_useradd.py
  236228. .UNINDENT
  236229. .IP \(bu 2
  236230. \fBPR\fP \fI\%#28027\fP: (\fI\%cro\fP) Make ssh conn persistent.
  236231. @ \fI2015\-10\-16 18:50:51 UTC\fP
  236232. .INDENT 2.0
  236233. .IP \(bu 2
  236234. 4f81358e9a Merge pull request \fI\%#28027\fP from cro/persistent_ssh
  236235. .IP \(bu 2
  236236. 8b4067b6db Spelling, lint.
  236237. .IP \(bu 2
  236238. 76a93d5922 Spelling.
  236239. .IP \(bu 2
  236240. c800f60338 Default multiprocessing to False since anything that needs salt.vt will have trouble with our forking model.
  236241. .IP \(bu 2
  236242. cc0ad81b3d Lint, remove debug.
  236243. .IP \(bu 2
  236244. e41b677450 Make SSH connection \(aqpersistent\(aq. Note that right now this requires \(aqmultiprocessing: False\(aq in /etc/salt/proxy.
  236245. .UNINDENT
  236246. .IP \(bu 2
  236247. \fBPR\fP \fI\%#28029\fP: (\fI\%jacobhammons\fP) Updated release notes with additional CVE information
  236248. @ \fI2015\-10\-16 16:19:33 UTC\fP
  236249. .INDENT 2.0
  236250. .IP \(bu 2
  236251. 4dec2f9307 Merge pull request \fI\%#28029\fP from jacobhammons/relnotes8
  236252. .IP \(bu 2
  236253. 0d1b691549 Updated release notes with additional CVE information
  236254. .UNINDENT
  236255. .IP \(bu 2
  236256. \fBPR\fP \fI\%#28022\fP: (\fI\%jacobhammons\fP) Updated Debian and Ubuntu repo paths with new structure for 2015.8.1
  236257. @ \fI2015\-10\-16 15:31:36 UTC\fP
  236258. .INDENT 2.0
  236259. .IP \(bu 2
  236260. 5286c01f39 Merge pull request \fI\%#28022\fP from jacobhammons/install
  236261. .IP \(bu 2
  236262. e4d7df8695 Updated Debian and Ubuntu repo paths with new structure for 2015.8.1
  236263. .UNINDENT
  236264. .IP \(bu 2
  236265. \fBISSUE\fP \fI\%#27971\fP: (\fI\%srkunze\fP) pip.installed returned Result: None (refs: \fI\%#27983\fP)
  236266. .IP \(bu 2
  236267. \fBPR\fP \fI\%#27983\fP: (\fI\%rallytime\fP) Pip state run result should be False, not None, if installation error occurs.
  236268. @ \fI2015\-10\-16 13:37:42 UTC\fP
  236269. .INDENT 2.0
  236270. .IP \(bu 2
  236271. 340229355c Merge pull request \fI\%#27983\fP from rallytime/fix\-27971
  236272. .IP \(bu 2
  236273. 9855290b99 Maintain stateful output if something went wrong running the pip command
  236274. .IP \(bu 2
  236275. 5bcc89bb8e Pip state run result should be False, not None, if installation error occurs.
  236276. .UNINDENT
  236277. .IP \(bu 2
  236278. \fBISSUE\fP \fI\%#20678\fP: (\fI\%damon\-atkins\fP) Windows Installer (Separation/Downloader/Contains VC++) (refs: \fI\%#27991\fP)
  236279. .IP \(bu 2
  236280. \fBPR\fP \fI\%#27991\fP: (\fI\%twangboy\fP) Fix for \fI\%#20678\fP
  236281. @ \fI2015\-10\-16 13:33:48 UTC\fP
  236282. .INDENT 2.0
  236283. .IP \(bu 2
  236284. 97d473af0d Merge pull request \fI\%#27991\fP from twangboy/fix_20678
  236285. .IP \(bu 2
  236286. 5254ba18b3 Fix for \fI\%#20678\fP
  236287. .UNINDENT
  236288. .IP \(bu 2
  236289. \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)
  236290. .IP \(bu 2
  236291. \fBPR\fP \fI\%#27997\fP: (\fI\%rallytime\fP) Remove note about pip bug with pip v1 vs pip v2 return codes
  236292. @ \fI2015\-10\-16 13:23:58 UTC\fP
  236293. .INDENT 2.0
  236294. .IP \(bu 2
  236295. \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)
  236296. .IP \(bu 2
  236297. bd7b39bc18 Merge pull request \fI\%#27997\fP from rallytime/remove\-pip\-bug\-note
  236298. .IP \(bu 2
  236299. f08d488313 Remove note about pip bug with pip v1 vs pip v2 return codes
  236300. .UNINDENT
  236301. .IP \(bu 2
  236302. \fBPR\fP \fI\%#27994\fP: (\fI\%justinta\fP) Fix schedule_test failure
  236303. @ \fI2015\-10\-16 13:20:56 UTC\fP
  236304. .INDENT 2.0
  236305. .IP \(bu 2
  236306. 3256e38932 Merge pull request \fI\%#27994\fP from jtand/schedule_test\-fix
  236307. .IP \(bu 2
  236308. cd67843bd0 Fix schedule_test failure
  236309. .UNINDENT
  236310. .IP \(bu 2
  236311. \fBISSUE\fP \fI\%#27949\fP: (\fI\%itsamenathan\fP) Error enabling or disabling a beacon on a minion (refs: \fI\%#27992\fP)
  236312. .IP \(bu 2
  236313. \fBPR\fP \fI\%#27992\fP: (\fI\%cachedout\fP) Make load beacon config into list
  236314. @ \fI2015\-10\-16 12:43:53 UTC\fP
  236315. .INDENT 2.0
  236316. .IP \(bu 2
  236317. 4a7a25eef7 Merge pull request \fI\%#27992\fP from cachedout/issue_27949
  236318. .IP \(bu 2
  236319. 8944e1395a Make load beacon config into list
  236320. .UNINDENT
  236321. .IP \(bu 2
  236322. \fBISSUE\fP \fI\%#26336\fP: (\fI\%jfindlay\fP) windows user.present broken (refs: \fI\%#28003\fP)
  236323. .IP \(bu 2
  236324. \fBPR\fP \fI\%#28003\fP: (\fI\%twangboy\fP) Fix \fI\%#26336\fP (refs: \fI\%#28037\fP)
  236325. @ \fI2015\-10\-16 12:43:07 UTC\fP
  236326. .INDENT 2.0
  236327. .IP \(bu 2
  236328. bae81d3a8d Merge pull request \fI\%#28003\fP from twangboy/fix_26336
  236329. .IP \(bu 2
  236330. 6c94146d86 Fix PR \fI\%#26336\fP
  236331. .UNINDENT
  236332. .IP \(bu 2
  236333. \fBPR\fP \fI\%#27984\fP: (\fI\%rallytime\fP) Versionadded for clean_file option for pkgrepo
  236334. @ \fI2015\-10\-15 18:57:54 UTC\fP
  236335. .INDENT 2.0
  236336. .IP \(bu 2
  236337. \fBPR\fP \fI\%#19561\fP: (\fI\%favadi\fP) add pkgrepo.managed clean_file option (refs: \fI\%#27984\fP)
  236338. .IP \(bu 2
  236339. e15eeee2d3 Merge pull request \fI\%#27984\fP from rallytime/version\-clean\-file
  236340. .IP \(bu 2
  236341. b094c8843e Versionadded for clean_file option for pkgrepo
  236342. .UNINDENT
  236343. .IP \(bu 2
  236344. \fBPR\fP \fI\%#27989\fP: (\fI\%ryan\-lane\fP) Do not try to remove the main route table association
  236345. @ \fI2015\-10\-15 18:57:42 UTC\fP
  236346. .INDENT 2.0
  236347. .IP \(bu 2
  236348. 6efa71a482 Merge pull request \fI\%#27989\fP from lyft/boto_vpc\-main\-route\-association2\-2015.8
  236349. .IP \(bu 2
  236350. 296931d29f Do not try to remove the main route table association
  236351. .UNINDENT
  236352. .IP \(bu 2
  236353. \fBPR\fP \fI\%#27982\fP: (\fI\%pass\-by\-value\fP) Add example for salt\-proxy over SSH
  236354. @ \fI2015\-10\-15 17:27:57 UTC\fP
  236355. .INDENT 2.0
  236356. .IP \(bu 2
  236357. 7169fad02d Merge pull request \fI\%#27982\fP from pass\-by\-value/proxy_ssh_sample
  236358. .IP \(bu 2
  236359. b85f6ab339 Add example for salt\-proxy over SSH
  236360. .UNINDENT
  236361. .IP \(bu 2
  236362. \fBPR\fP \fI\%#27985\fP: (\fI\%jacobhammons\fP) Changed current release to 8.1 and added CVEs to release notes
  236363. @ \fI2015\-10\-15 17:27:05 UTC\fP
  236364. .INDENT 2.0
  236365. .IP \(bu 2
  236366. d0be1ab98e Merge pull request \fI\%#27985\fP from jacobhammons/dot1
  236367. .IP \(bu 2
  236368. 236992b2be Changed current release to 8.1 and added CVEs to release notes
  236369. .UNINDENT
  236370. .IP \(bu 2
  236371. \fBISSUE\fP \fI\%#27750\fP: (\fI\%justyns\fP) Salt\-master too sensitive to whitespace in public keys (again) (refs: \fI\%#27979\fP)
  236372. .IP \(bu 2
  236373. \fBISSUE\fP \fI\%#21910\fP: (\fI\%justyns\fP) Salt\-master too whitespace\-sensitive when dealing with minion pub keys (refs: \fI\%#22115\fP)
  236374. .IP \(bu 2
  236375. \fBPR\fP \fI\%#27979\fP: (\fI\%cachedout\fP) Fix regression with key whitespace
  236376. @ \fI2015\-10\-15 15:26:08 UTC\fP
  236377. .INDENT 2.0
  236378. .IP \(bu 2
  236379. \fBPR\fP \fI\%#22115\fP: (\fI\%douglas\-vaz\fP) Strip whitespace characters using strip() for pub key check (refs: \fI\%#27979\fP)
  236380. .IP \(bu 2
  236381. 7e4058605d Merge pull request \fI\%#27979\fP from cachedout/issue_27750
  236382. .IP \(bu 2
  236383. 12c6bf4358 Fix regression with key whitespace
  236384. .UNINDENT
  236385. .IP \(bu 2
  236386. \fBISSUE\fP \fI\%#27712\fP: (\fI\%eduherraiz\fP) saltutil.sync_all can\(aqt sync with the minion (refs: \fI\%#27977\fP)
  236387. .IP \(bu 2
  236388. \fBPR\fP \fI\%#27977\fP: (\fI\%cachedout\fP) Decode unicode names in fileclient/server
  236389. @ \fI2015\-10\-15 15:17:01 UTC\fP
  236390. .INDENT 2.0
  236391. .IP \(bu 2
  236392. 6f8925ee84 Merge pull request \fI\%#27977\fP from cachedout/issuse_27712
  236393. .IP \(bu 2
  236394. 5173ef43c8 Decode unicode names in fileclient/server
  236395. .UNINDENT
  236396. .IP \(bu 2
  236397. \fBPR\fP \fI\%#27981\fP: (\fI\%justinta\fP) Fixed trailing whitespace lint
  236398. @ \fI2015\-10\-15 15:10:15 UTC\fP
  236399. .INDENT 2.0
  236400. .IP \(bu 2
  236401. fc1375fc39 Merge pull request \fI\%#27981\fP from jtand/cloudstack\-lint
  236402. .IP \(bu 2
  236403. 5dfad190c2 Fixed trailing whitespace lint
  236404. .UNINDENT
  236405. .IP \(bu 2
  236406. \fBPR\fP \fI\%#27969\fP: (\fI\%jeffreyctang\fP) fix parse of { on next line
  236407. @ \fI2015\-10\-15 15:04:33 UTC\fP
  236408. .INDENT 2.0
  236409. .IP \(bu 2
  236410. 1ae302b202 Merge pull request \fI\%#27969\fP from jeffreyctang/logrotate_parse
  236411. .IP \(bu 2
  236412. 2c9b2bc367 lint fixes
  236413. .IP \(bu 2
  236414. 8c6197d42e fix parse of { on next line
  236415. .UNINDENT
  236416. .IP \(bu 2
  236417. \fBPR\fP \fI\%#27978\fP: (\fI\%terminalmage\fP) Add note about dockerng.inspect_image usage
  236418. @ \fI2015\-10\-15 14:54:10 UTC\fP
  236419. .INDENT 2.0
  236420. .IP \(bu 2
  236421. a4ba982b1d Merge pull request \fI\%#27978\fP from terminalmage/dockerng\-inspect_image\-docstring
  236422. .IP \(bu 2
  236423. 595f4a6939 Add note about dockerng.inspect_image usage
  236424. .UNINDENT
  236425. .IP \(bu 2
  236426. \fBPR\fP \fI\%#27955\fP: (\fI\%pass\-by\-value\fP) Bp 27868
  236427. @ \fI2015\-10\-15 12:43:37 UTC\fP
  236428. .INDENT 2.0
  236429. .IP \(bu 2
  236430. \fBPR\fP \fI\%#27868\fP: (\fI\%pass\-by\-value\fP) Add SSHConnection object
  236431. .IP \(bu 2
  236432. bd9d1ed8b5 Merge pull request \fI\%#27955\fP from pass\-by\-value/bp\-27868
  236433. .IP \(bu 2
  236434. c02ec8b943 Fix pylint errors
  236435. .IP \(bu 2
  236436. 6553d135d0 Add SSHConnection object
  236437. .UNINDENT
  236438. .IP \(bu 2
  236439. \fBPR\fP \fI\%#27953\fP: (\fI\%The\-Loeki\fP) Fix CloudStack cloud for new \(aqdriver\(aq syntax
  236440. @ \fI2015\-10\-15 12:38:58 UTC\fP
  236441. .INDENT 2.0
  236442. .IP \(bu 2
  236443. c50802a80f Merge pull request \fI\%#27953\fP from The\-Loeki/patch\-1
  236444. .IP \(bu 2
  236445. f0d5c9f375 Pop deprecated \(aqprovider\(aq into new \(aqdriver\(aq key
  236446. .IP \(bu 2
  236447. 4e6b09edd1 Fix CloudStack cloud for new \(aqdriver\(aq syntax
  236448. .UNINDENT
  236449. .IP \(bu 2
  236450. \fBPR\fP \fI\%#27965\fP: (\fI\%ryan\-lane\fP) Fail in boto_asg.present if alarms fail
  236451. @ \fI2015\-10\-15 12:32:53 UTC\fP
  236452. .INDENT 2.0
  236453. .IP \(bu 2
  236454. 7006c37627 Merge pull request \fI\%#27965\fP from lyft/HOTFIX\-boto\-asg\-fix
  236455. .IP \(bu 2
  236456. b8f4079c33 Fail in boto_asg.present if alarms fail
  236457. .UNINDENT
  236458. .IP \(bu 2
  236459. \fBPR\fP \fI\%#27958\fP: (\fI\%twangboy\fP) Added new functionality to win_task.py
  236460. @ \fI2015\-10\-15 12:30:31 UTC\fP
  236461. .INDENT 2.0
  236462. .IP \(bu 2
  236463. 6624ec1f48 Merge pull request \fI\%#27958\fP from twangboy/update_win_task
  236464. .IP \(bu 2
  236465. 6ecbdba246 Added run_wait function
  236466. .IP \(bu 2
  236467. 5731bdcadb Clarified an error
  236468. .IP \(bu 2
  236469. 23b9c1c199 Added new functionality
  236470. .UNINDENT
  236471. .IP \(bu 2
  236472. \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)
  236473. .IP \(bu 2
  236474. \fBPR\fP \fI\%#27959\fP: (\fI\%techhat\fP) Change __opts__ to self.opts
  236475. @ \fI2015\-10\-14 22:29:13 UTC\fP
  236476. .INDENT 2.0
  236477. .IP \(bu 2
  236478. 1efa87a964 Merge pull request \fI\%#27959\fP from techhat/issue27956
  236479. .IP \(bu 2
  236480. bc01c48122 Change __opts__ to self.opts
  236481. .UNINDENT
  236482. .IP \(bu 2
  236483. \fBPR\fP \fI\%#27943\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27910\fP to 2015.8
  236484. @ \fI2015\-10\-14 20:27:20 UTC\fP
  236485. .INDENT 2.0
  236486. .IP \(bu 2
  236487. \fBPR\fP \fI\%#27910\fP: (\fI\%twellspring\fP) htpasswd state add comment about dependency on apache2\-utils (refs: \fI\%#27943\fP)
  236488. .IP \(bu 2
  236489. 877e217388 Merge pull request \fI\%#27943\fP from rallytime/bp\-27910
  236490. .IP \(bu 2
  236491. 33b3d8f5b3 Clarify that apache2\-utils is for Debian\-based distros
  236492. .IP \(bu 2
  236493. 8ca0bc823c Add dependency on apache2\-utils
  236494. .UNINDENT
  236495. .IP \(bu 2
  236496. \fBPR\fP \fI\%#27944\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27909\fP to 2015.8
  236497. @ \fI2015\-10\-14 20:26:52 UTC\fP
  236498. .INDENT 2.0
  236499. .IP \(bu 2
  236500. \fBPR\fP \fI\%#27909\fP: (\fI\%twellspring\fP) htpasswd module add comment about dependency on apache2\-utils (refs: \fI\%#27944\fP)
  236501. .IP \(bu 2
  236502. 5f6edc8ac2 Merge pull request \fI\%#27944\fP from rallytime/bp\-27909
  236503. .IP \(bu 2
  236504. a3401c11b1 Clarify that apache2\-utils is for Debian\-based distros
  236505. .IP \(bu 2
  236506. 08b7bdeb97 Add dependency on apache2\-utils
  236507. .UNINDENT
  236508. .IP \(bu 2
  236509. \fBPR\fP \fI\%#27946\fP: (\fI\%justinta\fP) Changed grain to look at osmajorrelease instead of osrelease
  236510. @ \fI2015\-10\-14 19:54:08 UTC\fP
  236511. .INDENT 2.0
  236512. .IP \(bu 2
  236513. f29ca5f87b Merge pull request \fI\%#27946\fP from jtand/pkgrepo\-fix
  236514. .IP \(bu 2
  236515. d88ac2589f Changed grain to look at osmajorrelease instead of osrelease
  236516. .UNINDENT
  236517. .IP \(bu 2
  236518. \fBISSUE\fP \fI\%#27815\fP: (\fI\%tbaker57\fP) Documentation regarding associate_eip for EC2 profiles (refs: \fI\%#27914\fP)
  236519. .IP \(bu 2
  236520. \fBPR\fP \fI\%#27914\fP: (\fI\%rallytime\fP) Use eipalloc instead of eni in EC2 interface properties example
  236521. @ \fI2015\-10\-14 14:37:52 UTC\fP
  236522. .INDENT 2.0
  236523. .IP \(bu 2
  236524. bb900d428b Merge pull request \fI\%#27914\fP from rallytime/fix\-27815
  236525. .IP \(bu 2
  236526. 13a9bc9053 Use eipalloc instead of eni in EC2 interface properties example
  236527. .UNINDENT
  236528. .IP \(bu 2
  236529. \fBPR\fP \fI\%#27926\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27905\fP to 2015.8
  236530. @ \fI2015\-10\-14 14:35:37 UTC\fP
  236531. .INDENT 2.0
  236532. .IP \(bu 2
  236533. \fBPR\fP \fI\%#27905\fP: (\fI\%itsamenathan\fP) Small documentation error for beacon disable (refs: \fI\%#27926\fP)
  236534. .IP \(bu 2
  236535. 679e603905 Merge pull request \fI\%#27926\fP from rallytime/bp\-27905
  236536. .IP \(bu 2
  236537. 30e6b055ec Small documentation error fixed
  236538. .UNINDENT
  236539. .IP \(bu 2
  236540. \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)
  236541. .IP \(bu 2
  236542. \fBPR\fP \fI\%#27927\fP: (\fI\%ryan\-lane\fP) Do not manage ingress or egress rules if set to None
  236543. @ \fI2015\-10\-14 14:03:17 UTC\fP
  236544. .INDENT 2.0
  236545. .IP \(bu 2
  236546. 3b4d86467b Merge pull request \fI\%#27927\fP from lyft/boto_secgroup\-fixes\-2015.8
  236547. .IP \(bu 2
  236548. 0fedcc9a0b Update docs
  236549. .IP \(bu 2
  236550. 9cc65bba76 Do not manage ingress or egress rules if set to None
  236551. .UNINDENT
  236552. .IP \(bu 2
  236553. \fBPR\fP \fI\%#27928\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27908\fP to 2015.8
  236554. @ \fI2015\-10\-14 14:00:50 UTC\fP
  236555. .INDENT 2.0
  236556. .IP \(bu 2
  236557. \fBPR\fP \fI\%#27908\fP: (\fI\%lathama\fP) Documentation note kwargs for mdadm state already mentioned in module (refs: \fI\%#27928\fP)
  236558. .IP \(bu 2
  236559. b0f9db409d Merge pull request \fI\%#27928\fP from rallytime/bp\-27908
  236560. .IP \(bu 2
  236561. 7febb06223 Sneaky white space
  236562. .IP \(bu 2
  236563. 31d54bbe63 Note kwags for mdadm in state
  236564. .UNINDENT
  236565. .IP \(bu 2
  236566. \fBISSUE\fP \fI\%#27661\fP: (\fI\%alf\fP) The dockerng module uses deprecated API in docker\-py (refs: \fI\%#27676\fP)
  236567. .IP \(bu 2
  236568. \fBPR\fP \fI\%#27676\fP: (\fI\%ticosax\fP) [dockerng] WIP No more runtime args passed to docker.start()
  236569. @ \fI2015\-10\-14 13:38:41 UTC\fP
  236570. .INDENT 2.0
  236571. .IP \(bu 2
  236572. 2d0b16559e Merge pull request \fI\%#27676\fP from ticosax/no\-more\-arg\-to\-docker\-start
  236573. .IP \(bu 2
  236574. a1d0ba392f fixup! Do not pass any argument to docker.start
  236575. .IP \(bu 2
  236576. 8cddbb15c4 prevent potential error while reporting mismatch versions to user.
  236577. .IP \(bu 2
  236578. 65c8762e1f Do not pass any argument to docker.start
  236579. .IP \(bu 2
  236580. d8cca2a009 docker.version_info is now provided.
  236581. .UNINDENT
  236582. .IP \(bu 2
  236583. \fBPR\fP \fI\%#27885\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  236584. @ \fI2015\-10\-13 22:44:20 UTC\fP
  236585. .INDENT 2.0
  236586. .IP \(bu 2
  236587. 722327ee5f Merge pull request \fI\%#27885\fP from basepi/merge\-forward\-2015.8
  236588. .IP \(bu 2
  236589. 5ecd5615f2 Remove failing heavily\-mocked test
  236590. .IP \(bu 2
  236591. 3b5e16db67 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  236592. .INDENT 2.0
  236593. .IP \(bu 2
  236594. c9c3b7760e Merge pull request \fI\%#27726\fP from jfindlay/hashhosts
  236595. .INDENT 2.0
  236596. .IP \(bu 2
  236597. ebce47de7c add docs to ssh.recv_known_host exec module fcn
  236598. .IP \(bu 2
  236599. b6ee16b1e5 deprecate hash_hostname in favor of hash_known_hosts
  236600. .UNINDENT
  236601. .IP \(bu 2
  236602. 18e31584b0 Merge pull request \fI\%#27776\fP from jfindlay/local_msg
  236603. .INDENT 2.0
  236604. .IP \(bu 2
  236605. 03afa3cffa return message when local jobs_cache not found
  236606. .UNINDENT
  236607. .IP \(bu 2
  236608. 86cc7b5537 Merge pull request \fI\%#27766\fP from jfindlay/debmail
  236609. .INDENT 2.0
  236610. .IP \(bu 2
  236611. ee78da2c27 better check for debian userdel error
  236612. .UNINDENT
  236613. .IP \(bu 2
  236614. c224386c9a Merge pull request \fI\%#27758\fP from iggy/patch\-1
  236615. .INDENT 2.0
  236616. .IP \(bu 2
  236617. 0994fb6a8c Remove redundant text from syslog returner
  236618. .UNINDENT
  236619. .IP \(bu 2
  236620. 34a005041f Merge pull request \fI\%#27841\fP from terminalmage/issue27832
  236621. .INDENT 2.0
  236622. .IP \(bu 2
  236623. 8e09fbd6a3 Detect Manjaro Linux as Arch derivative
  236624. .UNINDENT
  236625. .IP \(bu 2
  236626. 3944a498ad Merge pull request \fI\%#27852\fP from rallytime/bp\-27806
  236627. .INDENT 2.0
  236628. .IP \(bu 2
  236629. a84bf18bc4 Empty string is falsy
  236630. .UNINDENT
  236631. .IP \(bu 2
  236632. 7508a1c474 Merge pull request \fI\%#27838\fP from basepi/fix.runner.highstate.outputter.27831
  236633. .INDENT 2.0
  236634. .IP \(bu 2
  236635. 8ae9b66fd9 Don\(aqt pop \(aqoutputter\(aq, we expect it further down
  236636. .UNINDENT
  236637. .IP \(bu 2
  236638. d178315f93 Merge pull request \fI\%#27791\fP from eguven/2015.5\-postgres\-user\-groups\-backport
  236639. .INDENT 2.0
  236640. .IP \(bu 2
  236641. 2caf1d21d6 fix test
  236642. .IP \(bu 2
  236643. bc90c5bffe improve change reporting for postgres_user groups
  236644. .IP \(bu 2
  236645. 8712bce91a backport postgres_user groups
  236646. .UNINDENT
  236647. .UNINDENT
  236648. .UNINDENT
  236649. .IP \(bu 2
  236650. \fBISSUE\fP \fI\%#26908\fP: (\fI\%twangboy\fP) Fix \fIservice.restart salt\-minion\fP for other locales (refs: \fI\%#27882\fP)
  236651. .IP \(bu 2
  236652. \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)
  236653. .IP \(bu 2
  236654. \fBPR\fP \fI\%#27882\fP: (\fI\%twangboy\fP) Created win_task.py module
  236655. @ \fI2015\-10\-13 16:54:13 UTC\fP
  236656. .INDENT 2.0
  236657. .IP \(bu 2
  236658. 36f05fb526 Merge pull request \fI\%#27882\fP from twangboy/win_task_module
  236659. .IP \(bu 2
  236660. 56c3f3ebb2 Fixed an egregious error with an import
  236661. .IP \(bu 2
  236662. 07939ea29c More lint
  236663. .IP \(bu 2
  236664. 14e060ed9c Fixed some tests
  236665. .IP \(bu 2
  236666. 1e1bd29426 Fixed some lint
  236667. .IP \(bu 2
  236668. 082277a727 Win_service.py to use the new task module
  236669. .IP \(bu 2
  236670. 2212b52620 Created win_task.py module
  236671. .UNINDENT
  236672. .IP \(bu 2
  236673. \fBISSUE\fP \fI\%#27738\fP: (\fI\%fphhotchips\fP) Git Pillar locks not managed by fileserver runner (refs: \fI\%#27802\fP)
  236674. .IP \(bu 2
  236675. \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
  236676. @ \fI2015\-10\-13 15:09:11 UTC\fP
  236677. .INDENT 2.0
  236678. .IP \(bu 2
  236679. 577191696d Merge pull request \fI\%#27802\fP from terminalmage/issue27738
  236680. .IP \(bu 2
  236681. 1dbc3b5489 Fix comment in docstring that trailed off mid\-sentence
  236682. .IP \(bu 2
  236683. 94b5fc572f Process both old and ng winrepo configs when clearing git locks
  236684. .IP \(bu 2
  236685. 7f4366d42e Add CLI example
  236686. .IP \(bu 2
  236687. 3952c66888 Change log message to reflect new runner function
  236688. .IP \(bu 2
  236689. c00ef718bf Add cache.clear_git_lock runner function
  236690. .IP \(bu 2
  236691. d7ca297f7b Add salt.fileserver.clear_lock()
  236692. .IP \(bu 2
  236693. 947ed5f739 Clarify docstring
  236694. .UNINDENT
  236695. .IP \(bu 2
  236696. \fBISSUE\fP \fI\%#26632\fP: (\fI\%ryanwalder\fP) postgres_user crashes when trying to add groups formed in a list (refs: \fI\%#27886\fP)
  236697. .IP \(bu 2
  236698. \fBPR\fP \fI\%#27886\fP: (\fI\%rallytime\fP) Handle group lists as well as comma\-separated group strings.
  236699. @ \fI2015\-10\-13 15:00:10 UTC\fP
  236700. .INDENT 2.0
  236701. .IP \(bu 2
  236702. d655bb3616 Merge pull request \fI\%#27886\fP from rallytime/fix\-26632
  236703. .IP \(bu 2
  236704. d235abf907 Handle group lists as well as comma\-separated group strings.
  236705. .UNINDENT
  236706. .IP \(bu 2
  236707. \fBISSUE\fP \fI\%#26313\fP: (\fI\%anlutro\fP) Timezone module error when timedatectl fails to query server (refs: \fI\%#27746\fP)
  236708. .IP \(bu 2
  236709. \fBPR\fP \fI\%#27746\fP: (\fI\%anlutro\fP) timezone module: handle timedatectl errors
  236710. @ \fI2015\-10\-13 14:55:27 UTC\fP
  236711. .INDENT 2.0
  236712. .IP \(bu 2
  236713. a158cd50e6 Merge pull request \fI\%#27746\fP from alprs/fix\-timedatectl_failure
  236714. .IP \(bu 2
  236715. f616b550b2 lint \- use indexed curly brace formatting
  236716. .IP \(bu 2
  236717. bc0f167850 update timezone mod unit tests for errors
  236718. .IP \(bu 2
  236719. ef26f067b2 timezone module: handle timedatectl errors
  236720. .UNINDENT
  236721. .IP \(bu 2
  236722. \fBISSUE\fP \fI\%#27710\fP: (\fI\%anlutro\fP) salt\-ssh and system.reboot/shutdown (refs: \fI\%#27816\fP)
  236723. .IP \(bu 2
  236724. \fBPR\fP \fI\%#27816\fP: (\fI\%anlutro\fP) Make system.reboot use \fIshutdown \-r\fP when available
  236725. @ \fI2015\-10\-13 14:52:06 UTC\fP
  236726. .INDENT 2.0
  236727. .IP \(bu 2
  236728. 9dc19caa79 Merge pull request \fI\%#27816\fP from alprs/fix\-reboot_delay
  236729. .IP \(bu 2
  236730. 04ef51e524 make system.reboot use \fIshutdown \-r\fP when available
  236731. .UNINDENT
  236732. .IP \(bu 2
  236733. \fBPR\fP \fI\%#27874\fP: (\fI\%rallytime\fP) Add mention of Periodic Table naming scheme to deprecation docs
  236734. @ \fI2015\-10\-13 14:51:45 UTC\fP
  236735. .INDENT 2.0
  236736. .IP \(bu 2
  236737. dd92b8a2e3 Merge pull request \fI\%#27874\fP from rallytime/deprecation\-docs
  236738. .IP \(bu 2
  236739. 8c056ba501 Add mention of Periodic Table naming scheme to deprecation docs
  236740. .UNINDENT
  236741. .IP \(bu 2
  236742. \fBPR\fP \fI\%#27883\fP: (\fI\%terminalmage\fP) Work around \-\-is\-ancestor not being present in git\-merge\-base before git 1.8.0
  236743. @ \fI2015\-10\-13 14:51:27 UTC\fP
  236744. .INDENT 2.0
  236745. .IP \(bu 2
  236746. 7f96ebd69e Merge pull request \fI\%#27883\fP from terminalmage/git\-merge_base\-is_ancestor
  236747. .IP \(bu 2
  236748. 45c666e8dd Work around \-\-is\-ancestor not being present in git\-merge\-base before git 1.8.0
  236749. .IP \(bu 2
  236750. 38d715ec0a Remove redundant SaltInvocationError raises
  236751. .UNINDENT
  236752. .IP \(bu 2
  236753. \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)
  236754. .IP \(bu 2
  236755. \fBPR\fP \fI\%#27877\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27774\fP to 2015.8
  236756. @ \fI2015\-10\-13 14:50:45 UTC\fP
  236757. .INDENT 2.0
  236758. .IP \(bu 2
  236759. \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)
  236760. .IP \(bu 2
  236761. \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)
  236762. .IP \(bu 2
  236763. \fBPR\fP \fI\%#24732\fP: (\fI\%msteed\fP) Fix stacktrace when \fI\-\-summary\fP is used (refs: \fI\%#27099\fP)
  236764. .IP \(bu 2
  236765. 4fb20d9b4f Merge pull request \fI\%#27877\fP from rallytime/bp\-27774
  236766. .IP \(bu 2
  236767. d940d87306 Summary is not correctly inspecting return data to identify not responding|connected minions.
  236768. .UNINDENT
  236769. .IP \(bu 2
  236770. \fBISSUE\fP \fI\%#26284\fP: (\fI\%storner\fP) apache_module.enable fails on SUSE (SLES 11 SP3) (refs: \fI\%#27878\fP)
  236771. .IP \(bu 2
  236772. \fBPR\fP \fI\%#27878\fP: (\fI\%rallytime\fP) Use apache2ctl binary on SUSE in apache module
  236773. @ \fI2015\-10\-13 14:45:56 UTC\fP
  236774. .INDENT 2.0
  236775. .IP \(bu 2
  236776. 97da0a87e3 Merge pull request \fI\%#27878\fP from rallytime/fix\-26284
  236777. .IP \(bu 2
  236778. 87f0d987a3 Use apache2ctl binary on SUSE in apache module
  236779. .UNINDENT
  236780. .IP \(bu 2
  236781. \fBPR\fP \fI\%#27879\fP: (\fI\%cro\fP) Add docs for 2015.8.2+ changes to proxies
  236782. @ \fI2015\-10\-13 14:45:30 UTC\fP
  236783. .INDENT 2.0
  236784. .IP \(bu 2
  236785. 067968c0e4 Merge pull request \fI\%#27879\fP from cro/proxydoc
  236786. .IP \(bu 2
  236787. 5b33df9d19 Add docs for 2015.8.2+ changes
  236788. .UNINDENT
  236789. .IP \(bu 2
  236790. \fBPR\fP \fI\%#27731\fP: (\fI\%cro\fP) Add __proxy__ to replace opts[\(aqproxymodule\(aq]
  236791. @ \fI2015\-10\-12 20:41:22 UTC\fP
  236792. .INDENT 2.0
  236793. .IP \(bu 2
  236794. 922e2018ef Merge pull request \fI\%#27731\fP from cro/dunder_proxy
  236795. .IP \(bu 2
  236796. ba3e423b87 Missing object item throws an AttributeError not a NameError.
  236797. .IP \(bu 2
  236798. 4cf2b56d5f Lint.
  236799. .IP \(bu 2
  236800. dc07245df2 @rallytime is awesome. Moved proxy=None to end of def minion_mods
  236801. .IP \(bu 2
  236802. 3152d8ee3f Minor loader fix
  236803. .IP \(bu 2
  236804. b15083d719 Flip sense of test for grains load at end of regular minion startup
  236805. .IP \(bu 2
  236806. 37c145bcd5 More places where salt.state.State needs a proxy param, sysmod had wrong __proxyenabled__, core grains were checking for proxy the wrong way.
  236807. .IP \(bu 2
  236808. ed23f36279 One more check for presence of __proxy__
  236809. .IP \(bu 2
  236810. 62d9f5092e what was I thinking?
  236811. .IP \(bu 2
  236812. ccf366e1a5 Lint
  236813. .IP \(bu 2
  236814. 8aef6e8aa9 Fix comment
  236815. .IP \(bu 2
  236816. 48f9755103 Oops, forgot temp var.
  236817. .IP \(bu 2
  236818. f0360ca00e More cleanup, found another spot where proxy needed to be passed to a load_modules.
  236819. .IP \(bu 2
  236820. 81a4abfe5a __proxy__ is getting nuked somewhere
  236821. .IP \(bu 2
  236822. f9461ff298 Add config option so old\-style proxymodules will keep loading
  236823. .IP \(bu 2
  236824. 3d6ed5b7ff Remove debug statement.
  236825. .IP \(bu 2
  236826. b5a19a9740 Enable syncing proxymodules from the master. Proxymodules can go in /srv/salt/_proxy.
  236827. .IP \(bu 2
  236828. f878011543 Lint, and some parameter fixes to add proxy= to some overridden load_modules fns.
  236829. .IP \(bu 2
  236830. 22f035d8eb Remove debug statement
  236831. .IP \(bu 2
  236832. 4432499b45 More progress toward __proxy__
  236833. .IP \(bu 2
  236834. 1a229c17b2 Further work on __proxy__
  236835. .IP \(bu 2
  236836. 85fd6a41c7 One more check for presence of __proxy__
  236837. .IP \(bu 2
  236838. 15e1d3e3df Forgot absolute_import.
  236839. .IP \(bu 2
  236840. c5d9d54f19 Fix py3 lint
  236841. .IP \(bu 2
  236842. dd50c33543 This module was accidentally overwriting core grains during tests.
  236843. .IP \(bu 2
  236844. 525256fa68 Some calls to highstate won\(aqt have __proxy__ in scope
  236845. .IP \(bu 2
  236846. a615e5a876 what was I thinking?
  236847. .IP \(bu 2
  236848. fae3f3ca83 Lint
  236849. .IP \(bu 2
  236850. b049377cbe Remove rest_sample_test, it wasn\(aqt testing anything
  236851. .IP \(bu 2
  236852. 42188480d4 Fix comment
  236853. .IP \(bu 2
  236854. 4112c583e4 Oops, forgot temp var.
  236855. .IP \(bu 2
  236856. e9b281041c More cleanup, found another spot where proxy needed to be passed to a load_modules.
  236857. .IP \(bu 2
  236858. 64f967d731 __proxy__ is getting nuked somewhere
  236859. .IP \(bu 2
  236860. bdffb9f57b Add config option so old\-style proxymodules will keep loading
  236861. .IP \(bu 2
  236862. b79b6a39dd Remove debug statement.
  236863. .IP \(bu 2
  236864. 02fc2d9323 Enable syncing proxymodules from the master. Proxymodules can go in /srv/salt/_proxy.
  236865. .IP \(bu 2
  236866. 72032650b8 Add __proxy__ to the list of builtins.
  236867. .IP \(bu 2
  236868. db4c034596 Lint, and some parameter fixes to add proxy= to some overridden load_modules fns.
  236869. .IP \(bu 2
  236870. 1032ad28fc Remove debug statement
  236871. .IP \(bu 2
  236872. c41e49d8e5 Make sure that the __proxy__ gets passed all the way into the state system.
  236873. .IP \(bu 2
  236874. 4a20d48b35 More progress toward __proxy__
  236875. .IP \(bu 2
  236876. d337f4329e Further work on __proxy__
  236877. .UNINDENT
  236878. .IP \(bu 2
  236879. \fBISSUE\fP \fI\%#26904\fP: (\fI\%anlutro\fP) pip install \-\-upgrade with virtualenv.managed? (refs: \fI\%#27745\fP)
  236880. .IP \(bu 2
  236881. \fBPR\fP \fI\%#27745\fP: (\fI\%anlutro\fP) Add pip_upgrade arg to virtualenv.managed state
  236882. @ \fI2015\-10\-12 16:11:02 UTC\fP
  236883. .INDENT 2.0
  236884. .IP \(bu 2
  236885. 644f003fb2 Merge pull request \fI\%#27745\fP from alprs/fix\-virtualenv_pip_upgrade
  236886. .IP \(bu 2
  236887. 4bd219f8d4 add pip_upgrade arg to virtualenv.managed state, clean up docstring
  236888. .UNINDENT
  236889. .IP \(bu 2
  236890. \fBPR\fP \fI\%#27809\fP: (\fI\%ticosax\fP) [dockerng] Remove dockerng.ps caching
  236891. @ \fI2015\-10\-12 16:07:48 UTC\fP
  236892. .INDENT 2.0
  236893. .IP \(bu 2
  236894. 698f477336 Merge pull request \fI\%#27809\fP from ticosax/remove\-dockerng.ps\-caching
  236895. .IP \(bu 2
  236896. 0eb1145856 Remove caching to prevent returning stale data from dockerng.ps
  236897. .UNINDENT
  236898. .IP \(bu 2
  236899. \fBPR\fP \fI\%#27859\fP: (\fI\%ticosax\fP) [dockerng] Clarify doc port bindings
  236900. @ \fI2015\-10\-12 16:06:27 UTC\fP
  236901. .INDENT 2.0
  236902. .IP \(bu 2
  236903. e96d06d71a Merge pull request \fI\%#27859\fP from ticosax/clarify\-doc\-port\-bindings
  236904. .IP \(bu 2
  236905. 75f7a3ec55 Must be a string
  236906. .UNINDENT
  236907. .IP \(bu 2
  236908. \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)
  236909. .IP \(bu 2
  236910. \fBPR\fP \fI\%#27748\fP: (\fI\%multani\fP) Fix \fI\%#8646\fP
  236911. @ \fI2015\-10\-12 15:55:57 UTC\fP
  236912. .INDENT 2.0
  236913. .IP \(bu 2
  236914. ba2a39d4b7 Merge pull request \fI\%#27748\fP from multani/fix\-8646
  236915. .IP \(bu 2
  236916. 6d95cbc998 Fix lint errors
  236917. .IP \(bu 2
  236918. 4ff9f4be2a Fix file.directory with clean=true and require_in with states ID
  236919. .IP \(bu 2
  236920. 0d391275de Test cases to demonstrate bug \fI\%#8646\fP
  236921. .UNINDENT
  236922. .IP \(bu 2
  236923. \fBISSUE\fP \fI\%#27721\fP: (\fI\%ldobson\fP) boto_cloudwatch_alarm.present returns diff on no change (refs: \fI\%#27722\fP)
  236924. .IP \(bu 2
  236925. \fBPR\fP \fI\%#27850\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27722\fP to 2015.8
  236926. @ \fI2015\-10\-12 15:31:58 UTC\fP
  236927. .INDENT 2.0
  236928. .IP \(bu 2
  236929. \fBPR\fP \fI\%#27722\fP: (\fI\%ldobson\fP) Sorted compare for alarm actions (refs: \fI\%#27850\fP)
  236930. .IP \(bu 2
  236931. ce1493e06b Merge pull request \fI\%#27850\fP from rallytime/bp\-27722
  236932. .IP \(bu 2
  236933. 33936605a0 Sorted compare for alarm actions
  236934. .UNINDENT
  236935. .IP \(bu 2
  236936. \fBPR\fP \fI\%#27851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27771\fP to 2015.8
  236937. @ \fI2015\-10\-12 15:31:06 UTC\fP
  236938. .INDENT 2.0
  236939. .IP \(bu 2
  236940. \fBPR\fP \fI\%#27771\fP: (\fI\%srkunze\fP) [VIRTUALENV_MOD] added docs strings to explain parameters (refs: \fI\%#27851\fP)
  236941. .IP \(bu 2
  236942. c95437a710 Merge pull request \fI\%#27851\fP from rallytime/bp\-27771
  236943. .IP \(bu 2
  236944. 144a743503 added docs strings to explain parameters
  236945. .UNINDENT
  236946. .IP \(bu 2
  236947. \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)
  236948. .IP \(bu 2
  236949. \fBPR\fP \fI\%#27833\fP: (\fI\%jfindlay\fP) decode path before string ops in fileclient
  236950. @ \fI2015\-10\-12 15:26:39 UTC\fP
  236951. .INDENT 2.0
  236952. .IP \(bu 2
  236953. a41b59bf6e Merge pull request \fI\%#27833\fP from jfindlay/path_decode
  236954. .IP \(bu 2
  236955. 66c74e591e decode path before string ops in fileclient
  236956. .UNINDENT
  236957. .IP \(bu 2
  236958. \fBISSUE\fP \fI\%#27804\fP: (\fI\%chrismcmacken\fP) cmd.run/cmd.run_all documentation contradictory for python_shell argument (refs: \fI\%#27837\fP)
  236959. .IP \(bu 2
  236960. \fBPR\fP \fI\%#27837\fP: (\fI\%jfindlay\fP) reverse truth in python_shell documentation
  236961. @ \fI2015\-10\-12 15:25:13 UTC\fP
  236962. .INDENT 2.0
  236963. .IP \(bu 2
  236964. e264db7702 Merge pull request \fI\%#27837\fP from jfindlay/true_shell
  236965. .IP \(bu 2
  236966. 1c9708a457 reverse truth in python_shell documentation
  236967. .UNINDENT
  236968. .IP \(bu 2
  236969. \fBPR\fP \fI\%#27860\fP: (\fI\%flavio\fP) Fix OS related grains on openSUSE and SUSE Linux Enterprise
  236970. @ \fI2015\-10\-12 15:22:59 UTC\fP
  236971. .INDENT 2.0
  236972. .IP \(bu 2
  236973. faec838744 Merge pull request \fI\%#27860\fP from flavio/fix\-os\-grains\-on\-suse\-and\-opensuse
  236974. .IP \(bu 2
  236975. fc8d296d72 Fix OS related grains on openSUSE and SUSE Linux Enterprise
  236976. .UNINDENT
  236977. .IP \(bu 2
  236978. \fBPR\fP \fI\%#27768\fP: (\fI\%rallytime\fP) Clean up bootstrap function to be slightly cleaner
  236979. @ \fI2015\-10\-12 15:06:54 UTC\fP
  236980. .INDENT 2.0
  236981. .IP \(bu 2
  236982. 4ac5344c31 Merge pull request \fI\%#27768\fP from rallytime/cleanup_bootstrap
  236983. .IP \(bu 2
  236984. 9df6e106c3 Clean up bootstrap function to be slightly cleaner
  236985. .UNINDENT
  236986. .IP \(bu 2
  236987. \fBPR\fP \fI\%#27797\fP: (\fI\%isbm\fP) Zypper module clusterfix
  236988. @ \fI2015\-10\-12 15:06:02 UTC\fP
  236989. .INDENT 2.0
  236990. .IP \(bu 2
  236991. e1bd91e392 Merge pull request \fI\%#27797\fP from isbm/isbm\-zypper\-fixes
  236992. .IP \(bu 2
  236993. 36281f6b06 Bugfix: crash if no package specified on adding a lock
  236994. .IP \(bu 2
  236995. 29806a1af9 Bugfix: crash if no package specified on removing lock
  236996. .IP \(bu 2
  236997. 453a18ea15 Return an actual amount of removed locks.
  236998. .IP \(bu 2
  236999. eaa6af9898 Bugfix: sometimes error goes to the STDOUT instead of STDERR in the RPM
  237000. .IP \(bu 2
  237001. 350340dafa Bugfix: use boolean type instead of string "Yes" or "No" (NOTE: this was forgotten)
  237002. .IP \(bu 2
  237003. decb989eb4 Bugfix and refactor due to the crash on unknown package and incorrect return value
  237004. .IP \(bu 2
  237005. a6c285bd12 Initialization fix
  237006. .IP \(bu 2
  237007. 510dedd29f Bugfix: newer Zypper includes also a version of installed package
  237008. .IP \(bu 2
  237009. f9bef516de Bugfix: broken "upgrade_available" and should always return dict.
  237010. .UNINDENT
  237011. .IP \(bu 2
  237012. \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)
  237013. .IP \(bu 2
  237014. \fBPR\fP \fI\%#27849\fP: (\fI\%rallytime\fP) Don\(aqt require a size parameter for proxmox profiles
  237015. @ \fI2015\-10\-11 01:33:28 UTC\fP
  237016. .INDENT 2.0
  237017. .IP \(bu 2
  237018. 286b08a0f5 Merge pull request \fI\%#27849\fP from rallytime/fix\-27821
  237019. .IP \(bu 2
  237020. 1bf17c7d48 Don\(aqt require a size parameter for proxmox profiles
  237021. .UNINDENT
  237022. .IP \(bu 2
  237023. \fBPR\fP \fI\%#27827\fP: (\fI\%techhat\fP) Add additional error checking to SPM
  237024. @ \fI2015\-10\-09 18:23:09 UTC\fP
  237025. .INDENT 2.0
  237026. .IP \(bu 2
  237027. 4a69db27cd Merge pull request \fI\%#27827\fP from techhat/spmfixes
  237028. .IP \(bu 2
  237029. ffc8df223b Add additional error checking to SPM
  237030. .UNINDENT
  237031. .IP \(bu 2
  237032. \fBISSUE\fP \fI\%#27825\fP: (\fI\%martinhoefling\fP) Salt\-api is not adding cors headers if auth fails (refs: \fI\%#27826\fP)
  237033. .IP \(bu 2
  237034. \fBPR\fP \fI\%#27826\fP: (\fI\%martinhoefling\fP) Fixes \fI\%#27825\fP
  237035. @ \fI2015\-10\-09 16:08:05 UTC\fP
  237036. .INDENT 2.0
  237037. .IP \(bu 2
  237038. 9bc19ba7d2 Merge pull request \fI\%#27826\fP from martinhoefling/fix\-27825
  237039. .IP \(bu 2
  237040. 401e7de33d Fixes \fI\%#27825\fP
  237041. .UNINDENT
  237042. .IP \(bu 2
  237043. \fBPR\fP \fI\%#27824\fP: (\fI\%techhat\fP) Update Azure errors
  237044. @ \fI2015\-10\-09 15:25:14 UTC\fP
  237045. .INDENT 2.0
  237046. .IP \(bu 2
  237047. 1e2dede122 Merge pull request \fI\%#27824\fP from techhat/azureerrors
  237048. .IP \(bu 2
  237049. 5b23ac7099 Update Azure errors
  237050. .UNINDENT
  237051. .IP \(bu 2
  237052. \fBPR\fP \fI\%#27795\fP: (\fI\%eguven\fP) better change reporting for postgres_user groups
  237053. @ \fI2015\-10\-08 23:56:53 UTC\fP
  237054. .INDENT 2.0
  237055. .IP \(bu 2
  237056. ec35666ff2 Merge pull request \fI\%#27795\fP from eguven/2015.8\-postgres_user\-group\-change
  237057. .IP \(bu 2
  237058. ffffede412 better change reporting for postgres_user groups
  237059. .UNINDENT
  237060. .IP \(bu 2
  237061. \fBISSUE\fP \fI\%#27703\fP: (\fI\%ryan\-lane\fP) git.latest seems to ignore the user argument in 2015.8 (refs: \fI\%#27799\fP)
  237062. .IP \(bu 2
  237063. \fBPR\fP \fI\%#27799\fP: (\fI\%terminalmage\fP) Fix usage of identity file in git.latest
  237064. @ \fI2015\-10\-08 23:36:19 UTC\fP
  237065. .INDENT 2.0
  237066. .IP \(bu 2
  237067. 5420006209 Merge pull request \fI\%#27799\fP from terminalmage/issue27703
  237068. .IP \(bu 2
  237069. 75d2b07b0c Pass user in calls to git.rev_parse
  237070. .IP \(bu 2
  237071. 786786a245 Fix wrong argument name for _git_run()
  237072. .UNINDENT
  237073. .IP \(bu 2
  237074. \fBPR\fP \fI\%#27717\fP: (\fI\%pass\-by\-value\fP) Proxy beacon example
  237075. @ \fI2015\-10\-08 22:58:49 UTC\fP
  237076. .INDENT 2.0
  237077. .IP \(bu 2
  237078. 0533a2b1dd Merge pull request \fI\%#27717\fP from pass\-by\-value/proxy_beacon_example
  237079. .IP \(bu 2
  237080. cac3da1ffa Fix pylint error
  237081. .IP \(bu 2
  237082. 7fef5ea08c Make a call to beacon end point
  237083. .IP \(bu 2
  237084. 497f965c33 Comment
  237085. .IP \(bu 2
  237086. 8ad7082913 Add example beacon that works with salt\-proxy
  237087. .UNINDENT
  237088. .IP \(bu 2
  237089. \fBPR\fP \fI\%#27793\fP: (\fI\%anlutro\fP) update code that changes log level of salt\-ssh shim command
  237090. @ \fI2015\-10\-08 19:20:12 UTC\fP
  237091. .INDENT 2.0
  237092. .IP \(bu 2
  237093. dd9dba8f59 Merge pull request \fI\%#27793\fP from alprs/fix\-salt_ssh_b64_log
  237094. .IP \(bu 2
  237095. 2597d13fc8 update code that changes log level of salt\-ssh shim command
  237096. .UNINDENT
  237097. .IP \(bu 2
  237098. \fBISSUE\fP \fI\%#27714\fP: (\fI\%The\-Loeki\fP) 2015.8 git_pillar merge inconsistency/bug (refs: \fI\%#27761\fP)
  237099. .IP \(bu 2
  237100. \fBPR\fP \fI\%#27761\fP: (\fI\%terminalmage\fP) Merge git pillar data instead of using dict.update()
  237101. @ \fI2015\-10\-08 15:00:18 UTC\fP
  237102. .INDENT 2.0
  237103. .IP \(bu 2
  237104. bccb74ffc5 Merge pull request \fI\%#27761\fP from terminalmage/issue27714
  237105. .IP \(bu 2
  237106. d149095bb0 Merge git pillar data instead of using dict.update()
  237107. .UNINDENT
  237108. .IP \(bu 2
  237109. \fBPR\fP \fI\%#27741\fP: (\fI\%ticosax\fP) [dockerng] pass filters argument to dockerng.ps
  237110. @ \fI2015\-10\-08 03:40:14 UTC\fP
  237111. .INDENT 2.0
  237112. .IP \(bu 2
  237113. 2ae7ada3c9 Merge pull request \fI\%#27741\fP from ticosax/docker.containers\-filters
  237114. .IP \(bu 2
  237115. 821ed72f37 pass filters argument to dockerng.ps
  237116. .UNINDENT
  237117. .IP \(bu 2
  237118. \fBPR\fP \fI\%#27760\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237119. @ \fI2015\-10\-07 19:11:17 UTC\fP
  237120. .INDENT 2.0
  237121. .IP \(bu 2
  237122. 82a51cebde Merge pull request \fI\%#27760\fP from basepi/merge\-forward\-2015.8
  237123. .IP \(bu 2
  237124. 35425b14ad Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237125. .IP \(bu 2
  237126. b2937b6a16 Merge pull request \fI\%#27759\fP from basepi/merge\-forward\-2015.5
  237127. .INDENT 2.0
  237128. .IP \(bu 2
  237129. 792ee084bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  237130. .IP \(bu 2
  237131. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  237132. .IP \(bu 2
  237133. 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.
  237134. .UNINDENT
  237135. .IP \(bu 2
  237136. 4b9128b491 Merge pull request \fI\%#27732\fP from jacobhammons/26673
  237137. .INDENT 2.0
  237138. .IP \(bu 2
  237139. 75cc07cf10 noted that __virtual__ can return False and an error string
  237140. .IP \(bu 2
  237141. b928e1afa8 update docs for __virtual__ and __virtualname__ Refs \fI\%#26673\fP
  237142. .UNINDENT
  237143. .IP \(bu 2
  237144. a130896d1c Merge pull request \fI\%#27747\fP from Sacro/fix\-chocolatey\-version
  237145. .INDENT 2.0
  237146. .IP \(bu 2
  237147. 8f1fa9e78e Chocolatey doesn\(aqt have a help command.
  237148. .UNINDENT
  237149. .IP \(bu 2
  237150. 4e48651de0 Merge pull request \fI\%#27733\fP from jacobhammons/bug\-fixes
  237151. .INDENT 2.0
  237152. .IP \(bu 2
  237153. cbecd4f553 Updated saltstack2 theme to add SaltConf16 banner
  237154. .IP \(bu 2
  237155. 117e0c2bcc Added hardening topic based on the information in Refs \fI\%#27088\fP
  237156. .UNINDENT
  237157. .IP \(bu 2
  237158. c58da846bf Merge pull request \fI\%#27706\fP from jacobhammons/bug\-fixes
  237159. .INDENT 2.0
  237160. .IP \(bu 2
  237161. 76dc8de71b Assorted doc bugs Refs \fI\%#9051\fP Refs \fI\%#13407\fP Refs \fI\%#21475\fP Refs \fI\%#14876\fP Refs \fI\%#27005\fP
  237162. .UNINDENT
  237163. .IP \(bu 2
  237164. 43fba89865 Merge pull request \fI\%#27695\fP from rallytime/bp\-27671
  237165. .INDENT 2.0
  237166. .IP \(bu 2
  237167. 2a88028595 Added skip test_ext_pillar_env_mapping if git module does not exist.
  237168. .UNINDENT
  237169. .IP \(bu 2
  237170. cb3d92676e Merge pull request \fI\%#27524\fP from jfindlay/pkgng_quiet
  237171. .INDENT 2.0
  237172. .IP \(bu 2
  237173. 5e9107b970 parse pkgng output in quiet mode for >= 1.6.0
  237174. .UNINDENT
  237175. .IP \(bu 2
  237176. 5b88c55cc3 Merge pull request \fI\%#27686\fP from rallytime/bp\-27476
  237177. .INDENT 2.0
  237178. .IP \(bu 2
  237179. 3e08d3de8a fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP
  237180. .UNINDENT
  237181. .IP \(bu 2
  237182. f9ddd4647f Merge pull request \fI\%#27684\fP from rallytime/bp\-27656
  237183. .INDENT 2.0
  237184. .IP \(bu 2
  237185. d3780cba00 Fix \fI\%#27655\fP: handling of success in postgres_local_cache
  237186. .UNINDENT
  237187. .IP \(bu 2
  237188. 7ca6f854ff Merge pull request \fI\%#27683\fP from rallytime/bp\-27659
  237189. .INDENT 2.0
  237190. .IP \(bu 2
  237191. 84b6ee0c58 .pub as public key is what we should send to remote
  237192. .UNINDENT
  237193. .IP \(bu 2
  237194. a0f3e34656 Merge pull request \fI\%#27682\fP from rallytime/bp\-27566
  237195. .INDENT 2.0
  237196. .IP \(bu 2
  237197. 2a44255748 minor: fix/format doc for returners.local_cache.prep_jid
  237198. .IP \(bu 2
  237199. fd485e2396 returners.local_cache: fix endless loop on OSError
  237200. .UNINDENT
  237201. .IP \(bu 2
  237202. 0b9ba911c4 Merge pull request \fI\%#27681\fP from rallytime/bp\-25928
  237203. .INDENT 2.0
  237204. .IP \(bu 2
  237205. 17e1ddf137 Fix stacktrace for non\-existant states
  237206. .UNINDENT
  237207. .IP \(bu 2
  237208. 23da0d316a Merge pull request \fI\%#27680\fP from rallytime/bp\-27535
  237209. .INDENT 2.0
  237210. .IP \(bu 2
  237211. 04aed5e105 Versionadded change since 2015.5.6 has already been tagged
  237212. .IP \(bu 2
  237213. 579f2646ba .. versionadded:: 2015.5.6
  237214. .IP \(bu 2
  237215. cbaf46e066 python <2.7 compability (pylint issue)
  237216. .IP \(bu 2
  237217. ecde499478 s/bin/b to avoid confusion with bin()
  237218. .IP \(bu 2
  237219. 4237c5db80 add a __virtual__ to check that daemontools is installed properly
  237220. .IP \(bu 2
  237221. 623935a1bc fix doc
  237222. .IP \(bu 2
  237223. 573de3abd6 fix pylint issue
  237224. .IP \(bu 2
  237225. 5eb6a30d40 fix pep8 issues
  237226. .IP \(bu 2
  237227. 298cf4f5c0 import missing logging module
  237228. .IP \(bu 2
  237229. fe0ad36609 log was missing
  237230. .IP \(bu 2
  237231. e457083465 s/systemd/FreeBSD
  237232. .IP \(bu 2
  237233. 3512712e89 forgot service name..
  237234. .IP \(bu 2
  237235. 8f193a7bcc fixes \fI\%#27505\fP
  237236. .UNINDENT
  237237. .IP \(bu 2
  237238. 7d7b97eab6 Merge pull request \fI\%#27442\fP from JaseFace/fix\-27391\-for\-2015.5
  237239. .INDENT 2.0
  237240. .IP \(bu 2
  237241. 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.
  237242. .UNINDENT
  237243. .IP \(bu 2
  237244. ccbba8656b Merge pull request \fI\%#27641\fP from rallytime/gate\-psutil\-diskusage
  237245. .INDENT 2.0
  237246. .IP \(bu 2
  237247. da2d93a3dd Gate the psutil import and add depends doc for diskusage beacon
  237248. .UNINDENT
  237249. .IP \(bu 2
  237250. 09183994f9 Merge pull request \fI\%#27644\fP from rallytime/bp\-27640
  237251. .INDENT 2.0
  237252. .IP \(bu 2
  237253. a9063a9745 fix typo in default pillar path
  237254. .UNINDENT
  237255. .IP \(bu 2
  237256. 27fcecccbe Merge pull request \fI\%#27612\fP from rallytime/fix\-27609
  237257. .INDENT 2.0
  237258. .IP \(bu 2
  237259. 8dc047dc18 If external_up is set to None, don\(aqt stacktrace, just use the private ip.
  237260. .IP \(bu 2
  237261. 2ebf790f9f [salt\-cloud] gce: don\(aqt stacktrace if Ephemeral is given instead of ephemeral
  237262. .UNINDENT
  237263. .IP \(bu 2
  237264. c84a1edc1b Merge pull request \fI\%#27568\fP from jacobhammons/man\-pages\-five
  237265. .INDENT 2.0
  237266. .IP \(bu 2
  237267. b59c03d20d regenerated man pages
  237268. .UNINDENT
  237269. .IP \(bu 2
  237270. 304dc68f7f Merge pull request \fI\%#27582\fP from jfindlay/2015.5
  237271. .INDENT 2.0
  237272. .IP \(bu 2
  237273. 4f0d55cda6 add 2015.5.6 release notes
  237274. .UNINDENT
  237275. .IP \(bu 2
  237276. 7201ce71e4 Merge pull request \fI\%#27557\fP from jfindlay/mine_doc
  237277. .INDENT 2.0
  237278. .IP \(bu 2
  237279. 3727d79bad edit mine doc for style and markup
  237280. .IP \(bu 2
  237281. 7e037a4666 add doc motivating mine vs grains
  237282. .UNINDENT
  237283. .IP \(bu 2
  237284. 59c3d5f93e Merge pull request \fI\%#27515\fP from jfindlay/suse_fire
  237285. .INDENT 2.0
  237286. .IP \(bu 2
  237287. 4460ad2785 save iptables rules on SuSE
  237288. .UNINDENT
  237289. .IP \(bu 2
  237290. 9b26357b19 Merge pull request \fI\%#27509\fP from jfindlay/gluster_reason
  237291. .INDENT 2.0
  237292. .IP \(bu 2
  237293. 1ccda538d2 tell the user why the gluster module does not work
  237294. .UNINDENT
  237295. .IP \(bu 2
  237296. 989733ea86 Merge pull request \fI\%#27379\fP from jfindlay/pip_vars
  237297. .IP \(bu 2
  237298. aee51ffdef document and check dict type for pip env_vars
  237299. .UNINDENT
  237300. .IP \(bu 2
  237301. \fBISSUE\fP \fI\%#27643\fP: (\fI\%blueyed\fP) Please document extended return values of __virtual__ (refs: \fI\%#27724\fP)
  237302. .IP \(bu 2
  237303. \fBISSUE\fP \fI\%#26755\fP: (\fI\%lorengordon\fP) Associate package dependencies to modules/states? (refs: \fI\%#27724\fP)
  237304. .IP \(bu 2
  237305. \fBPR\fP \fI\%#27757\fP: (\fI\%jfindlay\fP) fix virtual fcn return doc indentation
  237306. @ \fI2015\-10\-07 17:50:18 UTC\fP
  237307. .INDENT 2.0
  237308. .IP \(bu 2
  237309. \fBPR\fP \fI\%#27724\fP: (\fI\%jfindlay\fP) update __virtual__ return documentation (refs: \fI\%#27757\fP)
  237310. .IP \(bu 2
  237311. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous (refs: \fI\%#27724\fP)
  237312. .IP \(bu 2
  237313. aced4229cb Merge pull request \fI\%#27757\fP from jfindlay/virtret
  237314. .IP \(bu 2
  237315. 03400ef45b fix virtual fcn return doc indentation
  237316. .UNINDENT
  237317. .IP \(bu 2
  237318. \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)
  237319. .IP \(bu 2
  237320. \fBPR\fP \fI\%#27754\fP: (\fI\%rallytime\fP) Change test.nop version directive to 2015.8.1
  237321. @ \fI2015\-10\-07 15:59:55 UTC\fP
  237322. .INDENT 2.0
  237323. .IP \(bu 2
  237324. 57b5b594bd Merge pull request \fI\%#27754\fP from rallytime/fix\-27636
  237325. .IP \(bu 2
  237326. 31b9852d9a Change test.nop version directive to 2015.8.1
  237327. .UNINDENT
  237328. .IP \(bu 2
  237329. \fBPR\fP \fI\%#27734\fP: (\fI\%jacobhammons\fP) Updated saltstack2 theme to add SaltConf16 banner
  237330. @ \fI2015\-10\-07 01:43:53 UTC\fP
  237331. .INDENT 2.0
  237332. .IP \(bu 2
  237333. 9a0171089d Merge pull request \fI\%#27734\fP from jacobhammons/theme\-updates
  237334. .IP \(bu 2
  237335. 3a52d3606b Updated saltstack2 theme to add SaltConf16 banner
  237336. .UNINDENT
  237337. .IP \(bu 2
  237338. \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)
  237339. .IP \(bu 2
  237340. \fBPR\fP \fI\%#27727\fP: (\fI\%rallytime\fP) Merge \fI\%#27719\fP w/pylint fix
  237341. @ \fI2015\-10\-06 21:13:37 UTC\fP
  237342. .INDENT 2.0
  237343. .IP \(bu 2
  237344. \fBPR\fP \fI\%#27719\fP: (\fI\%jfindlay\fP) tell user when x509 exec/state module can\(aqt load (refs: \fI\%#27727\fP)
  237345. .IP \(bu 2
  237346. d3f2dfe835 Merge pull request \fI\%#27727\fP from rallytime/merge\-27719
  237347. .IP \(bu 2
  237348. a7fd156162 Pylint
  237349. .IP \(bu 2
  237350. 6bf2ee2751 tell user when x509 exec/state module can\(aqt load
  237351. .UNINDENT
  237352. .IP \(bu 2
  237353. \fBISSUE\fP \fI\%#27643\fP: (\fI\%blueyed\fP) Please document extended return values of __virtual__ (refs: \fI\%#27724\fP)
  237354. .IP \(bu 2
  237355. \fBISSUE\fP \fI\%#26755\fP: (\fI\%lorengordon\fP) Associate package dependencies to modules/states? (refs: \fI\%#27724\fP)
  237356. .IP \(bu 2
  237357. \fBPR\fP \fI\%#27724\fP: (\fI\%jfindlay\fP) update __virtual__ return documentation (refs: \fI\%#27757\fP)
  237358. @ \fI2015\-10\-06 21:06:47 UTC\fP
  237359. .INDENT 2.0
  237360. .IP \(bu 2
  237361. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous (refs: \fI\%#27724\fP)
  237362. .IP \(bu 2
  237363. f26bcd2d21 Merge pull request \fI\%#27724\fP from jfindlay/virtret
  237364. .IP \(bu 2
  237365. 6bddf80546 update __virtual__ return documentation
  237366. .UNINDENT
  237367. .IP \(bu 2
  237368. \fBISSUE\fP \fI\%#27481\fP: (\fI\%basepi\fP) Fix issues with cross\-calling states (refs: \fI\%#27725\fP)
  237369. .IP \(bu 2
  237370. \fBPR\fP \fI\%#27725\fP: (\fI\%basepi\fP) Fix global injection for state cross calls
  237371. @ \fI2015\-10\-06 21:02:15 UTC\fP
  237372. .INDENT 2.0
  237373. .IP \(bu 2
  237374. d67e8c5c2c Merge pull request \fI\%#27725\fP from basepi/states.cross.call.27481
  237375. .IP \(bu 2
  237376. e12269d871 Remove unused import
  237377. .IP \(bu 2
  237378. 4e6505b2e7 Return the wrapper (whoops)
  237379. .IP \(bu 2
  237380. fadb954676 Use new method for injecting globals into state functions
  237381. .IP \(bu 2
  237382. 17b267470a Add decorator for injecting globals into functions in the loader
  237383. .UNINDENT
  237384. .IP \(bu 2
  237385. \fBPR\fP \fI\%#27628\fP: (\fI\%ticosax\fP) [dockerng] Add support of \fIlabels\fP parameter for dockerng
  237386. @ \fI2015\-10\-06 13:58:40 UTC\fP
  237387. .INDENT 2.0
  237388. .IP \(bu 2
  237389. 06e67d25f8 Merge pull request \fI\%#27628\fP from ticosax/dockerng\-container\-label
  237390. .IP \(bu 2
  237391. edf625c8b4 Add support of \fIlabels\fP parameter for dockerng
  237392. .UNINDENT
  237393. .IP \(bu 2
  237394. \fBISSUE\fP \fI\%#26604\fP: (\fI\%ari\fP) Poor compound matcher documentation (2015.8 docs) (refs: \fI\%#27704\fP)
  237395. .IP \(bu 2
  237396. \fBPR\fP \fI\%#27704\fP: (\fI\%jacobhammons\fP) Update compound matcher docs to clarify the usage of alternate delimi…
  237397. @ \fI2015\-10\-06 05:36:55 UTC\fP
  237398. .INDENT 2.0
  237399. .IP \(bu 2
  237400. e47d849af6 Merge pull request \fI\%#27704\fP from jacobhammons/26604
  237401. .IP \(bu 2
  237402. 1c51ce28a9 Update compound matcher docs to clarify the usage of alternate delimiters Refs \fI\%#26604\fP
  237403. .UNINDENT
  237404. .IP \(bu 2
  237405. \fBPR\fP \fI\%#27705\fP: (\fI\%rallytime\fP) Merge \fI\%#27602\fP with final pylint fix
  237406. @ \fI2015\-10\-05 23:36:50 UTC\fP
  237407. .INDENT 2.0
  237408. .IP \(bu 2
  237409. \fBPR\fP \fI\%#27602\fP: (\fI\%blueyed\fP) dockerng: fix/enhance version warning in __virtual__ (refs: \fI\%#27705\fP)
  237410. .IP \(bu 2
  237411. 2491ce40f1 Merge pull request \fI\%#27705\fP from rallytime/merge\-27602
  237412. .IP \(bu 2
  237413. 81aad83386 Ignore import error
  237414. .IP \(bu 2
  237415. 561dc4cf94 dockerng: fix/enhance version warning in __virtual__
  237416. .UNINDENT
  237417. .IP \(bu 2
  237418. \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)
  237419. .IP \(bu 2
  237420. \fBPR\fP \fI\%#27691\fP: (\fI\%notpeter\fP) Faster timeout (3s vs 2min) for instance metadata lookups. \fI\%#13850\fP\&.
  237421. @ \fI2015\-10\-05 22:55:52 UTC\fP
  237422. .INDENT 2.0
  237423. .IP \(bu 2
  237424. b76eb08c68 Merge pull request \fI\%#27691\fP from notpeter/iam_fail_faster
  237425. .IP \(bu 2
  237426. 3d9483b4e2 Faster timeout (3s vs 2min) for instance metadata lookups. \fI\%#13850\fP\&.
  237427. .UNINDENT
  237428. .IP \(bu 2
  237429. \fBPR\fP \fI\%#27696\fP: (\fI\%blueyed\fP) loader.proxy: call \fI_modules_dirs\fP only once
  237430. @ \fI2015\-10\-05 22:42:32 UTC\fP
  237431. .INDENT 2.0
  237432. .IP \(bu 2
  237433. fc78f49dc5 Merge pull request \fI\%#27696\fP from blueyed/load\-proxy\-call\-_module_dirs\-only\-once
  237434. .IP \(bu 2
  237435. 55a76be6c1 loader.proxy: call \fI_modules_dirs\fP only once
  237436. .UNINDENT
  237437. .IP \(bu 2
  237438. \fBPR\fP \fI\%#27630\fP: (\fI\%ticosax\fP) Expose container_id in mine.get_docker
  237439. @ \fI2015\-10\-05 21:56:53 UTC\fP
  237440. .INDENT 2.0
  237441. .IP \(bu 2
  237442. 77516912fa Merge pull request \fI\%#27630\fP from ticosax/include\-container\-id\-docker\-mine
  237443. .IP \(bu 2
  237444. 7293ded2f6 fixup! Expose container_id in mine.get_docker
  237445. .IP \(bu 2
  237446. 9e56a7e9db Expose container_id in mine.get_docker
  237447. .UNINDENT
  237448. .IP \(bu 2
  237449. \fBPR\fP \fI\%#27600\fP: (\fI\%blueyed\fP) dockerng: use docker.version=auto by default
  237450. @ \fI2015\-10\-05 21:29:14 UTC\fP
  237451. .INDENT 2.0
  237452. .IP \(bu 2
  237453. 8453cb3eb1 Merge pull request \fI\%#27600\fP from blueyed/dockerng\-auto\-version
  237454. .IP \(bu 2
  237455. 53c6e3b3de dockerng: use docker.version=auto by default
  237456. .UNINDENT
  237457. .IP \(bu 2
  237458. \fBPR\fP \fI\%#27689\fP: (\fI\%rallytime\fP) Merge \fI\%#27448\fP with test fixes
  237459. @ \fI2015\-10\-05 21:17:41 UTC\fP
  237460. .INDENT 2.0
  237461. .IP \(bu 2
  237462. \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)
  237463. .IP \(bu 2
  237464. 7a4291008e Merge pull request \fI\%#27689\fP from rallytime/fix\-tests\-27448
  237465. .IP \(bu 2
  237466. 05a506ec9f Use correct comment in test
  237467. .IP \(bu 2
  237468. 8296fefb31 Merge \fI\%#27448\fP with test fixes
  237469. .IP \(bu 2
  237470. 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.
  237471. .UNINDENT
  237472. .IP \(bu 2
  237473. \fBISSUE\fP \fI\%#27520\fP: (\fI\%rmarcinik\fP) winrepo is unavailable in 2015.8 (refs: \fI\%#27616\fP, \fI\%#27693\fP)
  237474. .IP \(bu 2
  237475. \fBISSUE\fP \fI\%#23239\fP: (\fI\%cachedout\fP) [RFC] Deprecate ext_processses (refs: \fI\%#27693\fP)
  237476. .IP \(bu 2
  237477. \fBPR\fP \fI\%#27693\fP: (\fI\%jacobhammons\fP) initial engines topic, updates to windows repo docs
  237478. @ \fI2015\-10\-05 21:05:26 UTC\fP
  237479. .INDENT 2.0
  237480. .IP \(bu 2
  237481. 4ddc87157a Merge pull request \fI\%#27693\fP from jacobhammons/doc\-updates
  237482. .IP \(bu 2
  237483. 5a3e72fc8e __ops__ to __opts__
  237484. .IP \(bu 2
  237485. 5a9867aad1 initial engines topic, updates to windows repo docs Refs \fI\%#23239\fP Refs \fI\%#27520\fP
  237486. .UNINDENT
  237487. .IP \(bu 2
  237488. \fBPR\fP \fI\%#27601\fP: (\fI\%blueyed\fP) dockerng: handle None in container.Names
  237489. @ \fI2015\-10\-05 20:32:19 UTC\fP
  237490. .INDENT 2.0
  237491. .IP \(bu 2
  237492. f7f48d1eef Merge pull request \fI\%#27601\fP from blueyed/dockerng\-none\-names
  237493. .IP \(bu 2
  237494. b1442ac904 dockerng: handle None in container.Names
  237495. .UNINDENT
  237496. .IP \(bu 2
  237497. \fBPR\fP \fI\%#27596\fP: (\fI\%blueyed\fP) gitfs: fix UnboundLocalError for \(aqmsg\(aq
  237498. @ \fI2015\-10\-05 20:18:00 UTC\fP
  237499. .INDENT 2.0
  237500. .IP \(bu 2
  237501. 3ffb5a3369 Merge pull request \fI\%#27596\fP from blueyed/fix\-gitfs\-UnboundLocalError
  237502. .IP \(bu 2
  237503. e70cbda490 gitfs: fix UnboundLocalError for \(aqmsg\(aq
  237504. .UNINDENT
  237505. .IP \(bu 2
  237506. \fBPR\fP \fI\%#27651\fP: (\fI\%eliasp\fP) Check for existence of \(aqsubnetId\(aq key in subnet dict
  237507. @ \fI2015\-10\-05 17:01:34 UTC\fP
  237508. .INDENT 2.0
  237509. .IP \(bu 2
  237510. 4d7be3f972 Merge pull request \fI\%#27651\fP from eliasp/2015.8\-cloud.clouds.ec2\-check\-for\-subnetId\-before\-using\-it
  237511. .IP \(bu 2
  237512. f21a763809 Check for existence of \(aqsubnetId\(aq key in subnet dict
  237513. .UNINDENT
  237514. .IP \(bu 2
  237515. \fBISSUE\fP \fI\%#23370\fP: (\fI\%lisa2lisa\fP) salt artifactory.downloaded module ignore classifier (refs: \fI\%#27639\fP)
  237516. .IP \(bu 2
  237517. \fBPR\fP \fI\%#27639\fP: (\fI\%rallytime\fP) Docement version added for new artifactory options
  237518. @ \fI2015\-10\-05 17:01:21 UTC\fP
  237519. .INDENT 2.0
  237520. .IP \(bu 2
  237521. d9266505a7 Merge pull request \fI\%#27639\fP from rallytime/fix\-23370
  237522. .IP \(bu 2
  237523. 6de99bd5b7 Docement version added for new artifactory options
  237524. .UNINDENT
  237525. .IP \(bu 2
  237526. \fBPR\fP \fI\%#27677\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27675\fP to 2015.8
  237527. @ \fI2015\-10\-05 15:47:34 UTC\fP
  237528. .INDENT 2.0
  237529. .IP \(bu 2
  237530. \fBPR\fP \fI\%#27675\fP: (\fI\%avinassh\fP) Fix a typo (refs: \fI\%#27677\fP)
  237531. .IP \(bu 2
  237532. 771e5136f1 Merge pull request \fI\%#27677\fP from rallytime/bp\-27675
  237533. .IP \(bu 2
  237534. bfa0acfbfe Fix a typo
  237535. .UNINDENT
  237536. .IP \(bu 2
  237537. \fBPR\fP \fI\%#27637\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27604\fP to 2015.8
  237538. @ \fI2015\-10\-05 14:54:59 UTC\fP
  237539. .INDENT 2.0
  237540. .IP \(bu 2
  237541. \fBPR\fP \fI\%#27604\fP: (\fI\%plastikos\fP) Fix module path to SaltCacheError (refs: \fI\%#27637\fP)
  237542. .IP \(bu 2
  237543. 6bc5ddc561 Merge pull request \fI\%#27637\fP from rallytime/bp\-27604
  237544. .IP \(bu 2
  237545. 3d2ee4297d Fix module path to SaltCacheError
  237546. .UNINDENT
  237547. .IP \(bu 2
  237548. \fBISSUE\fP \fI\%#19291\fP: (\fI\%gfa\fP) pkg module could accept version: latest (refs: \fI\%#27657\fP)
  237549. .IP \(bu 2
  237550. \fBPR\fP \fI\%#27657\fP: (\fI\%garethgreenaway\fP) Fix to pkg state module
  237551. @ \fI2015\-10\-03 23:56:02 UTC\fP
  237552. .INDENT 2.0
  237553. .IP \(bu 2
  237554. 905acc6229 Merge pull request \fI\%#27657\fP from garethgreenaway/19291_pkg_state_latest_fix
  237555. .IP \(bu 2
  237556. 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.
  237557. .UNINDENT
  237558. .IP \(bu 2
  237559. \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)
  237560. .IP \(bu 2
  237561. \fBPR\fP \fI\%#27632\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27539\fP to 2015.8
  237562. @ \fI2015\-10\-02 19:28:39 UTC\fP
  237563. .INDENT 2.0
  237564. .IP \(bu 2
  237565. \fBPR\fP \fI\%#27539\fP: (\fI\%lomeroe\fP) boto_iam updates to function calls that were not passing arguments properly (refs: \fI\%#27632\fP)
  237566. .IP \(bu 2
  237567. 83ae6a1432 Merge pull request \fI\%#27632\fP from rallytime/bp\-27539
  237568. .IP \(bu 2
  237569. 2b0afd0230 Add versionadded to new path option
  237570. .IP \(bu 2
  237571. e54afed73a moving path kwarg to end of function definition
  237572. .UNINDENT
  237573. .IP \(bu 2
  237574. \fBISSUE\fP \fI\%#27545\fP: (\fI\%lomeroe\fP) boto_asg allow removing launch configuration with \(aqabsent\(aq state (refs: \fI\%#27546\fP)
  237575. .IP \(bu 2
  237576. \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)
  237577. .IP \(bu 2
  237578. \fBPR\fP \fI\%#27633\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27559\fP to 2015.8
  237579. @ \fI2015\-10\-02 19:22:07 UTC\fP
  237580. .INDENT 2.0
  237581. .IP \(bu 2
  237582. \fBPR\fP \fI\%#27559\fP: (\fI\%lomeroe\fP) vpc_id fix for boto_vpc.get_subnet_association (refs: \fI\%#27633\fP)
  237583. .IP \(bu 2
  237584. \fBPR\fP \fI\%#27546\fP: (\fI\%lomeroe\fP) boto_asg state updates (refs: \fI\%#27559\fP)
  237585. .IP \(bu 2
  237586. 888e9bdf5d Merge pull request \fI\%#27633\fP from rallytime/bp\-27559
  237587. .IP \(bu 2
  237588. 3f03815ada rebasing
  237589. .UNINDENT
  237590. .IP \(bu 2
  237591. \fBISSUE\fP \fI\%#27463\fP: (\fI\%ryan\-lane\fP) boto_route53 module should default to region universal, rather then None (refs: \fI\%#27579\fP)
  237592. .IP \(bu 2
  237593. \fBPR\fP \fI\%#27579\fP: (\fI\%rallytime\fP) Change boto_route53 region default to \(aquniversal\(aq to avoid problems with boto library
  237594. @ \fI2015\-10\-02 18:56:17 UTC\fP
  237595. .INDENT 2.0
  237596. .IP \(bu 2
  237597. 8b7da5e469 Merge pull request \fI\%#27579\fP from rallytime/fix\-27463
  237598. .IP \(bu 2
  237599. d5956132ef Change boto_route53 region default to \(aquniversal\(aq to avoid problems with boto library
  237600. .UNINDENT
  237601. .IP \(bu 2
  237602. \fBPR\fP \fI\%#27581\fP: (\fI\%tkwilliams\fP) Add support for \(aqvpc_name\(aq tag in boto_secgroup module and state
  237603. @ \fI2015\-10\-02 15:40:40 UTC\fP
  237604. .INDENT 2.0
  237605. .IP \(bu 2
  237606. ce4c64a2e3 Merge pull request \fI\%#27581\fP from tkwilliams/boto_secgroup_add_vpc_name
  237607. .IP \(bu 2
  237608. 159cccf43f Faulty check logic around optional params
  237609. .IP \(bu 2
  237610. 84ab0bbd74 One last bug to squash. Seriously. It\(aqs the last one. Ever! \- fixed param vpc_id being passed where vpc_name was intended.
  237611. .IP \(bu 2
  237612. 002cbf5cde Grrr. Add back the import of SaltInvocationError that pylint wanted me to remove :)
  237613. .IP \(bu 2
  237614. 0671c0d8d9 Consolidate some redundant code \- thanks @ryan\-lane !
  237615. .IP \(bu 2
  237616. fae1199276 Followed @ryan\-lane\(aqs suggestion to remove duplicated code from boto_vpc and instead call into that module
  237617. .IP \(bu 2
  237618. 3a38a440b7 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into boto_secgroup_add_vpc_name
  237619. .IP \(bu 2
  237620. f7ef0bcd4c Fixups for picayune pylint pedantery :)
  237621. .IP \(bu 2
  237622. 35b66e28a3 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into boto_secgroup_add_vpc_name
  237623. .IP \(bu 2
  237624. 6770f721f8 Add support for \(aqvpc_name\(aq tag in boto_secgroup module and state
  237625. .UNINDENT
  237626. .IP \(bu 2
  237627. \fBPR\fP \fI\%#27624\fP: (\fI\%nasenbaer13\fP) Wait for sync is not passed to boto_route53 state
  237628. @ \fI2015\-10\-02 15:37:44 UTC\fP
  237629. .INDENT 2.0
  237630. .IP \(bu 2
  237631. fb6f6b9ce4 Merge pull request \fI\%#27624\fP from eyj/fix_wait_for_sync
  237632. .IP \(bu 2
  237633. ed6a8c0aa6 Wait for sync is not passed to boto_route53 state
  237634. .UNINDENT
  237635. .IP \(bu 2
  237636. \fBPR\fP \fI\%#27614\fP: (\fI\%blueyed\fP) doc: minor fixes to doc and comments
  237637. @ \fI2015\-10\-02 15:34:02 UTC\fP
  237638. .INDENT 2.0
  237639. .IP \(bu 2
  237640. eb59cb8d1c Merge pull request \fI\%#27614\fP from blueyed/doc\-minor
  237641. .IP \(bu 2
  237642. 98a8c0f055 doc: minor fixes to doc and comments
  237643. .UNINDENT
  237644. .IP \(bu 2
  237645. \fBPR\fP \fI\%#27627\fP: (\fI\%eyj\fP) Fix crash in boto_asg.get_instances if the requested attribute is None
  237646. @ \fI2015\-10\-02 15:33:32 UTC\fP
  237647. .INDENT 2.0
  237648. .IP \(bu 2
  237649. 61f8a6f39f Merge pull request \fI\%#27627\fP from eyj/pr\-instance\-attribute
  237650. .IP \(bu 2
  237651. 03d7c6af3d Fix crash in boto_asg.get_instances if the requested attribute may be None
  237652. .UNINDENT
  237653. .IP \(bu 2
  237654. \fBISSUE\fP \fI\%#27549\fP: (\fI\%carlpett\fP) Document winrepo_remotes_ng (refs: \fI\%#27616\fP)
  237655. .IP \(bu 2
  237656. \fBISSUE\fP \fI\%#27520\fP: (\fI\%rmarcinik\fP) winrepo is unavailable in 2015.8 (refs: \fI\%#27616\fP, \fI\%#27693\fP)
  237657. .IP \(bu 2
  237658. \fBPR\fP \fI\%#27616\fP: (\fI\%jacobhammons\fP) Updated windows software repository docs
  237659. @ \fI2015\-10\-02 05:04:37 UTC\fP
  237660. .INDENT 2.0
  237661. .IP \(bu 2
  237662. 764d70af79 Merge pull request \fI\%#27616\fP from jacobhammons/win\-repo\-docs
  237663. .IP \(bu 2
  237664. 1c8b32ce26 Updated windows software repository docs
  237665. .UNINDENT
  237666. .IP \(bu 2
  237667. \fBISSUE\fP \fI\%#27543\fP: (\fI\%lomeroe\fP) boto_elb incorrectly processes return from boto_vpc.get_subnet_assocaition (refs: \fI\%#27569\fP)
  237668. .IP \(bu 2
  237669. \fBPR\fP \fI\%#27569\fP: (\fI\%lomeroe\fP) boto_vpc.get_subnet_association now returns a dict w/key of vpc_id, a…
  237670. @ \fI2015\-10\-01 16:03:06 UTC\fP
  237671. .INDENT 2.0
  237672. .IP \(bu 2
  237673. db963b7864 Merge pull request \fI\%#27569\fP from lomeroe/fix_boto_elb
  237674. .IP \(bu 2
  237675. ae09a0fb61 boto_vpc.get_subnet_association now returns a dict w/key of vpc_id, adding code to handle the dict now
  237676. .UNINDENT
  237677. .IP \(bu 2
  237678. \fBISSUE\fP \fI\%#25441\fP: (\fI\%ahammond\fP) modules.ps documentation missing (refs: \fI\%#27567\fP)
  237679. .IP \(bu 2
  237680. \fBPR\fP \fI\%#27567\fP: (\fI\%whiteinge\fP) Use getattr to fetch psutil.version_info
  237681. @ \fI2015\-10\-01 15:39:59 UTC\fP
  237682. .INDENT 2.0
  237683. .IP \(bu 2
  237684. b269cd4754 Merge pull request \fI\%#27567\fP from whiteinge/psutil\-version\-fix
  237685. .IP \(bu 2
  237686. 7ebe9acc44 Use getattr to fetch psutil.version_info
  237687. .UNINDENT
  237688. .IP \(bu 2
  237689. \fBPR\fP \fI\%#27583\fP: (\fI\%tkwilliams\fP) Fixup zypper module
  237690. @ \fI2015\-10\-01 15:38:53 UTC\fP
  237691. .INDENT 2.0
  237692. .IP \(bu 2
  237693. 9cc69e2440 Merge pull request \fI\%#27583\fP from tkwilliams/fix_zypper
  237694. .IP \(bu 2
  237695. 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
  237696. .UNINDENT
  237697. .IP \(bu 2
  237698. \fBPR\fP \fI\%#27597\fP: (\fI\%blueyed\fP) gitfs: remove unused variable "bad_per_remote_conf"
  237699. @ \fI2015\-10\-01 15:38:15 UTC\fP
  237700. .INDENT 2.0
  237701. .IP \(bu 2
  237702. 5ca7e72c70 Merge pull request \fI\%#27597\fP from blueyed/gitfs\-remove\-unused\-bad_per_remote_conf
  237703. .IP \(bu 2
  237704. 58af4d68f0 gitfs: remove unused variable "bad_per_remote_conf"
  237705. .UNINDENT
  237706. .IP \(bu 2
  237707. \fBPR\fP \fI\%#27585\fP: (\fI\%ryan\-lane\fP) Fix undefined variable in cron state module
  237708. @ \fI2015\-10\-01 05:05:58 UTC\fP
  237709. .INDENT 2.0
  237710. .IP \(bu 2
  237711. 9805bdeddf Merge pull request \fI\%#27585\fP from lyft/cron\-fix
  237712. .IP \(bu 2
  237713. 5474666b61 Fix undefined variable in cron state module
  237714. .UNINDENT
  237715. .UNINDENT
  237716. .SS Salt 2015.8.3 Release Notes
  237717. .sp
  237718. Version 2015.8.3 is a bugfix release for 2015.8.0\&.
  237719. .SS Statistics
  237720. .INDENT 0.0
  237721. .IP \(bu 2
  237722. Total Merges: \fB74\fP
  237723. .IP \(bu 2
  237724. Total Issue References: \fB26\fP
  237725. .IP \(bu 2
  237726. Total PR References: \fB64\fP
  237727. .IP \(bu 2
  237728. 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)
  237729. .UNINDENT
  237730. .SS Security Fix
  237731. .sp
  237732. \fBCVE\-2015\-8034\fP Saving \fBstate.sls\fP cache
  237733. data to disk with insecure permissions
  237734. .sp
  237735. This affects users of the \fBstate.sls\fP
  237736. function. The state run cache on the minion was being created with incorrect
  237737. permissions. This file could potentially contain sensitive data that was
  237738. inserted via jinja into the state SLS files. The permissions for this file are
  237739. now being set correctly. Thanks to \fI\%zmalone\fP for bringing this issue to our
  237740. attention.
  237741. .SS Changelog for v2015.8.2..v2015.8.3
  237742. .sp
  237743. \fIGenerated at: 2018\-05\-27 23:24:21 UTC\fP
  237744. .INDENT 0.0
  237745. .IP \(bu 2
  237746. \fBPR\fP \fI\%#29173\fP: (\fI\%jfindlay\fP) add 2015.8.3 release notes
  237747. @ \fI2015\-11\-25 00:07:51 UTC\fP
  237748. .INDENT 2.0
  237749. .IP \(bu 2
  237750. 345206b68e Merge pull request \fI\%#29173\fP from jfindlay/2015.8
  237751. .IP \(bu 2
  237752. 212f7dd281 add 2015.8.3 release notes
  237753. .IP \(bu 2
  237754. cafbb49cb6 add note on 2015.8.2 release notes
  237755. .UNINDENT
  237756. .IP \(bu 2
  237757. \fBPR\fP \fI\%#29172\fP: (\fI\%basepi\fP) [2015.8] Backport new philips_hue proxy features from develop
  237758. @ \fI2015\-11\-24 23:52:55 UTC\fP
  237759. .INDENT 2.0
  237760. .IP \(bu 2
  237761. 5e88e9e9c0 Merge pull request \fI\%#29172\fP from basepi/philips_backport
  237762. .IP \(bu 2
  237763. 1df6c3083b Backport new philips_hue proxy features from develop
  237764. .UNINDENT
  237765. .IP \(bu 2
  237766. \fBPR\fP \fI\%#29167\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237767. @ \fI2015\-11\-24 21:40:34 UTC\fP
  237768. .INDENT 2.0
  237769. .IP \(bu 2
  237770. 2fb1ca0eac Merge pull request \fI\%#29167\fP from basepi/merge\-forward\-2015.8
  237771. .IP \(bu 2
  237772. 525f9fbbbb Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237773. .IP \(bu 2
  237774. a26c10a811 Merge pull request \fI\%#29164\fP from jfindlay/bp\-29113
  237775. .INDENT 2.0
  237776. .IP \(bu 2
  237777. 50fab35188 kill unneeded import
  237778. .UNINDENT
  237779. .IP \(bu 2
  237780. 4f03196e7d Merge pull request \fI\%#29138\fP from jfindlay/2015.5
  237781. .INDENT 2.0
  237782. .IP \(bu 2
  237783. be045f5cb1 add 2015.5.8 release notes
  237784. .UNINDENT
  237785. .UNINDENT
  237786. .IP \(bu 2
  237787. \fBPR\fP \fI\%#29141\fP: (\fI\%optix2000\fP) Add test case for require: sls with only import statements
  237788. @ \fI2015\-11\-24 16:17:57 UTC\fP
  237789. .INDENT 2.0
  237790. .IP \(bu 2
  237791. 68d6c454b8 Merge pull request \fI\%#29141\fP from optix2000/full_sls_import
  237792. .IP \(bu 2
  237793. 596843e8d6 Add test case for sls with only import Tests \fI\%https://github.com/saltstack/salt/issues/10852\fP
  237794. .UNINDENT
  237795. .IP \(bu 2
  237796. \fBISSUE\fP \fI\%#29015\fP: (\fI\%jakehilton\fP) git_pillar not honoring git_pillar_base (refs: \fI\%#29072\fP)
  237797. .IP \(bu 2
  237798. \fBISSUE\fP \fI\%#28311\fP: (\fI\%strocknar\fP) git_pillar conflicts (refs: \fI\%#29072\fP)
  237799. .IP \(bu 2
  237800. \fBISSUE\fP \fI\%#27432\fP: (\fI\%mafrosis\fP) Using specific tag as GitFS remote (refs: \fI\%#29072\fP)
  237801. .IP \(bu 2
  237802. \fBPR\fP \fI\%#29072\fP: (\fI\%terminalmage\fP) Several gitfs/git_pillar fixes
  237803. @ \fI2015\-11\-24 16:04:39 UTC\fP
  237804. .INDENT 2.0
  237805. .IP \(bu 2
  237806. 732f5364a2 Merge pull request \fI\%#29072\fP from terminalmage/issue28311
  237807. .IP \(bu 2
  237808. dae738fda3 Use common code to detect envs
  237809. .IP \(bu 2
  237810. a9c0cacb77 Don\(aqt add head ref if head red matches desired ref
  237811. .IP \(bu 2
  237812. e7540e956b pygit2: Don\(aqt clean local heads along with stale remote refs
  237813. .IP \(bu 2
  237814. 1e6c46f554 pygit2: Properly resolve base saltenv from tag ref
  237815. .IP \(bu 2
  237816. 0c592ab552 Support string whitelist/blacklist
  237817. .IP \(bu 2
  237818. 744487864d Fix base branch detection for git_pillar
  237819. .IP \(bu 2
  237820. 1cd9a4d1b4 Add some debug logging for git_pillar
  237821. .IP \(bu 2
  237822. fac588c0bb Add HEAD ref in git_pillar/winrepo checkout
  237823. .UNINDENT
  237824. .IP \(bu 2
  237825. \fBPR\fP \fI\%#29118\fP: (\fI\%ticosax\fP) [dockerng] Add networking capabilities
  237826. @ \fI2015\-11\-24 15:47:36 UTC\fP
  237827. .INDENT 2.0
  237828. .IP \(bu 2
  237829. 95689ee1a4 Merge pull request \fI\%#29118\fP from ticosax/dockerng\-network
  237830. .IP \(bu 2
  237831. e98d18ba41 Expose docker networking as state
  237832. .IP \(bu 2
  237833. 94135d91c3 cosmetic
  237834. .IP \(bu 2
  237835. 17ff5c1ab5 Add expose networking to modules.dockerng
  237836. .UNINDENT
  237837. .IP \(bu 2
  237838. \fBISSUE\fP \fI\%#29144\fP: (\fI\%anlutro\fP) Error in fileclient with file.managed (refs: \fI\%#29145\fP)
  237839. .IP \(bu 2
  237840. \fBPR\fP \fI\%#29145\fP: (\fI\%anlutro\fP) Remove duplicate import of salt.utils.s3
  237841. @ \fI2015\-11\-24 15:36:05 UTC\fP
  237842. .INDENT 2.0
  237843. .IP \(bu 2
  237844. 4b4f212d2d Merge pull request \fI\%#29145\fP from alprs/fix\-duplicate_import
  237845. .IP \(bu 2
  237846. e1101bea19 Remove duplicate import of salt.utils.s3
  237847. .UNINDENT
  237848. .IP \(bu 2
  237849. \fBISSUE\fP \fI\%#29147\fP: (\fI\%lomeroe\fP) boto_route53 unexpected keyword arguments in create_zone() (refs: \fI\%#29148\fP)
  237850. .IP \(bu 2
  237851. \fBPR\fP \fI\%#29148\fP: (\fI\%lomeroe\fP) correcting parameter calls to boto get_zone/create_zone functions in …
  237852. @ \fI2015\-11\-24 15:33:53 UTC\fP
  237853. .INDENT 2.0
  237854. .IP \(bu 2
  237855. 6079569580 Merge pull request \fI\%#29148\fP from lomeroe/boto_route53_create_zone_fix\-backport
  237856. .IP \(bu 2
  237857. 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
  237858. .UNINDENT
  237859. .IP \(bu 2
  237860. \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)
  237861. .IP \(bu 2
  237862. \fBPR\fP \fI\%#29108\fP: (\fI\%lorengordon\fP) Enforce length as an int, fixes \fI\%#29107\fP
  237863. @ \fI2015\-11\-23 19:06:52 UTC\fP
  237864. .INDENT 2.0
  237865. .IP \(bu 2
  237866. 17638c734b Merge pull request \fI\%#29108\fP from lorengordon/type\-enforce\-length
  237867. .IP \(bu 2
  237868. c71825d3b0 Enforce length as an int, fixes \fI\%#29107\fP
  237869. .UNINDENT
  237870. .IP \(bu 2
  237871. \fBPR\fP \fI\%#29125\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237872. @ \fI2015\-11\-23 18:48:46 UTC\fP
  237873. .INDENT 2.0
  237874. .IP \(bu 2
  237875. 233ab8a474 Merge pull request \fI\%#29125\fP from basepi/merge\-forward\-2015.8
  237876. .IP \(bu 2
  237877. 1432cc806d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237878. .INDENT 2.0
  237879. .IP \(bu 2
  237880. 219367a23d Merge pull request \fI\%#29128\fP from cachedout/tweak_29122
  237881. .INDENT 2.0
  237882. .IP \(bu 2
  237883. b08858b040 Missed check
  237884. .IP \(bu 2
  237885. 584efe81ee Set a safer default value for ret in saltmod
  237886. .UNINDENT
  237887. .UNINDENT
  237888. .IP \(bu 2
  237889. 8d86bc3056 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237890. .INDENT 2.0
  237891. .IP \(bu 2
  237892. 2250a36647 Merge pull request \fI\%#29122\fP from cachedout/issue_29110
  237893. .INDENT 2.0
  237894. .IP \(bu 2
  237895. 4b9302d794 Fix broken state orchestration
  237896. .UNINDENT
  237897. .IP \(bu 2
  237898. 200e771efb Merge pull request \fI\%#29096\fP from rallytime/bp\-29093
  237899. .INDENT 2.0
  237900. .IP \(bu 2
  237901. f5734423a4 Compare gem versions as a string.
  237902. .UNINDENT
  237903. .IP \(bu 2
  237904. d8a2018bc8 Merge pull request \fI\%#29084\fP from rallytime/bp\-29055
  237905. .INDENT 2.0
  237906. .IP \(bu 2
  237907. 52e650aed9 Add section to style guide
  237908. .UNINDENT
  237909. .IP \(bu 2
  237910. b5cff1a351 Merge pull request \fI\%#29083\fP from rallytime/bp\-29053
  237911. .INDENT 2.0
  237912. .IP \(bu 2
  237913. f1884de0e7 Update rabbitmq_user.py
  237914. .UNINDENT
  237915. .IP \(bu 2
  237916. b3e3bebef0 Merge pull request \fI\%#28932\fP from twangboy/fix_28928
  237917. .INDENT 2.0
  237918. .IP \(bu 2
  237919. 0653a04887 Fixed user.present / user.absent in windows
  237920. .UNINDENT
  237921. .IP \(bu 2
  237922. a2e4a227e0 Merge pull request \fI\%#29011\fP from rallytime/bp\-28630
  237923. .INDENT 2.0
  237924. .IP \(bu 2
  237925. 7baccc1b05 Lint \- newline before def
  237926. .IP \(bu 2
  237927. 9e5c16d4da Reading S3 credentials from Pillar
  237928. .IP \(bu 2
  237929. a3216f813d Fixed requests HTTPError handler, it was still in urllib2 style
  237930. .UNINDENT
  237931. .IP \(bu 2
  237932. 1a4cd6002f Merge pull request \fI\%#28982\fP from basepi/merge\-forward\-2015.5
  237933. .INDENT 2.0
  237934. .IP \(bu 2
  237935. bfbb109fbd Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  237936. .IP \(bu 2
  237937. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  237938. .IP \(bu 2
  237939. 215b26c06f Revert \fI\%#28740\fP
  237940. .UNINDENT
  237941. .UNINDENT
  237942. .UNINDENT
  237943. .IP \(bu 2
  237944. \fBISSUE\fP \fI\%#29005\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-call call in salt\-ssh (refs: \fI\%#29126\fP)
  237945. .IP \(bu 2
  237946. \fBISSUE\fP \fI\%#28830\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-ssh deployement (refs: \fI\%#29126\fP)
  237947. .IP \(bu 2
  237948. \fBPR\fP \fI\%#29126\fP: (\fI\%fcrozat\fP) Fix deployment when umask is non\-standard
  237949. @ \fI2015\-11\-23 17:53:46 UTC\fP
  237950. .INDENT 2.0
  237951. .IP \(bu 2
  237952. dc0d47fa2e Merge pull request \fI\%#29126\fP from fcrozat/2015.8
  237953. .IP \(bu 2
  237954. 4da11a5f3c Fix deployment when umask is non\-standard. Fixes \fI\%#29005\fP
  237955. .IP \(bu 2
  237956. bbccb752f9 Fix deployment when umask is non\-standard. Fixes \fI\%#28830\fP
  237957. .UNINDENT
  237958. .IP \(bu 2
  237959. \fBPR\fP \fI\%#29124\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28130\fP to 2015.8
  237960. @ \fI2015\-11\-23 17:31:00 UTC\fP
  237961. .INDENT 2.0
  237962. .IP \(bu 2
  237963. \fBPR\fP \fI\%#29120\fP: (\fI\%alexproca\fP) Import keypair (refs: \fI\%#29124\fP)
  237964. .IP \(bu 2
  237965. \fBPR\fP \fI\%#28130\fP: (\fI\%bogdanr\fP) Ec2 upload public key and updated instances size list (refs: \fI\%#29124\fP)
  237966. .IP \(bu 2
  237967. 994d8bd71a Merge pull request \fI\%#29124\fP from rallytime/bp\-28130
  237968. .IP \(bu 2
  237969. e290ea4a3f Pylint Fix
  237970. .IP \(bu 2
  237971. 9d8e5c8b4d Added missing comma
  237972. .IP \(bu 2
  237973. 4a7eee08a8 Documented import_keypair for the ec2 driver
  237974. .IP \(bu 2
  237975. 715c12014c Added a bunch of instance sizes and updated some outdated ones
  237976. .IP \(bu 2
  237977. 506ff01f65 Import public key
  237978. .UNINDENT
  237979. .IP \(bu 2
  237980. \fBPR\fP \fI\%#29076\fP: (\fI\%RealKelsar\fP) We can\(aqt query installed use flags for a non installed pkg
  237981. @ \fI2015\-11\-23 16:19:40 UTC\fP
  237982. .INDENT 2.0
  237983. .IP \(bu 2
  237984. d9c32011b4 Merge pull request \fI\%#29076\fP from RealKelsar/2015.8
  237985. .IP \(bu 2
  237986. f3d1ba1509 We can\(aqt query installed use flags for a non installed pkg. Also one if is enough...
  237987. .IP \(bu 2
  237988. 96566d3060 We can\(aqt query installed use flags for a non installed pkg
  237989. .UNINDENT
  237990. .IP \(bu 2
  237991. \fBISSUE\fP \fI\%#29100\fP: (\fI\%quantonganh\fP) boto_ec2.exists does not use region when checking? (refs: \fI\%#29070\fP)
  237992. .IP \(bu 2
  237993. \fBPR\fP \fI\%#29097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29070\fP to 2015.8
  237994. @ \fI2015\-11\-22 17:03:04 UTC\fP
  237995. .INDENT 2.0
  237996. .IP \(bu 2
  237997. \fBPR\fP \fI\%#29070\fP: (\fI\%quantonganh\fP) boto_ec2: missing region when checking existence of an EC2 instance (refs: \fI\%#29097\fP)
  237998. .IP \(bu 2
  237999. 1931870f26 Merge pull request \fI\%#29097\fP from rallytime/bp\-29070
  238000. .IP \(bu 2
  238001. 3b202efadc boto_ec2: missing region when checking existence of an EC2 instance
  238002. .UNINDENT
  238003. .IP \(bu 2
  238004. \fBPR\fP \fI\%#29090\fP: (\fI\%gtmanfred\fP) clean up novaclient module
  238005. @ \fI2015\-11\-21 15:43:58 UTC\fP
  238006. .INDENT 2.0
  238007. .IP \(bu 2
  238008. bb28b9186b Merge pull request \fI\%#29090\fP from gtmanfred/2015.8
  238009. .IP \(bu 2
  238010. 2aab45f9d2 clean up novaclient module
  238011. .UNINDENT
  238012. .IP \(bu 2
  238013. \fBPR\fP \fI\%#29095\fP: (\fI\%terminalmage\fP) Add warning about pygit2 API instability
  238014. @ \fI2015\-11\-21 15:38:59 UTC\fP
  238015. .INDENT 2.0
  238016. .IP \(bu 2
  238017. 4ff54c6429 Merge pull request \fI\%#29095\fP from terminalmage/pygit2\-warning
  238018. .IP \(bu 2
  238019. 139f5ba4c3 Add warning about pygit2 API instability
  238020. .UNINDENT
  238021. .IP \(bu 2
  238022. \fBPR\fP \fI\%#28919\fP: (\fI\%cro\fP) Update Philips Hue proxy minion to support __proxy__ instead of proxymodule stored in __opts__
  238023. @ \fI2015\-11\-21 15:31:36 UTC\fP
  238024. .INDENT 2.0
  238025. .IP \(bu 2
  238026. 27160b0454 Merge pull request \fI\%#28919\fP from cro/hue_proxy_backport
  238027. .IP \(bu 2
  238028. 8823225c81 Add \(aqversionadded\(aq
  238029. .IP \(bu 2
  238030. 6bdf98d2c6 Backport philips_hue proxy module to 2015.8, use __proxy__ instead of opts[\(aqproxymodule\(aq]
  238031. .IP \(bu 2
  238032. 0945d3b5b2 Add the license
  238033. .IP \(bu 2
  238034. a8be2d7382 Fix the docstring
  238035. .IP \(bu 2
  238036. 13a8973f94 Validate if "requests" are around. NOTE: this will be changed soon!
  238037. .IP \(bu 2
  238038. 835e84181b Fix the documentation
  238039. .IP \(bu 2
  238040. 68accf6180 Allow view status from all lamps, if not specified
  238041. .IP \(bu 2
  238042. 96adc9cca9 Fix lint issues
  238043. .IP \(bu 2
  238044. cd00c5d99f Remove dead code
  238045. .IP \(bu 2
  238046. 6a08d2b6b5 Implement static grains for the Philips HUE
  238047. .IP \(bu 2
  238048. 5d3c3e09fc Bugfix: show all devices, if no specific IDs were passed
  238049. .IP \(bu 2
  238050. 76e86d2d7d Implement color temperature
  238051. .IP \(bu 2
  238052. a2d87a18cc Fix the documentation
  238053. .IP \(bu 2
  238054. adeecb49d4 Implement brightness
  238055. .IP \(bu 2
  238056. a2b1a71e01 Fix crash if the controller is down
  238057. .IP \(bu 2
  238058. a7d5aafbe3 Update documentation for the color settings
  238059. .IP \(bu 2
  238060. 15f83e180d Add more preset colors
  238061. .IP \(bu 2
  238062. 44339f3dc1 Impement color setter with transition
  238063. .IP \(bu 2
  238064. 0f4d5b9eac Implement effects method
  238065. .IP \(bu 2
  238066. f341910174 Implement alert function
  238067. .IP \(bu 2
  238068. e0c95b4c7f Separate device (lamps) getter
  238069. .IP \(bu 2
  238070. 37ed834a63 Implement lamp rename
  238071. .IP \(bu 2
  238072. 66b155c3db Enhance _set method so it can set more than just lights status
  238073. .IP \(bu 2
  238074. 8e94aad5c1 Enhance internal ping report on failures (device is not reachable)
  238075. .IP \(bu 2
  238076. 3bf79e6920 Implement blink function
  238077. .IP \(bu 2
  238078. 334371d660 Use blink on internal ping
  238079. .IP \(bu 2
  238080. a8e4c2162c Fix bug: call in a proper order, if all devices
  238081. .IP \(bu 2
  238082. a98d5187f8 Remove the debug
  238083. .IP \(bu 2
  238084. a1244223bf Enhance switch method
  238085. .IP \(bu 2
  238086. e902764e25 Switch all lamps if IDs are not passed
  238087. .IP \(bu 2
  238088. 1e508e9155 Fix bug: crash, if only one lamp ID is passed
  238089. .IP \(bu 2
  238090. c0e6706d9a Implement status
  238091. .IP \(bu 2
  238092. 6d8e6d6e23 Fix lint
  238093. .IP \(bu 2
  238094. db053fbd8b Add licence
  238095. .IP \(bu 2
  238096. 2abdb19934 Implement proxy minion configuration
  238097. .IP \(bu 2
  238098. 1a75be3f71 Cleanup code
  238099. .IP \(bu 2
  238100. 1a46a180bc Implement light switch ON/OFF
  238101. .IP \(bu 2
  238102. cc5ee382c5 Implement lights method.
  238103. .IP \(bu 2
  238104. bfbe4160b2 Add constants class\-struct
  238105. .IP \(bu 2
  238106. 7a8d72de3f Implement device state change
  238107. .IP \(bu 2
  238108. d769bc85a7 Implement available device listing
  238109. .IP \(bu 2
  238110. c9e7f4dc18 Cleanup code
  238111. .IP \(bu 2
  238112. 5503b6f20e Implement Philips HUE wrapper caller for Minion Proxy
  238113. .IP \(bu 2
  238114. 1b11d1ec74 Initial implementation of Philips HUE proxy
  238115. .UNINDENT
  238116. .IP \(bu 2
  238117. \fBISSUE\fP \fI\%#28810\fP: (\fI\%syedaali\fP) test.ping is not available (refs: \fI\%#29065\fP)
  238118. .IP \(bu 2
  238119. \fBISSUE\fP \fI\%#28761\fP: (\fI\%syedaali\fP) Numerous module import errors in /var/log/salt/minion (test,oracle,archive) (refs: \fI\%#29065\fP)
  238120. .IP \(bu 2
  238121. \fBISSUE\fP \fI\%#25756\fP: (\fI\%nshalman\fP) Esky builds on SmartOS broken in 2015.5 branch (refs: \fI\%#25946\fP, \fI\%#25923\fP)
  238122. .IP \(bu 2
  238123. \fBPR\fP \fI\%#29065\fP: (\fI\%cachedout\fP) Handle failures inside python\(aqs inspect if a module is reloaded
  238124. @ \fI2015\-11\-20 18:10:42 UTC\fP
  238125. .INDENT 2.0
  238126. .IP \(bu 2
  238127. \fBPR\fP \fI\%#25946\fP: (\fI\%sjorge\fP) Fix for salt.utils.decorators under esky (refs: \fI\%#29065\fP)
  238128. .IP \(bu 2
  238129. \fBPR\fP \fI\%#25923\fP: (\fI\%sjorge\fP) Fix for salt.utils.decorators and module.__name__ under esky (refs: \fI\%#25946\fP)
  238130. .IP \(bu 2
  238131. 88c0354c0c Merge pull request \fI\%#29065\fP from cachedout/issue_28810
  238132. .IP \(bu 2
  238133. 4767503eb2 Remove trailing whitespace
  238134. .IP \(bu 2
  238135. c5b667f048 Handle failures inside python\(aqs inspect if a module is reloaded
  238136. .UNINDENT
  238137. .IP \(bu 2
  238138. \fBPR\fP \fI\%#29057\fP: (\fI\%paulnivin\fP) Add local file support for file.managed source list
  238139. @ \fI2015\-11\-19 21:57:34 UTC\fP
  238140. .INDENT 2.0
  238141. .IP \(bu 2
  238142. 714ef8ff27 Merge pull request \fI\%#29057\fP from lyft/file\-manage\-local\-source\-list
  238143. .IP \(bu 2
  238144. 3d7aa19cd8 Support local files in list of sources
  238145. .IP \(bu 2
  238146. d175061c5d Add tests for file.source_list with local files
  238147. .IP \(bu 2
  238148. 4f8e2a30fe Update documentation to clarify URL support for lists of sources with file.managed
  238149. .UNINDENT
  238150. .IP \(bu 2
  238151. \fBISSUE\fP \fI\%#28981\fP: (\fI\%mimianddaniel\fP) 2015.8.2 import pagerduty error (refs: \fI\%#29017\fP)
  238152. .IP \(bu 2
  238153. \fBPR\fP \fI\%#29017\fP: (\fI\%jfindlay\fP) pagerduty runner: add missing salt.utils import
  238154. @ \fI2015\-11\-19 19:28:35 UTC\fP
  238155. .INDENT 2.0
  238156. .IP \(bu 2
  238157. f4f43381fc Merge pull request \fI\%#29017\fP from jfindlay/pager_util
  238158. .IP \(bu 2
  238159. 5cc06207fe pagerduty runner: add missing salt.utils import
  238160. .UNINDENT
  238161. .IP \(bu 2
  238162. \fBPR\fP \fI\%#29039\fP: (\fI\%anlutro\fP) Allow passing list of pip packages to virtualenv.managed
  238163. @ \fI2015\-11\-19 19:13:50 UTC\fP
  238164. .INDENT 2.0
  238165. .IP \(bu 2
  238166. 1c61bce0a6 Merge pull request \fI\%#29039\fP from alprs/feature\-virtualenv_pip_pkgs
  238167. .IP \(bu 2
  238168. f9bff51382 allow passing list of pip packages to virtualenv.managed
  238169. .UNINDENT
  238170. .IP \(bu 2
  238171. \fBPR\fP \fI\%#29047\fP: (\fI\%schwing\fP) Fix salt.modules.gpg.import_key exception: \(aqGPG_1_3_1 referenced before assignment\(aq
  238172. @ \fI2015\-11\-19 19:07:36 UTC\fP
  238173. .INDENT 2.0
  238174. .IP \(bu 2
  238175. b692ab1cfb Merge pull request \fI\%#29047\fP from schwing/fix\-gpg\-exception
  238176. .IP \(bu 2
  238177. 813f6e6808 Fix \(aqGPG_1_3_1 referenced before assignment\(aq
  238178. .UNINDENT
  238179. .IP \(bu 2
  238180. \fBPR\fP \fI\%#29050\fP: (\fI\%terminalmage\fP) Make git_pillar global config option docs more prominent
  238181. @ \fI2015\-11\-19 19:06:38 UTC\fP
  238182. .INDENT 2.0
  238183. .IP \(bu 2
  238184. b4fc2f28a4 Merge pull request \fI\%#29050\fP from terminalmage/issue29015
  238185. .IP \(bu 2
  238186. 20da057a94 Make git_pillar global config option docs more prominent
  238187. .UNINDENT
  238188. .IP \(bu 2
  238189. \fBPR\fP \fI\%#29048\fP: (\fI\%nmadhok\fP) Fix incorrect debug log statement
  238190. @ \fI2015\-11\-19 19:04:10 UTC\fP
  238191. .INDENT 2.0
  238192. .IP \(bu 2
  238193. 4b3b2fe1e7 Merge pull request \fI\%#29048\fP from nmadhok/patch\-1
  238194. .IP \(bu 2
  238195. 9489d6c3b6 Update vmware.py
  238196. .UNINDENT
  238197. .IP \(bu 2
  238198. \fBPR\fP \fI\%#29024\fP: (\fI\%jfindlay\fP) cache runner test: add new unit tests
  238199. @ \fI2015\-11\-19 19:02:54 UTC\fP
  238200. .INDENT 2.0
  238201. .IP \(bu 2
  238202. e52c117368 Merge pull request \fI\%#29024\fP from jfindlay/run_test
  238203. .IP \(bu 2
  238204. 0c0bce3ea6 cache runner test: add new unit tests
  238205. .UNINDENT
  238206. .IP \(bu 2
  238207. \fBPR\fP \fI\%#28967\fP: (\fI\%cro\fP) Fix some issues with password changes
  238208. @ \fI2015\-11\-19 18:57:39 UTC\fP
  238209. .INDENT 2.0
  238210. .IP \(bu 2
  238211. bcec8d8608 Merge pull request \fI\%#28967\fP from cro/fx2_switch
  238212. .IP \(bu 2
  238213. 67b5b9b8d2 Add docs on automatic lockout on failed auth attempts.
  238214. .IP \(bu 2
  238215. 8a3cea4d95 Lint.
  238216. .IP \(bu 2
  238217. 04095e3b74 Prevent stacktrace if something goes wrong retrieving inventory
  238218. .IP \(bu 2
  238219. e7cbce15a5 Don\(aqt need to get grains at init time here now that we are confirming username and password differently.
  238220. .IP \(bu 2
  238221. e42100cf8a Switch from admin_password and fallback_admin_password to a list of passwords to try.
  238222. .IP \(bu 2
  238223. 4b382e977d Add \(aqversionadded\(aq
  238224. .UNINDENT
  238225. .IP \(bu 2
  238226. \fBISSUE\fP \fI\%#8516\fP: (\fI\%xoJIog\fP) salt\-ssh not working with nodegroups and lists (refs: \fI\%#29020\fP)
  238227. .IP \(bu 2
  238228. \fBPR\fP \fI\%#29020\fP: (\fI\%basepi\fP) [2015.8] Add special list\-only nodegroup support to salt\-ssh
  238229. @ \fI2015\-11\-18 21:15:50 UTC\fP
  238230. .INDENT 2.0
  238231. .IP \(bu 2
  238232. 14b5d0ed0f Merge pull request \fI\%#29020\fP from basepi/salt\-ssh.nodegroups.8516
  238233. .IP \(bu 2
  238234. 6433abf36f Rename ssh_nodegroups to ssh_list_nodegroups
  238235. .IP \(bu 2
  238236. bd8487b3b9 Properly save minion list in local_cache for ssh jobs
  238237. .IP \(bu 2
  238238. 4b1bf7d5e2 Add support for comma separated list matching in salt\-ssh
  238239. .IP \(bu 2
  238240. 65c6528cbc Add "nodegroup" matching to salt\-ssh
  238241. .IP \(bu 2
  238242. 688a78c08c Add new ssh_nodegroups config
  238243. .UNINDENT
  238244. .IP \(bu 2
  238245. \fBISSUE\fP \fI\%#28911\fP: (\fI\%ccmills\fP) GitFS numeric tags cause errors with environments (refs: \fI\%#28970\fP)
  238246. .IP \(bu 2
  238247. \fBPR\fP \fI\%#28970\fP: (\fI\%terminalmage\fP) Properly handle non\-string saltenvs
  238248. @ \fI2015\-11\-18 20:38:41 UTC\fP
  238249. .INDENT 2.0
  238250. .IP \(bu 2
  238251. 89801b172a Merge pull request \fI\%#28970\fP from terminalmage/issue28911
  238252. .IP \(bu 2
  238253. ec64ec85d6 Force file_roots environments to be strings
  238254. .IP \(bu 2
  238255. b2690140c7 Properly handle non\-string saltenvs
  238256. .UNINDENT
  238257. .IP \(bu 2
  238258. \fBISSUE\fP \fI\%#28945\fP: (\fI\%rallytime\fP) Dell Chassis State Example Improvements (refs: \fI\%#28959\fP)
  238259. .IP \(bu 2
  238260. \fBPR\fP \fI\%#28959\fP: (\fI\%rallytime\fP) Add blade password example and make note of timeout
  238261. @ \fI2015\-11\-18 19:39:04 UTC\fP
  238262. .INDENT 2.0
  238263. .IP \(bu 2
  238264. 83c54351c9 Merge pull request \fI\%#28959\fP from rallytime/fix\-28945
  238265. .IP \(bu 2
  238266. 2f326b57bf Clarify chassis password functionality
  238267. .IP \(bu 2
  238268. 3614a88811 Add blade password example and make note of timeout
  238269. .UNINDENT
  238270. .IP \(bu 2
  238271. \fBPR\fP \fI\%#29000\fP: (\fI\%kiorky\fP) [Mergeable] Fix up LXC
  238272. @ \fI2015\-11\-18 18:02:47 UTC\fP
  238273. .INDENT 2.0
  238274. .IP \(bu 2
  238275. d8dc81bb2c Merge pull request \fI\%#29000\fP from kiorky/2015.8_lxc
  238276. .IP \(bu 2
  238277. a4d197821a LXC: doc
  238278. .IP \(bu 2
  238279. 43fb0eff02 lxc: remove useless and error prone uses_systemd knob
  238280. .IP \(bu 2
  238281. 7ec08cd41c Fix bootstrap delay kwarg exchange
  238282. .UNINDENT
  238283. .IP \(bu 2
  238284. \fBISSUE\fP \fI\%#28995\fP: (\fI\%timcharper\fP) systemd.get_all broken on non\-bsd systems / salt\-bootstrap failure (refs: \fI\%#29014\fP)
  238285. .IP \(bu 2
  238286. \fBPR\fP \fI\%#29014\fP: (\fI\%jfindlay\fP) systemd module: remove unneeded col command
  238287. @ \fI2015\-11\-18 17:58:59 UTC\fP
  238288. .INDENT 2.0
  238289. .IP \(bu 2
  238290. eedd50e7c3 Merge pull request \fI\%#29014\fP from jfindlay/sysctl_col
  238291. .IP \(bu 2
  238292. d75e4d5d21 systemd module: line wrap function comment
  238293. .IP \(bu 2
  238294. 960d2b936d systemd module: remove unneeded col command
  238295. .UNINDENT
  238296. .IP \(bu 2
  238297. \fBPR\fP \fI\%#28983\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  238298. @ \fI2015\-11\-18 00:49:36 UTC\fP
  238299. .INDENT 2.0
  238300. .IP \(bu 2
  238301. ac85cfdbd0 Merge pull request \fI\%#28983\fP from basepi/merge\-forward\-2015.8
  238302. .IP \(bu 2
  238303. f1c80ab943 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  238304. .IP \(bu 2
  238305. edd26d763a Merge pull request \fI\%#28949\fP from whiteinge/sync\-sdb
  238306. .INDENT 2.0
  238307. .IP \(bu 2
  238308. b0ec9ab25b Add sync_sdb execution function
  238309. .UNINDENT
  238310. .IP \(bu 2
  238311. 43da1bc4ce Merge pull request \fI\%#28930\fP from twangboy/fix_28888
  238312. .INDENT 2.0
  238313. .IP \(bu 2
  238314. f5c489eaad Added missing import mmap required by file.py
  238315. .UNINDENT
  238316. .IP \(bu 2
  238317. 2488b873b8 Merge pull request \fI\%#28908\fP from rallytime/doc\-convention\-spelling
  238318. .INDENT 2.0
  238319. .IP \(bu 2
  238320. 60e6eddb77 A couple of spelling fixes for doc conventions page.
  238321. .UNINDENT
  238322. .IP \(bu 2
  238323. 827a1ae020 Merge pull request \fI\%#28902\fP from whiteinge/json\-keys
  238324. .INDENT 2.0
  238325. .IP \(bu 2
  238326. 9745903301 Fix missing JSON support for /keys endpoint
  238327. .UNINDENT
  238328. .IP \(bu 2
  238329. d23bd49130 Merge pull request \fI\%#28897\fP from rallytime/bp\-28873
  238330. .INDENT 2.0
  238331. .IP \(bu 2
  238332. 077e671ead Fix salt\-cloud help output typo
  238333. .UNINDENT
  238334. .IP \(bu 2
  238335. a9dc8b6ca6 Merge pull request \fI\%#28871\fP from basepi/mdadm.fix.28870
  238336. .INDENT 2.0
  238337. .IP \(bu 2
  238338. 323bc2d2ac Fix command generation for mdadm.assemble
  238339. .UNINDENT
  238340. .IP \(bu 2
  238341. ec7fdc539b Merge pull request \fI\%#28864\fP from jfindlay/2015.5
  238342. .INDENT 2.0
  238343. .IP \(bu 2
  238344. 648b697951 add 2015.5.7 release notes
  238345. .UNINDENT
  238346. .IP \(bu 2
  238347. bed45f4208 Merge pull request \fI\%#28731\fP from garethgreenaway/27392_2015_5_scheduler_return_job_master
  238348. .INDENT 2.0
  238349. .IP \(bu 2
  238350. 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.
  238351. .UNINDENT
  238352. .IP \(bu 2
  238353. 06f4932876 Merge pull request \fI\%#28857\fP from rallytime/bp\-28851
  238354. .INDENT 2.0
  238355. .IP \(bu 2
  238356. aa4b193f87 [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs
  238357. .UNINDENT
  238358. .IP \(bu 2
  238359. 0934a52b34 Merge pull request \fI\%#28856\fP from rallytime/bp\-28853
  238360. .IP \(bu 2
  238361. 37eeab2683 Typo (with → which)
  238362. .UNINDENT
  238363. .IP \(bu 2
  238364. \fBPR\fP \fI\%#28969\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28825\fP to 2015.8
  238365. @ \fI2015\-11\-17 20:43:30 UTC\fP
  238366. .INDENT 2.0
  238367. .IP \(bu 2
  238368. \fBPR\fP \fI\%#28825\fP: (\fI\%s0undt3ch\fP) Take into account a pygit2 bug (refs: \fI\%#28969\fP)
  238369. .IP \(bu 2
  238370. f172a0ee03 Merge pull request \fI\%#28969\fP from rallytime/bp\-28825
  238371. .IP \(bu 2
  238372. 40f4ac5b21 Add missing import
  238373. .IP \(bu 2
  238374. 2c43da1578 Take into account a pygit2 bug
  238375. .UNINDENT
  238376. .IP \(bu 2
  238377. \fBISSUE\fP \fI\%#28784\fP: (\fI\%chrigl\fP) iptables.get_saved_rules tests pretty much useless (refs: \fI\%#28787\fP)
  238378. .IP \(bu 2
  238379. \fBISSUE\fP \fI\%#28783\fP: (\fI\%chrigl\fP) iptables.get_saved_rules does not handle family=ipv6 (refs: \fI\%#28787\fP)
  238380. .IP \(bu 2
  238381. \fBPR\fP \fI\%#28787\fP: (\fI\%chrigl\fP) closes \fI\%#28784\fP
  238382. @ \fI2015\-11\-17 15:54:04 UTC\fP
  238383. .INDENT 2.0
  238384. .IP \(bu 2
  238385. 1e9214f4e4 Merge pull request \fI\%#28787\fP from chrigl/fix\-28784
  238386. .IP \(bu 2
  238387. 8639e3e9c3 closes \fI\%#28784\fP
  238388. .UNINDENT
  238389. .IP \(bu 2
  238390. \fBPR\fP \fI\%#28944\fP: (\fI\%rallytime\fP) The ret result must contain \(aqname\(aq, not \(aqchassis_name\(aq for the state compiler.
  238391. @ \fI2015\-11\-17 15:34:21 UTC\fP
  238392. .INDENT 2.0
  238393. .IP \(bu 2
  238394. d63344575a Merge pull request \fI\%#28944\fP from rallytime/dellchassis\-state\-name\-fix
  238395. .IP \(bu 2
  238396. f3ea01bbfa Make sure dellchassis.blade_idrac has a name arg and a ret[\(aqname\(aq]
  238397. .IP \(bu 2
  238398. fb718539e9 The ret result must contain \(aqname\(aq, not \(aqchassis_name\(aq for the state compiler
  238399. .UNINDENT
  238400. .IP \(bu 2
  238401. \fBPR\fP \fI\%#28957\fP: (\fI\%terminalmage\fP) Fix version number for new state option
  238402. @ \fI2015\-11\-17 15:33:50 UTC\fP
  238403. .INDENT 2.0
  238404. .IP \(bu 2
  238405. fcef9f8995 Merge pull request \fI\%#28957\fP from terminalmage/fix\-docstring
  238406. .IP \(bu 2
  238407. f159000de2 Fix version number for new state option
  238408. .UNINDENT
  238409. .IP \(bu 2
  238410. \fBPR\fP \fI\%#28950\fP: (\fI\%DmitryKuzmenko\fP) PR 28812 which test fix
  238411. @ \fI2015\-11\-17 15:32:16 UTC\fP
  238412. .INDENT 2.0
  238413. .IP \(bu 2
  238414. \fBPR\fP \fI\%#28812\fP: (\fI\%isbm\fP) Enhance \(aqwhich\(aq decorator reliability (refs: \fI\%#28950\fP)
  238415. .IP \(bu 2
  238416. 5b680c938a Merge pull request \fI\%#28950\fP from DSRCompany/pr/28812_which
  238417. .IP \(bu 2
  238418. 18571000c5 Fix which test in PR\(ga#28812\(ga_
  238419. .UNINDENT
  238420. .IP \(bu 2
  238421. \fBPR\fP \fI\%#28812\fP: (\fI\%isbm\fP) Enhance \(aqwhich\(aq decorator reliability (refs: \fI\%#28950\fP)
  238422. @ \fI2015\-11\-17 15:32:10 UTC\fP
  238423. .INDENT 2.0
  238424. .IP \(bu 2
  238425. 73719928f9 Merge pull request \fI\%#28812\fP from isbm/isbm\-which\-decorator\-enhancement
  238426. .IP \(bu 2
  238427. 20033eeeb7 Save modified environment path
  238428. .IP \(bu 2
  238429. 2d43199d20 Preserve \(aqfirst found first win\(aq ordering
  238430. .IP \(bu 2
  238431. 1c59eedec2 Enhance \(aqwhich\(aq decorator reliability for peculiar environments
  238432. .UNINDENT
  238433. .IP \(bu 2
  238434. \fBPR\fP \fI\%#28934\fP: (\fI\%terminalmage\fP) git.latest: Add update_head option to prevent local HEAD from being updated
  238435. @ \fI2015\-11\-17 15:15:16 UTC\fP
  238436. .INDENT 2.0
  238437. .IP \(bu 2
  238438. facc34efed Merge pull request \fI\%#28934\fP from terminalmage/issue27883
  238439. .IP \(bu 2
  238440. 6a35a39ca5 Add update_head option to git.latest
  238441. .IP \(bu 2
  238442. 3787f7ed00 Change return output of git.fetch to a dict
  238443. .IP \(bu 2
  238444. 9ca0f8f440 Add redirect_stderr argument to cmd.run_all
  238445. .UNINDENT
  238446. .IP \(bu 2
  238447. \fBPR\fP \fI\%#28937\fP: (\fI\%rallytime\fP) Update dellchassis state example to use correct jinja syntax
  238448. @ \fI2015\-11\-17 15:12:28 UTC\fP
  238449. .INDENT 2.0
  238450. .IP \(bu 2
  238451. 7da93aad5b Merge pull request \fI\%#28937\fP from rallytime/chassis\-doc\-fix
  238452. .IP \(bu 2
  238453. d53713ddba We only need one fancy pillar example to match our state.
  238454. .IP \(bu 2
  238455. e2926b1996 Update dellchassis state example to use correct jinja syntax
  238456. .UNINDENT
  238457. .IP \(bu 2
  238458. \fBISSUE\fP \fI\%#27961\fP: (\fI\%ahammond\fP) aggregate: False should disable aggregation even when state_aggregate: True enabled (refs: \fI\%#28889\fP)
  238459. .IP \(bu 2
  238460. \fBPR\fP \fI\%#28889\fP: (\fI\%jfindlay\fP) state compiler: relax aggregate conditional check
  238461. @ \fI2015\-11\-16 17:39:24 UTC\fP
  238462. .INDENT 2.0
  238463. .IP \(bu 2
  238464. 16ebda999e Merge pull request \fI\%#28889\fP from jfindlay/aggregate
  238465. .IP \(bu 2
  238466. eb9970019a state compiler: relax aggregate conditional check
  238467. .UNINDENT
  238468. .IP \(bu 2
  238469. \fBISSUE\fP \fI\%#24803\fP: (\fI\%cachedout\fP) Rewrite GPG renderer tests (refs: \fI\%#25470\fP)
  238470. .IP \(bu 2
  238471. \fBPR\fP \fI\%#28921\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25470\fP to 2015.8
  238472. @ \fI2015\-11\-16 17:38:59 UTC\fP
  238473. .INDENT 2.0
  238474. .IP \(bu 2
  238475. \fBPR\fP \fI\%#25470\fP: (\fI\%jfindlay\fP) \fI\%#24314\fP with tests (refs: \fI\%#28921\fP)
  238476. .IP \(bu 2
  238477. \fBPR\fP \fI\%#24314\fP: (\fI\%cedwards\fP) refactor gpg renderer; removing dependency on python\-gnupg (refs: \fI\%#28921\fP, \fI\%#25470\fP)
  238478. .IP \(bu 2
  238479. 91a327bbce Merge pull request \fI\%#28921\fP from rallytime/bp\-25470
  238480. .IP \(bu 2
  238481. a5eee74c20 Change Beryllium to 2015.8.3 release
  238482. .IP \(bu 2
  238483. 5ce61abf57 rewrite GPG unit tests
  238484. .IP \(bu 2
  238485. 7aa424209e reduce globals in GPG renderer for easier testing
  238486. .IP \(bu 2
  238487. de5b6682ef log error and return ciphered txt on decrypt error
  238488. .IP \(bu 2
  238489. 6afb344fe3 updated logic to properly detect GPG_KEYDIR path
  238490. .IP \(bu 2
  238491. bc9750b85e refactor gpg renderer; removing dependency on python\-gnupg
  238492. .UNINDENT
  238493. .IP \(bu 2
  238494. \fBPR\fP \fI\%#28922\fP: (\fI\%rallytime\fP) Change 2015.8.2 release note title to reflect proper version
  238495. @ \fI2015\-11\-16 16:47:33 UTC\fP
  238496. .INDENT 2.0
  238497. .IP \(bu 2
  238498. 3707eb1e7c Merge pull request \fI\%#28922\fP from rallytime/release\-notes\-ver
  238499. .IP \(bu 2
  238500. 61029f8db1 Change 2015.8.2 release note title to reflect proper version
  238501. .UNINDENT
  238502. .IP \(bu 2
  238503. \fBISSUE\fP \fI\%#23971\fP: (\fI\%dumol\fP) Problems disabling a service in SLES11 SP3. (refs: \fI\%#28891\fP)
  238504. .IP \(bu 2
  238505. \fBPR\fP \fI\%#28891\fP: (\fI\%jfindlay\fP) rh_service module: fix logic in _chkconfig_is_enabled
  238506. @ \fI2015\-11\-16 02:44:14 UTC\fP
  238507. .INDENT 2.0
  238508. .IP \(bu 2
  238509. 23eae0d9e0 Merge pull request \fI\%#28891\fP from jfindlay/chkconfig_check
  238510. .IP \(bu 2
  238511. e32a9aab85 rh_service._chkconfig_is_enabled unit tests
  238512. .IP \(bu 2
  238513. 5a93b7e53c rh_service module: fix logic in _chkconfig_is_enabled
  238514. .UNINDENT
  238515. .IP \(bu 2
  238516. \fBISSUE\fP \fI\%#24019\fP: (\fI\%dumol\fP) SUSE Linux Enterprise Server 11 SP3 not detected as SLES. (refs: \fI\%#28892\fP)
  238517. .IP \(bu 2
  238518. \fBPR\fP \fI\%#28892\fP: (\fI\%jfindlay\fP) grains.core: correctly identify SLES 11 distrib_id
  238519. @ \fI2015\-11\-16 02:30:30 UTC\fP
  238520. .INDENT 2.0
  238521. .IP \(bu 2
  238522. 8e6acd97ae Merge pull request \fI\%#28892\fP from jfindlay/sles_grain
  238523. .IP \(bu 2
  238524. 1cfdc500c9 grains.core: correctly identify SLES 11 distrib_id
  238525. .UNINDENT
  238526. .IP \(bu 2
  238527. \fBPR\fP \fI\%#28910\fP: (\fI\%lorengordon\fP) Fix winrepo command in windows pkg mgmt doc
  238528. @ \fI2015\-11\-16 02:29:12 UTC\fP
  238529. .INDENT 2.0
  238530. .IP \(bu 2
  238531. cf929c3847 Merge pull request \fI\%#28910\fP from lorengordon/patch\-1
  238532. .IP \(bu 2
  238533. 64655398b3 Fix winrepo command in windows pkg mgmt doc
  238534. .UNINDENT
  238535. .IP \(bu 2
  238536. \fBPR\fP \fI\%#28896\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28855\fP to 2015.8
  238537. @ \fI2015\-11\-15 00:43:15 UTC\fP
  238538. .INDENT 2.0
  238539. .IP \(bu 2
  238540. \fBPR\fP \fI\%#28855\fP: (\fI\%tampakrap\fP) fix the os grain in sle11sp4 to be SUSE instead of SLES (refs: \fI\%#28896\fP)
  238541. .IP \(bu 2
  238542. 7a4fb9a790 Merge pull request \fI\%#28896\fP from rallytime/bp\-28855
  238543. .IP \(bu 2
  238544. baf238f270 fix the os grain in sle11sp4 to be SUSE instead of SLES
  238545. .UNINDENT
  238546. .IP \(bu 2
  238547. \fBPR\fP \fI\%#28895\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28823\fP to 2015.8
  238548. @ \fI2015\-11\-15 00:43:07 UTC\fP
  238549. .INDENT 2.0
  238550. .IP \(bu 2
  238551. \fBPR\fP \fI\%#28823\fP: (\fI\%tampakrap\fP) Add support for priority and humanname in pkrepo zypper backend (refs: \fI\%#28895\fP)
  238552. .IP \(bu 2
  238553. 64dc3c23e0 Merge pull request \fI\%#28895\fP from rallytime/bp\-28823
  238554. .IP \(bu 2
  238555. d167a6b83d Add support for priority and humanname in pkrepo zypper backend
  238556. .UNINDENT
  238557. .IP \(bu 2
  238558. \fBISSUE\fP \fI\%#28754\fP: (\fI\%kt97679\fP) service.enabled fails on xen server (refs: \fI\%#28885\fP)
  238559. .IP \(bu 2
  238560. \fBPR\fP \fI\%#28885\fP: (\fI\%kt97679\fP) fix for: service.enabled fails on xen server \fI\%#28754\fP
  238561. @ \fI2015\-11\-14 04:55:38 UTC\fP
  238562. .INDENT 2.0
  238563. .IP \(bu 2
  238564. a45ce78e20 Merge pull request \fI\%#28885\fP from kt97679/2015.8
  238565. .IP \(bu 2
  238566. 7d0f1f11cb fix for: service.enabled fails on xen server \fI\%#28754\fP
  238567. .UNINDENT
  238568. .IP \(bu 2
  238569. \fBPR\fP \fI\%#28880\fP: (\fI\%terminalmage\fP) Add "profile" loglevel
  238570. @ \fI2015\-11\-14 02:07:25 UTC\fP
  238571. .INDENT 2.0
  238572. .IP \(bu 2
  238573. 58b57e77be Merge pull request \fI\%#28880\fP from terminalmage/profile\-logging
  238574. .IP \(bu 2
  238575. a62852d407 Add @wraps decorator
  238576. .IP \(bu 2
  238577. cac9f17307 Add profile logging for template rendering
  238578. .IP \(bu 2
  238579. c625725f70 Add decorator to do profile\-level logging for a function
  238580. .IP \(bu 2
  238581. 5a2b94ce39 Add "profile" loglevel
  238582. .UNINDENT
  238583. .IP \(bu 2
  238584. \fBISSUE\fP \fI\%#28881\fP: (\fI\%basepi\fP) salt\-ssh stacktraces on first run (refs: \fI\%#28882\fP)
  238585. .IP \(bu 2
  238586. \fBPR\fP \fI\%#28882\fP: (\fI\%basepi\fP) [2015.8] salt\-ssh: Check return type to make sure it\(aqs an error
  238587. @ \fI2015\-11\-14 00:14:46 UTC\fP
  238588. .INDENT 2.0
  238589. .IP \(bu 2
  238590. 5dc7fccb07 Merge pull request \fI\%#28882\fP from basepi/salt\-ssh.stacktrace.28881
  238591. .IP \(bu 2
  238592. f1a1cad607 Check return type to make sure it\(aqs actually an error
  238593. .UNINDENT
  238594. .IP \(bu 2
  238595. \fBPR\fP \fI\%#28867\fP: (\fI\%rallytime\fP) [fx2 grains] Grains functions should return dictionaries
  238596. @ \fI2015\-11\-13 21:14:13 UTC\fP
  238597. .INDENT 2.0
  238598. .IP \(bu 2
  238599. 430e9376f6 Merge pull request \fI\%#28867\fP from rallytime/fx2\-grains\-patch
  238600. .IP \(bu 2
  238601. 022cf5d230 [fx2 grains] Grains functions should return dictionaries
  238602. .UNINDENT
  238603. .IP \(bu 2
  238604. \fBISSUE\fP \fI\%#28859\fP: (\fI\%mhoogendoorn\fP) ebuild.install runs \fIrefresh_db()\fP when \fIrefresh=False\fP is given. (refs: \fI\%#28863\fP)
  238605. .IP \(bu 2
  238606. \fBPR\fP \fI\%#28863\fP: (\fI\%mhoogendoorn\fP) Fix ebuild.install causing extra refresh_db calls.
  238607. @ \fI2015\-11\-13 18:46:03 UTC\fP
  238608. .INDENT 2.0
  238609. .IP \(bu 2
  238610. 304072456e Merge pull request \fI\%#28863\fP from mhoogendoorn/fix\-issue\-28859
  238611. .IP \(bu 2
  238612. eca09b89a4 Fix ebuild.install causing extra refresh_db calls.
  238613. .UNINDENT
  238614. .UNINDENT
  238615. .SS Salt 2015.8.4 Release Notes
  238616. .sp
  238617. Version 2015.8.4 is a bugfix release for 2015.8.0\&.
  238618. .SS Statistics
  238619. .INDENT 0.0
  238620. .IP \(bu 2
  238621. Total Merges: \fB322\fP
  238622. .IP \(bu 2
  238623. Total Issue References: \fB120\fP
  238624. .IP \(bu 2
  238625. Total PR References: \fB312\fP
  238626. .IP \(bu 2
  238627. 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)
  238628. .UNINDENT
  238629. .SS Known Issues
  238630. .INDENT 0.0
  238631. .IP \(bu 2
  238632. \fB*_in\fP requisites (\fI\%issue #30820\fP)
  238633. .sp
  238634. This issue affects all users targeting an explicit \fB\- name: <name>\fP with a
  238635. \fB_in\fP requisite (such as \fBwatch_in\fP or \fBrequire_in\fP). If you are not
  238636. using explicit \fB\- name: <name>\fP arguments, are targeting with the state ID
  238637. instead of the name, or are not using \fB_in\fP requisites, then you should be
  238638. safe to upgrade to 2015.8.4.
  238639. .sp
  238640. This issue is resolved in the 2015.8.5 release.
  238641. .UNINDENT
  238642. .SS Security Fix
  238643. .sp
  238644. \fBCVE\-2016\-1866\fP Improper handling of clear messages on the minion, which
  238645. could result in executing commands not sent by the master.
  238646. .sp
  238647. This issue affects only the 2015.8.x releases of Salt. In order for an attacker
  238648. to use this attack vector, they would have to execute a successful attack on an
  238649. existing TCP connection between minion and master on the pub port. It does not
  238650. allow an external attacker to obtain the shared secret or decrypt any encrypted
  238651. traffic between minion and master. Thank you to Sebastian Krahmer
  238652. <\fI\%krahmer@suse.com\fP> for bringing this issue to our attention.
  238653. .sp
  238654. We recommend everyone upgrade to 2015.8.4 as soon as possible.
  238655. .SS Core Changes
  238656. .INDENT 0.0
  238657. .IP \(bu 2
  238658. Support for IAM roles added to S3 module
  238659. .IP \(bu 2
  238660. Added option \fBmock=True\fP for \fBstate.sls\fP
  238661. and \fBstate.highstate\fP\&. This allows
  238662. the state compiler to process sls data in a state run without actually
  238663. calling the state functions, thus providing feedback on the validity of the
  238664. arguments used for the functions beyond the preprocessing validation provided
  238665. by \fBstate.show_sls\fP (\fI\%issue #30118\fP
  238666. and \fI\%issue #30189\fP).
  238667. .INDENT 2.0
  238668. .INDENT 3.5
  238669. .sp
  238670. .nf
  238671. .ft C
  238672. salt \(aq*\(aq state.sls core,edit.vim mock=True
  238673. salt \(aq*\(aq state.highstate mock=True
  238674. salt \(aq*\(aq state.apply edit.vim mock=True
  238675. .ft P
  238676. .fi
  238677. .UNINDENT
  238678. .UNINDENT
  238679. .UNINDENT
  238680. .SS Changelog for v2015.8.3..v2015.8.4
  238681. .sp
  238682. \fIGenerated at: 2018\-05\-27 23:28:18 UTC\fP
  238683. .INDENT 0.0
  238684. .IP \(bu 2
  238685. \fBPR\fP \fI\%#30615\fP: (\fI\%jfindlay\fP) add 2015.8.4 release notes
  238686. @ \fI2016\-01\-25 18:11:02 UTC\fP
  238687. .INDENT 2.0
  238688. .IP \(bu 2
  238689. 1c6c394d0e Merge pull request \fI\%#30615\fP from jfindlay/2015.8
  238690. .IP \(bu 2
  238691. e4043403e4 add 2015.8.4 release notes
  238692. .UNINDENT
  238693. .IP \(bu 2
  238694. \fBPR\fP \fI\%#30612\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29940\fP to 2015.8
  238695. @ \fI2016\-01\-25 17:52:43 UTC\fP
  238696. .INDENT 2.0
  238697. .IP \(bu 2
  238698. \fBPR\fP \fI\%#29940\fP: (\fI\%dr4Ke\fP) file.line: better diff (refs: \fI\%#30612\fP)
  238699. .IP \(bu 2
  238700. ec50581aad Merge pull request \fI\%#30612\fP from rallytime/bp\-29940
  238701. .IP \(bu 2
  238702. 3ebb8249d7 file.line: better diff
  238703. .UNINDENT
  238704. .IP \(bu 2
  238705. \fBPR\fP \fI\%#30613\fP: (\fI\%basepi\fP) Fix minion/syndic clearfuncs
  238706. @ \fI2016\-01\-25 17:40:59 UTC\fP
  238707. .INDENT 2.0
  238708. .IP \(bu 2
  238709. 48373e0ea9 Merge pull request \fI\%#30613\fP from basepi/minion_clearfuncs_2015.8
  238710. .IP \(bu 2
  238711. a3c3182f39 Correctly handle clearfuncs on the syndic
  238712. .IP \(bu 2
  238713. 098ce4335d Correct handle clearfuncs on the minion
  238714. .UNINDENT
  238715. .IP \(bu 2
  238716. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  238717. .IP \(bu 2
  238718. \fBPR\fP \fI\%#30609\fP: (\fI\%seanjnkns\fP) Fix documentation for pillar_merge_lists which default is False, not …
  238719. @ \fI2016\-01\-25 17:15:45 UTC\fP
  238720. .INDENT 2.0
  238721. .IP \(bu 2
  238722. \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)
  238723. .IP \(bu 2
  238724. 89b4f3de1b Merge pull request \fI\%#30609\fP from seanjnkns/backport_30602
  238725. .IP \(bu 2
  238726. 9924acdc43 Fix documentation for pillar_merge_lists which default is False, not True. From PR \fI\%#30062\fP
  238727. .UNINDENT
  238728. .IP \(bu 2
  238729. \fBPR\fP \fI\%#30584\fP: (\fI\%julianbrost\fP) file.line state: add missing colon in docstring
  238730. @ \fI2016\-01\-25 16:37:38 UTC\fP
  238731. .INDENT 2.0
  238732. .IP \(bu 2
  238733. 24ead62c41 Merge pull request \fI\%#30584\fP from julianbrost/fix\-doc\-file\-line\-missing\-colon
  238734. .IP \(bu 2
  238735. 2ab367f95b file.line state: add missing colon in docstring
  238736. .UNINDENT
  238737. .IP \(bu 2
  238738. \fBPR\fP \fI\%#30589\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8
  238739. @ \fI2016\-01\-25 16:20:41 UTC\fP
  238740. .INDENT 2.0
  238741. .IP \(bu 2
  238742. a7ba2df5e2 Merge pull request \fI\%#30589\fP from terminalmage/2015.5\-2015.8
  238743. .IP \(bu 2
  238744. d649551fbf Merge branch \(aq2015.5\(aq into 2015.5\-2015.8
  238745. .INDENT 2.0
  238746. .IP \(bu 2
  238747. a823e21428 Merge pull request \fI\%#30582\fP from terminalmage/dnf\-repoquery\-multiple\-targets
  238748. .INDENT 2.0
  238749. .IP \(bu 2
  238750. 410da789f9 yumpkg.check_db: run separate repoquery commands when multiple names passed
  238751. .UNINDENT
  238752. .IP \(bu 2
  238753. 8e56be7f4c Merge pull request \fI\%#30548\fP from jacobhammons/doc\-fixes
  238754. .INDENT 2.0
  238755. .IP \(bu 2
  238756. 03c51bb54d Added placeholder release notes for 2015.5.10 Changed old doc links from docs.saltstack.org to docs.saltstack.com
  238757. .UNINDENT
  238758. .IP \(bu 2
  238759. 1aafd4c5b5 Merge pull request \fI\%#30530\fP from terminalmage/yumpkg\-dnf\-cleanup
  238760. .INDENT 2.0
  238761. .IP \(bu 2
  238762. 2586f71bcf 2015.5 tweaks from \fI\%#30529\fP
  238763. .UNINDENT
  238764. .UNINDENT
  238765. .UNINDENT
  238766. .IP \(bu 2
  238767. \fBPR\fP \fI\%#30599\fP: (\fI\%multani\fP) Documentation formatting fixes
  238768. @ \fI2016\-01\-25 15:37:46 UTC\fP
  238769. .INDENT 2.0
  238770. .IP \(bu 2
  238771. 3a55d11916 Merge pull request \fI\%#30599\fP from multani/fix/docs
  238772. .IP \(bu 2
  238773. 038ecc4acd For doc formatting of salt.states.module
  238774. .IP \(bu 2
  238775. 4062c63b9f Fix doc formatting for yaml_idiosyncrasies
  238776. .IP \(bu 2
  238777. 6efb77bc04 Fix doc formatting of salt.modules.parted
  238778. .IP \(bu 2
  238779. a329adfb21 Add missing salt.queues.* documentation
  238780. .IP \(bu 2
  238781. 2465cf4ba5 Remove non\-existing documentation
  238782. .IP \(bu 2
  238783. 814e64c304 Fix documentation markup in salt.modules.osquery
  238784. .IP \(bu 2
  238785. d2614d6169 Fix documentation markup for salt.modules.ipmi
  238786. .IP \(bu 2
  238787. 276eb3a843 Fix GCE documentation
  238788. .UNINDENT
  238789. .IP \(bu 2
  238790. \fBISSUE\fP \fI\%#10157\fP: (\fI\%martinb3\fP) salt\-cloud actions don\(aqt have very useful error messages (refs: \fI\%#30554\fP)
  238791. .IP \(bu 2
  238792. \fBPR\fP \fI\%#30554\fP: (\fI\%rallytime\fP) Make the salt\-cloud actions output more verbose and helpful
  238793. @ \fI2016\-01\-22 20:23:18 UTC\fP
  238794. .INDENT 2.0
  238795. .IP \(bu 2
  238796. b1e604add3 Merge pull request \fI\%#30554\fP from rallytime/fix\-10157
  238797. .IP \(bu 2
  238798. 6fa952f16d Make the salt\-cloud actions output more verbose and helpful
  238799. .UNINDENT
  238800. .IP \(bu 2
  238801. \fBPR\fP \fI\%#30549\fP: (\fI\%techhat\fP) Salt Virt cleanup
  238802. @ \fI2016\-01\-22 18:45:18 UTC\fP
  238803. .INDENT 2.0
  238804. .IP \(bu 2
  238805. 2eb5a3803d Merge pull request \fI\%#30549\fP from techhat/virtcleanup
  238806. .IP \(bu 2
  238807. 9baab73cd0 Fix copy pasta
  238808. .IP \(bu 2
  238809. 6413c11f29 Salt Virt cleanup
  238810. .UNINDENT
  238811. .IP \(bu 2
  238812. \fBPR\fP \fI\%#30553\fP: (\fI\%techhat\fP) AWS: Support 17\-character IDs
  238813. @ \fI2016\-01\-22 18:41:46 UTC\fP
  238814. .INDENT 2.0
  238815. .IP \(bu 2
  238816. f63b183e43 Merge pull request \fI\%#30553\fP from techhat/awsid
  238817. .IP \(bu 2
  238818. a95fbff4bc Support 17\-character IDs
  238819. .UNINDENT
  238820. .IP \(bu 2
  238821. \fBPR\fP \fI\%#30532\fP: (\fI\%whiteinge\fP) Add execution module for working in sls files
  238822. @ \fI2016\-01\-22 17:25:16 UTC\fP
  238823. .INDENT 2.0
  238824. .IP \(bu 2
  238825. 05d05263ab Merge pull request \fI\%#30532\fP from whiteinge/slsutil\-mod
  238826. .IP \(bu 2
  238827. a57d9984e4 Add slsutil to doc index
  238828. .IP \(bu 2
  238829. 155966c9d2 Add execution module for working in sls files
  238830. .UNINDENT
  238831. .IP \(bu 2
  238832. \fBPR\fP \fI\%#30529\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8 (refs: \fI\%#30530\fP)
  238833. @ \fI2016\-01\-22 17:19:39 UTC\fP
  238834. .INDENT 2.0
  238835. .IP \(bu 2
  238836. 1da1bb9afc Merge pull request \fI\%#30529\fP from terminalmage/2015.5\-2015.8
  238837. .IP \(bu 2
  238838. e85ad690fb Lint fixes
  238839. .IP \(bu 2
  238840. 43829ecee6 Docstring tweaks
  238841. .IP \(bu 2
  238842. 92d5a2a49c Fix spelling
  238843. .IP \(bu 2
  238844. fdc60fc04a Modify pkg.group_installed to reflect changes in yumpkg.py
  238845. .IP \(bu 2
  238846. a118eb5d2e Merge branch \(aq2015.5\(aq into 2015.5\-2015.8
  238847. .IP \(bu 2
  238848. 7798d42272 Merge pull request \fI\%#30484\fP from terminalmage/dnf\-yumpkg\-2015.5
  238849. .INDENT 2.0
  238850. .IP \(bu 2
  238851. 330e26d1da Hide get_locked_packages
  238852. .IP \(bu 2
  238853. 5a637420e8 Backport DNF support to 2015.5 branch
  238854. .UNINDENT
  238855. .UNINDENT
  238856. .IP \(bu 2
  238857. \fBPR\fP \fI\%#30526\fP: (\fI\%twangboy\fP) Added FlushKey to make sure its changes are saved to disk
  238858. @ \fI2016\-01\-22 02:33:13 UTC\fP
  238859. .INDENT 2.0
  238860. .IP \(bu 2
  238861. e366f6a7fd Merge pull request \fI\%#30526\fP from twangboy/reg_flushkey
  238862. .IP \(bu 2
  238863. 23085ffbbb Added FlushKey to make sure its changes are saved to disk
  238864. .UNINDENT
  238865. .IP \(bu 2
  238866. \fBPR\fP \fI\%#30521\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  238867. @ \fI2016\-01\-21 23:05:03 UTC\fP
  238868. .INDENT 2.0
  238869. .IP \(bu 2
  238870. cdc731b8c5 Merge pull request \fI\%#30521\fP from basepi/merge\-forward\-2015.8
  238871. .IP \(bu 2
  238872. f22f5ff851 Fix lint
  238873. .IP \(bu 2
  238874. 117fb205de Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  238875. .INDENT 2.0
  238876. .IP \(bu 2
  238877. b348f804b1 Merge pull request \fI\%#30512\fP from jfindlay/repo_test
  238878. .INDENT 2.0
  238879. .IP \(bu 2
  238880. 66f06f2bd3 disable pkgrepo test for ubuntu 15.10+
  238881. .UNINDENT
  238882. .IP \(bu 2
  238883. a9348dfef8 Merge pull request \fI\%#30478\fP from jtand/pip_8_update
  238884. .INDENT 2.0
  238885. .IP \(bu 2
  238886. 6227368830 Convert version to int, instead of comparing strings to ints
  238887. .IP \(bu 2
  238888. 20384a4810 Added InstallationError to except block
  238889. .IP \(bu 2
  238890. baa274bca9 Updated pip_state to work with pip 8.0
  238891. .UNINDENT
  238892. .IP \(bu 2
  238893. a30147c64f Merge pull request \fI\%#30482\fP from borgstrom/pyobjects_recursive
  238894. .INDENT 2.0
  238895. .IP \(bu 2
  238896. 2c55a7580b Fixup lint errors
  238897. .IP \(bu 2
  238898. b46df0e4b5 Allow recursive salt:// imports
  238899. .IP \(bu 2
  238900. 51bfa16173 Add test to prove that recursive imports are currently broken
  238901. .UNINDENT
  238902. .IP \(bu 2
  238903. 5c7cc51937 Merge pull request \fI\%#30459\fP from jfindlay/pkg_tests
  238904. .INDENT 2.0
  238905. .IP \(bu 2
  238906. fb9972f590 modules.pkg: disable repo int test for ubuntu 15.10
  238907. .UNINDENT
  238908. .IP \(bu 2
  238909. dd2ceb4c07 Merge pull request \fI\%#30443\fP from jtand/boto_vpc_5
  238910. .INDENT 2.0
  238911. .IP \(bu 2
  238912. 2f77152479 Boto uses False for is_default instead of None
  238913. .UNINDENT
  238914. .IP \(bu 2
  238915. 62d9dddced Merge pull request \fI\%#30420\fP from attiasr/patch\-1
  238916. .INDENT 2.0
  238917. .IP \(bu 2
  238918. 4de343c5a1 Backport \fI\%#26853\fP
  238919. .UNINDENT
  238920. .UNINDENT
  238921. .UNINDENT
  238922. .IP \(bu 2
  238923. \fBPR\fP \fI\%#30485\fP: (\fI\%justinta\fP) Updated pip_state to work with pip 8.0 on 2015.8
  238924. @ \fI2016\-01\-21 22:55:38 UTC\fP
  238925. .INDENT 2.0
  238926. .IP \(bu 2
  238927. 019af349af Merge pull request \fI\%#30485\fP from jtand/pip_8_update_2015.8
  238928. .IP \(bu 2
  238929. 9cb17332fa Updated pip_state to work with pip 8.0 on 2015.8
  238930. .UNINDENT
  238931. .IP \(bu 2
  238932. \fBPR\fP \fI\%#30494\fP: (\fI\%isbm\fP) Zypper: info_installed — \(aqerrors\(aq flag change to type \(aqboolean\(aq
  238933. @ \fI2016\-01\-21 22:55:05 UTC\fP
  238934. .INDENT 2.0
  238935. .IP \(bu 2
  238936. 3259fde362 Merge pull request \fI\%#30494\fP from isbm/isbm\-zypper\-nfoinst\-bool\-fix
  238937. .IP \(bu 2
  238938. 4d7659270e Place the boolean check
  238939. .IP \(bu 2
  238940. 58db1c3b16 Fix typo
  238941. .IP \(bu 2
  238942. 43254aa993 Update docstring according to the boolean flag
  238943. .IP \(bu 2
  238944. a7d3e0d5ad Change \(aqerrors\(aq flag to boolean.
  238945. .UNINDENT
  238946. .IP \(bu 2
  238947. \fBPR\fP \fI\%#30506\fP: (\fI\%jacksontj\fP) Properly remove newlines after reading the file
  238948. @ \fI2016\-01\-21 22:53:57 UTC\fP
  238949. .INDENT 2.0
  238950. .IP \(bu 2
  238951. 596892326d Merge pull request \fI\%#30506\fP from jacksontj/2015.8
  238952. .IP \(bu 2
  238953. e1dea6f843 Properly remove newlines after reading the file
  238954. .UNINDENT
  238955. .IP \(bu 2
  238956. \fBISSUE\fP \fI\%#30444\fP: (\fI\%dnd\fP) Cloning linode server with salt\-cloud fails trying to create disk config (refs: \fI\%#30508\fP)
  238957. .IP \(bu 2
  238958. \fBISSUE\fP \fI\%#30432\fP: (\fI\%dnd\fP) Cloning linode server with salt\-cloud requires payment term (refs: \fI\%#30508\fP)
  238959. .IP \(bu 2
  238960. \fBPR\fP \fI\%#30508\fP: (\fI\%rallytime\fP) Fix Linode driver cloning functionality
  238961. @ \fI2016\-01\-21 22:53:36 UTC\fP
  238962. .INDENT 2.0
  238963. .IP \(bu 2
  238964. 15c7aedd46 Merge pull request \fI\%#30508\fP from rallytime/linode\-clone\-fixes
  238965. .IP \(bu 2
  238966. d26ed74bde Make sure the correct profile parameters are being checked when cloning
  238967. .IP \(bu 2
  238968. 1d7e229377 Fix Linode driver cloning functionality.
  238969. .UNINDENT
  238970. .IP \(bu 2
  238971. \fBPR\fP \fI\%#30522\fP: (\fI\%terminalmage\fP) Update git.list_worktree tests to reflect new return data
  238972. @ \fI2016\-01\-21 22:34:20 UTC\fP
  238973. .INDENT 2.0
  238974. .IP \(bu 2
  238975. 79528c59c3 Merge pull request \fI\%#30522\fP from terminalmage/fix\-worktree\-tests
  238976. .IP \(bu 2
  238977. ea0ca70187 Add git.list_worktrees unit test
  238978. .IP \(bu 2
  238979. 393015edbb Remove git.list_worktrees tests
  238980. .UNINDENT
  238981. .IP \(bu 2
  238982. \fBISSUE\fP \fI\%#30465\fP: (\fI\%alandrees\fP) Nested imports with pyobjects (refs: \fI\%#30483\fP, \fI\%#30482\fP)
  238983. .IP \(bu 2
  238984. \fBPR\fP \fI\%#30483\fP: (\fI\%borgstrom\fP) Pyobjects recursive import support (for 2015.8)
  238985. @ \fI2016\-01\-21 15:55:27 UTC\fP
  238986. .INDENT 2.0
  238987. .IP \(bu 2
  238988. 119f025073 Merge pull request \fI\%#30483\fP from borgstrom/pyobjects_recursive\-2015.8
  238989. .IP \(bu 2
  238990. 788b672e3a Fixup lint errors
  238991. .IP \(bu 2
  238992. e148ea2d52 Allow recursive salt:// imports
  238993. .IP \(bu 2
  238994. 6bbac64d3a Add test to prove that recursive imports are currently broken
  238995. .UNINDENT
  238996. .IP \(bu 2
  238997. \fBPR\fP \fI\%#30491\fP: (\fI\%jacksontj\fP) Add multi\-IP support to network state
  238998. @ \fI2016\-01\-21 15:51:42 UTC\fP
  238999. .INDENT 2.0
  239000. .IP \(bu 2
  239001. d8d19cf75d Merge pull request \fI\%#30491\fP from jacksontj/2015.8
  239002. .IP \(bu 2
  239003. 82213555ca Normalize yaml spacing to 2 space
  239004. .IP \(bu 2
  239005. 3d1469b8d9 Add example of multiple addrs/ipv6addrs to docs
  239006. .IP \(bu 2
  239007. 91c8a1b4e4 Add support for multiple IP addresses per interface to rh_ip
  239008. .UNINDENT
  239009. .IP \(bu 2
  239010. \fBPR\fP \fI\%#30496\fP: (\fI\%anlutro\fP) Fix KeyError when adding ignored pillars
  239011. @ \fI2016\-01\-21 15:51:03 UTC\fP
  239012. .INDENT 2.0
  239013. .IP \(bu 2
  239014. 56332ca504 Merge pull request \fI\%#30496\fP from alprs/fix\-ignored_pillars_keyerror
  239015. .IP \(bu 2
  239016. bbcb783621 fix KeyError when adding ignored pillars
  239017. .UNINDENT
  239018. .IP \(bu 2
  239019. \fBPR\fP \fI\%#30359\fP: (\fI\%kingsquirrel152\fP) Removes suspected copy/paste error for zmq_filtering functionailty
  239020. @ \fI2016\-01\-20 18:42:42 UTC\fP
  239021. .INDENT 2.0
  239022. .IP \(bu 2
  239023. e425cbd654 Merge pull request \fI\%#30359\fP from distil/zmq_filtering_bug_fix
  239024. .IP \(bu 2
  239025. 44bfbbf15b Removes suspected copy/paste error.
  239026. .UNINDENT
  239027. .IP \(bu 2
  239028. \fBPR\fP \fI\%#30448\fP: (\fI\%cournape\fP) Fix osx scripts location
  239029. @ \fI2016\-01\-20 17:59:29 UTC\fP
  239030. .INDENT 2.0
  239031. .IP \(bu 2
  239032. 13add7d142 Merge pull request \fI\%#30448\fP from cournape/fix\-osx\-scripts\-location
  239033. .IP \(bu 2
  239034. 3c27ab5310 BUG: fix osx .pkg script locations to match the .plist files.
  239035. .IP \(bu 2
  239036. ed9ab68d3b BUG: fix missing sudo when linking certify cert.
  239037. .UNINDENT
  239038. .IP \(bu 2
  239039. \fBISSUE\fP \fI\%#22820\fP: (\fI\%VynceMontgomery\fP) some docs missing again (cf #22720) (refs: \fI\%#30457\fP)
  239040. .IP \(bu 2
  239041. \fBPR\fP \fI\%#30457\fP: (\fI\%rallytime\fP) Remove fsutils references from modules list
  239042. @ \fI2016\-01\-20 16:43:50 UTC\fP
  239043. .INDENT 2.0
  239044. .IP \(bu 2
  239045. 2b7d20cee7 Merge pull request \fI\%#30457\fP from rallytime/fix\-22820
  239046. .IP \(bu 2
  239047. 3288ff104d Remove fsutils references from modules list
  239048. .UNINDENT
  239049. .IP \(bu 2
  239050. \fBISSUE\fP \fI\%#30442\fP: (\fI\%ssplatt\fP) salt\-cloud linode query only lists private or public IP, not both (refs: \fI\%#30453\fP)
  239051. .IP \(bu 2
  239052. \fBPR\fP \fI\%#30453\fP: (\fI\%rallytime\fP) Make sure private AND public IPs are listed for Linode driver
  239053. @ \fI2016\-01\-20 16:41:51 UTC\fP
  239054. .INDENT 2.0
  239055. .IP \(bu 2
  239056. e706b71871 Merge pull request \fI\%#30453\fP from rallytime/fix\-30442
  239057. .IP \(bu 2
  239058. a1f882f4fe Make sure private AND public IPs are listed for Linode driver
  239059. .UNINDENT
  239060. .IP \(bu 2
  239061. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  239062. .IP \(bu 2
  239063. \fBPR\fP \fI\%#30458\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30062\fP to 2015.8
  239064. @ \fI2016\-01\-20 16:40:23 UTC\fP
  239065. .INDENT 2.0
  239066. .IP \(bu 2
  239067. \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)
  239068. .IP \(bu 2
  239069. 73f372dc98 Merge pull request \fI\%#30458\fP from rallytime/bp\-30062
  239070. .IP \(bu 2
  239071. 9665d9655f Set (pillar_)merge_lists to default for PR \fI\%#30062\fP
  239072. .IP \(bu 2
  239073. 7ea4dbf478 Fix lint for PR30062
  239074. .IP \(bu 2
  239075. e44a30620b Remove recurse_list from pillar_source_merging_strategy and add pillar_merge_list (bool) instead
  239076. .UNINDENT
  239077. .IP \(bu 2
  239078. \fBPR\fP \fI\%#30468\fP: (\fI\%timcharper\fP) make note of s3 role assumption in upcoming changelog
  239079. @ \fI2016\-01\-20 16:28:04 UTC\fP
  239080. .INDENT 2.0
  239081. .IP \(bu 2
  239082. c3fb4006b0 Merge pull request \fI\%#30468\fP from timcharper/2015.8
  239083. .IP \(bu 2
  239084. 721c1c871b make note of s3 role assumption in upcoming changelog
  239085. .UNINDENT
  239086. .IP \(bu 2
  239087. \fBPR\fP \fI\%#30470\fP: (\fI\%whiteinge\fP) Add example of the match_dict format to accept_dict wheel function
  239088. @ \fI2016\-01\-20 16:26:16 UTC\fP
  239089. .INDENT 2.0
  239090. .IP \(bu 2
  239091. c611541916 Merge pull request \fI\%#30470\fP from whiteinge/match_dict
  239092. .IP \(bu 2
  239093. 5034e13f5d Add example of the match_dict format to accept_dict wheel function
  239094. .UNINDENT
  239095. .IP \(bu 2
  239096. \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)
  239097. .IP \(bu 2
  239098. \fBPR\fP \fI\%#30450\fP: (\fI\%gtmanfred\fP) fix extension loading in novaclient
  239099. @ \fI2016\-01\-19 21:16:32 UTC\fP
  239100. .INDENT 2.0
  239101. .IP \(bu 2
  239102. d70e6b312a Merge pull request \fI\%#30450\fP from gtmanfred/2015.8
  239103. .IP \(bu 2
  239104. 4aa6faaf48 fix extension loading in novaclient
  239105. .UNINDENT
  239106. .IP \(bu 2
  239107. \fBISSUE\fP \fI\%#30150\fP: (\fI\%rapenne\-s\fP) file.line reset permissions to 600 (refs: \fI\%#30212\fP, \fI\%#30168\fP)
  239108. .IP \(bu 2
  239109. \fBPR\fP \fI\%#30212\fP: (\fI\%abednarik\fP) Fix incorrect file permissions in file.line
  239110. @ \fI2016\-01\-19 21:15:48 UTC\fP
  239111. .INDENT 2.0
  239112. .IP \(bu 2
  239113. 0af5e16809 Merge pull request \fI\%#30212\fP from abednarik/fix_file_line_permissions
  239114. .IP \(bu 2
  239115. dec15d1357 Fix incorrect file permissions in file.line
  239116. .UNINDENT
  239117. .IP \(bu 2
  239118. \fBISSUE\fP \fI\%#29918\fP: (\fI\%WangWenchao\fP) UnicodeDecodeError when saltutil.sync_modules for Windows salt\-minion 2015.8.3 (refs: \fI\%#29947\fP)
  239119. .IP \(bu 2
  239120. \fBPR\fP \fI\%#29947\fP: (\fI\%jfindlay\fP) fileclient: decode file list from master
  239121. @ \fI2016\-01\-19 20:36:32 UTC\fP
  239122. .INDENT 2.0
  239123. .IP \(bu 2
  239124. 3c12b451fe Merge pull request \fI\%#29947\fP from jfindlay/remote_decode
  239125. .IP \(bu 2
  239126. b9241fb6b0 state: use simple string formatting for messages
  239127. .IP \(bu 2
  239128. f6162f168c fileclient: decode file list from master
  239129. .UNINDENT
  239130. .IP \(bu 2
  239131. \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)
  239132. .IP \(bu 2
  239133. \fBPR\fP \fI\%#30363\fP: (\fI\%terminalmage\fP) Use native "list" subcommand to list git worktrees
  239134. @ \fI2016\-01\-19 20:35:41 UTC\fP
  239135. .INDENT 2.0
  239136. .IP \(bu 2
  239137. 6e8b1e89a5 Merge pull request \fI\%#30363\fP from terminalmage/issue30203
  239138. .IP \(bu 2
  239139. ee40491166 Fix redefined variable
  239140. .IP \(bu 2
  239141. 5f95851987 Use native "list" subcommand to list git worktrees
  239142. .IP \(bu 2
  239143. 911105f27c Fix incorrect missing gitdir file detection
  239144. .UNINDENT
  239145. .IP \(bu 2
  239146. \fBPR\fP \fI\%#30445\fP: (\fI\%justinta\fP) Boto uses False for is_default instead of None
  239147. @ \fI2016\-01\-19 18:28:18 UTC\fP
  239148. .INDENT 2.0
  239149. .IP \(bu 2
  239150. dfb9dec84f Merge pull request \fI\%#30445\fP from jtand/boto_vpc_8
  239151. .IP \(bu 2
  239152. 00943ff1e6 Boto uses False for is_default instead of None
  239153. .UNINDENT
  239154. .IP \(bu 2
  239155. \fBPR\fP \fI\%#30406\fP: (\fI\%frioux\fP) Add an example of how to use file.managed/check_cmd
  239156. @ \fI2016\-01\-19 18:23:49 UTC\fP
  239157. .INDENT 2.0
  239158. .IP \(bu 2
  239159. f9b3f3f038 Merge pull request \fI\%#30406\fP from ZipRecruiter/check\-cmd\-example
  239160. .IP \(bu 2
  239161. 92e0d77a9a Add an example of how to use file.managed/check_cmd
  239162. .UNINDENT
  239163. .IP \(bu 2
  239164. \fBPR\fP \fI\%#30424\fP: (\fI\%isbm\fP) Check if byte strings are properly encoded in UTF\-8
  239165. @ \fI2016\-01\-19 17:52:25 UTC\fP
  239166. .INDENT 2.0
  239167. .IP \(bu 2
  239168. 05ad3dcc94 Merge pull request \fI\%#30424\fP from isbm/isbm\-zypper\-utf\-8\-errors
  239169. .IP \(bu 2
  239170. a0f263f411 Clarify the error message
  239171. .IP \(bu 2
  239172. 12f8e93247 Update documentation accordingly.
  239173. .IP \(bu 2
  239174. 1d384b6abd Add error handling to the RPM broken strings
  239175. .IP \(bu 2
  239176. cf0dad3a6c Rename keywords arguments variable to a default name.
  239177. .IP \(bu 2
  239178. 26aa801342 Check if byte strings are properly encoded in UTF\-8
  239179. .UNINDENT
  239180. .IP \(bu 2
  239181. \fBISSUE\fP \fI\%#30051\fP: (\fI\%joejulian\fP) glusterfs.status fails with glusterfs 3.7 (refs: \fI\%#30075\fP)
  239182. .IP \(bu 2
  239183. \fBPR\fP \fI\%#30405\fP: (\fI\%justinta\fP) Updated glusterfs.py for python2.6 compatibility.
  239184. @ \fI2016\-01\-15 22:50:06 UTC\fP
  239185. .INDENT 2.0
  239186. .IP \(bu 2
  239187. \fBPR\fP \fI\%#30075\fP: (\fI\%joejulian\fP) Convert glusterfs module to use xml (refs: \fI\%#30405\fP)
  239188. .IP \(bu 2
  239189. 1bace55e45 Merge pull request \fI\%#30405\fP from jtand/glusterfs_py26
  239190. .IP \(bu 2
  239191. a332e06c4a Fixed lint error
  239192. .IP \(bu 2
  239193. 522b4990ef Updated the rest of glusterfs.py for python2.6 compatibility
  239194. .IP \(bu 2
  239195. 971ce58cd6 updated list_peers to be python2.6 compatible
  239196. .UNINDENT
  239197. .IP \(bu 2
  239198. \fBPR\fP \fI\%#30396\fP: (\fI\%pass\-by\-value\fP) Remove hardcoded val
  239199. @ \fI2016\-01\-15 22:03:53 UTC\fP
  239200. .INDENT 2.0
  239201. .IP \(bu 2
  239202. cb1c0958bd Merge pull request \fI\%#30396\fP from pass\-by\-value/remove_hardcoded_val
  239203. .IP \(bu 2
  239204. dd90b325e7 Get vm info
  239205. .IP \(bu 2
  239206. 9430ad1465 Remove hardcoded value
  239207. .UNINDENT
  239208. .IP \(bu 2
  239209. \fBPR\fP \fI\%#30391\fP: (\fI\%justinta\fP) Added else statements
  239210. @ \fI2016\-01\-15 19:17:55 UTC\fP
  239211. .INDENT 2.0
  239212. .IP \(bu 2
  239213. \fBPR\fP \fI\%#30389\fP: (\fI\%justinta\fP) Older versions of ipset don\(aqt support comments (refs: \fI\%#30391\fP)
  239214. .IP \(bu 2
  239215. 60737c970e Merge pull request \fI\%#30391\fP from jtand/ipset
  239216. .IP \(bu 2
  239217. 345b056406 Fixed lint error
  239218. .IP \(bu 2
  239219. c20f9b6a87 Added else statements
  239220. .UNINDENT
  239221. .IP \(bu 2
  239222. \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)
  239223. .IP \(bu 2
  239224. \fBPR\fP \fI\%#30375\fP: (\fI\%rallytime\fP) Wrap formatted log statements with six.u() in cloud/__init__.py
  239225. @ \fI2016\-01\-15 18:41:55 UTC\fP
  239226. .INDENT 2.0
  239227. .IP \(bu 2
  239228. \fBPR\fP \fI\%#30374\fP: (\fI\%rallytime\fP) Wrap formatted log statements with six.u() in the VMware module (refs: \fI\%#30375\fP)
  239229. .IP \(bu 2
  239230. 6ac1f6cf54 Merge pull request \fI\%#30375\fP from rallytime/fix\-cloud\-log\-formatting
  239231. .IP \(bu 2
  239232. 5e7fb0c428 Wrap formatted log statements with six.u() in cloud/__init__.py
  239233. .UNINDENT
  239234. .IP \(bu 2
  239235. \fBPR\fP \fI\%#30384\fP: (\fI\%isbm\fP) Bugfix: info_available does not work correctly on SLE 11 series
  239236. @ \fI2016\-01\-15 18:31:57 UTC\fP
  239237. .INDENT 2.0
  239238. .IP \(bu 2
  239239. c478148b60 Merge pull request \fI\%#30384\fP from isbm/isbm\-zypper\-info\-avaiable\-fix
  239240. .IP \(bu 2
  239241. c7bc20e865 Split information, that is compatible with the Zypper\(aqs output on SLE11.
  239242. .UNINDENT
  239243. .IP \(bu 2
  239244. \fBPR\fP \fI\%#30376\fP: (\fI\%pritambaral\fP) Fix FLO_DIR path in 2015.8
  239245. @ \fI2016\-01\-15 18:25:49 UTC\fP
  239246. .INDENT 2.0
  239247. .IP \(bu 2
  239248. 9fe2df82bd Merge pull request \fI\%#30376\fP from pritambaral/fix/flo\-dir
  239249. .IP \(bu 2
  239250. 534879e79f Revert "Raet Salt broken when config moved to package directory"
  239251. .UNINDENT
  239252. .IP \(bu 2
  239253. \fBPR\fP \fI\%#30389\fP: (\fI\%justinta\fP) Older versions of ipset don\(aqt support comments (refs: \fI\%#30391\fP)
  239254. @ \fI2016\-01\-15 17:41:02 UTC\fP
  239255. .INDENT 2.0
  239256. .IP \(bu 2
  239257. 3ac3804ddc Merge pull request \fI\%#30389\fP from jtand/ipset
  239258. .IP \(bu 2
  239259. fac6c3f6ae Fixed some typos from testing
  239260. .IP \(bu 2
  239261. 67d4997316 Older versions of ipset don\(aqt support comments
  239262. .UNINDENT
  239263. .IP \(bu 2
  239264. \fBPR\fP \fI\%#30373\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  239265. @ \fI2016\-01\-15 16:23:38 UTC\fP
  239266. .INDENT 2.0
  239267. .IP \(bu 2
  239268. 4cc9422bf8 Merge pull request \fI\%#30373\fP from basepi/merge\-forward\-2015.8
  239269. .IP \(bu 2
  239270. 5b53bf2597 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  239271. .INDENT 2.0
  239272. .IP \(bu 2
  239273. 5a923b3aa9 Merge pull request \fI\%#30364\fP from rallytime/fix\-30341
  239274. .INDENT 2.0
  239275. .IP \(bu 2
  239276. 79bcf151cb Add TLS version imports and add linode driver documentation notices
  239277. .UNINDENT
  239278. .IP \(bu 2
  239279. f037fd9c27 Merge pull request \fI\%#30184\fP from rallytime/bp\-30166
  239280. .INDENT 2.0
  239281. .IP \(bu 2
  239282. fa6b1b3022 adding split_env call to cp.hash_file to pick up saltenv in file query parameter
  239283. .UNINDENT
  239284. .IP \(bu 2
  239285. 1d8413fd2f Merge pull request \fI\%#30291\fP from thegoodduke/for_fix_ipset
  239286. .INDENT 2.0
  239287. .IP \(bu 2
  239288. 62d6ccf561 ipset: fix test=true & add comment for every entry
  239289. .UNINDENT
  239290. .IP \(bu 2
  239291. 92889db638 Merge pull request \fI\%#30248\fP from jfindlay/2015.5
  239292. .INDENT 2.0
  239293. .IP \(bu 2
  239294. 741f7aba31 add 2015.5.9 release notes
  239295. .UNINDENT
  239296. .IP \(bu 2
  239297. 7a329d89d7 Merge pull request \fI\%#30237\fP from jacobhammons/man\-pages\-prev
  239298. .INDENT 2.0
  239299. .IP \(bu 2
  239300. 2431c4c5c3 Updated man page and doc conf.py copyright year to 2016
  239301. .IP \(bu 2
  239302. fe3da1c174 Updated man pages and doc version for 2015.5.9
  239303. .UNINDENT
  239304. .IP \(bu 2
  239305. 2c0b725924 Merge pull request \fI\%#30207\fP from rallytime/rabbitmq_states_doc_fix
  239306. .INDENT 2.0
  239307. .IP \(bu 2
  239308. 8d48c24182 Use correct spacing in rabbitmq state examples
  239309. .UNINDENT
  239310. .IP \(bu 2
  239311. b49cf910f4 Merge pull request \fI\%#30191\fP from jacobhammons/banner\-prev
  239312. .INDENT 2.0
  239313. .IP \(bu 2
  239314. c3390955b0 Updated doc site banners
  239315. .UNINDENT
  239316. .UNINDENT
  239317. .UNINDENT
  239318. .IP \(bu 2
  239319. \fBPR\fP \fI\%#30372\fP: (\fI\%jacobhammons\fP) Updated man pages for 2015.8.4, updated copyright to 2016
  239320. @ \fI2016\-01\-14 23:18:40 UTC\fP
  239321. .INDENT 2.0
  239322. .IP \(bu 2
  239323. a9edb194a4 Merge pull request \fI\%#30372\fP from jacobhammons/man\-pages
  239324. .IP \(bu 2
  239325. 891ddafcba Updated man pages for 2015.8.4, updated copyright to 2016
  239326. .UNINDENT
  239327. .IP \(bu 2
  239328. \fBPR\fP \fI\%#30370\fP: (\fI\%rallytime\fP) Remove incomplete function
  239329. @ \fI2016\-01\-14 22:49:45 UTC\fP
  239330. .INDENT 2.0
  239331. .IP \(bu 2
  239332. e77585de17 Merge pull request \fI\%#30370\fP from rallytime/remove\-incomplete\-func
  239333. .IP \(bu 2
  239334. e220fa5125 Remove incomplete function
  239335. .UNINDENT
  239336. .IP \(bu 2
  239337. \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)
  239338. .IP \(bu 2
  239339. \fBPR\fP \fI\%#30366\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28702\fP to 2015.8
  239340. @ \fI2016\-01\-14 21:10:03 UTC\fP
  239341. .INDENT 2.0
  239342. .IP \(bu 2
  239343. \fBPR\fP \fI\%#28702\fP: (\fI\%dnd\fP) Pass RBENV_VERSION in env dict, and protect shlex.split (refs: \fI\%#30366\fP)
  239344. .IP \(bu 2
  239345. eb1ecd9732 Merge pull request \fI\%#30366\fP from rallytime/bp\-28702
  239346. .IP \(bu 2
  239347. 4f2274a275 Remove extra line
  239348. .IP \(bu 2
  239349. 048b13cf73 Pass RBENV_VERSION in env dict, and protect shlex.split
  239350. .UNINDENT
  239351. .IP \(bu 2
  239352. \fBPR\fP \fI\%#30361\fP: (\fI\%cro\fP) Flip the sense of the test for proxymodule imports, add more fns for esxi proxy
  239353. @ \fI2016\-01\-14 20:54:08 UTC\fP
  239354. .INDENT 2.0
  239355. .IP \(bu 2
  239356. 40594efc0b Merge pull request \fI\%#30361\fP from cro/esxi\-proxy2
  239357. .IP \(bu 2
  239358. 8f7490ca98 Missed return statement.
  239359. .IP \(bu 2
  239360. 389ede9e3e Lint
  239361. .IP \(bu 2
  239362. 9db34d6ffe Lint
  239363. .IP \(bu 2
  239364. b5c7a46f7a Lint
  239365. .IP \(bu 2
  239366. 1a3b1f2626 Don\(aqt use short variables
  239367. .IP \(bu 2
  239368. b80577182a Remove stub functions.
  239369. .IP \(bu 2
  239370. 58f7fc3285 Don\(aqt use single character variables.
  239371. .IP \(bu 2
  239372. e712664bcf Better comment.
  239373. .IP \(bu 2
  239374. 9e9a37d0d4 Indentation.
  239375. .IP \(bu 2
  239376. 6c9bf76e19 Revert earlier vmware change for ssl cert checking.
  239377. .IP \(bu 2
  239378. 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
  239379. .IP \(bu 2
  239380. 00c4ef6ec2 Need a list
  239381. .IP \(bu 2
  239382. 0da7a6d6d1 Recreate the pr
  239383. .UNINDENT
  239384. .IP \(bu 2
  239385. \fBPR\fP \fI\%#30267\fP: (\fI\%isbm\fP) Fix RPM issues with the date/time and add package attributes filtering
  239386. @ \fI2016\-01\-14 18:00:01 UTC\fP
  239387. .INDENT 2.0
  239388. .IP \(bu 2
  239389. f4118be6e4 Merge pull request \fI\%#30267\fP from isbm/isbm\-zypper\-isotimefix
  239390. .IP \(bu 2
  239391. 18281e7e0b Add "*time_t" as a separate attributes
  239392. .IP \(bu 2
  239393. 4105157cfd Add *time_t to the docs
  239394. .IP \(bu 2
  239395. 78e16a7b00 Construct RPM query dynamically
  239396. .IP \(bu 2
  239397. 6992d74806 Update documentation for the valid package attributes
  239398. .IP \(bu 2
  239399. 6710e4900d Use renamed variable (filter_attrs to attr)
  239400. .IP \(bu 2
  239401. b68e1228e9 Remove unnecessary check for the "name" key
  239402. .IP \(bu 2
  239403. e5b3e77186 Remove key transformations
  239404. .IP \(bu 2
  239405. 9ac52c9123 Add zone to the ISO from unix time
  239406. .IP \(bu 2
  239407. d352c08305 Fix lint: unused import
  239408. .IP \(bu 2
  239409. d571381f76 Update the documentation for the Zypper module
  239410. .IP \(bu 2
  239411. 5651a043e6 Update documentation for lowpkg
  239412. .IP \(bu 2
  239413. 7edb0e8f3f Replace "*_date_iso" with "*_date" and use Unix time as "*_date_time_t"
  239414. .IP \(bu 2
  239415. b2b21f877a Add epoch (note: this is empty on SUSE systems)
  239416. .IP \(bu 2
  239417. 0eebe10d9a Clarify description
  239418. .IP \(bu 2
  239419. a745d9ecdf Fix syntax for the documentation in zypper module
  239420. .IP \(bu 2
  239421. c95c2d24db Fix the documentation syntax
  239422. .IP \(bu 2
  239423. 1fb84538b1 Update documentation
  239424. .IP \(bu 2
  239425. 43ebff4dd7 Return build date in Unix ticks
  239426. .IP \(bu 2
  239427. bdaa1e4d6e Add package architecture attribute
  239428. .IP \(bu 2
  239429. ba64df4def Update documentation
  239430. .IP \(bu 2
  239431. 6e3743dce6 Incorporate lowpkg.info into info_installed
  239432. .IP \(bu 2
  239433. b72b8d5323 Fix the documentation
  239434. .IP \(bu 2
  239435. 181314b20e Add filtering per attributes feature
  239436. .IP \(bu 2
  239437. 39e70ef762 Fix ISO and Unix time of the package for RPM systems on C locale.
  239438. .UNINDENT
  239439. .IP \(bu 2
  239440. \fBISSUE\fP \fI\%#30330\fP: (\fI\%JensRantil\fP) salt.state.file.absent doesn\(aqt document recursiveness (refs: \fI\%#30360\fP)
  239441. .IP \(bu 2
  239442. \fBPR\fP \fI\%#30360\fP: (\fI\%jfindlay\fP) file.remove, file.absent: mention recursive dir removal
  239443. @ \fI2016\-01\-14 17:30:26 UTC\fP
  239444. .INDENT 2.0
  239445. .IP \(bu 2
  239446. b61cb7a238 Merge pull request \fI\%#30360\fP from jfindlay/remove_doc
  239447. .IP \(bu 2
  239448. a21ccd2700 file.remove, file.absent: mention recursive dir removal
  239449. .UNINDENT
  239450. .IP \(bu 2
  239451. \fBISSUE\fP \fI\%#26845\fP: (\fI\%maio\fP) Postgres module (user_exists) doesn\(aqt work with PostgreSQL 9.5 (refs: \fI\%#30221\fP)
  239452. .IP \(bu 2
  239453. \fBPR\fP \fI\%#30221\fP: (\fI\%mbarrien\fP) No rolcatupdate for user_exist in Postgres>=9.5 \fI\%#26845\fP
  239454. @ \fI2016\-01\-14 16:52:49 UTC\fP
  239455. .INDENT 2.0
  239456. .IP \(bu 2
  239457. ba8d128025 Merge pull request \fI\%#30221\fP from mbarrien/postgres\-9.5
  239458. .IP \(bu 2
  239459. a8f2bc7998 No rolcatupdate for user_exist in Postgres>=9.5 \fI\%#26845\fP
  239460. .UNINDENT
  239461. .IP \(bu 2
  239462. \fBPR\fP \fI\%#30358\fP: (\fI\%terminalmage\fP) Add libgit2 version to versions\-report
  239463. @ \fI2016\-01\-14 16:37:28 UTC\fP
  239464. .INDENT 2.0
  239465. .IP \(bu 2
  239466. 4787c2c9ad Merge pull request \fI\%#30358\fP from terminalmage/libgit2\-version
  239467. .IP \(bu 2
  239468. 89fe571791 Add libgit2 version to versions\-report
  239469. .UNINDENT
  239470. .IP \(bu 2
  239471. \fBPR\fP \fI\%#30346\fP: (\fI\%pass\-by\-value\fP) Prevent orphaned volumes
  239472. @ \fI2016\-01\-14 16:37:08 UTC\fP
  239473. .INDENT 2.0
  239474. .IP \(bu 2
  239475. af2ddfd31c Merge pull request \fI\%#30346\fP from pass\-by\-value/aws_vols_attach
  239476. .IP \(bu 2
  239477. 19fce03ee2 Prevent orphaned volumes
  239478. .UNINDENT
  239479. .IP \(bu 2
  239480. \fBPR\fP \fI\%#30349\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30347\fP to 2015.8
  239481. @ \fI2016\-01\-14 16:26:37 UTC\fP
  239482. .INDENT 2.0
  239483. .IP \(bu 2
  239484. \fBPR\fP \fI\%#30347\fP: (\fI\%rallytime\fP) Merge \fI\%#30231\fP with updates to dependency documentation (refs: \fI\%#30349\fP)
  239485. .IP \(bu 2
  239486. \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)
  239487. .IP \(bu 2
  239488. bccb8f3b5b Merge pull request \fI\%#30349\fP from rallytime/bp\-30347
  239489. .IP \(bu 2
  239490. df70afdaa3 Merge \fI\%#30231\fP with updates to dependency documentation
  239491. .IP \(bu 2
  239492. a7c2ad5505 Fix issue where pyVmomi 6.0.0 raises SSL Error for systems using Python2.7+
  239493. .UNINDENT
  239494. .IP \(bu 2
  239495. \fBPR\fP \fI\%#30354\fP: (\fI\%anlutro\fP) Make sure all ignore_missing SLSes are catched
  239496. @ \fI2016\-01\-14 16:24:19 UTC\fP
  239497. .INDENT 2.0
  239498. .IP \(bu 2
  239499. \fBPR\fP \fI\%#19429\fP: (\fI\%ryan\-lane\fP) Add new ignore_missing option to pillar top (refs: \fI\%#30354\fP)
  239500. .IP \(bu 2
  239501. 7ee61f0d62 Merge pull request \fI\%#30354\fP from alprs/fix\-pillar_ignore_missing
  239502. .IP \(bu 2
  239503. 2f662bbc8d make sure \fIall\fP ignore_missing slses are catched
  239504. .UNINDENT
  239505. .IP \(bu 2
  239506. \fBPR\fP \fI\%#30356\fP: (\fI\%nmadhok\fP) Adding code author
  239507. @ \fI2016\-01\-14 16:23:08 UTC\fP
  239508. .INDENT 2.0
  239509. .IP \(bu 2
  239510. 4bdade6010 Merge pull request \fI\%#30356\fP from nmadhok/patch\-1
  239511. .IP \(bu 2
  239512. 581e4f5dc7 Adding code author
  239513. .UNINDENT
  239514. .IP \(bu 2
  239515. \fBPR\fP \fI\%#30340\fP: (\fI\%justinta\fP) Updated seed_test.py for changes made to seed module
  239516. @ \fI2016\-01\-13 22:50:34 UTC\fP
  239517. .INDENT 2.0
  239518. .IP \(bu 2
  239519. d5b8776355 Merge pull request \fI\%#30340\fP from jtand/seed_test_fix
  239520. .IP \(bu 2
  239521. ee764ee952 Updated seed_test.py for changes made to seed module
  239522. .UNINDENT
  239523. .IP \(bu 2
  239524. \fBISSUE\fP \fI\%#26478\fP: (\fI\%rasathus\fP) nested upstart services are not supported (refs: \fI\%#26511\fP)
  239525. .IP \(bu 2
  239526. \fBPR\fP \fI\%#30339\fP: (\fI\%jfindlay\fP) Backport \fI\%#26511\fP
  239527. @ \fI2016\-01\-13 22:35:17 UTC\fP
  239528. .INDENT 2.0
  239529. .IP \(bu 2
  239530. \fBPR\fP \fI\%#26511\fP: (\fI\%rasathus\fP) Adds support for nested upstart scripts in the form of subfolder/serv… (refs: \fI\%#30339\fP)
  239531. .IP \(bu 2
  239532. 3bbed62d07 Merge pull request \fI\%#30339\fP from jfindlay/bp\-26511
  239533. .IP \(bu 2
  239534. 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.
  239535. .UNINDENT
  239536. .IP \(bu 2
  239537. \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)
  239538. .IP \(bu 2
  239539. \fBPR\fP \fI\%#30343\fP: (\fI\%rallytime\fP) Fix 2015.8 from incomplete back\-port
  239540. @ \fI2016\-01\-13 21:56:26 UTC\fP
  239541. .INDENT 2.0
  239542. .IP \(bu 2
  239543. \fBPR\fP \fI\%#30187\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27606\fP to 2015.8 (refs: \fI\%#30343\fP)
  239544. .IP \(bu 2
  239545. \fBPR\fP \fI\%#28431\fP: (\fI\%plastikos\fP) Use a broader test for unset "id" (refs: \fI\%#30343\fP)
  239546. .IP \(bu 2
  239547. \fBPR\fP \fI\%#28423\fP: (\fI\%cachedout\fP) Fix issue with empty str as default minion id (refs: \fI\%#28431\fP)
  239548. .IP \(bu 2
  239549. \fBPR\fP \fI\%#28189\fP: (\fI\%plastikos\fP) Always get default option settings from salt.config (refs: \fI\%#30343\fP, \fI\%#28431\fP)
  239550. .IP \(bu 2
  239551. \fBPR\fP \fI\%#28131\fP: (\fI\%cachedout\fP) Set a fallback HWM (refs: \fI\%#30343\fP)
  239552. .IP \(bu 2
  239553. \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)
  239554. .IP \(bu 2
  239555. 6079a96e6e Merge pull request \fI\%#30343\fP from rallytime/fix\-2015.8
  239556. .IP \(bu 2
  239557. 5eef9d5067 Use a broader test for unset "id"
  239558. .IP \(bu 2
  239559. 460a3c98cc Additional corrections to use option defaults directly from salt.config
  239560. .IP \(bu 2
  239561. 4e53ef0bf6 Always get default option settings from salt.config
  239562. .IP \(bu 2
  239563. 94ee6f88af Set a fallback HWM
  239564. .UNINDENT
  239565. .IP \(bu 2
  239566. \fBPR\fP \fI\%#30342\fP: (\fI\%eliasp\fP) Correct whitespace placement in error message
  239567. @ \fI2016\-01\-13 21:32:26 UTC\fP
  239568. .INDENT 2.0
  239569. .IP \(bu 2
  239570. 7276d808ff Merge pull request \fI\%#30342\fP from eliasp/2015.8\-log\-message\-format
  239571. .IP \(bu 2
  239572. 8e37e36ac7 Correct whitespace placement in error message
  239573. .UNINDENT
  239574. .IP \(bu 2
  239575. \fBISSUE\fP \fI\%#30250\fP: (\fI\%mbarrien\fP) npm.bootstrap state runs even when test=True (refs: \fI\%#30257\fP)
  239576. .IP \(bu 2
  239577. \fBPR\fP \fI\%#30308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30257\fP to 2015.8
  239578. @ \fI2016\-01\-13 19:20:13 UTC\fP
  239579. .INDENT 2.0
  239580. .IP \(bu 2
  239581. \fBPR\fP \fI\%#30257\fP: (\fI\%abednarik\fP) Add test in npm state. (refs: \fI\%#30308\fP)
  239582. .IP \(bu 2
  239583. 10b5728f84 Merge pull request \fI\%#30308\fP from rallytime/bp\-30257
  239584. .IP \(bu 2
  239585. 0b0d73756e Fix typos in nmp module.
  239586. .IP \(bu 2
  239587. deeeb71dda Add test in npm state.
  239588. .UNINDENT
  239589. .IP \(bu 2
  239590. \fBPR\fP \fI\%#30187\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27606\fP to 2015.8 (refs: \fI\%#30343\fP)
  239591. @ \fI2016\-01\-13 19:03:11 UTC\fP
  239592. .INDENT 2.0
  239593. .IP \(bu 2
  239594. \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)
  239595. .IP \(bu 2
  239596. afa61c03db Merge pull request \fI\%#30187\fP from rallytime/bp\-27606
  239597. .IP \(bu 2
  239598. 8ef6d6c6fd Add additional ZMQ tuning parameters necessary for 1,000+ minions per server. Start collecting tuning parameters together in the master config file.
  239599. .UNINDENT
  239600. .IP \(bu 2
  239601. \fBPR\fP \fI\%#30223\fP: (\fI\%serge\-p\fP) adding support for DragonFly BSD
  239602. @ \fI2016\-01\-13 18:24:29 UTC\fP
  239603. .INDENT 2.0
  239604. .IP \(bu 2
  239605. 7e89a460e4 Merge pull request \fI\%#30223\fP from serge\-p/patch\-11
  239606. .IP \(bu 2
  239607. ec798acbcd Update pkgng.py
  239608. .IP \(bu 2
  239609. 45206dfe3d adding support for DragonFly BSD
  239610. .UNINDENT
  239611. .IP \(bu 2
  239612. \fBISSUE\fP \fI\%#28396\fP: (\fI\%ymote\fP) salt\-cloud parallel provisioning (\-P option) failed on 2015.8.1 (refs: \fI\%#30238\fP)
  239613. .IP \(bu 2
  239614. \fBISSUE\fP \fI\%#23824\fP: (\fI\%kiorky\fP) salt.crypt broken in develop (refs: \fI\%#23825\fP)
  239615. .IP \(bu 2
  239616. \fBPR\fP \fI\%#30238\fP: (\fI\%rallytime\fP) Reinit crypto before calling RSA.generate when generating keys.
  239617. @ \fI2016\-01\-13 18:22:11 UTC\fP
  239618. .INDENT 2.0
  239619. .IP \(bu 2
  239620. \fBPR\fP \fI\%#23825\fP: (\fI\%kiorky\fP) Fix crypto (refs: \fI\%#30238\fP)
  239621. .IP \(bu 2
  239622. 5a8da62008 Merge pull request \fI\%#30238\fP from rallytime/fix\-28396
  239623. .IP \(bu 2
  239624. 41d9df45bb Reinit crypto before calling RSA.generate when generating keys.
  239625. .UNINDENT
  239626. .IP \(bu 2
  239627. \fBISSUE\fP \fI\%#24237\fP: (\fI\%Grokzen\fP) Minion schedule return data missing some fields (refs: \fI\%#30246\fP)
  239628. .IP \(bu 2
  239629. \fBPR\fP \fI\%#30246\fP: (\fI\%dmacvicar\fP) Add missing return data to scheduled jobs (\fI\%#24237\fP)
  239630. @ \fI2016\-01\-13 17:51:49 UTC\fP
  239631. .INDENT 2.0
  239632. .IP \(bu 2
  239633. 15707e0ac8 Merge pull request \fI\%#30246\fP from dmacvicar/dmacvicar\-2015.8\-24237
  239634. .IP \(bu 2
  239635. c462139dbb lint: E8713(test\-for\-membership\-should\-be\-not\-in)
  239636. .IP \(bu 2
  239637. 5a1b2ca486 include the \(aqsuccess\(aq field in scheduled jobs return data (part of \fI\%#24237\fP)
  239638. .IP \(bu 2
  239639. f72a4ca42d add retcode to scheduled jobs return data (part of \fI\%#24237\fP)
  239640. .UNINDENT
  239641. .IP \(bu 2
  239642. \fBPR\fP \fI\%#30292\fP: (\fI\%thegoodduke\fP) ipset: fix test=true & add comment for every entry
  239643. @ \fI2016\-01\-13 17:49:16 UTC\fP
  239644. .INDENT 2.0
  239645. .IP \(bu 2
  239646. \fBPR\fP \fI\%#30170\fP: (\fI\%thegoodduke\fP) ipset: fix comment and test (refs: \fI\%#30291\fP, \fI\%#30292\fP)
  239647. .IP \(bu 2
  239648. 8706720148 Merge pull request \fI\%#30292\fP from thegoodduke/fix_ipset
  239649. .IP \(bu 2
  239650. 49d70bff16 ipset: fix test=true & add comment for every entry
  239651. .UNINDENT
  239652. .IP \(bu 2
  239653. \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)
  239654. .IP \(bu 2
  239655. \fBPR\fP \fI\%#30275\fP: (\fI\%abednarik\fP) Add permanent argument in firewalld.
  239656. @ \fI2016\-01\-13 17:44:43 UTC\fP
  239657. .INDENT 2.0
  239658. .IP \(bu 2
  239659. ea607675f5 Merge pull request \fI\%#30275\fP from abednarik/fix_firewalld_ports_permanent
  239660. .IP \(bu 2
  239661. e3d4bf51da Add permanent argument in firewalld.
  239662. .UNINDENT
  239663. .IP \(bu 2
  239664. \fBPR\fP \fI\%#30328\fP: (\fI\%cachedout\fP) Fix file test
  239665. @ \fI2016\-01\-13 17:42:22 UTC\fP
  239666. .INDENT 2.0
  239667. .IP \(bu 2
  239668. f02db44757 Merge pull request \fI\%#30328\fP from cachedout/fix_file_test
  239669. .IP \(bu 2
  239670. dcfba51556 Lint
  239671. .IP \(bu 2
  239672. b9921128af Kill pointless tests
  239673. .IP \(bu 2
  239674. 63c157d0a3 Fix test_managed
  239675. .UNINDENT
  239676. .IP \(bu 2
  239677. \fBPR\fP \fI\%#30310\fP: (\fI\%pass\-by\-value\fP) Empty bucket fix
  239678. @ \fI2016\-01\-13 17:30:45 UTC\fP
  239679. .INDENT 2.0
  239680. .IP \(bu 2
  239681. edd94aea2c Merge pull request \fI\%#30310\fP from pass\-by\-value/empty_bucket_fix
  239682. .IP \(bu 2
  239683. aef5a8898c Add fix for else code path
  239684. .IP \(bu 2
  239685. 9398c44945 Check and report empty S3 bucket
  239686. .UNINDENT
  239687. .IP \(bu 2
  239688. \fBPR\fP \fI\%#30211\fP: (\fI\%techhat\fP) Execute choot on the correct path
  239689. @ \fI2016\-01\-13 16:53:40 UTC\fP
  239690. .INDENT 2.0
  239691. .IP \(bu 2
  239692. f23f0f30d4 Merge pull request \fI\%#30211\fP from techhat/tmppath
  239693. .IP \(bu 2
  239694. 11ac2ff0bf Revert "We\(aqre putting the keys directly in place; \-c isn\(aqt used"
  239695. .IP \(bu 2
  239696. e75b48f5ff We\(aqre putting the keys directly in place; \-c isn\(aqt used
  239697. .IP \(bu 2
  239698. 5d7a0f6d81 Execute choot on the correct path
  239699. .UNINDENT
  239700. .IP \(bu 2
  239701. \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)
  239702. .IP \(bu 2
  239703. \fBPR\fP \fI\%#30309\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30304\fP to 2015.8
  239704. @ \fI2016\-01\-13 16:41:53 UTC\fP
  239705. .INDENT 2.0
  239706. .IP \(bu 2
  239707. \fBPR\fP \fI\%#30304\fP: (\fI\%tkunicki\fP) add spot_prefix to UserData param (refs: \fI\%#30309\fP)
  239708. .IP \(bu 2
  239709. 5154c71127 Merge pull request \fI\%#30309\fP from rallytime/bp\-30304
  239710. .IP \(bu 2
  239711. 4a8cc87b47 add spot_prefix to UserData param
  239712. .UNINDENT
  239713. .IP \(bu 2
  239714. \fBPR\fP \fI\%#30278\fP: (\fI\%nmadhok\fP) If datacenter is specified in the config, then look for managed objects under it
  239715. @ \fI2016\-01\-13 15:29:36 UTC\fP
  239716. .INDENT 2.0
  239717. .IP \(bu 2
  239718. 1624d6cebd Merge pull request \fI\%#30278\fP from nmadhok/2015.8\-samename\-objects\-fix
  239719. .IP \(bu 2
  239720. b0e86afa00 get_mor_by_property needs container_ref to be a positional parameter
  239721. .IP \(bu 2
  239722. 56dfc63f91 If datacenter is specified, start all searches under datacenter
  239723. .IP \(bu 2
  239724. fcf77b738e If datacenter is specified then look under it instead of looking under inventory root folder
  239725. .UNINDENT
  239726. .IP \(bu 2
  239727. \fBPR\fP \fI\%#30305\fP: (\fI\%jacobhammons\fP) Changed examples to use the "example.com" domain instead of "mycompan…
  239728. @ \fI2016\-01\-12 20:42:10 UTC\fP
  239729. .INDENT 2.0
  239730. .IP \(bu 2
  239731. fc9304f7f8 Merge pull request \fI\%#30305\fP from jacobhammons/example\-domain
  239732. .IP \(bu 2
  239733. 53d17f1f85 Changed examples to use the "example.com" domain instead of "mycompany.com" or "company.com"
  239734. .UNINDENT
  239735. .IP \(bu 2
  239736. \fBPR\fP \fI\%#30249\fP: (\fI\%mpreziuso\fP) Fixes performance and timeout issues on win_pkg.install
  239737. @ \fI2016\-01\-12 20:14:54 UTC\fP
  239738. .INDENT 2.0
  239739. .IP \(bu 2
  239740. 3bd02a898f Merge pull request \fI\%#30249\fP from mpreziuso/patch\-2
  239741. .IP \(bu 2
  239742. d6e6e10534 Fixes lint issues
  239743. .IP \(bu 2
  239744. 3251424838 Fixes performance and timeout issues on win_pkg.install
  239745. .UNINDENT
  239746. .IP \(bu 2
  239747. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run
  239748. @ \fI2016\-01\-12 20:11:13 UTC\fP
  239749. .INDENT 2.0
  239750. .IP \(bu 2
  239751. 461a741e14 Merge pull request \fI\%#30217\fP from pass\-by\-value/cloud_actions_dispatch
  239752. .IP \(bu 2
  239753. 1f68ce05bc Fix pylint error
  239754. .IP \(bu 2
  239755. d5b1b60b99 Add CLI Example
  239756. .IP \(bu 2
  239757. 5264449fdb Make sure cloud actions can be called via salt run
  239758. .UNINDENT
  239759. .IP \(bu 2
  239760. \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)
  239761. .IP \(bu 2
  239762. \fBPR\fP \fI\%#30268\fP: (\fI\%terminalmage\fP) Optimize file_tree ext_pillar and update file.managed to allow for binary contents
  239763. @ \fI2016\-01\-12 20:09:19 UTC\fP
  239764. .INDENT 2.0
  239765. .IP \(bu 2
  239766. 4a6b53f329 Merge pull request \fI\%#30268\fP from terminalmage/issue9569
  239767. .IP \(bu 2
  239768. 724b2f36ce Add file_tree/file.managed/contents_pillar example to FAQ
  239769. .IP \(bu 2
  239770. 854c7d9978 Remove old FAQ item referencing gitfs bug in 0.16.x
  239771. .IP \(bu 2
  239772. e9a6d709f9 salt.states.file.managed: Allow for binary contents
  239773. .IP \(bu 2
  239774. 1ba448b619 salt.pillar.file_tree: Optimizations, deprecate raw_data
  239775. .IP \(bu 2
  239776. 650cc0af5c salt.modules.file: Improve docstrings
  239777. .UNINDENT
  239778. .IP \(bu 2
  239779. \fBISSUE\fP \fI\%#29078\fP: (\fI\%Reiner030\fP) boto_secgroup didn\(aqt work as expected in Debian Jessie (refs: \fI\%#30155\fP)
  239780. .IP \(bu 2
  239781. \fBPR\fP \fI\%#30245\fP: (\fI\%rallytime\fP) Boto secgroup/iam_role: Add note stating us\-east\-1 is default region
  239782. @ \fI2016\-01\-12 20:04:31 UTC\fP
  239783. .INDENT 2.0
  239784. .IP \(bu 2
  239785. \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)
  239786. .IP \(bu 2
  239787. dbe7bcdc9a Merge pull request \fI\%#30245\fP from rallytime/botosecgroup\-docs
  239788. .IP \(bu 2
  239789. 406a138f76 Boto secgroup/iam_role: Add note stating us\-east\-1 is default region
  239790. .UNINDENT
  239791. .IP \(bu 2
  239792. \fBPR\fP \fI\%#30299\fP: (\fI\%rallytime\fP) ESXi Proxy minions states are located at salt.states.esxi, not vsphere.
  239793. @ \fI2016\-01\-12 20:03:31 UTC\fP
  239794. .INDENT 2.0
  239795. .IP \(bu 2
  239796. 6b183778f1 Merge pull request \fI\%#30299\fP from rallytime/esxi\-proxy\-doc\-fix
  239797. .IP \(bu 2
  239798. db68fc48a8 Fix CLI Example syntax
  239799. .IP \(bu 2
  239800. 1cb9f29798 ESXi Proxy minions states are located at salt.states.esxi, not vsphere.
  239801. .UNINDENT
  239802. .IP \(bu 2
  239803. \fBPR\fP \fI\%#30202\fP: (\fI\%opdude\fP) Fixed the periodic call to beacons
  239804. @ \fI2016\-01\-12 19:58:44 UTC\fP
  239805. .INDENT 2.0
  239806. .IP \(bu 2
  239807. 903289d3fb Merge pull request \fI\%#30202\fP from Unity\-Technologies/hotfix/beacon_periodic
  239808. .IP \(bu 2
  239809. ea7a86fa7d Fixed the periodic call to beacons
  239810. .UNINDENT
  239811. .IP \(bu 2
  239812. \fBPR\fP \fI\%#30303\fP: (\fI\%jacobhammons\fP) Changed notes to indicate that functions are matched using regular ex…
  239813. @ \fI2016\-01\-12 19:15:16 UTC\fP
  239814. .INDENT 2.0
  239815. .IP \(bu 2
  239816. 48d2bd9e78 Merge pull request \fI\%#30303\fP from jacobhammons/pcre\-match
  239817. .IP \(bu 2
  239818. e5079ab4c9 Changed notes to indicate that functions are matched using regular expressions instead of minions
  239819. .UNINDENT
  239820. .IP \(bu 2
  239821. \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)
  239822. .IP \(bu 2
  239823. \fBPR\fP \fI\%#30284\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: Fix Dulwich env detection and submodule handling
  239824. @ \fI2016\-01\-12 19:11:36 UTC\fP
  239825. .INDENT 2.0
  239826. .IP \(bu 2
  239827. 675ac4b43f Merge pull request \fI\%#30284\fP from terminalmage/issue29684
  239828. .IP \(bu 2
  239829. a746014f7e salt.utils.gitfs: Fix Dulwich env detection and submodule handling
  239830. .UNINDENT
  239831. .IP \(bu 2
  239832. \fBPR\fP \fI\%#30280\fP: (\fI\%jfindlay\fP) add state mocking to release notes
  239833. @ \fI2016\-01\-12 19:10:40 UTC\fP
  239834. .INDENT 2.0
  239835. .IP \(bu 2
  239836. 8f65e822d7 Merge pull request \fI\%#30280\fP from jfindlay/state_mock_doc
  239837. .IP \(bu 2
  239838. 22c1129f02 modules.state.sls,highstate: mock versionadded
  239839. .IP \(bu 2
  239840. 934de30939 add state mock to 2015.8.4 release notes
  239841. .UNINDENT
  239842. .IP \(bu 2
  239843. \fBISSUE\fP \fI\%#30117\fP: (\fI\%MadsRC\fP) Service beacons fails with Stacktraces (refs: \fI\%#30121\fP)
  239844. .IP \(bu 2
  239845. \fBPR\fP \fI\%#30273\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30121\fP to 2015.8
  239846. @ \fI2016\-01\-12 19:10:16 UTC\fP
  239847. .INDENT 2.0
  239848. .IP \(bu 2
  239849. \fBPR\fP \fI\%#30121\fP: (\fI\%MadsRC\fP) Patch for issue \fI\%#30117\fP (refs: \fI\%#30273\fP)
  239850. .IP \(bu 2
  239851. c9ade42d10 Merge pull request \fI\%#30273\fP from rallytime/bp\-30121
  239852. .IP \(bu 2
  239853. c8c30f2105 I fail at linting... Fixed my uppercase/lowercase problem
  239854. .IP \(bu 2
  239855. 0877b33026 Fixed some linting issues
  239856. .IP \(bu 2
  239857. 8ec36497a1 Added note about systemd and uncleanshutdown. Also fixed line lenght of comments to max 80 characters as per PEP0008
  239858. .IP \(bu 2
  239859. 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
  239860. .IP \(bu 2
  239861. 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
  239862. .UNINDENT
  239863. .IP \(bu 2
  239864. \fBPR\fP \fI\%#30301\fP: (\fI\%cachedout\fP) Accept whatever comes into hightstate mock for state tests
  239865. @ \fI2016\-01\-12 18:33:14 UTC\fP
  239866. .INDENT 2.0
  239867. .IP \(bu 2
  239868. 3a5a84a790 Merge pull request \fI\%#30301\fP from cachedout/fix_state_tests
  239869. .IP \(bu 2
  239870. 2c62b464b1 Accept whatever comes into hightstate mock for state tests
  239871. .UNINDENT
  239872. .IP \(bu 2
  239873. \fBISSUE\fP \fI\%#28586\fP: (\fI\%zmalone\fP) file.append does not differentiate between tabs and spaces (refs: \fI\%#30156\fP)
  239874. .IP \(bu 2
  239875. \fBPR\fP \fI\%#30282\fP: (\fI\%cachedout\fP) Fix file.append logic
  239876. @ \fI2016\-01\-12 18:27:30 UTC\fP
  239877. .INDENT 2.0
  239878. .IP \(bu 2
  239879. \fBPR\fP \fI\%#30156\fP: (\fI\%abednarik\fP) Add option in file.append to ignore_whitespace. (refs: \fI\%#30282\fP)
  239880. .IP \(bu 2
  239881. 8438d19815 Merge pull request \fI\%#30282\fP from cachedout/fix_30156
  239882. .IP \(bu 2
  239883. 3f633ff15e Lint
  239884. .IP \(bu 2
  239885. 99dd11dec2 Remove debugging
  239886. .IP \(bu 2
  239887. 35ef585c54 Fix logic error in file.append
  239888. .UNINDENT
  239889. .IP \(bu 2
  239890. \fBPR\fP \fI\%#30289\fP: (\fI\%cro\fP) Fix problems with targeting proxies by grains
  239891. @ \fI2016\-01\-12 18:16:57 UTC\fP
  239892. .INDENT 2.0
  239893. .IP \(bu 2
  239894. 530c9ec6ec Merge pull request \fI\%#30289\fP from cro/proxy_grains_fix
  239895. .IP \(bu 2
  239896. 8362d76440 Add comments.
  239897. .IP \(bu 2
  239898. 4e50962642 Merge branch \(aqproxy_grains_fix\(aq of github.com:cro/salt into proxy_grains_fix
  239899. .INDENT 2.0
  239900. .IP \(bu 2
  239901. 61bb6a9a14 Lint.
  239902. .IP \(bu 2
  239903. 7c35333509 Force a grains sync after we load the proxy\(aqs grains.
  239904. .IP \(bu 2
  239905. 2855ba7da5 Disallow non\-proxyenabled modules and grains
  239906. .UNINDENT
  239907. .IP \(bu 2
  239908. 8fd8f3beb7 Lint.
  239909. .IP \(bu 2
  239910. 144fea02e5 Force a grains sync after we load the proxy\(aqs grains.
  239911. .IP \(bu 2
  239912. 5ecf85017b Disallow non\-proxyenabled modules and grains
  239913. .UNINDENT
  239914. .IP \(bu 2
  239915. \fBPR\fP \fI\%#30293\fP: (\fI\%cro\fP) Ensure we don\(aqt log stuff we shouldn\(aqt
  239916. @ \fI2016\-01\-12 18:04:25 UTC\fP
  239917. .INDENT 2.0
  239918. .IP \(bu 2
  239919. 75b83453cf Merge pull request \fI\%#30293\fP from cro/proxy_log_cleanup
  239920. .IP \(bu 2
  239921. b358fe370c Merge remote\-tracking branch \(aqorigin/proxy_log_cleanup\(aq into proxy_log_cleanup
  239922. .INDENT 2.0
  239923. .IP \(bu 2
  239924. 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).
  239925. .IP \(bu 2
  239926. 8c46de12e4 Ensure we don\(aqt log stuff we shouldn\(aqt.
  239927. .UNINDENT
  239928. .IP \(bu 2
  239929. 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).
  239930. .IP \(bu 2
  239931. 6a86bdc6da Ensure we don\(aqt log stuff we shouldn\(aqt.
  239932. .UNINDENT
  239933. .IP \(bu 2
  239934. \fBPR\fP \fI\%#30279\fP: (\fI\%cachedout\fP) Allow modules to be packed into boto utils
  239935. @ \fI2016\-01\-12 16:53:54 UTC\fP
  239936. .INDENT 2.0
  239937. .IP \(bu 2
  239938. 46681658e0 Merge pull request \fI\%#30279\fP from cachedout/boto_pack
  239939. .IP \(bu 2
  239940. 11d27ba694 Mock config module in utils test
  239941. .IP \(bu 2
  239942. 62a1818287 Lint
  239943. .IP \(bu 2
  239944. cf440036dd Remove unused import
  239945. .IP \(bu 2
  239946. 36d55ea0ad Allow modules to be packed into boto utils
  239947. .UNINDENT
  239948. .IP \(bu 2
  239949. \fBISSUE\fP \fI\%#29951\fP: (\fI\%Reiner030\fP) boto_ec2 params needed (refs: \fI\%#30186\fP)
  239950. .IP \(bu 2
  239951. \fBPR\fP \fI\%#30186\fP: (\fI\%rallytime\fP) Update CLI Examples in boto_ec2 module to reflect correct arg/kwarg positioning
  239952. @ \fI2016\-01\-08 19:00:45 UTC\fP
  239953. .INDENT 2.0
  239954. .IP \(bu 2
  239955. 54b9641330 Merge pull request \fI\%#30186\fP from rallytime/fix\-29951
  239956. .IP \(bu 2
  239957. a943b505cc Update CLI Examples in boto_ec2 module to reflect correct arg/kwarg positioning
  239958. .UNINDENT
  239959. .IP \(bu 2
  239960. \fBISSUE\fP \fI\%#28586\fP: (\fI\%zmalone\fP) file.append does not differentiate between tabs and spaces (refs: \fI\%#30156\fP)
  239961. .IP \(bu 2
  239962. \fBPR\fP \fI\%#30156\fP: (\fI\%abednarik\fP) Add option in file.append to ignore_whitespace. (refs: \fI\%#30282\fP)
  239963. @ \fI2016\-01\-08 16:07:23 UTC\fP
  239964. .INDENT 2.0
  239965. .IP \(bu 2
  239966. 1256fd11e1 Merge pull request \fI\%#30156\fP from abednarik/ignore_whitespace_file_append
  239967. .IP \(bu 2
  239968. af68086e5c Add option in file.append to ignore_whitespace.
  239969. .UNINDENT
  239970. .IP \(bu 2
  239971. \fBPR\fP \fI\%#30189\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30185\fP to 2015.8
  239972. @ \fI2016\-01\-07 23:32:05 UTC\fP
  239973. .INDENT 2.0
  239974. .IP \(bu 2
  239975. \fBPR\fP \fI\%#30185\fP: (\fI\%cachedout\fP) Fix \fI\%#30118\fP (refs: \fI\%#30189\fP)
  239976. .IP \(bu 2
  239977. \fBPR\fP \fI\%#30118\fP: (\fI\%thatch45\fP) State mock (refs: \fI\%#30185\fP, \fI\%#30189\fP)
  239978. .IP \(bu 2
  239979. ad7522c98d Merge pull request \fI\%#30189\fP from rallytime/bp\-30185
  239980. .IP \(bu 2
  239981. 70681bf03b Fix for mock state PR \fI\%#30118\fP
  239982. .IP \(bu 2
  239983. f9480f66d8 change arg to mocked to try test suite collision fix
  239984. .IP \(bu 2
  239985. 2fbdcda703 fix some typos
  239986. .IP \(bu 2
  239987. 6f757b8c81 Add Mock to state.sls
  239988. .IP \(bu 2
  239989. fb0cbd185e fix issue where the name may be in 2 places
  239990. .IP \(bu 2
  239991. 5f0326e521 Start on the state mock system
  239992. .UNINDENT
  239993. .IP \(bu 2
  239994. \fBISSUE\fP \fI\%#9319\fP: (\fI\%gravyboat\fP) Update Reactor docs with an example using salt\-cloud from the commandline. (refs: \fI\%#30215\fP)
  239995. .IP \(bu 2
  239996. \fBISSUE\fP \fI\%#8146\fP: (\fI\%basepi\fP) Make implications of extra accepted keys on timeouts more obvious (refs: \fI\%#30215\fP)
  239997. .IP \(bu 2
  239998. \fBISSUE\fP \fI\%#6853\fP: (\fI\%Psycojoker\fP) Salt formulas should be way more visible in the documentation (refs: \fI\%#30215\fP)
  239999. .IP \(bu 2
  240000. \fBISSUE\fP \fI\%#4381\fP: (\fI\%mlister2006\fP) peer_run: glob, pcre matching. Better docs (refs: \fI\%#30215\fP)
  240001. .IP \(bu 2
  240002. \fBISSUE\fP \fI\%#2229\fP: (\fI\%alekibango\fP) how to debug zeromq problem with hanging salt communication? (refs: \fI\%#30215\fP)
  240003. .IP \(bu 2
  240004. \fBISSUE\fP \fI\%#15042\fP: (\fI\%cvrebert\fP) percent signs not escaped in cron commands (refs: \fI\%#30215\fP)
  240005. .IP \(bu 2
  240006. \fBISSUE\fP \fI\%#14946\fP: (\fI\%ryan\-lane\fP) reload_modules not documented in global state arguments documentation (refs: \fI\%#30215\fP)
  240007. .IP \(bu 2
  240008. \fBISSUE\fP \fI\%#13777\fP: (\fI\%gravyboat\fP) Update top module docs with more concise examples (refs: \fI\%#30215\fP)
  240009. .IP \(bu 2
  240010. \fBISSUE\fP \fI\%#13036\fP: (\fI\%tminn\fP) salstack tomcat module (refs: \fI\%#30215\fP)
  240011. .IP \(bu 2
  240012. \fBPR\fP \fI\%#30215\fP: (\fI\%jacobhammons\fP) Assorted doc bug fixes
  240013. @ \fI2016\-01\-07 21:53:27 UTC\fP
  240014. .INDENT 2.0
  240015. .IP \(bu 2
  240016. 8f30f7045a Merge pull request \fI\%#30215\fP from jacobhammons/doc\-issues
  240017. .IP \(bu 2
  240018. 44ce704206 Updated \fIzmq_monitor\fP docs
  240019. .IP \(bu 2
  240020. 0d2111d397 Assorted doc bug fixes
  240021. .UNINDENT
  240022. .IP \(bu 2
  240023. \fBISSUE\fP \fI\%#30204\fP: (\fI\%anlutro\fP) salt can\(aqt find local cache return file (refs: \fI\%#30206\fP)
  240024. .IP \(bu 2
  240025. \fBPR\fP \fI\%#30206\fP: (\fI\%cachedout\fP) Revert "Fix incorrect file permissions in file.line"
  240026. @ \fI2016\-01\-07 17:55:48 UTC\fP
  240027. .INDENT 2.0
  240028. .IP \(bu 2
  240029. 2000800915 Merge pull request \fI\%#30206\fP from cachedout/revert_30168
  240030. .IP \(bu 2
  240031. ee786293e7 Revert "Fix incorrect file permissions in file.line"
  240032. .UNINDENT
  240033. .IP \(bu 2
  240034. \fBPR\fP \fI\%#30190\fP: (\fI\%jacobhammons\fP) Updated doc site banners
  240035. @ \fI2016\-01\-06 22:37:34 UTC\fP
  240036. .INDENT 2.0
  240037. .IP \(bu 2
  240038. 5632ccb796 Merge pull request \fI\%#30190\fP from jacobhammons/banners
  240039. .IP \(bu 2
  240040. 266023baf1 Updated doc site banners
  240041. .UNINDENT
  240042. .IP \(bu 2
  240043. \fBISSUE\fP \fI\%#30171\fP: (\fI\%jamusj\fP) Python 2.7 dependency in x509.py (refs: \fI\%#30180\fP)
  240044. .IP \(bu 2
  240045. \fBPR\fP \fI\%#30180\fP: (\fI\%jfindlay\fP) modules.x509._dec2hex: add fmt index for 2.6 compat
  240046. @ \fI2016\-01\-06 19:48:50 UTC\fP
  240047. .INDENT 2.0
  240048. .IP \(bu 2
  240049. 9a83247992 Merge pull request \fI\%#30180\fP from jfindlay/2.7x509
  240050. .IP \(bu 2
  240051. 907469d04a modules.x509._dec2hex: add fmt index for 2.6 compat
  240052. .UNINDENT
  240053. .IP \(bu 2
  240054. \fBPR\fP \fI\%#30179\fP: (\fI\%terminalmage\fP) Backport \fI\%#26962\fP to 2015.8 branch
  240055. @ \fI2016\-01\-06 19:48:30 UTC\fP
  240056. .INDENT 2.0
  240057. .IP \(bu 2
  240058. \fBPR\fP \fI\%#26962\fP: (\fI\%ctrlrsf\fP) Add \-\-state\-verbose command line option to salt cmd (refs: \fI\%#30179\fP)
  240059. .IP \(bu 2
  240060. 6516d5b5d0 Merge pull request \fI\%#30179\fP from terminalmage/bp\-26962
  240061. .IP \(bu 2
  240062. 08f2021f52 Fix pylint warnings: unnecessary parens after if keyword
  240063. .IP \(bu 2
  240064. a2ec721661 Add \-\-state\-verbose command line option to salt cmd
  240065. .UNINDENT
  240066. .IP \(bu 2
  240067. \fBISSUE\fP \fI\%#29654\fP: (\fI\%schaarsc\fP) ssh_auth should report missing source (refs: \fI\%#29693\fP)
  240068. .IP \(bu 2
  240069. \fBPR\fP \fI\%#29693\fP: (\fI\%abednarik\fP) Handle missing source file in ssh_auth.
  240070. @ \fI2016\-01\-06 17:13:06 UTC\fP
  240071. .INDENT 2.0
  240072. .IP \(bu 2
  240073. 27df7276bc Merge pull request \fI\%#29693\fP from abednarik/handle_missing_source_in_ssh_auth
  240074. .IP \(bu 2
  240075. fc024e3cf4 Handle missing source file in ssh_auth.
  240076. .UNINDENT
  240077. .IP \(bu 2
  240078. \fBISSUE\fP \fI\%#29078\fP: (\fI\%Reiner030\fP) boto_secgroup didn\(aqt work as expected in Debian Jessie (refs: \fI\%#30155\fP)
  240079. .IP \(bu 2
  240080. \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)
  240081. @ \fI2016\-01\-06 17:09:50 UTC\fP
  240082. .INDENT 2.0
  240083. .IP \(bu 2
  240084. f9863dd9fb Merge pull request \fI\%#30155\fP from rallytime/boto\-secgroup\-docfix
  240085. .IP \(bu 2
  240086. f0381a955f Update boto_secgroup and boto_iam_role docs to only use region OR profile.
  240087. .UNINDENT
  240088. .IP \(bu 2
  240089. \fBISSUE\fP \fI\%#29905\fP: (\fI\%Reiner030\fP) pillar referencing for boto profiles seems not completely working right / docu missing (refs: \fI\%#30158\fP)
  240090. .IP \(bu 2
  240091. \fBPR\fP \fI\%#30158\fP: (\fI\%rallytime\fP) Move _option(value) calls to __salt__[\(aqconfig.option\(aq] in boto utils
  240092. @ \fI2016\-01\-06 16:35:59 UTC\fP
  240093. .INDENT 2.0
  240094. .IP \(bu 2
  240095. e36e8e2e73 Merge pull request \fI\%#30158\fP from rallytime/fix\-29905
  240096. .IP \(bu 2
  240097. 3321c5d408 Move _option(value) calls to __salt__[\(aqconfig.option\(aq] in boto utils
  240098. .UNINDENT
  240099. .IP \(bu 2
  240100. \fBISSUE\fP \fI\%#29770\fP: (\fI\%Ch3LL\fP) disk.usage does not work on AIX (refs: \fI\%#30160\fP)
  240101. .IP \(bu 2
  240102. \fBPR\fP \fI\%#30160\fP: (\fI\%dmurphy18\fP) Fix parsing disk usage for line with no number and AIX values in Kilos
  240103. @ \fI2016\-01\-06 16:34:45 UTC\fP
  240104. .INDENT 2.0
  240105. .IP \(bu 2
  240106. ec009a6812 Merge pull request \fI\%#30160\fP from saltstack/aix_dskusage
  240107. .IP \(bu 2
  240108. 8450df0483 Fix parsing disk usage for line with no number and AIX values in Kilos
  240109. .UNINDENT
  240110. .IP \(bu 2
  240111. \fBISSUE\fP \fI\%#29919\fP: (\fI\%abcfy2\fP) State \fBgrains.append\fP cannot append to a non\-exist grain name. (refs: \fI\%#30162\fP)
  240112. .IP \(bu 2
  240113. \fBPR\fP \fI\%#30162\fP: (\fI\%rallytime\fP) Update list_present and append grains state function docs to be more clear.
  240114. @ \fI2016\-01\-06 16:33:25 UTC\fP
  240115. .INDENT 2.0
  240116. .IP \(bu 2
  240117. f808ffbbbd Merge pull request \fI\%#30162\fP from rallytime/fix\-29919
  240118. .IP \(bu 2
  240119. 9bbd129c60 Update list_present and append grains state function docs to be more clear
  240120. .UNINDENT
  240121. .IP \(bu 2
  240122. \fBISSUE\fP \fI\%#28923\fP: (\fI\%aabognah\fP) passing argument with \(aq=no\(aq to file.line (refs: \fI\%#30163\fP)
  240123. .IP \(bu 2
  240124. \fBPR\fP \fI\%#30163\fP: (\fI\%rallytime\fP) Add warning about using "=" in file.line function
  240125. @ \fI2016\-01\-06 16:32:39 UTC\fP
  240126. .INDENT 2.0
  240127. .IP \(bu 2
  240128. 83245930a6 Merge pull request \fI\%#30163\fP from rallytime/fix\-28923
  240129. .IP \(bu 2
  240130. 0e4f91fca2 Add warning about using "=" in file.line function
  240131. .UNINDENT
  240132. .IP \(bu 2
  240133. \fBPR\fP \fI\%#30164\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  240134. @ \fI2016\-01\-06 16:28:59 UTC\fP
  240135. .INDENT 2.0
  240136. .IP \(bu 2
  240137. 106efd258a Merge pull request \fI\%#30164\fP from basepi/merge\-forward\-2015.8
  240138. .IP \(bu 2
  240139. d73a7d6c4d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  240140. .INDENT 2.0
  240141. .IP \(bu 2
  240142. 9363d6f5b6 Merge pull request \fI\%#30125\fP from abednarik/update_user_home
  240143. .INDENT 2.0
  240144. .IP \(bu 2
  240145. 56544a77f6 Update user home event when createhome is set to False
  240146. .UNINDENT
  240147. .IP \(bu 2
  240148. 1a5d585d91 Merge pull request \fI\%#30127\fP from jsutton/clarify\-documenation\-for\-random_master
  240149. .INDENT 2.0
  240150. .IP \(bu 2
  240151. 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.
  240152. .UNINDENT
  240153. .IP \(bu 2
  240154. 28b1bbbe77 Merge pull request \fI\%#30110\fP from markckimball/fix\-verify_ssl\-in\-joyent\-cloud
  240155. .INDENT 2.0
  240156. .IP \(bu 2
  240157. e1c08cb269 Fixed flag sent to salt.utils.http in order for verify_ssl to work appropriately.
  240158. .UNINDENT
  240159. .IP \(bu 2
  240160. 040412b0b1 Merge pull request \fI\%#30093\fP from zmalone/pillar\-notes
  240161. .INDENT 2.0
  240162. .IP \(bu 2
  240163. 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.
  240164. .UNINDENT
  240165. .IP \(bu 2
  240166. 25edefc93a Merge pull request \fI\%#30097\fP from cachedout/note_on_password_process_list
  240167. .INDENT 2.0
  240168. .IP \(bu 2
  240169. 58aec884ef Note concern about cleartext password in docs for shadow.gen_password
  240170. .UNINDENT
  240171. .IP \(bu 2
  240172. 6b1c3a6bf2 Merge pull request \fI\%#30089\fP from mpreziuso/patch\-1
  240173. .INDENT 2.0
  240174. .IP \(bu 2
  240175. 50533add40 Fixes terminology and adds more accurate details about the algorithms
  240176. .UNINDENT
  240177. .IP \(bu 2
  240178. 200d09385d Merge pull request \fI\%#30086\fP from cachedout/issue_29921
  240179. .INDENT 2.0
  240180. .IP \(bu 2
  240181. 8c29e2dd6a Document that gitfs needs recent libs
  240182. .UNINDENT
  240183. .IP \(bu 2
  240184. 404414bf57 Merge pull request \fI\%#30070\fP from cachedout/issue_27835
  240185. .INDENT 2.0
  240186. .IP \(bu 2
  240187. 60431e342a Add documentation on debugging salt\-ssh
  240188. .UNINDENT
  240189. .UNINDENT
  240190. .UNINDENT
  240191. .IP \(bu 2
  240192. \fBISSUE\fP \fI\%#30150\fP: (\fI\%rapenne\-s\fP) file.line reset permissions to 600 (refs: \fI\%#30212\fP, \fI\%#30168\fP)
  240193. .IP \(bu 2
  240194. \fBPR\fP \fI\%#30168\fP: (\fI\%abednarik\fP) Fix incorrect file permissions in file.line
  240195. @ \fI2016\-01\-06 16:25:08 UTC\fP
  240196. .INDENT 2.0
  240197. .IP \(bu 2
  240198. e5d87a02b9 Merge pull request \fI\%#30168\fP from abednarik/2015.8
  240199. .IP \(bu 2
  240200. 79daa25a15 Fix incorrect file permissions in file.line
  240201. .UNINDENT
  240202. .IP \(bu 2
  240203. \fBPR\fP \fI\%#30154\fP: (\fI\%Oro\fP) Fix file serialize on windows
  240204. @ \fI2016\-01\-05 18:08:40 UTC\fP
  240205. .INDENT 2.0
  240206. .IP \(bu 2
  240207. bed38d1a65 Merge pull request \fI\%#30154\fP from Oro/fix\-file\-serialize\-windows
  240208. .IP \(bu 2
  240209. 071a675f8a Fix file serialize on windows
  240210. .UNINDENT
  240211. .IP \(bu 2
  240212. \fBPR\fP \fI\%#30144\fP: (\fI\%rallytime\fP) Added generic ESXCLI command ability to ESXi Proxy Minion
  240213. @ \fI2016\-01\-05 16:23:38 UTC\fP
  240214. .INDENT 2.0
  240215. .IP \(bu 2
  240216. 7d51d8bb46 Merge pull request \fI\%#30144\fP from rallytime/vsphere\-esxcli\-cmd
  240217. .IP \(bu 2
  240218. 2f9ec5db96 Added generic ESXCLI command ability to ESXi Proxy Minion
  240219. .UNINDENT
  240220. .IP \(bu 2
  240221. \fBISSUE\fP \fI\%#29994\fP: (\fI\%adithep\fP) dockerng.push should not auto tag :latest (refs: \fI\%#30142\fP)
  240222. .IP \(bu 2
  240223. \fBISSUE\fP \fI\%#29993\fP: (\fI\%adithep\fP) Dockerng as a whole is not compatible with v2 registries. (refs: \fI\%#30142\fP)
  240224. .IP \(bu 2
  240225. \fBPR\fP \fI\%#30142\fP: (\fI\%terminalmage\fP) Fix dockerng.push, and allow for multiple images
  240226. @ \fI2016\-01\-04 22:53:50 UTC\fP
  240227. .INDENT 2.0
  240228. .IP \(bu 2
  240229. 1a21b3d46b Merge pull request \fI\%#30142\fP from terminalmage/issue29994
  240230. .IP \(bu 2
  240231. 66698986e4 Fix dockerng.push, and allow for multiple images
  240232. .UNINDENT
  240233. .IP \(bu 2
  240234. \fBISSUE\fP \fI\%#30051\fP: (\fI\%joejulian\fP) glusterfs.status fails with glusterfs 3.7 (refs: \fI\%#30075\fP)
  240235. .IP \(bu 2
  240236. \fBPR\fP \fI\%#30075\fP: (\fI\%joejulian\fP) Convert glusterfs module to use xml (refs: \fI\%#30405\fP)
  240237. @ \fI2016\-01\-04 20:33:58 UTC\fP
  240238. .INDENT 2.0
  240239. .IP \(bu 2
  240240. 5419699bd2 Merge pull request \fI\%#30075\fP from iodatacenters/2015.8_gluster_usexml
  240241. .IP \(bu 2
  240242. 01a8e7ee10 Convert glusterfs module to use xml
  240243. .UNINDENT
  240244. .IP \(bu 2
  240245. \fBPR\fP \fI\%#30129\fP: (\fI\%optix2000\fP) Clean up _uptodate() in git state
  240246. @ \fI2016\-01\-04 20:23:18 UTC\fP
  240247. .INDENT 2.0
  240248. .IP \(bu 2
  240249. a6d94358ed Merge pull request \fI\%#30129\fP from optix2000/2015.8
  240250. .IP \(bu 2
  240251. c68ea6332a No point to recast comments to a string. _uptodate() should only accept strings for comments.
  240252. .IP \(bu 2
  240253. 6c5bac4909 Properly fix concat list issue in git state.
  240254. .UNINDENT
  240255. .IP \(bu 2
  240256. \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)
  240257. .IP \(bu 2
  240258. \fBPR\fP \fI\%#30139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29589\fP to 2015.8
  240259. @ \fI2016\-01\-04 20:22:47 UTC\fP
  240260. .INDENT 2.0
  240261. .IP \(bu 2
  240262. \fBPR\fP \fI\%#29589\fP: (\fI\%abednarik\fP) Added lxc in virt\-what list. (refs: \fI\%#30139\fP)
  240263. .IP \(bu 2
  240264. 68dfa0f5de Merge pull request \fI\%#30139\fP from rallytime/bp\-29589
  240265. .IP \(bu 2
  240266. 2c73990ff2 Added lxc in virt\-what list.
  240267. .UNINDENT
  240268. .IP \(bu 2
  240269. \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)
  240270. .IP \(bu 2
  240271. \fBPR\fP \fI\%#30124\fP: (\fI\%abednarik\fP) Update regex to detect ip alias in OpenBSD.
  240272. @ \fI2016\-01\-04 19:48:28 UTC\fP
  240273. .INDENT 2.0
  240274. .IP \(bu 2
  240275. dd8d3e6f6b Merge pull request \fI\%#30124\fP from abednarik/fix_openbsd_ip_alias
  240276. .IP \(bu 2
  240277. 595a12977d Update regex to detect ip alias in OpenBSD.
  240278. .UNINDENT
  240279. .IP \(bu 2
  240280. \fBPR\fP \fI\%#30133\fP: (\fI\%stanislavb\fP) Fix typo in gpgkey URL
  240281. @ \fI2016\-01\-04 19:29:57 UTC\fP
  240282. .INDENT 2.0
  240283. .IP \(bu 2
  240284. c3014be84b Merge pull request \fI\%#30133\fP from stanislavb/fix\-gpg\-key\-url\-typo
  240285. .IP \(bu 2
  240286. d81f6f7206 Fix typo in gpgkey URL
  240287. .UNINDENT
  240288. .IP \(bu 2
  240289. \fBISSUE\fP \fI\%#29912\fP: (\fI\%rterbush\fP) s3 ext_pillar fails if key and keyid are not provided (refs: \fI\%#30126\fP)
  240290. .IP \(bu 2
  240291. \fBPR\fP \fI\%#30126\fP: (\fI\%stanislavb\fP) Log S3 API error message
  240292. @ \fI2016\-01\-04 19:22:39 UTC\fP
  240293. .INDENT 2.0
  240294. .IP \(bu 2
  240295. c06671a259 Merge pull request \fI\%#30126\fP from stanislavb/2015.8
  240296. .IP \(bu 2
  240297. 8c4a101c8f Log S3 API error message
  240298. .UNINDENT
  240299. .IP \(bu 2
  240300. \fBPR\fP \fI\%#30128\fP: (\fI\%oeuftete\fP) Log retryable transport errors as warnings
  240301. @ \fI2016\-01\-04 19:15:31 UTC\fP
  240302. .INDENT 2.0
  240303. .IP \(bu 2
  240304. aeec21ea65 Merge pull request \fI\%#30128\fP from oeuftete/fileclient\-attempt\-error\-to\-warning
  240305. .IP \(bu 2
  240306. a5d99b13e1 Log retryable transport errors as warnings
  240307. .UNINDENT
  240308. .IP \(bu 2
  240309. \fBISSUE\fP \fI\%#28171\fP: (\fI\%srkunze\fP) cron.rm cannot remove @special entries (refs: \fI\%#30096\fP)
  240310. .IP \(bu 2
  240311. \fBPR\fP \fI\%#30096\fP: (\fI\%cachedout\fP) Add rm_special to crontab module
  240312. @ \fI2016\-01\-01 00:56:08 UTC\fP
  240313. .INDENT 2.0
  240314. .IP \(bu 2
  240315. 941bcaed07 Merge pull request \fI\%#30096\fP from cachedout/issue_28171
  240316. .IP \(bu 2
  240317. 259a0582ac Add docs
  240318. .IP \(bu 2
  240319. ad9424820e Add rm_special to crontab module
  240320. .UNINDENT
  240321. .IP \(bu 2
  240322. \fBPR\fP \fI\%#30106\fP: (\fI\%techhat\fP) Ensure last dir
  240323. @ \fI2016\-01\-01 00:52:54 UTC\fP
  240324. .INDENT 2.0
  240325. .IP \(bu 2
  240326. cb0f80831f Merge pull request \fI\%#30106\fP from techhat/seeddirs
  240327. .IP \(bu 2
  240328. 01d1a49937 Ensure last dir
  240329. .UNINDENT
  240330. .IP \(bu 2
  240331. \fBPR\fP \fI\%#30101\fP: (\fI\%gtmanfred\fP) fix bug where nova driver exits with no adminPass
  240332. @ \fI2015\-12\-31 13:45:16 UTC\fP
  240333. .INDENT 2.0
  240334. .IP \(bu 2
  240335. 6bc968db9a Merge pull request \fI\%#30101\fP from gtmanfred/2015.8
  240336. .IP \(bu 2
  240337. 1b98f7af38 fix bug where nova driver exits with no adminPass
  240338. .UNINDENT
  240339. .IP \(bu 2
  240340. \fBPR\fP \fI\%#30090\fP: (\fI\%techhat\fP) Add argument to isdir()
  240341. @ \fI2015\-12\-30 22:41:02 UTC\fP
  240342. .INDENT 2.0
  240343. .IP \(bu 2
  240344. 3652dbae76 Merge pull request \fI\%#30090\fP from techhat/seeddirs
  240345. .IP \(bu 2
  240346. f7c7d9c7c2 Add lstrip
  240347. .IP \(bu 2
  240348. c70257163b Add argument to isdir()
  240349. .UNINDENT
  240350. .IP \(bu 2
  240351. \fBPR\fP \fI\%#30094\fP: (\fI\%rallytime\fP) Fix doc formatting for cloud.create example in module.py state
  240352. @ \fI2015\-12\-30 22:40:24 UTC\fP
  240353. .INDENT 2.0
  240354. .IP \(bu 2
  240355. a12bda4b30 Merge pull request \fI\%#30094\fP from rallytime/module_state_doc_fix
  240356. .IP \(bu 2
  240357. 8fbee322b9 Fix doc formatting for cloud.create example in module.py state
  240358. .UNINDENT
  240359. .IP \(bu 2
  240360. \fBPR\fP \fI\%#30095\fP: (\fI\%rallytime\fP) Add the list_nodes_select function to linode driver
  240361. @ \fI2015\-12\-30 21:06:58 UTC\fP
  240362. .INDENT 2.0
  240363. .IP \(bu 2
  240364. d7f46b5438 Merge pull request \fI\%#30095\fP from rallytime/select_query_linode
  240365. .IP \(bu 2
  240366. 4731d9442e Add the list_nodes_select function to linode driver
  240367. .UNINDENT
  240368. .IP \(bu 2
  240369. \fBISSUE\fP \fI\%#28763\fP: (\fI\%cybacolt\fP) grain saltversioninfo not returning values by index (refs: \fI\%#30082\fP)
  240370. .IP \(bu 2
  240371. \fBPR\fP \fI\%#30082\fP: (\fI\%abednarik\fP) Fixed saltversioninfo grain return
  240372. @ \fI2015\-12\-30 18:23:17 UTC\fP
  240373. .INDENT 2.0
  240374. .IP \(bu 2
  240375. dce64c0868 Merge pull request \fI\%#30082\fP from abednarik/fix_grain_saltversion_index
  240376. .IP \(bu 2
  240377. 882e9ac9ed Fixed saltversioninfo grain return.
  240378. .UNINDENT
  240379. .IP \(bu 2
  240380. \fBPR\fP \fI\%#30084\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29987\fP to 2015.8
  240381. @ \fI2015\-12\-30 18:19:09 UTC\fP
  240382. .INDENT 2.0
  240383. .IP \(bu 2
  240384. \fBPR\fP \fI\%#29987\fP: (\fI\%pass\-by\-value\fP) Make sure output file works for salt cloud (refs: \fI\%#30084\fP)
  240385. .IP \(bu 2
  240386. 5602b8833e Merge pull request \fI\%#30084\fP from rallytime/bp\-29987
  240387. .IP \(bu 2
  240388. 16e1df90e9 Make sure output file works for salt cloud
  240389. .UNINDENT
  240390. .IP \(bu 2
  240391. \fBPR\fP \fI\%#30071\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  240392. @ \fI2015\-12\-29 23:18:00 UTC\fP
  240393. .INDENT 2.0
  240394. .IP \(bu 2
  240395. 654cab0314 Merge pull request \fI\%#30071\fP from rallytime/merge\-forward\-2015.8
  240396. .IP \(bu 2
  240397. 394d7548c5 Additional spelling fixes for boto_vpc module
  240398. .IP \(bu 2
  240399. f7e58a241c Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  240400. .INDENT 2.0
  240401. .IP \(bu 2
  240402. 84db12212d Merge pull request \fI\%#30059\fP from mpreziuso/patch\-1
  240403. .INDENT 2.0
  240404. .IP \(bu 2
  240405. 1cb1c2da07 Fixes wrong function scope
  240406. .UNINDENT
  240407. .IP \(bu 2
  240408. 1c6c9b1a06 Merge pull request \fI\%#30025\fP from jtand/boto_tests
  240409. .INDENT 2.0
  240410. .IP \(bu 2
  240411. e706642152 Skipping some Boto tests until resolved moto issue
  240412. .UNINDENT
  240413. .IP \(bu 2
  240414. 0f91021c59 Merge pull request \fI\%#29949\fP from aletourneau/2015.5
  240415. .INDENT 2.0
  240416. .IP \(bu 2
  240417. cf855fe262 Fixed trailing white spaces
  240418. .IP \(bu 2
  240419. 864801e002 fixed version
  240420. .IP \(bu 2
  240421. 041d9346c4 Enhanced netscaler docstring
  240422. .UNINDENT
  240423. .IP \(bu 2
  240424. 229d3eb60b Merge pull request \fI\%#29941\fP from cachedout/boto_spelling
  240425. .INDENT 2.0
  240426. .IP \(bu 2
  240427. b11bfd07b8 Fix spelling error in boto_vpc
  240428. .UNINDENT
  240429. .IP \(bu 2
  240430. 69c5ada636 Merge pull request \fI\%#29908\fP from cachedout/issue_29880
  240431. .INDENT 2.0
  240432. .IP \(bu 2
  240433. 4cd77b4118 Allow kwargs to be passed to pacman provide for update func
  240434. .UNINDENT
  240435. .IP \(bu 2
  240436. ad0de4d563 Merge pull request \fI\%#29909\fP from abednarik/freebsd_pkgng_non_interactive_fix
  240437. .INDENT 2.0
  240438. .IP \(bu 2
  240439. 8ac213001a FreeBSD pkgng fix for non\-interactive install.
  240440. .UNINDENT
  240441. .UNINDENT
  240442. .UNINDENT
  240443. .IP \(bu 2
  240444. \fBPR\fP \fI\%#30067\fP: (\fI\%ryan\-lane\fP) Pass in kwargs to boto_secgroup.convert_to_group_ids explicitly
  240445. @ \fI2015\-12\-29 23:04:33 UTC\fP
  240446. .INDENT 2.0
  240447. .IP \(bu 2
  240448. 1bf9853808 Merge pull request \fI\%#30067\fP from lyft/boto\-elb\-stable\-fix
  240449. .IP \(bu 2
  240450. ae22edb1b4 Pass in kwargs to boto_secgroup.convert_to_group_ids explicitly
  240451. .UNINDENT
  240452. .IP \(bu 2
  240453. \fBPR\fP \fI\%#30069\fP: (\fI\%techhat\fP) Ensure that pki_dir exists
  240454. @ \fI2015\-12\-29 23:03:23 UTC\fP
  240455. .INDENT 2.0
  240456. .IP \(bu 2
  240457. 0a37c4de1a Merge pull request \fI\%#30069\fP from techhat/seeddirs
  240458. .IP \(bu 2
  240459. 0f05d49bde Ensure that pki_dir exists
  240460. .UNINDENT
  240461. .IP \(bu 2
  240462. \fBISSUE\fP \fI\%#30045\fP: (\fI\%AkhterAli\fP) salt\-cloud make syndic not possible. (refs: \fI\%#30064\fP)
  240463. .IP \(bu 2
  240464. \fBPR\fP \fI\%#30064\fP: (\fI\%rallytime\fP) Add Syndic documentation to miscellaneous Salt Cloud config options
  240465. @ \fI2015\-12\-29 20:15:45 UTC\fP
  240466. .INDENT 2.0
  240467. .IP \(bu 2
  240468. 896655602e Merge pull request \fI\%#30064\fP from rallytime/fix\-30045
  240469. .IP \(bu 2
  240470. 6176f383e5 Spelling fixes
  240471. .IP \(bu 2
  240472. 83c05729d6 Add Syndic documentation to miscellaneous Salt Cloud config options
  240473. .UNINDENT
  240474. .IP \(bu 2
  240475. \fBPR\fP \fI\%#30049\fP: (\fI\%rallytime\fP) Add some more unit tests for the vsphere execution module
  240476. @ \fI2015\-12\-29 17:07:41 UTC\fP
  240477. .INDENT 2.0
  240478. .IP \(bu 2
  240479. bad6daca93 Merge pull request \fI\%#30049\fP from rallytime/esxi\-unit\-tests
  240480. .IP \(bu 2
  240481. 1a83147986 Remove unnecessary import block
  240482. .IP \(bu 2
  240483. 695107ae6e Add some more unit tests for the vsphere execution module
  240484. .UNINDENT
  240485. .IP \(bu 2
  240486. \fBPR\fP \fI\%#30060\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27104\fP to 2015.8
  240487. @ \fI2015\-12\-29 17:06:58 UTC\fP
  240488. .INDENT 2.0
  240489. .IP \(bu 2
  240490. \fBPR\fP \fI\%#27104\fP: (\fI\%hexedpackets\fP) Remove only the file extension when checking missing cached nodes. (refs: \fI\%#30060\fP)
  240491. .IP \(bu 2
  240492. cedee772d7 Merge pull request \fI\%#30060\fP from rallytime/bp\-27104
  240493. .IP \(bu 2
  240494. f0566c4b8f Remove only the file extension on cached node files instead of replacing every \(aq.p\(aq substring.
  240495. .UNINDENT
  240496. .IP \(bu 2
  240497. \fBISSUE\fP \fI\%#28540\fP: (\fI\%whiteinge\fP) The rest_cherrypy automodule docs are hard to digest (refs: \fI\%#30048\fP)
  240498. .IP \(bu 2
  240499. \fBPR\fP \fI\%#30048\fP: (\fI\%jacobhammons\fP) Remove internal APIs from rest_cherrypy docs.
  240500. @ \fI2015\-12\-28 23:24:13 UTC\fP
  240501. .INDENT 2.0
  240502. .IP \(bu 2
  240503. 87667e2de6 Merge pull request \fI\%#30048\fP from jacobhammons/28540
  240504. .IP \(bu 2
  240505. a04cebd48c Remove internal APIs from rest_cherrypy docs. Refs \fI\%#28540\fP
  240506. .UNINDENT
  240507. .IP \(bu 2
  240508. \fBISSUE\fP \fI\%#29960\fP: (\fI\%anlutro\fP) Circular import in salt.utils.jinja (refs: \fI\%#30043\fP)
  240509. .IP \(bu 2
  240510. \fBPR\fP \fI\%#30043\fP: (\fI\%rallytime\fP) Be explicit about importing from salt.utils.jinja to avoid circular imports
  240511. @ \fI2015\-12\-28 21:35:18 UTC\fP
  240512. .INDENT 2.0
  240513. .IP \(bu 2
  240514. 3c63527313 Merge pull request \fI\%#30043\fP from rallytime/fix\-29960
  240515. .IP \(bu 2
  240516. a157c78bc8 Be explicit about importing from salt.utils.jinja to avoid circular imports
  240517. .UNINDENT
  240518. .IP \(bu 2
  240519. \fBPR\fP \fI\%#30038\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30017\fP to 2015.8
  240520. @ \fI2015\-12\-28 20:41:45 UTC\fP
  240521. .INDENT 2.0
  240522. .IP \(bu 2
  240523. \fBPR\fP \fI\%#30017\fP: (\fI\%anlutro\fP) Change how alternatives states check for installed (refs: \fI\%#30038\fP)
  240524. .IP \(bu 2
  240525. 6cdca314c7 Merge pull request \fI\%#30038\fP from rallytime/bp\-30017
  240526. .IP \(bu 2
  240527. aab35b883e Add versionadded directive for new check_exists function.
  240528. .IP \(bu 2
  240529. ca290ec3e1 change how alternatives states check for installed
  240530. .UNINDENT
  240531. .IP \(bu 2
  240532. \fBPR\fP \fI\%#30036\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29995\fP to 2015.8
  240533. @ \fI2015\-12\-28 20:41:04 UTC\fP
  240534. .INDENT 2.0
  240535. .IP \(bu 2
  240536. \fBPR\fP \fI\%#29995\fP: (\fI\%ruxandraburtica\fP) Location from profiles not correctly set (refs: \fI\%#30036\fP)
  240537. .IP \(bu 2
  240538. c846e7bc86 Merge pull request \fI\%#30036\fP from rallytime/bp\-29995
  240539. .IP \(bu 2
  240540. 129a6d7b9f Added vm_ to the get_location query.
  240541. .IP \(bu 2
  240542. af8d01a367 Updated ec2 file to correctly propagate location.
  240543. .UNINDENT
  240544. .IP \(bu 2
  240545. \fBPR\fP \fI\%#30035\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29895\fP to 2015.8
  240546. @ \fI2015\-12\-28 20:20:58 UTC\fP
  240547. .INDENT 2.0
  240548. .IP \(bu 2
  240549. \fBPR\fP \fI\%#29895\fP: (\fI\%pass\-by\-value\fP) Do not SSH to the instance if deploy is False (refs: \fI\%#30035\fP)
  240550. .IP \(bu 2
  240551. 27b0bd2c34 Merge pull request \fI\%#30035\fP from rallytime/bp\-29895
  240552. .IP \(bu 2
  240553. 09f208fe63 Do not SSH to the instance if deploy is False
  240554. .UNINDENT
  240555. .IP \(bu 2
  240556. \fBPR\fP \fI\%#30034\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29893\fP to 2015.8
  240557. @ \fI2015\-12\-28 20:20:51 UTC\fP
  240558. .INDENT 2.0
  240559. .IP \(bu 2
  240560. \fBPR\fP \fI\%#29893\fP: (\fI\%pass\-by\-value\fP) Add info about VolumeType (refs: \fI\%#30034\fP)
  240561. .IP \(bu 2
  240562. 9e385369b7 Merge pull request \fI\%#30034\fP from rallytime/bp\-29893
  240563. .IP \(bu 2
  240564. 2fcf1590b8 Add info about VolumeType
  240565. .UNINDENT
  240566. .IP \(bu 2
  240567. \fBPR\fP \fI\%#30033\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29876\fP to 2015.8
  240568. @ \fI2015\-12\-28 20:20:42 UTC\fP
  240569. .INDENT 2.0
  240570. .IP \(bu 2
  240571. \fBPR\fP \fI\%#29876\fP: (\fI\%abednarik\fP) Updated Cloud msic section. (refs: \fI\%#30033\fP)
  240572. .IP \(bu 2
  240573. 4d4dfd692a Merge pull request \fI\%#30033\fP from rallytime/bp\-29876
  240574. .IP \(bu 2
  240575. a257249789 Add versionadded to SSH Port docs
  240576. .IP \(bu 2
  240577. 0bb83e51aa Updated Cloud msic section.
  240578. .UNINDENT
  240579. .IP \(bu 2
  240580. \fBPR\fP \fI\%#30029\fP: (\fI\%terminalmage\fP) git.latest: Fix handling of nonexistant branches
  240581. @ \fI2015\-12\-28 19:39:29 UTC\fP
  240582. .INDENT 2.0
  240583. .IP \(bu 2
  240584. a5f7d9c2fc Merge pull request \fI\%#30029\fP from terminalmage/git.latest\-nonexistant\-branch
  240585. .IP \(bu 2
  240586. 0b95894c9f git.latest: Fix handling of nonexistant branches
  240587. .UNINDENT
  240588. .IP \(bu 2
  240589. \fBPR\fP \fI\%#30016\fP: (\fI\%anlutro\fP) Properly normalize locales in locale.gen_locale
  240590. @ \fI2015\-12\-28 15:33:48 UTC\fP
  240591. .INDENT 2.0
  240592. .IP \(bu 2
  240593. e7fe24dc64 Merge pull request \fI\%#30016\fP from alprs/fix\-gen_locale_normalize
  240594. .IP \(bu 2
  240595. 75eb4511d3 properly normalize locales in locale.gen_locale
  240596. .UNINDENT
  240597. .IP \(bu 2
  240598. \fBPR\fP \fI\%#30015\fP: (\fI\%anlutro\fP) locale module: don\(aqt escape the slash in \en
  240599. @ \fI2015\-12\-28 15:31:20 UTC\fP
  240600. .INDENT 2.0
  240601. .IP \(bu 2
  240602. 90611e95f4 Merge pull request \fI\%#30015\fP from alprs/fix\-gen_locale_escaped_newline
  240603. .IP \(bu 2
  240604. 5799729aee locale module: don\(aqt escape the slash in n
  240605. .UNINDENT
  240606. .IP \(bu 2
  240607. \fBPR\fP \fI\%#30022\fP: (\fI\%gqgunhed\fP) Two minor typos fixed
  240608. @ \fI2015\-12\-28 15:22:24 UTC\fP
  240609. .INDENT 2.0
  240610. .IP \(bu 2
  240611. b871ce5310 Merge pull request \fI\%#30022\fP from gqgunhed/winrepo_typo
  240612. .IP \(bu 2
  240613. a052ff016e fixed minor typos and a :ref: link
  240614. .IP \(bu 2
  240615. e47db1a076 Merge remote\-tracking branch \(aqrefs/remotes/saltstack/2015.8\(aq into winrepo_typo
  240616. .IP \(bu 2
  240617. 0c4c8b9b5c Merge remote\-tracking branch \(aqrefs/remotes/saltstack/2015.8\(aq into 2015.8
  240618. .UNINDENT
  240619. .IP \(bu 2
  240620. \fBPR\fP \fI\%#30026\fP: (\fI\%anlutro\fP) states.at: fix wrong variable being used
  240621. @ \fI2015\-12\-28 15:21:23 UTC\fP
  240622. .INDENT 2.0
  240623. .IP \(bu 2
  240624. 4b8ac20d45 Merge pull request \fI\%#30026\fP from alprs/fix\-at_without_tag_job
  240625. .IP \(bu 2
  240626. c0fe9c09bd states.at: fix wrong variable being used
  240627. .UNINDENT
  240628. .IP \(bu 2
  240629. \fBPR\fP \fI\%#29966\fP: (\fI\%multani\fP) Fix bigip state/module documentation + serializers documentation
  240630. @ \fI2015\-12\-23 15:06:46 UTC\fP
  240631. .INDENT 2.0
  240632. .IP \(bu 2
  240633. a3410fdf41 Merge pull request \fI\%#29966\fP from multani/fix/docs
  240634. .IP \(bu 2
  240635. e6e36372a4 doc: fix documentation link for salt.serializers
  240636. .IP \(bu 2
  240637. 23ef472a07 bigip: fix documentation formatting, remove warnings during doc building
  240638. .UNINDENT
  240639. .IP \(bu 2
  240640. \fBPR\fP \fI\%#29904\fP: (\fI\%twangboy\fP) Improvements to osx packaging scripts
  240641. @ \fI2015\-12\-22 21:40:23 UTC\fP
  240642. .INDENT 2.0
  240643. .IP \(bu 2
  240644. \fBPR\fP \fI\%#29858\fP: (\fI\%twangboy\fP) Osx build (refs: \fI\%#29904\fP)
  240645. .IP \(bu 2
  240646. 8f8c8cedd0 Merge pull request \fI\%#29904\fP from twangboy/osx_build
  240647. .IP \(bu 2
  240648. 0be53953af Added function to download and check hashes, added hash files
  240649. .IP \(bu 2
  240650. 7f0b87bfb3 Added pre/post flight scripts (not running)
  240651. .IP \(bu 2
  240652. 9eeb6da7bd Improvements to osx packaging scripts
  240653. .UNINDENT
  240654. .IP \(bu 2
  240655. \fBPR\fP \fI\%#29950\fP: (\fI\%multani\fP) boto_iam: fix deletion of IAM users when using delete_keys=true
  240656. @ \fI2015\-12\-22 18:43:07 UTC\fP
  240657. .INDENT 2.0
  240658. .IP \(bu 2
  240659. 9522bdf4a5 Merge pull request \fI\%#29950\fP from multani/fix/states.boto_iam\-delete\-user
  240660. .IP \(bu 2
  240661. 516c8661f4 boto_iam: fix deletion of IAM users when using delete_keys=true
  240662. .UNINDENT
  240663. .IP \(bu 2
  240664. \fBPR\fP \fI\%#29937\fP: (\fI\%multani\fP) Fix states.boto_iam group users
  240665. @ \fI2015\-12\-22 17:33:02 UTC\fP
  240666. .INDENT 2.0
  240667. .IP \(bu 2
  240668. be95d4d79a Merge pull request \fI\%#29937\fP from multani/fix/states.boto_iam\-group\-users
  240669. .IP \(bu 2
  240670. 5c86a78d75 boto_iam: handle group\(aqs users empty list by removing all users of the group
  240671. .IP \(bu 2
  240672. f3461053df boto_iam: passes connection information down to callees
  240673. .UNINDENT
  240674. .IP \(bu 2
  240675. \fBPR\fP \fI\%#29934\fP: (\fI\%multani\fP) Fix state.boto_iam virtual name
  240676. @ \fI2015\-12\-22 17:16:25 UTC\fP
  240677. .INDENT 2.0
  240678. .IP \(bu 2
  240679. 4f2cc5eba7 Merge pull request \fI\%#29934\fP from multani/fix/boto_iam
  240680. .IP \(bu 2
  240681. 503ede4178 Fix state.boto_iam virtual name
  240682. .UNINDENT
  240683. .IP \(bu 2
  240684. \fBISSUE\fP \fI\%#29933\fP: (\fI\%Reiner030\fP) boto_rds.absent misses pillar variables for final backup (refs: \fI\%#29943\fP)
  240685. .IP \(bu 2
  240686. \fBPR\fP \fI\%#29943\fP: (\fI\%cachedout\fP) Check args correctly in boto_rds
  240687. @ \fI2015\-12\-22 17:15:48 UTC\fP
  240688. .INDENT 2.0
  240689. .IP \(bu 2
  240690. b36302291d Merge pull request \fI\%#29943\fP from cachedout/issue_29933
  240691. .IP \(bu 2
  240692. 8bab5eaeaa Check args correctly in boto_rds
  240693. .UNINDENT
  240694. .IP \(bu 2
  240695. \fBPR\fP \fI\%#29924\fP: (\fI\%gqgunhed\fP) fixed: uptime now working on non\-US Windows
  240696. @ \fI2015\-12\-22 15:03:17 UTC\fP
  240697. .INDENT 2.0
  240698. .IP \(bu 2
  240699. 02ed5b8fd1 Merge pull request \fI\%#29924\fP from gqgunhed/gqgunhed\-2015.8
  240700. .IP \(bu 2
  240701. b67c3b45e1 removed duplicate datetime line
  240702. .IP \(bu 2
  240703. ed8ee91dcf fixed: uptime now working on non\-US Windows
  240704. .UNINDENT
  240705. .IP \(bu 2
  240706. \fBPR\fP \fI\%#29883\fP: (\fI\%serge\-p\fP) fix for nfs mounts in _active_mounts_openbsd()
  240707. @ \fI2015\-12\-21 18:26:49 UTC\fP
  240708. .INDENT 2.0
  240709. .IP \(bu 2
  240710. 5e44639334 Merge pull request \fI\%#29883\fP from serge\-p/patch\-6
  240711. .IP \(bu 2
  240712. dd94332f24 Update mount.py
  240713. .IP \(bu 2
  240714. 9d059a1ea5 fix for nfs mounts in _active_mounts_openbsd()
  240715. .UNINDENT
  240716. .IP \(bu 2
  240717. \fBISSUE\fP \fI\%#29866\fP: (\fI\%tony\fP) spm(1) command should obey Saltfile (refs: \fI\%#29894\fP)
  240718. .IP \(bu 2
  240719. \fBPR\fP \fI\%#29894\fP: (\fI\%techhat\fP) Support Saltfile in SPM
  240720. @ \fI2015\-12\-21 18:03:07 UTC\fP
  240721. .INDENT 2.0
  240722. .IP \(bu 2
  240723. 08fd81cc3d Merge pull request \fI\%#29894\fP from techhat/spmsaltfile
  240724. .IP \(bu 2
  240725. 279ec61274 Support Saltfile in SPM
  240726. .UNINDENT
  240727. .IP \(bu 2
  240728. \fBPR\fP \fI\%#29856\fP: (\fI\%rallytime\fP) Added some initial unit tests for the salt.modules.vsphere.py file
  240729. @ \fI2015\-12\-21 17:12:20 UTC\fP
  240730. .INDENT 2.0
  240731. .IP \(bu 2
  240732. 4f46255044 Merge pull request \fI\%#29856\fP from rallytime/esxi\-unit\-tests
  240733. .IP \(bu 2
  240734. b908ebd123 Added some initial unit tests for the salt.modules.vsphere.py file
  240735. .UNINDENT
  240736. .IP \(bu 2
  240737. \fBPR\fP \fI\%#29855\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29740\fP to 2015.8
  240738. @ \fI2015\-12\-21 17:11:28 UTC\fP
  240739. .INDENT 2.0
  240740. .IP \(bu 2
  240741. \fBPR\fP \fI\%#29740\fP: (\fI\%kiorky\fP) Type mess in git.latest (refs: \fI\%#29855\fP)
  240742. .IP \(bu 2
  240743. 096fec6182 Merge pull request \fI\%#29855\fP from rallytime/bp\-29740
  240744. .IP \(bu 2
  240745. 4c5e277367 Type mess in git.latest
  240746. .UNINDENT
  240747. .IP \(bu 2
  240748. \fBPR\fP \fI\%#29890\fP: (\fI\%multani\fP) Various documentation fixes
  240749. @ \fI2015\-12\-21 16:25:15 UTC\fP
  240750. .INDENT 2.0
  240751. .IP \(bu 2
  240752. 02ab9b8858 Merge pull request \fI\%#29890\fP from multani/fix/docs
  240753. .IP \(bu 2
  240754. 5aa0e9b1e0 Fix documentation typo for pillars
  240755. .IP \(bu 2
  240756. f2b41d04d7 Fix rendering issues for Cherrypy netapi documentation.
  240757. .IP \(bu 2
  240758. 6922da46dc doc: fix warnings + some rendering issues
  240759. .UNINDENT
  240760. .IP \(bu 2
  240761. \fBPR\fP \fI\%#29850\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  240762. @ \fI2015\-12\-18 21:33:49 UTC\fP
  240763. .INDENT 2.0
  240764. .IP \(bu 2
  240765. 50f48c4bf3 Merge pull request \fI\%#29850\fP from basepi/merge\-forward\-2015.8
  240766. .IP \(bu 2
  240767. 7402599c62 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  240768. .IP \(bu 2
  240769. f43f3d166c Merge pull request \fI\%#29730\fP from rallytime/fix\-24698
  240770. .INDENT 2.0
  240771. .IP \(bu 2
  240772. 120fd5fdf0 Update docker\-py version requirement to 0.6.0 for dockerio.py files
  240773. .UNINDENT
  240774. .IP \(bu 2
  240775. c393a4175a Merge pull request \fI\%#29715\fP from rallytime/fix\-23343
  240776. .INDENT 2.0
  240777. .IP \(bu 2
  240778. a0ed857c37 Install correct package version, if provided, for npm state.
  240779. .UNINDENT
  240780. .IP \(bu 2
  240781. 1310afbbc2 Merge pull request \fI\%#29721\fP from terminalmage/nested\-output\-multiline\-fix
  240782. .INDENT 2.0
  240783. .IP \(bu 2
  240784. 761be9cb93 Fix display of multiline strings when iterating over a list
  240785. .UNINDENT
  240786. .IP \(bu 2
  240787. 52cc07cec9 Merge pull request \fI\%#29646\fP from rallytime/fix\-29488
  240788. .INDENT 2.0
  240789. .IP \(bu 2
  240790. c5fa9e9351 Don\(aqt stacktrace on kwargs.get if kwargs=None
  240791. .UNINDENT
  240792. .UNINDENT
  240793. .IP \(bu 2
  240794. \fBPR\fP \fI\%#29811\fP: (\fI\%anlutro\fP) influxdb: add retention policy module functions
  240795. @ \fI2015\-12\-18 17:19:02 UTC\fP
  240796. .INDENT 2.0
  240797. .IP \(bu 2
  240798. 05d2aaaef2 Merge pull request \fI\%#29811\fP from alprs/feature\-influxdb_retention
  240799. .IP \(bu 2
  240800. 51088d938a add tests, rename a function to more closely mirror influxdb
  240801. .IP \(bu 2
  240802. 785da17a67 missing comma
  240803. .IP \(bu 2
  240804. 7e9e9a1030 influxdb: add retention policy module functions
  240805. .UNINDENT
  240806. .IP \(bu 2
  240807. \fBISSUE\fP \fI\%#29396\fP: (\fI\%Ch3LL\fP) Windows 2012 Multi\-Master ZMQError (refs: \fI\%#29814\fP)
  240808. .IP \(bu 2
  240809. \fBPR\fP \fI\%#29814\fP: (\fI\%basepi\fP) [2015.8][Windows] Fix multi\-master on windows
  240810. @ \fI2015\-12\-18 17:16:52 UTC\fP
  240811. .INDENT 2.0
  240812. .IP \(bu 2
  240813. 7eefaac58a Merge pull request \fI\%#29814\fP from basepi/multi\-master.windows.29396
  240814. .IP \(bu 2
  240815. 2405501d75 Add documentation for tcp ipc_mode and multi\-master
  240816. .IP \(bu 2
  240817. 307e867980 For tcp ipc_mode, give each minion different pub/pull ports
  240818. .IP \(bu 2
  240819. 5a21893e82 Fix ipc_mode check in windows
  240820. .UNINDENT
  240821. .IP \(bu 2
  240822. \fBPR\fP \fI\%#29819\fP: (\fI\%rallytime\fP) Add esxi module and state to docs build
  240823. @ \fI2015\-12\-18 16:20:27 UTC\fP
  240824. .INDENT 2.0
  240825. .IP \(bu 2
  240826. fb4eb28645 Merge pull request \fI\%#29819\fP from rallytime/esxi\-docs
  240827. .IP \(bu 2
  240828. e7c5863468 Add esxi module and state to docs build
  240829. .UNINDENT
  240830. .IP \(bu 2
  240831. \fBPR\fP \fI\%#29832\fP: (\fI\%jleimbach\fP) Fixed typo in order to use the keyboard module for RHEL without systemd
  240832. @ \fI2015\-12\-18 16:04:57 UTC\fP
  240833. .INDENT 2.0
  240834. .IP \(bu 2
  240835. e865c787a4 Merge pull request \fI\%#29832\fP from jleimbach/fix\-keyboard.py\-for\-rhel\-without\-systemd
  240836. .IP \(bu 2
  240837. 7b72b3c52c Fixed typo in order to use the keyboard module for RHEL without systemd
  240838. .UNINDENT
  240839. .IP \(bu 2
  240840. \fBPR\fP \fI\%#29803\fP: (\fI\%rallytime\fP) Add vSphere module to doc ref module tree
  240841. @ \fI2015\-12\-17 18:52:56 UTC\fP
  240842. .INDENT 2.0
  240843. .IP \(bu 2
  240844. 4044f3bb93 Merge pull request \fI\%#29803\fP from rallytime/vsphere\-docs
  240845. .IP \(bu 2
  240846. 3b7f5540ec Add vSphere module to doc ref module tree
  240847. .UNINDENT
  240848. .IP \(bu 2
  240849. \fBISSUE\fP \fI\%#29751\fP: (\fI\%ether42\fP) mod_hostname behavior is systemd dependant (refs: \fI\%#29767\fP)
  240850. .IP \(bu 2
  240851. \fBPR\fP \fI\%#29767\fP: (\fI\%abednarik\fP) Hosts file update in mod_hostname.
  240852. @ \fI2015\-12\-17 18:31:18 UTC\fP
  240853. .INDENT 2.0
  240854. .IP \(bu 2
  240855. 9b4c2194f6 Merge pull request \fI\%#29767\fP from abednarik/network_mod_hpstname_fix
  240856. .IP \(bu 2
  240857. eebd3e3e4a Hosts file update in mod_hostname.
  240858. .UNINDENT
  240859. .IP \(bu 2
  240860. \fBISSUE\fP \fI\%#29631\fP: (\fI\%joshughes\fP) pygit2: git submodules cause traceback in file_list (refs: \fI\%#29772\fP)
  240861. .IP \(bu 2
  240862. \fBPR\fP \fI\%#29772\fP: (\fI\%terminalmage\fP) pygit2: skip submodules when traversing tree
  240863. @ \fI2015\-12\-17 18:23:16 UTC\fP
  240864. .INDENT 2.0
  240865. .IP \(bu 2
  240866. 0c65eeb82b Merge pull request \fI\%#29772\fP from terminalmage/issue29631
  240867. .IP \(bu 2
  240868. 8c4ea64b0d pygit2: skip submodules when traversing tree
  240869. .UNINDENT
  240870. .IP \(bu 2
  240871. \fBPR\fP \fI\%#29765\fP: (\fI\%gtmanfred\fP) allow nova driver to be boot from volume
  240872. @ \fI2015\-12\-17 18:20:33 UTC\fP
  240873. .INDENT 2.0
  240874. .IP \(bu 2
  240875. 1b430b251f Merge pull request \fI\%#29765\fP from gtmanfred/2015.8
  240876. .IP \(bu 2
  240877. e95f7561c5 cloudnetworks should be making public_ips a list
  240878. .IP \(bu 2
  240879. ec7e45fbfb add documentation for boot from volume on nova driver
  240880. .IP \(bu 2
  240881. eafcc5e3ac Add boot from volume for openstack nova
  240882. .UNINDENT
  240883. .IP \(bu 2
  240884. \fBPR\fP \fI\%#29773\fP: (\fI\%l2ol33rt\fP) Append missing wget in debian installation guide
  240885. @ \fI2015\-12\-17 17:29:18 UTC\fP
  240886. .INDENT 2.0
  240887. .IP \(bu 2
  240888. c4f226f31e Merge pull request \fI\%#29773\fP from l2ol33rt/debian_install_docfix
  240889. .IP \(bu 2
  240890. 64cb4b0540 Append missing wget in debian installation guide
  240891. .UNINDENT
  240892. .IP \(bu 2
  240893. \fBPR\fP \fI\%#29800\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29769\fP to 2015.8
  240894. @ \fI2015\-12\-17 17:28:52 UTC\fP
  240895. .INDENT 2.0
  240896. .IP \(bu 2
  240897. \fBPR\fP \fI\%#29769\fP: (\fI\%pass\-by\-value\fP) Add documentation about scopes (GCE) (refs: \fI\%#29800\fP)
  240898. .IP \(bu 2
  240899. aca4da3abc Merge pull request \fI\%#29800\fP from rallytime/bp\-29769
  240900. .IP \(bu 2
  240901. 10bfcb8cb0 Add documentation about scopes (GCE)
  240902. .UNINDENT
  240903. .IP \(bu 2
  240904. \fBPR\fP \fI\%#29775\fP: (\fI\%paulnivin\fP) Change listen requisite resolution from name to ID declaration
  240905. @ \fI2015\-12\-16 22:56:03 UTC\fP
  240906. .INDENT 2.0
  240907. .IP \(bu 2
  240908. ab61f78295 Merge pull request \fI\%#29775\fP from lyft/listen\-id\-declaration\-resolution\-stable
  240909. .IP \(bu 2
  240910. ff3a809c11 Change listen requisite resolution from name to ID declaration
  240911. .UNINDENT
  240912. .IP \(bu 2
  240913. \fBPR\fP \fI\%#29754\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29719\fP to 2015.8
  240914. @ \fI2015\-12\-16 17:25:51 UTC\fP
  240915. .INDENT 2.0
  240916. .IP \(bu 2
  240917. \fBPR\fP \fI\%#29719\fP: (\fI\%gqgunhed\fP) fixed: include all items from kern.disks split (refs: \fI\%#29754\fP)
  240918. .IP \(bu 2
  240919. 5af64b64f2 Merge pull request \fI\%#29754\fP from rallytime/bp\-29719
  240920. .IP \(bu 2
  240921. ed275977e3 fixed: include all items from kern.disks split
  240922. .UNINDENT
  240923. .IP \(bu 2
  240924. \fBPR\fP \fI\%#29713\fP: (\fI\%The\-Loeki\fP) Pillar\-based cloud providers still forcing use of deprecated \(aqprovider\(aq
  240925. @ \fI2015\-12\-16 14:51:31 UTC\fP
  240926. .INDENT 2.0
  240927. .IP \(bu 2
  240928. \fBPR\fP \fI\%#27953\fP: (\fI\%The\-Loeki\fP) Fix CloudStack cloud for new \(aqdriver\(aq syntax (refs: \fI\%#29713\fP)
  240929. .IP \(bu 2
  240930. b3f17fdaf8 Merge pull request \fI\%#29713\fP from The\-Loeki/patch\-1
  240931. .IP \(bu 2
  240932. 35fe2a5c18 lint fix
  240933. .IP \(bu 2
  240934. dfab6f8186 Update __init__.py
  240935. .IP \(bu 2
  240936. 65e2d9ac1e Pillar\-based cloud providers still forcing use of deprecated \(aqprovider\(aq
  240937. .UNINDENT
  240938. .IP \(bu 2
  240939. \fBISSUE\fP \fI\%#14634\fP: (\fI\%Sacro\fP) \(aqunless\(aq documentation isn\(aqt logically plausible (refs: \fI\%#29729\fP)
  240940. .IP \(bu 2
  240941. \fBPR\fP \fI\%#29729\fP: (\fI\%rallytime\fP) Further clarifications on "unless" and "onlyif" requisites.
  240942. @ \fI2015\-12\-16 14:45:06 UTC\fP
  240943. .INDENT 2.0
  240944. .IP \(bu 2
  240945. 1f4810be0f Merge pull request \fI\%#29729\fP from rallytime/fix\-14634
  240946. .IP \(bu 2
  240947. 45b77fb288 Add note about shell truthiness vs python truthiness
  240948. .IP \(bu 2
  240949. 3bfb87c031 Spelling fixes
  240950. .IP \(bu 2
  240951. 15c466cc12 Further clarifications on "unless" and "onlyif" requisites.
  240952. .UNINDENT
  240953. .IP \(bu 2
  240954. \fBISSUE\fP \fI\%#29736\fP: (\fI\%akissa\fP) Pillar sqlite3 examples incorrect (refs: \fI\%#29737\fP)
  240955. .IP \(bu 2
  240956. \fBPR\fP \fI\%#29737\fP: (\fI\%akissa\fP) fix pillar sqlite3 documentation examples
  240957. @ \fI2015\-12\-16 14:41:57 UTC\fP
  240958. .INDENT 2.0
  240959. .IP \(bu 2
  240960. 7084f79199 Merge pull request \fI\%#29737\fP from akissa/fix\-pillar\-sqlite3\-examples
  240961. .IP \(bu 2
  240962. 1c98f8d609 fix pillar sqlite3 documentation examples
  240963. .UNINDENT
  240964. .IP \(bu 2
  240965. \fBISSUE\fP \fI\%#29741\fP: (\fI\%akissa\fP) Pillar Sqlite3 does not honour database config option when using salt\-call (refs: \fI\%#29743\fP)
  240966. .IP \(bu 2
  240967. \fBPR\fP \fI\%#29743\fP: (\fI\%akissa\fP) fix pillar sqlite not honouring config options
  240968. @ \fI2015\-12\-16 14:40:27 UTC\fP
  240969. .INDENT 2.0
  240970. .IP \(bu 2
  240971. e977096409 Merge pull request \fI\%#29743\fP from akissa/fix\-pillar\-sqlite3\-does\-not\-honour\-config
  240972. .IP \(bu 2
  240973. 6184fb1ae1 fix pillar sqlite not honouring config options
  240974. .UNINDENT
  240975. .IP \(bu 2
  240976. \fBISSUE\fP \fI\%#29152\fP: (\fI\%guettli\fP) docs for states.postgres_user.present: name and password twice? (refs: \fI\%#29723\fP)
  240977. .IP \(bu 2
  240978. \fBPR\fP \fI\%#29723\fP: (\fI\%rallytime\fP) Clarify db_user and db_password kwargs for postgres_user.present state function
  240979. @ \fI2015\-12\-15 23:58:43 UTC\fP
  240980. .INDENT 2.0
  240981. .IP \(bu 2
  240982. 2cea0b0a2d Merge pull request \fI\%#29723\fP from rallytime/fix\-29152
  240983. .IP \(bu 2
  240984. 8d8fdd0a27 Clarify db_user and db_password kwargs for postgres_user.present state function
  240985. .UNINDENT
  240986. .IP \(bu 2
  240987. \fBISSUE\fP \fI\%#29154\fP: (\fI\%guettli\fP) [Docs] for cmd.run. Missing link to details for "stateful" (refs: \fI\%#29722\fP)
  240988. .IP \(bu 2
  240989. \fBPR\fP \fI\%#29722\fP: (\fI\%rallytime\fP) Link "stateful" kwargs to definition of what "stateful" means for cmd state.
  240990. @ \fI2015\-12\-15 23:25:48 UTC\fP
  240991. .INDENT 2.0
  240992. .IP \(bu 2
  240993. 30eab23c43 Merge pull request \fI\%#29722\fP from rallytime/fix\-29154
  240994. .IP \(bu 2
  240995. 5c045a86af Link "stateful" kwargs to definition of what "stateful" means for cmd state.
  240996. .UNINDENT
  240997. .IP \(bu 2
  240998. \fBISSUE\fP \fI\%#29091\fP: (\fI\%gravyboat\fP) Salt pillar best practices should show 2 matchers in base (refs: \fI\%#29724\fP)
  240999. .IP \(bu 2
  241000. \fBPR\fP \fI\%#29724\fP: (\fI\%rallytime\fP) Add examples of using multiple matching levels to Pillar docs
  241001. @ \fI2015\-12\-15 23:02:32 UTC\fP
  241002. .INDENT 2.0
  241003. .IP \(bu 2
  241004. c9ca1a371e Merge pull request \fI\%#29724\fP from rallytime/fix\-29091
  241005. .IP \(bu 2
  241006. 45080f3629 Add examples of using multiple matching levels to Pillar docs
  241007. .UNINDENT
  241008. .IP \(bu 2
  241009. \fBPR\fP \fI\%#29726\fP: (\fI\%cachedout\fP) Disable some boto tests per resolution of moto issue
  241010. @ \fI2015\-12\-15 22:15:35 UTC\fP
  241011. .INDENT 2.0
  241012. .IP \(bu 2
  241013. 4985cc57f1 Merge pull request \fI\%#29726\fP from cachedout/disable_moto_2015_8
  241014. .IP \(bu 2
  241015. d19827fd3a Disable some boto tests per resolution of moto issue
  241016. .UNINDENT
  241017. .IP \(bu 2
  241018. \fBISSUE\fP \fI\%#25723\fP: (\fI\%jamesog\fP) file.directory fails in test mode when using recurse ignore_files (refs: \fI\%#29708\fP)
  241019. .IP \(bu 2
  241020. \fBPR\fP \fI\%#29708\fP: (\fI\%lagesag\fP) Fix test=True for file.directory with recurse ignore_files/ignore_dirs.
  241021. @ \fI2015\-12\-15 19:15:14 UTC\fP
  241022. .INDENT 2.0
  241023. .IP \(bu 2
  241024. aba82abffd Merge pull request \fI\%#29708\fP from lagesag/fix\-file\-directory\-test\-mode
  241025. .IP \(bu 2
  241026. a872b5eecf PyLint fix \fI\%#25723\fP
  241027. .IP \(bu 2
  241028. 3e46cb9213 Fix test=True for file.directory with recurse ignore_files/ignore_dirs.
  241029. .UNINDENT
  241030. .IP \(bu 2
  241031. \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)
  241032. .IP \(bu 2
  241033. \fBPR\fP \fI\%#29642\fP: (\fI\%cachedout\fP) Correctly restart daemonized minions on failure
  241034. @ \fI2015\-12\-15 19:02:40 UTC\fP
  241035. .INDENT 2.0
  241036. .IP \(bu 2
  241037. 7c38dec0ad Merge pull request \fI\%#29642\fP from cachedout/issue_29199
  241038. .IP \(bu 2
  241039. 8b2c6817cf Sleep before restart
  241040. .IP \(bu 2
  241041. 4105e2abfb Correctly restart daemonized minions on failure
  241042. .UNINDENT
  241043. .IP \(bu 2
  241044. \fBPR\fP \fI\%#29599\fP: (\fI\%cachedout\fP) Clean up minion shutdown
  241045. @ \fI2015\-12\-15 19:01:35 UTC\fP
  241046. .INDENT 2.0
  241047. .IP \(bu 2
  241048. bd918394c3 Merge pull request \fI\%#29599\fP from cachedout/clean_minion_shutdown
  241049. .IP \(bu 2
  241050. 0b917971fe Log at debug level instead
  241051. .IP \(bu 2
  241052. a04280ceb3 Re\-raise error to preserve restart behavior
  241053. .IP \(bu 2
  241054. dc480e332a Clean up warning on failed master ping.
  241055. .IP \(bu 2
  241056. 049a3dbbbc Additional fixes.
  241057. .IP \(bu 2
  241058. 8a4969b730 Clean up minion shutdown
  241059. .UNINDENT
  241060. .IP \(bu 2
  241061. \fBPR\fP \fI\%#29675\fP: (\fI\%clinta\fP) allow returning all refs
  241062. @ \fI2015\-12\-15 18:55:36 UTC\fP
  241063. .INDENT 2.0
  241064. .IP \(bu 2
  241065. 31eb291caf Merge pull request \fI\%#29675\fP from clinta/git\-ls\-remote\-noref
  241066. .IP \(bu 2
  241067. f8c34b0c76 version updated
  241068. .IP \(bu 2
  241069. 73b169e7dd lint, remove trainling whitespace
  241070. .IP \(bu 2
  241071. 8400e68426 allow returning all refs
  241072. .UNINDENT
  241073. .IP \(bu 2
  241074. \fBPR\fP \fI\%#29683\fP: (\fI\%rallytime\fP) Catch more specific error to pass the error message through elegantly.
  241075. @ \fI2015\-12\-15 18:41:54 UTC\fP
  241076. .INDENT 2.0
  241077. .IP \(bu 2
  241078. 7c50533d3f Merge pull request \fI\%#29683\fP from rallytime/vsan_fixes
  241079. .IP \(bu 2
  241080. afc003079e Catch more specifc error to pass the error message through elegantly.
  241081. .UNINDENT
  241082. .IP \(bu 2
  241083. \fBPR\fP \fI\%#29687\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  241084. @ \fI2015\-12\-15 18:38:46 UTC\fP
  241085. .INDENT 2.0
  241086. .IP \(bu 2
  241087. 30499e4896 Merge pull request \fI\%#29687\fP from basepi/merge\-forward\-2015.8
  241088. .IP \(bu 2
  241089. b51cba59c0 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  241090. .INDENT 2.0
  241091. .IP \(bu 2
  241092. f606c23ea8 Merge pull request \fI\%#29673\fP from rallytime/fix\-29661
  241093. .INDENT 2.0
  241094. .IP \(bu 2
  241095. e4af7a1157 Default value should be False and not \(aqFalse\(aq
  241096. .UNINDENT
  241097. .IP \(bu 2
  241098. f77c8e7baf Merge pull request \fI\%#29527\fP from jfindlay/2015.5
  241099. .INDENT 2.0
  241100. .IP \(bu 2
  241101. 1a8044f0c9 2015.5.7 notes: add note about not being released
  241102. .UNINDENT
  241103. .UNINDENT
  241104. .UNINDENT
  241105. .IP \(bu 2
  241106. \fBISSUE\fP \fI\%#27611\fP: (\fI\%benburkert\fP) PR #26818 broke git.latest with :mirror/:bare (refs: \fI\%#29681\fP)
  241107. .IP \(bu 2
  241108. \fBPR\fP \fI\%#29681\fP: (\fI\%clinta\fP) fix bare/mirror in git.latest
  241109. @ \fI2015\-12\-15 18:37:16 UTC\fP
  241110. .INDENT 2.0
  241111. .IP \(bu 2
  241112. 3c427e82bf Merge pull request \fI\%#29681\fP from clinta/git\-mirror
  241113. .IP \(bu 2
  241114. b387072a6f fix bare/mirror in git.latest
  241115. .UNINDENT
  241116. .IP \(bu 2
  241117. \fBPR\fP \fI\%#29644\fP: (\fI\%rallytime\fP) Fixed a couple more ESXi proxy minion bugs
  241118. @ \fI2015\-12\-14 18:36:28 UTC\fP
  241119. .INDENT 2.0
  241120. .IP \(bu 2
  241121. fe0778dad5 Merge pull request \fI\%#29644\fP from rallytime/esxi\-fixes
  241122. .IP \(bu 2
  241123. 577d5487a3 Fixed a couple more ESXi proxy minion bugs
  241124. .UNINDENT
  241125. .IP \(bu 2
  241126. \fBPR\fP \fI\%#29645\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29558\fP to 2015.8
  241127. @ \fI2015\-12\-14 18:11:38 UTC\fP
  241128. .INDENT 2.0
  241129. .IP \(bu 2
  241130. \fBPR\fP \fI\%#29558\fP: (\fI\%ruxandraburtica\fP) Returning security group when no VPC id is given (refs: \fI\%#29645\fP)
  241131. .IP \(bu 2
  241132. ef2c9e3f61 Merge pull request \fI\%#29645\fP from rallytime/bp\-29558
  241133. .IP \(bu 2
  241134. 2cf9374342 Replaced tabs with spaces.
  241135. .IP \(bu 2
  241136. 5e7e3fe682 Returning security group when no VPC id is given, even if the group is not in EC2\-classic.
  241137. .UNINDENT
  241138. .IP \(bu 2
  241139. \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)
  241140. .IP \(bu 2
  241141. \fBISSUE\fP \fI\%#29581\fP: (\fI\%zmalone\fP) Complaints about pyOpenSSL version on Saltstack 2015.8.3 (refs: \fI\%#29632\fP)
  241142. .IP \(bu 2
  241143. \fBPR\fP \fI\%#29632\fP: (\fI\%jfindlay\fP) reduce severity of tls module __virtual__ logging
  241144. @ \fI2015\-12\-11 20:11:32 UTC\fP
  241145. .INDENT 2.0
  241146. .IP \(bu 2
  241147. a2a7f1527b Merge pull request \fI\%#29632\fP from jfindlay/tls_virt
  241148. .IP \(bu 2
  241149. 3ed6a052fd modules.tls.__virtual__: don\(aqt spam everyone\(aqs error log
  241150. .IP \(bu 2
  241151. 76a200e780 modules.tls.__virtual__: refactor cert path comment
  241152. .IP \(bu 2
  241153. 0a0532e598 modules.tls.__virtual__: remove redundant parens
  241154. .UNINDENT
  241155. .IP \(bu 2
  241156. \fBISSUE\fP \fI\%#29598\fP: (\fI\%javicacheiro\fP) Duplicated MTU entry added (refs: \fI\%#29606\fP)
  241157. .IP \(bu 2
  241158. \fBPR\fP \fI\%#29606\fP: (\fI\%abednarik\fP) Fixed duplicate mtu entry in RedHat 7 network configuration.
  241159. @ \fI2015\-12\-11 17:24:45 UTC\fP
  241160. .INDENT 2.0
  241161. .IP \(bu 2
  241162. f6f3aa6613 Merge pull request \fI\%#29606\fP from abednarik/remove_duplicate_mtu_entry_rh7_net_template
  241163. .IP \(bu 2
  241164. afb2f887ba Fixed duplicate mtu entry in RedHat 7 network configuration.
  241165. .UNINDENT
  241166. .IP \(bu 2
  241167. \fBPR\fP \fI\%#29613\fP: (\fI\%rallytime\fP) Various ESXi Proxy Minion Bug Fixes
  241168. @ \fI2015\-12\-11 17:18:58 UTC\fP
  241169. .INDENT 2.0
  241170. .IP \(bu 2
  241171. c7e73bc4c8 Merge pull request \fI\%#29613\fP from rallytime/esxi\-fixes
  241172. .IP \(bu 2
  241173. aa5dd88b6f Various ESXi Proxy Minion Bug Fixes
  241174. .UNINDENT
  241175. .IP \(bu 2
  241176. \fBISSUE\fP \fI\%#26364\fP: (\fI\%cedwards\fP) [freebsd] TCP transport not working in 2015.8.0rc3 (refs: \fI\%#29628\fP)
  241177. .IP \(bu 2
  241178. \fBPR\fP \fI\%#29628\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt create io_loop before fork
  241179. @ \fI2015\-12\-11 17:15:11 UTC\fP
  241180. .INDENT 2.0
  241181. .IP \(bu 2
  241182. a56c763423 Merge pull request \fI\%#29628\fP from DSRCompany/bug/26364_freebsd_tcp
  241183. .IP \(bu 2
  241184. 729ffcae36 Don\(aqt create io_loop before fork
  241185. .UNINDENT
  241186. .IP \(bu 2
  241187. \fBPR\fP \fI\%#29609\fP: (\fI\%basepi\fP) [2015.8][salt\-ssh] Add ability to set salt\-ssh command umask in roster
  241188. @ \fI2015\-12\-10 22:52:27 UTC\fP
  241189. .INDENT 2.0
  241190. .IP \(bu 2
  241191. 41b8117237 Merge pull request \fI\%#29609\fP from basepi/salt\-ssh.umask.29574
  241192. .IP \(bu 2
  241193. 0afa5b0d5d Add cmd_umask to roster docs
  241194. .IP \(bu 2
  241195. 5c03f892bc Allow setting the cmd_umask from within the roster
  241196. .UNINDENT
  241197. .IP \(bu 2
  241198. \fBISSUE\fP \fI\%#29586\fP: (\fI\%basepi\fP) Orchestrate doesn\(aqt handle minion error properly (refs: \fI\%#29603\fP)
  241199. .IP \(bu 2
  241200. \fBISSUE\fP \fI\%#29546\fP: (\fI\%jefferyharrell\fP) Can\(aqt seem to get orchestrate to recognize a failed state (refs: \fI\%#29603\fP)
  241201. .IP \(bu 2
  241202. \fBPR\fP \fI\%#29603\fP: (\fI\%basepi\fP) Fix orchestration failure\-checking
  241203. @ \fI2015\-12\-10 21:23:57 UTC\fP
  241204. .INDENT 2.0
  241205. .IP \(bu 2
  241206. 1e394f5ab1 Merge pull request \fI\%#29603\fP from basepi/orchestrate.failures.29546
  241207. .IP \(bu 2
  241208. 2bdcadaa27 Remove unnecessary and
  241209. .IP \(bu 2
  241210. 501f91a388 Fix error in failure checking for salt.state within orchestration
  241211. .UNINDENT
  241212. .IP \(bu 2
  241213. \fBISSUE\fP \fI\%#29584\fP: (\fI\%kwilliams057\fP) dockerng image\-present fails when trying to pull from registry (refs: \fI\%#29597\fP)
  241214. .IP \(bu 2
  241215. \fBPR\fP \fI\%#29597\fP: (\fI\%terminalmage\fP) dockerng: Prevent exception when API response contains empty dictionary
  241216. @ \fI2015\-12\-10 19:57:42 UTC\fP
  241217. .INDENT 2.0
  241218. .IP \(bu 2
  241219. b5b80b9324 Merge pull request \fI\%#29597\fP from terminalmage/issue29584
  241220. .IP \(bu 2
  241221. d68067b5db dockerng: Prevent exception when API response contains empty dictionary
  241222. .UNINDENT
  241223. .IP \(bu 2
  241224. \fBISSUE\fP \fI\%#29585\fP: (\fI\%job\fP) cidr argument in salt.modules.network.ip_addrs6() is broken (refs: \fI\%#29587\fP)
  241225. .IP \(bu 2
  241226. \fBPR\fP \fI\%#29596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29587\fP to 2015.8
  241227. @ \fI2015\-12\-10 19:57:18 UTC\fP
  241228. .INDENT 2.0
  241229. .IP \(bu 2
  241230. \fBPR\fP \fI\%#29587\fP: (\fI\%job\fP) Fix the \(aqcidr\(aq arg in salt.modules.network.ip_addrs6() (refs: \fI\%#29596\fP)
  241231. .IP \(bu 2
  241232. ffb54cced7 Merge pull request \fI\%#29596\fP from rallytime/bp\-29587
  241233. .IP \(bu 2
  241234. bfb75ce363 Fix the \(aqcidr\(aq arg in salt.modules.network.ip_addrs6()
  241235. .UNINDENT
  241236. .IP \(bu 2
  241237. \fBPR\fP \fI\%#29588\fP: (\fI\%rallytime\fP) Added ESXi Proxy Minion Tutorial
  241238. @ \fI2015\-12\-10 16:17:51 UTC\fP
  241239. .INDENT 2.0
  241240. .IP \(bu 2
  241241. 08dd663a27 Merge pull request \fI\%#29588\fP from rallytime/esxi\-proxy\-tutorial
  241242. .IP \(bu 2
  241243. 5a2bb260d3 Added ESXi Proxy Minion Tutorial
  241244. .UNINDENT
  241245. .IP \(bu 2
  241246. \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)
  241247. .IP \(bu 2
  241248. \fBPR\fP \fI\%#29572\fP: (\fI\%gtmanfred\fP) [nova] use old discover_extensions if available
  241249. @ \fI2015\-12\-09 17:35:42 UTC\fP
  241250. .INDENT 2.0
  241251. .IP \(bu 2
  241252. fe5db23863 Merge pull request \fI\%#29572\fP from gtmanfred/2015.8
  241253. .IP \(bu 2
  241254. d0ffa520f4 use old discover_extensions if available
  241255. .UNINDENT
  241256. .IP \(bu 2
  241257. \fBISSUE\fP \fI\%#29009\fP: (\fI\%LoveIsGrief\fP) git.latest doesn\(aqt checkout submodules (refs: \fI\%#29545\fP)
  241258. .IP \(bu 2
  241259. \fBPR\fP \fI\%#29545\fP: (\fI\%terminalmage\fP) git.latest: init submodules if not yet initialized
  241260. @ \fI2015\-12\-09 16:19:42 UTC\fP
  241261. .INDENT 2.0
  241262. .IP \(bu 2
  241263. ecbc60ba05 Merge pull request \fI\%#29545\fP from terminalmage/issue29009
  241264. .IP \(bu 2
  241265. 6619503aec git.latest: init submodules if not yet initialized
  241266. .UNINDENT
  241267. .IP \(bu 2
  241268. \fBPR\fP \fI\%#29548\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29449\fP to 2015.8
  241269. @ \fI2015\-12\-09 16:19:07 UTC\fP
  241270. .INDENT 2.0
  241271. .IP \(bu 2
  241272. \fBPR\fP \fI\%#29449\fP: (\fI\%AkhterAli\fP) Adding message for null public IP (refs: \fI\%#29548\fP)
  241273. .IP \(bu 2
  241274. 3b2c93a2e5 Merge pull request \fI\%#29548\fP from rallytime/bp\-29449
  241275. .IP \(bu 2
  241276. 3715cd7d65 Adding message for null public IP
  241277. .UNINDENT
  241278. .IP \(bu 2
  241279. \fBPR\fP \fI\%#29547\fP: (\fI\%rallytime\fP) Refactored ESXCLI\-based functions to accept a list of esxi_hosts
  241280. @ \fI2015\-12\-09 16:08:03 UTC\fP
  241281. .INDENT 2.0
  241282. .IP \(bu 2
  241283. fd67903bf9 Merge pull request \fI\%#29547\fP from rallytime/esxi\-proxy
  241284. .IP \(bu 2
  241285. 469648dd07 Refactored ESXCLI\-based functions to accept a list of esxi_hosts
  241286. .UNINDENT
  241287. .IP \(bu 2
  241288. \fBPR\fP \fI\%#29563\fP: (\fI\%anlutro\fP) Fix a call to deprecated method in python\-influxdb
  241289. @ \fI2015\-12\-09 16:00:24 UTC\fP
  241290. .INDENT 2.0
  241291. .IP \(bu 2
  241292. 21437f9235 Merge pull request \fI\%#29563\fP from alprs/fix\-influx_deprecated_method
  241293. .IP \(bu 2
  241294. 7c69c177ed update test
  241295. .IP \(bu 2
  241296. 46d7d92069 fix a call to deprecated method in python\-influxdb
  241297. .UNINDENT
  241298. .IP \(bu 2
  241299. \fBPR\fP \fI\%#29565\fP: (\fI\%bdrung\fP) Fix typos and missing release note
  241300. @ \fI2015\-12\-09 15:59:21 UTC\fP
  241301. .INDENT 2.0
  241302. .IP \(bu 2
  241303. f29e0a7021 Merge pull request \fI\%#29565\fP from bdrung/2015.8
  241304. .IP \(bu 2
  241305. b96d8ff1d9 Minor update to release notes for missing fix
  241306. .IP \(bu 2
  241307. e72354aac4 Fix typo specfic \-> specific
  241308. .IP \(bu 2
  241309. 5708355762 Fix typo comparsion \-> comparison
  241310. .UNINDENT
  241311. .IP \(bu 2
  241312. \fBPR\fP \fI\%#29540\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  241313. @ \fI2015\-12\-08 21:27:01 UTC\fP
  241314. .INDENT 2.0
  241315. .IP \(bu 2
  241316. 25d3a75d8c Merge pull request \fI\%#29540\fP from basepi/merge\-forward\-2015.8
  241317. .IP \(bu 2
  241318. e59364ad1d Fix failing unit test
  241319. .IP \(bu 2
  241320. 9673fd0937 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  241321. .INDENT 2.0
  241322. .IP \(bu 2
  241323. 867d550271 Merge pull request \fI\%#29539\fP from basepi/merge\-forward\-2015.5
  241324. .INDENT 2.0
  241325. .IP \(bu 2
  241326. 2c9c4ba430 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  241327. .IP \(bu 2
  241328. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  241329. .INDENT 2.0
  241330. .IP \(bu 2
  241331. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  241332. .UNINDENT
  241333. .UNINDENT
  241334. .IP \(bu 2
  241335. de7f3d5a59 Merge pull request \fI\%#29504\fP from rallytime/fix\-12072
  241336. .INDENT 2.0
  241337. .IP \(bu 2
  241338. 8357c95dc2 Document userdata_file option for EC2 driver
  241339. .UNINDENT
  241340. .IP \(bu 2
  241341. 65deba8bb5 Merge pull request \fI\%#29507\fP from rallytime/ec2\-doc\-fix
  241342. .INDENT 2.0
  241343. .IP \(bu 2
  241344. 90b4823bc2 Switch volumes and del_*_on_destroy example ordering
  241345. .UNINDENT
  241346. .IP \(bu 2
  241347. 0918c9294f Merge pull request \fI\%#29469\fP from abednarik/doc_note_for_saltcloud_connection_timeout
  241348. .INDENT 2.0
  241349. .IP \(bu 2
  241350. 8e5c3e366a Added Documentation note in salt cloud.
  241351. .UNINDENT
  241352. .IP \(bu 2
  241353. e43c7c05a6 Merge pull request \fI\%#29461\fP from dmyerscough/fix\-resource\-limits
  241354. .INDENT 2.0
  241355. .IP \(bu 2
  241356. 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
  241357. .UNINDENT
  241358. .IP \(bu 2
  241359. 730f02fbdf Merge pull request \fI\%#29439\fP from rallytime/bp\-28656
  241360. .INDENT 2.0
  241361. .IP \(bu 2
  241362. 2f11bb021f \fI\%#28526\fP fixed yumpkg module
  241363. .UNINDENT
  241364. .IP \(bu 2
  241365. 197210d52e Merge pull request \fI\%#29418\fP from jacobhammons/dot8
  241366. .INDENT 2.0
  241367. .IP \(bu 2
  241368. 4f51a737f9 Added CVE 2015\-8034 to 2015.5.8 release notes
  241369. .UNINDENT
  241370. .IP \(bu 2
  241371. b3452f2a1a Merge pull request \fI\%#29389\fP from jacobhammons/2015.5
  241372. .INDENT 2.0
  241373. .IP \(bu 2
  241374. 824721ff36 updated version numbers
  241375. .UNINDENT
  241376. .IP \(bu 2
  241377. 6a7a95f28a Merge pull request \fI\%#28501\fP from twangboy/jmoney_26898
  241378. .INDENT 2.0
  241379. .IP \(bu 2
  241380. c0cf33332c Fixed some Lint...
  241381. .IP \(bu 2
  241382. df17fc59d3 Merge pull request \fI\%#6\fP from jfindlay/twang_test
  241383. .INDENT 2.0
  241384. .IP \(bu 2
  241385. bc7e0cfe64 add file.symlink unit tests
  241386. .IP \(bu 2
  241387. 9381dc7215 orthogonalize file.symlink unit tests
  241388. .UNINDENT
  241389. .IP \(bu 2
  241390. 8f462ba044 Merge pull request \fI\%#5\fP from cachedout/fix_twangboy_test
  241391. .INDENT 2.0
  241392. .IP \(bu 2
  241393. 5293150d25 Fix tests
  241394. .UNINDENT
  241395. .IP \(bu 2
  241396. 7d39091c91 Fixed some more lint
  241397. .IP \(bu 2
  241398. 3dbd62af2c Fixed some tests... hopefully
  241399. .IP \(bu 2
  241400. f187db3288 Removed unnecessary logic
  241401. .IP \(bu 2
  241402. 89ebd268e6 Added file attributes restore on fail
  241403. .IP \(bu 2
  241404. 9ec72ca724 fix file state unit tests for win symlink feature
  241405. .IP \(bu 2
  241406. 69c32a663e Fixed some lint
  241407. .IP \(bu 2
  241408. 638dec5027 Fixed some tests... let\(aqs see if they\(aqre really are
  241409. .IP \(bu 2
  241410. 5ed7a99792 Replaced instances of shutil.rmtree in file state
  241411. .IP \(bu 2
  241412. 2651ce509f Fix file.remove for windows
  241413. .UNINDENT
  241414. .IP \(bu 2
  241415. 760a521603 Merge pull request \fI\%#29348\fP from jtand/file_search_fix
  241416. .INDENT 2.0
  241417. .IP \(bu 2
  241418. 04f82bd4fd Fixes an file.search on python2.6
  241419. .UNINDENT
  241420. .IP \(bu 2
  241421. 51ea88d489 Merge pull request \fI\%#29336\fP from rallytime/bp\-29276
  241422. .INDENT 2.0
  241423. .IP \(bu 2
  241424. 3a0e19debb Prevent adding port twice when adding entry in known hosts
  241425. .UNINDENT
  241426. .IP \(bu 2
  241427. 28255af52a Merge pull request \fI\%#29333\fP from rallytime/bp\-29280
  241428. .INDENT 2.0
  241429. .IP \(bu 2
  241430. 722d02ff4a Lint
  241431. .IP \(bu 2
  241432. 4a0040c1b4 [Doc] Add note for SVN state
  241433. .UNINDENT
  241434. .UNINDENT
  241435. .UNINDENT
  241436. .IP \(bu 2
  241437. \fBPR\fP \fI\%#29499\fP: (\fI\%rallytime\fP) Initial commit of ESXi Proxy Minion
  241438. @ \fI2015\-12\-08 21:10:13 UTC\fP
  241439. .INDENT 2.0
  241440. .IP \(bu 2
  241441. 3ae096b7ac Merge pull request \fI\%#29499\fP from rallytime/esxi\-proxy
  241442. .IP \(bu 2
  241443. d8b1ba3991 Make sure ESXCLI gating is correct in vsphere __virtual__
  241444. .IP \(bu 2
  241445. 55589f8021 Provide some more inline comments for longer functions
  241446. .IP \(bu 2
  241447. baf2f8ce7a Pylint fix
  241448. .IP \(bu 2
  241449. 763ae5d676 VMotion functions, gate ESXCLI requirement, allow protocol/port for ESXCLI function
  241450. .IP \(bu 2
  241451. d909df254e Bug fixes for esxi states
  241452. .IP \(bu 2
  241453. 7102677679 Bug fixes and move ntp and ssh service start/stop/restart to single funcs
  241454. .IP \(bu 2
  241455. 77b37add84 Added syslog_configured state, and some minor bug fixes
  241456. .IP \(bu 2
  241457. df49f533f6 More state functions and a couple of bug fixes
  241458. .IP \(bu 2
  241459. a50c74cfe2 Merge pull request \fI\%#13\fP from cro/esxi\-proxy3
  241460. .INDENT 2.0
  241461. .IP \(bu 2
  241462. 87fc980f33 Add syslog config and network firewall rules enable
  241463. .UNINDENT
  241464. .IP \(bu 2
  241465. 42be49f481 Merge pull request \fI\%#11\fP from cro/esxi\-proxy
  241466. .INDENT 2.0
  241467. .IP \(bu 2
  241468. d858642f05 Add documentation.
  241469. .IP \(bu 2
  241470. 43879d1dfe Functions for setting network coredumps
  241471. .UNINDENT
  241472. .IP \(bu 2
  241473. 7d7d2afa7f Initial commit of ESXi state and refactored vsan_add_disks to include a get function.
  241474. .IP \(bu 2
  241475. bc945a48db Add execution module functions to upload ssh key for root and retrieve ssh key for root.
  241476. .IP \(bu 2
  241477. 238b0f5bea Update error return policy and add service running/policy functions
  241478. .IP \(bu 2
  241479. 9ba9019419 Initial commit of ESXi proxy work.
  241480. .UNINDENT
  241481. .IP \(bu 2
  241482. \fBPR\fP \fI\%#29526\fP: (\fI\%jfindlay\fP) 2015.8.2 notes: add note about not being released
  241483. @ \fI2015\-12\-08 21:09:50 UTC\fP
  241484. .INDENT 2.0
  241485. .IP \(bu 2
  241486. 873f6a9460 Merge pull request \fI\%#29526\fP from jfindlay/2015.8
  241487. .IP \(bu 2
  241488. 917e6f850c 2015.8.2 notes: add note about not being released
  241489. .UNINDENT
  241490. .IP \(bu 2
  241491. \fBISSUE\fP \fI\%#29484\fP: (\fI\%m7v8\fP) patchlevel detection broken for openSuSE (refs: \fI\%#29531\fP)
  241492. .IP \(bu 2
  241493. \fBPR\fP \fI\%#29531\fP: (\fI\%jfindlay\fP) grains.core: handle undefined variable
  241494. @ \fI2015\-12\-08 21:07:38 UTC\fP
  241495. .INDENT 2.0
  241496. .IP \(bu 2
  241497. 3de61e3655 Merge pull request \fI\%#29531\fP from jfindlay/suse_patch
  241498. .IP \(bu 2
  241499. 1ad5a088fc grains.core: handle undefined variable
  241500. .UNINDENT
  241501. .IP \(bu 2
  241502. \fBISSUE\fP \fI\%#29486\fP: (\fI\%m7v8\fP) Pull request breaks our setup (umask) (refs: \fI\%#29538\fP)
  241503. .IP \(bu 2
  241504. \fBISSUE\fP \fI\%#29005\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-call call in salt\-ssh (refs: \fI\%#29126\fP)
  241505. .IP \(bu 2
  241506. \fBISSUE\fP \fI\%#28830\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-ssh deployement (refs: \fI\%#29126\fP)
  241507. .IP \(bu 2
  241508. \fBPR\fP \fI\%#29538\fP: (\fI\%basepi\fP) [2015.8] [salt\-ssh] Remove umask around actual execution for salt\-ssh
  241509. @ \fI2015\-12\-08 20:45:58 UTC\fP
  241510. .INDENT 2.0
  241511. .IP \(bu 2
  241512. \fBPR\fP \fI\%#29126\fP: (\fI\%fcrozat\fP) Fix deployment when umask is non\-standard (refs: \fI\%#29538\fP)
  241513. .IP \(bu 2
  241514. 1d8014411a Merge pull request \fI\%#29538\fP from basepi/salt\-ssh.umask.29486
  241515. .IP \(bu 2
  241516. 5edfa014f5 Remove umask around actual execution for salt\-ssh
  241517. .UNINDENT
  241518. .IP \(bu 2
  241519. \fBISSUE\fP \fI\%#28715\fP: (\fI\%mlalpho\fP) Tagging Resources with boto_rds (refs: \fI\%#29505\fP)
  241520. .IP \(bu 2
  241521. \fBPR\fP \fI\%#29505\fP: (\fI\%rallytime\fP) Update boto_rds state docs to include funky yaml syntax for "tags" option.
  241522. @ \fI2015\-12\-08 17:05:02 UTC\fP
  241523. .INDENT 2.0
  241524. .IP \(bu 2
  241525. fb02fc1ef1 Merge pull request \fI\%#29505\fP from rallytime/fix\-28715
  241526. .IP \(bu 2
  241527. f43f851a92 Update boto_rds state docs to include funky yaml syntax for "tags" option.
  241528. .UNINDENT
  241529. .IP \(bu 2
  241530. \fBPR\fP \fI\%#29513\fP: (\fI\%bdrung\fP) Drop obsolete syslog.target from systemd services
  241531. @ \fI2015\-12\-08 16:05:01 UTC\fP
  241532. .INDENT 2.0
  241533. .IP \(bu 2
  241534. 38888add5e Merge pull request \fI\%#29513\fP from bdrung/2015.8
  241535. .IP \(bu 2
  241536. b1a4ade618 Drop obsolete syslog.target from systemd services
  241537. .UNINDENT
  241538. .IP \(bu 2
  241539. \fBPR\fP \fI\%#29500\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29467\fP to 2015.8
  241540. @ \fI2015\-12\-07 23:24:00 UTC\fP
  241541. .INDENT 2.0
  241542. .IP \(bu 2
  241543. \fBPR\fP \fI\%#29467\fP: (\fI\%serge\-p\fP) Update module.py (refs: \fI\%#29500\fP)
  241544. .IP \(bu 2
  241545. 148dad6674 Merge pull request \fI\%#29500\fP from rallytime/bp\-29467
  241546. .IP \(bu 2
  241547. ca0be8bff0 Update module.py
  241548. .UNINDENT
  241549. .IP \(bu 2
  241550. \fBISSUE\fP \fI\%#29001\fP: (\fI\%olfway\fP) debconf.set doesn\(aqt support "prereq" in states (refs: \fI\%#29463\fP)
  241551. .IP \(bu 2
  241552. \fBPR\fP \fI\%#29463\fP: (\fI\%abednarik\fP) Add **kwargs to debconf.set.
  241553. @ \fI2015\-12\-07 19:56:05 UTC\fP
  241554. .INDENT 2.0
  241555. .IP \(bu 2
  241556. 9d11acc7db Merge pull request \fI\%#29463\fP from abednarik/debconf_fix_prereq_support
  241557. .IP \(bu 2
  241558. b17f1fed43 Add **kwargs to debconf.set.
  241559. .UNINDENT
  241560. .IP \(bu 2
  241561. \fBISSUE\fP \fI\%#29311\fP: (\fI\%Reiner030\fP) Feature Request: System uptime also in seconds (refs: \fI\%#29399\fP)
  241562. .IP \(bu 2
  241563. \fBPR\fP \fI\%#29399\fP: (\fI\%jfindlay\fP) modules.status: add human_readable option to uptime
  241564. @ \fI2015\-12\-07 19:53:52 UTC\fP
  241565. .INDENT 2.0
  241566. .IP \(bu 2
  241567. 7efd6dd140 Merge pull request \fI\%#29399\fP from jfindlay/second_up
  241568. .IP \(bu 2
  241569. 1903124814 modules.win_status: add reason to virtual ret
  241570. .IP \(bu 2
  241571. 35ba7da470 modules.status: add reason to __virtual__ return
  241572. .IP \(bu 2
  241573. 48e7beb0eb modules.status: add in_seconds option to uptime
  241574. .UNINDENT
  241575. .IP \(bu 2
  241576. \fBPR\fP \fI\%#29433\fP: (\fI\%cro\fP) Files for building .pkg files for MacOS X
  241577. @ \fI2015\-12\-07 19:47:23 UTC\fP
  241578. .INDENT 2.0
  241579. .IP \(bu 2
  241580. 042daf91b8 Merge pull request \fI\%#29433\fP from cro/mac_native_pkg
  241581. .IP \(bu 2
  241582. 8e191ae264 Add web references
  241583. .IP \(bu 2
  241584. 5f1459d708 Update mac packaging
  241585. .IP \(bu 2
  241586. 092b7ddd0a First crack at build files for Mac OS X Native package
  241587. .UNINDENT
  241588. .IP \(bu 2
  241589. \fBISSUE\fP \fI\%#29445\fP: (\fI\%shawnbutts\fP) salt.loaded.int.module.nova.__virtual__() is wrongly returning \fINone\fP\&. (refs: \fI\%#29455\fP)
  241590. .IP \(bu 2
  241591. \fBPR\fP \fI\%#29455\fP: (\fI\%jfindlay\fP) modules.nova.__init__: do not return \fBNone\fP
  241592. @ \fI2015\-12\-07 19:44:00 UTC\fP
  241593. .INDENT 2.0
  241594. .IP \(bu 2
  241595. 5ff3749108 Merge pull request \fI\%#29455\fP from jfindlay/nova_none
  241596. .IP \(bu 2
  241597. 19da8233c8 modules.nova.__init__: do not return \fBNone\fP
  241598. .UNINDENT
  241599. .IP \(bu 2
  241600. \fBPR\fP \fI\%#29454\fP: (\fI\%jfindlay\fP) rh_service module __virtual__ return error messages
  241601. @ \fI2015\-12\-07 19:32:15 UTC\fP
  241602. .INDENT 2.0
  241603. .IP \(bu 2
  241604. 289e9d169e Merge pull request \fI\%#29454\fP from jfindlay/rh_service
  241605. .IP \(bu 2
  241606. 9975508f86 modules.rh_service.__virtual__: handle SUSE osrelease as num
  241607. .IP \(bu 2
  241608. d7ab7bf51f modules.rh_service: __virtual__ error messages
  241609. .UNINDENT
  241610. .IP \(bu 2
  241611. \fBPR\fP \fI\%#29476\fP: (\fI\%tbaker57\fP) Doc fix \- route_table_present needs subnet_names (not subnets) as a key
  241612. @ \fI2015\-12\-07 18:47:22 UTC\fP
  241613. .INDENT 2.0
  241614. .IP \(bu 2
  241615. cb465927d6 Merge pull request \fI\%#29476\fP from tbaker57/boto_vpc_docfix
  241616. .IP \(bu 2
  241617. 36946640b8 Fix \- don\(aqt specify \(aqname\(aq key inside the list \- just the subnet names
  241618. .IP \(bu 2
  241619. 5cab4b775a Doc fix \- route_table_present needs subnet_names (not subnets) as a key
  241620. .UNINDENT
  241621. .IP \(bu 2
  241622. \fBPR\fP \fI\%#29487\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29450\fP to 2015.8
  241623. @ \fI2015\-12\-07 17:25:23 UTC\fP
  241624. .INDENT 2.0
  241625. .IP \(bu 2
  241626. \fBPR\fP \fI\%#29450\fP: (\fI\%pass\-by\-value\fP) Raise error if dracr password is above 20 chars (refs: \fI\%#29487\fP)
  241627. .IP \(bu 2
  241628. 6696cf6eb5 Merge pull request \fI\%#29487\fP from rallytime/bp\-29450
  241629. .IP \(bu 2
  241630. 2c55c55ff1 Raise error if dracr password is above 20 chars
  241631. .UNINDENT
  241632. .IP \(bu 2
  241633. \fBISSUE\fP \fI\%#29133\fP: (\fI\%cedwards\fP) FX2 proxy\-minion dellchassis idrac state incomplete (refs: \fI\%#29441\fP)
  241634. .IP \(bu 2
  241635. \fBPR\fP \fI\%#29441\fP: (\fI\%rallytime\fP) Make sure docs line up with blade_idrac function specs
  241636. @ \fI2015\-12\-05 16:30:27 UTC\fP
  241637. .INDENT 2.0
  241638. .IP \(bu 2
  241639. a1ffc5aacb Merge pull request \fI\%#29441\fP from rallytime/fix\-doc\-dellchassis
  241640. .IP \(bu 2
  241641. cf62361830 Make sure docs line up with blade_idrac function specs
  241642. .UNINDENT
  241643. .IP \(bu 2
  241644. \fBPR\fP \fI\%#29440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28925\fP to 2015.8
  241645. @ \fI2015\-12\-05 00:21:26 UTC\fP
  241646. .INDENT 2.0
  241647. .IP \(bu 2
  241648. \fBPR\fP \fI\%#28925\fP: (\fI\%pass\-by\-value\fP) Fx2 firmware update (refs: \fI\%#29440\fP)
  241649. .IP \(bu 2
  241650. 6cc6f776bc Merge pull request \fI\%#29440\fP from rallytime/bp\-28925
  241651. .IP \(bu 2
  241652. 1b57a57c48 Lint fixes
  241653. .IP \(bu 2
  241654. 7cea3afb4f Support multiple hosts
  241655. .IP \(bu 2
  241656. 0be3620715 Set kwarg
  241657. .IP \(bu 2
  241658. b7324b5102 Add doc for new state
  241659. .IP \(bu 2
  241660. 613dd0b7a2 Make sure creds are set before \fBracadm update\fP
  241661. .IP \(bu 2
  241662. 929e679b25 Add firmware update state to dellchassis
  241663. .IP \(bu 2
  241664. 6356af3b99 Raise error
  241665. .IP \(bu 2
  241666. 820ad7b3df Validate file existence
  241667. .IP \(bu 2
  241668. 94704304ec Add firmware update functions to module
  241669. .UNINDENT
  241670. .IP \(bu 2
  241671. \fBISSUE\fP \fI\%#29425\fP: (\fI\%paclat\fP) services for older OEL releases. (refs: \fI\%#29435\fP)
  241672. .IP \(bu 2
  241673. \fBPR\fP \fI\%#29435\fP: (\fI\%galet\fP) Grains return wrong OS version and other OS related values for Oracle Linux
  241674. @ \fI2015\-12\-05 00:19:11 UTC\fP
  241675. .INDENT 2.0
  241676. .IP \(bu 2
  241677. 129f45f7c3 Merge pull request \fI\%#29435\fP from galet/2015.8
  241678. .IP \(bu 2
  241679. fdaa81ccf8 Grains return wrong OS version and other OS related values for Oracle Linux
  241680. .IP \(bu 2
  241681. c494ddd5fc Grains return wrong OS version and other OS related values for Oracle Linux
  241682. .UNINDENT
  241683. .IP \(bu 2
  241684. \fBISSUE\fP \fI\%saltstack/salt#29313\fP: (\fI\%rmatulat\fP) state/host.present and alias\-assignment to multiple IPs fails (refs: \fI\%#29430\fP)
  241685. .IP \(bu 2
  241686. \fBPR\fP \fI\%#29430\fP: (\fI\%rmatulat\fP) Fix host.present state limitation
  241687. @ \fI2015\-12\-04 23:08:20 UTC\fP
  241688. .INDENT 2.0
  241689. .IP \(bu 2
  241690. e2b43a3f1e Merge pull request \fI\%#29430\fP from rall0r/2015.8
  241691. .IP \(bu 2
  241692. d3dacff4a2 Fix host.present state limitation
  241693. .UNINDENT
  241694. .IP \(bu 2
  241695. \fBPR\fP \fI\%#29417\fP: (\fI\%jacobhammons\fP) Repo install updates
  241696. @ \fI2015\-12\-04 02:39:41 UTC\fP
  241697. .INDENT 2.0
  241698. .IP \(bu 2
  241699. ab890b632a Merge pull request \fI\%#29417\fP from jacobhammons/repo\-install\-updates
  241700. .IP \(bu 2
  241701. d58182c5fa updated repo path for RHEL installation
  241702. .IP \(bu 2
  241703. 5e54359869 Updated Debian, RHEL / Cent, Ubuntu installation instructions with new repo structure for 2015.8.3. Added CVE\-2015\-8034 to release notes.
  241704. .UNINDENT
  241705. .IP \(bu 2
  241706. \fBPR\fP \fI\%#29402\fP: (\fI\%techhat\fP) Add rate limiting to linode
  241707. @ \fI2015\-12\-03 20:27:10 UTC\fP
  241708. .INDENT 2.0
  241709. .IP \(bu 2
  241710. cb1e2e6e73 Merge pull request \fI\%#29402\fP from techhat/ratelimit
  241711. .IP \(bu 2
  241712. f0a4d93077 Add rate limiting to linode
  241713. .UNINDENT
  241714. .IP \(bu 2
  241715. \fBISSUE\fP \fI\%#19332\fP: (\fI\%QuinnyPig\fP) Nondeterminism in Pillar (refs: \fI\%#29400\fP)
  241716. .IP \(bu 2
  241717. \fBPR\fP \fI\%#29400\fP: (\fI\%twangboy\fP) Fix \fI\%#19332\fP
  241718. @ \fI2015\-12\-03 20:25:16 UTC\fP
  241719. .INDENT 2.0
  241720. .IP \(bu 2
  241721. 8fe39d0ef8 Merge pull request \fI\%#29400\fP from twangboy/fix_19332
  241722. .IP \(bu 2
  241723. 7bdddaca53 Fixed grammer
  241724. .IP \(bu 2
  241725. d965d00a09 Fix \fI\%#19332\fP
  241726. .UNINDENT
  241727. .IP \(bu 2
  241728. \fBPR\fP \fI\%#29398\fP: (\fI\%cachedout\fP) Lint 29288
  241729. @ \fI2015\-12\-03 18:03:53 UTC\fP
  241730. .INDENT 2.0
  241731. .IP \(bu 2
  241732. d2c0fcbc97 Merge pull request \fI\%#29398\fP from cachedout/lint_29288
  241733. .IP \(bu 2
  241734. 3b0033e529 Lint \fI\%#29288\fP
  241735. .IP \(bu 2
  241736. 386459ca6d Merge pull request \fI\%#1\fP from jfindlay/glustest
  241737. .INDENT 2.0
  241738. .IP \(bu 2
  241739. 4d6c71aa80 modules.glusterfs: fix start_volume unit test
  241740. .UNINDENT
  241741. .IP \(bu 2
  241742. f336c44630 Bootstrap failed, retrying
  241743. .IP \(bu 2
  241744. bd729cb3ea Set default GlusterFS version to 6
  241745. .IP \(bu 2
  241746. 443bfc6a81 Fixed volume status for >= 3.7 in glusterfs.py
  241747. .UNINDENT
  241748. .IP \(bu 2
  241749. \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)
  241750. .IP \(bu 2
  241751. \fBPR\fP \fI\%#29331\fP: (\fI\%DmitryKuzmenko\fP) Bugfix \- \fI\%#29116\fP raet dns error
  241752. @ \fI2015\-12\-03 17:10:40 UTC\fP
  241753. .INDENT 2.0
  241754. .IP \(bu 2
  241755. 5b8e7820ac Merge pull request \fI\%#29331\fP from DSRCompany/bug/29116_raet_dns_error_2
  241756. .IP \(bu 2
  241757. 8c2b217af5 Make pylint happy
  241758. .IP \(bu 2
  241759. e5672ee716 Don\(aqt exit if no master found
  241760. .IP \(bu 2
  241761. 1c324f5467 Don\(aqt fail if can\(aqt connect to master
  241762. .UNINDENT
  241763. .IP \(bu 2
  241764. \fBPR\fP \fI\%#29390\fP: (\fI\%jacobhammons\fP) updated version numbers in documentation
  241765. @ \fI2015\-12\-03 17:02:05 UTC\fP
  241766. .INDENT 2.0
  241767. .IP \(bu 2
  241768. 7bc6b1210d Merge pull request \fI\%#29390\fP from jacobhammons/2015.8
  241769. .IP \(bu 2
  241770. 486935b233 updated version numbers
  241771. .UNINDENT
  241772. .IP \(bu 2
  241773. \fBISSUE\fP \fI\%#25446\fP: (\fI\%DmitryKuzmenko\fP) Stack overflow on LazyLoader deep copying (refs: \fI\%#29381\fP)
  241774. .IP \(bu 2
  241775. \fBPR\fP \fI\%#29381\fP: (\fI\%nmadhok\fP) No need to deepcopy since six.iterkeys() creates a copy
  241776. @ \fI2015\-12\-03 15:54:52 UTC\fP
  241777. .INDENT 2.0
  241778. .IP \(bu 2
  241779. fd677e1d58 Merge pull request \fI\%#29381\fP from nmadhok/2015.8\-runtime\-fix
  241780. .IP \(bu 2
  241781. f109698196 No need to deepcopy since six.iterkeys() creates a copy
  241782. .UNINDENT
  241783. .IP \(bu 2
  241784. \fBPR\fP \fI\%#29349\fP: (\fI\%cro\fP) Fix mis\-setting chassis names
  241785. @ \fI2015\-12\-03 00:56:54 UTC\fP
  241786. .INDENT 2.0
  241787. .IP \(bu 2
  241788. 2973025058 Merge pull request \fI\%#29349\fP from cro/fx2_name_fix
  241789. .IP \(bu 2
  241790. 95d6d72a5d Fix mis\-setting the name of the chassis.
  241791. .UNINDENT
  241792. .IP \(bu 2
  241793. \fBISSUE\fP \fI\%#29236\fP: (\fI\%sjorge\fP) network.mod_bufsize has wrong docstring (refs: \fI\%#29237\fP)
  241794. .IP \(bu 2
  241795. \fBISSUE\fP \fI\%#29235\fP: (\fI\%sjorge\fP) network.get_bufsize has wrong docstring (refs: \fI\%#29237\fP)
  241796. .IP \(bu 2
  241797. \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)
  241798. .IP \(bu 2
  241799. \fBISSUE\fP \fI\%#29233\fP: (\fI\%sjorge\fP) network.default_route does not seem to honor the family parameter (refs: \fI\%#29237\fP)
  241800. .IP \(bu 2
  241801. \fBISSUE\fP \fI\%#29232\fP: (\fI\%sjorge\fP) network.active_tcp seems linux specific (refs: \fI\%#29237\fP)
  241802. .IP \(bu 2
  241803. \fBISSUE\fP \fI\%#29231\fP: (\fI\%sjorge\fP) docstrings in salt/utils/network.py are incorrect (refs: \fI\%#29237\fP)
  241804. .IP \(bu 2
  241805. \fBPR\fP \fI\%#29334\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29237\fP to 2015.8
  241806. @ \fI2015\-12\-02 19:37:31 UTC\fP
  241807. .INDENT 2.0
  241808. .IP \(bu 2
  241809. \fBPR\fP \fI\%#29237\fP: (\fI\%sjorge\fP) Module network fixes (refs: \fI\%#29334\fP)
  241810. .IP \(bu 2
  241811. 17d80c051a Merge pull request \fI\%#29334\fP from rallytime/bp\-29237
  241812. .IP \(bu 2
  241813. 598226def1 fix unit test (attempt 1)
  241814. .IP \(bu 2
  241815. a461d7bf12 changed from Boron to 2015.8.4, so this can be backported
  241816. .IP \(bu 2
  241817. 3892b12514 fix up a few remarks from jfindlay
  241818. .IP \(bu 2
  241819. 2f940e22aa also we should keep returning {} for other systems
  241820. .IP \(bu 2
  241821. 4953f58894 forgot to remove a debug line, how embarasing
  241822. .IP \(bu 2
  241823. e96f3c0c3b fix docs in salt/utils/network.py \fI\%#29231\fP \- looks like this got copied at some point
  241824. .IP \(bu 2
  241825. 3888bb403f fixup network.default_route with family set on SunOS \fI\%#29233\fP
  241826. .IP \(bu 2
  241827. c0e6ea98a6 fix network.active_tcp on SunOS (we fake it until we make it) \fI\%#29232\fP
  241828. .IP \(bu 2
  241829. 92f881284e add decorator to network.dig \fI\%#29234\fP
  241830. .IP \(bu 2
  241831. 77950eb55c fix docstring for get_bufsize \fI\%#29235\fP
  241832. .IP \(bu 2
  241833. 52fb80cd18 fix docstring for mod_bufsize \fI\%#29236\fP
  241834. .UNINDENT
  241835. .IP \(bu 2
  241836. \fBISSUE\fP \fI\%#28990\fP: (\fI\%adithep\fP) Dockerng volume (refs: \fI\%#29300\fP)
  241837. .IP \(bu 2
  241838. \fBPR\fP \fI\%#29300\fP: (\fI\%ticosax\fP) [dockerng] Add support for volume management in dockerng
  241839. @ \fI2015\-12\-02 17:48:53 UTC\fP
  241840. .INDENT 2.0
  241841. .IP \(bu 2
  241842. 5ec7947595 Merge pull request \fI\%#29300\fP from ticosax/dockerng\-volumes
  241843. .IP \(bu 2
  241844. 80d085ea92 fix typo
  241845. .IP \(bu 2
  241846. cb9cb463b0 Provide states for managing docker volumes
  241847. .IP \(bu 2
  241848. dff6fa1fb2 Add execution module to manage docker volumes
  241849. .UNINDENT
  241850. .IP \(bu 2
  241851. \fBPR\fP \fI\%#29218\fP: (\fI\%clan\fP) check service enable state in test mode
  241852. @ \fI2015\-12\-02 15:31:00 UTC\fP
  241853. .INDENT 2.0
  241854. .IP \(bu 2
  241855. 99b7d87688 Merge pull request \fI\%#29218\fP from clan/service_state
  241856. .IP \(bu 2
  241857. a1250a9729 check service enable state in test mode
  241858. .UNINDENT
  241859. .IP \(bu 2
  241860. \fBPR\fP \fI\%#29315\fP: (\fI\%jfindlay\fP) dev tutorial doc: fix markup errors
  241861. @ \fI2015\-12\-01 21:42:17 UTC\fP
  241862. .INDENT 2.0
  241863. .IP \(bu 2
  241864. 08ced73b13 Merge pull request \fI\%#29315\fP from jfindlay/docs
  241865. .IP \(bu 2
  241866. e8e23dc444 dev tutorial doc: fix markup errors
  241867. .UNINDENT
  241868. .IP \(bu 2
  241869. \fBPR\fP \fI\%#29317\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  241870. @ \fI2015\-12\-01 21:28:30 UTC\fP
  241871. .INDENT 2.0
  241872. .IP \(bu 2
  241873. a3a463ff8b Merge pull request \fI\%#29317\fP from basepi/merge\-forward\-2015.8
  241874. .IP \(bu 2
  241875. 0d90dd3a19 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  241876. .IP \(bu 2
  241877. 14e94b3593 Merge pull request \fI\%#29316\fP from basepi/merge\-forward\-2015.5
  241878. .INDENT 2.0
  241879. .IP \(bu 2
  241880. 33f40b3c47 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  241881. .IP \(bu 2
  241882. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  241883. .IP \(bu 2
  241884. d2885390f4 Use process KillMode on Debian systems also
  241885. .UNINDENT
  241886. .IP \(bu 2
  241887. 6a2ffbfb7c Merge pull request \fI\%#29216\fP from clan/file_search_on_proc_file
  241888. .INDENT 2.0
  241889. .IP \(bu 2
  241890. 91a20c07a1 try mmap first
  241891. .IP \(bu 2
  241892. 8aa4f2053e remove extra space to fix lint failure
  241893. .IP \(bu 2
  241894. d34e6b1a9a use read only if has read() method
  241895. .IP \(bu 2
  241896. 3209c1cdb5 size is 0 doesn\(aqt mean no data, e.g, /proc/version
  241897. .UNINDENT
  241898. .IP \(bu 2
  241899. d6aaae8d7b Merge pull request \fI\%#29261\fP from attiasr/patch\-1
  241900. .INDENT 2.0
  241901. .IP \(bu 2
  241902. 7a99b90596 add log and return if pkg already installed
  241903. .IP \(bu 2
  241904. 1843c7ab8e fix incorrect reinstallation of windows pkg
  241905. .UNINDENT
  241906. .IP \(bu 2
  241907. 9236188867 Merge pull request \fI\%#29214\fP from cro/ssl_verify_ssl
  241908. .INDENT 2.0
  241909. .IP \(bu 2
  241910. e9c13c561b Doc bug\-\-salt.utils.http takes verify_ssl not ssl_verify.
  241911. .UNINDENT
  241912. .IP \(bu 2
  241913. df7b35a86b Merge pull request \fI\%#29204\fP from lorengordon/fix\-29202
  241914. .IP \(bu 2
  241915. b1dae5e6fe Use os.path.join to return full path to ca bundle
  241916. .UNINDENT
  241917. .IP \(bu 2
  241918. \fBPR\fP \fI\%#29240\fP: (\fI\%clan\fP) handle acl_type [[d]efault:][user|group|mask|other]
  241919. @ \fI2015\-12\-01 17:56:20 UTC\fP
  241920. .INDENT 2.0
  241921. .IP \(bu 2
  241922. 39667fda12 Merge pull request \fI\%#29240\fP from clan/linux_acl
  241923. .IP \(bu 2
  241924. 02429aca69 handle acl_type [[d]efault:][user|group|mask|other]
  241925. .UNINDENT
  241926. .IP \(bu 2
  241927. \fBPR\fP \fI\%#29305\fP: (\fI\%lorengordon\fP) Add \(aqfile\(aq as a source_hash proto
  241928. @ \fI2015\-12\-01 17:39:37 UTC\fP
  241929. .INDENT 2.0
  241930. .IP \(bu 2
  241931. 027bed7c90 Merge pull request \fI\%#29305\fP from lorengordon/source_hash_protos
  241932. .IP \(bu 2
  241933. 53fdf0bf97 Update message for invalid source_hash
  241934. .IP \(bu 2
  241935. 2d20d71bd5 Add \fIfile\fP as a source_hash proto
  241936. .UNINDENT
  241937. .IP \(bu 2
  241938. \fBISSUE\fP \fI\%#29251\fP: (\fI\%adamsewell\fP) status.uptime causes exception on Windows minion 2015.8.1 (refs: \fI\%#29272\fP)
  241939. .IP \(bu 2
  241940. \fBPR\fP \fI\%#29272\fP: (\fI\%jfindlay\fP) win_status module: handle 12 hour time in uptime
  241941. @ \fI2015\-12\-01 16:33:12 UTC\fP
  241942. .INDENT 2.0
  241943. .IP \(bu 2
  241944. 1129ee1d2e Merge pull request \fI\%#29272\fP from jfindlay/win_up_time
  241945. .IP \(bu 2
  241946. 6a2315109e win_status module: python timedelta to find uptime
  241947. .IP \(bu 2
  241948. b7a535341f win_status module: handle 12 hour time in uptime
  241949. .UNINDENT
  241950. .IP \(bu 2
  241951. \fBISSUE\fP \fI\%#26526\fP: (\fI\%JensRantil\fP) Managing a \fI\%file://\fP source fails (refs: \fI\%#29289\fP)
  241952. .IP \(bu 2
  241953. \fBPR\fP \fI\%#29289\fP: (\fI\%terminalmage\fP) file.managed: Allow local file sources to use source_hash
  241954. @ \fI2015\-12\-01 16:19:27 UTC\fP
  241955. .INDENT 2.0
  241956. .IP \(bu 2
  241957. 0fd3e8b0fb Merge pull request \fI\%#29289\fP from terminalmage/issue26526
  241958. .IP \(bu 2
  241959. 64ae3f996e file.managed: Allow local file sources to use source_hash
  241960. .UNINDENT
  241961. .IP \(bu 2
  241962. \fBISSUE\fP \fI\%#29262\fP: (\fI\%anlutro\fP) ssh_auth.absent removes keys when test=True (refs: \fI\%#29264\fP)
  241963. .IP \(bu 2
  241964. \fBPR\fP \fI\%#29264\fP: (\fI\%anlutro\fP) Prevent ssh_auth.absent from running when test=True
  241965. @ \fI2015\-11\-30 21:54:15 UTC\fP
  241966. .INDENT 2.0
  241967. .IP \(bu 2
  241968. 8d32d8d43d Merge pull request \fI\%#29264\fP from alprs/fix\-ssh_auth_absent_test
  241969. .IP \(bu 2
  241970. 9193676f9c fix ssh_auth_test
  241971. .IP \(bu 2
  241972. febbfa792f prevent ssh_auth.absent from running when test=True
  241973. .UNINDENT
  241974. .IP \(bu 2
  241975. \fBISSUE\fP \fI\%#29071\fP: (\fI\%eliasp\fP) \fIgit_pillar.update\fP runner can\(aqt handle >=2015.8.0 configuration (refs: \fI\%#29277\fP)
  241976. .IP \(bu 2
  241977. \fBPR\fP \fI\%#29277\fP: (\fI\%terminalmage\fP) Update git_pillar runner to support new git ext_pillar config schema
  241978. @ \fI2015\-11\-30 21:39:51 UTC\fP
  241979. .INDENT 2.0
  241980. .IP \(bu 2
  241981. 459d30f27f Merge pull request \fI\%#29277\fP from terminalmage/issue29071
  241982. .IP \(bu 2
  241983. 6981bb3be7 Update git_pillar runner to support new git ext_pillar config schema
  241984. .IP \(bu 2
  241985. 293c8e635c Separate repo locking logic into its own function
  241986. .UNINDENT
  241987. .IP \(bu 2
  241988. \fBPR\fP \fI\%#29283\fP: (\fI\%cachedout\fP) Single\-quotes and use format
  241989. @ \fI2015\-11\-30 21:34:41 UTC\fP
  241990. .INDENT 2.0
  241991. .IP \(bu 2
  241992. \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)
  241993. .IP \(bu 2
  241994. df1f0d93c7 Merge pull request \fI\%#29283\fP from cachedout/style_29139
  241995. .IP \(bu 2
  241996. d764497b17 Single\-quotes and use format
  241997. .UNINDENT
  241998. .IP \(bu 2
  241999. \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)
  242000. @ \fI2015\-11\-30 21:25:50 UTC\fP
  242001. .INDENT 2.0
  242002. .IP \(bu 2
  242003. 3aa84b6763 Merge pull request \fI\%#29139\fP from thomaso\-mirodin/salt\-ssh\-flat\-roster\-range\-filter
  242004. .IP \(bu 2
  242005. 56b3302fe9 Pylint fixes for PR \fI\%#29139\fP
  242006. .IP \(bu 2
  242007. e010f2d3b5 Add a range roster for salt\-ssh
  242008. .IP \(bu 2
  242009. c5eeb77ebc Add range support to salt\-ssh\(aqs flat roster
  242010. .UNINDENT
  242011. .IP \(bu 2
  242012. \fBPR\fP \fI\%#29282\fP: (\fIcachedout\fP) dev docs: add development tutorial (refs: \fI\%#29282\fP)
  242013. @ \fI2015\-11\-30 21:14:50 UTC\fP
  242014. .INDENT 2.0
  242015. .IP \(bu 2
  242016. dbf7755aa2 Merge pull request \fI\%#29282\fP from cachedout/fix_29279
  242017. .IP \(bu 2
  242018. 1efaab2dd5 Fix typo in \fI\%#29279\fP
  242019. .IP \(bu 2
  242020. a5ea39132f dev docs: add development tutorial
  242021. .UNINDENT
  242022. .IP \(bu 2
  242023. \fBISSUE\fP \fI\%#28991\fP: (\fI\%timcharper\fP) allow role\-assumption with s3 credentials (refs: \fI\%#28994\fP)
  242024. .IP \(bu 2
  242025. \fBPR\fP \fI\%#28994\fP: (\fI\%timcharper\fP) add support to s3 for aws role assumption
  242026. @ \fI2015\-11\-30 20:52:18 UTC\fP
  242027. .INDENT 2.0
  242028. .IP \(bu 2
  242029. 87e4aa4fae Merge pull request \fI\%#28994\fP from timcharper/2015.8.1\-dev
  242030. .IP \(bu 2
  242031. e060986828 add support to s3 for aws role assumption
  242032. .UNINDENT
  242033. .IP \(bu 2
  242034. \fBISSUE\fP \fI\%#29209\fP: (\fI\%ssgward\fP) SPM logging level doesn\(aqt seem to be functional (refs: \fI\%#29278\fP)
  242035. .IP \(bu 2
  242036. \fBPR\fP \fI\%#29278\fP: (\fI\%techhat\fP) Add verify_log to SPM
  242037. @ \fI2015\-11\-30 20:48:32 UTC\fP
  242038. .INDENT 2.0
  242039. .IP \(bu 2
  242040. 3d16434f14 Merge pull request \fI\%#29278\fP from techhat/issue29209
  242041. .IP \(bu 2
  242042. 759e8c4542 Add verify_log to SPM
  242043. .UNINDENT
  242044. .IP \(bu 2
  242045. \fBPR\fP \fI\%#29067\fP: (\fI\%jacksontj\fP) Fix infinite recursion in state compiler for prereq of SLSs
  242046. @ \fI2015\-11\-30 20:27:09 UTC\fP
  242047. .INDENT 2.0
  242048. .IP \(bu 2
  242049. d651d7167e Merge pull request \fI\%#29067\fP from jacksontj/2015.8
  242050. .IP \(bu 2
  242051. 64e439cda2 Add test for infinite recursion with sls prerequisites
  242052. .IP \(bu 2
  242053. d687682016 No reason to continuously resolve the k, v pair here since it doesn\(aqt change in the inner loop
  242054. .IP \(bu 2
  242055. 6d747df5db Correctly resolve requisite_in for SLS requisites
  242056. .UNINDENT
  242057. .IP \(bu 2
  242058. \fBISSUE\fP \fI\%#29161\fP: (\fI\%jefferyharrell\fP) saltmod.state\(aqs ret argument seems to do nothing (refs: \fI\%#29207\fP)
  242059. .IP \(bu 2
  242060. \fBPR\fP \fI\%#29207\fP: (\fI\%jfindlay\fP) do not shadow ret function argument
  242061. @ \fI2015\-11\-30 20:14:06 UTC\fP
  242062. .INDENT 2.0
  242063. .IP \(bu 2
  242064. d42bcea905 Merge pull request \fI\%#29207\fP from jfindlay/ret_non_shadow
  242065. .IP \(bu 2
  242066. 5de0b93ac6 saltutil.cmd module: do not shadow ret function argument
  242067. .IP \(bu 2
  242068. 7809f2a389 saltmod.state state: do not shadow ret function argument
  242069. .UNINDENT
  242070. .IP \(bu 2
  242071. \fBPR\fP \fI\%#29215\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29192\fP to 2015.8
  242072. @ \fI2015\-11\-30 20:12:30 UTC\fP
  242073. .INDENT 2.0
  242074. .IP \(bu 2
  242075. \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)
  242076. .IP \(bu 2
  242077. 8cc1d8de46 Merge pull request \fI\%#29215\fP from rallytime/bp\-29192
  242078. .IP \(bu 2
  242079. 5226cd8f79 remove trailing whitespace fix subdict_match test cases
  242080. .IP \(bu 2
  242081. 44713cdb95 fix issue 29191: only try partial matches when a wildcard has been specified
  242082. .UNINDENT
  242083. .IP \(bu 2
  242084. \fBPR\fP \fI\%#29217\fP: (\fI\%clan\fP) show duration only if state_output_profile is False
  242085. @ \fI2015\-11\-30 20:11:18 UTC\fP
  242086. .INDENT 2.0
  242087. .IP \(bu 2
  242088. \fBPR\fP \fI\%#19320\fP: (\fI\%clan\fP) add \(aqstate_output_profile\(aq option for profile output (refs: \fI\%#29217\fP)
  242089. .IP \(bu 2
  242090. f488d25911 Merge pull request \fI\%#29217\fP from clan/highstate_duration
  242091. .IP \(bu 2
  242092. 9bdaae8325 show duration only if state_output_profile is False
  242093. .UNINDENT
  242094. .IP \(bu 2
  242095. \fBPR\fP \fI\%#29221\fP: (\fI\%ticosax\fP) [dokcerng] Docu network mode
  242096. @ \fI2015\-11\-30 19:22:49 UTC\fP
  242097. .INDENT 2.0
  242098. .IP \(bu 2
  242099. e5bd1c293d Merge pull request \fI\%#29221\fP from ticosax/docu\-network_mode
  242100. .IP \(bu 2
  242101. a0b674a0ea Extend documentation of network_mode parameter.
  242102. .UNINDENT
  242103. .IP \(bu 2
  242104. \fBISSUE\fP \fI\%#29250\fP: (\fI\%adamsewell\fP) status.cpu_load is not available on Salt 2015.8.1 (refs: \fI\%#29269\fP)
  242105. .IP \(bu 2
  242106. \fBPR\fP \fI\%#29269\fP: (\fI\%jfindlay\fP) win_status module: fix function names in docs
  242107. @ \fI2015\-11\-30 19:14:24 UTC\fP
  242108. .INDENT 2.0
  242109. .IP \(bu 2
  242110. 7fd02c2145 Merge pull request \fI\%#29269\fP from jfindlay/winstatus
  242111. .IP \(bu 2
  242112. f2f2dab491 win_status module: fix function names in docs
  242113. .UNINDENT
  242114. .IP \(bu 2
  242115. \fBPR\fP \fI\%#29213\fP: (\fI\%rallytime\fP) Move _wait_for_task func from vmware cloud to vmware utils
  242116. @ \fI2015\-11\-30 18:53:24 UTC\fP
  242117. .INDENT 2.0
  242118. .IP \(bu 2
  242119. 6c2e62f7d4 Merge pull request \fI\%#29213\fP from rallytime/vmware_utils_wait_for_task
  242120. .IP \(bu 2
  242121. 44e7f83686 Move _wait_for_task func from vmware cloud to vmware utils
  242122. .UNINDENT
  242123. .IP \(bu 2
  242124. \fBPR\fP \fI\%#29271\fP: (\fI\%techhat\fP) Pass full path for digest (SPM)
  242125. @ \fI2015\-11\-30 18:35:42 UTC\fP
  242126. .INDENT 2.0
  242127. .IP \(bu 2
  242128. 69cbc09ca0 Merge pull request \fI\%#29271\fP from techhat/issue29212
  242129. .IP \(bu 2
  242130. 6cd6a0ace0 Pass full path for digest (SPM)
  242131. .UNINDENT
  242132. .IP \(bu 2
  242133. \fBPR\fP \fI\%#29244\fP: (\fI\%isbm\fP) List products consistently across all SLES systems
  242134. @ \fI2015\-11\-30 18:31:42 UTC\fP
  242135. .INDENT 2.0
  242136. .IP \(bu 2
  242137. 1efe484309 Merge pull request \fI\%#29244\fP from isbm/isbm\-zypper\-products
  242138. .IP \(bu 2
  242139. db36a73b16 Remove code duplication
  242140. .IP \(bu 2
  242141. d62abedbf7 Remove dead code
  242142. .IP \(bu 2
  242143. 302b5d3bc1 List products consistently across all SLES systems
  242144. .UNINDENT
  242145. .IP \(bu 2
  242146. \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)
  242147. .IP \(bu 2
  242148. \fBPR\fP \fI\%#29255\fP: (\fI\%garethgreenaway\fP) fixes to consul module
  242149. @ \fI2015\-11\-30 18:30:02 UTC\fP
  242150. .INDENT 2.0
  242151. .IP \(bu 2
  242152. 318ad36449 Merge pull request \fI\%#29255\fP from garethgreenaway/29119_consul_module_fixes
  242153. .IP \(bu 2
  242154. 655b0ec403 various fixes to the consul execution module, in particular a fix to address \fI\%#29119\fP
  242155. .UNINDENT
  242156. .IP \(bu 2
  242157. \fBPR\fP \fI\%#29208\fP: (\fI\%whytewolf\fP) Glance more profile errors
  242158. @ \fI2015\-11\-25 23:50:27 UTC\fP
  242159. .INDENT 2.0
  242160. .IP \(bu 2
  242161. b225263279 Merge pull request \fI\%#29208\fP from whytewolf/glance_more_profile_errors
  242162. .IP \(bu 2
  242163. c8fe514ec1 found 3 more spots where the profile was not being passed through.
  242164. .IP \(bu 2
  242165. b2e3c1f8de Merge pull request \fI\%#1\fP from saltstack/2015.8
  242166. .UNINDENT
  242167. .IP \(bu 2
  242168. \fBISSUE\fP \fI\%#29140\fP: (\fI\%davidballano\fP) mount.unmounted is not behaving as I would expect (refs: \fI\%#29200\fP)
  242169. .IP \(bu 2
  242170. \fBPR\fP \fI\%#29200\fP: (\fI\%jfindlay\fP) mount state: unmount by device is optional
  242171. @ \fI2015\-11\-25 20:03:22 UTC\fP
  242172. .INDENT 2.0
  242173. .IP \(bu 2
  242174. 6d3c04516f Merge pull request \fI\%#29200\fP from jfindlay/singular_umount
  242175. .IP \(bu 2
  242176. b54de47b1b mount state: unmount by device is optional
  242177. .UNINDENT
  242178. .IP \(bu 2
  242179. \fBISSUE\fP \fI\%#29187\fP: (\fI\%trevor\-h\fP) salt\-cloud Windows provisioning on EC2 fails to use winrm (refs: \fI\%#29205\fP)
  242180. .IP \(bu 2
  242181. \fBPR\fP \fI\%#29205\fP: (\fI\%trevor\-h\fP) Fixes \fI\%#29187\fP \- using winrm on EC2
  242182. @ \fI2015\-11\-25 20:00:01 UTC\fP
  242183. .INDENT 2.0
  242184. .IP \(bu 2
  242185. fffcf9fef6 Merge pull request \fI\%#29205\fP from trevor\-h/fix\-salt\-cloud\-winrm\-ec2
  242186. .IP \(bu 2
  242187. 48e0edd0d2 Fixes \fI\%#29187\fP \- using winrm on EC2
  242188. .UNINDENT
  242189. .IP \(bu 2
  242190. \fBPR\fP \fI\%#29170\fP: (\fI\%cachedout\fP) Migrate pydsl tests to integration test suite
  242191. @ \fI2015\-11\-25 19:56:48 UTC\fP
  242192. .INDENT 2.0
  242193. .IP \(bu 2
  242194. 1937a47dec Merge pull request \fI\%#29170\fP from cachedout/refactor_pydsl_test
  242195. .IP \(bu 2
  242196. 2477ff2eab Add __init__ and pydsl test
  242197. .IP \(bu 2
  242198. 063f075a99 Add integration renderer tests to the suite
  242199. .IP \(bu 2
  242200. 81bf332be4 Migrate pydsl tests to integration test suite
  242201. .UNINDENT
  242202. .IP \(bu 2
  242203. \fBISSUE\fP \fI\%#29137\fP: (\fI\%Dravu\fP) MTU is output twice when used in network.managed (refs: \fI\%#29198\fP)
  242204. .IP \(bu 2
  242205. \fBPR\fP \fI\%#29198\fP: (\fI\%jfindlay\fP) rh_ip module: only set the mtu once
  242206. @ \fI2015\-11\-25 18:11:09 UTC\fP
  242207. .INDENT 2.0
  242208. .IP \(bu 2
  242209. 11d68f7b1c Merge pull request \fI\%#29198\fP from jfindlay/single_mtu
  242210. .IP \(bu 2
  242211. 0a8952f6ac rh_ip module: only set the mtu once
  242212. .UNINDENT
  242213. .IP \(bu 2
  242214. \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)
  242215. .IP \(bu 2
  242216. \fBPR\fP \fI\%#29135\fP: (\fI\%jfindlay\fP) ssh_known_hosts.present state: catch not found exc
  242217. @ \fI2015\-11\-25 18:10:43 UTC\fP
  242218. .INDENT 2.0
  242219. .IP \(bu 2
  242220. f19355e0bb Merge pull request \fI\%#29135\fP from jfindlay/ssh_except
  242221. .IP \(bu 2
  242222. 363add7131 ssh_known_hosts.present state: catch not found exc
  242223. .UNINDENT
  242224. .IP \(bu 2
  242225. \fBPR\fP \fI\%#29196\fP: (\fI\%s0undt3ch\fP) We need novaclient imported to compare versions
  242226. @ \fI2015\-11\-25 17:16:27 UTC\fP
  242227. .INDENT 2.0
  242228. .IP \(bu 2
  242229. 6a12197e13 Merge pull request \fI\%#29196\fP from s0undt3ch/2015.8
  242230. .IP \(bu 2
  242231. 78a7c34f2b We need novaclient imported to compare versions
  242232. .UNINDENT
  242233. .IP \(bu 2
  242234. \fBISSUE\fP \fI\%#28072\fP: (\fI\%jchv\fP) pygit 0.23.2 is not supported in Salt 2015.8.1 (refs: \fI\%#29059\fP)
  242235. .IP \(bu 2
  242236. \fBPR\fP \fI\%#29059\fP: (\fI\%terminalmage\fP) Work around upstream pygit2 bug
  242237. @ \fI2015\-11\-25 16:39:30 UTC\fP
  242238. .INDENT 2.0
  242239. .IP \(bu 2
  242240. 0c0e15d4e9 Merge pull request \fI\%#29059\fP from terminalmage/issue28072
  242241. .IP \(bu 2
  242242. 82e223087e Work around upstream pygit2 bug
  242243. .UNINDENT
  242244. .IP \(bu 2
  242245. \fBPR\fP \fI\%#29112\fP: (\fI\%eliasp\fP) Prevent backtrace (KeyError) in \fIssh_known_hosts.present\fP state
  242246. @ \fI2015\-11\-25 16:25:57 UTC\fP
  242247. .INDENT 2.0
  242248. .IP \(bu 2
  242249. cc69c87dd2 Merge pull request \fI\%#29112\fP from eliasp/ssh_known_hosts.present\-backtrace\-test
  242250. .IP \(bu 2
  242251. 3f19c311e8 Prevent backtrace (KeyError) in \fIssh_known_hosts.present\fP state
  242252. .UNINDENT
  242253. .IP \(bu 2
  242254. \fBPR\fP \fI\%#29178\fP: (\fI\%whytewolf\fP) Profile not being passed to keystone.endpoint_get in _auth. so if a p…
  242255. @ \fI2015\-11\-25 16:09:49 UTC\fP
  242256. .INDENT 2.0
  242257. .IP \(bu 2
  242258. 7775d65089 Merge pull request \fI\%#29178\fP from whytewolf/glance_keystone_profile_fix
  242259. .IP \(bu 2
  242260. 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.
  242261. .UNINDENT
  242262. .UNINDENT
  242263. .SS Salt 2015.8.5 Release Notes
  242264. .sp
  242265. Version 2015.8.5 is a bugfix release for 2015.8.0\&.
  242266. .sp
  242267. \fBIMPORTANT:\fP
  242268. .INDENT 0.0
  242269. .INDENT 3.5
  242270. About this Release
  242271. Salt 2015.8.5 is identical to the 2015.8.4 release with the addition of a
  242272. fix for \fI\%issue #30820\fP, fixed by \fI\%PR #30833\fP\&. See here for the 2015.8.4 release notes.
  242273. .UNINDENT
  242274. .UNINDENT
  242275. .SS Known Issue in \fBboto_*\fP execution modules
  242276. .sp
  242277. This release contains an issue that causes the \fBboto_*\fP execution modules to
  242278. display a \fB__salt__ not defined\fP error (\fI\%issue #30300\fP). This issue will be
  242279. fixed in an upcoming release, but can be manually resolved by completing the
  242280. following:
  242281. .INDENT 0.0
  242282. .IP 1. 3
  242283. Download the \fBboto_*\fP execution modules that you would like to update from
  242284. the 2015.8 branch of Salt. A complete list of affected modules with the
  242285. specific changes is available in :pull\(ga30867\(ga.
  242286. .sp
  242287. A simple way to get the updated modules is to \fI\%download\fP a zip file of the
  242288. 2015.8 branch from GitHub. The updated modules are in the \fBsalt\emodules\fP
  242289. directory.
  242290. .IP 2. 3
  242291. Place the \fBboto_*\fP modules into \fBsalt://_modules\fP\&.
  242292. .IP 3. 3
  242293. Run the following command to sync these modules to all Salt minions:
  242294. .INDENT 3.0
  242295. .INDENT 3.5
  242296. .sp
  242297. .nf
  242298. .ft C
  242299. salt \(aq*\(aq saltutil.sync_modules
  242300. .ft P
  242301. .fi
  242302. .UNINDENT
  242303. .UNINDENT
  242304. .UNINDENT
  242305. .SS Changelog for v2015.8.4..v2015.8.5
  242306. .sp
  242307. \fIGenerated at: 2018\-05\-27 23:47:32 UTC\fP
  242308. .INDENT 0.0
  242309. .IP \(bu 2
  242310. c7db4350d5 Fix regression in scanning for state with \(aqname\(aq param
  242311. .UNINDENT
  242312. .SS Salt 2015.8.7 Release Notes
  242313. .sp
  242314. Version 2015.8.7 is a bugfix release for 2015.8.0\&.
  242315. .sp
  242316. \fBNOTE:\fP
  242317. .INDENT 0.0
  242318. .INDENT 3.5
  242319. Salt 2015.8.4, 2015.8.5, and 2015.8.7 were all released within a short
  242320. period due to regressions found soon after the releases of 2015.8.4 and
  242321. 2015.8.5. See here for the 2015.8.4 release
  242322. notes, and here for the 2015.8.5 release notes.
  242323. .UNINDENT
  242324. .UNINDENT
  242325. .SS Statistics
  242326. .INDENT 0.0
  242327. .IP \(bu 2
  242328. Total Merges: \fB2\fP
  242329. .IP \(bu 2
  242330. Total Issue References: \fB1\fP
  242331. .IP \(bu 2
  242332. Total PR References: \fB5\fP
  242333. .IP \(bu 2
  242334. Contributors: \fB4\fP (\fI\%gtmanfred\fP, \fI\%justinta\fP, \fI\%pass\-by\-value\fP, \fI\%terminalmage\fP)
  242335. .UNINDENT
  242336. .SS Change to Epoch Support for YUM/DNF
  242337. .sp
  242338. For \fBpkg.installed\fP states, on Linux
  242339. distributions which use yum/dnf, packages which have a non\-zero epoch in the
  242340. version number now require this epoch to be included when specifying an exact
  242341. version for a package. For example:
  242342. .INDENT 0.0
  242343. .INDENT 3.5
  242344. .sp
  242345. .nf
  242346. .ft C
  242347. vim\-enhanced:
  242348. pkg.installed:
  242349. \- version: 2:7.4.160\-1.el7
  242350. .ft P
  242351. .fi
  242352. .UNINDENT
  242353. .UNINDENT
  242354. .sp
  242355. The \fBpkg.latest_version\fP and
  242356. \fBpkg.list_repo_pkgs\fP functions
  242357. can be used to get the correct version string to use, as they will now contain
  242358. the epoch when it is non\-zero.
  242359. .SS Changelog for v2015.8.5..v2015.8.7
  242360. .sp
  242361. \fIGenerated at: 2018\-05\-28 00:17:59 UTC\fP
  242362. .INDENT 0.0
  242363. .IP \(bu 2
  242364. \fBPR\fP \fI\%#31111\fP: (\fI\%justinta\fP) Fixes failing npm test on arch.
  242365. @ \fI2016\-02\-10 21:51:47 UTC\fP
  242366. .INDENT 2.0
  242367. .IP \(bu 2
  242368. 8d84c636cf Merge pull request \fI\%#31111\fP from jtand/8_4_npm_fix
  242369. .IP \(bu 2
  242370. b0a48e5ef2 Fixes failing npm test on arch.
  242371. .IP \(bu 2
  242372. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run
  242373. .UNINDENT
  242374. .IP \(bu 2
  242375. \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)
  242376. .IP \(bu 2
  242377. \fBPR\fP \fI\%#31092\fP: (\fI\%terminalmage\fP) Apply PR \fI\%#31031\fP to 2015.8.4.follow_up
  242378. @ \fI2016\-02\-10 20:54:37 UTC\fP
  242379. .INDENT 2.0
  242380. .IP \(bu 2
  242381. \fBPR\fP \fI\%#31031\fP: (\fI\%terminalmage\fP) More complete fix for \fI\%#31014\fP (refs: \fI\%#31092\fP)
  242382. .IP \(bu 2
  242383. \fBPR\fP \fI\%#31015\fP: (\fI\%gtmanfred\fP) include possible epoch in version for rpm (refs: \fI\%#31031\fP)
  242384. .IP \(bu 2
  242385. 5a6a93e98b Merge pull request \fI\%#31092\fP from terminalmage/issue31014\-2015.8.4.follow_up
  242386. .INDENT 2.0
  242387. .IP \(bu 2
  242388. 2767a4e519 Don\(aqt handle epoch specially for dnf
  242389. .IP \(bu 2
  242390. e5dfcc0ef2 More efficient way to add the epoch before version number
  242391. .IP \(bu 2
  242392. ed7462793c include possible epoch in version for rpm
  242393. .UNINDENT
  242394. .IP \(bu 2
  242395. 6c6b66aedd Comment multiprocessing line in minion config
  242396. .IP \(bu 2
  242397. 1f7dfefc4a Set multiprocessing to true in config.py
  242398. .IP \(bu 2
  242399. 433c645c20 Fix remove placeholder files
  242400. .IP \(bu 2
  242401. 71037560d4 Remove placeholder files
  242402. .IP \(bu 2
  242403. 20b381fdf7 Set overwrite to off
  242404. .IP \(bu 2
  242405. ca50f56d6c Fix boto_secgroup
  242406. .IP \(bu 2
  242407. fd571d23de Fix boto test failures
  242408. .IP \(bu 2
  242409. cfb6588744 Fix regression when contents_pillar/contents_grains is a list.
  242410. .IP \(bu 2
  242411. 881d8669e3 utils.aws: use time lib to conver to epoch seconds
  242412. .IP \(bu 2
  242413. 31412920fc The call to cp.get_url needs the saltenv, if you\(aqre using environments other than base, it will fail.
  242414. .IP \(bu 2
  242415. a8694014a9 Fix regression in git_pillar when multiple remotes are configured
  242416. .IP \(bu 2
  242417. 2243f25be5 Properly set the default value for pillar_merge_lists
  242418. .IP \(bu 2
  242419. c7472ff6aa Lint
  242420. .IP \(bu 2
  242421. d868711a83 Fix failing boto_vpc module unit tests
  242422. .IP \(bu 2
  242423. ed09516469 Fix failing state module tests
  242424. .IP \(bu 2
  242425. fd0e940088 Pylint fix
  242426. .IP \(bu 2
  242427. bc780a7c25 Don\(aqt use pack=pack. Just pass in pack=__salt__ always.
  242428. .IP \(bu 2
  242429. 1ae022dbfe Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules.
  242430. .IP \(bu 2
  242431. 1efaff107d Remove bad symlinks in osx pkg dirs
  242432. .UNINDENT
  242433. .UNINDENT
  242434. .SS Salt 2015.8.8 Release Notes
  242435. .sp
  242436. Version 2015.8.8 is a bugfix release for 2015.8.0\&.
  242437. .sp
  242438. \fBIMPORTANT:\fP
  242439. .INDENT 0.0
  242440. .INDENT 3.5
  242441. Version 2015.8.8.2 was released shortly after
  242442. 2015.8.8 to fix several known issues. If you installed 2015.8.8 before
  242443. 03/30/2016, you likely have installed 2015.8.8 and can optionally upgrade
  242444. (find out which version you have installed using \fBsalt \-\-version\fP\&.
  242445. .UNINDENT
  242446. .UNINDENT
  242447. .SS Statistics
  242448. .INDENT 0.0
  242449. .IP \(bu 2
  242450. Total Merges: \fB313\fP
  242451. .IP \(bu 2
  242452. Total Issue References: \fB146\fP
  242453. .IP \(bu 2
  242454. Total PR References: \fB312\fP
  242455. .IP \(bu 2
  242456. 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)
  242457. .UNINDENT
  242458. .SS Security Fix
  242459. .sp
  242460. \fBCVE\-2016\-3176\fP Insecure configuration of PAM external authentication service
  242461. .sp
  242462. This issue affects all Salt versions prior to 2015.8.8/2015.5.10 when PAM
  242463. external authentication is enabled. This issue involves
  242464. passing an alternative PAM authentication service with a command that is sent
  242465. to LocalClient, enabling the attacker to bypass the
  242466. configured authentication service. Thank you to Dylan Frese <\fI\%dmfrese@gmail.com\fP>
  242467. for bringing this issue to our attention.
  242468. .sp
  242469. This update defines the PAM eAuth \fBservice\fP that users authenticate against
  242470. in the Salt Master configuration.
  242471. .SS Read Before Upgrading Debian 7 (Wheezy) from 2015.8.7 to 2015.8.8
  242472. .sp
  242473. Before you upgrade from 2015.8.7 on Debian 7, you must run the following
  242474. commands to remove previous packages:
  242475. .INDENT 0.0
  242476. .INDENT 3.5
  242477. .sp
  242478. .nf
  242479. .ft C
  242480. sudo apt\-get remove python\-pycrypto
  242481. sudo apt\-get remove python\-apache\-libcloud
  242482. .ft P
  242483. .fi
  242484. .UNINDENT
  242485. .UNINDENT
  242486. .sp
  242487. Note that \fBpython\-pycrypto\fP will likely remove \fBpython\-apache\-libcloud\fP, so
  242488. the second command might not be necessary. These have been replaced by
  242489. \fBpython\-crypto\fP and \fBpython\-libcloud\fP with ~bpo70+1 moniker.
  242490. .SS Read Before Upgrading Debian 8 (Jessie) from Salt Versions Earlier than 2015.8.4
  242491. .sp
  242492. Salt \fBsystemd\fP service files are missing the following statement in these
  242493. versions:
  242494. .INDENT 0.0
  242495. .INDENT 3.5
  242496. .sp
  242497. .nf
  242498. .ft C
  242499. [Service]
  242500. KillMode=process
  242501. .ft P
  242502. .fi
  242503. .UNINDENT
  242504. .UNINDENT
  242505. .sp
  242506. This statement must be added to successfully upgrade on these earlier versions
  242507. of Salt.
  242508. .SS Changelog for v2015.8.7..v2015.8.8
  242509. .sp
  242510. \fIGenerated at: 2018\-05\-28 00:23:11 UTC\fP
  242511. .INDENT 0.0
  242512. .IP \(bu 2
  242513. \fBPR\fP \fI\%#31964\fP: (\fI\%jfindlay\fP) update 2015.8.8 release notes
  242514. @ \fI2016\-03\-17 21:22:04 UTC\fP
  242515. .INDENT 2.0
  242516. .IP \(bu 2
  242517. b9d0336cf8 Merge pull request \fI\%#31964\fP from jfindlay/2015.8
  242518. .IP \(bu 2
  242519. b984659678 update 2015.8.8 release notes
  242520. .UNINDENT
  242521. .IP \(bu 2
  242522. \fBISSUE\fP \fI\%#31586\fP: (\fI\%frogunder\fP) Proxy minion service.modules fails (refs: \fI\%#31601\fP)
  242523. .IP \(bu 2
  242524. \fBISSUE\fP \fI\%#31585\fP: (\fI\%frogunder\fP) Proxy minion commands causing exceptions (refs: \fI\%#31601\fP)
  242525. .IP \(bu 2
  242526. \fBPR\fP \fI\%#31947\fP: (\fI\%cro\fP) Move proxymodule assignment earlier in proxy minion init
  242527. @ \fI2016\-03\-17 18:14:23 UTC\fP
  242528. .INDENT 2.0
  242529. .IP \(bu 2
  242530. \fBPR\fP \fI\%#31601\fP: (\fI\%cro\fP) Proxy fixes for \fI\%#31585\fP and \fI\%#31586\fP
  242531. .IP \(bu 2
  242532. fefb694104 Merge pull request \fI\%#31947\fP from cro/bp\-31601
  242533. .IP \(bu 2
  242534. 4eb193edb7 Lint, unrelated but fixed anyway.
  242535. .IP \(bu 2
  242536. d661081016 Lint.
  242537. .IP \(bu 2
  242538. 59e0a6f923 Dont add this file
  242539. .IP \(bu 2
  242540. c68b968403 Old\-style proxymodules need to be setup earlier in minion init. Also include more correct comments in config.py
  242541. .UNINDENT
  242542. .IP \(bu 2
  242543. \fBPR\fP \fI\%#31948\fP: (\fI\%rallytime\fP) Revert "not not" deletion and add comment as to why that is there
  242544. @ \fI2016\-03\-17 17:00:22 UTC\fP
  242545. .INDENT 2.0
  242546. .IP \(bu 2
  242547. a86490ee68 Merge pull request \fI\%#31948\fP from rallytime/disable\-pylint\-error
  242548. .IP \(bu 2
  242549. 86196cd59d Revert "not not" deletion and add comment as to why that is there
  242550. .UNINDENT
  242551. .IP \(bu 2
  242552. \fBPR\fP \fI\%#31952\fP: (\fI\%rallytime\fP) Fix lint for 2015.8 branch
  242553. @ \fI2016\-03\-17 16:59:49 UTC\fP
  242554. .INDENT 2.0
  242555. .IP \(bu 2
  242556. db3af864ae Merge pull request \fI\%#31952\fP from rallytime/lint\-2015.8
  242557. .IP \(bu 2
  242558. 3e964ec9d4 Fix lint for 2015.8 branch
  242559. .UNINDENT
  242560. .IP \(bu 2
  242561. \fBPR\fP \fI\%#31933\fP: (\fI\%rallytime\fP) Fix linking syntax in testing docs
  242562. @ \fI2016\-03\-17 14:44:13 UTC\fP
  242563. .INDENT 2.0
  242564. .IP \(bu 2
  242565. 9ab4d6164b Merge pull request \fI\%#31933\fP from rallytime/fix\-test\-links
  242566. .IP \(bu 2
  242567. 06dd2c0411 Fix linking syntax in testing docs
  242568. .UNINDENT
  242569. .IP \(bu 2
  242570. \fBISSUE\fP \fI\%#31586\fP: (\fI\%frogunder\fP) Proxy minion service.modules fails (refs: \fI\%#31601\fP)
  242571. .IP \(bu 2
  242572. \fBISSUE\fP \fI\%#31585\fP: (\fI\%frogunder\fP) Proxy minion commands causing exceptions (refs: \fI\%#31601\fP)
  242573. .IP \(bu 2
  242574. \fBPR\fP \fI\%#31930\fP: (\fI\%cro\fP) Backport changes from 2016.3
  242575. @ \fI2016\-03\-16 22:12:29 UTC\fP
  242576. .INDENT 2.0
  242577. .IP \(bu 2
  242578. \fBPR\fP \fI\%#31601\fP: (\fI\%cro\fP) Proxy fixes for \fI\%#31585\fP and \fI\%#31586\fP
  242579. .IP \(bu 2
  242580. 723d0ca19f Merge pull request \fI\%#31930\fP from cro/bp\-31601
  242581. .IP \(bu 2
  242582. aa9a288b5a Add these files back in
  242583. .IP \(bu 2
  242584. 916ef26957 Remove .orig file mistakenly added, reformat example.
  242585. .IP \(bu 2
  242586. 3c8185571d Lint.
  242587. .IP \(bu 2
  242588. 9de9b9e86d Missin import
  242589. .IP \(bu 2
  242590. d571f3b8fe Backport PR\(ga#31601\(ga_
  242591. .UNINDENT
  242592. .IP \(bu 2
  242593. \fBPR\fP \fI\%#31924\fP: (\fI\%jfindlay\fP) update 2015.8.8 release notes
  242594. @ \fI2016\-03\-16 22:10:15 UTC\fP
  242595. .INDENT 2.0
  242596. .IP \(bu 2
  242597. ce765ad2df Merge pull request \fI\%#31924\fP from jfindlay/2015.8
  242598. .IP \(bu 2
  242599. 64dd8aebb2 update 2015.8.8 release notes
  242600. .UNINDENT
  242601. .IP \(bu 2
  242602. \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)
  242603. .IP \(bu 2
  242604. \fBPR\fP \fI\%#31922\fP: (\fI\%cachedout\fP) For 2015.8 head
  242605. @ \fI2016\-03\-16 19:07:11 UTC\fP
  242606. .INDENT 2.0
  242607. .IP \(bu 2
  242608. 390ef9fea7 Merge pull request \fI\%#31922\fP from cachedout/issue_31890_1
  242609. .IP \(bu 2
  242610. da075d9341 For 2015.8 head
  242611. .UNINDENT
  242612. .IP \(bu 2
  242613. \fBPR\fP \fI\%#31904\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  242614. @ \fI2016\-03\-16 17:23:54 UTC\fP
  242615. .INDENT 2.0
  242616. .IP \(bu 2
  242617. 03e8b72655 Merge pull request \fI\%#31904\fP from rallytime/merge\-2015.8
  242618. .IP \(bu 2
  242619. f8b4b1b211 last pylint!
  242620. .IP \(bu 2
  242621. 892591a39c More pylint fixes
  242622. .IP \(bu 2
  242623. 35b2076584 Pylint fixes
  242624. .IP \(bu 2
  242625. 1a1ce05186 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  242626. .INDENT 2.0
  242627. .IP \(bu 2
  242628. 440e0dcbe0 Merge pull request \fI\%#31825\fP from jtand/udpate_pylintrc
  242629. .INDENT 2.0
  242630. .IP \(bu 2
  242631. 9a14e02766 Updated beacons/sh.py to work with enumerate()
  242632. .IP \(bu 2
  242633. 0ecec691a0 Adjusted beacons to work with enumerate better
  242634. .IP \(bu 2
  242635. f509b4113e Fixed final lint error
  242636. .IP \(bu 2
  242637. 5945b3f11f Fix and disable pylint errors
  242638. .IP \(bu 2
  242639. 06ae6eaf55 Fixed pylint errors on jboss state and module
  242640. .IP \(bu 2
  242641. de96db97c8 Fixed more pylint errors, and disabled some more
  242642. .IP \(bu 2
  242643. c07b0a20b5 Merge branch \(aqlint_fixes\(aq into udpate_pylintrc
  242644. .INDENT 2.0
  242645. .IP \(bu 2
  242646. 2e6a152308 Fixed lint error in lxc.py
  242647. .IP \(bu 2
  242648. 908ca1a439 Fixed lint error in ssh_py_shim
  242649. .IP \(bu 2
  242650. 404c1b50f7 Changed range(len()) to enumerate()
  242651. .IP \(bu 2
  242652. 1e13586546 Changed range(len()) to enumerate()
  242653. .UNINDENT
  242654. .IP \(bu 2
  242655. 9ccce7a9a5 Added more disables
  242656. .IP \(bu 2
  242657. 9c1aab3b4e Updated .testing.pylintrc to match newer versions of pylint
  242658. .UNINDENT
  242659. .IP \(bu 2
  242660. 471c9444a3 Merge pull request \fI\%#31900\fP from rallytime/fix\-psutil\-warning
  242661. .INDENT 2.0
  242662. .IP \(bu 2
  242663. 22403d69ae Add "python module" clarification to ps __virtual__ warning.
  242664. .UNINDENT
  242665. .IP \(bu 2
  242666. c44c1b5e59 Merge pull request \fI\%#31878\fP from rallytime/fix\-psutil\-warning
  242667. .INDENT 2.0
  242668. .IP \(bu 2
  242669. 44b29f72a1 Make sure __virtual__ error message is helpful when psutil is missing
  242670. .UNINDENT
  242671. .IP \(bu 2
  242672. 5c592b6768 Merge pull request \fI\%#31852\fP from rallytime/merge\-2015.5
  242673. .INDENT 2.0
  242674. .IP \(bu 2
  242675. 1470de17fa Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  242676. .IP \(bu 2
  242677. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  242678. .INDENT 2.0
  242679. .IP \(bu 2
  242680. 358fdad0c8 add 2014.7.8 release notes
  242681. .UNINDENT
  242682. .IP \(bu 2
  242683. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  242684. .INDENT 2.0
  242685. .IP \(bu 2
  242686. 6910fcc584 add 2014.7.9 release notes
  242687. .UNINDENT
  242688. .IP \(bu 2
  242689. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  242690. .IP \(bu 2
  242691. d73f70ebb2 Remove ability of authenticating user to specify pam service
  242692. .UNINDENT
  242693. .IP \(bu 2
  242694. 0cc1d5db03 Merge pull request \fI\%#31827\fP from gtmanfred/2015.5
  242695. .INDENT 2.0
  242696. .IP \(bu 2
  242697. 979173b78a Remove ability of authenticating user to specify pam service
  242698. .UNINDENT
  242699. .IP \(bu 2
  242700. 8cf0b9eb3d Merge pull request \fI\%#31810\fP from whiteinge/saltenv\-jinja\-var
  242701. .INDENT 2.0
  242702. .IP \(bu 2
  242703. cb72b19240 Fix outdated Jinja \(aqenv\(aq variable reference
  242704. .UNINDENT
  242705. .UNINDENT
  242706. .UNINDENT
  242707. .IP \(bu 2
  242708. \fBPR\fP \fI\%#31906\fP: (\fI\%sbreidba\fP) Win_dacl module: fix FULLCONTROL / FILE_ALL_ACCESS definition
  242709. @ \fI2016\-03\-16 15:20:19 UTC\fP
  242710. .INDENT 2.0
  242711. .IP \(bu 2
  242712. a4b3462346 Merge pull request \fI\%#31906\fP from sbreidba/win_dacl_fixes
  242713. .IP \(bu 2
  242714. 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).
  242715. .UNINDENT
  242716. .IP \(bu 2
  242717. \fBPR\fP \fI\%#31745\fP: (\fI\%isbm\fP) Fix the always\-false behavior on checking state
  242718. @ \fI2016\-03\-15 23:02:20 UTC\fP
  242719. .INDENT 2.0
  242720. .IP \(bu 2
  242721. b068eaa963 Merge pull request \fI\%#31745\fP from isbm/isbm\-always\-minion\-errcode\-2\-fix
  242722. .IP \(bu 2
  242723. 1882e1c960 Adjust test
  242724. .IP \(bu 2
  242725. f96c8f9b5e Keep first level away from lists.
  242726. .IP \(bu 2
  242727. baaed005b8 Fix PEP8 continuation
  242728. .IP \(bu 2
  242729. 1db61ea59a Fix the always\-false behavior on checking state (there are always lists at some point!)
  242730. .UNINDENT
  242731. .IP \(bu 2
  242732. \fBPR\fP \fI\%#31911\fP: (\fI\%rallytime\fP) Merge \fI\%#31903\fP with pylint fix
  242733. @ \fI2016\-03\-15 20:35:35 UTC\fP
  242734. .INDENT 2.0
  242735. .IP \(bu 2
  242736. \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)
  242737. .IP \(bu 2
  242738. d05c3eeba9 Merge pull request \fI\%#31911\fP from rallytime/merge\-31903\-with\-pylint
  242739. .IP \(bu 2
  242740. 85e5acd11a Merge \fI\%#31903\fP with pylint fix
  242741. .UNINDENT
  242742. .IP \(bu 2
  242743. \fBPR\fP \fI\%#31883\fP: (\fI\%paiou\fP) Fix scaleway cloud provider and manage x86 servers
  242744. @ \fI2016\-03\-15 20:31:18 UTC\fP
  242745. .INDENT 2.0
  242746. .IP \(bu 2
  242747. 819a4a8b54 Merge pull request \fI\%#31883\fP from mvpstars/scaleway\-x86
  242748. .IP \(bu 2
  242749. 1662a080e1 Update scaleway cloud provider to manage x86 servers
  242750. .UNINDENT
  242751. .IP \(bu 2
  242752. \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)
  242753. @ \fI2016\-03\-15 20:04:56 UTC\fP
  242754. .INDENT 2.0
  242755. .IP \(bu 2
  242756. 142c47c50d Merge pull request \fI\%#31903\fP from terminalmage/fix\-git\-pillar
  242757. .IP \(bu 2
  242758. af29940e1c Use remote_ref instead of local_ref to see if checkout is necessary
  242759. .UNINDENT
  242760. .IP \(bu 2
  242761. \fBPR\fP \fI\%#31845\fP: (\fI\%sakateka\fP) Now a check_file_meta deletes temporary files when test=True
  242762. @ \fI2016\-03\-15 19:55:21 UTC\fP
  242763. .INDENT 2.0
  242764. .IP \(bu 2
  242765. ffd65c36e5 Merge pull request \fI\%#31845\fP from sakateka/check_file_meta_clean_tmp
  242766. .IP \(bu 2
  242767. 5b30336b89 Now a check_file_meta deletes temporary files when test=True
  242768. .UNINDENT
  242769. .IP \(bu 2
  242770. \fBISSUE\fP \fI\%#31791\fP: (\fI\%alexbleotu\fP) Proxy minion starts spinning after running state.highstate (refs: \fI\%#31846\fP)
  242771. .IP \(bu 2
  242772. \fBISSUE\fP \fI\%#31728\fP: (\fI\%bgridley\fP) Custom grains syncing problem with proxy minion which causes high CPU utilization (refs: \fI\%#31846\fP)
  242773. .IP \(bu 2
  242774. \fBPR\fP \fI\%#31901\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31846\fP to 2015.8
  242775. @ \fI2016\-03\-15 19:12:43 UTC\fP
  242776. .INDENT 2.0
  242777. .IP \(bu 2
  242778. \fBPR\fP \fI\%#31846\fP: (\fI\%cro\fP) Proxy infinite loop (refs: \fI\%#31901\fP)
  242779. .IP \(bu 2
  242780. 7428c73724 Merge pull request \fI\%#31901\fP from rallytime/bp\-31846
  242781. .IP \(bu 2
  242782. 1edd6ce302 Extra comment.
  242783. .IP \(bu 2
  242784. 6c2ef03b11 Fix event bus flood caused by unexpected recursive call.
  242785. .UNINDENT
  242786. .IP \(bu 2
  242787. \fBPR\fP \fI\%#31905\fP: (\fI\%terminalmage\fP) Update versionadded directive
  242788. @ \fI2016\-03\-15 18:43:06 UTC\fP
  242789. .INDENT 2.0
  242790. .IP \(bu 2
  242791. 37f1ce9be2 Merge pull request \fI\%#31905\fP from terminalmage/update\-versionadded
  242792. .IP \(bu 2
  242793. dcc196c9e1 Update versionadded directive
  242794. .UNINDENT
  242795. .IP \(bu 2
  242796. \fBPR\fP \fI\%#31902\fP: (\fI\%rallytime\fP) Update versionadded tag for new funcs
  242797. @ \fI2016\-03\-15 18:41:08 UTC\fP
  242798. .INDENT 2.0
  242799. .IP \(bu 2
  242800. \fBPR\fP \fI\%#31857\fP: (\fI\%sjorge\fP) gen_password and del_password missing from solaris_shadow (refs: \fI\%#31902\fP)
  242801. .IP \(bu 2
  242802. 35f6407d11 Merge pull request \fI\%#31902\fP from rallytime/update\-version\-31857
  242803. .IP \(bu 2
  242804. 5cd09150cd Update versionadded tag for new funcs
  242805. .UNINDENT
  242806. .IP \(bu 2
  242807. \fBPR\fP \fI\%#31888\fP: (\fI\%terminalmage\fP) Fix salt.utils.decorators.Depends
  242808. @ \fI2016\-03\-15 17:09:54 UTC\fP
  242809. .INDENT 2.0
  242810. .IP \(bu 2
  242811. 1be9c91761 Merge pull request \fI\%#31888\fP from terminalmage/fix\-depends\-decorator
  242812. .IP \(bu 2
  242813. 394410e2b0 Add integration test for depends decorator
  242814. .IP \(bu 2
  242815. caa3cc1007 Fix salt.utils.decorators.Depends
  242816. .UNINDENT
  242817. .IP \(bu 2
  242818. \fBPR\fP \fI\%#31857\fP: (\fI\%sjorge\fP) gen_password and del_password missing from solaris_shadow (refs: \fI\%#31902\fP)
  242819. @ \fI2016\-03\-14 20:29:51 UTC\fP
  242820. .INDENT 2.0
  242821. .IP \(bu 2
  242822. d357e4ea44 Merge pull request \fI\%#31857\fP from sjorge/solarish_shadow
  242823. .IP \(bu 2
  242824. 38231303f3 .9 release as mentioned by rallytime
  242825. .IP \(bu 2
  242826. 3e25f70968 fix version added
  242827. .IP \(bu 2
  242828. d768ed25b4 develop, 2016.3 and 2015.8 has missing gen_password and del_password for shadow module
  242829. .UNINDENT
  242830. .IP \(bu 2
  242831. \fBPR\fP \fI\%#31879\fP: (\fI\%cro\fP) Clarify some comments
  242832. @ \fI2016\-03\-14 19:59:35 UTC\fP
  242833. .INDENT 2.0
  242834. .IP \(bu 2
  242835. 1b0b2d3f1a Merge pull request \fI\%#31879\fP from cro/idrac_fixes_0314
  242836. .IP \(bu 2
  242837. 42ef3a7970 Extra comment.
  242838. .UNINDENT
  242839. .IP \(bu 2
  242840. \fBISSUE\fP \fI\%#8927\fP: (\fI\%brutasse\fP) file state: unable to use \fIcontents_pillar\fP with \fItemplate: jinja\fP (refs: \fI\%#31815\fP)
  242841. .IP \(bu 2
  242842. \fBISSUE\fP \fI\%#26944\fP: (\fI\%boltronics\fP) file.managed contents and contents_pillar should support a template rendering engine (refs: \fI\%#31815\fP)
  242843. .IP \(bu 2
  242844. \fBISSUE\fP \fI\%#14664\fP: (\fI\%jacksontj\fP) Unable to have a template with file.managed contents (or contents_pillar) (refs: \fI\%#31815\fP)
  242845. .IP \(bu 2
  242846. \fBPR\fP \fI\%#31815\fP: (\fI\%dr4Ke\fP) Fix template on contents 2015.8
  242847. @ \fI2016\-03\-14 17:41:46 UTC\fP
  242848. .INDENT 2.0
  242849. .IP \(bu 2
  242850. fb81bbea23 Merge pull request \fI\%#31815\fP from dr4Ke/fix_template_on_contents_2015.8
  242851. .IP \(bu 2
  242852. dcd6f5a5a9 test for file.apply_template_on_contents
  242853. .IP \(bu 2
  242854. 10d882296d file.managed: templating contents, not just files
  242855. .UNINDENT
  242856. .IP \(bu 2
  242857. \fBPR\fP \fI\%#31818\fP: (\fI\%anlutro\fP) Prevent event logs from writing huge amounts of data
  242858. @ \fI2016\-03\-14 17:27:47 UTC\fP
  242859. .INDENT 2.0
  242860. .IP \(bu 2
  242861. aa120cb716 Merge pull request \fI\%#31818\fP from alprs/fix\-event_logging_spam
  242862. .IP \(bu 2
  242863. 83fa136da7 work on event logging
  242864. .UNINDENT
  242865. .IP \(bu 2
  242866. \fBISSUE\fP \fI\%#31293\fP: (\fI\%deuscapturus\fP) Git Pillars lose HEAD reference over time (refs: \fI\%#31836\fP)
  242867. .IP \(bu 2
  242868. \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)
  242869. .IP \(bu 2
  242870. \fBPR\fP \fI\%#31836\fP: (\fI\%terminalmage\fP) Fix git_pillar race condition
  242871. @ \fI2016\-03\-14 15:48:28 UTC\fP
  242872. .INDENT 2.0
  242873. .IP \(bu 2
  242874. f2445bdbdc Merge pull request \fI\%#31836\fP from terminalmage/issue31293
  242875. .IP \(bu 2
  242876. 5048fa857c Fix duplicate output
  242877. .IP \(bu 2
  242878. 155b84b88a salt.fileserver: Add ability to clear checkout locks
  242879. .IP \(bu 2
  242880. af410d8dd1 Pass through the lock_type
  242881. .IP \(bu 2
  242882. 3d7796d5dd salt.runners.cache: Add ability to clear checkout locks
  242883. .IP \(bu 2
  242884. 8e086099f5 salt.utils.gitfs: rewrite locking code
  242885. .IP \(bu 2
  242886. 06b212519c Add GitLockError exception class
  242887. .IP \(bu 2
  242888. ad04ccfb93 Strip whitespace when splitting
  242889. .UNINDENT
  242890. .IP \(bu 2
  242891. \fBPR\fP \fI\%#31824\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31819\fP to 2015.8
  242892. @ \fI2016\-03\-13 19:59:32 UTC\fP
  242893. .INDENT 2.0
  242894. .IP \(bu 2
  242895. \fBPR\fP \fI\%#31819\fP: (\fI\%mchugh19\fP) raise error on unsupported distro (refs: \fI\%#31824\fP)
  242896. .IP \(bu 2
  242897. 5464be07b1 Merge pull request \fI\%#31824\fP from rallytime/bp\-31819
  242898. .IP \(bu 2
  242899. 4d516adade raise error on unsupported distro
  242900. .UNINDENT
  242901. .IP \(bu 2
  242902. \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)
  242903. .IP \(bu 2
  242904. \fBPR\fP \fI\%#31856\fP: (\fI\%szeestraten\fP) Adds missing docs for Virtual Network and Subnet options in salt\-cloud Azure cloud profile
  242905. @ \fI2016\-03\-13 19:06:52 UTC\fP
  242906. .INDENT 2.0
  242907. .IP \(bu 2
  242908. \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)
  242909. .IP \(bu 2
  242910. 7781b357e0 Merge pull request \fI\%#31856\fP from szeestraten/add\-missing\-docs\-for\-azure\-cloud\-profile
  242911. .IP \(bu 2
  242912. a1a2229405 Adds missing docs for Azure cloud profile
  242913. .UNINDENT
  242914. .IP \(bu 2
  242915. \fBPR\fP \fI\%#31839\fP: (\fI\%jfindlay\fP) add 2015.8.8 release notes
  242916. @ \fI2016\-03\-11 23:23:34 UTC\fP
  242917. .INDENT 2.0
  242918. .IP \(bu 2
  242919. 3f88f3a8cf Merge pull request \fI\%#31839\fP from jfindlay/2015.8
  242920. .IP \(bu 2
  242921. 47ac41ba27 add 2015.8.8 release notes
  242922. .UNINDENT
  242923. .IP \(bu 2
  242924. \fBPR\fP \fI\%#31828\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  242925. @ \fI2016\-03\-11 20:40:37 UTC\fP
  242926. .INDENT 2.0
  242927. .IP \(bu 2
  242928. 46bdd10a56 Merge pull request \fI\%#31828\fP from gtmanfred/2015.8
  242929. .IP \(bu 2
  242930. 7c3134a3d3 Remove ability of authenticating user to specify pam service
  242931. .UNINDENT
  242932. .IP \(bu 2
  242933. \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)
  242934. .IP \(bu 2
  242935. \fBPR\fP \fI\%#31787\fP: (\fI\%anlutro\fP) Fix user_create and db_create for new versions of influxdb
  242936. @ \fI2016\-03\-11 15:19:22 UTC\fP
  242937. .INDENT 2.0
  242938. .IP \(bu 2
  242939. 3d370b471c Merge pull request \fI\%#31787\fP from alprs/fix\-influxdb_user
  242940. .IP \(bu 2
  242941. 6a5211c8d8 don\(aqt swallow exceptions
  242942. .IP \(bu 2
  242943. a7e9c1e381 fix db_create for influxdb 0.9+
  242944. .IP \(bu 2
  242945. 5a8a645d4b fix create_user for new versions of influxdb
  242946. .UNINDENT
  242947. .IP \(bu 2
  242948. \fBPR\fP \fI\%#31800\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  242949. @ \fI2016\-03\-10 20:49:53 UTC\fP
  242950. .INDENT 2.0
  242951. .IP \(bu 2
  242952. 7fb2331ebc Merge pull request \fI\%#31800\fP from rallytime/merge\-2015.8
  242953. .IP \(bu 2
  242954. 44c15f0b16 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  242955. .IP \(bu 2
  242956. 970ef0e445 Merge pull request \fI\%#31744\fP from brejoc/fix\-attribute\-error\-with\-older\-libcloud/2015.5
  242957. .INDENT 2.0
  242958. .IP \(bu 2
  242959. bb29dc2283 Added version to libcloud depends statement
  242960. .IP \(bu 2
  242961. 87f9534fce Added log message with update suggestion for libcloud
  242962. .IP \(bu 2
  242963. 72eab406cd Fix for AttributeError with libcloud <0.15
  242964. .UNINDENT
  242965. .IP \(bu 2
  242966. df2d23ba5d Merge pull request \fI\%#31740\fP from terminalmage/issue31666
  242967. .INDENT 2.0
  242968. .IP \(bu 2
  242969. aeaf5864cd Fall back to False when pillar_opts not set
  242970. .IP \(bu 2
  242971. fe19d77eb4 Add default value for pillar_opts on minion
  242972. .UNINDENT
  242973. .IP \(bu 2
  242974. e22f5c0a26 Merge pull request \fI\%#31750\fP from rallytime/bp\-26170
  242975. .INDENT 2.0
  242976. .IP \(bu 2
  242977. 3c11234a05 Make sure variable is a dictionary before popping something from it.
  242978. .UNINDENT
  242979. .IP \(bu 2
  242980. 9162925dd0 Merge pull request \fI\%#31689\fP from rallytime/bp\-29467
  242981. .INDENT 2.0
  242982. .IP \(bu 2
  242983. 1f8f4cb99b Update module.py
  242984. .UNINDENT
  242985. .UNINDENT
  242986. .IP \(bu 2
  242987. \fBPR\fP \fI\%#31797\fP: (\fI\%Ch3LL\fP) Change pkg name to less for suse pkg.info_installed test
  242988. @ \fI2016\-03\-10 19:08:16 UTC\fP
  242989. .INDENT 2.0
  242990. .IP \(bu 2
  242991. 75dfb2ed40 Merge pull request \fI\%#31797\fP from Ch3LL/fix_pkginfo_test
  242992. .IP \(bu 2
  242993. 910f0d9ffc change pkg name to less for suse
  242994. .UNINDENT
  242995. .IP \(bu 2
  242996. \fBISSUE\fP \fI\%#31617\fP: (\fI\%tampakrap\fP) service.running fails on sle11 sp3 and sp4 (refs: \fI\%#31629\fP, \fI\%#31793\fP)
  242997. .IP \(bu 2
  242998. \fBPR\fP \fI\%#31793\fP: (\fI\%xopher\-mc\fP) fixing init system detection on sles 11, refs \fI\%#31617\fP
  242999. @ \fI2016\-03\-10 18:42:27 UTC\fP
  243000. .INDENT 2.0
  243001. .IP \(bu 2
  243002. 1386b72bbf Merge pull request \fI\%#31793\fP from xopher\-mc/fix_sles_state_service_module
  243003. .IP \(bu 2
  243004. d242cb19b4 fixing init system dectection on sles 11, refs \fI\%#31617\fP
  243005. .UNINDENT
  243006. .IP \(bu 2
  243007. \fBPR\fP \fI\%#31786\fP: (\fI\%isbm\fP) Bugfix: zypper doesn\(aqt detect base product on SLE11 series
  243008. @ \fI2016\-03\-10 18:12:46 UTC\fP
  243009. .INDENT 2.0
  243010. .IP \(bu 2
  243011. 2f28c166dd Merge pull request \fI\%#31786\fP from isbm/isbm\-zypper\-list\-products\-sles11
  243012. .IP \(bu 2
  243013. ee1a002673 Update test case to cover SLE11 and SLE12
  243014. .IP \(bu 2
  243015. 4b134fb2ab Add SLE11 product info snapshot, rename previous
  243016. .IP \(bu 2
  243017. 3c5fc857b2 Bugfix: on SLE11 series base product reported as additional
  243018. .UNINDENT
  243019. .IP \(bu 2
  243020. \fBISSUE\fP \fI\%#31776\fP: (\fI\%gtmanfred\fP) ProxyMinion does not close connections (at least with esxi proxy) (refs: \fI\%#31780\fP)
  243021. .IP \(bu 2
  243022. \fBPR\fP \fI\%#31780\fP: (\fI\%gtmanfred\fP) use already created vsphere connection
  243023. @ \fI2016\-03\-10 17:41:53 UTC\fP
  243024. .INDENT 2.0
  243025. .IP \(bu 2
  243026. d6f669623c Merge pull request \fI\%#31780\fP from gtmanfred/2015.8
  243027. .IP \(bu 2
  243028. 070eaf07f0 use already created vsphere connection
  243029. .UNINDENT
  243030. .IP \(bu 2
  243031. \fBISSUE\fP \fI\%#31772\fP: (\fI\%sbreidba\fP) win_dacl state causes state.apply output to be YAML, not highstate (refs: \fI\%#31779\fP)
  243032. .IP \(bu 2
  243033. \fBPR\fP \fI\%#31779\fP: (\fI\%sbreidba\fP) win_dacl state & module: return comment field as strings, not lists.
  243034. @ \fI2016\-03\-10 17:41:08 UTC\fP
  243035. .INDENT 2.0
  243036. .IP \(bu 2
  243037. a067de3712 Merge pull request \fI\%#31779\fP from sbreidba/win\-dacl\-highstate\-output\-2015.8
  243038. .IP \(bu 2
  243039. aeb2bfcf46 win_dacl state & module: return comment field as strings, not lists.
  243040. .UNINDENT
  243041. .IP \(bu 2
  243042. \fBISSUE\fP \fI\%#31563\fP: (\fI\%sjorge\fP) regression in 2016.3 from today? (refs: \fI\%#31723\fP, \fI\%#31707\fP)
  243043. .IP \(bu 2
  243044. \fBPR\fP \fI\%#31723\fP: (\fI\%sjorge\fP) file_ignore_regex is a list, not bool
  243045. @ \fI2016\-03\-09 23:36:10 UTC\fP
  243046. .INDENT 2.0
  243047. .IP \(bu 2
  243048. \fBPR\fP \fI\%#31707\fP: (\fI\%sjorge\fP) Fix incorrect default types for master_tops and file_ignore_regex (refs: \fI\%#31723\fP)
  243049. .IP \(bu 2
  243050. baeefac252 Merge pull request \fI\%#31723\fP from sjorge/2015.8\-file_ignore_regex
  243051. .IP \(bu 2
  243052. df1ba94cbb file_ignore_regex is a list, not bool
  243053. .UNINDENT
  243054. .IP \(bu 2
  243055. \fBISSUE\fP \fI\%#27960\fP: (\fI\%The\-Loeki\fP) salt\-cloud CLI 2015.8 borks out with SaltClientError: \(aqtimeout\(aq (refs: \fI\%#31747\fP)
  243056. .IP \(bu 2
  243057. \fBPR\fP \fI\%#31747\fP: (\fI\%techhat\fP) Use get_local_client with MASTER opts, not MINION
  243058. @ \fI2016\-03\-09 23:14:58 UTC\fP
  243059. .INDENT 2.0
  243060. .IP \(bu 2
  243061. cd43cf919c Merge pull request \fI\%#31747\fP from techhat/issue27960
  243062. .IP \(bu 2
  243063. 44c100d610 Use get_local_client with MASTER opts, not MINION
  243064. .UNINDENT
  243065. .IP \(bu 2
  243066. \fBPR\fP \fI\%#31688\fP: (\fI\%whiteinge\fP) Various SMTP returner fixes
  243067. @ \fI2016\-03\-09 22:40:37 UTC\fP
  243068. .INDENT 2.0
  243069. .IP \(bu 2
  243070. 286ea1f61b Merge pull request \fI\%#31688\fP from whiteinge/smtp\-renderer
  243071. .IP \(bu 2
  243072. 76671b6a81 Check if we have a StringIO and grab the string instead
  243073. .IP \(bu 2
  243074. 17b8cd755f Add a default for the subject
  243075. .IP \(bu 2
  243076. 26479bee24 Clean up the SMTP returner docstring and show an actual config example
  243077. .IP \(bu 2
  243078. 74563f17ed Make sure the email subject and body are strings
  243079. .IP \(bu 2
  243080. fc69d08e8e Default to just \(aqjinja\(aq for the SMTP renderer
  243081. .IP \(bu 2
  243082. 2af7cd2789 Add missing \(aqport\(aq to smtp options
  243083. .UNINDENT
  243084. .IP \(bu 2
  243085. \fBPR\fP \fI\%#31752\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31686\fP to 2015.8
  243086. @ \fI2016\-03\-09 21:23:01 UTC\fP
  243087. .INDENT 2.0
  243088. .IP \(bu 2
  243089. \fBPR\fP \fI\%#31686\fP: (\fI\%myii\fP) Fix typo in example for section \fIwinrepo_dir_ng\fP (refs: \fI\%#31752\fP)
  243090. .IP \(bu 2
  243091. 1d6d982e5c Merge pull request \fI\%#31752\fP from rallytime/bp\-31686
  243092. .IP \(bu 2
  243093. e4df5d9a55 Fix typo in example for section \fIwinrepo_dir_ng\fP
  243094. .UNINDENT
  243095. .IP \(bu 2
  243096. \fBPR\fP \fI\%#31733\fP: (\fI\%jacobhammons\fP) docs to clarify cloud configuration
  243097. @ \fI2016\-03\-09 20:54:10 UTC\fP
  243098. .INDENT 2.0
  243099. .IP \(bu 2
  243100. ec90294442 Merge pull request \fI\%#31733\fP from jacobhammons/cloud\-docs
  243101. .IP \(bu 2
  243102. 209c641a41 Made udpates as suggested by @rallytime
  243103. .IP \(bu 2
  243104. 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
  243105. .UNINDENT
  243106. .IP \(bu 2
  243107. \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)
  243108. .IP \(bu 2
  243109. \fBPR\fP \fI\%#31775\fP: (\fI\%techhat\fP) Show correct provider/driver name
  243110. @ \fI2016\-03\-09 20:53:10 UTC\fP
  243111. .INDENT 2.0
  243112. .IP \(bu 2
  243113. 92ba7f3495 Merge pull request \fI\%#31775\fP from techhat/correctmsg
  243114. .IP \(bu 2
  243115. c1433650b4 Show correct provider/driver name
  243116. .UNINDENT
  243117. .IP \(bu 2
  243118. \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)
  243119. .IP \(bu 2
  243120. \fBPR\fP \fI\%#31754\fP: (\fI\%techhat\fP) Check all providers, not just the current one
  243121. @ \fI2016\-03\-09 18:38:19 UTC\fP
  243122. .INDENT 2.0
  243123. .IP \(bu 2
  243124. 249a3602eb Merge pull request \fI\%#31754\fP from techhat/issue26498
  243125. .IP \(bu 2
  243126. 08c61446b7 Check all providers, not just the current one
  243127. .UNINDENT
  243128. .IP \(bu 2
  243129. \fBISSUE\fP \fI\%#31639\fP: (\fI\%mshirley\fP) salt\-cloud digital ocean api v2 doesn\(aqt implement all available actions (refs: \fI\%#31735\fP)
  243130. .IP \(bu 2
  243131. \fBPR\fP \fI\%#31735\fP: (\fI\%rallytime\fP) Add reboot, start, and stop actions to digital ocean driver
  243132. @ \fI2016\-03\-09 17:57:58 UTC\fP
  243133. .INDENT 2.0
  243134. .IP \(bu 2
  243135. 7ad521f7a5 Merge pull request \fI\%#31735\fP from rallytime/fix\-31639
  243136. .IP \(bu 2
  243137. 67d1aa6740 Remove experimental/incomplete function
  243138. .IP \(bu 2
  243139. b209623ca9 Add reboot, start, and stop actions to digital ocean driver
  243140. .UNINDENT
  243141. .IP \(bu 2
  243142. \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)
  243143. .IP \(bu 2
  243144. \fBPR\fP \fI\%#31770\fP: (\fI\%anlutro\fP) Fix influxdb user functionality for version 0.9+
  243145. @ \fI2016\-03\-09 17:09:26 UTC\fP
  243146. .INDENT 2.0
  243147. .IP \(bu 2
  243148. fd3610c6a4 Merge pull request \fI\%#31770\fP from alprs/fix\-influxdb_user
  243149. .IP \(bu 2
  243150. 1349bdd2e8 fix influxdb user functionality for version 0.9+
  243151. .UNINDENT
  243152. .IP \(bu 2
  243153. \fBPR\fP \fI\%#31743\fP: (\fI\%Talkless\fP) Fix parentheses missmatch in documentation
  243154. @ \fI2016\-03\-08 18:01:23 UTC\fP
  243155. .INDENT 2.0
  243156. .IP \(bu 2
  243157. c0868307df Merge pull request \fI\%#31743\fP from Talkless/patch\-1
  243158. .IP \(bu 2
  243159. 26ff46dbc6 Fix parenthesis missmatch in documentation
  243160. .UNINDENT
  243161. .IP \(bu 2
  243162. \fBPR\fP \fI\%#31162\fP: (\fI\%isbm\fP) Remove MD5 digest from everywhere and default to SHA256
  243163. @ \fI2016\-03\-07 19:11:36 UTC\fP
  243164. .INDENT 2.0
  243165. .IP \(bu 2
  243166. 826fea6582 Merge pull request \fI\%#31162\fP from isbm/isbm\-md5\-to\-sha1
  243167. .IP \(bu 2
  243168. 9d64abed0c Fix PyLint
  243169. .IP \(bu 2
  243170. 327ea11139 Add daemons unit test to verify hash_type settings
  243171. .IP \(bu 2
  243172. f3aecc0b22 Standardize logging
  243173. .IP \(bu 2
  243174. 51f556243d Verify if hash_type is using vulnerable algorithms
  243175. .IP \(bu 2
  243176. 95ec634f00 Report environment failure, if any
  243177. .IP \(bu 2
  243178. 63eedefe54 Use mixin for the daemon classes
  243179. .IP \(bu 2
  243180. 82dd383630 Create a mixin class that will be reused in the similar instances (daemons)
  243181. .IP \(bu 2
  243182. 36da8f5efa Use MD5 hash algorithm by default (until deprecated)
  243183. .IP \(bu 2
  243184. 584325797c Remove SHA1 in favor of SHA256
  243185. .IP \(bu 2
  243186. 373493c13f Remove SHA1 for SHA256
  243187. .IP \(bu 2
  243188. d5cb4dd424 Remove sha1 to sha265
  243189. .IP \(bu 2
  243190. 73b8d35e01 Add note to the Tomcat module for SHA256
  243191. .IP \(bu 2
  243192. efb78f1055 Remove SHA1 to SHA265 by default
  243193. .IP \(bu 2
  243194. 6198976edb Use SHA1 by default instead of MD5
  243195. .IP \(bu 2
  243196. 73f2df76ce Use SHA1 hash by default in Tomcat module, refactor for support different algorithms
  243197. .IP \(bu 2
  243198. 0d4e4e31f8 Use SHA1 hash by default
  243199. .IP \(bu 2
  243200. 785717703b Use configurable hash_type for general Key fingerprinting
  243201. .IP \(bu 2
  243202. f0d931f4d0 Use hash_type configuration for the Cloud
  243203. .IP \(bu 2
  243204. 95cb59dec7 Set defalt hash as SHA1 in config and explain why.
  243205. .IP \(bu 2
  243206. 8f9543c292 Set config hash_type to SHA1
  243207. .IP \(bu 2
  243208. 413eca124d Set default checksum for key fingerprint to SHA1
  243209. .UNINDENT
  243210. .IP \(bu 2
  243211. \fBISSUE\fP \fI\%#30528\fP: (\fI\%UtahDave\fP) Missing Minion notifications missing from job cache (refs: \fI\%#31670\fP)
  243212. .IP \(bu 2
  243213. \fBPR\fP \fI\%#31670\fP: (\fI\%terminalmage\fP) Write lists of minions targeted by syndic masters to job cache
  243214. @ \fI2016\-03\-07 18:51:53 UTC\fP
  243215. .INDENT 2.0
  243216. .IP \(bu 2
  243217. a1f32b71bd Merge pull request \fI\%#31670\fP from terminalmage/issue30528
  243218. .IP \(bu 2
  243219. 65e5a3c53e Pass syndic_id to save_minions()
  243220. .IP \(bu 2
  243221. cf94c2597a Add argument to save_minions() to pass a syndic ID
  243222. .IP \(bu 2
  243223. cb92114377 Add syndic_id param for API compatibility
  243224. .IP \(bu 2
  243225. 1d39eec69b Skip events with minion lists but no jid
  243226. .IP \(bu 2
  243227. 651e3926f7 lint fixes
  243228. .IP \(bu 2
  243229. 0f175a4edf salt.returners.sqlite3_return: add no\-op save_minions() func for API compatibility
  243230. .IP \(bu 2
  243231. f8664103b1 salt.returners.redis_return: add no\-op save_minions() func for API compatibility
  243232. .IP \(bu 2
  243233. 0ea1b76c22 salt.returners.postgres_local_cache: add no\-op save_minions() func for API compatibility
  243234. .IP \(bu 2
  243235. d6d794b484 salt.returners.postgres: add no\-op save_minions() func for API compatibility
  243236. .IP \(bu 2
  243237. 82750ab699 salt.returners.pgjsonb: add no\-op save_minions() func for API compatibility
  243238. .IP \(bu 2
  243239. d8f90f6578 salt.returners.odbc: add no\-op save_minions() func for API compatibility
  243240. .IP \(bu 2
  243241. a1957c3706 salt.returners.mysql: add no\-op save_minions() func for API compatibility
  243242. .IP \(bu 2
  243243. ef6aa5de1c salt.returners.multi_returner: add no\-op save_minions() func for API compatibility
  243244. .IP \(bu 2
  243245. 5b4eb58d99 salt.returners.mongo_return: add no\-op save_minions() func for API compatibility
  243246. .IP \(bu 2
  243247. da1acbb8f2 salt.returners.mongo_future_return: add no\-op save_minions() func for API compatibility
  243248. .IP \(bu 2
  243249. c13bb6549c salt.returners.memcache_return: add no\-op save_minions() func for API compatibility
  243250. .IP \(bu 2
  243251. 4322ad9ef3 salt.returners.influxdb_return: add no\-op save_minions() func for API compatibility
  243252. .IP \(bu 2
  243253. 1dd106183c salt.returners.etcd_return: add no\-op save_minions() func for API compatibility
  243254. .IP \(bu 2
  243255. 8e80535516 salt.returners.couchdb_return: add no\-op save_minions() func for API compatibility
  243256. .IP \(bu 2
  243257. 44538dfced salt.returners.cassandra_cql_return: add no\-op save_minions() func for API compatibility
  243258. .IP \(bu 2
  243259. 084a78407a salt.returners.couchbase_return: move minion list updates to new save_minions() func
  243260. .IP \(bu 2
  243261. f731dc5d32 Update a job\(aqs minion list to include minion lists forwarded by syndic
  243262. .IP \(bu 2
  243263. 504f7df460 Add utils function to invoke a returner\(aqs save_minions() func
  243264. .IP \(bu 2
  243265. 0b4616a3eb Separate writing of serialized minion list into its own function
  243266. .IP \(bu 2
  243267. 214fedc3f6 Simplify jobs.get_jobs logic, generally improve jobs runner docs
  243268. .IP \(bu 2
  243269. 3f527be748 Add an exception class for errors encountered while locking files.
  243270. .IP \(bu 2
  243271. 1e6b43eef8 Add a contextmanager for file locking
  243272. .IP \(bu 2
  243273. 978b6cb32f Add missing RST file for slsutil module
  243274. .IP \(bu 2
  243275. 2ad8ceffc2 Add salt.utils.split_input()
  243276. .UNINDENT
  243277. .IP \(bu 2
  243278. \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)
  243279. .IP \(bu 2
  243280. \fBPR\fP \fI\%#31711\fP: (\fI\%ticosax\fP) [dockerng] Port and Volume comparison should consider Dockerfile
  243281. @ \fI2016\-03\-07 18:25:19 UTC\fP
  243282. .INDENT 2.0
  243283. .IP \(bu 2
  243284. 24568b1a5d Merge pull request \fI\%#31711\fP from ticosax/fix\-port\-and\-volume\-discovery
  243285. .IP \(bu 2
  243286. cf38691597 Port and Volume comparison should consider Dockerfile
  243287. .UNINDENT
  243288. .IP \(bu 2
  243289. \fBISSUE\fP \fI\%#31579\fP: (\fI\%bradthurber\fP) salt\-cloud delete with a map file fails when multiple providers defined (refs: \fI\%#31719\fP)
  243290. .IP \(bu 2
  243291. \fBPR\fP \fI\%#31719\fP: (\fI\%techhat\fP) Don\(aqt worry about KeyErrors if the node is already removed
  243292. @ \fI2016\-03\-07 18:16:40 UTC\fP
  243293. .INDENT 2.0
  243294. .IP \(bu 2
  243295. b936e09fb3 Merge pull request \fI\%#31719\fP from techhat/issue31579
  243296. .IP \(bu 2
  243297. 88905095c9 Don\(aqt worry about KeyErrors if the node is already removed
  243298. .UNINDENT
  243299. .IP \(bu 2
  243300. \fBPR\fP \fI\%#31713\fP: (\fI\%ticosax\fP) [dockerng] Fix dockerng.network_present when container is given by name
  243301. @ \fI2016\-03\-07 15:14:41 UTC\fP
  243302. .INDENT 2.0
  243303. .IP \(bu 2
  243304. 604eb87e82 Merge pull request \fI\%#31713\fP from ticosax/fix\-dockerng\-networking\-container_id
  243305. .IP \(bu 2
  243306. 3837cf44ca Fix network_present by dealing with containers ID\(aqs instead of names.
  243307. .UNINDENT
  243308. .IP \(bu 2
  243309. \fBISSUE\fP \fI\%#31704\fP: (\fI\%peripatetic\-sojourner\fP) Foreman external pillar doesn\(aqt load (refs: \fI\%#31705\fP)
  243310. .IP \(bu 2
  243311. \fBPR\fP \fI\%#31705\fP: (\fI\%peripatetic\-sojourner\fP) Foreman pillar
  243312. @ \fI2016\-03\-07 14:24:58 UTC\fP
  243313. .INDENT 2.0
  243314. .IP \(bu 2
  243315. 8f28e4510d Merge pull request \fI\%#31705\fP from peripatetic\-sojourner/foreman_pillar
  243316. .IP \(bu 2
  243317. ba33d75949 passing lint test
  243318. .IP \(bu 2
  243319. 63e39a8999 refactored parameter population for foreman pillar
  243320. .IP \(bu 2
  243321. c3325bc15d add return of virtualname
  243322. .UNINDENT
  243323. .IP \(bu 2
  243324. \fBPR\fP \fI\%#31702\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243325. @ \fI2016\-03\-06 19:24:47 UTC\fP
  243326. .INDENT 2.0
  243327. .IP \(bu 2
  243328. aa5c13f0b8 Merge pull request \fI\%#31702\fP from rallytime/merge\-2015.8
  243329. .IP \(bu 2
  243330. 6559ea15b0 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243331. .IP \(bu 2
  243332. d7914cdb14 Merge pull request \fI\%#31687\fP from cachedout/rm_gpg_test
  243333. .INDENT 2.0
  243334. .IP \(bu 2
  243335. 8b00513ebb Removed useless tests
  243336. .UNINDENT
  243337. .IP \(bu 2
  243338. bd4d12a155 Merge pull request \fI\%#31660\fP from terminalmage/issue31619
  243339. .INDENT 2.0
  243340. .IP \(bu 2
  243341. da954d7b92 Add integration test for packages with epoch in version
  243342. .IP \(bu 2
  243343. 4fa7e4defe Move epoch removal
  243344. .IP \(bu 2
  243345. 290192af56 Remove epoch from version string if present when installing with yum
  243346. .UNINDENT
  243347. .IP \(bu 2
  243348. e33c1f456a Merge pull request \fI\%#31683\fP from rallytime/bp\-31578
  243349. .INDENT 2.0
  243350. .IP \(bu 2
  243351. 8fe46789b7 allow queueing of state runs through saltmod
  243352. .UNINDENT
  243353. .IP \(bu 2
  243354. 27f443895d Merge pull request \fI\%#31682\fP from cachedout/cache_meaning
  243355. .INDENT 2.0
  243356. .IP \(bu 2
  243357. a75e146125 Add definition of job cache to glossary
  243358. .UNINDENT
  243359. .IP \(bu 2
  243360. bd04c964d1 Merge pull request \fI\%#31658\fP from rallytime/add\-style\-to\-contrib
  243361. .INDENT 2.0
  243362. .IP \(bu 2
  243363. 6b526b5878 Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  243364. .UNINDENT
  243365. .IP \(bu 2
  243366. 10658dffe6 Merge pull request \fI\%#31655\fP from rallytime/pylint\-docs
  243367. .INDENT 2.0
  243368. .IP \(bu 2
  243369. 6e0377d376 Make note of pylint dependencies in docs
  243370. .UNINDENT
  243371. .IP \(bu 2
  243372. 6075774a01 Merge pull request \fI\%#31440\fP from cachedout/master_tops_type
  243373. .INDENT 2.0
  243374. .IP \(bu 2
  243375. f49cc75049 Set correct type for master_tops config value
  243376. .UNINDENT
  243377. .UNINDENT
  243378. .IP \(bu 2
  243379. \fBPR\fP \fI\%#31700\fP: (\fI\%s0undt3ch\fP) It\(aqs a function!
  243380. @ \fI2016\-03\-06 17:33:58 UTC\fP
  243381. .INDENT 2.0
  243382. .IP \(bu 2
  243383. ace290629e Merge pull request \fI\%#31700\fP from s0undt3ch/2015.8
  243384. .IP \(bu 2
  243385. 1ca2beea3e It\(aqs a function!
  243386. .UNINDENT
  243387. .IP \(bu 2
  243388. \fBPR\fP \fI\%#31679\fP: (\fI\%cro\fP) Fix bad link to the sample REST endpoint in salt\-contrib.
  243389. @ \fI2016\-03\-04 21:05:50 UTC\fP
  243390. .INDENT 2.0
  243391. .IP \(bu 2
  243392. cf438aa873 Merge pull request \fI\%#31679\fP from cro/proxy_contrib_doc_fix
  243393. .IP \(bu 2
  243394. d638971b73 Correct url to salt\-contrib
  243395. .UNINDENT
  243396. .IP \(bu 2
  243397. \fBISSUE\fP \fI\%#21932\fP: (\fI\%clinta\fP) Salt Coding Style docs should list requirements for salt pylintrc (refs: \fI\%#31655\fP)
  243398. .IP \(bu 2
  243399. \fBPR\fP \fI\%#31668\fP: (\fI\%rallytime\fP) Some more testing documentation improvements
  243400. @ \fI2016\-03\-04 20:48:57 UTC\fP
  243401. .INDENT 2.0
  243402. .IP \(bu 2
  243403. \fBPR\fP \fI\%#31658\fP: (\fI\%rallytime\fP) Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs (refs: \fI\%#31668\fP)
  243404. .IP \(bu 2
  243405. \fBPR\fP \fI\%#31655\fP: (\fI\%rallytime\fP) Make note of pylint dependencies in docs (refs: \fI\%#31668\fP)
  243406. .IP \(bu 2
  243407. \fBPR\fP \fI\%#31641\fP: (\fI\%rallytime\fP) Improve Salt Testing tutorial to be a more comprehensive intro (refs: \fI\%#31668\fP)
  243408. .IP \(bu 2
  243409. 97127a8b83 Merge pull request \fI\%#31668\fP from rallytime/testing\-docs
  243410. .IP \(bu 2
  243411. beb9d0fe84 Ensure all integration test classes and funcs are documented w/examples
  243412. .IP \(bu 2
  243413. 7f8ebf7c97 Found another spelling error
  243414. .IP \(bu 2
  243415. c8c188535f Spelling fix
  243416. .IP \(bu 2
  243417. f260c51762 Some more testing documentation improvements
  243418. .UNINDENT
  243419. .IP \(bu 2
  243420. \fBISSUE\fP \fI\%#29753\fP: (\fI\%jakehilton\fP) New minion fails to authenticate properly to multi\-master setup (refs: \fI\%#31653\fP)
  243421. .IP \(bu 2
  243422. \fBPR\fP \fI\%#31653\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt attempt to verify token if it wasn\(aqt sent to master.
  243423. @ \fI2016\-03\-03 17:39:35 UTC\fP
  243424. .INDENT 2.0
  243425. .IP \(bu 2
  243426. 2ed7286af1 Merge pull request \fI\%#31653\fP from DSRCompany/issues/29753_multimaster_auth_fail
  243427. .IP \(bu 2
  243428. 2557707cc7 Don\(aqt attempt to verify token if it wasn\(aqt sent to master.
  243429. .UNINDENT
  243430. .IP \(bu 2
  243431. \fBISSUE\fP \fI\%#31617\fP: (\fI\%tampakrap\fP) service.running fails on sle11 sp3 and sp4 (refs: \fI\%#31629\fP, \fI\%#31793\fP)
  243432. .IP \(bu 2
  243433. \fBPR\fP \fI\%#31629\fP: (\fI\%darix\fP) Fix services on sles
  243434. @ \fI2016\-03\-03 16:41:27 UTC\fP
  243435. .INDENT 2.0
  243436. .IP \(bu 2
  243437. 118fcde425 Merge pull request \fI\%#31629\fP from darix/fix\-services\-on\-sles
  243438. .IP \(bu 2
  243439. 9b8d6cbb72 make the suse check consistent with rh_service.py
  243440. .IP \(bu 2
  243441. c0c8a77242 Fix numerical check of osrelease
  243442. .UNINDENT
  243443. .IP \(bu 2
  243444. \fBPR\fP \fI\%#31641\fP: (\fI\%rallytime\fP) Improve Salt Testing tutorial to be a more comprehensive intro (refs: \fI\%#31668\fP)
  243445. @ \fI2016\-03\-03 16:08:47 UTC\fP
  243446. .INDENT 2.0
  243447. .IP \(bu 2
  243448. 4d1701de60 Merge pull request \fI\%#31641\fP from rallytime/testing\-tutorial
  243449. .IP \(bu 2
  243450. 6ab3961748 Improve Salt Testing tutorial to be a more comprehensive intro
  243451. .UNINDENT
  243452. .IP \(bu 2
  243453. \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)
  243454. .IP \(bu 2
  243455. \fBPR\fP \fI\%#31651\fP: (\fI\%dr4Ke\fP) test case: test_list_present_nested_already
  243456. @ \fI2016\-03\-03 16:02:55 UTC\fP
  243457. .INDENT 2.0
  243458. .IP \(bu 2
  243459. \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)
  243460. .IP \(bu 2
  243461. 584f8401b8 Merge pull request \fI\%#31651\fP from dr4Ke/test_case_for_30689
  243462. .IP \(bu 2
  243463. fc9dd356e8 test case: test_list_present_nested_already
  243464. .UNINDENT
  243465. .IP \(bu 2
  243466. \fBPR\fP \fI\%#31643\fP: (\fI\%opdude\fP) Make sure we are really updating the mercurial repository
  243467. @ \fI2016\-03\-03 14:30:53 UTC\fP
  243468. .INDENT 2.0
  243469. .IP \(bu 2
  243470. 5566f1f2a7 Merge pull request \fI\%#31643\fP from Unity\-Technologies/hotfix/hg\-fix\-repo\-updated
  243471. .IP \(bu 2
  243472. ca41c4b8c1 Make sure we are really updating the mercurial repository
  243473. .UNINDENT
  243474. .IP \(bu 2
  243475. \fBISSUE\fP \fI\%#30761\fP: (\fI\%sjmh\fP) Cannot target subsets of minions when using pillar and external_auth (refs: \fI\%#31598\fP)
  243476. .IP \(bu 2
  243477. \fBPR\fP \fI\%#31598\fP: (\fI\%terminalmage\fP) Remove limitations on validation types for eauth targets
  243478. @ \fI2016\-03\-02 22:14:41 UTC\fP
  243479. .INDENT 2.0
  243480. .IP \(bu 2
  243481. 36c790eede Merge pull request \fI\%#31598\fP from terminalmage/issue30761
  243482. .IP \(bu 2
  243483. 5dedaa2d9d Remove limitations on validation types for eauth targets
  243484. .UNINDENT
  243485. .IP \(bu 2
  243486. \fBPR\fP \fI\%#31627\fP: (\fI\%jakehilton\fP) Handling error from using gevent 1.1.
  243487. @ \fI2016\-03\-02 22:01:22 UTC\fP
  243488. .INDENT 2.0
  243489. .IP \(bu 2
  243490. cc4c31cf7f Merge pull request \fI\%#31627\fP from jakehilton/2015.8
  243491. .IP \(bu 2
  243492. 02fb5ed616 Handling error from using gevent 1.1.
  243493. .UNINDENT
  243494. .IP \(bu 2
  243495. \fBPR\fP \fI\%#31630\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243496. @ \fI2016\-03\-02 20:49:52 UTC\fP
  243497. .INDENT 2.0
  243498. .IP \(bu 2
  243499. 191241e71a Merge pull request \fI\%#31630\fP from rallytime/merge\-2015.8
  243500. .IP \(bu 2
  243501. 75bb692990 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243502. .IP \(bu 2
  243503. 6d31b8918f Merge pull request \fI\%#31622\fP from jfindlay/query_doc
  243504. .INDENT 2.0
  243505. .IP \(bu 2
  243506. 4e48fec806 doc/topics/tutorials/http: update query decoding docs
  243507. .UNINDENT
  243508. .IP \(bu 2
  243509. dbf6e0786c Merge pull request \fI\%#31558\fP from cachedout/ensure_ssh_installed
  243510. .INDENT 2.0
  243511. .IP \(bu 2
  243512. cecc6e0a5f Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  243513. .UNINDENT
  243514. .UNINDENT
  243515. .IP \(bu 2
  243516. \fBPR\fP \fI\%#31594\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31589\fP to 2015.8
  243517. @ \fI2016\-03\-02 16:33:24 UTC\fP
  243518. .INDENT 2.0
  243519. .IP \(bu 2
  243520. \fBPR\fP \fI\%#31589\fP: (\fI\%techhat\fP) Ensure that the latest node data is returned (refs: \fI\%#31594\fP)
  243521. .IP \(bu 2
  243522. 38ddd62aef Merge pull request \fI\%#31594\fP from rallytime/bp\-31589
  243523. .IP \(bu 2
  243524. 6cd89459c7 Ensure that the latest node data is returned
  243525. .UNINDENT
  243526. .IP \(bu 2
  243527. \fBISSUE\fP \fI\%#31596\fP: (\fI\%joejulian\fP) gluster \-\-xml does not always produce xml with legacy versions (refs: \fI\%#31604\fP)
  243528. .IP \(bu 2
  243529. \fBPR\fP \fI\%#31604\fP: (\fI\%joejulian\fP) Workaround for non\-xml output from gluster cli when not tty
  243530. @ \fI2016\-03\-02 15:53:44 UTC\fP
  243531. .INDENT 2.0
  243532. .IP \(bu 2
  243533. 86a0fc46b4 Merge pull request \fI\%#31604\fP from joejulian/2015.8_31596_workaround_no_xml_when_not_tty
  243534. .IP \(bu 2
  243535. c567a823a9 Workaround for non\-xml output from gluster cli when not tty
  243536. .UNINDENT
  243537. .IP \(bu 2
  243538. \fBPR\fP \fI\%#31583\fP: (\fI\%vutny\fP) Remove trailing white spaces
  243539. @ \fI2016\-03\-02 15:38:01 UTC\fP
  243540. .INDENT 2.0
  243541. .IP \(bu 2
  243542. 36ce240596 Merge pull request \fI\%#31583\fP from vutny/remove\-trailing\-white\-spaces
  243543. .IP \(bu 2
  243544. bbcad93a8d Fix trailing white spaces in Salt PRM spec file
  243545. .IP \(bu 2
  243546. 86433f2378 Revert changes in files used by \fIroots_test.py\fP integration test
  243547. .IP \(bu 2
  243548. e7a8dbf498 Remove trailing white spaces in tests files
  243549. .IP \(bu 2
  243550. 776b2ea9a6 Remove trailing white spaces in files under \fIsalt/\fP dir
  243551. .IP \(bu 2
  243552. fbfc3abccf Remove trailing white spaces in files under \fIpkg/\fP dir
  243553. .IP \(bu 2
  243554. aebc48163d Remove trailing white spaces in documentation files
  243555. .IP \(bu 2
  243556. 7eaf778695 Remove trailing white spaces in conf dir file
  243557. .UNINDENT
  243558. .IP \(bu 2
  243559. \fBPR\fP \fI\%#31592\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31546\fP to 2015.8
  243560. @ \fI2016\-03\-01 23:51:02 UTC\fP
  243561. .INDENT 2.0
  243562. .IP \(bu 2
  243563. \fBPR\fP \fI\%#31546\fP: (\fI\%terminalmage\fP) Rework of PR \fI\%#31529\fP (refs: \fI\%#31592\fP)
  243564. .IP \(bu 2
  243565. \fBPR\fP \fI\%#31529\fP: (\fI\%llua\fP) nspawn.py: Fix bad keyword assignment (refs: \fI\%#31546\fP)
  243566. .IP \(bu 2
  243567. c9fe8d87f3 Merge pull request \fI\%#31592\fP from rallytime/bp\-31546
  243568. .IP \(bu 2
  243569. 9a296bd1bf Use clean_kwargs and invalid_kwargs utils funcs to handle invalid kwargs
  243570. .IP \(bu 2
  243571. 43099a2b63 nspawn.py: Fix bad keyword assignment
  243572. .UNINDENT
  243573. .IP \(bu 2
  243574. \fBISSUE\fP \fI\%#30866\fP: (\fI\%kevinquinnyo\fP) WheelClient cmd returns None but wheel functions called directly work (refs: \fI\%#31570\fP)
  243575. .IP \(bu 2
  243576. \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)
  243577. .IP \(bu 2
  243578. \fBPR\fP \fI\%#31593\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31570\fP to 2015.8
  243579. @ \fI2016\-03\-01 23:50:05 UTC\fP
  243580. .INDENT 2.0
  243581. .IP \(bu 2
  243582. \fBPR\fP \fI\%#31570\fP: (\fI\%cro\fP) Need to return the value (refs: \fI\%#31593\fP)
  243583. .IP \(bu 2
  243584. \fBPR\fP \fI\%#28087\fP: (\fI\%DmitryKuzmenko\fP) Revert "Update __init__.py" (refs: \fI\%#31570\fP)
  243585. .IP \(bu 2
  243586. c8dbc93ac6 Merge pull request \fI\%#31593\fP from rallytime/bp\-31570
  243587. .IP \(bu 2
  243588. b2294d0a28 Need to return the value
  243589. .UNINDENT
  243590. .IP \(bu 2
  243591. \fBISSUE\fP \fI\%#28585\fP: (\fI\%robthralls\fP) FIPS compliance (2015.8.1\-1) (refs: \fI\%#31567\fP)
  243592. .IP \(bu 2
  243593. \fBPR\fP \fI\%#31567\fP: (\fI\%cachedout\fP) Restore FIPS compliance when using master_finger
  243594. @ \fI2016\-03\-01 19:50:03 UTC\fP
  243595. .INDENT 2.0
  243596. .IP \(bu 2
  243597. 068807558a Merge pull request \fI\%#31567\fP from cachedout/issue_28585
  243598. .IP \(bu 2
  243599. 7006a1eecf Fix failed unit test
  243600. .IP \(bu 2
  243601. 10cd328dda Lint
  243602. .IP \(bu 2
  243603. 174337d020 Restore FIPS compliance when using master_finger
  243604. .UNINDENT
  243605. .IP \(bu 2
  243606. \fBPR\fP \fI\%#31568\fP: (\fI\%twangboy\fP) Grant permissions using SID instead of name
  243607. @ \fI2016\-03\-01 04:22:53 UTC\fP
  243608. .INDENT 2.0
  243609. .IP \(bu 2
  243610. 77d9aae8bb Merge pull request \fI\%#31568\fP from twangboy/fix_perms
  243611. .IP \(bu 2
  243612. 1f6a95694d Grant permissions using SID instead of name
  243613. .UNINDENT
  243614. .IP \(bu 2
  243615. \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)
  243616. .IP \(bu 2
  243617. \fBPR\fP \fI\%#31561\fP: (\fI\%justinta\fP) Skipped test
  243618. @ \fI2016\-03\-01 04:11:22 UTC\fP
  243619. .INDENT 2.0
  243620. .IP \(bu 2
  243621. ada5ab344d Merge pull request \fI\%#31561\fP from jtand/beacons_test_fix
  243622. .IP \(bu 2
  243623. 196dd4db99 Skipped test
  243624. .UNINDENT
  243625. .IP \(bu 2
  243626. \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)
  243627. .IP \(bu 2
  243628. \fBPR\fP \fI\%#31550\fP: (\fI\%rallytime\fP) Correct versionadded tag for win_service.config
  243629. @ \fI2016\-02\-29 21:11:24 UTC\fP
  243630. .INDENT 2.0
  243631. .IP \(bu 2
  243632. \fBPR\fP \fI\%#31049\fP: (\fI\%twangboy\fP) Fix versionadded in win_service.config (refs: \fI\%#31550\fP)
  243633. .IP \(bu 2
  243634. 658c1865ab Merge pull request \fI\%#31550\fP from rallytime/win_service\-docs
  243635. .IP \(bu 2
  243636. 51aa26334c Correct versionadded tag for win_service.config
  243637. .UNINDENT
  243638. .IP \(bu 2
  243639. \fBPR\fP \fI\%#31549\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243640. @ \fI2016\-02\-29 18:46:35 UTC\fP
  243641. .INDENT 2.0
  243642. .IP \(bu 2
  243643. 9bb9a54f8d Merge pull request \fI\%#31549\fP from rallytime/merge\-2015.8
  243644. .IP \(bu 2
  243645. b683df9b82 Pylint fix
  243646. .IP \(bu 2
  243647. 24505d2dcf Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243648. .INDENT 2.0
  243649. .IP \(bu 2
  243650. 060a60fd90 Merge pull request \fI\%#31521\fP from terminalmage/issue24753
  243651. .INDENT 2.0
  243652. .IP \(bu 2
  243653. 0d352bbc16 Add fileclient tests
  243654. .IP \(bu 2
  243655. d9370a8041 Update cp module salt\-ssh wrapper to use new cachedir param
  243656. .IP \(bu 2
  243657. 0320494b1d Update the SSH state module wrappers to pass an alternate cachedir
  243658. .IP \(bu 2
  243659. 65bdcb3afa Accept and pass through the alternate cachedir when prepping the thin tar
  243660. .IP \(bu 2
  243661. c3f7a2f2e5 Add ability to specify an alternate base dir for file caching
  243662. .UNINDENT
  243663. .IP \(bu 2
  243664. 92f8f89218 Merge pull request \fI\%#31497\fP from rallytime/remove\-timeout\-dup
  243665. .INDENT 2.0
  243666. .IP \(bu 2
  243667. 83e6480d20 Remove duplicate "timeout" definition in Roster docs
  243668. .UNINDENT
  243669. .IP \(bu 2
  243670. da001bcb49 Merge pull request \fI\%#31472\fP from rallytime/update\-contributing\-docs
  243671. .INDENT 2.0
  243672. .IP \(bu 2
  243673. 5871e4d1e0 Update contributing docs
  243674. .UNINDENT
  243675. .IP \(bu 2
  243676. f35e2dd1d3 Merge pull request \fI\%#31461\fP from DSRCompany/issues/30183_fix_multimaster_failover_2015.5
  243677. .INDENT 2.0
  243678. .IP \(bu 2
  243679. 3d09c3b7a3 Set auth retry count to 0 if multimaster mode is failover.
  243680. .UNINDENT
  243681. .UNINDENT
  243682. .UNINDENT
  243683. .IP \(bu 2
  243684. \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)
  243685. .IP \(bu 2
  243686. \fBISSUE\fP \fI\%#27063\fP: (\fI\%lorengordon\fP) 2015.8.0: Error writing to \fI/var/log/salt/minion\fP? (refs: \fI\%#31544\fP)
  243687. .IP \(bu 2
  243688. \fBPR\fP \fI\%#31544\fP: (\fI\%DmitryKuzmenko\fP) Protect getattr from recursion
  243689. @ \fI2016\-02\-29 17:48:15 UTC\fP
  243690. .INDENT 2.0
  243691. .IP \(bu 2
  243692. 5a6aff1791 Merge pull request \fI\%#31544\fP from DSRCompany/issues/29701_getattr_recursion_protection
  243693. .IP \(bu 2
  243694. b7a45b8fae Protect getattr from recursion
  243695. .UNINDENT
  243696. .IP \(bu 2
  243697. \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)
  243698. .IP \(bu 2
  243699. \fBISSUE\fP \fI\%#30181\fP: (\fI\%jakehilton\fP) Minion failover only works once (refs: \fI\%#31512\fP)
  243700. .IP \(bu 2
  243701. \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)
  243702. .IP \(bu 2
  243703. \fBPR\fP \fI\%#31525\fP: (\fI\%DmitryKuzmenko\fP) Issues/30643 merge forward fixes
  243704. @ \fI2016\-02\-29 16:08:47 UTC\fP
  243705. .INDENT 2.0
  243706. .IP \(bu 2
  243707. \fBPR\fP \fI\%#31512\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt fork in try with critical finally logic. (refs: \fI\%#31525\fP)
  243708. .IP \(bu 2
  243709. \fBPR\fP \fI\%#30796\fP: (\fI\%skizunov\fP) Fix minion failover after disconnect (refs: \fI\%#31512\fP, \fI\%#31525\fP)
  243710. .IP \(bu 2
  243711. d5a4daa17b Merge pull request \fI\%#31525\fP from DSRCompany/issues/30643_merge_forward_fixes
  243712. .IP \(bu 2
  243713. a50b33d96a Don\(aqt fork in try with critical finally logic.
  243714. .IP \(bu 2
  243715. 877bc25381 Fix minion failover after disconnect
  243716. .UNINDENT
  243717. .IP \(bu 2
  243718. \fBISSUE\fP \fI\%#24955\fP: (\fI\%damonnk\fP) Minion fails to start after bootstrap on Raspberry PI (refs: \fI\%#31536\fP)
  243719. .IP \(bu 2
  243720. \fBPR\fP \fI\%#31536\fP: (\fI\%virtualguy\fP) Remove debian repo from raspbian installation
  243721. @ \fI2016\-02\-29 15:32:52 UTC\fP
  243722. .INDENT 2.0
  243723. .IP \(bu 2
  243724. 95af21325f Merge pull request \fI\%#31536\fP from virtrnd/remove\-jessie\-backports\-from\-raspbian\-install
  243725. .IP \(bu 2
  243726. e48900ac55 Use python\-tornado from jessie\-backports for pure debian
  243727. .IP \(bu 2
  243728. 6e338e2601 Remove debian repo from raspbian installation
  243729. .UNINDENT
  243730. .IP \(bu 2
  243731. \fBISSUE\fP \fI\%#31193\fP: (\fI\%gwaters\fP) RHEL7 gpg key problem (refs: \fI\%#31528\fP)
  243732. .IP \(bu 2
  243733. \fBPR\fP \fI\%#31528\fP: (\fI\%vutny\fP) Correct Salt Cloud documentation about updating Salt Bootstrap script
  243734. @ \fI2016\-02\-29 15:30:59 UTC\fP
  243735. .INDENT 2.0
  243736. .IP \(bu 2
  243737. 5965319600 Merge pull request \fI\%#31528\fP from vutny/cloud\-bootstrap\-doc
  243738. .IP \(bu 2
  243739. f7beeb69f2 Correct Salt Cloud documentation about updating Salt Bootstrap script
  243740. .UNINDENT
  243741. .IP \(bu 2
  243742. \fBISSUE\fP \fI\%#31365\fP: (\fI\%cwicklein\fP) osrelease_info broken for CentOS 7 (refs: \fI\%#31539\fP)
  243743. .IP \(bu 2
  243744. \fBPR\fP \fI\%#31539\fP: (\fI\%DmitryKuzmenko\fP) Added temporary workaround for CentOS 7 os\-release id bug.
  243745. @ \fI2016\-02\-29 15:30:34 UTC\fP
  243746. .INDENT 2.0
  243747. .IP \(bu 2
  243748. 96c0926298 Merge pull request \fI\%#31539\fP from DSRCompany/issues/31365_centos7_osrelease_fix
  243749. .IP \(bu 2
  243750. a3b806d126 Added temporary workaround for CentOS 7 os\-release id bug.
  243751. .UNINDENT
  243752. .IP \(bu 2
  243753. \fBPR\fP \fI\%#31508\fP: (\fI\%mcalmer\fP) Zypper correct exit code checking
  243754. @ \fI2016\-02\-26 15:21:23 UTC\fP
  243755. .INDENT 2.0
  243756. .IP \(bu 2
  243757. 95db870325 Merge pull request \fI\%#31508\fP from mcalmer/zypper\-correct\-exit\-code\-checking
  243758. .IP \(bu 2
  243759. 66e8f6aa37 restructure the code a bit
  243760. .IP \(bu 2
  243761. f5c125de19 remove new lines between zypper command and check result
  243762. .IP \(bu 2
  243763. 1425c6496c use specialized assert functions for tests
  243764. .IP \(bu 2
  243765. f266cfdaac test _zypper_check_result()
  243766. .IP \(bu 2
  243767. aff6467782 adapt tests to new zypper_check_result() output
  243768. .IP \(bu 2
  243769. edad780cdf use _zypper_check_result()
  243770. .IP \(bu 2
  243771. 7c5d5a2b7a add _zypper_check_result() to raise and error or return stdout
  243772. .IP \(bu 2
  243773. a6785ef7a9 check zypper exit code everywhere
  243774. .IP \(bu 2
  243775. 935b0510c9 add function to check zypper exit codes
  243776. .UNINDENT
  243777. .IP \(bu 2
  243778. \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)
  243779. .IP \(bu 2
  243780. \fBPR\fP \fI\%#31510\fP: (\fI\%vutny\fP) Add installation guide for Raspbian (Debian on Raspberry Pi)
  243781. @ \fI2016\-02\-26 15:06:57 UTC\fP
  243782. .INDENT 2.0
  243783. .IP \(bu 2
  243784. e51126179c Merge pull request \fI\%#31510\fP from vutny/debian\-raspbian\-install\-guide
  243785. .IP \(bu 2
  243786. 50f3e072b1 Add instruction how to install salt\-minion on Debian Jessie from Stretch
  243787. .IP \(bu 2
  243788. abcd505178 Update Debian installation guide with information about Raspbian
  243789. .UNINDENT
  243790. .IP \(bu 2
  243791. \fBPR\fP \fI\%#31498\fP: (\fI\%Ch3LL\fP) rename methods in pkg states test
  243792. @ \fI2016\-02\-25 23:29:51 UTC\fP
  243793. .INDENT 2.0
  243794. .IP \(bu 2
  243795. 9d458bb420 Merge pull request \fI\%#31498\fP from Ch3LL/rename_test
  243796. .IP \(bu 2
  243797. 29a53f4353 rename methods in pkg states test
  243798. .UNINDENT
  243799. .IP \(bu 2
  243800. \fBISSUE\fP \fI\%#31427\fP: (\fI\%githubcdr\fP) salt.states.grains.list_present adds duplicates names (refs: \fI\%#31471\fP)
  243801. .IP \(bu 2
  243802. \fBPR\fP \fI\%#31471\fP: (\fI\%cachedout\fP) Correct issue where duplicate items in grains list during state run will result in duplicate grains
  243803. @ \fI2016\-02\-25 20:15:20 UTC\fP
  243804. .INDENT 2.0
  243805. .IP \(bu 2
  243806. 625da0d261 Merge pull request \fI\%#31471\fP from cachedout/issue_31427
  243807. .IP \(bu 2
  243808. 74c3053c91 Remove debugging
  243809. .IP \(bu 2
  243810. 30eb5fccf7 Additional tests, but disable the test for distinct lists, because of a problem with context in test suite
  243811. .IP \(bu 2
  243812. 3d2aec05e5 Check for duplicate grains during list insertion
  243813. .UNINDENT
  243814. .IP \(bu 2
  243815. \fBISSUE\fP \fI\%#29727\fP: (\fI\%oeuftete\fP) dockerng.running does not pull image as documented (refs: \fI\%#31352\fP, \fI\%#31455\fP)
  243816. .IP \(bu 2
  243817. \fBPR\fP \fI\%#31455\fP: (\fI\%ticosax\fP) [dockerng] Disable notset check
  243818. @ \fI2016\-02\-25 19:15:09 UTC\fP
  243819. .INDENT 2.0
  243820. .IP \(bu 2
  243821. e85ae2341a Merge pull request \fI\%#31455\fP from ticosax/diable\-NOTSET\-check
  243822. .IP \(bu 2
  243823. e072937243 dockerd returns sometimes \fINone\fP or \fI[]\fP for ports.
  243824. .IP \(bu 2
  243825. 5630401889 _api_mismatch was a good idea
  243826. .UNINDENT
  243827. .IP \(bu 2
  243828. \fBPR\fP \fI\%#31488\fP: (\fI\%isbm\fP) Unit Test for Zypper\(aqs "remove" and "purge"
  243829. @ \fI2016\-02\-25 17:52:33 UTC\fP
  243830. .INDENT 2.0
  243831. .IP \(bu 2
  243832. e68a0947b7 Merge pull request \fI\%#31488\fP from isbm/isbm\-zypper\-ut\-removepurge
  243833. .IP \(bu 2
  243834. d30f2e4627 Implement unit test for remove and purge
  243835. .IP \(bu 2
  243836. 4caf201052 Refactor code (a bit)
  243837. .IP \(bu 2
  243838. df89da4d15 Fix the docstring
  243839. .UNINDENT
  243840. .IP \(bu 2
  243841. \fBPR\fP \fI\%#31485\fP: (\fI\%jacobhammons\fP) Fixed transport description in minion / master config
  243842. @ \fI2016\-02\-25 17:04:15 UTC\fP
  243843. .INDENT 2.0
  243844. .IP \(bu 2
  243845. cd87760c87 Merge pull request \fI\%#31485\fP from jacobhammons/2015.8
  243846. .IP \(bu 2
  243847. 748acab8b5 Fixed zeromq casing in transport settings
  243848. .IP \(bu 2
  243849. 765a226907 Fixed transport description in minion / master config
  243850. .UNINDENT
  243851. .IP \(bu 2
  243852. \fBPR\fP \fI\%#31411\fP: (\fI\%justinta\fP) Added some beacons execution module integration tests
  243853. @ \fI2016\-02\-25 16:16:26 UTC\fP
  243854. .INDENT 2.0
  243855. .IP \(bu 2
  243856. fb1ef92e2b Merge pull request \fI\%#31411\fP from jtand/beacons_tests
  243857. .IP \(bu 2
  243858. 7d32b56015 Added some more checks to verify beacon changes were actually happening
  243859. .IP \(bu 2
  243860. 2da5285c03 Added codeauthor
  243861. .IP \(bu 2
  243862. fd1e2838ea Lint
  243863. .IP \(bu 2
  243864. 421a112914 Added config_dir to test minion config
  243865. .IP \(bu 2
  243866. bf6a4c0983 Fixed lint error
  243867. .IP \(bu 2
  243868. 3566fbbcca More updates to beacons test
  243869. .IP \(bu 2
  243870. 37c4bf22d2 Updated beacons integration test
  243871. .IP \(bu 2
  243872. 6db628be1a Basic integration tests for beacons execution module
  243873. .IP \(bu 2
  243874. 3b238c2e68 Started adding beacons execution module tests
  243875. .UNINDENT
  243876. .IP \(bu 2
  243877. \fBISSUE\fP \fI\%#31216\fP: (\fI\%oliver\-dungey\fP) pkg.installed documentation not consistent with implementation (refs: \fI\%#31475\fP)
  243878. .IP \(bu 2
  243879. \fBISSUE\fP \fI\%#30464\fP: (\fI\%sjmh\fP) pillar_env minion config option needs to be documented (refs: \fI\%#31475\fP)
  243880. .IP \(bu 2
  243881. \fBISSUE\fP \fI\%#30261\fP: (\fI\%MadsRC\fP) Add ability to define custom beacons (refs: \fI\%#31475\fP)
  243882. .IP \(bu 2
  243883. \fBISSUE\fP \fI\%#29636\fP: (\fI\%ronnix\fP) Documentation for the refresh_password arg in postgres_user.present is confusing (refs: \fI\%#31475\fP)
  243884. .IP \(bu 2
  243885. \fBISSUE\fP \fI\%#29528\fP: (\fI\%apergos\fP) nitpick for "Using Salt at scale" tutorial (refs: \fI\%#31475\fP)
  243886. .IP \(bu 2
  243887. \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)
  243888. .IP \(bu 2
  243889. \fBISSUE\fP \fI\%#10330\fP: (\fI\%jhenry82\fP) exclude keyword not working (refs: \fI\%#31475\fP)
  243890. .IP \(bu 2
  243891. \fBPR\fP \fI\%#31475\fP: (\fI\%jacobhammons\fP) Assorted doc issues
  243892. @ \fI2016\-02\-25 16:03:54 UTC\fP
  243893. .INDENT 2.0
  243894. .IP \(bu 2
  243895. 2e9a705e75 Merge pull request \fI\%#31475\fP from jacobhammons/2015.8
  243896. .IP \(bu 2
  243897. 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
  243898. .UNINDENT
  243899. .IP \(bu 2
  243900. \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)
  243901. .IP \(bu 2
  243902. \fBPR\fP \fI\%#31477\fP: (\fI\%vutny\fP) Correct installation documentation for Ubuntu
  243903. @ \fI2016\-02\-25 16:01:38 UTC\fP
  243904. .INDENT 2.0
  243905. .IP \(bu 2
  243906. 3905dd81d3 Merge pull request \fI\%#31477\fP from vutny/correct\-doc\-install\-ubuntu
  243907. .IP \(bu 2
  243908. 172f34a6ca Correct headers in Debian/Ubuntu/SUSE install instructions
  243909. .IP \(bu 2
  243910. 4248f9ea0a Add common packages installation section to Debian install guide
  243911. .IP \(bu 2
  243912. 8c6e179870 Add note about \fIamd64\fP packages to Ubuntu install guide
  243913. .IP \(bu 2
  243914. afaa24723a Update Ubuntu install guide:
  243915. .UNINDENT
  243916. .IP \(bu 2
  243917. \fBPR\fP \fI\%#31479\fP: (\fI\%isbm\fP) Zypper unit tests & fixes
  243918. @ \fI2016\-02\-25 15:58:15 UTC\fP
  243919. .INDENT 2.0
  243920. .IP \(bu 2
  243921. f027dc0cf8 Merge pull request \fI\%#31479\fP from isbm/isbm\-zypper\-unittest
  243922. .IP \(bu 2
  243923. 9f64333ccb Do not use Zypper purge (reason: too dangerous)
  243924. .IP \(bu 2
  243925. bc05acf7c3 Fix PyLint
  243926. .IP \(bu 2
  243927. c0eab8b549 Add space before "assert" keyword
  243928. .IP \(bu 2
  243929. 6bcb89a8f6 Implement list packages test
  243930. .IP \(bu 2
  243931. 78837d2926 Add mocking data
  243932. .IP \(bu 2
  243933. 0b64b8137f Implement test for version compare, where python fall\-back algorithm is called
  243934. .IP \(bu 2
  243935. 18b30a3274 Implement test for version compare, where RPM algorithm is called
  243936. .IP \(bu 2
  243937. 59eca53441 Adjust test case for the third package in the test static data
  243938. .IP \(bu 2
  243939. 8034cf0b91 Add third test package static info
  243940. .IP \(bu 2
  243941. 90f209569a Implement test for the upgrade_available
  243942. .IP \(bu 2
  243943. ad87e719d6 Bugfix: when only one package, no dict is returned. Still upgrade_available should return boolean.
  243944. .IP \(bu 2
  243945. 7eb5f19cb4 Implement test for latest_available
  243946. .IP \(bu 2
  243947. e372c0b596 Implement test for the info_available
  243948. .IP \(bu 2
  243949. 447771c0fc Add Zypper static data for the available packages
  243950. .IP \(bu 2
  243951. 6989871d27 Implement test for info_installed
  243952. .IP \(bu 2
  243953. 0cc6bce4aa Use strings instead of unicode strings
  243954. .IP \(bu 2
  243955. 3342c03987 Implement list upgrades test
  243956. .IP \(bu 2
  243957. 8862d7af65 Add list upgrades Zypper static data
  243958. .IP \(bu 2
  243959. 4d38d318f4 Implement error handling test for listing upgrades
  243960. .IP \(bu 2
  243961. 080b4ee617 Do not strip the output
  243962. .IP \(bu 2
  243963. 53338402a5 Use renamed zypper products data file
  243964. .IP \(bu 2
  243965. c6135975b0 Rename Zypper products static test data file
  243966. .IP \(bu 2
  243967. ab3ff53d89 Reimplement list_upgrades to use XML output from Zypper instead
  243968. .IP \(bu 2
  243969. e87864986d Add Zypper unit test: test_list_products and test_refresh_db
  243970. .IP \(bu 2
  243971. cd6419fc9c Add Zypper Unit Test installed products sample data
  243972. .UNINDENT
  243973. .IP \(bu 2
  243974. \fBISSUE\fP \fI\%#31370\fP: (\fI\%Ch3LL\fP) pkg.info_installed on ubuntu12 does not output info and stack trace (refs: \fI\%#31439\fP)
  243975. .IP \(bu 2
  243976. \fBISSUE\fP \fI\%#31366\fP: (\fI\%Ch3LL\fP) pkg.info_installed on centos5 does not output info (refs: \fI\%#31445\fP)
  243977. .IP \(bu 2
  243978. \fBPR\fP \fI\%#31445\fP: (\fI\%rallytime\fP) Only use LONGSIZE in rpm.info if available. Otherwise, use SIZE.
  243979. @ \fI2016\-02\-24 18:35:31 UTC\fP
  243980. .INDENT 2.0
  243981. .IP \(bu 2
  243982. \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)
  243983. .IP \(bu 2
  243984. 987dd89979 Merge pull request \fI\%#31445\fP from rallytime/fix\-31366
  243985. .IP \(bu 2
  243986. 42415a4a7b Make rpm_tags query more concise
  243987. .IP \(bu 2
  243988. 9965fe188a Added to pkg.info_installed test for RedHat and Suse systems
  243989. .IP \(bu 2
  243990. 47cc7c3466 Add error check when retcode is 0, but stderr is present
  243991. .IP \(bu 2
  243992. 294371243d Only use LONGSIZE in rpm.info if available. Otherwise, use SIZE.
  243993. .UNINDENT
  243994. .IP \(bu 2
  243995. \fBPR\fP \fI\%#31464\fP: (\fI\%Ch3LL\fP) integartion test: ensure decorator only runs on one method and not class
  243996. @ \fI2016\-02\-24 18:35:00 UTC\fP
  243997. .INDENT 2.0
  243998. .IP \(bu 2
  243999. 979c8b4faa Merge pull request \fI\%#31464\fP from Ch3LL/fix_int_test
  244000. .IP \(bu 2
  244001. a387d175d8 integartion test\- ensure decorator only runs on one method and not entire class
  244002. .UNINDENT
  244003. .IP \(bu 2
  244004. \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)
  244005. .IP \(bu 2
  244006. \fBPR\fP \fI\%#31458\fP: (\fI\%vutny\fP) Correct installation documentation for Debian
  244007. @ \fI2016\-02\-24 17:01:09 UTC\fP
  244008. .INDENT 2.0
  244009. .IP \(bu 2
  244010. aa0a9a03dd Merge pull request \fI\%#31458\fP from vutny/correct\-doc\-install\-debian
  244011. .IP \(bu 2
  244012. 42aa7eeafd Add section about installation from the Debian Main Repository
  244013. .IP \(bu 2
  244014. 07dece2f8f Remove duplicate post\-installation section for Debian install guide
  244015. .IP \(bu 2
  244016. 10c05f6943 Add install section for Debian Stretch (Testing) from community repository
  244017. .IP \(bu 2
  244018. b2c78e08dc Add note about supported Debian architectures on SaltStack corp repo
  244019. .UNINDENT
  244020. .IP \(bu 2
  244021. \fBPR\fP \fI\%#31457\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  244022. @ \fI2016\-02\-24 16:42:17 UTC\fP
  244023. .INDENT 2.0
  244024. .IP \(bu 2
  244025. 330c4d8b0f Merge pull request \fI\%#31457\fP from rallytime/merge\-2015.8
  244026. .IP \(bu 2
  244027. 94b3cf08c7 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  244028. .INDENT 2.0
  244029. .IP \(bu 2
  244030. 26733ce988 Merge pull request \fI\%#31442\fP from sastorsl/salt\-modules\-file.py\-copy\-check\-src
  244031. .INDENT 2.0
  244032. .IP \(bu 2
  244033. 0a4132866d removed lint in the exception string
  244034. .IP \(bu 2
  244035. f8b5d498c3 Add os.path.exists(src) to file.py, def copy
  244036. .UNINDENT
  244037. .IP \(bu 2
  244038. e480727d27 Merge pull request \fI\%#31441\fP from cachedout/issue_30739
  244039. .INDENT 2.0
  244040. .IP \(bu 2
  244041. ffcfad1570 Include localhost minions in presence detection for runner
  244042. .UNINDENT
  244043. .IP \(bu 2
  244044. 91ff95f093 Merge pull request \fI\%#31416\fP from carlwgeorge/selinux_doc_fix
  244045. .INDENT 2.0
  244046. .IP \(bu 2
  244047. 0e6846d72e selinux module documentation fix
  244048. .UNINDENT
  244049. .IP \(bu 2
  244050. 7d01979898 Merge pull request \fI\%#31336\fP from terminalmage/config\-validation\-logging
  244051. .INDENT 2.0
  244052. .IP \(bu 2
  244053. 795008bad1 Improve config validation logging
  244054. .UNINDENT
  244055. .IP \(bu 2
  244056. fed096a29d Merge pull request \fI\%#31374\fP from sjorge/solarish_hwaddr
  244057. .INDENT 2.0
  244058. .IP \(bu 2
  244059. bdf2576dfb missed a .format and messed up the join
  244060. .IP \(bu 2
  244061. bbd2fdc96d fix for illumos/solaris hwaddr
  244062. .UNINDENT
  244063. .IP \(bu 2
  244064. 6ee17f905b Merge pull request \fI\%#31339\fP from jacobhammons/dot7prev
  244065. .INDENT 2.0
  244066. .IP \(bu 2
  244067. 07120a8d48 changed latest release to 2015.8.7
  244068. .UNINDENT
  244069. .UNINDENT
  244070. .UNINDENT
  244071. .IP \(bu 2
  244072. \fBISSUE\fP \fI\%#31370\fP: (\fI\%Ch3LL\fP) pkg.info_installed on ubuntu12 does not output info and stack trace (refs: \fI\%#31439\fP)
  244073. .IP \(bu 2
  244074. \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)
  244075. @ \fI2016\-02\-24 16:24:46 UTC\fP
  244076. .INDENT 2.0
  244077. .IP \(bu 2
  244078. e553f18dc4 Merge pull request \fI\%#31439\fP from rallytime/fix\-31370
  244079. .IP \(bu 2
  244080. 1931c61563 Only run this pkg.info_installed test on distros that have that func
  244081. .IP \(bu 2
  244082. 0488668a00 Fix lowpkg.info function for Ubuntu 12 \- make sure we have a pkg name
  244083. .UNINDENT
  244084. .IP \(bu 2
  244085. \fBPR\fP \fI\%#31456\fP: (\fI\%RabidCicada\fP) Clarified the form of requisite targets/requisite\-references
  244086. @ \fI2016\-02\-24 16:24:00 UTC\fP
  244087. .INDENT 2.0
  244088. .IP \(bu 2
  244089. fcb12dbe96 Merge pull request \fI\%#31456\fP from RabidCicada/clarify\-requisites\-doc
  244090. .IP \(bu 2
  244091. 87f4843490 Clarified the form of requisite targets/requisite\-references
  244092. .UNINDENT
  244093. .IP \(bu 2
  244094. \fBISSUE\fP \fI\%#30431\fP: (\fI\%nbow\fP) cp.get_url with large files results in an Uncaught Exception (refs: \fI\%#30704\fP)
  244095. .IP \(bu 2
  244096. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#30704\fP)
  244097. .IP \(bu 2
  244098. \fBPR\fP \fI\%#31453\fP: (\fI\%DmitryKuzmenko\fP) Backport cp_geturl fix for large files into 2015.8
  244099. @ \fI2016\-02\-24 15:38:24 UTC\fP
  244100. .INDENT 2.0
  244101. .IP \(bu 2
  244102. \fBPR\fP \fI\%#30704\fP: (\fI\%DmitryKuzmenko\fP) Issues/30431 get url large file (refs: \fI\%#31453\fP)
  244103. .IP \(bu 2
  244104. 7dac1db55d Merge pull request \fI\%#31453\fP from DSRCompany/issues/30431_get_url_large_file_2015.8_backbort
  244105. .IP \(bu 2
  244106. 664bdec2b3 Backport cp_geturl fix for large files into 2015.8
  244107. .UNINDENT
  244108. .IP \(bu 2
  244109. \fBPR\fP \fI\%#31444\fP: (\fI\%jacobhammons\fP) Documentation updates \- ddns state, file.line state/exe function, installation dependencies
  244110. @ \fI2016\-02\-23 22:40:05 UTC\fP
  244111. .INDENT 2.0
  244112. .IP \(bu 2
  244113. 8f6c4be618 Merge pull request \fI\%#31444\fP from jacobhammons/ddns\-docs
  244114. .IP \(bu 2
  244115. 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
  244116. .IP \(bu 2
  244117. 0b1fdf7e21 Added note clarifying when dnspython is not required
  244118. .UNINDENT
  244119. .IP \(bu 2
  244120. \fBPR\fP \fI\%#31341\fP: (\fI\%twangboy\fP) Clarification on Windows Package Manager docs
  244121. @ \fI2016\-02\-23 16:09:18 UTC\fP
  244122. .INDENT 2.0
  244123. .IP \(bu 2
  244124. 42027e0d72 Merge pull request \fI\%#31341\fP from twangboy/package_manager_docs
  244125. .IP \(bu 2
  244126. c16cfc6360 Fix typos
  244127. .IP \(bu 2
  244128. 8dff065cec Fix some formatting issues
  244129. .IP \(bu 2
  244130. dfef24f13b Merge branch \(aq2015.8\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.8
  244131. .IP \(bu 2
  244132. 807257b138 Clarification for Windows Package Manger
  244133. .UNINDENT
  244134. .IP \(bu 2
  244135. \fBPR\fP \fI\%#31380\fP: (\fI\%kiorky\fP) Bring up ext_pillar rendering errors as well
  244136. @ \fI2016\-02\-23 16:08:39 UTC\fP
  244137. .INDENT 2.0
  244138. .IP \(bu 2
  244139. 30d968c0a7 Merge pull request \fI\%#31380\fP from kiorky/p
  244140. .IP \(bu 2
  244141. e3e97a43ce Bring up ext_pillar rendering errors as well
  244142. .UNINDENT
  244143. .IP \(bu 2
  244144. \fBISSUE\fP \fI\%#31410\fP: (\fI\%terminalmage\fP) Debian GNU/Linux grains broken in head of 2015.8 branch (refs: \fI\%#31418\fP)
  244145. .IP \(bu 2
  244146. \fBPR\fP \fI\%#31418\fP: (\fI\%terminalmage\fP) Fix core grains when Debian OS detected as \(aqDebian GNU/Linux\(aq
  244147. @ \fI2016\-02\-23 15:49:49 UTC\fP
  244148. .INDENT 2.0
  244149. .IP \(bu 2
  244150. 64ed9fcd01 Merge pull request \fI\%#31418\fP from terminalmage/fix\-debian\-grains
  244151. .IP \(bu 2
  244152. 5c833efc01 Support running grains tests
  244153. .IP \(bu 2
  244154. 0e0cd17160 Rename core.py to core_test.py
  244155. .IP \(bu 2
  244156. d3cd1b596d Add unit test for core grains
  244157. .IP \(bu 2
  244158. e3d549d376 Fix debian grains setup
  244159. .UNINDENT
  244160. .IP \(bu 2
  244161. \fBPR\fP \fI\%#31429\fP: (\fI\%mcalmer\fP) fix argument handling for pkg.download
  244162. @ \fI2016\-02\-23 15:48:23 UTC\fP
  244163. .INDENT 2.0
  244164. .IP \(bu 2
  244165. ec01b994bd Merge pull request \fI\%#31429\fP from mcalmer/fix\-refresh\-arguments
  244166. .IP \(bu 2
  244167. 299c07fa7d fix argument handling for pkg.download
  244168. .UNINDENT
  244169. .IP \(bu 2
  244170. \fBPR\fP \fI\%#31432\fP: (\fI\%ticosax\fP) [dockerng] Hotfix docker 1.10.2
  244171. @ \fI2016\-02\-23 15:39:04 UTC\fP
  244172. .INDENT 2.0
  244173. .IP \(bu 2
  244174. 05c12b9ba1 Merge pull request \fI\%#31432\fP from ticosax/hotfix\-docker\-1.10.2
  244175. .IP \(bu 2
  244176. 1e9f6ff324 handle inconsistencies in dockerd API
  244177. .IP \(bu 2
  244178. 8484815f58 pep8
  244179. .UNINDENT
  244180. .IP \(bu 2
  244181. \fBPR\fP \fI\%#31420\fP: (\fI\%twangboy\fP) Handle Unversioned Packages
  244182. @ \fI2016\-02\-22 23:46:24 UTC\fP
  244183. .INDENT 2.0
  244184. .IP \(bu 2
  244185. fb81e905e4 Merge pull request \fI\%#31420\fP from twangboy/unversioned_pkgs
  244186. .IP \(bu 2
  244187. 816e991e87 Fix version check
  244188. .IP \(bu 2
  244189. 85d8b938ad Match unversioned packages to winrepo
  244190. .UNINDENT
  244191. .IP \(bu 2
  244192. \fBPR\fP \fI\%#31417\fP: (\fI\%jacobhammons\fP) ddns state docs updated with notes regarding the name, zone, and keyfile.
  244193. @ \fI2016\-02\-22 23:16:48 UTC\fP
  244194. .INDENT 2.0
  244195. .IP \(bu 2
  244196. 19d7810478 Merge pull request \fI\%#31417\fP from jacobhammons/ddns\-docs
  244197. .IP \(bu 2
  244198. 5c4cbbb572 Added notes regarding the name, zone, and keyfile.
  244199. .UNINDENT
  244200. .IP \(bu 2
  244201. \fBPR\fP \fI\%#31391\fP: (\fI\%redmcg\fP) Added sanity check: is \(aqpillar\(aq in self.opts
  244202. @ \fI2016\-02\-22 20:05:27 UTC\fP
  244203. .INDENT 2.0
  244204. .IP \(bu 2
  244205. ac6af79abc Merge pull request \fI\%#31391\fP from redmcg/master_schedule_fix
  244206. .IP \(bu 2
  244207. 91e74feaf3 Added sanity check: is \(aqpillar\(aq in self.opts
  244208. .UNINDENT
  244209. .IP \(bu 2
  244210. \fBPR\fP \fI\%#31376\fP: (\fI\%cro\fP) Some distros don\(aqt have a /lib/systemd
  244211. @ \fI2016\-02\-22 18:11:39 UTC\fP
  244212. .INDENT 2.0
  244213. .IP \(bu 2
  244214. c7bd13c9c9 Merge pull request \fI\%#31376\fP from cro/suse_service2
  244215. .IP \(bu 2
  244216. f3fec5562e We need one more mocked return from listdir.
  244217. .IP \(bu 2
  244218. ab9d9e7008 Can\(aqt add a tuple and a string.
  244219. .IP \(bu 2
  244220. 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.
  244221. .IP \(bu 2
  244222. 8f0e866f1b Some distros do not seem to have a /lib/systemd, but do have a /usr/lib/systemd
  244223. .UNINDENT
  244224. .IP \(bu 2
  244225. \fBISSUE\fP \fI\%#29727\fP: (\fI\%oeuftete\fP) dockerng.running does not pull image as documented (refs: \fI\%#31352\fP, \fI\%#31455\fP)
  244226. .IP \(bu 2
  244227. \fBISSUE\fP \fI\%#27976\fP: (\fI\%syphernl\fP) Module dockerng.inspect_image always returns 404 (refs: \fI\%#31352\fP)
  244228. .IP \(bu 2
  244229. \fBPR\fP \fI\%#31352\fP: (\fI\%ticosax\fP) [dockerng] Pull missing images when calling dockerng.running
  244230. @ \fI2016\-02\-22 16:54:10 UTC\fP
  244231. .INDENT 2.0
  244232. .IP \(bu 2
  244233. 105821efc7 Merge pull request \fI\%#31352\fP from ticosax/pull\-image\-on\-running
  244234. .IP \(bu 2
  244235. 8c86eeb4dc Pull missing images when calling dockerng.running
  244236. .UNINDENT
  244237. .IP \(bu 2
  244238. \fBPR\fP \fI\%#31378\fP: (\fI\%mcalmer\fP) Zypper refresh handling
  244239. @ \fI2016\-02\-22 16:50:28 UTC\fP
  244240. .INDENT 2.0
  244241. .IP \(bu 2
  244242. 83294e4f3a Merge pull request \fI\%#31378\fP from mcalmer/zypper\-refresh\-handling
  244243. .IP \(bu 2
  244244. 274e6467be do not change kwargs in refresh while checking a value
  244245. .IP \(bu 2
  244246. 644b14c273 simplify checking the refresh paramater
  244247. .IP \(bu 2
  244248. db0e0de2fd add refresh option to more functions
  244249. .IP \(bu 2
  244250. 5836be3f59 unify behavior of refresh
  244251. .UNINDENT
  244252. .IP \(bu 2
  244253. \fBISSUE\fP \fI\%#31229\fP: (\fI\%eykd\fP) git.latest broken behavior in 2015.8.x on older Git (refs: \fI\%#31373\fP)
  244254. .IP \(bu 2
  244255. \fBPR\fP \fI\%#31373\fP: (\fI\%terminalmage\fP) Use \-\-set\-upstream instead of \-\-track to set upstream on older git
  244256. @ \fI2016\-02\-22 16:46:00 UTC\fP
  244257. .INDENT 2.0
  244258. .IP \(bu 2
  244259. e24685b89a Merge pull request \fI\%#31373\fP from terminalmage/issue31229
  244260. .IP \(bu 2
  244261. 28f0a75cc1 Use \-\-set\-upstream instead of \-\-track to set upstream on older git
  244262. .UNINDENT
  244263. .IP \(bu 2
  244264. \fBISSUE\fP \fI\%#31137\fP: (\fI\%jeffreyctang\fP) logrotate creates .bak files in /etc/logrotate.d which logrotate reads. (refs: \fI\%#31390\fP)
  244265. .IP \(bu 2
  244266. \fBPR\fP \fI\%#31390\fP: (\fI\%abednarik\fP) Fix Logrotate module.
  244267. @ \fI2016\-02\-22 16:09:15 UTC\fP
  244268. .INDENT 2.0
  244269. .IP \(bu 2
  244270. c5790bc4d6 Merge pull request \fI\%#31390\fP from abednarik/remove_deprecated_psed_in_lorgotate
  244271. .IP \(bu 2
  244272. c1e0ff7785 Fix Logrotate module.
  244273. .UNINDENT
  244274. .IP \(bu 2
  244275. \fBISSUE\fP \fI\%#28004\fP: (\fI\%warden\fP) dockerng.image_present should allow public repository pulling by default (refs: \fI\%#31354\fP)
  244276. .IP \(bu 2
  244277. \fBPR\fP \fI\%#31354\fP: (\fI\%ticosax\fP) [dockerng] Dont require auth for all registries
  244278. @ \fI2016\-02\-20 05:45:10 UTC\fP
  244279. .INDENT 2.0
  244280. .IP \(bu 2
  244281. 174ee10fc2 Merge pull request \fI\%#31354\fP from ticosax/dont\-require\-auth\-for\-all\-registries
  244282. .IP \(bu 2
  244283. 4a9f661d66 It exists public registries where auth is not required.
  244284. .UNINDENT
  244285. .IP \(bu 2
  244286. \fBPR\fP \fI\%#31368\fP: (\fI\%whiteinge\fP) Update list of netapi clients for autoclass
  244287. @ \fI2016\-02\-19 20:57:28 UTC\fP
  244288. .INDENT 2.0
  244289. .IP \(bu 2
  244290. 8d0498eff4 Merge pull request \fI\%#31368\fP from whiteinge/netapi\-client\-list
  244291. .IP \(bu 2
  244292. 0cfe5d89a0 Update list of netapi clients for autoclass
  244293. .UNINDENT
  244294. .IP \(bu 2
  244295. \fBPR\fP \fI\%#31367\fP: (\fI\%techhat\fP) Add docs on how to actually use SDB
  244296. @ \fI2016\-02\-19 20:07:17 UTC\fP
  244297. .INDENT 2.0
  244298. .IP \(bu 2
  244299. 9b0e29107b Merge pull request \fI\%#31367\fP from techhat/sdbdocs
  244300. .IP \(bu 2
  244301. eea192a545 Add docs on how to actually use SDB
  244302. .UNINDENT
  244303. .IP \(bu 2
  244304. \fBPR\fP \fI\%#31357\fP: (\fI\%ticosax\fP) [dockerng] Support docker inconsistencies
  244305. @ \fI2016\-02\-19 20:02:08 UTC\fP
  244306. .INDENT 2.0
  244307. .IP \(bu 2
  244308. 7e599f0e27 Merge pull request \fI\%#31357\fP from ticosax/support\-docker\-inconsistencies
  244309. .IP \(bu 2
  244310. 3672b8e7b1 docker daemon returns sometimes empty list and sometimes None
  244311. .UNINDENT
  244312. .IP \(bu 2
  244313. \fBPR\fP \fI\%#31353\fP: (\fI\%ticosax\fP) [dockerng] Fix when ports are integers
  244314. @ \fI2016\-02\-19 19:55:30 UTC\fP
  244315. .INDENT 2.0
  244316. .IP \(bu 2
  244317. \fBPR\fP \fI\%#31326\fP: (\fI\%ticosax\fP) [dockerng ] Detect settings removal (refs: \fI\%#31353\fP)
  244318. .IP \(bu 2
  244319. 18bd78260d Merge pull request \fI\%#31353\fP from ticosax/fix\-when\-port\-are\-integers
  244320. .IP \(bu 2
  244321. 20fdc43968 Follow up for \fI\%#31326\fP
  244322. .UNINDENT
  244323. .IP \(bu 2
  244324. \fBPR\fP \fI\%#31346\fP: (\fI\%ticosax\fP) Backport \fI\%#31130\fP to 2015.8
  244325. @ \fI2016\-02\-19 19:46:48 UTC\fP
  244326. .INDENT 2.0
  244327. .IP \(bu 2
  244328. \fBPR\fP \fI\%#31130\fP: (\fI\%ticosax\fP) Saltnado: provide also get parameters to the context (refs: \fI\%#31346\fP)
  244329. .IP \(bu 2
  244330. dec254a7a2 Merge pull request \fI\%#31346\fP from ticosax/backport\-31130\-to\-2015.8
  244331. .IP \(bu 2
  244332. a8dc33a5e3 Saltnado provide also get parameters to the context
  244333. .UNINDENT
  244334. .IP \(bu 2
  244335. \fBPR\fP \fI\%#31332\fP: (\fI\%terminalmage\fP) Clarify documentation for gitfs/hgfs/svnfs mountpoint and root options
  244336. @ \fI2016\-02\-19 18:31:29 UTC\fP
  244337. .INDENT 2.0
  244338. .IP \(bu 2
  244339. d639d65381 Merge pull request \fI\%#31332\fP from terminalmage/issue31167
  244340. .IP \(bu 2
  244341. eebc325040 Clarify documentation for gitfs/hgfs/svnfs mountpoint and root options
  244342. .UNINDENT
  244343. .IP \(bu 2
  244344. \fBPR\fP \fI\%#31305\fP: (\fI\%mcalmer\fP) call zypper with option \-\-non\-interactive everywhere
  244345. @ \fI2016\-02\-19 18:14:57 UTC\fP
  244346. .INDENT 2.0
  244347. .IP \(bu 2
  244348. d067e77fee Merge pull request \fI\%#31305\fP from mcalmer/zypper\-non\-interactive\-everywhere
  244349. .IP \(bu 2
  244350. 75e776761c write a zypper command builder function
  244351. .IP \(bu 2
  244352. 3df302fcb7 call zypper with option \-\-non\-interactive everywhere
  244353. .UNINDENT
  244354. .IP \(bu 2
  244355. \fBPR\fP \fI\%#31337\fP: (\fI\%jacobhammons\fP) Release notes and versioning for 2015.8.7
  244356. @ \fI2016\-02\-19 00:20:30 UTC\fP
  244357. .INDENT 2.0
  244358. .IP \(bu 2
  244359. 98a14f8090 Merge pull request \fI\%#31337\fP from jacobhammons/dot7
  244360. .IP \(bu 2
  244361. d4fb33939e Release notes and versioning for 2015.8.7
  244362. .UNINDENT
  244363. .IP \(bu 2
  244364. \fBPR\fP \fI\%#31326\fP: (\fI\%ticosax\fP) [dockerng ] Detect settings removal (refs: \fI\%#31353\fP)
  244365. @ \fI2016\-02\-18 22:02:50 UTC\fP
  244366. .INDENT 2.0
  244367. .IP \(bu 2
  244368. f0ba9c1eca Merge pull request \fI\%#31326\fP from ticosax/2015.8\-dockerng\-detect\-settings\-removal
  244369. .IP \(bu 2
  244370. 7bedd86ebe Add detection of removed settings.
  244371. .UNINDENT
  244372. .IP \(bu 2
  244373. \fBPR\fP \fI\%#31292\fP: (\fI\%twangboy\fP) Fix dunder virtual to check for Remote Administration Tools
  244374. @ \fI2016\-02\-18 18:57:26 UTC\fP
  244375. .INDENT 2.0
  244376. .IP \(bu 2
  244377. 130f515391 Merge pull request \fI\%#31292\fP from twangboy/win_servermanager
  244378. .IP \(bu 2
  244379. 89b47ab3c5 Update return documentation for install/remove
  244380. .IP \(bu 2
  244381. a0be43120b Fix cmd_quote error
  244382. .IP \(bu 2
  244383. 13cd57a890 Remove repeating Import ServerManager command
  244384. .IP \(bu 2
  244385. 3270a2859f Add check for server manager module
  244386. .IP \(bu 2
  244387. 4bdae47a44 Added checks for Windows 2008 R2
  244388. .UNINDENT
  244389. .IP \(bu 2
  244390. \fBISSUE\fP \fI\%#30932\fP: (\fI\%johje349\fP) Glusterfs peered fails on secondary host in 2015.8.4 (refs: \fI\%#31287\fP)
  244391. .IP \(bu 2
  244392. \fBPR\fP \fI\%#31287\fP: (\fI\%joejulian\fP) Rework tests and fix reverse peering with gluster 3.7
  244393. @ \fI2016\-02\-18 17:57:23 UTC\fP
  244394. .INDENT 2.0
  244395. .IP \(bu 2
  244396. 5d31714b44 Merge pull request \fI\%#31287\fP from joejulian/2015.8_30932_peer_probe_by_ip
  244397. .IP \(bu 2
  244398. 783e9b2e13 Rework tests and fix reverse peering with gluster 3.7
  244399. .UNINDENT
  244400. .IP \(bu 2
  244401. \fBPR\fP \fI\%#31196\fP: (\fI\%sakateka\fP) Here are a few fixes utils.network
  244402. @ \fI2016\-02\-18 17:27:00 UTC\fP
  244403. .INDENT 2.0
  244404. .IP \(bu 2
  244405. a2f6447f8d Merge pull request \fI\%#31196\fP from sakateka/utils\-network\-fix
  244406. .IP \(bu 2
  244407. a7b11024dd fix typo
  244408. .IP \(bu 2
  244409. 92fd48fcf7 Do not Fallback to use lsof if proc available
  244410. .UNINDENT
  244411. .IP \(bu 2
  244412. \fBISSUE\fP \fI\%#29795\fP: (\fI\%vutny\fP) Unable to override state\-output setting in command line (refs: \fI\%#31299\fP)
  244413. .IP \(bu 2
  244414. \fBPR\fP \fI\%#31299\fP: (\fI\%rallytime\fP) Allow state\-output and state\-verbose default settings to be set from CLI
  244415. @ \fI2016\-02\-18 17:25:23 UTC\fP
  244416. .INDENT 2.0
  244417. .IP \(bu 2
  244418. d20a30b8be Merge pull request \fI\%#31299\fP from rallytime/fix\-29795
  244419. .IP \(bu 2
  244420. 483f31922b Allow state\-output and state\-verbose default settings to be set from CLI
  244421. .UNINDENT
  244422. .IP \(bu 2
  244423. \fBPR\fP \fI\%#31317\fP: (\fI\%terminalmage\fP) Fix versonadded directive
  244424. @ \fI2016\-02\-18 16:56:32 UTC\fP
  244425. .INDENT 2.0
  244426. .IP \(bu 2
  244427. 25d8af21c9 Merge pull request \fI\%#31317\fP from terminalmage/git\-version\-audit
  244428. .IP \(bu 2
  244429. acc3b54621 Fix versonadded directive
  244430. .UNINDENT
  244431. .IP \(bu 2
  244432. \fBISSUE\fP \fI\%#30999\fP: (\fI\%orymate\fP) git.latest rev=tag fails with old git(1) (refs: \fI\%#31245\fP, \fI\%#31301\fP)
  244433. .IP \(bu 2
  244434. \fBPR\fP \fI\%#31301\fP: (\fI\%terminalmage\fP) Corrected fix for \fI\%#30999\fP
  244435. @ \fI2016\-02\-18 15:59:40 UTC\fP
  244436. .INDENT 2.0
  244437. .IP \(bu 2
  244438. \fBPR\fP \fI\%#31245\fP: (\fI\%jespada\fP) fix git state for git version older than 1.9.2 (refs: \fI\%#31301\fP)
  244439. .IP \(bu 2
  244440. f2b662371c Merge pull request \fI\%#31301\fP from terminalmage/issue30999
  244441. .IP \(bu 2
  244442. 625af70e08 Fix \-\-unset\-upstream handling
  244443. .IP \(bu 2
  244444. 7940881797 fix git state github issue \fI\%#30999\fP
  244445. .UNINDENT
  244446. .IP \(bu 2
  244447. \fBPR\fP \fI\%#31302\fP: (\fI\%terminalmage\fP) Audit CLI opts used in git states
  244448. @ \fI2016\-02\-18 15:58:48 UTC\fP
  244449. .INDENT 2.0
  244450. .IP \(bu 2
  244451. 408d89e174 Merge pull request \fI\%#31302\fP from terminalmage/git\-version\-audit
  244452. .IP \(bu 2
  244453. ca410c0a94 Audit CLI opts used in git states
  244454. .UNINDENT
  244455. .IP \(bu 2
  244456. \fBPR\fP \fI\%#31312\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8
  244457. @ \fI2016\-02\-18 15:57:08 UTC\fP
  244458. .INDENT 2.0
  244459. .IP \(bu 2
  244460. 098f05eb3c Merge pull request \fI\%#31312\fP from terminalmage/merge\-forward\-2015.5\-2015.8
  244461. .IP \(bu 2
  244462. 808d150fe4 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.5\-2015.8
  244463. .IP \(bu 2
  244464. cd3400e67e Merge pull request \fI\%#31288\fP from notpeter/ssh_known_hosts_docs
  244465. .INDENT 2.0
  244466. .IP \(bu 2
  244467. 3f573d89a2 Improve salt.states.ssh_known_hosts documentation.
  244468. .UNINDENT
  244469. .IP \(bu 2
  244470. 875d9925fa Merge pull request \fI\%#31183\fP from heyfife/fix\-gce\-named\-static\-ip\-reservation
  244471. .INDENT 2.0
  244472. .IP \(bu 2
  244473. 26774e2323 Fixed named external_ip reservation/re\-use code.
  244474. .UNINDENT
  244475. .IP \(bu 2
  244476. e56c402c0c Merge pull request \fI\%#31032\fP from terminalmage/issue31001
  244477. .INDENT 2.0
  244478. .IP \(bu 2
  244479. 42daea4509 yumpkg.py: Remove repoquery usage everywhere but check_db
  244480. .IP \(bu 2
  244481. 50befbc149 backport salt.utils.pkg.rpm to 2015.5
  244482. .IP \(bu 2
  244483. a1ad14994a Move salt.utils.itersplit() to salt.utils.itertools.split()
  244484. .IP \(bu 2
  244485. 5b8646ce64 Ignore failure to install new enough dnf\-plugins\-core
  244486. .IP \(bu 2
  244487. defe0859fd Ensure that dnf\-plugins\-core 0.1.15 is installed
  244488. .UNINDENT
  244489. .IP \(bu 2
  244490. cec69b74f0 Merge pull request \fI\%#31264\fP from sjorge/if_missing\-155\-fix
  244491. .INDENT 2.0
  244492. .IP \(bu 2
  244493. 545edbf5e1 fix if_missing gets appended to dirs list, take III
  244494. .UNINDENT
  244495. .UNINDENT
  244496. .IP \(bu 2
  244497. \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)
  244498. .IP \(bu 2
  244499. \fBPR\fP \fI\%#31225\fP: (\fI\%pprince\fP) Fix in file_tree pillar (Fixes \fI\%#31223\fP\&.)
  244500. @ \fI2016\-02\-18 06:06:12 UTC\fP
  244501. .INDENT 2.0
  244502. .IP \(bu 2
  244503. c58f654bc3 Merge pull request \fI\%#31225\fP from pprince/PR/bugfix/file_tree
  244504. .IP \(bu 2
  244505. d592d8636b Fix regression in file_tree pillar (Fixes \fI\%#31223\fP\&.)
  244506. .UNINDENT
  244507. .IP \(bu 2
  244508. \fBPR\fP \fI\%#31233\fP: (\fI\%mcalmer\fP) implement version_cmp for zypper
  244509. @ \fI2016\-02\-17 20:20:19 UTC\fP
  244510. .INDENT 2.0
  244511. .IP \(bu 2
  244512. fe9e5d27e6 Merge pull request \fI\%#31233\fP from mcalmer/2015.8\-zypperpy\-add\-version_cmp
  244513. .IP \(bu 2
  244514. 389a4b2548 Check if rpm\-python can be imported
  244515. .IP \(bu 2
  244516. 6ad6a90955 pylint changes
  244517. .IP \(bu 2
  244518. 7beaf26068 implement version_cmp for zypper
  244519. .UNINDENT
  244520. .IP \(bu 2
  244521. \fBPR\fP \fI\%#31273\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  244522. @ \fI2016\-02\-17 20:14:05 UTC\fP
  244523. .INDENT 2.0
  244524. .IP \(bu 2
  244525. 93c03a400b Merge pull request \fI\%#31273\fP from rallytime/merge\-2015.5
  244526. .IP \(bu 2
  244527. 11cfb636fb Pylint fix
  244528. .IP \(bu 2
  244529. 023ad4635c Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  244530. .INDENT 2.0
  244531. .IP \(bu 2
  244532. fa3f474de9 Merge pull request \fI\%#31110\fP from cachedout/fixup_30730
  244533. .INDENT 2.0
  244534. .IP \(bu 2
  244535. 5bf5848e04 Fixup unit test
  244536. .IP \(bu 2
  244537. f558f68e0a Fixes pylint warnings
  244538. .IP \(bu 2
  244539. 56a975ec43 Attempt to fix pylint warnings
  244540. .IP \(bu 2
  244541. 55d71be057 Make documentation and code examples consistent with code
  244542. .IP \(bu 2
  244543. 1f04fed6f8 Change parameter name from includes to skips
  244544. .IP \(bu 2
  244545. ccf5e13e7d Adding support for skipHidden in SetInclude
  244546. .IP \(bu 2
  244547. 4f2d4af2e7 Variable names standardization
  244548. .IP \(bu 2
  244549. f5917ac1e8 Fixes typo
  244550. .IP \(bu 2
  244551. 26e5236073 Invert RebootRequired logic
  244552. .IP \(bu 2
  244553. 8065a7abf6 Add basic documentation and define how the skips parameter works.
  244554. .IP \(bu 2
  244555. 389fea7508 Change parameter name from includes to skips
  244556. .IP \(bu 2
  244557. 30e1fef906 Adding support for skipHidden in SetInclude
  244558. .IP \(bu 2
  244559. 1244eea5be Variable names standardization, consistent if/else logic with states.win_update
  244560. .UNINDENT
  244561. .UNINDENT
  244562. .UNINDENT
  244563. .IP \(bu 2
  244564. \fBPR\fP \fI\%#31253\fP: (\fI\%gtmanfred\fP) allow for nova servers to be built with premade volumes
  244565. @ \fI2016\-02\-17 17:55:39 UTC\fP
  244566. .INDENT 2.0
  244567. .IP \(bu 2
  244568. dc2e7c8956 Merge pull request \fI\%#31253\fP from gtmanfred/2015.8
  244569. .IP \(bu 2
  244570. 36bf06e539 fix doc for boot_volume
  244571. .IP \(bu 2
  244572. 9660c91b57 allow for nova servers to be built with premade volumes
  244573. .UNINDENT
  244574. .IP \(bu 2
  244575. \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)
  244576. .IP \(bu 2
  244577. \fBPR\fP \fI\%#31271\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30689\fP to 2015.8
  244578. @ \fI2016\-02\-17 16:52:36 UTC\fP
  244579. .INDENT 2.0
  244580. .IP \(bu 2
  244581. \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)
  244582. .IP \(bu 2
  244583. 29e3dd091d Merge pull request \fI\%#31271\fP from rallytime/bp\-30689
  244584. .IP \(bu 2
  244585. 3dae79d516 fix nested grains always show update due to __grains__.get() not supporting the ":" seperator
  244586. .UNINDENT
  244587. .IP \(bu 2
  244588. \fBISSUE\fP \fI\%#30461\fP: (\fI\%jfindlay\fP) update documentation on bootstrap\-supported platforms (refs: \fI\%#31255\fP)
  244589. .IP \(bu 2
  244590. \fBPR\fP \fI\%#31255\fP: (\fI\%jacobhammons\fP) Fixes \fI\%#30461\fP
  244591. @ \fI2016\-02\-17 02:23:46 UTC\fP
  244592. .INDENT 2.0
  244593. .IP \(bu 2
  244594. fcfc6f4fd3 Merge pull request \fI\%#31255\fP from jacobhammons/doc\-fixes
  244595. .IP \(bu 2
  244596. 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
  244597. .UNINDENT
  244598. .IP \(bu 2
  244599. \fBISSUE\fP \fI\%#31106\fP: (\fI\%rvandegrift\fP) Exception from scheduled runner (refs: \fI\%#31189\fP)
  244600. .IP \(bu 2
  244601. \fBPR\fP \fI\%#31189\fP: (\fI\%dmacvicar\fP) Fix crash with scheduler and runners (\fI\%#31106\fP)
  244602. @ \fI2016\-02\-16 18:49:36 UTC\fP
  244603. .INDENT 2.0
  244604. .IP \(bu 2
  244605. 62d76902ce Merge pull request \fI\%#31189\fP from dmacvicar/dmacvicar\-2015.8\-31106
  244606. .IP \(bu 2
  244607. 9ad8cb1e6b Fix crash with scheduler and runners (\fI\%#31106\fP)
  244608. .UNINDENT
  244609. .IP \(bu 2
  244610. \fBISSUE\fP \fI\%#30962\fP: (\fI\%fantasy86\fP) Targeting by matching ip address doesn\(aqt work (refs: \fI\%#31201\fP)
  244611. .IP \(bu 2
  244612. \fBISSUE\fP \fI\%#30169\fP: (\fI\%colinlabs\fP) Can\(aqt use Subnet/IP Address Matching (refs: \fI\%#31201\fP)
  244613. .IP \(bu 2
  244614. \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)
  244615. .IP \(bu 2
  244616. \fBISSUE\fP \fI\%#29188\fP: (\fI\%bergemalm\fP) Unable to target minions via ipcidr in 2015.8 (refs: \fI\%#31201\fP)
  244617. .IP \(bu 2
  244618. \fBPR\fP \fI\%#31201\fP: (\fI\%The\-Loeki\fP) Utilize prepared grains var in master\-side ipcidr matching
  244619. @ \fI2016\-02\-16 18:36:10 UTC\fP
  244620. .INDENT 2.0
  244621. .IP \(bu 2
  244622. dc78d0a504 Merge pull request \fI\%#31201\fP from The\-Loeki/patch\-1
  244623. .IP \(bu 2
  244624. 318689d728 Correct ordering of address/network matching, improve performance of master\-side cidr matching
  244625. .IP \(bu 2
  244626. 4e4e0926da Utilize prepared grains var in master\-side ipcidr matching
  244627. .UNINDENT
  244628. .IP \(bu 2
  244629. \fBPR\fP \fI\%#31239\fP: (\fI\%terminalmage\fP) Improve logging when master cannot decode a payload
  244630. @ \fI2016\-02\-16 16:35:46 UTC\fP
  244631. .INDENT 2.0
  244632. .IP \(bu 2
  244633. 60bbac36fa Merge pull request \fI\%#31239\fP from terminalmage/better\-bad\-load\-logging
  244634. .IP \(bu 2
  244635. 1fbe3cba1f Improve logging when master cannot decode a payload
  244636. .UNINDENT
  244637. .IP \(bu 2
  244638. \fBISSUE\fP \fI\%#31185\fP: (\fI\%twangboy\fP) pkg.refresh_db leaves old sls files if the name changes (refs: \fI\%#31190\fP)
  244639. .IP \(bu 2
  244640. \fBPR\fP \fI\%#31190\fP: (\fI\%twangboy\fP) Clear minion cache before caching from master
  244641. @ \fI2016\-02\-16 16:11:26 UTC\fP
  244642. .INDENT 2.0
  244643. .IP \(bu 2
  244644. 80f1c3553b Merge pull request \fI\%#31190\fP from twangboy/refresh_db
  244645. .IP \(bu 2
  244646. 860437665d Fix some lint
  244647. .IP \(bu 2
  244648. 799d938d6a Clear minion cache before caching from master
  244649. .UNINDENT
  244650. .IP \(bu 2
  244651. \fBPR\fP \fI\%#31226\fP: (\fI\%pprince\fP) Minor docs fix: file_tree pillar (Fixes \fI\%#31124\fP)
  244652. @ \fI2016\-02\-16 15:25:33 UTC\fP
  244653. .INDENT 2.0
  244654. .IP \(bu 2
  244655. \fBPR\fP \fI\%#31124\fP: (\fI\%zygiss\fP) Make load beacon cross\-platform (refs: \fI\%#31226\fP)
  244656. .IP \(bu 2
  244657. 28a2b8097b Merge pull request \fI\%#31226\fP from pprince/PR/docfix/file_tree
  244658. .IP \(bu 2
  244659. c13852fbbf Minor docs fix: file_tree pillar (Fixes \fI\%#31124\fP)
  244660. .UNINDENT
  244661. .IP \(bu 2
  244662. \fBPR\fP \fI\%#31234\fP: (\fI\%mcalmer\fP) improve doc for list_pkgs
  244663. @ \fI2016\-02\-16 15:25:06 UTC\fP
  244664. .INDENT 2.0
  244665. .IP \(bu 2
  244666. 9afad13306 Merge pull request \fI\%#31234\fP from mcalmer/zypperpy\-comment\-list_pkgs
  244667. .IP \(bu 2
  244668. e3bb862a32 improve doc for list_pkgs
  244669. .UNINDENT
  244670. .IP \(bu 2
  244671. \fBPR\fP \fI\%#31237\fP: (\fI\%mcalmer\fP) add handling for OEM products
  244672. @ \fI2016\-02\-16 15:12:21 UTC\fP
  244673. .INDENT 2.0
  244674. .IP \(bu 2
  244675. e8f3a707ae Merge pull request \fI\%#31237\fP from mcalmer/zypper_py\-add\-OEM\-product\-handling
  244676. .IP \(bu 2
  244677. d773b7317b add handling for OEM products
  244678. .UNINDENT
  244679. .IP \(bu 2
  244680. \fBPR\fP \fI\%#31182\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31172\fP to 2015.8
  244681. @ \fI2016\-02\-13 21:36:07 UTC\fP
  244682. .INDENT 2.0
  244683. .IP \(bu 2
  244684. \fBPR\fP \fI\%#31172\fP: (\fI\%techhat\fP) Use correct deploy directory (refs: \fI\%#31182\fP)
  244685. .IP \(bu 2
  244686. 415654ee9e Merge pull request \fI\%#31182\fP from rallytime/bp\-31172
  244687. .IP \(bu 2
  244688. a743778e98 Use correct deploy directory
  244689. .UNINDENT
  244690. .IP \(bu 2
  244691. \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)
  244692. .IP \(bu 2
  244693. \fBPR\fP \fI\%#31191\fP: (\fI\%rallytime\fP) Make sure doc example matches kwarg
  244694. @ \fI2016\-02\-13 21:34:57 UTC\fP
  244695. .INDENT 2.0
  244696. .IP \(bu 2
  244697. 434e05667a Merge pull request \fI\%#31191\fP from rallytime/fix\-27498
  244698. .IP \(bu 2
  244699. 0bdbaa49d1 Make sure doc example matches kwarg
  244700. .UNINDENT
  244701. .IP \(bu 2
  244702. \fBPR\fP \fI\%#31171\fP: (\fI\%Ch3LL\fP) added logic to check for installed package
  244703. @ \fI2016\-02\-12 22:10:21 UTC\fP
  244704. .INDENT 2.0
  244705. .IP \(bu 2
  244706. c5e5af827c Merge pull request \fI\%#31171\fP from Ch3LL/megan\-20158
  244707. .IP \(bu 2
  244708. a12e2f566b fix lint error
  244709. .IP \(bu 2
  244710. a123efd4ef added logic to check for installed package
  244711. .UNINDENT
  244712. .IP \(bu 2
  244713. \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)
  244714. .IP \(bu 2
  244715. \fBPR\fP \fI\%#31177\fP: (\fI\%Ch3LL\fP) add integration test for issue \fI\%#30934\fP
  244716. @ \fI2016\-02\-12 22:09:31 UTC\fP
  244717. .INDENT 2.0
  244718. .IP \(bu 2
  244719. a024d3536f Merge pull request \fI\%#31177\fP from Ch3LL/test_content_pillars
  244720. .IP \(bu 2
  244721. 9204e3f562 add integration test for issue 30934w
  244722. .UNINDENT
  244723. .IP \(bu 2
  244724. \fBPR\fP \fI\%#31181\fP: (\fI\%cachedout\fP) Lint 2015.8 branch
  244725. @ \fI2016\-02\-12 21:57:02 UTC\fP
  244726. .INDENT 2.0
  244727. .IP \(bu 2
  244728. 1f22335e28 Merge pull request \fI\%#31181\fP from cachedout/lint_20158
  244729. .IP \(bu 2
  244730. 4c0be11627 Lint 2015.8 branch
  244731. .UNINDENT
  244732. .IP \(bu 2
  244733. \fBISSUE\fP \fI\%#29423\fP: (\fI\%l13t\fP) iptables and match\-set with two parameters (refs: \fI\%#29718\fP)
  244734. .IP \(bu 2
  244735. \fBPR\fP \fI\%#31169\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29718\fP to 2015.8
  244736. @ \fI2016\-02\-12 18:28:13 UTC\fP
  244737. .INDENT 2.0
  244738. .IP \(bu 2
  244739. \fBPR\fP \fI\%#29718\fP: (\fI\%thusoy\fP) Support match\-sets in iptables module (refs: \fI\%#31169\fP)
  244740. .IP \(bu 2
  244741. 4d1b49c1e7 Merge pull request \fI\%#31169\fP from rallytime/bp\-29718
  244742. .IP \(bu 2
  244743. ceae2a16f8 Support match\-sets in iptables module
  244744. .UNINDENT
  244745. .IP \(bu 2
  244746. \fBPR\fP \fI\%#31170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31157\fP to 2015.8
  244747. @ \fI2016\-02\-12 18:27:49 UTC\fP
  244748. .INDENT 2.0
  244749. .IP \(bu 2
  244750. \fBPR\fP \fI\%#31157\fP: (\fI\%captaininspiration\fP) Fix locale generation on Ubuntu (refs: \fI\%#31170\fP)
  244751. .IP \(bu 2
  244752. f2efd3e6c1 Merge pull request \fI\%#31170\fP from rallytime/bp\-31157
  244753. .IP \(bu 2
  244754. 27776b5f4e Fix locale generation on Ubuntu
  244755. .UNINDENT
  244756. .IP \(bu 2
  244757. \fBPR\fP \fI\%#31147\fP: (\fI\%cro\fP) Documentation clarifications.
  244758. @ \fI2016\-02\-12 17:16:27 UTC\fP
  244759. .INDENT 2.0
  244760. .IP \(bu 2
  244761. 7f49fbb70d Merge pull request \fI\%#31147\fP from cro/fx2_doc
  244762. .IP \(bu 2
  244763. a005e4af55 Documentation clarifications.
  244764. .UNINDENT
  244765. .IP \(bu 2
  244766. \fBPR\fP \fI\%#31153\fP: (\fI\%edencrane\fP) Fixed invalid host causing \(aqreference to variable before assignment\(aq
  244767. @ \fI2016\-02\-12 16:30:19 UTC\fP
  244768. .INDENT 2.0
  244769. .IP \(bu 2
  244770. 7986b9e033 Merge pull request \fI\%#31153\fP from edencrane/fix\-network\-connect\-invalid\-hostname
  244771. .IP \(bu 2
  244772. a14c4bb5f2 Fixed invalid host causing \(aqreference to variable before assignment\(aq
  244773. .UNINDENT
  244774. .IP \(bu 2
  244775. \fBISSUE\fP \fI\%#30994\fP: (\fI\%onorua\fP) beacon enable from state is failing (refs: \fI\%#31152\fP)
  244776. .IP \(bu 2
  244777. \fBPR\fP \fI\%#31152\fP: (\fI\%garethgreenaway\fP) fixes to beacon module, state module and friends
  244778. @ \fI2016\-02\-12 16:27:40 UTC\fP
  244779. .INDENT 2.0
  244780. .IP \(bu 2
  244781. f5ab76801b Merge pull request \fI\%#31152\fP from garethgreenaway/30994_beacon_add_failing_and_other_fixes
  244782. .IP \(bu 2
  244783. 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.
  244784. .UNINDENT
  244785. .IP \(bu 2
  244786. \fBPR\fP \fI\%#31149\fP: (\fI\%jfindlay\fP) add 2015.8.7 release notes
  244787. @ \fI2016\-02\-12 00:06:15 UTC\fP
  244788. .INDENT 2.0
  244789. .IP \(bu 2
  244790. c8047d979d Merge pull request \fI\%#31149\fP from jfindlay/2015.8
  244791. .IP \(bu 2
  244792. b58783b895 add 2015.8.7 release notes
  244793. .UNINDENT
  244794. .IP \(bu 2
  244795. \fBPR\fP \fI\%#31134\fP: (\fI\%isbm\fP) Fix types in the output data and return just a list of products
  244796. @ \fI2016\-02\-11 20:19:22 UTC\fP
  244797. .INDENT 2.0
  244798. .IP \(bu 2
  244799. 5c394ac49c Merge pull request \fI\%#31134\fP from isbm/isbm\-zypper\-list\-products
  244800. .IP \(bu 2
  244801. 670a326e3d Fix types in the output data and return just a list of products
  244802. .UNINDENT
  244803. .IP \(bu 2
  244804. \fBISSUE\fP \fI\%#31115\fP: (\fI\%nfillot\fP) 2015.8.5 salt\-cloud nova valid ip address was not found (refs: \fI\%#31120\fP)
  244805. .IP \(bu 2
  244806. \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)
  244807. .IP \(bu 2
  244808. \fBISSUE\fP \fI\%#29666\fP: (\fI\%tminn\fP) Nova driver broken for 2015.8.[1\-3] (refs: \fI\%#31120\fP)
  244809. .IP \(bu 2
  244810. \fBPR\fP \fI\%#31120\fP: (\fI\%gtmanfred\fP) Clean up some bugs in the nova driver
  244811. @ \fI2016\-02\-11 20:17:41 UTC\fP
  244812. .INDENT 2.0
  244813. .IP \(bu 2
  244814. 8f2e3a26e5 Merge pull request \fI\%#31120\fP from gtmanfred/2015.8
  244815. .IP \(bu 2
  244816. 4a411c0817 fix comment
  244817. .IP \(bu 2
  244818. 47ecb7a150 include all ips in public_ips or private_ips
  244819. .IP \(bu 2
  244820. b2e8202f5d dont exit on a missing server
  244821. .IP \(bu 2
  244822. 8ad1ee6db4 clean up references to access_ip extra network
  244823. .UNINDENT
  244824. .IP \(bu 2
  244825. \fBISSUE\fP \fI\%#31099\fP: (\fI\%Ch3LL\fP) Cannot specify size in map file in 2015.8 (refs: \fI\%#31132\fP)
  244826. .IP \(bu 2
  244827. \fBPR\fP \fI\%#31132\fP: (\fI\%rallytime\fP) Make sure required profile configurations passed in a map file work
  244828. @ \fI2016\-02\-11 20:16:46 UTC\fP
  244829. .INDENT 2.0
  244830. .IP \(bu 2
  244831. 2d592a398e Merge pull request \fI\%#31132\fP from rallytime/fix\-31099
  244832. .IP \(bu 2
  244833. 1da03da9df Pylint fix
  244834. .IP \(bu 2
  244835. 337592ec56 Make sure required profile configurations passed in a map file work
  244836. .UNINDENT
  244837. .IP \(bu 2
  244838. \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)
  244839. .IP \(bu 2
  244840. \fBPR\fP \fI\%#31131\fP: (\fI\%Ch3LL\fP) integration test for issue \fI\%#31014\fP
  244841. @ \fI2016\-02\-11 17:33:23 UTC\fP
  244842. .INDENT 2.0
  244843. .IP \(bu 2
  244844. b831e0a865 Merge pull request \fI\%#31131\fP from Ch3LL/megan\-20158
  244845. .IP \(bu 2
  244846. af82b1233a integration test for issue \fI\%#31014\fP
  244847. .UNINDENT
  244848. .IP \(bu 2
  244849. \fBPR\fP \fI\%#31133\fP: (\fI\%cachedout\fP) Fixup 31121
  244850. @ \fI2016\-02\-11 17:32:24 UTC\fP
  244851. .INDENT 2.0
  244852. .IP \(bu 2
  244853. e378afd891 Merge pull request \fI\%#31133\fP from cachedout/fixup_31121
  244854. .IP \(bu 2
  244855. a4040da46d Fix bad unit test
  244856. .IP \(bu 2
  244857. 0e68fafb74 Fix alternative module and state.
  244858. .UNINDENT
  244859. .IP \(bu 2
  244860. \fBPR\fP \fI\%#31125\fP: (\fI\%isbm\fP) Force\-kill websocket\(aqs child processes faster than default two minutes.
  244861. @ \fI2016\-02\-11 16:50:57 UTC\fP
  244862. .INDENT 2.0
  244863. .IP \(bu 2
  244864. a4a40262f8 Merge pull request \fI\%#31125\fP from isbm/isbm\-salt\-api\-service
  244865. .IP \(bu 2
  244866. f73f70375c Force\-kill websocket\(aqs child processes faster than default two minutes.
  244867. .UNINDENT
  244868. .IP \(bu 2
  244869. \fBPR\fP \fI\%#31119\fP: (\fI\%sakateka\fP) fixes for ipv6\-only multi\-master faliover
  244870. @ \fI2016\-02\-11 16:21:45 UTC\fP
  244871. .INDENT 2.0
  244872. .IP \(bu 2
  244873. 79c85859bc Merge pull request \fI\%#31119\fP from sakateka/fix\-for\-ipv6only\-failover
  244874. .IP \(bu 2
  244875. 2c45d151d1 fix unintentional breaking changes
  244876. .IP \(bu 2
  244877. 043a5e6fd7 fixes for ipv6\-only multi\-master faliover
  244878. .UNINDENT
  244879. .IP \(bu 2
  244880. \fBPR\fP \fI\%#31107\fP: (\fI\%techhat\fP) Don\(aqt try to add a non\-existent IP address
  244881. @ \fI2016\-02\-10 21:52:42 UTC\fP
  244882. .INDENT 2.0
  244883. .IP \(bu 2
  244884. 825b510030 Merge pull request \fI\%#31107\fP from techhat/nebulaprivip
  244885. .IP \(bu 2
  244886. 1fa69982c4 Don\(aqt try to add a non\-existent IP address
  244887. .UNINDENT
  244888. .IP \(bu 2
  244889. \fBPR\fP \fI\%#31108\fP: (\fI\%justinta\fP) Changed npm integration test to install request.
  244890. @ \fI2016\-02\-10 21:52:02 UTC\fP
  244891. .INDENT 2.0
  244892. .IP \(bu 2
  244893. c56a819fd8 Merge pull request \fI\%#31108\fP from jtand/npm_test_fix
  244894. .IP \(bu 2
  244895. a5eac47b25 Changed npm integration test to install request.
  244896. .UNINDENT
  244897. .IP \(bu 2
  244898. \fBPR\fP \fI\%#31105\fP: (\fI\%cachedout\fP) Lint 30975
  244899. @ \fI2016\-02\-10 21:11:21 UTC\fP
  244900. .INDENT 2.0
  244901. .IP \(bu 2
  244902. de1abae9d1 Merge pull request \fI\%#31105\fP from cachedout/lint_30975
  244903. .IP \(bu 2
  244904. 446b4c2aff Lint \fI\%#30975\fP
  244905. .IP \(bu 2
  244906. b4fe9aaa11 fixes issue in which s3.role_arn was defaulting to \(aq\(aq
  244907. .UNINDENT
  244908. .IP \(bu 2
  244909. \fBISSUE\fP \fI\%#31069\fP: (\fI\%symphorien\fP) Wrong filename in documentation for x509 state (refs: \fI\%#31100\fP)
  244910. .IP \(bu 2
  244911. \fBPR\fP \fI\%#31100\fP: (\fI\%jfindlay\fP) states.x509: docs: peer.sls \-> peer.conf
  244912. @ \fI2016\-02\-10 20:47:45 UTC\fP
  244913. .INDENT 2.0
  244914. .IP \(bu 2
  244915. 2e5499748a Merge pull request \fI\%#31100\fP from jfindlay/x509_sls
  244916. .IP \(bu 2
  244917. 6c303b99c2 states.x509: docs: peer.sls \-> peer.conf
  244918. .UNINDENT
  244919. .IP \(bu 2
  244920. \fBPR\fP \fI\%#31103\fP: (\fI\%twangboy\fP) Point to reg.delete_key_recursive
  244921. @ \fI2016\-02\-10 20:46:53 UTC\fP
  244922. .INDENT 2.0
  244923. .IP \(bu 2
  244924. f2bede1c00 Merge pull request \fI\%#31103\fP from twangboy/fix_reg_state
  244925. .IP \(bu 2
  244926. fe1ca906d2 Point to reg.delete_key_recursive
  244927. .UNINDENT
  244928. .IP \(bu 2
  244929. \fBPR\fP \fI\%#31093\fP: (\fI\%techhat\fP) Ensure double directories don\(aqt get created
  244930. @ \fI2016\-02\-10 18:53:47 UTC\fP
  244931. .INDENT 2.0
  244932. .IP \(bu 2
  244933. 94fa76831f Merge pull request \fI\%#31093\fP from techhat/spmfix
  244934. .IP \(bu 2
  244935. 4f4c8877ad Ensure double directories don\(aqt get created
  244936. .UNINDENT
  244937. .IP \(bu 2
  244938. \fBISSUE\fP \fI\%#31056\fP: (\fI\%JensRantil\fP) file.symlink documentation improvement (refs: \fI\%#31095\fP)
  244939. .IP \(bu 2
  244940. \fBPR\fP \fI\%#31095\fP: (\fI\%jfindlay\fP) modules.file, states.file: explain symbolic links
  244941. @ \fI2016\-02\-10 18:53:24 UTC\fP
  244942. .INDENT 2.0
  244943. .IP \(bu 2
  244944. c015ca865c Merge pull request \fI\%#31095\fP from jfindlay/link_doc
  244945. .IP \(bu 2
  244946. 7d9df6b26c modules.file, states.file: explain symbolic links
  244947. .UNINDENT
  244948. .IP \(bu 2
  244949. \fBISSUE\fP \fI\%#31059\fP: (\fI\%mf\-collinhayden\fP) salt\-cloud rename fails in 2015.8.5 (refs: \fI\%#31061\fP)
  244950. .IP \(bu 2
  244951. \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)
  244952. .IP \(bu 2
  244953. \fBPR\fP \fI\%#31061\fP: (\fI\%rallytime\fP) Revert \fI\%#30217\fP \- was causing salt\-cloud \-a breakage
  244954. @ \fI2016\-02\-10 18:13:59 UTC\fP
  244955. .INDENT 2.0
  244956. .IP \(bu 2
  244957. \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)
  244958. .IP \(bu 2
  244959. 4d6706b3e7 Merge pull request \fI\%#31061\fP from rallytime/revert\-breakage
  244960. .IP \(bu 2
  244961. ced2d9f922 Revert \fI\%#30217\fP
  244962. .UNINDENT
  244963. .IP \(bu 2
  244964. \fBISSUE\fP \fI\%#31088\fP: (\fI\%gladiatr72\fP) request for color logging fix backport (refs: \fI\%#31090\fP)
  244965. .IP \(bu 2
  244966. \fBPR\fP \fI\%#31090\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30542\fP to 2015.8
  244967. @ \fI2016\-02\-10 18:06:38 UTC\fP
  244968. .INDENT 2.0
  244969. .IP \(bu 2
  244970. \fBPR\fP \fI\%#30542\fP: (\fI\%gladiatr72\fP) address color log dict lookup exceptions w/ non\-posix log level names (refs: \fI\%#31090\fP)
  244971. .IP \(bu 2
  244972. 482eea9883 Merge pull request \fI\%#31090\fP from rallytime/bp\-30542
  244973. .IP \(bu 2
  244974. 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.
  244975. .UNINDENT
  244976. .IP \(bu 2
  244977. \fBPR\fP \fI\%#31085\fP: (\fI\%jacksontj\fP) Correctly remove path we added after loader is completed
  244978. @ \fI2016\-02\-10 17:47:22 UTC\fP
  244979. .INDENT 2.0
  244980. .IP \(bu 2
  244981. 5dcaa8d387 Merge pull request \fI\%#31085\fP from jacksontj/2015.8
  244982. .IP \(bu 2
  244983. dd5051c9e6 Correctly pop the path we added after loader is completed.
  244984. .UNINDENT
  244985. .IP \(bu 2
  244986. \fBISSUE\fP \fI\%#28142\fP: (\fI\%zmalone\fP) Deprecate or update the copr repo (refs: \fI\%#31037\fP)
  244987. .IP \(bu 2
  244988. \fBPR\fP \fI\%#31037\fP: (\fI\%vutny\fP) Update RHEL installation guide to reflect latest repo changes
  244989. @ \fI2016\-02\-10 17:36:04 UTC\fP
  244990. .INDENT 2.0
  244991. .IP \(bu 2
  244992. 27bf83fa59 Merge pull request \fI\%#31037\fP from vutny/correct\-doc\-install\-on\-rhel
  244993. .IP \(bu 2
  244994. 6370ddda9f Update RHEL installation guide
  244995. .IP \(bu 2
  244996. afdaefbf3d Add \fIsystemctl\fP examples for RHEL 7 to the installation guide
  244997. .IP \(bu 2
  244998. 069a661eb1 Correct ZeroMQ4 repo install guide for RHEL
  244999. .IP \(bu 2
  245000. d2a9d67b5b Update installation instruction for community repos on RHEL
  245001. .IP \(bu 2
  245002. bbdf2523c8 Add workaround for RHEL 7 systems mentioned in the issue \fI\%#29094\fP
  245003. .UNINDENT
  245004. .IP \(bu 2
  245005. \fBPR\fP \fI\%#31050\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  245006. @ \fI2016\-02\-09 20:13:34 UTC\fP
  245007. .INDENT 2.0
  245008. .IP \(bu 2
  245009. 8704750cf9 Merge pull request \fI\%#31050\fP from basepi/merge\-forward\-2015.8
  245010. .IP \(bu 2
  245011. d86e014a39 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  245012. .INDENT 2.0
  245013. .IP \(bu 2
  245014. 1c699a1664 Merge pull request \fI\%#30974\fP from rallytime/bp\-30949
  245015. .INDENT 2.0
  245016. .IP \(bu 2
  245017. ff6542f593 Replace cfdisk with sfdisk
  245018. .UNINDENT
  245019. .IP \(bu 2
  245020. c7f87cc371 Merge pull request \fI\%#30942\fP from rallytime/bp\-30897
  245021. .INDENT 2.0
  245022. .IP \(bu 2
  245023. 885e00ba54 Only remove the word linux from distroname when its not part of the name
  245024. .UNINDENT
  245025. .IP \(bu 2
  245026. 35b7f62669 Merge pull request \fI\%#30922\fP from jacobhammons/prev\-rel\-notes
  245027. .INDENT 2.0
  245028. .IP \(bu 2
  245029. 57c1ec637a Rev latest version to 2015.8.5
  245030. .UNINDENT
  245031. .IP \(bu 2
  245032. 2488bb902e Merge pull request \fI\%#30865\fP from abednarik/better_boto_elb_error
  245033. .INDENT 2.0
  245034. .IP \(bu 2
  245035. 3561e8c19b Better boto elb error message.
  245036. .UNINDENT
  245037. .IP \(bu 2
  245038. 4da04f82c8 Merge pull request \fI\%#30831\fP from jacobhammons/readme\-update
  245039. .INDENT 2.0
  245040. .IP \(bu 2
  245041. 01a92f5d98 Updated readme
  245042. .UNINDENT
  245043. .IP \(bu 2
  245044. 90c1ea9f6c Merge pull request \fI\%#30829\fP from jacobhammons/release\-2015.5
  245045. .INDENT 2.0
  245046. .IP \(bu 2
  245047. c95bb60148 Version to 2015.8.4
  245048. .UNINDENT
  245049. .IP \(bu 2
  245050. 80a36793cb Merge pull request \fI\%#30784\fP from rallytime/bp\-24952
  245051. .INDENT 2.0
  245052. .IP \(bu 2
  245053. a07908bdea Don\(aqt split the string on a single line
  245054. .UNINDENT
  245055. .IP \(bu 2
  245056. e978f5392f Merge pull request \fI\%#30764\fP from terminalmage/issue30560
  245057. .INDENT 2.0
  245058. .IP \(bu 2
  245059. 39736afcd7 Work around yum versionlock\(aqs inability to remove holds by package name alone
  245060. .UNINDENT
  245061. .IP \(bu 2
  245062. 6f565c0d76 Merge pull request \fI\%#30760\fP from toanju/2015.5
  245063. .INDENT 2.0
  245064. .IP \(bu 2
  245065. dc4256f7df Changed output format of arp_ip_target from list to comma delimited string
  245066. .UNINDENT
  245067. .IP \(bu 2
  245068. 1c205b4898 Merge pull request \fI\%#30757\fP from yannis666/fix\-for\-mine\-update\-merge
  245069. .INDENT 2.0
  245070. .IP \(bu 2
  245071. 61bb23e256 Fix to mine update to merge configuration
  245072. .UNINDENT
  245073. .IP \(bu 2
  245074. f9fde8f6a7 Merge pull request \fI\%#30749\fP from abednarik/fix_network_system_test
  245075. .INDENT 2.0
  245076. .IP \(bu 2
  245077. 1e9e97df59 Fix Netwotk hostname Module in Debian systems.
  245078. .UNINDENT
  245079. .UNINDENT
  245080. .UNINDENT
  245081. .IP \(bu 2
  245082. \fBPR\fP \fI\%#31053\fP: (\fI\%cachedout\fP) Fix boto test failures
  245083. @ \fI2016\-02\-09 20:02:16 UTC\fP
  245084. .INDENT 2.0
  245085. .IP \(bu 2
  245086. f13ffd4608 Merge pull request \fI\%#31053\fP from cachedout/boto_test_fix
  245087. .IP \(bu 2
  245088. c73b5a4a66 Fix boto_secgroup
  245089. .IP \(bu 2
  245090. 25bcc68357 Fix boto test failures
  245091. .UNINDENT
  245092. .IP \(bu 2
  245093. \fBISSUE\fP \fI\%#30938\fP: (\fI\%lorengordon\fP) Windows: Upgrade overwrites minion config file (refs: \fI\%#31029\fP, \fI\%#31028\fP)
  245094. .IP \(bu 2
  245095. \fBPR\fP \fI\%#31029\fP: (\fI\%twangboy\fP) Windows defaults to multiprocessing true
  245096. @ \fI2016\-02\-09 18:20:36 UTC\fP
  245097. .INDENT 2.0
  245098. .IP \(bu 2
  245099. 87f2816ef5 Merge pull request \fI\%#31029\fP from twangboy/win_defaults
  245100. .IP \(bu 2
  245101. baffbbdb74 Comment multiprocessing line in minion config
  245102. .IP \(bu 2
  245103. 933544b8c8 Set multiprocessing to true in config.py
  245104. .UNINDENT
  245105. .IP \(bu 2
  245106. \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)
  245107. .IP \(bu 2
  245108. \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)
  245109. @ \fI2016\-02\-09 17:57:36 UTC\fP
  245110. .INDENT 2.0
  245111. .IP \(bu 2
  245112. 0dcdd0a2a7 Merge pull request \fI\%#30998\fP from dmacvicar/dmacvicar\-2015.8\-27796
  245113. .IP \(bu 2
  245114. 9602fe2aeb Do not crash on add_key/reject_key if the previous one set the drop file. (\fI\%#27796\fP)
  245115. .UNINDENT
  245116. .IP \(bu 2
  245117. \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)
  245118. .IP \(bu 2
  245119. \fBPR\fP \fI\%#31049\fP: (\fI\%twangboy\fP) Fix versionadded in win_service.config (refs: \fI\%#31550\fP)
  245120. @ \fI2016\-02\-09 17:55:07 UTC\fP
  245121. .INDENT 2.0
  245122. .IP \(bu 2
  245123. e773fc822a Merge pull request \fI\%#31049\fP from twangboy/win_svc_docs
  245124. .IP \(bu 2
  245125. 98005255d1 Fix versionadded in win_service.config
  245126. .UNINDENT
  245127. .IP \(bu 2
  245128. \fBPR\fP \fI\%#30987\fP: (\fI\%youngnick\fP) Changed glusterfs.peer() module so state can handle localhost peering attempts.
  245129. @ \fI2016\-02\-09 17:51:58 UTC\fP
  245130. .INDENT 2.0
  245131. .IP \(bu 2
  245132. c3f115724a Merge pull request \fI\%#30987\fP from youngnick/add\-back\-localhost\-peer\-handling
  245133. .IP \(bu 2
  245134. 730b5ef3e2 Update tests to cover new peering return val.
  245135. .IP \(bu 2
  245136. b2407305e8 Changed glusterfs.peer() module call return val so state can handle localhost peering attempts.
  245137. .UNINDENT
  245138. .IP \(bu 2
  245139. \fBPR\fP \fI\%#31042\fP: (\fI\%moltob\fP) Allow using Windows path in archive.extracted name attribute
  245140. @ \fI2016\-02\-09 17:47:20 UTC\fP
  245141. .INDENT 2.0
  245142. .IP \(bu 2
  245143. 8518655bfb Merge pull request \fI\%#31042\fP from moltob/fix\-archive\-winpath
  245144. .IP \(bu 2
  245145. 9dcc617a53 Allow using Windows path in archive.extracted name attribute, including drive letter colon and backslashes.
  245146. .UNINDENT
  245147. .IP \(bu 2
  245148. \fBPR\fP \fI\%#31012\fP: (\fI\%terminalmage\fP) Fix gitfs/git_pillar/winrepo provider to allow lowercase values
  245149. @ \fI2016\-02\-09 17:24:25 UTC\fP
  245150. .INDENT 2.0
  245151. .IP \(bu 2
  245152. 1950359580 Merge pull request \fI\%#31012\fP from terminalmage/fix\-gitfs\-provider\-lc
  245153. .IP \(bu 2
  245154. 763581798b Add unit tests to ensure a valid provider
  245155. .IP \(bu 2
  245156. 49ec61d58b Fix gitfs/git_pillar/winrepo provider to allow lowercase values
  245157. .UNINDENT
  245158. .IP \(bu 2
  245159. \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)
  245160. .IP \(bu 2
  245161. \fBPR\fP \fI\%#31024\fP: (\fI\%jfindlay\fP) modules.aptpkg.upgrade: clarify dist\-upgrade usage
  245162. @ \fI2016\-02\-09 17:20:57 UTC\fP
  245163. .INDENT 2.0
  245164. .IP \(bu 2
  245165. 3d8681b63e Merge pull request \fI\%#31024\fP from jfindlay/dist_upgrade
  245166. .IP \(bu 2
  245167. 3d1be080ad modules.aptpkg.upgrade: clarify dist\-upgrade usage
  245168. .UNINDENT
  245169. .IP \(bu 2
  245170. \fBISSUE\fP \fI\%#30938\fP: (\fI\%lorengordon\fP) Windows: Upgrade overwrites minion config file (refs: \fI\%#31029\fP, \fI\%#31028\fP)
  245171. .IP \(bu 2
  245172. \fBPR\fP \fI\%#31028\fP: (\fI\%twangboy\fP) Fix config overwrite by windows installer
  245173. @ \fI2016\-02\-09 17:20:24 UTC\fP
  245174. .INDENT 2.0
  245175. .IP \(bu 2
  245176. a0454ffb00 Merge pull request \fI\%#31028\fP from twangboy/fix_installer
  245177. .IP \(bu 2
  245178. 8876893b5c Fix remove placeholder files
  245179. .IP \(bu 2
  245180. 788855cc94 Remove placeholder files
  245181. .IP \(bu 2
  245182. c834a9d5e5 Set overwrite to off
  245183. .UNINDENT
  245184. .IP \(bu 2
  245185. \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)
  245186. .IP \(bu 2
  245187. \fBPR\fP \fI\%#31031\fP: (\fI\%terminalmage\fP) More complete fix for \fI\%#31014\fP
  245188. @ \fI2016\-02\-09 17:04:42 UTC\fP
  245189. .INDENT 2.0
  245190. .IP \(bu 2
  245191. \fBPR\fP \fI\%#31015\fP: (\fI\%gtmanfred\fP) include possible epoch in version for rpm (refs: \fI\%#31031\fP)
  245192. .IP \(bu 2
  245193. 071b9d4904 Merge pull request \fI\%#31031\fP from terminalmage/issue31014
  245194. .IP \(bu 2
  245195. 6d15a17d6b Fix yumpkg _get_branch_option()
  245196. .IP \(bu 2
  245197. 4b855a85ee Don\(aqt handle epoch specially for dnf
  245198. .IP \(bu 2
  245199. 5244de2fae More efficient way to add the epoch before version number
  245200. .IP \(bu 2
  245201. e1211ed89f include possible epoch in version for rpm
  245202. .UNINDENT
  245203. .IP \(bu 2
  245204. \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)
  245205. .IP \(bu 2
  245206. \fBPR\fP \fI\%#31026\fP: (\fI\%terminalmage\fP) Fix regression when contents_pillar/contents_grains is a list.
  245207. @ \fI2016\-02\-09 00:03:15 UTC\fP
  245208. .INDENT 2.0
  245209. .IP \(bu 2
  245210. 2b8f7a12e7 Merge pull request \fI\%#31026\fP from terminalmage/issue30934
  245211. .IP \(bu 2
  245212. f43aaf4dff Fix regression when contents_pillar/contents_grains is a list.
  245213. .UNINDENT
  245214. .IP \(bu 2
  245215. \fBISSUE\fP \fI\%#30472\fP: (\fI\%sjorge\fP) KeyError with schedule (refs: \fI\%#30978\fP)
  245216. .IP \(bu 2
  245217. \fBPR\fP \fI\%#30978\fP: (\fI\%garethgreenaway\fP) fixes to state.py in 2015.8
  245218. @ \fI2016\-02\-08 18:49:05 UTC\fP
  245219. .INDENT 2.0
  245220. .IP \(bu 2
  245221. de215bd0cd Merge pull request \fI\%#30978\fP from garethgreenaway/30472_state_functions_no_default_retcode
  245222. .IP \(bu 2
  245223. e33b5140f6 removing extra spaces.
  245224. .IP \(bu 2
  245225. f668ccf1f7 removing duplicate code, just set the default in the _set_retcode function
  245226. .IP \(bu 2
  245227. 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
  245228. .UNINDENT
  245229. .IP \(bu 2
  245230. \fBPR\fP \fI\%#30893\fP: (\fI\%bdrung\fP) Make build reproducible
  245231. @ \fI2016\-02\-08 18:44:35 UTC\fP
  245232. .INDENT 2.0
  245233. .IP \(bu 2
  245234. 65fbf980cf Merge pull request \fI\%#30893\fP from bdrung/reproducible
  245235. .IP \(bu 2
  245236. 089c869ec3 Make build reproducible
  245237. .UNINDENT
  245238. .IP \(bu 2
  245239. \fBPR\fP \fI\%#30945\fP: (\fI\%cachedout\fP) Note that pillar cli args are sent via pub
  245240. @ \fI2016\-02\-08 18:43:59 UTC\fP
  245241. .INDENT 2.0
  245242. .IP \(bu 2
  245243. 5b0c7649c7 Merge pull request \fI\%#30945\fP from cachedout/note_pillar_cli
  245244. .IP \(bu 2
  245245. 3ff7d49555 Note that pillar cli args are sent via pub
  245246. .UNINDENT
  245247. .IP \(bu 2
  245248. \fBISSUE\fP \fI\%#31000\fP: (\fI\%rmtmckenzie\fP) Salt\-cloud profile state fails to create LXC minion (refs: \fI\%#31002\fP)
  245249. .IP \(bu 2
  245250. \fBPR\fP \fI\%#31002\fP: (\fI\%rmtmckenzie\fP) Fix lxc cloud provided minion reporting present
  245251. @ \fI2016\-02\-08 18:14:50 UTC\fP
  245252. .INDENT 2.0
  245253. .IP \(bu 2
  245254. 3b7b6f2398 Merge pull request \fI\%#31002\fP from rmtmckenzie/cloud\-lxc\-provide\-fix
  245255. .IP \(bu 2
  245256. 9b17fdce5e Fix lxc cloud provided minion reporting present
  245257. .UNINDENT
  245258. .IP \(bu 2
  245259. \fBPR\fP \fI\%#31007\fP: (\fI\%justinta\fP) Fixed rabbitmq_vhost test failure.
  245260. @ \fI2016\-02\-08 17:48:00 UTC\fP
  245261. .INDENT 2.0
  245262. .IP \(bu 2
  245263. c48122ae9a Merge pull request \fI\%#31007\fP from jtand/rabbitmq_vhost_test_fix
  245264. .IP \(bu 2
  245265. 962e0deda5 Fixed rabbitmq_vhost test failure.
  245266. .UNINDENT
  245267. .IP \(bu 2
  245268. \fBISSUE\fP \fI\%#30993\fP: (\fI\%fredrikaverpil\fP) Overstate: "This documentation has been moved here" (dead end) (refs: \fI\%#31004\fP)
  245269. .IP \(bu 2
  245270. \fBPR\fP \fI\%#31004\fP: (\fI\%rallytime\fP) Remove overstate docs and a few references.
  245271. @ \fI2016\-02\-08 17:08:24 UTC\fP
  245272. .INDENT 2.0
  245273. .IP \(bu 2
  245274. 811461e4b4 Merge pull request \fI\%#31004\fP from rallytime/fix\-30993
  245275. .IP \(bu 2
  245276. 33eb6ba125 Remove overstate docs and a few references.
  245277. .UNINDENT
  245278. .IP \(bu 2
  245279. \fBPR\fP \fI\%#30965\fP: (\fI\%anlutro\fP) Fix rabbitmq_vhost.present result when test=True
  245280. @ \fI2016\-02\-08 04:34:45 UTC\fP
  245281. .INDENT 2.0
  245282. .IP \(bu 2
  245283. 64125de6c7 Merge pull request \fI\%#30965\fP from alprs/fix\-rabbitmq_vhost_present_test
  245284. .IP \(bu 2
  245285. 2313747958 return changes when test=True
  245286. .IP \(bu 2
  245287. 95c8e74b72 make the code a bit simpler
  245288. .IP \(bu 2
  245289. aba29a73c4 fix rabbitmq_vhost.present result when test=True
  245290. .UNINDENT
  245291. .IP \(bu 2
  245292. \fBPR\fP \fI\%#30955\fP: (\fI\%Ch3LL\fP) docs: add clarification when source is not defined
  245293. @ \fI2016\-02\-06 18:29:33 UTC\fP
  245294. .INDENT 2.0
  245295. .IP \(bu 2
  245296. ef02779391 Merge pull request \fI\%#30955\fP from Ch3LL/clarify_file_doc
  245297. .IP \(bu 2
  245298. 97b57ed2b1 docs: add clarification when source is not defined
  245299. .UNINDENT
  245300. .IP \(bu 2
  245301. \fBPR\fP \fI\%#30941\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30879\fP to 2015.8
  245302. @ \fI2016\-02\-05 21:15:20 UTC\fP
  245303. .INDENT 2.0
  245304. .IP \(bu 2
  245305. \fBPR\fP \fI\%#30879\fP: (\fI\%rhansen\fP) Don\(aqt delete a Docker volume if the volume\(aqs driver differs (refs: \fI\%#30941\fP)
  245306. .IP \(bu 2
  245307. d9785451c0 Merge pull request \fI\%#30941\fP from rallytime/bp\-30879
  245308. .IP \(bu 2
  245309. eb6f289fc1 change default for volume_present()\(aqs force parameter to False
  245310. .IP \(bu 2
  245311. 34f3057e04 add \(aqforce\(aq to replace (or not) volumes with driver mismatch
  245312. .IP \(bu 2
  245313. d6d3b15738 typo fixes
  245314. .UNINDENT
  245315. .IP \(bu 2
  245316. \fBPR\fP \fI\%#30940\fP: (\fI\%twangboy\fP) Fix Build Process for OSX
  245317. @ \fI2016\-02\-05 18:44:34 UTC\fP
  245318. .INDENT 2.0
  245319. .IP \(bu 2
  245320. 21a83065aa Merge pull request \fI\%#30940\fP from twangboy/mac_build_3
  245321. .IP \(bu 2
  245322. 3654a0e0c2 Change 2015 to 2016 in license file
  245323. .IP \(bu 2
  245324. aa7d0602a8 Update instructions in readme.md for shasum
  245325. .IP \(bu 2
  245326. 6f1a8f4146 Added code to add /opt/salt/bin to the path
  245327. .IP \(bu 2
  245328. 1e7468a08c Disable master, syndic, and api in postinstall
  245329. .IP \(bu 2
  245330. d49b3dcf1b Re\-added start on load and keep alive
  245331. .IP \(bu 2
  245332. 3ff50a2254 Removed keepalive option
  245333. .IP \(bu 2
  245334. eb5d04bdf1 Remove autostart for api, master, and syndic
  245335. .IP \(bu 2
  245336. 3c0cce34c9 Added minimum requirements for installation
  245337. .IP \(bu 2
  245338. 1dcc23c85b Fix error on kickstart command
  245339. .IP \(bu 2
  245340. 7a163c46d8 Change to new way of starting and stopping services
  245341. .IP \(bu 2
  245342. 23d47722b7 Fix preinstall and postinstall scripts
  245343. .IP \(bu 2
  245344. 7ef723d815 Upgrade to latest pip
  245345. .IP \(bu 2
  245346. 0f09ad517f Updated pip dependencies
  245347. .IP \(bu 2
  245348. d3d4c1d13f Removed GPL Licensed software from build
  245349. .UNINDENT
  245350. .IP \(bu 2
  245351. \fBPR\fP \fI\%#30944\fP: (\fI\%jacobhammons\fP) 2015.8.5 release notes linking and clean up
  245352. @ \fI2016\-02\-05 17:40:10 UTC\fP
  245353. .INDENT 2.0
  245354. .IP \(bu 2
  245355. 183b500055 Merge pull request \fI\%#30944\fP from jacobhammons/rel\-notes
  245356. .IP \(bu 2
  245357. fbb7605366 2015.8.5 release notes linking and clean up
  245358. .UNINDENT
  245359. .IP \(bu 2
  245360. \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)
  245361. .IP \(bu 2
  245362. \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)
  245363. .IP \(bu 2
  245364. \fBPR\fP \fI\%#30905\fP: (\fI\%joejulian\fP) Add realpath to lvm.pvdisplay and use it in vg_present
  245365. @ \fI2016\-02\-05 17:05:32 UTC\fP
  245366. .INDENT 2.0
  245367. .IP \(bu 2
  245368. 91806b03b9 Merge pull request \fI\%#30905\fP from joejulian/2015.8_fix_lvm_pv_mapper
  245369. .IP \(bu 2
  245370. f96650f3c3 Add realpath to lvm.pvdisplay and use it in vg_present
  245371. .UNINDENT
  245372. .IP \(bu 2
  245373. \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)
  245374. .IP \(bu 2
  245375. \fBPR\fP \fI\%#30924\fP: (\fI\%youngnick\fP) Fix small bug with starting volumes after creation.
  245376. @ \fI2016\-02\-05 16:58:22 UTC\fP
  245377. .INDENT 2.0
  245378. .IP \(bu 2
  245379. af2832b69d Merge pull request \fI\%#30924\fP from youngnick/glusterfs\-start\-volume\-bug
  245380. .IP \(bu 2
  245381. be5295cf7b Fix small bug with starting volumes after creation.
  245382. .UNINDENT
  245383. .IP \(bu 2
  245384. \fBPR\fP \fI\%#30910\fP: (\fI\%cro\fP) fix iDRAC state
  245385. @ \fI2016\-02\-05 16:49:06 UTC\fP
  245386. .INDENT 2.0
  245387. .IP \(bu 2
  245388. 3a6666ad25 Merge pull request \fI\%#30910\fP from cro/fx2_idrac
  245389. .IP \(bu 2
  245390. 68af2ab185 Lint.
  245391. .IP \(bu 2
  245392. c274c7ef6c Lint.
  245393. .IP \(bu 2
  245394. 3e38b762bf Add generic command for executing racadm commands on individual blades in a chassis.
  245395. .IP \(bu 2
  245396. 05979010f5 Finish the idrac state, fix problem with grains not loading sometimes.
  245397. .UNINDENT
  245398. .IP \(bu 2
  245399. \fBPR\fP \fI\%#30919\fP: (\fI\%garethgreenaway\fP) Fixes to ssh_auth state module
  245400. @ \fI2016\-02\-05 16:15:28 UTC\fP
  245401. .INDENT 2.0
  245402. .IP \(bu 2
  245403. 101fa12479 Merge pull request \fI\%#30919\fP from garethgreenaway/ssh_auth_cp_get_url_needs_saltenv
  245404. .IP \(bu 2
  245405. c9ba038553 The call to cp.get_url needs the saltenv, if you\(aqre using environments other than base, it will fail.
  245406. .UNINDENT
  245407. .IP \(bu 2
  245408. \fBISSUE\fP \fI\%#30300\fP: (\fI\%AkhterAli\fP) boto_route53 __salt__ not defined. (refs: \fI\%#30867\fP, \fI\%#30920\fP)
  245409. .IP \(bu 2
  245410. \fBPR\fP \fI\%#30920\fP: (\fI\%jacobhammons\fP) Versioned to 2015.8.5, added known issue \fI\%#30300\fP to release notes
  245411. @ \fI2016\-02\-05 01:12:17 UTC\fP
  245412. .INDENT 2.0
  245413. .IP \(bu 2
  245414. 6d4fd11dd0 Merge pull request \fI\%#30920\fP from jacobhammons/release\-notes
  245415. .IP \(bu 2
  245416. 93d47f8615 Versioned to 2015.8.5, added known issue \fI\%#30300\fP to release notes
  245417. .UNINDENT
  245418. .IP \(bu 2
  245419. \fBPR\fP \fI\%#30894\fP: (\fI\%terminalmage\fP) git module/state: Handle identity files more gracefully
  245420. @ \fI2016\-02\-04 23:55:01 UTC\fP
  245421. .INDENT 2.0
  245422. .IP \(bu 2
  245423. 3d3321ab92 Merge pull request \fI\%#30894\fP from terminalmage/issue30858
  245424. .IP \(bu 2
  245425. 08741eb969 Update versionadded/versionchanged
  245426. .IP \(bu 2
  245427. 8909d430e1 salt.states.git.latest(): Prevent tracebacks when git ssh auth fails
  245428. .IP \(bu 2
  245429. c961cf1c7d git: only use passphrase\-protected key if invoked using salt\-call
  245430. .IP \(bu 2
  245431. 0b286f1bc3 Add global ssh_config path to git ssh wrapper
  245432. .IP \(bu 2
  245433. f813cce4ad Add salt.modules.ssh.key_is_encrypted()
  245434. .IP \(bu 2
  245435. 1ae7c53e17 Add salt.utils.files.process_read_exception()
  245436. .UNINDENT
  245437. .IP \(bu 2
  245438. \fBISSUE\fP \fI\%#30694\fP: (\fI\%pankajghadge\fP) Tomcat war deployment version issue in new SALT version (refs: \fI\%#30750\fP)
  245439. .IP \(bu 2
  245440. \fBPR\fP \fI\%#30750\fP: (\fI\%jfindlay\fP) extract whole war version
  245441. @ \fI2016\-02\-04 21:41:01 UTC\fP
  245442. .INDENT 2.0
  245443. .IP \(bu 2
  245444. 2415b3e62e Merge pull request \fI\%#30750\fP from jfindlay/war_version
  245445. .IP \(bu 2
  245446. 4b01c28ff9 modules,states.tomcat: allow specifying war version
  245447. .IP \(bu 2
  245448. 6deecdca0f states.tomcat: _extract_war_version parses path
  245449. .IP \(bu 2
  245450. 8dd3b6dfe9 modules.war._extract_war_version: allow non\-semver
  245451. .UNINDENT
  245452. .IP \(bu 2
  245453. \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)
  245454. .IP \(bu 2
  245455. \fBPR\fP \fI\%#30884\fP: (\fI\%rallytime\fP) Move checks for private_key file existence and permissions to create function
  245456. @ \fI2016\-02\-04 21:03:23 UTC\fP
  245457. .INDENT 2.0
  245458. .IP \(bu 2
  245459. 6a6456eaa6 Merge pull request \fI\%#30884\fP from rallytime/fix\-30817
  245460. .IP \(bu 2
  245461. 086ddae476 We need to check for a key_filename before looking for the path
  245462. .IP \(bu 2
  245463. e79321b418 Move checks for private_key file existence and permissions to create function
  245464. .UNINDENT
  245465. .IP \(bu 2
  245466. \fBPR\fP \fI\%#30888\fP: (\fI\%ticosax\fP) Backport \fI\%#30797\fP to 2015.8
  245467. @ \fI2016\-02\-04 21:02:25 UTC\fP
  245468. .INDENT 2.0
  245469. .IP \(bu 2
  245470. \fBPR\fP \fI\%#30797\fP: (\fI\%rhansen\fP) don\(aqt delete existing Docker volume if driver unspecified (refs: \fI\%#30888\fP)
  245471. .IP \(bu 2
  245472. 4ae2d829f0 Merge pull request \fI\%#30888\fP from ticosax/backport\-30797
  245473. .IP \(bu 2
  245474. 413c47a45f don\(aqt delete existing Docker volume if driver unspecified
  245475. .IP \(bu 2
  245476. 68b51be869 add additional states.dockerng.volume_present() unit tests
  245477. .IP \(bu 2
  245478. 849b94ed73 document the behavior if the driver is unspecified
  245479. .UNINDENT
  245480. .IP \(bu 2
  245481. \fBPR\fP \fI\%#30895\fP: (\fI\%bdrung\fP) Fix various typos
  245482. @ \fI2016\-02\-04 20:55:10 UTC\fP
  245483. .INDENT 2.0
  245484. .IP \(bu 2
  245485. 4372851ad9 Merge pull request \fI\%#30895\fP from bdrung/2015.8
  245486. .IP \(bu 2
  245487. 708f2ff8ea Fix typo reponse \-> response
  245488. .IP \(bu 2
  245489. 72c4eab6d7 Fix typo propogate \-> propagate
  245490. .IP \(bu 2
  245491. 4912e365cb Fix typo directores \-> directories
  245492. .IP \(bu 2
  245493. 74c8aba03e Fix typo exeption \-> exception
  245494. .IP \(bu 2
  245495. 4692d84b07 Fix typos of improvement
  245496. .IP \(bu 2
  245497. 213fc2d858 Fix typo occuring \-> occurring
  245498. .IP \(bu 2
  245499. fe6124003b Fix typo nonexistant \-> nonexistent
  245500. .IP \(bu 2
  245501. 56ce7479b1 Fix typo catched \-> caught
  245502. .IP \(bu 2
  245503. 821e690e65 Fix typo develoment \-> development
  245504. .IP \(bu 2
  245505. b51279e086 Fix typo overide \-> override
  245506. .IP \(bu 2
  245507. 4f2f04ea7d Fix typo relevent \-> relevant
  245508. .IP \(bu 2
  245509. fe8be562c5 Fix typo existance \-> existence
  245510. .IP \(bu 2
  245511. 4a2f4de1a8 Fix typo accross \-> across
  245512. .IP \(bu 2
  245513. 9ae50c993e Fix typo Lenth \-> Length
  245514. .IP \(bu 2
  245515. 20e79981e1 Fix typo preferrably \-> preferably
  245516. .IP \(bu 2
  245517. f8d9f608dd Fix typo addres \-> address
  245518. .IP \(bu 2
  245519. a7f12a13f0 Fix typo keywork \-> keyword
  245520. .IP \(bu 2
  245521. bf92c3663b Fix typo formating \-> formatting
  245522. .IP \(bu 2
  245523. ca4450d881 Fix typo wont \-> won\(aqt
  245524. .IP \(bu 2
  245525. cd72b12161 Fix typo thats \-> that\(aqs
  245526. .IP \(bu 2
  245527. 6db9724ec7 Fix typo doesnt \-> doesn\(aqt
  245528. .IP \(bu 2
  245529. 58d46a7e98 Fix typo certficate \-> certificate
  245530. .UNINDENT
  245531. .IP \(bu 2
  245532. \fBISSUE\fP \fI\%#30887\fP: (\fI\%anlutro\fP) salt\-ssh fails on import msgpack \- 2015.8 (refs: \fI\%#30889\fP)
  245533. .IP \(bu 2
  245534. \fBPR\fP \fI\%#30889\fP: (\fI\%anlutro\fP) Make msgpack an optional dependency in salt.utils.cache
  245535. @ \fI2016\-02\-04 20:53:39 UTC\fP
  245536. .INDENT 2.0
  245537. .IP \(bu 2
  245538. cdca33021a Merge pull request \fI\%#30889\fP from alprs/fix\-cache_msgpack_optional
  245539. .IP \(bu 2
  245540. ab7aae3221 make msgpack an optional dependency in salt.utils.cache
  245541. .UNINDENT
  245542. .IP \(bu 2
  245543. \fBISSUE\fP \fI\%#6602\fP: (\fI\%corywright\fP) Add ability to match on nodegroups to the compound matcher (refs: \fI\%#30896\fP)
  245544. .IP \(bu 2
  245545. \fBISSUE\fP \fI\%#25292\fP: (\fI\%lichtamberg\fP) Nodegroup matching in pillars via salt\-SSH? (refs: \fI\%#30896\fP)
  245546. .IP \(bu 2
  245547. \fBPR\fP \fI\%#30896\fP: (\fI\%vutny\fP) Update nodegroups parameter examples in master config example and docs
  245548. @ \fI2016\-02\-04 20:52:35 UTC\fP
  245549. .INDENT 2.0
  245550. .IP \(bu 2
  245551. 0dff45b4ac Merge pull request \fI\%#30896\fP from vutny/nodegroups\-in\-master\-config\-example
  245552. .IP \(bu 2
  245553. 936c1ff6c8 Add explanation about \fIN@\fP classifier. Inspired by \fI\%#25292\fP
  245554. .IP \(bu 2
  245555. 8bc2426816 Update example in master config documentation reference
  245556. .IP \(bu 2
  245557. ca8c0bdc3f Update nodegroups section example in master config according to docs
  245558. .UNINDENT
  245559. .IP \(bu 2
  245560. \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)
  245561. .IP \(bu 2
  245562. \fBPR\fP \fI\%#30898\fP: (\fI\%abednarik\fP) Fix pkg install with version.
  245563. @ \fI2016\-02\-04 20:52:14 UTC\fP
  245564. .INDENT 2.0
  245565. .IP \(bu 2
  245566. 33a400e943 Merge pull request \fI\%#30898\fP from abednarik/fix_pkg_version_debian_family
  245567. .IP \(bu 2
  245568. b15cdfd799 Fix pkg install with version.
  245569. .UNINDENT
  245570. .IP \(bu 2
  245571. \fBISSUE\fP \fI\%#30843\fP: (\fI\%HeathNaylor\fP) SALT.STATES.BOTO_ELB register_instances error (refs: \fI\%#30867\fP)
  245572. .IP \(bu 2
  245573. \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)
  245574. .IP \(bu 2
  245575. \fBISSUE\fP \fI\%#30300\fP: (\fI\%AkhterAli\fP) boto_route53 __salt__ not defined. (refs: \fI\%#30867\fP, \fI\%#30920\fP)
  245576. .IP \(bu 2
  245577. \fBPR\fP \fI\%#30867\fP: (\fI\%rallytime\fP) Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules
  245578. @ \fI2016\-02\-04 18:37:05 UTC\fP
  245579. .INDENT 2.0
  245580. .IP \(bu 2
  245581. \fBPR\fP \fI\%#30279\fP: (\fI\%cachedout\fP) Allow modules to be packed into boto utils (refs: \fI\%#30867\fP)
  245582. .IP \(bu 2
  245583. 89bac9076a Merge pull request \fI\%#30867\fP from rallytime/boto\-utils\-fix
  245584. .IP \(bu 2
  245585. 6ad7642f6d Lint
  245586. .IP \(bu 2
  245587. 58778dfc88 Fix failing boto_vpc module unit tests
  245588. .IP \(bu 2
  245589. adb85892de Fix failing state module tests
  245590. .IP \(bu 2
  245591. b5ec0991b0 Pylint fix
  245592. .IP \(bu 2
  245593. c26c01568f Don\(aqt use pack=pack. Just pass in pack=__salt__ always.
  245594. .IP \(bu 2
  245595. 6146209c53 Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules.
  245596. .UNINDENT
  245597. .IP \(bu 2
  245598. \fBISSUE\fP \fI\%#30798\fP: (\fI\%tbaker57\fP) salt/utils/aws.py has Python 2.7 dependency (refs: \fI\%#30849\fP)
  245599. .IP \(bu 2
  245600. \fBPR\fP \fI\%#30849\fP: (\fI\%jfindlay\fP) utils.aws: use time lib to conver to epoch seconds
  245601. @ \fI2016\-02\-03 22:47:31 UTC\fP
  245602. .INDENT 2.0
  245603. .IP \(bu 2
  245604. 276cf626b0 Merge pull request \fI\%#30849\fP from jfindlay/aws_seconds
  245605. .IP \(bu 2
  245606. 17ae74dab1 utils.aws: use time lib to conver to epoch seconds
  245607. .UNINDENT
  245608. .IP \(bu 2
  245609. \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)
  245610. .IP \(bu 2
  245611. \fBPR\fP \fI\%#30874\fP: (\fI\%terminalmage\fP) Fix regression in git_pillar when multiple remotes are configured
  245612. @ \fI2016\-02\-03 22:24:02 UTC\fP
  245613. .INDENT 2.0
  245614. .IP \(bu 2
  245615. 4cbc8a8250 Merge pull request \fI\%#30874\fP from terminalmage/issue30869
  245616. .IP \(bu 2
  245617. 9cf0c8126d Fix regression in git_pillar when multiple remotes are configured
  245618. .UNINDENT
  245619. .IP \(bu 2
  245620. \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)
  245621. .IP \(bu 2
  245622. \fBPR\fP \fI\%#30850\fP: (\fI\%jfindlay\fP) modules.dpkg._get_pkg_info: allow for ubuntu 12.04
  245623. @ \fI2016\-02\-03 16:33:26 UTC\fP
  245624. .INDENT 2.0
  245625. .IP \(bu 2
  245626. 8410842aea Merge pull request \fI\%#30850\fP from jfindlay/dpkg_var
  245627. .IP \(bu 2
  245628. d53a88762e modules.dpkg._get_pkg_info: handle older ubuntu
  245629. .IP \(bu 2
  245630. d3c6732539 modules.dpkg._get_pkg_info: use pythonic initializers
  245631. .UNINDENT
  245632. .IP \(bu 2
  245633. \fBPR\fP \fI\%#30852\fP: (\fI\%replicant0wnz\fP) Added more descriptive error message
  245634. @ \fI2016\-02\-03 16:30:15 UTC\fP
  245635. .INDENT 2.0
  245636. .IP \(bu 2
  245637. 9a3ec9d028 Merge pull request \fI\%#30852\fP from replicant0wnz/error\-message\-libgit
  245638. .IP \(bu 2
  245639. c3649023b5 Added more descriptive error message
  245640. .UNINDENT
  245641. .IP \(bu 2
  245642. \fBPR\fP \fI\%#30847\fP: (\fI\%terminalmage\fP) Backport \fI\%#30844\fP to 2015.8 branch
  245643. @ \fI2016\-02\-03 16:26:46 UTC\fP
  245644. .INDENT 2.0
  245645. .IP \(bu 2
  245646. \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)
  245647. .IP \(bu 2
  245648. \fBPR\fP \fI\%#30703\fP: (\fI\%kraney\fP) Fix for gitfs ext_pillar on standalone minion (refs: \fI\%#30844\fP)
  245649. .IP \(bu 2
  245650. 0338f445d9 Merge pull request \fI\%#30847\fP from terminalmage/bp\-30844
  245651. .IP \(bu 2
  245652. 58c4c01743 Add __role to master opts for gitfs integration tests
  245653. .IP \(bu 2
  245654. 17dfec2dd4 Only perform initial fetch when running on a minion
  245655. .IP \(bu 2
  245656. 53c4b4aaa4 gitfs: add initial fetch to pygit2 and dulwich
  245657. .IP \(bu 2
  245658. 78f92e9ab2 Fix for gitfs ext_pillar on standalone minion
  245659. .UNINDENT
  245660. .IP \(bu 2
  245661. \fBPR\fP \fI\%#30860\fP: (\fI\%vutny\fP) Correct installation documentation for RHEL\-based distributions
  245662. @ \fI2016\-02\-03 16:13:09 UTC\fP
  245663. .INDENT 2.0
  245664. .IP \(bu 2
  245665. e51182495c Merge pull request \fI\%#30860\fP from vutny/correct\-doc\-install\-on\-rhel
  245666. .IP \(bu 2
  245667. 6648fd4c62 Correct links to Fedora COPR repositories
  245668. .IP \(bu 2
  245669. 083037fccc Remove duplicate post\-installation tasks section
  245670. .UNINDENT
  245671. .IP \(bu 2
  245672. \fBPR\fP \fI\%#30841\fP: (\fI\%jacobhammons\fP) Release notes for 2015.8.5
  245673. @ \fI2016\-02\-03 00:04:05 UTC\fP
  245674. .INDENT 2.0
  245675. .IP \(bu 2
  245676. f1cf027308 Merge pull request \fI\%#30841\fP from jacobhammons/release\-notes
  245677. .IP \(bu 2
  245678. 6d0562ef86 Release notes for 2015.8.5
  245679. .UNINDENT
  245680. .IP \(bu 2
  245681. \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)
  245682. .IP \(bu 2
  245683. \fBPR\fP \fI\%#30835\fP: (\fI\%terminalmage\fP) Integration test for \fI\%#30820\fP
  245684. @ \fI2016\-02\-02 23:51:53 UTC\fP
  245685. .INDENT 2.0
  245686. .IP \(bu 2
  245687. f8ac6002d3 Merge pull request \fI\%#30835\fP from terminalmage/issue30820
  245688. .IP \(bu 2
  245689. ef14956db0 Integration test for \fI\%#30820\fP
  245690. .UNINDENT
  245691. .IP \(bu 2
  245692. \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)
  245693. .IP \(bu 2
  245694. \fBPR\fP \fI\%#30837\fP: (\fI\%jacobhammons\fP) Added known issue \fI\%#30820\fP to release notes
  245695. @ \fI2016\-02\-02 22:33:43 UTC\fP
  245696. .INDENT 2.0
  245697. .IP \(bu 2
  245698. e0901854ce Merge pull request \fI\%#30837\fP from jacobhammons/release\-notes
  245699. .IP \(bu 2
  245700. 29e12a7fef Added known issue \fI\%#30820\fP to release notes
  245701. .UNINDENT
  245702. .IP \(bu 2
  245703. \fBISSUE\fP \fI\%#28790\fP: (\fI\%jfindlay\fP) add grains (and others?) to salt modindex (refs: \fI\%#30832\fP)
  245704. .IP \(bu 2
  245705. \fBPR\fP \fI\%#30832\fP: (\fI\%rallytime\fP) Add grains modules to salt modindex
  245706. @ \fI2016\-02\-02 21:47:46 UTC\fP
  245707. .INDENT 2.0
  245708. .IP \(bu 2
  245709. b512c7757a Merge pull request \fI\%#30832\fP from rallytime/fix\-28790
  245710. .IP \(bu 2
  245711. ca044dd201 Add grains modules to salt modindex
  245712. .UNINDENT
  245713. .IP \(bu 2
  245714. \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)
  245715. .IP \(bu 2
  245716. \fBPR\fP \fI\%#30822\fP: (\fI\%rallytime\fP) Make sure setting list_user_permissions to [\(aq\(aq, \(aq\(aq, \(aq\(aq] doesn\(aqt stacktrace
  245717. @ \fI2016\-02\-02 21:42:26 UTC\fP
  245718. .INDENT 2.0
  245719. .IP \(bu 2
  245720. 75db37a97d Merge pull request \fI\%#30822\fP from rallytime/rabbitmq\-user\-state\-fixes
  245721. .IP \(bu 2
  245722. 272cc653ca Make sure setting list_user_permissions to [\(aq\(aq, \(aq\(aq, \(aq\(aq] doesn\(aqt stacktrace
  245723. .IP \(bu 2
  245724. a7afa7a368 Don\(aqt return a set() when checking for new tags in rabbitmq_user state
  245725. .UNINDENT
  245726. .IP \(bu 2
  245727. \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)
  245728. .IP \(bu 2
  245729. \fBPR\fP \fI\%#30833\fP: (\fI\%terminalmage\fP) Fix regression in scanning for state with \(aqname\(aq param
  245730. @ \fI2016\-02\-02 21:25:09 UTC\fP
  245731. .INDENT 2.0
  245732. .IP \(bu 2
  245733. 557766f20b Merge pull request \fI\%#30833\fP from terminalmage/issue30820
  245734. .IP \(bu 2
  245735. be3b8e2be6 Fix regression in scanning for state with \(aqname\(aq param
  245736. .UNINDENT
  245737. .IP \(bu 2
  245738. \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)
  245739. .IP \(bu 2
  245740. \fBPR\fP \fI\%#30823\fP: (\fI\%yannis666\fP) Fix for mine to merge configuration on update.
  245741. @ \fI2016\-02\-02 20:21:24 UTC\fP
  245742. .INDENT 2.0
  245743. .IP \(bu 2
  245744. ec4e2bb9bb Merge pull request \fI\%#30823\fP from yannis666/fix\-for\-mine\-update\-merge2
  245745. .IP \(bu 2
  245746. 99c7c12aba Fix for mine to merge configuration on update. This fix was previously applied to 2015.5. It fixes \fI\%#30722\fP
  245747. .UNINDENT
  245748. .IP \(bu 2
  245749. \fBPR\fP \fI\%#30827\fP: (\fI\%jacobhammons\fP) Version to 2015.8.4, added CVE 2016\-1866 to release notes
  245750. @ \fI2016\-02\-02 20:03:31 UTC\fP
  245751. .INDENT 2.0
  245752. .IP \(bu 2
  245753. d24b9f1ea1 Merge pull request \fI\%#30827\fP from jacobhammons/release\-2015.8
  245754. .IP \(bu 2
  245755. dfc1f7a57d Version to 2015.8.4, added CVE 2016\-1866 to release notes
  245756. .UNINDENT
  245757. .IP \(bu 2
  245758. \fBISSUE\fP \fI\%#30809\fP: (\fI\%anlutro\fP) Master configuration "pillar_merge_lists" has no effect (refs: \fI\%#30813\fP)
  245759. .IP \(bu 2
  245760. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  245761. .IP \(bu 2
  245762. \fBPR\fP \fI\%#30813\fP: (\fI\%anlutro\fP) Properly set the default value for pillar_merge_lists
  245763. @ \fI2016\-02\-02 19:53:52 UTC\fP
  245764. .INDENT 2.0
  245765. .IP \(bu 2
  245766. \fBPR\fP \fI\%#30458\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30062\fP to 2015.8 (refs: \fI\%#30813\fP)
  245767. .IP \(bu 2
  245768. \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)
  245769. .IP \(bu 2
  245770. f83845d7c3 Merge pull request \fI\%#30813\fP from alprs/fix\-pillar_merge_list_default
  245771. .IP \(bu 2
  245772. ec34cabee8 Properly set the default value for pillar_merge_lists
  245773. .UNINDENT
  245774. .IP \(bu 2
  245775. \fBPR\fP \fI\%#30826\fP: (\fI\%cachedout\fP) Fix 30682
  245776. @ \fI2016\-02\-02 19:40:05 UTC\fP
  245777. .INDENT 2.0
  245778. .IP \(bu 2
  245779. a3feba4a26 Merge pull request \fI\%#30826\fP from cachedout/fix_30682
  245780. .IP \(bu 2
  245781. 3b246db0b0 Fix stupid test
  245782. .IP \(bu 2
  245783. 12dc677628 Changed list conversion to use correct method and return whole set
  245784. .IP \(bu 2
  245785. 97eb4b8bf7 Pop values from new_tags set before loading into dict value
  245786. .UNINDENT
  245787. .IP \(bu 2
  245788. \fBPR\fP \fI\%#30818\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30790\fP to 2015.8
  245789. @ \fI2016\-02\-02 18:57:55 UTC\fP
  245790. .INDENT 2.0
  245791. .IP \(bu 2
  245792. \fBPR\fP \fI\%#30790\fP: (\fI\%xmj\fP) salt/modules/sysrc.py: Fix documentation for set_ (refs: \fI\%#30818\fP)
  245793. .IP \(bu 2
  245794. b25b845d05 Merge pull request \fI\%#30818\fP from rallytime/bp\-30790
  245795. .IP \(bu 2
  245796. c7c66afd0c salt/modules/sysrc.py: Fix documentation for set_
  245797. .UNINDENT
  245798. .IP \(bu 2
  245799. \fBISSUE\fP \fI\%#30604\fP: (\fI\%vutny\fP) Reactor overwrites \fIuser\fP argument when calling runner or wheel module (refs: \fI\%#30815\fP)
  245800. .IP \(bu 2
  245801. \fBPR\fP \fI\%#30815\fP: (\fI\%vutny\fP) Pick right user argument for updating reactor function\(aqs low data
  245802. @ \fI2016\-02\-02 16:50:23 UTC\fP
  245803. .INDENT 2.0
  245804. .IP \(bu 2
  245805. 3cb7a9ee54 Merge pull request \fI\%#30815\fP from vutny/reactor\-low\-data\-fix
  245806. .IP \(bu 2
  245807. 4d4d67f9ac Pick right user argument for updating reactor function\(aqs low data
  245808. .UNINDENT
  245809. .IP \(bu 2
  245810. \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)
  245811. .IP \(bu 2
  245812. \fBPR\fP \fI\%#30747\fP: (\fI\%jfindlay\fP) modules.lxc.running_systemd: use \fIcommand \-v\fP not \fIwhich\fP
  245813. @ \fI2016\-02\-02 14:54:17 UTC\fP
  245814. .INDENT 2.0
  245815. .IP \(bu 2
  245816. 36752906c4 Merge pull request \fI\%#30747\fP from jfindlay/lxc_which
  245817. .IP \(bu 2
  245818. f8f867570f modules.lxc.running_systemd: use \fIcommand \-v\fP not \fIwhich\fP
  245819. .UNINDENT
  245820. .IP \(bu 2
  245821. \fBPR\fP \fI\%#30800\fP: (\fI\%twangboy\fP) Ability to handle special case installations
  245822. @ \fI2016\-02\-02 14:25:44 UTC\fP
  245823. .INDENT 2.0
  245824. .IP \(bu 2
  245825. 8abb5b30ad Merge pull request \fI\%#30800\fP from twangboy/chrome
  245826. .IP \(bu 2
  245827. fe0747c14e Fix another typo
  245828. .IP \(bu 2
  245829. 2815efc522 Fixes spelling
  245830. .IP \(bu 2
  245831. 6027e1ec53 Updates documentation to reflect new features
  245832. .IP \(bu 2
  245833. 1444ab1a48 Adds return success/failure for reg.broadcast_change
  245834. .IP \(bu 2
  245835. f2a36904d2 Fixes problem with missing key in old
  245836. .IP \(bu 2
  245837. 581a4df523 Added logic for dealing with latest in remove
  245838. .IP \(bu 2
  245839. c4357a6d80 Adds more logic for detecting latest
  245840. .IP \(bu 2
  245841. 40a66a2501 Logic for handling version: latest
  245842. .IP \(bu 2
  245843. b7dadd3b9b Fixes message formatting
  245844. .IP \(bu 2
  245845. a305c8ceae Added more descriptive failure message
  245846. .IP \(bu 2
  245847. fe49dcb57c Added broadcast change to force registry update
  245848. .UNINDENT
  245849. .IP \(bu 2
  245850. \fBPR\fP \fI\%#30794\fP: (\fI\%rallytime\fP) A spelling fix and some spacing fixes for the boto_ec2 module docs
  245851. @ \fI2016\-02\-01 21:45:33 UTC\fP
  245852. .INDENT 2.0
  245853. .IP \(bu 2
  245854. 7b44c0844d Merge pull request \fI\%#30794\fP from rallytime/boto_ec2\-mod\-doc\-fix
  245855. .IP \(bu 2
  245856. 5188bc4b96 A spelling fix and some spacing fixes for the boto_ec2 module docs
  245857. .UNINDENT
  245858. .IP \(bu 2
  245859. \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)
  245860. .IP \(bu 2
  245861. \fBPR\fP \fI\%#30756\fP: (\fI\%basepi\fP) [2015.8] Fix two error conditions in the highstate outputter
  245862. @ \fI2016\-02\-01 21:39:23 UTC\fP
  245863. .INDENT 2.0
  245864. .IP \(bu 2
  245865. 1f87ad0387 Merge pull request \fI\%#30756\fP from basepi/highstate.outputter.23789
  245866. .IP \(bu 2
  245867. 16ad24d42c Import the logger
  245868. .IP \(bu 2
  245869. 1b5c6a240c Handle non\-string types in comment
  245870. .IP \(bu 2
  245871. 11e34d047b Ensure rdurations are all floats for the highstate outputter
  245872. .UNINDENT
  245873. .IP \(bu 2
  245874. \fBPR\fP \fI\%#30788\fP: (\fI\%rallytime\fP) Fix incorrect doc example for dellchassis blade_idrac state
  245875. @ \fI2016\-02\-01 21:20:29 UTC\fP
  245876. .INDENT 2.0
  245877. .IP \(bu 2
  245878. 46adb2d1af Merge pull request \fI\%#30788\fP from rallytime/fix\-dellchassis\-doc\-example
  245879. .IP \(bu 2
  245880. bfc16d9f7a Fix incorrect doc example for dellchassis blade_idrac state
  245881. .UNINDENT
  245882. .IP \(bu 2
  245883. \fBISSUE\fP \fI\%#29161\fP: (\fI\%jefferyharrell\fP) saltmod.state\(aqs ret argument seems to do nothing (refs: \fI\%#30791\fP, \fI\%#29207\fP)
  245884. .IP \(bu 2
  245885. \fBPR\fP \fI\%#30791\fP: (\fI\%Ch3LL\fP) do not shadow ret function argument for salt.function
  245886. @ \fI2016\-02\-01 20:07:31 UTC\fP
  245887. .INDENT 2.0
  245888. .IP \(bu 2
  245889. \fBPR\fP \fI\%#29207\fP: (\fI\%jfindlay\fP) do not shadow ret function argument (refs: \fI\%#30791\fP)
  245890. .IP \(bu 2
  245891. 333041aeb1 Merge pull request \fI\%#30791\fP from Ch3LL/2015.8
  245892. .IP \(bu 2
  245893. d54f220c0a do not shadow ret function argument for salt.function
  245894. .UNINDENT
  245895. .IP \(bu 2
  245896. \fBISSUE\fP \fI\%#30706\fP: (\fI\%carsonoid\fP) minion traceback when Log4mongo installed but not configured (refs: \fI\%#30726\fP)
  245897. .IP \(bu 2
  245898. \fBPR\fP \fI\%#30726\fP: (\fI\%sjmh\fP) Fix improper use of yield in generator
  245899. @ \fI2016\-02\-01 18:13:24 UTC\fP
  245900. .INDENT 2.0
  245901. .IP \(bu 2
  245902. ce3be26e8f Merge pull request \fI\%#30726\fP from sjmh/fix/log4mongo
  245903. .IP \(bu 2
  245904. d501f1cc03 Fix improper use of yield in generator
  245905. .UNINDENT
  245906. .IP \(bu 2
  245907. \fBPR\fP \fI\%#30752\fP: (\fI\%terminalmage\fP) Backport systemd and yum/dnf optimizations from develop into 2015.8
  245908. @ \fI2016\-02\-01 18:11:42 UTC\fP
  245909. .INDENT 2.0
  245910. .IP \(bu 2
  245911. a49b75e065 Merge pull request \fI\%#30752\fP from terminalmage/zh459
  245912. .IP \(bu 2
  245913. 8a836c88f4 Update systemd tests
  245914. .IP \(bu 2
  245915. 54ddb92474 Backport yum/dnf optimizations from develop into 2015.8
  245916. .IP \(bu 2
  245917. 1ec13699b6 Backport systemd optimizations from develop into 2015.8
  245918. .UNINDENT
  245919. .IP \(bu 2
  245920. \fBPR\fP \fI\%#30759\fP: (\fI\%thusoy\fP) Allow managing empty files
  245921. @ \fI2016\-01\-31 19:06:37 UTC\fP
  245922. .INDENT 2.0
  245923. .IP \(bu 2
  245924. ea15628446 Merge pull request \fI\%#30759\fP from thusoy/empty\-files
  245925. .IP \(bu 2
  245926. c6244b46ac Allow managing empty files
  245927. .UNINDENT
  245928. .IP \(bu 2
  245929. \fBPR\fP \fI\%#30758\fP: (\fI\%thusoy\fP) Support mounting labelled volumes with multiple drives
  245930. @ \fI2016\-01\-31 19:04:03 UTC\fP
  245931. .INDENT 2.0
  245932. .IP \(bu 2
  245933. 120d8344e4 Merge pull request \fI\%#30758\fP from thusoy/multi\-device\-mount
  245934. .IP \(bu 2
  245935. 9a6dc4898f Support mounting labelled volumes with multiple drives
  245936. .UNINDENT
  245937. .IP \(bu 2
  245938. \fBPR\fP \fI\%#30686\fP: (\fI\%cachedout\fP) Master\-side pillar caching
  245939. @ \fI2016\-01\-31 18:52:47 UTC\fP
  245940. .INDENT 2.0
  245941. .IP \(bu 2
  245942. 9e8af2f994 Merge pull request \fI\%#30686\fP from cachedout/pillar_cache_2015_8
  245943. .IP \(bu 2
  245944. 02d8ff626a Pillar cache for master
  245945. .UNINDENT
  245946. .IP \(bu 2
  245947. \fBISSUE\fP \fI\%#30662\fP: (\fI\%JoaquinVeira\fP) UnicodeDecodeError on 2015.8 (refs: \fI\%#30675\fP)
  245948. .IP \(bu 2
  245949. \fBPR\fP \fI\%#30675\fP: (\fI\%jfindlay\fP) handle non\-ascii minion IDs
  245950. @ \fI2016\-01\-29 23:12:10 UTC\fP
  245951. .INDENT 2.0
  245952. .IP \(bu 2
  245953. 4008e1719a Merge pull request \fI\%#30675\fP from jfindlay/decode_id
  245954. .IP \(bu 2
  245955. 8f6737b6c4 output.key: decode minion ids to unicode
  245956. .IP \(bu 2
  245957. 7a16f1c941 config: decode id to unicode
  245958. .UNINDENT
  245959. .IP \(bu 2
  245960. \fBISSUE\fP \fI\%#29602\fP: (\fI\%multani\fP) cloud.action start raises "got an unexpected keyword argument \(aqkwargs\(aq" (refs: \fI\%#30691\fP)
  245961. .IP \(bu 2
  245962. \fBPR\fP \fI\%#30691\fP: (\fI\%rallytime\fP) Make sure we use the "instance" kwarg in cloud.action.
  245963. @ \fI2016\-01\-29 23:11:37 UTC\fP
  245964. .INDENT 2.0
  245965. .IP \(bu 2
  245966. \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)
  245967. .IP \(bu 2
  245968. 5ca75fbdc9 Merge pull request \fI\%#30691\fP from rallytime/cloud\-action\-instance
  245969. .IP \(bu 2
  245970. 0873a41601 Make note of empty dict return in docstring
  245971. .IP \(bu 2
  245972. 64a73502ed Make sure we just the "instance" kwarg in cloud.action.
  245973. .UNINDENT
  245974. .IP \(bu 2
  245975. \fBPR\fP \fI\%#30713\fP: (\fI\%rallytime\fP) Fix\-up autodoc proxy modules for consistency
  245976. @ \fI2016\-01\-29 23:10:54 UTC\fP
  245977. .INDENT 2.0
  245978. .IP \(bu 2
  245979. 7c632d61d3 Merge pull request \fI\%#30713\fP from rallytime/proxy\-module\-docs
  245980. .IP \(bu 2
  245981. 86c3f2016e Fix\-up autodoc proxy modules for consistency
  245982. .UNINDENT
  245983. .IP \(bu 2
  245984. \fBISSUE\fP \fI\%#30654\fP: (\fI\%Horgix\fP) Misleading locale(mod) module behavior (refs: \fI\%#30741\fP)
  245985. .IP \(bu 2
  245986. \fBPR\fP \fI\%#30741\fP: (\fI\%jfindlay\fP) states.locale.__virtual__: return exec mod load err
  245987. @ \fI2016\-01\-29 23:00:41 UTC\fP
  245988. .INDENT 2.0
  245989. .IP \(bu 2
  245990. 1f5f41cc07 Merge pull request \fI\%#30741\fP from jfindlay/locale_state
  245991. .IP \(bu 2
  245992. a3a2a44735 states.locale.__virtual__: return exec mod load err
  245993. .UNINDENT
  245994. .IP \(bu 2
  245995. \fBPR\fP \fI\%#30751\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  245996. @ \fI2016\-01\-29 22:43:41 UTC\fP
  245997. .INDENT 2.0
  245998. .IP \(bu 2
  245999. 716c2bb7c8 Merge pull request \fI\%#30751\fP from basepi/merge\-forward\-2015.8
  246000. .IP \(bu 2
  246001. 84eeab7720 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  246002. .IP \(bu 2
  246003. 076268089a Merge pull request \fI\%#30699\fP from abednarik/save_load_retry_time
  246004. .INDENT 2.0
  246005. .IP \(bu 2
  246006. 186872cf49 Add Retry to save_load.
  246007. .UNINDENT
  246008. .IP \(bu 2
  246009. 8d79d1b9c7 Merge pull request \fI\%#30659\fP from sjmh/fix\-scsi
  246010. .INDENT 2.0
  246011. .IP \(bu 2
  246012. 3544dd995e Fix lsscsi issues for certain platforms
  246013. .UNINDENT
  246014. .UNINDENT
  246015. .IP \(bu 2
  246016. \fBPR\fP \fI\%#30720\fP: (\fI\%clinta\fP) x509.pem_managed does not return changes dict
  246017. @ \fI2016\-01\-29 17:07:26 UTC\fP
  246018. .INDENT 2.0
  246019. .IP \(bu 2
  246020. 1f0d0f591e Merge pull request \fI\%#30720\fP from clinta/fix\-pem\-managed\-changes
  246021. .IP \(bu 2
  246022. 5c28efa9d3 return changes on test as well
  246023. .IP \(bu 2
  246024. e611f0269c fix typos and no changes returned for pem_managed
  246025. .UNINDENT
  246026. .IP \(bu 2
  246027. \fBPR\fP \fI\%#30687\fP: (\fI\%clarkperkins\fP) Setting \(aqdel_root_vol_on_destroy\(aq changes the root volume type to \(aqstandard\(aq
  246028. @ \fI2016\-01\-28 00:02:26 UTC\fP
  246029. .INDENT 2.0
  246030. .IP \(bu 2
  246031. \fBPR\fP \fI\%#30677\fP: (\fI\%clarkperkins\fP) Fix EC2 volume creation logic (refs: \fI\%#30687\fP)
  246032. .IP \(bu 2
  246033. 36db0f99ed Merge pull request \fI\%#30687\fP from clarkperkins/bugfix/del\-root\-vol\-loses\-type
  246034. .IP \(bu 2
  246035. a71e181c18 Don\(aqt set on a volume when creating from a snapshot
  246036. .IP \(bu 2
  246037. 8cef43c68d When setting del_root_vol_on_destroy, preserve the existing volumeType on the AMI
  246038. .UNINDENT
  246039. .IP \(bu 2
  246040. \fBISSUE\fP \fI\%#28257\fP: (\fI\%peterzalewski\fP) git_pillar remote with multiple branches yields conflicting cachedirs or checkout conflict (refs: \fI\%#30673\fP)
  246041. .IP \(bu 2
  246042. \fBPR\fP \fI\%#30673\fP: (\fI\%terminalmage\fP) Properly derive the git_pillar cachedir from the id instead of the URL
  246043. @ \fI2016\-01\-27 23:52:01 UTC\fP
  246044. .INDENT 2.0
  246045. .IP \(bu 2
  246046. 690b8d26b9 Merge pull request \fI\%#30673\fP from terminalmage/issue28257
  246047. .IP \(bu 2
  246048. 8b5933fab4 Properly derive the git_pillar cachedir from the id instead of the URL
  246049. .IP \(bu 2
  246050. 62654ade1d Add additional reason for pillar env being found
  246051. .UNINDENT
  246052. .IP \(bu 2
  246053. \fBPR\fP \fI\%#30666\fP: (\fI\%cachedout\fP) Fix grains cache
  246054. @ \fI2016\-01\-27 22:23:12 UTC\fP
  246055. .INDENT 2.0
  246056. .IP \(bu 2
  246057. 9f0e97693c Merge pull request \fI\%#30666\fP from cachedout/grains_cache_fix
  246058. .IP \(bu 2
  246059. 52716694f5 Fix grains cache
  246060. .UNINDENT
  246061. .IP \(bu 2
  246062. \fBPR\fP \fI\%#30623\fP: (\fI\%twangboy\fP) Added service.config function
  246063. @ \fI2016\-01\-27 21:08:12 UTC\fP
  246064. .INDENT 2.0
  246065. .IP \(bu 2
  246066. 8b17c77d72 Merge pull request \fI\%#30623\fP from twangboy/add_config
  246067. .IP \(bu 2
  246068. c70e182cdf Fixed indenting... got messed up somehow...
  246069. .IP \(bu 2
  246070. 246f75f2dd Renamed variables, updated docs, added tag
  246071. .IP \(bu 2
  246072. a4534ee94c Fixed documentation
  246073. .IP \(bu 2
  246074. 54b50236a6 Fixed another error
  246075. .IP \(bu 2
  246076. 76a0cf33e5 Fixed syntax error
  246077. .IP \(bu 2
  246078. 3937380b79 Added service.config function
  246079. .UNINDENT
  246080. .IP \(bu 2
  246081. \fBPR\fP \fI\%#30678\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30668\fP to 2015.8
  246082. @ \fI2016\-01\-27 20:39:25 UTC\fP
  246083. .INDENT 2.0
  246084. .IP \(bu 2
  246085. \fBPR\fP \fI\%#30668\fP: (\fI\%multani\fP) Fix salt.modules.mount documentation (refs: \fI\%#30678\fP)
  246086. .IP \(bu 2
  246087. 6af1927bd3 Merge pull request \fI\%#30678\fP from rallytime/bp\-30668
  246088. .IP \(bu 2
  246089. 7c7076e6af Fix salt.modules.mount documentation
  246090. .UNINDENT
  246091. .IP \(bu 2
  246092. \fBPR\fP \fI\%#30677\fP: (\fI\%clarkperkins\fP) Fix EC2 volume creation logic (refs: \fI\%#30687\fP)
  246093. @ \fI2016\-01\-27 18:09:29 UTC\fP
  246094. .INDENT 2.0
  246095. .IP \(bu 2
  246096. 6c71b29f25 Merge pull request \fI\%#30677\fP from clarkperkins/bugfix/ec2\-volume\-logic
  246097. .IP \(bu 2
  246098. bfec052e7d Added some extra documentation
  246099. .IP \(bu 2
  246100. ed2eee8e39 Allow volume params to be set even when specifying a snapshot
  246101. .UNINDENT
  246102. .IP \(bu 2
  246103. \fBISSUE\fP \fI\%#18980\fP: (\fI\%lrhazi\fP) salt\-cloud: ExtraData: unpack(b) received extra data. (refs: \fI\%#30671\fP)
  246104. .IP \(bu 2
  246105. \fBPR\fP \fI\%#30680\fP: (\fI\%cro\fP) Merge forward from 2015.5, primarily for \fI\%#30671\fP
  246106. @ \fI2016\-01\-27 17:56:48 UTC\fP
  246107. .INDENT 2.0
  246108. .IP \(bu 2
  246109. \fBPR\fP \fI\%#30671\fP: (\fI\%techhat\fP) Add file locking to cloud index (refs: \fI\%#30680\fP)
  246110. .IP \(bu 2
  246111. 36142390d4 Merge pull request \fI\%#30680\fP from cro/mf20155\-20158\-20160127
  246112. .IP \(bu 2
  246113. f8ae3a20ff Merge remote\-tracking branch \(aqupstream/2015.5\(aq into mf20155\-20158\-20160127 Mergeforward from 2015.5.
  246114. .IP \(bu 2
  246115. 516919525a Merge pull request \fI\%#30671\fP from techhat/lockcloud
  246116. .INDENT 2.0
  246117. .IP \(bu 2
  246118. 4719f8d4ea Whitespace
  246119. .IP \(bu 2
  246120. 8e7eca23e4 Add file locking to cloud index
  246121. .UNINDENT
  246122. .UNINDENT
  246123. .IP \(bu 2
  246124. \fBPR\fP \fI\%#30663\fP: (\fI\%isbm\fP) Zypper: latest version bugfix and epoch support feature
  246125. @ \fI2016\-01\-27 17:10:42 UTC\fP
  246126. .INDENT 2.0
  246127. .IP \(bu 2
  246128. f6feddecb4 Merge pull request \fI\%#30663\fP from isbm/isbm\-zypper\-latest\-versionfail
  246129. .IP \(bu 2
  246130. 4336487765 Add support for epoch in Zypper
  246131. .IP \(bu 2
  246132. 12d515fa0c Fix package status filtering on latest version
  246133. .UNINDENT
  246134. .IP \(bu 2
  246135. \fBPR\fP \fI\%#30652\fP: (\fI\%mew1033\fP) Fix sh beacon
  246136. @ \fI2016\-01\-27 17:00:29 UTC\fP
  246137. .INDENT 2.0
  246138. .IP \(bu 2
  246139. 9d8ddeb525 Merge pull request \fI\%#30652\fP from mew1033/fix\-sh\-beacon
  246140. .IP \(bu 2
  246141. 256d037e0f Fix sh beacon
  246142. .UNINDENT
  246143. .IP \(bu 2
  246144. \fBISSUE\fP \fI\%#29678\fP: (\fI\%dschaller\fP) NPM Install Forces Silent (refs: \fI\%#29650\fP)
  246145. .IP \(bu 2
  246146. \fBPR\fP \fI\%#30657\fP: (\fI\%jfindlay\fP) [2015.8] Backport \fI\%#30378\fP and \fI\%#29650\fP
  246147. @ \fI2016\-01\-27 00:34:00 UTC\fP
  246148. .INDENT 2.0
  246149. .IP \(bu 2
  246150. \fBPR\fP \fI\%#30378\fP: (\fI\%dschaller\fP) Adding silent flag to npm.bootstrap (refs: \fI\%#30657\fP)
  246151. .IP \(bu 2
  246152. \fBPR\fP \fI\%#29650\fP: (\fI\%dschaller\fP) Adding ability to disable npm install silent flag (refs: \fI\%#30657\fP)
  246153. .IP \(bu 2
  246154. 1fa1963895 Merge pull request \fI\%#30657\fP from jfindlay/backport_quiet
  246155. .IP \(bu 2
  246156. ca4adbf382 Adding ability to disable npm install silent flag
  246157. .IP \(bu 2
  246158. afe149eb6d Adding ability to disable npm install silent flag
  246159. .IP \(bu 2
  246160. c1101b5f0b Adding ability to disable npm install silent flag
  246161. .IP \(bu 2
  246162. d29ad8bbf6 Adding ability to disable npm install silent flag
  246163. .IP \(bu 2
  246164. 7a21dbf0d9 Adding silent flag to npm.bootstrap
  246165. .IP \(bu 2
  246166. 354c0bdf26 Adding silent flag to npm.bootstrap
  246167. .UNINDENT
  246168. .IP \(bu 2
  246169. \fBPR\fP \fI\%#30656\fP: (\fI\%rallytime\fP) [2015.8] Merge 2015.5 into 2015.8
  246170. @ \fI2016\-01\-27 00:33:30 UTC\fP
  246171. .INDENT 2.0
  246172. .IP \(bu 2
  246173. 3621651bf8 Merge pull request \fI\%#30656\fP from rallytime/merge\-forward\-2015.8
  246174. .IP \(bu 2
  246175. 76ab6981a5 Merge branch \(aq2015.5\(aq into 2015.8
  246176. .IP \(bu 2
  246177. 643c9c9616 Merge pull request \fI\%#30586\fP from abednarik/fix_comment_line_perms
  246178. .IP \(bu 2
  246179. 8b395a42cb Fix comment_line permissions.
  246180. .UNINDENT
  246181. .IP \(bu 2
  246182. \fBPR\fP \fI\%#30644\fP: (\fI\%tbaker57\fP) Another go at fixing 30573
  246183. @ \fI2016\-01\-26 20:18:41 UTC\fP
  246184. .INDENT 2.0
  246185. .IP \(bu 2
  246186. 30e03a8b0c Merge pull request \fI\%#30644\fP from tbaker57/another_go_at_30573
  246187. .IP \(bu 2
  246188. 267b8827fd Another go at fixing 30573
  246189. .UNINDENT
  246190. .IP \(bu 2
  246191. \fBPR\fP \fI\%#30611\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.latest\fP crash fix
  246192. @ \fI2016\-01\-26 16:35:47 UTC\fP
  246193. .INDENT 2.0
  246194. .IP \(bu 2
  246195. 7d307e2a04 Merge pull request \fI\%#30611\fP from isbm/isbm\-zypper\-latest
  246196. .IP \(bu 2
  246197. a7141be651 Put \(aqkwargs\(aq on its own line according to the common pattern
  246198. .IP \(bu 2
  246199. ee9b3f859b Bugfix: do not treat SLS id as a package name if an empty \(aqpkgs\(aq list specified.
  246200. .IP \(bu 2
  246201. d3cfd8ed41 Cleanup formatting
  246202. .IP \(bu 2
  246203. 1bdbaac658 Add error handling
  246204. .IP \(bu 2
  246205. 2ec5cec8a4 Add a new line before the last return
  246206. .IP \(bu 2
  246207. 424383b8c4 Remove unnecessary complexity and string increment
  246208. .IP \(bu 2
  246209. 48e8d90343 Avoid backslashes where they are not needed
  246210. .IP \(bu 2
  246211. 6df5d500f0 Use regexp type for the string.
  246212. .IP \(bu 2
  246213. c2ca141956 Get version as an explicit parameter
  246214. .IP \(bu 2
  246215. 9e944db706 Check the version of the package, instead of the package name
  246216. .IP \(bu 2
  246217. 59ea758efb Fix formatting
  246218. .IP \(bu 2
  246219. 514f6349d4 Bugfix: crash on "key not found" error
  246220. .IP \(bu 2
  246221. ea75f55a1a Fix PEP8: line continuation
  246222. .IP \(bu 2
  246223. ece35ebc26 Replace old fashion string memcopy with the list
  246224. .IP \(bu 2
  246225. 716445e588 Fix PEP8: line continuation
  246226. .IP \(bu 2
  246227. 0f11079ff9 Fix PEP8 for the operator
  246228. .UNINDENT
  246229. .IP \(bu 2
  246230. \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)
  246231. .IP \(bu 2
  246232. \fBPR\fP \fI\%#30631\fP: (\fI\%rallytime\fP) Refactor rabbitmq_cluster states to use test=true functionality correctly
  246233. @ \fI2016\-01\-26 16:23:49 UTC\fP
  246234. .INDENT 2.0
  246235. .IP \(bu 2
  246236. 5bc11d7539 Merge pull request \fI\%#30631\fP from rallytime/fix\-7811
  246237. .IP \(bu 2
  246238. bf9ffded6d Refactor rabbitmq_cluster states to use test=true functionality correctly
  246239. .UNINDENT
  246240. .IP \(bu 2
  246241. \fBISSUE\fP \fI\%#25658\fP: (\fI\%tsaridas\fP) rabbitmq_policy.present state (refs: \fI\%#30628\fP)
  246242. .IP \(bu 2
  246243. \fBPR\fP \fI\%#30628\fP: (\fI\%rallytime\fP) Refactor rabbitmq_policy states to use test=true functionality correctly
  246244. @ \fI2016\-01\-26 00:21:03 UTC\fP
  246245. .INDENT 2.0
  246246. .IP \(bu 2
  246247. ef6c4e8377 Merge pull request \fI\%#30628\fP from rallytime/fix\-25658
  246248. .IP \(bu 2
  246249. 1e8e86007c Refactor rabbitmq_policy states to use test=true functionality correctly
  246250. .UNINDENT
  246251. .IP \(bu 2
  246252. \fBPR\fP \fI\%#30624\fP: (\fI\%cro\fP) Remove bad symlinks from osx pkg dir
  246253. @ \fI2016\-01\-26 00:02:25 UTC\fP
  246254. .INDENT 2.0
  246255. .IP \(bu 2
  246256. 80d0e428aa Merge pull request \fI\%#30624\fP from cro/remove_bad_symlinks
  246257. .IP \(bu 2
  246258. f5fd38624e Remove bad symlinks in osx pkg dirs
  246259. .UNINDENT
  246260. .IP \(bu 2
  246261. \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)
  246262. .IP \(bu 2
  246263. \fBPR\fP \fI\%#30622\fP: (\fI\%rallytime\fP) Add glance state to list of state modules
  246264. @ \fI2016\-01\-25 23:55:54 UTC\fP
  246265. .INDENT 2.0
  246266. .IP \(bu 2
  246267. 330ea9a292 Merge pull request \fI\%#30622\fP from rallytime/fix\-30621
  246268. .IP \(bu 2
  246269. 57b7e6cc93 Add glance state to list of state modules
  246270. .UNINDENT
  246271. .IP \(bu 2
  246272. \fBISSUE\fP \fI\%#19288\fP: (\fI\%oba11\fP) AssociatePublicIpAddress doesnt work with salt\-cloud 2014.7.0 (refs: \fI\%#20972\fP, \fI\%#30591\fP)
  246273. .IP \(bu 2
  246274. \fBPR\fP \fI\%#30618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30591\fP to 2015.8
  246275. @ \fI2016\-01\-25 23:55:20 UTC\fP
  246276. .INDENT 2.0
  246277. .IP \(bu 2
  246278. \fBPR\fP \fI\%#30591\fP: (\fI\%mlalpho\fP) salt\-cloud\-clouds\-ec2 AssociatePublicIpAddress fix (refs: \fI\%#30618\fP)
  246279. .IP \(bu 2
  246280. \fBPR\fP \fI\%#20972\fP: (\fI\%JohannesEbke\fP) Fix interface cleanup when using AssociatePublicIpAddress in \fI\%#19288\fP (refs: \fI\%#30591\fP)
  246281. .IP \(bu 2
  246282. f00d8f398a Merge pull request \fI\%#30618\fP from rallytime/bp\-30591
  246283. .IP \(bu 2
  246284. 2c9d59fa42 looks like a re\-merge of PR \fI\%#20972\fP which relates to \fI\%#19288\fP
  246285. .UNINDENT
  246286. .IP \(bu 2
  246287. \fBISSUE\fP \fI\%#30587\fP: (\fI\%sjorge\fP) [docs] docs confusing on client_acl and external_auth usage (refs: \fI\%#30625\fP)
  246288. .IP \(bu 2
  246289. \fBPR\fP \fI\%#30625\fP: (\fI\%jfindlay\fP) doc.topics.eauth: clarify client_acl vs eauth
  246290. @ \fI2016\-01\-25 23:03:24 UTC\fP
  246291. .INDENT 2.0
  246292. .IP \(bu 2
  246293. 6b940d9655 Merge pull request \fI\%#30625\fP from jfindlay/eauth_acl
  246294. .IP \(bu 2
  246295. b5e2cff028 doc.topics.eauth: clarify client_acl vs eauth
  246296. .UNINDENT
  246297. .UNINDENT
  246298. .SS Salt 2015.8.8.2 Release Notes
  246299. .sp
  246300. Version 2015.8.8.2 is a bugfix release for 2015.8.0\&.
  246301. .SS Fixes to 2015.8.8
  246302. .sp
  246303. Salt 2015.8.8.2 includes fixes for the following known issues in 2015.8.8:
  246304. .INDENT 0.0
  246305. .IP \(bu 2
  246306. Key master with value [...] has an invalid type of list Error (\fI\%issue #32044\fP)
  246307. .IP \(bu 2
  246308. Failed to import module win_dacl Error (\fI\%issue #32004\fP)
  246309. .IP \(bu 2
  246310. Wrong validation type for file_ignore_glob key (\fI\%issue #32114\fP)
  246311. .IP \(bu 2
  246312. Fix file.managed for windows (\fI\%issue #31969\fP)
  246313. .UNINDENT
  246314. .sp
  246315. \fBIMPORTANT:\fP
  246316. .INDENT 0.0
  246317. .INDENT 3.5
  246318. \fI\%issue #32183\fP prevents Salt Cloud from installing the Salt minion on new
  246319. systems. To workaround this issue, call \fBsalt\-cloud \-u\fP to update the
  246320. bootstrap script to the latest version.
  246321. .UNINDENT
  246322. .UNINDENT
  246323. .SS Changelog for v2015.8.8..v2015.8.8.2
  246324. .sp
  246325. \fIGenerated at: 2018\-05\-28 00:29:12 UTC\fP
  246326. .INDENT 0.0
  246327. .IP \(bu 2
  246328. 403563e441 Change type check errors to debug loglevel
  246329. .IP \(bu 2
  246330. 8323005b3d Support multiple valid option types when performing type checks
  246331. .IP \(bu 2
  246332. 2f95082a96 Fixed validation type for file_ignore_glob Fixes \fI\%#32114\fP
  246333. .IP \(bu 2
  246334. 2685e61d9e Move constant declaration into member variable to avoid issues when modules can\(aqt be loaded.
  246335. .IP \(bu 2
  246336. bc10d7dede Add apply_template_on_contents for windows
  246337. .UNINDENT
  246338. .SS Salt 2015.8.9 Release Notes
  246339. .sp
  246340. Version 2015.8.9 is a bugfix release for 2015.8.0\&.
  246341. .SS Statistics
  246342. .INDENT 0.0
  246343. .IP \(bu 2
  246344. Total Merges: \fB145\fP
  246345. .IP \(bu 2
  246346. Total Issue References: \fB110\fP
  246347. .IP \(bu 2
  246348. Total PR References: \fB264\fP
  246349. .IP \(bu 2
  246350. 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)
  246351. .UNINDENT
  246352. .SS Important Post\-Upgrade Instructions for Linux Mint
  246353. .sp
  246354. As a result of some upstream changes, the \fBos\fP grain on Mint Linux is now
  246355. being detected as \fBLinuxMint\fP (\fI\%issue #33295\fP). Run the following command
  246356. \fBafter you upgrade to 2015.8.9\fP to reset the \fBos\fP grain to \fBMint\fP and the
  246357. \fBos_family\fP grain to \fBDebian\fP:
  246358. .INDENT 0.0
  246359. .INDENT 3.5
  246360. .sp
  246361. .nf
  246362. .ft C
  246363. salt \-G \(aqos:LinuxMint\(aq grains.setvals "{\(aqos\(aq: \(aqMint\(aq, \(aqos_family\(aq: \(aqDebian\(aq}"
  246364. .ft P
  246365. .fi
  246366. .UNINDENT
  246367. .UNINDENT
  246368. .SS Changelog for v2015.8.8.2..v2015.8.9
  246369. .sp
  246370. \fIGenerated at: 2018\-05\-28 00:36:04 UTC\fP
  246371. .INDENT 0.0
  246372. .IP \(bu 2
  246373. \fBPR\fP \fI\%#33310\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246374. .IP \(bu 2
  246375. \fBPR\fP \fI\%#33293\fP: (\fI\%twangboy\fP) Fix minion start retry on Windows (2015.8)
  246376. @ \fI2016\-05\-17 17:03:41 UTC\fP
  246377. .INDENT 2.0
  246378. .IP \(bu 2
  246379. e3eff27c55 Merge pull request \fI\%#33293\fP from twangboy/fix_33277_2015_8
  246380. .IP \(bu 2
  246381. 652f0079db Fix minion start retry on Windows
  246382. .UNINDENT
  246383. .IP \(bu 2
  246384. \fBISSUE\fP \fI\%#31270\fP: (\fI\%4001982248998\fP) acl.present: TypeError on subsequent runs (refs: \fI\%#33172\fP)
  246385. .INDENT 2.0
  246386. .IP \(bu 2
  246387. \fBPR\fP \fI\%#33305\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33172\fP to 2015.8
  246388. .IP \(bu 2
  246389. \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)
  246390. .UNINDENT
  246391. .IP \(bu 2
  246392. \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)
  246393. .IP \(bu 2
  246394. \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)
  246395. .INDENT 2.0
  246396. .IP \(bu 2
  246397. \fBPR\fP \fI\%#33300\fP: (\fI\%jbonachera\fP) Handle more ipv6 error as an exception \fI\%#33299\fP
  246398. .UNINDENT
  246399. .IP \(bu 2
  246400. \fBISSUE\fP \fI\%#26062\fP: (\fI\%silenius\fP) service.status is broken under FreeBSD (refs: \fI\%#33294\fP)
  246401. .IP \(bu 2
  246402. \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)
  246403. .INDENT 2.0
  246404. .IP \(bu 2
  246405. \fBPR\fP \fI\%#33294\fP: (\fI\%terminalmage\fP) Ignore retcode when checking service\(aqs status
  246406. .UNINDENT
  246407. .IP \(bu 2
  246408. \fBPR\fP \fI\%#33274\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246409. @ \fI2016\-05\-16 16:41:32 UTC\fP
  246410. .INDENT 2.0
  246411. .IP \(bu 2
  246412. 06edba448e Merge pull request \fI\%#33274\fP from rallytime/merge\-2015.8
  246413. .IP \(bu 2
  246414. bf641d3a66 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246415. .IP \(bu 2
  246416. 8fa72f6588 Clarify file.replace MULTILINE flag interaction with regex anchors (\fI\%#33137\fP)
  246417. .IP \(bu 2
  246418. 4b1f460256 update 2015.5.11 release notes (\fI\%#33236\fP)
  246419. .UNINDENT
  246420. .IP \(bu 2
  246421. \fBISSUE\fP \fI\%#30258\fP: (\fI\%rallytime\fP) Changes dictionary return should be mentioned in test state docs (refs: \fI\%#33254\fP)
  246422. .INDENT 2.0
  246423. .IP \(bu 2
  246424. \fBPR\fP \fI\%#33254\fP: (\fI\%rallytime\fP) Add comment for test=true w/o changes ret and add changes dict example
  246425. .UNINDENT
  246426. .IP \(bu 2
  246427. \fBISSUE\fP \fI\%#30946\fP: (\fI\%rallytime\fP) Update SaltStack Git Policy Documentation (refs: \fI\%#33252\fP)
  246428. .INDENT 2.0
  246429. .IP \(bu 2
  246430. \fBPR\fP \fI\%#33252\fP: (\fI\%rallytime\fP) Update Git Policy docs to match Contribution guide
  246431. .UNINDENT
  246432. .IP \(bu 2
  246433. \fBISSUE\fP \fI\%#33238\fP: (\fI\%clinta\fP) x509 CSR fails if the csr does not contain any extensions (refs: \fI\%#33239\fP)
  246434. .INDENT 2.0
  246435. .IP \(bu 2
  246436. \fBPR\fP \fI\%#33239\fP: (\fI\%clinta\fP) Fix \fI\%#33238\fP
  246437. .IP \(bu 2
  246438. \fBPR\fP \fI\%#33245\fP: (\fI\%terminalmage\fP) Backport \fI\%#33244\fP to 2015.8
  246439. .IP \(bu 2
  246440. \fBPR\fP \fI\%#33244\fP: (\fI\%terminalmage\fP) Properly report on invalid gitfs/git_pillar/winrepo repos (refs: \fI\%#33245\fP)
  246441. .IP \(bu 2
  246442. \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)
  246443. .UNINDENT
  246444. .IP \(bu 2
  246445. \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)
  246446. .IP \(bu 2
  246447. \fBPR\fP \fI\%#33253\fP: (\fI\%rallytime\fP) Update the release process docs
  246448. @ \fI2016\-05\-13 21:28:11 UTC\fP
  246449. .INDENT 2.0
  246450. .IP \(bu 2
  246451. 94a53da92e Merge pull request \fI\%#33253\fP from rallytime/fix\-30605
  246452. .IP \(bu 2
  246453. a129d05b6d Update the release process docs
  246454. .IP \(bu 2
  246455. \fBPR\fP \fI\%#33251\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246456. .UNINDENT
  246457. .IP \(bu 2
  246458. \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)
  246459. .INDENT 2.0
  246460. .IP \(bu 2
  246461. \fBPR\fP \fI\%#33246\fP: (\fI\%techhat\fP) Handle ipv6 error as an exception
  246462. .UNINDENT
  246463. .IP \(bu 2
  246464. \fBISSUE\fP \fI\%#33073\fP: (\fI\%robnagler\fP) TypeError: unhashable type: \(aqdict\(aq (refs: \fI\%#33213\fP)
  246465. .INDENT 2.0
  246466. .IP \(bu 2
  246467. \fBPR\fP \fI\%#33213\fP: (\fI\%terminalmage\fP) Check rendered YAML for invalid keys
  246468. .UNINDENT
  246469. .IP \(bu 2
  246470. \fBISSUE\fP \fI\%#21903\fP: (\fI\%basepi\fP) Document _file.conf pattern for master.d/ and minion.d/ (refs: \fI\%#33224\fP)
  246471. .INDENT 2.0
  246472. .IP \(bu 2
  246473. \fBPR\fP \fI\%#33224\fP: (\fI\%rallytime\fP) Make note of files that begin with \(aq_\(aq in master.d or minion.d dirs
  246474. .UNINDENT
  246475. .IP \(bu 2
  246476. \fBISSUE\fP \fI\%#31975\fP: (\fI\%rajvidhimar\fP) Docstrings not reflected in the salt documenation. (refs: \fI\%#33150\fP)
  246477. .INDENT 2.0
  246478. .IP \(bu 2
  246479. \fBPR\fP \fI\%#33150\fP: (\fI\%rallytime\fP) Gate jnpr imports in salt.proxy.junos.py
  246480. .UNINDENT
  246481. .IP \(bu 2
  246482. \fBISSUE\fP \fI\%#21315\fP: (\fI\%ryan\-lane\fP) No example documentation for http.query state (refs: \fI\%#33222\fP)
  246483. .INDENT 2.0
  246484. .IP \(bu 2
  246485. \fBPR\fP \fI\%#33222\fP: (\fI\%rallytime\fP) Add docs for the http state
  246486. .UNINDENT
  246487. .IP \(bu 2
  246488. \fBISSUE\fP \fI\%#29796\fP: (\fI\%vutny\fP) Fail to use \(aqhighstate\(aq outputter explicitly (refs: \fI\%#33215\fP)
  246489. .INDENT 2.0
  246490. .IP \(bu 2
  246491. \fBPR\fP \fI\%#33215\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace when using \-\-out=highstate at CLI during state run.
  246492. .IP \(bu 2
  246493. \fBPR\fP \fI\%#33219\fP: (\fI\%lalmeras\fP) propagate opts to salt.util.http call
  246494. .IP \(bu 2
  246495. \fBPR\fP \fI\%#33154\fP: (\fI\%lalmeras\fP) propagate opts to salt.util.http call (refs: \fI\%#33219\fP)
  246496. .IP \(bu 2
  246497. \fBPR\fP \fI\%#33237\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246498. .UNINDENT
  246499. .IP \(bu 2
  246500. \fBPR\fP \fI\%#33217\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246501. @ \fI2016\-05\-12 22:45:39 UTC\fP
  246502. .INDENT 2.0
  246503. .IP \(bu 2
  246504. 6dc5d605b1 Merge pull request \fI\%#33217\fP from rallytime/merge\-forward\-2015.8
  246505. .IP \(bu 2
  246506. 4655607b58 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246507. .IP \(bu 2
  246508. 698f1eb657 Merge pull request \fI\%#33211\fP from cachedout/user_kill
  246509. .INDENT 2.0
  246510. .IP \(bu 2
  246511. d4f2e5baa7 Don\(aqt try to kill a parent proc if we can\(aqt
  246512. .UNINDENT
  246513. .IP \(bu 2
  246514. f86832911e Resolve issue with pkg module on Mint Linux (\fI\%#33205\fP)
  246515. .IP \(bu 2
  246516. a09e1b6335 Add pip installed and removed test (\fI\%#33178\fP)
  246517. .IP \(bu 2
  246518. 96e3586f12 update 2015.5.11 release notes (\fI\%#33197\fP)
  246519. .IP \(bu 2
  246520. 09b072a412 Fix file.managed for Windows (\fI\%#33181\fP)
  246521. .IP \(bu 2
  246522. \fBPR\fP \fI\%#33207\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246523. .UNINDENT
  246524. .IP \(bu 2
  246525. \fBISSUE\fP \fI\%#32917\fP: (\fI\%bradthurber\fP) standalone minion pygit2 pillar data doesn\(aqt refresh without manual git fetch (refs: \fI\%#33204\fP)
  246526. .INDENT 2.0
  246527. .IP \(bu 2
  246528. \fBPR\fP \fI\%#33204\fP: (\fI\%terminalmage\fP) Add a fetch when compiling git_pillar for masterless minions
  246529. .UNINDENT
  246530. .IP \(bu 2
  246531. \fBISSUE\fP \fI\%#33162\fP: (\fI\%jfindlay\fP) Key error with salt.utils.cloud.cache_node and EC2 (refs: \fI\%#33164\fP)
  246532. .INDENT 2.0
  246533. .IP \(bu 2
  246534. \fBPR\fP \fI\%#33164\fP: (\fI\%jfindlay\fP) cloud.clouds.ec2: cache each named node
  246535. .UNINDENT
  246536. .IP \(bu 2
  246537. \fBISSUE\fP \fI\%#32385\fP: (\fI\%aronneagu\fP) git.latest throws expected string or buffer (refs: \fI\%#33203\fP)
  246538. .INDENT 2.0
  246539. .IP \(bu 2
  246540. \fBPR\fP \fI\%#33203\fP: (\fI\%terminalmage\fP) Properly handle failed git commands when redirect_stderr=True
  246541. .UNINDENT
  246542. .IP \(bu 2
  246543. \fBISSUE\fP \fI\%#32685\fP: (\fI\%gidantribal\fP) git state does not take into account ssh config file (refs: \fI\%#33152\fP)
  246544. .INDENT 2.0
  246545. .IP \(bu 2
  246546. \fBPR\fP \fI\%#33152\fP: (\fI\%terminalmage\fP) Don\(aqt force use of global ssh_config when git identity file is specified
  246547. .IP \(bu 2
  246548. \fBPR\fP \fI\%#33198\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246549. .UNINDENT
  246550. .IP \(bu 2
  246551. \fBPR\fP \fI\%#33188\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246552. @ \fI2016\-05\-11 22:32:29 UTC\fP
  246553. .INDENT 2.0
  246554. .IP \(bu 2
  246555. 6177a6a36f Merge pull request \fI\%#33188\fP from rallytime/merge\-2015.8
  246556. .IP \(bu 2
  246557. f12bba6ebc Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246558. .IP \(bu 2
  246559. 30868ab06c [2015.5] Update to latest bootstrap script v2016.05.11 (\fI\%#33185\fP)
  246560. .IP \(bu 2
  246561. 264ad34b3b Pip fix (\fI\%#33180\fP)
  246562. .IP \(bu 2
  246563. 43288b268d add 2015.5.11 release notes (\fI\%#33160\fP)
  246564. .IP \(bu 2
  246565. e0da8fda7d [2015.5] Update to latest bootstrap script v2016.05.10 (\fI\%#33155\fP)
  246566. .IP \(bu 2
  246567. \fBPR\fP \fI\%#33161\fP: (\fI\%jfindlay\fP) add 2015.8.9 release notes
  246568. .IP \(bu 2
  246569. \fBPR\fP \fI\%#33156\fP: (\fI\%rallytime\fP) [2015.8] Update to latest bootstrap script v2016.05.10
  246570. .UNINDENT
  246571. .IP \(bu 2
  246572. \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)
  246573. .INDENT 2.0
  246574. .IP \(bu 2
  246575. \fBPR\fP \fI\%#33142\fP: (\fI\%cachedout\fP) Hash fileclients by opts
  246576. .UNINDENT
  246577. .IP \(bu 2
  246578. \fBISSUE\fP \fI\%#22142\fP: (\fI\%multani\fP) State \fIacl.present\fP doesn\(aqt allow to set "default" ACLs (refs: \fI\%#31769\fP)
  246579. .INDENT 2.0
  246580. .IP \(bu 2
  246581. \fBPR\fP \fI\%#33139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31769\fP to 2015.8
  246582. .IP \(bu 2
  246583. \fBPR\fP \fI\%#31769\fP: (\fI\%DylanFrese\fP) Fix acl.present and acl.absent when adding default ACLs (refs: \fI\%#33139\fP)
  246584. .UNINDENT
  246585. .IP \(bu 2
  246586. \fBPR\fP \fI\%#33144\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246587. @ \fI2016\-05\-10 19:40:31 UTC\fP
  246588. .INDENT 2.0
  246589. .IP \(bu 2
  246590. 2800762b44 Merge pull request \fI\%#33144\fP from rallytime/merge\-2015.8
  246591. .IP \(bu 2
  246592. 449176f06e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246593. .IP \(bu 2
  246594. 6cd1641840 Merge pull request \fI\%#33141\fP from jtand/disable_local_pkg_install_test
  246595. .INDENT 2.0
  246596. .IP \(bu 2
  246597. 8b1e34fb17 Skipping salt\-call \-\-local test
  246598. .UNINDENT
  246599. .UNINDENT
  246600. .IP \(bu 2
  246601. \fBPR\fP \fI\%#33140\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246602. @ \fI2016\-05\-10 16:57:55 UTC\fP
  246603. .INDENT 2.0
  246604. .IP \(bu 2
  246605. 72d075e14e Merge pull request \fI\%#33140\fP from rallytime/merge\-2015.8
  246606. .IP \(bu 2
  246607. c732c8104b Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246608. .IP \(bu 2
  246609. 878d34a865 Doc mock decorators (\fI\%#33132\fP)
  246610. .UNINDENT
  246611. .IP \(bu 2
  246612. \fBISSUE\fP \fI\%#32834\fP: (\fI\%beardedeagle\fP) Masterless Minion \- Unable to query job cache (refs: \fI\%#33017\fP, \fI\%#33100\fP)
  246613. .INDENT 2.0
  246614. .IP \(bu 2
  246615. \fBPR\fP \fI\%#33100\fP: (\fI\%rallytime\fP) If cache_jobs: True is set, populate the local job cache when running salt\-call
  246616. .IP \(bu 2
  246617. \fBPR\fP \fI\%#33135\fP: (\fI\%stk0vrfl0w\fP) Fix broken parsing of usermgmt.conf on OpenBSD
  246618. .IP \(bu 2
  246619. \fBPR\fP \fI\%#33129\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33101\fP to 2015.8
  246620. .IP \(bu 2
  246621. \fBPR\fP \fI\%#33101\fP: (\fI\%thatch45\fP) Add a check that the cmdline of the found proc matches (refs: \fI\%#33129\fP)
  246622. .IP \(bu 2
  246623. \fBPR\fP \fI\%#33064\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: fix formatting for warning messages
  246624. .UNINDENT
  246625. .IP \(bu 2
  246626. \fBISSUE\fP \fI\%#33058\fP: (\fI\%aclemetson\fP) Unable to run "win_servermanager.list_available" on minion. (refs: \fI\%#33099\fP)
  246627. .INDENT 2.0
  246628. .IP \(bu 2
  246629. \fBPR\fP \fI\%#33099\fP: (\fI\%twangboy\fP) Fix 33058
  246630. .UNINDENT
  246631. .IP \(bu 2
  246632. \fBISSUE\fP \fI\%#32999\fP: (\fI\%basepi\fP) Stacktrace for \fImaster_finger\fP mismatch on minion (refs: \fI\%#33106\fP)
  246633. .IP \(bu 2
  246634. \fBPR\fP \fI\%#33106\fP: (\fI\%abednarik\fP) Moved _finger_fail method to parent class.
  246635. @ \fI2016\-05\-09 16:31:09 UTC\fP
  246636. .INDENT 2.0
  246637. .IP \(bu 2
  246638. 8acc3147d6 Merge pull request \fI\%#33106\fP from abednarik/abednarik_master_Finger_stacktrace
  246639. .IP \(bu 2
  246640. 91a69ba54a Moved _finger_fail method to parent class.
  246641. .IP \(bu 2
  246642. \fBPR\fP \fI\%#33102\fP: (\fI\%Ch3LL\fP) clarify docs that map is designed to be run once. is not stateful
  246643. .IP \(bu 2
  246644. \fBPR\fP \fI\%#33098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33061\fP to 2015.8
  246645. .IP \(bu 2
  246646. \fBPR\fP \fI\%#33061\fP: (\fI\%ahammond\fP) cloud.query needs to define mapper.opts (refs: \fI\%#33098\fP)
  246647. .UNINDENT
  246648. .IP \(bu 2
  246649. \fBPR\fP \fI\%#33096\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246650. @ \fI2016\-05\-06 19:27:57 UTC\fP
  246651. .INDENT 2.0
  246652. .IP \(bu 2
  246653. c1f7aed8a5 Merge pull request \fI\%#33096\fP from rallytime/merge\-2015.8
  246654. .IP \(bu 2
  246655. 0fd5e9d157 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246656. .IP \(bu 2
  246657. 30edeadafd Lower display of msgpack failure msg to debug (\fI\%#33078\fP)
  246658. .IP \(bu 2
  246659. d4928c5a22 Use saltstack repo in buildpackage.py on CentOS 5 (\fI\%#33080\fP)
  246660. .IP \(bu 2
  246661. 61d126cb98 add test for installing package while using salt\-call \-\-local (\fI\%#33025\fP)
  246662. .IP \(bu 2
  246663. 6d3e4e8935 File and User test fixes for 2015.5 on Fedora23 (\fI\%#33055\fP)
  246664. .IP \(bu 2
  246665. d48b2b8b52 test pillar.items output (\fI\%#33060\fP)
  246666. .IP \(bu 2
  246667. 398793bfc0 Fix minor document error of test.assertion (\fI\%#33067\fP)
  246668. .IP \(bu 2
  246669. f8757631b2 Saltfile with pillar tests (\fI\%#33045\fP)
  246670. .IP \(bu 2
  246671. 1d7892421e Backport \fI\%#33021\fP manually to 2015.5 (\fI\%#33044\fP)
  246672. .IP \(bu 2
  246673. f00b5f91b3 Add run_on_start docs to schedule.rst (\fI\%#32958\fP)
  246674. .IP \(bu 2
  246675. \fBPR\fP \fI\%#32865\fP: (\fI\%idonin\fP) salt\-cloud: fix ipv6\-only virtual machines
  246676. .IP \(bu 2
  246677. \fBPR\fP \fI\%#33084\fP: (\fI\%jfindlay\fP) modules.npm: do not log npm \-\-version at info level
  246678. .UNINDENT
  246679. .IP \(bu 2
  246680. \fBISSUE\fP \fI\%#33068\fP: (\fI\%pythonwood\fP) salt\-ssh do not support centos5 because old\-version\-python ? (refs: \fI\%#33081\fP)
  246681. .IP \(bu 2
  246682. \fBPR\fP \fI\%#33081\fP: (\fI\%jfindlay\fP) ssh docs: install py\-2.6 for RHEL 5
  246683. @ \fI2016\-05\-06 15:18:39 UTC\fP
  246684. .INDENT 2.0
  246685. .IP \(bu 2
  246686. 3808d05838 Merge pull request \fI\%#33081\fP from jfindlay/ssh_doc
  246687. .IP \(bu 2
  246688. a2c927b173 ssh docs: install py\-2.6 for RHEL 5
  246689. .UNINDENT
  246690. .IP \(bu 2
  246691. \fBPR\fP \fI\%#33088\fP: (\fI\%isbm\fP) Bugfix: Restore boolean values from the repo configuration
  246692. @ \fI2016\-05\-06 15:13:27 UTC\fP
  246693. .INDENT 2.0
  246694. .IP \(bu 2
  246695. 6d604926d3 Merge pull request \fI\%#33088\fP from isbm/isbm\-zypper\-fix\-booleans
  246696. .IP \(bu 2
  246697. 3ca203eb8e Bugfix (follow\-up): setting priority requires non\-positive integer
  246698. .IP \(bu 2
  246699. 79a46e091c Add repo config test
  246700. .IP \(bu 2
  246701. 222b8369ca Add test data for repos
  246702. .IP \(bu 2
  246703. b746fa35f0 Bugfix: Restore boolean values from the repo configuration
  246704. .UNINDENT
  246705. .IP \(bu 2
  246706. \fBISSUE\fP \fI\%#12422\fP: (\fI\%creaky\fP) Bug: file.blockreplace inserts additional blank line on multi\-line content (refs: \fI\%#33049\fP)
  246707. .INDENT 2.0
  246708. .IP \(bu 2
  246709. \fBPR\fP \fI\%#33082\fP: (\fI\%Ch3LL\fP) Fix tests for file.blockplace to remove newline
  246710. .IP \(bu 2
  246711. \fBPR\fP \fI\%#33049\fP: (\fI\%thatch45\fP) Don\(aqt append a newline when creating new content with blockreplace (refs: \fI\%#33082\fP)
  246712. .UNINDENT
  246713. .IP \(bu 2
  246714. \fBPR\fP \fI\%#32892\fP: (\fI\%isbm\fP) Resolve Zypper locks on asynchronous calls
  246715. @ \fI2016\-05\-05 14:34:59 UTC\fP
  246716. .INDENT 2.0
  246717. .IP \(bu 2
  246718. fb89877cf2 Merge pull request \fI\%#32892\fP from isbm/isbm\-zypper\-env\-variables
  246719. .IP \(bu 2
  246720. 1601a7e07a Prevent the use of "refreshable" together with "nolock" option.
  246721. .IP \(bu 2
  246722. 52e1be2fa9 Remove unused variable in a constructor. Adjust the docstring accordingly.
  246723. .IP \(bu 2
  246724. 7e00f566ef Move log message down to the point where it actually sleeps. Rephrase the message.
  246725. .IP \(bu 2
  246726. 4b7dab83ff Fix PID file path for SLE11
  246727. .IP \(bu 2
  246728. 7f37961d4b Rename tags
  246729. .IP \(bu 2
  246730. c55b0fab58 Test DOM parsing
  246731. .IP \(bu 2
  246732. c54e928e4f Add exception handling test
  246733. .IP \(bu 2
  246734. 3d245bbe84 Parse DOM out of the box, when XML mode is called
  246735. .IP \(bu 2
  246736. 6a98f523ac Add Zypper caller test suite
  246737. .IP \(bu 2
  246738. f189f90124 Bugfix: always trigger __getattr__ to reset and increment the configuration before the call.
  246739. .IP \(bu 2
  246740. 7e1712dd80 Fix tests according to the new calling model
  246741. .IP \(bu 2
  246742. 3a30b7fbcd Remove an obsolete test case
  246743. .IP \(bu 2
  246744. 6e5877a2ee Add Zypper Call mock
  246745. .IP \(bu 2
  246746. bb5540cb4a Bugfix: inverted logic on raising (or not) exceptions
  246747. .IP \(bu 2
  246748. ce9262fe71 Make Zypper caller module\-level reusable
  246749. .IP \(bu 2
  246750. 77dc8695af Update docstrings according to the bugfix
  246751. .IP \(bu 2
  246752. 46d86b21d5 Bugfix: accept refresh override param
  246753. .IP \(bu 2
  246754. cb40618262 Fire an event about released Zypper with its result
  246755. .IP \(bu 2
  246756. 0728f0bc00 Replace string values with the constants
  246757. .IP \(bu 2
  246758. 6af3f7141b Check if zypper lock exists and add more debug logging
  246759. .IP \(bu 2
  246760. 0167b30a75 Add Zypper lock constant
  246761. .IP \(bu 2
  246762. 370ff21d36 Fire an event to the Master about blocked Zypper.
  246763. .IP \(bu 2
  246764. 1727ca3de2 Use new Zypper call implementation
  246765. .IP \(bu 2
  246766. 485164aa5c Remove blocking\-prone Zypper call implementation
  246767. .IP \(bu 2
  246768. f161f0612c Implement block\-proof Zypper call implementation
  246769. .IP \(bu 2
  246770. baf35ed708 Remove one\-char variables
  246771. .IP \(bu 2
  246772. 2c94eb016f Remove an unused variable
  246773. .IP \(bu 2
  246774. 6869ebc557 Remove an empty line
  246775. .IP \(bu 2
  246776. 7e06489da9 Remove verbose wrapping
  246777. .IP \(bu 2
  246778. 2131ff04af Standarize zypper call to "run_all"
  246779. .IP \(bu 2
  246780. 046ef44ca3 Bugfix: version_cmp crashes in CLI if there are versions, that looks like integer or float.
  246781. .IP \(bu 2
  246782. b869a92eea Change Zypper calls to a single point
  246783. .UNINDENT
  246784. .IP \(bu 2
  246785. \fBISSUE\fP \fI\%#24237\fP: (\fI\%Grokzen\fP) Minion schedule return data missing some fields (refs: \fI\%#33039\fP)
  246786. .INDENT 2.0
  246787. .IP \(bu 2
  246788. \fBPR\fP \fI\%#33039\fP: (\fI\%The\-Loeki\fP) Add fun_args to scheduled return data (part of \fI\%#24237\fP)
  246789. .UNINDENT
  246790. .IP \(bu 2
  246791. \fBISSUE\fP \fI\%#12422\fP: (\fI\%creaky\fP) Bug: file.blockreplace inserts additional blank line on multi\-line content (refs: \fI\%#33049\fP)
  246792. .INDENT 2.0
  246793. .IP \(bu 2
  246794. \fBPR\fP \fI\%#33049\fP: (\fI\%thatch45\fP) Don\(aqt append a newline when creating new content with blockreplace (refs: \fI\%#33082\fP)
  246795. .UNINDENT
  246796. .IP \(bu 2
  246797. \fBISSUE\fP \fI\%#24996\fP: (\fI\%danlsgiga\fP) \-\-failhard option not working as expected (refs: \fI\%#33048\fP)
  246798. .INDENT 2.0
  246799. .IP \(bu 2
  246800. \fBPR\fP \fI\%#33048\fP: (\fI\%rallytime\fP) Pass all data to batch.run() call when using \-\-failhard
  246801. .UNINDENT
  246802. .IP \(bu 2
  246803. \fBISSUE\fP \fI\%#32452\fP: (\fI\%nicholascapo\fP) cmd.run_all with \-\-batch and \-\-failhard gives no output on failure (refs: \fI\%#33050\fP)
  246804. .INDENT 2.0
  246805. .IP \(bu 2
  246806. \fBPR\fP \fI\%#33050\fP: (\fI\%rallytime\fP) Display command output when command fails with batch + failhard options
  246807. .UNINDENT
  246808. .IP \(bu 2
  246809. \fBISSUE\fP \fI\%#33041\fP: (\fI\%anitakrueger\fP) boto_elb.present security_groups kwarg is a list \- needs documentation (refs: \fI\%#33053\fP)
  246810. .INDENT 2.0
  246811. .IP \(bu 2
  246812. \fBPR\fP \fI\%#33053\fP: (\fI\%rallytime\fP) Allow security_groups kwarg for boto_elb.present to be string or list
  246813. .IP \(bu 2
  246814. \fBPR\fP \fI\%#33054\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246815. .IP \(bu 2
  246816. \fBPR\fP \fI\%#33056\fP: (\fI\%justinta\fP) File and User test fixes for 2015.8 on Fedora23
  246817. .UNINDENT
  246818. .IP \(bu 2
  246819. \fBISSUE\fP \fI\%#32472\fP: (\fI\%esn89\fP) salt\-minion is stuck in a restart loop with not much info: (refs: \fI\%#33030\fP)
  246820. .INDENT 2.0
  246821. .IP \(bu 2
  246822. \fBPR\fP \fI\%#33040\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33030\fP to 2015.8
  246823. .IP \(bu 2
  246824. \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)
  246825. .UNINDENT
  246826. .IP \(bu 2
  246827. \fBISSUE\fP \fI\%#32834\fP: (\fI\%beardedeagle\fP) Masterless Minion \- Unable to query job cache (refs: \fI\%#33017\fP, \fI\%#33100\fP)
  246828. .INDENT 2.0
  246829. .IP \(bu 2
  246830. \fBPR\fP \fI\%#33017\fP: (\fI\%rallytime\fP) Update the docs for saltutil.find_job to be more clear/accurate
  246831. .IP \(bu 2
  246832. \fBPR\fP \fI\%#33031\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33002\fP to 2015.8
  246833. .IP \(bu 2
  246834. \fBPR\fP \fI\%#33002\fP: (\fI\%whiteinge\fP) Add saltenv to the cmd.script state function (refs: \fI\%#33031\fP)
  246835. .IP \(bu 2
  246836. \fBPR\fP \fI\%#33021\fP: (\fI\%UtahDave\fP) Fix syndic regression (refs: \fI\%#33044\fP)
  246837. .UNINDENT
  246838. .IP \(bu 2
  246839. \fBISSUE\fP \fI\%#11801\fP: (\fI\%slai\fP) Salt does not match user names properly under Windows (refs: \fI\%#32674\fP)
  246840. .INDENT 2.0
  246841. .IP \(bu 2
  246842. \fBPR\fP \fI\%#32674\fP: (\fI\%twangboy\fP) Compare uid and gid instead of name and group
  246843. .UNINDENT
  246844. .IP \(bu 2
  246845. \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)
  246846. .IP \(bu 2
  246847. \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)
  246848. .INDENT 2.0
  246849. .IP \(bu 2
  246850. \fBPR\fP \fI\%#32996\fP: (\fI\%rallytime\fP) Allow batch mode to use verbose option, as well as show_jid.
  246851. .IP \(bu 2
  246852. \fBPR\fP \fI\%#32450\fP: (\fI\%cachedout\fP) Pass parser options into batch mode (refs: \fI\%#32996\fP)
  246853. .UNINDENT
  246854. .IP \(bu 2
  246855. \fBISSUE\fP \fI\%#32954\fP: (\fI\%atengler\fP) glusterfs.peered fails with \(aqNoneType\(aq object is not iterable (refs: \fI\%#32955\fP)
  246856. .INDENT 2.0
  246857. .IP \(bu 2
  246858. \fBPR\fP \fI\%#32955\fP: (\fI\%atengler\fP) Fixed glusterfs.peered output
  246859. .UNINDENT
  246860. .IP \(bu 2
  246861. \fBISSUE\fP \fI\%#26011\fP: (\fI\%rodriguezsergio\fP) states.virtualenv != modules.virtualenv (refs: \fI\%#32994\fP)
  246862. .INDENT 2.0
  246863. .IP \(bu 2
  246864. \fBPR\fP \fI\%#32994\fP: (\fI\%rallytime\fP) Clarify some arg docs for virtualenv state
  246865. .IP \(bu 2
  246866. \fBPR\fP \fI\%#32986\fP: (\fI\%justinta\fP) Fix boto_secgroup_test
  246867. .UNINDENT
  246868. .IP \(bu 2
  246869. \fBISSUE\fP \fI\%#32777\fP: (\fI\%sjorge\fP) cron.present broken on Solarish systems if user specified (refs: \fI\%#32970\fP)
  246870. .INDENT 2.0
  246871. .IP \(bu 2
  246872. \fBPR\fP \fI\%#32970\fP: (\fI\%sjorge\fP) fix user cron on solarish operating systems
  246873. .IP \(bu 2
  246874. \fBPR\fP \fI\%#32796\fP: (\fI\%jfindlay\fP) salt.log.setup: process user args before format
  246875. .UNINDENT
  246876. .IP \(bu 2
  246877. \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)
  246878. .INDENT 2.0
  246879. .IP \(bu 2
  246880. \fBPR\fP \fI\%#32934\fP: (\fI\%jfindlay\fP) doc.ref.states.ordering: clarify requisite change
  246881. .UNINDENT
  246882. .IP \(bu 2
  246883. \fBISSUE\fP \fI\%#32882\fP: (\fI\%papertigers\fP) carbon_return is missing a default value. (refs: \fI\%#32883\fP)
  246884. .INDENT 2.0
  246885. .IP \(bu 2
  246886. \fBPR\fP \fI\%#32928\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32883\fP to 2015.8
  246887. .IP \(bu 2
  246888. \fBPR\fP \fI\%#32883\fP: (\fI\%papertigers\fP) mode should default to \(aqtext\(aq (refs: \fI\%#32928\fP)
  246889. .UNINDENT
  246890. .IP \(bu 2
  246891. \fBISSUE\fP \fI\%#32646\fP: (\fI\%deamen\fP) FileClient Class ( client = salt.minion.FileClient(__opts__) ) does not exist (refs: \fI\%#32925\fP)
  246892. .INDENT 2.0
  246893. .IP \(bu 2
  246894. \fBPR\fP \fI\%#32925\fP: (\fI\%rallytime\fP) Remove FileClient class references from docs \- it doesn\(aqt exist.
  246895. .UNINDENT
  246896. .IP \(bu 2
  246897. \fBISSUE\fP \fI\%#23683\fP: (\fI\%gravyboat\fP) contents_grains should have an example (refs: \fI\%#32922\fP)
  246898. .INDENT 2.0
  246899. .IP \(bu 2
  246900. \fBPR\fP \fI\%#32922\fP: (\fI\%rallytime\fP) Update contents_grains option with relevant docs
  246901. .UNINDENT
  246902. .IP \(bu 2
  246903. \fBPR\fP \fI\%#32926\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246904. @ \fI2016\-04\-28 19:47:52 UTC\fP
  246905. .INDENT 2.0
  246906. .IP \(bu 2
  246907. e60c12640d Merge pull request \fI\%#32926\fP from rallytime/merge\-2015.8
  246908. .IP \(bu 2
  246909. 5a184881be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246910. .IP \(bu 2
  246911. edce22a143 backport PR \fI\%#32732\fP to 2015.5 fixes \fI\%#23714\fP (\fI\%#32848\fP)
  246912. .IP \(bu 2
  246913. \fBPR\fP \fI\%#32908\fP: (\fI\%Ch3LL\fP) Specify EBS volume tags in profile configuration in aws
  246914. .UNINDENT
  246915. .IP \(bu 2
  246916. \fBISSUE\fP \fI\%#23952\fP: (\fI\%neogenix\fP) iptables state append doesn\(aqt honor position \-1 (refs: \fI\%#32906\fP)
  246917. .INDENT 2.0
  246918. .IP \(bu 2
  246919. \fBPR\fP \fI\%#32906\fP: (\fI\%rallytime\fP) Update docs to warn users that \-1 isn\(aqt valid for iptables insert state
  246920. .UNINDENT
  246921. .IP \(bu 2
  246922. \fBISSUE\fP \fI\%#32510\fP: (\fI\%Ch3LL\fP) Cannot specify image in provider file when using map file (refs: \fI\%#32900\fP)
  246923. .INDENT 2.0
  246924. .IP \(bu 2
  246925. \fBPR\fP \fI\%#32900\fP: (\fI\%rallytime\fP) Allow profile options to be specified in provider file when using maps
  246926. .UNINDENT
  246927. .IP \(bu 2
  246928. \fBISSUE\fP \fI\%#30855\fP: (\fI\%guettli\fP) Docs: does salt.states.service support systemd? (refs: \fI\%#32880\fP)
  246929. .INDENT 2.0
  246930. .IP \(bu 2
  246931. \fBPR\fP \fI\%#32880\fP: (\fI\%rallytime\fP) Clarify service state opening docs \- uses \(aqservice\(aq virtualname
  246932. .UNINDENT
  246933. .IP \(bu 2
  246934. \fBPR\fP \fI\%#32884\fP: (\fI\%terminalmage\fP) Fix incorrect deprecation notice
  246935. @ \fI2016\-04\-27 15:47:35 UTC\fP
  246936. .INDENT 2.0
  246937. .IP \(bu 2
  246938. e1b40b3b76 Merge pull request \fI\%#32884\fP from terminalmage/fix\-incorrect\-deprecation\-notice
  246939. .IP \(bu 2
  246940. b307c5452a Fix incorrect deprecation notice
  246941. .UNINDENT
  246942. .IP \(bu 2
  246943. \fBPR\fP \fI\%#32878\fP: (\fI\%jacobhammons\fP) added note about updating the bootstrap script in salt\-cloud using th…
  246944. @ \fI2016\-04\-26 21:09:51 UTC\fP
  246945. .INDENT 2.0
  246946. .IP \(bu 2
  246947. a2921b9da0 Merge pull request \fI\%#32878\fP from jacobhammons/salt\-cloud
  246948. .IP \(bu 2
  246949. 3887938727 added note about updating the bootstrap script in salt\-cloud using the \-u flag, removed the saltconf banner.
  246950. .UNINDENT
  246951. .IP \(bu 2
  246952. \fBISSUE\fP \fI\%#32861\fP: (\fI\%bradthurber\fP) Is it master_syndic or syndic_master? (refs: \fI\%#32869\fP)
  246953. .IP \(bu 2
  246954. \fBPR\fP \fI\%#32869\fP: (\fI\%rallytime\fP) Use correct config setting in cloud syndic docs
  246955. @ \fI2016\-04\-26 19:13:21 UTC\fP
  246956. .INDENT 2.0
  246957. .IP \(bu 2
  246958. 71db10fd2c Merge pull request \fI\%#32869\fP from rallytime/fix\-32861
  246959. .IP \(bu 2
  246960. 0e73daa126 Use correct config setting in cloud syndic docs
  246961. .UNINDENT
  246962. .IP \(bu 2
  246963. \fBPR\fP \fI\%#32844\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246964. @ \fI2016\-04\-26 17:38:08 UTC\fP
  246965. .INDENT 2.0
  246966. .IP \(bu 2
  246967. 02c681311f Merge pull request \fI\%#32844\fP from rallytime/merge\-2015.8
  246968. .IP \(bu 2
  246969. 1fc9de1d04 Add \(aqfile.source_list\(aq mock to archive state unit tests
  246970. .IP \(bu 2
  246971. 9064d3bbfb Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246972. .INDENT 2.0
  246973. .IP \(bu 2
  246974. 9b5c14c37c \fIsalt\-cloud \-u\fP downloads stable version from bootstrap.saltstack.com by default (\fI\%#32837\fP)
  246975. .IP \(bu 2
  246976. 9725804448 update bootstrap to 2016.04.18 release (\fI\%#32667\fP)
  246977. .IP \(bu 2
  246978. c842e1e437 Merge pull request \fI\%#32776\fP from rallytime/merge\-2015.5
  246979. .INDENT 2.0
  246980. .IP \(bu 2
  246981. 7ecbf9f885 Merge pull request #14 from whiteinge/runner\-async\-low
  246982. .INDENT 2.0
  246983. .IP \(bu 2
  246984. 211f7b4af1 Format low data correct for runner_async
  246985. .UNINDENT
  246986. .IP \(bu 2
  246987. ce72851861 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  246988. .IP \(bu 2
  246989. 2775edc176 Saltnado /run fix (\fI\%#32590\fP)
  246990. .IP \(bu 2
  246991. b19c5a5ce7 Verify auth in saltnado run (\fI\%#32552\fP)
  246992. .UNINDENT
  246993. .IP \(bu 2
  246994. 67d0c81184 Support remote sources in a source list (\fI\%#32691\fP)
  246995. .IP \(bu 2
  246996. bd5442d768 Merge pull request \fI\%#32686\fP from cachedout/issue_32661
  246997. .INDENT 2.0
  246998. .IP \(bu 2
  246999. f704df90bc Fix stacktrace in batch with dup minion ids
  247000. .UNINDENT
  247001. .IP \(bu 2
  247002. 3ec9502a86 Update "Low Hanging Fruit" to "Help Wanted" (\fI\%#32675\fP)
  247003. .IP \(bu 2
  247004. 77bea56b68 Additional documentation on calling exec modules from templates (\fI\%#32657\fP)
  247005. .IP \(bu 2
  247006. c910b8dd51 Fixing critical bug to remove only the specified Host instead of the entire Host cluster (\fI\%#32639\fP)
  247007. .IP \(bu 2
  247008. 4568565d45 Add _syspaths.py to .gitignore (\fI\%#32638\fP)
  247009. .UNINDENT
  247010. .UNINDENT
  247011. .IP \(bu 2
  247012. \fBISSUE\fP \fI\%#32799\fP: (\fI\%belt\fP) ssh_auth.present creates ~/~${USER}/.ssh (refs: \fI\%#32868\fP)
  247013. .INDENT 2.0
  247014. .IP \(bu 2
  247015. \fBPR\fP \fI\%#32868\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31139\fP to 2015.8
  247016. .IP \(bu 2
  247017. \fBPR\fP \fI\%#31139\fP: (\fI\%exowaucka\fP) Improve %h and %u handling in SSH module (refs: \fI\%#32868\fP)
  247018. .UNINDENT
  247019. .IP \(bu 2
  247020. \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)
  247021. .INDENT 2.0
  247022. .IP \(bu 2
  247023. \fBPR\fP \fI\%#32847\fP: (\fI\%lomeroe\fP) backport PR \fI\%#32732\fP for issue \fI\%#23714\fP
  247024. .IP \(bu 2
  247025. \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)
  247026. .UNINDENT
  247027. .IP \(bu 2
  247028. \fBISSUE\fP \fI\%#32824\fP: (\fI\%bradthurber\fP) salt\-cloud vmware: wrong pyvmomi installed for RHEL/CentOS 6 (refs: \fI\%#32845\fP)
  247029. .INDENT 2.0
  247030. .IP \(bu 2
  247031. \fBPR\fP \fI\%#32845\fP: (\fI\%rallytime\fP) Add pyvmomi version warning to Getting Started with VMware docs
  247032. .UNINDENT
  247033. .IP \(bu 2
  247034. \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)
  247035. .INDENT 2.0
  247036. .IP \(bu 2
  247037. \fBPR\fP \fI\%#32841\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32818\fP to 2015.8
  247038. .IP \(bu 2
  247039. \fBPR\fP \fI\%#32818\fP: (\fI\%mitar\fP) Pass None as memory limit (refs: \fI\%#32841\fP)
  247040. .IP \(bu 2
  247041. \fBPR\fP \fI\%#26518\fP: (\fI\%krak3n\fP) Fix for \fI\%#25492\fP (refs: \fI\%#32818\fP)
  247042. .UNINDENT
  247043. .IP \(bu 2
  247044. \fBISSUE\fP \fI\%#32605\fP: (\fI\%Talkless\fP) pkgrepo.managed with apt does not add comments value later (refs: \fI\%#32813\fP)
  247045. .INDENT 2.0
  247046. .IP \(bu 2
  247047. \fBPR\fP \fI\%#32839\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32813\fP to 2015.8
  247048. .IP \(bu 2
  247049. \fBPR\fP \fI\%#32813\fP: (\fI\%abednarik\fP) Add comments as an option for apt in pkgrepo.managed. (refs: \fI\%#32839\fP)
  247050. .IP \(bu 2
  247051. \fBPR\fP \fI\%#32659\fP: (\fI\%anlutro\fP) Various improvements on cloud deploy script docs
  247052. .IP \(bu 2
  247053. \fBPR\fP \fI\%#32668\fP: (\fI\%jfindlay\fP) [2015.8] update bootstrap to 2016.04.18 release
  247054. .IP \(bu 2
  247055. \fBPR\fP \fI\%#32785\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29322\fP to 2015.8
  247056. .IP \(bu 2
  247057. \fBPR\fP \fI\%#29322\fP: (\fI\%mrproper\fP) add http proxy support for tornado (refs: \fI\%#32785\fP)
  247058. .UNINDENT
  247059. .IP \(bu 2
  247060. \fBISSUE\fP \fI\%#32710\fP: (\fI\%bradthurber\fP) conf/master missing many gitfs and git_pillar parameters (refs: \fI\%#32722\fP)
  247061. .IP \(bu 2
  247062. \fBPR\fP \fI\%#32787\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32722\fP to 2015.8
  247063. @ \fI2016\-04\-25 15:19:21 UTC\fP
  247064. .INDENT 2.0
  247065. .IP \(bu 2
  247066. \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)
  247067. .IP \(bu 2
  247068. 96a3d4e556 Merge pull request \fI\%#32787\fP from rallytime/bp\-32722
  247069. .IP \(bu 2
  247070. 8d7148d41b Catch up the conf/master file to include gitfs/git_pillar parms from recent releases
  247071. .UNINDENT
  247072. .IP \(bu 2
  247073. \fBPR\fP \fI\%#32786\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32703\fP to 2015.8
  247074. @ \fI2016\-04\-25 15:19:13 UTC\fP
  247075. .INDENT 2.0
  247076. .IP \(bu 2
  247077. \fBPR\fP \fI\%#32703\fP: (\fI\%schancel\fP) Make example top file match templated version (refs: \fI\%#32786\fP)
  247078. .IP \(bu 2
  247079. 36f70f5847 Merge pull request \fI\%#32786\fP from rallytime/bp\-32703
  247080. .IP \(bu 2
  247081. baa4df25c9 Make example top file match templated version
  247082. .IP \(bu 2
  247083. 227ef4aabb Fix unnecessary capitalization
  247084. .IP \(bu 2
  247085. 73cd9f26c3 Merge branch \(aqgitfs_perremote_doc_updates\(aq of \fI\%https://github.com/l2ol33rt/salt\fP into pr\-32775
  247086. .IP \(bu 2
  247087. b69d406ada Including name per\-remote config option in example
  247088. .IP \(bu 2
  247089. \fBPR\fP \fI\%#32779\fP: (\fI\%terminalmage\fP) Improve documentation on pygit2 versions
  247090. .UNINDENT
  247091. .IP \(bu 2
  247092. \fBISSUE\fP \fI\%#32609\fP: (\fI\%anlutro\fP) Tornado ioloop fails when master disconnects? (refs: \fI\%#32749\fP)
  247093. .INDENT 2.0
  247094. .IP \(bu 2
  247095. \fBPR\fP \fI\%#32749\fP: (\fI\%DmitryKuzmenko\fP) Properly handle minion failback failure.
  247096. .UNINDENT
  247097. .IP \(bu 2
  247098. \fBISSUE\fP \fI\%#32144\fP: (\fI\%vutny\fP) Pillar targeting starts to work only after calling \fIsaltutil.refresh_pillar\fP (refs: \fI\%#32643\fP)
  247099. .INDENT 2.0
  247100. .IP \(bu 2
  247101. \fBPR\fP \fI\%#32643\fP: (\fI\%vutny\fP) Document pillar cache options
  247102. .UNINDENT
  247103. .IP \(bu 2
  247104. \fBISSUE\fP \fI\%#32705\fP: (\fI\%joakimkarlsson\fP) win_dacl.present: Specifying propagations for a directory fails (refs: \fI\%#32720\fP)
  247105. .INDENT 2.0
  247106. .IP \(bu 2
  247107. \fBPR\fP \fI\%#32720\fP: (\fI\%jfindlay\fP) modules.win_dacl: consistent case of dacl constants
  247108. .UNINDENT
  247109. .IP \(bu 2
  247110. \fBISSUE\fP \fI\%#30761\fP: (\fI\%sjmh\fP) Cannot target subsets of minions when using pillar and external_auth (refs: \fI\%#31598\fP)
  247111. .IP \(bu 2
  247112. \fBISSUE\fP \fI\%#21303\fP: (\fI\%Lothiraldan\fP) Explicit and document ACL rules format (refs: \fI\%#32733\fP)
  247113. .INDENT 2.0
  247114. .IP \(bu 2
  247115. \fBPR\fP \fI\%#32733\fP: (\fI\%Lothiraldan\fP) Update external auth documentation to list supported matcher.
  247116. .IP \(bu 2
  247117. \fBPR\fP \fI\%#31598\fP: (\fI\%terminalmage\fP) Remove limitations on validation types for eauth targets (refs: \fI\%#32733\fP)
  247118. .IP \(bu 2
  247119. \fBPR\fP \fI\%#32693\fP: (\fI\%techhat\fP) Check dependencies type before appling str operations
  247120. .IP \(bu 2
  247121. \fBPR\fP \fI\%#32692\fP: (\fI\%garethgreenaway\fP) Handle when beacon not configured and we try to enable/disable them
  247122. .UNINDENT
  247123. .IP \(bu 2
  247124. \fBPR\fP \fI\%#32718\fP: (\fI\%garethgreenaway\fP) Fixes to schedule.list in 2015.8
  247125. @ \fI2016\-04\-20 19:51:24 UTC\fP
  247126. .INDENT 2.0
  247127. .IP \(bu 2
  247128. f52af5a596 Merge pull request \fI\%#32718\fP from garethgreenaway/2015_8_schedule_list_fix
  247129. .IP \(bu 2
  247130. 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
  247131. .UNINDENT
  247132. .IP \(bu 2
  247133. \fBPR\fP \fI\%#32684\fP: (\fI\%captaininspiration\fP) Fix routes for redhat < 6
  247134. @ \fI2016\-04\-19 19:18:20 UTC\fP
  247135. .INDENT 2.0
  247136. .IP \(bu 2
  247137. \fBPR\fP \fI\%#32682\fP: (\fI\%captaininspiration\fP) Fix routes for redhat < 6 (refs: \fI\%#32684\fP)
  247138. .IP \(bu 2
  247139. f63566e452 Merge pull request \fI\%#32684\fP from captaininspiration/2015.8
  247140. .IP \(bu 2
  247141. 640c7a90da Fix routes for redhat < 6
  247142. .IP \(bu 2
  247143. \fBPR\fP \fI\%#32683\fP: (\fI\%techhat\fP) Handle a couple of arguments better (Azure)
  247144. .UNINDENT
  247145. .IP \(bu 2
  247146. \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)
  247147. .INDENT 2.0
  247148. .IP \(bu 2
  247149. \fBPR\fP \fI\%#32672\fP: (\fI\%junster1\fP) Fix for issue 32523
  247150. .UNINDENT
  247151. .IP \(bu 2
  247152. \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)
  247153. .INDENT 2.0
  247154. .IP \(bu 2
  247155. \fBPR\fP \fI\%#32556\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt access deprecated Exception.message attribute.
  247156. .IP \(bu 2
  247157. \fBPR\fP \fI\%#32655\fP: (\fI\%cachedout\fP) Lower log level for pillar cache
  247158. .UNINDENT
  247159. .IP \(bu 2
  247160. \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)
  247161. .IP \(bu 2
  247162. \fBPR\fP \fI\%#32588\fP: (\fI\%anlutro\fP) Fix salt\-ssh module function call argument type juggling by JSON encoding them
  247163. @ \fI2016\-04\-18 15:57:14 UTC\fP
  247164. .INDENT 2.0
  247165. .IP \(bu 2
  247166. a6a427463d Merge pull request \fI\%#32588\fP from alprs/fix\-salt_ssh_module_types
  247167. .IP \(bu 2
  247168. d912f1c3c6 json encode arguments passed to an execution module function call
  247169. .UNINDENT
  247170. .IP \(bu 2
  247171. \fBISSUE\fP \fI\%#32229\fP: (\fI\%seanjnkns\fP) 2015.8.8.2: pkg.installed fails to update packages with epoch (refs: \fI\%#32563\fP)
  247172. .INDENT 2.0
  247173. .IP \(bu 2
  247174. \fBPR\fP \fI\%#32563\fP: (\fI\%terminalmage\fP) yumpkg: Ignore epoch in version comparison for explict versions without an epoch
  247175. .IP \(bu 2
  247176. \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
  247177. .IP \(bu 2
  247178. \fBPR\fP \fI\%#32649\fP: (\fI\%mcalmer\fP) align OS grains from older SLES with current one
  247179. .IP \(bu 2
  247180. \fBPR\fP \fI\%#32652\fP: (\fI\%isbm\fP) Prevent crash if pygit2 package is requesting re\-compilation of the e…
  247181. .UNINDENT
  247182. .IP \(bu 2
  247183. \fBPR\fP \fI\%#32614\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247184. @ \fI2016\-04\-15 19:27:47 UTC\fP
  247185. .INDENT 2.0
  247186. .IP \(bu 2
  247187. 05a41a13cd Merge pull request \fI\%#32614\fP from rallytime/merge\-2015.8
  247188. .IP \(bu 2
  247189. 046e401dd8 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247190. .INDENT 2.0
  247191. .IP \(bu 2
  247192. 027b502335 Merge pull request \fI\%#32561\fP from gtmanfred/user_passwords
  247193. .INDENT 2.0
  247194. .IP \(bu 2
  247195. 3db5e78d5d redact passwords and hashes from user.present updates
  247196. .UNINDENT
  247197. .UNINDENT
  247198. .UNINDENT
  247199. .IP \(bu 2
  247200. \fBPR\fP \fI\%#32616\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32547\fP to 2015.8
  247201. @ \fI2016\-04\-15 19:27:36 UTC\fP
  247202. .INDENT 2.0
  247203. .IP \(bu 2
  247204. \fBPR\fP \fI\%#32547\fP: (\fI\%cro\fP) Expand on the open\-source vs open\-core FAQ (refs: \fI\%#32616\fP)
  247205. .IP \(bu 2
  247206. ef17bde054 Merge pull request \fI\%#32616\fP from rallytime/bp\-32547
  247207. .IP \(bu 2
  247208. 4242bc7399 Language clarification.
  247209. .IP \(bu 2
  247210. 965e3bc1d1 Expand on the open\-source vs open\-core FAQ
  247211. .IP \(bu 2
  247212. \fBPR\fP \fI\%#32604\fP: (\fI\%Talkless\fP) Fix comments value in salt.states.pkgrepo example
  247213. .IP \(bu 2
  247214. \fBPR\fP \fI\%#32558\fP: (\fI\%terminalmage\fP) Revert PR \fI\%#32480\fP and apply \fI\%#32314\fP with fixes / documentation
  247215. .IP \(bu 2
  247216. \fBPR\fP \fI\%#32480\fP: (\fI\%terminalmage\fP) Clear VCS fsbackend and git_pillar locks on master start (refs: \fI\%#32558\fP)
  247217. .IP \(bu 2
  247218. \fBPR\fP \fI\%#32314\fP: (\fI\%onorua\fP) prevent eternal gitfs lock due to process crash (refs: \fI\%#32480\fP, \fI\%#32558\fP)
  247219. .UNINDENT
  247220. .IP \(bu 2
  247221. \fBISSUE\fP \fI\%#32519\fP: (\fI\%Ch3LL\fP) Minion restarting and erroring when cannot reach the master (refs: \fI\%#32576\fP)
  247222. .INDENT 2.0
  247223. .IP \(bu 2
  247224. \fBPR\fP \fI\%#32576\fP: (\fI\%DmitryKuzmenko\fP) Better log message on minion restart if master couldn\(aqt be reached.
  247225. .UNINDENT
  247226. .IP \(bu 2
  247227. \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)
  247228. .INDENT 2.0
  247229. .IP \(bu 2
  247230. \fBPR\fP \fI\%#32555\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt return None from eval_master
  247231. .UNINDENT
  247232. .IP \(bu 2
  247233. \fBPR\fP \fI\%#32536\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31898\fP to 2015.8
  247234. @ \fI2016\-04\-13 18:49:05 UTC\fP
  247235. .INDENT 2.0
  247236. .IP \(bu 2
  247237. \fBPR\fP \fI\%#31898\fP: (\fI\%afletch\fP) Ensure rh_service not used on CloudLinux 7 (refs: \fI\%#32536\fP)
  247238. .IP \(bu 2
  247239. 27e91e40cc Merge pull request \fI\%#32536\fP from rallytime/bp\-31898
  247240. .IP \(bu 2
  247241. 60d80c4dee Ensure rh_service not used on CloudLinux 7
  247242. .IP \(bu 2
  247243. \fBPR\fP \fI\%#32542\fP: (\fI\%twangboy\fP) Fix binary search and replace
  247244. .UNINDENT
  247245. .IP \(bu 2
  247246. \fBPR\fP \fI\%#32539\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247247. @ \fI2016\-04\-13 15:10:08 UTC\fP
  247248. .INDENT 2.0
  247249. .IP \(bu 2
  247250. cce7de76b0 Merge pull request \fI\%#32539\fP from rallytime/merge\-2015.8
  247251. .IP \(bu 2
  247252. fbaeb165c9 Merge branch \(aq2015.5\(aq into merge\-2015.8
  247253. .IP \(bu 2
  247254. 7307bcb88e Merge pull request \fI\%#32538\fP from rallytime/bp\-32528
  247255. .INDENT 2.0
  247256. .IP \(bu 2
  247257. 46a4e8a310 Remove merge conflict line
  247258. .IP \(bu 2
  247259. e0d947c707 Document "grains" setting in the minion configuration reference
  247260. .UNINDENT
  247261. .UNINDENT
  247262. .IP \(bu 2
  247263. \fBISSUE\fP \fI\%#32493\fP: (\fI\%bberberov\fP) dockerng.volume_present fails when no volumes already exist on the system (refs: \fI\%#32531\fP)
  247264. .IP \(bu 2
  247265. \fBPR\fP \fI\%#32531\fP: (\fI\%ticosax\fP) [dockerng] Fix support of dockerng.volume_present when no volume is on present.
  247266. @ \fI2016\-04\-13 14:42:13 UTC\fP
  247267. .INDENT 2.0
  247268. .IP \(bu 2
  247269. 1834bdefe3 Merge pull request \fI\%#32531\fP from ticosax/support\-no\-volumes
  247270. .IP \(bu 2
  247271. 958b2ec749 Fix support of dockerng.volume_present when no volume is on present.
  247272. .IP \(bu 2
  247273. \fBPR\fP \fI\%#32475\fP: (\fI\%ticosax\fP) [dockerng] Enhance dockerng.wait() to control success on exit_code and on already stopped containers
  247274. .IP \(bu 2
  247275. \fBPR\fP \fI\%#32436\fP: (\fI\%isbm\fP) Bugfix: salt\-key crashes if tries to generate keys to the directory w/o write access
  247276. .IP \(bu 2
  247277. \fBPR\fP \fI\%#32515\fP: (\fI\%terminalmage\fP) Turn on exc_info when logging failed minion startup
  247278. .IP \(bu 2
  247279. \fBPR\fP \fI\%#32520\fP: (\fI\%terminalmage\fP) Add ignore_epoch option to pkg.installed/removed/purged states
  247280. .IP \(bu 2
  247281. \fBPR\fP \fI\%#32505\fP: (\fI\%isbm\fP) Isbm zypper list products sles11 crash
  247282. .IP \(bu 2
  247283. \fBPR\fP \fI\%#32480\fP: (\fI\%terminalmage\fP) Clear VCS fsbackend and git_pillar locks on master start (refs: \fI\%#32558\fP)
  247284. .IP \(bu 2
  247285. \fBPR\fP \fI\%#32314\fP: (\fI\%onorua\fP) prevent eternal gitfs lock due to process crash (refs: \fI\%#32480\fP, \fI\%#32558\fP)
  247286. .UNINDENT
  247287. .IP \(bu 2
  247288. \fBISSUE\fP \fI\%#32327\fP: (\fI\%joakimkarlsson\fP) salt\-minion fails to start on Windows (refs: \fI\%#32491\fP)
  247289. .INDENT 2.0
  247290. .IP \(bu 2
  247291. \fBPR\fP \fI\%#32491\fP: (\fI\%twangboy\fP) Use win32api to get Total System Memory
  247292. .UNINDENT
  247293. .IP \(bu 2
  247294. \fBISSUE\fP \fI\%#31927\fP: (\fI\%afletch\fP) pkg.installed compares version including package epoch (pkg.version problem?) (refs: \fI\%#32487\fP)
  247295. .IP \(bu 2
  247296. \fBPR\fP \fI\%#32487\fP: (\fI\%terminalmage\fP) Add explanation of nonzero epoch requirement to pkg.installed state documentation
  247297. @ \fI2016\-04\-11 20:48:57 UTC\fP
  247298. .INDENT 2.0
  247299. .IP \(bu 2
  247300. e335e313fe Merge pull request \fI\%#32487\fP from terminalmage/epoch\-documentation
  247301. .IP \(bu 2
  247302. e04cf879b6 Document new behavior of pkg.installed for yum/dnf packages with non\-zero epoch
  247303. .IP \(bu 2
  247304. 61e9761224 Add explanation of nonzero epoch requirement to pkg.installed state documentation
  247305. .UNINDENT
  247306. .IP \(bu 2
  247307. \fBPR\fP \fI\%#32482\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247308. @ \fI2016\-04\-11 20:12:26 UTC\fP
  247309. .INDENT 2.0
  247310. .IP \(bu 2
  247311. e8de50ff37 Merge pull request \fI\%#32482\fP from rallytime/merge\-2015.8
  247312. .IP \(bu 2
  247313. 1b04f0ddec Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247314. .IP \(bu 2
  247315. 29333e533e Add documentation for some master/minion configs (\fI\%#32454\fP)
  247316. .IP \(bu 2
  247317. 100c6e1b25 Merge pull request \fI\%#32458\fP from terminalmage/clarify\-providers\-docs
  247318. .INDENT 2.0
  247319. .IP \(bu 2
  247320. 500d3ebbaa Add link to provider override docs to all group providers
  247321. .IP \(bu 2
  247322. 83ca01f620 dd link to provider override docs to all shadow providers
  247323. .IP \(bu 2
  247324. c5fe38789d Add link to provider override docs to all user providers
  247325. .IP \(bu 2
  247326. 5c1c1dda59 Add link to provider override docs to all service providers
  247327. .IP \(bu 2
  247328. 736f2befc9 Add link to provider override docs to all package providers
  247329. .IP \(bu 2
  247330. f9306347cc Clarify the scope of the provider param in states.
  247331. .IP \(bu 2
  247332. af24c82ab0 Add documentation on virtual module provider overrides to the module docs
  247333. .IP \(bu 2
  247334. 0bc6c97a63 Improve docstrings
  247335. .IP \(bu 2
  247336. 1948920674 Add external ref to windows package manager docs
  247337. .IP \(bu 2
  247338. e7fa21438c Add new doc pages to toctree
  247339. .IP \(bu 2
  247340. f0de1236ec Move the tables of virtual modules to individual documentation pages
  247341. .UNINDENT
  247342. .UNINDENT
  247343. .IP \(bu 2
  247344. \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)
  247345. .IP \(bu 2
  247346. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  247347. .IP \(bu 2
  247348. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  247349. .INDENT 2.0
  247350. .IP \(bu 2
  247351. \fBPR\fP \fI\%#32474\fP: (\fI\%DmitryKuzmenko\fP) Backport 31164 and 31364
  247352. .IP \(bu 2
  247353. \fBPR\fP \fI\%#32441\fP: (\fI\%cachedout\fP) Backport 31164 31364 (refs: \fI\%#32474\fP)
  247354. .IP \(bu 2
  247355. \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)
  247356. .IP \(bu 2
  247357. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#32441\fP, \fI\%#32474\fP)
  247358. .UNINDENT
  247359. .IP \(bu 2
  247360. \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)
  247361. .IP \(bu 2
  247362. \fBPR\fP \fI\%#32450\fP: (\fI\%cachedout\fP) Pass parser options into batch mode (refs: \fI\%#32996\fP)
  247363. @ \fI2016\-04\-08 23:03:49 UTC\fP
  247364. .INDENT 2.0
  247365. .IP \(bu 2
  247366. 7bf44aea72 Merge pull request \fI\%#32450\fP from cachedout/issue_31738
  247367. .IP \(bu 2
  247368. 74d0fa06b4 Pass parser options into batch mode
  247369. .UNINDENT
  247370. .IP \(bu 2
  247371. \fBISSUE\fP \fI\%#28706\fP: (\fI\%kkaig\fP) user.present:groups vs group.present:members (refs: \fI\%#30824\fP, \fI\%#32448\fP)
  247372. .INDENT 2.0
  247373. .IP \(bu 2
  247374. \fBPR\fP \fI\%#32448\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30824\fP to 2015.8
  247375. .IP \(bu 2
  247376. \fBPR\fP \fI\%#30824\fP: (\fI\%alxf\fP) Issue \fI\%#28706\fP: Fix state user.present behavior. (refs: \fI\%#32448\fP)
  247377. .UNINDENT
  247378. .IP \(bu 2
  247379. \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)
  247380. .INDENT 2.0
  247381. .IP \(bu 2
  247382. \fBPR\fP \fI\%#32445\fP: (\fI\%rallytime\fP) Argument name in docs should match actual arg name
  247383. .IP \(bu 2
  247384. \fBPR\fP \fI\%#26676\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26648\fP to 2015.5 (refs: \fI\%#32445\fP)
  247385. .IP \(bu 2
  247386. \fBPR\fP \fI\%#26648\fP: (\fI\%whiteinge\fP) Free \(aqfun\(aq from the function signature namespace (refs: \fI\%#26676\fP)
  247387. .UNINDENT
  247388. .IP \(bu 2
  247389. \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)
  247390. .IP \(bu 2
  247391. \fBPR\fP \fI\%#32432\fP: (\fI\%ticosax\fP) [dockerng] Fix Domainname introspection
  247392. @ \fI2016\-04\-08 16:12:19 UTC\fP
  247393. .INDENT 2.0
  247394. .IP \(bu 2
  247395. a36f9499fc Merge pull request \fI\%#32432\fP from ticosax/fix\-domainname\-introspection
  247396. .IP \(bu 2
  247397. 505b5b0168 Fix Domainname introspection
  247398. .UNINDENT
  247399. .IP \(bu 2
  247400. \fBPR\fP \fI\%#32427\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247401. @ \fI2016\-04\-08 15:39:13 UTC\fP
  247402. .INDENT 2.0
  247403. .IP \(bu 2
  247404. def911974c Merge pull request \fI\%#32427\fP from rallytime/merge\-2015.8
  247405. .IP \(bu 2
  247406. 9531ea6ef5 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247407. .IP \(bu 2
  247408. 0809126d8e Merge \fI\%#32293\fP with test fixes (\fI\%#32418\fP)
  247409. .IP \(bu 2
  247410. bbd8260a42 Ignore Raspbian in service.py __virtual__ (\fI\%#32421\fP)
  247411. .IP \(bu 2
  247412. 690addf0b4 FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.
  247413. .IP \(bu 2
  247414. a36866d7db Merge pull request \fI\%#32399\fP from amontalban/2015.5
  247415. .INDENT 2.0
  247416. .IP \(bu 2
  247417. e1ffbd615a Fixes \fI\%saltstack/salt#28262\fP for 2015.5 branch
  247418. .UNINDENT
  247419. .IP \(bu 2
  247420. 3f03c5fcf9 Merge pull request \fI\%#32374\fP from cachedout/issue_32066
  247421. .INDENT 2.0
  247422. .IP \(bu 2
  247423. 62389d1d1a Update proxmox documentation
  247424. .UNINDENT
  247425. .IP \(bu 2
  247426. 8578089beb Merge pull request \fI\%#32339\fP from Ch3LL/fix_doc_multi\-master
  247427. .INDENT 2.0
  247428. .IP \(bu 2
  247429. 2774da288d remove reference to master_alive_check
  247430. .UNINDENT
  247431. .UNINDENT
  247432. .IP \(bu 2
  247433. \fBISSUE\fP \fI\%#32311\fP: (\fI\%rkgrunt\fP) glusterfs module incorrectly indexes into name of bricks (refs: \fI\%#32312\fP)
  247434. .IP \(bu 2
  247435. \fBPR\fP \fI\%#32423\fP: (\fI\%justinta\fP) Update glusterfs_test to be inline with \fI\%#32312\fP
  247436. @ \fI2016\-04\-07 21:53:03 UTC\fP
  247437. .INDENT 2.0
  247438. .IP \(bu 2
  247439. \fBPR\fP \fI\%#32312\fP: (\fI\%rkgrunt\fP) Fixed glusterfs module (refs: \fI\%#32423\fP)
  247440. .IP \(bu 2
  247441. 5bc8c326ce Merge pull request \fI\%#32423\fP from jtand/glusterfs_test_fix
  247442. .IP \(bu 2
  247443. 6f98bd50eb Update glusterfs_test to be inline with \fI\%#32312\fP
  247444. .UNINDENT
  247445. .IP \(bu 2
  247446. \fBISSUE\fP \fI\%#31632\fP: (\fI\%zieba88\fP) salt\-cloud map parallel provisioning \-P option failed on 2015.8.5 (refs: \fI\%#32425\fP)
  247447. .IP \(bu 2
  247448. \fBPR\fP \fI\%#32425\fP: (\fI\%cachedout\fP) Fix salt\-cloud paralell provisioning
  247449. @ \fI2016\-04\-07 21:52:06 UTC\fP
  247450. .INDENT 2.0
  247451. .IP \(bu 2
  247452. c07e02bacb Merge pull request \fI\%#32425\fP from cachedout/issue_31632
  247453. .IP \(bu 2
  247454. 127c0829ee Fix salt\-cloud paralell provisioning
  247455. .UNINDENT
  247456. .IP \(bu 2
  247457. \fBPR\fP \fI\%#32323\fP: (\fI\%mcalmer\fP) fix sorting by latest version when called with an attribute
  247458. @ \fI2016\-04\-07 06:24:35 UTC\fP
  247459. .INDENT 2.0
  247460. .IP \(bu 2
  247461. 2cc054bbc0 Merge pull request \fI\%#32323\fP from mcalmer/fix\-ensure\-installed\-latest\-with\-attributes
  247462. .IP \(bu 2
  247463. cb1f30ee10 fix sorting by latest version when called with an attribute
  247464. .UNINDENT
  247465. .IP \(bu 2
  247466. \fBISSUE\fP \fI\%saltstack/salt#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP)
  247467. .IP \(bu 2
  247468. \fBISSUE\fP \fI\%#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP, \fI\%#32399\fP)
  247469. .IP \(bu 2
  247470. \fBPR\fP \fI\%#32376\fP: (\fI\%amontalban\fP) Fixes \fI\%saltstack/salt#28262\fP (refs: \fI\%#32399\fP)
  247471. @ \fI2016\-04\-06 20:30:10 UTC\fP
  247472. .INDENT 2.0
  247473. .IP \(bu 2
  247474. 802580ee1a Merge pull request \fI\%#32376\fP from amontalban/2015.8
  247475. .IP \(bu 2
  247476. 823d0c362b Fixes \fI\%saltstack/salt#28262\fP
  247477. .UNINDENT
  247478. .IP \(bu 2
  247479. \fBISSUE\fP \fI\%#32375\fP: (\fI\%truescotw\fP) jinja template copying file but not replacing tags (refs: \fI\%#32393\fP)
  247480. .IP \(bu 2
  247481. \fBPR\fP \fI\%#32393\fP: (\fI\%jfindlay\fP) modules.win_timezone: don\(aqt list all zones in debug log
  247482. @ \fI2016\-04\-06 18:10:43 UTC\fP
  247483. .INDENT 2.0
  247484. .IP \(bu 2
  247485. ad77d76cad Merge pull request \fI\%#32393\fP from jfindlay/win_zone
  247486. .IP \(bu 2
  247487. c01c1b9da2 modules.win_timezone: don\(aqt list all zones in debug log
  247488. .UNINDENT
  247489. .IP \(bu 2
  247490. \fBPR\fP \fI\%#32372\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32358\fP to 2015.8
  247491. @ \fI2016\-04\-06 16:35:05 UTC\fP
  247492. .INDENT 2.0
  247493. .IP \(bu 2
  247494. \fBPR\fP \fI\%#32358\fP: (\fI\%arthurlogilab\fP) outputter virt_list does not exist anymore (refs: \fI\%#32372\fP)
  247495. .IP \(bu 2
  247496. 76ae95863d Merge pull request \fI\%#32372\fP from rallytime/bp\-32358
  247497. .IP \(bu 2
  247498. 95e0fe7744 outputter virt_list does not exist anymore
  247499. .UNINDENT
  247500. .IP \(bu 2
  247501. \fBPR\fP \fI\%#32392\fP: (\fI\%multani\fP) Fix documentation on boto_asg and boto_elb modules and states
  247502. @ \fI2016\-04\-06 16:34:36 UTC\fP
  247503. .INDENT 2.0
  247504. .IP \(bu 2
  247505. c612baa119 Merge pull request \fI\%#32392\fP from multani/2015.8
  247506. .IP \(bu 2
  247507. 77c4772752 Fix documentation on boto_asg and boto_elb modules and states
  247508. .UNINDENT
  247509. .IP \(bu 2
  247510. \fBISSUE\fP \fI\%#32201\fP: (\fI\%boltronics\fP) salt\-minion memory leak waiting on master to accept key (refs: \fI\%#32373\fP)
  247511. .IP \(bu 2
  247512. \fBPR\fP \fI\%#32373\fP: (\fI\%cachedout\fP) Resolve memory leak in authentication
  247513. @ \fI2016\-04\-06 15:19:55 UTC\fP
  247514. .INDENT 2.0
  247515. .IP \(bu 2
  247516. b706d3aa4d Merge pull request \fI\%#32373\fP from cachedout/issue_32201
  247517. .IP \(bu 2
  247518. d9e4a0f372 Resolve memory leak in authentication
  247519. .UNINDENT
  247520. .IP \(bu 2
  247521. \fBPR\fP \fI\%#32126\fP: (\fI\%cro\fP) Add a couple CLI examples for the highstate outputter.
  247522. @ \fI2016\-04\-05 17:23:29 UTC\fP
  247523. .INDENT 2.0
  247524. .IP \(bu 2
  247525. 097aa7ccfc Merge pull request \fI\%#32126\fP from cro/outputter_terse_docs
  247526. .IP \(bu 2
  247527. dafe279e60 Lint
  247528. .IP \(bu 2
  247529. abc2de0119 More clarification.
  247530. .IP \(bu 2
  247531. 85221e515b Expand docs for highstate outputter. Add CLI examples for when \(aqstate_output: filter\(aq is set.
  247532. .UNINDENT
  247533. .IP \(bu 2
  247534. \fBPR\fP \fI\%#32353\fP: (\fI\%mcalmer\fP) Prevent metadata download when listing installed products
  247535. @ \fI2016\-04\-05 17:02:15 UTC\fP
  247536. .INDENT 2.0
  247537. .IP \(bu 2
  247538. eab3b99be2 Merge pull request \fI\%#32353\fP from mcalmer/prevent\-refresh\-on\-list\-installed\-products
  247539. .IP \(bu 2
  247540. e32212ad53 Prevent metadata download when listing installed products
  247541. .UNINDENT
  247542. .IP \(bu 2
  247543. \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)
  247544. .IP \(bu 2
  247545. \fBPR\fP \fI\%#32321\fP: (\fI\%abednarik\fP) Better message when minion fail to start
  247546. @ \fI2016\-04\-05 16:28:06 UTC\fP
  247547. .INDENT 2.0
  247548. .IP \(bu 2
  247549. 64abec94e7 Merge pull request \fI\%#32321\fP from abednarik/minion_start_fail_log
  247550. .IP \(bu 2
  247551. 4c72adc03a Better message when minion fail to start
  247552. .UNINDENT
  247553. .IP \(bu 2
  247554. \fBISSUE\fP \fI\%#30147\fP: (\fI\%anandnevase\fP) salt.cloud.CloudClient method create() not working for VMware driver (refs: \fI\%#32344\fP)
  247555. .IP \(bu 2
  247556. \fBPR\fP \fI\%#32345\fP: (\fI\%nmadhok\fP) [2015.8] Check if profile key exists in vm_ dict
  247557. @ \fI2016\-04\-05 16:16:36 UTC\fP
  247558. .INDENT 2.0
  247559. .IP \(bu 2
  247560. \fBPR\fP \fI\%#32344\fP: (\fI\%nmadhok\fP) Check if profile key exists in vm_ dict (refs: \fI\%#32345\fP)
  247561. .IP \(bu 2
  247562. 59aca733ea Merge pull request \fI\%#32345\fP from nmadhok/patch\-4
  247563. .IP \(bu 2
  247564. 42d7a54240 Check if profile key exists in vm_ dict
  247565. .UNINDENT
  247566. .IP \(bu 2
  247567. \fBPR\fP \fI\%#32343\fP: (\fI\%Ferbla\fP) Fixed win_wua example documentation
  247568. @ \fI2016\-04\-05 16:14:37 UTC\fP
  247569. .INDENT 2.0
  247570. .IP \(bu 2
  247571. bb033c238d Merge pull request \fI\%#32343\fP from Ferbla/2015.8
  247572. .IP \(bu 2
  247573. e2f0f16564 Fixed win_wua example documentation
  247574. .UNINDENT
  247575. .IP \(bu 2
  247576. \fBISSUE\fP \fI\%#32354\fP: (\fI\%elsmorian\fP) Incorrect capitalisation when telling users to change hash_type to SHA256 (refs: \fI\%#32360\fP)
  247577. .IP \(bu 2
  247578. \fBPR\fP \fI\%#32360\fP: (\fI\%rallytime\fP) Make sure hash_type is lowercase in master/minion config files
  247579. @ \fI2016\-04\-05 16:10:46 UTC\fP
  247580. .INDENT 2.0
  247581. .IP \(bu 2
  247582. 3219a8d176 Merge pull request \fI\%#32360\fP from rallytime/fix\-32354
  247583. .IP \(bu 2
  247584. 8b47c205df Make sure hash_type is lowercase in master/minion config files
  247585. .UNINDENT
  247586. .IP \(bu 2
  247587. \fBPR\fP \fI\%#32361\fP: (\fI\%cro\fP) SDB is no longer experimental
  247588. @ \fI2016\-04\-05 16:10:23 UTC\fP
  247589. .INDENT 2.0
  247590. .IP \(bu 2
  247591. fb530256f6 Merge pull request \fI\%#32361\fP from cro/remove_sdb_exp_flag
  247592. .IP \(bu 2
  247593. 3bbe284d89 Remove \(aqexperimental\(aq warning from SDB docs.
  247594. .UNINDENT
  247595. .IP \(bu 2
  247596. \fBPR\fP \fI\%#32336\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28639\fP to 2015.8
  247597. @ \fI2016\-04\-04 20:53:11 UTC\fP
  247598. .INDENT 2.0
  247599. .IP \(bu 2
  247600. \fBPR\fP \fI\%#28639\fP: (\fI\%RuriRyan\fP) Fixed handling of the disabled option for yumpkg (refs: \fI\%#32336\fP)
  247601. .IP \(bu 2
  247602. e1ef4a9d66 Merge pull request \fI\%#32336\fP from rallytime/bp\-28639
  247603. .IP \(bu 2
  247604. 0829143dd1 Fixed handling of the disabled option for yumpkg
  247605. .UNINDENT
  247606. .IP \(bu 2
  247607. \fBISSUE\fP \fI\%#32305\fP: (\fI\%Ch3LL\fP) Receiving NoResponse Errors when running commands that take a longer time (refs: \fI\%#32332\fP)
  247608. .IP \(bu 2
  247609. \fBPR\fP \fI\%#32332\fP: (\fI\%rallytime\fP) Don\(aqt unsubscribe from open events on the CLI too early on long\-running commands
  247610. @ \fI2016\-04\-04 20:39:39 UTC\fP
  247611. .INDENT 2.0
  247612. .IP \(bu 2
  247613. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#32332\fP)
  247614. .IP \(bu 2
  247615. 6ee5a9729c Merge pull request \fI\%#32332\fP from rallytime/fix\-32305
  247616. .IP \(bu 2
  247617. 8dc1161c8a Don\(aqt unsubscribe from open events on the CLI too early on long\-running commands
  247618. .UNINDENT
  247619. .IP \(bu 2
  247620. \fBPR\fP \fI\%#32333\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247621. @ \fI2016\-04\-04 20:06:02 UTC\fP
  247622. .INDENT 2.0
  247623. .IP \(bu 2
  247624. 22b296d2fd Merge pull request \fI\%#32333\fP from rallytime/merge\-2015.8
  247625. .IP \(bu 2
  247626. d7b4b8b081 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247627. .IP \(bu 2
  247628. fbdc47cc55 Merge pull request \fI\%#32284\fP from rallytime/config\-audit
  247629. .INDENT 2.0
  247630. .IP \(bu 2
  247631. 0491513204 Don\(aqt be so explicit. Just use string_types.
  247632. .IP \(bu 2
  247633. 083c477fd3 Use six.string_types in config default tuples
  247634. .IP \(bu 2
  247635. 7e642b8381 Audit config.py default types and values \- first sweep
  247636. .UNINDENT
  247637. .IP \(bu 2
  247638. 0a6d44e57b Merge pull request \fI\%#32302\fP from terminalmage/fix\-missing\-release
  247639. .INDENT 2.0
  247640. .IP \(bu 2
  247641. 413c371ccd Properly support packages with blank "Release" param in pkg.latest_version
  247642. .UNINDENT
  247643. .UNINDENT
  247644. .IP \(bu 2
  247645. \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)
  247646. .IP \(bu 2
  247647. \fBPR\fP \fI\%#32289\fP: (\fI\%rallytime\fP) New salt\-cloud instances should not use old hash_type default.
  247648. @ \fI2016\-04\-04 17:52:09 UTC\fP
  247649. .INDENT 2.0
  247650. .IP \(bu 2
  247651. \fBPR\fP \fI\%#31162\fP: (\fI\%isbm\fP) Remove MD5 digest from everywhere and default to SHA256 (refs: \fI\%#32289\fP)
  247652. .IP \(bu 2
  247653. 28cc054244 Merge pull request \fI\%#32289\fP from rallytime/fix\-32246
  247654. .IP \(bu 2
  247655. 66acc00c71 New salt\-cloud instances should not use old hash_type default.
  247656. .UNINDENT
  247657. .IP \(bu 2
  247658. \fBISSUE\fP \fI\%#14277\fP: (\fI\%Sacro\fP) Chocolatey.version doesn\(aqt tell you anything informative. (refs: \fI\%#32291\fP)
  247659. .IP \(bu 2
  247660. \fBPR\fP \fI\%#32291\fP: (\fI\%twangboy\fP) Fix bad output for chocolatey.version (fixes \fI\%#14277\fP)
  247661. @ \fI2016\-04\-04 17:50:54 UTC\fP
  247662. .INDENT 2.0
  247663. .IP \(bu 2
  247664. 5fb90a1040 Merge pull request \fI\%#32291\fP from twangboy/fix_14277
  247665. .IP \(bu 2
  247666. 53f6a28297 Fix problem with return on installed packages
  247667. .IP \(bu 2
  247668. f5bd004ab0 Fix chocolatey.version function
  247669. .UNINDENT
  247670. .IP \(bu 2
  247671. \fBISSUE\fP \fI\%#32183\fP: (\fI\%llamallama\fP) Salt Cloud 2015.8.8 not installing salt minions on new nodes (refs: \fI\%#32295\fP)
  247672. .IP \(bu 2
  247673. \fBPR\fP \fI\%#32295\fP: (\fI\%rallytime\fP) Test the contents of \(aqdeploy_scripts_search_path\(aq in salt.config.cloud_config
  247674. @ \fI2016\-04\-04 17:38:47 UTC\fP
  247675. .INDENT 2.0
  247676. .IP \(bu 2
  247677. edbab99164 Merge pull request \fI\%#32295\fP from rallytime/test\-cloud\-deploy\-dir
  247678. .IP \(bu 2
  247679. 4037476f40 Patch call to os.path.isdir so we know both search paths are in tuple
  247680. .IP \(bu 2
  247681. 49a4eec051 Test the contents of \(aqdeploy_scripts_search_path\(aq in salt.config.cloud_config
  247682. .UNINDENT
  247683. .IP \(bu 2
  247684. \fBISSUE\fP \fI\%#23617\fP: (\fI\%porterjamesj\fP) file.managed with proxy broken in 2015.5 (refs: \fI\%#32315\fP)
  247685. .IP \(bu 2
  247686. \fBPR\fP \fI\%#32315\fP: (\fI\%ahus1\fP) fixing file.managed with requests lib
  247687. @ \fI2016\-04\-04 17:20:11 UTC\fP
  247688. .INDENT 2.0
  247689. .IP \(bu 2
  247690. 4389680bc5 Merge pull request \fI\%#32315\fP from ahus1/fix_file_managed_http_requests
  247691. .IP \(bu 2
  247692. a867d23383 ensure streaming mode (use for example by file.managed) will works for requests backend
  247693. .UNINDENT
  247694. .IP \(bu 2
  247695. \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)
  247696. .IP \(bu 2
  247697. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#742\fP: (\fI\%dennisfoconnor\fP) Non\-Development Script Broken on Amazon Linux (refs: \fI\%#32316\fP)
  247698. .IP \(bu 2
  247699. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#695\fP: (\fI\%mtippett\fP) Install Failures With Raspbian Jessie (refs: \fI\%#32316\fP)
  247700. .IP \(bu 2
  247701. \fBPR\fP \fI\%#32316\fP: (\fI\%vutny\fP) Update Salt Bootstrap tutorial
  247702. @ \fI2016\-04\-04 17:18:12 UTC\fP
  247703. .INDENT 2.0
  247704. .IP \(bu 2
  247705. 9065201761 Merge pull request \fI\%#32316\fP from vutny/update\-bootstrap\-tutorial
  247706. .IP \(bu 2
  247707. b9698f015d Update Salt Bootstrap tutorial
  247708. .UNINDENT
  247709. .IP \(bu 2
  247710. \fBPR\fP \fI\%#32325\fP: (\fI\%bdrung\fP) Re\-add shebang to ssh\-id\-wrapper shell script
  247711. @ \fI2016\-04\-04 17:08:41 UTC\fP
  247712. .INDENT 2.0
  247713. .IP \(bu 2
  247714. 352f3c01d1 Merge pull request \fI\%#32325\fP from bdrung/fix\-shebang
  247715. .IP \(bu 2
  247716. ffe585f078 Re\-add shebang to ssh\-id\-wrapper shell script
  247717. .UNINDENT
  247718. .IP \(bu 2
  247719. \fBPR\fP \fI\%#32326\fP: (\fI\%bdrung\fP) Fix typos
  247720. @ \fI2016\-04\-04 16:41:41 UTC\fP
  247721. .INDENT 2.0
  247722. .IP \(bu 2
  247723. f16e332b3a Merge pull request \fI\%#32326\fP from bdrung/fix\-typos
  247724. .IP \(bu 2
  247725. a7db152333 Fix typo dont \-> don\(aqt
  247726. .IP \(bu 2
  247727. d4c037301b Fix typo missmatch \-> mismatch
  247728. .IP \(bu 2
  247729. 70dba70ff0 Fix typo additonal \-> addition
  247730. .IP \(bu 2
  247731. 68c60903aa Fix typo mutliple \-> multiple
  247732. .IP \(bu 2
  247733. 0f2c779b90 Fix typo fucntion \-> function
  247734. .IP \(bu 2
  247735. 0c9e4c8c80 Fix typo avilable \-> available
  247736. .IP \(bu 2
  247737. 920abe2ec7 Fix typo formated \-> formatted
  247738. .IP \(bu 2
  247739. e56dd4bb23 Fix typo ommitted \-> omitted
  247740. .IP \(bu 2
  247741. f99e6f1f13 Fix typo ouptut \-> output
  247742. .IP \(bu 2
  247743. d3804094f2 Fix typo wether \-> whether
  247744. .IP \(bu 2
  247745. 538fb6fae2 Fix typo perfomed \-> performed
  247746. .IP \(bu 2
  247747. db7af998ee Fix typo santized \-> sanitized
  247748. .IP \(bu 2
  247749. d7af01da2b Fix typo coresponding \-> corresponding
  247750. .IP \(bu 2
  247751. 301e78b5be Fix typo vaules \-> values
  247752. .IP \(bu 2
  247753. 8cada9573f Fix typos of retrieve
  247754. .IP \(bu 2
  247755. b484d6f9c9 Fix typo directorys \-> directories
  247756. .UNINDENT
  247757. .IP \(bu 2
  247758. \fBPR\fP \fI\%#32300\fP: (\fI\%twangboy\fP) Add documentation to disable winrepo/winrepo_ng
  247759. @ \fI2016\-04\-01 21:23:09 UTC\fP
  247760. .INDENT 2.0
  247761. .IP \(bu 2
  247762. 664043d7e7 Merge pull request \fI\%#32300\fP from twangboy/fix_28767
  247763. .IP \(bu 2
  247764. c971a3b054 Add documentation for disabled the winrepos
  247765. .UNINDENT
  247766. .IP \(bu 2
  247767. \fBISSUE\fP \fI\%#18429\fP: (\fI\%somenick\fP) Pillars passed from command\-line override pillar subtrees instead of merging (refs: \fI\%#32288\fP)
  247768. .IP \(bu 2
  247769. \fBPR\fP \fI\%#32288\fP: (\fI\%terminalmage\fP) use dictupdate.merge instead of dict.update to merge CLI pillar overrides
  247770. @ \fI2016\-04\-01 16:30:30 UTC\fP
  247771. .INDENT 2.0
  247772. .IP \(bu 2
  247773. 42a25f6b9d Merge pull request \fI\%#32288\fP from terminalmage/issue18429
  247774. .IP \(bu 2
  247775. db31732137 use dictupdate.merge instead of dict.update to merge CLI pillar overrides
  247776. .UNINDENT
  247777. .IP \(bu 2
  247778. \fBPR\fP \fI\%#32243\fP: (\fI\%isbm\fP) Ensure latest pkg.info_installed ensure latest
  247779. @ \fI2016\-03\-31 16:09:59 UTC\fP
  247780. .INDENT 2.0
  247781. .IP \(bu 2
  247782. 3e374e7ec6 Merge pull request \fI\%#32243\fP from isbm/isbm\-zypper\-list\-installed\-ensure\-latest
  247783. .IP \(bu 2
  247784. fba3d509ac Fix the documentation
  247785. .IP \(bu 2
  247786. 73ad8a2bfc Fix lint
  247787. .IP \(bu 2
  247788. f07c7ea792 Add lowpkg tests for version comparison
  247789. .IP \(bu 2
  247790. afdf451d87 Remove tests from the zypper_test that belongs to rpm_test
  247791. .IP \(bu 2
  247792. 3706a21c29 Fix condition from returning None on 0
  247793. .IP \(bu 2
  247794. 0a68ebff16 Remove suse/redhat checks, refactor code.
  247795. .IP \(bu 2
  247796. 30c8f7216b Move "string to EVR" function to the utilities
  247797. .IP \(bu 2
  247798. fb014a40b0 Sort installed pkgs data by version_cmp
  247799. .IP \(bu 2
  247800. b57e439d57 Merge yumpkg\(aqs and zypper\(aqs version_cmp for a common use
  247801. .IP \(bu 2
  247802. ebd13a283c Remove version_cmp from Zypper module and use just lowpkg alias
  247803. .IP \(bu 2
  247804. b46d5b526a Remove version_cmp from the yumpkg and use just a lowpkg alias
  247805. .IP \(bu 2
  247806. f4d9881e61 Force\-sort the RPM output to ensure latest version of the multi\-package on top of the list.
  247807. .UNINDENT
  247808. .IP \(bu 2
  247809. \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)
  247810. .IP \(bu 2
  247811. \fBPR\fP \fI\%#32268\fP: (\fI\%ticosax\fP) [dockerng] Improve detection for older versions of docker\-py
  247812. @ \fI2016\-03\-31 14:51:46 UTC\fP
  247813. .INDENT 2.0
  247814. .IP \(bu 2
  247815. \fBPR\fP \fI\%#32262\fP: (\fI\%arthurlogilab\fP) Catch Attribute Error when docker.version_info doesn\(aqt exist (refs: \fI\%#32268\fP)
  247816. .IP \(bu 2
  247817. 88fa3c5f71 Merge pull request \fI\%#32268\fP from ticosax/handle\-dockerpy\-old
  247818. .IP \(bu 2
  247819. 05116aaa40 Improve detection for older versions of docker\-py
  247820. .UNINDENT
  247821. .IP \(bu 2
  247822. \fBPR\fP \fI\%#32258\fP: (\fI\%jacobhammons\fP) Replaces incorrect reference to \fImaster_alive_check\fP
  247823. @ \fI2016\-03\-31 14:41:09 UTC\fP
  247824. .INDENT 2.0
  247825. .IP \(bu 2
  247826. a491897a3b Merge pull request \fI\%#32258\fP from jacobhammons/alive\-interval\-docs
  247827. .IP \(bu 2
  247828. ff8ca5ac2e Replaces incorrect reference to \fImaster_alive_check\fP with \fImaster_alive_interval\fP in docs
  247829. .UNINDENT
  247830. .IP \(bu 2
  247831. \fBPR\fP \fI\%#32254\fP: (\fI\%twangboy\fP) Fix Display Name with spaces in win_servermanager
  247832. @ \fI2016\-03\-31 14:38:22 UTC\fP
  247833. .INDENT 2.0
  247834. .IP \(bu 2
  247835. 8c68d8ac41 Merge pull request \fI\%#32254\fP from twangboy/fix_31334
  247836. .IP \(bu 2
  247837. e5f02c52be Fix a pylint error
  247838. .IP \(bu 2
  247839. 5ca4ad6675 Fix unit tests for state
  247840. .IP \(bu 2
  247841. 12d530f8f0 Fix win_servermanager state
  247842. .IP \(bu 2
  247843. b26cb76abb Fix unit tests
  247844. .IP \(bu 2
  247845. 1d5bcee390 Fix 31344
  247846. .UNINDENT
  247847. .IP \(bu 2
  247848. \fBPR\fP \fI\%#32248\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247849. @ \fI2016\-03\-30 21:10:01 UTC\fP
  247850. .INDENT 2.0
  247851. .IP \(bu 2
  247852. 0f5e67de5d Merge pull request \fI\%#32248\fP from rallytime/merge\-2015.8
  247853. .IP \(bu 2
  247854. d743f8cc4e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247855. .INDENT 2.0
  247856. .IP \(bu 2
  247857. 5d08db7c92 Merge pull request \fI\%#32162\fP from terminalmage/issue31963
  247858. .INDENT 2.0
  247859. .IP \(bu 2
  247860. 5c1bdb812c Fix pkgrepo integration test
  247861. .IP \(bu 2
  247862. e7fb3095ce Properly handle yum/zypper repositories in pkgrepo.managed
  247863. .IP \(bu 2
  247864. add2111fec Use six.iteritems instead of dict.items
  247865. .IP \(bu 2
  247866. 6c21881c38 Docstring tweaks
  247867. .IP \(bu 2
  247868. ecbb78b649 Remove useless function
  247869. .IP \(bu 2
  247870. 06f3309552 Normalize variable naming to match other functions
  247871. .IP \(bu 2
  247872. 690537ca8b Look for apt\-add\-repository in PATH instead of assuming it\(aqs there
  247873. .IP \(bu 2
  247874. 709d80bb1b aptpkg: Accept **kwargs instead of a dict for pkg.expand_repo_def
  247875. .UNINDENT
  247876. .IP \(bu 2
  247877. 4fcdaab428 Merge pull request \fI\%#32223\fP from twangboy/fix_31976
  247878. .INDENT 2.0
  247879. .IP \(bu 2
  247880. b7fcae97ce Create minion.d directory, fixes \fI\%#31976\fP
  247881. .UNINDENT
  247882. .IP \(bu 2
  247883. 3309ff6a29 Merge pull request \fI\%#32218\fP from cachedout/issue_31501
  247884. .INDENT 2.0
  247885. .IP \(bu 2
  247886. 6795d6aef0 Only display error when tty is True in salt\-ssh
  247887. .UNINDENT
  247888. .IP \(bu 2
  247889. 6e0cb22c96 Merge pull request \fI\%#32196\fP from jtand/cherrypy_pam_test_lint_fix
  247890. .INDENT 2.0
  247891. .IP \(bu 2
  247892. bd3942e0fd Fixed pylint error in app_pam_test.py
  247893. .UNINDENT
  247894. .UNINDENT
  247895. .UNINDENT
  247896. .IP \(bu 2
  247897. \fBISSUE\fP \fI\%#32169\fP: (\fI\%sknutsonsf\fP) CommandNotFoundError: update\-rc.d during service.enabled on Centos 7 (refs: \fI\%#32230\fP)
  247898. .IP \(bu 2
  247899. \fBPR\fP \fI\%#32230\fP: (\fI\%terminalmage\fP) systemd.py: Support both update\-rc.d and chkconfig as managers of sysv services
  247900. @ \fI2016\-03\-30 21:09:43 UTC\fP
  247901. .INDENT 2.0
  247902. .IP \(bu 2
  247903. 6216c37885 Merge pull request \fI\%#32230\fP from terminalmage/issue32169
  247904. .IP \(bu 2
  247905. 45af3e902a systemd.py: Support both update\-rc.d and chkconfig as managers of sysv services
  247906. .UNINDENT
  247907. .IP \(bu 2
  247908. \fBPR\fP \fI\%#32249\fP: (\fI\%jacobhammons\fP) Fixes windows download paths to account for patch
  247909. @ \fI2016\-03\-30 20:26:53 UTC\fP
  247910. .INDENT 2.0
  247911. .IP \(bu 2
  247912. bde2a1fc98 Merge pull request \fI\%#32249\fP from jacobhammons/dot8
  247913. .IP \(bu 2
  247914. 50d1df2482 Fixes windows download paths to account for patch
  247915. .UNINDENT
  247916. .IP \(bu 2
  247917. \fBPR\fP \fI\%#32221\fP: (\fI\%dmurphy18\fP) Fix version check, fix extracting Major and Minor versions from __ver…
  247918. @ \fI2016\-03\-30 14:50:31 UTC\fP
  247919. .INDENT 2.0
  247920. .IP \(bu 2
  247921. 1d9321d043 Merge pull request \fI\%#32221\fP from dmurphy18/fix_version_check
  247922. .IP \(bu 2
  247923. 96cf024e63 Fix version check, fix extracting Major and Minor versions from __version__
  247924. .UNINDENT
  247925. .IP \(bu 2
  247926. \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)
  247927. .IP \(bu 2
  247928. \fBPR\fP \fI\%#32227\fP: (\fI\%twangboy\fP) Remove list2cmdline usage from win_service.py
  247929. @ \fI2016\-03\-30 14:43:17 UTC\fP
  247930. .INDENT 2.0
  247931. .IP \(bu 2
  247932. 22bd1e6b29 Merge pull request \fI\%#32227\fP from twangboy/fix_32031
  247933. .IP \(bu 2
  247934. 58772b036d Remove list2cmdline usage
  247935. .UNINDENT
  247936. .IP \(bu 2
  247937. \fBPR\fP \fI\%#32239\fP: (\fI\%anlutro\fP) Add state file name to warning log line
  247938. @ \fI2016\-03\-30 14:37:54 UTC\fP
  247939. .INDENT 2.0
  247940. .IP \(bu 2
  247941. 7fce438b67 Merge pull request \fI\%#32239\fP from alprs/fix\-file_log_warning
  247942. .IP \(bu 2
  247943. 72adae3702 add state file name to log line
  247944. .UNINDENT
  247945. .IP \(bu 2
  247946. \fBISSUE\fP \fI\%#31365\fP: (\fI\%cwicklein\fP) osrelease_info broken for CentOS 7 (refs: \fI\%#32215\fP)
  247947. .IP \(bu 2
  247948. \fBPR\fP \fI\%#32215\fP: (\fI\%DmitryKuzmenko\fP) rhel oscodename
  247949. @ \fI2016\-03\-29 19:14:50 UTC\fP
  247950. .INDENT 2.0
  247951. .IP \(bu 2
  247952. 3c3028f347 Merge pull request \fI\%#32215\fP from DSRCompany/issues/rhel_oscodename
  247953. .IP \(bu 2
  247954. dc2a3b81ac Ignore lsb codename from os\-release for newest RHEL
  247955. .UNINDENT
  247956. .IP \(bu 2
  247957. \fBPR\fP \fI\%#32217\fP: (\fI\%jacobhammons\fP) 2015.8.8.2 release notes
  247958. @ \fI2016\-03\-29 17:53:22 UTC\fP
  247959. .INDENT 2.0
  247960. .IP \(bu 2
  247961. bf59f06733 Merge pull request \fI\%#32217\fP from jacobhammons/dot8
  247962. .IP \(bu 2
  247963. 596444e2b4 2015.8.8.2 release notes Adds banner notifiying user when they are viewing release notes for an old release
  247964. .UNINDENT
  247965. .IP \(bu 2
  247966. \fBISSUE\fP \fI\%#31844\fP: (\fI\%Talkless\fP) slspath is not documented (refs: \fI\%#32197\fP)
  247967. .IP \(bu 2
  247968. \fBPR\fP \fI\%#32212\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32197\fP to 2015.8
  247969. @ \fI2016\-03\-29 15:50:58 UTC\fP
  247970. .INDENT 2.0
  247971. .IP \(bu 2
  247972. \fBPR\fP \fI\%#32197\fP: (\fI\%twellspring\fP) documentation fix issue 31844 (refs: \fI\%#32212\fP)
  247973. .IP \(bu 2
  247974. ab8b70d985 Merge pull request \fI\%#32212\fP from rallytime/bp\-32197
  247975. .IP \(bu 2
  247976. 5fdd81ace9 documentation fix issue 31844
  247977. .UNINDENT
  247978. .IP \(bu 2
  247979. \fBISSUE\fP \fI\%#31931\fP: (\fI\%gravyboat\fP) Ordering States documentation should note top.sls adheres to this rule (refs: \fI\%#32193\fP)
  247980. .IP \(bu 2
  247981. \fBPR\fP \fI\%#32211\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32210\fP to 2015.8
  247982. @ \fI2016\-03\-29 15:50:42 UTC\fP
  247983. .INDENT 2.0
  247984. .IP \(bu 2
  247985. \fBPR\fP \fI\%#32210\fP: (\fI\%rallytime\fP) Merge \fI\%#32193\fP with pylint fix (refs: \fI\%#32211\fP)
  247986. .IP \(bu 2
  247987. \fBPR\fP \fI\%#32193\fP: (\fI\%twellspring\fP) Documentation fix 31931 (refs: \fI\%#32210\fP, \fI\%#32211\fP)
  247988. .IP \(bu 2
  247989. 200d82cc3e Merge pull request \fI\%#32211\fP from rallytime/bp\-32210
  247990. .IP \(bu 2
  247991. 7b9c05487c Whitespace fix.
  247992. .IP \(bu 2
  247993. abd432746c documentation\-fix\-31931
  247994. .IP \(bu 2
  247995. 79086f8f04 service.py documentation update for 32084
  247996. .UNINDENT
  247997. .IP \(bu 2
  247998. \fBISSUE\fP \fI\%#32084\fP: (\fI\%guettli\fP) Docs: Please provide a link from "service.running" to "watch" (refs: \fI\%#32192\fP)
  247999. .IP \(bu 2
  248000. \fBPR\fP \fI\%#32209\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32208\fP to 2015.8
  248001. @ \fI2016\-03\-29 15:50:27 UTC\fP
  248002. .INDENT 2.0
  248003. .IP \(bu 2
  248004. \fBPR\fP \fI\%#32208\fP: (\fI\%rallytime\fP) Merge \fI\%#32192\fP with pylint fix (refs: \fI\%#32209\fP)
  248005. .IP \(bu 2
  248006. \fBPR\fP \fI\%#32192\fP: (\fI\%twellspring\fP) service.py documentation update for 32084 (refs: \fI\%#32208\fP, \fI\%#32209\fP)
  248007. .IP \(bu 2
  248008. 32da8d4c57 Merge pull request \fI\%#32209\fP from rallytime/bp\-32208
  248009. .IP \(bu 2
  248010. 777a2c4e83 Whitespace fix.
  248011. .IP \(bu 2
  248012. e3db0640ec service.py documentation update for 32084
  248013. .UNINDENT
  248014. .IP \(bu 2
  248015. \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)
  248016. .IP \(bu 2
  248017. \fBPR\fP \fI\%#32204\fP: (\fI\%ticosax\fP) [dockerng] Consider labels carried by the image when comparing user defined labels.
  248018. @ \fI2016\-03\-29 14:39:22 UTC\fP
  248019. .INDENT 2.0
  248020. .IP \(bu 2
  248021. 7154104591 Merge pull request \fI\%#32204\fP from ticosax/label\-from\-image
  248022. .IP \(bu 2
  248023. c989ae5a7e Merge user defined labels with one carried by the image
  248024. .UNINDENT
  248025. .IP \(bu 2
  248026. \fBPR\fP \fI\%#32186\fP: (\fI\%rallytime\fP) Add some "best practices" information to test documentation
  248027. @ \fI2016\-03\-29 00:22:48 UTC\fP
  248028. .INDENT 2.0
  248029. .IP \(bu 2
  248030. 5877a19f59 Merge pull request \fI\%#32186\fP from rallytime/testing\-docs
  248031. .IP \(bu 2
  248032. 40d09c822e Add some "best practices" information to test documentation
  248033. .UNINDENT
  248034. .IP \(bu 2
  248035. \fBPR\fP \fI\%#32176\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  248036. @ \fI2016\-03\-28 23:16:09 UTC\fP
  248037. .INDENT 2.0
  248038. .IP \(bu 2
  248039. b44adffc12 Merge pull request \fI\%#32176\fP from rallytime/merge\-2015.8
  248040. .IP \(bu 2
  248041. e8658697a6 Pylint fix for integration import
  248042. .IP \(bu 2
  248043. 527bc3e491 Pylint fix
  248044. .IP \(bu 2
  248045. e9abd2d420 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  248046. .IP \(bu 2
  248047. 6b8b8b51c0 Merge pull request \fI\%#32154\fP from Ch3LL/ch3ll_pam_2015.5
  248048. .INDENT 2.0
  248049. .IP \(bu 2
  248050. ba605b0128 fix more pylint and add ability to close cherrypy engine
  248051. .IP \(bu 2
  248052. 2d4dc4da05 add teardown call
  248053. .IP \(bu 2
  248054. d115878714 fix pylint error
  248055. .IP \(bu 2
  248056. 4c1ab082b6 add pam salt\-api tests
  248057. .UNINDENT
  248058. .IP \(bu 2
  248059. 230443be6c Merge pull request \fI\%#32170\fP from gtmanfred/lxc_cloud_name
  248060. .INDENT 2.0
  248061. .IP \(bu 2
  248062. eb7d82e7be add name for lxc for use with cloud cache
  248063. .UNINDENT
  248064. .IP \(bu 2
  248065. 32b0421a34 Merge pull request \fI\%#32164\fP from terminalmage/issue31731\-2015.5
  248066. .INDENT 2.0
  248067. .IP \(bu 2
  248068. 18439c4f89 Make __virtual__ for rhservice.py more robust (2015.5 branch)
  248069. .UNINDENT
  248070. .IP \(bu 2
  248071. 6212e9aa56 Merge pull request \fI\%#32141\fP from paclat/issue_32108
  248072. .INDENT 2.0
  248073. .IP \(bu 2
  248074. 72c5d12d43 fixes 32108
  248075. .UNINDENT
  248076. .UNINDENT
  248077. .IP \(bu 2
  248078. \fBISSUE\fP \fI\%#27605\fP: (\fI\%jmcook1\fP) nacl module documentation/possible bug (refs: \fI\%#32163\fP)
  248079. .IP \(bu 2
  248080. \fBPR\fP \fI\%#32163\fP: (\fI\%rallytime\fP) Update nacl.config docs to use key value instead of \(aqNone\(aq
  248081. @ \fI2016\-03\-28 14:46:40 UTC\fP
  248082. .INDENT 2.0
  248083. .IP \(bu 2
  248084. 1afb048801 Merge pull request \fI\%#32163\fP from rallytime/fix\-27605
  248085. .IP \(bu 2
  248086. e2d09f57dc Update nacl.config docs to use key value instead of \(aqNone\(aq
  248087. .UNINDENT
  248088. .IP \(bu 2
  248089. \fBPR\fP \fI\%#32166\fP: (\fI\%vutny\fP) \fIsalt.states.file\fP: correct examples with multiline YAML string
  248090. @ \fI2016\-03\-28 14:45:32 UTC\fP
  248091. .INDENT 2.0
  248092. .IP \(bu 2
  248093. c08ba3f8a9 Merge pull request \fI\%#32166\fP from vutny/fix\-multiline\-yaml\-string\-example
  248094. .IP \(bu 2
  248095. 34aaea93b4 Another indentation fix in \fIsalt.states.alternatives\fP
  248096. .IP \(bu 2
  248097. 85d0576583 \fIsalt.states.file\fP: correct examples with multiline YAML string
  248098. .UNINDENT
  248099. .IP \(bu 2
  248100. \fBPR\fP \fI\%#32168\fP: (\fI\%rallytime\fP) Lint 2015.8
  248101. @ \fI2016\-03\-27 18:26:50 UTC\fP
  248102. .INDENT 2.0
  248103. .IP \(bu 2
  248104. f2e986cf65 Merge pull request \fI\%#32168\fP from rallytime/lint\-2015.8
  248105. .IP \(bu 2
  248106. ba6b19d72c Lint 2015.8
  248107. .UNINDENT
  248108. .IP \(bu 2
  248109. \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)
  248110. .IP \(bu 2
  248111. \fBPR\fP \fI\%#32165\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (refs: \fI\%#32164\fP)
  248112. @ \fI2016\-03\-27 18:21:16 UTC\fP
  248113. .INDENT 2.0
  248114. .IP \(bu 2
  248115. \fBPR\fP \fI\%#32164\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (2015.5 branch) (refs: \fI\%#32165\fP)
  248116. .IP \(bu 2
  248117. ae472617af Merge pull request \fI\%#32165\fP from terminalmage/issue31731
  248118. .IP \(bu 2
  248119. 559eb7da52 Make __virtual__ for rhservice.py more robust
  248120. .UNINDENT
  248121. .IP \(bu 2
  248122. \fBISSUE\fP \fI\%#31944\fP: (\fI\%Inveracity\fP) traceback in _determine_beacon_config(...) in beacon/__init__.py line 105 (refs: \fI\%#32160\fP)
  248123. .IP \(bu 2
  248124. \fBPR\fP \fI\%#32160\fP: (\fI\%cachedout\fP) Fix beacon tutorial docs
  248125. @ \fI2016\-03\-25 22:32:51 UTC\fP
  248126. .INDENT 2.0
  248127. .IP \(bu 2
  248128. 63c8bf3542 Merge pull request \fI\%#32160\fP from cachedout/issue_31944
  248129. .IP \(bu 2
  248130. 104ada5b6f Fix beacon tutorial docs
  248131. .UNINDENT
  248132. .IP \(bu 2
  248133. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#32332\fP)
  248134. @ \fI2016\-03\-25 16:55:47 UTC\fP
  248135. .INDENT 2.0
  248136. .IP \(bu 2
  248137. bff94a5160 Merge pull request \fI\%#32145\fP from paclat/issue_29817
  248138. .IP \(bu 2
  248139. 5d970ca031 fixes 29817
  248140. .UNINDENT
  248141. .IP \(bu 2
  248142. \fBPR\fP \fI\%#32133\fP: (\fI\%basepi\fP) Pass eauth user/groups through salt\-api to destination functions
  248143. @ \fI2016\-03\-25 16:49:46 UTC\fP
  248144. .INDENT 2.0
  248145. .IP \(bu 2
  248146. 245249d347 Merge pull request \fI\%#32133\fP from basepi/api_user_passthrough
  248147. .IP \(bu 2
  248148. 41ba309839 Change the kwarg names to be more specific
  248149. .IP \(bu 2
  248150. 40f7e596d8 Pass eauth user/groups through salt\-api to destination functions
  248151. .UNINDENT
  248152. .IP \(bu 2
  248153. \fBPR\fP \fI\%#32127\fP: (\fI\%rallytime\fP) Add runners to __salt__ docs
  248154. @ \fI2016\-03\-25 15:54:02 UTC\fP
  248155. .INDENT 2.0
  248156. .IP \(bu 2
  248157. a09aa18036 Merge pull request \fI\%#32127\fP from rallytime/dunder\-docs
  248158. .IP \(bu 2
  248159. 482690ef33 Add note to docs about __salt__ referencing runner modules
  248160. .IP \(bu 2
  248161. a11d2e413a Add runners to __salt__ docs
  248162. .UNINDENT
  248163. .IP \(bu 2
  248164. \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)
  248165. .IP \(bu 2
  248166. \fBPR\fP \fI\%#32143\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover.
  248167. @ \fI2016\-03\-25 15:23:09 UTC\fP
  248168. .INDENT 2.0
  248169. .IP \(bu 2
  248170. \fBPR\fP \fI\%#31382\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover (refs: \fI\%#32143\fP)
  248171. .IP \(bu 2
  248172. cc224b877a Merge pull request \fI\%#32143\fP from DSRCompany/issues/30183_failover_fix
  248173. .IP \(bu 2
  248174. 93d34a2573 Set auth retry count to 0 if multimaster mode is failover.
  248175. .UNINDENT
  248176. .IP \(bu 2
  248177. \fBPR\fP \fI\%#32134\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  248178. @ \fI2016\-03\-25 15:22:08 UTC\fP
  248179. .INDENT 2.0
  248180. .IP \(bu 2
  248181. 0679a61871 Merge pull request \fI\%#32134\fP from rallytime/merge\-2015.8
  248182. .IP \(bu 2
  248183. 6886681410 Fix test failures
  248184. .IP \(bu 2
  248185. 7554d0f42d Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  248186. .INDENT 2.0
  248187. .IP \(bu 2
  248188. bdd7ea89d5 Merge pull request \fI\%#32129\fP from terminalmage/issue32044
  248189. .INDENT 2.0
  248190. .IP \(bu 2
  248191. 34ca1ea12e Change type check errors to debug loglevel
  248192. .IP \(bu 2
  248193. 5462081488 Support multiple valid option types when performing type checks
  248194. .UNINDENT
  248195. .IP \(bu 2
  248196. c42014eb54 Merge pull request \fI\%#32056\fP from bstevenson/fix\-list_absent
  248197. .INDENT 2.0
  248198. .IP \(bu 2
  248199. 1500aae027 set deleted value to list
  248200. .IP \(bu 2
  248201. 1dc8f5f289 unit test update
  248202. .IP \(bu 2
  248203. 39adf86fec Fixed negation logic
  248204. .IP \(bu 2
  248205. be9388173b Removed has_key in lieu of in
  248206. .IP \(bu 2
  248207. e48593ed81 Comments and Changes output fixes
  248208. .IP \(bu 2
  248209. b98f5517de Updated to conform to proper ret values
  248210. .IP \(bu 2
  248211. d18b4be80b remove whitespace end of line 186:q
  248212. .IP \(bu 2
  248213. d2b89c85ad fix formating
  248214. .IP \(bu 2
  248215. 103cee9e29 cleaned up formating
  248216. .IP \(bu 2
  248217. 7a4d7f0bff added whitespace
  248218. .IP \(bu 2
  248219. 8ea5b545b0 Loop through list values in list_absent
  248220. .UNINDENT
  248221. .IP \(bu 2
  248222. 848ce5647f Merge pull request \fI\%#32096\fP from rallytime/bp\-32065
  248223. .INDENT 2.0
  248224. .IP \(bu 2
  248225. 36a9d6a374 Fix an issue with the minion targeting example
  248226. .UNINDENT
  248227. .IP \(bu 2
  248228. 9b332d48b9 Merge pull request \fI\%#32104\fP from jacobhammons/dot10
  248229. .INDENT 2.0
  248230. .IP \(bu 2
  248231. b9fc882a1e One additional known issue for 2015.5.10 release notes
  248232. .UNINDENT
  248233. .IP \(bu 2
  248234. ff51d548e1 Merge pull request \fI\%#32100\fP from jacobhammons/dot10
  248235. .INDENT 2.0
  248236. .IP \(bu 2
  248237. 544a1661ce 2015.5.10 release docs
  248238. .UNINDENT
  248239. .IP \(bu 2
  248240. 72a20f9799 Merge pull request \fI\%#32038\fP from terminalmage/issue32037
  248241. .INDENT 2.0
  248242. .IP \(bu 2
  248243. 8b2d983324 Add reference to state tutorial to state.apply docstring
  248244. .IP \(bu 2
  248245. 9b4fe8443e Move highstate usage details to top of state.apply docstring
  248246. .IP \(bu 2
  248247. 74ee8c54bc Clarify prior role of state.highstate in states tutorial
  248248. .IP \(bu 2
  248249. 1b97e4a3df Improve state module docs, replace references to state.highstate/state.sls with state.apply
  248250. .UNINDENT
  248251. .UNINDENT
  248252. .UNINDENT
  248253. .IP \(bu 2
  248254. \fBISSUE\fP \fI\%#26129\fP: (\fI\%GreatSnoopy\fP) salt yumpkg implementation painfully slow in some circumstances (refs: \fI\%#32091\fP)
  248255. .IP \(bu 2
  248256. \fBPR\fP \fI\%#32091\fP: (\fI\%clarkperkins\fP) Fixed the regression in 410da78
  248257. @ \fI2016\-03\-25 14:53:08 UTC\fP
  248258. .INDENT 2.0
  248259. .IP \(bu 2
  248260. ad924226ca Merge pull request \fI\%#32091\fP from clarkperkins/bugfix/yumpkg\-repoquery
  248261. .IP \(bu 2
  248262. d2119ea608 Added comment so this issue doesn\(aqt regress again
  248263. .IP \(bu 2
  248264. 1455fab9e3 Fixed the regression in 410da78
  248265. .UNINDENT
  248266. .IP \(bu 2
  248267. \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)
  248268. .IP \(bu 2
  248269. \fBPR\fP \fI\%#32135\fP: (\fI\%rallytime\fP) [2015.8] Support multiple valid option types when performing type checks
  248270. @ \fI2016\-03\-24 22:42:28 UTC\fP
  248271. .INDENT 2.0
  248272. .IP \(bu 2
  248273. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32135\fP, \fI\%#32284\fP)
  248274. .IP \(bu 2
  248275. b84908d51f Merge pull request \fI\%#32135\fP from rallytime/32129\-to\-2915.8
  248276. .IP \(bu 2
  248277. 7d43bdd721 Change type check errors to debug loglevel
  248278. .IP \(bu 2
  248279. ed5abf4381 Support multiple valid option types when performing type checks
  248280. .UNINDENT
  248281. .IP \(bu 2
  248282. \fBPR\fP \fI\%#31760\fP: (\fI\%sakateka\fP) SMinion need wait future from eval_master
  248283. @ \fI2016\-03\-24 22:08:56 UTC\fP
  248284. .INDENT 2.0
  248285. .IP \(bu 2
  248286. b23a08f3f4 Merge pull request \fI\%#31760\fP from sakateka/fix_master_switch
  248287. .IP \(bu 2
  248288. 3d7874029a Run self.eval_master in self.io_loop.run_sync
  248289. .IP \(bu 2
  248290. 3b4425652b SMinion need wait future from eval_master
  248291. .UNINDENT
  248292. .IP \(bu 2
  248293. \fBPR\fP \fI\%#32106\fP: (\fI\%jfindlay\fP) update suse master service patch
  248294. @ \fI2016\-03\-24 21:34:01 UTC\fP
  248295. .INDENT 2.0
  248296. .IP \(bu 2
  248297. 5efe37ddc8 Merge pull request \fI\%#32106\fP from jfindlay/suse_patch
  248298. .IP \(bu 2
  248299. 8de84b4251 update suse master service patch
  248300. .UNINDENT
  248301. .IP \(bu 2
  248302. \fBPR\fP \fI\%#32130\fP: (\fI\%jacobhammons\fP) Added known issues 32004 and 32044 to 2015.8.8 release notes
  248303. @ \fI2016\-03\-24 19:59:41 UTC\fP
  248304. .INDENT 2.0
  248305. .IP \(bu 2
  248306. 939c1b17d5 Merge pull request \fI\%#32130\fP from jacobhammons/dot8
  248307. .IP \(bu 2
  248308. 21eee08842 Added known issues 32004 and 32044 to 2015.8.8 release notes
  248309. .UNINDENT
  248310. .IP \(bu 2
  248311. \fBPR\fP \fI\%#32105\fP: (\fI\%clarkperkins\fP) Fixed invalid deploy_scripts_search_path
  248312. @ \fI2016\-03\-24 17:36:27 UTC\fP
  248313. .INDENT 2.0
  248314. .IP \(bu 2
  248315. 2d8abf4717 Merge pull request \fI\%#32105\fP from clarkperkins/bugfix/invalid\-deploy\-script\-path
  248316. .IP \(bu 2
  248317. 5a9f4e947e Fixed invalid deploy_scripts_search_path
  248318. .UNINDENT
  248319. .IP \(bu 2
  248320. \fBISSUE\fP \fI\%#32114\fP: (\fI\%tomlaredo\fP) Wrong validation type for file_ignore_glob key (refs: \fI\%#32117\fP)
  248321. .IP \(bu 2
  248322. \fBPR\fP \fI\%#32117\fP: (\fI\%tomlaredo\fP) Fixed validation type for file_ignore_glob
  248323. @ \fI2016\-03\-24 17:28:22 UTC\fP
  248324. .INDENT 2.0
  248325. .IP \(bu 2
  248326. fe4112d7f9 Merge pull request \fI\%#32117\fP from rodacom/fix_32114
  248327. .IP \(bu 2
  248328. c6f83ba00b Fixed validation type for file_ignore_glob Fixes \fI\%#32114\fP
  248329. .UNINDENT
  248330. .IP \(bu 2
  248331. \fBPR\fP \fI\%#32113\fP: (\fI\%sakateka\fP) Fix log message for AsyncAuth initialization
  248332. @ \fI2016\-03\-24 17:27:04 UTC\fP
  248333. .INDENT 2.0
  248334. .IP \(bu 2
  248335. 93d86d249c Merge pull request \fI\%#32113\fP from sakateka/correct_log_message
  248336. .IP \(bu 2
  248337. 71148d77ab Fix log message for AsyncAuth initialization
  248338. .UNINDENT
  248339. .IP \(bu 2
  248340. \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)
  248341. .IP \(bu 2
  248342. \fBPR\fP \fI\%#32116\fP: (\fI\%ticosax\fP) Obtain default value of \fImemory_swap\fP from the container.
  248343. @ \fI2016\-03\-24 15:56:54 UTC\fP
  248344. .INDENT 2.0
  248345. .IP \(bu 2
  248346. 294177f428 Merge pull request \fI\%#32116\fP from ticosax/memory_swap\-default\-from\-container
  248347. .IP \(bu 2
  248348. fe439db4d3 Obtain default value of \fImemory_swap\fP from the container.
  248349. .UNINDENT
  248350. .IP \(bu 2
  248351. \fBPR\fP \fI\%#32098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32083\fP to 2015.8
  248352. @ \fI2016\-03\-23 21:49:01 UTC\fP
  248353. .INDENT 2.0
  248354. .IP \(bu 2
  248355. \fBPR\fP \fI\%#32083\fP: (\fI\%guettli\fP) "Fire Event Notifications" moved down (refs: \fI\%#32098\fP)
  248356. .IP \(bu 2
  248357. d5bb8f6372 Merge pull request \fI\%#32098\fP from rallytime/bp\-32083
  248358. .IP \(bu 2
  248359. 4a3a6629ce "Fire Event Notifications" moved down
  248360. .UNINDENT
  248361. .IP \(bu 2
  248362. \fBPR\fP \fI\%#32099\fP: (\fI\%jacobhammons\fP) 2015.8.8 release docs
  248363. @ \fI2016\-03\-23 20:02:40 UTC\fP
  248364. .INDENT 2.0
  248365. .IP \(bu 2
  248366. e45107ce96 Merge pull request \fI\%#32099\fP from jacobhammons/dot8
  248367. .IP \(bu 2
  248368. 8ec5d989ad 2015.8.8 release docs
  248369. .UNINDENT
  248370. .IP \(bu 2
  248371. \fBPR\fP \fI\%#32088\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  248372. @ \fI2016\-03\-23 17:52:37 UTC\fP
  248373. .INDENT 2.0
  248374. .IP \(bu 2
  248375. 9e11f3aac5 Merge pull request \fI\%#32088\fP from rallytime/merge\-2015.8
  248376. .IP \(bu 2
  248377. 59c3b7e82e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  248378. .IP \(bu 2
  248379. 908a7bf5cd Merge pull request \fI\%#32051\fP from terminalmage/fix\-state\-apply\-output
  248380. .INDENT 2.0
  248381. .IP \(bu 2
  248382. 7d7cb45565 Fix outputter for state.apply
  248383. .UNINDENT
  248384. .IP \(bu 2
  248385. 0e66f678d4 Merge pull request \fI\%#32002\fP from abednarik/pkg_manjaron_issue31788
  248386. .INDENT 2.0
  248387. .IP \(bu 2
  248388. 1b052d0a66 Added Manajro Linux to virtual. List extended with ManajaroLinux in order su load pacman module.
  248389. .UNINDENT
  248390. .IP \(bu 2
  248391. ba5bf62c1a Merge pull request \fI\%#31957\fP from rallytime/merge\-2015.5
  248392. .INDENT 2.0
  248393. .IP \(bu 2
  248394. 1b6ec5d445 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  248395. .INDENT 2.0
  248396. .IP \(bu 2
  248397. ba73deee46 Merge pull request \fI\%#31929\fP from twangboy/fix_build_script
  248398. .IP \(bu 2
  248399. 2c5599d2bc Backport build script from 2015.8
  248400. .IP \(bu 2
  248401. ce74991dd0 Fix nsi script to work with new build process
  248402. .UNINDENT
  248403. .UNINDENT
  248404. .IP \(bu 2
  248405. a52e3ad7a1 Merge pull request \fI\%#31972\fP from terminalmage/zh\-584
  248406. .INDENT 2.0
  248407. .IP \(bu 2
  248408. 1e5639e495 Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  248409. .UNINDENT
  248410. .UNINDENT
  248411. .IP \(bu 2
  248412. \fBPR\fP \fI\%#32074\fP: (\fI\%Xiami2012\fP) Fix code for proto args in modules.iptables
  248413. @ \fI2016\-03\-23 16:37:58 UTC\fP
  248414. .INDENT 2.0
  248415. .IP \(bu 2
  248416. bc9a899bc8 Merge pull request \fI\%#32074\fP from Xiami2012/fix_iptables
  248417. .IP \(bu 2
  248418. aae3af7e49 Fix code for proto args in modules.iptables
  248419. .UNINDENT
  248420. .IP \(bu 2
  248421. \fBPR\fP \fI\%#32053\fP: (\fI\%basepi\fP) [2015.8] Fix rabbitmq_user.present tag handling
  248422. @ \fI2016\-03\-22 20:33:51 UTC\fP
  248423. .INDENT 2.0
  248424. .IP \(bu 2
  248425. 3e08dd0a93 Merge pull request \fI\%#32053\fP from basepi/fix_rabbitmq
  248426. .IP \(bu 2
  248427. 95c08f55e9 Tear out useless unit test
  248428. .IP \(bu 2
  248429. bed048e1e7 Remove leftover arg (lint)
  248430. .IP \(bu 2
  248431. 08868cb32a Fix tag handling code for rabbitmq_user.present
  248432. .IP \(bu 2
  248433. 3b6d25b4e9 Remove leading whitespace on tags
  248434. .UNINDENT
  248435. .IP \(bu 2
  248436. \fBISSUE\fP \fI\%#32004\fP: (\fI\%sjorge\fP) win_dacl module stacktrace: NameError: name \(aqntsecuritycon\(aq is not defined (refs: \fI\%#32023\fP)
  248437. .IP \(bu 2
  248438. \fBPR\fP \fI\%#32023\fP: (\fI\%sbreidba\fP) Move constant declaration into member variable to avoid issues when m…
  248439. @ \fI2016\-03\-21 20:18:23 UTC\fP
  248440. .INDENT 2.0
  248441. .IP \(bu 2
  248442. 553ecaca25 Merge pull request \fI\%#32023\fP from sbreidba/bugfix_32004
  248443. .IP \(bu 2
  248444. 711a0a9844 Move constant declaration into member variable to avoid issues when modules can\(aqt be loaded.
  248445. .UNINDENT
  248446. .IP \(bu 2
  248447. \fBPR\fP \fI\%#32026\fP: (\fI\%techhat\fP) Don\(aqt require the decode_out file to already exist
  248448. @ \fI2016\-03\-21 20:17:05 UTC\fP
  248449. .INDENT 2.0
  248450. .IP \(bu 2
  248451. 65c634d197 Merge pull request \fI\%#32026\fP from techhat/decodeout
  248452. .IP \(bu 2
  248453. f27da41b71 Don\(aqt require the decode_out file to already exist
  248454. .UNINDENT
  248455. .IP \(bu 2
  248456. \fBPR\fP \fI\%#32019\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32012\fP to 2015.8
  248457. @ \fI2016\-03\-21 15:54:31 UTC\fP
  248458. .INDENT 2.0
  248459. .IP \(bu 2
  248460. \fBPR\fP \fI\%#32012\fP: (\fI\%jfray\fP) There were two identical blocks concerning Windows Deploy Timeouts. This (refs: \fI\%#32019\fP)
  248461. .IP \(bu 2
  248462. 1d4246bfd7 Merge pull request \fI\%#32019\fP from rallytime/bp\-32012
  248463. .IP \(bu 2
  248464. 26eee1505f There were two identical blocks concerning Windows Deploy Timeouts. This pull request removes the extra block of text.
  248465. .UNINDENT
  248466. .IP \(bu 2
  248467. \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)
  248468. .IP \(bu 2
  248469. \fBPR\fP \fI\%#32015\fP: (\fI\%ticosax\fP) [dockerng] Fix ports exposition when protocol is passed.
  248470. @ \fI2016\-03\-21 15:22:19 UTC\fP
  248471. .INDENT 2.0
  248472. .IP \(bu 2
  248473. d117db3efb Merge pull request \fI\%#32015\fP from ticosax/fix\-port\-comparison\-udp
  248474. .IP \(bu 2
  248475. e511864a55 Fix ports exposition when protocol is passed.
  248476. .UNINDENT
  248477. .IP \(bu 2
  248478. \fBPR\fP \fI\%#31999\fP: (\fI\%jacobhammons\fP) Fixes a doc build exception caused by missing mocks for modules.win_dacl
  248479. @ \fI2016\-03\-19 15:49:40 UTC\fP
  248480. .INDENT 2.0
  248481. .IP \(bu 2
  248482. c72ab6a073 Merge pull request \fI\%#31999\fP from jacobhammons/mock\-modules2
  248483. .IP \(bu 2
  248484. 31bb573abc Fixes a doc build exception caused by missing mocks for modules.win_dacl
  248485. .UNINDENT
  248486. .IP \(bu 2
  248487. \fBPR\fP \fI\%#31992\fP: (\fI\%notpeter\fP) salt\-cloud: add D2 and G2 EC2 instance types
  248488. @ \fI2016\-03\-18 21:37:21 UTC\fP
  248489. .INDENT 2.0
  248490. .IP \(bu 2
  248491. 398ab909f0 Merge pull request \fI\%#31992\fP from notpeter/2015.8
  248492. .IP \(bu 2
  248493. e3854c8569 D2 and G2 EC2 instance types.
  248494. .UNINDENT
  248495. .IP \(bu 2
  248496. \fBPR\fP \fI\%#31981\fP: (\fI\%lloydoliver\fP) include rotational disks in grains under linux
  248497. @ \fI2016\-03\-18 15:54:00 UTC\fP
  248498. .INDENT 2.0
  248499. .IP \(bu 2
  248500. ad8ada7eef Merge pull request \fI\%#31981\fP from lloydoliver/linux\-disk\-grain\-fix
  248501. .IP \(bu 2
  248502. 9c44604438 include rotational disks in grains under linux
  248503. .UNINDENT
  248504. .IP \(bu 2
  248505. \fBPR\fP \fI\%#31970\fP: (\fI\%twangboy\fP) Add apply_template_on_contents for windows
  248506. @ \fI2016\-03\-18 15:37:29 UTC\fP
  248507. .INDENT 2.0
  248508. .IP \(bu 2
  248509. 9be508e8f0 Merge pull request \fI\%#31970\fP from twangboy/fix_win_file
  248510. .IP \(bu 2
  248511. dfeae191c1 Add apply_template_on_contents for windows
  248512. .UNINDENT
  248513. .IP \(bu 2
  248514. \fBPR\fP \fI\%#31960\fP: (\fI\%aletourneau\fP) fixed ec2 get_console_output
  248515. @ \fI2016\-03\-18 15:13:48 UTC\fP
  248516. .INDENT 2.0
  248517. .IP \(bu 2
  248518. 810c6dbcbe Merge pull request \fI\%#31960\fP from aletourneau/2015.8_ec2\-getconsoleoutput
  248519. .IP \(bu 2
  248520. 8305978879 fixed ec2 get_console_output
  248521. .UNINDENT
  248522. .IP \(bu 2
  248523. \fBPR\fP \fI\%#31958\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  248524. @ \fI2016\-03\-18 15:12:44 UTC\fP
  248525. .INDENT 2.0
  248526. .IP \(bu 2
  248527. 1c7dc364ad Merge pull request \fI\%#31958\fP from rallytime/merge\-2015.8
  248528. .UNINDENT
  248529. .IP \(bu 2
  248530. \fBPR\fP \fI\%#31935\fP: (\fI\%twangboy\fP) Back port nullsoft build script from 2015.8
  248531. @ \fI2016\-03\-17 14:54:50 UTC\fP
  248532. .INDENT 2.0
  248533. .IP \(bu 2
  248534. 2d1f2a0c2e Merge pull request \fI\%#31935\fP from twangboy/fix_build_script2
  248535. .IP \(bu 2
  248536. 4af8c9dbfc Back port nullsoft build script from 2015.8
  248537. .UNINDENT
  248538. .IP \(bu 2
  248539. \fBPR\fP \fI\%#31912\fP: (\fI\%jfindlay\fP) log.mixins: remove extemporaneous .record
  248540. @ \fI2016\-03\-16 01:56:46 UTC\fP
  248541. .INDENT 2.0
  248542. .IP \(bu 2
  248543. 43240dc566 Merge pull request \fI\%#31912\fP from jfindlay/log_mixin
  248544. .IP \(bu 2
  248545. 9f9c694654 log.mixins: remove extemporaneous .record
  248546. .UNINDENT
  248547. .UNINDENT
  248548. .SS Salt 2015.5.0 Release Notes \- Codename Lithium
  248549. .sp
  248550. The 2015.5.0 feature release of Salt is focused on hardening Salt and mostly
  248551. on improving existing systems. A few major additions are present, primarily
  248552. the new Beacon system. Most enhancements have been focused around improving
  248553. existing features and interfaces.
  248554. .sp
  248555. As usual the release notes are not exhaustive and primarily include the most
  248556. notable additions and improvements. Hundreds of bugs have been fixed and many
  248557. modules have been substantially updated and added.
  248558. .sp
  248559. \fBWARNING:\fP
  248560. .INDENT 0.0
  248561. .INDENT 3.5
  248562. In order to fix potential shell injection vulnerabilities in salt modules,
  248563. a change has been made to the various \fBcmd\fP module functions. These
  248564. functions now default to \fBpython_shell=False\fP, which means that the
  248565. commands will not be sent to an actual shell.
  248566. .sp
  248567. The largest side effect of this change is that "shellisms", such as pipes,
  248568. will not work by default. The modules shipped with salt have been audited
  248569. to fix any issues that might have arisen from this change. Additionally,
  248570. the \fBcmd\fP state module has been unaffected, and use of \fBcmd.run\fP in
  248571. jinja is also unaffected. \fBcmd.run\fP calls on the CLI will also allow
  248572. shellisms.
  248573. .sp
  248574. However, custom execution modules which use shellisms in \fBcmd\fP calls
  248575. will break, unless you pass \fBpython_shell=True\fP to these calls.
  248576. .sp
  248577. As a temporary workaround, you can set \fBcmd_safe: False\fP in your minion
  248578. and master configs. This will revert the default, but is also less secure,
  248579. as it will allow shell injection vulnerabilities to be written in custom
  248580. code. We recommend you only set this setting for as long as it takes to
  248581. resolve these issues in your custom code, then remove the override.
  248582. .UNINDENT
  248583. .UNINDENT
  248584. .sp
  248585. \fBNOTE:\fP
  248586. .INDENT 0.0
  248587. .INDENT 3.5
  248588. Starting in this version of salt, \fBpillar_opts\fP defaults to False instead
  248589. of True. This means that master opts will not be present in minion pillar,
  248590. and as a result, \fBconfig.get\fP calls will not include master opts.
  248591. .sp
  248592. We recommend pillar is used for configuration options which need to make it
  248593. to the minion.
  248594. .UNINDENT
  248595. .UNINDENT
  248596. .SS Beacons
  248597. .sp
  248598. The beacon system allows the minion to hook into system processes and
  248599. continually translate external events into the salt event bus. The primary
  248600. example of this is the \fBinotify\fP beacon. This beacon uses
  248601. inotify to watch configured files or directories on the minion for changes,
  248602. creation, deletion etc.
  248603. .sp
  248604. This allows for the changes to be sent up to the master where the reactor can
  248605. respond to changes.
  248606. .SS Sudo Minion Settings
  248607. .sp
  248608. It is now possible to run the minion as a non\-root user and for the minion to
  248609. execute commands via sudo. Simply add \fIsudo_user: root\fP to the minion config,
  248610. run the minion as a non\-root user and grant that user sudo rights to execute
  248611. salt\-call.
  248612. .SS Lazy Loader
  248613. .sp
  248614. The Lazy Loader is a significant overhaul of Salt\(aqs module loader system. The
  248615. Lazy Loader will lazily load modules on access instead of all on start. In
  248616. addition to a major performance improvement, this "sandboxes" modules so a
  248617. bad/broken import of a single module will only affect jobs that require
  248618. accessing the broken module. (:issue: \fI20274\fP)
  248619. .SS Enhanced Active Directory Support
  248620. .sp
  248621. The eauth system for LDAP has been extended to support Microsoft Active
  248622. Directory out of the box. This includes Active Directory and LDAP group support
  248623. for eauth.
  248624. .SS Salt LXC Enhancements
  248625. .sp
  248626. The LXC systems have been overhauled to be more consistent and to fix many
  248627. bugs.
  248628. .sp
  248629. This overhaul makes using LXC with Salt much easier and substantially improves
  248630. the underlying capabilities of Salt\(aqs LXC integration.
  248631. .SS Salt SSH
  248632. .INDENT 0.0
  248633. .IP \(bu 2
  248634. Additional configuration options and command line flags have been added to
  248635. configure the scan roster on the fly
  248636. .IP \(bu 2
  248637. Added support for \fBstate.single\fP in \fBsalt\-ssh\fP
  248638. .IP \(bu 2
  248639. Added support for \fBpublish.publish\fP, \fBpublish.full_data\fP, and
  248640. \fBpublish.runner\fP in \fBsalt\-ssh\fP
  248641. .IP \(bu 2
  248642. Added support for \fBmine.get\fP in \fBsalt\-ssh\fP
  248643. .UNINDENT
  248644. .SS New Windows Installer
  248645. .sp
  248646. The new Windows installer changes how Salt is installed on Windows.
  248647. The old installer used bbfreeze to create an isolated python environment to
  248648. execute in. This made adding modules and python libraries difficult. The new
  248649. installer sets up a more flexible python environment making it easy to manage
  248650. the python install and add python modules.
  248651. .sp
  248652. Instead of frozen packages, a full python implementation resides in the bin
  248653. directory (\fBC:\esalt\ebin\fP). By executing pip or easy_install from within the
  248654. Scripts directory (\fBC:\esalt\ebin\eScripts\fP) you can install any additional
  248655. python modules you may need for your custom environment.
  248656. .sp
  248657. The .exe\(aqs that once resided at the root of the salt directory (\fBC:\esalt\fP)
  248658. have been replaced by .bat files and should function the same way as the .exe\(aqs
  248659. in previous versions.
  248660. .sp
  248661. The new Windows Installer will not replace the minion config file and key if
  248662. they already exist on the target system. Only the salt program files will be
  248663. replaced. \fBC:\esalt\econf\fP and \fBC:\esalt\evar\fP will remain unchanged.
  248664. .SS Removed Requests Dependency
  248665. .sp
  248666. The hard dependency on the requests library has been removed. Requests is still
  248667. required by a number of cloud modules but is no longer required for normal Salt
  248668. operations.
  248669. .sp
  248670. This removal fixes issues that were introduced with requests and salt\-ssh, as
  248671. well as issues users experienced from the many different packaging methods used
  248672. by requests package maintainers.
  248673. .SS Python 3 Updates
  248674. .sp
  248675. While Salt does not YET run on Python 3 it has been updated to INSTALL on
  248676. Python 3, taking us one step closer. What remains is getting the test suite to
  248677. the point where it can run on Python 3 so that we can verify compatibility.
  248678. .SS RAET Additions
  248679. .sp
  248680. The RAET support continues to improve. RAET now supports multi\-master and many
  248681. bugs and performance issues have been fixed. RAET is much closer to being a
  248682. first class citizen.
  248683. .SS Modified File Detection
  248684. .sp
  248685. A number of functions have been added to the RPM\-based package managers to
  248686. detect and diff files that are modified from the original package installs.
  248687. This can be found in the new pkg.modified functions.
  248688. .SS Reactor Update
  248689. .sp
  248690. Fix an infinite recursion problem for runner/wheel reactor jobs by passing a
  248691. "user" (Reactor) to all jobs that the reactor starts. The reactor skips all
  248692. events created by that username \-\- thereby only reacting to events not caused
  248693. by itself. Because of this, runner and wheel executions from the runner will
  248694. have user "Reactor" in the job cache.
  248695. .SS Misc Fixes/Additions
  248696. .INDENT 0.0
  248697. .IP \(bu 2
  248698. SDB driver for etcd. (:issue: \fI22043\fP)
  248699. .IP \(bu 2
  248700. Add \fBonly_upgrade\fP argument to apt\-based \fBpkg.install\fP to only install a
  248701. package version if the package is already installed. (Great for security
  248702. updates!)
  248703. .IP \(bu 2
  248704. Joyent now requires a \fBkeyname\fP to be specified in the provider
  248705. configuration. This change was necessitated upstream by the 7.0+ API.
  248706. .IP \(bu 2
  248707. Add \fBargs\fP argument to \fBcmd.script_retcode\fP to match \fBcmd.script\fP in
  248708. the \fBcmd module\fP\&. (:issue: \fI21122\fP)
  248709. .IP \(bu 2
  248710. Fixed bug where TCP keepalive was not being sent on the defined interval on
  248711. the return port (4506) from minion to master. (:issue: \fI21465\fP)
  248712. .IP \(bu 2
  248713. LocalClient may now optionally raise SaltClientError exceptions. If using
  248714. this class directly, checking for and handling this exception is recommended.
  248715. (:issue: \fI21501\fP)
  248716. .IP \(bu 2
  248717. The SAuth object is now a singleton, meaning authentication state is global
  248718. (per master) on each minion. This reduces sign\-ins of minions from 3\->1 per
  248719. startup.
  248720. .IP \(bu 2
  248721. Nested outputter has been optimized, it is now much faster.
  248722. .IP \(bu 2
  248723. Extensive fileserver backend updates.
  248724. .UNINDENT
  248725. .SS Deprecations
  248726. .INDENT 0.0
  248727. .IP \(bu 2
  248728. Removed \fBparameter\fP keyword argument from \fBeselect.exec_action\fP execution
  248729. module.
  248730. .IP \(bu 2
  248731. Removed \fBrunas\fP parameter from the following \fBpip\(ga\fP execution module
  248732. functions: \fBinstall\fP, \fBuninstall\fP, \fBfreeze\fP, \fBlist_\fP,
  248733. \fBlist_upgrades\fP, \fBupgrade_available\fP, \fBupgrade\fP\&. Please migrate to
  248734. \fBuser\fP\&.
  248735. .IP \(bu 2
  248736. Removed \fBrunas\fP parameter from the following \fBpip\fP state module
  248737. functions: \fBinstalled\fP, \fBremoved\fP, \fBuptodate\fP . Please migrate to
  248738. \fBuser\fP\&.
  248739. .IP \(bu 2
  248740. Removed \fBquiet\fP option from all functions in \fBcmdmod\fP execution module.
  248741. Please use \fBoutput_loglevel=quiet\fP instead.
  248742. .IP \(bu 2
  248743. Removed \fBparameter\fP argument from \fBeselect.set_\fP state. Please migrate to
  248744. \fBmodule_parameter\fP or \fBaction_parameter\fP\&.
  248745. .IP \(bu 2
  248746. The \fBsalt_events\fP table schema has changed to include an additional field
  248747. called \fBmaster_id\fP to distinguish between events flowing into a database
  248748. from multiple masters. If \fBevent_return\fP is enabled in the master config,
  248749. the database schema must first be updated to add the \fBmaster_id\fP field.
  248750. This alteration can be accomplished as follows:
  248751. .INDENT 2.0
  248752. .INDENT 3.5
  248753. \fBALTER TABLE salt_events ADD master_id VARCHAR(255) NOT NULL;\fP
  248754. .UNINDENT
  248755. .UNINDENT
  248756. .UNINDENT
  248757. .SS Known Issues
  248758. .INDENT 0.0
  248759. .IP \(bu 2
  248760. In multi\-master mode, a minion may become temporarily unresponsive if modules
  248761. or pillars are refreshed at the same time that one or more masters are down.
  248762. This can be worked around by setting \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to
  248763. shorter periods.
  248764. .UNINDENT
  248765. .SS Salt 2015.5.1 Release Notes
  248766. .INDENT 0.0
  248767. .TP
  248768. .B release
  248769. 2015\-05\-20
  248770. .UNINDENT
  248771. .sp
  248772. Version 2015.5.1 is a bugfix release for 2015.5.0\&.
  248773. .SS Statistics
  248774. .INDENT 0.0
  248775. .IP \(bu 2
  248776. Total Merges: \fB203\fP
  248777. .IP \(bu 2
  248778. Total Issue References: \fB30\fP
  248779. .IP \(bu 2
  248780. Total PR References: \fB177\fP
  248781. .IP \(bu 2
  248782. 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)
  248783. .UNINDENT
  248784. .SS Cloud Runner Changes
  248785. .sp
  248786. The \fBfun\fP argument to the \fBcloud.action\fP
  248787. runner has changed to \fBfunc\fP\&. Please update any calls to this runner.
  248788. .SS Changelog for v2015.5.0..v2015.5.1
  248789. .sp
  248790. \fIGenerated at: 2018\-05\-27 20:58:00 UTC\fP
  248791. .INDENT 0.0
  248792. .IP \(bu 2
  248793. \fBPR\fP \fI\%#23998\fP: (\fI\%rallytime\fP) Update release note for 2015.5.1
  248794. @ \fI2015\-05\-20 20:58:55 UTC\fP
  248795. .INDENT 2.0
  248796. .IP \(bu 2
  248797. 2422760ebd Merge pull request \fI\%#23998\fP from rallytime/release_notes
  248798. .IP \(bu 2
  248799. 113c6049f5 Update release note for 2015.5.1
  248800. .UNINDENT
  248801. .IP \(bu 2
  248802. \fBPR\fP \fI\%#23989\fP: (\fI\%rallytime\fP) Backport \fI\%#23980\fP to 2015.5
  248803. @ \fI2015\-05\-20 19:33:41 UTC\fP
  248804. .INDENT 2.0
  248805. .IP \(bu 2
  248806. \fBPR\fP \fI\%#23980\fP: (\fI\%iggy\fP) template: jinja2 \-> jinja (refs: \fI\%#23989\fP)
  248807. .IP \(bu 2
  248808. 117ecb1fe0 Merge pull request \fI\%#23989\fP from rallytime/bp\-23980
  248809. .IP \(bu 2
  248810. 8f8557c47d template: jinja2 \-> jinja
  248811. .UNINDENT
  248812. .IP \(bu 2
  248813. \fBPR\fP \fI\%#23988\fP: (\fI\%rallytime\fP) Backport \fI\%#23977\fP to 2015.5
  248814. @ \fI2015\-05\-20 19:13:36 UTC\fP
  248815. .INDENT 2.0
  248816. .IP \(bu 2
  248817. \fBPR\fP \fI\%#23977\fP: (\fI\%ionutbalutoiu\fP) Fixed glance image_create (refs: \fI\%#23988\fP)
  248818. .IP \(bu 2
  248819. d4f1ba02d7 Merge pull request \fI\%#23988\fP from rallytime/bp\-23977
  248820. .IP \(bu 2
  248821. 46fc7c6b69 Fixed glance image_create
  248822. .UNINDENT
  248823. .IP \(bu 2
  248824. \fBPR\fP \fI\%#23986\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248825. @ \fI2015\-05\-20 18:41:33 UTC\fP
  248826. .INDENT 2.0
  248827. .IP \(bu 2
  248828. 9566e7d412 Merge pull request \fI\%#23986\fP from basepi/merge\-forward\-2015.5
  248829. .IP \(bu 2
  248830. 0b78156592 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248831. .INDENT 2.0
  248832. .IP \(bu 2
  248833. 314e4db512 Merge pull request \fI\%#23965\fP from hvnsweeting/20147\-fix\-gitfs\-gitpython\-exception
  248834. .INDENT 2.0
  248835. .IP \(bu 2
  248836. 2576301631 handle all exception gitpython can raise
  248837. .UNINDENT
  248838. .UNINDENT
  248839. .UNINDENT
  248840. .IP \(bu 2
  248841. \fBPR\fP \fI\%#23985\fP: (\fI\%UtahDave\fP) Add 2014.7.5\-2 and 2015.5.0\-2 Windows installer download links
  248842. @ \fI2015\-05\-20 18:32:44 UTC\fP
  248843. .INDENT 2.0
  248844. .IP \(bu 2
  248845. 9d1130ef8e Merge pull request \fI\%#23985\fP from UtahDave/2015.5local
  248846. .IP \(bu 2
  248847. 10338d0c54 Add links to Windows 2015.5.0\-2 install downloads
  248848. .IP \(bu 2
  248849. b84f9756c5 updated Windows 2014.7.5\-2 installer download link
  248850. .UNINDENT
  248851. .IP \(bu 2
  248852. \fBPR\fP \fI\%#23983\fP: (\fI\%rallytime\fP) Versionadded tags for https_user and https_pass args new in 2015.5.0
  248853. @ \fI2015\-05\-20 18:05:27 UTC\fP
  248854. .INDENT 2.0
  248855. .IP \(bu 2
  248856. ca7729d023 Merge pull request \fI\%#23983\fP from rallytime/versionadded_git_options
  248857. .IP \(bu 2
  248858. 14eae22c91 Versionadded tags for https_user and https_pass args new in 2015.5.0
  248859. .UNINDENT
  248860. .IP \(bu 2
  248861. \fBPR\fP \fI\%#23970\fP: (\fI\%jayeshka\fP) adding system unit test case
  248862. @ \fI2015\-05\-20 17:12:57 UTC\fP
  248863. .INDENT 2.0
  248864. .IP \(bu 2
  248865. b06df57e03 Merge pull request \fI\%#23970\fP from jayeshka/system\-unit\-test
  248866. .IP \(bu 2
  248867. 89eb00815e adding system unit test case
  248868. .UNINDENT
  248869. .IP \(bu 2
  248870. \fBPR\fP \fI\%#23967\fP: (\fI\%jayeshka\fP) adding states/memcached unit test case
  248871. @ \fI2015\-05\-20 17:12:26 UTC\fP
  248872. .INDENT 2.0
  248873. .IP \(bu 2
  248874. 38d5f75756 Merge pull request \fI\%#23967\fP from jayeshka/memcached\-states\-unit\-test
  248875. .IP \(bu 2
  248876. 8ef9240e25 adding states/memcached unit test case
  248877. .UNINDENT
  248878. .IP \(bu 2
  248879. \fBPR\fP \fI\%#23966\fP: (\fI\%jayeshka\fP) adding states/modjk unit test case
  248880. @ \fI2015\-05\-20 17:11:48 UTC\fP
  248881. .INDENT 2.0
  248882. .IP \(bu 2
  248883. 868e807d8a Merge pull request \fI\%#23966\fP from jayeshka/modjk\-states\-unit\-test
  248884. .IP \(bu 2
  248885. 422a96497d adding states/modjk unit test case
  248886. .UNINDENT
  248887. .IP \(bu 2
  248888. \fBPR\fP \fI\%#23942\fP: (\fI\%jacobhammons\fP) Updates to sphinx saltstack2 doc theme
  248889. @ \fI2015\-05\-20 15:43:54 UTC\fP
  248890. .INDENT 2.0
  248891. .IP \(bu 2
  248892. 63164900bd Merge pull request \fI\%#23942\fP from jacobhammons/2015.5
  248893. .IP \(bu 2
  248894. 31023c8915 Updates to sphinx saltstack2 doc theme
  248895. .UNINDENT
  248896. .IP \(bu 2
  248897. \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)
  248898. .IP \(bu 2
  248899. \fBPR\fP \fI\%#23874\fP: (\fI\%joejulian\fP) Validate keyword arguments to be valid
  248900. @ \fI2015\-05\-20 04:53:40 UTC\fP
  248901. .INDENT 2.0
  248902. .IP \(bu 2
  248903. 587957badc Merge pull request \fI\%#23874\fP from joejulian/2015.5_tls_validate_kwargs
  248904. .IP \(bu 2
  248905. 30102acd04 Fix py3 and ordering inconsistency problems.
  248906. .IP \(bu 2
  248907. 493f7ad5f0 Validate keyword arguments to be valid
  248908. .UNINDENT
  248909. .IP \(bu 2
  248910. \fBPR\fP \fI\%#23960\fP: (\fI\%rallytime\fP) Backport \fI\%#22114\fP to 2015.5
  248911. @ \fI2015\-05\-20 04:37:09 UTC\fP
  248912. .INDENT 2.0
  248913. .IP \(bu 2
  248914. \fBPR\fP \fI\%#22114\fP: (\fI\%dmyerscough\fP) Fixing KeyError when there are no additional pages (refs: \fI\%#23960\fP)
  248915. .IP \(bu 2
  248916. 00c5c22867 Merge pull request \fI\%#23960\fP from rallytime/bp\-22114
  248917. .IP \(bu 2
  248918. f3e1d63fce Catch KeyError
  248919. .IP \(bu 2
  248920. 306b1ea6b8 Fixing KeyError
  248921. .IP \(bu 2
  248922. 6b2cda2861 Fix PEP8 complaint
  248923. .IP \(bu 2
  248924. 239e50f30d Fixing KeyError when there are no additional pages
  248925. .UNINDENT
  248926. .IP \(bu 2
  248927. \fBPR\fP \fI\%#23961\fP: (\fI\%rallytime\fP) Backport \fI\%#23944\fP to 2015.5
  248928. @ \fI2015\-05\-20 04:35:41 UTC\fP
  248929. .INDENT 2.0
  248930. .IP \(bu 2
  248931. \fBPR\fP \fI\%#23944\fP: (\fI\%ryan\-lane\fP) Add missing loginclass argument to _changes call (refs: \fI\%#23961\fP)
  248932. .IP \(bu 2
  248933. 4648b46e05 Merge pull request \fI\%#23961\fP from rallytime/bp\-23944
  248934. .IP \(bu 2
  248935. 970d19a31e Add missing loginclass argument to _changes call
  248936. .UNINDENT
  248937. .IP \(bu 2
  248938. \fBPR\fP \fI\%#23948\fP: (\fI\%jfindlay\fP) augeas.change state now returns changes as a dict
  248939. @ \fI2015\-05\-20 04:00:10 UTC\fP
  248940. .INDENT 2.0
  248941. .IP \(bu 2
  248942. 0cb5cd3938 Merge pull request \fI\%#23948\fP from jfindlay/augeas_changes
  248943. .IP \(bu 2
  248944. f09b80a8b5 augeas.change state now returns changes as a dict
  248945. .UNINDENT
  248946. .IP \(bu 2
  248947. \fBPR\fP \fI\%#23957\fP: (\fI\%rallytime\fP) Backport \fI\%#23951\fP to 2015.5
  248948. @ \fI2015\-05\-20 03:04:24 UTC\fP
  248949. .INDENT 2.0
  248950. .IP \(bu 2
  248951. \fBPR\fP \fI\%#23951\fP: (\fI\%ryan\-lane\fP) Do not check perms in file.copy if preserve (refs: \fI\%#23957\fP)
  248952. .IP \(bu 2
  248953. 2d185f78f7 Merge pull request \fI\%#23957\fP from rallytime/bp\-23951
  248954. .IP \(bu 2
  248955. 996b431252 Update file.py
  248956. .IP \(bu 2
  248957. 85d461f748 Do not check perms in file.copy if preserve
  248958. .UNINDENT
  248959. .IP \(bu 2
  248960. \fBISSUE\fP \fI\%#23839\fP: (\fI\%gladiatr72\fP) wonky loader syndrome (refs: \fI\%#23906\fP)
  248961. .IP \(bu 2
  248962. \fBISSUE\fP \fI\%#23373\fP: (\fI\%tnypex\fP) reactor/orchestrate race condition on salt[\(aqpillar.get\(aq] (refs: \fI\%#23906\fP)
  248963. .IP \(bu 2
  248964. \fBPR\fP \fI\%#23956\fP: (\fI\%rallytime\fP) Backport \fI\%#23906\fP to 2015.5
  248965. @ \fI2015\-05\-20 03:04:14 UTC\fP
  248966. .INDENT 2.0
  248967. .IP \(bu 2
  248968. \fBPR\fP \fI\%#23906\fP: (\fI\%gladiatr72\fP) Added exception handler to trap the RuntimeError raised when (refs: \fI\%#23956\fP)
  248969. .IP \(bu 2
  248970. ebff1ff967 Merge pull request \fI\%#23956\fP from rallytime/bp\-23906
  248971. .IP \(bu 2
  248972. 9d87fd335c add proper marker for format argument
  248973. .IP \(bu 2
  248974. 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.
  248975. .UNINDENT
  248976. .IP \(bu 2
  248977. \fBISSUE\fP \fI\%#19852\fP: (\fI\%TaiSHiNet\fP) DigitalOcean APIv2 can\(aqt delete machines when there is only 1 page (refs: \fI\%#23955\fP)
  248978. .IP \(bu 2
  248979. \fBISSUE\fP \fI\%#19304\fP: (\fI\%TaiSHiNet\fP) DigitalOcean API v2 cannot delete VMs on 2nd page (refs: \fI\%#19305\fP)
  248980. .IP \(bu 2
  248981. \fBPR\fP \fI\%#23955\fP: (\fI\%rallytime\fP) Backport \fI\%#19305\fP to 2015.5
  248982. @ \fI2015\-05\-20 03:03:55 UTC\fP
  248983. .INDENT 2.0
  248984. .IP \(bu 2
  248985. \fBPR\fP \fI\%#19305\fP: (\fI\%TaiSHiNet\fP) Fixes droplet listing past page 1 (refs: \fI\%#23955\fP)
  248986. .IP \(bu 2
  248987. da3f9197d3 Merge pull request \fI\%#23955\fP from rallytime/bp\-19305
  248988. .IP \(bu 2
  248989. bbf2429bce Fixes droplet listing past page 1
  248990. .UNINDENT
  248991. .IP \(bu 2
  248992. \fBPR\fP \fI\%#23940\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248993. @ \fI2015\-05\-19 22:37:58 UTC\fP
  248994. .INDENT 2.0
  248995. .IP \(bu 2
  248996. 02a78fce3d Merge pull request \fI\%#23940\fP from basepi/merge\-forward\-2015.5
  248997. .IP \(bu 2
  248998. 36f0065faf Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248999. .INDENT 2.0
  249000. .IP \(bu 2
  249001. 913391207a Merge pull request \fI\%#23939\fP from basepi/v2014.7.6release
  249002. .INDENT 2.0
  249003. .IP \(bu 2
  249004. 32b65dc2a9 Add extended changelog to 2014.7.6 release notes
  249005. .UNINDENT
  249006. .IP \(bu 2
  249007. 0031ca2631 Merge pull request \fI\%#23881\fP from garethgreenaway/23820_2014_7_schedule_list_issue
  249008. .INDENT 2.0
  249009. .IP \(bu 2
  249010. b207f2a433 Missing continue in the list function when deleting unused attributes.
  249011. .UNINDENT
  249012. .IP \(bu 2
  249013. 63bd21ecd2 Merge pull request \fI\%#23887\fP from basepi/salt\-ssh.pillar.get.22131
  249014. .INDENT 2.0
  249015. .IP \(bu 2
  249016. bc84502f46 Bring salt\-ssh pillar.get in line with mainline pillar.get
  249017. .UNINDENT
  249018. .UNINDENT
  249019. .UNINDENT
  249020. .IP \(bu 2
  249021. \fBPR\fP \fI\%#23932\fP: (\fI\%rallytime\fP) Backport \fI\%#23908\fP to 2015.5
  249022. @ \fI2015\-05\-19 21:41:28 UTC\fP
  249023. .INDENT 2.0
  249024. .IP \(bu 2
  249025. \fBPR\fP \fI\%#23908\fP: (\fI\%nleib\fP) fix connection function to mongo (refs: \fI\%#23932\fP)
  249026. .IP \(bu 2
  249027. ee4c01bf30 Merge pull request \fI\%#23932\fP from rallytime/bp\-23908
  249028. .IP \(bu 2
  249029. 5d520c9377 fix connection function to mongo
  249030. .UNINDENT
  249031. .IP \(bu 2
  249032. \fBPR\fP \fI\%#23931\fP: (\fI\%rallytime\fP) Backport \fI\%#23880\fP to 2015.5
  249033. @ \fI2015\-05\-19 21:41:18 UTC\fP
  249034. .INDENT 2.0
  249035. .IP \(bu 2
  249036. \fBPR\fP \fI\%#23880\fP: (\fI\%bastiaanb\fP) if setting client_config_dir to \(aq~\(aq, expand path (refs: \fI\%#23931\fP)
  249037. .IP \(bu 2
  249038. 70bd407920 Merge pull request \fI\%#23931\fP from rallytime/bp\-23880
  249039. .IP \(bu 2
  249040. 8ce59a2e16 if setting client_config_dir to \(aq~\(aq, expand path
  249041. .UNINDENT
  249042. .IP \(bu 2
  249043. \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)
  249044. .IP \(bu 2
  249045. \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)
  249046. .IP \(bu 2
  249047. \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)
  249048. .IP \(bu 2
  249049. \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)
  249050. .IP \(bu 2
  249051. \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)
  249052. .IP \(bu 2
  249053. \fBPR\fP \fI\%#23898\fP: (\fI\%kiorky\fP) Lxc profiles (refs: \fI\%#23897\fP)
  249054. @ \fI2015\-05\-19 21:08:28 UTC\fP
  249055. .INDENT 2.0
  249056. .IP \(bu 2
  249057. \fBPR\fP \fI\%#23897\fP: (\fI\%kiorky\fP) Lxc seed and prof ports (refs: \fI\%#23898\fP)
  249058. .IP \(bu 2
  249059. \fBPR\fP \fI\%#23808\fP: (\fI\%kiorky\fP) Lxc seed and prof ports (refs: \fI\%#23807\fP, \fI\%#23897\fP)
  249060. .IP \(bu 2
  249061. \fBPR\fP \fI\%#23807\fP: (\fI\%kiorky\fP) Lxc profiles (refs: \fI\%#23898\fP)
  249062. .IP \(bu 2
  249063. \fBPR\fP \fI\%#23806\fP: (\fI\%kiorky\fP) Lxc seeding (refs: \fI\%#23807\fP)
  249064. .IP \(bu 2
  249065. 5bdbf0af9b Merge pull request \fI\%#23898\fP from makinacorpus/lxc_profiles
  249066. .IP \(bu 2
  249067. d9051a047a lxc: systemd support
  249068. .IP \(bu 2
  249069. e8d674fed4 lxc: chroot fallback toggle
  249070. .IP \(bu 2
  249071. e2887a0d44 lxc: sync func name with develop
  249072. .IP \(bu 2
  249073. e96e345799 lxc more fixes (lxc.set_dns)
  249074. .IP \(bu 2
  249075. fdb64245d4 lxc: Fix salt config (no more a kwarg)
  249076. .IP \(bu 2
  249077. 63e63fa527 repair salt cloud lxc api on develop
  249078. .IP \(bu 2
  249079. 80eabe2703 lxc salt cloud doc
  249080. .IP \(bu 2
  249081. 73f229d966 lxc: unificate saltconfig/master/master_port
  249082. .IP \(bu 2
  249083. 0bc1f08a6b lxc: refactor a bit saltcloud/lxc interface
  249084. .IP \(bu 2
  249085. 7a80370da9 lxc: get networkprofile from saltcloud
  249086. .IP \(bu 2
  249087. 47acb2e159 lxc: default net profile has now correct options
  249088. .IP \(bu 2
  249089. 7eadf4863c lxc: select the appropriate default bridge
  249090. .UNINDENT
  249091. .IP \(bu 2
  249092. \fBISSUE\fP \fI\%#23900\fP: (\fI\%hashi825\fP) salt ubuntu network building issue 2015.5.0 (refs: \fI\%#23922\fP)
  249093. .IP \(bu 2
  249094. \fBPR\fP \fI\%#23922\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py
  249095. @ \fI2015\-05\-19 18:50:53 UTC\fP
  249096. .INDENT 2.0
  249097. .IP \(bu 2
  249098. b818f72dce Merge pull request \fI\%#23922\fP from garethgreenaway/23900_2015_5_bonding_interface_fixes
  249099. .IP \(bu 2
  249100. 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\-
  249101. .UNINDENT
  249102. .IP \(bu 2
  249103. \fBPR\fP \fI\%#23925\fP: (\fI\%jpic\fP) Fixed wrong path in LXC cloud documentation
  249104. @ \fI2015\-05\-19 18:23:56 UTC\fP
  249105. .INDENT 2.0
  249106. .IP \(bu 2
  249107. \fBPR\fP \fI\%#23924\fP: (\fI\%jpic\fP) Fixed wrong path in LXC cloud documentation (refs: \fI\%#23925\fP)
  249108. .IP \(bu 2
  249109. b1c98a38ed Merge pull request \fI\%#23925\fP from jpic/fix/wrong_lxc_path
  249110. .IP \(bu 2
  249111. a4bcd75171 Fixed wrong path in LXC cloud documentation
  249112. .UNINDENT
  249113. .IP \(bu 2
  249114. \fBPR\fP \fI\%#23894\fP: (\fI\%whiteinge\fP) Add __all__ attribute to Mock class for docs
  249115. @ \fI2015\-05\-19 17:17:35 UTC\fP
  249116. .INDENT 2.0
  249117. .IP \(bu 2
  249118. 7f6a716a8a Merge pull request \fI\%#23894\fP from whiteinge/doc\-mock__all__
  249119. .IP \(bu 2
  249120. 6eeca46158 Add __all__ attribute to Mock class for docs
  249121. .UNINDENT
  249122. .IP \(bu 2
  249123. \fBISSUE\fP \fI\%#23767\fP: (\fI\%chrimi\fP) Salt system.locale fails on non existent default locale (refs: \fI\%#23884\fP)
  249124. .IP \(bu 2
  249125. \fBPR\fP \fI\%#23884\fP: (\fI\%jfindlay\fP) Fix locale.set_locale on debian
  249126. @ \fI2015\-05\-19 15:51:22 UTC\fP
  249127. .INDENT 2.0
  249128. .IP \(bu 2
  249129. 8108a9bd19 Merge pull request \fI\%#23884\fP from jfindlay/fix_locale
  249130. .IP \(bu 2
  249131. 91c2d51400 use append_if_not_found in locale.set_locale
  249132. .IP \(bu 2
  249133. e63260391c (re)generate /etc/default/locale
  249134. .UNINDENT
  249135. .IP \(bu 2
  249136. \fBPR\fP \fI\%#23866\fP: (\fI\%jfindlay\fP) backport \fI\%#23834\fP, change portage.dep.strip_empty to list comprehension
  249137. @ \fI2015\-05\-19 15:50:43 UTC\fP
  249138. .INDENT 2.0
  249139. .IP \(bu 2
  249140. \fBPR\fP \fI\%#23834\fP: (\fI\%Arabus\fP) Avoid deprecation warning from portage.dep.strip_empty() (refs: \fI\%#23866\fP)
  249141. .IP \(bu 2
  249142. 6bae12fa8b Merge pull request \fI\%#23866\fP from jfindlay/flag_strip
  249143. .IP \(bu 2
  249144. aa032ccfaf replace portage.dep.strip_empty() with list comprehension
  249145. .IP \(bu 2
  249146. 7576872280 Proper replacement for portage.dep.strip_empty() with list comprehension, pep8fix
  249147. .IP \(bu 2
  249148. 2851a5cf13 Switch portage.dep.strip_empty(...) to filter(None,...) to avoid deprecation warning and do essentially the same
  249149. .UNINDENT
  249150. .IP \(bu 2
  249151. \fBISSUE\fP \fI\%#23904\fP: (\fI\%mbrgm\fP) Network config bonding section cannot be parsed when attribute names use dashes (refs: \fI\%#23917\fP)
  249152. .IP \(bu 2
  249153. \fBPR\fP \fI\%#23917\fP: (\fI\%corywright\fP) Split debian bonding options on dash instead of underscore
  249154. @ \fI2015\-05\-19 15:44:35 UTC\fP
  249155. .INDENT 2.0
  249156. .IP \(bu 2
  249157. a67a008913 Merge pull request \fI\%#23917\fP from corywright/issue23904
  249158. .IP \(bu 2
  249159. c06f8cf831 Split debian bonding options on dash instead of underscore
  249160. .UNINDENT
  249161. .IP \(bu 2
  249162. \fBPR\fP \fI\%#23909\fP: (\fI\%jayeshka\fP) \(aqstr\(aq object has no attribute \(aqcapitalized\(aq
  249163. @ \fI2015\-05\-19 15:41:53 UTC\fP
  249164. .INDENT 2.0
  249165. .IP \(bu 2
  249166. e8fcd0994d Merge pull request \fI\%#23909\fP from jayeshka/file\-exe\-module
  249167. .IP \(bu 2
  249168. e422d9d200 \(aqstr\(aq object has no attribute \(aqcapitalized\(aq
  249169. .UNINDENT
  249170. .IP \(bu 2
  249171. \fBPR\fP \fI\%#23903\fP: (\fI\%garethgreenaway\fP) Adding docs for missing schedule state module parameters.
  249172. @ \fI2015\-05\-19 06:29:34 UTC\fP
  249173. .INDENT 2.0
  249174. .IP \(bu 2
  249175. c73bf38927 Merge pull request \fI\%#23903\fP from garethgreenaway/missing_docs_schedule_state
  249176. .IP \(bu 2
  249177. acd8ab9e1d Adding docs for missing schedule state module parameters.
  249178. .IP \(bu 2
  249179. a56697bd6e Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249180. .IP \(bu 2
  249181. 1c2af5c685 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249182. .IP \(bu 2
  249183. ef581283fa Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249184. .IP \(bu 2
  249185. 8664e8bc8d Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5\-2
  249186. .IP \(bu 2
  249187. 46eb2655ee saltstack2 sphinx theme updates
  249188. .IP \(bu 2
  249189. e7442d3b1e Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249190. .IP \(bu 2
  249191. ee3c1bd4a7 missed one
  249192. .IP \(bu 2
  249193. 3872921dd0 More updates to sphinx2 theme
  249194. .IP \(bu 2
  249195. fcd48657ef Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249196. .IP \(bu 2
  249197. 8c32152be0 removed TOC numbering, additional tweaks to layout.html
  249198. .IP \(bu 2
  249199. 73dfaeff28 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  249200. .IP \(bu 2
  249201. 16d8a753ad saltstack2 sphinx theme and build settings
  249202. .UNINDENT
  249203. .IP \(bu 2
  249204. \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)
  249205. .IP \(bu 2
  249206. \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)
  249207. .IP \(bu 2
  249208. \fBPR\fP \fI\%#23806\fP: (\fI\%kiorky\fP) Lxc seeding (refs: \fI\%#23807\fP)
  249209. @ \fI2015\-05\-18 23:18:33 UTC\fP
  249210. .INDENT 2.0
  249211. .IP \(bu 2
  249212. ff3cc7d331 Merge pull request \fI\%#23806\fP from makinacorpus/lxc_seeding
  249213. .IP \(bu 2
  249214. 61b7aad308 runners/lxc: optim
  249215. .UNINDENT
  249216. .IP \(bu 2
  249217. \fBPR\fP \fI\%#23892\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249218. @ \fI2015\-05\-18 23:07:57 UTC\fP
  249219. .INDENT 2.0
  249220. .IP \(bu 2
  249221. 5f1a93d966 Merge pull request \fI\%#23892\fP from basepi/merge\-forward\-2015.5
  249222. .IP \(bu 2
  249223. c2eed77691 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249224. .IP \(bu 2
  249225. 17c5810c04 Merge pull request \fI\%#23891\fP from basepi/releasenotes
  249226. .INDENT 2.0
  249227. .IP \(bu 2
  249228. dec153bcea Update the release notes index page
  249229. .UNINDENT
  249230. .IP \(bu 2
  249231. a93e58f80f Merge pull request \fI\%#23888\fP from basepi/v2014.7.6release
  249232. .INDENT 2.0
  249233. .IP \(bu 2
  249234. 49921b6cb2 Update the 2014.7.6 release notes with CVE details
  249235. .UNINDENT
  249236. .IP \(bu 2
  249237. 50730287bb Merge pull request \fI\%#23871\fP from rallytime/bp\-23848
  249238. .INDENT 2.0
  249239. .IP \(bu 2
  249240. 379c09c3a5 Updated for SLES 12.
  249241. .UNINDENT
  249242. .UNINDENT
  249243. .IP \(bu 2
  249244. \fBPR\fP \fI\%#23875\fP: (\fI\%rallytime\fP) Backport \fI\%#23838\fP to 2015.5
  249245. @ \fI2015\-05\-18 22:28:55 UTC\fP
  249246. .INDENT 2.0
  249247. .IP \(bu 2
  249248. \fBPR\fP \fI\%#23838\fP: (\fI\%gtmanfred\fP) add refresh_beacons and sync_beacons (refs: \fI\%#23875\fP)
  249249. .IP \(bu 2
  249250. 66d13356b3 Merge pull request \fI\%#23875\fP from rallytime/bp\-23838
  249251. .IP \(bu 2
  249252. 3174227e8e Add versionadded directives to new beacon saltutil functions
  249253. .IP \(bu 2
  249254. 4a94b2c17b add refresh_beacons and sync_beacons
  249255. .UNINDENT
  249256. .IP \(bu 2
  249257. \fBPR\fP \fI\%#23876\fP: (\fI\%rallytime\fP) Switch digital ocean tests to v2 driver
  249258. @ \fI2015\-05\-18 22:17:13 UTC\fP
  249259. .INDENT 2.0
  249260. .IP \(bu 2
  249261. d294cf260b Merge pull request \fI\%#23876\fP from rallytime/switch_digital_ocean_tests_v2
  249262. .IP \(bu 2
  249263. dce9b540a6 Remove extra line
  249264. .IP \(bu 2
  249265. 4acf58e758 Switch digital ocean tests to v2 driver
  249266. .UNINDENT
  249267. .IP \(bu 2
  249268. \fBISSUE\fP \fI\%#23792\fP: (\fI\%neogenix\fP) Salt Scheduler Incorrect Response (True, should be False) (refs: \fI\%#23882\fP)
  249269. .IP \(bu 2
  249270. \fBPR\fP \fI\%#23882\fP: (\fI\%garethgreenaway\fP) Fixes to scheduler in 2015.5
  249271. @ \fI2015\-05\-18 22:09:24 UTC\fP
  249272. .INDENT 2.0
  249273. .IP \(bu 2
  249274. b97a48c7f5 Merge pull request \fI\%#23882\fP from garethgreenaway/23792_2015_5_wrong_return_code
  249275. .IP \(bu 2
  249276. 37dbde6d57 Job already exists in schedule, should return False.
  249277. .UNINDENT
  249278. .IP \(bu 2
  249279. \fBPR\fP \fI\%#23868\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249280. @ \fI2015\-05\-18 18:35:54 UTC\fP
  249281. .INDENT 2.0
  249282. .IP \(bu 2
  249283. 61c922ea1a Merge pull request \fI\%#23868\fP from basepi/merge\-forward\-2015.5
  249284. .IP \(bu 2
  249285. c9ed23394c Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249286. .IP \(bu 2
  249287. aee00c83df Merge pull request \fI\%#23810\fP from rallytime/bp\-23757
  249288. .INDENT 2.0
  249289. .IP \(bu 2
  249290. fb32c32065 use abspath, do not eliminating symlinks
  249291. .UNINDENT
  249292. .IP \(bu 2
  249293. 6b3352bb1a Merge pull request \fI\%#23809\fP from rallytime/virt_get_nics_fix
  249294. .INDENT 2.0
  249295. .IP \(bu 2
  249296. 0616fb7884 Fix virtualport section of virt.get_nics loop
  249297. .UNINDENT
  249298. .IP \(bu 2
  249299. 188f03f567 Merge pull request \fI\%#23823\fP from gtmanfred/2014.7
  249300. .INDENT 2.0
  249301. .IP \(bu 2
  249302. 5ef006d59d add link local for ipv6
  249303. .UNINDENT
  249304. .IP \(bu 2
  249305. f3ca682f92 Merge pull request \fI\%#23802\fP from gtmanfred/2014.7
  249306. .INDENT 2.0
  249307. .IP \(bu 2
  249308. 2da98b58c8 if it is ipv6 ip_to_int will fail
  249309. .UNINDENT
  249310. .UNINDENT
  249311. .IP \(bu 2
  249312. \fBPR\fP \fI\%#23863\fP: (\fI\%rahulhan\fP) Adding states/timezone.py unit test
  249313. @ \fI2015\-05\-18 17:02:19 UTC\fP
  249314. .INDENT 2.0
  249315. .IP \(bu 2
  249316. 433f87372c Merge pull request \fI\%#23863\fP from rahulhan/states_timezone_unit_test
  249317. .IP \(bu 2
  249318. 72fcabc690 Adding states/timezone.py unit test
  249319. .UNINDENT
  249320. .IP \(bu 2
  249321. \fBPR\fP \fI\%#23862\fP: (\fI\%rahulhan\fP) Adding states/tomcat.py unit tests
  249322. @ \fI2015\-05\-18 17:02:10 UTC\fP
  249323. .INDENT 2.0
  249324. .IP \(bu 2
  249325. 37b3ee5421 Merge pull request \fI\%#23862\fP from rahulhan/states_tomcat_unit_test
  249326. .IP \(bu 2
  249327. 65d7752d2a Adding states/tomcat.py unit tests
  249328. .UNINDENT
  249329. .IP \(bu 2
  249330. \fBPR\fP \fI\%#23860\fP: (\fI\%rahulhan\fP) Adding states/test.py unit tests
  249331. @ \fI2015\-05\-18 17:01:49 UTC\fP
  249332. .INDENT 2.0
  249333. .IP \(bu 2
  249334. dde7207acb Merge pull request \fI\%#23860\fP from rahulhan/states_test_unit_test
  249335. .IP \(bu 2
  249336. 1f4cf86500 Adding states/test.py unit tests
  249337. .UNINDENT
  249338. .IP \(bu 2
  249339. \fBPR\fP \fI\%#23859\fP: (\fI\%rahulhan\fP) Adding states/sysrc.py unit tests
  249340. @ \fI2015\-05\-18 17:01:46 UTC\fP
  249341. .INDENT 2.0
  249342. .IP \(bu 2
  249343. 3c9b8139e8 Merge pull request \fI\%#23859\fP from rahulhan/states_sysrc_unit_test
  249344. .IP \(bu 2
  249345. 6a903b054d Adding states/sysrc.py unit tests
  249346. .UNINDENT
  249347. .IP \(bu 2
  249348. \fBPR\fP \fI\%#23812\fP: (\fI\%rallytime\fP) Backport \fI\%#23790\fP to 2015.5
  249349. @ \fI2015\-05\-18 15:30:34 UTC\fP
  249350. .INDENT 2.0
  249351. .IP \(bu 2
  249352. \fBPR\fP \fI\%#23790\fP: (\fI\%aboe76\fP) updated suse spec file to version 2015.5.0 (refs: \fI\%#23812\fP)
  249353. .IP \(bu 2
  249354. 4cf30a7ffa Merge pull request \fI\%#23812\fP from rallytime/bp\-23790
  249355. .IP \(bu 2
  249356. 3f65631cb6 updated suse spec file to version 2015.5.0
  249357. .UNINDENT
  249358. .IP \(bu 2
  249359. \fBPR\fP \fI\%#23811\fP: (\fI\%rallytime\fP) Backport \fI\%#23786\fP to 2015.5
  249360. @ \fI2015\-05\-18 15:30:27 UTC\fP
  249361. .INDENT 2.0
  249362. .IP \(bu 2
  249363. \fBPR\fP \fI\%#23786\fP: (\fI\%kaithar\fP) Log the error generated that causes returns.mysql.returner to except. (refs: \fI\%#23811\fP)
  249364. .IP \(bu 2
  249365. c6f939adfb Merge pull request \fI\%#23811\fP from rallytime/bp\-23786
  249366. .IP \(bu 2
  249367. 346f30bdda Log the error generated that causes returns.mysql.returner to except.
  249368. .UNINDENT
  249369. .IP \(bu 2
  249370. \fBPR\fP \fI\%#23850\fP: (\fI\%jayeshka\fP) adding sysbench unit test case
  249371. @ \fI2015\-05\-18 15:28:04 UTC\fP
  249372. .INDENT 2.0
  249373. .IP \(bu 2
  249374. ce60582de4 Merge pull request \fI\%#23850\fP from jayeshka/sysbench\-unit\-test
  249375. .IP \(bu 2
  249376. 280abdec7c adding sysbench unit test case
  249377. .UNINDENT
  249378. .IP \(bu 2
  249379. \fBPR\fP \fI\%#23843\fP: (\fI\%The\-Loeki\fP) Fix erroneous virtual:physical core grain detection
  249380. @ \fI2015\-05\-18 15:24:22 UTC\fP
  249381. .INDENT 2.0
  249382. .IP \(bu 2
  249383. 060902fefa Merge pull request \fI\%#23843\fP from The\-Loeki/patch\-1
  249384. .IP \(bu 2
  249385. 9e2cf606eb Fix erroneous virtual:physical core grain detection
  249386. .UNINDENT
  249387. .IP \(bu 2
  249388. \fBISSUE\fP \fI\%#23815\fP: (\fI\%Snergster\fP) [beacons] inotify errors on subdir creation (refs: \fI\%#23816\fP)
  249389. .IP \(bu 2
  249390. \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)
  249391. .IP \(bu 2
  249392. \fBPR\fP \fI\%#23816\fP: (\fI\%Snergster\fP) Doc for \fI\%#23685\fP Added prereq, caution, and additional mask information
  249393. @ \fI2015\-05\-18 15:18:03 UTC\fP
  249394. .INDENT 2.0
  249395. .IP \(bu 2
  249396. 3257a9bead Merge pull request \fI\%#23816\fP from Snergster/23685\-doc\-fix
  249397. .IP \(bu 2
  249398. 0fca49d52a Added prereq, caution, and additional mask information
  249399. .UNINDENT
  249400. .IP \(bu 2
  249401. \fBPR\fP \fI\%#23832\fP: (\fI\%ahus1\fP) make saltify provider use standard boostrap procedure
  249402. @ \fI2015\-05\-18 02:18:29 UTC\fP
  249403. .INDENT 2.0
  249404. .IP \(bu 2
  249405. \fBPR\fP \fI\%#23829\fP: (\fI\%ahus1\fP) make saltify provider use standard boostrap procedure (refs: \fI\%#23832\fP)
  249406. .IP \(bu 2
  249407. 3df3b85090 Merge pull request \fI\%#23832\fP from ahus1/ahus1_saltify_bootstrap_2015.5
  249408. .IP \(bu 2
  249409. f5b1734782 fixing problem in unit test
  249410. .IP \(bu 2
  249411. cba47f6856 make saltify to use standard boostrap procedure, therefore providing all options like master_sign_pub_file
  249412. .UNINDENT
  249413. .IP \(bu 2
  249414. \fBPR\fP \fI\%#23791\fP: (\fI\%optix2000\fP) Psutil compat
  249415. @ \fI2015\-05\-16 04:05:54 UTC\fP
  249416. .INDENT 2.0
  249417. .IP \(bu 2
  249418. 8ec4fb2a73 Merge pull request \fI\%#23791\fP from optix2000/psutil_compat
  249419. .IP \(bu 2
  249420. 5470cf58db Fix pylint errors and sloppy inline comments
  249421. .IP \(bu 2
  249422. 64634b6349 Update psutil.pid_list to use psutil.pids
  249423. .IP \(bu 2
  249424. 5dd6d69192 Fix imports that aren\(aqt in __all__
  249425. .IP \(bu 2
  249426. 8a1da33ada Fix test cases by mocking psutil_compat
  249427. .IP \(bu 2
  249428. 558798df1f Fix net_io_counters deprecation issue
  249429. .IP \(bu 2
  249430. 8140f92ba8 Override unecessary pylint errors
  249431. .IP \(bu 2
  249432. 7d02ad4f06 Fix some of the mock names for the new API
  249433. .IP \(bu 2
  249434. 9b3023e851 Fix overloaded getters/setters. Fix line lengths
  249435. .IP \(bu 2
  249436. 180eb87a46 Fix whitespace
  249437. .IP \(bu 2
  249438. f8edf72f98 Use new psutil API in ps module
  249439. .IP \(bu 2
  249440. e48982ff9c Fix version checking in psutil_compat
  249441. .IP \(bu 2
  249442. 93ee411fd5 Create compatability psutil. psutil 3.0 drops 1.0 API, but we still support old psutil versions.
  249443. .UNINDENT
  249444. .IP \(bu 2
  249445. \fBPR\fP \fI\%#23782\fP: (\fI\%terminalmage\fP) Replace "command \-v" with "which" and get rid of spurious log messages
  249446. @ \fI2015\-05\-16 04:03:10 UTC\fP
  249447. .INDENT 2.0
  249448. .IP \(bu 2
  249449. 405517be8b Merge pull request \fI\%#23782\fP from terminalmage/issue23772
  249450. .IP \(bu 2
  249451. 0f6f239052 More ignore_retcode to suppress spurious log msgs
  249452. .IP \(bu 2
  249453. b4c48e62ea Ignore return code in lxc.attachable
  249454. .IP \(bu 2
  249455. 08658c0177 Replace "command \-v" with "which"
  249456. .UNINDENT
  249457. .IP \(bu 2
  249458. \fBPR\fP \fI\%#23783\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249459. @ \fI2015\-05\-15 21:38:51 UTC\fP
  249460. .INDENT 2.0
  249461. .IP \(bu 2
  249462. cb2eb401f3 Merge pull request \fI\%#23783\fP from basepi/merge\-forward\-2015.5
  249463. .IP \(bu 2
  249464. 9df51caf28 __opts__.get
  249465. .IP \(bu 2
  249466. 51d23ed9d0 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249467. .INDENT 2.0
  249468. .IP \(bu 2
  249469. d9af0c3e82 Merge pull request \fI\%#23488\fP from cellscape/lxc\-cloud\-fixes
  249470. .INDENT 2.0
  249471. .IP \(bu 2
  249472. 64250a67e5 Remove profile from opts after creating LXC container
  249473. .IP \(bu 2
  249474. c4047d2a71 Set destroy=True in opts when destroying cloud instance
  249475. .IP \(bu 2
  249476. 9e1311a7cd Store instance names in opts when performing cloud action
  249477. .IP \(bu 2
  249478. 934bc57c73 Correctly pass custom env to lxc\-attach
  249479. .IP \(bu 2
  249480. 7fb85f7be1 Preserve test=True option in cloud states
  249481. .IP \(bu 2
  249482. 9771b5a313 Fix detection of absent LXC container in cloud state
  249483. .IP \(bu 2
  249484. fb24f0cf02 Report failure when failed to create/clone LXC container
  249485. .IP \(bu 2
  249486. 2d9aa2bb97 Avoid shadowing variables in lxc module
  249487. .IP \(bu 2
  249488. 792e1021f2 Allow to override profile options in lxc.cloud_init_interface
  249489. .IP \(bu 2
  249490. 42bd64b9b3 Return changes on successful lxc.create from salt\-cloud
  249491. .IP \(bu 2
  249492. 4409eabb83 Return correct result when creating cloud LXC container
  249493. .IP \(bu 2
  249494. 377015c881 Issue \fI\%#16424\fP: List all providers when creating salt\-cloud instance without profile
  249495. .UNINDENT
  249496. .IP \(bu 2
  249497. 808bbe1cb2 Merge pull request \fI\%#23748\fP from basepi/salt\-ssh.roster.host.check
  249498. .INDENT 2.0
  249499. .IP \(bu 2
  249500. bc53e049e0 Log entire exception for render errors in roster
  249501. .IP \(bu 2
  249502. 753de6a621 Log render errors in roster to error level
  249503. .IP \(bu 2
  249504. e01a7a90b3 Always let the real YAML error through
  249505. .UNINDENT
  249506. .IP \(bu 2
  249507. 72cf360255 Merge pull request \fI\%#23731\fP from twangboy/fix_22959
  249508. .INDENT 2.0
  249509. .IP \(bu 2
  249510. 88e5495b2d Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  249511. .UNINDENT
  249512. .IP \(bu 2
  249513. 2610195262 Merge pull request \fI\%#23730\fP from rallytime/bp\-23729
  249514. .INDENT 2.0
  249515. .IP \(bu 2
  249516. 1877caecba adding support for nested grains to grains.item
  249517. .UNINDENT
  249518. .IP \(bu 2
  249519. 3e9df883d6 Merge pull request \fI\%#23688\fP from twangboy/fix_23415
  249520. .INDENT 2.0
  249521. .IP \(bu 2
  249522. 6a91169bae Fixed unused\-import pylint error
  249523. .IP \(bu 2
  249524. 5e25b3f355 fixed pylint errors
  249525. .IP \(bu 2
  249526. 1a9676626f Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  249527. .UNINDENT
  249528. .UNINDENT
  249529. .UNINDENT
  249530. .IP \(bu 2
  249531. \fBPR\fP \fI\%#23781\fP: (\fI\%jfindlay\fP) fix unit test mock errors on arch
  249532. @ \fI2015\-05\-15 19:40:07 UTC\fP
  249533. .INDENT 2.0
  249534. .IP \(bu 2
  249535. 982f87316d Merge pull request \fI\%#23781\fP from jfindlay/fix_locale_tests
  249536. .IP \(bu 2
  249537. 14c711eeb3 fix unit test mock errors on arch
  249538. .UNINDENT
  249539. .IP \(bu 2
  249540. \fBISSUE\fP \fI\%#23566\fP: (\fI\%rks2286\fP) Salt\-cp corrupting the file after transfer to minion (refs: \fI\%#23740\fP)
  249541. .IP \(bu 2
  249542. \fBPR\fP \fI\%#23740\fP: (\fI\%jfindlay\fP) Binary write
  249543. @ \fI2015\-05\-15 18:10:44 UTC\fP
  249544. .INDENT 2.0
  249545. .IP \(bu 2
  249546. 916b1c4f7c Merge pull request \fI\%#23740\fP from jfindlay/binary_write
  249547. .IP \(bu 2
  249548. 626930a4e5 update incorrect comment wording
  249549. .IP \(bu 2
  249550. a978f5c091 always use binary file write mode on windows
  249551. .UNINDENT
  249552. .IP \(bu 2
  249553. \fBISSUE\fP \fI\%#23682\fP: (\fI\%chrish42\fP) Pip module requires system pip, even when not used (with env_bin) (refs: \fI\%#23736\fP)
  249554. .IP \(bu 2
  249555. \fBPR\fP \fI\%#23736\fP: (\fI\%jfindlay\fP) always load pip execution module
  249556. @ \fI2015\-05\-15 18:10:16 UTC\fP
  249557. .INDENT 2.0
  249558. .IP \(bu 2
  249559. 348645ecd5 Merge pull request \fI\%#23736\fP from jfindlay/fix_pip
  249560. .IP \(bu 2
  249561. b8867a8c23 update pip tests
  249562. .IP \(bu 2
  249563. 040bbc42d2 only check pip version in one place
  249564. .IP \(bu 2
  249565. 6c453a5a2a check for executable status of bin_env
  249566. .IP \(bu 2
  249567. 3337257833 always load the pip module as pip could be anywhere
  249568. .UNINDENT
  249569. .IP \(bu 2
  249570. \fBPR\fP \fI\%#23770\fP: (\fI\%cellscape\fP) Fix cloud LXC container destruction
  249571. @ \fI2015\-05\-15 17:38:59 UTC\fP
  249572. .INDENT 2.0
  249573. .IP \(bu 2
  249574. 10cedfb174 Merge pull request \fI\%#23770\fP from cellscape/fix\-cloud\-lxc\-destruction
  249575. .IP \(bu 2
  249576. 4f6021c884 Fix cloud LXC container destruction
  249577. .UNINDENT
  249578. .IP \(bu 2
  249579. \fBPR\fP \fI\%#23759\fP: (\fI\%lisa2lisa\fP) fixed the problem for not beable to revoke \fI\&.\fP, for more detail https…
  249580. @ \fI2015\-05\-15 17:38:38 UTC\fP
  249581. .INDENT 2.0
  249582. .IP \(bu 2
  249583. ddea822b02 Merge pull request \fI\%#23759\fP from lisa2lisa/iss23664
  249584. .IP \(bu 2
  249585. 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
  249586. .UNINDENT
  249587. .IP \(bu 2
  249588. \fBPR\fP \fI\%#23769\fP: (\fI\%cellscape\fP) Fix file_roots CA lookup in salt.utils.http.get_ca_bundle
  249589. @ \fI2015\-05\-15 16:21:49 UTC\fP
  249590. .INDENT 2.0
  249591. .IP \(bu 2
  249592. 10615ff5a7 Merge pull request \fI\%#23769\fP from cellscape/utils\-http\-ca\-file\-roots
  249593. .IP \(bu 2
  249594. 8e90f3291b Fix file_roots CA lookup in salt.utils.http.get_ca_bundle
  249595. .UNINDENT
  249596. .IP \(bu 2
  249597. \fBPR\fP \fI\%#23765\fP: (\fI\%jayeshka\fP) adding states/makeconf unit test case
  249598. @ \fI2015\-05\-15 14:29:43 UTC\fP
  249599. .INDENT 2.0
  249600. .IP \(bu 2
  249601. fd8a1b797f Merge pull request \fI\%#23765\fP from jayeshka/makeconf_states\-unit\-test
  249602. .IP \(bu 2
  249603. 26e31afa31 adding states/makeconf unit test case
  249604. .UNINDENT
  249605. .IP \(bu 2
  249606. \fBPR\fP \fI\%#23760\fP: (\fI\%ticosax\fP) [doc] document refresh argument
  249607. @ \fI2015\-05\-15 14:23:47 UTC\fP
  249608. .INDENT 2.0
  249609. .IP \(bu 2
  249610. ee13b08027 Merge pull request \fI\%#23760\fP from ticosax/2015.5
  249611. .IP \(bu 2
  249612. e3ca859ba6 document refresh argument
  249613. .UNINDENT
  249614. .IP \(bu 2
  249615. \fBPR\fP \fI\%#23766\fP: (\fI\%jayeshka\fP) adding svn unit test case
  249616. @ \fI2015\-05\-15 14:23:18 UTC\fP
  249617. .INDENT 2.0
  249618. .IP \(bu 2
  249619. a017f725a4 Merge pull request \fI\%#23766\fP from jayeshka/svn\-unit\-test
  249620. .IP \(bu 2
  249621. 19939cfa98 adding svn unit test case
  249622. .UNINDENT
  249623. .IP \(bu 2
  249624. \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)
  249625. .IP \(bu 2
  249626. \fBPR\fP \fI\%#23751\fP: (\fI\%rallytime\fP) Backport \fI\%#23737\fP to 2015.5
  249627. @ \fI2015\-05\-15 03:58:37 UTC\fP
  249628. .INDENT 2.0
  249629. .IP \(bu 2
  249630. \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)
  249631. .IP \(bu 2
  249632. 0ed9d45114 Merge pull request \fI\%#23751\fP from rallytime/bp\-23737
  249633. .IP \(bu 2
  249634. 8d1eb326d0 fix for 2015.5.0 modules/archive.py ZipFile instance has no attribute \(aq__exit__\(aq \- only python 2.6? \fI\%#23734\fP
  249635. .UNINDENT
  249636. .IP \(bu 2
  249637. \fBISSUE\fP \fI\%#23709\fP: (\fI\%kiorky\fP) cmdmod: enhancement is really needed for stateful commands (refs: \fI\%#23710\fP)
  249638. .IP \(bu 2
  249639. \fBPR\fP \fI\%#23710\fP: (\fI\%kiorky\fP) Get more useful output from stateful commands
  249640. @ \fI2015\-05\-14 21:58:10 UTC\fP
  249641. .INDENT 2.0
  249642. .IP \(bu 2
  249643. d73984ec9c Merge pull request \fI\%#23710\fP from makinacorpus/i23709
  249644. .IP \(bu 2
  249645. c70690969e Get more useful output from stateful commands
  249646. .UNINDENT
  249647. .IP \(bu 2
  249648. \fBISSUE\fP \fI\%#23608\fP: (\fI\%kaidokert\fP) salt\-cloud file_map with non\-root user (refs: \fI\%#23609\fP)
  249649. .IP \(bu 2
  249650. \fBPR\fP \fI\%#23724\fP: (\fI\%rallytime\fP) Backport \fI\%#23609\fP to 2015.5
  249651. @ \fI2015\-05\-14 19:34:22 UTC\fP
  249652. .INDENT 2.0
  249653. .IP \(bu 2
  249654. \fBPR\fP \fI\%#23609\fP: (\fI\%kaidokert\fP) file_map: chown created directories if not root \fI\%#23608\fP (refs: \fI\%#23724\fP)
  249655. .IP \(bu 2
  249656. cdf421b9ed Merge pull request \fI\%#23724\fP from rallytime/bp\-23609
  249657. .IP \(bu 2
  249658. fe3a762673 file_map: chmod created directories if not root
  249659. .UNINDENT
  249660. .IP \(bu 2
  249661. \fBPR\fP \fI\%#23723\fP: (\fI\%rallytime\fP) Backport \fI\%#23568\fP to 2015.5
  249662. @ \fI2015\-05\-14 19:34:11 UTC\fP
  249663. .INDENT 2.0
  249664. .IP \(bu 2
  249665. \fBPR\fP \fI\%#23568\fP: (\fI\%techhat\fP) Allow Salt Cloud to use either SCP or SFTP, as configured (refs: \fI\%#23723\fP)
  249666. .IP \(bu 2
  249667. 94f9099307 Merge pull request \fI\%#23723\fP from rallytime/bp\-23568
  249668. .IP \(bu 2
  249669. bbec34abd3 Allow Salt Cloud to use either SCP or SFTP, as configured
  249670. .UNINDENT
  249671. .IP \(bu 2
  249672. \fBPR\fP \fI\%#23725\fP: (\fI\%rallytime\fP) Backport \fI\%#23691\fP to 2015.5
  249673. @ \fI2015\-05\-14 19:32:30 UTC\fP
  249674. .INDENT 2.0
  249675. .IP \(bu 2
  249676. \fBPR\fP \fI\%#23691\fP: (\fI\%dennisjac\fP) add initial configuration documentation for varstack pillar (refs: \fI\%#23725\fP)
  249677. .IP \(bu 2
  249678. 137e5eefd0 Merge pull request \fI\%#23725\fP from rallytime/bp\-23691
  249679. .IP \(bu 2
  249680. 28a846ebe8 add initial configuration documentation for varstack pillar
  249681. .UNINDENT
  249682. .IP \(bu 2
  249683. \fBPR\fP \fI\%#23722\fP: (\fI\%rallytime\fP) Backport \fI\%#23472\fP to 2015.5
  249684. @ \fI2015\-05\-14 19:31:52 UTC\fP
  249685. .INDENT 2.0
  249686. .IP \(bu 2
  249687. \fBPR\fP \fI\%#23472\fP: (\fI\%techhat\fP) Allow neutron network list to be used as pillar data (refs: \fI\%#23722\fP)
  249688. .IP \(bu 2
  249689. 0c00995dfb Merge pull request \fI\%#23722\fP from rallytime/bp\-23472
  249690. .IP \(bu 2
  249691. c3d0f39515 Change versionadded tag for backport
  249692. .IP \(bu 2
  249693. 023e88f264 Allow neutron network list to be used as pillar data
  249694. .UNINDENT
  249695. .IP \(bu 2
  249696. \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)
  249697. .IP \(bu 2
  249698. \fBPR\fP \fI\%#23727\fP: (\fI\%jfindlay\fP) fix npm execution module stacktrace
  249699. @ \fI2015\-05\-14 18:14:12 UTC\fP
  249700. .INDENT 2.0
  249701. .IP \(bu 2
  249702. cbf4ca8d91 Merge pull request \fI\%#23727\fP from jfindlay/npm_salt
  249703. .IP \(bu 2
  249704. 05392f282e fix npm execution module stacktrace
  249705. .UNINDENT
  249706. .IP \(bu 2
  249707. \fBPR\fP \fI\%#23718\fP: (\fI\%rahulhan\fP) Adding states/user.py unit tests
  249708. @ \fI2015\-05\-14 17:15:38 UTC\fP
  249709. .INDENT 2.0
  249710. .IP \(bu 2
  249711. ef536d58de Merge pull request \fI\%#23718\fP from rahulhan/states_user_unit_tests
  249712. .IP \(bu 2
  249713. aad27db513 Adding states/user.py unit tests
  249714. .UNINDENT
  249715. .IP \(bu 2
  249716. \fBPR\fP \fI\%#23720\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249717. @ \fI2015\-05\-14 17:13:02 UTC\fP
  249718. .INDENT 2.0
  249719. .IP \(bu 2
  249720. a529d74079 Merge pull request \fI\%#23720\fP from basepi/merge\-forward\-2015.5
  249721. .IP \(bu 2
  249722. 06a3ebd9d1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249723. .IP \(bu 2
  249724. 1b86460d73 Merge pull request \fI\%#23680\fP from cachedout/issue_23403
  249725. .INDENT 2.0
  249726. .IP \(bu 2
  249727. d5986c21b4 Rename kwarg in cloud runner
  249728. .UNINDENT
  249729. .IP \(bu 2
  249730. cd64af0ce4 Merge pull request \fI\%#23674\fP from cachedout/issue_23548
  249731. .INDENT 2.0
  249732. .IP \(bu 2
  249733. da8a2f5cb3 Handle lists correctly in grains.list_prsesent
  249734. .UNINDENT
  249735. .IP \(bu 2
  249736. d322a19213 Merge pull request \fI\%#23672\fP from twangboy/fix_user_present
  249737. .INDENT 2.0
  249738. .IP \(bu 2
  249739. 731e7af3dd Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_user_present
  249740. .IP \(bu 2
  249741. d6f70a4545 Fixed user.present to create password in windows
  249742. .UNINDENT
  249743. .IP \(bu 2
  249744. 43f7025000 Merge pull request \fI\%#23670\fP from rallytime/bp\-23607
  249745. .INDENT 2.0
  249746. .IP \(bu 2
  249747. ed30dc4642 Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok
  249748. .UNINDENT
  249749. .UNINDENT
  249750. .IP \(bu 2
  249751. \fBPR\fP \fI\%#23704\fP: (\fI\%jayeshka\fP) adding states/lvs_server unit test case
  249752. @ \fI2015\-05\-14 14:22:10 UTC\fP
  249753. .INDENT 2.0
  249754. .IP \(bu 2
  249755. 13facbf077 Merge pull request \fI\%#23704\fP from jayeshka/lvs_server_states\-unit\-test
  249756. .IP \(bu 2
  249757. da323dab0b adding states/lvs_server unit test case
  249758. .UNINDENT
  249759. .IP \(bu 2
  249760. \fBPR\fP \fI\%#23703\fP: (\fI\%jayeshka\fP) adding states/lvs_service unit test case
  249761. @ \fI2015\-05\-14 14:21:23 UTC\fP
  249762. .INDENT 2.0
  249763. .IP \(bu 2
  249764. f95ca3188f Merge pull request \fI\%#23703\fP from jayeshka/lvs_service_states\-unit\-test
  249765. .IP \(bu 2
  249766. 66717c8133 adding states/lvs_service unit test case
  249767. .UNINDENT
  249768. .IP \(bu 2
  249769. \fBPR\fP \fI\%#23702\fP: (\fI\%jayeshka\fP) Remove superfluous return statement.
  249770. @ \fI2015\-05\-14 14:20:42 UTC\fP
  249771. .INDENT 2.0
  249772. .IP \(bu 2
  249773. 07e987e327 Merge pull request \fI\%#23702\fP from jayeshka/fix_lvs_service
  249774. .IP \(bu 2
  249775. ecff2181e4 fix lvs_service
  249776. .UNINDENT
  249777. .IP \(bu 2
  249778. \fBPR\fP \fI\%#23686\fP: (\fI\%jfindlay\fP) remove superflous return statement
  249779. @ \fI2015\-05\-14 14:20:18 UTC\fP
  249780. .INDENT 2.0
  249781. .IP \(bu 2
  249782. 39973d4095 Merge pull request \fI\%#23686\fP from jfindlay/fix_lvs_server
  249783. .IP \(bu 2
  249784. 5aaeb73532 remove superflous return statement
  249785. .UNINDENT
  249786. .IP \(bu 2
  249787. \fBPR\fP \fI\%#23690\fP: (\fI\%rallytime\fP) Backport \fI\%#23424\fP to 2015.5
  249788. @ \fI2015\-05\-13 23:04:36 UTC\fP
  249789. .INDENT 2.0
  249790. .IP \(bu 2
  249791. \fBPR\fP \fI\%#23424\fP: (\fI\%justinta\fP) Added python_shell=True for refresh_db in pacman.py (refs: \fI\%#23690\fP)
  249792. .IP \(bu 2
  249793. be7c7ef3fd Merge pull request \fI\%#23690\fP from rallytime/bp\-23424
  249794. .IP \(bu 2
  249795. 94574b7367 Added python_shell=True for refresh_db in pacman.py
  249796. .UNINDENT
  249797. .IP \(bu 2
  249798. \fBPR\fP \fI\%#23681\fP: (\fI\%cachedout\fP) Start on 2015.5.1 release notes
  249799. @ \fI2015\-05\-13 19:44:22 UTC\fP
  249800. .INDENT 2.0
  249801. .IP \(bu 2
  249802. 1a0db43097 Merge pull request \fI\%#23681\fP from cachedout/2015_5_1_release_notes
  249803. .IP \(bu 2
  249804. bdbbfa6ee7 Start on 2015.5.1 release notes
  249805. .UNINDENT
  249806. .IP \(bu 2
  249807. \fBPR\fP \fI\%#23679\fP: (\fI\%jfindlay\fP) Merge \fI\%#23616\fP
  249808. @ \fI2015\-05\-13 19:03:53 UTC\fP
  249809. .INDENT 2.0
  249810. .IP \(bu 2
  249811. \fBPR\fP \fI\%#23616\fP: (\fI\%Snergster\fP) virtual returning none warning fixed in dev but missed in 2015.5 (refs: \fI\%#23679\fP)
  249812. .IP \(bu 2
  249813. b54075a2ac Merge pull request \fI\%#23679\fP from jfindlay/merge_23616
  249814. .IP \(bu 2
  249815. 6e15e19907 appease pylint\(aqs blank line strictures
  249816. .IP \(bu 2
  249817. 8750680d9e virtual returning none warning fixed in dev but missed in 2015.5
  249818. .UNINDENT
  249819. .IP \(bu 2
  249820. \fBPR\fP \fI\%#23675\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249821. @ \fI2015\-05\-13 18:35:54 UTC\fP
  249822. .INDENT 2.0
  249823. .IP \(bu 2
  249824. e480f13688 Merge pull request \fI\%#23675\fP from basepi/merge\-forward\-2015.5
  249825. .IP \(bu 2
  249826. bd635488ef Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249827. .INDENT 2.0
  249828. .IP \(bu 2
  249829. 0f006ac1d8 Merge pull request \fI\%#23661\fP from rallytime/merge\-23640
  249830. .INDENT 2.0
  249831. .IP \(bu 2
  249832. 4427f42bb6 Whitespace fix
  249833. .IP \(bu 2
  249834. dd9115466e Add warning to get_or_set_hash about reserved chars
  249835. .UNINDENT
  249836. .IP \(bu 2
  249837. 84e2ef88fc Merge pull request \fI\%#23639\fP from cachedout/issue_23452
  249838. .INDENT 2.0
  249839. .IP \(bu 2
  249840. d418b49a77 Syntax error!
  249841. .IP \(bu 2
  249842. 45b4015d7d Handle exceptions raised by __virtual__
  249843. .UNINDENT
  249844. .IP \(bu 2
  249845. bd9b94ba8c Merge pull request \fI\%#23637\fP from cachedout/issue_23611
  249846. .INDENT 2.0
  249847. .IP \(bu 2
  249848. 56cb1f52e3 Fix typo
  249849. .IP \(bu 2
  249850. f6fcf19a7f Convert str master to list
  249851. .UNINDENT
  249852. .IP \(bu 2
  249853. f20c0e42ce Merge pull request \fI\%#23595\fP from rallytime/bp\-23549
  249854. .INDENT 2.0
  249855. .IP \(bu 2
  249856. 6efcac09ad Update __init__.py
  249857. .UNINDENT
  249858. .IP \(bu 2
  249859. 1acaf86da7 Merge pull request \fI\%#23594\fP from rallytime/bp\-23496
  249860. .INDENT 2.0
  249861. .IP \(bu 2
  249862. d5ae1d268a Fix for issue \fI\%#23110\fP This resolves issues when the freshly created directory is removed by fileserver.update.
  249863. .UNINDENT
  249864. .IP \(bu 2
  249865. 2c221c7332 Merge pull request \fI\%#23593\fP from rallytime/bp\-23442
  249866. .INDENT 2.0
  249867. .IP \(bu 2
  249868. 39869a15bd check w/ low[\(aqname\(aq] only
  249869. .IP \(bu 2
  249870. 304cc499e9 another fix for file defined w/ id, but require name
  249871. .IP \(bu 2
  249872. 8814d4180e add directory itself to keep list
  249873. .UNINDENT
  249874. .IP \(bu 2
  249875. fadd1ef63c Merge pull request \fI\%#23606\fP from twangboy/fix_installer
  249876. .INDENT 2.0
  249877. .IP \(bu 2
  249878. 038331edab Fixed checkbox for starting service and actually starting it
  249879. .UNINDENT
  249880. .UNINDENT
  249881. .IP \(bu 2
  249882. acdd3fc6bd Fix lint
  249883. .IP \(bu 2
  249884. 680e88f058 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249885. .INDENT 2.0
  249886. .IP \(bu 2
  249887. 10b3f0f643 Merge pull request \fI\%#23592\fP from rallytime/bp\-23389
  249888. .INDENT 2.0
  249889. .IP \(bu 2
  249890. 734cc43801 Correct fail_hard typo
  249891. .UNINDENT
  249892. .IP \(bu 2
  249893. cd34b9b6c4 Merge pull request \fI\%#23573\fP from techhat/novaquery
  249894. .INDENT 2.0
  249895. .IP \(bu 2
  249896. f92db5e92f Linting
  249897. .IP \(bu 2
  249898. 26e00d3ccc Scan all available networks for public and private IPs
  249899. .UNINDENT
  249900. .IP \(bu 2
  249901. 2a72cd71c2 Merge pull request \fI\%#23558\fP from jfindlay/fix_ebuild
  249902. .INDENT 2.0
  249903. .IP \(bu 2
  249904. 45404fb2a6 reorder emerge command line
  249905. .UNINDENT
  249906. .IP \(bu 2
  249907. a664a3c6fd Merge pull request \fI\%#23530\fP from dr4Ke/fix_salt\-ssh_to_include_pkg_sources
  249908. .INDENT 2.0
  249909. .IP \(bu 2
  249910. 5df6a8008c fix pylint warning
  249911. .IP \(bu 2
  249912. d0549e56ba salt\-ssh state: fix including all salt:// references
  249913. .UNINDENT
  249914. .IP \(bu 2
  249915. 55c3869861 Merge pull request \fI\%#23433\fP from twangboy/list_pkgs_fix
  249916. .INDENT 2.0
  249917. .IP \(bu 2
  249918. 8ab5b1b86f Fix pylint error
  249919. .IP \(bu 2
  249920. 2d11d6545e Obtain all software from the registry
  249921. .UNINDENT
  249922. .IP \(bu 2
  249923. 755bed0abd Merge pull request \fI\%#23554\fP from jleroy/debian\-hostname\-fix
  249924. .INDENT 2.0
  249925. .IP \(bu 2
  249926. 5ff749e487 Debian: Hostname always updated
  249927. .UNINDENT
  249928. .IP \(bu 2
  249929. 6ec87ce9f5 Merge pull request \fI\%#23551\fP from dr4Ke/grains.append_unit_tests
  249930. .INDENT 2.0
  249931. .IP \(bu 2
  249932. ebff9df5b2 fix pylint errors
  249933. .IP \(bu 2
  249934. c4954046ad unit tests for grains.append module function
  249935. .IP \(bu 2
  249936. 0c9a32326c use MagickMock
  249937. .IP \(bu 2
  249938. c838a22377 unit tests for grains.append module function
  249939. .UNINDENT
  249940. .IP \(bu 2
  249941. e96c5c5bf3 Merge pull request \fI\%#23474\fP from dr4Ke/fix_grains.append_nested
  249942. .INDENT 2.0
  249943. .IP \(bu 2
  249944. a01a5bb51e grains.get, parameter delimititer, versionadded: 2014.7.6
  249945. .IP \(bu 2
  249946. b39f50475d remove debugging output
  249947. .IP \(bu 2
  249948. b6e15e295c fix grains.append in nested dictionnary grains \fI\%#23411\fP
  249949. .UNINDENT
  249950. .IP \(bu 2
  249951. ab7e1aed8e Merge pull request \fI\%#23537\fP from t0rrant/patch\-1
  249952. .INDENT 2.0
  249953. .IP \(bu 2
  249954. 8e03cc99d3 Update changelog
  249955. .UNINDENT
  249956. .UNINDENT
  249957. .UNINDENT
  249958. .IP \(bu 2
  249959. \fBPR\fP \fI\%#23669\fP: (\fI\%rallytime\fP) Backport \fI\%#23586\fP to 2015.5
  249960. @ \fI2015\-05\-13 18:27:11 UTC\fP
  249961. .INDENT 2.0
  249962. .IP \(bu 2
  249963. \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)
  249964. .IP \(bu 2
  249965. 0dad6be0fc Merge pull request \fI\%#23669\fP from rallytime/bp\-23586
  249966. .IP \(bu 2
  249967. ef4c6adae3 Remove another unused import
  249968. .IP \(bu 2
  249969. 73cfda751a Remove unused import
  249970. .IP \(bu 2
  249971. 52b68d695a Use the zip_longest from six module for python 3 compatiblity
  249972. .IP \(bu 2
  249973. 18d5ff9a8e Fix salt.state.file._unify_sources_and_hashes when sources is used without sources_hashes
  249974. .UNINDENT
  249975. .IP \(bu 2
  249976. \fBPR\fP \fI\%#23662\fP: (\fI\%rallytime\fP) Merge \fI\%#23642\fP with pylint fix
  249977. @ \fI2015\-05\-13 15:46:51 UTC\fP
  249978. .INDENT 2.0
  249979. .IP \(bu 2
  249980. \fBPR\fP \fI\%#23642\fP: (\fI\%cachedout\fP) Let saltmod handle lower\-level exceptions gracefully (refs: \fI\%#23662\fP)
  249981. .IP \(bu 2
  249982. fabef759e0 Merge pull request \fI\%#23662\fP from rallytime/merge\-23642
  249983. .IP \(bu 2
  249984. aa7bbd84fa Remove unused import
  249985. .IP \(bu 2
  249986. 9e66d4c88e Let saltmod handle lower\-level exceptions gracefully
  249987. .UNINDENT
  249988. .IP \(bu 2
  249989. \fBPR\fP \fI\%#23622\fP: (\fI\%jfindlay\fP) merge \fI\%#23508\fP
  249990. @ \fI2015\-05\-13 15:36:49 UTC\fP
  249991. .INDENT 2.0
  249992. .IP \(bu 2
  249993. \fBPR\fP \fI\%#23508\fP: (\fI\%cro\fP) Port mysql returner to postgres using jsonb datatype (refs: \fI\%#23622\fP)
  249994. .IP \(bu 2
  249995. 072b92733d Merge pull request \fI\%#23622\fP from jfindlay/pgjsonb
  249996. .IP \(bu 2
  249997. 454322c7e4 appease pylint\(aqs proscription on blank line excess
  249998. .IP \(bu 2
  249999. 57c617136d Get time with timezone correct also in job return.
  250000. .IP \(bu 2
  250001. e109d0f643 Get time with timezone correct.
  250002. .IP \(bu 2
  250003. 21e06b9112 Fix SQL, remove unneeded imports.
  250004. .IP \(bu 2
  250005. 653f360723 Stop making changes in 2 places.
  250006. .IP \(bu 2
  250007. d6daaa0292 Typo.
  250008. .IP \(bu 2
  250009. 7d748bff75 SSL is handled differently by Pg, so don\(aqt set it here.
  250010. .IP \(bu 2
  250011. cc7c377bcd Fill alter_time field in salt_events with current time with timezone.
  250012. .IP \(bu 2
  250013. 43defe9b20 Port mysql module to Postgres using jsonb datatypes
  250014. .UNINDENT
  250015. .IP \(bu 2
  250016. \fBPR\fP \fI\%#23651\fP: (\fI\%jayeshka\fP) adding solr unit test case
  250017. @ \fI2015\-05\-13 15:26:15 UTC\fP
  250018. .INDENT 2.0
  250019. .IP \(bu 2
  250020. c1bdd4d377 Merge pull request \fI\%#23651\fP from jayeshka/solr\-unit\-test
  250021. .IP \(bu 2
  250022. 6e05148962 adding solr unit test case
  250023. .UNINDENT
  250024. .IP \(bu 2
  250025. \fBPR\fP \fI\%#23649\fP: (\fI\%jayeshka\fP) adding states/libvirt unit test case
  250026. @ \fI2015\-05\-13 15:24:48 UTC\fP
  250027. .INDENT 2.0
  250028. .IP \(bu 2
  250029. ee43411677 Merge pull request \fI\%#23649\fP from jayeshka/libvirt_states\-unit\-test
  250030. .IP \(bu 2
  250031. 0fb923a283 adding states/libvirt unit test case
  250032. .UNINDENT
  250033. .IP \(bu 2
  250034. \fBPR\fP \fI\%#23648\fP: (\fI\%jayeshka\fP) adding states/linux_acl unit test case
  250035. @ \fI2015\-05\-13 15:24:11 UTC\fP
  250036. .INDENT 2.0
  250037. .IP \(bu 2
  250038. c7fc466f1e Merge pull request \fI\%#23648\fP from jayeshka/linux_acl_states\-unit\-test
  250039. .IP \(bu 2
  250040. 3f0ab29eb0 removed error.
  250041. .IP \(bu 2
  250042. 11081c121c adding states/linux_acl unit test case
  250043. .UNINDENT
  250044. .IP \(bu 2
  250045. \fBPR\fP \fI\%#23650\fP: (\fI\%jayeshka\fP) adding states/kmod unit test case
  250046. @ \fI2015\-05\-13 15:09:18 UTC\fP
  250047. .INDENT 2.0
  250048. .IP \(bu 2
  250049. 4cba7ba35c Merge pull request \fI\%#23650\fP from jayeshka/kmod_states\-unit\-test
  250050. .IP \(bu 2
  250051. 1987015033 adding states/kmod unit test case
  250052. .UNINDENT
  250053. .IP \(bu 2
  250054. \fBPR\fP \fI\%#23633\fP: (\fI\%jayeshka\fP) made changes to test_interfaces function.
  250055. @ \fI2015\-05\-13 06:51:07 UTC\fP
  250056. .INDENT 2.0
  250057. .IP \(bu 2
  250058. bc8faf1543 Merge pull request \fI\%#23633\fP from jayeshka/win_network\-2015.5\-unit\-test
  250059. .IP \(bu 2
  250060. 0936e1d386 made changes to test_interfaces function.
  250061. .UNINDENT
  250062. .IP \(bu 2
  250063. \fBPR\fP \fI\%#23619\fP: (\fI\%jfindlay\fP) fix kmod.present processing of module loading
  250064. @ \fI2015\-05\-13 01:16:56 UTC\fP
  250065. .INDENT 2.0
  250066. .IP \(bu 2
  250067. 7df3579bbc Merge pull request \fI\%#23619\fP from jfindlay/fix_kmod_state
  250068. .IP \(bu 2
  250069. 73facbfc1f fix kmod.present processing of module loading
  250070. .UNINDENT
  250071. .IP \(bu 2
  250072. \fBPR\fP \fI\%#23598\fP: (\fI\%rahulhan\fP) Adding states/win_dns_client.py unit tests
  250073. @ \fI2015\-05\-12 21:47:36 UTC\fP
  250074. .INDENT 2.0
  250075. .IP \(bu 2
  250076. d4f30955fa Merge pull request \fI\%#23598\fP from rahulhan/states_win_dns_client_unit_test
  250077. .IP \(bu 2
  250078. d08d885828 Adding states/win_dns_client.py unit tests
  250079. .UNINDENT
  250080. .IP \(bu 2
  250081. \fBPR\fP \fI\%#23597\fP: (\fI\%rahulhan\fP) Adding states/vbox_guest.py unit tests
  250082. @ \fI2015\-05\-12 21:46:30 UTC\fP
  250083. .INDENT 2.0
  250084. .IP \(bu 2
  250085. 811c6a1d89 Merge pull request \fI\%#23597\fP from rahulhan/states_vbox_guest_unit_test
  250086. .IP \(bu 2
  250087. 6a2909eeea Removed errors
  250088. .IP \(bu 2
  250089. 4cde78a58a Adding states/vbox_guest.py unit tests
  250090. .UNINDENT
  250091. .IP \(bu 2
  250092. \fBPR\fP \fI\%#23615\fP: (\fI\%rallytime\fP) Backport \fI\%#23577\fP to 2015.5
  250093. @ \fI2015\-05\-12 21:19:11 UTC\fP
  250094. .INDENT 2.0
  250095. .IP \(bu 2
  250096. \fBPR\fP \fI\%#23577\fP: (\fI\%msciciel\fP) Fix find and remove functions to pass database param (refs: \fI\%#23615\fP)
  250097. .IP \(bu 2
  250098. 029ff1103d Merge pull request \fI\%#23615\fP from rallytime/bp\-23577
  250099. .IP \(bu 2
  250100. 6f74477129 Fix find and remove functions to pass database param
  250101. .UNINDENT
  250102. .IP \(bu 2
  250103. \fBPR\fP \fI\%#23603\fP: (\fI\%rahulhan\fP) Adding states/winrepo.py unit tests
  250104. @ \fI2015\-05\-12 18:40:12 UTC\fP
  250105. .INDENT 2.0
  250106. .IP \(bu 2
  250107. b8589532d1 Merge pull request \fI\%#23603\fP from rahulhan/states_winrepo_unit_test
  250108. .IP \(bu 2
  250109. a66e7e7f1f Adding states/winrepo.py unit tests
  250110. .UNINDENT
  250111. .IP \(bu 2
  250112. \fBPR\fP \fI\%#23602\fP: (\fI\%rahulhan\fP) Adding states/win_path.py unit tests
  250113. @ \fI2015\-05\-12 18:39:37 UTC\fP
  250114. .INDENT 2.0
  250115. .IP \(bu 2
  250116. 3cbbd6d277 Merge pull request \fI\%#23602\fP from rahulhan/states_win_path_unit_test
  250117. .IP \(bu 2
  250118. 122c29f71a Adding states/win_path.py unit tests
  250119. .UNINDENT
  250120. .IP \(bu 2
  250121. \fBPR\fP \fI\%#23600\fP: (\fI\%rahulhan\fP) Adding states/win_network.py unit tests
  250122. @ \fI2015\-05\-12 18:39:01 UTC\fP
  250123. .INDENT 2.0
  250124. .IP \(bu 2
  250125. 3c904e8739 Merge pull request \fI\%#23600\fP from rahulhan/states_win_network_unit_test
  250126. .IP \(bu 2
  250127. b418404eb7 removed lint error
  250128. .IP \(bu 2
  250129. 1be802300b Adding states/win_network.py unit tests
  250130. .UNINDENT
  250131. .IP \(bu 2
  250132. \fBPR\fP \fI\%#23599\fP: (\fI\%rahulhan\fP) Adding win_firewall.py unit tests
  250133. @ \fI2015\-05\-12 18:37:49 UTC\fP
  250134. .INDENT 2.0
  250135. .IP \(bu 2
  250136. 10243a7742 Merge pull request \fI\%#23599\fP from rahulhan/states_win_firewall_unit_test
  250137. .IP \(bu 2
  250138. 6cda890517 Adding win_firewall.py unit tests
  250139. .UNINDENT
  250140. .IP \(bu 2
  250141. \fBPR\fP \fI\%#23601\fP: (\fI\%basepi\fP) Add versionadded for jboss module/state
  250142. @ \fI2015\-05\-12 17:22:59 UTC\fP
  250143. .INDENT 2.0
  250144. .IP \(bu 2
  250145. e73071dbdf Merge pull request \fI\%#23601\fP from basepi/jboss.version.added
  250146. .IP \(bu 2
  250147. 0174c8fe58 Add versionadded for jboss module/state
  250148. .UNINDENT
  250149. .IP \(bu 2
  250150. \fBPR\fP \fI\%#23469\fP: (\fI\%s0undt3ch\fP) Call the windows specific function not the general one
  250151. @ \fI2015\-05\-12 16:47:22 UTC\fP
  250152. .INDENT 2.0
  250153. .IP \(bu 2
  250154. 9beb7bc529 Merge pull request \fI\%#23469\fP from s0undt3ch/hotfix/call\-the\-win\-func
  250155. .IP \(bu 2
  250156. 83e88a3eb1 Call the windows specific function not the general one
  250157. .UNINDENT
  250158. .IP \(bu 2
  250159. \fBPR\fP \fI\%#23583\fP: (\fI\%jayeshka\fP) adding states/ipset unit test case
  250160. @ \fI2015\-05\-12 16:31:55 UTC\fP
  250161. .INDENT 2.0
  250162. .IP \(bu 2
  250163. d2f097584c Merge pull request \fI\%#23583\fP from jayeshka/ipset_states\-unit\-test
  250164. .IP \(bu 2
  250165. 4330cf4a6e adding states/ipset unit test case
  250166. .UNINDENT
  250167. .IP \(bu 2
  250168. \fBPR\fP \fI\%#23582\fP: (\fI\%jayeshka\fP) adding states/keyboard unit test case
  250169. @ \fI2015\-05\-12 16:31:17 UTC\fP
  250170. .INDENT 2.0
  250171. .IP \(bu 2
  250172. 82a47e8cbf Merge pull request \fI\%#23582\fP from jayeshka/keyboard_states\-unit\-test
  250173. .IP \(bu 2
  250174. fa94d7ab5c adding states/keyboard unit test case
  250175. .UNINDENT
  250176. .IP \(bu 2
  250177. \fBPR\fP \fI\%#23581\fP: (\fI\%jayeshka\fP) adding states/layman unit test case
  250178. @ \fI2015\-05\-12 16:30:36 UTC\fP
  250179. .INDENT 2.0
  250180. .IP \(bu 2
  250181. 77e5b28566 Merge pull request \fI\%#23581\fP from jayeshka/layman_states\-unit\-test
  250182. .IP \(bu 2
  250183. 297b055b1c adding states/layman unit test case
  250184. .UNINDENT
  250185. .IP \(bu 2
  250186. \fBPR\fP \fI\%#23580\fP: (\fI\%jayeshka\fP) adding smf unit test case
  250187. @ \fI2015\-05\-12 16:29:58 UTC\fP
  250188. .INDENT 2.0
  250189. .IP \(bu 2
  250190. cbe32828ef Merge pull request \fI\%#23580\fP from jayeshka/smf\-unit\-test
  250191. .IP \(bu 2
  250192. 4f9719157b adding smf unit test case
  250193. .UNINDENT
  250194. .IP \(bu 2
  250195. \fBISSUE\fP \fI\%#21603\fP: (\fI\%ipmb\fP) ssh_auth.present fails on key without comment (refs: \fI\%#23572\fP)
  250196. .IP \(bu 2
  250197. \fBPR\fP \fI\%#23572\fP: (\fI\%The\-Loeki\fP) Fix regression of \fI\%#21355\fP introduced by \fI\%#21603\fP
  250198. @ \fI2015\-05\-12 16:28:05 UTC\fP
  250199. .INDENT 2.0
  250200. .IP \(bu 2
  250201. \fBPR\fP \fI\%#21355\fP: (\fI\%The\-Loeki\fP) Fix for comments containing whitespaces (refs: \fI\%#23572\fP)
  250202. .IP \(bu 2
  250203. 16a333832a Merge pull request \fI\%#23572\fP from The\-Loeki/ssh_auth_fix
  250204. .IP \(bu 2
  250205. d8248dd368 Fix regression of \fI\%#21355\fP introduced by \fI\%#21603\fP
  250206. .UNINDENT
  250207. .IP \(bu 2
  250208. \fBISSUE\fP \fI\%#23490\fP: (\fI\%lichtamberg\fP) salt.modules.aptpkg.upgrade should have default "dist_upgrade=False" (refs: \fI\%#23565\fP)
  250209. .IP \(bu 2
  250210. \fBPR\fP \fI\%#23565\fP: (\fI\%garethgreenaway\fP) fix to aptpkg module
  250211. @ \fI2015\-05\-12 16:25:46 UTC\fP
  250212. .INDENT 2.0
  250213. .IP \(bu 2
  250214. f843f89cd7 Merge pull request \fI\%#23565\fP from garethgreenaway/2015_2_aptpkg_upgrade_default_to_upgrade
  250215. .IP \(bu 2
  250216. 97ae514641 aptpkg.upgrade should default to upgrade instead of dist_upgrade.
  250217. .UNINDENT
  250218. .IP \(bu 2
  250219. \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)
  250220. .IP \(bu 2
  250221. \fBPR\fP \fI\%#23550\fP: (\fI\%jfindlay\fP) additional mock for rh_ip_test test_build_bond
  250222. @ \fI2015\-05\-12 15:17:16 UTC\fP
  250223. .INDENT 2.0
  250224. .IP \(bu 2
  250225. c1157cdaee Merge pull request \fI\%#23550\fP from jfindlay/fix_rh_ip_test
  250226. .IP \(bu 2
  250227. e9b94d36d3 additional mock for rh_ip_test test_build_bond
  250228. .UNINDENT
  250229. .IP \(bu 2
  250230. \fBPR\fP \fI\%#23552\fP: (\fI\%garethgreenaway\fP) Fix for an issue caused by a previous pull request
  250231. @ \fI2015\-05\-11 21:54:59 UTC\fP
  250232. .INDENT 2.0
  250233. .IP \(bu 2
  250234. b593328176 Merge pull request \fI\%#23552\fP from garethgreenaway/2015_5_returner_fix_broken_previous_pr
  250235. .IP \(bu 2
  250236. 7d70e2b334 Passed argumentes in the call _fetch_profile_opts to were in the wrong order
  250237. .UNINDENT
  250238. .IP \(bu 2
  250239. \fBPR\fP \fI\%#23547\fP: (\fI\%slinu3d\fP) Added AWS v4 signature support for 2015.5
  250240. @ \fI2015\-05\-11 21:52:24 UTC\fP
  250241. .INDENT 2.0
  250242. .IP \(bu 2
  250243. d0f96825dd Merge pull request \fI\%#23547\fP from slinu3d/2015.5
  250244. .IP \(bu 2
  250245. f3bfdb561b Fixed urlparse and urlencode calls
  250246. .IP \(bu 2
  250247. 802dbdb965 Added AWS v4 signature support for 2015.5
  250248. .UNINDENT
  250249. .IP \(bu 2
  250250. \fBPR\fP \fI\%#23544\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  250251. @ \fI2015\-05\-11 18:02:06 UTC\fP
  250252. .INDENT 2.0
  250253. .IP \(bu 2
  250254. 06c6a1f44a Merge pull request \fI\%#23544\fP from basepi/merge\-forward\-2015.5
  250255. .IP \(bu 2
  250256. f8a36bc155 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  250257. .INDENT 2.0
  250258. .IP \(bu 2
  250259. b79fed3a92 Merge pull request \fI\%#23538\fP from cro/licupdate
  250260. .INDENT 2.0
  250261. .IP \(bu 2
  250262. 345efe25c9 Update date in LICENSE file
  250263. .UNINDENT
  250264. .IP \(bu 2
  250265. a123a36f05 Merge pull request \fI\%#23505\fP from aneeshusa/remove\-unused\-ssh\-config\-validator
  250266. .INDENT 2.0
  250267. .IP \(bu 2
  250268. 90af1672ca Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  250269. .UNINDENT
  250270. .IP \(bu 2
  250271. ca2c21a63c Merge pull request \fI\%#23467\fP from slinu3d/2014.7
  250272. .INDENT 2.0
  250273. .IP \(bu 2
  250274. 0b4081d8f4 Fixed pylint error at line 363
  250275. .IP \(bu 2
  250276. 5be5eb5b14 Fixed pylink errors
  250277. .IP \(bu 2
  250278. e64f374ffa Fixed lint errors
  250279. .IP \(bu 2
  250280. b9d1ac4f1f Added AWS v4 signature support
  250281. .UNINDENT
  250282. .IP \(bu 2
  250283. e6f9eec02e Merge pull request \fI\%#23444\fP from techhat/novacreateattach
  250284. .INDENT 2.0
  250285. .IP \(bu 2
  250286. ebdb7eae2d Add create_attach_volume to nova driver
  250287. .UNINDENT
  250288. .IP \(bu 2
  250289. e331463319 Merge pull request \fI\%#23460\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  250290. .INDENT 2.0
  250291. .IP \(bu 2
  250292. edcd0c41f2 Update to latest stable bootstrap script v2015.05.07
  250293. .UNINDENT
  250294. .IP \(bu 2
  250295. 7a8ce1a954 Merge pull request \fI\%#23439\fP from techhat/maxtries
  250296. .INDENT 2.0
  250297. .IP \(bu 2
  250298. 0ad3ff2c88 Add wait_for_passwd_maxtries variable
  250299. .UNINDENT
  250300. .UNINDENT
  250301. .UNINDENT
  250302. .IP \(bu 2
  250303. \fBISSUE\fP \fI\%#23426\fP: (\fI\%twangboy\fP) Can\(aqt restart salt\-minion on 64 bit windows (2015.5.0) (refs: \fI\%#23470\fP)
  250304. .IP \(bu 2
  250305. \fBPR\fP \fI\%#23470\fP: (\fI\%twangboy\fP) Fixed service.restart for salt\-minion
  250306. @ \fI2015\-05\-11 17:54:47 UTC\fP
  250307. .INDENT 2.0
  250308. .IP \(bu 2
  250309. aa5b896d3e Merge pull request \fI\%#23470\fP from twangboy/fix_svc_restart
  250310. .IP \(bu 2
  250311. b3f284c517 Fixed tests
  250312. .IP \(bu 2
  250313. ad44d79f26 Fixed service.restart for salt\-minion
  250314. .UNINDENT
  250315. .IP \(bu 2
  250316. \fBPR\fP \fI\%#23539\fP: (\fI\%rahulhan\fP) Adding states/virtualenv_mod.py unit tests
  250317. @ \fI2015\-05\-11 17:02:31 UTC\fP
  250318. .INDENT 2.0
  250319. .IP \(bu 2
  250320. 67988b21ee Merge pull request \fI\%#23539\fP from rahulhan/states_virtualenv_mod_unit_test
  250321. .IP \(bu 2
  250322. 750bb07d1c Adding states/virtualenv_mod.py unit tests
  250323. .IP \(bu 2
  250324. c96619653e Merge pull request \fI\%#23423\fP from cachedout/remove_jid_event_from_orch
  250325. .INDENT 2.0
  250326. .IP \(bu 2
  250327. f81aab7627 Remove jid_event from state.orch
  250328. .UNINDENT
  250329. .IP \(bu 2
  250330. 2bb09b7ee7 Merge pull request \fI\%#23509\fP from keesbos/Catch_empty_environment
  250331. .INDENT 2.0
  250332. .IP \(bu 2
  250333. 6dedeaccd2 Catch the unset (empty/None) environment case
  250334. .UNINDENT
  250335. .IP \(bu 2
  250336. 6d42f30271 Merge pull request \fI\%#23245\fP from freimer/issue_23244
  250337. .INDENT 2.0
  250338. .IP \(bu 2
  250339. 24cf6ebad5 Add Caller functionality to reactors.
  250340. .UNINDENT
  250341. .UNINDENT
  250342. .IP \(bu 2
  250343. \fBPR\fP \fI\%#23513\fP: (\fI\%gladiatr72\fP) short\-circuit auto\-failure of iptables.delete state
  250344. @ \fI2015\-05\-11 15:18:33 UTC\fP
  250345. .INDENT 2.0
  250346. .IP \(bu 2
  250347. c3f03d827d Merge pull request \fI\%#23513\fP from gladiatr72/RFC_stop_iptables.check_from_short\-circuiting_position\-only_delete_rule
  250348. .IP \(bu 2
  250349. c71714c364 short\-circuit auto\-failure of iptables.delete state if position argument is set without the other accoutrements that check_rule requires.
  250350. .UNINDENT
  250351. .IP \(bu 2
  250352. \fBPR\fP \fI\%#23534\fP: (\fI\%jayeshka\fP) adding states/ini_manage unit test case
  250353. @ \fI2015\-05\-11 14:32:06 UTC\fP
  250354. .INDENT 2.0
  250355. .IP \(bu 2
  250356. 4e77f6f8c4 Merge pull request \fI\%#23534\fP from jayeshka/ini_manage_states\-unit\-test
  250357. .IP \(bu 2
  250358. 831223c31c adding states/ini_manage unit test case
  250359. .UNINDENT
  250360. .IP \(bu 2
  250361. \fBPR\fP \fI\%#23533\fP: (\fI\%jayeshka\fP) adding states/hipchat unit test case
  250362. @ \fI2015\-05\-11 14:30:22 UTC\fP
  250363. .INDENT 2.0
  250364. .IP \(bu 2
  250365. 11ba9ed99b Merge pull request \fI\%#23533\fP from jayeshka/hipchat\-states\-unit\-test
  250366. .IP \(bu 2
  250367. 41d14b322d adding states/hipchat unit test case
  250368. .UNINDENT
  250369. .IP \(bu 2
  250370. \fBPR\fP \fI\%#23532\fP: (\fI\%jayeshka\fP) adding states/ipmi unit test case
  250371. @ \fI2015\-05\-11 14:28:15 UTC\fP
  250372. .INDENT 2.0
  250373. .IP \(bu 2
  250374. e5421139d3 Merge pull request \fI\%#23532\fP from jayeshka/ipmi\-states\-unit\-test
  250375. .IP \(bu 2
  250376. fc3e64a8a4 adding states/ipmi unit test case
  250377. .UNINDENT
  250378. .IP \(bu 2
  250379. \fBPR\fP \fI\%#23531\fP: (\fI\%jayeshka\fP) adding service unit test case
  250380. @ \fI2015\-05\-11 14:27:12 UTC\fP
  250381. .INDENT 2.0
  250382. .IP \(bu 2
  250383. 9ba85fd31a Merge pull request \fI\%#23531\fP from jayeshka/service\-unit\-test
  250384. .IP \(bu 2
  250385. 3ad5314ee0 adding service unit test case
  250386. .UNINDENT
  250387. .IP \(bu 2
  250388. \fBISSUE\fP \fI\%#23512\fP: (\fI\%mostafahussein\fP) hipchat_returner / slack_returner not work correctly (refs: \fI\%#23517\fP)
  250389. .IP \(bu 2
  250390. \fBPR\fP \fI\%#23517\fP: (\fI\%garethgreenaway\fP) fix to returners
  250391. @ \fI2015\-05\-11 14:20:51 UTC\fP
  250392. .INDENT 2.0
  250393. .IP \(bu 2
  250394. 32838cd888 Merge pull request \fI\%#23517\fP from garethgreenaway/23512_2015_5_returners_with_profiles
  250395. .IP \(bu 2
  250396. 81e31e27cf fix for returners that utilize profile attributes. code in the if else statement was backwards. \fI\%#23512\fP
  250397. .UNINDENT
  250398. .IP \(bu 2
  250399. \fBPR\fP \fI\%#23502\fP: (\fI\%rahulhan\fP) Adding states/win_servermanager.py unit tests
  250400. @ \fI2015\-05\-08 19:47:18 UTC\fP
  250401. .INDENT 2.0
  250402. .IP \(bu 2
  250403. 6be7d8d13b Merge pull request \fI\%#23502\fP from rahulhan/states_win_servermanager_unit_test
  250404. .IP \(bu 2
  250405. 2490074aa2 Adding states/win_servermanager.py unit tests
  250406. .UNINDENT
  250407. .IP \(bu 2
  250408. \fBPR\fP \fI\%#23495\fP: (\fI\%jayeshka\fP) adding seed unit test case
  250409. @ \fI2015\-05\-08 17:30:38 UTC\fP
  250410. .INDENT 2.0
  250411. .IP \(bu 2
  250412. 604857811e Merge pull request \fI\%#23495\fP from jayeshka/seed\-unit\-test
  250413. .IP \(bu 2
  250414. 3f134bc573 adding seed unit test case
  250415. .UNINDENT
  250416. .IP \(bu 2
  250417. \fBPR\fP \fI\%#23494\fP: (\fI\%jayeshka\fP) adding sensors unit test case
  250418. @ \fI2015\-05\-08 17:30:18 UTC\fP
  250419. .INDENT 2.0
  250420. .IP \(bu 2
  250421. 70bc3c1415 Merge pull request \fI\%#23494\fP from jayeshka/sensors\-unit\-test
  250422. .IP \(bu 2
  250423. 1fb48a31a8 adding sensors unit test case
  250424. .UNINDENT
  250425. .IP \(bu 2
  250426. \fBPR\fP \fI\%#23493\fP: (\fI\%jayeshka\fP) adding states/incron unit test case
  250427. @ \fI2015\-05\-08 17:29:59 UTC\fP
  250428. .INDENT 2.0
  250429. .IP \(bu 2
  250430. b981b20d44 Merge pull request \fI\%#23493\fP from jayeshka/incron\-states\-unit\-test
  250431. .IP \(bu 2
  250432. cc7bc170f3 adding states/incron unit test case
  250433. .UNINDENT
  250434. .IP \(bu 2
  250435. \fBPR\fP \fI\%#23492\fP: (\fI\%jayeshka\fP) adding states/influxdb_database unit test case
  250436. @ \fI2015\-05\-08 17:29:51 UTC\fP
  250437. .INDENT 2.0
  250438. .IP \(bu 2
  250439. 4019c493a1 Merge pull request \fI\%#23492\fP from jayeshka/influxdb_database\-states\-unit\-test
  250440. .IP \(bu 2
  250441. e1fcac815d adding states/influxdb_database unit test case
  250442. .UNINDENT
  250443. .IP \(bu 2
  250444. \fBPR\fP \fI\%#23491\fP: (\fI\%jayeshka\fP) adding states/influxdb_user unit test case
  250445. @ \fI2015\-05\-08 16:24:07 UTC\fP
  250446. .INDENT 2.0
  250447. .IP \(bu 2
  250448. d317a77afb Merge pull request \fI\%#23491\fP from jayeshka/influxdb_user\-states\-unit\-test
  250449. .IP \(bu 2
  250450. 9d4043f9ff adding states/influxdb_user unit test case
  250451. .UNINDENT
  250452. .IP \(bu 2
  250453. \fBPR\fP \fI\%#23477\fP: (\fI\%galet\fP) LDAP auth: Escape filter value for group membership search
  250454. @ \fI2015\-05\-07 22:04:48 UTC\fP
  250455. .INDENT 2.0
  250456. .IP \(bu 2
  250457. e0b2a73eb4 Merge pull request \fI\%#23477\fP from galet/ldap\-filter\-escaping
  250458. .IP \(bu 2
  250459. 33038b9f86 LDAP auth: Escape filter value for group membership search
  250460. .UNINDENT
  250461. .IP \(bu 2
  250462. \fBPR\fP \fI\%#23476\fP: (\fI\%cachedout\fP) Lint becaon
  250463. @ \fI2015\-05\-07 19:55:36 UTC\fP
  250464. .INDENT 2.0
  250465. .IP \(bu 2
  250466. \fBPR\fP \fI\%#23431\fP: (\fI\%UtahDave\fP) Beacon fixes (refs: \fI\%#23476\fP)
  250467. .IP \(bu 2
  250468. e1719fe26b Merge pull request \fI\%#23476\fP from cachedout/lint_23431
  250469. .IP \(bu 2
  250470. 8d1ff209eb Lint becaon
  250471. .UNINDENT
  250472. .IP \(bu 2
  250473. \fBPR\fP \fI\%#23431\fP: (\fI\%UtahDave\fP) Beacon fixes (refs: \fI\%#23476\fP)
  250474. @ \fI2015\-05\-07 19:53:47 UTC\fP
  250475. .INDENT 2.0
  250476. .IP \(bu 2
  250477. 1e299ede4f Merge pull request \fI\%#23431\fP from UtahDave/beacon_fixes
  250478. .IP \(bu 2
  250479. 152f2235c2 remove unused import
  250480. .IP \(bu 2
  250481. 81198f9399 fix interval logic and example
  250482. .IP \(bu 2
  250483. 5504778adf update to proper examples
  250484. .IP \(bu 2
  250485. 6890439d58 fix list for mask
  250486. .IP \(bu 2
  250487. ee7b579e90 remove custom interval code.
  250488. .UNINDENT
  250489. .IP \(bu 2
  250490. \fBPR\fP \fI\%#23468\fP: (\fI\%rahulhan\fP) Adding states/win_system.py unit tests
  250491. @ \fI2015\-05\-07 19:20:50 UTC\fP
  250492. .INDENT 2.0
  250493. .IP \(bu 2
  250494. ea55c44bbb Merge pull request \fI\%#23468\fP from rahulhan/states_win_system_unit_test
  250495. .IP \(bu 2
  250496. 33f8c12e9f Adding states/win_system.py unit tests
  250497. .UNINDENT
  250498. .IP \(bu 2
  250499. \fBPR\fP \fI\%#23466\fP: (\fI\%UtahDave\fP) minor spelling fix
  250500. @ \fI2015\-05\-07 19:19:06 UTC\fP
  250501. .INDENT 2.0
  250502. .IP \(bu 2
  250503. e6e11147af Merge pull request \fI\%#23466\fP from UtahDave/2015.5local
  250504. .IP \(bu 2
  250505. b2c399a137 minor spelling fix
  250506. .UNINDENT
  250507. .IP \(bu 2
  250508. \fBISSUE\fP \fI\%#529\fP: (\fI\%rubic\fP) run salt in user space (refs: \fI\%#543\fP)
  250509. .INDENT 2.0
  250510. .IP \(bu 2
  250511. \fBPR\fP \fI\%saltstack/salt\-bootstrap#563\fP: (\fI\%notpeter\fP) Ubuntu alternate ppas (refs: \fI\%#23461\fP, \fI\%#23460\fP)
  250512. .IP \(bu 2
  250513. \fBPR\fP \fI\%#543\fP: (\fI\%rubic\fP) updated documentation for user, fixed configuration template links (refs: #\(gasaltstack/salt\-bootstrap#563\(ga_)
  250514. .UNINDENT
  250515. .IP \(bu 2
  250516. \fBPR\fP \fI\%#23461\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest stable bootstrap script v2015.05.07
  250517. @ \fI2015\-05\-07 19:16:18 UTC\fP
  250518. .INDENT 2.0
  250519. .IP \(bu 2
  250520. 4eeb1e627a Merge pull request \fI\%#23461\fP from s0undt3ch/hotfix/bootstrap\-script
  250521. .IP \(bu 2
  250522. 638c63d635 Update to latest stable bootstrap script v2015.05.07
  250523. .UNINDENT
  250524. .IP \(bu 2
  250525. \fBPR\fP \fI\%#23450\fP: (\fI\%jayeshka\fP) adding scsi unit test case
  250526. @ \fI2015\-05\-07 19:00:28 UTC\fP
  250527. .INDENT 2.0
  250528. .IP \(bu 2
  250529. 865127844a Merge pull request \fI\%#23450\fP from jayeshka/scsi\-unit\-test
  250530. .IP \(bu 2
  250531. e7269ff29b adding scsi unit test case
  250532. .UNINDENT
  250533. .IP \(bu 2
  250534. \fBPR\fP \fI\%#23449\fP: (\fI\%jayeshka\fP) adding s3 unit test case
  250535. @ \fI2015\-05\-07 18:59:45 UTC\fP
  250536. .INDENT 2.0
  250537. .IP \(bu 2
  250538. 8b374ae64d Merge pull request \fI\%#23449\fP from jayeshka/s3\-unit\-test
  250539. .IP \(bu 2
  250540. 85786bfe7f adding s3 unit test case
  250541. .UNINDENT
  250542. .IP \(bu 2
  250543. \fBPR\fP \fI\%#23448\fP: (\fI\%jayeshka\fP) adding states/keystone unit test case
  250544. @ \fI2015\-05\-07 18:58:59 UTC\fP
  250545. .INDENT 2.0
  250546. .IP \(bu 2
  250547. 49b431c8e4 Merge pull request \fI\%#23448\fP from jayeshka/keystone\-states\-unit\-test
  250548. .IP \(bu 2
  250549. a3050eb3e2 adding states/keystone unit test case
  250550. .UNINDENT
  250551. .IP \(bu 2
  250552. \fBPR\fP \fI\%#23447\fP: (\fI\%jayeshka\fP) adding states/grafana unit test case
  250553. @ \fI2015\-05\-07 18:58:20 UTC\fP
  250554. .INDENT 2.0
  250555. .IP \(bu 2
  250556. 23d7e7ef92 Merge pull request \fI\%#23447\fP from jayeshka/grafana\-states\-unit\-test
  250557. .IP \(bu 2
  250558. 7e90a4aaca adding states/grafana unit test case
  250559. .UNINDENT
  250560. .IP \(bu 2
  250561. \fBPR\fP \fI\%#23438\fP: (\fI\%techhat\fP) Gate requests import
  250562. @ \fI2015\-05\-07 07:22:58 UTC\fP
  250563. .INDENT 2.0
  250564. .IP \(bu 2
  250565. 1fd0bc2011 Merge pull request \fI\%#23438\fP from techhat/gaterequests
  250566. .IP \(bu 2
  250567. d5b15fc6ce Gate requests import
  250568. .UNINDENT
  250569. .IP \(bu 2
  250570. \fBPR\fP \fI\%#23429\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  250571. @ \fI2015\-05\-07 05:35:13 UTC\fP
  250572. .INDENT 2.0
  250573. .IP \(bu 2
  250574. 3c4f734332 Merge pull request \fI\%#23429\fP from basepi/merge\-forward\-2015.5
  250575. .IP \(bu 2
  250576. 7729834d92 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  250577. .IP \(bu 2
  250578. 644eb75fec Merge pull request \fI\%#23422\fP from cro/gce_sh_home
  250579. .INDENT 2.0
  250580. .IP \(bu 2
  250581. 4ef9e6ba06 Don\(aqt use $HOME to find user\(aqs directory, some shells don\(aqt set it
  250582. .UNINDENT
  250583. .IP \(bu 2
  250584. ef17ab4b2a Merge pull request \fI\%#23425\fP from basepi/functionwrapper_typo
  250585. .INDENT 2.0
  250586. .IP \(bu 2
  250587. c390737f3e Fix typo in FunctionWrapper
  250588. .UNINDENT
  250589. .IP \(bu 2
  250590. 1b13ec04c2 Merge pull request \fI\%#23385\fP from rallytime/bp\-23346
  250591. .INDENT 2.0
  250592. .IP \(bu 2
  250593. 9efc13c810 more linting fixes
  250594. .IP \(bu 2
  250595. cf131c9a5a cleaned up some pylint errors
  250596. .IP \(bu 2
  250597. f981699c75 added logic to sftp_file and file_map to allow folder uploads using file_map
  250598. .UNINDENT
  250599. .IP \(bu 2
  250600. f8c7a62089 Merge pull request \fI\%#23414\fP from jfindlay/update_branch
  250601. .INDENT 2.0
  250602. .IP \(bu 2
  250603. 8074d16d52 2015.2 \-> 2015.5
  250604. .UNINDENT
  250605. .IP \(bu 2
  250606. 54b3bd43e4 Merge pull request \fI\%#23404\fP from hvnsweeting/cherrypy\-post\-emptybody\-fix
  250607. .INDENT 2.0
  250608. .IP \(bu 2
  250609. f85f8f954c initialize var when POST body is empty
  250610. .UNINDENT
  250611. .IP \(bu 2
  250612. 160f703296 Merge pull request \fI\%#23409\fP from terminalmage/update\-lithium\-docstrings\-2014.7
  250613. .INDENT 2.0
  250614. .IP \(bu 2
  250615. bc97d011ba Fix sphinx typo
  250616. .IP \(bu 2
  250617. 20006b06f6 Update Lithium docstrings in 2014.7 branch
  250618. .UNINDENT
  250619. .IP \(bu 2
  250620. aa5fb0aa46 Merge pull request \fI\%#23397\fP from jfindlay/fix_locale_gen
  250621. .INDENT 2.0
  250622. .IP \(bu 2
  250623. 0941fefd2b add more flexible whitespace to locale_gen search
  250624. .UNINDENT
  250625. .UNINDENT
  250626. .IP \(bu 2
  250627. \fBPR\fP \fI\%#23396\fP: (\fI\%basepi\fP) [2015.2] Merge forward from 2014.7 to 2015.2
  250628. @ \fI2015\-05\-06 21:42:35 UTC\fP
  250629. .INDENT 2.0
  250630. .IP \(bu 2
  250631. 1fb84450f4 Merge pull request \fI\%#23396\fP from basepi/merge\-forward\-2015.2
  250632. .IP \(bu 2
  250633. 2766c8cb4b Fix typo in FunctionWrapper
  250634. .IP \(bu 2
  250635. fd09cdae6f Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.2
  250636. .INDENT 2.0
  250637. .IP \(bu 2
  250638. 0c76dd4d8a Merge pull request \fI\%#23368\fP from kaithar/bp\-23367
  250639. .INDENT 2.0
  250640. .IP \(bu 2
  250641. 577f41972e Pylint fix
  250642. .IP \(bu 2
  250643. 8d9acd1f89 Put the sed insert statement back in to the output.
  250644. .UNINDENT
  250645. .IP \(bu 2
  250646. 3493cc1fca Merge pull request \fI\%#23350\fP from lorengordon/file.replace_assume_line
  250647. .INDENT 2.0
  250648. .IP \(bu 2
  250649. b60e224beb Append/prepend: search for full line
  250650. .UNINDENT
  250651. .IP \(bu 2
  250652. 7be5c48ad5 Merge pull request \fI\%#23341\fP from cachedout/issue_23026
  250653. .INDENT 2.0
  250654. .IP \(bu 2
  250655. e98e65e787 Fix tests
  250656. .IP \(bu 2
  250657. 6011b437ca Fix syndic pid and logfile path
  250658. .UNINDENT
  250659. .IP \(bu 2
  250660. ea61abfa68 Merge pull request \fI\%#23272\fP from basepi/salt\-ssh.minion.config.19114
  250661. .INDENT 2.0
  250662. .IP \(bu 2
  250663. c223309bb7 Add versionadded
  250664. .IP \(bu 2
  250665. be7407feae Lint
  250666. .IP \(bu 2
  250667. c2c337567e Missing comma
  250668. .IP \(bu 2
  250669. 8e3e8e073a Pass the minion_opts through the FunctionWrapper
  250670. .IP \(bu 2
  250671. cb69cd07de Match the master config template in the master config reference
  250672. .IP \(bu 2
  250673. 87fc3161f9 Add Salt\-SSH section to master config template
  250674. .IP \(bu 2
  250675. 91dd9dcbdc Add ssh_minion_opts to master config ref
  250676. .IP \(bu 2
  250677. c273ea14c6 Add minion config to salt\-ssh doc
  250678. .IP \(bu 2
  250679. a0b6b760c3 Add minion_opts to roster docs
  250680. .IP \(bu 2
  250681. 5212c35260 Accept minion_opts from the target information
  250682. .IP \(bu 2
  250683. e2099b6e1b Process \fIssh_minion_opts\fP from master config
  250684. .IP \(bu 2
  250685. 3b64214377 Revert "Work around bug in salt\-ssh in config.get for gpg renderer"
  250686. .IP \(bu 2
  250687. 494953a208 Remove the strip (embracing multi\-line YAML dump)
  250688. .IP \(bu 2
  250689. fe87f0fe39 Dump multi\-line yaml into the SHIM
  250690. .IP \(bu 2
  250691. b751a7281c Inject local minion config into shim if available
  250692. .UNINDENT
  250693. .IP \(bu 2
  250694. 4f760dd9cb Merge pull request \fI\%#23347\fP from basepi/salt\-ssh.functionwrapper.contains.19114
  250695. .INDENT 2.0
  250696. .IP \(bu 2
  250697. 30595e3ff7 Backport FunctionWrapper.__contains__
  250698. .UNINDENT
  250699. .IP \(bu 2
  250700. 02658b1e60 Merge pull request \fI\%#23344\fP from cachedout/issue_22742
  250701. .INDENT 2.0
  250702. .IP \(bu 2
  250703. 5adc96ce7f Explicitely set file_client on master
  250704. .UNINDENT
  250705. .IP \(bu 2
  250706. ba7605d1cb Merge pull request \fI\%#23318\fP from cellscape/honor\-seed\-argument
  250707. .INDENT 2.0
  250708. .IP \(bu 2
  250709. 228b1be299 Honor seed argument in LXC container initializaton
  250710. .UNINDENT
  250711. .IP \(bu 2
  250712. 4ac4509c57 Merge pull request \fI\%#23307\fP from jfindlay/fix_locale_gen
  250713. .INDENT 2.0
  250714. .IP \(bu 2
  250715. 101199ac14 check for /etc/locale.gen
  250716. .UNINDENT
  250717. .IP \(bu 2
  250718. f790f42ed6 Merge pull request \fI\%#23324\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  250719. .IP \(bu 2
  250720. 6643e47ce5 Update to the latest stable release of the bootstrap script v2015.05.04
  250721. .UNINDENT
  250722. .UNINDENT
  250723. .IP \(bu 2
  250724. \fBPR\fP \fI\%#23412\fP: (\fI\%rahulhan\fP) Adding states/win_update.py unit tests
  250725. @ \fI2015\-05\-06 18:31:09 UTC\fP
  250726. .INDENT 2.0
  250727. .IP \(bu 2
  250728. b3c16720f6 Merge pull request \fI\%#23412\fP from rahulhan/states_win_update_unit_test
  250729. .IP \(bu 2
  250730. 9bc1519ee7 Removed unwanted imports
  250731. .IP \(bu 2
  250732. f12bfcf248 Adding states/win_update.py unit tests
  250733. .UNINDENT
  250734. .IP \(bu 2
  250735. \fBPR\fP \fI\%#23413\fP: (\fI\%terminalmage\fP) Update manpages for 2015.2 \-> 2015.5
  250736. @ \fI2015\-05\-06 17:12:57 UTC\fP
  250737. .INDENT 2.0
  250738. .IP \(bu 2
  250739. f2d7646a58 Merge pull request \fI\%#23413\fP from terminalmage/update\-manpages
  250740. .IP \(bu 2
  250741. 23fa4402dc Update manpages to reflect 2015.2 rename to 2015.5
  250742. .IP \(bu 2
  250743. 0fdaa73c84 Fix missed docstring updates from 2015.2 \-> 2015.5
  250744. .IP \(bu 2
  250745. 4fea5ba477 Add missing RST file
  250746. .UNINDENT
  250747. .IP \(bu 2
  250748. \fBPR\fP \fI\%#23410\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2015.2 branch
  250749. @ \fI2015\-05\-06 15:53:52 UTC\fP
  250750. .INDENT 2.0
  250751. .IP \(bu 2
  250752. \fBPR\fP \fI\%#23409\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2014.7 branch (refs: \fI\%#23410\fP)
  250753. .IP \(bu 2
  250754. bafbea7bc7 Merge pull request \fI\%#23410\fP from terminalmage/update\-lithium\-docstrings\-2015.2
  250755. .IP \(bu 2
  250756. d395565bf7 Update Lithium docstrings in 2015.2 branch
  250757. .UNINDENT
  250758. .IP \(bu 2
  250759. \fBPR\fP \fI\%#23407\fP: (\fI\%jayeshka\fP) adding rsync unit test case
  250760. @ \fI2015\-05\-06 15:52:23 UTC\fP
  250761. .INDENT 2.0
  250762. .IP \(bu 2
  250763. 02ef41a549 Merge pull request \fI\%#23407\fP from jayeshka/rsync\-unit\-test
  250764. .IP \(bu 2
  250765. a4dd836125 adding rsync unit test case
  250766. .UNINDENT
  250767. .IP \(bu 2
  250768. \fBPR\fP \fI\%#23406\fP: (\fI\%jayeshka\fP) adding states/lxc unit test case
  250769. @ \fI2015\-05\-06 15:51:50 UTC\fP
  250770. .INDENT 2.0
  250771. .IP \(bu 2
  250772. 58ec2a24c1 Merge pull request \fI\%#23406\fP from jayeshka/lxc\-states\-unit\-test
  250773. .IP \(bu 2
  250774. 32a0d03093 adding states/lxc unit test case
  250775. .UNINDENT
  250776. .IP \(bu 2
  250777. \fBPR\fP \fI\%#23395\fP: (\fI\%basepi\fP) [2015.2] Add note to 2015.2.0 release notes about master opts in pillar
  250778. @ \fI2015\-05\-05 22:15:20 UTC\fP
  250779. .INDENT 2.0
  250780. .IP \(bu 2
  250781. 8837d0038e Merge pull request \fI\%#23395\fP from basepi/2015.2.0masteropts
  250782. .IP \(bu 2
  250783. b261c95cd6 Add note to 2015.2.0 release notes about master opts in pillar
  250784. .UNINDENT
  250785. .IP \(bu 2
  250786. \fBPR\fP \fI\%#23393\fP: (\fI\%basepi\fP) [2015.2] Add warning about python_shell changes to 2015.2.0 release notes
  250787. @ \fI2015\-05\-05 22:12:46 UTC\fP
  250788. .INDENT 2.0
  250789. .IP \(bu 2
  250790. f79aed5fe1 Merge pull request \fI\%#23393\fP from basepi/2015.2.0python_shell
  250791. .IP \(bu 2
  250792. b2f033f485 Add CLI note
  250793. .IP \(bu 2
  250794. 48e7b3ee4f Add warning about python_shell changes to 2015.2.0 release notes
  250795. .UNINDENT
  250796. .IP \(bu 2
  250797. \fBPR\fP \fI\%#23380\fP: (\fI\%gladiatr72\fP) Fix for double output with static salt cli/v2015.2
  250798. @ \fI2015\-05\-05 21:44:28 UTC\fP
  250799. .INDENT 2.0
  250800. .IP \(bu 2
  250801. a9777761d8 Merge pull request \fI\%#23380\fP from gladiatr72/fix_for_double_output_with_static__salt_CLI/v2015.2
  250802. .IP \(bu 2
  250803. c47fdd79c7 Actually removed the \fBstatic\fP bits from below the else: fold this time.
  250804. .IP \(bu 2
  250805. 4ee367956c Fix for incorrect output with salt CLI \-\-static option
  250806. .UNINDENT
  250807. .IP \(bu 2
  250808. \fBPR\fP \fI\%#23379\fP: (\fI\%rahulhan\fP) Adding states/rabbitmq_cluster.py
  250809. @ \fI2015\-05\-05 21:44:06 UTC\fP
  250810. .INDENT 2.0
  250811. .IP \(bu 2
  250812. 5c9543c1d2 Merge pull request \fI\%#23379\fP from rahulhan/states_rabbitmq_cluster_test
  250813. .IP \(bu 2
  250814. 04c22d1acf Adding states/rabbitmq_cluster.py
  250815. .UNINDENT
  250816. .IP \(bu 2
  250817. \fBPR\fP \fI\%#23377\fP: (\fI\%rahulhan\fP) Adding states/xmpp.py unit tests
  250818. @ \fI2015\-05\-05 21:43:35 UTC\fP
  250819. .INDENT 2.0
  250820. .IP \(bu 2
  250821. 430f080a3a Merge pull request \fI\%#23377\fP from rahulhan/states_xmpp_test
  250822. .IP \(bu 2
  250823. 32923b53c3 Adding states/xmpp.py unit tests
  250824. .UNINDENT
  250825. .IP \(bu 2
  250826. \fBPR\fP \fI\%#23335\fP: (\fI\%steverweber\fP) 2015.2: include doc in master config for module_dirs
  250827. @ \fI2015\-05\-05 21:28:58 UTC\fP
  250828. .INDENT 2.0
  250829. .IP \(bu 2
  250830. 8c057e6794 Merge pull request \fI\%#23335\fP from steverweber/2015.2
  250831. .IP \(bu 2
  250832. 5e3bae95d8 help installing python pysphere lib
  250833. .IP \(bu 2
  250834. 97513b060a include module_dirs
  250835. .IP \(bu 2
  250836. 36b1c87dd2 include module_dirs
  250837. .UNINDENT
  250838. .IP \(bu 2
  250839. \fBPR\fP \fI\%#23362\fP: (\fI\%jayeshka\fP) adding states/zk_concurrency unit test case
  250840. @ \fI2015\-05\-05 15:50:06 UTC\fP
  250841. .INDENT 2.0
  250842. .IP \(bu 2
  250843. 1648253675 Merge pull request \fI\%#23362\fP from jayeshka/zk_concurrency\-states\-unit\-test
  250844. .IP \(bu 2
  250845. f60dda4b1d adding states/zk_concurrency unit test case
  250846. .UNINDENT
  250847. .IP \(bu 2
  250848. \fBPR\fP \fI\%#23363\fP: (\fI\%jayeshka\fP) adding riak unit test case
  250849. @ \fI2015\-05\-05 14:23:05 UTC\fP
  250850. .INDENT 2.0
  250851. .IP \(bu 2
  250852. 1cdaeed868 Merge pull request \fI\%#23363\fP from jayeshka/riak\-unit\-test
  250853. .IP \(bu 2
  250854. f9da6db459 adding riak unit test case
  250855. .UNINDENT
  250856. .UNINDENT
  250857. .SS Salt 2015.5.10 Release Notes
  250858. .INDENT 0.0
  250859. .TP
  250860. .B release
  250861. 2015\-03\-22
  250862. .UNINDENT
  250863. .sp
  250864. Version 2015.5.10 is a bugfix release for 2015.5.0\&.
  250865. .SS Security Fix
  250866. .sp
  250867. \fBCVE\-2016\-3176\fP Insecure configuration of PAM external authentication service
  250868. .sp
  250869. This issue affects all Salt versions prior to 2015.8.8/2015.5.10 when PAM
  250870. external authentication is enabled. This issue involves
  250871. passing an alternative PAM authentication service with a command that is sent
  250872. to LocalClient, enabling the attacker to bypass the
  250873. configured authentication service. Thank you to Dylan Frese <\fI\%dmfrese@gmail.com\fP>
  250874. for bringing this issue to our attention.
  250875. .sp
  250876. This update defines the PAM eAuth \fBservice\fP that users authenticate against
  250877. in the Salt Master configuration.
  250878. .sp
  250879. No additional fixes are included in this release.
  250880. .SS Read Before Upgrading Debian 8 (Jessie) from Salt Versions Earlier than 2015.5.9
  250881. .sp
  250882. Salt \fBsystemd\fP service files are missing the following statement in these versions:
  250883. .INDENT 0.0
  250884. .INDENT 3.5
  250885. .sp
  250886. .nf
  250887. .ft C
  250888. [Service]
  250889. KillMode=process
  250890. .ft P
  250891. .fi
  250892. .UNINDENT
  250893. .UNINDENT
  250894. .sp
  250895. This statement must be added to successfully upgrade on these earlier versions
  250896. of Salt.
  250897. .SS Changelog for v2015.5.9..v2015.5.10
  250898. .sp
  250899. \fIGenerated at: 2018\-05\-27 22:39:26 UTC\fP
  250900. .INDENT 0.0
  250901. .IP \(bu 2
  250902. 69ba1de71d Remove ability of authenticating user to specify pam service
  250903. .UNINDENT
  250904. .SS Salt 2015.5.11 Release Notes
  250905. .INDENT 0.0
  250906. .TP
  250907. .B release
  250908. 2015\-07\-22
  250909. .UNINDENT
  250910. .sp
  250911. Version 2015.5.11 is a bugfix release for 2015.5.0\&.
  250912. .SS Statistics
  250913. .INDENT 0.0
  250914. .IP \(bu 2
  250915. Total Merges: \fB101\fP
  250916. .IP \(bu 2
  250917. Total Issue References: \fB73\fP
  250918. .IP \(bu 2
  250919. Total PR References: \fB162\fP
  250920. .IP \(bu 2
  250921. 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)
  250922. .UNINDENT
  250923. .SS Changelog for v2015.5.10..v2015.5.11
  250924. .sp
  250925. \fIGenerated at: 2018\-05\-27 22:41:56 UTC\fP
  250926. .INDENT 0.0
  250927. .IP \(bu 2
  250928. \fBPR\fP \fI\%#33412\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  250929. .IP \(bu 2
  250930. \fBPR\fP \fI\%#33405\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33386\fP to 2015.5
  250931. .IP \(bu 2
  250932. \fBPR\fP \fI\%#33386\fP: (\fI\%terminalmage\fP) Fix traceback in logging for config validation (refs: \fI\%#33405\fP)
  250933. .IP \(bu 2
  250934. \fBISSUE\fP \fI\%#33376\fP: (\fI\%tmehlinger\fP) pip state broken in 2015.8.9 with pip <6.0 (refs: \fI\%#33383\fP)
  250935. .IP \(bu 2
  250936. \fBPR\fP \fI\%#33383\fP: (\fI\%thatch45\fP) maintain the fallabck because I am totally sick of this crap
  250937. @ \fI2016\-05\-20 00:03:59 UTC\fP
  250938. .INDENT 2.0
  250939. .IP \(bu 2
  250940. d15f5e2cef Merge pull request \fI\%#33383\fP from thatch45/2015.5
  250941. .IP \(bu 2
  250942. f5ebcba21c restore whitespace
  250943. .IP \(bu 2
  250944. 1d8b289db1 blast, put the try/except int he right place
  250945. .IP \(bu 2
  250946. 081e6c5b83 maintain the fallabck because I am totally sick of this crap
  250947. .IP \(bu 2
  250948. \fBPR\fP \fI\%#33379\fP: (\fI\%cachedout\fP) Improve doc clarity for disable_modules documentation
  250949. .UNINDENT
  250950. .IP \(bu 2
  250951. \fBISSUE\fP \fI\%#26574\fP: (\fI\%jfindlay\fP) minion stacktrace on top file yaml syntax error (refs: \fI\%#33375\fP)
  250952. .INDENT 2.0
  250953. .IP \(bu 2
  250954. \fBPR\fP \fI\%#33375\fP: (\fI\%cachedout\fP) Better YAML syntax error handling
  250955. .UNINDENT
  250956. .IP \(bu 2
  250957. \fBPR\fP \fI\%#33372\fP: (\fI\%jacobhammons\fP) revved 2015.8 branch to .9 in version selector
  250958. @ \fI2016\-05\-19 20:05:35 UTC\fP
  250959. .INDENT 2.0
  250960. .IP \(bu 2
  250961. bb3e98cad2 Merge pull request \fI\%#33372\fP from jacobhammons/release\-update
  250962. .IP \(bu 2
  250963. 5ce502160b revved 2015.8 branch to .9 in version selector
  250964. .IP \(bu 2
  250965. \fBPR\fP \fI\%#33341\fP: (\fI\%phistrom\fP) Expanded documentation for boto_elb state and module
  250966. .UNINDENT
  250967. .IP \(bu 2
  250968. \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)
  250969. .INDENT 2.0
  250970. .IP \(bu 2
  250971. \fBPR\fP \fI\%#33292\fP: (\fI\%rallytime\fP) Added some more docs for master and minion config settings
  250972. .UNINDENT
  250973. .IP \(bu 2
  250974. \fBISSUE\fP \fI\%#23643\fP: (\fI\%falzm\fP) Error in iptables module: argument \-\-match\-set: expected 2 argument(s) (refs: \fI\%#33301\fP)
  250975. .INDENT 2.0
  250976. .IP \(bu 2
  250977. \fBPR\fP \fI\%#33301\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP)
  250978. .IP \(bu 2
  250979. \fBPR\fP \fI\%#33290\fP: (\fI\%UtahDave\fP) fix "loose" typo
  250980. .UNINDENT
  250981. .IP \(bu 2
  250982. \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)
  250983. .INDENT 2.0
  250984. .IP \(bu 2
  250985. \fBPR\fP \fI\%#33287\fP: (\fI\%rallytime\fP) Add auth_tries config option to minion.rst docs
  250986. .IP \(bu 2
  250987. \fBPR\fP \fI\%#33286\fP: (\fI\%rallytime\fP) Document new master and minion config opts for 2016.3.0 (refs: \fI\%#33287\fP)
  250988. .UNINDENT
  250989. .IP \(bu 2
  250990. \fBISSUE\fP \fI\%#33276\fP: (\fI\%sjmh\fP) minion_id_caching has no documentation (refs: \fI\%#33282\fP)
  250991. .IP \(bu 2
  250992. \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)
  250993. .INDENT 2.0
  250994. .IP \(bu 2
  250995. \fBPR\fP \fI\%#33282\fP: (\fI\%rallytime\fP) Document minion_id_caching config value
  250996. .UNINDENT
  250997. .IP \(bu 2
  250998. \fBISSUE\fP \fI\%#33118\fP: (\fI\%saltuser\fP) file.replace not working correctly on newer minions (refs: \fI\%#33137\fP)
  250999. .INDENT 2.0
  251000. .IP \(bu 2
  251001. \fBPR\fP \fI\%#33137\fP: (\fI\%lorengordon\fP) Clarify file.replace MULTILINE flag interaction with regex anchors
  251002. .IP \(bu 2
  251003. \fBPR\fP \fI\%#33236\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  251004. .UNINDENT
  251005. .IP \(bu 2
  251006. \fBISSUE\fP \fI\%#32250\fP: (\fI\%ikryten\fP) Cannot run salt\-minion as unprivileged user using \(aquser\(aq directive (refs: \fI\%#33211\fP)
  251007. .IP \(bu 2
  251008. \fBPR\fP \fI\%#33211\fP: (\fI\%cachedout\fP) Don\(aqt try to kill a parent proc if we can\(aqt
  251009. @ \fI2016\-05\-12 21:29:50 UTC\fP
  251010. .INDENT 2.0
  251011. .IP \(bu 2
  251012. 698f1eb657 Merge pull request \fI\%#33211\fP from cachedout/user_kill
  251013. .IP \(bu 2
  251014. d4f2e5baa7 Don\(aqt try to kill a parent proc if we can\(aqt
  251015. .UNINDENT
  251016. .IP \(bu 2
  251017. \fBISSUE\fP \fI\%#32198\fP: (\fI\%goatjam\fP) State \(aqpkg.installed\(aq was not found in SLS (refs: \fI\%#33205\fP)
  251018. .INDENT 2.0
  251019. .IP \(bu 2
  251020. \fBPR\fP \fI\%#33205\fP: (\fI\%cachedout\fP) Resolve issue with pkg module on Mint Linux
  251021. .IP \(bu 2
  251022. \fBPR\fP \fI\%#33178\fP: (\fI\%justinta\fP) Add pip installed and removed test
  251023. .IP \(bu 2
  251024. \fBPR\fP \fI\%#33197\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  251025. .IP \(bu 2
  251026. \fBPR\fP \fI\%#33181\fP: (\fI\%twangboy\fP) Fix file.managed for Windows
  251027. .IP \(bu 2
  251028. \fBPR\fP \fI\%#33185\fP: (\fI\%rallytime\fP) [2015.5] Update to latest bootstrap script v2016.05.11
  251029. .UNINDENT
  251030. .IP \(bu 2
  251031. \fBISSUE\fP \fI\%#33163\fP: (\fI\%jaybocc2\fP) Salt 2015.8.5 incompatible with Pip v8.1.2 (refs: \fI\%#33180\fP)
  251032. .INDENT 2.0
  251033. .IP \(bu 2
  251034. \fBPR\fP \fI\%#33180\fP: (\fI\%thatch45\fP) Pip fix
  251035. .IP \(bu 2
  251036. \fBPR\fP \fI\%#33160\fP: (\fI\%jfindlay\fP) add 2015.5.11 release notes
  251037. .IP \(bu 2
  251038. \fBPR\fP \fI\%#33155\fP: (\fI\%rallytime\fP) [2015.5] Update to latest bootstrap script v2016.05.10
  251039. .UNINDENT
  251040. .IP \(bu 2
  251041. \fBPR\fP \fI\%#33141\fP: (\fI\%justinta\fP) Skipping salt\-call \-\-local test
  251042. @ \fI2016\-05\-10 17:05:17 UTC\fP
  251043. .INDENT 2.0
  251044. .IP \(bu 2
  251045. 6cd1641840 Merge pull request \fI\%#33141\fP from jtand/disable_local_pkg_install_test
  251046. .IP \(bu 2
  251047. 8b1e34fb17 Skipping salt\-call \-\-local test
  251048. .UNINDENT
  251049. .IP \(bu 2
  251050. \fBISSUE\fP \fI\%#33085\fP: (\fI\%fmnisme\fP) salt doc err (refs: \fI\%#33132\fP)
  251051. .INDENT 2.0
  251052. .IP \(bu 2
  251053. \fBPR\fP \fI\%#33132\fP: (\fI\%whiteinge\fP) Doc mock decorators
  251054. .UNINDENT
  251055. .IP \(bu 2
  251056. \fBISSUE\fP \fI\%#33074\fP: (\fI\%robnagler\fP) Critical error in msgpack exposes pillar data (refs: \fI\%#33078\fP)
  251057. .INDENT 2.0
  251058. .IP \(bu 2
  251059. \fBPR\fP \fI\%#33078\fP: (\fI\%cachedout\fP) Lower display of msgpack failure msg to debug
  251060. .IP \(bu 2
  251061. \fBPR\fP \fI\%#33080\fP: (\fI\%justinta\fP) Use saltstack repo in buildpackage.py on CentOS 5
  251062. .IP \(bu 2
  251063. \fBPR\fP \fI\%#33025\fP: (\fI\%Ch3LL\fP) add test for installing package while using salt\-call \-\-local
  251064. .IP \(bu 2
  251065. \fBPR\fP \fI\%#33055\fP: (\fI\%justinta\fP) File and User test fixes for 2015.5 on Fedora23
  251066. .IP \(bu 2
  251067. \fBPR\fP \fI\%#33060\fP: (\fI\%Ch3LL\fP) Test pillar.items output
  251068. .IP \(bu 2
  251069. \fBPR\fP \fI\%#33067\fP: (\fI\%sacren\fP) Fix minor document error of test.assertion
  251070. .IP \(bu 2
  251071. \fBPR\fP \fI\%#33045\fP: (\fI\%Ch3LL\fP) Saltfile with pillar tests
  251072. .IP \(bu 2
  251073. \fBPR\fP \fI\%#33044\fP: (\fI\%thatch45\fP) Backport \fI\%#33021\fP manually to 2015.5
  251074. .IP \(bu 2
  251075. \fBPR\fP \fI\%#33021\fP: (\fI\%UtahDave\fP) Fix syndic regression (refs: \fI\%#33044\fP)
  251076. .UNINDENT
  251077. .IP \(bu 2
  251078. \fBISSUE\fP \fI\%#22580\fP: (\fI\%ryanwalder\fP) minion runs highstate on start if schedule set in pillar (refs: \fI\%#32958\fP)
  251079. .INDENT 2.0
  251080. .IP \(bu 2
  251081. \fBPR\fP \fI\%#32958\fP: (\fI\%rallytime\fP) Add run_on_start docs to schedule.rst
  251082. .UNINDENT
  251083. .IP \(bu 2
  251084. \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)
  251085. .INDENT 2.0
  251086. .IP \(bu 2
  251087. \fBPR\fP \fI\%#32848\fP: (\fI\%lomeroe\fP) backport PR \fI\%#32732\fP to 2015.5 fixes \fI\%#23714\fP
  251088. .IP \(bu 2
  251089. \fBPR\fP \fI\%#32732\fP: (\fI\%lomeroe\fP) correct use of force flag in file.copy \fI\%#23714\fP (refs: \fI\%#32848\fP)
  251090. .IP \(bu 2
  251091. \fBPR\fP \fI\%#32837\fP: (\fI\%jfindlay\fP) \fIsalt\-cloud \-u\fP downloads stable version from bootstrap.saltstack.com by default
  251092. .IP \(bu 2
  251093. \fBPR\fP \fI\%#32667\fP: (\fI\%jfindlay\fP) [2015.5] update bootstrap to 2016.04.18 release
  251094. .UNINDENT
  251095. .IP \(bu 2
  251096. \fBPR\fP \fI\%#32776\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  251097. @ \fI2016\-04\-25 15:18:12 UTC\fP
  251098. .INDENT 2.0
  251099. .IP \(bu 2
  251100. c842e1e437 Merge pull request \fI\%#32776\fP from rallytime/merge\-2015.5
  251101. .IP \(bu 2
  251102. 7ecbf9f885 Merge pull request \fI\%#14\fP from whiteinge/runner\-async\-low
  251103. .INDENT 2.0
  251104. .IP \(bu 2
  251105. 211f7b4af1 Format low data correct for runner_async
  251106. .UNINDENT
  251107. .IP \(bu 2
  251108. ce72851861 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  251109. .IP \(bu 2
  251110. 2775edc176 Saltnado /run fix (\fI\%#32590\fP)
  251111. .IP \(bu 2
  251112. b19c5a5ce7 Verify auth in saltnado run (\fI\%#32552\fP)
  251113. .IP \(bu 2
  251114. \fBPR\fP \fI\%#32691\fP: (\fI\%terminalmage\fP) Support remote sources in a source list
  251115. .UNINDENT
  251116. .IP \(bu 2
  251117. \fBISSUE\fP \fI\%#32661\fP: (\fI\%dergrunepunkt\fP) Batch exception w/dulpicated minion IDs (refs: \fI\%#32686\fP)
  251118. .IP \(bu 2
  251119. \fBPR\fP \fI\%#32686\fP: (\fI\%cachedout\fP) Fix stacktrace in batch with dup minion ids
  251120. @ \fI2016\-04\-19 19:18:50 UTC\fP
  251121. .INDENT 2.0
  251122. .IP \(bu 2
  251123. bd5442d768 Merge pull request \fI\%#32686\fP from cachedout/issue_32661
  251124. .IP \(bu 2
  251125. f704df90bc Fix stacktrace in batch with dup minion ids
  251126. .IP \(bu 2
  251127. \fBPR\fP \fI\%#32675\fP: (\fI\%basepi\fP) [2015.5] Update "Low Hanging Fruit" to "Help Wanted"
  251128. .UNINDENT
  251129. .IP \(bu 2
  251130. \fBISSUE\fP \fI\%#32612\fP: (\fI\%oliver\-dungey\fP) Calling Salt Modules from Templates \- more complex examples would be great (refs: \fI\%#32657\fP)
  251131. .INDENT 2.0
  251132. .IP \(bu 2
  251133. \fBPR\fP \fI\%#32657\fP: (\fI\%cachedout\fP) Additional documentation on calling exec modules from templates
  251134. .IP \(bu 2
  251135. \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
  251136. .IP \(bu 2
  251137. \fBPR\fP \fI\%#32638\fP: (\fI\%nmadhok\fP) [2015.5] Adding _syspaths.py to .gitignore
  251138. .UNINDENT
  251139. .IP \(bu 2
  251140. \fBISSUE\fP \fI\%#32381\fP: (\fI\%tbaker57\fP) user.present state includes shadow hash in return when user updated (refs: \fI\%#32561\fP)
  251141. .IP \(bu 2
  251142. \fBPR\fP \fI\%#32561\fP: (\fI\%gtmanfred\fP) redact passwords and hashes from user.present updates
  251143. @ \fI2016\-04\-14 15:48:59 UTC\fP
  251144. .INDENT 2.0
  251145. .IP \(bu 2
  251146. 027b502335 Merge pull request \fI\%#32561\fP from gtmanfred/user_passwords
  251147. .IP \(bu 2
  251148. 3db5e78d5d redact passwords and hashes from user.present updates
  251149. .UNINDENT
  251150. .IP \(bu 2
  251151. \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)
  251152. .IP \(bu 2
  251153. \fBPR\fP \fI\%#32538\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32528\fP to 2015.5
  251154. @ \fI2016\-04\-13 15:06:14 UTC\fP
  251155. .INDENT 2.0
  251156. .IP \(bu 2
  251157. \fBPR\fP \fI\%#32528\fP: (\fI\%AndrewPashkin\fP) Document "grains" setting in the minion configuration reference (refs: \fI\%#32538\fP)
  251158. .IP \(bu 2
  251159. 7307bcb88e Merge pull request \fI\%#32538\fP from rallytime/bp\-32528
  251160. .IP \(bu 2
  251161. 46a4e8a310 Remove merge conflict line
  251162. .IP \(bu 2
  251163. e0d947c707 Document "grains" setting in the minion configuration reference
  251164. .UNINDENT
  251165. .IP \(bu 2
  251166. \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)
  251167. .INDENT 2.0
  251168. .IP \(bu 2
  251169. \fBPR\fP \fI\%#32454\fP: (\fI\%rallytime\fP) Add documentation for some master/minion configs
  251170. .UNINDENT
  251171. .IP \(bu 2
  251172. \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)
  251173. .IP \(bu 2
  251174. \fBPR\fP \fI\%#32458\fP: (\fI\%terminalmage\fP) Improve and clarify docs on provider overrides.
  251175. @ \fI2016\-04\-09 14:25:42 UTC\fP
  251176. .INDENT 2.0
  251177. .IP \(bu 2
  251178. 100c6e1b25 Merge pull request \fI\%#32458\fP from terminalmage/clarify\-providers\-docs
  251179. .IP \(bu 2
  251180. 500d3ebbaa Add link to provider override docs to all group providers
  251181. .IP \(bu 2
  251182. 83ca01f620 dd link to provider override docs to all shadow providers
  251183. .IP \(bu 2
  251184. c5fe38789d Add link to provider override docs to all user providers
  251185. .IP \(bu 2
  251186. 5c1c1dda59 Add link to provider override docs to all service providers
  251187. .IP \(bu 2
  251188. 736f2befc9 Add link to provider override docs to all package providers
  251189. .IP \(bu 2
  251190. f9306347cc Clarify the scope of the provider param in states.
  251191. .IP \(bu 2
  251192. af24c82ab0 Add documentation on virtual module provider overrides to the module docs
  251193. .IP \(bu 2
  251194. 0bc6c97a63 Improve docstrings
  251195. .IP \(bu 2
  251196. 1948920674 Add external ref to windows package manager docs
  251197. .IP \(bu 2
  251198. e7fa21438c Add new doc pages to toctree
  251199. .IP \(bu 2
  251200. f0de1236ec Move the tables of virtual modules to individual documentation pages
  251201. .UNINDENT
  251202. .IP \(bu 2
  251203. \fBISSUE\fP \fI\%#11497\fP: (\fI\%eeaston\fP) cmd.run cwd should not be checked before preconditions (refs: \fI\%#32293\fP)
  251204. .INDENT 2.0
  251205. .IP \(bu 2
  251206. \fBPR\fP \fI\%#32418\fP: (\fI\%rallytime\fP) Merge \fI\%#32293\fP with test fixes
  251207. .IP \(bu 2
  251208. \fBPR\fP \fI\%#32293\fP: (\fI\%efficks\fP) Fix issue \fI\%#11497\fP (refs: \fI\%#32418\fP)
  251209. .UNINDENT
  251210. .IP \(bu 2
  251211. \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)
  251212. .INDENT 2.0
  251213. .IP \(bu 2
  251214. \fBPR\fP \fI\%#32421\fP: (\fI\%terminalmage\fP) Ignore Raspbian in service.py __virtual__
  251215. .UNINDENT
  251216. .IP \(bu 2
  251217. \fBISSUE\fP \fI\%#1409\fP: (\fI\%twinshadow\fP) module/network.py: Interfaces do not list multiple addesses
  251218. .IP \(bu 2
  251219. \fBISSUE\fP \fI\%saltstack/salt#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP)
  251220. .IP \(bu 2
  251221. \fBISSUE\fP \fI\%#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32399\fP, \fI\%#32376\fP)
  251222. .IP \(bu 2
  251223. \fBPR\fP \fI\%#32399\fP: (\fI\%amontalban\fP) Backport to fix \fI\%#28262\fP for 2015.5 as requested in PR \fI\%#32376\fP
  251224. @ \fI2016\-04\-06 22:48:23 UTC\fP
  251225. .INDENT 2.0
  251226. .IP \(bu 2
  251227. \fBPR\fP \fI\%#32376\fP: (\fI\%amontalban\fP) Fixes \fI\%saltstack/salt#28262\fP (refs: \fI\%#32399\fP)
  251228. .IP \(bu 2
  251229. a36866d7db Merge pull request \fI\%#32399\fP from amontalban/2015.5
  251230. .IP \(bu 2
  251231. e1ffbd615a Fixes \fI\%saltstack/salt#28262\fP for 2015.5 branch
  251232. .UNINDENT
  251233. .IP \(bu 2
  251234. \fBISSUE\fP \fI\%#32066\fP: (\fI\%guettli\fP) Proxmox docs outdated (refs: \fI\%#32374\fP)
  251235. .IP \(bu 2
  251236. \fBPR\fP \fI\%#32374\fP: (\fI\%cachedout\fP) Update proxmox documentation
  251237. @ \fI2016\-04\-05 22:25:16 UTC\fP
  251238. .INDENT 2.0
  251239. .IP \(bu 2
  251240. 3f03c5fcf9 Merge pull request \fI\%#32374\fP from cachedout/issue_32066
  251241. .IP \(bu 2
  251242. 62389d1d1a Update proxmox documentation
  251243. .UNINDENT
  251244. .IP \(bu 2
  251245. \fBPR\fP \fI\%#32339\fP: (\fI\%Ch3LL\fP) remove reference to master_alive_check in 2015.5
  251246. @ \fI2016\-04\-04 20:39:24 UTC\fP
  251247. .INDENT 2.0
  251248. .IP \(bu 2
  251249. 8578089beb Merge pull request \fI\%#32339\fP from Ch3LL/fix_doc_multi\-master
  251250. .IP \(bu 2
  251251. 2774da288d remove reference to master_alive_check
  251252. .UNINDENT
  251253. .IP \(bu 2
  251254. \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)
  251255. .IP \(bu 2
  251256. \fBPR\fP \fI\%#32284\fP: (\fI\%rallytime\fP) Audit config.py default types and values
  251257. @ \fI2016\-04\-02 02:00:38 UTC\fP
  251258. .INDENT 2.0
  251259. .IP \(bu 2
  251260. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32284\fP)
  251261. .IP \(bu 2
  251262. fbdc47cc55 Merge pull request \fI\%#32284\fP from rallytime/config\-audit
  251263. .IP \(bu 2
  251264. 0491513204 Don\(aqt be so explicit. Just use string_types.
  251265. .IP \(bu 2
  251266. 083c477fd3 Use six.string_types in config default tuples
  251267. .IP \(bu 2
  251268. 7e642b8381 Audit config.py default types and values \- first sweep
  251269. .UNINDENT
  251270. .IP \(bu 2
  251271. \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)
  251272. .IP \(bu 2
  251273. \fBPR\fP \fI\%#32302\fP: (\fI\%terminalmage\fP) Properly support packages with blank "Release" param in pkg.latest_version
  251274. @ \fI2016\-04\-01 22:13:27 UTC\fP
  251275. .INDENT 2.0
  251276. .IP \(bu 2
  251277. 0a6d44e57b Merge pull request \fI\%#32302\fP from terminalmage/fix\-missing\-release
  251278. .IP \(bu 2
  251279. 413c371ccd Properly support packages with blank "Release" param in pkg.latest_version
  251280. .UNINDENT
  251281. .IP \(bu 2
  251282. \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)
  251283. .IP \(bu 2
  251284. \fBPR\fP \fI\%#32162\fP: (\fI\%terminalmage\fP) Properly handle yum/zypper repositories in pkgrepo.managed
  251285. @ \fI2016\-03\-30 17:51:05 UTC\fP
  251286. .INDENT 2.0
  251287. .IP \(bu 2
  251288. 5d08db7c92 Merge pull request \fI\%#32162\fP from terminalmage/issue31963
  251289. .IP \(bu 2
  251290. 5c1bdb812c Fix pkgrepo integration test
  251291. .IP \(bu 2
  251292. e7fb3095ce Properly handle yum/zypper repositories in pkgrepo.managed
  251293. .IP \(bu 2
  251294. add2111fec Use six.iteritems instead of dict.items
  251295. .IP \(bu 2
  251296. 6c21881c38 Docstring tweaks
  251297. .IP \(bu 2
  251298. ecbb78b649 Remove useless function
  251299. .IP \(bu 2
  251300. 06f3309552 Normalize variable naming to match other functions
  251301. .IP \(bu 2
  251302. 690537ca8b Look for apt\-add\-repository in PATH instead of assuming it\(aqs there
  251303. .IP \(bu 2
  251304. 709d80bb1b aptpkg: Accept **kwargs instead of a dict for pkg.expand_repo_def
  251305. .UNINDENT
  251306. .IP \(bu 2
  251307. \fBISSUE\fP \fI\%#31976\fP: (\fI\%moltob\fP) Schedules not persisted on Windows minion (Installer issue) (refs: \fI\%#32223\fP)
  251308. .IP \(bu 2
  251309. \fBPR\fP \fI\%#32223\fP: (\fI\%twangboy\fP) Create minion.d directory on install for Windows
  251310. @ \fI2016\-03\-30 14:43:27 UTC\fP
  251311. .INDENT 2.0
  251312. .IP \(bu 2
  251313. 4fcdaab428 Merge pull request \fI\%#32223\fP from twangboy/fix_31976
  251314. .IP \(bu 2
  251315. b7fcae97ce Create minion.d directory, fixes \fI\%#31976\fP
  251316. .UNINDENT
  251317. .IP \(bu 2
  251318. \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)
  251319. .IP \(bu 2
  251320. \fBPR\fP \fI\%#32218\fP: (\fI\%cachedout\fP) Only display error when tty is True in salt\-ssh
  251321. @ \fI2016\-03\-29 19:13:44 UTC\fP
  251322. .INDENT 2.0
  251323. .IP \(bu 2
  251324. 3309ff6a29 Merge pull request \fI\%#32218\fP from cachedout/issue_31501
  251325. .IP \(bu 2
  251326. 6795d6aef0 Only display error when tty is True in salt\-ssh
  251327. .UNINDENT
  251328. .IP \(bu 2
  251329. \fBPR\fP \fI\%#32196\fP: (\fI\%justinta\fP) Fixed pylint error in app_pam_test.py
  251330. @ \fI2016\-03\-28 23:59:42 UTC\fP
  251331. .INDENT 2.0
  251332. .IP \(bu 2
  251333. 6e0cb22c96 Merge pull request \fI\%#32196\fP from jtand/cherrypy_pam_test_lint_fix
  251334. .IP \(bu 2
  251335. bd3942e0fd Fixed pylint error in app_pam_test.py
  251336. .UNINDENT
  251337. .IP \(bu 2
  251338. \fBPR\fP \fI\%#32154\fP: (\fI\%Ch3LL\fP) Add integration tests for salt\-api using pam eauth
  251339. @ \fI2016\-03\-28 16:06:36 UTC\fP
  251340. .INDENT 2.0
  251341. .IP \(bu 2
  251342. \fBPR\fP \fI\%#31826\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service (refs: \fI\%#32154\fP)
  251343. .IP \(bu 2
  251344. 6b8b8b51c0 Merge pull request \fI\%#32154\fP from Ch3LL/ch3ll_pam_2015.5
  251345. .IP \(bu 2
  251346. ba605b0128 fix more pylint and add ability to close cherrypy engine
  251347. .IP \(bu 2
  251348. 2d4dc4da05 add teardown call
  251349. .IP \(bu 2
  251350. d115878714 fix pylint error
  251351. .IP \(bu 2
  251352. 4c1ab082b6 add pam salt\-api tests
  251353. .UNINDENT
  251354. .IP \(bu 2
  251355. \fBPR\fP \fI\%#32170\fP: (\fI\%gtmanfred\fP) add name for lxc for use with cloud cache
  251356. @ \fI2016\-03\-28 14:34:16 UTC\fP
  251357. .INDENT 2.0
  251358. .IP \(bu 2
  251359. 230443be6c Merge pull request \fI\%#32170\fP from gtmanfred/lxc_cloud_name
  251360. .IP \(bu 2
  251361. eb7d82e7be add name for lxc for use with cloud cache
  251362. .UNINDENT
  251363. .IP \(bu 2
  251364. \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)
  251365. .INDENT 2.0
  251366. .IP \(bu 2
  251367. \fBPR\fP \fI\%#32165\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (refs: \fI\%#32164\fP)
  251368. .UNINDENT
  251369. .IP \(bu 2
  251370. \fBPR\fP \fI\%#32164\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (2015.5 branch) (refs: \fI\%#32165\fP)
  251371. @ \fI2016\-03\-27 18:21:52 UTC\fP
  251372. .INDENT 2.0
  251373. .IP \(bu 2
  251374. 32b0421a34 Merge pull request \fI\%#32164\fP from terminalmage/issue31731\-2015.5
  251375. .IP \(bu 2
  251376. 18439c4f89 Make __virtual__ for rhservice.py more robust (2015.5 branch)
  251377. .UNINDENT
  251378. .IP \(bu 2
  251379. \fBPR\fP \fI\%#32141\fP: (\fI\%paclat\fP) fixes 32108
  251380. @ \fI2016\-03\-25 16:50:59 UTC\fP
  251381. .INDENT 2.0
  251382. .IP \(bu 2
  251383. 6212e9aa56 Merge pull request \fI\%#32141\fP from paclat/issue_32108
  251384. .IP \(bu 2
  251385. 72c5d12d43 fixes 32108
  251386. .UNINDENT
  251387. .IP \(bu 2
  251388. \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)
  251389. .IP \(bu 2
  251390. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32284\fP)
  251391. @ \fI2016\-03\-24 21:16:29 UTC\fP
  251392. .INDENT 2.0
  251393. .IP \(bu 2
  251394. bdd7ea89d5 Merge pull request \fI\%#32129\fP from terminalmage/issue32044
  251395. .IP \(bu 2
  251396. 34ca1ea12e Change type check errors to debug loglevel
  251397. .IP \(bu 2
  251398. 5462081488 Support multiple valid option types when performing type checks
  251399. .UNINDENT
  251400. .IP \(bu 2
  251401. \fBISSUE\fP \fI\%#32052\fP: (\fI\%bstevenson\fP) list_absent function doesn\(aqt loop through list of values (refs: \fI\%#32056\fP)
  251402. .IP \(bu 2
  251403. \fBPR\fP \fI\%#32056\fP: (\fI\%bstevenson\fP) Fix list absent
  251404. @ \fI2016\-03\-24 17:35:00 UTC\fP
  251405. .INDENT 2.0
  251406. .IP \(bu 2
  251407. c42014eb54 Merge pull request \fI\%#32056\fP from bstevenson/fix\-list_absent
  251408. .IP \(bu 2
  251409. 1500aae027 set deleted value to list
  251410. .IP \(bu 2
  251411. 1dc8f5f289 unit test update
  251412. .IP \(bu 2
  251413. 39adf86fec Fixed negation logic
  251414. .IP \(bu 2
  251415. be9388173b Removed has_key in lieu of in
  251416. .IP \(bu 2
  251417. e48593ed81 Comments and Changes output fixes
  251418. .IP \(bu 2
  251419. b98f5517de Updated to conform to proper ret values
  251420. .IP \(bu 2
  251421. d18b4be80b remove whitespace end of line 186:q
  251422. .IP \(bu 2
  251423. d2b89c85ad fix formating
  251424. .IP \(bu 2
  251425. 103cee9e29 cleaned up formating
  251426. .IP \(bu 2
  251427. 7a4d7f0bff added whitespace
  251428. .IP \(bu 2
  251429. 8ea5b545b0 Loop through list values in list_absent
  251430. .UNINDENT
  251431. .IP \(bu 2
  251432. \fBPR\fP \fI\%#32096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32065\fP to 2015.5
  251433. @ \fI2016\-03\-23 22:01:36 UTC\fP
  251434. .INDENT 2.0
  251435. .IP \(bu 2
  251436. \fBPR\fP \fI\%#32065\fP: (\fI\%TheNullByte\fP) Fix an issue with the minion targeting example in docs (refs: \fI\%#32096\fP)
  251437. .IP \(bu 2
  251438. 848ce5647f Merge pull request \fI\%#32096\fP from rallytime/bp\-32065
  251439. .IP \(bu 2
  251440. 36a9d6a374 Fix an issue with the minion targeting example
  251441. .UNINDENT
  251442. .IP \(bu 2
  251443. \fBPR\fP \fI\%#32104\fP: (\fI\%jacobhammons\fP) One additional known issue for 2015.5.10 release notes
  251444. @ \fI2016\-03\-23 21:20:50 UTC\fP
  251445. .INDENT 2.0
  251446. .IP \(bu 2
  251447. 9b332d48b9 Merge pull request \fI\%#32104\fP from jacobhammons/dot10
  251448. .IP \(bu 2
  251449. b9fc882a1e One additional known issue for 2015.5.10 release notes
  251450. .UNINDENT
  251451. .IP \(bu 2
  251452. \fBPR\fP \fI\%#32100\fP: (\fI\%jacobhammons\fP) 2015.5.10 release docs
  251453. @ \fI2016\-03\-23 20:05:21 UTC\fP
  251454. .INDENT 2.0
  251455. .IP \(bu 2
  251456. ff51d548e1 Merge pull request \fI\%#32100\fP from jacobhammons/dot10
  251457. .IP \(bu 2
  251458. 544a1661ce 2015.5.10 release docs
  251459. .UNINDENT
  251460. .IP \(bu 2
  251461. \fBISSUE\fP \fI\%#32037\fP: (\fI\%terminalmage\fP) Increase the visibility of state.apply in Salt\(aqs documentation (refs: \fI\%#32038\fP)
  251462. .IP \(bu 2
  251463. \fBPR\fP \fI\%#32038\fP: (\fI\%terminalmage\fP) Improve state module docs, replace references to state.highstate/state.sls with state.apply
  251464. @ \fI2016\-03\-23 17:08:02 UTC\fP
  251465. .INDENT 2.0
  251466. .IP \(bu 2
  251467. 72a20f9799 Merge pull request \fI\%#32038\fP from terminalmage/issue32037
  251468. .IP \(bu 2
  251469. 8b2d983324 Add reference to state tutorial to state.apply docstring
  251470. .IP \(bu 2
  251471. 9b4fe8443e Move highstate usage details to top of state.apply docstring
  251472. .IP \(bu 2
  251473. 74ee8c54bc Clarify prior role of state.highstate in states tutorial
  251474. .IP \(bu 2
  251475. 1b97e4a3df Improve state module docs, replace references to state.highstate/state.sls with state.apply
  251476. .UNINDENT
  251477. .IP \(bu 2
  251478. \fBPR\fP \fI\%#32051\fP: (\fI\%terminalmage\fP) Fix outputter for state.apply
  251479. @ \fI2016\-03\-23 16:42:43 UTC\fP
  251480. .INDENT 2.0
  251481. .IP \(bu 2
  251482. 908a7bf5cd Merge pull request \fI\%#32051\fP from terminalmage/fix\-state\-apply\-output
  251483. .IP \(bu 2
  251484. 7d7cb45565 Fix outputter for state.apply
  251485. .UNINDENT
  251486. .IP \(bu 2
  251487. \fBISSUE\fP \fI\%#31788\fP: (\fI\%crocket\fP) pkg.installed doesn\(aqt work on Manjaro. (refs: \fI\%#32002\fP)
  251488. .IP \(bu 2
  251489. \fBPR\fP \fI\%#32002\fP: (\fI\%abednarik\fP) Added Manajro Linux to virtual.
  251490. @ \fI2016\-03\-21 17:55:16 UTC\fP
  251491. .INDENT 2.0
  251492. .IP \(bu 2
  251493. 0e66f678d4 Merge pull request \fI\%#32002\fP from abednarik/pkg_manjaron_issue31788
  251494. .IP \(bu 2
  251495. 1b052d0a66 Added Manajro Linux to virtual. List extended with ManajaroLinux in order su load pacman module.
  251496. .UNINDENT
  251497. .IP \(bu 2
  251498. \fBPR\fP \fI\%#31957\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  251499. @ \fI2016\-03\-18 15:12:22 UTC\fP
  251500. .INDENT 2.0
  251501. .IP \(bu 2
  251502. ba5bf62c1a Merge pull request \fI\%#31957\fP from rallytime/merge\-2015.5
  251503. .IP \(bu 2
  251504. 1b6ec5d445 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  251505. .INDENT 2.0
  251506. .IP \(bu 2
  251507. ba73deee46 Merge pull request \fI\%#31929\fP from twangboy/fix_build_script
  251508. .INDENT 2.0
  251509. .IP \(bu 2
  251510. 2c5599d2bc Backport build script from 2015.8
  251511. .IP \(bu 2
  251512. ce74991dd0 Fix nsi script to work with new build process
  251513. .UNINDENT
  251514. .UNINDENT
  251515. .UNINDENT
  251516. .IP \(bu 2
  251517. \fBPR\fP \fI\%#31972\fP: (\fI\%terminalmage\fP) Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  251518. @ \fI2016\-03\-18 15:11:59 UTC\fP
  251519. .INDENT 2.0
  251520. .IP \(bu 2
  251521. a52e3ad7a1 Merge pull request \fI\%#31972\fP from terminalmage/zh\-584
  251522. .IP \(bu 2
  251523. 1e5639e495 Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  251524. .UNINDENT
  251525. .IP \(bu 2
  251526. \fBPR\fP \fI\%#31935\fP: (\fI\%twangboy\fP) Back port nullsoft build script from 2015.8
  251527. @ \fI2016\-03\-17 14:54:50 UTC\fP
  251528. .INDENT 2.0
  251529. .IP \(bu 2
  251530. 2d1f2a0c2e Merge pull request \fI\%#31935\fP from twangboy/fix_build_script2
  251531. .IP \(bu 2
  251532. 4af8c9dbfc Back port nullsoft build script from 2015.8
  251533. .UNINDENT
  251534. .IP \(bu 2
  251535. \fBPR\fP \fI\%#31912\fP: (\fI\%jfindlay\fP) log.mixins: remove extemporaneous .record
  251536. @ \fI2016\-03\-16 01:56:46 UTC\fP
  251537. .INDENT 2.0
  251538. .IP \(bu 2
  251539. 43240dc566 Merge pull request \fI\%#31912\fP from jfindlay/log_mixin
  251540. .IP \(bu 2
  251541. 9f9c694654 log.mixins: remove extemporaneous .record
  251542. .UNINDENT
  251543. .IP \(bu 2
  251544. \fBPR\fP \fI\%#31825\fP: (\fI\%justinta\fP) Updated .testing.pylintrc to match newer versions of pylint
  251545. @ \fI2016\-03\-15 18:12:44 UTC\fP
  251546. .INDENT 2.0
  251547. .IP \(bu 2
  251548. 440e0dcbe0 Merge pull request \fI\%#31825\fP from jtand/udpate_pylintrc
  251549. .IP \(bu 2
  251550. 9a14e02766 Updated beacons/sh.py to work with enumerate()
  251551. .IP \(bu 2
  251552. 0ecec691a0 Adjusted beacons to work with enumerate better
  251553. .IP \(bu 2
  251554. f509b4113e Fixed final lint error
  251555. .IP \(bu 2
  251556. 5945b3f11f Fix and disable pylint errors
  251557. .IP \(bu 2
  251558. 06ae6eaf55 Fixed pylint errors on jboss state and module
  251559. .IP \(bu 2
  251560. de96db97c8 Fixed more pylint errors, and disabled some more
  251561. .IP \(bu 2
  251562. c07b0a20b5 Merge branch \(aqlint_fixes\(aq into udpate_pylintrc
  251563. .INDENT 2.0
  251564. .IP \(bu 2
  251565. 2e6a152308 Fixed lint error in lxc.py
  251566. .IP \(bu 2
  251567. 908ca1a439 Fixed lint error in ssh_py_shim
  251568. .IP \(bu 2
  251569. 404c1b50f7 Changed range(len()) to enumerate()
  251570. .IP \(bu 2
  251571. 1e13586546 Changed range(len()) to enumerate()
  251572. .UNINDENT
  251573. .IP \(bu 2
  251574. 9ccce7a9a5 Added more disables
  251575. .IP \(bu 2
  251576. 9c1aab3b4e Updated .testing.pylintrc to match newer versions of pylint
  251577. .UNINDENT
  251578. .IP \(bu 2
  251579. \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)
  251580. .IP \(bu 2
  251581. \fBPR\fP \fI\%#31900\fP: (\fI\%rallytime\fP) Add "python module" clarification to ps __virtual__ warning.
  251582. @ \fI2016\-03\-15 17:59:35 UTC\fP
  251583. .INDENT 2.0
  251584. .IP \(bu 2
  251585. 471c9444a3 Merge pull request \fI\%#31900\fP from rallytime/fix\-psutil\-warning
  251586. .IP \(bu 2
  251587. 22403d69ae Add "python module" clarification to ps __virtual__ warning.
  251588. .UNINDENT
  251589. .IP \(bu 2
  251590. \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)
  251591. .IP \(bu 2
  251592. \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)
  251593. .IP \(bu 2
  251594. \fBPR\fP \fI\%#31878\fP: (\fI\%rallytime\fP) Make sure __virtual__ error message is helpful when psutil is missing
  251595. @ \fI2016\-03\-14 21:31:42 UTC\fP
  251596. .INDENT 2.0
  251597. .IP \(bu 2
  251598. c44c1b5e59 Merge pull request \fI\%#31878\fP from rallytime/fix\-psutil\-warning
  251599. .IP \(bu 2
  251600. 44b29f72a1 Make sure __virtual__ error message is helpful when psutil is missing
  251601. .UNINDENT
  251602. .IP \(bu 2
  251603. \fBPR\fP \fI\%#31852\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  251604. @ \fI2016\-03\-13 02:47:02 UTC\fP
  251605. .INDENT 2.0
  251606. .IP \(bu 2
  251607. 5c592b6768 Merge pull request \fI\%#31852\fP from rallytime/merge\-2015.5
  251608. .IP \(bu 2
  251609. 1470de17fa Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  251610. .IP \(bu 2
  251611. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  251612. .INDENT 2.0
  251613. .IP \(bu 2
  251614. 358fdad0c8 add 2014.7.8 release notes
  251615. .UNINDENT
  251616. .IP \(bu 2
  251617. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  251618. .INDENT 2.0
  251619. .IP \(bu 2
  251620. 6910fcc584 add 2014.7.9 release notes
  251621. .UNINDENT
  251622. .IP \(bu 2
  251623. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  251624. .IP \(bu 2
  251625. d73f70ebb2 Remove ability of authenticating user to specify pam service
  251626. .UNINDENT
  251627. .IP \(bu 2
  251628. \fBPR\fP \fI\%#31827\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  251629. @ \fI2016\-03\-11 20:40:19 UTC\fP
  251630. .INDENT 2.0
  251631. .IP \(bu 2
  251632. 0cc1d5db03 Merge pull request \fI\%#31827\fP from gtmanfred/2015.5
  251633. .IP \(bu 2
  251634. 979173b78a Remove ability of authenticating user to specify pam service
  251635. .UNINDENT
  251636. .IP \(bu 2
  251637. \fBPR\fP \fI\%#31810\fP: (\fI\%whiteinge\fP) Fix outdated Jinja \(aqenv\(aq variable reference
  251638. @ \fI2016\-03\-11 03:52:21 UTC\fP
  251639. .INDENT 2.0
  251640. .IP \(bu 2
  251641. 8cf0b9eb3d Merge pull request \fI\%#31810\fP from whiteinge/saltenv\-jinja\-var
  251642. .IP \(bu 2
  251643. cb72b19240 Fix outdated Jinja \(aqenv\(aq variable reference
  251644. .UNINDENT
  251645. .IP \(bu 2
  251646. \fBISSUE\fP \fI\%#31729\fP: (\fI\%brejoc\fP) Creating VM with salt\-cloud fails for provider Exoscale (Cloudstack) (refs: \fI\%#31744\fP)
  251647. .IP \(bu 2
  251648. \fBPR\fP \fI\%#31744\fP: (\fI\%brejoc\fP) Fix for AttributeError with libcloud <0.15
  251649. @ \fI2016\-03\-10 00:15:26 UTC\fP
  251650. .INDENT 2.0
  251651. .IP \(bu 2
  251652. 970ef0e445 Merge pull request \fI\%#31744\fP from brejoc/fix\-attribute\-error\-with\-older\-libcloud/2015.5
  251653. .IP \(bu 2
  251654. bb29dc2283 Added version to libcloud depends statement
  251655. .IP \(bu 2
  251656. 87f9534fce Added log message with update suggestion for libcloud
  251657. .IP \(bu 2
  251658. 72eab406cd Fix for AttributeError with libcloud <0.15
  251659. .UNINDENT
  251660. .IP \(bu 2
  251661. \fBISSUE\fP \fI\%#31666\fP: (\fI\%sjorge\fP) salt\-call \-\-local pillar.items is overly eager to give data (refs: \fI\%#31740\fP)
  251662. .IP \(bu 2
  251663. \fBPR\fP \fI\%#31740\fP: (\fI\%terminalmage\fP) Assume pillar_opts is False when not specified in masterless mode
  251664. @ \fI2016\-03\-09 22:57:57 UTC\fP
  251665. .INDENT 2.0
  251666. .IP \(bu 2
  251667. df2d23ba5d Merge pull request \fI\%#31740\fP from terminalmage/issue31666
  251668. .IP \(bu 2
  251669. aeaf5864cd Fall back to False when pillar_opts not set
  251670. .IP \(bu 2
  251671. fe19d77eb4 Add default value for pillar_opts on minion
  251672. .UNINDENT
  251673. .IP \(bu 2
  251674. \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)
  251675. .IP \(bu 2
  251676. \fBISSUE\fP \fI\%#26162\fP: (\fI\%nmadhok\fP) VMware cloud driver create function failing with traceback on latest develop (refs: \fI\%#26170\fP)
  251677. .IP \(bu 2
  251678. \fBPR\fP \fI\%#31750\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26170\fP to 2015.5
  251679. @ \fI2016\-03\-09 17:44:14 UTC\fP
  251680. .INDENT 2.0
  251681. .IP \(bu 2
  251682. \fBPR\fP \fI\%#26170\fP: (\fI\%nmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it. (refs: \fI\%#31750\fP)
  251683. .IP \(bu 2
  251684. e22f5c0a26 Merge pull request \fI\%#31750\fP from rallytime/bp\-26170
  251685. .IP \(bu 2
  251686. 3c11234a05 Make sure variable is a dictionary before popping something from it.
  251687. .UNINDENT
  251688. .IP \(bu 2
  251689. \fBISSUE\fP \fI\%#30559\fP: (\fI\%kaidokert\fP) module.wait does not fail when called state fails (refs: \fI\%#31689\fP)
  251690. .IP \(bu 2
  251691. \fBPR\fP \fI\%#31689\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29467\fP to 2015.5
  251692. @ \fI2016\-03\-06 19:26:11 UTC\fP
  251693. .INDENT 2.0
  251694. .IP \(bu 2
  251695. \fBPR\fP \fI\%#29467\fP: (\fI\%serge\-p\fP) Update module.py (refs: \fI\%#31689\fP)
  251696. .IP \(bu 2
  251697. 9162925dd0 Merge pull request \fI\%#31689\fP from rallytime/bp\-29467
  251698. .IP \(bu 2
  251699. 1f8f4cb99b Update module.py
  251700. .UNINDENT
  251701. .IP \(bu 2
  251702. \fBPR\fP \fI\%#31687\fP: (\fI\%cachedout\fP) Removed useless GPG tests
  251703. @ \fI2016\-03\-05 00:08:27 UTC\fP
  251704. .INDENT 2.0
  251705. .IP \(bu 2
  251706. d7914cdb14 Merge pull request \fI\%#31687\fP from cachedout/rm_gpg_test
  251707. .IP \(bu 2
  251708. 8b00513ebb Removed useless tests
  251709. .UNINDENT
  251710. .IP \(bu 2
  251711. \fBISSUE\fP \fI\%#31619\fP: (\fI\%alexxannar\fP) 2015.8.7 pkg.installed problem with version parameter (refs: \fI\%#31660\fP)
  251712. .IP \(bu 2
  251713. \fBPR\fP \fI\%#31660\fP: (\fI\%terminalmage\fP) Remove epoch from version string if present when installing with yum
  251714. @ \fI2016\-03\-04 20:49:23 UTC\fP
  251715. .INDENT 2.0
  251716. .IP \(bu 2
  251717. bd4d12a155 Merge pull request \fI\%#31660\fP from terminalmage/issue31619
  251718. .IP \(bu 2
  251719. da954d7b92 Add integration test for packages with epoch in version
  251720. .IP \(bu 2
  251721. 4fa7e4defe Move epoch removal
  251722. .IP \(bu 2
  251723. 290192af56 Remove epoch from version string if present when installing with yum
  251724. .UNINDENT
  251725. .IP \(bu 2
  251726. \fBPR\fP \fI\%#31683\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31578\fP to 2015.5
  251727. @ \fI2016\-03\-04 20:47:41 UTC\fP
  251728. .INDENT 2.0
  251729. .IP \(bu 2
  251730. \fBPR\fP \fI\%#31578\fP: (\fI\%anlutro\fP) Allow queueing of state runs through saltmod (refs: \fI\%#31683\fP)
  251731. .IP \(bu 2
  251732. e33c1f456a Merge pull request \fI\%#31683\fP from rallytime/bp\-31578
  251733. .IP \(bu 2
  251734. 8fe46789b7 allow queueing of state runs through saltmod
  251735. .UNINDENT
  251736. .IP \(bu 2
  251737. \fBISSUE\fP \fI\%#31671\fP: (\fI\%guettli\fP) Word "Job Cache" does not match (refs: \fI\%#31682\fP)
  251738. .IP \(bu 2
  251739. \fBPR\fP \fI\%#31682\fP: (\fI\%cachedout\fP) Add definition of job cache to glossary
  251740. @ \fI2016\-03\-04 20:07:19 UTC\fP
  251741. .INDENT 2.0
  251742. .IP \(bu 2
  251743. 27f443895d Merge pull request \fI\%#31682\fP from cachedout/cache_meaning
  251744. .IP \(bu 2
  251745. a75e146125 Add definition of job cache to glossary
  251746. .UNINDENT
  251747. .IP \(bu 2
  251748. \fBPR\fP \fI\%#31658\fP: (\fI\%rallytime\fP) Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  251749. @ \fI2016\-03\-03 22:14:57 UTC\fP
  251750. .INDENT 2.0
  251751. .IP \(bu 2
  251752. bd04c964d1 Merge pull request \fI\%#31658\fP from rallytime/add\-style\-to\-contrib
  251753. .IP \(bu 2
  251754. 6b526b5878 Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  251755. .UNINDENT
  251756. .IP \(bu 2
  251757. \fBISSUE\fP \fI\%#21932\fP: (\fI\%clinta\fP) Salt Coding Style docs should list requirements for salt pylintrc (refs: \fI\%#31655\fP)
  251758. .IP \(bu 2
  251759. \fBPR\fP \fI\%#31655\fP: (\fI\%rallytime\fP) Make note of pylint dependencies in docs
  251760. @ \fI2016\-03\-03 18:37:06 UTC\fP
  251761. .INDENT 2.0
  251762. .IP \(bu 2
  251763. 10658dffe6 Merge pull request \fI\%#31655\fP from rallytime/pylint\-docs
  251764. .IP \(bu 2
  251765. 6e0377d376 Make note of pylint dependencies in docs
  251766. .UNINDENT
  251767. .IP \(bu 2
  251768. \fBPR\fP \fI\%#31440\fP: (\fI\%cachedout\fP) Set correct type for master_tops config value
  251769. @ \fI2016\-03\-02 21:17:14 UTC\fP
  251770. .INDENT 2.0
  251771. .IP \(bu 2
  251772. 6075774a01 Merge pull request \fI\%#31440\fP from cachedout/master_tops_type
  251773. .IP \(bu 2
  251774. f49cc75049 Set correct type for master_tops config value
  251775. .UNINDENT
  251776. .IP \(bu 2
  251777. \fBISSUE\fP \fI\%#31614\fP: (\fI\%frizzby\fP) salt.utils.http.query() implementation contradicts its documentation. decode arg (refs: \fI\%#31622\fP)
  251778. .IP \(bu 2
  251779. \fBPR\fP \fI\%#31622\fP: (\fI\%jfindlay\fP) doc/topics/tutorials/http: update query decoding docs
  251780. @ \fI2016\-03\-02 18:23:44 UTC\fP
  251781. .INDENT 2.0
  251782. .IP \(bu 2
  251783. 6d31b8918f Merge pull request \fI\%#31622\fP from jfindlay/query_doc
  251784. .IP \(bu 2
  251785. 4e48fec806 doc/topics/tutorials/http: update query decoding docs
  251786. .UNINDENT
  251787. .IP \(bu 2
  251788. \fBPR\fP \fI\%#31558\fP: (\fI\%cachedout\fP) Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  251789. @ \fI2016\-02\-29 22:15:44 UTC\fP
  251790. .INDENT 2.0
  251791. .IP \(bu 2
  251792. dbf6e0786c Merge pull request \fI\%#31558\fP from cachedout/ensure_ssh_installed
  251793. .IP \(bu 2
  251794. cecc6e0a5f Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  251795. .UNINDENT
  251796. .IP \(bu 2
  251797. \fBPR\fP \fI\%#31521\fP: (\fI\%terminalmage\fP) salt\-ssh: Fix race condition when caching files to build the thin tarball
  251798. @ \fI2016\-02\-29 15:32:22 UTC\fP
  251799. .INDENT 2.0
  251800. .IP \(bu 2
  251801. 060a60fd90 Merge pull request \fI\%#31521\fP from terminalmage/issue24753
  251802. .IP \(bu 2
  251803. 0d352bbc16 Add fileclient tests
  251804. .IP \(bu 2
  251805. d9370a8041 Update cp module salt\-ssh wrapper to use new cachedir param
  251806. .IP \(bu 2
  251807. 0320494b1d Update the SSH state module wrappers to pass an alternate cachedir
  251808. .IP \(bu 2
  251809. 65bdcb3afa Accept and pass through the alternate cachedir when prepping the thin tar
  251810. .IP \(bu 2
  251811. c3f7a2f2e5 Add ability to specify an alternate base dir for file caching
  251812. .UNINDENT
  251813. .IP \(bu 2
  251814. \fBPR\fP \fI\%#31497\fP: (\fI\%rallytime\fP) Remove duplicate "timeout" definition in Roster docs
  251815. @ \fI2016\-02\-26 15:01:30 UTC\fP
  251816. .INDENT 2.0
  251817. .IP \(bu 2
  251818. 92f8f89218 Merge pull request \fI\%#31497\fP from rallytime/remove\-timeout\-dup
  251819. .IP \(bu 2
  251820. 83e6480d20 Remove duplicate "timeout" definition in Roster docs
  251821. .UNINDENT
  251822. .IP \(bu 2
  251823. \fBPR\fP \fI\%#31472\fP: (\fI\%rallytime\fP) Update contributing docs
  251824. @ \fI2016\-02\-25 16:05:59 UTC\fP
  251825. .INDENT 2.0
  251826. .IP \(bu 2
  251827. da001bcb49 Merge pull request \fI\%#31472\fP from rallytime/update\-contributing\-docs
  251828. .IP \(bu 2
  251829. 5871e4d1e0 Update contributing docs
  251830. .UNINDENT
  251831. .IP \(bu 2
  251832. \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)
  251833. .IP \(bu 2
  251834. \fBPR\fP \fI\%#31461\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover.
  251835. @ \fI2016\-02\-24 17:15:30 UTC\fP
  251836. .INDENT 2.0
  251837. .IP \(bu 2
  251838. \fBPR\fP \fI\%#31382\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover (refs: \fI\%#31461\fP)
  251839. .IP \(bu 2
  251840. f35e2dd1d3 Merge pull request \fI\%#31461\fP from DSRCompany/issues/30183_fix_multimaster_failover_2015.5
  251841. .IP \(bu 2
  251842. 3d09c3b7a3 Set auth retry count to 0 if multimaster mode is failover.
  251843. .UNINDENT
  251844. .IP \(bu 2
  251845. \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)
  251846. .IP \(bu 2
  251847. \fBPR\fP \fI\%#31442\fP: (\fI\%sastorsl\fP) Add os.path.exists(src) to file.py, def copy
  251848. @ \fI2016\-02\-23 23:40:03 UTC\fP
  251849. .INDENT 2.0
  251850. .IP \(bu 2
  251851. 26733ce988 Merge pull request \fI\%#31442\fP from sastorsl/salt\-modules\-file.py\-copy\-check\-src
  251852. .IP \(bu 2
  251853. 0a4132866d removed lint in the exception string
  251854. .IP \(bu 2
  251855. f8b5d498c3 Add os.path.exists(src) to file.py, def copy
  251856. .UNINDENT
  251857. .IP \(bu 2
  251858. \fBISSUE\fP \fI\%#30739\fP: (\fI\%paclat\fP) manage.present does not work when minion is using localhost (refs: \fI\%#31441\fP)
  251859. .IP \(bu 2
  251860. \fBPR\fP \fI\%#31441\fP: (\fI\%cachedout\fP) Include localhost minions in presence detection for runner
  251861. @ \fI2016\-02\-23 23:36:59 UTC\fP
  251862. .INDENT 2.0
  251863. .IP \(bu 2
  251864. e480727d27 Merge pull request \fI\%#31441\fP from cachedout/issue_30739
  251865. .IP \(bu 2
  251866. ffcfad1570 Include localhost minions in presence detection for runner
  251867. .UNINDENT
  251868. .IP \(bu 2
  251869. \fBPR\fP \fI\%#31416\fP: (\fI\%carlwgeorge\fP) selinux module documentation fix
  251870. @ \fI2016\-02\-22 21:49:28 UTC\fP
  251871. .INDENT 2.0
  251872. .IP \(bu 2
  251873. 91ff95f093 Merge pull request \fI\%#31416\fP from carlwgeorge/selinux_doc_fix
  251874. .IP \(bu 2
  251875. 0e6846d72e selinux module documentation fix
  251876. .UNINDENT
  251877. .IP \(bu 2
  251878. \fBPR\fP \fI\%#31336\fP: (\fI\%terminalmage\fP) Improve config validation logging
  251879. @ \fI2016\-02\-22 19:34:24 UTC\fP
  251880. .INDENT 2.0
  251881. .IP \(bu 2
  251882. 7d01979898 Merge pull request \fI\%#31336\fP from terminalmage/config\-validation\-logging
  251883. .IP \(bu 2
  251884. 795008bad1 Improve config validation logging
  251885. .UNINDENT
  251886. .IP \(bu 2
  251887. \fBISSUE\fP \fI\%#31369\fP: (\fI\%sjorge\fP) illumos/solaris/smartos display compacted hwaddrs (refs: \fI\%#31374\fP)
  251888. .IP \(bu 2
  251889. \fBPR\fP \fI\%#31374\fP: (\fI\%sjorge\fP) fix for \fI\%#31369\fP
  251890. @ \fI2016\-02\-22 16:22:21 UTC\fP
  251891. .INDENT 2.0
  251892. .IP \(bu 2
  251893. fed096a29d Merge pull request \fI\%#31374\fP from sjorge/solarish_hwaddr
  251894. .IP \(bu 2
  251895. bdf2576dfb missed a .format and messed up the join
  251896. .IP \(bu 2
  251897. bbd2fdc96d fix for illumos/solaris hwaddr
  251898. .UNINDENT
  251899. .IP \(bu 2
  251900. \fBPR\fP \fI\%#31339\fP: (\fI\%jacobhammons\fP) changed latest release to 2015.8.7
  251901. @ \fI2016\-02\-19 00:30:24 UTC\fP
  251902. .INDENT 2.0
  251903. .IP \(bu 2
  251904. 6ee17f905b Merge pull request \fI\%#31339\fP from jacobhammons/dot7prev
  251905. .IP \(bu 2
  251906. 07120a8d48 changed latest release to 2015.8.7
  251907. .UNINDENT
  251908. .IP \(bu 2
  251909. \fBPR\fP \fI\%#31288\fP: (\fI\%notpeter\fP) Improve salt.states.ssh_known_hosts documentation.
  251910. @ \fI2016\-02\-17 22:09:18 UTC\fP
  251911. .INDENT 2.0
  251912. .IP \(bu 2
  251913. cd3400e67e Merge pull request \fI\%#31288\fP from notpeter/ssh_known_hosts_docs
  251914. .IP \(bu 2
  251915. 3f573d89a2 Improve salt.states.ssh_known_hosts documentation.
  251916. .UNINDENT
  251917. .IP \(bu 2
  251918. \fBPR\fP \fI\%#31183\fP: (\fI\%heyfife\fP) Fixed named external_ip reservation/re\-use code in gce driver.
  251919. @ \fI2016\-02\-17 19:02:27 UTC\fP
  251920. .INDENT 2.0
  251921. .IP \(bu 2
  251922. 875d9925fa Merge pull request \fI\%#31183\fP from heyfife/fix\-gce\-named\-static\-ip\-reservation
  251923. .IP \(bu 2
  251924. 26774e2323 Fixed named external_ip reservation/re\-use code.
  251925. .UNINDENT
  251926. .IP \(bu 2
  251927. \fBISSUE\fP \fI\%#31001\fP: (\fI\%toanju\fP) Fedora 23 check installed packages fails (refs: \fI\%#31032\fP)
  251928. .IP \(bu 2
  251929. \fBPR\fP \fI\%#31032\fP: (\fI\%terminalmage\fP) (2015.5 branch) yumpkg: ensure that dnf\-plugins\-core >= 0.1.15 is installed
  251930. @ \fI2016\-02\-17 19:02:03 UTC\fP
  251931. .INDENT 2.0
  251932. .IP \(bu 2
  251933. e56c402c0c Merge pull request \fI\%#31032\fP from terminalmage/issue31001
  251934. .IP \(bu 2
  251935. 42daea4509 yumpkg.py: Remove repoquery usage everywhere but check_db
  251936. .IP \(bu 2
  251937. 50befbc149 backport salt.utils.pkg.rpm to 2015.5
  251938. .IP \(bu 2
  251939. a1ad14994a Move salt.utils.itersplit() to salt.utils.itertools.split()
  251940. .IP \(bu 2
  251941. 5b8646ce64 Ignore failure to install new enough dnf\-plugins\-core
  251942. .IP \(bu 2
  251943. defe0859fd Ensure that dnf\-plugins\-core 0.1.15 is installed
  251944. .UNINDENT
  251945. .IP \(bu 2
  251946. \fBISSUE\fP \fI\%#31174\fP: (\fI\%sjorge\fP) salt.states.archive.extacted displays incorrect message: (refs: \fI\%#31176\fP)
  251947. .IP \(bu 2
  251948. \fBPR\fP \fI\%#31264\fP: (\fI\%sjorge\fP) fix if_missing gets appended to dirs list, take III
  251949. @ \fI2016\-02\-17 17:12:25 UTC\fP
  251950. .INDENT 2.0
  251951. .IP \(bu 2
  251952. \fBPR\fP \fI\%#31250\fP: (\fI\%sjorge\fP) if_missing append to array as far back as 2014.1 (refs: \fI\%#31264\fP)
  251953. .IP \(bu 2
  251954. \fBPR\fP \fI\%#31176\fP: (\fI\%sjorge\fP) if_missing incorrected appended to directories_created (refs: \fI\%#31250\fP, \fI\%#31264\fP)
  251955. .IP \(bu 2
  251956. cec69b74f0 Merge pull request \fI\%#31264\fP from sjorge/if_missing\-155\-fix
  251957. .IP \(bu 2
  251958. 545edbf5e1 fix if_missing gets appended to dirs list, take III
  251959. .UNINDENT
  251960. .IP \(bu 2
  251961. \fBPR\fP \fI\%#31110\fP: (\fI\%cachedout\fP) Fixup 30730
  251962. @ \fI2016\-02\-10 21:37:55 UTC\fP
  251963. .INDENT 2.0
  251964. .IP \(bu 2
  251965. fa3f474de9 Merge pull request \fI\%#31110\fP from cachedout/fixup_30730
  251966. .IP \(bu 2
  251967. 5bf5848e04 Fixup unit test
  251968. .IP \(bu 2
  251969. f558f68e0a Fixes pylint warnings
  251970. .IP \(bu 2
  251971. 56a975ec43 Attempt to fix pylint warnings
  251972. .IP \(bu 2
  251973. 55d71be057 Make documentation and code examples consistent with code
  251974. .IP \(bu 2
  251975. 1f04fed6f8 Change parameter name from includes to skips
  251976. .IP \(bu 2
  251977. ccf5e13e7d Adding support for skipHidden in SetInclude
  251978. .IP \(bu 2
  251979. 4f2d4af2e7 Variable names standardization
  251980. .IP \(bu 2
  251981. f5917ac1e8 Fixes typo
  251982. .IP \(bu 2
  251983. 26e5236073 Invert RebootRequired logic
  251984. .IP \(bu 2
  251985. 8065a7abf6 Add basic documentation and define how the skips parameter works.
  251986. .IP \(bu 2
  251987. 389fea7508 Change parameter name from includes to skips
  251988. .IP \(bu 2
  251989. 30e1fef906 Adding support for skipHidden in SetInclude
  251990. .IP \(bu 2
  251991. 1244eea5be Variable names standardization, consistent if/else logic with states.win_update
  251992. .UNINDENT
  251993. .IP \(bu 2
  251994. \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)
  251995. .IP \(bu 2
  251996. \fBPR\fP \fI\%#30974\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30949\fP to 2015.5
  251997. @ \fI2016\-02\-08 16:38:46 UTC\fP
  251998. .INDENT 2.0
  251999. .IP \(bu 2
  252000. \fBPR\fP \fI\%#30949\fP: (\fI\%techhat\fP) Replace cfdisk with sfdisk (refs: \fI\%#30974\fP)
  252001. .IP \(bu 2
  252002. 1c699a1664 Merge pull request \fI\%#30974\fP from rallytime/bp\-30949
  252003. .IP \(bu 2
  252004. ff6542f593 Replace cfdisk with sfdisk
  252005. .UNINDENT
  252006. .IP \(bu 2
  252007. \fBISSUE\fP \fI\%#28951\fP: (\fI\%ClaudiuPID\fP) CloudLinux 7 changes (refs: \fI\%#30897\fP)
  252008. .IP \(bu 2
  252009. \fBPR\fP \fI\%#30942\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30897\fP to 2015.5
  252010. @ \fI2016\-02\-05 19:00:55 UTC\fP
  252011. .INDENT 2.0
  252012. .IP \(bu 2
  252013. \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)
  252014. .IP \(bu 2
  252015. c7f87cc371 Merge pull request \fI\%#30942\fP from rallytime/bp\-30897
  252016. .IP \(bu 2
  252017. 885e00ba54 Only remove the word linux from distroname when its not part of the name
  252018. .UNINDENT
  252019. .IP \(bu 2
  252020. \fBPR\fP \fI\%#30922\fP: (\fI\%jacobhammons\fP) Rev latest version to 2015.8.5
  252021. @ \fI2016\-02\-05 01:20:27 UTC\fP
  252022. .INDENT 2.0
  252023. .IP \(bu 2
  252024. 35b7f62669 Merge pull request \fI\%#30922\fP from jacobhammons/prev\-rel\-notes
  252025. .IP \(bu 2
  252026. 57c1ec637a Rev latest version to 2015.8.5
  252027. .UNINDENT
  252028. .IP \(bu 2
  252029. \fBISSUE\fP \fI\%#30840\fP: (\fI\%HeathNaylor\fP) Generic Error for SALT.STATES.BOTO_ELB (refs: \fI\%#30865\fP)
  252030. .IP \(bu 2
  252031. \fBPR\fP \fI\%#30865\fP: (\fI\%abednarik\fP) Better boto elb error message.
  252032. @ \fI2016\-02\-04 21:02:05 UTC\fP
  252033. .INDENT 2.0
  252034. .IP \(bu 2
  252035. 2488bb902e Merge pull request \fI\%#30865\fP from abednarik/better_boto_elb_error
  252036. .IP \(bu 2
  252037. 3561e8c19b Better boto elb error message.
  252038. .UNINDENT
  252039. .IP \(bu 2
  252040. \fBPR\fP \fI\%#30831\fP: (\fI\%jacobhammons\fP) Updated readme
  252041. @ \fI2016\-02\-02 21:06:02 UTC\fP
  252042. .INDENT 2.0
  252043. .IP \(bu 2
  252044. 4da04f82c8 Merge pull request \fI\%#30831\fP from jacobhammons/readme\-update
  252045. .IP \(bu 2
  252046. 01a92f5d98 Updated readme
  252047. .UNINDENT
  252048. .IP \(bu 2
  252049. \fBPR\fP \fI\%#30829\fP: (\fI\%jacobhammons\fP) Updated latest version to 2015.8.4
  252050. @ \fI2016\-02\-02 20:06:13 UTC\fP
  252051. .INDENT 2.0
  252052. .IP \(bu 2
  252053. 90c1ea9f6c Merge pull request \fI\%#30829\fP from jacobhammons/release\-2015.5
  252054. .IP \(bu 2
  252055. c95bb60148 Version to 2015.8.4
  252056. .UNINDENT
  252057. .IP \(bu 2
  252058. \fBISSUE\fP \fI\%#24575\fP: (\fI\%BrandKNY\fP) raid.present inside mdadm.py triggers IndexError: list index out of range (refs: \fI\%#30784\fP)
  252059. .IP \(bu 2
  252060. \fBISSUE\fP \fI\%#23694\fP: (\fI\%gmolight\fP) mdadm.py module (refs: \fI\%#30784\fP)
  252061. .IP \(bu 2
  252062. \fBPR\fP \fI\%#30784\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24952\fP to 2015.5
  252063. @ \fI2016\-02\-01 21:43:01 UTC\fP
  252064. .INDENT 2.0
  252065. .IP \(bu 2
  252066. \fBPR\fP \fI\%#24952\fP: (\fI\%pcn\fP) Don\(aqt split the string on a single line (refs: \fI\%#30784\fP)
  252067. .IP \(bu 2
  252068. 80a36793cb Merge pull request \fI\%#30784\fP from rallytime/bp\-24952
  252069. .IP \(bu 2
  252070. a07908bdea Don\(aqt split the string on a single line
  252071. .UNINDENT
  252072. .IP \(bu 2
  252073. \fBISSUE\fP \fI\%#30560\fP: (\fI\%terminalmage\fP) yumpkg.py: pkg.unhold fails in yum (refs: \fI\%#30764\fP)
  252074. .IP \(bu 2
  252075. \fBPR\fP \fI\%#30764\fP: (\fI\%terminalmage\fP) Work around yum versionlock\(aqs inability to remove holds by package name alone
  252076. @ \fI2016\-02\-01 18:14:27 UTC\fP
  252077. .INDENT 2.0
  252078. .IP \(bu 2
  252079. e978f5392f Merge pull request \fI\%#30764\fP from terminalmage/issue30560
  252080. .IP \(bu 2
  252081. 39736afcd7 Work around yum versionlock\(aqs inability to remove holds by package name alone
  252082. .UNINDENT
  252083. .IP \(bu 2
  252084. \fBPR\fP \fI\%#30760\fP: (\fI\%toanju\fP) Changed output format of arp_ip_target from list to comma delimited...
  252085. @ \fI2016\-01\-31 19:05:02 UTC\fP
  252086. .INDENT 2.0
  252087. .IP \(bu 2
  252088. \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)
  252089. .IP \(bu 2
  252090. 6f565c0d76 Merge pull request \fI\%#30760\fP from toanju/2015.5
  252091. .IP \(bu 2
  252092. dc4256f7df Changed output format of arp_ip_target from list to comma delimited string
  252093. .UNINDENT
  252094. .IP \(bu 2
  252095. \fBISSUE\fP \fI\%#30722\fP: (\fI\%yannis666\fP) mine config is not merged from minion config and pillar (refs: \fI\%#30757\fP)
  252096. .IP \(bu 2
  252097. \fBPR\fP \fI\%#30757\fP: (\fI\%yannis666\fP) Fix to mine update to merge configuration
  252098. @ \fI2016\-01\-31 19:02:44 UTC\fP
  252099. .INDENT 2.0
  252100. .IP \(bu 2
  252101. 1c205b4898 Merge pull request \fI\%#30757\fP from yannis666/fix\-for\-mine\-update\-merge
  252102. .IP \(bu 2
  252103. 61bb23e256 Fix to mine update to merge configuration
  252104. .UNINDENT
  252105. .IP \(bu 2
  252106. \fBISSUE\fP \fI\%#28751\fP: (\fI\%olfway\fP) network.system state ignores test=True on debian/ubuntu (refs: \fI\%#30749\fP)
  252107. .IP \(bu 2
  252108. \fBPR\fP \fI\%#30749\fP: (\fI\%abednarik\fP) Fix Netwotk hostname Module in Debian systems.
  252109. @ \fI2016\-01\-29 23:01:09 UTC\fP
  252110. .INDENT 2.0
  252111. .IP \(bu 2
  252112. f9fde8f6a7 Merge pull request \fI\%#30749\fP from abednarik/fix_network_system_test
  252113. .IP \(bu 2
  252114. 1e9e97df59 Fix Netwotk hostname Module in Debian systems.
  252115. .UNINDENT
  252116. .IP \(bu 2
  252117. \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)
  252118. .IP \(bu 2
  252119. \fBPR\fP \fI\%#30699\fP: (\fI\%abednarik\fP) Add Retry to save_load.
  252120. @ \fI2016\-01\-29 16:08:30 UTC\fP
  252121. .INDENT 2.0
  252122. .IP \(bu 2
  252123. 076268089a Merge pull request \fI\%#30699\fP from abednarik/save_load_retry_time
  252124. .IP \(bu 2
  252125. 186872cf49 Add Retry to save_load.
  252126. .UNINDENT
  252127. .IP \(bu 2
  252128. \fBISSUE\fP \fI\%#30565\fP: (\fI\%heaje\fP) scsi.ls fails to run both on CentOS 6 and CentOS 7 (refs: \fI\%#30659\fP)
  252129. .IP \(bu 2
  252130. \fBPR\fP \fI\%#30659\fP: (\fI\%sjmh\fP) Fix lsscsi issues for certain platforms
  252131. @ \fI2016\-01\-28 15:53:38 UTC\fP
  252132. .INDENT 2.0
  252133. .IP \(bu 2
  252134. 8d79d1b9c7 Merge pull request \fI\%#30659\fP from sjmh/fix\-scsi
  252135. .IP \(bu 2
  252136. 3544dd995e Fix lsscsi issues for certain platforms
  252137. .UNINDENT
  252138. .IP \(bu 2
  252139. \fBISSUE\fP \fI\%#18980\fP: (\fI\%lrhazi\fP) salt\-cloud: ExtraData: unpack(b) received extra data. (refs: \fI\%#30671\fP)
  252140. .IP \(bu 2
  252141. \fBPR\fP \fI\%#30671\fP: (\fI\%techhat\fP) Add file locking to cloud index
  252142. @ \fI2016\-01\-27 17:14:55 UTC\fP
  252143. .INDENT 2.0
  252144. .IP \(bu 2
  252145. 516919525a Merge pull request \fI\%#30671\fP from techhat/lockcloud
  252146. .IP \(bu 2
  252147. 4719f8d4ea Whitespace
  252148. .IP \(bu 2
  252149. 8e7eca23e4 Add file locking to cloud index
  252150. .UNINDENT
  252151. .IP \(bu 2
  252152. \fBISSUE\fP \fI\%#28320\fP: (\fI\%Grokzen\fP) file.comment & file.uncomment changes file permissions on edit (refs: \fI\%#30586\fP)
  252153. .IP \(bu 2
  252154. \fBPR\fP \fI\%#30586\fP: (\fI\%abednarik\fP) Fix comment_line permissions.
  252155. @ \fI2016\-01\-25 23:24:02 UTC\fP
  252156. .INDENT 2.0
  252157. .IP \(bu 2
  252158. 643c9c9616 Merge pull request \fI\%#30586\fP from abednarik/fix_comment_line_perms
  252159. .IP \(bu 2
  252160. 8b395a42cb Fix comment_line permissions.
  252161. .UNINDENT
  252162. .IP \(bu 2
  252163. \fBPR\fP \fI\%#30582\fP: (\fI\%terminalmage\fP) yumpkg.check_db: run separate repoquery commands when multiple names passed
  252164. @ \fI2016\-01\-24 17:15:04 UTC\fP
  252165. .INDENT 2.0
  252166. .IP \(bu 2
  252167. a823e21428 Merge pull request \fI\%#30582\fP from terminalmage/dnf\-repoquery\-multiple\-targets
  252168. .IP \(bu 2
  252169. 410da789f9 yumpkg.check_db: run separate repoquery commands when multiple names passed
  252170. .UNINDENT
  252171. .IP \(bu 2
  252172. \fBPR\fP \fI\%#30548\fP: (\fI\%jacobhammons\fP) Added placeholder release notes for 2015.5.10
  252173. @ \fI2016\-01\-22 18:36:01 UTC\fP
  252174. .INDENT 2.0
  252175. .IP \(bu 2
  252176. 8e56be7f4c Merge pull request \fI\%#30548\fP from jacobhammons/doc\-fixes
  252177. .IP \(bu 2
  252178. 03c51bb54d Added placeholder release notes for 2015.5.10 Changed old doc links from docs.saltstack.org to docs.saltstack.com
  252179. .UNINDENT
  252180. .IP \(bu 2
  252181. \fBPR\fP \fI\%#30530\fP: (\fI\%terminalmage\fP) 2015.5 tweaks from \fI\%#30529\fP
  252182. @ \fI2016\-01\-22 16:26:21 UTC\fP
  252183. .INDENT 2.0
  252184. .IP \(bu 2
  252185. \fBPR\fP \fI\%#30529\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8 (refs: \fI\%#30530\fP)
  252186. .IP \(bu 2
  252187. 1aafd4c5b5 Merge pull request \fI\%#30530\fP from terminalmage/yumpkg\-dnf\-cleanup
  252188. .IP \(bu 2
  252189. 2586f71bcf 2015.5 tweaks from \fI\%#30529\fP
  252190. .UNINDENT
  252191. .IP \(bu 2
  252192. \fBISSUE\fP \fI\%#23553\fP: (\fI\%aboe76\fP) dnf a new package provider for fedora 22 (refs: \fI\%#30484\fP)
  252193. .IP \(bu 2
  252194. \fBPR\fP \fI\%#30484\fP: (\fI\%terminalmage\fP) Backport DNF support to 2015.5 branch
  252195. @ \fI2016\-01\-21 22:14:46 UTC\fP
  252196. .INDENT 2.0
  252197. .IP \(bu 2
  252198. 7798d42272 Merge pull request \fI\%#30484\fP from terminalmage/dnf\-yumpkg\-2015.5
  252199. .IP \(bu 2
  252200. 330e26d1da Hide get_locked_packages
  252201. .IP \(bu 2
  252202. 5a637420e8 Backport DNF support to 2015.5 branch
  252203. .UNINDENT
  252204. .IP \(bu 2
  252205. \fBPR\fP \fI\%#30512\fP: (\fI\%jfindlay\fP) disable pkgrepo test for ubuntu 15.10+
  252206. @ \fI2016\-01\-21 21:32:58 UTC\fP
  252207. .INDENT 2.0
  252208. .IP \(bu 2
  252209. b348f804b1 Merge pull request \fI\%#30512\fP from jfindlay/repo_test
  252210. .IP \(bu 2
  252211. 66f06f2bd3 disable pkgrepo test for ubuntu 15.10+
  252212. .UNINDENT
  252213. .IP \(bu 2
  252214. \fBPR\fP \fI\%#30478\fP: (\fI\%justinta\fP) Updated pip_state to work with pip 8.0
  252215. @ \fI2016\-01\-21 16:02:41 UTC\fP
  252216. .INDENT 2.0
  252217. .IP \(bu 2
  252218. a9348dfef8 Merge pull request \fI\%#30478\fP from jtand/pip_8_update
  252219. .IP \(bu 2
  252220. 6227368830 Convert version to int, instead of comparing strings to ints
  252221. .IP \(bu 2
  252222. 20384a4810 Added InstallationError to except block
  252223. .IP \(bu 2
  252224. baa274bca9 Updated pip_state to work with pip 8.0
  252225. .UNINDENT
  252226. .IP \(bu 2
  252227. \fBISSUE\fP \fI\%#30465\fP: (\fI\%alandrees\fP) Nested imports with pyobjects (refs: \fI\%#30482\fP)
  252228. .IP \(bu 2
  252229. \fBPR\fP \fI\%#30482\fP: (\fI\%borgstrom\fP) Pyobjects recursive import support (for 2015.5)
  252230. @ \fI2016\-01\-21 15:54:32 UTC\fP
  252231. .INDENT 2.0
  252232. .IP \(bu 2
  252233. a30147c64f Merge pull request \fI\%#30482\fP from borgstrom/pyobjects_recursive
  252234. .IP \(bu 2
  252235. 2c55a7580b Fixup lint errors
  252236. .IP \(bu 2
  252237. b46df0e4b5 Allow recursive salt:// imports
  252238. .IP \(bu 2
  252239. 51bfa16173 Add test to prove that recursive imports are currently broken
  252240. .UNINDENT
  252241. .IP \(bu 2
  252242. \fBPR\fP \fI\%#30459\fP: (\fI\%jfindlay\fP) modules.pkg: disable repo int test for ubuntu 15.10
  252243. @ \fI2016\-01\-20 16:41:12 UTC\fP
  252244. .INDENT 2.0
  252245. .IP \(bu 2
  252246. 5c7cc51937 Merge pull request \fI\%#30459\fP from jfindlay/pkg_tests
  252247. .IP \(bu 2
  252248. fb9972f590 modules.pkg: disable repo int test for ubuntu 15.10
  252249. .UNINDENT
  252250. .IP \(bu 2
  252251. \fBPR\fP \fI\%#30443\fP: (\fI\%justinta\fP) Boto uses False for is_default instead of None
  252252. @ \fI2016\-01\-19 18:28:08 UTC\fP
  252253. .INDENT 2.0
  252254. .IP \(bu 2
  252255. dd2ceb4c07 Merge pull request \fI\%#30443\fP from jtand/boto_vpc_5
  252256. .IP \(bu 2
  252257. 2f77152479 Boto uses False for is_default instead of None
  252258. .UNINDENT
  252259. .IP \(bu 2
  252260. \fBISSUE\fP \fI\%#26833\fP: (\fI\%twangboy\fP) salt\-cloud fails to spin up windows minion on 2015.8 Head (refs: \fI\%#26853\fP)
  252261. .IP \(bu 2
  252262. \fBISSUE\fP \fI\%#21256\fP: (\fI\%dhs\-rec\fP) win.exe package for RH 6 (refs: \fI\%#26853\fP)
  252263. .IP \(bu 2
  252264. \fBPR\fP \fI\%#30420\fP: (\fI\%attiasr\fP) Backport \fI\%#26853\fP
  252265. @ \fI2016\-01\-19 17:33:58 UTC\fP
  252266. .INDENT 2.0
  252267. .IP \(bu 2
  252268. \fBPR\fP \fI\%#26853\fP: (\fI\%UtahDave\fP) Fix salt\-cloud on windows (refs: \fI\%#30420\fP)
  252269. .IP \(bu 2
  252270. 62d9dddced Merge pull request \fI\%#30420\fP from attiasr/patch\-1
  252271. .IP \(bu 2
  252272. 4de343c5a1 Backport \fI\%#26853\fP
  252273. .UNINDENT
  252274. .IP \(bu 2
  252275. \fBISSUE\fP \fI\%#30341\fP: (\fI\%dnd\fP) salt\-cloud linode connection reset by peer (refs: \fI\%#30364\fP)
  252276. .IP \(bu 2
  252277. \fBPR\fP \fI\%#30364\fP: (\fI\%rallytime\fP) Add TLS version imports and add linode driver documentation notices
  252278. @ \fI2016\-01\-14 19:04:47 UTC\fP
  252279. .INDENT 2.0
  252280. .IP \(bu 2
  252281. 5a923b3aa9 Merge pull request \fI\%#30364\fP from rallytime/fix\-30341
  252282. .IP \(bu 2
  252283. 79bcf151cb Add TLS version imports and add linode driver documentation notices
  252284. .UNINDENT
  252285. .IP \(bu 2
  252286. \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)
  252287. .IP \(bu 2
  252288. \fBPR\fP \fI\%#30184\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30166\fP to 2015.5
  252289. @ \fI2016\-01\-13 18:27:36 UTC\fP
  252290. .INDENT 2.0
  252291. .IP \(bu 2
  252292. \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)
  252293. .IP \(bu 2
  252294. f037fd9c27 Merge pull request \fI\%#30184\fP from rallytime/bp\-30166
  252295. .IP \(bu 2
  252296. fa6b1b3022 adding split_env call to cp.hash_file to pick up saltenv in file query parameter
  252297. .UNINDENT
  252298. .IP \(bu 2
  252299. \fBPR\fP \fI\%#30291\fP: (\fI\%thegoodduke\fP) ipset: fix test=true & add comment for every entry
  252300. @ \fI2016\-01\-12 19:40:23 UTC\fP
  252301. .INDENT 2.0
  252302. .IP \(bu 2
  252303. \fBPR\fP \fI\%#30170\fP: (\fI\%thegoodduke\fP) ipset: fix comment and test (refs: \fI\%#30291\fP)
  252304. .IP \(bu 2
  252305. 1d8413fd2f Merge pull request \fI\%#30291\fP from thegoodduke/for_fix_ipset
  252306. .IP \(bu 2
  252307. 62d6ccf561 ipset: fix test=true & add comment for every entry
  252308. .UNINDENT
  252309. .UNINDENT
  252310. .SS Salt 2015.5.2 Release Notes
  252311. .INDENT 0.0
  252312. .TP
  252313. .B release
  252314. 2015\-06\-10
  252315. .UNINDENT
  252316. .sp
  252317. Version 2015.5.2 is a bugfix release for 2015.5.0\&.
  252318. .SS Statistics
  252319. .INDENT 0.0
  252320. .IP \(bu 2
  252321. Total Merges: \fB112\fP
  252322. .IP \(bu 2
  252323. Total Issue References: \fB36\fP
  252324. .IP \(bu 2
  252325. Total PR References: \fB145\fP
  252326. .IP \(bu 2
  252327. 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)
  252328. .UNINDENT
  252329. .SS Changelog for v2015.5.1..v2015.5.2
  252330. .sp
  252331. \fIGenerated at: 2018\-05\-27 21:13:02 UTC\fP
  252332. .INDENT 0.0
  252333. .IP \(bu 2
  252334. \fBPR\fP \fI\%#24372\fP: (\fI\%rallytime\fP) Add 2015.5.2 release notes
  252335. @ \fI2015\-06\-03 19:30:46 UTC\fP
  252336. .INDENT 2.0
  252337. .IP \(bu 2
  252338. d71d75e2ec Merge pull request \fI\%#24372\fP from rallytime/release_notes
  252339. .IP \(bu 2
  252340. f5ec1a1693 Add 2015.5.2 release notes
  252341. .UNINDENT
  252342. .IP \(bu 2
  252343. \fBPR\fP \fI\%#24346\fP: (\fI\%rallytime\fP) Backport \fI\%#24271\fP to 2015.5
  252344. @ \fI2015\-06\-03 18:44:31 UTC\fP
  252345. .INDENT 2.0
  252346. .IP \(bu 2
  252347. \fBPR\fP \fI\%#24271\fP: (\fI\%randybias\fP) Fixed the setup instructions (refs: \fI\%#24346\fP)
  252348. .IP \(bu 2
  252349. 76927c9ea1 Merge pull request \fI\%#24346\fP from rallytime/bp\-24271
  252350. .IP \(bu 2
  252351. 04067b6833 Fixed the setup instructions
  252352. .UNINDENT
  252353. .IP \(bu 2
  252354. \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)
  252355. .IP \(bu 2
  252356. \fBPR\fP \fI\%#24345\fP: (\fI\%rallytime\fP) Backport \fI\%#24013\fP to 2015.5
  252357. @ \fI2015\-06\-03 18:39:41 UTC\fP
  252358. .INDENT 2.0
  252359. .IP \(bu 2
  252360. \fBPR\fP \fI\%#24013\fP: (\fI\%jbq\fP) Fix enabling a service on Ubuntu \fI\%#24012\fP (refs: \fI\%#24345\fP)
  252361. .IP \(bu 2
  252362. 4afa03d8e3 Merge pull request \fI\%#24345\fP from rallytime/bp\-24013
  252363. .IP \(bu 2
  252364. 16e0732b50 Fix enabling a service on Ubuntu \fI\%#24012\fP
  252365. .UNINDENT
  252366. .IP \(bu 2
  252367. \fBPR\fP \fI\%#24365\fP: (\fI\%jacobhammons\fP) Fixes for PDF build errors
  252368. @ \fI2015\-06\-03 17:50:02 UTC\fP
  252369. .INDENT 2.0
  252370. .IP \(bu 2
  252371. c3392c246a Merge pull request \fI\%#24365\fP from jacobhammons/DocFixes
  252372. .IP \(bu 2
  252373. 0fc190267f Fixes for PDF build errors
  252374. .UNINDENT
  252375. .IP \(bu 2
  252376. \fBISSUE\fP \fI\%#22991\fP: (\fI\%nicholascapo\fP) npm.installed ignores test=True (refs: \fI\%#24313\fP)
  252377. .IP \(bu 2
  252378. \fBPR\fP \fI\%#24313\fP: (\fI\%nicholascapo\fP) Fix \fI\%#22991\fP Correctly set result when test=True
  252379. @ \fI2015\-06\-03 14:49:18 UTC\fP
  252380. .INDENT 2.0
  252381. .IP \(bu 2
  252382. ae681a4db1 Merge pull request \fI\%#24313\fP from nicholascapo/fix\-22991\-npm.installed\-test\-true
  252383. .IP \(bu 2
  252384. ac9644cb19 Fix \fI\%#22991\fP npm.installed correctly set result on test=True
  252385. .UNINDENT
  252386. .IP \(bu 2
  252387. \fBISSUE\fP \fI\%#18966\fP: (\fI\%bechtoldt\fP) file.serialize ignores test=True (refs: \fI\%#24312\fP)
  252388. .IP \(bu 2
  252389. \fBPR\fP \fI\%#24312\fP: (\fI\%nicholascapo\fP) Fix \fI\%#18966\fP: file.serialize supports test=True
  252390. @ \fI2015\-06\-03 14:49:06 UTC\fP
  252391. .INDENT 2.0
  252392. .IP \(bu 2
  252393. d57a9a267c Merge pull request \fI\%#24312\fP from nicholascapo/fix\-18966\-file.serialize\-test\-true
  252394. .IP \(bu 2
  252395. e7328e7043 Fix \fI\%#18966\fP file.serialize correctly set result on test=True
  252396. .UNINDENT
  252397. .IP \(bu 2
  252398. \fBPR\fP \fI\%#24302\fP: (\fI\%jfindlay\fP) fix pkg hold/unhold integration test
  252399. @ \fI2015\-06\-03 03:27:43 UTC\fP
  252400. .INDENT 2.0
  252401. .IP \(bu 2
  252402. 6b694e3495 Merge pull request \fI\%#24302\fP from jfindlay/pkg_tests
  252403. .IP \(bu 2
  252404. c2db0b1758 fix pkg hold/unhold integration test
  252405. .UNINDENT
  252406. .IP \(bu 2
  252407. \fBISSUE\fP \fI\%#14021\fP: (\fI\%emostar\fP) EC2 doc mentions mount_point, but unable to use properly (refs: \fI\%#24349\fP)
  252408. .IP \(bu 2
  252409. \fBPR\fP \fI\%#24349\fP: (\fI\%rallytime\fP) Remove references to mount_points in ec2 docs
  252410. @ \fI2015\-06\-03 01:54:09 UTC\fP
  252411. .INDENT 2.0
  252412. .IP \(bu 2
  252413. aca8447ced Merge pull request \fI\%#24349\fP from rallytime/fix\-14021
  252414. .IP \(bu 2
  252415. a235b114d7 Remove references to mount_points in ec2 docs
  252416. .UNINDENT
  252417. .IP \(bu 2
  252418. \fBPR\fP \fI\%#24328\fP: (\fI\%dr4Ke\fP) Fix state grains silently fails 2015.5
  252419. @ \fI2015\-06\-02 15:18:46 UTC\fP
  252420. .INDENT 2.0
  252421. .IP \(bu 2
  252422. 88a997e6ee Merge pull request \fI\%#24328\fP from dr4Ke/fix_state_grains_silently_fails_2015.5
  252423. .IP \(bu 2
  252424. 8a63d1ebbe fix state grains silently fails \fI\%#24319\fP
  252425. .IP \(bu 2
  252426. ca1af20203 grains state: add some tests
  252427. .UNINDENT
  252428. .IP \(bu 2
  252429. \fBISSUE\fP \fI\%#9772\fP: (\fI\%s0undt3ch\fP) Delete VM\(aqs in a map does not delete them all (refs: \fI\%#24310\fP)
  252430. .IP \(bu 2
  252431. \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)
  252432. .IP \(bu 2
  252433. \fBPR\fP \fI\%#24310\fP: (\fI\%techhat\fP) Add warning about destroying maps
  252434. @ \fI2015\-06\-02 03:01:28 UTC\fP
  252435. .INDENT 2.0
  252436. .IP \(bu 2
  252437. 7dcd9bb5de Merge pull request \fI\%#24310\fP from techhat/mapwarning
  252438. .IP \(bu 2
  252439. ca535a6ff4 Add warning about destroying maps
  252440. .UNINDENT
  252441. .IP \(bu 2
  252442. \fBPR\fP \fI\%#24281\fP: (\fI\%steverweber\fP) Ipmi docfix
  252443. @ \fI2015\-06\-01 17:45:36 UTC\fP
  252444. .INDENT 2.0
  252445. .IP \(bu 2
  252446. 02bfb254d6 Merge pull request \fI\%#24281\fP from steverweber/ipmi_docfix
  252447. .IP \(bu 2
  252448. dd36f2c555 yaml formating
  252449. .IP \(bu 2
  252450. f6deef3047 include api_kg kwarg in ipmi state
  252451. .IP \(bu 2
  252452. a7d4e97bb9 doc cleanup
  252453. .IP \(bu 2
  252454. 0ded2fdbef save more cleanup to doc
  252455. .IP \(bu 2
  252456. 08872f2da3 fix name api_key to api_kg
  252457. .IP \(bu 2
  252458. 165a387681 doc fix add api_kg kwargs
  252459. .IP \(bu 2
  252460. 1ec78887e4 cleanup docs
  252461. .UNINDENT
  252462. .IP \(bu 2
  252463. \fBPR\fP \fI\%#24287\fP: (\fI\%jfindlay\fP) fix pkg test on ubuntu 12.04 for realz
  252464. @ \fI2015\-06\-01 14:16:37 UTC\fP
  252465. .INDENT 2.0
  252466. .IP \(bu 2
  252467. 73cd2cbe1f Merge pull request \fI\%#24287\fP from jfindlay/pkg_test
  252468. .IP \(bu 2
  252469. 98944d8c7f fix pkg test on ubuntu 12.04 for realz
  252470. .UNINDENT
  252471. .IP \(bu 2
  252472. \fBPR\fP \fI\%#24279\fP: (\fI\%rallytime\fP) Backport \fI\%#24263\fP to 2015.5
  252473. @ \fI2015\-06\-01 04:29:34 UTC\fP
  252474. .INDENT 2.0
  252475. .IP \(bu 2
  252476. \fBPR\fP \fI\%#24263\fP: (\fI\%cdarwin\fP) Correct usage of import_yaml in formula documentation (refs: \fI\%#24279\fP)
  252477. .IP \(bu 2
  252478. 02017a074c Merge pull request \fI\%#24279\fP from rallytime/bp\-24263
  252479. .IP \(bu 2
  252480. beff7c7785 Correct usage of import_yaml in formula documentation
  252481. .UNINDENT
  252482. .IP \(bu 2
  252483. \fBISSUE\fP \fI\%#24226\fP: (\fI\%c4urself\fP) iptables state needs to keep ordering of flags (refs: \fI\%#24277\fP)
  252484. .IP \(bu 2
  252485. \fBPR\fP \fI\%#24277\fP: (\fI\%rallytime\fP) Put a space between after_jump commands
  252486. @ \fI2015\-06\-01 04:28:26 UTC\fP
  252487. .INDENT 2.0
  252488. .IP \(bu 2
  252489. 2ba696d54a Merge pull request \fI\%#24277\fP from rallytime/fix_iptables_jump
  252490. .IP \(bu 2
  252491. e2d1606b19 Move after_jump split out of loop
  252492. .IP \(bu 2
  252493. d14f1307b6 Remove extra loop
  252494. .IP \(bu 2
  252495. 42ed5320b6 Put a space between after_jump commands
  252496. .UNINDENT
  252497. .IP \(bu 2
  252498. \fBPR\fP \fI\%#24262\fP: (\fI\%basepi\fP) More dictupdate after \fI\%#24142\fP
  252499. @ \fI2015\-05\-31 04:09:37 UTC\fP
  252500. .INDENT 2.0
  252501. .IP \(bu 2
  252502. \fBPR\fP \fI\%#24142\fP: (\fI\%basepi\fP) Optimize dictupdate.update and add \fI\%#24097\fP functionality (refs: \fI\%#24262\fP)
  252503. .IP \(bu 2
  252504. \fBPR\fP \fI\%#24097\fP: (\fI\%kiorky\fP) Optimize dictupdate (refs: \fI\%#24142\fP)
  252505. .IP \(bu 2
  252506. 113eba34ec Merge pull request \fI\%#24262\fP from basepi/dictupdatefix
  252507. .IP \(bu 2
  252508. 0c4832c0d4 Raise a typeerror if non\-dict types
  252509. .IP \(bu 2
  252510. be21aaa122 Pylint
  252511. .IP \(bu 2
  252512. bb8a6c6cc9 More optimization
  252513. .IP \(bu 2
  252514. c933249d1a py3 compat
  252515. .IP \(bu 2
  252516. ff6b2a781f Further optimize dictupdate.update()
  252517. .IP \(bu 2
  252518. c73f5ba37c Remove unused valtype
  252519. .UNINDENT
  252520. .IP \(bu 2
  252521. \fBPR\fP \fI\%#24269\fP: (\fI\%kiorky\fP) zfs: Fix spurious retcode hijacking in virtual
  252522. @ \fI2015\-05\-30 17:47:49 UTC\fP
  252523. .INDENT 2.0
  252524. .IP \(bu 2
  252525. 785d5a1bfc Merge pull request \fI\%#24269\fP from makinacorpus/zfs
  252526. .IP \(bu 2
  252527. 0bf23ce701 zfs: Fix spurious retcode hijacking in virtual
  252528. .UNINDENT
  252529. .IP \(bu 2
  252530. \fBPR\fP \fI\%#24257\fP: (\fI\%jfindlay\fP) fix pkg mod integration test on ubuntu 12.04
  252531. @ \fI2015\-05\-29 23:09:00 UTC\fP
  252532. .INDENT 2.0
  252533. .IP \(bu 2
  252534. 3d885c04f0 Merge pull request \fI\%#24257\fP from jfindlay/pkg_tests
  252535. .IP \(bu 2
  252536. 9508924c02 fix pkg mod integration test on ubuntu 12.04
  252537. .UNINDENT
  252538. .IP \(bu 2
  252539. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  252540. .IP \(bu 2
  252541. \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)
  252542. .IP \(bu 2
  252543. \fBPR\fP \fI\%#24260\fP: (\fI\%basepi\fP) Fix some typos from \fI\%#24080\fP
  252544. @ \fI2015\-05\-29 22:54:58 UTC\fP
  252545. .INDENT 2.0
  252546. .IP \(bu 2
  252547. \fBPR\fP \fI\%#24080\fP: (\fI\%kiorky\fP) Lxc consistency2 (refs: \fI\%#24066\fP, \fI\%#24260\fP, \fI\%#23982\fP)
  252548. .IP \(bu 2
  252549. \fBPR\fP \fI\%#24066\fP: (\fI\%kiorky\fP) Merge forward 2015.5 \-> develop (refs: \fI\%#23982\fP)
  252550. .IP \(bu 2
  252551. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  252552. .IP \(bu 2
  252553. \fBPR\fP \fI\%#23982\fP: (\fI\%kiorky\fP) lxc: path support (refs: \fI\%#24080\fP)
  252554. .IP \(bu 2
  252555. 08a10755b3 Merge pull request \fI\%#24260\fP from basepi/lxctypos24080
  252556. .IP \(bu 2
  252557. 0fa1ad3977 Fix another lxc typo
  252558. .IP \(bu 2
  252559. 669938f28d s/you ll/you\(aqll/
  252560. .UNINDENT
  252561. .IP \(bu 2
  252562. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  252563. .IP \(bu 2
  252564. \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)
  252565. .IP \(bu 2
  252566. \fBPR\fP \fI\%#24080\fP: (\fI\%kiorky\fP) Lxc consistency2 (refs: \fI\%#24066\fP, \fI\%#24260\fP, \fI\%#23982\fP)
  252567. @ \fI2015\-05\-29 22:51:54 UTC\fP
  252568. .INDENT 2.0
  252569. .IP \(bu 2
  252570. \fBPR\fP \fI\%#24066\fP: (\fI\%kiorky\fP) Merge forward 2015.5 \-> develop (refs: \fI\%#23982\fP)
  252571. .IP \(bu 2
  252572. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  252573. .IP \(bu 2
  252574. \fBPR\fP \fI\%#23982\fP: (\fI\%kiorky\fP) lxc: path support (refs: \fI\%#24080\fP)
  252575. .IP \(bu 2
  252576. 75590cf490 Merge pull request \fI\%#24080\fP from makinacorpus/lxc_consistency2
  252577. .IP \(bu 2
  252578. 81f80674a2 lxc: fix old lxc test
  252579. .IP \(bu 2
  252580. 458f50617b seed: lint
  252581. .IP \(bu 2
  252582. 96b8d55f14 Fix seed.mkconfig yamldump
  252583. .IP \(bu 2
  252584. 76ddb683f4 lxc/applynet: conservative
  252585. .IP \(bu 2
  252586. ce7096fdb7 variable collision
  252587. .IP \(bu 2
  252588. 8a8b28d652 lxc: lint
  252589. .IP \(bu 2
  252590. 458b18b7e6 more lxc docs
  252591. .IP \(bu 2
  252592. ef1f95231a lxc docs: typos
  252593. .IP \(bu 2
  252594. d67a43dc1f more lxc docs
  252595. .IP \(bu 2
  252596. 608da5ef5d modules/lxc: merge resolution
  252597. .IP \(bu 2
  252598. 27c4689a24 modules/lxc: more consistent comparsion
  252599. .IP \(bu 2
  252600. 07c365a23b lxc: merge conflict spotted
  252601. .IP \(bu 2
  252602. 999391551c modules/lxc: rework settings for consistency
  252603. .IP \(bu 2
  252604. ce11d8352e lxc: Global doc refresh
  252605. .IP \(bu 2
  252606. 61ed2f5e76 clouds/lxc: profile key is conflicting
  252607. .UNINDENT
  252608. .IP \(bu 2
  252609. \fBISSUE\fP \fI\%#24210\fP: (\fI\%damonnk\fP) salt\-cloud vsphere.py should allow key_filename param (refs: \fI\%#24220\fP)
  252610. .IP \(bu 2
  252611. \fBPR\fP \fI\%#24247\fP: (\fI\%rallytime\fP) Backport \fI\%#24220\fP to 2015.5
  252612. @ \fI2015\-05\-29 21:40:01 UTC\fP
  252613. .INDENT 2.0
  252614. .IP \(bu 2
  252615. \fBPR\fP \fI\%#24220\fP: (\fI\%djcrabhat\fP) adding key_filename param to vsphere provider (refs: \fI\%#24247\fP)
  252616. .IP \(bu 2
  252617. da14f3b976 Merge pull request \fI\%#24247\fP from rallytime/bp\-24220
  252618. .IP \(bu 2
  252619. 0b1041dd72 adding key_filename param to vsphere provider
  252620. .UNINDENT
  252621. .IP \(bu 2
  252622. \fBPR\fP \fI\%#24254\fP: (\fI\%rallytime\fP) Add deprecation warning to Digital Ocean v1 Driver
  252623. @ \fI2015\-05\-29 21:39:25 UTC\fP
  252624. .INDENT 2.0
  252625. .IP \(bu 2
  252626. \fBPR\fP \fI\%#22731\fP: (\fI\%dmyerscough\fP) Decommission DigitalOcean APIv1 and have users use the new DigitalOcean APIv2 (refs: \fI\%#24254\fP)
  252627. .IP \(bu 2
  252628. 21d6126c34 Merge pull request \fI\%#24254\fP from rallytime/add_deprecation_warning_digitalocean
  252629. .IP \(bu 2
  252630. cafe37bdf8 Add note to docs about deprecation
  252631. .IP \(bu 2
  252632. ea0f1e0921 Add deprecation warning to digital ocean driver to move to digital_ocean_v2
  252633. .UNINDENT
  252634. .IP \(bu 2
  252635. \fBPR\fP \fI\%#24252\fP: (\fI\%aboe76\fP) Updated suse spec to 2015.5.1
  252636. @ \fI2015\-05\-29 21:38:45 UTC\fP
  252637. .INDENT 2.0
  252638. .IP \(bu 2
  252639. dac055dd8b Merge pull request \fI\%#24252\fP from aboe76/opensuse_package
  252640. .IP \(bu 2
  252641. 0ad617df21 Updated suse spec to 2015.5.1
  252642. .UNINDENT
  252643. .IP \(bu 2
  252644. \fBPR\fP \fI\%#24251\fP: (\fI\%garethgreenaway\fP) Returners broken in 2015.5
  252645. @ \fI2015\-05\-29 21:37:52 UTC\fP
  252646. .INDENT 2.0
  252647. .IP \(bu 2
  252648. 49e7fe8a5e Merge pull request \fI\%#24251\fP from garethgreenaway/2015_5_returner_brokenness
  252649. .IP \(bu 2
  252650. 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.
  252651. .UNINDENT
  252652. .IP \(bu 2
  252653. \fBISSUE\fP \fI\%#21498\fP: (\fI\%rallytime\fP) Clarify Digital Ocean Documentation (refs: \fI\%#24255\fP)
  252654. .IP \(bu 2
  252655. \fBPR\fP \fI\%#24255\fP: (\fI\%rallytime\fP) Clarify digital ocean documentation and mention v1 driver deprecation
  252656. @ \fI2015\-05\-29 21:37:07 UTC\fP
  252657. .INDENT 2.0
  252658. .IP \(bu 2
  252659. bfb946123e Merge pull request \fI\%#24255\fP from rallytime/clarify_digital_ocean_driver_docs
  252660. .IP \(bu 2
  252661. 8d51f75aa5 Clarify digital ocean documentation and mention v1 driver deprecation
  252662. .UNINDENT
  252663. .IP \(bu 2
  252664. \fBPR\fP \fI\%#24232\fP: (\fI\%rallytime\fP) Backport \fI\%#23308\fP to 2015.5
  252665. @ \fI2015\-05\-29 21:36:46 UTC\fP
  252666. .INDENT 2.0
  252667. .IP \(bu 2
  252668. \fBPR\fP \fI\%#23308\fP: (\fI\%thusoy\fP) Don\(aqt merge: Add missing jump arguments to iptables module (refs: \fI\%#24232\fP)
  252669. .IP \(bu 2
  252670. 41f5756f36 Merge pull request \fI\%#24232\fP from rallytime/bp\-23308
  252671. .IP \(bu 2
  252672. 2733f66449 Import string
  252673. .IP \(bu 2
  252674. 9097cca099 Add missing jump arguments to iptables module
  252675. .UNINDENT
  252676. .IP \(bu 2
  252677. \fBPR\fP \fI\%#24245\fP: (\fI\%Sacro\fP) Unset PYTHONHOME when starting the service
  252678. @ \fI2015\-05\-29 20:00:31 UTC\fP
  252679. .INDENT 2.0
  252680. .IP \(bu 2
  252681. a95982c722 Merge pull request \fI\%#24245\fP from Sacro/patch\-2
  252682. .IP \(bu 2
  252683. 6632d06e94 Unset PYTHONHOME when starting the service
  252684. .UNINDENT
  252685. .IP \(bu 2
  252686. \fBPR\fP \fI\%#24121\fP: (\fI\%hvnsweeting\fP) deprecate setting user permission in rabbitmq_vhost.present
  252687. @ \fI2015\-05\-29 15:55:40 UTC\fP
  252688. .INDENT 2.0
  252689. .IP \(bu 2
  252690. 1504c76d3a Merge pull request \fI\%#24121\fP from hvnsweeting/rabbitmq\-host\-deprecate\-set\-permission
  252691. .IP \(bu 2
  252692. 2223158e76 deprecate setting user permission in rabbitmq_host.present
  252693. .UNINDENT
  252694. .IP \(bu 2
  252695. \fBPR\fP \fI\%#24179\fP: (\fI\%merll\fP) Changing user and group only possible for existing ids.
  252696. @ \fI2015\-05\-29 15:52:43 UTC\fP
  252697. .INDENT 2.0
  252698. .IP \(bu 2
  252699. \fBPR\fP \fI\%#24169\fP: (\fI\%merll\fP) Changing user and group only possible for existing ids. (refs: \fI\%#24179\fP)
  252700. .IP \(bu 2
  252701. ba02f6509e Merge pull request \fI\%#24179\fP from Precis/fix\-file\-uid\-gid\-2015.0
  252702. .IP \(bu 2
  252703. ee4c9d59ab Use ids if user or group is not present.
  252704. .UNINDENT
  252705. .IP \(bu 2
  252706. \fBISSUE\fP \fI\%#24147\fP: (\fI\%paclat\fP) Syndication issues when using authentication on master of masters. (refs: \fI\%#24229\fP)
  252707. .IP \(bu 2
  252708. \fBPR\fP \fI\%#24229\fP: (\fI\%msteed\fP) Fix auth failure on syndic with external_auth
  252709. @ \fI2015\-05\-29 15:04:06 UTC\fP
  252710. .INDENT 2.0
  252711. .IP \(bu 2
  252712. 9bfb066c2c Merge pull request \fI\%#24229\fP from msteed/issue\-24147
  252713. .IP \(bu 2
  252714. 482d1cfc64 Fix auth failure on syndic with external_auth
  252715. .UNINDENT
  252716. .IP \(bu 2
  252717. \fBPR\fP \fI\%#24234\fP: (\fI\%jayeshka\fP) adding states/quota unit test case.
  252718. @ \fI2015\-05\-29 14:14:27 UTC\fP
  252719. .INDENT 2.0
  252720. .IP \(bu 2
  252721. 19fa43c290 Merge pull request \fI\%#24234\fP from jayeshka/quota\-states\-unit\-test
  252722. .IP \(bu 2
  252723. c23356500b adding states/quota unit test case.
  252724. .UNINDENT
  252725. .IP \(bu 2
  252726. \fBPR\fP \fI\%#24217\fP: (\fI\%jfindlay\fP) disable intermittently failing tests
  252727. @ \fI2015\-05\-29 03:08:39 UTC\fP
  252728. .INDENT 2.0
  252729. .IP \(bu 2
  252730. \fBPR\fP \fI\%#23623\fP: (\fI\%jfindlay\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#24217\fP)
  252731. .IP \(bu 2
  252732. \fBPR\fP \fI\%#22857\fP: (\fI\%jacksontj\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#23623\fP)
  252733. .IP \(bu 2
  252734. e15142c629 Merge pull request \fI\%#24217\fP from jfindlay/disable_bad_tests
  252735. .IP \(bu 2
  252736. 6b6280442c disable intermittently failing tests
  252737. .UNINDENT
  252738. .IP \(bu 2
  252739. \fBPR\fP \fI\%#24199\fP: (\fI\%ryan\-lane\fP) Various fixes for boto_route53 and boto_elb
  252740. @ \fI2015\-05\-29 03:02:41 UTC\fP
  252741. .INDENT 2.0
  252742. .IP \(bu 2
  252743. ce8e43b774 Merge pull request \fI\%#24199\fP from lyft/route53\-fix\-elb
  252744. .IP \(bu 2
  252745. d8dc9a7b5b Better unit tests for boto_elb state
  252746. .IP \(bu 2
  252747. 62f214b535 Remove cnames_present test
  252748. .IP \(bu 2
  252749. 7b9ae82951 Lint fix
  252750. .IP \(bu 2
  252751. b74b0d1413 Various fixes for boto_route53 and boto_elb
  252752. .UNINDENT
  252753. .IP \(bu 2
  252754. \fBPR\fP \fI\%#24142\fP: (\fI\%basepi\fP) Optimize dictupdate.update and add \fI\%#24097\fP functionality (refs: \fI\%#24262\fP)
  252755. @ \fI2015\-05\-29 03:00:56 UTC\fP
  252756. .INDENT 2.0
  252757. .IP \(bu 2
  252758. \fBPR\fP \fI\%#24097\fP: (\fI\%kiorky\fP) Optimize dictupdate (refs: \fI\%#24142\fP)
  252759. .IP \(bu 2
  252760. a43465d235 Merge pull request \fI\%#24142\fP from basepi/dictupdate24097
  252761. .IP \(bu 2
  252762. 5c6e210c8b Deepcopy on merge_recurse
  252763. .IP \(bu 2
  252764. a13c84ade8 Fix None check from \fI\%#21968\fP
  252765. .IP \(bu 2
  252766. 9ef2c64098 Add docstring
  252767. .IP \(bu 2
  252768. 8579429314 Add in recursive_update from \fI\%#24097\fP
  252769. .IP \(bu 2
  252770. 8599143200 if key not in dest, don\(aqt recurse
  252771. .IP \(bu 2
  252772. d8a84b3017 Rename klass to valtype
  252773. .UNINDENT
  252774. .IP \(bu 2
  252775. \fBPR\fP \fI\%#24208\fP: (\fI\%jayeshka\fP) adding states/ports unit test case.
  252776. @ \fI2015\-05\-28 23:06:33 UTC\fP
  252777. .INDENT 2.0
  252778. .IP \(bu 2
  252779. 526698ba8d Merge pull request \fI\%#24208\fP from jayeshka/ports\-states\-unit\-test
  252780. .IP \(bu 2
  252781. 657b709932 adding states/ports unit test case.
  252782. .UNINDENT
  252783. .IP \(bu 2
  252784. \fBISSUE\fP \fI\%#20635\fP: (\fI\%dennisjac\fP) 2015.2.0rc1: zfs errors in log after update (refs: \fI\%#24219\fP)
  252785. .IP \(bu 2
  252786. \fBPR\fP \fI\%#24219\fP: (\fI\%jfindlay\fP) find zfs without modinfo
  252787. @ \fI2015\-05\-28 21:07:26 UTC\fP
  252788. .INDENT 2.0
  252789. .IP \(bu 2
  252790. d00945fd40 Merge pull request \fI\%#24219\fP from jfindlay/zfs_check
  252791. .IP \(bu 2
  252792. 15d401907c use the salt loader in the zfs mod
  252793. .IP \(bu 2
  252794. 5599b67a46 try to search for zfs if modinfo is unavailable
  252795. .UNINDENT
  252796. .IP \(bu 2
  252797. \fBPR\fP \fI\%#24190\fP: (\fI\%msteed\fP) Fix issue 23815
  252798. @ \fI2015\-05\-28 20:10:34 UTC\fP
  252799. .INDENT 2.0
  252800. .IP \(bu 2
  252801. 3dc4b85295 Merge pull request \fI\%#24190\fP from msteed/issue\-23815
  252802. .IP \(bu 2
  252803. 086a1a94e8 lint
  252804. .IP \(bu 2
  252805. 65de62f852 fix \fI\%#23815\fP
  252806. .IP \(bu 2
  252807. d04e9162de spelling
  252808. .IP \(bu 2
  252809. db9f6820b8 add inotify beacon unit tests
  252810. .UNINDENT
  252811. .IP \(bu 2
  252812. \fBPR\fP \fI\%#24211\fP: (\fI\%rallytime\fP) Backport \fI\%#24205\fP to 2015.5
  252813. @ \fI2015\-05\-28 18:28:15 UTC\fP
  252814. .INDENT 2.0
  252815. .IP \(bu 2
  252816. \fBPR\fP \fI\%#24205\fP: (\fI\%hazelesque\fP) Docstring fix in salt.modules.yumpkg.hold (refs: \fI\%#24211\fP)
  252817. .IP \(bu 2
  252818. 436634b508 Merge pull request \fI\%#24211\fP from rallytime/bp\-24205
  252819. .IP \(bu 2
  252820. 23284b5d47 Docstring fix in salt.modules.yumpkg.hold
  252821. .UNINDENT
  252822. .IP \(bu 2
  252823. \fBPR\fP \fI\%#24212\fP: (\fI\%terminalmage\fP) Clarify error in rendering template for top file
  252824. @ \fI2015\-05\-28 18:26:20 UTC\fP
  252825. .INDENT 2.0
  252826. .IP \(bu 2
  252827. cc58624c7e Merge pull request \fI\%#24212\fP from terminalmage/clarify\-error\-msg
  252828. .IP \(bu 2
  252829. ca807fb032 Clarify error in rendering template for top file
  252830. .UNINDENT
  252831. .IP \(bu 2
  252832. \fBISSUE\fP \fI\%#23904\fP: (\fI\%mbrgm\fP) Network config bonding section cannot be parsed when attribute names use dashes (refs: \fI\%#23917\fP)
  252833. .IP \(bu 2
  252834. \fBISSUE\fP \fI\%#23900\fP: (\fI\%hashi825\fP) salt ubuntu network building issue 2015.5.0 (refs: \fI\%#23922\fP)
  252835. .IP \(bu 2
  252836. \fBPR\fP \fI\%#24213\fP: (\fI\%The\-Loeki\fP) ShouldFix _\- troubles in debian_ip
  252837. @ \fI2015\-05\-28 18:24:39 UTC\fP
  252838. .INDENT 2.0
  252839. .IP \(bu 2
  252840. \fBPR\fP \fI\%#23922\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py (refs: \fI\%#24213\fP)
  252841. .IP \(bu 2
  252842. \fBPR\fP \fI\%#23917\fP: (\fI\%corywright\fP) Split debian bonding options on dash instead of underscore (refs: \fI\%#24213\fP)
  252843. .IP \(bu 2
  252844. 9825160b1a Merge pull request \fI\%#24213\fP from The\-Loeki/patch\-3
  252845. .IP \(bu 2
  252846. a68d515973 ShouldFix _\- troubles in debian_ip
  252847. .UNINDENT
  252848. .IP \(bu 2
  252849. \fBPR\fP \fI\%#24214\fP: (\fI\%basepi\fP) 2015.5.1release
  252850. @ \fI2015\-05\-28 16:23:57 UTC\fP
  252851. .INDENT 2.0
  252852. .IP \(bu 2
  252853. 071751d13f Merge pull request \fI\%#24214\fP from basepi/2015.5.1release
  252854. .IP \(bu 2
  252855. e5ba31b5b5 2015.5.1 release date
  252856. .IP \(bu 2
  252857. 768494c819 Update latest release in docs
  252858. .UNINDENT
  252859. .IP \(bu 2
  252860. \fBPR\fP \fI\%#24202\fP: (\fI\%rallytime\fP) Backport \fI\%#24186\fP to 2015.5
  252861. @ \fI2015\-05\-28 05:16:48 UTC\fP
  252862. .INDENT 2.0
  252863. .IP \(bu 2
  252864. \fBPR\fP \fI\%#24186\fP: (\fI\%thcipriani\fP) Update salt vagrant provisioner info (refs: \fI\%#24202\fP)
  252865. .IP \(bu 2
  252866. c2f1fdb244 Merge pull request \fI\%#24202\fP from rallytime/bp\-24186
  252867. .IP \(bu 2
  252868. db793dd0de Update salt vagrant provisioner info
  252869. .UNINDENT
  252870. .IP \(bu 2
  252871. \fBPR\fP \fI\%#24192\fP: (\fI\%rallytime\fP) Backport \fI\%#20474\fP to 2015.5
  252872. @ \fI2015\-05\-28 05:16:18 UTC\fP
  252873. .INDENT 2.0
  252874. .IP \(bu 2
  252875. \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)
  252876. .IP \(bu 2
  252877. 8a085a2592 Merge pull request \fI\%#24192\fP from rallytime/bp\-20474
  252878. .IP \(bu 2
  252879. fd3c783f3e add sudo, sudo_password params to deploy to allow for non\-root deploys
  252880. .UNINDENT
  252881. .IP \(bu 2
  252882. \fBPR\fP \fI\%#24184\fP: (\fI\%rallytime\fP) Backport \fI\%#24129\fP to 2015.5
  252883. @ \fI2015\-05\-28 05:15:08 UTC\fP
  252884. .INDENT 2.0
  252885. .IP \(bu 2
  252886. \fBPR\fP \fI\%#24129\fP: (\fI\%pengyao\fP) Wheel client doc (refs: \fI\%#24184\fP)
  252887. .IP \(bu 2
  252888. 7cc535bf4a Merge pull request \fI\%#24184\fP from rallytime/bp\-24129
  252889. .IP \(bu 2
  252890. 722a662479 fixed a typo
  252891. .IP \(bu 2
  252892. 565eb46ff5 Add cmd doc for WheelClient
  252893. .UNINDENT
  252894. .IP \(bu 2
  252895. \fBPR\fP \fI\%#24183\fP: (\fI\%rallytime\fP) Backport \fI\%#19320\fP to 2015.5
  252896. @ \fI2015\-05\-28 05:14:36 UTC\fP
  252897. .INDENT 2.0
  252898. .IP \(bu 2
  252899. \fBPR\fP \fI\%#19320\fP: (\fI\%clan\fP) add \(aqstate_output_profile\(aq option for profile output (refs: \fI\%#24183\fP)
  252900. .IP \(bu 2
  252901. eb0af70e5b Merge pull request \fI\%#24183\fP from rallytime/bp\-19320
  252902. .IP \(bu 2
  252903. 55db1bf8b5 sate_output_profile default to True
  252904. .IP \(bu 2
  252905. 991922703b fix type: statei \-> state
  252906. .IP \(bu 2
  252907. 0549ca6266 add \(aqstate_output_profile\(aq option for profile output
  252908. .UNINDENT
  252909. .IP \(bu 2
  252910. \fBPR\fP \fI\%#24201\fP: (\fI\%whiteinge\fP) Add list of client libraries for the rest_cherrypy module to the top\-level documentation
  252911. @ \fI2015\-05\-28 02:12:09 UTC\fP
  252912. .INDENT 2.0
  252913. .IP \(bu 2
  252914. 1b5bf23187 Merge pull request \fI\%#24201\fP from whiteinge/rest_cherrypy\-client\-libs
  252915. .IP \(bu 2
  252916. 5f718027ca Add list of client libraries for the rest_cherrypy module
  252917. .IP \(bu 2
  252918. 28fc77f6f6 Fix rest_cherrypy config example indentation
  252919. .UNINDENT
  252920. .IP \(bu 2
  252921. \fBPR\fP \fI\%#24195\fP: (\fI\%rallytime\fP) Merge \fI\%#24185\fP with a couple of fixes
  252922. @ \fI2015\-05\-27 22:18:37 UTC\fP
  252923. .INDENT 2.0
  252924. .IP \(bu 2
  252925. \fBPR\fP \fI\%#24185\fP: (\fI\%jacobhammons\fP) Fixes for doc build errors (refs: \fI\%#24195\fP)
  252926. .IP \(bu 2
  252927. 3307ec20d9 Merge pull request \fI\%#24195\fP from rallytime/merge\-24185
  252928. .IP \(bu 2
  252929. d8daa9dcd7 Merge \fI\%#24185\fP with a couple of fixes
  252930. .IP \(bu 2
  252931. 634d56bca0 Fixed pylon error
  252932. .IP \(bu 2
  252933. 0689815d0e Fixes for doc build errors
  252934. .UNINDENT
  252935. .IP \(bu 2
  252936. \fBPR\fP \fI\%#24166\fP: (\fI\%jayeshka\fP) adding states/pkgng unit test case.
  252937. @ \fI2015\-05\-27 20:27:49 UTC\fP
  252938. .INDENT 2.0
  252939. .IP \(bu 2
  252940. 7e400bc3d7 Merge pull request \fI\%#24166\fP from jayeshka/pkgng\-states\-unit\-test
  252941. .IP \(bu 2
  252942. 2234bb0b70 adding states/pkgng unit test case.
  252943. .UNINDENT
  252944. .IP \(bu 2
  252945. \fBPR\fP \fI\%#24189\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  252946. @ \fI2015\-05\-27 20:26:31 UTC\fP
  252947. .INDENT 2.0
  252948. .IP \(bu 2
  252949. 9fcda79cd4 Merge pull request \fI\%#24189\fP from basepi/merge\-forward\-2015.5
  252950. .IP \(bu 2
  252951. 8839e9c22e Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  252952. .IP \(bu 2
  252953. 9d7331c87d Merge pull request \fI\%#24178\fP from rallytime/bp\-24118
  252954. .INDENT 2.0
  252955. .IP \(bu 2
  252956. e2217a09e8 removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  252957. .UNINDENT
  252958. .IP \(bu 2
  252959. 4e8c5031b0 Merge pull request \fI\%#24159\fP from rallytime/keystone_doc_examples
  252960. .INDENT 2.0
  252961. .IP \(bu 2
  252962. dadac8d076 Fill out modules/keystone.py CLI Examples
  252963. .UNINDENT
  252964. .IP \(bu 2
  252965. fc10ee8ed5 Merge pull request \fI\%#24158\fP from rallytime/fix_doc_error
  252966. .INDENT 2.0
  252967. .IP \(bu 2
  252968. 49a517e2ca Fix test_valid_docs test for tls module
  252969. .UNINDENT
  252970. .UNINDENT
  252971. .IP \(bu 2
  252972. \fBPR\fP \fI\%#24181\fP: (\fI\%justinta\fP) Fixed error where file was evaluated as a symlink in test_absent
  252973. @ \fI2015\-05\-27 18:26:28 UTC\fP
  252974. .INDENT 2.0
  252975. .IP \(bu 2
  252976. 2303dec0e9 Merge pull request \fI\%#24181\fP from jtand/file_test
  252977. .IP \(bu 2
  252978. 5f0e601589 Fixed error where file was evaluated as a symlink in test_absent
  252979. .UNINDENT
  252980. .IP \(bu 2
  252981. \fBPR\fP \fI\%#24180\fP: (\fI\%terminalmage\fP) Skip libvirt tests if not running as root
  252982. @ \fI2015\-05\-27 18:18:47 UTC\fP
  252983. .INDENT 2.0
  252984. .IP \(bu 2
  252985. a16276852b Merge pull request \fI\%#24180\fP from terminalmage/fix\-libvirt\-test
  252986. .IP \(bu 2
  252987. 72e7416ad2 Skip libvirt tests if not running as root
  252988. .UNINDENT
  252989. .IP \(bu 2
  252990. \fBPR\fP \fI\%#24165\fP: (\fI\%jayeshka\fP) adding states/portage_config unit test case.
  252991. @ \fI2015\-05\-27 17:15:08 UTC\fP
  252992. .INDENT 2.0
  252993. .IP \(bu 2
  252994. 1fbc5b25e6 Merge pull request \fI\%#24165\fP from jayeshka/portage_config\-states\-unit\-test
  252995. .IP \(bu 2
  252996. 8cf1505392 adding states/portage_config unit test case.
  252997. .UNINDENT
  252998. .IP \(bu 2
  252999. \fBPR\fP \fI\%#24164\fP: (\fI\%jayeshka\fP) adding states/pecl unit test case.
  253000. @ \fI2015\-05\-27 17:14:26 UTC\fP
  253001. .INDENT 2.0
  253002. .IP \(bu 2
  253003. 4747856411 Merge pull request \fI\%#24164\fP from jayeshka/pecl\-states\-unit\-test
  253004. .IP \(bu 2
  253005. 563a5b3c30 adding states/pecl unit test case.
  253006. .UNINDENT
  253007. .IP \(bu 2
  253008. \fBPR\fP \fI\%#24160\fP: (\fI\%The\-Loeki\fP) small enhancement to data module; pop()
  253009. @ \fI2015\-05\-27 17:03:10 UTC\fP
  253010. .INDENT 2.0
  253011. .IP \(bu 2
  253012. cdaaa19324 Merge pull request \fI\%#24160\fP from The\-Loeki/patch\-1
  253013. .IP \(bu 2
  253014. 2175ff3c75 doc & merge fix
  253015. .IP \(bu 2
  253016. eba382cdda small enhancement to data module; pop()
  253017. .UNINDENT
  253018. .IP \(bu 2
  253019. \fBPR\fP \fI\%#24153\fP: (\fI\%techhat\fP) Batch mode sometimes improperly builds lists of minions to process
  253020. @ \fI2015\-05\-27 16:21:53 UTC\fP
  253021. .INDENT 2.0
  253022. .IP \(bu 2
  253023. 4a8dbc7f13 Merge pull request \fI\%#24153\fP from techhat/batchlist
  253024. .IP \(bu 2
  253025. 467ba64612 Make sure that minion IDs are strings
  253026. .UNINDENT
  253027. .IP \(bu 2
  253028. \fBPR\fP \fI\%#24167\fP: (\fI\%jayeshka\fP) adding states/pagerduty unit test case.
  253029. @ \fI2015\-05\-27 16:14:01 UTC\fP
  253030. .INDENT 2.0
  253031. .IP \(bu 2
  253032. ed8ccf57a2 Merge pull request \fI\%#24167\fP from jayeshka/pagerduty\-states\-unit\-test
  253033. .IP \(bu 2
  253034. 1af8c8334d adding states/pagerduty unit test case.
  253035. .UNINDENT
  253036. .IP \(bu 2
  253037. \fBPR\fP \fI\%#24156\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253038. @ \fI2015\-05\-27 15:05:01 UTC\fP
  253039. .INDENT 2.0
  253040. .IP \(bu 2
  253041. b9507d1567 Merge pull request \fI\%#24156\fP from basepi/merge\-forward\-2015.5
  253042. .IP \(bu 2
  253043. e52b5ab2e2 Remove stray >>>>>
  253044. .IP \(bu 2
  253045. 7dfbd929ff Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253046. .INDENT 2.0
  253047. .IP \(bu 2
  253048. c0d32e0b5e Merge pull request \fI\%#24125\fP from hvnsweeting/fix\-rabbitmq\-test\-mode
  253049. .INDENT 2.0
  253050. .IP \(bu 2
  253051. 71862c69b9 enhance log
  253052. .IP \(bu 2
  253053. 28e2594162 change according to new output of rabbitmq module functions
  253054. .IP \(bu 2
  253055. cd0212e8ed processes and returns better output for rabbitmq module
  253056. .UNINDENT
  253057. .IP \(bu 2
  253058. 39a8f30f06 Merge pull request \fI\%#24093\fP from msteed/issue\-23464
  253059. .INDENT 2.0
  253060. .IP \(bu 2
  253061. fd35903d75 Fix failing test
  253062. .IP \(bu 2
  253063. 41b344c7d3 Make LocalClient.cmd_iter_no_block() not block
  253064. .UNINDENT
  253065. .IP \(bu 2
  253066. 5bffd3045e Merge pull request \fI\%#24008\fP from davidjb/2014.7
  253067. .INDENT 2.0
  253068. .IP \(bu 2
  253069. 8b8d0293d4 Correct reST formatting for documentation
  253070. .UNINDENT
  253071. .IP \(bu 2
  253072. 1aa0420040 Merge pull request \fI\%#23933\fP from jacobhammons/2014.7
  253073. .IP \(bu 2
  253074. a3613e68e4 removed numbering from doc TOC
  253075. .IP \(bu 2
  253076. 78b737c5e6 removed 2015.* release from release notes, updated index page to remove PDF/epub links
  253077. .IP \(bu 2
  253078. e867f7df77 Changed build settings to use saltstack2 theme and update release versions.
  253079. .IP \(bu 2
  253080. 81ed9c9f59 sphinx saltstack2 doc theme
  253081. .UNINDENT
  253082. .UNINDENT
  253083. .IP \(bu 2
  253084. \fBISSUE\fP \fI\%#24102\fP: (\fI\%bormotov\fP) win_update encondig problems (refs: \fI\%#24145\fP)
  253085. .IP \(bu 2
  253086. \fBPR\fP \fI\%#24145\fP: (\fI\%jfindlay\fP) attempt to decode win update package
  253087. @ \fI2015\-05\-26 23:20:20 UTC\fP
  253088. .INDENT 2.0
  253089. .IP \(bu 2
  253090. 05745fa931 Merge pull request \fI\%#24145\fP from jfindlay/win_update_encoding
  253091. .IP \(bu 2
  253092. cc5e17e61f attempt to decode win update package
  253093. .UNINDENT
  253094. .IP \(bu 2
  253095. \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)
  253096. .IP \(bu 2
  253097. \fBPR\fP \fI\%#24123\fP: (\fI\%kiorky\fP) fix service enable/disable change
  253098. @ \fI2015\-05\-26 21:24:19 UTC\fP
  253099. .INDENT 2.0
  253100. .IP \(bu 2
  253101. 70247890de Merge pull request \fI\%#24123\fP from makinacorpus/ss
  253102. .IP \(bu 2
  253103. 2e2e1d262d fix service enable/disable change
  253104. .UNINDENT
  253105. .IP \(bu 2
  253106. \fBPR\fP \fI\%#24146\fP: (\fI\%rallytime\fP) Fixes the boto_vpc_test failure on CentOS 5 tests
  253107. @ \fI2015\-05\-26 20:15:19 UTC\fP
  253108. .INDENT 2.0
  253109. .IP \(bu 2
  253110. 51c3cec5d7 Merge pull request \fI\%#24146\fP from rallytime/fix_centos_boto_failure
  253111. .IP \(bu 2
  253112. ac0f97de51 Fixes the boto_vpc_test failure on CentOS 5 tests
  253113. .UNINDENT
  253114. .IP \(bu 2
  253115. \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)
  253116. .IP \(bu 2
  253117. \fBISSUE\fP \fI\%#23566\fP: (\fI\%rks2286\fP) Salt\-cp corrupting the file after transfer to minion (refs: \fI\%#24144\fP, \fI\%#23740\fP)
  253118. .IP \(bu 2
  253119. \fBPR\fP \fI\%#24144\fP: (\fI\%twangboy\fP) Compare Keys ignores all newlines and carriage returns
  253120. @ \fI2015\-05\-26 19:25:48 UTC\fP
  253121. .INDENT 2.0
  253122. .IP \(bu 2
  253123. \fBPR\fP \fI\%#23740\fP: (\fI\%jfindlay\fP) Binary write (refs: \fI\%#24144\fP)
  253124. .IP \(bu 2
  253125. 1c91a2176f Merge pull request \fI\%#24144\fP from twangboy/fix_24052
  253126. .IP \(bu 2
  253127. c197b41494 Compare Keys removing all newlines and carriage returns
  253128. .UNINDENT
  253129. .IP \(bu 2
  253130. \fBPR\fP \fI\%#24139\fP: (\fI\%rallytime\fP) Backport \fI\%#24118\fP to 2015.5
  253131. @ \fI2015\-05\-26 18:24:27 UTC\fP
  253132. .INDENT 2.0
  253133. .IP \(bu 2
  253134. \fBPR\fP \fI\%#24118\fP: (\fI\%trevor\-h\fP) removed deprecated pymongo usage (refs: \fI\%#24178\fP, \fI\%#24139\fP)
  253135. .IP \(bu 2
  253136. 084166747c Merge pull request \fI\%#24139\fP from rallytime/bp\-24118
  253137. .IP \(bu 2
  253138. 4bb519b8da removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  253139. .UNINDENT
  253140. .IP \(bu 2
  253141. \fBPR\fP \fI\%#24138\fP: (\fI\%rallytime\fP) Backport \fI\%#24116\fP to 2015.5
  253142. @ \fI2015\-05\-26 18:23:51 UTC\fP
  253143. .INDENT 2.0
  253144. .IP \(bu 2
  253145. \fBPR\fP \fI\%#24116\fP: (\fI\%awdrius\fP) Fixed typo in chown username (ending dot) that fails the command. (refs: \fI\%#24138\fP)
  253146. .IP \(bu 2
  253147. 742eca29f7 Merge pull request \fI\%#24138\fP from rallytime/bp\-24116
  253148. .IP \(bu 2
  253149. 7f08641800 Fixed typo in chown username (ending dot) that fails the command.
  253150. .UNINDENT
  253151. .IP \(bu 2
  253152. \fBPR\fP \fI\%#24137\fP: (\fI\%rallytime\fP) Backport \fI\%#24105\fP to 2015.5
  253153. @ \fI2015\-05\-26 18:23:40 UTC\fP
  253154. .INDENT 2.0
  253155. .IP \(bu 2
  253156. \fBPR\fP \fI\%#24105\fP: (\fI\%cedwards\fP) Updated some beacon\-specific documentation formatting (refs: \fI\%#24137\fP)
  253157. .IP \(bu 2
  253158. e01536d098 Merge pull request \fI\%#24137\fP from rallytime/bp\-24105
  253159. .IP \(bu 2
  253160. f0778a0a60 Updated some beacon\-specific documentation formatting
  253161. .UNINDENT
  253162. .IP \(bu 2
  253163. \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)
  253164. .IP \(bu 2
  253165. \fBPR\fP \fI\%#24136\fP: (\fI\%rallytime\fP) Backport \fI\%#24104\fP to 2015.5
  253166. @ \fI2015\-05\-26 15:58:47 UTC\fP
  253167. .INDENT 2.0
  253168. .IP \(bu 2
  253169. \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)
  253170. .IP \(bu 2
  253171. 89cdf976e1 Merge pull request \fI\%#24136\fP from rallytime/bp\-24104
  253172. .IP \(bu 2
  253173. c53888415f Only try to stop a VM if it\(aqs not already stopped. (fixes \fI\%#23364\fP)
  253174. .UNINDENT
  253175. .IP \(bu 2
  253176. \fBPR\fP \fI\%#24135\fP: (\fI\%rallytime\fP) Backport \fI\%#24083\fP to 2015.5
  253177. @ \fI2015\-05\-26 15:58:27 UTC\fP
  253178. .INDENT 2.0
  253179. .IP \(bu 2
  253180. \fBPR\fP \fI\%#24083\fP: (\fI\%swdream\fP) fix code block syntax (refs: \fI\%#24135\fP)
  253181. .IP \(bu 2
  253182. 67c4373577 Merge pull request \fI\%#24135\fP from rallytime/bp\-24083
  253183. .IP \(bu 2
  253184. e1d06f9764 fix code block syntax
  253185. .UNINDENT
  253186. .IP \(bu 2
  253187. \fBPR\fP \fI\%#24131\fP: (\fI\%jayeshka\fP) adding states/mysql_user unit test case
  253188. @ \fI2015\-05\-26 15:58:10 UTC\fP
  253189. .INDENT 2.0
  253190. .IP \(bu 2
  253191. a83371e0ed Merge pull request \fI\%#24131\fP from jayeshka/mysql_user\-states\-unit\-test
  253192. .IP \(bu 2
  253193. ed1ef69856 adding states/mysql_user unit test case
  253194. .UNINDENT
  253195. .IP \(bu 2
  253196. \fBPR\fP \fI\%#24130\fP: (\fI\%jayeshka\fP) adding states/ntp unit test case
  253197. @ \fI2015\-05\-26 15:57:29 UTC\fP
  253198. .INDENT 2.0
  253199. .IP \(bu 2
  253200. 1dc1d2a6e5 Merge pull request \fI\%#24130\fP from jayeshka/ntp\-states\-unit\-test
  253201. .IP \(bu 2
  253202. ede4a9f2f1 adding states/ntp unit test case
  253203. .UNINDENT
  253204. .IP \(bu 2
  253205. \fBPR\fP \fI\%#24128\fP: (\fI\%jayeshka\fP) adding states/openstack_config unit test case
  253206. @ \fI2015\-05\-26 15:56:08 UTC\fP
  253207. .INDENT 2.0
  253208. .IP \(bu 2
  253209. 39434179a8 Merge pull request \fI\%#24128\fP from jayeshka/openstack_config\-states\-unit\-test
  253210. .IP \(bu 2
  253211. ca09e0f7c1 adding states/openstack_config unit test case
  253212. .UNINDENT
  253213. .IP \(bu 2
  253214. \fBPR\fP \fI\%#24127\fP: (\fI\%jayeshka\fP) adding states/npm unit test case
  253215. @ \fI2015\-05\-26 15:55:18 UTC\fP
  253216. .INDENT 2.0
  253217. .IP \(bu 2
  253218. 23f25c4298 Merge pull request \fI\%#24127\fP from jayeshka/npm\-states\-unit\-test
  253219. .IP \(bu 2
  253220. c3ecabbae0 adding states/npm unit test case
  253221. .UNINDENT
  253222. .IP \(bu 2
  253223. \fBISSUE\fP \fI\%#24009\fP: (\fI\%hvnsweeting\fP) state_verbose False summary is wrong (refs: \fI\%#24077\fP)
  253224. .IP \(bu 2
  253225. \fBPR\fP \fI\%#24077\fP: (\fI\%anlutro\fP) Change how state_verbose output is filtered
  253226. @ \fI2015\-05\-26 15:41:11 UTC\fP
  253227. .INDENT 2.0
  253228. .IP \(bu 2
  253229. 07488a4415 Merge pull request \fI\%#24077\fP from alprs/fix\-outputter_highstate_nonverbose_count
  253230. .IP \(bu 2
  253231. 7790408c3c Change how state_verbose output is filtered
  253232. .UNINDENT
  253233. .IP \(bu 2
  253234. \fBPR\fP \fI\%#24119\fP: (\fI\%jfindlay\fP) Update contrib docs
  253235. @ \fI2015\-05\-26 15:37:01 UTC\fP
  253236. .INDENT 2.0
  253237. .IP \(bu 2
  253238. 224820febf Merge pull request \fI\%#24119\fP from jfindlay/update_contrib_docs
  253239. .IP \(bu 2
  253240. fa2d411f53 update example release branch in contrib docs
  253241. .IP \(bu 2
  253242. a0b76b57b3 clarify git rebase instructions
  253243. .IP \(bu 2
  253244. 3517e0095f fix contribution docs link typos
  253245. .IP \(bu 2
  253246. 651629c6a4 backport dev contrib doc updates to 2015.5
  253247. .UNINDENT
  253248. .IP \(bu 2
  253249. \fBPR\fP \fI\%#23928\fP: (\fI\%joejulian\fP) Add the ability to replace existing certificates
  253250. @ \fI2015\-05\-25 19:47:26 UTC\fP
  253251. .INDENT 2.0
  253252. .IP \(bu 2
  253253. 5488c4aaa2 Merge pull request \fI\%#23928\fP from joejulian/2015.5_tls_module_replace_existing
  253254. .IP \(bu 2
  253255. 4a4cbdd266 Add the ability to replace existing certificates
  253256. .UNINDENT
  253257. .IP \(bu 2
  253258. \fBISSUE\fP \fI\%#23221\fP: (\fI\%Reiner030\fP) Debian Jessie: locale.present not working again (refs: \fI\%#24078\fP)
  253259. .IP \(bu 2
  253260. \fBPR\fP \fI\%#24078\fP: (\fI\%jfindlay\fP) if a charmap is not supplied, set it to the codeset
  253261. @ \fI2015\-05\-25 19:39:19 UTC\fP
  253262. .INDENT 2.0
  253263. .IP \(bu 2
  253264. dd90ef09b9 Merge pull request \fI\%#24078\fP from jfindlay/locale_charmap
  253265. .IP \(bu 2
  253266. 5eb97f0973 if a charmap is not supplied, set it to the codeset
  253267. .UNINDENT
  253268. .IP \(bu 2
  253269. \fBPR\fP \fI\%#24088\fP: (\fI\%jfindlay\fP) pkg module integration tests
  253270. @ \fI2015\-05\-25 19:39:02 UTC\fP
  253271. .INDENT 2.0
  253272. .IP \(bu 2
  253273. 9cec5d3dc9 Merge pull request \fI\%#24088\fP from jfindlay/pkg_tests
  253274. .IP \(bu 2
  253275. f1bd5ec404 adding pkg module integration tests
  253276. .IP \(bu 2
  253277. 739b2ef3bd rework yumpkg refresh_db so args are not mandatory
  253278. .UNINDENT
  253279. .IP \(bu 2
  253280. \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)
  253281. .IP \(bu 2
  253282. \fBPR\fP \fI\%#24089\fP: (\fI\%jfindlay\fP) allow override of binary file mode on windows
  253283. @ \fI2015\-05\-25 19:38:44 UTC\fP
  253284. .INDENT 2.0
  253285. .IP \(bu 2
  253286. 517552caa6 Merge pull request \fI\%#24089\fP from jfindlay/binary_write
  253287. .IP \(bu 2
  253288. b2259a6370 allow override of binary file mode on windows
  253289. .UNINDENT
  253290. .IP \(bu 2
  253291. \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)
  253292. .IP \(bu 2
  253293. \fBPR\fP \fI\%#24092\fP: (\fI\%jfindlay\fP) collect scattered contents edits, ensure it\(aqs a str
  253294. @ \fI2015\-05\-25 19:38:10 UTC\fP
  253295. .INDENT 2.0
  253296. .IP \(bu 2
  253297. 121ab9f857 Merge pull request \fI\%#24092\fP from jfindlay/file_state
  253298. .IP \(bu 2
  253299. cfa0f1358e collect scattered contents edits, ensure it\(aqs a str
  253300. .UNINDENT
  253301. .IP \(bu 2
  253302. \fBPR\fP \fI\%#24112\fP: (\fI\%The\-Loeki\fP) thin_gen breaks when thinver doesn\(aqt exist
  253303. @ \fI2015\-05\-25 19:37:47 UTC\fP
  253304. .INDENT 2.0
  253305. .IP \(bu 2
  253306. 84e65dece7 Merge pull request \fI\%#24112\fP from The\-Loeki/patch\-1
  253307. .IP \(bu 2
  253308. 34646eae16 thin_gen breaks when thinver doesn\(aqt exist
  253309. .UNINDENT
  253310. .IP \(bu 2
  253311. \fBPR\fP \fI\%#24108\fP: (\fI\%jayeshka\fP) adding states/mysql_query unit test case
  253312. @ \fI2015\-05\-25 12:30:48 UTC\fP
  253313. .INDENT 2.0
  253314. .IP \(bu 2
  253315. ec509ed272 Merge pull request \fI\%#24108\fP from jayeshka/mysql_query\-states\-unit\-test
  253316. .IP \(bu 2
  253317. ec50450460 adding states/mysql_query unit test case
  253318. .UNINDENT
  253319. .IP \(bu 2
  253320. \fBPR\fP \fI\%#24110\fP: (\fI\%jayeshka\fP) adding varnish unit test case
  253321. @ \fI2015\-05\-25 12:30:21 UTC\fP
  253322. .INDENT 2.0
  253323. .IP \(bu 2
  253324. f2e5d6c2fd Merge pull request \fI\%#24110\fP from jayeshka/varnish\-unit\-test
  253325. .IP \(bu 2
  253326. e11988969f adding varnish unit test case
  253327. .UNINDENT
  253328. .IP \(bu 2
  253329. \fBPR\fP \fI\%#24109\fP: (\fI\%jayeshka\fP) adding states/mysql_grants unit test case
  253330. @ \fI2015\-05\-25 12:29:53 UTC\fP
  253331. .INDENT 2.0
  253332. .IP \(bu 2
  253333. 4fca2b49e3 Merge pull request \fI\%#24109\fP from jayeshka/mysql_grants\-states\-unit\-test
  253334. .IP \(bu 2
  253335. 11a93cb80c adding states/mysql_grants unit test case
  253336. .UNINDENT
  253337. .IP \(bu 2
  253338. \fBPR\fP \fI\%#24028\fP: (\fI\%nleib\fP) send a disable message to disable puppet
  253339. @ \fI2015\-05\-25 04:02:11 UTC\fP
  253340. .INDENT 2.0
  253341. .IP \(bu 2
  253342. 6b43c9a8cb Merge pull request \fI\%#24028\fP from nleib/2015.5
  253343. .IP \(bu 2
  253344. 15f24b42b2 update format of string in disabled msg
  253345. .IP \(bu 2
  253346. 7690e5b008 remove trailing whitespaces
  253347. .IP \(bu 2
  253348. 56a972034f Update puppet.py
  253349. .IP \(bu 2
  253350. 9686391d81 Update puppet.py
  253351. .IP \(bu 2
  253352. 33f3d68489 send a disable message to disable puppet
  253353. .UNINDENT
  253354. .IP \(bu 2
  253355. \fBPR\fP \fI\%#24100\fP: (\fI\%jfindlay\fP) adding states/file unit test case
  253356. @ \fI2015\-05\-24 05:17:54 UTC\fP
  253357. .INDENT 2.0
  253358. .IP \(bu 2
  253359. \fBPR\fP \fI\%#23963\fP: (\fI\%jayeshka\fP) adding states/file unit test case (refs: \fI\%#24100\fP)
  253360. .IP \(bu 2
  253361. 52c9acafc2 Merge pull request \fI\%#24100\fP from jfindlay/merge_23963
  253362. .IP \(bu 2
  253363. 7d59deb3d6 adding states/file unit test case
  253364. .UNINDENT
  253365. .IP \(bu 2
  253366. \fBISSUE\fP \fI\%#21446\fP: (\fI\%dpheasant\fP) check for systemd on Oracle Linux (refs: \fI\%#24098\fP)
  253367. .IP \(bu 2
  253368. \fBPR\fP \fI\%#24098\fP: (\fI\%galet\fP) Systemd not recognized properly on Oracle Linux 7
  253369. @ \fI2015\-05\-24 04:07:31 UTC\fP
  253370. .INDENT 2.0
  253371. .IP \(bu 2
  253372. 0eb9f15d20 Merge pull request \fI\%#24098\fP from galet/2015.5
  253373. .IP \(bu 2
  253374. 4d6ab21c74 Systemd not recognized properly on Oracle Linux 7
  253375. .UNINDENT
  253376. .IP \(bu 2
  253377. \fBPR\fP \fI\%#24090\fP: (\fI\%jfindlay\fP) adding states/mount unit test case
  253378. @ \fI2015\-05\-22 23:02:57 UTC\fP
  253379. .INDENT 2.0
  253380. .IP \(bu 2
  253381. \fBPR\fP \fI\%#24062\fP: (\fI\%jayeshka\fP) adding states/mount unit test case (refs: \fI\%#24090\fP)
  253382. .IP \(bu 2
  253383. 8e04db76de Merge pull request \fI\%#24090\fP from jfindlay/merge_24062
  253384. .IP \(bu 2
  253385. a81a9225b8 adding states/mount unit test case
  253386. .UNINDENT
  253387. .IP \(bu 2
  253388. \fBISSUE\fP \fI\%#22574\fP: (\fI\%unicolet\fP) error when which is not available (refs: \fI\%#22806\fP)
  253389. .IP \(bu 2
  253390. \fBPR\fP \fI\%#24086\fP: (\fI\%rallytime\fP) Backport \fI\%#22806\fP to 2015.5
  253391. @ \fI2015\-05\-22 21:18:20 UTC\fP
  253392. .INDENT 2.0
  253393. .IP \(bu 2
  253394. \fBPR\fP \fI\%#22806\fP: (\fI\%jfindlay\fP) use cmd.run_all instead of cmd.run_stdout (refs: \fI\%#24086\fP)
  253395. .IP \(bu 2
  253396. c0079f5dc7 Merge pull request \fI\%#24086\fP from rallytime/bp\-22806
  253397. .IP \(bu 2
  253398. f728f55160 use cmd.run_all instead of cmd.run_stdout
  253399. .UNINDENT
  253400. .IP \(bu 2
  253401. \fBPR\fP \fI\%#24024\fP: (\fI\%jayeshka\fP) adding states/mongodb_user unit test case
  253402. @ \fI2015\-05\-22 20:53:19 UTC\fP
  253403. .INDENT 2.0
  253404. .IP \(bu 2
  253405. 09de253373 Merge pull request \fI\%#24024\fP from jayeshka/mongodb_user\-states\-unit\-test
  253406. .IP \(bu 2
  253407. f31dc921f5 resolved errors
  253408. .IP \(bu 2
  253409. d038b1fdbb adding states/mongodb_user unit test case
  253410. .UNINDENT
  253411. .IP \(bu 2
  253412. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  253413. .IP \(bu 2
  253414. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  253415. @ \fI2015\-05\-22 18:59:21 UTC\fP
  253416. .INDENT 2.0
  253417. .IP \(bu 2
  253418. bfd812c56b Merge pull request \fI\%#24065\fP from makinacorpus/real23883
  253419. .IP \(bu 2
  253420. 028282e01d continue to fix \fI\%#23883\fP
  253421. .UNINDENT
  253422. .IP \(bu 2
  253423. \fBISSUE\fP \fI\%#24017\fP: (\fI\%arthurlogilab\fP) [salt\-cloud openstack] TypeError: unhashable type: \(aqdict\(aq on map creation (refs: \fI\%#24029\fP)
  253424. .IP \(bu 2
  253425. \fBPR\fP \fI\%#24029\fP: (\fI\%kiorky\fP) Fix providers handling
  253426. @ \fI2015\-05\-22 16:56:06 UTC\fP
  253427. .INDENT 2.0
  253428. .IP \(bu 2
  253429. 429adfe00a Merge pull request \fI\%#24029\fP from makinacorpus/fixproviders
  253430. .IP \(bu 2
  253431. 412b39b802 Fix providers handling
  253432. .UNINDENT
  253433. .IP \(bu 2
  253434. \fBPR\fP \fI\%#23936\fP: (\fI\%jfindlay\fP) remove unreachable returns in file state
  253435. @ \fI2015\-05\-22 16:26:49 UTC\fP
  253436. .INDENT 2.0
  253437. .IP \(bu 2
  253438. a42ccccd98 Merge pull request \fI\%#23936\fP from jfindlay/file_state
  253439. .IP \(bu 2
  253440. ac29c0cdd0 also validate file.recurse source parameter
  253441. .IP \(bu 2
  253442. 57f73887fe remove unreachable returns in file state
  253443. .UNINDENT
  253444. .IP \(bu 2
  253445. \fBPR\fP \fI\%#24063\fP: (\fI\%jayeshka\fP) removed tuple index error
  253446. @ \fI2015\-05\-22 14:58:20 UTC\fP
  253447. .INDENT 2.0
  253448. .IP \(bu 2
  253449. 8b69b41a42 Merge pull request \fI\%#24063\fP from jayeshka/mount\-states\-module
  253450. .IP \(bu 2
  253451. b9745d5c4f removed tuple index error
  253452. .UNINDENT
  253453. .IP \(bu 2
  253454. \fBPR\fP \fI\%#24057\fP: (\fI\%rallytime\fP) Backport \fI\%#22572\fP to 2015.5
  253455. @ \fI2015\-05\-22 05:36:25 UTC\fP
  253456. .INDENT 2.0
  253457. .IP \(bu 2
  253458. \fBPR\fP \fI\%#22572\fP: (\fI\%The\-Loeki\fP) Small docfix for GitPillar (refs: \fI\%#24057\fP)
  253459. .IP \(bu 2
  253460. 02ac4aa288 Merge pull request \fI\%#24057\fP from rallytime/bp\-22572
  253461. .IP \(bu 2
  253462. 49aad84b17 Small docfix for GitPillar
  253463. .UNINDENT
  253464. .IP \(bu 2
  253465. \fBISSUE\fP \fI\%#23088\fP: (\fI\%ghost\fP) Segfault when adding a Zypper repo on SLES 11.3 (refs: \fI\%#24027\fP)
  253466. .IP \(bu 2
  253467. \fBPR\fP \fI\%#24040\fP: (\fI\%rallytime\fP) Backport \fI\%#24027\fP to 2015.5
  253468. @ \fI2015\-05\-21 23:43:54 UTC\fP
  253469. .INDENT 2.0
  253470. .IP \(bu 2
  253471. \fBPR\fP \fI\%#24027\fP: (\fI\%ghost\fP) Add baseurl to salt.modules.zypper.mod_repo (refs: \fI\%#24040\fP)
  253472. .IP \(bu 2
  253473. 82de059891 Merge pull request \fI\%#24040\fP from rallytime/bp\-24027
  253474. .IP \(bu 2
  253475. 37d25d8bc6 Added baseurl as alias for url and mirrorlist in salt.modules.zypper.mod_repo.
  253476. .UNINDENT
  253477. .IP \(bu 2
  253478. \fBPR\fP \fI\%#24039\fP: (\fI\%rallytime\fP) Backport \fI\%#24015\fP to 2015.5
  253479. @ \fI2015\-05\-21 23:43:25 UTC\fP
  253480. .INDENT 2.0
  253481. .IP \(bu 2
  253482. \fBPR\fP \fI\%#24015\fP: (\fI\%YanChii\fP) minor improvement of solarisips docs & fix typos (refs: \fI\%#24039\fP)
  253483. .IP \(bu 2
  253484. d909781d97 Merge pull request \fI\%#24039\fP from rallytime/bp\-24015
  253485. .IP \(bu 2
  253486. 6bfaa94a8c minor improovement of solarisips docs & fix typos
  253487. .UNINDENT
  253488. .IP \(bu 2
  253489. \fBISSUE\fP \fI\%#19598\fP: (\fI\%fayetted\fP) ssh_auth.present test=true incorectly reports changes will be made (refs: \fI\%#19599\fP)
  253490. .IP \(bu 2
  253491. \fBPR\fP \fI\%#24038\fP: (\fI\%rallytime\fP) Backport \fI\%#19599\fP to 2015.5
  253492. @ \fI2015\-05\-21 23:43:10 UTC\fP
  253493. .INDENT 2.0
  253494. .IP \(bu 2
  253495. \fBPR\fP \fI\%#19599\fP: (\fI\%fayetted\fP) Fix ssh_auth test mode, compare lines not just key (refs: \fI\%#24038\fP)
  253496. .IP \(bu 2
  253497. 4a0f254d22 Merge pull request \fI\%#24038\fP from rallytime/bp\-19599
  253498. .IP \(bu 2
  253499. ea00d3e786 Fix ssh_auth test mode, compare lines not just key
  253500. .UNINDENT
  253501. .IP \(bu 2
  253502. \fBPR\fP \fI\%#24046\fP: (\fI\%rallytime\fP) Remove key management test from digital ocean cloud tests
  253503. @ \fI2015\-05\-21 22:32:04 UTC\fP
  253504. .INDENT 2.0
  253505. .IP \(bu 2
  253506. 42b87f1049 Merge pull request \fI\%#24046\fP from rallytime/remove_key_test
  253507. .IP \(bu 2
  253508. 1d031caa78 Remove key management test from digital ocean cloud tests
  253509. .UNINDENT
  253510. .IP \(bu 2
  253511. \fBPR\fP \fI\%#24044\fP: (\fI\%cro\fP) Remove spurious log message, fix typo in doc
  253512. @ \fI2015\-05\-21 22:31:49 UTC\fP
  253513. .INDENT 2.0
  253514. .IP \(bu 2
  253515. eff54b1c5a Merge pull request \fI\%#24044\fP from cro/pgjsonb
  253516. .IP \(bu 2
  253517. de0663314a Remove spurious log message, fix typo in doc
  253518. .UNINDENT
  253519. .IP \(bu 2
  253520. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  253521. .IP \(bu 2
  253522. \fBPR\fP \fI\%#24001\fP: (\fI\%msteed\fP) issue \fI\%#23883\fP
  253523. @ \fI2015\-05\-21 20:32:30 UTC\fP
  253524. .INDENT 2.0
  253525. .IP \(bu 2
  253526. ac32000b5d Merge pull request \fI\%#24001\fP from msteed/issue\-23883
  253527. .IP \(bu 2
  253528. bea97a8b98 issue \fI\%#23883\fP
  253529. .UNINDENT
  253530. .IP \(bu 2
  253531. \fBPR\fP \fI\%#23995\fP: (\fI\%kiorky\fP) Lxc path pre
  253532. @ \fI2015\-05\-21 17:26:03 UTC\fP
  253533. .INDENT 2.0
  253534. .IP \(bu 2
  253535. f7fae26059 Merge pull request \fI\%#23995\fP from makinacorpus/lxc_path_pre
  253536. .IP \(bu 2
  253537. 319282af5f lint
  253538. .IP \(bu 2
  253539. 1dc67e5678 lxc: versionadded
  253540. .IP \(bu 2
  253541. fcad7cb804 lxc: states improvments
  253542. .IP \(bu 2
  253543. 644bd729f7 lxc: more consistence for profiles
  253544. .IP \(bu 2
  253545. 139372c055 lxc: remove merge cruft
  253546. .IP \(bu 2
  253547. 725b0462ca lxc: Repair merge
  253548. .UNINDENT
  253549. .IP \(bu 2
  253550. \fBISSUE\fP \fI\%#16383\fP: (\fI\%interjection\fP) salt.states.augeas.change example from docs fails with exception (refs: \fI\%#24032\fP)
  253551. .IP \(bu 2
  253552. \fBPR\fP \fI\%#24032\fP: (\fI\%kartiksubbarao\fP) Update augeas_cfg.py
  253553. @ \fI2015\-05\-21 17:03:42 UTC\fP
  253554. .INDENT 2.0
  253555. .IP \(bu 2
  253556. 26d6851666 Merge pull request \fI\%#24032\fP from kartiksubbarao/augeas_insert_16383
  253557. .IP \(bu 2
  253558. 3686dcd4c7 Update augeas_cfg.py
  253559. .UNINDENT
  253560. .IP \(bu 2
  253561. \fBPR\fP \fI\%#24025\fP: (\fI\%jayeshka\fP) adding timezone unit test case
  253562. @ \fI2015\-05\-21 16:50:53 UTC\fP
  253563. .INDENT 2.0
  253564. .IP \(bu 2
  253565. 55c9245075 Merge pull request \fI\%#24025\fP from jayeshka/timezone\-unit\-test
  253566. .IP \(bu 2
  253567. 1ec33e22a7 removed assertion error
  253568. .IP \(bu 2
  253569. 16ecb28950 adding timezone unit test case
  253570. .UNINDENT
  253571. .IP \(bu 2
  253572. \fBPR\fP \fI\%#24023\fP: (\fI\%jayeshka\fP) adding states/mongodb_database unit test case
  253573. @ \fI2015\-05\-21 16:49:17 UTC\fP
  253574. .INDENT 2.0
  253575. .IP \(bu 2
  253576. e243617659 Merge pull request \fI\%#24023\fP from jayeshka/mongodb_database\-states\-unit\-test
  253577. .IP \(bu 2
  253578. 5a9ac7effb adding states/mongodb_database unit test case
  253579. .UNINDENT
  253580. .IP \(bu 2
  253581. \fBPR\fP \fI\%#24022\fP: (\fI\%jayeshka\fP) adding states/modjk_worker unit test case
  253582. @ \fI2015\-05\-21 16:48:29 UTC\fP
  253583. .INDENT 2.0
  253584. .IP \(bu 2
  253585. b377bd93e6 Merge pull request \fI\%#24022\fP from jayeshka/modjk_worker\-states\-unit\-test
  253586. .IP \(bu 2
  253587. 05c0a985db adding states/modjk_worker unit test case
  253588. .UNINDENT
  253589. .IP \(bu 2
  253590. \fBISSUE\fP \fI\%#23776\fP: (\fI\%enblde\fP) Presence change events constantly reporting all minions as new in 2015.5 (refs: \fI\%#24005\fP)
  253591. .IP \(bu 2
  253592. \fBPR\fP \fI\%#24005\fP: (\fI\%msteed\fP) issue \fI\%#23776\fP
  253593. @ \fI2015\-05\-21 01:55:34 UTC\fP
  253594. .INDENT 2.0
  253595. .IP \(bu 2
  253596. 701c51ba7a Merge pull request \fI\%#24005\fP from msteed/issue\-23776
  253597. .IP \(bu 2
  253598. 62e67d8ca0 issue \fI\%#23776\fP
  253599. .UNINDENT
  253600. .IP \(bu 2
  253601. \fBISSUE\fP \fI\%#23950\fP: (\fI\%neogenix\fP) iptables state generates a 0 position which is invalid in iptables cli (refs: \fI\%#23996\fP)
  253602. .IP \(bu 2
  253603. \fBPR\fP \fI\%#23996\fP: (\fI\%neogenix\fP) iptables state generates a 0 position which is invalid in iptables cli \fI\%#23950\fP
  253604. @ \fI2015\-05\-20 22:44:27 UTC\fP
  253605. .INDENT 2.0
  253606. .IP \(bu 2
  253607. 17b7c0b741 Merge pull request \fI\%#23996\fP from neogenix/2015.5\-23950
  253608. .IP \(bu 2
  253609. ad417a57c2 fix for \fI\%#23950\fP
  253610. .UNINDENT
  253611. .IP \(bu 2
  253612. \fBPR\fP \fI\%#23994\fP: (\fI\%rallytime\fP) Skip the gpodder pkgrepo test for Ubuntu 15 \- they don\(aqt have vivid ppa up yet
  253613. @ \fI2015\-05\-20 21:18:21 UTC\fP
  253614. .INDENT 2.0
  253615. .IP \(bu 2
  253616. 4cb877307c Merge pull request \fI\%#23994\fP from rallytime/skip_test_ubuntu_15
  253617. .IP \(bu 2
  253618. 9e0ec07d85 Skip the gpodder pkgrepo test \- they don\(aqt have vivid ppa up yet
  253619. .UNINDENT
  253620. .UNINDENT
  253621. .SS Salt 2015.5.3 Release Notes
  253622. .INDENT 0.0
  253623. .TP
  253624. .B release
  253625. 2015\-07\-07
  253626. .UNINDENT
  253627. .sp
  253628. Version 2015.5.3 is a bugfix release for 2015.5.0\&.
  253629. .SS Statistics
  253630. .INDENT 0.0
  253631. .IP \(bu 2
  253632. Total Merges: \fB178\fP
  253633. .IP \(bu 2
  253634. Total Issue References: \fB69\fP
  253635. .IP \(bu 2
  253636. Total PR References: \fB207\fP
  253637. .IP \(bu 2
  253638. 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)
  253639. .UNINDENT
  253640. .SS Changelog for v2015.5.2..v2015.5.3
  253641. .sp
  253642. \fIGenerated at: 2018\-05\-27 21:20:01 UTC\fP
  253643. .INDENT 0.0
  253644. .IP \(bu 2
  253645. \fBPR\fP \fI\%#25109\fP: (\fI\%jfindlay\fP) add 2015.5.3 release notes
  253646. @ \fI2015\-07\-01 19:45:56 UTC\fP
  253647. .INDENT 2.0
  253648. .IP \(bu 2
  253649. f0f512a4da Merge pull request \fI\%#25109\fP from jfindlay/2015.5
  253650. .IP \(bu 2
  253651. 3187d5d5aa add 2015.5.3 release notes
  253652. .UNINDENT
  253653. .IP \(bu 2
  253654. \fBPR\fP \fI\%#25096\fP: (\fI\%jfindlay\fP) Postgres group test
  253655. @ \fI2015\-07\-01 18:48:26 UTC\fP
  253656. .INDENT 2.0
  253657. .IP \(bu 2
  253658. \fBPR\fP \fI\%#24330\fP: (\fI\%jayeshka\fP) adding states/postgres_group unit test case. (refs: \fI\%#25096\fP)
  253659. .IP \(bu 2
  253660. 21709aa483 Merge pull request \fI\%#25096\fP from jfindlay/postgres_group_test
  253661. .IP \(bu 2
  253662. 3c379dc115 declobber postgres state unit test mocking
  253663. .IP \(bu 2
  253664. a162ffa3d8 adding states/postgres_group unit test case.
  253665. .UNINDENT
  253666. .IP \(bu 2
  253667. \fBISSUE\fP \fI\%#25041\fP: (\fI\%wt\fP) REGRESSION: pillar.get of integer fails to render in sls (refs: \fI\%#25085\fP)
  253668. .IP \(bu 2
  253669. \fBPR\fP \fI\%#25085\fP: (\fI\%jfindlay\fP) accept all sources in the file state
  253670. @ \fI2015\-07\-01 18:23:45 UTC\fP
  253671. .INDENT 2.0
  253672. .IP \(bu 2
  253673. 0a846400c6 Merge pull request \fI\%#25085\fP from jfindlay/fix_file
  253674. .IP \(bu 2
  253675. 937a252e16 remove unnecessary file state tests
  253676. .IP \(bu 2
  253677. 6f238e924c integration test file.managed sources
  253678. .IP \(bu 2
  253679. a5978d30c2 iterate an iterable source othwerise list+str it
  253680. .UNINDENT
  253681. .IP \(bu 2
  253682. \fBPR\fP \fI\%#25095\fP: (\fI\%jfindlay\fP) Win groupadd unit tests
  253683. @ \fI2015\-07\-01 18:18:53 UTC\fP
  253684. .INDENT 2.0
  253685. .IP \(bu 2
  253686. \fBPR\fP \fI\%#24207\fP: (\fI\%jayeshka\fP) adding win_groupadd unit test case. (refs: \fI\%#25095\fP)
  253687. .IP \(bu 2
  253688. a98394210e Merge pull request \fI\%#25095\fP from jfindlay/win_groupadd_test
  253689. .IP \(bu 2
  253690. 564dffd14a depend on win libs rather than mocking them
  253691. .IP \(bu 2
  253692. 9b9aeb8628 resolved all erors.
  253693. .IP \(bu 2
  253694. aaf89354c0 adding win_groupadd unit test case.
  253695. .UNINDENT
  253696. .IP \(bu 2
  253697. \fBISSUE\fP \fI\%#21520\fP: (\fI\%jfindlay\fP) sudo.salt_call is broken (refs: \fI\%#25089\fP)
  253698. .IP \(bu 2
  253699. \fBPR\fP \fI\%#25089\fP: (\fI\%jfindlay\fP) fix minion sudo
  253700. @ \fI2015\-07\-01 15:53:16 UTC\fP
  253701. .INDENT 2.0
  253702. .IP \(bu 2
  253703. \fBPR\fP \fI\%#20226\fP: (\fI\%thatch45\fP) Allow sudo priv escalation (refs: \fI\%#25089\fP)
  253704. .IP \(bu 2
  253705. 7c8d2a8656 Merge pull request \fI\%#25089\fP from jfindlay/fix_sudo
  253706. .IP \(bu 2
  253707. d8f91d4a19 add some apprehension to the sudo exec module
  253708. .IP \(bu 2
  253709. a9269c072a adding sudo exec module docs
  253710. .IP \(bu 2
  253711. e4a40b7bd8 comment whitespace in minion config
  253712. .IP \(bu 2
  253713. 44cb167744 adding sudo_user minion config docs
  253714. .IP \(bu 2
  253715. d461060efe adding sudo_user minion config to default
  253716. .UNINDENT
  253717. .IP \(bu 2
  253718. \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)
  253719. .IP \(bu 2
  253720. \fBPR\fP \fI\%#25099\fP: (\fI\%driskell\fP) Fix broken batch results
  253721. @ \fI2015\-07\-01 15:51:29 UTC\fP
  253722. .INDENT 2.0
  253723. .IP \(bu 2
  253724. 4d6078e5dd Merge pull request \fI\%#25099\fP from driskell/patch\-1
  253725. .IP \(bu 2
  253726. 59b23e5f6e Fix broken batch results
  253727. .UNINDENT
  253728. .IP \(bu 2
  253729. \fBPR\fP \fI\%#25083\fP: (\fI\%steverweber\fP) ipmi: get_sensor_data would always fail
  253730. @ \fI2015\-06\-30 20:57:21 UTC\fP
  253731. .INDENT 2.0
  253732. .IP \(bu 2
  253733. 46350796b6 Merge pull request \fI\%#25083\fP from steverweber/fix_ipmi_stat
  253734. .IP \(bu 2
  253735. 836f48c378 include _ in IpmiCommand
  253736. .IP \(bu 2
  253737. 817e434591 get_sensor_data would always fail
  253738. .UNINDENT
  253739. .IP \(bu 2
  253740. \fBPR\fP \fI\%#25067\fP: (\fI\%The\-Loeki\fP) Fix for maxdepth=0 in find
  253741. @ \fI2015\-06\-30 20:54:06 UTC\fP
  253742. .INDENT 2.0
  253743. .IP \(bu 2
  253744. 15f2a4077c Merge pull request \fI\%#25067\fP from The\-Loeki/patch\-1
  253745. .IP \(bu 2
  253746. 61edad3a80 Fix for maxdepth=0 in find
  253747. .UNINDENT
  253748. .IP \(bu 2
  253749. \fBPR\fP \fI\%#25078\fP: (\fI\%terminalmage\fP) Use smaller number for upper limit of mac_user\(aqs _first_avail_uid helper function
  253750. @ \fI2015\-06\-30 20:53:24 UTC\fP
  253751. .INDENT 2.0
  253752. .IP \(bu 2
  253753. 58d933cfa8 Merge pull request \fI\%#25078\fP from terminalmage/fix\-mac\-uid
  253754. .IP \(bu 2
  253755. df2ab7ee2b Use smaller number for upper limit of mac_user\(aqs _first_avail_uid helper function
  253756. .UNINDENT
  253757. .IP \(bu 2
  253758. \fBISSUE\fP \fI\%#24521\fP: (\fI\%multani\fP) State network.managed fails on Debian (Jessie) (refs: \fI\%#25045\fP)
  253759. .IP \(bu 2
  253760. \fBPR\fP \fI\%#25045\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py in 2015.5
  253761. @ \fI2015\-06\-30 17:36:43 UTC\fP
  253762. .INDENT 2.0
  253763. .IP \(bu 2
  253764. ebd6cdc412 Merge pull request \fI\%#25045\fP from garethgreenaway/24521_debian_networking
  253765. .IP \(bu 2
  253766. 6f2a6c940b having proto default to static since it\(aqs needed to build the template.
  253767. .UNINDENT
  253768. .IP \(bu 2
  253769. \fBPR\fP \fI\%#25065\fP: (\fI\%lorengordon\fP) Add download links for 2015.5.1\-3 and 2015.5.2 Windows installers
  253770. @ \fI2015\-06\-30 15:29:31 UTC\fP
  253771. .INDENT 2.0
  253772. .IP \(bu 2
  253773. ae31b279cc Merge pull request \fI\%#25065\fP from lorengordon/update\-windows\-installer\-links
  253774. .IP \(bu 2
  253775. 40a0c132d4 Add download links for 2015.5.1\-3 and 2015.5.2, Fixes \fI\%#25057\fP
  253776. .UNINDENT
  253777. .IP \(bu 2
  253778. \fBPR\fP \fI\%#25052\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253779. @ \fI2015\-06\-30 01:05:00 UTC\fP
  253780. .INDENT 2.0
  253781. .IP \(bu 2
  253782. ddaeb0fb8e Merge pull request \fI\%#25052\fP from basepi/merge\-forward\-2015.5
  253783. .IP \(bu 2
  253784. 2c5e664a58 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253785. .IP \(bu 2
  253786. a7154e7471 Merge pull request \fI\%#25011\fP from notpeter/s3_2014.7_backport
  253787. .INDENT 2.0
  253788. .IP \(bu 2
  253789. 8b8af640f6 Add s3 to protocols for remote source_hash
  253790. .UNINDENT
  253791. .UNINDENT
  253792. .IP \(bu 2
  253793. \fBPR\fP \fI\%#25038\fP: (\fI\%jfindlay\fP) versionadded
  253794. @ \fI2015\-06\-29 19:49:27 UTC\fP
  253795. .INDENT 2.0
  253796. .IP \(bu 2
  253797. \fBPR\fP \fI\%#24747\fP: (\fI\%msciciel\fP) add get_route function to network module (refs: \fI\%#25038\fP)
  253798. .IP \(bu 2
  253799. c7003d4951 Merge pull request \fI\%#25038\fP from jfindlay/versionadded
  253800. .IP \(bu 2
  253801. d6dc6f97b5 versionadded
  253802. .UNINDENT
  253803. .IP \(bu 2
  253804. \fBPR\fP \fI\%#24747\fP: (\fI\%msciciel\fP) add get_route function to network module (refs: \fI\%#25038\fP)
  253805. @ \fI2015\-06\-29 16:51:43 UTC\fP
  253806. .INDENT 2.0
  253807. .IP \(bu 2
  253808. 28c87cab17 Merge pull request \fI\%#24747\fP from msciciel/2015.5
  253809. .IP \(bu 2
  253810. 79b4ec2da8 network module lint fix
  253811. .IP \(bu 2
  253812. 0b6ef784b2 network module: fix for ipv6
  253813. .IP \(bu 2
  253814. f3d184c478 add get_route function to network module
  253815. .UNINDENT
  253816. .IP \(bu 2
  253817. \fBPR\fP \fI\%#24975\fP: (\fI\%ryan\-lane\fP) Fix update of undefined env var in npm module
  253818. @ \fI2015\-06\-29 16:45:05 UTC\fP
  253819. .INDENT 2.0
  253820. .IP \(bu 2
  253821. 46a96773aa Merge pull request \fI\%#24975\fP from lyft/npm\-module\-fix
  253822. .IP \(bu 2
  253823. 6fde58182f Try byte literals rather than unicode strings in the env
  253824. .IP \(bu 2
  253825. c8514de334 Fix update of undefined env var in npm module
  253826. .UNINDENT
  253827. .IP \(bu 2
  253828. \fBPR\fP \fI\%#24986\fP: (\fI\%heewa\fP) Don\(aqt modify empty change
  253829. @ \fI2015\-06\-29 16:44:17 UTC\fP
  253830. .INDENT 2.0
  253831. .IP \(bu 2
  253832. 9cf8550cd8 Merge pull request \fI\%#24986\fP from heewa/fix\-pkg\-hold\-when\-errored
  253833. .IP \(bu 2
  253834. d47a448a80 Don\(aqt modify empty change
  253835. .UNINDENT
  253836. .IP \(bu 2
  253837. \fBISSUE\fP \fI\%#24969\fP: (\fI\%bradthurber\fP) salt\-cloud 2015.5.0: missing azure dependency results in misleading error (refs: \fI\%#24999\fP)
  253838. .IP \(bu 2
  253839. \fBPR\fP \fI\%#24999\fP: (\fI\%rallytime\fP) Provide a less confusing error when cloud provider is misconfigured
  253840. @ \fI2015\-06\-29 16:43:31 UTC\fP
  253841. .INDENT 2.0
  253842. .IP \(bu 2
  253843. ece897d8d6 Merge pull request \fI\%#24999\fP from rallytime/cloud_error_help
  253844. .IP \(bu 2
  253845. 1e81a88625 Clean up
  253846. .IP \(bu 2
  253847. be19a6730e Provide a less confusing error when cloud provider is misconfigured
  253848. .UNINDENT
  253849. .IP \(bu 2
  253850. \fBPR\fP \fI\%#24987\fP: (\fI\%heewa\fP) Don\(aqt try to cache a template when it\(aqs not a file
  253851. @ \fI2015\-06\-29 14:02:59 UTC\fP
  253852. .INDENT 2.0
  253853. .IP \(bu 2
  253854. 4af15cfb90 Merge pull request \fI\%#24987\fP from heewa/fix\-trying\-to\-cache\-no\-file
  253855. .IP \(bu 2
  253856. 9ae0c78ffc Don\(aqt try to cache a template when it\(aqs not a file
  253857. .UNINDENT
  253858. .IP \(bu 2
  253859. \fBPR\fP \fI\%#25022\fP: (\fI\%jfindlay\fP) revise label and milestone documentation
  253860. @ \fI2015\-06\-29 13:51:24 UTC\fP
  253861. .INDENT 2.0
  253862. .IP \(bu 2
  253863. 8eeaddbff4 Merge pull request \fI\%#25022\fP from jfindlay/label_docs
  253864. .IP \(bu 2
  253865. 8575192cc4 revise label and milestone documentation
  253866. .UNINDENT
  253867. .IP \(bu 2
  253868. \fBPR\fP \fI\%#25029\fP: (\fI\%jayeshka\fP) adding redismod unit test case.
  253869. @ \fI2015\-06\-29 13:50:33 UTC\fP
  253870. .INDENT 2.0
  253871. .IP \(bu 2
  253872. 89c2e01ac1 Merge pull request \fI\%#25029\fP from jayeshka/redismod\-unit\-test
  253873. .IP \(bu 2
  253874. e3045be5a9 adding redismod unit test case.
  253875. .UNINDENT
  253876. .IP \(bu 2
  253877. \fBPR\fP \fI\%#24995\fP: (\fI\%rallytime\fP) Fix deprecated pymongo usage causing errors in latest pymongo
  253878. @ \fI2015\-06\-27 22:28:56 UTC\fP
  253879. .INDENT 2.0
  253880. .IP \(bu 2
  253881. \fBPR\fP \fI\%#24175\fP: (\fI\%trevor\-h\fP) fix deprecated pymongo usage causing errors in latest pymongo (refs: \fI\%#24995\fP)
  253882. .IP \(bu 2
  253883. 642525298c Merge pull request \fI\%#24995\fP from rallytime/tops_mongo
  253884. .IP \(bu 2
  253885. a3c1063a37 fix deprecated pymongo usage causing errors in latest pymongo
  253886. .UNINDENT
  253887. .IP \(bu 2
  253888. \fBISSUE\fP \fI\%#24862\fP: (\fI\%dkatsanikakis\fP) gpg.import_key returns error after succesfully completed (refs: \fI\%#24994\fP, \fI\%#24966\fP)
  253889. .IP \(bu 2
  253890. \fBPR\fP \fI\%#24994\fP: (\fI\%garethgreenaway\fP) Another Fix to gpg.py in 2015.5
  253891. @ \fI2015\-06\-27 22:28:15 UTC\fP
  253892. .INDENT 2.0
  253893. .IP \(bu 2
  253894. e9aaa11b68 Merge pull request \fI\%#24994\fP from garethgreenaway/2015_5_24862_gpg_import_key
  253895. .IP \(bu 2
  253896. d2f0d8fa96 variable was referenced before assignment. Just removing the variable and checking the return from distutils.version.LooseVersion directly.
  253897. .UNINDENT
  253898. .IP \(bu 2
  253899. \fBPR\fP \fI\%#24988\fP: (\fI\%jayeshka\fP) adding states/supervisord unit test case.
  253900. @ \fI2015\-06\-27 22:24:42 UTC\fP
  253901. .INDENT 2.0
  253902. .IP \(bu 2
  253903. ebd666e5ee Merge pull request \fI\%#24988\fP from jayeshka/supervisord\-states\-unit\-test
  253904. .IP \(bu 2
  253905. bb0a6d5625 adding states/supervisord unit test case.
  253906. .UNINDENT
  253907. .IP \(bu 2
  253908. \fBPR\fP \fI\%#25007\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253909. @ \fI2015\-06\-26 21:28:57 UTC\fP
  253910. .INDENT 2.0
  253911. .IP \(bu 2
  253912. 0487c3c59b Merge pull request \fI\%#25007\fP from basepi/merge\-forward\-2015.5
  253913. .IP \(bu 2
  253914. 4980fd547b Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253915. .IP \(bu 2
  253916. a11e4c6eea Merge pull request \fI\%#24944\fP from techhat/issue24915
  253917. .INDENT 2.0
  253918. .IP \(bu 2
  253919. 59c3081e49 Double\-check main_cloud_config
  253920. .UNINDENT
  253921. .IP \(bu 2
  253922. d26a5447ba Merge pull request \fI\%#24936\fP from jtand/psutil
  253923. .INDENT 2.0
  253924. .IP \(bu 2
  253925. bdb7a19c36 Fixed ps module to not use depreciated psutil commands
  253926. .UNINDENT
  253927. .UNINDENT
  253928. .IP \(bu 2
  253929. \fBPR\fP \fI\%#25003\fP: (\fI\%jacobhammons\fP) Updated man pages
  253930. @ \fI2015\-06\-26 19:13:41 UTC\fP
  253931. .INDENT 2.0
  253932. .IP \(bu 2
  253933. 91a60e198e Merge pull request \fI\%#25003\fP from jacobhammons/man\-pages
  253934. .IP \(bu 2
  253935. cf97a4ab17 Updated man pages
  253936. .UNINDENT
  253937. .IP \(bu 2
  253938. \fBPR\fP \fI\%#25002\fP: (\fI\%jacobhammons\fP) sphinx html theme updates
  253939. @ \fI2015\-06\-26 18:39:14 UTC\fP
  253940. .INDENT 2.0
  253941. .IP \(bu 2
  253942. a60a2c4222 Merge pull request \fI\%#25002\fP from jacobhammons/doc\-announcements
  253943. .IP \(bu 2
  253944. f88f344a28 sphinx html theme updates
  253945. .UNINDENT
  253946. .IP \(bu 2
  253947. \fBPR\fP \fI\%#24977\fP: (\fI\%rallytime\fP) Only warn about digital ocean deprecation if digital ocean is configured
  253948. @ \fI2015\-06\-25 23:54:46 UTC\fP
  253949. .INDENT 2.0
  253950. .IP \(bu 2
  253951. a791b23ff9 Merge pull request \fI\%#24977\fP from rallytime/do_move_warning
  253952. .IP \(bu 2
  253953. 6b544227ab Only warn about digital ocean deprecation if digital ocean is configured
  253954. .UNINDENT
  253955. .IP \(bu 2
  253956. \fBISSUE\fP \fI\%#24862\fP: (\fI\%dkatsanikakis\fP) gpg.import_key returns error after succesfully completed (refs: \fI\%#24994\fP, \fI\%#24966\fP)
  253957. .IP \(bu 2
  253958. \fBPR\fP \fI\%#24966\fP: (\fI\%garethgreenaway\fP) Fixes to gpg.py in 2015.5
  253959. @ \fI2015\-06\-25 19:58:49 UTC\fP
  253960. .INDENT 2.0
  253961. .IP \(bu 2
  253962. a71c1b7c8b Merge pull request \fI\%#24966\fP from garethgreenaway/2015_5_24862_gpg_import_key
  253963. .IP \(bu 2
  253964. 55eb73b0c9 fixing unit tests.
  253965. .IP \(bu 2
  253966. 80c24be4fe Fixing an issue with the import_key method. Different results depending on which gnupg python module is installed.
  253967. .UNINDENT
  253968. .IP \(bu 2
  253969. \fBISSUE\fP \fI\%#24846\fP: (\fI\%mavenAtHouzz\fP) Memory leak issue in rest_tornado EventListener (refs: \fI\%#24965\fP)
  253970. .IP \(bu 2
  253971. \fBPR\fP \fI\%#24965\fP: (\fI\%jacksontj\fP) Fix memory leak in saltnado
  253972. @ \fI2015\-06\-25 18:48:03 UTC\fP
  253973. .INDENT 2.0
  253974. .IP \(bu 2
  253975. 86221846ac Merge pull request \fI\%#24965\fP from jacksontj/2015.5
  253976. .IP \(bu 2
  253977. 48b5e1653e pylint
  253978. .IP \(bu 2
  253979. 87adca46e0 Fix memory leak in saltnado
  253980. .UNINDENT
  253981. .IP \(bu 2
  253982. \fBPR\fP \fI\%#24948\fP: (\fI\%jfindlay\fP) fix some malformed doc links and anchors
  253983. @ \fI2015\-06\-25 15:51:38 UTC\fP
  253984. .INDENT 2.0
  253985. .IP \(bu 2
  253986. 773c4cf8e4 Merge pull request \fI\%#24948\fP from jfindlay/doc_links
  253987. .IP \(bu 2
  253988. 152a9b2a12 fix some malformed doc links and anchors
  253989. .UNINDENT
  253990. .IP \(bu 2
  253991. \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)
  253992. .IP \(bu 2
  253993. \fBPR\fP \fI\%#24886\fP: (\fI\%anlutro\fP) Be more careful about stripping away root_dir from directory options
  253994. @ \fI2015\-06\-25 15:50:11 UTC\fP
  253995. .INDENT 2.0
  253996. .IP \(bu 2
  253997. 4ebc01e662 Merge pull request \fI\%#24886\fP from alprs/fix\-root_dir_bug
  253998. .IP \(bu 2
  253999. 52ccafded3 os.sep is the correct directory separator constant
  254000. .IP \(bu 2
  254001. 0ecbf261ad Be more careful about stripping away root_dir from directory options
  254002. .UNINDENT
  254003. .IP \(bu 2
  254004. \fBPR\fP \fI\%#24930\fP: (\fI\%jacksontj\fP) Don\(aqt refetch file templates 100% of the time\-\- Performance optimization for templated files
  254005. @ \fI2015\-06\-24 21:22:47 UTC\fP
  254006. .INDENT 2.0
  254007. .IP \(bu 2
  254008. f52f7e1d20 Merge pull request \fI\%#24930\fP from jacksontj/2015.5
  254009. .IP \(bu 2
  254010. 5fb75346ef Only parse the source if we have one
  254011. .IP \(bu 2
  254012. c03a6fa9d1 Add support for sources of managed files to be local
  254013. .IP \(bu 2
  254014. 4cf78a0a95 pylint
  254015. .IP \(bu 2
  254016. d70914e473 Don\(aqt refetch the template 100% of the time\-\- Performance optimization for templated files
  254017. .UNINDENT
  254018. .IP \(bu 2
  254019. \fBPR\fP \fI\%#24935\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254020. @ \fI2015\-06\-24 18:17:54 UTC\fP
  254021. .INDENT 2.0
  254022. .IP \(bu 2
  254023. 925a4d91ba Merge pull request \fI\%#24935\fP from basepi/merge\-forward\-2015.5
  254024. .IP \(bu 2
  254025. 8d8bf3476f Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254026. .IP \(bu 2
  254027. eeb05a1b10 Merge pull request \fI\%#24918\fP from BretFisher/minion\-start\-smartos\-smf\-fix
  254028. .INDENT 2.0
  254029. .IP \(bu 2
  254030. d7bfb0c7fd Smartos smf minion fix
  254031. .UNINDENT
  254032. .UNINDENT
  254033. .IP \(bu 2
  254034. \fBISSUE\fP \fI\%#24826\fP: (\fI\%rakai93\fP) rh_service.py: \(aqint\(aq object has no attribute \(aqstartswith\(aq (refs: \fI\%#24873\fP)
  254035. .IP \(bu 2
  254036. \fBPR\fP \fI\%#24873\fP: (\fI\%jfindlay\fP) convert osrelease grain to str before str op
  254037. @ \fI2015\-06\-24 16:43:08 UTC\fP
  254038. .INDENT 2.0
  254039. .IP \(bu 2
  254040. 4e8ed0d8ed Merge pull request \fI\%#24873\fP from jfindlay/rh_service
  254041. .IP \(bu 2
  254042. febe6efab7 convert osrelease grain to str before str op
  254043. .UNINDENT
  254044. .IP \(bu 2
  254045. \fBPR\fP \fI\%#24923\fP: (\fI\%jayeshka\fP) adding states/status unit test case.
  254046. @ \fI2015\-06\-24 15:50:07 UTC\fP
  254047. .INDENT 2.0
  254048. .IP \(bu 2
  254049. 90819f9c37 Merge pull request \fI\%#24923\fP from jayeshka/status\-states\-unit\-test
  254050. .IP \(bu 2
  254051. baec650674 adding states/status unit test case.
  254052. .UNINDENT
  254053. .IP \(bu 2
  254054. \fBPR\fP \fI\%#24902\fP: (\fI\%cro\fP) Fix minion failover, document same
  254055. @ \fI2015\-06\-24 15:20:43 UTC\fP
  254056. .INDENT 2.0
  254057. .IP \(bu 2
  254058. 2dd24ece71 Merge pull request \fI\%#24902\fP from cro/fixfo2
  254059. .IP \(bu 2
  254060. 90c73ff446 References to documentation.
  254061. .IP \(bu 2
  254062. f0c9204d8b Add references to failover parameters in conf
  254063. .IP \(bu 2
  254064. 9da96a8b95 Docs
  254065. .IP \(bu 2
  254066. e2314f0e49 Move comment.
  254067. .IP \(bu 2
  254068. b9a756ff5f Fix master failover and add documentation for same. Factor in syndics. Syndics will not failover (yet).
  254069. .UNINDENT
  254070. .IP \(bu 2
  254071. \fBPR\fP \fI\%#24926\fP: (\fI\%rallytime\fP) Back\-port \fI\%#22263\fP to 2015.5
  254072. @ \fI2015\-06\-24 15:09:40 UTC\fP
  254073. .INDENT 2.0
  254074. .IP \(bu 2
  254075. \fBPR\fP \fI\%#22263\fP: (\fI\%cachedout\fP) Prevent a load from being written if one already exists (refs: \fI\%#24926\fP)
  254076. .IP \(bu 2
  254077. 087ee09f46 Merge pull request \fI\%#24926\fP from rallytime/bp\-22263
  254078. .IP \(bu 2
  254079. 8c92d9c677 Prevent a load from being written if one already exists
  254080. .UNINDENT
  254081. .IP \(bu 2
  254082. \fBPR\fP \fI\%#24900\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24848\fP to 2015.5
  254083. @ \fI2015\-06\-24 15:09:18 UTC\fP
  254084. .INDENT 2.0
  254085. .IP \(bu 2
  254086. \fBPR\fP \fI\%#24848\fP: (\fI\%nmadhok\fP) Correcting bash code blocks (refs: \fI\%#24900\fP)
  254087. .IP \(bu 2
  254088. b34a74fe89 Merge pull request \fI\%#24900\fP from rallytime/bp\-24848
  254089. .IP \(bu 2
  254090. d2b5456f5d Correcting bash code blocks
  254091. .UNINDENT
  254092. .IP \(bu 2
  254093. \fBPR\fP \fI\%#24899\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24847\fP to 2015.5
  254094. @ \fI2015\-06\-24 15:09:01 UTC\fP
  254095. .INDENT 2.0
  254096. .IP \(bu 2
  254097. \fBPR\fP \fI\%#24847\fP: (\fI\%borutmrak\fP) unset size parameter for lxc.create when backing=zfs (refs: \fI\%#24899\fP)
  254098. .IP \(bu 2
  254099. a546e8e326 Merge pull request \fI\%#24899\fP from rallytime/bp\-24847
  254100. .IP \(bu 2
  254101. 1e4ec7a56b unset size parameter for lxc.create when backing=zfs
  254102. .UNINDENT
  254103. .IP \(bu 2
  254104. \fBPR\fP \fI\%#24898\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24845\fP to 2015.5
  254105. @ \fI2015\-06\-24 15:06:09 UTC\fP
  254106. .INDENT 2.0
  254107. .IP \(bu 2
  254108. \fBPR\fP \fI\%#24845\fP: (\fI\%porterjamesj\fP) fix bug in docker.loaded (refs: \fI\%#24898\fP)
  254109. .IP \(bu 2
  254110. d4dd8d288d Merge pull request \fI\%#24898\fP from rallytime/bp\-24845
  254111. .IP \(bu 2
  254112. 071049ae7a fix bug in docker.loaded
  254113. .UNINDENT
  254114. .IP \(bu 2
  254115. \fBISSUE\fP \fI\%#24799\fP: (\fI\%infestdead\fP) Forced remount because options changed when no options changed (glusterfs) (refs: \fI\%#24839\fP)
  254116. .IP \(bu 2
  254117. \fBPR\fP \fI\%#24897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24839\fP to 2015.5
  254118. @ \fI2015\-06\-24 15:05:35 UTC\fP
  254119. .INDENT 2.0
  254120. .IP \(bu 2
  254121. \fBPR\fP \fI\%#24839\fP: (\fI\%infestdead\fP) fix for issue \fI\%#24799\fP (refs: \fI\%#24897\fP)
  254122. .IP \(bu 2
  254123. 693085520f Merge pull request \fI\%#24897\fP from rallytime/bp\-24839
  254124. .IP \(bu 2
  254125. f3b20d5445 fix for issue \fI\%#24799\fP
  254126. .UNINDENT
  254127. .IP \(bu 2
  254128. \fBPR\fP \fI\%#24891\fP: (\fI\%jayeshka\fP) adding states/ssh_known_hosts unit test case.
  254129. @ \fI2015\-06\-23 16:46:58 UTC\fP
  254130. .INDENT 2.0
  254131. .IP \(bu 2
  254132. 1650233be9 Merge pull request \fI\%#24891\fP from jayeshka/ssh_known_hosts\-states\-unit\-test
  254133. .IP \(bu 2
  254134. ef1347f2b3 adding states/ssh_known_hosts unit test case.
  254135. .UNINDENT
  254136. .IP \(bu 2
  254137. \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)
  254138. .IP \(bu 2
  254139. \fBPR\fP \fI\%#24874\fP: (\fI\%dkiser\fP) Fix for salt\-cloud when ssh key used to auth and using sudo.
  254140. @ \fI2015\-06\-22 23:46:08 UTC\fP
  254141. .INDENT 2.0
  254142. .IP \(bu 2
  254143. c32aae96aa Merge pull request \fI\%#24874\fP from dkiser/salt\-cloud\-24870
  254144. .IP \(bu 2
  254145. 6c31143b22 Fix key error for the PR to fix \fI\%#24870\fP\&.
  254146. .IP \(bu 2
  254147. bdcf7d88c1 Fix pylint for \fI\%#24874\fP\&.
  254148. .IP \(bu 2
  254149. 8f66d193e0 Fix for salt\-cloud when ssh key used to auth and using sudo.
  254150. .UNINDENT
  254151. .IP \(bu 2
  254152. \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)
  254153. .IP \(bu 2
  254154. \fBPR\fP \fI\%#24880\fP: (\fI\%dkiser\fP) Fix to allow password for salt\-cloud to be set outside of a vm specif…
  254155. @ \fI2015\-06\-22 23:44:59 UTC\fP
  254156. .INDENT 2.0
  254157. .IP \(bu 2
  254158. ddaa21c0ae Merge pull request \fI\%#24880\fP from dkiser/salt\-cloud\-24871
  254159. .IP \(bu 2
  254160. 4f6c035673 Fix to allow password for salt\-cloud to be set outside of a vm specific context.
  254161. .UNINDENT
  254162. .IP \(bu 2
  254163. \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
  254164. @ \fI2015\-06\-22 20:37:13 UTC\fP
  254165. .INDENT 2.0
  254166. .IP \(bu 2
  254167. 3902b162a9 Merge pull request \fI\%#24852\fP from pruiz/issue\-24851
  254168. .IP \(bu 2
  254169. 73adb1df50 Fix regular expression so it now matches packages with \(aq.\(aq or \(aq\-\(aq at pkg name.
  254170. .UNINDENT
  254171. .IP \(bu 2
  254172. \fBPR\fP \fI\%#24861\fP: (\fI\%jayeshka\fP) adding states/ssh_auth unit test case.
  254173. @ \fI2015\-06\-22 16:20:01 UTC\fP
  254174. .INDENT 2.0
  254175. .IP \(bu 2
  254176. 6c5b788afd Merge pull request \fI\%#24861\fP from jayeshka/ssh_auth\-states\-unit\-test
  254177. .IP \(bu 2
  254178. e5d7b0de80 adding states/ssh_auth unit test case.
  254179. .UNINDENT
  254180. .IP \(bu 2
  254181. \fBISSUE\fP \fI\%#23478\fP: (\fI\%calvinhp\fP) grains.get virtual reports "physical" on bhyve FreeBSD VM (refs: \fI\%#24824\fP)
  254182. .IP \(bu 2
  254183. \fBPR\fP \fI\%#24824\fP: (\fI\%kev009\fP) Detect bhyve virtual type for FreeBSD guests
  254184. @ \fI2015\-06\-22 15:24:35 UTC\fP
  254185. .INDENT 2.0
  254186. .IP \(bu 2
  254187. 9e3321c18e Merge pull request \fI\%#24824\fP from kev009/grains\-bhyve\-bsd
  254188. .IP \(bu 2
  254189. a2262097a1 Detect bhyve virtual type for freebsd guests
  254190. .UNINDENT
  254191. .IP \(bu 2
  254192. \fBISSUE\fP \fI\%#24746\fP: (\fI\%anlutro\fP) state.apply doesn\(aqt seem to work (refs: \fI\%#24795\fP)
  254193. .IP \(bu 2
  254194. \fBPR\fP \fI\%#24795\fP: (\fI\%anlutro\fP) Fix state.apply for salt\-ssh
  254195. @ \fI2015\-06\-22 15:23:57 UTC\fP
  254196. .INDENT 2.0
  254197. .IP \(bu 2
  254198. 7b07ef9f44 Merge pull request \fI\%#24795\fP from alprs/fix\-salt_ssh_state_apply
  254199. .IP \(bu 2
  254200. 905840b1fa Fix state.apply for salt\-ssh
  254201. .UNINDENT
  254202. .IP \(bu 2
  254203. \fBPR\fP \fI\%#24832\fP: (\fI\%jacksontj\fP) Don\(aqt incur a "_load_all" of the lazy_loader while looking for mod_init.
  254204. @ \fI2015\-06\-22 15:17:10 UTC\fP
  254205. .INDENT 2.0
  254206. .IP \(bu 2
  254207. \fBPR\fP \fI\%#20540\fP: (\fI\%jacksontj\fP) Loader nomerge: Don\(aqt allow modules to "merge" (refs: \fI\%#24832\fP)
  254208. .IP \(bu 2
  254209. \fBPR\fP \fI\%#20481\fP: (\fI\%jacksontj\fP) Add submodule support to LazyLoader (refs: \fI\%#20540\fP)
  254210. .IP \(bu 2
  254211. \fBPR\fP \fI\%#20473\fP: (\fI\%jacksontj\fP) Add "disabled" support (refs: \fI\%#20481\fP)
  254212. .IP \(bu 2
  254213. \fBPR\fP \fI\%#20274\fP: (\fI\%jacksontj\fP) Loader overhaul to LazyLoader (refs: \fI\%#20473\fP)
  254214. .IP \(bu 2
  254215. \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)
  254216. .IP \(bu 2
  254217. 31d4c131e9 Merge pull request \fI\%#24832\fP from jacksontj/2015.5
  254218. .IP \(bu 2
  254219. cfa7c0a699 pylint
  254220. .IP \(bu 2
  254221. be18439736 Don\(aqt incur a "_load_all" of the lazy_loader while looking for mod_init.
  254222. .UNINDENT
  254223. .IP \(bu 2
  254224. \fBISSUE\fP \fI\%#14666\fP: (\fI\%luciddr34m3r\fP) salt\-cloud GoGrid exception when using map file (refs: \fI\%#24811\fP)
  254225. .IP \(bu 2
  254226. \fBPR\fP \fI\%#24834\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24811\fP to 2015.5
  254227. @ \fI2015\-06\-19 18:43:49 UTC\fP
  254228. .INDENT 2.0
  254229. .IP \(bu 2
  254230. \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)
  254231. .IP \(bu 2
  254232. 2d8148fb4d Merge pull request \fI\%#24834\fP from rallytime/bp\-24811
  254233. .IP \(bu 2
  254234. e2684ecf0b Add notes to map and gogrid docs \-\- don\(aqt use \-P with map files
  254235. .UNINDENT
  254236. .IP \(bu 2
  254237. \fBPR\fP \fI\%#24790\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24741\fP to 2015.5
  254238. @ \fI2015\-06\-19 17:25:58 UTC\fP
  254239. .INDENT 2.0
  254240. .IP \(bu 2
  254241. \fBPR\fP \fI\%#24741\fP: (\fI\%CameronNemo\fP) Improve Upstart enable/disable handling (refs: \fI\%#24790\fP)
  254242. .IP \(bu 2
  254243. d2edb63cff Merge pull request \fI\%#24790\fP from rallytime/bp\-24741
  254244. .IP \(bu 2
  254245. a54245f080 Add missing import
  254246. .IP \(bu 2
  254247. 4ce6370d6e salt.modules.upstart: fix lint errors
  254248. .IP \(bu 2
  254249. aec53ec32a Improve Upstart enable/disable handling
  254250. .UNINDENT
  254251. .IP \(bu 2
  254252. \fBPR\fP \fI\%#24789\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24717\fP to 2015.5
  254253. @ \fI2015\-06\-19 17:17:00 UTC\fP
  254254. .INDENT 2.0
  254255. .IP \(bu 2
  254256. \fBPR\fP \fI\%#24717\fP: (\fI\%gthb\fP) virtualenv.managed: document user and no_chown (refs: \fI\%#24789\fP)
  254257. .IP \(bu 2
  254258. 645e62a43c Merge pull request \fI\%#24789\fP from rallytime/bp\-24717
  254259. .IP \(bu 2
  254260. 95ac4eba13 virtualenv.managed: document user and no_chown
  254261. .UNINDENT
  254262. .IP \(bu 2
  254263. \fBPR\fP \fI\%#24823\fP: (\fI\%jayeshka\fP) adding states/splunk_search unit test case.
  254264. @ \fI2015\-06\-19 17:14:12 UTC\fP
  254265. .INDENT 2.0
  254266. .IP \(bu 2
  254267. 0a6c70f062 Merge pull request \fI\%#24823\fP from jayeshka/splunk_search\-states\-unit\-test
  254268. .IP \(bu 2
  254269. 98831a8cb0 adding states/splunk_search unit test case.
  254270. .UNINDENT
  254271. .IP \(bu 2
  254272. \fBPR\fP \fI\%#24809\fP: (\fI\%jodv\fP) Correctly create single item list for failover master type with string value for master opt
  254273. @ \fI2015\-06\-19 15:22:20 UTC\fP
  254274. .INDENT 2.0
  254275. .IP \(bu 2
  254276. 4c5a708599 Merge pull request \fI\%#24809\fP from jodv/single_item_master_list
  254277. .IP \(bu 2
  254278. 18ceebc77f single item list vs. list of characters
  254279. .UNINDENT
  254280. .IP \(bu 2
  254281. \fBPR\fP \fI\%#24802\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254282. @ \fI2015\-06\-18 20:11:58 UTC\fP
  254283. .INDENT 2.0
  254284. .IP \(bu 2
  254285. ae05e70e94 Merge pull request \fI\%#24802\fP from basepi/merge\-forward\-2015.5
  254286. .IP \(bu 2
  254287. 5b7a65d6d9 Merge pull request \fI\%#19\fP from twangboy/merge\-forward\-fixes
  254288. .INDENT 2.0
  254289. .IP \(bu 2
  254290. 98e7e90299 Fixed test failures for Colton
  254291. .UNINDENT
  254292. .IP \(bu 2
  254293. b949856ae6 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254294. .INDENT 2.0
  254295. .IP \(bu 2
  254296. 4281dfff0b Merge pull request \fI\%#24780\fP from nmadhok/backport\-2014.7\-24777
  254297. .INDENT 2.0
  254298. .IP \(bu 2
  254299. c53b0d9a22 Backporting PR \fI\%#24777\fP to 2014.7 branch
  254300. .UNINDENT
  254301. .IP \(bu 2
  254302. f3c5cb2d41 Merge pull request \fI\%#24769\fP from msteed/issue\-21318
  254303. .INDENT 2.0
  254304. .IP \(bu 2
  254305. f40a9d5cc0 Fix stacktrace in get_cli_returns()
  254306. .UNINDENT
  254307. .IP \(bu 2
  254308. 59db24602f Merge pull request \fI\%#24690\fP from twangboy/fix_17041
  254309. .INDENT 2.0
  254310. .IP \(bu 2
  254311. 7a015389af Added additional reporting
  254312. .IP \(bu 2
  254313. d84ad5d519 Fixed capitalization... Failed and Already
  254314. .IP \(bu 2
  254315. e9552455c4 Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_17041
  254316. .IP \(bu 2
  254317. 144bff2f67 Report powershell output instead of error
  254318. .UNINDENT
  254319. .UNINDENT
  254320. .IP \(bu 2
  254321. \fBPR\fP \fI\%saltstack/salt#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case. (refs: \fI\%#24798\fP)
  254322. .UNINDENT
  254323. .IP \(bu 2
  254324. \fBPR\fP \fI\%#24798\fP: (\fI\%justinta\fP) Revert "adding states/postgres_database unit test case."
  254325. @ \fI2015\-06\-18 17:56:17 UTC\fP
  254326. .INDENT 2.0
  254327. .IP \(bu 2
  254328. daa76c34e4 Merge pull request \fI\%#24798\fP from saltstack/revert\-24329\-postgres_database\-states\-unit\-test
  254329. .IP \(bu 2
  254330. 179ce03d93 Revert "adding states/postgres_database unit test case."
  254331. .UNINDENT
  254332. .IP \(bu 2
  254333. \fBPR\fP \fI\%#24791\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24749\fP to 2015.5
  254334. @ \fI2015\-06\-18 17:43:15 UTC\fP
  254335. .INDENT 2.0
  254336. .IP \(bu 2
  254337. \fBPR\fP \fI\%#24749\fP: (\fI\%obestwalter\fP) add windows specfic default for multiprocessing (refs: \fI\%#24791\fP)
  254338. .IP \(bu 2
  254339. 7073a9f850 Merge pull request \fI\%#24791\fP from rallytime/bp\-24749
  254340. .IP \(bu 2
  254341. be43b2b394 add windows specfic default for multiprocessing
  254342. .UNINDENT
  254343. .IP \(bu 2
  254344. \fBPR\fP \fI\%#24792\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24757\fP to 2015.5
  254345. @ \fI2015\-06\-18 15:58:35 UTC\fP
  254346. .INDENT 2.0
  254347. .IP \(bu 2
  254348. \fBPR\fP \fI\%#24757\fP: (\fI\%cachedout\fP) Fix loader call in pyobjects (refs: \fI\%#24792\fP)
  254349. .IP \(bu 2
  254350. \fBPR\fP \fI\%#24668\fP: (\fI\%grischa\fP) enable virtual package names in pyobjects renderer (refs: \fI\%#24721\fP, \fI\%#24757\fP)
  254351. .IP \(bu 2
  254352. 1a158e8a3b Merge pull request \fI\%#24792\fP from rallytime/bp\-24757
  254353. .IP \(bu 2
  254354. 6c804f0789 Fix loader call in pyobjects
  254355. .UNINDENT
  254356. .IP \(bu 2
  254357. \fBPR\fP \fI\%#24768\fP: (\fI\%jfindlay\fP) fix yum versionlock on RHEL/CentOS 5, disable corresponding test
  254358. @ \fI2015\-06\-18 15:13:12 UTC\fP
  254359. .INDENT 2.0
  254360. .IP \(bu 2
  254361. 0f9298263b Merge pull request \fI\%#24768\fP from jfindlay/pkg_mod
  254362. .IP \(bu 2
  254363. 7a26c2b5b9 disable pkg.hold test for RHEL/CentOS 5
  254364. .IP \(bu 2
  254365. 4cacd93c22 use correct yum versionlock pkg name on centos 5
  254366. .UNINDENT
  254367. .IP \(bu 2
  254368. \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)
  254369. .INDENT 2.0
  254370. .IP \(bu 2
  254371. \fBPR\fP \fI\%#24779\fP: (\fI\%nmadhok\fP) Backporting Changes to 2014.7 branch (refs: \fI\%#24777\fP)
  254372. .UNINDENT
  254373. .IP \(bu 2
  254374. \fBPR\fP \fI\%#24778\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2015.2 branch (refs: \fI\%#24777\fP)
  254375. @ \fI2015\-06\-18 14:53:04 UTC\fP
  254376. .INDENT 2.0
  254377. .IP \(bu 2
  254378. \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)
  254379. .IP \(bu 2
  254380. 39f088a74c Merge pull request \fI\%#24778\fP from nmadhok/backport\-2015.2\-24777
  254381. .IP \(bu 2
  254382. ae3701f639 Backporting PR \fI\%#24777\fP to 2015.2 branch
  254383. .UNINDENT
  254384. .IP \(bu 2
  254385. \fBPR\fP \fI\%#24774\fP: (\fI\%zefrog\fP) Fix lxc lvname parameter command
  254386. @ \fI2015\-06\-18 14:49:06 UTC\fP
  254387. .INDENT 2.0
  254388. .IP \(bu 2
  254389. 2a4f65f3f7 Merge pull request \fI\%#24774\fP from zefrog/fix\-lxc\-lvname\-param
  254390. .IP \(bu 2
  254391. 21e0cd4a5e Fixed typo in lxc module: lvname parameter typo
  254392. .IP \(bu 2
  254393. 283d86ec12 Fixed bug in lxc module: lvname using wrong parameter in cmd
  254394. .UNINDENT
  254395. .IP \(bu 2
  254396. \fBPR\fP \fI\%#24782\fP: (\fI\%jayeshka\fP) adding states/slack unit test case.
  254397. @ \fI2015\-06\-18 14:33:55 UTC\fP
  254398. .INDENT 2.0
  254399. .IP \(bu 2
  254400. fd7339014b Merge pull request \fI\%#24782\fP from jayeshka/slack\-states\-unit\-test
  254401. .IP \(bu 2
  254402. e2b6214764 adding states/slack unit test case.
  254403. .UNINDENT
  254404. .IP \(bu 2
  254405. \fBISSUE\fP \fI\%#24770\fP: (\fI\%jacksontj\fP) \fIRequisite\fP and \fIRequisite_in\fP don\(aqt play nice together (refs: \fI\%#24771\fP)
  254406. .IP \(bu 2
  254407. \fBPR\fP \fI\%#24771\fP: (\fI\%jacksontj\fP) Always extend requisites, instead of replacing them
  254408. @ \fI2015\-06\-18 14:29:09 UTC\fP
  254409. .INDENT 2.0
  254410. .IP \(bu 2
  254411. c9c90af512 Merge pull request \fI\%#24771\fP from jacksontj/2015.5
  254412. .IP \(bu 2
  254413. b1211c5422 Re\-enable tests for complex prereq and prereq_in
  254414. .IP \(bu 2
  254415. 378f6bfc36 Only merge when the merge is of requisites
  254416. .UNINDENT
  254417. .IP \(bu 2
  254418. \fBPR\fP \fI\%#24766\fP: (\fI\%msteed\fP) Remove doc references to obsolete minion opt
  254419. @ \fI2015\-06\-17 21:36:55 UTC\fP
  254420. .INDENT 2.0
  254421. .IP \(bu 2
  254422. 5fe4de8f62 Merge pull request \fI\%#24766\fP from msteed/undoc\-dns_check
  254423. .IP \(bu 2
  254424. f92a769d35 Remove doc references to obsolete minion opt
  254425. .UNINDENT
  254426. .IP \(bu 2
  254427. \fBPR\fP \fI\%#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case.
  254428. @ \fI2015\-06\-17 19:11:02 UTC\fP
  254429. .INDENT 2.0
  254430. .IP \(bu 2
  254431. a407ab7c51 Merge pull request \fI\%#24329\fP from jayeshka/postgres_database\-states\-unit\-test
  254432. .IP \(bu 2
  254433. ee06f1ad57 adding states/postgres_database unit test case.
  254434. .UNINDENT
  254435. .IP \(bu 2
  254436. \fBISSUE\fP \fI\%#24560\fP: (\fI\%hydrosine\fP) Documentation missing on parameter (refs: \fI\%#24632\fP)
  254437. .IP \(bu 2
  254438. \fBISSUE\fP \fI\%#24547\fP: (\fI\%dragonpaw\fP) Artifactory docs say module is \(aqjboss7\(aq. (refs: \fI\%#24632\fP)
  254439. .IP \(bu 2
  254440. \fBISSUE\fP \fI\%#24375\fP: (\fI\%companykitchen\-dev\fP) Custom grain won\(aqt sync under any circumstances (refs: \fI\%#24632\fP)
  254441. .IP \(bu 2
  254442. \fBISSUE\fP \fI\%#24275\fP: (\fI\%kartiksubbarao\fP) augeas issue with apache and recognizing changes that have been already made (refs: \fI\%#24632\fP)
  254443. .IP \(bu 2
  254444. \fBISSUE\fP \fI\%#24163\fP: (\fI\%tbaker57\fP) enable_gpu_grains default value confusion (refs: \fI\%#24632\fP)
  254445. .IP \(bu 2
  254446. \fBPR\fP \fI\%#24632\fP: (\fI\%jacobhammons\fP) Doc bug fixes
  254447. @ \fI2015\-06\-17 18:40:02 UTC\fP
  254448. .INDENT 2.0
  254449. .IP \(bu 2
  254450. 3ff6eff546 Merge pull request \fI\%#24632\fP from jacobhammons/bug\-fixes
  254451. .IP \(bu 2
  254452. 7c52012e31 Fixed typos
  254453. .IP \(bu 2
  254454. c7cdd416a2 Doc bug fixes Refs \fI\%#24547\fP Refs \fI\%#24275\fP Refs \fI\%#24375\fP Refs \fI\%#24560\fP Refs \fI\%#24163\fP
  254455. .UNINDENT
  254456. .IP \(bu 2
  254457. \fBISSUE\fP \fI\%#24198\fP: (\fI\%ahammond\fP) salt\-call event.send doesn\(aqt send events from minion (refs: \fI\%#24607\fP)
  254458. .IP \(bu 2
  254459. \fBPR\fP \fI\%#24607\fP: (\fI\%garethgreenaway\fP) fixes to minion.py
  254460. @ \fI2015\-06\-17 18:16:42 UTC\fP
  254461. .INDENT 2.0
  254462. .IP \(bu 2
  254463. 9995f64428 Merge pull request \fI\%#24607\fP from garethgreenaway/2015_5_sending_events_multi_master
  254464. .IP \(bu 2
  254465. 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\&.
  254466. .UNINDENT
  254467. .IP \(bu 2
  254468. \fBPR\fP \fI\%#24755\fP: (\fI\%rallytime\fP) Remove SALT_CLOUD_REQS from setup.py
  254469. @ \fI2015\-06\-17 17:42:25 UTC\fP
  254470. .INDENT 2.0
  254471. .IP \(bu 2
  254472. bf2dd94389 Merge pull request \fI\%#24755\fP from rallytime/fix_setup_15
  254473. .IP \(bu 2
  254474. 48769a544d Remove SALT_CLOUD_REQS from setup.py
  254475. .UNINDENT
  254476. .IP \(bu 2
  254477. \fBPR\fP \fI\%#24740\fP: (\fI\%rallytime\fP) Backport \fI\%#24720\fP to 2015.5
  254478. @ \fI2015\-06\-17 16:43:37 UTC\fP
  254479. .INDENT 2.0
  254480. .IP \(bu 2
  254481. \fBPR\fP \fI\%#24720\fP: (\fI\%TheScriptSage\fP) Issue 24621 \- AD/LDAP Group Auth Issue (refs: \fI\%#24740\fP)
  254482. .IP \(bu 2
  254483. 3d53d79476 Merge pull request \fI\%#24740\fP from rallytime/bp\-24720
  254484. .IP \(bu 2
  254485. a9bcdb5b77 Updating master.py to properly check against groups when user is only authed against group. Tested against unit.auth_test.
  254486. .UNINDENT
  254487. .IP \(bu 2
  254488. \fBPR\fP \fI\%#24723\fP: (\fI\%rallytime\fP) Back\-port \fI\%#20124\fP to 2015.5
  254489. @ \fI2015\-06\-17 16:43:20 UTC\fP
  254490. .INDENT 2.0
  254491. .IP \(bu 2
  254492. \fBPR\fP \fI\%#20124\fP: (\fI\%cgtx\fP) add init system to default grains (refs: \fI\%#24723\fP)
  254493. .IP \(bu 2
  254494. ac2851be55 Merge pull request \fI\%#24723\fP from rallytime/bp\-20124
  254495. .IP \(bu 2
  254496. 4d0061b832 fix infinite loop introduced by \fI\%#20124\fP when the init system is not in the supported_inits list
  254497. .IP \(bu 2
  254498. 0c7fa0fca2 Optimizations for \fI\%#20124\fP
  254499. .IP \(bu 2
  254500. f353454327 add init system to default grains (resolve \fI\%#20124\fP)
  254501. .UNINDENT
  254502. .IP \(bu 2
  254503. \fBPR\fP \fI\%#24754\fP: (\fI\%anlutro\fP) salt\-cloud documentation \- Add information about linode location
  254504. @ \fI2015\-06\-17 16:04:48 UTC\fP
  254505. .INDENT 2.0
  254506. .IP \(bu 2
  254507. 78cd09b6e9 Merge pull request \fI\%#24754\fP from alprs/docs\-add_linode_location_option
  254508. .IP \(bu 2
  254509. d88e071e98 add information about linode location
  254510. .UNINDENT
  254511. .IP \(bu 2
  254512. \fBPR\fP \fI\%#24748\fP: (\fI\%jayeshka\fP) adding states/serverdensity_device unit test case.
  254513. @ \fI2015\-06\-17 15:39:07 UTC\fP
  254514. .INDENT 2.0
  254515. .IP \(bu 2
  254516. d5554f76ec Merge pull request \fI\%#24748\fP from jayeshka/serverdensity_device\-states\-unit\-test
  254517. .IP \(bu 2
  254518. 1a4c241050 adding states/serverdensity_device unit test case.
  254519. .UNINDENT
  254520. .IP \(bu 2
  254521. \fBPR\fP \fI\%#24739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24735\fP to 2015.5
  254522. @ \fI2015\-06\-17 15:16:47 UTC\fP
  254523. .INDENT 2.0
  254524. .IP \(bu 2
  254525. \fBPR\fP \fI\%#24735\fP: (\fI\%notpeter\fP) Add 2015.5 codename to version numbers docs (refs: \fI\%#24739\fP)
  254526. .IP \(bu 2
  254527. 0b7e7ef879 Merge pull request \fI\%#24739\fP from rallytime/bp\-24735
  254528. .IP \(bu 2
  254529. 64c565d9be Add .0 to version number
  254530. .IP \(bu 2
  254531. 5ed801b98f Add codenames for 2015.5 and future versions. Trailing newline.
  254532. .UNINDENT
  254533. .IP \(bu 2
  254534. \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)
  254535. .IP \(bu 2
  254536. \fBPR\fP \fI\%#24732\fP: (\fI\%msteed\fP) Fix stacktrace when \fI\-\-summary\fP is used
  254537. @ \fI2015\-06\-17 03:27:57 UTC\fP
  254538. .INDENT 2.0
  254539. .IP \(bu 2
  254540. c8713f2d00 Merge pull request \fI\%#24732\fP from msteed/issue\-24111
  254541. .IP \(bu 2
  254542. 54b33dd359 Fix stacktrace when \-\-summary is used
  254543. .UNINDENT
  254544. .IP \(bu 2
  254545. \fBPR\fP \fI\%#24721\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24668\fP to 2015.5
  254546. @ \fI2015\-06\-17 03:23:47 UTC\fP
  254547. .INDENT 2.0
  254548. .IP \(bu 2
  254549. \fBPR\fP \fI\%#24668\fP: (\fI\%grischa\fP) enable virtual package names in pyobjects renderer (refs: \fI\%#24721\fP, \fI\%#24757\fP)
  254550. .IP \(bu 2
  254551. 70d37816bf Merge pull request \fI\%#24721\fP from rallytime/bp\-24668
  254552. .IP \(bu 2
  254553. 68fb5af970 fixing other test
  254554. .IP \(bu 2
  254555. ba4f262b9c fixing text for virtual support in pyobjects
  254556. .IP \(bu 2
  254557. b349d91a5f enable virtual package names in pyobjects renderer
  254558. .UNINDENT
  254559. .IP \(bu 2
  254560. \fBISSUE\fP \fI\%#21923\fP: (\fI\%Fluro\fP) Salt cloud not running provisioning script as root (refs: \fI\%#24718\fP)
  254561. .IP \(bu 2
  254562. \fBISSUE\fP \fI\%#17241\fP: (\fI\%hasues\fP) Salt\-Cloud for vSphere needs additional documentation (refs: \fI\%#24718\fP)
  254563. .IP \(bu 2
  254564. \fBPR\fP \fI\%#24718\fP: (\fI\%rallytime\fP) Added some missing config documentation to the vsphere driver
  254565. @ \fI2015\-06\-17 03:19:35 UTC\fP
  254566. .INDENT 2.0
  254567. .IP \(bu 2
  254568. 1b9d6895c7 Merge pull request \fI\%#24718\fP from rallytime/update_vsphere_docs
  254569. .IP \(bu 2
  254570. bfdebb6e18 Added some missing config documentation to the vsphere driver
  254571. .UNINDENT
  254572. .IP \(bu 2
  254573. \fBPR\fP \fI\%#24714\fP: (\fI\%rallytime\fP) Remove cloud\-requirements.txt
  254574. @ \fI2015\-06\-17 03:17:04 UTC\fP
  254575. .INDENT 2.0
  254576. .IP \(bu 2
  254577. 64857c706d Merge pull request \fI\%#24714\fP from rallytime/remove_cloud_reqs_15
  254578. .IP \(bu 2
  254579. 67b796d01e Remove cloud\-requirements.txt
  254580. .UNINDENT
  254581. .IP \(bu 2
  254582. \fBISSUE\fP \fI\%#24439\fP: (\fI\%bechtoldt\fP) Add tornado version to versions report (refs: \fI\%#24733\fP)
  254583. .IP \(bu 2
  254584. \fBPR\fP \fI\%#24733\fP: (\fI\%msteed\fP) Include Tornado in versions report
  254585. @ \fI2015\-06\-17 03:13:53 UTC\fP
  254586. .INDENT 2.0
  254587. .IP \(bu 2
  254588. f96b1d68cd Merge pull request \fI\%#24733\fP from msteed/issue\-24439
  254589. .IP \(bu 2
  254590. 76cfef05ec Include Tornado in versions report
  254591. .UNINDENT
  254592. .IP \(bu 2
  254593. \fBPR\fP \fI\%#24737\fP: (\fI\%jacksontj\fP) Move AES command logging to trace
  254594. @ \fI2015\-06\-17 01:48:11 UTC\fP
  254595. .INDENT 2.0
  254596. .IP \(bu 2
  254597. a861fe0f4f Merge pull request \fI\%#24737\fP from jacksontj/2015.5
  254598. .IP \(bu 2
  254599. a4ed41ae82 Move AES command logging to trace
  254600. .UNINDENT
  254601. .IP \(bu 2
  254602. \fBPR\fP \fI\%#24724\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254603. @ \fI2015\-06\-16 22:46:27 UTC\fP
  254604. .INDENT 2.0
  254605. .IP \(bu 2
  254606. 0d2dc46648 Merge pull request \fI\%#24724\fP from basepi/merge\-forward\-2015.5
  254607. .IP \(bu 2
  254608. 4641028464 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254609. .IP \(bu 2
  254610. a18dadad71 Merge pull request \fI\%#24646\fP from twangboy/fix_24196
  254611. .INDENT 2.0
  254612. .IP \(bu 2
  254613. a208e1d60f Fixed user.present on existing user
  254614. .UNINDENT
  254615. .UNINDENT
  254616. .IP \(bu 2
  254617. \fBPR\fP \fI\%#24701\fP: (\fI\%jayeshka\fP) adding states/selinux unit test case.
  254618. @ \fI2015\-06\-16 15:27:29 UTC\fP
  254619. .INDENT 2.0
  254620. .IP \(bu 2
  254621. 3d33fe7676 Merge pull request \fI\%#24701\fP from jayeshka/selinux\-states\-unit\-test
  254622. .IP \(bu 2
  254623. 0c136fd9c2 adding states/selinux unit test case.
  254624. .UNINDENT
  254625. .IP \(bu 2
  254626. \fBPR\fP \fI\%#24687\fP: (\fI\%cachedout\fP) Note about minimum worker_threads
  254627. @ \fI2015\-06\-15 20:46:23 UTC\fP
  254628. .INDENT 2.0
  254629. .IP \(bu 2
  254630. 2e287a9e33 Merge pull request \fI\%#24687\fP from cachedout/min_worker_threads
  254631. .IP \(bu 2
  254632. b7bb7eaeb2 Note about minimum worker_threads
  254633. .UNINDENT
  254634. .IP \(bu 2
  254635. \fBPR\fP \fI\%#24688\fP: (\fI\%cachedout\fP) Update AUTHORS
  254636. @ \fI2015\-06\-15 20:46:03 UTC\fP
  254637. .INDENT 2.0
  254638. .IP \(bu 2
  254639. 432478ccb7 Merge pull request \fI\%#24688\fP from cachedout/update_authors
  254640. .IP \(bu 2
  254641. 3f6880e291 Better email
  254642. .IP \(bu 2
  254643. 6c7b773eae Update AUTHORS
  254644. .UNINDENT
  254645. .IP \(bu 2
  254646. \fBISSUE\fP \fI\%#22385\fP: (\fI\%cachedout\fP) States which require unavailable modules should display the reason (refs: \fI\%#24649\fP)
  254647. .IP \(bu 2
  254648. \fBPR\fP \fI\%#24649\fP: (\fI\%cachedout\fP) Improved error reporting for failed states
  254649. @ \fI2015\-06\-15 16:04:20 UTC\fP
  254650. .INDENT 2.0
  254651. .IP \(bu 2
  254652. 9a2b50d59f Merge pull request \fI\%#24649\fP from cachedout/issue_22385
  254653. .IP \(bu 2
  254654. b9fe792534 States will now return the reason behind failure if a module could not be loaded
  254655. .UNINDENT
  254656. .IP \(bu 2
  254657. \fBPR\fP \fI\%#24673\fP: (\fI\%jayeshka\fP) adding states/schedule unit test case.
  254658. @ \fI2015\-06\-15 15:24:52 UTC\fP
  254659. .INDENT 2.0
  254660. .IP \(bu 2
  254661. 66e9e16753 Merge pull request \fI\%#24673\fP from jayeshka/schedule\-states\-unit\-test
  254662. .IP \(bu 2
  254663. 54aaaa5f12 adding states/schedule unit test case.
  254664. .UNINDENT
  254665. .IP \(bu 2
  254666. \fBISSUE\fP \fI\%#24661\fP: (\fI\%kartiksubbarao\fP) augeas.change doesn\(aqt support setting empty values (refs: \fI\%#24663\fP)
  254667. .IP \(bu 2
  254668. \fBPR\fP \fI\%#24663\fP: (\fI\%kartiksubbarao\fP) Update augeas_cfg.py
  254669. @ \fI2015\-06\-15 15:18:48 UTC\fP
  254670. .INDENT 2.0
  254671. .IP \(bu 2
  254672. 5eb19c4e4d Merge pull request \fI\%#24663\fP from kartiksubbarao/patch\-2
  254673. .IP \(bu 2
  254674. e18db50e0c Update augeas_cfg.py
  254675. .UNINDENT
  254676. .IP \(bu 2
  254677. \fBISSUE\fP \fI\%#24583\fP: (\fI\%dkiser\fP) salt\-cloud keyring password referenced before assignment (refs: \fI\%#24667\fP)
  254678. .IP \(bu 2
  254679. \fBPR\fP \fI\%#24667\fP: (\fI\%dkiser\fP) fix for \fI\%#24583\fP clouds/openstack.py kerying first time succeeds
  254680. @ \fI2015\-06\-14 21:58:58 UTC\fP
  254681. .INDENT 2.0
  254682. .IP \(bu 2
  254683. 4450432161 Merge pull request \fI\%#24667\fP from dkiser/fix\-cloud\-keyring
  254684. .IP \(bu 2
  254685. c92c05fac0 fix for \fI\%#24583\fP clouds/openstack.py kerying first time succeeds
  254686. .UNINDENT
  254687. .IP \(bu 2
  254688. \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)
  254689. .IP \(bu 2
  254690. \fBPR\fP \fI\%#24659\fP: (\fI\%kartiksubbarao\fP) Update aliases.py
  254691. @ \fI2015\-06\-13 17:31:42 UTC\fP
  254692. .INDENT 2.0
  254693. .IP \(bu 2
  254694. 4c64ee9d94 Merge pull request \fI\%#24659\fP from kartiksubbarao/patch\-1
  254695. .IP \(bu 2
  254696. d6834749e2 Update aliases.py
  254697. .UNINDENT
  254698. .IP \(bu 2
  254699. \fBPR\fP \fI\%#24644\fP: (\fI\%cro\fP) Merge forward 2014.7\->2015.5
  254700. @ \fI2015\-06\-12 21:31:41 UTC\fP
  254701. .INDENT 2.0
  254702. .IP \(bu 2
  254703. 89eb616c29 Merge pull request \fI\%#24644\fP from cro/2014.7\-2015.5\-20150612
  254704. .IP \(bu 2
  254705. 4136dc3160 Merge forward from 2014.7 to 2015.5
  254706. .IP \(bu 2
  254707. b99484fde2 Merge pull request \fI\%#24643\fP from cro/saltannounce
  254708. .INDENT 2.0
  254709. .IP \(bu 2
  254710. ecb0623d7f Add salt\-announce mailing list.
  254711. .UNINDENT
  254712. .IP \(bu 2
  254713. 635121e85d Merge pull request \fI\%#24620\fP from twangboy/fix_24215
  254714. .INDENT 2.0
  254715. .IP \(bu 2
  254716. d7a9999be1 Fixed comment and uncomment functions in file.py
  254717. .UNINDENT
  254718. .IP \(bu 2
  254719. \fBPR\fP \fI\%saltstack/salt#24595\fP: (\fI\%tankywoo\fP) fix target rule, remove unneeded quotation mark (refs: \fI\%#24642\fP)
  254720. .UNINDENT
  254721. .IP \(bu 2
  254722. \fBPR\fP \fI\%#24642\fP: (\fI\%basepi\fP) Revert "fix target rule, remove unneeded quotation mark"
  254723. @ \fI2015\-06\-12 20:14:26 UTC\fP
  254724. .INDENT 2.0
  254725. .IP \(bu 2
  254726. b896a0d0e9 Merge pull request \fI\%#24642\fP from saltstack/revert\-24595\-fix\-iptables\-target
  254727. .IP \(bu 2
  254728. 5ff3224ae1 Revert "fix target rule, remove unneeded quotation mark"
  254729. .UNINDENT
  254730. .IP \(bu 2
  254731. \fBPR\fP \fI\%#24628\fP: (\fI\%jayeshka\fP) adding states/reg unit test case.
  254732. @ \fI2015\-06\-12 17:29:11 UTC\fP
  254733. .INDENT 2.0
  254734. .IP \(bu 2
  254735. 01092c2337 Merge pull request \fI\%#24628\fP from jayeshka/reg_states\-unit\-test
  254736. .IP \(bu 2
  254737. af1bd8f9ff adding states/reg unit test case.
  254738. .UNINDENT
  254739. .IP \(bu 2
  254740. \fBISSUE\fP \fI\%#24494\fP: (\fI\%arount\fP) Computed comments in jinja states (refs: \fI\%#24591\fP)
  254741. .IP \(bu 2
  254742. \fBISSUE\fP \fI\%#23359\fP: (\fI\%BalintSzigeti\fP) init.sls parsing issue (refs: \fI\%#24591\fP)
  254743. .IP \(bu 2
  254744. \fBISSUE\fP \fI\%#21217\fP: (\fI\%Colstuwjx\fP) Maybe a bug for jinja render? (refs: \fI\%#24591\fP)
  254745. .IP \(bu 2
  254746. \fBPR\fP \fI\%#24631\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24591\fP to 2015.5
  254747. @ \fI2015\-06\-12 16:54:32 UTC\fP
  254748. .INDENT 2.0
  254749. .IP \(bu 2
  254750. \fBPR\fP \fI\%#24591\fP: (\fI\%tbaker57\fP) Add some documentation surrounding Jinja vs yaml comments \- (refs: \fI\%#24631\fP)
  254751. .IP \(bu 2
  254752. 5f491f911d Merge pull request \fI\%#24631\fP from rallytime/bp\-24591
  254753. .IP \(bu 2
  254754. f13cd418bc Add extra clarification why jinja comments are needed.
  254755. .IP \(bu 2
  254756. 23749718bb Fix typo
  254757. .IP \(bu 2
  254758. 6a917471d4 Add some documentation surrounding Jinja comments \- refs \fI\%#24492\fP, \fI\%#21217\fP, \fI\%#23359\fP
  254759. .UNINDENT
  254760. .IP \(bu 2
  254761. \fBPR\fP \fI\%#24616\fP: (\fI\%garethgreenaway\fP) additional logging in state.py module
  254762. @ \fI2015\-06\-12 16:25:39 UTC\fP
  254763. .INDENT 2.0
  254764. .IP \(bu 2
  254765. f23f99ec35 Merge pull request \fI\%#24616\fP from garethgreenaway/2015_5_logging_disabled_states
  254766. .IP \(bu 2
  254767. 4dbf0ef160 Adding some logging statement to give feedback when states, including highstate, are disabled. Useful when running from scheduler.
  254768. .UNINDENT
  254769. .IP \(bu 2
  254770. \fBPR\fP \fI\%#24595\fP: (\fI\%tankywoo\fP) fix target rule, remove unneeded quotation mark
  254771. @ \fI2015\-06\-12 16:23:22 UTC\fP
  254772. .INDENT 2.0
  254773. .IP \(bu 2
  254774. 6dccbb04a1 Merge pull request \fI\%#24595\fP from tankywoo/fix\-iptables\-target
  254775. .IP \(bu 2
  254776. 10a5160d7c fix target rule, remove unneeded quotation mark
  254777. .UNINDENT
  254778. .IP \(bu 2
  254779. \fBPR\fP \fI\%#24604\fP: (\fI\%jfindlay\fP) fix pkg module integration tests
  254780. @ \fI2015\-06\-12 16:04:26 UTC\fP
  254781. .INDENT 2.0
  254782. .IP \(bu 2
  254783. 8ac3d94785 Merge pull request \fI\%#24604\fP from jfindlay/pkg_tests
  254784. .IP \(bu 2
  254785. d88fb22fdc fix pkg module integration tests on CentOS 5
  254786. .IP \(bu 2
  254787. fb91b40ba0 fix pkg module integration tests on ubuntu 12
  254788. .UNINDENT
  254789. .IP \(bu 2
  254790. \fBPR\fP \fI\%#24600\fP: (\fI\%basepi\fP) [2015.5] Remove __kwarg__ from salt\-ssh keyword args
  254791. @ \fI2015\-06\-12 04:21:29 UTC\fP
  254792. .INDENT 2.0
  254793. .IP \(bu 2
  254794. 0ff545c549 Merge pull request \fI\%#24600\fP from basepi/salt\-ssh.orchestrate.20615
  254795. .IP \(bu 2
  254796. 9b55683f6a Remove __kwarg__ from salt\-ssh keyword args
  254797. .UNINDENT
  254798. .IP \(bu 2
  254799. \fBISSUE\fP \fI\%#22843\fP: (\fI\%Xiol\fP) salt\-ssh roster doesn\(aqt support integers as host keys (refs: \fI\%#24608\fP)
  254800. .IP \(bu 2
  254801. \fBPR\fP \fI\%#24608\fP: (\fI\%basepi\fP) [2015.5] Normalize salt\-ssh flat roster minion IDs to strings
  254802. @ \fI2015\-06\-11 21:35:07 UTC\fP
  254803. .INDENT 2.0
  254804. .IP \(bu 2
  254805. 832916f49f Merge pull request \fI\%#24608\fP from basepi/salt\-ssh.flat.roster.integers.22843
  254806. .IP \(bu 2
  254807. 381820f051 Normalize salt\-ssh flat roster minion IDs to strings
  254808. .UNINDENT
  254809. .IP \(bu 2
  254810. \fBPR\fP \fI\%#24605\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254811. @ \fI2015\-06\-11 19:15:21 UTC\fP
  254812. .INDENT 2.0
  254813. .IP \(bu 2
  254814. 4eb5bb253b Merge pull request \fI\%#24605\fP from basepi/merge\-forward\-2015.5
  254815. .IP \(bu 2
  254816. f96c5029bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254817. .IP \(bu 2
  254818. d83928a7f9 Merge pull request \fI\%#24589\fP from BretFisher/patch\-1
  254819. .INDENT 2.0
  254820. .IP \(bu 2
  254821. 65a11336dc Fixed Mine example for jinja code block
  254822. .UNINDENT
  254823. .UNINDENT
  254824. .IP \(bu 2
  254825. \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)
  254826. .IP \(bu 2
  254827. \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)
  254828. .IP \(bu 2
  254829. \fBPR\fP \fI\%#24598\fP: (\fI\%jacobhammons\fP) 2015.5.2 release changes
  254830. @ \fI2015\-06\-11 17:24:11 UTC\fP
  254831. .INDENT 2.0
  254832. .IP \(bu 2
  254833. e0bb177823 Merge pull request \fI\%#24598\fP from jacobhammons/doc\-fixes
  254834. .IP \(bu 2
  254835. f3f34ddff6 2015.5.2 release changes Refs \fI\%#24250\fP Refs \fI\%#24457\fP
  254836. .UNINDENT
  254837. .IP \(bu 2
  254838. \fBISSUE\fP \fI\%#20615\fP: (\fI\%aurynn\fP) 2014.7.1: salt/states/saltmod using incorrect return dict for orchestrate (refs: \fI\%#24588\fP)
  254839. .IP \(bu 2
  254840. \fBPR\fP \fI\%#24588\fP: (\fI\%basepi\fP) Fixes for saltmod.function for salt\-ssh
  254841. @ \fI2015\-06\-11 16:15:21 UTC\fP
  254842. .INDENT 2.0
  254843. .IP \(bu 2
  254844. 26930b45bd Merge pull request \fI\%#24588\fP from basepi/salt\-ssh.orchestrate.20615
  254845. .IP \(bu 2
  254846. 826936ce57 Move documentation into docstring instead of comments
  254847. .IP \(bu 2
  254848. de052e7135 Assign \(aqreturn\(aq to \(aqret\(aq if necessary in saltmod.function
  254849. .IP \(bu 2
  254850. 34ff989d66 Convert keyword args to key=value strings in salt\-ssh
  254851. .UNINDENT
  254852. .IP \(bu 2
  254853. \fBPR\fP \fI\%#24593\fP: (\fI\%jayeshka\fP) adding states/redismod unit test case.
  254854. @ \fI2015\-06\-11 15:55:27 UTC\fP
  254855. .INDENT 2.0
  254856. .IP \(bu 2
  254857. 5a21ad152e Merge pull request \fI\%#24593\fP from jayeshka/redismod_states\-unit\-test
  254858. .IP \(bu 2
  254859. 3b95744840 adding states/redismod unit test case.
  254860. .UNINDENT
  254861. .IP \(bu 2
  254862. \fBISSUE\fP \fI\%#40\fP: (\fI\%thatch45\fP) Clean up timeouts (refs: \fI\%#22857\fP)
  254863. .IP \(bu 2
  254864. \fBPR\fP \fI\%#24581\fP: (\fI\%rallytime\fP) Disabled some flaky tests until we can figure out how to make them more reliable
  254865. @ \fI2015\-06\-11 15:51:41 UTC\fP
  254866. .INDENT 2.0
  254867. .IP \(bu 2
  254868. \fBPR\fP \fI\%#24217\fP: (\fI\%jfindlay\fP) disable intermittently failing tests (refs: \fI\%#24581\fP)
  254869. .IP \(bu 2
  254870. \fBPR\fP \fI\%#23623\fP: (\fI\%jfindlay\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#24217\fP)
  254871. .IP \(bu 2
  254872. \fBPR\fP \fI\%#22857\fP: (\fI\%jacksontj\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#23623\fP)
  254873. .IP \(bu 2
  254874. 8ffb86edd0 Merge pull request \fI\%#24581\fP from rallytime/disable_some_flaky_tests
  254875. .IP \(bu 2
  254876. c82f135d2e Disabled some flaky tests until we can figure out how to make them more reliable
  254877. .UNINDENT
  254878. .IP \(bu 2
  254879. \fBPR\fP \fI\%#24566\fP: (\fI\%jayeshka\fP) adding states/rdp unit test case.
  254880. @ \fI2015\-06\-11 02:14:39 UTC\fP
  254881. .INDENT 2.0
  254882. .IP \(bu 2
  254883. a570d7f967 Merge pull request \fI\%#24566\fP from jayeshka/rdp_states\-unit\-test
  254884. .IP \(bu 2
  254885. 273b994e91 adding states/rdp unit test case.
  254886. .UNINDENT
  254887. .IP \(bu 2
  254888. \fBISSUE\fP \fI\%#24480\fP: (\fI\%kiorky\fP) [CRITICAL] [2015.5] tls breaks tzinfo (refs: \fI\%#24551\fP)
  254889. .IP \(bu 2
  254890. \fBPR\fP \fI\%#24551\fP: (\fI\%joejulian\fP) 2015.5 dont pollute environment
  254891. @ \fI2015\-06\-11 02:13:06 UTC\fP
  254892. .INDENT 2.0
  254893. .IP \(bu 2
  254894. 20ada1f8a1 Merge pull request \fI\%#24551\fP from joejulian/2015.5_dont_pollute_environment
  254895. .IP \(bu 2
  254896. cfc3b43ba2 Don\(aqt pollute the TZ environment variable
  254897. .IP \(bu 2
  254898. cba8d3f923 pep8
  254899. .IP \(bu 2
  254900. 9cb7015568 Mark keyword version adds
  254901. .IP \(bu 2
  254902. 76e2583265 Merge tls changes from develop
  254903. .UNINDENT
  254904. .IP \(bu 2
  254905. \fBISSUE\fP \fI\%#19901\fP: (\fI\%clinta\fP) State cache is not documented (refs: \fI\%#24574\fP, \fI\%#24468\fP)
  254906. .IP \(bu 2
  254907. \fBPR\fP \fI\%#24574\fP: (\fI\%jacobhammons\fP) Refs \fI\%#19901\fP
  254908. @ \fI2015\-06\-10 20:09:23 UTC\fP
  254909. .INDENT 2.0
  254910. .IP \(bu 2
  254911. bb2fd6a970 Merge pull request \fI\%#24574\fP from jacobhammons/19901
  254912. .IP \(bu 2
  254913. e2a2946dc7 Refs \fI\%#19901\fP
  254914. .UNINDENT
  254915. .IP \(bu 2
  254916. \fBPR\fP \fI\%#24577\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254917. @ \fI2015\-06\-10 19:46:22 UTC\fP
  254918. .INDENT 2.0
  254919. .IP \(bu 2
  254920. b03166cde3 Merge pull request \fI\%#24577\fP from basepi/merge\-forward\-2015.5
  254921. .IP \(bu 2
  254922. e1d45ccf3b Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254923. .IP \(bu 2
  254924. d376390f76 Merge pull request \fI\%#24530\fP from twangboy/fix_24427
  254925. .INDENT 2.0
  254926. .IP \(bu 2
  254927. 673e1d809e Added missing panel.bmp for installer
  254928. .IP \(bu 2
  254929. cc50218b01 Start Minion Service on Silent Install
  254930. .UNINDENT
  254931. .UNINDENT
  254932. .IP \(bu 2
  254933. \fBISSUE\fP \fI\%#24235\fP: (\fI\%tomasfejfar\fP) Difference between running from minion and from master (refs: \fI\%#24571\fP, \fI\%#24468\fP)
  254934. .IP \(bu 2
  254935. \fBPR\fP \fI\%#24571\fP: (\fI\%jacobhammons\fP) Refs \fI\%#24235\fP
  254936. @ \fI2015\-06\-10 17:02:18 UTC\fP
  254937. .INDENT 2.0
  254938. .IP \(bu 2
  254939. 3ec457beef Merge pull request \fI\%#24571\fP from jacobhammons/24235
  254940. .IP \(bu 2
  254941. 8df5d53bb8 Refs \fI\%#24235\fP
  254942. .UNINDENT
  254943. .IP \(bu 2
  254944. \fBPR\fP \fI\%#24565\fP: (\fI\%pille\fP) fix backtrace, when listing plugins
  254945. @ \fI2015\-06\-10 16:33:11 UTC\fP
  254946. .INDENT 2.0
  254947. .IP \(bu 2
  254948. fe07eb5653 Merge pull request \fI\%#24565\fP from pille/munin\-ignore\-broken\-symlinks
  254949. .IP \(bu 2
  254950. 8511a6c0a6 fix backtrace, when listing plugins
  254951. .UNINDENT
  254952. .IP \(bu 2
  254953. \fBPR\fP \fI\%#24554\fP: (\fI\%ryan\-lane\fP) Fix yes usage for pecl defaults
  254954. @ \fI2015\-06\-09 23:59:49 UTC\fP
  254955. .INDENT 2.0
  254956. .IP \(bu 2
  254957. 251c8f9f5f Merge pull request \fI\%#24554\fP from lyft/pecl\-module\-fix
  254958. .IP \(bu 2
  254959. 56a9cfcf24 Fix yes usage for pecl defaults
  254960. .UNINDENT
  254961. .IP \(bu 2
  254962. \fBPR\fP \fI\%#24535\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24518\fP to 2015.5
  254963. @ \fI2015\-06\-09 20:06:18 UTC\fP
  254964. .INDENT 2.0
  254965. .IP \(bu 2
  254966. \fBPR\fP \fI\%#24518\fP: (\fI\%rallytime\fP) Merge \fI\%#24448\fP with Pylint Fixes (refs: \fI\%#24535\fP)
  254967. .IP \(bu 2
  254968. \fBPR\fP \fI\%#24448\fP: (\fI\%codertux\fP) Update modules path for operating systems using systemd (refs: \fI\%#24518\fP)
  254969. .IP \(bu 2
  254970. dbd49b4acb Merge pull request \fI\%#24535\fP from rallytime/bp\-24518
  254971. .IP \(bu 2
  254972. fc75197616 Pylint fix
  254973. .IP \(bu 2
  254974. 3e08840988 Update modules path for operating systems using systemd
  254975. .UNINDENT
  254976. .IP \(bu 2
  254977. \fBPR\fP \fI\%#24538\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254978. @ \fI2015\-06\-09 17:27:20 UTC\fP
  254979. .INDENT 2.0
  254980. .IP \(bu 2
  254981. 485ed3cff9 Merge pull request \fI\%#24538\fP from basepi/merge\-forward\-2015.5
  254982. .IP \(bu 2
  254983. 6a8039d468 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254984. .IP \(bu 2
  254985. 6ebc476bb3 Merge pull request \fI\%#24513\fP from jquast/2014.7\-bugfix\-iteritem
  254986. .INDENT 2.0
  254987. .IP \(bu 2
  254988. 2be0180e5e bugfix use of \(aqiteritem\(aq in 2014.7 branch
  254989. .UNINDENT
  254990. .UNINDENT
  254991. .IP \(bu 2
  254992. \fBPR\fP \fI\%#24495\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_vhost unit test case.
  254993. @ \fI2015\-06\-09 15:33:23 UTC\fP
  254994. .INDENT 2.0
  254995. .IP \(bu 2
  254996. 73e6388acd Merge pull request \fI\%#24495\fP from jayeshka/rabbitmq_vhost_states\-unit\-test
  254997. .IP \(bu 2
  254998. 31889e38eb cosmetic change.
  254999. .IP \(bu 2
  255000. cf501cf60d resolved error.
  255001. .IP \(bu 2
  255002. 4bb6087722 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into rabbitmq_vhost_states\-unit\-test
  255003. .IP \(bu 2
  255004. 3ad77143a8 adding states/rabbitmq_vhost unit test case.
  255005. .UNINDENT
  255006. .IP \(bu 2
  255007. \fBPR\fP \fI\%#24445\fP: (\fI\%jayeshka\fP) adding states/pyrax_queues unit test case.
  255008. @ \fI2015\-06\-09 15:28:45 UTC\fP
  255009. .INDENT 2.0
  255010. .IP \(bu 2
  255011. bf1abccebe Merge pull request \fI\%#24445\fP from jayeshka/pyrax_queues_states\-unit\-test
  255012. .IP \(bu 2
  255013. ea27cefb10 adding states/pyrax_queues unit test case.
  255014. .UNINDENT
  255015. .IP \(bu 2
  255016. \fBPR\fP \fI\%#24490\fP: (\fI\%aneeshusa\fP) Fix pacman.list_upgrades for new python_shell default.
  255017. @ \fI2015\-06\-09 15:13:16 UTC\fP
  255018. .INDENT 2.0
  255019. .IP \(bu 2
  255020. 0247e8d10d Merge pull request \fI\%#24490\fP from aneeshusa/fix\-pacman\-list\-upgrades
  255021. .IP \(bu 2
  255022. 980e1cb4dc Lint fix.
  255023. .IP \(bu 2
  255024. dca33f1112 Fix pacman.list_upgrades for new python_shell default.
  255025. .UNINDENT
  255026. .IP \(bu 2
  255027. \fBPR\fP \fI\%#24517\fP: (\fI\%steverweber\fP) small fixes to the ipmi docs
  255028. @ \fI2015\-06\-09 15:10:14 UTC\fP
  255029. .INDENT 2.0
  255030. .IP \(bu 2
  255031. 6268ddb43a Merge pull request \fI\%#24517\fP from steverweber/ipmi_doc
  255032. .IP \(bu 2
  255033. 6413712844 lint
  255034. .IP \(bu 2
  255035. e78aea9b01 more small fixes to the ipmi docs
  255036. .UNINDENT
  255037. .IP \(bu 2
  255038. \fBPR\fP \fI\%#24524\fP: (\fI\%jayeshka\fP) any() takes list oy tuple.
  255039. @ \fI2015\-06\-09 13:49:42 UTC\fP
  255040. .INDENT 2.0
  255041. .IP \(bu 2
  255042. 3728b3f327 Merge pull request \fI\%#24524\fP from jayeshka/rabbitmq_vhost_states\-module
  255043. .IP \(bu 2
  255044. 01c99ad767 any() takes list oy tuple.
  255045. .UNINDENT
  255046. .IP \(bu 2
  255047. \fBPR\fP \fI\%#24482\fP: (\fI\%eliasp\fP) \(aqdocker.running\(aq needs now the \(aqimage\(aq param.
  255048. @ \fI2015\-06\-09 04:43:04 UTC\fP
  255049. .INDENT 2.0
  255050. .IP \(bu 2
  255051. dd23de885b Merge pull request \fI\%#24482\fP from eliasp/2015.5\-states.dockerio\-docker.running\-doc
  255052. .IP \(bu 2
  255053. 5de741d626 \(aqdocker.running\(aq needs now the \(aqimage\(aq param.
  255054. .UNINDENT
  255055. .IP \(bu 2
  255056. \fBISSUE\fP \fI\%#23503\fP: (\fI\%jfindlay\fP) salt\-ssh fails on CentOS 7 when python\-zmq is not installed (refs: \fI\%#24515\fP)
  255057. .IP \(bu 2
  255058. \fBPR\fP \fI\%#24515\fP: (\fI\%basepi\fP) [2015.5] Add xml library to the salt\-thin
  255059. @ \fI2015\-06\-09 04:10:06 UTC\fP
  255060. .INDENT 2.0
  255061. .IP \(bu 2
  255062. 2a727c3f55 Merge pull request \fI\%#24515\fP from basepi/susexml23503
  255063. .IP \(bu 2
  255064. 078b33eaaf Add xml library to the thin
  255065. .UNINDENT
  255066. .IP \(bu 2
  255067. \fBPR\fP \fI\%#24497\fP: (\fI\%jayeshka\fP) adding states/rbenv unit test case.
  255068. @ \fI2015\-06\-09 03:56:10 UTC\fP
  255069. .INDENT 2.0
  255070. .IP \(bu 2
  255071. fce998a58b Merge pull request \fI\%#24497\fP from jayeshka/rbenv_states\-unit\-test
  255072. .IP \(bu 2
  255073. 79d343a62b adding states/rbenv unit test case.
  255074. .UNINDENT
  255075. .IP \(bu 2
  255076. \fBPR\fP \fI\%#24496\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_user unit test case.
  255077. @ \fI2015\-06\-09 03:55:23 UTC\fP
  255078. .INDENT 2.0
  255079. .IP \(bu 2
  255080. 2bcb4b1eed Merge pull request \fI\%#24496\fP from jayeshka/rabbitmq_user_states\-unit\-test
  255081. .IP \(bu 2
  255082. 7d96f27f91 adding states/rabbitmq_user unit test case.
  255083. .UNINDENT
  255084. .IP \(bu 2
  255085. \fBPR\fP \fI\%#24481\fP: (\fI\%eliasp\fP) Fix typo (licnese → license).
  255086. @ \fI2015\-06\-09 03:30:25 UTC\fP
  255087. .INDENT 2.0
  255088. .IP \(bu 2
  255089. 02a597bf49 Merge pull request \fI\%#24481\fP from eliasp/2015.5\-salt.states.powerpath\-license_typo
  255090. .IP \(bu 2
  255091. 1280054bce Fix typo (licnese → license).
  255092. .UNINDENT
  255093. .IP \(bu 2
  255094. \fBPR\fP \fI\%#24467\fP: (\fI\%thenewwazoo\fP) Fix dockerio bound volumes
  255095. @ \fI2015\-06\-09 01:40:23 UTC\fP
  255096. .INDENT 2.0
  255097. .IP \(bu 2
  255098. 5ad3db5ffb Merge pull request \fI\%#24467\fP from thenewwazoo/fix\-dockerio\-bound\-volumes
  255099. .IP \(bu 2
  255100. db4e3dc69b Let\(aqs raise an exception if create fails
  255101. .IP \(bu 2
  255102. d1d85dd685 Add logging
  255103. .IP \(bu 2
  255104. ddc63f0f30 Fix volume handling when creating containers
  255105. .UNINDENT
  255106. .IP \(bu 2
  255107. \fBPR\fP \fI\%#24504\fP: (\fI\%rallytime\fP) Move vsphere deprecation to 2015.5
  255108. @ \fI2015\-06\-08 22:43:05 UTC\fP
  255109. .INDENT 2.0
  255110. .IP \(bu 2
  255111. \fBPR\fP \fI\%#24487\fP: (\fI\%nmadhok\fP) Deprecating vsphere cloud driver in favor of vmware cloud driver (refs: \fI\%#24504\fP)
  255112. .IP \(bu 2
  255113. d236fbd38f Merge pull request \fI\%#24504\fP from rallytime/move_vsphere_deprecation_2015.5
  255114. .IP \(bu 2
  255115. d876535d71 Add Getting Started with VSphere doc to 2015.5
  255116. .IP \(bu 2
  255117. b685ebc104 Add vSphere deprecation warnings to 2015.5
  255118. .UNINDENT
  255119. .IP \(bu 2
  255120. \fBPR\fP \fI\%#24506\fP: (\fI\%rallytime\fP) Backport \fI\%#24450\fP to 2015.5
  255121. @ \fI2015\-06\-08 22:42:14 UTC\fP
  255122. .INDENT 2.0
  255123. .IP \(bu 2
  255124. \fBPR\fP \fI\%#24450\fP: (\fI\%ruzarowski\fP) Fix salt cli runs with batch\-size set (refs: \fI\%#24506\fP)
  255125. .IP \(bu 2
  255126. cb5546085c Merge pull request \fI\%#24506\fP from rallytime/bp\-24450
  255127. .IP \(bu 2
  255128. 1c0fca2b9d Backport \fI\%#24450\fP to 2015.5
  255129. .UNINDENT
  255130. .IP \(bu 2
  255131. \fBPR\fP \fI\%#24498\fP: (\fI\%rallytime\fP) Added "CLI Example" to make failing test happy on 2015.5
  255132. @ \fI2015\-06\-08 15:48:40 UTC\fP
  255133. .INDENT 2.0
  255134. .IP \(bu 2
  255135. 3173fd17ad Merge pull request \fI\%#24498\fP from rallytime/fix_doc_failure_fifteen
  255136. .IP \(bu 2
  255137. d992ef4777 Added "CLI Example" to make failing test happy on 2015.5
  255138. .UNINDENT
  255139. .IP \(bu 2
  255140. \fBPR\fP \fI\%#24471\fP: (\fI\%anlutro\fP) Set up salt\-ssh file logging
  255141. @ \fI2015\-06\-08 15:26:49 UTC\fP
  255142. .INDENT 2.0
  255143. .IP \(bu 2
  255144. 3639e411bd Merge pull request \fI\%#24471\fP from alprs/fix\-salt_ssh_logging
  255145. .IP \(bu 2
  255146. 6a11ec87b8 set up salt\-ssh file logging
  255147. .UNINDENT
  255148. .IP \(bu 2
  255149. \fBISSUE\fP \fI\%#24231\fP: (\fI\%tarwich\fP) npm.bootstrap (refs: \fI\%#24469\fP)
  255150. .IP \(bu 2
  255151. \fBPR\fP \fI\%#24469\fP: (\fI\%jfindlay\fP) correctly handle user environment info for npm
  255152. @ \fI2015\-06\-08 15:26:02 UTC\fP
  255153. .INDENT 2.0
  255154. .IP \(bu 2
  255155. 551e70f3fb Merge pull request \fI\%#24469\fP from jfindlay/npm_env
  255156. .IP \(bu 2
  255157. 8140c96949 update npm\(aqs user info envs
  255158. .IP \(bu 2
  255159. cb572f8c41 add \fIenv\fP parameter to npm.uninstall
  255160. .UNINDENT
  255161. .IP \(bu 2
  255162. \fBISSUE\fP \fI\%#24268\fP: (\fI\%tkent\-xetus\fP) Ability to specify revision for win_gitrepos undocumented (refs: \fI\%#24468\fP)
  255163. .IP \(bu 2
  255164. \fBISSUE\fP \fI\%#24235\fP: (\fI\%tomasfejfar\fP) Difference between running from minion and from master (refs: \fI\%#24571\fP, \fI\%#24468\fP)
  255165. .IP \(bu 2
  255166. \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)
  255167. .IP \(bu 2
  255168. \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)
  255169. .IP \(bu 2
  255170. \fBISSUE\fP \fI\%#23211\fP: (\fI\%lloesche\fP) Document that salt://| escapes special characters in filenames (refs: \fI\%#24468\fP)
  255171. .IP \(bu 2
  255172. \fBISSUE\fP \fI\%#19901\fP: (\fI\%clinta\fP) State cache is not documented (refs: \fI\%#24574\fP, \fI\%#24468\fP)
  255173. .IP \(bu 2
  255174. \fBISSUE\fP \fI\%#19801\fP: (\fI\%ksalman\fP) How are grains static? (refs: \fI\%#24468\fP)
  255175. .IP \(bu 2
  255176. \fBPR\fP \fI\%#24468\fP: (\fI\%jacobhammons\fP) Bug fixes and build errors
  255177. @ \fI2015\-06\-08 15:25:40 UTC\fP
  255178. .INDENT 2.0
  255179. .IP \(bu 2
  255180. 0d9e0c2b8c Merge pull request \fI\%#24468\fP from jacobhammons/doc\-fixes
  255181. .IP \(bu 2
  255182. 1035959459 Appended .0 to version added
  255183. .IP \(bu 2
  255184. 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
  255185. .UNINDENT
  255186. .IP \(bu 2
  255187. \fBISSUE\fP \fI\%#24318\fP: (\fI\%favadi\fP) uncaught exception for pkgrepo.absent for invalid PPA (refs: \fI\%#24465\fP)
  255188. .IP \(bu 2
  255189. \fBPR\fP \fI\%#24465\fP: (\fI\%jfindlay\fP) catch exception from softwarerepositories
  255190. @ \fI2015\-06\-08 15:25:19 UTC\fP
  255191. .INDENT 2.0
  255192. .IP \(bu 2
  255193. be6905a545 Merge pull request \fI\%#24465\fP from jfindlay/unknown_ppa
  255194. .IP \(bu 2
  255195. 19c912866d catch exception from softwarerepositories
  255196. .UNINDENT
  255197. .IP \(bu 2
  255198. \fBISSUE\fP \fI\%#24296\fP: (\fI\%objectx\fP) mount.mount calls file.mkdir with incorrect named argument (refs: \fI\%#24464\fP)
  255199. .IP \(bu 2
  255200. \fBPR\fP \fI\%#24464\fP: (\fI\%jfindlay\fP) fix typo in modules/mount.py
  255201. @ \fI2015\-06\-08 15:25:07 UTC\fP
  255202. .INDENT 2.0
  255203. .IP \(bu 2
  255204. 58d1ea8fe8 Merge pull request \fI\%#24464\fP from jfindlay/file_mkdir
  255205. .IP \(bu 2
  255206. 6e8cd44500 fix typo in modules/mount.py
  255207. .UNINDENT
  255208. .IP \(bu 2
  255209. \fBISSUE\fP \fI\%#24434\fP: (\fI\%dkiser\fP) multimaster failover fails due to logic from issue #23611 (refs: \fI\%#24461\fP)
  255210. .IP \(bu 2
  255211. \fBPR\fP \fI\%#24461\fP: (\fI\%dkiser\fP) fix for \fI\%#24434\fP
  255212. @ \fI2015\-06\-08 15:24:53 UTC\fP
  255213. .INDENT 2.0
  255214. .IP \(bu 2
  255215. 4f332a71c6 Merge pull request \fI\%#24461\fP from dkiser/multimaster_minion_fix
  255216. .IP \(bu 2
  255217. 1944a743d7 fix for \fI\%#24434\fP
  255218. .UNINDENT
  255219. .IP \(bu 2
  255220. \fBPR\fP \fI\%#24479\fP: (\fI\%ahus1\fP) change "path" to "name" for "file" operations
  255221. @ \fI2015\-06\-07 17:56:11 UTC\fP
  255222. .INDENT 2.0
  255223. .IP \(bu 2
  255224. 8917416d39 Merge pull request \fI\%#24479\fP from ahus1/patch\-1
  255225. .IP \(bu 2
  255226. 7d6b60c79d change "path" to "name" for "file" operations
  255227. .UNINDENT
  255228. .IP \(bu 2
  255229. \fBPR\fP \fI\%#24475\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24454\fP to 2015.5
  255230. @ \fI2015\-06\-07 01:29:32 UTC\fP
  255231. .INDENT 2.0
  255232. .IP \(bu 2
  255233. \fBPR\fP \fI\%#24454\fP: (\fI\%rhertzog\fP) Strip extraneous newline character added in last environment variable (refs: \fI\%#24475\fP)
  255234. .IP \(bu 2
  255235. 8618d5b6ea Merge pull request \fI\%#24475\fP from rallytime/bp\-24454
  255236. .IP \(bu 2
  255237. a793c192a6 Avoid extraneous newline character added in last environment variable
  255238. .UNINDENT
  255239. .IP \(bu 2
  255240. \fBISSUE\fP \fI\%#24407\fP: (\fI\%aboe76\fP) Please expand salt module random (refs: \fI\%#24420\fP)
  255241. .IP \(bu 2
  255242. \fBPR\fP \fI\%#24474\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24420\fP to 2015.5
  255243. @ \fI2015\-06\-07 01:29:11 UTC\fP
  255244. .INDENT 2.0
  255245. .IP \(bu 2
  255246. \fBPR\fP \fI\%#24420\fP: (\fI\%aboe76\fP) added random integer module to mod_random.py (refs: \fI\%#24474\fP)
  255247. .IP \(bu 2
  255248. 61658ffef7 Merge pull request \fI\%#24474\fP from rallytime/bp\-24420
  255249. .IP \(bu 2
  255250. 4219b404ad Fix lint error and update versionadded to 2015.5.3
  255251. .IP \(bu 2
  255252. 3613cc9659 added random integer module to mod_random.py
  255253. .UNINDENT
  255254. .IP \(bu 2
  255255. \fBISSUE\fP \fI\%#24233\fP: (\fI\%variia\fP) yumpkg.group_install keeps returning state change
  255256. .IP \(bu 2
  255257. \fBPR\fP \fI\%#24472\fP: (\fI\%variia\fP) ensure {} output is not treated as change in module.py state, fixes #…
  255258. @ \fI2015\-06\-06 14:45:44 UTC\fP
  255259. .INDENT 2.0
  255260. .IP \(bu 2
  255261. 508d7ddb91 Merge pull request \fI\%#24472\fP from variia/Fix\-yumpkg_group_install\-return\-change\-\fI\%#24233\fP
  255262. .IP \(bu 2
  255263. 37e8827ce8 ensure {} output is not treated as change in module.py state, fixes \fI\%#24233\fP
  255264. .UNINDENT
  255265. .IP \(bu 2
  255266. \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)
  255267. .IP \(bu 2
  255268. \fBISSUE\fP \fI\%#18045\fP: (\fI\%dstokes\fP) Pillar kwargs parse error with # (refs: \fI\%#24466\fP)
  255269. .IP \(bu 2
  255270. \fBPR\fP \fI\%#24466\fP: (\fI\%basepi\fP) [2015.5] Fix for # in inner strings in yaml arguments
  255271. @ \fI2015\-06\-06 14:35:56 UTC\fP
  255272. .INDENT 2.0
  255273. .IP \(bu 2
  255274. 0292e67c8a Merge pull request \fI\%#24466\fP from basepi/fixhashinargs18045
  255275. .IP \(bu 2
  255276. 2e0609f09e Fix for # in inner strings in yaml arguments
  255277. .UNINDENT
  255278. .IP \(bu 2
  255279. \fBPR\fP \fI\%#24456\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24441\fP to 2015.5
  255280. @ \fI2015\-06\-05 22:32:25 UTC\fP
  255281. .INDENT 2.0
  255282. .IP \(bu 2
  255283. \fBPR\fP \fI\%#24441\fP: (\fI\%arthurlogilab\fP) [doc] Alignement fix on external_auth documentation (refs: \fI\%#24456\fP)
  255284. .IP \(bu 2
  255285. ced558a6e6 Merge pull request \fI\%#24456\fP from rallytime/bp\-24441
  255286. .IP \(bu 2
  255287. 70028553c1 yaml indentations should be 2 spaces
  255288. .IP \(bu 2
  255289. 21b51abf25 [doc] Alignement fix on external_auth documentation
  255290. .UNINDENT
  255291. .IP \(bu 2
  255292. \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)
  255293. .INDENT 2.0
  255294. .IP \(bu 2
  255295. \fBPR\fP \fI\%#24399\fP: (\fI\%kiorky\fP) Versionvirtual (refs: \fI\%#24398\fP)
  255296. .UNINDENT
  255297. .IP \(bu 2
  255298. \fBPR\fP \fI\%#24398\fP: (\fI\%kiorky\fP) VirtualName for states.apt (refs: \fI\%#24399\fP)
  255299. @ \fI2015\-06\-05 17:40:04 UTC\fP
  255300. .INDENT 2.0
  255301. .IP \(bu 2
  255302. c0ff4110ab Merge pull request \fI\%#24398\fP from makinacorpus/aptv
  255303. .IP \(bu 2
  255304. 785d27707f VirtualName for states.apt
  255305. .UNINDENT
  255306. .IP \(bu 2
  255307. \fBPR\fP \fI\%#24447\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_policy unit test case.
  255308. @ \fI2015\-06\-05 15:26:11 UTC\fP
  255309. .INDENT 2.0
  255310. .IP \(bu 2
  255311. 36263405be Merge pull request \fI\%#24447\fP from jayeshka/rabbitmq_policy_states\-unit\-test
  255312. .IP \(bu 2
  255313. 9b038abd63 adding states/rabbitmq_policy unit test case.
  255314. .UNINDENT
  255315. .IP \(bu 2
  255316. \fBPR\fP \fI\%#24446\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_plugin unit test case.
  255317. @ \fI2015\-06\-05 15:25:33 UTC\fP
  255318. .INDENT 2.0
  255319. .IP \(bu 2
  255320. 8445a3f28d Merge pull request \fI\%#24446\fP from jayeshka/rabbitmq_plugin_states\-unit\-test
  255321. .IP \(bu 2
  255322. cb0c99a012 adding states/rabbitmq_plugin unit test case.
  255323. .UNINDENT
  255324. .IP \(bu 2
  255325. \fBPR\fP \fI\%#24426\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  255326. @ \fI2015\-06\-05 03:59:11 UTC\fP
  255327. .INDENT 2.0
  255328. .IP \(bu 2
  255329. 9cc3808758 Merge pull request \fI\%#24426\fP from basepi/merge\-forward\-2015.5
  255330. .IP \(bu 2
  255331. eafa20cdfb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  255332. .INDENT 2.0
  255333. .IP \(bu 2
  255334. 83f853b6ea Merge pull request \fI\%#24405\fP from jacksontj/2014.7
  255335. .INDENT 2.0
  255336. .IP \(bu 2
  255337. 2c7afaeebf Fix for \fI\%#24276\fP
  255338. .UNINDENT
  255339. .IP \(bu 2
  255340. cef919c602 Merge pull request \fI\%#24395\fP from hvnsweeting/handle\-exception\-get\-file
  255341. .INDENT 2.0
  255342. .IP \(bu 2
  255343. bb798a0224 handle exceptions when received data is not in good shape
  255344. .UNINDENT
  255345. .IP \(bu 2
  255346. efba1a94b4 Merge pull request \fI\%#24305\fP from twangboy/win_path_docs
  255347. .IP \(bu 2
  255348. 36804253e6 Fixed pylint error caused by P... added r
  255349. .IP \(bu 2
  255350. bc42a4bb11 triple double quotes to triple single quotes
  255351. .IP \(bu 2
  255352. 77cd930bba Added documentation, fixed formatting
  255353. .UNINDENT
  255354. .UNINDENT
  255355. .IP \(bu 2
  255356. \fBISSUE\fP \fI\%#24309\fP: (\fI\%steverweber\fP) missing docs (refs: \fI\%#24429\fP)
  255357. .IP \(bu 2
  255358. \fBPR\fP \fI\%#24429\fP: (\fI\%jacobhammons\fP) Salt cloud doc updates, build errors and bug fixes
  255359. @ \fI2015\-06\-05 00:27:38 UTC\fP
  255360. .INDENT 2.0
  255361. .IP \(bu 2
  255362. 5d738b8dab Merge pull request \fI\%#24429\fP from jacobhammons/cloud\-doc\-updates
  255363. .IP \(bu 2
  255364. 1f7a13d6f9 Salt cloud doc updates, build errors and bug fixes Refs \fI\%#24309\fP
  255365. .UNINDENT
  255366. .IP \(bu 2
  255367. \fBPR\fP \fI\%#24408\fP: (\fI\%rallytime\fP) Backport \fI\%#24392\fP to 2015.5
  255368. @ \fI2015\-06\-04 20:22:09 UTC\fP
  255369. .INDENT 2.0
  255370. .IP \(bu 2
  255371. \fBPR\fP \fI\%#24392\fP: (\fI\%quixoten\fP) Fix "No such file or directory" in grains/core.py (refs: \fI\%#24408\fP)
  255372. .IP \(bu 2
  255373. cdffc02cfe Merge pull request \fI\%#24408\fP from rallytime/bp\-24392
  255374. .IP \(bu 2
  255375. ff7461b3cd Use path found by salt.utils.which
  255376. .UNINDENT
  255377. .IP \(bu 2
  255378. \fBPR\fP \fI\%#24380\fP: (\fI\%rallytime\fP) Backport \fI\%#24357\fP to 2015.5
  255379. @ \fI2015\-06\-04 20:13:51 UTC\fP
  255380. .INDENT 2.0
  255381. .IP \(bu 2
  255382. \fBPR\fP \fI\%#24357\fP: (\fI\%zhujinhe\fP) fix invoke issues of Jinja Macros example (refs: \fI\%#24380\fP)
  255383. .IP \(bu 2
  255384. a6a1f87cd9 Merge pull request \fI\%#24380\fP from rallytime/bp\-24357
  255385. .IP \(bu 2
  255386. f08c875015 fix invoke issues of Jinja Macros example
  255387. .UNINDENT
  255388. .IP \(bu 2
  255389. \fBISSUE\fP \fI\%#24358\fP: (\fI\%pengyao\fP) Netapi SSH client don\(aqt support ssh_user and ssh_passwd arguments (refs: \fI\%#24388\fP)
  255390. .IP \(bu 2
  255391. \fBPR\fP \fI\%#24388\fP: (\fI\%pengyao\fP) fixes \fI\%#24358\fP
  255392. @ \fI2015\-06\-04 20:07:40 UTC\fP
  255393. .INDENT 2.0
  255394. .IP \(bu 2
  255395. 86ce9dbbdf Merge pull request \fI\%#24388\fP from pengyao/sshclient\-kwargs
  255396. .IP \(bu 2
  255397. 5c08ca48b4 fixes \fI\%#24358\fP
  255398. .UNINDENT
  255399. .IP \(bu 2
  255400. \fBISSUE\fP \fI\%#22958\fP: (\fI\%highlyunavailable\fP) Weird error when typoing a command (refs: \fI\%#24367\fP)
  255401. .IP \(bu 2
  255402. \fBPR\fP \fI\%#24367\fP: (\fI\%terminalmage\fP) Improve error message when module does not exist
  255403. @ \fI2015\-06\-04 20:07:12 UTC\fP
  255404. .INDENT 2.0
  255405. .IP \(bu 2
  255406. 72d2eaeda9 Merge pull request \fI\%#24367\fP from terminalmage/issue22958
  255407. .IP \(bu 2
  255408. d0d7a5481c Improve error message when module does not exist
  255409. .UNINDENT
  255410. .IP \(bu 2
  255411. \fBISSUE\fP \fI\%#23101\fP: (\fI\%gravyboat\fP) Create a docs page for labels (refs: \fI\%#23387\fP)
  255412. .IP \(bu 2
  255413. \fBPR\fP \fI\%#24412\fP: (\fI\%jfindlay\fP) backport \fI\%#23387\fP
  255414. @ \fI2015\-06\-04 20:06:03 UTC\fP
  255415. .INDENT 2.0
  255416. .IP \(bu 2
  255417. \fBPR\fP \fI\%#23387\fP: (\fI\%rallytime\fP) Add some "What are all these labels for?" documentation (refs: \fI\%#24412\fP)
  255418. .IP \(bu 2
  255419. a628778e3c Merge pull request \fI\%#24412\fP from jfindlay/bp\-23387
  255420. .IP \(bu 2
  255421. bf85772042 Make sure the parameters are in the correct order
  255422. .IP \(bu 2
  255423. 9f53809cde Add "* Change" label parameters
  255424. .IP \(bu 2
  255425. b27a15e774 Remove "workaround" wording
  255426. .IP \(bu 2
  255427. 9fff35a959 Some small fixes
  255428. .IP \(bu 2
  255429. 54a7089fd6 Link the new labels doc in contributing and hacking docs
  255430. .IP \(bu 2
  255431. 375695e696 Add pull request label definitions
  255432. .IP \(bu 2
  255433. de945638d3 Add Feature Request label definition
  255434. .IP \(bu 2
  255435. 684f291bd4 Add issue definition and augment functional areas section
  255436. .IP \(bu 2
  255437. 2da13dd525 Start a "what are all of these labels for?" doc
  255438. .UNINDENT
  255439. .IP \(bu 2
  255440. \fBISSUE\fP \fI\%#24154\fP: (\fI\%ssgward\fP) Exception when running cp.get_url (refs: \fI\%#24336\fP)
  255441. .IP \(bu 2
  255442. \fBPR\fP \fI\%#24336\fP: (\fI\%twangboy\fP) Added line to give more descriptive error
  255443. @ \fI2015\-06\-04 19:56:00 UTC\fP
  255444. .INDENT 2.0
  255445. .IP \(bu 2
  255446. 485116c2cc Merge pull request \fI\%#24336\fP from twangboy/fix_cp_get_url
  255447. .IP \(bu 2
  255448. 37b11f931c Added line to give more descriptive error
  255449. .UNINDENT
  255450. .IP \(bu 2
  255451. \fBPR\fP \fI\%#24413\fP: (\fI\%techhat\fP) Add more namespaced functions to GoGrid driver
  255452. @ \fI2015\-06\-04 19:51:22 UTC\fP
  255453. .INDENT 2.0
  255454. .IP \(bu 2
  255455. b3d39cc0e8 Merge pull request \fI\%#24413\fP from techhat/gogridnamespace
  255456. .IP \(bu 2
  255457. 1b397cb6fe Adding blank line
  255458. .IP \(bu 2
  255459. da08cc9aac Add more namespaced functions to GoGrid driver
  255460. .UNINDENT
  255461. .IP \(bu 2
  255462. \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)
  255463. .IP \(bu 2
  255464. \fBPR\fP \fI\%#24399\fP: (\fI\%kiorky\fP) Versionvirtual (refs: \fI\%#24398\fP)
  255465. @ \fI2015\-06\-04 18:02:22 UTC\fP
  255466. .INDENT 2.0
  255467. .IP \(bu 2
  255468. \fBPR\fP \fI\%#24398\fP: (\fI\%kiorky\fP) VirtualName for states.apt (refs: \fI\%#24399\fP)
  255469. .IP \(bu 2
  255470. 27f109bd76 Merge pull request \fI\%#24399\fP from makinacorpus/versionvirtual
  255471. .IP \(bu 2
  255472. 235c78ddfe Use apt_pkg.version_compare if available
  255473. .IP \(bu 2
  255474. 1c0cd459f8 reindent block to isolate conflict on merge forward
  255475. .IP \(bu 2
  255476. 699eceab64 use var to isolate conflict on merge forward
  255477. .UNINDENT
  255478. .IP \(bu 2
  255479. \fBPR\fP \fI\%#24371\fP: (\fI\%joejulian\fP) 2015.5 tls module tests
  255480. @ \fI2015\-06\-04 15:20:16 UTC\fP
  255481. .INDENT 2.0
  255482. .IP \(bu 2
  255483. deaee68b89 Merge pull request \fI\%#24371\fP from joejulian/2015.5_tls_module_tests
  255484. .IP \(bu 2
  255485. 4c5dee1e25 Add @destructiveTest decorator to destructive tests
  255486. .IP \(bu 2
  255487. 274bbd4d43 Accept results from older pyOpenSSL
  255488. .IP \(bu 2
  255489. 161f913522 All cert info should be in UTC always
  255490. .IP \(bu 2
  255491. 9affcca766 See the whole diff if dict compare fails
  255492. .IP \(bu 2
  255493. 94f620857c Ignore extensions for now. Resolve this as part of fixing issue 24338.
  255494. .IP \(bu 2
  255495. 84904d31f1 Mask lint warning for unused imported module
  255496. .IP \(bu 2
  255497. 5675b78459 Do not test if PyOpenSSL is not installed
  255498. .IP \(bu 2
  255499. 563cc66311 Add tls tests
  255500. .UNINDENT
  255501. .IP \(bu 2
  255502. \fBPR\fP \fI\%#24403\fP: (\fI\%jayeshka\fP) adding states/process unit test case.
  255503. @ \fI2015\-06\-04 15:19:01 UTC\fP
  255504. .INDENT 2.0
  255505. .IP \(bu 2
  255506. 84686ee695 Merge pull request \fI\%#24403\fP from jayeshka/process_states\-unit\-test
  255507. .IP \(bu 2
  255508. fcb71fb35e adding states/process unit test case.
  255509. .UNINDENT
  255510. .IP \(bu 2
  255511. \fBPR\fP \fI\%#24402\fP: (\fI\%jayeshka\fP) adding states/pyenv unit test case.
  255512. @ \fI2015\-06\-04 15:18:11 UTC\fP
  255513. .INDENT 2.0
  255514. .IP \(bu 2
  255515. 35de8d72db Merge pull request \fI\%#24402\fP from jayeshka/pyenv_states\-unit\-test
  255516. .IP \(bu 2
  255517. 5f263ab48b adding states/pyenc unit test case.
  255518. .UNINDENT
  255519. .IP \(bu 2
  255520. \fBPR\fP \fI\%#24401\fP: (\fI\%jayeshka\fP) adding states/powerpath unit test case.
  255521. @ \fI2015\-06\-04 15:17:46 UTC\fP
  255522. .INDENT 2.0
  255523. .IP \(bu 2
  255524. 632f838838 Merge pull request \fI\%#24401\fP from jayeshka/powerpath\-states\-unit\-test
  255525. .IP \(bu 2
  255526. 49ff9272ce adding states/powerpath unit test case.
  255527. .UNINDENT
  255528. .IP \(bu 2
  255529. \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)
  255530. .IP \(bu 2
  255531. \fBPR\fP \fI\%#24400\fP: (\fI\%kiorky\fP) Aptversion
  255532. @ \fI2015\-06\-04 15:17:19 UTC\fP
  255533. .INDENT 2.0
  255534. .IP \(bu 2
  255535. 0a6e5e0d96 Merge pull request \fI\%#24400\fP from makinacorpus/aptversion
  255536. .IP \(bu 2
  255537. e15cb936b5 Use apt_pkg.version_compare if available
  255538. .IP \(bu 2
  255539. 953725a563 Fix too much quoting in apt.version_cmp
  255540. .UNINDENT
  255541. .IP \(bu 2
  255542. \fBPR\fP \fI\%#24385\fP: (\fI\%jeanpralo\fP) Fix salt.modules.dockerio.start method
  255543. @ \fI2015\-06\-04 15:00:22 UTC\fP
  255544. .INDENT 2.0
  255545. .IP \(bu 2
  255546. a904055d28 Merge pull request \fI\%#24385\fP from jeanpralo/Fix\-binds\-dockerio.start
  255547. .IP \(bu 2
  255548. 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
  255549. .UNINDENT
  255550. .IP \(bu 2
  255551. \fBPR\fP \fI\%#24381\fP: (\fI\%justinta\fP) Disabled flaky test to review later
  255552. @ \fI2015\-06\-04 14:57:43 UTC\fP
  255553. .INDENT 2.0
  255554. .IP \(bu 2
  255555. 9890bc4e43 Merge pull request \fI\%#24381\fP from jtand/seed_test
  255556. .IP \(bu 2
  255557. 7570ae9132 Disabled flaky test to review later
  255558. .UNINDENT
  255559. .IP \(bu 2
  255560. \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)
  255561. .IP \(bu 2
  255562. \fBPR\fP \fI\%#24382\fP: (\fI\%basepi\fP) [2015.5] Handle CommandExecutionError in grains commands, Fixes \fI\%#23342\fP
  255563. @ \fI2015\-06\-04 12:44:04 UTC\fP
  255564. .INDENT 2.0
  255565. .IP \(bu 2
  255566. b3fa8fefcb Merge pull request \fI\%#24382\fP from basepi/grainscommandnotfound23342
  255567. .IP \(bu 2
  255568. 85b91d64cc Handle CommandExecutionError in grains commands
  255569. .UNINDENT
  255570. .IP \(bu 2
  255571. \fBPR\fP \fI\%#24379\fP: (\fI\%Starblade42\fP) Fixes an issue where Pagerduty states/modules couldn\(aqt find their profile in the Pillar
  255572. @ \fI2015\-06\-04 12:41:13 UTC\fP
  255573. .INDENT 2.0
  255574. .IP \(bu 2
  255575. 52587a4fc1 Merge pull request \fI\%#24379\fP from Starblade42/2015.5
  255576. .IP \(bu 2
  255577. b93dc5ef6c Linting!
  255578. .IP \(bu 2
  255579. 2dd5904119 Fixes an issue where Pagerduty states/modules couldn\(aqt find its profile in the Pillar
  255580. .UNINDENT
  255581. .IP \(bu 2
  255582. \fBPR\fP \fI\%#24366\fP: (\fI\%terminalmage\fP) Use yes $\(aq\en\(aq instead of printf \(aq\en\(aq for pecl commands
  255583. @ \fI2015\-06\-03 21:28:58 UTC\fP
  255584. .INDENT 2.0
  255585. .IP \(bu 2
  255586. 3ca35d1ec3 Merge pull request \fI\%#24366\fP from terminalmage/pecl\-yes
  255587. .IP \(bu 2
  255588. dcd9ad8b6e Use yes $\(aqn\(aq instead of printf \(aqn\(aq for pecl commands
  255589. .UNINDENT
  255590. .IP \(bu 2
  255591. \fBISSUE\fP \fI\%#24284\fP: (\fI\%kiorky\fP) systemd lxc containers need use_vt=True at lxc\-start stage (refs: \fI\%#24348\fP)
  255592. .INDENT 2.0
  255593. .IP \(bu 2
  255594. \fBPR\fP \fI\%#548\fP: (\fI\%Lanzaa\fP) Salt is now platform dependent. Use get_python_lib(1) (refs: \fI\%#24348\fP)
  255595. .UNINDENT
  255596. .IP \(bu 2
  255597. \fBPR\fP \fI\%#24348\fP: (\fI\%kiorky\fP) Try to close input pipes before calling lxc\-start
  255598. @ \fI2015\-06\-03 19:38:07 UTC\fP
  255599. .INDENT 2.0
  255600. .IP \(bu 2
  255601. 86a3b317c6 Merge pull request \fI\%#24348\fP from makinacorpus/lxcpre
  255602. .IP \(bu 2
  255603. 0cb11a2767 lxc: typo
  255604. .IP \(bu 2
  255605. d71efa6d66 Try to close input pipes before calling lxc\-start
  255606. .UNINDENT
  255607. .UNINDENT
  255608. .SS Salt 2015.5.4 Release Notes
  255609. .INDENT 0.0
  255610. .TP
  255611. .B release
  255612. 2015\-08\-13
  255613. .UNINDENT
  255614. .sp
  255615. Version 2015.5.4 is a bugfix release for 2015.5.0\&.
  255616. .SS Statistics
  255617. .INDENT 0.0
  255618. .IP \(bu 2
  255619. Total Merges: \fB247\fP
  255620. .IP \(bu 2
  255621. Total Issue References: \fB138\fP
  255622. .IP \(bu 2
  255623. Total PR References: \fB312\fP
  255624. .IP \(bu 2
  255625. 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)
  255626. .UNINDENT
  255627. .SS Bug Fixes
  255628. .INDENT 0.0
  255629. .IP \(bu 2
  255630. The \fBcron.present\fP state now correctly
  255631. defaults to state ID as identifier.
  255632. .UNINDENT
  255633. .SS Salt\-Cloud Changes
  255634. .INDENT 0.0
  255635. .IP \(bu 2
  255636. When querying for VMs in the \fBdigital_ocean_v2\fP cloud driver, the number of
  255637. VMs to include in a page was changed from 20 (default) to 200 to reduce the
  255638. number of API calls to Digital Ocean.
  255639. .IP \(bu 2
  255640. The \fBvmware\fP salt\-cloud driver was back\-ported from the develop branch in
  255641. order for installations of Salt that are older than 2015.8.0 to be able to
  255642. use the \fBvmware\fP driver without stack\-tracing on various deprecation paths
  255643. that were implemented in the 2015.8.0 release.
  255644. .UNINDENT
  255645. .SS Changelog for v2015.5.3..v2015.5.4
  255646. .sp
  255647. \fIGenerated at: 2018\-05\-27 21:59:14 UTC\fP
  255648. .INDENT 0.0
  255649. .IP \(bu 2
  255650. \fBPR\fP \fI\%#26292\fP: (\fI\%jquast\fP) Rabbitmq 3.2.4 on Ubuntu has "...done.", not "...done"
  255651. @ \fI2015\-08\-13 19:53:29 UTC\fP
  255652. .INDENT 2.0
  255653. .IP \(bu 2
  255654. 0a5d1307c4 Merge pull request \fI\%#26292\fP from jquast/backport\-ubuntu\-rabbitmq\-fix
  255655. .IP \(bu 2
  255656. 39ef653bc2 Rabbitmq 3.2.4 on Ubuntu has ...done. not ...done, change the if to be more portable
  255657. .UNINDENT
  255658. .IP \(bu 2
  255659. \fBPR\fP \fI\%#26296\fP: (\fI\%jquast\fP) bugfix missing \(aqrunas=None\(aq for rabbitmqctl cmds (backport to 2015.5)
  255660. @ \fI2015\-08\-13 19:52:40 UTC\fP
  255661. .INDENT 2.0
  255662. .IP \(bu 2
  255663. 21cc3c3bf6 Merge pull request \fI\%#26296\fP from jquast/bugfix\-runas\-rabbitmqctl\-2015.5
  255664. .IP \(bu 2
  255665. eb77320786 bugfix missing \(aqrunas=None\(aq for rabbitmqctl cmds
  255666. .UNINDENT
  255667. .IP \(bu 2
  255668. \fBISSUE\fP \fI\%#25618\fP: (\fI\%twangboy\fP) Fix reg.py to work with the registry properly (refs: \fI\%#26268\fP)
  255669. .IP \(bu 2
  255670. \fBPR\fP \fI\%#26293\fP: (\fI\%jfindlay\fP) Fix \fI\%#26268\fP
  255671. @ \fI2015\-08\-13 19:48:06 UTC\fP
  255672. .INDENT 2.0
  255673. .IP \(bu 2
  255674. \fBPR\fP \fI\%#26268\fP: (\fI\%twangboy\fP) Multiple improvements to reg executionmod and state mod (refs: \fI\%#26293\fP)
  255675. .IP \(bu 2
  255676. ee59d154d7 Merge pull request \fI\%#26293\fP from jfindlay/reggie
  255677. .IP \(bu 2
  255678. 91ea964556 add versionadded to reg exec and state mods
  255679. .IP \(bu 2
  255680. 3348b726c9 fix state/reg unit tests
  255681. .IP \(bu 2
  255682. 3f74a389ce return test results when test=True
  255683. .IP \(bu 2
  255684. a1274c438d I might have fixed some tests... I might have made them worse
  255685. .IP \(bu 2
  255686. 7393adf5a8 Fixed some lint
  255687. .IP \(bu 2
  255688. 787c88a283 Multiple improvements to reg executionmod and state mod
  255689. .UNINDENT
  255690. .IP \(bu 2
  255691. \fBISSUE\fP \fI\%#25192\fP: (\fI\%deuscapturus\fP) 2015.5.2 boto_cloudwatch_alarm.present not working. (refs: \fI\%#26290\fP)
  255692. .IP \(bu 2
  255693. \fBPR\fP \fI\%#26290\fP: (\fI\%rallytime\fP) Only call convert_to_arn when action name is provided
  255694. @ \fI2015\-08\-13 18:48:58 UTC\fP
  255695. .INDENT 2.0
  255696. .IP \(bu 2
  255697. 5dd5ac1198 Merge pull request \fI\%#26290\fP from rallytime/fix\-25192
  255698. .IP \(bu 2
  255699. a1f90fa070 Only call convert_to_arn when action name is provided
  255700. .UNINDENT
  255701. .IP \(bu 2
  255702. \fBPR\fP \fI\%#26288\fP: (\fI\%bbinet\fP) allow to delete grains which value is False
  255703. @ \fI2015\-08\-13 18:24:36 UTC\fP
  255704. .INDENT 2.0
  255705. .IP \(bu 2
  255706. c81dc0b62f Merge pull request \fI\%#26288\fP from bbinet/grains\-absent\-fix
  255707. .IP \(bu 2
  255708. f46722aaeb allow to delete grains which value is False
  255709. .UNINDENT
  255710. .IP \(bu 2
  255711. \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)
  255712. .IP \(bu 2
  255713. \fBPR\fP \fI\%#26263\fP: (\fI\%rallytime\fP) Don\(aqt make changes when test=True for openstack present/absent funcs
  255714. @ \fI2015\-08\-13 16:30:31 UTC\fP
  255715. .INDENT 2.0
  255716. .IP \(bu 2
  255717. 65ab5aa495 Merge pull request \fI\%#26263\fP from rallytime/fix\-24882
  255718. .IP \(bu 2
  255719. 86b8161d22 Mock test key in __opts__ dict
  255720. .IP \(bu 2
  255721. 298685bbb2 Don\(aqt make changes when test=True for openstack present/absent funcs
  255722. .UNINDENT
  255723. .IP \(bu 2
  255724. \fBISSUE\fP \fI\%#24484\fP: (\fI\%bailsman\fP) clouds/ec2.py: create_snapshot throws exception (refs: \fI\%#26265\fP)
  255725. .IP \(bu 2
  255726. \fBPR\fP \fI\%#26265\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on query return in ec2.create_snapshot
  255727. @ \fI2015\-08\-13 16:28:48 UTC\fP
  255728. .INDENT 2.0
  255729. .IP \(bu 2
  255730. 3d1a9cfedd Merge pull request \fI\%#26265\fP from rallytime/fix\-24484
  255731. .IP \(bu 2
  255732. 4975300591 Don\(aqt stacktrace on query return in ec2.create_snapshot
  255733. .UNINDENT
  255734. .IP \(bu 2
  255735. \fBPR\fP \fI\%#26285\fP: (\fI\%stanislavb\fP) Remove explicit version from instance identity URL
  255736. @ \fI2015\-08\-13 16:25:32 UTC\fP
  255737. .INDENT 2.0
  255738. .IP \(bu 2
  255739. 5778cb3f01 Merge pull request \fI\%#26285\fP from stanislavb/2015.5
  255740. .IP \(bu 2
  255741. 1f18f4f91e Remove explicit version from instance identity URL
  255742. .UNINDENT
  255743. .IP \(bu 2
  255744. \fBPR\fP \fI\%#26275\fP: (\fI\%cachedout\fP) Re\-init modules on multi\-master reconnect
  255745. @ \fI2015\-08\-13 15:52:50 UTC\fP
  255746. .INDENT 2.0
  255747. .IP \(bu 2
  255748. 679dc089c0 Merge pull request \fI\%#26275\fP from cachedout/mm_reinit
  255749. .IP \(bu 2
  255750. 1e0473c04a Re\-init modules on multi\-master reconnect
  255751. .UNINDENT
  255752. .IP \(bu 2
  255753. \fBPR\fP \fI\%#26273\fP: (\fI\%garethgreenaway\fP) Fixes to schedule module in 2015.5
  255754. @ \fI2015\-08\-13 15:34:43 UTC\fP
  255755. .INDENT 2.0
  255756. .IP \(bu 2
  255757. 75fff28779 Merge pull request \fI\%#26273\fP from garethgreenaway/2015_5_schedule_list_show_jobs_enabled
  255758. .IP \(bu 2
  255759. 1aad4b1b4f Jobs are enabled by default but schedule.list does not show an enabled jobs as being enabled by default. This change fixes that.
  255760. .UNINDENT
  255761. .IP \(bu 2
  255762. \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)
  255763. .IP \(bu 2
  255764. \fBPR\fP \fI\%#26271\fP: (\fI\%rallytime\fP) Fix del_root_vol_on_destroy and del_all_vols_on_destroy functionality on ec2
  255765. @ \fI2015\-08\-12 23:22:47 UTC\fP
  255766. .INDENT 2.0
  255767. .IP \(bu 2
  255768. 10af22775a Merge pull request \fI\%#26271\fP from rallytime/fix\-24483
  255769. .IP \(bu 2
  255770. 139fbb93bc Fix del_root_vol_on_destroy and del_all_vols_on_destroy functionality on ec2
  255771. .UNINDENT
  255772. .IP \(bu 2
  255773. \fBISSUE\fP \fI\%#25958\fP: (\fI\%anlutro\fP) Cron identifier does not default to state ID as documented (refs: \fI\%#26219\fP)
  255774. .IP \(bu 2
  255775. \fBPR\fP \fI\%#26219\fP: (\fI\%anlutro\fP) cron: make identifier default to state ID
  255776. @ \fI2015\-08\-12 18:42:33 UTC\fP
  255777. .INDENT 2.0
  255778. .IP \(bu 2
  255779. 8e1b5da2e0 Merge pull request \fI\%#26219\fP from alprs/fix\-cron_identifier_default
  255780. .IP \(bu 2
  255781. 1f02e1671b cron: fix a typo in the tests
  255782. .IP \(bu 2
  255783. a86b1b7f94 add release note about cron state changes
  255784. .IP \(bu 2
  255785. 9511e392ce cron: read full length of multi\-line comments
  255786. .IP \(bu 2
  255787. 9b18cd9050 cron: more descriptive tests, updated to reflect new behavior
  255788. .IP \(bu 2
  255789. f22ad837c3 cron: change identifier default value to False
  255790. .IP \(bu 2
  255791. ad444b6e7b cron identifier: default to state id
  255792. .UNINDENT
  255793. .IP \(bu 2
  255794. \fBISSUE\fP \fI\%#26207\fP: (\fI\%fullermd\fP) group members setting fails with obscure error message on FreeBSD (refs: \fI\%#26237\fP)
  255795. .IP \(bu 2
  255796. \fBPR\fP \fI\%#26257\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26237\fP to 2015.5
  255797. @ \fI2015\-08\-12 18:40:35 UTC\fP
  255798. .INDENT 2.0
  255799. .IP \(bu 2
  255800. \fBPR\fP \fI\%#26237\fP: (\fI\%silenius\fP) fix issue \fI\%#26207\fP (refs: \fI\%#26257\fP)
  255801. .IP \(bu 2
  255802. eebcade533 Merge pull request \fI\%#26257\fP from rallytime/bp\-26237
  255803. .IP \(bu 2
  255804. d57fdbc6a0 Add versionadded to new members function
  255805. .IP \(bu 2
  255806. dad1920626 fix issue \fI\%#26207\fP
  255807. .UNINDENT
  255808. .IP \(bu 2
  255809. \fBPR\fP \fI\%#26258\fP: (\fI\%nmadhok\fP) Fix permission on tests/runtests.py on 2015.5 branch
  255810. @ \fI2015\-08\-12 18:40:04 UTC\fP
  255811. .INDENT 2.0
  255812. .IP \(bu 2
  255813. d7c8169dfb Merge pull request \fI\%#26258\fP from nmadhok/fix\-permission
  255814. .IP \(bu 2
  255815. d94485d336 Fix permission on tests/runtests.py on 2015.5 branch
  255816. .UNINDENT
  255817. .IP \(bu 2
  255818. \fBPR\fP \fI\%#26261\fP: (\fI\%nmadhok\fP) Correct spelling of integration in docs
  255819. @ \fI2015\-08\-12 18:14:48 UTC\fP
  255820. .INDENT 2.0
  255821. .IP \(bu 2
  255822. 74b70c37b7 Merge pull request \fI\%#26261\fP from nmadhok/doc\-fix\-2015.5
  255823. .IP \(bu 2
  255824. 714f9766e7 Correct spelling of integration in docs
  255825. .UNINDENT
  255826. .IP \(bu 2
  255827. \fBPR\fP \fI\%#26247\fP: (\fI\%nmadhok\fP) Initial commit of unit tests for vmware cloud driver
  255828. @ \fI2015\-08\-12 16:58:24 UTC\fP
  255829. .INDENT 2.0
  255830. .IP \(bu 2
  255831. de00c181f8 Merge pull request \fI\%#26247\fP from nmadhok/vmware\-cloud\-test\-2015.5
  255832. .IP \(bu 2
  255833. 6cc5f97e92 Lint Fix
  255834. .IP \(bu 2
  255835. a8bfe5ec1f Initial commit of unit tests for vmware cloud driver
  255836. .UNINDENT
  255837. .IP \(bu 2
  255838. \fBPR\fP \fI\%#26246\fP: (\fI\%nmadhok\fP) Backport additions to VMware cloud driver from develop to 2015.5 branch
  255839. @ \fI2015\-08\-12 15:11:26 UTC\fP
  255840. .INDENT 2.0
  255841. .IP \(bu 2
  255842. d14d7b2c0e Merge pull request \fI\%#26246\fP from nmadhok/vmware\-cloud\-driver\-additions\-2015.5
  255843. .IP \(bu 2
  255844. 5227aa94bc Backport additions to VMware cloud driver from develop to 2015.5 branch
  255845. .UNINDENT
  255846. .IP \(bu 2
  255847. \fBPR\fP \fI\%#26239\fP: (\fI\%opdude\fP) Fixed documentation to match function name
  255848. @ \fI2015\-08\-12 14:48:52 UTC\fP
  255849. .INDENT 2.0
  255850. .IP \(bu 2
  255851. 87b300d7b3 Merge pull request \fI\%#26239\fP from Unity\-Technologies/2015.5
  255852. .IP \(bu 2
  255853. fc18751710 Fixed documentation to match function name
  255854. .UNINDENT
  255855. .IP \(bu 2
  255856. \fBPR\fP \fI\%#26232\fP: (\fI\%garethgreenaway\fP) Fix to trust_key in gpg module for 2015.5.
  255857. @ \fI2015\-08\-12 04:48:27 UTC\fP
  255858. .INDENT 2.0
  255859. .IP \(bu 2
  255860. a93b96c9ba Merge pull request \fI\%#26232\fP from garethgreenaway/2015_5_gpg_trust_key_fix
  255861. .IP \(bu 2
  255862. e174c41887 Fix to trust_key in gpg module for 2015.5.
  255863. .UNINDENT
  255864. .IP \(bu 2
  255865. \fBISSUE\fP \fI\%#25802\fP: (\fI\%jefftucker\fP) Running module "npm.list" fails on Windows for masterless minion (refs: \fI\%#26084\fP)
  255866. .IP \(bu 2
  255867. \fBPR\fP \fI\%#26084\fP: (\fI\%twangboy\fP) Added python_shell=True, quoted user input
  255868. @ \fI2015\-08\-10 21:29:35 UTC\fP
  255869. .INDENT 2.0
  255870. .IP \(bu 2
  255871. b57da552ff Merge pull request \fI\%#26084\fP from twangboy/fix_25802
  255872. .IP \(bu 2
  255873. 4503ed5b34 Fixed but with multiple packages, was causing tests to fail
  255874. .IP \(bu 2
  255875. f05e3e72a3 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25802
  255876. .UNINDENT
  255877. .IP \(bu 2
  255878. \fBPR\fP \fI\%#26183\fP: (\fI\%cro\fP) Fix LDAP configuration issue.
  255879. @ \fI2015\-08\-10 19:09:41 UTC\fP
  255880. .INDENT 2.0
  255881. .IP \(bu 2
  255882. c3814137a3 Merge pull request \fI\%#26183\fP from cro/anonldap2
  255883. .IP \(bu 2
  255884. aa5e9c80b5 Lint roller
  255885. .IP \(bu 2
  255886. 79833e3f8a Cherry pick index.rst change.
  255887. .IP \(bu 2
  255888. 99f2c27399 Documentation update for anonymous bind issue.
  255889. .IP \(bu 2
  255890. 793eed7b96 Cherry pick master.py groups check
  255891. .UNINDENT
  255892. .IP \(bu 2
  255893. \fBPR\fP \fI\%#26186\fP: (\fI\%jacobhammons\fP) regenerated man pages
  255894. @ \fI2015\-08\-10 19:07:44 UTC\fP
  255895. .INDENT 2.0
  255896. .IP \(bu 2
  255897. 3233ed4675 Merge pull request \fI\%#26186\fP from jacobhammons/man\-page\-updates
  255898. .IP \(bu 2
  255899. bf2dad913f regenerated man pages
  255900. .UNINDENT
  255901. .IP \(bu 2
  255902. \fBPR\fP \fI\%#26182\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  255903. @ \fI2015\-08\-10 19:00:10 UTC\fP
  255904. .INDENT 2.0
  255905. .IP \(bu 2
  255906. d48bcf7598 Merge pull request \fI\%#26182\fP from basepi/merge\-forward\-2015.5
  255907. .IP \(bu 2
  255908. 32f5345d7d Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  255909. .INDENT 2.0
  255910. .IP \(bu 2
  255911. abdf2935c4 Merge pull request \fI\%#26116\fP from corux/fix\-escape\-content
  255912. .INDENT 2.0
  255913. .IP \(bu 2
  255914. fd913ddc36 Append/prepend: search for full line with escaped content
  255915. .UNINDENT
  255916. .IP \(bu 2
  255917. 106356d98d Merge pull request \fI\%#26088\fP from jacobhammons/master\-finger
  255918. .INDENT 2.0
  255919. .IP \(bu 2
  255920. 133d5f7885 some small changes
  255921. .IP \(bu 2
  255922. d220c83f77 master_finger configuration docs switch a script to use \fI\%https://\fP instead of \fI\%http://\fP Refs \fI\%#25751\fP
  255923. .UNINDENT
  255924. .IP \(bu 2
  255925. 4bd4bc41f2 Merge pull request \fI\%#26047\fP from jacobhammons/win\-downloads
  255926. .INDENT 2.0
  255927. .IP \(bu 2
  255928. 7c162d181c Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP Refs \fI\%#25961\fP
  255929. .UNINDENT
  255930. .UNINDENT
  255931. .UNINDENT
  255932. .IP \(bu 2
  255933. \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)
  255934. .IP \(bu 2
  255935. \fBPR\fP \fI\%#26000\fP: (\fI\%driskell\fP) Implement full event caching for subscribed tags
  255936. @ \fI2015\-08\-10 18:57:17 UTC\fP
  255937. .INDENT 2.0
  255938. .IP \(bu 2
  255939. f39780f8ce Merge pull request \fI\%#26000\fP from driskell/fix_discarded_events
  255940. .IP \(bu 2
  255941. 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
  255942. .UNINDENT
  255943. .IP \(bu 2
  255944. \fBPR\fP \fI\%#26175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26153\fP to 2015.5
  255945. @ \fI2015\-08\-10 18:22:32 UTC\fP
  255946. .INDENT 2.0
  255947. .IP \(bu 2
  255948. \fBPR\fP \fI\%#26153\fP: (\fI\%loa\fP) Fix dockerio state documentation typo (refs: \fI\%#26175\fP)
  255949. .IP \(bu 2
  255950. c01b4cf150 Merge pull request \fI\%#26175\fP from rallytime/bp\-26153
  255951. .IP \(bu 2
  255952. 9a263067e9 Fix dockerio state documentation typo
  255953. .UNINDENT
  255954. .IP \(bu 2
  255955. \fBISSUE\fP \fI\%#26024\fP: (\fI\%jpic\fP) lxc_conf_unset in cloud.profile is ignored (refs: \fI\%#26147\fP)
  255956. .IP \(bu 2
  255957. \fBPR\fP \fI\%#26177\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26147\fP to 2015.5
  255958. @ \fI2015\-08\-10 18:22:01 UTC\fP
  255959. .INDENT 2.0
  255960. .IP \(bu 2
  255961. \fBPR\fP \fI\%#26147\fP: (\fI\%martinhoefling\fP) Fixes \fI\%#26024\fP (refs: \fI\%#26177\fP)
  255962. .IP \(bu 2
  255963. ca80f33bfd Merge pull request \fI\%#26177\fP from rallytime/bp\-26147
  255964. .IP \(bu 2
  255965. 323c3ab53c Fixes \fI\%#26024\fP
  255966. .UNINDENT
  255967. .IP \(bu 2
  255968. \fBISSUE\fP \fI\%#21082\fP: (\fI\%clinta\fP) master_type failover does not failover on DNS errors (refs: \fI\%#25404\fP)
  255969. .IP \(bu 2
  255970. \fBPR\fP \fI\%#26179\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25404\fP to 2015.5
  255971. @ \fI2015\-08\-10 18:21:50 UTC\fP
  255972. .INDENT 2.0
  255973. .IP \(bu 2
  255974. \fBPR\fP \fI\%#25404\fP: (\fI\%DmitryKuzmenko\fP) Fixed minion failover to next master on DNS errors. (refs: \fI\%#26179\fP)
  255975. .IP \(bu 2
  255976. 1213b8d706 Merge pull request \fI\%#26179\fP from rallytime/bp\-25404
  255977. .IP \(bu 2
  255978. 52ab9fc1fb Fixed minion failover to next master on DNS errors.
  255979. .UNINDENT
  255980. .IP \(bu 2
  255981. \fBISSUE\fP \fI\%#26112\fP: (\fI\%wt\fP) state.template fails with unclear error with template with only an include (refs: \fI\%#26180\fP)
  255982. .IP \(bu 2
  255983. \fBPR\fP \fI\%#26180\fP: (\fI\%jfindlay\fP) fix processing of state.template
  255984. @ \fI2015\-08\-10 18:21:38 UTC\fP
  255985. .INDENT 2.0
  255986. .IP \(bu 2
  255987. b319c5ec04 Merge pull request \fI\%#26180\fP from jfindlay/templ_env
  255988. .IP \(bu 2
  255989. 5e46ea4441 check type of matches in render_state before iterating
  255990. .IP \(bu 2
  255991. c80299b918 insert saltenv to render_state args in state.template
  255992. .UNINDENT
  255993. .IP \(bu 2
  255994. \fBISSUE\fP \fI\%#26162\fP: (\fI\%nmadhok\fP) VMware cloud driver create function failing with traceback on latest develop (refs: \fI\%#26172\fP)
  255995. .IP \(bu 2
  255996. \fBPR\fP \fI\%#26172\fP: (\fI\%nmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it.
  255997. @ \fI2015\-08\-10 16:42:50 UTC\fP
  255998. .INDENT 2.0
  255999. .IP \(bu 2
  256000. ef5a4a47f6 Merge pull request \fI\%#26172\fP from nmadhok/backport\-cloud\-fix\-26163\-2015.5
  256001. .IP \(bu 2
  256002. 0f2b5f8ac8 Make sure variable is a dictionary before popping something from it.
  256003. .UNINDENT
  256004. .IP \(bu 2
  256005. \fBISSUE\fP \fI\%#26098\fP: (\fI\%rdinoff\fP) SALT.STATES.SLACK Doc update (refs: \fI\%#26168\fP)
  256006. .IP \(bu 2
  256007. \fBPR\fP \fI\%#26168\fP: (\fI\%cachedout\fP) Fix slack docs
  256008. @ \fI2015\-08\-10 14:57:18 UTC\fP
  256009. .INDENT 2.0
  256010. .IP \(bu 2
  256011. 2545df052a Merge pull request \fI\%#26168\fP from cachedout/fix_slack_docs
  256012. .IP \(bu 2
  256013. f421a936dc Fix slack docs
  256014. .UNINDENT
  256015. .IP \(bu 2
  256016. \fBISSUE\fP \fI\%#24106\fP: (\fI\%nvx\fP) fileclient.py#get_url ignores HTTP Auth again (2015.5 regression) (refs: \fI\%#26127\fP)
  256017. .IP \(bu 2
  256018. \fBPR\fP \fI\%#26127\fP: (\fI\%garethgreenaway\fP) Fixes to salt.utils.http related to cp.get_file_str bug.
  256019. @ \fI2015\-08\-10 14:38:25 UTC\fP
  256020. .INDENT 2.0
  256021. .IP \(bu 2
  256022. 9e6b0d6165 Merge pull request \fI\%#26127\fP from garethgreenaway/2015_5_24106
  256023. .IP \(bu 2
  256024. 66f640086a one more lint error
  256025. .IP \(bu 2
  256026. 317a8ec75c Disabling pylint for W0633, auth should only ever be a sequence at this location.
  256027. .IP \(bu 2
  256028. 08eaca4fe4 lint fixes.
  256029. .IP \(bu 2
  256030. 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
  256031. .UNINDENT
  256032. .IP \(bu 2
  256033. \fBISSUE\fP \fI\%#26141\fP: (\fI\%nmadhok\fP) salt\-cloud VMware driver fails with error in parsing configuration file (refs: \fI\%#26140\fP)
  256034. .IP \(bu 2
  256035. \fBISSUE\fP \fI\%#25809\fP: (\fI\%o\-sleep\fP) vmware cloud module error message (refs: \fI\%#26140\fP)
  256036. .IP \(bu 2
  256037. \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)
  256038. .IP \(bu 2
  256039. \fBPR\fP \fI\%#26140\fP: (\fI\%nmadhok\fP) VMware cloud driver fixes
  256040. @ \fI2015\-08\-10 13:15:58 UTC\fP
  256041. .INDENT 2.0
  256042. .IP \(bu 2
  256043. 3b65e1dd91 Merge pull request \fI\%#26140\fP from nmadhok/vmware\-cloud\-fixes
  256044. .IP \(bu 2
  256045. a1899b436c Correct provider name in profile example
  256046. .IP \(bu 2
  256047. 1f21876d21 Lint fixes
  256048. .IP \(bu 2
  256049. 0bd4fce9c1 Additional fixes to format_instance functions to display more information available
  256050. .IP \(bu 2
  256051. 4ee1b777e9 Change double quotes to single quotes in add_host config example
  256052. .IP \(bu 2
  256053. e132f06a5c Change double quotes to single quotes in provider configuration example
  256054. .IP \(bu 2
  256055. ad9895de07 Display error in else condition if connection is unsuccessful and does not have msg attribute. Fixes \fI\%#25809\fP
  256056. .UNINDENT
  256057. .IP \(bu 2
  256058. \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)
  256059. .IP \(bu 2
  256060. \fBPR\fP \fI\%#26137\fP: (\fI\%steverweber\fP) use device mac address if vmtools not active
  256061. @ \fI2015\-08\-09 03:05:36 UTC\fP
  256062. .INDENT 2.0
  256063. .IP \(bu 2
  256064. 474a250414 Merge pull request \fI\%#26137\fP from steverweber/vmware_macaddress_fix
  256065. .IP \(bu 2
  256066. 2589e389f0 use device mac address if vmtools not active
  256067. .UNINDENT
  256068. .IP \(bu 2
  256069. \fBPR\fP \fI\%#26119\fP: (\fI\%jodv\fP) Backport eauth bugfix to 2015.5
  256070. @ \fI2015\-08\-09 02:19:52 UTC\fP
  256071. .INDENT 2.0
  256072. .IP \(bu 2
  256073. 8a33797737 Merge pull request \fI\%#26119\fP from jodv/backport_eauth_bugfix
  256074. .IP \(bu 2
  256075. e1a7bb5e7b fix pylint error (unnecessary \(aqfinally\(aq clause may swallow exceptions unintentionally)
  256076. .IP \(bu 2
  256077. 5b5b4d8fe9 Fix issue with mixed user and group eauth perms
  256078. .IP \(bu 2
  256079. 0d2c6a67a5 Return all relevant perms on login
  256080. .UNINDENT
  256081. .IP \(bu 2
  256082. \fBPR\fP \fI\%#26135\fP: (\fI\%cro\fP) Fix proxy minions in 2015.5 and significantly update documentation.
  256083. @ \fI2015\-08\-09 02:19:21 UTC\fP
  256084. .INDENT 2.0
  256085. .IP \(bu 2
  256086. 2b8dcce0ca Merge pull request \fI\%#26135\fP from cro/pm20155_2
  256087. .IP \(bu 2
  256088. 28329fff55 These tests make no sense now that the proxy interface is module based and not object based.
  256089. .IP \(bu 2
  256090. b17b65d4de Fix lint.
  256091. .IP \(bu 2
  256092. f4263c8f17 Fix lint.
  256093. .IP \(bu 2
  256094. 6927251c09 Fix lint.
  256095. .IP \(bu 2
  256096. 08f1a43ff0 Fix lint.
  256097. .IP \(bu 2
  256098. 8261158b5a Fix lint.
  256099. .IP \(bu 2
  256100. b5e643b9cd Whoops...Don\(aqt log the entire proxy dictionary\-\-might have sensitive stuff in it.
  256101. .IP \(bu 2
  256102. 2acf3c5aa3 Remove some debugging statements, change some others to \(aqinfo\(aq level.
  256103. .IP \(bu 2
  256104. 37de6af686 More proxy minion updates
  256105. .IP \(bu 2
  256106. e79a182108 More proxy minion updates
  256107. .IP \(bu 2
  256108. 3b746ac2f6 Update to reflect refactor to LazyLoader
  256109. .IP \(bu 2
  256110. 5d390d3a5f Updates post meeting with Rick
  256111. .IP \(bu 2
  256112. d1213ce4a0 Updates post meeting with Rick
  256113. .IP \(bu 2
  256114. dd0b7c6937 Fix proxyobject confusion, now called proxymodule
  256115. .IP \(bu 2
  256116. 9b1599d436 Update to reflect refactor to LazyLoader
  256117. .UNINDENT
  256118. .IP \(bu 2
  256119. \fBPR\fP \fI\%#26132\fP: (\fI\%TheBigBear\fP) minor edit
  256120. @ \fI2015\-08\-08 21:05:34 UTC\fP
  256121. .INDENT 2.0
  256122. .IP \(bu 2
  256123. 2705b4a36a Merge pull request \fI\%#26132\fP from TheBigBear/patch\-5
  256124. .IP \(bu 2
  256125. 1d624d77bc minor edit
  256126. .UNINDENT
  256127. .IP \(bu 2
  256128. \fBISSUE\fP \fI\%#25915\fP: (\fI\%ari\fP) FreeBSD pkg install fails (refs: \fI\%#26133\fP)
  256129. .IP \(bu 2
  256130. \fBPR\fP \fI\%#26133\fP: (\fI\%amontalban\fP) Fixed \fI\%#25915\fP in salt/modules/pkgng.py and salt/states/pkg.py
  256131. @ \fI2015\-08\-08 21:05:05 UTC\fP
  256132. .INDENT 2.0
  256133. .IP \(bu 2
  256134. 3eac28f0f9 Merge pull request \fI\%#26133\fP from amontalban/fix\-bug\-25915
  256135. .IP \(bu 2
  256136. 6b0f4fca05 Fixed \fI\%#25915\fP in salt/modules/pkgng.py and salt/states/pkg.py
  256137. .UNINDENT
  256138. .IP \(bu 2
  256139. \fBPR\fP \fI\%#26111\fP: (\fI\%anlutro\fP) Better error messages when virtualenv creation fails
  256140. @ \fI2015\-08\-07 21:42:09 UTC\fP
  256141. .INDENT 2.0
  256142. .IP \(bu 2
  256143. 19c42b8b3a Merge pull request \fI\%#26111\fP from alprs/fix\-virtualenv_fail_message
  256144. .IP \(bu 2
  256145. b2913acc48 virtualenv: better error messages when creation fails
  256146. .UNINDENT
  256147. .IP \(bu 2
  256148. \fBISSUE\fP \fI\%#26093\fP: (\fI\%freedba\fP) archive.tar bug (refs: \fI\%#26110\fP)
  256149. .IP \(bu 2
  256150. \fBPR\fP \fI\%#26110\fP: (\fI\%jfindlay\fP) check for sources before adding them to cmd str
  256151. @ \fI2015\-08\-07 21:33:23 UTC\fP
  256152. .INDENT 2.0
  256153. .IP \(bu 2
  256154. 6d2835b464 Merge pull request \fI\%#26110\fP from jfindlay/tar_sources
  256155. .IP \(bu 2
  256156. 1b2f8905eb check for sources before adding them to cmd str
  256157. .UNINDENT
  256158. .IP \(bu 2
  256159. \fBPR\fP \fI\%#26106\fP: (\fI\%vr\-jack\fP) Update __init__.py
  256160. @ \fI2015\-08\-07 21:15:55 UTC\fP
  256161. .INDENT 2.0
  256162. .IP \(bu 2
  256163. 2d271b3612 Merge pull request \fI\%#26106\fP from vr\-jack/2015.5
  256164. .IP \(bu 2
  256165. 5664de6610 Update __init__.py
  256166. .UNINDENT
  256167. .IP \(bu 2
  256168. \fBISSUE\fP \fI\%#25983\fP: (\fI\%jmdcal\fP) Trying to get md5 of local zip (refs: \fI\%#25984\fP)
  256169. .IP \(bu 2
  256170. \fBPR\fP \fI\%#26101\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25984\fP to 2015.5
  256171. @ \fI2015\-08\-07 18:56:26 UTC\fP
  256172. .INDENT 2.0
  256173. .IP \(bu 2
  256174. \fBPR\fP \fI\%#25984\fP: (\fI\%jmdcal\fP) Support local files without md5sum (refs: \fI\%#26101\fP)
  256175. .IP \(bu 2
  256176. 40d41741c1 Merge pull request \fI\%#26101\fP from rallytime/bp\-25984
  256177. .IP \(bu 2
  256178. 3d279c0713 Pylint Fix
  256179. .IP \(bu 2
  256180. cced16a9f4 Support local files without md5sum
  256181. .UNINDENT
  256182. .IP \(bu 2
  256183. \fBPR\fP \fI\%#26080\fP: (\fI\%techhat\fP) Fix string checking in s3fs
  256184. @ \fI2015\-08\-06 23:36:09 UTC\fP
  256185. .INDENT 2.0
  256186. .IP \(bu 2
  256187. 0d3c2d549e Merge pull request \fI\%#26080\fP from techhat/fixlower
  256188. .IP \(bu 2
  256189. 8717a36963 Fix string checking in s3fs
  256190. .UNINDENT
  256191. .IP \(bu 2
  256192. \fBISSUE\fP \fI\%#26039\fP: (\fI\%basepi\fP) Update scheduler docs to use orchestrate instead of overstate (refs: \fI\%#26079\fP)
  256193. .IP \(bu 2
  256194. \fBPR\fP \fI\%#26079\fP: (\fI\%cachedout\fP) Update docs to remove state.over
  256195. @ \fI2015\-08\-06 23:35:26 UTC\fP
  256196. .INDENT 2.0
  256197. .IP \(bu 2
  256198. dc9c9b5a34 Merge pull request \fI\%#26079\fP from cachedout/issue_26039
  256199. .IP \(bu 2
  256200. f03f460af2 Update docs to remove state.over
  256201. .INDENT 2.0
  256202. .INDENT 3.5
  256203. .INDENT 0.0
  256204. .IP \(bu 2
  256205. 89d8faaeb1 Added python_shell=True, quoted user input
  256206. .UNINDENT
  256207. .UNINDENT
  256208. .UNINDENT
  256209. .UNINDENT
  256210. .IP \(bu 2
  256211. \fBPR\fP \fI\%#26058\fP: (\fI\%opdude\fP) Fix choco version on chocolatey versions below 0.9.9
  256212. @ \fI2015\-08\-06 18:50:10 UTC\fP
  256213. .INDENT 2.0
  256214. .IP \(bu 2
  256215. aa023f25b8 Merge pull request \fI\%#26058\fP from Unity\-Technologies/hotfix/fix\-choco\-pkg\-version\-2015\-5
  256216. .IP \(bu 2
  256217. beddb96b2b Fix choco version on chocolatey versions below 0.9.9
  256218. .UNINDENT
  256219. .IP \(bu 2
  256220. \fBPR\fP \fI\%#26068\fP: (\fI\%jfindlay\fP) fix autoruns.list looking in wrong directory
  256221. @ \fI2015\-08\-06 18:49:48 UTC\fP
  256222. .INDENT 2.0
  256223. .IP \(bu 2
  256224. fbe2584abe Merge pull request \fI\%#26068\fP from jfindlay/auto_fix
  256225. .IP \(bu 2
  256226. 1e9a850e23 fix autoruns.list looking in wrong directory
  256227. .UNINDENT
  256228. .IP \(bu 2
  256229. \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)
  256230. .IP \(bu 2
  256231. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#633\fP: (\fI\%neilmb\fP) Bootstrap install fails on python\-requests dependency (refs: \fI\%#26065\fP)
  256232. .IP \(bu 2
  256233. \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)
  256234. .IP \(bu 2
  256235. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#631\fP: (\fI\%DavidJFelix\fP) Stable broken in 15.04 even with \-P (refs: \fI\%#26065\fP)
  256236. .IP \(bu 2
  256237. \fBISSUE\fP \fI\%#636\fP: (\fI\%pille\fP) restict access to salt:// filesystem (refs: #\(gasaltstack/salt\-bootstrap#638\(ga_)
  256238. .IP \(bu 2
  256239. \fBISSUE\fP \fI\%#613\fP: (\fI\%thatch45\fP) Add timeout option to publish.publish (refs: #\(gasaltstack/salt\-bootstrap#634\(ga_)
  256240. .INDENT 2.0
  256241. .IP \(bu 2
  256242. \fBPR\fP \fI\%saltstack/salt\-bootstrap#638\fP: (\fI\%stanislavb\fP) Use prefix /usr for centos git install (refs: \fI\%#26065\fP)
  256243. .IP \(bu 2
  256244. \fBPR\fP \fI\%saltstack/salt\-bootstrap#634\fP: (\fI\%BretFisher\fP) bugfix: exit git root before removing it (refs: \fI\%#26065\fP)
  256245. .UNINDENT
  256246. .IP \(bu 2
  256247. \fBPR\fP \fI\%#26065\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap stable release v2015.06.08
  256248. @ \fI2015\-08\-06 17:09:35 UTC\fP
  256249. .INDENT 2.0
  256250. .IP \(bu 2
  256251. 5570408597 Merge pull request \fI\%#26065\fP from s0undt3ch/hotfix/bootstrap\-script\-2015.5
  256252. .IP \(bu 2
  256253. a430a62b01 Update to latest bootstrap stable release v2015.06.08
  256254. .UNINDENT
  256255. .IP \(bu 2
  256256. \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)
  256257. .IP \(bu 2
  256258. \fBPR\fP \fI\%#26061\fP: (\fI\%gmcwhistler\fP) Patch for issue \fI\%#25994\fP
  256259. @ \fI2015\-08\-06 17:07:34 UTC\fP
  256260. .INDENT 2.0
  256261. .IP \(bu 2
  256262. 83a1922196 Merge pull request \fI\%#26061\fP from gmcwhistler/2015.5
  256263. .IP \(bu 2
  256264. b9e89d0f2d Patch for issue \fI\%#25994\fP
  256265. .UNINDENT
  256266. .IP \(bu 2
  256267. \fBISSUE\fP \fI\%#26063\fP: (\fI\%saltstack\-bot\fP) not working with salt\-cloud shows unknown locale error (refs: \fI\%#26064\fP)
  256268. .IP \(bu 2
  256269. \fBPR\fP \fI\%#26064\fP: (\fI\%s0undt3ch\fP) Don\(aqt stacktrace when trying to get the default locale.
  256270. @ \fI2015\-08\-06 16:11:05 UTC\fP
  256271. .INDENT 2.0
  256272. .IP \(bu 2
  256273. 073fb2bdea Merge pull request \fI\%#26064\fP from s0undt3ch/issues/26063\-unknown\-locale
  256274. .IP \(bu 2
  256275. 8c6ab78b1d Don\(aqt stacktrace when trying to get the default locale.
  256276. .UNINDENT
  256277. .IP \(bu 2
  256278. \fBPR\fP \fI\%#26048\fP: (\fI\%jacobhammons\fP) Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  256279. @ \fI2015\-08\-05 22:59:50 UTC\fP
  256280. .INDENT 2.0
  256281. .IP \(bu 2
  256282. 0f44761d6e Merge pull request \fI\%#26048\fP from jacobhammons/win\-downloads2
  256283. .IP \(bu 2
  256284. 75243b61cf Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  256285. .UNINDENT
  256286. .IP \(bu 2
  256287. \fBISSUE\fP \fI\%#25616\fP: (\fI\%rallytime\fP) [2015.5] Provisioning Linodes Stacktraces (refs: \fI\%#26044\fP)
  256288. .IP \(bu 2
  256289. \fBPR\fP \fI\%#26044\fP: (\fI\%rallytime\fP) Make sure the key we\(aqre comparing is also lowercase
  256290. @ \fI2015\-08\-05 19:23:54 UTC\fP
  256291. .INDENT 2.0
  256292. .IP \(bu 2
  256293. dedcadc37e Merge pull request \fI\%#26044\fP from rallytime/fix\-25616
  256294. .IP \(bu 2
  256295. c2e3803810 Make sure the key we\(aqre comparing is also lowercase
  256296. .UNINDENT
  256297. .IP \(bu 2
  256298. \fBPR\fP \fI\%#26042\fP: (\fI\%jfindlay\fP) fix test mode logic in state docs
  256299. @ \fI2015\-08\-05 19:23:07 UTC\fP
  256300. .INDENT 2.0
  256301. .IP \(bu 2
  256302. f005bdfce6 Merge pull request \fI\%#26042\fP from jfindlay/result
  256303. .IP \(bu 2
  256304. a83059ca01 fix test mode logic in state docs
  256305. .UNINDENT
  256306. .IP \(bu 2
  256307. \fBISSUE\fP \fI\%#24460\fP: (\fI\%nicholascapo\fP) Survey runner does not follow \fI\-\-out\fP flag (refs: \fI\%#26036\fP)
  256308. .IP \(bu 2
  256309. \fBPR\fP \fI\%#26036\fP: (\fI\%nicholascapo\fP) survey.hash: Remove manually printed text
  256310. @ \fI2015\-08\-05 19:21:59 UTC\fP
  256311. .INDENT 2.0
  256312. .IP \(bu 2
  256313. 51ab6864b7 Merge pull request \fI\%#26036\fP from nicholascapo/survey.hash_follow_out_flag
  256314. .IP \(bu 2
  256315. 439ee9831c survey.hash: Remove manually printed text
  256316. .UNINDENT
  256317. .IP \(bu 2
  256318. \fBPR\fP \fI\%#26030\fP: (\fI\%opdude\fP) Fix a bug in choco version that returned odd data
  256319. @ \fI2015\-08\-05 16:30:25 UTC\fP
  256320. .INDENT 2.0
  256321. .IP \(bu 2
  256322. 6a4d18eba6 Merge pull request \fI\%#26030\fP from Unity\-Technologies/hotfix/fix\-choco\-pkg\-version\-2015\-5
  256323. .IP \(bu 2
  256324. 3dd96c0638 Fix a bug in choco version that returned odd data
  256325. .UNINDENT
  256326. .IP \(bu 2
  256327. \fBPR\fP \fI\%#26032\fP: (\fI\%jfindlay\fP) add test logic to state reult doc
  256328. @ \fI2015\-08\-05 16:28:32 UTC\fP
  256329. .INDENT 2.0
  256330. .IP \(bu 2
  256331. c96d3bb55e Merge pull request \fI\%#26032\fP from jfindlay/result
  256332. .IP \(bu 2
  256333. 0fd180e106 add test logic to state reult doc
  256334. .UNINDENT
  256335. .IP \(bu 2
  256336. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#26031\fP, \fI\%#25750\fP)
  256337. .IP \(bu 2
  256338. \fBPR\fP \fI\%#26031\fP: (\fI\%alekti\fP) Revert "Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP"
  256339. @ \fI2015\-08\-05 15:32:01 UTC\fP
  256340. .INDENT 2.0
  256341. .IP \(bu 2
  256342. bd14d85636 Merge pull request \fI\%#26031\fP from alekti/merge\-pull\-25750\-to\-2015.5
  256343. .IP \(bu 2
  256344. 5a7cab4dcc Revert "Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&."
  256345. .UNINDENT
  256346. .IP \(bu 2
  256347. \fBPR\fP \fI\%#26021\fP: (\fI\%anlutro\fP) Documentation: Specify versionadded for git.present shared argument
  256348. @ \fI2015\-08\-05 14:17:38 UTC\fP
  256349. .INDENT 2.0
  256350. .IP \(bu 2
  256351. d55e6e5fe9 Merge pull request \fI\%#26021\fP from alprs/docs\-git_present_shared_versionadded
  256352. .IP \(bu 2
  256353. 8fa678aaa7 specify versionadded for git.present shared argument
  256354. .UNINDENT
  256355. .IP \(bu 2
  256356. \fBISSUE\fP \fI\%#25701\fP: (\fI\%alekti\fP) Issue \fI\%#23764\fP regression (refs: \fI\%#25750\fP)
  256357. .IP \(bu 2
  256358. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#26031\fP, \fI\%#25750\fP)
  256359. .IP \(bu 2
  256360. \fBPR\fP \fI\%#26020\fP: (\fI\%alekti\fP) Correctly resolve conflict merging pull 25750 to 2015.5
  256361. @ \fI2015\-08\-05 14:16:58 UTC\fP
  256362. .INDENT 2.0
  256363. .IP \(bu 2
  256364. \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)
  256365. .IP \(bu 2
  256366. 5e17c5d230 Merge pull request \fI\%#26020\fP from alekti/merge\-pull\-25750\-to\-2015.5
  256367. .IP \(bu 2
  256368. 4b9d7426cc Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  256369. .UNINDENT
  256370. .IP \(bu 2
  256371. \fBISSUE\fP \fI\%#22241\fP: (\fI\%masterkorp\fP) Salt master not properly generating the map (refs: \fI\%#25358\fP)
  256372. .IP \(bu 2
  256373. \fBPR\fP \fI\%#26016\fP: (\fI\%basepi\fP) Revert "Deep merge of pillar lists"
  256374. @ \fI2015\-08\-05 04:59:52 UTC\fP
  256375. .INDENT 2.0
  256376. .IP \(bu 2
  256377. \fBPR\fP \fI\%#25358\fP: (\fI\%dkiser\fP) Deep merge of pillar lists (refs: \fI\%#26016\fP)
  256378. .IP \(bu 2
  256379. 53f7aadcd7 Merge pull request \fI\%#26016\fP from basepi/revert.25358
  256380. .IP \(bu 2
  256381. 8a0e8e0460 Revert "Deep merge of pillar lists"
  256382. .UNINDENT
  256383. .IP \(bu 2
  256384. \fBISSUE\fP \fI\%#12255\fP: (\fI\%eliasp\fP) \(aqsystem.set_computer_desc\(aq fails with non\-ASCII chars (refs: \fI\%#25992\fP)
  256385. .IP \(bu 2
  256386. \fBPR\fP \fI\%#25992\fP: (\fI\%twangboy\fP) Refactor win_system.py
  256387. @ \fI2015\-08\-05 04:54:18 UTC\fP
  256388. .INDENT 2.0
  256389. .IP \(bu 2
  256390. 200bff7538 Merge pull request \fI\%#25992\fP from twangboy/fix_12255
  256391. .IP \(bu 2
  256392. 0502897635 Fixed the lint... again
  256393. .IP \(bu 2
  256394. 6f85d6b9af Fixed some lint
  256395. .IP \(bu 2
  256396. 4195803e56 Merge pull request \fI\%#3\fP from jfindlay/win_sys
  256397. .INDENT 2.0
  256398. .IP \(bu 2
  256399. 9156bbd33e update win_system exec mod unit tests
  256400. .UNINDENT
  256401. .IP \(bu 2
  256402. c92add95b5 Gated ctypes import, fixed some lint
  256403. .IP \(bu 2
  256404. d7670fda0a Refactor win_service.py
  256405. .UNINDENT
  256406. .IP \(bu 2
  256407. \fBISSUE\fP \fI\%#25948\fP: (\fI\%twangboy\fP) Fix uncomment function to handle spaces (refs: \fI\%#26002\fP)
  256408. .IP \(bu 2
  256409. \fBPR\fP \fI\%#26002\fP: (\fI\%twangboy\fP) Fixed regex to account for comment character followed by whitespace
  256410. @ \fI2015\-08\-04 22:28:11 UTC\fP
  256411. .INDENT 2.0
  256412. .IP \(bu 2
  256413. c168159750 Merge pull request \fI\%#26002\fP from twangboy/fix_25948
  256414. .IP \(bu 2
  256415. ba1a57e582 Fixed regex to account for comment character followed by whitespace
  256416. .UNINDENT
  256417. .IP \(bu 2
  256418. \fBISSUE\fP \fI\%#25949\fP: (\fI\%godlike64\fP) layman.add does not work with unofficial overlays (refs: \fI\%#25970\fP)
  256419. .IP \(bu 2
  256420. \fBPR\fP \fI\%#25970\fP: (\fI\%jfindlay\fP) accept addition of layman overlay
  256421. @ \fI2015\-08\-04 15:42:28 UTC\fP
  256422. .INDENT 2.0
  256423. .IP \(bu 2
  256424. 4ad2422da1 Merge pull request \fI\%#25970\fP from jfindlay/layman
  256425. .IP \(bu 2
  256426. 237a9e18b3 accept addition of layman overlay
  256427. .UNINDENT
  256428. .IP \(bu 2
  256429. \fBPR\fP \fI\%#25971\fP: (\fI\%basepi\fP) [2015.5] salt.modules.reg Add spaces for strings split across multiple lines
  256430. @ \fI2015\-08\-04 15:39:48 UTC\fP
  256431. .INDENT 2.0
  256432. .IP \(bu 2
  256433. f136c6c1c0 Merge pull request \fI\%#25971\fP from basepi/reg.typos
  256434. .IP \(bu 2
  256435. bb001a6c0e Add spaces for strings split across multiple lines
  256436. .UNINDENT
  256437. .IP \(bu 2
  256438. \fBPR\fP \fI\%#25990\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25976\fP to 2015.5
  256439. @ \fI2015\-08\-04 14:36:53 UTC\fP
  256440. .INDENT 2.0
  256441. .IP \(bu 2
  256442. \fBPR\fP \fI\%#25976\fP: (\fI\%fleaflicker\fP) Typo in help output (refs: \fI\%#25990\fP)
  256443. .IP \(bu 2
  256444. 6383dd8a7d Merge pull request \fI\%#25990\fP from rallytime/bp\-25976
  256445. .IP \(bu 2
  256446. 5f6dc0cc85 Typo in help output
  256447. .UNINDENT
  256448. .IP \(bu 2
  256449. \fBPR\fP \fI\%#25996\fP: (\fI\%attiasr\fP) fix msiexec package remove
  256450. @ \fI2015\-08\-04 14:36:31 UTC\fP
  256451. .INDENT 2.0
  256452. .IP \(bu 2
  256453. 9f8bf75dc0 Merge pull request \fI\%#25996\fP from attiasr/patch\-1
  256454. .IP \(bu 2
  256455. 5fbc5fcd94 fix msiexec package remove
  256456. .UNINDENT
  256457. .IP \(bu 2
  256458. \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)
  256459. .IP \(bu 2
  256460. \fBPR\fP \fI\%#25966\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25864\fP to 2015.5
  256461. @ \fI2015\-08\-03 18:48:26 UTC\fP
  256462. .INDENT 2.0
  256463. .IP \(bu 2
  256464. \fBPR\fP \fI\%#25864\fP: (\fI\%peterdemin\fP) \fI\%#25863\fP state.pkg.installed fix (refs: \fI\%#25966\fP)
  256465. .IP \(bu 2
  256466. 2dca8d959b Merge pull request \fI\%#25966\fP from rallytime/bp\-25864
  256467. .IP \(bu 2
  256468. 0f7f9637b4 \fI\%#25863\fP fix \- state.pkg: do preflight check only for non\-installed packages
  256469. .UNINDENT
  256470. .IP \(bu 2
  256471. \fBPR\fP \fI\%#25967\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25917\fP to 2015.5
  256472. @ \fI2015\-08\-03 18:48:02 UTC\fP
  256473. .INDENT 2.0
  256474. .IP \(bu 2
  256475. \fBPR\fP \fI\%#25917\fP: (\fI\%jmdcal\fP) adding missing format string (refs: \fI\%#25967\fP)
  256476. .IP \(bu 2
  256477. a6d8e541ed Merge pull request \fI\%#25967\fP from rallytime/bp\-25917
  256478. .IP \(bu 2
  256479. 82b7e14a1f adding missing format string
  256480. .UNINDENT
  256481. .IP \(bu 2
  256482. \fBPR\fP \fI\%#25895\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  256483. @ \fI2015\-08\-03 17:12:37 UTC\fP
  256484. .INDENT 2.0
  256485. .IP \(bu 2
  256486. 87d028b302 Merge pull request \fI\%#25895\fP from basepi/merge\-forward\-2015.5
  256487. .IP \(bu 2
  256488. 56e43c8f88 Fix lint
  256489. .IP \(bu 2
  256490. 93a182d9ea Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  256491. .INDENT 2.0
  256492. .IP \(bu 2
  256493. d93eb87c16 Merge pull request \fI\%#25750\fP from alekti/2014.7
  256494. .INDENT 2.0
  256495. .IP \(bu 2
  256496. 9ec3ae96d4 Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  256497. .UNINDENT
  256498. .IP \(bu 2
  256499. 3a15df22ac Merge pull request \fI\%#25704\fP from cachedout/master_type_2014_7
  256500. .INDENT 2.0
  256501. .IP \(bu 2
  256502. c95886c9a7 Ensure prior alignment with master_type in 2014.7
  256503. .UNINDENT
  256504. .IP \(bu 2
  256505. d1b9362a73 Merge pull request \fI\%#25657\fP from MrCitron/pattern\-carbon\-returner\-2014.7
  256506. .INDENT 2.0
  256507. .IP \(bu 2
  256508. f8b2f8079f Add the ability to specify a base pattern for metrics path used by the carbon returner
  256509. .UNINDENT
  256510. .IP \(bu 2
  256511. 9634351fc2 Merge pull request \fI\%#25633\fP from AkhterAli/2014.7
  256512. .INDENT 2.0
  256513. .IP \(bu 2
  256514. 29be4bbe11 Update loader.py
  256515. .UNINDENT
  256516. .UNINDENT
  256517. .UNINDENT
  256518. .IP \(bu 2
  256519. \fBISSUE\fP \fI\%#25850\fP: (\fI\%ssgward\fP) Need to add packages to \-\-versions\-report (refs: \fI\%#25941\fP)
  256520. .IP \(bu 2
  256521. \fBPR\fP \fI\%#25941\fP: (\fI\%jfindlay\fP) add timelib to dependency versions
  256522. @ \fI2015\-08\-03 12:23:42 UTC\fP
  256523. .INDENT 2.0
  256524. .IP \(bu 2
  256525. 98955057e0 Merge pull request \fI\%#25941\fP from jfindlay/time_lib
  256526. .IP \(bu 2
  256527. 464f7a404c add timelib to dependency versions
  256528. .UNINDENT
  256529. .IP \(bu 2
  256530. \fBPR\fP \fI\%#25951\fP: (\fI\%garethgreenaway\fP) Log when event.fire and event.fire_master fail.
  256531. @ \fI2015\-08\-03 00:19:45 UTC\fP
  256532. .INDENT 2.0
  256533. .IP \(bu 2
  256534. dcc6883b24 Merge pull request \fI\%#25951\fP from garethgreenaway/event_fire_failed_log_why
  256535. .IP \(bu 2
  256536. 7f20454427 If we\(aqre unable to fire an event, log the cause so we know what happened
  256537. .UNINDENT
  256538. .IP \(bu 2
  256539. \fBISSUE\fP \fI\%#25838\fP: (\fI\%grep4linux\fP) docs disable_modules documentation typo (refs: \fI\%#25942\fP)
  256540. .IP \(bu 2
  256541. \fBPR\fP \fI\%#25942\fP: (\fI\%jfindlay\fP) typo in minion doc
  256542. @ \fI2015\-07\-31 23:34:55 UTC\fP
  256543. .INDENT 2.0
  256544. .IP \(bu 2
  256545. 4143cec3bf Merge pull request \fI\%#25942\fP from saltstack/lover
  256546. .IP \(bu 2
  256547. 7e121de907 Update minion.rst
  256548. .UNINDENT
  256549. .IP \(bu 2
  256550. \fBPR\fP \fI\%#25938\fP: (\fI\%jacobhammons\fP) Doc on using syndic with multimaster
  256551. @ \fI2015\-07\-31 23:05:05 UTC\fP
  256552. .INDENT 2.0
  256553. .IP \(bu 2
  256554. \fBPR\fP \fI\%#14690\fP: (\fI\%jacksontj\fP) Multi syndic (refs: \fI\%#25938\fP)
  256555. .IP \(bu 2
  256556. 1f20c065b8 Merge pull request \fI\%#25938\fP from jacobhammons/syndic\-multimaster
  256557. .IP \(bu 2
  256558. ac0a8ff711 Doc on using syndic with multimaster
  256559. .UNINDENT
  256560. .IP \(bu 2
  256561. \fBISSUE\fP \fI\%#25839\fP: (\fI\%twangboy\fP) ALLUSERS="1" should be a default when installing MSI\(aqs (refs: \fI\%#25848\fP)
  256562. .IP \(bu 2
  256563. \fBPR\fP \fI\%#25848\fP: (\fI\%twangboy\fP) Added allusers="1" when installing msi
  256564. @ \fI2015\-07\-31 20:33:17 UTC\fP
  256565. .INDENT 2.0
  256566. .IP \(bu 2
  256567. 18a9e65e1f Merge pull request \fI\%#25848\fP from twangboy/fix_25839
  256568. .IP \(bu 2
  256569. e797739a1b Removed normalize_name function
  256570. .IP \(bu 2
  256571. ad7fdda68b Adder allusers="1" when installing msi
  256572. .UNINDENT
  256573. .IP \(bu 2
  256574. \fBPR\fP \fI\%#25898\fP: (\fI\%jfindlay\fP) clarify and expand syndic docs
  256575. @ \fI2015\-07\-31 20:01:23 UTC\fP
  256576. .INDENT 2.0
  256577. .IP \(bu 2
  256578. de0a0593c2 Merge pull request \fI\%#25898\fP from jfindlay/syndic_doc
  256579. .IP \(bu 2
  256580. 4795952847 rework syndic doc
  256581. .IP \(bu 2
  256582. a25d0eabef update syndic doc to conform to style
  256583. .UNINDENT
  256584. .IP \(bu 2
  256585. \fBISSUE\fP \fI\%#25852\fP: (\fI\%UtahDave\fP) Salt loader is not loading Salt vars in reactor python renderer (refs: \fI\%#25927\fP)
  256586. .IP \(bu 2
  256587. \fBPR\fP \fI\%#25927\fP: (\fI\%jacksontj\fP) Pass actual renderers to the Reactor\(aqs Compiler
  256588. @ \fI2015\-07\-31 20:00:17 UTC\fP
  256589. .INDENT 2.0
  256590. .IP \(bu 2
  256591. d1f3da548a Merge pull request \fI\%#25927\fP from jacksontj/2015.5
  256592. .IP \(bu 2
  256593. cf7479aa0a Pass actual renderers to the Reactor\(aqs Compiler
  256594. .UNINDENT
  256595. .IP \(bu 2
  256596. \fBISSUE\fP \fI\%#25810\fP: (\fI\%nvx\fP) winpkg highstate fails when a new package name contains a unicide character (refs: \fI\%#25921\fP)
  256597. .IP \(bu 2
  256598. \fBPR\fP \fI\%#25921\fP: (\fI\%cachedout\fP) Handle non\-ascii in state log
  256599. @ \fI2015\-07\-31 17:41:30 UTC\fP
  256600. .INDENT 2.0
  256601. .IP \(bu 2
  256602. 331fc121a8 Merge pull request \fI\%#25921\fP from cachedout/issue_25810
  256603. .IP \(bu 2
  256604. 8074c545ea Handle non\-ascii in state log
  256605. .UNINDENT
  256606. .IP \(bu 2
  256607. \fBPR\fP \fI\%#25919\fP: (\fI\%TheBigBear\fP) Minor update to msi un\-installer info
  256608. @ \fI2015\-07\-31 17:39:48 UTC\fP
  256609. .INDENT 2.0
  256610. .IP \(bu 2
  256611. 20fb8da8d4 Merge pull request \fI\%#25919\fP from TheBigBear/patch\-4
  256612. .IP \(bu 2
  256613. c994d22696 Minor update to msi un\-installer info
  256614. .IP \(bu 2
  256615. \fBPR\fP \fI\%#25982\fP: (\fI\%sjorge\fP) salt.modules.smartos_* limit to global zone only (refs: \fI\%#25905\fP)
  256616. .UNINDENT
  256617. .IP \(bu 2
  256618. \fBPR\fP \fI\%#25905\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25982\fP to 2015.5
  256619. @ \fI2015\-07\-30 23:24:19 UTC\fP
  256620. .INDENT 2.0
  256621. .IP \(bu 2
  256622. \fBPR\fP \fI\%#25892\fP: (\fI\%TheBigBear\fP) Update 7\-zip msi un\-installer instructions (refs: \fI\%#25905\fP)
  256623. .IP \(bu 2
  256624. 9a569da4ee Merge pull request \fI\%#25905\fP from rallytime/bp\-25892
  256625. .IP \(bu 2
  256626. 333fbdde30 Update 7\-zip msi un\-installer instructions
  256627. .UNINDENT
  256628. .IP \(bu 2
  256629. \fBISSUE\fP \fI\%#25577\fP: (\fI\%yellow1912\fP) Wrong indentation in document (refs: \fI\%#25696\fP)
  256630. .IP \(bu 2
  256631. \fBPR\fP \fI\%#25890\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25698\fP to 2015.5
  256632. @ \fI2015\-07\-30 23:12:09 UTC\fP
  256633. .INDENT 2.0
  256634. .IP \(bu 2
  256635. \fBPR\fP \fI\%#25698\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25659\fP to 2015.8 (refs: \fI\%#25890\fP)
  256636. .IP \(bu 2
  256637. \fBPR\fP \fI\%#25696\fP: (\fI\%AkhterAli\fP) Update schedule.py
  256638. .IP \(bu 2
  256639. \fBPR\fP \fI\%#25659\fP: (\fI\%isbm\fP) Bugfix: crash at getting non\-existing repo (refs: \fI\%#25698\fP)
  256640. .IP \(bu 2
  256641. 6a738c5c41 Merge pull request \fI\%#25890\fP from rallytime/bp\-25696
  256642. .IP \(bu 2
  256643. 7d68e49d98 Update schedule.py
  256644. .UNINDENT
  256645. .IP \(bu 2
  256646. \fBISSUE\fP \fI\%#25650\fP: (\fI\%jacksontj\fP) state.running documentation is incorrect (refs: \fI\%#25894\fP)
  256647. .IP \(bu 2
  256648. \fBISSUE\fP \fI\%#24042\fP: (\fI\%whiteinge\fP) The state_events setting is not documented (refs: \fI\%#25894\fP)
  256649. .IP \(bu 2
  256650. \fBISSUE\fP \fI\%#23788\fP: (\fI\%k5jj\fP) functions in drac.py module do not match documentation (refs: \fI\%#25894\fP)
  256651. .IP \(bu 2
  256652. \fBISSUE\fP \fI\%#21296\fP: (\fI\%Lothiraldan\fP) Possible minion enumeration using saltutil.find_job and eauth (refs: \fI\%#25894\fP)
  256653. .IP \(bu 2
  256654. \fBPR\fP \fI\%#25894\fP: (\fI\%jacobhammons\fP) Minor doc bug fixes
  256655. @ \fI2015\-07\-30 23:02:34 UTC\fP
  256656. .INDENT 2.0
  256657. .IP \(bu 2
  256658. 8abb21e206 Merge pull request \fI\%#25894\fP from jacobhammons/bug\-fixes
  256659. .IP \(bu 2
  256660. 3f3db4bd8e Additions for \fI\%#24042\fP
  256661. .IP \(bu 2
  256662. db2129b199 Minor doc bug fixes Refs \fI\%#24042\fP Refs \fI\%#25650\fP Refs \fI\%#21296\fP Refs \fI\%#23788\fP
  256663. .UNINDENT
  256664. .IP \(bu 2
  256665. \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)
  256666. .IP \(bu 2
  256667. \fBPR\fP \fI\%#25877\fP: (\fI\%rallytime\fP) Protect against passing a map file in addition to VM names with \-\-destroy
  256668. @ \fI2015\-07\-30 21:55:45 UTC\fP
  256669. .INDENT 2.0
  256670. .IP \(bu 2
  256671. 59e1680182 Merge pull request \fI\%#25877\fP from rallytime/fix\-24036
  256672. .IP \(bu 2
  256673. 0211972fd7 Whitespace fix
  256674. .IP \(bu 2
  256675. c6715e0404 Protect against passing a map file in addition to VM names with \-\-destroy
  256676. .IP \(bu 2
  256677. 3aa5045138 Clean up stacktrace when referenced map file doesn\(aqt exist
  256678. .UNINDENT
  256679. .IP \(bu 2
  256680. \fBPR\fP \fI\%#25870\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25824\fP to 2015.5
  256681. @ \fI2015\-07\-30 21:54:35 UTC\fP
  256682. .INDENT 2.0
  256683. .IP \(bu 2
  256684. \fBPR\fP \fI\%#25824\fP: (\fI\%klyr\fP) Fix get_managed() in file.py module for local files (refs: \fI\%#25870\fP)
  256685. .IP \(bu 2
  256686. c4c9e40be6 Merge pull request \fI\%#25870\fP from rallytime/bp\-25824
  256687. .IP \(bu 2
  256688. 1fd4837beb Fix get_managed() in file.py module for local files
  256689. .UNINDENT
  256690. .IP \(bu 2
  256691. \fBPR\fP \fI\%#25885\fP: (\fI\%t0rrant\fP) Update Debian changelog
  256692. @ \fI2015\-07\-30 20:05:59 UTC\fP
  256693. .INDENT 2.0
  256694. .IP \(bu 2
  256695. af2326af68 Merge pull request \fI\%#25885\fP from t0rrant/patch\-3
  256696. .IP \(bu 2
  256697. 3f73900c61 Update Debian changelog
  256698. .UNINDENT
  256699. .IP \(bu 2
  256700. \fBISSUE\fP \fI\%#25478\fP: (\fI\%zyio\fP) salt\-ssh \- Unable to locate current thin version (refs: \fI\%#25862\fP)
  256701. .IP \(bu 2
  256702. \fBISSUE\fP \fI\%#25026\fP: (\fI\%sylvia\-wang\fP) salt\-ssh "Failure deploying thin" when using salt module functions (refs: \fI\%#25862\fP)
  256703. .IP \(bu 2
  256704. \fBPR\fP \fI\%#25875\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25862\fP to 2015.5
  256705. @ \fI2015\-07\-30 17:34:02 UTC\fP
  256706. .INDENT 2.0
  256707. .IP \(bu 2
  256708. \fBPR\fP \fI\%#25862\fP: (\fI\%zyio\fP) Adding SCP_NOT_FOUND exit code (refs: \fI\%#25875\fP)
  256709. .IP \(bu 2
  256710. 6ce0b3e5b8 Merge pull request \fI\%#25875\fP from rallytime/bp\-25862
  256711. .IP \(bu 2
  256712. d7f448d501 Needed popen.wait().
  256713. .IP \(bu 2
  256714. 25f8042e41 Checking for scp existance. Using command \-v should be POSIX
  256715. .IP \(bu 2
  256716. 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
  256717. .UNINDENT
  256718. .IP \(bu 2
  256719. \fBPR\fP \fI\%#25873\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25855\fP to 2015.5
  256720. @ \fI2015\-07\-30 17:33:55 UTC\fP
  256721. .INDENT 2.0
  256722. .IP \(bu 2
  256723. \fBPR\fP \fI\%#25855\fP: (\fI\%puneetk\fP) Patch 3 (refs: \fI\%#25873\fP)
  256724. .IP \(bu 2
  256725. 66dcc5525e Merge pull request \fI\%#25873\fP from rallytime/bp\-25855
  256726. .IP \(bu 2
  256727. f1f7ce25b7 Update saltmod.py
  256728. .IP \(bu 2
  256729. 23a6806008 Update saltmod.py
  256730. .UNINDENT
  256731. .IP \(bu 2
  256732. \fBPR\fP \fI\%#25871\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25829\fP to 2015.5
  256733. @ \fI2015\-07\-30 17:33:43 UTC\fP
  256734. .INDENT 2.0
  256735. .IP \(bu 2
  256736. \fBPR\fP \fI\%#25829\fP: (\fI\%peterdemin\fP) Fixed typo in salt.states.saltmod.function doc string (refs: \fI\%#25871\fP)
  256737. .IP \(bu 2
  256738. bf8bd38da7 Merge pull request \fI\%#25871\fP from rallytime/bp\-25829
  256739. .IP \(bu 2
  256740. a80c47ee10 Fixed typo in salt.states.saltmod.function doc string
  256741. .UNINDENT
  256742. .IP \(bu 2
  256743. \fBISSUE\fP \fI\%#24002\fP: (\fI\%csakoda\fP) File lock contention on windows minions causing highstate crash (refs: \fI\%#25788\fP)
  256744. .IP \(bu 2
  256745. \fBPR\fP \fI\%#25869\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25788\fP to 2015.5
  256746. @ \fI2015\-07\-30 17:33:33 UTC\fP
  256747. .INDENT 2.0
  256748. .IP \(bu 2
  256749. \fBPR\fP \fI\%#25788\fP: (\fI\%opdude\fP) Catch a hard crash when running highstate on windows (refs: \fI\%#25869\fP)
  256750. .IP \(bu 2
  256751. f26310ff0b Merge pull request \fI\%#25869\fP from rallytime/bp\-25788
  256752. .IP \(bu 2
  256753. 65b18e3b34 Catch a hard crash when running highstate on windows
  256754. .UNINDENT
  256755. .IP \(bu 2
  256756. \fBISSUE\fP \fI\%#19532\fP: (\fI\%stolendog\fP) salt\-ssh running git clone with not root user (refs: \fI\%#25853\fP)
  256757. .IP \(bu 2
  256758. \fBPR\fP \fI\%#25853\fP: (\fI\%davidjb\fP) Make ssh\-id\-wrapper accessible to non\-root users
  256759. @ \fI2015\-07\-30 16:49:47 UTC\fP
  256760. .INDENT 2.0
  256761. .IP \(bu 2
  256762. 810fbb8bfb Merge pull request \fI\%#25853\fP from davidjb/ssh\-id\-wrapper\-non\-root
  256763. .IP \(bu 2
  256764. 6492bde192 Make ssh\-id\-wrapper accessible to non\-root users
  256765. .UNINDENT
  256766. .IP \(bu 2
  256767. \fBISSUE\fP \fI\%#25447\fP: (\fI\%spo0nman\fP) SaltMaster is crippled with Minion Re\-Authentication (refs: \fI\%#25856\fP)
  256768. .IP \(bu 2
  256769. \fBPR\fP \fI\%#25856\fP: (\fI\%jfindlay\fP) expand minion reauth scalability documentation
  256770. @ \fI2015\-07\-30 15:33:17 UTC\fP
  256771. .INDENT 2.0
  256772. .IP \(bu 2
  256773. b6805b068a Merge pull request \fI\%#25856\fP from jfindlay/intro_scale
  256774. .IP \(bu 2
  256775. 5921461bb1 style and usage consistency in intro_scale
  256776. .IP \(bu 2
  256777. 51dc7cacfb whitespace adjustments in intro_scale
  256778. .IP \(bu 2
  256779. 39a82467f1 expand minion reauth scalability documentation
  256780. .UNINDENT
  256781. .IP \(bu 2
  256782. \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)
  256783. .IP \(bu 2
  256784. \fBPR\fP \fI\%#25840\fP: (\fI\%jfindlay\fP) add note to winrepo state docs about required grain
  256785. @ \fI2015\-07\-30 14:38:27 UTC\fP
  256786. .INDENT 2.0
  256787. .IP \(bu 2
  256788. 423d528b73 Merge pull request \fI\%#25840\fP from jfindlay/winrepo_master
  256789. .IP \(bu 2
  256790. b6cfd54f3b add note to winrepo state docs about required grain
  256791. .UNINDENT
  256792. .IP \(bu 2
  256793. \fBISSUE\fP \fI\%#25827\fP: (\fI\%0xf10e\fP) "Deprecating Code" doesn\(aqt mention Usage of warn_until() w/ Release Names (refs: \fI\%#25846\fP)
  256794. .IP \(bu 2
  256795. \fBPR\fP \fI\%#25846\fP: (\fI\%jfindlay\fP) rework deprecation documentation for release names
  256796. @ \fI2015\-07\-30 13:26:21 UTC\fP
  256797. .INDENT 2.0
  256798. .IP \(bu 2
  256799. 754c8be719 Merge pull request \fI\%#25846\fP from jfindlay/depr_code
  256800. .IP \(bu 2
  256801. d377f42c48 rework deprecation documentation for release names
  256802. .UNINDENT
  256803. .IP \(bu 2
  256804. \fBISSUE\fP \fI\%#23288\fP: (\fI\%UtahDave\fP) cp.push fails to recreate empty files. (refs: \fI\%#25833\fP)
  256805. .IP \(bu 2
  256806. \fBPR\fP \fI\%#25833\fP: (\fI\%jahamn\fP) Allows cp.push to recreate empty files
  256807. @ \fI2015\-07\-29 16:14:48 UTC\fP
  256808. .INDENT 2.0
  256809. .IP \(bu 2
  256810. d9ab4bb989 Merge pull request \fI\%#25833\fP from jahamn/fix\-cp.push\-not\-recreating\-empty\-files
  256811. .IP \(bu 2
  256812. eac19fbf33 Allows cp.push to recreate empty files
  256813. .UNINDENT
  256814. .IP \(bu 2
  256815. \fBISSUE\fP \fI\%#11474\fP: (\fI\%JensRantil\fP) pkgrepo.managed key_url: salt:// always use \fIbase\fP env (refs: \fI\%#25831\fP)
  256816. .IP \(bu 2
  256817. \fBPR\fP \fI\%#25831\fP: (\fI\%rallytime\fP) Add salt:// to key_url options to docs for pkgrepo.managed
  256818. @ \fI2015\-07\-29 15:38:43 UTC\fP
  256819. .INDENT 2.0
  256820. .IP \(bu 2
  256821. 6f93d64784 Merge pull request \fI\%#25831\fP from rallytime/fix\-11474
  256822. .IP \(bu 2
  256823. 067ea788e9 Add salt:// to key_url options to docs for pkgrepo.managed
  256824. .UNINDENT
  256825. .IP \(bu 2
  256826. \fBISSUE\fP \fI\%#22699\fP: (\fI\%arthurlogilab\fP) salt\-cloud fails on KeyError when given a nonexistant action (refs: \fI\%#25807\fP)
  256827. .IP \(bu 2
  256828. \fBPR\fP \fI\%#25807\fP: (\fI\%rallytime\fP) Provide helpful error when using actions with a mapfile
  256829. @ \fI2015\-07\-29 15:30:15 UTC\fP
  256830. .INDENT 2.0
  256831. .IP \(bu 2
  256832. 72b3633383 Merge pull request \fI\%#25807\fP from rallytime/fix\-22699
  256833. .IP \(bu 2
  256834. 3f3005c746 Use handle_exception function in cloud cli.py
  256835. .IP \(bu 2
  256836. f91edf3a33 Provide helpful error when using actions with a mapfile
  256837. .UNINDENT
  256838. .IP \(bu 2
  256839. \fBPR\fP \fI\%#25818\fP: (\fI\%jfindlay\fP) fix autoruns list
  256840. @ \fI2015\-07\-29 15:29:20 UTC\fP
  256841. .INDENT 2.0
  256842. .IP \(bu 2
  256843. 71497adc0d Merge pull request \fI\%#25818\fP from jfindlay/autoruns_users
  256844. .IP \(bu 2
  256845. c2dbb65982 fix autoruns list for modern windowsen
  256846. .UNINDENT
  256847. .IP \(bu 2
  256848. \fBPR\fP \fI\%#25826\fP: (\fI\%anlutro\fP) Check that "onchanges" is a list
  256849. @ \fI2015\-07\-29 15:00:28 UTC\fP
  256850. .INDENT 2.0
  256851. .IP \(bu 2
  256852. 98b324c5f8 Merge pull request \fI\%#25826\fP from alprs/fix\-onchanges_type_check
  256853. .IP \(bu 2
  256854. 7992a3f0f4 state.py: check that "onchanges" is a list
  256855. .UNINDENT
  256856. .IP \(bu 2
  256857. \fBISSUE\fP \fI\%#25258\fP: (\fI\%nickw8\fP) windows minion repo not updating (refs: \fI\%#25798\fP)
  256858. .IP \(bu 2
  256859. \fBPR\fP \fI\%#25798\fP: (\fI\%twangboy\fP) Fixed stacktrace on package name not found
  256860. @ \fI2015\-07\-28 22:40:14 UTC\fP
  256861. .INDENT 2.0
  256862. .IP \(bu 2
  256863. ad07dc1e27 Merge pull request \fI\%#25798\fP from twangboy/fix_25258
  256864. .IP \(bu 2
  256865. aa19c2bf8f Fixed stacktrace on package name not found
  256866. .UNINDENT
  256867. .IP \(bu 2
  256868. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  256869. .IP \(bu 2
  256870. \fBPR\fP \fI\%#25797\fP: (\fI\%twangboy\fP) Changed repocache back to cached_repo
  256871. @ \fI2015\-07\-28 22:39:32 UTC\fP
  256872. .INDENT 2.0
  256873. .IP \(bu 2
  256874. \fBPR\fP \fI\%#25763\fP: (\fI\%twangboy\fP) Fix 25437 (refs: \fI\%#25797\fP)
  256875. .IP \(bu 2
  256876. 4a38d4a606 Merge pull request \fI\%#25797\fP from twangboy/fix_revert_in_25763
  256877. .IP \(bu 2
  256878. 81d5b5ee55 Changed repocache back to cached_repo
  256879. .UNINDENT
  256880. .IP \(bu 2
  256881. \fBPR\fP \fI\%#25793\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25730\fP to 2015.5
  256882. @ \fI2015\-07\-28 19:37:34 UTC\fP
  256883. .INDENT 2.0
  256884. .IP \(bu 2
  256885. \fBPR\fP \fI\%#25730\fP: (\fI\%sjorge\fP) patchelf lives in pkgsrc (refs: \fI\%#25793\fP)
  256886. .IP \(bu 2
  256887. 823f0ce350 Merge pull request \fI\%#25793\fP from rallytime/bp\-25730
  256888. .IP \(bu 2
  256889. 937779eb51 patchelf lives in pkgsrc
  256890. .UNINDENT
  256891. .IP \(bu 2
  256892. \fBPR\fP \fI\%#25792\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25688\fP to 2015.5
  256893. @ \fI2015\-07\-28 19:37:17 UTC\fP
  256894. .INDENT 2.0
  256895. .IP \(bu 2
  256896. \fBPR\fP \fI\%#25688\fP: (\fI\%bclermont\fP) Don\(aqt acquire lock if there is no formatter (refs: \fI\%#25792\fP)
  256897. .IP \(bu 2
  256898. 4109ae55f9 Merge pull request \fI\%#25792\fP from rallytime/bp\-25688
  256899. .IP \(bu 2
  256900. 0aa1416b6b Don\(aqt acquire lock if there is no formatter
  256901. .UNINDENT
  256902. .IP \(bu 2
  256903. \fBPR\fP \fI\%#25796\fP: (\fI\%cachedout\fP) Remove debug from docs
  256904. @ \fI2015\-07\-28 17:35:59 UTC\fP
  256905. .INDENT 2.0
  256906. .IP \(bu 2
  256907. 737fb1410c Merge pull request \fI\%#25796\fP from cachedout/debug_doc
  256908. .IP \(bu 2
  256909. 33bfdf3b0b Remove debug from docs
  256910. .UNINDENT
  256911. .IP \(bu 2
  256912. \fBISSUE\fP \fI\%#24920\fP: (\fI\%voileux\fP) module.zpool.create on character device is not possible by salt (refs: \fI\%#25749\fP)
  256913. .IP \(bu 2
  256914. \fBPR\fP \fI\%#25749\fP: (\fI\%jahamn\fP) Allow zpool.create on character devices
  256915. @ \fI2015\-07\-28 16:01:40 UTC\fP
  256916. .INDENT 2.0
  256917. .IP \(bu 2
  256918. a658753eff Merge pull request \fI\%#25749\fP from jahamn/fix\-zpool\-special\-char\-device\-support
  256919. .IP \(bu 2
  256920. 361f6cc23f Allow zpool.create on character devices
  256921. .UNINDENT
  256922. .IP \(bu 2
  256923. \fBPR\fP \fI\%#25685\fP: (\fI\%twangboy\fP) Fixed regex issues with comment and uncomment
  256924. @ \fI2015\-07\-28 15:29:49 UTC\fP
  256925. .INDENT 2.0
  256926. .IP \(bu 2
  256927. 1fae76d53c Merge pull request \fI\%#25685\fP from twangboy/fix_25594
  256928. .IP \(bu 2
  256929. a904e8329b Fixed another test failure...
  256930. .IP \(bu 2
  256931. aa077d3a86 Fixed more tests... justin findlay helped me...
  256932. .IP \(bu 2
  256933. 87c8f8dfb5 Fixed some tests... maybe...
  256934. .IP \(bu 2
  256935. 3c1a73f16c Fixed some lint
  256936. .IP \(bu 2
  256937. b3e44e342c Fixed states to work with comment_line
  256938. .IP \(bu 2
  256939. b1cedd1153 Fixed regex issues with comment and uncomment
  256940. .UNINDENT
  256941. .IP \(bu 2
  256942. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  256943. .IP \(bu 2
  256944. \fBPR\fP \fI\%#25763\fP: (\fI\%twangboy\fP) Fix 25437 (refs: \fI\%#25797\fP)
  256945. @ \fI2015\-07\-28 15:29:27 UTC\fP
  256946. .INDENT 2.0
  256947. .IP \(bu 2
  256948. 0bdb29402a Merge pull request \fI\%#25763\fP from twangboy/fix_25437
  256949. .IP \(bu 2
  256950. 9e70c800b9 The real fix for 25437 that doesn\(aqt break other crap
  256951. .IP \(bu 2
  256952. d7347e01e5 Revert "Fixed problem trying to load file with name of boolean type"
  256953. .IP \(bu 2
  256954. cf57712eeb Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25437
  256955. .UNINDENT
  256956. .IP \(bu 2
  256957. \fBPR\fP \fI\%#25752\fP: (\fI\%thatch45\fP) State top saltenv
  256958. @ \fI2015\-07\-28 01:02:10 UTC\fP
  256959. .INDENT 2.0
  256960. .IP \(bu 2
  256961. c1236595f9 Merge pull request \fI\%#25752\fP from thatch45/state_top_saltenv
  256962. .IP \(bu 2
  256963. 65d6ec0659 don\(aqt override the minion config unless requested
  256964. .IP \(bu 2
  256965. 26c858361c Add state_top_saltenv to the config chain
  256966. .IP \(bu 2
  256967. 36a3b674a7 Add raet support for state_top_saltnev
  256968. .IP \(bu 2
  256969. f6fa025b13 Add saltenv top file support to salt master_opts
  256970. .IP \(bu 2
  256971. 4a1c53309b Add state_top_saltenv support
  256972. .UNINDENT
  256973. .IP \(bu 2
  256974. \fBISSUE\fP \fI\%#25717\fP: (\fI\%twangboy\fP) Problem with chocolatey module not loading (refs: \fI\%#25755\fP)
  256975. .IP \(bu 2
  256976. \fBPR\fP \fI\%#25755\fP: (\fI\%twangboy\fP) Fixed problem with dunder functions not being passed
  256977. @ \fI2015\-07\-27 19:31:22 UTC\fP
  256978. .INDENT 2.0
  256979. .IP \(bu 2
  256980. f367acb253 Merge pull request \fI\%#25755\fP from twangboy/fix_25717
  256981. .IP \(bu 2
  256982. 10e410504d Fixed problem with dunder functions not being passed
  256983. .UNINDENT
  256984. .IP \(bu 2
  256985. \fBISSUE\fP \fI\%#25352\fP: (\fI\%m03\fP) reg.absent reporting incorrect results (refs: \fI\%#25648\fP)
  256986. .IP \(bu 2
  256987. \fBPR\fP \fI\%#25648\fP: (\fI\%twangboy\fP) Clarified functionality of reg module, fixed state to work with new module
  256988. @ \fI2015\-07\-27 19:30:33 UTC\fP
  256989. .INDENT 2.0
  256990. .IP \(bu 2
  256991. f05ae95f9c Merge pull request \fI\%#25648\fP from twangboy/fix_25352
  256992. .IP \(bu 2
  256993. d6496ce814 Merge pull request \fI\%#1\fP from jfindlay/reg
  256994. .INDENT 2.0
  256995. .IP \(bu 2
  256996. 3b0cc6592a fix reg unit tests
  256997. .UNINDENT
  256998. .IP \(bu 2
  256999. b473fb7827 Fixed some tests... maybe...
  257000. .IP \(bu 2
  257001. ff7296d983 Fixed some more lint
  257002. .IP \(bu 2
  257003. 7a71f5ea6a Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25352
  257004. .IP \(bu 2
  257005. f57b2b8e7a Fixed some line, added documentation
  257006. .IP \(bu 2
  257007. d78fa97a71 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25352
  257008. .IP \(bu 2
  257009. 99d9518af8 Clarified functionality of reg module, fixed state to work with new module
  257010. .UNINDENT
  257011. .IP \(bu 2
  257012. \fBISSUE\fP \fI\%#25154\fP: (\fI\%uvsmtid\fP) All data mixed on STDOUT together should generate valid JSON output (refs: \fI\%#25722\fP)
  257013. .IP \(bu 2
  257014. \fBISSUE\fP \fI\%#25153\fP: (\fI\%uvsmtid\fP) Multiple results should generate valid JSON output (refs: \fI\%#25722\fP)
  257015. .IP \(bu 2
  257016. \fBPR\fP \fI\%#25740\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25722\fP to 2015.5
  257017. @ \fI2015\-07\-27 16:08:40 UTC\fP
  257018. .INDENT 2.0
  257019. .IP \(bu 2
  257020. \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)
  257021. .IP \(bu 2
  257022. 29c66d85a4 Merge pull request \fI\%#25740\fP from rallytime/bp\-25722
  257023. .IP \(bu 2
  257024. c33eb813ea Change docs for \-\-static option with JSON \- text B
  257025. .IP \(bu 2
  257026. 89dd2ec8fb Change docs for \-\-static option with JSON \- text A
  257027. .UNINDENT
  257028. .IP \(bu 2
  257029. \fBPR\fP \fI\%#25739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25709\fP to 2015.5
  257030. @ \fI2015\-07\-27 16:08:27 UTC\fP
  257031. .INDENT 2.0
  257032. .IP \(bu 2
  257033. \fBPR\fP \fI\%#25709\fP: (\fI\%colekowalski\fP) add direct\-io\-mode to mount_invisible_options (refs: \fI\%#25739\fP)
  257034. .IP \(bu 2
  257035. \fBPR\fP \fI\%#25699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25660\fP to 2015.5 (refs: \fI\%#25709\fP)
  257036. .IP \(bu 2
  257037. \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)
  257038. .IP \(bu 2
  257039. 135b03e53b Merge pull request \fI\%#25739\fP from rallytime/bp\-25709
  257040. .IP \(bu 2
  257041. fda2ffa44e add direct\-io\-mode to mount_invisible_options
  257042. .UNINDENT
  257043. .IP \(bu 2
  257044. \fBPR\fP \fI\%#25738\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25671\fP to 2015.5
  257045. @ \fI2015\-07\-27 16:08:23 UTC\fP
  257046. .INDENT 2.0
  257047. .IP \(bu 2
  257048. \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)
  257049. .IP \(bu 2
  257050. 095a923b6e Merge pull request \fI\%#25738\fP from rallytime/bp\-25671
  257051. .IP \(bu 2
  257052. 525cd70589 added a parameter so verifying SSL is now optional instead of hard\-coded
  257053. .UNINDENT
  257054. .IP \(bu 2
  257055. \fBISSUE\fP \fI\%#25229\fP: (\fI\%rmatulat\fP) Module git.latest kills target directory when test=True (refs: \fI\%#25608\fP)
  257056. .IP \(bu 2
  257057. \fBPR\fP \fI\%#25737\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25608\fP to 2015.5
  257058. @ \fI2015\-07\-27 16:08:18 UTC\fP
  257059. .INDENT 2.0
  257060. .IP \(bu 2
  257061. \fBPR\fP \fI\%#25608\fP: (\fI\%rmatulat\fP) Fix: prevent git.latest from removing target (refs: \fI\%#25737\fP)
  257062. .IP \(bu 2
  257063. 05fbfe64e9 Merge pull request \fI\%#25737\fP from rallytime/bp\-25608
  257064. .IP \(bu 2
  257065. 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.
  257066. .UNINDENT
  257067. .IP \(bu 2
  257068. \fBPR\fP \fI\%#25733\fP: (\fI\%davidjb\fP) Avoid IndexError when listing mounts if mount output ends in newline
  257069. @ \fI2015\-07\-27 16:08:05 UTC\fP
  257070. .INDENT 2.0
  257071. .IP \(bu 2
  257072. 9817fc5556 Merge pull request \fI\%#25733\fP from davidjb/mount\-fix
  257073. .IP \(bu 2
  257074. 6d0bce2418 Test length of comps when listing mounts
  257075. .UNINDENT
  257076. .IP \(bu 2
  257077. \fBISSUE\fP \fI\%#22460\fP: (\fI\%onmeac\fP) Command setm is not supported (yet) (refs: \fI\%#25705\fP)
  257078. .IP \(bu 2
  257079. \fBPR\fP \fI\%#25705\fP: (\fI\%blackduckx\fP) Support for setm augeas command.
  257080. @ \fI2015\-07\-27 16:07:10 UTC\fP
  257081. .INDENT 2.0
  257082. .IP \(bu 2
  257083. 82ba390b7b Merge pull request \fI\%#25705\fP from blackduckx/augeas\-setm
  257084. .IP \(bu 2
  257085. cad0f2b46e Augeas: fix pylint and documentation
  257086. .IP \(bu 2
  257087. ee97896cba Support for setm augeas command.
  257088. .UNINDENT
  257089. .IP \(bu 2
  257090. \fBPR\fP \fI\%#25703\fP: (\fI\%cachedout\fP) Return to \fIstr\fP for master_type for 2015.5
  257091. @ \fI2015\-07\-27 16:06:22 UTC\fP
  257092. .INDENT 2.0
  257093. .IP \(bu 2
  257094. f732be365d Merge pull request \fI\%#25703\fP from cachedout/master_type_2015_5
  257095. .IP \(bu 2
  257096. 0dc28ad3e4 Return to \fIstr\fP for master_type for 2015.5
  257097. .UNINDENT
  257098. .IP \(bu 2
  257099. \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)
  257100. .IP \(bu 2
  257101. \fBPR\fP \fI\%#25702\fP: (\fI\%twangboy\fP) Fixed win_user module for groups with spaces in the name
  257102. @ \fI2015\-07\-27 15:06:33 UTC\fP
  257103. .INDENT 2.0
  257104. .IP \(bu 2
  257105. dea3d31578 Merge pull request \fI\%#25702\fP from twangboy/fix_25144
  257106. .IP \(bu 2
  257107. d5be7a2fdf Fixed win_user moduele for groups with spaces in the name
  257108. .UNINDENT
  257109. .IP \(bu 2
  257110. \fBISSUE\fP \fI\%#25351\fP: (\fI\%m03\fP) win_servermanager.list_installed failing with "IndexError: list index out of range" (refs: \fI\%#25711\fP)
  257111. .IP \(bu 2
  257112. \fBPR\fP \fI\%#25711\fP: (\fI\%twangboy\fP) Fixed problem with win_servermanager.list_installed
  257113. @ \fI2015\-07\-27 15:05:48 UTC\fP
  257114. .INDENT 2.0
  257115. .IP \(bu 2
  257116. 186af9b54d Merge pull request \fI\%#25711\fP from twangboy/fix_25351
  257117. .IP \(bu 2
  257118. 82fa911931 Fixed problem with win_servermanager.list_installed
  257119. .UNINDENT
  257120. .IP \(bu 2
  257121. \fBISSUE\fP \fI\%#25435\fP: (\fI\%yee379\fP) progressbar dependency missing (refs: \fI\%#25714\fP)
  257122. .IP \(bu 2
  257123. \fBPR\fP \fI\%#25714\fP: (\fI\%cachedout\fP) Display warning when progressbar can\(aqt be loaded
  257124. @ \fI2015\-07\-25 00:10:13 UTC\fP
  257125. .INDENT 2.0
  257126. .IP \(bu 2
  257127. ad8456eeed Merge pull request \fI\%#25714\fP from cachedout/issue_25435
  257128. .IP \(bu 2
  257129. 44f34684ef Included note in help docs
  257130. .IP \(bu 2
  257131. 4e2fee17cc Display warning when progressbar can\(aqt be loaded
  257132. .UNINDENT
  257133. .IP \(bu 2
  257134. \fBPR\fP \fI\%#25699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25660\fP to 2015.5 (refs: \fI\%#25709\fP)
  257135. @ \fI2015\-07\-24 22:11:40 UTC\fP
  257136. .INDENT 2.0
  257137. .IP \(bu 2
  257138. \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)
  257139. .IP \(bu 2
  257140. a0969ff74a Merge pull request \fI\%#25699\fP from rallytime/bp\-25660
  257141. .IP \(bu 2
  257142. 85c636d7a1 add glusterfs\(aq direct\-io\-mode to mount_invisible_keys
  257143. .UNINDENT
  257144. .IP \(bu 2
  257145. \fBISSUE\fP \fI\%#25689\fP: (\fI\%anlutro\fP) Minion log in salt\-ssh (refs: \fI\%#25694\fP)
  257146. .IP \(bu 2
  257147. \fBPR\fP \fI\%#25694\fP: (\fI\%s0undt3ch\fP) Salt\-SSH fix for \fI\%#25689\fP
  257148. @ \fI2015\-07\-24 21:41:57 UTC\fP
  257149. .INDENT 2.0
  257150. .IP \(bu 2
  257151. fe829564f4 Merge pull request \fI\%#25694\fP from s0undt3ch/2015.5
  257152. .IP \(bu 2
  257153. afba3bde90 Use a relative un\-nested path to the salt\-call logfile.
  257154. .IP \(bu 2
  257155. 6309f22a65 Fix wrong variable assignment
  257156. .IP \(bu 2
  257157. c312592c81 Have cookie JAR\(aqs respect the configured \fIcachedir\fP
  257158. .UNINDENT
  257159. .IP \(bu 2
  257160. \fBISSUE\fP \fI\%#25250\fP: (\fI\%wipfs\fP) \(aqforce\(aq option in copy state deletes target file (refs: \fI\%#25461\fP, \fI\%#25710\fP)
  257161. .IP \(bu 2
  257162. \fBPR\fP \fI\%#25710\fP: (\fI\%jahamn\fP) Integration Testcase for Issue 25250
  257163. @ \fI2015\-07\-24 20:57:33 UTC\fP
  257164. .INDENT 2.0
  257165. .IP \(bu 2
  257166. fb4744b2f8 Merge pull request \fI\%#25710\fP from jahamn/integration\-test\-for\-issue\-25250
  257167. .IP \(bu 2
  257168. 24f653e963 Integration Test for Issue 25250
  257169. .UNINDENT
  257170. .IP \(bu 2
  257171. \fBPR\fP \fI\%#25680\fP: (\fI\%basepi\fP) [2015.5] Move cmd.run jinja aliasing to a wrapper class to prevent side effects
  257172. @ \fI2015\-07\-24 19:52:10 UTC\fP
  257173. .INDENT 2.0
  257174. .IP \(bu 2
  257175. \fBPR\fP \fI\%#25049\fP: (\fI\%terminalmage\fP) Fix cmd.run when cross\-called in a state/execution module (refs: \fI\%#25680\fP)
  257176. .IP \(bu 2
  257177. 18c9d5454d Merge pull request \fI\%#25680\fP from basepi/jinja.alias.25049
  257178. .IP \(bu 2
  257179. e83a0f9b2b Use new\-style classes
  257180. .IP \(bu 2
  257181. 4a50bac1c2 Fix typo
  257182. .IP \(bu 2
  257183. 36410389dc Name the Nitrogen release
  257184. .IP \(bu 2
  257185. 77679596f9 Make ALIASES global
  257186. .IP \(bu 2
  257187. 01c209efd9 Fix some aliases references
  257188. .IP \(bu 2
  257189. 1644641c57 Move cmd.run aliasing to a wrapper class to prevent side effects
  257190. .UNINDENT
  257191. .IP \(bu 2
  257192. \fBPR\fP \fI\%#25682\fP: (\fI\%basepi\fP) [2015.5] Fix parsing args with just a hash (#)
  257193. @ \fI2015\-07\-24 19:52:01 UTC\fP
  257194. .INDENT 2.0
  257195. .IP \(bu 2
  257196. 6a5c6dcd04 Merge pull request \fI\%#25682\fP from basepi/fix.hash.parsing
  257197. .IP \(bu 2
  257198. 8d75c1b882 Fix parsing args with just a hash (#)
  257199. .UNINDENT
  257200. .IP \(bu 2
  257201. \fBPR\fP \fI\%#25695\fP: (\fI\%stanislavb\fP) Configurable AWS region & region from IAM metadata
  257202. @ \fI2015\-07\-24 19:36:40 UTC\fP
  257203. .INDENT 2.0
  257204. .IP \(bu 2
  257205. d330ef0d81 Merge pull request \fI\%#25695\fP from stanislavb/expose\-aws\-region\-config\-and\-fetch\-region\-from\-metadata
  257206. .IP \(bu 2
  257207. 595da6252e Configurable AWS region & region from IAM metadata
  257208. .UNINDENT
  257209. .IP \(bu 2
  257210. \fBPR\fP \fI\%#25645\fP: (\fI\%kev009\fP) Fix pkgng provider to work with a sources list and the underlying pkg…
  257211. @ \fI2015\-07\-24 16:33:18 UTC\fP
  257212. .INDENT 2.0
  257213. .IP \(bu 2
  257214. ea0d295d49 Merge pull request \fI\%#25645\fP from kev009/freebsd\-pkgng\-add
  257215. .IP \(bu 2
  257216. ee2cbb574a Fix pkgng provider to work with a sources list and the underlying pkg\-add(8)
  257217. .UNINDENT
  257218. .IP \(bu 2
  257219. \fBPR\fP \fI\%#25677\fP: (\fI\%aneeshusa\fP) Fix pacman.list_upgrades when refresh=True.
  257220. @ \fI2015\-07\-24 16:30:06 UTC\fP
  257221. .INDENT 2.0
  257222. .IP \(bu 2
  257223. 2cad79c2f0 Merge pull request \fI\%#25677\fP from aneeshusa/fix\-pacman\-list\-upgrades\-when\-refreshing
  257224. .IP \(bu 2
  257225. 7062ae4eae Fix pacman.list_upgrades when refresh=True.
  257226. .UNINDENT
  257227. .IP \(bu 2
  257228. \fBISSUE\fP \fI\%#25674\fP: (\fI\%UtahDave\fP) file.managed with contents parameter uses wrong line endings on Windows (refs: \fI\%#25675\fP)
  257229. .IP \(bu 2
  257230. \fBPR\fP \fI\%#25675\fP: (\fI\%UtahDave\fP) Use OS line endings with contents on file.managed
  257231. @ \fI2015\-07\-24 16:29:50 UTC\fP
  257232. .INDENT 2.0
  257233. .IP \(bu 2
  257234. 18e739b812 Merge pull request \fI\%#25675\fP from UtahDave/2015.5local
  257235. .IP \(bu 2
  257236. d0f9d001db Use OS line endings with contents on file.managed
  257237. .UNINDENT
  257238. .IP \(bu 2
  257239. \fBPR\fP \fI\%#25676\fP: (\fI\%basepi\fP) Update release candidate docs to 2015.8.0rc2
  257240. @ \fI2015\-07\-23 20:29:37 UTC\fP
  257241. .INDENT 2.0
  257242. .IP \(bu 2
  257243. 7914f51636 Merge pull request \fI\%#25676\fP from basepi/2015.8.0rc2releasedocs
  257244. .IP \(bu 2
  257245. 882d11836b Update release candidate docs to 2015.8.0rc2
  257246. .UNINDENT
  257247. .IP \(bu 2
  257248. \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)
  257249. .IP \(bu 2
  257250. \fBPR\fP \fI\%#25666\fP: (\fI\%nmadhok\fP) Check if the properties exist before looping over them causing KeyError
  257251. @ \fI2015\-07\-23 17:55:40 UTC\fP
  257252. .INDENT 2.0
  257253. .IP \(bu 2
  257254. c36b714401 Merge pull request \fI\%#25666\fP from nmadhok/vmware\-cloud\-fix_2015.5
  257255. .IP \(bu 2
  257256. 8e812296ef Check if the properties exist before looping over them causing KeyErrors Fixes \fI\%#25665\fP
  257257. .UNINDENT
  257258. .IP \(bu 2
  257259. \fBPR\fP \fI\%#25656\fP: (\fI\%anlutro\fP) Fix locale detection in debian/gentoo
  257260. @ \fI2015\-07\-23 16:46:40 UTC\fP
  257261. .INDENT 2.0
  257262. .IP \(bu 2
  257263. 36d04b2954 Merge pull request \fI\%#25656\fP from alprs/fix\-locale_detection
  257264. .IP \(bu 2
  257265. a260236942 change variable name
  257266. .IP \(bu 2
  257267. dd2a188c05 fix tests
  257268. .IP \(bu 2
  257269. aefd0fb374 code formatting
  257270. .IP \(bu 2
  257271. e58d222fb0 fix locale detection in debian/gentoo
  257272. .UNINDENT
  257273. .IP \(bu 2
  257274. \fBPR\fP \fI\%#25661\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25624\fP to 2015.5
  257275. @ \fI2015\-07\-23 16:26:48 UTC\fP
  257276. .INDENT 2.0
  257277. .IP \(bu 2
  257278. \fBPR\fP \fI\%#25624\fP: (\fI\%bobrik\fP) Fix typo in get_routes example for debian_ip (refs: \fI\%#25661\fP)
  257279. .IP \(bu 2
  257280. b1c1735aae Merge pull request \fI\%#25661\fP from rallytime/bp\-25624
  257281. .IP \(bu 2
  257282. 4e1fcfa15e Fix typo in get_routes example for debian_ip
  257283. .UNINDENT
  257284. .IP \(bu 2
  257285. \fBISSUE\fP \fI\%#15209\fP: (\fI\%hubez\fP) file.manage: source_hash not working with s3:// (2014.7.0rc1) (refs: \fI\%#25638\fP)
  257286. .IP \(bu 2
  257287. \fBPR\fP \fI\%#25662\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25638\fP to 2015.5
  257288. @ \fI2015\-07\-23 16:26:40 UTC\fP
  257289. .INDENT 2.0
  257290. .IP \(bu 2
  257291. \fBPR\fP \fI\%#25638\fP: (\fI\%TronPaul\fP) fix bad merge in 99fc7ec (refs: \fI\%#25662\fP)
  257292. .IP \(bu 2
  257293. 6a2843dee2 Merge pull request \fI\%#25662\fP from rallytime/bp\-25638
  257294. .IP \(bu 2
  257295. 90d833d5dc fix bad merge 99fc7ec
  257296. .UNINDENT
  257297. .IP \(bu 2
  257298. \fBISSUE\fP \fI\%#25413\fP: (\fI\%zizkebab\fP) pillar_opts default behavior is not reflected in the docs (refs: \fI\%#25644\fP)
  257299. .IP \(bu 2
  257300. \fBPR\fP \fI\%#25644\fP: (\fI\%cachedout\fP) pillar doc fix
  257301. @ \fI2015\-07\-22 22:57:23 UTC\fP
  257302. .INDENT 2.0
  257303. .IP \(bu 2
  257304. 00f4689fe3 Merge pull request \fI\%#25644\fP from cachedout/issue_25413
  257305. .IP \(bu 2
  257306. 8cef61e6cc pillar doc fix
  257307. .UNINDENT
  257308. .IP \(bu 2
  257309. \fBISSUE\fP \fI\%#25540\fP: (\fI\%dennisjac\fP) salt highstate schedule cannot be removed (refs: \fI\%#25642\fP)
  257310. .IP \(bu 2
  257311. \fBPR\fP \fI\%#25642\fP: (\fI\%cachedout\fP) Warn on pillar schedule delete
  257312. @ \fI2015\-07\-22 22:04:12 UTC\fP
  257313. .INDENT 2.0
  257314. .IP \(bu 2
  257315. aeaeb53ed6 Merge pull request \fI\%#25642\fP from cachedout/issue_25540
  257316. .IP \(bu 2
  257317. 74f6b6930c Warn on pillar schedule delete
  257318. .UNINDENT
  257319. .IP \(bu 2
  257320. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  257321. .IP \(bu 2
  257322. \fBPR\fP \fI\%#25598\fP: (\fI\%twangboy\fP) Fixed problem trying to load file with name of boolean type
  257323. @ \fI2015\-07\-22 17:07:49 UTC\fP
  257324. .INDENT 2.0
  257325. .IP \(bu 2
  257326. 7b79e433f1 Merge pull request \fI\%#25598\fP from twangboy/fix_25437
  257327. .IP \(bu 2
  257328. c53e11d42c Fixed problem trying to load file with name of boolean type
  257329. .UNINDENT
  257330. .IP \(bu 2
  257331. \fBISSUE\fP \fI\%#25323\fP: (\fI\%terminalmage\fP) unit.modules.tls_test fails with older mock (refs: \fI\%#25604\fP)
  257332. .IP \(bu 2
  257333. \fBPR\fP \fI\%#25604\fP: (\fI\%terminalmage\fP) Move patching of mock_open to within test
  257334. @ \fI2015\-07\-22 16:53:55 UTC\fP
  257335. .INDENT 2.0
  257336. .IP \(bu 2
  257337. f4a38a8aee Merge pull request \fI\%#25604\fP from terminalmage/fix\-mock_open
  257338. .IP \(bu 2
  257339. 123b8ee1cb Fix mock_open patch
  257340. .IP \(bu 2
  257341. af82835f42 Move patching of mock_open to within test
  257342. .UNINDENT
  257343. .IP \(bu 2
  257344. \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)
  257345. .INDENT 2.0
  257346. .IP \(bu 2
  257347. \fBPR\fP \fI\%saltstack/salt\-bootstrap#627\fP: (\fI\%nyushi\fP) Fix tornado installation on ubuntu (refs: \fI\%#25609\fP)
  257348. .UNINDENT
  257349. .IP \(bu 2
  257350. \fBPR\fP \fI\%#25609\fP: (\fI\%s0undt3ch\fP) [2015.5] Update the bootstrap script to latest release v2015.07.22
  257351. @ \fI2015\-07\-22 16:28:52 UTC\fP
  257352. .INDENT 2.0
  257353. .IP \(bu 2
  257354. 224484df7e Merge pull request \fI\%#25609\fP from s0undt3ch/hotfix/bootstrap\-script\-2015.5
  257355. .IP \(bu 2
  257356. 96a8568336 Update the bootstrap script to latest release v2015.07.22
  257357. .UNINDENT
  257358. .IP \(bu 2
  257359. \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)
  257360. .IP \(bu 2
  257361. \fBPR\fP \fI\%#25603\fP: (\fI\%terminalmage\fP) Add version_cmp function to yumpkg.py
  257362. @ \fI2015\-07\-22 15:42:29 UTC\fP
  257363. .INDENT 2.0
  257364. .IP \(bu 2
  257365. 07eb78c79f Merge pull request \fI\%#25603\fP from terminalmage/issue21912
  257366. .IP \(bu 2
  257367. 99e532ba74 Add versionadded directive
  257368. .IP \(bu 2
  257369. 8a1765fc6f Add version_cmp function to yumpkg.py
  257370. .IP \(bu 2
  257371. 457e72e273 Fix refernces to __salt__[\(aqversion_cmp\(aq]
  257372. .IP \(bu 2
  257373. a19fa2296a Avoid using single\-letter variable
  257374. .UNINDENT
  257375. .IP \(bu 2
  257376. \fBISSUE\fP \fI\%#25560\fP: (\fI\%dennisjac\fP) scheduled highstate runs don\(aqt return results to the job cache (refs: \fI\%#25590\fP)
  257377. .IP \(bu 2
  257378. \fBPR\fP \fI\%#25590\fP: (\fI\%garethgreenaway\fP) 2015.5 scheduled jobs return data
  257379. @ \fI2015\-07\-21 21:57:42 UTC\fP
  257380. .INDENT 2.0
  257381. .IP \(bu 2
  257382. 69ef81caba Merge pull request \fI\%#25590\fP from garethgreenaway/25560_2015_5_schedule_return_data
  257383. .IP \(bu 2
  257384. 19ca0c0b40 Switching default in 2015.5 for whether job data in returned to the mater job_cache.
  257385. .UNINDENT
  257386. .IP \(bu 2
  257387. \fBPR\fP \fI\%#25584\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24054\fP and \fI\%#25576\fP to 2015.5
  257388. @ \fI2015\-07\-21 21:16:38 UTC\fP
  257389. .INDENT 2.0
  257390. .IP \(bu 2
  257391. \fBPR\fP \fI\%#25576\fP: (\fI\%pcn\fP) s3fs breaks when fetching files from s3 (refs: \fI\%#25584\fP)
  257392. .IP \(bu 2
  257393. \fBPR\fP \fI\%#24054\fP: (\fI\%mgwilliams\fP) s3.head: return useful data (refs: \fI\%#25584\fP)
  257394. .IP \(bu 2
  257395. 9ffefc867e Merge pull request \fI\%#25584\fP from rallytime/bp\-24054\-and\-25576
  257396. .IP \(bu 2
  257397. aa9598e3a5 s3fs breaks when fetching files from s3
  257398. .IP \(bu 2
  257399. 1667d67c3e s3.head: return useful data
  257400. .UNINDENT
  257401. .IP \(bu 2
  257402. \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)
  257403. .IP \(bu 2
  257404. \fBPR\fP \fI\%#25589\fP: (\fI\%jahamn\fP) Fixes ssh_known_host not taking port into account
  257405. @ \fI2015\-07\-21 21:15:06 UTC\fP
  257406. .INDENT 2.0
  257407. .IP \(bu 2
  257408. a966e439d1 Merge pull request \fI\%#25589\fP from jahamn/Fix\-ssh_known_host\-not\-taking\-port\-into\-account
  257409. .IP \(bu 2
  257410. 8db7ada82d Fixed pylint e8303 errors
  257411. .IP \(bu 2
  257412. 6abad29f66 Fixed pylint errors
  257413. .IP \(bu 2
  257414. 8ae6ba1290 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into Fix\-ssh_known_host\-not\-taking\-port\-into\-account
  257415. .UNINDENT
  257416. .IP \(bu 2
  257417. \fBPR\fP \fI\%#25573\fP: (\fI\%EvaSDK\fP) Do not execute bootstrap script twice
  257418. @ \fI2015\-07\-21 18:20:04 UTC\fP
  257419. .INDENT 2.0
  257420. .IP \(bu 2
  257421. \fBPR\fP \fI\%#25465\fP: (\fI\%EvaSDK\fP) 2015.5.3 LXC module fixes (refs: \fI\%#25573\fP)
  257422. .IP \(bu 2
  257423. df74f2c3ad Merge pull request \fI\%#25573\fP from EvaSDK/2015.5.3\-lxc\-fixes
  257424. .IP \(bu 2
  257425. 49cec9f9a1 Use a more persistent tmp directory
  257426. .IP \(bu 2
  257427. 96a672f8e0 Do not execute bootstrap script twice
  257428. .UNINDENT
  257429. .IP \(bu 2
  257430. \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)
  257431. .IP \(bu 2
  257432. \fBPR\fP \fI\%#25580\fP: (\fI\%attiasr\fP) use explicit utf\-8 decoding (\fI\%#25532\fP)
  257433. @ \fI2015\-07\-21 15:40:49 UTC\fP
  257434. .INDENT 2.0
  257435. .IP \(bu 2
  257436. 79a809dd79 Merge pull request \fI\%#25580\fP from attiasr/patch\-1
  257437. .IP \(bu 2
  257438. 4b7dc96919 use explicit utf\-8 decoding (\fI\%#25532\fP)
  257439. .UNINDENT
  257440. .IP \(bu 2
  257441. \fBISSUE\fP \fI\%#25206\fP: (\fI\%jfindlay\fP) fullname issues with user.add state on windows (refs: \fI\%#25568\fP)
  257442. .IP \(bu 2
  257443. \fBPR\fP \fI\%#25568\fP: (\fI\%twangboy\fP) Fixed win_useradd module to add fullname
  257444. @ \fI2015\-07\-21 14:30:25 UTC\fP
  257445. .INDENT 2.0
  257446. .IP \(bu 2
  257447. 6edf196533 Merge pull request \fI\%#25568\fP from twangboy/fix_25206
  257448. .IP \(bu 2
  257449. fbee445c6d Commented out a pylint error
  257450. .IP \(bu 2
  257451. 4b56dc3893 Fixed win_useradd module to add fullname
  257452. .UNINDENT
  257453. .IP \(bu 2
  257454. \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)
  257455. .IP \(bu 2
  257456. \fBPR\fP \fI\%#25561\fP: (\fI\%twangboy\fP) Fixed the gem module to work on windows... without injection
  257457. @ \fI2015\-07\-20 21:12:15 UTC\fP
  257458. .INDENT 2.0
  257459. .IP \(bu 2
  257460. \fBPR\fP \fI\%#25428\fP: (\fI\%twangboy\fP) Fixed the gem module to work on windows (refs: \fI\%#25561\fP)
  257461. .IP \(bu 2
  257462. 3c32b0b669 Merge pull request \fI\%#25561\fP from twangboy/fix_21041_again
  257463. .IP \(bu 2
  257464. aaf3f3dcd0 Fixed some line and style issues
  257465. .IP \(bu 2
  257466. e6d0e5cda7 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_21041_again
  257467. .UNINDENT
  257468. .IP \(bu 2
  257469. \fBPR\fP \fI\%#25521\fP: (\fI\%cachedout\fP) Fix outputter for state.orch
  257470. @ \fI2015\-07\-20 19:30:14 UTC\fP
  257471. .INDENT 2.0
  257472. .IP \(bu 2
  257473. 9e19142c35 Merge pull request \fI\%#25521\fP from cachedout/orch_outputter
  257474. .IP \(bu 2
  257475. ea40816621 Try/except
  257476. .IP \(bu 2
  257477. dd609eb440 Fix outputter for state.orch
  257478. .UNINDENT
  257479. .IP \(bu 2
  257480. \fBPR\fP \fI\%#25563\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  257481. @ \fI2015\-07\-20 19:27:36 UTC\fP
  257482. .INDENT 2.0
  257483. .IP \(bu 2
  257484. 2117ac8022 Merge pull request \fI\%#25563\fP from basepi/merge\-forward\-2015.5
  257485. .IP \(bu 2
  257486. 3bf2f1a722 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  257487. .IP \(bu 2
  257488. 09ebaceca8 Merge pull request \fI\%#25416\fP from cachedout/str_2014_7
  257489. .INDENT 2.0
  257490. .IP \(bu 2
  257491. cc514938a8 Fix broken keyword
  257492. .INDENT 2.0
  257493. .IP \(bu 2
  257494. d67491bb80 Removed the logger as it\(aqs not used anymore
  257495. .IP \(bu 2
  257496. 5008bfee96 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_21041_again
  257497. .UNINDENT
  257498. .UNINDENT
  257499. .UNINDENT
  257500. .IP \(bu 2
  257501. \fBPR\fP \fI\%#25559\fP: (\fI\%cachedout\fP) Lint win_pkg
  257502. @ \fI2015\-07\-20 17:46:29 UTC\fP
  257503. .INDENT 2.0
  257504. .IP \(bu 2
  257505. 50c257b1d5 Merge pull request \fI\%#25559\fP from cachedout/lint_win_pkg
  257506. .IP \(bu 2
  257507. 53a00add99 Lint win_pkg
  257508. .UNINDENT
  257509. .IP \(bu 2
  257510. \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)
  257511. .IP \(bu 2
  257512. \fBPR\fP \fI\%#25556\fP: (\fI\%attiasr\fP) fix for \fI\%#25532\fP
  257513. @ \fI2015\-07\-20 17:45:11 UTC\fP
  257514. .INDENT 2.0
  257515. .IP \(bu 2
  257516. 7c7015ccda Merge pull request \fI\%#25556\fP from attiasr/patch\-1
  257517. .IP \(bu 2
  257518. 9b224e8d4e fix for \fI\%#25532\fP
  257519. .UNINDENT
  257520. .IP \(bu 2
  257521. \fBISSUE\fP \fI\%#25538\fP: (\fI\%stanislavb\fP) S3 ext_pillar configuration requires verify_ssl (refs: \fI\%#25554\fP)
  257522. .IP \(bu 2
  257523. \fBPR\fP \fI\%#25554\fP: (\fI\%jfindlay\fP) verify_ssl=True for s3 ext pillar
  257524. @ \fI2015\-07\-20 17:43:38 UTC\fP
  257525. .INDENT 2.0
  257526. .IP \(bu 2
  257527. 3c73dab2ce Merge pull request \fI\%#25554\fP from jfindlay/verify_ssl
  257528. .IP \(bu 2
  257529. ca3ab4e737 verify_ssl=True for s3 ext pillar
  257530. .UNINDENT
  257531. .IP \(bu 2
  257532. \fBPR\fP \fI\%#25551\fP: (\fI\%rallytime\fP) Backport \fI\%#25530\fP to 2015.5
  257533. @ \fI2015\-07\-20 17:43:00 UTC\fP
  257534. .INDENT 2.0
  257535. .IP \(bu 2
  257536. \fBPR\fP \fI\%#25530\fP: (\fI\%andre\-luiz\-dos\-santos\fP) The variable name must be last (refs: \fI\%#25551\fP)
  257537. .IP \(bu 2
  257538. e3e2e6718e Merge pull request \fI\%#25551\fP from rallytime/bp\-25530
  257539. .IP \(bu 2
  257540. df5003d7f9 The variable name must be last
  257541. .UNINDENT
  257542. .IP \(bu 2
  257543. \fBPR\fP \fI\%#25533\fP: (\fI\%attiasr\fP) port 445 for windows bootstraping
  257544. @ \fI2015\-07\-20 15:13:06 UTC\fP
  257545. .INDENT 2.0
  257546. .IP \(bu 2
  257547. 3e3441937f Merge pull request \fI\%#25533\fP from attiasr/patch\-2
  257548. .IP \(bu 2
  257549. c7fbf68597 fix windows bootstrapping
  257550. .UNINDENT
  257551. .IP \(bu 2
  257552. \fBISSUE\fP \fI\%#25432\fP: (\fI\%gtmanfred\fP) [2015.5.3][raet] raet error with SaltRaetRoadStackJoiner (refs: \fI\%#25525\fP)
  257553. .IP \(bu 2
  257554. \fBPR\fP \fI\%#25525\fP: (\fI\%gtmanfred\fP) add make _prepare an alias for postinitio
  257555. @ \fI2015\-07\-20 15:12:38 UTC\fP
  257556. .INDENT 2.0
  257557. .IP \(bu 2
  257558. 7fc051f56d Merge pull request \fI\%#25525\fP from gtmanfred/2015.5
  257559. .IP \(bu 2
  257560. 43950a5bc5 add make _prepare an alias for postinitio
  257561. .UNINDENT
  257562. .IP \(bu 2
  257563. \fBISSUE\fP \fI\%#25511\fP: (\fI\%rallytime\fP) Make provider \-\-> driver change backward compatible (refs: \fI\%#25519\fP)
  257564. .IP \(bu 2
  257565. \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)
  257566. .IP \(bu 2
  257567. \fBPR\fP \fI\%#25519\fP: (\fI\%rallytime\fP) Backport vmware driver to 2015.5 branch
  257568. @ \fI2015\-07\-20 15:11:26 UTC\fP
  257569. .INDENT 2.0
  257570. .IP \(bu 2
  257571. 725d1a40d0 Merge pull request \fI\%#25519\fP from rallytime/backport_vmware
  257572. .IP \(bu 2
  257573. 35e13eef1d Don\(aqt reference driver in older salt versions
  257574. .IP \(bu 2
  257575. f011890217 Add vmware back\-port change to release notes
  257576. .IP \(bu 2
  257577. 0f4f560b38 Backport vmware driver to 2015.5 branch
  257578. .UNINDENT
  257579. .IP \(bu 2
  257580. \fBPR\fP \fI\%#25542\fP: (\fI\%Oro\fP) Fix hipchat.send_message when using API v2
  257581. @ \fI2015\-07\-20 15:09:13 UTC\fP
  257582. .INDENT 2.0
  257583. .IP \(bu 2
  257584. 2f0d695bc0 Merge pull request \fI\%#25542\fP from Oro/fix\-hipchat\-v2\-sendmessage
  257585. .IP \(bu 2
  257586. 3a9f5b037f Fix hipchat.send_message when using API v2
  257587. .UNINDENT
  257588. .IP \(bu 2
  257589. \fBPR\fP \fI\%#25531\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25529\fP to 2015.5
  257590. @ \fI2015\-07\-18 19:16:10 UTC\fP
  257591. .INDENT 2.0
  257592. .IP \(bu 2
  257593. \fBPR\fP \fI\%#25529\fP: (\fI\%davidjb\fP) Fix minor typo in best practice example (refs: \fI\%#25531\fP)
  257594. .IP \(bu 2
  257595. 390aa7d28f Merge pull request \fI\%#25531\fP from rallytime/bp\-25529
  257596. .IP \(bu 2
  257597. 3e24381439 Fix minor typo in best practice example
  257598. .UNINDENT
  257599. .IP \(bu 2
  257600. \fBPR\fP \fI\%#25528\fP: (\fI\%davidjb\fP) Fix typo in extend declaration doco
  257601. @ \fI2015\-07\-18 14:22:06 UTC\fP
  257602. .INDENT 2.0
  257603. .IP \(bu 2
  257604. 6e811bfdd2 Merge pull request \fI\%#25528\fP from davidjb/patch\-7
  257605. .IP \(bu 2
  257606. bfc4f9fd85 Fix typo in extend declaration doco
  257607. .UNINDENT
  257608. .IP \(bu 2
  257609. \fBISSUE\fP \fI\%#25486\fP: (\fI\%whiteinge\fP) Highstate outputter not used for state.apply (refs: \fI\%#25517\fP)
  257610. .IP \(bu 2
  257611. \fBPR\fP \fI\%#25517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25486\fP to 2015.5
  257612. @ \fI2015\-07\-17 21:49:26 UTC\fP
  257613. .INDENT 2.0
  257614. .IP \(bu 2
  257615. \fBPR\fP \fI\%#25485\fP: (\fI\%attiasr\fP) fix file downloads on windows
  257616. .IP \(bu 2
  257617. b9abd723a7 Merge pull request \fI\%#25517\fP from rallytime/bp\-25485
  257618. .IP \(bu 2
  257619. 6c2f3180c2 fix file downloads on windows
  257620. .UNINDENT
  257621. .IP \(bu 2
  257622. \fBISSUE\fP \fI\%#25479\fP: (\fI\%alexandrsushko\fP) multiple mount.mounted of one device (refs: \fI\%#25483\fP)
  257623. .IP \(bu 2
  257624. \fBPR\fP \fI\%#25516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25483\fP to 2015.5
  257625. @ \fI2015\-07\-17 21:49:05 UTC\fP
  257626. .INDENT 2.0
  257627. .IP \(bu 2
  257628. \fBPR\fP \fI\%#25483\fP: (\fI\%alexandrsushko\fP) Added \(aqnone\(aq to the set of specialFSes (refs: \fI\%#25516\fP)
  257629. .IP \(bu 2
  257630. 9cb436fbae Merge pull request \fI\%#25516\fP from rallytime/bp\-25483
  257631. .IP \(bu 2
  257632. e0af6e3478 Added \(aqnone\(aq to the set of specialFSes
  257633. .UNINDENT
  257634. .IP \(bu 2
  257635. \fBISSUE\fP \fI\%#25493\fP: (\fI\%blackduckx\fP) Issue with job_args on schedule.add command (refs: \fI\%#25513\fP)
  257636. .IP \(bu 2
  257637. \fBPR\fP \fI\%#25513\fP: (\fI\%garethgreenaway\fP) fixes to schedule.add documentation in 2015.5
  257638. @ \fI2015\-07\-17 17:03:24 UTC\fP
  257639. .INDENT 2.0
  257640. .IP \(bu 2
  257641. daf03efb7c Merge pull request \fI\%#25513\fP from garethgreenaway/25493_2015_5_schedule_add_documentation
  257642. .IP \(bu 2
  257643. 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.
  257644. .UNINDENT
  257645. .IP \(bu 2
  257646. \fBPR\fP \fI\%#25465\fP: (\fI\%EvaSDK\fP) 2015.5.3 LXC module fixes (refs: \fI\%#25573\fP)
  257647. @ \fI2015\-07\-17 15:57:54 UTC\fP
  257648. .INDENT 2.0
  257649. .IP \(bu 2
  257650. 48050cd287 Merge pull request \fI\%#25465\fP from EvaSDK/2015.5.3\-lxc\-fixes
  257651. .IP \(bu 2
  257652. 170eb52cc4 Fix use of undefined cmd when install of boostrap script fails
  257653. .IP \(bu 2
  257654. 86118f4a7b Install bootstrap script like dns and systemd check scripts in container
  257655. .IP \(bu 2
  257656. 978e6d56e2 Error out if configdir could not be created when preparing LXC container
  257657. .IP \(bu 2
  257658. 41b6c3c2bf Fix typo in redirecting shell output to /dev/null
  257659. .IP \(bu 2
  257660. 456393d4db Fix DNS script cleanup
  257661. .UNINDENT
  257662. .IP \(bu 2
  257663. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#611\fP: (\fI\%BretFisher\fP) SmartOS doesn\(aqt detect missing git, fails install (refs: \fI\%#25506\fP)
  257664. .IP \(bu 2
  257665. \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)
  257666. .IP \(bu 2
  257667. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#602\fP: (\fI\%rallytime\fP) Ubuntu 14.10 Won\(aqt Bootstrap with Latest Stable (refs: \fI\%#25506\fP)
  257668. .IP \(bu 2
  257669. \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)
  257670. .IP \(bu 2
  257671. \fBISSUE\fP \fI\%saltstack/salt#25456\fP: (\fI\%julienlavergne\fP) [2015.8.0rc1] salt\-bootstrap fails to install salt master (refs: \fI\%#25506\fP)
  257672. .IP \(bu 2
  257673. \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)
  257674. .IP \(bu 2
  257675. \fBISSUE\fP \fI\%#619\fP: (\fI\%syphernl\fP) Only send over changed files during state.highstate (refs: #\(gasaltstack/salt\-bootstrap#621\(ga_)
  257676. .INDENT 2.0
  257677. .IP \(bu 2
  257678. \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)
  257679. .IP \(bu 2
  257680. \fBPR\fP \fI\%saltstack/salt\-bootstrap#624\fP: (\fI\%BretFisher\fP) fix config and etc path on SmartOS (refs: \fI\%#25506\fP)
  257681. .IP \(bu 2
  257682. \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)
  257683. .IP \(bu 2
  257684. \fBPR\fP \fI\%saltstack/salt\-bootstrap#606\fP: (\fI\%babilen\fP) Switch to httpredir.debian.org as default Debian mirror (refs: \fI\%#25506\fP)
  257685. .IP \(bu 2
  257686. \fBPR\fP \fI\%saltstack/salt\-bootstrap#455\fP: (\fI\%denmat\fP) PR: Issue 394 (refs: \fI\%#25506\fP)
  257687. .UNINDENT
  257688. .IP \(bu 2
  257689. \fBPR\fP \fI\%#25506\fP: (\fI\%s0undt3ch\fP) [2015.5] Update bootstrap script to latest stable release, v2015.07.17
  257690. @ \fI2015\-07\-17 15:40:38 UTC\fP
  257691. .INDENT 2.0
  257692. .IP \(bu 2
  257693. f85f2b49fd Merge pull request \fI\%#25506\fP from s0undt3ch/hotfix/bootstrap\-script
  257694. .IP \(bu 2
  257695. ab6aaa6e60 Update bootstrap script to latest stable release, v2015.07.17
  257696. .UNINDENT
  257697. .IP \(bu 2
  257698. \fBISSUE\fP \fI\%#25454\fP: (\fI\%mschiff\fP) Regression: salt 2015.5 not working in secure chroot anymore. (refs: \fI\%#25498\fP)
  257699. .IP \(bu 2
  257700. \fBPR\fP \fI\%#25498\fP: (\fI\%jfindlay\fP) only read /proc/1/cmdline if it exists
  257701. @ \fI2015\-07\-17 15:35:33 UTC\fP
  257702. .INDENT 2.0
  257703. .IP \(bu 2
  257704. c8caf406b2 Merge pull request \fI\%#25498\fP from jfindlay/jail_init
  257705. .IP \(bu 2
  257706. c63a6c206f only read /proc/1/cmdline if it exists
  257707. .UNINDENT
  257708. .IP \(bu 2
  257709. \fBPR\fP \fI\%#25487\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25464\fP to 2015.5
  257710. @ \fI2015\-07\-16 16:58:36 UTC\fP
  257711. .INDENT 2.0
  257712. .IP \(bu 2
  257713. \fBPR\fP \fI\%#25464\fP: (\fI\%jquast\fP) docfix: "cache_jobs: False" => grains_cache: False" (refs: \fI\%#25487\fP)
  257714. .IP \(bu 2
  257715. 3f695a17cf Merge pull request \fI\%#25487\fP from rallytime/bp\-25464
  257716. .IP \(bu 2
  257717. e947d8ec5a docfix: "cache_jobs: False" => grains_cache: False"
  257718. .UNINDENT
  257719. .IP \(bu 2
  257720. \fBPR\fP \fI\%#25482\fP: (\fI\%oeuftete\fP) Fix docker.running detection of running container
  257721. @ \fI2015\-07\-16 16:58:29 UTC\fP
  257722. .INDENT 2.0
  257723. .IP \(bu 2
  257724. 331808eb7d Merge pull request \fI\%#25482\fP from oeuftete/docker\-running\-is\-running\-fix\-2015\-5
  257725. .IP \(bu 2
  257726. b69379ba50 Fix docker.running detection of running container
  257727. .UNINDENT
  257728. .IP \(bu 2
  257729. \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)
  257730. .IP \(bu 2
  257731. \fBPR\fP \fI\%#25468\fP: (\fI\%joejulian\fP) Add support for pyOpenSSL > 0.10
  257732. @ \fI2015\-07\-16 15:10:30 UTC\fP
  257733. .INDENT 2.0
  257734. .IP \(bu 2
  257735. 7a20ecbf46 Merge pull request \fI\%#25468\fP from joejulian/use_pyopenssl_0_10
  257736. .IP \(bu 2
  257737. 1b7a56aa38 Add support for pyOpenSSL > 0.10
  257738. .UNINDENT
  257739. .IP \(bu 2
  257740. \fBPR\fP \fI\%#25467\fP: (\fI\%rallytime\fP) Add lxml dependency to opennebula docs
  257741. @ \fI2015\-07\-16 15:09:57 UTC\fP
  257742. .INDENT 2.0
  257743. .IP \(bu 2
  257744. d169905170 Merge pull request \fI\%#25467\fP from rallytime/lxml_dep
  257745. .IP \(bu 2
  257746. d326f4f686 Add lxml dependency to opennebula docs
  257747. .UNINDENT
  257748. .IP \(bu 2
  257749. \fBISSUE\fP \fI\%#25250\fP: (\fI\%wipfs\fP) \(aqforce\(aq option in copy state deletes target file (refs: \fI\%#25461\fP, \fI\%#25710\fP)
  257750. .IP \(bu 2
  257751. \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)
  257752. .IP \(bu 2
  257753. \fBPR\fP \fI\%#25461\fP: (\fI\%jahamn\fP) Update file, if force option and content not same
  257754. @ \fI2015\-07\-15 20:15:07 UTC\fP
  257755. .INDENT 2.0
  257756. .IP \(bu 2
  257757. 89649456e0 Merge pull request \fI\%#25461\fP from jahamn/fixed\-file.copy\-force\-option\-deleting\-files\-without\-updating\-them
  257758. .IP \(bu 2
  257759. 32cf1ebbb5 Update file, if force option and content not same
  257760. .UNINDENT
  257761. .IP \(bu 2
  257762. \fBISSUE\fP \fI\%#25431\fP: (\fI\%namcois\fP) Digital Ocean v2 reducing API calls by adding per_page (refs: \fI\%#25438\fP)
  257763. .IP \(bu 2
  257764. \fBPR\fP \fI\%#25438\fP: (\fI\%rallytime\fP) Reduce digital_ocean_v2 API call frequency
  257765. @ \fI2015\-07\-15 19:40:18 UTC\fP
  257766. .INDENT 2.0
  257767. .IP \(bu 2
  257768. 146a81b7c3 Merge pull request \fI\%#25438\fP from rallytime/do_v2
  257769. .IP \(bu 2
  257770. faf49ea2a3 Add page number change release notes
  257771. .IP \(bu 2
  257772. da6ab82837 Reduce digital_ocean_v2 API call frequency
  257773. .UNINDENT
  257774. .IP \(bu 2
  257775. \fBPR\fP \fI\%#25457\fP: (\fI\%jacksontj\fP) Saltnado
  257776. @ \fI2015\-07\-15 17:50:12 UTC\fP
  257777. .INDENT 2.0
  257778. .IP \(bu 2
  257779. \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)
  257780. .IP \(bu 2
  257781. cb98d79cdd Merge pull request \fI\%#25457\fP from jacksontj/saltnado
  257782. .IP \(bu 2
  257783. bc32f66b98 Add runner_async endpoint to salnado
  257784. .IP \(bu 2
  257785. b043fa9b05 Better name of method process manager is starting
  257786. .UNINDENT
  257787. .IP \(bu 2
  257788. \fBPR\fP \fI\%#25459\fP: (\fI\%jahamn\fP) Fixed \(aqdefulats\(aq typo in verify.py
  257789. @ \fI2015\-07\-15 16:53:06 UTC\fP
  257790. .INDENT 2.0
  257791. .IP \(bu 2
  257792. 3f72eb5486 Merge pull request \fI\%#25459\fP from jahamn/fix\-defulats\-typo\-in\-verify.py
  257793. .IP \(bu 2
  257794. 9bafd19f67 Fixed \(aqdefulats\(aq typo in verify.py
  257795. .UNINDENT
  257796. .IP \(bu 2
  257797. \fBPR\fP \fI\%#25426\fP: (\fI\%jquast\fP) bugfix: trailing "...done" in rabbitmq output (backport from \(aqdevelop\(aq to 2015.5)
  257798. @ \fI2015\-07\-15 14:48:05 UTC\fP
  257799. .INDENT 2.0
  257800. .IP \(bu 2
  257801. 73566188cf Merge pull request \fI\%#25426\fP from jquast/2015.5
  257802. .IP \(bu 2
  257803. 005a7ca2a3 bugfix: trailing "...done" in rabbitmq output
  257804. .UNINDENT
  257805. .IP \(bu 2
  257806. \fBPR\fP \fI\%#25433\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (ifconfig)
  257807. @ \fI2015\-07\-15 14:44:09 UTC\fP
  257808. .INDENT 2.0
  257809. .IP \(bu 2
  257810. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  257811. .IP \(bu 2
  257812. cfec990062 Merge pull request \fI\%#25433\fP from jleroy/ipv6\-scope\-support\-ifconfig
  257813. .IP \(bu 2
  257814. bc36d05c0c Support for IPv6 addresses scopes in network.interfaces (ifconfig)
  257815. .UNINDENT
  257816. .IP \(bu 2
  257817. \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)
  257818. .IP \(bu 2
  257819. \fBPR\fP \fI\%#25430\fP: (\fI\%twangboy\fP) Disabled rbenv execution module for Windows
  257820. @ \fI2015\-07\-15 14:41:18 UTC\fP
  257821. .INDENT 2.0
  257822. .IP \(bu 2
  257823. a425230c19 Merge pull request \fI\%#25430\fP from twangboy/fix_21041_2
  257824. .IP \(bu 2
  257825. 242fc21765 Disabled rbenv execution module for Windows
  257826. .INDENT 2.0
  257827. .INDENT 3.5
  257828. .INDENT 0.0
  257829. .IP \(bu 2
  257830. 8b2dc681f9 Fixed the gem module to work on windows... without injection
  257831. .IP \(bu 2
  257832. c7466e7894 Fixes ssh_known_host to take port into account
  257833. .UNINDENT
  257834. .UNINDENT
  257835. .UNINDENT
  257836. .UNINDENT
  257837. .IP \(bu 2
  257838. \fBISSUE\fP \fI\%#1846\fP: (\fI\%seanchannel\fP) development dependencies
  257839. .IP \(bu 2
  257840. \fBPR\fP \fI\%#25420\fP: (\fI\%techhat\fP) Move S3 to use AWS Signature Version 4
  257841. @ \fI2015\-07\-14 22:03:09 UTC\fP
  257842. .INDENT 2.0
  257843. .IP \(bu 2
  257844. 9313804e27 Merge pull request \fI\%#25420\fP from techhat/s3sig4
  257845. .IP \(bu 2
  257846. 3edf3a14e2 Linting
  257847. .IP \(bu 2
  257848. c63c2356be Move S3 to use AWS Signature Version 4
  257849. .UNINDENT
  257850. .IP \(bu 2
  257851. \fBISSUE\fP \fI\%#20441\fP: (\fI\%deuscapturus\fP) State module file.managed returns an error on Windows and test=Test (refs: \fI\%#25418\fP)
  257852. .IP \(bu 2
  257853. \fBPR\fP \fI\%#25418\fP: (\fI\%twangboy\fP) Fixed problem with file.managed test=True
  257854. @ \fI2015\-07\-14 21:26:59 UTC\fP
  257855. .INDENT 2.0
  257856. .IP \(bu 2
  257857. 30a41d3f51 Merge pull request \fI\%#25418\fP from twangboy/fix_20441
  257858. .IP \(bu 2
  257859. d8957856cd Fixed problem with file.managed test=True
  257860. .UNINDENT
  257861. .IP \(bu 2
  257862. \fBPR\fP \fI\%#25417\fP: (\fI\%ahus1\fP) extended documentation about dependencies for dig module
  257863. @ \fI2015\-07\-14 20:49:51 UTC\fP
  257864. .INDENT 2.0
  257865. .IP \(bu 2
  257866. 3805677e93 Merge pull request \fI\%#25417\fP from ahus1/patch\-1
  257867. .IP \(bu 2
  257868. 3cd194ebaf Update dig.py
  257869. .IP \(bu 2
  257870. 287f8f76e3 extended documentation about dependencies
  257871. .UNINDENT
  257872. .IP \(bu 2
  257873. \fBPR\fP \fI\%#25411\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  257874. @ \fI2015\-07\-14 17:55:26 UTC\fP
  257875. .INDENT 2.0
  257876. .IP \(bu 2
  257877. 4d929071e1 Merge pull request \fI\%#25411\fP from basepi/merge\-forward\-2015.5
  257878. .IP \(bu 2
  257879. 33d2451fef Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  257880. .IP \(bu 2
  257881. 2a1dd1113f Merge pull request \fI\%#25375\fP from cachedout/config_fix_2014_7
  257882. .INDENT 2.0
  257883. .IP \(bu 2
  257884. c041f2905f Fix error in config.py for master_type
  257885. .UNINDENT
  257886. .IP \(bu 2
  257887. 2590e23d48 Merge pull request \fI\%#25324\fP from jacobhammons/doc\-theme\-updates
  257888. .INDENT 2.0
  257889. .IP \(bu 2
  257890. 88f5fcf58d Latest help theme updates
  257891. .UNINDENT
  257892. .UNINDENT
  257893. .IP \(bu 2
  257894. \fBPR\fP \fI\%#25406\fP: (\fI\%anlutro\fP) Force arguments to aptpkg.version_cmp into strings
  257895. @ \fI2015\-07\-14 16:15:41 UTC\fP
  257896. .INDENT 2.0
  257897. .IP \(bu 2
  257898. 81bed62d16 Merge pull request \fI\%#25406\fP from alprs/fix\-apt_version_cmp_types
  257899. .IP \(bu 2
  257900. d56efd1341 force arguments to apt_pkg.version_compare into strings
  257901. .UNINDENT
  257902. .IP \(bu 2
  257903. \fBPR\fP \fI\%#25408\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25399\fP to 2015.5
  257904. @ \fI2015\-07\-14 16:09:06 UTC\fP
  257905. .INDENT 2.0
  257906. .IP \(bu 2
  257907. \fBPR\fP \fI\%#25399\fP: (\fI\%jarpy\fP) Demonstrate per\-minion client_acl. (refs: \fI\%#25408\fP)
  257908. .IP \(bu 2
  257909. cd9ea63ff2 Merge pull request \fI\%#25408\fP from rallytime/bp\-25399
  257910. .IP \(bu 2
  257911. da9c0eb673 Typo in client_acl ref doc.
  257912. .IP \(bu 2
  257913. 50e0baf270 Demonstrate per\-minion client_acl.
  257914. .UNINDENT
  257915. .IP \(bu 2
  257916. \fBPR\fP \fI\%#25240\fP: (\fI\%tankywoo\fP) file make os.walk only be called one
  257917. @ \fI2015\-07\-14 16:04:49 UTC\fP
  257918. .INDENT 2.0
  257919. .IP \(bu 2
  257920. ef9f6b0ce0 Merge pull request \fI\%#25240\fP from tankywoo/fix\-files\-os\-walk\-multiple\-times
  257921. .IP \(bu 2
  257922. 8044def1c0 file make os.walk only be called one
  257923. .UNINDENT
  257924. .IP \(bu 2
  257925. \fBPR\fP \fI\%#25395\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25389\fP to 2015.5
  257926. @ \fI2015\-07\-14 03:26:34 UTC\fP
  257927. .INDENT 2.0
  257928. .IP \(bu 2
  257929. \fBPR\fP \fI\%#25389\fP: (\fI\%l2ol33rt\fP) Adding entropy note for gpg renderer (refs: \fI\%#25395\fP)
  257930. .IP \(bu 2
  257931. d02f388b08 Merge pull request \fI\%#25395\fP from rallytime/bp\-25389
  257932. .IP \(bu 2
  257933. a086e5ad35 Adding entropy note
  257934. .UNINDENT
  257935. .IP \(bu 2
  257936. \fBPR\fP \fI\%#25392\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25256\fP to 2015.5
  257937. @ \fI2015\-07\-14 03:25:13 UTC\fP
  257938. .INDENT 2.0
  257939. .IP \(bu 2
  257940. \fBPR\fP \fI\%#25256\fP: (\fI\%yanatan16\fP) Dont assume source_hash exists (refs: \fI\%#25392\fP)
  257941. .IP \(bu 2
  257942. 008e3295c6 Merge pull request \fI\%#25392\fP from rallytime/bp\-25256
  257943. .IP \(bu 2
  257944. 6b2da4d582 Dont assume source_hash exists
  257945. .UNINDENT
  257946. .IP \(bu 2
  257947. \fBPR\fP \fI\%#25398\fP: (\fI\%twangboy\fP) Fix date
  257948. @ \fI2015\-07\-14 03:21:17 UTC\fP
  257949. .INDENT 2.0
  257950. .IP \(bu 2
  257951. 3f278963ae Merge pull request \fI\%#25398\fP from twangboy/fix_date
  257952. .IP \(bu 2
  257953. 52824f9602 Added /V1 /Z to remove scheduled task after run
  257954. .IP \(bu 2
  257955. a055cca79f Changed date of scheduled task to work in other locales
  257956. .UNINDENT
  257957. .IP \(bu 2
  257958. \fBPR\fP \fI\%#25397\fP: (\fI\%GideonRed\-zz\fP) Introduce standard error output when cli exits with non\-zero status
  257959. @ \fI2015\-07\-14 03:20:24 UTC\fP
  257960. .INDENT 2.0
  257961. .IP \(bu 2
  257962. 978d9f7117 Merge pull request \fI\%#25397\fP from GideonRed/2015.5
  257963. .IP \(bu 2
  257964. ea7ab27f31 Introduce standard error output when cli exits with non\-zero status
  257965. .UNINDENT
  257966. .IP \(bu 2
  257967. \fBISSUE\fP \fI\%#24444\fP: (\fI\%michaelkrupp\fP) file.managed does not handle dead symlinks (refs: \fI\%#25383\fP)
  257968. .IP \(bu 2
  257969. \fBPR\fP \fI\%#25386\fP: (\fI\%cachedout\fP) Lint \fI\%#25383\fP
  257970. @ \fI2015\-07\-13 21:01:10 UTC\fP
  257971. .INDENT 2.0
  257972. .IP \(bu 2
  257973. \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)
  257974. .IP \(bu 2
  257975. 09442abbde Merge pull request \fI\%#25386\fP from cachedout/lint_25383
  257976. .IP \(bu 2
  257977. 7694299170 Lint \fI\%#25383\fP
  257978. .UNINDENT
  257979. .IP \(bu 2
  257980. \fBISSUE\fP \fI\%#24444\fP: (\fI\%michaelkrupp\fP) file.managed does not handle dead symlinks (refs: \fI\%#25383\fP)
  257981. .IP \(bu 2
  257982. \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)
  257983. @ \fI2015\-07\-13 20:58:23 UTC\fP
  257984. .INDENT 2.0
  257985. .IP \(bu 2
  257986. 47bcc61f55 Merge pull request \fI\%#25383\fP from jahamn/Fix\-file.managed_not_handling_dead_symlinks
  257987. .IP \(bu 2
  257988. ab17aa160e Fix manage_file function in salt/modules/file.py to handle broken symlinks
  257989. .UNINDENT
  257990. .IP \(bu 2
  257991. \fBPR\fP \fI\%#25369\fP: (\fI\%anlutro\fP) Fix aptpkg.version_cmp
  257992. @ \fI2015\-07\-13 20:18:45 UTC\fP
  257993. .INDENT 2.0
  257994. .IP \(bu 2
  257995. c9fe10e7aa Merge pull request \fI\%#25369\fP from alprs/fix\-apt_version_cmp
  257996. .IP \(bu 2
  257997. 6391b15b3e fix aptpkg.version_cmp
  257998. .UNINDENT
  257999. .IP \(bu 2
  258000. \fBISSUE\fP \fI\%#25337\fP: (\fI\%eliasp\fP) \fIsalt\-call\fP from non\-existend cwd backtraces (refs: \fI\%#25379\fP)
  258001. .IP \(bu 2
  258002. \fBPR\fP \fI\%#25379\fP: (\fI\%jfindlay\fP) check for cwd before getting it
  258003. @ \fI2015\-07\-13 19:50:27 UTC\fP
  258004. .INDENT 2.0
  258005. .IP \(bu 2
  258006. beb0238392 Merge pull request \fI\%#25379\fP from jfindlay/check_wd
  258007. .IP \(bu 2
  258008. 6e4547ff38 check for cwd before getting it
  258009. .UNINDENT
  258010. .IP \(bu 2
  258011. \fBISSUE\fP \fI\%#25320\fP: (\fI\%podloucky\-init\fP) zypper module list_upgrades broken (2015.5.2) (refs: \fI\%#25334\fP)
  258012. .IP \(bu 2
  258013. \fBPR\fP \fI\%#25334\fP: (\fI\%jfindlay\fP) return all cmd info back to zypper fcn
  258014. @ \fI2015\-07\-13 17:03:29 UTC\fP
  258015. .INDENT 2.0
  258016. .IP \(bu 2
  258017. 274622ad9b Merge pull request \fI\%#25334\fP from jfindlay/fix_zyp
  258018. .IP \(bu 2
  258019. c1e633903e return all cmd info back to zypper fcn
  258020. .UNINDENT
  258021. .IP \(bu 2
  258022. \fBPR\fP \fI\%#25339\fP: (\fI\%jfindlay\fP) update orchestration docs
  258023. @ \fI2015\-07\-13 16:04:26 UTC\fP
  258024. .INDENT 2.0
  258025. .IP \(bu 2
  258026. 71859c6593 Merge pull request \fI\%#25339\fP from jfindlay/orch_doc
  258027. .IP \(bu 2
  258028. 0447808d95 clarify, motivate orchestration docs
  258029. .UNINDENT
  258030. .IP \(bu 2
  258031. \fBISSUE\fP \fI\%#22241\fP: (\fI\%masterkorp\fP) Salt master not properly generating the map (refs: \fI\%#25358\fP)
  258032. .IP \(bu 2
  258033. \fBPR\fP \fI\%#25358\fP: (\fI\%dkiser\fP) Deep merge of pillar lists (refs: \fI\%#26016\fP)
  258034. @ \fI2015\-07\-13 15:51:01 UTC\fP
  258035. .INDENT 2.0
  258036. .IP \(bu 2
  258037. 90a1ca02a3 Merge pull request \fI\%#25358\fP from dkiser/22241_pillar_merge_lists
  258038. .IP \(bu 2
  258039. d030e289b3 Deep merge of pillar lists
  258040. .UNINDENT
  258041. .IP \(bu 2
  258042. \fBISSUE\fP \fI\%#25281\fP: (\fI\%shinshenjs\fP) Unless usage in Official Doc syntax error? (refs: \fI\%#25346\fP)
  258043. .IP \(bu 2
  258044. \fBPR\fP \fI\%#25346\fP: (\fI\%bechtoldt\fP) set correct indention in states/requisites.rst (docs), fixes \fI\%#25281\fP
  258045. @ \fI2015\-07\-13 15:34:45 UTC\fP
  258046. .INDENT 2.0
  258047. .IP \(bu 2
  258048. 66c619fd71 Merge pull request \fI\%#25346\fP from bechtoldt/issue25281
  258049. .IP \(bu 2
  258050. 8eb2ac1dbe set correct indention in states/requisites.rst (docs), fixes \fI\%#25281\fP
  258051. .UNINDENT
  258052. .IP \(bu 2
  258053. \fBPR\fP \fI\%#25336\fP: (\fI\%terminalmage\fP) Don\(aqt try to read init binary if it wasn\(aqt found
  258054. @ \fI2015\-07\-13 09:45:30 UTC\fP
  258055. .INDENT 2.0
  258056. .IP \(bu 2
  258057. b122ed931d Merge pull request \fI\%#25336\fP from terminalmage/fix\-init\-grain
  258058. .IP \(bu 2
  258059. f473918a53 Don\(aqt try to read init binary if it wasn\(aqt found
  258060. .UNINDENT
  258061. .IP \(bu 2
  258062. \fBPR\fP \fI\%#25350\fP: (\fI\%davidjb\fP) Fix documentation for file.blockreplace
  258063. @ \fI2015\-07\-13 03:41:20 UTC\fP
  258064. .INDENT 2.0
  258065. .IP \(bu 2
  258066. 1805bafc89 Merge pull request \fI\%#25350\fP from davidjb/patch\-4
  258067. .IP \(bu 2
  258068. e13a9fd74e Fix documentation for file.blockreplace
  258069. .UNINDENT
  258070. .IP \(bu 2
  258071. \fBISSUE\fP \fI\%#19288\fP: (\fI\%oba11\fP) AssociatePublicIpAddress doesnt work with salt\-cloud 2014.7.0 (refs: \fI\%#25326\fP, \fI\%#20972\fP)
  258072. .IP \(bu 2
  258073. \fBPR\fP \fI\%#25326\fP: (\fI\%rallytime\fP) Back\-port \fI\%#20972\fP to 2015.5
  258074. @ \fI2015\-07\-10 18:49:44 UTC\fP
  258075. .INDENT 2.0
  258076. .IP \(bu 2
  258077. \fBPR\fP \fI\%#20972\fP: (\fI\%JohannesEbke\fP) Fix interface cleanup when using AssociatePublicIpAddress in \fI\%#19288\fP (refs: \fI\%#25326\fP)
  258078. .IP \(bu 2
  258079. b0196fccb7 Merge pull request \fI\%#25326\fP from rallytime/bp\-20972
  258080. .IP \(bu 2
  258081. 51c941f59d Also fix cleanup of interfaces when using AssociatePublicIpAddress in \fI\%#19288\fP
  258082. .UNINDENT
  258083. .IP \(bu 2
  258084. \fBISSUE\fP \fI\%#24433\fP: (\fI\%chrimi\fP) Salt locale state fails, if locale has not been generated (refs: \fI\%#25290\fP)
  258085. .IP \(bu 2
  258086. \fBPR\fP \fI\%#25327\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25290\fP to 2015.5
  258087. @ \fI2015\-07\-10 18:49:37 UTC\fP
  258088. .INDENT 2.0
  258089. .IP \(bu 2
  258090. \fBPR\fP \fI\%#25290\fP: (\fI\%pcdummy\fP) Simple fix for locale.present on Ubuntu. (refs: \fI\%#25327\fP)
  258091. .IP \(bu 2
  258092. 28450d124e Merge pull request \fI\%#25327\fP from rallytime/bp\-25290
  258093. .IP \(bu 2
  258094. 20032c55f3 Simple fix for locale.present on Ubuntu.
  258095. .UNINDENT
  258096. .IP \(bu 2
  258097. \fBISSUE\fP \fI\%#24827\fP: (\fI\%yermulnik\fP) locale.present doesn\(aqt generate locales (refs: \fI\%#25309\fP)
  258098. .IP \(bu 2
  258099. \fBPR\fP \fI\%#25328\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25309\fP to 2015.5
  258100. @ \fI2015\-07\-10 17:22:59 UTC\fP
  258101. .INDENT 2.0
  258102. .IP \(bu 2
  258103. \fBPR\fP \fI\%#25309\fP: (\fI\%davidjb\fP) Format /etc/locale.gen correctly in salt.modules.localemod.gen_locale (refs: \fI\%#25328\fP)
  258104. .IP \(bu 2
  258105. 8f666a24f3 Merge pull request \fI\%#25328\fP from rallytime/bp\-25309
  258106. .IP \(bu 2
  258107. 44d44ec574 Format /etc/locale.gen correctly on gen_locale
  258108. .UNINDENT
  258109. .IP \(bu 2
  258110. \fBPR\fP \fI\%#25322\fP: (\fI\%jacobhammons\fP) version change to 2015.5.3
  258111. @ \fI2015\-07\-10 16:11:24 UTC\fP
  258112. .INDENT 2.0
  258113. .IP \(bu 2
  258114. 0a33a1d8bb Merge pull request \fI\%#25322\fP from jacobhammons/release\-2015.5.3
  258115. .IP \(bu 2
  258116. 19f88920fa version change to 2015.5.3
  258117. .UNINDENT
  258118. .IP \(bu 2
  258119. \fBPR\fP \fI\%#25308\fP: (\fI\%jacksontj\fP) Make clear commands trace level logging
  258120. @ \fI2015\-07\-10 14:20:06 UTC\fP
  258121. .INDENT 2.0
  258122. .IP \(bu 2
  258123. \fBPR\fP \fI\%#24737\fP: (\fI\%jacksontj\fP) Move AES command logging to trace (refs: \fI\%#25308\fP)
  258124. .IP \(bu 2
  258125. 2f0f59b6cb Merge pull request \fI\%#25308\fP from jacksontj/2015.5
  258126. .IP \(bu 2
  258127. 60fc770ba2 Make clear commands trace level logging
  258128. .UNINDENT
  258129. .IP \(bu 2
  258130. \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)
  258131. .IP \(bu 2
  258132. \fBPR\fP \fI\%#25269\fP: (\fI\%jfindlay\fP) Extract tomcat war version
  258133. @ \fI2015\-07\-10 01:28:21 UTC\fP
  258134. .INDENT 2.0
  258135. .IP \(bu 2
  258136. \fBPR\fP \fI\%#24927\fP: (\fI\%egarbi\fP) Tomcat module fails to extract version number from snapshot builds #2… (refs: \fI\%#25269\fP)
  258137. .IP \(bu 2
  258138. 9b6646d578 Merge pull request \fI\%#25269\fP from jfindlay/tomcat
  258139. .IP \(bu 2
  258140. fd4fca172d consolidate tomcat exec and state version extract
  258141. .IP \(bu 2
  258142. 59dc833567 update tomcat war_deployed state tests
  258143. .IP \(bu 2
  258144. edca458b6c Fixed 2 blank lines around import re
  258145. .IP \(bu 2
  258146. 7e528d1050 Tomcat module fails to extract version number from snapshot builds \fI\%#24520\fP
  258147. .UNINDENT
  258148. .IP \(bu 2
  258149. \fBISSUE\fP \fI\%#18808\fP: (\fI\%amendlik\fP) Add command line argument to select pillar environment (refs: \fI\%#25238\fP)
  258150. .IP \(bu 2
  258151. \fBPR\fP \fI\%#25238\fP: (\fI\%DmitryKuzmenko\fP) Pillarenv backport 2015.5
  258152. @ \fI2015\-07\-10 01:25:07 UTC\fP
  258153. .INDENT 2.0
  258154. .IP \(bu 2
  258155. 0f82ac3e30 Merge pull request \fI\%#25238\fP from DSRCompany/pillarenv_backport_2015.5
  258156. .IP \(bu 2
  258157. 98792eb179 Pillarenv support in minion config, cp and cmdmod modules.
  258158. .IP \(bu 2
  258159. 88ff576f39 Support pillarenv cmdline in state.sls. Backport of PR \fI\%#23719\fP
  258160. .UNINDENT
  258161. .IP \(bu 2
  258162. \fBISSUE\fP \fI\%#13943\fP: (\fI\%Supermathie\fP) Powershell commands that expect input hang forever (refs: \fI\%#25299\fP)
  258163. .IP \(bu 2
  258164. \fBPR\fP \fI\%#25299\fP: (\fI\%twangboy\fP) Added \-NonInteractive so powershell doesn\(aqt hang waiting for input
  258165. @ \fI2015\-07\-09 21:00:16 UTC\fP
  258166. .INDENT 2.0
  258167. .IP \(bu 2
  258168. 219d4cad9c Merge pull request \fI\%#25299\fP from twangboy/fix_13943
  258169. .IP \(bu 2
  258170. c05889031f Added \-NonInteractive so powershell doesn\(aqt hang waiting for input
  258171. .UNINDENT
  258172. .IP \(bu 2
  258173. \fBPR\fP \fI\%#25301\fP: (\fI\%jacobhammons\fP) bug fix for module function display in help
  258174. @ \fI2015\-07\-09 20:46:34 UTC\fP
  258175. .INDENT 2.0
  258176. .IP \(bu 2
  258177. 1c43892a80 Merge pull request \fI\%#25301\fP from jacobhammons/doc\-bugs
  258178. .IP \(bu 2
  258179. f6561289af bug fix for module function display in help
  258180. .UNINDENT
  258181. .IP \(bu 2
  258182. \fBISSUE\fP \fI\%#25277\fP: (\fI\%jacobhammons\fP) CherryPy recommended versions (refs: \fI\%#25279\fP)
  258183. .IP \(bu 2
  258184. \fBPR\fP \fI\%#25279\fP: (\fI\%jacobhammons\fP) Additional docs on external and master job cache, assorted doc fixes
  258185. @ \fI2015\-07\-09 16:46:26 UTC\fP
  258186. .INDENT 2.0
  258187. .IP \(bu 2
  258188. 68149bc686 Merge pull request \fI\%#25279\fP from jacobhammons/job\-cache\-docs
  258189. .IP \(bu 2
  258190. 57dfa92d5a Fixed typos
  258191. .IP \(bu 2
  258192. 2f9e5b9125 Additional docs on external and master job cache, assorted doc fixes Refs \fI\%#25277\fP
  258193. .UNINDENT
  258194. .IP \(bu 2
  258195. \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)
  258196. .IP \(bu 2
  258197. \fBPR\fP \fI\%#25274\fP: (\fI\%jleroy\fP) Fix for issue \fI\%#25268\fP
  258198. @ \fI2015\-07\-09 13:36:26 UTC\fP
  258199. .INDENT 2.0
  258200. .IP \(bu 2
  258201. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  258202. .IP \(bu 2
  258203. 972fa2fb54 Merge pull request \fI\%#25274\fP from jleroy/25268\-fix
  258204. .IP \(bu 2
  258205. 2c698d204b Fix for issue \fI\%#25268\fP
  258206. .UNINDENT
  258207. .IP \(bu 2
  258208. \fBPR\fP \fI\%#25272\fP: (\fI\%twangboy\fP) Fixed problem with service not starting
  258209. @ \fI2015\-07\-08 23:29:48 UTC\fP
  258210. .INDENT 2.0
  258211. .IP \(bu 2
  258212. 8ebb73df2d Merge pull request \fI\%#25272\fP from twangboy/service
  258213. .IP \(bu 2
  258214. e61eeba48b Fixed problem with service not starting
  258215. .UNINDENT
  258216. .IP \(bu 2
  258217. \fBISSUE\fP \fI\%#25223\fP: (\fI\%nmadhok\fP) Runner occasionally fails with a RuntimeError when fired by a reactor (refs: \fI\%#25225\fP)
  258218. .IP \(bu 2
  258219. \fBPR\fP \fI\%#25225\fP: (\fI\%nmadhok\fP) Backporting fix for issue \fI\%#25223\fP on 2015.5 branch
  258220. @ \fI2015\-07\-08 15:16:18 UTC\fP
  258221. .INDENT 2.0
  258222. .IP \(bu 2
  258223. c6efd2356c Merge pull request \fI\%#25225\fP from nmadhok/client\-runtime\-fix\-backport\-2015\-2
  258224. .IP \(bu 2
  258225. 391b7d6730 Backporting fix for issue \fI\%#25223\fP on 2015.2 branch
  258226. .UNINDENT
  258227. .IP \(bu 2
  258228. \fBPR\fP \fI\%#25214\fP: (\fI\%rallytime\fP) A couple of doc fixes for the http tutorial
  258229. @ \fI2015\-07\-07 22:23:07 UTC\fP
  258230. .INDENT 2.0
  258231. .IP \(bu 2
  258232. 207fbaeac4 Merge pull request \fI\%#25214\fP from rallytime/http_doc
  258233. .IP \(bu 2
  258234. d0b61f3fc1 A couple of doc fixes for the http tutorial
  258235. .UNINDENT
  258236. .IP \(bu 2
  258237. \fBISSUE\fP \fI\%#24272\fP: (\fI\%rallytime\fP) Fix boto_vpc_test moto version check (refs: \fI\%#25194\fP)
  258238. .IP \(bu 2
  258239. \fBPR\fP \fI\%#25194\fP: (\fI\%rallytime\fP) Update moto version check in boto_vpc_test and update min version
  258240. @ \fI2015\-07\-07 18:27:32 UTC\fP
  258241. .INDENT 2.0
  258242. .IP \(bu 2
  258243. 9dd5cd8a8e Merge pull request \fI\%#25194\fP from rallytime/fix\-24272
  258244. .IP \(bu 2
  258245. f959e165a1 Clean up imports
  258246. .IP \(bu 2
  258247. fbc9c0d6bf Fix Pylint
  258248. .IP \(bu 2
  258249. fe2561f415 Update moto version check in boto_vpc_test and update min version
  258250. .UNINDENT
  258251. .IP \(bu 2
  258252. \fBPR\fP \fI\%#25205\fP: (\fI\%basepi\fP) Update releasecandidate docs
  258253. @ \fI2015\-07\-07 15:25:24 UTC\fP
  258254. .INDENT 2.0
  258255. .IP \(bu 2
  258256. a3e9486c28 Merge pull request \fI\%#25205\fP from basepi/releasecandidatedocs
  258257. .IP \(bu 2
  258258. 452880d4aa Update releasecandidate docs
  258259. .UNINDENT
  258260. .IP \(bu 2
  258261. \fBPR\fP \fI\%#25187\fP: (\fI\%UtahDave\fP) Doc fixes: Fix misspelling and remove extraneous double spaces
  258262. @ \fI2015\-07\-07 01:07:04 UTC\fP
  258263. .INDENT 2.0
  258264. .IP \(bu 2
  258265. fbafd39a46 Merge pull request \fI\%#25187\fP from UtahDave/fix_misspelling
  258266. .IP \(bu 2
  258267. 65abb63003 remove some extraneous double spaces
  258268. .IP \(bu 2
  258269. c423b62aa5 fix misspelling
  258270. .UNINDENT
  258271. .IP \(bu 2
  258272. \fBPR\fP \fI\%#25182\fP: (\fI\%cachedout\fP) Try to re\-pack long floats as strs
  258273. @ \fI2015\-07\-07 01:06:43 UTC\fP
  258274. .INDENT 2.0
  258275. .IP \(bu 2
  258276. ddee90ce23 Merge pull request \fI\%#25182\fP from cachedout/pack_long_floats
  258277. .IP \(bu 2
  258278. a192ecfd74 Try to re\-pack long ints as strs
  258279. .UNINDENT
  258280. .IP \(bu 2
  258281. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  258282. .IP \(bu 2
  258283. \fBPR\fP \fI\%#25185\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25128\fP to 2015.5
  258284. @ \fI2015\-07\-07 00:58:00 UTC\fP
  258285. .INDENT 2.0
  258286. .IP \(bu 2
  258287. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#25185\fP)
  258288. .IP \(bu 2
  258289. df9982b836 Merge pull request \fI\%#25185\fP from rallytime/bp\-25128
  258290. .IP \(bu 2
  258291. 1726057c8a Use cmd_unzip to preserve permissions
  258292. .UNINDENT
  258293. .IP \(bu 2
  258294. \fBPR\fP \fI\%#25181\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25102\fP to 2015.5
  258295. @ \fI2015\-07\-07 00:57:13 UTC\fP
  258296. .INDENT 2.0
  258297. .IP \(bu 2
  258298. \fBPR\fP \fI\%#25102\fP: (\fI\%derBroBro\fP) Update win_network.py (refs: \fI\%#25181\fP)
  258299. .IP \(bu 2
  258300. df0bb8c831 Merge pull request \fI\%#25181\fP from rallytime/bp\-25102
  258301. .IP \(bu 2
  258302. 64d8f14417 Update win_network.py
  258303. .IP \(bu 2
  258304. 6789c5b8e8 Update win_network.py
  258305. .UNINDENT
  258306. .IP \(bu 2
  258307. \fBISSUE\fP \fI\%#24301\fP: (\fI\%iggy\fP) influxdb_user and influxdb_database states need virtual functions (refs: \fI\%#25059\fP)
  258308. .IP \(bu 2
  258309. \fBPR\fP \fI\%#25179\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25059\fP to 2015.5
  258310. @ \fI2015\-07\-07 00:56:44 UTC\fP
  258311. .INDENT 2.0
  258312. .IP \(bu 2
  258313. \fBPR\fP \fI\%#25059\fP: (\fI\%babilen\fP) Add virtual functions to influxdb state modules (refs: \fI\%#25179\fP)
  258314. .IP \(bu 2
  258315. 04fdd7b0ee Merge pull request \fI\%#25179\fP from rallytime/bp\-25059
  258316. .IP \(bu 2
  258317. 1eeefbd2ab Add virtual functions to influxdb state modules
  258318. .UNINDENT
  258319. .IP \(bu 2
  258320. \fBISSUE\fP \fI\%#18919\fP: (\fI\%giner\fP) Windows: pkg.refresh_db returns false\-positive success (refs: \fI\%#25196\fP)
  258321. .IP \(bu 2
  258322. \fBPR\fP \fI\%#25196\fP: (\fI\%twangboy\fP) Fixed \fI\%#18919\fP false\-positive on pkg.refresh
  258323. @ \fI2015\-07\-07 00:24:13 UTC\fP
  258324. .INDENT 2.0
  258325. .IP \(bu 2
  258326. 58b7d0e653 Merge pull request \fI\%#25196\fP from twangboy/pkg_refresh
  258327. .IP \(bu 2
  258328. 12ffcd1062 Fixed \fI\%#18919\fP false\-positive on pkg.refresh
  258329. .UNINDENT
  258330. .IP \(bu 2
  258331. \fBPR\fP \fI\%#25180\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25088\fP to 2015.5
  258332. @ \fI2015\-07\-06 20:33:45 UTC\fP
  258333. .INDENT 2.0
  258334. .IP \(bu 2
  258335. \fBPR\fP \fI\%#25088\fP: (\fI\%supertom\fP) Update (refs: \fI\%#25180\fP)
  258336. .IP \(bu 2
  258337. 4a406aca45 Merge pull request \fI\%#25180\fP from rallytime/bp\-25088
  258338. .IP \(bu 2
  258339. 4078c8db25 added message recommending JSON file be used if the libcloud version is >= 0.17.0
  258340. .UNINDENT
  258341. .IP \(bu 2
  258342. \fBPR\fP \fI\%#25191\fP: (\fI\%basepi\fP) Add extrndest back to fileclient.is_cached in 2015.5
  258343. @ \fI2015\-07\-06 19:35:24 UTC\fP
  258344. .INDENT 2.0
  258345. .IP \(bu 2
  258346. \fBPR\fP \fI\%#25117\fP: (\fI\%basepi\fP) Fix fileclient.is_cached (refs: \fI\%#25191\fP)
  258347. .IP \(bu 2
  258348. 01ed062ca7 Merge pull request \fI\%#25191\fP from basepi/fix.fileclient.is_cached
  258349. .IP \(bu 2
  258350. 5fa74f4408 Add back in the extrndest stuff (which is now in develop)
  258351. .UNINDENT
  258352. .IP \(bu 2
  258353. \fBISSUE\fP \fI\%#25016\fP: (\fI\%martinhoefling\fP) salt\-run doc.execution fails with AttributeError (refs: \fI\%#25020\fP)
  258354. .IP \(bu 2
  258355. \fBPR\fP \fI\%#25175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25020\fP to 2015.5
  258356. @ \fI2015\-07\-06 18:53:19 UTC\fP
  258357. .INDENT 2.0
  258358. .IP \(bu 2
  258359. \fBPR\fP \fI\%#25020\fP: (\fI\%martinhoefling\fP) Fix for issue \fI\%#25016\fP (refs: \fI\%#25175\fP)
  258360. .IP \(bu 2
  258361. a9404aea5c Merge pull request \fI\%#25175\fP from rallytime/bp\-25020
  258362. .IP \(bu 2
  258363. da2e1704ea Fix for issue \fI\%#25016\fP
  258364. .UNINDENT
  258365. .IP \(bu 2
  258366. \fBISSUE\fP \fI\%#21879\fP: (\fI\%bechtoldt\fP) Reference pages in documentation are outdated again (refs: \fI\%#25019\fP, \fI\%#21880\fP)
  258367. .IP \(bu 2
  258368. \fBISSUE\fP \fI\%#19262\fP: (\fI\%bechtoldt\fP) salt.pillar.file_tree doesn\(aqt appear in the documentation (refs: \fI\%#25019\fP)
  258369. .IP \(bu 2
  258370. \fBPR\fP \fI\%#25173\fP: (\fI\%rallytime\fP) Partial back\-port of \fI\%#25019\fP
  258371. @ \fI2015\-07\-06 18:52:59 UTC\fP
  258372. .INDENT 2.0
  258373. .IP \(bu 2
  258374. \fBPR\fP \fI\%#25019\fP: (\fI\%bechtoldt\fP) add missing module documentation to references (refs: \fI\%#25173\fP)
  258375. .IP \(bu 2
  258376. \fBPR\fP \fI\%#24421\fP: (\fI\%bechtoldt\fP) add missing module documentation (refs: \fI\%#25019\fP)
  258377. .IP \(bu 2
  258378. \fBPR\fP \fI\%#21880\fP: (\fI\%bechtoldt\fP) update references, fixes \fI\%#21879\fP (refs: \fI\%#25019\fP)
  258379. .IP \(bu 2
  258380. \fBPR\fP \fI\%#20039\fP: (\fI\%bechtoldt\fP) completing some doc references (refs: \fI\%#25019\fP)
  258381. .IP \(bu 2
  258382. c70fec65b8 Merge pull request \fI\%#25173\fP from rallytime/partial\-bp\-25019
  258383. .IP \(bu 2
  258384. c0c2463b64 Partial backport of \fI\%#25019\fP
  258385. .UNINDENT
  258386. .IP \(bu 2
  258387. \fBPR\fP \fI\%#25171\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25001\fP to 2015.5
  258388. @ \fI2015\-07\-06 18:51:53 UTC\fP
  258389. .INDENT 2.0
  258390. .IP \(bu 2
  258391. \fBPR\fP \fI\%#25001\fP: (\fI\%jasonkeene\fP) Add docs for key arg in ssh_known_hosts.present (refs: \fI\%#25171\fP)
  258392. .IP \(bu 2
  258393. c5ba9a90ba Merge pull request \fI\%#25171\fP from rallytime/bp\-25001
  258394. .IP \(bu 2
  258395. a891108793 Add docs for key arg in ssh_known_hosts.present
  258396. .UNINDENT
  258397. .IP \(bu 2
  258398. \fBPR\fP \fI\%#25170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24982\fP to 2015.5
  258399. @ \fI2015\-07\-06 16:34:43 UTC\fP
  258400. .INDENT 2.0
  258401. .IP \(bu 2
  258402. \fBPR\fP \fI\%#24982\fP: (\fI\%asyncsrc\fP) ec2 network_interfaces fix (refs: \fI\%#25170\fP)
  258403. .IP \(bu 2
  258404. 3e06602545 Merge pull request \fI\%#25170\fP from rallytime/bp\-24982
  258405. .IP \(bu 2
  258406. 3e6eab3ae9 ec2 network_interfaces fix
  258407. .UNINDENT
  258408. .IP \(bu 2
  258409. \fBPR\fP \fI\%#25161\fP: (\fI\%aneeshusa\fP) Allow checking for non\-normalized systemd units.
  258410. @ \fI2015\-07\-06 15:15:31 UTC\fP
  258411. .INDENT 2.0
  258412. .IP \(bu 2
  258413. 09602808a0 Merge pull request \fI\%#25161\fP from aneeshusa/allow\-checking\-non\-normalized\-systemd\-service\-availability
  258414. .IP \(bu 2
  258415. b4d544fe70 Allow checking for non\-normalized systemd units.
  258416. .UNINDENT
  258417. .IP \(bu 2
  258418. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  258419. @ \fI2015\-07\-06 14:43:03 UTC\fP
  258420. .INDENT 2.0
  258421. .IP \(bu 2
  258422. 3599b8abab Merge pull request \fI\%#25151\fP from jleroy/ipv6\-scope\-support
  258423. .IP \(bu 2
  258424. edce034e6c Support for IPv6 addresses scopes in network.interfaces
  258425. .UNINDENT
  258426. .IP \(bu 2
  258427. \fBISSUE\fP \fI\%#24979\fP: (\fI\%mavenAtHouzz\fP) [Discussion] Support for more than 1 netapi.rest_tornado server process (refs: \fI\%#25149\fP)
  258428. .IP \(bu 2
  258429. \fBPR\fP \fI\%#25166\fP: (\fI\%cachedout\fP) Lint \fI\%#25149\fP
  258430. @ \fI2015\-07\-06 14:40:29 UTC\fP
  258431. .INDENT 2.0
  258432. .IP \(bu 2
  258433. \fBPR\fP \fI\%#25149\fP: (\fI\%jacksontj\fP) Saltnado multiprocess support (refs: \fI\%#25166\fP)
  258434. .IP \(bu 2
  258435. 66d6365a9f Merge pull request \fI\%#25166\fP from cachedout/lint_saltnado
  258436. .IP \(bu 2
  258437. 2fe167edf8 Lint \fI\%#25149\fP
  258438. .UNINDENT
  258439. .IP \(bu 2
  258440. \fBISSUE\fP \fI\%#24979\fP: (\fI\%mavenAtHouzz\fP) [Discussion] Support for more than 1 netapi.rest_tornado server process (refs: \fI\%#25149\fP)
  258441. .IP \(bu 2
  258442. \fBPR\fP \fI\%#25149\fP: (\fI\%jacksontj\fP) Saltnado multiprocess support (refs: \fI\%#25166\fP)
  258443. @ \fI2015\-07\-06 14:38:43 UTC\fP
  258444. .INDENT 2.0
  258445. .IP \(bu 2
  258446. 2f1bad1c01 Merge pull request \fI\%#25149\fP from jacksontj/saltnado
  258447. .IP \(bu 2
  258448. 6aa5548e2d Enable multiprocess support in saltnado
  258449. .IP \(bu 2
  258450. 9a1351eada Change print to logger, so we can set a level and log exc_info
  258451. .UNINDENT
  258452. .IP \(bu 2
  258453. \fBPR\fP \fI\%#25120\fP: (\fI\%d\-\-j\fP) add missing continue for exception case
  258454. @ \fI2015\-07\-02 19:38:45 UTC\fP
  258455. .INDENT 2.0
  258456. .IP \(bu 2
  258457. a723af0f10 Merge pull request \fI\%#25120\fP from d\-\-j/patch\-2
  258458. .IP \(bu 2
  258459. 81d5d15dce add missing continue for error case
  258460. .UNINDENT
  258461. .IP \(bu 2
  258462. \fBPR\fP \fI\%#25117\fP: (\fI\%basepi\fP) Fix fileclient.is_cached (refs: \fI\%#25191\fP)
  258463. @ \fI2015\-07\-02 19:38:26 UTC\fP
  258464. .INDENT 2.0
  258465. .IP \(bu 2
  258466. 6e2222241a Merge pull request \fI\%#25117\fP from basepi/fix.fileclient.is_cached
  258467. .IP \(bu 2
  258468. 38e243fdfb Add fix from merge forward
  258469. .IP \(bu 2
  258470. 52f35f761a Add import
  258471. .IP \(bu 2
  258472. 23c32a7518 Backport develop version of salt.fileclient.is_cached
  258473. .UNINDENT
  258474. .IP \(bu 2
  258475. \fBPR\fP \fI\%#25087\fP: (\fI\%0xf10e\fP) Fix execution module for glance \- now based on 2015.5!
  258476. @ \fI2015\-07\-02 19:36:27 UTC\fP
  258477. .INDENT 2.0
  258478. .IP \(bu 2
  258479. c80990ba4f Merge pull request \fI\%#25087\fP from 0xf10e/fix_glance_2015.5
  258480. .IP \(bu 2
  258481. 7749cc081c PEP8 W601...
  258482. .IP \(bu 2
  258483. bbda079fa5 fix pylint E302, E502, E713, E1305
  258484. .IP \(bu 2
  258485. 3baacc72b4 use Glance API v1 for image_create
  258486. .IP \(bu 2
  258487. c3d6134da1 making pylint marginally happier
  258488. .IP \(bu 2
  258489. 19a20bf228 get valid properties for image_show() from the schema for "image"
  258490. .IP \(bu 2
  258491. 0c6a61173a add some debugging, fix a few AttributeErrors
  258492. .IP \(bu 2
  258493. aceca0e20d fix return of glance.image_show()
  258494. .IP \(bu 2
  258495. a47509e7dd fix return of image_list
  258496. .IP \(bu 2
  258497. 9f923edfab Change confusing "nt_ks" to "g_client"
  258498. .IP \(bu 2
  258499. fa2bd1a79c bit of docs/comments in image_create()
  258500. .IP \(bu 2
  258501. 5c34d0c494 merge 439b1e42053239b into 2015.5
  258502. .IP \(bu 2
  258503. 7a3cf27948 update attributes for image_show output
  258504. .IP \(bu 2
  258505. b1bec0f1a1 fix retry w/ user/pass if token fails
  258506. .IP \(bu 2
  258507. 2f4ef6683c update attributes for image_list output
  258508. .IP \(bu 2
  258509. eef3bc7048 use _auth() from neutron plus keystoneclient,
  258510. .UNINDENT
  258511. .IP \(bu 2
  258512. \fBPR\fP \fI\%#25129\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258513. @ \fI2015\-07\-02 17:37:40 UTC\fP
  258514. .INDENT 2.0
  258515. .IP \(bu 2
  258516. 549ee47420 Merge pull request \fI\%#25129\fP from basepi/merge\-forward\-2015.5
  258517. .IP \(bu 2
  258518. 187268d879 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258519. .IP \(bu 2
  258520. 36d53ef59e Merge pull request \fI\%#25093\fP from jaybocc2/2014.7
  258521. .INDENT 2.0
  258522. .IP \(bu 2
  258523. c6a501ebda quick fix for issue \fI\%#18447\fP
  258524. .UNINDENT
  258525. .IP \(bu 2
  258526. 38903a94a1 Merge pull request \fI\%#25069\fP from puneetk/patch\-1
  258527. .IP \(bu 2
  258528. f0b4e600e6 Update Documentation to clarify version added
  258529. .IP \(bu 2
  258530. f8dc6030e7 Pylint updates , removing whitespace
  258531. .IP \(bu 2
  258532. 532d315dd1 [Code Review update] renamed function to is_enaled from list_enabled
  258533. .IP \(bu 2
  258534. 20b0462289 Update schedule.py
  258535. .IP \(bu 2
  258536. 4f1471d7fb Add a helper module function called list_enabled
  258537. .IP \(bu 2
  258538. \fBPR\fP \fI\%saltstack/salt#24798\fP: (\fI\%justinta\fP) Revert "adding states/postgres_database unit test case." (refs: \fI\%#25114\fP)
  258539. .IP \(bu 2
  258540. \fBPR\fP \fI\%saltstack/salt#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case. (refs: #\(gasaltstack/salt#24798\(ga_)
  258541. .UNINDENT
  258542. .IP \(bu 2
  258543. \fBPR\fP \fI\%#25114\fP: (\fI\%jfindlay\fP) Revert "Revert "adding states/postgres_database unit test case.""
  258544. @ \fI2015\-07\-02 01:01:29 UTC\fP
  258545. .INDENT 2.0
  258546. .IP \(bu 2
  258547. 86f2791fdb Merge pull request \fI\%#25114\fP from saltstack/revert\-24798\-revert\-24329\-postgres_database\-states\-unit\-test
  258548. .IP \(bu 2
  258549. 071ee44d41 Revert "Revert "adding states/postgres_database unit test case.""
  258550. .UNINDENT
  258551. .IP \(bu 2
  258552. \fBPR\fP \fI\%#24362\fP: (\fI\%jayeshka\fP) adding states/postgres_user unit test case.
  258553. @ \fI2015\-07\-01 21:45:31 UTC\fP
  258554. .INDENT 2.0
  258555. .IP \(bu 2
  258556. bf8c7e7a9d Merge pull request \fI\%#24362\fP from jayeshka/postgres_user\-states\-unit\-test
  258557. .IP \(bu 2
  258558. fd1d834688 adding states/postgres_user unit test case.
  258559. .UNINDENT
  258560. .IP \(bu 2
  258561. \fBPR\fP \fI\%#24361\fP: (\fI\%jayeshka\fP) adding states/postgres_schema unit test case.
  258562. @ \fI2015\-07\-01 21:44:56 UTC\fP
  258563. .INDENT 2.0
  258564. .IP \(bu 2
  258565. 4195cea512 Merge pull request \fI\%#24361\fP from jayeshka/postgres_schema\-states\-unit\-test
  258566. .IP \(bu 2
  258567. 0558b0d744 adding states/postgres_schema unit test case.
  258568. .UNINDENT
  258569. .IP \(bu 2
  258570. \fBPR\fP \fI\%#24331\fP: (\fI\%jayeshka\fP) adding states/postgres_extension unit test case.
  258571. @ \fI2015\-07\-01 21:43:58 UTC\fP
  258572. .INDENT 2.0
  258573. .IP \(bu 2
  258574. ada8fe57d4 Merge pull request \fI\%#24331\fP from jayeshka/postgres_extension\-states\-unit\-test
  258575. .IP \(bu 2
  258576. 3d465a574a adding states/postgres_extension unit test case.
  258577. .UNINDENT
  258578. .UNINDENT
  258579. .SS Salt 2015.5.5 Release Notes
  258580. .INDENT 0.0
  258581. .TP
  258582. .B release
  258583. 2015\-08\-20
  258584. .UNINDENT
  258585. .sp
  258586. Version 2015.5.5 is a bugfix release for 2015.5.0\&.
  258587. .SS Statistics
  258588. .INDENT 0.0
  258589. .IP \(bu 2
  258590. Total Merges: \fB33\fP
  258591. .IP \(bu 2
  258592. Total Issue References: \fB28\fP
  258593. .IP \(bu 2
  258594. Total PR References: \fB39\fP
  258595. .IP \(bu 2
  258596. 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)
  258597. .UNINDENT
  258598. .SS Changelog for v2015.5.4..v2015.5.5
  258599. .sp
  258600. \fIGenerated at: 2018\-05\-27 22:04:18 UTC\fP
  258601. .INDENT 0.0
  258602. .IP \(bu 2
  258603. \fBISSUE\fP \fI\%#26484\fP: (\fI\%thusoy\fP) Git state leaks HTTPS user/pw to log (refs: \fI\%#26486\fP)
  258604. .IP \(bu 2
  258605. \fBISSUE\fP \fI\%#26482\fP: (\fI\%thusoy\fP) Git states doesn\(aqt allow user\-only auth (refs: \fI\%#26483\fP)
  258606. .IP \(bu 2
  258607. \fBPR\fP \fI\%#26486\fP: (\fI\%thusoy\fP) Git: Don\(aqt leak https user/pw to log
  258608. @ \fI2015\-08\-20 16:04:52 UTC\fP
  258609. .INDENT 2.0
  258610. .IP \(bu 2
  258611. \fBPR\fP \fI\%#26483\fP: (\fI\%thusoy\fP) Handle user\-only http auth in git module (refs: \fI\%#26486\fP)
  258612. .IP \(bu 2
  258613. 28aa9b1058 Merge pull request \fI\%#26486\fP from thusoy/git\-confidential\-auth
  258614. .IP \(bu 2
  258615. 5289165487 Git: Don\(aqt leak https user/pw to log
  258616. .UNINDENT
  258617. .IP \(bu 2
  258618. \fBISSUE\fP \fI\%#26432\fP: (\fI\%centromere\fP) Documentation incorrectly references salt\-key on the minion (refs: \fI\%#26476\fP)
  258619. .IP \(bu 2
  258620. \fBISSUE\fP \fI\%#26403\fP: (\fI\%adelcast\fP) Grains documentation incorrectly states they are static (refs: \fI\%#26476\fP)
  258621. .IP \(bu 2
  258622. \fBISSUE\fP \fI\%#26329\fP: (\fI\%cro\fP) Add note to eauth docs indicating default PAM service. (refs: \fI\%#26476\fP)
  258623. .IP \(bu 2
  258624. \fBISSUE\fP \fI\%#26264\fP: (\fI\%grep4linux\fP) state trees cannot have \(aqdots\(aq in the name (refs: \fI\%#26476\fP)
  258625. .IP \(bu 2
  258626. \fBISSUE\fP \fI\%#26233\fP: (\fI\%dove\-young\fP) pip install salt, then start master failed on Fedora 22 (refs: \fI\%#26476\fP)
  258627. .IP \(bu 2
  258628. \fBPR\fP \fI\%#26476\fP: (\fI\%jacobhammons\fP) Minor doc bug fixes
  258629. @ \fI2015\-08\-19 22:52:35 UTC\fP
  258630. .INDENT 2.0
  258631. .IP \(bu 2
  258632. 679ba5ee0a Merge pull request \fI\%#26476\fP from jacobhammons/doc\-bugs
  258633. .IP \(bu 2
  258634. 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
  258635. .UNINDENT
  258636. .IP \(bu 2
  258637. \fBISSUE\fP \fI\%#26366\fP: (\fI\%GreatSnoopy\fP) The development tree produces hanging, 100%cpu salt\-master processes (refs: \fI\%#26443\fP)
  258638. .IP \(bu 2
  258639. \fBISSUE\fP \fI\%#26301\fP: (\fI\%waynew\fP) CPU pegged out running salt\-master (after running command) (refs: \fI\%#26443\fP)
  258640. .IP \(bu 2
  258641. \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)
  258642. .IP \(bu 2
  258643. \fBPR\fP \fI\%#26443\fP: (\fI\%cachedout\fP) Fix connect issue in event init
  258644. @ \fI2015\-08\-19 22:50:22 UTC\fP
  258645. .INDENT 2.0
  258646. .IP \(bu 2
  258647. \fBPR\fP \fI\%#26000\fP: (\fI\%driskell\fP) Implement full event caching for subscribed tags (refs: \fI\%#26443\fP)
  258648. .IP \(bu 2
  258649. 42b8c1b3f4 Merge pull request \fI\%#26443\fP from cachedout/fix_event_sub
  258650. .IP \(bu 2
  258651. 560977bc7e Fix connect issue in event init
  258652. .UNINDENT
  258653. .IP \(bu 2
  258654. \fBISSUE\fP \fI\%#26343\fP: (\fI\%jfindlay\fP) batch error when no minions match target (refs: \fI\%#26445\fP)
  258655. .IP \(bu 2
  258656. \fBPR\fP \fI\%#26445\fP: (\fI\%cachedout\fP) Raise clean error when no minions targeted in batch mode
  258657. @ \fI2015\-08\-19 22:50:07 UTC\fP
  258658. .INDENT 2.0
  258659. .IP \(bu 2
  258660. d2df1a86ad Merge pull request \fI\%#26445\fP from cachedout/issue_26343
  258661. .IP \(bu 2
  258662. 1600f3eccd Raise clean error when no minions targeted in batch mode
  258663. .UNINDENT
  258664. .IP \(bu 2
  258665. \fBISSUE\fP \fI\%#26482\fP: (\fI\%thusoy\fP) Git states doesn\(aqt allow user\-only auth (refs: \fI\%#26483\fP)
  258666. .IP \(bu 2
  258667. \fBPR\fP \fI\%#26483\fP: (\fI\%thusoy\fP) Handle user\-only http auth in git module (refs: \fI\%#26486\fP)
  258668. @ \fI2015\-08\-19 22:47:41 UTC\fP
  258669. .INDENT 2.0
  258670. .IP \(bu 2
  258671. a9b28e9577 Merge pull request \fI\%#26483\fP from thusoy/git\-user\-only\-auth
  258672. .IP \(bu 2
  258673. 09fc934acc Handle user\-only http auth in git module
  258674. .UNINDENT
  258675. .IP \(bu 2
  258676. \fBPR\fP \fI\%#26496\fP: (\fI\%jfindlay\fP) add dateutil dependency reporting
  258677. @ \fI2015\-08\-19 22:46:31 UTC\fP
  258678. .INDENT 2.0
  258679. .IP \(bu 2
  258680. edc04930ae Merge pull request \fI\%#26496\fP from jfindlay/dateutil
  258681. .IP \(bu 2
  258682. cbe330e78b add dateutil dependency reporting
  258683. .UNINDENT
  258684. .IP \(bu 2
  258685. \fBPR\fP \fI\%#26494\fP: (\fI\%cachedout\fP) Remove unecessary debug statements
  258686. @ \fI2015\-08\-19 20:46:00 UTC\fP
  258687. .INDENT 2.0
  258688. .IP \(bu 2
  258689. 4fff53b842 Merge pull request \fI\%#26494\fP from cachedout/remove_debug_statements
  258690. .IP \(bu 2
  258691. d717a43dcc Remove unecessary debug statements
  258692. .UNINDENT
  258693. .IP \(bu 2
  258694. \fBPR\fP \fI\%#26465\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26457\fP to 2015.5
  258695. @ \fI2015\-08\-19 16:08:16 UTC\fP
  258696. .INDENT 2.0
  258697. .IP \(bu 2
  258698. \fBPR\fP \fI\%#26457\fP: (\fI\%arthurlogilab\fP) docstring improvement for network.ping module execution (refs: \fI\%#26465\fP)
  258699. .IP \(bu 2
  258700. f46a0dab5d Merge pull request \fI\%#26465\fP from rallytime/bp\-26457
  258701. .IP \(bu 2
  258702. b3f638ff0f docstring improvement for network.ping module execution
  258703. .UNINDENT
  258704. .IP \(bu 2
  258705. \fBPR\fP \fI\%#26434\fP: (\fI\%s0undt3ch\fP) Fix missed typo
  258706. @ \fI2015\-08\-18 18:14:29 UTC\fP
  258707. .INDENT 2.0
  258708. .IP \(bu 2
  258709. c1458980f3 Merge pull request \fI\%#26434\fP from s0undt3ch/2015.5
  258710. .IP \(bu 2
  258711. 06dcaefcaa Fix missed typo
  258712. .UNINDENT
  258713. .IP \(bu 2
  258714. \fBISSUE\fP \fI\%#26426\fP: (\fI\%alxbse\fP) Private/public IPs are interchanged when listing nova driver cloud nodes (refs: \fI\%#26430\fP)
  258715. .IP \(bu 2
  258716. \fBPR\fP \fI\%#26430\fP: (\fI\%rallytime\fP) List public and private ips under the correct label
  258717. @ \fI2015\-08\-18 16:20:32 UTC\fP
  258718. .INDENT 2.0
  258719. .IP \(bu 2
  258720. 0f64be710f Merge pull request \fI\%#26430\fP from rallytime/fix\-26426
  258721. .IP \(bu 2
  258722. 2ba97316c9 List public and private ips under the correct label
  258723. .UNINDENT
  258724. .IP \(bu 2
  258725. \fBPR\fP \fI\%#26431\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26417\fP to 2015.5
  258726. @ \fI2015\-08\-18 15:41:58 UTC\fP
  258727. .INDENT 2.0
  258728. .IP \(bu 2
  258729. \fBPR\fP \fI\%#26417\fP: (\fI\%scottjpack\fP) Changed t1 \-> t2 micro (refs: \fI\%#26431\fP)
  258730. .IP \(bu 2
  258731. 913451a414 Merge pull request \fI\%#26431\fP from rallytime/bp\-26417
  258732. .IP \(bu 2
  258733. 0254a2e90e Changed t1 \-> t2 micro
  258734. .UNINDENT
  258735. .IP \(bu 2
  258736. \fBPR\fP \fI\%#26378\fP: (\fI\%stanislavb\fP) Fix EC2 credentials from IAM roles for s3fs and s3 ext_pillar in 2015.5
  258737. @ \fI2015\-08\-18 14:01:53 UTC\fP
  258738. .INDENT 2.0
  258739. .IP \(bu 2
  258740. 952da7abaf Merge pull request \fI\%#26378\fP from stanislavb/2015.5
  258741. .IP \(bu 2
  258742. 39ce3127cd Let utils.aws query instance metadata
  258743. .UNINDENT
  258744. .IP \(bu 2
  258745. \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)
  258746. .IP \(bu 2
  258747. \fBPR\fP \fI\%#26420\fP: (\fI\%terminalmage\fP) Only use pygit2.errors if it exists (2015.5 branch)
  258748. @ \fI2015\-08\-18 14:00:01 UTC\fP
  258749. .INDENT 2.0
  258750. .IP \(bu 2
  258751. 09e96dce39 Merge pull request \fI\%#26420\fP from terminalmage/issue26245\-2015.5
  258752. .IP \(bu 2
  258753. 19a1149067 Only use pygit2.errors if it exists (2015.5 branch)
  258754. .UNINDENT
  258755. .IP \(bu 2
  258756. \fBPR\fP \fI\%#26409\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258757. @ \fI2015\-08\-17 23:19:56 UTC\fP
  258758. .INDENT 2.0
  258759. .IP \(bu 2
  258760. c5eb6bbd3e Merge pull request \fI\%#26409\fP from basepi/merge\-forward\-2015.5
  258761. .IP \(bu 2
  258762. dafed10a9e Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258763. .IP \(bu 2
  258764. da8bca09aa Merge pull request \fI\%#26242\fP from cro/anonldap4
  258765. .INDENT 2.0
  258766. .IP \(bu 2
  258767. a0d2ab1eed Remove dead code
  258768. .UNINDENT
  258769. .IP \(bu 2
  258770. 1ecf23773e Merge pull request \fI\%#26216\fP from cro/anonldap3
  258771. .IP \(bu 2
  258772. af132d7b89 Documentation update for anonymous bind issue.
  258773. .IP \(bu 2
  258774. 2ef54b6b13 Documentation update for anonymous bind issue.
  258775. .IP \(bu 2
  258776. 5b1836bb00 Fix issue with LDAP anonymous binds.
  258777. .UNINDENT
  258778. .IP \(bu 2
  258779. \fBISSUE\fP \fI\%#26404\fP: (\fI\%ssgward\fP) Syntax error in lvm.vg_absent state causing failure (refs: \fI\%#26406\fP)
  258780. .IP \(bu 2
  258781. \fBPR\fP \fI\%#26406\fP: (\fI\%jfindlay\fP) fix syntax error in lvm exec module
  258782. @ \fI2015\-08\-17 21:18:25 UTC\fP
  258783. .INDENT 2.0
  258784. .IP \(bu 2
  258785. 741ca6b4db Merge pull request \fI\%#26406\fP from jfindlay/lvm
  258786. .IP \(bu 2
  258787. 81d351ff8f fix syntax error in lvm exec module
  258788. .UNINDENT
  258789. .IP \(bu 2
  258790. \fBPR\fP \fI\%#26405\fP: (\fI\%TheBigBear\fP) dependency zip files moved to new site
  258791. @ \fI2015\-08\-17 21:17:24 UTC\fP
  258792. .INDENT 2.0
  258793. .IP \(bu 2
  258794. a7e2d30e2a Merge pull request \fI\%#26405\fP from TheBigBear/patch\-8
  258795. .IP \(bu 2
  258796. 8898d64918 dependency zip files moved to new site
  258797. .UNINDENT
  258798. .IP \(bu 2
  258799. \fBPR\fP \fI\%#26298\fP: (\fI\%vr\-jack\fP) Keep $HOME from being interpretted by Master shell
  258800. @ \fI2015\-08\-17 21:15:11 UTC\fP
  258801. .INDENT 2.0
  258802. .IP \(bu 2
  258803. cf0523a12e Merge pull request \fI\%#26298\fP from vr\-jack/2015.5
  258804. .IP \(bu 2
  258805. 1fd6fc6ce3 Keep $HOME from being interpretted by Master shell
  258806. .UNINDENT
  258807. .IP \(bu 2
  258808. \fBPR\fP \fI\%#26324\fP: (\fI\%s0undt3ch\fP) Salt is now pip install\(aqable in windows
  258809. @ \fI2015\-08\-17 20:41:34 UTC\fP
  258810. .INDENT 2.0
  258811. .IP \(bu 2
  258812. c0811d3302 Merge pull request \fI\%#26324\fP from s0undt3ch/2015.5
  258813. .IP \(bu 2
  258814. e7cb3be2a0 Document the added options
  258815. .IP \(bu 2
  258816. 92af1c9572 Fix argument name
  258817. .IP \(bu 2
  258818. 72d2fdb512 Add \fIpypiwin32 >= 219\fP as a windows install requires.
  258819. .IP \(bu 2
  258820. b1105fc706 Allow mimicking the install setup command for develop/editable installations.
  258821. .IP \(bu 2
  258822. 26246a72ee Allow writing Salt\(aqs _version.py when installing in develop mode.
  258823. .IP \(bu 2
  258824. 71928f2194 Prefer HTTPS, fix url argument
  258825. .IP \(bu 2
  258826. 7b25430cc7 Download the necessary DLLs for windows
  258827. .IP \(bu 2
  258828. 86692a92cd Install PyCrypto from a wheel in repo.saltstack.com under Windows
  258829. .IP \(bu 2
  258830. 915da594c2 Skip M2Crypto in Windows.
  258831. .IP \(bu 2
  258832. 1ea426e299 Move code to properly handle default requirements.
  258833. .IP \(bu 2
  258834. 8fda8c0db3 M2CryptoWin{32,64} should only be installed on Salt < 2015.8.0
  258835. .IP \(bu 2
  258836. 0ff2f19aee Override the develop command in cmdclass
  258837. .IP \(bu 2
  258838. a5aa752a85 Override the develop command when WITH_SETUPTOOLS is set
  258839. .IP \(bu 2
  258840. 4d6841c761 Install M2CryptoWin{32,64} while installing Salt
  258841. .UNINDENT
  258842. .IP \(bu 2
  258843. \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)
  258844. .IP \(bu 2
  258845. \fBPR\fP \fI\%#26371\fP: (\fI\%bastiaanb\fP) fix issue \fI\%#26161\fP: on RedHat family systems touch /var/lock/subsys/$SE…
  258846. @ \fI2015\-08\-17 20:39:28 UTC\fP
  258847. .INDENT 2.0
  258848. .IP \(bu 2
  258849. 87151736c5 Merge pull request \fI\%#26371\fP from bastiaanb/fix/issue\-26161\-salt\-initscripts\-dont\-set\-lockfile
  258850. .IP \(bu 2
  258851. ec8d4b0470 test wether RETVAL is 0 with \-eq rather than =.
  258852. .IP \(bu 2
  258853. a83a5de41e fix issue \fI\%#26161\fP: on RedHat family systems touch /var/lock/subsys/$SERVICE to ensure the daemon will be stopped on shutdown.
  258854. .UNINDENT
  258855. .IP \(bu 2
  258856. \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)
  258857. .IP \(bu 2
  258858. \fBISSUE\fP \fI\%#25562\fP: (\fI\%jefftucker\fP) winrepo state does not run on masterless minion (refs: \fI\%#26328\fP)
  258859. .IP \(bu 2
  258860. \fBPR\fP \fI\%#26402\fP: (\fI\%twangboy\fP) Removed documentation no longer required
  258861. @ \fI2015\-08\-17 20:35:37 UTC\fP
  258862. .INDENT 2.0
  258863. .IP \(bu 2
  258864. \fBPR\fP \fI\%#26328\fP: (\fI\%twangboy\fP) Removed salt\-master role requirement (refs: \fI\%#26402\fP)
  258865. .IP \(bu 2
  258866. 89602f56ad Merge pull request \fI\%#26402\fP from twangboy/fix_26328
  258867. .IP \(bu 2
  258868. ad5fa03b76 Removed documentation no longer required
  258869. .UNINDENT
  258870. .IP \(bu 2
  258871. \fBPR\fP \fI\%#26392\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26376\fP to 2015.5
  258872. @ \fI2015\-08\-17 19:39:51 UTC\fP
  258873. .INDENT 2.0
  258874. .IP \(bu 2
  258875. \fBPR\fP \fI\%#26376\fP: (\fI\%TheBigBear\fP) minor edit spelling (refs: \fI\%#26392\fP)
  258876. .IP \(bu 2
  258877. eb373e5904 Merge pull request \fI\%#26392\fP from rallytime/bp\-26376
  258878. .IP \(bu 2
  258879. a013bb5b3d minor edit
  258880. .UNINDENT
  258881. .IP \(bu 2
  258882. \fBISSUE\fP \fI\%#16049\fP: (\fI\%ryan\-lane\fP) boto_elb.present state requires attributes argument (refs: \fI\%#26342\fP)
  258883. .IP \(bu 2
  258884. \fBPR\fP \fI\%#26342\fP: (\fI\%rallytime\fP) Don\(aqt call boto_elb._attributes_present if no attributes were provided
  258885. @ \fI2015\-08\-17 19:19:08 UTC\fP
  258886. .INDENT 2.0
  258887. .IP \(bu 2
  258888. 8bb57d1631 Merge pull request \fI\%#26342\fP from rallytime/fix\-16049
  258889. .IP \(bu 2
  258890. 211f6feaf5 Fix test failures \- get_attributes shouldn\(aqt be called if none are provided
  258891. .IP \(bu 2
  258892. d8ad023e88 Don\(aqt call boto_elb._attributes_present if no attributes were provided
  258893. .UNINDENT
  258894. .IP \(bu 2
  258895. \fBISSUE\fP \fI\%#26155\fP: (\fI\%silenius\fP) pip availability in states/pip_state (refs: \fI\%#26160\fP)
  258896. .IP \(bu 2
  258897. \fBPR\fP \fI\%#26389\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26160\fP to 2015.5
  258898. @ \fI2015\-08\-17 19:09:16 UTC\fP
  258899. .INDENT 2.0
  258900. .IP \(bu 2
  258901. \fBPR\fP \fI\%#26160\fP: (\fI\%silenius\fP) proposed fix for \fI\%#26155\fP (refs: \fI\%#26389\fP)
  258902. .IP \(bu 2
  258903. 2fd1e06343 Merge pull request \fI\%#26389\fP from rallytime/bp\-26160
  258904. .IP \(bu 2
  258905. f0bc3765d9 No logging should happen on __virtual__
  258906. .IP \(bu 2
  258907. ca406eaf3c proposed fix for \fI\%#26155\fP
  258908. .UNINDENT
  258909. .IP \(bu 2
  258910. \fBISSUE\fP \fI\%#26266\fP: (\fI\%o\-sleep\fP) limit pw_user.getent() from returning entire corporate list (refs: \fI\%#26300\fP)
  258911. .IP \(bu 2
  258912. \fBPR\fP \fI\%#26300\fP: (\fI\%jfindlay\fP) mock pwd function calls in pw_user exec module
  258913. @ \fI2015\-08\-17 18:56:41 UTC\fP
  258914. .INDENT 2.0
  258915. .IP \(bu 2
  258916. 0046c6cfed Merge pull request \fI\%#26300\fP from jfindlay/pw_test
  258917. .IP \(bu 2
  258918. 7e94989403 mock pwd calls in pw_user exec mod test
  258919. .IP \(bu 2
  258920. 26f5b466f5 check for pwd on linux and BSD user exec mods
  258921. .UNINDENT
  258922. .IP \(bu 2
  258923. \fBISSUE\fP \fI\%#24334\fP: (\fI\%afletch\fP) autosign_timeout not honoured (refs: \fI\%#26386\fP)
  258924. .IP \(bu 2
  258925. \fBPR\fP \fI\%#26386\fP: (\fI\%jahamn\fP) Fixes autosign_timeout usage in check_autosign_dir
  258926. @ \fI2015\-08\-17 18:34:40 UTC\fP
  258927. .INDENT 2.0
  258928. .IP \(bu 2
  258929. 709499438b Merge pull request \fI\%#26386\fP from jahamn/fix\-autosign_timeout
  258930. .IP \(bu 2
  258931. b2fa2ac9d3 Fixes autosign_timeout usage in check_autosign_dir
  258932. .UNINDENT
  258933. .IP \(bu 2
  258934. \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)
  258935. .IP \(bu 2
  258936. \fBISSUE\fP \fI\%#25562\fP: (\fI\%jefftucker\fP) winrepo state does not run on masterless minion (refs: \fI\%#26328\fP)
  258937. .IP \(bu 2
  258938. \fBPR\fP \fI\%#26328\fP: (\fI\%twangboy\fP) Removed salt\-master role requirement (refs: \fI\%#26402\fP)
  258939. @ \fI2015\-08\-17 18:30:17 UTC\fP
  258940. .INDENT 2.0
  258941. .IP \(bu 2
  258942. 8d901d7b15 Merge pull request \fI\%#26328\fP from twangboy/fix_25562
  258943. .IP \(bu 2
  258944. d4ca1dccbf Removed salt\-master role requirement
  258945. .UNINDENT
  258946. .IP \(bu 2
  258947. \fBISSUE\fP \fI\%#26327\fP: (\fI\%bradthurber\fP) mount.mounted opts incorrect "forced unmount and mount because options (tcp) changed" (refs: \fI\%#26362\fP)
  258948. .IP \(bu 2
  258949. \fBPR\fP \fI\%#26362\fP: (\fI\%garethgreenaway\fP) Fixes to mount state.
  258950. @ \fI2015\-08\-17 17:44:55 UTC\fP
  258951. .INDENT 2.0
  258952. .IP \(bu 2
  258953. 74558f5743 Merge pull request \fI\%#26362\fP from garethgreenaway/2015_5_26327_more_invisible_mount_options
  258954. .IP \(bu 2
  258955. 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.
  258956. .UNINDENT
  258957. .IP \(bu 2
  258958. \fBPR\fP \fI\%#26379\fP: (\fI\%s0undt3ch\fP) [2015.5] Backport \fI\%#26353\fP
  258959. @ \fI2015\-08\-17 17:19:29 UTC\fP
  258960. .INDENT 2.0
  258961. .IP \(bu 2
  258962. \fBPR\fP \fI\%#26353\fP: (\fI\%sixninetynine\fP) fixed a typo in setup.py (refs: \fI\%#26379\fP)
  258963. .IP \(bu 2
  258964. 7dbbd90c98 Merge pull request \fI\%#26379\fP from s0undt3ch/issues/backport\-26353
  258965. .IP \(bu 2
  258966. 33ed315c85 fixed Packaing \-> Packaging typo and added a couple comments on the setuptools/distutils abstract methods
  258967. .UNINDENT
  258968. .IP \(bu 2
  258969. \fBISSUE\fP \fI\%#26240\fP: (\fI\%0xf10e\fP) keystone.user_get raises exception when user is not found (refs: \fI\%#26277\fP)
  258970. .IP \(bu 2
  258971. \fBPR\fP \fI\%#26277\fP: (\fI\%rallytime\fP) Handle exception when user is not found in keystone.user_get
  258972. @ \fI2015\-08\-14 19:41:59 UTC\fP
  258973. .INDENT 2.0
  258974. .IP \(bu 2
  258975. bcca1b4c5a Merge pull request \fI\%#26277\fP from rallytime/fix\-26240
  258976. .IP \(bu 2
  258977. 0b6977335e Clean it up
  258978. .IP \(bu 2
  258979. 5edabfd271 It\(aqs a dict \- git problems...
  258980. .IP \(bu 2
  258981. 39d3eb66f0 Log error and return error \- make returns consistent.
  258982. .IP \(bu 2
  258983. 496474d862 Handle exception when user is not found in keystone.get_user
  258984. .UNINDENT
  258985. .IP \(bu 2
  258986. \fBISSUE\fP \fI\%#24484\fP: (\fI\%bailsman\fP) clouds/ec2.py: create_snapshot throws exception (refs: \fI\%#26326\fP)
  258987. .IP \(bu 2
  258988. \fBPR\fP \fI\%#26326\fP: (\fI\%rallytime\fP) Make ec2.create_snapshot return less unweildly and more relevant
  258989. @ \fI2015\-08\-14 19:40:47 UTC\fP
  258990. .INDENT 2.0
  258991. .IP \(bu 2
  258992. 78be3a826f Merge pull request \fI\%#26326\fP from rallytime/create_snapshot_return
  258993. .IP \(bu 2
  258994. c5395db851 Make ec2.create_snapshot return less unweildly and more relevant
  258995. .UNINDENT
  258996. .IP \(bu 2
  258997. \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)
  258998. .IP \(bu 2
  258999. \fBPR\fP \fI\%#26306\fP: (\fI\%rallytime\fP) Move VM creation details dict to log.trace
  259000. @ \fI2015\-08\-14 17:39:52 UTC\fP
  259001. .INDENT 2.0
  259002. .IP \(bu 2
  259003. 44c9d3063b Merge pull request \fI\%#26306\fP from rallytime/fix\-16179
  259004. .IP \(bu 2
  259005. 670464258f Move VM creation details dict to log.trace
  259006. .UNINDENT
  259007. .UNINDENT
  259008. .SS Salt 2015.5.6 Release Notes
  259009. .INDENT 0.0
  259010. .TP
  259011. .B release
  259012. 2015\-10\-13
  259013. .UNINDENT
  259014. .sp
  259015. Version 2015.5.6 is a bugfix release for 2015.5.0\&.
  259016. .SS Statistics
  259017. .INDENT 0.0
  259018. .IP \(bu 2
  259019. Total Merges: \fB145\fP
  259020. .IP \(bu 2
  259021. Total Issue References: \fB71\fP
  259022. .IP \(bu 2
  259023. Total PR References: \fB178\fP
  259024. .IP \(bu 2
  259025. 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)
  259026. .UNINDENT
  259027. .SS Security Fixes
  259028. .sp
  259029. \fBCVE\-2015\-6941\fP The Windows \fBuser\fP module and
  259030. \fBsalt\-cloud\fP display passwords in log when log level is set to \fBdebug\fP
  259031. or more verbose.
  259032. .sp
  259033. For the Windows \fBuser\fP module, the password is
  259034. now replaced with the string \fBXXX\-REDACTED\-XXX\fP\&.
  259035. .sp
  259036. For salt\-cloud, debug logging no longer displays \fBwin_password\fP and
  259037. \fBsudo_password\fP authentication credentials.
  259038. .sp
  259039. \fBCVE\-2015\-6918\fP Git state/execution modules log HTTPS auth credentials when
  259040. log level is set to \fBdebug\fP or more verbose.
  259041. .sp
  259042. These credentials are now replaced with \fBREDACTED\fP in the debug output.
  259043. Thanks to Andreas Stieger <\fI\%asteiger@suse.com\fP> for bringing this to our
  259044. attention.
  259045. .SS Changelog for v2015.5.5..v2015.5.6
  259046. .sp
  259047. \fIGenerated at: 2018\-05\-27 22:13:00 UTC\fP
  259048. .INDENT 0.0
  259049. .IP \(bu 2
  259050. \fBPR\fP \fI\%#27582\fP: (\fI\%jfindlay\fP) add 2015.5.6 release notes
  259051. @ \fI2015\-09\-30 22:33:48 UTC\fP
  259052. .INDENT 2.0
  259053. .IP \(bu 2
  259054. 304dc68f7f Merge pull request \fI\%#27582\fP from jfindlay/2015.5
  259055. .IP \(bu 2
  259056. 4f0d55cda6 add 2015.5.6 release notes
  259057. .UNINDENT
  259058. .IP \(bu 2
  259059. \fBISSUE\fP \fI\%#27518\fP: (\fI\%srkunze\fP) [Docs] Relationship between Mine and Grains (refs: \fI\%#27557\fP)
  259060. .IP \(bu 2
  259061. \fBPR\fP \fI\%#27557\fP: (\fI\%jfindlay\fP) add doc motivating mine vs grains
  259062. @ \fI2015\-09\-30 17:49:46 UTC\fP
  259063. .INDENT 2.0
  259064. .IP \(bu 2
  259065. 7201ce71e4 Merge pull request \fI\%#27557\fP from jfindlay/mine_doc
  259066. .IP \(bu 2
  259067. 3727d79bad edit mine doc for style and markup
  259068. .IP \(bu 2
  259069. 7e037a4666 add doc motivating mine vs grains
  259070. .UNINDENT
  259071. .IP \(bu 2
  259072. \fBISSUE\fP \fI\%#27478\fP: (\fI\%rominf\fP) iptables state fails to save rules (refs: \fI\%#27515\fP)
  259073. .IP \(bu 2
  259074. \fBPR\fP \fI\%#27515\fP: (\fI\%jfindlay\fP) save iptables rules on SuSE
  259075. @ \fI2015\-09\-30 16:09:42 UTC\fP
  259076. .INDENT 2.0
  259077. .IP \(bu 2
  259078. 59c3d5f93e Merge pull request \fI\%#27515\fP from jfindlay/suse_fire
  259079. .IP \(bu 2
  259080. 4460ad2785 save iptables rules on SuSE
  259081. .UNINDENT
  259082. .IP \(bu 2
  259083. \fBISSUE\fP \fI\%#27460\fP: (\fI\%llevar\fP) Orchestrate runner not resolving reference to a built in state (refs: \fI\%#27509\fP)
  259084. .IP \(bu 2
  259085. \fBPR\fP \fI\%#27509\fP: (\fI\%jfindlay\fP) tell the user why the gluster module does not work
  259086. @ \fI2015\-09\-30 15:49:16 UTC\fP
  259087. .INDENT 2.0
  259088. .IP \(bu 2
  259089. 9b26357b19 Merge pull request \fI\%#27509\fP from jfindlay/gluster_reason
  259090. .IP \(bu 2
  259091. 1ccda538d2 tell the user why the gluster module does not work
  259092. .UNINDENT
  259093. .IP \(bu 2
  259094. \fBISSUE\fP \fI\%#27372\fP: (\fI\%GregMeno\fP) pip.installed state fails when env_vars is not a dict (refs: \fI\%#27379\fP)
  259095. .IP \(bu 2
  259096. \fBPR\fP \fI\%#27379\fP: (\fI\%jfindlay\fP) document and check dict type for pip env_vars
  259097. @ \fI2015\-09\-30 02:56:52 UTC\fP
  259098. .INDENT 2.0
  259099. .IP \(bu 2
  259100. 989733ea86 Merge pull request \fI\%#27379\fP from jfindlay/pip_vars
  259101. .IP \(bu 2
  259102. aee51ffdef document and check dict type for pip env_vars
  259103. .UNINDENT
  259104. .IP \(bu 2
  259105. \fBPR\fP \fI\%#27516\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  259106. @ \fI2015\-09\-29 17:53:33 UTC\fP
  259107. .INDENT 2.0
  259108. .IP \(bu 2
  259109. 6d773f66c3 Merge pull request \fI\%#27516\fP from basepi/merge\-forward\-2015.5
  259110. .IP \(bu 2
  259111. a08951f0fa Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  259112. .IP \(bu 2
  259113. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  259114. .INDENT 2.0
  259115. .IP \(bu 2
  259116. adeb1dcad4 Pylint Fix
  259117. .IP \(bu 2
  259118. 588c13783c Salt\-cloud logging clean up for windows functions
  259119. .IP \(bu 2
  259120. 9b6000135c [2014.7] Fixup salt\-cloud logging
  259121. .UNINDENT
  259122. .UNINDENT
  259123. .IP \(bu 2
  259124. \fBISSUE\fP \fI\%#27447\fP: (\fI\%junster1\fP) Fix mysql table size for salt_events (refs: \fI\%#27472\fP)
  259125. .IP \(bu 2
  259126. \fBPR\fP \fI\%#27472\fP: (\fI\%cachedout\fP) Change recommeded schema for data field in mysql event table
  259127. @ \fI2015\-09\-29 15:49:37 UTC\fP
  259128. .INDENT 2.0
  259129. .IP \(bu 2
  259130. 68d784c3dd Merge pull request \fI\%#27472\fP from cachedout/fix_27447
  259131. .IP \(bu 2
  259132. 5e745ad6da Change recommeded schema for data field in mysql event table
  259133. .UNINDENT
  259134. .IP \(bu 2
  259135. \fBPR\fP \fI\%#27468\fP: (\fI\%cachedout\fP) Fix 27351
  259136. @ \fI2015\-09\-29 15:35:29 UTC\fP
  259137. .INDENT 2.0
  259138. .IP \(bu 2
  259139. \fBPR\fP \fI\%#27351\fP: (\fI\%SaltyCharles\fP) fix sysctl truncating newline on os x (refs: \fI\%#27468\fP)
  259140. .IP \(bu 2
  259141. ee6e0ed057 Merge pull request \fI\%#27468\fP from cachedout/fix_27351
  259142. .IP \(bu 2
  259143. 0bc37c0d41 Fix test
  259144. .IP \(bu 2
  259145. f9a19720de fix sysctl truncating newline on os x
  259146. .UNINDENT
  259147. .IP \(bu 2
  259148. \fBISSUE\fP \fI\%#27438\fP: (\fI\%aboe76\fP) can\(aqt set system locale on OpenSuse SUse (refs: \fI\%#27479\fP)
  259149. .IP \(bu 2
  259150. \fBPR\fP \fI\%#27479\fP: (\fI\%aboe76\fP) fix locale on opensuse and suse \fI\%#27438\fP
  259151. @ \fI2015\-09\-29 15:34:48 UTC\fP
  259152. .INDENT 2.0
  259153. .IP \(bu 2
  259154. a214c7f84e Merge pull request \fI\%#27479\fP from aboe76/fix_locale_suse
  259155. .IP \(bu 2
  259156. a8f2dad1be fix locale on opensuse and suse \fI\%#27438\fP
  259157. .UNINDENT
  259158. .IP \(bu 2
  259159. \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)
  259160. .IP \(bu 2
  259161. \fBPR\fP \fI\%#27483\fP: (\fI\%rallytime\fP) Outputters should sync to output, not outputters, on the minion.
  259162. @ \fI2015\-09\-29 15:33:08 UTC\fP
  259163. .INDENT 2.0
  259164. .IP \(bu 2
  259165. 931f593b51 Merge pull request \fI\%#27483\fP from rallytime/fix\-17103
  259166. .IP \(bu 2
  259167. 441241eb90 Change sync_outputters to sync_output for consistency, but alias sync_outputters
  259168. .IP \(bu 2
  259169. 105528720b Outputters should sync to output, not outputters, on the minion.
  259170. .UNINDENT
  259171. .IP \(bu 2
  259172. \fBPR\fP \fI\%#27484\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27434\fP and \fI\%#27470\fP to 2015.5
  259173. @ \fI2015\-09\-29 15:32:03 UTC\fP
  259174. .INDENT 2.0
  259175. .IP \(bu 2
  259176. \fBPR\fP \fI\%#27470\fP: (\fI\%cachedout\fP) Minor doc fixup. (refs: \fI\%#27484\fP)
  259177. .IP \(bu 2
  259178. \fBPR\fP \fI\%#27434\fP: (\fI\%netroby\fP) Doc: copy key to server via ssh\-copy\-id (refs: \fI\%#27484\fP, \fI\%#27470\fP)
  259179. .IP \(bu 2
  259180. 9c2c028953 Merge pull request \fI\%#27484\fP from rallytime/bp\-27434\-and\-27470
  259181. .IP \(bu 2
  259182. 5de2ee35ab Minor doc fixup.
  259183. .IP \(bu 2
  259184. af656c7e87 Doc: copy key to server via ssh\-copy\-id
  259185. .UNINDENT
  259186. .IP \(bu 2
  259187. \fBISSUE\fP \fI\%#27433\fP: (\fI\%TheBigBear\fP) winrepo \- drops "trailing zeroes" from version numbers on un\-install? (refs: \fI\%#27469\fP)
  259188. .IP \(bu 2
  259189. \fBPR\fP \fI\%#27469\fP: (\fI\%twangboy\fP) Added quotes to version numbers example
  259190. @ \fI2015\-09\-28 21:54:43 UTC\fP
  259191. .INDENT 2.0
  259192. .IP \(bu 2
  259193. 927874d316 Merge pull request \fI\%#27469\fP from twangboy/fix_27433
  259194. .IP \(bu 2
  259195. a996ea46e2 Added quotes to version numbers example
  259196. .UNINDENT
  259197. .IP \(bu 2
  259198. \fBISSUE\fP \fI\%#27342\fP: (\fI\%ariscn\fP) File.managed silent fail for contents_pillar (refs: \fI\%#27375\fP, \fI\%#27467\fP)
  259199. .IP \(bu 2
  259200. \fBPR\fP \fI\%#27467\fP: (\fI\%cachedout\fP) file.managed: check contents_{pillar|grain} result
  259201. @ \fI2015\-09\-28 20:22:16 UTC\fP
  259202. .INDENT 2.0
  259203. .IP \(bu 2
  259204. \fBPR\fP \fI\%#27375\fP: (\fI\%jfindlay\fP) file.managed: check contents_{pillar|grain} result (refs: \fI\%#27467\fP)
  259205. .IP \(bu 2
  259206. 382a53403f Merge pull request \fI\%#27467\fP from cachedout/lint_27375
  259207. .IP \(bu 2
  259208. 4e54a98f5e Lint \fI\%#27375\fP
  259209. .IP \(bu 2
  259210. 278ade52d2 file.managed: check contents_{pillar|grain} result
  259211. .UNINDENT
  259212. .IP \(bu 2
  259213. \fBISSUE\fP \fI\%#9856\fP: (\fI\%jeremyBass\fP) for grant in grants: TypeError: \(aqbool\(aq object is not iterable (refs: \fI\%#27419\fP)
  259214. .IP \(bu 2
  259215. \fBPR\fP \fI\%#27419\fP: (\fI\%rallytime\fP) Amend error log to include multiple tips for troubleshooting.
  259216. @ \fI2015\-09\-28 17:53:19 UTC\fP
  259217. .INDENT 2.0
  259218. .IP \(bu 2
  259219. ed6207a438 Merge pull request \fI\%#27419\fP from rallytime/fix\-9856
  259220. .IP \(bu 2
  259221. 551396564a Ammend error log to include multiple tips for troubleshooting.
  259222. .UNINDENT
  259223. .IP \(bu 2
  259224. \fBISSUE\fP \fI\%#16753\fP: (\fI\%johtso\fP) Duplicate selector in top file gives unhelpful traceback (refs: \fI\%#27426\fP)
  259225. .IP \(bu 2
  259226. \fBPR\fP \fI\%#27426\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if there are conflicting id errors in highstate
  259227. @ \fI2015\-09\-28 14:52:51 UTC\fP
  259228. .INDENT 2.0
  259229. .IP \(bu 2
  259230. 73fa89edf7 Merge pull request \fI\%#27426\fP from rallytime/fix\-16753
  259231. .IP \(bu 2
  259232. f6cbd81e66 Don\(aqt stacktrace if there are conflicting id errors in highstate
  259233. .UNINDENT
  259234. .IP \(bu 2
  259235. \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)
  259236. .IP \(bu 2
  259237. \fBPR\fP \fI\%#27408\fP: (\fI\%rallytime\fP) Fix avail_locations function for the softlayer_hw driver in 2015.5
  259238. @ \fI2015\-09\-25 23:34:50 UTC\fP
  259239. .INDENT 2.0
  259240. .IP \(bu 2
  259241. 5dd1b70475 Merge pull request \fI\%#27408\fP from rallytime/fix\-27406\-for\-2015.5
  259242. .IP \(bu 2
  259243. 39a4ae5a6c Remove hdd: 19 refs from SL docs \- no longer available from SoftLayer.
  259244. .IP \(bu 2
  259245. de2f9234d3 Use correct default for bandwith
  259246. .IP \(bu 2
  259247. 42d8127f79 Don\(aqt set the optional_products default to a boolean, and then try to loop.
  259248. .IP \(bu 2
  259249. 9d8a3d8303 Fix avail_locations function for the softlayer_hw driver in 2015.5
  259250. .UNINDENT
  259251. .IP \(bu 2
  259252. \fBISSUE\fP \fI\%#27389\fP: (\fI\%ryan\-lane\fP) Docs layout issue (refs: \fI\%#27410\fP)
  259253. .IP \(bu 2
  259254. \fBPR\fP \fI\%#27410\fP: (\fI\%jacobhammons\fP) Fix css layout Refs \fI\%#27389\fP
  259255. @ \fI2015\-09\-25 22:38:48 UTC\fP
  259256. .INDENT 2.0
  259257. .IP \(bu 2
  259258. 8f9a3cfbaf Merge pull request \fI\%#27410\fP from jacobhammons/doc\-updates
  259259. .IP \(bu 2
  259260. a9fdecada1 Fix css layout Refs \fI\%#27389\fP sample typo fix in linux_acl additional module folders listed in dynamic\-modules
  259261. .UNINDENT
  259262. .IP \(bu 2
  259263. \fBPR\fP \fI\%#27336\fP: (\fI\%rallytime\fP) [2015.5] Fixup salt\-cloud logging
  259264. @ \fI2015\-09\-24 15:02:52 UTC\fP
  259265. .INDENT 2.0
  259266. .IP \(bu 2
  259267. 3746085587 Merge pull request \fI\%#27336\fP from rallytime/cloud\-logging\-five
  259268. .IP \(bu 2
  259269. 7956b36076 [2015.5] Fixup salt\-cloud logging
  259270. .UNINDENT
  259271. .IP \(bu 2
  259272. \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)
  259273. .IP \(bu 2
  259274. \fBPR\fP \fI\%#27358\fP: (\fI\%lorengordon\fP) Escape search replacement text, fixes \fI\%#27356\fP
  259275. @ \fI2015\-09\-24 13:52:46 UTC\fP
  259276. .INDENT 2.0
  259277. .IP \(bu 2
  259278. 5a3be10a3e Merge pull request \fI\%#27358\fP from lorengordon/escape\-search\-replacement\-text
  259279. .IP \(bu 2
  259280. 88bb1fbfff Escape search replacement text, fixes \fI\%#27356\fP
  259281. .UNINDENT
  259282. .IP \(bu 2
  259283. \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)
  259284. .IP \(bu 2
  259285. \fBPR\fP \fI\%#27345\fP: (\fI\%rallytime\fP) Allow use of rst header links by separating options out from yaml example
  259286. @ \fI2015\-09\-23 19:48:56 UTC\fP
  259287. .INDENT 2.0
  259288. .IP \(bu 2
  259289. 6759f79d6d Merge pull request \fI\%#27345\fP from rallytime/docs\-for\-19236
  259290. .IP \(bu 2
  259291. 1d3925bbfb Added version tag for ex_disk_type option
  259292. .IP \(bu 2
  259293. f23369300c Allow use of rst header links by separating options out from yaml example
  259294. .UNINDENT
  259295. .IP \(bu 2
  259296. \fBPR\fP \fI\%#26903\fP: (\fI\%bersace\fP) Review defaults.get
  259297. @ \fI2015\-09\-23 14:52:20 UTC\fP
  259298. .INDENT 2.0
  259299. .IP \(bu 2
  259300. c2efb291e2 Merge pull request \fI\%#26903\fP from bersace/fix\-defaults\-modules
  259301. .IP \(bu 2
  259302. 474d7afc95 fixup! Review defaults loading
  259303. .IP \(bu 2
  259304. 36141d226e fixup! Review defaults loading
  259305. .IP \(bu 2
  259306. 62b6495358 fixup! Review defaults loading
  259307. .IP \(bu 2
  259308. cf0624e8b8 fixup! Review defaults loading
  259309. .IP \(bu 2
  259310. 2c58bab977 fixup! Review defaults loading
  259311. .IP \(bu 2
  259312. 82c5b1d8fd Review defaults loading
  259313. .UNINDENT
  259314. .IP \(bu 2
  259315. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  259316. .IP \(bu 2
  259317. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd.
  259318. @ \fI2015\-09\-23 14:41:36 UTC\fP
  259319. .INDENT 2.0
  259320. .IP \(bu 2
  259321. a372466922 Merge pull request \fI\%#27317\fP from efficks/fix27316
  259322. .IP \(bu 2
  259323. bf216c101e State unzip should use unzip command instead of unzip_cmd. Issue \fI\%#27316\fP
  259324. .UNINDENT
  259325. .IP \(bu 2
  259326. \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)
  259327. .IP \(bu 2
  259328. \fBPR\fP \fI\%#27309\fP: (\fI\%rallytime\fP) Change a value list to a comma\-separated string in boto_route53.present
  259329. @ \fI2015\-09\-23 14:30:50 UTC\fP
  259330. .INDENT 2.0
  259331. .IP \(bu 2
  259332. bd3771e80f Merge pull request \fI\%#27309\fP from rallytime/fix\-15514
  259333. .IP \(bu 2
  259334. 9383d91ff8 Change a value list to a comma\-separated string in boto_route53.present
  259335. .UNINDENT
  259336. .IP \(bu 2
  259337. \fBISSUE\fP \fI\%#27297\fP: (\fI\%JensRantil\fP) file.replace documentation improvement (refs: \fI\%#27311\fP)
  259338. .IP \(bu 2
  259339. \fBPR\fP \fI\%#27311\fP: (\fI\%jfindlay\fP) discuss replacement occurrences in file doc
  259340. @ \fI2015\-09\-22 22:23:10 UTC\fP
  259341. .INDENT 2.0
  259342. .IP \(bu 2
  259343. b5fe944875 Merge pull request \fI\%#27311\fP from jfindlay/maxoc
  259344. .IP \(bu 2
  259345. 8ec2e921bd discuss replacement occurrences in file doc
  259346. .UNINDENT
  259347. .IP \(bu 2
  259348. \fBPR\fP \fI\%#27310\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  259349. @ \fI2015\-09\-22 21:08:41 UTC\fP
  259350. .INDENT 2.0
  259351. .IP \(bu 2
  259352. ca4597b93a Merge pull request \fI\%#27310\fP from basepi/merge\-forward\-2015.5
  259353. .IP \(bu 2
  259354. 7b75e4aed1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  259355. .IP \(bu 2
  259356. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  259357. .INDENT 2.0
  259358. .IP \(bu 2
  259359. 3d28307a00 2014.7 \-> 2014.7.0
  259360. .UNINDENT
  259361. .UNINDENT
  259362. .IP \(bu 2
  259363. \fBISSUE\fP \fI\%#27307\fP: (\fI\%terminalmage\fP) Regression in yumpkg\(aqs refresh_db function (refs: \fI\%#27308\fP)
  259364. .IP \(bu 2
  259365. \fBPR\fP \fI\%#27308\fP: (\fI\%terminalmage\fP) Fix refresh_db regression in yumpkg.py
  259366. @ \fI2015\-09\-22 21:07:28 UTC\fP
  259367. .INDENT 2.0
  259368. .IP \(bu 2
  259369. 982c21c79f Merge pull request \fI\%#27308\fP from terminalmage/fix\-refresh_db\-regression
  259370. .IP \(bu 2
  259371. 77686fb7ce Fix refresh_db regression in yumpkg.py
  259372. .UNINDENT
  259373. .IP \(bu 2
  259374. \fBPR\fP \fI\%#27286\fP: (\fI\%terminalmage\fP) Add a configurable timer for minion return retries
  259375. @ \fI2015\-09\-22 16:35:07 UTC\fP
  259376. .INDENT 2.0
  259377. .IP \(bu 2
  259378. 775a4f9ad0 Merge pull request \fI\%#27286\fP from terminalmage/return_retry_timer
  259379. .IP \(bu 2
  259380. 540a7dfcf1 Add default values for new minion config options
  259381. .IP \(bu 2
  259382. 453b883820 Add a configurable timer for minion return retries
  259383. .UNINDENT
  259384. .IP \(bu 2
  259385. \fBPR\fP \fI\%#27278\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27256\fP to 2015.5
  259386. @ \fI2015\-09\-21 19:27:51 UTC\fP
  259387. .INDENT 2.0
  259388. .IP \(bu 2
  259389. \fBPR\fP \fI\%#27256\fP: (\fI\%julianbrost\fP) Fix error handling in salt.modules.file.statvfs (refs: \fI\%#27278\fP)
  259390. .IP \(bu 2
  259391. 02482c0572 Merge pull request \fI\%#27278\fP from rallytime/bp\-27256
  259392. .IP \(bu 2
  259393. 1beddf6311 Fix error handling in salt.modules.file.statvfs
  259394. .UNINDENT
  259395. .IP \(bu 2
  259396. \fBPR\fP \fI\%#27277\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27230\fP to 2015.5
  259397. @ \fI2015\-09\-21 19:06:14 UTC\fP
  259398. .INDENT 2.0
  259399. .IP \(bu 2
  259400. \fBPR\fP \fI\%#27230\fP: (\fI\%benhosmer\fP) Fix typo in AWS doc config (refs: \fI\%#27277\fP)
  259401. .IP \(bu 2
  259402. e36c019c37 Merge pull request \fI\%#27277\fP from rallytime/bp\-27230
  259403. .IP \(bu 2
  259404. 3ce77db1bc Fix typo in AWS doc config
  259405. .UNINDENT
  259406. .IP \(bu 2
  259407. \fBPR\fP \fI\%#27253\fP: (\fI\%jfindlay\fP) 2015.5 \-> 2015.5.0
  259408. @ \fI2015\-09\-18 23:44:43 UTC\fP
  259409. .INDENT 2.0
  259410. .IP \(bu 2
  259411. b22286476e Merge pull request \fI\%#27253\fP from jfindlay/version.2015.5
  259412. .IP \(bu 2
  259413. 967e3bb72a 2015.5 \-> 2015.5.0
  259414. .UNINDENT
  259415. .IP \(bu 2
  259416. \fBPR\fP \fI\%#27244\fP: (\fI\%garethgreenaway\fP) Exception in cloud.ec2.create_snapshot
  259417. @ \fI2015\-09\-18 21:41:11 UTC\fP
  259418. .INDENT 2.0
  259419. .IP \(bu 2
  259420. 51a0193b54 Merge pull request \fI\%#27244\fP from garethgreenaway/ec2_create_snapshot_no_return_data_exception
  259421. .IP \(bu 2
  259422. 820fd576b9 Fixing the cause when the r_data from aws.query is empty and an exception happens when looking for the snapshotID
  259423. .UNINDENT
  259424. .IP \(bu 2
  259425. \fBISSUE\fP \fI\%#27215\fP: (\fI\%wfhu\fP) cron.file override the crontab file even if there\(aqs no change (refs: \fI\%#27231\fP)
  259426. .IP \(bu 2
  259427. \fBPR\fP \fI\%#27231\fP: (\fI\%jfindlay\fP) only write cron file if it is changed
  259428. @ \fI2015\-09\-18 18:23:10 UTC\fP
  259429. .INDENT 2.0
  259430. .IP \(bu 2
  259431. 26540f15bc Merge pull request \fI\%#27231\fP from jfindlay/cronchange
  259432. .IP \(bu 2
  259433. 1e335297e2 only write cron file if it is changed
  259434. .UNINDENT
  259435. .IP \(bu 2
  259436. \fBPR\fP \fI\%#27233\fP: (\fI\%basepi\fP) [2015.5] Add stub release notes for 2015.5.6
  259437. @ \fI2015\-09\-18 16:55:40 UTC\fP
  259438. .INDENT 2.0
  259439. .IP \(bu 2
  259440. 579f375f74 Merge pull request \fI\%#27233\fP from basepi/release.notes.stubs
  259441. .IP \(bu 2
  259442. f4563ea9b7 Add stub release notes for 2015.5.6
  259443. .UNINDENT
  259444. .IP \(bu 2
  259445. \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)
  259446. .IP \(bu 2
  259447. \fBPR\fP \fI\%#27208\fP: (\fI\%basepi\fP) [2015.5] Add test.nop state
  259448. @ \fI2015\-09\-18 16:50:17 UTC\fP
  259449. .INDENT 2.0
  259450. .IP \(bu 2
  259451. f5a322e3f2 Merge pull request \fI\%#27208\fP from basepi/nop.state.25423
  259452. .IP \(bu 2
  259453. 9414b05b2c Add test.nop example
  259454. .IP \(bu 2
  259455. a84ce67b8f Add test.nop state
  259456. .UNINDENT
  259457. .IP \(bu 2
  259458. \fBISSUE\fP \fI\%#27187\fP: (\fI\%SeverinLeonhardt\fP) ssh_known_hosts.present hashes other entries even with hash_hostname: false (refs: \fI\%#27201\fP)
  259459. .IP \(bu 2
  259460. \fBPR\fP \fI\%#27201\fP: (\fI\%jfindlay\fP) rename hash_hostname to hash_known_hosts
  259461. @ \fI2015\-09\-18 15:45:03 UTC\fP
  259462. .INDENT 2.0
  259463. .IP \(bu 2
  259464. 59a07cae68 Merge pull request \fI\%#27201\fP from jfindlay/sshhash
  259465. .IP \(bu 2
  259466. 1b620b77cd rename hash_host arg to hash_known_hosts
  259467. .IP \(bu 2
  259468. 12f14ae37c update hash_known_hosts docs in ssh module
  259469. .UNINDENT
  259470. .IP \(bu 2
  259471. \fBPR\fP \fI\%#27214\fP: (\fI\%jacksontj\fP) Correctly support https, port 443 is not a requirement
  259472. @ \fI2015\-09\-18 15:43:05 UTC\fP
  259473. .INDENT 2.0
  259474. .IP \(bu 2
  259475. 560545c4c5 Merge pull request \fI\%#27214\fP from jacksontj/2015.5
  259476. .IP \(bu 2
  259477. e7526bdb44 Correctly support https, port 443 is not a requirement
  259478. .UNINDENT
  259479. .IP \(bu 2
  259480. \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)
  259481. .IP \(bu 2
  259482. \fBPR\fP \fI\%#27172\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27150\fP to 2015.5
  259483. @ \fI2015\-09\-17 17:25:51 UTC\fP
  259484. .INDENT 2.0
  259485. .IP \(bu 2
  259486. \fBPR\fP \fI\%#27150\fP: (\fI\%cachedout\fP) Merge config values from master.d/minion.d conf files (refs: \fI\%#27172\fP)
  259487. .IP \(bu 2
  259488. 7a34c7742d Merge pull request \fI\%#27172\fP from rallytime/bp\-27150
  259489. .IP \(bu 2
  259490. 0d7ee4b209 Merge config values from master.d/minion.d conf files
  259491. .UNINDENT
  259492. .IP \(bu 2
  259493. \fBPR\fP \fI\%#27194\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27180\fP to 2015.5
  259494. @ \fI2015\-09\-17 16:17:24 UTC\fP
  259495. .INDENT 2.0
  259496. .IP \(bu 2
  259497. \fBPR\fP \fI\%#27180\fP: (\fI\%tankywoo\fP) file copy ret result True if no change in test mode (refs: \fI\%#27194\fP)
  259498. .IP \(bu 2
  259499. e956d88f5f Merge pull request \fI\%#27194\fP from rallytime/bp\-27180
  259500. .IP \(bu 2
  259501. 327d343fef file copy ret result True if no change in test mode
  259502. .UNINDENT
  259503. .IP \(bu 2
  259504. \fBPR\fP \fI\%#27176\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  259505. @ \fI2015\-09\-17 15:00:40 UTC\fP
  259506. .INDENT 2.0
  259507. .IP \(bu 2
  259508. a02d043309 Merge pull request \fI\%#27176\fP from basepi/merge\-forward\-2015.5
  259509. .IP \(bu 2
  259510. 66f4641be3 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  259511. .IP \(bu 2
  259512. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  259513. .INDENT 2.0
  259514. .IP \(bu 2
  259515. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  259516. .UNINDENT
  259517. .IP \(bu 2
  259518. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  259519. .INDENT 2.0
  259520. .IP \(bu 2
  259521. 507fb04683 Issue warning that some log levels may contain sensitive data
  259522. .UNINDENT
  259523. .IP \(bu 2
  259524. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  259525. .INDENT 2.0
  259526. .IP \(bu 2
  259527. c0689e3215 Replaced password with redacted when displayed
  259528. .UNINDENT
  259529. .UNINDENT
  259530. .IP \(bu 2
  259531. \fBPR\fP \fI\%#27170\fP: (\fI\%rallytime\fP) Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  259532. @ \fI2015\-09\-16 22:23:51 UTC\fP
  259533. .INDENT 2.0
  259534. .IP \(bu 2
  259535. de2027426e Merge pull request \fI\%#27170\fP from rallytime/gce\-docs
  259536. .IP \(bu 2
  259537. a07db909bd Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  259538. .UNINDENT
  259539. .IP \(bu 2
  259540. \fBPR\fP \fI\%#27167\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27148\fP to 2015.5
  259541. @ \fI2015\-09\-16 19:56:01 UTC\fP
  259542. .INDENT 2.0
  259543. .IP \(bu 2
  259544. \fBPR\fP \fI\%#27148\fP: (\fI\%hexedpackets\fP) Pass file pointers to the serialize load functions. (refs: \fI\%#27167\fP)
  259545. .IP \(bu 2
  259546. 28cfdfd067 Merge pull request \fI\%#27167\fP from rallytime/bp\-27148
  259547. .IP \(bu 2
  259548. d12be52355 Pass filepointers to the serialize load functions.
  259549. .UNINDENT
  259550. .IP \(bu 2
  259551. \fBISSUE\fP \fI\%#27157\fP: (\fI\%alxbse\fP) salt.util.smb loads even when impacket library is missing (refs: \fI\%#27168\fP)
  259552. .IP \(bu 2
  259553. \fBPR\fP \fI\%#27168\fP: (\fI\%techhat\fP) Add further gating of impacket library
  259554. @ \fI2015\-09\-16 18:55:56 UTC\fP
  259555. .INDENT 2.0
  259556. .IP \(bu 2
  259557. 4495f4f4d0 Merge pull request \fI\%#27168\fP from techhat/gateimpacket
  259558. .IP \(bu 2
  259559. cc448bfdc1 Add further gating of impacket library
  259560. .UNINDENT
  259561. .IP \(bu 2
  259562. \fBISSUE\fP \fI\%#27100\fP: (\fI\%hexedpackets\fP) salt\-cloud \-\-full\-query does nothing when no VM profiles are configured (refs: \fI\%#27166\fP)
  259563. .IP \(bu 2
  259564. \fBPR\fP \fI\%#27166\fP: (\fI\%rallytime\fP) Allow a full\-query for EC2, even if there are no profiles defined
  259565. @ \fI2015\-09\-16 17:41:40 UTC\fP
  259566. .INDENT 2.0
  259567. .IP \(bu 2
  259568. 3e5ef0dc30 Merge pull request \fI\%#27166\fP from rallytime/fix\-27100
  259569. .IP \(bu 2
  259570. 50fb3a489a Allow a full\-query for EC2, even if there are no profiles defined
  259571. .UNINDENT
  259572. .IP \(bu 2
  259573. \fBPR\fP \fI\%#27162\fP: (\fI\%rallytime\fP) Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  259574. @ \fI2015\-09\-16 16:43:26 UTC\fP
  259575. .INDENT 2.0
  259576. .IP \(bu 2
  259577. f1c9de7ed9 Merge pull request \fI\%#27162\fP from rallytime/softlayer\-service
  259578. .IP \(bu 2
  259579. d281068c70 Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  259580. .UNINDENT
  259581. .IP \(bu 2
  259582. \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)
  259583. .IP \(bu 2
  259584. \fBPR\fP \fI\%#27149\fP: (\fI\%twangboy\fP) Fixed problem with add/remove path
  259585. @ \fI2015\-09\-16 15:01:48 UTC\fP
  259586. .INDENT 2.0
  259587. .IP \(bu 2
  259588. 59e9dfd8de Merge pull request \fI\%#27149\fP from twangboy/fix_27133
  259589. .IP \(bu 2
  259590. 7992b7e20a Fixed some tests... hopefully...
  259591. .IP \(bu 2
  259592. d4c8e30f5d Fixed problem with add/remove path
  259593. .UNINDENT
  259594. .IP \(bu 2
  259595. \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)
  259596. .IP \(bu 2
  259597. \fBPR\fP \fI\%#27147\fP: (\fI\%rallytime\fP) Enforce bounds in the GCE Regex
  259598. @ \fI2015\-09\-15 21:51:55 UTC\fP
  259599. .INDENT 2.0
  259600. .IP \(bu 2
  259601. 097fcd1017 Merge pull request \fI\%#27147\fP from rallytime/fix\-11669
  259602. .IP \(bu 2
  259603. 55312ea03f Provide a more friendly error message.
  259604. .IP \(bu 2
  259605. 36555856c7 Enforce bounds in the GCE Regex
  259606. .UNINDENT
  259607. .IP \(bu 2
  259608. \fBPR\fP \fI\%#27128\fP: (\fI\%eguven\fP) don\(aqt show diff for test run if show_diff=False
  259609. @ \fI2015\-09\-15 14:11:55 UTC\fP
  259610. .INDENT 2.0
  259611. .IP \(bu 2
  259612. f5c3f157dd Merge pull request \fI\%#27128\fP from eguven/2015.5\-fix\-test\-diff
  259613. .IP \(bu 2
  259614. ec2d68a84a don\(aqt show diff for test run if show_diff=False
  259615. .UNINDENT
  259616. .IP \(bu 2
  259617. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous
  259618. @ \fI2015\-09\-15 07:34:28 UTC\fP
  259619. .INDENT 2.0
  259620. .IP \(bu 2
  259621. 088b1dbb3e Merge pull request \fI\%#27116\fP from jacobhammons/release\-docs\-2015.5
  259622. .IP \(bu 2
  259623. 6e323b6dd3 Update latest to 2015.8, 2015.5 is now previous Assorted style and minor updates
  259624. .UNINDENT
  259625. .IP \(bu 2
  259626. \fBISSUE\fP \fI\%#25352\fP: (\fI\%m03\fP) reg.absent reporting incorrect results (refs: \fI\%#27019\fP)
  259627. .IP \(bu 2
  259628. \fBPR\fP \fI\%#27033\fP: (\fI\%jfindlay\fP) Merge \fI\%#27019\fP
  259629. @ \fI2015\-09\-15 07:32:17 UTC\fP
  259630. .INDENT 2.0
  259631. .IP \(bu 2
  259632. \fBPR\fP \fI\%#27019\fP: (\fI\%twangboy\fP) Fixed reg state module for None, 0, and \(aq\(aq values (refs: \fI\%#27033\fP)
  259633. .IP \(bu 2
  259634. 440855b182 Merge pull request \fI\%#27033\fP from jfindlay/n0ne
  259635. .IP \(bu 2
  259636. 3334b9d548 fix comment and unit test for reg state
  259637. .IP \(bu 2
  259638. 391a09d5ac update reg state unit tests
  259639. .IP \(bu 2
  259640. ebbf2b05ca Fixed reg state module for None, 0, and \(aq\(aq values
  259641. .UNINDENT
  259642. .IP \(bu 2
  259643. \fBISSUE\fP \fI\%#17088\fP: (\fI\%umireon\fP) state.dockerio.run: docked_onlyif and docked_unless do not work (refs: \fI\%#26942\fP)
  259644. .IP \(bu 2
  259645. \fBPR\fP \fI\%#26942\fP: (\fI\%Arabus\fP) Fix docker.run
  259646. @ \fI2015\-09\-14 18:10:54 UTC\fP
  259647. .INDENT 2.0
  259648. .IP \(bu 2
  259649. 35fc74132a Merge pull request \fI\%#26942\fP from Arabus/fix\-docker.run
  259650. .IP \(bu 2
  259651. e61e1de1f5 Fixes value typo for dockerio.loaded state
  259652. .IP \(bu 2
  259653. 39fa11b696 further linting
  259654. .IP \(bu 2
  259655. 4aec37397c Further Linting to quiet the linter
  259656. .IP \(bu 2
  259657. 7eff8ad070 Code Linting and cmd call fix
  259658. .IP \(bu 2
  259659. a51676e0eb Fixes \fI\%#17088\fP olyif and unless should run on the host
  259660. .IP \(bu 2
  259661. d0c6128b8f Fixes \fI\%#17088\fP retcode now returns True or False based on return status
  259662. .IP \(bu 2
  259663. 8b2e7cc4f5 Syntax clarification
  259664. .UNINDENT
  259665. .IP \(bu 2
  259666. \fBPR\fP \fI\%#26977\fP: (\fI\%abh\fP) Add support for PEERNTP network interface configuration
  259667. @ \fI2015\-09\-14 17:59:00 UTC\fP
  259668. .INDENT 2.0
  259669. .IP \(bu 2
  259670. 59f2a0c7ae Merge pull request \fI\%#26977\fP from abh/2015.5\-ntppeer
  259671. .IP \(bu 2
  259672. df3d6e817f Add support for PEERNTP network interface configuration on RH derived systems
  259673. .UNINDENT
  259674. .IP \(bu 2
  259675. \fBISSUE\fP \fI\%#27021\fP: (\fI\%SEJeff\fP) webutil.user_exists state does not respect test=true (refs: \fI\%#27023\fP)
  259676. .IP \(bu 2
  259677. \fBISSUE\fP \fI\%#21533\fP: (\fI\%aspyatkin\fP) Add option specifying user to run htpasswd module functions (refs: \fI\%#21649\fP)
  259678. .IP \(bu 2
  259679. \fBPR\fP \fI\%#27023\fP: (\fI\%jfindlay\fP) add test support for htpasswd state mod
  259680. @ \fI2015\-09\-14 17:48:00 UTC\fP
  259681. .INDENT 2.0
  259682. .IP \(bu 2
  259683. \fBPR\fP \fI\%#21649\fP: (\fI\%aspyatkin\fP) Make enhancements to htpasswd modules (refs: \fI\%#27023\fP)
  259684. .IP \(bu 2
  259685. e05b1f3951 Merge pull request \fI\%#27023\fP from jfindlay/htwebutilpass
  259686. .IP \(bu 2
  259687. 9f3d7890a6 add test support for htpasswd state mod
  259688. .UNINDENT
  259689. .IP \(bu 2
  259690. \fBPR\fP \fI\%#27074\fP: (\fI\%twangboy\fP) Replaced password with redacted when displayed
  259691. @ \fI2015\-09\-14 16:27:26 UTC\fP
  259692. .INDENT 2.0
  259693. .IP \(bu 2
  259694. 9f999c0027 Merge pull request \fI\%#27074\fP from twangboy/fix_password_2015.5
  259695. .IP \(bu 2
  259696. fdd3537456 Replaced password with redacted when displayed
  259697. .UNINDENT
  259698. .IP \(bu 2
  259699. \fBPR\fP \fI\%#27073\fP: (\fI\%rallytime\fP) Remove "use develop branch" warning from LXC tutorial
  259700. @ \fI2015\-09\-11 23:51:06 UTC\fP
  259701. .INDENT 2.0
  259702. .IP \(bu 2
  259703. 46b44f85ed Merge pull request \fI\%#27073\fP from rallytime/remove\-lxc\-warning
  259704. .IP \(bu 2
  259705. 76c056d02b Remove "use develop branch" warning from LXC tutorial now that 2015.5.0 has been released
  259706. .UNINDENT
  259707. .IP \(bu 2
  259708. \fBPR\fP \fI\%#27054\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27029\fP to 2015.5
  259709. @ \fI2015\-09\-11 22:29:45 UTC\fP
  259710. .INDENT 2.0
  259711. .IP \(bu 2
  259712. \fBPR\fP \fI\%#27029\fP: (\fI\%spudfkc\fP) Removed check for no package name (refs: \fI\%#27054\fP)
  259713. .IP \(bu 2
  259714. caab21d99c Merge pull request \fI\%#27054\fP from rallytime/bp\-27029
  259715. .IP \(bu 2
  259716. 0be393be22 Removed check for no package name
  259717. .UNINDENT
  259718. .IP \(bu 2
  259719. \fBPR\fP \fI\%#27053\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26992\fP to 2015.5
  259720. @ \fI2015\-09\-11 22:29:30 UTC\fP
  259721. .INDENT 2.0
  259722. .IP \(bu 2
  259723. \fBPR\fP \fI\%#26992\fP: (\fI\%plastikos\fP) Summary requires full return information. (refs: \fI\%#27053\fP)
  259724. .IP \(bu 2
  259725. 0227e1cb57 Merge pull request \fI\%#27053\fP from rallytime/bp\-26992
  259726. .IP \(bu 2
  259727. 83798aff3c Do not use full return for documentation.
  259728. .IP \(bu 2
  259729. d9d5bbaa68 Summary requires full return information.
  259730. .UNINDENT
  259731. .IP \(bu 2
  259732. \fBPR\fP \fI\%#27052\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26930\fP to 2015.5
  259733. @ \fI2015\-09\-11 22:28:11 UTC\fP
  259734. .INDENT 2.0
  259735. .IP \(bu 2
  259736. \fBPR\fP \fI\%#26930\fP: (\fI\%madprog\fP) aptpkg.mod_repo: Raise when key_url doesn\(aqt exist (refs: \fI\%#27052\fP)
  259737. .IP \(bu 2
  259738. b72a0ef86d Merge pull request \fI\%#27052\fP from rallytime/bp\-26930
  259739. .IP \(bu 2
  259740. d9787aa318 aptpkg.mod_repo: Raise when key_url doesn\(aqt exist
  259741. .UNINDENT
  259742. .IP \(bu 2
  259743. \fBPR\fP \fI\%#27049\fP: (\fI\%johanek\fP) Run repoquery less
  259744. @ \fI2015\-09\-11 22:26:12 UTC\fP
  259745. .INDENT 2.0
  259746. .IP \(bu 2
  259747. 8b554dd16f Merge pull request \fI\%#27049\fP from johanek/repoquery\-dedupe
  259748. .IP \(bu 2
  259749. c113916a23 When running repoquery to check for available versions of packages, run once for all packages rather than once per package
  259750. .UNINDENT
  259751. .IP \(bu 2
  259752. \fBPR\fP \fI\%#27070\fP: (\fI\%stanislavb\fP) Deprecate salt.utils.iam in Carbon
  259753. @ \fI2015\-09\-11 22:01:57 UTC\fP
  259754. .INDENT 2.0
  259755. .IP \(bu 2
  259756. \fBPR\fP \fI\%#26561\fP: (\fI\%stanislavb\fP) Leave salt.utils.s3 location fallback to salt.utils.aws (refs: \fI\%#27070\fP)
  259757. .IP \(bu 2
  259758. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  259759. .IP \(bu 2
  259760. \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)
  259761. .IP \(bu 2
  259762. cc2cbf9869 Merge pull request \fI\%#27070\fP from stanislavb/2015.5
  259763. .IP \(bu 2
  259764. 1e6e5ddc9c Deprecate salt.utils.iam in Carbon
  259765. .UNINDENT
  259766. .IP \(bu 2
  259767. \fBPR\fP \fI\%#27030\fP: (\fI\%jfindlay\fP) Backport \fI\%#26938\fP
  259768. @ \fI2015\-09\-11 15:10:46 UTC\fP
  259769. .INDENT 2.0
  259770. .IP \(bu 2
  259771. \fBPR\fP \fI\%#27004\fP: (\fI\%vtek21\fP) Fix \(aqdict\(aq object has no attribute split (refs: \fI\%#27024\fP, \fI\%#27030\fP)
  259772. .IP \(bu 2
  259773. \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)
  259774. .IP \(bu 2
  259775. e23caa8ccf Merge pull request \fI\%#27030\fP from jfindlay/winreg
  259776. .IP \(bu 2
  259777. 120fbe78e0 remove trailing line in win_path exec module
  259778. .IP \(bu 2
  259779. b36a7107b2 update win_path exec module unit tests
  259780. .IP \(bu 2
  259781. a2dc6f2dd7 Fixes win_path module, migrates from reg.(set|get)_key to reg.(set|get)_value
  259782. .UNINDENT
  259783. .IP \(bu 2
  259784. \fBISSUE\fP \fI\%#25581\fP: (\fI\%b18\fP) Salt 2015.5.2 \- Could not deserialize msgpack message error. (refs: \fI\%#27025\fP)
  259785. .IP \(bu 2
  259786. \fBPR\fP \fI\%#27025\fP: (\fI\%cachedout\fP) Better try and error handling for prep_jid
  259787. @ \fI2015\-09\-11 07:40:10 UTC\fP
  259788. .INDENT 2.0
  259789. .IP \(bu 2
  259790. 843c28b435 Merge pull request \fI\%#27025\fP from cachedout/issue_25581
  259791. .IP \(bu 2
  259792. ecc09d9b93 Lint
  259793. .IP \(bu 2
  259794. bfcaab9ef4 Better try and error handling for prep_jid
  259795. .UNINDENT
  259796. .IP \(bu 2
  259797. \fBPR\fP \fI\%#27035\fP: (\fI\%terminalmage\fP) useradd.py: Use contextmanager to prevent leaked filehandles
  259798. @ \fI2015\-09\-11 07:39:41 UTC\fP
  259799. .INDENT 2.0
  259800. .IP \(bu 2
  259801. b9baa0b39a Merge pull request \fI\%#27035\fP from terminalmage/useradd\-contextmanager
  259802. .IP \(bu 2
  259803. e430e97f6c Update user states to reflect changes to login class handling
  259804. .IP \(bu 2
  259805. f24b979c7c useradd.py: Use contextmanager to prevent leaked filehandles
  259806. .UNINDENT
  259807. .IP \(bu 2
  259808. \fBPR\fP \fI\%#27034\fP: (\fI\%rallytime\fP) Update softlayer docs for where to find apikey
  259809. @ \fI2015\-09\-10 22:29:56 UTC\fP
  259810. .INDENT 2.0
  259811. .IP \(bu 2
  259812. 1cdfdf7a92 Merge pull request \fI\%#27034\fP from rallytime/softlayer\-doc\-fix
  259813. .IP \(bu 2
  259814. cb641f8145 Update softlayer docs for where to find apikey
  259815. .UNINDENT
  259816. .IP \(bu 2
  259817. \fBPR\fP \fI\%#27024\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27004\fP to 2015.5
  259818. @ \fI2015\-09\-10 21:14:21 UTC\fP
  259819. .INDENT 2.0
  259820. .IP \(bu 2
  259821. \fBPR\fP \fI\%#27004\fP: (\fI\%vtek21\fP) Fix \(aqdict\(aq object has no attribute split (refs: \fI\%#27024\fP, \fI\%#27030\fP)
  259822. .IP \(bu 2
  259823. 9e06d3f01a Merge pull request \fI\%#27024\fP from rallytime/bp\-27004
  259824. .IP \(bu 2
  259825. 54d6fcf4c7 Fix \(aqdict\(aq object has no attribute split
  259826. .IP \(bu 2
  259827. bb29d73c71 Fix \(aqdict\(aq object has no attribute split
  259828. .IP \(bu 2
  259829. 5f1a9c46aa Fix \(aqdict\(aq object has no attribute split
  259830. .IP \(bu 2
  259831. 2bfdd9724e Fix \(aqdict\(aq object has no attribute split
  259832. .UNINDENT
  259833. .IP \(bu 2
  259834. \fBPR\fP \fI\%#27027\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27013\fP to 2015.5
  259835. @ \fI2015\-09\-10 21:13:52 UTC\fP
  259836. .INDENT 2.0
  259837. .IP \(bu 2
  259838. \fBPR\fP \fI\%#27013\fP: (\fI\%nmadhok\fP) Remove unwanted debug statement (refs: \fI\%#27027\fP)
  259839. .IP \(bu 2
  259840. 9ab2cae1e4 Merge pull request \fI\%#27027\fP from rallytime/bp\-27013
  259841. .IP \(bu 2
  259842. 19a6e9cb1c Remove unwanted debug statement.
  259843. .UNINDENT
  259844. .IP \(bu 2
  259845. \fBPR\fP \fI\%#27026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27011\fP to 2015.5
  259846. @ \fI2015\-09\-10 21:13:45 UTC\fP
  259847. .INDENT 2.0
  259848. .IP \(bu 2
  259849. \fBPR\fP \fI\%#27011\fP: (\fI\%whiteinge\fP) Move giant eventlisten.sh example out of the state.event docstring (refs: \fI\%#27026\fP)
  259850. .IP \(bu 2
  259851. 2c8beb238f Merge pull request \fI\%#27026\fP from rallytime/bp\-27011
  259852. .IP \(bu 2
  259853. f8518d545f Move giant eventlisten.sh example out of the state.event docstring
  259854. .UNINDENT
  259855. .IP \(bu 2
  259856. \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)
  259857. .IP \(bu 2
  259858. \fBPR\fP \fI\%#26972\fP: (\fI\%twangboy\fP) Catch the 404 error from fileclient
  259859. @ \fI2015\-09\-10 20:53:12 UTC\fP
  259860. .INDENT 2.0
  259861. .IP \(bu 2
  259862. e8cdcc62f7 Merge pull request \fI\%#26972\fP from twangboy/fix_20522
  259863. .IP \(bu 2
  259864. 0110786fa9 Catch the 404 error from fileclient
  259865. .UNINDENT
  259866. .IP \(bu 2
  259867. \fBPR\fP \fI\%#26951\fP: (\fI\%terminalmage\fP) Fix timezone module for CentOS
  259868. @ \fI2015\-09\-10 20:46:07 UTC\fP
  259869. .INDENT 2.0
  259870. .IP \(bu 2
  259871. fbc95f4685 Merge pull request \fI\%#26951\fP from terminalmage/fix\-timezone
  259872. .IP \(bu 2
  259873. 30a4915762 Update tests to reflect changes to timezone module
  259874. .IP \(bu 2
  259875. b6f926919f Fix timezone module for CentOS
  259876. .UNINDENT
  259877. .IP \(bu 2
  259878. \fBPR\fP \fI\%#26875\fP: (\fI\%marccardinal\fP) LXC gateway provisioned only when IP is provided
  259879. @ \fI2015\-09\-10 19:31:32 UTC\fP
  259880. .INDENT 2.0
  259881. .IP \(bu 2
  259882. f2ad3c333c Merge pull request \fI\%#26875\fP from marccardinal/patch\-2
  259883. .IP \(bu 2
  259884. 36d5a62262 LXC gateway provisioned only when IP is provided
  259885. .UNINDENT
  259886. .IP \(bu 2
  259887. \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)
  259888. .IP \(bu 2
  259889. \fBPR\fP \fI\%#26997\fP: (\fI\%twangboy\fP) Fixed symlinks for windows (don\(aqt use user root)
  259890. @ \fI2015\-09\-10 18:54:50 UTC\fP
  259891. .INDENT 2.0
  259892. .IP \(bu 2
  259893. \fBPR\fP \fI\%#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26997\fP)
  259894. .IP \(bu 2
  259895. 7b2e7b1b37 Merge pull request \fI\%#26997\fP from twangboy/fix_symlink_windows
  259896. .IP \(bu 2
  259897. 89cc02d4e0 Added \fIversionadded\fP
  259898. .IP \(bu 2
  259899. 835177b0c8 Fixed symlinks for windows (don\(aqt use user root)
  259900. .UNINDENT
  259901. .IP \(bu 2
  259902. \fBPR\fP \fI\%#27001\fP: (\fI\%twangboy\fP) Added CLI Example for reg.delete_key_recursive
  259903. @ \fI2015\-09\-10 17:19:43 UTC\fP
  259904. .INDENT 2.0
  259905. .IP \(bu 2
  259906. 5389a85894 Merge pull request \fI\%#27001\fP from twangboy/fix_reg_docs
  259907. .IP \(bu 2
  259908. 2980bbda17 Minor clarification
  259909. .IP \(bu 2
  259910. 4684b2ddd1 Added CLI example for reg.delete_key_recursive
  259911. .UNINDENT
  259912. .IP \(bu 2
  259913. \fBPR\fP \fI\%#26996\fP: (\fI\%jacobhammons\fP) Beacon doc updates
  259914. @ \fI2015\-09\-10 16:47:49 UTC\fP
  259915. .INDENT 2.0
  259916. .IP \(bu 2
  259917. 37814f5dff Merge pull request \fI\%#26996\fP from jacobhammons/beacon\-doc
  259918. .IP \(bu 2
  259919. e475ea688e Fixed typo
  259920. .IP \(bu 2
  259921. 2401533d9e New content added to beacon docs.
  259922. .UNINDENT
  259923. .IP \(bu 2
  259924. \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)
  259925. .IP \(bu 2
  259926. \fBPR\fP \fI\%#26868\fP: (\fI\%joejulian\fP) Use the actual device name when checking vgdisplay
  259927. @ \fI2015\-09\-10 16:08:16 UTC\fP
  259928. .INDENT 2.0
  259929. .IP \(bu 2
  259930. 4ba7eed711 Merge pull request \fI\%#26868\fP from joejulian/2015.5_lvm_vg_symlink_fix
  259931. .IP \(bu 2
  259932. 3dfb33849a Use the actual device name when checking vgdisplay
  259933. .UNINDENT
  259934. .IP \(bu 2
  259935. \fBPR\fP \fI\%#26955\fP: (\fI\%dsumsky\fP) S3 ext_pillar module has broken caching mechanism (backport to 2015.5)
  259936. @ \fI2015\-09\-10 14:54:01 UTC\fP
  259937. .INDENT 2.0
  259938. .IP \(bu 2
  259939. 1537e945be Merge pull request \fI\%#26955\fP from dsumsky/s3\-pillar\-module\-cache\-fix\-2015.5
  259940. .IP \(bu 2
  259941. 8219acffe7 \- fixed pylint warnings
  259942. .IP \(bu 2
  259943. 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
  259944. .UNINDENT
  259945. .IP \(bu 2
  259946. \fBPR\fP \fI\%#26987\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26966\fP to 2015.5
  259947. @ \fI2015\-09\-09 18:42:51 UTC\fP
  259948. .INDENT 2.0
  259949. .IP \(bu 2
  259950. \fBPR\fP \fI\%#26966\fP: (\fI\%TheBigBear\fP) URL has changed (refs: \fI\%#26987\fP)
  259951. .IP \(bu 2
  259952. 3e902e86b1 Merge pull request \fI\%#26987\fP from rallytime/bp\-26966
  259953. .IP \(bu 2
  259954. 6a29eac003 URL has changed
  259955. .UNINDENT
  259956. .IP \(bu 2
  259957. \fBPR\fP \fI\%#26915\fP: (\fI\%rallytime\fP) Update Joyent Cloud Tests
  259958. @ \fI2015\-09\-09 15:04:50 UTC\fP
  259959. .INDENT 2.0
  259960. .IP \(bu 2
  259961. eddb532713 Merge pull request \fI\%#26915\fP from rallytime/joyent\-tests
  259962. .IP \(bu 2
  259963. d4ad42d697 Update Joyent Cloud Tests
  259964. .UNINDENT
  259965. .IP \(bu 2
  259966. \fBPR\fP \fI\%#26971\fP: (\fI\%rallytime\fP) Fix a couple of typos in reactor docs
  259967. @ \fI2015\-09\-09 15:03:54 UTC\fP
  259968. .INDENT 2.0
  259969. .IP \(bu 2
  259970. f86814b2a4 Merge pull request \fI\%#26971\fP from rallytime/reactor\-doc\-fix
  259971. .IP \(bu 2
  259972. 0214daad19 Fix a couple of typos in reactor docs
  259973. .UNINDENT
  259974. .IP \(bu 2
  259975. \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)
  259976. .INDENT 2.0
  259977. .IP \(bu 2
  259978. \fBPR\fP \fI\%saltstack/salt#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26976\fP)
  259979. .UNINDENT
  259980. .IP \(bu 2
  259981. \fBPR\fP \fI\%#26976\fP: (\fI\%thatch45\fP) Revert "file.symlink gets windows account instead of root"
  259982. @ \fI2015\-09\-08 22:44:19 UTC\fP
  259983. .INDENT 2.0
  259984. .IP \(bu 2
  259985. 57b1080f94 Merge pull request \fI\%#26976\fP from saltstack/revert\-26899\-fix_26730
  259986. .IP \(bu 2
  259987. 6dd54e6bec Revert "file.symlink gets windows account instead of root"
  259988. .UNINDENT
  259989. .IP \(bu 2
  259990. \fBPR\fP \fI\%#26975\fP: (\fI\%whiteinge\fP) Remove mocks from rest_cherrypy integration tests; fix groups check bug
  259991. @ \fI2015\-09\-08 22:34:08 UTC\fP
  259992. .INDENT 2.0
  259993. .IP \(bu 2
  259994. 67be01f5fe Merge pull request \fI\%#26975\fP from whiteinge/rest_cherrypy\-integration
  259995. .IP \(bu 2
  259996. 9a0989585b Add additional \(aqgroups\(aq check to rest_cherrypy if groups are not used
  259997. .IP \(bu 2
  259998. d68aefcfde Remove mocks from rest_cherrypy integration tests
  259999. .IP \(bu 2
  260000. 2aa3da8911 Rename the rest_cherrypy tests to conform to our convention
  260001. .UNINDENT
  260002. .IP \(bu 2
  260003. \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)
  260004. .IP \(bu 2
  260005. \fBPR\fP \fI\%#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26997\fP)
  260006. @ \fI2015\-09\-08 21:14:30 UTC\fP
  260007. .INDENT 2.0
  260008. .IP \(bu 2
  260009. 20a48f7f2e Merge pull request \fI\%#26899\fP from twangboy/fix_26730
  260010. .IP \(bu 2
  260011. 9d9b3bb47a file.symlink gets windows account instead of root
  260012. .UNINDENT
  260013. .IP \(bu 2
  260014. \fBPR\fP \fI\%#26960\fP: (\fI\%rallytime\fP) Fix bash code block formatting in CherryPy netapi docs
  260015. @ \fI2015\-09\-08 18:14:11 UTC\fP
  260016. .INDENT 2.0
  260017. .IP \(bu 2
  260018. dbc6b862f4 Merge pull request \fI\%#26960\fP from rallytime/cherrypy\-docs
  260019. .IP \(bu 2
  260020. c1420711db Fix bash code block formatting
  260021. .UNINDENT
  260022. .IP \(bu 2
  260023. \fBPR\fP \fI\%#26940\fP: (\fI\%rallytime\fP) Fix minor doc typo in client api
  260024. @ \fI2015\-09\-08 04:15:00 UTC\fP
  260025. .INDENT 2.0
  260026. .IP \(bu 2
  260027. f733e048c9 Merge pull request \fI\%#26940\fP from rallytime/api\-doc\-fix
  260028. .IP \(bu 2
  260029. 00fe6a225c Fix minor doc typo in client api
  260030. .UNINDENT
  260031. .IP \(bu 2
  260032. \fBISSUE\fP \fI\%#26850\fP: (\fI\%jfindlay\fP) salt\-ssh error on 2015.8 (refs: \fI\%#26852\fP)
  260033. .IP \(bu 2
  260034. \fBPR\fP \fI\%#26871\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26852\fP to 2015.5
  260035. @ \fI2015\-09\-08 03:43:08 UTC\fP
  260036. .INDENT 2.0
  260037. .IP \(bu 2
  260038. \fBPR\fP \fI\%#26852\fP: (\fI\%basepi\fP) [2015.8] Only reference msgpack if it imported successfully (refs: \fI\%#26871\fP)
  260039. .IP \(bu 2
  260040. de9350466e Merge pull request \fI\%#26871\fP from rallytime/bp\-26852
  260041. .IP \(bu 2
  260042. 5a4c8dd2f5 Only reference msgpack if it imported successfully
  260043. .UNINDENT
  260044. .IP \(bu 2
  260045. \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)
  260046. .IP \(bu 2
  260047. \fBISSUE\fP \fI\%#26638\fP: (\fI\%WackyOne\fP) Suse install documentation (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  260048. .IP \(bu 2
  260049. \fBPR\fP \fI\%#26851\fP: (\fI\%jacobhammons\fP) states/pkgrepo examples, suse installation updates
  260050. @ \fI2015\-09\-02 18:29:09 UTC\fP
  260051. .INDENT 2.0
  260052. .IP \(bu 2
  260053. a563af29d3 Merge pull request \fI\%#26851\fP from jacobhammons/doc\-bugs
  260054. .IP \(bu 2
  260055. ac3bd47440 states/pkgrepo examples, suse installation updates Refs \fI\%#26644\fP Refs \fI\%#26638\fP
  260056. .UNINDENT
  260057. .IP \(bu 2
  260058. \fBISSUE\fP \fI\%#26804\fP: (\fI\%lrhazi\fP) gpasswd error on RHEL 5 (refs: \fI\%#26817\fP)
  260059. .IP \(bu 2
  260060. \fBPR\fP \fI\%#26817\fP: (\fI\%jfindlay\fP) modify groupadd for rhel 5
  260061. @ \fI2015\-09\-02 14:52:53 UTC\fP
  260062. .INDENT 2.0
  260063. .IP \(bu 2
  260064. 5b1b934192 Merge pull request \fI\%#26817\fP from jfindlay/grouparg
  260065. .IP \(bu 2
  260066. 82d33939f3 modify groupadd for rhel 5
  260067. .UNINDENT
  260068. .IP \(bu 2
  260069. \fBISSUE\fP \fI\%#22724\fP: (\fI\%ty2u\fP) digital_ocean_v2.py doesn\(aqt restore snapshot (refs: \fI\%#26824\fP)
  260070. .IP \(bu 2
  260071. \fBPR\fP \fI\%#26824\fP: (\fI\%systembell\fP) [salt\-cloud] Fix creating droplet from snapshot in digital_ocean provider
  260072. @ \fI2015\-09\-02 05:18:37 UTC\fP
  260073. .INDENT 2.0
  260074. .IP \(bu 2
  260075. cdc0ea2fe3 Merge pull request \fI\%#26824\fP from pravka/fix\-droplet\-creation\-from\-snapshot\-in\-dov2
  260076. .IP \(bu 2
  260077. 00e3192536 removing log
  260078. .IP \(bu 2
  260079. e4a82d78d9 removing stringification of every value in the image dict
  260080. .IP \(bu 2
  260081. cdc2b4584a fixing condition for slug check
  260082. .UNINDENT
  260083. .IP \(bu 2
  260084. \fBISSUE\fP \fI\%#26805\fP: (\fI\%joejulian\fP) cur_param referenced before assignment (refs: \fI\%#26823\fP, \fI\%#26820\fP)
  260085. .IP \(bu 2
  260086. \fBPR\fP \fI\%#26823\fP: (\fI\%joejulian\fP) use dbus instead of localectl
  260087. @ \fI2015\-09\-02 00:25:25 UTC\fP
  260088. .INDENT 2.0
  260089. .IP \(bu 2
  260090. 4af6951a4c Merge pull request \fI\%#26823\fP from joejulian/ctlfix
  260091. .IP \(bu 2
  260092. a9928cb143 pep8 fixes
  260093. .IP \(bu 2
  260094. 6108ec4280 Gated dbus for os families that use it
  260095. .IP \(bu 2
  260096. e154c7b16f remove trailing spaces
  260097. .IP \(bu 2
  260098. c1c1266cc3 fix indent change
  260099. .IP \(bu 2
  260100. 0a35320aa7 Use dbus directly
  260101. .UNINDENT
  260102. .IP \(bu 2
  260103. \fBISSUE\fP \fI\%#26805\fP: (\fI\%joejulian\fP) cur_param referenced before assignment (refs: \fI\%#26823\fP, \fI\%#26820\fP)
  260104. .IP \(bu 2
  260105. \fBPR\fP \fI\%#26820\fP: (\fI\%jfindlay\fP) add default param in _parse_localectl in locale mod
  260106. @ \fI2015\-09\-01 22:02:17 UTC\fP
  260107. .INDENT 2.0
  260108. .IP \(bu 2
  260109. a1749b76b8 Merge pull request \fI\%#26820\fP from jfindlay/ctlfix
  260110. .IP \(bu 2
  260111. 3a2c0d5fbb add default param in _parse_localectl in locale mod
  260112. .UNINDENT
  260113. .IP \(bu 2
  260114. \fBISSUE\fP \fI\%#26788\fP: (\fI\%ssgward\fP) Windows minion user.rename gives exception (refs: \fI\%#26821\fP)
  260115. .IP \(bu 2
  260116. \fBPR\fP \fI\%#26821\fP: (\fI\%twangboy\fP) Fixed user.rename function in windows
  260117. @ \fI2015\-09\-01 22:01:50 UTC\fP
  260118. .INDENT 2.0
  260119. .IP \(bu 2
  260120. ff733547c4 Merge pull request \fI\%#26821\fP from twangboy/fix_26788
  260121. .IP \(bu 2
  260122. cf979e4877 Fixed user.rename function in windows
  260123. .UNINDENT
  260124. .IP \(bu 2
  260125. \fBISSUE\fP \fI\%#26754\fP: (\fI\%jefftucker\fP) MySQLdb\-python package should be included with windows minion installer (refs: \fI\%#26803\fP)
  260126. .IP \(bu 2
  260127. \fBPR\fP \fI\%#26803\fP: (\fI\%twangboy\fP) Added check for PyMySQL if MySQLdb import fails
  260128. @ \fI2015\-09\-01 21:44:41 UTC\fP
  260129. .INDENT 2.0
  260130. .IP \(bu 2
  260131. c892be3255 Merge pull request \fI\%#26803\fP from twangboy/fix_26754
  260132. .IP \(bu 2
  260133. 23576c65eb Added check for PyMySQL if MySQLdb import fails
  260134. .UNINDENT
  260135. .IP \(bu 2
  260136. \fBISSUE\fP \fI\%#26798\fP: (\fI\%jfindlay\fP) stack trace from linode driver (refs: \fI\%#26815\fP)
  260137. .IP \(bu 2
  260138. \fBPR\fP \fI\%#26815\fP: (\fI\%jfindlay\fP) stringify linode id before performing str actions
  260139. @ \fI2015\-09\-01 17:56:29 UTC\fP
  260140. .INDENT 2.0
  260141. .IP \(bu 2
  260142. 6edfa36083 Merge pull request \fI\%#26815\fP from jfindlay/linstr
  260143. .IP \(bu 2
  260144. 2ff5823944 stringify linode id before performing str actions
  260145. .UNINDENT
  260146. .IP \(bu 2
  260147. \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)
  260148. .IP \(bu 2
  260149. \fBISSUE\fP \fI\%#26638\fP: (\fI\%WackyOne\fP) Suse install documentation (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  260150. .IP \(bu 2
  260151. \fBISSUE\fP \fI\%#26192\fP: (\fI\%jefftucker\fP) Logging documentation does not exist (refs: \fI\%#26800\fP)
  260152. .IP \(bu 2
  260153. \fBISSUE\fP \fI\%#26108\fP: (\fI\%ahammond\fP) documentation around scheduling and orchestration is unclear (refs: \fI\%#26800\fP)
  260154. .IP \(bu 2
  260155. \fBISSUE\fP \fI\%#24510\fP: (\fI\%ahammond\fP) lack of documentation around Denied Keys (refs: \fI\%#26800\fP)
  260156. .IP \(bu 2
  260157. \fBPR\fP \fI\%#26800\fP: (\fI\%jacobhammons\fP) Doc bug fixes
  260158. @ \fI2015\-09\-01 05:40:09 UTC\fP
  260159. .INDENT 2.0
  260160. .IP \(bu 2
  260161. 135a8a64af Merge pull request \fI\%#26800\fP from jacobhammons/doc\-fixes
  260162. .IP \(bu 2
  260163. 5cca52a3c1 Fixed windows installer paths Refs \fI\%#25567\fP
  260164. .IP \(bu 2
  260165. 0ec036350d Updates to salt\-ssh and salt\-key \fI\%#24510\fP
  260166. .IP \(bu 2
  260167. 992edc3bb8 Doc bug fixes Refs \fI\%#26192\fP Refs \fI\%#26638\fP Refs \fI\%#26644\fP Refs \fI\%#26108\fP
  260168. .UNINDENT
  260169. .IP \(bu 2
  260170. \fBISSUE\fP \fI\%#24021\fP: (\fI\%arthurlogilab\fP) [salt\-cloud saltify] AttributeError: \(aqstr\(aq object has no attribute \(aqsetdefault\(aq (refs: \fI\%#26793\fP)
  260171. .IP \(bu 2
  260172. \fBPR\fP \fI\%#26793\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if "name" is specified as a minion id in a map file
  260173. @ \fI2015\-08\-31 19:24:25 UTC\fP
  260174. .INDENT 2.0
  260175. .IP \(bu 2
  260176. da161b9516 Merge pull request \fI\%#26793\fP from rallytime/fix\-name\-stacktrace
  260177. .IP \(bu 2
  260178. 8601e4b341 Don\(aqt stacktrace if "name" is specified as a minion id in a map file
  260179. .UNINDENT
  260180. .IP \(bu 2
  260181. \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)
  260182. .IP \(bu 2
  260183. \fBPR\fP \fI\%#26790\fP: (\fI\%rallytime\fP) Update Saltify docs to be more accurate and helpful
  260184. @ \fI2015\-08\-31 18:17:31 UTC\fP
  260185. .INDENT 2.0
  260186. .IP \(bu 2
  260187. 7c8d0a09f6 Merge pull request \fI\%#26790\fP from rallytime/saltify_docs
  260188. .IP \(bu 2
  260189. d53754f2b7 Update Saltify docs to be more accurate and helpful
  260190. .UNINDENT
  260191. .IP \(bu 2
  260192. \fBISSUE\fP \fI\%#26773\fP: (\fI\%styro\fP) salt\-call minor breakage on Windows (refs: \fI\%#26775\fP)
  260193. .IP \(bu 2
  260194. \fBPR\fP \fI\%#26787\fP: (\fI\%jfindlay\fP) merge \fI\%#26775\fP
  260195. @ \fI2015\-08\-31 17:52:45 UTC\fP
  260196. .INDENT 2.0
  260197. .IP \(bu 2
  260198. \fBPR\fP \fI\%#26775\fP: (\fI\%styro\fP) Fix some leftover non portable exitcodes. (refs: \fI\%#26787\fP)
  260199. .IP \(bu 2
  260200. 70d0268c83 Merge pull request \fI\%#26787\fP from jfindlay/imp
  260201. .IP \(bu 2
  260202. e5bbf59ec7 disable import lint in run.py
  260203. .IP \(bu 2
  260204. 8aef725243 Restore blank lines again.
  260205. .IP \(bu 2
  260206. 1710070f61 Restore blank line.
  260207. .IP \(bu 2
  260208. 59d61a8dea os module no longer required.
  260209. .IP \(bu 2
  260210. f1b8d0d509 Add missing imports.
  260211. .IP \(bu 2
  260212. 7bd8809e23 Fix some non portable exitcodes. Fixes \fI\%#26773\fP
  260213. .UNINDENT
  260214. .IP \(bu 2
  260215. \fBPR\fP \fI\%#26759\fP: (\fI\%terminalmage\fP) Backport PR \fI\%#26726\fP to 2015.5 branch
  260216. @ \fI2015\-08\-31 14:39:20 UTC\fP
  260217. .INDENT 2.0
  260218. .IP \(bu 2
  260219. \fBPR\fP \fI\%#26726\fP: (\fI\%terminalmage\fP) Redact HTTPS Basic Auth in states/funcs which deal with git remotes (refs: \fI\%#26759\fP)
  260220. .IP \(bu 2
  260221. 645998dbd3 Merge pull request \fI\%#26759\fP from terminalmage/bp\-26726
  260222. .IP \(bu 2
  260223. d7f7fca7e5 More cleanup from moving auth redaction to salt.utils.url
  260224. .IP \(bu 2
  260225. 07db5a7038 fix redaction
  260226. .IP \(bu 2
  260227. 399871e6dd Add auth redaction flags to git exec module and use them in git state
  260228. .IP \(bu 2
  260229. 776dc38d73 check for ValueError when adding http basic auth
  260230. .IP \(bu 2
  260231. d2eb1f4340 Rename arguments in salt.utils.url.add_http_basic_auth
  260232. .IP \(bu 2
  260233. b45f37a467 Add http basic auth tests
  260234. .IP \(bu 2
  260235. 1ed42ea4fd Remove git unit tests, moving them to salt.utils.url tests
  260236. .IP \(bu 2
  260237. 96a55cdb59 Remove unused imports
  260238. .IP \(bu 2
  260239. 1f25a859bd Redact HTTPS Basic Auth data from remote URLs in comments and changes dict
  260240. .IP \(bu 2
  260241. eafeb6c7bf Automatically redact HTTPS basic auth
  260242. .IP \(bu 2
  260243. 6be3f8f9e1 Add support for callbacks to influence what information about commands is logged
  260244. .IP \(bu 2
  260245. c36f240a87 Add HTTPS Basic Auth funcs to salt.utils.url
  260246. .UNINDENT
  260247. .IP \(bu 2
  260248. \fBISSUE\fP \fI\%#26628\fP: (\fI\%MadsRC\fP) state.ipset tries to parse wrong data (refs: \fI\%#26768\fP)
  260249. .IP \(bu 2
  260250. \fBPR\fP \fI\%#26768\fP: (\fI\%garethgreenaway\fP) Fixes to ipset in 2015.5 for \fI\%#26628\fP
  260251. @ \fI2015\-08\-29 03:24:07 UTC\fP
  260252. .INDENT 2.0
  260253. .IP \(bu 2
  260254. 46a4bbd0e7 Merge pull request \fI\%#26768\fP from garethgreenaway/26628_2015_5_ipset_fixes
  260255. .IP \(bu 2
  260256. f0c6090c7e Fixing issue when information returned from ipset isn\(aqt in the format we expect and it causes an exception.
  260257. .UNINDENT
  260258. .IP \(bu 2
  260259. \fBISSUE\fP \fI\%#26732\fP: (\fI\%saltstack\-bot\fP) SmartOS pkgsrc dependency (refs: \fI\%#26753\fP)
  260260. .IP \(bu 2
  260261. \fBPR\fP \fI\%#26753\fP: (\fI\%jfindlay\fP) import elementree from _compat in ilo exec mod
  260262. @ \fI2015\-08\-28 20:56:45 UTC\fP
  260263. .INDENT 2.0
  260264. .IP \(bu 2
  260265. 7a58878ea8 Merge pull request \fI\%#26753\fP from jfindlay/iloet
  260266. .IP \(bu 2
  260267. 211a02754f import elementree from _compat in ilo exec mod
  260268. .UNINDENT
  260269. .IP \(bu 2
  260270. \fBISSUE\fP \fI\%#21256\fP: (\fI\%dhs\-rec\fP) win.exe package for RH 6 (refs: \fI\%#26736\fP)
  260271. .IP \(bu 2
  260272. \fBPR\fP \fI\%#26736\fP: (\fI\%twangboy\fP) Changed import from smbconnection to smb3
  260273. @ \fI2015\-08\-28 17:23:42 UTC\fP
  260274. .INDENT 2.0
  260275. .IP \(bu 2
  260276. 22dbce8d61 Merge pull request \fI\%#26736\fP from twangboy/fix_21256
  260277. .IP \(bu 2
  260278. 86f425c669 Changed import from smbconnection to smb3
  260279. .UNINDENT
  260280. .IP \(bu 2
  260281. \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)
  260282. .IP \(bu 2
  260283. \fBPR\fP \fI\%#26714\fP: (\fI\%jfindlay\fP) add exception placeholder for older msgpacks
  260284. @ \fI2015\-08\-28 16:02:35 UTC\fP
  260285. .INDENT 2.0
  260286. .IP \(bu 2
  260287. 16d4e0350d Merge pull request \fI\%#26714\fP from jfindlay/pack_except
  260288. .IP \(bu 2
  260289. ebcfaf9050 add exception placeholder for older msgpacks
  260290. .UNINDENT
  260291. .IP \(bu 2
  260292. \fBPR\fP \fI\%#26710\fP: (\fI\%rallytime\fP) Update GCE driver to return True, False or a new name in __virtual__()
  260293. @ \fI2015\-08\-27 20:08:17 UTC\fP
  260294. .INDENT 2.0
  260295. .IP \(bu 2
  260296. 47faa8cc16 Merge pull request \fI\%#26710\fP from rallytime/gce_virtual_return
  260297. .IP \(bu 2
  260298. e6b74879d7 Remove unused import
  260299. .IP \(bu 2
  260300. 78e31585cf Update GCE driver to return True, False or a new name in __virtual__()
  260301. .UNINDENT
  260302. .IP \(bu 2
  260303. \fBISSUE\fP \fI\%#14612\fP: (\fI\%cachedout\fP) Catch provider errors in salt cloud (refs: \fI\%#26709\fP)
  260304. .IP \(bu 2
  260305. \fBPR\fP \fI\%#26709\fP: (\fI\%rallytime\fP) Ensure VM name is valid before trying to create Linode VM
  260306. @ \fI2015\-08\-27 20:07:49 UTC\fP
  260307. .INDENT 2.0
  260308. .IP \(bu 2
  260309. cf487cf0f5 Merge pull request \fI\%#26709\fP from rallytime/fix\-14612
  260310. .IP \(bu 2
  260311. bc21094ea0 versionadded and more efficient checks
  260312. .IP \(bu 2
  260313. a3ac8e7008 Whitespace fix
  260314. .IP \(bu 2
  260315. 9a4228d906 Added unit tests for new _validate_name function and adjusted regex
  260316. .IP \(bu 2
  260317. 388815112c Ensure VM name is valid before trying to create Linode VM
  260318. .UNINDENT
  260319. .IP \(bu 2
  260320. \fBISSUE\fP \fI\%#9592\fP: (\fI\%otrempe\fP) pip module fails on Windows because of quoting (refs: \fI\%#26617\fP)
  260321. .IP \(bu 2
  260322. \fBPR\fP \fI\%#26617\fP: (\fI\%terminalmage\fP) Fix Windows failures in pip module due to raw string formatting
  260323. @ \fI2015\-08\-27 19:24:53 UTC\fP
  260324. .INDENT 2.0
  260325. .IP \(bu 2
  260326. c3a6280f8c Merge pull request \fI\%#26617\fP from terminalmage/issue9592
  260327. .IP \(bu 2
  260328. 96c3df1ed5 Don\(aqt accept non\-list input for pkgs arg
  260329. .IP \(bu 2
  260330. 419221535b Lint fix
  260331. .IP \(bu 2
  260332. ede057eebc Fix tests to reflect args being passed as lists instead of strings
  260333. .IP \(bu 2
  260334. 03250dbd9f Pass command to cmd.run_all as list instead of joining
  260335. .IP \(bu 2
  260336. 1c90cdb07e salt/modules/pip.py: Remove raw string format flags
  260337. .IP \(bu 2
  260338. cd35df5ff8 Catch TypeErrors in timed_subprocess
  260339. .UNINDENT
  260340. .IP \(bu 2
  260341. \fBPR\fP \fI\%#26700\fP: (\fI\%kev009\fP) Ignore the first element of kern.disks split, which is the sysctl name
  260342. @ \fI2015\-08\-27 17:48:02 UTC\fP
  260343. .INDENT 2.0
  260344. .IP \(bu 2
  260345. 24a4f54f39 Merge pull request \fI\%#26700\fP from kev009/fbsd\-disks\-fix\-2015.5
  260346. .IP \(bu 2
  260347. 3ac97f9de4 Ignore the first element of kern.disks split, which is the sysctl name
  260348. .UNINDENT
  260349. .IP \(bu 2
  260350. \fBPR\fP \fI\%#26695\fP: (\fI\%terminalmage\fP) Better HTTPS basic auth redaction for 2015.5 branch
  260351. @ \fI2015\-08\-27 15:10:38 UTC\fP
  260352. .INDENT 2.0
  260353. .IP \(bu 2
  260354. 58945131b5 Merge pull request \fI\%#26695\fP from terminalmage/better\-https\-auth\-redaction\-2015.5
  260355. .IP \(bu 2
  260356. 752d260209 Use versioninfo tuple for comparison
  260357. .IP \(bu 2
  260358. b1d253483e Better HTTPS basic auth redaction for 2015.5 branch
  260359. .UNINDENT
  260360. .IP \(bu 2
  260361. \fBPR\fP \fI\%#26694\fP: (\fI\%terminalmage\fP) Backport \fI\%#26693\fP to 2015.5
  260362. @ \fI2015\-08\-27 08:16:30 UTC\fP
  260363. .INDENT 2.0
  260364. .IP \(bu 2
  260365. \fBPR\fP \fI\%#26693\fP: (\fI\%serge\-p\fP) Update openbsdpkg.py (refs: \fI\%#26694\fP)
  260366. .IP \(bu 2
  260367. 4040a312f9 Merge pull request \fI\%#26694\fP from terminalmage/bp\-26693
  260368. .IP \(bu 2
  260369. 4aec926476 Update openbsdpkg.py
  260370. .UNINDENT
  260371. .IP \(bu 2
  260372. \fBPR\fP \fI\%#26681\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260373. @ \fI2015\-08\-26 22:03:07 UTC\fP
  260374. .INDENT 2.0
  260375. .IP \(bu 2
  260376. 0b17f80fe9 Merge pull request \fI\%#26681\fP from basepi/merge\-forward\-2015.5
  260377. .IP \(bu 2
  260378. 64cad371f0 Remove overmocked test
  260379. .IP \(bu 2
  260380. 40718af1d5 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260381. .IP \(bu 2
  260382. c2c7fe06c8 Merge pull request \fI\%#26667\fP from nmadhok/doc\-fix\-2014.7
  260383. .INDENT 2.0
  260384. .IP \(bu 2
  260385. 26be189689 Doc fix. Fixes \fI\%#26656\fP
  260386. .UNINDENT
  260387. .IP \(bu 2
  260388. 6bd3dccae8 Merge pull request \fI\%#26663\fP from jacobhammons/2014.7\-version
  260389. .INDENT 2.0
  260390. .IP \(bu 2
  260391. b6af538070 version change for latest branch
  260392. .UNINDENT
  260393. .IP \(bu 2
  260394. 071a6112e5 Merge pull request \fI\%#26636\fP from rallytime/cloud\-test\-fixes
  260395. .INDENT 2.0
  260396. .IP \(bu 2
  260397. c0d83d558d Don\(aqt use id as variable
  260398. .IP \(bu 2
  260399. 2b4bc1679d Keep ec2 instance creation test the same \- it works better for the ec2 output
  260400. .IP \(bu 2
  260401. b5b58eb31f Skip digital ocean tests since we can\(aqt use API v1 with v2 tests
  260402. .IP \(bu 2
  260403. 9ae1539c62 Update cloud tests to be more efficient and accurate
  260404. .UNINDENT
  260405. .IP \(bu 2
  260406. 304542b4c6 Merge pull request \fI\%#26640\fP from efficks/fixws2014
  260407. .INDENT 2.0
  260408. .IP \(bu 2
  260409. ebe5d9d85c Fix function spacing
  260410. .UNINDENT
  260411. .UNINDENT
  260412. .IP \(bu 2
  260413. \fBPR\fP \fI\%#26676\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26648\fP to 2015.5
  260414. @ \fI2015\-08\-26 19:46:01 UTC\fP
  260415. .INDENT 2.0
  260416. .IP \(bu 2
  260417. \fBPR\fP \fI\%#26648\fP: (\fI\%whiteinge\fP) Free \(aqfun\(aq from the function signature namespace (refs: \fI\%#26676\fP)
  260418. .IP \(bu 2
  260419. 75675a6ba9 Merge pull request \fI\%#26676\fP from rallytime/bp\-26648
  260420. .IP \(bu 2
  260421. 1af42eed36 Free \(aqfun\(aq from the function signature namespace
  260422. .UNINDENT
  260423. .IP \(bu 2
  260424. \fBPR\fP \fI\%#26677\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26653\fP to 2015.5
  260425. @ \fI2015\-08\-26 19:45:54 UTC\fP
  260426. .INDENT 2.0
  260427. .IP \(bu 2
  260428. \fBPR\fP \fI\%#26653\fP: (\fI\%dmyerscough\fP) You can provide a X\-Auth\-Token when requesting jobs (refs: \fI\%#26677\fP)
  260429. .IP \(bu 2
  260430. d7f682cb5b Merge pull request \fI\%#26677\fP from rallytime/bp\-26653
  260431. .IP \(bu 2
  260432. 497ca96039 You can provide a X\-Auth\-Token when requesting jobs
  260433. .UNINDENT
  260434. .IP \(bu 2
  260435. \fBPR\fP \fI\%#26675\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26631\fP to 2015.5
  260436. @ \fI2015\-08\-26 19:44:59 UTC\fP
  260437. .INDENT 2.0
  260438. .IP \(bu 2
  260439. \fBPR\fP \fI\%#26631\fP: (\fI\%PierreR\fP) Fix get_load in postgres returner (refs: \fI\%#26675\fP)
  260440. .IP \(bu 2
  260441. 960dbba7ed Merge pull request \fI\%#26675\fP from rallytime/bp\-26631
  260442. .IP \(bu 2
  260443. 20eecdc7be Fix get_load
  260444. .UNINDENT
  260445. .IP \(bu 2
  260446. \fBPR\fP \fI\%#26655\fP: (\fI\%damonzheng\fP) Update win_dns_client.py
  260447. @ \fI2015\-08\-26 16:05:26 UTC\fP
  260448. .INDENT 2.0
  260449. .IP \(bu 2
  260450. db30926ac9 Merge pull request \fI\%#26655\fP from cheng0919/2015.5
  260451. .IP \(bu 2
  260452. fdebc01def Update win_dns_client.py
  260453. .IP \(bu 2
  260454. 1d23d5e797 Update win_dns_client.py
  260455. .IP \(bu 2
  260456. 1a45db0fb7 Update win_dns_client.py
  260457. .UNINDENT
  260458. .IP \(bu 2
  260459. \fBPR\fP \fI\%#26662\fP: (\fI\%jacobhammons\fP) update version to 2015.5
  260460. @ \fI2015\-08\-26 13:45:44 UTC\fP
  260461. .INDENT 2.0
  260462. .IP \(bu 2
  260463. a04d243471 Merge pull request \fI\%#26662\fP from jacobhammons/version
  260464. .IP \(bu 2
  260465. 4e5766fdde update version to 2015.5
  260466. .UNINDENT
  260467. .IP \(bu 2
  260468. \fBPR\fP \fI\%#26651\fP: (\fI\%jfindlay\fP) add 2015.5.4 notes to 2015.5.5 notes
  260469. @ \fI2015\-08\-26 00:25:28 UTC\fP
  260470. .INDENT 2.0
  260471. .IP \(bu 2
  260472. 8a9a076ad4 Merge pull request \fI\%#26651\fP from jfindlay/2015.5
  260473. .IP \(bu 2
  260474. dc5cee5f8f add 2015.5.4 notes to 2015.5.5 notes
  260475. .UNINDENT
  260476. .IP \(bu 2
  260477. \fBISSUE\fP \fI\%#26497\fP: (\fI\%JensRantil\fP) Feature request: Make salt.states.managed support local file \fIsource\fP (refs: \fI\%#26525\fP)
  260478. .IP \(bu 2
  260479. \fBPR\fP \fI\%#26525\fP: (\fI\%jfindlay\fP) document check_file_meta args, remove unused arg
  260480. @ \fI2015\-08\-25 21:43:46 UTC\fP
  260481. .INDENT 2.0
  260482. .IP \(bu 2
  260483. 5bdefdc234 Merge pull request \fI\%#26525\fP from jfindlay/sum
  260484. .IP \(bu 2
  260485. 0297d49aa0 remove unused check_file_meta arg
  260486. .IP \(bu 2
  260487. 6a3cb1c0aa document args to file.check_file_meta exec fcn
  260488. .UNINDENT
  260489. .IP \(bu 2
  260490. \fBPR\fP \fI\%#26561\fP: (\fI\%stanislavb\fP) Leave salt.utils.s3 location fallback to salt.utils.aws (refs: \fI\%#27070\fP)
  260491. @ \fI2015\-08\-25 21:40:30 UTC\fP
  260492. .INDENT 2.0
  260493. .IP \(bu 2
  260494. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  260495. .IP \(bu 2
  260496. \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)
  260497. .IP \(bu 2
  260498. 84e96458b3 Merge pull request \fI\%#26561\fP from stanislavb/2015.5
  260499. .IP \(bu 2
  260500. 50332895a1 Leave salt.utils.s3 location fallback to salt.utils.aws
  260501. .UNINDENT
  260502. .IP \(bu 2
  260503. \fBISSUE\fP \fI\%#22550\fP: (\fI\%amendlik\fP) Error deleting SSH keys using salt\-cloud \-\-destroy (refs: \fI\%#26573\fP)
  260504. .IP \(bu 2
  260505. \fBPR\fP \fI\%#26573\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if using private_ips and delete_sshkeys together
  260506. @ \fI2015\-08\-25 20:00:23 UTC\fP
  260507. .INDENT 2.0
  260508. .IP \(bu 2
  260509. 1d729734cc Merge pull request \fI\%#26573\fP from rallytime/destroy_ssh_keys_private_ips
  260510. .IP \(bu 2
  260511. 4267509c25 Don\(aqt stacktrace if using private_ips and delete_sshkeys
  260512. .UNINDENT
  260513. .IP \(bu 2
  260514. \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)
  260515. .IP \(bu 2
  260516. \fBPR\fP \fI\%#26563\fP: (\fI\%rallytime\fP) Fix error detection when salt\-cloud config is missing a master\(aqs address
  260517. @ \fI2015\-08\-25 20:00:11 UTC\fP
  260518. .INDENT 2.0
  260519. .IP \(bu 2
  260520. 000e5a2acf Merge pull request \fI\%#26563\fP from rallytime/fix\-20169
  260521. .IP \(bu 2
  260522. 65b285d02d Only warn if master IP is unset \- must be compatible with masterless minions
  260523. .IP \(bu 2
  260524. a4c87fcf57 Simplify logic
  260525. .IP \(bu 2
  260526. 593ead08cf Fix error detection when salt\-cloud config is missing a master\(aqs address
  260527. .UNINDENT
  260528. .IP \(bu 2
  260529. \fBPR\fP \fI\%#26641\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260530. @ \fI2015\-08\-25 18:17:46 UTC\fP
  260531. .INDENT 2.0
  260532. .IP \(bu 2
  260533. 19c7a6d575 Merge pull request \fI\%#26641\fP from basepi/merge\-forward\-2015.5
  260534. .IP \(bu 2
  260535. a5dafa436c Already fixed on 2015.5
  260536. .IP \(bu 2
  260537. 71c0898fb5 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260538. .IP \(bu 2
  260539. 4532f98a76 Merge pull request \fI\%#26515\fP from bersace/salt\-env\-local\-sls
  260540. .IP \(bu 2
  260541. 0727af9e3d Defaults to current saltenv in state.sls
  260542. .UNINDENT
  260543. .IP \(bu 2
  260544. \fBPR\fP \fI\%#26620\fP: (\fI\%rallytime\fP) Also add \-Z to script args for cloud tests
  260545. @ \fI2015\-08\-24 22:03:24 UTC\fP
  260546. .INDENT 2.0
  260547. .IP \(bu 2
  260548. 2927859c8a Merge pull request \fI\%#26620\fP from rallytime/more_script_args
  260549. .IP \(bu 2
  260550. 9ae27193d8 Also add \-Z to script args for cloud tests
  260551. .UNINDENT
  260552. .IP \(bu 2
  260553. \fBPR\fP \fI\%#26618\fP: (\fI\%rallytime\fP) Add script_args: \(aq\-P\(aq to Ubuntu 14 profiles for nightly cloud tests
  260554. @ \fI2015\-08\-24 21:15:24 UTC\fP
  260555. .INDENT 2.0
  260556. .IP \(bu 2
  260557. ed166ebd4f Merge pull request \fI\%#26618\fP from rallytime/pip\-undate\-cloud\-tests
  260558. .IP \(bu 2
  260559. 5a2c8825ba Extra lines
  260560. .IP \(bu 2
  260561. d28672b69e Add script_args: \(aq\-P\(aq to Ubuntu 14 profiles for nightly cloud tests
  260562. .UNINDENT
  260563. .IP \(bu 2
  260564. \fBPR\fP \fI\%#26612\fP: (\fI\%rallytime\fP) Use an available image to test against
  260565. @ \fI2015\-08\-24 19:09:18 UTC\fP
  260566. .INDENT 2.0
  260567. .IP \(bu 2
  260568. 6d3927bed5 Merge pull request \fI\%#26612\fP from rallytime/fix\-do\-list\-images\-test
  260569. .IP \(bu 2
  260570. 1401255287 Use an available image to test against
  260571. .UNINDENT
  260572. .IP \(bu 2
  260573. \fBISSUE\fP \fI\%#15590\fP: (\fI\%jtratner\fP) salt\-cloud gce configuration check incorrect (refs: \fI\%#26576\fP)
  260574. .IP \(bu 2
  260575. \fBPR\fP \fI\%#26576\fP: (\fI\%rallytime\fP) Ensure GCE and EC2 configuration checks are correct
  260576. @ \fI2015\-08\-23 18:59:46 UTC\fP
  260577. .INDENT 2.0
  260578. .IP \(bu 2
  260579. 991bbf63fe Merge pull request \fI\%#26576\fP from rallytime/fix\-14604
  260580. .IP \(bu 2
  260581. ac67a1d238 Ensure GCE configuration check is correct
  260582. .IP \(bu 2
  260583. 421f1fde1e Ensure EC2 configuration check is correct
  260584. .UNINDENT
  260585. .IP \(bu 2
  260586. \fBISSUE\fP \fI\%#12225\fP: (\fI\%arthurlogilab\fP) [salt\-cloud] Attribution of floating IPs works partially in parallel mode (refs: \fI\%#26580\fP)
  260587. .IP \(bu 2
  260588. \fBPR\fP \fI\%#26580\fP: (\fI\%rallytime\fP) Avoid race condition when assigning floating IPs to new VMs
  260589. @ \fI2015\-08\-23 18:58:48 UTC\fP
  260590. .INDENT 2.0
  260591. .IP \(bu 2
  260592. 746c0008a9 Merge pull request \fI\%#26580\fP from rallytime/fix\-12225
  260593. .IP \(bu 2
  260594. e3f7db17cc Avoid race condition when assigning floating IPs to new VMs
  260595. .IP \(bu 2
  260596. afda31be74 Create _assign_floating_ips function for DRY
  260597. .UNINDENT
  260598. .IP \(bu 2
  260599. \fBPR\fP \fI\%#26581\fP: (\fI\%terminalmage\fP) Skip tests that don\(aqt work with older mock
  260600. @ \fI2015\-08\-22 23:06:27 UTC\fP
  260601. .INDENT 2.0
  260602. .IP \(bu 2
  260603. 965a4ba7cf Merge pull request \fI\%#26581\fP from terminalmage/fix\-tests
  260604. .IP \(bu 2
  260605. 49d8bd1dbe Remove unused import
  260606. .IP \(bu 2
  260607. 81a0d4c915 Skip tests that don\(aqt work with older mock
  260608. .UNINDENT
  260609. .IP \(bu 2
  260610. \fBISSUE\fP \fI\%#25478\fP: (\fI\%zyio\fP) salt\-ssh \- Unable to locate current thin version (refs: \fI\%#25862\fP)
  260611. .IP \(bu 2
  260612. \fBISSUE\fP \fI\%#25026\fP: (\fI\%sylvia\-wang\fP) salt\-ssh "Failure deploying thin" when using salt module functions (refs: \fI\%#25862\fP)
  260613. .IP \(bu 2
  260614. \fBPR\fP \fI\%#26591\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26554\fP to 2015.5
  260615. @ \fI2015\-08\-22 21:19:02 UTC\fP
  260616. .INDENT 2.0
  260617. .IP \(bu 2
  260618. \fBPR\fP \fI\%#26554\fP: (\fI\%tjstansell\fP) /bin/sh is more portable than /bin/bash (refs: \fI\%#26591\fP)
  260619. .IP \(bu 2
  260620. \fBPR\fP \fI\%#25862\fP: (\fI\%zyio\fP) Adding SCP_NOT_FOUND exit code (refs: \fI\%#26554\fP)
  260621. .IP \(bu 2
  260622. 19992c1450 Merge pull request \fI\%#26591\fP from rallytime/bp\-26554
  260623. .IP \(bu 2
  260624. 6f8bed88cb /bin/sh is more portable than /bin/bash
  260625. .UNINDENT
  260626. .IP \(bu 2
  260627. \fBPR\fP \fI\%#26565\fP: (\fI\%cachedout\fP) Fix many errors with __virtual__ in tests
  260628. @ \fI2015\-08\-21 21:37:54 UTC\fP
  260629. .INDENT 2.0
  260630. .IP \(bu 2
  260631. 2cd36c7ed4 Merge pull request \fI\%#26565\fP from cachedout/fix_virtual_warnings
  260632. .IP \(bu 2
  260633. 41541e4e2b Fix many errors with __virtual__ in tests
  260634. .UNINDENT
  260635. .IP \(bu 2
  260636. \fBISSUE\fP \fI\%#19249\fP: (\fI\%ahetmanski\fP) Cannot create cache_dir salt master exception. (refs: \fI\%#26548\fP)
  260637. .IP \(bu 2
  260638. \fBPR\fP \fI\%#26553\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26548\fP to 2015.5
  260639. @ \fI2015\-08\-21 17:40:21 UTC\fP
  260640. .INDENT 2.0
  260641. .IP \(bu 2
  260642. \fBPR\fP \fI\%#26548\fP: (\fI\%vakulich\fP) Catch OSError during cache directories creation, fixes \fI\%#19249\fP (refs: \fI\%#26553\fP)
  260643. .IP \(bu 2
  260644. 5a32664efd Merge pull request \fI\%#26553\fP from rallytime/bp\-26548
  260645. .IP \(bu 2
  260646. ec2b2c3e40 Catch OSError during cache directories creation, fixes \fI\%#19249\fP
  260647. .UNINDENT
  260648. .IP \(bu 2
  260649. \fBPR\fP \fI\%#26552\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26542\fP to 2015.5
  260650. @ \fI2015\-08\-21 17:40:11 UTC\fP
  260651. .INDENT 2.0
  260652. .IP \(bu 2
  260653. \fBPR\fP \fI\%#26542\fP: (\fI\%arthurlogilab\fP) [doc] reactor documentation fix : returners (refs: \fI\%#26552\fP)
  260654. .IP \(bu 2
  260655. 7e67e48656 Merge pull request \fI\%#26552\fP from rallytime/bp\-26542
  260656. .IP \(bu 2
  260657. 0976b1e23b [doc] reactor documentation fix : returners
  260658. .UNINDENT
  260659. .IP \(bu 2
  260660. \fBPR\fP \fI\%#26551\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26539\fP to 2015.5
  260661. @ \fI2015\-08\-21 17:39:22 UTC\fP
  260662. .INDENT 2.0
  260663. .IP \(bu 2
  260664. \fBPR\fP \fI\%#26539\fP: (\fI\%carlpett\fP) Doc\-fix: Escape backslash in domain\e\eusername (refs: \fI\%#26551\fP)
  260665. .IP \(bu 2
  260666. bcd462545d Merge pull request \fI\%#26551\fP from rallytime/bp\-26539
  260667. .IP \(bu 2
  260668. 94ff4cff40 Doc\-fix: Escape backslash in domainusername
  260669. .UNINDENT
  260670. .IP \(bu 2
  260671. \fBPR\fP \fI\%#26549\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26524\fP to 2015.5
  260672. @ \fI2015\-08\-21 17:38:50 UTC\fP
  260673. .INDENT 2.0
  260674. .IP \(bu 2
  260675. \fBPR\fP \fI\%#26524\fP: (\fI\%JensRantil\fP) Gracefully handle package comparison not in (\-1, 0, 1) (refs: \fI\%#26549\fP)
  260676. .IP \(bu 2
  260677. \fBPR\fP \fI\%#25369\fP: (\fI\%anlutro\fP) Fix aptpkg.version_cmp (refs: \fI\%#26524\fP)
  260678. .IP \(bu 2
  260679. 4dbf61c5af Merge pull request \fI\%#26549\fP from rallytime/bp\-26524
  260680. .IP \(bu 2
  260681. 4763f28725 logging(cmp_version): output assertion
  260682. .IP \(bu 2
  260683. 673b6c683d utils(version_cmp): handle comparison not in (0,1,\-1)
  260684. .UNINDENT
  260685. .IP \(bu 2
  260686. \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)
  260687. .IP \(bu 2
  260688. \fBPR\fP \fI\%#26527\fP: (\fI\%jfindlay\fP) check exists and values in boto_elb listeners
  260689. @ \fI2015\-08\-21 15:27:52 UTC\fP
  260690. .INDENT 2.0
  260691. .IP \(bu 2
  260692. 1ac8287588 Merge pull request \fI\%#26527\fP from jfindlay/elb
  260693. .IP \(bu 2
  260694. 343e47f00c check exists and values in boto_elb listeners
  260695. .UNINDENT
  260696. .IP \(bu 2
  260697. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  260698. @ \fI2015\-08\-21 15:11:08 UTC\fP
  260699. .INDENT 2.0
  260700. .IP \(bu 2
  260701. \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)
  260702. .IP \(bu 2
  260703. e4b2534aa8 Merge pull request \fI\%#26446\fP from stanislavb/2015.5\-ec2\-metadata\-region
  260704. .IP \(bu 2
  260705. 57943ff4f7 Fetch AWS region from EC2 instance metadata
  260706. .UNINDENT
  260707. .IP \(bu 2
  260708. \fBPR\fP \fI\%#26546\fP: (\fI\%nmadhok\fP) Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  260709. @ \fI2015\-08\-21 14:17:49 UTC\fP
  260710. .INDENT 2.0
  260711. .IP \(bu 2
  260712. d721b7b2be Merge pull request \fI\%#26546\fP from nmadhok/vmware\-key\-error\-patch\-2015.5
  260713. .IP \(bu 2
  260714. 1dcf157256 Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  260715. .UNINDENT
  260716. .IP \(bu 2
  260717. \fBISSUE\fP \fI\%#25360\fP: (\fI\%BretFisher\fP) file.replace removes line feed if using YAML\(aqs multiline string syntax (refs: \fI\%#26481\fP)
  260718. .IP \(bu 2
  260719. \fBPR\fP \fI\%#26537\fP: (\fI\%jfindlay\fP) Merge \fI\%#26481\fP
  260720. @ \fI2015\-08\-21 05:37:24 UTC\fP
  260721. .INDENT 2.0
  260722. .IP \(bu 2
  260723. \fBPR\fP \fI\%#26481\fP: (\fI\%TheBigBear\fP) minor note: added (refs: \fI\%#26537\fP)
  260724. .IP \(bu 2
  260725. 7da87fabf1 Merge pull request \fI\%#26537\fP from jfindlay/note
  260726. .IP \(bu 2
  260727. 662e723ae0 fixup note lint in file.replace state mod
  260728. .IP \(bu 2
  260729. 332535f2e6 Update file.py
  260730. .IP \(bu 2
  260731. 598500034f Update file.py
  260732. .IP \(bu 2
  260733. ec7c7d738d minor note: added
  260734. .UNINDENT
  260735. .IP \(bu 2
  260736. \fBPR\fP \fI\%#26528\fP: (\fI\%zmalone\fP) Fixing encrypt to instructions in the 2015.5 branch
  260737. @ \fI2015\-08\-20 21:49:06 UTC\fP
  260738. .INDENT 2.0
  260739. .IP \(bu 2
  260740. c6d8e34730 Merge pull request \fI\%#26528\fP from zmalone/2015.5
  260741. .IP \(bu 2
  260742. 39b111c465 Fixing encrypt to instructions in the 2015.5 branch, \-\-homedir is not necessary here.
  260743. .UNINDENT
  260744. .UNINDENT
  260745. .SS Salt 2015.5.7 Release Notes
  260746. .INDENT 0.0
  260747. .TP
  260748. .B release
  260749. 2015\-10\-13
  260750. .UNINDENT
  260751. .sp
  260752. Version 2015.5.7 is a bugfix release for 2015.5.0\&.
  260753. .SS Statistics
  260754. .INDENT 0.0
  260755. .IP \(bu 2
  260756. Total Merges: \fB103\fP
  260757. .IP \(bu 2
  260758. Total Issue References: \fB66\fP
  260759. .IP \(bu 2
  260760. Total PR References: \fB135\fP
  260761. .IP \(bu 2
  260762. 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)
  260763. .UNINDENT
  260764. .sp
  260765. \fBIMPORTANT:\fP
  260766. .INDENT 0.0
  260767. .INDENT 3.5
  260768. A significant orchestrate issue (\fI\%issue ##29110\fP) was discovered during the
  260769. release process of 2015.5.7, so it has not been officially released.
  260770. Please use 2015.5.8 instead.
  260771. .UNINDENT
  260772. .UNINDENT
  260773. .SS Changelog for v2015.5.6..v2015.5.7
  260774. .sp
  260775. \fIGenerated at: 2018\-05\-27 22:16:54 UTC\fP
  260776. .INDENT 0.0
  260777. .IP \(bu 2
  260778. \fBPR\fP \fI\%#28864\fP: (\fI\%jfindlay\fP) add 2015.5.7 release notes
  260779. @ \fI2015\-11\-13 17:15:00 UTC\fP
  260780. .INDENT 2.0
  260781. .IP \(bu 2
  260782. ec7fdc539b Merge pull request \fI\%#28864\fP from jfindlay/2015.5
  260783. .IP \(bu 2
  260784. 648b697951 add 2015.5.7 release notes
  260785. .UNINDENT
  260786. .IP \(bu 2
  260787. \fBISSUE\fP \fI\%#27392\fP: (\fI\%ahammond\fP) schedule running state.orchestrate fails (refs: \fI\%#28731\fP)
  260788. .IP \(bu 2
  260789. \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
  260790. @ \fI2015\-11\-13 16:58:06 UTC\fP
  260791. .INDENT 2.0
  260792. .IP \(bu 2
  260793. bed45f4208 Merge pull request \fI\%#28731\fP from garethgreenaway/27392_2015_5_scheduler_return_job_master
  260794. .IP \(bu 2
  260795. 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.
  260796. .UNINDENT
  260797. .IP \(bu 2
  260798. \fBPR\fP \fI\%#28857\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28851\fP to 2015.5
  260799. @ \fI2015\-11\-13 13:56:53 UTC\fP
  260800. .INDENT 2.0
  260801. .IP \(bu 2
  260802. \fBPR\fP \fI\%#28851\fP: (\fI\%rominf\fP) [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs (refs: \fI\%#28857\fP)
  260803. .IP \(bu 2
  260804. 06f4932876 Merge pull request \fI\%#28857\fP from rallytime/bp\-28851
  260805. .IP \(bu 2
  260806. aa4b193f87 [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs
  260807. .UNINDENT
  260808. .IP \(bu 2
  260809. \fBPR\fP \fI\%#28856\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28853\fP to 2015.5
  260810. @ \fI2015\-11\-13 13:46:10 UTC\fP
  260811. .INDENT 2.0
  260812. .IP \(bu 2
  260813. \fBPR\fP \fI\%#28853\fP: (\fI\%eliasp\fP) Typo (with → which) (refs: \fI\%#28856\fP)
  260814. .IP \(bu 2
  260815. 0934a52b34 Merge pull request \fI\%#28856\fP from rallytime/bp\-28853
  260816. .IP \(bu 2
  260817. 37eeab2683 Typo (with → which)
  260818. .UNINDENT
  260819. .IP \(bu 2
  260820. \fBISSUE\fP \fI\%#28828\fP: (\fI\%basepi\fP) salt\-ssh doesn\(aqt package tornado\(aqs new deps in the thin (refs: \fI\%#28826\fP)
  260821. .IP \(bu 2
  260822. \fBPR\fP \fI\%#28832\fP: (\fI\%basepi\fP) [2015.5] Backport \fI\%#28826\fP
  260823. @ \fI2015\-11\-12 19:32:03 UTC\fP
  260824. .INDENT 2.0
  260825. .IP \(bu 2
  260826. \fBPR\fP \fI\%#28826\fP: (\fI\%basepi\fP) [2015.8] Add new tornado deps to salt\-ssh thin (refs: \fI\%#28832\fP)
  260827. .IP \(bu 2
  260828. eb904665dc Merge pull request \fI\%#28832\fP from basepi/backport.28826
  260829. .IP \(bu 2
  260830. 57be72eb91 Add backports_abc and singledispatch_helpers to thin as well
  260831. .IP \(bu 2
  260832. 897cad627b Add singledispatch to the thin
  260833. .UNINDENT
  260834. .IP \(bu 2
  260835. \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)
  260836. .IP \(bu 2
  260837. \fBPR\fP \fI\%#28833\fP: (\fI\%basepi\fP) [2015.5] Increase the default gather_job_timeout
  260838. @ \fI2015\-11\-12 19:31:58 UTC\fP
  260839. .INDENT 2.0
  260840. .IP \(bu 2
  260841. eff811a0ad Merge pull request \fI\%#28833\fP from basepi/increase.gather_job_timeout.8647
  260842. .IP \(bu 2
  260843. c09243dd01 Increase the default gather_job_timeout
  260844. .UNINDENT
  260845. .IP \(bu 2
  260846. \fBPR\fP \fI\%#28829\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260847. @ \fI2015\-11\-12 18:50:51 UTC\fP
  260848. .INDENT 2.0
  260849. .IP \(bu 2
  260850. e4a036365d Merge pull request \fI\%#28829\fP from basepi/merge\-forward\-2015.5
  260851. .IP \(bu 2
  260852. f8b8441485 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260853. .IP \(bu 2
  260854. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  260855. .INDENT 2.0
  260856. .IP \(bu 2
  260857. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  260858. .UNINDENT
  260859. .IP \(bu 2
  260860. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  260861. .INDENT 2.0
  260862. .IP \(bu 2
  260863. 32e7bd3ea0 Account for new headers class in tornado 4.3
  260864. .UNINDENT
  260865. .IP \(bu 2
  260866. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  260867. .INDENT 2.0
  260868. .IP \(bu 2
  260869. 1874300e08 Add note about recommended umask
  260870. .UNINDENT
  260871. .UNINDENT
  260872. .IP \(bu 2
  260873. \fBISSUE\fP \fI\%#25775\fP: (\fI\%trimbleagvendoraccounta\fP) blockdev.formatted formats but fails. Second highstate shows success. (refs: \fI\%#28756\fP)
  260874. .IP \(bu 2
  260875. \fBISSUE\fP \fI\%#20235\fP: (\fI\%joejulian\fP) blockdev.format state can fail even if it succeeds (refs: \fI\%#28756\fP)
  260876. .IP \(bu 2
  260877. \fBPR\fP \fI\%#28756\fP: (\fI\%MrCitron\fP) Fix \fI\%#25775\fP
  260878. @ \fI2015\-11\-12 17:47:51 UTC\fP
  260879. .INDENT 2.0
  260880. .IP \(bu 2
  260881. 93562631aa Merge pull request \fI\%#28756\fP from MrCitron/fix\-25775
  260882. .IP \(bu 2
  260883. 82075c809c Add logs and correct pylint error
  260884. .IP \(bu 2
  260885. e31e22d96a Fix 25775
  260886. .UNINDENT
  260887. .IP \(bu 2
  260888. \fBISSUE\fP \fI\%#28783\fP: (\fI\%chrigl\fP) iptables.get_saved_rules does not handle family=ipv6 (refs: \fI\%#28786\fP)
  260889. .IP \(bu 2
  260890. \fBPR\fP \fI\%#28786\fP: (\fI\%chrigl\fP) closes \fI\%#28783\fP
  260891. @ \fI2015\-11\-11 21:01:19 UTC\fP
  260892. .INDENT 2.0
  260893. .IP \(bu 2
  260894. 30cc48e37f Merge pull request \fI\%#28786\fP from chrigl/fix\-28783
  260895. .IP \(bu 2
  260896. ba6d814553 closes \fI\%#28783\fP
  260897. .UNINDENT
  260898. .IP \(bu 2
  260899. \fBPR\fP \fI\%#28776\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2015.5
  260900. @ \fI2015\-11\-11 18:02:03 UTC\fP
  260901. .INDENT 2.0
  260902. .IP \(bu 2
  260903. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28776\fP, \fI\%#28777\fP)
  260904. .IP \(bu 2
  260905. 8f1d0b636e Merge pull request \fI\%#28776\fP from rallytime/bp\-28740\-2015.5
  260906. .IP \(bu 2
  260907. 49256b7d90 Back\-port \fI\%#28740\fP to 2015.5
  260908. .UNINDENT
  260909. .IP \(bu 2
  260910. \fBISSUE\fP \fI\%#28732\fP: (\fI\%dmyerscough\fP) cherrypy API endpoint (refs: \fI\%#28760\fP)
  260911. .IP \(bu 2
  260912. \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)
  260913. .IP \(bu 2
  260914. \fBISSUE\fP \fI\%#22451\fP: (\fI\%whiteinge\fP) rest_cherrypy /keys URL throws a 500 on the first request (refs: \fI\%#28760\fP)
  260915. .IP \(bu 2
  260916. \fBISSUE\fP \fI\%#22442\fP: (\fI\%allanliu\fP) rest_cherrypy /keys URL does not handle JSON requests (refs: \fI\%#28760\fP)
  260917. .IP \(bu 2
  260918. \fBPR\fP \fI\%#28760\fP: (\fI\%dmyerscough\fP) Fixing CherryPy key bug
  260919. @ \fI2015\-11\-11 15:11:18 UTC\fP
  260920. .INDENT 2.0
  260921. .IP \(bu 2
  260922. 77d4b980f1 Merge pull request \fI\%#28760\fP from dmyerscough/28732\-Fix\-cherrypi\-api\-keys\-endpoint
  260923. .IP \(bu 2
  260924. 206d1684b2 Fixing CherryPy key bug
  260925. .UNINDENT
  260926. .IP \(bu 2
  260927. \fBISSUE\fP \fI\%#28714\fP: (\fI\%gravyboat\fP) Salt\-api doesn\(aqt work with post unless data is included. (refs: \fI\%#28718\fP)
  260928. .IP \(bu 2
  260929. \fBPR\fP \fI\%#28746\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28718\fP to 2015.5
  260930. @ \fI2015\-11\-10 18:16:40 UTC\fP
  260931. .INDENT 2.0
  260932. .IP \(bu 2
  260933. \fBPR\fP \fI\%#28718\fP: (\fI\%sjmh\fP) Account for no POST data (refs: \fI\%#28746\fP)
  260934. .IP \(bu 2
  260935. 6f8f04975f Merge pull request \fI\%#28746\fP from rallytime/bp\-28718
  260936. .IP \(bu 2
  260937. 092f441cad Account for no POST data
  260938. .UNINDENT
  260939. .IP \(bu 2
  260940. \fBPR\fP \fI\%#28705\fP: (\fI\%cachedout\fP) Account for new headers class in tornado 4.3 (refs: \fI\%#28716\fP)
  260941. @ \fI2015\-11\-09 19:24:34 UTC\fP
  260942. .INDENT 2.0
  260943. .IP \(bu 2
  260944. f40c617bad Merge pull request \fI\%#28705\fP from cachedout/tornado_http_headers
  260945. .IP \(bu 2
  260946. 7ac6cde1ee Account for new headers class in tornado 4.3
  260947. .UNINDENT
  260948. .IP \(bu 2
  260949. \fBPR\fP \fI\%#28699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28670\fP to 2015.5
  260950. @ \fI2015\-11\-09 18:10:58 UTC\fP
  260951. .INDENT 2.0
  260952. .IP \(bu 2
  260953. \fBPR\fP \fI\%#28670\fP: (\fI\%plastikos\fP) psutil can fail to look\-up a uid and raise a KeyError (refs: \fI\%#28699\fP)
  260954. .IP \(bu 2
  260955. 604a7b4199 Merge pull request \fI\%#28699\fP from rallytime/bp\-28670
  260956. .IP \(bu 2
  260957. e436b23296 psutil can fail to look\-up a uid and raise a KeyError
  260958. .UNINDENT
  260959. .IP \(bu 2
  260960. \fBPR\fP \fI\%#28703\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28690\fP to 2015.5
  260961. @ \fI2015\-11\-09 18:01:57 UTC\fP
  260962. .INDENT 2.0
  260963. .IP \(bu 2
  260964. \fBPR\fP \fI\%#28690\fP: (\fI\%MrCitron\fP) Fix 28689 : Check s3 ext pillar cache file before calculating expiration (refs: \fI\%#28703\fP)
  260965. .IP \(bu 2
  260966. 7bd3eb8370 Merge pull request \fI\%#28703\fP from rallytime/bp\-28690
  260967. .IP \(bu 2
  260968. a0988dab58 Fix 28689 : Check s3 ext pillar cache file before calculating expiration
  260969. .IP \(bu 2
  260970. \fBPR\fP \fI\%saltstack/salt\-bootstrap#868\fP: (\fI\%cachedout\fP) Always refresh the Arch Linux keyring if needed (refs: \fI\%#28694\fP)
  260971. .UNINDENT
  260972. .IP \(bu 2
  260973. \fBPR\fP \fI\%#28694\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap script v2015.11.09
  260974. @ \fI2015\-11\-09 17:49:53 UTC\fP
  260975. .INDENT 2.0
  260976. .IP \(bu 2
  260977. 2a40f57b93 Merge pull request \fI\%#28694\fP from s0undt3ch/2015.5
  260978. .IP \(bu 2
  260979. 0910c6ffe4 Update to latest bootstrap script v2015.11.09
  260980. .UNINDENT
  260981. .IP \(bu 2
  260982. \fBISSUE\fP \fI\%#26592\fP: (\fI\%centromere\fP) rabbitmq.list_vhosts removes final line from rabbitmqctl output (refs: \fI\%#28669\fP)
  260983. .IP \(bu 2
  260984. \fBPR\fP \fI\%#28669\fP: (\fI\%rallytime\fP) Use the \-q argument to strip extraneous messages from rabbitmq
  260985. @ \fI2015\-11\-08 01:07:25 UTC\fP
  260986. .INDENT 2.0
  260987. .IP \(bu 2
  260988. 3249b322e8 Merge pull request \fI\%#28669\fP from rallytime/fix\-26592
  260989. .IP \(bu 2
  260990. 098fb815af Use the \-q argument to strip extraneous messages from rabbitmq
  260991. .UNINDENT
  260992. .IP \(bu 2
  260993. \fBISSUE\fP \fI\%#28577\fP: (\fI\%jacksontj\fP) Increase in master CPU usage after upgrading to 2015.8 (refs: \fI\%#28645\fP)
  260994. .IP \(bu 2
  260995. \fBPR\fP \fI\%#28645\fP: (\fI\%jacksontj\fP) Rework minion return_retry_timer
  260996. @ \fI2015\-11\-07 03:40:28 UTC\fP
  260997. .INDENT 2.0
  260998. .IP \(bu 2
  260999. \fBPR\fP \fI\%#27286\fP: (\fI\%terminalmage\fP) Add a configurable timer for minion return retries (refs: \fI\%#28645\fP)
  261000. .IP \(bu 2
  261001. 29e8250d0c Merge pull request \fI\%#28645\fP from jacksontj/2015.5
  261002. .IP \(bu 2
  261003. f63c2d70a7 Rework minion return_retry_timer
  261004. .UNINDENT
  261005. .IP \(bu 2
  261006. \fBISSUE\fP \fI\%#15177\fP: (\fI\%baskinomics\fP) system.join_domain() does not join domain on Windows Server 2012 R2 (refs: \fI\%#28668\fP)
  261007. .IP \(bu 2
  261008. \fBPR\fP \fI\%#28668\fP: (\fI\%twangboy\fP) Fixed join_domain and unjoin_domain for Windows
  261009. @ \fI2015\-11\-07 03:40:04 UTC\fP
  261010. .INDENT 2.0
  261011. .IP \(bu 2
  261012. 1bbaea8aad Merge pull request \fI\%#28668\fP from twangboy/fix_15177
  261013. .IP \(bu 2
  261014. 745b8f75f6 Fixed some lint
  261015. .IP \(bu 2
  261016. a43eb53f28 Added version added notes in docs
  261017. .IP \(bu 2
  261018. 6b537c8640 Fixed join_domain and unjoin_domain for Windows
  261019. .UNINDENT
  261020. .IP \(bu 2
  261021. \fBISSUE\fP \fI\%#8051\fP: (\fI\%regilero\fP) Problems with fileinput.input inplace editing in salt.states.file.replace (refs: \fI\%#28174\fP)
  261022. .IP \(bu 2
  261023. \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)
  261024. .IP \(bu 2
  261025. \fBPR\fP \fI\%#28666\fP: (\fI\%jfindlay\fP) define r_data before using it in file module
  261026. @ \fI2015\-11\-07 00:46:27 UTC\fP
  261027. .INDENT 2.0
  261028. .IP \(bu 2
  261029. \fBPR\fP \fI\%#28174\fP: (\fI\%lorengordon\fP) Add support for multiline regex in file.replace (refs: \fI\%#28666\fP)
  261030. .IP \(bu 2
  261031. 4ad5056066 Merge pull request \fI\%#28666\fP from jfindlay/r_data
  261032. .IP \(bu 2
  261033. 29228f445f define r_data before using it in file module
  261034. .UNINDENT
  261035. .IP \(bu 2
  261036. \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)
  261037. .IP \(bu 2
  261038. \fBPR\fP \fI\%#28662\fP: (\fI\%cachedout\fP) Add note about disabling master_alive_interval
  261039. @ \fI2015\-11\-07 00:38:12 UTC\fP
  261040. .INDENT 2.0
  261041. .IP \(bu 2
  261042. e129e889ad Merge pull request \fI\%#28662\fP from cachedout/issue_24758
  261043. .IP \(bu 2
  261044. 78f4894333 Add note about disabling master_alive_interval
  261045. .UNINDENT
  261046. .IP \(bu 2
  261047. \fBPR\fP \fI\%#28627\fP: (\fI\%twangboy\fP) Backport win_useradd
  261048. @ \fI2015\-11\-06 16:57:49 UTC\fP
  261049. .INDENT 2.0
  261050. .IP \(bu 2
  261051. df121d0cec Merge pull request \fI\%#28627\fP from twangboy/backport_win_useradd
  261052. .IP \(bu 2
  261053. 87282b6354 Backport win_useradd
  261054. .UNINDENT
  261055. .IP \(bu 2
  261056. \fBISSUE\fP \fI\%#28398\fP: (\fI\%L4rS6\fP) Permissions /var/cache/salt/minion/extmods (refs: \fI\%#28617\fP)
  261057. .IP \(bu 2
  261058. \fBPR\fP \fI\%#28617\fP: (\fI\%cachedout\fP) Set restrictive umask on module sync
  261059. @ \fI2015\-11\-05 23:43:28 UTC\fP
  261060. .INDENT 2.0
  261061. .IP \(bu 2
  261062. 64a20228c6 Merge pull request \fI\%#28617\fP from cachedout/umask_module_sync
  261063. .IP \(bu 2
  261064. 227792e158 Set restrictive umask on module sync
  261065. .UNINDENT
  261066. .IP \(bu 2
  261067. \fBISSUE\fP \fI\%#28621\fP: (\fI\%gravyboat\fP) Puppet module documentation should be less insulting (refs: \fI\%#28622\fP)
  261068. .IP \(bu 2
  261069. \fBPR\fP \fI\%#28622\fP: (\fI\%gravyboat\fP) Update puppet module wording
  261070. @ \fI2015\-11\-05 20:34:07 UTC\fP
  261071. .INDENT 2.0
  261072. .IP \(bu 2
  261073. 065f8c7fb3 Merge pull request \fI\%#28622\fP from gravyboat/update_puppet_module_docs
  261074. .IP \(bu 2
  261075. 4ea28bed30 Update puppet module wording
  261076. .UNINDENT
  261077. .IP \(bu 2
  261078. \fBISSUE\fP \fI\%#655\fP: (\fI\%thatch45\fP) Add general command management to service (refs: #\(gasaltstack/salt\-bootstrap#656\(ga_)
  261079. .INDENT 2.0
  261080. .IP \(bu 2
  261081. \fBPR\fP \fI\%saltstack/salt\-bootstrap#674\fP: (\fI\%jfindlay\fP) add support for repo.saltstack.com (refs: \fI\%#28563\fP)
  261082. .IP \(bu 2
  261083. \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)
  261084. .IP \(bu 2
  261085. \fBPR\fP \fI\%saltstack/salt\-bootstrap#656\fP: (\fI\%eyj\fP) Add bootstrap \-b flag (don\(aqt install dependencies) (refs: \fI\%#28563\fP)
  261086. .IP \(bu 2
  261087. \fBPR\fP \fI\%saltstack/salt\-bootstrap#654\fP: (\fI\%hedinfaok\fP) Fixes error finding python\-jinja2 in RHEL 7 (refs: \fI\%#28563\fP)
  261088. .IP \(bu 2
  261089. \fBPR\fP \fI\%saltstack/salt\-bootstrap#653\fP: (\fI\%cbuechler\fP) Make bootstrap work with FreeBSD 11\-CURRENT. (refs: \fI\%#28563\fP)
  261090. .UNINDENT
  261091. .IP \(bu 2
  261092. \fBPR\fP \fI\%#28563\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap script v2015.11.04
  261093. @ \fI2015\-11\-04 15:16:31 UTC\fP
  261094. .INDENT 2.0
  261095. .IP \(bu 2
  261096. 08295de5a5 Merge pull request \fI\%#28563\fP from s0undt3ch/2015.5
  261097. .IP \(bu 2
  261098. 16f4db79a0 Update to latest bootstrap script v2015.11.04
  261099. .UNINDENT
  261100. .IP \(bu 2
  261101. \fBISSUE\fP \fI\%#28173\fP: (\fI\%twangboy\fP) system.computer_name does not work in windows (refs: \fI\%#28541\fP)
  261102. .IP \(bu 2
  261103. \fBPR\fP \fI\%#28541\fP: (\fI\%twangboy\fP) Fixed problem with system.set_computer_name
  261104. @ \fI2015\-11\-04 14:48:54 UTC\fP
  261105. .INDENT 2.0
  261106. .IP \(bu 2
  261107. 1e09f186ce Merge pull request \fI\%#28541\fP from twangboy/fix_28173
  261108. .IP \(bu 2
  261109. 7edf5ce370 Fixed problem with system.set_computer_name
  261110. .UNINDENT
  261111. .IP \(bu 2
  261112. \fBISSUE\fP \fI\%#28524\fP: (\fI\%bmcorser\fP) UnicodeDecodeError in states.file (refs: \fI\%#28538\fP, \fI\%#28537\fP)
  261113. .INDENT 2.0
  261114. .IP \(bu 2
  261115. \fBPR\fP \fI\%#28538\fP: (\fI\%jfindlay\fP) decode path and url to utf\-8 in url.create (refs: \fI\%#28537\fP)
  261116. .UNINDENT
  261117. .IP \(bu 2
  261118. \fBPR\fP \fI\%#28537\fP: (\fI\%jfindlay\fP) decode filename to utf\-8 in file.recurse state
  261119. @ \fI2015\-11\-04 14:48:18 UTC\fP
  261120. .INDENT 2.0
  261121. .IP \(bu 2
  261122. f44ed780b5 Merge pull request \fI\%#28537\fP from jfindlay/decode_state_2015.5
  261123. .IP \(bu 2
  261124. 06e514940c decode filename to utf\-8 in file.recurse state
  261125. .UNINDENT
  261126. .IP \(bu 2
  261127. \fBISSUE\fP \fI\%#28272\fP: (\fI\%gravyboat\fP) Update documentation contributing docs to explain how to PR against different releases (refs: \fI\%#28529\fP)
  261128. .IP \(bu 2
  261129. \fBPR\fP \fI\%#28529\fP: (\fI\%rallytime\fP) Update contributing and documentation pages to recommend submitting against branches
  261130. @ \fI2015\-11\-04 14:47:21 UTC\fP
  261131. .INDENT 2.0
  261132. .IP \(bu 2
  261133. 6acf87593f Merge pull request \fI\%#28529\fP from rallytime/fix\-28272
  261134. .IP \(bu 2
  261135. a959681858 Add link to Sending a GH PR to documentation docs
  261136. .IP \(bu 2
  261137. 1c612e2772 Update contributing and documentation pages to recommend submitting against branches
  261138. .UNINDENT
  261139. .IP \(bu 2
  261140. \fBISSUE\fP \fI\%#28511\fP: (\fI\%nghgd\fP) vmware clone task fails instead of waiting to completion (refs: \fI\%#28546\fP)
  261141. .IP \(bu 2
  261142. \fBPR\fP \fI\%#28548\fP: (\fI\%nmadhok\fP) [Backport] [2015.5] Tasks can be in queued state instead of running
  261143. @ \fI2015\-11\-04 04:14:25 UTC\fP
  261144. .INDENT 2.0
  261145. .IP \(bu 2
  261146. \fBPR\fP \fI\%#28546\fP: (\fI\%nmadhok\fP) Tasks can be in queued state instead of running. (refs: \fI\%#28548\fP)
  261147. .IP \(bu 2
  261148. 025bff2bf0 Merge pull request \fI\%#28548\fP from nmadhok/2015.5\-task\-error
  261149. .IP \(bu 2
  261150. 804a0a6537 Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  261151. .UNINDENT
  261152. .IP \(bu 2
  261153. \fBISSUE\fP \fI\%#24585\fP: (\fI\%utahcon\fP) No version data for SALT.STATES.VIRTUALENV in wiki (refs: \fI\%#28531\fP)
  261154. .IP \(bu 2
  261155. \fBPR\fP \fI\%#28531\fP: (\fI\%rallytime\fP) Add versionadded directives to virtualenv_mod state/module
  261156. @ \fI2015\-11\-03 21:34:49 UTC\fP
  261157. .INDENT 2.0
  261158. .IP \(bu 2
  261159. 63bd3e52b3 Merge pull request \fI\%#28531\fP from rallytime/fix\-24585
  261160. .IP \(bu 2
  261161. bc577b2531 Add versionadded directives to virtualenv_mod state/module
  261162. .UNINDENT
  261163. .IP \(bu 2
  261164. \fBPR\fP \fI\%#28508\fP: (\fI\%twangboy\fP) Fixed windows tests
  261165. @ \fI2015\-11\-03 19:31:12 UTC\fP
  261166. .INDENT 2.0
  261167. .IP \(bu 2
  261168. ea3bf972c4 Merge pull request \fI\%#28508\fP from twangboy/fix_unit_tests_windows
  261169. .IP \(bu 2
  261170. 0da6ff7c50 Fixed some logic
  261171. .IP \(bu 2
  261172. cf1e059be5 Fixed windows tests
  261173. .UNINDENT
  261174. .IP \(bu 2
  261175. \fBPR\fP \fI\%#28525\fP: (\fI\%rallytime\fP) Fix spacing in doc examples for boto_route53 state and module
  261176. @ \fI2015\-11\-03 19:30:24 UTC\fP
  261177. .INDENT 2.0
  261178. .IP \(bu 2
  261179. 73c5735fc1 Merge pull request \fI\%#28525\fP from rallytime/route53_spacing
  261180. .IP \(bu 2
  261181. 6ab2ce615c Fix spacing in doc examples for boto_route53 state and module
  261182. .UNINDENT
  261183. .IP \(bu 2
  261184. \fBISSUE\fP \fI\%#28243\fP: (\fI\%guettli\fP) Docs: default value of state_auto_order ? (refs: \fI\%#28517\fP)
  261185. .IP \(bu 2
  261186. \fBPR\fP \fI\%#28517\fP: (\fI\%rallytime\fP) Add state_auto_order defaults to True note to ordering docs
  261187. @ \fI2015\-11\-03 14:04:40 UTC\fP
  261188. .INDENT 2.0
  261189. .IP \(bu 2
  261190. 2d7f934f67 Merge pull request \fI\%#28517\fP from rallytime/fix\-28243
  261191. .IP \(bu 2
  261192. be8f650901 Punctuation.
  261193. .IP \(bu 2
  261194. fd846822c1 Add state_auto_order defaults to True note to ordering docs
  261195. .UNINDENT
  261196. .IP \(bu 2
  261197. \fBPR\fP \fI\%#28512\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  261198. @ \fI2015\-11\-03 00:38:08 UTC\fP
  261199. .INDENT 2.0
  261200. .IP \(bu 2
  261201. 63ce8f78d5 Merge pull request \fI\%#28512\fP from basepi/merge\-forward\-2015.5
  261202. .IP \(bu 2
  261203. 61c382133a Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  261204. .IP \(bu 2
  261205. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  261206. .INDENT 2.0
  261207. .IP \(bu 2
  261208. 097838ec0c Wrap all cache calls in state.sls in correct umask
  261209. .UNINDENT
  261210. .IP \(bu 2
  261211. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  261212. .INDENT 2.0
  261213. .IP \(bu 2
  261214. b7b5bec309 Don\(aqt request creds if auth with key.
  261215. .UNINDENT
  261216. .UNINDENT
  261217. .IP \(bu 2
  261218. \fBPR\fP \fI\%#28448\fP: (\fI\%gwaters\fP) added a note to the tutorial for redhat derivatives
  261219. @ \fI2015\-10\-30 18:49:53 UTC\fP
  261220. .INDENT 2.0
  261221. .IP \(bu 2
  261222. 37ceae1e88 Merge pull request \fI\%#28448\fP from gwaters/add\-redhat\-notes
  261223. .IP \(bu 2
  261224. e70990704a added a note to the tutorial for those that redhat so they can use the state file too.
  261225. .UNINDENT
  261226. .IP \(bu 2
  261227. \fBPR\fP \fI\%#28406\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28381\fP to 2015.5
  261228. @ \fI2015\-10\-29 19:10:37 UTC\fP
  261229. .INDENT 2.0
  261230. .IP \(bu 2
  261231. \fBPR\fP \fI\%#28381\fP: (\fI\%JaseFace\fP) Add FreeBSD detection for VirtualBox (refs: \fI\%#28406\fP)
  261232. .IP \(bu 2
  261233. 5ef50d60cd Merge pull request \fI\%#28406\fP from rallytime/bp\-28381
  261234. .IP \(bu 2
  261235. e5322d2c44 Add FreeBSD detection for VirtualBox
  261236. .UNINDENT
  261237. .IP \(bu 2
  261238. \fBPR\fP \fI\%#28413\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28400\fP to 2015.5
  261239. @ \fI2015\-10\-29 18:06:46 UTC\fP
  261240. .INDENT 2.0
  261241. .IP \(bu 2
  261242. \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)
  261243. .IP \(bu 2
  261244. 30d5f7bbae Merge pull request \fI\%#28413\fP from rallytime/bp\-28400
  261245. .IP \(bu 2
  261246. 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.
  261247. .UNINDENT
  261248. .IP \(bu 2
  261249. \fBPR\fP \fI\%#28366\fP: (\fI\%erchn\fP) mark repo not enabled when pkgrepo state passes in disable: True
  261250. @ \fI2015\-10\-29 15:55:54 UTC\fP
  261251. .INDENT 2.0
  261252. .IP \(bu 2
  261253. 045d540aff Merge pull request \fI\%#28366\fP from erchn/fix_yumpkg_mod_repo_disabled
  261254. .IP \(bu 2
  261255. 8187a4ce20 re\-arrange things a bit to have less overall changes
  261256. .IP \(bu 2
  261257. f1d570ff18 move todelete above disabled check, add comment
  261258. .IP \(bu 2
  261259. 64feec413f also remove disabled key from repo_opts
  261260. .IP \(bu 2
  261261. 2f2ebb7bb6 mark repo not enabled when pkgrepo state passes in disable: True
  261262. .UNINDENT
  261263. .IP \(bu 2
  261264. \fBISSUE\fP \fI\%#28372\fP: (\fI\%beverlcl\fP) use_carrier option for bonding network interfaces are setting invalid values (refs: \fI\%#28373\fP)
  261265. .IP \(bu 2
  261266. \fBPR\fP \fI\%#28373\fP: (\fI\%beverlcl\fP) Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  261267. @ \fI2015\-10\-29 14:45:57 UTC\fP
  261268. .INDENT 2.0
  261269. .IP \(bu 2
  261270. 3923f4a569 Merge pull request \fI\%#28373\fP from beverlcl/fix\-use_carrier\-28372
  261271. .IP \(bu 2
  261272. 32cffeceb6 Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  261273. .UNINDENT
  261274. .IP \(bu 2
  261275. \fBPR\fP \fI\%#28359\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28358\fP to 2015.5
  261276. @ \fI2015\-10\-28 20:43:05 UTC\fP
  261277. .INDENT 2.0
  261278. .IP \(bu 2
  261279. \fBPR\fP \fI\%#28358\fP: (\fI\%arthurlogilab\fP) docstring typo fix \- list returners not runners (refs: \fI\%#28359\fP)
  261280. .IP \(bu 2
  261281. e07e3f257b Merge pull request \fI\%#28359\fP from rallytime/bp\-28358
  261282. .IP \(bu 2
  261283. 9cacbf582b docstring typo fix \- list returners not runners
  261284. .UNINDENT
  261285. .IP \(bu 2
  261286. \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)
  261287. .IP \(bu 2
  261288. \fBISSUE\fP \fI\%#27923\fP: (\fI\%twangboy\fP) Salt Windows Installer fails to grab existing config (refs: \fI\%#28346\fP)
  261289. .IP \(bu 2
  261290. \fBPR\fP \fI\%#28346\fP: (\fI\%twangboy\fP) Fix installer
  261291. @ \fI2015\-10\-28 14:21:34 UTC\fP
  261292. .INDENT 2.0
  261293. .IP \(bu 2
  261294. 282be7ba5a Merge pull request \fI\%#28346\fP from twangboy/fix_installer
  261295. .IP \(bu 2
  261296. f65e3e5275 Updated documentation to reflect the new parameter
  261297. .IP \(bu 2
  261298. a0c5223554 Fixes \fI\%#27923\fP and \fI\%#28000\fP
  261299. .UNINDENT
  261300. .IP \(bu 2
  261301. \fBPR\fP \fI\%#28315\fP: (\fI\%gwaters\fP) Adding a working example of setting pillar data on the cli
  261302. @ \fI2015\-10\-27 15:27:49 UTC\fP
  261303. .INDENT 2.0
  261304. .IP \(bu 2
  261305. 7858f04ebc Merge pull request \fI\%#28315\fP from gwaters/update\-pillar\-doc
  261306. .IP \(bu 2
  261307. b15285c0b4 adding a working example of setting pillar data on the cli
  261308. .UNINDENT
  261309. .IP \(bu 2
  261310. \fBISSUE\fP \fI\%#28209\fP: (\fI\%basepi\fP) Legacy git_pillar configs cause duplicate ext_pillar calls (refs: \fI\%#28210\fP)
  261311. .IP \(bu 2
  261312. \fBPR\fP \fI\%#28211\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  261313. @ \fI2015\-10\-26 14:14:02 UTC\fP
  261314. .INDENT 2.0
  261315. .IP \(bu 2
  261316. \fBPR\fP \fI\%#28210\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (refs: \fI\%#28211\fP)
  261317. .IP \(bu 2
  261318. 45305ccf29 Merge pull request \fI\%#28211\fP from terminalmage/legacy_git_pillar\-2015.5
  261319. .IP \(bu 2
  261320. 0d6a4ac115 Remove non\-functional test
  261321. .IP \(bu 2
  261322. ab991d61d9 Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  261323. .UNINDENT
  261324. .IP \(bu 2
  261325. \fBISSUE\fP \fI\%#26411\fP: (\fI\%whiteinge\fP) salt\-call cannot send custom events without Minion daemon running (refs: \fI\%#28263\fP)
  261326. .IP \(bu 2
  261327. \fBPR\fP \fI\%#28263\fP: (\fI\%cachedout\fP) New channel for event.send
  261328. @ \fI2015\-10\-26 14:07:06 UTC\fP
  261329. .INDENT 2.0
  261330. .IP \(bu 2
  261331. a6cc84c407 Merge pull request \fI\%#28263\fP from cachedout/issue_26411\-1
  261332. .IP \(bu 2
  261333. 3b880a5f07 New channel for event.fire_master
  261334. .IP \(bu 2
  261335. 29e9533aab Stand up a new channel if using salt\-call
  261336. .UNINDENT
  261337. .IP \(bu 2
  261338. \fBPR\fP \fI\%#28293\fP: (\fI\%cachedout\fP) Minor grammar changes
  261339. @ \fI2015\-10\-26 12:15:42 UTC\fP
  261340. .INDENT 2.0
  261341. .IP \(bu 2
  261342. \fBPR\fP \fI\%#28271\fP: (\fI\%gwaters\fP) Update tutorial documentation (refs: \fI\%#28293\fP)
  261343. .IP \(bu 2
  261344. 788e1463d8 Merge pull request \fI\%#28293\fP from cachedout/fix_28271
  261345. .IP \(bu 2
  261346. 499ed8519b Minor grammar changes to \fI\%#28271\fP
  261347. .UNINDENT
  261348. .IP \(bu 2
  261349. \fBPR\fP \fI\%#28271\fP: (\fI\%gwaters\fP) Update tutorial documentation (refs: \fI\%#28293\fP)
  261350. @ \fI2015\-10\-26 12:12:37 UTC\fP
  261351. .INDENT 2.0
  261352. .IP \(bu 2
  261353. e178af0b90 Merge pull request \fI\%#28271\fP from gwaters/update\-tutorial\-documentation
  261354. .IP \(bu 2
  261355. f96d39483d updated the tutorial with gravyboat\(aqs suggestions
  261356. .IP \(bu 2
  261357. b1f4a2bdf4 i think i changed the wrong header, updated to fix
  261358. .IP \(bu 2
  261359. 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.
  261360. .UNINDENT
  261361. .IP \(bu 2
  261362. \fBISSUE\fP \fI\%#28248\fP: (\fI\%0xf10e\fP) conventions/formula.rst: "Gather external data" suggests unavailable jinja functionality (refs: \fI\%#28280\fP)
  261363. .IP \(bu 2
  261364. \fBPR\fP \fI\%#28280\fP: (\fI\%0xf10e\fP) Correct Jinja function load_* to import_*
  261365. @ \fI2015\-10\-25 04:11:10 UTC\fP
  261366. .INDENT 2.0
  261367. .IP \(bu 2
  261368. e3eff9b909 Merge pull request \fI\%#28280\fP from 0xf10e/patch\-1
  261369. .IP \(bu 2
  261370. 6d4316b0ac Correct Jinja function load_* to import_*
  261371. .UNINDENT
  261372. .IP \(bu 2
  261373. \fBPR\fP \fI\%#28255\fP: (\fI\%cachedout\fP) Add __cli opt
  261374. @ \fI2015\-10\-23 18:44:30 UTC\fP
  261375. .INDENT 2.0
  261376. .IP \(bu 2
  261377. 909fa3dc97 Merge pull request \fI\%#28255\fP from cachedout/cli_opt
  261378. .IP \(bu 2
  261379. a2408157de Add __cli opt
  261380. .UNINDENT
  261381. .IP \(bu 2
  261382. \fBISSUE\fP \fI\%#27374\fP: (\fI\%mool\fP) boto_route53 state doesn\(aqt create a record (refs: \fI\%#28213\fP)
  261383. .IP \(bu 2
  261384. \fBPR\fP \fI\%#28213\fP: (\fI\%rallytime\fP) If record returned None, don\(aqt continue with the state. Something went wrong
  261385. @ \fI2015\-10\-23 13:54:50 UTC\fP
  261386. .INDENT 2.0
  261387. .IP \(bu 2
  261388. 0fa094ae11 Merge pull request \fI\%#28213\fP from rallytime/boto_route53_state
  261389. .IP \(bu 2
  261390. 237d64ff11 If record returned None, don\(aqt continue with the state. Something went wrong.
  261391. .UNINDENT
  261392. .IP \(bu 2
  261393. \fBISSUE\fP \fI\%#28217\fP: (\fI\%Ch3LL\fP) Scheduler.present tries to add the scheudler each time (refs: \fI\%#28238\fP)
  261394. .IP \(bu 2
  261395. \fBPR\fP \fI\%#28238\fP: (\fI\%basepi\fP) [2015.5] Fix schedule.present always diffing
  261396. @ \fI2015\-10\-23 13:31:32 UTC\fP
  261397. .INDENT 2.0
  261398. .IP \(bu 2
  261399. 1768014705 Merge pull request \fI\%#28238\fP from basepi/fix.schedule.present.28217
  261400. .IP \(bu 2
  261401. 087a8dc3c2 Only insert enabled if it\(aqs a dict
  261402. .IP \(bu 2
  261403. 5b49f41fab Fix schedule comparison to adjust for \(aqenabled\(aq being added in schedule.list
  261404. .IP \(bu 2
  261405. 2dc1226ab8 Build new item with \(aqenabled\(aq if available
  261406. .UNINDENT
  261407. .IP \(bu 2
  261408. \fBISSUE\fP \fI\%#8051\fP: (\fI\%regilero\fP) Problems with fileinput.input inplace editing in salt.states.file.replace (refs: \fI\%#28174\fP)
  261409. .IP \(bu 2
  261410. \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)
  261411. .IP \(bu 2
  261412. \fBPR\fP \fI\%#28174\fP: (\fI\%lorengordon\fP) Add support for multiline regex in file.replace (refs: \fI\%#28666\fP)
  261413. @ \fI2015\-10\-22 14:02:43 UTC\fP
  261414. .INDENT 2.0
  261415. .IP \(bu 2
  261416. bdd48c92de Merge pull request \fI\%#28174\fP from lorengordon/file\-replace\-multiline
  261417. .IP \(bu 2
  261418. acdef2da60 Update docstrings with new guidance
  261419. .IP \(bu 2
  261420. 0835b005b7 Use a test that makes the extra file read unnecessary
  261421. .IP \(bu 2
  261422. 6d6121a6e5 Use \fIflags\fP when checking whether content was added previously
  261423. .IP \(bu 2
  261424. b25e609e9e Set \fIflags=8\fP since now the file is read as a MULTILINE string by default
  261425. .IP \(bu 2
  261426. 89e8dcdffd Use \fIfinally\fP block to ensure mmap object is closed
  261427. .IP \(bu 2
  261428. 5aea6647c9 Add support for multiline regex in file.replace
  261429. .UNINDENT
  261430. .IP \(bu 2
  261431. \fBISSUE\fP \fI\%#19673\fP: (\fI\%holyzhou\fP) partition.mkpart in parted modules doesn\(aqt work (refs: \fI\%#28175\fP)
  261432. .IP \(bu 2
  261433. \fBPR\fP \fI\%#28175\fP: (\fI\%twangboy\fP) Fixes \fI\%#19673\fP
  261434. @ \fI2015\-10\-21 20:48:24 UTC\fP
  261435. .INDENT 2.0
  261436. .IP \(bu 2
  261437. 2225925fb5 Merge pull request \fI\%#28175\fP from twangboy/fix_19673
  261438. .IP \(bu 2
  261439. ae8fbb208f Fixes \fI\%#19673\fP
  261440. .UNINDENT
  261441. .IP \(bu 2
  261442. \fBPR\fP \fI\%#28140\fP: (\fI\%rallytime\fP) Add OpenBSD installation documentation to 2015.5 branch
  261443. @ \fI2015\-10\-20 16:31:34 UTC\fP
  261444. .INDENT 2.0
  261445. .IP \(bu 2
  261446. \fBPR\fP \fI\%#28103\fP: (\fI\%ajacoutot\fP) OpenBSD salt package: update list of dependencies. (refs: \fI\%#28140\fP)
  261447. .IP \(bu 2
  261448. ab18dcf637 Merge pull request \fI\%#28140\fP from rallytime/bsd\-installation\-doc
  261449. .IP \(bu 2
  261450. 458a544d83 Add OpenBSD installation documentation to 2015.5 branch
  261451. .UNINDENT
  261452. .IP \(bu 2
  261453. \fBISSUE\fP \fI\%#28101\fP: (\fI\%bogdanr\fP) salt\-cloud ec2 list\-sizes doesn\(aqt show all available sizes (refs: \fI\%#28138\fP)
  261454. .IP \(bu 2
  261455. \fBPR\fP \fI\%#28138\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28130\fP EC2 Sizes Only portion to 2015.5
  261456. @ \fI2015\-10\-20 16:29:09 UTC\fP
  261457. .INDENT 2.0
  261458. .IP \(bu 2
  261459. \fBPR\fP \fI\%#28130\fP: (\fI\%bogdanr\fP) Ec2 upload public key and updated instances size list (refs: \fI\%#28138\fP)
  261460. .IP \(bu 2
  261461. fad38eb3c3 Merge pull request \fI\%#28138\fP from rallytime/bp\-28130\-sizes\-only
  261462. .IP \(bu 2
  261463. 6ab31e1886 Pylint
  261464. .IP \(bu 2
  261465. 37e4ed58a9 Added missing comma
  261466. .IP \(bu 2
  261467. 667f5e669f Added a bunch of instance sizes and updated some outdated ones
  261468. .UNINDENT
  261469. .IP \(bu 2
  261470. \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)
  261471. .IP \(bu 2
  261472. \fBPR\fP \fI\%#28097\fP: (\fI\%jacksontj\fP) For all multi\-part messages, check the headers. If the header is not …
  261473. @ \fI2015\-10\-20 15:00:18 UTC\fP
  261474. .INDENT 2.0
  261475. .IP \(bu 2
  261476. ce8f858536 Merge pull request \fI\%#28097\fP from jacksontj/2015.5
  261477. .IP \(bu 2
  261478. 75e04bcbbc For all multi\-part messages, check the headers. If the header is not your minion_id, skip the message
  261479. .UNINDENT
  261480. .IP \(bu 2
  261481. \fBISSUE\fP \fI\%#23655\fP: (\fI\%arthurlogilab\fP) salt\-cloud with lxc should not traceback when minion is unreacheable (refs: \fI\%#28117\fP)
  261482. .IP \(bu 2
  261483. \fBPR\fP \fI\%#28117\fP: (\fI\%rallytime\fP) Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  261484. @ \fI2015\-10\-20 12:41:12 UTC\fP
  261485. .INDENT 2.0
  261486. .IP \(bu 2
  261487. 9cdb970289 Merge pull request \fI\%#28117\fP from rallytime/fix\-23655
  261488. .IP \(bu 2
  261489. dfb908e405 Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  261490. .UNINDENT
  261491. .IP \(bu 2
  261492. \fBPR\fP \fI\%#28110\fP: (\fI\%terminalmage\fP) Add explanation of file_client: local setting masterless mode
  261493. @ \fI2015\-10\-20 12:28:05 UTC\fP
  261494. .INDENT 2.0
  261495. .IP \(bu 2
  261496. bf7ed0a397 Merge pull request \fI\%#28110\fP from terminalmage/masterless\-mode
  261497. .IP \(bu 2
  261498. ed90103124 Add explanation of file_client: local setting masterless mode
  261499. .UNINDENT
  261500. .IP \(bu 2
  261501. \fBISSUE\fP \fI\%#27940\fP: (\fI\%multani\fP) salt\-cloud creating lxc containers doesn\(aqt fire "salt/cloud/*/created" event (refs: \fI\%#28109\fP)
  261502. .IP \(bu 2
  261503. \fBPR\fP \fI\%#28109\fP: (\fI\%rallytime\fP) Add created reactor event to lxc cloud driver
  261504. @ \fI2015\-10\-19 20:32:41 UTC\fP
  261505. .INDENT 2.0
  261506. .IP \(bu 2
  261507. a569ef4980 Merge pull request \fI\%#28109\fP from rallytime/fix\-27940
  261508. .IP \(bu 2
  261509. 18b2245611 Add created reactor event to lxc cloud driver
  261510. .UNINDENT
  261511. .IP \(bu 2
  261512. \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)
  261513. .IP \(bu 2
  261514. \fBPR\fP \fI\%#27996\fP: (\fI\%rallytime\fP) Don\(aqt fail if pip package is already present and pip1 is installed
  261515. @ \fI2015\-10\-19 12:59:17 UTC\fP
  261516. .INDENT 2.0
  261517. .IP \(bu 2
  261518. d4604fdb26 Merge pull request \fI\%#27996\fP from rallytime/fix\-21845
  261519. .IP \(bu 2
  261520. f8380d751e Provide empty string as default stdout instead of None
  261521. .IP \(bu 2
  261522. f9406b5828 Don\(aqt fail if pip package is already present and pip1 is installed
  261523. .UNINDENT
  261524. .IP \(bu 2
  261525. \fBPR\fP \fI\%#28056\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28033\fP to 2015.5
  261526. @ \fI2015\-10\-19 12:55:10 UTC\fP
  261527. .INDENT 2.0
  261528. .IP \(bu 2
  261529. \fBPR\fP \fI\%#28033\fP: (\fI\%twangboy\fP) Fixed win_useradd.py (refs: \fI\%#28056\fP)
  261530. .IP \(bu 2
  261531. 28b97c514f Merge pull request \fI\%#28056\fP from rallytime/bp\-28033
  261532. .IP \(bu 2
  261533. af2c5ab759 Fixed win_useradd.py
  261534. .UNINDENT
  261535. .IP \(bu 2
  261536. \fBPR\fP \fI\%#28059\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28040\fP to 2015.5
  261537. @ \fI2015\-10\-18 16:17:29 UTC\fP
  261538. .INDENT 2.0
  261539. .IP \(bu 2
  261540. \fBPR\fP \fI\%#28040\fP: (\fI\%erchn\fP) Swift rackspace fixes (refs: \fI\%#28059\fP)
  261541. .IP \(bu 2
  261542. dfc3aaec74 Merge pull request \fI\%#28059\fP from rallytime/bp\-28040
  261543. .IP \(bu 2
  261544. 76a0d4937b Revert "Allow passing in auth_version, defaulting to 2."
  261545. .IP \(bu 2
  261546. 63d5675d34 default auth_version = 2
  261547. .IP \(bu 2
  261548. 8072716888 remove extra spaces
  261549. .IP \(bu 2
  261550. 9770f56f04 cleanup whitespace, default to None to be consistent with profile
  261551. .IP \(bu 2
  261552. f4adfe98c0 Allow passing in auth_version, defaulting to 2.
  261553. .IP \(bu 2
  261554. fab1ad39af Rackspace support for switft module.
  261555. .UNINDENT
  261556. .IP \(bu 2
  261557. \fBISSUE\fP \fI\%#27534\fP: (\fI\%llevar\fP) file.managed can\(aqt retrieve file via ftp (refs: \fI\%#28047\fP)
  261558. .IP \(bu 2
  261559. \fBPR\fP \fI\%#28047\fP: (\fI\%cachedout\fP) Restore FTP functionality to file client
  261560. @ \fI2015\-10\-18 16:16:46 UTC\fP
  261561. .INDENT 2.0
  261562. .IP \(bu 2
  261563. d1fa036b55 Merge pull request \fI\%#28047\fP from cachedout/issue_27534
  261564. .IP \(bu 2
  261565. 6ea37ddbca Context manager
  261566. .IP \(bu 2
  261567. 4d6f6bb371 Lint
  261568. .IP \(bu 2
  261569. 59018289dc Restore FTP functionality to file client
  261570. .UNINDENT
  261571. .IP \(bu 2
  261572. \fBPR\fP \fI\%#28032\fP: (\fI\%twangboy\fP) Fixed win_path.py
  261573. @ \fI2015\-10\-17 15:16:15 UTC\fP
  261574. .INDENT 2.0
  261575. .IP \(bu 2
  261576. fd2ca2df1b Merge pull request \fI\%#28032\fP from twangboy/fix_win_path
  261577. .IP \(bu 2
  261578. 2bcac93314 Fixed win_path.py
  261579. .UNINDENT
  261580. .IP \(bu 2
  261581. \fBISSUE\fP \fI\%#26336\fP: (\fI\%jfindlay\fP) windows user.present broken (refs: \fI\%#28003\fP)
  261582. .IP \(bu 2
  261583. \fBPR\fP \fI\%#28037\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28003\fP to 2015.5
  261584. @ \fI2015\-10\-16 20:59:52 UTC\fP
  261585. .INDENT 2.0
  261586. .IP \(bu 2
  261587. \fBPR\fP \fI\%#28003\fP: (\fI\%twangboy\fP) Fix \fI\%#26336\fP (refs: \fI\%#28037\fP)
  261588. .IP \(bu 2
  261589. 88c1770be4 Merge pull request \fI\%#28037\fP from rallytime/bp\-28003
  261590. .IP \(bu 2
  261591. 4fcf51fb1e Fix PR \fI\%#26336\fP
  261592. .UNINDENT
  261593. .IP \(bu 2
  261594. \fBPR\fP \fI\%#28031\fP: (\fI\%jacobhammons\fP) Updated release notes with additional CVE information
  261595. @ \fI2015\-10\-16 16:19:37 UTC\fP
  261596. .INDENT 2.0
  261597. .IP \(bu 2
  261598. de727d8bd2 Merge pull request \fI\%#28031\fP from jacobhammons/relnotes6
  261599. .IP \(bu 2
  261600. 05927bb6f0 Updated release notes with additional CVE information
  261601. .UNINDENT
  261602. .IP \(bu 2
  261603. \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)
  261604. .IP \(bu 2
  261605. \fBPR\fP \fI\%#28008\fP: (\fI\%jfindlay\fP) platform independent line endings in hosts mod
  261606. @ \fI2015\-10\-16 13:20:28 UTC\fP
  261607. .INDENT 2.0
  261608. .IP \(bu 2
  261609. 16c0272849 Merge pull request \fI\%#28008\fP from jfindlay/host_path
  261610. .IP \(bu 2
  261611. 9f7047dd3c platform independent line endings in hosts mod
  261612. .UNINDENT
  261613. .IP \(bu 2
  261614. \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)
  261615. .IP \(bu 2
  261616. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output
  261617. @ \fI2015\-10\-16 12:40:59 UTC\fP
  261618. .INDENT 2.0
  261619. .IP \(bu 2
  261620. d41018fa8e Merge pull request \fI\%#28012\fP from rallytime/fix\-28010
  261621. .IP \(bu 2
  261622. 0d7059e0c2 Clean up stack trace when something goes wrong with minion output
  261623. .UNINDENT
  261624. .IP \(bu 2
  261625. \fBPR\fP \fI\%#27995\fP: (\fI\%jacobhammons\fP) added link to grains security FAQ to targeting and pillar topics.
  261626. @ \fI2015\-10\-15 21:15:31 UTC\fP
  261627. .INDENT 2.0
  261628. .IP \(bu 2
  261629. f728307001 Merge pull request \fI\%#27995\fP from jacobhammons/pillar\-doc
  261630. .IP \(bu 2
  261631. 2870af2ba3 added link to grains security FAQ to targeting and pillar topics.
  261632. .UNINDENT
  261633. .IP \(bu 2
  261634. \fBPR\fP \fI\%#27986\fP: (\fI\%jacobhammons\fP) Changed current release to 5.6 and added CVE to release notes
  261635. @ \fI2015\-10\-15 17:25:41 UTC\fP
  261636. .INDENT 2.0
  261637. .IP \(bu 2
  261638. efede904a7 Merge pull request \fI\%#27986\fP from jacobhammons/dot6
  261639. .IP \(bu 2
  261640. bb61c68c11 Changed current release to 5.6 and added CVE to release notes
  261641. .UNINDENT
  261642. .IP \(bu 2
  261643. \fBPR\fP \fI\%#27913\fP: (\fI\%pass\-by\-value\fP) Set default
  261644. @ \fI2015\-10\-14 14:03:36 UTC\fP
  261645. .INDENT 2.0
  261646. .IP \(bu 2
  261647. 831ec680d9 Merge pull request \fI\%#27913\fP from pass\-by\-value/proxmox_verify_ssl
  261648. .IP \(bu 2
  261649. 0b721efe37 Set default
  261650. .UNINDENT
  261651. .IP \(bu 2
  261652. \fBPR\fP \fI\%#27876\fP: (\fI\%terminalmage\fP) 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  261653. @ \fI2015\-10\-13 14:58:45 UTC\fP
  261654. .INDENT 2.0
  261655. .IP \(bu 2
  261656. 41cccb3a30 Merge pull request \fI\%#27876\fP from terminalmage/git_pillar\-AttributeError\-2015.5
  261657. .IP \(bu 2
  261658. 07794c837a 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  261659. .UNINDENT
  261660. .IP \(bu 2
  261661. \fBISSUE\fP \fI\%#27610\fP: (\fI\%benburkert\fP) PR \fI\%#27201\fP broke ssh_known_hosts with :port (refs: \fI\%#27726\fP)
  261662. .IP \(bu 2
  261663. \fBISSUE\fP \fI\%#27187\fP: (\fI\%SeverinLeonhardt\fP) ssh_known_hosts.present hashes other entries even with hash_hostname: false (refs: \fI\%#27201\fP)
  261664. .IP \(bu 2
  261665. \fBPR\fP \fI\%#27726\fP: (\fI\%jfindlay\fP) deprecate hash_hostname in favor of hash_known_hosts
  261666. @ \fI2015\-10\-12 16:19:09 UTC\fP
  261667. .INDENT 2.0
  261668. .IP \(bu 2
  261669. \fBPR\fP \fI\%#27201\fP: (\fI\%jfindlay\fP) rename hash_hostname to hash_known_hosts (refs: \fI\%#27726\fP)
  261670. .IP \(bu 2
  261671. c9c3b7760e Merge pull request \fI\%#27726\fP from jfindlay/hashhosts
  261672. .IP \(bu 2
  261673. ebce47de7c add docs to ssh.recv_known_host exec module fcn
  261674. .IP \(bu 2
  261675. b6ee16b1e5 deprecate hash_hostname in favor of hash_known_hosts
  261676. .UNINDENT
  261677. .IP \(bu 2
  261678. \fBISSUE\fP \fI\%#27735\fP: (\fI\%go8ose\fP) saltutils.find_cached_job doesn\(aqt work (refs: \fI\%#27776\fP)
  261679. .IP \(bu 2
  261680. \fBPR\fP \fI\%#27776\fP: (\fI\%jfindlay\fP) return message when local jobs_cache not found
  261681. @ \fI2015\-10\-12 16:11:41 UTC\fP
  261682. .INDENT 2.0
  261683. .IP \(bu 2
  261684. 18e31584b0 Merge pull request \fI\%#27776\fP from jfindlay/local_msg
  261685. .IP \(bu 2
  261686. 03afa3cffa return message when local jobs_cache not found
  261687. .UNINDENT
  261688. .IP \(bu 2
  261689. \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)
  261690. .IP \(bu 2
  261691. \fBPR\fP \fI\%#27766\fP: (\fI\%jfindlay\fP) better check for debian userdel error
  261692. @ \fI2015\-10\-12 15:14:33 UTC\fP
  261693. .INDENT 2.0
  261694. .IP \(bu 2
  261695. 86cc7b5537 Merge pull request \fI\%#27766\fP from jfindlay/debmail
  261696. .IP \(bu 2
  261697. ee78da2c27 better check for debian userdel error
  261698. .UNINDENT
  261699. .IP \(bu 2
  261700. \fBISSUE\fP \fI\%#27756\fP: (\fI\%iggy\fP) syslog returner formats line incorrectly (refs: \fI\%#27758\fP)
  261701. .IP \(bu 2
  261702. \fBPR\fP \fI\%#27758\fP: (\fI\%iggy\fP) Remove redundant text from syslog returner
  261703. @ \fI2015\-10\-12 15:09:49 UTC\fP
  261704. .INDENT 2.0
  261705. .IP \(bu 2
  261706. c224386c9a Merge pull request \fI\%#27758\fP from iggy/patch\-1
  261707. .IP \(bu 2
  261708. 0994fb6a8c Remove redundant text from syslog returner
  261709. .UNINDENT
  261710. .IP \(bu 2
  261711. \fBISSUE\fP \fI\%#27832\fP: (\fI\%viking60\fP) Salt fails to recognize Manjaro (as an Arch derivate) (refs: \fI\%#27841\fP)
  261712. .IP \(bu 2
  261713. \fBPR\fP \fI\%#27841\fP: (\fI\%terminalmage\fP) Detect Manjaro Linux as Arch derivative
  261714. @ \fI2015\-10\-12 14:53:46 UTC\fP
  261715. .INDENT 2.0
  261716. .IP \(bu 2
  261717. 34a005041f Merge pull request \fI\%#27841\fP from terminalmage/issue27832
  261718. .IP \(bu 2
  261719. 8e09fbd6a3 Detect Manjaro Linux as Arch derivative
  261720. .UNINDENT
  261721. .IP \(bu 2
  261722. \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)
  261723. .IP \(bu 2
  261724. \fBPR\fP \fI\%#27852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27806\fP to 2015.5
  261725. @ \fI2015\-10\-12 14:53:17 UTC\fP
  261726. .INDENT 2.0
  261727. .IP \(bu 2
  261728. \fBPR\fP \fI\%#27806\fP: (\fI\%blast\-hardcheese\fP) Empty string is falsy (refs: \fI\%#27852\fP)
  261729. .IP \(bu 2
  261730. 3944a498ad Merge pull request \fI\%#27852\fP from rallytime/bp\-27806
  261731. .IP \(bu 2
  261732. a84bf18bc4 Empty string is falsy
  261733. .UNINDENT
  261734. .IP \(bu 2
  261735. \fBISSUE\fP \fI\%#27831\fP: (\fI\%basepi\fP) v2015.5.5 highstate outputter stacktracing for jobs.lookup_jid (refs: \fI\%#27838\fP)
  261736. .IP \(bu 2
  261737. \fBPR\fP \fI\%#27838\fP: (\fI\%basepi\fP) [2015.5] Fix highstate outputter for jobs.lookup_jid
  261738. @ \fI2015\-10\-09 22:26:28 UTC\fP
  261739. .INDENT 2.0
  261740. .IP \(bu 2
  261741. \fBPR\fP \fI\%#25521\fP: (\fI\%cachedout\fP) Fix outputter for state.orch (refs: \fI\%#27838\fP)
  261742. .IP \(bu 2
  261743. 7508a1c474 Merge pull request \fI\%#27838\fP from basepi/fix.runner.highstate.outputter.27831
  261744. .IP \(bu 2
  261745. 8ae9b66fd9 Don\(aqt pop \(aqoutputter\(aq, we expect it further down
  261746. .UNINDENT
  261747. .IP \(bu 2
  261748. \fBPR\fP \fI\%#27791\fP: (\fI\%eguven\fP) 2015.5 postgres_user groups backport
  261749. @ \fI2015\-10\-08 23:59:08 UTC\fP
  261750. .INDENT 2.0
  261751. .IP \(bu 2
  261752. d178315f93 Merge pull request \fI\%#27791\fP from eguven/2015.5\-postgres\-user\-groups\-backport
  261753. .IP \(bu 2
  261754. 2caf1d21d6 fix test
  261755. .IP \(bu 2
  261756. bc90c5bffe improve change reporting for postgres_user groups
  261757. .IP \(bu 2
  261758. 8712bce91a backport postgres_user groups
  261759. .UNINDENT
  261760. .IP \(bu 2
  261761. \fBPR\fP \fI\%#27759\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  261762. @ \fI2015\-10\-07 18:01:54 UTC\fP
  261763. .INDENT 2.0
  261764. .IP \(bu 2
  261765. b2937b6a16 Merge pull request \fI\%#27759\fP from basepi/merge\-forward\-2015.5
  261766. .IP \(bu 2
  261767. 792ee084bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  261768. .IP \(bu 2
  261769. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  261770. .IP \(bu 2
  261771. 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.
  261772. .UNINDENT
  261773. .IP \(bu 2
  261774. \fBISSUE\fP \fI\%#26673\fP: (\fI\%robkinyon\fP) __virtual__() doesn\(aqt work without __virtualname__ (refs: \fI\%#27732\fP)
  261775. .IP \(bu 2
  261776. \fBPR\fP \fI\%#27732\fP: (\fI\%jacobhammons\fP) update docs for __virtual__ and __virtualname__
  261777. @ \fI2015\-10\-07 17:29:31 UTC\fP
  261778. .INDENT 2.0
  261779. .IP \(bu 2
  261780. 4b9128b491 Merge pull request \fI\%#27732\fP from jacobhammons/26673
  261781. .IP \(bu 2
  261782. 75cc07cf10 noted that __virtual__ can return False and an error string
  261783. .IP \(bu 2
  261784. b928e1afa8 update docs for __virtual__ and __virtualname__ Refs \fI\%#26673\fP
  261785. .UNINDENT
  261786. .IP \(bu 2
  261787. \fBPR\fP \fI\%#27747\fP: (\fI\%Sacro\fP) Chocolatey doesn\(aqt have a help command.
  261788. @ \fI2015\-10\-07 16:06:53 UTC\fP
  261789. .INDENT 2.0
  261790. .IP \(bu 2
  261791. a130896d1c Merge pull request \fI\%#27747\fP from Sacro/fix\-chocolatey\-version
  261792. .IP \(bu 2
  261793. 8f1fa9e78e Chocolatey doesn\(aqt have a help command.
  261794. .UNINDENT
  261795. .IP \(bu 2
  261796. \fBPR\fP \fI\%#27733\fP: (\fI\%jacobhammons\fP) hardening topic \- updates to docs.saltstack.com theme
  261797. @ \fI2015\-10\-07 01:44:00 UTC\fP
  261798. .INDENT 2.0
  261799. .IP \(bu 2
  261800. 4e48651de0 Merge pull request \fI\%#27733\fP from jacobhammons/bug\-fixes
  261801. .IP \(bu 2
  261802. cbecd4f553 Updated saltstack2 theme to add SaltConf16 banner
  261803. .IP \(bu 2
  261804. 117e0c2bcc Added hardening topic based on the information in Refs \fI\%#27088\fP
  261805. .UNINDENT
  261806. .IP \(bu 2
  261807. \fBISSUE\fP \fI\%#9051\fP: (\fI\%olenz\fP) Add bash completion to the docs (refs: \fI\%#27706\fP)
  261808. .IP \(bu 2
  261809. \fBISSUE\fP \fI\%#27005\fP: (\fI\%johanek\fP) grains precedence (refs: \fI\%#27706\fP)
  261810. .IP \(bu 2
  261811. \fBISSUE\fP \fI\%#21475\fP: (\fI\%quantonganh\fP) Targeting with pillar should be added in to the main targeting page (refs: \fI\%#27706\fP)
  261812. .IP \(bu 2
  261813. \fBISSUE\fP \fI\%#14876\fP: (\fI\%whiteinge\fP) Create a pre\-Salted tutorial VM (refs: \fI\%#27706\fP)
  261814. .IP \(bu 2
  261815. \fBISSUE\fP \fI\%#13407\fP: (\fI\%gravyboat\fP) Create page explaining how to pass variables on the command line (refs: \fI\%#27706\fP)
  261816. .IP \(bu 2
  261817. \fBPR\fP \fI\%#27706\fP: (\fI\%jacobhammons\fP) Assorted doc bugs
  261818. @ \fI2015\-10\-06 05:35:29 UTC\fP
  261819. .INDENT 2.0
  261820. .IP \(bu 2
  261821. c58da846bf Merge pull request \fI\%#27706\fP from jacobhammons/bug\-fixes
  261822. .IP \(bu 2
  261823. 76dc8de71b Assorted doc bugs Refs \fI\%#9051\fP Refs \fI\%#13407\fP Refs \fI\%#21475\fP Refs \fI\%#14876\fP Refs \fI\%#27005\fP
  261824. .UNINDENT
  261825. .IP \(bu 2
  261826. \fBPR\fP \fI\%#27695\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27671\fP to 2015.5
  261827. @ \fI2015\-10\-05 21:57:36 UTC\fP
  261828. .INDENT 2.0
  261829. .IP \(bu 2
  261830. \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)
  261831. .IP \(bu 2
  261832. 43fba89865 Merge pull request \fI\%#27695\fP from rallytime/bp\-27671
  261833. .IP \(bu 2
  261834. 2a88028595 Added skip test_ext_pillar_env_mapping if git module does not exist.
  261835. .UNINDENT
  261836. .IP \(bu 2
  261837. \fBISSUE\fP \fI\%#27501\fP: (\fI\%yermulnik\fP) [FreeBSD] "pkg search" behavior changed since 1.5 series (refs: \fI\%#27524\fP)
  261838. .IP \(bu 2
  261839. \fBPR\fP \fI\%#27524\fP: (\fI\%jfindlay\fP) parse pkgng output in quiet mode for >= 1.6.1
  261840. @ \fI2015\-10\-05 21:22:40 UTC\fP
  261841. .INDENT 2.0
  261842. .IP \(bu 2
  261843. cb3d92676e Merge pull request \fI\%#27524\fP from jfindlay/pkgng_quiet
  261844. .IP \(bu 2
  261845. 5e9107b970 parse pkgng output in quiet mode for >= 1.6.0
  261846. .UNINDENT
  261847. .IP \(bu 2
  261848. \fBPR\fP \fI\%#27686\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27476\fP to 2015.5
  261849. @ \fI2015\-10\-05 21:17:59 UTC\fP
  261850. .INDENT 2.0
  261851. .IP \(bu 2
  261852. \fBPR\fP \fI\%#27476\fP: (\fI\%belvedere\-trading\fP) fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP (refs: \fI\%#27686\fP)
  261853. .IP \(bu 2
  261854. 5b88c55cc3 Merge pull request \fI\%#27686\fP from rallytime/bp\-27476
  261855. .IP \(bu 2
  261856. 3e08d3de8a fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP
  261857. .UNINDENT
  261858. .IP \(bu 2
  261859. \fBISSUE\fP \fI\%#27655\fP: (\fI\%gracinet\fP) postgres_local_cache handling of success (refs: \fI\%#27656\fP)
  261860. .IP \(bu 2
  261861. \fBPR\fP \fI\%#27684\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27656\fP to 2015.5
  261862. @ \fI2015\-10\-05 21:17:55 UTC\fP
  261863. .INDENT 2.0
  261864. .IP \(bu 2
  261865. \fBPR\fP \fI\%#27656\fP: (\fI\%gracinet\fP) Fix \fI\%#27655\fP: handling of success in postgres_local_cache (refs: \fI\%#27684\fP)
  261866. .IP \(bu 2
  261867. f9ddd4647f Merge pull request \fI\%#27684\fP from rallytime/bp\-27656
  261868. .IP \(bu 2
  261869. d3780cba00 Fix \fI\%#27655\fP: handling of success in postgres_local_cache
  261870. .UNINDENT
  261871. .IP \(bu 2
  261872. \fBPR\fP \fI\%#27683\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27659\fP to 2015.5
  261873. @ \fI2015\-10\-05 21:17:30 UTC\fP
  261874. .INDENT 2.0
  261875. .IP \(bu 2
  261876. \fBPR\fP \fI\%#27659\fP: (\fI\%gnubyexample\fP) .pub as public key is what we should send to remote (refs: \fI\%#27683\fP)
  261877. .IP \(bu 2
  261878. 7ca6f854ff Merge pull request \fI\%#27683\fP from rallytime/bp\-27659
  261879. .IP \(bu 2
  261880. 84b6ee0c58 .pub as public key is what we should send to remote
  261881. .UNINDENT
  261882. .IP \(bu 2
  261883. \fBPR\fP \fI\%#27682\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27566\fP to 2015.5
  261884. @ \fI2015\-10\-05 21:17:26 UTC\fP
  261885. .INDENT 2.0
  261886. .IP \(bu 2
  261887. \fBPR\fP \fI\%#27566\fP: (\fI\%blueyed\fP) returners.local_cache: fix endless loop on OSError (refs: \fI\%#27682\fP)
  261888. .IP \(bu 2
  261889. a0f3e34656 Merge pull request \fI\%#27682\fP from rallytime/bp\-27566
  261890. .IP \(bu 2
  261891. 2a44255748 minor: fix/format doc for returners.local_cache.prep_jid
  261892. .IP \(bu 2
  261893. fd485e2396 returners.local_cache: fix endless loop on OSError
  261894. .UNINDENT
  261895. .IP \(bu 2
  261896. \fBISSUE\fP \fI\%#25813\fP: (\fI\%whytewolf\fP) debconf.set throwing exception in 2015.8.0rc2 (refs: \fI\%#25928\fP)
  261897. .IP \(bu 2
  261898. \fBPR\fP \fI\%#27681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25928\fP to 2015.5
  261899. @ \fI2015\-10\-05 21:17:19 UTC\fP
  261900. .INDENT 2.0
  261901. .IP \(bu 2
  261902. \fBPR\fP \fI\%#25928\fP: (\fI\%cachedout\fP) Fix stacktrace for non\-existant states (refs: \fI\%#27681\fP)
  261903. .IP \(bu 2
  261904. 0b9ba911c4 Merge pull request \fI\%#27681\fP from rallytime/bp\-25928
  261905. .IP \(bu 2
  261906. 17e1ddf137 Fix stacktrace for non\-existant states
  261907. .UNINDENT
  261908. .IP \(bu 2
  261909. \fBISSUE\fP \fI\%#27505\fP: (\fI\%silenius\fP) [FreeBSD] state.service + provider daemontools is broken (refs: \fI\%#27535\fP)
  261910. .IP \(bu 2
  261911. \fBPR\fP \fI\%#27680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27535\fP to 2015.5
  261912. @ \fI2015\-10\-05 21:17:10 UTC\fP
  261913. .INDENT 2.0
  261914. .IP \(bu 2
  261915. \fBPR\fP \fI\%#27535\fP: (\fI\%silenius\fP) Issue 27505 (refs: \fI\%#27680\fP)
  261916. .IP \(bu 2
  261917. 23da0d316a Merge pull request \fI\%#27680\fP from rallytime/bp\-27535
  261918. .IP \(bu 2
  261919. 04aed5e105 Versionadded change since 2015.5.6 has already been tagged
  261920. .IP \(bu 2
  261921. 579f2646ba .. versionadded:: 2015.5.6
  261922. .IP \(bu 2
  261923. cbaf46e066 python <2.7 compability (pylint issue)
  261924. .IP \(bu 2
  261925. ecde499478 s/bin/b to avoid confusion with bin()
  261926. .IP \(bu 2
  261927. 4237c5db80 add a __virtual__ to check that daemontools is installed properly
  261928. .IP \(bu 2
  261929. 623935a1bc fix doc
  261930. .IP \(bu 2
  261931. 573de3abd6 fix pylint issue
  261932. .IP \(bu 2
  261933. 5eb6a30d40 fix pep8 issues
  261934. .IP \(bu 2
  261935. 298cf4f5c0 import missing logging module
  261936. .IP \(bu 2
  261937. fe0ad36609 log was missing
  261938. .IP \(bu 2
  261939. e457083465 s/systemd/FreeBSD
  261940. .IP \(bu 2
  261941. 3512712e89 forgot service name..
  261942. .IP \(bu 2
  261943. 8f193a7bcc fixes \fI\%#27505\fP
  261944. .UNINDENT
  261945. .IP \(bu 2
  261946. \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()
  261947. @ \fI2015\-10\-05 18:01:29 UTC\fP
  261948. .INDENT 2.0
  261949. .IP \(bu 2
  261950. 7d7b97eab6 Merge pull request \fI\%#27442\fP from JaseFace/fix\-27391\-for\-2015.5
  261951. .IP \(bu 2
  261952. 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.
  261953. .UNINDENT
  261954. .IP \(bu 2
  261955. \fBISSUE\fP \fI\%#26320\fP: (\fI\%schlagify\fP) pkg & diskusage beacons not sending alerts (refs: \fI\%#27641\fP)
  261956. .IP \(bu 2
  261957. \fBPR\fP \fI\%#27641\fP: (\fI\%rallytime\fP) Gate the psutil import and add depends doc for diskusage beacon
  261958. @ \fI2015\-10\-05 17:00:48 UTC\fP
  261959. .INDENT 2.0
  261960. .IP \(bu 2
  261961. ccbba8656b Merge pull request \fI\%#27641\fP from rallytime/gate\-psutil\-diskusage
  261962. .IP \(bu 2
  261963. da2d93a3dd Gate the psutil import and add depends doc for diskusage beacon
  261964. .UNINDENT
  261965. .IP \(bu 2
  261966. \fBPR\fP \fI\%#27644\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27640\fP to 2015.5
  261967. @ \fI2015\-10\-05 14:55:31 UTC\fP
  261968. .INDENT 2.0
  261969. .IP \(bu 2
  261970. \fBPR\fP \fI\%#27640\fP: (\fI\%stephen144\fP) fix typo in default pillar path (refs: \fI\%#27644\fP)
  261971. .IP \(bu 2
  261972. 09183994f9 Merge pull request \fI\%#27644\fP from rallytime/bp\-27640
  261973. .IP \(bu 2
  261974. a9063a9745 fix typo in default pillar path
  261975. .UNINDENT
  261976. .IP \(bu 2
  261977. \fBISSUE\fP \fI\%#27609\fP: (\fI\%rallytime\fP) GCE with various external_ip settings cause stacktraces (refs: \fI\%#27612\fP)
  261978. .IP \(bu 2
  261979. \fBPR\fP \fI\%#27612\fP: (\fI\%rallytime\fP) Fix GCE external_ip stacktraces in 2015.5
  261980. @ \fI2015\-10\-02 15:42:20 UTC\fP
  261981. .INDENT 2.0
  261982. .IP \(bu 2
  261983. 27fcecccbe Merge pull request \fI\%#27612\fP from rallytime/fix\-27609
  261984. .IP \(bu 2
  261985. 8dc047dc18 If external_up is set to None, don\(aqt stacktrace, just use the private ip.
  261986. .IP \(bu 2
  261987. 2ebf790f9f [salt\-cloud] gce: don\(aqt stacktrace if Ephemeral is given instead of ephemeral
  261988. .UNINDENT
  261989. .IP \(bu 2
  261990. \fBPR\fP \fI\%#27568\fP: (\fI\%jacobhammons\fP) regenerated man pages
  261991. @ \fI2015\-10\-01 15:39:37 UTC\fP
  261992. .INDENT 2.0
  261993. .IP \(bu 2
  261994. c84a1edc1b Merge pull request \fI\%#27568\fP from jacobhammons/man\-pages\-five
  261995. .IP \(bu 2
  261996. b59c03d20d regenerated man pages
  261997. .UNINDENT
  261998. .UNINDENT
  261999. .SS Salt 2015.5.8 Release Notes
  262000. .INDENT 0.0
  262001. .TP
  262002. .B release
  262003. 2015\-12\-01
  262004. .UNINDENT
  262005. .sp
  262006. Version 2015.5.8 is a bugfix release for 2015.5.0\&.
  262007. .SS Statistics
  262008. .INDENT 0.0
  262009. .IP \(bu 2
  262010. Total Merges: \fB17\fP
  262011. .IP \(bu 2
  262012. Total Issue References: \fB12\fP
  262013. .IP \(bu 2
  262014. Total PR References: \fB27\fP
  262015. .IP \(bu 2
  262016. 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)
  262017. .UNINDENT
  262018. .SS Security Fix
  262019. .sp
  262020. \fBCVE\-2015\-8034\fP Saving \fBstate.sls\fP cache
  262021. data to disk with insecure permissions
  262022. .sp
  262023. This affects users of the \fBstate.sls\fP
  262024. function. The state run cache on the minion was being created with incorrect
  262025. permissions. This file could potentially contain sensitive data that was
  262026. inserted via jinja into the state SLS files. The permissions for this file are
  262027. now being set correctly. Thanks to \fI\%zmalone\fP for bringing this issue to our
  262028. attention.
  262029. .SS Changelog for v2015.5.7..v2015.5.8
  262030. .sp
  262031. \fIGenerated at: 2018\-05\-27 22:25:07 UTC\fP
  262032. .INDENT 0.0
  262033. .IP \(bu 2
  262034. \fBISSUE\fP \fI\%#28883\fP: (\fI\%ldelossa\fP) Issues running select states \- local variable \(aqsalt\(aq referenced before assignment (refs: \fI\%#29113\fP)
  262035. .IP \(bu 2
  262036. \fBPR\fP \fI\%#29164\fP: (\fI\%jfindlay\fP) Backport \fI\%#29113\fP
  262037. @ \fI2015\-11\-24 21:26:17 UTC\fP
  262038. .INDENT 2.0
  262039. .IP \(bu 2
  262040. \fBPR\fP \fI\%#29113\fP: (\fI\%TronPaul\fP) Kill unneeded import (refs: \fI\%#29164\fP)
  262041. .IP \(bu 2
  262042. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28839\fP, \fI\%#29113\fP)
  262043. .IP \(bu 2
  262044. a26c10a811 Merge pull request \fI\%#29164\fP from jfindlay/bp\-29113
  262045. .IP \(bu 2
  262046. 50fab35188 kill unneeded import
  262047. .UNINDENT
  262048. .IP \(bu 2
  262049. \fBPR\fP \fI\%#29138\fP: (\fI\%jfindlay\fP) add 2015.5.8 release notes
  262050. @ \fI2015\-11\-23 23:22:48 UTC\fP
  262051. .INDENT 2.0
  262052. .IP \(bu 2
  262053. 4f03196e7d Merge pull request \fI\%#29138\fP from jfindlay/2015.5
  262054. .IP \(bu 2
  262055. be045f5cb1 add 2015.5.8 release notes
  262056. .UNINDENT
  262057. .IP \(bu 2
  262058. \fBISSUE\fP \fI\%#29110\fP: (\fI\%mohshami\fP) 2015.8.2 broke orchestration (refs: \fI\%#29122\fP)
  262059. .IP \(bu 2
  262060. \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)
  262061. .IP \(bu 2
  262062. \fBPR\fP \fI\%#29128\fP: (\fI\%cachedout\fP) Set a safer default value for ret in saltmod
  262063. @ \fI2015\-11\-23 17:07:40 UTC\fP
  262064. .INDENT 2.0
  262065. .IP \(bu 2
  262066. \fBPR\fP \fI\%#29122\fP: (\fI\%cachedout\fP) Fix broken state orchestration (refs: \fI\%#29128\fP)
  262067. .IP \(bu 2
  262068. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output (refs: \fI\%#29122\fP)
  262069. .IP \(bu 2
  262070. 219367a23d Merge pull request \fI\%#29128\fP from cachedout/tweak_29122
  262071. .IP \(bu 2
  262072. b08858b040 Missed check
  262073. .IP \(bu 2
  262074. 584efe81ee Set a safer default value for ret in saltmod
  262075. .UNINDENT
  262076. .IP \(bu 2
  262077. \fBISSUE\fP \fI\%#29110\fP: (\fI\%mohshami\fP) 2015.8.2 broke orchestration (refs: \fI\%#29122\fP)
  262078. .IP \(bu 2
  262079. \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)
  262080. .IP \(bu 2
  262081. \fBPR\fP \fI\%#29122\fP: (\fI\%cachedout\fP) Fix broken state orchestration (refs: \fI\%#29128\fP)
  262082. @ \fI2015\-11\-23 16:24:18 UTC\fP
  262083. .INDENT 2.0
  262084. .IP \(bu 2
  262085. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output (refs: \fI\%#29122\fP)
  262086. .IP \(bu 2
  262087. 2250a36647 Merge pull request \fI\%#29122\fP from cachedout/issue_29110
  262088. .IP \(bu 2
  262089. 4b9302d794 Fix broken state orchestration
  262090. .UNINDENT
  262091. .IP \(bu 2
  262092. \fBPR\fP \fI\%#29096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29093\fP to 2015.5
  262093. @ \fI2015\-11\-22 17:02:51 UTC\fP
  262094. .INDENT 2.0
  262095. .IP \(bu 2
  262096. \fBPR\fP \fI\%#29093\fP: (\fI\%cxmcc\fP) Compare gem versions as a string. (refs: \fI\%#29096\fP)
  262097. .IP \(bu 2
  262098. 200e771efb Merge pull request \fI\%#29096\fP from rallytime/bp\-29093
  262099. .IP \(bu 2
  262100. f5734423a4 Compare gem versions as a string.
  262101. .UNINDENT
  262102. .IP \(bu 2
  262103. \fBPR\fP \fI\%#29084\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29055\fP to 2015.5
  262104. @ \fI2015\-11\-20 20:57:54 UTC\fP
  262105. .INDENT 2.0
  262106. .IP \(bu 2
  262107. \fBPR\fP \fI\%#29055\fP: (\fI\%cachedout\fP) Add section to style guide (refs: \fI\%#29084\fP)
  262108. .IP \(bu 2
  262109. d8a2018bc8 Merge pull request \fI\%#29084\fP from rallytime/bp\-29055
  262110. .IP \(bu 2
  262111. 52e650aed9 Add section to style guide
  262112. .UNINDENT
  262113. .IP \(bu 2
  262114. \fBPR\fP \fI\%#29083\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29053\fP to 2015.5
  262115. @ \fI2015\-11\-20 20:57:38 UTC\fP
  262116. .INDENT 2.0
  262117. .IP \(bu 2
  262118. \fBPR\fP \fI\%#29053\fP: (\fI\%kevinlondon\fP) Update rabbitmq_user.py (refs: \fI\%#29083\fP)
  262119. .IP \(bu 2
  262120. b5cff1a351 Merge pull request \fI\%#29083\fP from rallytime/bp\-29053
  262121. .IP \(bu 2
  262122. f1884de0e7 Update rabbitmq_user.py
  262123. .UNINDENT
  262124. .IP \(bu 2
  262125. \fBISSUE\fP \fI\%#28928\fP: (\fI\%twangboy\fP) Fix user.present 2015.5 (refs: \fI\%#28932\fP)
  262126. .IP \(bu 2
  262127. \fBPR\fP \fI\%#28932\fP: (\fI\%twangboy\fP) Fixed user.present / user.absent in windows
  262128. @ \fI2015\-11\-18 21:45:53 UTC\fP
  262129. .INDENT 2.0
  262130. .IP \(bu 2
  262131. \fBPR\fP \fI\%#28627\fP: (\fI\%twangboy\fP) Backport win_useradd (refs: \fI\%#28932\fP)
  262132. .IP \(bu 2
  262133. b3e3bebef0 Merge pull request \fI\%#28932\fP from twangboy/fix_28928
  262134. .IP \(bu 2
  262135. 0653a04887 Fixed user.present / user.absent in windows
  262136. .UNINDENT
  262137. .IP \(bu 2
  262138. \fBISSUE\fP \fI\%#26911\fP: (\fI\%dsumsky\fP) file.manage state does not work with Amazon S3 URLs on Windows (refs: \fI\%#28630\fP)
  262139. .IP \(bu 2
  262140. \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)
  262141. .IP \(bu 2
  262142. \fBPR\fP \fI\%#29011\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28630\fP to 2015.5
  262143. @ \fI2015\-11\-18 17:50:05 UTC\fP
  262144. .INDENT 2.0
  262145. .IP \(bu 2
  262146. \fBPR\fP \fI\%#28630\fP: (\fI\%messa\fP) Use S3 credentials from Pillar (refs: \fI\%#29011\fP)
  262147. .IP \(bu 2
  262148. a2e4a227e0 Merge pull request \fI\%#29011\fP from rallytime/bp\-28630
  262149. .IP \(bu 2
  262150. 7baccc1b05 Lint \- newline before def
  262151. .IP \(bu 2
  262152. 9e5c16d4da Reading S3 credentials from Pillar
  262153. .IP \(bu 2
  262154. a3216f813d Fixed requests HTTPError handler, it was still in urllib2 style
  262155. .UNINDENT
  262156. .IP \(bu 2
  262157. \fBPR\fP \fI\%#28982\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  262158. @ \fI2015\-11\-18 00:49:32 UTC\fP
  262159. .INDENT 2.0
  262160. .IP \(bu 2
  262161. 1a4cd6002f Merge pull request \fI\%#28982\fP from basepi/merge\-forward\-2015.5
  262162. .IP \(bu 2
  262163. bfbb109fbd Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  262164. .IP \(bu 2
  262165. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  262166. .IP \(bu 2
  262167. 215b26c06f Revert \fI\%#28740\fP
  262168. .UNINDENT
  262169. .IP \(bu 2
  262170. \fBISSUE\fP \fI\%#28947\fP: (\fI\%dmyerscough\fP) sdb modules are not synced out (refs: \fI\%#28949\fP)
  262171. .IP \(bu 2
  262172. \fBPR\fP \fI\%#28949\fP: (\fI\%whiteinge\fP) Add sync_sdb execution function
  262173. @ \fI2015\-11\-17 15:35:38 UTC\fP
  262174. .INDENT 2.0
  262175. .IP \(bu 2
  262176. edd26d763a Merge pull request \fI\%#28949\fP from whiteinge/sync\-sdb
  262177. .IP \(bu 2
  262178. b0ec9ab25b Add sync_sdb execution function
  262179. .UNINDENT
  262180. .IP \(bu 2
  262181. \fBISSUE\fP \fI\%#28888\fP: (\fI\%twangboy\fP) Fix file.comment (refs: \fI\%#28930\fP)
  262182. .IP \(bu 2
  262183. \fBPR\fP \fI\%#28930\fP: (\fI\%twangboy\fP) Added missing import mmap required by file.py
  262184. @ \fI2015\-11\-16 23:17:23 UTC\fP
  262185. .INDENT 2.0
  262186. .IP \(bu 2
  262187. 43da1bc4ce Merge pull request \fI\%#28930\fP from twangboy/fix_28888
  262188. .IP \(bu 2
  262189. f5c489eaad Added missing import mmap required by file.py
  262190. .UNINDENT
  262191. .IP \(bu 2
  262192. \fBPR\fP \fI\%#28908\fP: (\fI\%rallytime\fP) A couple of spelling fixes for doc conventions page.
  262193. @ \fI2015\-11\-16 02:29:35 UTC\fP
  262194. .INDENT 2.0
  262195. .IP \(bu 2
  262196. 2488b873b8 Merge pull request \fI\%#28908\fP from rallytime/doc\-convention\-spelling
  262197. .IP \(bu 2
  262198. 60e6eddb77 A couple of spelling fixes for doc conventions page.
  262199. .UNINDENT
  262200. .IP \(bu 2
  262201. \fBISSUE\fP \fI\%#22442\fP: (\fI\%allanliu\fP) rest_cherrypy /keys URL does not handle JSON requests (refs: \fI\%#28902\fP)
  262202. .IP \(bu 2
  262203. \fBPR\fP \fI\%#28902\fP: (\fI\%whiteinge\fP) Fix missing JSON support for /keys endpoint
  262204. @ \fI2015\-11\-15 15:36:05 UTC\fP
  262205. .INDENT 2.0
  262206. .IP \(bu 2
  262207. 827a1ae020 Merge pull request \fI\%#28902\fP from whiteinge/json\-keys
  262208. .IP \(bu 2
  262209. 9745903301 Fix missing JSON support for /keys endpoint
  262210. .UNINDENT
  262211. .IP \(bu 2
  262212. \fBPR\fP \fI\%#28897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28873\fP to 2015.5
  262213. @ \fI2015\-11\-15 00:43:35 UTC\fP
  262214. .INDENT 2.0
  262215. .IP \(bu 2
  262216. \fBPR\fP \fI\%#28873\fP: (\fI\%tehmaspc\fP) Fix salt\-cloud help output typo (refs: \fI\%#28897\fP)
  262217. .IP \(bu 2
  262218. d23bd49130 Merge pull request \fI\%#28897\fP from rallytime/bp\-28873
  262219. .IP \(bu 2
  262220. 077e671ead Fix salt\-cloud help output typo
  262221. .UNINDENT
  262222. .IP \(bu 2
  262223. \fBISSUE\fP \fI\%#28870\fP: (\fI\%basepi\fP) mdadm commands failing (refs: \fI\%#28871\fP)
  262224. .IP \(bu 2
  262225. \fBPR\fP \fI\%#28871\fP: (\fI\%basepi\fP) [2015.5] Fix command generation for mdadm.assemble
  262226. @ \fI2015\-11\-13 21:54:33 UTC\fP
  262227. .INDENT 2.0
  262228. .IP \(bu 2
  262229. a9dc8b6ca6 Merge pull request \fI\%#28871\fP from basepi/mdadm.fix.28870
  262230. .IP \(bu 2
  262231. 323bc2d2ac Fix command generation for mdadm.assemble
  262232. .UNINDENT
  262233. .UNINDENT
  262234. .SS Salt 2015.5.9 Release Notes
  262235. .INDENT 0.0
  262236. .TP
  262237. .B release
  262238. 2016\-01\-11
  262239. .UNINDENT
  262240. .sp
  262241. Version 2015.5.9 is a bugfix release for 2015.5.0\&.
  262242. .SS Statistics
  262243. .INDENT 0.0
  262244. .IP \(bu 2
  262245. Total Merges: \fB45\fP
  262246. .IP \(bu 2
  262247. Total Issue References: \fB21\fP
  262248. .IP \(bu 2
  262249. Total PR References: \fB48\fP
  262250. .IP \(bu 2
  262251. 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)
  262252. .UNINDENT
  262253. .SS Changelog for v2015.5.8..v2015.5.9
  262254. .sp
  262255. \fIGenerated at: 2018\-05\-27 22:31:06 UTC\fP
  262256. .INDENT 0.0
  262257. .IP \(bu 2
  262258. \fBPR\fP \fI\%#30248\fP: (\fI\%jfindlay\fP) add 2015.5.9 release notes
  262259. @ \fI2016\-01\-08 23:13:10 UTC\fP
  262260. .INDENT 2.0
  262261. .IP \(bu 2
  262262. 92889db638 Merge pull request \fI\%#30248\fP from jfindlay/2015.5
  262263. .IP \(bu 2
  262264. 741f7aba31 add 2015.5.9 release notes
  262265. .UNINDENT
  262266. .IP \(bu 2
  262267. \fBPR\fP \fI\%#30237\fP: (\fI\%jacobhammons\fP) Updated man pages and doc version for 2015.5.9
  262268. @ \fI2016\-01\-08 18:10:05 UTC\fP
  262269. .INDENT 2.0
  262270. .IP \(bu 2
  262271. 7a329d89d7 Merge pull request \fI\%#30237\fP from jacobhammons/man\-pages\-prev
  262272. .IP \(bu 2
  262273. 2431c4c5c3 Updated man page and doc conf.py copyright year to 2016
  262274. .IP \(bu 2
  262275. fe3da1c174 Updated man pages and doc version for 2015.5.9
  262276. .UNINDENT
  262277. .IP \(bu 2
  262278. \fBPR\fP \fI\%#30207\fP: (\fI\%rallytime\fP) Use correct spacing in rabbitmq state examples
  262279. @ \fI2016\-01\-07 18:37:35 UTC\fP
  262280. .INDENT 2.0
  262281. .IP \(bu 2
  262282. 2c0b725924 Merge pull request \fI\%#30207\fP from rallytime/rabbitmq_states_doc_fix
  262283. .IP \(bu 2
  262284. 8d48c24182 Use correct spacing in rabbitmq state examples
  262285. .UNINDENT
  262286. .IP \(bu 2
  262287. \fBPR\fP \fI\%#30191\fP: (\fI\%jacobhammons\fP) Updated doc site banners
  262288. @ \fI2016\-01\-06 22:37:40 UTC\fP
  262289. .INDENT 2.0
  262290. .IP \(bu 2
  262291. b49cf910f4 Merge pull request \fI\%#30191\fP from jacobhammons/banner\-prev
  262292. .IP \(bu 2
  262293. c3390955b0 Updated doc site banners
  262294. .UNINDENT
  262295. .IP \(bu 2
  262296. \fBISSUE\fP \fI\%#29633\fP: (\fI\%twellspring\fP) user.present does not modify home directory (refs: \fI\%#30125\fP)
  262297. .IP \(bu 2
  262298. \fBPR\fP \fI\%#30125\fP: (\fI\%abednarik\fP) Update user home event when createhome is set to False
  262299. @ \fI2016\-01\-05 18:15:38 UTC\fP
  262300. .INDENT 2.0
  262301. .IP \(bu 2
  262302. 9363d6f5b6 Merge pull request \fI\%#30125\fP from abednarik/update_user_home
  262303. .IP \(bu 2
  262304. 56544a77f6 Update user home event when createhome is set to False
  262305. .UNINDENT
  262306. .IP \(bu 2
  262307. \fBISSUE\fP \fI\%#10155\fP: (\fI\%jhenry82\fP) Option to select a random master in multi\-master mode (refs: \fI\%#30127\fP)
  262308. .IP \(bu 2
  262309. \fBPR\fP \fI\%#30127\fP: (\fI\%jsutton\fP) Updating documentation and example minion config for random_master/master_shuffle.
  262310. @ \fI2016\-01\-04 19:30:50 UTC\fP
  262311. .INDENT 2.0
  262312. .IP \(bu 2
  262313. 1a5d585d91 Merge pull request \fI\%#30127\fP from jsutton/clarify\-documenation\-for\-random_master
  262314. .IP \(bu 2
  262315. 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.
  262316. .UNINDENT
  262317. .IP \(bu 2
  262318. \fBPR\fP \fI\%#30110\fP: (\fI\%markckimball\fP) Fixed flag sent to salt.utils.http in order for verify_ssl to work correctly
  262319. @ \fI2015\-12\-31 21:17:53 UTC\fP
  262320. .INDENT 2.0
  262321. .IP \(bu 2
  262322. 28b1bbbe77 Merge pull request \fI\%#30110\fP from markckimball/fix\-verify_ssl\-in\-joyent\-cloud
  262323. .IP \(bu 2
  262324. e1c08cb269 Fixed flag sent to salt.utils.http in order for verify_ssl to work appropriately.
  262325. .UNINDENT
  262326. .IP \(bu 2
  262327. \fBPR\fP \fI\%#30093\fP: (\fI\%zmalone\fP) Noting that file_roots and "state tree" should both be avoided
  262328. @ \fI2015\-12\-30 22:40:05 UTC\fP
  262329. .INDENT 2.0
  262330. .IP \(bu 2
  262331. 040412b0b1 Merge pull request \fI\%#30093\fP from zmalone/pillar\-notes
  262332. .IP \(bu 2
  262333. 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.
  262334. .UNINDENT
  262335. .IP \(bu 2
  262336. \fBISSUE\fP \fI\%#28120\fP: (\fI\%jtylers\fP) Clear text passwords (refs: \fI\%#30097\fP)
  262337. .IP \(bu 2
  262338. \fBPR\fP \fI\%#30097\fP: (\fI\%cachedout\fP) Note concern about cleartext password in docs for shadow.gen_password
  262339. @ \fI2015\-12\-30 22:37:33 UTC\fP
  262340. .INDENT 2.0
  262341. .IP \(bu 2
  262342. 25edefc93a Merge pull request \fI\%#30097\fP from cachedout/note_on_password_process_list
  262343. .IP \(bu 2
  262344. 58aec884ef Note concern about cleartext password in docs for shadow.gen_password
  262345. .UNINDENT
  262346. .IP \(bu 2
  262347. \fBPR\fP \fI\%#30089\fP: (\fI\%mpreziuso\fP) Fixes terminology and adds more accurate details about the algorithms
  262348. @ \fI2015\-12\-30 20:02:18 UTC\fP
  262349. .INDENT 2.0
  262350. .IP \(bu 2
  262351. 6b1c3a6bf2 Merge pull request \fI\%#30089\fP from mpreziuso/patch\-1
  262352. .IP \(bu 2
  262353. 50533add40 Fixes terminology and adds more accurate details about the algorithms
  262354. .UNINDENT
  262355. .IP \(bu 2
  262356. \fBISSUE\fP \fI\%#29921\fP: (\fI\%anlutro\fP) pygit 0.21 not fully supported? (refs: \fI\%#30086\fP)
  262357. .IP \(bu 2
  262358. \fBPR\fP \fI\%#30086\fP: (\fI\%cachedout\fP) Document that gitfs needs recent libs
  262359. @ \fI2015\-12\-30 19:26:05 UTC\fP
  262360. .INDENT 2.0
  262361. .IP \(bu 2
  262362. 200d09385d Merge pull request \fI\%#30086\fP from cachedout/issue_29921
  262363. .IP \(bu 2
  262364. 8c29e2dd6a Document that gitfs needs recent libs
  262365. .UNINDENT
  262366. .IP \(bu 2
  262367. \fBISSUE\fP \fI\%#27835\fP: (\fI\%bertjwregeer\fP) [FreeBSD] salt\-ssh hangs forever (refs: \fI\%#30070\fP)
  262368. .IP \(bu 2
  262369. \fBPR\fP \fI\%#30070\fP: (\fI\%cachedout\fP) Add documentation on debugging salt\-ssh
  262370. @ \fI2015\-12\-29 23:00:06 UTC\fP
  262371. .INDENT 2.0
  262372. .IP \(bu 2
  262373. 404414bf57 Merge pull request \fI\%#30070\fP from cachedout/issue_27835
  262374. .IP \(bu 2
  262375. 60431e342a Add documentation on debugging salt\-ssh
  262376. .UNINDENT
  262377. .IP \(bu 2
  262378. \fBPR\fP \fI\%#30059\fP: (\fI\%mpreziuso\fP) Fixes wrong function scope
  262379. @ \fI2015\-12\-29 16:12:06 UTC\fP
  262380. .INDENT 2.0
  262381. .IP \(bu 2
  262382. 84db12212d Merge pull request \fI\%#30059\fP from mpreziuso/patch\-1
  262383. .IP \(bu 2
  262384. 1cb1c2da07 Fixes wrong function scope
  262385. .UNINDENT
  262386. .IP \(bu 2
  262387. \fBPR\fP \fI\%#30025\fP: (\fI\%justinta\fP) Skipping some Boto tests until resolved moto issue
  262388. @ \fI2015\-12\-28 15:21:45 UTC\fP
  262389. .INDENT 2.0
  262390. .IP \(bu 2
  262391. \fBPR\fP \fI\%#29725\fP: (\fI\%cachedout\fP) Disable some boto tests per resolution of moto issue (refs: \fI\%#30025\fP)
  262392. .IP \(bu 2
  262393. 1c6c9b1a06 Merge pull request \fI\%#30025\fP from jtand/boto_tests
  262394. .IP \(bu 2
  262395. e706642152 Skipping some Boto tests until resolved moto issue
  262396. .UNINDENT
  262397. .IP \(bu 2
  262398. \fBISSUE\fP \fI\%#28956\fP: (\fI\%racooper\fP) Netscaler module doc enhancements (refs: \fI\%#29949\fP)
  262399. .IP \(bu 2
  262400. \fBPR\fP \fI\%#29949\fP: (\fI\%aletourneau\fP) Enhanced netscaler docstring
  262401. @ \fI2015\-12\-22 20:26:52 UTC\fP
  262402. .INDENT 2.0
  262403. .IP \(bu 2
  262404. 0f91021c59 Merge pull request \fI\%#29949\fP from aletourneau/2015.5
  262405. .IP \(bu 2
  262406. cf855fe262 Fixed trailing white spaces
  262407. .IP \(bu 2
  262408. 864801e002 fixed version
  262409. .IP \(bu 2
  262410. 041d9346c4 Enhanced netscaler docstring
  262411. .UNINDENT
  262412. .IP \(bu 2
  262413. \fBPR\fP \fI\%#29941\fP: (\fI\%cachedout\fP) Fix spelling error in boto_vpc
  262414. @ \fI2015\-12\-22 15:49:54 UTC\fP
  262415. .INDENT 2.0
  262416. .IP \(bu 2
  262417. 229d3eb60b Merge pull request \fI\%#29941\fP from cachedout/boto_spelling
  262418. .IP \(bu 2
  262419. b11bfd07b8 Fix spelling error in boto_vpc
  262420. .UNINDENT
  262421. .IP \(bu 2
  262422. \fBISSUE\fP \fI\%#29880\fP: (\fI\%githubcdr\fP) Salt pkg.uptodate fails on Arch linux (refs: \fI\%#29908\fP)
  262423. .IP \(bu 2
  262424. \fBPR\fP \fI\%#29908\fP: (\fI\%cachedout\fP) Allow kwargs to be passed to pacman provide for update func
  262425. @ \fI2015\-12\-22 15:04:18 UTC\fP
  262426. .INDENT 2.0
  262427. .IP \(bu 2
  262428. 69c5ada636 Merge pull request \fI\%#29908\fP from cachedout/issue_29880
  262429. .IP \(bu 2
  262430. 4cd77b4118 Allow kwargs to be passed to pacman provide for update func
  262431. .UNINDENT
  262432. .IP \(bu 2
  262433. \fBISSUE\fP \fI\%#27056\fP: (\fI\%oogali\fP) pkgng provider on FreeBSD does not do BATCH=yes (refs: \fI\%#29909\fP)
  262434. .IP \(bu 2
  262435. \fBPR\fP \fI\%#29909\fP: (\fI\%abednarik\fP) FreeBSD pkgng fix for non\-interactive install.
  262436. @ \fI2015\-12\-22 15:03:50 UTC\fP
  262437. .INDENT 2.0
  262438. .IP \(bu 2
  262439. ad0de4d563 Merge pull request \fI\%#29909\fP from abednarik/freebsd_pkgng_non_interactive_fix
  262440. .IP \(bu 2
  262441. 8ac213001a FreeBSD pkgng fix for non\-interactive install.
  262442. .UNINDENT
  262443. .IP \(bu 2
  262444. \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)
  262445. .IP \(bu 2
  262446. \fBPR\fP \fI\%#29730\fP: (\fI\%rallytime\fP) Update docker\-py version requirement to 0.6.0 for dockerio.py files
  262447. @ \fI2015\-12\-16 14:44:40 UTC\fP
  262448. .INDENT 2.0
  262449. .IP \(bu 2
  262450. f43f3d166c Merge pull request \fI\%#29730\fP from rallytime/fix\-24698
  262451. .IP \(bu 2
  262452. 120fd5fdf0 Update docker\-py version requirement to 0.6.0 for dockerio.py files
  262453. .UNINDENT
  262454. .IP \(bu 2
  262455. \fBISSUE\fP \fI\%#23343\fP: (\fI\%micaelbergeron\fP) npm state ignore the requested version (refs: \fI\%#29715\fP)
  262456. .IP \(bu 2
  262457. \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)
  262458. .IP \(bu 2
  262459. \fBPR\fP \fI\%#29715\fP: (\fI\%rallytime\fP) Install correct package version, if provided, for npm state.
  262460. @ \fI2015\-12\-15 23:19:45 UTC\fP
  262461. .INDENT 2.0
  262462. .IP \(bu 2
  262463. c393a4175a Merge pull request \fI\%#29715\fP from rallytime/fix\-23343
  262464. .IP \(bu 2
  262465. a0ed857c37 Install correct package version, if provided, for npm state.
  262466. .UNINDENT
  262467. .IP \(bu 2
  262468. \fBPR\fP \fI\%#29721\fP: (\fI\%terminalmage\fP) Fix display of multiline strings when iterating over a list
  262469. @ \fI2015\-12\-15 22:16:10 UTC\fP
  262470. .INDENT 2.0
  262471. .IP \(bu 2
  262472. 1310afbbc2 Merge pull request \fI\%#29721\fP from terminalmage/nested\-output\-multiline\-fix
  262473. .IP \(bu 2
  262474. 761be9cb93 Fix display of multiline strings when iterating over a list
  262475. .UNINDENT
  262476. .IP \(bu 2
  262477. \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)
  262478. .IP \(bu 2
  262479. \fBPR\fP \fI\%#29646\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on kwargs.get if kwargs=None
  262480. @ \fI2015\-12\-15 19:02:58 UTC\fP
  262481. .INDENT 2.0
  262482. .IP \(bu 2
  262483. 52cc07cec9 Merge pull request \fI\%#29646\fP from rallytime/fix\-29488
  262484. .IP \(bu 2
  262485. c5fa9e9351 Don\(aqt stacktrace on kwargs.get if kwargs=None
  262486. .UNINDENT
  262487. .IP \(bu 2
  262488. \fBISSUE\fP \fI\%#29661\fP: (\fI\%mosuowhq\fP) bug report when creating VM in /salt/cloud/clouds/nova.py (refs: \fI\%#29673\fP)
  262489. .IP \(bu 2
  262490. \fBPR\fP \fI\%#29673\fP: (\fI\%rallytime\fP) Default value should be False and not \(aqFalse\(aq
  262491. @ \fI2015\-12\-14 18:08:44 UTC\fP
  262492. .INDENT 2.0
  262493. .IP \(bu 2
  262494. f606c23ea8 Merge pull request \fI\%#29673\fP from rallytime/fix\-29661
  262495. .IP \(bu 2
  262496. e4af7a1157 Default value should be False and not \(aqFalse\(aq
  262497. .UNINDENT
  262498. .IP \(bu 2
  262499. \fBPR\fP \fI\%#29527\fP: (\fI\%jfindlay\fP) 2015.5.7 notes: add note about not being released
  262500. @ \fI2015\-12\-08 21:08:26 UTC\fP
  262501. .INDENT 2.0
  262502. .IP \(bu 2
  262503. f77c8e7baf Merge pull request \fI\%#29527\fP from jfindlay/2015.5
  262504. .IP \(bu 2
  262505. 1a8044f0c9 2015.5.7 notes: add note about not being released
  262506. .UNINDENT
  262507. .IP \(bu 2
  262508. \fBPR\fP \fI\%#29539\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  262509. @ \fI2015\-12\-08 19:14:51 UTC\fP
  262510. .INDENT 2.0
  262511. .IP \(bu 2
  262512. 867d550271 Merge pull request \fI\%#29539\fP from basepi/merge\-forward\-2015.5
  262513. .IP \(bu 2
  262514. 2c9c4ba430 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  262515. .IP \(bu 2
  262516. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  262517. .INDENT 2.0
  262518. .IP \(bu 2
  262519. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  262520. .UNINDENT
  262521. .UNINDENT
  262522. .IP \(bu 2
  262523. \fBISSUE\fP \fI\%#12072\fP: (\fI\%vk00226\fP) Passing user\-data when provisioning ec2 instances (refs: \fI\%#29504\fP)
  262524. .IP \(bu 2
  262525. \fBPR\fP \fI\%#29504\fP: (\fI\%rallytime\fP) Document userdata_file option for EC2 driver
  262526. @ \fI2015\-12\-08 16:54:33 UTC\fP
  262527. .INDENT 2.0
  262528. .IP \(bu 2
  262529. de7f3d5a59 Merge pull request \fI\%#29504\fP from rallytime/fix\-12072
  262530. .IP \(bu 2
  262531. 8357c95dc2 Document userdata_file option for EC2 driver
  262532. .UNINDENT
  262533. .IP \(bu 2
  262534. \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)
  262535. .IP \(bu 2
  262536. \fBPR\fP \fI\%#29507\fP: (\fI\%rallytime\fP) Switch volumes and del_*_on_destroy example ordering
  262537. @ \fI2015\-12\-08 16:50:11 UTC\fP
  262538. .INDENT 2.0
  262539. .IP \(bu 2
  262540. 65deba8bb5 Merge pull request \fI\%#29507\fP from rallytime/ec2\-doc\-fix
  262541. .IP \(bu 2
  262542. 90b4823bc2 Switch volumes and del_*_on_destroy example ordering
  262543. .UNINDENT
  262544. .IP \(bu 2
  262545. \fBISSUE\fP \fI\%#28862\fP: (\fI\%trevor\-h\fP) salt\-cloud uppercase timeout options no longer recognized (refs: \fI\%#29469\fP)
  262546. .IP \(bu 2
  262547. \fBPR\fP \fI\%#29469\fP: (\fI\%abednarik\fP) Added Documentation note in salt cloud.
  262548. @ \fI2015\-12\-07 18:27:46 UTC\fP
  262549. .INDENT 2.0
  262550. .IP \(bu 2
  262551. 0918c9294f Merge pull request \fI\%#29469\fP from abednarik/doc_note_for_saltcloud_connection_timeout
  262552. .IP \(bu 2
  262553. 8e5c3e366a Added Documentation note in salt cloud.
  262554. .UNINDENT
  262555. .IP \(bu 2
  262556. \fBPR\fP \fI\%#29461\fP: (\fI\%dmyerscough\fP) Fix resource limits, systemd sets the default too small
  262557. @ \fI2015\-12\-05 16:26:34 UTC\fP
  262558. .INDENT 2.0
  262559. .IP \(bu 2
  262560. e43c7c05a6 Merge pull request \fI\%#29461\fP from dmyerscough/fix\-resource\-limits
  262561. .IP \(bu 2
  262562. 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
  262563. .UNINDENT
  262564. .IP \(bu 2
  262565. \fBISSUE\fP \fI\%#28526\fP: (\fI\%clarkperkins\fP) yumpkg.installed broken in salt v2015.8.1 on CentOS 6 minions (refs: \fI\%#28656\fP)
  262566. .IP \(bu 2
  262567. \fBPR\fP \fI\%#29439\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28656\fP to 2015.5
  262568. @ \fI2015\-12\-04 22:56:17 UTC\fP
  262569. .INDENT 2.0
  262570. .IP \(bu 2
  262571. \fBPR\fP \fI\%#28656\fP: (\fI\%clarkperkins\fP) \fI\%#28526\fP fixed yumpkg module issue with pkg.installed (refs: \fI\%#29439\fP)
  262572. .IP \(bu 2
  262573. 730f02fbdf Merge pull request \fI\%#29439\fP from rallytime/bp\-28656
  262574. .IP \(bu 2
  262575. 2f11bb021f \fI\%#28526\fP fixed yumpkg module
  262576. .UNINDENT
  262577. .IP \(bu 2
  262578. \fBPR\fP \fI\%#29418\fP: (\fI\%jacobhammons\fP) Added CVE 2015\-8034 to 2015.5.8 release notes
  262579. @ \fI2015\-12\-04 03:02:53 UTC\fP
  262580. .INDENT 2.0
  262581. .IP \(bu 2
  262582. 197210d52e Merge pull request \fI\%#29418\fP from jacobhammons/dot8
  262583. .IP \(bu 2
  262584. 4f51a737f9 Added CVE 2015\-8034 to 2015.5.8 release notes
  262585. .UNINDENT
  262586. .IP \(bu 2
  262587. \fBPR\fP \fI\%#29389\fP: (\fI\%jacobhammons\fP) updated version numbers in documentation
  262588. @ \fI2015\-12\-03 16:27:23 UTC\fP
  262589. .INDENT 2.0
  262590. .IP \(bu 2
  262591. b3452f2a1a Merge pull request \fI\%#29389\fP from jacobhammons/2015.5
  262592. .IP \(bu 2
  262593. 824721ff36 updated version numbers
  262594. .UNINDENT
  262595. .IP \(bu 2
  262596. \fBISSUE\fP \fI\%#26898\fP: (\fI\%twangboy\fP) Symlinks in Windows (2015.8) (refs: \fI\%#28191\fP)
  262597. .IP \(bu 2
  262598. \fBPR\fP \fI\%#28501\fP: (\fI\%twangboy\fP) Requested fixes for 26898
  262599. @ \fI2015\-12\-03 01:12:12 UTC\fP
  262600. .INDENT 2.0
  262601. .IP \(bu 2
  262602. \fBPR\fP \fI\%#28420\fP: (\fI\%jfindlay\fP) fix removal of symbolic links on windows in the file state (refs: \fI\%#28501\fP)
  262603. .IP \(bu 2
  262604. \fBPR\fP \fI\%#28191\fP: (\fI\%twangboy\fP) Fix 26898 (refs: \fI\%#28420\fP, \fI\%#28501\fP)
  262605. .IP \(bu 2
  262606. 6a7a95f28a Merge pull request \fI\%#28501\fP from twangboy/jmoney_26898
  262607. .IP \(bu 2
  262608. c0cf33332c Fixed some Lint...
  262609. .IP \(bu 2
  262610. df17fc59d3 Merge pull request \fI\%#6\fP from jfindlay/twang_test
  262611. .INDENT 2.0
  262612. .IP \(bu 2
  262613. bc7e0cfe64 add file.symlink unit tests
  262614. .IP \(bu 2
  262615. 9381dc7215 orthogonalize file.symlink unit tests
  262616. .UNINDENT
  262617. .IP \(bu 2
  262618. 8f462ba044 Merge pull request \fI\%#5\fP from cachedout/fix_twangboy_test
  262619. .INDENT 2.0
  262620. .IP \(bu 2
  262621. 5293150d25 Fix tests
  262622. .UNINDENT
  262623. .IP \(bu 2
  262624. 7d39091c91 Fixed some more lint
  262625. .IP \(bu 2
  262626. 3dbd62af2c Fixed some tests... hopefully
  262627. .IP \(bu 2
  262628. f187db3288 Removed unnecessary logic
  262629. .IP \(bu 2
  262630. 89ebd268e6 Added file attributes restore on fail
  262631. .IP \(bu 2
  262632. 9ec72ca724 fix file state unit tests for win symlink feature
  262633. .IP \(bu 2
  262634. 69c32a663e Fixed some lint
  262635. .IP \(bu 2
  262636. 638dec5027 Fixed some tests... let\(aqs see if they\(aqre really are
  262637. .IP \(bu 2
  262638. 5ed7a99792 Replaced instances of shutil.rmtree in file state
  262639. .IP \(bu 2
  262640. 2651ce509f Fix file.remove for windows
  262641. .UNINDENT
  262642. .IP \(bu 2
  262643. \fBISSUE\fP \fI\%#29344\fP: (\fI\%justinta\fP) file.search broken on python 2.6 with empty files (refs: \fI\%#29348\fP)
  262644. .IP \(bu 2
  262645. \fBPR\fP \fI\%#29348\fP: (\fI\%justinta\fP) Fixes an file.search on python2.6
  262646. @ \fI2015\-12\-02 23:26:36 UTC\fP
  262647. .INDENT 2.0
  262648. .IP \(bu 2
  262649. 760a521603 Merge pull request \fI\%#29348\fP from jtand/file_search_fix
  262650. .IP \(bu 2
  262651. 04f82bd4fd Fixes an file.search on python2.6
  262652. .UNINDENT
  262653. .IP \(bu 2
  262654. \fBISSUE\fP \fI\%#29206\fP: (\fI\%mschiff\fP) ssh_known_hosts.present creates wrong known_hosts lines (refs: \fI\%#29276\fP)
  262655. .IP \(bu 2
  262656. \fBPR\fP \fI\%#29336\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29276\fP to 2015.5
  262657. @ \fI2015\-12\-02 19:37:42 UTC\fP
  262658. .INDENT 2.0
  262659. .IP \(bu 2
  262660. \fBPR\fP \fI\%#29276\fP: (\fI\%abednarik\fP) Prevent adding port twice when adding entry in known hosts (refs: \fI\%#29336\fP)
  262661. .IP \(bu 2
  262662. 51ea88d489 Merge pull request \fI\%#29336\fP from rallytime/bp\-29276
  262663. .IP \(bu 2
  262664. 3a0e19debb Prevent adding port twice when adding entry in known hosts
  262665. .UNINDENT
  262666. .IP \(bu 2
  262667. \fBPR\fP \fI\%#29333\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29280\fP to 2015.5
  262668. @ \fI2015\-12\-02 19:37:05 UTC\fP
  262669. .INDENT 2.0
  262670. .IP \(bu 2
  262671. \fBPR\fP \fI\%#29280\fP: (\fI\%cachedout\fP) [Doc] Add note for SVN state (refs: \fI\%#29333\fP)
  262672. .IP \(bu 2
  262673. \fBPR\fP \fI\%#29165\fP: (\fI\%titilambert\fP) [Doc] Add note for SVN state (refs: \fI\%#29280\fP, \fI\%#29333\fP)
  262674. .IP \(bu 2
  262675. 28255af52a Merge pull request \fI\%#29333\fP from rallytime/bp\-29280
  262676. .IP \(bu 2
  262677. 722d02ff4a Lint
  262678. .IP \(bu 2
  262679. 4a0040c1b4 [Doc] Add note for SVN state
  262680. .UNINDENT
  262681. .IP \(bu 2
  262682. \fBPR\fP \fI\%#29316\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  262683. @ \fI2015\-12\-01 20:20:23 UTC\fP
  262684. .INDENT 2.0
  262685. .IP \(bu 2
  262686. 14e94b3593 Merge pull request \fI\%#29316\fP from basepi/merge\-forward\-2015.5
  262687. .IP \(bu 2
  262688. 33f40b3c47 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  262689. .IP \(bu 2
  262690. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  262691. .IP \(bu 2
  262692. d2885390f4 Use process KillMode on Debian systems also
  262693. .UNINDENT
  262694. .IP \(bu 2
  262695. \fBPR\fP \fI\%#29216\fP: (\fI\%clan\fP) size is 0 doesn\(aqt mean no data, e.g, /proc/version
  262696. @ \fI2015\-11\-30 20:01:43 UTC\fP
  262697. .INDENT 2.0
  262698. .IP \(bu 2
  262699. 6a2ffbfb7c Merge pull request \fI\%#29216\fP from clan/file_search_on_proc_file
  262700. .IP \(bu 2
  262701. 91a20c07a1 try mmap first
  262702. .IP \(bu 2
  262703. 8aa4f2053e remove extra space to fix lint failure
  262704. .IP \(bu 2
  262705. d34e6b1a9a use read only if has read() method
  262706. .IP \(bu 2
  262707. 3209c1cdb5 size is 0 doesn\(aqt mean no data, e.g, /proc/version
  262708. .UNINDENT
  262709. .IP \(bu 2
  262710. \fBPR\fP \fI\%#29261\fP: (\fI\%attiasr\fP) fix incorrect reinstallation of windows pkg
  262711. @ \fI2015\-11\-30 18:28:42 UTC\fP
  262712. .INDENT 2.0
  262713. .IP \(bu 2
  262714. d6aaae8d7b Merge pull request \fI\%#29261\fP from attiasr/patch\-1
  262715. .IP \(bu 2
  262716. 7a99b90596 add log and return if pkg already installed
  262717. .IP \(bu 2
  262718. 1843c7ab8e fix incorrect reinstallation of windows pkg
  262719. .UNINDENT
  262720. .IP \(bu 2
  262721. \fBPR\fP \fI\%#29214\fP: (\fI\%cro\fP) Doc for salt.utils.http should say verify_ssl not ssl_verify.
  262722. @ \fI2015\-11\-25 23:55:38 UTC\fP
  262723. .INDENT 2.0
  262724. .IP \(bu 2
  262725. 9236188867 Merge pull request \fI\%#29214\fP from cro/ssl_verify_ssl
  262726. .IP \(bu 2
  262727. e9c13c561b Doc bug\-\-salt.utils.http takes verify_ssl not ssl_verify.
  262728. .UNINDENT
  262729. .IP \(bu 2
  262730. \fBISSUE\fP \fI\%#29202\fP: (\fI\%lorengordon\fP) Broken ca bundle lookup in \fIsalt.utils.http.get_ca_bundle\fP (refs: \fI\%#29204\fP)
  262731. .IP \(bu 2
  262732. \fBPR\fP \fI\%#29204\fP: (\fI\%lorengordon\fP) Use os.path.join to return full path to ca bundle
  262733. @ \fI2015\-11\-25 20:00:42 UTC\fP
  262734. .INDENT 2.0
  262735. .IP \(bu 2
  262736. df7b35a86b Merge pull request \fI\%#29204\fP from lorengordon/fix\-29202
  262737. .IP \(bu 2
  262738. b1dae5e6fe Use os.path.join to return full path to ca bundle
  262739. .UNINDENT
  262740. .UNINDENT
  262741. .SS Salt 2014.7.0 Release Notes \- Codename Helium
  262742. .sp
  262743. This release is the largest Salt release ever, with more features and commits
  262744. then any previous release of Salt. Everything from the new RAET transport to
  262745. major updates in Salt Cloud and the merging of Salt API into the main project.
  262746. .sp
  262747. \fBIMPORTANT:\fP
  262748. .INDENT 0.0
  262749. .INDENT 3.5
  262750. The Fedora/RHEL/CentOS \fBsalt\-master\fP package has been modified for this
  262751. release. The following components of Salt have been broken out and placed
  262752. into their own packages:
  262753. .INDENT 0.0
  262754. .IP \(bu 2
  262755. salt\-syndic
  262756. .IP \(bu 2
  262757. salt\-cloud
  262758. .IP \(bu 2
  262759. salt\-ssh
  262760. .UNINDENT
  262761. .sp
  262762. When the \fBsalt\-master\fP package is upgraded, these components will be
  262763. removed, and they will need to be manually installed.
  262764. .UNINDENT
  262765. .UNINDENT
  262766. .sp
  262767. \fBIMPORTANT:\fP
  262768. .INDENT 0.0
  262769. .INDENT 3.5
  262770. Compound/pillar matching have been temporarily disabled for the \fBmine\fP
  262771. and \fBpublish\fP modules for this release due to the possibility of
  262772. inferring pillar data using pillar glob matching. A proper fix is now in
  262773. the 2014.7 branch and scheduled for the 2014.7.1 release, and compound
  262774. matching and non\-globbing pillar matching will be re\-enabled at that point.
  262775. .sp
  262776. Compound and pillar matching for normal salt commands are unaffected.
  262777. .UNINDENT
  262778. .UNINDENT
  262779. .SS New Transport!
  262780. .SS RAET Transport Option
  262781. .sp
  262782. This has been a HUGE amount of work, but the beta release of Salt with RAET is
  262783. ready to go. RAET is a reliable queuing transport system that has been
  262784. developed in partnership with a number of large enterprises to give Salt an
  262785. alternative to ZeroMQ and a way to get Salt to scale well beyond tens of
  262786. thousands of servers. Unlike ZeroMQ, RAET is completely asynchronous in every
  262787. aspect of its operation and has been developed using the flow programming
  262788. paradigm. This allows for many new capabilities to be added to Salt in the
  262789. upcoming releases.
  262790. .sp
  262791. Please keep in mind that this is a beta release of RAET and we hope for bugs to
  262792. be worked out, performance to be better realized and more in the 2015.5.0
  262793. release.
  262794. .sp
  262795. Simply stated, users running Salt with RAET should expect some hiccups as we
  262796. hammer out the update. This is a BETA release of Salt RAET.
  262797. .SS Salt SSH Enhancements
  262798. .sp
  262799. Salt SSH has just entered a new league, with substantial updates and
  262800. improvements to make salt\-ssh more reliable and easier then ever! From new
  262801. features like the ansible roster and fileserver backends to the new pypi
  262802. salt\-ssh installer to lowered deps and a swath of bugfixes, salt\-ssh is
  262803. basically reborn!
  262804. .SS Install salt\-ssh Using pip
  262805. .sp
  262806. Salt\-ssh is now pip\-installable!
  262807. .sp
  262808. \fI\%https://pypi.org/project/salt\-ssh/\fP
  262809. .sp
  262810. Pip will bring in all of the required deps, and while some deps are compiled,
  262811. they all include pure python implementations, meaning that any compile errors
  262812. which may be seen can be safely ignored.
  262813. .INDENT 0.0
  262814. .INDENT 3.5
  262815. .sp
  262816. .nf
  262817. .ft C
  262818. pip install salt\-ssh
  262819. .ft P
  262820. .fi
  262821. .UNINDENT
  262822. .UNINDENT
  262823. .SS Fileserver Backends
  262824. .sp
  262825. Salt\-ssh can now use the salt fileserver backend system. This allows for
  262826. the gitfs, hgfs, s3, and many more ways to centrally store states to be easily
  262827. used with salt\-ssh. This also allows for a distributed team to easily use
  262828. a centralized source.
  262829. .SS Saltfile Support
  262830. .sp
  262831. The new saltfile system makes it easy to have a user specific custom extended
  262832. configuration.
  262833. .SS Ext Pillar
  262834. .sp
  262835. Salt\-ssh can now use the external pillar system. Making it easier then ever
  262836. to use salt\-ssh with teams.
  262837. .SS No More sshpass
  262838. .sp
  262839. Thanks to the enhancements in the salt vt system, salt\-ssh no longer requires
  262840. sshpass to send passwords to ssh. This also makes the manipulation of ssh
  262841. calls substantially more flexible, allowing for intercepting ssh calls in
  262842. a much more fluid way.
  262843. .SS Pure Python Shim
  262844. .sp
  262845. The salt\-ssh call originally used a shell script to discover what version of
  262846. python to execute with and determine the state of the ssh code deployment.
  262847. This shell script has been replaced with a pure python version making it easy
  262848. to increase the capability of the code deployment without causing platform
  262849. inconsistency issues with different shell interpreters.
  262850. .SS Custom Module Delivery
  262851. .sp
  262852. Custom modules are now seamlessly delivered. This makes the deployment of
  262853. custom grains, states, execution modules and returners a seamless process.
  262854. .SS CP Module Support
  262855. .sp
  262856. Salt\-ssh now makes simple file transfers easier then ever! The \fIcp\fP
  262857. module allows for files to be conveniently sent from the salt fileserver
  262858. system down to systems.
  262859. .SS More Thin Directory Options
  262860. .sp
  262861. Salt ssh functions by copying a subset of the salt code, or \fIsalt thin\fP down
  262862. to the target system. In the past this was always transferred to /tmp/.salt
  262863. and cached there for subsequent commands.
  262864. .sp
  262865. Now, salt thin can be sent to a random directory and removed when the call
  262866. is complete with the \fI\-W\fP option. The new \fI\-W\fP option still uses a static
  262867. location but will clean up that location when finished.
  262868. .sp
  262869. The default \fIsalt thin\fP location is now user defined, allowing multiple users
  262870. to cleanly access the same systems.
  262871. .SS State System Enhancements
  262872. .SS New Imperative State Keyword "Listen"
  262873. .sp
  262874. The new \fBlisten\fP and \fBlisten_in\fP keywords allow for completely imperative
  262875. states by calling the \fBmod_watch()\fP routine after all states have run instead
  262876. of re\-ordering the states.
  262877. .SS Mod Aggregate Runtime Manipulator
  262878. .sp
  262879. The new \fBmod_aggregate\fP system allows for the state system to rewrite the
  262880. state data during execution. This allows for state definitions to be aggregated
  262881. dynamically at runtime.
  262882. .sp
  262883. The best example is found in the \fBpkg\fP state. If
  262884. \fBmod_aggregate\fP is turned on, then when the first pkg state is reached, the
  262885. state system will scan all of the other running states for pkg states and take
  262886. all other packages set for install and install them all at once in the first
  262887. pkg state.
  262888. .sp
  262889. These runtime modifications make it easy to run groups of states together. In
  262890. future versions, we hope to fill out the \fBmod_aggregate\fP system to build in
  262891. more and more optimizations.
  262892. .sp
  262893. For more documentation on \fBmod_aggregate\fP, see the documentation\&.
  262894. .SS New Requisites: onchanges and onfail
  262895. .sp
  262896. The new \fBonchanges\fP and \fBonchanges_in\fP requisites make a state apply only if
  262897. there are changes in the required state. This is useful to execute post hooks
  262898. after changes occur on a system.
  262899. .sp
  262900. The other new requisites, \fBonfail\fP, and \fBonfail_in\fP, allow for a state to run
  262901. in reaction to the failure of another state.
  262902. .sp
  262903. For more information about these new requisites, see the
  262904. requisites documentation\&.
  262905. .SS Global onlyif and unless
  262906. .sp
  262907. The \fBonlyif\fP and \fBunless\fP options can now be used for any state declaration.
  262908. .SS Use \fBnames\fP to expand and override values
  262909. .sp
  262910. The names declaration in Salt\(aqs state system can now
  262911. override or add values to the expanded data structure. For example:
  262912. .INDENT 0.0
  262913. .INDENT 3.5
  262914. .sp
  262915. .nf
  262916. .ft C
  262917. my_users:
  262918. user.present:
  262919. \- names:
  262920. \- larry
  262921. \- curly
  262922. \- moe:
  262923. \- shell: /bin/zsh
  262924. \- groups:
  262925. \- wheel
  262926. \- shell: /bin/bash
  262927. .ft P
  262928. .fi
  262929. .UNINDENT
  262930. .UNINDENT
  262931. .SS Major Features
  262932. .SS Scheduler Additions
  262933. .sp
  262934. The Salt scheduler system has received MAJOR enhancements, allowing for
  262935. cron\-like scheduling and much more granular timing routines. See \fBhere\fP for more info.
  262936. .SS Red Hat 7 Family Support
  262937. .sp
  262938. All the needed additions have been made to run Salt on RHEL 7 and derived OSes
  262939. like CentOS and Scientific.
  262940. .SS Fileserver Backends in salt\-call
  262941. .sp
  262942. Fileserver backends like gitfs can now be used without a salt master! Just add
  262943. the fileserver backend configuration to the minion config and execute
  262944. salt\-call. This has been a much\-requested feature and we are happy to finally
  262945. bring it to our users.
  262946. .SS Amazon Execution Modules
  262947. .sp
  262948. An entire family of execution modules further enhancing Salt\(aqs Amazon Cloud
  262949. support. They include the following:
  262950. .INDENT 0.0
  262951. .IP \(bu 2
  262952. \fBAutoscale Groups\fP (includes \fBstate support\fP) \-\- related: \fBLaunch Control\fP states
  262953. .IP \(bu 2
  262954. \fBCloud Watch\fP (includes \fBstate support\fP)
  262955. .IP \(bu 2
  262956. \fBElastic Cache\fP (includes \fBstate support\fP)
  262957. .IP \(bu 2
  262958. \fBElastic Load Balancer\fP (includes \fBstate support\fP)
  262959. .IP \(bu 2
  262960. \fBIAM Identity and Access Management\fP (includes \fBstate support\fP)
  262961. .IP \(bu 2
  262962. \fBRoute53 DNS\fP (includes \fBstate support\fP)
  262963. .IP \(bu 2
  262964. \fBSecurity Groups\fP (includes \fBstate support\fP)
  262965. .IP \(bu 2
  262966. \fBSimple Queue Service\fP (includes \fBstate support\fP)
  262967. .UNINDENT
  262968. .SS LXC Runner Enhancements
  262969. .sp
  262970. BETA
  262971. The Salt LXC management system has received a number of enhancements which make
  262972. running an LXC cloud entirely from Salt an easy proposition.
  262973. .SS Next Gen Docker Management
  262974. .sp
  262975. The Docker support in Salt has been increased at least ten fold. The Docker API
  262976. is now completely exposed and Salt ships with Docker data tracking systems
  262977. which make automating Docker deployments very easy.
  262978. .SS Peer System Performance Improvements
  262979. .sp
  262980. The peer system communication routines have been refined to make the peer
  262981. system substantially faster.
  262982. .SS SDB
  262983. .sp
  262984. Encryption at rest for configs
  262985. .SS GPG Renderer
  262986. .sp
  262987. Encrypted pillar at rest
  262988. .SS OpenStack Expansion
  262989. .sp
  262990. Lots of new OpenStack stuff
  262991. .SS Queues System
  262992. .sp
  262993. Ran change external queue systems into Salt events
  262994. .SS Multi Master Failover Additions
  262995. .sp
  262996. Connecting to multiple masters is more dynamic then ever
  262997. .SS Chef Execution Module
  262998. .sp
  262999. Managing Chef with Salt just got even easier!
  263000. .SS salt\-api Project Merge
  263001. .sp
  263002. The \fBsalt\-api\fP project has been merged into Salt core and is now available as
  263003. part of the regular \fBsalt\-master\fP package install. No API changes were made,
  263004. the \fBsalt\-api\fP script and init scripts remain intact.
  263005. .sp
  263006. \fBsalt\-api\fP has always provided Yet Another Pluggable Interface to Salt (TM)
  263007. in the form of "netapi" modules. These are modules that bind to a port and
  263008. start a service. Like many of Salt\(aqs other module types, netapi modules often
  263009. have library and configuration dependencies. See the documentation for each
  263010. module for instructions.
  263011. .sp
  263012. \fBSEE ALSO:\fP
  263013. .INDENT 0.0
  263014. .INDENT 3.5
  263015. The full list of netapi modules.
  263016. .UNINDENT
  263017. .UNINDENT
  263018. .SS Synchronous and Asynchronous Execution of Runner and Wheel Modules
  263019. .sp
  263020. \fBsalt.runner.RunnerClient\fP and \fBsalt.wheel.WheelClient\fP
  263021. have both gained complimentary \fBcmd_sync\fP and \fBcmd_async\fP methods allowing
  263022. for synchronous and asynchronous execution of any Runner or Wheel module
  263023. function, all protected using Salt\(aqs external authentication
  263024. system. \fBsalt\-api\fP benefits from this addition as well.
  263025. .SS \fBrest_cherrypy\fP Additions
  263026. .sp
  263027. The \fBrest_cherrypy\fP netapi module
  263028. provides the main REST API for Salt.
  263029. .SS Web Hooks
  263030. .sp
  263031. This release of course includes the Web Hook additions from the most recent
  263032. \fBsalt\-api\fP release, which allows external services to signal actions within a
  263033. Salt infrastructure. External services such as Amazon SNS, Travis\-CI, or
  263034. GitHub, as well as internal services that cannot or should not run a Salt
  263035. minion daemon can be used as first\-class components in Salt\(aqs rich
  263036. orchestration capabilities.
  263037. .sp
  263038. The raw HTTP request body is now available in the event data. This is sometimes
  263039. required information for checking an HMAC signature in order to verify a HTTP
  263040. request. As an example, Amazon or GitHub requests are signed this way.
  263041. .SS Generating and Accepting Minion Keys
  263042. .sp
  263043. The \fB/key\fP convenience URL
  263044. generates a public and private key for a minion, automatically pre\-accepts the
  263045. public key on the Salt Master, and returns both keys as a tarball for download.
  263046. .sp
  263047. This allows for easily bootstrapping the key on a new minion with a single HTTP
  263048. call, such as with a Kickstart script, all using regular shell tools.
  263049. .INDENT 0.0
  263050. .INDENT 3.5
  263051. .sp
  263052. .nf
  263053. .ft C
  263054. curl \-sS http://salt\-api.example.com:8000/keys \e
  263055. \-d mid=jerry \e
  263056. \-d username=kickstart \e
  263057. \-d password=kickstart \e
  263058. \-d eauth=pam \e
  263059. \-o jerry\-salt\-keys.tar
  263060. .ft P
  263061. .fi
  263062. .UNINDENT
  263063. .UNINDENT
  263064. .SS Fileserver Backend Enhancements
  263065. .sp
  263066. All of the fileserver backends have been overhauled to be faster, lighter, and
  263067. more reliable. The VCS backends (\fBgitfs\fP,
  263068. \fBhgfs\fP, and \fBsvnfs\fP)
  263069. have also received a \fBlot\fP of new features.
  263070. .sp
  263071. Additionally, most config parameters for the VCS backends can now be configured
  263072. on a per\-remote basis, allowing for global config parameters to be overridden
  263073. for a specific gitfs/hgfs/svnfs remote.
  263074. .SS New \fBgitfs\fP Features
  263075. .SS Pygit2 and Dulwich
  263076. .sp
  263077. In addition to supporting GitPython, support for \fI\%pygit2\fP (0.20.3 and newer) and
  263078. \fI\%dulwich\fP have been added. Provided a compatible version of \fI\%pygit2\fP is
  263079. installed, it will now be the default provider. The config parameter
  263080. \fBgitfs_provider\fP has been added to allow one to choose a specific
  263081. provider for gitfs.
  263082. .SS Mountpoints
  263083. .sp
  263084. Prior to this release, to serve a file from gitfs at a salt fileserver URL of
  263085. \fBsalt://foo/bar/baz.txt\fP, it was necessary to ensure that the parent
  263086. directories existed in the repository. A new config parameter
  263087. \fBgitfs_mountpoint\fP allows gitfs remotes to be exposed starting at
  263088. a user\-defined \fBsalt://\fP URL.
  263089. .SS Environment Whitelisting/Blacklisting
  263090. .sp
  263091. By default, gitfs will expose all branches and tags as Salt fileserver
  263092. environments. Two new config parameters, \fBgitfs_env_whitelist\fP, and
  263093. \fBgitfs_env_blacklist\fP, allow more control over which branches and
  263094. tags are exposed. More detailed information on how these two options work can
  263095. be found in the Gitfs Walkthrough\&.
  263096. .SS Expanded Authentication Support
  263097. .sp
  263098. As of \fI\%pygit2\fP 0.20.3, both http(s) and SSH key authentication are supported,
  263099. and Salt now also supports both authentication methods when using \fI\%pygit2\fP\&. Keep
  263100. in mind that \fI\%pygit2\fP 0.20.3 is not yet available on many platforms, so those
  263101. who had been using authenticated git repositories with a passphraseless key
  263102. should stick to GitPython if a new enough \fI\%pygit2\fP is not yet available for the
  263103. platform on which the master is running.
  263104. .sp
  263105. A full explanation of how to use authentication can be found in the Gitfs
  263106. Walkthrough\&.
  263107. .SS New \fBhgfs\fP Features
  263108. .SS Mountpoints
  263109. .sp
  263110. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  263111. \fBhgfs_mountpoint\fP\&.
  263112. .SS Environment Whitelisting/Blacklisting
  263113. .sp
  263114. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameters are called
  263115. \fBhgfs_env_whitelist\fP and \fBhgfs_env_blacklist\fP\&.
  263116. .SS New \fBsvnfs\fP Features
  263117. .SS Mountpoints
  263118. .sp
  263119. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  263120. \fBsvnfs_mountpoint\fP\&.
  263121. .SS Environment Whitelisting/Blacklisting
  263122. .sp
  263123. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameters are called
  263124. \fBsvnfs_env_whitelist\fP and \fBsvnfs_env_blacklist\fP\&.
  263125. .SS Configurable Trunk/Branches/Tags Paths
  263126. .sp
  263127. Prior to this release, the paths where trunk, branches, and tags were located
  263128. could only be in directories named "trunk", "branches", and "tags" directly
  263129. under the root of the repository. Three new config parameters
  263130. (\fBsvnfs_trunk\fP, \fBsvnfs_branches\fP, and
  263131. \fBsvnfs_tags\fP) allow SVN repositories which are laid out
  263132. differently to be used with svnfs.
  263133. .SS New \fBminionfs\fP Features
  263134. .SS Mountpoint
  263135. .sp
  263136. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  263137. \fBminionfs_mountpoint\fP\&. The one major difference is that, as
  263138. minionfs doesn\(aqt use multiple remotes (it just serves up files pushed to the
  263139. master using \fBcp.push\fP) there is no such thing as a
  263140. per\-remote configuration for \fBminionfs_mountpoint\fP\&.
  263141. .SS Changing the Saltenv from Which Files are Served
  263142. .sp
  263143. A new config parameter (\fBminionfs_env\fP) allows minionfs files to
  263144. be served from a Salt fileserver environment other than \fBbase\fP\&.
  263145. .SS Minion Whitelisting/Blacklisting
  263146. .sp
  263147. By default, minionfs will expose the pushed files from all minions. Two new
  263148. config parameters, \fBminionfs_whitelist\fP, and
  263149. \fBminionfs_blacklist\fP, allow minionfs to be restricted to serve
  263150. files from only the desired minions.
  263151. .SS Pyobjects Renderer
  263152. .sp
  263153. Salt now ships with with the \fBPyobjects Renderer\fP that allows for construction of States using pure
  263154. Python with an idiomatic object interface.
  263155. .SS New Modules
  263156. .sp
  263157. In addition to the Amazon modules mentioned above, there are also several other
  263158. new execution modules:
  263159. .INDENT 0.0
  263160. .IP \(bu 2
  263161. \fBOracle\fP
  263162. .IP \(bu 2
  263163. \fBRandom\fP
  263164. .IP \(bu 2
  263165. \fBRedis\fP
  263166. .IP \(bu 2
  263167. \fBAmazon Simple Queue Service\fP
  263168. .IP \(bu 2
  263169. \fBBlock Device Management\fP
  263170. .IP \(bu 2
  263171. \fBCoreOS etcd\fP
  263172. .IP \(bu 2
  263173. \fBGenesis\fP
  263174. .IP \(bu 2
  263175. \fBInfluxDB\fP
  263176. .IP \(bu 2
  263177. \fBServer Density\fP
  263178. .IP \(bu 2
  263179. \fBTwilio Notifications\fP
  263180. .IP \(bu 2
  263181. \fBVarnish\fP
  263182. .IP \(bu 2
  263183. \fBZNC IRC Bouncer\fP
  263184. .IP \(bu 2
  263185. \fBSMTP\fP
  263186. .UNINDENT
  263187. .SS New Runners
  263188. .INDENT 0.0
  263189. .IP \(bu 2
  263190. \fBMap/Reduce Style\fP
  263191. .IP \(bu 2
  263192. \fBQueue\fP
  263193. .UNINDENT
  263194. .SS New External Pillars
  263195. .INDENT 0.0
  263196. .IP \(bu 2
  263197. \fBCoreOS etcd\fP
  263198. .UNINDENT
  263199. .SS New Salt\-Cloud Providers
  263200. .INDENT 0.0
  263201. .IP \(bu 2
  263202. \fBAliyun ECS Cloud\fP
  263203. .IP \(bu 2
  263204. \fBLXC Containers\fP
  263205. .IP \(bu 2
  263206. \fBProxmox (OpenVZ containers & KVM)\fP
  263207. .UNINDENT
  263208. .SS Salt Call Change
  263209. .sp
  263210. When used with a returner, salt\-call now contacts a master if \fB\-\-local\fP
  263211. is not specicified.
  263212. .SS Deprecations
  263213. .SS \fBsalt.modules.virtualenv_mod\fP
  263214. .INDENT 0.0
  263215. .IP \(bu 2
  263216. Removed deprecated \fBmemoize\fP function from \fBsalt/utils/__init__.py\fP (deprecated)
  263217. .IP \(bu 2
  263218. Removed deprecated \fBno_site_packages\fP argument from \fBcreate\fP function (deprecated)
  263219. .IP \(bu 2
  263220. Removed deprecated \fBcheck_dns\fP argument from \fBminion_config\fP and \fBapply_minion_config\fP functions (deprecated)
  263221. .IP \(bu 2
  263222. Removed deprecated \fBOutputOptionsWithTextMixIn\fP class from \fBsalt/utils/parsers.py\fP (deprecated)
  263223. .IP \(bu 2
  263224. Removed the following deprecated functions from \fBsalt/modules/ps.py\fP:
  263225. \- \fBphysical_memory_usage\fP (deprecated)
  263226. \- \fBvirtual_memory_usage\fP (deprecated)
  263227. \- \fBcached_physical_memory\fP (deprecated)
  263228. \- \fBphysical_memory_buffers\fP (deprecated)
  263229. .IP \(bu 2
  263230. Removed deprecated cloud arguments from \fBcloud_config\fP function in \fBsalt/config.py\fP:
  263231. \- \fBvm_config\fP (deprecated)
  263232. \- \fBvm_config_path\fP (deprecated)
  263233. .IP \(bu 2
  263234. Removed deprecated \fBlibcloud_version\fP function from \fBsalt/cloud/libcloudfuncs.py\fP (deprecated)
  263235. .IP \(bu 2
  263236. Removed deprecated \fBCloudConfigMixIn\fP class from \fBsalt/utils/parsers.py\fP (deprecated)
  263237. .UNINDENT
  263238. .SS Salt 2014.7.1 Release Notes
  263239. .INDENT 0.0
  263240. .TP
  263241. .B release
  263242. 2015\-01\-12
  263243. .UNINDENT
  263244. .sp
  263245. Version 2014.7.1 is a bugfix release for 2014.7.0\&.
  263246. .sp
  263247. The changes include:
  263248. .INDENT 0.0
  263249. .IP \(bu 2
  263250. Fixed gitfs serving symlinks in \fBfile.recurse\fP states (\fI\%issue #17700\fP)
  263251. .IP \(bu 2
  263252. Fixed holding of multiple packages (YUM) when combined with version pinning
  263253. (\fI\%issue #18468\fP)
  263254. .IP \(bu 2
  263255. Fixed use of Jinja templates in masterless mode with non\-roots fileserver
  263256. backend (\fI\%issue #17963\fP)
  263257. .IP \(bu 2
  263258. Re\-enabled pillar and compound matching for mine and publish calls. Note that
  263259. pillar globbing is still disabled for those modes, for security reasons.
  263260. (\fI\%issue #17194\fP)
  263261. .IP \(bu 2
  263262. Fix for \fBtty: True\fP in salt\-ssh (\fI\%issue #16847\fP)
  263263. .IP \(bu 2
  263264. Fix for supervisord states when supervisor not installed to system python
  263265. (\fI\%issue #18044\fP)
  263266. .IP \(bu 2
  263267. Fix for logging when \fBlog_level=\(aqquiet\(aq\fP for \fBcmd.run\fP (\fI\%issue #19479\fP)
  263268. .UNINDENT
  263269. .SS Salt 2014.7.2 Release Notes
  263270. .INDENT 0.0
  263271. .TP
  263272. .B release
  263273. 2015\-02\-09
  263274. .UNINDENT
  263275. .sp
  263276. Version 2014.7.2 is a bugfix release for 2014.7.0\&.
  263277. .sp
  263278. The changes include:
  263279. .INDENT 0.0
  263280. .IP \(bu 2
  263281. Fix erroneous warnings for systemd service enabled check (\fI\%issue #19606\fP)
  263282. .IP \(bu 2
  263283. Fix FreeBSD kernel module loading, listing, and persistence
  263284. \fBkmod\fP (\fI\%issue #197151\fP, \fI\%issue #19682\fP)
  263285. .IP \(bu 2
  263286. Allow case\-sensitive npm package names in the \fBnpm state\fP\&. This may break behavior for people expecting the state
  263287. to lowercase their npm package names for them. The \fBnpm module\fP was never affected by mandatory lowercasing.
  263288. (\fI\%issue #20329\fP)
  263289. .IP \(bu 2
  263290. Deprecate the \fBactivate\fP parameter for pip.install for both the
  263291. \fBmodule\fP and the \fBstate\fP\&.
  263292. If \fBbin_env\fP is given and points to a virtualenv, there is no need to
  263293. activate that virtualenv in a shell for pip to install to the virtualenv.
  263294. .IP \(bu 2
  263295. Fix a file\-locking bug in gitfs (\fI\%issue #18839\fP)
  263296. .IP \(bu 2
  263297. Deprecated \fBarchive_user\fP in favor of standardized \fBuser\fP parameter in
  263298. \fBstate\fP and added \fBgroup\fP parameter.
  263299. .UNINDENT
  263300. .SS Salt 2014.7.3 Release Notes
  263301. .INDENT 0.0
  263302. .TP
  263303. .B release
  263304. 2015\-03\-25
  263305. .UNINDENT
  263306. .sp
  263307. Version 2014.7.3 is a bugfix release for 2014.7.0\&.
  263308. .sp
  263309. Changes:
  263310. .INDENT 0.0
  263311. .IP \(bu 2
  263312. Multi\-master minions mode no longer route fileclient operations asymetrically.
  263313. This fixes the source of many multi\-master bugs where the minion would
  263314. become unrepsonsive from one or more masters.
  263315. .IP \(bu 2
  263316. Fix bug wherein network.iface could produce stack traces.
  263317. .IP \(bu 2
  263318. net.arp will no longer be made available unless arp is installed on the
  263319. system.
  263320. .IP \(bu 2
  263321. Major performance improvements to Saltnado
  263322. .IP \(bu 2
  263323. Allow KVM module to operate under KVM itself or VMware Fusion
  263324. .IP \(bu 2
  263325. Various fixes to the Windows installation scripts
  263326. .IP \(bu 2
  263327. Fix issue where the syndic would not correctly propagate loads to the master
  263328. job cache.
  263329. .IP \(bu 2
  263330. Improve error handling on invalid /etc/network/interfaces file in salt
  263331. networking modules
  263332. .IP \(bu 2
  263333. Fix bug where a response status was not checked for in fileclient.get_url
  263334. .IP \(bu 2
  263335. Enable eauth when running salt in batch mode
  263336. .IP \(bu 2
  263337. Increase timeout in Boto Route53 module
  263338. .IP \(bu 2
  263339. Fix bugs with Salt\(aqs \(aqtar\(aq module option parsing
  263340. .IP \(bu 2
  263341. Fix parsing of NTP servers on Windows
  263342. .IP \(bu 2
  263343. Fix issue with blockdev tuning not reporting changes correctly
  263344. .IP \(bu 2
  263345. Update to the latest Salt bootstrap script
  263346. .IP \(bu 2
  263347. Update Linode salt\-cloud driver to use either linode\-python or
  263348. apache\-libcloud
  263349. .IP \(bu 2
  263350. Fix for s3.query function to return correct headers
  263351. .IP \(bu 2
  263352. Fix for s3.head returning None for files that exist
  263353. .IP \(bu 2
  263354. Fix the disable function in win_service module so that the service is
  263355. disabled correctly
  263356. .IP \(bu 2
  263357. Fix race condition between master and minion when making a directory when
  263358. both daemons are on the same host
  263359. .IP \(bu 2
  263360. Fix an issue where file.recurse would fail at the root of an svn repo
  263361. when the repo has a mountpoint
  263362. .IP \(bu 2
  263363. Fix an issue where file.recurse would fail at the root of an hgfs repo
  263364. when the repo has a mountpoint
  263365. .IP \(bu 2
  263366. Fix an issue where file.recurse would fail at the root of an gitfs repo
  263367. when the repo has a mountpoint
  263368. .IP \(bu 2
  263369. Add status.master capability for Windows.
  263370. .IP \(bu 2
  263371. Various fixes to ssh_known_hosts
  263372. .IP \(bu 2
  263373. Various fixes to states.network bonding for Debian
  263374. .IP \(bu 2
  263375. The debian_ip.get_interfaces module no longer removes nameservers.
  263376. .IP \(bu 2
  263377. Better integration between grains.virtual and systemd\-detect\-virt and
  263378. virt\-what
  263379. .IP \(bu 2
  263380. Fix traceback in sysctl.present state output
  263381. .IP \(bu 2
  263382. Fix for issue where mount.mounted would fail when superopts were not a part
  263383. of mount.active (extended=True). Also mount.mounted various fixes for Solaris
  263384. and FreeBSD.
  263385. .IP \(bu 2
  263386. Fix error where datetimes were not correctly safeguarded before being passed
  263387. into msgpack.
  263388. .IP \(bu 2
  263389. Fix file.replace regressions. If the pattern is not found, and if dry run is False,
  263390. and if \fIbackup\fP is False, and if a pre\-existing file exists with extension \fI\&.bak\fP,
  263391. then that backup file will be overwritten. This backup behavior is a result of how \fIfileinput\fP
  263392. works. Fixing it requires either passing through the file twice (the
  263393. first time only to search for content and set a flag), or rewriting
  263394. \fIfile.replace\fP so it doesn\(aqt use \fIfileinput\fP
  263395. .IP \(bu 2
  263396. VCS filreserver fixes/optimizations
  263397. .IP \(bu 2
  263398. Catch fileserver configuration errors on master start
  263399. .IP \(bu 2
  263400. Raise errors on invalid gitfs configurations
  263401. .IP \(bu 2
  263402. set_locale when locale file does not exist (Redhat family)
  263403. .IP \(bu 2
  263404. Fix to correctly count active devices when created mdadm array with spares
  263405. .IP \(bu 2
  263406. Fix to correctly target minions in batch mode
  263407. .IP \(bu 2
  263408. Support \fI\%ssh://\fP urls using the gitfs dulwhich backend
  263409. .IP \(bu 2
  263410. New fileserver runner
  263411. .IP \(bu 2
  263412. Fix various bugs with argument parsing to the publish module.
  263413. .IP \(bu 2
  263414. Fix disk.usage for Synology OS
  263415. .IP \(bu 2
  263416. Fix issue with tags occurring twice with docker.pulled
  263417. .IP \(bu 2
  263418. Fix incorrect key error in SMTP returner
  263419. .IP \(bu 2
  263420. Fix condition which would remount loopback filesystems on every state run
  263421. .IP \(bu 2
  263422. Remove requsites from listens after they are called in the state system
  263423. .IP \(bu 2
  263424. Make system implementation of service.running aware of legacy service calls
  263425. .IP \(bu 2
  263426. Fix issue where publish.publish would not handle duplicate responses gracefully.
  263427. .IP \(bu 2
  263428. Accept Kali Linux for aptpkg salt execution module
  263429. .IP \(bu 2
  263430. Fix bug where cmd.which could not handle a dirname as an argument
  263431. .IP \(bu 2
  263432. Fix issue in ps.pgrep where exceptions were thrown on Windows.
  263433. .UNINDENT
  263434. .sp
  263435. Known issues:
  263436. .INDENT 0.0
  263437. .IP \(bu 2
  263438. In multimaster mode, a minion may become temporarily unresponsive
  263439. if modules or pillars are refreshed at the same time that one
  263440. or more masters are down. This can be worked around by setting
  263441. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263442. .UNINDENT
  263443. .SS Salt 2014.7.4 Release Notes
  263444. .INDENT 0.0
  263445. .TP
  263446. .B release
  263447. 2015\-03\-30
  263448. .UNINDENT
  263449. .sp
  263450. Version 2014.7.4 is a bugfix release for 2014.7.0\&.
  263451. .sp
  263452. This is a security release. The security issues fixed have only been present
  263453. since 2014.7.0, and only users of the two listed modules are vulnerable. The
  263454. following CVEs have been resolved:
  263455. .INDENT 0.0
  263456. .IP \(bu 2
  263457. CVE\-2015\-1838 SaltStack: insecure /tmp file handling in
  263458. salt/modules/serverdensity_device.py
  263459. .IP \(bu 2
  263460. CVE\-2015\-1839 SaltStack: insecure /tmp file handling in salt/modules/chef.py
  263461. .UNINDENT
  263462. .sp
  263463. Changes:
  263464. .INDENT 0.0
  263465. .IP \(bu 2
  263466. Multi\-master minions mode no longer route fileclient operations asymetrically.
  263467. This fixes the source of many multi\-master bugs where the minion would
  263468. become unrepsonsive from one or more masters.
  263469. .IP \(bu 2
  263470. Fix bug wherein network.iface could produce stack traces.
  263471. .IP \(bu 2
  263472. net.arp will no longer be made available unless arp is installed on the
  263473. system.
  263474. .IP \(bu 2
  263475. Major performance improvements to Saltnado
  263476. .IP \(bu 2
  263477. Allow KVM module to operate under KVM itself or VMware Fusion
  263478. .IP \(bu 2
  263479. Various fixes to the Windows installation scripts
  263480. .IP \(bu 2
  263481. Fix issue where the syndic would not correctly propagate loads to the master
  263482. job cache.
  263483. .IP \(bu 2
  263484. Improve error handling on invalid /etc/network/interfaces file in salt
  263485. networking modules
  263486. .IP \(bu 2
  263487. Fix bug where a response status was not checked for in fileclient.get_url
  263488. .IP \(bu 2
  263489. Enable eauth when running salt in batch mode
  263490. .IP \(bu 2
  263491. Increase timeout in Boto Route53 module
  263492. .IP \(bu 2
  263493. Fix bugs with Salt\(aqs \(aqtar\(aq module option parsing
  263494. .IP \(bu 2
  263495. Fix parsing of NTP servers on Windows
  263496. .IP \(bu 2
  263497. Fix issue with blockdev tuning not reporting changes correctly
  263498. .IP \(bu 2
  263499. Update to the latest Salt bootstrap script
  263500. .IP \(bu 2
  263501. Update Linode salt\-cloud driver to use either linode\-python or
  263502. apache\-libcloud
  263503. .IP \(bu 2
  263504. Fix for s3.query function to return correct headers
  263505. .IP \(bu 2
  263506. Fix for s3.head returning None for files that exist
  263507. .IP \(bu 2
  263508. Fix the disable function in win_service module so that the service is
  263509. disabled correctly
  263510. .IP \(bu 2
  263511. Fix race condition between master and minion when making a directory when
  263512. both daemons are on the same host
  263513. .IP \(bu 2
  263514. Fix an issue where file.recurse would fail at the root of an svn repo
  263515. when the repo has a mountpoint
  263516. .IP \(bu 2
  263517. Fix an issue where file.recurse would fail at the root of an hgfs repo
  263518. when the repo has a mountpoint
  263519. .IP \(bu 2
  263520. Fix an issue where file.recurse would fail at the root of an gitfs repo
  263521. when the repo has a mountpoint
  263522. .IP \(bu 2
  263523. Add status.master capability for Windows.
  263524. .IP \(bu 2
  263525. Various fixes to ssh_known_hosts
  263526. .IP \(bu 2
  263527. Various fixes to states.network bonding for Debian
  263528. .IP \(bu 2
  263529. The debian_ip.get_interfaces module no longer removes nameservers.
  263530. .IP \(bu 2
  263531. Better integration between grains.virtual and systemd\-detect\-virt and
  263532. virt\-what
  263533. .IP \(bu 2
  263534. Fix traceback in sysctl.present state output
  263535. .IP \(bu 2
  263536. Fix for issue where mount.mounted would fail when superopts were not a part
  263537. of mount.active (extended=True). Also mount.mounted various fixes for Solaris
  263538. and FreeBSD.
  263539. .IP \(bu 2
  263540. Fix error where datetimes were not correctly safeguarded before being passed
  263541. into msgpack.
  263542. .IP \(bu 2
  263543. Fix file.replace regressions. If the pattern is not found, and if dry run is False,
  263544. and if \fIbackup\fP is False, and if a pre\-existing file exists with extension \fI\&.bak\fP,
  263545. then that backup file will be overwritten. This backup behavior is a result of how \fIfileinput\fP
  263546. works. Fixing it requires either passing through the file twice (the
  263547. first time only to search for content and set a flag), or rewriting
  263548. \fIfile.replace\fP so it doesn\(aqt use \fIfileinput\fP
  263549. .IP \(bu 2
  263550. VCS filreserver fixes/optimizations
  263551. .IP \(bu 2
  263552. Catch fileserver configuration errors on master start
  263553. .IP \(bu 2
  263554. Raise errors on invalid gitfs configurations
  263555. .IP \(bu 2
  263556. set_locale when locale file does not exist (Redhat family)
  263557. .IP \(bu 2
  263558. Fix to correctly count active devices when created mdadm array with spares
  263559. .IP \(bu 2
  263560. Fix to correctly target minions in batch mode
  263561. .IP \(bu 2
  263562. Support \fI\%ssh://\fP urls using the gitfs dulwhich backend
  263563. .IP \(bu 2
  263564. New fileserver runner
  263565. .IP \(bu 2
  263566. Fix various bugs with argument parsing to the publish module.
  263567. .IP \(bu 2
  263568. Fix disk.usage for Synology OS
  263569. .IP \(bu 2
  263570. Fix issue with tags occurring twice with docker.pulled
  263571. .IP \(bu 2
  263572. Fix incorrect key error in SMTP returner
  263573. .IP \(bu 2
  263574. Fix condition which would remount loopback filesystems on every state run
  263575. .IP \(bu 2
  263576. Remove requsites from listens after they are called in the state system
  263577. .IP \(bu 2
  263578. Make system implementation of service.running aware of legacy service calls
  263579. .IP \(bu 2
  263580. Fix issue where publish.publish would not handle duplicate responses gracefully.
  263581. .IP \(bu 2
  263582. Accept Kali Linux for aptpkg salt execution module
  263583. .IP \(bu 2
  263584. Fix bug where cmd.which could not handle a dirname as an argument
  263585. .IP \(bu 2
  263586. Fix issue in ps.pgrep where exceptions were thrown on Windows.
  263587. .UNINDENT
  263588. .sp
  263589. Known issues:
  263590. .INDENT 0.0
  263591. .IP \(bu 2
  263592. In multimaster mode, a minion may become temporarily unresponsive
  263593. if modules or pillars are refreshed at the same time that one
  263594. or more masters are down. This can be worked around by setting
  263595. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263596. .IP \(bu 2
  263597. There are known issues with batch mode operating on the incorrect number of minions.
  263598. This bug can be patched with the change in \fI\%Pull Request #22464\fP\&.
  263599. .IP \(bu 2
  263600. The \fIfun\fP, \fIstate\fP, and \fIunless\fP keywords are missing from the state internals, which
  263601. can cause problems running some states. This bug can be patched with the change in
  263602. \fI\%Pull Request #22365\fP\&.
  263603. .UNINDENT
  263604. .SS Salt 2014.7.5 Release Notes
  263605. .INDENT 0.0
  263606. .TP
  263607. .B release
  263608. 2015\-04\-16
  263609. .UNINDENT
  263610. .sp
  263611. Version 2014.7.5 is a bugfix release for 2014.7.0\&.
  263612. .sp
  263613. Changes:
  263614. .INDENT 0.0
  263615. .IP \(bu 2
  263616. Fixed a key error bug in salt\-cloud
  263617. .IP \(bu 2
  263618. Updated man pages to better match documentation
  263619. .IP \(bu 2
  263620. Fixed bug concerning high CPU usage with salt\-ssh
  263621. .IP \(bu 2
  263622. Fixed bugs with remounting cvfs and fuse filesystems
  263623. .IP \(bu 2
  263624. Fixed bug with alowing requisite tracking of entire sls files
  263625. .IP \(bu 2
  263626. Fixed bug with aptpkg.mod_repo returning OK even if apt\-add\-repository fails
  263627. .IP \(bu 2
  263628. Increased frequency of ssh terminal output checking
  263629. .IP \(bu 2
  263630. Fixed malformed locale string in localmod module
  263631. .IP \(bu 2
  263632. Fixed checking of available version of package when accept_keywords were changed
  263633. .IP \(bu 2
  263634. Fixed bug to make git.latest work with empty repositories
  263635. .IP \(bu 2
  263636. Added **kwargs to service.mod_watch which removes warnings about \fIenable\fP and \fI__reqs__\fP not being supported by the function
  263637. .IP \(bu 2
  263638. Improved state comments to not grow so quickly on failed requisites
  263639. .IP \(bu 2
  263640. Added force argument to service to trigger force_reload
  263641. .IP \(bu 2
  263642. Fixed bug to andle pkgrepo keyids that have been converted to int
  263643. .IP \(bu 2
  263644. Fixed module.portage_config bug with appending accept_keywords
  263645. .IP \(bu 2
  263646. Fixed bug to correctly report disk usage on windows minion
  263647. .IP \(bu 2
  263648. Added the ability to specify key prefix for S3 ext_pillar
  263649. .IP \(bu 2
  263650. Fixed issues with batch mode operating on the incorrect number of minions
  263651. .IP \(bu 2
  263652. Fixed a bug with the proxmox cloud provider stacktracing on disk definition
  263653. .IP \(bu 2
  263654. Fixed a bug with the changes dictionary in the file state
  263655. .IP \(bu 2
  263656. Fixed the TCP keep alive settings to work better with SREQ caching
  263657. .IP \(bu 2
  263658. Fixed many bugs within the iptables state and module
  263659. .IP \(bu 2
  263660. Fixed bug with states by adding \fIfun\fP, \fIstate\fP, and \fIunless\fP to the state runtime internal keywords listing
  263661. .IP \(bu 2
  263662. Added ability to eAuth against Active Directory
  263663. .IP \(bu 2
  263664. Fixed some salt\-ssh issues when running on Fedora 21
  263665. .IP \(bu 2
  263666. Fixed grains.get_or_set_hash to work with multiple entries under same key
  263667. .IP \(bu 2
  263668. Added better explanations and more examples of how the Reactor calls functions to docs
  263669. .IP \(bu 2
  263670. Fixed bug to not pass \fIex_config_drive\fP to libcloud unless it\(aqs explicitly enabled
  263671. .IP \(bu 2
  263672. Fixed bug with pip.install on windows
  263673. .IP \(bu 2
  263674. Fixed bug where puppet.run always returns a 0 retcode
  263675. .IP \(bu 2
  263676. Fixed race condition bug with minion scheduling via pillar
  263677. .IP \(bu 2
  263678. Made efficiency improvements and bug fixes to the windows installer
  263679. .IP \(bu 2
  263680. Updated environment variables to fix bug with pygit2 when running salt as non\-root user
  263681. .IP \(bu 2
  263682. Fixed cas behavior on data module \-\- data.cas was not saving changes
  263683. .IP \(bu 2
  263684. Fixed GPG rendering error
  263685. .IP \(bu 2
  263686. Fixed strace error in virt.query
  263687. .IP \(bu 2
  263688. Fixed stacktrace when running chef\-solo command
  263689. .IP \(bu 2
  263690. Fixed possible bug wherein uncaught exceptions seem to make zmq3 tip over when threading is involved
  263691. .IP \(bu 2
  263692. Fixed argument passing to the reactor
  263693. .IP \(bu 2
  263694. Fixed glibc caching to prevent bug where salt\-minion getaddrinfo in dns_check() never got updated nameservers
  263695. .UNINDENT
  263696. .sp
  263697. Known issues:
  263698. .INDENT 0.0
  263699. .IP \(bu 2
  263700. In multimaster mode, a minion may become temporarily unresponsive
  263701. if modules or pillars are refreshed at the same time that one
  263702. or more masters are down. This can be worked around by setting
  263703. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263704. .UNINDENT
  263705. .SS Salt 2014.7.6 Release Notes
  263706. .INDENT 0.0
  263707. .TP
  263708. .B release
  263709. 2015\-05\-18
  263710. .UNINDENT
  263711. .sp
  263712. Version 2014.7.6 is a bugfix release for 2014.7.0\&.
  263713. .SS Statistics
  263714. .INDENT 0.0
  263715. .IP \(bu 2
  263716. Total Merges: \fB122\fP
  263717. .IP \(bu 2
  263718. Total Issue References: \fB66\fP
  263719. .IP \(bu 2
  263720. Total PR References: \fB166\fP
  263721. .IP \(bu 2
  263722. 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)
  263723. .UNINDENT
  263724. .SS Security Fix
  263725. .sp
  263726. \fBCVE\-2015\-4017\fP Certificates are not verified when connecting to server in
  263727. the Aliyun and Proxmox modules
  263728. .sp
  263729. Only users of the Aliyun or Proxmox cloud modules are at risk. The
  263730. vulnerability does not exist in the latest 2015.5.0 release of Salt.
  263731. .SS Changelog for v2014.7.5..v2014.7.6
  263732. .sp
  263733. \fIGenerated at: 2018\-05\-27 20:42:49 UTC\fP
  263734. .INDENT 0.0
  263735. .IP \(bu 2
  263736. \fBPR\fP \fI\%#23810\fP: (\fI\%rallytime\fP) Backport \fI\%#23757\fP to 2014.7
  263737. @ \fI2015\-05\-18 15:30:21 UTC\fP
  263738. .INDENT 2.0
  263739. .IP \(bu 2
  263740. \fBPR\fP \fI\%#23757\fP: (\fI\%clan\fP) use abspath, do not eliminating symlinks (refs: \fI\%#23810\fP)
  263741. .IP \(bu 2
  263742. aee00c83df Merge pull request \fI\%#23810\fP from rallytime/bp\-23757
  263743. .IP \(bu 2
  263744. fb32c32065 use abspath, do not eliminating symlinks
  263745. .UNINDENT
  263746. .IP \(bu 2
  263747. \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)
  263748. .IP \(bu 2
  263749. \fBPR\fP \fI\%#23809\fP: (\fI\%rallytime\fP) Fix virtualport section of virt.get_nics loop
  263750. @ \fI2015\-05\-18 15:30:09 UTC\fP
  263751. .INDENT 2.0
  263752. .IP \(bu 2
  263753. \fBPR\fP \fI\%#21487\fP: (\fI\%rallytime\fP) Backport \fI\%#21469\fP to 2014.7 (refs: \fI\%#23809\fP)
  263754. .IP \(bu 2
  263755. \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)
  263756. .IP \(bu 2
  263757. 6b3352bb1a Merge pull request \fI\%#23809\fP from rallytime/virt_get_nics_fix
  263758. .IP \(bu 2
  263759. 0616fb7884 Fix virtualport section of virt.get_nics loop
  263760. .UNINDENT
  263761. .IP \(bu 2
  263762. \fBPR\fP \fI\%#23823\fP: (\fI\%gtmanfred\fP) add link local for ipv6
  263763. @ \fI2015\-05\-17 12:48:25 UTC\fP
  263764. .INDENT 2.0
  263765. .IP \(bu 2
  263766. 188f03f567 Merge pull request \fI\%#23823\fP from gtmanfred/2014.7
  263767. .IP \(bu 2
  263768. 5ef006d59d add link local for ipv6
  263769. .UNINDENT
  263770. .IP \(bu 2
  263771. \fBPR\fP \fI\%#23802\fP: (\fI\%gtmanfred\fP) if it is ipv6 ip_to_int will fail
  263772. @ \fI2015\-05\-16 04:06:59 UTC\fP
  263773. .INDENT 2.0
  263774. .IP \(bu 2
  263775. \fBPR\fP \fI\%#23573\fP: (\fI\%techhat\fP) Scan all available networks for public and private IPs (refs: \fI\%#23802\fP)
  263776. .IP \(bu 2
  263777. f3ca682f92 Merge pull request \fI\%#23802\fP from gtmanfred/2014.7
  263778. .IP \(bu 2
  263779. 2da98b58c8 if it is ipv6 ip_to_int will fail
  263780. .UNINDENT
  263781. .IP \(bu 2
  263782. \fBPR\fP \fI\%#23488\fP: (\fI\%cellscape\fP) LXC cloud fixes
  263783. @ \fI2015\-05\-15 18:09:35 UTC\fP
  263784. .INDENT 2.0
  263785. .IP \(bu 2
  263786. d9af0c3e82 Merge pull request \fI\%#23488\fP from cellscape/lxc\-cloud\-fixes
  263787. .IP \(bu 2
  263788. 64250a67e5 Remove profile from opts after creating LXC container
  263789. .IP \(bu 2
  263790. c4047d2a71 Set destroy=True in opts when destroying cloud instance
  263791. .IP \(bu 2
  263792. 9e1311a7cd Store instance names in opts when performing cloud action
  263793. .IP \(bu 2
  263794. 934bc57c73 Correctly pass custom env to lxc\-attach
  263795. .IP \(bu 2
  263796. 7fb85f7be1 Preserve test=True option in cloud states
  263797. .IP \(bu 2
  263798. 9771b5a313 Fix detection of absent LXC container in cloud state
  263799. .IP \(bu 2
  263800. fb24f0cf02 Report failure when failed to create/clone LXC container
  263801. .IP \(bu 2
  263802. 2d9aa2bb97 Avoid shadowing variables in lxc module
  263803. .IP \(bu 2
  263804. 792e1021f2 Allow to override profile options in lxc.cloud_init_interface
  263805. .IP \(bu 2
  263806. 42bd64b9b3 Return changes on successful lxc.create from salt\-cloud
  263807. .IP \(bu 2
  263808. 4409eabb83 Return correct result when creating cloud LXC container
  263809. .IP \(bu 2
  263810. 377015c881 Issue \fI\%#16424\fP: List all providers when creating salt\-cloud instance without profile
  263811. .UNINDENT
  263812. .IP \(bu 2
  263813. \fBISSUE\fP \fI\%#22332\fP: (\fI\%rallytime\fP) [salt\-ssh] Add a check for host in /etc/salt/roster (refs: \fI\%#23748\fP)
  263814. .IP \(bu 2
  263815. \fBPR\fP \fI\%#23748\fP: (\fI\%basepi\fP) [2014.7] Log salt\-ssh roster render errors more assertively and verbosely
  263816. @ \fI2015\-05\-14 22:38:10 UTC\fP
  263817. .INDENT 2.0
  263818. .IP \(bu 2
  263819. 808bbe1cb2 Merge pull request \fI\%#23748\fP from basepi/salt\-ssh.roster.host.check
  263820. .IP \(bu 2
  263821. bc53e049e0 Log entire exception for render errors in roster
  263822. .IP \(bu 2
  263823. 753de6a621 Log render errors in roster to error level
  263824. .IP \(bu 2
  263825. e01a7a90b3 Always let the real YAML error through
  263826. .UNINDENT
  263827. .IP \(bu 2
  263828. \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)
  263829. .IP \(bu 2
  263830. \fBPR\fP \fI\%#23731\fP: (\fI\%twangboy\fP) Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  263831. @ \fI2015\-05\-14 21:59:14 UTC\fP
  263832. .INDENT 2.0
  263833. .IP \(bu 2
  263834. 72cf360255 Merge pull request \fI\%#23731\fP from twangboy/fix_22959
  263835. .IP \(bu 2
  263836. 88e5495b2d Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  263837. .UNINDENT
  263838. .IP \(bu 2
  263839. \fBPR\fP \fI\%#23730\fP: (\fI\%rallytime\fP) Backport \fI\%#23729\fP to 2014.7
  263840. @ \fI2015\-05\-14 21:58:34 UTC\fP
  263841. .INDENT 2.0
  263842. .IP \(bu 2
  263843. \fBPR\fP \fI\%#23729\fP: (\fI\%rallytime\fP) Partially merge \fI\%#23437\fP (grains fix) (refs: \fI\%#23730\fP)
  263844. .IP \(bu 2
  263845. \fBPR\fP \fI\%#23437\fP: (\fI\%cedwards\fP) Grains item patch (refs: \fI\%#23729\fP)
  263846. .IP \(bu 2
  263847. 2610195262 Merge pull request \fI\%#23730\fP from rallytime/bp\-23729
  263848. .IP \(bu 2
  263849. 1877caecba adding support for nested grains to grains.item
  263850. .UNINDENT
  263851. .IP \(bu 2
  263852. \fBPR\fP \fI\%#23688\fP: (\fI\%twangboy\fP) Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  263853. @ \fI2015\-05\-14 16:15:56 UTC\fP
  263854. .INDENT 2.0
  263855. .IP \(bu 2
  263856. 3e9df883d6 Merge pull request \fI\%#23688\fP from twangboy/fix_23415
  263857. .IP \(bu 2
  263858. 6a91169bae Fixed unused\-import pylint error
  263859. .IP \(bu 2
  263860. 5e25b3f355 fixed pylint errors
  263861. .IP \(bu 2
  263862. 1a9676626f Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  263863. .UNINDENT
  263864. .IP \(bu 2
  263865. \fBISSUE\fP \fI\%#23403\fP: (\fI\%iamfil\fP) salt.runners.cloud.action fun parameter is replaced (refs: \fI\%#23680\fP)
  263866. .IP \(bu 2
  263867. \fBPR\fP \fI\%#23680\fP: (\fI\%cachedout\fP) Rename kwarg in cloud runner
  263868. @ \fI2015\-05\-13 19:44:02 UTC\fP
  263869. .INDENT 2.0
  263870. .IP \(bu 2
  263871. 1b86460d73 Merge pull request \fI\%#23680\fP from cachedout/issue_23403
  263872. .IP \(bu 2
  263873. d5986c21b4 Rename kwarg in cloud runner
  263874. .UNINDENT
  263875. .IP \(bu 2
  263876. \fBISSUE\fP \fI\%#23548\fP: (\fI\%kkaig\fP) grains.list_present produces incorrect (?) output (refs: \fI\%#23674\fP)
  263877. .IP \(bu 2
  263878. \fBPR\fP \fI\%#23674\fP: (\fI\%cachedout\fP) Handle lists correctly in grains.list_prsesent
  263879. @ \fI2015\-05\-13 18:34:58 UTC\fP
  263880. .INDENT 2.0
  263881. .IP \(bu 2
  263882. cd64af0ce4 Merge pull request \fI\%#23674\fP from cachedout/issue_23548
  263883. .IP \(bu 2
  263884. da8a2f5cb3 Handle lists correctly in grains.list_prsesent
  263885. .UNINDENT
  263886. .IP \(bu 2
  263887. \fBPR\fP \fI\%#23672\fP: (\fI\%twangboy\fP) Fix user present
  263888. @ \fI2015\-05\-13 18:30:09 UTC\fP
  263889. .INDENT 2.0
  263890. .IP \(bu 2
  263891. d322a19213 Merge pull request \fI\%#23672\fP from twangboy/fix_user_present
  263892. .IP \(bu 2
  263893. 731e7af3dd Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_user_present
  263894. .IP \(bu 2
  263895. d6f70a4545 Fixed user.present to create password in windows
  263896. .UNINDENT
  263897. .IP \(bu 2
  263898. \fBISSUE\fP \fI\%#23604\fP: (\fI\%Azidburn\fP) service.dead on systemd Minion create an Error Message (refs: \fI\%#23607\fP)
  263899. .IP \(bu 2
  263900. \fBPR\fP \fI\%#23670\fP: (\fI\%rallytime\fP) Backport \fI\%#23607\fP to 2014.7
  263901. @ \fI2015\-05\-13 18:27:17 UTC\fP
  263902. .INDENT 2.0
  263903. .IP \(bu 2
  263904. \fBPR\fP \fI\%#23607\fP: (\fI\%Azidburn\fP) Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok (refs: \fI\%#23670\fP)
  263905. .IP \(bu 2
  263906. 43f7025000 Merge pull request \fI\%#23670\fP from rallytime/bp\-23607
  263907. .IP \(bu 2
  263908. ed30dc4642 Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok
  263909. .UNINDENT
  263910. .IP \(bu 2
  263911. \fBISSUE\fP \fI\%#22141\fP: (\fI\%Deshke\fP) grains.get_or_set_hash render error if hash begins with "%" (refs: \fI\%#23640\fP)
  263912. .IP \(bu 2
  263913. \fBPR\fP \fI\%#23661\fP: (\fI\%rallytime\fP) Merge \fI\%#23640\fP with whitespace fix
  263914. @ \fI2015\-05\-13 15:47:30 UTC\fP
  263915. .INDENT 2.0
  263916. .IP \(bu 2
  263917. \fBPR\fP \fI\%#23640\fP: (\fI\%cachedout\fP) Add warning to get_or_set_hash about reserved chars (refs: \fI\%#23661\fP)
  263918. .IP \(bu 2
  263919. 0f006ac1d8 Merge pull request \fI\%#23661\fP from rallytime/merge\-23640
  263920. .IP \(bu 2
  263921. 4427f42bb6 Whitespace fix
  263922. .IP \(bu 2
  263923. dd9115466e Add warning to get_or_set_hash about reserved chars
  263924. .UNINDENT
  263925. .IP \(bu 2
  263926. \fBISSUE\fP \fI\%#23452\fP: (\fI\%landergate\fP) minion crashed with empty grain (refs: \fI\%#23639\fP)
  263927. .IP \(bu 2
  263928. \fBPR\fP \fI\%#23639\fP: (\fI\%cachedout\fP) Handle exceptions raised by __virtual__
  263929. @ \fI2015\-05\-13 15:11:12 UTC\fP
  263930. .INDENT 2.0
  263931. .IP \(bu 2
  263932. 84e2ef88fc Merge pull request \fI\%#23639\fP from cachedout/issue_23452
  263933. .IP \(bu 2
  263934. d418b49a77 Syntax error!
  263935. .IP \(bu 2
  263936. 45b4015d7d Handle exceptions raised by __virtual__
  263937. .UNINDENT
  263938. .IP \(bu 2
  263939. \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)
  263940. .IP \(bu 2
  263941. \fBPR\fP \fI\%#23637\fP: (\fI\%cachedout\fP) Convert str master to list
  263942. @ \fI2015\-05\-13 15:08:19 UTC\fP
  263943. .INDENT 2.0
  263944. .IP \(bu 2
  263945. bd9b94ba8c Merge pull request \fI\%#23637\fP from cachedout/issue_23611
  263946. .IP \(bu 2
  263947. 56cb1f52e3 Fix typo
  263948. .IP \(bu 2
  263949. f6fcf19a7f Convert str master to list
  263950. .UNINDENT
  263951. .IP \(bu 2
  263952. \fBPR\fP \fI\%#23595\fP: (\fI\%rallytime\fP) Backport \fI\%#23549\fP to 2014.7
  263953. @ \fI2015\-05\-12 21:19:40 UTC\fP
  263954. .INDENT 2.0
  263955. .IP \(bu 2
  263956. \fBPR\fP \fI\%#23549\fP: (\fI\%vr\-jack\fP) Update __init__.py (refs: \fI\%#23595\fP)
  263957. .IP \(bu 2
  263958. f20c0e42ce Merge pull request \fI\%#23595\fP from rallytime/bp\-23549
  263959. .IP \(bu 2
  263960. 6efcac09ad Update __init__.py
  263961. .UNINDENT
  263962. .IP \(bu 2
  263963. \fBISSUE\fP \fI\%#23110\fP: (\fI\%martinhoefling\fP) Copying files from gitfs in file.recurse state fails (refs: \fI\%#23496\fP)
  263964. .IP \(bu 2
  263965. \fBPR\fP \fI\%#23594\fP: (\fI\%rallytime\fP) Backport \fI\%#23496\fP to 2014.7
  263966. @ \fI2015\-05\-12 21:19:34 UTC\fP
  263967. .INDENT 2.0
  263968. .IP \(bu 2
  263969. \fBPR\fP \fI\%#23496\fP: (\fI\%martinhoefling\fP) Fix for issue \fI\%#23110\fP (refs: \fI\%#23594\fP)
  263970. .IP \(bu 2
  263971. 1acaf86da7 Merge pull request \fI\%#23594\fP from rallytime/bp\-23496
  263972. .IP \(bu 2
  263973. d5ae1d268a Fix for issue \fI\%#23110\fP This resolves issues when the freshly created directory is removed by fileserver.update.
  263974. .UNINDENT
  263975. .IP \(bu 2
  263976. \fBPR\fP \fI\%#23593\fP: (\fI\%rallytime\fP) Backport \fI\%#23442\fP to 2014.7
  263977. @ \fI2015\-05\-12 21:19:26 UTC\fP
  263978. .INDENT 2.0
  263979. .IP \(bu 2
  263980. \fBPR\fP \fI\%#23442\fP: (\fI\%clan\fP) add directory itself to keep list (refs: \fI\%#23593\fP)
  263981. .IP \(bu 2
  263982. 2c221c7332 Merge pull request \fI\%#23593\fP from rallytime/bp\-23442
  263983. .IP \(bu 2
  263984. 39869a15bd check w/ low[\(aqname\(aq] only
  263985. .IP \(bu 2
  263986. 304cc499e9 another fix for file defined w/ id, but require name
  263987. .IP \(bu 2
  263988. 8814d4180e add directory itself to keep list
  263989. .UNINDENT
  263990. .IP \(bu 2
  263991. \fBPR\fP \fI\%#23606\fP: (\fI\%twangboy\fP) Fixed checkbox for starting service and actually starting it
  263992. @ \fI2015\-05\-12 21:18:50 UTC\fP
  263993. .INDENT 2.0
  263994. .IP \(bu 2
  263995. fadd1ef63c Merge pull request \fI\%#23606\fP from twangboy/fix_installer
  263996. .IP \(bu 2
  263997. 038331edab Fixed checkbox for starting service and actually starting it
  263998. .UNINDENT
  263999. .IP \(bu 2
  264000. \fBISSUE\fP \fI\%#22908\fP: (\fI\%karanjad\fP) Add failhard option to salt orchestration (refs: \fI\%#23389\fP)
  264001. .IP \(bu 2
  264002. \fBPR\fP \fI\%#23592\fP: (\fI\%rallytime\fP) Backport \fI\%#23389\fP to 2014.7
  264003. @ \fI2015\-05\-12 16:44:42 UTC\fP
  264004. .INDENT 2.0
  264005. .IP \(bu 2
  264006. \fBPR\fP \fI\%#23389\fP: (\fI\%cachedout\fP) Correct fail_hard typo (refs: \fI\%#23592\fP)
  264007. .IP \(bu 2
  264008. 10b3f0f643 Merge pull request \fI\%#23592\fP from rallytime/bp\-23389
  264009. .IP \(bu 2
  264010. 734cc43801 Correct fail_hard typo
  264011. .UNINDENT
  264012. .IP \(bu 2
  264013. \fBPR\fP \fI\%#23573\fP: (\fI\%techhat\fP) Scan all available networks for public and private IPs (refs: \fI\%#23802\fP)
  264014. @ \fI2015\-05\-12 15:22:22 UTC\fP
  264015. .INDENT 2.0
  264016. .IP \(bu 2
  264017. cd34b9b6c4 Merge pull request \fI\%#23573\fP from techhat/novaquery
  264018. .IP \(bu 2
  264019. f92db5e92f Linting
  264020. .IP \(bu 2
  264021. 26e00d3ccc Scan all available networks for public and private IPs
  264022. .UNINDENT
  264023. .IP \(bu 2
  264024. \fBISSUE\fP \fI\%#23479\fP: (\fI\%danielmorlock\fP) Typo in pkg.removed for Gentoo? (refs: \fI\%#23558\fP)
  264025. .IP \(bu 2
  264026. \fBPR\fP \fI\%#23558\fP: (\fI\%jfindlay\fP) reorder emerge command line
  264027. @ \fI2015\-05\-12 15:17:46 UTC\fP
  264028. .INDENT 2.0
  264029. .IP \(bu 2
  264030. 2a72cd71c2 Merge pull request \fI\%#23558\fP from jfindlay/fix_ebuild
  264031. .IP \(bu 2
  264032. 45404fb2a6 reorder emerge command line
  264033. .UNINDENT
  264034. .IP \(bu 2
  264035. \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)
  264036. .IP \(bu 2
  264037. \fBPR\fP \fI\%#23530\fP: (\fI\%dr4Ke\fP) salt\-ssh state: fix including all salt:// references
  264038. @ \fI2015\-05\-12 15:13:43 UTC\fP
  264039. .INDENT 2.0
  264040. .IP \(bu 2
  264041. a664a3c6fd Merge pull request \fI\%#23530\fP from dr4Ke/fix_salt\-ssh_to_include_pkg_sources
  264042. .IP \(bu 2
  264043. 5df6a8008c fix pylint warning
  264044. .IP \(bu 2
  264045. d0549e56ba salt\-ssh state: fix including all salt:// references
  264046. .UNINDENT
  264047. .IP \(bu 2
  264048. \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)
  264049. .IP \(bu 2
  264050. \fBPR\fP \fI\%#23433\fP: (\fI\%twangboy\fP) Obtain all software from the registry
  264051. @ \fI2015\-05\-11 22:47:52 UTC\fP
  264052. .INDENT 2.0
  264053. .IP \(bu 2
  264054. 55c3869861 Merge pull request \fI\%#23433\fP from twangboy/list_pkgs_fix
  264055. .IP \(bu 2
  264056. 8ab5b1b86f Fix pylint error
  264057. .IP \(bu 2
  264058. 2d11d6545e Obtain all software from the registry
  264059. .UNINDENT
  264060. .IP \(bu 2
  264061. \fBPR\fP \fI\%#23554\fP: (\fI\%jleroy\fP) Debian: Hostname always updated
  264062. @ \fI2015\-05\-11 21:57:00 UTC\fP
  264063. .INDENT 2.0
  264064. .IP \(bu 2
  264065. 755bed0abd Merge pull request \fI\%#23554\fP from jleroy/debian\-hostname\-fix
  264066. .IP \(bu 2
  264067. 5ff749e487 Debian: Hostname always updated
  264068. .UNINDENT
  264069. .IP \(bu 2
  264070. \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)
  264071. .IP \(bu 2
  264072. \fBPR\fP \fI\%#23551\fP: (\fI\%dr4Ke\fP) grains.append unit tests, related to \fI\%#23474\fP
  264073. @ \fI2015\-05\-11 21:54:25 UTC\fP
  264074. .INDENT 2.0
  264075. .IP \(bu 2
  264076. \fBPR\fP \fI\%#23474\fP: (\fI\%dr4Ke\fP) Fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23551\fP)
  264077. .IP \(bu 2
  264078. \fBPR\fP \fI\%#23440\fP: (\fI\%dr4Ke\fP) fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23474\fP)
  264079. .IP \(bu 2
  264080. 6ec87ce9f5 Merge pull request \fI\%#23551\fP from dr4Ke/grains.append_unit_tests
  264081. .IP \(bu 2
  264082. ebff9df5b2 fix pylint errors
  264083. .IP \(bu 2
  264084. c4954046ad unit tests for grains.append module function
  264085. .IP \(bu 2
  264086. 0c9a32326c use MagickMock
  264087. .IP \(bu 2
  264088. c838a22377 unit tests for grains.append module function
  264089. .UNINDENT
  264090. .IP \(bu 2
  264091. \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)
  264092. .IP \(bu 2
  264093. \fBPR\fP \fI\%#23474\fP: (\fI\%dr4Ke\fP) Fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23551\fP)
  264094. @ \fI2015\-05\-11 18:00:21 UTC\fP
  264095. .INDENT 2.0
  264096. .IP \(bu 2
  264097. \fBPR\fP \fI\%#23440\fP: (\fI\%dr4Ke\fP) fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23474\fP)
  264098. .IP \(bu 2
  264099. e96c5c5bf3 Merge pull request \fI\%#23474\fP from dr4Ke/fix_grains.append_nested
  264100. .IP \(bu 2
  264101. a01a5bb51e grains.get, parameter delimititer, versionadded: 2014.7.6
  264102. .IP \(bu 2
  264103. b39f50475d remove debugging output
  264104. .IP \(bu 2
  264105. b6e15e295c fix grains.append in nested dictionnary grains \fI\%#23411\fP
  264106. .UNINDENT
  264107. .IP \(bu 2
  264108. \fBPR\fP \fI\%#23537\fP: (\fI\%t0rrant\fP) Update changelog
  264109. @ \fI2015\-05\-11 17:02:16 UTC\fP
  264110. .INDENT 2.0
  264111. .IP \(bu 2
  264112. ab7e1aed8e Merge pull request \fI\%#23537\fP from t0rrant/patch\-1
  264113. .IP \(bu 2
  264114. 8e03cc99d3 Update changelog
  264115. .UNINDENT
  264116. .IP \(bu 2
  264117. \fBPR\fP \fI\%#23538\fP: (\fI\%cro\fP) Update date in LICENSE file
  264118. @ \fI2015\-05\-11 15:19:25 UTC\fP
  264119. .INDENT 2.0
  264120. .IP \(bu 2
  264121. b79fed3a92 Merge pull request \fI\%#23538\fP from cro/licupdate
  264122. .IP \(bu 2
  264123. 345efe25c9 Update date in LICENSE file
  264124. .UNINDENT
  264125. .IP \(bu 2
  264126. \fBISSUE\fP \fI\%#23159\fP: (\fI\%aneeshusa\fP) Unused validator (refs: \fI\%#23505\fP)
  264127. .IP \(bu 2
  264128. \fBPR\fP \fI\%#23505\fP: (\fI\%aneeshusa\fP) Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  264129. @ \fI2015\-05\-09 13:24:15 UTC\fP
  264130. .INDENT 2.0
  264131. .IP \(bu 2
  264132. a123a36f05 Merge pull request \fI\%#23505\fP from aneeshusa/remove\-unused\-ssh\-config\-validator
  264133. .IP \(bu 2
  264134. 90af1672ca Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  264135. .UNINDENT
  264136. .IP \(bu 2
  264137. \fBISSUE\fP \fI\%#20518\fP: (\fI\%ekle\fP) module s3.get does not support eu\-central\-1 (refs: \fI\%#23467\fP)
  264138. .IP \(bu 2
  264139. \fBPR\fP \fI\%#23467\fP: (\fI\%slinu3d\fP) Added AWS v4 signature support
  264140. @ \fI2015\-05\-08 14:36:19 UTC\fP
  264141. .INDENT 2.0
  264142. .IP \(bu 2
  264143. ca2c21a63c Merge pull request \fI\%#23467\fP from slinu3d/2014.7
  264144. .IP \(bu 2
  264145. 0b4081d8f4 Fixed pylint error at line 363
  264146. .IP \(bu 2
  264147. 5be5eb5b14 Fixed pylink errors
  264148. .IP \(bu 2
  264149. e64f374ffa Fixed lint errors
  264150. .IP \(bu 2
  264151. b9d1ac4f1f Added AWS v4 signature support
  264152. .UNINDENT
  264153. .IP \(bu 2
  264154. \fBPR\fP \fI\%#23444\fP: (\fI\%techhat\fP) Add create_attach_volume to nova driver
  264155. @ \fI2015\-05\-07 19:51:32 UTC\fP
  264156. .INDENT 2.0
  264157. .IP \(bu 2
  264158. e6f9eec02e Merge pull request \fI\%#23444\fP from techhat/novacreateattach
  264159. .IP \(bu 2
  264160. ebdb7eae2d Add create_attach_volume to nova driver
  264161. .UNINDENT
  264162. .IP \(bu 2
  264163. \fBISSUE\fP \fI\%#529\fP: (\fI\%rubic\fP) run salt in user space (refs: \fI\%#543\fP)
  264164. .INDENT 2.0
  264165. .IP \(bu 2
  264166. \fBPR\fP \fI\%saltstack/salt\-bootstrap#563\fP: (\fI\%notpeter\fP) Ubuntu alternate ppas (refs: \fI\%#23460\fP)
  264167. .IP \(bu 2
  264168. \fBPR\fP \fI\%#543\fP: (\fI\%rubic\fP) updated documentation for user, fixed configuration template links (refs: #\(gasaltstack/salt\-bootstrap#563\(ga_)
  264169. .UNINDENT
  264170. .IP \(bu 2
  264171. \fBPR\fP \fI\%#23460\fP: (\fI\%s0undt3ch\fP) [2014.7] Update to latest stable bootstrap script v2015.05.07
  264172. @ \fI2015\-05\-07 19:10:54 UTC\fP
  264173. .INDENT 2.0
  264174. .IP \(bu 2
  264175. e331463319 Merge pull request \fI\%#23460\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  264176. .IP \(bu 2
  264177. edcd0c41f2 Update to latest stable bootstrap script v2015.05.07
  264178. .UNINDENT
  264179. .IP \(bu 2
  264180. \fBPR\fP \fI\%#23439\fP: (\fI\%techhat\fP) Add wait_for_passwd_maxtries variable
  264181. @ \fI2015\-05\-07 07:28:56 UTC\fP
  264182. .INDENT 2.0
  264183. .IP \(bu 2
  264184. 7a8ce1a954 Merge pull request \fI\%#23439\fP from techhat/maxtries
  264185. .IP \(bu 2
  264186. 0ad3ff2c88 Add wait_for_passwd_maxtries variable
  264187. .UNINDENT
  264188. .IP \(bu 2
  264189. \fBPR\fP \fI\%#23422\fP: (\fI\%cro\fP) $HOME should not be used, some shells don\(aqt set it.
  264190. @ \fI2015\-05\-06 21:02:36 UTC\fP
  264191. .INDENT 2.0
  264192. .IP \(bu 2
  264193. 644eb75fec Merge pull request \fI\%#23422\fP from cro/gce_sh_home
  264194. .IP \(bu 2
  264195. 4ef9e6ba06 Don\(aqt use $HOME to find user\(aqs directory, some shells don\(aqt set it
  264196. .UNINDENT
  264197. .IP \(bu 2
  264198. \fBPR\fP \fI\%#23425\fP: (\fI\%basepi\fP) [2014.7] Fix typo in FunctionWrapper
  264199. @ \fI2015\-05\-06 20:38:03 UTC\fP
  264200. .INDENT 2.0
  264201. .IP \(bu 2
  264202. ef17ab4b2a Merge pull request \fI\%#23425\fP from basepi/functionwrapper_typo
  264203. .IP \(bu 2
  264204. c390737f3e Fix typo in FunctionWrapper
  264205. .UNINDENT
  264206. .IP \(bu 2
  264207. \fBPR\fP \fI\%#23385\fP: (\fI\%rallytime\fP) Backport \fI\%#23346\fP to 2014.7
  264208. @ \fI2015\-05\-06 20:12:29 UTC\fP
  264209. .INDENT 2.0
  264210. .IP \(bu 2
  264211. \fBPR\fP \fI\%#23346\fP: (\fI\%ericfode\fP) Allow file_map in salt\-cloud to handle folders. (refs: \fI\%#23385\fP)
  264212. .IP \(bu 2
  264213. 1b13ec04c2 Merge pull request \fI\%#23385\fP from rallytime/bp\-23346
  264214. .IP \(bu 2
  264215. 9efc13c810 more linting fixes
  264216. .IP \(bu 2
  264217. cf131c9a5a cleaned up some pylint errors
  264218. .IP \(bu 2
  264219. f981699c75 added logic to sftp_file and file_map to allow folder uploads using file_map
  264220. .UNINDENT
  264221. .IP \(bu 2
  264222. \fBPR\fP \fI\%#23414\fP: (\fI\%jfindlay\fP) 2015.2 \-> 2015.5
  264223. @ \fI2015\-05\-06 20:04:02 UTC\fP
  264224. .INDENT 2.0
  264225. .IP \(bu 2
  264226. f8c7a62089 Merge pull request \fI\%#23414\fP from jfindlay/update_branch
  264227. .IP \(bu 2
  264228. 8074d16d52 2015.2 \-> 2015.5
  264229. .UNINDENT
  264230. .IP \(bu 2
  264231. \fBPR\fP \fI\%#23404\fP: (\fI\%hvnsweeting\fP) saltapi cherrypy: initialize var when POST body is empty
  264232. @ \fI2015\-05\-06 17:35:56 UTC\fP
  264233. .INDENT 2.0
  264234. .IP \(bu 2
  264235. 54b3bd43e4 Merge pull request \fI\%#23404\fP from hvnsweeting/cherrypy\-post\-emptybody\-fix
  264236. .IP \(bu 2
  264237. f85f8f954c initialize var when POST body is empty
  264238. .UNINDENT
  264239. .IP \(bu 2
  264240. \fBPR\fP \fI\%#23409\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2014.7 branch
  264241. @ \fI2015\-05\-06 16:20:46 UTC\fP
  264242. .INDENT 2.0
  264243. .IP \(bu 2
  264244. 160f703296 Merge pull request \fI\%#23409\fP from terminalmage/update\-lithium\-docstrings\-2014.7
  264245. .IP \(bu 2
  264246. bc97d011ba Fix sphinx typo
  264247. .IP \(bu 2
  264248. 20006b06f6 Update Lithium docstrings in 2014.7 branch
  264249. .UNINDENT
  264250. .IP \(bu 2
  264251. \fBISSUE\fP \fI\%#17245\fP: (\fI\%tomashavlas\fP) localemod does not generate locale for Arch (refs: \fI\%#23397\fP, \fI\%#23307\fP)
  264252. .IP \(bu 2
  264253. \fBPR\fP \fI\%#23397\fP: (\fI\%jfindlay\fP) add more flexible whitespace to locale_gen search
  264254. @ \fI2015\-05\-06 03:44:11 UTC\fP
  264255. .INDENT 2.0
  264256. .IP \(bu 2
  264257. aa5fb0aa46 Merge pull request \fI\%#23397\fP from jfindlay/fix_locale_gen
  264258. .IP \(bu 2
  264259. 0941fefd2b add more flexible whitespace to locale_gen search
  264260. .UNINDENT
  264261. .IP \(bu 2
  264262. \fBPR\fP \fI\%#23368\fP: (\fI\%kaithar\fP) Backport \fI\%#23367\fP to 2014.7
  264263. @ \fI2015\-05\-05 21:42:26 UTC\fP
  264264. .INDENT 2.0
  264265. .IP \(bu 2
  264266. \fBPR\fP \fI\%#23367\fP: (\fI\%kaithar\fP) Put the sed insert statement back in to the output. (refs: \fI\%#23368\fP)
  264267. .IP \(bu 2
  264268. \fBPR\fP \fI\%#18368\fP: (\fI\%basepi\fP) Merge forward from 2014.7 to develop (refs: \fI\%#23368\fP, \fI\%#23367\fP)
  264269. .IP \(bu 2
  264270. 0c76dd4d8a Merge pull request \fI\%#23368\fP from kaithar/bp\-23367
  264271. .IP \(bu 2
  264272. 577f41972e Pylint fix
  264273. .IP \(bu 2
  264274. 8d9acd1f89 Put the sed insert statement back in to the output.
  264275. .UNINDENT
  264276. .IP \(bu 2
  264277. \fBISSUE\fP \fI\%#23294\fP: (\fI\%variia\fP) file.replace fails to append if repl string partially available (refs: \fI\%#23350\fP)
  264278. .IP \(bu 2
  264279. \fBPR\fP \fI\%#23350\fP: (\fI\%lorengordon\fP) Append/prepend: search for full line
  264280. @ \fI2015\-05\-05 21:42:11 UTC\fP
  264281. .INDENT 2.0
  264282. .IP \(bu 2
  264283. 3493cc1fca Merge pull request \fI\%#23350\fP from lorengordon/file.replace_assume_line
  264284. .IP \(bu 2
  264285. b60e224beb Append/prepend: search for full line
  264286. .UNINDENT
  264287. .IP \(bu 2
  264288. \fBISSUE\fP \fI\%#23026\fP: (\fI\%adelcast\fP) Incorrect salt\-syndic logfile and pidfile locations (refs: \fI\%#23341\fP)
  264289. .IP \(bu 2
  264290. \fBPR\fP \fI\%#23341\fP: (\fI\%cachedout\fP) Fix syndic pid and logfile path
  264291. @ \fI2015\-05\-05 21:29:10 UTC\fP
  264292. .INDENT 2.0
  264293. .IP \(bu 2
  264294. 7be5c48ad5 Merge pull request \fI\%#23341\fP from cachedout/issue_23026
  264295. .IP \(bu 2
  264296. e98e65e787 Fix tests
  264297. .IP \(bu 2
  264298. 6011b437ca Fix syndic pid and logfile path
  264299. .UNINDENT
  264300. .IP \(bu 2
  264301. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  264302. .IP \(bu 2
  264303. \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)
  264304. @ \fI2015\-05\-05 21:28:47 UTC\fP
  264305. .INDENT 2.0
  264306. .IP \(bu 2
  264307. \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)
  264308. .IP \(bu 2
  264309. ea61abfa68 Merge pull request \fI\%#23272\fP from basepi/salt\-ssh.minion.config.19114
  264310. .IP \(bu 2
  264311. c223309bb7 Add versionadded
  264312. .IP \(bu 2
  264313. be7407feae Lint
  264314. .IP \(bu 2
  264315. c2c337567e Missing comma
  264316. .IP \(bu 2
  264317. 8e3e8e073a Pass the minion_opts through the FunctionWrapper
  264318. .IP \(bu 2
  264319. cb69cd07de Match the master config template in the master config reference
  264320. .IP \(bu 2
  264321. 87fc3161f9 Add Salt\-SSH section to master config template
  264322. .IP \(bu 2
  264323. 91dd9dcbdc Add ssh_minion_opts to master config ref
  264324. .IP \(bu 2
  264325. c273ea14c6 Add minion config to salt\-ssh doc
  264326. .IP \(bu 2
  264327. a0b6b760c3 Add minion_opts to roster docs
  264328. .IP \(bu 2
  264329. 5212c35260 Accept minion_opts from the target information
  264330. .IP \(bu 2
  264331. e2099b6e1b Process \fIssh_minion_opts\fP from master config
  264332. .IP \(bu 2
  264333. 3b64214377 Revert "Work around bug in salt\-ssh in config.get for gpg renderer"
  264334. .IP \(bu 2
  264335. 494953a208 Remove the strip (embracing multi\-line YAML dump)
  264336. .IP \(bu 2
  264337. fe87f0fe39 Dump multi\-line yaml into the SHIM
  264338. .IP \(bu 2
  264339. b751a7281c Inject local minion config into shim if available
  264340. .UNINDENT
  264341. .IP \(bu 2
  264342. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  264343. .IP \(bu 2
  264344. \fBPR\fP \fI\%#23347\fP: (\fI\%basepi\fP) [2014.7] Salt\-SSH Backport FunctionWrapper.__contains__
  264345. @ \fI2015\-05\-05 14:13:21 UTC\fP
  264346. .INDENT 2.0
  264347. .IP \(bu 2
  264348. \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)
  264349. .IP \(bu 2
  264350. \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)
  264351. .IP \(bu 2
  264352. 4f760dd9cb Merge pull request \fI\%#23347\fP from basepi/salt\-ssh.functionwrapper.contains.19114
  264353. .IP \(bu 2
  264354. 30595e3ff7 Backport FunctionWrapper.__contains__
  264355. .UNINDENT
  264356. .IP \(bu 2
  264357. \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)
  264358. .IP \(bu 2
  264359. \fBPR\fP \fI\%#23344\fP: (\fI\%cachedout\fP) Explicitely set file_client on master
  264360. @ \fI2015\-05\-04 23:21:48 UTC\fP
  264361. .INDENT 2.0
  264362. .IP \(bu 2
  264363. 02658b1e60 Merge pull request \fI\%#23344\fP from cachedout/issue_22742
  264364. .IP \(bu 2
  264365. 5adc96ce7f Explicitely set file_client on master
  264366. .UNINDENT
  264367. .IP \(bu 2
  264368. \fBPR\fP \fI\%#23318\fP: (\fI\%cellscape\fP) Honor seed argument in LXC container initializaton
  264369. @ \fI2015\-05\-04 20:58:12 UTC\fP
  264370. .INDENT 2.0
  264371. .IP \(bu 2
  264372. \fBPR\fP \fI\%#23311\fP: (\fI\%cellscape\fP) Fix new container initialization in LXC runner (refs: \fI\%#23318\fP)
  264373. .IP \(bu 2
  264374. ba7605d1cb Merge pull request \fI\%#23318\fP from cellscape/honor\-seed\-argument
  264375. .IP \(bu 2
  264376. 228b1be299 Honor seed argument in LXC container initializaton
  264377. .UNINDENT
  264378. .IP \(bu 2
  264379. \fBISSUE\fP \fI\%#17245\fP: (\fI\%tomashavlas\fP) localemod does not generate locale for Arch (refs: \fI\%#23397\fP, \fI\%#23307\fP)
  264380. .IP \(bu 2
  264381. \fBPR\fP \fI\%#23307\fP: (\fI\%jfindlay\fP) check for /etc/locale.gen
  264382. @ \fI2015\-05\-04 20:56:32 UTC\fP
  264383. .INDENT 2.0
  264384. .IP \(bu 2
  264385. 4ac4509c57 Merge pull request \fI\%#23307\fP from jfindlay/fix_locale_gen
  264386. .IP \(bu 2
  264387. 101199ac14 check for /etc/locale.gen
  264388. .UNINDENT
  264389. .IP \(bu 2
  264390. \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)
  264391. .IP \(bu 2
  264392. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#560\fP: (\fI\%bradthurber\fP) param to avoid git install on CentOS/RHEL? (refs: \fI\%#23324\fP)
  264393. .IP \(bu 2
  264394. \fBISSUE\fP \fI\%#552\fP: (\fI\%jhutchins\fP) Support require and watch under the same state dec (refs: \fI\%#23324\fP)
  264395. .INDENT 2.0
  264396. .IP \(bu 2
  264397. \fBPR\fP \fI\%saltstack/salt\-bootstrap#589\fP: (\fI\%panticz\fP) Fix Debian Squeeze backports mirror (refs: \fI\%#23324\fP)
  264398. .IP \(bu 2
  264399. \fBPR\fP \fI\%saltstack/salt\-bootstrap#504\fP: (\fI\%rominf\fP) opensuse 13.2: fix installation (refs: \fI\%#23324\fP)
  264400. .IP \(bu 2
  264401. \fBPR\fP \fI\%#567\fP: (\fI\%bastichelaar\fP) Added upstart module (refs: \fI\%#23324\fP)
  264402. .UNINDENT
  264403. .IP \(bu 2
  264404. \fBPR\fP \fI\%#23324\fP: (\fI\%s0undt3ch\fP) [2014.7] Update to the latest stable release of the bootstrap script v2015.05.04
  264405. @ \fI2015\-05\-04 16:28:30 UTC\fP
  264406. .INDENT 2.0
  264407. .IP \(bu 2
  264408. f790f42ed6 Merge pull request \fI\%#23324\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  264409. .IP \(bu 2
  264410. 6643e47ce5 Update to the latest stable release of the bootstrap script v2015.05.04
  264411. .UNINDENT
  264412. .IP \(bu 2
  264413. \fBPR\fP \fI\%#23329\fP: (\fI\%cro\fP) Require requests to verify cert when talking to aliyun and proxmox cloud providers
  264414. @ \fI2015\-05\-04 16:18:17 UTC\fP
  264415. .INDENT 2.0
  264416. .IP \(bu 2
  264417. 5487367baa Merge pull request \fI\%#23329\fP from cro/cloud_verify_cert
  264418. .IP \(bu 2
  264419. 860d4b7338 Turn on ssl verify for requests.
  264420. .UNINDENT
  264421. .IP \(bu 2
  264422. \fBPR\fP \fI\%#23311\fP: (\fI\%cellscape\fP) Fix new container initialization in LXC runner (refs: \fI\%#23318\fP)
  264423. @ \fI2015\-05\-04 09:55:29 UTC\fP
  264424. .INDENT 2.0
  264425. .IP \(bu 2
  264426. ea2017672d Merge pull request \fI\%#23311\fP from cellscape/fix\-salt\-cloud\-lxc\-init
  264427. .IP \(bu 2
  264428. 76fbb34e7d Fix new container initialization in LXC runner
  264429. .UNINDENT
  264430. .IP \(bu 2
  264431. \fBISSUE\fP \fI\%#18880\fP: (\fI\%johtso\fP) npm installed breaks when a module is missing (refs: \fI\%#23298\fP)
  264432. .IP \(bu 2
  264433. \fBPR\fP \fI\%#23298\fP: (\fI\%chris\-prince\fP) Fixed issue \fI\%#18880\fP in 2014.7 branch
  264434. @ \fI2015\-05\-03 15:49:41 UTC\fP
  264435. .INDENT 2.0
  264436. .IP \(bu 2
  264437. c399b8f568 Merge pull request \fI\%#23298\fP from chris\-prince/2014.7
  264438. .IP \(bu 2
  264439. 0fa25dbb58 Fixed issue \fI\%#18880\fP in 2014.7 branch
  264440. .UNINDENT
  264441. .IP \(bu 2
  264442. \fBISSUE\fP \fI\%#23148\fP: (\fI\%cr1st1p\fP) virt \- error handling bogus if machine image location is wrong (refs: \fI\%#23151\fP)
  264443. .IP \(bu 2
  264444. \fBPR\fP \fI\%#23292\fP: (\fI\%rallytime\fP) Merge \fI\%#23151\fP with pylint fixes
  264445. @ \fI2015\-05\-02 03:54:12 UTC\fP
  264446. .INDENT 2.0
  264447. .IP \(bu 2
  264448. \fBPR\fP \fI\%#23151\fP: (\fI\%cr1st1p\fP) Fixes \fI\%#23148\fP (refs: \fI\%#23292\fP)
  264449. .IP \(bu 2
  264450. 16ecefd466 Merge pull request \fI\%#23292\fP from rallytime/merge\-23151
  264451. .IP \(bu 2
  264452. 8ff852a23a Merge \fI\%#23151\fP with pylint fixes
  264453. .IP \(bu 2
  264454. 8ffa12e82d Fixes \fI\%#23148\fP
  264455. .UNINDENT
  264456. .IP \(bu 2
  264457. \fBPR\fP \fI\%#23274\fP: (\fI\%basepi\fP) [2014.7] Reduce salt\-ssh debug log verbosity
  264458. @ \fI2015\-05\-01 20:19:23 UTC\fP
  264459. .INDENT 2.0
  264460. .IP \(bu 2
  264461. ce24315a4b Merge pull request \fI\%#23274\fP from basepi/salt\-ssh.debug.verbosity
  264462. .IP \(bu 2
  264463. ecee6c68f4 Log stdout and stderr to trace
  264464. .IP \(bu 2
  264465. 08f54d79c6 Log stdout and stderr to trace as well
  264466. .IP \(bu 2
  264467. 9b9c30f5ad Reduce salt\-ssh debug log verbosity
  264468. .UNINDENT
  264469. .IP \(bu 2
  264470. \fBISSUE\fP \fI\%#22605\fP: (\fI\%mavenAtHouzz\fP) Tornado websockets event Handlers registration are incorrect (refs: \fI\%#23261\fP)
  264471. .IP \(bu 2
  264472. \fBPR\fP \fI\%#23261\fP: (\fI\%rallytime\fP) Fix tornado websocket event handler registration
  264473. @ \fI2015\-05\-01 18:20:31 UTC\fP
  264474. .INDENT 2.0
  264475. .IP \(bu 2
  264476. 7b55e4310f Merge pull request \fI\%#23261\fP from rallytime/fix\-22605
  264477. .IP \(bu 2
  264478. 4950fbf2b3 Fix tornado websocket event handler registration
  264479. .UNINDENT
  264480. .IP \(bu 2
  264481. \fBPR\fP \fI\%#23258\fP: (\fI\%teizz\fP) TCP keepalives on the ret side, Revisited.
  264482. @ \fI2015\-05\-01 16:13:49 UTC\fP
  264483. .INDENT 2.0
  264484. .IP \(bu 2
  264485. 83ef7cb114 Merge pull request \fI\%#23258\fP from teizz/ret_keepalive_2014_7_5
  264486. .IP \(bu 2
  264487. 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.
  264488. .UNINDENT
  264489. .IP \(bu 2
  264490. \fBISSUE\fP \fI\%#23224\fP: (\fI\%twellspring\fP) iptables.append \-\-log parameters must be after \-\-jump LOG (refs: \fI\%#23241\fP)
  264491. .IP \(bu 2
  264492. \fBPR\fP \fI\%#23241\fP: (\fI\%techhat\fP) Move iptables log options after the jump
  264493. @ \fI2015\-05\-01 01:31:59 UTC\fP
  264494. .INDENT 2.0
  264495. .IP \(bu 2
  264496. 8de3c83956 Merge pull request \fI\%#23241\fP from techhat/issue23224
  264497. .IP \(bu 2
  264498. 87f7948c99 Move iptables log options after the jump
  264499. .UNINDENT
  264500. .IP \(bu 2
  264501. \fBPR\fP \fI\%#23228\fP: (\fI\%rallytime\fP) Backport \fI\%#23171\fP to 2014.7
  264502. @ \fI2015\-04\-30 21:09:45 UTC\fP
  264503. .INDENT 2.0
  264504. .IP \(bu 2
  264505. \fBPR\fP \fI\%#23171\fP: (\fI\%skizunov\fP) Bugfix: \(aqclean_proc_dir\(aq is broken (refs: \fI\%#23228\fP)
  264506. .IP \(bu 2
  264507. f20210e499 Merge pull request \fI\%#23228\fP from rallytime/bp\-23171
  264508. .IP \(bu 2
  264509. e670e99506 Bugfix: \(aqclean_proc_dir\(aq is broken
  264510. .UNINDENT
  264511. .IP \(bu 2
  264512. \fBISSUE\fP \fI\%#22703\fP: (\fI\%Xiol\fP) salt\-ssh does not work with list matcher (refs: \fI\%#22808\fP)
  264513. .IP \(bu 2
  264514. \fBPR\fP \fI\%#23227\fP: (\fI\%rallytime\fP) Backport \fI\%#22808\fP to 2014.7
  264515. @ \fI2015\-04\-30 21:09:14 UTC\fP
  264516. .INDENT 2.0
  264517. .IP \(bu 2
  264518. \fBPR\fP \fI\%#22808\fP: (\fI\%basepi\fP) [2015.2] Add list targeting to salt\-ssh flat roster (refs: \fI\%#23227\fP)
  264519. .IP \(bu 2
  264520. 721cc285ee Merge pull request \fI\%#23227\fP from rallytime/bp\-22808
  264521. .IP \(bu 2
  264522. d208a00b2a Dict, not list
  264523. .IP \(bu 2
  264524. a3f529e003 It\(aqs already been converted to a list
  264525. .IP \(bu 2
  264526. dd57f2d1c1 Add list targeting to salt\-ssh flat roster
  264527. .UNINDENT
  264528. .IP \(bu 2
  264529. \fBPR\fP \fI\%#22823\fP: (\fI\%hvnsweeting\fP) 22822 file directory clean
  264530. @ \fI2015\-04\-30 15:25:51 UTC\fP
  264531. .INDENT 2.0
  264532. .IP \(bu 2
  264533. 82c22afacc Merge pull request \fI\%#22823\fP from hvnsweeting/22822\-file\-directory\-clean
  264534. .IP \(bu 2
  264535. c749c276b4 fix lint \- remove unnecessary parenthesis
  264536. .IP \(bu 2
  264537. cb3dfee969 refactor
  264538. .IP \(bu 2
  264539. 8924b5a911 refactor: use relpath instead of do it manually
  264540. .IP \(bu 2
  264541. d3060a51a3 refactor
  264542. .IP \(bu 2
  264543. 5759a0e8f0 bugfix: fix file.directory clean=True when it require parent dir
  264544. .UNINDENT
  264545. .IP \(bu 2
  264546. \fBISSUE\fP \fI\%saltstack/salt#22941\fP: (\fI\%bersace\fP) \fI_pillar\fP func breaks fileserver globals (refs: \fI\%#22942\fP)
  264547. .IP \(bu 2
  264548. \fBISSUE\fP \fI\%#22941\fP: (\fI\%bersace\fP) \fI_pillar\fP func breaks fileserver globals (refs: \fI\%#22977\fP)
  264549. .IP \(bu 2
  264550. \fBPR\fP \fI\%#22977\fP: (\fI\%bersace\fP) Fix fileserver backends __opts__ overwritten by _pillar
  264551. @ \fI2015\-04\-30 15:24:56 UTC\fP
  264552. .INDENT 2.0
  264553. .IP \(bu 2
  264554. \fBPR\fP \fI\%#22942\fP: (\fI\%bersace\fP) Fix fileserver backends global overwritten by _pillar (refs: \fI\%#22977\fP)
  264555. .IP \(bu 2
  264556. f6c0728bfb Merge pull request \fI\%#22977\fP from bersace/fix\-fileserver\-backends\-pillar\-side\-effect
  264557. .IP \(bu 2
  264558. 5f451f63cf Fix fileserver backends __opts__ overwritten by _pillar
  264559. .UNINDENT
  264560. .IP \(bu 2
  264561. \fBISSUE\fP \fI\%#23166\fP: (\fI\%claudiupopescu\fP) "Error in function _minion_event" resulting in modules not loaded (refs: \fI\%#23180\fP)
  264562. .IP \(bu 2
  264563. \fBPR\fP \fI\%#23180\fP: (\fI\%jfindlay\fP) fix typos from 36841bdd in masterapi.py
  264564. @ \fI2015\-04\-30 15:22:41 UTC\fP
  264565. .INDENT 2.0
  264566. .IP \(bu 2
  264567. 34206f7ae3 Merge pull request \fI\%#23180\fP from jfindlay/remote_event
  264568. .IP \(bu 2
  264569. 72066e1073 fix typos from 36841bdd in masterapi.py
  264570. .UNINDENT
  264571. .IP \(bu 2
  264572. \fBISSUE\fP \fI\%#23153\fP: (\fI\%cr1st1p\fP) cmdmod : run_chroot \- broken in 2014.7.5 \- missing kwargs (refs: \fI\%#23176\fP)
  264573. .IP \(bu 2
  264574. \fBPR\fP \fI\%#23176\fP: (\fI\%jfindlay\fP) copy standard cmd.run* kwargs into cmd.run_chroot
  264575. @ \fI2015\-04\-30 15:22:12 UTC\fP
  264576. .INDENT 2.0
  264577. .IP \(bu 2
  264578. b6b82165c8 Merge pull request \fI\%#23176\fP from jfindlay/run_chroot
  264579. .IP \(bu 2
  264580. 7dc3417b44 copy standard cmd.run* kwargs into cmd.run_chroot
  264581. .UNINDENT
  264582. .IP \(bu 2
  264583. \fBISSUE\fP \fI\%#23192\fP: (\fI\%joejulian\fP) supervisord mod_watch does not accept sfun (refs: \fI\%#23193\fP)
  264584. .IP \(bu 2
  264585. \fBPR\fP \fI\%#23193\fP: (\fI\%joejulian\fP) supervisord.mod_watch should accept sfun
  264586. @ \fI2015\-04\-30 04:34:21 UTC\fP
  264587. .INDENT 2.0
  264588. .IP \(bu 2
  264589. effacbe294 Merge pull request \fI\%#23193\fP from joejulian/2014.7_supervisord_accept_sfun
  264590. .IP \(bu 2
  264591. efb59f9d9d supervisord.mod_watch should accept sfun
  264592. .UNINDENT
  264593. .IP \(bu 2
  264594. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  264595. .IP \(bu 2
  264596. \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)
  264597. @ \fI2015\-04\-30 04:34:10 UTC\fP
  264598. .INDENT 2.0
  264599. .IP \(bu 2
  264600. 72fe88e5c6 Merge pull request \fI\%#23188\fP from basepi/salt\-ssh.function.wrapper.gpg.19114
  264601. .IP \(bu 2
  264602. d73979ee12 Work around bug in salt\-ssh in config.get for gpg renderer
  264603. .UNINDENT
  264604. .IP \(bu 2
  264605. \fBISSUE\fP \fI\%#21480\fP: (\fI\%msciciel\fP) TypeError: string indices must be integers, not str (refs: \fI\%#23154\fP)
  264606. .IP \(bu 2
  264607. \fBPR\fP \fI\%#23154\fP: (\fI\%cachedout\fP) Re\-establish channel on interruption in fileclient
  264608. @ \fI2015\-04\-29 16:18:59 UTC\fP
  264609. .INDENT 2.0
  264610. .IP \(bu 2
  264611. 168508ec2a Merge pull request \fI\%#23154\fP from cachedout/refresh_channel
  264612. .IP \(bu 2
  264613. 9f8dd80c38 Re\-establish channel on interruption in fileclient
  264614. .UNINDENT
  264615. .IP \(bu 2
  264616. \fBISSUE\fP \fI\%#20647\fP: (\fI\%ryan\-lane\fP) file.serialize fails to serialize due to ordered dicts (refs: \fI\%#20779\fP)
  264617. .IP \(bu 2
  264618. \fBPR\fP \fI\%#23146\fP: (\fI\%rallytime\fP) Backport \fI\%#20779\fP to 2014.7
  264619. @ \fI2015\-04\-28 20:45:06 UTC\fP
  264620. .INDENT 2.0
  264621. .IP \(bu 2
  264622. \fBPR\fP \fI\%#20779\fP: (\fI\%cachedout\fP) Use declared yaml options (refs: \fI\%#23146\fP)
  264623. .IP \(bu 2
  264624. 3b53e04534 Merge pull request \fI\%#23146\fP from rallytime/bp\-20779
  264625. .IP \(bu 2
  264626. ffd18493e8 compare OrderedDicts in serializer unit test
  264627. .IP \(bu 2
  264628. a22170627c Just change serialize
  264629. .IP \(bu 2
  264630. a111798e8e Use declared yaml options
  264631. .UNINDENT
  264632. .IP \(bu 2
  264633. \fBPR\fP \fI\%#23145\fP: (\fI\%rallytime\fP) Backport \fI\%#23089\fP to 2014.7
  264634. @ \fI2015\-04\-28 20:44:56 UTC\fP
  264635. .INDENT 2.0
  264636. .IP \(bu 2
  264637. \fBPR\fP \fI\%#23089\fP: (\fI\%cachedout\fP) Stringify version number before lstrip (refs: \fI\%#23145\fP)
  264638. .IP \(bu 2
  264639. 8bb4664bf9 Merge pull request \fI\%#23145\fP from rallytime/bp\-23089
  264640. .IP \(bu 2
  264641. 93c41afd23 Stringify version number before lstrip
  264642. .UNINDENT
  264643. .IP \(bu 2
  264644. \fBISSUE\fP \fI\%#16188\fP: (\fI\%drawks\fP) salt.modules.parted has various functions with bogus input validation. (refs: \fI\%#23124\fP)
  264645. .IP \(bu 2
  264646. \fBPR\fP \fI\%#23144\fP: (\fI\%rallytime\fP) Backport \fI\%#23124\fP to 2014.7
  264647. @ \fI2015\-04\-28 20:44:46 UTC\fP
  264648. .INDENT 2.0
  264649. .IP \(bu 2
  264650. \fBPR\fP \fI\%#23124\fP: (\fI\%ether42\fP) fix parsing the output of parted in parted.list_() (refs: \fI\%#23144\fP)
  264651. .IP \(bu 2
  264652. c85d36fd29 Merge pull request \fI\%#23144\fP from rallytime/bp\-23124\-2014\-7
  264653. .IP \(bu 2
  264654. 6b64da706c fix parsing the output of parted
  264655. .UNINDENT
  264656. .IP \(bu 2
  264657. \fBPR\fP \fI\%#23120\fP: (\fI\%terminalmage\fP) Don\(aqt run os.path.relpath() if repo doesn\(aqt have a "root" param set
  264658. @ \fI2015\-04\-28 15:46:54 UTC\fP
  264659. .INDENT 2.0
  264660. .IP \(bu 2
  264661. a27b158153 Merge pull request \fI\%#23120\fP from terminalmage/fix\-gitfs\-relpath
  264662. .IP \(bu 2
  264663. 1860fffd68 Don\(aqt run os.path.relpath() if repo doesn\(aqt have a "root" param set
  264664. .UNINDENT
  264665. .IP \(bu 2
  264666. \fBPR\fP \fI\%#23132\fP: (\fI\%clinta\fP) Backport b27c176
  264667. @ \fI2015\-04\-28 15:00:30 UTC\fP
  264668. .INDENT 2.0
  264669. .IP \(bu 2
  264670. fcba607978 Merge pull request \fI\%#23132\fP from clinta/patch\-2
  264671. .IP \(bu 2
  264672. a824d727d1 Backport b27c176
  264673. .UNINDENT
  264674. .IP \(bu 2
  264675. \fBISSUE\fP \fI\%#18476\fP: (\fI\%Auha\fP) Upgrading salt on my master caused dependency issues (refs: \fI\%#18610\fP, \fI\%#23114\fP)
  264676. .IP \(bu 2
  264677. \fBPR\fP \fI\%#23114\fP: (\fI\%rallytime\fP) Adjust ZeroMQ 4 docs to reflect changes to Ubuntu 12 packages
  264678. @ \fI2015\-04\-28 03:59:24 UTC\fP
  264679. .INDENT 2.0
  264680. .IP \(bu 2
  264681. \fBPR\fP \fI\%#18610\fP: (\fI\%rallytime\fP) Make ZMQ 4 installation docs for ubuntu more clear (refs: \fI\%#23114\fP)
  264682. .IP \(bu 2
  264683. b0f4b28487 Merge pull request \fI\%#23114\fP from rallytime/remove_ubuntu_zmq4_docs
  264684. .IP \(bu 2
  264685. f6cc7c8f8a Adjust ZeroMQ 4 docs to reflect changes to Ubuntu 12 packages
  264686. .UNINDENT
  264687. .IP \(bu 2
  264688. \fBISSUE\fP \fI\%#23085\fP: (\fI\%xenophonf\fP) Use "s3fs" (not "s3") in fileserver_roots (refs: \fI\%#23097\fP)
  264689. .IP \(bu 2
  264690. \fBPR\fP \fI\%#23108\fP: (\fI\%rallytime\fP) Backport \fI\%#23097\fP to 2014.7
  264691. @ \fI2015\-04\-28 03:58:05 UTC\fP
  264692. .INDENT 2.0
  264693. .IP \(bu 2
  264694. \fBPR\fP \fI\%#23097\fP: (\fI\%rallytime\fP) Change s3 to s3fs in fileserver_roots docs example (refs: \fI\%#23108\fP)
  264695. .IP \(bu 2
  264696. 399857f20b Merge pull request \fI\%#23108\fP from rallytime/bp\-23097
  264697. .IP \(bu 2
  264698. fa889845df Change s3 to s3fs in fileserver_roots docs example
  264699. .UNINDENT
  264700. .IP \(bu 2
  264701. \fBISSUE\fP \fI\%#22171\fP: (\fI\%basepi\fP) We should only call returner.save_load once per jid (refs: \fI\%#22199\fP)
  264702. .IP \(bu 2
  264703. \fBPR\fP \fI\%#23112\fP: (\fI\%basepi\fP) [2014.7] Backport \fI\%#22199\fP to fix mysql returner save_load errors
  264704. @ \fI2015\-04\-28 03:55:44 UTC\fP
  264705. .INDENT 2.0
  264706. .IP \(bu 2
  264707. \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)
  264708. .IP \(bu 2
  264709. 5541537c32 Merge pull request \fI\%#23112\fP from basepi/mysql_returner_save_load
  264710. .IP \(bu 2
  264711. 0127012ed3 Put a bandaid on the save_load duplicate issue
  264712. .IP \(bu 2
  264713. \fBPR\fP \fI\%saltstack/salt#22925\fP: (\fI\%rallytime\fP) Backport \fI\%#22895\fP to 2014.7 (refs: \fI\%#23113\fP)
  264714. .UNINDENT
  264715. .IP \(bu 2
  264716. \fBPR\fP \fI\%#23113\fP: (\fI\%rallytime\fP) Revert "Backport \fI\%#22895\fP to 2014.7"
  264717. @ \fI2015\-04\-28 03:27:29 UTC\fP
  264718. .INDENT 2.0
  264719. .IP \(bu 2
  264720. \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_)
  264721. .IP \(bu 2
  264722. dfe2066b25 Merge pull request \fI\%#23113\fP from saltstack/revert\-22925\-bp\-22895
  264723. .IP \(bu 2
  264724. b957ea8977 Revert "Backport \fI\%#22895\fP to 2014.7"
  264725. .UNINDENT
  264726. .IP \(bu 2
  264727. \fBISSUE\fP \fI\%#23013\fP: (\fI\%ghost\fP) gitfs regression with authenticated repos (refs: \fI\%#23094\fP)
  264728. .IP \(bu 2
  264729. \fBPR\fP \fI\%#23094\fP: (\fI\%terminalmage\fP) pygit2: disable cleaning of stale refs for authenticated remotes
  264730. @ \fI2015\-04\-27 20:51:28 UTC\fP
  264731. .INDENT 2.0
  264732. .IP \(bu 2
  264733. 21515f3c23 Merge pull request \fI\%#23094\fP from terminalmage/issue23013
  264734. .IP \(bu 2
  264735. aaf7b04f79 pygit2: disable cleaning of stale refs for authenticated remotes
  264736. .UNINDENT
  264737. .IP \(bu 2
  264738. \fBPR\fP \fI\%#23048\fP: (\fI\%jfindlay\fP) py\-2.6 compat for utils/boto.py ElementTree exception
  264739. @ \fI2015\-04\-25 16:56:45 UTC\fP
  264740. .INDENT 2.0
  264741. .IP \(bu 2
  264742. d45aa21dca Merge pull request \fI\%#23048\fP from jfindlay/ET_error
  264743. .IP \(bu 2
  264744. 64c42ccb5f py\-2.6 compat for utils/boto.py ElementTree exception
  264745. .UNINDENT
  264746. .IP \(bu 2
  264747. \fBISSUE\fP \fI\%#22981\fP: (\fI\%syphernl\fP) Locale state throwing traceback when generating not (yet) existing locale (refs: \fI\%#23025\fP)
  264748. .IP \(bu 2
  264749. \fBPR\fP \fI\%#23025\fP: (\fI\%jfindlay\fP) catch exceptions on bad system locales/encodings
  264750. @ \fI2015\-04\-25 16:56:30 UTC\fP
  264751. .INDENT 2.0
  264752. .IP \(bu 2
  264753. d25a5c102f Merge pull request \fI\%#23025\fP from jfindlay/fix_sys_locale
  264754. .IP \(bu 2
  264755. 9c4d62bb00 catch exceptions on bad system locales/encodings
  264756. .UNINDENT
  264757. .IP \(bu 2
  264758. \fBPR\fP \fI\%#22932\fP: (\fI\%hvnsweeting\fP) bugfix: also manipulate dir_mode when source not defined
  264759. @ \fI2015\-04\-25 16:54:58 UTC\fP
  264760. .INDENT 2.0
  264761. .IP \(bu 2
  264762. 5e44b59a14 Merge pull request \fI\%#22932\fP from hvnsweeting/file\-append\-bugfix
  264763. .IP \(bu 2
  264764. 3f368de14a do not use assert in execution module
  264765. .IP \(bu 2
  264766. 9d4fd4a8c8 bugfix: also manipulate dir_mode when source not defined
  264767. .UNINDENT
  264768. .IP \(bu 2
  264769. \fBISSUE\fP \fI\%#23021\fP: (\fI\%ether42\fP) ps.pgrep raises NoSuchProcess (refs: \fI\%#23055\fP)
  264770. .IP \(bu 2
  264771. \fBPR\fP \fI\%#23055\fP: (\fI\%jfindlay\fP) prevent ps module errors on accessing dead procs
  264772. @ \fI2015\-04\-24 22:39:49 UTC\fP
  264773. .INDENT 2.0
  264774. .IP \(bu 2
  264775. c2416a425f Merge pull request \fI\%#23055\fP from jfindlay/fix_ps
  264776. .IP \(bu 2
  264777. c2dc7adeb1 prevent ps module errors on accessing dead procs
  264778. .UNINDENT
  264779. .IP \(bu 2
  264780. \fBPR\fP \fI\%#23031\fP: (\fI\%jfindlay\fP) convert exception e.message to just e
  264781. @ \fI2015\-04\-24 18:38:13 UTC\fP
  264782. .INDENT 2.0
  264783. .IP \(bu 2
  264784. bfd9158a83 Merge pull request \fI\%#23031\fP from jfindlay/exception
  264785. .IP \(bu 2
  264786. 856bad1c31 convert exception e.message to just e
  264787. .UNINDENT
  264788. .IP \(bu 2
  264789. \fBPR\fP \fI\%#23015\fP: (\fI\%hvnsweeting\fP) if status of service is stop, there is not an error with it
  264790. @ \fI2015\-04\-24 14:35:10 UTC\fP
  264791. .INDENT 2.0
  264792. .IP \(bu 2
  264793. 7747f3342e Merge pull request \fI\%#23015\fP from hvnsweeting/set\-non\-error\-lvl\-for\-service\-status\-log
  264794. .IP \(bu 2
  264795. 92ea163513 if status of service is stop, there is not an error with it
  264796. .UNINDENT
  264797. .IP \(bu 2
  264798. \fBISSUE\fP \fI\%#22993\fP: (\fI\%jetpak\fP) salt\-minion restart causes all spawned daemons to die on centos7 (systemd) (refs: \fI\%#23000\fP)
  264799. .IP \(bu 2
  264800. \fBPR\fP \fI\%#23000\fP: (\fI\%jfindlay\fP) set systemd service killMode to process for minion
  264801. @ \fI2015\-04\-24 03:42:39 UTC\fP
  264802. .INDENT 2.0
  264803. .IP \(bu 2
  264804. 2e09789156 Merge pull request \fI\%#23000\fP from jfindlay/systemd_kill
  264805. .IP \(bu 2
  264806. 3d575e29c4 set systemd service killMode to process for minion
  264807. .UNINDENT
  264808. .IP \(bu 2
  264809. \fBISSUE\fP \fI\%#22707\fP: (\fI\%arthurlogilab\fP) retry_dns of master configuration is missing from the documentation (refs: \fI\%#22999\fP)
  264810. .IP \(bu 2
  264811. \fBPR\fP \fI\%#22999\fP: (\fI\%justinta\fP) Added retry_dns to minion doc.
  264812. @ \fI2015\-04\-24 03:30:24 UTC\fP
  264813. .INDENT 2.0
  264814. .IP \(bu 2
  264815. b5c059ab26 Merge pull request \fI\%#22999\fP from jtand/fix_22707
  264816. .IP \(bu 2
  264817. 8486e17ab3 Added retry_dns to minion doc.
  264818. .UNINDENT
  264819. .IP \(bu 2
  264820. \fBPR\fP \fI\%#22990\fP: (\fI\%techhat\fP) Use the proper cloud conf variable
  264821. @ \fI2015\-04\-23 17:48:07 UTC\fP
  264822. .INDENT 2.0
  264823. .IP \(bu 2
  264824. 27dc877bfd Merge pull request \fI\%#22990\fP from techhat/2014.7
  264825. .IP \(bu 2
  264826. d33bcbc2c1 Use the proper cloud conf variable
  264827. .UNINDENT
  264828. .IP \(bu 2
  264829. \fBPR\fP \fI\%#22976\fP: (\fI\%multani\fP) Improve state_output documentation
  264830. @ \fI2015\-04\-23 12:24:22 UTC\fP
  264831. .INDENT 2.0
  264832. .IP \(bu 2
  264833. 13dff652c6 Merge pull request \fI\%#22976\fP from multani/fix/state\-output\-doc
  264834. .IP \(bu 2
  264835. 19efd419b5 Improve state_output documentation
  264836. .UNINDENT
  264837. .IP \(bu 2
  264838. \fBPR\fP \fI\%#22955\fP: (\fI\%terminalmage\fP) Fix regression introduced yesterday in dockerio module
  264839. @ \fI2015\-04\-22 18:56:39 UTC\fP
  264840. .INDENT 2.0
  264841. .IP \(bu 2
  264842. 89fa18500c Merge pull request \fI\%#22955\fP from terminalmage/dockerio\-run\-fix
  264843. .IP \(bu 2
  264844. b4472ad1b2 Fix regression introduced yesterday in dockerio module
  264845. .UNINDENT
  264846. .IP \(bu 2
  264847. \fBPR\fP \fI\%#22954\fP: (\fI\%rallytime\fP) Backport \fI\%#22909\fP to 2014.7
  264848. @ \fI2015\-04\-22 18:56:20 UTC\fP
  264849. .INDENT 2.0
  264850. .IP \(bu 2
  264851. \fBPR\fP \fI\%#22909\fP: (\fI\%mguegan\fP) Fix compatibility with pkgin > 0.7 (refs: \fI\%#22954\fP)
  264852. .IP \(bu 2
  264853. 46ef227911 Merge pull request \fI\%#22954\fP from rallytime/bp\-22909
  264854. .IP \(bu 2
  264855. 70c1cd3969 Fix compatibility with pkgin > 0.7
  264856. .UNINDENT
  264857. .IP \(bu 2
  264858. \fBISSUE\fP \fI\%#18720\fP: (\fI\%Reiner030\fP) timeouts when setting Route53 records (refs: \fI\%#22856\fP)
  264859. .IP \(bu 2
  264860. \fBPR\fP \fI\%#22856\fP: (\fI\%jfindlay\fP) increase timeout and decrease tries for route53 records
  264861. @ \fI2015\-04\-22 16:47:01 UTC\fP
  264862. .INDENT 2.0
  264863. .IP \(bu 2
  264864. c9ae593461 Merge pull request \fI\%#22856\fP from jfindlay/route53_timeout
  264865. .IP \(bu 2
  264866. ba4a786984 add route53 record sync wait, default=False
  264867. .IP \(bu 2
  264868. ea2fd50660 increase timeout and tries for route53 records
  264869. .UNINDENT
  264870. .IP \(bu 2
  264871. \fBPR\fP \fI\%#22946\fP: (\fI\%s0undt3ch\fP) Test with a more recent pip version to avoid a traceback
  264872. @ \fI2015\-04\-22 16:25:17 UTC\fP
  264873. .INDENT 2.0
  264874. .IP \(bu 2
  264875. a178d444b8 Merge pull request \fI\%#22946\fP from s0undt3ch/2014.7
  264876. .IP \(bu 2
  264877. bc87749e2c Test with a more recent pip version to avoid a traceback
  264878. .UNINDENT
  264879. .IP \(bu 2
  264880. \fBISSUE\fP \fI\%#22571\fP: (\fI\%BoomerB\fP) same error message as on issue #18504 (refs: \fI\%#22945\fP)
  264881. .IP \(bu 2
  264882. \fBPR\fP \fI\%#22945\fP: (\fI\%garethgreenaway\fP) Fixes to scheduler
  264883. @ \fI2015\-04\-22 16:25:00 UTC\fP
  264884. .INDENT 2.0
  264885. .IP \(bu 2
  264886. de339bef0a Merge pull request \fI\%#22945\fP from garethgreenaway/22571_2014_7_schedule_pillar_refresh_seconds_exceptions
  264887. .IP \(bu 2
  264888. 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.
  264889. .UNINDENT
  264890. .IP \(bu 2
  264891. \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)
  264892. .IP \(bu 2
  264893. \fBPR\fP \fI\%#22887\fP: (\fI\%hvnsweeting\fP) fix \fI\%#18843\fP
  264894. @ \fI2015\-04\-22 15:47:05 UTC\fP
  264895. .INDENT 2.0
  264896. .IP \(bu 2
  264897. 12d2b91d85 Merge pull request \fI\%#22887\fP from hvnsweeting/18843\-fix\-user\-present\-home
  264898. .IP \(bu 2
  264899. 7fe7b089fd run user.chhome once to avoid any side\-effect when run it twice
  264900. .IP \(bu 2
  264901. 19de9954ee clarify the usage of home arg
  264902. .IP \(bu 2
  264903. d6dc09af64 enhance doc, as usermod on ubuntu 12.04 will not CREATE home
  264904. .IP \(bu 2
  264905. 0ce4d7feb6 refactor: force to use boolean
  264906. .IP \(bu 2
  264907. 849d19edd7 log debug the creating dir process
  264908. .IP \(bu 2
  264909. c4e95b9f48 fix \fI\%#18843\fP: usermod won\(aqt create a dir if old home does not exist
  264910. .UNINDENT
  264911. .IP \(bu 2
  264912. \fBISSUE\fP \fI\%#2417\fP: (\fI\%ffa\fP) Module standards (refs: \fI\%#22829\fP)
  264913. .IP \(bu 2
  264914. \fBISSUE\fP \fI\%#21140\fP: (\fI\%holms\fP) locale.present state executed successfully, although originally fails (refs: \fI\%#22930\fP, \fI\%#22829\fP)
  264915. .IP \(bu 2
  264916. \fBPR\fP \fI\%#22930\fP: (\fI\%jfindlay\fP) localemod.gen_locale now always returns a boolean
  264917. @ \fI2015\-04\-22 15:37:39 UTC\fP
  264918. .INDENT 2.0
  264919. .IP \(bu 2
  264920. \fBPR\fP \fI\%#22829\fP: (\fI\%F30\fP) Always return a boolean in gen_locale() (refs: \fI\%#22930\fP)
  264921. .IP \(bu 2
  264922. b7de7bdf47 Merge pull request \fI\%#22930\fP from jfindlay/localegen_bool
  264923. .IP \(bu 2
  264924. 399399f89e localemod.gen_locale now always returns a boolean
  264925. .UNINDENT
  264926. .IP \(bu 2
  264927. \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)
  264928. .IP \(bu 2
  264929. \fBPR\fP \fI\%#22933\fP: (\fI\%hvnsweeting\fP) add test for \fI\%#18843\fP
  264930. @ \fI2015\-04\-22 15:27:18 UTC\fP
  264931. .INDENT 2.0
  264932. .IP \(bu 2
  264933. 11bcf14979 Merge pull request \fI\%#22933\fP from hvnsweeting/18843\-test
  264934. .IP \(bu 2
  264935. b13db32fde add test for \fI\%#18843\fP
  264936. .UNINDENT
  264937. .IP \(bu 2
  264938. \fBPR\fP \fI\%#22925\fP: (\fI\%rallytime\fP) Backport \fI\%#22895\fP to 2014.7
  264939. @ \fI2015\-04\-22 02:30:26 UTC\fP
  264940. .INDENT 2.0
  264941. .IP \(bu 2
  264942. \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_)
  264943. .IP \(bu 2
  264944. 6890752dd3 Merge pull request \fI\%#22925\fP from rallytime/bp\-22895
  264945. .IP \(bu 2
  264946. 3852d96213 Pylint fix
  264947. .IP \(bu 2
  264948. 90f7829ad3 Fixed pylint issues
  264949. .IP \(bu 2
  264950. 5ebf159554 Cleaned up pull request
  264951. .IP \(bu 2
  264952. a08ac478f6 pam_tally counter was not reset to 0 after a succesfull login
  264953. .UNINDENT
  264954. .IP \(bu 2
  264955. \fBISSUE\fP \fI\%#22790\fP: (\fI\%whiteinge\fP) jobs.list_jobs runner tracebacks on \(aqmissing\(aq argument (refs: \fI\%#22914\fP)
  264956. .IP \(bu 2
  264957. \fBPR\fP \fI\%#22914\fP: (\fI\%cachedout\fP) Call proper returner function in jobs.list_jobs
  264958. @ \fI2015\-04\-22 00:49:01 UTC\fP
  264959. .INDENT 2.0
  264960. .IP \(bu 2
  264961. eca37ebc11 Merge pull request \fI\%#22914\fP from cachedout/issue_22790
  264962. .IP \(bu 2
  264963. d828d6fd58 Call proper returner function in jobs.list_jobs
  264964. .UNINDENT
  264965. .IP \(bu 2
  264966. \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
  264967. @ \fI2015\-04\-22 00:48:26 UTC\fP
  264968. .INDENT 2.0
  264969. .IP \(bu 2
  264970. 44f3409b01 Merge pull request \fI\%#22918\fP from JaseFace/git\-pillar\-provider\-doc\-note
  264971. .IP \(bu 2
  264972. 0aee5c23d4 Add a note to the git_pillar docs stating that GitPython is the only currently supported provider
  264973. .UNINDENT
  264974. .IP \(bu 2
  264975. \fBPR\fP \fI\%#22907\fP: (\fI\%techhat\fP) Properly merge cloud configs to create profiles
  264976. @ \fI2015\-04\-21 22:02:44 UTC\fP
  264977. .INDENT 2.0
  264978. .IP \(bu 2
  264979. 31c461f573 Merge pull request \fI\%#22907\fP from techhat/cloudconfig
  264980. .IP \(bu 2
  264981. 3bf4e66112 Properly merge cloud configs to create profiles
  264982. .UNINDENT
  264983. .IP \(bu 2
  264984. \fBISSUE\fP \fI\%#22782\fP: (\fI\%0xf10e\fP) Turning everything into OrderedDicts broke states.keystone.user_present() (refs: \fI\%#22894\fP)
  264985. .IP \(bu 2
  264986. \fBPR\fP \fI\%#22894\fP: (\fI\%0xf10e\fP) Fix issue \fI\%#22782\fP
  264987. @ \fI2015\-04\-21 18:55:18 UTC\fP
  264988. .INDENT 2.0
  264989. .IP \(bu 2
  264990. f0939754a0 Merge pull request \fI\%#22894\fP from 0xf10e/2014.7
  264991. .IP \(bu 2
  264992. 58fa24c7fa Clarify doc on kwarg \(aqroles\(aq for user_present().
  264993. .IP \(bu 2
  264994. f0ae2eb84f Improve readability by renaming tenant_role
  264995. .UNINDENT
  264996. .IP \(bu 2
  264997. \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)
  264998. .IP \(bu 2
  264999. \fBPR\fP \fI\%#22902\fP: (\fI\%rallytime\fP) Change state example to use proper kwarg
  265000. @ \fI2015\-04\-21 18:50:47 UTC\fP
  265001. .INDENT 2.0
  265002. .IP \(bu 2
  265003. c802ba7514 Merge pull request \fI\%#22902\fP from rallytime/docker_doc_fix
  265004. .IP \(bu 2
  265005. 8f703461b0 Change state example to use proper kwarg
  265006. .UNINDENT
  265007. .IP \(bu 2
  265008. \fBPR\fP \fI\%#22898\fP: (\fI\%terminalmage\fP) dockerio: better error message for native exec driver
  265009. @ \fI2015\-04\-21 18:02:58 UTC\fP
  265010. .INDENT 2.0
  265011. .IP \(bu 2
  265012. 81771a7769 Merge pull request \fI\%#22898\fP from terminalmage/issue12003
  265013. .IP \(bu 2
  265014. c375309434 dockerio: better error message for native exec driver
  265015. .UNINDENT
  265016. .IP \(bu 2
  265017. \fBISSUE\fP \fI\%#22825\fP: (\fI\%paolodina\fP) Issue using file.replace in state file (refs: \fI\%#22897\fP)
  265018. .IP \(bu 2
  265019. \fBPR\fP \fI\%#22897\fP: (\fI\%rallytime\fP) Add param documentation for file.replace state
  265020. @ \fI2015\-04\-21 17:31:04 UTC\fP
  265021. .INDENT 2.0
  265022. .IP \(bu 2
  265023. e2ec4ecc55 Merge pull request \fI\%#22897\fP from rallytime/fix\-22825
  265024. .IP \(bu 2
  265025. 9c51630002 Add param documentation for file.replace state
  265026. .UNINDENT
  265027. .IP \(bu 2
  265028. \fBISSUE\fP \fI\%saltstack/salt#22844\fP: (\fI\%bersace\fP) LocalClient file cache confuse pillar and state files (refs: \fI\%#22850\fP)
  265029. .IP \(bu 2
  265030. \fBPR\fP \fI\%#22850\fP: (\fI\%bersace\fP) Fix pillar and salt fileserver mixed
  265031. @ \fI2015\-04\-21 17:04:33 UTC\fP
  265032. .INDENT 2.0
  265033. .IP \(bu 2
  265034. fd53889f0e Merge pull request \fI\%#22850\fP from bersace/fix\-pillar\-salt\-mixed
  265035. .IP \(bu 2
  265036. 31b98e72eb Initialize state file client after pillar loading
  265037. .IP \(bu 2
  265038. f6bebb7a31 Use saltenv
  265039. .UNINDENT
  265040. .IP \(bu 2
  265041. \fBPR\fP \fI\%#22818\fP: (\fI\%twangboy\fP) Added documentation regarding pip in windows
  265042. @ \fI2015\-04\-21 03:58:59 UTC\fP
  265043. .INDENT 2.0
  265044. .IP \(bu 2
  265045. 1380fec1b9 Merge pull request \fI\%#22818\fP from twangboy/upd_pip_docs
  265046. .IP \(bu 2
  265047. cb999c7d70 Update pip.py
  265048. .IP \(bu 2
  265049. 3cc5c970ad Added documentation regarding pip in windows
  265050. .UNINDENT
  265051. .IP \(bu 2
  265052. \fBPR\fP \fI\%#22872\fP: (\fI\%rallytime\fP) Prevent stacktrace on os.path.exists in hosts module
  265053. @ \fI2015\-04\-21 02:54:40 UTC\fP
  265054. .INDENT 2.0
  265055. .IP \(bu 2
  265056. b2bf17f5d5 Merge pull request \fI\%#22872\fP from rallytime/fix_hosts_stacktrace
  265057. .IP \(bu 2
  265058. c88a1ea243 Prevent stacktrace on os.path.exists in hosts module
  265059. .UNINDENT
  265060. .IP \(bu 2
  265061. \fBPR\fP \fI\%#22853\fP: (\fI\%s0undt3ch\fP) Don\(aqt assume package installation order.
  265062. @ \fI2015\-04\-21 02:42:41 UTC\fP
  265063. .INDENT 2.0
  265064. .IP \(bu 2
  265065. 03af523de9 Merge pull request \fI\%#22853\fP from s0undt3ch/2014.7
  265066. .IP \(bu 2
  265067. b62df62151 Don\(aqt assume package installation order.
  265068. .UNINDENT
  265069. .IP \(bu 2
  265070. \fBPR\fP \fI\%#22877\fP: (\fI\%s0undt3ch\fP) Don\(aqt fail on \fImake clean\fP just because the directory does not exist
  265071. @ \fI2015\-04\-21 02:40:47 UTC\fP
  265072. .INDENT 2.0
  265073. .IP \(bu 2
  265074. 9211e36564 Merge pull request \fI\%#22877\fP from s0undt3ch/hotfix/clean\-docs\-fix
  265075. .IP \(bu 2
  265076. 95d6887949 Don\(aqt fail on \fImake clean\fP just because the directory does not exist
  265077. .UNINDENT
  265078. .IP \(bu 2
  265079. \fBPR\fP \fI\%#22873\fP: (\fI\%thatch45\fP) Type check the version since it will often be numeric
  265080. @ \fI2015\-04\-21 02:38:11 UTC\fP
  265081. .INDENT 2.0
  265082. .IP \(bu 2
  265083. 5bdbd08bbd Merge pull request \fI\%#22873\fP from thatch45/type_check
  265084. .IP \(bu 2
  265085. 53b8376626 Type check the version since it will often be numeric
  265086. .UNINDENT
  265087. .IP \(bu 2
  265088. \fBPR\fP \fI\%#22870\fP: (\fI\%twangboy\fP) Added ability to send a version with a space in it
  265089. @ \fI2015\-04\-20 23:18:28 UTC\fP
  265090. .INDENT 2.0
  265091. .IP \(bu 2
  265092. c965b0a035 Merge pull request \fI\%#22870\fP from twangboy/fix_installer_again
  265093. .IP \(bu 2
  265094. 3f180cfaae Added ability to send a version with a space in it
  265095. .UNINDENT
  265096. .IP \(bu 2
  265097. \fBPR\fP \fI\%#22863\fP: (\fI\%rallytime\fP) Backport \fI\%#20974\fP to 2014.7
  265098. @ \fI2015\-04\-20 19:29:37 UTC\fP
  265099. .INDENT 2.0
  265100. .IP \(bu 2
  265101. \fBPR\fP \fI\%#20974\fP: (\fI\%JohannesEbke\fP) Fix expr_match usage in salt.utils.check_whitelist_blacklist (refs: \fI\%#22863\fP)
  265102. .IP \(bu 2
  265103. 2973eb18bc Merge pull request \fI\%#22863\fP from rallytime/bp\-20974
  265104. .IP \(bu 2
  265105. 14913a4cb4 Fix expr_match usage in salt.utils.check_whitelist_blacklist
  265106. .UNINDENT
  265107. .IP \(bu 2
  265108. \fBPR\fP \fI\%#22578\fP: (\fI\%hvnsweeting\fP) gracefully handle when salt\-minion cannot decrypt key
  265109. @ \fI2015\-04\-20 15:24:45 UTC\fP
  265110. .INDENT 2.0
  265111. .IP \(bu 2
  265112. c45b92bb4b Merge pull request \fI\%#22578\fP from hvnsweeting/2014\-7\-fix\-compile\-pillar
  265113. .IP \(bu 2
  265114. f75b24ad68 gracefully handle when salt\-minion cannot decrypt key
  265115. .UNINDENT
  265116. .IP \(bu 2
  265117. \fBISSUE\fP \fI\%#21979\fP: (\fI\%yrdevops\fP) gitfs: error message not descriptive enough when libgit2 was compiled without libssh2 (refs: \fI\%#22800\fP)
  265118. .IP \(bu 2
  265119. \fBPR\fP \fI\%#22800\fP: (\fI\%terminalmage\fP) Improve error logging for pygit2 SSH\-based remotes
  265120. @ \fI2015\-04\-18 17:18:55 UTC\fP
  265121. .INDENT 2.0
  265122. .IP \(bu 2
  265123. 900c7a510f Merge pull request \fI\%#22800\fP from terminalmage/issue21979
  265124. .IP \(bu 2
  265125. 8f1c0084cd Clarify that for pygit2, receiving 0 objects means repo is up\-to\-date
  265126. .IP \(bu 2
  265127. 98885f71d6 Add information about libssh2 requirement for pygit2 ssh auth
  265128. .IP \(bu 2
  265129. 09468d2607 Fix incorrect log message
  265130. .IP \(bu 2
  265131. 2093bf8d96 Adjust loglevels for gitfs errors
  265132. .IP \(bu 2
  265133. 9d394dfe46 Improve error logging for pygit2 SSH\-based remotes
  265134. .UNINDENT
  265135. .IP \(bu 2
  265136. \fBPR\fP \fI\%#22813\fP: (\fI\%twangboy\fP) Updated instructions for building salt
  265137. @ \fI2015\-04\-18 04:10:07 UTC\fP
  265138. .INDENT 2.0
  265139. .IP \(bu 2
  265140. e99f2fdb28 Merge pull request \fI\%#22813\fP from twangboy/win_doc_fix
  265141. .IP \(bu 2
  265142. adc421acdd Fixed some formatting issues
  265143. .IP \(bu 2
  265144. 8901b3b5a6 Updated instructions for building salt
  265145. .UNINDENT
  265146. .IP \(bu 2
  265147. \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)
  265148. .IP \(bu 2
  265149. \fBPR\fP \fI\%#22810\fP: (\fI\%basepi\fP) [2014.7] More msgpack gating for salt\-ssh
  265150. @ \fI2015\-04\-17 22:28:24 UTC\fP
  265151. .INDENT 2.0
  265152. .IP \(bu 2
  265153. fe1de89ad7 Merge pull request \fI\%#22810\fP from basepi/salt\-ssh.more.msgpack.gating
  265154. .IP \(bu 2
  265155. d4da8e66a4 Gate msgpack in salt/modules/saltutil.py
  265156. .IP \(bu 2
  265157. 02303b22ce Gate msgpack in salt/modules/data.py
  265158. .IP \(bu 2
  265159. d7e8741f02 Gate salt.states.file.py msgpack
  265160. .UNINDENT
  265161. .IP \(bu 2
  265162. \fBISSUE\fP \fI\%#17144\fP: (\fI\%xpender\fP) salt\-cloud \-m fails with softlayer (refs: \fI\%#22803\fP)
  265163. .IP \(bu 2
  265164. \fBPR\fP \fI\%#22803\fP: (\fI\%rallytime\fP) Allow map file to work with softlayer
  265165. @ \fI2015\-04\-17 20:34:42 UTC\fP
  265166. .INDENT 2.0
  265167. .IP \(bu 2
  265168. 11df71e16d Merge pull request \fI\%#22803\fP from rallytime/fix\-17144
  265169. .IP \(bu 2
  265170. ce88b6ad41 Allow map file to work with softlayer
  265171. .UNINDENT
  265172. .IP \(bu 2
  265173. \fBPR\fP \fI\%#22807\fP: (\fI\%rallytime\fP) Add 2014.7.5 links to windows installation docs
  265174. @ \fI2015\-04\-17 20:32:13 UTC\fP
  265175. .INDENT 2.0
  265176. .IP \(bu 2
  265177. cd43a95212 Merge pull request \fI\%#22807\fP from rallytime/windows_docs_update
  265178. .IP \(bu 2
  265179. 5931a582d1 Replace all 4s with 5s
  265180. .IP \(bu 2
  265181. eadaead755 Add 2014.7.5 links to windows installation docs
  265182. .UNINDENT
  265183. .IP \(bu 2
  265184. \fBPR\fP \fI\%#22795\fP: (\fI\%rallytime\fP) Added release note for 2014.7.5 release
  265185. @ \fI2015\-04\-17 18:05:36 UTC\fP
  265186. .INDENT 2.0
  265187. .IP \(bu 2
  265188. 0b295e2c87 Merge pull request \fI\%#22795\fP from rallytime/release_notes
  265189. .IP \(bu 2
  265190. fde1feed46 Remove extra line
  265191. .IP \(bu 2
  265192. b19b95d992 Added release note for 2014.7.5 release
  265193. .UNINDENT
  265194. .IP \(bu 2
  265195. \fBISSUE\fP \fI\%#22740\fP: (\fI\%lorengordon\fP) New Windows installer assumes salt is installed to the current directory (refs: \fI\%#22759\fP)
  265196. .IP \(bu 2
  265197. \fBPR\fP \fI\%#22759\fP: (\fI\%twangboy\fP) Final edits to the batch files for running salt
  265198. @ \fI2015\-04\-17 04:31:15 UTC\fP
  265199. .INDENT 2.0
  265200. .IP \(bu 2
  265201. \fBPR\fP \fI\%#22754\fP: (\fI\%twangboy\fP) Removed redundant \e\e and " (refs: \fI\%#22759\fP)
  265202. .IP \(bu 2
  265203. 3c91459de2 Merge pull request \fI\%#22759\fP from twangboy/fix_bat_one_last_time
  265204. .IP \(bu 2
  265205. 075f82e046 Final edits to the batch files for running salt
  265206. .UNINDENT
  265207. .IP \(bu 2
  265208. \fBPR\fP \fI\%#22760\fP: (\fI\%thatch45\fP) Fix issues with the syndic
  265209. @ \fI2015\-04\-17 04:30:48 UTC\fP
  265210. .INDENT 2.0
  265211. .IP \(bu 2
  265212. 20d3f2bb83 Merge pull request \fI\%#22760\fP from thatch45/syndic_fix
  265213. .IP \(bu 2
  265214. e2db624b37 Fix issues with the syndic not resolving the master when the interface is set
  265215. .UNINDENT
  265216. .IP \(bu 2
  265217. \fBPR\fP \fI\%#22762\fP: (\fI\%twangboy\fP) Fixed version not showing in Add/Remove Programs
  265218. @ \fI2015\-04\-17 04:29:46 UTC\fP
  265219. .INDENT 2.0
  265220. .IP \(bu 2
  265221. 54c45845ab Merge pull request \fI\%#22762\fP from twangboy/fix_installer
  265222. .IP \(bu 2
  265223. 4d25af8acf Fixed version not showing in Add/Remove Programs
  265224. .UNINDENT
  265225. .UNINDENT
  265226. .SS Salt 2014.7.7 Release Notes
  265227. .INDENT 0.0
  265228. .TP
  265229. .B release
  265230. 2015\-10\-13
  265231. .UNINDENT
  265232. .sp
  265233. Version 2014.7.7 is a bugfix release for 2014.7.0\&.
  265234. .SS Statistics
  265235. .INDENT 0.0
  265236. .IP \(bu 2
  265237. Total Merges: \fB54\fP
  265238. .IP \(bu 2
  265239. Total Issue References: \fB20\fP
  265240. .IP \(bu 2
  265241. Total PR References: \fB60\fP
  265242. .IP \(bu 2
  265243. 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)
  265244. .UNINDENT
  265245. .SS Changelog for v2014.7.6..v2014.7.7
  265246. .sp
  265247. \fIGenerated at: 2018\-05\-27 20:45:04 UTC\fP
  265248. .INDENT 0.0
  265249. .IP \(bu 2
  265250. \fBPR\fP \fI\%#27335\fP: (\fI\%rallytime\fP) [2014.7] Fixup salt\-cloud logging
  265251. @ \fI2015\-09\-24 20:33:53 UTC\fP
  265252. .INDENT 2.0
  265253. .IP \(bu 2
  265254. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  265255. .IP \(bu 2
  265256. adeb1dcad4 Pylint Fix
  265257. .IP \(bu 2
  265258. 588c13783c Salt\-cloud logging clean up for windows functions
  265259. .IP \(bu 2
  265260. 9b6000135c [2014.7] Fixup salt\-cloud logging
  265261. .UNINDENT
  265262. .IP \(bu 2
  265263. \fBPR\fP \fI\%#27252\fP: (\fI\%jfindlay\fP) 2014.7 \-> 2014.7.0
  265264. @ \fI2015\-09\-18 23:44:39 UTC\fP
  265265. .INDENT 2.0
  265266. .IP \(bu 2
  265267. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  265268. .IP \(bu 2
  265269. 3d28307a00 2014.7 \-> 2014.7.0
  265270. .UNINDENT
  265271. .IP \(bu 2
  265272. \fBPR\fP \fI\%#27117\fP: (\fI\%jacobhammons\fP) made 2014.7 an archived release
  265273. @ \fI2015\-09\-15 07:35:12 UTC\fP
  265274. .INDENT 2.0
  265275. .IP \(bu 2
  265276. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  265277. .IP \(bu 2
  265278. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  265279. .UNINDENT
  265280. .IP \(bu 2
  265281. \fBPR\fP \fI\%#27114\fP: (\fI\%cachedout\fP) Issue warning that some log levels may contain sensitive data
  265282. @ \fI2015\-09\-15 07:30:43 UTC\fP
  265283. .INDENT 2.0
  265284. .IP \(bu 2
  265285. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  265286. .IP \(bu 2
  265287. 507fb04683 Issue warning that some log levels may contain sensitive data
  265288. .UNINDENT
  265289. .IP \(bu 2
  265290. \fBPR\fP \fI\%#27075\fP: (\fI\%twangboy\fP) Replaced password with redacted when displayed
  265291. @ \fI2015\-09\-14 18:36:10 UTC\fP
  265292. .INDENT 2.0
  265293. .IP \(bu 2
  265294. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  265295. .IP \(bu 2
  265296. c0689e3215 Replaced password with redacted when displayed
  265297. .UNINDENT
  265298. .IP \(bu 2
  265299. \fBISSUE\fP \fI\%#26656\fP: (\fI\%ari\fP) [documentation] error in example for salt.runner.pillar (refs: \fI\%#26667\fP)
  265300. .IP \(bu 2
  265301. \fBPR\fP \fI\%#26667\fP: (\fI\%nmadhok\fP) [doc\-fix] Removing special character from salt.runners.pillar and other changes
  265302. @ \fI2015\-08\-26 18:24:37 UTC\fP
  265303. .INDENT 2.0
  265304. .IP \(bu 2
  265305. c2c7fe06c8 Merge pull request \fI\%#26667\fP from nmadhok/doc\-fix\-2014.7
  265306. .IP \(bu 2
  265307. 26be189689 Doc fix. Fixes \fI\%#26656\fP
  265308. .UNINDENT
  265309. .IP \(bu 2
  265310. \fBPR\fP \fI\%#26663\fP: (\fI\%jacobhammons\fP) version change for latest branch
  265311. @ \fI2015\-08\-26 14:03:35 UTC\fP
  265312. .INDENT 2.0
  265313. .IP \(bu 2
  265314. 6bd3dccae8 Merge pull request \fI\%#26663\fP from jacobhammons/2014.7\-version
  265315. .IP \(bu 2
  265316. b6af538070 version change for latest branch
  265317. .UNINDENT
  265318. .IP \(bu 2
  265319. \fBPR\fP \fI\%#26636\fP: (\fI\%rallytime\fP) Refactor cloud provider tests to be more accurate
  265320. @ \fI2015\-08\-25 21:28:34 UTC\fP
  265321. .INDENT 2.0
  265322. .IP \(bu 2
  265323. 071a6112e5 Merge pull request \fI\%#26636\fP from rallytime/cloud\-test\-fixes
  265324. .IP \(bu 2
  265325. c0d83d558d Don\(aqt use id as variable
  265326. .IP \(bu 2
  265327. 2b4bc1679d Keep ec2 instance creation test the same \- it works better for the ec2 output
  265328. .IP \(bu 2
  265329. b5b58eb31f Skip digital ocean tests since we can\(aqt use API v1 with v2 tests
  265330. .IP \(bu 2
  265331. 9ae1539c62 Update cloud tests to be more efficient and accurate
  265332. .UNINDENT
  265333. .IP \(bu 2
  265334. \fBISSUE\fP \fI\%#26630\fP: (\fI\%efficks\fP) win_service: Function has_powershell does not works on Windows XP (refs: \fI\%#26640\fP)
  265335. .IP \(bu 2
  265336. \fBPR\fP \fI\%#26640\fP: (\fI\%efficks\fP) Fix function spacing
  265337. @ \fI2015\-08\-25 20:01:39 UTC\fP
  265338. .INDENT 2.0
  265339. .IP \(bu 2
  265340. 304542b4c6 Merge pull request \fI\%#26640\fP from efficks/fixws2014
  265341. .IP \(bu 2
  265342. ebe5d9d85c Fix function spacing
  265343. .UNINDENT
  265344. .IP \(bu 2
  265345. \fBPR\fP \fI\%#26515\fP: (\fI\%bersace\fP) Defaults to current saltenv in state.sls
  265346. @ \fI2015\-08\-25 16:35:50 UTC\fP
  265347. .INDENT 2.0
  265348. .IP \(bu 2
  265349. 4532f98a76 Merge pull request \fI\%#26515\fP from bersace/salt\-env\-local\-sls
  265350. .IP \(bu 2
  265351. 0727af9e3d Defaults to current saltenv in state.sls
  265352. .UNINDENT
  265353. .IP \(bu 2
  265354. \fBPR\fP \fI\%#26242\fP: (\fI\%cro\fP) Remove dead code
  265355. @ \fI2015\-08\-12 15:14:20 UTC\fP
  265356. .INDENT 2.0
  265357. .IP \(bu 2
  265358. da8bca09aa Merge pull request \fI\%#26242\fP from cro/anonldap4
  265359. .IP \(bu 2
  265360. a0d2ab1eed Remove dead code
  265361. .UNINDENT
  265362. .IP \(bu 2
  265363. \fBPR\fP \fI\%#26216\fP: (\fI\%cro\fP) Fix LDAP configuration issue.
  265364. @ \fI2015\-08\-11 18:33:43 UTC\fP
  265365. .INDENT 2.0
  265366. .IP \(bu 2
  265367. 1ecf23773e Merge pull request \fI\%#26216\fP from cro/anonldap3
  265368. .IP \(bu 2
  265369. af132d7b89 Documentation update for anonymous bind issue.
  265370. .IP \(bu 2
  265371. 2ef54b6b13 Documentation update for anonymous bind issue.
  265372. .IP \(bu 2
  265373. 5b1836bb00 Fix issue with LDAP anonymous binds.
  265374. .UNINDENT
  265375. .IP \(bu 2
  265376. \fBPR\fP \fI\%#26116\fP: (\fI\%corux\fP) file.replace fails if repl string is an invalid regex and append/prepend is used
  265377. @ \fI2015\-08\-10 16:44:12 UTC\fP
  265378. .INDENT 2.0
  265379. .IP \(bu 2
  265380. abdf2935c4 Merge pull request \fI\%#26116\fP from corux/fix\-escape\-content
  265381. .IP \(bu 2
  265382. fd913ddc36 Append/prepend: search for full line with escaped content
  265383. .UNINDENT
  265384. .IP \(bu 2
  265385. \fBISSUE\fP \fI\%#25751\fP: (\fI\%basepi\fP) Document \fImaster_finger\fP more prominently (refs: \fI\%#26088\fP)
  265386. .IP \(bu 2
  265387. \fBPR\fP \fI\%#26088\fP: (\fI\%jacobhammons\fP) Master finger
  265388. @ \fI2015\-08\-07 14:31:33 UTC\fP
  265389. .INDENT 2.0
  265390. .IP \(bu 2
  265391. 106356d98d Merge pull request \fI\%#26088\fP from jacobhammons/master\-finger
  265392. .IP \(bu 2
  265393. 133d5f7885 some small changes
  265394. .IP \(bu 2
  265395. d220c83f77 master_finger configuration docs switch a script to use \fI\%https://\fP instead of \fI\%http://\fP Refs \fI\%#25751\fP
  265396. .UNINDENT
  265397. .IP \(bu 2
  265398. \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)
  265399. .IP \(bu 2
  265400. \fBPR\fP \fI\%#26047\fP: (\fI\%jacobhammons\fP) Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  265401. @ \fI2015\-08\-05 22:59:44 UTC\fP
  265402. .INDENT 2.0
  265403. .IP \(bu 2
  265404. 4bd4bc41f2 Merge pull request \fI\%#26047\fP from jacobhammons/win\-downloads
  265405. .IP \(bu 2
  265406. 7c162d181c Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP Refs \fI\%#25961\fP
  265407. .UNINDENT
  265408. .IP \(bu 2
  265409. \fBISSUE\fP \fI\%#25701\fP: (\fI\%alekti\fP) Issue \fI\%#23764\fP regression (refs: \fI\%#25750\fP)
  265410. .IP \(bu 2
  265411. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#25750\fP)
  265412. .IP \(bu 2
  265413. \fBPR\fP \fI\%#25750\fP: (\fI\%alekti\fP) Add file as supported protocol for file source_hash. Fixes \fI\%#25701\fP\&.
  265414. @ \fI2015\-07\-29 02:31:27 UTC\fP
  265415. .INDENT 2.0
  265416. .IP \(bu 2
  265417. d93eb87c16 Merge pull request \fI\%#25750\fP from alekti/2014.7
  265418. .IP \(bu 2
  265419. 9ec3ae96d4 Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  265420. .UNINDENT
  265421. .IP \(bu 2
  265422. \fBPR\fP \fI\%#25704\fP: (\fI\%cachedout\fP) Ensure prior alignment with master_type in 2014.7
  265423. @ \fI2015\-07\-27 16:06:35 UTC\fP
  265424. .INDENT 2.0
  265425. .IP \(bu 2
  265426. 3a15df22ac Merge pull request \fI\%#25704\fP from cachedout/master_type_2014_7
  265427. .IP \(bu 2
  265428. c95886c9a7 Ensure prior alignment with master_type in 2014.7
  265429. .UNINDENT
  265430. .IP \(bu 2
  265431. \fBPR\fP \fI\%#25657\fP: (\fI\%MrCitron\fP) Add the ability to specify a base pattern for carbon returner
  265432. @ \fI2015\-07\-24 16:32:58 UTC\fP
  265433. .INDENT 2.0
  265434. .IP \(bu 2
  265435. d1b9362a73 Merge pull request \fI\%#25657\fP from MrCitron/pattern\-carbon\-returner\-2014.7
  265436. .IP \(bu 2
  265437. f8b2f8079f Add the ability to specify a base pattern for metrics path used by the carbon returner
  265438. .UNINDENT
  265439. .IP \(bu 2
  265440. \fBPR\fP \fI\%#25633\fP: (\fI\%AkhterAli\fP) Update loader.py
  265441. @ \fI2015\-07\-22 20:02:41 UTC\fP
  265442. .INDENT 2.0
  265443. .IP \(bu 2
  265444. 9634351fc2 Merge pull request \fI\%#25633\fP from AkhterAli/2014.7
  265445. .IP \(bu 2
  265446. 29be4bbe11 Update loader.py
  265447. .UNINDENT
  265448. .IP \(bu 2
  265449. \fBPR\fP \fI\%#25416\fP: (\fI\%cachedout\fP) Fix broken keyword
  265450. @ \fI2015\-07\-14 19:47:10 UTC\fP
  265451. .INDENT 2.0
  265452. .IP \(bu 2
  265453. 09ebaceca8 Merge pull request \fI\%#25416\fP from cachedout/str_2014_7
  265454. .IP \(bu 2
  265455. cc514938a8 Fix broken keyword
  265456. .UNINDENT
  265457. .IP \(bu 2
  265458. \fBPR\fP \fI\%#25375\fP: (\fI\%cachedout\fP) Fix error in config.py for master_type
  265459. @ \fI2015\-07\-13 16:49:27 UTC\fP
  265460. .INDENT 2.0
  265461. .IP \(bu 2
  265462. 2a1dd1113f Merge pull request \fI\%#25375\fP from cachedout/config_fix_2014_7
  265463. .IP \(bu 2
  265464. c041f2905f Fix error in config.py for master_type
  265465. .UNINDENT
  265466. .IP \(bu 2
  265467. \fBPR\fP \fI\%#25324\fP: (\fI\%jacobhammons\fP) Latest help theme updates
  265468. @ \fI2015\-07\-10 16:11:31 UTC\fP
  265469. .INDENT 2.0
  265470. .IP \(bu 2
  265471. 2590e23d48 Merge pull request \fI\%#25324\fP from jacobhammons/doc\-theme\-updates
  265472. .IP \(bu 2
  265473. 88f5fcf58d Latest help theme updates
  265474. .UNINDENT
  265475. .IP \(bu 2
  265476. \fBISSUE\fP \fI\%#18447\fP: (\fI\%ryan\-lane\fP) Can\(aqt install salt with raet using pip \-e git (refs: \fI\%#25093\fP)
  265477. .IP \(bu 2
  265478. \fBPR\fP \fI\%#25093\fP: (\fI\%jaybocc2\fP) quick fix for issue \fI\%#18447\fP
  265479. @ \fI2015\-07\-01 15:56:53 UTC\fP
  265480. .INDENT 2.0
  265481. .IP \(bu 2
  265482. 36d53ef59e Merge pull request \fI\%#25093\fP from jaybocc2/2014.7
  265483. .IP \(bu 2
  265484. c6a501ebda quick fix for issue \fI\%#18447\fP
  265485. .UNINDENT
  265486. .IP \(bu 2
  265487. \fBPR\fP \fI\%#25069\fP: (\fI\%puneetk\fP) Add a helper module function called list_enabled
  265488. @ \fI2015\-06\-30 20:53:51 UTC\fP
  265489. .INDENT 2.0
  265490. .IP \(bu 2
  265491. 38903a94a1 Merge pull request \fI\%#25069\fP from puneetk/patch\-1
  265492. .IP \(bu 2
  265493. f0b4e600e6 Update Documentation to clarify version added
  265494. .IP \(bu 2
  265495. f8dc6030e7 Pylint updates , removing whitespace
  265496. .IP \(bu 2
  265497. 532d315dd1 [Code Review update] renamed function to is_enaled from list_enabled
  265498. .IP \(bu 2
  265499. 20b0462289 Update schedule.py
  265500. .IP \(bu 2
  265501. 4f1471d7fb Add a helper module function called list_enabled
  265502. .UNINDENT
  265503. .IP \(bu 2
  265504. \fBISSUE\fP \fI\%#15209\fP: (\fI\%hubez\fP) file.manage: source_hash not working with s3:// (2014.7.0rc1) (refs: \fI\%#25011\fP)
  265505. .IP \(bu 2
  265506. \fBPR\fP \fI\%#25011\fP: (\fI\%notpeter\fP) Add s3 to protocols for remote source_hash (2014.7 backport)
  265507. @ \fI2015\-06\-27 22:35:44 UTC\fP
  265508. .INDENT 2.0
  265509. .IP \(bu 2
  265510. a7154e7471 Merge pull request \fI\%#25011\fP from notpeter/s3_2014.7_backport
  265511. .IP \(bu 2
  265512. 8b8af640f6 Add s3 to protocols for remote source_hash
  265513. .UNINDENT
  265514. .IP \(bu 2
  265515. \fBISSUE\fP \fI\%#24915\fP: (\fI\%justinta\fP) Salt\-cloud not working in 2014.7.6 (refs: \fI\%#24944\fP)
  265516. .IP \(bu 2
  265517. \fBPR\fP \fI\%#24944\fP: (\fI\%techhat\fP) Double\-check main_cloud_config
  265518. @ \fI2015\-06\-25 12:29:55 UTC\fP
  265519. .INDENT 2.0
  265520. .IP \(bu 2
  265521. a11e4c6eea Merge pull request \fI\%#24944\fP from techhat/issue24915
  265522. .IP \(bu 2
  265523. 59c3081e49 Double\-check main_cloud_config
  265524. .UNINDENT
  265525. .IP \(bu 2
  265526. \fBPR\fP \fI\%#24936\fP: (\fI\%justinta\fP) Fixed ps module to not use depreciated psutil commands
  265527. @ \fI2015\-06\-24 22:38:19 UTC\fP
  265528. .INDENT 2.0
  265529. .IP \(bu 2
  265530. d26a5447ba Merge pull request \fI\%#24936\fP from jtand/psutil
  265531. .IP \(bu 2
  265532. bdb7a19c36 Fixed ps module to not use depreciated psutil commands
  265533. .UNINDENT
  265534. .IP \(bu 2
  265535. \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)
  265536. .IP \(bu 2
  265537. \fBPR\fP \fI\%#24918\fP: (\fI\%BretFisher\fP) SmartOS SMF minion startup fix
  265538. @ \fI2015\-06\-24 15:44:26 UTC\fP
  265539. .INDENT 2.0
  265540. .IP \(bu 2
  265541. eeb05a1b10 Merge pull request \fI\%#24918\fP from BretFisher/minion\-start\-smartos\-smf\-fix
  265542. .IP \(bu 2
  265543. d7bfb0c7fd Smartos smf minion fix
  265544. .UNINDENT
  265545. .IP \(bu 2
  265546. \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)
  265547. .IP \(bu 2
  265548. \fBPR\fP \fI\%#24780\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2014.7 branch
  265549. @ \fI2015\-06\-18 14:52:56 UTC\fP
  265550. .INDENT 2.0
  265551. .IP \(bu 2
  265552. \fBPR\fP \fI\%#24779\fP: (\fI\%nmadhok\fP) Backporting Changes to 2014.7 branch (refs: \fI\%#24777\fP)
  265553. .IP \(bu 2
  265554. \fBPR\fP \fI\%#24778\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2015.2 branch (refs: \fI\%#24777\fP)
  265555. .IP \(bu 2
  265556. \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)
  265557. .IP \(bu 2
  265558. 4281dfff0b Merge pull request \fI\%#24780\fP from nmadhok/backport\-2014.7\-24777
  265559. .IP \(bu 2
  265560. c53b0d9a22 Backporting PR \fI\%#24777\fP to 2014.7 branch
  265561. .UNINDENT
  265562. .IP \(bu 2
  265563. \fBISSUE\fP \fI\%#21318\fP: (\fI\%thanatos\fP) get_full_returns raises KeyError (refs: \fI\%#24769\fP)
  265564. .IP \(bu 2
  265565. \fBISSUE\fP \fI\%#18994\fP: (\fI\%njhartwell\fP) salt.client.get_cli_returns errors when called immediately after run_job (refs: \fI\%#24769\fP)
  265566. .IP \(bu 2
  265567. \fBPR\fP \fI\%#24769\fP: (\fI\%msteed\fP) Fix stacktrace in get_cli_returns()
  265568. @ \fI2015\-06\-18 14:31:46 UTC\fP
  265569. .INDENT 2.0
  265570. .IP \(bu 2
  265571. f3c5cb2d41 Merge pull request \fI\%#24769\fP from msteed/issue\-21318
  265572. .IP \(bu 2
  265573. f40a9d5cc0 Fix stacktrace in get_cli_returns()
  265574. .UNINDENT
  265575. .IP \(bu 2
  265576. \fBISSUE\fP \fI\%#17041\fP: (\fI\%xenophonf\fP) Confusing Salt error messages due to limited/incomplete PowerShell command error handling (refs: \fI\%#24690\fP)
  265577. .IP \(bu 2
  265578. \fBPR\fP \fI\%#24690\fP: (\fI\%twangboy\fP) Report powershell output instead of error
  265579. @ \fI2015\-06\-17 16:33:49 UTC\fP
  265580. .INDENT 2.0
  265581. .IP \(bu 2
  265582. 59db24602f Merge pull request \fI\%#24690\fP from twangboy/fix_17041
  265583. .IP \(bu 2
  265584. 7a015389af Added additional reporting
  265585. .IP \(bu 2
  265586. d84ad5d519 Fixed capitalization... Failed and Already
  265587. .IP \(bu 2
  265588. e9552455c4 Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_17041
  265589. .UNINDENT
  265590. .IP \(bu 2
  265591. \fBISSUE\fP \fI\%#24196\fP: (\fI\%johnccfm\fP) Exception when using user.present with Windows (refs: \fI\%#24646\fP)
  265592. .IP \(bu 2
  265593. \fBPR\fP \fI\%#24646\fP: (\fI\%twangboy\fP) Fixed user.present on existing user
  265594. @ \fI2015\-06\-15 15:04:43 UTC\fP
  265595. .INDENT 2.0
  265596. .IP \(bu 2
  265597. a18dadad71 Merge pull request \fI\%#24646\fP from twangboy/fix_24196
  265598. .IP \(bu 2
  265599. a208e1d60f Fixed user.present on existing user
  265600. .IP \(bu 2
  265601. 144bff2f67 Report powershell output instead of error
  265602. .UNINDENT
  265603. .IP \(bu 2
  265604. \fBPR\fP \fI\%#24643\fP: (\fI\%cro\fP) Add reference to salt\-announce mailing list
  265605. @ \fI2015\-06\-12 20:21:15 UTC\fP
  265606. .INDENT 2.0
  265607. .IP \(bu 2
  265608. b99484fde2 Merge pull request \fI\%#24643\fP from cro/saltannounce
  265609. .IP \(bu 2
  265610. ecb0623d7f Add salt\-announce mailing list.
  265611. .UNINDENT
  265612. .IP \(bu 2
  265613. \fBPR\fP \fI\%#24620\fP: (\fI\%twangboy\fP) Fixed comment and uncomment functions in file.py
  265614. @ \fI2015\-06\-12 19:36:26 UTC\fP
  265615. .INDENT 2.0
  265616. .IP \(bu 2
  265617. 635121e85d Merge pull request \fI\%#24620\fP from twangboy/fix_24215
  265618. .IP \(bu 2
  265619. d7a9999be1 Fixed comment and uncomment functions in file.py
  265620. .UNINDENT
  265621. .IP \(bu 2
  265622. \fBPR\fP \fI\%#24589\fP: (\fI\%BretFisher\fP) Fixed Mine example for jinja code block
  265623. @ \fI2015\-06\-11 15:48:02 UTC\fP
  265624. .INDENT 2.0
  265625. .IP \(bu 2
  265626. d83928a7f9 Merge pull request \fI\%#24589\fP from BretFisher/patch\-1
  265627. .IP \(bu 2
  265628. 65a11336dc Fixed Mine example for jinja code block
  265629. .UNINDENT
  265630. .IP \(bu 2
  265631. \fBISSUE\fP \fI\%#24427\fP: (\fI\%fayetted\fP) 2015.5.1\-3 Windows 64Bit Minion fails to start after install (refs: \fI\%#24530\fP)
  265632. .IP \(bu 2
  265633. \fBPR\fP \fI\%#24530\fP: (\fI\%twangboy\fP) Start Minion Service on Silent Install
  265634. @ \fI2015\-06\-09 21:30:08 UTC\fP
  265635. .INDENT 2.0
  265636. .IP \(bu 2
  265637. d376390f76 Merge pull request \fI\%#24530\fP from twangboy/fix_24427
  265638. .IP \(bu 2
  265639. 673e1d809e Added missing panel.bmp for installer
  265640. .IP \(bu 2
  265641. cc50218b01 Start Minion Service on Silent Install
  265642. .UNINDENT
  265643. .IP \(bu 2
  265644. \fBPR\fP \fI\%#24513\fP: (\fI\%jquast\fP) bugfix use of \(aqiteritem\(aq in 2014.7 branch
  265645. @ \fI2015\-06\-09 04:06:36 UTC\fP
  265646. .INDENT 2.0
  265647. .IP \(bu 2
  265648. \fBPR\fP \fI\%#24511\fP: (\fI\%jquast\fP) bugfix: trailing "...done" in rabbitmq output (refs: \fI\%#24513\fP)
  265649. .IP \(bu 2
  265650. 6ebc476bb3 Merge pull request \fI\%#24513\fP from jquast/2014.7\-bugfix\-iteritem
  265651. .IP \(bu 2
  265652. 2be0180e5e bugfix use of \(aqiteritem\(aq in 2014.7 branch
  265653. .UNINDENT
  265654. .IP \(bu 2
  265655. \fBISSUE\fP \fI\%#24276\fP: (\fI\%markuskramerIgitt\fP) Live salt\-master Profiling with SIGUSR2 fails (refs: \fI\%#24405\fP)
  265656. .IP \(bu 2
  265657. \fBPR\fP \fI\%#24405\fP: (\fI\%jacksontj\fP) Fix for \fI\%#24276\fP
  265658. @ \fI2015\-06\-04 20:50:42 UTC\fP
  265659. .INDENT 2.0
  265660. .IP \(bu 2
  265661. 83f853b6ea Merge pull request \fI\%#24405\fP from jacksontj/2014.7
  265662. .IP \(bu 2
  265663. 2c7afaeebf Fix for \fI\%#24276\fP
  265664. .UNINDENT
  265665. .IP \(bu 2
  265666. \fBPR\fP \fI\%#24395\fP: (\fI\%hvnsweeting\fP) handle exceptions when received data is not in good shape
  265667. @ \fI2015\-06\-04 20:08:22 UTC\fP
  265668. .INDENT 2.0
  265669. .IP \(bu 2
  265670. cef919c602 Merge pull request \fI\%#24395\fP from hvnsweeting/handle\-exception\-get\-file
  265671. .IP \(bu 2
  265672. bb798a0224 handle exceptions when received data is not in good shape
  265673. .UNINDENT
  265674. .IP \(bu 2
  265675. \fBPR\fP \fI\%#24305\fP: (\fI\%twangboy\fP) Added documentation, fixed formatting
  265676. @ \fI2015\-06\-04 19:40:54 UTC\fP
  265677. .INDENT 2.0
  265678. .IP \(bu 2
  265679. efba1a94b4 Merge pull request \fI\%#24305\fP from twangboy/win_path_docs
  265680. .IP \(bu 2
  265681. 36804253e6 Fixed pylint error caused by P... added r
  265682. .IP \(bu 2
  265683. bc42a4bb11 triple double quotes to triple single quotes
  265684. .IP \(bu 2
  265685. 77cd930bba Added documentation, fixed formatting
  265686. .UNINDENT
  265687. .IP \(bu 2
  265688. \fBPR\fP \fI\%#24178\fP: (\fI\%rallytime\fP) Backport \fI\%#24118\fP to 2014.7, too.
  265689. @ \fI2015\-05\-27 17:49:45 UTC\fP
  265690. .INDENT 2.0
  265691. .IP \(bu 2
  265692. \fBPR\fP \fI\%#24118\fP: (\fI\%trevor\-h\fP) removed deprecated pymongo usage (refs: \fI\%#24178\fP)
  265693. .IP \(bu 2
  265694. 9d7331c87d Merge pull request \fI\%#24178\fP from rallytime/bp\-24118
  265695. .IP \(bu 2
  265696. e2217a09e8 removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  265697. .UNINDENT
  265698. .IP \(bu 2
  265699. \fBPR\fP \fI\%#24159\fP: (\fI\%rallytime\fP) Fill out modules/keystone.py CLI Examples
  265700. @ \fI2015\-05\-27 15:07:11 UTC\fP
  265701. .INDENT 2.0
  265702. .IP \(bu 2
  265703. 4e8c5031b0 Merge pull request \fI\%#24159\fP from rallytime/keystone_doc_examples
  265704. .IP \(bu 2
  265705. dadac8d076 Fill out modules/keystone.py CLI Examples
  265706. .UNINDENT
  265707. .IP \(bu 2
  265708. \fBPR\fP \fI\%#24158\fP: (\fI\%rallytime\fP) Fix test_valid_docs test for tls module
  265709. @ \fI2015\-05\-27 15:06:05 UTC\fP
  265710. .INDENT 2.0
  265711. .IP \(bu 2
  265712. fc10ee8ed5 Merge pull request \fI\%#24158\fP from rallytime/fix_doc_error
  265713. .IP \(bu 2
  265714. 49a517e2ca Fix test_valid_docs test for tls module
  265715. .UNINDENT
  265716. .IP \(bu 2
  265717. \fBPR\fP \fI\%#24125\fP: (\fI\%hvnsweeting\fP) Fix rabbitmq test mode
  265718. @ \fI2015\-05\-26 15:40:18 UTC\fP
  265719. .INDENT 2.0
  265720. .IP \(bu 2
  265721. c0d32e0b5e Merge pull request \fI\%#24125\fP from hvnsweeting/fix\-rabbitmq\-test\-mode
  265722. .IP \(bu 2
  265723. 71862c69b9 enhance log
  265724. .IP \(bu 2
  265725. 28e2594162 change according to new output of rabbitmq module functions
  265726. .IP \(bu 2
  265727. cd0212e8ed processes and returns better output for rabbitmq module
  265728. .UNINDENT
  265729. .IP \(bu 2
  265730. \fBISSUE\fP \fI\%#23464\fP: (\fI\%tibold\fP) cmd_iter_no_block() blocks (refs: \fI\%#24093\fP)
  265731. .IP \(bu 2
  265732. \fBPR\fP \fI\%#24093\fP: (\fI\%msteed\fP) Make LocalClient.cmd_iter_no_block() not block
  265733. @ \fI2015\-05\-25 15:56:42 UTC\fP
  265734. .INDENT 2.0
  265735. .IP \(bu 2
  265736. 39a8f30f06 Merge pull request \fI\%#24093\fP from msteed/issue\-23464
  265737. .IP \(bu 2
  265738. fd35903d75 Fix failing test
  265739. .IP \(bu 2
  265740. 41b344c7d3 Make LocalClient.cmd_iter_no_block() not block
  265741. .UNINDENT
  265742. .IP \(bu 2
  265743. \fBPR\fP \fI\%#24008\fP: (\fI\%davidjb\fP) Correct reST formatting for states.cmd documentation
  265744. @ \fI2015\-05\-21 04:19:01 UTC\fP
  265745. .INDENT 2.0
  265746. .IP \(bu 2
  265747. 5bffd3045e Merge pull request \fI\%#24008\fP from davidjb/2014.7
  265748. .IP \(bu 2
  265749. 8b8d0293d4 Correct reST formatting for documentation
  265750. .UNINDENT
  265751. .IP \(bu 2
  265752. \fBPR\fP \fI\%#23933\fP: (\fI\%jacobhammons\fP) sphinx saltstack2 doc theme
  265753. @ \fI2015\-05\-20 18:19:19 UTC\fP
  265754. .INDENT 2.0
  265755. .IP \(bu 2
  265756. 1aa0420040 Merge pull request \fI\%#23933\fP from jacobhammons/2014.7
  265757. .IP \(bu 2
  265758. a3613e68e4 removed numbering from doc TOC
  265759. .IP \(bu 2
  265760. 78b737c5e6 removed 2015.* release from release notes, updated index page to remove PDF/epub links
  265761. .IP \(bu 2
  265762. e867f7df77 Changed build settings to use saltstack2 theme and update release versions.
  265763. .IP \(bu 2
  265764. 81ed9c9f59 sphinx saltstack2 doc theme
  265765. .UNINDENT
  265766. .IP \(bu 2
  265767. \fBPR\fP \fI\%#23965\fP: (\fI\%hvnsweeting\fP) handle all exceptions gitpython can raise
  265768. @ \fI2015\-05\-20 15:08:03 UTC\fP
  265769. .INDENT 2.0
  265770. .IP \(bu 2
  265771. 314e4db512 Merge pull request \fI\%#23965\fP from hvnsweeting/20147\-fix\-gitfs\-gitpython\-exception
  265772. .IP \(bu 2
  265773. 2576301631 handle all exception gitpython can raise
  265774. .UNINDENT
  265775. .IP \(bu 2
  265776. \fBPR\fP \fI\%#23939\fP: (\fI\%basepi\fP) Add extended changelog to 2014.7.6 release notes
  265777. @ \fI2015\-05\-19 21:21:00 UTC\fP
  265778. .INDENT 2.0
  265779. .IP \(bu 2
  265780. 913391207a Merge pull request \fI\%#23939\fP from basepi/v2014.7.6release
  265781. .IP \(bu 2
  265782. 32b65dc2a9 Add extended changelog to 2014.7.6 release notes
  265783. .UNINDENT
  265784. .IP \(bu 2
  265785. \fBISSUE\fP \fI\%#23820\fP: (\fI\%UtahDave\fP) 2014.7.5 schedule error (refs: \fI\%#23881\fP)
  265786. .IP \(bu 2
  265787. \fBPR\fP \fI\%#23881\fP: (\fI\%garethgreenaway\fP) Fixes to schedule module in 2014.7
  265788. @ \fI2015\-05\-19 15:46:30 UTC\fP
  265789. .INDENT 2.0
  265790. .IP \(bu 2
  265791. 0031ca2631 Merge pull request \fI\%#23881\fP from garethgreenaway/23820_2014_7_schedule_list_issue
  265792. .IP \(bu 2
  265793. b207f2a433 Missing continue in the list function when deleting unused attributes.
  265794. .UNINDENT
  265795. .IP \(bu 2
  265796. \fBISSUE\fP \fI\%#22131\fP: (\fI\%quixoten\fP) "unexpected keyword argument \(aqmerge\(aq" on 2014.7.2 (salt\-ssh) (refs: \fI\%#23887\fP)
  265797. .IP \(bu 2
  265798. \fBPR\fP \fI\%#23887\fP: (\fI\%basepi\fP) [2014.7] Bring salt\-ssh pillar.get in line with mainline pillar.get
  265799. @ \fI2015\-05\-18 23:11:34 UTC\fP
  265800. .INDENT 2.0
  265801. .IP \(bu 2
  265802. 63bd21ecd2 Merge pull request \fI\%#23887\fP from basepi/salt\-ssh.pillar.get.22131
  265803. .IP \(bu 2
  265804. bc84502f46 Bring salt\-ssh pillar.get in line with mainline pillar.get
  265805. .UNINDENT
  265806. .IP \(bu 2
  265807. \fBPR\fP \fI\%#23891\fP: (\fI\%basepi\fP) Update the release notes index page
  265808. @ \fI2015\-05\-18 23:06:52 UTC\fP
  265809. .INDENT 2.0
  265810. .IP \(bu 2
  265811. 17c5810c04 Merge pull request \fI\%#23891\fP from basepi/releasenotes
  265812. .IP \(bu 2
  265813. dec153bcea Update the release notes index page
  265814. .UNINDENT
  265815. .IP \(bu 2
  265816. \fBPR\fP \fI\%#23888\fP: (\fI\%basepi\fP) Update the 2014.7.6 release notes with CVE details
  265817. @ \fI2015\-05\-18 22:35:51 UTC\fP
  265818. .INDENT 2.0
  265819. .IP \(bu 2
  265820. a93e58f80f Merge pull request \fI\%#23888\fP from basepi/v2014.7.6release
  265821. .IP \(bu 2
  265822. 49921b6cb2 Update the 2014.7.6 release notes with CVE details
  265823. .UNINDENT
  265824. .IP \(bu 2
  265825. \fBPR\fP \fI\%#23871\fP: (\fI\%rallytime\fP) Backport \fI\%#23848\fP to 2014.7
  265826. @ \fI2015\-05\-18 20:34:04 UTC\fP
  265827. .INDENT 2.0
  265828. .IP \(bu 2
  265829. \fBPR\fP \fI\%#23848\fP: (\fI\%dumol\fP) Updated installation docs for SLES 12. (refs: \fI\%#23871\fP)
  265830. .IP \(bu 2
  265831. 50730287bb Merge pull request \fI\%#23871\fP from rallytime/bp\-23848
  265832. .IP \(bu 2
  265833. 379c09c3a5 Updated for SLES 12.
  265834. .UNINDENT
  265835. .UNINDENT
  265836. .SS Salt 2014.7.8 Release Notes
  265837. .INDENT 0.0
  265838. .TP
  265839. .B release
  265840. 2015\-11\-13
  265841. .UNINDENT
  265842. .sp
  265843. Version 2014.7.8 is a bugfix release for 2014.7.0\&.
  265844. .SS Statistics
  265845. .INDENT 0.0
  265846. .IP \(bu 2
  265847. Total Merges: \fB7\fP
  265848. .IP \(bu 2
  265849. Total Issue References: \fB3\fP
  265850. .IP \(bu 2
  265851. Total PR References: \fB10\fP
  265852. .IP \(bu 2
  265853. Contributors: \fB5\fP (\fI\%DmitryKuzmenko\fP, \fI\%JaseFace\fP, \fI\%MasterNayru\fP, \fI\%cachedout\fP, \fI\%rallytime\fP)
  265854. .UNINDENT
  265855. .SS Changelog for v2014.7.7..v2014.7.8
  265856. .sp
  265857. \fIGenerated at: 2018\-05\-27 20:47:34 UTC\fP
  265858. .INDENT 0.0
  265859. .IP \(bu 2
  265860. \fBPR\fP \fI\%#28839\fP: (\fI\%cachedout\fP) Revert \fI\%#28740\fP
  265861. @ \fI2015\-11\-12 22:54:28 UTC\fP
  265862. .INDENT 2.0
  265863. .IP \(bu 2
  265864. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28839\fP)
  265865. .IP \(bu 2
  265866. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  265867. .IP \(bu 2
  265868. 215b26c06f Revert \fI\%#28740\fP
  265869. .UNINDENT
  265870. .IP \(bu 2
  265871. \fBPR\fP \fI\%#28777\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2014.7
  265872. @ \fI2015\-11\-11 18:00:00 UTC\fP
  265873. .INDENT 2.0
  265874. .IP \(bu 2
  265875. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28839\fP)
  265876. .IP \(bu 2
  265877. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  265878. .IP \(bu 2
  265879. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  265880. .UNINDENT
  265881. .IP \(bu 2
  265882. \fBPR\fP \fI\%#28716\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28705\fP to 2014.7
  265883. @ \fI2015\-11\-10 16:15:03 UTC\fP
  265884. .INDENT 2.0
  265885. .IP \(bu 2
  265886. \fBPR\fP \fI\%#28705\fP: (\fI\%cachedout\fP) Account for new headers class in tornado 4.3 (refs: \fI\%#28716\fP)
  265887. .IP \(bu 2
  265888. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  265889. .IP \(bu 2
  265890. 32e7bd3ea0 Account for new headers class in tornado 4.3
  265891. .UNINDENT
  265892. .IP \(bu 2
  265893. \fBISSUE\fP \fI\%#28199\fP: (\fI\%felskrone\fP) Non\-standard umasks might break the master (refs: \fI\%#28717\fP)
  265894. .IP \(bu 2
  265895. \fBPR\fP \fI\%#28717\fP: (\fI\%cachedout\fP) Add note about recommended umask
  265896. @ \fI2015\-11\-09 23:26:20 UTC\fP
  265897. .INDENT 2.0
  265898. .IP \(bu 2
  265899. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  265900. .IP \(bu 2
  265901. 1874300e08 Add note about recommended umask
  265902. .UNINDENT
  265903. .IP \(bu 2
  265904. \fBISSUE\fP \fI\%#28455\fP: (\fI\%zmalone\fP) highstate.cache is world readable, and contains secrets (refs: \fI\%#28461\fP)
  265905. .IP \(bu 2
  265906. \fBPR\fP \fI\%#28461\fP: (\fI\%cachedout\fP) Wrap all cache calls in state.sls in correct umask
  265907. @ \fI2015\-11\-02 17:11:02 UTC\fP
  265908. .INDENT 2.0
  265909. .IP \(bu 2
  265910. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  265911. .IP \(bu 2
  265912. 097838ec0c Wrap all cache calls in state.sls in correct umask
  265913. .UNINDENT
  265914. .IP \(bu 2
  265915. \fBISSUE\fP \fI\%#24910\fP: (\fI\%bocig\fP) \-T, \-\-make\-token flag does NOT work\- LDAP Groups (refs: \fI\%#28407\fP)
  265916. .IP \(bu 2
  265917. \fBPR\fP \fI\%#28407\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt request creds if auth with key.
  265918. @ \fI2015\-10\-29 16:12:30 UTC\fP
  265919. .INDENT 2.0
  265920. .IP \(bu 2
  265921. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  265922. .IP \(bu 2
  265923. b7b5bec309 Don\(aqt request creds if auth with key.
  265924. .UNINDENT
  265925. .IP \(bu 2
  265926. \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()
  265927. @ \fI2015\-10\-05 18:09:33 UTC\fP
  265928. .INDENT 2.0
  265929. .IP \(bu 2
  265930. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  265931. .IP \(bu 2
  265932. 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.
  265933. .UNINDENT
  265934. .UNINDENT
  265935. .SS Salt 2014.7.9 Release Notes
  265936. .INDENT 0.0
  265937. .TP
  265938. .B release
  265939. 2016\-03\-11
  265940. .UNINDENT
  265941. .sp
  265942. Version 2014.7.9 is a bugfix release for 2014.7.0\&.
  265943. .SS Statistics
  265944. .INDENT 0.0
  265945. .IP \(bu 2
  265946. Total Merges: \fB5\fP
  265947. .IP \(bu 2
  265948. Total Issue References: \fB1\fP
  265949. .IP \(bu 2
  265950. Total PR References: \fB5\fP
  265951. .IP \(bu 2
  265952. Contributors: \fB4\fP (\fI\%douardda\fP, \fI\%gtmanfred\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP)
  265953. .UNINDENT
  265954. .SS Changelog for v2014.7.8..v2014.7.9
  265955. .sp
  265956. \fIGenerated at: 2018\-05\-27 20:55:35 UTC\fP
  265957. .INDENT 0.0
  265958. .IP \(bu 2
  265959. \fBPR\fP \fI\%#31834\fP: (\fI\%jfindlay\fP) add 2014.7.8 release notes
  265960. @ \fI2016\-03\-11 21:35:42 UTC\fP
  265961. .INDENT 2.0
  265962. .IP \(bu 2
  265963. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  265964. .IP \(bu 2
  265965. 358fdad0c8 add 2014.7.8 release notes
  265966. .UNINDENT
  265967. .IP \(bu 2
  265968. \fBPR\fP \fI\%#31833\fP: (\fI\%jfindlay\fP) add 2014.7.9 release notes
  265969. @ \fI2016\-03\-11 21:19:55 UTC\fP
  265970. .INDENT 2.0
  265971. .IP \(bu 2
  265972. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  265973. .IP \(bu 2
  265974. 6910fcc584 add 2014.7.9 release notes
  265975. .UNINDENT
  265976. .IP \(bu 2
  265977. \fBPR\fP \fI\%#31826\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  265978. @ \fI2016\-03\-11 20:41:01 UTC\fP
  265979. .INDENT 2.0
  265980. .IP \(bu 2
  265981. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  265982. .IP \(bu 2
  265983. d73f70ebb2 Remove ability of authenticating user to specify pam service
  265984. .UNINDENT
  265985. .IP \(bu 2
  265986. \fBPR\fP \fI\%#29392\fP: (\fI\%jacobhammons\fP) updated version number to not reference a specific build from the lat…
  265987. @ \fI2015\-12\-03 15:54:31 UTC\fP
  265988. .INDENT 2.0
  265989. .IP \(bu 2
  265990. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  265991. .IP \(bu 2
  265992. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  265993. .UNINDENT
  265994. .IP \(bu 2
  265995. \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)
  265996. .IP \(bu 2
  265997. \fBPR\fP \fI\%#29296\fP: (\fI\%douardda\fP) Use process KillMode on Debian systems also
  265998. @ \fI2015\-12\-01 16:00:16 UTC\fP
  265999. .INDENT 2.0
  266000. .IP \(bu 2
  266001. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  266002. .IP \(bu 2
  266003. d2885390f4 Use process KillMode on Debian systems also
  266004. .UNINDENT
  266005. .UNINDENT
  266006. .SS Salt 2014.1.0 Release Notes \- Codename Hydrogen
  266007. .sp
  266008. \fBNOTE:\fP
  266009. .INDENT 0.0
  266010. .INDENT 3.5
  266011. Due to a change in master to minion communication, 2014.1.0 minions are not
  266012. compatible with older\-version masters. Please upgrade masters first.
  266013. More info on backwards\-compatibility policy here, under the "Upgrading Salt" subheading.
  266014. .UNINDENT
  266015. .UNINDENT
  266016. .sp
  266017. \fBNOTE:\fP
  266018. .INDENT 0.0
  266019. .INDENT 3.5
  266020. A change in the grammar in the state compiler makes \fBmodule.run\fP in
  266021. requisites illegal syntax. Its use is replaced simply with the word
  266022. \fBmodule\fP\&. In other words you will need to change requisites like this:
  266023. .INDENT 0.0
  266024. .INDENT 3.5
  266025. .sp
  266026. .nf
  266027. .ft C
  266028. require:
  266029. module.run: some_module_name
  266030. .ft P
  266031. .fi
  266032. .UNINDENT
  266033. .UNINDENT
  266034. .sp
  266035. to:
  266036. .INDENT 0.0
  266037. .INDENT 3.5
  266038. .sp
  266039. .nf
  266040. .ft C
  266041. require:
  266042. module: some_module_name
  266043. .ft P
  266044. .fi
  266045. .UNINDENT
  266046. .UNINDENT
  266047. .sp
  266048. This is a breaking change. We apologize for the inconvenience, we needed to
  266049. do this to remove some ambiguity in parsing requisites.
  266050. .UNINDENT
  266051. .UNINDENT
  266052. .INDENT 0.0
  266053. .TP
  266054. .B release
  266055. 2014\-02\-24
  266056. .UNINDENT
  266057. .sp
  266058. The 2014.1.0 release of Salt is a major release which not only increases
  266059. stability but also brings new capabilities in virtualization, cloud
  266060. integration, and more. This release brings a great focus on the expansion of
  266061. testing making roughly double the coverage in the Salt tests, and comes with
  266062. many new features.
  266063. .sp
  266064. 2014.1.0 is the first release to follow the new date\-based release naming
  266065. system. See the version numbers
  266066. page for more details.
  266067. .SS Major Features
  266068. .SS Salt Cloud Merged into Salt
  266069. .sp
  266070. Salt Cloud is a tool for provisioning salted minions across various cloud
  266071. providers. Prior to this release, Salt Cloud was a separate project but this
  266072. marks its full integration with the Salt distribution. A Getting Started guide
  266073. and additional documentation for Salt Cloud can be found here:
  266074. .SS Google Compute Engine
  266075. .sp
  266076. Alongside Salt Cloud comes new support for the Google Compute Engine. Salt Stack
  266077. can now deploy and control GCE virtual machines and the application stacks that
  266078. they run.
  266079. .sp
  266080. For more information on Salt Stack and GCE, please see \fI\%this blog post\fP\&.
  266081. .sp
  266082. Documentation for Salt and GCE can be found here\&.
  266083. .SS Salt Virt
  266084. .sp
  266085. Salt Virt is a cloud controller that supports virtual machine deployment,
  266086. inspection, migration, and integration with many aspects of Salt.
  266087. .sp
  266088. Salt Virt has undergone a major overhaul with this release and now supports
  266089. many more features and includes a number of critical improvements.
  266090. .SS Docker Integration
  266091. .sp
  266092. Salt now ships with \fBstates\fP and an \fBexecution
  266093. module\fP to manage Docker containers.
  266094. .SS Substantial Testing Expansion
  266095. .sp
  266096. Salt continues to increase its unit/regression test coverage. This release
  266097. includes over 300 new tests.
  266098. .SS BSD Package Management
  266099. .sp
  266100. BSD package management has been entirely rewritten. FreeBSD 9 and older now
  266101. default to using pkg_add, while FreeBSD 10 and newer will use pkgng. FreeBSD 9
  266102. can be forced to use pkgng, however, by specifying the following option in the
  266103. minion config file:
  266104. .INDENT 0.0
  266105. .INDENT 3.5
  266106. .sp
  266107. .nf
  266108. .ft C
  266109. providers:
  266110. pkg: pkgng
  266111. .ft P
  266112. .fi
  266113. .UNINDENT
  266114. .UNINDENT
  266115. .sp
  266116. In addition, support for installing software from the ports tree has been
  266117. added. See the documentation for the ports \fBstate\fP and
  266118. \fBexecution module\fP for more information.
  266119. .SS Network Management for Debian/Ubuntu
  266120. .sp
  266121. Initial support for management of network interfaces on Debian\-based distros
  266122. has been added. See the documentation for the \fBnetwork state\fP and the \fBdebian_ip\fP for
  266123. more information.
  266124. .SS IPv6 Support for iptables State/Module
  266125. .sp
  266126. The iptables \fBstate\fP and \fBmodule\fP now have IPv6 support. A new parameter \fBfamily\fP has
  266127. been added to the states and execution functions, to distinguish between IPv4
  266128. and IPv6. The default value for this parameter is \fBipv4\fP, specifying \fBipv6\fP
  266129. will use ip6tables to manage firewall rules.
  266130. .SS GitFS Improvements
  266131. .sp
  266132. Several performance improvements have been made to the \fBGit fileserver
  266133. backend\fP\&. Additionally, file states can now use any
  266134. SHA1 commit hash as a fileserver environment:
  266135. .INDENT 0.0
  266136. .INDENT 3.5
  266137. .sp
  266138. .nf
  266139. .ft C
  266140. /etc/httpd/httpd.conf:
  266141. file.managed:
  266142. \- source: salt://webserver/files/httpd.conf
  266143. \- saltenv: 45af879
  266144. .ft P
  266145. .fi
  266146. .UNINDENT
  266147. .UNINDENT
  266148. .sp
  266149. This applies to the functions in the \fBcp module\fP as
  266150. well:
  266151. .INDENT 0.0
  266152. .INDENT 3.5
  266153. .sp
  266154. .nf
  266155. .ft C
  266156. salt \(aq*\(aq cp.get_file salt://readme.txt /tmp/readme.txt saltenv=45af879
  266157. .ft P
  266158. .fi
  266159. .UNINDENT
  266160. .UNINDENT
  266161. .SS MinionFS
  266162. .sp
  266163. This new fileserver backend allows files which have been pushed from the minion
  266164. to the master (using \fBcp.push\fP) to be served up
  266165. from the salt fileserver. The path for these files takes the following format:
  266166. .INDENT 0.0
  266167. .INDENT 3.5
  266168. .sp
  266169. .nf
  266170. .ft C
  266171. salt://minion\-id/path/to/file
  266172. .ft P
  266173. .fi
  266174. .UNINDENT
  266175. .UNINDENT
  266176. .sp
  266177. \fBminion\-id\fP is the id of the "source" minion, the one from which the files
  266178. were pushed to the master. \fB/path/to/file\fP is the full path of the file.
  266179. .sp
  266180. The MinionFS Walkthrough contains a more
  266181. thorough example of how to use this backend.
  266182. .SS saltenv
  266183. .sp
  266184. To distinguish between fileserver environments and execution functions which
  266185. deal with environment variables, fileserver environments are now specified
  266186. using the \fBsaltenv\fP parameter. \fBenv\fP will continue to work, but is
  266187. deprecated and will be removed in a future release.
  266188. .SS Grains Caching
  266189. .sp
  266190. A caching layer has been added to the Grains system, which can help speed up
  266191. minion startup. Disabled by default, it can be enabled by setting the minion
  266192. config option \fBgrains_cache\fP:
  266193. .INDENT 0.0
  266194. .INDENT 3.5
  266195. .sp
  266196. .nf
  266197. .ft C
  266198. grains_cache: True
  266199. # Seconds before grains cache is considered to be stale.
  266200. grains_cache_expiration: 300
  266201. .ft P
  266202. .fi
  266203. .UNINDENT
  266204. .UNINDENT
  266205. .sp
  266206. If set to \fBTrue\fP, the grains loader will read from/write to a
  266207. msgpack\-serialized file containing the grains data.
  266208. .sp
  266209. Additional command\-line parameters have been added to salt\-call, mainly for
  266210. testing purposes:
  266211. .INDENT 0.0
  266212. .IP \(bu 2
  266213. \fB\-\-skip\-grains\fP will completely bypass the grains loader when salt\-call is
  266214. invoked.
  266215. .IP \(bu 2
  266216. \fB\-\-refresh\-grains\-cache\fP will force the grains loader to bypass the grains
  266217. cache and refresh the grains, writing a new grains cache file.
  266218. .UNINDENT
  266219. .SS Improved Command Logging Control
  266220. .sp
  266221. When using the \fBcmd module\fP, either on the CLI or
  266222. when developing Salt execution modules, a new keyword argument
  266223. \fBoutput_loglevel\fP allows for greater control over how (or even if) the
  266224. command and its output are logged. For example:
  266225. .INDENT 0.0
  266226. .INDENT 3.5
  266227. .sp
  266228. .nf
  266229. .ft C
  266230. salt \(aq*\(aq cmd.run \(aqtail /var/log/messages\(aq output_loglevel=debug
  266231. .ft P
  266232. .fi
  266233. .UNINDENT
  266234. .UNINDENT
  266235. .sp
  266236. The package management modules (\fBapt\fP, \fByumpkg\fP, etc.) have been updated to
  266237. log the copious output generated from these commands at loglevel \fBdebug\fP\&.
  266238. .sp
  266239. \fBNOTE:\fP
  266240. .INDENT 0.0
  266241. .INDENT 3.5
  266242. To keep a command from being logged, \fBoutput_loglevel=quiet\fP can be used.
  266243. .sp
  266244. Prior to this release, this could be done using \fBquiet=True\fP\&. This
  266245. argument is still supported, but will be removed in a future Salt release.
  266246. .UNINDENT
  266247. .UNINDENT
  266248. .SS PagerDuty Support
  266249. .sp
  266250. Initial support for firing events via \fI\%PagerDuty\fP has been added. See the
  266251. documentation for the \fBpagerduty\fP module.
  266252. .SS Virtual Terminal
  266253. .sp
  266254. Sometimes the subprocess module is not good enough, and, in fact, not even
  266255. \fBaskpass\fP is. This virtual terminal is still in its infant childhood, needs
  266256. quite some love, and was originally created to replace \fBaskpass\fP, but, while
  266257. developing it, it immediately proved that it could do so much more. It\(aqs
  266258. currently used by salt\-cloud when bootstrapping salt on clouds which require
  266259. the use of a password.
  266260. .SS Proxy Minions
  266261. .sp
  266262. Initial basic support for Proxy Minions is in this release. Documentation can
  266263. be found here\&.
  266264. .sp
  266265. Proxy minions are a developing feature in Salt that enables control of devices
  266266. that cannot run a minion. Examples include network gear like switches and
  266267. routers that run a proprietary OS but offer an API, or "dumb" devices that just
  266268. don\(aqt have the horsepower or ability to handle a Python VM.
  266269. .sp
  266270. Proxy minions can be difficult to write, so a simple REST\-based example proxy
  266271. is included. A Python bottle\-based webserver can be found at
  266272. \fI\%https://github.com/cro/salt\-proxy\-rest\fP as an endpoint for this proxy.
  266273. .sp
  266274. This is an ALPHA\-quality feature. There are a number of issues with it
  266275. currently, mostly centering around process control, logging, and inability to
  266276. work in a masterless configuration.
  266277. .SS Additional Bugfixes (Release Candidate Period)
  266278. .sp
  266279. Below are many of the fixes that were implemented in salt during the release
  266280. candidate phase.
  266281. .INDENT 0.0
  266282. .IP \(bu 2
  266283. Fix mount.mounted leaving conflicting entries in fstab (\fI\%issue #7079\fP)
  266284. .IP \(bu 2
  266285. Fix mysql returner serialization to use json (\fI\%issue #9590\fP)
  266286. .IP \(bu 2
  266287. Fix \fBZMQError: Operation cannot be accomplished in current state\fP errors (\fI\%issue #6306\fP)
  266288. .IP \(bu 2
  266289. Rbenv and ruby improvements
  266290. .IP \(bu 2
  266291. Fix quoting issues with mysql port (\fI\%issue #9568\fP)
  266292. .IP \(bu 2
  266293. Update mount module/state to support multiple swap partitions (\fI\%issue #9520\fP)
  266294. .IP \(bu 2
  266295. Fix \fBarchive\fP state to work with \fBbsdtar\fP
  266296. .IP \(bu 2
  266297. Clarify logs for minion ID caching
  266298. .IP \(bu 2
  266299. Add numeric revision support to git state (\fI\%issue #9718\fP)
  266300. .IP \(bu 2
  266301. Update \fBmaster_uri\fP with \fBmaster_ip\fP (\fI\%issue #9694\fP)
  266302. .IP \(bu 2
  266303. Add comment to Debian \fBmod_repo\fP (\fI\%issue #9923\fP)
  266304. .IP \(bu 2
  266305. Fix potential undefined loop variable in rabbitmq state (\fI\%issue #8703\fP)
  266306. .IP \(bu 2
  266307. Fix for salt\-virt runner to delete key on VM deletion
  266308. .IP \(bu 2
  266309. Fix for \fBsalt\-run \-d\fP to limit results to specific runner or function (\fI\%issue #9975\fP)
  266310. .IP \(bu 2
  266311. Add tracebacks to jinja renderer when applicable (\fI\%issue #10010\fP)
  266312. .IP \(bu 2
  266313. Fix parsing in monit module (\fI\%issue #10041\fP)
  266314. .IP \(bu 2
  266315. Fix highstate output from syndic minions (\fI\%issue #9732\fP)
  266316. .IP \(bu 2
  266317. Quiet logging when dealing with passwords/hashes (\fI\%issue #10000\fP)
  266318. .IP \(bu 2
  266319. Fix for multiple remotes in git_pillar (\fI\%issue #9932\fP)
  266320. .IP \(bu 2
  266321. Fix npm installed command (\fI\%issue #10109\fP)
  266322. .IP \(bu 2
  266323. Add safeguards for utf8 errors in zcbuildout module
  266324. .IP \(bu 2
  266325. Fix compound commands (\fI\%issue #9746\fP)
  266326. .IP \(bu 2
  266327. Add systemd notification when master is started
  266328. .IP \(bu 2
  266329. Many doc improvements
  266330. .UNINDENT
  266331. .SS Salt 2014.1.1 Release Notes
  266332. .INDENT 0.0
  266333. .TP
  266334. .B release
  266335. 2014\-03\-18
  266336. .UNINDENT
  266337. .sp
  266338. Version 2014.1.1 is a bugfix release for 2014.1.0\&. The changes include:
  266339. .INDENT 0.0
  266340. .IP \(bu 2
  266341. Various doc fixes, including up\-to\-date Salt Cloud installation documentation.
  266342. .IP \(bu 2
  266343. Renamed state.sls runner to state.orchestrate, to reduce confusion with the \fBstate.sls\fP execution function
  266344. .IP \(bu 2
  266345. Fix various bugs in the \fBdig\fP module (\fI\%issue #10367\fP)
  266346. .IP \(bu 2
  266347. Add retry for query on certain EC2 status codes (\fI\%issue #10154\fP)
  266348. .IP \(bu 2
  266349. Fix various bugs in mongodb_user state module (\fI\%issue #10430\fP)
  266350. .IP \(bu 2
  266351. Fix permissions on \fB~/.salt_token\fP (\fI\%issue #10422\fP)
  266352. .IP \(bu 2
  266353. Add PyObjects support
  266354. .IP \(bu 2
  266355. Fix launchctl module crash with missing files
  266356. .IP \(bu 2
  266357. Fix \fBsaltutil.find_job\fP for Windows (\fI\%issue #10581\fP)
  266358. .IP \(bu 2
  266359. Fix OS detection for OpenSolaris (\fI\%issue #10601\fP)
  266360. .IP \(bu 2
  266361. Fix broken salt\-ssh key_deploy
  266362. .IP \(bu 2
  266363. Add support for multiline cron comments (\fI\%issue #10721\fP)
  266364. .IP \(bu 2
  266365. Fix timezone module for Arch (\fI\%issue #10789\fP)
  266366. .IP \(bu 2
  266367. Fix symlink support for \fBfile.recurse\fP (\fI\%issue #10809\fP)
  266368. .IP \(bu 2
  266369. Fix multi\-master bugs (\fI\%issue #10732\fP and \fI\%issue #10969\fP)
  266370. .IP \(bu 2
  266371. Fix file.patch to error when source file is unavailable (\fI\%issue #10380\fP)
  266372. .IP \(bu 2
  266373. Fix pkg to handle packages set as \fBpurge\fP in \fBpkg.installed\fP (\fI\%issue #10719\fP)
  266374. .IP \(bu 2
  266375. Add \fBzmqversion\fP grain
  266376. .IP \(bu 2
  266377. Fix highstate summary for masterless minions (\fI\%issue #10945\fP)
  266378. .IP \(bu 2
  266379. Fix \fBsaltutil.find_job\fP for 2014.1 masters talking to 0.17 minions (\fI\%issue #11020\fP)
  266380. .IP \(bu 2
  266381. Fix \fBfile.recurse\fP states with trailing slashes in source (\fI\%issue #11002\fP)
  266382. .IP \(bu 2
  266383. Fix \fBpkg states\fP to allow \fBpkgname.x86_64\fP (\fI\%issue #7306\fP)
  266384. .IP \(bu 2
  266385. Make \fBiptables states\fP set a default table for flush (\fI\%issue #11037\fP)
  266386. .IP \(bu 2
  266387. Added iptables \fB\-\-reject\-with\fP after final iptables call in \fBiptables states\fP (issue:\fI10757\fP)
  266388. .IP \(bu 2
  266389. Fix improper passing of “family” in \fBiptables states\fP (\fI\%issue #10774\fP)
  266390. .IP \(bu 2
  266391. Fix traceback in \fBiptables.insert\fP states (\fI\%issue #10988\fP)
  266392. .IP \(bu 2
  266393. Fix zombie processes (\fI\%issue #10867\fP and others)
  266394. .IP \(bu 2
  266395. Fix batch mode to obey \fB\-\-return\fP settings (\fI\%issue #9146\fP)
  266396. .IP \(bu 2
  266397. Fix localclient issue that was causing batch mode breakage (\fI\%issue #11094\fP, \fI\%issue #10470\fP, and others)
  266398. .IP \(bu 2
  266399. Multiple salt\-ssh fixes
  266400. .IP \(bu 2
  266401. FreeBSD: look in /usr/local/etc/salt for configuration by default, if installed using \fBpip \-\-editable\fP\&.
  266402. .IP \(bu 2
  266403. Add a \fBskip_suggestions\fP parameter to pkg.installed states which allows pre\-flight check to be skipped (\fI\%issue #11106\fP)
  266404. .IP \(bu 2
  266405. Fixed tag\-based gitfs fileserver environments regression (\fI\%issue #10956\fP)
  266406. .IP \(bu 2
  266407. Yum: fix cache of available pkgs not cleared when repos are changed (\fI\%issue #11001\fP)
  266408. .IP \(bu 2
  266409. Yum: fix for plugin\-provided repositories (i.e. RHN/Spacewalk) (\fI\%issue #11145\fP)
  266410. .IP \(bu 2
  266411. Fix regression in \fBchocolatey.bootstrap\fP (\fI\%issue #10541\fP)
  266412. .IP \(bu 2
  266413. Fix fail on unknown target in \fBjobs runner\fP (\fI\%issue #11151\fP)
  266414. .IP \(bu 2
  266415. 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)
  266416. .IP \(bu 2
  266417. Fix \fBtest=True\fP CLI override of config option (\fI\%issue #10877\fP)
  266418. .IP \(bu 2
  266419. Log sysctl key listing at loglevel TRACE (\fI\%issue #10931\fP)
  266420. .UNINDENT
  266421. .SS Salt 2014.1.10 Release Notes
  266422. .INDENT 0.0
  266423. .TP
  266424. .B release
  266425. 2014\-08\-01
  266426. .UNINDENT
  266427. .sp
  266428. \fBNOTE:\fP
  266429. .INDENT 0.0
  266430. .INDENT 3.5
  266431. Version 2014.1.9 contained a regression which caused inaccurate Salt version
  266432. detection, and thus was never packaged for general release. This version
  266433. contains the version detection fix, but is otherwise identical to 2014.1.9.
  266434. .UNINDENT
  266435. .UNINDENT
  266436. .sp
  266437. Version 2014.1.10 is another bugfix release for 2014.1.0\&. Changes include:
  266438. .INDENT 0.0
  266439. .IP \(bu 2
  266440. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266441. not correct.
  266442. .IP \(bu 2
  266443. Use the bootstrap script distributed with Salt instead of relying on an
  266444. external resource
  266445. .IP \(bu 2
  266446. Remove unused testing code
  266447. .IP \(bu 2
  266448. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266449. .IP \(bu 2
  266450. Use a randomized path for temporary files in a salt\-cloud deployment
  266451. .IP \(bu 2
  266452. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266453. deployment
  266454. .UNINDENT
  266455. .sp
  266456. Salt 2014.1.10 fixes security issues documented by CVE\-2014\-3563: "Insecure
  266457. tmp\-file creation in seed.py, salt\-ssh, and salt\-cloud." Upgrading is
  266458. recommended.
  266459. .SS Salt 2014.1.11 Release Notes
  266460. .INDENT 0.0
  266461. .TP
  266462. .B release
  266463. 2014\-08\-29
  266464. .UNINDENT
  266465. .sp
  266466. Version 2014.1.11 is another bugfix release for 2014.1.0\&. Changes include:
  266467. .INDENT 0.0
  266468. .IP \(bu 2
  266469. Fix for minion_id with byte\-order mark (BOM) (\fI\%issue #12296\fP)
  266470. .IP \(bu 2
  266471. Fix \fBrunas\fP deprecation in \fBat\fP module
  266472. .IP \(bu 2
  266473. Fix trailing slash befhavior for \fBfile.makedirs_\fP (\fI\%issue #14019\fP)
  266474. .IP \(bu 2
  266475. Fix chocolatey path (\fI\%issue #13870\fP)
  266476. .IP \(bu 2
  266477. Fix git_pillar infinite loop issues (\fI\%issue #14671\fP)
  266478. .IP \(bu 2
  266479. Fix json outputter \fBnull\fP case
  266480. .IP \(bu 2
  266481. Fix for minion error if one of multiple masters are down (\fI\%issue #14099\fP)
  266482. .UNINDENT
  266483. .SS Salt 2014.1.12 Release Notes
  266484. .INDENT 0.0
  266485. .TP
  266486. .B release
  266487. 2014\-10\-08
  266488. .UNINDENT
  266489. .sp
  266490. Version 2014.1.12 is another bugfix release for 2014.1.0\&. Changes include:
  266491. .INDENT 0.0
  266492. .IP \(bu 2
  266493. Fix \fBscp_file\fP always failing (which broke salt\-cloud) (\fI\%issue #16437\fP)
  266494. .IP \(bu 2
  266495. Fix regression in pillar in masterless (\fI\%issue #16210\fP, \fI\%issue #16416\fP,
  266496. \fI\%issue #16428\fP)
  266497. .UNINDENT
  266498. .SS Salt 2014.1.13 Release Notes
  266499. .INDENT 0.0
  266500. .TP
  266501. .B release
  266502. 2014\-10\-14
  266503. .UNINDENT
  266504. .sp
  266505. Version 2014.1.13 is another bugfix release for 2014.1.0\&. Changes include:
  266506. .INDENT 0.0
  266507. .IP \(bu 2
  266508. Fix \fBsftp_file\fP by checking the exit status code of scp (which broke salt\-cloud) (\fI\%issue #16599\fP)
  266509. .UNINDENT
  266510. .SS Salt 2014.1.2 Release Notes
  266511. .INDENT 0.0
  266512. .TP
  266513. .B release
  266514. 2014\-04\-15
  266515. .UNINDENT
  266516. .sp
  266517. Version 2014.1.2 is another bugfix release for 2014.1.0\&. The changes include:
  266518. .INDENT 0.0
  266519. .IP \(bu 2
  266520. Fix username detection when su\(aqed to root on FreeBSD (\fI\%issue #11628\fP)
  266521. .IP \(bu 2
  266522. Fix minionfs backend for file.recurse states
  266523. .IP \(bu 2
  266524. Fix 32\-bit packages of different arches than the CPU arch, on 32\-bit
  266525. RHEL/CentOS (\fI\%issue #11822\fP)
  266526. .IP \(bu 2
  266527. Fix bug with specifying alternate home dir on user creation (FreeBSD)
  266528. (\fI\%issue #11790\fP)
  266529. .IP \(bu 2
  266530. Don’t reload \fBsite\fP module on module refresh for MacOS
  266531. .IP \(bu 2
  266532. Fix regression with running execution functions in Pillar SLS
  266533. (\fI\%issue #11453\fP)
  266534. .IP \(bu 2
  266535. Fix some modules missing from Windows installer
  266536. .IP \(bu 2
  266537. Don’t log an error for yum commands that return nonzero exit status on
  266538. non\-failure (\fI\%issue #11645\fP)
  266539. .IP \(bu 2
  266540. Fix bug in rabbitmq state (\fI\%issue #8703\fP)
  266541. .IP \(bu 2
  266542. Fix missing ssh config options (\fI\%issue #10604\fP)
  266543. .IP \(bu 2
  266544. Fix top.sls ordering (\fI\%issue #10810\fP and \fI\%issue #11691\fP)
  266545. .IP \(bu 2
  266546. Fix \fBsalt\-key \-\-list all\fP (\fI\%issue #10982\fP)
  266547. .IP \(bu 2
  266548. Fix win_servermanager install/remove function (\fI\%issue #11038\fP)
  266549. .IP \(bu 2
  266550. Fix interaction with tokens when running commands as root (\fI\%issue #11223\fP)
  266551. .IP \(bu 2
  266552. Fix overstate bug with \fBfind_job\fP and \fB**kwargs\fP (\fI\%issue #10503\fP)
  266553. .IP \(bu 2
  266554. Fix \fBsaltenv\fP for \fBaptpkg.mod_repo\fP from \fBpkgrepo\fP state
  266555. .IP \(bu 2
  266556. Fix environment issue causing file caching problems (\fI\%issue #11189\fP)
  266557. .IP \(bu 2
  266558. Fix bug in \fB__parse_key\fP in registry state (\fI\%issue #11408\fP)
  266559. .IP \(bu 2
  266560. Add minion auth retry on rejection (\fI\%issue #10763\fP)
  266561. .IP \(bu 2
  266562. Fix publish_session updating the encryption key (\fI\%issue #11493\fP)
  266563. .IP \(bu 2
  266564. Fix for bad \fBAssertionError\fP raised by GitPython (\fI\%issue #11473\fP)
  266565. .IP \(bu 2
  266566. Fix \fBdebian_ip\fP to allow disabling and enabling networking on Ubuntu (\fI\%issue #11164\fP)
  266567. .IP \(bu 2
  266568. Fix potential memory leak caused by saved (and unused) events (\fI\%issue #11582\fP)
  266569. .IP \(bu 2
  266570. Fix exception handling in the MySQL module (\fI\%issue #11616\fP)
  266571. .IP \(bu 2
  266572. Fix environment\-related error (\fI\%issue #11534\fP)
  266573. .IP \(bu 2
  266574. Include \fBpsutil\fP on Windows
  266575. .IP \(bu 2
  266576. Add \fBfile.replace\fP and \fBfile.search\fP to Windows (\fI\%issue #11471\fP)
  266577. .IP \(bu 2
  266578. Add additional \fBfile\fP module helpers to Windows (\fI\%issue #11235\fP)
  266579. .IP \(bu 2
  266580. Add \fBpid\fP to netstat output on Windows (\fI\%issue #10782\fP)
  266581. .IP \(bu 2
  266582. Fix Windows not caching new versions of installers in winrepo (\fI\%issue #10597\fP)
  266583. .IP \(bu 2
  266584. Fix hardcoded md5 hashing
  266585. .IP \(bu 2
  266586. Fix kwargs in salt\-ssh (\fI\%issue #11609\fP)
  266587. .IP \(bu 2
  266588. Fix file backup timestamps (\fI\%issue #11745\fP)
  266589. .IP \(bu 2
  266590. Fix stacktrace on \fBsys.doc\fP with invalid eauth (\fI\%issue #11293\fP)
  266591. .IP \(bu 2
  266592. Fix \fBgit.latest\fP with \fBtest=True\fP (\fI\%issue #11595\fP)
  266593. .IP \(bu 2
  266594. Fix \fBfile.check_perms\fP hardcoded \fBfollow_symlinks\fP (\fI\%issue #11387\fP)
  266595. .IP \(bu 2
  266596. Fix certain \fBpkg\fP states for RHEL5/Cent5 machines (\fI\%issue #11719\fP)
  266597. .UNINDENT
  266598. .SS Salt 2014.1.3 Release Notes
  266599. .INDENT 0.0
  266600. .TP
  266601. .B release
  266602. 2014\-04\-15
  266603. .UNINDENT
  266604. .sp
  266605. Version 2014.1.3 is another bugfix release for 2014.1.0\&. It was created as a hotfix for a regression
  266606. found in 2014.1.2, which was not distributed. The only change made was as
  266607. follows:
  266608. .INDENT 0.0
  266609. .IP \(bu 2
  266610. Fix regression that caused \fBsaltutil.find_job\fP to fail, causing premature
  266611. terminations of salt CLI commands.
  266612. .UNINDENT
  266613. .sp
  266614. Changes in the not\-distributed 2014.1.2, also included in 2014.1.3:
  266615. .INDENT 0.0
  266616. .IP \(bu 2
  266617. Fix username detection when su\(aqed to root on FreeBSD (\fI\%issue #11628\fP)
  266618. .IP \(bu 2
  266619. Fix minionfs backend for file.recurse states
  266620. .IP \(bu 2
  266621. Fix 32\-bit packages of different arches than the CPU arch, on 32\-bit
  266622. RHEL/CentOS (\fI\%issue #11822\fP)
  266623. .IP \(bu 2
  266624. Fix bug with specifying alternate home dir on user creation (FreeBSD)
  266625. (\fI\%issue #11790\fP)
  266626. .IP \(bu 2
  266627. Don’t reload \fBsite\fP module on module refresh for MacOS
  266628. .IP \(bu 2
  266629. Fix regression with running execution functions in Pillar SLS
  266630. (\fI\%issue #11453\fP)
  266631. .IP \(bu 2
  266632. Fix some modules missing from Windows installer
  266633. .IP \(bu 2
  266634. Don’t log an error for yum commands that return nonzero exit status on
  266635. non\-failure (\fI\%issue #11645\fP)
  266636. .IP \(bu 2
  266637. Fix bug in rabbitmq state (\fI\%issue #8703\fP)
  266638. .IP \(bu 2
  266639. Fix missing ssh config options (\fI\%issue #10604\fP)
  266640. .IP \(bu 2
  266641. Fix top.sls ordering (\fI\%issue #10810\fP and \fI\%issue #11691\fP)
  266642. .IP \(bu 2
  266643. Fix \fBsalt\-key \-\-list all\fP (\fI\%issue #10982\fP)
  266644. .IP \(bu 2
  266645. Fix win_servermanager install/remove function (\fI\%issue #11038\fP)
  266646. .IP \(bu 2
  266647. Fix interaction with tokens when running commands as root (\fI\%issue #11223\fP)
  266648. .IP \(bu 2
  266649. Fix overstate bug with \fBfind_job\fP and \fB**kwargs\fP (\fI\%issue #10503\fP)
  266650. .IP \(bu 2
  266651. Fix \fBsaltenv\fP for \fBaptpkg.mod_repo\fP from \fBpkgrepo\fP state
  266652. .IP \(bu 2
  266653. Fix environment issue causing file caching problems (\fI\%issue #11189\fP)
  266654. .IP \(bu 2
  266655. Fix bug in \fB__parse_key\fP in registry state (\fI\%issue #11408\fP)
  266656. .IP \(bu 2
  266657. Add minion auth retry on rejection (\fI\%issue #10763\fP)
  266658. .IP \(bu 2
  266659. Fix publish_session updating the encryption key (\fI\%issue #11493\fP)
  266660. .IP \(bu 2
  266661. Fix for bad \fBAssertionError\fP raised by GitPython (\fI\%issue #11473\fP)
  266662. .IP \(bu 2
  266663. Fix \fBdebian_ip\fP to allow disabling and enabling networking on Ubuntu (\fI\%issue #11164\fP)
  266664. .IP \(bu 2
  266665. Fix potential memory leak caused by saved (and unused) events (\fI\%issue #11582\fP)
  266666. .IP \(bu 2
  266667. Fix exception handling in the MySQL module (\fI\%issue #11616\fP)
  266668. .IP \(bu 2
  266669. Fix environment\-related error (\fI\%issue #11534\fP)
  266670. .IP \(bu 2
  266671. Include \fBpsutil\fP on Windows
  266672. .IP \(bu 2
  266673. Add \fBfile.replace\fP and \fBfile.search\fP to Windows (\fI\%issue #11471\fP)
  266674. .IP \(bu 2
  266675. Add additional \fBfile\fP module helpers to Windows (\fI\%issue #11235\fP)
  266676. .IP \(bu 2
  266677. Add \fBpid\fP to netstat output on Windows (\fI\%issue #10782\fP)
  266678. .IP \(bu 2
  266679. Fix Windows not caching new versions of installers in winrepo (\fI\%issue #10597\fP)
  266680. .IP \(bu 2
  266681. Fix hardcoded md5 hashing
  266682. .IP \(bu 2
  266683. Fix kwargs in salt\-ssh (\fI\%issue #11609\fP)
  266684. .IP \(bu 2
  266685. Fix file backup timestamps (\fI\%issue #11745\fP)
  266686. .IP \(bu 2
  266687. Fix stacktrace on \fBsys.doc\fP with invalid eauth (\fI\%issue #11293\fP)
  266688. .IP \(bu 2
  266689. Fix \fBgit.latest\fP with \fBtest=True\fP (\fI\%issue #11595\fP)
  266690. .IP \(bu 2
  266691. Fix \fBfile.check_perms\fP hardcoded \fBfollow_symlinks\fP (\fI\%issue #11387\fP)
  266692. .IP \(bu 2
  266693. Fix certain \fBpkg\fP states for RHEL5/Cent5 machines (\fI\%issue #11719\fP)
  266694. .UNINDENT
  266695. .SS Salt 2014.1.4 Release Notes
  266696. .INDENT 0.0
  266697. .TP
  266698. .B release
  266699. 2014\-05\-05
  266700. .UNINDENT
  266701. .sp
  266702. Version 2014.1.4 is another bugfix release for 2014.1.0\&. Changes include:
  266703. .INDENT 0.0
  266704. .IP \(bu 2
  266705. Fix setup.py dependency issue (\fI\%issue #12031\fP)
  266706. .IP \(bu 2
  266707. Fix handling for IOErrors under certain circumstances (\fI\%issue #11783\fP and
  266708. \fI\%issue #11853\fP)
  266709. .IP \(bu 2
  266710. Fix fatal exception when \fB/proc/1/cgroup\fP is not readable (\fI\%issue #11619\fP)
  266711. .IP \(bu 2
  266712. Fix os grains for OpenSolaris (\fI\%issue #11907\fP)
  266713. .IP \(bu 2
  266714. Fix \fBlvs.zero\fP module argument pass\-through (\fI\%issue #9001\fP)
  266715. .IP \(bu 2
  266716. Fix bug in \fBdebian_ip\fP interaction with \fBnetwork.system\fP state (\fI\%issue #11164\fP)
  266717. .IP \(bu 2
  266718. Remove bad binary package verification code (\fI\%issue #12177\fP)
  266719. .IP \(bu 2
  266720. Fix traceback in solaris package installation (\fI\%issue #12237\fP)
  266721. .IP \(bu 2
  266722. Fix \fBfile.directory\fP state symlink handling
  266723. (\fI\%issue #12209\fP)
  266724. .IP \(bu 2
  266725. Remove \fBexternal_ip\fP grain
  266726. .IP \(bu 2
  266727. Fix \fBfile.managed\fP makedirs issues
  266728. (\fI\%issue #10446\fP)
  266729. .IP \(bu 2
  266730. Fix hang on non\-existent Windows drive letter for \fBfile\fP module (\fI\%issue #9880\fP)
  266731. .IP \(bu 2
  266732. Fix salt minion caching all users on the server (\fI\%issue #9743\fP)
  266733. .IP \(bu 2
  266734. Add strftime formatting for \fBps.boot_time\fP
  266735. (\fI\%issue #12428\fP)
  266736. .UNINDENT
  266737. .SS Salt 2014.1.5 Release Notes
  266738. .INDENT 0.0
  266739. .TP
  266740. .B release
  266741. 2014\-06\-11
  266742. .UNINDENT
  266743. .sp
  266744. Version 2014.1.5 is another bugfix release for 2014.1.0\&. Changes include:
  266745. .INDENT 0.0
  266746. .IP \(bu 2
  266747. Add function for finding cached job on the minion
  266748. .IP \(bu 2
  266749. Fix iptables save file location for Debian (\fI\%issue #11730\fP)
  266750. .IP \(bu 2
  266751. Fix for minion caching jobs when master is down
  266752. .IP \(bu 2
  266753. Bump default \fBsyndic_wait\fP to 5 to fix syndic\-related problems
  266754. (\fI\%issue #12262\fP)
  266755. .IP \(bu 2
  266756. Add OpenBSD, FreeBSD, and NetBSD support for \fBnetwork.netstat\fP
  266757. (\fI\%issue #12121\fP)
  266758. .IP \(bu 2
  266759. Fix false positive error in logs for \fBmakeconf\fP state (\fI\%issue #9762\fP)
  266760. .IP \(bu 2
  266761. Fix for yum \fBfromrepo\fP package installs when repo is disabled by default
  266762. (\fI\%issue #12466\fP)
  266763. .IP \(bu 2
  266764. Fix for extra blank lines in \fBfile.blockreplace\fP (\fI\%issue #12422\fP)
  266765. .IP \(bu 2
  266766. Fix grain detection for OpenVZ guests (\fI\%issue #11877\fP)
  266767. .IP \(bu 2
  266768. Fix \fBget_dns_servers\fP function for Windows \fBwin_dns_client\fP
  266769. .IP \(bu 2
  266770. Use system locale for ports package installations
  266771. .IP \(bu 2
  266772. Use correct stop/restart procedure for Debian networking in \fBdebian_ip\fP
  266773. (\fI\%issue #12614\fP)
  266774. .IP \(bu 2
  266775. Fix for \fBcmd_iter\fP/\fBcmd_iter_no_block\fP blocking issues (\fI\%issue #12617\fP)
  266776. .IP \(bu 2
  266777. Fix traceback when syncing custom types (\fI\%issue #12883\fP)
  266778. .IP \(bu 2
  266779. Fix cleaning directory symlinks in \fBfile.directory\fP
  266780. .IP \(bu 2
  266781. Add performance optimizations for \fBsaltutil.sync_all\fP and
  266782. \fBstate.highstate\fP
  266783. .IP \(bu 2
  266784. Fix possible error in \fBsaltutil.running\fP
  266785. .IP \(bu 2
  266786. Fix for kmod modules with dashes (\fI\%issue #13239\fP)
  266787. .IP \(bu 2
  266788. Fix possible race condition for Windows minions in state module reloading
  266789. (\fI\%issue #12370\fP)
  266790. .IP \(bu 2
  266791. Fix bug with roster for \fBpasswd\fP option that is loaded as a non\-string object
  266792. (\fI\%issue #13249\fP)
  266793. .IP \(bu 2
  266794. Keep duplicate version numbers from showing up in \fBpkg.list_pkgs\fP output
  266795. .IP \(bu 2
  266796. Fixes for Jinja renderer, timezone \fBmodule\fP/\fBstate\fP (\fI\%issue #12724\fP)
  266797. .IP \(bu 2
  266798. Fix timedatectl parsing for systemd>=210 (\fI\%issue #12728\fP)
  266799. .IP \(bu 2
  266800. Fix \fBsaltenv\fP being written to YUM repo config files (\fI\%issue #12887\fP)
  266801. .IP \(bu 2
  266802. Removed the deprecated external nodes classifier (originally accessible by
  266803. setting a value for external_nodes in the master configuration file). Note
  266804. that this functionality has been marked deprecated for some time and was
  266805. replaced by the more general master tops
  266806. system.
  266807. .IP \(bu 2
  266808. More robust escaping of ldap filter strings.
  266809. .IP \(bu 2
  266810. Fix trailing slash in \fBgitfs_root\fP causing files not to be
  266811. available (\fI\%issue #13185\fP)
  266812. .UNINDENT
  266813. .SS Salt 2014.1.6 Release Notes
  266814. .INDENT 0.0
  266815. .TP
  266816. .B release
  266817. 2014\-07\-08
  266818. .UNINDENT
  266819. .sp
  266820. Version 2014.1.6 is another bugfix release for 2014.1.0\&. Changes include:
  266821. .INDENT 0.0
  266822. .IP \(bu 2
  266823. Fix extra \fBiptables \-\-help\fP output (Sorry!) (\fI\%issue #13648\fP,
  266824. \fI\%issue #13507\fP, \fI\%issue #13527\fP, \fI\%issue #13607\fP)
  266825. .IP \(bu 2
  266826. Fix \fBmount.active\fP for Solaris
  266827. .IP \(bu 2
  266828. Fix support for \fBallow\-hotplug\fP statement in debian_ip network module
  266829. .IP \(bu 2
  266830. Add sqlite3 to esky builds
  266831. .IP \(bu 2
  266832. Fix \fBjobs.active\fP output (\fI\%issue #9526\fP)
  266833. .IP \(bu 2
  266834. Fix the \fBvirtual\fP grain for Xen (\fI\%issue #13534\fP)
  266835. .IP \(bu 2
  266836. Fix _ext_nodes unavailable on master (\fI\%issue #13535\fP)
  266837. .IP \(bu 2
  266838. Fix eauth for batch mode (\fI\%issue #9605\fP)
  266839. .IP \(bu 2
  266840. Fix force\-related issues with \fBtomcat\fP support (\fI\%issue #12889\fP)
  266841. .IP \(bu 2
  266842. Fix KeyError when cloud mapping
  266843. .IP \(bu 2
  266844. Fix salt\-minion restart loop in Windows (\fI\%issue #12086\fP)
  266845. .IP \(bu 2
  266846. Fix detection of \fBservice\fP virtual module on Fedora minions
  266847. .IP \(bu 2
  266848. Fix traceback with missing ipv4 grain (\fI\%issue #13838\fP)
  266849. .IP \(bu 2
  266850. Fix issue in roots backend with invalid data in mtime_map (\fI\%issue #13836\fP)
  266851. .IP \(bu 2
  266852. Fix traceback in \fBjobs.active\fP (\fI\%issue #11151\fP)
  266853. .IP \(bu 2
  266854. Fix \fBmaster_tops\fP and \fB_ext_nodes\fP issue (\fI\%issue #13535\fP, \fI\%issue #13673\fP)
  266855. .UNINDENT
  266856. .SS Salt 2014.1.7 Release Notes
  266857. .INDENT 0.0
  266858. .TP
  266859. .B release
  266860. 2014\-07\-09
  266861. .UNINDENT
  266862. .sp
  266863. Version 2014.1.7 is another bugfix release for 2014.1.0\&. Changes include:
  266864. .INDENT 0.0
  266865. .IP \(bu 2
  266866. Fix batch mode regression (\fI\%issue #14046\fP)
  266867. .UNINDENT
  266868. .sp
  266869. This release was a hotfix release for the regression listed above which was
  266870. present in the 2014.1.6 release. The changes included in 2014.1.6 are listed
  266871. below:
  266872. .INDENT 0.0
  266873. .IP \(bu 2
  266874. Fix extra \fBiptables \-\-help\fP output (Sorry!) (\fI\%issue #13648\fP,
  266875. \fI\%issue #13507\fP, \fI\%issue #13527\fP, \fI\%issue #13607\fP)
  266876. .IP \(bu 2
  266877. Fix \fBmount.active\fP for Solaris
  266878. .IP \(bu 2
  266879. Fix support for \fBallow\-hotplug\fP statement in debian_ip network module
  266880. .IP \(bu 2
  266881. Add sqlite3 to esky builds
  266882. .IP \(bu 2
  266883. Fix \fBjobs.active\fP output (\fI\%issue #9526\fP)
  266884. .IP \(bu 2
  266885. Fix the \fBvirtual\fP grain for Xen (\fI\%issue #13534\fP)
  266886. .IP \(bu 2
  266887. Fix eauth for batch mode (\fI\%issue #9605\fP)
  266888. .IP \(bu 2
  266889. Fix force\-related issues with \fBtomcat\fP support (\fI\%issue #12889\fP)
  266890. .IP \(bu 2
  266891. Fix KeyError when cloud mapping
  266892. .IP \(bu 2
  266893. Fix salt\-minion restart loop in Windows (\fI\%issue #12086\fP)
  266894. .IP \(bu 2
  266895. Fix detection of \fBservice\fP virtual module on Fedora minions
  266896. .IP \(bu 2
  266897. Fix traceback with missing ipv4 grain (\fI\%issue #13838\fP)
  266898. .IP \(bu 2
  266899. Fix issue in roots backend with invalid data in mtime_map (\fI\%issue #13836\fP)
  266900. .IP \(bu 2
  266901. Fix traceback in \fBjobs.active\fP (\fI\%issue #11151\fP)
  266902. .IP \(bu 2
  266903. Fix \fBmaster_tops\fP and \fB_ext_nodes\fP issue (\fI\%issue #13535\fP, \fI\%issue #13673\fP)
  266904. .UNINDENT
  266905. .SS Salt 2014.1.8 Release Notes
  266906. .INDENT 0.0
  266907. .TP
  266908. .B release
  266909. 2014\-07\-30
  266910. .UNINDENT
  266911. .sp
  266912. \fBNOTE:\fP
  266913. .INDENT 0.0
  266914. .INDENT 3.5
  266915. This release contained a regression which caused inaccurate Salt version
  266916. detection, and thus was never packaged for general release. Please use
  266917. version 2014.1.10 instead.
  266918. .UNINDENT
  266919. .UNINDENT
  266920. .sp
  266921. Version 2014.1.8 is another bugfix release for 2014.1.0\&. Changes include:
  266922. .INDENT 0.0
  266923. .IP \(bu 2
  266924. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266925. not correct.
  266926. .IP \(bu 2
  266927. Use the bootstrap script distributed with Salt instead of relying on an
  266928. external resource
  266929. .IP \(bu 2
  266930. Remove unused testing code
  266931. .IP \(bu 2
  266932. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266933. .IP \(bu 2
  266934. Use a randomized path for temporary files in a salt\-cloud deployment
  266935. .IP \(bu 2
  266936. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266937. deployment
  266938. .UNINDENT
  266939. .SS Salt 2014.1.9 Release Notes
  266940. .INDENT 0.0
  266941. .TP
  266942. .B release
  266943. 2014\-07\-31
  266944. .UNINDENT
  266945. .sp
  266946. \fBNOTE:\fP
  266947. .INDENT 0.0
  266948. .INDENT 3.5
  266949. This release contained a regression which caused inaccurate Salt version
  266950. detection, and thus was never packaged for general release. Please use
  266951. version 2014.1.10 instead.
  266952. .UNINDENT
  266953. .UNINDENT
  266954. .sp
  266955. \fBNOTE:\fP
  266956. .INDENT 0.0
  266957. .INDENT 3.5
  266958. Version 2014.1.8 contained a regression which caused inaccurate Salt version
  266959. detection, and thus was never packaged for general release. This version
  266960. contains the version detection fix, but is otherwise identical to 2014.1.8.
  266961. .UNINDENT
  266962. .UNINDENT
  266963. .sp
  266964. Version 2014.1.9 is another bugfix release for 2014.1.0\&. Changes include:
  266965. .INDENT 0.0
  266966. .IP \(bu 2
  266967. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266968. not correct.
  266969. .IP \(bu 2
  266970. Use the bootstrap script distributed with Salt instead of relying on an
  266971. external resource
  266972. .IP \(bu 2
  266973. Remove unused testing code
  266974. .IP \(bu 2
  266975. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266976. .IP \(bu 2
  266977. Use a randomized path for temporary files in a salt\-cloud deployment
  266978. .IP \(bu 2
  266979. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266980. deployment
  266981. .UNINDENT
  266982. .SS Salt 0.10.0 Release Notes
  266983. .INDENT 0.0
  266984. .TP
  266985. .B release
  266986. 2012\-06\-16
  266987. .UNINDENT
  266988. .sp
  266989. 0.10.0 has arrived! This release comes with MANY bug fixes, and new
  266990. capabilities which greatly enhance performance and reliability. This
  266991. release is primarily a bug fix release with many new tests and many repaired
  266992. bugs. This release also introduces a few new key features which were brought
  266993. in primarily to repair bugs and some limitations found in some of the
  266994. components of the original architecture.
  266995. .SS Major Features
  266996. .SS Event System
  266997. .sp
  266998. The Salt Master now comes equipped with a new event system. This event system
  266999. has replaced some of the back end of the Salt client and offers the beginning of
  267000. a system which will make plugging external applications into Salt. The event
  267001. system relies on a local ZeroMQ publish socket and other processes can connect
  267002. to this socket and listen for events. The new events can be easily managed via
  267003. Salt\(aqs event library.
  267004. .SS Unprivileged User Updates
  267005. .sp
  267006. Some enhancements have been added to Salt for running as a user other than
  267007. root. These new additions should make switching the user that the Salt Master
  267008. is running as very painless, simply change the \fBuser\fP option in the master
  267009. configuration and restart the master, Salt will take care of all of the
  267010. particulars for you.
  267011. .SS Peer Runner Execution
  267012. .sp
  267013. Salt has long had the peer communication system used to allow minions to send
  267014. commands via the salt master. 0.10.0 adds a new capability here, now the
  267015. master can be configured to allow for minions to execute Salt runners via
  267016. the \fBpeer_run\fP option in the salt master configuration.
  267017. .SS YAML Parsing Updates
  267018. .sp
  267019. In the past the YAML parser for sls files would return the incorrect numbers
  267020. when the file mode was set with a preceding 0. The YAML parser used in Salt
  267021. has been modified to no longer convert these number into octal but to keep
  267022. them as the correct value so that sls files can be a little cleaner to write.
  267023. .SS State Call Data Files
  267024. .sp
  267025. It was requested that the minion keep a local cache of the most recent executed
  267026. state run. This has been added and now with state runs the data is stored in a
  267027. msgpack file in the minion\(aqs cachedir.
  267028. .SS Turning Off the Job Cache
  267029. .sp
  267030. A new option has been added to the master configuration file. In previous
  267031. releases the Salt client would look over the Salt job cache to read in
  267032. the minion return data. With the addition of the event system the Salt client
  267033. can now watch for events directly from the master worker processes.
  267034. .sp
  267035. This means that the job cache is no longer a hard requirement. Keep in mind
  267036. though, that turning off the job cache means that historic job execution data
  267037. cannot be retrieved.
  267038. .SS Test Updates
  267039. .SS Minion Swarms Are Faster
  267040. .sp
  267041. To continue our efforts with testing Salt\(aqs ability to scale the minionswarm
  267042. script has been updated. The minionswarm can now start up minions much faster
  267043. than it could before and comes with a new feature allowing modules to be
  267044. disabled, thus lowering the minion\(aqs footprint when making a swarm. These new
  267045. updates have allows us to test
  267046. .INDENT 0.0
  267047. .INDENT 3.5
  267048. .sp
  267049. .nf
  267050. .ft C
  267051. # python minionswarm.py \-m 20 \-\-master salt\-master
  267052. .ft P
  267053. .fi
  267054. .UNINDENT
  267055. .UNINDENT
  267056. .SS Many Fixes
  267057. .sp
  267058. To get a good idea for the number of bugfixes this release offers take a look
  267059. at the closed tickets for 0.10.0, this is a very substantial update:
  267060. .sp
  267061. \fI\%https://github.com/saltstack/salt/issues?milestone=12&state=closed\fP
  267062. .SS Master and Minion Stability Fixes
  267063. .sp
  267064. As Salt deployments grow new ways to break Salt are discovered. 0.10.0 comes
  267065. with a number of fixes for the minions and master greatly improving Salt
  267066. stability.
  267067. .SS Salt 0.10.1 Release Notes
  267068. .INDENT 0.0
  267069. .TP
  267070. .B release
  267071. 2012\-06\-19
  267072. .UNINDENT
  267073. .SS Salt 0.10.2 Release Notes
  267074. .INDENT 0.0
  267075. .TP
  267076. .B release
  267077. 2012\-07\-30
  267078. .UNINDENT
  267079. .sp
  267080. 0.10.2 is out! This release comes with enhancements to the pillar interface,
  267081. cleaner ways to access the salt\-call capabilities in the API, minion data
  267082. caching and the event system has been added to salt minions.
  267083. .sp
  267084. There have also been updates to the ZeroMQ functions, many more tests
  267085. (thanks to sponsors, the code sprint and many contributors) and a swath
  267086. of bug fixes.
  267087. .SS Major Features
  267088. .SS Ext Pillar Modules
  267089. .sp
  267090. The ranks of available Salt modules directories sees a new member in 0.10.2.
  267091. With the popularity of pillar a higher demand has arisen for \fBext_pillar\fP
  267092. interfaces to be more like regular Salt module additions. Now ext_pillar
  267093. interfaces can be added in the same way as other modules, just drop it into
  267094. the pillar directory in the salt source.
  267095. .SS Minion Events
  267096. .sp
  267097. In 0.10.0 an event system was added to the Salt master. 0.10.2 adds the event
  267098. system to the minions as well. Now event can be published on a local minion
  267099. as well.
  267100. .sp
  267101. The minions can also send events back up to the master. This means that Salt is
  267102. able to communicate individual events from the minions back up to the Master
  267103. which are not associated with command.
  267104. .SS Minion Data Caching
  267105. .sp
  267106. When pillar was introduced the landscape for available data was greatly
  267107. enhanced. The minion\(aqs began sending grain data back to the master on a
  267108. regular basis.
  267109. .sp
  267110. The new config option on the master called \fBminion_data_cache\fP instructs the
  267111. Salt master to maintain a cache of the minion\(aqs grains and pillar data in the
  267112. cachedir. This option is turned off by default to avoid hitting the disk more,
  267113. but when enabled the cache is used to make grain matching from the salt command
  267114. more powerful, since the minions that will match can be predetermined.
  267115. .SS Backup Files
  267116. .sp
  267117. By default all files replaced by the file.managed and file.recurse states we
  267118. simply deleted. 0.10.2 adds a new option. By setting the backup option to
  267119. \fBminion\fP the files are backed up before they are replaced.
  267120. .sp
  267121. The backed up files are located in the cachedir under the file_backup
  267122. directory. On a default system this will be at:
  267123. \fB/var/cache/salt/file_backup\fP
  267124. .SS Configuration files
  267125. .sp
  267126. \fBsalt\-master\fP and \fBsalt\-minion\fP automatically load additional configuration
  267127. files from \fBmaster.d/*.conf\fP respective \fBminion.d/*.conf\fP where
  267128. \fBmaster.d\fP/\fBminion.d\fP is a directory in the same directory as the main
  267129. configuration file.
  267130. .SS Salt Key Verification
  267131. .sp
  267132. A number of users complained that they had inadvertently deleted the wrong salt
  267133. authentication keys. 0.10.2 now displays what keys are going to be deleted
  267134. and verifies that they are the keys that are intended for deletion.
  267135. .SS Key auto\-signing
  267136. .sp
  267137. If \fBautosign_file\fP is specified in the configuration file incoming keys
  267138. will be compared to the list of keynames in \fBautosign_file\fP\&. Regular
  267139. expressions as well as globbing is supported.
  267140. .sp
  267141. The file must only be writable by the user otherwise the file will be
  267142. ignored. To relax the permission and allow group write access set the
  267143. \fBpermissive_pki_access\fP option.
  267144. .SS Module changes
  267145. .SS Improved OpenBSD support
  267146. .sp
  267147. New modules for managing services and packages were provided by Joshua
  267148. Elsasser to further improve the support for OpenBSD.
  267149. .sp
  267150. Existing modules like the \fIdisk\fP module were also improved to support
  267151. OpenBSD.
  267152. .SS SQL Modules
  267153. .sp
  267154. The MySQL and PostgreSQL modules have both received a number of additions thanks
  267155. to the work of Avi Marcus and Roman Imankulov.
  267156. .SS ZFS Support on FreeBSD
  267157. .sp
  267158. A new ZFS module has been added by Kurtis Velarde for FreeBSD supporting
  267159. various ZFS operations like creating, extending or removing zpools.
  267160. .SS Augeas
  267161. .sp
  267162. A new Augeas module by Ulrich Dangel for editing and verifying config files.
  267163. .SS Native Debian Service module
  267164. .sp
  267165. The support for the Debian was further improved with an new service module
  267166. for Debian by Ahmad Khayyat supporting \fIdisable\fP and \fIenable\fP\&.
  267167. .SS Cassandra
  267168. .sp
  267169. Cassandra support has been added by Adam Garside. Currently only
  267170. status and diagnostic information are supported.
  267171. .SS Networking
  267172. .sp
  267173. The networking support for \fIRHEL\fP has been improved and supports bonding
  267174. support as well as zeroconf configuration.
  267175. .SS Monit
  267176. .sp
  267177. Basic monit support by Kurtis Velarde to control services via monit.
  267178. .SS nzbget
  267179. .sp
  267180. Basic support for controlling nzbget by Joseph Hall
  267181. .SS Bluetooth
  267182. .sp
  267183. Baisc \fBbluez\fP support for managing and controlling Bluetooth devices.
  267184. Supports scanning as well as pairing/unpairing by Joseph Hall.
  267185. .SS Test Updates
  267186. .SS Consistency Testing
  267187. .sp
  267188. Another testing script has been added. A bug was found in pillar when many
  267189. minions generated pillar data at the same time. The new \fBconsist.py\fP script
  267190. is the tests directory was created to reproduce bugs where data should always
  267191. be consistent.
  267192. .SS Many Fixes
  267193. .sp
  267194. To get a good idea for the number of bugfixes this release offers take a look
  267195. at the closed tickets for 0.10.2, this is a very substantial update:
  267196. .sp
  267197. \fI\%https://github.com/saltstack/salt/issues?milestone=24&page=1&state=closed\fP
  267198. .SS Master and Minion Stability Fixes
  267199. .sp
  267200. As Salt deployments grow new ways to break Salt are discovered. 0.10.2 comes
  267201. with a number of fixes for the minions and master greatly improving Salt
  267202. stability.
  267203. .SS Salt 0.10.3 Release Notes
  267204. .INDENT 0.0
  267205. .TP
  267206. .B release
  267207. 2012\-09\-30
  267208. .UNINDENT
  267209. .sp
  267210. The latest taste of Salt has come, this release has many fixes and feature
  267211. additions. Modifications have been made to make ZeroMQ connections more
  267212. reliable, the beginning of the ACL system is in place, a new command line
  267213. parsing system has been added, dynamic module distribution has become more
  267214. environment aware, the new \fImaster_finger\fP option and many more!
  267215. .SS Major Features
  267216. .SS ACL System
  267217. .sp
  267218. The new ACL system has been introduced. The ACL system allows for system users
  267219. other than root to execute salt commands. Users can be allowed to execute
  267220. specific commands in the same way that minions are opened up to the peer
  267221. system.
  267222. .sp
  267223. The configuration value to open up the ACL system is called \fBclient_acl\fP
  267224. and is configured like so:
  267225. .INDENT 0.0
  267226. .INDENT 3.5
  267227. .sp
  267228. .nf
  267229. .ft C
  267230. client_acl:
  267231. fred:
  267232. \- test..*
  267233. \- pkg.list_pkgs
  267234. .ft P
  267235. .fi
  267236. .UNINDENT
  267237. .UNINDENT
  267238. .sp
  267239. Where \fIfred\fP is allowed access to functions in the test module and to the
  267240. \fBpkg.list_pkgs\fP function.
  267241. .SS Master Finger Option
  267242. .sp
  267243. The \fImaster_finger\fP option has been added to improve the security of minion
  267244. provisioning. The \fImaster_finger\fP option allows for the fingerprint of the
  267245. master public key to be set in the configuration file to double verify that the
  267246. master is valid. This option was added in response to a motivation to
  267247. pre\-authenticate the master when provisioning new minions to help prevent
  267248. man in the middle attacks in some situations.
  267249. .SS Salt Key Fingerprint Generation
  267250. .sp
  267251. The ability to generate fingerprints of keys used by Salt has been added to
  267252. \fBsalt\-key\fP\&. The new option \fIfinger\fP accepts the name of the key to generate
  267253. and display a fingerprint for.
  267254. .INDENT 0.0
  267255. .INDENT 3.5
  267256. .sp
  267257. .nf
  267258. .ft C
  267259. salt\-key \-F master
  267260. .ft P
  267261. .fi
  267262. .UNINDENT
  267263. .UNINDENT
  267264. .sp
  267265. Will display the fingerprints for the master public and private keys.
  267266. .SS Parsing System
  267267. .sp
  267268. Pedro Algavio, aka s0undt3ch, has added a substantial update to the command
  267269. line parsing system that makes the help message output much cleaner and easier
  267270. to search through. Salt parsers now have \fI\-\-versions\-report\fP besides usual
  267271. \fI\-\-version\fP info which you can provide when reporting any issues found.
  267272. .SS Key Generation
  267273. .sp
  267274. We have reduced the requirements needed for \fIsalt\-key\fP to generate minion keys.
  267275. You\(aqre no longer required to have salt configured and its common directories
  267276. created just to generate keys. This might prove useful if you\(aqre batch creating
  267277. keys to pre\-load on minions.
  267278. .SS Startup States
  267279. .sp
  267280. A few configuration options have been added which allow for states to be run
  267281. when the minion daemon starts. This can be a great advantage when deploying
  267282. with Salt because the minion can apply states right when it first runs. To
  267283. use startup states set the \fBstartup_states\fP configuration option on the
  267284. minion to \fIhighstate\fP\&.
  267285. .SS New Exclude Declaration
  267286. .sp
  267287. Some users have asked about adding the ability to ensure that other sls files
  267288. or ids are excluded from a state run. The exclude statement will delete all of
  267289. the data loaded from the specified sls file or will delete the specified id:
  267290. .INDENT 0.0
  267291. .INDENT 3.5
  267292. .sp
  267293. .nf
  267294. .ft C
  267295. exclude:
  267296. \- sls: http
  267297. \- id: /etc/vimrc
  267298. .ft P
  267299. .fi
  267300. .UNINDENT
  267301. .UNINDENT
  267302. .SS Max Open Files
  267303. .sp
  267304. While we\(aqre currently unable to properly handle ZeroMQ\(aqs abort signals when the
  267305. max open files is reached, due to the way that\(aqs handled on ZeroMQ\(aqs, we have
  267306. minimized the chances of this happening without at least warning the user.
  267307. .SS More State Output Options
  267308. .sp
  267309. Some major changes have been made to the state output system. In the past state
  267310. return data was printed in a very verbose fashion and only states that failed
  267311. or made changes were printed by default. Now two options can be passed to the
  267312. master and minion configuration files to change the behavior of the state
  267313. output. State output can be set to verbose (default) or non\-verbose with the
  267314. \fBstate_verbose\fP option:
  267315. .INDENT 0.0
  267316. .INDENT 3.5
  267317. .sp
  267318. .nf
  267319. .ft C
  267320. state_verbose: False
  267321. .ft P
  267322. .fi
  267323. .UNINDENT
  267324. .UNINDENT
  267325. .sp
  267326. It is noteworthy that the state_verbose option used to be set to \fIFalse\fP by
  267327. default but has been changed to \fITrue\fP by default in 0.10.3 due to many
  267328. requests for the change.
  267329. .sp
  267330. Te next option to be aware of new and called \fBstate_output\fP\&. This option
  267331. allows for the state output to be set to \fIfull\fP (default) or \fIterse\fP\&.
  267332. .sp
  267333. The \fIfull\fP output is the standard state output, but the new \fIterse\fP output
  267334. will print only one line per state making the output much easier to follow when
  267335. executing a large state system.
  267336. .INDENT 0.0
  267337. .INDENT 3.5
  267338. .sp
  267339. .nf
  267340. .ft C
  267341. state_output: terse
  267342. .ft P
  267343. .fi
  267344. .UNINDENT
  267345. .UNINDENT
  267346. .SS \fIstate.file.append\fP Improvements
  267347. .sp
  267348. The salt state \fIfile.append()\fP tries \fInot\fP to append existing text. Previously
  267349. the matching check was being made line by line. While this kind of check might
  267350. be enough for most cases, if the text being appended was multi\-line, the check
  267351. would not work properly. This issue is now properly handled, the match is done
  267352. as a whole ignoring any white space addition or removal except inside commas.
  267353. For those thinking that, in order to properly match over multiple lines, salt
  267354. will load the whole file into memory, that\(aqs not true. For most cases this is
  267355. not important but an erroneous order to read a 4GB file, if not properly
  267356. handled, like salt does, could make salt chew that amount of memory. Salt has
  267357. a buffered file reader which will keep in memory a maximum of 256KB and
  267358. iterates over the file in chunks of 32KB to test for the match, more than
  267359. enough, if not, explain your usage on a ticket. With this change, also
  267360. \fIsalt.modules.file.contains()\fP, \fIsalt.modules.file.contains_regex()\fP,
  267361. \fIsalt.modules.file.contains_glob()\fP and \fIsalt.utils.find\fP now do the searching
  267362. and/or matching using the buffered chunks approach explained above.
  267363. .sp
  267364. Two new keyword arguments were also added, \fImakedirs\fP, and \fIsource\fP\&.
  267365. The first, \fImakedirs\fP will create the necessary directories in order to append
  267366. to the specified file, of course, it only applies if we\(aqre trying to append to
  267367. a non\-existing file on a non\-existing directory:
  267368. .INDENT 0.0
  267369. .INDENT 3.5
  267370. .sp
  267371. .nf
  267372. .ft C
  267373. /tmp/salttest/file\-append\-makedirs:
  267374. file.append:
  267375. text: foo
  267376. makedirs: True
  267377. .ft P
  267378. .fi
  267379. .UNINDENT
  267380. .UNINDENT
  267381. .sp
  267382. The second, \fIsource\fP, allows one to append the contents of a file instead of
  267383. specifying the text.
  267384. .INDENT 0.0
  267385. .INDENT 3.5
  267386. .sp
  267387. .nf
  267388. .ft C
  267389. /tmp/salttest/file\-append\-source:
  267390. file.append:
  267391. \- source: salt://testfile
  267392. .ft P
  267393. .fi
  267394. .UNINDENT
  267395. .UNINDENT
  267396. .SS Security Fix
  267397. .sp
  267398. A timing vulnerability was uncovered in the code which decrypts the AES
  267399. messages sent over the network. This has been fixed and upgrading is
  267400. strongly recommended.
  267401. .SS Salt 0.10.4 Release Notes
  267402. .INDENT 0.0
  267403. .TP
  267404. .B release
  267405. 2012\-10\-23
  267406. .UNINDENT
  267407. .sp
  267408. Salt 0.10.4 is a monumental release for the Salt team, with two new module
  267409. systems, many additions to allow granular access to Salt, improved platform
  267410. support and much more.
  267411. .sp
  267412. This release is also exciting because we have been able to shorten the release
  267413. cycle back to under a month. We are working hard to keep up the aggressive pace
  267414. and look forward to having releases happen more frequently!
  267415. .sp
  267416. This release also includes a serious security fix and all users are very
  267417. strongly recommended to upgrade. As usual, upgrade the master first, and then
  267418. the minion to ensure that the process is smooth.
  267419. .SS Major Features
  267420. .SS External Authentication System
  267421. .sp
  267422. The new external authentication system allows for Salt to pass through
  267423. authentication to any authentication system to determine if a user has
  267424. permission to execute a Salt command. The Unix PAM system is the first
  267425. supported system with more to come!
  267426. .sp
  267427. The external authentication system allows for specific users to be granted
  267428. access to execute specific functions on specific minions. Access is configured
  267429. in the master configuration file, and uses the new access control system:
  267430. .INDENT 0.0
  267431. .INDENT 3.5
  267432. .sp
  267433. .nf
  267434. .ft C
  267435. external_auth:
  267436. pam:
  267437. thatch:
  267438. \- \(aqweb*\(aq:
  267439. \- test.*
  267440. \- network.*
  267441. .ft P
  267442. .fi
  267443. .UNINDENT
  267444. .UNINDENT
  267445. .sp
  267446. The configuration above allows the user \fIthatch\fP to execute functions in the
  267447. test and network modules on minions that match the web* target.
  267448. .SS Access Control System
  267449. .sp
  267450. All Salt systems can now be configured to grant access to non\-administrative
  267451. users in a granular way. The old configuration continues to work. Specific
  267452. functions can be opened up to specific minions from specific users in the case
  267453. of external auth and client ACLs, and for specific minions in the case of the
  267454. peer system.
  267455. .sp
  267456. Access controls are configured like this:
  267457. .INDENT 0.0
  267458. .INDENT 3.5
  267459. .sp
  267460. .nf
  267461. .ft C
  267462. client_acl:
  267463. fred:
  267464. \- web\e*:
  267465. \- pkg.list_pkgs
  267466. \- test.*
  267467. \- apache.*
  267468. .ft P
  267469. .fi
  267470. .UNINDENT
  267471. .UNINDENT
  267472. .SS Target by Network
  267473. .sp
  267474. A new matcher has been added to the system which allows for minions to be
  267475. targeted by network. This new matcher can be called with the \fI\-S\fP flag on the
  267476. command line and is available in all places that the matcher system is
  267477. available. Using it is simple:
  267478. .INDENT 0.0
  267479. .INDENT 3.5
  267480. .sp
  267481. .nf
  267482. .ft C
  267483. $ salt \-S \(aq192.168.1.0/24\(aq test.ping
  267484. $ salt \-S \(aq192.168.1.100\(aq test.ping
  267485. .ft P
  267486. .fi
  267487. .UNINDENT
  267488. .UNINDENT
  267489. .SS Nodegroup Nesting
  267490. .sp
  267491. Previously a nodegroup was limited by not being able to include another
  267492. nodegroup, this restraint has been lifted and now nodegroups will be expanded
  267493. within other nodegroups with the \fIN@\fP classifier.
  267494. .SS Salt Key Delete by Glob
  267495. .sp
  267496. The ability to delete minion keys by glob has been added to \fBsalt\-key\fP\&. To
  267497. delete all minion keys whose minion name starts with \(aqweb\(aq:
  267498. .INDENT 0.0
  267499. .INDENT 3.5
  267500. .sp
  267501. .nf
  267502. .ft C
  267503. $ salt\-key \-d \(aqweb*\(aq
  267504. .ft P
  267505. .fi
  267506. .UNINDENT
  267507. .UNINDENT
  267508. .SS Master Tops System
  267509. .sp
  267510. The \fIexternal_nodes\fP system has been upgraded to allow for modular subsystems
  267511. to be used to generate the top file data for a highstate run.
  267512. .sp
  267513. The \fIexternal_nodes\fP option still works but will be deprecated in the future in
  267514. favor of the new \fImaster_tops\fP option.
  267515. .sp
  267516. Example of using \fImaster_tops\fP:
  267517. .INDENT 0.0
  267518. .INDENT 3.5
  267519. .sp
  267520. .nf
  267521. .ft C
  267522. master_tops:
  267523. ext_nodes: cobbler\-external\-nodes
  267524. .ft P
  267525. .fi
  267526. .UNINDENT
  267527. .UNINDENT
  267528. .SS Next Level Solaris Support
  267529. .sp
  267530. A lot of work has been put into improved Solaris support by Romeo Theriault.
  267531. Packaging modules (pkgadd/pkgrm and pkgutil) and states, cron support and user
  267532. and group management have all been added and improved upon. These additions
  267533. along with SMF (Service Management Facility) service support and improved
  267534. Solaris grain detection in 0.10.3 add up to Salt becoming a great tool
  267535. to manage Solaris servers with.
  267536. .SS Security
  267537. .sp
  267538. A vulnerability in the security handshake was found and has been repaired, old
  267539. minions should be able to connect to a new master, so as usual, the master
  267540. should be updated first and then the minions.
  267541. .SS Pillar Updates
  267542. .sp
  267543. The pillar communication has been updated to add some extra levels of
  267544. verification so that the intended minion is the only one allowed to gather the
  267545. data. Once all minions and the master are updated to salt 0.10.4 please
  267546. activate pillar \fI2\fP by changing the \fIpillar_version\fP in the master config to
  267547. \fI2\fP\&. This will be set to \fI2\fP by default in a future release.
  267548. .SS Salt 0.10.5 Release Notes
  267549. .INDENT 0.0
  267550. .TP
  267551. .B release
  267552. 2012\-11\-15
  267553. .UNINDENT
  267554. .sp
  267555. Salt 0.10.5 is ready, and comes with some great new features. A few more
  267556. interfaces have been modularized, like the outputter system. The job cache
  267557. system has been made more powerful and can now store and retrieve jobs archived
  267558. in external databases. The returner system has been extended to allow minions
  267559. to easily retrieve data from a returner interface.
  267560. .sp
  267561. As usual, this is an exciting release, with many noteworthy additions!
  267562. .SS Major Features
  267563. .SS External Job Cache
  267564. .sp
  267565. The external job cache is a system which allows for a returner interface to
  267566. also act as a job cache. This system is intended to allow users to store
  267567. job information in a central location for longer periods of time and to make
  267568. the act of looking up information from jobs executed on other minions easier.
  267569. .sp
  267570. Currently the external job cache is supported via the mongo and redis
  267571. returners:
  267572. .INDENT 0.0
  267573. .INDENT 3.5
  267574. .sp
  267575. .nf
  267576. .ft C
  267577. ext_job_cache: redis
  267578. redis.host: salt
  267579. .ft P
  267580. .fi
  267581. .UNINDENT
  267582. .UNINDENT
  267583. .sp
  267584. Once the external job cache is turned on the new \fIret\fP module can be used on
  267585. the minions to retrieve return information from the job cache. This can be a
  267586. great way for minions to respond and react to other minions.
  267587. .SS OpenStack Additions
  267588. .sp
  267589. OpenStack integration with Salt has been moving forward at a blistering pace.
  267590. The new \fInova\fP, \fIglance\fP, and \fIkeystone\fP modules represent the beginning of
  267591. ongoing OpenStack integration.
  267592. .sp
  267593. The Salt team has had many conversations with core OpenStack developers and
  267594. is working on linking to OpenStack in powerful new ways.
  267595. .SS Wheel System
  267596. .sp
  267597. A new API was added to the Salt Master which allows the master to be managed
  267598. via an external API. This new system allows Salt API to easily hook into the
  267599. Salt Master and manage configs, modify the state tree, manage the pillar and
  267600. more. The main motivation for the wheel system is to enable features needed
  267601. in the upcoming web UI so users can manage the master just as easily as they
  267602. manage minions.
  267603. .sp
  267604. The wheel system has also been hooked into the external auth system. This
  267605. allows specific users to have granular access to manage components of the
  267606. Salt Master.
  267607. .SS Render Pipes
  267608. .sp
  267609. Jack Kuan has added a substantial new feature. The render pipes system allows
  267610. Salt to treat the render system like unix pipes. This new system enables sls
  267611. files to be passed through specific render engines. While the default renderer
  267612. is still recommended, different engines can now be more easily merged. So to
  267613. pipe the output of Mako used in YAML use this shebang line:
  267614. .sp
  267615. #!mako|yaml
  267616. .SS Salt Key Overhaul
  267617. .sp
  267618. The Salt Key system was originally developed as only a CLI interface, but as
  267619. time went on it was pressed into becoming a clumsy API. This release marks a
  267620. complete overhaul of Salt Key. Salt Key has been rewritten to function purely
  267621. from an API and to use the outputter system. The benefit here is that the
  267622. outputter system works much more cleanly with Salt Key now, and the internals
  267623. of Salt Key can be used much more cleanly.
  267624. .SS Modular Outputters
  267625. .sp
  267626. The outputter system is now loaded in a modular way. This means that output
  267627. systems can be more easily added by dropping a python file down on the master
  267628. that contains the function \fIoutput\fP\&.
  267629. .SS Gzip from Fileserver
  267630. .sp
  267631. Gzip compression has been added as an option to the cp.get_file and cp.get_dir
  267632. commands. This will make file transfers more efficient and faster, especially
  267633. over slower network links.
  267634. .SS Unified Module Configuration
  267635. .sp
  267636. In past releases of Salt, the minions needed to be configured for certain
  267637. modules to function. This was difficult because it required pre\-configuring the
  267638. minions. 0.10.5 changes this by making all module configs on minions search the
  267639. master config file for values.
  267640. .sp
  267641. Now if a single database server is needed, then it can be defined in the master
  267642. config and all minions will become aware of the configuration value.
  267643. .SS Salt Call Enhancements
  267644. .sp
  267645. The \fBsalt\-call\fP command has been updated in a few ways. Now, \fBsalt\-call\fP
  267646. can take the \-\-return option to send the data to a returner. Also,
  267647. \fBsalt\-call\fP now reports executions in the minion proc system, this allows the
  267648. master to be aware of the operation salt\-call is running.
  267649. .SS Death to pub_refresh and sub_timeout
  267650. .sp
  267651. The old configuration values \fIpub_refresh\fP and \fIsub_timeout\fP have been removed.
  267652. These options were in place to alleviate problems found in earlier versions of
  267653. ZeroMQ which have since been fixed. The continued use of these options has
  267654. proven to cause problems with message passing and have been completely removed.
  267655. .SS Git Revision Versions
  267656. .sp
  267657. When running Salt directly from git (for testing or development, of course)
  267658. it has been difficult to know exactly what code is being executed. The new
  267659. versioning system will detect the git revision when building and how many
  267660. commits have been made since the last release. A release from git will look
  267661. like this:
  267662. .sp
  267663. 0.10.4\-736\-gec74d69
  267664. .SS Svn Module Addition
  267665. .sp
  267666. Anthony Cornehl (twinshadow) contributed a module that adds Subversion support
  267667. to Salt. This great addition helps round out Salt\(aqs VCS support.
  267668. .SS Noteworthy Changes
  267669. .SS Arch Linux Defaults to Systemd
  267670. .sp
  267671. Arch Linux recently changed to use systemd by default and discontinued support
  267672. for init scripts. Salt has followed suit and defaults to systemd now for
  267673. managing services in Arch.
  267674. .SS Salt, Salt Cloud and Openstack
  267675. .sp
  267676. With the releases of Salt 0.10.5 and Salt Cloud 0.8.2, OpenStack becomes the
  267677. first (non\-OS) piece of software to include support both on the user level
  267678. (with Salt Cloud) and the admin level (with Salt). We are excited to continue
  267679. to extend support of other platforms at this level.
  267680. .SS Salt 0.11.0 Release Notes
  267681. .INDENT 0.0
  267682. .TP
  267683. .B release
  267684. 2012\-12\-14
  267685. .UNINDENT
  267686. .sp
  267687. Salt 0.11.0 is here, with some highly sought after and exciting features.
  267688. These features include the new overstate system, the reactor system, a new
  267689. state run scope component called __context__, the beginning of the search
  267690. system (still needs a great deal of work), multiple package states, the MySQL
  267691. returner and a better system to arbitrarily reference outputters.
  267692. .sp
  267693. It is also noteworthy that we are changing how we mark release numbers. For the
  267694. life of the project we have been pushing every release with features and fixes
  267695. as point releases. We will now be releasing point releases for only bug fixes
  267696. on a more regular basis and major feature releases on a slightly less regular
  267697. basis. This means that the next release will be a bugfix only release with a
  267698. version number of 0.11.1. The next feature release will be named 0.12.0 and
  267699. will mark the end of life for the 0.11 series.
  267700. .SS Major Features
  267701. .SS OverState
  267702. .sp
  267703. The overstate system is a simple way to manage rolling state executions across
  267704. many minions. The overstate allows for a state to depend on the successful
  267705. completion of another state.
  267706. .SS Reactor System
  267707. .sp
  267708. The new reactor system allows for a reactive logic engine to be created which
  267709. can respond to events within a salted environment. The reactor system uses sls
  267710. files to match events fired on the master with actions, enabling Salt
  267711. to react to problems in an infrastructure.
  267712. .sp
  267713. Your load\-balanced group of webservers is under extra load? Spin up a new VM
  267714. and add it to the group. Your fileserver is filling up? Send a notification to
  267715. your sysadmin on call. The possibilities are endless!
  267716. .SS Module Context
  267717. .sp
  267718. A new component has been added to the module loader system. The module context
  267719. is a data structure that can hold objects for a given scope within the module.
  267720. .sp
  267721. This allows for components that are initialized to be stored in a persistent
  267722. context which can greatly speed up ongoing connections. Right now the best
  267723. example can be found in the \fIcp\fP execution module.
  267724. .SS Multiple Package Management
  267725. .sp
  267726. A long desired feature has been added to package management. By definition Salt
  267727. States have always installed packages one at a time. On most platforms this is
  267728. not the fastest way to install packages. Erik Johnson, aka terminalmage, has
  267729. modified the package modules for many providers and added new capabilities to
  267730. install groups of packages. These package groups can be defined as a list of
  267731. packages available in repository servers:
  267732. .INDENT 0.0
  267733. .INDENT 3.5
  267734. .sp
  267735. .nf
  267736. .ft C
  267737. python_pkgs:
  267738. pkg.installed:
  267739. \- pkgs:
  267740. \- python\-mako
  267741. \- whoosh
  267742. \- python\-git
  267743. .ft P
  267744. .fi
  267745. .UNINDENT
  267746. .UNINDENT
  267747. .sp
  267748. or specify based on the location of specific packages:
  267749. .INDENT 0.0
  267750. .INDENT 3.5
  267751. .sp
  267752. .nf
  267753. .ft C
  267754. python_pkgs:
  267755. pkg.installed:
  267756. \- sources:
  267757. \- python\-mako: http://some\-rpms.org/python\-mako.rpm
  267758. \- whoosh: salt://whoosh/whoosh.rpm
  267759. \- python\-git: ftp://companyserver.net/python\-git.rpm
  267760. .ft P
  267761. .fi
  267762. .UNINDENT
  267763. .UNINDENT
  267764. .SS Search System
  267765. .sp
  267766. The bones to the search system have been added. This is a very basic interface
  267767. that allows for search backends to be added as search modules. The first
  267768. supported search module is the whoosh search backend. Right now only the basic
  267769. paths for the search system are in place, making this very experimental.
  267770. Further development will involve improving the search routines and index
  267771. routines for whoosh and other search backends.
  267772. .sp
  267773. The search system has been made to allow for searching through all of the state
  267774. and pillar files, configuration files and all return data from minion
  267775. executions.
  267776. .SS Notable Changes
  267777. .sp
  267778. All previous versions of Salt have shared many directories between the master
  267779. and minion. The default locations for keys, cached data and sockets has been
  267780. shared by master and minion. This has created serious problems with running a
  267781. master and a minion on the same systems. 0.11.0 changes the defaults to be
  267782. separate directories. Salt will also attempt to migrate all of the old key data
  267783. into the correct new directories, but if it is not successful it may need to be
  267784. done manually. If your keys exhibit issues after updating make sure that they
  267785. have been moved from \fB/etc/salt/pki\fP to \fB/etc/salt/pki/{master,minion}\fP\&.
  267786. .sp
  267787. The old setup will look like this:
  267788. .INDENT 0.0
  267789. .INDENT 3.5
  267790. .sp
  267791. .nf
  267792. .ft C
  267793. /etc/salt/pki
  267794. |\-\- master.pem
  267795. |\-\- master.pub
  267796. |\-\- minions
  267797. | \(ga\-\- ragnarok.saltstack.net
  267798. |\-\- minions_pre
  267799. |\-\- minion.pem
  267800. |\-\- minion.pub
  267801. |\-\- minion_master.pub
  267802. |\-\- minions_pre
  267803. \(ga\-\- minions_rejected
  267804. .ft P
  267805. .fi
  267806. .UNINDENT
  267807. .UNINDENT
  267808. .sp
  267809. With the accepted minion keys in \fB/etc/salt/pki/minions\fP, the new setup
  267810. places the accepted minion keys in \fB/etc/salt/pki/master/minions\fP\&.
  267811. .INDENT 0.0
  267812. .INDENT 3.5
  267813. .sp
  267814. .nf
  267815. .ft C
  267816. /etc/salt/pki
  267817. |\-\- master
  267818. | |\-\- master.pem
  267819. | |\-\- master.pub
  267820. | |\-\- minions
  267821. | | \(ga\-\- ragnarok.saltstack.net
  267822. | |\-\- minions_pre
  267823. | \(ga\-\- minions_rejected
  267824. |\-\- minion
  267825. | |\-\- minion.pem
  267826. | |\-\- minion.pub
  267827. | \(ga\-\- minion_master.pub
  267828. .ft P
  267829. .fi
  267830. .UNINDENT
  267831. .UNINDENT
  267832. .SS Salt 0.11.1 Release Notes
  267833. .INDENT 0.0
  267834. .TP
  267835. .B release
  267836. 2012\-12\-19
  267837. .UNINDENT
  267838. .SS Salt 0.12.0 Release Notes
  267839. .INDENT 0.0
  267840. .TP
  267841. .B release
  267842. 2013\-01\-15
  267843. .UNINDENT
  267844. .sp
  267845. Another feature release of Salt is here! Some exciting additions are included
  267846. with more ways to make salt modular and even easier management of the salt
  267847. file server.
  267848. .SS Major Features
  267849. .SS Modular Fileserver Backend
  267850. .sp
  267851. The new modular fileserver backend allows for any external system to be used as
  267852. a salt file server. The main benefit here is that it is now possible to tell
  267853. the master to directly use a git remote location, or many git remote locations,
  267854. automatically mapping git branches and tags to salt environments.
  267855. .SS Windows is First Class!
  267856. .sp
  267857. A new Salt Windows installer is now available! Much work has been put in to
  267858. improve Windows support. With this much easier method of getting Salt on your
  267859. Windows machines, we hope even more development and progress will occur. Please
  267860. file bug reports on the Salt GitHub repo issue tracker so we can continue
  267861. improving.
  267862. .sp
  267863. One thing that is missing on Windows that Salt uses extensively is a software
  267864. package manager and a software package repository. The Salt pkg state allows
  267865. sys admins to install software across their infrastructure and across operating
  267866. systems. Software on Windows can now be managed in the same way. The SaltStack
  267867. team built a package manager that interfaces with the standard Salt pkg module
  267868. to allow for installing and removing software on Windows. In addition, a
  267869. software package repository has been built on top of the Salt fileserver. A
  267870. small YAML file provides the information necessary for the package manager to
  267871. install and remove software.
  267872. .sp
  267873. An interesting feature of the new Salt Windows software package repository is
  267874. that one or more remote git repositories can supplement the master\(aqs local
  267875. repository. The repository can point to software on the master\(aqs fileserver or
  267876. on an HTTP, HTTPS, or ftp server.
  267877. .SS New Default Outputter
  267878. .sp
  267879. Salt displays data to the terminal via the outputter system. For a long time
  267880. the default outputter for Salt has been the python pretty print library. While
  267881. this has been a generally reasonable outputter, it did have many failings. The
  267882. new default outputter is called "nested", it recursively scans return data
  267883. structures and prints them out cleanly.
  267884. .sp
  267885. If the result of the new nested outputter is not desired any other outputter
  267886. can be used via the \-\-out option, or the output option can be set in the master
  267887. and minion configs to change the default outputter.
  267888. .SS Internal Scheduler
  267889. .sp
  267890. The internal Salt scheduler is a new capability which allows for functions to
  267891. be executed at given intervals on the minion, and for runners to be executed
  267892. at given intervals on the master. The scheduler allows for sequences
  267893. such as executing state runs (locally on the minion or remotely via an
  267894. overstate) or continually gathering system data to be run at given intervals.
  267895. .sp
  267896. The configuration is simple, add the schedule option to the master or minion
  267897. config and specify jobs to run, this in the master config will execute the
  267898. state.over runner every 60 minutes:
  267899. .INDENT 0.0
  267900. .INDENT 3.5
  267901. .sp
  267902. .nf
  267903. .ft C
  267904. schedule:
  267905. overstate:
  267906. function: state.over
  267907. minutes: 60
  267908. .ft P
  267909. .fi
  267910. .UNINDENT
  267911. .UNINDENT
  267912. .sp
  267913. This example for the minion configuration will execute a highstate every 30
  267914. minutes:
  267915. .INDENT 0.0
  267916. .INDENT 3.5
  267917. .sp
  267918. .nf
  267919. .ft C
  267920. schedule:
  267921. highstate:
  267922. function: state.highstate
  267923. minutes: 30
  267924. .ft P
  267925. .fi
  267926. .UNINDENT
  267927. .UNINDENT
  267928. .SS Optional DSL for SLS Formulas
  267929. .sp
  267930. Jack Kuan, our renderer expert, has created something that is astonishing.
  267931. Salt, now comes with an optional Python based DSL, this is a very powerful
  267932. interface that makes writing SLS files in pure python easier than it was
  267933. with the raw py renderer. As usual this can be used with the renderer shebang
  267934. line, so a single sls can be written with the DSL if pure python power is
  267935. needed while keeping other sls files simple with YAML.
  267936. .SS Set Grains Remotely
  267937. .sp
  267938. A new execution function and state module have been added that allows for
  267939. grains to be set on the minion. Now grains can be set via a remote execution or
  267940. via states. Use the \fIgrains.present\fP state or the \fIgrains.setval\fP execution
  267941. functions.
  267942. .SS Gentoo Additions
  267943. .sp
  267944. Major additions to Gentoo specific components have been made. The encompasses
  267945. executions modules and states ranging from supporting the make.conf file to
  267946. tools like layman.
  267947. .SS Salt 0.12.1 Release Notes
  267948. .INDENT 0.0
  267949. .TP
  267950. .B release
  267951. 2013\-01\-21
  267952. .UNINDENT
  267953. .SS Salt 0.13.0 Release Notes
  267954. .INDENT 0.0
  267955. .TP
  267956. .B release
  267957. 2013\-02\-12
  267958. .UNINDENT
  267959. .sp
  267960. The lucky number 13 has turned the corner! From CLI notifications when quitting
  267961. a salt command, to substantial improvements on Windows, Salt 0.13.0 has
  267962. arrived!
  267963. .SS Major Features
  267964. .SS Improved file.recurse Performance
  267965. .sp
  267966. The file.recurse system has been deployed and used in a vast array of
  267967. situations. Fixes to the file state and module have led towards opening up
  267968. new ways of running file.recurse to make it faster. Now the file.recurse
  267969. state will download fewer files and will run substantially faster.
  267970. .SS Windows Improvements
  267971. .sp
  267972. Minion stability on Windows has improved. Many file operations, including
  267973. file.recurse, have been fixed and improved. The network module works better, to
  267974. include network.interfaces. Both 32bit and 64bit installers are now available.
  267975. .SS Nodegroup Targeting in Peer System
  267976. .sp
  267977. In the past, nodegroups were not available for targeting via the peer system.
  267978. This has been fixed, allowing the new nodegroup expr_form argument for the
  267979. publish.publish function:
  267980. .INDENT 0.0
  267981. .INDENT 3.5
  267982. salt\-call publish.publish group1 test.ping expr_form=nodegroup
  267983. .UNINDENT
  267984. .UNINDENT
  267985. .SS Blacklist Additions
  267986. .sp
  267987. Additions allowing more granular blacklisting are available in 0.13.0. The
  267988. ability to blacklist users and functions in client_acl have been added, as
  267989. well as the ability to exclude state formulas from the command line.
  267990. .SS Command Line Pillar Embedding
  267991. .sp
  267992. Pillar data can now be embedded on the command line when calling \fBstate.sls\fP
  267993. and \fBstate.highstate\fP\&. This allows for on the fly changes or settings to
  267994. pillar and makes parameterizing state formulas even easier. This is done via
  267995. the keyword argument:
  267996. .INDENT 0.0
  267997. .INDENT 3.5
  267998. .sp
  267999. .nf
  268000. .ft C
  268001. salt \(aq*\(aq state.highstate pillar=\(aq{"cheese": "spam"}\(aq
  268002. .ft P
  268003. .fi
  268004. .UNINDENT
  268005. .UNINDENT
  268006. .sp
  268007. The above example will extend the existing pillar to hold the \fBcheese\fP key
  268008. with a value of \fBspam\fP\&. If the \fBcheese\fP key is already specified in the
  268009. minion\(aqs pillar then it will be overwritten.
  268010. .SS CLI Notifications
  268011. .sp
  268012. In the past hitting ctrl\-C and quitting from the \fBsalt\fP command would just
  268013. drop to a shell prompt, this caused confusion with users who expected the
  268014. remote executions to also quit. Now a message is displayed showing what
  268015. command can be used to track the execution and what the job id is for the
  268016. execution.
  268017. .SS Version Specification in Multiple\-Package States
  268018. .sp
  268019. Versions can now be specified within multiple\-package \fBpkg.installed\fP states. An example can be found below:
  268020. .INDENT 0.0
  268021. .INDENT 3.5
  268022. .sp
  268023. .nf
  268024. .ft C
  268025. mypkgs:
  268026. pkg.installed:
  268027. \- pkgs:
  268028. \- foo
  268029. \- bar: 1.2.3\-4
  268030. \- baz
  268031. .ft P
  268032. .fi
  268033. .UNINDENT
  268034. .UNINDENT
  268035. .SS Noteworthy Changes
  268036. .sp
  268037. The configuration subsystem in Salt has been overhauled to make the \fBopts\fP
  268038. dict used by Salt applications more portable, the problem is that this is an
  268039. incompatible change with salt\-cloud, and salt\-cloud will need to be updated
  268040. to the latest git to work with Salt 0.13.0. Salt Cloud 0.8.5 will also require
  268041. Salt 0.13.0 or later to function.
  268042. .sp
  268043. The SaltStack team is sorry for the inconvenience here, we work hard to make
  268044. sure these sorts of things do not happen, but sometimes hard changes get in.
  268045. .SS Salt 0.13.1 Release Notes
  268046. .INDENT 0.0
  268047. .TP
  268048. .B release
  268049. 2013\-02\-15
  268050. .UNINDENT
  268051. .SS Salt 0.13.2 Release Notes
  268052. .INDENT 0.0
  268053. .TP
  268054. .B release
  268055. 2013\-03\-13
  268056. .UNINDENT
  268057. .SS Salt 0.13.3 Release Notes
  268058. .INDENT 0.0
  268059. .TP
  268060. .B release
  268061. 2013\-03\-18
  268062. .UNINDENT
  268063. .SS Salt 0.14.0 Release Notes
  268064. .INDENT 0.0
  268065. .TP
  268066. .B release
  268067. 2013\-03\-23
  268068. .UNINDENT
  268069. .sp
  268070. Salt 0.14.0 is here! This release was held up primarily by PyCon, Scale, and
  268071. illness, but has arrived! 0.14.0 comes with many new features and is breaking
  268072. ground for Salt in the area of cloud management with the introduction of Salt
  268073. providing basic cloud controller functionality.
  268074. .SS Major Features
  268075. .SS Salt \- As a Cloud Controller
  268076. .sp
  268077. This is the first primitive inroad to using Salt as a cloud controller is
  268078. available in 0.14.0. Be advised that this is alpha, only tested in a few very
  268079. small environments.
  268080. .sp
  268081. The cloud controller is built using kvm and libvirt for the hypervisors.
  268082. Hypervisors are autodetected as minions and only need to have libvirt running
  268083. and kvm installed to function. The features of the Salt cloud controller are
  268084. as follows:
  268085. .INDENT 0.0
  268086. .INDENT 3.5
  268087. .INDENT 0.0
  268088. .IP \(bu 2
  268089. Basic vm discovery and reporting
  268090. .IP \(bu 2
  268091. Creation of new virtual machines
  268092. .IP \(bu 2
  268093. Seeding virtual machines with Salt via qemu\-nbd or libguestfs
  268094. .IP \(bu 2
  268095. Live migration (shared and non shared storage)
  268096. .IP \(bu 2
  268097. Delete existing VMs
  268098. .UNINDENT
  268099. .UNINDENT
  268100. .UNINDENT
  268101. .sp
  268102. It is noteworthy that this feature is still Alpha, meaning that all rights
  268103. are reserved to change the interface if needs be in future releases!
  268104. .SS Libvirt State
  268105. .sp
  268106. One of the problems with libvirt is management of certificates needed for live
  268107. migration and cross communication between hypervisors. The new \fBlibvirt\fP
  268108. state makes the Salt Master hold a CA and manage the signing and distribution
  268109. of keys onto hypervisors, just add a call to the libvirt state in the sls
  268110. formulas used to set up a hypervisor:
  268111. .INDENT 0.0
  268112. .INDENT 3.5
  268113. .sp
  268114. .nf
  268115. .ft C
  268116. libvirt_keys:
  268117. libvirt.keys
  268118. .ft P
  268119. .fi
  268120. .UNINDENT
  268121. .UNINDENT
  268122. .SS New get Functions
  268123. .sp
  268124. An easier way to manage data has been introduced. The pillar, grains, and config
  268125. execution modules have been extended with the new \fBget\fP function. This
  268126. function works much in the same way as the get method in a python dict, but with
  268127. an enhancement, nested dict components can be extracted using a \fI:\fP delimiter.
  268128. .sp
  268129. If a structure like this is in pillar:
  268130. .INDENT 0.0
  268131. .INDENT 3.5
  268132. .sp
  268133. .nf
  268134. .ft C
  268135. foo:
  268136. bar:
  268137. baz: quo
  268138. .ft P
  268139. .fi
  268140. .UNINDENT
  268141. .UNINDENT
  268142. .sp
  268143. Extracting it from the raw pillar in an sls formula or file template is done
  268144. this way:
  268145. .INDENT 0.0
  268146. .INDENT 3.5
  268147. .sp
  268148. .nf
  268149. .ft C
  268150. {{ pillar[\(aqfoo\(aq][\(aqbar\(aq][\(aqbaz\(aq] }}
  268151. .ft P
  268152. .fi
  268153. .UNINDENT
  268154. .UNINDENT
  268155. .sp
  268156. Now with the new get function the data can be safely gathered and a default
  268157. can be set allowing the template to fall back if the value is not available:
  268158. .INDENT 0.0
  268159. .INDENT 3.5
  268160. .sp
  268161. .nf
  268162. .ft C
  268163. {{ salt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq, \(aqqux\(aq) }}
  268164. .ft P
  268165. .fi
  268166. .UNINDENT
  268167. .UNINDENT
  268168. .sp
  268169. This makes handling nested structures much easier, and defaults can be cleanly
  268170. set. This new function is being used extensively in the new formulae repository
  268171. of salt sls formulas.
  268172. .SS Salt 0.14.1 Release Notes
  268173. .INDENT 0.0
  268174. .TP
  268175. .B release
  268176. 2013\-04\-13
  268177. .UNINDENT
  268178. .SS Salt 0.15.0 Release Notes
  268179. .INDENT 0.0
  268180. .TP
  268181. .B release
  268182. 2013\-05\-03
  268183. .UNINDENT
  268184. .sp
  268185. The many new features of Salt 0.15.0 have arrived! Salt 0.15.0 comes with many
  268186. smaller features and a few larger ones.
  268187. .sp
  268188. These features range from better debugging tools to the new Salt Mine system.
  268189. .SS Major Features
  268190. .SS The Salt Mine
  268191. .sp
  268192. First there was the peer system, allowing for commands to be executed from a
  268193. minion to other minions to gather data live. Then there was the external job
  268194. cache for storing and accessing long term data. Now the middle ground is being
  268195. filled in with the Salt Mine. The Salt Mine is a system used to execute
  268196. functions on a regular basis on minions and then store only the most recent
  268197. data from the functions on the master, then the data is looked up via targets.
  268198. .sp
  268199. The mine caches data that is public to all minions, so when a minion posts
  268200. data to the mine all other minions can see it.
  268201. .SS IPV6 Support
  268202. .sp
  268203. 0.13.0 saw the addition of initial IPV6 support but errors were encountered and
  268204. it needed to be stripped out. This time the code covers more cases and must be
  268205. explicitly enabled. But the support is much more extensive than before.
  268206. .SS Copy Files From Minions to the Master
  268207. .sp
  268208. Minions have long been able to copy files down from the master file server, but
  268209. until now files could not be easily copied from the minion up to the master.
  268210. .sp
  268211. A new function called \fBcp.push\fP can push files from the minions up to the
  268212. master server. The uploaded files are then cached on the master in the master
  268213. cachedir for each minion.
  268214. .SS Better Template Debugging
  268215. .sp
  268216. Template errors have long been a burden when writing states and pillar. 0.15.0
  268217. will now send the compiled template data to the debug log, this makes tracking
  268218. down the intermittent stage templates much easier. So running state.sls or
  268219. state.highstate with \fI\-l debug\fP will now print out the rendered templates in
  268220. the debug information.
  268221. .SS State Event Firing
  268222. .sp
  268223. The state system is now more closely tied to the master\(aqs event bus. Now when
  268224. a state fails the failure will be fired on the master event bus so that the
  268225. reactor can respond to it.
  268226. .SS Major Syndic Updates
  268227. .sp
  268228. The Syndic system has been basically re\-written. Now it runs in a completely
  268229. asynchronous way and functions primarily as an event broker. This means that
  268230. the events fired on the syndic are now pushed up to the higher level master
  268231. instead of the old method used which waited for the client libraries to
  268232. return.
  268233. .sp
  268234. This makes the syndic much more accurate and powerful, it also means that
  268235. all events fired on the syndic master make it up the pipe as well making a
  268236. reactor on the higher level master able to react to minions further
  268237. downstream.
  268238. .SS Peer System Updates
  268239. .sp
  268240. The Peer System has been updated to run using the client libraries instead
  268241. of firing directly over the publish bus. This makes the peer system much more
  268242. consistent and reliable.
  268243. .SS Minion Key Revocation
  268244. .sp
  268245. In the past when a minion was decommissioned the key needed to be manually
  268246. deleted on the master, but now a function on the minion can be used to revoke
  268247. the calling minion\(aqs key:
  268248. .INDENT 0.0
  268249. .INDENT 3.5
  268250. .sp
  268251. .nf
  268252. .ft C
  268253. $ salt\-call saltutil.revoke_auth
  268254. .ft P
  268255. .fi
  268256. .UNINDENT
  268257. .UNINDENT
  268258. .SS Function Return Codes
  268259. .sp
  268260. Functions can now be assigned numeric return codes to determine if the function
  268261. executed successfully. While not all functions have been given return codes,
  268262. many have and it is an ongoing effort to fill out all functions that might
  268263. return a non\-zero return code.
  268264. .SS Functions in Overstate
  268265. .sp
  268266. The overstate system was originally created to just manage the execution of
  268267. states, but with the addition of return codes to functions, requisite logic can
  268268. now be used with respect to the overstate. This means that an overstate stage
  268269. can now run single functions instead of just state executions.
  268270. .SS Pillar Error Reporting
  268271. .sp
  268272. Previously if errors surfaced in pillar, then the pillar would consist of only
  268273. an empty dict. Now all data that was successfully rendered stays in pillar and
  268274. the render error is also made available. If errors are found in the pillar,
  268275. states will refuse to run.
  268276. .SS Using Cached State Data
  268277. .sp
  268278. Sometimes states are executed purely to maintain a specific state rather than
  268279. to update states with new configs. This is grounds for the new cached state
  268280. system. By adding \fIcache=True\fP to a state call the state will not be generated
  268281. fresh from the master but the last state data to be generated will be used.
  268282. If no previous state data is available then fresh data will be generated.
  268283. .SS Monitoring States
  268284. .sp
  268285. The new monitoring states system has been started. This is very young but
  268286. allows for states to be used to configure monitoring routines. So far only one
  268287. monitoring state is available, the \fBdisk.status\fP state. As more capabilities
  268288. are added to Salt UI the monitoring capabilities of Salt will continue to be
  268289. expanded.
  268290. .SS Salt 0.15.1 Release Notes
  268291. .INDENT 0.0
  268292. .TP
  268293. .B release
  268294. 2013\-05\-08
  268295. .UNINDENT
  268296. .sp
  268297. The 0.15.1 release has been posted, this release includes fixes to a number of
  268298. bugs in 0.15.1 and a three security patches.
  268299. .SS Security Updates
  268300. .sp
  268301. A number of security issues have been resolved via the 0.15.1 release.
  268302. .SS Path Injection in Minion IDs
  268303. .sp
  268304. Salt masters did not properly validate the id of a connecting minion. This can
  268305. lead to an attacker uploading files to the master in arbitrary locations.
  268306. In particular this can be used to bypass the manual validation of new unknown
  268307. minions. Exploiting this vulnerability does not require authentication.
  268308. .sp
  268309. This issue affects all known versions of Salt.
  268310. .sp
  268311. This issue was reported by Ronald Volgers.
  268312. .SS Patch
  268313. .sp
  268314. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual
  268315. locations.
  268316. .sp
  268317. Specific commits:
  268318. .sp
  268319. \fI\%https://github.com/saltstack/salt/commit/5427b9438e452a5a8910d9128c6aafb45d8fd5d3\fP
  268320. .sp
  268321. \fI\%https://github.com/saltstack/salt/commit/7560908ee62351769c3cd43b03d74c1ca772cc52\fP
  268322. .sp
  268323. \fI\%https://github.com/saltstack/salt/commit/e200b8a7ff53780124e08d2bdefde7587e52bfca\fP
  268324. .SS RSA Key Generation Fault
  268325. .sp
  268326. RSA key generation was done incorrectly, leading to very insecure keys. It is
  268327. recommended to regenerate all RSA keys.
  268328. .sp
  268329. This issue can be used to impersonate Salt masters or minions, or decrypt any
  268330. transferred data.
  268331. .sp
  268332. This issue can only be exploited by attackers who are able to observe or modify
  268333. traffic between Salt minions and the legitimate Salt master.
  268334. .sp
  268335. A tool was included in 0.15.1 to assist in mass key regeneration, the
  268336. manage.regen_keys runner.
  268337. .sp
  268338. This issue affects all known versions of Salt.
  268339. .sp
  268340. This issue was reported by Ronald Volgers.
  268341. .SS Patch
  268342. .sp
  268343. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual
  268344. locations.
  268345. .sp
  268346. Specific commits:
  268347. .sp
  268348. \fI\%https://github.com/saltstack/salt/commit/5dd304276ba5745ec21fc1e6686a0b28da29e6fc\fP
  268349. .SS Command Injection Via ext_pillar
  268350. .sp
  268351. Arbitrary shell commands could be executed on the master by an authenticated
  268352. minion through options passed when requesting a pillar.
  268353. .sp
  268354. Ext pillar options have been restricted to only allow safe external pillars to
  268355. be called when prompted by the minion.
  268356. .sp
  268357. This issue affects Salt versions from 0.14.0 to 0.15.0.
  268358. .sp
  268359. This issue was reported by Ronald Volgers.
  268360. .SS Patch
  268361. .sp
  268362. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual locations.
  268363. .sp
  268364. Specific commits:
  268365. .sp
  268366. \fI\%https://github.com/saltstack/salt/commit/43d8c16bd26159d827d1a945c83ac28159ec5865\fP
  268367. .SS Salt 0.15.2 Release Notes
  268368. .INDENT 0.0
  268369. .TP
  268370. .B release
  268371. 2013\-05\-29
  268372. .UNINDENT
  268373. .SS Salt 0.15.3 Release Notes
  268374. .INDENT 0.0
  268375. .TP
  268376. .B release
  268377. 2013\-06\-01
  268378. .UNINDENT
  268379. .SS Salt 0.16.0 Release Notes
  268380. .INDENT 0.0
  268381. .TP
  268382. .B release
  268383. 2013\-07\-01
  268384. .UNINDENT
  268385. .sp
  268386. The 0.16.0 release is an exciting one, with new features in master redundancy,
  268387. and a new, powerful requisite.
  268388. .SS Major Features
  268389. .SS Multi\-Master
  268390. .sp
  268391. This new capability allows for a minion to be actively connected to multiple
  268392. salt masters at the same time. This allows for multiple masters to send out commands
  268393. to minions and for minions to automatically reconnect to masters that have gone
  268394. down. A tutorial is available to help get started here:
  268395. .sp
  268396. Multi Master Tutorial
  268397. .SS Prereq, the New Requisite
  268398. .sp
  268399. The new \fIprereq\fP requisite is very powerful! It allows for states to execute
  268400. based on a state that is expected to make changes in the future. This allows
  268401. for a change on the system to be preempted by another execution. A good example
  268402. is needing to shut down a service before modifying files associated with it,
  268403. allowing, for instance, a webserver to be shut down allowing a load balancer to
  268404. stop sending requests while server side code is updated. In this case, the
  268405. prereq will only run if changes are expected to happen in the prerequired
  268406. state, and the prerequired state will always run after the prereq state and
  268407. only if the prereq state succeeds.
  268408. .SS Peer System Improvements
  268409. .sp
  268410. The peer system has been revamped to make it more reliable, faster, and like
  268411. the rest of Salt, async. The peer calls when an updated minion and master are
  268412. used together will be much faster!
  268413. .SS Relative Includes
  268414. .sp
  268415. The ability to include an sls relative to the defined sls has been added, the
  268416. new syntax id documented here:
  268417. .sp
  268418. Includes
  268419. .SS More State Output Options
  268420. .sp
  268421. The \fBstate_output\fP option in the past only supported \fIfull\fP and \fIterse\fP,
  268422. 0.16.0 add the \fImixed\fP and \fIchanges\fP modes further refining how states are sent
  268423. to users\(aq eyes.
  268424. .SS Improved Windows Support
  268425. .sp
  268426. Support for Salt on Windows continues to improve. Software management on
  268427. Windows has become more seamless with Linux/UNIX/BSD software management.
  268428. Installed software is now recognized by the short names defined in the
  268429. repository SLS\&. This makes it
  268430. possible to run \fBsalt \(aq*\(aq pkg.version firefox\fP and get back results from
  268431. Windows and non\-Windows minions alike.
  268432. .sp
  268433. When templating files on Windows, Salt will now correctly use Windows
  268434. appropriate line endings. This makes it much easier to edit and consume files
  268435. on Windows.
  268436. .sp
  268437. When using the cmd state the \fBshell\fP option now allows for specifying
  268438. Windows Powershell as an alternate shell to execute cmd.run and cmd.script.
  268439. This opens up Salt to all the power of Windows Powershell and its advanced
  268440. Windows management capabilities.
  268441. .sp
  268442. Several fixes and optimizations were added for the Windows networking modules,
  268443. especially when working with IPv6.
  268444. .sp
  268445. A system module was added that makes it easy to restart and shutdown Windows
  268446. minions.
  268447. .sp
  268448. The Salt Minion will now look for its config file in \fBc:\esalt\econf\fP by
  268449. default. This means that it\(aqs no longer necessary to specify the \fB\-c\fP option
  268450. to specify the location of the config file when starting the Salt Minion on
  268451. Windows in a terminal.
  268452. .SS Multiple Targets for pkg.removed, pkg.purged States
  268453. .sp
  268454. Both \fBpkg.removed\fP and \fBpkg.purged\fP now support the \fBpkgs\fP argument, which allow for
  268455. multiple packages to be targeted in a single state. This, as in
  268456. \fBpkg.installed\fP, helps speed up these
  268457. states by reducing the number of times that the package management tools (apt,
  268458. yum, etc.) need to be run.
  268459. .SS Random Times in Cron States
  268460. .sp
  268461. The temporal parameters in \fBcron.present\fP
  268462. states (minute, hour, etc.) can now be randomized by using \fBrandom\fP instead
  268463. of a specific value. For example, by using the \fBrandom\fP keyword in the
  268464. \fBminute\fP parameter of a cron state, the same cron job can be pushed to
  268465. hundreds or thousands of hosts, and they would each use a randomly\-generated
  268466. minute. This can be helpful when the cron job accesses a network resource, and
  268467. it is not desirable for all hosts to run the job concurrently.
  268468. .INDENT 0.0
  268469. .INDENT 3.5
  268470. .sp
  268471. .nf
  268472. .ft C
  268473. /path/to/cron/script:
  268474. cron.present:
  268475. \- user: root
  268476. \- minute: random
  268477. \- hour: 2
  268478. .ft P
  268479. .fi
  268480. .UNINDENT
  268481. .UNINDENT
  268482. .sp
  268483. Since Salt assumes a value of \fB*\fP for unspecified temporal parameters, adding
  268484. a parameter to the state and setting it to \fBrandom\fP will change that value
  268485. from \fB*\fP to a randomized numeric value. However, if that field in the cron
  268486. entry on the minion already contains a numeric value, then using the \fBrandom\fP
  268487. keyword will not modify it.
  268488. .SS Confirmation Prompt on Key Acceptance
  268489. .sp
  268490. When accepting new keys with \fBsalt\-key \-a minion\-id\fP or \fBsalt\-key \-A\fP,
  268491. there is now a prompt that will show the affected keys and ask for confirmation
  268492. before proceeding. This prompt can be bypassed using the \fB\-y\fP or \fB\-\-yes\fP
  268493. command line argument, as with other \fBsalt\-key\fP commands.
  268494. .SS Support for Setting Password Hashes on BSD Minions
  268495. .sp
  268496. FreeBSD, NetBSD, and OpenBSD all now support setting passwords in
  268497. \fBuser.present\fP states.
  268498. .SS Salt 0.16.1 Release Notes
  268499. .INDENT 0.0
  268500. .TP
  268501. .B release
  268502. 2013\-07\-29
  268503. .UNINDENT
  268504. .SS Salt 0.16.2 Release Notes
  268505. .INDENT 0.0
  268506. .TP
  268507. .B release
  268508. 2013\-08\-01
  268509. .UNINDENT
  268510. .sp
  268511. Version 0.16.2 is a bugfix release for 0.16.0,
  268512. and contains a number of fixes.
  268513. .SS Windows
  268514. .INDENT 0.0
  268515. .IP \(bu 2
  268516. Only allow Administrator\(aqs group and SYSTEM user access to C:\esalt. This
  268517. eliminates a race condition where a non\-admin user could modify a template or
  268518. managed file before it is executed by the minion (which is running as an
  268519. elevated user), thus avoiding a potential escalation of privileges. (\fI\%issue #6361\fP)
  268520. .UNINDENT
  268521. .SS Grains
  268522. .INDENT 0.0
  268523. .IP \(bu 2
  268524. Fixed detection of \fBvirtual\fP grain on OpenVZ hardware nodes
  268525. .IP \(bu 2
  268526. Gracefully handle lsb_release data when it is enclosed in quotes
  268527. .IP \(bu 2
  268528. LSB grains are now prefixed with \fBlsb_distrib_\fP instead of simply \fBlsb_\fP\&.
  268529. The old naming is not preserved, so SLS may be affected.
  268530. .IP \(bu 2
  268531. Improved grains detection on MacOS
  268532. .UNINDENT
  268533. .SS Pillar
  268534. .INDENT 0.0
  268535. .IP \(bu 2
  268536. Don\(aqt try to load \fBgit_pillar\fP
  268537. if not enabled in master config (\fI\%issue #6052\fP)
  268538. .IP \(bu 2
  268539. Functions \fBpillar.item\fP and
  268540. \fBpillar.items\fP added for parity with
  268541. \fBgrains.item\fP/\fBgrains.items\fP\&. The old function \fBpillar.data\fP is preserved
  268542. for backwards compatibility.
  268543. .IP \(bu 2
  268544. Fixed minion traceback when Pillar SLS is malformed (\fI\%issue #5910\fP)
  268545. .UNINDENT
  268546. .SS Peer Publishing
  268547. .INDENT 0.0
  268548. .IP \(bu 2
  268549. More gracefully handle improperly quoted publish commands (\fI\%issue #5958\fP)
  268550. .IP \(bu 2
  268551. Fixed traceback when timeout specified via the CLI fo \fBpublish.publish\fP, \fBpublish.full_data\fP (\fI\%issue #5959\fP)
  268552. .IP \(bu 2
  268553. Fixed unintended change in output of \fBpublish.publish\fP (\fI\%issue #5928\fP)
  268554. .UNINDENT
  268555. .SS Minion
  268556. .INDENT 0.0
  268557. .IP \(bu 2
  268558. Fixed salt\-key usage in minionswarm script
  268559. .IP \(bu 2
  268560. Quieted warning about \fBSALT_MINION_CONFIG\fP environment variable on
  268561. minion startup and for CLI commands run via \fBsalt\-call\fP (\fI\%issue #5956\fP)
  268562. .IP \(bu 2
  268563. Added minion config parameter \fBrandom_reauth_delay\fP to stagger
  268564. re\-auth attempts when the minion is waiting for the master to approve its
  268565. public key. This helps prevent SYN flooding in larger environments.
  268566. .UNINDENT
  268567. .SS User/Group Management
  268568. .INDENT 0.0
  268569. .IP \(bu 2
  268570. Implement previously\-ignored \fBunique\fP option for \fBuser.present\fP states in FreeBSD
  268571. .IP \(bu 2
  268572. Report in state output when a \fBgroup.present\fP state attempts to use a gid in use by another
  268573. group
  268574. .IP \(bu 2
  268575. Fixed regression that prevents a \fBuser.present\fP state to set the password hash to the system
  268576. default (i.e. an unset password)
  268577. .IP \(bu 2
  268578. Fixed multiple \fBgroup.present\fP states with
  268579. the same group (\fI\%issue #6439\fP)
  268580. .UNINDENT
  268581. .SS File Management
  268582. .INDENT 0.0
  268583. .IP \(bu 2
  268584. Fixed file.mkdir setting incorrect permissions (\fI\%issue #6033\fP)
  268585. .IP \(bu 2
  268586. Fixed cleanup of source files for templates when \fB/tmp\fP is in file_roots
  268587. (\fI\%issue #6118\fP)
  268588. .IP \(bu 2
  268589. Fixed caching of zero\-byte files when a non\-empty file was previously cached
  268590. at the same path
  268591. .IP \(bu 2
  268592. Added HTTP authentication support to the cp module (\fI\%issue #5641\fP)
  268593. .IP \(bu 2
  268594. Diffs are now suppressed when binary files are changed
  268595. .UNINDENT
  268596. .SS Package/Repository Management
  268597. .INDENT 0.0
  268598. .IP \(bu 2
  268599. Fixed traceback when there is only one target for \fBpkg.latest\fP states
  268600. .IP \(bu 2
  268601. Fixed regression in detection of virtual packages (apt)
  268602. .IP \(bu 2
  268603. Limit number of pkg database refreshes to once per \fBstate.sls\fP/\fBstate.highstate\fP
  268604. .IP \(bu 2
  268605. YUM: Allow 32\-bit packages with arches other than i686 to be managed on
  268606. 64\-bit systems (\fI\%issue #6299\fP)
  268607. .IP \(bu 2
  268608. Fixed incorrect reporting in pkgrepo.managed states (\fI\%issue #5517\fP)
  268609. .IP \(bu 2
  268610. Fixed 32\-bit binary package installs on 64\-bit RHEL\-based distros, and added
  268611. proper support for 32\-bit packages on 64\-bit Debian\-based distros
  268612. (\fI\%issue #6303\fP)
  268613. .IP \(bu 2
  268614. Fixed issue where requisites were inadvertently being put into YUM repo files
  268615. (\fI\%issue #6471\fP)
  268616. .UNINDENT
  268617. .SS Service Management
  268618. .INDENT 0.0
  268619. .IP \(bu 2
  268620. Fixed inaccurate reporting of results in \fBservice.running\fP states when the service fails to start
  268621. (\fI\%issue #5894\fP)
  268622. .IP \(bu 2
  268623. Fixed handling of custom initscripts in RHEL\-based distros so that they are
  268624. immediately available, negating the need for a second state run to manage the
  268625. service that the initscript controls
  268626. .UNINDENT
  268627. .SS Networking
  268628. .INDENT 0.0
  268629. .IP \(bu 2
  268630. 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
  268631. the underscore in the name, as well.
  268632. .IP \(bu 2
  268633. Fixed traceback in \fBbridge.show\fP when
  268634. interface is not present (\fI\%issue #6326\fP)
  268635. .UNINDENT
  268636. .SS SSH
  268637. .INDENT 0.0
  268638. .IP \(bu 2
  268639. Fixed incorrect result reporting for some \fBssh_known_hosts.present\fP states
  268640. .IP \(bu 2
  268641. Fixed inaccurate reporting when \fBssh_auth.present\fP states are run with \fBtest=True\fP, when
  268642. rsa/dss is used for the \fBenc\fP param instead of ssh\-rsa/ssh\-dss
  268643. (\fI\%issue #5374\fP)
  268644. .UNINDENT
  268645. .SS pip
  268646. .INDENT 0.0
  268647. .IP \(bu 2
  268648. Properly handle \fB\-f\fP lines in pip freeze output
  268649. .IP \(bu 2
  268650. Fixed regression in pip.installed states with specifying a requirements file
  268651. (\fI\%issue #6003\fP)
  268652. .IP \(bu 2
  268653. Fixed use of \fBeditable\fP argument in \fBpip.installed\fP states (\fI\%issue #6025\fP)
  268654. .IP \(bu 2
  268655. Deprecated \fBrunas\fP parameter in execution function calls, in favor of
  268656. \fBuser\fP
  268657. .UNINDENT
  268658. .SS MySQL
  268659. .INDENT 0.0
  268660. .IP \(bu 2
  268661. Allow specification of \fBMySQL\fP
  268662. connection arguments via the CLI, overriding/bypassing minion config params
  268663. .IP \(bu 2
  268664. Allow \fBmysql_user.present\fP states to
  268665. set a passwordless login (\fI\%issue #5550\fP)
  268666. .IP \(bu 2
  268667. Fixed endless loop when \fBmysql.processlist\fP is run (\fI\%issue #6297\fP)
  268668. .UNINDENT
  268669. .SS PostgreSQL
  268670. .INDENT 0.0
  268671. .IP \(bu 2
  268672. Fixed traceback in \fBpostgres.user_list\fP (\fI\%issue #6352\fP)
  268673. .UNINDENT
  268674. .SS Miscellaneous
  268675. .INDENT 0.0
  268676. .IP \(bu 2
  268677. Don\(aqt allow \fBnpm states\fP to be used if
  268678. \fBnpm module\fP is not available
  268679. .IP \(bu 2
  268680. Fixed \fBalternatives.install\fP states
  268681. for which the target is a symlink (\fI\%issue #6162\fP)
  268682. .IP \(bu 2
  268683. Fixed traceback in \fBsysbench module\fP (\fI\%issue #6175\fP)
  268684. .IP \(bu 2
  268685. Fixed traceback in job cache
  268686. .IP \(bu 2
  268687. Fixed tempfile cleanup for windows
  268688. .IP \(bu 2
  268689. Fixed issue where SLS files using the \fBpydsl renderer\fP were not being run
  268690. .IP \(bu 2
  268691. Fixed issue where returners were being passed incorrect information
  268692. (\fI\%issue #5518\fP)
  268693. .IP \(bu 2
  268694. Fixed traceback when numeric args are passed to \fBcmd.script\fP states
  268695. .IP \(bu 2
  268696. Fixed bug causing \fBcp.get_dir\fP to return more
  268697. directories than expected (\fI\%issue #6048\fP)
  268698. .IP \(bu 2
  268699. Fixed traceback when \fBsupervisord.running\fP states are run with \fBtest=True\fP
  268700. (\fI\%issue #6053\fP)
  268701. .IP \(bu 2
  268702. Fixed tracebacks when Salt encounters problems running rbenv (\fI\%issue #5888\fP)
  268703. .IP \(bu 2
  268704. Only make the \fBmonit module\fP
  268705. available if monit binary is present (\fI\%issue #5871\fP)
  268706. .IP \(bu 2
  268707. Fixed incorrect behavior of \fBimg.mount_image\fP
  268708. .IP \(bu 2
  268709. Fixed traceback in \fBtomcat.deploy_war\fP
  268710. in Windows
  268711. .IP \(bu 2
  268712. Don\(aqt re\-write /etc/fstab if mount fails
  268713. .IP \(bu 2
  268714. Fixed tracebacks when Salt encounters problems running gem (\fI\%issue #5886\fP)
  268715. .IP \(bu 2
  268716. Fixed incorrect behavior of \fBselinux.boolean\fP states (\fI\%issue #5912\fP)
  268717. .IP \(bu 2
  268718. \fBRabbitMQ\fP: Quote passwords to
  268719. avoid symbols being interpolated by the shell (\fI\%issue #6338\fP)
  268720. .IP \(bu 2
  268721. Fixed tracebacks in \fBextfs.mkfs\fP and
  268722. \fBextfs.tune\fP (\fI\%issue #6462\fP)
  268723. .IP \(bu 2
  268724. Fixed a regression with the \fBmodule.run\fP state
  268725. where the \fBm_name\fP and \fBm_fun\fP arguments were being ignored (\fI\%issue #6464\fP)
  268726. .UNINDENT
  268727. .SS Salt 0.16.3 Release Notes
  268728. .INDENT 0.0
  268729. .TP
  268730. .B release
  268731. 2013\-08\-09
  268732. .UNINDENT
  268733. .sp
  268734. Version 0.16.3 is another bugfix release for 0.16.0\&. The changes include:
  268735. .INDENT 0.0
  268736. .IP \(bu 2
  268737. Various documentation fixes
  268738. .IP \(bu 2
  268739. Fix proc directory regression (\fI\%issue #6502\fP)
  268740. .IP \(bu 2
  268741. Properly detect \fI\%Linaro\fP Linux (\fI\%issue #6496\fP)
  268742. .IP \(bu 2
  268743. Fix regressions in \fBmount.mounted\fP
  268744. (\fI\%issue #6522\fP, \fI\%issue #6545\fP)
  268745. .IP \(bu 2
  268746. Skip malformed state requisites (\fI\%issue #6521\fP)
  268747. .IP \(bu 2
  268748. Fix regression in gitfs from bad import
  268749. .IP \(bu 2
  268750. Fix for watching prereq states (including recursive requisite error)
  268751. (\fI\%issue #6057\fP)
  268752. .IP \(bu 2
  268753. Fix mod_watch not overriding prereq (\fI\%issue #6520\fP)
  268754. .IP \(bu 2
  268755. Don\(aqt allow functions which compile states to be called within states
  268756. (\fI\%issue #5623\fP)
  268757. .IP \(bu 2
  268758. Return error for malformed top.sls (\fI\%issue #6544\fP)
  268759. .IP \(bu 2
  268760. Fix traceback in \fBmysql.query\fP
  268761. .IP \(bu 2
  268762. Fix regression in binary package installation for 64\-bit packages
  268763. on Debian\-based Linux distros (\fI\%issue #6563\fP)
  268764. .IP \(bu 2
  268765. Fix traceback caused by running \fBcp.push\fP without
  268766. having set \fBfile_recv\fP in the master config file
  268767. .IP \(bu 2
  268768. Fix scheduler configuration in pillar (\fI\%issue #6201\fP)
  268769. .UNINDENT
  268770. .SS Salt 0.16.4 Release Notes
  268771. .INDENT 0.0
  268772. .TP
  268773. .B release
  268774. 2013\-09\-07
  268775. .UNINDENT
  268776. .sp
  268777. Version 0.16.4 is another bugfix release for 0.16.0, likely to be the last before 0.17.0 is released.
  268778. The changes include:
  268779. .INDENT 0.0
  268780. .IP \(bu 2
  268781. Multiple documentation improvements/additions
  268782. .IP \(bu 2
  268783. Added the \fBosfinger\fP and \fBosarch\fP grains
  268784. .IP \(bu 2
  268785. Properly handle 32\-bit packages for debian32 on x86_64 (\fI\%issue #6607\fP)
  268786. .IP \(bu 2
  268787. Fix regression in yum package installation in CentOS 5 (\fI\%issue #6677\fP)
  268788. .IP \(bu 2
  268789. Fix bug in \fBhg.latest\fP state that would
  268790. erroneously delete directories (\fI\%issue #6661\fP)
  268791. .IP \(bu 2
  268792. Fix bug related to pid not existing for \fBps.top\fP
  268793. (\fI\%issue #6679\fP)
  268794. .IP \(bu 2
  268795. Fix regression in \fBMySQL returner\fP
  268796. (\fI\%issue #6695\fP)
  268797. .IP \(bu 2
  268798. Fix IP addresses grains (\fBipv4\fP and \fBipv6\fP) to include all addresses
  268799. (\fI\%issue #6656\fP)
  268800. .IP \(bu 2
  268801. Fix regression preventing authenticated FTP (\fI\%issue #6733\fP)
  268802. .IP \(bu 2
  268803. Fix setting password for windows users (\fI\%issue #6824\fP)
  268804. .IP \(bu 2
  268805. Fix \fBfile.contains\fP on values YAML parses
  268806. as non\-string (\fI\%issue #6817\fP)
  268807. .IP \(bu 2
  268808. Fix \fBfile.get_gid\fP, \fBfile.get_uid\fP, and \fBfile.chown\fP
  268809. for broken symlinks (\fI\%issue #6826\fP)
  268810. .IP \(bu 2
  268811. Fix comment for service reloads in service state (\fI\%issue #6851\fP)
  268812. .UNINDENT
  268813. .SS Salt 0.17.0 Release Notes
  268814. .INDENT 0.0
  268815. .TP
  268816. .B release
  268817. 2013\-09\-26
  268818. .UNINDENT
  268819. .sp
  268820. The 0.17.0 release is a very exciting release of Salt, this brings to Salt
  268821. some very powerful new features and advances. The advances range from the
  268822. state system to the test suite, covering new transport capabilities and
  268823. making states easier and more powerful, to extending Salt Virt and much more!
  268824. .sp
  268825. The 0.17.0 release will also be the last release of Salt to follow the old
  268826. 0.XX.X numbering system, the next release of Salt will change the numbering to
  268827. be date based following this format:
  268828. .sp
  268829. <Year>.<Month>.<Minor>
  268830. .sp
  268831. So if the release happens in November of 2013 the number will be 13.11.0, the
  268832. first bugfix release will be 13.11.1 and so forth.
  268833. .SS Major Features
  268834. .SS Halite
  268835. .sp
  268836. The new Halite web GUI is now available on PyPI. A great deal of work has
  268837. been put into Halite to make it fully event driven and amazingly fast. The
  268838. Halite UI can be started from within the Salt Master (after being installed
  268839. from PyPI), or standalone, and does not require an external database to run.
  268840. It is very lightweight!
  268841. .sp
  268842. This initial release of Halite is primarily the framework for the UI and the
  268843. communication systems, making it easy to extend and build the UI up. It
  268844. presently supports watching the event bus and firing commands over Salt.
  268845. .sp
  268846. At this time, Halite is not available as a package, but installation
  268847. documentation is available at:
  268848. \fI\%http://docs.saltstack.com/topics/tutorials/halite.html\fP
  268849. .sp
  268850. Halite is, like the rest of Salt, Open Source!
  268851. .sp
  268852. Much more will be coming in the future of Halite!
  268853. .SS Salt SSH
  268854. .sp
  268855. The new \fBsalt\-ssh\fP command has been added to Salt. This system allows for
  268856. remote execution and states to be run over ssh. The benefit here being, that
  268857. salt can run relying only on the ssh agent, rather than requiring a minion
  268858. to be deployed.
  268859. .sp
  268860. The \fBsalt\-ssh\fP system runs states in a compatible way as Salt and states
  268861. created and run with salt\-ssh can be moved over to a standard salt deployment
  268862. without modification.
  268863. .sp
  268864. Since this is the initial release of salt\-ssh, there is plenty of room for
  268865. improvement, but it is fully operational, not just a bootstrap tool.
  268866. .SS Rosters
  268867. .sp
  268868. Salt is designed to have the minions be aware of the master and the master does
  268869. not need to be aware of the location of the minions. The new salt roster system
  268870. was created and designed to facilitate listing the targets for salt\-ssh.
  268871. .sp
  268872. The roster system, like most of Salt, is a plugin system, allowing for the list
  268873. of systems to target to be derived from any pluggable backend. The rosters
  268874. shipping with 0.17.0 are flat and scan. Flat is a file which is read in via the
  268875. salt render system and the scan roster does simple network scanning to discover
  268876. ssh servers.
  268877. .SS State Auto Order
  268878. .sp
  268879. This is a major change in how states are evaluated in Salt. State Auto Order
  268880. is a new feature that makes states get evaluated and executed in the order in
  268881. which they are defined in the sls file. This feature makes it very easy to
  268882. see the finite order in which things will be executed, making Salt now, fully
  268883. imperative AND fully declarative.
  268884. .sp
  268885. The requisite system still takes precedence over the order in which states are
  268886. defined, so no existing states should break with this change. But this new
  268887. feature can be turned off by setting \fBstate_auto_order: False\fP in the master
  268888. config, thus reverting to the old lexicographical order.
  268889. .SS state.sls Runner
  268890. .sp
  268891. The \fBstate.sls\fP runner has been created to allow for a more powerful system
  268892. for orchestrating state runs and function calls across the salt minions. This
  268893. new system uses the state system for organizing executions.
  268894. .sp
  268895. This allows for states to be defined that are executed on the master to call
  268896. states on minions via \fBsalt\-run state.sls\fP\&.
  268897. .SS Salt Thin
  268898. .sp
  268899. Salt Thin is an exciting new component of Salt, this is the ability to execute
  268900. Salt routines without any transport mechanisms installed, it is a pure python
  268901. subset of Salt.
  268902. .sp
  268903. Salt Thin does not have any networking capability, but can be dropped into any
  268904. system with Python installed and then \fBsalt\-call\fP can be called directly. The
  268905. Salt Thin system, is used by the \fBsalt\-ssh\fP command, but can still be used to
  268906. just drop salt somewhere for easy use.
  268907. .SS Event Namespacing
  268908. .sp
  268909. Events have been updated to be much more flexible. The tags in events have all
  268910. been namespaced allowing easier tracking of event names.
  268911. .SS Mercurial Fileserver Backend
  268912. .sp
  268913. The popular git fileserver backend has been joined by the mercurial fileserver
  268914. backend, allowing the state tree to be managed entirely via mercurial.
  268915. .SS External Logging Handlers
  268916. .sp
  268917. The external logging handler system allows for Salt to directly hook into any
  268918. external logging system. Currently supported are sentry and logstash.
  268919. .SS Jenkins Testing
  268920. .sp
  268921. The testing systems in Salt have been greatly enhanced, tests for salt are now
  268922. executed, via jenkins.saltstack.com, across many supported platforms. Jenkins
  268923. calls out to salt\-cloud to create virtual machines on Rackspace, then the
  268924. minion on the virtual machine checks into the master running on Jenkins where
  268925. a state run is executed that sets up the minion to run tests and executes the
  268926. test suite.
  268927. .sp
  268928. This now automates the sequence of running platform tests and allows for
  268929. continuous destructive tests to be run.
  268930. .SS Salt Testing Project
  268931. .sp
  268932. The testing libraries for salt have been moved out of the main salt code base
  268933. and into a standalone codebase. This has been done to ease the use of the
  268934. testing systems being used in salt based projects other than Salt itself.
  268935. .SS StormPath External Authentication
  268936. .sp
  268937. The external auth system now supports the fantastic Stormpath cloud based
  268938. authentication system.
  268939. .SS LXC Support
  268940. .sp
  268941. Extensive additions have been added to Salt for LXC support. This included
  268942. the backend libs for managing LXC containers. Addition into the salt\-virt
  268943. system is still in the works.
  268944. .SS macOS User/Group Support
  268945. .sp
  268946. Salt is now able to manage users and groups on Minions running macOS.
  268947. However, at this time user passwords cannot be managed.
  268948. .SS Django ORM External Pillar
  268949. .sp
  268950. Pillar data can now be derived from Django managed databases.
  268951. .SS Fixes from RC to release
  268952. .INDENT 0.0
  268953. .IP \(bu 2
  268954. Multiple documentation fixes
  268955. .IP \(bu 2
  268956. Add multiple source files + templating for \fBfile.append\fP (\fI\%issue #6905\fP)
  268957. .IP \(bu 2
  268958. Support sysctl configuration files in systemd>=207 (\fI\%issue #7351\fP)
  268959. .IP \(bu 2
  268960. Add \fBfile.search\fP and \fBfile.replace\fP
  268961. .IP \(bu 2
  268962. Fix cross\-calling execution functions in provider overrides
  268963. .IP \(bu 2
  268964. Fix locale override for postgres (\fI\%issue #4543\fP)
  268965. .IP \(bu 2
  268966. Fix Raspbian identification for service/pkg support (\fI\%issue #7371\fP)
  268967. .IP \(bu 2
  268968. Fix \fBcp.push\fP file corruption (\fI\%issue #6495\fP)
  268969. .IP \(bu 2
  268970. Fix ALT Linux password hash specification (\fI\%issue #3474\fP)
  268971. .IP \(bu 2
  268972. Multiple salt\-ssh\-related fixes and improvements
  268973. .UNINDENT
  268974. .SS Salt 0.17.1 Release Notes
  268975. .INDENT 0.0
  268976. .TP
  268977. .B release
  268978. 2013\-10\-17
  268979. .UNINDENT
  268980. .sp
  268981. \fBNOTE:\fP
  268982. .INDENT 0.0
  268983. .INDENT 3.5
  268984. THIS RELEASE IS NOT COMPATIBLE WITH PREVIOUS VERSIONS. If you update your
  268985. master to 0.17.1, you must update your minions as well. Sorry for the
  268986. inconvenience \-\- this is a result of one of the security fixes listed
  268987. below.
  268988. .UNINDENT
  268989. .UNINDENT
  268990. .sp
  268991. The 0.17.1 release comes with a number of improvements to salt\-ssh, many
  268992. bugfixes, and a number of security updates.
  268993. .sp
  268994. Salt SSH has been improved to be faster, more featureful and more secure.
  268995. Since the original release of Salt SSH was primarily a proof of concept, it has
  268996. been very exciting to see its rapid adoption. We appreciate the willingness of
  268997. security experts to review Salt SSH and help discover oversights and ensure
  268998. that security issues only exist for such a tiny window of time.
  268999. .SS SSH Enhancements
  269000. .SS Shell Improvements
  269001. .sp
  269002. Improvements to Salt SSH\(aqs communication have been added that improve routine
  269003. execution regardless of the target system\(aqs login shell.
  269004. .SS Performance
  269005. .sp
  269006. Deployment of routines is now faster and takes fewer commands to execute.
  269007. .SS Security Updates
  269008. .sp
  269009. Be advised that these security issues all apply to a small subset of Salt
  269010. users and mostly apply to Salt SSH.
  269011. .SS Insufficient Argument Validation
  269012. .sp
  269013. This issue allowed for a user with limited privileges to embed executions
  269014. inside of routines to execute routines that should be restricted. This applies
  269015. to users using external auth or client ACL and opening up specific routines.
  269016. .sp
  269017. Be advised that these patches address the direct issue. Additional commits have
  269018. been applied to help mitigate this issue from resurfacing.
  269019. .SS CVE
  269020. .sp
  269021. CVE\-2013\-4435
  269022. .SS Affected Versions
  269023. .sp
  269024. 0.15.0 \- 0.17.0
  269025. .SS Patches
  269026. .sp
  269027. \fI\%https://github.com/saltstack/salt/commit/6d8ef68b605fd63c36bb8ed96122a75ad2e80269\fP
  269028. \fI\%https://github.com/saltstack/salt/commit/ebdef37b7e5d2b95a01d34b211c61c61da67e46a\fP
  269029. \fI\%https://github.com/saltstack/salt/commit/7f190ff890e47cdd591d9d7cefa5126574660824\fP
  269030. \fI\%https://github.com/saltstack/salt/commit/8e5afe59cef6743fe5dbd510dcf463dbdfca1ced\fP
  269031. \fI\%https://github.com/saltstack/salt/commit/aca78f314481082862e96d4f0c1b75fa382bb885\fP
  269032. \fI\%https://github.com/saltstack/salt/commit/6a9752cdb1e8df2c9505ea910434c79d132eb1e2\fP
  269033. \fI\%https://github.com/saltstack/salt/commit/b73677435ba54ecfc93c1c2d840a7f9ba6f53410\fP
  269034. \fI\%https://github.com/saltstack/salt/commit/07972eb0a6f985749a55d8d4a2e471596591c80d\fP
  269035. \fI\%https://github.com/saltstack/salt/commit/1e3f197726aa13ac5c3f2416000089f477f489b5\fP
  269036. .SS Found By
  269037. .sp
  269038. Feth Arezki, of Majerti
  269039. .SS MITM SSH attack in salt\-ssh
  269040. .sp
  269041. SSH host keys were being accepted by default and not enforced on future SSH
  269042. connections. These patches set SSH host key checking by default and can be
  269043. overridden by passing the \-i flag to \fIsalt\-ssh\fP\&.
  269044. .SS CVE
  269045. .sp
  269046. CVE\-2013\-4436
  269047. .SS Affected Versions
  269048. .sp
  269049. 0.17.0
  269050. .SS Found By
  269051. .sp
  269052. Michael Scherer, Red Hat
  269053. .SS Insecure Usage of /tmp in salt\-ssh
  269054. .sp
  269055. The initial release of salt\-ssh used the /tmp directory in an insecure way.
  269056. These patches not only secure usage of files under /tmp in salt\-ssh, but
  269057. also add checksum validation for all packages sent into the now secure
  269058. locations on target systems.
  269059. .SS CVE
  269060. .sp
  269061. CVE\-2013\-4438
  269062. .SS Affected Versions
  269063. .sp
  269064. 0.17.0
  269065. .SS Patches
  269066. .sp
  269067. \fI\%https://github.com/saltstack/salt/commit/aa4bb77ef230758cad84381dde0ec660d2dc340a\fP
  269068. \fI\%https://github.com/saltstack/salt/commit/8f92b6b2cb2e4ec3af8783eb6bf4ff06f5a352cf\fP
  269069. \fI\%https://github.com/saltstack/salt/commit/c58e56811d5a50c908df0597a0ba0b643b45ebfd\fP
  269070. \fI\%https://github.com/saltstack/salt/commit/0359db9b46e47614cff35a66ea6a6a76846885d2\fP
  269071. \fI\%https://github.com/saltstack/salt/commit/4348392860e0fd43701c331ac3e681cf1a8c17b0\fP
  269072. \fI\%https://github.com/saltstack/salt/commit/664d1a1cac05602fad2693f6f97092d98a72bf61\fP
  269073. \fI\%https://github.com/saltstack/salt/commit/bab92775a576e28ff9db262f32db9cf2375bba87\fP
  269074. \fI\%https://github.com/saltstack/salt/commit/c6d34f1acf64900a3c87a2d37618ff414e5a704e\fP
  269075. .SS Found By
  269076. .sp
  269077. Michael Scherer, Red Hat
  269078. .SS YAML Calling Unsafe Loading Routine
  269079. .sp
  269080. It has been argued that this is not a valid security issue, as the YAML loading
  269081. that was happening was only being called after an initial gateway filter in
  269082. Salt has already safely loaded the YAML and would fail if non\-safe routines
  269083. were embedded. Nonetheless, the CVE was filed and patches applied.
  269084. .SS CVE
  269085. .sp
  269086. CVE\-2013\-4438
  269087. .SS Patches
  269088. .sp
  269089. \fI\%https://github.com/saltstack/salt/commit/339b0a51befae6b6b218ebcb55daa9cd3329a1c5\fP
  269090. .SS Found By
  269091. .sp
  269092. Michael Scherer, Red Hat
  269093. .SS Failure to Drop Supplementary Group on Salt Master
  269094. .sp
  269095. If a salt master was started as a non\-root user by the root user, root\(aqs
  269096. groups would still be applied to the running process. This fix changes the
  269097. process to have only the groups of the running user.
  269098. .SS CVE
  269099. .sp
  269100. CVE not considered necessary by submitter.
  269101. .SS Affected Versions
  269102. .sp
  269103. 0.11.0 \- 0.17.0
  269104. .SS Patches
  269105. .sp
  269106. \fI\%https://github.com/saltstack/salt/commit/b89fa9135822d029795ab1eecd68cce2d1ced715\fP
  269107. .SS Found By
  269108. .sp
  269109. Michael Scherer, Red Hat
  269110. .SS Failure to Validate Minions Posting Data
  269111. .sp
  269112. This issue allowed a minion to pose as another authorized minion when posting
  269113. data such as the mine data. All minions now pass through the id challenge
  269114. before posting such data.
  269115. .SS CVE
  269116. .sp
  269117. CVE\-2013\-4439
  269118. .SS Affected Versions
  269119. .sp
  269120. 0.15.0 \- 0.17.0
  269121. .SS Patches
  269122. .sp
  269123. \fI\%https://github.com/saltstack/salt/commit/7b850ff3d07ef6782888914ac4556c01e8a1c482\fP
  269124. \fI\%https://github.com/saltstack/salt/commit/151759b2a1e1c6ce29277aa81b054219147f80fd\fP
  269125. .SS Found By
  269126. .sp
  269127. David Anderson
  269128. .SS Fix Reference
  269129. .sp
  269130. Version 0.17.1 is the first bugfix release for 0.17.0\&. The changes include:
  269131. .INDENT 0.0
  269132. .IP \(bu 2
  269133. Fix symbolic links in thin.tgz (\fI\%issue #7482\fP)
  269134. .IP \(bu 2
  269135. Pass env through to file.patch state (\fI\%issue #7452\fP)
  269136. .IP \(bu 2
  269137. Service provider fixes and reporting improvements (\fI\%issue #7361\fP)
  269138. .IP \(bu 2
  269139. Add \fB\-\-priv\fP option for specifying salt\-ssh private key
  269140. .IP \(bu 2
  269141. Fix salt\-thin\(aqs salt\-call on setuptools installations (\fI\%issue #7516\fP)
  269142. .IP \(bu 2
  269143. Fix salt\-ssh to support passwords with spaces (\fI\%issue #7480\fP)
  269144. .IP \(bu 2
  269145. Fix regression in wildcard includes (\fI\%issue #7455\fP)
  269146. .IP \(bu 2
  269147. Fix salt\-call outputter regression (\fI\%issue #7456\fP)
  269148. .IP \(bu 2
  269149. Fix custom returner support for startup states (\fI\%issue #7540\fP)
  269150. .IP \(bu 2
  269151. Fix value handling in augeas (\fI\%issue #7605\fP)
  269152. .IP \(bu 2
  269153. Fix regression in apt (\fI\%issue #7624\fP)
  269154. .IP \(bu 2
  269155. Fix minion ID guessing to use \fBsocket.getfqdn()\fP first (\fI\%issue #7558\fP)
  269156. .IP \(bu 2
  269157. Add minion ID caching (\fI\%issue #7558\fP)
  269158. .IP \(bu 2
  269159. Fix salt\-key race condition (\fI\%issue #7304\fP)
  269160. .IP \(bu 2
  269161. Add \fB\-\-include\-all\fP flag to salt\-key (\fI\%issue #7399\fP)
  269162. .IP \(bu 2
  269163. Fix custom grains in pillar (part of \fI\%issue #5716\fP, \fI\%issue #6083\fP)
  269164. .IP \(bu 2
  269165. Fix race condition in salt\-key (\fI\%issue #7304\fP)
  269166. .IP \(bu 2
  269167. Fix regression in minion ID guessing, prioritize \fBsocket.getfqdn()\fP
  269168. (\fI\%issue #7558\fP)
  269169. .IP \(bu 2
  269170. Cache minion ID on first guess (\fI\%issue #7558\fP)
  269171. .IP \(bu 2
  269172. Allow trailing slash in \fBfile.directory\fP state
  269173. .IP \(bu 2
  269174. Fix reporting of file_roots in pillar return (\fI\%issue #5449\fP and
  269175. \fI\%issue #5951\fP)
  269176. .IP \(bu 2
  269177. Remove pillar matching for mine.get (\fI\%issue #7197\fP)
  269178. .IP \(bu 2
  269179. Sanitize args for multiple execution modules
  269180. .IP \(bu 2
  269181. Fix yumpkg mod_repo functions to filter hidden args (\fI\%issue #7656\fP)
  269182. .IP \(bu 2
  269183. Fix conflicting IDs in state includes (\fI\%issue #7526\fP)
  269184. .IP \(bu 2
  269185. Fix mysql_grants.absent string formatting issue (\fI\%issue #7827\fP)
  269186. .IP \(bu 2
  269187. Fix postgres.version so it won\(aqt return None (\fI\%issue #7695\fP)
  269188. .IP \(bu 2
  269189. Fix for trailing slashes in mount.mounted state
  269190. .IP \(bu 2
  269191. Fix rogue AttributErrors in the outputter system (\fI\%issue #7845\fP)
  269192. .IP \(bu 2
  269193. Fix for incorrect ssh key encodings resulting in incorrect key added
  269194. (\fI\%issue #7718\fP)
  269195. .IP \(bu 2
  269196. Fix for pillar/grains naming regression in python renderer (\fI\%issue #7693\fP)
  269197. .IP \(bu 2
  269198. Fix args/kwargs handling in the scheduler (\fI\%issue #7422\fP)
  269199. .IP \(bu 2
  269200. Fix logfile handling for \fIfile://\fP, \fItcp://\fP, and \fIudp://\fP (\fI\%issue #7754\fP)
  269201. .IP \(bu 2
  269202. Fix error handling in config file parsing (\fI\%issue #6714\fP)
  269203. .IP \(bu 2
  269204. Fix RVM using sudo when running as non\-root user (\fI\%issue #2193\fP)
  269205. .IP \(bu 2
  269206. Fix client ACL and underlying logging bugs (\fI\%issue #7706\fP)
  269207. .IP \(bu 2
  269208. Fix scheduler bug with returner (\fI\%issue #7367\fP)
  269209. .IP \(bu 2
  269210. Fix user management bug related to default groups (\fI\%issue #7690\fP)
  269211. .IP \(bu 2
  269212. Fix various salt\-ssh bugs (\fI\%issue #7528\fP)
  269213. .IP \(bu 2
  269214. Many various documentation fixes
  269215. .UNINDENT
  269216. .SS Salt 0.17.2 Release Notes
  269217. .INDENT 0.0
  269218. .TP
  269219. .B release
  269220. 2013\-11\-14
  269221. .UNINDENT
  269222. .sp
  269223. Version 0.17.2 is another bugfix release for 0.17.0\&. The changes include:
  269224. .INDENT 0.0
  269225. .IP \(bu 2
  269226. Add ability to delete key with grains.delval (\fI\%issue #7872\fP)
  269227. .IP \(bu 2
  269228. Fix possible state compiler stack trace (\fI\%issue #5767\fP)
  269229. .IP \(bu 2
  269230. Fix architecture regression in yumpkg (\fI\%issue #7813\fP)
  269231. .IP \(bu 2
  269232. Use correct \fBps\fP on Debian to prevent truncating (\fI\%issue #5646\fP)
  269233. .IP \(bu 2
  269234. Fix grains targeting for new grains (\fI\%issue #5737\fP)
  269235. .IP \(bu 2
  269236. Fix bug with merging in git_pillar (\fI\%issue #6992\fP)
  269237. .IP \(bu 2
  269238. Fix print_jobs duplicate results
  269239. .IP \(bu 2
  269240. Fix apt version specification for pkg.install
  269241. .IP \(bu 2
  269242. Fix possible KeyError from ext_job_cache missing option
  269243. .IP \(bu 2
  269244. Fix auto_order for \fB\- names\fP states (\fI\%issue #7649\fP)
  269245. .IP \(bu 2
  269246. Fix regression in new gitfs installs (directory not found error)
  269247. .IP \(bu 2
  269248. Fix escape pipe issue on Windows for file.recurse (\fI\%issue #7967\fP)
  269249. .IP \(bu 2
  269250. Fix fileclient in case of master restart (\fI\%issue #7987\fP)
  269251. .IP \(bu 2
  269252. Try to output warning if CLI command malformed (\fI\%issue #6538\fP)
  269253. .IP \(bu 2
  269254. Fix \fB\-\-out=quiet\fP to actually be quiet (\fI\%issue #8000\fP)
  269255. .IP \(bu 2
  269256. Fix for state.sls in salt\-ssh (\fI\%issue #7991\fP)
  269257. .IP \(bu 2
  269258. Fix for MySQL grants ordering issue (\fI\%issue #5817\fP)
  269259. .IP \(bu 2
  269260. Fix traceback for certain missing CLI args (\fI\%issue #8016\fP)
  269261. .IP \(bu 2
  269262. Add ability to disable lspci queries on master (\fI\%issue #4906\fP)
  269263. .IP \(bu 2
  269264. Fail if sls defined in topfile does not exist (\fI\%issue #5998\fP)
  269265. .IP \(bu 2
  269266. Add ability to downgrade MySQL grants (\fI\%issue #6606\fP)
  269267. .IP \(bu 2
  269268. Fix ssh_auth.absent traceback (\fI\%issue #8043\fP)
  269269. .IP \(bu 2
  269270. Add upstart detection for Debian/Raspbian (\fI\%issue #8039\fP)
  269271. .IP \(bu 2
  269272. Fix ID\-related issues (\fI\%issue #8052\fP, \fI\%issue #8050\fP, and others)
  269273. .IP \(bu 2
  269274. Fix for jinja rendering issues (\fI\%issue #8066\fP and \fI\%issue #8079\fP)
  269275. .IP \(bu 2
  269276. Fix argument parsing in salt\-ssh (\fI\%issue #7928\fP)
  269277. .IP \(bu 2
  269278. Fix some GPU detection instances (\fI\%issue #6945\fP)
  269279. .IP \(bu 2
  269280. Fix bug preventing includes from other environments in SLS files
  269281. .IP \(bu 2
  269282. Fix for kwargs with dashes (\fI\%issue #8102\fP)
  269283. .IP \(bu 2
  269284. Fix salt.utils.which for windows \(aq.exe\(aq (\fI\%issue #7904\fP)
  269285. .IP \(bu 2
  269286. Fix apache.adduser without apachectl (\fI\%issue #8123\fP)
  269287. .IP \(bu 2
  269288. Fix issue with evaluating \fBtest\fP kwarg in states (\fI\%issue #7788\fP)
  269289. .IP \(bu 2
  269290. Fix regression in \fBsalt.client.Caller()\fP (\fI\%issue #8078\fP)
  269291. .IP \(bu 2
  269292. Fix apt\-key silent failure
  269293. .IP \(bu 2
  269294. Fix bug where cmd.script would try to run even if caching failed (\fI\%issue #7601\fP)
  269295. .IP \(bu 2
  269296. Fix apt \fBpkg.latest\fP regression (\fI\%issue #8067\fP)
  269297. .IP \(bu 2
  269298. Fix for mine data not being updated (\fI\%issue #8144\fP)
  269299. .IP \(bu 2
  269300. Fix for noarch packages in yum
  269301. .IP \(bu 2
  269302. Fix a Xen detection edge case (\fI\%issue #7839\fP)
  269303. .IP \(bu 2
  269304. Fix windows \fB__opts__\fP dictionary persistence (\fI\%issue #7714\fP)
  269305. .IP \(bu 2
  269306. Fix version generation for when it\(aqs part of another git repo (\fI\%issue #8090\fP)
  269307. .IP \(bu 2
  269308. Fix _handle_iorder stacktrace so that the real syntax error is shown (\fI\%issue #8114\fP and \fI\%issue #7905\fP)
  269309. .IP \(bu 2
  269310. Fix \fBgit.latest\fP state when a commit SHA is used (\fI\%issue #8163\fP)
  269311. .IP \(bu 2
  269312. Fix various small bugs in yumpkg.py (\fI\%issue #8201\fP)
  269313. .IP \(bu 2
  269314. Fix for specifying identify file in git.latest (\fI\%issue #8094\fP)
  269315. .IP \(bu 2
  269316. Fix for \fB\-\-output\-file\fP CLI arg (\fI\%issue #8205\fP)
  269317. .IP \(bu 2
  269318. Add ability to specify shutdown time for system.shutdown (\fI\%issue #7833\fP)
  269319. .IP \(bu 2
  269320. Fix for salt version using non\-salt git repo info (\fI\%issue #8266\fP)
  269321. .IP \(bu 2
  269322. Add additional hints at impact of \fBpkgrepo\fP states when \fBtest=True\fP (\fI\%issue #8247\fP)
  269323. .IP \(bu 2
  269324. Fix for salt\-ssh files not being owned by root (\fI\%issue #8216\fP)
  269325. .IP \(bu 2
  269326. Fix retry logic and error handling in fileserver (related to \fI\%issue #7755\fP)
  269327. .IP \(bu 2
  269328. Fix file.replace with \fBtest=True\fP (\fI\%issue #8279\fP)
  269329. .IP \(bu 2
  269330. Add flag for limiting file traversal in fileserver (\fI\%issue #6928\fP)
  269331. .IP \(bu 2
  269332. Fix for extra mine processes (\fI\%issue #5729\fP)
  269333. .IP \(bu 2
  269334. Fix for unloading custom modules (\fI\%issue #7691\fP)
  269335. .IP \(bu 2
  269336. Fix for salt\-ssh opts (\fI\%issue #8005\fP and \fI\%issue #8271\fP)
  269337. .IP \(bu 2
  269338. Fix compound matcher for grains (\fI\%issue #7944\fP)
  269339. .IP \(bu 2
  269340. Improve error reporting in ebuild module (related to \fI\%issue #5393\fP)
  269341. .IP \(bu 2
  269342. Add \fBdir_mode\fP to \fBfile.managed\fP (\fI\%issue #7860\fP)
  269343. .IP \(bu 2
  269344. Improve traceroute support for FreeBSD and macOS (\fI\%issue #4927\fP)
  269345. .IP \(bu 2
  269346. Fix for matching minions under syndics (\fI\%issue #7671\fP)
  269347. .IP \(bu 2
  269348. Improve exception handling for missing ID (\fI\%issue #8259\fP)
  269349. .IP \(bu 2
  269350. Fix grain mismatch for ScientificLinux (\fI\%issue #8338\fP)
  269351. .IP \(bu 2
  269352. Add configuration option for minion_id_caching
  269353. .IP \(bu 2
  269354. Fix open mode auth errors (\fI\%issue #8402\fP)
  269355. .UNINDENT
  269356. .SS Salt 0.17.3 Release Notes
  269357. .INDENT 0.0
  269358. .TP
  269359. .B release
  269360. 2013\-12\-08
  269361. .UNINDENT
  269362. .sp
  269363. \fBNOTE:\fP
  269364. .INDENT 0.0
  269365. .INDENT 3.5
  269366. 0.17.3 had some regressions which were promptly fixed in the 0.17.4
  269367. release. Please use 0.17.4 instead.
  269368. .UNINDENT
  269369. .UNINDENT
  269370. .sp
  269371. Version 0.17.3 is another bugfix release for 0.17.0\&. The changes include:
  269372. .INDENT 0.0
  269373. .IP \(bu 2
  269374. Fix some jinja render errors (\fI\%issue #8418\fP)
  269375. .IP \(bu 2
  269376. Fix \fBfile.replace\fP state changing file ownership (\fI\%issue #8399\fP)
  269377. .IP \(bu 2
  269378. Fix state ordering with the PyDSL renderer (\fI\%issue #8446\fP)
  269379. .IP \(bu 2
  269380. Fix for new npm version (\fI\%issue #8517\fP)
  269381. .IP \(bu 2
  269382. Fix for pip state requiring \fBname\fP even with requirements file (\fI\%issue #8519\fP)
  269383. .IP \(bu 2
  269384. Fix yum logging to open terminals (\fI\%issue #3855\fP)
  269385. .IP \(bu 2
  269386. Add sane maxrunning defaults for scheduler (\fI\%issue #8563\fP)
  269387. .IP \(bu 2
  269388. Fix states duplicate key detection (\fI\%issue #8053\fP)
  269389. .IP \(bu 2
  269390. Fix SUSE patch level reporting (\fI\%issue #8428\fP)
  269391. .IP \(bu 2
  269392. Fix managed file creation umask (\fI\%issue #8590\fP)
  269393. .IP \(bu 2
  269394. Fix logstash exception (\fI\%issue #8635\fP)
  269395. .IP \(bu 2
  269396. Improve argument exception handling for salt command (\fI\%issue #8016\fP)
  269397. .IP \(bu 2
  269398. Fix pecl success reporting (\fI\%issue #8750\fP)
  269399. .IP \(bu 2
  269400. Fix launchctl module exceptions (\fI\%issue #8759\fP)
  269401. .IP \(bu 2
  269402. Fix argument order in pw_user module
  269403. .IP \(bu 2
  269404. Add warnings for failing grains (\fI\%issue #8690\fP)
  269405. .IP \(bu 2
  269406. Fix hgfs problems caused by connections left open (\fI\%issue #8811\fP and \fI\%issue #8810\fP)
  269407. .IP \(bu 2
  269408. Add Debian iptables default for iptables\-persistent package (\fI\%issue #8889\fP)
  269409. .IP \(bu 2
  269410. Fix installation of packages with dots in pkg name (\fI\%issue #8614\fP)
  269411. .IP \(bu 2
  269412. Fix noarch package installation on CentOS 6 (\fI\%issue #8945\fP)
  269413. .IP \(bu 2
  269414. Fix portage_config.enforce_nice_config (\fI\%issue #8252\fP)
  269415. .IP \(bu 2
  269416. Fix salt.util.copyfile umask usage (\fI\%issue #8590\fP)
  269417. .IP \(bu 2
  269418. Fix rescheduling of failed jobs (\fI\%issue #8941\fP)
  269419. .IP \(bu 2
  269420. Fix pkg on Amazon Linux (uses yumpkg5 now) (\fI\%issue #8226\fP)
  269421. .IP \(bu 2
  269422. Fix conflicting options in postgres module (\fI\%issue #8717\fP)
  269423. .IP \(bu 2
  269424. Fix ps modules for psutil >= 0.3.0 (\fI\%issue #7432\fP)
  269425. .IP \(bu 2
  269426. Fix postgres module to return False on failure (\fI\%issue #8778\fP)
  269427. .IP \(bu 2
  269428. Fix argument passing for args with pound signs (\fI\%issue #8585\fP)
  269429. .IP \(bu 2
  269430. Fix pid of salt CLi command showing in status.pid output (\fI\%issue #8720\fP)
  269431. .IP \(bu 2
  269432. Fix rvm to run gem as the correct user (\fI\%issue #8951\fP)
  269433. .IP \(bu 2
  269434. Fix namespace issue in win_file module (\fI\%issue #9060\fP)
  269435. .IP \(bu 2
  269436. Fix masterless state paths on windows (\fI\%issue #9021\fP)
  269437. .IP \(bu 2
  269438. Fix timeout option in master config (\fI\%issue #9040\fP)
  269439. .UNINDENT
  269440. .SS Salt 0.17.4 Release Notes
  269441. .INDENT 0.0
  269442. .TP
  269443. .B release
  269444. 2013\-12\-10
  269445. .UNINDENT
  269446. .sp
  269447. Version 0.17.4 is another bugfix release for 0.17.0\&. The changes include:
  269448. .INDENT 0.0
  269449. .IP \(bu 2
  269450. Fix file.replace bug when replacement str is numeric (\fI\%issue #9101\fP)
  269451. .IP \(bu 2
  269452. Fix regression in file.managed (\fI\%issue #9131\fP)
  269453. .IP \(bu 2
  269454. Prevent traceback when job is None. (\fI\%issue #9145\fP)
  269455. .UNINDENT
  269456. .SS Salt 0.17.5 Release Notes
  269457. .INDENT 0.0
  269458. .TP
  269459. .B release
  269460. 2014\-01\-27
  269461. .UNINDENT
  269462. .sp
  269463. Version 0.17.5 is another bugfix release for 0.17.0\&. The changes include:
  269464. .INDENT 0.0
  269465. .IP \(bu 2
  269466. Fix \fBuser.present\fP states with non\-string fullname (\fI\%issue #9085\fP)
  269467. .IP \(bu 2
  269468. Fix \fBvirt.init\fP return value on failure (\fI\%issue #6870\fP)
  269469. .IP \(bu 2
  269470. Fix reporting of \fBfile.blockreplace\fP state when \fBtest=True\fP
  269471. .IP \(bu 2
  269472. Fix \fBnetwork.interfaces\fP when used in cron (\fI\%issue #7990\fP)
  269473. .IP \(bu 2
  269474. Fix bug in pkgrepo when switching to/from mirrorlist\-based repo def (\fI\%issue #9121\fP)
  269475. .IP \(bu 2
  269476. Fix infinite recursion when cache file is corrupted
  269477. .IP \(bu 2
  269478. Add checking for rev and mirror/bare args in \fBgit.latest\fP (\fI\%issue #9107\fP)
  269479. .IP \(bu 2
  269480. Add \fBcmd.watch\fP alias (points to \fBcmd.wait\fP) (\fI\%issue #8612\fP)
  269481. .IP \(bu 2
  269482. Fix stacktrace when prereq is not formed as a list (\fI\%issue #8235\fP)
  269483. .IP \(bu 2
  269484. Fix stdin issue with lvdisplay command (\fI\%issue #9128\fP)
  269485. .IP \(bu 2
  269486. Add pre\-check function for range matcher (\fI\%issue #9236\fP)
  269487. .IP \(bu 2
  269488. Add exception handling for psutil for processes that go missing (\fI\%issue #9274\fP)
  269489. .IP \(bu 2
  269490. Allow \fB_in\fP requisites to match both on ID and name (\fI\%issue #9061\fP)
  269491. .IP \(bu 2
  269492. Fix multiple client timeout issues (\fI\%issue #7157\fP and \fI\%issue #9302\fP, probably others)
  269493. .IP \(bu 2
  269494. Fix \fBZMQError: Operation cannot be accomplished in current state\fP errors (\fI\%issue #6306\fP)
  269495. .IP \(bu 2
  269496. Multiple optimization in minion auth routines
  269497. .IP \(bu 2
  269498. Clarify logs for minion ID caching
  269499. .UNINDENT
  269500. .SS Salt 0.6.0 release notes
  269501. .sp
  269502. The Salt remote execution manager has reached initial functionality! Salt is a
  269503. management application which can be used to execute commands on remote sets of
  269504. servers.
  269505. .sp
  269506. The whole idea behind Salt is to create a system where a group of servers can
  269507. be remotely controlled from a single master, not only can commands be executed
  269508. on remote systems, but salt can also be used to gather information about your
  269509. server environment.
  269510. .sp
  269511. Unlike similar systems, like Func and MCollective, Salt is extremely simple to
  269512. setup and use, the entire application is contained in a single package, and the
  269513. master and minion daemons require no running dependencies in the way that Func
  269514. requires Certmaster and MCollective requires activeMQ.
  269515. .sp
  269516. Salt also manages authentication and encryption. Rather than using SSL for
  269517. encryption, salt manages encryption on a payload level, so the data sent across
  269518. the network is encrypted with fast AES encryption, and authentication uses RSA
  269519. keys. This means that Salt is fast, secure, and very efficient.
  269520. .sp
  269521. Messaging in Salt is executed with ZeroMQ, so the message passing interface is
  269522. built into salt and does not require an external ZeroMQ server. This also adds
  269523. speed to Salt since there is no additional bloat on the networking layer, and
  269524. ZeroMQ has already proven itself as a very fast networking system.
  269525. .sp
  269526. The remote execution in Salt is "Lazy Execution", in that once the command is
  269527. sent the requesting network connection is closed. This makes it easier to
  269528. detach the execution from the calling process on the master, it also means that
  269529. replies are cached, so that information gathered from historic commands can be
  269530. queried in the future.
  269531. .sp
  269532. Salt also allows users to make execution modules in Python. Writers of these
  269533. modules should also be pleased to know that they have access to the impressive
  269534. information gathered from PuppetLabs\(aq Facter application, making Salt module
  269535. more flexible. In the future I hope to also allow Salt to group servers based
  269536. on Facter information as well.
  269537. .sp
  269538. All in all Salt is fast, efficient, and clean, can be used from a simple command
  269539. line client or through an API, uses message queue technology to make network
  269540. execution extremely fast, and encryption is handled in a very fast and
  269541. efficient manner. Salt is also VERY easy to use and VERY easy to extend.
  269542. .sp
  269543. You can find the source code for Salt on my GitHub page, I have also set up a
  269544. few wiki pages explaining how to use and set up Salt. If you are using Arch
  269545. Linux there is a package available in the Arch Linux AUR.
  269546. .sp
  269547. GitHub page: \fI\%https://github.com/saltstack/salt\fP
  269548. .sp
  269549. Wiki: \fI\%https://github.com/saltstack/salt/wiki\fP
  269550. .sp
  269551. Arch Linux Package: \fI\%https://aur.archlinux.org/packages/salt\-git/\fP
  269552. .sp
  269553. I am very open to contributions, for instance I need packages for more Linux
  269554. distributions as well as BSD packages and testers.
  269555. .sp
  269556. Give Salt a try, this is the initial release and is not a 1.0 quality release,
  269557. but it has been working well for me! I am eager to get your feedback!
  269558. .SS Salt 0.7.0 release notes
  269559. .sp
  269560. I am pleased to announce the release of Salt 0.7.0!
  269561. .sp
  269562. This release marks what is the first stable release of salt, 0.7.0 should be
  269563. suitable for general use.
  269564. .sp
  269565. 0.7.0 Brings the following new features to Salt:
  269566. .INDENT 0.0
  269567. .IP \(bu 2
  269568. Integration with Facter data from puppet labs
  269569. .IP \(bu 2
  269570. Allow for matching minions from the salt client via Facter information
  269571. .IP \(bu 2
  269572. Minion job threading, many jobs can be executed from the master at once
  269573. .IP \(bu 2
  269574. Preview of master clustering support \- Still experimental
  269575. .IP \(bu 2
  269576. Introduce new minion modules for stats, virtualization, service management and more
  269577. .IP \(bu 2
  269578. Add extensive logging to the master and minion daemons
  269579. .IP \(bu 2
  269580. Add sys.reload_functions for dynamic function reloading
  269581. .IP \(bu 2
  269582. Greatly improve authentication
  269583. .IP \(bu 2
  269584. Introduce the saltkey command for managing public keys
  269585. .IP \(bu 2
  269586. Begin backend development preparatory to introducing butter
  269587. .IP \(bu 2
  269588. Addition of man pages for the core commands
  269589. .IP \(bu 2
  269590. Extended and cleaned configuration
  269591. .UNINDENT
  269592. .sp
  269593. 0.7.0 Fixes the following major bugs:
  269594. .INDENT 0.0
  269595. .IP \(bu 2
  269596. Fix crash in minions when matching failed
  269597. .IP \(bu 2
  269598. Fix configuration file lookups for the local client
  269599. .IP \(bu 2
  269600. Repair communication bugs in encryption
  269601. .IP \(bu 2
  269602. Numerous fixes in the minion modules
  269603. .UNINDENT
  269604. .sp
  269605. The next release of Salt should see the following features:
  269606. .INDENT 0.0
  269607. .IP \(bu 2
  269608. Stabilize the cluster support
  269609. .IP \(bu 2
  269610. Introduce a remote client for salt command tiers
  269611. .IP \(bu 2
  269612. salt\-ftp system for distributed file copies
  269613. .IP \(bu 2
  269614. Initial support for "butter"
  269615. .UNINDENT
  269616. .sp
  269617. Coming up next is a higher level management framework for salt called
  269618. Butter. I want salt to stay as a simple and effective communication
  269619. framework, and allow for more complicated executions to be managed via
  269620. Butter.
  269621. .sp
  269622. Right now Butter is being developed to act as a cloud controller using salt
  269623. as the communication layer, but features like system monitoring and advanced
  269624. configuration control (a puppet manager) are also in the pipe.
  269625. .sp
  269626. Special thanks to Joseph Hall for the status and network modules, and thanks
  269627. to Matthias Teege for tracking down some configuration bugs!
  269628. .sp
  269629. Salt can be downloaded from the following locations;
  269630. .sp
  269631. Arch Linux Package:
  269632. .sp
  269633. \fI\%https://aur.archlinux.org/packages/salt\-git/\fP
  269634. .sp
  269635. Please enjoy the latest Salt release!
  269636. .SS Salt 0.8.0 release notes
  269637. .sp
  269638. Salt 0.8.0 is ready for general consumption!
  269639. The source tarball is available on GitHub for download:
  269640. .sp
  269641. A lot of work has gone into salt since the last release just 2 weeks ago, and
  269642. salt has improved a great deal. A swath of new features are here along with
  269643. performance and threading improvements!
  269644. .sp
  269645. The main new features of salt 0.8.0 are:
  269646. .sp
  269647. Salt\-cp
  269648. .sp
  269649. Cython minion modules
  269650. .sp
  269651. Dynamic returners
  269652. .sp
  269653. Faster return handling
  269654. .sp
  269655. Lowered required Python version to 2.6
  269656. .sp
  269657. Advanced minion threading
  269658. .sp
  269659. Configurable minion modules
  269660. .SS Salt\-cp
  269661. .sp
  269662. The salt\-cp command introduces the ability to copy simple files via salt to
  269663. targeted servers. Using salt\-cp is very simple, just call salt\-cp with a target
  269664. specification, the source file(s) and where to copy the files on the minions.
  269665. For instance:
  269666. .sp
  269667. # salt\-cp ‘*’ /etc/hosts /etc/hosts
  269668. .sp
  269669. Will copy the local /etc/hosts file to all of the minions.
  269670. .sp
  269671. Salt\-cp is very young, in the future more advanced features will be added, and
  269672. the functionality will much more closely resemble the cp command.
  269673. .SS Cython minion modules
  269674. .sp
  269675. Cython is an amazing tool used to compile Python modules down to c. This is
  269676. arguably the fastest way to run Python code, and since pyzmq requires cython,
  269677. adding support to salt for cython adds no new dependencies.
  269678. .sp
  269679. Cython minion modules allow minion modules to be written in cython and
  269680. therefore executed in compiled c. Simply write the salt module in cython and
  269681. use the file extension “.pyx” and the minion module will be compiled when
  269682. the minion is started. An example cython module is included in the main
  269683. distribution called cytest.pyx:
  269684. .sp
  269685. \fI\%https://github.com/saltstack/salt/blob/master/salt/modules/cytest.pyx\fP
  269686. .SS Dynamic Returners
  269687. .sp
  269688. By default salt returns command data back to the salt master, but now salt can
  269689. return command data to any system. This is enabled via the new returners
  269690. modules feature for salt. The returners modules take the return data and sends
  269691. it to a specific module. The returner modules work like minion modules, so any
  269692. returner can be added to the minions.
  269693. .sp
  269694. This means that a custom data returner can be added to communicate the return
  269695. data so anything from MySQL, Redis, MongoDB, and more!
  269696. .sp
  269697. There are 2 simple stock returners in the returners directory:
  269698. .sp
  269699. \fI\%https://github.com/saltstack/salt/blob/master/salt/returners\fP
  269700. .sp
  269701. The documentation on writing returners will be added to the wiki shortly, and
  269702. returners can be written in pure Python, or in cython.
  269703. .SS Configurable Minion Modules
  269704. .sp
  269705. Minion modules may need to be configured, now the options passed to the minion
  269706. configuration file can be accessed inside of the minion modules via the __opt__
  269707. dict.
  269708. .sp
  269709. Information on how to use this simple addition has been added to the wiki:
  269710. Writing modules
  269711. .sp
  269712. The test module has an example of using the __opts__ dict, and how to set
  269713. default options:
  269714. .sp
  269715. \fI\%https://github.com/saltstack/salt/blob/master/salt/modules/test.py\fP
  269716. .SS Advanced Minion Threading
  269717. .sp
  269718. In 0.7.0 the minion would block after receiving a command from the master, now
  269719. the minion will spawn a thread or multiprocess. By default Python threads are
  269720. used because for general use they have proved to be faster, but the minion can
  269721. now be configured to use the Python multiprocessing module instead. Using
  269722. multiprocessing will cause executions that are CPU bound or would otherwise
  269723. exploit the negative aspects of the Python GIL to run faster and more reliably,
  269724. but simple calls will still be faster with Python threading.
  269725. The configuration option can be found in the minion configuration file:
  269726. .sp
  269727. \fI\%https://github.com/saltstack/salt/blob/master/conf/minion\fP
  269728. .SS Lowered Supported Python to 2.6
  269729. .sp
  269730. The requirement for Python 2.7 has been removed to support Python 2.6. I have
  269731. received requests to take the minimum Python version back to 2.4, but
  269732. unfortunately this will not be possible, since the ZeroMQ Python bindings do
  269733. not support Python 2.4.
  269734. .sp
  269735. Salt 0.8.0 is a very major update, it also changes the network protocol slightly
  269736. which makes communication with older salt daemons impossible, your master and
  269737. minions need to be upgraded together!
  269738. .sp
  269739. I could use some help bringing salt to the people! Right now I only have
  269740. packages for Arch Linux, Fedora 14 and Gentoo. We need packages for Debian and
  269741. people willing to help test on more platforms. We also need help writing more
  269742. minion modules and returner modules. If you want to contribute to salt please
  269743. hop on the mailing list and send in patches, make a fork on GitHub and send in
  269744. pull requests! If you want to help but are not sure where you can, please email
  269745. me directly or post tot he mailing list!
  269746. .sp
  269747. I hope you enjoy salt, while it is not yet 1.0 salt is completely viable and
  269748. usable!
  269749. .sp
  269750. \-Thomas S. Hatch
  269751. .SS Salt 0.8.7 release notes
  269752. .sp
  269753. It has been a month since salt 0.8.0, and it has been a long month! But Salt is
  269754. still coming along strong. 0.8.7 has a lot of changes and a lot of updates.
  269755. This update makes Salt’s ZeroMQ back end better, strips Facter from the
  269756. dependencies, and introduces interfaces to handle more capabilities.
  269757. .sp
  269758. Many of the major updates are in the background, but the changes should shine
  269759. through to the surface. A number of the new features are still a little thin,
  269760. but the back end to support expansion is in place.
  269761. .sp
  269762. I also recently gave a presentation to the Utah Python users group in Salt Lake
  269763. City, the slides from this presentation are available here:
  269764. .sp
  269765. The video from this presentation will be available shortly.
  269766. .sp
  269767. The major new features and changes in Salt 0.8.7 are:
  269768. .INDENT 0.0
  269769. .IP \(bu 2
  269770. Revamp ZeroMQ topology on the master for better scalability
  269771. .IP \(bu 2
  269772. State enforcement
  269773. .IP \(bu 2
  269774. Dynamic state enforcement managers
  269775. .IP \(bu 2
  269776. Extract the module loader into salt.loader
  269777. .IP \(bu 2
  269778. Make Job ids more granular
  269779. .IP \(bu 2
  269780. Replace Facter functionality with the new salt grains interface
  269781. .IP \(bu 2
  269782. Support for “virtual” salt modules
  269783. .IP \(bu 2
  269784. Introduce the salt\-call command
  269785. .IP \(bu 2
  269786. Better debugging for minion modules
  269787. .UNINDENT
  269788. .sp
  269789. The new ZeroMQ topology allows for better scalability, this will be required by
  269790. the need to execute massive file transfers to multiple machines in parallel and
  269791. state management. The new ZeroMQ topology is available in the aforementioned
  269792. presentation.
  269793. .sp
  269794. 0.8.7 introduces the capability to declare states, this is similar to the
  269795. capabilities of Puppet. States in salt are declared via state data structures.
  269796. This system is very young, but the core feature set is available. Salt states
  269797. work around rendering files which represent Salt high data. More on the Salt
  269798. state system will be documented in the near future.
  269799. .sp
  269800. The system for loading salt modules has been pulled out of the minion class to
  269801. be a standalone module, this has enabled more dynamic loading of Salt modules
  269802. and enables many of the updates in 0.8.7 –
  269803. .sp
  269804. \fI\%https://github.com/saltstack/salt/blob/master/salt/loader.py\fP
  269805. .sp
  269806. Salt Job ids are now microsecond precise, this was needed to repair a race
  269807. condition unveiled by the speed improvements in the new ZeroMQ topology.
  269808. .sp
  269809. The new grains interface replaces the functionality of Facter, the idea behind
  269810. grains differs from Facter in that the grains are only used for static system
  269811. data, dynamic data needs to be derived from a call to a salt module. This makes
  269812. grains much faster to use, since the grains data is generated when the minion
  269813. starts.
  269814. .sp
  269815. Virtual salt modules allows for a salt module to be presented as something
  269816. other than its module name. The idea here is that based on information from the
  269817. minion decisions about which module should be presented can be made. The best
  269818. example is the pacman module. The pacman module will only load on Arch Linux
  269819. minions, and will be called pkg. Similarly the yum module will be presented as
  269820. pkg when the minion starts on a Fedora/RedHat system.
  269821. .sp
  269822. The new salt\-call command allows for minion modules to be executed from the
  269823. minion. This means that on the minion a salt module can be executed, this is a
  269824. great tool for testing Salt modules. The salt\-call command can also be used to
  269825. view the grains data.
  269826. .sp
  269827. In previous releases when a minion module threw an exception very little data
  269828. was returned to the master. Now the stack trace from the failure is returned
  269829. making debugging of minion modules MUCH easier.
  269830. .sp
  269831. Salt is nearing the goal of 1.0, where the core feature set and capability is
  269832. complete!
  269833. .sp
  269834. \-Thomas S Hatch
  269835. .SS Salt 0.8.8 release notes
  269836. .sp
  269837. Salt 0.8.8 is here! This release adds a great deal of code and some serious new
  269838. features.
  269839. .sp
  269840. Improved Documentation has been set up for salt using sphinx thanks to the
  269841. efforts of Seth House. This new documentation system will act as the back end
  269842. to the salt website which is still under heavy development. The new sphinx
  269843. documentation system has also been used to greatly clean up the salt manpages.
  269844. The salt 7 manpage in particular now contains extensive information which was
  269845. previously only in the wiki. The new documentation can be found at:
  269846. \fI\%http://docs.saltstack.com/\fP
  269847. We still have a lot to add, and when the domain is set up I will post another
  269848. announcement.
  269849. .sp
  269850. More additions have been made to the ZeroMQ setup, particularly in the realm
  269851. of file transfers. Salt 0.8.8 introduces a built in, stateless, encrypted file
  269852. server which allows salt minions to download files from the salt master using
  269853. the same encryption system used for all other salt communications. The main
  269854. motivation for the salt file server has been to facilitate the new salt state
  269855. system.
  269856. .sp
  269857. Much of the salt code has been cleaned up and a new cleaner logging system has
  269858. been introduced thanks to the efforts of Pedro Algarvio. These additions will
  269859. allow for much more flexible logging to be executed by salt, and fixed a great
  269860. deal of my poor spelling in the salt docstrings! Pedro Algarvio has also
  269861. cleaned up the API, making it easier to embed salt into another application.
  269862. .sp
  269863. The biggest addition to salt found in 0.8.8 is the new state system. The salt
  269864. module system has received a new front end which allows salt to be used as a
  269865. configuration management system. The configuration management system allows for
  269866. system configuration to be defined in data structures. The configuration
  269867. management system, or as it is called in salt, the “salt state system” supports
  269868. many of the features found in other configuration managers, but allows for
  269869. system states to be written in a far simpler format, executes at blazing speeds,
  269870. and operates via the salt minion matching system. The state system also operates
  269871. within the normal scope of salt, and requires no additional configuration to
  269872. use.
  269873. .sp
  269874. The salt state system can enforce the following states with many more to come:
  269875. Packages
  269876. Files
  269877. Services
  269878. Executing commands
  269879. Hosts
  269880. .sp
  269881. The system used to define the salt states is based on a data structure, the
  269882. data structure used to define the salt states has been made to be as easy to
  269883. use as possible. The data structure is defined by default using a YAML file
  269884. rendered via a Jinja template. This means that the state definition language
  269885. supports all of the data structures that YAML supports, and all of the
  269886. programming constructs and logic that Jinja supports. If the user does not
  269887. like YAML or Jinja the states can be defined in yaml\-mako, json\-jinja, or
  269888. json\-mako. The system used to render the states is completely dynamic, and any
  269889. rendering system can be added to the capabilities of Salt, this means that a
  269890. rendering system that renders XML data in a cheetah template, or whatever you
  269891. can imagine, can be easily added to the capabilities of salt.
  269892. .sp
  269893. The salt state system also supports isolated environments, as well as matching
  269894. code from several environments to a single salt minion.
  269895. .sp
  269896. The feature base for Salt has grown quite a bit since my last serious
  269897. documentation push. As we approach 0.9.0 the goals are becoming very clear, and
  269898. the documentation needs a lot of work. The main goals for 0.9.0 are to further
  269899. refine the state system, fix any bugs we find, get Salt running on as many
  269900. platforms as we can, and get the documentation filled out. There is a lot more
  269901. to come as Salt moves forward to encapsulate a much larger scope, while
  269902. maintaining supreme usability and simplicity.
  269903. .sp
  269904. If you would like a more complete overview of Salt please watch the Salt
  269905. presentation:
  269906. Slides:
  269907. .sp
  269908. \-Thomas S Hatch
  269909. .SS Salt 0.8.9 Release Notes
  269910. .sp
  269911. Salt 0.8.9 has finally arrived! Unfortunately this is much later than I had
  269912. hoped to release 0.8.9, life has been very crazy over the last month. But
  269913. despite challenges, Salt has moved forward!
  269914. .sp
  269915. This release, as expected, adds few new features and many refinements. One
  269916. of the most exciting aspect of this release is that the development community
  269917. for salt has grown a great deal and much of the code is from contributors.
  269918. .sp
  269919. Also, I have filled out the documentation a great deal. So information on
  269920. States is properly documented, and much of the documentation that was out of
  269921. date has been filled in.
  269922. .SS Download!
  269923. .sp
  269924. The Salt source can be downloaded from PyPI:
  269925. .sp
  269926. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.8.9.tar.gz\fP
  269927. .sp
  269928. Here s the md5sum:
  269929. .sp
  269930. 7d5aca4633bc22f59045f59e82f43b56
  269931. .sp
  269932. For instructions on how to set up Salt please see the installation
  269933. instructions.
  269934. .SS New Features
  269935. .SS Salt Run
  269936. .sp
  269937. A big feature is the addition of Salt run, the \fBsalt\-run\fP command allows for
  269938. master side execution modules to be made that gather specific information or
  269939. execute custom routines from the master.
  269940. .sp
  269941. Documentation for salt\-run can be found here
  269942. .SS Refined Outputters
  269943. .sp
  269944. One problem often complained about in salt was the fact that the output was
  269945. so messy. Thanks to help from Jeff Schroeder a cleaner interface for the
  269946. command output for the Salt CLI has been made. This new interface makes
  269947. adding new printout formats easy and additions to the capabilities of minion
  269948. modules makes it possible to set the printout mode or \fBoutputter\fP for
  269949. functions in minion modules.
  269950. .SS Cross Calling Salt Modules
  269951. .sp
  269952. Salt modules can now call each other, the \fB__salt__\fP dict has been added to
  269953. the predefined references in minion modules. This new feature is documented in
  269954. the modules documentation\&.
  269955. .SS Watch Option Added to Salt State System
  269956. .sp
  269957. Now in Salt states you can set the watch option, this will allow watch enabled
  269958. states to change based on a change in the other defined states. This is similar
  269959. to subscribe and notify statements in puppet.
  269960. .SS Root Dir Option
  269961. .sp
  269962. Travis Cline has added the ability to define the option \fBroot_dir\fP which
  269963. allows the salt minion to operate in a subdir. This is a strong move in
  269964. supporting the minion running as an unprivileged user
  269965. .SS Config Files Defined in Variables
  269966. .sp
  269967. Thanks again to Travis Cline, the master and minion configuration file locations
  269968. can be defined in environment variables now.
  269969. .SS New Modules
  269970. .sp
  269971. Quite a few new modules, states, returners, and runners have been made.
  269972. .SS New Minion Modules
  269973. .SS apt
  269974. .sp
  269975. Support for apt\-get has been added, this adds greatly improved Debian and
  269976. Ubuntu support to Salt!
  269977. .SS useradd and groupadd
  269978. .sp
  269979. Support for manipulating users and groups on Unix\-like systems.
  269980. .SS moosefs
  269981. .sp
  269982. Initial support for reporting on aspects of the distributed file system,
  269983. MooseFS. For more information on MooseFS please see: \fI\%http://www.moosefs.org\fP
  269984. .sp
  269985. Thanks to Joseph Hall for his work on MooseFS support.
  269986. .SS mount
  269987. .sp
  269988. Manage mounts and the fstab.
  269989. .SS puppet
  269990. .sp
  269991. Execute puppet on remote systems.
  269992. .SS shadow
  269993. .sp
  269994. Manipulate and manage the user password file.
  269995. .SS ssh
  269996. .sp
  269997. Interact with ssh keys.
  269998. .SS New States
  269999. .SS user and group
  270000. .sp
  270001. Support for managing users and groups in Salt States.
  270002. .SS mount
  270003. .sp
  270004. Enforce mounts and the fstab.
  270005. .SS New Returners
  270006. .SS mongo_return
  270007. .sp
  270008. Send the return information to a MongoDB server.
  270009. .SS New Runners
  270010. .SS manage
  270011. .sp
  270012. Display minions that are up or down.
  270013. .SS Salt 0.9.0 Release Notes
  270014. .INDENT 0.0
  270015. .TP
  270016. .B release
  270017. 2011\-08\-27
  270018. .UNINDENT
  270019. .sp
  270020. Salt 0.9.0 is here. This is an exciting release, 0.9.0 includes the new network
  270021. topology features allowing peer salt commands and masters of masters via the
  270022. syndic interface.
  270023. .sp
  270024. 0.9.0 also introduces many more modules, improvements to the API and
  270025. improvements to the ZeroMQ systems.
  270026. .SS Download!
  270027. .sp
  270028. The Salt source can be downloaded from PyPI:
  270029. .sp
  270030. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.0.tar.gz\fP
  270031. .sp
  270032. Here is the md5sum:
  270033. .sp
  270034. 9a925da04981e65a0f237f2e77ddab37
  270035. .sp
  270036. For instructions on how to set up Salt please see the installation
  270037. instructions.
  270038. .SS New Features
  270039. .SS Salt Syndic
  270040. .sp
  270041. The new Syndic interface allows a master to be
  270042. commanded via another higher level salt master. This is a powerful solution
  270043. allowing a master control structure to exist, allowing salt to scale to much
  270044. larger levels then before.
  270045. .SS Peer Communication
  270046. .sp
  270047. 0.9.0 introduces the capability for a minion to call a publication on the
  270048. master and receive the return from another set of minions. This allows salt
  270049. to act as a communication channel between minions and as a general
  270050. infrastructure message bus.
  270051. .sp
  270052. Peer communication is turned off by default but can be enabled via the \fBpeer\fP
  270053. option in the master configuration file. Documentation on the new Peer
  270054. interface\&.
  270055. .SS Easily Extensible API
  270056. .sp
  270057. The minion and master classes have been redesigned to allow for specialized
  270058. minion and master servers to be easily created. An example on how this is done
  270059. for the master can be found in the \fBmaster.py\fP salt module:
  270060. .sp
  270061. \fI\%https://github.com/saltstack/salt/blob/master/salt/master.py\fP
  270062. .sp
  270063. The \fBMaster\fP class extends the \fBSMaster\fP class and set up the main master
  270064. server.
  270065. .sp
  270066. The minion functions can now also be easily added to another application via
  270067. the \fBSMinion\fP class, this class can be found in the \fBminion.py\fP module:
  270068. .sp
  270069. \fI\%https://github.com/saltstack/salt/blob/master/salt/minion.py\fP
  270070. .SS Cleaner Key Management
  270071. .sp
  270072. This release changes some of the key naming to allow for multiple master keys
  270073. to be held based on the type of minion gathering the master key.
  270074. .sp
  270075. The \-d option has also been added to the salt\-key command allowing for easy
  270076. removal of accepted public keys.
  270077. .sp
  270078. The \-\-gen\-keys option is now available as well for salt\-key, this allows
  270079. for a salt specific RSA key pair to be easily generated from the command line.
  270080. .SS Improved 0MQ Master Workers
  270081. .sp
  270082. The 0MQ worker system has been further refined to be faster and more robust.
  270083. This new system has been able to handle a much larger load than the previous
  270084. setup. The new system uses the IPC protocol in 0MQ instead of TCP.
  270085. .SS New Modules
  270086. .sp
  270087. Quite a few new modules have been made.
  270088. .SS New Minion Modules
  270089. .SS apache
  270090. .sp
  270091. Work directly with apache servers, great for managing balanced web servers
  270092. .SS cron
  270093. .sp
  270094. Read out the contents of a systems crontabs
  270095. .SS mdadm
  270096. .sp
  270097. Module to manage raid devices in Linux, appears as the \fBraid\fP module
  270098. .SS mysql
  270099. .sp
  270100. Gather simple data from MySQL databases
  270101. .SS ps
  270102. .sp
  270103. Extensive utilities for managing processes
  270104. .SS publish
  270105. .sp
  270106. Used by the peer interface to allow minions to make publications
  270107. .SS Salt 0.9.1 Release Notes
  270108. .INDENT 0.0
  270109. .TP
  270110. .B release
  270111. 2011\-08\-29
  270112. .UNINDENT
  270113. .SS Salt 0.9.2 Release Notes
  270114. .INDENT 0.0
  270115. .TP
  270116. .B release
  270117. 2011\-09\-17
  270118. .UNINDENT
  270119. .sp
  270120. Salt 0.9.2 has arrived! 0.9.2 is primarily a bugfix release, the exciting
  270121. component in 0.9.2 is greatly improved support for salt states. All of the
  270122. salt states interfaces have been more thoroughly tested and the new salt\-states
  270123. git repo is growing with example of how to use states.
  270124. .sp
  270125. This release introduces salt states for early developers and testers to start
  270126. helping us clean up the states interface and make it ready for the world!
  270127. .sp
  270128. 0.9.2 also fixes a number of bugs found on Python 2.6.
  270129. .SS Download!
  270130. .sp
  270131. The Salt source can be downloaded from PyPI:
  270132. .sp
  270133. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.2.tar.gz\fP
  270134. .sp
  270135. For instructions on how to set up Salt please see the installation
  270136. instructions.
  270137. .SS New Features
  270138. .SS Salt\-Call Additions
  270139. .sp
  270140. The salt\-call command has received an overhaul, it now hooks into the outputter
  270141. system so command output looks clean, and the logging system has been hooked
  270142. into salt\-call, so the \-l option allows the logging output from salt minion
  270143. functions to be displayed.
  270144. .sp
  270145. The end result is that the salt\-call command can execute the state system and
  270146. return clean output:
  270147. .INDENT 0.0
  270148. .INDENT 3.5
  270149. .sp
  270150. .nf
  270151. .ft C
  270152. # salt\-call state.highstate
  270153. .ft P
  270154. .fi
  270155. .UNINDENT
  270156. .UNINDENT
  270157. .SS State System Fixes
  270158. .sp
  270159. The state system has been tested and better refined. As of this release the
  270160. state system is ready for early testers to start playing with. If you are
  270161. interested in working with the state system please check out the (still very
  270162. small) salt\-states GitHub repo:
  270163. .sp
  270164. \fI\%https://github.com/SS\-archive/salt\-states\fP
  270165. .sp
  270166. This git repo is the active development branch for determining how a clean
  270167. salt\-state database should look and act. Since the salt state system is still
  270168. very young a lot of help is still needed here. Please fork the salt\-states
  270169. repo and help us develop a truly large and scalable system for configuration
  270170. management!
  270171. .SS Notable Bug Fixes
  270172. .SS Python 2.6 String Formatting
  270173. .sp
  270174. Python 2.6 does not support format strings without an index identifier, all of
  270175. them have been repaired.
  270176. .SS Cython Loading Disabled by Default
  270177. .sp
  270178. Cython loading requires a development tool chain to be installed on the minion,
  270179. requiring this by default can cause problems for most Salt deployments. If
  270180. Cython auto loading is desired it will need to be turned on in the minion
  270181. config.
  270182. .SS Salt 0.9.3 Release Notes
  270183. .INDENT 0.0
  270184. .TP
  270185. .B release
  270186. 2011\-11\-05
  270187. .UNINDENT
  270188. .sp
  270189. Salt 0.9.3 is finally arrived. This is another big step forward for Salt, new
  270190. features range from proper FreeBSD support to fixing issues seen when
  270191. attaching a minion to a master over the Internet.
  270192. .sp
  270193. The biggest improvements in 0.9.3 though can be found in the state system, it
  270194. has progressed from something ready for early testers to a system ready to
  270195. compete with platforms such as Puppet and Chef. The backbone of the state
  270196. system has been greatly refined and many new features are available.
  270197. .SS Download!
  270198. .sp
  270199. The Salt source can be downloaded from PyPI:
  270200. .sp
  270201. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.3.tar.gz\fP
  270202. .sp
  270203. For instructions on how to set up Salt please see the installation
  270204. instructions.
  270205. .SS New Features
  270206. .SS WAN Support
  270207. .sp
  270208. Recently more people have been testing Salt minions connecting to Salt Masters
  270209. over the Internet. It was found that Minions would commonly loose their
  270210. connection to the master when working over the internet. The minions can now
  270211. detect if the connection has been lost and reconnect to the master, making
  270212. WAN connections much more reliable.
  270213. .SS State System Fixes
  270214. .sp
  270215. Substantial testing has gone into the state system and it is ready for real
  270216. world usage. A great deal has been added to the documentation for states and
  270217. the modules and functions available to states have been cleanly documented.
  270218. .sp
  270219. A number of State System bugs have also been founds and repaired, the output
  270220. from the state system has also been refined to be extremely clear and concise.
  270221. .sp
  270222. Error reporting has also been introduced, issues found in sls files will now
  270223. be clearly reported when executing Salt States.
  270224. .SS Extend Declaration
  270225. .sp
  270226. The Salt States have also gained the \fBextend\fP declaration. This declaration
  270227. allows for states to be cleanly modified in a post environment. Simply said,
  270228. if there is an apache.sls file that declares the apache service, then another
  270229. sls can include apache and then extend it:
  270230. .INDENT 0.0
  270231. .INDENT 3.5
  270232. .sp
  270233. .nf
  270234. .ft C
  270235. include:
  270236. \- apache
  270237. extend:
  270238. apache:
  270239. service:
  270240. \- require:
  270241. \- pkg: mod_python
  270242. mod_python:
  270243. pkg:
  270244. \- installed
  270245. .ft P
  270246. .fi
  270247. .UNINDENT
  270248. .UNINDENT
  270249. .sp
  270250. The notable behavior with the extend functionality is that it literally extends
  270251. or overwrites a declaration set up in another sls module. This means that Salt
  270252. will behave as though the modifications were made directly to the apache sls.
  270253. This ensures that the apache service in this example is directly tied to all
  270254. requirements.
  270255. .SS Highstate Structure Specification
  270256. .sp
  270257. This release comes with a clear specification of the Highstate data structure
  270258. that is used to declare Salt States. This specification explains everything
  270259. that can be declared in the Salt SLS modules.
  270260. .sp
  270261. The specification is extremely simple, and illustrates how Salt has been able
  270262. to fulfill the requirements of a central configuration manager within a simple
  270263. and easy to understand format and specification.
  270264. .SS SheBang Renderer Switch
  270265. .sp
  270266. It came to our attention that having many renderers means that there may be a
  270267. situation where more than one State Renderer should be available within a
  270268. single State Tree.
  270269. .sp
  270270. The method chosen to accomplish this was something already familiar to
  270271. developers and systems administrators, a SheBang. The Python State Renderer
  270272. displays this new capability.
  270273. .SS Python State Renderer
  270274. .sp
  270275. Until now Salt States could only be declared in yaml or json using Jinja or
  270276. Mako. A new, very powerful, renderer has been added, making it possible to
  270277. write Salt States in pure Python:
  270278. .INDENT 0.0
  270279. .INDENT 3.5
  270280. .sp
  270281. .nf
  270282. .ft C
  270283. #!py
  270284. def run():
  270285. """
  270286. Install the python\-mako package
  270287. """
  270288. return {"include": ["python"], "python\-mako": {"pkg": ["installed"]}}
  270289. .ft P
  270290. .fi
  270291. .UNINDENT
  270292. .UNINDENT
  270293. .sp
  270294. This renderer is used by making a run function that returns the Highstate data
  270295. structure. Any capabilities of Python can be used in pure Python sls modules.
  270296. .sp
  270297. This example of a pure Python sls module is the same as this example in yaml:
  270298. .INDENT 0.0
  270299. .INDENT 3.5
  270300. .sp
  270301. .nf
  270302. .ft C
  270303. include:
  270304. \- python
  270305. python\-mako:
  270306. pkg:
  270307. \- installed
  270308. .ft P
  270309. .fi
  270310. .UNINDENT
  270311. .UNINDENT
  270312. .SS FreeBSD Support
  270313. .sp
  270314. Additional support has been added for FreeBSD, this is Salt\(aqs first branch out
  270315. of the Linux world and proves the viability of Salt on non\-Linux platforms.
  270316. .sp
  270317. Salt remote execution already worked on FreeBSD, and should work without issue
  270318. on any Unix\-like platform. But this support comes in the form of package
  270319. management and user support, so Salt States also work on FreeBSD now.
  270320. .sp
  270321. The new freebsdpkg module provides package management support for FreeBSD
  270322. and the new pw_user and pw_group provide user and group management.
  270323. .SS Module and State Additions
  270324. .SS Cron Support
  270325. .sp
  270326. Support for managing the system crontab has been added, declaring a cron state
  270327. can be done easily:
  270328. .INDENT 0.0
  270329. .INDENT 3.5
  270330. .sp
  270331. .nf
  270332. .ft C
  270333. date > /tmp/datestamp:
  270334. cron:
  270335. \- present
  270336. \- user: fred
  270337. \- minute: 5
  270338. \- hour: 3
  270339. .ft P
  270340. .fi
  270341. .UNINDENT
  270342. .UNINDENT
  270343. .SS File State Additions
  270344. .sp
  270345. The file state has been given a number of new features, primarily the
  270346. directory, recurse, symlink, and absent functions.
  270347. .INDENT 0.0
  270348. .TP
  270349. .B file.directory
  270350. Make sure that a directory exists and has the right permissions.
  270351. .INDENT 7.0
  270352. .INDENT 3.5
  270353. .sp
  270354. .nf
  270355. .ft C
  270356. /srv/foo:
  270357. file:
  270358. \- directory
  270359. \- user: root
  270360. \- group: root
  270361. \- mode: 1755
  270362. .ft P
  270363. .fi
  270364. .UNINDENT
  270365. .UNINDENT
  270366. .TP
  270367. .B file.symlink
  270368. Make a symlink.
  270369. .INDENT 7.0
  270370. .INDENT 3.5
  270371. .sp
  270372. .nf
  270373. .ft C
  270374. /var/lib/www:
  270375. file:
  270376. \- symlink
  270377. \- target: /srv/www
  270378. \- force: True
  270379. .ft P
  270380. .fi
  270381. .UNINDENT
  270382. .UNINDENT
  270383. .TP
  270384. .B file.recurse
  270385. The recurse state function will recursively download a directory on the
  270386. master file server and place it on the minion. Any change in the files on
  270387. the master will be pushed to the minion. The recurse function is very
  270388. powerful and has been tested by pushing out the full Linux kernel source.
  270389. .INDENT 7.0
  270390. .INDENT 3.5
  270391. .sp
  270392. .nf
  270393. .ft C
  270394. /opt/code:
  270395. file:
  270396. \- recurse
  270397. \- source: salt://linux
  270398. .ft P
  270399. .fi
  270400. .UNINDENT
  270401. .UNINDENT
  270402. .TP
  270403. .B file.absent
  270404. Make sure that the file is not on the system, recursively deletes
  270405. directories, files, and symlinks.
  270406. .INDENT 7.0
  270407. .INDENT 3.5
  270408. .sp
  270409. .nf
  270410. .ft C
  270411. /etc/httpd/conf.d/somebogusfile.conf:
  270412. file:
  270413. \- absent
  270414. .ft P
  270415. .fi
  270416. .UNINDENT
  270417. .UNINDENT
  270418. .UNINDENT
  270419. .SS Sysctl Module and State
  270420. .sp
  270421. The sysctl module and state allows for sysctl components in the kernel to be
  270422. managed easily. the sysctl module contains the following functions:
  270423. .INDENT 0.0
  270424. .TP
  270425. .B sysctl.show
  270426. Return a list of sysctl parameters for this minion
  270427. .TP
  270428. .B sysctl.get
  270429. Return a single sysctl parameter for this minion
  270430. .TP
  270431. .B sysctl.assign
  270432. Assign a single sysctl parameter for this minion
  270433. .TP
  270434. .B sysctl.persist
  270435. Assign and persist a simple sysctl parameter for this minion
  270436. .UNINDENT
  270437. .sp
  270438. The sysctl state allows for sysctl parameters to be assigned:
  270439. .INDENT 0.0
  270440. .INDENT 3.5
  270441. .sp
  270442. .nf
  270443. .ft C
  270444. vm.swappiness:
  270445. sysctl:
  270446. \- present
  270447. \- value: 20
  270448. .ft P
  270449. .fi
  270450. .UNINDENT
  270451. .UNINDENT
  270452. .SS Kernel Module Management
  270453. .sp
  270454. A module for managing Linux kernel modules has been added. The new functions
  270455. are as follows:
  270456. .INDENT 0.0
  270457. .TP
  270458. .B kmod.available
  270459. Return a list of all available kernel modules
  270460. .TP
  270461. .B kmod.check_available
  270462. Check to see if the specified kernel module is available
  270463. .TP
  270464. .B kmod.lsmod
  270465. Return a dict containing information about currently loaded modules
  270466. .TP
  270467. .B kmod.load
  270468. Load the specified kernel module
  270469. .TP
  270470. .B kmod.remove
  270471. Unload the specified kernel module
  270472. .UNINDENT
  270473. .sp
  270474. The kmod state can enforce modules be either present or absent:
  270475. .INDENT 0.0
  270476. .INDENT 3.5
  270477. .sp
  270478. .nf
  270479. .ft C
  270480. kvm_intel:
  270481. kmod:
  270482. \- present
  270483. .ft P
  270484. .fi
  270485. .UNINDENT
  270486. .UNINDENT
  270487. .SS Ssh Authorized Keys
  270488. .sp
  270489. The ssh_auth state can distribute ssh authorized keys out to minions. Ssh
  270490. authorized keys can be present or absent.
  270491. .INDENT 0.0
  270492. .INDENT 3.5
  270493. .sp
  270494. .nf
  270495. .ft C
  270496. AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyYvlRBsJdDOo49CNfhlWHWXQRqul6rwL4KIuPrhY7hBw0tV7UNC7J9IZRNO4iGod9C+OYutuWGJ2x5YNf7P4uGhH9AhBQGQ4LKOLxhDyT1OrDKXVFw3wgY3rHiJYAbd1PXNuclJHOKL27QZCRFjWSEaSrUOoczvAAAAFQD9d4jp2dCJSIseSkk4Lez3LqFcqQAAAIAmovHIVSrbLbXAXQE8eyPoL9x5C+x2GRpEcA7AeMH6bGx/xw6NtnQZVMcmZIre5Elrw3OKgxcDNomjYFNHuOYaQLBBMosyO++tJe1KTAr3A2zGj2xbWO9JhEzu8xvSdF8jRu0N5SRXPpzSyU4o1WGIPLVZSeSq1VFTHRT4lXB7PQAAAIBXUz6ZO0bregF5xtJRuxUN583HlfQkXvxLqHAGY8WSEVlTnuG/x75wolBDbVzeTlxWxgxhafj7P6Ncdv25Wz9wvc6ko/puww0b3rcLNqK+XCNJlsM/7lB8Q26iK5mRZzNsGeGwGTyzNIMBekGYQ5MRdIcPv5dBIP/1M6fQDEsAXQ==:
  270497. ssh_auth:
  270498. \- present
  270499. \- user: frank
  270500. \- enc: dsa
  270501. \- comment: \(aqFrank\(aqs key\(aq
  270502. .ft P
  270503. .fi
  270504. .UNINDENT
  270505. .UNINDENT
  270506. .SS Salt 0.9.4 Release Notes
  270507. .INDENT 0.0
  270508. .TP
  270509. .B release
  270510. 2011\-11\-27
  270511. .UNINDENT
  270512. .sp
  270513. Salt 0.9.4 has arrived. This is a critical update that repairs a number of
  270514. key bugs found in 0.9.3. But this update is not without feature additions
  270515. as well! 0.9.4 adds support for Gentoo portage to the pkg module and state
  270516. system. Also there are 2 major new state additions, the failhard option and
  270517. the ability to set up finite state ordering with the \fBorder\fP option.
  270518. .sp
  270519. This release also sees our largest increase in community contributions.
  270520. These contributors have and continue to be the life blood of the Salt
  270521. project, and the team continues to grow. I want to put out a big thanks to
  270522. our new and existing contributors.
  270523. .SS Download!
  270524. .sp
  270525. The Salt source can be downloaded from PyPI:
  270526. .sp
  270527. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.4.tar.gz\fP
  270528. .sp
  270529. For instructions on how to set up Salt please see the installation
  270530. instructions.
  270531. .SS New Features
  270532. .SS Failhard State Option
  270533. .sp
  270534. Normally, when a state fails Salt continues to execute the remainder of the
  270535. defined states and will only refuse to execute states that require the failed
  270536. state.
  270537. .sp
  270538. But the situation may exist, where you would want all state execution to stop
  270539. if a single state execution fails. The capability to do this is called
  270540. \fBfailing hard\fP\&.
  270541. .SS State Level Failhard
  270542. .sp
  270543. A single state can have a failhard set, this means that if this individual
  270544. state fails that all state execution will immediately stop. This is a great
  270545. thing to do if there is a state that sets up a critical config file and
  270546. setting a require for each state that reads the config would be cumbersome.
  270547. A good example of this would be setting up a package manager early on:
  270548. .INDENT 0.0
  270549. .INDENT 3.5
  270550. .sp
  270551. .nf
  270552. .ft C
  270553. /etc/yum.repos.d/company.repo:
  270554. file:
  270555. \- managed
  270556. \- source: salt://company/yumrepo.conf
  270557. \- user: root
  270558. \- group: root
  270559. \- mode: 644
  270560. \- order: 1
  270561. \- failhard: True
  270562. .ft P
  270563. .fi
  270564. .UNINDENT
  270565. .UNINDENT
  270566. .sp
  270567. In this situation, the yum repo is going to be configured before other states,
  270568. and if it fails to lay down the config file, than no other states will be
  270569. executed.
  270570. .SS Global Failhard
  270571. .sp
  270572. It may be desired to have failhard be applied to every state that is executed,
  270573. if this is the case, then failhard can be set in the master configuration
  270574. file. Setting failhard in the master configuration file will result in failing
  270575. hard when any minion gathering states from the master have a state fail.
  270576. .sp
  270577. This is NOT the default behavior, normally Salt will only fail states that
  270578. require a failed state.
  270579. .sp
  270580. Using the global failhard is generally not recommended, since it can result
  270581. in states not being executed or even checked. It can also be confusing to
  270582. see states failhard if an admin is not actively aware that the failhard has
  270583. been set.
  270584. .sp
  270585. To use the global failhard set failhard: True in the master configuration
  270586. .SS Finite Ordering of State Execution
  270587. .sp
  270588. When creating salt sls files, it is often important to ensure that they run in
  270589. a specific order. While states will always execute in the same order, that
  270590. order is not necessarily defined the way you want it.
  270591. .sp
  270592. A few tools exist in Salt to set up the correct state ordering, these tools
  270593. consist of requisite declarations and order options.
  270594. .SS The Order Option
  270595. .sp
  270596. Before using the order option, remember that the majority of state ordering
  270597. should be done with requisite statements, and that a requisite statement
  270598. will override an order option.
  270599. .sp
  270600. The order option is used by adding an order number to a state declaration
  270601. with the option \fIorder\fP:
  270602. .INDENT 0.0
  270603. .INDENT 3.5
  270604. .sp
  270605. .nf
  270606. .ft C
  270607. vim:
  270608. pkg:
  270609. \- installed
  270610. \- order: 1
  270611. .ft P
  270612. .fi
  270613. .UNINDENT
  270614. .UNINDENT
  270615. .sp
  270616. By adding the order option to \fI1\fP this ensures that the vim package will be
  270617. installed in tandem with any other state declaration set to the order \fI1\fP\&.
  270618. .sp
  270619. Any state declared without an order option will be executed after all states
  270620. with order options are executed.
  270621. .sp
  270622. But this construct can only handle ordering states from the beginning.
  270623. Sometimes you may want to send a state to the end of the line, to do this
  270624. set the order to last:
  270625. .INDENT 0.0
  270626. .INDENT 3.5
  270627. .sp
  270628. .nf
  270629. .ft C
  270630. vim:
  270631. pkg:
  270632. \- installed
  270633. \- order: last
  270634. .ft P
  270635. .fi
  270636. .UNINDENT
  270637. .UNINDENT
  270638. .sp
  270639. Substantial testing has gone into the state system and it is ready for real
  270640. world usage. A great deal has been added to the documentation for states and
  270641. the modules and functions available to states have been cleanly documented.
  270642. .sp
  270643. A number of State System bugs have also been founds and repaired, the output
  270644. from the state system has also been refined to be extremely clear and concise.
  270645. .sp
  270646. Error reporting has also been introduced, issues found in sls files will now
  270647. be clearly reported when executing Salt States.
  270648. .SS Gentoo Support
  270649. .sp
  270650. Additional experimental support has been added for Gentoo. This is found in
  270651. the contribution from Doug Renn, aka nestegg.
  270652. .SS Salt 0.9.5 Release Notes
  270653. .INDENT 0.0
  270654. .TP
  270655. .B release
  270656. 2012\-01\-15
  270657. .UNINDENT
  270658. .sp
  270659. Salt 0.9.5 is one of the largest steps forward in the development of Salt.
  270660. .sp
  270661. 0.9.5 comes with many milestones, this release has seen the community of
  270662. developers grow out to an international team of 46 code contributors and has
  270663. many feature additions, feature enhancements, bug fixes and speed improvements.
  270664. .sp
  270665. \fBWARNING:\fP
  270666. .INDENT 0.0
  270667. .INDENT 3.5
  270668. Be sure to \fI\%read the upgrade instructions\fP about the
  270669. switch to msgpack before upgrading!
  270670. .UNINDENT
  270671. .UNINDENT
  270672. .SS Community
  270673. .sp
  270674. Nothing has proven to have more value to the development of Salt that the
  270675. outstanding community that has been growing at such a great pace around Salt.
  270676. This has proven not only that Salt has great value, but also the
  270677. expandability of Salt is as exponential as I originally intended.
  270678. .sp
  270679. 0.9.5 has received over 600 additional commits since 0.9.4 with a swath of new
  270680. committers. The following individuals have contributed to the development of
  270681. 0.9.5:
  270682. .INDENT 0.0
  270683. .IP \(bu 2
  270684. Aaron Bull Schaefer
  270685. .IP \(bu 2
  270686. Antti Kaihola
  270687. .IP \(bu 2
  270688. Bas Tichelaar
  270689. .IP \(bu 2
  270690. Brad Barden
  270691. .IP \(bu 2
  270692. Brian Wagner
  270693. .IP \(bu 2
  270694. Byron Clark
  270695. .IP \(bu 2
  270696. Chris Scheller
  270697. .IP \(bu 2
  270698. Christer Edwards
  270699. .IP \(bu 2
  270700. Clint Savage
  270701. .IP \(bu 2
  270702. Corey Quinn
  270703. .IP \(bu 2
  270704. David Boucha
  270705. .IP \(bu 2
  270706. Eivind Uggedal
  270707. .IP \(bu 2
  270708. Eric Poelke
  270709. .IP \(bu 2
  270710. Evan Borgstrom
  270711. .IP \(bu 2
  270712. Jed Glazner
  270713. .IP \(bu 2
  270714. Jeff Schroeder
  270715. .IP \(bu 2
  270716. Jeffrey C. Ollie
  270717. .IP \(bu 2
  270718. Jonas Buckner
  270719. .IP \(bu 2
  270720. Kent Tenney
  270721. .IP \(bu 2
  270722. Martin Schnabel
  270723. .IP \(bu 2
  270724. Maxim Burgerhout
  270725. .IP \(bu 2
  270726. Mitch Anderson
  270727. .IP \(bu 2
  270728. Nathaniel Whiteinge
  270729. .IP \(bu 2
  270730. Seth House
  270731. .IP \(bu 2
  270732. Thomas S Hatch
  270733. .IP \(bu 2
  270734. Thomas Schreiber
  270735. .IP \(bu 2
  270736. Tor Hveem
  270737. .IP \(bu 2
  270738. lzyeval
  270739. .IP \(bu 2
  270740. syphernl
  270741. .UNINDENT
  270742. .sp
  270743. This makes 21 new developers since 0.9.4 was released!
  270744. .sp
  270745. To keep up with the growing community follow Salt on Black Duck Open Hub
  270746. (\fI\%https://www.openhub.net/p/salt\fP), to join the Salt development community, fork
  270747. Salt on GitHub, and get coding (\fI\%https://github.com/saltstack/salt\fP)!
  270748. .SS Major Features
  270749. .SS SPEED! Pickle to msgpack
  270750. .sp
  270751. For a few months now we have been talking about moving away from Python
  270752. pickles for network serialization, but a preferred serialization format
  270753. had not yet been found. After an extensive performance testing period
  270754. involving everything from JSON to protocol buffers, a clear winner emerged.
  270755. Message Pack (\fI\%https://msgpack.org/\fP) proved to not only be the fastest and most
  270756. compact, but also the most "salt like". Message Pack is simple, and the code
  270757. involved is very small. The msgpack library for Python has been added directly
  270758. to Salt.
  270759. .sp
  270760. This move introduces a few changes to Salt. First off, Salt is no longer a
  270761. "noarch" package, since the msgpack lib is written in C. Salt 0.9.5 will also
  270762. have compatibility issues with 0.9.4 with the default configuration.
  270763. .sp
  270764. We have gone through great lengths to avoid backwards compatibility issues with
  270765. Salt, but changing the serialization medium was going to create issues
  270766. regardless. Salt 0.9.5 is somewhat backwards compatible with earlier minions. A
  270767. 0.9.5 master can command older minions, but only if the \fBserial\fP
  270768. config value in the master is set to \fBpickle\fP\&. This will tell the master to
  270769. publish messages in pickle format and will allow the master to receive messages
  270770. in both msgpack and pickle formats.
  270771. .sp
  270772. Therefore \fBthe suggested methods for upgrading\fP are either to just upgrade
  270773. everything at once, or:
  270774. .INDENT 0.0
  270775. .IP 1. 3
  270776. Upgrade the master to 0.9.5
  270777. .IP 2. 3
  270778. Set \fBserial\fP to \fBpickle\fP in the master config
  270779. .IP 3. 3
  270780. Upgrade the minions
  270781. .IP 4. 3
  270782. Remove the \fBserial\fP option from the master config
  270783. .UNINDENT
  270784. .sp
  270785. Since pickles can be used as a security exploit the ability for a master to
  270786. accept pickles from minions at all will be removed in a future release.
  270787. .SS C Bindings for YAML
  270788. .sp
  270789. All of the YAML rendering is now done with the YAML C bindings. This speeds up
  270790. all of the sls files when running states.
  270791. .SS Experimental Windows Support
  270792. .sp
  270793. David Boucha has worked tirelessly to bring initial support to Salt for
  270794. Microsoft Windows operating systems. Right now the Salt Minion can run as a
  270795. native Windows service and accept commands.
  270796. .sp
  270797. In the weeks and months to come Windows will receive the full treatment and
  270798. will have support for Salt States and more robust support for managing Windows
  270799. systems. This is a big step forward for Salt to move entirely outside of the
  270800. Unix world, and proves Salt is a viable cross platform solution. Big Thanks
  270801. to Dave for his contribution here!
  270802. .SS Dynamic Module Distribution
  270803. .sp
  270804. Many Salt users have expressed the desire to have Salt distribute in\-house
  270805. modules, states, renderers, returners, and grains. This support has been added
  270806. in a number of ways:
  270807. .SS Modules via States
  270808. .sp
  270809. Now when salt modules are deployed to a minion via the state system as a file,
  270810. then the modules will be automatically loaded into the active running minion
  270811. \- no restart required \- and into the active running state. So custom state
  270812. modules can be deployed and used in the same state run.
  270813. .SS Modules via Module Environment Directories
  270814. .sp
  270815. Under the file_roots each environment can now have directories that are used
  270816. to deploy large groups of modules. These directories sync modules at the
  270817. beginning of a state run on the minion, or can be manually synced via the Salt
  270818. module \fBsalt.modules.saltutil.sync_all\fP\&.
  270819. .sp
  270820. The directories are named:
  270821. .INDENT 0.0
  270822. .IP \(bu 2
  270823. \fB_modules\fP
  270824. .IP \(bu 2
  270825. \fB_states\fP
  270826. .IP \(bu 2
  270827. \fB_grains\fP
  270828. .IP \(bu 2
  270829. \fB_renderers\fP
  270830. .IP \(bu 2
  270831. \fB_returners\fP
  270832. .UNINDENT
  270833. .sp
  270834. The modules are pushed to their respective scopes on the minions.
  270835. .SS Module Reloading
  270836. .sp
  270837. Modules can now be reloaded without restarting the minion, this is done by
  270838. calling the \fBsalt.modules.sys.reload_modules\fP function.
  270839. .sp
  270840. But wait, there\(aqs more! Now when a salt module of any type is added via
  270841. states the modules will be automatically reloaded, allowing for modules to be
  270842. laid down with states and then immediately used.
  270843. .sp
  270844. Finally, all modules are reloaded when modules are dynamically distributed
  270845. from the salt master.
  270846. .SS Enable / Disable Added to Service
  270847. .sp
  270848. A great deal of demand has existed for adding the capability to set services
  270849. to be started at boot in the service module. This feature also comes with an
  270850. overhaul of the service modules and initial systemd support.
  270851. .sp
  270852. This means that the \fBservice state\fP can now
  270853. accept \fB\- enable: True\fP to make sure a service is enabled at boot, and \fB\-
  270854. enable: False\fP to make sure it is disabled.
  270855. .SS Compound Target
  270856. .sp
  270857. A new target type has been added to the lineup, the compound target. In
  270858. previous versions the desired minions could only be targeted via a single
  270859. specific target type, but now many target specifications can be declared.
  270860. .sp
  270861. These targets can also be separated by and/or operators, so certain properties
  270862. can be used to omit a node:
  270863. .INDENT 0.0
  270864. .INDENT 3.5
  270865. .sp
  270866. .nf
  270867. .ft C
  270868. salt \-C \(aqwebserv* and G@os:Debian or E@db.*\(aq test.ping
  270869. .ft P
  270870. .fi
  270871. .UNINDENT
  270872. .UNINDENT
  270873. .sp
  270874. will match all minions with ids starting with webserv via a glob and minions
  270875. matching the \fBos:Debian\fP grain. Or minions that match the \fBdb.*\fP regular
  270876. expression.
  270877. .SS Node Groups
  270878. .sp
  270879. Often the convenience of having a predefined group of minions to execute
  270880. targets on is desired. This can be accomplished with the new nodegroups
  270881. feature. Nodegroups allow for predefined compound targets to be declared in
  270882. the master configuration file:
  270883. .INDENT 0.0
  270884. .INDENT 3.5
  270885. .sp
  270886. .nf
  270887. .ft C
  270888. nodegroups:
  270889. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com\(aq
  270890. group2: \(aqG@os:Debian and foo.domain.com\(aq
  270891. .ft P
  270892. .fi
  270893. .UNINDENT
  270894. .UNINDENT
  270895. .sp
  270896. And then used via the \fB\-N\fP option:
  270897. .INDENT 0.0
  270898. .INDENT 3.5
  270899. .sp
  270900. .nf
  270901. .ft C
  270902. salt \-N group1 test.ping
  270903. .ft P
  270904. .fi
  270905. .UNINDENT
  270906. .UNINDENT
  270907. .SS Minion Side Data Store
  270908. .sp
  270909. The data module introduces the initial approach into storing persistent data on
  270910. the minions, specific to the minions. This allows for data to be stored on
  270911. minions that can be accessed from the master or from the minion.
  270912. .sp
  270913. The Minion datastore is young, and will eventually provide an interface similar
  270914. to a more mature key/value pair server.
  270915. .SS Major Grains Improvement
  270916. .sp
  270917. The Salt grains have been overhauled to include a massive amount of extra data.
  270918. this includes hardware data, os data and salt specific data.
  270919. .SS Salt \-Q is Useful Now
  270920. .sp
  270921. In the past the salt query system, which would display the data from recent
  270922. executions would be displayed in pure Python, and it was unreadable.
  270923. .sp
  270924. 0.9.5 has added the outputter system to the \fB\-Q\fP option, thus enabling the
  270925. salt query system to return readable output.
  270926. .SS Packaging Updates
  270927. .sp
  270928. Huge strides have been made in packaging Salt for distributions. These
  270929. additions are thanks to our wonderful community where the work to set up
  270930. packages has proceeded tirelessly.
  270931. .SS FreeBSD
  270932. .sp
  270933. Salt on FreeBSD? There a port for that:
  270934. .sp
  270935. \fI\%https://svnweb.freebsd.org/ports/head/sysutils/py\-salt/\fP
  270936. .sp
  270937. This port was developed and added by Christer Edwards. This also marks the
  270938. first time Salt has been included in an upstream packaging system!
  270939. .SS Fedora and Red Hat Enterprise
  270940. .sp
  270941. Salt packages have been prepared for inclusion in the Fedora Project and in
  270942. EPEL for Red Hat Enterprise 5 and 6. These packages are the result of the
  270943. efforts made by Clint Savage (herlo).
  270944. .SS Debian/Ubuntu
  270945. .sp
  270946. A team of many contributors have assisted in developing packages for Debian
  270947. and Ubuntu. Salt is still actively seeking inclusion in upstream Debian and
  270948. Ubuntu and the package data that has been prepared is being pushed through
  270949. the needed channels for inclusion.
  270950. .sp
  270951. These packages have been prepared with the help of:
  270952. .INDENT 0.0
  270953. .IP \(bu 2
  270954. Corey
  270955. .IP \(bu 2
  270956. Aaron Toponce
  270957. .IP \(bu 2
  270958. and\(ga
  270959. .UNINDENT
  270960. .SS More to Come
  270961. .sp
  270962. We are actively seeking inclusion in more distributions. Primarily getting
  270963. Salt into Gentoo, SUSE, OpenBSD, and preparing Solaris support are all turning
  270964. into higher priorities.
  270965. .SS Refinement
  270966. .sp
  270967. Salt continues to be refined into a faster, more stable and more usable
  270968. application. 0.9.5 comes with more debug logging, more bug fixes and more
  270969. complete support.
  270970. .SS More Testing, More BugFixes
  270971. .sp
  270972. 0.9.5 comes with more bugfixes due to more testing than any previous release.
  270973. The growing community and the introduction a dedicated QA environment have
  270974. unearthed many issues that were hiding under the covers. This has further
  270975. refined and cleaned the state interface, taking care of things from minor
  270976. visual issues to repairing misleading data.
  270977. .SS Custom Exceptions
  270978. .sp
  270979. A custom exception module has been added to throw salt specific exceptions.
  270980. This allows Salt to give much more granular error information.
  270981. .SS New Modules
  270982. .SS \fBdata\fP
  270983. .sp
  270984. The new data module manages a persistent datastore on the minion.
  270985. Big thanks to bastichelaar for his help refining this module
  270986. .SS \fBfreebsdkmod\fP
  270987. .sp
  270988. FreeBSD kernel modules can now be managed in the same way Salt handles Linux
  270989. kernel modules.
  270990. .sp
  270991. This module was contributed thanks to the efforts of Christer Edwards
  270992. .SS \fBgentoo_service\fP
  270993. .sp
  270994. Support has been added for managing services in Gentoo. Now Gentoo services
  270995. can be started, stopped, restarted, enabled, disabled, and viewed.
  270996. .SS \fBpip\fP
  270997. .sp
  270998. The pip module introduces management for pip installed applications.
  270999. Thanks goes to whitinge for the addition of the pip module
  271000. .SS \fBrh_service\fP
  271001. .sp
  271002. The rh_service module enables Red Hat and Fedora specific service management.
  271003. Now Red Hat like systems come with extensive management of the classic init
  271004. system used by Red Hat
  271005. .SS \fBsaltutil\fP
  271006. .sp
  271007. The saltutil module has been added as a place to hold functions used in the
  271008. maintenance and management of salt itself. Saltutil is used to salt the salt
  271009. minion. The saltutil module is presently used only to sync extension modules
  271010. from the master server.
  271011. .SS \fBsystemd\fP
  271012. .sp
  271013. Systemd support has been added to Salt, now systems using this next generation
  271014. init system are supported on systems running systemd.
  271015. .SS \fBvirtualenv\fP
  271016. .sp
  271017. The virtualenv module has been added to allow salt to create virtual Python
  271018. environments.
  271019. Thanks goes to whitinge for the addition of the virtualenv module
  271020. .SS \fBwin_disk\fP
  271021. .sp
  271022. Support for gathering disk information on Microsoft Windows minions
  271023. The windows modules come courtesy of Utah_Dave
  271024. .SS \fBwin_service\fP
  271025. .sp
  271026. The win_service module adds service support to Salt for Microsoft Windows
  271027. services
  271028. .SS \fBwin_useradd\fP
  271029. .sp
  271030. Salt can now manage local users on Microsoft Windows Systems
  271031. .SS \fByumpkg5\fP
  271032. .sp
  271033. The yumpkg module introduces in 0.9.4 uses the yum API to interact with the
  271034. yum package manager. Unfortunately, on Red Hat 5 systems salt does not have
  271035. access to the yum API because the yum API is running under Python 2.4 and Salt
  271036. needs to run under Python 2.6.
  271037. .sp
  271038. The yumpkg5 module bypasses this issue by shelling out to yum on systems where
  271039. the yum API is not available.
  271040. .SS New States
  271041. .SS \fBmysql_database\fP
  271042. .sp
  271043. The new mysql_database state adds the ability to systems running a mysql
  271044. server to manage the existence of mysql databases.
  271045. .sp
  271046. The mysql states are thanks to syphernl
  271047. .SS \fBmysql_user\fP
  271048. .sp
  271049. The mysql_user state enables mysql user management.
  271050. .SS \fBvirtualenv\fP
  271051. .sp
  271052. The virtualenv state can manage the state of Python virtual environments.
  271053. Thanks to Whitinge for the virtualenv state
  271054. .SS New Returners
  271055. .SS \fBcassandra_returner\fP
  271056. .sp
  271057. A returner allowing Salt to send data to a cassandra server.
  271058. Thanks to Byron Clark for contributing this returner
  271059. .SS Salt 0.9.6 Release Notes
  271060. .INDENT 0.0
  271061. .TP
  271062. .B release
  271063. 2012\-01\-21
  271064. .UNINDENT
  271065. .sp
  271066. Salt 0.9.6 is a release targeting a few bugs and changes. This is primarily
  271067. targeting an issue found in the names declaration in the state system. But a
  271068. few other bugs were also repaired, like missing support for grains in extmods.
  271069. .sp
  271070. Due to a conflict in distribution packaging msgpack will no longer be bundled
  271071. with Salt, and is required as a dependency.
  271072. .SS New Features
  271073. .SS HTTP and ftp support in files.managed
  271074. .sp
  271075. Now under the source option in the file.managed state a HTTP or ftp address
  271076. can be used instead of a file located on the salt master.
  271077. .SS Allow Multiple Returners
  271078. .sp
  271079. Now the returner interface can define multiple returners, and will also return
  271080. data back to the master, making the process less ambiguous.
  271081. .SS Minion Memory Improvements
  271082. .sp
  271083. A number of modules have been taken out of the minion if the underlying
  271084. systems required by said modules are not present on the minion system.
  271085. A number of other modules need to be stripped out in this same way which
  271086. should continue to make the minion more efficient.
  271087. .SS Minions Can Locally Cache Return Data
  271088. .sp
  271089. A new option, cache_jobs, has been added to the minion to allow for all of the
  271090. historically run jobs to cache on the minion, allowing for looking up historic
  271091. returns. By default cache_jobs is set to False.
  271092. .SS Pure Python Template Support For file.managed
  271093. .sp
  271094. Templates in the file.managed state can now be defined in a Python script.
  271095. This script needs to have a run function that returns the string that needs to
  271096. be in the named file.
  271097. .SS Salt 0.9.7 Release Notes
  271098. .INDENT 0.0
  271099. .TP
  271100. .B release
  271101. 2012\-02\-15
  271102. .UNINDENT
  271103. .sp
  271104. Salt 0.9.7 is here! The latest iteration of Salt brings more features and many
  271105. fixes. This release is a great refinement over 0.9.6, adding many conveniences
  271106. under the hood, as well as some features that make working with Salt much
  271107. better.
  271108. .sp
  271109. A few highlights include the new Job system, refinements to the requisite
  271110. system in states, the \fBmod_init\fP interface for states, external node
  271111. classification, search path to managed files in the file state, and refinements
  271112. and additions to dynamic module loading.
  271113. .sp
  271114. 0.9.7 also introduces the long developed (and oft changed) unit test framework
  271115. and the initial unit tests.
  271116. .SS Major Features
  271117. .SS Salt Jobs Interface
  271118. .sp
  271119. The new jobs interface makes the management of running executions much cleaner
  271120. and more transparent. Building on the existing execution framework the jobs
  271121. system allows clear introspection into the active running state of the
  271122. running Salt interface.
  271123. .sp
  271124. The Jobs interface is centered in the new minion side proc system. The
  271125. minions now store msgpack serialized files under \fB/var/cache/salt/proc\fP\&.
  271126. These files keep track of the active state of processes on the minion.
  271127. .SS Functions in the saltutil Module
  271128. .sp
  271129. A number of functions have been added to the saltutil module to manage and
  271130. view the jobs:
  271131. .sp
  271132. \fBrunning\fP \- Returns the data of all running jobs that are found in the proc
  271133. directory.
  271134. .sp
  271135. \fBfind_job\fP \- Returns specific data about a certain job based on job id.
  271136. .sp
  271137. \fBsignal_job\fP \- Allows for a given jid to be sent a signal.
  271138. .sp
  271139. \fBterm_job\fP \- Sends a termination signal (\fBSIGTERM, 15\fP) to the process
  271140. controlling the specified job.
  271141. .sp
  271142. \fBkill_job\fP Sends a kill signal (\fBSIGKILL, 9\fP) to the process controlling the
  271143. specified job.
  271144. .SS The jobs Runner
  271145. .sp
  271146. A convenience runner front end and reporting system has been added as well.
  271147. The jobs runner contains functions to make viewing data easier and cleaner.
  271148. .sp
  271149. The jobs runner contains a number of functions...
  271150. .SS active
  271151. .sp
  271152. The active function runs \fBsaltutil.running\fP on all minions and formats the
  271153. return data about all running jobs in a much more usable and compact format.
  271154. The active function will also compare jobs that have returned and jobs that
  271155. are still running, making it easier to see what systems have completed a job
  271156. and what systems are still being waited on.
  271157. .SS lookup_jid
  271158. .sp
  271159. When jobs are executed the return data is sent back to the master and cached.
  271160. By default is cached for 24 hours, but this can be configured via the
  271161. \fBkeep_jobs\fP option in the master configuration.
  271162. .sp
  271163. Using the \fBlookup_jid\fP runner will display the same return data that the
  271164. initial job invocation with the salt command would display.
  271165. .SS list_jobs
  271166. .sp
  271167. Before finding a historic job, it may be required to find the job id.
  271168. \fBlist_jobs\fP will parse the cached execution data and display all of the job
  271169. data for jobs that have already, or partially returned.
  271170. .SS External Node Classification
  271171. .sp
  271172. Salt can now use external node classifiers like Cobbler\(aqs
  271173. \fBcobbler\-ext\-nodes\fP\&.
  271174. .sp
  271175. Salt uses specific data from the external node classifier. In particular the
  271176. classes value denotes which sls modules to run, and the environment value sets
  271177. to another environment.
  271178. .sp
  271179. An external node classification can be set in the master configuration file via
  271180. the \fBexternal_nodes\fP option:
  271181. \fI\%https://salt.readthedocs.io/en/latest/ref/configuration/master.html#external\-nodes\fP
  271182. .sp
  271183. External nodes are loaded in addition to the top files. If it is intended to
  271184. only use external nodes, do not deploy any top files.
  271185. .SS State Mod Init System
  271186. .sp
  271187. An issue arose with the pkg state. Every time a package was run Salt would
  271188. need to refresh the package database. This made systems with slower package
  271189. metadata refresh speeds much slower to work with. To alleviate this issue the
  271190. \fBmod_init\fP interface has been added to salt states.
  271191. .sp
  271192. The \fBmod_init\fP interface is a function that can be added to a state file.
  271193. This function is called with the first state called. In the case of the pkg
  271194. state, the \fBmod_init\fP function sets up a tag which makes the package database
  271195. only refresh on the first attempt to install a package.
  271196. .sp
  271197. In a nutshell, the \fBmod_init\fP interface allows a state to run any command that
  271198. only needs to be run once, or can be used to set up an environment for working
  271199. with the state.
  271200. .SS Source File Search Path
  271201. .sp
  271202. The file state continues to be refined, adding speed and capabilities. This
  271203. release adds the ability to pass a list to the source option. This list is then
  271204. iterated over until the source file is found, and the first found file is used.
  271205. .sp
  271206. The new syntax looks like this:
  271207. .INDENT 0.0
  271208. .INDENT 3.5
  271209. .sp
  271210. .nf
  271211. .ft C
  271212. /etc/httpd/conf/httpd.conf:
  271213. file:
  271214. \- managed
  271215. \- source:
  271216. \- salt://httpd/httpd.conf
  271217. \- http://myserver/httpd.conf: md5=8c1fe119e6f1fd96bc06614473509bf1
  271218. .ft P
  271219. .fi
  271220. .UNINDENT
  271221. .UNINDENT
  271222. .sp
  271223. The source option can take sources in the list from the salt file server
  271224. as well as an arbitrary web source. If using an arbitrary web source the
  271225. checksum needs to be passed as well for file verification.
  271226. .SS Refinements to the Requisite System
  271227. .sp
  271228. A few discrepancies were still lingering in the requisite system, in
  271229. particular, it was not possible to have a \fBrequire\fP and a \fBwatch\fP requisite
  271230. declared in the same state declaration.
  271231. .sp
  271232. This issue has been alleviated, as well as making the requisite system run
  271233. more quickly.
  271234. .SS Initial Unit Testing Framework
  271235. .sp
  271236. Because of the module system, and the need to test real scenarios, the
  271237. development of a viable unit testing system has been difficult, but unit
  271238. testing has finally arrived. Only a small amount of unit testing coverage
  271239. has been developed, much more coverage will be in place soon.
  271240. .sp
  271241. A huge thanks goes out to those who have helped with unit testing, and the
  271242. contributions that have been made to get us where we are. Without these
  271243. contributions unit tests would still be in the dark.
  271244. .SS Compound Targets Expanded
  271245. .sp
  271246. Originally only support for \fBand\fP and \fBor\fP were available in the compound
  271247. target. 0.9.7 adds the capability to negate compound targets with \fBnot\fP\&.
  271248. .SS Nodegroups in the Top File
  271249. .sp
  271250. Previously the nodegroups defined in the master configuration file could not
  271251. be used to match nodes for states. The nodegroups support has been expanded
  271252. and the nodegroups defined in the master configuration can now be used to
  271253. match minions in the top file.
  271254. .SS Salt 0.9.8 Release Notes
  271255. .INDENT 0.0
  271256. .TP
  271257. .B release
  271258. 2012\-03\-21
  271259. .UNINDENT
  271260. .sp
  271261. Salt 0.9.8 is a big step forward, with many additions and enhancements, as
  271262. well as a number of precursors to advanced future developments.
  271263. .sp
  271264. This version of Salt adds much more power to the command line, making the
  271265. old hard timeout issues a thing of the past and adds keyword argument
  271266. support. These additions are also available in the salt client API, making
  271267. the available API tools much more powerful.
  271268. .sp
  271269. The new pillar system allows for data to be stored on the master and
  271270. assigned to minions in a granular way similar to the state system. It also
  271271. allows flexibility for users who want to keep data out of their state tree
  271272. similar to \(aqexternal lookup\(aq functionality in other tools.
  271273. .sp
  271274. A new way to extend requisites was added, the "requisite in" statement.
  271275. This makes adding requires or watch statements to external state decs
  271276. much easier.
  271277. .sp
  271278. Additions to requisites making them much more powerful have been added as well
  271279. as improved error checking for sls files in the state system. A new provider
  271280. system has been added to allow for redirecting what modules run in the
  271281. background for individual states.
  271282. .sp
  271283. Support for openSUSE has been added and support for Solaris has begun
  271284. serious development. Windows support has been significantly enhanced as well.
  271285. .sp
  271286. The matcher and target systems have received a great deal of attention. The
  271287. default behavior of grain matching has changed slightly to reflect the rest
  271288. of salt and the compound matcher system has been refined.
  271289. .sp
  271290. A number of impressive features with keyword arguments have been added to both
  271291. the CLI and to the state system. This makes states much more powerful and
  271292. flexible while maintaining the simple configuration everyone loves.
  271293. .sp
  271294. The new batch size capability allows for executions to be rolled through a
  271295. group of targeted minions a percentage or specific number at a time. This
  271296. was added to prevent the "thundering herd" problem when targeting large
  271297. numbers of minions for things like service restarts or file downloads.
  271298. .SS Upgrade Considerations
  271299. .SS Upgrade Issues
  271300. .sp
  271301. There was a previously missed oversight which could cause a newer minion to
  271302. crash an older master. That oversight has been resolved so the version
  271303. incompatibility issue will no longer occur. When upgrading to 0.9.8 make
  271304. sure to upgrade the master first, followed by the minions.
  271305. .SS Debian/Ubuntu Packages
  271306. .sp
  271307. The original Debian/Ubuntu packages were called salt and included all salt
  271308. applications. New packages in the ppa are split by function. If an old salt
  271309. package is installed then it should be manually removed and the new split
  271310. packages need to be freshly installed.
  271311. .sp
  271312. On the master:
  271313. .INDENT 0.0
  271314. .INDENT 3.5
  271315. .sp
  271316. .nf
  271317. .ft C
  271318. # apt\-get purge salt
  271319. # apt\-get install salt\-{master,minion}
  271320. .ft P
  271321. .fi
  271322. .UNINDENT
  271323. .UNINDENT
  271324. .sp
  271325. On the minions:
  271326. .INDENT 0.0
  271327. .INDENT 3.5
  271328. .sp
  271329. .nf
  271330. .ft C
  271331. # apt\-get purge salt
  271332. # apt\-get install salt\-minion
  271333. .ft P
  271334. .fi
  271335. .UNINDENT
  271336. .UNINDENT
  271337. .sp
  271338. And on any Syndics:
  271339. .INDENT 0.0
  271340. .INDENT 3.5
  271341. .sp
  271342. .nf
  271343. .ft C
  271344. # apt\-get install salt\-syndic
  271345. .ft P
  271346. .fi
  271347. .UNINDENT
  271348. .UNINDENT
  271349. .sp
  271350. The official Salt PPA for Ubuntu is located at:
  271351. \fI\%https://launchpad.net/~saltstack/+archive/ubuntu/salt\fP
  271352. .SS Major Features
  271353. .SS Pillar
  271354. .sp
  271355. Pillar offers an interface to declare variable data on the master that is then
  271356. assigned to the minions. The pillar data is made available to all modules,
  271357. states, sls files etc. It is compiled on the master and is declared using the
  271358. existing renderer system. This means that learning pillar should be fairly
  271359. trivial to those already familiar with salt states.
  271360. .SS CLI Additions
  271361. .sp
  271362. The \fBsalt\fP command has received a serious overhaul and is more powerful
  271363. than ever. Data is returned to the terminal as it is received, and the salt
  271364. command will now wait for all running minions to return data before stopping.
  271365. This makes adding very large \fI\-\-timeout\fP arguments completely unnecessary and
  271366. gets rid of long running operations returning empty \fB{}\fP when the timeout is
  271367. exceeded.
  271368. .sp
  271369. When calling salt via sudo, the user originally running salt is saved to the
  271370. log for auditing purposes. This makes it easy to see who ran what by just
  271371. looking through the minion logs.
  271372. .sp
  271373. The \fIsalt\-key\fP command gained the \fI\-D\fP and \fI\-\-delete\-all\fP arguments for
  271374. removing all keys. Be careful with this one!
  271375. .SS Running States Without a Master
  271376. .sp
  271377. The addition of running states without a salt\-master has been added
  271378. to 0.9.8. This feature allows for the unmodified salt state tree to be
  271379. read locally from a minion. The result is that the UNMODIFIED state tree
  271380. has just become portable, allowing minions to have a local copy of states
  271381. or to manage states without a master entirely.
  271382. .sp
  271383. This is accomplished via the new file client interface in Salt that allows
  271384. for the \fBsalt://\fP URI to be redirected to custom interfaces. This means that
  271385. there are now two interfaces for the salt file server, calling the master
  271386. or looking in a local, minion defined \fBfile_roots\fP\&.
  271387. .sp
  271388. This new feature can be used by modifying the minion config to point to a
  271389. local \fBfile_roots\fP and setting the \fBfile_client\fP option to \fBlocal\fP\&.
  271390. .SS Keyword Arguments and States
  271391. .sp
  271392. State modules now accept the \fB**kwargs\fP argument. This results in all data
  271393. in a sls file assigned to a state being made available to the state function.
  271394. .sp
  271395. This passes data in a transparent way back to the modules executing the logic.
  271396. In particular, this allows adding arguments to the \fBpkg.install\fP module that
  271397. enable more advanced and granular controls with respect to what the state is
  271398. capable of.
  271399. .sp
  271400. An example of this along with the new debconf module for installing ldap
  271401. client packages on Debian:
  271402. .INDENT 0.0
  271403. .INDENT 3.5
  271404. .sp
  271405. .nf
  271406. .ft C
  271407. ldap\-client\-packages:
  271408. pkg:
  271409. \- debconf: salt://debconf/ldap\-client.ans
  271410. \- installed
  271411. \- names:
  271412. \- nslcd
  271413. \- libpam\-ldapd
  271414. \- libnss\-ldapd
  271415. .ft P
  271416. .fi
  271417. .UNINDENT
  271418. .UNINDENT
  271419. .SS Keyword Arguments and the CLI
  271420. .sp
  271421. In the past it was required that all arguments be passed in the proper order to
  271422. the \fIsalt\fP and \fIsalt\-call\fP commands. As of 0.9.8, keyword arguments can be
  271423. passed in the form of \fBkwarg=argument\fP\&.
  271424. .INDENT 0.0
  271425. .INDENT 3.5
  271426. .sp
  271427. .nf
  271428. .ft C
  271429. # salt \-G \(aqtype:dev\(aq git.clone \e
  271430. repository=https://github.com/saltstack/salt.git cwd=/tmp/salt user=jeff
  271431. .ft P
  271432. .fi
  271433. .UNINDENT
  271434. .UNINDENT
  271435. .SS Matcher Refinements and Changes
  271436. .sp
  271437. A number of fixes and changes have been applied to the Matcher system. The
  271438. most noteworthy is the change in the grain matcher. The grain matcher used to
  271439. use a regular expression to match the passed data to a grain, but now defaults
  271440. to a shell glob like the majority of match interfaces in Salt. A new option
  271441. is available that still uses the old style regex matching to grain data called
  271442. \fBgrain\-pcre\fP\&. To use regex matching in compound matches use the letter \fIP\fP\&.
  271443. .sp
  271444. For example, this would match any ArchLinux or Fedora minions:
  271445. .INDENT 0.0
  271446. .INDENT 3.5
  271447. .sp
  271448. .nf
  271449. .ft C
  271450. # salt \-\-grain\-pcre \(aqos:(Arch:Fed).*\(aq test.ping
  271451. .ft P
  271452. .fi
  271453. .UNINDENT
  271454. .UNINDENT
  271455. .sp
  271456. And the associated compound matcher suitable for \fBtop.sls\fP is \fIP\fP:
  271457. .INDENT 0.0
  271458. .INDENT 3.5
  271459. .sp
  271460. .nf
  271461. .ft C
  271462. P@os:(Arch|Fed).*
  271463. .ft P
  271464. .fi
  271465. .UNINDENT
  271466. .UNINDENT
  271467. .sp
  271468. \fBNOTE\fP: Changing the grains matcher from pcre to glob is backwards
  271469. incompatible.
  271470. .sp
  271471. Support has been added for matching minions with Yahoo\(aqs range library. This
  271472. is handled by passing range syntax with \fI\-R\fP or \fI\-\-range\fP arguments to salt.
  271473. .sp
  271474. More information at:
  271475. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  271476. .SS Requisite "in"
  271477. .sp
  271478. A new means to updating requisite statements has been added to make adding
  271479. watchers and requires to external states easier. Before 0.9.8 the only way
  271480. to extend the states that were watched by a state outside of the sls was to
  271481. use an extend statement:
  271482. .INDENT 0.0
  271483. .INDENT 3.5
  271484. .sp
  271485. .nf
  271486. .ft C
  271487. include:
  271488. \- http
  271489. extend:
  271490. apache:
  271491. service:
  271492. \- watch:
  271493. \- pkg: tomcat
  271494. tomcat:
  271495. pkg:
  271496. \- installed
  271497. .ft P
  271498. .fi
  271499. .UNINDENT
  271500. .UNINDENT
  271501. .sp
  271502. But the new \fBRequisite in\fP statement allows for easier extends for
  271503. requisites:
  271504. .INDENT 0.0
  271505. .INDENT 3.5
  271506. .sp
  271507. .nf
  271508. .ft C
  271509. include:
  271510. \- http
  271511. tomcat:
  271512. pkg:
  271513. \- installed
  271514. \- watch_in:
  271515. \- service: apache
  271516. .ft P
  271517. .fi
  271518. .UNINDENT
  271519. .UNINDENT
  271520. .sp
  271521. Requisite in is part of the extend system, so still remember to always include
  271522. the sls that is being extended!
  271523. .SS Providers
  271524. .sp
  271525. Salt predetermines what modules should be mapped to what uses based on the
  271526. properties of a system. These determinations are generally made for modules
  271527. that provide things like package and service management. The apt module
  271528. maps to pkg on Debian and the yum module maps to pkg on Fedora for instance.
  271529. .sp
  271530. Sometimes in states, it may be necessary for a non\-default module to be used
  271531. for the desired functionality. For instance, an Arch Linux system may have
  271532. been set up with systemd support. Instead of using the default service module
  271533. detected for Arch Linux, the systemd module can be used:
  271534. .INDENT 0.0
  271535. .INDENT 3.5
  271536. .sp
  271537. .nf
  271538. .ft C
  271539. http:
  271540. service:
  271541. \- running
  271542. \- enable: True
  271543. \- provider: systemd
  271544. .ft P
  271545. .fi
  271546. .UNINDENT
  271547. .UNINDENT
  271548. .sp
  271549. Default providers can also be defined in the minion config file:
  271550. .INDENT 0.0
  271551. .INDENT 3.5
  271552. .sp
  271553. .nf
  271554. .ft C
  271555. providers:
  271556. service: systemd
  271557. .ft P
  271558. .fi
  271559. .UNINDENT
  271560. .UNINDENT
  271561. .sp
  271562. When default providers are passed in the minion config, then those providers
  271563. will be applied to all functionality in Salt, this means that the functions
  271564. called by the minion will use these modules, as well as states.
  271565. .SS Requisite Glob Matching
  271566. .sp
  271567. Requisites can now be defined with glob expansion. This means that if there are
  271568. many requisites, they can be defined on a single line.
  271569. .sp
  271570. To watch all files in a directory:
  271571. .INDENT 0.0
  271572. .INDENT 3.5
  271573. .sp
  271574. .nf
  271575. .ft C
  271576. http:
  271577. service:
  271578. \- running
  271579. \- enable: True
  271580. \- watch:
  271581. \- file: /etc/http/conf.d/*
  271582. .ft P
  271583. .fi
  271584. .UNINDENT
  271585. .UNINDENT
  271586. .sp
  271587. This example will watch all defined files that match the glob
  271588. \fB/etc/http/conf.d/*\fP
  271589. .SS Batch Size
  271590. .sp
  271591. The new batch size option allows commands to be executed while maintaining that
  271592. only so many hosts are executing the command at one time. This option can
  271593. take a percentage or a finite number:
  271594. .INDENT 0.0
  271595. .INDENT 3.5
  271596. .sp
  271597. .nf
  271598. .ft C
  271599. salt \(aq*\(aq \-b 10 test.ping
  271600. salt \-G \(aqos:RedHat\(aq \-\-batch\-size 25% apache.signal restart
  271601. .ft P
  271602. .fi
  271603. .UNINDENT
  271604. .UNINDENT
  271605. .sp
  271606. This will only run test.ping on 10 of the targeted minions at a time and then
  271607. restart apache on 25% of the minions matching \fBos:RedHat\fP at a time and work
  271608. through them all until the task is complete. This makes jobs like rolling web
  271609. server restarts behind a load balancer or doing maintenance on BSD firewalls
  271610. using carp much easier with salt.
  271611. .SS Module Updates
  271612. .sp
  271613. This is a list of notable, but non\-exhaustive updates with new and existing
  271614. modules.
  271615. .sp
  271616. Windows support has seen a flurry of support this release cycle. We\(aqve gained
  271617. all new \fBfile\fP,
  271618. \fBnetwork\fP, and
  271619. \fBshadow\fP modules. Please note
  271620. that these are still a work in progress.
  271621. .sp
  271622. For our ruby users, new \fBrvm\fP and
  271623. \fBgem\fP modules have been added along
  271624. with the \fBassociated\fP
  271625. \fBstates\fP
  271626. .sp
  271627. The \fBvirt\fP module gained basic Xen support.
  271628. .sp
  271629. The \fByum\fP module gained
  271630. Scientific Linux support.
  271631. .sp
  271632. The \fBpkg\fP module on Debian, Ubuntu,
  271633. and derivatives force apt to run in a non\-interactive mode. This prevents
  271634. issues when package installation waits for confirmation.
  271635. .sp
  271636. A \fBpkg\fP module for OpenSUSE\(aqs
  271637. zypper was added.
  271638. .sp
  271639. The \fBservice\fP module on Ubuntu
  271640. natively supports upstart.
  271641. .sp
  271642. A new \fBdebconf\fP module was
  271643. contributed by our community for more advanced control over deb package
  271644. deployments on Debian based distributions.
  271645. .sp
  271646. The \fBmysql.user\fP state and
  271647. \fBmysql\fP module gained a
  271648. \fIpassword_hash\fP argument.
  271649. .sp
  271650. The \fBcmd\fP module and state gained
  271651. a \fIshell\fP keyword argument for specifying a shell other than \fB/bin/sh\fP on
  271652. Linux / Unix systems.
  271653. .sp
  271654. New \fBgit\fP and
  271655. \fBmercurial\fP modules have been added
  271656. for fans of distributed version control.
  271657. .SS In Progress Development
  271658. .SS Master Side State Compiling
  271659. .sp
  271660. While we feel strongly that the advantages gained with minion side state
  271661. compiling are very critical, it does prevent certain features that may be
  271662. desired. 0.9.8 has support for initial master side state compiling, but many
  271663. more components still need to be developed, it is hoped that these can be
  271664. finished for 0.9.9.
  271665. .sp
  271666. The goal is that states can be compiled on both the master and the minion
  271667. allowing for compilation to be split between master and minion. Why will
  271668. this be great? It will allow storing sensitive data on the master and sending
  271669. it to some minions without all minions having access to it. This will be
  271670. good for handling ssl certificates on front\-end web servers for instance.
  271671. .SS Solaris Support
  271672. .sp
  271673. Salt 0.9.8 sees the introduction of basic Solaris support. The daemon runs
  271674. well, but grains and more of the modules need updating and testing.
  271675. .SS Windows Support
  271676. .sp
  271677. Salt states on windows are now much more viable thanks to contributions from
  271678. our community! States for file, service, local user, and local group management are more fully
  271679. fleshed out along with network and disk modules. Windows users can also now manage
  271680. registry entries using the new "reg" module.
  271681. .SS Salt 0.9.9 Release Notes
  271682. .INDENT 0.0
  271683. .TP
  271684. .B release
  271685. 2012\-04\-27
  271686. .UNINDENT
  271687. .sp
  271688. 0.9.9 is out and comes with some serious bug fixes and even more serious
  271689. features. This release is the last major feature release before 1.0.0 and
  271690. could be considered the 1.0.0 release candidate.
  271691. .sp
  271692. A few updates include more advanced kwargs support, the ability for salt
  271693. states to more safely configure a running salt minion, better job directory
  271694. management and the new state test interface.
  271695. .sp
  271696. Many new tests have been added as well, including the new minion swarm test
  271697. that allows for easier testing of Salt working with large groups of minions.
  271698. This means that if you have experienced stability issues with Salt before,
  271699. particularly in larger deployments, that these bugs have been tested for,
  271700. found, and killed.
  271701. .SS Major Features
  271702. .SS State Test Interface
  271703. .sp
  271704. Until 0.9.9 the only option when running states to see what was going to be
  271705. changed was to print out the highstate with state.show_highstate and manually
  271706. look it over. But now states can be run to discover what is going to be
  271707. changed.
  271708. .sp
  271709. Passing the option \fBtest=True\fP to many of the state functions will now cause
  271710. the salt state system to only check for what is going to be changed and report
  271711. on those changes.
  271712. .INDENT 0.0
  271713. .INDENT 3.5
  271714. .sp
  271715. .nf
  271716. .ft C
  271717. salt \(aq*\(aq state.highstate test=True
  271718. .ft P
  271719. .fi
  271720. .UNINDENT
  271721. .UNINDENT
  271722. .sp
  271723. Now states that would have made changes report them back in yellow.
  271724. .SS State Syntax Update
  271725. .sp
  271726. A shorthand syntax has been added to sls files, and it will be the default
  271727. syntax in documentation going forward. The old syntax is still fully supported
  271728. and will not be deprecated, but it is recommended to move to the new syntax in
  271729. the future. This change moves the state function up into the state name using
  271730. a dot notation. This is in\-line with how state functions are generally referred
  271731. to as well:
  271732. .sp
  271733. The new way:
  271734. .INDENT 0.0
  271735. .INDENT 3.5
  271736. .sp
  271737. .nf
  271738. .ft C
  271739. /etc/sudoers:
  271740. file.present:
  271741. \- source: salt://sudo/sudoers
  271742. \- user: root
  271743. \- mode: 400
  271744. .ft P
  271745. .fi
  271746. .UNINDENT
  271747. .UNINDENT
  271748. .SS Use and Use_in Requisites
  271749. .sp
  271750. Two new requisite statements are available in 0.9.9. The use and use_in
  271751. requisite and requisite\-in allow for the transparent duplication of data
  271752. between states. When a state "uses" another state it copies the other state\(aqs
  271753. arguments as defaults. This was created in direct response to the new network
  271754. state, and allows for many network interfaces to be configured in the same way
  271755. easily. A simple example:
  271756. .INDENT 0.0
  271757. .INDENT 3.5
  271758. .sp
  271759. .nf
  271760. .ft C
  271761. root_file:
  271762. file.absent:
  271763. \- name: /tmp/nothing
  271764. \- user: root
  271765. \- mode: 644
  271766. \- group: root
  271767. \- use_in:
  271768. \- file: /etc/vimrc
  271769. fred_file:
  271770. file.absent:
  271771. \- name: /tmp/nothing
  271772. \- user: fred
  271773. \- group: marketing
  271774. \- mode: 660
  271775. /files/marketing/district7.rst:
  271776. file.present:
  271777. \- source: salt://marketing/district7.rst
  271778. \- template: jinja
  271779. \- use:
  271780. \- file: fred_file
  271781. /etc/vimrc:
  271782. file.present:
  271783. \- source: salt://edit/vimrc
  271784. .ft P
  271785. .fi
  271786. .UNINDENT
  271787. .UNINDENT
  271788. .sp
  271789. This makes the 2 lower state decs inherit the options from their respectively
  271790. "used" state decs.
  271791. .SS Network State
  271792. .sp
  271793. The new network state allows for the configuration of network devices via salt
  271794. states and the ip salt module. This addition has been given to the project by
  271795. Jeff Hutchins and Bret Palsson from Jive Communications.
  271796. .sp
  271797. Currently the only network configuration backend available is for Red Hat
  271798. based systems, like Red Hat Enterprise, CentOS, and Fedora.
  271799. .SS Exponential Jobs
  271800. .sp
  271801. Originally the jobs executed were stored on the master in the format:
  271802. \fB<cachedir>/jobs/jid/{minion ids}\fP
  271803. But this format restricted the number of jobs in the cache to the number of
  271804. subdirectories allowed on the filesystem. Ext3 for instance limits
  271805. subdirectories to 32000. To combat this the new format for 0.9.9 is:
  271806. \fB<cachedir>/jobs/jid_hash[:2]/jid_hash[2:]/{minion ids}\fP
  271807. So that now the number of maximum jobs that can be run before the cleanup
  271808. cycle hits the job directory is substantially higher.
  271809. .SS ssh_auth Additions
  271810. .sp
  271811. The original ssh_auth state was limited to accepting only arguments to apply
  271812. to a public key, and the key itself. This was restrictive due to the way the
  271813. we learned that many people were using the state, so the key section has been
  271814. expanded to accept options and arguments to the key that over ride arguments
  271815. passed in the state. This gives substantial power to using ssh_auth with names:
  271816. .INDENT 0.0
  271817. .INDENT 3.5
  271818. .sp
  271819. .nf
  271820. .ft C
  271821. sshkeys:
  271822. ssh_auth:
  271823. \- present
  271824. \- user: backup
  271825. \- enc: ssh\-dss
  271826. \- options:
  271827. \- option1="value1"
  271828. \- option2="value2 flag2"
  271829. \- comment: backup
  271830. \- names:
  271831. \- AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0111==
  271832. \- AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0222== override
  271833. \- ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0333== override
  271834. \- ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0444==
  271835. \- option3="value3",option4="value4 flag4" ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0555== override
  271836. \- option3="value3" ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0666==
  271837. .ft P
  271838. .fi
  271839. .UNINDENT
  271840. .UNINDENT
  271841. .SS LocalClient Additions
  271842. .sp
  271843. To follow up the recent additions in 0.9.8 of additional kwargs support,
  271844. 0.9.9 also adds the capability to send kwargs into commands via a dict.
  271845. This addition to the LocalClient api can be used like so:
  271846. .INDENT 0.0
  271847. .INDENT 3.5
  271848. .sp
  271849. .nf
  271850. .ft C
  271851. import salt.client
  271852. client = salt.client.LocalClient("/etc/salt/master")
  271853. ret = client.cmd("*", "cmd.run", ["ls \-l"], kwarg={"cwd": "/etc"})
  271854. .ft P
  271855. .fi
  271856. .UNINDENT
  271857. .UNINDENT
  271858. .sp
  271859. This update has been added to all cmd methods in the LocalClient class.
  271860. .SS Better Self Salting
  271861. .sp
  271862. One problem faced with running Salt states, is that it has been difficult
  271863. to manage the Salt minion via states, this is due to the fact that if the
  271864. minion is called to restart while a state run is happening then the state
  271865. run would be killed. 0.9.9 slightly changes the process scope of the state
  271866. runs, so now when salt is executing states it can safely restart the
  271867. salt\-minion daemon.
  271868. .sp
  271869. In addition to daemonizing the state run, the apt module also daemonizes.
  271870. This update makes it possible to cleanly update the salt\-minion package on
  271871. Debian/Ubuntu systems without leaving apt in an inconsistent state or killing
  271872. the active minion process mid\-execution.
  271873. .SS Wildcards for SLS Modules
  271874. .sp
  271875. Now, when including sls modules in include statements or in the top file,
  271876. shell globs can be used. This can greatly simplify listing matched sls
  271877. modules in the top file and include statements:
  271878. .INDENT 0.0
  271879. .INDENT 3.5
  271880. .sp
  271881. .nf
  271882. .ft C
  271883. base:
  271884. \(aq*\(aq:
  271885. \- files*
  271886. \- core*
  271887. .ft P
  271888. .fi
  271889. .UNINDENT
  271890. .UNINDENT
  271891. .INDENT 0.0
  271892. .INDENT 3.5
  271893. .sp
  271894. .nf
  271895. .ft C
  271896. include:
  271897. \- users.dev.*
  271898. \- apache.ser*
  271899. .ft P
  271900. .fi
  271901. .UNINDENT
  271902. .UNINDENT
  271903. .SS External Pillar
  271904. .sp
  271905. Since the pillar data is just, data, it does not need to come expressly from
  271906. the pillar interface. The external pillar system allows for hooks to be added
  271907. making it possible to extract pillar data from any arbitrary external
  271908. interface. The external pillar interface is configured via the \fBext_pillar\fP
  271909. option. Currently interfaces exist to gather external pillar data via hiera
  271910. or via a shell command that sends yaml data to the terminal:
  271911. .INDENT 0.0
  271912. .INDENT 3.5
  271913. .sp
  271914. .nf
  271915. .ft C
  271916. ext_pillar:
  271917. \- cmd_yaml: cat /etc/salt/ext.yaml
  271918. \- hiera: /etc/hirea.yaml
  271919. .ft P
  271920. .fi
  271921. .UNINDENT
  271922. .UNINDENT
  271923. .sp
  271924. The initial external pillar interfaces and extra interfaces can be added to
  271925. the file salt/pillar.py, it is planned to add more external pillar interfaces.
  271926. If the need arises a new module loader interface will be created in the future
  271927. to manage external pillar interfaces.
  271928. .SS Single State Executions
  271929. .sp
  271930. The new state.single function allows for single states to be cleanly executed.
  271931. This is a great tool for setting up a small group of states on a system or for
  271932. testing out the behavior of single states:
  271933. .INDENT 0.0
  271934. .INDENT 3.5
  271935. .sp
  271936. .nf
  271937. .ft C
  271938. salt \(aq*\(aq state.single user.present name=wade uid=2000
  271939. .ft P
  271940. .fi
  271941. .UNINDENT
  271942. .UNINDENT
  271943. .sp
  271944. The test interface functions here as well, so changes can also be tested
  271945. against as:
  271946. .INDENT 0.0
  271947. .INDENT 3.5
  271948. .sp
  271949. .nf
  271950. .ft C
  271951. salt \(aq*\(aq state.single user.present name=wade uid=2000 test=True
  271952. .ft P
  271953. .fi
  271954. .UNINDENT
  271955. .UNINDENT
  271956. .SS New Tests
  271957. .sp
  271958. A few exciting new test interfaces have been added, the minion swarm allows
  271959. not only testing of larger loads, but also allows users to see how Salt behaves
  271960. with large groups of minions without having to create a large deployment.
  271961. .SS Minion Swarm
  271962. .sp
  271963. The minion swarm test system allows for large groups of minions to be tested
  271964. against easily without requiring large numbers of servers or virtual
  271965. machines. The minion swarm creates as many minions as a system can handle and
  271966. roots them in the /tmp directory and connects them to a master.
  271967. .sp
  271968. The benefit here is that we were able to replicate issues that happen only
  271969. when there are large numbers of minions. A number of elusive bugs which were
  271970. causing stability issues in masters and minions have since been hunted down.
  271971. Bugs that used to take careful watch by users over several days can now be
  271972. reliably replicated in minutes, and fixed in minutes.
  271973. .sp
  271974. Using the swarm is easy, make sure a master is up for the swarm to connect to,
  271975. and then use the minionswarm.py script in the tests directory to spin up
  271976. as many minions as you want. Remember, this is a fork bomb, don\(aqt spin up more
  271977. than your hardware can handle!
  271978. .INDENT 0.0
  271979. .INDENT 3.5
  271980. .sp
  271981. .nf
  271982. .ft C
  271983. python minionswarm.py \-m 20 \-\-master salt\-master
  271984. .ft P
  271985. .fi
  271986. .UNINDENT
  271987. .UNINDENT
  271988. .SS Shell Tests
  271989. .sp
  271990. The new Shell testing system allows us to test the behavior of commands
  271991. executed from a high level. This allows for the high level testing of salt
  271992. runners and commands like salt\-key.
  271993. .SS Client Tests
  271994. .sp
  271995. Tests have been added to test the aspects of the client APIs and ensure that
  271996. the client calls work, and that they manage passed data, in a desirable way.
  271997. .sp
  271998. \fBSEE ALSO:\fP
  271999. .INDENT 0.0
  272000. .INDENT 3.5
  272001. Legacy salt\-cloud release docs
  272002. .UNINDENT
  272003. .UNINDENT
  272004. .sp
  272005. \fBSEE ALSO:\fP
  272006. .INDENT 0.0
  272007. .INDENT 3.5
  272008. Legacy salt\-api release docs
  272009. .UNINDENT
  272010. .UNINDENT
  272011. .SH VENAFI TOOLS FOR SALT
  272012. .SS Introduction
  272013. .sp
  272014. First, you need to configure the \fBmaster\fP file. This is because
  272015. all module functions require either a configured \fBapi_key\fP (for Cloud) or
  272016. \fBa ttp_user\fP with a \fBtpp_password\fP and a \fBbase_url\fP (for Trust Platform).
  272017. .sp
  272018. For Venafi Cloud:
  272019. .INDENT 0.0
  272020. .INDENT 3.5
  272021. .sp
  272022. .nf
  272023. .ft C
  272024. venafi:
  272025. api_key: abcdef01\-2345\-6789\-abcd\-ef0123456789
  272026. base_url: "https://cloud.venafi.example.com/" (optional)
  272027. .ft P
  272028. .fi
  272029. .UNINDENT
  272030. .UNINDENT
  272031. .sp
  272032. If you don\(aqt have a Venafi Cloud account, you can sign up for one on the \fI\%enrollment page\fP\&.
  272033. .sp
  272034. For Venafi Platform:
  272035. .INDENT 0.0
  272036. .INDENT 3.5
  272037. .sp
  272038. .nf
  272039. .ft C
  272040. venafi:
  272041. base_url: "https://tpp.example.com/"
  272042. tpp_user: admin
  272043. tpp_password: "Str0ngPa$$w0rd"
  272044. trust_bundle: "/opt/venafi/bundle.pem"
  272045. .ft P
  272046. .fi
  272047. .UNINDENT
  272048. .UNINDENT
  272049. .sp
  272050. \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
  272051. .sp
  272052. 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:
  272053. .INDENT 0.0
  272054. .INDENT 3.5
  272055. .sp
  272056. .nf
  272057. .ft C
  272058. ext_pillar:
  272059. \- venafi: True
  272060. .ft P
  272061. .fi
  272062. .UNINDENT
  272063. .UNINDENT
  272064. .SS Runner Functions
  272065. .SS request
  272066. .sp
  272067. This command is used to enroll a certificate from Venafi Cloud or Venafi Platform.
  272068. .INDENT 0.0
  272069. .TP
  272070. .B \fBminion_id\fP
  272071. ID of the minion for which the certificate is being issued. Required.
  272072. .TP
  272073. .B \fBdns_name\fP
  272074. DNS subject name for the certificate. Required if \fBcsr_path\fP is not specified.
  272075. .TP
  272076. .B \fBcsr_path\fP
  272077. Full path name of certificate signing request file to enroll. Required if \fBdns_name\fP is not specified.
  272078. .TP
  272079. .B \fBzone\fP
  272080. 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.
  272081. .TP
  272082. .B \fBorg_unit\fP
  272083. Business Unit, Department, etc. Do not specify if it does not apply.
  272084. .TP
  272085. .B \fBorg\fP
  272086. Exact legal name of your organization. Do not abbreviate.
  272087. .TP
  272088. .B \fBloc\fP
  272089. City/locality where your organization is legally located.
  272090. .TP
  272091. .B \fBstate\fP
  272092. State or province where your organization is legally located. Must not be abbreviated.
  272093. .TP
  272094. .B \fBcountry\fP
  272095. Country where your organization is legally located; two\-letter ISO code.
  272096. .TP
  272097. .B \fBkey_password\fP
  272098. Password for encrypting the private key.
  272099. .UNINDENT
  272100. .sp
  272101. The syntax for requesting a new certificate with private key generation looks like this:
  272102. .INDENT 0.0
  272103. .INDENT 3.5
  272104. .sp
  272105. .nf
  272106. .ft C
  272107. salt\-run venafi.request minion.example.com dns_name=www.example.com \e
  272108. country=US state=California loc=Sacramento org="Company Name" org_unit=DevOps \e
  272109. zone=Internet key_password=SecretSauce
  272110. .ft P
  272111. .fi
  272112. .UNINDENT
  272113. .UNINDENT
  272114. .sp
  272115. And the syntax for requesting a new certificate using a previously generated CSR looks like this:
  272116. .INDENT 0.0
  272117. .INDENT 3.5
  272118. .sp
  272119. .nf
  272120. .ft C
  272121. salt\-run venafi.request minion.example.com csr_path=/tmp/minion.req zone=Internet
  272122. .ft P
  272123. .fi
  272124. .UNINDENT
  272125. .UNINDENT
  272126. .SS show_cert
  272127. .sp
  272128. This command is used to show last issued certificate for domain.
  272129. .INDENT 0.0
  272130. .TP
  272131. .B \fBdns_name\fP
  272132. DNS subject name of the certificate to look up.
  272133. .UNINDENT
  272134. .INDENT 0.0
  272135. .INDENT 3.5
  272136. .sp
  272137. .nf
  272138. .ft C
  272139. salt\-run venafi.show_cert www.example.com
  272140. .ft P
  272141. .fi
  272142. .UNINDENT
  272143. .UNINDENT
  272144. .SS list_domain_cache
  272145. .sp
  272146. This command lists domains that have been cached on this Salt Master.
  272147. .INDENT 0.0
  272148. .INDENT 3.5
  272149. .sp
  272150. .nf
  272151. .ft C
  272152. salt\-run venafi.list_domain_cache
  272153. .ft P
  272154. .fi
  272155. .UNINDENT
  272156. .UNINDENT
  272157. .SS del_cached_domain
  272158. .sp
  272159. This command deletes a domain from the Salt Master\(aqs cache.
  272160. .INDENT 0.0
  272161. .TP
  272162. .B \fBdomains\fP
  272163. A domain name, or a comma\-separated list of domain names, to delete from this master\(aqs cache.
  272164. .UNINDENT
  272165. .INDENT 0.0
  272166. .INDENT 3.5
  272167. .sp
  272168. .nf
  272169. .ft C
  272170. salt\-run venafi.del_cached_domain www.example.com
  272171. .ft P
  272172. .fi
  272173. .UNINDENT
  272174. .UNINDENT
  272175. .SS Transfer certificate to a minion
  272176. .sp
  272177. To transfer a cached certificate to a minion, you can use Venafi pillar.
  272178. .sp
  272179. Example state (SLS) file:
  272180. .INDENT 0.0
  272181. .INDENT 3.5
  272182. .sp
  272183. .nf
  272184. .ft C
  272185. /etc/ssl/cert/www.example.com.crt:
  272186. file.managed:
  272187. \- contents_pillar: venafi:www.example.com:cert
  272188. \- replace: True
  272189. /etc/ssl/cert/www.example.com.key:
  272190. file.managed:
  272191. \- contents_pillar: venafi:www.example.com:pkey
  272192. \- replace: True
  272193. /etc/ssl/cert/www.example.com\-chain.pem:
  272194. file.managed:
  272195. \- contents_pillar: venafi:www.example.com:chain
  272196. \- replace: True
  272197. .ft P
  272198. .fi
  272199. .UNINDENT
  272200. .UNINDENT
  272201. .SH GLOSSARY
  272202. .INDENT 0.0
  272203. .TP
  272204. .B Auto\-Order
  272205. The evaluation of states in the order that they are defined in a SLS
  272206. file. \fISee also\fP: ordering\&.
  272207. .TP
  272208. .B Bootstrap
  272209. A stand\-alone Salt project which can download and install a Salt master
  272210. and/or a Salt minion onto a host. \fISee also\fP: \fI\%salt\-bootstrap\fP\&.
  272211. .TP
  272212. .B Compound Matcher
  272213. A combination of many target definitions that can be combined with
  272214. boolean operators. \fISee also\fP: targeting\&.
  272215. .TP
  272216. .B EAuth
  272217. Shorthand for \(aqexternal authentication\(aq. A system for calling to a
  272218. system outside of Salt in order to authenticate users and determine if
  272219. they are allowed to issue particular commands to Salt. \fISee also\fP:
  272220. external auth\&.
  272221. .TP
  272222. .B Environment
  272223. A directory tree containing state files which can be applied to
  272224. minions. \fISee also\fP: top file\&.
  272225. .TP
  272226. .B Execution Function
  272227. A Python function inside an Execution Module that may take arguments
  272228. and performs specific system\-management tasks. \fISee also\fP: the
  272229. list of execution modules\&.
  272230. .TP
  272231. .B External Job Cache
  272232. An external data\-store that can archive information about jobs that
  272233. have been run. A default returner. \fISee also\fP:
  272234. \fBext_job_cache\fP, the list of returners\&.
  272235. .TP
  272236. .B Execution Module
  272237. A Python module that contains execution functions which directly
  272238. perform various system\-management tasks on a server. Salt ships with a
  272239. number of execution modules but users can also write their own
  272240. execution modules to perform specialized tasks. \fISee also\fP: the
  272241. list of execution modules\&.
  272242. .TP
  272243. .B External Pillar
  272244. A module that accepts arbitrary arguments and returns a dictionary.
  272245. The dictionary is automatically added to a pillar for a minion.
  272246. .TP
  272247. .B Event
  272248. A notice emitted onto an event bus. Events are often driven by requests
  272249. for actions to occur on a minion or master and the results of those
  272250. actions. \fISee also\fP: Salt Reactor\&.
  272251. .TP
  272252. .B File Server
  272253. A local or remote location for storing both Salt\-specific files such as
  272254. top files or SLS files as well as files that can be distributed to
  272255. minions, such as system configuration files. \fISee also\fP: Salt\(aqs
  272256. file server\&.
  272257. .TP
  272258. .B Grain
  272259. A key\-value pair which contains a fact about a system, such as its
  272260. hostname, network addresses. \fISee also\fP: targeting with grains\&.
  272261. .TP
  272262. .B Highdata
  272263. The data structure in a SLS file the represents a set of state
  272264. declarations. \fISee also\fP: state layers\&.
  272265. .TP
  272266. .B Highstate
  272267. The collection of states to be applied to a system. \fISee also\fP:
  272268. state layers\&.
  272269. .TP
  272270. .B Idempotent
  272271. An action that ensures the system is in a well\-known state regardless
  272272. of the system\(aqs state before the action is applied. A corollary to
  272273. this is that applying the action multiple times results in no changes
  272274. to the system. State module functions should be idempotent. Some
  272275. state module functions, such as \fBcmd.run\fP
  272276. are not idempotent by default but can be made idempotent with the
  272277. proper use of requisites such as unless
  272278. and onlyif\&. For more information, \fIsee\fP
  272279. \fI\%wikipedia\fP\&.
  272280. .TP
  272281. .B Jinja
  272282. A templating language which allows variables and simple logic to be
  272283. dynamically inserted into static text files when they are rendered.
  272284. \fISee also\fP: \fBSalt\(aqs Jinja documentation\fP\&.
  272285. .TP
  272286. .B Job
  272287. The complete set of tasks to be performed by the execution of a Salt
  272288. command are a single job. \fISee also\fP: \fBjobs runner\fP\&.
  272289. .TP
  272290. .B Job Cache
  272291. A storage location for job results, which may then be queried by a
  272292. salt runner or an external system. May be local to a salt master
  272293. or stored externally.
  272294. .TP
  272295. .B Job ID
  272296. A unique identifier to represent a given \fI\%job\fP\&. This is often
  272297. shortened to JID.
  272298. .TP
  272299. .B Low State
  272300. The collection of processed states after requisites and order are
  272301. evaluated. \fISee also\fP: state layers\&.
  272302. .TP
  272303. .B Master
  272304. A central Salt daemon from which commands can be issued to listening
  272305. minions.
  272306. .TP
  272307. .B Masterless
  272308. A minion which does not require a Salt master to operate. All
  272309. configuration is local. \fISee also\fP: \fBfile_client\fP\&.
  272310. .TP
  272311. .B Master Tops
  272312. A system for the master that allows hooks into external systems to
  272313. generate top file data.
  272314. .TP
  272315. .B Mine
  272316. A facility to collect arbitrary data from minions and store that data
  272317. on the master. This data is then available to all other minions.
  272318. (Sometimes referred to as Salt Mine.) \fISee also\fP: Salt Mine\&.
  272319. .TP
  272320. .B Minion
  272321. A server running a Salt minion daemon which can listen to commands from
  272322. a master and perform the requested tasks. Generally, minions are
  272323. servers which are to be controlled using Salt.
  272324. .TP
  272325. .B Minion ID
  272326. A globally unique identifier for a minion. \fISee also\fP:
  272327. \fBid\fP\&.
  272328. .TP
  272329. .B Multi\-Master
  272330. The ability for a minion to be actively connected to multiple Salt
  272331. masters at the same time in high\-availability environments.
  272332. .TP
  272333. .B Node Group
  272334. A pre\-defined group of minions declared in the master configuration
  272335. file. \fISee also\fP: targeting\&.
  272336. .TP
  272337. .B Outputter
  272338. A formatter for defining the characteristics of output data from a Salt
  272339. command. \fISee also\fP: list of outputters\&.
  272340. .TP
  272341. .B Peer Communication
  272342. The ability for minions to communicate directly with other minions
  272343. instead of brokering commands through the Salt master. \fISee also\fP:
  272344. peer communication\&.
  272345. .TP
  272346. .B Pillar
  272347. A simple key\-value store for user\-defined data to be made available to
  272348. a minion. Often used to store and distribute sensitive data to minions.
  272349. \fISee also\fP: Pillar, list of Pillar
  272350. modules\&.
  272351. .TP
  272352. .B Proxy Minion
  272353. A minion which can control devices that are unable to run a Salt minion
  272354. locally, such as routers and switches.
  272355. .TP
  272356. .B PyDSL
  272357. A Pythonic domain\-specific\-language used as a Salt renderer. PyDSL can
  272358. be used in cases where adding pure Python into SLS files is beneficial.
  272359. \fISee also\fP: \fBPyDSL\fP\&.
  272360. .TP
  272361. .B Reactor
  272362. An interface for listening to events and defining actions that Salt
  272363. should taken upon receipt of given events. \fISee also\fP: Reactor\&.
  272364. .TP
  272365. .B Render Pipe
  272366. Allows SLS files to be rendered by multiple renderers, with each
  272367. renderer receiving the output of the previous. \fISee also\fP:
  272368. composing renderers\&.
  272369. .TP
  272370. .B Renderer
  272371. Responsible for translating a given data serialization format such as
  272372. YAML or JSON into a Python data structure that can be consumed by Salt.
  272373. \fISee also\fP: list of renderers\&.
  272374. .TP
  272375. .B Returner
  272376. Allows for the results of a Salt command to be sent to a given
  272377. data\-store such as a database or log file for archival. \fISee also\fP:
  272378. list of returners\&.
  272379. .TP
  272380. .B Roster
  272381. A flat\-file list of target hosts. (Currently only used by salt\-ssh.)
  272382. .TP
  272383. .B Runner Module
  272384. A module containing a set of runner functions. \fISee also\fP: list
  272385. of runner modules\&.
  272386. .TP
  272387. .B Runner Function
  272388. A function which is called by the \fBsalt\-run\fP command and
  272389. executes on the master instead of on a minion. \fISee also\fP:
  272390. \fI\%Runner Module\fP\&.
  272391. .TP
  272392. .B Salt Cloud
  272393. A suite of tools used to create and deploy systems on many hosted cloud
  272394. providers. \fISee also\fP: salt\-cloud\&.
  272395. .TP
  272396. .B Salt SSH
  272397. A configuration management and remote orchestration system that does
  272398. not require that any software besides SSH be installed on systems to be
  272399. controlled.
  272400. .TP
  272401. .B Salt Thin
  272402. A subset of the normal Salt distribution that does not include any
  272403. transport routines. A Salt Thin bundle can be dropped onto a host and
  272404. used directly without any requirement that the host be connected to a
  272405. network. Used by Salt SSH. \fISee also\fP: \fBthin runner\fP\&.
  272406. .TP
  272407. .B Salt Virt
  272408. Used to manage the creation and deployment of virtual machines onto a
  272409. set of host machines. Often used to create and deploy private clouds.
  272410. \fISee also\fP: \fBvirt runner\fP\&.
  272411. .TP
  272412. .B SLS Module
  272413. Contains a set of \fI\%state declarations\fP\&.
  272414. .TP
  272415. .B State Compiler
  272416. Translates \fI\%highdata\fP into lowdata.
  272417. .TP
  272418. .B State Declaration
  272419. A data structure which contains a unique ID and describes one or more
  272420. states of a system such as ensuring that a package is installed or a
  272421. user is defined. \fISee also\fP: highstate structure\&.
  272422. .TP
  272423. .B State Function
  272424. A function contained inside a \fI\%state module\fP which
  272425. can manages the application of a particular state to a system. State
  272426. functions frequently call out to one or more \fI\%execution modules\fP to perform a given task.
  272427. .TP
  272428. .B State Module
  272429. A module which contains a set of state functions. \fISee also\fP:
  272430. list of state modules\&.
  272431. .TP
  272432. .B State Run
  272433. The application of a set of states on a set of systems.
  272434. .TP
  272435. .B Syndic
  272436. A forwarder which can relay messages between tiered masters. \fBSee
  272437. also\fP: Syndic\&.
  272438. .TP
  272439. .B Target
  272440. Minion(s) to which a given salt command will apply. \fISee also\fP:
  272441. targeting\&.
  272442. .TP
  272443. .B Top File
  272444. Determines which SLS files should be applied to various systems and
  272445. organizes those groups of systems into environments. \fISee also\fP:
  272446. top file, list of master top modules\&.
  272447. .TP
  272448. .B __virtual__
  272449. A function in a module that is called on module load to determine
  272450. whether or not the module should be available to a minion. This
  272451. function commonly contains logic to determine if all requirements
  272452. for a module are available, such as external libraries.
  272453. .TP
  272454. .B Worker
  272455. A master process which can send notices and receive replies from
  272456. minions. \fISee also\fP:
  272457. \fBworker_threads\fP\&.
  272458. .UNINDENT
  272459. .SH AUTHOR
  272460. Thomas S. Hatch <thatch45@gmail.com> and many others, please see the Authors file
  272461. .\" Generated by docutils manpage writer.
  272462. .